Function at 0x140004d40
Capabilities:
Copy file
Delete directory
Delete file
Set file attributes

Disassembly:
push rbp
push rsi
push rdi
lea rbp, [rsp - 0x4f0]
sub rsp, 0x5f0
mov qword [rbp - 0x10], 0xfffffffffffffffe
mov qword [rsp + 0x620], rbx
mov rax, qword [0x140068620]
xor rax, rsp
mov qword [rbp + 0x4e0], rax
mov dword [rsp + 0x48], edx
mov rdi, rcx
mov qword [rsp + 0x38], rcx
lea rcx, [rbp - 0x80]
call fcn.140007754
nop
xor r8d, r8d
mov rdx, rdi
lea rcx, [rbp - 0x80]
call fcn.140007bc0
or rsi, 0xffffffffffffffff
xor ebx, ebx
mov dword [rsp + 0x4c], 1
test eax, eax
je 0x1400050cb
nop
lea rcx, [rbp - 0x80]
call fcn.140007f24
mov dword [rsp + 0x30], eax
lea rcx, [rbp - 0x80]
call fcn.140008570
test eax, eax
jne 0x14000503f
lea rdx, [rsp + 0x20]
lea rcx, [rbp - 0x80]
call fcn.1400080cc
nop
call fcn.140006b4c
test rax, rax
je 0x1400050b9
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x60], rbx
mov dword [rsp + 0x50], 0x124
lea r8, [rsp + 0x50]
lea rdx, [rbp + 0x40]
mov rcx, qword [rsp + 0x20]
call fcn.140028350
lea rax, [rbp + 0x40]
mov rdi, rsi
nop
inc rdi
cmp word [rax + rdi*2], 0
jne 0x140004e20
test edi, edi
jne 0x140004e88
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], 0
je 0x140004f4e
cmp dword [rdx + 0x10], 0
jge 0x140004e5c
cmp dword [rbx - 0xc], 0
jl 0x14000504b
xor eax, eax
mov dword [rbx - 0x10], eax
mov word [rbx], ax
jmp 0x140004f4e
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140004e71
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x60], rbx
jmp 0x140004f4e
mov eax, dword [rbx - 0x10]
mov dword [rsp + 0x54], eax
lea rsi, [rbp + 0x40]
sub rsi, rbx
sar rsi, 1
test edi, edi
js 0x1400050ae
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x140004ec3
mov edx, edi
lea rcx, [rsp + 0x60]
call fcn.140004be0
mov rbx, qword [rsp + 0x60]
mov eax, dword [rsp + 0x54]
cmp rsi, rax
movsxd rax, edi
ja 0x140004f1e
lea rdx, [rbx + rsi*2]
lea rsi, [rax + rax]
test rsi, rsi
je 0x140004f38
test rdx, rdx
jne 0x140004ef3
call fcn.140031348
mov dword [rax], 0x16
call fcn.140031228
jmp 0x140004f38
movsxd rax, dword [rbx - 0xc]
add rax, rax
cmp rax, rsi
jae 0x140004f11
call fcn.140031348
mov dword [rax], 0x22
call fcn.140031228
jmp 0x140004f38
mov r8, rsi
mov rcx, rbx
call fcn.14002a9c0
jmp 0x140004f38
lea rsi, [rax + rax]
movsxd rdx, dword [rbx - 0xc]
add rdx, rdx
mov r9, rsi
lea r8, [rbp + 0x40]
mov rcx, rbx
call fcn.1400058c0
cmp edi, dword [rbx - 0xc]
jg 0x1400050a3
mov dword [rbx - 0x10], edi
xor eax, eax
mov word [rsi + rbx], ax
or rsi, 0xffffffffffffffff
mov edx, 0x10
lea rcx, [rbp - 0x80]
mov rax, qword [rbp - 0x80]
call qword [rax + 0x70]
mov rcx, rbx
test eax, eax
je 0x140004f9a
call fcn.140001ee0
mov r8d, 4
lea rdx, str..
lea rcx, [rsp + 0x20]
call fcn.140003340
mov edx, dword [rsp + 0x48]
mov rcx, qword [rsp + 0x20]
call fcn.140004d40
cmp eax, 3
je 0x140005056
jmp 0x140005007
call fcn.140001ee0
mov edx, 0x80
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov edx, 0x80
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
xor r8d, r8d
mov rdx, rbx
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x140004ff5
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
mov rdx, qword [rsp + 0x20]
lea rcx, str.Failed_to_commit___s___error_code___d._n
call fcn.1400059e0
jmp 0x140005007
mov rdx, qword [rsp + 0x20]
lea rcx, str.Commit___s__successfully._n
call fcn.1400059e0
nop
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140005021
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x20]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000503f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
cmp dword [rsp + 0x30], 0
je 0x1400050c4
jmp 0x140004db0
mov ecx, 0x80070057
call fcn.140003460
int3
lea rcx, [rbp - 0x80]
call fcn.140007b48
nop
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000507a
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 xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x140005096
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov dword [rsp + 0x4c], 3
jmp 0x140005423
mov ecx, 0x80070057
call fcn.140003460
int3
mov ecx, 0x80070057
call fcn.140003460
nop
mov ecx, 0x80004005
call fcn.140003460
nop
mov rdi, qword [rsp + 0x38]
xor ebx, ebx
lea rcx, [rbp - 0x80]
call fcn.140007b48
call fcn.140006b4c
mov rcx, rax
test rax, rax
jne 0x1400050ec
mov ecx, 0x80004005
call fcn.140003460
int3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x40], rax
test rdi, rdi
je 0x14000513c
test rdi, 0xffffffffffff0000
jne 0x14000512a
movzx ebx, di
mov ecx, ebx
call fcn.1400064f4
test rax, rax
je 0x14000514f
mov r8d, ebx
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.1400049d0
jmp 0x14000514f
mov rax, rsi
nop dword [rax]
inc rax
cmp word [rdi + rax*2], 0
jne 0x140005130
jmp 0x14000513e
mov eax, ebx
mov r8d, eax
mov rdx, rdi
lea rcx, [rsp + 0x40]
call fcn.140005460
nop
call fcn.140006b4c
mov rcx, rax
test rax, rax
jne 0x140005167
mov ecx, 0x80004005
call fcn.140003460
int3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x58], 0x124
lea r8, [rsp + 0x58]
lea rdx, [rbp + 0x290]
mov rcx, qword [rsp + 0x40]
call fcn.140028350
lea rcx, [rbp + 0x290]
mov rax, rsi
nop
inc rax
cmp word [rcx + rax*2], 0
jne 0x1400051a0
mov r8d, eax
lea rdx, [rbp + 0x290]
lea rcx, [rsp + 0x28]
call fcn.140005460
lea rcx, [rbp]
call fcn.140028550
call fcn.140006b4c
mov rcx, rax
test rax, rax
jne 0x1400051df
mov ecx, 0x80004005
call fcn.140003460
int3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x68], rax
mov r9d, dword [rsp + 0x48]
lea r8, [rbp]
lea rdx, str.._s_x_
lea rcx, [rsp + 0x68]
call fcn.1400045d0
lea rcx, [rbp - 0x48]
call fcn.140007754
nop
xor r8d, r8d
mov rbx, qword [rsp + 0x28]
mov rdx, rbx
lea rcx, [rbp - 0x48]
call fcn.140007bc0
test eax, eax
je 0x1400053b3
nop
lea rcx, [rbp - 0x48]
call fcn.140007f24
mov dword [rsp + 0x30], eax
lea rcx, [rbp - 0x48]
call fcn.140008570
test eax, eax
jne 0x1400053a8
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x48]
call fcn.1400080cc
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x1400052bb
cmp dword [rbx + 0x10], 0
jl 0x1400052ac
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x1400052ac
call fcn.140003480
mov rdi, rax
mov ecx, esi
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x14000529c
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rdi + 0x18]
mov qword [rsp + 0x28], rax
mov rdi, qword [rsp + 0x38]
jmp 0x1400052bb
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x28]
call fcn.140005460
nop
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400052d9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rsp + 0x68]
mov r8d, dword [rax - 0x10]
lea rdx, [rsp + 0x78]
lea rcx, [rsp + 0x28]
call fcn.140004ad0
nop
movzx r8d, word [rdi]
mov r9, qword [rax]
lea rdx, str._c:_s
lea rcx, [rsp + 0x40]
call fcn.1400045d0
nop
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140005329
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdi, qword [rsp + 0x40]
mov rcx, rdi
call fcn.140002570
test eax, eax
jne 0x14000539e
lea edx, [rax + 0x10]
lea rcx, [rbp - 0x48]
mov rax, qword [rbp - 0x48]
call qword [rax + 0x70]
mov rbx, qword [rsp + 0x28]
mov rcx, rbx
test eax, eax
je 0x14000535b
call fcn.140001fb0
jmp 0x1400053a3
mov edx, 0x80
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x14000538d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
mov rdx, rdi
lea rcx, str.Failed_to_delete___s___error_code___d._n
call fcn.1400059e0
jmp 0x1400053a3
mov rdx, rdi
lea rcx, str.Delete___s__successfully._n
call fcn.1400059e0
jmp 0x1400053a3
mov rbx, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x38]
cmp dword [rsp + 0x30], 0
jne 0x140005230
lea rcx, [rbp - 0x48]
call fcn.140007b48
nop
lea rcx, [rbp - 0x48]
call fcn.1400079c4
nop
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400053e6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x28]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140005405
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x140005423
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
nop
lea rcx, [rbp - 0x80]
call fcn.1400079c4
mov eax, dword [rsp + 0x4c]
mov rcx, qword [rbp + 0x4e0]
xor rcx, rsp
call fcn.140025540
mov rbx, qword [rsp + 0x620]
add rsp, 0x5f0
pop rdi
pop rsi
pop rbp
ret