Function at 0x14006e5c0
Capabilities:
Log keystrokes via polling

Disassembly:
mov r11, rsp
push rbx
sub rsp, 0xc0
mov rax, qword [0x1402e8018]
xor rax, rsp
mov qword [rsp + 0x58], rax
mov rax, qword [0x1402f0c90]
mov rbx, rcx
movss xmm0, dword [0x1402f0af0]
mov qword [r11 + 0x18], rsi
mov qword [r11 + 0x20], rdi
mov qword [r11 - 0x18], r15
movaps xmmword [r11 - 0x28], xmm6
movaps xmmword [r11 - 0x38], xmm7
movaps xmmword [r11 - 0x48], xmm8
movss dword [rcx + 8], xmm0
cmp byte [rax + 0x2b0], 0
movaps xmmword [r11 - 0x58], xmm9
movaps xmmword [r11 - 0x68], xmm10
je 0x14006e64c
mov rax, qword [0x1402f0c98]
cmp byte [rax + 0x2b0], 0
je 0x14006e64c
divss xmm0, dword [0x1402b87fc]
cvtps2pd xmm6, xmm0
mulsd xmm6, qword [0x1402b8400]
mulsd xmm6, qword [0x1402b8528]
jmp 0x14006e667
divss xmm0, dword [0x1402b87fc]
cvtps2pd xmm6, xmm0
mulsd xmm6, qword [0x1402b8400]
mulsd xmm6, qword [0x1402b85b0]
movaps xmm0, xmm6
movaps xmm8, xmm6
addsd xmm0, qword [0x1402b83d0]
addsd xmm8, qword [0x1402b8418]
mov edi, reloc.WS2_32.dll_recv
mov rsi, rbx
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
movsd xmm9, qword [0x1402b8540]
movaps xmm7, xmm0
movsd xmm10, qword [0x1402b8548]
movaps xmm0, xmm6
mulsd xmm7, xmm9
addsd xmm7, xmm10
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
mulsd xmm0, xmm9
addsd xmm0, xmm10
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
cvttsd2si eax, xmm0
movaps xmm0, xmm8
mov dword [rbx + 0xc], eax
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
movaps xmm6, xmm0
movaps xmm0, xmm7
mulsd xmm6, xmm9
addsd xmm6, xmm10
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
cvttsd2si eax, xmm0
movaps xmm0, xmm6
mov dword [rdi + rbx], eax
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
cvttsd2si eax, xmm0
lea ecx, [rdi - 0xf]
mov dword [rbx + 0x14], eax
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
movaps xmm10, xmmword [rsp + 0x60]
jae 0x14006e808
movss xmm6, dword [0x1402b8730]
xor edi, edi
mov qword [rsp + 0xb8], r14
call fcn.140139aa0
mov ecx, dword [0x1402e8430]
lea r9, [rsp + 0x30]
movsd xmm0, qword [0x1402e8428]
lea rdx, [rsp + 0x40]
mov dword [rsp + 0x38], ecx
movaps xmm2, xmm6
mov rcx, rax
movsd qword [rsp + 0x30], xmm0
call fcn.1401afdc0
mov rsi, qword [rsp + 0x40]
mov r14, qword [rsp + 0x48]
cmp rsi, r14
je 0x14006e7f2
movss xmm8, dword [0x1402e8428]
movss xmm9, dword [0x1402e8430]
mov qword [rsp + 0xd8], rbp
nop dword [rax + rax]
mov rbp, rdi
movaps xmm7, xmm6
mov rdi, qword [rsi]
movss xmm0, dword [rdi + 8]
movss xmm1, dword [rdi + 0x10]
subss xmm0, xmm8
subss xmm1, xmm9
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x14006e7ca
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x14006e7d2
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
comiss xmm6, xmm0
jbe 0x14006e7da
movaps xmm6, xmm0
comiss xmm7, xmm0
cmovbe rdi, rbp
add rsi, 8
cmp rsi, r14
jne 0x14006e790
mov rbp, qword [rsp + 0xd8]
lea rcx, [rsp + 0x40]
call fcn.140032160
mov r14, qword [rsp + 0xb8]
mov qword [rbx + 0x18], rdi
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
movaps xmm9, xmmword [rsp + 0x70]
movaps xmm8, xmmword [rsp + 0x80]
movaps xmm7, xmmword [rsp + 0x90]
movaps xmm6, xmmword [rsp + 0xa0]
mov rsi, qword [rsp + 0xe0]
jae 0x14006e8a6
movss xmm0, dword [rbx + 0xc0]
ucomiss xmm0, dword [0x1402f1148]
jp 0x14006e8a6
jne 0x14006e8a6
movss xmm0, dword [rbx + 0xc4]
ucomiss xmm0, dword [0x1402f114c]
jp 0x14006e8a6
jne 0x14006e8a6
movss xmm0, dword [rbx + 0xc8]
ucomiss xmm0, dword [0x1402f1150]
jp 0x14006e8a6
jne 0x14006e8a6
mov rax, qword [rbx + 0xb8]
cmp byte [rax + 0x2b0], 0
je 0x14006e8a6
movsd xmm0, qword [0x1402e8428]
movsd qword [rbx + 0xc0], xmm0
mov eax, dword [0x1402e8430]
mov dword [rbx + 0xc8], eax
movss xmm0, dword [rbx + 0xc0]
ucomiss xmm0, dword [0x1402f1148]
jp 0x14006e8e2
jne 0x14006e8e2
lea rdi, [rbx + 0xc4]
movss xmm0, dword [rdi]
ucomiss xmm0, dword [0x1402f114c]
jp 0x14006e8e2
jne 0x14006e8e2
movss xmm0, dword [rbx + 0xc8]
ucomiss xmm0, dword [0x1402f1150]
jp 0x14006e8e2
je 0x14006e927
mov rax, qword [rbx + 0xb8]
lea rdi, [rbx + 0xc4]
cmp byte [rax + 0x2b0], 0
je 0x14006e927
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jae 0x14006e927
movsd xmm0, qword [0x1402e8428]
movsd qword [rbx + 0xcc], xmm0
mov eax, dword [0x1402e8430]
mov dword [rbx + 0xd4], eax
movss xmm1, dword [0x1402f1148]
movss xmm0, dword [rbx + 0xc0]
ucomiss xmm0, xmm1
jp 0x14006e964
jne 0x14006e964
movss xmm0, dword [rdi]
ucomiss xmm0, dword [0x1402f114c]
jp 0x14006e964
jne 0x14006e964
movss xmm0, dword [rbx + 0xc8]
ucomiss xmm0, dword [0x1402f1150]
jp 0x14006e964
je 0x14006e9f3
movss xmm0, dword [rbx + 0xcc]
ucomiss xmm0, xmm1
jp 0x14006e999
jne 0x14006e999
movss xmm0, dword [rbx + 0xd0]
ucomiss xmm0, dword [0x1402f114c]
jp 0x14006e999
jne 0x14006e999
movss xmm0, dword [rbx + 0xd4]
ucomiss xmm0, dword [0x1402f1150]
jp 0x14006e999
je 0x14006e9f3
mov rax, qword [rbx + 0xb8]
cmp byte [rax + 0x2b0], 0
je 0x14006e9f3
mov ecx, reloc.WS2_32.dll_select
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jae 0x14006e9f3
movsd xmm0, qword [0x1402f1148]
movsd qword [rbx + 0xc0], xmm0
mov eax, dword [0x1402f1150]
mov dword [rbx + 0xc8], eax
movsd xmm0, qword [0x1402f1148]
movsd qword [rbx + 0xcc], xmm0
mov eax, dword [0x1402f1150]
mov dword [rbx + 0xd4], eax
mov rax, qword [rbx + 0x18]
mov r15, qword [rsp + 0xb0]
mov rdi, qword [rsp + 0xe8]
test rax, rax
je 0x14006ea1d
cmp byte [rax + 0xa7], 0
jne 0x14006ea1d
mov qword [rbx + 0x18], 0
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140220090
add rsp, 0xc0
pop rbx
ret