Function at 0x1400028e0
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 [0x14025bd70]
xor rax, rsp
mov qword [rbp + 0x37], rax
mov rsi, rcx
lea r9, str.Setup.exe
mov r8, qword [rcx + 0x290]
mov rdx, qword [rcx + 0x298]
call fcn.140003650
test al, al
jne 0x14000293d
xor al, al
jmp 0x140002cea
lea r9, [0x1402167a8]
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140003650
test al, al
je 0x140002936
lea r9, str.Script.dll
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140003650
test al, al
je 0x140002936
lea r9, [0x140216948]
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140003650
lea r9, str.SerChck.dll
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140003650
lea r9, str.SerChckv2.dll
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140003650
lea r9, str.SetupSN.dll
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140003650
lea r9, str.tBar.dll
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140003650
lea r9, str.Setup.xml
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140003650
lea r9, str.MSICrlPCU_s.DLL
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140003650
lea r9, str.MSICrlPCU.DLL
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140003650
lea r9, str.PCUDataIntl.DLL
mov r8, qword [rsi + 0x290]
mov rdx, qword [rsi + 0x298]
call fcn.140003650
mov rdx, qword [rsi + 0x298]
lea rcx, [rbp - 0x19]
call fcn.140005630
nop
lea rdx, str.PCUNLR.dll
lea rcx, [rbp - 0x19]
call fcn.140005880
lea rcx, [rbp - 0x61]
call fcn.140018438
nop
xor r8d, r8d
mov rdx, qword [rbp - 0x11]
lea rcx, [rbp - 0x61]
call fcn.14001876c
xor r14d, r14d
or rdi, 0xffffffffffffffff
test eax, eax
je 0x140002bde
call fcn.140009adc
mov rdx, rax
mov ecx, r14d
test rax, rax
setne cl
test ecx, ecx
jne 0x140002acd
mov ecx, 0x80004005
call fcn.140004af0
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.140018ab8
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 0x140002bbe
lea rcx, [rbp - 0x61]
call fcn.14001907c
test eax, eax
jne 0x140002bbe
mov rdx, qword [rsi + 0x290]
mov dword [rbp - 9], r14d
test rdx, rdx
jne 0x140002b36
mov eax, r14d
jmp 0x140002b4a
mov rax, rdi
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140002b40
mov r8d, eax
lea rcx, [rbp - 0x11]
call fcn.140004870
lea rdx, [rbp - 0x69]
lea rcx, [rbp - 0x61]
call fcn.140018bbc
nop
mov rdx, qword [rax]
lea rcx, [rbp - 0x19]
call fcn.140005880
nop
mov rdx, qword [rbp - 0x69]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140002b89
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.140018c58
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 0x140002bbe
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test bl, bl
je 0x140002ae6
mov rdx, qword [rbp - 0x71]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140002bde
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
call fcn.140009adc
mov rdx, rax
mov ecx, r14d
test rax, rax
setne cl
test ecx, ecx
jne 0x140002bfe
mov ecx, 0x80004005
call fcn.140004af0
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.140009adc
mov rcx, rax
test rax, rax
setne r14b
test r14d, r14d
jne 0x140002c2f
mov ecx, 0x80004005
call fcn.140004af0
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.140004430
mov r8, qword [rsi + 0x290]
lea rdx, str._sLang
lea rcx, [rsp + 0x28]
call fcn.140004430
mov rbx, qword [rsp + 0x28]
mov r8, rbx
mov rdx, qword [rsp + 0x20]
mov rcx, rsi
call fcn.140002d20
test al, al
setne sil
lea rdx, [rbx - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140002c9e
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 0x140002cb8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rbp - 0x61]
call fcn.140018698
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 0x140002ce6
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.14018d4a0
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