Function at 0x1400452e0
Capabilities:
Log keystrokes via polling

Disassembly:
sub rsp, 0x98
mov rax, qword [0x140081100]
xor rax, rsp
mov qword [rsp + 0x88], rax
xorps xmm0, xmm0
mov qword [rsp + 0xb0], rsi
lea rcx, [rsp + 0x40]
movups xmmword [rsp + 0x58], xmm0
movups xmmword [rsp + 0x68], xmm0
movups xmmword [rsp + 0x78], xmm0
call fcn.140048070
xor sil, sil
cmp dword [rsp + 0x60], 0x12
je 0x140045527
mov qword [rsp + 0xa0], rbx
mov rbx, qword [rsp + 0x40]
mov qword [rsp + 0xa8], rbp
mov ebp, 0xb2d05e01
mov qword [rsp + 0xb8], rdi
mov qword [rsp + 0x90], r14
movabs r14, 0xb2f4fc0794908cf3
nop
xor r9d, r9d
mov dword [rsp + 0x20], 1
xor r8d, r8d
lea rcx, [rsp + 0x58]
xor edx, edx
call qword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x140045395
lea rcx, [rsp + 0x58]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [rsp + 0x58]
call qword [sym.imp.USER32.dll_DispatchMessageA]
call fcn.14000a4a0
lea rcx, [rsp + 0x40]
mov rdi, rax
call qword [sym.imp.USER32.dll_GetCursorPos]
movd xmm0, dword [rsp + 0x40]
mov ecx, 1
cvtdq2ps xmm0, xmm0
movss dword [rdi + 0x120], xmm0
movd xmm1, dword [rsp + 0x44]
cvtdq2ps xmm1, xmm1
movss dword [rdi + 0x124], xmm1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
mov byte [rdi + 0x128], al
call fcn.1400455a0
test sil, sil
jne 0x1400454fc
call sub.MSVCP140.dll__Query_perf_frequency
mov rdi, rax
call sub.MSVCP140.dll__Query_perf_counter
mov rcx, rax
cmp rdi, 0x989680
jne 0x14004540d
imul rax, rcx, 0x64
jmp 0x14004547e
cmp rdi, 0x16e3600
jne 0x140045460
mov rax, r14
imul rcx
lea r8, [rcx + rdx]
sar r8, 0x18
mov rax, r8
shr rax, 0x3f
add r8, rax
imul rax, r8, 0x16e3600
sub rcx, rax
mov rax, r14
imul rcx, rcx, 0x3b9aca00
imul rcx
lea rax, [rcx + rdx]
sar rax, 0x18
mov rcx, rax
shr rcx, 0x3f
add rax, rcx
imul rcx, r8, 0x3b9aca00
jmp 0x14004547b
cqo
idiv rdi
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rdi
imul rcx, rcx, 0x3b9aca00
add rax, rcx
mov rcx, rax
sub rcx, rbx
cmp rcx, rbp
jl 0x1400454fc
cmp dword [0x1400815f8], 0
mov rbx, rax
jle 0x1400454fc
cmp dword [0x1400815fc], 0
jle 0x1400454fc
mov rcx, qword [0x140081698]
lea rdx, [rsp + 0x48]
call qword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [rsp + 0x50]
sub eax, dword [rsp + 0x48]
mov edx, dword [0x1400815f8]
mov ecx, dword [0x1400815fc]
cmp eax, edx
jne 0x1400454d4
mov eax, dword [rsp + 0x54]
sub eax, dword [rsp + 0x4c]
cmp eax, ecx
je 0x1400454fc
mov dword [rsp + 0x30], 6
xor r9d, r9d
mov dword [rsp + 0x28], ecx
xor r8d, r8d
mov rcx, qword [0x140081698]
mov dword [rsp + 0x20], edx
xor edx, edx
call qword [sym.imp.USER32.dll_SetWindowPos]
mov sil, 1
cmp dword [rsp + 0x60], 0x12
jne 0x140045360
mov r14, qword [rsp + 0x90]
mov rdi, qword [rsp + 0xb8]
mov rbp, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0xa0]
call fcn.14002b8d0
call fcn.14002bd40
xor ecx, ecx
call fcn.1400085d0
mov rcx, qword [0x140081700]
mov rsi, qword [rsp + 0xb0]
test rcx, rcx
je 0x140045552
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [0x1400816f8]
test rcx, rcx
je 0x140045564
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [0x140081698]
call qword [sym.imp.USER32.dll_DestroyWindow]
mov rdx, qword [0x1400816b8]
mov rcx, qword [0x1400816e0]
call qword [sym.imp.USER32.dll_UnregisterClassA]
mov rcx, qword [rsp + 0x88]
xor rcx, rsp
call fcn.140048d90
add rsp, 0x98
ret