Function at 0x180031530
Capabilities:
Log keystrokes via polling

Disassembly:
sub rsp, 0x158
cmp byte [0x1802b0078], 0
je 0x180031972
mov qword [rsp + 0x150], rbx
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rcx, qword [0x1802ec848]
cmp rax, qword [rcx]
jne 0x18003197a
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x18003197a
mov ecx, dword [0x1802ec88c]
test ecx, ecx
jne 0x1800315a2
call fcn.180007ab0
mov ecx, eax
lea rdx, [0x1802ec88c]
mov rbx, qword [rsp + 0x150]
add rsp, 0x158
jmp fcn.180031190
movaps xmmword [rsp + 0x140], xmm6
movaps xmmword [rsp + 0x130], xmm7
movaps xmmword [rsp + 0x120], xmm8
movaps xmmword [rsp + 0x110], xmm9
movaps xmmword [rsp + 0x100], xmm10
movaps xmmword [rsp + 0xf0], xmm11
movaps xmmword [rsp + 0xe0], xmm12
movaps xmmword [rsp + 0xd0], xmm13
call fcn.180030dc0
test eax, eax
je 0x18003161a
mov ecx, dword [0x1802ec88c]
mov edx, 1
call fcn.1800310d0
test eax, eax
je 0x18003161a
mov ecx, dword [0x1802ec88c]
xor edx, edx
call fcn.180031130
mov dword [0x1802ec88c], eax
jmp 0x180031620
mov eax, dword [0x1802ec88c]
mov ecx, eax
call fcn.1800311f0
xor edx, edx
lea rcx, [rsp + 0x90]
call fcn.180028390
movss xmm1, dword [rsp + 0xa0]
movss xmm0, dword [rsp + 0x90]
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 + 0xb0]
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 [0x1802ec88c]
lea rcx, [rsp + 0x70]
movaps xmm9, xmm7
movaps xmm10, xmm6
xor r8d, r8d
movups xmm0, xmmword [rax]
movsd xmm1, qword [rax + 0x10]
movaps xmmword [rsp + 0x90], xmm0
addss xmm10, xmm0
addss xmm9, dword [rsp + 0x98]
addss xmm10, xmm6
addss xmm9, xmm7
movaps xmm7, xmm8
addss xmm7, xmm1
addss xmm7, xmm8
call fcn.1800074f0
movss xmm0, dword [rsp + 0x70]
xorps xmm6, xmm6
comiss xmm10, xmm6
movaps xmm8, xmmword [rsp + 0x120]
jbe 0x18003174f
comiss xmm0, xmm6
jbe 0x18003176a
movaps xmm3, xmm10
subss xmm3, xmm0
movss dword [0x1802ec890], xmm3
jmp 0x180031772
jae 0x180031768
comiss xmm0, xmm6
jae 0x180031789
movaps xmm3, xmm10
subss xmm3, xmm0
movss dword [0x1802ec890], xmm3
jmp 0x180031791
jbe 0x180031789
movss xmm3, dword [0x1802ec890]
comiss xmm0, xmm6
jae 0x180031791
movaps xmm3, xmm10
addss xmm3, xmm0
movss dword [0x1802ec890], xmm3
jmp 0x180031791
movss xmm3, dword [0x1802ec890]
comiss xmm10, xmm6
jae 0x1800317ac
comiss xmm0, xmm6
jbe 0x1800317ac
movaps xmm3, xmm10
addss xmm3, xmm0
movss dword [0x1802ec890], xmm3
comiss xmm9, xmm6
movss xmm0, dword [rsp + 0x78]
movaps xmm1, xmm3
movaps xmm10, xmmword [rsp + 0x100]
jbe 0x1800317dd
comiss xmm0, xmm6
jbe 0x1800317d9
movaps xmm3, xmm9
subss xmm3, xmm0
movss dword [0x1802ec890], xmm3
comiss xmm9, xmm6
jae 0x1800317f4
comiss xmm0, xmm6
jae 0x1800317f4
movaps xmm3, xmm9
subss xmm3, xmm0
movss dword [0x1802ec890], xmm3
comiss xmm9, xmm6
jbe 0x180031813
comiss xmm0, xmm6
jae 0x18003180f
movaps xmm3, xmm9
addss xmm3, xmm0
movss dword [0x1802ec890], xmm3
comiss xmm9, xmm6
jae 0x18003182a
comiss xmm0, xmm6
jbe 0x18003182a
movaps xmm3, xmm9
addss xmm3, xmm0
movss dword [0x1802ec890], xmm3
comiss xmm7, xmm6
movss xmm0, dword [rsp + 0x80]
movaps xmm2, xmm3
movaps xmm9, xmmword [rsp + 0x110]
jbe 0x18003185b
comiss xmm0, xmm6
jbe 0x180031858
movaps xmm3, xmm7
subss xmm3, xmm0
movss dword [0x1802ec890], xmm3
comiss xmm7, xmm6
jae 0x180031871
comiss xmm0, xmm6
jae 0x180031871
movaps xmm3, xmm7
subss xmm3, xmm0
movss dword [0x1802ec890], xmm3
comiss xmm7, xmm6
jbe 0x18003188d
comiss xmm0, xmm6
jae 0x18003188a
movaps xmm3, xmm7
addss xmm3, xmm0
movss dword [0x1802ec890], xmm3
comiss xmm7, xmm6
jae 0x1800318a3
comiss xmm0, xmm6
jbe 0x1800318a3
movaps xmm3, xmm7
addss xmm3, xmm0
movss dword [0x1802ec890], xmm3
mulss xmm3, dword [0x180278dc8]
addss xmm2, xmm2
mov ecx, dword [0x1802ec88c]
addss xmm1, xmm1
call fcn.1800285f0
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rdx, qword [0x1802ec848]
movaps xmm7, xmmword [rsp + 0x130]
cmp rax, qword [rdx]
jne 0x180031947
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180031947
movss xmm0, dword [0x1802b007c]
xor ebx, ebx
mov ecx, dword [0x1802ec88c]
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 [0x1802ec88c], ebx
movaps xmm12, xmmword [rsp + 0xe0]
movaps xmm11, xmmword [rsp + 0xf0]
movaps xmm6, xmmword [rsp + 0x140]
movaps xmm13, xmmword [rsp + 0xd0]
mov rbx, qword [rsp + 0x150]
add rsp, 0x158
ret
xor ebx, ebx
mov dword [0x1802ec88c], ebx
mov rbx, qword [rsp + 0x150]
add rsp, 0x158
ret