Function at 0x140045f30
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xd0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
mov rax, qword [0x1401d8ec0]
xor rax, rsp
mov qword [rbp - 0x11], rax
mov r14, rdx
mov r15, rcx
mov qword [rbp - 0x59], rcx
mov qword [rbp - 0x51], rdx
mov dword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea rcx, [rbp - 0x41]
call qword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x140045fa9
lea rcx, [rbp - 0x41]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [rbp - 0x41]
call qword [sym.imp.USER32.dll_DispatchMessageA]
call fcn.14000ea10
mov qword [rax + 0x18], 0
call fcn.140001ea0
call fcn.140002da0
call fcn.1400155c0
mov rcx, qword [r15 + 0x38]
test rcx, rcx
je 0x1400463a3
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [r14 + 0x38]
test rcx, rcx
je 0x1400463a3
mov rax, qword [rcx]
call qword [rax + 0x10]
movss xmm9, dword [0x140059fe4]
mov rax, qword [0x1401d97e8]
cmp byte [rax + 0x2c], 0
je 0x140046088
movd xmm7, dword [0x1401d9888]
cvtdq2ps xmm7, xmm7
movaps xmm8, xmm7
mulss xmm8, dword [rax + 0x30]
divss xmm8, dword [0x1401cfa48]
mulss xmm8, dword [0x14005bb84]
movdqa xmm0, xmmword [0x14005bcb0]
movd xmm6, dword [0x1401d988c]
cvtdq2ps xmm6, xmm6
movdqa xmmword [rbp - 0x69], xmm0
lea rcx, [rbp - 0x69]
call fcn.14000b290
mov ebx, eax
call fcn.14000e3a0
movss dword [rbp - 0x49], xmm7
movss dword [rbp - 0x45], xmm6
cvttss2si ecx, xmm8
movd xmm2, ecx
cvtdq2ps xmm2, xmm2
movss dword [rsp + 0x28], xmm9
mov dword [rsp + 0x20], 0x63
mov r9d, ebx
lea rdx, [rbp - 0x49]
mov rcx, rax
call fcn.1400207e0
call fcn.14004bcc0
mov rax, qword [0x1401d97e8]
cmp byte [rax + 0x115], 0
je 0x140046206
mov eax, dword [0x1401cfa5c]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [0x1401cfa54]
add edx, eax
movd xmm1, edx
cvtdq2ps xmm1, xmm1
mov edx, dword [0x1401cfa50]
add edx, eax
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movss dword [rbp - 0x49], xmm0
movss dword [rbp - 0x45], xmm1
movd xmm8, eax
cvtdq2ps xmm8, xmm8
movdqa xmm0, xmmword [0x1400616b0]
movups xmmword [rbp - 0x69], xmm0
lea rcx, [rbp - 0x69]
call fcn.14000e500
mov ebx, eax
movdqa xmm0, xmmword [0x14005bcb0]
movups xmmword [rbp - 0x69], xmm0
lea rcx, [rbp - 0x69]
call fcn.14000e500
mov edi, eax
movdqa xmm0, xmmword [0x140061720]
movups xmmword [rbp - 0x69], xmm0
lea rcx, [rbp - 0x69]
call fcn.14000e500
mov esi, eax
movdqa xmm0, xmmword [0x140061740]
movups xmmword [rbp - 0x69], xmm0
lea rcx, [rbp - 0x69]
call fcn.14000e500
call fcn.14000e3a0
mov dword [rsp + 0x20], 0x40
mov r9d, ebx
movaps xmm2, xmm8
lea rdx, [rbp - 0x49]
mov rcx, rax
call fcn.1400208d0
movaps xmm6, xmm8
mulss xmm6, dword [0x140061424]
movaps xmm7, xmm8
mulss xmm7, dword [0x140061420]
call fcn.14000e3a0
movss dword [rsp + 0x28], xmm9
mov dword [rsp + 0x20], 0x40
mov r9d, edi
movaps xmm2, xmm6
lea rdx, [rbp - 0x49]
mov rcx, rax
call fcn.1400207e0
call fcn.14000e3a0
movss dword [rsp + 0x28], xmm9
mov dword [rsp + 0x20], 0x40
mov r9d, edi
movaps xmm2, xmm7
lea rdx, [rbp - 0x49]
mov rcx, rax
call fcn.1400207e0
call fcn.14000e3a0
movss dword [rsp + 0x28], xmm9
mov dword [rsp + 0x20], 0x40
mov r9d, edi
movaps xmm2, xmm8
lea rdx, [rbp - 0x49]
mov rcx, rax
call fcn.1400207e0
call fcn.14000e3a0
mov dword [rsp + 0x20], 0xc
mov r9d, esi
movss xmm2, dword [0x14005bbc4]
lea rdx, [rbp - 0x49]
mov rcx, rax
call fcn.1400208d0
mov ecx, 0x2d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x14004622f
mov rax, qword [0x1401d97e8]
cmp byte [rax], 0
sete cl
mov byte [rax], cl
mov ecx, 0x64
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rax, qword [0x1401d97e8]
cmp byte [rax], 0
je 0x14004628a
cmp byte [0x1401d9546], 1
je 0x140046283
mov edx, 0xffffffec
mov rcx, qword [0x1401d9758]
call qword [sym.imp.USER32.dll_GetWindowLongA]
btr eax, 0x13
mov r8d, eax
mov edx, 0xffffffec
mov rcx, qword [0x1401d9758]
call qword [sym.imp.USER32.dll_SetWindowLongA]
mov rcx, qword [0x1401d9758]
call qword [sym.imp.USER32.dll_SetFocus]
mov byte [0x1401d9546], 1
call fcn.140047f20
jmp 0x1400462d2
cmp byte [0x1401d9546], 0
je 0x1400462d2
mov edx, 0xffffffec
mov rcx, qword [0x1401d9758]
call qword [sym.imp.USER32.dll_GetWindowLongA]
bts eax, 0x13
mov r8d, eax
mov edx, 0xffffffec
mov rcx, qword [0x1401d9758]
call qword [sym.imp.USER32.dll_SetWindowLongA]
mov rcx, qword [0x1401d9758]
call qword [sym.imp.USER32.dll_SetFocus]
mov byte [0x1401d9546], 0
call fcn.1400174b0
call fcn.14000c9d0
mov rcx, qword [0x1401d9720]
mov rax, qword [rcx]
lea r8, [0x1401d9890]
mov rdx, qword [0x1401d9730]
call qword [rax + 0x190]
call fcn.14000e650
mov rcx, rax
call fcn.140001ee0
mov rcx, qword [0x1401d9728]
mov rax, qword [rcx]
mov r9, qword [rax + 0x40]
mov rax, qword [0x1401d97e8]
movzx edx, byte [rax + 1]
xor r8d, r8d
call r9
xor ebx, ebx
cmp dword [rbp - 0x39], 0x12
setne bl
mov rcx, qword [r15 + 0x38]
test rcx, rcx
je 0x14004634c
mov rax, qword [rcx]
cmp rcx, r15
setne dl
call qword [rax + 0x20]
mov qword [r15 + 0x38], 0
mov rcx, qword [r14 + 0x38]
test rcx, rcx
je 0x14004636a
mov r8, qword [rcx]
cmp rcx, r14
setne dl
call qword [r8 + 0x20]
mov qword [r14 + 0x38], 0
mov eax, ebx
mov rcx, qword [rbp - 0x11]
xor rcx, rsp
call fcn.140055e00
lea r11, [rsp + 0xd0]
mov rbx, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
mov rsp, r11
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
call sub.MSVCP140.dll_void___cdecl_std::_Xbad_function_call_void_
nop
int3