Function at 0x4cf67a
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x654b34]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 0xc]
mov eax, esi
push edi
mov edi, dword [ebp + 8]
push 8
pop ebx
cmp dword [esi + 0x14], ebx
jb 0x4cf69f
mov eax, dword [esi]
mov ecx, edi
cmp dword [edi + 0x14], ebx
jb 0x4cf6a8
mov ecx, dword [edi]
push eax
push ecx
push str.filesystem__ForceMoveFile__from_s__target_s
call fcn.004d159b
push esi
push edi
call fcn.004d0843
add esp, 0x14
test eax, eax
je 0x4cf6de
cmp dword [edi + 0x14], ebx
jb 0x4cf6c9
mov edi, dword [edi]
push edi
push str.filesystem__ForceMoveFile_file_path_are_same:_s
call fcn.004d15b8
pop ecx
xor eax, eax
pop ecx
inc eax
jmp 0x4cf818
mov eax, esi
cmp dword [esi + 0x14], ebx
jb 0x4cf6e7
mov eax, dword [esi]
mov ecx, edi
cmp dword [edi + 0x14], ebx
jb 0x4cf6f0
mov ecx, dword [edi]
push 3
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov ebx, eax
test ebx, ebx
jne 0x4cf816
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x20
je 0x4cf731
cmp eax, 5
je 0x4cf731
cmp dword [esi + 0x14], 8
jb 0x4cf71c
mov esi, dword [esi]
cmp dword [edi + 0x14], 8
jb 0x4cf724
mov edi, dword [edi]
push esi
push edi
push eax
push str.filesystem__ForceMoveFile_failed_error_d_from_s__target_s
jmp 0x4cf80e
cmp dword [esi + 0x14], 8
mov ecx, esi
jb 0x4cf73b
mov ecx, dword [esi]
push ecx
push eax
push str.filesystem__ForceMoveFile_first_try_failed__LastError_d__try_rename_existing_file_s
call fcn.004d15b8
add esp, 0xc
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [esi + 0x14], 8
mov ecx, esi
jb 0x4cf759
mov ecx, dword [esi]
push eax
push ecx
lea eax, [ebp - 0x1c]
push str._s._d.tmp
push eax
call fcn.004d2a12
add esp, 0x10
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [ebp - 8], 8
lea eax, [ebp - 0x1c]
mov ecx, esi
cmovae eax, dword [ebp - 0x1c]
cmp dword [esi + 0x14], 8
jb 0x4cf789
mov ecx, dword [esi]
push 1
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [ebp - 8], 8
lea edx, [ebp - 0x1c]
mov dword [ebp - 0x24], eax
mov ecx, esi
cmovae edx, dword [ebp - 0x1c]
cmp dword [esi + 0x14], 8
jb 0x4cf7b3
mov ecx, dword [esi]
push eax
push edx
push ecx
push ebx
push str.filesystem__ForceMoveFile_rename_result_d__from_s__to_s__LastError_d
call fcn.004d159b
add esp, 0x14
test ebx, ebx
jne 0x4cf827
cmp dword [ebp - 0x24], 5
jne 0x4cf7dc
lea eax, [ebp - 0x1c]
push eax
call fcn.004d03a7
pop ecx
test eax, eax
je 0x4cf827
lea ecx, [ebp - 0x1c]
call fcn.00417a51
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x20], eax
cmp eax, 0x64
jl 0x4cf74f
cmp dword [esi + 0x14], 8
jb 0x4cf7fc
mov esi, dword [esi]
cmp dword [edi + 0x14], 8
jb 0x4cf804
mov edi, dword [edi]
push dword [ebp - 0x24]
push esi
push edi
push str.filesystem__ForceMoveFile_rename_failed_from_s_to_s_error_d
call fcn.004d157e
add esp, 0x10
mov eax, ebx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0056ac5f
leave
ret
lea ecx, [ebp - 0x1c]
call fcn.00417a51
test ebx, ebx
je 0x4cf7f4
cmp dword [esi + 0x14], 8
mov ecx, esi
jb 0x4cf83d
mov ecx, dword [esi]
cmp dword [edi + 0x14], 8
mov eax, edi
jb 0x4cf847
mov eax, dword [edi]
push 3
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [esi + 0x14], 8
jb 0x4cf861
mov esi, dword [esi]
cmp dword [edi + 0x14], 8
jb 0x4cf869
mov edi, dword [edi]
push eax
push esi
push edi
push ebx
push str.filesystem__ForceMoveFile_final_result_d_from_s_to_s_error_d
call fcn.004d15b8
add esp, 0x14
jmp 0x4cf816