Function at 0x14005f920
Capabilities:
Copy file
Move file
Set file attributes

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x460
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov qword [rsp + 0x498], rbx
mov rax, qword [0x14012ce40]
xor rax, rsp
mov qword [rsp + 0x450], rax
mov rbx, r8
mov rdi, rcx
mov rsi, qword [rsp + 0x4a0]
xor ebp, ebp
mov word [rsp + 0x240], bp
test rdx, rdx
je 0x14005f980
mov r8, rdx
mov edx, 0x104
lea rcx, [rsp + 0x240]
call fcn.1400b1b70
mov rdx, rdi
lea rcx, [rsp + 0x240]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
mov word [rsp + 0x30], bp
test rbx, rbx
je 0x14005f9ad
mov r8, rbx
mov edx, 0x104
lea rcx, [rsp + 0x30]
call fcn.1400b1b70
mov rdx, rdi
lea rcx, [rsp + 0x30]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x240]
call fcn.14005fcb0
test eax, eax
jg 0x14005fa27
mov rax, qword [0x1401370f0]
test rax, rax
jne 0x14005fa04
mov ecx, 0x310
call fcn.140084d88
mov qword [rsp + 0x20], rax
test rax, rax
je 0x14005f9fb
mov rcx, rax
call fcn.140050830
jmp 0x14005f9fd
xor eax, eax
mov qword [0x1401370f0], rax
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x240]
lea rdx, str.CopyFileVersionChk____s_is_not_newer_than__s
mov rcx, rax
call fcn.140050c00
xor eax, eax
jmp 0x14005fbde
mov rax, qword [0x1401370f0]
test rax, rax
jne 0x14005fa5a
mov ecx, 0x310
call fcn.140084d88
mov qword [rsp + 0x20], rax
test rax, rax
je 0x14005fa51
mov rcx, rax
call fcn.140050830
jmp 0x14005fa53
xor eax, eax
mov qword [0x1401370f0], rax
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x240]
lea rdx, str.CopyFile____s_____s
mov rcx, rax
call fcn.140050c00
mov edx, 0x20
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
xor r8d, r8d
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x240]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x14005fbd6
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov rax, qword [0x1401370f0]
test rax, rax
jne 0x14005fadf
mov ecx, 0x310
call fcn.140084d88
mov qword [rsp + 0x20], rax
test rax, rax
je 0x14005fad6
mov rcx, rax
call fcn.140050830
jmp 0x14005fad8
xor eax, eax
mov qword [0x1401370f0], rax
mov r9d, ebx
lea r8, str.CopyFile___failed__gle___d_
mov edx, ebx
mov rcx, rax
call fcn.140050e40
cmp ebx, 2
je 0x14005fbd2
cmp ebx, 3
je 0x14005fbd2
mov r8d, 1
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x240]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x14005fbd6
mov rax, qword [0x1401370f0]
test rax, rax
jne 0x14005fb59
mov ecx, 0x310
call fcn.140084d88
mov qword [rsp + 0x20], rax
test rax, rax
je 0x14005fb50
mov rcx, rax
call fcn.140050830
jmp 0x14005fb52
xor eax, eax
mov qword [0x1401370f0], rax
lea r8, [rsp + 0x240]
lea rdx, str.File_moved_to_REBOOT_temp_location.
mov rcx, rax
call fcn.140050c00
mov r8d, 4
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x240]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
mov ebp, 1
mov rax, qword [0x1401370f0]
test rax, rax
jne 0x14005fbc1
mov ecx, 0x310
call fcn.140084d88
mov qword [rsp + 0x20], rax
test rax, rax
je 0x14005fbb8
mov rcx, rax
call fcn.140050830
jmp 0x14005fbba
xor eax, eax
mov qword [0x1401370f0], rax
lea rdx, str._____REBOOT_NEEDED___
mov rcx, rax
call fcn.140050c00
jmp 0x14005fbd6
mov eax, ebx
jmp 0x14005fbde
or dword [rsi], ebp
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [rsp + 0x450]
xor rcx, rsp
call fcn.1400b09d0
mov rbx, qword [rsp + 0x498]
add rsp, 0x460
pop rdi
pop rsi
pop rbp
ret