•FunctionParameters!arithmetic:
•push ebp
•mov ebp,esp
•sub esp,0xc0
•push ebx
•push esi
•push edi
•lea edi,[ebp-0xc0]
•mov ecx,0x30
•mov eax,0xcccccccc
•rep stosd
•cmp dword ptr [ebp+0xc],0x0 ; &b == 0 ?
•jnz FunctionParameters!arithmetic+0x28
(00411b48)
•xor al,al ; return bool value false (0)
•jmp FunctionParameters!arithmetic+0x4e
(00411b6e)
•00411b48:
•mov
eax,[ebp+0xc] ; eax
:= address of b
•mov
ecx,[eax]
•add
ecx,[ebp+0x8] ; ecx
:= ecx + [a] (in C: t = *b +
a)
•mov edx,[ebp+0xc] ; edx := address of b
•mov [edx],ecx ; (in
C: *b := t)
•mov eax,[ebp+0x8] ; eax := [a]
(in C: ++a)
•add eax,0x1
•mov [ebp+0x8],eax ; [a] := eax
•mov eax,[ebp+0xc] ; eax := address of b
•mov ecx,[ebp+0x8] ; ecx := [a]
•imul ecx,[eax] ; ecx := ecx * [b]
(in C: t = a * *b)
•mov edx,[ebp+0xc] ; edx := address of b
•mov [edx],ecx ; (in
C: *b = t)
•mov al,0x1 ; return bool value true (0)
•00411b6e:
•pop edi
•pop esi
•pop ebx
•mov esp,ebp
•pop ebp
•ret