Function at 0x180002ca0
Capabilities:
Log keystrokes via polling

Disassembly:
mov r11, rsp
push rbx
push r12
push r14
sub rsp, 0x120
mov rax, qword [0x180009008]
xor rax, rsp
mov qword [rsp + 0x60], rax
mov r14, qword [0x180009e00]
xor r12d, r12d
mov ebx, r12d
mov dword [rsp + 0x4c], ebx
mov r8, qword [r14 + 8]
mov rax, qword [r14 + 0x10]
sub rax, r8
sar rax, 3
test rax, rax
je 0x180003231
mov qword [r11 + 8], rbp
mov qword [r11 + 0x10], rsi
mov qword [r11 + 0x18], rdi
mov qword [r11 - 0x20], r13
mov r13d, r12d
mov qword [r11 - 0x28], r15
movaps xmmword [r11 - 0x38], xmm6
movss xmm6, dword [0x180006b9c]
movaps xmmword [r11 - 0x48], xmm7
movaps xmmword [r11 - 0x58], xmm8
movaps xmmword [r11 - 0x68], xmm9
movss xmm9, dword [0x180006be0]
movaps xmmword [r11 - 0x78], xmm10
movss xmm10, dword [0x180006b88]
movaps xmmword [r11 - 0x88], xmm11
movaps xmmword [r11 - 0x98], xmm12
movss xmm12, dword [0x180006ba0]
movaps xmmword [r11 - 0xa8], xmm13
movaps xmmword [r11 - 0xb8], xmm14
movss xmm14, dword [0x180006ba4]
mov dword [rsp + 0x40], 0xffbfbfbf
mov edi, dword [rsp + 0x40]
movaps xmmword [rsp + 0x70], xmm15
movss xmm15, dword [0x180006b94]
nop
mov rax, qword [r8 + r13]
mov rcx, qword [r14]
mov dword [rsp + 0x30], r12d
mov dword [rsp + 0x28], 0xff0f0f0f
movss xmm11, dword [rax + 0x3c]
movss xmm8, dword [rax + 0x40]
movaps xmm1, xmm11
movss xmm13, dword [rax + 0x44]
movaps xmm2, xmm8
mov rax, qword [rcx]
movaps xmm3, xmm13
movss dword [rsp + 0x20], xmm12
call qword [rax + 0x50]
movaps xmm3, xmm13
movss dword [rsp + 0x20], xmm12
movaps xmm2, xmm8
movaps xmm1, xmm11
mov rcx, r14
call fcn.180001c00
mov rax, qword [r14 + 8]
mov rcx, qword [rax + r13]
cmp qword [rcx + 0x18], 8
jb 0x180002dec
mov rcx, qword [rcx]
mov qword [rsp + 0x30], rcx
movaps xmm7, xmm13
mulss xmm7, dword [0x180006b7c]
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 + 0x48], xmm7
movd edx, xmm1
call fcn.1800011e0
movaps xmm3, xmm13
mov byte [rsp + 0x28], 0
movaps xmm2, xmm8
movss dword [rsp + 0x20], xmm12
movaps xmm1, xmm11
mov rcx, r14
call fcn.180001d20
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 0x180003193
mov dword [rsp + 0x40], 0xffbfbfbf
mov rdx, r12
mov ebx, dword [rsp + 0x40]
mov qword [rsp + 0x50], rdx
nop dword [rax]
mov rcx, qword [r8 + r13]
addss xmm8, xmm14
mov rax, qword [rcx + 0x20]
mov rsi, qword [rdx + rax]
cmp dword [rcx + 0x38], ebp
je 0x180002f19
lea rcx, [rsp + 0x58]
call qword [sym.imp.USER32.dll_GetCursorPos]
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rcx, rax
lea rdx, [rsp + 0x58]
call qword [sym.imp.USER32.dll_ScreenToClient]
movd xmm1, dword [rsp + 0x58]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm11
jb 0x180002f19
movaps xmm0, xmm13
addss xmm0, xmm11
comiss xmm0, xmm1
jb 0x180002f19
movd xmm1, dword [rsp + 0x5c]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm8
jb 0x180002f19
movaps xmm0, xmm8
addss xmm0, xmm12
comiss xmm0, xmm1
jb 0x180002f19
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180002f19
mov rax, qword [r14 + 8]
mov rcx, qword [rax + r13]
mov dword [rcx + 0x38], ebp
mov rcx, qword [r14]
movaps xmm3, xmm13
mov dword [rsp + 0x30], r12d
movaps xmm2, xmm8
mov dword [rsp + 0x28], 0xff0f0f0f
movaps xmm1, xmm11
movss dword [rsp + 0x20], xmm12
mov rax, qword [rcx]
call qword [rax + 0x50]
movaps xmm3, xmm13
movss dword [rsp + 0x20], xmm12
movaps xmm2, xmm8
movaps xmm1, xmm11
mov rcx, r14
call fcn.180001c00
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.180001d20
cmp qword [rsi + 0x18], 8
mov rax, rsi
jb 0x180002f97
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.1800011e0
mov rax, qword [r14 + 8]
mov rcx, qword [rax + r13]
cmp dword [rcx + 0x38], ebp
jne 0x18000315f
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 [0x180006b8c]
test rax, 0xfffffffffffffff8
je 0x1800030c6
mov rcx, qword [r14]
movaps xmm3, xmm9
mov dword [rsp + 0x30], r12d
movaps xmm2, xmm6
mov dword [rsp + 0x28], 0xff0f0f0f
movaps xmm1, xmm7
movss dword [rsp + 0x20], xmm12
mov rax, qword [rcx]
call qword [rax + 0x50]
movaps xmm3, xmm9
movss dword [rsp + 0x20], xmm12
movaps xmm2, xmm6
movaps xmm1, xmm7
mov rcx, r14
call fcn.180001c00
cmp qword [rsi + 0x18], 8
jb 0x180003055
mov rsi, qword [rsi]
movss xmm3, dword [0x180006b9c]
movaps xmm2, xmm6
mov rcx, qword [r14]
addss xmm2, xmm15
movaps xmm1, xmm7
mov qword [rsp + 0x30], rsi
addss xmm1, dword [0x180006bdc]
mov dword [rsp + 0x44], 0xffbfbfbf
mov eax, dword [rsp + 0x44]
movd r8d, xmm2
movd r9d, xmm3
movd edx, xmm1
mov dword [rsp + 0x28], 0xc
mov dword [rsp + 0x20], eax
call fcn.1800011e0
movaps xmm3, xmm9
mov byte [rsp + 0x28], 0
movaps xmm2, xmm6
movss dword [rsp + 0x20], xmm12
movaps xmm1, xmm7
mov rcx, r14
call fcn.180001d20
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 0x180003151
nop dword [rax + rax]
test esi, esi
jle 0x180003113
mov rcx, qword [r14]
movaps xmm2, xmm6
mov dword [rsp + 0x30], 0
subss xmm2, xmm10
mov dword [rsp + 0x28], 0xff0f0f0f
movaps xmm3, xmm9
movaps xmm1, xmm7
movss dword [rsp + 0x20], xmm10
mov rax, qword [rcx]
call qword [rax + 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.180001ee0
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 0x1800030e0
xor r12d, r12d
movss xmm7, dword [rsp + 0x48]
movss xmm6, dword [0x180006b9c]
mov rdx, qword [rsp + 0x50]
inc ebp
mov r8, qword [r14 + 8]
add rdx, 8
mov qword [rsp + 0x50], 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 0x180002e90
mov ebx, dword [rsp + 0x4c]
mov rdx, qword [r14 + 0x10]
inc ebx
sub rdx, r8
movsxd rax, ebx
sar rdx, 3
add r13, 8
mov dword [rsp + 0x4c], ebx
cmp rax, rdx
jb 0x180002d80
movaps xmm15, xmmword [rsp + 0x70]
movaps xmm14, xmmword [rsp + 0x80]
movaps xmm13, xmmword [rsp + 0x90]
movaps xmm12, xmmword [rsp + 0xa0]
movaps xmm11, xmmword [rsp + 0xb0]
movaps xmm10, xmmword [rsp + 0xc0]
movaps xmm9, xmmword [rsp + 0xd0]
movaps xmm8, xmmword [rsp + 0xe0]
movaps xmm7, xmmword [rsp + 0xf0]
movaps xmm6, xmmword [rsp + 0x100]
mov r15, qword [rsp + 0x110]
mov r13, qword [rsp + 0x118]
mov rdi, qword [rsp + 0x150]
mov rsi, qword [rsp + 0x148]
mov rbp, qword [rsp + 0x140]
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.180004980
add rsp, 0x120
pop r14
pop r12
pop rbx
ret