Function at 0x42e682
Capabilities:
Reference sql statements

Disassembly:
push 0x28
mov eax, 0x47953a
call fcn.0045be74
xor esi, esi
push str.InitUpgrade...
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x2c], esi
call fcn.004020a6
push esi
lea eax, [ebp - 0x24]
push eax
push 2
pop edi
push edi
mov dword [ebp - 4], esi
call fcn.004152d1
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x24]
add esp, 0xc
add ecx, 0xfffffff0
call fcn.004025d2
mov ebx, dword [0x4c4794]
mov eax, 0x4c4c24
call fcn.00405301
mov dword [ebp - 0x24], eax
call fcn.0040e387
mov dword [ebp - 0x30], eax
cmp ebx, esi
je 0x42e6e7
cmp dword [ebp - 0x24], esi
je 0x42e6f8
cmp dword [ebp - 0x24], esi
je 0x42e6f0
cmp eax, esi
je 0x42e6f8
cmp dword [0x4c47c0], esi
je 0x42e730
push str.Upgrade_disabled__returning:
lea ecx, [ebp + 8]
call fcn.004020a6
push 0x3d32
push edi
lea esi, [ebp + 8]
mov dword [ebp - 4], 1
call fcn.004153a2
pop ecx
pop ecx
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
mov esi, eax
call fcn.004025d2
mov eax, esi
jmp 0x42ebb3
mov ebx, eax
neg ebx
sbb ebx, ebx
and ebx, 0xffffc2db
add ebx, 0x3d32
push str.Upgrade_data_not_available
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x24], ebx
call fcn.004020a6
mov dword [ebp - 4], edi
call fcn.0044825c
push eax
lea ecx, [ebp - 0x1c]
call fcn.0041872d
mov byte [ebp - 4], 3
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [ebp + 0x10]
push dword [eax]
push dword [ebp + 0xc]
call main
mov eax, dword [ebp - 0x1c]
add esp, 0xc
cmp dword [eax - 0xc], esi
jne 0x42e7b6
push str.:_Upgrade_ID
lea ecx, [ebp + 8]
call fcn.004020a6
push esi
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x18]
push eax
push edi
mov byte [ebp - 4], 4
call fcn.00414e01
mov ecx, dword [ebp + 8]
add esp, 0x10
add ecx, 0xfffffff0
call fcn.004025d2
jmp 0x42eb9b
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x10], esi
push str.SELECT__FROM__UpgradeEx__WHERE__Upgrade_
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 6
call fcn.004020a6
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x1c]
push dword [eax - 0xc]
lea ecx, [ebp - 0x20]
push eax
call main
push 0x4a2fa0
lea eax, [ebp - 0x20]
push eax
call fcn.0040aac0
cmp dword [ebp - 0x14], esi
je 0x42e7fb
push dword [ebp - 0x14]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
lea ecx, [ebp - 0x14]
push ecx
push dword [ebp - 0x20]
mov dword [ebp - 0x14], esi
push eax
call sub.msi.dll_MsiEnumClientsA
test eax, eax
jne 0x42eb68
push esi
push dword [ebp - 0x14]
call sub.msi.dll_MsiViewModify
test eax, eax
jne 0x42eb68
cmp dword [ebp - 0x10], esi
je 0x42e837
push dword [ebp - 0x10]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x14]
mov dword [ebp - 0x10], esi
call sub.msi.dll_MsiDatabaseIsTablePersistentA
test eax, eax
jne 0x42eb68
call fcn.0044825c
push eax
lea ecx, [ebp + 0xc]
call fcn.0041872d
mov byte [ebp - 4], 8
call fcn.0044825c
push eax
lea ecx, [ebp + 0x10]
call fcn.0041872d
lea eax, [ebp + 0xc]
push eax
mov byte [ebp - 4], 9
push edi
push dword [ebp - 0x10]
call main
add esp, 0xc
test eax, eax
je 0x42e8cf
push str.:_URL
lea ecx, [ebp + 8]
call fcn.004020a6
mov byte [ebp - 4], 0xa
push esi
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x18]
push eax
push edi
call fcn.00414e01
mov ecx, dword [ebp + 8]
add esp, 0x10
add ecx, 0xfffffff0
call fcn.004025d2
mov ecx, dword [ebp + 0x10]
add ecx, 0xfffffff0
call fcn.004025d2
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
call fcn.004025d2
jmp 0x42eb76
lea eax, [ebp + 0x10]
push eax
push 3
push dword [ebp - 0x10]
call main
add esp, 0xc
test eax, eax
je 0x42e8f7
push str.:_Upgrade_Match
lea ecx, [ebp + 8]
call fcn.004020a6
mov byte [ebp - 4], 0xb
jmp 0x42e897
lea ebx, [ebp + 0x10]
mov ecx, 0x4c47ec
call fcn.0043b54f
push str.NoLongerSupported
lea ecx, [ebp - 0x28]
call fcn.004020a6
mov byte [ebp - 4], 0xc
mov esi, dword [ebp + 8]
mov eax, dword [esi + 4]
lea ecx, [ebp - 0x18]
push ecx
lea ecx, [ebp - 0x28]
xor ebx, ebx
push ecx
inc ebx
push eax
mov dword [ebp - 0x2c], ebx
call fcn.00442b08
add esp, 0xc
test eax, eax
jne 0x42e94a
push 0x48173c
lea ecx, [ebp - 0x18]
call fcn.0040ae5c
mov byte [ebp + 0xb], bl
test eax, eax
je 0x42e94e
mov byte [ebp + 0xb], 0
mov dword [ebp - 4], 9
mov ecx, dword [ebp - 0x28]
add ecx, 0xfffffff0
call fcn.004025d2
cmp byte [ebp + 0xb], 0
je 0x42e99b
push str.NoLongerSupported_is_set_in_Manifest
lea ecx, [ebp + 8]
call fcn.004020a6
push 0
lea eax, [ebp + 8]
push eax
push edi
mov byte [ebp - 4], 0xd
call fcn.004152d1
mov byte [ebp - 4], 9
mov ecx, dword [ebp + 8]
add esp, 0xc
add ecx, 0xfffffff0
call fcn.004025d2
mov dword [0x4c48cc], ebx
cmp dword [ebp - 0x30], 0
jne 0x42ead1
call fcn.0044825c
push eax
lea ecx, [ebp + 8]
call fcn.0041872d
push str.UpgradeName
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0xe
call fcn.004020a6
lea ecx, [ebp + 8]
push ecx
mov byte [ebp - 4], 0xf
mov eax, dword [esi + 4]
lea ecx, [ebp - 0x28]
push ecx
push eax
mov dword [ebp - 0x2c], edi
call fcn.00442b08
mov esi, dword [ebp + 8]
add esp, 0xc
test eax, eax
jne 0x42e9ec
cmp dword [esi - 0xc], 0
jne 0x42e9ee
xor bl, bl
mov dword [ebp - 4], 0xe
mov ecx, dword [ebp - 0x28]
add ecx, 0xfffffff0
call fcn.004025d2
test bl, bl
je 0x42ea48
push str.UpgradeName_from_product_manifest:
lea ecx, [ebp - 0x28]
call fcn.004020a6
xor ebx, ebx
push ebx
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x28]
push eax
push edi
mov byte [ebp - 4], 0x10
call fcn.00414e01
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x28]
add esp, 0x10
add ecx, 0xfffffff0
call fcn.004025d2
lea eax, [ebp + 8]
push eax
mov ecx, 0x4c48e0
call fcn.00402573
jmp 0x42ea4a
xor ebx, ebx
call fcn.004406a2
test eax, eax
jne 0x42eab4
lea ecx, [esi - 0x10]
call fcn.004025d2
mov ecx, dword [ebp + 0x10]
add ecx, 0xfffffff0
call fcn.004025d2
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
call fcn.004025d2
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.004025d2
cmp dword [ebp - 0x10], ebx
je 0x42ea89
push dword [ebp - 0x10]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
cmp dword [ebp - 0x14], ebx
je 0x42ea96
push dword [ebp - 0x14]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.004025d2
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.004025d2
mov eax, dword [ebp - 0x24]
jmp 0x42ebb3
lea edx, [ebp + 0xc]
mov ecx, 0x4c4964
call fcn.00420e14
lea ecx, [esi - 0x10]
test eax, eax
je 0x42ea56
mov byte [ebp - 4], 9
call fcn.004025d2
push 0x4c47ec
call fcn.00438ec8
mov ecx, dword [ebp + 0x10]
add ecx, 0xfffffff0
test eax, eax
jne 0x42eb17
call fcn.004025d2
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
call fcn.004025d2
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.004025d2
cmp dword [ebp - 0x10], 0
je 0x42eb0e
push dword [ebp - 0x10]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
cmp dword [ebp - 0x14], 0
jmp 0x42ea8c
call fcn.004025d2
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
call fcn.004025d2
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.004025d2
cmp dword [ebp - 0x10], 0
je 0x42eb40
push dword [ebp - 0x10]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
cmp dword [ebp - 0x14], 0
je 0x42eb4e
push dword [ebp - 0x14]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.004025d2
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.004025d2
xor eax, eax
jmp 0x42ebb3
push esi
lea eax, [ebp - 0x18]
push eax
push edi
call fcn.004152d1
add esp, 0xc
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.004025d2
cmp dword [ebp - 0x10], esi
je 0x42eb8e
push dword [ebp - 0x10]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
cmp dword [ebp - 0x14], esi
je 0x42eb9b
push dword [ebp - 0x14]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.004025d2
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.004025d2
mov eax, ebx
call fcn.0045bf4c
ret 0xc