Function at 0x10086275
Capabilities:
Log keystrokes via polling

Disassembly:
push 0x14
mov eax, 0x10141104
call fcn.101018b2
xor edi, edi
mov dword [ebp - 0x14], 0x80004005
mov dword [ebp - 0x10], edi
lea eax, [ebp - 0x10]
mov esi, 0x1019e6e0
push eax
mov ecx, esi
mov dword [ebp - 4], edi
call fcn.100adbed
call fcn.100dce86
fstp qword [ebp - 0x20]
mov dword [ebp - 0x18], edi
cmp dword [ebp + 0x1c], edi
mov byte [ebp - 4], 1
je 0x100862bf
lea eax, [ebp - 0x18]
push eax
mov ecx, esi
call fcn.100ae012
mov esi, dword [ebp + 0x10]
cmp esi, 1
jne 0x10086309
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x10
call edi
movzx esi, ax
mov ebx, 0x8000
push 0x11
and esi, ebx
call edi
movzx ecx, ax
fld qword [0x10156b48]
fcomp qword [ebp - 0x20]
and ecx, ebx
fnstsw ax
test ah, 0x41
jp 0x100862fe
test ecx, ecx
je 0x100862fe
push 3
xor edi, edi
jmp 0x10086324
neg esi
sbb esi, esi
and esi, 2
xor edi, edi
jmp 0x10086325
cmp esi, 4
jne 0x10086325
fld qword [0x10156b48]
fcomp qword [ebp - 0x20]
fnstsw ax
test ah, 0x41
jp 0x10086322
push 3
jmp 0x10086324
push 2
pop esi
cmp dword [ebp - 0x10], edi
je 0x1008633f
cmp esi, 3
jne 0x10086342
fld qword [0x10156b48]
fcomp qword [ebp - 0x20]
fnstsw ax
test ah, 0x41
jne 0x10086391
push 2
pop esi
cmp esi, edi
jne 0x1008638c
mov esi, dword [ebp - 0x18]
cmp esi, edi
je 0x10086374
push dword [ebp + 8]
lea ecx, [ebp + 0x1c]
call fcn.10003abd
mov eax, dword [eax]
mov ecx, dword [esi]
push 1
push eax
push esi
mov byte [ebp - 4], 2
call dword [ecx + 0x24]
push dword [ebp + 0x1c]
mov byte [ebp - 4], 1
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
cmp dword [ebp + 0xc], edi
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 8]
push dword [ebp - 0x10]
je 0x100863e1
call fcn.100d9e25
jmp 0x100863e6
cmp esi, 3
jne 0x100863ee
mov esi, dword [ebp - 0x18]
cmp esi, edi
je 0x100863be
push dword [ebp + 8]
lea ecx, [ebp + 0x1c]
call fcn.10003abd
mov eax, dword [eax]
mov ecx, dword [esi]
push edi
push eax
push esi
mov byte [ebp - 4], 3
call dword [ecx + 0x24]
push dword [ebp + 0x1c]
mov byte [ebp - 4], 1
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
cmp dword [ebp + 0xc], edi
push dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
je 0x100863d5
or eax, 1
push eax
push dword [ebp + 8]
push dword [ebp - 0x10]
jmp 0x10086385
or eax, 0x800
push eax
push dword [ebp + 8]
push dword [ebp - 0x10]
call fcn.100d9359
add esp, 0x10
mov dword [ebp - 0x14], eax
jmp 0x10086467
cmp esi, 2
jne 0x10086467
mov esi, dword [ebp - 0x18]
cmp esi, edi
je 0x10086420
push dword [ebp + 8]
lea ecx, [ebp + 0x10]
call fcn.10003abd
mov eax, dword [eax]
mov ecx, dword [esi]
push edi
push eax
push esi
mov byte [ebp - 4], 4
call dword [ecx + 0x24]
push dword [ebp + 0x10]
mov byte [ebp - 4], 1
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
lea eax, [ebp + 0x1c]
push eax
call fcn.100d8969
pop ecx
cmp dword [ebp + 0x1c], edi
mov byte [ebp - 4], 5
je 0x10086456
cmp dword [ebp + 0xc], edi
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 8]
push dword [ebp + 0x1c]
je 0x1008644b
call fcn.100d9e25
jmp 0x10086450
call fcn.100d9359
mov dword [ebp - 0x14], eax
add esp, 0x10
mov eax, dword [ebp + 0x1c]
cmp eax, edi
mov byte [ebp - 4], 1
je 0x10086467
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x18]
cmp eax, edi
mov byte [ebp - 4], 0
je 0x10086478
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x10]
or dword [ebp - 4], 0xffffffff
cmp eax, edi
je 0x10086489
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x14]
call fcn.1010198a
ret 0x18