Function at 0x40a140
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x38
mov esi, edx
mov edi, ecx
mov eax, dword [0x440014]
xor eax, ebp
mov dword [esp + 0x30], eax
mov ecx, edx
call fcn.00403b70
mov ebx, eax
test eax, eax
jne 0x40a1b8
mov eax, esp
push eax
push edi
call fcn.0041a5f6
add esp, 8
test eax, eax
je 0x40a1cd
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40a352
call fcn.00419e69
push dword [eax]
push edi
push str.rename_file:_failed_to_read_file_status_info:__S__err:__d
push 0x4424e4
call fcn.00410520
add esp, 0x10
mov ebx, 6
mov ecx, dword [esp + 0x30]
xor ecx, ebp
call fcn.00412e03
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 0x40a24d
mov ecx, dword [0x4426f0]
mov edx, dword [0x440c90]
mov ebx, dword fs:[0x2c]
mov edx, dword [ebx + edx*4]
mov edx, dword [edx + 4]
cmp byte [ebp + 8], 0
je 0x40a233
movzx eax, ax
cmp eax, 0x4000
je 0x40a233
cmp ecx, edx
jg 0x40a3d8
call fcn.00419e69
push dword [eax]
push edi
push str.rename_file:_path_present__but_not_a_file:__S__err:__d
push 0x4424e4
call fcn.00410520
add esp, 0x10
mov ebx, 0x30
jmp 0x40a1b8
cmp ecx, edx
jg 0x40a41b
push str.rename_file:_proceeding_to_rename_the_directory
push 0x4424e4
call fcn.00410520
add esp, 8
push 0
push esi
call fcn.0041d88c
add esp, 8
test eax, eax
je 0x40a2b4
push esi
push edi
call fcn.0041e256
add esp, 8
test eax, eax
je 0x40a34b
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40a395
call fcn.00419e69
push dword [eax]
push esi
push edi
push str.rename_file:_failed_to_rename_file___src:__S__dst:_S__err:__d
push 0x4424e4
call fcn.00410520
add esp, 0x14
mov ebx, 7
jmp 0x40a1b8
push 0x180
push esi
call fcn.0041db14
add esp, 8
push esi
call fcn.0041e22e
add esp, 4
test eax, eax
je 0x40a25c
mov ebx, eax
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40a45e
call fcn.00419e69
push dword [eax]
push ebx
push esi
push str.ensure_remove:_failed_to_remove_file:__S__rv:__d__err:__d
push 0x4424e4
call fcn.00410520
add esp, 0x14
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40a4a1
push esi
push str.rename_file:_destination_file_exists_and_could_not_be_removed:__S
push 0x4424e4
call fcn.00410520
add esp, 0xc
mov ebx, 0x3e
jmp 0x40a1b8
xor ebx, ebx
jmp 0x40a1b8
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x40a199
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x40a199
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x40a28f
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x40a28f
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x40a212
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x40a212
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x40a23b
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x40a23b
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x40a2f2
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x40a2f2
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x40a32e
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x40a32e