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

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
and dword [ebp - 4], 0
and dword [ebp - 8], 0
push esi
push edi
mov edi, dword [ebp + 0xc]
push dword [edi + 8]
call fcn.00413df9
push eax
push dword [ebp + 0x18]
push dword [edi + 0x50]
push 0x20000172
push 3
call fcn.00405678
add esp, 0x14
test byte [ebp + 0x18], 1
je 0x41008b
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.00419cb6
mov esi, eax
test esi, esi
jns 0x41008b
push dword [ebp + 8]
push str.Failed_to_cache_bundle_from_path:__ls
push esi
call fcn.0044311f
add esp, 0xc
jmp 0x410601
lea eax, [ebp - 4]
push eax
push 0x20006
push dword [edi + 0x50]
push dword [edi + 0x4c]
call fcn.00443b33
mov esi, eax
test esi, esi
jns 0x4100b7
push str.Failed_to_create_registration_key.
push esi
call fcn.0044311f
pop ecx
pop ecx
jmp 0x410601
test byte [ebp + 0x18], 2
push ebx
je 0x410575
push dword [edi + 0x54]
mov ebx, str.BundleCachePath
push ebx
push dword [ebp - 4]
call fcn.00444462
mov esi, eax
test esi, esi
js 0x4105b6
push dword [edi + 0x24]
mov ebx, str.BundleUpgradeCode
push dword [edi + 0x20]
push ebx
push dword [ebp - 4]
call fcn.0044450a
mov esi, eax
test esi, esi
js 0x4105b6
push dword [edi + 0x2c]
mov ebx, str.BundleAddonCode
push dword [edi + 0x28]
push ebx
push dword [ebp - 4]
call fcn.0044450a
mov esi, eax
test esi, esi
js 0x4105b6
push dword [edi + 0x1c]
mov ebx, str.BundleDetectCode
push dword [edi + 0x18]
push ebx
push dword [ebp - 4]
call fcn.0044450a
mov esi, eax
test esi, esi
js 0x4105b6
push dword [edi + 0x34]
mov ebx, str.BundlePatchCode
push dword [edi + 0x30]
push ebx
push dword [ebp - 4]
call fcn.0044450a
mov esi, eax
test esi, esi
js 0x4105b6
mov ecx, dword [edi + 0x38]
mov ebx, str.BundleVersion
mov edx, dword [edi + 0x3c]
movzx eax, cx
push eax
mov eax, edx
shrd ecx, 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.0044463f
mov esi, eax
add esp, 0x1c
test esi, esi
js 0x4105b6
movzx eax, word [edi + 0x3e]
mov ebx, str.VersionMajor
push eax
push ebx
push dword [ebp - 4]
call fcn.00444414
mov esi, eax
test esi, esi
js 0x4105b6
mov eax, dword [edi + 0x38]
mov cl, 0x20
mov edx, dword [edi + 0x3c]
call fcn.0042e0d0
movzx eax, ax
mov ebx, str.VersionMinor
push eax
push ebx
push dword [ebp - 4]
call fcn.00444414
mov esi, eax
test esi, esi
js 0x4105b6
cmp dword [edi + 0x44], 0
je 0x4101f8
push dword [edi + 0x44]
mov ebx, str.BundleProviderKey
push ebx
push dword [ebp - 4]
call fcn.00444462
mov esi, eax
test esi, esi
js 0x4105b6
cmp dword [edi + 0x14], 0
je 0x410219
push dword [edi + 0x14]
mov ebx, str.BundleTag
push ebx
push dword [ebp - 4]
call fcn.00444462
mov esi, eax
test esi, esi
js 0x4105b6
push str.3.14.0.6526
push 0x454aa8
mov ebx, str.EngineVersion
push ebx
push dword [ebp - 4]
call fcn.0044463f
mov esi, eax
add esp, 0x10
test esi, esi
js 0x4105b6
push dword [edi + 0x54]
mov ebx, str.DisplayIcon
push str._s_0
push ebx
push dword [ebp - 4]
call fcn.0044463f
mov esi, eax
add esp, 0x10
test esi, esi
js 0x4105b6
push dword [ebp - 4]
mov ebx, dword [ebp + 0x10]
push ebx
push edi
call fcn.0040f249
mov esi, eax
test esi, esi
jns 0x41027e
push str.Failed_to_update_name_and_publisher.
jmp 0x4105f8
cmp dword [edi + 0x64], 0
je 0x4102a4
push dword [edi + 0x64]
push str.DisplayVersion
push dword [ebp - 4]
call fcn.00444462
mov esi, eax
test esi, esi
jns 0x4102a4
push str.DisplayVersion
jmp 0x4105b7
lea eax, [ebp - 8]
push eax
push ebx
push edi
call fcn.0040ea19
test eax, eax
mov eax, dword [ebp - 8]
jns 0x4102b9
mov eax, dword [edi + 0x68]
push eax
push str.Publisher
push dword [ebp - 4]
call fcn.00444462
mov esi, eax
test esi, esi
jns 0x4102d7
push str.Publisher
jmp 0x4105b7
cmp dword [edi + 0x6c], 0
je 0x4102fd
push dword [edi + 0x6c]
push str.HelpLink
push dword [ebp - 4]
call fcn.00444462
mov esi, eax
test esi, esi
jns 0x4102fd
push str.HelpLink
jmp 0x4105b7
cmp dword [edi + 0x70], 0
je 0x410323
push dword [edi + 0x70]
push str.HelpTelephone
push dword [ebp - 4]
call fcn.00444462
mov esi, eax
test esi, esi
jns 0x410323
push str.HelpTelephone
jmp 0x4105b7
cmp dword [edi + 0x74], 0
je 0x410349
push dword [edi + 0x74]
push str.URLInfoAbout
push dword [ebp - 4]
call fcn.00444462
mov esi, eax
test esi, esi
jns 0x410349
push str.URLInfoAbout
jmp 0x4105b7
cmp dword [edi + 0x78], 0
je 0x41036f
push dword [edi + 0x78]
push str.URLUpdateInfo
push dword [ebp - 4]
call fcn.00444462
mov esi, eax
test esi, esi
jns 0x41036f
push str.URLUpdateInfo
jmp 0x4105b7
cmp dword [edi + 0x7c], 0
je 0x4103b5
push dword [edi + 0x7c]
push str.ParentDisplayName
push dword [ebp - 4]
call fcn.00444462
mov esi, eax
test esi, esi
jns 0x410395
push str.ParentDisplayName
jmp 0x4105b7
push dword [edi + 0x7c]
push str.ParentKeyName
push dword [ebp - 4]
call fcn.00444462
mov esi, eax
test esi, esi
jns 0x4103b5
push str.ParentKeyName
jmp 0x4105b7
mov eax, dword [edi + 0x80]
test eax, eax
je 0x4103dd
push eax
push str.Comments
push dword [ebp - 4]
call fcn.00444462
mov esi, eax
test esi, esi
jns 0x4103dd
push str.Comments
jmp 0x4105b7
mov eax, dword [edi + 0x84]
test eax, eax
je 0x410405
push eax
push str.Contact
push dword [ebp - 4]
call fcn.00444462
mov esi, eax
test esi, esi
jns 0x410405
push str.Contact
jmp 0x4105b7
mov eax, dword [edi + 0x88]
cmp eax, 1
jne 0x41042e
push eax
push str.NoModify
push dword [ebp - 4]
call fcn.00444414
mov esi, eax
test esi, esi
jns 0x41047a
push str.NoModify
jmp 0x4105b7
cmp eax, 2
je 0x41047a
push dword [edi + 0x54]
push str.__ls___modify
push str.ModifyPath
push dword [ebp - 4]
call fcn.0044463f
mov esi, eax
add esp, 0x10
test esi, esi
jns 0x41045b
push str.ModifyPath
jmp 0x4105b7
push 1
push str.NoElevateOnModify
push dword [ebp - 4]
call fcn.00444414
mov esi, eax
test esi, esi
jns 0x41047a
push str.NoElevateOnModify
jmp 0x4105b7
cmp dword [edi + 0x8c], 0
je 0x4104a6
push dword [edi + 0x90]
push str.NoRemove
push dword [ebp - 4]
call fcn.00444414
mov esi, eax
test esi, esi
jns 0x4104a6
push str.NoRemove
jmp 0x4105b7
cmp dword [edi + 4], 0
jne 0x4104cb
push 1
push str.SystemComponent
push dword [ebp - 4]
call fcn.00444414
mov esi, eax
test esi, esi
jns 0x4104cb
push str.SystemComponent
jmp 0x4105b7
push dword [edi + 0x54]
push str.__ls___uninstall__quiet
push str.QuietUninstallString
push dword [ebp - 4]
call fcn.0044463f
mov esi, eax
add esp, 0x10
test esi, esi
jns 0x4104f3
push str.QuietUninstallString
jmp 0x4105b7
cmp dword [edi + 0x88], 2
mov eax, str._modify
je 0x410506
mov eax, str.__uninstall
push eax
push dword [edi + 0x54]
push str.__ls___ls
push str.UninstallString
push dword [ebp - 4]
call fcn.0044463f
mov esi, eax
add esp, 0x14
test esi, esi
jns 0x41052f
push str.UninstallString
jmp 0x4105b7
cmp dword [edi + 0x98], 0
je 0x410555
lea eax, [edi + 0x94]
push eax
push ebx
call fcn.0040f4e6
mov esi, eax
test esi, esi
jns 0x410555
push str.Failed_to_write_software_tags.
jmp 0x4105f8
cmp dword [edi + 0x9c], 0
je 0x410575
push ebx
push edi
call fcn.0040f618
mov esi, eax
test esi, esi
jns 0x410575
push str.Failed_to_write_update_registration.
jmp 0x4105f8
test byte [ebp + 0x18], 4
je 0x4105c7
mov ecx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x24]
shrd ecx, eax, 0xa
shr eax, 0xa
test eax, eax
jb 0x4105c7
ja 0x410596
test ecx, ecx
je 0x4105c7
test eax, eax
jb 0x41059f
push 0xffffffffffffffff
pop eax
ja 0x4105a1
cmp ecx, eax
ja 0x4105a1
mov eax, ecx
push eax
mov ebx, str.EstimatedSize
push ebx
push dword [ebp - 4]
call fcn.00444414
mov esi, eax
test esi, esi
jns 0x4105c7
push ebx
push str.Failed_to_write__ls_value.
push esi
call fcn.0044311f
add esp, 0xc
jmp 0x410600
cmp dword [ebp + 0x1c], 1
jne 0x4105e0
push edi
call fcn.004283f4
mov esi, eax
test esi, esi
jns 0x4105e0
push str.Failed_to_register_the_bundle_dependency_key.
jmp 0x4105f8
push 0
push 1
push dword [ebp - 4]
push edi
call fcn.0040f2a7
mov esi, eax
test esi, esi
jns 0x410600
push str.Failed_to_update_resume_mode.
push esi
call fcn.0044311f
pop ecx
pop ecx
pop ebx
cmp dword [ebp - 8], 0
je 0x41060f
push dword [ebp - 8]
call fcn.0040278d
cmp dword [ebp - 4], 0
je 0x41061e
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
mov eax, esi
pop esi
leave
ret 0x20