Function at 0x140045dc0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
lea rbp, [rax - 0x5f]
sub rsp, 0xe0
movaps xmmword [rax - 0x18], xmm6
mov rax, qword [0x140068010]
xor rax, rsp
mov qword [rbp + 0x37], rax
cmp qword [0x140069598], 0
jne 0x140045e06
cmp qword [0x1400695a8], 0
je 0x140045e06
call fcn.1400236d0
mov rcx, qword [0x1400695b8]
lea rdx, [rbp - 0x41]
mov rdi, qword [0x140069368]
call qword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [rbp - 0x39]
lea rcx, [rbp - 0x29]
sub eax, dword [rbp - 0x41]
movd xmm1, eax
mov eax, dword [rbp - 0x35]
sub eax, dword [rbp - 0x3d]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rdi + 0x10], xmm1
movss dword [rdi + 0x14], xmm0
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [rbp - 0x29]
xorps xmm1, xmm1
mov rax, rcx
xorps xmm0, xmm0
sub rax, qword [0x1400695c0]
cvtsi2ss xmm0, qword [0x1400695c8]
cvtsi2ss xmm1, rax
divss xmm1, xmm0
movss dword [rdi + 0x18], xmm1
mov qword [0x1400695c0], rcx
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov ecx, 0x10
and al, 1
mov byte [rdi + 0x120], al
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov ecx, 0x12
and al, 1
mov byte [rdi + 0x121], al
call qword [sym.imp.USER32.dll_GetKeyState]
mov rbx, qword [0x140069368]
shr eax, 0xf
and al, 1
mov byte [rdi + 0x123], 0
mov byte [rdi + 0x122], al
cmp byte [rbx + 0x39f], 0
je 0x140045f0a
cvttss2si eax, dword [rbx + 0x108]
mov rcx, qword [0x1400695b8]
lea rdx, [rbp - 0x31]
mov dword [rbp - 0x31], eax
cvttss2si eax, dword [rbx + 0x10c]
mov dword [rbp - 0x2d], eax
call qword [sym.imp.USER32.dll_ClientToScreen]
mov edx, dword [rbp - 0x2d]
mov ecx, dword [rbp - 0x31]
call qword [sym.imp.USER32.dll_SetCursorPos]
mov dword [rbx + 0x108], 0xff7fffff
mov dword [rbx + 0x10c], 0xff7fffff
call qword [sym.imp.USER32.dll_GetActiveWindow]
cmp rax, qword [0x1400695b8]
jne 0x140045f70
lea rcx, [rbp - 0x49]
call qword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x140045f70
mov rcx, qword [0x1400695b8]
lea rdx, [rbp - 0x49]
call qword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je 0x140045f70
movd xmm0, dword [rbp - 0x49]
movd xmm1, dword [rbp - 0x45]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [rbx + 0x108], xmm0
movss dword [rbx + 0x10c], xmm1
cmp byte [rdi + 0xd0], 0
je 0x140045f80
mov eax, 0xffffffff
jmp 0x140045f8d
mov rax, qword [0x140069368]
mov eax, dword [rax + 0x1cf0]
cmp dword [0x1400685e8], eax
je 0x140045fa0
mov dword [0x1400685e8], eax
call fcn.140023a00
call fcn.140006450
mov ecx, 0x2d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x140045fc2
cmp byte [0x140069514], 0
sete byte [0x140069514]
cmp byte [0x14006805e], 0
je 0x140045fd0
call fcn.140044520
call fcn.140042cb0
movss xmm6, dword [0x14005c148]
xor esi, esi
cmp byte [0x140068052], sil
je 0x1400460a8
mov eax, dword [0x140069498]
lea rdx, [rbp - 0x49]
movss xmm2, dword [0x140068058]
xorps xmm0, xmm0
mov rbx, qword [0x140069368]
xorps xmm1, xmm1
subss xmm2, dword [0x14005c11c]
cvtsi2ss xmm0, rax
mov eax, dword [0x1400693f0]
add rbx, 0x1c48
mov dword [rsp + 0x28], 0x2710
mov rcx, rbx
xorps xmm3, xmm3
cvtsi2ss xmm1, rax
movss dword [rbp - 0x49], xmm0
movss xmm0, dword [0x14005c1e4]
movss dword [rbp - 0x45], xmm1
movss dword [rsp + 0x20], xmm0
call fcn.14001d680
mov r8d, dword [rbx + 0x80]
mov r9d, 0xffffffff
mov rdx, qword [rbx + 0x88]
mov rcx, rbx
movss dword [rsp + 0x28], xmm6
mov byte [rsp + 0x20], 1
call fcn.14001bf40
mov ecx, dword [rbx + 0x84]
test ecx, ecx
jns 0x1400460a2
mov eax, ecx
cdq
sub eax, edx
mov edx, esi
sar eax, 1
add eax, ecx
lea rcx, [rbx + 0x80]
test eax, eax
cmovg edx, eax
call fcn.1400135e0
mov dword [rbx + 0x80], esi
mov ecx, 0x73
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x14004613d
mov rcx, qword [0x140069418]
add rcx, 0x3f8
call fcn.140048b30
lea rcx, [rax + 0x628]
call fcn.140048b30
lea rbx, [rax + 0xf8]
mov rcx, rbx
call fcn.140048bd0
test eax, eax
mov qword [rbp - 0x19], rsi
mov eax, dword [0x140069400]
mov ecx, esi
sete cl
mov qword [rbp - 5], rsi
mov dword [rbp - 0x31], ecx
mov dword [rbp + 3], esi
mov qword [rbp + 0xf], rsi
mov qword [rbp + 0x27], rsi
mov dword [rbp + 0x23], 0x537
mov dword [rbp + 0x1f], eax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
lea rcx, [rbp - 0x19]
mov qword [rbp - 0x11], rbx
mov dword [rbp - 9], eax
lea rax, [rbp - 0x31]
mov qword [rbp + 0x17], rax
mov qword [rbp + 7], 4
call qword [0x140069520]
call fcn.1400076b0
mov rcx, qword [0x140069528]
xor r8d, r8d
mov rax, qword [rcx]
lea edx, [r8 + 7]
call qword [rax + 0x1c8]
mov rcx, qword [0x140069528]
xor r8d, r8d
mov rax, qword [rcx]
lea edx, [r8 + 0x1b]
call qword [rax + 0x1c8]
mov rcx, qword [0x140069528]
xor r8d, r8d
mov edx, 0xae
mov rax, qword [rcx]
call qword [rax + 0x1c8]
mov rcx, qword [0x140069528]
mov r9d, 1
mov dword [rsp + 0x30], esi
xor r8d, r8d
movss dword [rsp + 0x28], xmm6
xor edx, edx
mov dword [rsp + 0x20], esi
mov rax, qword [rcx]
call qword [rax + 0x158]
mov rcx, qword [0x140069528]
mov rax, qword [rcx]
call qword [rax + 0x148]
test eax, eax
js 0x1400461f4
call fcn.140007b90
mov rcx, qword [0x140069368]
add rcx, 0x1bf0
cmp byte [rcx], sil
cmove rcx, rsi
call fcn.140022e00
mov rcx, qword [0x140069528]
mov rax, qword [rcx]
call qword [rax + 0x150]
mov rcx, qword [0x140069528]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rsi
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x88]
cmp eax, 0x88760868
jne 0x1400462bf
mov rcx, qword [0x140069528]
mov rax, qword [rcx]
call qword [rax + 0x18]
cmp eax, 0x88760869
jne 0x1400462bf
cmp qword [0x1400695a8], rsi
je 0x14004629a
mov rcx, qword [0x1400695b0]
test rcx, rcx
je 0x140046256
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [0x1400695b0], rsi
mov rcx, qword [0x1400695a0]
test rcx, rcx
je 0x14004626f
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [0x1400695a0], rsi
mov rcx, qword [0x140069598]
mov rbx, qword [0x140069368]
test rcx, rcx
je 0x140046288
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [0x140069598], rsi
mov rax, qword [rbx + 0xa0]
mov qword [rax + 8], rsi
mov rcx, qword [0x140069528]
lea rdx, [0x140069420]
mov rax, qword [rcx]
call qword [rax + 0x80]
cmp qword [0x1400695a8], rsi
je 0x1400462bf
call fcn.1400236d0
mov rcx, qword [rbp + 0x37]
xor rcx, rsp
call fcn.1400495e0
lea r11, [rsp + 0xe0]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop rbp
ret