Function at 0x10005aa0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
push 8
mov bx, cx
pop eax
cmp ax, bx
jne 0x10005abf
mov eax, dword [0x1004f3bc]
test eax, eax
jle case.default.0x10005b39
dec eax
jmp 0x10005cae
push 9
pop ecx
cmp cx, bx
je 0x10005af1
push 0xd
pop ecx
cmp cx, bx
jne 0x10005ae9
mov eax, dword [0x1004f3bc]
mov byte [eax + 0x1004f44c], cl
mov byte [eax + 0x1004f44d], 0xa
add eax, 2
jmp 0x10005cae
push 0x20
pop ecx
cmp cx, bx
jne 0x10005b01
mov eax, dword [0x1004f3bc]
mov byte [eax + 0x1004f44c], cl
jmp 0x10005cad
push 0x30
pop eax
cmp ax, bx
ja 0x10005bd9
cmp bx, 0x39
ja 0x10005bd9
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jae 0x10005c34
movzx eax, bx
add eax, 0xffffffd0
cmp eax, 9
ja case.default.0x10005b39
jmp dword [eax*4 + 0x10005e0c]
mov eax, dword [0x1004f3bc]
mov byte [eax + 0x1004f44c], 0x29
jmp 0x10005cad
mov eax, dword [0x1004f3bc]
mov byte [eax + 0x1004f44c], 0x21
jmp 0x10005cad
mov eax, dword [0x1004f3bc]
mov byte [eax + 0x1004f44c], 0x40
jmp 0x10005cad
mov eax, dword [0x1004f3bc]
mov byte [eax + 0x1004f44c], 0x23
jmp 0x10005cad
mov eax, dword [0x1004f3bc]
mov byte [eax + 0x1004f44c], 0x24
jmp 0x10005cad
mov eax, dword [0x1004f3bc]
mov byte [eax + 0x1004f44c], 0x25
jmp 0x10005cad
mov eax, dword [0x1004f3bc]
mov byte [eax + 0x1004f44c], 0x5e
jmp 0x10005cad
mov eax, dword [0x1004f3bc]
mov byte [eax + 0x1004f44c], 0x26
jmp 0x10005cad
mov eax, dword [0x1004f3bc]
mov byte [eax + 0x1004f44c], 0x28
jmp 0x10005cad
push 0x41
pop eax
cmp ax, bx
ja 0x10005c0f
cmp bx, 0x5a
ja 0x10005c0f
push esi
push 0x14
call dword [sym.imp.USER32.dll_GetKeyState]
push 0x10
movzx esi, ax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
sar ax, 0xf
cmp ax, si
mov eax, dword [0x1004f3bc]
pop esi
jne 0x10005c39
or bl, 0x20
jmp 0x10005c39
push 0x60
pop eax
cmp ax, bx
ja 0x10005c41
cmp bx, 0x69
ja 0x10005c41
push 0x90
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
je case.default.0x10005b39
sub bl, 0x30
mov eax, dword [0x1004f3bc]
mov byte [eax + 0x1004f44c], bl
jmp 0x10005cad
push 0x6a
pop eax
cmp ax, bx
jne 0x10005c57
mov eax, dword [0x1004f3bc]
mov byte [eax + 0x1004f44c], 0x2a
jmp 0x10005cad
push 0x6b
pop eax
cmp ax, bx
jne 0x10005c6d
mov eax, dword [0x1004f3bc]
mov byte [eax + 0x1004f44c], 0x2b
jmp 0x10005cad
push 0x6d
pop eax
cmp ax, bx
jne 0x10005c83
mov eax, dword [0x1004f3bc]
mov byte [eax + 0x1004f44c], 0x2d
jmp 0x10005cad
push 0x6f
pop eax
cmp ax, bx
jne 0x10005c99
mov eax, dword [0x1004f3bc]
mov byte [eax + 0x1004f44c], 0x2f
jmp 0x10005cad
push 0x6e
pop eax
cmp ax, bx
jne 0x10005cb8
mov eax, dword [0x1004f3bc]
mov byte [eax + 0x1004f44c], 0x2e
inc eax
mov dword [0x1004f3bc], eax
jmp case.default.0x10005b39
mov eax, 0xba
cmp ax, bx
jne 0x10005cd8
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
not al
and al, 1
or al, 0x3a
jmp 0x10005df3
mov eax, 0xbb
cmp ax, bx
jne 0x10005d00
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
and ax, cx
neg ax
sbb al, al
and al, 0xee
add al, 0x3d
jmp 0x10005df3
mov eax, 0xbc
cmp ax, bx
jne 0x10005d1e
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xb
and al, 0x10
or al, 0x2c
jmp 0x10005df3
mov eax, 0xbd
cmp ax, bx
jne 0x10005d46
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
and ax, cx
neg ax
sbb al, al
and al, 0x32
add al, 0x2d
jmp 0x10005df3
mov eax, 0xbe
cmp ax, bx
jne 0x10005d64
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xb
and al, 0x10
or al, 0x2e
jmp 0x10005df3
mov eax, 0xbf
cmp ax, bx
jne 0x10005d7f
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xb
and al, 0x10
or al, 0x2f
jmp 0x10005df3
mov eax, 0xc0
cmp ax, bx
jne 0x10005da4
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
and ax, cx
neg ax
sbb al, al
and al, 0x1e
add al, 0x60
jmp 0x10005df3
mov eax, 0xdb
cmp ax, bx
jne 0x10005dbf
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xa
and al, 0x20
or al, 0x5b
jmp 0x10005df3
mov eax, 0xdc
cmp ax, bx
jne 0x10005dda
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xa
and al, 0x20
or al, 0x5c
jmp 0x10005df3
mov eax, 0xdd
cmp ax, bx
jne case.default.0x10005b39
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xa
and al, 0x20
or al, 0x5d
mov ecx, dword [0x1004f3bc]
mov byte [ecx + 0x1004f44c], al
inc ecx
mov dword [0x1004f3bc], ecx
xor eax, eax
pop ebx
ret