Function at 0x140080020
Capabilities:
Check if file exists
Copy file
Create process on windows
Get common file path
Get file attributes

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0xb40]
sub rsp, 0xc40
mov rdi, rcx
mov rcx, qword [rcx + 0xa8]
add rcx, 0x29c
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140080070
mov rdx, qword [rdi + 0xa8]
add rdx, 0x29c
call fcn.140092b20
xor edx, edx
mov r8d, 0x100
lea rcx, [rbp + 0x640]
call fcn.14014e180
xor r9d, r9d
xor r8d, r8d
lea rcx, [rbp + 0x640]
call fcn.14001be90
test al, al
je 0x1400800c2
lea rax, [rbp + 0x640]
mov qword [rsp + 0x20], rax
lea r9, str.value_sunitdll
lea r8, str.Install_Found
xor edx, edx
lea rcx, [0x140215a10]
call fcn.140059ad0
mov rdx, qword [rdi + 0xa8]
add rdx, 0x29c
call fcn.140093d00
test eax, eax
je 0x1400800f0
mov rcx, qword [rdi + 0xa8]
add rcx, 0x29c
call fcn.14000c410
test al, al
jne 0x140080144
lea rax, [rbp + 0x740]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x1a]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x140080144
mov rcx, qword [rdi + 0xa8]
lea rax, [rcx + 0x94]
add rcx, 0x29c
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x740]
lea r8, [0x1401c0df0]
mov edx, 0x103
call fcn.14001bb30
mov rdx, qword [rdi + 0xa8]
add rdx, 0x29c
call fcn.140093d00
test eax, eax
je 0x140080636
mov rdx, qword [rdi + 0xb8]
mov rcx, rdi
call fcn.14007ec10
test al, al
jne 0x14008023f
xor ebx, ebx
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x50], rbx
lea rsi, [0x14021b140]
mov qword [rsp + 0x48], rsi
lea r14, [0x14021b040]
mov qword [rsp + 0x40], r14
lea rax, str.Install_Fail_Extract_Core
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x28], rbx
lea r15, [0x140215c8a]
mov qword [rsp + 0x20], r15
lea r9, [0x140215c3a]
lea r8, [0x140215b3a]
lea edx, [rbx + 1]
lea rcx, [0x140215a10]
call fcn.140058af0
lea rax, [rbp]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [rbx + 0x1a]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x14008069b
lea r9, [rbx - 1]
lea r8, str.MetaQuotesWebInstall
mov edx, 0x104
lea rcx, [rbp]
call fcn.14003e54c
xor edx, edx
lea rcx, [rbp]
call fcn.14008f490
mov rcx, qword [rdi + 0x5b70]
test rcx, rcx
je 0x14008069b
add rcx, 0x20
xor edx, edx
call fcn.14008f490
jmp 0x14008069b
mov rcx, rdi
call fcn.14007d8f0
test al, al
je 0x14008069b
mov rcx, rdi
call fcn.14007ee90
mov byte [rdi + 0x5eaa], al
test al, al
je 0x14008069b
xor ebx, ebx
mov qword [rbp + 0xb78], rbx
mov dword [rbp + 0xb70], ebx
lea r9, [rbp + 0xb70]
lea r8, [rbp + 0xb78]
lea edx, [rbx + 5]
mov rcx, qword [rdi + 0xc0]
call fcn.14001ba40
test al, al
je 0x1400802ac
mov rdx, qword [rdi + 0xc0]
mov rcx, rdi
call fcn.14007ec10
test al, al
je 0x14008069b
mov rcx, rdi
call fcn.14007d4c0
lea rsi, [0x14021b140]
lea r14, [0x14021b040]
lea r15, [0x140215c8a]
test al, al
jne 0x14008031b
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], r14
lea rax, str.Install_Fail_Create_Shortcut
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r15
lea r9, [0x140215c3a]
lea r8, [0x140215b3a]
mov edx, 1
lea rcx, [0x140215a10]
call fcn.140058af0
lea rax, [rbp + 0x18]
mov qword [rbp + 8], rax
mov dword [rbp + 0x10], ebx
mov dword [rbp + 0x14], 0x104
mov word [rbp + 0x18], bx
lea rcx, [0x1401b7690]
mov qword [rbp], rcx
lea rax, [rbp + 0x238]
mov qword [rbp + 0x228], rax
mov dword [rbp + 0x230], ebx
mov dword [rbp + 0x234], 0x104
mov word [rbp + 0x238], bx
mov qword [rbp + 0x220], rcx
xor r12b, r12b
lea r8, str.Create_uninstall
lea rdx, str.Install
lea rcx, [0x140229810]
call fcn.140092000
mov r8d, dword [rbp + 0x14]
mov rdx, qword [rbp + 8]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov rcx, qword [rbp + 8]
test rcx, rcx
je 0x1400803ab
mov edx, dword [rbp + 0x14]
call fcn.14003c814
mov dword [rbp + 0x10], eax
jmp 0x1400803ae
mov dword [rbp + 0x10], ebx
mov r8, qword [rdi + 0xa8]
add r8, 0x29c
lea rdx, str._suninstall.exe
lea rcx, [rbp + 0x220]
call fcn.1400038c0
xor r8d, r8d
mov rdx, qword [rbp + 0x228]
mov rcx, qword [rbp + 8]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x1400803f9
mov r12b, 1
lea rdx, [rbp + 0x220]
mov rcx, rdi
call fcn.14007ce60
lea rax, str.done
lea r9, str.failed
test r12b, r12b
cmovne r9, rax
lea r8, str.Create_uninstall__s
lea rdx, str.Install
lea rcx, [0x140229810]
call fcn.140092000
nop
test r12b, r12b
jne 0x14008047c
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], r14
lea rax, str.Install_Fail_Create_Uninstall
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r15
lea r9, [0x140215c3a]
lea r8, [0x140215b3a]
mov edx, 1
lea rcx, [0x140215a10]
call fcn.140058af0
mov rcx, rdi
call fcn.14007c5c0
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x70], xmm0
movups xmmword [rbp - 0x60], xmm0
movups xmmword [rbp - 0x50], xmm0
movups xmmword [rbp - 0x40], xmm0
movups xmmword [rbp - 0x30], xmm0
movups xmmword [rbp - 0x20], xmm0
mov qword [rbp - 0x10], rax
movups xmmword [rsp + 0x70], xmm0
mov qword [rbp - 0x80], rax
lea rax, [rbp + 0x238]
mov qword [rbp + 0x228], rax
mov dword [rbp + 0x230], ebx
mov dword [rbp + 0x234], 0x200
mov word [rbp + 0x238], bx
lea rax, [0x1401b8178]
mov qword [rbp + 0x220], rax
lea r8, str.Run_setup
lea rdx, str.Install
lea rcx, [0x140229810]
call fcn.140092000
mov r8, qword [rdi + 0xa8]
lea r9, [r8 + 0x4a4]
add r8, 0x29c
lea rdx, str.__s_s___install
lea rcx, [rbp + 0x220]
call fcn.1400038c0
lea rax, [rsp + 0x70]
mov qword [rsp + 0x48], rax
lea rax, [rbp - 0x70]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0x8000000
mov dword [rsp + 0x20], ebx
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [rbp + 0x228]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
jne 0x140080592
mov r9, qword [rbp + 0x228]
lea r8, str.Start__s_failed
lea rdx, str.Install
lea rcx, [0x140229810]
call fcn.140092000
lea rax, str.Install_Fail_Start_Program
jmp 0x140080654
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x1400805b2
mov edx, 0xea60
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x1400805c2
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], r14
lea rax, str.Install_Executed
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r15
lea r9, [0x140215c3a]
lea r8, [0x140215b3a]
mov edx, 1
lea rcx, [0x140215a10]
call fcn.140058af0
lea r8, str.Run_setup_done
lea rdx, str.Install
lea rcx, [0x140229810]
call fcn.140092000
mov rcx, rdi
call fcn.14007fa20
mov al, 1
jmp 0x1400806b3
xor ebx, ebx
lea rsi, [0x14021b140]
lea r14, [0x14021b040]
lea rax, str.Install_Fail_Create_Folder
lea r15, [0x140215c8a]
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r15
lea r9, [0x140215c3a]
lea r8, [0x140215b3a]
mov edx, 1
lea rcx, [0x140215a10]
call fcn.140058af0
xor r9d, r9d
mov edx, 0x464
lea r8d, [r9 + 7]
mov rcx, qword [rdi + 8]
call qword [sym.imp.USER32.dll_PostMessageW]
xor al, al
lea r11, [rsp + 0xc40]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret