Function at 0x40f7bd
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
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 0x40f7f4
push 0x4c
push 0x402a28e
push 6
call fcn.0041f825
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.00424080
add esp, 0x1c
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 1
jne 0x40f845
push 0x45da13
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0xc]
push 0
call fcn.0041f807
add esp, 4
mov dword [ebp - 4], esp
push 0x70
xor eax, eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
nop
nop
cmp dword [ebp - 4], esp
je 0x40f873
push 0x158
push 0x402a28e
push 6
call fcn.0041f825
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.00424080
add esp, 0x1c
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 1
jne 0x40f945
and dword [0x45d9ef], 1
xor dword [0x45d9ef], 1
cmp dword [0x45d9ef], 1
jne 0x40f908
mov eax, 0x441770
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
push eax
call fcn.0040228c
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x40f8ea
push ebx
call fcn.0041f81f
add esp, 4
lea eax, [ebp - 8]
push eax
call fcn.0040b0ac
mov ebx, dword [ebp - 8]
test ebx, ebx
je 0x40f903
push ebx
call fcn.0041f81f
add esp, 4
jmp 0x40f945
mov eax, 0x44178d
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
push eax
call fcn.0040228c
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x40f92c
push ebx
call fcn.0041f81f
add esp, 4
lea eax, [ebp - 8]
push eax
call fcn.0040b0ac
mov ebx, dword [ebp - 8]
test ebx, ebx
je 0x40f945
push ebx
call fcn.0041f81f
add esp, 4
mov dword [ebp - 4], esp
push 0x71
xor eax, eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
nop
nop
cmp dword [ebp - 4], esp
je 0x40f973
push 0x422
push 0x402a28e
push 6
call fcn.0041f825
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.00424080
add esp, 0x1c
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 1
jne 0x40fb9f
cmp dword [0x45d9f3], 4
jne 0x40f9c7
mov dword [0x45d9f3], 0
jmp 0x40f9cd
inc dword [0x45d9f3]
cmp dword [0x45d9f3], 0
jne 0x40fa21
mov dword [0x45d9f7], 1
mov eax, 0x4417aa
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
push eax
call fcn.0040228c
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x40fa08
push ebx
call fcn.0041f81f
add esp, 4
lea eax, [ebp - 8]
push eax
call fcn.0040b0ac
mov ebx, dword [ebp - 8]
test ebx, ebx
je 0x40fa21
push ebx
call fcn.0041f81f
add esp, 4
cmp dword [0x45d9f3], 1
jne 0x40fa75
mov dword [0x45d9f7], 2
mov eax, 0x4417c8
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
push eax
call fcn.0040228c
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x40fa5c
push ebx
call fcn.0041f81f
add esp, 4
lea eax, [ebp - 8]
push eax
call fcn.0040b0ac
mov ebx, dword [ebp - 8]
test ebx, ebx
je 0x40fa75
push ebx
call fcn.0041f81f
add esp, 4
cmp dword [0x45d9f3], 2
jne 0x40fac9
mov dword [0x45d9f7], 0x10
mov eax, 0x4417e6
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
push eax
call fcn.0040228c
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x40fab0
push ebx
call fcn.0041f81f
add esp, 4
lea eax, [ebp - 8]
push eax
call fcn.0040b0ac
mov ebx, dword [ebp - 8]
test ebx, ebx
je 0x40fac9
push ebx
call fcn.0041f81f
add esp, 4
cmp dword [0x45d9f3], 3
jne 0x40fb1d
mov dword [0x45d9f7], 6
mov eax, 0x441806
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
push eax
call fcn.0040228c
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x40fb04
push ebx
call fcn.0041f81f
add esp, 4
lea eax, [ebp - 8]
push eax
call fcn.0040b0ac
mov ebx, dword [ebp - 8]
test ebx, ebx
je 0x40fb1d
push ebx
call fcn.0041f81f
add esp, 4
cmp dword [0x45d9f3], 4
jne 0x40fb71
mov dword [0x45d9f7], 5
mov eax, 0x441825
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
push eax
call fcn.0040228c
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x40fb58
push ebx
call fcn.0041f81f
add esp, 4
lea eax, [ebp - 8]
push eax
call fcn.0040b0ac
mov ebx, dword [ebp - 8]
test ebx, ebx
je 0x40fb71
push ebx
call fcn.0041f81f
add esp, 4
mov dword [ebp - 4], esp
push 0x64
xor eax, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
nop
nop
cmp dword [ebp - 4], esp
je 0x40fb9f
push 0xb75
push 0x402a28e
push 6
call fcn.0041f825
add esp, 0xc
mov dword [ebp - 4], esp
push 0x72
xor eax, eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
nop
nop
cmp dword [ebp - 4], esp
je 0x40fbcd
push 0xbfd
push 0x402a28e
push 6
call fcn.0041f825
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.00424080
add esp, 0x1c
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 1
jne 0x40fccd
and dword [0x45d9fb], 1
xor dword [0x45d9fb], 1
cmp dword [0x45d9fb], 1
jne 0x40fc62
mov eax, 0x441844
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
push eax
call fcn.0040228c
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x40fc44
push ebx
call fcn.0041f81f
add esp, 4
lea eax, [ebp - 8]
push eax
call fcn.0040b0ac
mov ebx, dword [ebp - 8]
test ebx, ebx
je 0x40fc5d
push ebx
call fcn.0041f81f
add esp, 4
jmp 0x40fc9f
mov eax, 0x441861
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
push eax
call fcn.0040228c
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x40fc86
push ebx
call fcn.0041f81f
add esp, 4
lea eax, [ebp - 8]
push eax
call fcn.0040b0ac
mov ebx, dword [ebp - 8]
test ebx, ebx
je 0x40fc9f
push ebx
call fcn.0041f81f
add esp, 4
mov dword [ebp - 4], esp
push 0x64
xor eax, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
nop
nop
cmp dword [ebp - 4], esp
je 0x40fccd
push 0xe5b
push 0x402a28e
push 6
call fcn.0041f825
add esp, 0xc
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 0x40fcfb
push 0xee7
push 0x402a28e
push 6
call fcn.0041f825
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.00424080
add esp, 0x1c
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 1
jne 0x40feb6
fld dword [0x45d9ff]
fstp qword [ebp - 8]
fld qword [ebp - 8]
fsub qword [0x44187e]
ftst
fnstsw ax
test ah, 1
je 0x40fd50
fchs
fcomp qword [0x4414de]
fnstsw ax
test ah, 0x41
je 0x40fd70
mov dword [0x45d9ff], 0x41a00000
jmp 0x40fdbc
fld dword [0x45d9ff]
fstp qword [ebp - 8]
fld qword [ebp - 8]
fsub qword [0x441886]
fcomp qword [0x4416b4]
fnstsw ax
test ah, 1
jne 0x40fdaa
fld dword [0x45d9ff]
fadd qword [0x44188e]
fstp dword [0x45d9ff]
jmp 0x40fdbc
fld dword [0x45d9ff]
fadd qword [0x441896]
fstp dword [0x45d9ff]
mov eax, 0x44189e
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
push eax
call fcn.0040228c
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x40fde0
push ebx
call fcn.0041f81f
add esp, 4
push 0x80000501
push 0
push dword [0x45d9ff]
push 1
mov ebx, 0x168
call fcn.00420bc0
add esp, 0x10
mov dword [ebp - 0xc], eax
mov eax, 0x4418b7
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x10]
push eax
call fcn.0040228c
mov dword [ebp - 0x14], eax
mov ebx, dword [ebp - 0x10]
test ebx, ebx
je 0x40fe26
push ebx
call fcn.0041f81f
add esp, 4
push dword [ebp - 0x14]
push dword [ebp - 0xc]
push dword [ebp - 8]
mov ecx, 3
call fcn.00401bf7
add esp, 0xc
mov dword [ebp - 0x18], eax
mov ebx, dword [ebp - 8]
test ebx, ebx
je 0x40fe4f
push ebx
call fcn.0041f81f
add esp, 4
mov ebx, dword [ebp - 0xc]
test ebx, ebx
je 0x40fe5f
push ebx
call fcn.0041f81f
add esp, 4
mov ebx, dword [ebp - 0x14]
test ebx, ebx
je 0x40fe6f
push ebx
call fcn.0041f81f
add esp, 4
lea eax, [ebp - 0x18]
push eax
call fcn.0040b0ac
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x40fe88
push ebx
call fcn.0041f81f
add esp, 4
mov dword [ebp - 4], esp
push 0x64
xor eax, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
nop
nop
cmp dword [ebp - 4], esp
je 0x40feb6
push 0x114b
push 0x402a28e
push 6
call fcn.0041f825
add esp, 0xc
mov dword [ebp - 4], esp
push 0x28
xor eax, eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
nop
nop
cmp dword [ebp - 4], esp
je 0x40fee4
push 0x11b2
push 0x402a28e
push 6
call fcn.0041f825
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.00424080
add esp, 0x1c
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 1
jne 0x41009f
fld dword [0x45d9ff]
fstp qword [ebp - 8]
fld qword [ebp - 8]
fsub qword [0x441896]
ftst
fnstsw ax
test ah, 1
je 0x40ff39
fchs
fcomp qword [0x4414de]
fnstsw ax
test ah, 0x41
je 0x40ff59
mov dword [0x45d9ff], 0x43fa0000
jmp 0x40ffa5
fld dword [0x45d9ff]
fstp qword [ebp - 8]
fld qword [ebp - 8]
fsub qword [0x441886]
fcomp qword [0x4416b4]
fnstsw ax
test ah, 1
jne 0x40ff93
fld dword [0x45d9ff]
fsub qword [0x44188e]
fstp dword [0x45d9ff]
jmp 0x40ffa5
fld dword [0x45d9ff]
fsub qword [0x441896]
fstp dword [0x45d9ff]
mov eax, 0x4418c1
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
push eax
call fcn.0040228c
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x40ffc9
push ebx
call fcn.0041f81f
add esp, 4
push 0x80000501
push 0
push dword [0x45d9ff]
push 1
mov ebx, 0x168
call fcn.00420bc0
add esp, 0x10
mov dword [ebp - 0xc], eax
mov eax, 0x4418da
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x10]
push eax
call fcn.0040228c
mov dword [ebp - 0x14], eax
mov ebx, dword [ebp - 0x10]
test ebx, ebx
je 0x41000f
push ebx
call fcn.0041f81f
add esp, 4
push dword [ebp - 0x14]
push dword [ebp - 0xc]
push dword [ebp - 8]
mov ecx, 3
call fcn.00401bf7
add esp, 0xc
mov dword [ebp - 0x18], eax
mov ebx, dword [ebp - 8]
test ebx, ebx
je 0x410038
push ebx
call fcn.0041f81f
add esp, 4
mov ebx, dword [ebp - 0xc]
test ebx, ebx
je 0x410048
push ebx
call fcn.0041f81f
add esp, 4
mov ebx, dword [ebp - 0x14]
test ebx, ebx
je 0x410058
push ebx
call fcn.0041f81f
add esp, 4
lea eax, [ebp - 0x18]
push eax
call fcn.0040b0ac
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x410071
push ebx
call fcn.0041f81f
add esp, 4
mov dword [ebp - 4], esp
push 0x64
xor eax, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
nop
nop
cmp dword [ebp - 4], esp
je 0x41009f
push 0x1416
push 0x402a28e
push 6
call fcn.0041f825
add esp, 0xc
mov dword [ebp - 4], esp
push 0x73
xor eax, eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
nop
nop
cmp dword [ebp - 4], esp
je 0x4100cd
push 0x148b
push 0x402a28e
push 6
call fcn.0041f825
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.00424080
add esp, 0x1c
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 1
jne 0x4101cd
and dword [0x45da03], 1
xor dword [0x45da03], 1
cmp dword [0x45da03], 1
jne 0x410162
mov eax, 0x4418e4
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
push eax
call fcn.0040228c
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x410144
push ebx
call fcn.0041f81f
add esp, 4
lea eax, [ebp - 8]
push eax
call fcn.0040b0ac
mov ebx, dword [ebp - 8]
test ebx, ebx
je 0x41015d
push ebx
call fcn.0041f81f
add esp, 4
jmp 0x41019f
mov eax, 0x441901
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
push eax
call fcn.0040228c
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x410186
push ebx
call fcn.0041f81f
add esp, 4
lea eax, [ebp - 8]
push eax
call fcn.0040b0ac
mov ebx, dword [ebp - 8]
test ebx, ebx
je 0x41019f
push ebx
call fcn.0041f81f
add esp, 4
mov dword [ebp - 4], esp
push 0x64
xor eax, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
nop
nop
cmp dword [ebp - 4], esp
je 0x4101cd
push 0x16e9
push 0x402a28e
push 6
call fcn.0041f825
add esp, 0xc
jmp 0x40f7c6