Function at 0x140046290
Capabilities:
Log keystrokes via polling

Disassembly:
sub rsp, 0x98
mov rax, qword [0x140082100]
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.140048f60
xor sil, sil
cmp dword [rsp + 0x60], 0x12
je 0x1400464d7
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 0x140046345
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.140046550
test sil, sil
jne 0x1400464ac
call sub.MSVCP140.dll__Query_perf_frequency
mov rdi, rax
call sub.MSVCP140.dll__Query_perf_counter
mov rcx, rax
cmp rdi, 0x989680
jne 0x1400463bd
imul rax, rcx, 0x64
jmp 0x14004642e
cmp rdi, 0x16e3600
jne 0x140046410
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 0x14004642b
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 0x1400464ac
cmp dword [0x1400825f8], 0
mov rbx, rax
jle 0x1400464ac
cmp dword [0x1400825fc], 0
jle 0x1400464ac
mov rcx, qword [0x140082698]
lea rdx, [rsp + 0x48]
call qword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [rsp + 0x50]
sub eax, dword [rsp + 0x48]
mov edx, dword [0x1400825f8]
mov ecx, dword [0x1400825fc]
cmp eax, edx
jne 0x140046484
mov eax, dword [rsp + 0x54]
sub eax, dword [rsp + 0x4c]
cmp eax, ecx
je 0x1400464ac
mov dword [rsp + 0x30], 6
xor r9d, r9d
mov dword [rsp + 0x28], ecx
xor r8d, r8d
mov rcx, qword [0x140082698]
mov dword [rsp + 0x20], edx
xor edx, edx
call qword [sym.imp.USER32.dll_SetWindowPos]
mov sil, 1
cmp dword [rsp + 0x60], 0x12
jne 0x140046310
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 [0x140082700]
mov rsi, qword [rsp + 0xb0]
test rcx, rcx
je 0x140046502
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [0x1400826f8]
test rcx, rcx
je 0x140046514
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [0x140082698]
call qword [sym.imp.USER32.dll_DestroyWindow]
mov rdx, qword [0x1400826b8]
mov rcx, qword [0x1400826e0]
call qword [sym.imp.USER32.dll_UnregisterClassA]
mov rcx, qword [rsp + 0x88]
xor rcx, rsp
call fcn.140049c80
add rsp, 0x98
ret