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.140004720
test al, al
jne 0x140003a0d
xor al, al
jmp 0x140003dba
lea r9, [0x14021ded8]
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140004720
test al, al
je 0x140003a06
lea r9, str.Script.dll
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140004720
test al, al
je 0x140003a06
lea r9, [0x14021e078]
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140004720
lea r9, str.SerChck.dll
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140004720
lea r9, str.SerChckv2.dll
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140004720
lea r9, str.SetupSN.dll
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140004720
lea r9, str.tBar.dll
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140004720
lea r9, str.Setup.xml
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140004720
lea r9, str.MSICrlPCU_s.DLL
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140004720
lea r9, str.MSICrlPCU.DLL
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140004720
lea r9, str.PCUDataIntl.DLL
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140004720
mov rdx, qword [rsi + 0x298]
lea rcx, [rbp - 0x19]
call fcn.140006700
nop
lea rdx, str.PCUNLR.dll
lea rcx, [rbp - 0x19]
call fcn.140006950
lea rcx, [rbp - 0x61]
call fcn.1400196a8
nop
xor r8d, r8d
mov rdx, qword [rbp - 0x11]
lea rcx, [rbp - 0x61]
call fcn.1400199dc
xor r14d, r14d
or rdi, 0xffffffffffffffff
test eax, eax
je 0x140003cae
call fcn.14000ab7c
mov rdx, rax
mov ecx, r14d
test rax, rax
setne cl
test ecx, ecx
jne 0x140003b9d
mov ecx, 0x80004005
call fcn.140005bc0
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.140019d28
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 0x140003c8e
lea rcx, [rbp - 0x61]
call fcn.14001a2ec
test eax, eax
jne 0x140003c8e
mov rdx, qword [rsi + 0x290]
mov dword [rbp - 9], r14d
test rdx, rdx
jne 0x140003c06
mov eax, r14d
jmp 0x140003c1a
mov rax, rdi
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140003c10
mov r8d, eax
lea rcx, [rbp - 0x11]
call fcn.140005940
lea rdx, [rbp - 0x69]
lea rcx, [rbp - 0x61]
call fcn.140019e2c
nop
mov rdx, qword [rax]
lea rcx, [rbp - 0x19]
call fcn.140006950
nop
mov rdx, qword [rbp - 0x69]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140003c59
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.140019ec8
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 0x140003c8e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test bl, bl
je 0x140003bb6
mov rdx, qword [rbp - 0x71]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140003cae
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
call fcn.14000ab7c
mov rdx, rax
mov ecx, r14d
test rax, rax
setne cl
test ecx, ecx
jne 0x140003cce
mov ecx, 0x80004005
call fcn.140005bc0
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.14000ab7c
mov rcx, rax
test rax, rax
setne r14b
test r14d, r14d
jne 0x140003cff
mov ecx, 0x80004005
call fcn.140005bc0
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.140005500
mov r8, qword [rsi + 0x290]
lea rdx, str._sLang
lea rcx, [rsp + 0x28]
call fcn.140005500
mov rbx, qword [rsp + 0x28]
mov r8, rbx
mov rdx, qword [rsp + 0x20]
mov rcx, rsi
call fcn.140003df0
test al, al
setne sil
lea rdx, [rbx - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140003d6e
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 0x140003d88
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rbp - 0x61]
call fcn.140019908
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 0x140003db6
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.140193140
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