Function at 0x4083f0
Capabilities:
Check if file exists
Delete file
Set file attributes
Write file on windows

Disassembly:
sub esp, 0x408
mov eax, dword [0x460df4]
xor eax, esp
mov dword [esp + 0x404], eax
push ebx
push ebp
push esi
mov ebx, ecx
mov esi, 0x10
cmp dword [ebx + 0x74], esi
push edi
mov dword [esp + 0x10], 1
jb 0x408421
mov eax, dword [ebx + 0x60]
jmp 0x408424
lea eax, [ebx + 0x60]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x4084bd
cmp dword [ebx + 0x74], esi
jb 0x40843d
mov eax, dword [ebx + 0x60]
jmp 0x408440
lea eax, [ebx + 0x60]
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
je 0x40846c
cmp dword [ebx + 0x74], esi
jb 0x40845a
mov eax, dword [ebx + 0x60]
jmp 0x40845d
lea eax, [ebx + 0x60]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x408507
cmp dword [ebx + 0x74], esi
mov dword [esp + 0x10], 0
jb 0x40847e
mov eax, dword [ebx + 0x60]
jmp 0x408481
lea eax, [ebx + 0x60]
push eax
lea eax, [esp + 0x18]
push str.Can_not_delete:__s_n
push eax
call fcn.004340f9
lea eax, [esp + 0x20]
add esp, 0xc
lea edx, [eax + 1]
jmp 0x4084a0
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4084a0
mov ecx, dword [ebx + 4]
sub eax, edx
test ecx, ecx
je 0x408507
push ecx
push eax
push 1
lea ecx, [esp + 0x20]
push ecx
jmp 0x4084ff
cmp dword [ebx + 0x74], esi
jb 0x4084c7
mov eax, dword [ebx + 0x60]
jmp 0x4084ca
lea eax, [ebx + 0x60]
push eax
lea edx, [esp + 0x18]
push str.Can_not_find:__s_n
push edx
call fcn.004340f9
lea eax, [esp + 0x20]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4084e4
mov ecx, dword [ebx + 4]
sub eax, edx
test ecx, ecx
je 0x408507
push ecx
push eax
push 1
lea eax, [esp + 0x20]
push eax
call fcn.00433a0b
add esp, 0x10
mov esi, dword [ebx + 0xf8]
cmp esi, dword [ebx + 0xfc]
lea ebp, [ebx + 0xf4]
jbe 0x408520
call fcn.0043364c
mov edi, esi
mov esi, dword [ebx + 0xfc]
cmp dword [ebx + 0xf8], esi
jbe 0x408535
call fcn.0043364c
test ebp, ebp
je 0x408543
lea eax, [ebx + 0xf4]
cmp ebp, eax
je 0x408548
call fcn.0043364c
cmp edi, esi
je 0x408695
test ebp, ebp
jne 0x408559
call fcn.0043364c
cmp edi, dword [ebp + 8]
jb 0x408563
call fcn.0043364c
cmp dword [edi + 0x18], 0x10
lea esi, [edi + 4]
jb 0x408570
mov eax, dword [esi]
jmp 0x408572
mov eax, esi
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x40862d
cmp edi, dword [ebp + 8]
jb 0x40858b
call fcn.0043364c
cmp dword [edi + 0x18], 0x10
jb 0x408595
mov eax, dword [esi]
jmp 0x408597
mov eax, esi
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
je 0x4085c8
cmp edi, dword [ebp + 8]
jb 0x4085b1
call fcn.0043364c
cmp dword [edi + 0x18], 0x10
jb 0x4085bb
mov eax, dword [esi]
jmp 0x4085bd
mov eax, esi
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x4085d2
mov dword [esp + 0x10], 0
jmp 0x4085dd
cmp dword [esp + 0x10], 0
jne 0x408683
cmp edi, dword [ebp + 8]
jb 0x4085e7
call fcn.0043364c
cmp dword [edi + 0x18], 0x10
jb 0x4085ef
mov esi, dword [esi]
push esi
lea ecx, [esp + 0x18]
push str.Can_not_delete:__s_n
push ecx
call fcn.004340f9
lea eax, [esp + 0x20]
add esp, 0xc
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x408610
mov ecx, dword [ebx + 4]
sub eax, edx
test ecx, ecx
je 0x408683
push ecx
push eax
push 1
lea edx, [esp + 0x20]
push edx
jmp 0x40867b
cmp edi, dword [ebp + 8]
jb 0x408637
call fcn.0043364c
cmp dword [edi + 0x18], 0x10
jb 0x40863f
mov esi, dword [esi]
push esi
lea eax, [esp + 0x18]
push str.Can_not_find:__s_n
push eax
call fcn.004340f9
lea eax, [esp + 0x20]
add esp, 0xc
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x408660
mov ecx, dword [ebx + 4]
sub eax, edx
test ecx, ecx
je 0x408683
push ecx
push eax
push 1
lea ecx, [esp + 0x20]
push ecx
call fcn.00433a0b
add esp, 0x10
cmp edi, dword [ebp + 8]
jb 0x40868d
call fcn.0043364c
add edi, 0x1c
jmp 0x408522
mov ecx, dword [esp + 0x414]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00432bb9
add esp, 0x408
ret