Function at 0x422953
Capabilities:
Reference sql statements

Disassembly:
push 0x24
mov eax, 0x461429
call fcn.00447d5b
xor esi, esi
push str.InitUpgrade...
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x2c], esi
call fcn.00402060
push esi
lea eax, [ebp - 0x24]
push eax
push 2
pop ebx
push ebx
mov dword [ebp - 4], esi
call fcn.00411fad
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x24]
add esp, 0xc
add ecx, 0xfffffff0
call fcn.0040253e
mov edi, dword [0x49c534]
mov eax, 0x49ccf4
call fcn.0040522b
mov dword [ebp - 0x24], eax
call fcn.0041fd95
mov dword [ebp - 0x30], eax
cmp edi, esi
je 0x4229b8
cmp dword [ebp - 0x24], esi
je 0x4229c1
cmp dword [ebp - 0x24], esi
je 0x4229f8
cmp eax, esi
jne 0x4229f8
push str.Upgrade_disabled_in_manual_mode
lea ecx, [ebp + 8]
call fcn.00402060
push esi
lea eax, [ebp + 8]
push eax
push ebx
mov dword [ebp - 4], 1
call fcn.00411fad
mov ecx, dword [ebp + 8]
add esp, 0xc
add ecx, 0xfffffff0
call fcn.0040253e
mov eax, 0x3d32
jmp 0x422e04
mov edi, eax
neg edi
sbb edi, edi
and edi, 0xffffc2db
push str.Upgrade_data_not_available
lea ecx, [ebp - 0x18]
add edi, 0x3d32
call fcn.00402060
mov dword [ebp - 4], ebx
call fcn.00434582
push eax
lea ecx, [ebp - 0x24]
call fcn.0040210b
lea eax, [ebp - 0x24]
push eax
mov byte [ebp - 4], 3
push 4
push dword [ebp + 0xc]
call fcn.00432b8b
mov ebx, dword [ebp - 0x24]
add esp, 0xc
cmp dword [ebx - 0xc], esi
jne 0x422a79
push str.:_Upgrade_ID
lea ecx, [ebp + 8]
call fcn.00402060
push esi
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x18]
push eax
push 2
mov byte [ebp - 4], 4
call fcn.00411b27
mov ecx, dword [ebp + 8]
add esp, 0x10
add ecx, 0xfffffff0
call fcn.0040253e
jmp 0x422def
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x10], esi
push str.SELECT__FROM__UpgradeEx__WHERE__Upgrade_
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 6
call fcn.00402060
mov byte [ebp - 4], 7
push dword [ebx - 0xc]
lea ecx, [ebp - 0x1c]
push ebx
call fcn.00401eca
push 0x4816f8
lea eax, [ebp - 0x1c]
push eax
call fcn.00408ceb
cmp dword [ebp - 0x14], esi
je 0x422abb
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 - 0x1c]
mov dword [ebp - 0x14], esi
push eax
call sub.msi.dll_MsiEnumClientsA
test eax, eax
jne 0x422dbb
push esi
push dword [ebp - 0x14]
call sub.msi.dll_MsiViewModify
test eax, eax
jne 0x422dbb
cmp dword [ebp - 0x10], esi
je 0x422af7
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 0x422dbb
call fcn.00434582
push eax
lea ecx, [ebp - 0x20]
call fcn.0040210b
mov byte [ebp - 4], 8
call fcn.00434582
push eax
lea ecx, [ebp + 0xc]
call fcn.0040210b
lea eax, [ebp - 0x20]
push eax
mov byte [ebp - 4], 9
push 2
push dword [ebp - 0x10]
call fcn.00432b8b
add esp, 0xc
test eax, eax
je 0x422b91
push str.:_URL
lea ecx, [ebp + 8]
call fcn.00402060
mov byte [ebp - 4], 0xa
push esi
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x18]
push eax
push 2
call fcn.00411b27
mov ecx, dword [ebp + 8]
add esp, 0x10
add ecx, 0xfffffff0
call fcn.0040253e
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
call fcn.0040253e
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.0040253e
jmp 0x422dca
lea eax, [ebp + 0xc]
push eax
push 3
push dword [ebp - 0x10]
call fcn.00432b8b
add esp, 0xc
test eax, eax
je 0x422bb9
push str.:_Upgrade_Match
lea ecx, [ebp + 8]
call fcn.00402060
mov byte [ebp - 4], 0xb
jmp 0x422b58
lea ebx, [ebp + 0xc]
mov ecx, 0x49c934
call fcn.0042caaf
push str.NoLongerSupported
lea ecx, [ebp - 0x28]
call fcn.00402060
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.004329f8
add esp, 0xc
test eax, eax
jne 0x422c0c
push 0x467f88
lea ecx, [ebp - 0x18]
call fcn.00408ff7
mov byte [ebp + 0xb], bl
test eax, eax
je 0x422c10
mov byte [ebp + 0xb], 0
mov dword [ebp - 4], 9
mov ecx, dword [ebp - 0x28]
add ecx, 0xfffffff0
call fcn.0040253e
cmp byte [ebp + 0xb], 0
je 0x422c5e
push str.NoLongerSupported_is_set_in_Manifest
lea ecx, [ebp + 8]
call fcn.00402060
push 0
lea eax, [ebp + 8]
push eax
push 2
mov byte [ebp - 4], 0xd
call fcn.00411fad
mov byte [ebp - 4], 9
mov ecx, dword [ebp + 8]
add esp, 0xc
add ecx, 0xfffffff0
call fcn.0040253e
mov dword [0x49c9f0], ebx
push str.DisableSwitchToThisWindow
lea ecx, [ebp + 8]
call fcn.00402060
lea ecx, [ebp - 0x18]
push ecx
mov byte [ebp - 4], 0xe
mov eax, dword [esi + 4]
lea ecx, [ebp + 8]
push ecx
push eax
mov dword [ebp - 0x2c], 2
call fcn.004329f8
add esp, 0xc
test eax, eax
jne 0x422c9f
push 0x467f88
lea ecx, [ebp - 0x18]
call fcn.00408ff7
test eax, eax
je 0x422ca1
xor bl, bl
mov dword [ebp - 4], 9
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.0040253e
test bl, bl
je 0x422cf0
push str.DisableSwitchToThisWindow_is_set_in_Manifest
lea ecx, [ebp - 0x28]
call fcn.00402060
xor esi, esi
push esi
lea eax, [ebp - 0x28]
push eax
push 2
mov byte [ebp - 4], 0xf
call fcn.00411fad
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x28]
add esp, 0xc
add ecx, 0xfffffff0
call fcn.0040253e
mov dword [0x49c9f4], esi
jmp 0x422cf2
xor esi, esi
cmp dword [ebp - 0x30], esi
jne 0x422d58
call fcn.004311dd
test eax, eax
jne 0x422d46
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
call fcn.0040253e
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.0040253e
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.0040253e
cmp dword [ebp - 0x10], esi
je 0x422d2e
push dword [ebp - 0x10]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
cmp dword [ebp - 0x14], esi
je 0x422d3b
push dword [ebp - 0x14]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
jmp 0x422df2
lea eax, [ebp - 0x20]
push eax
push 0x49ca4c
call fcn.00418671
test eax, eax
je 0x422d00
push 0x49c934
call fcn.0042b047
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
test eax, eax
je 0x422d06
call fcn.0040253e
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.0040253e
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.0040253e
cmp dword [ebp - 0x10], esi
je 0x422d94
push dword [ebp - 0x10]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
cmp dword [ebp - 0x14], esi
je 0x422da1
push dword [ebp - 0x14]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
call fcn.0040253e
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.0040253e
xor eax, eax
jmp 0x422e04
push esi
lea eax, [ebp - 0x18]
push eax
push 2
call fcn.00411fad
add esp, 0xc
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.0040253e
cmp dword [ebp - 0x10], esi
je 0x422de2
push dword [ebp - 0x10]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
cmp dword [ebp - 0x14], esi
je 0x422def
push dword [ebp - 0x14]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
lea ecx, [ebx - 0x10]
call fcn.0040253e
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.0040253e
mov eax, edi
call fcn.00447e33
ret 8