Function at 0x1400015d0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rax - 0x108]
sub rsp, 0x1e0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm12
mov rax, qword [0x140115010]
xor rax, rsp
mov qword [rbp + 0x98], rax
mov rbx, rdx
mov r15, rcx
mov ecx, dword [0x1401151e0]
test ecx, ecx
je 0x140001afe
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
jne 0x14000164c
mov ecx, dword [0x1401151e4]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
je 0x140001afe
cmp byte [0x140115171], 0
jne 0x140001afe
mov ecx, dword [0x1401151b4]
test ecx, ecx
je 0x1400016ad
cmp ecx, 1
jne 0x14000170e
cmp dword [0x1401151e4], 0
jne 0x14000168c
mov ecx, dword [0x1401151e0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
jne 0x14000170e
mov ecx, dword [0x1401151e0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
jne 0x14000170e
mov ecx, dword [0x1401151e4]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
jmp 0x14000170e
cmp dword [0x1401151e4], 0
jne 0x1400016c9
mov ecx, dword [0x1401151e0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
jne 0x14000170e
mov ecx, dword [0x1401151e0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
je 0x140001afe
mov ecx, dword [0x1401151e4]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
je 0x140001afe
mov ecx, dword [0x1401151e0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
je 0x140001afe
mov rdx, qword [0x1401150b8]
add rdx, qword [0x1401158d8]
xor r12d, r12d
mov qword [rbp + 0x90], r12
mov qword [rsp + 0x20], r12
mov edi, 8
mov r9d, edi
lea r8, [rbp + 0x90]
mov rcx, qword [0x1401158d0]
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov rsi, qword [rbp + 0x90]
xorps xmm12, xmm12
mov qword [rbp + 0x60], r12
mov dword [rbp + 0x68], r12d
mov qword [rsp + 0x20], r12
lea r9d, [r12 + 0xc]
lea r8, [rbp + 0x60]
lea rdx, [rsi + 0x3d0]
mov rcx, qword [0x1401158d0]
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
lea rdx, [rsi + 0x60]
mov qword [rbp + 0x50], r12
mov dword [rbp + 0x58], r12d
mov qword [rsp + 0x20], r12
lea r9d, [r12 + 0xc]
lea r8, [rbp + 0x50]
mov rcx, qword [0x1401158d0]
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov ecx, dword [0x1401151ac]
test ecx, ecx
je 0x1400017d4
sub ecx, 1
je 0x1400017c7
cmp ecx, 1
jne 0x1400017bf
mov dword [0x140115880], edi
jmp 0x1400017de
mov edi, dword [0x140115880]
jmp 0x1400017de
mov edi, 7
mov dword [0x140115880], edi
jmp 0x1400017de
mov edi, r12d
mov dword [0x140115880], r12d
cmp byte [0x14011519a], r12b
je 0x140001835
mov r8, r15
mov rdx, rbx
lea rcx, [rbp + 0x80]
call fcn.1400021c0
movsxd rcx, dword [0x140115880]
add rcx, 6
lea rdx, [rcx + rcx*2]
movsd xmm3, qword [rbx + rdx*4]
movss xmm0, dword [rbx + rdx*4 + 8]
movlhps xmm3, xmm0
movsd xmm2, qword [rax]
movss xmm0, dword [rax + 8]
movlhps xmm2, xmm0
addps xmm3, xmm2
movsd qword [rbp + 0x40], xmm3
shufps xmm3, xmm3, 0xaa
movss dword [rbp + 0x48], xmm3
jmp 0x140001851
movsxd rax, edi
add rax, 6
lea rax, [rax + rax*2]
movsd xmm0, qword [rbx + rax*4]
movsd qword [rbp + 0x40], xmm0
mov eax, dword [rbx + rax*4 + 8]
mov dword [rbp + 0x48], eax
lea rax, [rbp + 0x40]
movsd xmm6, qword [rax]
movss xmm1, dword [rbp + 0x50]
movsd qword [rbp + 0x80], xmm6
subss xmm1, xmm6
movss xmm2, dword [rbp + 0x54]
movss xmm8, dword [rbp + 0x84]
subss xmm2, xmm8
movss xmm0, dword [rbp + 0x58]
movss xmm7, dword [rax + 8]
subss xmm0, xmm7
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm1
mulss xmm0, xmm0
addss xmm2, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm2
ja 0x1400018b0
xorps xmm0, xmm0
sqrtss xmm0, xmm2
jmp 0x1400018b8
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
subss xmm6, dword [rbp + 0x50]
divss xmm6, xmm0
subss xmm8, dword [rbp + 0x54]
divss xmm8, xmm0
subss xmm7, dword [rbp + 0x58]
divss xmm7, xmm0
movaps xmm0, xmm6
unpcklps xmm0, xmm8
xorps xmm2, xmm2
movsd xmm2, xmm0
movss dword [rbp + 0x88], xmm7
movlhps xmm2, xmm7
movsd xmm3, qword [rbp + 0x60]
movss xmm0, dword [rbp + 0x68]
movlhps xmm3, xmm0
subps xmm2, xmm3
movaps xmm0, xmm2
shufps xmm2, xmm2, 0xaa
xorps xmm1, xmm1
movsd xmm1, xmm0
xorps xmm0, xmm0
movss xmm0, xmm2
movlhps xmm1, xmm0
movss xmm2, dword [0x140104574]
divss xmm2, dword [0x1401151a0]
shufps xmm2, xmm2, 0
mulps xmm2, xmm1
movaps xmm0, xmm2
shufps xmm2, xmm2, 0xaa
xorps xmm1, xmm1
movsd xmm1, xmm0
xorps xmm0, xmm0
movss xmm0, xmm2
movlhps xmm1, xmm0
addps xmm1, xmm3
movaps xmm0, xmm1
movsd qword [rbp + 0x70], xmm1
shufps xmm1, xmm1, 0xaa
mov dword [rbp + 0x88], r12d
xorps xmm3, xmm3
movsd xmm3, xmm0
movss dword [rbp + 0x78], xmm1
xorps xmm0, xmm0
movss xmm0, xmm1
movlhps xmm3, xmm0
xorps xmm0, xmm0
unpcklps xmm0, xmm12
xorps xmm2, xmm2
movsd xmm2, xmm0
movss xmm0, dword [rbp + 0x88]
movlhps xmm2, xmm0
cmpeqps xmm3, xmm2
movmskps eax, xmm3
and eax, 7
cmp al, 7
je 0x1400019db
lea rdx, [rsi + 0x40]
mov qword [rsp + 0x20], r12
mov r9d, 0xc
lea r8, [rbp + 0x70]
mov rcx, qword [0x1401158d0]
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov qword [rsp + 0x20], r12
mov r9d, 0xc
lea r8, [rbp + 0x70]
lea rdx, [rsi + 0x3d0]
mov rcx, qword [0x1401158d0]
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
movups xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0x60], xmm0
xorps xmm1, xmm1
xor eax, eax
movups xmmword [rbp - 0x78], xmm1
movups xmmword [rbp - 0x68], xmm1
movups xmmword [rbp - 0x58], xmm1
movups xmmword [rbp - 0x48], xmm1
movups xmmword [rbp - 0x38], xmm1
movups xmmword [rbp - 0x28], xmm1
mov qword [rbp - 0x18], rax
mov dword [rbp - 0x10], eax
mov dword [rbp + 0x34], eax
movups xmmword [rsp + 0x70], xmm0
mov qword [rbp - 0x80], rax
lea ecx, [rax + 9]
lea rax, [rbp - 0x70]
nop dword [rax]
nop dword [rax + rax]
mov qword [rax - 8], r12
mov dword [rax], r12d
lea rax, [rax + 0xc]
sub rcx, 1
jne 0x140001a30
mov qword [rbp - 0xc], 0x3f800000
mov dword [rbp - 4], ecx
movaps xmm0, xmmword [0x1401047d0]
movups xmmword [rbp], xmm0
movaps xmm1, xmmword [0x140104880]
movups xmmword [rbp + 0x10], xmm1
xorps xmm0, xmm0
movups xmmword [rbp + 0x20], xmm0
mov dword [rbp + 0x30], 0x3f800000
lea rax, [rsp + 0x40]
movups xmm0, xmmword [rax]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rbx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rbx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rbx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rbx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rbx + 0x60], xmm0
sub rbx, 0xffffffffffffff80
movups xmm0, xmmword [rax + 0x70]
movups xmmword [rbx - 0x10], xmm0
lea rax, [rax + 0x80]
movups xmm1, xmmword [rax]
movups xmmword [rbx], xmm1
movups xmm0, xmmword [rax + 0x10]
movups xmmword [rbx + 0x10], xmm0
movups xmm1, xmmword [rax + 0x20]
movups xmmword [rbx + 0x20], xmm1
movups xmm0, xmmword [rax + 0x30]
movups xmmword [rbx + 0x30], xmm0
movups xmm1, xmmword [rax + 0x40]
movups xmmword [rbx + 0x40], xmm1
movups xmm0, xmmword [rax + 0x50]
movups xmmword [rbx + 0x50], xmm0
movups xmm1, xmmword [rax + 0x60]
movups xmmword [rbx + 0x60], xmm1
mov rax, qword [rax + 0x70]
mov qword [rbx + 0x70], rax
jmp 0x140001b00
xor al, al
mov rcx, qword [rbp + 0x98]
xor rcx, rsp
call fcn.1400c1e70
lea r11, [rsp + 0x1e0]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm12, xmmword [r11 - 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret