Function at 0x466450
Capabilities:
Log keystrokes via polling

Disassembly:
push ecx
push ebx
push esi
mov esi, ecx
cmp dword [esi + 0xf0], 0
push edi
je 0x4664b7
mov eax, dword [esi + 0x20]
mov edi, dword [sym.imp.USER32.dll_GetParent]
push eax
call edi
push eax
call fcn.00473673
test eax, eax
je 0x4664b7
call dword [sym.imp.USER32.dll_GetFocus]
push eax
call fcn.00473673
cmp eax, esi
jne 0x4664b7
mov ecx, dword [esi + 0x20]
push ecx
call edi
push eax
call fcn.00473673
mov ebx, dword [esp + 0x14]
mov edx, dword [esi + 0xf0]
mov eax, dword [eax + 0x20]
push ebx
push edx
push eax
call dword [sym.imp.USER32.dll_TranslateAcceleratorA]
test eax, eax
je 0x4664bb
pop edi
pop esi
mov eax, 1
pop ebx
pop ecx
ret 4
mov ebx, dword [esp + 0x14]
cmp dword [ebx + 4], 0x100
push ebp
jne 0x4666c3
cmp dword [ebx + 8], 9
jne 0x46669c
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call edi
mov ecx, 0xffffff00
and ax, cx
mov edx, ecx
cmp ax, dx
je 0x46669c
mov eax, dword [esi + 0x20]
push 0
push 0
push 0x1004
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, esi
mov ebp, eax
call fcn.004647d0
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x9c]
test eax, eax
je 0x466548
mov eax, dword [eax + 8]
test eax, eax
je 0x466548
mov ecx, dword [eax + 0x20]
cmp ecx, dword [ebx]
jne 0x466548
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
push edx
push eax
push ecx
mov ecx, esi
call fcn.00463af0
pop ebp
pop edi
pop esi
mov eax, 1
pop ebx
pop ecx
ret 4
push 0x10
call edi
mov edx, 0xffffff00
and ax, dx
mov ecx, edx
cmp ax, cx
sete bl
test bl, bl
jne 0x46658b
test ebp, ebp
jne 0x46658d
mov edx, dword [esi]
mov eax, dword [edx + 0x140]
mov ecx, esi
call eax
test eax, eax
je 0x4666bf
mov ecx, esi
call fcn.00464340
mov ebp, eax
mov dword [esi + 0xbc], 0
test ebp, ebp
jle 0x4666bf
mov edx, dword [esp + 0x10]
test edx, edx
jle 0x4666bf
nop
mov edi, dword [esi + 0xb8]
test edi, edi
jl 0x4665ea
mov eax, dword [esi + 0xbc]
test eax, eax
jl 0x4665ea
cmp edi, ebp
jge 0x4665ea
cmp eax, edx
jge 0x4665ea
xor ecx, ecx
test bl, bl
sete cl
lea ecx, [ecx + ecx - 1]
add eax, ecx
mov dword [esi + 0xbc], eax
js 0x4665d9
mov edx, dword [esp + 0x10]
cmp eax, edx
jl 0x46660c
add ecx, edi
mov dword [esi + 0xb8], ecx
test bl, bl
je 0x466604
lea eax, [edx - 1]
jmp 0x466606
test bl, bl
je 0x4665f3
lea eax, [ebp - 1]
jmp 0x4665f5
xor eax, eax
mov dword [esi + 0xb8], eax
test bl, bl
je 0x466604
lea eax, [edx - 1]
jmp 0x466606
xor eax, eax
mov dword [esi + 0xbc], eax
cmp dword [esi + 0xec], 0
je 0x46666a
mov eax, dword [esi + 0xb8]
lea ecx, [ebp - 1]
cmp eax, ecx
jne 0x46662a
cmp dword [esi + 0xbc], edx
jge 0x46662e
cmp eax, ebp
jl 0x46666a
push 1
mov ecx, esi
call fcn.00465ee0
mov edx, dword [esi]
mov eax, dword [edx + 0x140]
mov ecx, esi
call eax
test eax, eax
je 0x4666b2
mov ecx, dword [esi + 0x20]
push 0
push 0
push 0x1004
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov edx, dword [esp + 0x10]
mov ebp, eax
mov dword [esi + 0xbc], 0
mov ecx, dword [esi + 0xb8]
test ecx, ecx
jl 0x4666bf
cmp ecx, ebp
jge 0x4666bf
mov eax, dword [esi + 0xbc]
test eax, eax
jl 0x4666bf
cmp eax, edx
jge 0x4666bf
push eax
push ecx
mov ecx, esi
call fcn.00466100
test eax, eax
jne 0x4666b2
mov edx, dword [esp + 0x10]
jmp 0x4665a0
cmp dword [ebx + 8], 0x2e
jne 0x4666c3
cmp dword [esi + 0xdc], 0
je 0x4666c3
mov ecx, esi
call fcn.00465080
pop ebp
pop edi
pop esi
mov eax, 1
pop ebx
pop ecx
ret 4
mov ebx, dword [esp + 0x18]
push ebx
mov ecx, esi
call fcn.0047189f
pop ebp
pop edi
pop esi
pop ebx
pop ecx
ret 4