Function at 0x401000
Capabilities:
Check if file exists
Download url
Get file attributes
Link many functions at runtime
Receive data
Reference sql statements
Shutdown system

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x15f8
call fcn.004076a0
mov eax, dword [0x4160a8]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov dword [ebp - 0x1554], 0
mov dword [ebp - 0x1028], 0
mov dword [ebp - 0xe04], 0
mov dword [ebp - 0xdbc], 0
mov dword [ebp - 0x55c], 0
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x144c], 0
mov dword [ebp - 0x1440], 0
mov dword [ebp - 0x558], 0
mov dword [ebp - 0x994], 0
mov dword [ebp - 0xdd0], 0
mov dword [ebp - 0x99c], 0
mov dword [ebp - 0x1024], 0
mov dword [ebp - 0x143c], 0
mov dword [ebp - 0xde0], 0
mov dword [ebp - 0x544], 0
mov dword [ebp - 0xdcc], 0
mov byte [ebp - 0x1550], 0
push 0xff
push 0
lea eax, [ebp - 0x154f]
push eax
call fcn.004076d0
add esp, 0xc
mov byte [ebp - 0xdb8], 0
push 0x3ff
push 0
lea ecx, [ebp - 0xdb7]
push ecx
call fcn.004076d0
add esp, 0xc
mov byte [ebp - 0x1020], 0
push 0xff
push 0
lea edx, [ebp - 0x101f]
push edx
call fcn.004076d0
add esp, 0xc
mov byte [ebp - 0x990], 0
push 0x3ff
push 0
lea eax, [ebp - 0x98f]
push eax
call fcn.004076d0
add esp, 0xc
mov byte [ebp - 0x1438], 0
push 0x3ff
push 0
lea ecx, [ebp - 0x1437]
push ecx
call fcn.004076d0
add esp, 0xc
mov byte [ebp - 0x540], 0
push 0x3ff
push 0
lea edx, [ebp - 0x53f]
push edx
call fcn.004076d0
add esp, 0xc
mov byte [ebp - 0x58c], 0
push 0x27
push 0
lea eax, [ebp - 0x58b]
push eax
call fcn.004076d0
add esp, 0xc
mov byte [ebp - 0xf20], 0
push 0x103
push 0
lea ecx, [ebp - 0xf1f]
push ecx
call fcn.004076d0
add esp, 0xc
mov dword [ebp - 0x130], 0x104
mov dword [ebp - 0x1038], 0
mov dword [ebp - 0xdc8], 0
mov dword [ebp - 0x554], 0
mov dword [ebp - 0xdf8], 0
mov dword [ebp - 0x1034], 0
mov dword [ebp - 0xe00], 0
mov dword [ebp - 0x9b8], 0
mov dword [ebp - 0xdc4], 0
mov dword [ebp - 0xe14], 0
mov dword [ebp - 0xdf0], 0
mov dword [ebp - 0xdfc], 0
mov dword [ebp - 0xddc], 0
mov dword [ebp - 0xdec], 0
mov dword [ebp - 0xde8], 0
mov dword [ebp - 0xe10], 0
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x998], 0x28
mov dword [ebp - 0x550], 0
mov dword [ebp - 0xe0c], 0
mov dword [ebp - 0x1450], 0
mov dword [ebp - 0x12c], 0
mov byte [ebp - 0x9a5], 0
mov byte [ebp - 0x549], 0
mov byte [ebp - 0xe05], 0
mov byte [ebp - 0x139], 0
mov dword [ebp - 0x1448], 0
mov dword [ebp - 0x138], 0
mov dword [ebp - 0x128], 0
mov dword [ebp - 0x9b4], 0
mov dword [ebp - 0x1444], 0
mov dword [ebp - 0x9a4], 0
mov dword [ebp - 0xde4], 0
mov dword [ebp - 0x548], 0
mov dword [ebp - 0x9b0], 0
mov dword [ebp - 0x564], 0
mov dword [ebp - 0x560], 0
mov dword [ebp - 0x9ac], 0
mov dword [ebp - 0x124], 0
mov dword [ebp - 0xdd8], 0
mov dword [ebp - 0xdf4], 0
mov dword [ebp - 0xdc0], 0
mov dword [ebp - 0x1030], 0
mov dword [ebp - 0x102c], 0xffffffff
mov dword [ebp - 0xdd4], 0
lea ecx, [ebp - 0x120]
call fcn.004036b0
push 0x100
lea edx, [ebp - 0x1550]
push edx
push 0xb
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
mov ecx, dword [ebp - 0x130]
push ecx
lea edx, [ebp - 0xf20]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x4013ad
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1554], eax
jmp 0x4030f0
push 0
lea ecx, [ebp - 0xf20]
push ecx
push str._Info__we_are_running_from______s_n
call fcn.00406990
add esp, 0xc
mov edx, dword [ebp + 0x10]
push edx
call fcn.00405550
add esp, 4
mov dword [ebp - 0x1448], eax
cmp dword [ebp - 0x1448], 2
jne 0x401408
mov eax, dword [ebp + 0x10]
push eax
lea ecx, [ebp - 0xf20]
push ecx
call fcn.00405480
add esp, 8
mov dword [ebp - 0x1554], eax
cmp dword [ebp - 0x1554], 0xa0
je 0x401408
jmp 0x4030f0
cmp dword [ebp - 0x1554], 0xa0
je 0x40141d
cmp dword [ebp - 0x1448], 1
jne 0x401437
lea edx, [ebp - 0x1550]
push edx
push 0
mov eax, dword [ebp + 8]
push eax
call fcn.004061e0
add esp, 0xc
jmp 0x4030f0
lea ecx, [ebp - 0x1550]
push ecx
push 0
mov edx, dword [ebp + 8]
push edx
lea ecx, [ebp - 0x120]
call fcn.004039c0
call fcn.00406540
mov byte [ebp - 0x139], al
movzx eax, byte [ebp - 0x139]
test eax, eax
jne 0x401495
push 0x24
lea ecx, [ebp - 0x1550]
push ecx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.00405d30
add esp, 0x10
mov dword [ebp - 0x1554], 0x643
jmp 0x4030f0
mov dword [ebp - 0x9a0], 0
lea eax, [ebp - 0x9a0]
push eax
call fcn.004061a0
add esp, 4
movzx ecx, al
test ecx, ecx
je 0x4014c4
mov dword [ebp - 0x1554], 0x652
jmp 0x4030f0
mov edx, dword [ebp - 0x1034]
push edx
lea eax, [ebp - 0x144c]
push eax
push str.OPERATION
mov ecx, dword [ebp + 8]
push ecx
call fcn.004059b0
add esp, 0x10
mov dword [ebp - 0x1554], eax
cmp dword [ebp - 0x1554], 0xe
jne 0x401516
lea edx, [ebp - 0x1550]
push edx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00406230
add esp, 0xc
jmp 0x4030f0
cmp dword [ebp - 0x1554], 0
je 0x4015f1
cmp dword [ebp - 0x144c], 0
je 0x401547
mov ecx, dword [ebp - 0x144c]
mov dword [ebp - 0x1564], ecx
mov edx, dword [ebp - 0x1564]
push edx
call fcn.0040767c
add esp, 4
push str.DEFAULT
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
call fcn.00407617
add esp, 4
mov dword [ebp - 0x1568], eax
mov eax, dword [ebp - 0x1568]
mov dword [ebp - 0x144c], eax
cmp dword [ebp - 0x144c], 0
jne 0x40159d
lea ecx, [ebp - 0x1550]
push ecx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.00406230
add esp, 0xc
jmp 0x4030f0
push str.DEFAULT
push str.DEFAULT
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
mov eax, dword [ebp - 0x144c]
push eax
call fcn.004035b0
test eax, eax
jge 0x4015f1
push 0x25
lea ecx, [ebp - 0x1550]
push ecx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.00405d30
add esp, 0x10
mov dword [ebp - 0x1554], 0x643
jmp 0x4030f0
mov eax, dword [ebp - 0xe00]
push eax
lea ecx, [ebp - 0x1440]
push ecx
push str.PRODUCTNAME
mov edx, dword [ebp + 8]
push edx
call fcn.004059b0
add esp, 0x10
mov dword [ebp - 0x1554], eax
cmp dword [ebp - 0x1554], 0xe
jne 0x401643
lea eax, [ebp - 0x1550]
push eax
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00406230
add esp, 0xc
jmp 0x4030f0
cmp dword [ebp - 0x1554], 0
je 0x4016d8
cmp dword [ebp - 0x1440], 0
je 0x401674
mov edx, dword [ebp - 0x1440]
mov dword [ebp - 0x156c], edx
mov eax, dword [ebp - 0x156c]
push eax
call fcn.0040767c
add esp, 4
push 0x100
call fcn.00407617
add esp, 4
mov dword [ebp - 0x1570], eax
mov ecx, dword [ebp - 0x1570]
mov dword [ebp - 0x1440], ecx
cmp dword [ebp - 0x1440], 0
jne 0x4016c0
lea edx, [ebp - 0x1550]
push edx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00406230
add esp, 0xc
jmp 0x4030f0
push 0x100
mov ecx, dword [ebp - 0x1440]
push ecx
push 0x11
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_LoadStringA]
push 0x100
lea eax, [ebp - 0x1020]
push eax
push 0x10
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
mov edx, dword [ebp - 0x1440]
push edx
lea eax, [ebp - 0x1020]
push eax
push 0x400
lea ecx, [ebp - 0x990]
push ecx
call fcn.00403650
add esp, 0x10
lea edx, [ebp - 0x990]
push edx
lea ecx, [ebp - 0x120]
call fcn.00403d40
cmp eax, 1
jne 0x401757
lea eax, [ebp - 0x1550]
push eax
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00405cc0
add esp, 0xc
mov dword [ebp - 0x1554], 0x642
jmp 0x4030f0
mov edx, dword [ebp - 0x1038]
push edx
lea eax, [ebp - 0xe04]
push eax
push 0x41235c
mov ecx, dword [ebp + 8]
push ecx
call fcn.004059b0
add esp, 0x10
mov dword [ebp - 0x1554], eax
cmp dword [ebp - 0x1554], 0xe
jne 0x4017ae
lea edx, [ebp - 0x1550]
push edx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00406230
add esp, 0xc
jmp 0x4030f0
cmp dword [ebp - 0x1554], 0
je 0x401848
mov ecx, dword [ebp - 0x1038]
push ecx
lea edx, [ebp - 0xe04]
push edx
push str.PATCH
mov eax, dword [ebp + 8]
push eax
call fcn.004059b0
add esp, 0x10
mov dword [ebp - 0x1554], eax
cmp dword [ebp - 0x1554], 0xe
jne 0x40180f
lea ecx, [ebp - 0x1550]
push ecx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.00406230
add esp, 0xc
jmp 0x4030f0
cmp dword [ebp - 0x1554], 0
je 0x401841
push str.DATABASE
lea eax, [ebp - 0x1550]
push eax
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00405aa0
add esp, 0x10
jmp 0x4030f0
mov byte [ebp - 0x549], 1
cmp dword [ebp - 0x1448], 3
jne 0x4018a2
lea edx, [ebp - 0xdd4]
push edx
mov eax, dword [ebp + 0x10]
push eax
movzx ecx, byte [ebp - 0x549]
push ecx
call fcn.004057a0
add esp, 0xc
mov dword [ebp - 0x1554], eax
cmp dword [ebp - 0x1554], 0xa0
jne 0x4018a2
lea edx, [ebp - 0x1550]
push edx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.004061e0
add esp, 0xc
jmp 0x4030f0
mov ecx, dword [ebp - 0x9b8]
push ecx
lea edx, [ebp - 0x558]
push edx
push 0x41237c
mov eax, dword [ebp + 8]
push eax
call fcn.004059b0
add esp, 0x10
mov dword [ebp - 0x1554], eax
cmp dword [ebp - 0x1554], 0xe
jne 0x4018f6
lea ecx, [ebp - 0x1550]
push ecx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.00406230
add esp, 0xc
jmp 0x4030f0
cmp dword [ebp - 0x1554], 0
je 0x401928
push str.MINIMUM_MSI
lea eax, [ebp - 0x1550]
push eax
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00405aa0
add esp, 0x10
jmp 0x4030f0
push 0xa
lea edx, [ebp - 0x12c]
push edx
mov eax, dword [ebp - 0x558]
push eax
call fcn.00407581
add esp, 0xc
mov dword [ebp - 0x1450], eax
cmp dword [ebp - 0x12c], 0
je 0x401976
mov ecx, dword [ebp - 0x12c]
cmp ecx, dword [ebp - 0x558]
je 0x401976
mov edx, dword [ebp - 0x12c]
movsx eax, byte [edx]
test eax, eax
jne 0x401976
cmp dword [ebp - 0x1450], 0x96
jae 0x4019b2
push 0x96
mov ecx, dword [ebp - 0x558]
push ecx
push 0x19
lea edx, [ebp - 0x1550]
push edx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00405e50
add esp, 0x18
mov dword [ebp - 0x1554], 0x57
jmp 0x4030f0
mov ecx, dword [ebp - 0x1450]
push ecx
push str._Resource__Minimum_Msi_Value___d_n
call fcn.00406840
add esp, 8
mov edx, dword [ebp - 0x1450]
push edx
call fcn.00404220
add esp, 4
movzx eax, al
test eax, eax
je 0x401c39
push 0
push 0
push str._Info__Upgrade_of_Windows_Installer_is_requested_n
call fcn.00406990
add esp, 0xc
call fcn.004065f0
movzx ecx, al
test ecx, ecx
jne 0x401a2d
push 0x1a
lea edx, [ebp - 0x1550]
push edx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00405d30
add esp, 0x10
mov dword [ebp - 0x1554], 0x643
jmp 0x4030f0
push 0x400
lea ecx, [ebp - 0x540]
push ecx
push 0x21
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_LoadStringA]
push 0x24
lea eax, [ebp - 0x1550]
push eax
lea ecx, [ebp - 0x540]
push ecx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 6
je 0x401a9a
lea edx, [ebp - 0x1550]
push edx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00405cc0
add esp, 0xc
mov dword [ebp - 0x1554], 0x642
jmp 0x4030f0
mov ecx, dword [ebp - 0xde8]
push ecx
lea edx, [ebp - 0xde0]
push edx
push 0x4123ec
mov eax, dword [ebp + 8]
push eax
call fcn.004059b0
add esp, 0x10
mov dword [ebp - 0x1554], eax
cmp dword [ebp - 0x1554], 0xe
jne 0x401aee
lea ecx, [ebp - 0x1550]
push ecx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.00406230
add esp, 0xc
jmp 0x4030f0
cmp dword [ebp - 0x1554], 0
je 0x401b20
push str.UPDATE
lea eax, [ebp - 0x1550]
push eax
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00405aa0
add esp, 0x10
jmp 0x4030f0
mov edx, dword [ebp - 0xdec]
push edx
lea eax, [ebp - 0x143c]
push eax
push str.UPDATELOCATION
mov ecx, dword [ebp + 8]
push ecx
call fcn.004059b0
add esp, 0x10
mov dword [ebp - 0x1554], eax
cmp dword [ebp - 0x1554], 0xe
jne 0x401b77
lea edx, [ebp - 0x1550]
push edx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00406230
add esp, 0xc
jmp 0x4030f0
cmp dword [ebp - 0x1554], 0
jne 0x401be1
mov ecx, dword [ebp - 0x1450]
push ecx
lea edx, [ebp - 0xf20]
push edx
mov eax, dword [ebp - 0xde0]
push eax
mov ecx, dword [ebp - 0x143c]
push ecx
lea edx, [ebp - 0x1550]
push edx
lea eax, [ebp - 0x120]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00404880
add esp, 0x1c
mov dword [ebp - 0x1554], eax
cmp dword [ebp - 0x1554], 0
je 0x401bdf
cmp dword [ebp - 0x1554], 0xbc2
jne 0x401bda
mov byte [ebp - 0x9a5], 1
jmp 0x401bdf
jmp 0x4030f0
jmp 0x401c39
mov edx, dword [ebp - 0x1450]
push edx
mov eax, dword [ebp - 0xde0]
push eax
lea ecx, [ebp - 0xf20]
push ecx
lea edx, [ebp - 0x1550]
push edx
lea eax, [ebp - 0x120]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00404560
add esp, 0x18
mov dword [ebp - 0x1554], eax
cmp dword [ebp - 0x1554], 0
je 0x401c39
cmp dword [ebp - 0x1554], 0xbc2
jne 0x401c34
mov byte [ebp - 0x9a5], 1
jmp 0x401c39
jmp 0x4030f0
push 0
push 0
push str._Info__Windows_Installer_has_been_upgraded__or_was_already_correct_version_n
call fcn.00406990
add esp, 0xc
movzx edx, byte [ebp - 0x549]
test edx, edx
je 0x401d15
push 0xffffffffffffffff
push str.MINPATCH
push 0xffffffffffffffff
mov eax, dword [ebp - 0x144c]
push eax
push 1
push 0x409
call dword [sym.imp.KERNEL32.dll_CompareStringA]
cmp eax, 2
je 0x401d15
push 0xffffffffffffffff
push str.MAJPATCH
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x144c]
push ecx
push 1
push 0x409
call dword [sym.imp.KERNEL32.dll_CompareStringA]
cmp eax, 2
je 0x401d15
push 0xffffffffffffffff
push str.DEFAULT
push 0xffffffffffffffff
mov edx, dword [ebp - 0x144c]
push edx
push 1
push 0x409
call dword [sym.imp.KERNEL32.dll_CompareStringA]
cmp eax, 2
je 0x401d15
push 0
mov eax, dword [ebp - 0x144c]
push eax
push str._Error__Operation__s_is_not_valid_for_a_patch_n
call fcn.00406990
add esp, 0xc
mov ecx, dword [ebp - 0x144c]
push ecx
push 0x22
lea edx, [ebp - 0x1550]
push edx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00405fb0
add esp, 0x14
mov dword [ebp - 0x1554], 0x57
jmp 0x4030f0
movzx ecx, byte [ebp - 0x549]
test ecx, ecx
jne 0x401ddb
push 0xffffffffffffffff
push str.INSTALL
push 0xffffffffffffffff
mov edx, dword [ebp - 0x144c]
push edx
push 1
push 0x409
call dword [sym.imp.KERNEL32.dll_CompareStringA]
cmp eax, 2
je 0x401ddb
push 0xffffffffffffffff
push str.INSTALLUPD
push 0xffffffffffffffff
mov eax, dword [ebp - 0x144c]
push eax
push 1
push 0x409
call dword [sym.imp.KERNEL32.dll_CompareStringA]
cmp eax, 2
je 0x401ddb
push 0xffffffffffffffff
push str.DEFAULT
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x144c]
push ecx
push 1
push 0x409
call dword [sym.imp.KERNEL32.dll_CompareStringA]
cmp eax, 2
je 0x401ddb
push 0
mov edx, dword [ebp - 0x144c]
push edx
push str._Error__Operation__s_is_not_valid_for_a_package_n
call fcn.00406990
add esp, 0xc
mov eax, dword [ebp - 0x144c]
push eax
push 0x22
lea ecx, [ebp - 0x1550]
push ecx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.00405fb0
add esp, 0x14
mov dword [ebp - 0x1554], 0x57
jmp 0x4030f0
push 0xffffffffffffffff
push str.MINPATCH
push 0xffffffffffffffff
mov eax, dword [ebp - 0x144c]
push eax
push 1
push 0x409
call dword [sym.imp.KERNEL32.dll_CompareStringA]
cmp eax, 2
je 0x401e4c
push 0xffffffffffffffff
push str.INSTALLUPD
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x144c]
push ecx
push 1
push 0x409
call dword [sym.imp.KERNEL32.dll_CompareStringA]
cmp eax, 2
je 0x401e4c
movzx edx, byte [ebp - 0x549]
test edx, edx
je 0x401e53
push 0xffffffffffffffff
push str.DEFAULT
push 0xffffffffffffffff
mov eax, dword [ebp - 0x144c]
push eax
push 1
push 0x409
call dword [sym.imp.KERNEL32.dll_CompareStringA]
cmp eax, 2
jne 0x401e53
mov byte [ebp - 0xe05], 1
mov ecx, dword [ebp - 0xdc8]
push ecx
lea edx, [ebp - 0xdbc]
push edx
push str.BASEURL
mov eax, dword [ebp + 8]
push eax
call fcn.004059b0
add esp, 0x10
mov dword [ebp - 0x1554], eax
cmp dword [ebp - 0x1554], 0xe
jne 0x401eaa
lea ecx, [ebp - 0x1550]
push ecx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.00406230
add esp, 0xc
jmp 0x4030f0
cmp dword [ebp - 0x1554], 0
jne 0x4024f0
mov eax, dword [ebp - 0xdbc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
mov ecx, dword [ebp - 0xe04]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea edx, [esi + eax + 2]
mov dword [ebp - 0xdf0], edx
mov eax, dword [ebp - 0xdf0]
push eax
call fcn.00407617
add esp, 4
mov dword [ebp - 0x1574], eax
mov ecx, dword [ebp - 0x1574]
mov dword [ebp - 0x99c], ecx
cmp dword [ebp - 0x99c], 0
jne 0x401f35
lea edx, [ebp - 0x1550]
push edx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00406230
add esp, 0xc
mov dword [ebp - 0x1554], 0xe
jmp 0x4030f0
mov ecx, dword [ebp - 0xdbc]
push ecx
mov edx, dword [ebp - 0xdf0]
push edx
mov eax, dword [ebp - 0x99c]
push eax
call fcn.004035b0
test eax, eax
jge 0x401f83
push 0x25
lea ecx, [ebp - 0x1550]
push ecx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.00405d30
add esp, 0x10
mov dword [ebp - 0x1554], 0x643
jmp 0x4030f0
mov eax, dword [ebp - 0xdbc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [ebp - 0xdbc]
lea edx, [ecx + eax + 1]
mov dword [ebp - 0x1558], edx
mov eax, dword [ebp - 0x1558]
push eax
mov ecx, dword [ebp - 0xdbc]
push ecx
call dword [sym.imp.USER32.dll_CharPrevA]
mov dword [ebp - 0x1558], eax
mov edx, dword [ebp - 0x1558]
movsx eax, byte [edx]
cmp eax, 0x2f
je 0x402014
push 0x412250
mov ecx, dword [ebp - 0xdf0]
push ecx
mov edx, dword [ebp - 0x99c]
push edx
call fcn.00403600
test eax, eax
jge 0x402014
push 0x25
lea eax, [ebp - 0x1550]
push eax
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00405d30
add esp, 0x10
mov dword [ebp - 0x1554], 0x643
jmp 0x4030f0
mov edx, dword [ebp - 0xe04]
push edx
mov eax, dword [ebp - 0xdf0]
push eax
mov ecx, dword [ebp - 0x99c]
push ecx
call fcn.00403600
test eax, eax
jge 0x402062
push 0x25
lea edx, [ebp - 0x1550]
push edx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00405d30
add esp, 0x10
mov dword [ebp - 0x1554], 0x643
jmp 0x4030f0
mov ecx, dword [ebp - 0xdf0]
shl ecx, 1
mov dword [ebp - 0x554], ecx
mov edx, dword [ebp - 0x554]
push edx
call fcn.00407617
add esp, 4
mov dword [ebp - 0x1578], eax
mov eax, dword [ebp - 0x1578]
mov dword [ebp - 0x55c], eax
cmp dword [ebp - 0x55c], 0
jne 0x4020c8
lea ecx, [ebp - 0x1550]
push ecx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.00406230
add esp, 0xc
mov dword [ebp - 0x1554], 0xe
jmp 0x4030f0
mov dword [ebp - 0xdfc], 0
push 0
lea eax, [ebp - 0x554]
push eax
mov ecx, dword [ebp - 0x55c]
push ecx
mov edx, dword [ebp - 0x99c]
push edx
call dword [sym.imp.WININET.dll_InternetCanonicalizeUrlA]
test eax, eax
jne 0x4021ba
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0xdfc], eax
cmp dword [ebp - 0xdfc], 0x7a
jne 0x4021ba
mov eax, dword [ebp - 0x55c]
mov dword [ebp - 0x157c], eax
mov ecx, dword [ebp - 0x157c]
push ecx
call fcn.0040767c
add esp, 4
mov edx, dword [ebp - 0x554]
push edx
call fcn.00407617
add esp, 4
mov dword [ebp - 0x1580], eax
mov eax, dword [ebp - 0x1580]
mov dword [ebp - 0x55c], eax
cmp dword [ebp - 0x55c], 0
jne 0x402183
lea ecx, [ebp - 0x1550]
push ecx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.00406230
add esp, 0xc
mov dword [ebp - 0x1554], 0xe
jmp 0x4030f0
mov dword [ebp - 0xdfc], 0
push 0
lea eax, [ebp - 0x554]
push eax
mov ecx, dword [ebp - 0x55c]
push ecx
mov edx, dword [ebp - 0x99c]
push edx
call dword [sym.imp.WININET.dll_InternetCanonicalizeUrlA]
test eax, eax
jne 0x4021ba
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0xdfc], eax
cmp dword [ebp - 0xdfc], 0
je 0x4021fc
mov eax, dword [ebp - 0x99c]
push eax
push 0x17
lea ecx, [ebp - 0x1550]
push ecx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.00405fb0
add esp, 0x14
mov eax, dword [ebp - 0xdfc]
mov dword [ebp - 0x1554], eax
jmp 0x4030f0
push 0x100
lea ecx, [ebp - 0x1020]
push ecx
push 0x12
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_LoadStringA]
mov eax, dword [ebp - 0xe04]
push eax
lea ecx, [ebp - 0x1020]
push ecx
push 0x400
lea edx, [ebp - 0x1438]
push edx
call fcn.00403650
add esp, 0x10
lea eax, [ebp - 0x1438]
push eax
lea ecx, [ebp - 0x120]
call fcn.00403d90
cmp eax, 1
jne 0x40227b
lea ecx, [ebp - 0x1550]
push ecx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.00405cc0
add esp, 0xc
mov dword [ebp - 0x1554], 0x642
jmp 0x4030f0
push 0
mov eax, dword [ebp - 0x55c]
push eax
push str._Info__Downloading_msi_file__s_for_WinVerifyTrust_check_n
call fcn.00406990
add esp, 0xc
push 0x104
call fcn.00407617
add esp, 4
mov dword [ebp - 0x1584], eax
mov ecx, dword [ebp - 0x1584]
mov dword [ebp - 0x134], ecx
mov dword [ebp - 0xdf8], 0x104
cmp dword [ebp - 0x134], 0
jne 0x4022f1
lea edx, [ebp - 0x1550]
push edx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00406230
add esp, 0xc
mov dword [ebp - 0x1554], 0xe
jmp 0x4030f0
lea ecx, [ebp - 0x120]
push ecx
lea ecx, [ebp - 0x1594]
call fcn.00403f20
push eax
push 0
mov edx, dword [ebp - 0xdf8]
push edx
mov eax, dword [ebp - 0x134]
push eax
mov ecx, dword [ebp - 0x55c]
push ecx
push 0
call sub.urlmon.dll_URLDownloadToCacheFileA
mov dword [ebp - 0x1028], eax
lea ecx, [ebp - 0x1594]
call fcn.00403f60
lea ecx, [ebp - 0x120]
call fcn.00403d20
movzx edx, al
test edx, edx
je 0x402373
lea eax, [ebp - 0x1550]
push eax
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00405cc0
add esp, 0xc
mov dword [ebp - 0x1554], 0x642
jmp 0x4030f0
cmp dword [ebp - 0x1028], 0
jge 0x4023b3
mov edx, dword [ebp - 0x55c]
push edx
push 0xd
lea eax, [ebp - 0x1550]
push eax
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00405fb0
add esp, 0x14
mov dword [ebp - 0x1554], 2
jmp 0x4030f0
push 0
mov edx, dword [ebp - 0x134]
push edx
push str._Info__Msi_file_was_cached_to__s_n
call fcn.00406990
add esp, 0xc
push 0x100
lea eax, [ebp - 0x1020]
push eax
push 0x13
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
mov edx, dword [ebp - 0xe04]
push edx
lea eax, [ebp - 0x1020]
push eax
push 0x400
lea ecx, [ebp - 0x1438]
push ecx
call fcn.00403650
add esp, 0x10
lea edx, [ebp - 0x1438]
push edx
lea ecx, [ebp - 0x120]
call fcn.00403d90
cmp eax, 1
jne 0x402448
lea eax, [ebp - 0x1550]
push eax
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00405cc0
add esp, 0xc
mov dword [ebp - 0x1554], 0x642
jmp 0x4030f0
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov edx, dword [ebp - 0x134]
push edx
lea eax, [ebp - 0xf20]
push eax
call fcn.00406ea0
add esp, 0xc
mov dword [ebp - 0x155c], eax
cmp dword [ebp - 0x155c], 0
jne 0x4024ab
push 0x15
lea ecx, [ebp - 0x1550]
push ecx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.00405d30
add esp, 0x10
mov dword [ebp - 0x1554], 0x78
jmp 0x4030f0
cmp dword [ebp - 0x155c], 2
jne 0x4024eb
mov eax, dword [ebp - 0x55c]
push eax
push 0x16
lea ecx, [ebp - 0x1550]
push ecx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.00405fb0
add esp, 0x14
mov dword [ebp - 0x1554], 4
jmp 0x4030f0
jmp 0x402809
lea eax, [ebp - 0xf20]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
mov ecx, dword [ebp - 0xe04]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea edx, [esi + eax + 2]
mov dword [ebp - 0xdf0], edx
mov eax, dword [ebp - 0xdf0]
push eax
call fcn.00407617
add esp, 4
mov dword [ebp - 0x1598], eax
mov ecx, dword [ebp - 0x1598]
mov dword [ebp - 0x99c], ecx
cmp dword [ebp - 0x99c], 0
jne 0x40256e
lea edx, [ebp - 0x1550]
push edx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00406230
add esp, 0xc
mov dword [ebp - 0x1554], 0xe
jmp 0x4030f0
lea ecx, [ebp - 0x1024]
push ecx
mov edx, dword [ebp - 0x99c]
push edx
mov eax, dword [ebp - 0xdf0]
push eax
lea ecx, [ebp - 0xf20]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
test eax, eax
jne 0x4025cd
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1554], eax
mov edx, dword [ebp - 0x99c]
push edx
push 0x17
lea eax, [ebp - 0x1550]
push eax
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00405fb0
add esp, 0x14
jmp 0x4030f0
cmp dword [ebp - 0x1024], 0
je 0x4025df
mov edx, dword [ebp - 0x1024]
mov byte [edx], 0
mov eax, dword [ebp - 0xe04]
push eax
mov ecx, dword [ebp - 0xdf0]
push ecx
mov edx, dword [ebp - 0x99c]
push edx
call fcn.00403600
test eax, eax
jge 0x40262d
push 0x25
lea eax, [ebp - 0x1550]
push eax
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00405d30
add esp, 0x10
mov dword [ebp - 0x1554], 0x643
jmp 0x4030f0
mov edx, dword [ebp - 0xdf0]
shl edx, 1
mov dword [ebp - 0x554], edx
mov eax, dword [ebp - 0x554]
push eax
call fcn.00407617
add esp, 4
mov dword [ebp - 0x159c], eax
mov ecx, dword [ebp - 0x159c]
mov dword [ebp - 0x55c], ecx
cmp dword [ebp - 0x55c], 0
jne 0x402693
lea edx, [ebp - 0x1550]
push edx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00406230
add esp, 0xc
mov dword [ebp - 0x1554], 0xe
jmp 0x4030f0
lea ecx, [ebp - 0x1024]
push ecx
mov edx, dword [ebp - 0x55c]
push edx
mov eax, dword [ebp - 0x554]
push eax
mov ecx, dword [ebp - 0x99c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
mov dword [ebp - 0xddc], eax
mov edx, dword [ebp - 0xddc]
cmp edx, dword [ebp - 0x554]
jbe 0x402774
mov eax, dword [ebp - 0x55c]
mov dword [ebp - 0x15a0], eax
mov ecx, dword [ebp - 0x15a0]
push ecx
call fcn.0040767c
add esp, 4
mov edx, dword [ebp - 0xddc]
mov dword [ebp - 0x554], edx
mov eax, dword [ebp - 0x554]
push eax
call fcn.00407617
add esp, 4
mov dword [ebp - 0x15a4], eax
mov ecx, dword [ebp - 0x15a4]
mov dword [ebp - 0x55c], ecx
cmp dword [ebp - 0x55c], 0
jne 0x40274c
lea edx, [ebp - 0x1550]
push edx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00406230
add esp, 0xc
mov dword [ebp - 0x1554], 0xe
jmp 0x4030f0
lea ecx, [ebp - 0x1024]
push ecx
mov edx, dword [ebp - 0x55c]
push edx
mov eax, dword [ebp - 0x554]
push eax
mov ecx, dword [ebp - 0x99c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
mov dword [ebp - 0xddc], eax
cmp dword [ebp - 0xddc], 0
jne 0x4027b6
mov edx, dword [ebp - 0x99c]
push edx
push 0x17
lea eax, [ebp - 0x1550]
push eax
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00405fb0
add esp, 0x14
mov edx, dword [ebp - 0xdfc]
mov dword [ebp - 0x1554], edx
jmp 0x4030f0
mov eax, dword [ebp - 0x55c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov dword [ebp - 0x1560], eax
cmp dword [ebp - 0x1560], 0xffffffff
jne 0x402809
mov ecx, dword [ebp - 0x55c]
push ecx
push 0xd
lea edx, [ebp - 0x1550]
push edx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00405fb0
add esp, 0x14
mov dword [ebp - 0x1554], 2
jmp 0x4030f0
mov ecx, dword [ebp - 0xdc4]
push ecx
lea edx, [ebp - 0x994]
push edx
push str.PROPERTIES
mov eax, dword [ebp + 8]
push eax
call fcn.004059b0
add esp, 0x10
mov dword [ebp - 0x1554], eax
cmp dword [ebp - 0x1554], 0xe
jne 0x402867
lea ecx, [ebp - 0x1550]
push ecx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.00406230
add esp, 0xc
mov dword [ebp - 0x1554], 0xe
jmp 0x4030f0
cmp dword [ebp - 0x1554], 0
je 0x40289e
cmp dword [ebp - 0x994], 0
je 0x402894
mov eax, dword [ebp - 0x994]
mov dword [ebp - 0x15a8], eax
mov ecx, dword [ebp - 0x15a8]
push ecx
call fcn.0040767c
add esp, 4
mov dword [ebp - 0x994], 0
lea ecx, [ebp - 0x120]
call fcn.00403c60
push str.msi.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x128], eax
cmp dword [ebp - 0x128], 0
je 0x4029cf
push str.MsiSetInternalUI
mov edx, dword [ebp - 0x128]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x9b4], eax
push str.MsiInstallProductA
mov eax, dword [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x1444], eax
push str.MsiApplyPatchA
mov ecx, dword [ebp - 0x128]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x9a4], eax
push str.MsiReinstallProductA
mov edx, dword [ebp - 0x128]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0xde4], eax
push str.MsiQueryProductStateA
mov eax, dword [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x548], eax
push str.MsiOpenDatabaseA
mov ecx, dword [ebp - 0x128]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x9b0], eax
push str.MsiDatabaseOpenViewA
mov edx, dword [ebp - 0x128]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x564], eax
push str.MsiViewExecute
mov eax, dword [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x560], eax
push str.MsiViewFetch
mov ecx, dword [ebp - 0x128]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x9ac], eax
push str.MsiRecordGetStringA
mov edx, dword [ebp - 0x128]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x124], eax
push str.MsiCloseHandle
mov eax, dword [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0xdd8], eax
cmp dword [ebp - 0x128], 0
je 0x402a32
cmp dword [ebp - 0x9b4], 0
je 0x402a32
cmp dword [ebp - 0x1444], 0
je 0x402a32
cmp dword [ebp - 0x9a4], 0
je 0x402a32
cmp dword [ebp - 0xde4], 0
je 0x402a32
cmp dword [ebp - 0x548], 0
je 0x402a32
cmp dword [ebp - 0x564], 0
je 0x402a32
cmp dword [ebp - 0x560], 0
je 0x402a32
cmp dword [ebp - 0x9ac], 0
je 0x402a32
cmp dword [ebp - 0x124], 0
je 0x402a32
cmp dword [ebp - 0xdd8], 0
jne 0x402a62
push 0x1d
lea ecx, [ebp - 0x1550]
push ecx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.00405d30
add esp, 0x10
mov dword [ebp - 0x1554], 0x643
jmp 0x4030f0
push 0
push 0
push str._Info__Setting_Internal_UI_level_to_FULL..._n
call fcn.00406990
add esp, 0xc
push 0
push 5
call dword [ebp - 0x9b4]
movzx eax, byte [ebp - 0x549]
test eax, eax
jne 0x402eb1
push 0
mov ecx, dword [ebp - 0x55c]
push ecx
push str._Info__Calling_MsiInstallProduct_with_szInstallPath___s
call fcn.00406990
add esp, 0xc
cmp dword [ebp - 0x994], 0
je 0x402ab9
mov edx, dword [ebp - 0x994]
mov dword [ebp - 0x15ec], edx
jmp 0x402ac3
mov dword [ebp - 0x15ec], 0x412680
push 0
mov eax, dword [ebp - 0x15ec]
push eax
push 0x412688
call fcn.00406990
add esp, 0xc
movzx ecx, byte [ebp - 0xe05]
test ecx, ecx
je 0x402c68
cmp dword [ebp - 0x134], 0
je 0x402aff
mov edx, dword [ebp - 0x134]
mov dword [ebp - 0x15f0], edx
jmp 0x402b0b
mov eax, dword [ebp - 0x55c]
mov dword [ebp - 0x15f0], eax
lea ecx, [ebp - 0xdf4]
push ecx
push 0
mov edx, dword [ebp - 0x15f0]
push edx
call dword [ebp - 0x9b0]
test eax, eax
jne 0x402c0e
lea eax, [ebp - 0xdc0]
push eax
push str.SELECT__Value__FROM__Property__WHERE__Property_ProductCode
mov ecx, dword [ebp - 0xdf4]
push ecx
call dword [ebp - 0x564]
test eax, eax
jne 0x402c0e
push 0
mov edx, dword [ebp - 0xdc0]
push edx
call dword [ebp - 0x560]
test eax, eax
jne 0x402c0e
lea eax, [ebp - 0x1030]
push eax
mov ecx, dword [ebp - 0xdc0]
push ecx
call dword [ebp - 0x9ac]
test eax, eax
jne 0x402c0e
lea edx, [ebp - 0x998]
push edx
lea eax, [ebp - 0x58c]
push eax
push 1
mov ecx, dword [ebp - 0x1030]
push ecx
call dword [ebp - 0x124]
test eax, eax
jne 0x402c0e
lea edx, [ebp - 0x58c]
push edx
call dword [ebp - 0x548]
mov dword [ebp - 0x102c], eax
mov eax, dword [ebp - 0x102c]
push eax
push str._Info__MsiQueryProductState_returned__d_n
call fcn.00406840
add esp, 8
cmp dword [ebp - 0x102c], 1
je 0x402bf6
cmp dword [ebp - 0x102c], 5
je 0x402bf6
push 0
lea ecx, [ebp - 0x58c]
push ecx
push str._Info__The_product_code__s_is_unknown._Will_use_first_time_install_logic..._n
call fcn.00406990
add esp, 0xc
mov byte [ebp - 0xe05], 0
jmp 0x402c0c
push 0
lea edx, [ebp - 0x58c]
push edx
push str._Info__The_product_code__s_is_known._Will_use_QFE_recache_and_reinstall_upgrade_logic..._n
call fcn.00406990
add esp, 0xc
jmp 0x402c26
push 0
push 0
push str._Info__Unable_to_process_product_code._Will_treat_as_first_time_install..._n
call fcn.00406990
add esp, 0xc
mov byte [ebp - 0xe05], 0
cmp dword [ebp - 0xdf4], 0
je 0x402c3c
mov eax, dword [ebp - 0xdf4]
push eax
call dword [ebp - 0xdd8]
cmp dword [ebp - 0xdc0], 0
je 0x402c52
mov ecx, dword [ebp - 0xdc0]
push ecx
call dword [ebp - 0xdd8]
cmp dword [ebp - 0x1030], 0
je 0x402c68
mov edx, dword [ebp - 0x1030]
push edx
call dword [ebp - 0xdd8]
movzx eax, byte [ebp - 0xe05]
test eax, eax
je 0x402c8f
cmp dword [ebp - 0x994], 0
jne 0x402c8f
push str.REINSTALLALL_REINSTALLMODEvomus
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 0xe14], eax
jmp 0x402cab
cmp dword [ebp - 0x994], 0
je 0x402cab
mov ecx, dword [ebp - 0x994]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 0xe14], eax
cmp dword [ebp - 0x1448], 3
jne 0x402ccb
push str._ACTIONADMIN
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, dword [ebp - 0xe14]
mov dword [ebp - 0xe14], eax
mov edx, dword [ebp - 0xe14]
add edx, 1
push edx
call fcn.00407617
add esp, 4
mov dword [ebp - 0x15ac], eax
mov eax, dword [ebp - 0x15ac]
mov dword [ebp - 0xdd0], eax
cmp dword [ebp - 0xdd0], 0
jne 0x402d26
lea ecx, [ebp - 0x1550]
push ecx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.00406230
add esp, 0xc
mov dword [ebp - 0x1554], 0xe
jmp 0x4030f0
movzx eax, byte [ebp - 0xe05]
test eax, eax
je 0x402d8b
cmp dword [ebp - 0x994], 0
jne 0x402d8b
push str.REINSTALLALL_REINSTALLMODEvomus
mov ecx, dword [ebp - 0xe14]
add ecx, 1
push ecx
mov edx, dword [ebp - 0xdd0]
push edx
call fcn.004035b0
test eax, eax
jge 0x402d89
push 0x25
lea eax, [ebp - 0x1550]
push eax
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00405d30
add esp, 0x10
mov dword [ebp - 0x1554], 0x643
jmp 0x4030f0
jmp 0x402df0
cmp dword [ebp - 0x994], 0
je 0x402de7
mov edx, dword [ebp - 0x994]
push edx
mov eax, dword [ebp - 0xe14]
add eax, 1
push eax
mov ecx, dword [ebp - 0xdd0]
push ecx
call fcn.004035b0
test eax, eax
jge 0x402de5
push 0x25
lea edx, [ebp - 0x1550]
push edx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00405d30
add esp, 0x10
mov dword [ebp - 0x1554], 0x643
jmp 0x4030f0
jmp 0x402df0
mov ecx, dword [ebp - 0xdd0]
mov byte [ecx], 0
cmp dword [ebp - 0x1448], 3
jne 0x402e48
push str._ACTIONADMIN
mov edx, dword [ebp - 0xe14]
add edx, 1
push edx
mov eax, dword [ebp - 0xdd0]
push eax
call fcn.00403600
test eax, eax
jge 0x402e48
push 0x25
lea ecx, [ebp - 0x1550]
push ecx
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.00405d30
add esp, 0x10
mov dword [ebp - 0x1554], 0x643
jmp 0x4030f0
mov eax, dword [ebp - 0xdd0]
push eax
mov ecx, dword [ebp - 0x55c]
push ecx
call dword [ebp - 0x1444]
mov dword [ebp - 0x1554], eax
cmp dword [ebp - 0x1554], 0
je 0x402e98
mov edx, dword [ebp - 0x1554]
push edx
lea eax, [ebp - 0x1550]
push eax
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov ecx, dword [ebp - 0x128]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00406090
add esp, 0x14
mov eax, dword [ebp - 0x1554]
push eax
push str._Info__MsiInstallProduct_returned__d_n
call fcn.00406840
add esp, 8
jmp 0x4030f0
cmp dword [ebp - 0x994], 0
jne 0x402f95
movzx ecx, byte [ebp - 0xe05]
test ecx, ecx
je 0x402f95
push 0
push str.REINSTALLALL_REINSTALLMODEomus
push str._Info__Patch_is_a_MINPATCH__small_or_minor_update_patch__so_using_default_command_line__s_n
call fcn.00406990
add esp, 0xc
push str.REINSTALLALL_REINSTALLMODEomus
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
call fcn.00407617
add esp, 4
mov dword [ebp - 0x15b0], eax
mov edx, dword [ebp - 0x15b0]
mov dword [ebp - 0x994], edx
cmp dword [ebp - 0x994], 0
jne 0x402f41
lea eax, [ebp - 0x1550]
push eax
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00406230
add esp, 0xc
mov dword [ebp - 0x1554], 0xe
jmp 0x4030f0
push str.REINSTALLALL_REINSTALLMODEomus
push str.REINSTALLALL_REINSTALLMODEomus
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
mov edx, dword [ebp - 0x994]
push edx
call fcn.004035b0
test eax, eax
jge 0x402f95
push 0x25
lea eax, [ebp - 0x1550]
push eax
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00405d30
add esp, 0x10
mov dword [ebp - 0x1554], 0x643
jmp 0x4030f0
cmp dword [ebp - 0x1448], 3
jne 0x40302a
push 0
mov edx, dword [ebp - 0x134]
push edx
push 0x412858
call fcn.00406990
add esp, 0xc
push 0
mov eax, dword [ebp - 0xdd4]
push eax
push str._and_szInstallPackage___s_and_eInstallType__INSTALLTYPE_NETWORK_IMAGE
call fcn.00406990
add esp, 0xc
cmp dword [ebp - 0x994], 0
je 0x402fe5
mov ecx, dword [ebp - 0x994]
mov dword [ebp - 0x15f4], ecx
jmp 0x402fef
mov dword [ebp - 0x15f4], 0x4128d8
push 0
mov edx, dword [ebp - 0x15f4]
push edx
push 0x4128e0
call fcn.00406990
add esp, 0xc
mov eax, dword [ebp - 0x994]
push eax
push 1
mov ecx, dword [ebp - 0xdd4]
push ecx
mov edx, dword [ebp - 0x134]
push edx
call dword [ebp - 0x9a4]
mov dword [ebp - 0x1554], eax
jmp 0x4030a6
push 0
mov eax, dword [ebp - 0x55c]
push eax
push str._Info__Calling_MsiApplyPatch_with_szPatchPackage___s
call fcn.00406990
add esp, 0xc
push 0
push 0
push str._and_szInstallPackage__null_and_eInstallType__INSTALLTYPE_DEFAULT
call fcn.00406990
add esp, 0xc
cmp dword [ebp - 0x994], 0
je 0x403068
mov ecx, dword [ebp - 0x994]
mov dword [ebp - 0x15f8], ecx
jmp 0x403072
mov dword [ebp - 0x15f8], str.null
push 0
mov edx, dword [ebp - 0x15f8]
push edx
push str._and_szCommandLine___s_n
call fcn.00406990
add esp, 0xc
mov eax, dword [ebp - 0x994]
push eax
push 0
push 0
mov ecx, dword [ebp - 0x55c]
push ecx
call dword [ebp - 0x9a4]
mov dword [ebp - 0x1554], eax
cmp dword [ebp - 0x1554], 0
je 0x4030dc
mov edx, dword [ebp - 0x1554]
push edx
lea eax, [ebp - 0x1550]
push eax
lea ecx, [ebp - 0x120]
call fcn.00403cd0
push eax
mov ecx, dword [ebp - 0x128]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00406090
add esp, 0x14
mov eax, dword [ebp - 0x1554]
push eax
push str._Info__MsiApplyPatch_returned__d_n
call fcn.00406840
add esp, 8
cmp dword [ebp - 0xe04], 0
je 0x403114
mov ecx, dword [ebp - 0xe04]
mov dword [ebp - 0x15b4], ecx
mov edx, dword [ebp - 0x15b4]
push edx
call fcn.0040767c
add esp, 4
cmp dword [ebp - 0xdbc], 0
je 0x403138
mov eax, dword [ebp - 0xdbc]
mov dword [ebp - 0x15b8], eax
mov ecx, dword [ebp - 0x15b8]
push ecx
call fcn.0040767c
add esp, 4
cmp dword [ebp - 0x55c], 0
je 0x40315c
mov edx, dword [ebp - 0x55c]
mov dword [ebp - 0x15bc], edx
mov eax, dword [ebp - 0x15bc]
push eax
call fcn.0040767c
add esp, 4
cmp dword [ebp - 0x134], 0
je 0x40318d
mov ecx, dword [ebp - 0x134]
push ecx
call dword [sym.imp.WININET.dll_DeleteUrlCacheEntry]
mov edx, dword [ebp - 0x134]
mov dword [ebp - 0x15c0], edx
mov eax, dword [ebp - 0x15c0]
push eax
call fcn.0040767c
add esp, 4
cmp dword [ebp - 0x1440], 0
je 0x4031b1
mov ecx, dword [ebp - 0x1440]
mov dword [ebp - 0x15c4], ecx
mov edx, dword [ebp - 0x15c4]
push edx
call fcn.0040767c
add esp, 4
cmp dword [ebp - 0x558], 0
je 0x4031d5
mov eax, dword [ebp - 0x558]
mov dword [ebp - 0x15c8], eax
mov ecx, dword [ebp - 0x15c8]
push ecx
call fcn.0040767c
add esp, 4
cmp dword [ebp - 0x994], 0
je 0x4031f9
mov edx, dword [ebp - 0x994]
mov dword [ebp - 0x15cc], edx
mov eax, dword [ebp - 0x15cc]
push eax
call fcn.0040767c
add esp, 4
cmp dword [ebp - 0x99c], 0
je 0x40321d
mov ecx, dword [ebp - 0x99c]
mov dword [ebp - 0x15d0], ecx
mov edx, dword [ebp - 0x15d0]
push edx
call fcn.0040767c
add esp, 4
cmp dword [ebp - 0x143c], 0
je 0x403241
mov eax, dword [ebp - 0x143c]
mov dword [ebp - 0x15d4], eax
mov ecx, dword [ebp - 0x15d4]
push ecx
call fcn.0040767c
add esp, 4
cmp dword [ebp - 0xde0], 0
je 0x403265
mov edx, dword [ebp - 0xde0]
mov dword [ebp - 0x15d8], edx
mov eax, dword [ebp - 0x15d8]
push eax
call fcn.0040767c
add esp, 4
cmp dword [ebp - 0x544], 0
je 0x403289
mov ecx, dword [ebp - 0x544]
mov dword [ebp - 0x15dc], ecx
mov edx, dword [ebp - 0x15dc]
push edx
call fcn.0040767c
add esp, 4
cmp dword [ebp - 0xdcc], 0
je 0x4032ad
mov eax, dword [ebp - 0xdcc]
mov dword [ebp - 0x15e0], eax
mov ecx, dword [ebp - 0x15e0]
push ecx
call fcn.0040767c
add esp, 4
cmp dword [ebp - 0x144c], 0
je 0x4032d1
mov edx, dword [ebp - 0x144c]
mov dword [ebp - 0x15e4], edx
mov eax, dword [ebp - 0x15e4]
push eax
call fcn.0040767c
add esp, 4
cmp dword [ebp - 0x9a0], 0
je 0x4032e7
mov ecx, dword [ebp - 0x9a0]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x128], 0
je 0x4032fd
mov edx, dword [ebp - 0x128]
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, dword [ebp - 0x1554]
push eax
push str._Info__Setup_exit_code_is__d_n
call fcn.00406840
add esp, 8
movzx ecx, byte [ebp - 0x9a5]
test ecx, ecx
je 0x403363
push 0x400
lea edx, [ebp - 0x1438]
push edx
push 0x1e
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
push 0x24
lea ecx, [ebp - 0x1550]
push ecx
lea edx, [ebp - 0x1438]
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 6
jne 0x403363
call fcn.004066d0
push 0x84040002
push 2
call dword [sym.imp.USER32.dll_ExitWindowsEx]
mov eax, dword [ebp - 0x1554]
mov dword [ebp - 0x15e8], eax
lea ecx, [ebp - 0x120]
call fcn.00403890
mov eax, dword [ebp - 0x15e8]
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00407687
mov esp, ebp
pop ebp
ret 0x10