Function at 0x10005cd0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
mov eax, dword [0x10019040]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [0x1001a118]
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 + 0x10016af0]
mov eax, dword [0x1001a11c]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x10016a5c]
movss dword [ebp - 0xc], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10016af0]
mov eax, dword [0x1001a344]
push dword [eax*4 + 0x10012cfc]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x10016a5c]
movss dword [ebp - 0x10], xmm0
call fcn.10004bc0
add esp, 4
test al, al
je 0x10006066
push str.Head
mov edx, edi
lea ecx, [ebp - 0x28]
call fcn.10004bc0
add esp, 4
test al, al
je 0x10006066
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.10004c90
add esp, 0xc
test al, al
je 0x10006066
movss xmm1, dword [ebp - 0x24]
sub esp, 0xc
addss xmm1, dword [0x10016a54]
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.10004c90
add esp, 0xc
test al, al
je 0x10006066
movss xmm2, dword [ebp - 0xc]
movss xmm4, dword [0x10016ad0]
movaps xmm0, xmm2
movss xmm5, dword [ebp - 0x1c]
subss xmm0, xmm4
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm5, xmm0
jbe 0x10006066
movss xmm1, dword [ebp - 0x10]
movss xmm3, dword [ebp - 0x18]
movaps xmm0, xmm1
subss xmm0, dword [0x10016acc]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm3, xmm0
jbe 0x10006066
addss xmm2, xmm4
cvttss2si eax, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm5
jbe 0x10006066
addss xmm1, dword [0x10016ac0]
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm3
jbe 0x10006066
mov eax, dword [0x1001b8bc]
cmp dword [eax], 1
jne 0x10005efa
mov eax, dword [0x1001a050]
push str.Head
mov eax, dword [eax]
lea ecx, [eax + edi*4]
mov eax, dword [0x10019fc0]
add ecx, dword [eax]
mov eax, dword [0x1001a318]
mov ecx, dword [ecx + eax]
mov eax, dword [0x1001a5dc]
mov edx, dword [ecx + eax]
mov eax, dword [0x1001a080]
xor edx, dword [ecx + eax]
mov eax, dword [0x10019f94]
mov esi, dword [eax + edx]
mov eax, dword [0x1001a008]
add esi, dword [eax + edx]
mov ecx, esi
call dword [0x1001a0ac]
push str.Head
mov ecx, esi
movss xmm0, dword [eax + 0x30]
movss dword [0x1001a134], xmm0
call dword [0x1001a0ac]
push str.Head
mov ecx, esi
movss xmm0, dword [eax + 0x34]
movss dword [0x1001a084], xmm0
call dword [0x1001a0ac]
movss xmm0, dword [eax + 0x38]
movss dword [0x1001a200], xmm0
mov eax, dword [0x100193bc]
dec eax
cmp eax, 3
ja case.default.0x10005f05
jmp dword [eax*4 + 0x10006078]
mov dword [0x1001a168], 1
jmp case.default.0x10005f05
mov dword [0x1001a168], 2
jmp case.default.0x10005f05
mov dword [0x1001a168], 0x11
jmp case.default.0x10005f05
mov dword [0x1001a168], 0x10
cvttss2si eax, dword [ebp - 0x34]
mov ecx, edi
movd xmm1, eax
mov eax, dword [0x1001a118]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10016af0]
cvttss2si eax, dword [ebp - 0x30]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x10016a5c]
subss xmm1, xmm0
movss dword [ebp - 0xc], xmm1
movd xmm1, eax
mov eax, dword [0x1001a11c]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10016af0]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x10016a5c]
subss xmm1, xmm0
movss dword [ebp - 0x10], xmm1
call fcn.10004b30
test eax, eax
jle 0x10006066
cmp dword [0x1001a2b8], 0
je 0x10006066
cmp dword [0x100193bc], 0
je 0x1000603c
mov edi, dword [0x1001a168]
push edi
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
je 0x10006034
cmp byte [edi*8 + 0x1001c0c8], 0
lea esi, [edi*8 + 0x1001c0cc]
je 0x1000600b
cmp dword [esi], 0
je 0x1000603c
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esi]
inc ecx
cmp ecx, eax
ja 0x1000603c
mov byte [edi*8 + 0x1001c0c8], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [0x1001b6d0]
mov dword [esi], eax
mov eax, dword [0x1001b75c]
mov ecx, dword [eax + ecx]
call fcn.10004b30
test eax, eax
jg 0x1000604e
jmp 0x1000603c
mov byte [edi*8 + 0x1001c0c8], 0
cmp dword [0x1001a2b8], 0
je 0x10006066
cmp dword [0x100193bc], 0
jne 0x10006066
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.1000df38
mov esp, ebp
pop ebp
ret