Function at 0x140004730
Capabilities:
Copy file

Disassembly:
mov rax, rsp
mov qword [rax + 8], rcx
push rdi
push r14
push r15
sub rsp, 0x50
mov qword [rax - 0x28], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov rdi, r9
mov rsi, r8
mov rbp, rdx
xor r15b, r15b
call fcn.14000ab8c
mov r10, rax
xor ebx, ebx
mov ecx, ebx
test rax, rax
setne cl
test ecx, ecx
jne 0x140004781
mov ecx, 0x80004005
call fcn.140005bd0
int3
mov rax, qword [rax]
mov rcx, r10
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x30], rax
call fcn.14000ab8c
mov rdx, rax
mov ecx, ebx
test rax, rax
setne cl
test ecx, ecx
jne 0x1400047b2
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 + 0x28], rax
mov r9, rdi
mov r8, rbp
lea rdx, [0x14021e1c0]
lea rcx, [rsp + 0x30]
call fcn.140005510
mov r9, rdi
mov r8, rsi
lea rdx, [0x14021e1c0]
lea rcx, [rsp + 0x28]
call fcn.140005510
call fcn.14000ab8c
mov rcx, rax
test rax, rax
setne bl
test ebx, ebx
jne 0x14000480f
mov ecx, 0x80004005
call fcn.140005bd0
int3
mov rax, qword [rax]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x70], rdi
mov r14, qword [rsp + 0x28]
lea rcx, [r14 - 0x18]
call fcn.140005b00
lea rbx, [rax + 0x18]
mov qword [rsp + 0x20], rbx
mov edx, 0x5c
mov rcx, rbx
call fcn.140193de0
or esi, 0xffffffff
test rax, rax
jne 0x14000484e
mov eax, esi
jmp 0x140004854
sub rax, rbx
sar rax, 1
lea r9d, [rax + 1]
test r9d, r9d
jle 0x1400048eb
xor r8d, r8d
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x20]
call fcn.140004ed0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x1400048c8
cmp dword [rdi + 0x10], 0
jl 0x1400048b9
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x1400048b9
call fcn.140005b00
mov rbx, rax
lock add dword [rdi + 0x10], 0xffffffff
jg 0x1400048ae
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rbx + 0x18]
mov qword [rsp + 0x70], rax
jmp 0x1400048c8
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x70]
call fcn.140005950
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x1400048e1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x70]
mov rdx, rdi
call fcn.1400049a0
xor r8d, r8d
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
movzx edi, r15b
mov ecx, 1
test eax, eax
cmovne edi, ecx
lea rdx, [rbx - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140004929
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140004943
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lock add dword [r14 - 8], 0xffffffff
jg 0x14000495a
mov rcx, qword [r14 - 0x18]
mov rax, qword [rcx]
lea rdx, [r14 - 0x18]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140004974
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
movzx eax, dil
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rdi
ret