Function at 0x1800f57b0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r12
push rbp
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xd0
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
mov rax, qword [0x180164028]
xor rax, rsp
mov qword [rbp + 0x17], rax
mov ecx, 0x72
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x1800f582a
mov rcx, qword [0x18016bb30]
test rcx, rcx
je 0x1800f582a
call fcn.1800eae30
test rax, rax
je 0x1800f582a
cmp byte [0x18016b7e3], 0
sete dl
mov byte [0x18016b7e3], dl
mov rcx, qword [0x18016bb30]
call fcn.1800eac10
mov ecx, 0x74
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
xor r12d, r12d
test al, 1
je 0x1800f5894
movzx ebx, byte [0x18016b7cf]
mov rax, qword [0x18016bb30]
test rax, rax
je 0x1800f5863
mov rcx, rax
call fcn.1800eae30
mov rdx, rax
mov rax, qword [0x18016bb30]
jmp 0x1800f5866
mov rdx, r12
test rax, rax
je 0x1800f5874
mov rcx, qword [rax + 0x2b0]
jmp 0x1800f5877
mov rcx, r12
test rdx, rdx
je 0x1800f5894
test rcx, rcx
je 0x1800f5894
test bl, bl
je 0x1800f588f
mov rcx, rdx
call fcn.1800eb060
jmp 0x1800f5894
call fcn.1800ec4c0
mov ecx, 0x75
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x1800f58e5
mov rbx, qword [0x18016bb30]
test rbx, rbx
je 0x1800f58e5
mov dword [rbp - 0x59], 0x5f5e0ff
mov rcx, qword [rbx + 0x628]
call fcn.1800e7b40
test al, al
je 0x1800f58d9
mov rcx, qword [0x18016bb30]
mov rcx, qword [rcx + 0x628]
call fcn.1800e7510
lea rdx, [rbp - 0x59]
mov rcx, rbx
call fcn.1800e70a0
cmp byte [0x18016b7cb], r12b
je 0x1800f5932
mov rax, qword [0x18016bb28]
test rax, rax
je 0x1800f5932
mov rcx, qword [rax + 0x30]
test rcx, rcx
je 0x1800f5932
cmp qword [rcx + 0x298], r12
je 0x1800f5932
mov rax, qword [rax + 0x1b8]
mov rax, qword [rax + 0x38]
mov rcx, qword [rax]
mov rax, qword [rcx + 0x30]
mov rcx, qword [rax + 0x338]
movss xmm0, dword [0x18016b7e8]
movss dword [rcx + 0x64], xmm0
cmp byte [0x18016b7cc], r12b
je 0x1800f5967
mov ecx, dword [0x18016b7f8]
mov rbx, qword [0x18016bb30]
test rbx, rbx
je 0x1800f5967
mov rax, qword [rbx + 0x628]
test rax, rax
je 0x1800f5967
cmp dword [rax + 0x12c], ecx
je 0x1800f5967
mov dword [rax + 0x12c], ecx
cmp byte [0x18016b7cd], r12b
je 0x1800f599c
mov ecx, dword [0x18016b7fc]
mov rbx, qword [0x18016bb30]
test rbx, rbx
je 0x1800f599c
mov rax, qword [rbx + 0x628]
test rax, rax
je 0x1800f599c
cmp dword [rax + 0x130], ecx
je 0x1800f599c
mov dword [rax + 0x130], ecx
cmp byte [0x18016b7d3], r12b
je 0x1800f5b06
movss xmm7, dword [0x18016b81c]
mov rdi, r12
mov qword [rbp - 1], r12
mov eax, r12d
mov dword [rbp + 7], eax
mov dword [rbp + 0xb], r12d
mov rcx, qword [0x18016bb28]
test rcx, rcx
je 0x1800f59f6
mov rdx, qword [rcx + 0x1b8]
test rdx, rdx
je 0x1800f59f6
mov rcx, qword [rdx + 0x568]
test rcx, rcx
je 0x1800f59f6
lea rdx, [rbp - 1]
call fcn.1800e72c0
mov eax, dword [rbp + 7]
mov rdi, qword [rbp - 1]
test eax, eax
je 0x1800f5b06
mov r15d, eax
movss xmm6, dword [0x180151164]
nop dword [rax]
mov rsi, qword [rdi]
test rsi, rsi
je 0x1800f5af8
call fcn.1800e94a0
mov rcx, qword [rsi + 0x10]
test rcx, rcx
je 0x1800f5af8
nop
cmp rcx, rax
je 0x1800f5a43
mov rcx, qword [rcx + 0x40]
test rcx, rcx
jne 0x1800f5a30
jmp 0x1800f5af8
mov rbx, qword [0x18016bb30]
test rbx, rbx
je 0x1800f5af8
mov rcx, rbx
call fcn.1800eae30
test rax, rax
je 0x1800f5af8
mov r14, qword [rax + 0x348]
test r14, r14
je 0x1800f5af8
lea rdx, [rbp - 1]
mov rcx, rbx
call fcn.1800e59b0
lea rdx, [rbp - 0x51]
mov rcx, r14
call fcn.1800e5c00
movaps xmm0, xmm7
mulss xmm0, xmm6
xorps xmm4, xmm4
cvtss2sd xmm4, xmm0
movaps xmm1, xmm4
mulsd xmm1, qword [rax + 0x10]
movaps xmm0, xmm4
mulsd xmm0, qword [rax + 8]
movsd xmm3, qword [rbp + 0xf]
addsd xmm3, xmm1
movsd xmm2, qword [rbp + 7]
addsd xmm2, xmm0
mulsd xmm4, qword [rax]
addsd xmm4, qword [rbp - 1]
movsd qword [rbp - 0x31], xmm4
movsd qword [rbp - 0x29], xmm2
movsd qword [rbp - 0x21], xmm3
lea rdx, [rbp - 0x19]
mov rcx, rsi
call fcn.1800e5760
lea rdx, [rbp - 0x31]
mov rcx, rsi
call fcn.1800e54b0
lea rdx, [rbp - 0x19]
mov rcx, rsi
call fcn.1800e5270
add rdi, 8
sub r15, 1
jne 0x1800f5a10
cmp byte [0x18016b7dd], r12b
je 0x1800f5b22
movss xmm1, dword [0x18016b7f0]
mov ecx, dword [0x18016b7f4]
call fcn.180047330
cmp byte [0x18016b7ce], r12b
je 0x1800f5bcc
mov rbx, qword [0x18016bb30]
test rbx, rbx
je 0x1800f5b4c
mov rcx, qword [rbx + 0x628]
test rcx, rcx
je 0x1800f5b4c
call fcn.1800e7710
call fcn.180044bd0
mov rcx, qword [rax + 0x30]
movups xmm0, xmmword [rcx + 0x98]
movups xmmword [rbp - 1], xmm0
mov ebx, r12d
mov r15d, dword [rcx + 0xa0]
test r15d, r15d
jle 0x1800f5bcc
mov r14, qword [rbp - 1]
mov esi, ebx
mov rdi, qword [r14 + rsi*8]
test rdi, rdi
je 0x1800f5bc5
call fcn.1800e6f20
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x1800f5bc5
nop dword [rax]
cmp rcx, rax
je 0x1800f5ba0
mov rcx, qword [rcx + 0x40]
test rcx, rcx
jne 0x1800f5b90
jmp 0x1800f5bc5
mov rdi, qword [r14 + rsi*8]
mov rcx, qword [rdi + 0x628]
test rcx, rcx
je 0x1800f5bc5
call fcn.1800e7910
test al, al
je 0x1800f5bc5
mov rcx, qword [rdi + 0x628]
call fcn.1800e7710
inc ebx
cmp ebx, r15d
jl 0x1800f5b73
mov rbx, qword [0x18016bb30]
test rbx, rbx
je 0x1800f5c2a
mov rcx, qword [rbx + 0x800]
test rcx, rcx
je 0x1800f5c2a
call fcn.1800ecd30
test rax, rax
je 0x1800f5c2a
mov rcx, qword [0x18016bb30]
mov rcx, qword [rcx + 0x800]
call fcn.1800ecf60
test al, al
je 0x1800f5c2a
cmp byte [0x18016b7d0], r12b
sete r12b
mov rcx, qword [0x18016bb30]
mov rcx, qword [rcx + 0x800]
call fcn.1800ecd30
mov byte [rax + 0x362], r12b
cmp byte [0x18016b7d4], 0
je 0x1800f5c80
mov rbx, qword [0x18016bb30]
test rbx, rbx
je 0x1800f5c80
mov rax, qword [rbx + 0x628]
test rax, rax
je 0x1800f5c80
mov rcx, qword [rax + 0x108]
test rcx, rcx
je 0x1800f5c80
lea rdx, [rbp - 1]
call fcn.1800e85c0
cmp qword [rax], 0x7fffffff
jge 0x1800f5c80
mov dword [rbp - 0x59], 0x7fffffff
lea rdx, [rbp - 0x59]
mov rcx, qword [0x18016bb30]
call fcn.1800e70a0
cmp byte [0x18016b7e2], 0
je 0x1800f5d15
mov rbx, qword [0x180181660]
test rbx, rbx
jne 0x1800f5cf7
mov rbx, qword [0x180181658]
test rbx, rbx
jne 0x1800f5ce9
xorps xmm0, xmm0
movups xmmword [rbp - 0x51], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x41], xmm1
lea r8d, [rbx + 0xa]
lea rdx, str.PalUtility
lea rcx, [rbp - 0x51]
call fcn.180045df0
nop
lea rcx, [rbp - 0x51]
call fcn.1800e48f0
mov qword [0x180181658], rax
lea rcx, [rbp - 0x51]
call fcn.180045f30
mov rbx, qword [0x180181658]
mov rbx, qword [rbx + 0x110]
mov qword [0x180181660], rbx
call fcn.180044bd0
mov rdx, rax
mov rcx, rbx
call fcn.1800ed5e0
mov edx, dword [0x18016b800]
mov rcx, rax
call fcn.1800ed3c0
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.180103ca0
lea r11, [rsp + 0xd0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop rbp
ret