__declspec(naked) void blindhook()
{
#if defined(WIN32)
__asm push [esp+0x10] // pevAttacker
__asm push [esp+0x4+0x14] // pevInflictor
__asm push esi // pEntity
#else
__asm sub esp, 4 // Align to 16
__asm push [ebp+0x18] // pevAttacker
__asm push [ebp+0x14] // pevInflictor
__asm push ebx // pEntity
#endif
__asm call BlindHookHandler;
#if !defined(WIN32)
__asm add esp, 4
#endif
__asm test al, al;
__asm jz Trampoline
// skip
__asm mov ecx, g_addr_skip
__asm jmp ecx
// Trampoline back
__asm Trampoline:
#if defined(WIN32)
__asm _emit 0x8B
__asm _emit 0x06
__asm _emit 0x8D
__asm _emit 0x8C
__asm _emit 0x24
__asm _emit 0xD0
__asm _emit 0x00
__asm _emit 0x00
__asm _emit 0x00
__asm _emit 0x51
#else
__asm _emit 0x8B
__asm _emit 0x03
__asm _emit 0x8D
__asm _emit 0x95
__asm _emit 0xF8
__asm _emit 0xFE
__asm _emit 0xFF
__asm _emit 0xFF
#endif
__asm mov ecx, g_addr_continue
__asm jmp ecx
}