Function at 0x1000e4f0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x30
mov eax, dword [0x100b6374]
xor eax, esp
mov dword [esp + 0x2c], eax
cmp byte [0x101833d5], 0
push esi
push edi
je 0x1000ea3e
cmp byte [0x10183418], 0
jne 0x1000e82b
call fcn.1000b730
mov eax, dword [0x10183428]
movaps xmm0, xmmword [0x100adec0]
mov byte [0x10183418], 1
mov dword [eax + 0x1514], 0x41000000
mov dword [eax + 0x1518], 0x41000000
mov dword [eax + 0x151c], 0x40a00000
mov dword [eax + 0x1548], 0x41000000
mov dword [eax + 0x154c], 0x41000000
mov dword [eax + 0x1550], 0x40a00000
mov dword [eax + 0x1540], 0x40a00000
mov dword [eax + 0x1558], 0x40e00000
mov dword [eax + 0x155c], 0x40e00000
mov dword [eax + 0x1560], 0x40a00000
mov dword [eax + 0x1564], 0x40a00000
mov dword [eax + 0x1570], 0x41c80000
mov dword [eax + 0x1578], 0x41400000
mov dword [eax + 0x157c], 0x41200000
mov dword [eax + 0x1580], 0x40a00000
mov dword [eax + 0x1584], 0x40400000
mov dword [eax + 0x153c], 0
mov dword [eax + 0x1520], 0
mov dword [eax + 0x1554], 0
mov dword [eax + 0x158c], 0
mov dword [eax + 0x1544], 0
movups xmmword [eax + 0x15c0], xmm0
movaps xmm0, xmmword [0x100ade30]
movups xmmword [eax + 0x15d0], xmm0
movaps xmm0, xmmword [0x100add20]
movups xmmword [eax + 0x15e0], xmm0
xorps xmm0, xmm0
movups xmmword [eax + 0x15f0], xmm0
movaps xmm0, xmmword [0x100add20]
movups xmmword [eax + 0x1600], xmm0
movaps xmm0, xmmword [0x100addf0]
movups xmmword [eax + 0x1610], xmm0
movaps xmm0, xmmword [0x100ade10]
movups xmmword [eax + 0x1620], xmm0
movaps xmm0, xmmword [0x100add30]
movups xmmword [eax + 0x1630], xmm0
movaps xmm0, xmmword [0x100ade20]
movups xmmword [eax + 0x1640], xmm0
movaps xmm0, xmmword [0x100ade10]
movups xmmword [eax + 0x1650], xmm0
movaps xmm0, xmmword [0x100add10]
movups xmmword [eax + 0x1660], xmm0
movaps xmm0, xmmword [0x100adcb0]
movups xmmword [eax + 0x1680], xmm0
movaps xmm0, xmmword [0x100adde0]
movups xmmword [eax + 0x1670], xmm0
movaps xmm0, xmmword [0x100add30]
movups xmmword [eax + 0x1690], xmm0
movaps xmm0, xmmword [0x100add30]
movups xmmword [eax + 0x16a0], xmm0
movaps xmm0, xmmword [0x100adb90]
movups xmmword [eax + 0x16b0], xmm0
movaps xmm0, xmmword [0x100adba0]
movups xmmword [eax + 0x16c0], xmm0
movaps xmm0, xmmword [0x100adbb0]
movups xmmword [eax + 0x16d0], xmm0
movaps xmm0, xmmword [0x100adc10]
movups xmmword [eax + 0x16e0], xmm0
movaps xmm0, xmmword [0x100adbc0]
movups xmmword [eax + 0x16f0], xmm0
movaps xmm0, xmmword [0x100adbc0]
movups xmmword [eax + 0x1700], xmm0
movaps xmm0, xmmword [0x100add30]
movups xmmword [eax + 0x1770], xmm0
movaps xmm0, xmmword [0x100add30]
movups xmmword [eax + 0x1710], xmm0
movaps xmm0, xmmword [0x100ade20]
movups xmmword [eax + 0x1720], xmm0
movaps xmm0, xmmword [0x100ade10]
movups xmmword [eax + 0x1730], xmm0
movaps xmm0, xmmword [0x100add30]
movups xmmword [eax + 0x17d0], xmm0
movaps xmm0, xmmword [0x100ade20]
movups xmmword [eax + 0x17e0], xmm0
movaps xmm0, xmmword [0x100ade10]
movups xmmword [eax + 0x17f0], xmm0
xorps xmm0, xmm0
movups xmmword [eax + 0x1740], xmm0
movaps xmm0, xmmword [0x100ade20]
movups xmmword [eax + 0x1750], xmm0
movaps xmm0, xmmword [0x100addd0]
movups xmmword [eax + 0x1760], xmm0
movaps xmm0, xmmword [0x100ad880]
movups xmmword [eax + 0x17a0], xmm0
movaps xmm0, xmmword [0x100ade20]
movups xmmword [eax + 0x17b0], xmm0
movaps xmm0, xmmword [0x100ade10]
movups xmmword [eax + 0x17c0], xmm0
movaps xmm0, xmmword [0x100adc80]
movups xmmword [eax + 0x1820], xmm0
movaps xmm0, xmmword [0x100adda0]
movups xmmword [eax + 0x1830], xmm0
movaps xmm0, xmmword [0x100adc80]
movups xmmword [eax + 0x1840], xmm0
movaps xmm0, xmmword [0x100adda0]
movups xmmword [eax + 0x1850], xmm0
movaps xmm0, xmmword [0x100add20]
movups xmmword [eax + 0x1860], xmm0
movaps xmm0, xmmword [0x100adc70]
movups xmmword [eax + 0x18b0], xmm0
cmp dword [0x101834c0], 0
jne 0x1000e842
cmp dword [0x101834c8], 0
je 0x1000e842
call fcn.10040c30
mov esi, dword [0x10183428]
lea eax, [esp + 0x10]
push eax
push dword [0x101834d4]
mov dword [esp + 0x10], esi
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x10]
movd xmm1, eax
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x14]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
lea eax, [esp + 0x28]
cvtdq2ps xmm0, xmm0
push eax
movss dword [esi + 0x10], xmm1
movss dword [esi + 0x14], xmm0
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edi, dword [esp + 0x28]
mov ecx, edi
sub ecx, dword [0x101834d8]
mov esi, dword [esp + 0x2c]
mov edx, esi
sbb edx, dword [0x101834dc]
call fcn.10094740
mov edx, dword [0x101834e4]
mov ecx, dword [0x101834e0]
cvtsd2ss xmm0, xmm0
movss dword [esp + 0x20], xmm0
call fcn.10094740
movss xmm1, dword [esp + 0x20]
cvtsd2ss xmm0, xmm0
mov eax, dword [esp + 8]
push 0x11
divss xmm1, xmm0
movss dword [eax + 0x18], xmm1
mov dword [0x101834dc], esi
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
mov dword [0x101834d8], edi
call esi
mov edi, dword [esp + 8]
shr eax, 0xf
and al, 1
push 0x10
mov byte [edi + 0x100], al
call esi
shr eax, 0xf
and al, 1
push 0x12
mov byte [edi + 0x101], al
call esi
mov ecx, dword [0x10183428]
shr eax, 0xf
and al, 1
mov byte [edi + 0x103], 0
mov byte [edi + 0x102], al
cmp byte [ecx + 0x35b], 0
lea esi, [ecx + 0xe8]
je 0x1000e971
cvttss2si eax, dword [esi]
mov dword [esp + 0x20], eax
cvttss2si eax, dword [ecx + 0xec]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x20]
push eax
push dword [0x101834d4]
call dword [sym.imp.USER32.dll_ClientToScreen]
push dword [esp + 0x24]
push dword [esp + 0x24]
call dword [sym.imp.USER32.dll_SetCursorPos]
mov dword [esi], 0xff7fffff
mov dword [esi + 4], 0xff7fffff
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test eax, eax
je 0x1000e9dd
mov ecx, dword [0x101834d4]
cmp eax, ecx
je 0x1000e99e
push ecx
push eax
call dword [sym.imp.USER32.dll_IsChild]
test eax, eax
je 0x1000e9dd
lea eax, [esp + 8]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x1000e9dd
lea eax, [esp + 8]
push eax
push dword [0x101834d4]
call dword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je 0x1000e9dd
movd xmm0, dword [esp + 8]
movd xmm1, dword [esp + 0xc]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [esi], xmm0
movss dword [esi + 4], xmm1
cmp byte [edi + 0xb0], 0
je 0x1000e9eb
or eax, 0xffffffff
jmp 0x1000e9f6
mov eax, dword [0x10183428]
mov eax, dword [eax + 0x1d30]
cmp dword [0x101813ec], eax
je 0x1000ea08
mov dword [0x101813ec], eax
call fcn.10040eb0
call fcn.10040fe0
call fcn.10026460
call fcn.1000c260
call fcn.1002c6e0
call fcn.10027200
call fcn.10027490
mov ecx, dword [0x10183428]
xor eax, eax
add ecx, 0x1bf8
cmp byte [ecx], al
cmove ecx, eax
call fcn.10040730
mov ecx, dword [esp + 0x34]
pop edi
pop esi
xor ecx, esp
call fcn.1006def6
mov esp, ebp
pop ebp
ret