Function at 0x10001180
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x48
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0x44], eax
push esi
push edi
push 6
mov edi, ecx
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x100013db
movss xmm1, dword [ebp + 0x14]
movaps xmm0, xmm1
subss xmm0, dword [ebp + 0x40]
subss xmm1, dword [ebp + 0x4c]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [ebp + 0x18]
movaps xmm2, xmm0
subss xmm0, dword [ebp + 0x50]
subss xmm2, dword [ebp + 0x44]
cvtps2pd xmm0, xmm0
movss dword [esp + 0x1c], xmm2
movss xmm2, dword [ebp + 0x1c]
subss xmm2, dword [ebp + 0x48]
movsd qword [esp + 0x10], xmm0
fld qword [esp + 0x10]
cvtps2pd xmm0, xmm1
movss dword [esp + 0x18], xmm2
movsd qword [esp + 0x10], xmm0
fld qword [esp + 0x10]
call sub.api_ms_win_crt_math_l1_1_0.dll__CIatan2
fstp qword [esp + 0x10]
movsd xmm0, qword [esp + 0x10]
cvtpd2ps xmm0, xmm0
movss xmm1, dword [esp + 0x1c]
mulss xmm0, dword [0x10004224]
mulss xmm1, xmm1
addss xmm0, dword [0x10004228]
movss dword [esp + 0x34], xmm0
movss xmm0, dword [ebp + 0x1c]
subss xmm0, dword [ebp + 0x54]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
movss xmm0, dword [esp + 0xc]
mulss xmm0, xmm0
addss xmm1, xmm0
movss xmm0, dword [esp + 0x18]
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x10001277
sqrtsd xmm0, xmm0
jmp 0x1000127c
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
fld qword [esp + 0x20]
cvtsd2ss xmm0, xmm0
andps xmm0, xmmword [0x10004230]
cvtss2sd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
fld qword [esp + 0x10]
call sub.api_ms_win_crt_math_l1_1_0.dll__CIatan2
fstp qword [esp + 0x10]
movsd xmm0, qword [esp + 0x10]
lea ecx, [esp + 0x18]
cvtpd2ps xmm0, xmm0
push ecx
lea eax, [esp + 0x20]
mov dword [esp + 0x1c], 0x34
push eax
push ecx
lea ecx, [esp + 0x44]
mulss xmm0, dword [0x10004224]
movss dword [esp + 0x1c], xmm0
call fcn.100013f0
mov eax, dword [esp + 0x3c]
add edi, 0x18ac00
mov edx, dword [esp + 0x38]
mov esi, edi
sub eax, edx
mov dword [esp + 0x20], edi
sar eax, 2
xor ecx, ecx
mov dword [esp + 0x1c], esi
test eax, eax
je 0x10001314
mov edi, eax
nop dword [eax + eax]
mov eax, dword [edx + ecx*4]
inc ecx
add eax, dword [esi]
mov esi, eax
cmp ecx, edi
jb 0x10001300
mov edi, dword [esp + 0x20]
mov dword [esp + 0x1c], esi
test edx, edx
je 0x1000134b
mov ecx, dword [esp + 0x40]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x10001341
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10001341
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.100023ad
add esp, 8
lea ecx, [esp + 0xc]
mov dword [esp + 0xc], 0x38
push ecx
lea eax, [esp + 0x14]
push eax
push ecx
lea ecx, [esp + 0x2c]
call fcn.100013f0
mov esi, dword [esp + 0x24]
xor ecx, ecx
mov edx, dword [esp + 0x20]
sub esi, edx
sar esi, 2
test esi, esi
je 0x1000138c
nop word [eax + eax]
mov eax, dword [edx + ecx*4]
inc ecx
add eax, dword [edi]
mov edi, eax
cmp ecx, esi
jb 0x10001380
test edx, edx
je 0x100013c3
mov ecx, dword [esp + 0x28]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x100013b9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100013b9
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.100023ad
add esp, 8
mov eax, dword [esp + 0x1c]
movss xmm0, dword [esp + 0x34]
movss dword [eax], xmm0
movss xmm0, dword [esp + 0x10]
movss dword [edi], xmm0
mov ecx, dword [esp + 0x4c]
pop edi
pop esi
xor ecx, esp
call fcn.1000236f
mov esp, ebp
pop ebp
ret