Function at 0x40398b
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov dword [ebp - 4], 0
push 8
call fcn.004072ac
add esp, 4
mov dword [ebp - 8], eax
mov ebx, eax
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
push 0
mov ebx, 0x350
call fcn.00407710
add esp, 4
cmp dword [0x423a72], 0
je 0x403a06
mov eax, str.FF90FF
push eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x4039fd
push ebx
call fcn.004072a0
add esp, 4
pop eax
mov dword [ebp - 4], eax
jmp 0x403a20
mov eax, str.3B2BFF
push eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x403a1c
push ebx
call fcn.004072a0
add esp, 4
pop eax
mov dword [ebp - 4], eax
cmp dword [0x423a76], 0
je 0x403d30
cmp dword [0x423a6a], 0
je 0x403a9b
mov dword [ebp - 0x14], 0
push 0
push dword [ebp - 0x14]
push 1
push dword [0x423a5e]
lea eax, [ebp - 4]
push eax
push 1
push 0x221
push 1
push 0x3ed
push 1
push 0x1ee
push 1
push 0x394
mov dword [ebp - 0x18], 0
push 0
push dword [ebp - 0x18]
call fcn.0040402d
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
push eax
mov ebx, dword [ebp - 8]
push ebx
call fcn.004072a0
add esp, 4
pop eax
mov dword [ebp - 8], eax
jmp 0x403af7
mov dword [ebp - 0x14], 0
push 0
push dword [ebp - 0x14]
push 1
push dword [0x423a5e]
lea eax, [ebp - 4]
push eax
push 1
push 0x221
push 1
push 0x3ca
push 1
push 0x1f4
push 1
push 0x3b6
mov dword [ebp - 0x18], 0
push 0
push dword [ebp - 0x18]
call fcn.0040402d
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
push eax
mov ebx, dword [ebp - 8]
push ebx
call fcn.004072a0
add esp, 4
pop eax
mov dword [ebp - 8], eax
cmp dword [0x423a6e], 0
je 0x403bfc
mov ebx, dword [ebp - 8]
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp - 0x14]
cmp dword [ebx], 0
jle 0x403b32
mov ebx, dword [ebp - 8]
add ebx, 4
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
cmp dword [ebx], 0
jle 0x403b32
mov eax, 1
jmp 0x403b37
mov eax, 0
test eax, eax
je 0x403bf7
mov ebx, dword [ebp - 8]
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp - 0x14]
fild dword [ebx]
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fsub qword [0x423437]
fstp qword [ebp - 0x24]
fld qword [ebp - 0x24]
call fcn.004013fd
mov dword [ebp - 0xc], eax
mov ebx, dword [ebp - 8]
add ebx, 4
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp - 0x14]
fild dword [ebx]
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fild dword [0x423a66]
fstp qword [ebp - 0x24]
fsub qword [ebp - 0x24]
fstp qword [ebp - 0x2c]
fld qword [ebp - 0x2c]
call fcn.004013fd
mov dword [ebp - 0x10], eax
cmp dword [0x423a32], 0
je 0x403bb5
push dword [0x423a5a]
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.004056c7
jmp 0x403bc6
push dword [0x423a5a]
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.00405def
cmp dword [0x423a62], 0
je 0x403bf7
push 0x80000301
push 0
push dword [0x423a62]
push 1
mov ebx, 0x1c
mov eax, 0x409730
call fcn.00407670
add esp, 0x10
jmp 0x403d2b
mov dword [ebp - 0x14], esp
push dword [0x423a4e]
xor eax, eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
nop
nop
cmp dword [ebp - 0x14], esp
je 0x403c2b
push 0x4a5
push 0x4010b85
push 6
call fcn.004072b8
add esp, 0xc
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x403d2b
mov ebx, dword [ebp - 8]
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp - 0x14]
cmp dword [ebx], 0
jle 0x403c66
mov ebx, dword [ebp - 8]
add ebx, 4
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
cmp dword [ebx], 0
jle 0x403c66
mov eax, 1
jmp 0x403c6b
mov eax, 0
test eax, eax
je 0x403d2b
mov ebx, dword [ebp - 8]
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp - 0x14]
fild dword [ebx]
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fsub qword [0x423437]
fstp qword [ebp - 0x24]
fld qword [ebp - 0x24]
call fcn.004013fd
mov dword [ebp - 0xc], eax
mov ebx, dword [ebp - 8]
add ebx, 4
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp - 0x14]
fild dword [ebx]
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fild dword [0x423a66]
fstp qword [ebp - 0x24]
fsub qword [ebp - 0x24]
fstp qword [ebp - 0x2c]
fld qword [ebp - 0x2c]
call fcn.004013fd
mov dword [ebp - 0x10], eax
cmp dword [0x423a32], 0
je 0x403ce9
push dword [0x423a5a]
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.004056c7
jmp 0x403cfa
push dword [0x423a5a]
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.00405def
cmp dword [0x423a62], 0
je 0x403d2b
push 0x80000301
push 0
push dword [0x423a62]
push 1
mov ebx, 0x1c
mov eax, 0x409730
call fcn.00407670
add esp, 0x10
jmp 0x403fe8
cmp dword [0x423a6a], 0
je 0x403d9e
mov dword [ebp - 0x14], 0
push 0
push dword [ebp - 0x14]
push 1
push dword [0x423a5e]
lea eax, [ebp - 4]
push eax
push 1
push 0x2da
push 1
push 0x515
push 1
push 0x2bc
push 1
push 0x4ea
mov dword [ebp - 0x18], 0
push 0
push dword [ebp - 0x18]
call fcn.0040402d
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
push eax
mov ebx, dword [ebp - 8]
push ebx
call fcn.004072a0
add esp, 4
pop eax
mov dword [ebp - 8], eax
jmp 0x403dfa
mov dword [ebp - 0x14], 0
push 0
push dword [ebp - 0x14]
push 1
push dword [0x423a5e]
lea eax, [ebp - 4]
push eax
push 1
push 0x2da
push 1
push 0x50a
push 1
push 0x1f4
push 1
push 0x4f6
mov dword [ebp - 0x18], 0
push 0
push dword [ebp - 0x18]
call fcn.0040402d
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
push eax
mov ebx, dword [ebp - 8]
push ebx
call fcn.004072a0
add esp, 4
pop eax
mov dword [ebp - 8], eax
cmp dword [0x423a6e], 0
je 0x403edc
mov ebx, dword [ebp - 8]
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp - 0x14]
cmp dword [ebx], 0
jle 0x403e35
mov ebx, dword [ebp - 8]
add ebx, 4
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
cmp dword [ebx], 0
jle 0x403e35
mov eax, 1
jmp 0x403e3a
mov eax, 0
test eax, eax
je 0x403ed7
mov ebx, dword [ebp - 8]
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp - 0x14]
fild dword [ebx]
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fsub qword [0x42343f]
fstp qword [ebp - 0x24]
fld qword [ebp - 0x24]
call fcn.004013fd
mov dword [ebp - 0xc], eax
mov ebx, dword [ebp - 8]
add ebx, 4
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp - 0x14]
fild dword [ebx]
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fild dword [0x423a66]
fstp qword [ebp - 0x24]
fsub qword [ebp - 0x24]
fstp qword [ebp - 0x2c]
fld qword [ebp - 0x2c]
call fcn.004013fd
mov dword [ebp - 0x10], eax
push dword [0x423a5a]
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.00405def
cmp dword [0x423a62], 0
je 0x403ed7
push 0x80000301
push 0
push dword [0x423a62]
push 1
mov ebx, 0x1c
mov eax, 0x409730
call fcn.00407670
add esp, 0x10
jmp 0x403fe8
mov dword [ebp - 0x14], esp
push dword [0x423a4e]
xor eax, eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
nop
nop
cmp dword [ebp - 0x14], esp
je 0x403f0b
push 0xa7b
push 0x4010b85
push 6
call fcn.004072b8
add esp, 0xc
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x403fe8
mov ebx, dword [ebp - 8]
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp - 0x14]
cmp dword [ebx], 0
jle 0x403f46
mov ebx, dword [ebp - 8]
add ebx, 4
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
cmp dword [ebx], 0
jle 0x403f46
mov eax, 1
jmp 0x403f4b
mov eax, 0
test eax, eax
je 0x403fe8
mov ebx, dword [ebp - 8]
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp - 0x14]
fild dword [ebx]
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fsub qword [0x42343f]
fstp qword [ebp - 0x24]
fld qword [ebp - 0x24]
call fcn.004013fd
mov dword [ebp - 0xc], eax
mov ebx, dword [ebp - 8]
add ebx, 4
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp - 0x14]
fild dword [ebx]
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fild dword [0x423a66]
fstp qword [ebp - 0x24]
fsub qword [ebp - 0x24]
fstp qword [ebp - 0x2c]
fld qword [ebp - 0x2c]
call fcn.004013fd
mov dword [ebp - 0x10], eax
push dword [0x423a5a]
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.00405def
cmp dword [0x423a62], 0
je 0x403fe8
push 0x80000301
push 0
push dword [0x423a62]
push 1
mov ebx, 0x1c
mov eax, 0x409730
call fcn.00407670
add esp, 0x10
jmp 0x4039c8