Function at 0x4093d0
Capabilities:
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xee8
mov eax, dword [0x5ad040]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
xor eax, eax
mov ebx, ecx
push 0x206
push eax
mov word [ebp - 0x294], ax
lea eax, [ebp - 0x292]
push eax
call fcn.00530d50
xor eax, eax
push 0x206
push eax
mov word [ebp - 0xcbc], ax
lea eax, [ebp - 0xcba]
push eax
call fcn.00530d50
xor eax, eax
mov dword [ebp - 0xed8], 0x104
push 0x206
push eax
mov word [ebp - 0xab4], ax
lea eax, [ebp - 0xab2]
push eax
call fcn.00530d50
add esp, 0x24
mov dword [ebp - 0xee0], 0x104
lea eax, [ebp - 0x294]
mov ecx, ebx
push eax
call fcn.004081f0
test eax, eax
jne 0x4094c3
mov esi, dword [sym.imp.msi.dll_MsiGetPropertyW]
lea eax, [ebp - 0xed8]
push eax
lea eax, [ebp - 0xcbc]
push eax
push str.PackageCode
lea eax, [ebp - 0x294]
push eax
call esi
test eax, eax
je 0x4094a3
pop esi
mov dword [ebx + 0x20f0], 0
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0052e288
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0xee0]
push eax
lea eax, [ebp - 0xab4]
push eax
push str.VersionString
lea eax, [ebp - 0x294]
push eax
call esi
test eax, eax
jne 0x409487
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x6a4], ax
lea eax, [ebp - 0x6a2]
push eax
call fcn.00530d50
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x49c], ax
lea eax, [ebp - 0x49a]
push eax
call fcn.00530d50
lea eax, [ebx + 0x1ee4]
push eax
lea eax, [ebp - 0x49c]
push 0x104
push eax
call fcn.0052f5cf
lea eax, [ebx + 0x424]
push eax
lea eax, [ebp - 0x6a4]
push 0x104
push eax
call fcn.0052f5cf
lea eax, [ebp - 0x6a4]
push eax
lea eax, [ebp - 0x49c]
push 0x104
push eax
call fcn.0052f62b
add esp, 0x3c
lea eax, [ebp - 0xec8]
push eax
push 0
lea eax, [ebp - 0x49c]
push eax
call dword [sym.imp.msi.dll_MsiOpenProductW]
test eax, eax
je 0x409571
pop esi
or eax, 0xffffffff
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0052e288
mov esp, ebp
pop ebp
ret
push edi
xor eax, eax
push 0x206
push eax
mov word [ebp - 0xec4], ax
lea eax, [ebp - 0xec2]
push eax
call fcn.00530d50
add esp, 0xc
lea eax, [ebp - 0xedc]
push eax
push 0
push 0
push dword [ebp - 0xec8]
call dword [sym.imp.msi.dll_MsiGetUserInfoW]
lea eax, [ebp - 0xee8]
mov dword [ebp - 0xee8], 0x104
push eax
lea eax, [ebp - 0xec4]
mov dword [ebp - 0xee4], 0x1e
push eax
push 0
push 0
lea eax, [ebp - 0xee4]
push eax
push 9
push dword [ebp - 0xedc]
call dword [sym.imp.msi.dll_MsiUseFeatureA]
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x8ac], ax
lea eax, [ebp - 0x8aa]
push eax
call fcn.00530d50
mov ecx, 0x21
mov dword [ebp - 0xed4], 0x104
mov esi, str._SELECT__Value__FROM__Property__WHERE__Property_ProductVersion
lea edi, [ebp - 0x8c]
rep movsd dword es:[edi], dword [esi]
add esp, 0xc
lea eax, [ebp - 0xecc]
movsw word es:[edi], word [esi]
push eax
lea eax, [ebp - 0x8c]
push eax
push dword [ebp - 0xec8]
call dword [sym.imp.msi.dll_MsiEnumClientsA]
push 0
push dword [ebp - 0xecc]
call dword [sym.imp.msi.dll_MsiViewModify]
lea eax, [ebp - 0xed0]
push eax
push dword [ebp - 0xecc]
call dword [sym.imp.msi.dll_MsiDatabaseIsTablePersistentA]
lea eax, [ebp - 0xed4]
push eax
lea eax, [ebp - 0x8ac]
push eax
push 1
push dword [ebp - 0xed0]
call dword [sym.imp.msi.dll_MsiRecordSetStreamA]
lea ecx, [ebp - 0xcbc]
lea eax, [ebp - 0xec4]
pop edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4096a8
test dx, dx
je 0x4096a4
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4096a8
add eax, 4
add ecx, 4
test dx, dx
jne 0x409682
xor eax, eax
jmp 0x4096ad
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4096b9
mov dword [ebx + 0x20f0], eax
jmp 0x4096ea
lea eax, [ebp - 0xab4]
push eax
lea eax, [ebp - 0x8ac]
push eax
call fcn.004092a0
test eax, eax
jg 0x4096e0
je 0x4096e0
jns 0x4096ea
mov dword [ebx + 0x20f0], 0xffffffff
jmp 0x4096ea
mov dword [ebx + 0x20f0], 1
push dword [ebp - 0xec8]
call dword [sym.imp.msi.dll_MsiConfigureFeatureFromDescriptorA]
call dword [sym.imp.msi.dll_MsiConfigureFeatureA]
mov ecx, dword [ebp - 4]
xor eax, eax
pop esi
xor ecx, ebp
pop ebx
call fcn.0052e288
mov esp, ebp
pop ebp
ret