Function at 0x40ff99
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.00413d85
push eax
push dword [ebp + 0x18]
push dword [edi + 0x50]
push 0x20000172
push 3
call fcn.00405602
add esp, 0x14
test byte [ebp + 0x18], 1
je 0x410002
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.00419cd7
mov esi, eax
test esi, esi
jns 0x410002
push dword [ebp + 8]
push 0x451768
push esi
call fcn.00440237
add esp, 0xc
jmp 0x41057b
lea eax, [ebp - 4]
push eax
push 0x20006
push dword [edi + 0x50]
push dword [edi + 0x4c]
call fcn.00440b9c
mov esi, eax
test esi, esi
jns 0x41002e
push 0x451790
push esi
call fcn.00440237
pop ecx
pop ecx
jmp 0x41057b
test byte [ebp + 0x18], 2
push ebx
je 0x4104ef
push dword [edi + 0x54]
mov ebx, str.BundleCachePath
push ebx
push dword [ebp - 4]
call fcn.004414f4
mov esi, eax
test esi, esi
js 0x410530
push dword [edi + 0x24]
mov ebx, str.BundleUpgradeCode
push dword [edi + 0x20]
push ebx
push dword [ebp - 4]
call fcn.0044159e
mov esi, eax
test esi, esi
js 0x410530
push dword [edi + 0x2c]
mov ebx, str.BundleAddonCode
push dword [edi + 0x28]
push ebx
push dword [ebp - 4]
call fcn.0044159e
mov esi, eax
test esi, esi
js 0x410530
push dword [edi + 0x1c]
mov ebx, str.BundleDetectCode
push dword [edi + 0x18]
push ebx
push dword [ebp - 4]
call fcn.0044159e
mov esi, eax
test esi, esi
js 0x410530
push dword [edi + 0x34]
mov ebx, str.BundlePatchCode
push dword [edi + 0x30]
push ebx
push dword [ebp - 4]
call fcn.0044159e
mov esi, eax
test esi, esi
js 0x410530
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
shr eax, 0x10
movzx eax, cx
push eax
movzx eax, dx
push eax
shr edx, 0x10
push edx
push 0x4517d0
push ebx
push dword [ebp - 4]
call fcn.004416d5
mov esi, eax
add esp, 0x1c
test esi, esi
js 0x410530
movzx eax, word [edi + 0x3e]
mov ebx, str.VersionMajor
push eax
push ebx
push dword [ebp - 4]
call fcn.004414a6
mov esi, eax
test esi, esi
js 0x410530
mov eax, dword [edi + 0x38]
mov cl, 0x20
mov edx, dword [edi + 0x3c]
call fcn.0042e2f0
movzx eax, ax
mov ebx, str.VersionMinor
push eax
push ebx
push dword [ebp - 4]
call fcn.004414a6
mov esi, eax
test esi, esi
js 0x410530
cmp dword [edi + 0x44], 0
je 0x410172
push dword [edi + 0x44]
mov ebx, str.BundleProviderKey
push ebx
push dword [ebp - 4]
call fcn.004414f4
mov esi, eax
test esi, esi
js 0x410530
cmp dword [edi + 0x14], 0
je 0x410193
push dword [edi + 0x14]
mov ebx, str.BundleTag
push ebx
push dword [ebp - 4]
call fcn.004414f4
mov esi, eax
test esi, esi
js 0x410530
push str.3.11.1.2318
push 0x4517f0
mov ebx, str.EngineVersion
push ebx
push dword [ebp - 4]
call fcn.004416d5
mov esi, eax
add esp, 0x10
test esi, esi
js 0x410530
push dword [edi + 0x54]
mov ebx, str.DisplayIcon
push 0x4517f8
push ebx
push dword [ebp - 4]
call fcn.004416d5
mov esi, eax
add esp, 0x10
test esi, esi
js 0x410530
push dword [ebp - 4]
mov ebx, dword [ebp + 0x10]
push ebx
push edi
call fcn.0040f1b0
mov esi, eax
test esi, esi
jns 0x4101f8
push 0x451804
jmp 0x410572
cmp dword [edi + 0x64], 0
je 0x41021e
push dword [edi + 0x64]
push str.DisplayVersion
push dword [ebp - 4]
call fcn.004414f4
mov esi, eax
test esi, esi
jns 0x41021e
push str.DisplayVersion
jmp 0x410531
lea eax, [ebp - 8]
push eax
push ebx
push edi
call fcn.0040e972
test eax, eax
mov eax, dword [ebp - 8]
jns 0x410233
mov eax, dword [edi + 0x68]
push eax
push str.Publisher
push dword [ebp - 4]
call fcn.004414f4
mov esi, eax
test esi, esi
jns 0x410251
push str.Publisher
jmp 0x410531
cmp dword [edi + 0x6c], 0
je 0x410277
push dword [edi + 0x6c]
push str.HelpLink
push dword [ebp - 4]
call fcn.004414f4
mov esi, eax
test esi, esi
jns 0x410277
push str.HelpLink
jmp 0x410531
cmp dword [edi + 0x70], 0
je 0x41029d
push dword [edi + 0x70]
push str.HelpTelephone
push dword [ebp - 4]
call fcn.004414f4
mov esi, eax
test esi, esi
jns 0x41029d
push str.HelpTelephone
jmp 0x410531
cmp dword [edi + 0x74], 0
je 0x4102c3
push dword [edi + 0x74]
push str.URLInfoAbout
push dword [ebp - 4]
call fcn.004414f4
mov esi, eax
test esi, esi
jns 0x4102c3
push str.URLInfoAbout
jmp 0x410531
cmp dword [edi + 0x78], 0
je 0x4102e9
push dword [edi + 0x78]
push str.URLUpdateInfo
push dword [ebp - 4]
call fcn.004414f4
mov esi, eax
test esi, esi
jns 0x4102e9
push str.URLUpdateInfo
jmp 0x410531
cmp dword [edi + 0x7c], 0
je 0x41032f
push dword [edi + 0x7c]
push str.ParentDisplayName
push dword [ebp - 4]
call fcn.004414f4
mov esi, eax
test esi, esi
jns 0x41030f
push str.ParentDisplayName
jmp 0x410531
push dword [edi + 0x7c]
push str.ParentKeyName
push dword [ebp - 4]
call fcn.004414f4
mov esi, eax
test esi, esi
jns 0x41032f
push str.ParentKeyName
jmp 0x410531
mov eax, dword [edi + 0x80]
test eax, eax
je 0x410357
push eax
push str.Comments
push dword [ebp - 4]
call fcn.004414f4
mov esi, eax
test esi, esi
jns 0x410357
push str.Comments
jmp 0x410531
mov eax, dword [edi + 0x84]
test eax, eax
je 0x41037f
push eax
push str.Contact
push dword [ebp - 4]
call fcn.004414f4
mov esi, eax
test esi, esi
jns 0x41037f
push str.Contact
jmp 0x410531
mov eax, dword [edi + 0x88]
cmp eax, 1
jne 0x4103a8
push eax
push str.NoModify
push dword [ebp - 4]
call fcn.004414a6
mov esi, eax
test esi, esi
jns 0x4103f4
push str.NoModify
jmp 0x410531
cmp eax, 2
je 0x4103f4
push dword [edi + 0x54]
push 0x45182c
push str.ModifyPath
push dword [ebp - 4]
call fcn.004416d5
mov esi, eax
add esp, 0x10
test esi, esi
jns 0x4103d5
push str.ModifyPath
jmp 0x410531
push 1
push str.NoElevateOnModify
push dword [ebp - 4]
call fcn.004414a6
mov esi, eax
test esi, esi
jns 0x4103f4
push str.NoElevateOnModify
jmp 0x410531
cmp dword [edi + 0x8c], 0
je 0x410420
push dword [edi + 0x90]
push str.NoRemove
push dword [ebp - 4]
call fcn.004414a6
mov esi, eax
test esi, esi
jns 0x410420
push str.NoRemove
jmp 0x410531
cmp dword [edi + 4], 0
jne 0x410445
push 1
push str.SystemComponent
push dword [ebp - 4]
call fcn.004414a6
mov esi, eax
test esi, esi
jns 0x410445
push str.SystemComponent
jmp 0x410531
push dword [edi + 0x54]
push 0x451848
push str.QuietUninstallString
push dword [ebp - 4]
call fcn.004416d5
mov esi, eax
add esp, 0x10
test esi, esi
jns 0x41046d
push str.QuietUninstallString
jmp 0x410531
cmp dword [edi + 0x88], 2
mov eax, 0x451878
je 0x410480
mov eax, 0x451888
push eax
push dword [edi + 0x54]
push str.__ls___ls
push str.UninstallString
push dword [ebp - 4]
call fcn.004416d5
mov esi, eax
add esp, 0x14
test esi, esi
jns 0x4104a9
push str.UninstallString
jmp 0x410531
cmp dword [edi + 0x98], 0
je 0x4104cf
lea eax, [edi + 0x94]
push eax
push ebx
call fcn.0040f451
mov esi, eax
test esi, esi
jns 0x4104cf
push 0x4518a0
jmp 0x410572
cmp dword [edi + 0x9c], 0
je 0x4104ef
push ebx
push edi
call fcn.0040f585
mov esi, eax
test esi, esi
jns 0x4104ef
push 0x4518c0
jmp 0x410572
test byte [ebp + 0x18], 4
je 0x410541
mov ecx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x24]
shrd ecx, eax, 0xa
shr eax, 0xa
test eax, eax
jb 0x410541
ja 0x410510
test ecx, ecx
je 0x410541
test eax, eax
jb 0x410519
push 0xffffffffffffffff
pop eax
ja 0x41051b
cmp ecx, eax
ja 0x41051b
mov eax, ecx
push eax
mov ebx, str.EstimatedSize
push ebx
push dword [ebp - 4]
call fcn.004414a6
mov esi, eax
test esi, esi
jns 0x410541
push ebx
push 0x4517b4
push esi
call fcn.00440237
add esp, 0xc
jmp 0x41057a
cmp dword [ebp + 0x1c], 1
jne 0x41055a
push edi
call fcn.0042859f
mov esi, eax
test esi, esi
jns 0x41055a
push 0x4518e8
jmp 0x410572
push 0
push 1
push dword [ebp - 4]
push edi
call fcn.0040f210
mov esi, eax
test esi, esi
jns 0x41057a
push 0x451918
push esi
call fcn.00440237
pop ecx
pop ecx
pop ebx
cmp dword [ebp - 8], 0
je 0x410589
push dword [ebp - 8]
call fcn.00445636
cmp dword [ebp - 4], 0
je 0x410598
push dword [ebp - 4]
call dword [section..rdata]
pop edi
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret 0x20