Function at 0x180051c50
Capabilities:
Log keystrokes via polling

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x170
movups xmmword [rsp + 0x160], xmm7
movups xmmword [rsp + 0x150], xmm6
mov rsi, rcx
mov rax, qword [0x1800d3040]
xor rax, rsp
mov qword [rsp + 0x148], rax
call fcn.18007d064
mov rdi, rax
call fcn.18007d048
mov rcx, rax
cmp rdi, 0x989680
jne 0x180052037
imul r15, rcx, 0x64
cmp byte [0x1800d3ef6], 0
je 0x180051cc2
mov ecx, dword [0x1800f0e88]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x180051cf5
mov rcx, qword [rsp + 0x148]
xor rcx, rsp
call fcn.18007d5f0
movups xmm6, xmmword [rsp + 0x150]
movups xmm7, xmmword [rsp + 0x160]
add rsp, 0x170
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp byte [0x1800f22c8], 0
je 0x180051dbb
call fcn.18006d6e0
mov rcx, rax
mov rax, r15
sub rax, qword [0x1800f22c0]
movabs rdx, 0x431bde82d7b634db
imul rdx
mov rax, rdx
shr rdx, 0x3f
sar rax, 0x12
add rax, rdx
cvtsi2ss xmm0, rax
movss xmm1, dword [rcx + 0x1c]
ucomiss xmm1, xmm0
ja 0x180051cc2
mov qword [0x1800f22c0], r15
mov rcx, qword [0x1800f41f8]
movups xmm0, xmmword [0x1800f3d78]
movups xmmword [rsp + 0x120], xmm0
movups xmm0, xmmword [0x1800f3d88]
movups xmmword [rsp + 0x130], xmm0
lea rdx, [rsp + 0x120]
mov r8b, 1
call fcn.180055ad0
mov rcx, qword [0x1800f41f8]
movups xmm0, xmmword [0x1800f3d78]
movups xmmword [rsp + 0x100], xmm0
movups xmm0, xmmword [0x1800f3d88]
movups xmmword [rsp + 0x110], xmm0
lea rdx, [rsp + 0x100]
xor r8d, r8d
call fcn.180055ad0
mov byte [0x1800f22c8], 0
jmp 0x180051cc2
test rsi, rsi
je 0x180051cc2
mov rcx, rsi
call fcn.180056510
test al, al
je 0x180051cc2
cmp byte [0x1800d3ef7], 0
je 0x180051e0d
mov rcx, qword [0x1800f41f8]
mov qword [rsp + 0x5c], 0
mov dword [rsp + 0x64], 0
lea r8, [rsp + 0x5c]
mov rdx, rsi
xor r9d, r9d
call fcn.180055810
test al, al
je 0x180051cc2
mov rcx, rsi
call fcn.180056780
test rax, rax
je 0x180051cc2
mov rdx, qword [0x1800f22a8]
mov r8, qword [0x1800f22b0]
mov r12, r8
mov rcx, rdx
cmp rdx, r8
jne 0x180051f8b
mov rcx, qword [0x1800f3c18]
mov qword [rsp + 0x68], rcx
mov rcx, qword [0x1800f3c20]
mov qword [rsp + 0x70], rcx
mov rcx, qword [0x1800f3c28]
mov qword [rsp + 0x78], rcx
mov rcx, qword [0x1800f3c30]
mov qword [rsp + 0x80], rcx
mov rcx, qword [0x1800f3c38]
mov qword [rsp + 0x88], rcx
mov rcx, qword [0x1800f3c40]
mov qword [rsp + 0x90], rcx
mov rcx, qword [0x1800f3c48]
mov qword [rsp + 0x98], rcx
mov rcx, qword [0x1800f3c50]
mov qword [rsp + 0xa0], rcx
mov rcx, qword [0x1800f3c58]
mov qword [rsp + 0xa8], rcx
mov rcx, qword [0x1800f3c60]
mov qword [rsp + 0xb0], rcx
mov rcx, qword [0x1800f3c68]
mov qword [rsp + 0xb8], rcx
mov rcx, qword [0x1800f3c70]
mov qword [rsp + 0xc0], rcx
mov rcx, qword [0x1800f3c78]
mov qword [rsp + 0xc8], rcx
mov rcx, qword [0x1800f3c80]
mov qword [rsp + 0xd0], rcx
mov rcx, qword [0x1800f3c88]
mov qword [rsp + 0xd8], rcx
mov rcx, qword [0x1800f3c90]
mov qword [rsp + 0xe0], rcx
mov rcx, qword [0x1800f3c98]
mov qword [rsp + 0xe8], rcx
mov rcx, qword [0x1800f3ca0]
mov qword [rsp + 0xf0], rcx
mov rcx, qword [0x1800f3ca8]
mov qword [rsp + 0xf8], rcx
lea rcx, [rsp + 0x68]
mov qword [rsp + 0x48], rcx
lea rcx, [rsp + 0x100]
mov qword [rsp + 0x50], rcx
lea rcx, [0x1800f22a8]
lea rdx, [rsp + 0x48]
mov rsi, rax
call fcn.180052100
mov rax, rsi
mov rcx, qword [0x1800f22a8]
mov r12, qword [0x1800f22b0]
cmp rcx, r12
je 0x180051cc2
mov rsi, rax
lea rdi, [rsp + 0x3c]
lea rbx, [rsp + 0x28]
lea r14, [rsp + 0x34]
xorps xmm6, xmm6
movss xmm7, dword [0x1800b4a14]
mov r13, rcx
jmp 0x180051fc9
mov rax, r13
add rax, 8
mov r13, rax
cmp rax, r12
je 0x180051cc2
mov r8, qword [r13]
mov rcx, rsi
mov rdx, rdi
call fcn.1800578e0
mov qword [rsp + 0x34], 0
mov rcx, qword [0x1800f41f8]
mov rax, qword [rsp + 0x3c]
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x30], eax
mov rdx, rbx
mov r8, r14
call fcn.180057df0
test al, al
je 0x180051fb6
movss xmm0, dword [rsp + 0x34]
movss xmm1, dword [rsp + 0x38]
call fcn.18006d690
ucomiss xmm0, xmm6
jb 0x180051fb6
ucomiss xmm7, xmm0
jb 0x180051fb6
mov byte [0x1800f22c8], 1
mov qword [0x1800f22c0], r15
jmp 0x180051cc2
mov rax, rcx
cmp rdi, 0x16e3600
jne 0x180052095
movabs r8, 0xb2f4fc0794908cf3
imul r8
add rdx, rcx
mov rax, rdx
shr rdx, 0x3f
sar rax, 0x18
add rax, rdx
imul r9, rax, 0x3b9aca00
imul rax, rax, 0x16e3600
sub rcx, rax
imul rcx, rcx, 0x3b9aca00
mov rax, rcx
imul r8
add rdx, rcx
mov rax, rdx
shr rdx, 0x3f
sar rax, 0x18
add rax, rdx
add rax, r9
jmp 0x1800520de
mov r8, rdi
or rcx, rdi
shr rcx, 0x20
je 0x1800520ab
cqo
idiv r8
mov rcx, rdx
jmp 0x1800520b5
mov ecx, r8d
xor edx, edx
div r8d
mov ecx, edx
mov rdx, rcx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
or rdi, rax
shr rdi, 0x20
je 0x1800520d6
cqo
idiv r8
jmp 0x1800520db
xor edx, edx
div r8d
add rax, rcx
mov r15, rax
cmp byte [0x1800d3ef6], 0
jne 0x180051cb1
jmp 0x180051cc2