Code:
0055E046 |. 6A FF PUSH -1 ; /Arg2 = FFFFFFFF
0055E048 |. 8D55 E0 LEA EDX,[LOCAL.8] ; |
0055E04B |. 52 PUSH EDX ; |Arg1 = 7C91E514
0055E04C |. 8BCE MOV ECX,ESI ; |
0055E04E |. E8 ADA40400 CALL Wow.005A8500 ; \Wow.005A8500
Code:
005A8500 /$ 55 PUSH EBP
005A8501 |. 8BEC MOV EBP,ESP
005A8503 |. 53 PUSH EBX
005A8504 |. 56 PUSH ESI
005A8505 |. 8BF1 MOV ESI,ECX
005A8507 |. 8B46 08 MOV EAX,DWORD PTR DS:[ESI+8]
005A850A |. 8B58 04 MOV EBX,DWORD PTR DS:[EAX+4]
005A850D |. 57 PUSH EDI ; ntdll.7C920228
005A850E |. 8B38 MOV EDI,DWORD PTR DS:[EAX]
005A8510 |. E8 CB3F2100 CALL Wow.007BC4E0
005A8515 |. 3BF8 CMP EDI,EAX
005A8517 |. 75 10 JNZ SHORT Wow.005A8529
005A8519 |. 3BDA CMP EBX,EDX ; ntdll.KiFastSystemCallRet
005A851B |. 75 0C JNZ SHORT Wow.005A8529
005A851D |. 8B86 D00F0000 MOV EAX,DWORD PTR DS:[ESI+FD0]
005A8523 |. 0FB640 1C MOVZX EAX,BYTE PTR DS:[EAX+1C]
005A8527 |. EB 0A JMP SHORT Wow.005A8533
005A8529 |> 8B8E D0000000 MOV ECX,DWORD PTR DS:[ESI+D0]
005A852F |. 0FB641 42 MOVZX EAX,BYTE PTR DS:[ECX+42]
005A8533 |> 5F POP EDI ; kernel32.7C817077
005A8534 |. 5E POP ESI ; kernel32.7C817077
005A8535 |. 83E8 01 SUB EAX,1
005A8538 |. 5B POP EBX ; kernel32.7C817077
005A8539 |. B8 02000000 MOV EAX,2
005A853E |. 75 05 JNZ SHORT Wow.005A8545
005A8540 |. B8 03000000 MOV EAX,3
005A8545 |> 8B55 0C MOV EDX,[ARG.2]
005A8548 |. 50 PUSH EAX ; /Arg3 = 00000000
005A8549 |. 8B45 08 MOV EAX,[ARG.1] ; |Wow.<ModuleEntryPoint>
005A854C |. 52 PUSH EDX ; |Arg2 = 7C91E514
005A854D |. 50 PUSH EAX ; |Arg1 = 00000000
005A854E |. E8 1D2CEFFF CALL Wow.0049B170 ; \Wow.0049B170
005A8553 |. 83C4 0C ADD ESP,0C
005A8556 |. 5D POP EBP ; kernel32.7C817077
005A8557 \. C2 0800 RETN 8
Looks like a __thiscall (definitively not a __cdecl), and you're pushing the arguments in the wrong order.