Function at 0x404708
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
call fcn.0040144c
mov ebx, eax
test ebx, ebx
je 0x404725
push ebx
call fcn.004087e8
add esp, 4
push 0
mov ebx, 0x350
call fcn.00408f00
add esp, 4
mov dword [ebp - 4], esp
push 0x23
xor eax, eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
nop
nop
cmp dword [ebp - 4], esp
je 0x404765
push 0x73
push 0x4010ed2
push 6
call fcn.00408800
add esp, 0xc
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x4047b5
call fcn.00405191
mov ebx, 6
call fcn.00401108
push 0x80000301
push 0
push 0
push 0x80000004
push 0
push 0x42854b
push 4
mov ebx, 0x300
call fcn.00408cc0
add esp, 0x34
push 0
call fcn.004087d6
add esp, 4
push 0
push 0
push 0
push 0x80000004
push 0
push str.Hotkey
push 0x80000004
push 0
mov eax, dword [0x42895e]
test eax, eax
jne 0x4047dc
mov eax, 0x4162b0
push eax
push 0x80000004
push 0
mov eax, dword [0x428962]
test eax, eax
jne 0x4047f2
mov eax, 0x4162b0
push eax
push 4
mov ebx, 0x8c8
call fcn.00409d50
add esp, 0x34
mov dword [ebp - 4], eax
push 0x80000004
push 0
mov eax, dword [ebp - 4]
test eax, eax
jne 0x40481b
mov eax, 0x4162b0
push eax
push 1
mov ebx, 0x9dc
call fcn.004095c0
add esp, 0x10
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x404841
push ebx
call fcn.004087e8
add esp, 4
mov eax, dword [ebp - 8]
mov dword [0x428972], eax
push 0
push 0
push 0
push 0x80000004
push 0
push str.Rate
push 0x80000004
push 0
mov eax, dword [0x42895e]
test eax, eax
jne 0x404870
mov eax, 0x4162b0
push eax
push 0x80000004
push 0
mov eax, dword [0x428962]
test eax, eax
jne 0x404886
mov eax, 0x4162b0
push eax
push 4
mov ebx, 0x8c8
call fcn.00409d50
add esp, 0x34
mov dword [ebp - 4], eax
push 0x80000004
push 0
mov eax, dword [ebp - 4]
test eax, eax
jne 0x4048af
mov eax, 0x4162b0
push eax
push 1
mov ebx, 0x9dc
call fcn.004095c0
add esp, 0x10
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x4048d5
push ebx
call fcn.004087e8
add esp, 4
mov eax, dword [ebp - 8]
mov dword [0x428976], eax
push 0
push 0
push 0
push 0x80000004
push 0
push str.Similarity
push 0x80000004
push 0
mov eax, dword [0x42895e]
test eax, eax
jne 0x404904
mov eax, 0x4162b0
push eax
push 0x80000004
push 0
mov eax, dword [0x428962]
test eax, eax
jne 0x40491a
mov eax, 0x4162b0
push eax
push 4
mov ebx, 0x8c8
call fcn.00409d50
add esp, 0x34
mov dword [ebp - 4], eax
push 0x80000004
push 0
mov eax, dword [ebp - 4]
test eax, eax
jne 0x404943
mov eax, 0x4162b0
push eax
push 1
mov ebx, 0x9e4
call fcn.00409df0
add esp, 0x10
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x404969
push ebx
call fcn.004087e8
add esp, 4
mov eax, dword [ebp - 8]
mov dword [0x42897a], eax
push 0
push 0
push 0
push 0x80000004
push 0
push str.delay
push 0x80000004
push 0
mov eax, dword [0x42895e]
test eax, eax
jne 0x404998
mov eax, 0x4162b0
push eax
push 0x80000004
push 0
mov eax, dword [0x428962]
test eax, eax
jne 0x4049ae
mov eax, 0x4162b0
push eax
push 4
mov ebx, 0x8c8
call fcn.00409d50
add esp, 0x34
mov dword [ebp - 4], eax
push 0x80000004
push 0
mov eax, dword [ebp - 4]
test eax, eax
jne 0x4049d7
mov eax, 0x4162b0
push eax
push 1
mov ebx, 0x9dc
call fcn.004095c0
add esp, 0x10
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x4049fd
push ebx
call fcn.004087e8
add esp, 4
mov eax, dword [ebp - 8]
mov dword [0x42897e], eax
push 0
push 0
push 0
push 0x80000004
push 0
push str.height
push 0x80000004
push 0
mov eax, dword [0x42895e]
test eax, eax
jne 0x404a2c
mov eax, 0x4162b0
push eax
push 0x80000004
push 0
mov eax, dword [0x428962]
test eax, eax
jne 0x404a42
mov eax, 0x4162b0
push eax
push 4
mov ebx, 0x8c8
call fcn.00409d50
add esp, 0x34
mov dword [ebp - 4], eax
push 0x80000004
push 0
mov eax, dword [ebp - 4]
test eax, eax
jne 0x404a6b
mov eax, 0x4162b0
push eax
push 1
mov ebx, 0x9dc
call fcn.004095c0
add esp, 0x10
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x404a91
push ebx
call fcn.004087e8
add esp, 4
mov eax, dword [ebp - 8]
mov dword [0x428982], eax
push 0
push 0
push 0
push 0x80000004
push 0
push str.colour
push 0x80000004
push 0
mov eax, dword [0x42895e]
test eax, eax
jne 0x404ac0
mov eax, 0x4162b0
push eax
push 0x80000004
push 0
mov eax, dword [0x428962]
test eax, eax
jne 0x404ad6
mov eax, 0x4162b0
push eax
push 4
mov ebx, 0x8c8
call fcn.00409d50
add esp, 0x34
mov dword [ebp - 4], eax
push 0x80000004
push 0
mov eax, dword [ebp - 4]
test eax, eax
jne 0x404aff
mov eax, 0x4162b0
push eax
push 1
mov ebx, 0x9dc
call fcn.004095c0
add esp, 0x10
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x404b25
push ebx
call fcn.004087e8
add esp, 4
mov eax, dword [ebp - 8]
mov dword [0x428986], eax
cmp dword [0x42898a], 0
je 0x404d8a
push 0
push 0
push 0
push 0x80000004
push 0
push str.left
push 0x80000004
push 0
mov eax, dword [0x42895e]
test eax, eax
jne 0x404b61
mov eax, 0x4162b0
push eax
push 0x80000004
push 0
mov eax, dword [0x428962]
test eax, eax
jne 0x404b77
mov eax, 0x4162b0
push eax
push 4
mov ebx, 0x8c8
call fcn.00409d50
add esp, 0x34
mov dword [ebp - 4], eax
push 0x80000004
push 0
mov eax, dword [ebp - 4]
test eax, eax
jne 0x404ba0
mov eax, 0x4162b0
push eax
push 1
mov ebx, 0x9dc
call fcn.004095c0
add esp, 0x10
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x404bc6
push ebx
call fcn.004087e8
add esp, 4
mov eax, dword [ebp - 8]
mov dword [0x42898e], eax
push 0
push 0
push 0
push 0x80000004
push 0
push str.right
push 0x80000004
push 0
mov eax, dword [0x42895e]
test eax, eax
jne 0x404bf5
mov eax, 0x4162b0
push eax
push 0x80000004
push 0
mov eax, dword [0x428962]
test eax, eax
jne 0x404c0b
mov eax, 0x4162b0
push eax
push 4
mov ebx, 0x8c8
call fcn.00409d50
add esp, 0x34
mov dword [ebp - 4], eax
push 0x80000004
push 0
mov eax, dword [ebp - 4]
test eax, eax
jne 0x404c34
mov eax, 0x4162b0
push eax
push 1
mov ebx, 0x9dc
call fcn.004095c0
add esp, 0x10
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x404c5a
push ebx
call fcn.004087e8
add esp, 4
mov eax, dword [ebp - 8]
mov dword [0x428992], eax
push 0
push 0
push 0
push 0x80000004
push 0
push str.above
push 0x80000004
push 0
mov eax, dword [0x42895e]
test eax, eax
jne 0x404c89
mov eax, 0x4162b0
push eax
push 0x80000004
push 0
mov eax, dword [0x428962]
test eax, eax
jne 0x404c9f
mov eax, 0x4162b0
push eax
push 4
mov ebx, 0x8c8
call fcn.00409d50
add esp, 0x34
mov dword [ebp - 4], eax
push 0x80000004
push 0
mov eax, dword [ebp - 4]
test eax, eax
jne 0x404cc8
mov eax, 0x4162b0
push eax
push 1
mov ebx, 0x9dc
call fcn.004095c0
add esp, 0x10
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x404cee
push ebx
call fcn.004087e8
add esp, 4
mov eax, dword [ebp - 8]
mov dword [0x428996], eax
push 0
push 0
push 0
push 0x80000004
push 0
push str.under
push 0x80000004
push 0
mov eax, dword [0x42895e]
test eax, eax
jne 0x404d1d
mov eax, 0x4162b0
push eax
push 0x80000004
push 0
mov eax, dword [0x428962]
test eax, eax
jne 0x404d33
mov eax, 0x4162b0
push eax
push 4
mov ebx, 0x8c8
call fcn.00409d50
add esp, 0x34
mov dword [ebp - 4], eax
push 0x80000004
push 0
mov eax, dword [ebp - 4]
test eax, eax
jne 0x404d5c
mov eax, 0x4162b0
push eax
push 1
mov ebx, 0x9dc
call fcn.004095c0
add esp, 0x10
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x404d82
push ebx
call fcn.004087e8
add esp, 4
mov eax, dword [ebp - 8]
mov dword [0x42899a], eax
push 0
push 0
push 0
push 0x80000004
push 0
push str.Range
push 0x80000004
push 0
mov eax, dword [0x42895e]
test eax, eax
jne 0x404db1
mov eax, 0x4162b0
push eax
push 0x80000004
push 0
mov eax, dword [0x428962]
test eax, eax
jne 0x404dc7
mov eax, 0x4162b0
push eax
push 4
mov ebx, 0x8c8
call fcn.00409d50
add esp, 0x34
mov dword [ebp - 4], eax
push 0x80000004
push 0
mov eax, dword [ebp - 4]
test eax, eax
jne 0x404df0
mov eax, 0x4162b0
push eax
push 1
mov ebx, 0x9dc
call fcn.004095c0
add esp, 0x10
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x404e16
push ebx
call fcn.004087e8
add esp, 4
cmp dword [ebp - 8], 1
jne 0x404e2f
mov dword [0x42899e], 1
jmp 0x404e39
mov dword [0x42899e], 0
push 0
push 0
push 0
push 0x80000004
push 0
push str.automatic
push 0x80000004
push 0
mov eax, dword [0x42895e]
test eax, eax
jne 0x404e60
mov eax, 0x4162b0
push eax
push 0x80000004
push 0
mov eax, dword [0x428962]
test eax, eax
jne 0x404e76
mov eax, 0x4162b0
push eax
push 4
mov ebx, 0x8c8
call fcn.00409d50
add esp, 0x34
mov dword [ebp - 4], eax
push 0x80000004
push 0
mov eax, dword [ebp - 4]
test eax, eax
jne 0x404e9f
mov eax, 0x4162b0
push eax
push 1
mov ebx, 0x9dc
call fcn.004095c0
add esp, 0x10
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x404ec5
push ebx
call fcn.004087e8
add esp, 4
cmp dword [ebp - 8], 1
jne 0x404ede
mov dword [0x4289a2], 1
jmp 0x404ee8
mov dword [0x4289a2], 0
push 0
push 0
push 0
push 0x80000004
push 0
push str.screen
push 0x80000004
push 0
mov eax, dword [0x42895e]
test eax, eax
jne 0x404f0f
mov eax, 0x4162b0
push eax
push 0x80000004
push 0
mov eax, dword [0x428962]
test eax, eax
jne 0x404f25
mov eax, 0x4162b0
push eax
push 4
mov ebx, 0x8c8
call fcn.00409d50
add esp, 0x34
mov dword [ebp - 4], eax
push 0x80000004
push 0
mov eax, dword [ebp - 4]
test eax, eax
jne 0x404f4e
mov eax, 0x4162b0
push eax
push 1
mov ebx, 0x9dc
call fcn.004095c0
add esp, 0x10
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x404f74
push ebx
call fcn.004087e8
add esp, 4
cmp dword [ebp - 8], 1
jne 0x404f8d
mov dword [0x4289a6], 1
jmp 0x404f97
mov dword [0x4289a6], 0
push 0
push 0
push 0
push 0x80000004
push 0
push str.identify
push 0x80000004
push 0
mov eax, dword [0x42895e]
test eax, eax
jne 0x404fbe
mov eax, 0x4162b0
push eax
push 0x80000004
push 0
mov eax, dword [0x428962]
test eax, eax
jne 0x404fd4
mov eax, 0x4162b0
push eax
push 4
mov ebx, 0x8c8
call fcn.00409d50
add esp, 0x34
mov dword [ebp - 4], eax
push 0x80000004
push 0
mov eax, dword [ebp - 4]
test eax, eax
jne 0x404ffd
mov eax, 0x4162b0
push eax
push 1
mov ebx, 0x9dc
call fcn.004095c0
add esp, 0x10
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x405023
push ebx
call fcn.004087e8
add esp, 4
cmp dword [ebp - 8], 1
jne 0x40503c
mov dword [0x4289aa], 1
jmp 0x405046
mov dword [0x4289aa], 0
push 0
push 0
push 0
push 0x80000004
push 0
push str.Customize
push 0x80000004
push 0
mov eax, dword [0x42895e]
test eax, eax
jne 0x40506d
mov eax, 0x4162b0
push eax
push 0x80000004
push 0
mov eax, dword [0x428962]
test eax, eax
jne 0x405083
mov eax, 0x4162b0
push eax
push 4
mov ebx, 0x8c8
call fcn.00409d50
add esp, 0x34
mov dword [ebp - 4], eax
push 0x80000004
push 0
mov eax, dword [ebp - 4]
test eax, eax
jne 0x4050ac
mov eax, 0x4162b0
push eax
push 1
mov ebx, 0x9dc
call fcn.004095c0
add esp, 0x10
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x4050d2
push ebx
call fcn.004087e8
add esp, 4
cmp dword [ebp - 8], 1
jne 0x4050eb
mov dword [0x42898a], 1
jmp 0x4050f5
mov dword [0x42898a], 0
mov dword [ebp - 4], esp
push 0x26
xor eax, eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
nop
nop
cmp dword [ebp - 4], esp
je 0x405123
push 0x9d0
push 0x4010ed2
push 6
call fcn.00408800
add esp, 0xc
mov dword [ebp - 8], eax
push 0x80000301
push 0
push 1
push 0x80000301
push 0
push dword [ebp - 8]
push 2
mov ebx, 0xc4
call fcn.00409850
add esp, 0x1c
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 1
jne 0x405188
push 0x64
push 0x64
call fcn.004054e6
push 0x80000301
push 0
push 0x64
push 1
mov ebx, 0x67c
call fcn.00408f70
add esp, 0x10
jmp 0x404725