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 - 0x118]
sub rsp, 0x1f0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm12
mov rax, qword [0x140071010]
xor rax, rsp
mov qword [rbp + 0xa0], rax
mov rbx, rdx
mov r15, rcx
mov ecx, dword [0x1400711e0]
test ecx, ecx
je 0x140001aee
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
jne 0x14000164c
mov ecx, dword [0x1400711e4]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
je 0x140001aee
cmp byte [0x140071171], 0
jne 0x140001aee
mov ecx, dword [0x1400711b4]
test ecx, ecx
je 0x1400016ad
cmp ecx, 1
jne 0x14000170e
cmp dword [0x1400711e4], 0
jne 0x14000168c
mov ecx, dword [0x1400711e0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
jne 0x14000170e
mov ecx, dword [0x1400711e0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
jne 0x14000170e
mov ecx, dword [0x1400711e4]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
jmp 0x14000170e
cmp dword [0x1400711e4], 0
jne 0x1400016c9
mov ecx, dword [0x1400711e0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
jne 0x14000170e
mov ecx, dword [0x1400711e0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
je 0x140001aee
mov ecx, dword [0x1400711e4]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
je 0x140001aee
mov ecx, dword [0x1400711e0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
je 0x140001aee
mov rdx, qword [0x1400710b8]
add rdx, qword [0x140071910]
xor r12d, r12d
mov qword [rbp + 0x80], r12
mov qword [rsp + 0x20], r12
mov edi, 8
mov r9d, edi
lea r8, [rbp + 0x80]
mov rcx, qword [0x140071908]
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov rsi, qword [rbp + 0x80]
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 [0x140071908]
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 [0x140071908]
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov ecx, dword [0x1400711ac]
test ecx, ecx
je 0x1400017d4
sub ecx, 1
je 0x1400017c7
cmp ecx, 1
jne 0x1400017bf
mov dword [0x1400718c0], edi
jmp 0x1400017de
mov edi, dword [0x1400718c0]
jmp 0x1400017de
mov edi, 7
mov dword [0x1400718c0], edi
jmp 0x1400017de
mov edi, r12d
mov dword [0x1400718c0], r12d
cmp byte [0x14007119a], r12b
je 0x140001832
mov r8, r15
mov rdx, rbx
lea rcx, [rbp + 0x40]
call fcn.140002180
movsxd rcx, dword [0x1400718c0]
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 0x14000184e
movsxd rax, edi
add rax, 6
lea rcx, [rax + rax*2]
movsd xmm0, qword [rbx + rcx*4]
movsd qword [rbp + 0x40], xmm0
mov eax, dword [rbx + rcx*4 + 8]
mov dword [rbp + 0x48], eax
lea rax, [rbp + 0x40]
movsd xmm7, qword [rax]
movss xmm1, dword [rbp + 0x50]
subss xmm1, xmm7
movss xmm2, dword [rbp + 0x54]
movaps xmm6, xmm7
shufps xmm6, xmm6, 0x55
subss xmm2, xmm6
movss xmm0, dword [rbp + 0x58]
movss xmm8, dword [rax + 8]
subss xmm0, xmm8
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm1
mulss xmm0, xmm0
addss xmm2, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm2
ja 0x1400018a4
xorps xmm0, xmm0
sqrtss xmm0, xmm2
jmp 0x1400018ac
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
subss xmm7, dword [rbp + 0x50]
divss xmm7, xmm0
subss xmm6, dword [rbp + 0x54]
divss xmm6, xmm0
subss xmm8, dword [rbp + 0x58]
divss xmm8, xmm0
movaps xmm0, xmm7
unpcklps xmm0, xmm6
xorps xmm2, xmm2
movsd xmm2, xmm0
movlhps xmm2, xmm8
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
movss dword [rbp + 0x48], xmm2
xorps xmm0, xmm0
movss xmm0, xmm2
movlhps xmm1, xmm0
movss xmm2, dword [0x140067cec]
divss xmm2, dword [0x1400711a0]
shufps xmm2, xmm2, 0
mulps xmm2, xmm1
movaps xmm0, xmm2
shufps xmm2, xmm2, 0xaa
xorps xmm1, xmm1
movsd xmm1, xmm0
movss dword [rbp + 0x48], xmm2
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 + 0x48], 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 + 0x48]
movlhps xmm2, xmm0
cmpeqps xmm3, xmm2
movmskps eax, xmm3
and eax, 7
cmp al, 7
je 0x1400019cb
lea rdx, [rsi + 0x40]
mov qword [rsp + 0x20], r12
mov r9d, 0xc
lea r8, [rbp + 0x70]
mov rcx, qword [0x140071908]
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 [0x140071908]
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 0x140001a20
mov qword [rbp - 0xc], 0x3f800000
mov dword [rbp - 4], ecx
movaps xmm0, xmmword [0x140067f30]
movups xmmword [rbp], xmm0
movaps xmm1, xmmword [0x140068120]
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 0x140001af0
xor al, al
mov rcx, qword [rbp + 0xa0]
xor rcx, rsp
call fcn.14005d8c0
lea r11, [rsp + 0x1f0]
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