Function at 0x40a5b0
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x38
mov eax, dword [0x43d00c]
mov edi, ecx
mov ecx, edx
mov esi, edx
xor eax, ebp
mov dword [esp + 0x30], eax
call fcn.00403d10
mov ebx, eax
test eax, eax
jne 0x40a628
mov eax, esp
push eax
push edi
call fcn.0041a5d1
add esp, 8
test eax, eax
je 0x40a63d
mov eax, dword [0x43fc58]
mov ecx, dword [0x43db2c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40a7a1
call fcn.00419e3b
push dword [eax]
push edi
push str.rename_file:_failed_to_read_file_status_info:__S__err:__d
push 0x43f844
call fcn.0040e940
add esp, 0x10
mov ebx, 6
mov ecx, dword [esp + 0x30]
xor ecx, ebp
call fcn.00412bfe
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
movzx eax, word [esp + 6]
and eax, 0xf000
cmp eax, 0x8000
je 0x40a69c
mov cl, byte [ebp + 8]
movzx eax, ax
xor cl, 1
cmp eax, 0x4000
mov eax, dword [0x43fc58]
mov edx, dword fs:[0x2c]
sete bl
or bl, cl
mov ecx, dword [0x43db2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40a7e5
test bl, bl
je 0x40a82c
push str.rename_file:_proceeding_to_rename_the_directory
push 0x43f844
call fcn.0040e940
add esp, 8
push 0
push esi
call fcn.0041ce70
add esp, 8
test eax, eax
je 0x40a703
push esi
push edi
call fcn.0041d8de
add esp, 8
test eax, eax
je 0x40a79a
mov eax, dword [0x43fc58]
mov ecx, dword [0x43db2c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40a850
call fcn.00419e3b
push dword [eax]
push esi
push edi
push str.rename_file:_failed_to_rename_file___src:__S__dst:_S__err:__d
push 0x43f844
call fcn.0040e940
add esp, 0x14
mov ebx, 7
jmp 0x40a628
push 0x180
push esi
call fcn.0041d103
add esp, 8
push esi
call fcn.0041d8b6
add esp, 4
test eax, eax
je 0x40a6ab
mov ebx, eax
mov eax, dword [0x43fc58]
mov ecx, dword [0x43db2c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40a894
call fcn.00419e3b
push dword [eax]
push ebx
push esi
push str.ensure_remove:_failed_to_remove_file:__S__rv:__d__err:__d
push 0x43f844
call fcn.0040e940
add esp, 0x14
mov eax, dword [0x43fc58]
mov ecx, dword [0x43db2c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40a8d8
push esi
push str.rename_file:_destination_file_exists_and_could_not_be_removed:__S
push 0x43f844
call fcn.0040e940
add esp, 0xc
mov ebx, 0x3e
jmp 0x40a628
xor ebx, ebx
jmp 0x40a628
push 0x43fc58
call fcn.0041244a
add esp, 4
mov eax, dword [0x43fc58]
cmp eax, 0xffffffff
jne 0x40a609
mov dword [0x43f844], 0
push 0x40a550
call fcn.004126b0
add esp, 4
push 0x43fc58
call fcn.0041249c
add esp, 4
jmp 0x40a609
push 0x43fc58
call fcn.0041244a
add esp, 4
mov eax, dword [0x43fc58]
cmp eax, 0xffffffff
jne 0x40a682
mov dword [0x43f844], 0
push 0x40a550
call fcn.004126b0
add esp, 4
push 0x43fc58
call fcn.0041249c
add esp, 4
test bl, bl
jne 0x40a68a
call fcn.00419e3b
push dword [eax]
push edi
push str.rename_file:_path_present__but_not_a_file:__S__err:__d
push 0x43f844
call fcn.0040e940
add esp, 0x10
mov ebx, 0x30
jmp 0x40a628
push 0x43fc58
call fcn.0041244a
add esp, 4
mov eax, dword [0x43fc58]
cmp eax, 0xffffffff
jne 0x40a6de
mov dword [0x43f844], 0
push 0x40a550
call fcn.004126b0
add esp, 4
push 0x43fc58
call fcn.0041249c
add esp, 4
jmp 0x40a6de
push 0x43fc58
call fcn.0041244a
add esp, 4
mov eax, dword [0x43fc58]
cmp eax, 0xffffffff
jne 0x40a741
mov dword [0x43f844], 0
push 0x40a550
call fcn.004126b0
add esp, 4
push 0x43fc58
call fcn.0041249c
add esp, 4
jmp 0x40a741
push 0x43fc58
call fcn.0041244a
add esp, 4
mov eax, dword [0x43fc58]
cmp eax, 0xffffffff
jne 0x40a77d
mov dword [0x43f844], 0
push 0x40a550
call fcn.004126b0
add esp, 4
push 0x43fc58
call fcn.0041249c
add esp, 4
jmp 0x40a77d