Function at 0x1800023f0
Capabilities:
Log keystrokes via polling

Disassembly:
mov r11, rsp
push rdi
push r13
push r14
sub rsp, 0x100
mov r8, qword [rcx + 8]
xor r14d, r14d
mov rax, qword [rcx + 0x10]
mov rdi, rcx
sub rax, r8
mov r13d, r14d
sar rax, 3
test rax, rax
je 0x180002964
mov qword [r11 + 0x18], rbx
mov qword [r11 - 0x20], rbp
mov qword [r11 - 0x28], rsi
mov qword [r11 - 0x30], r12
mov qword [r11 - 0x38], r15
mov r15d, r14d
movaps xmmword [r11 - 0x48], xmm6
movss xmm6, dword [0x18000f908]
movaps xmmword [r11 - 0x58], xmm7
movaps xmmword [r11 - 0x68], xmm8
movss xmm8, dword [0x18000f944]
movaps xmmword [r11 - 0x78], xmm9
movaps xmmword [r11 - 0x88], xmm10
movss xmm10, dword [0x18000f8f0]
movaps xmmword [r11 - 0x98], xmm11
movaps xmmword [rsp + 0x70], xmm12
movss xmm12, dword [0x18000f90c]
movaps xmmword [rsp + 0x60], xmm13
movaps xmmword [rsp + 0x50], xmm14
movss xmm14, dword [0x18000f8fc]
movaps xmmword [rsp + 0x40], xmm15
movss xmm15, dword [0x18000f910]
nop dword [rax + rax]
mov rax, qword [r15 + r8]
mov rcx, qword [rdi]
mov dword [rsp + 0x30], r14d
movss xmm11, dword [rax + 0x3c]
movss xmm9, dword [rax + 0x40]
movaps xmm1, xmm11
movss xmm13, dword [rax + 0x44]
movaps xmm2, xmm9
mov eax, dword [0x180012010]
movaps xmm3, xmm13
mov rdx, qword [rcx]
mov dword [rsp + 0x28], eax
movss dword [rsp + 0x20], xmm12
call qword [rdx + 0x50]
mov eax, dword [0x180012014]
movaps xmm3, xmm13
mov dword [rsp + 0x28], eax
movaps xmm2, xmm9
movaps xmm1, xmm11
movss dword [rsp + 0x20], xmm12
mov rcx, rdi
call fcn.18000bef0
mov rax, qword [rdi + 8]
mov rdx, qword [r15 + rax]
cmp qword [rdx + 0x18], 7
jbe 0x180002528
mov rdx, qword [rdx]
mov rcx, qword [rdi]
movaps xmm7, xmm13
mulss xmm7, dword [0x18000f8dc]
movaps xmm2, xmm9
mov qword [rsp + 0x30], rdx
addss xmm2, xmm14
mov dword [rsp + 0x28], 0xc
movaps xmm3, xmm6
mov dword [rsp + 0x20], 0xffbfbfbf
addss xmm7, xmm11
movd r9d, xmm3
movd r8d, xmm2
movaps xmm1, xmm7
movss dword [rsp + 0x120], xmm7
movd edx, xmm1
call fcn.180003460
movaps xmm3, xmm13
mov byte [rsp + 0x28], 0
movaps xmm2, xmm9
movss dword [rsp + 0x20], xmm12
movaps xmm1, xmm11
mov rcx, rdi
call fcn.180003300
mov r8, qword [rdi + 8]
mov ebp, r14d
mov rcx, qword [r8 + r15]
mov rax, qword [rcx + 0x28]
sub rax, qword [rcx + 0x20]
sar rax, 3
test rax, rax
je 0x1800028d2
mov r12, r14
nop
mov rcx, qword [r15 + r8]
addss xmm9, xmm15
mov rax, qword [rcx + 0x20]
mov rbx, qword [r12 + rax]
cmp dword [rcx + 0x38], ebp
je 0x180002655
lea rcx, [rsp + 0x128]
call qword [sym.imp.USER32.dll_GetCursorPos]
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rcx, rax
lea rdx, [rsp + 0x128]
call qword [sym.imp.USER32.dll_ScreenToClient]
movd xmm1, dword [rsp + 0x128]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm11
jb 0x180002655
movaps xmm0, xmm13
addss xmm0, xmm11
comiss xmm0, xmm1
jb 0x180002655
movd xmm1, dword [rsp + 0x12c]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm9
jb 0x180002655
movaps xmm0, xmm9
addss xmm0, xmm12
comiss xmm0, xmm1
jb 0x180002655
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180002655
mov rax, qword [rdi + 8]
mov rcx, qword [rax + r15]
mov dword [rcx + 0x38], ebp
mov rcx, qword [rdi]
movaps xmm3, xmm13
mov eax, dword [0x180012010]
movaps xmm2, xmm9
mov dword [rsp + 0x30], r14d
movaps xmm1, xmm11
mov dword [rsp + 0x28], eax
mov rdx, qword [rcx]
movss dword [rsp + 0x20], xmm12
call qword [rdx + 0x50]
mov eax, dword [0x180012014]
movaps xmm3, xmm13
mov dword [rsp + 0x28], eax
movaps xmm2, xmm9
movaps xmm1, xmm11
movss dword [rsp + 0x20], xmm12
mov rcx, rdi
call fcn.18000bef0
mov rax, qword [rdi + 8]
movaps xmm3, xmm13
movaps xmm2, xmm9
movaps xmm1, xmm11
mov rcx, qword [rax + r15]
cmp dword [rcx + 0x38], ebp
mov rcx, rdi
sete al
mov byte [rsp + 0x28], al
movss dword [rsp + 0x20], xmm12
call fcn.180003300
cmp qword [rbx + 0x18], 7
mov rax, rbx
jbe 0x1800026df
mov rax, qword [rbx]
mov rcx, qword [rdi]
movaps xmm2, xmm9
mov qword [rsp + 0x30], rax
addss xmm2, xmm14
movaps xmm3, xmm6
mov dword [rsp + 0x28], 0xc
movaps xmm1, xmm7
movd r9d, xmm3
movd edx, xmm1
mov dword [rsp + 0x20], 0xffbfbfbf
movd r8d, xmm2
call fcn.180003460
mov rax, qword [rdi + 8]
mov rcx, qword [r15 + rax]
cmp dword [rcx + 0x38], ebp
jne 0x1800028ac
mov rax, qword [rbx + 0x28]
lea rsi, [rbx + 0x20]
sub rax, qword [rsi]
movaps xmm7, xmm13
movss xmm6, dword [rcx + 0x40]
addss xmm7, xmm11
addss xmm7, xmm14
test rax, 0xfffffffffffffff8
je 0x180002813
mov rcx, qword [rdi]
movaps xmm3, xmm8
mov eax, dword [0x180012010]
movaps xmm2, xmm6
mov dword [rsp + 0x30], r14d
movaps xmm1, xmm7
mov dword [rsp + 0x28], eax
mov rdx, qword [rcx]
movss dword [rsp + 0x20], xmm12
call qword [rdx + 0x50]
mov eax, dword [0x180012014]
movaps xmm3, xmm8
mov dword [rsp + 0x28], eax
movaps xmm2, xmm6
movaps xmm1, xmm7
movss dword [rsp + 0x20], xmm12
mov rcx, rdi
call fcn.18000bef0
cmp qword [rbx + 0x18], 7
jbe 0x1800027aa
mov rbx, qword [rbx]
movss xmm3, dword [0x18000f908]
movaps xmm2, xmm6
mov rcx, qword [rdi]
addss xmm2, xmm14
movaps xmm1, xmm7
mov qword [rsp + 0x30], rbx
addss xmm1, dword [0x18000f938]
movd r9d, xmm3
mov dword [rsp + 0x28], 0xc
movd r8d, xmm2
mov dword [rsp + 0x20], 0xffbfbfbf
movd edx, xmm1
call fcn.180003460
movaps xmm3, xmm8
mov byte [rsp + 0x28], 0
movaps xmm2, xmm6
movss dword [rsp + 0x20], xmm12
movaps xmm1, xmm7
mov rcx, rdi
call fcn.180003300
addss xmm6, xmm15
mov rax, qword [rsi + 8]
xor ebx, ebx
sub rax, qword [rsi]
xor r14d, r14d
sar rax, 3
test rax, rax
je 0x18000289b
test ebx, ebx
jle 0x18000285d
mov rcx, qword [rdi]
movaps xmm2, xmm6
mov eax, dword [0x180012010]
subss xmm2, xmm10
mov dword [rsp + 0x30], 0
movaps xmm3, xmm8
mov dword [rsp + 0x28], eax
movaps xmm1, xmm7
mov rdx, qword [rcx]
movss dword [rsp + 0x20], xmm10
call qword [rdx + 0x50]
mov rax, qword [rsi]
movaps xmm3, xmm8
movaps xmm2, xmm6
movaps xmm1, xmm7
mov rcx, rdi
mov rax, qword [r14 + rax]
mov qword [rsp + 0x20], rax
call fcn.180002980
mov rcx, qword [rsi + 8]
addss xmm6, xmm0
sub rcx, qword [rsi]
inc ebx
sar rcx, 3
add r14, 8
movsxd rax, ebx
cmp rax, rcx
jb 0x180002828
xor r14d, r14d
movss xmm7, dword [rsp + 0x120]
movss xmm6, dword [0x18000f908]
mov r8, qword [rdi + 8]
inc ebp
add r12, 8
mov rax, qword [r8 + r15]
mov rcx, qword [rax + 0x28]
sub rcx, qword [rax + 0x20]
sar rcx, 3
movsxd rax, ebp
cmp rax, rcx
jb 0x1800025c0
mov rdx, qword [rdi + 0x10]
inc r13d
sub rdx, r8
movsxd rax, r13d
sar rdx, 3
add r15, 8
cmp rax, rdx
jb 0x1800024b0
movaps xmm15, xmmword [rsp + 0x40]
movaps xmm14, xmmword [rsp + 0x50]
movaps xmm13, xmmword [rsp + 0x60]
movaps xmm12, xmmword [rsp + 0x70]
movaps xmm11, xmmword [rsp + 0x80]
movaps xmm10, xmmword [rsp + 0x90]
movaps xmm9, xmmword [rsp + 0xa0]
movaps xmm8, xmmword [rsp + 0xb0]
movaps xmm7, xmmword [rsp + 0xc0]
movaps xmm6, xmmword [rsp + 0xd0]
mov r15, qword [rsp + 0xe0]
mov r12, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0xf0]
mov rbp, qword [rsp + 0xf8]
mov rbx, qword [rsp + 0x130]
mov ecx, 1
add rsp, 0x100
pop r14
pop r13
pop rdi
jmp qword [sym.imp.USER32.dll_GetAsyncKeyState]