Function at 0x140054d70
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
sub rsp, 0x30
mov edx, dword [0x1400cc570]
movaps xmmword [rsp + 0x20], xmm6
movsd xmm6, qword [0x1400702e8]
movsxd rbx, ecx
test edx, edx
je 0x140054da6
sub edx, 1
je 0x140054d9f
cmp edx, 1
jne 0x140054dc0
lea ecx, [rdx + 0x42]
jmp 0x140054dab
mov ecx, 0x10
jmp 0x140054dab
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x140054dc0
movsd xmm3, qword [0x140070308]
jmp 0x140054dc3
movaps xmm3, xmm6
mov rcx, rbx
add rcx, rcx
cmp byte [0x1400cc551], 0
je 0x140054e31
movsd xmm0, qword [0x140070348]
subsd xmm0, qword [0x1400cc590]
movsd xmm2, qword [0x140070450]
addsd xmm3, qword [0x1400cc618]
mov rax, qword [0x1400cc820]
mulsd xmm0, qword [0x140070278]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8]
call fcn.140054c20
movsd xmm1, qword [0x1400cc660]
divsd xmm1, qword [0x140070318]
subsd xmm0, xmm1
movaps xmm6, xmmword [rsp + 0x20]
add rsp, 0x30
pop rbx
ret
cmp byte [0x1400cc513], 0
je 0x140054e99
movsd xmm0, qword [0x140070348]
subsd xmm0, qword [0x1400cc648]
movsd xmm2, qword [0x140070450]
addsd xmm3, qword [0x1400cc5e0]
mov rax, qword [0x1400cc808]
mulsd xmm0, qword [0x140070278]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8]
call fcn.140054c20
movsd xmm1, qword [0x1400cc5f8]
divsd xmm1, qword [0x140070318]
subsd xmm0, xmm1
movaps xmm6, xmmword [rsp + 0x20]
add rsp, 0x30
pop rbx
ret
cmp byte [0x1400cc53e], 0
je 0x140054f01
movsd xmm0, qword [0x140070348]
subsd xmm0, qword [0x1400cc578]
movsd xmm2, qword [0x140070450]
addsd xmm3, qword [0x1400cc628]
mov rax, qword [0x1400cc760]
mulsd xmm0, qword [0x140070278]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8]
call fcn.140054c20
movsd xmm1, qword [0x1400cc670]
divsd xmm1, qword [0x140070318]
subsd xmm0, xmm1
movaps xmm6, xmmword [rsp + 0x20]
add rsp, 0x30
pop rbx
ret
cmp byte [0x1400cc539], 0
je 0x140054f69
movsd xmm0, qword [0x140070348]
subsd xmm0, qword [0x1400cc638]
movsd xmm2, qword [0x140070450]
addsd xmm3, qword [0x1400cc5d8]
mov rax, qword [0x1400cc858]
mulsd xmm0, qword [0x140070278]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8]
call fcn.140054c20
movsd xmm1, qword [0x1400cc610]
divsd xmm1, qword [0x140070318]
subsd xmm0, xmm1
movaps xmm6, xmmword [rsp + 0x20]
add rsp, 0x30
pop rbx
ret
cmp byte [0x1400cc550], 0
je 0x140054fd1
movsd xmm0, qword [0x140070348]
subsd xmm0, qword [0x1400cc5b0]
movsd xmm2, qword [0x140070450]
addsd xmm3, qword [0x1400cc568]
mov rax, qword [0x1400cc708]
mulsd xmm0, qword [0x140070278]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8]
call fcn.140054c20
movsd xmm1, qword [0x1400cc620]
divsd xmm1, qword [0x140070318]
subsd xmm0, xmm1
movaps xmm6, xmmword [rsp + 0x20]
add rsp, 0x30
pop rbx
ret
cmp byte [0x1400cc53d], 0
je 0x140055039
movsd xmm1, qword [0x140070348]
subsd xmm1, qword [0x1400cc608]
movsd xmm2, qword [0x140070450]
addsd xmm3, qword [0x1400cc588]
mov rax, qword [0x1400cc7d8]
mulsd xmm1, qword [0x140070278]
movsd xmm0, qword [rax + rcx*8]
subsd xmm2, xmm1
movaps xmm1, xmm3
call fcn.140054c20
movsd xmm1, qword [0x1400cc650]
divsd xmm1, qword [0x140070318]
subsd xmm0, xmm1
movaps xmm6, xmmword [rsp + 0x20]
add rsp, 0x30
pop rbx
ret
cmp byte [0x1400cc53c], 0
je 0x1400550a1
movsd xmm0, qword [0x140070348]
subsd xmm0, qword [0x1400cc5a0]
movsd xmm2, qword [0x140070450]
addsd xmm3, qword [0x1400cc5f0]
mov rax, qword [0x1400cc7f0]
mulsd xmm0, qword [0x140070278]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8]
call fcn.140054c20
movsd xmm1, qword [0x1400cc5d0]
divsd xmm1, qword [0x140070318]
subsd xmm0, xmm1
movaps xmm6, xmmword [rsp + 0x20]
add rsp, 0x30
pop rbx
ret
mov rax, qword [0x1400cc820]
movaps xmm2, xmm6
movaps xmm1, xmm3
movsd xmm0, qword [rax + rcx*8]
movaps xmm6, xmmword [rsp + 0x20]
add rsp, 0x30
pop rbx
jmp fcn.140054c20