Function at 0x180002cd0
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 0x180003296
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 [0x180012f6c]
movaps xmmword [r11 - 0x68], xmm7
movaps xmmword [r11 - 0x78], xmm8
movss xmm8, dword [0x180012fbc]
movaps xmmword [r11 - 0x88], xmm9
movaps xmmword [r11 - 0x98], xmm10
movss xmm10, dword [0x180012f54]
movaps xmmword [r11 - 0xa8], xmm11
movaps xmmword [r11 - 0xb8], xmm12
movss xmm12, dword [0x180012f84]
movaps xmmword [rsp + 0x70], xmm13
movaps xmmword [rsp + 0x60], xmm14
movss xmm14, dword [0x180012f78]
mov dword [rsp + 0x140], 0xffbfbfbf
mov edi, dword [rsp + 0x140]
movaps xmmword [rsp + 0x50], xmm15
movss xmm15, dword [0x180012f64]
nop word [rax + rax]
mov rax, qword [r8 + r13]
mov rcx, qword [r14]
mov dword [rsp + 0x30], r12d
movss xmm11, dword [rax + 0x3c]
movss xmm9, dword [rax + 0x40]
movaps xmm1, xmm11
movss xmm13, dword [rax + 0x44]
movaps xmm2, xmm9
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, xmm9
movaps xmm1, xmm11
movss dword [rsp + 0x20], xmm12
mov rcx, r14
call fcn.18000ed40
mov rax, qword [r14 + 8]
mov rcx, qword [rax + r13]
cmp qword [rcx + 0x18], 7
jbe 0x180002e28
mov rcx, qword [rcx]
mov qword [rsp + 0x30], rcx
movaps xmm7, xmm13
mulss xmm7, dword [0x180012f14]
movaps xmm2, xmm9
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.180003fd0
movaps xmm3, xmm13
mov byte [rsp + 0x28], 0
movaps xmm2, xmm9
movss dword [rsp + 0x20], xmm12
movaps xmm1, xmm11
mov rcx, r14
call fcn.180003c90
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 0x1800031fb
mov dword [rsp + 0x140], 0xffbfbfbf
mov rdx, r12
mov ebx, dword [rsp + 0x140]
mov qword [rsp + 0x48], rdx
mov rcx, qword [r8 + r13]
addss xmm9, xmm14
mov rax, qword [rcx + 0x20]
mov rsi, qword [rdx + rax]
cmp dword [rcx + 0x38], ebp
je 0x180002f5b
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 0x180002f5b
movaps xmm0, xmm13
addss xmm0, xmm11
comiss xmm0, xmm1
jb 0x180002f5b
movd xmm1, dword [rsp + 0x44]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm9
jb 0x180002f5b
movaps xmm0, xmm9
addss xmm0, xmm12
comiss xmm0, xmm1
jb 0x180002f5b
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180002f5b
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, xmm9
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, xmm9
movaps xmm1, xmm11
movss dword [rsp + 0x20], xmm12
mov rcx, r14
call fcn.18000ed40
mov rax, qword [r14 + 8]
movaps xmm3, xmm13
movaps xmm2, xmm9
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.180003c90
cmp qword [rsi + 0x18], 7
mov rax, rsi
jbe 0x180002fe5
mov rax, qword [rsi]
mov rcx, qword [r14]
movaps xmm2, xmm9
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.180003fd0
mov rax, qword [r14 + 8]
mov rcx, qword [rax + r13]
cmp dword [rcx + 0x38], ebp
jne 0x1800031c4
mov rax, qword [rsi + 0x28]
lea r15, [rsi + 0x20]
sub rax, qword [r15]
movaps xmm7, xmm13
movss xmm6, dword [rcx + 0x40]
addss xmm7, xmm11
addss xmm7, dword [0x180012f58]
test rax, 0xfffffffffffffff8
je 0x180003126
mov rcx, qword [r14]
movaps xmm3, xmm8
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, xmm8
mov dword [rsp + 0x28], eax
movaps xmm2, xmm6
movaps xmm1, xmm7
movss dword [rsp + 0x20], xmm12
mov rcx, r14
call fcn.18000ed40
cmp qword [rsi + 0x18], 7
jbe 0x1800030af
mov rsi, qword [rsi]
movss xmm3, dword [0x180012f6c]
movaps xmm2, xmm6
mov rcx, qword [r14]
addss xmm2, xmm15
movaps xmm1, xmm7
mov qword [rsp + 0x30], rsi
addss xmm1, dword [0x180012fb4]
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.180003fd0
movaps xmm3, xmm8
mov byte [rsp + 0x28], 0
movaps xmm2, xmm6
movss dword [rsp + 0x20], xmm12
movaps xmm1, xmm7
mov rcx, r14
call fcn.180003c90
addss xmm6, xmm14
mov rax, qword [r15 + 8]
xor esi, esi
sub rax, qword [r15]
xor r12d, r12d
sar rax, 3
test rax, rax
je 0x1800031b3
nop dword [rax + rax]
test esi, esi
jle 0x180003175
mov rcx, qword [r14]
movaps xmm2, xmm6
mov eax, dword [0x180016010]
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 [r15]
movaps xmm3, xmm8
movaps xmm2, xmm6
movaps xmm1, xmm7
mov rcx, r14
mov rax, qword [r12 + rax]
mov qword [rsp + 0x20], rax
call fcn.1800032b0
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 0x180003140
xor r12d, r12d
movss xmm7, dword [rsp + 0x150]
movss xmm6, dword [0x180012f6c]
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 0x180002ed2
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 0x180002db0
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]