Function at 0x14018e8c0
Capabilities:
Move file

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0xa20]
sub rsp, 0xb20
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov rax, qword [0x140334860]
xor rax, rsp
mov qword [rbp + 0xa10], rax
mov r14, r9
mov rbx, r8
mov rdi, rdx
mov r15, rcx
mov r9, r8
mov r8, rdx
lea rdx, str.RobustFileOps::MoveFile:__F____s_______s_
mov ecx, 3
call fcn.14018bdf4
mov dword [rsp + 0x30], 0xa
lea rcx, [r15 + 0x58]
call fcn.1401d47f4
xor edx, edx
mov rcx, rax
call fcn.14018f1cc
cmp eax, 0x102
je 0x14018e968
mov qword [rsp + 0x20], rbx
mov r9, rdi
lea r8, str.RobustFileOps::MoveFile:_Shutdown_event_set__abandoning_MoveFileEx_of_new_sourceFilePath___s__to_destinationFilePath___s_.
mov edx, 0x9c
lea rcx, [rsp + 0x60]
call fcn.140189ddc
lea rdx, [0x140294a58]
lea rcx, [rsp + 0x60]
call fcn.1401377ec
int3
xor sil, sil
cmp qword [rdi + 0x10], 0
sete al
test al, al
je 0x14018e984
mov rcx, rbx
call fcn.1401c3c30
jmp 0x14018eb0a
mov r8, r14
mov rdx, rbx
mov rcx, r15
call fcn.14018e538
xor r14d, r14d
test sil, sil
jne 0x14018eb0a
inc r14d
mov dword [rsp + 0x34], r14d
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x34]
mov qword [rsp + 0x20], rax
mov r9, rbx
mov r8, rdi
lea rdx, str.RobustFileOps::MoveFile:_Moving_new_sourceFilePath___s__to_destinationFilePath___s_:_Attempt__d_of__d.
mov ecx, 3
call fcn.14018c89c
cmp qword [rbx + 0x18], 8
jb 0x14018e9dd
mov rdx, qword [rbx]
jmp 0x14018e9e0
mov rdx, rbx
cmp qword [rdi + 0x18], 8
jb 0x14018e9ec
mov rcx, qword [rdi]
jmp 0x14018e9ef
mov rcx, rdi
mov r8d, 1
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
je 0x14018ea04
mov sil, 1
jmp 0x14018ea5b
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x38], eax
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
mov r9, rbx
mov r8, rdi
lea rdx, str.RobustFileOps::MoveFile:_MoveFileEx_failed_to_move_new_sourceFilePath___s__to_destinationFilePath___s_:_LastError:__d
mov ecx, 3
call fcn.14018c9d4
mov rdx, rbx
mov rcx, r15
call fcn.14018df48
test al, al
jne 0x14018ea5b
lea rcx, [r15 + 0x58]
call fcn.1401d47f4
mov edx, 0x1f4
mov rcx, rax
call fcn.14018f1cc
cmp eax, 0x102
jne 0x14018ea67
cmp r14d, dword [rsp + 0x30]
jae 0x14018ea9b
jmp 0x14018e995
mov qword [rsp + 0x20], rbx
mov r9, rdi
lea r8, str.RobustFileOps::MoveFile:_Shutdown_event_set__abandoning_MoveFileEx_of_new_sourceFilePath___s__to_destinationFilePath___s___after_failure_
mov edx, 0x9c
lea rcx, [rbp + 0x2f0]
call fcn.140189f44
lea rdx, [0x140294a58]
lea rcx, [rbp + 0x2f0]
call fcn.1401377ec
int3
test sil, sil
jne 0x14018eb0a
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
mov r9, rbx
mov r8, rdi
lea rdx, str.RobustFileOps::MoveFile:_FAILED__MoveFileEx_failed_to_move_new_sourceFilePath___s__to_destinationFilePath___s_._All__d_of__d_attempts_exhausted_
mov ecx, 3
call fcn.14018caf4
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rdi
lea r9, str.RobustFileOps::MoveFile:_Failed_to_replace_existing_file:___s__with___s_:
mov edx, 0xf
lea rcx, [rbp + 0x680]
call fcn.140189d20
lea rdx, [0x140294a58]
lea rcx, [rbp + 0x680]
call fcn.1401377ec
int3
mov ecx, 0x50
call fcn.14000e5ac
mov qword [rsp + 0x40], rax
test rax, rax
je 0x14018eb2d
mov r8, rbx
mov rdx, rdi
mov rcx, rax
call fcn.14018d1c0
nop
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x48], 0x93
test rax, rax
je 0x14018eb43
lock inc dword [rax + 8]
lea rdx, [rsp + 0x40]
mov rcx, r15
call fcn.14018fbdc
nop
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x14018eb78
or eax, 0xffffffff
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x14018eb78
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
nop
lea rdx, str.RobustFileOps::MoveFile:_MoveFileEx_succeeded
mov ecx, 3
call fcn.14018befc
mov rcx, qword [rbp + 0xa10]
xor rcx, rsp
call fcn.140135130
add rsp, 0xb20
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret