Function at 0x1400039b0
Capabilities:
Copy file

Disassembly:
mov rax, rsp
push rbp
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xf0
mov qword [rbp - 0x29], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov rax, qword [0x14025eb70]
xor rax, rsp
mov qword [rbp + 0x37], rax
mov rsi, rcx
lea r9, [0x14021df18]
mov r8, qword [rcx + 0x290]
mov rdx, qword [rcx + 0x298]
call fcn.140004730
test al, al
jne 0x140003a0d
xor al, al
jmp 0x140003dcd
lea r9, [0x14021ded8]
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140004730
test al, al
je 0x140003a06
lea r9, str.Script.dll
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140004730
test al, al
je 0x140003a06
lea r9, [0x14021e078]
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140004730
lea r9, str.SerChck.dll
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140004730
lea r9, str.SerChckv2.dll
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140004730
lea r9, str.SetupSN.dll
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140004730
lea r9, str.tBar.dll
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140004730
lea r9, str.tBar7.dll
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140004730
lea r9, str.Setup.xml
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140004730
lea r9, str.MSICrlPCU_s.DLL
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140004730
lea r9, str.MSICrlPCU.DLL
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140004730
lea r9, str.PCUDataIntl.DLL
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140004730
mov rdx, qword [rsi + 0x298]
lea rcx, [rbp - 0x19]
call fcn.140006710
nop
lea rdx, str.PCUNLR.dll
lea rcx, [rbp - 0x19]
call fcn.140006960
lea rcx, [rbp - 0x61]
call fcn.1400196b8
nop
xor r8d, r8d
mov rdx, qword [rbp - 0x11]
lea rcx, [rbp - 0x61]
call fcn.1400199ec
xor r14d, r14d
or rdi, 0xffffffffffffffff
test eax, eax
je 0x140003cc1
call fcn.14000ab8c
mov rdx, rax
mov ecx, r14d
test rax, rax
setne cl
test ecx, ecx
jne 0x140003bb7
mov ecx, 0x80004005
call fcn.140005bd0
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rbp - 0x71], rax
xor bl, bl
mov r15d, 1
lea rcx, [rbp - 0x61]
call fcn.140019d38
movzx ebx, bl
test eax, eax
cmove ebx, r15d
mov edx, reloc.OLEAUT32.dll_SafeArrayGetDim
lea rcx, [rbp - 0x61]
mov rax, qword [rbp - 0x61]
call qword [rax + VarBstrFromDisp]
test eax, eax
jne 0x140003ca1
lea rcx, [rbp - 0x61]
call fcn.14001a2fc
test eax, eax
jne 0x140003ca1
mov rdx, qword [rsi + 0x290]
mov dword [rbp - 9], r14d
test rdx, rdx
jne 0x140003c20
mov eax, r14d
jmp 0x140003c2d
mov rax, rdi
inc rax
cmp word [rdx + rax*2], 0
jne 0x140003c23
mov r8d, eax
lea rcx, [rbp - 0x11]
call fcn.140005950
lea rdx, [rbp - 0x69]
lea rcx, [rbp - 0x61]
call fcn.140019e3c
nop
mov rdx, qword [rax]
lea rcx, [rbp - 0x19]
call fcn.140006960
nop
mov rdx, qword [rbp - 0x69]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140003c6c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [rbp - 0x79]
lea rcx, [rbp - 0x61]
call fcn.140019ed8
xor r8d, r8d
mov rdx, qword [rbp - 0x11]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
mov rdx, qword [rbp - 0x79]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140003ca1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test bl, bl
je 0x140003bd0
mov rdx, qword [rbp - 0x71]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140003cc1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
call fcn.14000ab8c
mov rdx, rax
mov ecx, r14d
test rax, rax
setne cl
test ecx, ecx
jne 0x140003ce1
mov ecx, 0x80004005
call fcn.140005bd0
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x20], rax
call fcn.14000ab8c
mov rcx, rax
test rax, rax
setne r14b
test r14d, r14d
jne 0x140003d12
mov ecx, 0x80004005
call fcn.140005bd0
int3
mov rax, qword [rax]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x28], rax
mov r8, qword [rsi + 0x298]
lea rdx, str._sLang
lea rcx, [rsp + 0x20]
call fcn.140005510
mov r8, qword [rsi + 0x290]
lea rdx, str._sLang
lea rcx, [rsp + 0x28]
call fcn.140005510
mov rbx, qword [rsp + 0x28]
mov r8, rbx
mov rdx, qword [rsp + 0x20]
mov rcx, rsi
call fcn.140003e00
test al, al
setne sil
lea rdx, [rbx - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140003d81
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x20]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140003d9b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rbp - 0x61]
call fcn.140019918
nop
lea rax, vtable.CUtlCommonPath.0
mov qword [rbp - 0x19], rax
mov rax, qword [rbp - 0x11]
lea rdx, [rax - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140003dc9
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
movzx eax, sil
mov rcx, qword [rbp + 0x37]
xor rcx, rsp
call fcn.140193150
lea r11, [rsp + 0xf0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rbp
ret