Function at 0x406c87
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
and dword [ebp - 4], 0
and dword [ebp - 8], 0
push ebx
push esi
mov esi, dword [ebp + 0xc]
push dword [esi + 8]
call fcn.004118ef
push eax
push dword [ebp + 0x18]
push dword [esi + 0x50]
push 0x20000172
push 3
call fcn.00401566
add esp, 0x14
test byte [ebp + 0x18], 1
je 0x406cf1
push dword [ebp + 8]
mov eax, dword [ebp + 0x14]
add eax, 4
push eax
push dword [esi + 0x10]
push dword [esi + 0x48]
push dword [esi]
call fcn.00419e0c
mov ebx, eax
test ebx, ebx
jns 0x406cf1
push dword [ebp + 8]
push str.Failed_to_cache_bundle_from_path:__ls
push ebx
call fcn.004300f7
add esp, 0xc
jmp 0x4071c7
lea eax, [ebp - 4]
push eax
push 0x20006
push dword [esi + 0x50]
push dword [esi + 0x4c]
call fcn.00433d3c
mov ebx, eax
test ebx, ebx
jns 0x406d1d
push str.Failed_to_create_registration_key.
push ebx
call fcn.004300f7
pop ecx
pop ecx
jmp 0x4071c7
test byte [ebp + 0x18], 2
push edi
je 0x40713c
push dword [esi + 0x54]
mov edi, str.BundleCachePath
push edi
push dword [ebp - 4]
call fcn.00434173
mov ebx, eax
test ebx, ebx
js 0x40717c
push dword [esi + 0x24]
mov edi, str.BundleUpgradeCode
push dword [esi + 0x20]
push edi
push dword [ebp - 4]
call fcn.0043425b
mov ebx, eax
test ebx, ebx
js 0x40717c
push dword [esi + 0x2c]
mov edi, str.BundleAddonCode
push dword [esi + 0x28]
push edi
push dword [ebp - 4]
call fcn.0043425b
mov ebx, eax
test ebx, ebx
js 0x40717c
push dword [esi + 0x1c]
mov edi, str.BundleDetectCode
push dword [esi + 0x18]
push edi
push dword [ebp - 4]
call fcn.0043425b
mov ebx, eax
test ebx, ebx
js 0x40717c
push dword [esi + 0x34]
mov edi, str.BundlePatchCode
push dword [esi + 0x30]
push edi
push dword [ebp - 4]
call fcn.0043425b
mov ebx, eax
test ebx, ebx
js 0x40717c
mov ecx, dword [esi + 0x38]
mov eax, dword [esi + 0x3c]
movzx edx, cx
push edx
mov edx, eax
shrd ecx, edx, 0x10
movzx ecx, cx
push ecx
movzx ecx, ax
push ecx
mov dword [ebp - 0xc], eax
shr eax, 0x10
push eax
push str._hu._hu._hu._hu
mov edi, str.BundleVersion
push edi
push dword [ebp - 4]
shr edx, 0x10
call fcn.00434219
mov ebx, eax
add esp, 0x1c
test ebx, ebx
js 0x40717c
mov eax, dword [esi + 0x44]
test eax, eax
je 0x406e1d
push eax
mov edi, str.BundleProviderKey
push edi
push dword [ebp - 4]
call fcn.00434173
mov ebx, eax
test ebx, ebx
js 0x40717c
mov eax, dword [esi + 0x14]
test eax, eax
je 0x406e3d
push eax
mov edi, str.BundleTag
push edi
push dword [ebp - 4]
call fcn.00434173
mov ebx, eax
test ebx, ebx
js 0x40717c
push str.3.7.3813.0
push 0x43f33c
mov edi, str.EngineVersion
push edi
push dword [ebp - 4]
call fcn.00434219
mov ebx, eax
add esp, 0x10
test ebx, ebx
js 0x40717c
push dword [esi + 0x54]
mov edi, str.DisplayIcon
push str._s_0
push edi
push dword [ebp - 4]
call fcn.00434219
mov ebx, eax
add esp, 0x10
test ebx, ebx
js 0x40717c
lea eax, [ebp - 8]
push eax
push dword [ebp + 0x10]
mov ebx, esi
call fcn.00405b62
test eax, eax
mov eax, dword [ebp - 8]
jns 0x406e9d
mov eax, dword [esi + 0x60]
push eax
mov edi, str.DisplayName
push edi
push dword [ebp - 4]
call fcn.00434173
mov ebx, eax
test ebx, ebx
js 0x40717c
mov eax, dword [esi + 0x64]
test eax, eax
je 0x406ed6
push eax
mov edi, str.DisplayVersion
push edi
push dword [ebp - 4]
call fcn.00434173
mov ebx, eax
test ebx, ebx
js 0x40717c
mov eax, dword [esi + 0x68]
test eax, eax
je 0x406ef6
push eax
mov edi, str.Publisher
push edi
push dword [ebp - 4]
call fcn.00434173
mov ebx, eax
test ebx, ebx
js 0x40717c
mov eax, dword [esi + 0x6c]
test eax, eax
je 0x406f16
push eax
mov edi, str.HelpLink
push edi
push dword [ebp - 4]
call fcn.00434173
mov ebx, eax
test ebx, ebx
js 0x40717c
mov eax, dword [esi + 0x70]
test eax, eax
je 0x406f36
push eax
mov edi, str.HelpTelephone
push edi
push dword [ebp - 4]
call fcn.00434173
mov ebx, eax
test ebx, ebx
js 0x40717c
mov eax, dword [esi + 0x74]
test eax, eax
je 0x406f56
push eax
mov edi, str.URLInfoAbout
push edi
push dword [ebp - 4]
call fcn.00434173
mov ebx, eax
test ebx, ebx
js 0x40717c
mov eax, dword [esi + 0x78]
test eax, eax
je 0x406f76
push eax
mov edi, str.URLUpdateInfo
push edi
push dword [ebp - 4]
call fcn.00434173
mov ebx, eax
test ebx, ebx
js 0x40717c
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x406fb1
push eax
mov edi, str.ParentDisplayName
push edi
push dword [ebp - 4]
call fcn.00434173
mov ebx, eax
test ebx, ebx
js 0x40717c
push dword [esi + 0x7c]
mov edi, str.ParentKeyName
push edi
push dword [ebp - 4]
call fcn.00434173
mov ebx, eax
test ebx, ebx
js 0x40717c
mov eax, dword [esi + 0x80]
test eax, eax
je 0x406fd4
push eax
mov edi, str.Comments
push edi
push dword [ebp - 4]
call fcn.00434173
mov ebx, eax
test ebx, ebx
js 0x40717c
mov eax, dword [esi + 0x84]
test eax, eax
je 0x406ff7
push eax
mov edi, str.Contact
push edi
push dword [ebp - 4]
call fcn.00434173
mov ebx, eax
test ebx, ebx
js 0x40717c
mov eax, dword [esi + 0x88]
cmp eax, 1
jne 0x4070e7
mov edi, str.NoModify
push 1
push edi
push dword [ebp - 4]
call fcn.00433c9b
mov ebx, eax
test ebx, ebx
js 0x40717c
cmp dword [esi + 0x8c], 0
je 0x407047
push dword [esi + 0x90]
mov edi, str.NoRemove
push edi
push dword [ebp - 4]
call fcn.00433c9b
mov ebx, eax
test ebx, ebx
js 0x40717c
cmp dword [esi + 4], 0
jne 0x407067
push 1
mov edi, str.SystemComponent
push edi
push dword [ebp - 4]
call fcn.00433c9b
mov ebx, eax
test ebx, ebx
js 0x40717c
push dword [esi + 0x54]
mov edi, str.QuietUninstallString
push str.__ls___uninstall__quiet
push edi
push dword [ebp - 4]
call fcn.00434219
mov ebx, eax
add esp, 0x10
test ebx, ebx
js 0x40717c
cmp dword [esi + 0x88], 2
mov eax, str._modify
je 0x40709d
mov eax, str.__uninstall
push eax
push dword [esi + 0x54]
mov edi, str.UninstallString
push str.__ls___ls
push edi
push dword [ebp - 4]
call fcn.00434219
mov ebx, eax
add esp, 0x14
test ebx, ebx
js 0x40717c
cmp dword [esi + 0x98], 0
je 0x407119
push dword [esi]
lea ebx, [esi + 0x94]
call fcn.00405ec7
mov ebx, eax
test ebx, ebx
jns 0x407119
push str.Failed_to_write_software_tags.
jmp 0x4071be
cmp eax, 2
je 0x407020
push dword [esi + 0x54]
mov edi, str.ModifyPath
push str.__ls___modify
push edi
push dword [ebp - 4]
call fcn.00434219
mov ebx, eax
add esp, 0x10
test ebx, ebx
js 0x40717c
mov edi, str.NoElevateOnModify
jmp 0x40700b
cmp dword [esi + 0x9c], 0
je 0x40713c
push dword [ebp + 0x10]
mov eax, esi
call fcn.00406afb
mov ebx, eax
test ebx, ebx
jns 0x40713c
push str.Failed_to_write_update_registration.
jmp 0x4071be
test byte [ebp + 0x18], 4
je 0x40718d
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x20]
shrd ecx, eax, 0xa
shr eax, 0xa
test eax, eax
jb 0x40718d
ja 0x407164
test ecx, ecx
je 0x40718d
test eax, eax
jb 0x407167
ja 0x407164
cmp ecx, 0xffffffff
jbe 0x407167
or ecx, 0xffffffff
push ecx
mov edi, str.EstimatedSize
push edi
push dword [ebp - 4]
call fcn.00433c9b
mov ebx, eax
test ebx, ebx
jns 0x40718d
push edi
push str.Failed_to_write__ls_value.
push ebx
call fcn.004300f7
add esp, 0xc
jmp 0x4071c6
cmp dword [ebp + 0x1c], 1
jne 0x4071a6
push esi
call fcn.0041fdbc
mov ebx, eax
test ebx, ebx
jns 0x4071a6
push str.Failed_to_register_the_bundle_dependency_key.
jmp 0x4071be
push 0
push dword [ebp - 4]
xor eax, eax
inc eax
call fcn.004068e9
mov ebx, eax
test ebx, ebx
jns 0x4071c6
push str.Failed_to_update_resume_mode.
push ebx
call fcn.004300f7
pop ecx
pop ecx
pop edi
cmp dword [ebp - 8], 0
je 0x4071d5
push dword [ebp - 8]
call fcn.00430858
cmp dword [ebp - 4], 0
je 0x4071e4
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
mov eax, ebx
pop ebx
leave
ret 0x20