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

Disassembly:
mov eax, 0x107eda5
call fcn.01002b15
sub esp, 0x14
push esi
push 0
lea ecx, [ebp - 0x20]
mov dword [ebp - 4], 1
call dword [sym.imp.mmcbase.DLL_public:_void___thiscall_mmcerror::SC::constructor_long_int_]
and dword [ebp - 0x10], 0
lea esi, [ebp + 8]
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 2
call fcn.01014097
push eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.010402fd
mov ecx, dword [eax]
mov dword [ebp - 0x20], ecx
mov eax, dword [eax + 4]
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x1c], eax
call dword [sym.imp.mmcbase.DLL_public:_bool___thiscall_mmcerror::SC::operator_bool_void_const]
test al, al
jne 0x1040585
push 0x8000ffff
push dword [ebp - 0x10]
lea eax, [ebp - 0x18]
push eax
call fcn.01002b92
mov ecx, dword [eax]
mov dword [ebp - 0x20], ecx
mov eax, dword [eax + 4]
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x1c], eax
call dword [sym.imp.mmcbase.DLL_public:_bool___thiscall_mmcerror::SC::operator_bool_void_const]
test al, al
jne 0x1040585
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.0101f754
mov ecx, dword [eax]
mov dword [ebp - 0x20], ecx
mov eax, dword [eax + 4]
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x1c], eax
call dword [sym.imp.mmcbase.DLL_public:_bool___thiscall_mmcerror::SC::operator_bool_void_const]
test al, al
jne 0x1040585
push 0x1083c28
lea ecx, [ebp + 0xc]
call sub.MFC42u.DLL_CString::FindOneOf
cmp eax, 0xffffffff
jne 0x1040534
lea eax, [ebp + 0xc]
push eax
push 0x1083c20
lea eax, [ebp - 0x14]
push eax
call sub.MFC42u.DLL_operator_1
push eax
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 3
call sub.MFC42u.DLL_CString::operator
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 2
call sub.MFC42u.DLL_CString::CString
push dword [ebp + 0xc]
lea esi, [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x104055d
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x104055d
lea ecx, [ebp - 0x20]
call dword [sym.imp.mmcbase.DLL_public:_class_mmcerror::SC____thiscall_mmcerror::SC::FromLastError_void_]
jmp 0x1040585
lea ecx, [ebp - 0x10]
call fcn.01002bd7
push dword [ebp + 0xc]
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
push eax
lea ecx, [ebp - 0x20]
call dword [sym.imp.mmcbase.DLL_public:_class_mmcerror::SC____thiscall_mmcerror::SC::operator_long_int_]
lea ecx, [ebp - 0x20]
call dword [sym.imp.mmcbase.DLL_public:_bool___thiscall_mmcerror::SC::operator_bool_void_const]
test al, al
je 0x1040596
mov esi, dword [esi]
push 0x10
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push esi
call dword [sym.imp.mmcbase.DLL_int___stdcall_MMCErrorBox_unsigned_short_int_const___class_mmcerror::SC__unsigned_int_]
lea ecx, [ebp - 0x20]
call dword [sym.imp.mmcbase.DLL_public:_long_int___thiscall_mmcerror::SC::ToHr_void_const]
mov esi, eax
mov eax, dword [ebp - 0x10]
test eax, eax
mov byte [ebp - 4], 1
je 0x10405b2
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
and byte [ebp - 4], 0
lea ecx, [ebp + 8]
call sub.MFC42u.DLL_CString::CString
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0xc]
call sub.MFC42u.DLL_CString::CString
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop esi
mov dword fs:[0], ecx
leave
ret 8