Function at 0x452d40
Capabilities:
Contain obfuscated stackstrings
Identify system language via api
Query environment variable

Disassembly:
push 0x228
mov eax, 0x49fc61
call fcn.00459b85
mov edi, ecx
mov dword [ebp - 0x200], edi
mov esi, dword [ebp + 0x24]
mov dword [ebp - 0x1fc], esi
xor ebx, ebx
mov dword [ebp - 4], ebx
cmp byte [edi + 0x4cc], bl
je 0x453880
push dword [ebp + 0x18]
call dword [sym.imp.OLEAUT32.dll_VariantInit]
push ebx
push str.operatingsystemcondition
push eax
push ebx
lea ecx, [ebp + 8]
call fcn.00452628
test eax, eax
jne 0x453590
cmp byte [edi + 0x266], bl
jne 0x453590
inc ebx
lea eax, [ebp - 0x1f1]
push ebx
push eax
push str.operatingsystemcondition
lea ecx, [ebp - 0xa0]
call fcn.00406b40
mov byte [ebp - 4], bl
lea eax, [ebp - 0xa0]
push ebx
push 0
push eax
mov ecx, edi
call fcn.0044c423
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xa0]
call fcn.00404cc0
push ebx
push dword [edi + 0x38]
mov ecx, edi
mov byte [edi + 0x265], bl
push str.MajorVersion
push esi
call fcn.0044c5d7
test al, al
jne 0x452e45
push 0
lea eax, [ebp - 0x1f1]
mov dword [ebp - 0xd0], 0x4b6748
push eax
push str.____Failed_
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xa8], 0x4b6750
call fcn.00407aa0
mov byte [ebp - 4], 4
lea eax, [ebp - 0xd0]
push ebx
push ebx
push eax
mov ecx, edi
call fcn.0044c423
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xd0]
jmp 0x454afe
push ebx
push dword [edi + 0x3c]
mov ecx, edi
push str.MinorVersion
push esi
call fcn.0044c5d7
test al, al
jne 0x452ebc
movzx eax, byte [edi + 0x42]
cmp dword [edi + 0x44], ebx
jne 0x452e76
push ebx
push eax
push str.MinorVersion
push esi
mov ecx, edi
call fcn.0044c5d7
test al, al
jne 0x452ebc
push 0
lea eax, [ebp - 0x1f1]
mov dword [ebp - 0xd0], 0x4b6748
push eax
push str.____Failed_
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xa8], 0x4b6750
call fcn.00407aa0
mov byte [ebp - 4], 7
lea eax, [ebp - 0xd0]
push ebx
push ebx
push eax
mov ecx, edi
call fcn.0044c423
jmp 0x452e36
cmp dword [edi + 0x44], ebx
jne 0x452f21
cmp byte [edi + 0x42], 0x5a
jne 0x452f21
push ebx
push 0x5a
push str.MinorVersion
push esi
mov ecx, edi
call fcn.0044c5d7
test al, al
jne 0x452f21
push 0
lea eax, [ebp - 0x1f1]
mov dword [ebp - 0xd0], 0x4b6748
push eax
push str.____Failed_
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xa8], 0x4b6750
call fcn.00407aa0
mov byte [ebp - 4], 0xa
lea eax, [ebp - 0xd0]
push ebx
push ebx
push eax
mov ecx, edi
call fcn.0044c423
jmp 0x452e36
movzx eax, word [edi + 0x25c]
mov ecx, edi
push 5
push eax
push str.ServicePackMajorMin
push esi
call fcn.0044c5d7
test al, al
jne 0x452f82
push 0
lea eax, [ebp - 0x1f1]
mov dword [ebp - 0xd0], 0x4b6748
push eax
push str.____Failed_
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xa8], 0x4b6750
call fcn.00407aa0
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0xd0]
push ebx
push ebx
push eax
mov ecx, edi
call fcn.0044c423
jmp 0x452e36
movzx eax, word [edi + 0x25c]
mov ecx, edi
push 3
push eax
push str.ServicePackMajorMax
push esi
call fcn.0044c5d7
test al, al
jne 0x452fd8
push ebx
lea eax, [ebp - 0x1f1]
push eax
push str.____Failed_
lea ecx, [ebp - 0xa0]
call fcn.00406b40
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0xa0]
push ebx
push ebx
push eax
mov ecx, edi
call fcn.0044c423
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xa0]
jmp 0x454afe
push 5
push dword [edi + 0x40]
mov ecx, edi
push str.BuildNumber
push esi
call fcn.0044c5d7
test al, al
jne 0x45301c
push ebx
lea eax, [ebp - 0x1f1]
push eax
push str.____Failed_
lea ecx, [ebp - 0xa0]
call fcn.00406b40
mov byte [ebp - 4], 0x11
lea eax, [ebp - 0xa0]
push ebx
push ebx
push eax
mov ecx, edi
call fcn.0044c423
jmp 0x452fc9
push 3
push dword [edi + 0x40]
mov ecx, edi
push str.MaxBuildNumber
push esi
call fcn.0044c5d7
push ebx
test al, al
jne 0x453063
lea eax, [ebp - 0x1f1]
push eax
push str.____Failed_
lea ecx, [ebp - 0xa0]
call fcn.00406b40
mov byte [ebp - 4], 0x13
lea eax, [ebp - 0xa0]
push ebx
push ebx
push eax
mov ecx, edi
call fcn.0044c423
jmp 0x452fc9
push dword [edi + 0x44]
mov ecx, edi
push str.PlatformId
push esi
call fcn.0044c5d7
test al, al
jne 0x4530a8
push ebx
lea eax, [ebp - 0x1f1]
push eax
push str.____Failed_
lea ecx, [ebp - 0xa0]
call fcn.00406b40
mov byte [ebp - 4], 0x15
lea eax, [ebp - 0xa0]
push ebx
push ebx
push eax
mov ecx, edi
call fcn.0044c423
jmp 0x452fc9
push str.CSDVersion
lea eax, [ebp - 0x21c]
mov ecx, esi
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x1f1]
push ebx
push ecx
push dword [eax + 0x10]
lea ecx, [ebp - 0x70]
call fcn.00406b40
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x21c]
call fcn.00419e91
cmp dword [ebp - 0x5c], 0
je 0x4531f8
push ebx
push 0
lea eax, [ebp - 0x70]
mov ecx, edi
push eax
call fcn.0044c423
push ebx
lea eax, [ebp - 0x1f1]
push eax
push 0x4a6e84
lea ecx, [ebp - 0xa0]
call fcn.00407aa0
mov byte [ebp - 4], 0x1a
lea eax, [ebp - 0xa0]
push eax
lea ecx, [ebp - 0x70]
call fcn.00454b58
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0xa0]
call fcn.00404cc0
push ebx
lea eax, [ebp - 0x1f1]
push eax
lea eax, [edi + 0x48]
push eax
lea ecx, [ebp - 0xd0]
call fcn.00406b40
mov byte [ebp - 4], 0x1b
lea eax, [ebp - 0x1f1]
push ebx
push eax
push 0x4a6e84
lea ecx, [ebp - 0xa0]
call fcn.00407aa0
mov byte [ebp - 4], 0x1c
lea eax, [ebp - 0xa0]
push eax
lea ecx, [ebp - 0xd0]
call fcn.00454b58
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0xa0]
call fcn.00404cc0
lea eax, [ebp - 0xcc]
push eax
lea ecx, [ebp - 0x6c]
call fcn.00409340
test eax, eax
jle 0x4531e9
push ebx
lea eax, [ebp - 0x1f1]
push eax
push str.____Failed_
lea ecx, [ebp - 0xa0]
call fcn.00406b40
mov byte [ebp - 4], 0x1d
lea eax, [ebp - 0xa0]
push 0
push ebx
push eax
mov ecx, edi
call fcn.0044c423
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0xa0]
call fcn.00404cc0
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0xd0]
jmp 0x453520
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0xd0]
call fcn.00404cc0
movzx eax, byte [edi + 0x262]
mov ecx, edi
push ebx
push eax
push str.ProductType
push esi
call fcn.0044c674
test al, al
jne 0x453255
push 0
lea eax, [ebp - 0x1f1]
mov dword [ebp - 0xd0], 0x4b6748
push eax
push str.____Failed_
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xa8], 0x4b6750
call fcn.00407aa0
mov byte [ebp - 4], 0x23
lea eax, [ebp - 0xd0]
push ebx
push ebx
push eax
mov ecx, edi
call fcn.0044c423
jmp 0x4531da
push str.Language
lea eax, [ebp - 0x21c]
mov ecx, esi
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0x26
lea ecx, [ebp - 0x1f1]
push ebx
push ecx
push dword [eax + 0x10]
lea ecx, [ebp - 0x40]
call fcn.00406b40
mov byte [ebp - 4], 0x28
lea ecx, [ebp - 0x21c]
call fcn.00419e91
cmp dword [ebp - 0x2c], 0
je 0x453300
push ebx
push 0
lea eax, [ebp - 0x40]
mov ecx, edi
push eax
call fcn.0044c423
push 0xa
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0x40]
call fcn.004435e9
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultUILanguage]
movzx eax, ax
cmp dword [ebp - 0x220], eax
je 0x453300
push ebx
lea eax, [ebp - 0x1f1]
push eax
push str.____Failed_
lea ecx, [ebp - 0xa0]
call fcn.00406b40
mov byte [ebp - 4], 0x29
lea eax, [ebp - 0xa0]
push 0
push ebx
push eax
mov ecx, edi
call fcn.0044c423
mov byte [ebp - 4], 0x28
lea ecx, [ebp - 0xa0]
jmp 0x453514
push str.Bits
lea eax, [ebp - 0x21c]
mov ecx, esi
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x1f1]
push ebx
push ecx
push dword [eax + 0x10]
lea ecx, [ebp - 0x100]
call fcn.00406b40
mov byte [ebp - 4], 0x2f
lea ecx, [ebp - 0x21c]
call fcn.00419e91
push 0xa
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0x100]
call fcn.004435e9
mov eax, dword [ebp - 0x220]
test bl, al
je 0x453399
call fcn.0045e4c1
test al, al
je 0x453531
push ebx
lea eax, [ebp - 0x1f1]
push eax
push str.____Failed_
lea ecx, [ebp - 0xa0]
call fcn.00406b40
mov byte [ebp - 4], 0x30
lea eax, [ebp - 0xa0]
push 0
push ebx
push eax
mov ecx, edi
call fcn.0044c423
jmp 0x4534fb
test al, 2
je 0x4533dc
call fcn.0045e4d7
test al, al
jne 0x453531
push ebx
lea eax, [ebp - 0x1f1]
push eax
push str.____Failed_
lea ecx, [ebp - 0xa0]
call fcn.00406b40
mov byte [ebp - 4], 0x35
lea eax, [ebp - 0xa0]
push 0
push ebx
push eax
mov ecx, edi
call fcn.0044c423
jmp 0x4534fb
test al, 4
je 0x45341f
call fcn.0045e5db
test al, al
jne 0x453531
push ebx
lea eax, [ebp - 0x1f1]
push eax
push str.____Failed_
lea ecx, [ebp - 0xa0]
call fcn.00406b40
mov byte [ebp - 4], 0x3a
lea eax, [ebp - 0xa0]
push 0
push ebx
push eax
mov ecx, edi
call fcn.0044c423
jmp 0x4534fb
test al, 8
je 0x453462
call fcn.0045e5c1
test al, al
jne 0x453531
push ebx
lea eax, [ebp - 0x1f1]
push eax
push str.____Failed_
lea ecx, [ebp - 0xa0]
call fcn.00406b40
mov byte [ebp - 4], 0x3f
lea eax, [ebp - 0xa0]
push 0
push ebx
push eax
mov ecx, edi
call fcn.0044c423
jmp 0x4534fb
test al, 0x10
je 0x4534c1
call fcn.0045e557
test al, al
jne 0x453531
push 0
lea eax, [ebp - 0x1f1]
mov dword [ebp - 0xd0], 0x4b6748
push eax
push str.____Failed_
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xa8], 0x4b6750
call fcn.00407aa0
mov byte [ebp - 4], 0x45
lea eax, [ebp - 0xd0]
push 0
push ebx
push eax
mov ecx, edi
call fcn.0044c423
mov byte [ebp - 4], 0x2f
lea ecx, [ebp - 0xd0]
jmp 0x453505
test al, 0x20
je 0x453531
call fcn.0045e4f6
test al, al
jne 0x453531
push ebx
lea eax, [ebp - 0x1f1]
push eax
push str.____Failed_
lea ecx, [ebp - 0xa0]
call fcn.00406b40
mov byte [ebp - 4], 0x4a
lea eax, [ebp - 0xa0]
push 0
push ebx
push eax
mov ecx, edi
call fcn.0044c423
mov byte [ebp - 4], 0x2f
lea ecx, [ebp - 0xa0]
call fcn.00404cc0
mov byte [ebp - 4], 0x28
lea ecx, [ebp - 0x100]
call fcn.00404cc0
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x40]
call fcn.00404cc0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x70]
jmp 0x454afe
push ebx
lea eax, [ebp - 0x1f1]
push eax
push str.____Successful
lea ecx, [ebp - 0xa0]
call fcn.00406b40
mov byte [ebp - 4], 0x4f
lea eax, [ebp - 0xa0]
push 0
push ebx
push eax
mov ecx, edi
call fcn.0044c423
mov byte [ebp - 4], 0x2f
lea ecx, [ebp - 0xa0]
call fcn.00404cc0
mov byte [edi + 0x266], bl
mov byte [ebp - 4], 0x28
lea ecx, [ebp - 0x100]
call fcn.00404cc0
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x40]
call fcn.00404cc0
jmp 0x453525
cmp byte [edi + 0x4cc], bl
je 0x453880
push dword [ebp + 0x18]
call dword [sym.imp.OLEAUT32.dll_VariantInit]
push ebx
push str.condition
push eax
push ebx
lea ecx, [ebp + 8]
call fcn.00452628
test eax, eax
jne 0x453880
xor ebx, ebx
lea eax, [ebp - 0x1f1]
inc ebx
lea ecx, [ebp - 0x40]
push ebx
push eax
push str.condition
mov byte [edi + 0x267], bl
call fcn.00406b40
mov byte [ebp - 4], 0x54
lea eax, [ebp - 0x40]
push ebx
push 0
push eax
mov ecx, edi
call fcn.0044c423
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x40]
call fcn.00404cc0
push str.Type
lea eax, [ebp - 0x21c]
mov ecx, esi
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0x56
lea ecx, [ebp - 0x1f1]
push ebx
push ecx
push dword [eax + 0x10]
lea ecx, [ebp - 0xa0]
call fcn.00406b40
mov byte [ebp - 4], 0x58
lea ecx, [ebp - 0x21c]
call fcn.00419e91
push str.Comparison
lea eax, [ebp - 0x21c]
mov ecx, esi
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0x59
lea ecx, [ebp - 0x1f1]
push ebx
push ecx
push dword [eax + 0x10]
lea ecx, [ebp - 0x130]
call fcn.00406b40
mov byte [ebp - 4], 0x5b
lea ecx, [ebp - 0x21c]
call fcn.00419e91
push str.Path
lea eax, [ebp - 0x21c]
mov ecx, esi
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0x5c
lea ecx, [ebp - 0x1f1]
push ebx
push ecx
push dword [eax + 0x10]
lea ecx, [ebp - 0x160]
call fcn.00406b40
mov byte [ebp - 4], 0x5e
lea ecx, [ebp - 0x21c]
call fcn.00419e91
push str.FileName
lea eax, [ebp - 0x21c]
mov ecx, esi
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0x5f
lea ecx, [ebp - 0x1f1]
push ebx
push ecx
push dword [eax + 0x10]
lea ecx, [ebp - 0xd0]
call fcn.00406b40
mov byte [ebp - 4], 0x61
lea ecx, [ebp - 0x21c]
call fcn.00419e91
push str.ReturnValue
lea eax, [ebp - 0x21c]
mov ecx, esi
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0x62
lea ecx, [ebp - 0x1f1]
push ebx
push ecx
push dword [eax + 0x10]
lea ecx, [ebp - 0x70]
call fcn.00406b40
mov byte [ebp - 4], 0x64
lea ecx, [ebp - 0x21c]
call fcn.00419e91
push str.Bits
lea eax, [ebp - 0x21c]
mov ecx, esi
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0x65
lea ecx, [ebp - 0x1f1]
push ebx
push ecx
push dword [eax + 0x10]
lea ecx, [ebp - 0x100]
call fcn.00406b40
mov byte [ebp - 4], 0x67
lea ecx, [ebp - 0x21c]
call fcn.00419e91
lea eax, [ebp - 0x70]
mov ecx, edi
push eax
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0x160]
push eax
lea eax, [ebp - 0x130]
push eax
lea eax, [ebp - 0xa0]
push eax
call fcn.0044c32e
lea eax, [ebp - 0x70]
mov ecx, edi
push eax
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0x160]
push eax
lea eax, [ebp - 0x130]
push eax
lea eax, [ebp - 0xa0]
push eax
call fcn.0044c872
test al, al
lea ecx, [ebp - 0x40]
lea eax, [ebp - 0x1f1]
jne 0x453809
push 0
push eax
push str.____Failed_
mov dword [ebp - 0x40], 0x4b6748
mov dword [ebp - 0x18], 0x4b6750
call fcn.00407aa0
mov byte [ebp - 4], 0x69
lea eax, [ebp - 0x40]
push 0
push ebx
push eax
mov ecx, edi
call fcn.0044c423
mov byte [ebp - 4], 0x67
lea ecx, [ebp - 0x40]
call fcn.00404cc0
mov byte [edi + 0x268], 0
jmp 0x453833
push ebx
push eax
push str.____Successful
call fcn.00406b40
mov byte [ebp - 4], 0x6b
lea eax, [ebp - 0x40]
push 0
push ebx
push eax
mov ecx, edi
call fcn.0044c423
mov byte [ebp - 4], 0x67
lea ecx, [ebp - 0x40]
call fcn.00404cc0
mov byte [ebp - 4], 0x64
lea ecx, [ebp - 0x100]
call fcn.00404cc0
mov byte [ebp - 4], 0x61
lea ecx, [ebp - 0x70]
call fcn.00404cc0
mov byte [ebp - 4], 0x5e
lea ecx, [ebp - 0xd0]
call fcn.00404cc0
mov byte [ebp - 4], 0x5b
lea ecx, [ebp - 0x160]
call fcn.00404cc0
mov byte [ebp - 4], 0x58
lea ecx, [ebp - 0x130]
call fcn.00404cc0
jmp 0x452fc9
push dword [ebp + 0x18]
call dword [sym.imp.OLEAUT32.dll_VariantInit]
push ebx
push str.file
push eax
push ebx
lea ecx, [ebp + 8]
call fcn.00452628
test eax, eax
jne 0x453b05
cmp byte [edi + 0x4cf], bl
jne 0x453b05
xor ebx, ebx
lea eax, [ebp - 0x1f1]
inc ebx
lea ecx, [ebp - 0xa0]
push ebx
push eax
push str.file
call fcn.00406b40
mov byte [ebp - 4], 0x73
lea eax, [ebp - 0xa0]
push ebx
push 0
push eax
mov ecx, edi
call fcn.0044c423
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xa0]
call fcn.00404cc0
lea ecx, [ebp - 0x1f0]
call fcn.0044b83f
mov byte [ebp - 4], 0x75
lea eax, [ebp - 0x21c]
push str.CheckSum
push eax
mov ecx, esi
call fcn.00465e2c
mov byte [ebp - 4], 0x76
mov edx, 0x4b65d4
cmp dword [eax + 0x10], 0
mov ecx, edx
mov esi, edx
cmovne ecx, dword [eax + 0x10]
test ecx, ecx
cmovne esi, ecx
push esi
call fcn.00473ca3
pop ecx
push eax
push esi
lea ecx, [ebp - 0x18c]
call fcn.00408130
mov byte [ebp - 4], 0x75
lea ecx, [ebp - 0x21c]
call fcn.00419e91
mov ecx, dword [ebp - 0x1fc]
lea eax, [ebp - 0x21c]
push str.LocalFile
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0x77
mov edx, 0x4b65d4
cmp dword [eax + 0x10], 0
mov ecx, edx
mov esi, edx
cmovne ecx, dword [eax + 0x10]
test ecx, ecx
cmovne esi, ecx
push esi
call fcn.00473ca3
pop ecx
push eax
push esi
lea ecx, [ebp - 0x1ec]
call fcn.00408130
mov byte [ebp - 4], 0x75
lea ecx, [ebp - 0x21c]
call fcn.00419e91
mov ecx, dword [ebp - 0x1fc]
lea eax, [ebp - 0x21c]
push 0x4af2fc
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0x78
mov edx, 0x4b65d4
mov ecx, edx
cmp dword [eax + 0x10], 0
mov esi, edx
cmovne ecx, dword [eax + 0x10]
test ecx, ecx
cmovne esi, ecx
push esi
call fcn.00473ca3
pop ecx
push eax
push esi
lea ecx, [ebp - 0x1bc]
call fcn.00408130
mov byte [ebp - 4], 0x75
lea ecx, [ebp - 0x21c]
call fcn.00419e91
push ebx
lea eax, [ebp - 0x1f1]
mov esi, 0x4b65d4
push eax
push esi
lea ecx, [ebp - 0x160]
call fcn.00406b40
mov byte [ebp - 4], 0x79
lea eax, [ebp - 0x1f1]
push ebx
push eax
push esi
lea ecx, [ebp - 0x130]
call fcn.00406b40
mov byte [ebp - 4], 0x7a
lea eax, [ebp - 0x1f1]
push ebx
push eax
push esi
lea ecx, [ebp - 0xa0]
call fcn.00406b40
mov byte [ebp - 4], 0x7b
lea eax, [ebp - 0x160]
push eax
lea eax, [ebp - 0x130]
mov ecx, edi
push eax
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0x1c0]
push eax
lea eax, [ebp - 0x1f0]
push eax
lea eax, [ebp - 0x190]
push eax
call fcn.0044c32e
mov byte [ebp - 4], 0x7a
lea ecx, [ebp - 0xa0]
call fcn.00404cc0
mov byte [ebp - 4], 0x79
lea ecx, [ebp - 0x130]
call fcn.00404cc0
mov byte [ebp - 4], 0x75
lea ecx, [ebp - 0x160]
call fcn.00404cc0
lea eax, [ebp - 0x1f0]
push eax
lea ecx, [edi + 0x26c]
call fcn.0044c299
push 0
lea eax, [ebp - 0x1f1]
mov dword [ebp - 0x40], 0x4b6748
push eax
push str.____Successful
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x18], 0x4b6750
call fcn.00407aa0
mov byte [ebp - 4], 0x80
push ebx
push ebx
lea eax, [ebp - 0x40]
mov ecx, edi
push eax
call fcn.0044c423
mov byte [ebp - 4], 0x75
lea ecx, [ebp - 0x40]
call fcn.00404cc0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1f0]
call fcn.0042b000
jmp 0x454b03
push dword [ebp + 0x18]
call dword [sym.imp.OLEAUT32.dll_VariantInit]
push ebx
push str.properties
push eax
push ebx
lea ecx, [ebp + 8]
call fcn.00452628
test eax, eax
jne 0x453c67
xor ebx, ebx
lea eax, [ebp - 0x1f1]
inc ebx
lea ecx, [ebp - 0xa0]
push ebx
push eax
push 0x4a9ea0
call fcn.00406b40
mov byte [ebp - 4], 0x82
lea eax, [ebp - 0xa0]
push ebx
push 0
push eax
mov ecx, edi
call fcn.0044c423
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xa0]
call fcn.00404cc0
push 0x4a9ea0
lea eax, [ebp - 0x21c]
mov ecx, esi
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0x84
mov edx, 0x4b65d4
add edi, 0x284
mov ecx, edx
cmp dword [eax + 0x10], 0
mov esi, edx
cmovne ecx, dword [eax + 0x10]
test ecx, ecx
cmovne esi, ecx
push esi
call fcn.00473ca3
pop ecx
push eax
push esi
lea ecx, [edi + 4]
call fcn.00408130
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x21c]
call fcn.00419e91
push ebx
push 0
push edi
mov edi, dword [ebp - 0x200]
mov ecx, edi
call fcn.0044c423
mov ecx, dword [ebp - 0x1fc]
lea eax, [ebp - 0x21c]
push str.AltPrqURL
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0x85
mov edx, 0x4b65d4
cmp dword [eax + 0x10], 0
lea esi, [edi + 0x3d4]
mov ecx, edx
cmovne ecx, dword [eax + 0x10]
test ecx, ecx
cmovne edx, ecx
push edx
mov dword [ebp - 0x200], edx
call fcn.00473ca3
mov edx, dword [ebp - 0x200]
pop ecx
push eax
push edx
lea ecx, [esi + 4]
call fcn.00408130
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x21c]
call fcn.00419e91
push ebx
push 0
push esi
mov ecx, edi
call fcn.0044c423
push ebx
lea eax, [ebp - 0x1f1]
push eax
push str.____Successful
lea ecx, [ebp - 0xa0]
call fcn.00406b40
mov byte [ebp - 4], 0x86
lea eax, [ebp - 0xa0]
push 0
push ebx
push eax
mov ecx, edi
call fcn.0044c423
jmp 0x452fc9
push dword [ebp + 0x18]
call dword [sym.imp.OLEAUT32.dll_VariantInit]
push ebx
push str.execute
push eax
push ebx
lea ecx, [ebp + 8]
call fcn.00452628
test eax, eax
jne 0x454107
cmp byte [edi + 0x4cf], bl
jne 0x454107
xor ebx, ebx
lea eax, [ebp - 0x1f1]
inc ebx
lea ecx, [ebp - 0xa0]
push ebx
push eax
push str.execute
call fcn.00406b40
mov byte [ebp - 4], 0x88
lea eax, [ebp - 0xa0]
push ebx
push 0
push eax
mov ecx, edi
call fcn.0044c423
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xa0]
call fcn.00404cc0
push str.file
lea eax, [ebp - 0x21c]
mov ecx, esi
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0x8a
lea ecx, [edi + 0x2b4]
cmp dword [eax + 0x10], 0
mov edx, 0x4b65d4
mov dword [ebp - 0x1f8], ecx
mov esi, edx
mov ecx, edx
cmovne ecx, dword [eax + 0x10]
test ecx, ecx
cmovne esi, ecx
push esi
call fcn.00473ca3
pop ecx
push eax
push esi
lea ecx, [edi + 0x2b8]
call fcn.00408130
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x21c]
call fcn.00419e91
cmp dword [edi + 0x2f8], 0
jne 0x453e36
mov ecx, dword [ebp - 0x1fc]
lea eax, [ebp - 0x21c]
push str.cmdline
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0x8b
lea ecx, [ebp - 0x1f1]
push ebx
push ecx
push dword [eax + 0x10]
lea ecx, [ebp - 0x70]
call fcn.00406b40
mov byte [ebp - 4], 0x8d
lea ecx, [ebp - 0x21c]
call fcn.00419e91
lea eax, [edi + 0x2e4]
push 0x104
lea ecx, [ebp - 0x234]
mov dword [ebp - 0x220], eax
push ecx
mov ecx, eax
call fcn.00406a60
mov byte [ebp - 4], 0x8e
lea esi, [ebp - 0x6c]
cmp dword [ebp - 0x58], 8
mov ecx, dword [eax]
cmovae esi, dword [ebp - 0x6c]
mov byte [eax + 4], bl
call fcn.00407930
push 0x104
push dword [eax]
push esi
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
mov esi, eax
mov dword [ebp - 0x224], esi
mov byte [ebp - 4], 0x8d
lea ecx, [ebp - 0x234]
call fcn.00405f90
cmp esi, 0x104
jbe 0x453e28
push esi
lea eax, [ebp - 0x234]
push eax
lea ecx, [edi + 0x2e4]
call fcn.00406a60
mov byte [ebp - 4], 0x8f
lea esi, [ebp - 0x6c]
cmp dword [ebp - 0x58], 8
mov ecx, dword [eax]
cmovae esi, dword [ebp - 0x6c]
mov byte [eax + 4], bl
call fcn.00407930
push dword [ebp - 0x224]
push dword [eax]
push esi
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
mov byte [ebp - 4], 0x8d
lea ecx, [ebp - 0x234]
call fcn.00405f90
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x70]
call fcn.00404cc0
jmp 0x453e42
lea eax, [edi + 0x2e4]
mov dword [ebp - 0x220], eax
cmp dword [edi + 0x328], 0
jne 0x453f49
mov ecx, dword [ebp - 0x1fc]
lea eax, [ebp - 0x21c]
push str.cmdlinesilent
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0x91
lea ecx, [ebp - 0x1f1]
push ebx
push ecx
push dword [eax + 0x10]
lea ecx, [ebp - 0x70]
call fcn.00406b40
mov byte [ebp - 4], 0x93
lea ecx, [ebp - 0x21c]
call fcn.00419e91
lea esi, [edi + 0x314]
push 0x104
lea eax, [ebp - 0x234]
mov dword [ebp - 0x224], esi
push eax
mov ecx, esi
call fcn.00406a60
mov byte [ebp - 4], 0x94
mov ecx, dword [eax]
mov byte [eax + 4], bl
call fcn.00407930
cmp dword [ebp - 0x58], 8
lea ecx, [ebp - 0x6c]
push 0x104
cmovae ecx, dword [ebp - 0x6c]
push dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
mov dword [ebp - 0x228], eax
mov byte [ebp - 4], 0x93
lea ecx, [ebp - 0x234]
call fcn.00405f90
mov eax, dword [ebp - 0x228]
cmp eax, 0x104
jbe 0x453f3b
push eax
lea eax, [ebp - 0x234]
mov ecx, esi
push eax
call fcn.00406a60
mov byte [ebp - 4], 0x95
lea esi, [ebp - 0x6c]
cmp dword [ebp - 0x58], 8
mov ecx, dword [eax]
cmovae esi, dword [ebp - 0x6c]
mov byte [eax + 4], bl
call fcn.00407930
mov ecx, dword [ebp - 0x228]
push ecx
push dword [eax]
push esi
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
mov byte [ebp - 4], 0x93
lea ecx, [ebp - 0x234]
call fcn.00405f90
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x70]
call fcn.00404cc0
jmp 0x453f55
lea eax, [edi + 0x314]
mov dword [ebp - 0x224], eax
mov ecx, dword [ebp - 0x1fc]
lea eax, [ebp - 0x21c]
push str.returncodetoreboot
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0x97
mov edx, 0x4b65d4
cmp dword [eax + 0x10], 0
lea ebx, [edi + 0x344]
mov ecx, edx
mov esi, edx
cmovne ecx, dword [eax + 0x10]
test ecx, ecx
cmovne esi, ecx
push esi
call fcn.00473ca3
pop ecx
push eax
push esi
lea ecx, [ebx + 4]
call fcn.00408130
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x21c]
call fcn.00419e91
mov ecx, dword [ebp - 0x1fc]
lea eax, [ebp - 0x21c]
push str.forcesilent
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0x98
mov edx, 0x4b65d4
add edi, 0x374
mov ecx, edx
cmp dword [eax + 0x10], 0
mov esi, edx
cmovne ecx, dword [eax + 0x10]
test ecx, ecx
cmovne esi, ecx
push esi
call fcn.00473ca3
pop ecx
push eax
push esi
lea ecx, [edi + 4]
call fcn.00408130
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x21c]
call fcn.00419e91
push 0
lea eax, [ebp - 0x1f1]
mov dword [ebp - 0x18], 0x4b6750
push eax
mov edx, 0x4b65d4
lea ecx, [ebp - 0x40]
mov esi, 0x4b6748
push edx
mov dword [ebp - 0x40], esi
call fcn.00407aa0
mov byte [ebp - 4], 0x9a
lea eax, [ebp - 0x40]
push eax
push edi
mov edi, dword [ebp - 0x200]
mov ecx, edi
push ebx
push dword [ebp - 0x224]
push dword [ebp - 0x220]
push dword [ebp - 0x1f8]
call fcn.0044c32e
xor ebx, ebx
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x40]
call fcn.00404cc0
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x48], 0x4b6750
push ebx
lea eax, [ebp - 0x1f1]
push eax
push str.____Successful
lea ecx, [ebp - 0x70]
call fcn.00407aa0
mov byte [ebp - 4], 0x9d
lea eax, [ebp - 0x70]
push ebx
inc ebx
mov ecx, edi
push ebx
push eax
call fcn.0044c423
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x70]
call fcn.00404cc0
mov ecx, dword [ebp - 0x1fc]
lea eax, [ebp - 0x21c]
push str.requiresmsiengine
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0x9f
lea ecx, [ebp - 0x1f1]
push ebx
push ecx
push dword [eax + 0x10]
lea ecx, [ebp - 0x130]
call fcn.00406b40
mov byte [ebp - 4], 0xa1
lea ecx, [ebp - 0x21c]
call fcn.00419e91
push 0x4adce8
lea ecx, [ebp - 0x12c]
call fcn.004526fc
neg eax
sbb al, al
inc al
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x130]
mov byte [edi + 0x4cd], al
jmp 0x454afe
push dword [ebp + 0x18]
call dword [sym.imp.OLEAUT32.dll_VariantInit]
push ebx
push str.dependency
push eax
push ebx
lea ecx, [ebp + 8]
call fcn.00452628
test eax, eax
jne 0x454242
cmp byte [edi + 0x4cf], bl
jne 0x454242
push ebx
lea eax, [ebp - 0x1f1]
mov dword [ebp - 0x70], 0x4b6748
push eax
push str.dependency
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x48], 0x4b6750
call fcn.00407aa0
mov byte [ebp - 4], 0xa4
xor ebx, ebx
inc ebx
lea eax, [ebp - 0x70]
push ebx
push 0
push eax
mov ecx, edi
call fcn.0044c423
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x70]
call fcn.00404cc0
push ebx
lea eax, [ebp - 0x1f1]
push eax
lea ecx, [ebp - 0x40]
call fcn.004060a0
mov byte [ebp - 4], 0xa7
lea eax, [ebp - 0x21c]
push str.File
push eax
mov ecx, esi
call fcn.00465e2c
mov byte [ebp - 4], 0xa8
mov esi, 0x4b65d4
cmp dword [eax + 0x10], 0
mov ecx, esi
cmovne ecx, dword [eax + 0x10]
test ecx, ecx
cmovne esi, ecx
push esi
call fcn.00473ca3
pop ecx
push eax
push esi
lea ecx, [ebp - 0x3c]
call fcn.00408130
mov byte [ebp - 4], 0xa7
lea ecx, [ebp - 0x21c]
call fcn.00419e91
lea eax, [ebp - 0x40]
push eax
lea ecx, [edi + 0x278]
call fcn.0044c225
push ebx
push 0
lea eax, [ebp - 0x40]
mov ecx, edi
push eax
call fcn.0044c423
push ebx
lea eax, [ebp - 0x1f1]
push eax
push str.____Successful
lea ecx, [ebp - 0xa0]
call fcn.00406b40
mov byte [ebp - 4], 0xa9
lea eax, [ebp - 0xa0]
push 0
push ebx
push eax
mov ecx, edi
call fcn.0044c423
mov byte [ebp - 4], 0xa7
lea ecx, [ebp - 0xa0]
call fcn.00404cc0
mov byte [ebp - 4], 0
lea eax, [ebp - 0x40]
mov dword [ebp - 0x1f8], eax
jmp 0x454af7
push dword [ebp + 0x18]
call dword [sym.imp.OLEAUT32.dll_VariantInit]
push ebx
push str.behavior
push eax
push ebx
lea ecx, [ebp + 8]
call fcn.00452628
test eax, eax
jne 0x4547d7
push ebx
lea eax, [ebp - 0x1f1]
mov dword [ebp - 0x40], 0x4b6748
push eax
push str.behavior
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x18], 0x4b6750
call fcn.00407aa0
mov byte [ebp - 4], 0xae
xor ebx, ebx
inc ebx
lea eax, [ebp - 0x40]
push ebx
push 0
push eax
mov ecx, edi
call fcn.0044c423
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x40]
call fcn.00404cc0
push str.Optional
lea eax, [ebp - 0x21c]
mov ecx, esi
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0xb0
lea ecx, [ebp - 0x1f1]
push ebx
push ecx
push dword [eax + 0x10]
lea ecx, [ebp - 0x70]
call fcn.00406b40
mov byte [ebp - 4], 0xb2
lea ecx, [ebp - 0x21c]
call fcn.00419e91
push 0xa
lea eax, [ebp - 0x1f8]
push eax
lea ecx, [ebp - 0x70]
call fcn.004435e9
cmp dword [ebp - 0x1f8], 0
je 0x454300
mov byte [edi + 0x4f0], bl
push 0
lea eax, [ebp - 0x1f1]
mov dword [ebp - 0x40], 0x4b6748
push eax
push str.Optional
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x18], 0x4b6750
call fcn.00407aa0
mov byte [ebp - 4], 0xb4
lea eax, [ebp - 0x40]
push ebx
push 0
push eax
mov ecx, edi
call fcn.0044c423
mov byte [ebp - 4], 0xb2
lea ecx, [ebp - 0x40]
call fcn.00404cc0
push ebx
push 0
lea eax, [ebp - 0x70]
mov ecx, edi
push eax
call fcn.0044c423
push str.Reboot
lea eax, [ebp - 0x21c]
mov ecx, esi
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0xb6
mov edx, 0x4b65d4
cmp dword [eax + 0x10], 0
mov ecx, edx
mov esi, edx
cmovne ecx, dword [eax + 0x10]
test ecx, ecx
cmovne esi, ecx
push esi
call fcn.00473ca3
pop ecx
push eax
push esi
lea ecx, [ebp - 0x6c]
call fcn.00408130
mov byte [ebp - 4], 0xb2
lea ecx, [ebp - 0x21c]
call fcn.00419e91
push 0xa
lea eax, [ebp - 0x1f8]
push eax
lea ecx, [ebp - 0x70]
call fcn.004435e9
mov eax, dword [ebp - 0x1f8]
test eax, eax
je 0x4543be
mov dword [edi + 0x4e8], eax
push 0
lea eax, [ebp - 0x1f1]
mov dword [ebp - 0x40], 0x4b6748
push eax
push str.Reboot
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x18], 0x4b6750
call fcn.00407aa0
mov byte [ebp - 4], 0xb8
lea eax, [ebp - 0x40]
push ebx
push 0
push eax
mov ecx, edi
call fcn.0044c423
mov byte [ebp - 4], 0xb2
lea ecx, [ebp - 0x40]
call fcn.00404cc0
push ebx
push 0
lea eax, [ebp - 0x70]
mov ecx, edi
push eax
call fcn.0044c423
mov ecx, dword [ebp - 0x1fc]
lea eax, [ebp - 0x21c]
push str.Failure
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0xba
mov edx, 0x4b65d4
cmp dword [eax + 0x10], 0
mov ecx, edx
mov esi, edx
cmovne ecx, dword [eax + 0x10]
test ecx, ecx
cmovne esi, ecx
push esi
call fcn.00473ca3
pop ecx
push eax
push esi
lea ecx, [ebp - 0x6c]
call fcn.00408130
mov byte [ebp - 4], 0xb2
lea ecx, [ebp - 0x21c]
call fcn.00419e91
push 0xa
lea eax, [ebp - 0x1f8]
push eax
lea ecx, [ebp - 0x70]
call fcn.004435e9
mov eax, dword [ebp - 0x1f8]
test eax, eax
je 0x454480
mov dword [edi + 0x4ec], eax
push 0
lea eax, [ebp - 0x1f1]
mov dword [ebp - 0x40], 0x4b6748
push eax
push str.Failure
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x18], 0x4b6750
call fcn.00407aa0
mov byte [ebp - 4], 0xbc
lea eax, [ebp - 0x40]
push ebx
push 0
push eax
mov ecx, edi
call fcn.0044c423
mov byte [ebp - 4], 0xb2
lea ecx, [ebp - 0x40]
call fcn.00404cc0
push 0
push ebx
lea eax, [ebp - 0x70]
mov ecx, edi
push eax
call fcn.0044c423
mov ecx, dword [ebp - 0x1fc]
lea eax, [ebp - 0x21c]
push 0x4af42c
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0xbe
mov edx, 0x4b65d4
cmp dword [eax + 0x10], 0
mov ecx, edx
mov esi, edx
cmovne ecx, dword [eax + 0x10]
test ecx, ecx
cmovne esi, ecx
push esi
call fcn.00473ca3
pop ecx
push eax
push esi
lea ecx, [ebp - 0x6c]
call fcn.00408130
mov byte [ebp - 4], 0xb2
lea ecx, [ebp - 0x21c]
call fcn.00419e91
push 0xa
lea eax, [ebp - 0x1f8]
push eax
lea ecx, [ebp - 0x70]
call fcn.004435e9
cmp dword [ebp - 0x1f8], 0
je 0x454541
mov byte [edi + 0x4f1], bl
push 0
lea eax, [ebp - 0x1f1]
mov dword [ebp - 0x40], 0x4b6748
push eax
push 0x4af42c
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x18], 0x4b6750
call fcn.00407aa0
mov byte [ebp - 4], 0xc0
lea eax, [ebp - 0x40]
push ebx
push 0
push eax
mov ecx, edi
call fcn.0044c423
mov byte [ebp - 4], 0xb2
lea ecx, [ebp - 0x40]
call fcn.00404cc0
push 0
push ebx
lea eax, [ebp - 0x70]
mov ecx, edi
push eax
call fcn.0044c423
mov ecx, dword [ebp - 0x1fc]
lea eax, [ebp - 0x21c]
push 0x4aa9f8
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0xc2
mov edx, 0x4b65d4
cmp dword [eax + 0x10], 0
mov ecx, edx
mov esi, edx
cmovne ecx, dword [eax + 0x10]
test ecx, ecx
cmovne esi, ecx
push esi
call fcn.00473ca3
pop ecx
push eax
push esi
lea ecx, [ebp - 0x6c]
call fcn.00408130
mov byte [ebp - 4], 0xb2
lea ecx, [ebp - 0x21c]
call fcn.00419e91
push 0xa
lea eax, [ebp - 0x1f8]
push eax
lea ecx, [ebp - 0x70]
call fcn.004435e9
cmp dword [ebp - 0x1f8], 0
je 0x454602
mov byte [edi + 0x269], bl
push 0
lea eax, [ebp - 0x1f1]
mov dword [ebp - 0x40], 0x4b6748
push eax
push 0x4aa9f8
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x18], 0x4b6750
call fcn.00407aa0
mov byte [ebp - 4], 0xc4
lea eax, [ebp - 0x40]
push ebx
push 0
push eax
mov ecx, edi
call fcn.0044c423
mov byte [ebp - 4], 0xb2
lea ecx, [ebp - 0x40]
call fcn.00404cc0
push 0
push ebx
lea eax, [ebp - 0x70]
mov ecx, edi
push eax
call fcn.0044c423
mov ecx, dword [ebp - 0x1fc]
lea eax, [ebp - 0x21c]
push str.MsiProgress
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0xc6
mov edx, 0x4b65d4
cmp dword [eax + 0x10], 0
mov ecx, edx
mov esi, edx
cmovne ecx, dword [eax + 0x10]
test ecx, ecx
cmovne esi, ecx
push esi
call fcn.00473ca3
pop ecx
push eax
push esi
lea ecx, [ebp - 0x6c]
call fcn.00408130
mov byte [ebp - 4], 0xb2
lea ecx, [ebp - 0x21c]
call fcn.00419e91
push 0xa
lea eax, [ebp - 0x1f8]
push eax
lea ecx, [ebp - 0x70]
call fcn.004435e9
cmp dword [ebp - 0x1f8], 0
je 0x4546c3
mov byte [edi + 0x26a], bl
push 0
lea eax, [ebp - 0x1f1]
mov dword [ebp - 0x40], 0x4b6748
push eax
push str.MsiProgress
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x18], 0x4b6750
call fcn.00407aa0
mov byte [ebp - 4], 0xc8
lea eax, [ebp - 0x40]
push ebx
push 0
push eax
mov ecx, edi
call fcn.0044c423
mov byte [ebp - 4], 0xb2
lea ecx, [ebp - 0x40]
call fcn.00404cc0
push 0
push ebx
lea eax, [ebp - 0x70]
mov ecx, edi
push eax
call fcn.0044c423
mov ecx, dword [ebp - 0x1fc]
lea eax, [ebp - 0x21c]
push str.IgnoreTmpRename
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0xca
mov esi, 0x4b65d4
cmp dword [eax + 0x10], 0
mov ecx, esi
cmovne ecx, dword [eax + 0x10]
test ecx, ecx
cmovne esi, ecx
push esi
call fcn.00473ca3
pop ecx
push eax
push esi
lea ecx, [ebp - 0x6c]
call fcn.00408130
mov byte [ebp - 4], 0xb2
lea ecx, [ebp - 0x21c]
call fcn.00419e91
push 0xa
lea eax, [ebp - 0x1f8]
push eax
lea ecx, [ebp - 0x70]
call fcn.004435e9
cmp dword [ebp - 0x1f8], 0
je 0x454782
mov byte [edi + 0x4d1], bl
push 0
lea eax, [ebp - 0x1f1]
mov dword [ebp - 0x40], 0x4b6748
push eax
push str.IgnoreTmpRename
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x18], 0x4b6750
call fcn.00407aa0
mov byte [ebp - 4], 0xcc
lea eax, [ebp - 0x40]
push ebx
push 0
push eax
mov ecx, edi
call fcn.0044c423
mov byte [ebp - 4], 0xb2
lea ecx, [ebp - 0x40]
call fcn.00404cc0
push 0
push ebx
lea eax, [ebp - 0x70]
mov ecx, edi
push eax
call fcn.0044c423
jmp 0x453525
push dword [ebp + 0x18]
call dword [sym.imp.OLEAUT32.dll_VariantInit]
push ebx
push str.wpmpackage
push eax
push ebx
lea ecx, [ebp + 8]
call fcn.00452628
test eax, eax
jne 0x454b03
push ebx
lea eax, [ebp - 0x1f1]
mov dword [ebp - 0x70], 0x4b6748
push eax
push str.wpmpackage
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x48], 0x4b6750
call fcn.00407aa0
mov byte [ebp - 4], 0xd0
xor ebx, ebx
inc ebx
lea eax, [ebp - 0x70]
push ebx
push 0
push eax
mov ecx, edi
call fcn.0044c423
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x70]
call fcn.00404cc0
push str.InstallWPMPackage
lea eax, [ebp - 0x21c]
mov ecx, esi
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0xd2
lea ecx, [ebp - 0x1f1]
push ebx
push ecx
push dword [eax + 0x10]
lea ecx, [ebp - 0x40]
call fcn.00406b40
mov byte [ebp - 4], 0xd4
lea ecx, [ebp - 0x21c]
call fcn.00419e91
push 0xa
lea eax, [ebp - 0x1f8]
push eax
lea ecx, [ebp - 0x40]
call fcn.004435e9
cmp dword [ebp - 0x1f8], 0
je 0x454895
mov byte [edi + 0x4cf], bl
push 0
lea eax, [ebp - 0x1f1]
mov dword [ebp - 0x70], 0x4b6748
push eax
push str.InstallWPMPackage
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x48], 0x4b6750
call fcn.00407aa0
mov byte [ebp - 4], 0xd6
lea eax, [ebp - 0x70]
push ebx
push 0
push eax
mov ecx, edi
call fcn.0044c423
mov byte [ebp - 4], 0xd4
lea ecx, [ebp - 0x70]
call fcn.00404cc0
push 0
push ebx
lea eax, [ebp - 0x40]
mov ecx, edi
push eax
call fcn.0044c423
push str.versiontype
lea eax, [ebp - 0x21c]
mov ecx, esi
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0xd8
mov edx, 0x4b65d4
cmp dword [eax + 0x10], 0
mov ecx, edx
mov esi, edx
cmovne ecx, dword [eax + 0x10]
test ecx, ecx
cmovne esi, ecx
push esi
call fcn.00473ca3
pop ecx
push eax
push esi
lea ecx, [ebp - 0x3c]
call fcn.00408130
mov byte [ebp - 4], 0xd4
lea ecx, [ebp - 0x21c]
call fcn.00419e91
push 0xa
lea eax, [ebp - 0x1f8]
push eax
lea ecx, [ebp - 0x40]
call fcn.004435e9
cmp dword [ebp - 0x1f8], 0
je 0x454952
mov byte [edi + 0x4d0], bl
push 0
lea eax, [ebp - 0x1f1]
mov dword [ebp - 0x100], 0x4b6748
push eax
push str.versiontype
lea ecx, [ebp - 0x100]
mov dword [ebp - 0xd8], 0x4b6750
call fcn.00407aa0
mov byte [ebp - 4], 0xda
lea eax, [ebp - 0x100]
push ebx
push 0
push eax
mov ecx, edi
call fcn.0044c423
mov byte [ebp - 4], 0xd4
lea ecx, [ebp - 0x100]
call fcn.00404cc0
push 0
push ebx
lea eax, [ebp - 0x40]
mov ecx, edi
push eax
call fcn.0044c423
mov ecx, dword [ebp - 0x1fc]
lea eax, [ebp - 0x21c]
push str.name
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0xdc
mov edx, 0x4b65d4
add edi, 0x404
mov ecx, edx
cmp dword [eax + 0x10], 0
mov esi, edx
cmovne ecx, dword [eax + 0x10]
test ecx, ecx
cmovne esi, ecx
push esi
call fcn.00473ca3
pop ecx
push eax
push esi
lea ecx, [edi + 4]
call fcn.00408130
mov byte [ebp - 4], 0xd4
lea ecx, [ebp - 0x21c]
call fcn.00419e91
push ebx
push 0
push edi
mov edi, dword [ebp - 0x200]
mov ecx, edi
call fcn.0044c423
mov ecx, dword [ebp - 0x1fc]
lea eax, [ebp - 0xbc]
push str.specificversion
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0xdd
mov edx, 0x4b65d4
add edi, 0x434
mov ecx, edx
cmp dword [eax + 0x10], 0
mov esi, edx
cmovne ecx, dword [eax + 0x10]
test ecx, ecx
cmovne esi, ecx
push esi
call fcn.00473ca3
pop ecx
push eax
push esi
lea ecx, [edi + 4]
call fcn.00408130
mov byte [ebp - 4], 0xd4
lea ecx, [ebp - 0xbc]
call fcn.00419e91
push ebx
push 0
push edi
mov edi, dword [ebp - 0x200]
mov ecx, edi
call fcn.0044c423
mov ecx, dword [ebp - 0x1fc]
lea eax, [ebp - 0x5c]
push str.parameters
push eax
call fcn.00465e2c
mov byte [ebp - 4], 0xde
mov edx, 0x4b65d4
cmp dword [eax + 0x10], 0
lea esi, [edi + 0x464]
mov ecx, edx
cmovne ecx, dword [eax + 0x10]
test ecx, ecx
cmovne edx, ecx
push edx
mov dword [ebp - 0x200], edx
call fcn.00473ca3
mov edx, dword [ebp - 0x200]
pop ecx
push eax
push edx
lea ecx, [esi + 4]
call fcn.00408130
mov byte [ebp - 4], 0xd4
lea ecx, [ebp - 0x5c]
call fcn.00419e91
push ebx
push 0
push esi
mov ecx, edi
call fcn.0044c423
cmp byte [edi + 0x4cc], 0
je 0x454af7
mov ecx, edi
call fcn.0044d8ad
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x40]
call fcn.00404cc0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
call fcn.00419e91
call fcn.00459b34
ret 0x20