.text:0043C928 sub_43C928 proc near ; CODE XREF: sub_4097EC+153p .text:0043C928 ; sub_4099A8+4681Fp .text:0043C928 .text:0043C928 var_8 = byte ptr -8 .text:0043C928 var_6 = byte ptr -6 .text:0043C928 var_5 = word ptr -5 .text:0043C928 var_3 = word ptr -3 .text:0043C928 arg_0 = byte ptr 8 .text:0043C928 arg_4 = byte ptr 0Ch .text:0043C928 arg_8 = word ptr 10h .text:0043C928 arg_C = word ptr 14h .text:0043C928 .text:0043C928 push ebp .text:0043C929 mov ebp, esp .text:0043C92B push ecx .text:0043C92C push ecx .text:0043C92D mov al, [ebp+arg_0] .text:0043C930 mov [ebp+var_8], dl ;Here's the call to the function. .text:00409915 call sub_428A99 .text:0040991A xor ecx, ecx .text:0040991C mov dl, 0Fh .text:0040991E push eax .text:0040991F mov eax, dword_686444 .text:00409924 imul eax, 54D8h .text:0040992A inc ecx .text:0040992B mov ax, word ptr dword_6864F4[eax] .text:00409932 push eax .text:00409933 mov al, byte ptr dword_4B8CC8 ;mouse x .text:00409938 push eax .text:00409939 mov al, byte ptr dword_4B8CC4 ;mouse y .text:0040993E push eax .text:0040993F call sub_43C928 ;Here's my attempts to detour. //typedef int (__stdcall* Move_t)(int i1, int i2, int i3, int i4); typedef int (__fastcall* Move_t)(int i1, int i2, int i3, int i4); Move_t pMove = (Move_t)0x43C928; Move_t pTramp_Move = NULL; static int det_Move(int i1, int i2, int i3, int i4) { MessageBox(0, "Detoured move.", 0, 0); return pTramp_Move(i1, i2, i3, i4); } pTramp_Move = (Move_t)DetourFunction((PBYTE)pMove, (PBYTE)det_Move);