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

Disassembly:
push ebp
sub esp, 0x60
push 0x3c
mov eax, 0x100a3e80
call fcn.1008f87d
call fcn.10046668
test eax, eax
jne 0x100467db
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.1004857e
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 [0x100b6094]
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 0x10046848
push dword [ebp + 0x5c]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov byte [ebp - 4], 3
call fcn.10046633
push dword [ebp + 0x5c]
push dword [ebp + 0x48]
call fcn.10046621
mov ebx, 0x100bf4d8
call fcn.10046699
xor edi, edi
call fcn.10046509
mov dword [ebp + 0x58], eax
mov dword [ebp - 4], 1
xor esi, esi
cmp dword [ebp + 0x58], esi
jne 0x100468a6
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 0x100467c6
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 0x100468d1
mov byte [ebp - 4], 1
call fcn.1008de94
jmp 0x1004687e
call sub.mfc90u.dll_CFile::GetLength
cmp edx, esi
ja 0x10046908
jb 0x100468e1
cmp eax, 1
jae 0x10046908
xor bl, bl
lea ecx, [ebp]
mov byte [ebp - 4], 1
call fcn.1008de94
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 0x100467c8
lea ecx, [ebp]
call sub.mfc90u.dll_CFile::Close
push str.Application
lea ecx, [ebp + 0x50]
call dword [0x100b6094]
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 [0x100b6030]
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 [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 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 [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_3]
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 0x10046c1a
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 [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.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 [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_3]
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 0x100b7d6c
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 [0x100b6030]
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 [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_3]
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, 0x100b70d0
push esi
call dword [0x100b6094]
push ecx
mov byte [ebp - 4], 0x10
mov ecx, esp
lea eax, [ebp + 0x44]
mov dword [ebp + 0x38], esp
push eax
call dword [0x100b6030]
lea eax, [ebp - 0x48]
push eax
mov byte [ebp - 4], 0xd
call fcn.1004e1d1
push ecx
mov byte [ebp - 4], 0x11
mov ecx, esp
mov dword [ebp + 0x40], esp
push esi
call dword [0x100b6094]
push ecx
lea eax, [ebp + 0x4c]
mov ecx, esp
mov dword [ebp + 0x38], esp
push eax
mov byte [ebp - 4], 0x12
call dword [0x100b6030]
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x11
call fcn.1004e1d1
lea eax, [ebp + 0x60]
push eax
xor esi, esi
lea edi, [ebp - 0x48]
mov byte [ebp - 4], 0x13
call fcn.1004e2bf
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.1004e2bf
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.1004e2bf
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.1004e2bf
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.1004e2bf
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.1004e2bf
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.1004e2bf
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.1004e2bf
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 0x10046c3d
jne 0x10046bcf
mov eax, dword [ebp + 0x28]
cmp dword [ebp + 0x24], eax
jg 0x10046c3d
mov eax, dword [ebp + 0x38]
cmp dword [ebp + 0x60], eax
jg 0x10046c3d
jne 0x10046bde
cmp esi, dword [ebp + 0x40]
jg 0x10046c3d
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x11
call fcn.1008dd26
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xd
call fcn.1008dd26
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 0x100468e1
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x11
call fcn.1008dd26
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xd
call fcn.1008dd26
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 0x100468e3