Function at 0x51370d
Capabilities:
Move file

Disassembly:
push 0x730
mov eax, 0x563157
call fcn.004cd176
mov ebx, ecx
mov dword [ebp - 0x730], ebx
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
push esi
push edi
push str.RobustFileOps::MoveFile:__F____s_______s_
push 3
mov dword [ebp - 0x728], eax
call fcn.00511709
lea eax, [ebx + 0x2c]
mov dword [ebp - 0x72c], 0xa
mov ecx, eax
mov dword [ebp - 0x73c], eax
call fcn.00530183
xor ebx, ebx
push ebx
push eax
call fcn.00513ecc
cmp eax, 0x102
je 0x513793
push esi
push edi
push str.RobustFileOps::MoveFile:_Shutdown_event_set__abandoning_MoveFileEx_of_new_sourceFilePath___s__to_destinationFilePath___s_.
push 0x9c
lea ecx, [ebp - 0x398]
call fcn.00510647
push 0x5d6094
lea eax, [ebp - 0x398]
push eax
call fcn.004cea74
cmp dword [edi + 0x10], ebx
mov byte [ebp - 0x721], bl
sete al
test al, al
je 0x513828
push esi
call fcn.0053926c
push 0x38
call fcn.00409735
pop ecx
mov dword [ebp - 0x734], eax
mov dword [ebp - 4], ebx
test eax, eax
je 0x5137cd
push esi
push edi
mov ecx, eax
call fcn.00512640
mov ebx, eax
mov dword [ebp - 0x738], ebx
mov dword [ebp - 0x734], 0x93
test ebx, ebx
je 0x5137e5
lock inc dword [ebx + 4]
mov ecx, dword [ebp - 0x730]
lea eax, [ebp - 0x738]
push eax
mov dword [ebp - 4], 1
call fcn.005141fe
mov ecx, dword [ebp - 0x738]
mov dword [ebp - 4], 2
test ecx, ecx
je 0x513814
call fcn.00513b59
push str.RobustFileOps::MoveFile:_MoveFileEx_succeeded
push 3
call fcn.005117f3
call fcn.004cd128
ret 0xc
push dword [ebp - 0x728]
mov ecx, dword [ebp - 0x730]
push esi
call fcn.00513471
mov ecx, ebx
mov al, cl
test al, al
jne 0x5137ad
lea eax, [ebp - 0x72c]
inc ecx
push eax
lea eax, [ebp - 0x728]
mov dword [ebp - 0x734], ecx
push eax
push esi
push edi
push str.RobustFileOps::MoveFile:_Moving_new_sourceFilePath___s__to_destinationFilePath___s_:_Attempt__d_of__d.
push 3
mov dword [ebp - 0x728], ecx
call fcn.005120e1
cmp dword [esi + 0x14], 8
jb 0x513879
mov ecx, dword [esi]
jmp 0x51387b
mov ecx, esi
cmp dword [edi + 0x14], 8
jb 0x513885
mov eax, dword [edi]
jmp 0x513887
mov eax, edi
push 1
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
je 0x51389f
mov al, 1
mov byte [ebp - 0x721], al
jmp 0x5138f3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x728], eax
lea eax, [ebp - 0x728]
push eax
push esi
push edi
push str.RobustFileOps::MoveFile:_MoveFileEx_failed_to_move_new_sourceFilePath___s__to_destinationFilePath___s_:_LastError:__d
push 3
call fcn.00512195
mov ecx, dword [ebp - 0x730]
push esi
call fcn.005130b3
test al, al
jne 0x5138ed
mov ecx, dword [ebp - 0x73c]
call fcn.00530183
push 0x1f4
push eax
call fcn.00513ecc
cmp eax, 0x102
jne 0x51394e
mov al, byte [ebp - 0x721]
mov ecx, dword [ebp - 0x734]
cmp ecx, dword [ebp - 0x72c]
jb 0x51383e
test al, al
jne 0x5137ad
lea eax, [ebp - 0x72c]
push eax
push eax
push esi
push edi
push str.RobustFileOps::MoveFile:_FAILED__MoveFileEx_failed_to_move_new_sourceFilePath___s__to_destinationFilePath___s_._All__d_of__d_attempts_exhausted_
push 3
call fcn.0051228f
push esi
push edi
push str.RobustFileOps::MoveFile:_Failed_to_replace_existing_file:___s__with___s_:
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xf
lea ecx, [ebp - 0x720]
call fcn.005105ae
push 0x5d6094
lea eax, [ebp - 0x720]
jmp 0x51378d
push esi
push edi
push str.RobustFileOps::MoveFile:_Shutdown_event_set__abandoning_MoveFileEx_of_new_sourceFilePath___s__to_destinationFilePath___s___after_failure_
push 0x9c
lea ecx, [ebp - 0x398]
call fcn.00510775
jmp 0x513782