Function at 0x100065e0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [0x1001000c]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [0x100108c4], 0
push edi
movss dword [ebp - 0x24], xmm1
movss dword [ebp - 0x28], xmm0
jne 0x10006647
push 1
call fcn.10009cfc
movaps xmm0, xmmword [0x1000d6c0]
add esp, 4
xor edi, edi
mov dword [ebp - 0x20], eax
movups xmmword [0x1001083c], xmm0
mov dword [0x10010868], edi
mov dword [0x100108d0], edi
mov dword [0x100108c4], eax
jmp 0x1000664d
mov edi, dword [0x10010868]
lea eax, [ebp - 0x14]
push eax
push edi
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x14]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x14]
push eax
push edi
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [ebp - 8]
xorps xmm3, xmm3
sub eax, dword [ebp - 0x10]
sub eax, 0xc
movss dword [ebp - 0x1c], xmm3
cdq
sub eax, edx
movss dword [ebp - 0x18], xmm3
mov edx, eax
mov eax, dword [0x100106f0]
sar edx, 1
test eax, eax
jne 0x100066a1
movss xmm6, dword [0x1000d4d8]
jmp 0x100066b5
cmp eax, 1
jne 0x100066b0
movss xmm6, dword [0x1000d4cc]
jmp 0x100066b5
movss xmm6, dword [ebp - 0x24]
movss xmm5, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x20]
ucomiss xmm5, xmm3
lahf
test ah, 0x44
jnp 0x1000674f
movd xmm0, ecx
mov eax, ecx
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1000d6a0]
cvtpd2ps xmm4, xmm0
comiss xmm5, xmm4
jbe 0x1000672c
movaps xmm2, xmm4
lea eax, [ecx + ecx]
subss xmm2, xmm5
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
xorps xmm2, xmmword [0x1000d6b0]
movaps xmm1, xmm4
addsd xmm0, qword [eax*8 + 0x1000d6a0]
divss xmm2, xmm6
cvtpd2ps xmm0, xmm0
addss xmm1, xmm2
movss dword [ebp - 0x1c], xmm2
comiss xmm1, xmm0
jbe 0x1000672c
movss dword [ebp - 0x1c], xmm3
comiss xmm4, xmm5
jbe 0x1000674f
movaps xmm0, xmm5
subss xmm0, xmm4
divss xmm0, xmm6
addss xmm4, xmm0
movss dword [ebp - 0x1c], xmm0
comiss xmm3, xmm4
jbe 0x1000674f
movss dword [ebp - 0x1c], xmm3
movss xmm2, dword [ebp - 0x24]
ucomiss xmm2, xmm3
lahf
test ah, 0x44
jnp 0x10006811
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x1000d6a0]
cvtpd2ps xmm7, xmm0
comiss xmm2, xmm7
jbe 0x100067d6
xorps xmm0, xmm0
mov eax, edx
cvtsi2sd xmm0, edx
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1000d6a0]
lea eax, [edx + edx]
cvtpd2ps xmm1, xmm0
xorps xmm0, xmm0
movaps xmm4, xmm1
subss xmm4, xmm2
cvtsi2sd xmm0, eax
shr eax, 0x1f
xorps xmm4, xmmword [0x1000d6b0]
divss xmm4, xmm6
addsd xmm0, qword [eax*8 + 0x1000d6a0]
addss xmm1, xmm4
movss dword [ebp - 0x18], xmm4
cvtpd2ps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x100067d6
movss dword [ebp - 0x18], xmm3
comiss xmm7, xmm2
jbe 0x10006811
movd xmm0, edx
movaps xmm1, xmm2
cvtdq2pd xmm0, xmm0
shr edx, 0x1f
addsd xmm0, qword [edx*8 + 0x1000d6a0]
cvtpd2ps xmm0, xmm0
subss xmm1, xmm0
divss xmm1, xmm6
addss xmm0, xmm1
movss dword [ebp - 0x18], xmm1
comiss xmm3, xmm0
jbe 0x10006811
movss dword [ebp - 0x18], xmm3
ucomiss xmm5, xmm3
lahf
test ah, 0x44
jnp 0x1000687d
ucomiss xmm2, xmm3
lahf
test ah, 0x44
jnp 0x1000687d
mov eax, dword [0x100106e8]
sub eax, 0
je 0x1000684a
sub eax, 1
je 0x10006843
sub eax, 1
jne 0x1000683e
mov eax, 0x10
jmp 0x1000684f
mov eax, dword [ebp - 0x24]
jmp 0x1000684f
mov eax, 1
jmp 0x1000684f
mov eax, 2
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1000687d
movss xmm0, dword [ebp - 0x18]
push 0
push 0
call fcn.1000ac80
movss xmm0, dword [ebp - 0x1c]
push eax
call fcn.1000ac80
push eax
push 1
call dword [sym.imp.USER32.dll_mouse_event]
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop edi
call fcn.10009c39
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret