Function at 0x1800032b0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], rbx
push rsi
push rdi
push r14
sub rsp, 0xf0
mov rbx, qword [rsp + 0x130]
mov rsi, rcx
movaps xmmword [rax - 0x28], xmm6
lea rcx, [rsp + 0x40]
movaps xmmword [rax - 0x38], xmm7
movaps xmm7, xmm1
movaps xmmword [rax - 0x48], xmm8
movaps xmm8, xmm3
movaps xmmword [rax - 0x68], xmm10
lea r14, [rbx + 0x50]
movaps xmmword [rax - 0x78], xmm11
mov rdx, r14
movaps xmmword [rsp + 0x60], xmm14
movaps xmm10, xmm2
movaps xmmword [rax - 0x58], xmm9
movaps xmmword [rax - 0x88], xmm12
movaps xmmword [rsp + 0x70], xmm13
call fcn.180001bb0
mov rdx, rax
mov rcx, rbx
call fcn.180005c00
mov rcx, qword [rsi]
xor edi, edi
movss xmm11, dword [0x180012f58]
movaps xmm3, xmm8
mov dword [rsp + 0x30], edi
movaps xmm2, xmm10
movd xmm0, eax
movaps xmm1, xmm7
mov eax, dword [0x180016010]
mov rdx, qword [rcx]
cvtdq2ps xmm0, xmm0
mov dword [rsp + 0x28], eax
movaps xmm6, xmm0
mulss xmm0, xmm11
mulss xmm6, dword [0x180012f7c]
addss xmm6, dword [0x180012f7c]
addss xmm6, xmm0
movss dword [rsp + 0x20], xmm6
call qword [rdx + 0x50]
mov eax, dword [0x180016014]
movaps xmm3, xmm8
mov dword [rsp + 0x28], eax
movaps xmm2, xmm10
movaps xmm1, xmm7
movss dword [rsp + 0x20], xmm6
mov rcx, rsi
call fcn.18000ed40
movaps xmm3, xmm8
mov byte [rsp + 0x28], dil
movaps xmm2, xmm10
movss dword [rsp + 0x20], xmm6
movaps xmm1, xmm7
mov rcx, rsi
call fcn.180003c90
cmp qword [rbx + 0x18], 7
mov rax, rbx
jbe 0x1800033c8
mov rax, qword [rbx]
movss xmm13, dword [0x180012f6c]
movaps xmm9, xmm10
addss xmm9, dword [0x180012f64]
mov rcx, qword [rsi]
movaps xmm1, xmm7
addss xmm1, dword [0x180012f60]
mov qword [rsp + 0x30], rax
movaps xmm3, xmm13
mov dword [rsp + 0x118], 0xffbfbfbf
mov eax, dword [rsp + 0x118]
movaps xmm12, xmm9
subss xmm12, dword [0x180012f5c]
movd r9d, xmm3
movd edx, xmm1
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x120], r15
movaps xmm2, xmm12
mov dword [rsp + 0x20], eax
movd r8d, xmm2
call fcn.180003fd0
mov ecx, dword [rbx + 0x20]
movss xmm14, dword [0x180012f70]
sub ecx, 1
je 0x180003a62
sub ecx, 2
je 0x180003883
sub ecx, 1
je 0x18000367e
cmp ecx, 2
jne 0x180003bb1
movzx ecx, byte [rbx + 0x4a]
lea r15, [rbx + 0x28]
test cl, cl
je 0x180003480
mov rax, qword [rbx + 0x30]
mov edx, dword [rax]
jmp 0x180003483
mov edx, dword [r15]
mov r8, qword [rbx + 0x40]
cmp dword [r8], edx
jle 0x18000349e
test cl, cl
je 0x180003496
mov rax, qword [rbx + 0x30]
jmp 0x180003499
mov rax, r15
mov eax, dword [rax]
mov dword [r8], eax
mov rax, qword [rbx + 0x40]
mov ecx, dword [rbx + 0x24]
cmp dword [rax], ecx
jge 0x1800034ab
mov dword [rax], ecx
mov rcx, qword [rbx + 0x40]
mov eax, dword [rbx + 0x24]
movss xmm9, dword [0x180012f40]
movss xmm11, dword [0x180012f18]
cmp dword [rcx], eax
jle 0x180003514
movaps xmm1, xmm7
movaps xmm0, xmm6
addss xmm1, xmm8
movaps xmm2, xmm10
subss xmm0, xmm9
movaps xmm3, xmm14
addss xmm2, xmm11
mov rcx, rsi
subss xmm1, dword [0x180012fb0]
movss dword [rsp + 0x20], xmm0
call fcn.18000f0c0
test al, al
je 0x180003514
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180003514
mov rax, qword [rbx + 0x40]
dec dword [rax]
cmp byte [rbx + 0x4a], dil
je 0x18000351e
mov r15, qword [rbx + 0x30]
mov rcx, qword [rbx + 0x40]
mov eax, dword [r15]
cmp dword [rcx], eax
jge 0x180003572
movaps xmm1, xmm7
subss xmm6, xmm9
addss xmm1, xmm8
movaps xmm2, xmm10
addss xmm2, xmm11
movaps xmm3, xmm14
mov rcx, rsi
movss dword [rsp + 0x20], xmm6
subss xmm1, dword [0x180012f80]
call fcn.18000f0c0
test al, al
je 0x180003572
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180003572
mov rax, qword [rbx + 0x40]
inc dword [rax]
mov rcx, qword [rsi]
lea rax, [0x180011380]
mov qword [rsp + 0x30], rax
movaps xmm6, xmm7
addss xmm6, xmm8
mov dword [rsp + 0x118], 0xffbfbfbf
mov eax, dword [rsp + 0x118]
movaps xmm3, xmm13
movaps xmm2, xmm12
movd r9d, xmm3
movd r8d, xmm2
mov dword [rsp + 0x28], 2
movaps xmm1, xmm6
mov dword [rsp + 0x20], eax
subss xmm1, dword [0x180012fac]
movd edx, xmm1
call fcn.180003fd0
subss xmm6, dword [0x180012f8c]
mov rcx, qword [rsi]
lea rax, [0x180011388]
mov qword [rsp + 0x30], rax
movaps xmm3, xmm13
movaps xmm2, xmm12
mov dword [rsp + 0x118], 0xffbfbfbf
mov eax, dword [rsp + 0x118]
movaps xmm1, xmm6
movd r9d, xmm3
movd edx, xmm1
movd r8d, xmm2
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], eax
call fcn.180003fd0
mov rax, qword [rbx + 0x40]
movaps xmm3, xmm13
subss xmm6, dword [0x180012f98]
mov rcx, qword [rsi]
movaps xmm2, xmm12
mov qword [rsp + 0x38], rax
lea rax, [0x180011390]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x118], 0xffbfbfbf
mov eax, dword [rsp + 0x118]
movaps xmm1, xmm6
movd edx, xmm1
movd r9d, xmm3
movd r8d, xmm2
mov dword [rsp + 0x28], 0xc
mov dword [rsp + 0x20], eax
call fcn.180003fd0
jmp 0x180003ba8
addss xmm7, dword [0x180012f9c]
addss xmm8, dword [0x180012ff0]
lea rcx, [rsp + 0x130]
mov qword [rsp + 0x110], rbp
call qword [sym.imp.USER32.dll_GetCursorPos]
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rcx, rax
lea rdx, [rsp + 0x130]
call qword [sym.imp.USER32.dll_ScreenToClient]
mov rcx, qword [rsi]
movaps xmm3, xmm8
mov dword [rsp + 0x30], edi
movaps xmm2, xmm10
mov dword [rsp + 0x28], 0xff10232e
movaps xmm1, xmm7
movss dword [rsp + 0x20], xmm6
mov rax, qword [rcx]
call qword [rax + 0x50]
mov rax, qword [rbx + 0x40]
mov ecx, dword [rbx + 0x28]
cmp dword [rax], ecx
jle 0x1800036ef
mov dword [rax], ecx
mov rax, qword [rbx + 0x40]
mov ecx, dword [rbx + 0x24]
cmp dword [rax], ecx
jge 0x1800036fc
mov dword [rax], ecx
mov rax, qword [rbx + 0x40]
movd xmm2, dword [rsp + 0x130]
cvtdq2ps xmm2, xmm2
mov ecx, dword [rax]
sub ecx, dword [rbx + 0x24]
mov eax, dword [rbx + 0x28]
sub eax, dword [rbx + 0x24]
comiss xmm2, xmm7
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm1, xmm8
divss xmm1, xmm0
cvttss2si ebp, xmm1
jb 0x1800037af
movaps xmm0, xmm7
addss xmm0, xmm8
comiss xmm0, xmm2
jb 0x1800037af
movd xmm1, dword [rsp + 0x134]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm10
jb 0x1800037af
movaps xmm0, xmm10
addss xmm0, dword [0x180012f84]
comiss xmm0, xmm1
jb 0x1800037af
mov ecx, 1
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x1800037af
mov eax, dword [rbx + 0x28]
sub eax, dword [rbx + 0x24]
movd xmm1, dword [rsp + 0x130]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
mov rax, qword [rbx + 0x40]
subss xmm1, xmm7
cvtdq2ps xmm0, xmm0
mulss xmm1, xmm0
divss xmm1, xmm8
addss xmm1, dword [0x180012f18]
cvttss2si ecx, xmm1
mov dword [rax], ecx
mov rcx, qword [rsi]
movaps xmm2, xmm10
movss xmm6, dword [0x180012f88]
movaps xmm1, xmm7
movd xmm3, ebp
mov dword [rsp + 0x30], edi
mov rax, qword [rcx]
cvtdq2ps xmm3, xmm3
mov dword [rsp + 0x28], 0xff20bfd4
movss dword [rsp + 0x20], xmm6
call qword [rax + 0x50]
mov eax, dword [0x180016014]
movaps xmm3, xmm8
mov dword [rsp + 0x28], eax
movaps xmm2, xmm10
movaps xmm1, xmm7
movss dword [rsp + 0x20], xmm6
mov rcx, rsi
call fcn.18000ed40
mov rax, qword [rbx + 0x40]
movaps xmm1, xmm8
mulss xmm1, dword [0x180012f14]
movaps xmm3, xmm13
mov rcx, qword [rsi]
movaps xmm2, xmm9
mov dword [rsp + 0x118], 0xffbfbfbf
mov eax, dword [rax]
mov dword [rsp + 0x38], eax
addss xmm1, xmm7
lea rax, [0x180011390]
movd r9d, xmm3
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x118]
movd r8d, xmm2
movd edx, xmm1
mov dword [rsp + 0x28], 0xc
mov dword [rsp + 0x20], eax
call fcn.180003fd0
addss xmm7, dword [0x180012fec]
addss xmm8, dword [0x180012fa0]
mov rbp, qword [rsp + 0x110]
jmp 0x180003bb1
mov rax, qword [rbx + 0x40]
movss xmm11, dword [0x180012f40]
movss xmm12, dword [0x180012f18]
cmp dword [rax], edi
jle 0x1800038e9
movaps xmm1, xmm7
movaps xmm0, xmm6
addss xmm1, xmm8
movaps xmm2, xmm10
subss xmm0, xmm11
movaps xmm3, xmm14
addss xmm2, xmm12
mov rcx, rsi
subss xmm1, dword [0x180012fb0]
movss dword [rsp + 0x20], xmm0
call fcn.18000f0c0
test al, al
je 0x1800038e9
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x1800038e9
mov rax, qword [rbx + 0x40]
dec dword [rax]
mov rdx, qword [rbx + 0x70]
sub rdx, qword [rbx + 0x68]
mov rax, qword [rbx + 0x40]
sar rdx, 5
dec rdx
movsxd rcx, dword [rax]
cmp rcx, rdx
jae 0x18000394d
movaps xmm1, xmm7
subss xmm6, xmm11
addss xmm1, xmm8
movaps xmm2, xmm10
addss xmm2, xmm12
movaps xmm3, xmm14
mov rcx, rsi
movss dword [rsp + 0x20], xmm6
subss xmm1, dword [0x180012f80]
call fcn.18000f0c0
test al, al
je 0x18000394d
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18000394d
mov rax, qword [rbx + 0x40]
inc dword [rax]
mov rcx, qword [rsi]
lea rax, [0x180011380]
mov qword [rsp + 0x30], rax
movaps xmm6, xmm7
addss xmm6, xmm8
mov dword [rsp + 0x118], 0xffbfbfbf
mov eax, dword [rsp + 0x118]
movaps xmm3, xmm13
movaps xmm2, xmm9
movd r9d, xmm3
movd r8d, xmm2
mov dword [rsp + 0x28], 2
movaps xmm1, xmm6
mov dword [rsp + 0x20], eax
subss xmm1, dword [0x180012fac]
movd edx, xmm1
call fcn.180003fd0
subss xmm6, dword [0x180012f8c]
mov rcx, qword [rsi]
lea rax, [0x180011388]
mov qword [rsp + 0x30], rax
movaps xmm3, xmm13
movaps xmm2, xmm9
mov dword [rsp + 0x118], 0xffbfbfbf
mov eax, dword [rsp + 0x118]
movaps xmm1, xmm6
movd r9d, xmm3
movd edx, xmm1
movd r8d, xmm2
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], eax
call fcn.180003fd0
mov rax, qword [rbx + 0x40]
movsxd rcx, dword [rax]
shl rcx, 5
add rcx, qword [rbx + 0x68]
cmp qword [rcx + 0x18], 7
jbe 0x180003a11
mov rcx, qword [rcx]
subss xmm6, dword [0x180012f98]
mov qword [rsp + 0x30], rcx
movaps xmm3, xmm13
mov rcx, qword [rsi]
movaps xmm2, xmm9
mov dword [rsp + 0x118], 0xffbfbfbf
mov eax, dword [rsp + 0x118]
movaps xmm1, xmm6
movd r9d, xmm3
movd edx, xmm1
movd r8d, xmm2
mov dword [rsp + 0x28], 0xc
mov dword [rsp + 0x20], eax
call fcn.180003fd0
jmp 0x180003ba8
movss xmm13, dword [0x180012fa8]
movaps xmm9, xmm7
mov eax, dword [0x180016014]
addss xmm9, xmm8
movss xmm12, dword [0x180012f74]
movaps xmm6, xmm10
addss xmm6, dword [0x180012f40]
mov dword [rsp + 0x28], eax
movaps xmm3, xmm13
mov rcx, rsi
movss dword [rsp + 0x20], xmm12
subss xmm9, xmm13
movaps xmm11, xmm6
addss xmm11, dword [0x180012f40]
subss xmm9, dword [0x180012f60]
movaps xmm2, xmm11
movaps xmm1, xmm9
call fcn.18000ed40
mov r15, qword [rbx + 0x40]
movaps xmm3, xmm13
movaps xmm2, xmm6
movss dword [rsp + 0x20], xmm12
movaps xmm1, xmm9
mov rcx, rsi
call fcn.18000f0c0
test al, al
je 0x180003b05
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180003b05
cmp dword [r15], edi
mov eax, edi
sete al
mov dword [r15], eax
mov rcx, qword [rsi]
movaps xmm3, xmm13
mov dword [rsp + 0x30], edi
movaps xmm2, xmm11
mov dword [rsp + 0x28], 0xff10232e
movaps xmm1, xmm9
movss dword [rsp + 0x20], xmm12
mov rax, qword [rcx]
call qword [rax + 0x50]
mov ecx, dword [r15]
test ecx, ecx
je 0x180003b57
cmp ecx, 1
jne 0x180003b83
movss xmm3, dword [0x180012f94]
movaps xmm1, xmm9
mov dword [rsp + 0x30], edi
addss xmm1, xmm3
mov dword [rsp + 0x28], 0xff47c3b8
jmp 0x180003b6f
movss xmm3, dword [0x180012f94]
movaps xmm1, xmm9
mov dword [rsp + 0x30], edi
mov dword [rsp + 0x28], 0xff838b98
mov rcx, qword [rsi]
movaps xmm2, xmm11
movss dword [rsp + 0x20], xmm12
mov rax, qword [rcx]
call qword [rax + 0x50]
mov eax, dword [0x180016014]
movaps xmm3, xmm13
mov dword [rsp + 0x28], eax
movaps xmm2, xmm11
movaps xmm1, xmm9
movss dword [rsp + 0x20], xmm12
mov rcx, rsi
call fcn.18000ed40
movss xmm11, dword [0x180012f58]
cmp dword [rbx + 0x20], 1
movaps xmm6, xmm10
addss xmm6, dword [0x180012f7c]
movaps xmm13, xmmword [rsp + 0x70]
movaps xmm12, xmmword [rsp + 0x80]
movaps xmm9, xmmword [rsp + 0xb0]
mov r15, qword [rsp + 0x120]
jne 0x180003beb
mov rax, qword [rbx + 0x40]
cmp dword [rax], edi
jle 0x180003c4b
mov rdx, qword [r14]
mov rax, qword [r14 + 8]
sub rax, rdx
sar rax, 3
test rax, rax
je 0x180003c4b
addss xmm7, dword [0x180012f60]
subss xmm8, xmm14
mov rbx, rdi
nop
mov rax, qword [rbx + rdx]
movaps xmm3, xmm8
movaps xmm2, xmm6
mov qword [rsp + 0x20], rax
movaps xmm1, xmm7
mov rcx, rsi
call fcn.1800032b0
mov rdx, qword [r14]
addss xmm6, xmm0
mov rcx, qword [r14 + 8]
inc edi
sub rcx, rdx
movsxd rax, edi
sar rcx, 3
add rbx, 8
cmp rax, rcx
jb 0x180003c10
movaps xmm14, xmmword [rsp + 0x60]
lea r11, [rsp + 0xf0]
mov rbx, qword [r11 + 0x38]
subss xmm6, xmm10
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm10, xmmword [r11 - 0x50]
addss xmm6, xmm11
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm0, xmm6
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret