Function at 0x401ad7
Capabilities:
Read .ini file

Disassembly:
mov eax, 0x114c
call fcn.00420f40
push ebx
push ebp
mov ebp, ecx
push esi
push edi
lea esi, [ebp + 0x1c]
mov ecx, esi
call fcn.00402c9d
push dword [esi + 4]
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ebx, str.Startup
push 1
push str.engine
push ebx
call edi
neg eax
sbb al, al
mov ecx, esi
inc al
mov byte [ebp + 0x1f6], al
call fcn.00402c9d
push dword [esi + 4]
push 0
push str.AllUsers
push ebx
call edi
dec eax
mov ecx, esi
neg eax
sbb al, al
inc al
mov byte [ebp + 0x818], al
call fcn.00402c9d
push dword [esi + 4]
push 0
push str.MediaFormat
push ebx
call edi
mov ecx, esi
mov dword [ebp + 0x4e8], eax
call fcn.00402c9d
push dword [esi + 4]
push 0
push str.LogMode
push ebx
call edi
and byte [esp + 0x10], 0
mov dword [ebp + 0x4ec], eax
xor eax, eax
lea edi, [esp + 0x11]
mov ecx, esi
stosw word es:[edi], ax
call fcn.00402c9d
push dword [esi + 4]
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [esp + 0x14]
push 3
push eax
push 0x451a40
push str.EnableLangDlg
push ebx
call edi
cmp eax, 1
jne 0x401bb5
cmp byte [esp + 0x10], 0x79
je 0x401bae
cmp byte [esp + 0x10], 0x59
jne 0x401bb5
mov byte [ebp + 0x1f8], 1
mov ecx, esi
call fcn.00402c9d
push dword [esi + 4]
lea eax, [ebp + 0x234]
push 0x1f4
push eax
push 0x451a40
push str.AppName
push ebx
call edi
mov ecx, esi
call fcn.00402c9d
push dword [esi + 4]
lea eax, [ebp + 0x4f8]
push pe_nt_image_headers32
push eax
push 0x451a40
push str.CompanyName
push ebx
call edi
mov ecx, esi
call fcn.00402c9d
push dword [esi + 4]
lea eax, [ebp + 0x5f8]
push pe_nt_image_headers32
push eax
push 0x451a40
push str.CompanyURL
push ebx
call edi
and byte [esp + 0x58], 0
push 0x40
pop ecx
xor eax, eax
lea edi, [esp + 0x59]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, esi
stosb byte es:[edi], al
call fcn.00402c9d
push dword [esi + 4]
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [esp + 0x5c]
push 0x104
push eax
push 0x451a40
push str.Header
push ebx
call edi
lea eax, [esp + 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
je 0x401c79
lea eax, [esp + 0x58]
lea ecx, [ebp + 0x218]
push eax
call fcn.004033a2
jmp 0x401c89
push str.data1.hdr
lea ecx, [ebp + 0x218]
call fcn.00403200
mov ecx, esi
call fcn.00402c9d
push dword [esi + 4]
lea eax, [esp + 0x160]
push 0x1000
push eax
push 0x451a40
push str.cmdline
push ebx
call edi
lea eax, [esp + 0x15c]
mov ecx, ebp
push eax
call fcn.004017e0
and byte [ebp + 0x42d], 0
lea edi, [ebp + 0x42d]
mov ecx, esi
call fcn.00402c9d
push dword [esi + 4]
push 0x64
push edi
push 0x451a40
push str.ProductGUID
push ebx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
and byte [esp + 0x30], 0
push 9
pop ecx
xor eax, eax
lea edi, [esp + 0x31]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, esi
stosb byte es:[edi], al
call fcn.00402c9d
push dword [esi + 4]
lea eax, [esp + 0x34]
push 0x28
push eax
push 0x451a40
push str.InstallGUID
push ebx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [esp + 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
je 0x401d3b
lea eax, [esp + 0x30]
lea ecx, [ebp + 0x494]
push eax
call fcn.00402996
and byte [esp + 0x14], 0
xor eax, eax
lea edi, [esp + 0x15]
mov ecx, esi
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosb byte es:[edi], al
call fcn.00402c9d
push dword [esi + 4]
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [esp + 0x18]
push 0xa
push eax
push 0x44c290
push str.SmallProgress
push ebx
call edi
lea eax, [esp + 0x14]
push eax
push 0x44c27c
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
neg eax
sbb al, al
mov ecx, esi
inc al
mov byte [ebp + 0x4f0], al
call fcn.00402c9d
push dword [esi + 4]
push 5
push str.SplashTime
push ebx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
and byte [ebp + 0x6f8], 0
mov ecx, esi
mov dword [ebp + 0x4f4], eax
call fcn.00402c9d
push dword [esi + 4]
lea eax, [ebp + 0x6f8]
push 0x104
push eax
push 0x451a40
push str.Skin
push ebx
call edi
mov ecx, esi
call fcn.00402c9d
mov ecx, dword [esi + 4]
and byte [esp + 0x24], 0
and dword [esp + 0x2c], 0
mov eax, 0x200
lea edx, [ebp + 0x81c]
push ecx
push eax
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], edx
call fcn.0040276d
push eax
push 0x451a40
push str.ErrorReportURL
push ebx
call edi
lea ecx, [esp + 0x20]
call fcn.00402746
mov eax, dword [ebp + 0x82c]
test eax, eax
je 0x401e2f
push eax
call dword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
jne 0x401e3f
push str.http:__www.installshield.com_isetup_ProErrorCentral.asp_ErrorCode_d_:_0x_xErrorInfo_s
lea ecx, [ebp + 0x81c]
call fcn.00402996
mov ecx, esi
call fcn.00402c9d
push dword [esi + 4]
lea eax, [esp + 0x18]
push 0xa
push eax
push 0x44c290
push str.PasswordDialog
push ebx
call edi
lea eax, [esp + 0x14]
push eax
push 0x44c27c
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
neg eax
sbb al, al
mov ecx, esi
inc al
mov byte [ebp + 0x839], al
call fcn.00402c9d
push dword [esi + 4]
add ebp, 0x83a
push 0xa
push ebp
push 0x451a40
push str.UseThisEngine
push ebx
call edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114c
ret