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

Disassembly:
push 0xe4
mov eax, 0x47a8dd
call fcn.00478470
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x18]
cmp eax, dword [esi + 0x1c]
jne 0x4089d6
xor al, al
jmp 0x408d43
push 8
pop ebx
mov eax, esi
cmp dword [esi + 0x14], ebx
jb 0x4089e2
mov eax, dword [esi]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 1
je 0x408a01
mov ecx, esi
cmp dword [esi + 0x14], ebx
jb 0x4089f6
mov ecx, dword [esi]
and eax, 0xfffffffe
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov eax, esi
cmp dword [esi + 0x14], ebx
jb 0x408a0a
mov eax, dword [esi]
mov edi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
push eax
call edi
test eax, eax
je 0x408a1c
cmp eax, 5
jne 0x408a4d
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
call fcn.0040609e
and dword [ebp - 4], 0
lea eax, [ebp - 0x28]
push eax
call fcn.00408d49
or dword [ebp - 4], 0xffffffff
pop ecx
lea ecx, [ebp - 0x28]
call fcn.00401ef9
mov eax, esi
cmp dword [esi + 0x14], ebx
jb 0x408a4a
mov eax, dword [esi]
push eax
call edi
test eax, eax
je 0x408b83
cmp eax, 5
je 0x408b09
cmp eax, 2
jne 0x408d41
push 1
push 3
lea ecx, [ebp - 0xf0]
call fcn.00403264
xor ebx, ebx
mov dword [ebp - 4], 0xa
push esi
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
call fcn.00403ca0
push str.__error_ERROR_FILE_NOT_FOUND
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0xb
push eax
lea eax, [ebp - 0xe0]
push str.DeleteFile__
push eax
call fcn.004028fc
pop ecx
pop ecx
push eax
call fcn.0040556f
pop ecx
pop ecx
push eax
call fcn.00406105
pop ecx
pop ecx
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xa
call fcn.00401ef9
lea eax, [ebp - 0xf0]
push eax
push str.FileSystem::removeFile
push 0x17b
push str.C:workprojects_rubilnik_srccommonFileSystem.cpp
push ebx
call fcn.004048e7
mov ecx, eax
call fcn.0040be44
lea ecx, [ebp - 0x88]
call fcn.004033bd
lea ecx, [ebp - 0x88]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__::destructor_void_]
jmp 0x4089cf
push 1
push 3
lea ecx, [ebp - 0xf0]
call fcn.00403264
and dword [ebp - 0x18], 0
lea ecx, [ebp - 0x28]
and dword [ebp - 0x14], 0
push esi
mov dword [ebp - 4], 1
call fcn.00403ca0
push str.__error_ERROR_ACCESS_DENIED
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0xe0]
push str.DeleteFile__
push eax
call fcn.004028fc
pop ecx
pop ecx
push eax
call fcn.0040556f
pop ecx
pop ecx
push eax
call fcn.00406105
pop ecx
pop ecx
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 1
call fcn.00401ef9
lea eax, [ebp - 0xf0]
mov edi, str.FileSystem::removeFile
push eax
push edi
push 0x16a
jmp 0x408c07
push 1
push 3
lea ecx, [ebp - 0xf0]
call fcn.00403264
and dword [ebp - 0x18], 0
lea ecx, [ebp - 0x28]
and dword [ebp - 0x14], 0
push esi
mov dword [ebp - 4], 3
call fcn.00403ca0
mov byte [ebp - 4], 4
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x481054
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0xe0]
push str.DeleteFile__
push eax
call fcn.004028fc
pop ecx
pop ecx
push eax
call fcn.0040556f
pop ecx
pop ecx
push eax
call fcn.00406105
pop ecx
pop ecx
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______thiscall_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___unsigned_long_int_]
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 3
call fcn.00401ef9
lea eax, [ebp - 0xf0]
mov edi, str.FileSystem::removeFile
push eax
push edi
push 0x16e
mov ebx, str.C:workprojects_rubilnik_srccommonFileSystem.cpp
push ebx
push 0
call fcn.004048e7
mov ecx, eax
call fcn.0040be44
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x88]
call fcn.004033bd
lea ecx, [ebp - 0x88]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__::destructor_void_]
push 0x480d48
lea ecx, [ebp - 0x28]
call fcn.004019d1
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 5
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.0040404d
pop ecx
pop ecx
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 7
call fcn.00401ef9
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
mov ecx, esi
cmovae eax, dword [ebp - 0x40]
cmp dword [esi + 0x14], 8
jb 0x408c7a
mov ecx, dword [esi]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
jne 0x408d39
push 1
push 3
lea ecx, [ebp - 0xf0]
call fcn.00403264
and dword [ebp - 0x18], 0
lea ecx, [ebp - 0x28]
and dword [ebp - 0x14], 0
push esi
mov byte [ebp - 4], 8
call fcn.00403ca0
mov byte [ebp - 4], 9
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x481054
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0xe0]
push str.MoveFile__
push eax
call fcn.004028fc
pop ecx
pop ecx
push eax
call fcn.0040556f
pop ecx
pop ecx
push eax
call fcn.00406105
pop ecx
pop ecx
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______thiscall_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___unsigned_long_int_]
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 8
call fcn.00401ef9
lea eax, [ebp - 0xf0]
push eax
push edi
push 0x175
push ebx
push 0
call fcn.004048e7
mov ecx, eax
call fcn.0040be44
lea ecx, [ebp - 0x88]
call fcn.004033bd
lea ecx, [ebp - 0x88]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__::destructor_void_]
lea ecx, [ebp - 0x40]
call fcn.00401ef9
jmp 0x4089cf
lea ecx, [ebp - 0x40]
call fcn.00401ef9
mov al, 1
call fcn.0047842b
ret