Function at 0x1002deb2
Capabilities:
Check if file exists
Delete file

Disassembly:
push ebp
sub esp, 0x60
push 0x3c
mov eax, 0x10064131
call fcn.1005970d
call fcn.1002dd6d
test eax, eax
jne 0x1002dee0
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add ebp, 0x64
leave
ret
lea ecx, [ebp + 0x48]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
and dword [ebp - 4], 0
lea ecx, [ebp + 0x5c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
lea ebx, [ebp + 0x48]
mov byte [ebp - 4], 1
call fcn.1002e68c
lea eax, [ebp + 0x5c]
push eax
call sym.SACOhelper.dll_bool___cdecl_ReturnAppDataFolder_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____
lea ecx, [ebp + 0x58]
mov dword [esp], str.LatestVersion.ini
call dword [0x1006ce70]
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x5c]
push eax
mov byte [ebp - 4], 2
call sym.SACOhelper.dll_enum_PCO_ERROR_CODES___cdecl_STPathAppend_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t______class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t____const__
pop ecx
pop ecx
lea ecx, [ebp + 0x58]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
push dword [ebp + 0x5c]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1002df4d
push dword [ebp + 0x5c]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov byte [ebp - 4], 3
call fcn.1002dd38
push dword [ebp + 0x5c]
push dword [ebp + 0x48]
call fcn.1002dd26
mov ebx, 0x100751c0
call fcn.1002dd9e
call fcn.1002dc21
mov dword [ebp + 0x58], eax
mov dword [ebp - 4], 1
xor esi, esi
cmp dword [ebp + 0x58], esi
jne 0x1002dfa9
lea ecx, [ebp + 0x5c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp + 0x48]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
jmp 0x1002decb
lea ecx, [ebp]
call fcn.10057f84
push esi
push esi
mov byte [ebp - 4], 5
push dword [ebp + 0x5c]
lea ecx, [ebp]
call sub.mfc90u.dll_CFile::Open
lea ecx, [ebp]
test eax, eax
jne 0x1002dfd4
mov byte [ebp - 4], 1
call sub.mfc90u.dll_CFile::CFile
jmp 0x1002df81
call sub.mfc90u.dll_CFile::GetLength
cmp edx, esi
ja 0x1002e00b
jb 0x1002dfe4
cmp eax, 1
jae 0x1002e00b
xor bl, bl
lea ecx, [ebp]
mov byte [ebp - 4], 1
call sub.mfc90u.dll_CFile::CFile
lea ecx, [ebp + 0x5c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp + 0x48]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov al, bl
jmp 0x1002decd
lea ecx, [ebp]
call sub.mfc90u.dll_CFile::Close
push str.Application
lea ecx, [ebp + 0x50]
call dword [0x1006ce70]
lea eax, [ebp + 0x10]
push eax
mov byte [ebp - 4], 6
call fcn.1002d66c
push ecx
mov byte [ebp - 4], 7
lea eax, [ebp + 0x5c]
mov ecx, esp
mov dword [ebp + 0x40], esp
push eax
call dword [0x1006ce0c]
lea ecx, [ebp + 0x10]
call fcn.1002f919
lea ecx, [ebp + 0x4c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
mov byte [ebp - 4], 8
push dword [ebp + 0x50]
lea eax, [ebp + 0x60]
push eax
mov edx, str.PROGRAM_VERSION
lea ecx, [ebp + 0x10]
call fcn.1002f767
push eax
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], 9
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
lea ecx, [ebp + 0x60]
mov byte [ebp - 4], 8
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov eax, dword [ebp + 0x4c]
cmp dword [eax - 0xc], esi
je 0x1002e31e
push dword [ebp + 0x50]
lea eax, [ebp + 0x58]
push eax
mov edx, str.PROGRAM_URL
lea ecx, [ebp + 0x10]
call fcn.1002f767
mov byte [ebp - 4], 0xa
push dword [ebp + 0x50]
lea eax, [ebp + 0x60]
push eax
mov edx, str.Open_Browser
lea ecx, [ebp + 0x10]
call fcn.1002f767
push dword [eax]
mov ebx, dword [sym.imp.MSVCR90.dll__wtoi]
call ebx
pop ecx
lea ecx, [ebp + 0x60]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
push dword [ebp + 0x50]
lea eax, [ebp + 0x34]
push eax
mov edx, str.Description
lea ecx, [ebp + 0x10]
call fcn.1002f767
lea ecx, [ebp + 0x44]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
lea ecx, [ebp + 0x54]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
lea eax, [ebp + 0x60]
push eax
mov byte [ebp - 4], 0xd
call sym.SACOhelper.dll_public:_static_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t______cdecl_CSystweakApp::GetAppExePath_void_
pop ecx
push eax
lea ecx, [ebp + 0x54]
mov byte [ebp - 4], 0xe
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
lea ecx, [ebp + 0x60]
mov byte [ebp - 4], 0xd
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp + 0x54]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::MakeLower]
push str.sacohelper.dll
push dword [ebp + 0x54]
lea ecx, [ebp + 0x54]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Replace]
push ecx
lea eax, [ebp + 0x54]
mov ecx, esp
mov dword [ebp + 0x40], esp
push eax
call dword [0x1006ce0c]
lea eax, [ebp + 0x60]
push eax
call sym.SACOhelper.dll_public:_static_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t______cdecl_CSystweakApp::GetFileVersion_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t____
pop ecx
pop ecx
push eax
lea ecx, [ebp + 0x44]
mov byte [ebp - 4], 0xf
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
lea ecx, [ebp + 0x60]
mov byte [ebp - 4], 0xd
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
push ecx
mov ecx, esp
mov dword [ebp + 0x40], esp
mov esi, 0x1006f0a4
push esi
call dword [0x1006ce70]
push ecx
mov byte [ebp - 4], 0x10
mov ecx, esp
lea eax, [ebp + 0x44]
mov dword [ebp + 0x38], esp
push eax
call dword [0x1006ce0c]
lea eax, [ebp - 0x48]
push eax
mov byte [ebp - 4], 0xd
call fcn.1002fec4
push ecx
mov byte [ebp - 4], 0x11
mov ecx, esp
mov dword [ebp + 0x40], esp
push esi
call dword [0x1006ce70]
push ecx
lea eax, [ebp + 0x4c]
mov ecx, esp
mov dword [ebp + 0x38], esp
push eax
mov byte [ebp - 4], 0x12
call dword [0x1006ce0c]
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x11
call fcn.1002fec4
lea eax, [ebp + 0x60]
push eax
xor esi, esi
lea edi, [ebp - 0x48]
mov byte [ebp - 4], 0x13
call fcn.1002ffb2
push dword [eax]
call ebx
pop ecx
lea ecx, [ebp + 0x60]
mov dword [ebp + 0x2c], eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea eax, [ebp + 0x60]
push eax
inc esi
call fcn.1002ffb2
push dword [eax]
call ebx
pop ecx
lea ecx, [ebp + 0x60]
mov dword [ebp + 0x28], eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea eax, [ebp + 0x60]
push eax
push 2
pop esi
call fcn.1002ffb2
push dword [eax]
call ebx
pop ecx
lea ecx, [ebp + 0x60]
mov dword [ebp + 0x38], eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea eax, [ebp + 0x60]
push eax
push 3
pop esi
call fcn.1002ffb2
push dword [eax]
call ebx
pop ecx
lea ecx, [ebp + 0x60]
mov dword [ebp + 0x40], eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea eax, [ebp + 0x60]
push eax
xor esi, esi
lea edi, [ebp - 0x2c]
call fcn.1002ffb2
push dword [eax]
call ebx
pop ecx
mov dword [ebp + 0x30], eax
lea ecx, [ebp + 0x60]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea eax, [ebp + 0x60]
push eax
inc esi
call fcn.1002ffb2
push dword [eax]
call ebx
pop ecx
lea ecx, [ebp + 0x60]
mov dword [ebp + 0x24], eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea eax, [ebp + 0x3c]
push eax
push 2
pop esi
call fcn.1002ffb2
push dword [eax]
call ebx
pop ecx
lea ecx, [ebp + 0x3c]
mov dword [ebp + 0x60], eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea eax, [ebp + 0x3c]
push eax
push 3
pop esi
call fcn.1002ffb2
push dword [eax]
call ebx
pop ecx
lea ecx, [ebp + 0x3c]
mov esi, eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov eax, dword [ebp + 0x2c]
cmp dword [ebp + 0x30], eax
jg 0x1002e342
jne 0x1002e2d3
mov eax, dword [ebp + 0x28]
cmp dword [ebp + 0x24], eax
jg 0x1002e342
mov eax, dword [ebp + 0x38]
cmp dword [ebp + 0x60], eax
jg 0x1002e342
jne 0x1002e2e2
cmp esi, dword [ebp + 0x40]
jg 0x1002e342
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x11
call fcn.10057e1c
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xd
call fcn.10057e1c
lea ecx, [ebp + 0x54]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp + 0x44]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp + 0x34]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp + 0x58]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp + 0x4c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea eax, [ebp + 0x10]
push eax
mov byte [ebp - 4], 6
call fcn.1002d6e8
lea ecx, [ebp + 0x50]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
jmp 0x1002dfe4
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x11
call fcn.10057e1c
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xd
call fcn.10057e1c
lea ecx, [ebp + 0x54]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp + 0x44]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp + 0x34]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp + 0x58]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [ebp + 0x4c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea eax, [ebp + 0x10]
push eax
mov byte [ebp - 4], 6
call fcn.1002d6e8
lea ecx, [ebp + 0x50]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov bl, 1
jmp 0x1002dfe6