Function at 0x40ab30
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 [0x43e00c]
xor eax, ebp
mov dword [esp + 0x30], eax
mov ecx, edx
call fcn.00404510
mov ebx, eax
test eax, eax
jne 0x40aba8
mov eax, esp
push eax
push edi
call fcn.0041a37f
add esp, 8
test eax, eax
je 0x40abbd
mov eax, dword [0x4405f4]
mov ecx, dword [0x43eb8c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40ad41
call fcn.004122fc
push dword [eax]
push edi
push str.rename_file:_failed_to_read_file_status_info:__S__err:__d
push 0x4403e8
call fcn.00410340
add esp, 0x10
mov ebx, 6
mov ecx, dword [esp + 0x30]
xor ecx, ebp
call fcn.00412b41
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 0x40ac3c
movzx edx, ax
mov eax, dword [0x43eb8c]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x4405f4]
mov ecx, dword [ecx + 4]
cmp edx, 0x4000
je 0x40ac22
cmp byte [ebp + 8], 0
je 0x40ac22
cmp eax, ecx
jg 0x40adc7
call fcn.004122fc
push dword [eax]
push edi
push str.rename_file:_path_present__but_not_a_file:__S__err:__d
push 0x4403e8
call fcn.00410340
add esp, 0x10
mov ebx, 0x30
jmp 0x40aba8
cmp eax, ecx
jg 0x40ae0a
push str.rename_file:_proceeding_to_rename_the_directory
push 0x4403e8
call fcn.00410340
add esp, 8
push 0
push esi
call fcn.0041ce35
add esp, 8
test eax, eax
je 0x40aca3
push esi
push edi
call fcn.0041d836
add esp, 8
test eax, eax
je 0x40ad3a
mov eax, dword [0x4405f4]
mov ecx, dword [0x43eb8c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40ad84
call fcn.004122fc
push dword [eax]
push esi
push edi
push str.rename_file:_failed_to_rename_file___src:__S__dst:_S__err:__d
push 0x4403e8
call fcn.00410340
add esp, 0x14
mov ebx, 7
jmp 0x40aba8
push 0x180
push esi
call fcn.0041d0c8
add esp, 8
push esi
call fcn.0041d80e
add esp, 4
test eax, eax
je 0x40ac4b
mov ebx, eax
mov eax, dword [0x4405f4]
mov ecx, dword [0x43eb8c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40ae4d
call fcn.004122fc
push dword [eax]
push ebx
push esi
push str.ensure_remove:_failed_to_remove_file:__S__rv:__d__err:__d
push 0x4403e8
call fcn.00410340
add esp, 0x14
mov eax, dword [0x4405f4]
mov ecx, dword [0x43eb8c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40ae90
push esi
push str.rename_file:_destination_file_exists_and_could_not_be_removed:__S
push 0x4403e8
call fcn.00410340
add esp, 0xc
mov ebx, 0x3e
jmp 0x40aba8
xor ebx, ebx
jmp 0x40aba8
push 0x4405f4
call fcn.00412337
add esp, 4
cmp dword [0x4405f4], 0xffffffff
jne 0x40ab89
mov dword [0x4403e8], 0
push 0x40ab00
call fcn.004125ac
add esp, 4
push 0x4405f4
call fcn.00412389
add esp, 4
jmp 0x40ab89
push 0x4405f4
call fcn.00412337
add esp, 4
cmp dword [0x4405f4], 0xffffffff
jne 0x40ac7e
mov dword [0x4403e8], 0
push 0x40ab00
call fcn.004125ac
add esp, 4
push 0x4405f4
call fcn.00412389
add esp, 4
jmp 0x40ac7e
push 0x4405f4
call fcn.00412337
add esp, 4
cmp dword [0x4405f4], 0xffffffff
jne 0x40ac01
mov dword [0x4403e8], 0
push 0x40ab00
call fcn.004125ac
add esp, 4
push 0x4405f4
call fcn.00412389
add esp, 4
jmp 0x40ac01
push 0x4405f4
call fcn.00412337
add esp, 4
cmp dword [0x4405f4], 0xffffffff
jne 0x40ac2a
mov dword [0x4403e8], 0
push 0x40ab00
call fcn.004125ac
add esp, 4
push 0x4405f4
call fcn.00412389
add esp, 4
jmp 0x40ac2a
push 0x4405f4
call fcn.00412337
add esp, 4
cmp dword [0x4405f4], 0xffffffff
jne 0x40ace1
mov dword [0x4403e8], 0
push 0x40ab00
call fcn.004125ac
add esp, 4
push 0x4405f4
call fcn.00412389
add esp, 4
jmp 0x40ace1
push 0x4405f4
call fcn.00412337
add esp, 4
cmp dword [0x4405f4], 0xffffffff
jne 0x40ad1d
mov dword [0x4403e8], 0
push 0x40ab00
call fcn.004125ac
add esp, 4
push 0x4405f4
call fcn.00412389
add esp, 4
jmp 0x40ad1d