Function at 0x18008b1c0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rdi
push rbp
lea rbp, [rax - 0x5f]
sub rsp, 0xf0
cmp byte [rcx + 8], 0
mov rbx, r8
mov rdi, rcx
je 0x18008b676
movaps xmmword [rax - 0x18], xmm6
lea rdx, [rbp - 0x69]
movaps xmmword [rax - 0x28], xmm7
mov rcx, rbx
movaps xmmword [rax - 0x38], xmm8
movaps xmmword [rax - 0x48], xmm9
movaps xmmword [rax - 0x58], xmm10
movaps xmmword [rax - 0x68], xmm11
movaps xmmword [rax - 0x78], xmm12
movaps xmmword [rsp + 0x70], xmm13
movaps xmmword [rsp + 0x60], xmm14
movaps xmmword [rsp + 0x50], xmm15
call fcn.180064620
movss xmm7, dword [rdi + 0x2c]
lea rdx, [rbp - 0x79]
mov rcx, rbx
cvtps2pd xmm7, xmm7
call fcn.180064480
movsd xmm0, qword [rax + 8]
movsd xmm10, qword [0x18033ffe8]
movsd xmm8, qword [rax]
mulsd xmm0, xmm10
mulsd xmm8, xmm10
call fcn.1800cbe50
movaps xmm6, xmm0
movaps xmm0, xmm8
mulsd xmm6, xmm7
call fcn.1800ccbd0
movsd xmm11, qword [0x180340660]
movaps xmm12, xmm0
xorps xmm12, xmm11
movaps xmm0, xmm8
mulsd xmm12, xmm6
call fcn.1800cbe50
movaps xmm13, xmm0
lea rdx, [rbp - 0x79]
mov rcx, rbx
mulsd xmm13, xmm6
call fcn.180064480
movsd xmm7, qword [rax + 8]
movsd xmm9, qword [rax]
mulsd xmm7, xmm10
mulsd xmm9, xmm10
movaps xmm0, xmm7
call fcn.1800cbe50
movaps xmm8, xmm0
movaps xmm0, xmm9
mulsd xmm8, qword [0x180340010]
call fcn.1800ccbd0
movaps xmm14, xmm0
movaps xmm0, xmm7
xorps xmm14, xmm11
mulsd xmm14, xmm8
call fcn.1800ccbd0
movaps xmm15, xmm0
movaps xmm0, xmm9
xorps xmm15, xmm11
mulsd xmm15, qword [0x180340010]
call fcn.1800cbe50
mulsd xmm0, xmm8
lea rdx, [rbp - 0x79]
mov rcx, rbx
movsd qword [rbp + 0x67], xmm0
call fcn.180064480
movsd xmm7, qword [rax + 8]
movsd xmm9, qword [rax]
mulsd xmm7, xmm10
mulsd xmm9, xmm10
movaps xmm0, xmm7
call fcn.1800cbe50
movaps xmm8, xmm0
movaps xmm0, xmm9
mulsd xmm8, qword [0x18033fff8]
call fcn.1800ccbd0
movaps xmm10, xmm0
movaps xmm0, xmm7
xorps xmm10, xmm11
mulsd xmm10, xmm8
call fcn.1800ccbd0
movaps xmm7, xmm0
xorps xmm7, xmm11
mulsd xmm7, qword [0x18033fff8]
movaps xmm0, xmm9
call fcn.1800cbe50
cmp dword [0x18035c204], 0
movaps xmm9, xmm0
movaps xmm11, xmmword [rsp + 0x90]
mulsd xmm9, xmm8
movaps xmm8, xmmword [rsp + 0xc0]
jne 0x18008b42a
mov ecx, 0x57
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x18008b3e4
mov rcx, rbx
call fcn.180064940
test al, al
je 0x18008b3e4
movsd xmm0, qword [rbp - 0x69]
lea rdx, [rbp - 0x69]
movsd xmm1, qword [rbp - 0x59]
addsd xmm0, xmm12
addsd xmm1, xmm13
mov rcx, rbx
movsd qword [rbp - 0x69], xmm0
movsd qword [rbp - 0x59], xmm1
call fcn.180064cc0
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x18008b42a
mov rcx, rbx
call fcn.180064940
test al, al
je 0x18008b42a
movsd xmm0, qword [rbp - 0x69]
lea rdx, [rbp - 0x69]
movsd xmm1, qword [rbp - 0x59]
subsd xmm0, xmm12
subsd xmm1, xmm13
mov rcx, rbx
movsd qword [rbp - 0x69], xmm0
movsd qword [rbp - 0x59], xmm1
call fcn.180064cc0
cmp dword [0x18035c204], 1
jne 0x18008b4c3
mov ecx, 0x57
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x18008b47d
mov rcx, rbx
call fcn.180064940
test al, al
jne 0x18008b47d
movsd xmm0, qword [rbp - 0x69]
lea rdx, [rbp - 0x69]
movsd xmm1, qword [rbp - 0x59]
addsd xmm0, xmm12
addsd xmm1, xmm13
mov rcx, rbx
movsd qword [rbp - 0x69], xmm0
movsd qword [rbp - 0x59], xmm1
call fcn.180064cc0
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x18008b4c3
mov rcx, rbx
call fcn.180064940
test al, al
jne 0x18008b4c3
movsd xmm0, qword [rbp - 0x69]
lea rdx, [rbp - 0x69]
movsd xmm1, qword [rbp - 0x59]
subsd xmm0, xmm12
subsd xmm1, xmm13
mov rcx, rbx
movsd qword [rbp - 0x69], xmm0
movsd qword [rbp - 0x59], xmm1
call fcn.180064cc0
cmp dword [0x18035c204], 2
movaps xmm13, xmmword [rsp + 0x70]
movaps xmm12, xmmword [rsp + 0x80]
jne 0x18008b593
mov ecx, 0x57
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x18008b53a
mov rcx, rbx
call fcn.180064940
movsd xmm6, qword [rbp + 0x67]
test al, al
jne 0x18008b53f
movsd xmm0, qword [rbp - 0x69]
lea rdx, [rbp - 0x69]
movsd xmm1, qword [rbp - 0x61]
addsd xmm0, xmm14
addsd xmm1, xmm15
mov rcx, rbx
movsd qword [rbp - 0x69], xmm0
movsd xmm0, qword [rbp - 0x59]
addsd xmm0, xmm6
movsd qword [rbp - 0x61], xmm1
movsd qword [rbp - 0x59], xmm0
call fcn.180064cc0
jmp 0x18008b53f
movsd xmm6, qword [rbp + 0x67]
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x18008b593
mov rcx, rbx
call fcn.180064940
test al, al
jne 0x18008b593
movsd xmm0, qword [rbp - 0x69]
lea rdx, [rbp - 0x69]
movsd xmm1, qword [rbp - 0x61]
subsd xmm0, xmm14
addsd xmm1, xmm15
mov rcx, rbx
movsd qword [rbp - 0x69], xmm0
movsd xmm0, qword [rbp - 0x59]
subsd xmm0, xmm6
movsd qword [rbp - 0x61], xmm1
movsd qword [rbp - 0x59], xmm0
call fcn.180064cc0
cmp dword [0x18035c204], 3
movaps xmm15, xmmword [rsp + 0x50]
movaps xmm14, xmmword [rsp + 0x60]
movaps xmm6, xmmword [rsp + 0xe0]
jne 0x18008b65c
mov ecx, 0x57
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x18008b608
mov rcx, rbx
call fcn.180064940
test al, al
jne 0x18008b608
movsd xmm0, qword [rbp - 0x69]
lea rdx, [rbp - 0x69]
movsd xmm1, qword [rbp - 0x61]
addsd xmm0, xmm10
addsd xmm1, xmm7
mov rcx, rbx
movsd qword [rbp - 0x69], xmm0
movsd xmm0, qword [rbp - 0x59]
addsd xmm0, xmm9
movsd qword [rbp - 0x61], xmm1
movsd qword [rbp - 0x59], xmm0
call fcn.180064cc0
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x18008b65c
mov rcx, rbx
call fcn.180064940
test al, al
jne 0x18008b65c
movsd xmm0, qword [rbp - 0x69]
lea rdx, [rbp - 0x69]
movsd xmm1, qword [rbp - 0x61]
subsd xmm0, xmm10
addsd xmm1, xmm7
mov rcx, rbx
movsd qword [rbp - 0x69], xmm0
movsd xmm0, qword [rbp - 0x59]
subsd xmm0, xmm9
movsd qword [rbp - 0x61], xmm1
movsd qword [rbp - 0x59], xmm0
call fcn.180064cc0
movaps xmm9, xmmword [rsp + 0xb0]
movaps xmm7, xmmword [rsp + 0xd0]
movaps xmm10, xmmword [rsp + 0xa0]
lea r11, [rsp + 0xf0]
mov rbx, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop rbp
ret