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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
and dword [ebp - 4], 0
and dword [ebp - 8], 0
and dword [ebp - 0xc], 0
push esi
push edi
mov edi, dword [ebp + 0xc]
push dword [edi + 8]
call fcn.00413f24
push eax
push dword [ebp + 0x18]
push dword [edi + 0x50]
push 0x20000172
push 3
call fcn.00405864
add esp, 0x14
test byte [ebp + 0x18], 1
je 0x410183
push dword [ebp + 8]
mov eax, dword [ebp + 0x14]
add eax, 4
push eax
push dword [edi + 0x10]
push dword [edi + 0x48]
push dword [edi]
call fcn.00419d0c
mov esi, eax
test esi, esi
jns 0x410183
push dword [ebp + 8]
push str.Failed_to_cache_bundle_from_path:__ls
push esi
call fcn.00440564
add esp, 0xc
jmp 0x4106d3
lea eax, [ebp - 4]
push eax
push 0x20006
push dword [edi + 0x50]
push dword [edi + 0x4c]
call fcn.00440ec5
mov esi, eax
test esi, esi
jns 0x4101af
push str.Failed_to_create_registration_key.
push esi
call fcn.00440564
pop ecx
pop ecx
jmp 0x4106d3
test byte [ebp + 0x18], 2
push ebx
je 0x410647
push dword [edi + 0x54]
mov ebx, str.BundleCachePath
push ebx
push dword [ebp - 4]
call fcn.004417c4
mov esi, eax
test esi, esi
js 0x410688
push dword [edi + 0x24]
mov ebx, str.BundleUpgradeCode
push dword [edi + 0x20]
push ebx
push dword [ebp - 4]
call fcn.0044186e
mov esi, eax
test esi, esi
js 0x410688
push dword [edi + 0x2c]
mov ebx, str.BundleAddonCode
push dword [edi + 0x28]
push ebx
push dword [ebp - 4]
call fcn.0044186e
mov esi, eax
test esi, esi
js 0x410688
push dword [edi + 0x1c]
mov ebx, str.BundleDetectCode
push dword [edi + 0x18]
push ebx
push dword [ebp - 4]
call fcn.0044186e
mov esi, eax
test esi, esi
js 0x410688
push dword [edi + 0x34]
mov ebx, str.BundlePatchCode
push dword [edi + 0x30]
push ebx
push dword [ebp - 4]
call fcn.0044186e
mov esi, eax
test esi, esi
js 0x410688
mov ecx, dword [edi + 0x38]
mov ebx, str.BundleVersion
mov edx, dword [edi + 0x3c]
movzx eax, cx
push eax
mov eax, edx
mov dword [ebp - 0x10], edx
shrd ecx, eax, 0x10
shr eax, 0x10
movzx eax, cx
push eax
movzx eax, dx
push eax
shr edx, 0x10
push edx
push str._hu._hu._hu._hu
push ebx
push dword [ebp - 4]
call fcn.004419a5
mov esi, eax
add esp, 0x1c
test esi, esi
js 0x410688
cmp dword [edi + 0x44], 0
je 0x4102b0
push dword [edi + 0x44]
mov ebx, str.BundleProviderKey
push ebx
push dword [ebp - 4]
call fcn.004417c4
mov esi, eax
test esi, esi
js 0x410688
cmp dword [edi + 0x14], 0
je 0x4102d1
push dword [edi + 0x14]
mov ebx, str.BundleTag
push ebx
push dword [ebp - 4]
call fcn.004417c4
mov esi, eax
test esi, esi
js 0x410688
push str.3.10.3.3007
push 0x451780
mov ebx, str.EngineVersion
push ebx
push dword [ebp - 4]
call fcn.004419a5
mov esi, eax
add esp, 0x10
test esi, esi
js 0x410688
push dword [edi + 0x54]
mov ebx, str.DisplayIcon
push str._s_0
push ebx
push dword [ebp - 4]
call fcn.004419a5
mov esi, eax
add esp, 0x10
test esi, esi
js 0x410688
mov ebx, dword [ebp + 0x10]
lea eax, [ebp - 8]
push eax
push ebx
push edi
call fcn.0040ebbd
test eax, eax
mov eax, dword [ebp - 8]
jns 0x410331
mov eax, dword [edi + 0x60]
push eax
push str.DisplayName
push dword [ebp - 4]
call fcn.004417c4
mov esi, eax
test esi, esi
jns 0x41034f
push str.DisplayName
jmp 0x410689
cmp dword [edi + 0x64], 0
je 0x410375
push dword [edi + 0x64]
push str.DisplayVersion
push dword [ebp - 4]
call fcn.004417c4
mov esi, eax
test esi, esi
jns 0x410375
push str.DisplayVersion
jmp 0x410689
lea eax, [ebp - 0xc]
push eax
push ebx
push edi
call fcn.0040eb55
test eax, eax
mov eax, dword [ebp - 0xc]
jns 0x41038a
mov eax, dword [edi + 0x68]
push eax
push str.Publisher
push dword [ebp - 4]
call fcn.004417c4
mov esi, eax
test esi, esi
jns 0x4103a8
push str.Publisher
jmp 0x410689
cmp dword [edi + 0x6c], 0
je 0x4103ce
push dword [edi + 0x6c]
push str.HelpLink
push dword [ebp - 4]
call fcn.004417c4
mov esi, eax
test esi, esi
jns 0x4103ce
push str.HelpLink
jmp 0x410689
cmp dword [edi + 0x70], 0
je 0x4103f4
push dword [edi + 0x70]
push str.HelpTelephone
push dword [ebp - 4]
call fcn.004417c4
mov esi, eax
test esi, esi
jns 0x4103f4
push str.HelpTelephone
jmp 0x410689
cmp dword [edi + 0x74], 0
je 0x41041a
push dword [edi + 0x74]
push str.URLInfoAbout
push dword [ebp - 4]
call fcn.004417c4
mov esi, eax
test esi, esi
jns 0x41041a
push str.URLInfoAbout
jmp 0x410689
cmp dword [edi + 0x78], 0
je 0x410440
push dword [edi + 0x78]
push str.URLUpdateInfo
push dword [ebp - 4]
call fcn.004417c4
mov esi, eax
test esi, esi
jns 0x410440
push str.URLUpdateInfo
jmp 0x410689
cmp dword [edi + 0x7c], 0
je 0x410486
push dword [edi + 0x7c]
push str.ParentDisplayName
push dword [ebp - 4]
call fcn.004417c4
mov esi, eax
test esi, esi
jns 0x410466
push str.ParentDisplayName
jmp 0x410689
push dword [edi + 0x7c]
push str.ParentKeyName
push dword [ebp - 4]
call fcn.004417c4
mov esi, eax
test esi, esi
jns 0x410486
push str.ParentKeyName
jmp 0x410689
mov eax, dword [edi + 0x80]
test eax, eax
je 0x4104ae
push eax
push str.Comments
push dword [ebp - 4]
call fcn.004417c4
mov esi, eax
test esi, esi
jns 0x4104ae
push str.Comments
jmp 0x410689
mov eax, dword [edi + 0x84]
test eax, eax
je 0x4104d6
push eax
push str.Contact
push dword [ebp - 4]
call fcn.004417c4
mov esi, eax
test esi, esi
jns 0x4104d6
push str.Contact
jmp 0x410689
mov eax, dword [edi + 0x88]
cmp eax, 1
jne 0x4104ff
push eax
push str.NoModify
push dword [ebp - 4]
call fcn.00441776
mov esi, eax
test esi, esi
jns 0x41054b
push str.NoModify
jmp 0x410689
cmp eax, 2
je 0x41054b
push dword [edi + 0x54]
push str.__ls___modify
push str.ModifyPath
push dword [ebp - 4]
call fcn.004419a5
mov esi, eax
add esp, 0x10
test esi, esi
jns 0x41052c
push str.ModifyPath
jmp 0x410689
push 1
push str.NoElevateOnModify
push dword [ebp - 4]
call fcn.00441776
mov esi, eax
test esi, esi
jns 0x41054b
push str.NoElevateOnModify
jmp 0x410689
cmp dword [edi + 0x8c], 0
je 0x410577
push dword [edi + 0x90]
push str.NoRemove
push dword [ebp - 4]
call fcn.00441776
mov esi, eax
test esi, esi
jns 0x410577
push str.NoRemove
jmp 0x410689
cmp dword [edi + 4], 0
jne 0x41059c
push 1
push str.SystemComponent
push dword [ebp - 4]
call fcn.00441776
mov esi, eax
test esi, esi
jns 0x41059c
push str.SystemComponent
jmp 0x410689
push dword [edi + 0x54]
push str.__ls___uninstall__quiet
push str.QuietUninstallString
push dword [ebp - 4]
call fcn.004419a5
mov esi, eax
add esp, 0x10
test esi, esi
jns 0x4105c4
push str.QuietUninstallString
jmp 0x410689
cmp dword [edi + 0x88], 2
mov ecx, str.__uninstall
mov eax, str._modify
cmovne eax, ecx
push eax
push dword [edi + 0x54]
push str.__ls___ls
push str.UninstallString
push dword [ebp - 4]
call fcn.004419a5
mov esi, eax
add esp, 0x14
test esi, esi
jns 0x410601
push str.UninstallString
jmp 0x410689
cmp dword [edi + 0x98], 0
je 0x410627
lea eax, [edi + 0x94]
push eax
push ebx
call fcn.0040f5cb
mov esi, eax
test esi, esi
jns 0x410627
push str.Failed_to_write_software_tags.
jmp 0x4106ca
cmp dword [edi + 0x9c], 0
je 0x410647
push ebx
push edi
call fcn.0040f6ff
mov esi, eax
test esi, esi
jns 0x410647
push str.Failed_to_write_update_registration.
jmp 0x4106ca
test byte [ebp + 0x18], 4
je 0x410699
mov ecx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x24]
shrd ecx, eax, 0xa
shr eax, 0xa
test eax, eax
jb 0x410699
ja 0x410668
test ecx, ecx
je 0x410699
test eax, eax
jb 0x410671
push 0xffffffffffffffff
pop eax
ja 0x410673
cmp ecx, eax
ja 0x410673
mov eax, ecx
push eax
mov ebx, str.EstimatedSize
push ebx
push dword [ebp - 4]
call fcn.00441776
mov esi, eax
test esi, esi
jns 0x410699
push ebx
push str.Failed_to_write__ls_value.
push esi
call fcn.00440564
add esp, 0xc
jmp 0x4106d2
cmp dword [ebp + 0x1c], 1
jne 0x4106b2
push edi
call fcn.0042848c
mov esi, eax
test esi, esi
jns 0x4106b2
push str.Failed_to_register_the_bundle_dependency_key.
jmp 0x4106ca
push 0
push 1
push dword [ebp - 4]
push edi
call fcn.0040f38c
mov esi, eax
test esi, esi
jns 0x4106d2
push str.Failed_to_update_resume_mode.
push esi
call fcn.00440564
pop ecx
pop ecx
pop ebx
cmp dword [ebp - 8], 0
je 0x4106e1
push dword [ebp - 8]
call fcn.0040296f
cmp dword [ebp - 0xc], 0
je 0x4106ef
push dword [ebp - 0xc]
call fcn.0040296f
cmp dword [ebp - 4], 0
je 0x4106fe
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret 0x20