Function at 0x4585d8
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x10
pushal
mov edi, eax
mov dword [esp + 0x20], edi
mov esi, ebx
mov eax, dword [edi + 0xc]
and eax, 0x800
cmp eax, 0
je 0x45867b
mov ebx, 0
mov eax, esi
cmp eax, 0x24
jne 0x458608
mov ebx, 0x1407
jmp 0x45866a
cmp eax, 0x23
jne 0x458614
mov ebx, 0x1408
jmp 0x45866a
cmp eax, 0x26
jne 0x458620
mov ebx, 0x1403
jmp 0x45866a
cmp eax, 0x28
jne 0x45862c
mov ebx, 0x1404
jmp 0x45866a
cmp eax, 0x21
jne 0x45864c
push 0x11
call sub.USER32.dll_GetKeyState
cmp ax, 0
jge 0x458645
mov ebx, 0x1407
jmp 0x45864a
mov ebx, 0x1405
jmp 0x45866a
cmp eax, 0x22
jne 0x45866a
push 0x11
call sub.USER32.dll_GetKeyState
cmp ax, 0
jge 0x458665
mov ebx, 0x1408
jmp 0x45866a
mov ebx, 0x1406
cmp ebx, 0
je 0x45867b
mov eax, edi
call fcn.0045a584
jmp 0x458b79
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
push 0x11
call sub.USER32.dll_GetKeyState
cmp ax, 0
setl al
movzx eax, al
cmp esi, 0x24
jne 0x4586ce
mov eax, edi
mov ebx, 6
mov ecx, 0
call fcn.0045b970
mov eax, edi
mov ecx, dword [eax + 0x181]
mov ebx, 0
mov edx, 0
call fcn.0045bc10
jmp 0x458b79
cmp esi, 0x23
jne 0x45870f
mov eax, edi
mov ebx, 7
mov ecx, 0
call fcn.0045b970
mov eax, dword [edi + 0x141]
mov eax, dword [edi + 0x141]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov ebx, eax
mov eax, edi
dec ebx
mov ecx, dword [eax + 0x181]
mov edx, 0
call fcn.0045bc10
jmp 0x458b79
cmp esi, 0x25
pushfd
lea ecx, [esp + 0x2c]
popfd
jne 0x4587c2
mov ebx, dword [edi + 0x1a9]
and ebx, 2
cmp ebx, 0
je 0x458798
cmp eax, 0
je 0x45873f
mov eax, dword [edi + 0x181]
neg eax
mov dword [esp + 0x28], eax
jmp 0x458757
mov eax, edi
mov ebx, dword [edi + 0x181]
mov edx, ecx
mov eax, dword [esp + 0x20]
mov ecx, 0xffffffff
call fcn.004583fc
cmp dword [esp + 0x28], 0
je 0x458b79
mov eax, edi
mov ebx, dword [edi + 0x181]
add ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
call fcn.004610cc
mov eax, edi
mov ebx, dword [eax + 0x17d]
mov ecx, dword [eax + 0x181]
add ecx, dword [esp + 0x28]
mov edx, 0
call fcn.0045bc10
jmp 0x458b79
cmp eax, 0
je 0x4587a4
mov eax, 6
jmp 0x4587a9
mov eax, 0
push 0
movzx eax, ax
push eax
push 0x114
mov eax, dword [edi + 0x5b]
push eax
call sub.USER32.dll_SendMessageA
jmp 0x458b79
cmp esi, 0x27
jne 0x458879
mov ebx, dword [edi + 0x1a9]
and ebx, 2
cmp ebx, 0
je 0x45884f
cmp eax, 0
je 0x4587f6
lea eax, [edi + 0xc7]
mov ebx, dword [eax + 4]
mov eax, dword [edi + 0x181]
sub ebx, eax
dec ebx
mov dword [esp + 0x28], ebx
jmp 0x45880e
mov eax, edi
mov ebx, dword [edi + 0x181]
mov edx, ecx
mov eax, dword [esp + 0x20]
mov ecx, 1
call fcn.004583fc
cmp dword [esp + 0x28], 0
je 0x458b79
mov eax, edi
mov ebx, dword [edi + 0x181]
add ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
call fcn.004610cc
mov eax, edi
mov ebx, dword [eax + 0x17d]
mov ecx, dword [eax + 0x181]
add ecx, dword [esp + 0x28]
mov edx, 0
call fcn.0045bc10
jmp 0x458b79
cmp eax, 0
je 0x45885b
mov eax, 7
jmp 0x458860
mov eax, 1
push 0
movzx eax, ax
push eax
push 0x114
mov eax, dword [edi + 0x5b]
push eax
call sub.USER32.dll_SendMessageA
jmp 0x458b79
cmp esi, 0x26
pushfd
lea edx, [esp + 0x30]
popfd
jne 0x4588fc
mov eax, dword [edi + 0x1a9]
and eax, 2
cmp eax, 0
je 0x4588ab
push ecx
mov eax, edi
mov ebx, dword [edi + 0x181]
mov eax, dword [esp + 0x24]
mov ecx, 0xffffffff
call fcn.0045826c
jmp 0x4588af
dec dword [esp + 0x2c]
mov eax, edi
mov ebx, dword [edi + 0x17d]
mov eax, dword [esp + 0x2c]
add ebx, eax
mov ecx, dword [edi + 0x181]
add ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
mov edx, 0
call fcn.0045bc10
mov eax, edi
call fcn.0045bb38
cmp eax, 0
je 0x458b79
mov eax, edi
mov ecx, dword [eax + 0x17d]
mov ebx, 4
call fcn.0045b970
jmp 0x458b79
cmp esi, 0x28
jne 0x458986
mov eax, dword [edi + 0x1a9]
and eax, 2
cmp eax, 0
je 0x45892c
push ecx
mov eax, edi
mov ebx, dword [edi + 0x181]
mov eax, dword [esp + 0x24]
mov ecx, 1
call fcn.0045826c
jmp 0x458930
inc dword [esp + 0x2c]
mov eax, edi
mov ebx, dword [edi + 0x17d]
mov eax, dword [esp + 0x2c]
add ebx, eax
mov ecx, dword [edi + 0x181]
add ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
mov edx, 0
call fcn.0045bc10
mov eax, edi
call fcn.0045bb38
cmp eax, 0
je 0x458b79
mov eax, edi
mov ecx, dword [eax + 0x17d]
mov ebx, dword [eax + 0x175]
sub ecx, ebx
inc ecx
mov ebx, 4
call fcn.0045b970
jmp 0x458b79
cmp esi, 0x21
jne 0x4589d7
mov eax, edi
mov ebx, dword [edi + 0x17d]
mov eax, dword [edi + 0x175]
dec eax
sub ebx, eax
mov ecx, dword [edi + 0x181]
mov eax, dword [esp + 0x20]
mov edx, 0
call fcn.0045bc10
mov eax, edi
call fcn.0045bb38
cmp eax, 0
je 0x458b79
mov eax, edi
mov ecx, dword [eax + 0x17d]
mov ebx, 4
call fcn.0045b970
jmp 0x458b79
cmp esi, 0x22
jne 0x458a6b
cmp dword [edi + 0x17d], 0xffffffff
je 0x458a10
mov eax, edi
mov ebx, dword [edi + 0x17d]
mov eax, dword [edi + 0x175]
add ebx, eax
dec ebx
mov ecx, dword [edi + 0x181]
mov eax, dword [esp + 0x20]
mov edx, 0
call fcn.0045bc10
jmp 0x458a2b
mov eax, edi
mov ecx, dword [edi + 0x181]
mov eax, dword [esp + 0x20]
mov ebx, 0
mov edx, 0
call fcn.0045bc10
mov eax, edi
call fcn.0045bb38
cmp eax, 0
je 0x458b79
mov eax, edi
mov ecx, dword [eax + 0x17d]
mov ebx, dword [eax + 0x175]
sub ecx, ebx
inc ecx
mov ebx, 4
call fcn.0045b970
jmp 0x458b79
cmp dword [esp + 0x24], 0
je 0x458b1a
jmp 0x458b36
cmp esi, 0x20
jne 0x458b79
cmp dword [edi + 0x13d], 0
je 0x458b64
mov eax, dword [edi + 0x13d]
mov eax, dword [edi + 0x13d]
mov ecx, dword [eax]
mov ebx, 1
call dword [ecx + 0xc]
mov esi, eax
cmp dword [edi + 0x1ba], 0
je 0x458ac2
mov eax, dword [edi + 0x1ba]
mov eax, dword [edi + 0x1ba]
mov edx, dword [eax + 8]
mov ebx, 1
mov ecx, 0
call dword [edx + 0xc]
mov dword [esp + 0x24], eax
lea ecx, [edi + 0x169]
mov eax, ecx
mov ebx, dword [edi + 0x17d]
call fcn.00444ad0
mov eax, dword [edi + 0x141]
mov ebx, dword [edi + 0x17d]
mov eax, dword [edi + 0x141]
mov edx, dword [eax]
call dword [edx + 0x20]
mov edx, eax
mov eax, dword [edi + 0x13d]
mov ebx, ecx
mov ecx, dword [edi + 0x17d]
mov eax, dword [edi + 0x13d]
mov edi, dword [eax]
call dword [edi + 4]
mov edx, dword [esp + 0x20]
cmp dword [edx + 0x1ba], 0
jne 0x458a5b
jmp 0x458b36
mov eax, dword [edx + 0x1ba]
mov eax, dword [edx + 0x1ba]
mov edi, dword [eax + 8]
mov ebx, 0
mov ecx, 0
call dword [edi + 0xc]
mov eax, edx
mov ebx, dword [edx + 0x17d]
mov eax, dword [esp + 0x20]
call fcn.00461020
cmp esi, 0
jne 0x458b79
mov eax, dword [edx + 0x13d]
mov eax, dword [edx + 0x13d]
mov ecx, dword [eax]
mov ebx, 0
call dword [ecx + 0xc]
jmp 0x458b79
cmp dword [edi + 0x17d], 0xffffffff
jne 0x458b79
mov eax, edi
mov ebx, 0
call fcn.00460fa8
popal
add esp, 0x10
ret