Function at 0x10066f95
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword [0x101e253c]
sub esp, 0x20
cmp dword [eax], 3
push esi
push edi
jl case.default.0x10066f8e
mov eax, dword [0x101e2528]
cmp byte [eax + 0x64767], 0
je 0x10066f7f
mov eax, dword [0x101e2518]
movss xmm1, dword [eax]
mulss xmm1, dword [0x1016d4fc]
call fcn.1007beb0
mov eax, dword [0x101e2528]
mov byte [eax + 0x64767], 0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x101dfe74]
inc eax
cmp eax, 3
ja case.default.0x10066f8e
jmp dword [eax*4 + 0x10067198]
push dword [0x101dfe70]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
jmp 0x10066faf
push dword [0x101dfe70]
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
setne al
test al, al
je case.default.0x10066f8e
mov eax, dword [0x101e07bc]
mov ecx, dword [0x101e14f0]
and dword [eax + 0x30], 0xfffdffff
mov eax, dword fs:[0x2c]
mov esi, dword [eax + ecx*4]
mov eax, dword [0x101e63c0]
cmp eax, dword [esi + 4]
jle 0x10067008
push 0x101e63c0
call fcn.100b5535
add esp, 4
cmp dword [0x101e63c0], 0xffffffff
jne 0x10067008
push 0x101e63c0
call fcn.100b54eb
add esp, 4
mov eax, dword [0x101e29e0]
mov edi, dword [0x101e0948]
cmp eax, dword [esi + 4]
jle 0x10067048
push 0x101e29e0
call fcn.100b5535
add esp, 4
cmp dword [0x101e29e0], 0xffffffff
jne 0x10067048
mov eax, dword [0x101e2878]
push 0x101e29e0
mov dword [0x101e29d0], eax
call fcn.100b54eb
add esp, 4
mov eax, dword [0x101e29d0]
xor esi, esi
movss xmm3, dword [0x1016d58c]
movq xmm0, qword [eax + edi]
movq qword [esp + 0x1c], xmm0
movss xmm0, dword [esp + 0x20]
movss xmm2, dword [esp + 0x1c]
movss dword [esp + 8], xmm0
movss dword [esp + 0xc], xmm2
nop word [eax + eax]
movaps xmm1, xmm0
mulss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, xmm2
addss xmm1, xmm0
comiss xmm3, xmm1
ja 0x10067171
xorps xmm0, xmm0
sqrtss xmm0, xmm1
comiss xmm0, xmm3
movss dword [esp + 0x14], xmm0
jb 0x10067165
mov ecx, dword [0x101e1e00]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x10], eax
call dword [esp + 0x10]
mov ecx, dword [0x101e1e20]
fstp dword [esp + 0x18]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x10], eax
call dword [esp + 0x10]
mov eax, dword [0x101e1d20]
movss xmm0, dword [eax + 0x14]
lea ecx, [eax + 0x14]
movss xmm1, dword [esp + 0x14]
add eax, 0x20
fstp dword [esp + 0x10]
movss xmm3, dword [0x1016d58c]
mov dword [esp + 0x14], 0
comiss xmm0, dword [eax]
movaps xmm0, xmm1
maxss xmm0, dword [esp + 0x10]
cmova eax, ecx
lea ecx, [esp + 0x14]
mulss xmm0, dword [esp + 0x18]
mulss xmm0, dword [eax]
lea eax, [esp + 0x18]
divss xmm0, xmm1
subss xmm1, xmm0
xorps xmm0, xmm0
comiss xmm1, xmm0
movss dword [esp + 0x18], xmm1
cmovbe eax, ecx
inc esi
movss xmm1, dword [eax]
movaps xmm2, xmm1
mulss xmm1, dword [esp + 8]
mulss xmm2, dword [esp + 0xc]
movaps xmm0, xmm1
movss dword [esp + 8], xmm0
movss dword [esp + 0xc], xmm2
jmp 0x10067080
movss xmm0, dword [esp + 8]
inc esi
jmp 0x10067080
mov eax, dword [0x101e1d50]
mov ecx, dword [eax + 0x4cb0]
mov eax, dword [0x101dd2e8]
sub eax, ecx
dec eax
cmp esi, eax
jg 0x1006718c
test ecx, ecx
jne case.default.0x10066f8e
call fcn.1007b280
pop edi
pop esi
mov esp, ebp
pop ebp
ret