push ebx
push ebp
mov ebp,[esp+14]
push esi
mov esi,[esp+14]
push edi
mov [esp+10],00000000
cmp dword ptr [ebp+00],05
jne aheadInThisFx
mov eax,[esp+20]
mov edi,[ebp+08]
push eax
push edi
push esi
call SomeItherFx
//more code
aheadInThisFx:
The code above is the disassembly of the start of a function, it is very strange. What kind of compiler would generate such nonsense ?
If you already encountered something alike, please explain it to me too.
I don't understand the calling convention.
At line 3, what does it mean to:
mov ebp,[esp+14]
shouldn't it be:
push ebp
mov ebp,esp
and the arguments, [ebp-4], [ebp-8] ?
Thanks