Function at 0x10002118
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
call fcn.10002aa7
push 0
mov ebx, 0x350
call fcn.10006f60
add esp, 4
cmp dword [0x1001462e], 0x780
jg 0x100021b6
cmp dword [0x10014632], 0
je 0x100021b1
push 1
push 2
push 1
push 0x3f666666
push 0x1001463a
push 1
push 0x433
push 1
push 0x427
push 1
push 0x64
push 1
push 0x3e8
mov dword [ebp - 4], 0
push 0
push dword [ebp - 4]
call fcn.10003a85
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
push eax
mov ebx, dword [0x10014636]
push ebx
call fcn.10005fff
add esp, 4
pop eax
mov dword [0x10014636], eax
jmp 0x1000221f
cmp dword [0x10014632], 0
je 0x1000221f
push 1
push 2
push 1
push 0x3f666666
push 0x1001463a
push 1
push 0x59a
push 1
push 0x5e3
push 1
push 0x3d1
push 1
push 0x46d
mov dword [ebp - 4], 0
push 0
push dword [ebp - 4]
call fcn.10003a85
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
push eax
mov ebx, dword [0x10014636]
push ebx
call fcn.10005fff
add esp, 4
pop eax
mov dword [0x10014636], eax
mov ebx, dword [0x10014636]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 4]
cmp dword [ebx], 0
jg 0x10002253
mov ebx, dword [0x10014636]
add ebx, 4
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 0xc]
cmp dword [ebx], 0
jg 0x10002253
mov eax, 1
jmp 0x10002258
mov eax, 0
test eax, eax
je 0x100022c6
mov dword [ebp - 4], 0
push 0
push dword [ebp - 4]
push 1
push dword [0x10014656]
push 0x10014652
push 1
push dword [0x1001464e]
push 1
push dword [0x1001464a]
push 1
push dword [0x10014646]
push 1
push dword [0x10014642]
mov dword [ebp - 8], 0
push 0
push dword [ebp - 8]
call fcn.10003a85
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
push eax
mov ebx, dword [0x1001463e]
push ebx
call fcn.10005fff
add esp, 4
pop eax
mov dword [0x1001463e], eax
mov ebx, dword [0x10014636]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 4]
cmp dword [ebx], 0
jle 0x100022fa
mov ebx, dword [0x10014636]
add ebx, 4
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 0xc]
cmp dword [ebx], 0
jle 0x100022fa
mov eax, 1
jmp 0x100022ff
mov eax, 0
test eax, eax
je 0x1000236c
mov dword [ebp - 4], 0
push 0
push dword [ebp - 4]
push 1
push 0x3f4ccccd
push 0x1001465e
push 1
push dword [0x1001464e]
push 1
push dword [0x1001464a]
push 1
push dword [0x10014646]
push 1
push dword [0x10014642]
mov dword [ebp - 8], 0
push 0
push dword [ebp - 8]
call fcn.10003a85
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
push eax
mov ebx, dword [0x1001465a]
push ebx
call fcn.10005fff
add esp, 4
pop eax
mov dword [0x1001465a], eax
cmp dword [0x10014662], 0
je 0x10002602
mov ebx, dword [0x10014636]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 4]
cmp dword [ebx], 0
jg 0x100023ad
mov ebx, dword [0x10014636]
add ebx, 4
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 0xc]
cmp dword [ebx], 0
jg 0x100023ad
mov eax, 1
jmp 0x100023b2
mov eax, 0
test eax, eax
je 0x100024bb
mov ebx, dword [0x1001463e]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 4]
cmp dword [ebx], 0
jle 0x100023ee
mov ebx, dword [0x1001463e]
add ebx, 4
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 0xc]
cmp dword [ebx], 0
jle 0x100023ee
mov eax, 1
jmp 0x100023f3
mov eax, 0
test eax, eax
je 0x100024bb
mov ebx, dword [0x1001463e]
mov dword [ebp - 4], ebx
fild dword [0x1001466a]
fstp dword [ebp - 8]
push dword [ebp - 8]
mov ebx, dword [ebp - 4]
fild dword [ebx]
fstp dword [ebp - 0xc]
push dword [ebp - 0xc]
call fcn.10004f2e
mov dword [ebp - 0x14], eax
fld dword [ebp - 0x14]
call fcn.1000116f
mov dword [0x10014666], eax
mov ebx, dword [0x1001463e]
add ebx, 4
mov dword [ebp - 4], ebx
fild dword [0x10014672]
fstp dword [ebp - 8]
push dword [ebp - 8]
mov ebx, dword [ebp - 4]
fild dword [ebx]
fstp dword [ebp - 0xc]
push dword [ebp - 0xc]
call fcn.10004f2e
mov dword [ebp - 0x14], eax
fld dword [ebp - 0x14]
call fcn.1000116f
mov dword [0x1001466e], eax
push dword [0x10014676]
push dword [0x1001466e]
push dword [0x10014666]
call fcn.10004f59
cmp dword [0x1001467a], 0
je 0x100024bb
mov dword [ebp - 4], esp
push dword [0x1001467a]
xor eax, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
nop
nop
cmp dword [ebp - 4], esp
je 0x100024bb
push 0x5d2
push 0x404b531
push 6
call fcn.1000600b
add esp, 0xc
mov ebx, dword [0x10014636]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 4]
cmp dword [ebx], 0
jle 0x100024ef
mov ebx, dword [0x10014636]
add ebx, 4
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 0xc]
cmp dword [ebx], 0
jle 0x100024ef
mov eax, 1
jmp 0x100024f4
mov eax, 0
test eax, eax
je 0x100025fd
mov ebx, dword [0x1001465a]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 4]
cmp dword [ebx], 0
jle 0x10002530
mov ebx, dword [0x1001465a]
add ebx, 4
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 0xc]
cmp dword [ebx], 0
jle 0x10002530
mov eax, 1
jmp 0x10002535
mov eax, 0
test eax, eax
je 0x100025fd
mov ebx, dword [0x1001465a]
mov dword [ebp - 4], ebx
fild dword [0x1001466a]
fstp dword [ebp - 8]
push dword [ebp - 8]
mov ebx, dword [ebp - 4]
fild dword [ebx]
fstp dword [ebp - 0xc]
push dword [ebp - 0xc]
call fcn.10004f2e
mov dword [ebp - 0x14], eax
fld dword [ebp - 0x14]
call fcn.1000116f
mov dword [0x10014666], eax
mov ebx, dword [0x1001465a]
add ebx, 4
mov dword [ebp - 4], ebx
fild dword [0x10014672]
fstp dword [ebp - 8]
push dword [ebp - 8]
mov ebx, dword [ebp - 4]
fild dword [ebx]
fstp dword [ebp - 0xc]
push dword [ebp - 0xc]
call fcn.10004f2e
mov dword [ebp - 0x14], eax
fld dword [ebp - 0x14]
call fcn.1000116f
mov dword [0x1001466e], eax
push dword [0x10014676]
push dword [0x1001466e]
push dword [0x10014666]
call fcn.10004f59
cmp dword [0x1001467a], 0
je 0x100025fd
mov dword [ebp - 4], esp
push dword [0x1001467a]
xor eax, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
nop
nop
cmp dword [ebp - 4], esp
je 0x100025fd
push 0x816
push 0x404b531
push 6
call fcn.1000600b
add esp, 0xc
jmp 0x100028c2
mov dword [ebp - 4], esp
push dword [0x1001467e]
xor eax, eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
nop
nop
cmp dword [ebp - 4], esp
je 0x10002631
push 0x8a7
push 0x404b531
push 6
call fcn.1000600b
add esp, 0xc
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x100028c2
mov ebx, dword [0x10014636]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 4]
cmp dword [ebx], 0
jg 0x10002672
mov ebx, dword [0x10014636]
add ebx, 4
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 0xc]
cmp dword [ebx], 0
jg 0x10002672
mov eax, 1
jmp 0x10002677
mov eax, 0
test eax, eax
je 0x10002780
mov ebx, dword [0x1001463e]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 4]
cmp dword [ebx], 0
jle 0x100026b3
mov ebx, dword [0x1001463e]
add ebx, 4
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 0xc]
cmp dword [ebx], 0
jle 0x100026b3
mov eax, 1
jmp 0x100026b8
mov eax, 0
test eax, eax
je 0x10002780
mov ebx, dword [0x1001463e]
mov dword [ebp - 4], ebx
fild dword [0x1001466a]
fstp dword [ebp - 8]
push dword [ebp - 8]
mov ebx, dword [ebp - 4]
fild dword [ebx]
fstp dword [ebp - 0xc]
push dword [ebp - 0xc]
call fcn.10004f2e
mov dword [ebp - 0x14], eax
fld dword [ebp - 0x14]
call fcn.1000116f
mov dword [0x10014666], eax
mov ebx, dword [0x1001463e]
add ebx, 4
mov dword [ebp - 4], ebx
fild dword [0x10014672]
fstp dword [ebp - 8]
push dword [ebp - 8]
mov ebx, dword [ebp - 4]
fild dword [ebx]
fstp dword [ebp - 0xc]
push dword [ebp - 0xc]
call fcn.10004f2e
mov dword [ebp - 0x14], eax
fld dword [ebp - 0x14]
call fcn.1000116f
mov dword [0x1001466e], eax
push dword [0x10014676]
push dword [0x1001466e]
push dword [0x10014666]
call fcn.10004f59
cmp dword [0x1001467a], 0
je 0x10002780
mov dword [ebp - 4], esp
push dword [0x1001467a]
xor eax, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
nop
nop
cmp dword [ebp - 4], esp
je 0x10002780
push 0xaca
push 0x404b531
push 6
call fcn.1000600b
add esp, 0xc
mov ebx, dword [0x10014636]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 4]
cmp dword [ebx], 0
jle 0x100027b4
mov ebx, dword [0x10014636]
add ebx, 4
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 0xc]
cmp dword [ebx], 0
jle 0x100027b4
mov eax, 1
jmp 0x100027b9
mov eax, 0
test eax, eax
je 0x100028c2
mov ebx, dword [0x1001465a]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 4]
cmp dword [ebx], 0
jle 0x100027f5
mov ebx, dword [0x1001465a]
add ebx, 4
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 0xc]
cmp dword [ebx], 0
jle 0x100027f5
mov eax, 1
jmp 0x100027fa
mov eax, 0
test eax, eax
je 0x100028c2
mov ebx, dword [0x1001465a]
mov dword [ebp - 4], ebx
fild dword [0x1001466a]
fstp dword [ebp - 8]
push dword [ebp - 8]
mov ebx, dword [ebp - 4]
fild dword [ebx]
fstp dword [ebp - 0xc]
push dword [ebp - 0xc]
call fcn.10004f2e
mov dword [ebp - 0x14], eax
fld dword [ebp - 0x14]
call fcn.1000116f
mov dword [0x10014666], eax
mov ebx, dword [0x1001465a]
add ebx, 4
mov dword [ebp - 4], ebx
fild dword [0x10014672]
fstp dword [ebp - 8]
push dword [ebp - 8]
mov ebx, dword [ebp - 4]
fild dword [ebx]
fstp dword [ebp - 0xc]
push dword [ebp - 0xc]
call fcn.10004f2e
mov dword [ebp - 0x14], eax
fld dword [ebp - 0x14]
call fcn.1000116f
mov dword [0x1001466e], eax
push dword [0x10014676]
push dword [0x1001466e]
push dword [0x10014666]
call fcn.10004f59
cmp dword [0x1001467a], 0
je 0x100028c2
mov dword [ebp - 4], esp
push dword [0x1001467a]
xor eax, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
nop
nop
cmp dword [ebp - 4], esp
je 0x100028c2
push 0xd0e
push 0x404b531
push 6
call fcn.1000600b
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 0x100028f0
push 0xdc7
push 0x404b531
push 6
call fcn.1000600b
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.10006fd0
add esp, 0x1c
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 1
jne 0x1000297c
mov dword [ebp - 4], 0
push 0
push dword [ebp - 4]
push 1
push 1
push 1
push 0
push 1
push 0x64
call fcn.10005530
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 0x1000297c
push 0xe48
push 0x404b531
push 6
call fcn.1000600b
add esp, 0xc
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 0x100029aa
push 0xeaf
push 0x404b531
push 6
call fcn.1000600b
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.10006fd0
add esp, 0x1c
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 1
jne 0x100029fd
mov dword [ebp - 4], 0
push 0
push dword [ebp - 4]
call fcn.10005d72
push 0
call fcn.10006023
add esp, 4
mov dword [ebp - 4], esp
push 0x14
xor eax, eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
nop
nop
cmp dword [ebp - 4], esp
je 0x10002a2b
push 0xf60
push 0x404b531
push 6
call fcn.1000600b
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.10006fd0
add esp, 0x1c
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 1
jne 0x10002a96
call fcn.10002b72
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 0x10002a96
push 0xfa0
push 0x404b531
push 6
call fcn.1000600b
add esp, 0xc
jmp 0x10002126