Function at 0x5f4681
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push esi
mov eax, 0xcccccccc
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], eax
mov dword [ebp - 4], eax
mov dword [ebp - 4], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 0x104
ja 0x5f465a
cmp dword [ebp - 0x18], 0x104
je case.0x5f467a.0
mov edx, dword [ebp - 0x18]
sub edx, 0xa1
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], 0x5f
ja case.0x5f467a.3
mov eax, dword [ebp - 0x18]
movzx ecx, byte [eax + 0x5f4948]
jmp dword [ecx*4 + 0x5f493c]
mov edx, dword [ebp - 0x18]
sub edx, 0x200
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], 8
ja case.0x5f467a.3
mov eax, dword [ebp - 0x18]
movzx ecx, byte [eax + 0x5f49b0]
jmp dword [ecx*4 + 0x5f49a8]
mov edx, dword [ebp - 4]
cmp dword [edx + 0xb4], 0xffffffff
je case.0x5f467a.0
mov esi, esp
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
cmp esi, esp
call fcn.006c7eb0
cwde
and eax, 0x8000
je case.0x5f467a.0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x1c], 0x21
je 0x5f47bd
cmp dword [ebp - 0x1c], 0x22
je 0x5f46cc
jmp case.0x5f467a.0
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0xb4]
add ecx, 1
mov dword [ebp - 8], ecx
jmp 0x5f46e6
mov edx, dword [ebp - 8]
add edx, 1
mov dword [ebp - 8], edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0xb4]
mov edx, dword [ebp - 4]
add ecx, dword [edx + 0xb0]
cmp dword [ebp - 8], ecx
jge 0x5f47b3
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 8]
cdq
idiv dword [ecx + 0xb0]
mov dword [ebp - 0xc], edx
mov esi, esp
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp - 4]
mov edx, dword [eax]
mov ecx, dword [ebp - 4]
mov eax, dword [edx + 0x280]
call eax
cmp esi, esp
call fcn.006c7eb0
test eax, eax
je 0x5f47ae
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x204], 1
mov esi, esp
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp - 4]
mov edx, dword [eax]
mov ecx, dword [ebp - 4]
mov eax, dword [edx + 0x218]
call eax
cmp esi, esp
call fcn.006c7eb0
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
mov esi, esp
mov ecx, dword [ebp - 4]
mov eax, dword [edx + 0x214]
call eax
cmp esi, esp
call fcn.006c7eb0
mov ecx, eax
call fcn.00441ea0
mov esi, esp
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0xb4]
push edx
mov eax, dword [ebp - 4]
mov edx, dword [eax]
mov ecx, dword [ebp - 4]
mov eax, dword [edx + 0x274]
call eax
cmp esi, esp
call fcn.006c7eb0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x204], 0
jmp 0x5f47b3
jmp 0x5f46dd
mov eax, 1
jmp 0x5f4928
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0xb4]
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0xb0]
lea eax, [eax + edx - 1]
mov dword [ebp - 0x10], eax
jmp 0x5f47e1
mov ecx, dword [ebp - 0x10]
sub ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
cmp eax, dword [edx + 0xb4]
jle 0x5f48a5
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
cdq
idiv dword [ecx + 0xb0]
mov dword [ebp - 0x14], edx
mov esi, esp
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp - 4]
mov edx, dword [eax]
mov ecx, dword [ebp - 4]
mov eax, dword [edx + 0x280]
call eax
cmp esi, esp
call fcn.006c7eb0
test eax, eax
je 0x5f48a0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x204], 1
mov esi, esp
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp - 4]
mov edx, dword [eax]
mov ecx, dword [ebp - 4]
mov eax, dword [edx + 0x218]
call eax
cmp esi, esp
call fcn.006c7eb0
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
mov esi, esp
mov ecx, dword [ebp - 4]
mov eax, dword [edx + 0x214]
call eax
cmp esi, esp
call fcn.006c7eb0
mov ecx, eax
call fcn.00441ea0
mov esi, esp
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0xb4]
push edx
mov eax, dword [ebp - 4]
mov edx, dword [eax]
mov ecx, dword [ebp - 4]
mov eax, dword [edx + 0x274]
call eax
cmp esi, esp
call fcn.006c7eb0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x204], 0
jmp 0x5f48a5
jmp 0x5f47d8
mov eax, 1
jmp 0x5f4928
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0xf0]
call fcn.0043a4a0
test eax, eax
je 0x5f48d0
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0xf0]
call fcn.00576650
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0xec]
call fcn.0043a4a0
test eax, eax
je case.0x5f467a.3
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0xec]
call fcn.00576650
mov edx, dword [ebp + 8]
cmp dword [edx + 4], 0x203
jne 0x5f491c
mov ecx, dword [ebp - 4]
add ecx, 0x20f8
call fcn.0043a4a0
mov ecx, dword [ebp + 8]
cmp dword [ecx], eax
jne 0x5f491c
mov eax, 1
jmp 0x5f4928
mov edx, dword [ebp + 8]
push edx
mov ecx, dword [ebp - 4]
call fcn.00501390
pop esi
add esp, 0x1c
cmp ebp, esp
call fcn.006c7eb0
mov esp, ebp
pop ebp
ret 4