Function at 0x1004b016
Capabilities:
Check if file exists
Create process on windows
Delete file
Delete registry value
Download url
Get process heap flags
Get process heap force flags
Receive data

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1009a468
mov eax, dword fs:[0]
push eax
sub esp, 0x2a0
push ebx
push esi
push edi
mov eax, dword [0x10112038]
xor eax, esp
push eax
lea eax, [esp + 0x2b0]
mov dword fs:[0], eax
lea ecx, [esp + 0x1c]
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 [esp + 0x2b8], 0
push 0x100b70e4
lea ecx, [esp + 0x1c]
call dword [0x100b6094]
mov dword [esp + 0xc8], eax
mov ebx, 0x100b70f8
push ebx
lea ecx, [esp + 0x34]
mov byte [esp + 0x2bc], 1
call dword [0x100b6094]
mov dword [esp + 0x58], eax
push 0x100b70c8
lea ecx, [esp + 0x3c]
mov byte [esp + 0x2bc], 2
call dword [0x100b6094]
mov dword [esp + 0xa0], eax
push 0x100b70d8
lea ecx, [esp + 0x38]
mov byte [esp + 0x2bc], 3
call dword [0x100b6094]
mov dword [esp + 0x50], eax
mov edi, 0x100b70dc
push edi
lea ecx, [esp + 0xb8]
mov byte [esp + 0x2bc], 4
call dword [0x100b6094]
mov dword [esp + 0xd4], eax
push 0x100b8030
lea ecx, [esp + 0xb0]
mov byte [esp + 0x2bc], 5
call dword [0x100b6094]
mov dword [esp + 0xcc], eax
push 0x100b8024
lea ecx, [esp + 0xa8]
mov byte [esp + 0x2bc], 6
call dword [0x100b6094]
mov dword [esp + 0xc4], eax
push 0x100b70fc
lea ecx, [esp + 0xa0]
mov byte [esp + 0x2bc], 7
call dword [0x100b6094]
mov dword [esp + 0xbc], eax
push edi
lea ecx, [esp + 0x98]
mov byte [esp + 0x2bc], 8
call dword [0x100b6094]
mov dword [esp + 0x80], eax
push 0x100b70cc
lea ecx, [esp + 0x90]
mov byte [esp + 0x2bc], 9
call dword [0x100b6094]
mov dword [esp + 0x20], eax
push 0x100b70f4
lea ecx, [esp + 0x88]
mov byte [esp + 0x2bc], 0xa
call dword [0x100b6094]
mov dword [esp + 0x2c], eax
push ebx
lea ecx, [esp + 0x80]
mov byte [esp + 0x2bc], 0xb
call dword [0x100b6094]
push 0x100b7120
lea ecx, [esp + 0x78]
mov byte [esp + 0x2bc], 0xc
push ecx
mov esi, eax
call fcn.1000a016
mov byte [esp + 0x2c0], 0xd
push dword [esp + 0x34]
lea ecx, [esp + 0x78]
push ecx
mov ecx, eax
call fcn.10009c3e
lea ecx, [esp + 0x74]
push edi
push ecx
mov esi, eax
mov byte [esp + 0x2d0], 0xe
call fcn.1000a016
mov byte [esp + 0x2d0], 0xf
push dword [esp + 0x38]
lea ecx, [esp + 0x78]
push ecx
mov ecx, eax
call fcn.10009c3e
mov edi, 0x100b70e8
lea ecx, [esp + 0x74]
push edi
push ecx
mov esi, eax
mov byte [esp + 0x2e0], 0x10
call fcn.1000a016
push dword [esp + 0xa8]
lea ecx, [esp + 0x78]
push ecx
mov ecx, eax
mov byte [esp + 0x2e8], 0x11
call fcn.10009c3e
lea ecx, [esp + 0x108]
push 0x100b70e4
push ecx
mov esi, eax
mov byte [esp + 0x2f0], 0x12
call fcn.1000a016
push dword [esp + 0xf4]
lea ecx, [esp + 0xd4]
push ecx
mov ecx, eax
mov byte [esp + 0x2f8], 0x13
call fcn.10009c3e
add esp, 0x40
lea ecx, [esp + 0xc0]
push ebx
push ecx
mov esi, eax
mov byte [esp + 0x2c0], 0x14
call fcn.1000a016
push dword [esp + 0xcc]
lea ecx, [esp + 0x9c]
push ecx
mov ecx, eax
mov byte [esp + 0x2c8], 0x15
call fcn.10009c3e
lea ecx, [esp + 0xec]
push 0x100b70c8
push ecx
mov esi, eax
mov byte [esp + 0x2d0], 0x16
call fcn.1000a016
push dword [esp + 0xe4]
lea ecx, [esp + 0xa4]
push ecx
mov ecx, eax
mov byte [esp + 0x2d8], 0x17
call fcn.10009c3e
lea ecx, [esp + 0xd8]
push 0x100b8030
push ecx
mov esi, eax
mov byte [esp + 0x2e0], 0x18
call fcn.1000a016
push dword [esp + 0xfc]
lea ecx, [esp + 0x74]
push ecx
mov ecx, eax
mov byte [esp + 0x2e8], 0x19
call fcn.10009c3e
lea ecx, [esp + 0x100]
push 0x100b70f4
push ecx
mov esi, eax
mov byte [esp + 0x2f0], 0x1a
call fcn.1000a016
push dword [esp + 0x88]
lea ecx, [esp + 0xb4]
push ecx
mov ecx, eax
mov byte [esp + 0x2f8], 0x1b
call fcn.10009c3e
add esp, 0x40
lea ecx, [esp + 0xb0]
push edi
push ecx
mov esi, eax
mov byte [esp + 0x2c0], 0x1c
call fcn.1000a016
push dword [esp + 0xa8]
lea ecx, [esp + 0x7c]
push ecx
mov ecx, eax
mov byte [esp + 0x2c8], 0x1d
call fcn.10009c3e
lea ecx, [esp + 0xf0]
push 0x100b70fc
push ecx
mov esi, eax
mov byte [esp + 0x2d0], 0x1e
call fcn.1000a016
push dword [esp + 0x70]
lea ecx, [esp + 0x84]
push ecx
mov ecx, eax
mov byte [esp + 0x2d8], 0x1f
call fcn.10009c3e
lea ecx, [esp + 0xc8]
push 0x100b7110
push ecx
mov esi, eax
mov byte [esp + 0x2e0], 0x20
call fcn.1000a016
push dword [esp + 0xf0]
lea ecx, [esp + 0x8c]
push ecx
mov ecx, eax
mov byte [esp + 0x2e8], 0x21
call fcn.10009c3e
add esp, 0x30
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x2bc], 0x22
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_3]
lea ecx, [esp + 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 ecx, [esp + 0xa8]
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, [esp + 0x68]
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, [esp + 0xe0]
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, [esp + 0x70]
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, [esp + 0xb0]
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, [esp + 0x78]
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, [esp + 0xd0]
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, [esp + 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]
lea ecx, [esp + 0xb8]
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, [esp + 0x88]
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, [esp + 0xdc]
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, [esp + 0x90]
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, [esp + 0xc0]
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, [esp + 0x98]
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, [esp + 0xd8]
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, [esp + 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, [esp + 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, [esp + 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, [esp + 0x64]
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, [esp + 0x6c]
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, [esp + 0x74]
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, [esp + 0x7c]
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, [esp + 0x84]
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, [esp + 0x8c]
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, [esp + 0x94]
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, [esp + 0x9c]
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, [esp + 0xa4]
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, [esp + 0xac]
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, [esp + 0xb4]
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, [esp + 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, [esp + 0x38]
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, [esp + 0x30]
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, [esp + 0x18]
mov byte [esp + 0x2b8], 0
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 [sym.ASOHelper.dll_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t____CSystweakApp::m_strASO_UPDT]
xor edi, edi
cmp dword [eax - 0xc], edi
je 0x1004b5df
push eax
push dword [esp + 0x20]
push str._s_s.exe
push 0x101176ac
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
add esp, 0x10
jmp 0x1004b5f6
push dword [esp + 0x1c]
push str._s.exe
push 0x101176ac
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
add esp, 0xc
lea ecx, [esp + 0x14]
mov dword [esp + 0x3c], edi
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, [esp + 0x18]
push eax
lea ecx, [esp + 0xe8]
mov dword [esp + 0x1c], SysReAllocStringLen
call sym.ASOHelper.dll_public:_void___thiscall_CRegistry::constructor_struct_HKEY____const_const__
mov byte [esp + 0x2b8], 0x24
call sym.ASOHelper.dll_wchar_t_const____cdecl_GetSystweakAppKey_void_
push eax
lea ecx, [esp + 0x28]
call dword [0x100b6094]
push 1
mov byte [esp + 0x2bc], 0x25
push dword [esp + 0x28]
mov esi, reloc.OLEAUT32.dll_SysReAllocString
push esi
lea ecx, [esp + 0xf0]
mov dword [esp + 0xf4], 0x20019
call sym.ASOHelper.dll_public:_int___thiscall_CRegistry::Open_struct_HKEY_____wchar_t_const___bool_
test eax, eax
je 0x1004b6c0
mov ebx, str.prurl
push ebx
lea ecx, [esp + 0xe8]
call sym.ASOHelper.dll_public:_int___thiscall_CRegistry::VerifyValue_wchar_t_const__
test eax, eax
je 0x1004b68c
lea eax, [esp + 0x14]
push eax
push ebx
lea ecx, [esp + 0xec]
call sym.ASOHelper.dll_public:_int___thiscall_CRegistry::ReadString_wchar_t_const___class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____
mov ebx, str.InstallPR
push ebx
lea ecx, [esp + 0xe8]
call sym.ASOHelper.dll_public:_int___thiscall_CRegistry::VerifyValue_wchar_t_const__
test eax, eax
je 0x1004b6b4
lea eax, [esp + 0x3c]
push eax
push ebx
lea ecx, [esp + 0xec]
call sym.ASOHelper.dll_public:_int___thiscall_CRegistry::ReadDWORD_wchar_t_const___unsigned_long_int__
lea ecx, [esp + 0xe4]
call sym.ASOHelper.dll_public:_void___thiscall_CRegistry::Close_void_
cmp dword [esp + 0x3c], edi
jne 0x1004b6f7
lea ecx, [esp + 0x24]
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, [esp + 0xe4]
call sym.ASOHelper.dll_public_virtual:_void___thiscall_CRegistry::destructor_void_
lea ecx, [esp + 0x14]
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, [esp + 0x1c]
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, edi
jmp 0x1004ba0b
mov eax, dword [esp + 0x14]
cmp dword [eax - 0xc], edi
je 0x1004b9df
lea eax, [esp + 0x14]
push eax
mov ecx, 0x101176a8
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_3]
mov ebx, 0x100be7bc
push ebx
lea ecx, [esp + 0x48]
call dword [0x100b6094]
lea ecx, [esp + 0x28]
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, [esp + 0x28]
push eax
mov byte [esp + 0x2bc], 0x27
call sym.ASOHelper.dll_bool___cdecl_ReturnAppDataFolder_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____
pop ecx
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x14]
call dword [0x100b6030]
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x44]
mov byte [esp + 0x2bc], 0x28
call dword [0x100b6030]
lea eax, [esp + 0x10]
push 0x101176ac
push eax
mov byte [esp + 0x2c0], 0x29
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__
lea eax, [esp + 0x18]
push eax
call sym.ASOHelper.dll_enum_PCO_ERROR_CODES___cdecl_DoesPathExists_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t____const__
add esp, 0xc
test eax, eax
je 0x1004b799
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push dword [esp + 0x14]
call dword [sym.imp.WININET.dll_DeleteUrlCacheEntryW]
lea eax, [esp + 0x11c]
push eax
call fcn.10045bca
lea eax, [esp + 0x11c]
push eax
push edi
mov byte [esp + 0x2c0], 0x2a
push dword [esp + 0x18]
push dword [esp + 0x20]
push edi
call sub.urlmon.dll_URLDownloadToFileW
cmp eax, edi
jl 0x1004b998
push dword [esp + 0x10]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1004b998
mov edi, 0x100c24b4
push edi
lea ecx, [esp + 0x38]
call dword [0x100b5fc8]
mov dword [esp + 0x18], eax
push edi
lea ecx, [esp + 0x3c]
mov byte [esp + 0x2bc], 0x2b
call dword [0x100b5fc8]
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x34]
push ecx
mov ecx, eax
mov byte [esp + 0x2c0], 0x2c
call fcn.10009c3e
mov byte [esp + 0x2c0], 0x2d
push dword [esp + 0x20]
lea ecx, [esp + 0x38]
push ecx
mov ecx, eax
call fcn.10009c3e
add esp, 0x10
lea ecx, [esp + 0x30]
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, [esp + 0x38]
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, [esp + 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]
push 1
push ebx
push 0x100c24b8
push dword [esp + 0x38]
push 0x100b7f34
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x104]
mov dword [esp + 0x1c], SysReAllocStringLen
call sym.ASOHelper.dll_public:_void___thiscall_CRegistry::constructor_struct_HKEY____const_const__
mov byte [esp + 0x2b8], 0x32
mov dword [esp + 0x104], 0x2001f
call sym.ASOHelper.dll_wchar_t_const____cdecl_GetSystweakAppKey_void_
push eax
lea ecx, [esp + 0x24]
call dword [0x100b6094]
push 1
mov byte [esp + 0x2bc], 0x33
push dword [esp + 0x24]
lea ecx, [esp + 0x108]
push esi
call sym.ASOHelper.dll_public:_int___thiscall_CRegistry::Open_struct_HKEY_____wchar_t_const___bool_
test eax, eax
je 0x1004b91d
mov ebx, str.prurl
push ebx
lea ecx, [esp + 0x104]
call sym.ASOHelper.dll_public:_int___thiscall_CRegistry::DeleteValue_wchar_t_const__
mov edi, dword [sym.imp.SHLWAPI.dll_SHDeleteValueW]
test eax, eax
jne 0x1004b8ff
push ebx
push dword [esp + 0x24]
push esi
call edi
mov ebx, str.InstallPR
push ebx
lea ecx, [esp + 0x104]
call sym.ASOHelper.dll_public:_int___thiscall_CRegistry::DeleteValue_wchar_t_const__
test eax, eax
jne 0x1004b91d
push ebx
push dword [esp + 0x24]
push esi
call edi
lea ecx, [esp + 0x100]
call sym.ASOHelper.dll_public:_void___thiscall_CRegistry::Close_void_
lea ecx, [esp + 0x20]
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, [esp + 0x100]
call sym.ASOHelper.dll_public_virtual:_void___thiscall_CRegistry::destructor_void_
lea ecx, [esp + 0x2c]
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 byte [esp + 0x2b8], 0x29
lea ecx, [esp + 0x120]
mov dword [esp + method.MyCallback.virtual_0], vtable.MyCallback.0
call fcn.1008d07e
lea ecx, [esp + 0x40]
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, [esp + 0x10]
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, [esp + 0x28]
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, [esp + 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]
xor edi, edi
inc edi
jmp 0x1004b6c6
mov byte [esp + 0x2b8], 0x29
lea ecx, [esp + 0x120]
mov dword [esp + method.MyCallback.virtual_0], vtable.MyCallback.0
call fcn.1008d07e
lea ecx, [esp + 0x40]
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, [esp + 0x10]
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, [esp + 0x28]
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, [esp + 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, [esp + 0x24]
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, [esp + 0xe4]
call sym.ASOHelper.dll_public_virtual:_void___thiscall_CRegistry::destructor_void_
lea ecx, [esp + 0x14]
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, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
xor eax, eax
mov ecx, dword [esp + 0x2b0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret