•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
•