Function at 0x140039ed0
Capabilities:
Check for foreground window switch
Create process on windows
Create thread
Execute command
Get graphical window text

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r12
push rbp
push r14
push r15
lea rbp, [rax - 0x348]
sub rsp, 0x430
movaps xmmword [rax - 0x28], xmm6
mov rax, qword [0x14004a010]
xor rax, rsp
mov qword [rbp + 0x310], rax
lea rcx, str.taskkill__IM_VALORANT_Win64_Shipping.exe__F
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
xor ebx, ebx
mov dword [rsp + 0x28], 1
xor r9d, r9d
mov qword [rsp + 0x20], rbx
lea r8, str.riotclient:__play_128
xor ecx, ecx
lea rdx, str.open
call qword [sym.imp.SHELL32.dll_ShellExecuteA]
lea rcx, str.Execute_Valorant_n
call fcn.140001150
mov ecx, 0x7d0
call qword [sym.imp.KERNEL32.dll_Sleep]
cmp byte [0x14004a809], bl
jne 0x140039f80
call qword [sym.imp.KERNEL32.dll_GetConsoleWindow]
mov rcx, rax
xor edx, edx
call qword [sym.imp.USER32.dll_ShowWindow]
nop dword [rax + rax]
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rcx, rax
lea rdx, [rbp - 0x50]
call qword [sym.imp.USER32.dll_GetWindowThreadProcessId]
call fcn.1400387c0
cmp eax, dword [rbp - 0x50]
jne 0x140039f80
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [0x14004a890], eax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov qword [0x14004a898], rax
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rcx, rax
mov qword [0x14004a8a0], rax
lea rdx, [rbp - 0x48]
call qword [sym.imp.USER32.dll_GetWindowRect]
mov edx, dword [rbp - 0x48]
mov r8d, dword [rbp - 0x3c]
mov ecx, dword [rbp - 0x44]
mov r9d, dword [rbp - 0x40]
mov eax, r9d
sub eax, edx
mov dword [0x14004a8b8], edx
mov dword [0x14004a8b0], eax
lea rdx, [rbp - 0x20]
mov eax, r8d
mov dword [0x14004a8c0], ecx
sub eax, ecx
mov dword [0x14004a8c4], r8d
mov rcx, qword [0x14004a8a0]
mov r8d, 0x104
mov dword [0x14004a8b4], eax
mov dword [0x14004a8bc], r9d
call qword [sym.imp.USER32.dll_GetWindowTextA]
mov rcx, qword [0x14004a8a0]
lea rax, [rbp - 0x20]
mov r8d, 0x104
mov qword [0x14004a8c8], rax
lea rdx, [rbp + 0xf0]
call qword [sym.imp.USER32.dll_GetClassNameA]
mov rcx, qword [0x14004a898]
lea rax, [rbp + 0xf0]
mov r9d, 0x104
mov qword [0x14004a8d0], rax
lea r8, [rbp + 0x200]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_K32GetModuleFileNameExA]
lea rax, [rbp + 0x200]
lea rcx, [rbp - 0x48]
mov qword [0x14004a8d8], rax
call fcn.140038860
cmp qword [rax + 0x18], 0x10
jb 0x14003a095
mov rax, qword [rax]
mov rdx, qword [rbp - 0x30]
mov qword [0x14004a878], rax
cmp rdx, 0x10
jb 0x14003a0da
mov rcx, qword [rbp - 0x48]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003a0d5
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14003a0d5
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14003ac7c
lea rax, [0x140039d30]
mov qword [rsp + 0x60], 0x50
mov edx, 0x7f00
mov qword [rsp + 0x68], rax
xor ecx, ecx
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], rbx
call qword [sym.imp.USER32.dll_LoadIconA]
mov edx, 0x7f00
xor ecx, ecx
mov qword [rbp - 0x80], rax
call qword [sym.imp.USER32.dll_LoadCursorA]
mov qword [rbp - 0x78], rax
mov edx, 0x7f00
mov rax, qword [0x14004a878]
xor ecx, ecx
mov qword [rbp - 0x60], rax
xorps xmm6, xmm6
call qword [sym.imp.USER32.dll_LoadIconA]
movups xmm0, xmmword [rsp + 0x60]
mov qword [rbp - 0x58], rax
mov edx, 1
movups xmm1, xmmword [rsp + 0x70]
lea rcx, str.login.exe
movaps xmmword [0x14004a820], xmm0
movups xmm0, xmmword [rbp - 0x80]
movaps xmmword [0x14004a830], xmm1
movaps xmmword [0x14004a840], xmm0
movups xmm0, xmmword [rbp - 0x60]
movaps xmmword [0x14004a850], xmm6
movaps xmmword [0x14004a860], xmm0
call qword [sym.imp.KERNEL32.dll_WinExec]
lea rcx, [0x14004a820]
call qword [sym.imp.USER32.dll_RegisterClassExA]
mov rcx, qword [0x14004a8a0]
test rcx, rcx
je 0x14003a1ed
lea rdx, [0x14004a960]
call qword [sym.imp.USER32.dll_GetClientRect]
mov rcx, qword [0x14004a8a0]
lea rdx, [0x14004a978]
call qword [sym.imp.USER32.dll_ClientToScreen]
mov eax, dword [0x14004a978]
mov ecx, dword [0x14004a96c]
mov dword [0x14004a960], eax
mov eax, dword [0x14004a97c]
mov dword [0x14004a964], eax
mov eax, dword [0x14004a968]
mov dword [0x14004a8b0], eax
mov dword [0x14004a8b4], ecx
jmp 0x14003a1f9
mov ecx, dword [0x14004a8b4]
mov eax, dword [0x14004a8b0]
mov rdx, qword [0x14004a878]
mov r9d, 0x90000000
mov qword [rsp + 0x58], rbx
mov r8, rdx
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x40], rbx
mov dword [rsp + 0x38], ecx
xor ecx, ecx
mov dword [rsp + 0x30], eax
mov eax, dword [0x14004a8c0]
mov dword [rsp + 0x28], eax
mov eax, dword [0x14004a8b8]
mov dword [rsp + 0x20], eax
call qword [sym.imp.USER32.dll_CreateWindowExA]
mov rcx, rax
mov qword [0x14004a870], rax
lea rdx, [0x14004a0d0]
call qword [sym.imp.dwmapi.dll_DwmExtendFrameIntoClientArea]
mov rcx, qword [0x14004a870]
mov edx, 0xffffffec
mov r8d, 0x800a0
call qword [sym.imp.USER32.dll_SetWindowLongA]
mov rcx, qword [0x14004a870]
mov edx, 5
call qword [sym.imp.USER32.dll_ShowWindow]
mov rcx, qword [0x14004a870]
call qword [sym.imp.USER32.dll_UpdateWindow]
call fcn.1400399c0
xor r9d, r9d
mov qword [rsp + 0x28], rbx
lea r8, [0x140039ea0]
mov dword [rsp + 0x20], ebx
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
movsd xmm6, qword [0x140043810]
movabs rsi, 0x311cdad160000
movabs r12, 0x7fffffff88ca6bff
movabs r15, 0x7fffffffffffffff
movabs r14, 0x112e0be826d694b3
call fcn.1400396d0
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x14003a304
imul rax, rax, 0x64
jmp 0x14003a322
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
lea rdi, [rax + 0x77359400]
cmp rax, r12
jl 0x14003a331
mov rdi, r15
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x14003a34f
imul rbx, rax, 0x64
jmp 0x14003a370
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
mov rbx, rax
imul rax, rcx, 0x3b9aca00
add rbx, rax
cmp rbx, rdi
jge 0x14003a2e1
call qword [sym.imp.MSVCP140.dll__Xtime_get_ticks]
imul rcx, rax, 0x64
xorps xmm0, xmm0
mov rax, rdi
sub rax, rbx
lea r8, [rcx + rsi]
cvtsi2sd xmm0, rax
comisd xmm0, xmm6
seta r9b
test r9b, r9b
jne 0x14003a3a6
lea r8, [rax + rcx]
add rax, rcx
lea rdx, [rcx + rsi]
test r9b, r9b
lea rcx, [rbp - 0x48]
cmove rdx, rax
mov rax, r14
imul rdx
sar rdx, 0x1a
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul eax, edx, 0x3b9aca00
mov qword [rbp - 0x48], rdx
sub r8d, eax
mov dword [rbp - 0x40], r8d
call qword [sym.imp.MSVCP140.dll__Thrd_sleep]
jmp 0x14003a331