Function at 0x140063120
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
sub rsp, 0x20
movsxd rbx, ecx
mov ecx, dword [0x14022e948]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movsd xmm2, qword [0x1400de448]
test ax, ax
jns 0x14006314c
movsd xmm3, qword [0x1400de468]
jmp 0x14006314f
movaps xmm3, xmm2
mov rcx, rbx
add rcx, rcx
cmp byte [0x14022e9bd], 0
je 0x1400631b9
movsd xmm0, qword [0x1400de4a8]
subsd xmm0, qword [0x14022ea28]
movsd xmm2, qword [0x1400de610]
addsd xmm3, qword [0x14022ea00]
mov rax, qword [0x14022ec98]
mulsd xmm0, qword [0x1400de3e8]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8 + 8]
call fcn.140062ce0
movsd xmm1, qword [0x14022ea40]
divsd xmm1, qword [0x1400de478]
addsd xmm0, xmm1
add rsp, 0x20
pop rbx
ret
cmp byte [0x14022e923], 0
je 0x14006321d
movsd xmm0, qword [0x1400de4a8]
subsd xmm0, qword [0x14022eae0]
movsd xmm2, qword [0x1400de610]
addsd xmm3, qword [0x14022eaf0]
mov rax, qword [0x14022ec80]
mulsd xmm0, qword [0x1400de3e8]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8 + 8]
call fcn.140062ce0
movsd xmm1, qword [0x14022eac8]
divsd xmm1, qword [0x1400de478]
addsd xmm0, xmm1
add rsp, 0x20
pop rbx
ret
cmp byte [0x14022e94e], 0
je 0x140063281
movsd xmm0, qword [0x1400de4a8]
subsd xmm0, qword [0x14022ea10]
movsd xmm2, qword [0x1400de610]
addsd xmm3, qword [0x14022e9f8]
mov rax, qword [0x14022ec38]
mulsd xmm0, qword [0x1400de3e8]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8 + 8]
call fcn.140062ce0
movsd xmm1, qword [0x14022ea58]
divsd xmm1, qword [0x1400de478]
addsd xmm0, xmm1
add rsp, 0x20
pop rbx
ret
cmp byte [0x14022e92d], 0
je 0x1400632e5
movsd xmm0, qword [0x1400de4a8]
subsd xmm0, qword [0x14022ead0]
movsd xmm2, qword [0x1400de610]
addsd xmm3, qword [0x14022ea50]
mov rax, qword [0x14022ecb0]
mulsd xmm0, qword [0x1400de3e8]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8 + 8]
call fcn.140062ce0
movsd xmm1, qword [0x14022ea30]
divsd xmm1, qword [0x1400de478]
addsd xmm0, xmm1
add rsp, 0x20
pop rbx
ret
cmp byte [0x14022e9bc], 0
je 0x140063349
movsd xmm0, qword [0x1400de4a8]
subsd xmm0, qword [0x14022ea48]
movsd xmm2, qword [0x1400de610]
addsd xmm3, qword [0x14022ea80]
mov rax, qword [0x14022ec20]
mulsd xmm0, qword [0x1400de3e8]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8 + 8]
call fcn.140062ce0
movsd xmm1, qword [0x14022ea60]
divsd xmm1, qword [0x1400de478]
addsd xmm0, xmm1
add rsp, 0x20
pop rbx
ret
cmp byte [0x14022e94d], 0
je 0x1400633ad
movsd xmm1, qword [0x1400de4a8]
subsd xmm1, qword [0x14022eaa0]
movsd xmm2, qword [0x1400de610]
addsd xmm3, qword [0x14022ea98]
mov rax, qword [0x14022ec50]
mulsd xmm1, qword [0x1400de3e8]
movsd xmm0, qword [rax + rcx*8 + 8]
subsd xmm2, xmm1
movaps xmm1, xmm3
call fcn.140062ce0
movsd xmm1, qword [0x14022ead8]
divsd xmm1, qword [0x1400de478]
addsd xmm0, xmm1
add rsp, 0x20
pop rbx
ret
cmp byte [0x14022e94c], 0
je 0x140063411
movsd xmm0, qword [0x1400de4a8]
subsd xmm0, qword [0x14022ea38]
movsd xmm2, qword [0x1400de610]
addsd xmm3, qword [0x14022ea18]
mov rax, qword [0x14022ec68]
mulsd xmm0, qword [0x1400de3e8]
movaps xmm1, xmm3
subsd xmm2, xmm0
movsd xmm0, qword [rax + rcx*8 + 8]
call fcn.140062ce0
movsd xmm1, qword [0x14022eb00]
divsd xmm1, qword [0x1400de478]
addsd xmm0, xmm1
add rsp, 0x20
pop rbx
ret
mov rax, qword [0x14022ec98]
movaps xmm1, xmm3
movsd xmm0, qword [rax + rcx*8 + 8]
add rsp, 0x20
pop rbx
jmp fcn.140062ce0