Function at 0x1400015c0
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 - 0xf8]
sub rsp, 0x1d0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm12
mov rax, qword [0x140070040]
xor rax, rsp
mov qword [rbp + 0x88], rax
mov rbx, rdx
mov r15, rcx
mov ecx, dword [0x140070250]
test ecx, ecx
je 0x140001ae0
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
jne 0x14000163c
mov ecx, dword [0x140070254]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
je 0x140001ae0
cmp byte [0x1400701e1], 0
jne 0x140001ae0
mov ecx, dword [0x140070224]
test ecx, ecx
je 0x14000169d
cmp ecx, 1
jne 0x1400016fe
cmp dword [0x140070254], 0
jne 0x14000167c
mov ecx, dword [0x140070250]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
jne 0x1400016fe
mov ecx, dword [0x140070250]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
jne 0x1400016fe
mov ecx, dword [0x140070254]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
jmp 0x1400016fe
cmp dword [0x140070254], 0
jne 0x1400016b9
mov ecx, dword [0x140070250]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
jne 0x1400016fe
mov ecx, dword [0x140070250]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
je 0x140001ae0
mov ecx, dword [0x140070254]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
je 0x140001ae0
mov ecx, dword [0x140070250]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
je 0x140001ae0
mov rdx, qword [0x140070128]
add rdx, qword [0x140070950]
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 [0x140070948]
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
mov r9d, 0xc
lea r8, [rbp + 0x60]
lea rdx, [rsi + 0x3d0]
mov rcx, qword [0x140070948]
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
mov r9d, 0xc
lea r8, [rbp + 0x50]
mov rcx, qword [0x140070948]
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov ecx, dword [0x14007021c]
test ecx, ecx
je 0x1400017c6
sub ecx, 1
je 0x1400017b9
cmp ecx, 1
jne 0x1400017b1
mov dword [0x140070900], edi
jmp 0x1400017d0
mov edi, dword [0x140070900]
jmp 0x1400017d0
mov edi, 7
mov dword [0x140070900], edi
jmp 0x1400017d0
mov edi, r12d
mov dword [0x140070900], r12d
cmp byte [0x14007020a], r12b
je 0x14000182a
mov r8, r15
mov rdx, rbx
lea rcx, [rbp + 0x40]
call fcn.1400021a0
movsxd rcx, dword [0x140070900]
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 xmm2, xmm3
mov qword [rbp + 0x40], r12
movaps xmm0, xmm2
shufps xmm2, xmm2, 0xaa
movsd qword [rbp + 0x40], xmm0
movd eax, xmm2
jmp 0x140001843
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]
movss xmm1, dword [rbp + 0x50]
movss xmm7, dword [rbp + 0x40]
subss xmm1, xmm7
movss xmm2, dword [rbp + 0x54]
movss xmm8, dword [rbp + 0x44]
subss xmm2, xmm8
movss xmm0, dword [rbp + 0x58]
movd xmm6, eax
subss xmm0, xmm6
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm1
mulss xmm0, xmm0
addss xmm2, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm2
ja 0x140001893
xorps xmm0, xmm0
sqrtss xmm0, xmm2
jmp 0x14000189b
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
subss xmm7, dword [rbp + 0x50]
divss xmm7, xmm0
subss xmm8, dword [rbp + 0x54]
divss xmm8, xmm0
subss xmm6, dword [rbp + 0x58]
divss xmm6, xmm0
unpcklps xmm7, xmm8
xorps xmm2, xmm2
movsd xmm2, xmm7
movss dword [rbp + 0x48], xmm6
movlhps xmm2, xmm6
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 [0x140066bdc]
divss xmm2, dword [0x140070210]
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 xmm2, xmm3
movmskps eax, xmm2
and eax, 7
cmp al, 7
je 0x1400019bc
lea rdx, [rsi + 0x40]
mov qword [rsp + 0x20], r12
mov r9d, 0xc
lea r8, [rbp + 0x70]
mov rcx, qword [0x140070948]
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 [0x140070948]
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
mov ecx, 9
lea rax, [rbp - 0x70]
nop word [rax + rax]
mov qword [rax - 8], r12
mov dword [rax], r12d
lea rax, [rax + 0xc]
sub rcx, 1
jne 0x140001a10
mov qword [rbp - 0xc], 0x3f800000
mov dword [rbp - 4], ecx
movdqa xmm0, xmmword [0x140066e50]
movups xmmword [rbp], xmm0
movdqa xmm1, xmmword [0x140067050]
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 0x140001ae2
xor al, al
mov rcx, qword [rbp + 0x88]
xor rcx, rsp
call fcn.14005d090
lea r11, [rsp + 0x1d0]
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