Function at 0x10005760
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
mov eax, dword [0x1001700c]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [0x10018054]
push esi
push edi
mov edi, ecx
lea ecx, [ebp - 0x1c]
movd xmm0, eax
mov edx, edi
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100146f0]
mov eax, dword [0x10018058]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x1001466c]
movss dword [ebp - 0xc], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100146f0]
mov eax, dword [0x1001826c]
push dword [eax*4 + 0x1001091c]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x1001466c]
movss dword [ebp - 0x10], xmm0
call fcn.10004660
add esp, 4
test al, al
je 0x10005af6
push str.Head
mov edx, edi
lea ecx, [ebp - 0x28]
call fcn.10004660
add esp, 4
test al, al
je 0x10005af6
movq xmm0, qword [ebp - 0x1c]
sub esp, 0xc
mov eax, dword [ebp - 0x14]
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
lea ecx, [ebp - 0x34]
call fcn.10004730
add esp, 0xc
test al, al
je 0x10005af6
movss xmm1, dword [ebp - 0x24]
sub esp, 0xc
addss xmm1, dword [0x10014664]
movss xmm2, dword [ebp - 0x28]
mov ecx, esp
movss xmm0, dword [ebp - 0x20]
movss dword [ebp - 0x14], xmm0
mov eax, dword [ebp - 0x14]
unpcklps xmm2, xmm1
movq qword [ecx], xmm2
mov dword [ecx + 8], eax
lea ecx, [ebp - 0x1c]
call fcn.10004730
add esp, 0xc
test al, al
je 0x10005af6
movss xmm2, dword [ebp - 0xc]
movss xmm4, dword [0x100146c8]
movaps xmm0, xmm2
movss xmm5, dword [ebp - 0x1c]
subss xmm0, xmm4
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm5, xmm0
jbe 0x10005af6
movss xmm1, dword [ebp - 0x10]
movss xmm3, dword [ebp - 0x18]
movaps xmm0, xmm1
subss xmm0, dword [0x100146c4]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm3, xmm0
jbe 0x10005af6
addss xmm2, xmm4
cvttss2si eax, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm5
jbe 0x10005af6
addss xmm1, dword [0x100146b8]
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm3
jbe 0x10005af6
mov eax, dword [0x100197a0]
cmp dword [eax], 1
jne 0x1000598a
mov eax, dword [0x10017fa4]
push str.Head
mov eax, dword [eax]
lea ecx, [eax + edi*4]
mov eax, dword [0x10017f34]
add ecx, dword [eax]
mov eax, dword [0x10018248]
mov ecx, dword [ecx + eax]
mov eax, dword [0x100184f8]
mov edx, dword [ecx + eax]
mov eax, dword [0x10017fd0]
xor edx, dword [ecx + eax]
mov eax, dword [0x10017f04]
mov esi, dword [eax + edx]
mov eax, dword [0x10017f70]
add esi, dword [eax + edx]
mov ecx, esi
call dword [0x10017ff0]
push str.Head
mov ecx, esi
movss xmm0, dword [eax + 0x30]
movss dword [0x1001806c], xmm0
call dword [0x10017ff0]
push str.Head
mov ecx, esi
movss xmm0, dword [eax + 0x34]
movss dword [0x10017fd4], xmm0
call dword [0x10017ff0]
movss xmm0, dword [eax + 0x38]
movss dword [0x10018138], xmm0
mov eax, dword [0x100174f4]
dec eax
cmp eax, 3
ja case.default.0x10005995
jmp dword [eax*4 + 0x10005b08]
mov dword [0x1001809c], 1
jmp case.default.0x10005995
mov dword [0x1001809c], 2
jmp case.default.0x10005995
mov dword [0x1001809c], 0x11
jmp case.default.0x10005995
mov dword [0x1001809c], 0x10
cvttss2si eax, dword [ebp - 0x34]
mov ecx, edi
movd xmm1, eax
mov eax, dword [0x10018054]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100146f0]
cvttss2si eax, dword [ebp - 0x30]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x1001466c]
subss xmm1, xmm0
movss dword [ebp - 0xc], xmm1
movd xmm1, eax
mov eax, dword [0x10018058]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100146f0]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x1001466c]
subss xmm1, xmm0
movss dword [ebp - 0x10], xmm1
call fcn.100045d0
test eax, eax
jle 0x10005af6
cmp dword [0x100181f0], 0
je 0x10005af6
cmp dword [0x100174f4], 0
je 0x10005acc
mov edi, dword [0x1001809c]
push edi
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
je 0x10005ac4
cmp byte [edi*8 + 0x10019fa8], 0
lea esi, [edi*8 + 0x10019fac]
je 0x10005a9b
cmp dword [esi], 0
je 0x10005acc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esi]
inc ecx
cmp ecx, eax
ja 0x10005acc
mov byte [edi*8 + 0x10019fa8], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [0x100195dc]
mov dword [esi], eax
mov eax, dword [0x10019650]
mov ecx, dword [eax + ecx]
call fcn.100045d0
test eax, eax
jg 0x10005ade
jmp 0x10005acc
mov byte [edi*8 + 0x10019fa8], 0
cmp dword [0x100181f0], 0
je 0x10005af6
cmp dword [0x100174f4], 0
jne 0x10005af6
cvttss2si eax, dword [ebp - 0x10]
push 0
push 0
push eax
cvttss2si eax, dword [ebp - 0xc]
push eax
push 1
call dword [sym.imp.USER32.dll_mouse_event]
mov ecx, dword [ebp - 8]
pop edi
xor ecx, ebp
pop esi
call fcn.1000c9d8
mov esp, ebp
pop ebp
ret