Function at 0x180002a20
Capabilities:
Log keystrokes via polling

Disassembly:
mov r11, rsp
push rbx
push r12
push r14
sub rsp, 0x120
mov r8, qword [rcx + 8]
xor r12d, r12d
mov rax, qword [rcx + 0x10]
mov ebx, r12d
sub rax, r8
mov dword [rsp + 0x158], ebx
sar rax, 3
mov r14, rcx
test rax, rax
je 0x180002fe6
mov qword [r11 - 0x20], rbp
mov qword [r11 - 0x28], rsi
mov qword [r11 - 0x30], rdi
mov qword [r11 - 0x38], r13
mov r13d, r12d
mov qword [r11 - 0x40], r15
movaps xmmword [r11 - 0x58], xmm6
movss xmm6, dword [0x180013f84]
movaps xmmword [r11 - 0x68], xmm7
movaps xmmword [r11 - 0x78], xmm8
movaps xmmword [r11 - 0x88], xmm9
movss xmm9, dword [0x180013fd4]
movaps xmmword [r11 - 0x98], xmm10
movss xmm10, dword [0x180013f6c]
movaps xmmword [r11 - 0xa8], xmm11
movaps xmmword [r11 - 0xb8], xmm12
movss xmm12, dword [0x180013f9c]
movaps xmmword [rsp + 0x70], xmm13
movaps xmmword [rsp + 0x60], xmm14
movss xmm14, dword [0x180013f90]
mov dword [rsp + 0x140], 0xffbfbfbf
mov edi, dword [rsp + 0x140]
movaps xmmword [rsp + 0x50], xmm15
movss xmm15, dword [0x180013f7c]
nop word [rax + rax]
mov rax, qword [r8 + r13]
mov rcx, qword [r14]
mov dword [rsp + 0x30], r12d
movss xmm11, dword [rax + 0x3c]
movss xmm8, dword [rax + 0x40]
movaps xmm1, xmm11
movss xmm13, dword [rax + 0x44]
movaps xmm2, xmm8
mov eax, dword [0x180016010]
movaps xmm3, xmm13
mov rdx, qword [rcx]
mov dword [rsp + 0x28], eax
movss dword [rsp + 0x20], xmm12
call qword [rdx + 0x50]
mov eax, dword [0x180016014]
movaps xmm3, xmm13
mov dword [rsp + 0x28], eax
movaps xmm2, xmm8
movaps xmm1, xmm11
movss dword [rsp + 0x20], xmm12
mov rcx, r14
call fcn.18000f7b0
mov rax, qword [r14 + 8]
mov rcx, qword [rax + r13]
cmp qword [rcx + 0x18], 8
jb 0x180002b78
mov rcx, qword [rcx]
mov qword [rsp + 0x30], rcx
movaps xmm7, xmm13
mulss xmm7, dword [0x180013f28]
movaps xmm2, xmm8
mov rcx, qword [r14]
addss xmm2, xmm15
mov dword [rsp + 0x28], 0xc
movaps xmm3, xmm6
mov dword [rsp + 0x20], edi
addss xmm7, xmm11
movd r9d, xmm3
movd r8d, xmm2
movaps xmm1, xmm7
movss dword [rsp + 0x150], xmm7
movd edx, xmm1
call fcn.180003d30
movaps xmm3, xmm13
mov byte [rsp + 0x28], 0
movaps xmm2, xmm8
movss dword [rsp + 0x20], xmm12
movaps xmm1, xmm11
mov rcx, r14
call fcn.1800039f0
mov r8, qword [r14 + 8]
mov ebp, r12d
mov rcx, qword [r8 + r13]
mov rax, qword [rcx + 0x28]
sub rax, qword [rcx + 0x20]
sar rax, 3
test rax, rax
je 0x180002f4b
mov dword [rsp + 0x140], 0xffbfbfbf
mov rdx, r12
mov ebx, dword [rsp + 0x140]
mov qword [rsp + 0x48], rdx
mov rcx, qword [r8 + r13]
addss xmm8, xmm14
mov rax, qword [rcx + 0x20]
mov rsi, qword [rdx + rax]
cmp dword [rcx + 0x38], ebp
je 0x180002cab
lea rcx, [rsp + 0x40]
call qword [sym.imp.USER32.dll_GetCursorPos]
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rcx, rax
lea rdx, [rsp + 0x40]
call qword [sym.imp.USER32.dll_ScreenToClient]
movd xmm1, dword [rsp + 0x40]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm11
jb 0x180002cab
movaps xmm0, xmm13
addss xmm0, xmm11
comiss xmm0, xmm1
jb 0x180002cab
movd xmm1, dword [rsp + 0x44]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm8
jb 0x180002cab
movaps xmm0, xmm8
addss xmm0, xmm12
comiss xmm0, xmm1
jb 0x180002cab
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180002cab
mov rax, qword [r14 + 8]
mov rcx, qword [rax + r13]
mov dword [rcx + 0x38], ebp
mov rcx, qword [r14]
movaps xmm3, xmm13
mov eax, dword [0x180016010]
movaps xmm2, xmm8
mov dword [rsp + 0x30], r12d
movaps xmm1, xmm11
mov dword [rsp + 0x28], eax
mov rdx, qword [rcx]
movss dword [rsp + 0x20], xmm12
call qword [rdx + 0x50]
mov eax, dword [0x180016014]
movaps xmm3, xmm13
mov dword [rsp + 0x28], eax
movaps xmm2, xmm8
movaps xmm1, xmm11
movss dword [rsp + 0x20], xmm12
mov rcx, r14
call fcn.18000f7b0
mov rax, qword [r14 + 8]
movaps xmm3, xmm13
movaps xmm2, xmm8
movaps xmm1, xmm11
mov rcx, qword [rax + r13]
cmp dword [rcx + 0x38], ebp
mov rcx, r14
sete al
mov byte [rsp + 0x28], al
movss dword [rsp + 0x20], xmm12
call fcn.1800039f0
cmp qword [rsi + 0x18], 8
mov rax, rsi
jb 0x180002d35
mov rax, qword [rsi]
mov rcx, qword [r14]
movaps xmm2, xmm8
mov qword [rsp + 0x30], rax
addss xmm2, xmm15
movaps xmm3, xmm6
mov dword [rsp + 0x28], 0xc
movaps xmm1, xmm7
movd r9d, xmm3
movd edx, xmm1
mov dword [rsp + 0x20], ebx
movd r8d, xmm2
call fcn.180003d30
mov rax, qword [r14 + 8]
mov rcx, qword [rax + r13]
cmp dword [rcx + 0x38], ebp
jne 0x180002f14
movss xmm6, dword [rcx + 0x40]
lea r15, [rsi + 0x20]
mov rcx, qword [r15 + 8]
movaps xmm7, xmm13
addss xmm7, xmm11
mov rax, rcx
sub rax, qword [r15]
addss xmm7, dword [0x180013f70]
test rax, 0xfffffffffffffff8
je 0x180002e7d
mov rcx, qword [r14]
movaps xmm3, xmm9
mov eax, dword [0x180016010]
movaps xmm2, xmm6
mov dword [rsp + 0x30], r12d
movaps xmm1, xmm7
mov dword [rsp + 0x28], eax
mov rdx, qword [rcx]
movss dword [rsp + 0x20], xmm12
call qword [rdx + 0x50]
mov eax, dword [0x180016014]
movaps xmm3, xmm9
mov dword [rsp + 0x28], eax
movaps xmm2, xmm6
movaps xmm1, xmm7
movss dword [rsp + 0x20], xmm12
mov rcx, r14
call fcn.18000f7b0
cmp qword [rsi + 0x18], 8
jb 0x180002e02
mov rsi, qword [rsi]
movss xmm3, dword [0x180013f84]
movaps xmm2, xmm6
mov rcx, qword [r14]
addss xmm2, xmm15
movaps xmm1, xmm7
mov qword [rsp + 0x30], rsi
addss xmm1, dword [0x180013fcc]
mov dword [rsp + 0x148], 0xffbfbfbf
mov eax, dword [rsp + 0x148]
movd r8d, xmm2
movd r9d, xmm3
movd edx, xmm1
mov dword [rsp + 0x28], 0xc
mov dword [rsp + 0x20], eax
call fcn.180003d30
movaps xmm3, xmm9
mov byte [rsp + 0x28], 0
movaps xmm2, xmm6
movss dword [rsp + 0x20], xmm12
movaps xmm1, xmm7
mov rcx, r14
call fcn.1800039f0
mov rcx, qword [r15 + 8]
addss xmm6, xmm14
sub rcx, qword [r15]
xor esi, esi
sar rcx, 3
xor r12d, r12d
test rcx, rcx
je 0x180002f03
nop
test esi, esi
jle 0x180002ec5
mov rcx, qword [r14]
movaps xmm2, xmm6
mov eax, dword [0x180016010]
subss xmm2, xmm10
mov dword [rsp + 0x30], 0
movaps xmm3, xmm9
mov dword [rsp + 0x28], eax
movaps xmm1, xmm7
mov rdx, qword [rcx]
movss dword [rsp + 0x20], xmm10
call qword [rdx + 0x50]
mov rax, qword [r15]
movaps xmm3, xmm9
movaps xmm2, xmm6
movaps xmm1, xmm7
mov rcx, r14
mov rax, qword [r12 + rax]
mov qword [rsp + 0x20], rax
call fcn.180003000
mov rcx, qword [r15 + 8]
addss xmm6, xmm0
sub rcx, qword [r15]
inc esi
sar rcx, 3
add r12, 8
movsxd rax, esi
cmp rax, rcx
jb 0x180002e90
xor r12d, r12d
movss xmm7, dword [rsp + 0x150]
movss xmm6, dword [0x180013f84]
mov rdx, qword [rsp + 0x48]
inc ebp
mov r8, qword [r14 + 8]
add rdx, 8
mov qword [rsp + 0x48], rdx
mov rax, qword [r8 + r13]
mov rcx, qword [rax + 0x28]
sub rcx, qword [rax + 0x20]
sar rcx, 3
movsxd rax, ebp
cmp rax, rcx
jb 0x180002c22
mov ebx, dword [rsp + 0x158]
mov rdx, qword [r14 + 0x10]
inc ebx
sub rdx, r8
movsxd rax, ebx
sar rdx, 3
add r13, 8
mov dword [rsp + 0x158], ebx
cmp rax, rdx
jb 0x180002b00
movaps xmm15, xmmword [rsp + 0x50]
movaps xmm14, xmmword [rsp + 0x60]
movaps xmm13, xmmword [rsp + 0x70]
movaps xmm12, xmmword [rsp + 0x80]
movaps xmm11, xmmword [rsp + 0x90]
movaps xmm10, xmmword [rsp + 0xa0]
movaps xmm9, xmmword [rsp + 0xb0]
movaps xmm8, xmmword [rsp + 0xc0]
movaps xmm7, xmmword [rsp + 0xd0]
movaps xmm6, xmmword [rsp + 0xe0]
mov r15, qword [rsp + 0xf8]
mov r13, qword [rsp + 0x100]
mov rdi, qword [rsp + 0x108]
mov rsi, qword [rsp + 0x110]
mov rbp, qword [rsp + 0x118]
mov ecx, 1
add rsp, 0x120
pop r14
pop r12
pop rbx
jmp qword [sym.imp.USER32.dll_GetAsyncKeyState]