Function at 0x100f5dc0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101a5e3d
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push esi
push edi
mov eax, dword [0x1039b040]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 4], 0
mov eax, dword [0x1039d788]
test eax, eax
jne 0x100f5e37
push 0xc0
call fcn.10125858
mov esi, eax
mov dword [ebp - 0x1c], esi
push 0xc0
push 0
push esi
mov byte [ebp - 4], 1
call sub.VCRUNTIME140.dll_memset
push 0xc0
push 0
push esi
call sub.VCRUNTIME140.dll_memset
add esp, 0x1c
mov ecx, esi
call fcn.10022c40
mov byte [ebp - 4], 0
mov dword [0x1039d788], eax
mov esi, dword [ebp + 0x18]
add eax, 0x20
mov dword [ebp - 0x1c], eax
mov eax, 0x7fffffff
sub eax, esi
cmp eax, 6
jb 0x100f60da
cmp dword [ebp + 0x1c], 0xf
lea eax, [ebp + 8]
mov ecx, 0xf
mov dword [ebp - 0x24], 0
cmova eax, dword [ebp + 8]
lea edi, [ebp - 0x34]
mov dword [ebp - 0x18], eax
xorps xmm0, xmm0
lea eax, [esi + 6]
mov dword [ebp - 0x20], 0
movups xmmword [ebp - 0x34], xmm0
cmp eax, ecx
jbe 0x100f5eba
or eax, ecx
cmp eax, 0x7fffffff
jbe 0x100f5e92
mov eax, 0x7fffffff
jmp 0x100f5e9c
mov ecx, 0x16
cmp eax, ecx
cmovb eax, ecx
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.10019c80
mov ecx, dword [ebp - 0x14]
mov edi, eax
add esp, 8
mov dword [ebp - 0x34], edi
lea eax, [esi + 6]
push esi
push dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
push edi
mov dword [ebp - 0x20], ecx
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [str._style]
add esp, 0xc
mov dword [edi + esi], eax
mov ax, word [0x10389100]
mov word [edi + esi + 4], ax
mov byte [edi + esi + 6], 0
lea eax, [ebp - 0x34]
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x1c]
push eax
call fcn.10021d70
mov esi, dword [eax]
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x20]
cmp ecx, 0xf
jbe 0x100f5f2f
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100f5f25
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100f60b4
push ecx
push edx
call fcn.10125cbc
add esp, 8
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0xf
mov byte [ebp - 0x34], 0
cmp esi, 3
ja case.0x100f5f4a.0
jmp dword [esi*4 + 0x100f60e0]
mov eax, dword [0x1039d788]
test eax, eax
jne 0x100f5f9a
push 0xc0
call fcn.10125858
mov esi, eax
mov dword [ebp - 0x1c], esi
push 0xc0
push 0
push esi
mov byte [ebp - 4], 3
call sub.VCRUNTIME140.dll_memset
push 0xc0
push 0
push esi
call sub.VCRUNTIME140.dll_memset
add esp, 0x1c
mov ecx, esi
call fcn.10022c40
mov byte [ebp - 4], 0
mov dword [0x1039d788], eax
lea ecx, [ebp + 8]
push ecx
lea ecx, [eax + 0x20]
call 0x100f60f0
push dword [eax]
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x100f608b
mov eax, dword [0x1039d788]
test eax, eax
jne 0x100f6005
push 0xc0
call fcn.10125858
mov esi, eax
mov dword [ebp - 0x1c], esi
push 0xc0
push 0
push esi
mov byte [ebp - 4], 4
call sub.VCRUNTIME140.dll_memset
push 0xc0
push 0
push esi
call sub.VCRUNTIME140.dll_memset
add esp, 0x1c
mov ecx, esi
call fcn.10022c40
mov byte [ebp - 4], 0
mov dword [0x1039d788], eax
lea ecx, [ebp + 8]
push ecx
lea ecx, [eax + 0x20]
call 0x100f60f0
push dword [eax]
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
setne al
jmp 0x100f608b
mov eax, dword [0x1039d788]
test eax, eax
jne 0x100f606a
push 0xc0
call fcn.10125858
mov esi, eax
mov dword [ebp - 0x1c], esi
push 0xc0
push 0
push esi
mov byte [ebp - 4], 5
call sub.VCRUNTIME140.dll_memset
push 0xc0
push 0
push esi
call sub.VCRUNTIME140.dll_memset
add esp, 0x1c
mov ecx, esi
call fcn.10022c40
mov byte [ebp - 4], 0
mov dword [0x1039d788], eax
lea ecx, [ebp + 8]
push ecx
lea ecx, [eax + 0x20]
call 0x100f60f0
push dword [eax]
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
sete al
jmp 0x100f608b
mov al, 1
mov ecx, dword [ebp + 0x1c]
mov byte [ebp - 0xd], al
cmp ecx, 0xf
jbe 0x100f60c7
mov edx, dword [ebp + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100f60ba
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100f60ba
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.10125cbc
mov al, byte [ebp - 0xd]
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x18
call fcn.10010990
nop
mov dword [eax + 0xf], esp
adc byte [ecx + 95], dl
movups xmm7, xmmword [edi + ebx*2 + 0x6021100f]
movups xmm2, xmmword [ebp - 0x75]
in al, dx
and esp, 0xfffffff8
sub esp, 8
lea eax, [esp]
push dword [ebp + 8]
push eax
call fcn.100f6110
mov eax, dword [eax]
add eax, 0x20
mov esp, ebp
pop ebp
ret 4