Function at 0x4017f0
Capabilities:
Check if file exists
Delete file
Get file attributes
Set file attributes

Disassembly:
sub esp, 0x10c
mov eax, dword [0x417050]
xor eax, esp
mov dword [esp + 0x108], eax
push ebx
push ebp
push esi
mov esi, dword [esp + 0x11c]
push edi
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x40182a
test al, 1
je 0x40182a
xor eax, 1
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push 0x2e
push esi
call fcn.00405e3e
push 0x5c
push esi
mov dword [esp + 0x20], eax
call fcn.00405e3e
add esp, 0x10
test eax, eax
jne 0x401849
mov eax, esi
jmp 0x40184c
add eax, 1
push str.EXEpress.exe
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcatA]
jne 0x4018e1
push esi
call ebx
sub eax, 3
push eax
push esi
lea eax, [esp + 0x1c]
push eax
call edi
push str..ini
lea ecx, [esp + 0x18]
push ecx
call ebp
lea eax, [esp + 0x14]
call fcn.00404d90
test eax, eax
je 0x4018e1
lea edx, [esp + 0x14]
push edx
call fcn.004017f0
add esp, 4
test al, al
push 0x100
push 0x418c28
je 0x4018bb
mov eax, dword [0x418e38]
push 8
push eax
jmp 0x4018c4
mov ecx, dword [0x418e38]
push 9
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
push 0x418c28
lea edx, [esp + 0x18]
push edx
push 0x414c85
call fcn.004011d0
add esp, 0xc
mov eax, dword [esp + 0x10]
test eax, eax
je 0x401b62
push str..hlp
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x4019e7
push esi
call ebx
sub eax, 3
push eax
push esi
lea eax, [esp + 0x1c]
push eax
call edi
push str..gid
lea ecx, [esp + 0x18]
push ecx
call ebp
lea eax, [esp + 0x14]
call fcn.00404d90
test eax, eax
je 0x401974
lea edx, [esp + 0x14]
push edx
call fcn.004017f0
add esp, 4
test al, al
push 0x100
push 0x418c28
je 0x40194e
mov eax, dword [0x418e38]
push 8
push eax
jmp 0x401957
mov ecx, dword [0x418e38]
push 9
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
push 0x418c28
lea edx, [esp + 0x18]
push edx
push 0x414c85
call fcn.004011d0
add esp, 0xc
push esi
call ebx
sub eax, 3
push eax
push esi
lea eax, [esp + 0x1c]
push eax
call edi
push str..fts
lea ecx, [esp + 0x18]
push ecx
call ebp
lea eax, [esp + 0x14]
call fcn.00404d90
test eax, eax
je 0x4019e7
lea edx, [esp + 0x14]
push edx
call fcn.004017f0
add esp, 4
test al, al
push 0x100
push 0x418c28
je 0x4019c1
mov eax, dword [0x418e38]
push 8
push eax
jmp 0x4019ca
mov ecx, dword [0x418e38]
push 9
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
push 0x418c28
lea edx, [esp + 0x18]
push edx
push 0x414c85
call fcn.004011d0
add esp, 0xc
mov eax, dword [esp + 0x10]
push str..exe
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x401ac7
push esi
call ebx
sub eax, 3
push eax
push esi
lea ecx, [esp + 0x1c]
push ecx
call edi
push str..ini
lea edx, [esp + 0x18]
push edx
call ebp
lea eax, [esp + 0x14]
call fcn.00404d90
test eax, eax
je 0x401a63
cmp byte [0x418e2e], 0
je 0x401a63
lea eax, [esp + 0x14]
push eax
call fcn.004017f0
add esp, 4
test al, al
mov eax, 8
jne 0x401a4b
mov eax, 9
call fcn.00401000
push eax
lea ecx, [esp + 0x18]
push ecx
push 0x414c85
call fcn.004011d0
add esp, 0xc
push esi
call ebx
sub eax, 3
push eax
push esi
lea edx, [esp + 0x1c]
push edx
call edi
push str..dat
lea eax, [esp + 0x18]
push eax
call ebp
lea eax, [esp + 0x14]
call fcn.00404d90
test eax, eax
je 0x401ac7
cmp byte [0x418e2d], 0
je 0x401ac7
lea ecx, [esp + 0x14]
push ecx
call fcn.004017f0
add esp, 4
test al, al
mov eax, 8
jne 0x401aaf
mov eax, 9
call fcn.00401000
push eax
lea edx, [esp + 0x18]
push edx
push 0x414c85
call fcn.004011d0
add esp, 0xc
mov eax, dword [esp + 0x10]
push str..exe
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x401aef
mov ecx, dword [esp + 0x10]
push str..com
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x401b62
push esi
call ebx
sub eax, 3
push eax
push esi
lea edx, [esp + 0x1c]
push edx
call edi
push str..pif
lea eax, [esp + 0x18]
push eax
call ebp
lea eax, [esp + 0x14]
call fcn.00404d90
test eax, eax
je 0x401b62
lea ecx, [esp + 0x14]
push ecx
call fcn.004017f0
add esp, 4
test al, al
push 0x100
push 0x418c28
je 0x401b3d
mov edx, dword [0x418e38]
push 8
push edx
jmp 0x401b45
mov eax, dword [0x418e38]
push 9
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
push 0x418c28
lea ecx, [esp + 0x18]
push ecx
push 0x414c85
call fcn.004011d0
add esp, 0xc
mov eax, esi
call fcn.00404d90
test eax, eax
je 0x401ba8
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
setne bl
test bl, bl
jne 0x401b97
cmp byte [0x418e30], bl
je 0x401b97
call fcn.00401e90
mov bl, al
test bl, bl
je 0x401b97
mov byte [0x418e2f], 1
push 0
push esi
push 1
push 4
call dword [sym.imp.SHELL32.dll_SHChangeNotify]
mov al, bl
jmp 0x401baa
mov al, 1
mov ecx, dword [esp + 0x118]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004052f5
add esp, 0x10c
ret