•LocalVariables!main:
•push    ebp ; establishing stack frame
•mov     ebp,esp ;
•sub     esp,0xd8 ; creating stack frame for locals
•push    ebx ; saving registers that might be used
•push    esi ;   outside
•push    edi ;
•lea     edi,[ebp-0xd8] ; getting lowest address of stack frame
•mov     ecx,0x36 ; filling stack frame with 0xCC
•mov     eax,0xcccccccc ;
•rep     stosd ;
•mov     dword ptr [ebp-0x8],0x1 ; [a] = 1      ([ebp-0x8])
•mov     dword ptr [ebp-0x14],0x1 ; [b] = 1      ([ebp-0x14])
•mov     eax,[ebp-0x14] ; eax := [b]
•add     eax,[ebp-0x8] ; eax := eax + [a]
•mov     [ebp-0x14],eax ; [b] := eax   (b = b + a)
•mov     eax,[ebp-0x8] ; eax := [a]
•add     eax,0x1 ; eax := eax + 1 
•mov     [ebp-0x8],eax ; [a] := eax   (++a)
•mov     eax,[ebp-0x8] ; eax := [a]
•imul    eax,[ebp-0x14] ; eax := eax * [b]
•mov     [ebp-0x14],eax          ; [b] := eax   (b = a * b)
•xor     eax,eax ; eax := 0     (return value)
•pop     edi ; restoring registers
•pop     esi ;
•pop     ebx ;
•mov     esp,ebp ; restoring previous stack pointer
•pop     ebp ; restoring previous stack frame
•ret ; return 0