Function at 0x429ec0
Capabilities:
Log keystrokes via polling

Disassembly:
push esi
mov esi, dword [esp + 0x10]
test esi, esi
jne 0x429ecd
xor al, al
pop esi
ret
push ebx
push edi
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x10
mov dword [0x462b78], 0
call edi
test ax, ax
push 0x14
setl bl
call edi
movsx eax, ax
mov ecx, eax
and ecx, 0x8000
je 0x429efe
test al, 1
je 0x429f06
test al, 1
je 0x429f0a
test ecx, ecx
jne 0x429f0a
mov al, 1
jmp 0x429f0c
xor al, al
test bl, bl
je 0x429f16
test al, al
je 0x429f1a
jmp 0x429f21
test al, al
je 0x429f21
or dword [0x462b78], 2
push 0x11
call edi
test ax, ax
jge 0x429f31
or dword [0x462b78], 4
push 0x12
call edi
test ax, ax
jge 0x429f41
or dword [0x462b78], 1
mov edi, dword [esp + 0x10]
mov edx, edi
and edx, 0xffff
lea eax, [edx - 1]
cmp eax, 0x8f
mov dword [esi], 0
ja case.0x429f65.2
xor ecx, ecx
mov cl, byte [eax + 0x42a270]
jmp dword [ecx*4 + 0x42a268]
cmp di, 0x70
jb 0x429fc1
cmp di, 0x79
ja 0x429fc1
mov al, byte [0x462b78]
test al, 1
je 0x429f8f
pop edi
add edx, 0xf8
pop ebx
mov dword [esi], edx
mov al, 1
pop esi
ret
test al, 4
je 0x429fa1
pop edi
add edx, 0xee
pop ebx
mov dword [esi], edx
mov al, 1
pop esi
ret
test al, 2
je 0x429fb3
pop edi
add edx, 0xe4
pop ebx
mov dword [esi], edx
mov al, 1
pop esi
ret
pop edi
add edx, 0xcb
pop ebx
mov dword [esi], edx
mov al, 1
pop esi
ret
cmp di, 0x60
jb 0x429fd8
cmp di, 0x69
ja 0x429fd8
pop edi
add edx, 0xffffffd0
pop ebx
mov dword [esi], edx
mov al, 1
pop esi
ret
lea eax, [edx - 8]
cmp eax, 0x73
ja case.0x429fec.30
xor ecx, ecx
mov cl, byte [eax + 0x42a35c]
jmp dword [ecx*4 + 0x42a300]
push 9
call fcn.00429ae0
add esp, 4
pop edi
mov dword [esi], eax
pop ebx
mov al, 1
pop esi
ret
push 8
call fcn.00429ae0
add esp, 4
pop edi
mov dword [esi], eax
pop ebx
mov al, 1
pop esi
ret
push 0x1b
call fcn.00429ae0
add esp, 4
pop edi
mov dword [esi], eax
pop ebx
mov al, 1
pop esi
ret
push 0xd
call fcn.00429ae0
add esp, 4
pop edi
mov dword [esi], eax
pop ebx
mov al, 1
pop esi
ret
push 0x147
call fcn.00429ae0
add esp, 4
pop edi
mov dword [esi], eax
pop ebx
mov al, 1
pop esi
ret
push 0x14f
call fcn.00429ae0
add esp, 4
pop edi
mov dword [esi], eax
pop ebx
mov al, 1
pop esi
ret
push 0x148
call fcn.00429ae0
add esp, 4
pop edi
mov dword [esi], eax
pop ebx
mov al, 1
pop esi
ret
push 0x150
call fcn.00429ae0
add esp, 4
pop edi
mov dword [esi], eax
pop ebx
mov al, 1
pop esi
ret
push 0x14b
call fcn.00429ae0
add esp, 4
pop edi
mov dword [esi], eax
pop ebx
mov al, 1
pop esi
ret
push 0x14d
call fcn.00429ae0
add esp, 4
pop edi
mov dword [esi], eax
pop ebx
mov al, 1
pop esi
ret
push 0x152
call fcn.00429ae0
add esp, 4
pop edi
mov dword [esi], eax
pop ebx
mov al, 1
pop esi
ret
push 0x153
call fcn.00429ae0
add esp, 4
pop edi
mov dword [esi], eax
pop ebx
mov al, 1
pop esi
ret
push 0x149
call fcn.00429ae0
add esp, 4
pop edi
mov dword [esi], eax
pop ebx
mov al, 1
pop esi
ret
push 0x151
call fcn.00429ae0
add esp, 4
pop edi
mov dword [esi], eax
pop ebx
mov al, 1
pop esi
ret
push 0x20
call fcn.00429ae0
add esp, 4
pop edi
mov dword [esi], eax
pop ebx
mov al, 1
pop esi
ret
push 0x185
call fcn.00429ae0
add esp, 4
pop edi
mov dword [esi], eax
pop ebx
mov al, 1
pop esi
ret
push 0x186
call fcn.00429ae0
add esp, 4
pop edi
mov dword [esi], eax
pop ebx
mov al, 1
pop esi
ret
push 0x2e
call fcn.00429ae0
add esp, 4
pop edi
mov dword [esi], eax
pop ebx
mov al, 1
pop esi
ret
push 0x2b
call fcn.00429ae0
add esp, 4
pop edi
mov dword [esi], eax
pop ebx
mov al, 1
pop esi
ret
push 0x2d
call fcn.00429ae0
add esp, 4
pop edi
mov dword [esi], eax
pop ebx
mov al, 1
pop esi
ret
push 0x2f
call fcn.00429ae0
add esp, 4
pop edi
mov dword [esi], eax
pop ebx
mov al, 1
pop esi
ret
push 0x2a
call fcn.00429ae0
add esp, 4
pop edi
mov dword [esi], eax
pop ebx
mov al, 1
pop esi
ret
xor ecx, ecx
mov eax, 0x45db50
movsx ebx, byte [eax]
cmp edx, ebx
je 0x42a1f6
add eax, 0xc
inc ecx
cmp eax, str.1234567890
jb 0x42a1aa
push esi
push edi
call fcn.0042a570
add esp, 8
test al, al
jne 0x42a1f0
push esi
push edi
call fcn.0042a450
add esp, 8
test al, al
jne 0x42a1f0
push str._______:____
push str.1234567890______._
push esi
push edi
call fcn.0042a3d0
add esp, 0x10
test al, al
je case.0x429f65.1
pop edi
pop ebx
mov al, 1
pop esi
ret
mov al, byte [0x462b78]
test al, 2
je 0x42a215
lea edx, [ecx + ecx*2]
movsx eax, byte [edx*4 + 0x45db52]
pop edi
mov dword [esi], eax
test eax, eax
pop ebx
setne al
pop esi
ret
test al, 1
je 0x42a230
lea ecx, [ecx + ecx*2]
mov edx, dword [ecx*4 + 0x45db54]
mov eax, edx
pop edi
test eax, eax
pop ebx
mov dword [esi], edx
setne al
pop esi
ret
test al, 4
je 0x42a24b
lea eax, [ecx + ecx*2]
mov ecx, dword [eax*4 + 0x45db58]
mov eax, ecx
pop edi
test eax, eax
pop ebx
mov dword [esi], ecx
setne al
pop esi
ret
lea edx, [ecx + ecx*2]
movsx eax, byte [edx*4 + 0x45db51]
pop edi
mov dword [esi], eax
test eax, eax
pop ebx
setne al
pop esi
ret
pop edi
pop ebx
xor al, al
pop esi
ret