Function at 0x180018b20
Capabilities:
Log keystrokes via polling

Disassembly:
test cl, cl
je 0x180018de5
mov r11, rsp
sub rsp, 0x118
mov rax, qword [0x180211600]
xor rax, rsp
mov qword [rsp + 0xa0], rax
mov qword [r11 + 8], rbx
mov qword [r11 - 8], rdi
vmovaps xmmword [r11 - 0x18], xmm6
vmovaps xmmword [r11 - 0x28], xmm7
vmovaps xmmword [r11 - 0x38], xmm8
call fcn.180035790
mov edx, eax
lea rcx, [rsp + 0x60]
call fcn.1800355d0
lea rcx, [rsp + 0x80]
mov rbx, rax
call fcn.180034410
sub rbx, rax
movabs rax, 0x2aaaaaaaaaaaaaab
imul rbx
mov rdi, rdx
sar rdi, 2
mov rax, rdi
shr rax, 0x3f
add rdi, rax
call fcn.180035790
mov edx, eax
lea rcx, [rsp + 0x80]
call fcn.1800355d0
vmovss xmm8, dword [rax + 0x10]
call fcn.180035790
mov edx, eax
lea rcx, [rsp + 0x60]
call fcn.1800355d0
vmovss xmm7, dword [rax + 8]
call fcn.180035790
mov edx, eax
lea rcx, [rsp + 0x40]
call fcn.1800355d0
vmovss xmm6, dword [rax]
call fcn.180035790
vmovaps xmm3, xmm8
vmovaps xmm2, xmm7
vmovaps xmm1, xmm6
mov ecx, eax
call fcn.180034340
mov ecx, 0x57
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180018da3
vmovaps xmmword [rsp + 0xd0], xmm9
vmovaps xmmword [rsp + 0xc0], xmm10
lea rdx, [0x1801cdef0]
lea rcx, str.grcWindow
vmovaps xmmword [rsp + 0xb0], xmm11
call qword [sym.imp.USER32.dll_FindWindowA]
mov rbx, rax
call qword [sym.imp.USER32.dll_GetForegroundWindow]
cmp rax, rbx
jne 0x180018c6c
mov ecx, 0xa0
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180018c6c
mov eax, dword [0x180211708]
add eax, eax
movsxd r8, eax
add rdi, r8
lea rdx, [0x1801cdef0]
lea rcx, str.grcWindow
call qword [sym.imp.USER32.dll_FindWindowA]
mov rbx, rax
call qword [sym.imp.USER32.dll_GetForegroundWindow]
cmp rax, rbx
jne 0x180018cb4
mov ecx, 0x20
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180018cb4
vxorps xmm0, xmm0, xmm0
vcvtsi2sd xmm0, xmm0, rdi
vsubsd xmm0, xmm0, qword [0x1801e4710]
vcvttsd2si rdi, xmm0
movsxd rax, dword [0x180211708]
lea rcx, [rsp + 0x40]
vxorps xmm0, xmm0, xmm0
add rax, rdi
vcvtsi2sd xmm0, xmm0, rax
vaddsd xmm0, xmm0, qword [0x1801e4718]
vcvttsd2si rbx, xmm0
call fcn.1800342e0
vmovups xmm0, xmmword [rax]
vmulss xmm1, xmm0, dword [0x1801e46d8]
vmovsd xmm3, qword [rax + 0x10]
vmulss xmm2, xmm3, dword [0x1801e46d8]
vxorps xmm0, xmm0, xmm0
vmovss xmm0, xmm0, xmm1
vxorps xmm1, xmm1, xmm1
vmovss xmm1, xmm1, xmm2
call fcn.18016e033
vpermilps xmm8, xmm0, 1
vandps xmm8, xmm8, xmmword [0x1801e61c0]
vxorps xmm10, xmm10, xmm10
vmovups xmm11, xmm0
vshufps xmm6, xmm0, xmm0, 0xe
vcvtsi2ss xmm10, xmm10, rbx
call fcn.180035790
mov edx, eax
lea rcx, [rsp + 0x60]
call fcn.1800355d0
vmulss xmm0, xmm6, xmm8
vmovups xmm2, xmmword [rax]
vmovsd xmm9, qword [rax + 0x10]
vmovaps xmm7, xmm2
vfnmadd231ss xmm7, xmm10, xmm0
vpermilps xmm0, xmm6, 1
vmulss xmm4, xmm0, xmm8
vshufps xmm6, xmm2, xmm2, 0xaa
vfmadd231ss xmm6, xmm10, xmm4
vfmadd231ss xmm9, xmm10, xmm11
call fcn.180035790
mov ecx, eax
vmovaps xmm3, xmm9
vmovaps xmm2, xmm6
vmovaps xmm1, xmm7
call fcn.180034340
vmovaps xmm11, xmmword [rsp + 0xb0]
vmovaps xmm10, xmmword [rsp + 0xc0]
vmovaps xmm9, xmmword [rsp + 0xd0]
vmovaps xmm7, xmmword [rsp + 0xf0]
vmovaps xmm6, xmmword [rsp + 0x100]
mov rdi, qword [rsp + 0x110]
mov rbx, qword [rsp + 0x120]
vmovaps xmm8, xmmword [rsp + 0xe0]
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
call fcn.18016cc50
add rsp, 0x118
ret