Function at 0x180045100
Capabilities:
Log keystrokes via polling

Disassembly:
sub rsp, 0x1a8
cmp byte [0x1802b0420], 0
je 0x18004555b
mov qword [rsp + 0x1a0], rbx
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rcx, qword [0x1802ec848]
cmp rax, qword [rcx]
jne 0x180045563
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180045563
mov ecx, dword [0x1802ec8c8]
test ecx, ecx
jne 0x180045172
call fcn.180007ab0
mov ecx, eax
lea rdx, [0x1802ec8c8]
mov rbx, qword [rsp + 0x1a0]
add rsp, 0x1a8
jmp fcn.180031190
movaps xmmword [rsp + 0x190], xmm6
movaps xmmword [rsp + 0x180], xmm7
movaps xmmword [rsp + 0x170], xmm8
movaps xmmword [rsp + 0x160], xmm9
movaps xmmword [rsp + 0x150], xmm10
movaps xmmword [rsp + 0x140], xmm11
movaps xmmword [rsp + 0x130], xmm12
movaps xmmword [rsp + 0x120], xmm13
call fcn.180030dc0
test eax, eax
je 0x1800451ea
mov ecx, dword [0x1802ec8c8]
mov edx, 1
call fcn.1800310d0
test eax, eax
je 0x1800451ea
mov ecx, dword [0x1802ec8c8]
xor edx, edx
call fcn.180031130
mov dword [0x1802ec8c8], eax
jmp 0x1800451f0
mov eax, dword [0x1802ec8c8]
mov ecx, eax
call fcn.1800311f0
xor edx, edx
lea rcx, [rsp + 0xe0]
call fcn.180028390
movss xmm1, dword [rsp + 0xf0]
movss xmm0, dword [rsp + 0xe0]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
mulsd xmm0, qword [0x180278d50]
mulsd xmm1, qword [0x180278d50]
cvtpd2ps xmm0, xmm0
cvtpd2ps xmm1, xmm1
call fcn.1801c9393
movaps xmm11, xmm0
lea rcx, [rsp + 0x100]
shufps xmm11, xmm0, 0xe
movaps xmm1, xmm0
movaps xmm13, xmm11
shufps xmm1, xmm0, 1
andps xmm1, xmmword [0x180279330]
movaps xmm12, xmm0
movss xmm0, dword [0x180278e14]
movaps xmm8, xmm12
mulss xmm13, xmm1
shufps xmm11, xmm11, 1
mulss xmm11, xmm1
xorps xmm13, xmmword [0x180279360]
movaps xmm6, xmm13
mulss xmm8, xmm0
movaps xmm7, xmm11
mulss xmm6, xmm0
mulss xmm7, xmm0
call fcn.180029570
mov edx, dword [0x1802ec8c8]
lea rcx, [rsp + 0xc0]
movaps xmm9, xmm7
movaps xmm10, xmm6
xor r8d, r8d
movups xmm0, xmmword [rax]
movsd xmm1, qword [rax + 0x10]
movaps xmmword [rsp + 0xe0], xmm0
addss xmm10, xmm0
addss xmm9, dword [rsp + 0xe8]
addss xmm10, xmm6
addss xmm9, xmm7
movaps xmm7, xmm8
addss xmm7, xmm1
addss xmm7, xmm8
call fcn.1800074f0
movss xmm0, dword [rsp + 0xc0]
xorps xmm6, xmm6
comiss xmm10, xmm6
movaps xmm8, xmmword [rsp + 0x170]
jbe 0x180045325
comiss xmm0, xmm6
jbe 0x180045340
movaps xmm3, xmm10
subss xmm3, xmm0
movss dword [0x1802ec890], xmm3
jmp 0x180045348
jae 0x18004533e
comiss xmm0, xmm6
jae 0x18004535f
movaps xmm3, xmm10
subss xmm3, xmm0
movss dword [0x1802ec890], xmm3
jmp 0x180045367
jbe 0x18004535f
movss xmm3, dword [0x1802ec890]
comiss xmm0, xmm6
jae 0x180045367
movaps xmm3, xmm10
addss xmm3, xmm0
movss dword [0x1802ec890], xmm3
jmp 0x180045367
movss xmm3, dword [0x1802ec890]
comiss xmm10, xmm6
jae 0x180045382
comiss xmm0, xmm6
jbe 0x180045382
movaps xmm3, xmm10
addss xmm3, xmm0
movss dword [0x1802ec890], xmm3
comiss xmm9, xmm6
movss xmm0, dword [rsp + 0xc8]
movaps xmm1, xmm3
jbe 0x1800453ad
comiss xmm0, xmm6
jbe 0x1800453a9
movaps xmm3, xmm9
subss xmm3, xmm0
movss dword [0x1802ec890], xmm3
comiss xmm9, xmm6
jae 0x1800453c4
comiss xmm0, xmm6
jae 0x1800453c4
movaps xmm3, xmm9
subss xmm3, xmm0
movss dword [0x1802ec890], xmm3
comiss xmm9, xmm6
jbe 0x1800453e3
comiss xmm0, xmm6
jae 0x1800453df
movaps xmm3, xmm9
addss xmm3, xmm0
movss dword [0x1802ec890], xmm3
comiss xmm9, xmm6
jae 0x1800453fa
comiss xmm0, xmm6
jbe 0x1800453fa
movaps xmm3, xmm9
addss xmm3, xmm0
movss dword [0x1802ec890], xmm3
comiss xmm7, xmm6
movss xmm0, dword [rsp + 0xd0]
movaps xmm2, xmm3
jbe 0x180045422
comiss xmm0, xmm6
jbe 0x18004541f
movaps xmm3, xmm7
subss xmm3, xmm0
movss dword [0x1802ec890], xmm3
comiss xmm7, xmm6
jae 0x180045438
comiss xmm0, xmm6
jae 0x180045438
movaps xmm3, xmm7
subss xmm3, xmm0
movss dword [0x1802ec890], xmm3
comiss xmm7, xmm6
jbe 0x180045454
comiss xmm0, xmm6
jae 0x180045451
movaps xmm3, xmm7
addss xmm3, xmm0
movss dword [0x1802ec890], xmm3
comiss xmm7, xmm6
jae 0x18004546a
comiss xmm0, xmm6
jbe 0x18004546a
movaps xmm3, xmm7
addss xmm3, xmm0
movss dword [0x1802ec890], xmm3
mulss xmm3, dword [0x180278dc8]
addss xmm2, xmm2
mov ecx, dword [0x1802ec8c8]
addss xmm1, xmm1
call fcn.1800285f0
movaps xmm3, xmm7
movaps xmm2, xmm9
movaps xmm1, xmm10
call fcn.180044ba0
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rdx, qword [0x1802ec848]
movaps xmm10, xmmword [rsp + 0x150]
movaps xmm9, xmmword [rsp + 0x160]
movaps xmm7, xmmword [rsp + 0x180]
cmp rax, qword [rdx]
jne 0x180045530
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180045530
movss xmm0, dword [0x1802b0424]
xor ebx, ebx
mov ecx, dword [0x1802ec8c8]
mov dword [rsp + 0x60], ebx
mov dword [rsp + 0x48], ebx
mov dword [rsp + 0x40], ebx
movss dword [rsp + 0x30], xmm6
mulss xmm11, xmm0
mulss xmm13, xmm0
mulss xmm12, xmm0
movaps xmm3, xmm11
movss dword [rsp + 0x28], xmm6
movaps xmm2, xmm13
movss dword [rsp + 0x20], xmm12
call fcn.180030e00
call fcn.180007ab0
mov ecx, eax
xor edx, edx
call fcn.180007b10
mov dword [0x1802ec8c8], ebx
movaps xmm12, xmmword [rsp + 0x130]
movaps xmm11, xmmword [rsp + 0x140]
movaps xmm6, xmmword [rsp + 0x190]
movaps xmm13, xmmword [rsp + 0x120]
mov rbx, qword [rsp + 0x1a0]
add rsp, 0x1a8
ret
xor ebx, ebx
mov dword [0x1802ec8c8], ebx
mov rbx, qword [rsp + 0x1a0]
add rsp, 0x1a8
ret