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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x41c
mov eax, dword [0x460df4]
xor eax, esp
mov dword [esp + 0x418], eax
push ebx
mov ebx, ecx
push esi
mov dword [ebx + 0xcc], 0
mov esi, dword [ebx + 0xe8]
cmp esi, dword [ebx + 0xec]
push edi
mov dword [esp + 0xc], ebx
jbe 0x408e30
call fcn.004334ac
mov edi, esi
mov dword [esp + 0x14], edi
jmp 0x408e40
mov esi, dword [ebx + 0xec]
add ebx, 0xe4
cmp dword [ebx + 4], esi
jbe 0x408e56
call fcn.004334ac
test ebx, ebx
je 0x408e5e
cmp ebx, ebx
je 0x408e63
call fcn.004334ac
cmp edi, esi
je 0x409055
test ebx, ebx
jne 0x408e74
call fcn.004334ac
cmp edi, dword [ebx + 8]
jb 0x408e7e
call fcn.004334ac
mov eax, dword [edi + 4]
mov esi, dword [eax]
mov ebx, edi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], esi
lea ecx, [ecx]
mov eax, dword [esp + 0xc]
add eax, 0xe4
cmp edi, dword [eax + 8]
jb 0x408ea3
call fcn.004334ac
test ebx, ebx
mov edi, dword [edi + 4]
je 0x408eb0
cmp ebx, dword [esp + 0x14]
je 0x408eb5
call fcn.004334ac
cmp esi, edi
je 0x409025
test ebx, ebx
jne 0x408ec6
call fcn.004334ac
cmp esi, dword [ebx + 4]
jne 0x408ed0
call fcn.004334ac
mov edi, 0x10
cmp dword [esi + 0x28], edi
jb 0x408edf
mov eax, dword [esi + 0x14]
jmp 0x408ee2
lea eax, [esi + 0x14]
test eax, eax
je 0x40900b
cmp esi, dword [ebx + 4]
jne 0x408ef4
call fcn.004334ac
cmp dword [esi + 0x28], edi
jb 0x408efe
mov edx, dword [esi + 0x14]
jmp 0x408f01
lea edx, [esi + 0x14]
mov eax, edx
lea edi, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x408f06
sub eax, edi
mov edi, dword [esp + 0xc]
push eax
push edx
lea ecx, [edi + 0x78]
call fcn.00402d10
mov eax, dword [edi]
test eax, eax
je 0x408f3a
mov ecx, dword [edi + 0xc0]
push 0
push ecx
push 0x4401
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
cmp esi, dword [ebx + 4]
jne 0x408f44
call fcn.004334ac
cmp dword [esi + 0x28], 0x10
jb 0x408f4f
mov eax, dword [esi + 0x14]
jmp 0x408f52
lea eax, [esi + 0x14]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x409003
cmp esi, dword [ebx + 4]
jne 0x408f6b
call fcn.004334ac
cmp dword [esi + 0x28], 0x10
jb 0x408f76
mov eax, dword [esi + 0x14]
jmp 0x408f79
lea eax, [esi + 0x14]
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
je 0x408fac
cmp esi, dword [ebx + 4]
jne 0x408f93
call fcn.004334ac
cmp dword [esi + 0x28], 0x10
jb 0x408f9e
mov eax, dword [esi + 0x14]
jmp 0x408fa1
lea eax, [esi + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x409003
cmp esi, dword [ebx + 4]
jne 0x408fb6
call fcn.004334ac
cmp dword [esi + 0x28], 0x10
jb 0x408fc1
mov esi, dword [esi + 0x14]
jmp 0x408fc4
add esi, 0x14
push esi
lea edx, [esp + 0x24]
push str.Can_not_delete:__s_n
push edx
call fcn.00433f59
lea eax, [esp + 0x2c]
add esp, 0xc
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x408fe0
mov ecx, dword [edi + 4]
sub eax, edx
test ecx, ecx
je 0x409003
push ecx
push eax
lea eax, [esp + 0x28]
push 1
push eax
call fcn.0043386b
add esp, 0x10
push 0x12
call dword [sym.imp.KERNEL32.dll_Sleep]
lea ecx, [esp + 0x18]
call fcn.00407f50
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
jmp 0x408e90
mov eax, dword [esp + 0xc]
add dword [eax + 0xcc], 1
mov ecx, dword [esp + 0x14]
add eax, 0xe4
cmp ecx, dword [eax + 8]
jb 0x409043
call fcn.004334ac
add dword [esp + 0x14], 0xc
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0xc]
jmp 0x408e40
mov ecx, dword [esp + 0x424]
pop edi
pop esi
pop ebx
xor ecx, esp
mov eax, 1
call fcn.00432a13
mov esp, ebp
pop ebp
ret 4