Function at 0x4258a0
Capabilities:
Reference sql statements

Disassembly:
push 0x28
mov eax, 0x46f800
call fcn.004529c4
xor esi, esi
push str.InitUpgrade...
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x2c], esi
call fcn.004012e2
push esi
lea eax, [ebp - 0x24]
push eax
push 2
pop edi
push edi
mov dword [ebp - 4], esi
call fcn.004117b0
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x24]
add esp, 0xc
add ecx, 0xfffffff0
call fcn.004017df
mov ebx, dword [0x4b7784]
mov eax, 0x4b7bf4
call fcn.00401cb5
mov dword [ebp - 0x24], eax
call fcn.0040a8c7
mov dword [ebp - 0x30], eax
cmp ebx, esi
je 0x425905
cmp dword [ebp - 0x24], esi
je 0x425916
cmp dword [ebp - 0x24], esi
je 0x42590e
cmp eax, esi
je 0x425916
cmp dword [0x4b77b0], esi
je 0x42594e
push str.Upgrade_disabled__returning:
lea ecx, [ebp + 8]
call fcn.004012e2
push 0x3d32
push edi
lea esi, [ebp + 8]
mov dword [ebp - 4], 1
call fcn.00411881
pop ecx
pop ecx
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
mov esi, eax
call fcn.004017df
mov eax, esi
jmp 0x425dd1
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.004012e2
mov dword [ebp - 4], edi
call fcn.0043eec2
push eax
lea ecx, [ebp - 0x1c]
call fcn.004013a1
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 0x4259d4
push str.:_Upgrade_ID
lea ecx, [ebp + 8]
call fcn.004012e2
push esi
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x18]
push eax
push edi
mov byte [ebp - 4], 4
call fcn.004112e0
mov ecx, dword [ebp + 8]
add esp, 0x10
add ecx, 0xfffffff0
call fcn.004017df
jmp 0x425db9
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.004012e2
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x1c]
push dword [eax - 0xc]
lea ecx, [ebp - 0x20]
push eax
call main
push 0x497b90
lea eax, [ebp - 0x20]
push eax
call fcn.00407117
cmp dword [ebp - 0x14], esi
je 0x425a19
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 0x425d86
push esi
push dword [ebp - 0x14]
call sub.msi.dll_MsiViewModify
test eax, eax
jne 0x425d86
cmp dword [ebp - 0x10], esi
je 0x425a55
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 0x425d86
call fcn.0043eec2
push eax
lea ecx, [ebp + 0xc]
call fcn.004013a1
mov byte [ebp - 4], 8
call fcn.0043eec2
push eax
lea ecx, [ebp + 0x10]
call fcn.004013a1
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 0x425aed
push str.:_URL
lea ecx, [ebp + 8]
call fcn.004012e2
mov byte [ebp - 4], 0xa
push esi
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x18]
push eax
push edi
call fcn.004112e0
mov ecx, dword [ebp + 8]
add esp, 0x10
add ecx, 0xfffffff0
call fcn.004017df
mov ecx, dword [ebp + 0x10]
add ecx, 0xfffffff0
call fcn.004017df
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
call fcn.004017df
jmp 0x425d94
lea eax, [ebp + 0x10]
push eax
push 3
push dword [ebp - 0x10]
call main
add esp, 0xc
test eax, eax
je 0x425b15
push str.:_Upgrade_Match
lea ecx, [ebp + 8]
call fcn.004012e2
mov byte [ebp - 4], 0xb
jmp 0x425ab5
lea ebx, [ebp + 0x10]
mov ecx, 0x4b77dc
call fcn.0043239b
push str.NoLongerSupported
lea ecx, [ebp - 0x28]
call fcn.004012e2
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.00439991
add esp, 0xc
test eax, eax
jne 0x425b68
push 0x4771f4
lea ecx, [ebp - 0x18]
call fcn.004074b3
mov byte [ebp + 0xb], bl
test eax, eax
je 0x425b6c
mov byte [ebp + 0xb], 0
mov dword [ebp - 4], 9
mov ecx, dword [ebp - 0x28]
add ecx, 0xfffffff0
call fcn.004017df
cmp byte [ebp + 0xb], 0
je 0x425bb9
push str.NoLongerSupported_is_set_in_Manifest
lea ecx, [ebp + 8]
call fcn.004012e2
push 0
lea eax, [ebp + 8]
push eax
push edi
mov byte [ebp - 4], 0xd
call fcn.004117b0
mov byte [ebp - 4], 9
mov ecx, dword [ebp + 8]
add esp, 0xc
add ecx, 0xfffffff0
call fcn.004017df
mov dword [0x4b78bc], ebx
cmp dword [ebp - 0x30], 0
jne 0x425cef
call fcn.0043eec2
push eax
lea ecx, [ebp + 8]
call fcn.004013a1
push str.UpgradeName
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0xe
call fcn.004012e2
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.00439991
mov esi, dword [ebp + 8]
add esp, 0xc
test eax, eax
jne 0x425c0a
cmp dword [esi - 0xc], 0
jne 0x425c0c
xor bl, bl
mov dword [ebp - 4], 0xe
mov ecx, dword [ebp - 0x28]
add ecx, 0xfffffff0
call fcn.004017df
test bl, bl
je 0x425c66
push str.UpgradeName_from_product_manifest:
lea ecx, [ebp - 0x28]
call fcn.004012e2
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.004112e0
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x28]
add esp, 0x10
add ecx, 0xfffffff0
call fcn.004017df
lea eax, [ebp + 8]
push eax
mov ecx, 0x4b78d0
call fcn.00407768
jmp 0x425c68
xor ebx, ebx
call fcn.00437666
test eax, eax
jne 0x425cd2
lea ecx, [esi - 0x10]
call fcn.004017df
mov ecx, dword [ebp + 0x10]
add ecx, 0xfffffff0
call fcn.004017df
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
call fcn.004017df
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.004017df
cmp dword [ebp - 0x10], ebx
je 0x425ca7
push dword [ebp - 0x10]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
cmp dword [ebp - 0x14], ebx
je 0x425cb4
push dword [ebp - 0x14]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.004017df
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.004017df
mov eax, dword [ebp - 0x24]
jmp 0x425dd1
lea edx, [ebp + 0xc]
mov ecx, 0x4b7938
call fcn.0041b21e
lea ecx, [esi - 0x10]
test eax, eax
je 0x425c74
mov byte [ebp - 4], 9
call fcn.004017df
push 0x4b77dc
call fcn.0042fd3d
mov ecx, dword [ebp + 0x10]
add ecx, 0xfffffff0
test eax, eax
jne 0x425d35
call fcn.004017df
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
call fcn.004017df
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.004017df
cmp dword [ebp - 0x10], 0
je 0x425d2c
push dword [ebp - 0x10]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
cmp dword [ebp - 0x14], 0
jmp 0x425caa
call fcn.004017df
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
call fcn.004017df
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.004017df
cmp dword [ebp - 0x10], 0
je 0x425d5e
push dword [ebp - 0x10]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
cmp dword [ebp - 0x14], 0
je 0x425d6c
push dword [ebp - 0x14]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.004017df
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.004017df
xor eax, eax
jmp 0x425dd1
push esi
lea eax, [ebp - 0x18]
push eax
push edi
call fcn.004117b0
add esp, 0xc
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.004017df
cmp dword [ebp - 0x10], esi
je 0x425dac
push dword [ebp - 0x10]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
cmp dword [ebp - 0x14], esi
je 0x425db9
push dword [ebp - 0x14]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.004017df
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.004017df
mov eax, ebx
call fcn.00452a9c
ret 0xc