•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