Function at 0x406ca7
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
test byte [ebp + 0x18], 1
push ebx
push edi
mov edi, dword [ebp + 0xc]
je 0x406cf3
push dword [ebp + 8]
mov eax, dword [ebp + 0x14]
add eax, 4
push eax
push dword [edi + 0xc]
push dword [edi + 0x48]
push dword [edi]
call fcn.00418fa9
mov ebx, eax
test ebx, ebx
jns 0x406cf3
push dword [ebp + 8]
push str.Failed_to_cache_bundle_from_path:__ls
push ebx
call fcn.0042eef6
add esp, 0xc
jmp 0x4071c8
lea eax, [ebp - 4]
push eax
push 0x20006
push dword [edi + 0x50]
push dword [edi + 0x4c]
call fcn.00432a2f
mov ebx, eax
test ebx, ebx
jns 0x406d1f
push str.Failed_to_create_registration_key.
push ebx
call fcn.0042eef6
pop ecx
pop ecx
jmp 0x4071c8
test byte [ebp + 0x18], 2
push esi
je 0x40713e
push dword [edi + 0x54]
mov esi, str.BundleCachePath
push esi
push dword [ebp - 4]
call fcn.00432e66
mov ebx, eax
test ebx, ebx
js 0x40717e
push dword [edi + 0x20]
mov esi, str.BundleUpgradeCode
push dword [edi + 0x1c]
push esi
push dword [ebp - 4]
call fcn.00432f4e
mov ebx, eax
test ebx, ebx
js 0x40717e
push dword [edi + 0x28]
mov esi, str.BundleAddonCode
push dword [edi + 0x24]
push esi
push dword [ebp - 4]
call fcn.00432f4e
mov ebx, eax
test ebx, ebx
js 0x40717e
push dword [edi + 0x18]
mov esi, str.BundleDetectCode
push dword [edi + 0x14]
push esi
push dword [ebp - 4]
call fcn.00432f4e
mov ebx, eax
test ebx, ebx
js 0x40717e
push dword [edi + 0x30]
mov esi, str.BundlePatchCode
push dword [edi + 0x2c]
push esi
push dword [ebp - 4]
call fcn.00432f4e
mov ebx, eax
test ebx, ebx
js 0x40717e
mov ecx, dword [edi + 0x38]
mov eax, dword [edi + 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 esi, str.BundleVersion
push esi
push dword [ebp - 4]
shr edx, 0x10
call fcn.00432f0c
mov ebx, eax
add esp, 0x1c
test ebx, ebx
js 0x40717e
mov eax, dword [edi + 0x44]
test eax, eax
je 0x406e1f
push eax
mov esi, str.BundleProviderKey
push esi
push dword [ebp - 4]
call fcn.00432e66
mov ebx, eax
test ebx, ebx
js 0x40717e
mov eax, dword [edi + 0x10]
test eax, eax
je 0x406e3f
push eax
mov esi, str.BundleTag
push esi
push dword [ebp - 4]
call fcn.00432e66
mov ebx, eax
test ebx, ebx
js 0x40717e
push str.3.7.2002.0
push 0x43d208
mov esi, str.EngineVersion
push esi
push dword [ebp - 4]
call fcn.00432f0c
mov ebx, eax
add esp, 0x10
test ebx, ebx
js 0x40717e
push dword [edi + 0x54]
mov esi, str.DisplayIcon
push str._s_0
push esi
push dword [ebp - 4]
call fcn.00432f0c
mov ebx, eax
add esp, 0x10
test ebx, ebx
js 0x40717e
lea eax, [ebp - 8]
push eax
push dword [ebp + 0x10]
mov ebx, edi
call fcn.00405b4a
test eax, eax
mov eax, dword [ebp - 8]
jns 0x406e9f
mov eax, dword [edi + 0x60]
push eax
mov esi, str.DisplayName
push esi
push dword [ebp - 4]
call fcn.00432e66
mov ebx, eax
test ebx, ebx
js 0x40717e
mov eax, dword [edi + 0x64]
test eax, eax
je 0x406ed8
push eax
mov esi, str.DisplayVersion
push esi
push dword [ebp - 4]
call fcn.00432e66
mov ebx, eax
test ebx, ebx
js 0x40717e
mov eax, dword [edi + 0x68]
test eax, eax
je 0x406ef8
push eax
mov esi, str.Publisher
push esi
push dword [ebp - 4]
call fcn.00432e66
mov ebx, eax
test ebx, ebx
js 0x40717e
mov eax, dword [edi + 0x6c]
test eax, eax
je 0x406f18
push eax
mov esi, str.HelpLink
push esi
push dword [ebp - 4]
call fcn.00432e66
mov ebx, eax
test ebx, ebx
js 0x40717e
mov eax, dword [edi + 0x70]
test eax, eax
je 0x406f38
push eax
mov esi, str.HelpTelephone
push esi
push dword [ebp - 4]
call fcn.00432e66
mov ebx, eax
test ebx, ebx
js 0x40717e
mov eax, dword [edi + 0x74]
test eax, eax
je 0x406f58
push eax
mov esi, str.URLInfoAbout
push esi
push dword [ebp - 4]
call fcn.00432e66
mov ebx, eax
test ebx, ebx
js 0x40717e
mov eax, dword [edi + 0x78]
test eax, eax
je 0x406f78
push eax
mov esi, str.URLUpdateInfo
push esi
push dword [ebp - 4]
call fcn.00432e66
mov ebx, eax
test ebx, ebx
js 0x40717e
mov eax, dword [edi + 0x7c]
test eax, eax
je 0x406fb3
push eax
mov esi, str.ParentDisplayName
push esi
push dword [ebp - 4]
call fcn.00432e66
mov ebx, eax
test ebx, ebx
js 0x40717e
push dword [edi + 0x7c]
mov esi, str.ParentKeyName
push esi
push dword [ebp - 4]
call fcn.00432e66
mov ebx, eax
test ebx, ebx
js 0x40717e
mov eax, dword [edi + 0x80]
test eax, eax
je 0x406fd6
push eax
mov esi, str.Comments
push esi
push dword [ebp - 4]
call fcn.00432e66
mov ebx, eax
test ebx, ebx
js 0x40717e
mov eax, dword [edi + 0x84]
test eax, eax
je 0x406ff9
push eax
mov esi, str.Contact
push esi
push dword [ebp - 4]
call fcn.00432e66
mov ebx, eax
test ebx, ebx
js 0x40717e
mov eax, dword [edi + 0x88]
cmp eax, 1
jne 0x4070e9
mov esi, str.NoModify
push 1
push esi
push dword [ebp - 4]
call fcn.0043298e
mov ebx, eax
test ebx, ebx
js 0x40717e
cmp dword [edi + 0x8c], 0
je 0x407049
push dword [edi + 0x90]
mov esi, str.NoRemove
push esi
push dword [ebp - 4]
call fcn.0043298e
mov ebx, eax
test ebx, ebx
js 0x40717e
cmp dword [edi + 4], 0
jne 0x407069
push 1
mov esi, str.SystemComponent
push esi
push dword [ebp - 4]
call fcn.0043298e
mov ebx, eax
test ebx, ebx
js 0x40717e
push dword [edi + 0x54]
mov esi, str.QuietUninstallString
push str.__ls___uninstall__quiet
push esi
push dword [ebp - 4]
call fcn.00432f0c
mov ebx, eax
add esp, 0x10
test ebx, ebx
js 0x40717e
cmp dword [edi + 0x88], 2
mov eax, str._modify
je 0x40709f
mov eax, str.__uninstall
push eax
push dword [edi + 0x54]
mov esi, str.UninstallString
push str.__ls___ls
push esi
push dword [ebp - 4]
call fcn.00432f0c
mov ebx, eax
add esp, 0x14
test ebx, ebx
js 0x40717e
cmp dword [edi + 0x98], 0
je 0x40711b
push dword [edi]
lea ebx, [edi + 0x94]
call fcn.00406015
mov ebx, eax
test ebx, ebx
jns 0x40711b
push str.Failed_to_write_software_tags.
jmp 0x4071bf
cmp eax, 2
je 0x407022
push dword [edi + 0x54]
mov esi, str.ModifyPath
push str.__ls___modify
push esi
push dword [ebp - 4]
call fcn.00432f0c
mov ebx, eax
add esp, 0x10
test ebx, ebx
js 0x40717e
mov esi, str.NoElevateOnModify
jmp 0x40700d
cmp dword [edi + 0x9c], 0
je 0x40713e
push dword [ebp + 0x10]
mov eax, edi
call fcn.00406b1b
mov ebx, eax
test ebx, ebx
jns 0x40713e
push str.Failed_to_write_update_registration.
jmp 0x4071bf
test byte [ebp + 0x18], 4
je 0x40718f
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x20]
shrd ecx, eax, 0xa
shr eax, 0xa
test eax, eax
jb 0x40718f
ja 0x407166
test ecx, ecx
je 0x40718f
test eax, eax
jb 0x407169
ja 0x407166
cmp ecx, 0xffffffff
jbe 0x407169
or ecx, 0xffffffff
push ecx
mov esi, str.EstimatedSize
push esi
push dword [ebp - 4]
call fcn.0043298e
mov ebx, eax
test ebx, ebx
jns 0x40718f
push esi
push str.Failed_to_write__ls_value.
push ebx
call fcn.0042eef6
add esp, 0xc
jmp 0x4071c7
cmp dword [ebp + 0x1c], 1
jne 0x4071a8
push edi
call fcn.0041ed67
mov ebx, eax
test ebx, ebx
jns 0x4071a8
push str.Failed_to_register_the_bundle_dependency_key.
jmp 0x4071bf
push 0
push 1
push dword [ebp - 4]
call fcn.00405bad
mov ebx, eax
test ebx, ebx
jns 0x4071c7
push str.Failed_to_update_resume_mode.
push ebx
call fcn.0042eef6
pop ecx
pop ecx
pop esi
cmp dword [ebp - 8], 0
je 0x4071d6
push dword [ebp - 8]
call fcn.0042f657
cmp dword [ebp - 4], 0
je 0x4071e5
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
mov eax, ebx
pop ebx
leave
ret 0x20