Function at 0x415580
Capabilities:
Delete file
Get file attributes
Move file
Set file attributes

Disassembly:
push 0x2f4
mov eax, 0x64a5e0
call fcn.005b47af
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x18]
cmp eax, dword [edi + 0x1c]
jne 0x4155a1
xor al, al
jmp 0x415921
cmp dword [edi + 0x14], 8
jb 0x4155ab
mov eax, dword [edi]
jmp 0x4155ad
mov eax, edi
push eax
call dword [sym.imp.KERNEL32.DLL_GetFileAttributesW]
test al, 1
je 0x4155cf
cmp dword [edi + 0x14], 8
jb 0x4155c2
mov ecx, dword [edi]
jmp 0x4155c4
mov ecx, edi
and eax, 0xfffffffe
push eax
push ecx
call dword [sym.imp.KERNEL32.DLL_SetFileAttributesW]
cmp dword [edi + 0x14], 8
jb 0x4155d9
mov eax, dword [edi]
jmp 0x4155db
mov eax, edi
mov esi, dword [sym.imp.KERNEL32.DLL_DeleteFileW]
push eax
call esi
xor ebx, ebx
inc ebx
test eax, eax
je 0x4155f0
cmp eax, 5
jne 0x415627
lea eax, [ebp - 0x40]
mov ecx, edi
push eax
call fcn.00412ade
and dword [ebp - 4], 0
lea eax, [ebp - 0x40]
push eax
call fcn.00415927
or dword [ebp - 4], 0xffffffff
pop ecx
push 0
push ebx
lea ecx, [ebp - 0x40]
call fcn.00409de7
cmp dword [edi + 0x14], 8
jb 0x415622
mov eax, dword [edi]
jmp 0x415624
mov eax, edi
push eax
call esi
test eax, eax
je 0x415758
cmp eax, 5
je 0x4156d1
cmp eax, 2
jne 0x41591f
push ebx
push 3
lea ecx, [ebp - 0xf0]
call fcn.004078ff
lea eax, [ebp - 0x40]
mov dword [ebp - 4], 0xa
push eax
mov ecx, edi
call fcn.0040cff1
push str.__error_ERROR_FILE_NOT_FOUND
push eax
lea eax, [ebp - 0xe0]
mov byte [ebp - 4], 0xb
push str.DeleteFile__
push eax
call fcn.0040710b
pop ecx
pop ecx
push eax
call fcn.00410ade
pop ecx
pop ecx
push eax
call fcn.00412133
pop ecx
pop ecx
push 0
push ebx
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xa
call fcn.00409de7
lea eax, [ebp - 0xf0]
push eax
push str.FileSystem::removeFile
push 0x17c
push str.D:_build6c589d3ff8507062_srccommonFileSystem.cpp
push 0
call fcn.0040b02b
mov ecx, eax
call fcn.0041875b
lea ecx, [ebp - 0xf0]
call fcn.0040843a
jmp 0x41559a
push ebx
push 3
lea ecx, [ebp - 0x1a0]
call fcn.004078ff
lea eax, [ebp - 0x28]
mov dword [ebp - 4], ebx
push eax
mov ecx, edi
call fcn.0040cff1
push str.__error_ERROR_ACCESS_DENIED
push eax
lea eax, [ebp - 0x190]
mov byte [ebp - 4], 2
push str.DeleteFile__
push eax
call fcn.0040710b
pop ecx
pop ecx
push eax
call fcn.00410ade
pop ecx
pop ecx
push eax
call fcn.00412133
pop ecx
pop ecx
xor esi, esi
mov byte [ebp - 4], bl
push esi
push ebx
lea ecx, [ebp - 0x28]
call fcn.00409de7
lea eax, [ebp - 0x1a0]
mov ebx, str.FileSystem::removeFile
push eax
push ebx
push 0x16b
push str.D:_build6c589d3ff8507062_srccommonFileSystem.cpp
push esi
call fcn.0040b02b
mov ecx, eax
call fcn.0041875b
lea ecx, [ebp - 0x1a0]
jmp 0x4157ef
push ebx
push 3
lea ecx, [ebp - 0x250]
call fcn.004078ff
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 3
push eax
mov ecx, edi
call fcn.0040cff1
mov esi, eax
mov byte [ebp - 4], 4
call dword [sym.imp.KERNEL32.DLL_GetLastError]
push eax
push 0x686d84
push esi
lea eax, [ebp - 0x240]
push str.DeleteFile__
push eax
call fcn.0040710b
pop ecx
pop ecx
push eax
call fcn.00410ade
pop ecx
pop ecx
push eax
call fcn.00412133
pop ecx
pop ecx
mov ecx, eax
call fcn.004129b9
xor esi, esi
mov byte [ebp - 4], 3
push esi
push ebx
lea ecx, [ebp - 0x28]
call fcn.00409de7
lea eax, [ebp - 0x250]
mov ebx, str.FileSystem::removeFile
push eax
push ebx
push 0x16f
push str.D:_build6c589d3ff8507062_srccommonFileSystem.cpp
push esi
call fcn.0040b02b
mov ecx, eax
call fcn.0041875b
lea ecx, [ebp - 0x250]
or dword [ebp - 4], 0xffffffff
call fcn.0040843a
mov dword [ebp - 0x18], esi
xor eax, eax
mov esi, str.clntmp
mov dword [ebp - 0x14], 7
push esi
mov word [ebp - 0x28], ax
call fcn.005ff18e
pop ecx
push eax
push esi
lea ecx, [ebp - 0x28]
call fcn.0040a315
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 5
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00598a1f
pop ecx
pop ecx
push 0
push 1
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 7
call fcn.00409de7
cmp dword [ebp - 0x2c], 8
lea ecx, [ebp - 0x40]
cmovae ecx, dword [ebp - 0x40]
cmp dword [edi + 0x14], 8
jb 0x415859
mov eax, dword [edi]
jmp 0x41585b
mov eax, edi
push ecx
push eax
call dword [sym.imp.KERNEL32.DLL_MoveFileW]
test eax, eax
jne 0x415911
push 1
push 3
lea ecx, [ebp - 0x300]
call fcn.004078ff
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 8
push eax
mov ecx, edi
call fcn.0040cff1
mov esi, eax
mov byte [ebp - 4], 9
call dword [sym.imp.KERNEL32.DLL_GetLastError]
push eax
push 0x686d84
push esi
lea eax, [ebp - 0x2f0]
push str.MoveFile__
push eax
call fcn.0040710b
pop ecx
pop ecx
push eax
call fcn.00410ade
pop ecx
pop ecx
push eax
call fcn.00412133
pop ecx
pop ecx
mov ecx, eax
call fcn.004129b9
xor esi, esi
mov byte [ebp - 4], 8
push esi
push 1
lea ecx, [ebp - 0x28]
call fcn.00409de7
lea eax, [ebp - 0x300]
push eax
push ebx
push 0x176
push str.D:_build6c589d3ff8507062_srccommonFileSystem.cpp
push esi
call fcn.0040b02b
mov ecx, eax
call fcn.0041875b
lea ecx, [ebp - 0x300]
call fcn.0040843a
push esi
push 1
lea ecx, [ebp - 0x40]
call fcn.00409de7
jmp 0x41559a
xor ebx, ebx
lea ecx, [ebp - 0x40]
push 0
inc ebx
push ebx
call fcn.00409de7
mov al, bl
call fcn.005b4759
ret