Function at 0x4220fa
Capabilities:
Check if file exists
Get installed programs
Set registry value

Disassembly:
push ebp
sub esp, 0x208
lea ebp, [esp - 4]
mov eax, dword [0x664e94]
xor eax, ebp
mov dword [ebp + 0x208], eax
push 0x144
mov eax, 0x5bae98
call fcn.0058f9b8
mov ebx, ecx
xor esi, esi
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x70], esi
call fcn.00496dcd
push eax
lea ecx, [ebp - 0x6c]
call fcn.0040141e
mov dword [ebp - 4], esi
call fcn.00496dcd
push eax
lea ecx, [ebp - 0x18]
call fcn.0040141e
mov byte [ebp - 4], 1
call fcn.00496dcd
push eax
lea ecx, [ebp - 0x50]
call fcn.0040141e
mov byte [ebp - 4], 2
mov dword [ebp - 0x4c], esi
cmp dword [ebx + 0x200], esi
jne 0x4221a1
push str.Skipping_SetupInstallGroups__no_groups_are_defined
call fcn.004437b6
xor esi, esi
inc esi
pop ecx
mov ecx, dword [ebp - 0x50]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x6c]
add ecx, 0xfffffff0
call fcn.00401019
mov eax, esi
jmp 0x423eb1
lea eax, [ebp - 0x6c]
push eax
lea ecx, [ebx + 0x174]
push str.AllUsersAppData
call fcn.004a29f8
test eax, eax
je 0x423e86
mov eax, dword [ebp - 0x6c]
cmp dword [eax - 0xc], esi
je 0x423e86
push 0x5c
lea ecx, [ebp - 0x6c]
call fcn.00415dfa
push 0x5ded78
lea ecx, [ebp - 0x6c]
call fcn.004022ca
push str.default
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x64], esi
call fcn.004039d7
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x74]
push eax
lea ecx, [ebx + 0x1f4]
mov byte [ebp - 4], 3
mov dword [ebp - 0x70], 1
call fcn.0041b4ca
mov edi, dword [ebp - 0x64]
test eax, eax
je 0x42221d
mov byte [ebp - 0x21], 0
test edi, edi
jne 0x422221
mov byte [ebp - 0x21], 1
mov ecx, dword [ebp - 0x74]
add ecx, 0xfffffff0
mov dword [ebp - 4], 2
call fcn.00401019
cmp byte [ebp - 0x21], 0
je 0x422261
lea eax, [ebp - 0x18]
push str.Default_group_information_not_found_in_SetupInstallGroups
push eax
call fcn.00401518
pop ecx
pop ecx
push 0xd
call dword [sym.imp.KERNEL32.dll_SetLastError]
push dword [ebp - 0x18]
call fcn.004437b6
pop ecx
xor esi, esi
jmp 0x422179
lea esi, [edi + 0x28]
mov eax, dword [esi + 4]
mov dword [ebp - 0x3c], eax
mov byte [ebp - 0x21], 0
test eax, eax
je 0x4222cc
lea eax, [ebp - 0x3c]
push eax
mov ecx, esi
call fcn.00401b20
push eax
lea ecx, [ebp - 0x50]
call fcn.0040227d
mov eax, dword [ebx + 0xd8]
mov ecx, dword [eax + 0x1f0]
lea eax, [ebp - 0x4c]
push eax
push dword [ebp - 0x50]
call fcn.0041b076
test eax, eax
je 0x4222c0
mov eax, dword [ebp - 0x4c]
test eax, eax
je 0x4222c0
lea ecx, [eax + 0x10]
add eax, 0xc
push ecx
push eax
call fcn.0043de5d
pop ecx
pop ecx
test al, al
je 0x4222c0
mov byte [ebp - 0x21], 1
cmp dword [ebp - 0x3c], 0
jne 0x422272
cmp byte [ebp - 0x21], 0
jne 0x4222ea
push str.No_items_from_default_group_selected_for_install__skipping_group_install.
call fcn.004437b6
cmp byte [ebx + 0x16c], 0
pop ecx
jne 0x4222ea
push str.No_items_from_default_group_selected_for_install_and_not_found_any_product_just_update_refcount_only__skipping_group_install.
jmp 0x422170
call fcn.00496dcd
push eax
lea ecx, [ebp - 0x14]
call fcn.0040141e
mov byte [ebp - 4], 4
call fcn.00496dcd
push eax
lea ecx, [ebp - 0x5c]
call fcn.0040141e
mov byte [ebp - 4], 5
call fcn.00496dcd
push eax
lea ecx, [ebp - 0x64]
call fcn.0040141e
mov byte [ebp - 4], 6
call fcn.00496dcd
push eax
lea ecx, [ebp - 0x74]
call fcn.0040141e
mov byte [ebp - 4], 7
call fcn.00496dcd
push eax
lea ecx, [ebp - 0x60]
call fcn.0040141e
mov byte [ebp - 4], 8
call fcn.00496dcd
push eax
lea ecx, [ebp - 0x1c]
call fcn.0040141e
mov byte [ebp - 4], 9
call fcn.00496dcd
push eax
lea ecx, [ebp - 0x54]
call fcn.0040141e
mov byte [ebp - 4], 0xa
call fcn.00496dcd
push eax
lea ecx, [ebp - 0x48]
call fcn.0040141e
mov byte [ebp - 4], 0xb
call fcn.00496dcd
push eax
lea ecx, [ebp - 0x58]
call fcn.0040141e
push dword [edi + 4]
mov esi, str._s_s
push dword [ebp - 0x6c]
lea eax, [ebp - 0x14]
push esi
push eax
mov byte [ebp - 4], 0xc
call fcn.00401518
push dword [ebp - 0x14]
lea eax, [ebp - 0x64]
push str._s_setup.dcf
push eax
call fcn.00401518
push dword [ebp - 0x14]
lea eax, [ebp - 0x5c]
push str._s_setup.exe
push eax
call fcn.00401518
push dword [ebp - 0x14]
lea eax, [ebp - 0x74]
push str._s_bin
push eax
call fcn.00401518
push dword [edi + 0x14]
lea eax, [ebp - 0x60]
push dword [ebp - 0x14]
push esi
push eax
call fcn.00401518
mov ecx, dword [ebx + 0xdc]
add esp, 0x44
call fcn.00401b8e
push eax
lea eax, [ebp - 0x48]
push str._sbinProductVersion.dll
push eax
call fcn.00401518
mov ebx, dword [ebp - 0x48]
add esp, 0xc
push ebx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov esi, dword [ebp - 0x74]
push 0
push esi
mov dword [ebp - 0x2c], eax
call fcn.004170b7
pop ecx
pop ecx
test eax, eax
jne 0x422490
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x422490
push esi
lea eax, [ebp - 0x18]
push str.___Failed_creating_DCF_cache_directory__s
push eax
call fcn.00401518
push dword [ebp - 0x18]
call fcn.004437b6
mov ecx, dword [ebp - 0x58]
add esp, 0x10
add ecx, 0xfffffff0
call fcn.00401019
lea ecx, [ebx - 0x10]
call fcn.00401019
mov ecx, dword [ebp - 0x54]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x60]
add ecx, 0xfffffff0
call fcn.00401019
lea ecx, [esi - 0x10]
call fcn.00401019
mov ecx, dword [ebp - 0x64]
add ecx, 0xfffffff0
jmp 0x4226db
mov eax, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x64]
add eax, 0xe8
push 0
mov dword [ebp - 0x70], eax
mov eax, dword [eax]
push ebx
push eax
call fcn.0043c6ff
test eax, eax
jne 0x422538
mov eax, dword [ebp - 0x70]
push ebx
push dword [eax]
lea eax, [ebp - 0x18]
push str.___Failed_caching__s_to__s
push eax
call fcn.00401518
push dword [ebp - 0x18]
call fcn.004437b6
mov edi, dword [ebp - 0x14]
push edi
call fcn.0041654a
mov ecx, dword [ebp - 0x58]
add esp, 0x18
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x48]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x54]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x60]
add ecx, 0xfffffff0
call fcn.00401019
lea ecx, [esi - 0x10]
call fcn.00401019
lea ecx, [ebx - 0x10]
call fcn.00401019
mov ecx, dword [ebp - 0x5c]
add ecx, 0xfffffff0
call fcn.00401019
lea ecx, [edi - 0x10]
call fcn.00401019
jmp 0x42225a
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax + 0xdc]
call fcn.00401b8e
push eax
lea eax, [ebp - 0x54]
push str._ssetup.exe
push eax
call fcn.00401518
add esp, 0xc
push 0
push dword [ebp - 0x5c]
push dword [ebp - 0x54]
call fcn.0043c6ff
test eax, eax
jne 0x4225ef
mov edi, dword [ebp - 0x5c]
push edi
push dword [ebp - 0x54]
lea eax, [ebp - 0x18]
push str.___Failed_caching__s_to__s
push eax
call fcn.00401518
push dword [ebp - 0x18]
call fcn.004437b6
push dword [ebp - 0x14]
call fcn.0041654a
mov ecx, dword [ebp - 0x58]
add esp, 0x18
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x48]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x54]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x60]
add ecx, 0xfffffff0
call fcn.00401019
lea ecx, [esi - 0x10]
call fcn.00401019
lea ecx, [ebx - 0x10]
call fcn.00401019
lea ecx, [edi - 0x10]
call fcn.00401019
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
jmp 0x42252e
call fcn.00496dcd
push eax
lea ecx, [ebp - 0x30]
call fcn.0040141e
mov byte [ebp - 4], 0xd
call fcn.00496dcd
push eax
lea ecx, [ebp - 0x44]
call fcn.0040141e
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax + 0xdc]
mov byte [ebp - 4], 0xe
call fcn.00401b8e
push eax
lea eax, [ebp - 0x30]
push str._sbin_
push eax
call fcn.00401518
push esi
lea eax, [ebp - 0x44]
push 0x5e193c
push eax
call fcn.00401518
push 0
push dword [ebp - 0x44]
push dword [ebp - 0x30]
call fcn.00417284
add esp, 0x24
test al, al
jne 0x4226eb
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, dword [ebp - 0x44]
push eax
push edi
push dword [ebp - 0x30]
lea eax, [ebp - 0x18]
push str.___Failed_caching__s_to__s_error:__d
push eax
call fcn.00401518
push dword [ebp - 0x18]
call fcn.004437b6
push dword [ebp - 0x14]
call fcn.0041654a
add esp, 0x1c
lea ecx, [edi - 0x10]
call fcn.00401019
mov ecx, dword [ebp - 0x30]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x58]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x48]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x54]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x60]
add ecx, 0xfffffff0
call fcn.00401019
lea ecx, [esi - 0x10]
call fcn.00401019
lea ecx, [ebx - 0x10]
call fcn.00401019
mov ecx, dword [ebp - 0x5c]
add ecx, 0xfffffff0
jmp 0x4225df
cmp dword [ebp - 0x2c], 0
je 0x422815
call fcn.00496dcd
push eax
lea ecx, [ebp - 0x7c]
call fcn.0040141e
mov ecx, dword [ebp - 0x40]
lea eax, [ebp - 0x7c]
push eax
push str.CommonFilesFolder
add ecx, 0x174
mov byte [ebp - 4], 0xf
call fcn.004a29f8
test eax, eax
je 0x422806
mov eax, dword [ebp - 0x7c]
cmp dword [eax - 0xc], 0
je 0x422806
push dword [edi + 4]
push eax
lea eax, [ebp - 0x1c]
push str._sRoxio_SharedInstallers_s
push eax
call fcn.00401518
push 0
push dword [ebp - 0x1c]
call fcn.004170b7
add esp, 0x18
test eax, eax
jne 0x422767
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x422806
push dword [ebp - 0x1c]
lea eax, [ebp - 0x58]
push str._sProductVersion.dll
push eax
call fcn.00401518
add esp, 0xc
push 0
push dword [ebp - 0x58]
push dword [ebp - 0x48]
call fcn.0043c6ff
test eax, eax
jne 0x422806
push dword [ebp - 0x58]
lea eax, [ebp - 0x18]
push dword [ebp - 0x48]
push str.___Failed_caching__s_to__s
push eax
call fcn.00401518
push dword [ebp - 0x18]
call fcn.004437b6
mov edi, dword [ebp - 0x1c]
push edi
call fcn.0041654a
push dword [ebp - 0x14]
call fcn.0041654a
mov ecx, dword [ebp - 0x7c]
add esp, 0x1c
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x44]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x30]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x58]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x48]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x54]
add ecx, 0xfffffff0
call fcn.00401019
lea ecx, [edi - 0x10]
jmp 0x4226c0
mov ecx, dword [ebp - 0x7c]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0xe
call fcn.00401019
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0xd8]
mov eax, dword [eax + 0x1f0]
mov eax, dword [eax + 0xc]
neg eax
sbb eax, eax
mov dword [ebp - 0x3c], eax
je 0x4228f4
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0xd8]
mov ecx, dword [eax + 0x1f0]
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x3c]
push eax
call fcn.0041bd4a
mov esi, dword [ebp - 0x4c]
test esi, esi
je 0x4228ea
cmp byte [esi + 0x64], 0
jne 0x4228ea
call fcn.00496dcd
push eax
lea ecx, [ebp - 0x28]
call fcn.0040141e
push dword [ebp - 0x50]
lea eax, [ebp - 0x28]
push dword [ebp - 0x14]
mov byte [ebp - 4], 0x10
push str._s_s.dcf
push eax
call fcn.00401518
mov ebx, dword [ebp - 0x28]
push ebx
push dword [ebp - 0x50]
lea eax, [ebp - 0x18]
push str.___Caching_package_data_for__s_at__s
push eax
call fcn.00401518
push dword [ebp - 0x18]
call fcn.004437b6
mov eax, dword [esi]
add esp, 0x24
push ebx
mov ecx, esi
call dword [eax + 0x38]
test al, al
jne 0x4228de
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push dword [ebp - 0x50]
lea eax, [ebp - 0x18]
push str.___Failed_caching_package_data_for_product__d__with_error:__d
push eax
call fcn.00401518
push dword [ebp - 0x18]
call fcn.004437b6
add esp, 0x14
lea ecx, [ebx - 0x10]
mov byte [ebp - 4], 0xe
call fcn.00401019
cmp dword [ebp - 0x3c], 0
jne 0x422834
mov ecx, dword [ebp - 0x44]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x30]
add ecx, 0xfffffff0
call fcn.00401019
xor ebx, ebx
mov dword [ebp - 0x20], ebx
mov byte [ebp - 4], 0x11
call fcn.00496dcd
push eax
lea ecx, [ebp - 0x3c]
call fcn.0040141e
push dword [edi + 4]
lea eax, [ebp - 0x3c]
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall_s
push eax
mov byte [ebp - 4], 0x12
call fcn.00401518
add esp, 0xc
push ebx
lea eax, [ebp - 0x20]
push eax
push ebx
push 0xf003f
push ebx
push ebx
push ebx
push dword [ebp - 0x3c]
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
cmp eax, ebx
je 0x42299a
push eax
push dword [ebp - 0x3c]
lea eax, [ebp - 0x18]
push str.Failed_creating_uninstall_key__s__with_error:__d
push eax
call fcn.00401518
add esp, 0x10
push dword [ebp - 0x18]
call fcn.004437b6
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov byte [ebp - 0x65], bl
push 0x63947c
lea eax, [ebp - 0x65]
push eax
call fcn.005902bc
mov eax, dword [edi + 0x18]
cmp dword [eax - 0xc], ebx
je 0x422a20
mov ecx, dword [eax - 0xc]
push eax
inc ecx
push ecx
lea eax, [ebp]
push eax
call fcn.0059050e
lea eax, [ebp]
push eax
call fcn.0058f15d
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
add esp, 0x10
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp]
push eax
push 1
push ebx
push 0x5e1718
push dword [ebp - 0x20]
call esi
cmp eax, ebx
je 0x422a26
push eax
lea eax, [ebp - 0x18]
push str.Failed_adding_HelpLink_registry_key__with_error:__d
push eax
call fcn.00401518
add esp, 0xc
push dword [ebp - 0x18]
call fcn.004437b6
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov dword [ebp - 0xf4], ebx
push 0x63a800
lea eax, [ebp - 0xf4]
jmp 0x422994
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov eax, dword [edi + 0x1c]
cmp dword [eax - 0xc], ebx
je 0x422aa6
mov ecx, dword [eax - 0xc]
push eax
inc ecx
push ecx
lea eax, [ebp]
push eax
call fcn.0059050e
lea eax, [ebp]
push eax
call fcn.0058f15d
add esp, 0x10
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp]
push eax
push 1
push ebx
push str.URLInfoAbout
push dword [ebp - 0x20]
call esi
cmp eax, ebx
je 0x422aa6
push eax
lea eax, [ebp - 0x18]
push str.Failed_adding_URLInfoAbout_registry_key__with_error:__d
push eax
call fcn.00401518
add esp, 0xc
push dword [ebp - 0x18]
call fcn.004437b6
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov dword [ebp - 0x124], ebx
push 0x63a800
lea eax, [ebp - 0x124]
jmp 0x422994
mov eax, dword [edi + 0x20]
cmp dword [eax - 0xc], ebx
je 0x422b26
mov ecx, dword [eax - 0xc]
push eax
inc ecx
push ecx
lea eax, [ebp]
push eax
call fcn.0059050e
lea eax, [ebp]
push eax
call fcn.0058f15d
add esp, 0x10
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp]
push eax
push 1
push ebx
push str.BuildNumber
push dword [ebp - 0x20]
call esi
cmp eax, ebx
je 0x422b26
push eax
lea eax, [ebp - 0x18]
push str.Failed_adding_Build_Number_registry_key__with_error:__d
push eax
call fcn.00401518
add esp, 0xc
push dword [ebp - 0x18]
call fcn.004437b6
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov dword [ebp - 0x128], ebx
push 0x63a800
lea eax, [ebp - 0x128]
jmp 0x422994
mov eax, dword [edi + 0x24]
cmp dword [eax - 0xc], ebx
je 0x422ba6
mov ecx, dword [eax - 0xc]
push eax
inc ecx
push ecx
lea eax, [ebp]
push eax
call fcn.0059050e
lea eax, [ebp]
push eax
call fcn.0058f15d
add esp, 0x10
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp]
push eax
push 1
push ebx
push 0x5e1590
push dword [ebp - 0x20]
call esi
cmp eax, ebx
je 0x422ba6
push eax
lea eax, [ebp - 0x18]
push str.Failed_adding_SKU_registry_key__with_error:__d
push eax
call fcn.00401518
add esp, 0xc
push dword [ebp - 0x18]
call fcn.004437b6
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov dword [ebp - 0xac], ebx
push 0x63a800
lea eax, [ebp - 0xac]
jmp 0x422994
mov eax, dword [edi + 0x54]
cmp dword [eax - 0xc], ebx
je 0x422c26
mov ecx, dword [eax - 0xc]
push eax
inc ecx
push ecx
lea eax, [ebp]
push eax
call fcn.0059050e
lea eax, [ebp]
push eax
call fcn.0058f15d
add esp, 0x10
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp]
push eax
push 1
push ebx
push str.BasePath
push dword [ebp - 0x20]
call esi
cmp eax, ebx
je 0x422c26
push eax
lea eax, [ebp - 0x18]
push str.Failed_adding_BasePath_registry_key__with_error:__d
push eax
call fcn.00401518
add esp, 0xc
push dword [ebp - 0x18]
call fcn.004437b6
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov dword [ebp - 0xa4], ebx
push 0x63a800
lea eax, [ebp - 0xa4]
jmp 0x422994
mov eax, dword [edi + 0x5c]
cmp dword [eax - 0xc], ebx
je 0x422ca6
mov ecx, dword [eax - 0xc]
push eax
inc ecx
push ecx
lea eax, [ebp]
push eax
call fcn.0059050e
lea eax, [ebp]
push eax
call fcn.0058f15d
add esp, 0x10
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp]
push eax
push 1
push ebx
push str.SuiteFolder
push dword [ebp - 0x20]
call esi
cmp eax, ebx
je 0x422ca6
push eax
lea eax, [ebp - 0x18]
push str.Failed_adding_SuiteFolder_registry_key__with_error:__d
push eax
call fcn.00401518
add esp, 0xc
push dword [ebp - 0x18]
call fcn.004437b6
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov dword [ebp - 0xb4], ebx
push 0x63a800
lea eax, [ebp - 0xb4]
jmp 0x422994
mov eax, dword [edi + 8]
cmp dword [eax - 0xc], ebx
je 0x422d26
mov ecx, dword [eax - 0xc]
push eax
inc ecx
push ecx
lea eax, [ebp]
push eax
call fcn.0059050e
lea eax, [ebp]
push eax
call fcn.0058f15d
add esp, 0x10
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp]
push eax
push 1
push ebx
push str.FamilyID
push dword [ebp - 0x20]
call esi
cmp eax, ebx
je 0x422d26
push eax
lea eax, [ebp - 0x18]
push str.Failed_adding_FamilyID_registry_key__with_error:__d
push eax
call fcn.00401518
add esp, 0xc
push dword [ebp - 0x18]
call fcn.004437b6
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov dword [ebp - 0x118], ebx
push 0x63a800
lea eax, [ebp - 0x118]
jmp 0x422994
mov eax, dword [edi + 0xc]
mov ecx, dword [eax - 0xc]
push eax
inc ecx
push ecx
lea eax, [ebp]
push eax
call fcn.0059050e
lea eax, [ebp]
push eax
call fcn.0058f15d
add esp, 0x10
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp]
push eax
push 1
push ebx
push str.DisplayName
push dword [ebp - 0x20]
call esi
cmp eax, ebx
je 0x422da1
push eax
lea eax, [ebp - 0x18]
push str.Failed_adding_DisplayName_registry_key__with_error:__d
push eax
call fcn.00401518
add esp, 0xc
push dword [ebp - 0x18]
call fcn.004437b6
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov dword [ebp - 0xbc], ebx
push 0x63a800
lea eax, [ebp - 0xbc]
jmp 0x422994
mov eax, dword [edi + 0x14]
cmp dword [eax - 0xc], ebx
je 0x422e24
mov ecx, dword [ebp - 0x60]
mov eax, dword [ecx - 0xc]
push ecx
inc eax
push eax
lea eax, [ebp]
push eax
call fcn.0059050e
lea eax, [ebp]
push eax
call fcn.0058f15d
add esp, 0x10
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp]
push eax
push 1
push ebx
push str.DisplayIcon
push dword [ebp - 0x20]
call esi
cmp eax, ebx
je 0x422e24
push eax
lea eax, [ebp - 0x18]
push str.Failed_adding_DisplayIcon_registry_key__with_error:__d
push eax
call fcn.00401518
add esp, 0xc
push dword [ebp - 0x18]
call fcn.004437b6
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov dword [ebp - 0xfc], ebx
push 0x63a800
lea eax, [ebp - 0xfc]
jmp 0x422994
call fcn.00496dcd
push eax
lea ecx, [ebp - 0x78]
call fcn.0040141e
or dword [ebp - 0x12c], 0xffffffff
xor eax, eax
mov byte [ebp - 4], 0x13
mov dword [ebp - method.CVersionInfo.virtual_0], vtable.CVersionInfo.0
mov word [ebp - 0x12e], ax
mov word [ebp - 0x130], ax
mov word [ebp - 0x132], ax
mov word [ebp - 0x134], ax
cmp dword [ebp - 0x2c], ebx
je 0x422e9a
push dword [ebp - 0x48]
lea ecx, [ebp - 0x138]
call fcn.0044555c
test al, al
je 0x422e9a
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x138]
call fcn.00445a16
push eax
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0x14
call fcn.0040227d
jmp 0x422f01
push 0x5d45c0
lea ecx, [ebp - 0x34]
call fcn.004039d7
push 0x5e128c
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x15
call fcn.004039d7
push str.Property
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x16
call fcn.004039d7
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax + 0x158]
mov byte [ebp - 4], 0x17
call fcn.004583d0
mov ecx, dword [ebp - 0x2c]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x28]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x13
call fcn.00401019
mov ecx, dword [ebp - 0x78]
cmp dword [ecx - 0xc], ebx
je 0x42313e
mov eax, dword [ecx - 0xc]
push ecx
inc eax
push eax
lea eax, [ebp]
push eax
call fcn.0059050e
lea eax, [ebp]
push eax
call fcn.0058f15d
add esp, 0x10
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp]
push eax
push 1
push ebx
push str.DisplayVersion
push dword [ebp - 0x20]
call esi
cmp eax, ebx
je 0x422f94
push eax
lea eax, [ebp - 0x18]
push str.Failed_adding_DisplayVersion_registry_key__with_error:__d
push eax
call fcn.00401518
add esp, 0xc
push dword [ebp - 0x18]
call fcn.004437b6
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov dword [ebp - 0xc4], ebx
push 0x63a800
lea eax, [ebp - 0xc4]
jmp 0x422994
push dword [ebp - 0x78]
or dword [ebp - 0x94], 0xffffffff
xor eax, eax
lea ecx, [ebp - 0xa0]
mov dword [ebp - 0xa0], vtable.CVersionInfo.0
mov word [ebp - 0x96], ax
mov word [ebp - 0x98], ax
mov word [ebp - 0x9a], ax
mov word [ebp - 0x9c], ax
call fcn.0044578f
movzx eax, word [ebp - 0x9c]
push 4
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
push 4
push ebx
push str.VersionMajor
push dword [ebp - 0x20]
call esi
cmp eax, ebx
je 0x423035
push eax
lea eax, [ebp - 0x18]
push str.Failed_adding_VersionMajor_registry_key__with_error:__d
push eax
call fcn.00401518
add esp, 0xc
push dword [ebp - 0x18]
call fcn.004437b6
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov dword [ebp - 0x11c], ebx
push 0x63a800
lea eax, [ebp - 0x11c]
jmp 0x422994
movzx eax, word [ebp - 0x9a]
push 4
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
push eax
push 4
push ebx
push str.VersionMinor
push dword [ebp - 0x20]
call esi
cmp eax, ebx
je 0x423099
push eax
lea eax, [ebp - 0x18]
push str.Failed_adding_VersionMinor_registry_key__with_error:__d
push eax
call fcn.00401518
add esp, 0xc
push dword [ebp - 0x18]
call fcn.004437b6
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov dword [ebp - 0xcc], ebx
push 0x63a800
lea eax, [ebp - 0xcc]
jmp 0x422994
or dword [ebp - 0x140], 0xffffffff
xor eax, eax
mov dword [ebp - method.CVersionInfo.virtual_0], vtable.CVersionInfo.0
mov word [ebp - 0x142], ax
mov word [ebp - 0x144], ax
mov word [ebp - 0x146], ax
mov word [ebp - 0x148], ax
push dword [edi + 0x10]
lea ecx, [ebp - 0x14c]
call fcn.0044578f
lea ecx, [ebp - 0x14c]
call fcn.00445696
push 4
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x28]
push eax
push 4
push ebx
push str.Version
push dword [ebp - 0x20]
call esi
cmp eax, ebx
je 0x42313e
push eax
lea eax, [ebp - 0x18]
push str.Failed_adding_Version_registry_key__with_error:__d
push eax
call fcn.00401518
add esp, 0xc
push dword [ebp - 0x18]
call fcn.004437b6
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov dword [ebp - 0x104], ebx
push 0x63a800
lea eax, [ebp - 0x104]
jmp 0x422994
call fcn.00496dcd
push eax
lea ecx, [ebp - 0x84]
call fcn.0040141e
push 0x5d45c0
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x18
call fcn.004039d7
push 0x5e10b8
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x19
call fcn.004039d7
push str.Property
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x1a
call fcn.004039d7
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax + 0x158]
mov byte [ebp - 4], 0x1b
call fcn.004583d0
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x2c]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x28]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x18
call fcn.00401019
mov ecx, dword [ebp - 0x84]
mov eax, dword [ecx - 0xc]
cmp eax, ebx
je 0x423240
push ecx
inc eax
push eax
lea eax, [ebp]
push eax
call fcn.0059050e
lea eax, [ebp]
push eax
call fcn.0058f15d
add esp, 0x10
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp]
push eax
push 1
push ebx
push str.Publisher
push dword [ebp - 0x20]
call esi
cmp eax, ebx
je 0x423240
push eax
push str.Failed_adding_Publisher_registry_key__with_error:__d
call fcn.004437b6
pop ecx
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov dword [ebp - 0xd4], ebx
push 0x63a800
lea eax, [ebp - 0xd4]
jmp 0x422994
call fcn.00496dcd
push eax
lea ecx, [ebp - 0x80]
call fcn.0040141e
push 0x5d45c0
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x1c
call fcn.004039d7
push str.UninstallUILevel
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x1d
call fcn.004039d7
push 0x5e0fe8
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x1e
call fcn.004039d7
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax + 0x158]
mov byte [ebp - 4], 0x1f
call fcn.004583d0
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x2c]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x28]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x1c
call fcn.00401019
push dword [ebp - 0x80]
lea eax, [ebp - 0x3c]
push dword [edi + 4]
push dword [ebp - 0x5c]
push str._s__x__s__s
push eax
call fcn.00401518
mov edi, dword [ebp - 0x40]
add esp, 0x14
cmp dword [edi + 0x114], ebx
je 0x42333a
call fcn.00496dcd
push eax
lea ecx, [ebp - 0x28]
call fcn.0040141e
mov eax, dword [edi + 0xd8]
push dword [eax + 0x170]
lea eax, [ebp - 0x28]
push str._lang_s
push eax
mov byte [ebp - 4], 0x20
call fcn.00401518
mov eax, dword [ebp - 0x28]
add esp, 0xc
push dword [eax - 0xc]
lea ecx, [ebp - 0x3c]
push eax
call fcn.0040202a
mov ecx, dword [ebp - 0x28]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x1c
call fcn.00401019
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ecx - 0xc]
push ecx
inc eax
push eax
lea eax, [ebp]
push eax
call fcn.0059050e
lea eax, [ebp]
push eax
call fcn.0058f15d
add esp, 0x10
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp]
push eax
push 1
push ebx
push str.UninstallString
push dword [ebp - 0x20]
call esi
cmp eax, ebx
je 0x4233a7
push eax
push str.Failed_adding_UninstallString_registry_key__with_error:__d
call fcn.004437b6
pop ecx
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov dword [ebp - 0x120], ebx
push 0x63a800
lea eax, [ebp - 0x120]
jmp 0x422994
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx - 0xc]
push ecx
inc eax
push eax
lea eax, [ebp]
push eax
call fcn.0059050e
lea eax, [ebp]
push eax
call fcn.0058f15d
add esp, 0x10
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp]
push eax
push 1
push ebx
push str.CacheLocation
push dword [ebp - 0x20]
call esi
cmp eax, ebx
je 0x423414
push eax
push str.Failed_adding_CacheLocation_registry_key__with_error:__d
call fcn.004437b6
pop ecx
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov dword [ebp - 0xdc], ebx
push 0x63a800
lea eax, [ebp - 0xdc]
jmp 0x422994
mov eax, dword [edi + 0xd8]
xor ecx, ecx
push 4
mov dword [ebp - 0x8c], ebx
cmp dword [eax + 0xe8], ebx
lea eax, [ebp - 0x8c]
push eax
push 4
sete cl
push ebx
push str.ShowEULA
push dword [ebp - 0x20]
mov dword [ebp - 0x8c], ecx
call esi
cmp eax, ebx
je 0x423480
push eax
push str.Failed_adding_ShowEULA_registry_key__with_error:__d
call fcn.004437b6
pop ecx
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov dword [ebp - 0x10c], ebx
push 0x63a800
lea eax, [ebp - 0x10c]
jmp 0x422994
mov eax, dword [edi + 0xd8]
xor ecx, ecx
cmp dword [eax + 0xec], ebx
push 4
lea eax, [ebp - 0xe4]
push eax
push 4
setne cl
push ebx
push 0x5e0e20
push dword [ebp - 0x20]
mov dword [ebp - 0xe4], ecx
call esi
cmp eax, ebx
je 0x4234e6
push eax
push str.Failed_adding_showUserExpImpPAccepted_registry_key__with_error:__d
call fcn.004437b6
pop ecx
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov dword [ebp - 0x13c], ebx
push 0x63a800
lea eax, [ebp - 0x13c]
jmp 0x422994
mov eax, dword [ebp - 0x40]
fldz
mov eax, dword [eax + 0xd8]
fstp qword [ebp - 0x38]
mov edi, dword [ebp - 0x40]
mov dword [ebp - 0x88], ebx
mov eax, dword [eax + 0x1f0]
mov eax, dword [eax + 0xc]
neg eax
sbb eax, eax
mov dword [ebp - 0x28], eax
xor ebx, ebx
jmp 0x423514
mov eax, dword [ebp - 0x28]
cmp eax, ebx
je 0x42355c
mov eax, dword [edi + 0xd8]
mov ecx, dword [eax + 0x1f0]
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0041bd4a
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ecx + 0x58]
cmp byte [eax + 4], 0
je 0x423511
cmp byte [ecx + 0x54], 0
jne 0x423511
mov eax, dword [ecx + 0x34]
cmp dword [eax - 0xc], ebx
je 0x423511
mov eax, dword [ecx]
call dword [eax + 4]
fadd qword [ebp - 0x38]
fstp qword [ebp - 0x38]
jmp 0x423511
fld qword [ebp - 0x38]
call fcn.005928c6
imul eax, eax, 0x3e8
push 4
mov dword [ebp - 0x88], eax
lea eax, [ebp - 0x88]
push eax
push 4
push ebx
push str.EstimatedSize
push dword [ebp - 0x20]
call esi
cmp eax, ebx
je 0x4235bf
push eax
push str.Failed_adding_EstimatedSize_registry_key__with_error:__d
call fcn.004437b6
pop ecx
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov dword [ebp - 0xec], ebx
push 0x63a800
lea eax, [ebp - 0xec]
jmp 0x422994
mov ecx, dword [edi + 0xd8]
mov ebx, 0xc0
push 0x5d4dc0
add ecx, ebx
call fcn.00409de1
mov ecx, dword [edi + 0xd8]
push 0x5d4dc0
add ecx, ebx
call fcn.004022ca
mov eax, dword [edi + 0xd8]
mov eax, dword [eax + 0xc0]
mov ecx, dword [eax - 0xc]
push eax
inc ecx
push ecx
lea eax, [ebp]
push eax
call fcn.0059050e
lea eax, [ebp]
push eax
call fcn.0058f15d
add esp, 0x10
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp]
push eax
xor ebx, ebx
inc ebx
push ebx
push 0
push str.InstallLocation
push dword [ebp - 0x20]
call esi
test eax, eax
je 0x423662
push eax
push str.Failed_adding_InstallLocation_registry_key__with_error:__d
call fcn.004437b6
pop ecx
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
and dword [ebp - 0x114], 0
pop ecx
push 0x63a800
lea eax, [ebp - 0x114]
jmp 0x422994
mov eax, dword [edi + 0xd8]
cmp dword [eax + 0xf0], 0
je 0x423770
mov eax, dword [eax + 0x10c]
mov ecx, dword [eax - 0xc]
push eax
inc ecx
push ecx
lea eax, [ebp]
push eax
call fcn.0059050e
lea eax, [ebp]
push eax
call fcn.0058f15d
add esp, 0x10
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp]
push eax
push ebx
push 0
push str.SKUID
push dword [ebp - 0x20]
call esi
test eax, eax
je 0x4236e6
push eax
push str.Failed_adding_SKUID_registry_key__with_error:__d
call fcn.004437b6
pop ecx
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
and dword [ebp - 0xa8], 0
pop ecx
push 0x63a800
lea eax, [ebp - 0xa8]
jmp 0x422994
mov ecx, dword [edi + 0xd8]
call fcn.0040cf3c
mov ecx, dword [edi + 0xd8]
mov dword [ebp - 0x34], eax
call fcn.0040cf3c
push dword [ebp - 0x34]
push eax
call fcn.0058f15d
pop ecx
inc eax
push eax
lea eax, [ebp]
push eax
call fcn.0059050e
lea eax, [ebp]
push eax
call fcn.0058f15d
add esp, 0x10
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp]
push eax
push ebx
push 0
push str.SuiteCDKey
push dword [ebp - 0x20]
call esi
test eax, eax
je 0x423770
push eax
push str.Failed_adding_SuiteCDKey_registry_key__with_error:__d
call fcn.004437b6
pop ecx
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
and dword [ebp - 0xb0], 0
pop ecx
push 0x63a800
lea eax, [ebp - 0xb0]
jmp 0x422994
call fcn.00496dcd
push eax
lea ecx, [ebp - 0x90]
call fcn.0040141e
push 0x5d45c0
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x21
mov dword [ebp - 0x30], ebx
call fcn.004039d7
push str.SystemComponent
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x22
call fcn.004039d7
push str.Property
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x23
call fcn.004039d7
mov ecx, dword [edi + 0x158]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x34]
push eax
mov byte [ebp - 4], 0x24
call fcn.004583d0
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x2c]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x28]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x21
call fcn.00401019
mov ebx, 0x5d8fd0
push ebx
lea ecx, [ebp - 0x90]
call fcn.00401ba2
test eax, eax
jne 0x423861
push 4
lea eax, [ebp - 0x30]
push eax
push 4
push 0
push str.SystemComponent
push dword [ebp - 0x20]
call esi
test eax, eax
je 0x423861
push eax
push str.Failed_adding_SystemComponent_registry_key__with_error:__d
call fcn.004437b6
pop ecx
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
and dword [ebp - 0xb8], 0
pop ecx
push 0x63a800
lea eax, [ebp - 0xb8]
jmp 0x422994
call fcn.00496dcd
push eax
lea ecx, [ebp - 0x70]
call fcn.0040141e
push 0x5d45c0
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x25
call fcn.004039d7
push str.Plugin
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x26
call fcn.004039d7
push str.Property
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x27
call fcn.004039d7
mov ecx, dword [edi + 0x158]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x34]
push eax
mov byte [ebp - 4], 0x28
call fcn.004583d0
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x2c]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x28]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x25
call fcn.00401019
push ebx
lea ecx, [ebp - 0x70]
call fcn.00401ba2
xor ebx, ebx
cmp eax, ebx
jne 0x423941
push 4
lea eax, [ebp - 0x30]
push eax
push 4
push ebx
push str.Plugin
push dword [ebp - 0x20]
call esi
cmp eax, ebx
je 0x423941
push eax
push str.Failed_adding_Plugin_registry_key__with_error:__d
call fcn.004437b6
pop ecx
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov dword [ebp - 0xc0], ebx
push 0x63a800
lea eax, [ebp - 0xc0]
jmp 0x422994
call fcn.00496dcd
push eax
lea ecx, [ebp - 0x28]
call fcn.0040141e
mov eax, dword [edi + 0xd8]
mov eax, dword [eax + 0x38]
mov byte [ebp - 4], 0x29
mov byte [ebp - 0x21], 1
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], ebx
je 0x4239a3
cmp byte [ebp - 0x21], 0
jne 0x42397d
push 0x5d4e28
lea ecx, [ebp - 0x28]
call fcn.004022ca
jmp 0x423981
mov byte [ebp - 0x21], 0
mov ecx, dword [edi + 0xd8]
lea eax, [ebp - 0x34]
push eax
add ecx, 0x34
call fcn.00401b20
mov eax, dword [eax]
push dword [eax - 0xc]
lea ecx, [ebp - 0x28]
push eax
call fcn.0040202a
jmp 0x423963
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx - 0xc]
push ecx
inc eax
push eax
lea eax, [ebp]
push eax
call fcn.0059050e
lea eax, [ebp]
push eax
call fcn.0058f15d
add esp, 0x10
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp]
push eax
push 1
push ebx
push str.SupportedLanguages
push dword [ebp - 0x20]
call esi
cmp eax, ebx
je 0x423a10
push eax
push str.Failed_adding_SupportedLanguages_registry_key__with_error:__d
call fcn.004437b6
pop ecx
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov dword [ebp - 0xc8], ebx
push 0x63a800
lea eax, [ebp - 0xc8]
jmp 0x422994
mov eax, dword [edi + 0xf0]
mov ecx, dword [eax - 0xc]
push eax
inc ecx
push ecx
lea eax, [ebp]
push eax
call fcn.0059050e
lea eax, [ebp]
push eax
call fcn.0058f15d
add esp, 0x10
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp]
push eax
push 1
push ebx
push str.InstalledLanguage
push dword [ebp - 0x20]
call esi
cmp eax, ebx
je 0x423a80
push eax
push str.Failed_adding_InstalledLanguage_registry_key__with_error:__d
call fcn.004437b6
pop ecx
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov dword [ebp - 0xd0], ebx
push 0x63a800
lea eax, [ebp - 0xd0]
jmp 0x422994
xor eax, eax
cmp byte [edi + 0xf4], al
push 4
setne al
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x30]
push eax
push 4
push ebx
push 0x5e0930
push dword [ebp - 0x20]
call esi
cmp eax, ebx
je 0x423ada
push eax
push str.Failed_adding_MUI_registry_key__with_error:__d
call fcn.004437b6
pop ecx
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov dword [ebp - 0xd8], ebx
push 0x63a800
lea eax, [ebp - 0xd8]
jmp 0x422994
xor eax, eax
cmp byte [edi + 0x12c], al
push 4
setne al
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x30]
push eax
push 4
push ebx
push str.OnlineAccess
push dword [ebp - 0x20]
call esi
cmp eax, ebx
je 0x423b34
push eax
push str.Failed_adding_OnlineAccess_registry_key__with_error:__d
call fcn.004437b6
pop ecx
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov dword [ebp - 0xe0], ebx
push 0x63a800
lea eax, [ebp - 0xe0]
jmp 0x422994
xor eax, eax
cmp byte [edi + 0x134], al
push 4
setne al
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x30]
push eax
push 4
push ebx
push 0x5e0820
push dword [ebp - 0x20]
call esi
cmp eax, ebx
je 0x423b8e
push eax
push str.Failed_adding_Registration_registry_key__with_error:__d
call fcn.004437b6
pop ecx
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov dword [ebp - 0xe8], ebx
push 0x63a800
lea eax, [ebp - 0xe8]
jmp 0x422994
xor eax, eax
cmp byte [edi + 0x136], al
push 4
setne al
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x30]
push eax
push 4
push ebx
push 0x5e0794
push dword [ebp - 0x20]
call esi
cmp eax, ebx
je 0x423be8
push eax
push str.Failed_adding_UpdateManager_registry_key__with_error:__d
call fcn.004437b6
pop ecx
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov dword [ebp - 0xf0], ebx
push 0x63a800
lea eax, [ebp - 0xf0]
jmp 0x422994
xor eax, eax
cmp byte [edi + 0x138], al
push 4
setne al
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x30]
push eax
push 4
push ebx
push 0x5e06ec
push dword [ebp - 0x20]
call esi
cmp eax, ebx
je 0x423c42
push eax
push str.Failed_adding_UpdateManagerAutomatic_registry_key__with_error:__d
call fcn.004437b6
pop ecx
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov dword [ebp - 0xf8], ebx
push 0x63a800
lea eax, [ebp - 0xf8]
jmp 0x422994
lea eax, [edi + 0x13c]
mov ecx, dword [eax]
cmp dword [ecx - 0xc], ebx
je 0x423cbb
mov eax, ecx
mov ecx, dword [eax - 0xc]
push eax
inc ecx
push ecx
lea eax, [ebp]
push eax
call fcn.0059050e
lea eax, [ebp]
push eax
call fcn.0058f15d
add esp, 0x10
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp]
push eax
push 1
push ebx
push str.UpdateManagerExpiration
push dword [ebp - 0x20]
call esi
cmp eax, ebx
je 0x423cbb
push eax
push str.Failed_adding_UpdateManagerExpiration_registry_key__with_error:__d
call fcn.004437b6
pop ecx
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov dword [ebp - 0x100], ebx
push 0x63a800
lea eax, [ebp - 0x100]
jmp 0x422994
call fcn.00496dcd
push eax
lea ecx, [ebp - 0x44]
call fcn.0040141e
push 0x5d45c0
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x2a
call fcn.004039d7
push str.UpdateManagerURL
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x2b
call fcn.004039d7
push str.Property
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x2c
call fcn.004039d7
mov ecx, dword [edi + 0x158]
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x34]
push eax
mov byte [ebp - 4], 0x2d
call fcn.004583d0
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x2c]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x4c]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x2a
call fcn.00401019
mov eax, dword [ebp - 0x44]
mov eax, dword [eax - 0xc]
cmp eax, ebx
je 0x423de6
dec eax
push eax
lea ecx, [ebp - 0x44]
call fcn.00401d68
movzx eax, ax
cmp ax, 0x2f
je 0x423d79
push str.WARNING:_The_forward_slash_is_missing_from_the_UpdateManagerURL._Please_FIX_THIS._Setup_will_add_a_forward_slash_now.
call fcn.004437b6
pop ecx
push 0x5d8c38
lea ecx, [ebp - 0x44]
call fcn.004022ca
mov ecx, dword [ebp - 0x44]
mov eax, dword [ecx - 0xc]
push ecx
inc eax
push eax
lea eax, [ebp]
push eax
call fcn.0059050e
lea eax, [ebp]
push eax
call fcn.0058f15d
add esp, 0x10
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp]
push eax
push 1
push ebx
push str.UpdateManagerURL
push dword [ebp - 0x20]
call esi
cmp eax, ebx
je 0x423de6
push eax
push str.Failed_adding_UpdateManagerURL_registry_key__with_error:__d
call fcn.004437b6
pop ecx
pop ecx
push dword [ebp - 0x1c]
call fcn.0041654a
pop ecx
push dword [ebp - 0x14]
call fcn.0041654a
pop ecx
mov dword [ebp - 0x108], ebx
push 0x63a800
lea eax, [ebp - 0x108]
jmp 0x422994
mov dword [ebp - 0x110], 1
push 0x63a800
lea eax, [ebp - 0x110]
jmp 0x422994
push 3
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, dword [ebp - 0x50]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.00401019
mov ecx, dword [ebp - 0x6c]
add ecx, 0xfffffff0
call fcn.00401019
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x208]
xor ecx, ebp
call fcn.0058f976
add ebp, 0x20c
leave
ret