Function at 0x140045b10
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
sub rsp, 0x30
cmp dword [0x14011c948], 0
movaps xmmword [rsp + 0x20], xmm6
movsxd rbx, ecx
jne 0x140045d3b
cmp byte [0x140118cf0], 0
je 0x140045b7c
call fcn.140045a30
mov rax, qword [0x14011c9d8]
movaps xmm1, xmm0
mov rcx, rbx
add rcx, rcx
mulsd xmm1, qword [rax + rcx*8]
call fcn.1400459a0
mulsd xmm1, xmm0
movss xmm0, dword [0x140118d00]
cvtps2pd xmm0, xmm0
mulsd xmm1, qword [0x1400ffa28]
divsd xmm1, xmm0
movaps xmm0, xmm1
movaps xmm6, xmmword [rsp + 0x20]
add rsp, 0x30
pop rbx
ret
cmp byte [0x14011c94e], 0
je 0x140045bcd
call fcn.140045a30
mov rax, qword [0x14011cac8]
movaps xmm2, xmm0
mov rcx, rbx
add rcx, rcx
mulsd xmm2, qword [rax + rcx*8]
call fcn.1400459a0
movss xmm1, dword [0x140118d00]
mulsd xmm2, xmm0
cvtps2pd xmm1, xmm1
mulsd xmm2, qword [0x1400ffa28]
divsd xmm2, xmm1
movaps xmm0, xmm2
movaps xmm6, xmmword [rsp + 0x20]
add rsp, 0x30
pop rbx
ret
cmp byte [0x14011c93f], 0
je 0x140045be4
call fcn.140045a30
mov rax, qword [0x14011ca80]
jmp 0x140045b91
cmp byte [0x14011c95a], 0
je 0x140045bfb
call fcn.140045a30
mov rax, qword [0x14011cb10]
jmp 0x140045b91
cmp byte [0x14011c94c], 0
je 0x140045c15
call fcn.140045a30
mov rax, qword [0x14011cb78]
jmp 0x140045b91
cmp byte [0x14011c93d], 0
je 0x140045c87
shl rbx, 4
mov ecx, SafeArrayGetLBound
add rbx, qword [0x14011ca38]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, dword [reloc.OLEAUT32.dll_SysReAllocString]
test ax, ax
cmovs ecx, dword [0x140118d44]
call fcn.140045a30
movaps xmm2, xmm0
mulsd xmm2, qword [rbx]
call fcn.1400459a0
movd xmm1, ecx
mulsd xmm2, xmm0
cvtdq2pd xmm0, xmm1
movss xmm1, dword [0x140118d00]
mulsd xmm0, xmm2
cvtps2pd xmm1, xmm1
mulsd xmm0, qword [0x1400ffa28]
divsd xmm0, xmm1
movaps xmm6, xmmword [rsp + 0x20]
add rsp, 0x30
pop rbx
ret
cmp byte [0x14011c94d], 0
je 0x140045cd0
mov ecx, SafeArrayGetLBound
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov edx, dword [reloc.OLEAUT32.dll_SysReAllocString]
test ax, ax
cmovs edx, dword [0x140118d44]
call fcn.140045a30
mov rax, qword [0x14011ca50]
movaps xmm2, xmm0
mov rcx, rbx
add rcx, rcx
mulsd xmm2, qword [rax + rcx*8]
call fcn.1400459a0
movd xmm1, edx
jmp 0x140045c59
cmp byte [0x14011c93e], 0
je 0x140045d02
mov ecx, SafeArrayGetLBound
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov edx, dword [reloc.OLEAUT32.dll_SysReAllocString]
test ax, ax
cmovs edx, dword [0x140118d44]
call fcn.140045a30
mov rax, qword [0x14011c9f0]
jmp 0x140045cb7
cmp byte [0x14011c939], 0
je 0x1400460fb
mov ecx, SafeArrayGetLBound
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov edx, dword [reloc.OLEAUT32.dll_SysReAllocString]
test ax, ax
cmovs edx, dword [0x140118d44]
call fcn.140045a30
mov rax, qword [0x14011cae0]
jmp 0x140045cb7
cmp byte [0x140118cf0], 0
je 0x140045dc3
mov rax, rbx
shl rax, 4
add rax, qword [0x14011c9d8]
call fcn.140045a30
movaps xmm6, xmm0
mulsd xmm6, qword [rax]
call fcn.1400459a0
movss xmm1, dword [0x140118d00]
mulsd xmm6, xmm0
cvtps2pd xmm1, xmm1
mulsd xmm6, qword [0x1400ffa28]
divsd xmm6, xmm1
divsd xmm6, qword [0x1400ffaf0]
mulsd xmm6, qword [0x1400ffaf0]
call fcn.1400bd9c8
mov r8d, dword [0x14011c948]
xorps xmm0, xmm0
cdq
xorps xmm1, xmm1
lea ecx, [r8 + r8]
idiv ecx
cvtsi2sd xmm1, r8d
cvtsi2sd xmm0, edx
addsd xmm0, xmm6
subsd xmm0, xmm1
movaps xmm6, xmmword [rsp + 0x20]
add rsp, 0x30
pop rbx
ret
cmp byte [0x14011c94e], 0
je 0x140045ddf
mov rax, rbx
shl rax, 4
add rax, qword [0x14011cac8]
jmp 0x140045d52
cmp byte [0x14011c93f], 0
je 0x140045dfb
mov rax, rbx
shl rax, 4
add rax, qword [0x14011ca80]
jmp 0x140045d52
cmp byte [0x14011c95a], 0
je 0x140045e17
mov rax, rbx
shl rax, 4
add rax, qword [0x14011cb10]
jmp 0x140045d52
cmp byte [0x14011c94c], 0
je 0x140045e33
mov rax, rbx
shl rax, 4
add rax, qword [0x14011cb78]
jmp 0x140045d52
cmp byte [0x14011c93d], 0
je 0x140045ee5
shl rbx, 4
mov ecx, SafeArrayGetLBound
add rbx, qword [0x14011ca38]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, dword [reloc.OLEAUT32.dll_SysReAllocString]
test ax, ax
cmovs ecx, dword [0x140118d44]
call fcn.140045a30
movaps xmm6, xmm0
mulsd xmm6, qword [rbx]
call fcn.1400459a0
mulsd xmm6, xmm0
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
mulsd xmm6, xmm1
movss xmm1, dword [0x140118d00]
cvtps2pd xmm1, xmm1
mulsd xmm6, qword [0x1400ffa28]
divsd xmm6, xmm1
divsd xmm6, qword [0x1400ffaf0]
mulsd xmm6, qword [0x1400ffaf0]
call fcn.1400bd9c8
mov r8d, dword [0x14011c948]
cdq
lea ecx, [r8 + r8]
movd xmm1, r8d
idiv ecx
cvtdq2pd xmm1, xmm1
movd xmm0, edx
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm6
subsd xmm0, xmm1
movaps xmm6, xmmword [rsp + 0x20]
add rsp, 0x30
pop rbx
ret
cmp byte [0x14011c94d], 0
je 0x140045f97
shl rbx, 4
mov ecx, SafeArrayGetLBound
add rbx, qword [0x14011ca50]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, dword [reloc.OLEAUT32.dll_SysReAllocString]
test ax, ax
cmovs ecx, dword [0x140118d44]
call fcn.140045a30
movaps xmm6, xmm0
mulsd xmm6, qword [rbx]
call fcn.1400459a0
mulsd xmm6, xmm0
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
mulsd xmm6, xmm1
movss xmm1, dword [0x140118d00]
cvtps2pd xmm1, xmm1
mulsd xmm6, qword [0x1400ffa28]
divsd xmm6, xmm1
divsd xmm6, qword [0x1400ffaf0]
mulsd xmm6, qword [0x1400ffaf0]
call fcn.1400bd9c8
mov r8d, dword [0x14011c948]
cdq
lea ecx, [r8 + r8]
movd xmm1, r8d
idiv ecx
cvtdq2pd xmm1, xmm1
movd xmm0, edx
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm6
subsd xmm0, xmm1
movaps xmm6, xmmword [rsp + 0x20]
add rsp, 0x30
pop rbx
ret
cmp byte [0x14011c93e], 0
je 0x140046049
shl rbx, 4
mov ecx, SafeArrayGetLBound
add rbx, qword [0x14011c9f0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, dword [reloc.OLEAUT32.dll_SysReAllocString]
test ax, ax
cmovs ecx, dword [0x140118d44]
call fcn.140045a30
movaps xmm6, xmm0
mulsd xmm6, qword [rbx]
call fcn.1400459a0
mulsd xmm6, xmm0
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
mulsd xmm6, xmm1
movss xmm1, dword [0x140118d00]
cvtps2pd xmm1, xmm1
mulsd xmm6, qword [0x1400ffa28]
divsd xmm6, xmm1
divsd xmm6, qword [0x1400ffaf0]
mulsd xmm6, qword [0x1400ffaf0]
call fcn.1400bd9c8
mov r8d, dword [0x14011c948]
cdq
lea ecx, [r8 + r8]
movd xmm1, r8d
idiv ecx
cvtdq2pd xmm1, xmm1
movd xmm0, edx
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm6
subsd xmm0, xmm1
movaps xmm6, xmmword [rsp + 0x20]
add rsp, 0x30
pop rbx
ret
cmp byte [0x14011c939], 0
je 0x1400460fb
shl rbx, 4
mov ecx, SafeArrayGetLBound
add rbx, qword [0x14011cae0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, dword [reloc.OLEAUT32.dll_SysReAllocString]
test ax, ax
cmovs ecx, dword [0x140118d44]
call fcn.140045a30
movaps xmm6, xmm0
mulsd xmm6, qword [rbx]
call fcn.1400459a0
mulsd xmm6, xmm0
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
mulsd xmm6, xmm1
movss xmm1, dword [0x140118d00]
cvtps2pd xmm1, xmm1
mulsd xmm6, qword [0x1400ffa28]
divsd xmm6, xmm1
divsd xmm6, qword [0x1400ffaf0]
mulsd xmm6, qword [0x1400ffaf0]
call fcn.1400bd9c8
mov r8d, dword [0x14011c948]
cdq
lea ecx, [r8 + r8]
movd xmm1, r8d
idiv ecx
cvtdq2pd xmm1, xmm1
movd xmm0, edx
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm6
subsd xmm0, xmm1
movaps xmm6, xmmword [rsp + 0x20]
add rsp, 0x30
pop rbx
ret
movaps xmm6, xmmword [rsp + 0x20]
xorps xmm0, xmm0
add rsp, 0x30
pop rbx
ret