Function at 0x4effe5
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
push ebx
push esi
push edi
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 1
mov dword [ebp - 0x34], 0
push 0
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
jne 0x4f0023
xor eax, eax
jmp 0x4f03ab
mov eax, dword [ebp - 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov dword [ebp - 4], eax
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
movzx eax, ax
mov byte [ebp - 0x38], ah
xor eax, eax
mov al, byte [ebp - 0x38]
test eax, eax
je 0x4f0057
mov dword [ebp - 8], 0
jmp 0x4f0399
mov eax, dword [ebp - 4]
test byte [eax + 0x48], 4
je 0x4f006b
mov dword [ebp - 0xc], 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x48]
and eax, 8
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
je 0x4f00a0
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0xb0]
cmp dword [eax + 0xc4], ecx
jne 0x4f00a0
mov dword [ebp - 0x34], 1
mov eax, dword [ebp - 4]
test byte [eax + 0x48], 2
je 0x4f00c6
mov eax, dword [ebp - 4]
test byte [eax + 0x48], 4
jne 0x4f00c6
mov dword [ebp - 0x2c], 1
jmp 0x4f00cd
mov dword [ebp - 0x2c], 0
cmp dword [ebp - 0x2c], 0
je 0x4f00de
mov dword [ebp - 0x30], 0
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x40], eax
jmp 0x4f032a
cmp dword [ebp - 0x30], 0
je 0x4f0112
mov dword [ebp - 8], 0
push 0x102
push 0x102
mov eax, dword [ebp + 8]
push eax
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.USER32.dll_GetMessageA]
jmp 0x4f0399
cmp dword [ebp - 0xc], 0
jne 0x4f0135
push 0
push 0xffffffffffffffff
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.004eb051
add esp, 0x10
jmp 0x4f0399
cmp dword [ebp - 0xc], 0
jne 0x4f0158
push 0
push 1
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.004eb051
add esp, 0x10
jmp 0x4f0399
cmp dword [ebp - 0x34], 0
je 0x4f018a
mov eax, dword [ebp - 4]
cmp dword [eax + 0xb4], 0
jne 0x4f0183
mov dword [ebp - 0x34], 1
jmp 0x4f018a
mov dword [ebp - 0x34], 0
cmp dword [ebp - 0x30], 0
jne 0x4f019e
cmp dword [ebp - 0x34], 0
je 0x4f01aa
mov dword [ebp - 8], 0
jmp 0x4f01c8
cmp dword [ebp - 0xc], 0
jne 0x4f01c8
push 0xffffffffffffffff
push 0
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.004eb051
add esp, 0x10
jmp 0x4f0399
cmp dword [ebp - 0x34], 0
je 0x4f0203
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0xf4]
dec ecx
cmp dword [eax + 0xb4], ecx
jne 0x4f01fc
mov dword [ebp - 0x34], 1
jmp 0x4f0203
mov dword [ebp - 0x34], 0
cmp dword [ebp - 0x30], 0
jne 0x4f0217
cmp dword [ebp - 0x34], 0
je 0x4f0223
mov dword [ebp - 8], 0
jmp 0x4f0241
cmp dword [ebp - 0xc], 0
jne 0x4f0241
push 1
push 0
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.004eb051
add esp, 0x10
jmp 0x4f0399
xor eax, eax
mov al, byte [ebp - 0x38]
test eax, eax
je 0x4f0279
cmp dword [ebp - 0xc], 0
jne 0x4f0274
push 0xffffffffffffffff
push 0xffff8001
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.004eb051
add esp, 0x10
jmp 0x4f029a
cmp dword [ebp - 0xc], 0
jne 0x4f029a
push 1
push 0xffff8001
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.004eb051
add esp, 0x10
jmp 0x4f0399
xor eax, eax
mov al, byte [ebp - 0x38]
test eax, eax
je 0x4f02d2
cmp dword [ebp - 0xc], 0
jne 0x4f02cd
push 0xffffffffffffffff
push 0x7fff
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.004eb051
add esp, 0x10
jmp 0x4f02f3
cmp dword [ebp - 0xc], 0
jne 0x4f02f3
push 1
push 0x7fff
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.004eb051
add esp, 0x10
jmp 0x4f0399
cmp dword [ebp - 0xc], 0
jne 0x4f0314
push 3
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.004ee9a2
add esp, 0xc
jmp 0x4f0399
mov dword [ebp - 8], 0
jmp 0x4f0399
sub dword [ebp - 0x40], 8
cmp dword [ebp - 0x40], 0x26
ja case.0x4f0343.9
mov eax, dword [ebp - 0x40]
xor ecx, ecx
mov cl, byte [eax + 0x4f0372]
jmp dword [ecx*4 + 0x4f034a]
mov eax, dword [ebp - 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov eax, dword [ebp - 8]
jmp 0x4f03ab
pop edi
pop esi
pop ebx
leave
ret