Function at 0x41b78c
Capabilities:
Query environment variable

Disassembly:
push 0x204
mov eax, 0x49e64a
call fcn.00453742
mov eax, ecx
mov dword [ebp - 0x210], eax
xor ebx, ebx
mov dword [ebp - 0x208], ebx
mov dword [ebp - 0x1f8], ebx
call fcn.0040f919
mov esi, eax
push 1
lea eax, [ebp - 0x1f1]
push eax
push 0x4ee640
lea ecx, [ebp - 0xa0]
mov dword [ebp - 0x20c], esi
call fcn.00402ca0
mov dword [ebp - 4], ebx
add eax, 4
cmp dword [eax + 0x14], 8
jb 0x41b7e5
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x200]
push str.Reading_setup.ini_from__s
push eax
mov dword [ebp - 0x200], str.diskaction.cpp
mov dword [ebp - 0x1fc], 0xd7
call fcn.004192e5
add esp, 0xc
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa0]
call fcn.00401ac0
cmp word [0x4ee640], 0
jne 0x41b82b
mov eax, ebx
jmp 0x41b836
push 0x4ee640
call fcn.00453664
pop ecx
push eax
push 0x4ee640
lea ecx, [esi + 0x18]
call fcn.00414ceb
lea ecx, [esi + 0x10]
call fcn.00414f8c
lea ecx, [esi + 0x10]
call fcn.00412f63
xor edi, edi
inc edi
push edi
lea eax, [ebp - 0x1f1]
push eax
push 0x4c8c5c
lea ecx, [ebp - 0x40]
call fcn.00402ca0
mov dword [ebp - 4], 2
push edi
lea eax, [ebp - 0x1f1]
push eax
push str.PackageName
lea ecx, [ebp - 0x70]
call fcn.00402ca0
mov byte [ebp - 4], 3
push edi
lea eax, [ebp - 0x1f1]
push eax
push str.Startup
lea ecx, [ebp - 0xd0]
call fcn.00402ca0
mov byte [ebp - 4], 4
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0xd0]
push eax
push 5
mov ecx, esi
call fcn.0041c3ef
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xd0]
call fcn.00401ac0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x70]
call fcn.00401ac0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x40]
call fcn.00401ac0
push 5
mov ecx, esi
call fcn.00419ea5
test al, al
jne 0x41b95b
push edi
lea eax, [ebp - 0x1f1]
push eax
push str.PackageName
lea ecx, [ebp - 0xa0]
call fcn.00402ca0
push 8
pop ecx
mov dword [ebp - 4], ecx
add eax, 4
cmp dword [eax + 0x14], ecx
jb 0x41b91c
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x200]
push str.Failed_to_read_setup_package:__s_name_from_Setup.ini
push eax
mov dword [ebp - 0x200], str.diskaction.cpp
mov dword [ebp - 0x1fc], 0xe0
call fcn.004192e5
add esp, 0xc
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa0]
call fcn.00401ac0
xor eax, eax
jmp 0x41c35d
mov ecx, dword [ebp - 0x210]
call fcn.00419a84
test al, al
jne 0x41b993
lea eax, [ebp - 0x200]
push str.Failed_to_get_MSI_Engine_Version
push eax
mov dword [ebp - 0x200], str.diskaction.cpp
mov dword [ebp - 0x1fc], 0xe8
call fcn.004192e5
pop ecx
pop ecx
jmp 0x41b954
push edi
lea eax, [ebp - 0x1f1]
push eax
push str.DiskSpace
lea ecx, [ebp - 0x70]
call fcn.00402ca0
mov dword [ebp - 4], 0xa
push edi
lea eax, [ebp - 0x1f1]
push eax
push str.Info
lea ecx, [ebp - 0x40]
call fcn.00402ca0
mov byte [ebp - 4], 0xb
push 0xa
push 0x1f40
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x40]
push eax
mov ecx, esi
call fcn.00445127
mov dword [esi + 0x38], eax
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x40]
call fcn.00401ac0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x70]
call fcn.00401ac0
push edi
lea eax, [ebp - 0x1f1]
push eax
push str.OnUpgrade
lea ecx, [ebp - 0x70]
call fcn.00402ca0
mov dword [ebp - 4], 0xe
push edi
lea eax, [ebp - 0x1f1]
push eax
push str.Startup
lea ecx, [ebp - 0x40]
call fcn.00402ca0
mov byte [ebp - 4], 0xf
push 0xa
push edi
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x40]
push eax
mov ecx, esi
call fcn.00445127
mov edi, eax
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x40]
call fcn.00401ac0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x70]
call fcn.00401ac0
cmp edi, 1
jne 0x41ba89
mov eax, dword [esi + 0x260]
cmp byte [eax + 1], 0
jne 0x41ba76
cmp byte [eax + 2], 0
jne 0x41ba76
xor eax, eax
inc eax
jmp 0x41ba78
mov eax, ebx
test al, al
sete al
xor ecx, ecx
test al, al
setne cl
mov dword [esi + 0x30], ecx
jmp 0x41ba95
xor eax, eax
cmp edi, 2
setne al
inc eax
mov dword [esi + 0x30], eax
push 1
lea eax, [ebp - 0x1f1]
push eax
push 0x4c8c5c
lea ecx, [ebp - 0xd0]
call fcn.00402ca0
mov dword [ebp - 4], 0x12
xor edi, edi
inc edi
push edi
lea eax, [ebp - 0x1f1]
push eax
push str.ProductCode
lea ecx, [ebp - 0x70]
call fcn.00402ca0
mov byte [ebp - 4], 0x13
push edi
lea eax, [ebp - 0x1f1]
push eax
push str.Startup
lea ecx, [ebp - 0x40]
call fcn.00402ca0
mov byte [ebp - 4], 0x14
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x40]
push eax
push edi
mov ecx, esi
call fcn.0041c3ef
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x40]
call fcn.00401ac0
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x70]
call fcn.00401ac0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xd0]
call fcn.00401ac0
push edi
lea eax, [ebp - 0x1f1]
push eax
push 0x4c8c5c
lea ecx, [ebp - 0xd0]
call fcn.00402ca0
mov dword [ebp - 4], 0x18
push edi
lea eax, [ebp - 0x1f1]
push eax
push str.PackageCode
lea ecx, [ebp - 0x70]
call fcn.00402ca0
mov byte [ebp - 4], 0x19
push edi
lea eax, [ebp - 0x1f1]
push eax
push str.Startup
lea ecx, [ebp - 0x40]
call fcn.00402ca0
mov byte [ebp - 4], 0x1a
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x40]
push eax
push 2
mov ecx, esi
call fcn.0041c3ef
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x40]
call fcn.00401ac0
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x70]
call fcn.00401ac0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xd0]
call fcn.00401ac0
push edi
lea eax, [ebp - 0x1f1]
push eax
push 0x4c8c5c
lea ecx, [ebp - 0xd0]
call fcn.00402ca0
mov dword [ebp - 4], 0x1e
push edi
lea eax, [ebp - 0x1f1]
push eax
push str.UpgradeCode
lea ecx, [ebp - 0x70]
call fcn.00402ca0
mov byte [ebp - 4], 0x1f
push edi
lea eax, [ebp - 0x1f1]
push eax
push str.Startup
lea ecx, [ebp - 0x40]
call fcn.00402ca0
mov byte [ebp - 4], 0x20
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x40]
push eax
push 0x14
mov ecx, esi
call fcn.0041c3ef
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0x40]
call fcn.00401ac0
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x70]
call fcn.00401ac0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xd0]
call fcn.00401ac0
push edi
lea eax, [ebp - 0x1f1]
push eax
push 0x4c8c5c
lea ecx, [ebp - 0xd0]
call fcn.00402ca0
mov dword [ebp - 4], 0x24
push edi
lea eax, [ebp - 0x1f1]
push eax
push 0x4b3a08
lea ecx, [ebp - 0x70]
call fcn.00402ca0
mov byte [ebp - 4], 0x25
push edi
lea eax, [ebp - 0x1f1]
push eax
push str.Startup
lea ecx, [ebp - 0x40]
call fcn.00402ca0
mov byte [ebp - 4], 0x26
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x40]
push eax
push 3
mov ecx, esi
call fcn.0041c3ef
mov byte [ebp - 4], 0x25
lea ecx, [ebp - 0x40]
call fcn.00401ac0
mov byte [ebp - 4], 0x24
lea ecx, [ebp - 0x70]
call fcn.00401ac0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xd0]
call fcn.00401ac0
push 7
lea eax, [ebp - 0xa0]
push eax
mov ecx, esi
call fcn.00419d63
mov dword [ebp - 4], 0x2a
cmp dword [eax + 0x14], ebx
sete bl
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa0]
call fcn.00401b80
test bl, bl
je 0x41beae
push edi
lea eax, [ebp - 0x1f1]
push eax
push 0x4c8c5c
lea ecx, [ebp - 0xa0]
call fcn.00402ca0
mov dword [ebp - 4], 0x2c
push edi
lea eax, [ebp - 0x1f1]
push eax
push str.CmdLine
lea ecx, [ebp - 0x70]
call fcn.00402ca0
mov byte [ebp - 4], 0x2d
push edi
lea eax, [ebp - 0x1f1]
push eax
push str.Startup
lea ecx, [ebp - 0x40]
call fcn.00402ca0
mov byte [ebp - 4], 0x2e
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x40]
push eax
push 7
mov ecx, esi
call fcn.0041c3ef
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x40]
call fcn.00401ac0
mov byte [ebp - 4], 0x2c
lea ecx, [ebp - 0x70]
call fcn.00401ac0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa0]
call fcn.00401ac0
xor ebx, ebx
push ebx
lea eax, [ebp - 0x1f1]
push eax
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd0], 0x4c8e80
mov dword [ebp - 0xa8], 0x4c8e20
call fcn.00403e30
mov dword [ebp - 4], 0x33
push 0x400
lea eax, [ebp - 0x204]
push eax
lea ecx, [ebp - 0xd0]
call fcn.00415f67
mov edi, eax
mov byte [ebp - 4], 0x34
push 7
lea eax, [ebp - 0xa0]
push eax
mov ecx, esi
call fcn.00419d63
mov esi, eax
mov byte [ebp - 4], 0x35
mov ecx, dword [edi]
mov byte [edi + 4], 1
call fcn.00415f0c
add esi, 4
cmp dword [esi + 0x14], 8
jb 0x41be15
mov esi, dword [esi]
push 0x400
push dword [eax]
push esi
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
mov byte [ebp - 4], 0x34
lea ecx, [ebp - 0xa0]
call fcn.00401b80
mov byte [ebp - 4], 0x33
lea ecx, [ebp - 0x204]
call fcn.00411bac
mov esi, dword [ebp - 0x20c]
push ebx
lea eax, [ebp - 0xd0]
push eax
push 7
mov ecx, esi
call fcn.0041c39c
cmp dword [esi + 0xc], 5
je 0x41be9d
push 7
lea eax, [ebp - 0xa0]
push eax
mov ecx, esi
call fcn.00419d63
mov byte [ebp - 4], 0x37
add eax, 4
cmp dword [eax + 0x14], 8
jb 0x41be7d
mov eax, dword [eax]
xor edi, edi
inc edi
push edi
push eax
push 0x4b40a4
mov ecx, esi
call fcn.00442b58
mov byte [ebp - 4], 0x33
lea ecx, [ebp - 0xa0]
call fcn.00401b80
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xd0]
call fcn.00401b80
jmp 0x41beb0
xor ebx, ebx
push 1
lea eax, [ebp - 0x1f1]
push eax
push 0x4b40ac
lea ecx, [ebp - 0x70]
call fcn.00402ca0
mov dword [ebp - 4], 0x3a
push 1
lea eax, [ebp - 0x1f1]
push eax
push str.BillboardType
lea ecx, [ebp - 0x40]
call fcn.00402ca0
mov byte [ebp - 4], 0x3b
push 1
lea eax, [ebp - 0x1f1]
push eax
push str.Startup
lea ecx, [ebp - 0xa0]
call fcn.00402ca0
mov byte [ebp - 4], 0x3c
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0xa0]
push eax
push 0x13
mov ecx, esi
call fcn.0041c3ef
mov byte [ebp - 4], 0x3b
lea ecx, [ebp - 0xa0]
call fcn.00401ac0
mov byte [ebp - 4], 0x3a
lea ecx, [ebp - 0x40]
call fcn.00401ac0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x70]
call fcn.00401ac0
cmp dword [esi + 0xc], 0
jne 0x41bfb6
push 1
lea eax, [ebp - 0x1f1]
push eax
push str.Mode
lea ecx, [ebp - 0x40]
call fcn.00402ca0
mov dword [ebp - 4], 0x40
push 1
lea eax, [ebp - 0x1f1]
push eax
push str.Startup
lea ecx, [ebp - 0xa0]
call fcn.00402ca0
mov byte [ebp - 4], 0x41
push 0xa
push ebx
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0xa0]
push eax
mov ecx, esi
call fcn.00445127
mov dword [esi + 0xc], eax
mov byte [ebp - 4], 0x40
lea ecx, [ebp - 0xa0]
call fcn.00401ac0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x40]
call fcn.00401ac0
push 1
lea eax, [ebp - 0x1f1]
push eax
push 0x4c8c5c
lea ecx, [ebp - 0x70]
call fcn.00402ca0
mov dword [ebp - 4], 0x44
push 1
lea eax, [ebp - 0x1f1]
push eax
push 0x4b40b0
lea ecx, [ebp - 0x40]
call fcn.00402ca0
mov byte [ebp - 4], 0x45
push 1
lea eax, [ebp - 0x1f1]
push eax
push str.Startup
lea ecx, [ebp - 0xa0]
call fcn.00402ca0
mov byte [ebp - 4], 0x46
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0xa0]
push eax
push 0xd
mov ecx, esi
call fcn.0041c3ef
mov byte [ebp - 4], 0x45
lea ecx, [ebp - 0xa0]
call fcn.00401ac0
mov byte [ebp - 4], 0x44
lea ecx, [ebp - 0x40]
call fcn.00401ac0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x70]
call fcn.00401ac0
push 0xd
lea eax, [ebp - 0x100]
push eax
mov ecx, esi
call fcn.00419d63
mov dword [ebp - 4], 0x4a
cmp dword [ebp - 0xec], 3
jbe 0x41c34b
push 1
lea eax, [ebp - 0x1f1]
push eax
push 0x4b40cc
lea ecx, [ebp - 0x1f0]
call fcn.004115c6
mov byte [ebp - 4], 0x4b
push dword [ebp - 0x1dc]
cmp dword [ebp - 0x1d8], 8
lea eax, [ebp - 0x1ec]
cmovae eax, dword [ebp - 0x1ec]
push ebx
push eax
lea ecx, [ebp - 0xfc]
call fcn.00415c3a
mov ebx, eax
neg ebx
sbb bl, bl
mov byte [ebp - 4], 0x4a
lea ecx, [ebp - 0x1f0]
call fcn.00401b80
inc bl
je 0x41c0d3
mov byte [esi + 0x44], 1
jmp 0x41c2e0
push 1
lea eax, [ebp - 0x1f1]
push eax
push 0x4b40d4
lea ecx, [ebp - 0x160]
call fcn.004115c6
mov byte [ebp - 4], 0x4d
xor ebx, ebx
inc ebx
mov dword [ebp - 0x1f8], ebx
cmp dword [ebp - 0x148], 8
push dword [ebp - 0x14c]
lea eax, [ebp - 0x15c]
cmovae eax, dword [ebp - 0x15c]
xor edi, edi
push edi
push eax
lea ecx, [ebp - 0xfc]
call fcn.00415c3a
test eax, eax
je 0x41c182
push ebx
lea eax, [ebp - 0x1f1]
push eax
push str.v1.1
lea ecx, [ebp - 0x130]
call fcn.004115c6
mov dword [ebp - 4], 0x4e
push 3
pop ebx
mov dword [ebp - 0x1f8], ebx
push dword [ebp - 0x11c]
cmp dword [ebp - 0x118], 8
lea eax, [ebp - 0x12c]
cmovae eax, dword [ebp - 0x12c]
push edi
push eax
lea ecx, [ebp - 0xfc]
call fcn.00415c3a
test eax, eax
je 0x41c182
mov byte [ebp - 0x1f1], 0
jmp 0x41c189
mov byte [ebp - 0x1f1], 1
push 0x4d
pop eax
mov dword [ebp - 4], eax
test bl, 2
je 0x41c1ab
and ebx, 0xfffffffd
mov dword [ebp - 0x1f8], ebx
mov dword [ebp - 4], eax
lea ecx, [ebp - 0x130]
call fcn.00401b80
mov dword [ebp - 4], 0x4a
test bl, 1
je 0x41c1cf
and ebx, 0xfffffffe
mov dword [ebp - 0x1f8], ebx
mov byte [ebp - 4], 0x4a
lea ecx, [ebp - 0x160]
call fcn.00401b80
cmp byte [ebp - 0x1f1], 0
je 0x41c1e1
mov byte [esi + 0x45], 1
jmp 0x41c2e0
push 1
lea eax, [ebp - 0x1f1]
push eax
push 0x4b40e8
lea ecx, [ebp - 0x1c0]
call fcn.004115c6
mov byte [ebp - 4], 0x51
or ebx, 4
mov dword [ebp - 0x1f8], ebx
push dword [ebp - 0x1ac]
cmp dword [ebp - 0x1a8], 8
lea eax, [ebp - 0x1bc]
cmovae eax, dword [ebp - 0x1bc]
push edi
push eax
lea ecx, [ebp - 0xfc]
call fcn.00415c3a
test eax, eax
je 0x41c286
push 1
lea eax, [ebp - 0x1f1]
push eax
push str.v2.0
lea ecx, [ebp - 0x190]
call fcn.004115c6
mov dword [ebp - 4], 0x52
or ebx, 8
mov dword [ebp - 0x1f8], ebx
push dword [ebp - 0x17c]
cmp dword [ebp - 0x178], 8
lea eax, [ebp - 0x18c]
cmovae eax, dword [ebp - 0x18c]
push edi
push eax
lea ecx, [ebp - 0xfc]
call fcn.00415c3a
test eax, eax
jne 0x41c28d
mov byte [ebp - 0x208], 1
push 0x51
pop eax
mov dword [ebp - 4], eax
test bl, 8
je 0x41c2af
and ebx, 0xfffffff7
mov dword [ebp - 0x1f8], ebx
mov dword [ebp - 4], eax
lea ecx, [ebp - 0x190]
call fcn.00401b80
mov dword [ebp - 4], 0x4a
test bl, 4
je 0x41c2d3
and ebx, 0xfffffffb
mov dword [ebp - 0x1f8], ebx
mov byte [ebp - 4], 0x4a
lea ecx, [ebp - 0x1c0]
call fcn.00401b80
cmp byte [ebp - 0x208], 0
je 0x41c2e0
mov byte [esi + 0x46], 1
push 1
lea eax, [ebp - 0x1f1]
push eax
push str.DotNetSPRequired
lea ecx, [ebp - 0x40]
call fcn.00402ca0
mov byte [ebp - 4], 0x55
push 1
lea eax, [ebp - 0x1f1]
push eax
push str.Startup
lea ecx, [ebp - 0xa0]
call fcn.00402ca0
mov byte [ebp - 4], 0x56
push 0xa
push 0xffffffffffffffff
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0xa0]
push eax
mov ecx, esi
call fcn.00445127
mov dword [esi + 0x48], eax
mov byte [ebp - 4], 0x55
lea ecx, [ebp - 0xa0]
call fcn.00401ac0
mov byte [ebp - 4], 0x4a
lea ecx, [ebp - 0x40]
call fcn.00401ac0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x100]
call fcn.00401b80
xor eax, eax
inc eax
call fcn.004536f1
ret