Function at 0x403fb3
Capabilities:
Check if file exists
Delete directory
Move file
Set file attributes

Disassembly:
push 0xa8
mov eax, 0x55c973
call fcn.0055b22a
mov edi, ecx
mov dword [ebp - 0xa0], edi
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x64]
mov esi, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0xa4], esi
mov dword [ebp - 0xa8], eax
mov byte [eax], 1
call fcn.0041d5da
lea ecx, [ebp - 0x3c]
call fcn.0041c570
push ebx
mov dword [ebp - 4], ebx
lea ecx, [ebp - 0x64]
push dword [esi]
call fcn.0041d8f3
test al, al
je 0x404275
cmp dword [edi + 0x48], 2
je 0x40430b
cmp dword [edi + 0x48], ebx
jne 0x404149
mov ecx, esi
call fcn.0041c9ae
mov ecx, eax
lea edi, [ebp - 0x28]
xor eax, eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ecx + 1]
push eax
lea eax, [ebp - 0xb4]
mov ecx, esi
push eax
call fcn.00402f34
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x28]
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
push dword [eax + 4]
push dword [eax]
call fcn.0041c504
mov byte [ebp - 4], bl
push dword [ebp - 0xb4]
call fcn.0054b686
mov eax, dword [ebp - 0x4c]
pop ecx
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0xa0]
mov dword [ebp - 0x18], eax
mov esi, dword [ecx + 0x50]
movzx edx, byte [ecx + 0x3d]
neg edx
mov eax, dword [esi]
sbb edx, edx
mov edi, dword [eax + 0x14]
lea eax, [ecx + 0xd8]
and edx, eax
lea eax, [ecx + 0xc0]
movzx ecx, byte [ecx + 0xcb]
neg ecx
sbb ecx, ecx
and ecx, eax
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0xa0]
push edx
push ecx
mov ecx, edi
push dword [eax + 0x74]
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x28]
push esi
call dword [0x5613b4]
call edi
test eax, eax
je 0x4040cd
mov ebx, eax
jmp 0x404117
mov eax, dword [ebp - 0x2c]
sub eax, ebx
je 0x404134
sub eax, 1
je 0x404125
sub eax, 1
je 0x404117
sub eax, 1
je 0x40410a
sub eax, 1
je 0x4040fb
sub eax, 1
je 0x4040f4
mov ebx, 0x80004005
jmp 0x404117
mov ebx, 0x80004004
jmp 0x404117
mov edi, dword [ebp - 0xa0]
mov dword [edi + 0x48], 3
jmp 0x40413a
mov eax, dword [ebp - 0xa0]
mov dword [eax + 0x48], 2
push dword [ebp - 0x28]
call fcn.0054b686
pop ecx
jmp 0x40430b
mov edi, dword [ebp - 0xa0]
mov dword [edi + 0x48], 1
jmp 0x40413a
mov edi, dword [ebp - 0xa0]
push dword [ebp - 0x28]
call fcn.0054b686
mov esi, dword [ebp - 0xa4]
pop ecx
cmp dword [edi + 0x48], 3
jne 0x404183
mov ecx, esi
call fcn.004024de
test al, al
jne 0x404177
push esi
push ecx
mov ecx, edi
call fcn.00403a07
mov ebx, eax
test ebx, ebx
jne 0x40430b
mov ebx, 0x80004005
jmp 0x40430b
mov byte [edi + 0x174], 1
jmp 0x404303
cmp dword [edi + 0x48], 4
jne 0x4041ff
xor eax, eax
lea edi, [ebp - 0x1c]
stosd dword es:[edi], eax
lea ecx, [ebp - 0x1c]
push esi
stosd dword es:[edi], eax
stosd dword es:[edi], eax
call fcn.0041c61b
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 2
call fcn.004024de
test al, al
jne 0x4041b9
push esi
push ecx
mov ecx, dword [ebp - 0xa0]
call fcn.00403a07
jmp 0x4041df
push dword [ebp - 0x1c]
push dword [esi]
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
jne 0x4041f2
call fcn.0041dffe
push esi
lea ecx, [ebp - 0x1c]
push ecx
push ecx
mov ecx, dword [ebp - 0xa0]
push eax
call fcn.00403b13
mov ebx, eax
test ebx, ebx
jne 0x4041ea
mov ebx, 0x80004005
push dword [ebp - 0x1c]
jmp 0x40411a
push dword [ebp - 0x1c]
call fcn.0054b686
jmp 0x404302
mov eax, dword [ebp - 0x44]
shr eax, 4
test al, 1
je 0x404226
push dword [esi]
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
jne 0x404303
call fcn.0041dffe
push esi
push str.Cannot_delete_output_folder
jmp 0x40425e
mov ecx, dword [esi]
call fcn.0041ddcd
test al, al
je 0x404303
mov ecx, dword [esi]
call fcn.0041ce55
test al, al
jne 0x404303
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x404303
call fcn.0041dffe
push esi
push str.Cannot_delete_output_file
push eax
mov ecx, edi
call fcn.00403a72
test eax, eax
je 0x40430b
mov ebx, eax
jmp 0x40430b
mov ecx, dword [esi]
call fcn.0041e9a8
mov dword [ebp - 0xa4], eax
test eax, eax
js 0x404303
cmp word [ecx + eax*2 + 2], bx
je 0x404303
xor eax, eax
lea edi, [ebp - 0x28]
stosd dword es:[edi], eax
lea ecx, [ebp - 0x28]
push esi
stosd dword es:[edi], eax
stosd dword es:[edi], eax
call fcn.0041c61b
mov eax, dword [ebp - 0xa4]
mov byte [ebp - 4], 3
mov esi, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x24]
jae 0x4042b9
xor ecx, ecx
mov dword [ebp - 0x24], eax
mov word [esi + eax*2], cx
lea ecx, [ebp - 0x9c]
call fcn.0041d5da
lea ecx, [ebp - 0x74]
call fcn.0041c570
push ebx
push esi
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 4
call fcn.0041d8f3
test al, al
je 0x4042f3
mov eax, dword [ebp - 0x7c]
test al, 1
je 0x4042f3
and eax, 0xfffffffe
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push dword [ebp - 0x74]
call fcn.0054b686
push esi
call fcn.0054b686
pop ecx
pop ecx
mov eax, dword [ebp - 0xa8]
mov byte [eax], bl
push dword [ebp - 0x3c]
call fcn.0054b686
pop ecx
mov eax, ebx
call fcn.0055b1d9
ret 8