Function at 0x10002034
Capabilities:
Create thread
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x70
mov dword [ebp - 4], 0
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
push 0x80000301
push 0
push 0x100
push 1
mov ebx, 0x1bc
call fcn.10004b10
add esp, 0x10
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
push eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x1000209c
push ebx
call fcn.1000478d
add esp, 4
pop eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x1c], esp
mov eax, dword [ebp - 4]
test eax, eax
je 0x100020ad
add eax, 8
push eax
xor eax, eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
nop
nop
cmp dword [ebp - 0x1c], esp
je 0x100020d4
push 0x5a
push 0x401d2f1
push 6
call fcn.1000479f
add esp, 0xc
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
jne 0x100020e6
jmp 0x10002ca8
mov ebx, dword [ebp - 4]
call fcn.10001451
push ebx
push ecx
mov eax, 0x13
dec eax
jns 0x1000210f
push 0xe5
push 0x401d2f1
push 4
call fcn.1000479f
add esp, 0xc
pop ecx
pop ebx
cmp eax, ecx
jl 0x1000212c
push 0xe5
push 0x401d2f1
push 1
call fcn.1000479f
add esp, 0xc
add ebx, eax
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
cmp byte [ebx], 0x7f
mov eax, 0
seta al
test eax, eax
je 0x10002151
mov eax, 1
jmp 0x10002156
mov eax, 0
mov dword [ebp - 0x24], eax
mov ebx, dword [ebp - 4]
call fcn.10001451
push ebx
push ecx
mov eax, 0x12
dec eax
jns 0x10002182
push 0x153
push 0x401d2f1
push 4
call fcn.1000479f
add esp, 0xc
pop ecx
pop ebx
cmp eax, ecx
jl 0x1000219f
push 0x153
push 0x401d2f1
push 1
call fcn.1000479f
add esp, 0xc
add ebx, eax
mov dword [ebp - 0x28], ebx
mov ebx, dword [ebp - 0x28]
cmp byte [ebx], 0x7f
mov eax, 0
seta al
test eax, eax
je 0x100021c4
mov eax, 2
jmp 0x100021c9
mov eax, 0
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 4]
call fcn.10001451
push ebx
push ecx
mov eax, 0x11
dec eax
jns 0x100021f5
push 0x1c1
push 0x401d2f1
push 4
call fcn.1000479f
add esp, 0xc
pop ecx
pop ebx
cmp eax, ecx
jl 0x10002212
push 0x1c1
push 0x401d2f1
push 1
call fcn.1000479f
add esp, 0xc
add ebx, eax
mov dword [ebp - 0x34], ebx
mov ebx, dword [ebp - 0x34]
cmp byte [ebx], 0x7f
mov eax, 0
seta al
test eax, eax
je 0x10002237
mov eax, 4
jmp 0x1000223c
mov eax, 0
mov dword [ebp - 0x3c], eax
mov ebx, dword [ebp - 4]
call fcn.10001451
push ebx
push ecx
mov eax, 0x5c
dec eax
jns 0x10002268
push 0x22f
push 0x401d2f1
push 4
call fcn.1000479f
add esp, 0xc
pop ecx
pop ebx
cmp eax, ecx
jl 0x10002285
push 0x22f
push 0x401d2f1
push 1
call fcn.1000479f
add esp, 0xc
add ebx, eax
mov dword [ebp - 0x40], ebx
mov ebx, dword [ebp - 0x40]
cmp byte [ebx], 0x7f
mov eax, 0
seta al
test eax, eax
je 0x100022aa
mov eax, 8
jmp 0x100022af
mov eax, 0
mov dword [ebp - 0x48], eax
fild dword [ebp - 0x24]
fstp qword [ebp - 0x50]
fld qword [ebp - 0x50]
fild dword [ebp - 0x30]
fstp qword [ebp - 0x58]
fadd qword [ebp - 0x58]
fild dword [ebp - 0x3c]
fstp qword [ebp - 0x60]
fadd qword [ebp - 0x60]
fild dword [ebp - 0x48]
fstp qword [ebp - 0x68]
fadd qword [ebp - 0x68]
fstp qword [ebp - 0x70]
fld qword [ebp - 0x70]
call fcn.10001471
mov dword [ebp - 8], eax
mov ebx, 6
call fcn.1000202c
push 0x80000005
push 0
push 0x10008253
push 0x80000005
push 0
push 0x1000825c
push 0x80000005
push 0
mov eax, dword [ebp - 4]
test eax, eax
jne 0x10002319
mov eax, 0x10008200
push eax
push 5
mov ebx, 0x1b8
call fcn.10004e40
add esp, 0x40
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
push eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x10002343
push ebx
call fcn.1000478d
add esp, 4
pop eax
mov dword [ebp - 4], eax
mov ebx, 6
call fcn.1000202c
push 0x80000005
push 0
push 0x10008265
push 0x80000005
push 0
push 0x1000826e
push 0x80000005
push 0
mov eax, dword [ebp - 4]
test eax, eax
jne 0x1000237c
mov eax, 0x10008200
push eax
push 5
mov ebx, 0x1b8
call fcn.10004e40
add esp, 0x40
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
push eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x100023a6
push ebx
call fcn.1000478d
add esp, 4
pop eax
mov dword [ebp - 4], eax
mov ebx, dword [ebp - 4]
call fcn.10001451
push ebx
push ecx
mov eax, 0x13
dec eax
jns 0x100023d3
push 0x32e
push 0x401d2f1
push 4
call fcn.1000479f
add esp, 0xc
pop ecx
pop ebx
cmp eax, ecx
jl 0x100023f0
push 0x32e
push 0x401d2f1
push 1
call fcn.1000479f
add esp, 0xc
add ebx, eax
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 4]
call fcn.10001451
push ebx
push ecx
mov eax, 0x12
dec eax
jns 0x1000241e
push 0x35b
push 0x401d2f1
push 4
call fcn.1000479f
add esp, 0xc
pop ecx
pop ebx
cmp eax, ecx
jl 0x1000243b
push 0x35b
push 0x401d2f1
push 1
call fcn.1000479f
add esp, 0xc
add ebx, eax
mov dword [ebp - 0x20], ebx
mov ebx, dword [ebp - 4]
call fcn.10001451
push ebx
push ecx
mov eax, 0x11
dec eax
jns 0x10002469
push 0x388
push 0x401d2f1
push 4
call fcn.1000479f
add esp, 0xc
pop ecx
pop ebx
cmp eax, ecx
jl 0x10002486
push 0x388
push 0x401d2f1
push 1
call fcn.1000479f
add esp, 0xc
add ebx, eax
mov dword [ebp - 0x24], ebx
mov ebx, dword [ebp - 4]
call fcn.10001451
push ebx
push ecx
mov eax, 0x5c
dec eax
jns 0x100024b4
push 0x3b5
push 0x401d2f1
push 4
call fcn.1000479f
add esp, 0xc
pop ecx
pop ebx
cmp eax, ecx
jl 0x100024d1
push 0x3b5
push 0x401d2f1
push 1
call fcn.1000479f
add esp, 0xc
add ebx, eax
mov dword [ebp - 0x28], ebx
mov ebx, dword [ebp - 4]
call fcn.10001451
mov eax, 0xa0
cmp eax, ecx
jl 0x100024fe
push 0x3b5
push 0x401d2f1
push 1
call fcn.1000479f
add esp, 0xc
add ebx, eax
mov dword [ebp - 0x2c], ebx
mov ebx, dword [ebp - 4]
call fcn.10001451
mov eax, 0xa1
cmp eax, ecx
jl 0x1000252b
push 0x3b5
push 0x401d2f1
push 1
call fcn.1000479f
add esp, 0xc
add ebx, eax
mov dword [ebp - 0x30], ebx
mov ebx, dword [ebp - 4]
call fcn.10001451
mov eax, 0xa2
cmp eax, ecx
jl 0x10002558
push 0x3b5
push 0x401d2f1
push 1
call fcn.1000479f
add esp, 0xc
add ebx, eax
mov dword [ebp - 0x34], ebx
mov ebx, dword [ebp - 4]
call fcn.10001451
mov eax, 0xa3
cmp eax, ecx
jl 0x10002585
push 0x3b5
push 0x401d2f1
push 1
call fcn.1000479f
add esp, 0xc
add ebx, eax
mov dword [ebp - 0x38], ebx
mov ebx, dword [ebp - 4]
call fcn.10001451
mov eax, 0xa4
cmp eax, ecx
jl 0x100025b2
push 0x3b5
push 0x401d2f1
push 1
call fcn.1000479f
add esp, 0xc
add ebx, eax
mov dword [ebp - 0x3c], ebx
mov ebx, dword [ebp - 4]
call fcn.10001451
mov eax, 0xa5
cmp eax, ecx
jl 0x100025df
push 0x3b5
push 0x401d2f1
push 1
call fcn.1000479f
add esp, 0xc
add ebx, eax
mov dword [ebp - 0x40], ebx
mov ebx, dword [ebp - 0x1c]
mov byte [ebx], 0
mov ebx, dword [ebp - 0x20]
mov byte [ebx], 0
mov ebx, dword [ebp - 0x24]
mov byte [ebx], 0
mov ebx, dword [ebp - 0x28]
mov byte [ebx], 0
mov ebx, dword [ebp - 0x2c]
mov byte [ebx], 0
mov ebx, dword [ebp - 0x30]
mov byte [ebx], 0
mov ebx, dword [ebp - 0x34]
mov byte [ebx], 0
mov ebx, dword [ebp - 0x38]
mov byte [ebx], 0
mov ebx, dword [ebp - 0x3c]
mov byte [ebx], 0
mov ebx, dword [ebp - 0x40]
mov byte [ebx], 0
mov ebx, dword [0x1000840c]
call fcn.10001438
xor ecx, ecx
push eax
lea eax, [ebp - 0xc]
mov ebx, eax
pop eax
inc ecx
push ecx
push ebx
mov dword [ebx], ecx
push eax
cmp ecx, eax
jg 0x10002ca5
mov ebx, dword [0x1000840c]
call fcn.10001451
push ebx
push ecx
mov eax, dword [ebp - 0xc]
dec eax
jns 0x1000266c
push 0x470
push 0x401d2f1
push 4
call fcn.1000479f
add esp, 0xc
pop ecx
pop ebx
cmp eax, ecx
jl 0x10002689
push 0x470
push 0x401d2f1
push 1
call fcn.1000479f
add esp, 0xc
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
cmp dword [ebx], 0
je 0x10002c9d
mov ebx, dword [0x1000840c]
call fcn.10001451
push ebx
push ecx
mov eax, dword [ebp - 0xc]
dec eax
jns 0x100026c9
push 0x4b6
push 0x401d2f1
push 4
call fcn.1000479f
add esp, 0xc
pop ecx
pop ebx
cmp eax, ecx
jl 0x100026e6
push 0x4b6
push 0x401d2f1
push 1
call fcn.1000479f
add esp, 0xc
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 0xc
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebx]
cmp dword [ebp - 8], eax
jne 0x10002c40
push 0x80000301
push 0
push 0x100
push 1
mov ebx, 0x1bc
call fcn.10004b10
add esp, 0x10
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
push eax
mov ebx, dword [ebp - 0x10]
test ebx, ebx
je 0x10002736
push ebx
call fcn.1000478d
add esp, 4
pop eax
mov dword [ebp - 0x10], eax
mov ebx, dword [0x1000840c]
call fcn.10001451
push ebx
push ecx
mov eax, dword [ebp - 0xc]
dec eax
jns 0x10002764
push 0x530
push 0x401d2f1
push 4
call fcn.1000479f
add esp, 0xc
pop ecx
pop ebx
cmp eax, ecx
jl 0x10002781
push 0x530
push 0x401d2f1
push 1
call fcn.1000479f
add esp, 0xc
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 0x10
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
cmp dword [ebx], 0
je 0x10002856
mov ebx, dword [ebp - 0x10]
call fcn.10001451
push ebx
push ecx
mov ebx, dword [0x1000840c]
call fcn.10001451
push ebx
push ecx
mov eax, dword [ebp - 0xc]
dec eax
jns 0x100027ce
push 0x57d
push 0x401d2f1
push 4
call fcn.1000479f
add esp, 0xc
pop ecx
pop ebx
cmp eax, ecx
jl 0x100027eb
push 0x57d
push 0x401d2f1
push 1
call fcn.1000479f
add esp, 0xc
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 0x10
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
fild dword [ebx]
fstp qword [ebp - 0x24]
fld qword [ebp - 0x24]
fadd qword [0x10008277]
fstp qword [ebp - 0x2c]
fld qword [ebp - 0x2c]
call fcn.10001471
dec eax
jns 0x1000282e
push 0x57d
push 0x401d2f1
push 4
call fcn.1000479f
add esp, 0xc
pop ecx
pop ebx
cmp eax, ecx
jl 0x1000284b
push 0x57d
push 0x401d2f1
push 1
call fcn.1000479f
add esp, 0xc
add ebx, eax
mov dword [ebp - 0x30], ebx
mov ebx, dword [ebp - 0x30]
mov byte [ebx], 0x80
mov ebx, dword [0x1000840c]
call fcn.10001451
push ebx
push ecx
mov eax, dword [ebp - 0xc]
dec eax
jns 0x10002880
push 0x5bc
push 0x401d2f1
push 4
call fcn.1000479f
add esp, 0xc
pop ecx
pop ebx
cmp eax, ecx
jl 0x1000289d
push 0x5bc
push 0x401d2f1
push 1
call fcn.1000479f
add esp, 0xc
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 0x18
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
cmp dword [ebx], 0
je 0x10002ba1
mov ebx, dword [0x1000840c]
call fcn.10001451
push ebx
push ecx
mov eax, dword [ebp - 0xc]
dec eax
jns 0x100028e0
push 0x5f9
push 0x401d2f1
push 4
call fcn.1000479f
add esp, 0xc
pop ecx
pop ebx
cmp eax, ecx
jl 0x100028fd
push 0x5f9
push 0x401d2f1
push 1
call fcn.1000479f
add esp, 0xc
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 8
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
cmp dword [ebx], 0
je 0x100029d2
mov ebx, dword [ebp - 0x10]
call fcn.10001451
push ebx
push ecx
mov ebx, dword [0x1000840c]
call fcn.10001451
push ebx
push ecx
mov eax, dword [ebp - 0xc]
dec eax
jns 0x1000294a
push 0x646
push 0x401d2f1
push 4
call fcn.1000479f
add esp, 0xc
pop ecx
pop ebx
cmp eax, ecx
jl 0x10002967
push 0x646
push 0x401d2f1
push 1
call fcn.1000479f
add esp, 0xc
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 8
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
fild dword [ebx]
fstp qword [ebp - 0x24]
fld qword [ebp - 0x24]
fadd qword [0x10008277]
fstp qword [ebp - 0x2c]
fld qword [ebp - 0x2c]
call fcn.10001471
dec eax
jns 0x100029aa
push 0x646
push 0x401d2f1
push 4
call fcn.1000479f
add esp, 0xc
pop ecx
pop ebx
cmp eax, ecx
jl 0x100029c7
push 0x646
push 0x401d2f1
push 1
call fcn.1000479f
add esp, 0xc
add ebx, eax
mov dword [ebp - 0x30], ebx
mov ebx, dword [ebp - 0x30]
mov byte [ebx], 0x80
mov eax, dword [ebp - 4]
xor ecx, ecx
test eax, eax
je 0x100029de
mov ecx, dword [eax + 4]
push ecx
add eax, 8
push eax
mov eax, dword [ebp - 0x10]
xor ebx, ebx
test eax, eax
je 0x100029ef
mov ebx, dword [eax + 4]
add eax, 8
push eax
cmp ebx, ecx
mov eax, 1
jne 0x10002a06
dec eax
test ecx, ecx
je 0x10002a06
call fcn.10001089
add esp, 0xc
test eax, eax
jne 0x10002b9c
mov ebx, dword [0x1000840c]
call fcn.10001451
push ebx
push ecx
mov eax, dword [ebp - 0xc]
dec eax
jns 0x10002a3b
push 0x6ba
push 0x401d2f1
push 4
call fcn.1000479f
add esp, 0xc
pop ecx
pop ebx
cmp eax, ecx
jl 0x10002a58
push 0x6ba
push 0x401d2f1
push 1
call fcn.1000479f
add esp, 0xc
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 0x18
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
mov dword [ebx], 0
mov ebx, dword [0x1000840c]
call fcn.10001451
push ebx
push ecx
mov eax, dword [ebp - 0xc]
dec eax
jns 0x10002a98
push 0x6e7
push 0x401d2f1
push 4
call fcn.1000479f
add esp, 0xc
pop ecx
pop ebx
cmp eax, ecx
jl 0x10002ab5
push 0x6e7
push 0x401d2f1
push 1
call fcn.1000479f
add esp, 0xc
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 4
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebx]
mov dword [ebp - 0x14], eax
mov ebx, dword [0x1000840c]
call fcn.10001451
push ebx
push ecx
mov eax, dword [ebp - 0xc]
dec eax
jns 0x10002af4
push 0x718
push 0x401d2f1
push 4
call fcn.1000479f
add esp, 0xc
pop ecx
pop ebx
cmp eax, ecx
jl 0x10002b11
push 0x718
push 0x401d2f1
push 1
call fcn.1000479f
add esp, 0xc
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebx]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], esp
mov eax, 0
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
push eax
push 0
push dword [ebp - 0x18]
push dword [ebp - 0x14]
push 0
push 0
xor eax, eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
nop
nop
cmp dword [ebp - 0x1c], esp
je 0x10002b6d
push 0x75b
push 0x401d2f1
push 6
call fcn.1000479f
add esp, 0xc
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], esp
push dword [ebp - 0x24]
xor eax, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
nop
nop
cmp dword [ebp - 0x28], esp
je 0x10002b9c
push 0x75b
push 0x401d2f1
push 6
call fcn.1000479f
add esp, 0xc
jmp 0x10002c3b
mov ebx, dword [0x1000840c]
call fcn.10001451
push ebx
push ecx
mov eax, dword [ebp - 0xc]
dec eax
jns 0x10002bcb
push 0x7b7
push 0x401d2f1
push 4
call fcn.1000479f
add esp, 0xc
pop ecx
pop ebx
cmp eax, ecx
jl 0x10002be8
push 0x7b7
push 0x401d2f1
push 1
call fcn.1000479f
add esp, 0xc
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 0x18
mov dword [ebp - 0x1c], ebx
mov eax, dword [ebp - 4]
xor ecx, ecx
test eax, eax
je 0x10002c01
mov ecx, dword [eax + 4]
push ecx
add eax, 8
push eax
mov eax, dword [ebp - 0x10]
xor ebx, ebx
test eax, eax
je 0x10002c12
mov ebx, dword [eax + 4]
add eax, 8
push eax
cmp ebx, ecx
mov eax, 1
jne 0x10002c29
dec eax
test ecx, ecx
je 0x10002c29
call fcn.10001089
add esp, 0xc
test eax, eax
mov eax, 0
sete al
mov ebx, dword [ebp - 0x1c]
mov dword [ebx], eax
jmp 0x10002c9d
mov ebx, dword [0x1000840c]
call fcn.10001451
push ebx
push ecx
mov eax, dword [ebp - 0xc]
dec eax
jns 0x10002c6a
push 0x818
push 0x401d2f1
push 4
call fcn.1000479f
add esp, 0xc
pop ecx
pop ebx
cmp eax, ecx
jl 0x10002c87
push 0x818
push 0x401d2f1
push 1
call fcn.1000479f
add esp, 0xc
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 0x18
mov dword [ebp - 0x1c], ebx
mov ebx, dword [ebp - 0x1c]
mov dword [ebx], 0
pop eax
pop ebx
pop ecx
jmp 0x10002634
add esp, 0xc
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x10002cb8
push ebx
call fcn.1000478d
add esp, 4
mov ebx, dword [ebp - 0x10]
test ebx, ebx
je 0x10002cc8
push ebx
call fcn.1000478d
add esp, 4
mov esp, ebp
pop ebp
ret