Code:
[ENABLE]alloc(Hook, 2048)
label(JMP1)
label(JMP2)
label(JMP3)
label(JMP4)
label(JMP5)
label(Return)
label(ReturnHook)
Hook:
cmp dword ptr [esp+2C], 0119BBC7 //89 45 ? 8B ? ? ? FF FF 8B ? 8B 8D ? ? FF FF 8B 42 ? ? ? ? E8 ? ? ? ? ? ? ? 85 ? ? ? 8B
jne Return
mov dword ptr [esp+2C], ReturnHook
Return:
jmp 00B83E20
ReturnHook:
mov [ebp-28],eax
mov eax,[ebp-00002D78]
mov edx,[eax]
mov ecx,[ebp-00002D78]
mov eax,[edx+68]
call eax
push eax
call 0056AF70
add esp,04
test eax,eax
je JMP1
mov ecx,[ebp-00000234]
push ecx
mov ecx,[ebp-70]
call 0068AC80
test eax,eax
je JMP1
mov [ebp-00002D8C],00000001
jmp JMP2
JMP1:
mov [ebp-00002D8C],00000000
JMP2:
mov edx,[ebp-00002D8C]
mov [ebp-50],edx
mov eax,[ebp-00000234]
push eax
mov ecx,[ebp-00002D78]
call 011DB9D0
mov [ebp-00000248],eax
cmp dword ptr [ebp+10],00
je JMP3
mov ecx,[ebp+10]
mov [ecx],00000041
JMP3:
call 012288C0
mov [ebp-00000150],eax
mov ecx,[ebp-00002D78]
add ecx,04
mov edx,[ebp-00002D78]
mov eax,[edx+04]
mov edx,[eax+20]
call edx
mov [ebp-00000270],eax
cmp dword ptr [ebp-00000234],00
je JMP4
mov eax,[ebp-00002D78]
mov ecx,[ebp-00000234]
cmp ecx,[eax+0000A2AC]
jne JMP4
mov [ebp-00002D90],00000001
jmp JMP5
JMP4:
mov [ebp-00002D90],00000000
JMP5:
mov edx,[ebp-00002D90]
mov [ebp-68],edx
mov eax,[ebp-00000234]
push eax
movzx eax, byte ptr [ebp-00002D90] //Same as above mov edx
neg eax
sbb eax, eax
add eax, 01
mov byte ptr [ebp-00002D90], al //Same as above
mov byte ptr [ebp-68], al //Same as above edp-XX
pop eax
jmp 0119BCAD //Address of last push eax
01B2BA64: //Same as above
dd Hook
[DISABLE]
// Don't need this for tick and close