Function at 0x407ca0
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42b054
mov eax, dword fs:[0]
push eax
sub esp, 0x844
mov eax, dword [0x4424f8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea eax, [ebp - 0x814]
xor edi, edi
push eax
mov esi, ecx
mov dword [ebp - 0x820], edi
call fcn.00420420
push str.ToolUpgrade.dat
push eax
lea ecx, [ebp - 0x828]
push ecx
mov dword [ebp - 4], edi
call fcn.00401010
add esp, 0x10
lea ecx, [ebp - 0x814]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
lea ecx, [ebp - 0x844]
call dword [0x42f90c]
lea ecx, [ebp - 0x838]
call dword [0x42f90c]
lea ecx, [ebp - 0x840]
call dword [0x42f90c]
lea ecx, [ebp - 0x83c]
call dword [0x42f90c]
lea ecx, [ebp - 0x834]
call dword [0x42f90c]
lea ecx, [ebp - 0x850]
call dword [0x42f90c]
lea ecx, [ebp - 0x848]
call dword [0x42f90c]
lea ecx, [ebp - 0x82c]
call dword [0x42f90c]
push str.ToolKey
lea ecx, [ebp - 0x84c]
mov byte [ebp - 4], 0xa
call dword [0x42f908]
lea edx, [esi + 0x33664]
mov bl, 0xb
push edx
lea ecx, [ebp - 0x84c]
mov byte [ebp - 4], bl
call dword [0x42f86c]
lea eax, [ebp - 0x82c]
push eax
push ecx
lea edx, [esi + 0x32e2c]
mov ecx, esp
mov dword [ebp - 0x830], esp
push edx
call dword [0x42f908]
push ecx
lea eax, [esi + 0x3302c]
mov ecx, esp
mov dword [ebp - 0x814], esp
push eax
mov byte [ebp - 4], 0xc
call dword [0x42f908]
push ecx
lea edx, [ebp - 0x84c]
mov ecx, esp
mov dword [ebp - 0x81c], esp
push edx
mov byte [ebp - 4], 0xd
call dword [0x42f918]
push ecx
mov byte [ebp - 4], 0xe
mov ecx, esp
lea eax, [ebp - 0x84c]
mov dword [ebp - 0x818], esp
push eax
call dword [0x42f918]
mov byte [ebp - 4], bl
call fcn.00424450
add esp, 0x14
cmp eax, edi
je 0x4081a9
push ecx
mov ecx, esp
mov dword [ebp - 0x818], esp
push str.code
call dword [0x42f908]
push ecx
lea edx, [ebp - 0x82c]
mov ecx, esp
mov dword [ebp - 0x81c], esp
push edx
mov byte [ebp - 4], 0xf
call dword [0x42f918]
lea eax, [ebp - 0x814]
push eax
mov byte [ebp - 4], bl
call fcn.00424300
add esp, 0xc
mov bl, 0x10
push 0x430740
lea ecx, [ebp - 0x814]
mov byte [ebp - 4], bl
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Compare]
test eax, eax
jne 0x40819d
push ecx
mov ecx, esp
mov dword [ebp - 0x818], esp
push str.ModuleListCfgFileMD5
call dword [0x42f908]
push ecx
lea edx, [ebp - 0x82c]
mov ecx, esp
mov dword [ebp - 0x81c], esp
push edx
mov byte [ebp - 4], 0x11
call dword [0x42f918]
lea eax, [ebp - 0x820]
push eax
mov byte [ebp - 4], bl
call fcn.00424300
add esp, 0xc
push eax
lea ecx, [ebp - 0x844]
mov byte [ebp - 4], 0x12
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea ecx, [ebp - 0x820]
mov byte [ebp - 4], bl
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
push ecx
mov ecx, esp
mov dword [ebp - 0x818], esp
push str.ModuleListCfgFileURL
call dword [0x42f908]
push ecx
lea edx, [ebp - 0x82c]
mov ecx, esp
mov dword [ebp - 0x81c], esp
push edx
mov byte [ebp - 4], 0x13
call dword [0x42f918]
lea eax, [ebp - 0x820]
push eax
mov byte [ebp - 4], bl
call fcn.00424300
add esp, 0xc
push eax
lea ecx, [ebp - 0x838]
mov byte [ebp - 4], 0x14
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea ecx, [ebp - 0x820]
mov byte [ebp - 4], bl
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
push ecx
mov ecx, esp
mov dword [ebp - 0x818], esp
push str.UpdateExeMD5
call dword [0x42f908]
push ecx
lea edx, [ebp - 0x82c]
mov ecx, esp
mov dword [ebp - 0x81c], esp
push edx
mov byte [ebp - 4], 0x15
call dword [0x42f918]
lea eax, [ebp - 0x820]
push eax
mov byte [ebp - 4], bl
call fcn.00424300
add esp, 0xc
push eax
lea ecx, [ebp - 0x840]
mov byte [ebp - 4], 0x16
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea ecx, [ebp - 0x820]
mov byte [ebp - 4], bl
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
push ecx
mov ecx, esp
mov dword [ebp - 0x818], esp
push str.UpdateExeURL
call dword [0x42f908]
push ecx
lea edx, [ebp - 0x82c]
mov ecx, esp
mov dword [ebp - 0x81c], esp
push edx
mov byte [ebp - 4], 0x17
call dword [0x42f918]
lea eax, [ebp - 0x820]
push eax
mov byte [ebp - 4], bl
call fcn.00424300
add esp, 0xc
push eax
lea ecx, [ebp - 0x83c]
mov byte [ebp - 4], 0x18
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea ecx, [ebp - 0x820]
mov byte [ebp - 4], bl
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
push ecx
mov ecx, esp
mov dword [ebp - 0x818], esp
push str.ModuleFileDownBaseURL
call dword [0x42f908]
push ecx
lea edx, [ebp - 0x82c]
mov ecx, esp
mov dword [ebp - 0x81c], esp
push edx
mov byte [ebp - 4], 0x19
call dword [0x42f918]
lea eax, [ebp - 0x820]
push eax
mov byte [ebp - 4], bl
call fcn.00424300
add esp, 0xc
push eax
lea ecx, [ebp - 0x834]
mov byte [ebp - 4], 0x1a
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea ecx, [ebp - 0x820]
mov byte [ebp - 4], bl
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
push ecx
mov ecx, esp
mov dword [ebp - 0x818], esp
push str.UpgradeMode
call dword [0x42f908]
push ecx
lea edx, [ebp - 0x82c]
mov ecx, esp
mov dword [ebp - 0x81c], esp
push edx
mov byte [ebp - 4], 0x1b
call dword [0x42f918]
lea eax, [ebp - 0x820]
push eax
mov byte [ebp - 4], bl
call fcn.00424300
add esp, 0xc
push eax
lea ecx, [ebp - 0x850]
mov byte [ebp - 4], 0x1c
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea ecx, [ebp - 0x820]
mov byte [ebp - 4], bl
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
push ecx
mov ecx, esp
mov dword [ebp - 0x818], esp
push str.UpgradeLogURL
call dword [0x42f908]
push ecx
lea edx, [ebp - 0x82c]
mov ecx, esp
mov dword [ebp - 0x81c], esp
push edx
mov byte [ebp - 4], 0x1d
call dword [0x42f918]
lea eax, [ebp - 0x820]
push eax
mov byte [ebp - 4], bl
call fcn.00424300
add esp, 0xc
push eax
lea ecx, [ebp - 0x848]
mov byte [ebp - 4], 0x1e
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea ecx, [ebp - 0x820]
mov byte [ebp - 4], bl
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
push ecx
mov ecx, esp
mov dword [ebp - 0x818], esp
push str.ToolVer
call dword [0x42f908]
push ecx
lea edx, [ebp - 0x82c]
mov ecx, esp
mov dword [ebp - 0x81c], esp
push edx
mov byte [ebp - 4], 0x1f
call dword [0x42f918]
lea eax, [ebp - 0x820]
push eax
mov byte [ebp - 4], bl
call fcn.00424300
add esp, 0xc
push eax
lea ecx, [esi + 0x33668]
mov byte [ebp - 4], 0x20
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea ecx, [ebp - 0x820]
mov byte [ebp - 4], bl
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
push ecx
lea edx, [ebp - 0x850]
mov ecx, esp
mov dword [ebp - 0x818], esp
push edx
call dword [0x42f918]
mov eax, dword [esi]
mov edx, dword [eax + 0x34]
mov ecx, esi
call edx
mov dword [esi + 4], eax
mov dword [ebp - 0x820], 1
lea ecx, [ebp - 0x814]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
push 0x7fe
lea ecx, [ebp - 0x80e]
xor eax, eax
push edi
push ecx
mov word [ebp - 0x810], ax
call sub.MSVCR100.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x824]
call dword [0x42f90c]
mov bl, 0x21
lea ecx, [ebp - 0x844]
mov byte [ebp - 4], bl
call dword [sym.imp.mfc100u.dll_ATL::CSimpleStringT_wchar_t_1_::IsEmpty]
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test al, al
jne 0x408282
push ecx
mov ecx, esp
mov dword [ebp - 0x818], esp
push str.localencryptkeywords1579200___
call dword [0x42f908]
push ecx
lea edx, [ebp - 0x844]
mov ecx, esp
mov dword [ebp - 0x81c], esp
push edx
mov byte [ebp - 4], 0x22
call dword [0x42f918]
mov eax, dword [esi]
mov edx, dword [eax + 0x30]
lea ecx, [ebp - 0x814]
push ecx
mov ecx, esi
mov byte [ebp - 4], bl
call edx
push eax
lea ecx, [ebp - 0x824]
mov byte [ebp - 4], 0x23
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea ecx, [ebp - 0x814]
mov byte [ebp - 4], bl
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
lea ecx, [ebp - 0x828]
call dword [sym.imp.mfc100u.dll_]
push eax
lea ecx, [ebp - 0x824]
call dword [sym.imp.mfc100u.dll_]
push eax
push str.Md5FileMd5Value
push str.ToolInfo
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
jmp 0x408326
lea ecx, [ebp - 0x828]
call dword [sym.imp.mfc100u.dll_]
push eax
push 0x800
lea eax, [ebp - 0x810]
push eax
push 0x42fad8
push str.Md5FileMd5Value
push str.ToolInfo
call edi
push ecx
mov ecx, esp
mov dword [ebp - 0x818], esp
push 0x42fad8
call dword [0x42f67c]
push ecx
mov ecx, esp
mov dword [ebp - 0x81c], esp
push str.localencryptkeywords1579200___
mov byte [ebp - 4], 0x24
call dword [0x42f67c]
push ecx
lea edx, [ebp - 0x810]
mov ecx, esp
mov dword [ebp - 0x830], esp
push edx
mov byte [ebp - 4], 0x25
call dword [0x42f67c]
lea eax, [ebp - 0x814]
push eax
mov byte [ebp - 4], bl
call fcn.004241b0
add esp, 0x10
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x844]
mov byte [ebp - 4], 0x26
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_3]
lea ecx, [ebp - 0x814]
mov byte [ebp - 4], bl
call dword [sym.imp.mfc100u.dll_ATL::CStringT_char_class_StrTraitMFC_DLL_char_class_ATL::ChTraitsCRT_char_____::CStringT_char_class_StrTraitM]
lea ecx, [ebp - 0x838]
call dword [sym.imp.mfc100u.dll_ATL::CSimpleStringT_wchar_t_1_::IsEmpty]
test al, al
jne 0x4083ca
push ecx
mov ecx, esp
mov dword [ebp - 0x818], esp
push str.localencryptkeywords1579200___
call dword [0x42f908]
push ecx
lea edx, [ebp - 0x838]
mov ecx, esp
mov dword [ebp - 0x81c], esp
push edx
mov byte [ebp - 4], 0x27
call dword [0x42f918]
mov eax, dword [esi]
mov edx, dword [eax + 0x30]
lea ecx, [ebp - 0x814]
push ecx
mov ecx, esi
mov byte [ebp - 4], bl
call edx
push eax
lea ecx, [ebp - 0x824]
mov byte [ebp - 4], 0x28
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea ecx, [ebp - 0x814]
mov byte [ebp - 4], bl
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
lea ecx, [ebp - 0x828]
call dword [sym.imp.mfc100u.dll_]
push eax
lea ecx, [ebp - 0x824]
call dword [sym.imp.mfc100u.dll_]
push eax
push str.Md5FileDownloadUrl
push str.ToolInfo
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
jmp 0x40846e
lea ecx, [ebp - 0x828]
call dword [sym.imp.mfc100u.dll_]
push eax
push 0x800
lea eax, [ebp - 0x810]
push eax
push 0x42fad8
push str.Md5FileDownloadUrl
push str.ToolInfo
call edi
push ecx
mov ecx, esp
mov dword [ebp - 0x818], esp
push 0x42fad8
call dword [0x42f67c]
push ecx
mov ecx, esp
mov dword [ebp - 0x81c], esp
push str.localencryptkeywords1579200___
mov byte [ebp - 4], 0x29
call dword [0x42f67c]
push ecx
lea edx, [ebp - 0x810]
mov ecx, esp
mov dword [ebp - 0x830], esp
push edx
mov byte [ebp - 4], 0x2a
call dword [0x42f67c]
lea eax, [ebp - 0x814]
push eax
mov byte [ebp - 4], bl
call fcn.004241b0
add esp, 0x10
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x838]
mov byte [ebp - 4], 0x2b
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_3]
lea ecx, [ebp - 0x814]
mov byte [ebp - 4], bl
call dword [sym.imp.mfc100u.dll_ATL::CStringT_char_class_StrTraitMFC_DLL_char_class_ATL::ChTraitsCRT_char_____::CStringT_char_class_StrTraitM]
lea ecx, [ebp - 0x840]
call dword [sym.imp.mfc100u.dll_ATL::CSimpleStringT_wchar_t_1_::IsEmpty]
test al, al
jne 0x408512
push ecx
mov ecx, esp
mov dword [ebp - 0x818], esp
push str.localencryptkeywords1579200___
call dword [0x42f908]
push ecx
lea edx, [ebp - 0x840]
mov ecx, esp
mov dword [ebp - 0x81c], esp
push edx
mov byte [ebp - 4], 0x2c
call dword [0x42f918]
mov eax, dword [esi]
mov edx, dword [eax + 0x30]
lea ecx, [ebp - 0x814]
push ecx
mov ecx, esi
mov byte [ebp - 4], bl
call edx
push eax
lea ecx, [ebp - 0x824]
mov byte [ebp - 4], 0x2d
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea ecx, [ebp - 0x814]
mov byte [ebp - 4], bl
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
lea ecx, [ebp - 0x828]
call dword [sym.imp.mfc100u.dll_]
push eax
lea ecx, [ebp - 0x824]
call dword [sym.imp.mfc100u.dll_]
push eax
push str.ToolUpgradeExeFileMd5Value
push str.ToolInfo
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
jmp 0x4085b6
lea ecx, [ebp - 0x828]
call dword [sym.imp.mfc100u.dll_]
push eax
push 0x800
lea eax, [ebp - 0x810]
push eax
push 0x42fad8
push str.ToolUpgradeExeFileMd5Value
push str.ToolInfo
call edi
push ecx
mov ecx, esp
mov dword [ebp - 0x818], esp
push 0x42fad8
call dword [0x42f67c]
push ecx
mov ecx, esp
mov dword [ebp - 0x81c], esp
push str.localencryptkeywords1579200___
mov byte [ebp - 4], 0x2e
call dword [0x42f67c]
push ecx
lea edx, [ebp - 0x810]
mov ecx, esp
mov dword [ebp - 0x830], esp
push edx
mov byte [ebp - 4], 0x2f
call dword [0x42f67c]
lea eax, [ebp - 0x814]
push eax
mov byte [ebp - 4], bl
call fcn.004241b0
add esp, 0x10
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x840]
mov byte [ebp - 4], 0x30
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_3]
lea ecx, [ebp - 0x814]
mov byte [ebp - 4], bl
call dword [sym.imp.mfc100u.dll_ATL::CStringT_char_class_StrTraitMFC_DLL_char_class_ATL::ChTraitsCRT_char_____::CStringT_char_class_StrTraitM]
lea ecx, [ebp - 0x83c]
call dword [sym.imp.mfc100u.dll_ATL::CSimpleStringT_wchar_t_1_::IsEmpty]
test al, al
jne 0x40865a
push ecx
mov ecx, esp
mov dword [ebp - 0x818], esp
push str.localencryptkeywords1579200___
call dword [0x42f908]
push ecx
lea edx, [ebp - 0x83c]
mov ecx, esp
mov dword [ebp - 0x81c], esp
push edx
mov byte [ebp - 4], 0x31
call dword [0x42f918]
mov eax, dword [esi]
mov edx, dword [eax + 0x30]
lea ecx, [ebp - 0x814]
push ecx
mov ecx, esi
mov byte [ebp - 4], bl
call edx
push eax
lea ecx, [ebp - 0x824]
mov byte [ebp - 4], 0x32
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea ecx, [ebp - 0x814]
mov byte [ebp - 4], bl
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
lea ecx, [ebp - 0x828]
call dword [sym.imp.mfc100u.dll_]
push eax
lea ecx, [ebp - 0x824]
call dword [sym.imp.mfc100u.dll_]
push eax
push str.ToolUpgradeFileDownloadUrl
push str.ToolInfo
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
jmp 0x4086fe
lea ecx, [ebp - 0x828]
call dword [sym.imp.mfc100u.dll_]
push eax
push 0x800
lea eax, [ebp - 0x810]
push eax
push 0x42fad8
push str.ToolUpgradeFileDownloadUrl
push str.ToolInfo
call edi
push ecx
mov ecx, esp
mov dword [ebp - 0x818], esp
push 0x42fad8
call dword [0x42f67c]
push ecx
mov ecx, esp
mov dword [ebp - 0x81c], esp
push str.localencryptkeywords1579200___
mov byte [ebp - 4], 0x33
call dword [0x42f67c]
push ecx
lea edx, [ebp - 0x810]
mov ecx, esp
mov dword [ebp - 0x830], esp
push edx
mov byte [ebp - 4], 0x34
call dword [0x42f67c]
lea eax, [ebp - 0x814]
push eax
mov byte [ebp - 4], bl
call fcn.004241b0
add esp, 0x10
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x83c]
mov byte [ebp - 4], 0x35
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_3]
lea ecx, [ebp - 0x814]
mov byte [ebp - 4], bl
call dword [sym.imp.mfc100u.dll_ATL::CStringT_char_class_StrTraitMFC_DLL_char_class_ATL::ChTraitsCRT_char_____::CStringT_char_class_StrTraitM]
lea ecx, [ebp - 0x834]
call dword [sym.imp.mfc100u.dll_ATL::CSimpleStringT_wchar_t_1_::IsEmpty]
test al, al
jne 0x4087a2
push ecx
mov ecx, esp
mov dword [ebp - 0x818], esp
push str.localencryptkeywords1579200___
call dword [0x42f908]
push ecx
lea edx, [ebp - 0x834]
mov ecx, esp
mov dword [ebp - 0x81c], esp
push edx
mov byte [ebp - 4], 0x36
call dword [0x42f918]
mov eax, dword [esi]
mov edx, dword [eax + 0x30]
lea ecx, [ebp - 0x814]
push ecx
mov ecx, esi
mov byte [ebp - 4], bl
call edx
push eax
lea ecx, [ebp - 0x824]
mov byte [ebp - 4], 0x37
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea ecx, [ebp - 0x814]
mov byte [ebp - 4], bl
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
lea ecx, [ebp - 0x828]
call dword [sym.imp.mfc100u.dll_]
push eax
lea ecx, [ebp - 0x824]
call dword [sym.imp.mfc100u.dll_]
push eax
push str.ToolModuleFileDownloadUrl
push str.ToolInfo
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
jmp 0x408846
lea ecx, [ebp - 0x828]
call dword [sym.imp.mfc100u.dll_]
push eax
push 0x800
lea eax, [ebp - 0x810]
push eax
push 0x42fad8
push str.ToolModuleFileDownloadUrl
push str.ToolInfo
call edi
push ecx
mov ecx, esp
mov dword [ebp - 0x818], esp
push 0x42fad8
call dword [0x42f67c]
push ecx
mov ecx, esp
mov dword [ebp - 0x81c], esp
push str.localencryptkeywords1579200___
mov byte [ebp - 4], 0x38
call dword [0x42f67c]
push ecx
lea edx, [ebp - 0x810]
mov ecx, esp
mov dword [ebp - 0x830], esp
push edx
mov byte [ebp - 4], 0x39
call dword [0x42f67c]
lea eax, [ebp - 0x814]
push eax
mov byte [ebp - 4], bl
call fcn.004241b0
add esp, 0x10
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x834]
mov byte [ebp - 4], 0x3a
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_3]
lea ecx, [ebp - 0x814]
mov byte [ebp - 4], bl
call dword [sym.imp.mfc100u.dll_ATL::CStringT_char_class_StrTraitMFC_DLL_char_class_ATL::ChTraitsCRT_char_____::CStringT_char_class_StrTraitM]
lea ecx, [ebp - 0x848]
call dword [sym.imp.mfc100u.dll_ATL::CSimpleStringT_wchar_t_1_::IsEmpty]
test al, al
jne 0x4088ea
push ecx
mov ecx, esp
mov dword [ebp - 0x818], esp
push str.localencryptkeywords1579200___
call dword [0x42f908]
push ecx
lea edx, [ebp - 0x848]
mov ecx, esp
mov dword [ebp - 0x81c], esp
push edx
mov byte [ebp - 4], 0x3b
call dword [0x42f918]
mov eax, dword [esi]
mov edx, dword [eax + 0x30]
lea ecx, [ebp - 0x814]
push ecx
mov ecx, esi
mov byte [ebp - 4], bl
call edx
push eax
lea ecx, [ebp - 0x824]
mov byte [ebp - 4], 0x3c
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea ecx, [ebp - 0x814]
mov byte [ebp - 4], bl
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
lea ecx, [ebp - 0x828]
call dword [sym.imp.mfc100u.dll_]
push eax
lea ecx, [ebp - 0x824]
call dword [sym.imp.mfc100u.dll_]
push eax
push 0x4304dc
push str.ToolInfo
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
jmp 0x40898e
lea ecx, [ebp - 0x828]
call dword [sym.imp.mfc100u.dll_]
push eax
push 0x800
lea eax, [ebp - 0x810]
push eax
push 0x42fad8
push 0x4304dc
push str.ToolInfo
call edi
push ecx
mov ecx, esp
mov dword [ebp - 0x818], esp
push 0x42fad8
call dword [0x42f67c]
push ecx
mov ecx, esp
mov dword [ebp - 0x81c], esp
push str.localencryptkeywords1579200___
mov byte [ebp - 4], 0x3d
call dword [0x42f67c]
push ecx
lea edx, [ebp - 0x810]
mov ecx, esp
mov dword [ebp - 0x814], esp
push edx
mov byte [ebp - 4], 0x3e
call dword [0x42f67c]
lea eax, [ebp - 0x830]
push eax
mov byte [ebp - 4], bl
call fcn.004241b0
add esp, 0x10
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x834]
mov byte [ebp - 4], 0x3f
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_3]
lea ecx, [ebp - 0x830]
mov byte [ebp - 4], bl
call dword [sym.imp.mfc100u.dll_ATL::CStringT_char_class_StrTraitMFC_DLL_char_class_ATL::ChTraitsCRT_char_____::CStringT_char_class_StrTraitM]
lea ecx, [ebp - 0x844]
push ecx
lea ecx, [esi + 0x33644]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea edx, [ebp - 0x838]
push edx
lea ecx, [esi + 0x33648]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea eax, [ebp - 0x840]
push eax
lea ecx, [esi + 0x3364c]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea ecx, [ebp - 0x83c]
push ecx
lea ecx, [esi + 0x33650]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
push 0
lea ecx, [ebp - 0x834]
call dword [sym.imp.mfc100u.dll_ATL::CSimpleStringT_wchar_t_1_::GetBuffer]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyW]
push eax
lea edx, [esi + 0xc]
push edx
call edi
push 0
lea ecx, [ebp - 0x848]
call dword [sym.imp.mfc100u.dll_ATL::CSimpleStringT_wchar_t_1_::GetBuffer]
push eax
add esi, 0x624
push esi
call edi
lea ecx, [ebp - 0x824]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
lea ecx, [ebp - 0x84c]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
lea ecx, [ebp - 0x82c]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
lea ecx, [ebp - 0x848]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
lea ecx, [ebp - 0x850]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
lea ecx, [ebp - 0x834]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
lea ecx, [ebp - 0x83c]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
lea ecx, [ebp - 0x840]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
lea ecx, [ebp - 0x838]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
lea ecx, [ebp - 0x844]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
lea ecx, [ebp - 0x828]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
mov eax, dword [ebp - 0x820]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0040f12c
mov esp, ebp
pop ebp
ret