PBYTE POS_FUNC_PTR   = 0;
PBYTE POS_FUNC_PTR_HOOK_RETN  = 0;
 
void _stdcall snifferPos( int x , int y )
{
     // .....
}
 
__declspec(naked) VOID gatePos()
{
        _asm
 {
pushad;
pushfd;
 
mov eax , dword ptr [esp+8+0x24];
push eax;
 
mov eax , dword ptr [esp+4+0x24];
push eax;
 
call  snifferPos;
 
popfd;
popad;
 
////////////////////////////////
 
MOV EAX,DWORD PTR SS:[ESP+4];
MOV EDX,DWORD PTR SS:[ESP+8];
mov     [ecx+0x51D8], eax;
 
mov eax , POS_FUNC_PTR_HOOK_RETN;
jmp eax;
}
}