Function at 0x460950
Capabilities:
Log keystrokes via polling

Disassembly:
push esi
mov esi, ecx
cmp dword [esi + 0x5c], 0
je 0x460974
cmp dword [esi + 0x20], 0
je 0x460974
call fcn.0040c2ea
test eax, 0x800
jne 0x460974
mov eax, dword [esi + 0x70]
cmp dword [eax - 0xc], 0
jne 0x46097f
mov ecx, esi
call fcn.00408fb0
pop esi
ret 0xc
push ebx
push edi
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x10
call edi
xor ebx, ebx
test ax, ax
push 0x11
setl bl
call edi
xor ecx, ecx
test ax, ax
mov eax, dword [esp + 0x10]
setl cl
add eax, 0xfffffff8
cmp eax, 0x26
ja case.0x4609b6.9
movzx edx, byte [eax + 0x460c60]
jmp dword [edx*4 + 0x460c44]
mov ecx, esi
call fcn.00408fb0
mov eax, dword [esi + 0x20]
test eax, eax
je 0x4609f4
lea ecx, [esi + 0x58]
push ecx
lea edx, [esi + 0x54]
push edx
push 0xb0
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [esi + 0x80]
push eax
mov ecx, esi
call fcn.0040a59b
mov ecx, esi
call fcn.0045f6c0
mov ecx, dword [esi + 0x54]
push 0
lea edx, [esp + 0x14]
mov dword [esp + 0x14], ecx
push edx
mov ecx, esi
call fcn.0045ea10
mov eax, dword [esp + 0x10]
cmp dword [esi + 0x54], eax
jge 0x460c14
mov dword [esi + 0x54], eax
test ebx, ebx
jne 0x460c14
push 1
mov ecx, esi
mov dword [esi + 0x58], eax
call fcn.0045f880
pop edi
pop ebx
pop esi
ret 0xc
mov ecx, esi
call fcn.00408fb0
mov eax, dword [esi + 0x20]
test eax, eax
je 0x460a6a
lea ecx, [esi + 0x58]
push ecx
lea edx, [esi + 0x54]
push edx
push 0xb0
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [esi + 0x80]
push eax
mov ecx, esi
call fcn.0040a59b
mov ecx, esi
call fcn.0045f6c0
mov ecx, dword [esi + 0x58]
push 1
lea edx, [esp + 0x14]
mov dword [esp + 0x14], ecx
push edx
mov ecx, esi
call fcn.0045ea10
mov eax, dword [esp + 0x10]
cmp dword [esi + 0x58], eax
jle 0x460c14
mov dword [esi + 0x58], eax
test ebx, ebx
jne 0x460c14
push 1
mov ecx, esi
mov dword [esi + 0x54], eax
call fcn.0045f880
pop edi
pop ebx
pop esi
ret 0xc
test ecx, ecx
je 0x460aba
mov ecx, esi
call fcn.0045f9d0
pop edi
pop ebx
pop esi
ret 0xc
test ebx, ebx
je 0x460acb
mov ecx, esi
call fcn.00460710
pop edi
pop ebx
pop esi
ret 0xc
xor eax, eax
cmp dword [esi + 0x60], eax
pop edi
sete al
pop ebx
mov dword [esi + 0x60], eax
pop esi
ret 0xc
push 1
mov ecx, esi
call fcn.0045f820
mov eax, dword [esi + 0x54]
cmp eax, dword [esi + 0x58]
jne 0x460af6
inc eax
mov dword [esi + 0x58], eax
jmp 0x460c0d
test ebx, ebx
je 0x460c0d
mov ecx, esi
call fcn.0045f9d0
jmp 0x460c0d
push 1
mov ecx, esi
call fcn.0045f820
mov edi, dword [esi + 0x54]
push edi
mov ecx, esi
call fcn.0045e520
test eax, eax
je 0x460c23
push edi
mov ecx, esi
call fcn.0045e920
test eax, eax
je 0x460c23
mov eax, dword [esi + 0x54]
mov edx, dword [esi]
mov edx, dword [edx + 0x144]
push eax
lea ecx, [esp + 0x14]
push ecx
mov ecx, esi
mov dword [esp + 0x18], 0x20
call edx
test eax, eax
jne 0x460b5f
movzx eax, word [esi + 0x6c]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x10]
push ecx
mov ecx, esi
call fcn.00460140
push 1
mov ecx, esi
call fcn.0045f880
pop edi
pop ebx
pop esi
ret 0xc
mov eax, dword [esi + 0x20]
test eax, eax
je 0x460baa
lea ecx, [esi + 0x58]
push ecx
lea edx, [esi + 0x54]
push edx
push 0xb0
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [esi + 0x80]
push eax
mov ecx, esi
call fcn.0040a59b
mov ecx, esi
call fcn.0045f6c0
mov eax, dword [esi + 0x54]
lea edi, [esi + 0x54]
test eax, eax
jg 0x460bbc
jne 0x460c23
cmp dword [esi + 0x58], 0
je 0x460c23
mov ecx, dword [esi + 0x84]
cmp eax, dword [ecx - 0xc]
jg 0x460c23
cmp eax, dword [esi + 0x58]
jne 0x460c0d
push 0
dec eax
push edi
mov ecx, esi
mov dword [edi], eax
call fcn.0045ea10
cmp dword [esi + 0x60], 0
je 0x460c0d
mov ebx, dword [edi]
push ebx
mov ecx, esi
call fcn.0045e520
test eax, eax
je 0x460c0d
push ebx
lea ecx, [esi + 0x74]
call fcn.0040ea24
movzx edx, ax
mov eax, dword [edi]
push edx
push eax
lea ecx, [esi + 0x80]
call fcn.0041a095
mov ecx, dword [edi]
mov dword [esi + 0x58], ecx
mov ecx, esi
call fcn.004600a0
push 1
mov ecx, esi
call fcn.0045f880
pop edi
pop ebx
pop esi
ret 0xc
mov edx, dword [esi]
mov eax, dword [edx + 0x150]
mov ecx, esi
call eax
pop edi
pop ebx
pop esi
ret 0xc
mov ecx, esi
call fcn.00408fb0
pop edi
pop ebx
pop esi
ret 0xc