•LocalVariables!main:
•sub     esp,0x8 ; allocating stack space for locals
•mov     eax,0x1 ; eax := 1
•mov     [esp],eax ; [a] := eax  ([esp])
•mov     [esp+0x4],eax ; [b] := eax  ([esp+0x4])
•mov     eax,[esp+0x4]   ; eax := [b]
•add     eax,[esp] ; eax := eax + [a]
•mov     [esp+0x4],eax ; [b] := eax  (b = b + a)
•mov     ecx,[esp] ; ecx := [a]
•inc     ecx ; ecx += 1
•mov     [esp],ecx ; [a] := ecx  (++a)
•mov     edx,[esp+0x4] ; edx := [b]
•mov     eax,[esp] ; eax := [a]
•imul    edx,eax ; edx := edx * eax
•mov     [esp+0x4],edx ; [b] := edx  (b = b * a)
•xor     eax,eax ; eax := 0
•add     esp,0x8 ; clearing stack space for locals
•ret ; return 0
•