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

Disassembly:
push ebp
sub esp, 0x60
push 0x3c
mov eax, 0x10083cec
call fcn.1007522d
call fcn.1003991b
test eax, eax
jne 0x10039a8e
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 [0x10096f98]
and dword [ebp - 4], 0
lea ecx, [ebp + 0x5c]
call dword [0x10096f98]
lea ebx, [ebp + 0x48]
mov byte [ebp - 4], 1
call fcn.1003a235
lea eax, [ebp + 0x5c]
push eax
call sym.ASOHelper.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 [0x10096f84]
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x5c]
push eax
mov byte [ebp - 4], 2
call sym.ASOHelper.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 0x10039afb
push dword [ebp + 0x5c]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov byte [ebp - 4], 3
call fcn.100398e6
push dword [ebp + 0x5c]
push dword [ebp + 0x48]
call fcn.100398d4
mov ebx, 0x100a0d88
call fcn.1003994c
call fcn.1003981f
mov dword [ebp + 0x58], eax
mov dword [ebp - 4], 1
xor esi, esi
cmp dword [ebp + 0x58], esi
jne 0x10039b57
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 0x10039a79
lea ecx, [ebp]
call sub.mfc90u.dll_CFile::CFile
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 0x10039b82
mov byte [ebp - 4], 1
call fcn.10073854
jmp 0x10039b2f
call sub.mfc90u.dll_CFile::GetLength
cmp edx, esi
ja 0x10039bb9
jb 0x10039b92
cmp eax, 1
jae 0x10039bb9
xor bl, bl
lea ecx, [ebp]
mov byte [ebp - 4], 1
call fcn.10073854
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 0x10039a7b
lea ecx, [ebp]
call sub.mfc90u.dll_CFile::Close
push str.Application
lea ecx, [ebp + 0x50]
call dword [0x10096f84]
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 6
call sym.ASOHelper.dll_public:_void___thiscall_CSTINIReader::constructor_void_
push ecx
mov byte [ebp - 4], 7
lea eax, [ebp + 0x5c]
mov ecx, esp
mov dword [ebp + 0x40], esp
push eax
call dword [0x10096f20]
lea ecx, [ebp + 0x10]
call sym.ASOHelper.dll_public:_void___thiscall_CSTINIReader::setINIFileName_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t____
lea ecx, [ebp + 0x4c]
call dword [0x10096f98]
mov byte [ebp - 4], 8
push dword [ebp + 0x50]
lea eax, [ebp + 0x60]
push str.PROGRAM_VERSION
push eax
lea ecx, [ebp + 0x10]
call sym.ASOHelper.dll_public:_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t______thiscall_CSTINIReader::getKeyValue_wchar_t_const___wchar_t_const__
push eax
lea ecx, [ebp + 0x4c]
mov byte [ebp - 4], 9
call dword [0x10096f88]
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 0x10039ecb
push dword [ebp + 0x50]
lea eax, [ebp + 0x58]
push str.PROGRAM_URL
push eax
lea ecx, [ebp + 0x10]
call sym.ASOHelper.dll_public:_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t______thiscall_CSTINIReader::getKeyValue_wchar_t_const___wchar_t_const__
mov byte [ebp - 4], 0xa
push dword [ebp + 0x50]
lea eax, [ebp + 0x60]
push str.Open_Browser
push eax
lea ecx, [ebp + 0x10]
call sym.ASOHelper.dll_public:_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t______thiscall_CSTINIReader::getKeyValue_wchar_t_const___wchar_t_const__
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 str.Description
push eax
lea ecx, [ebp + 0x10]
call sym.ASOHelper.dll_public:_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t______thiscall_CSTINIReader::getKeyValue_wchar_t_const___wchar_t_const__
lea ecx, [ebp + 0x44]
call dword [0x10096f98]
lea ecx, [ebp + 0x54]
call dword [0x10096f98]
lea eax, [ebp + 0x60]
push eax
mov byte [ebp - 4], 0xd
call sym.ASOHelper.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 [0x10096f88]
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.asohelper.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_1]
push ecx
lea eax, [ebp + 0x54]
mov ecx, esp
mov dword [ebp + 0x40], esp
push eax
call dword [0x10096f20]
lea eax, [ebp + 0x60]
push eax
call sym.ASOHelper.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 [0x10096f88]
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, 0x10098030
push esi
call dword [0x10096f84]
push ecx
mov byte [ebp - 4], 0x10
mov ecx, esp
lea eax, [ebp + 0x44]
mov dword [ebp + 0x38], esp
push eax
call dword [0x10096f20]
lea eax, [ebp - 0x48]
push eax
mov byte [ebp - 4], 0xd
call fcn.1003e5f2
push ecx
mov byte [ebp - 4], 0x11
mov ecx, esp
mov dword [ebp + 0x40], esp
push esi
call dword [0x10096f84]
push ecx
lea eax, [ebp + 0x4c]
mov ecx, esp
mov dword [ebp + 0x38], esp
push eax
mov byte [ebp - 4], 0x12
call dword [0x10096f20]
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x11
call fcn.1003e5f2
lea eax, [ebp + 0x60]
push eax
xor esi, esi
lea edi, [ebp - 0x48]
mov byte [ebp - 4], 0x13
call fcn.1003e6e0
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.1003e6e0
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.1003e6e0
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.1003e6e0
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.1003e6e0
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.1003e6e0
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.1003e6e0
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.1003e6e0
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 0x10039eee
jne 0x10039e80
mov eax, dword [ebp + 0x28]
cmp dword [ebp + 0x24], eax
jg 0x10039eee
mov eax, dword [ebp + 0x38]
cmp dword [ebp + 0x60], eax
jg 0x10039eee
jne 0x10039e8f
cmp esi, dword [ebp + 0x40]
jg 0x10039eee
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x11
call fcn.100736e6
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xd
call fcn.100736e6
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 ecx, [ebp + 0x10]
mov byte [ebp - 4], 6
call sym.ASOHelper.dll_public:_void___thiscall_CSTINIReader::destructor_void_
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 0x10039b92
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x11
call fcn.100736e6
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xd
call fcn.100736e6
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 ecx, [ebp + 0x10]
mov byte [ebp - 4], 6
call sym.ASOHelper.dll_public:_void___thiscall_CSTINIReader::destructor_void_
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 0x10039b94