Function at 0x4072f3
Capabilities:
Contain obfuscated stackstrings
Query environment variable

Disassembly:
mov eax, 0x4754d7
call fcn.004461a8
sub esp, 0x1dc
push ebx
push esi
push edi
mov dword [ebp - 0xa4], ecx
call fcn.0040104a
mov dword [ebp - 0x14], eax
mov eax, 0x49f5e0
mov edi, 0x47e5a0
mov esi, 0x47e598
test eax, eax
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x20], esi
mov ebx, 0x49cc4c
jne 0x407334
mov eax, ebx
lea ecx, [ebp - 0xd]
push 0
push ecx
push eax
lea ecx, [ebp - 0x40]
call fcn.00408d43
mov eax, dword [ebp - 0x38]
and dword [ebp - 4], 0
test eax, eax
mov dword [ebp - 0x44], 0x47e5b8
je 0x407358
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x16]
push 1
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetupdiskaction.cpp
lea ecx, [ebp - 0x148]
call fcn.00401764
mov eax, dword [eax + 8]
mov byte [ebp - 4], 1
test eax, eax
jne 0x40737e
mov eax, 0x47e5b8
push dword [ebp - 0x44]
mov dword [ebp - 0x74], eax
lea eax, [ebp - 0x74]
mov dword [ebp - 0x70], 0xce
push str.Reading_setup.ini_from__s
push eax
call fcn.00408437
and byte [ebp - 4], 0
add esp, 0xc
lea ecx, [ebp - 0x148]
call fcn.00401bc7
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x40]
call fcn.00401bc7
mov eax, dword [ebp - 0x14]
push 0x49f5e0
lea ecx, [eax + 0x28]
call fcn.004025b1
lea eax, [ebp - 0x16]
push 0
push eax
push ebx
lea ecx, [ebp - 0xf8]
mov dword [ebp - 0xf8], edi
mov dword [ebp - 0xd8], esi
call fcn.00408d43
mov eax, dword [str.Product]
mov dword [ebp - 4], 2
test eax, eax
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x4c], esi
jne 0x4073fd
mov eax, ebx
lea ecx, [ebp - 0xd]
push 0
push ecx
push eax
lea ecx, [ebp - 0x6c]
call fcn.00408d43
mov eax, dword [str.Startup]
mov byte [ebp - 4], 3
test eax, eax
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x20], esi
jne 0x407421
mov eax, ebx
lea ecx, [ebp - 0x15]
push 0
push ecx
push eax
lea ecx, [ebp - 0x40]
call fcn.00408d43
lea eax, [ebp - 0xf8]
mov ecx, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x40]
push eax
push 5
mov byte [ebp - 4], 4
call fcn.004083ce
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 3
call fcn.00401bc7
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 2
call fcn.00401bc7
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xf8]
call fcn.00401bc7
lea eax, [ebp - 0x15]
push 0
push eax
push ebx
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x4c], esi
call fcn.00408d43
mov eax, dword [str.PackageName]
mov dword [ebp - 4], 5
test eax, eax
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x20], esi
jne 0x4074a1
mov eax, ebx
lea ecx, [ebp - 0x16]
push 0
push ecx
push eax
lea ecx, [ebp - 0x40]
call fcn.00408d43
mov eax, dword [str.Startup]
mov byte [ebp - 4], 6
test eax, eax
mov dword [ebp - 0xf8], edi
mov dword [ebp - 0xd8], esi
jne 0x4074cb
mov eax, ebx
lea ecx, [ebp - 0xd]
push 0
push ecx
push eax
lea ecx, [ebp - 0xf8]
call fcn.00408d43
lea eax, [ebp - 0x6c]
mov ecx, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0xf8]
push eax
push 6
mov byte [ebp - 4], 7
call fcn.004083ce
lea ecx, [ebp - 0xf8]
mov byte [ebp - 4], 6
call fcn.00401bc7
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 5
call fcn.00401bc7
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x6c]
call fcn.00401bc7
mov ecx, dword [ebp - 0x14]
push 6
call fcn.00408306
test al, al
jne 0x4075cf
mov eax, dword [str.PackageName]
mov dword [ebp - 0xf8], edi
test eax, eax
mov dword [ebp - 0xd8], esi
jne 0x40754a
mov eax, ebx
lea ecx, [ebp - 0x15]
push 0
push ecx
push eax
lea ecx, [ebp - 0xf8]
call fcn.00408d43
mov esi, dword [ebp - 0xf0]
mov dword [ebp - 4], 8
test esi, esi
jne 0x407572
mov esi, 0x47e5b8
lea eax, [ebp - 0x16]
push 1
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetupdiskaction.cpp
lea ecx, [ebp - 0x148]
call fcn.00401764
mov eax, dword [eax + 8]
mov byte [ebp - 4], 9
test eax, eax
jne 0x407598
mov eax, 0x47e5b8
mov dword [ebp - 0x74], eax
push esi
lea eax, [ebp - 0x74]
push str.Failed_to_read_setup_package:__s_name_from_Setup.ini
push eax
mov dword [ebp - 0x70], 0xde
call fcn.00408437
add esp, 0xc
lea ecx, [ebp - 0x148]
mov byte [ebp - 4], 8
call fcn.00401bc7
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xf8]
jmp 0x40762b
mov ecx, dword [ebp - 0xa4]
call fcn.004084fe
test al, al
jne 0x407637
lea eax, [ebp - 0x15]
push 1
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetupdiskaction.cpp
lea ecx, [ebp - 0x148]
call fcn.00401764
mov eax, dword [eax + 8]
mov dword [ebp - 4], 0xa
test eax, eax
jne 0x407607
mov eax, 0x47e5b8
mov dword [ebp - 0x74], eax
lea eax, [ebp - 0x74]
push str.Failed_to_get_MSI_Engine_Version
push eax
mov dword [ebp - 0x70], 0xe6
call fcn.00408437
or dword [ebp - 4], 0xffffffff
pop ecx
pop ecx
lea ecx, [ebp - 0x148]
call fcn.00401bc7
xor eax, eax
jmp 0x40829f
lea eax, [ebp - 0x15]
push 0
push eax
push ebx
lea ecx, [ebp - 0x148]
mov dword [ebp - 0x148], edi
mov dword [ebp - 0x128], esi
call fcn.00408d43
mov eax, dword [str.EnableLangDlg]
mov dword [ebp - 4], 0xb
test eax, eax
mov dword [ebp - 0x198], edi
mov dword [ebp - 0x178], esi
jne 0x407673
mov eax, ebx
lea ecx, [ebp - 0x16]
push 0
push ecx
push eax
lea ecx, [ebp - 0x198]
call fcn.00408d43
mov eax, dword [str.Startup]
mov byte [ebp - 4], 0xc
test eax, eax
mov dword [ebp - 0xf8], edi
mov dword [ebp - 0xd8], esi
jne 0x4076a0
mov eax, ebx
lea ecx, [ebp - 0xa5]
push 0
push ecx
push eax
lea ecx, [ebp - 0xf8]
call fcn.00408d43
lea eax, [ebp - 0x148]
mov ecx, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x198]
push eax
lea eax, [ebp - 0xf8]
push eax
lea eax, [ebp - 0x1e8]
push eax
mov byte [ebp - 4], 0xd
call fcn.00432d7f
lea ecx, [ebp - 0x1c0]
mov byte [ebp - 4], 0xe
push ecx
mov ecx, eax
call fcn.004087d0
lea ecx, [ebp - 0x1e8]
mov byte [ebp - 4], 0x13
call fcn.00401bc7
lea ecx, [ebp - 0xf8]
mov byte [ebp - 4], 0x12
call fcn.00401bc7
lea ecx, [ebp - 0x198]
mov byte [ebp - 4], 0x11
call fcn.00401bc7
lea ecx, [ebp - 0x148]
mov byte [ebp - 4], 0x10
call fcn.00401bc7
cmp dword [ebp - 0x1b4], 0
jne 0x40778a
lea eax, [ebp - 0xd]
push 1
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetupdiskaction.cpp
lea ecx, [ebp - 0x120]
call fcn.00401764
mov eax, dword [eax + 8]
mov byte [ebp - 4], 0x14
test eax, eax
jne 0x40775a
mov eax, 0x47e5b8
mov dword [ebp - 0x74], eax
lea eax, [ebp - 0x74]
push 0x49241c
push eax
mov dword [ebp - 0x70], 0xef
call fcn.00408437
pop ecx
mov byte [ebp - 4], 0x10
pop ecx
lea ecx, [ebp - 0x120]
call fcn.00401bc7
xor esi, esi
jmp 0x40828e
mov ecx, dword [ebp - 0x14]
xor eax, eax
mov dword [ecx + 0x50], eax
cmp dword [0x4a1c14], eax
jne 0x4077cc
cmp dword [0x4a1c10], eax
jne 0x4077cc
lea ecx, [ebp - 0x1c0]
lea eax, [ebp - 0x1bc]
neg ecx
sbb ecx, ecx
push 0x492418
and ecx, eax
call fcn.00409bdd
test eax, eax
jne 0x4077cc
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x50], 1
mov eax, dword [str.DiskSpace]
mov dword [ebp - 0x6c], edi
test eax, eax
mov dword [ebp - 0x4c], esi
jne 0x4077dd
mov eax, ebx
lea ecx, [ebp - 0xd]
push 0
push ecx
push eax
lea ecx, [ebp - 0x6c]
call fcn.00408d43
mov eax, dword [str.Info]
mov byte [ebp - 4], 0x15
test eax, eax
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x20], esi
jne 0x407801
mov eax, ebx
lea ecx, [ebp - 0xf]
push 0
push ecx
push eax
lea ecx, [ebp - 0x40]
call fcn.00408d43
mov ecx, dword [ebp - 0x14]
push 0xa
lea eax, [ebp - 0x6c]
push 0x1f40
push eax
lea eax, [ebp - 0x40]
push eax
mov byte [ebp - 4], 0x16
call fcn.00432f11
mov ecx, dword [ebp - 0x14]
mov byte [ebp - 4], 0x15
mov dword [ecx + 0x58], eax
lea ecx, [ebp - 0x40]
call fcn.00401bc7
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x10
call fcn.00401bc7
mov eax, dword [str.OnUpgrade]
mov dword [ebp - 0x6c], edi
test eax, eax
mov dword [ebp - 0x4c], esi
jne 0x40785a
mov eax, ebx
lea ecx, [ebp - 0xf]
push 0
push ecx
push eax
lea ecx, [ebp - 0x6c]
call fcn.00408d43
mov eax, dword [str.Startup]
mov byte [ebp - 4], 0x17
test eax, eax
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x20], esi
jne 0x40787e
mov eax, ebx
lea ecx, [ebp - 0xd]
push 0
push ecx
push eax
lea ecx, [ebp - 0x40]
call fcn.00408d43
mov ecx, dword [ebp - 0x14]
push 0xa
lea eax, [ebp - 0x6c]
push 1
push eax
lea eax, [ebp - 0x40]
push eax
mov byte [ebp - 4], 0x18
call fcn.00432f11
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x44], eax
mov byte [ebp - 4], 0x17
call fcn.00401bc7
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x10
call fcn.00401bc7
cmp dword [ebp - 0x44], 1
jne 0x4078e4
xor eax, eax
cmp dword [0x4a1c14], eax
jne 0x4078d8
cmp dword [0x4a1c10], eax
je 0x4078ec
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x48], 1
jmp 0x4078f2
push 2
pop eax
cmp dword [ebp - 0x44], eax
je 0x4078d8
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0x48], eax
lea eax, [ebp - 0xf]
push 0
push eax
push ebx
lea ecx, [ebp - 0xa0]
mov dword [ebp - 0xa0], edi
mov dword [ebp - 0x80], esi
call fcn.00408d43
mov eax, dword [str.ProductCode]
mov byte [ebp - 4], 0x19
test eax, eax
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x4c], esi
jne 0x407922
mov eax, ebx
lea ecx, [ebp - 0xd]
push 0
push ecx
push eax
lea ecx, [ebp - 0x6c]
call fcn.00408d43
mov eax, dword [str.Startup]
mov byte [ebp - 4], 0x1a
test eax, eax
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x20], esi
jne 0x407946
mov eax, ebx
lea ecx, [ebp - 0xe]
push 0
push ecx
push eax
lea ecx, [ebp - 0x40]
call fcn.00408d43
lea eax, [ebp - 0xa0]
mov ecx, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x40]
push eax
push 1
mov byte [ebp - 4], 0x1b
call fcn.004083ce
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x1a
call fcn.00401bc7
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x19
call fcn.00401bc7
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0x10
call fcn.00401bc7
lea eax, [ebp - 0xe]
push 0
push eax
push ebx
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x4c], esi
call fcn.00408d43
mov eax, dword [str.PackageCode]
mov byte [ebp - 4], 0x1c
test eax, eax
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x20], esi
jne 0x4079c3
mov eax, ebx
lea ecx, [ebp - 0xf]
push 0
push ecx
push eax
lea ecx, [ebp - 0x40]
call fcn.00408d43
mov eax, dword [str.Startup]
mov byte [ebp - 4], 0x1d
test eax, eax
mov dword [ebp - 0xa0], edi
mov dword [ebp - 0x80], esi
jne 0x4079ea
mov eax, ebx
lea ecx, [ebp - 0xd]
push 0
push ecx
push eax
lea ecx, [ebp - 0xa0]
call fcn.00408d43
lea eax, [ebp - 0x6c]
mov ecx, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0xa0]
push eax
push 2
mov byte [ebp - 4], 0x1e
call fcn.004083ce
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0x1d
call fcn.00401bc7
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x1c
call fcn.00401bc7
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x10
call fcn.00401bc7
lea eax, [ebp - 0xe]
push 0
push eax
push ebx
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x4c], esi
call fcn.00408d43
mov eax, dword [0x47e640]
mov byte [ebp - 4], 0x1f
test eax, eax
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x20], esi
jne 0x407a6a
mov eax, ebx
lea ecx, [ebp - 0xf]
push 0
push ecx
push eax
lea ecx, [ebp - 0x40]
call fcn.00408d43
mov eax, dword [str.Startup]
mov byte [ebp - 4], 0x20
test eax, eax
mov dword [ebp - 0xa0], edi
mov dword [ebp - 0x80], esi
jne 0x407a91
mov eax, ebx
lea ecx, [ebp - 0xd]
push 0
push ecx
push eax
lea ecx, [ebp - 0xa0]
call fcn.00408d43
lea eax, [ebp - 0x6c]
mov ecx, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0xa0]
push eax
push 3
mov byte [ebp - 4], 0x21
call fcn.004083ce
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0x20
call fcn.00401bc7
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x1f
call fcn.00401bc7
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x10
call fcn.00401bc7
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x120]
push 8
push eax
call fcn.0040832b
cmp dword [eax + 0xc], 0
lea ecx, [ebp - 0x120]
sete byte [ebp - 0xd]
call fcn.00401f6c
cmp byte [ebp - 0xd], 0
je 0x407cbe
lea eax, [ebp - 0xe]
push 0
push eax
push ebx
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd0], edi
mov dword [ebp - 0xb0], esi
call fcn.00408d43
mov eax, dword [str.CmdLine]
mov byte [ebp - 4], 0x22
test eax, eax
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x20], esi
jne 0x407b48
mov eax, ebx
lea ecx, [ebp - 0xf]
push 0
push ecx
push eax
lea ecx, [ebp - 0x40]
call fcn.00408d43
mov eax, dword [str.Startup]
mov byte [ebp - 4], 0x23
test eax, eax
mov dword [ebp - 0xa0], edi
mov dword [ebp - 0x80], esi
jne 0x407b6f
mov eax, ebx
lea ecx, [ebp - 0xd]
push 0
push ecx
push eax
lea ecx, [ebp - 0xa0]
call fcn.00408d43
lea eax, [ebp - 0xd0]
mov ecx, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0xa0]
push eax
push 8
mov byte [ebp - 4], 0x24
call fcn.004083ce
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0x23
call fcn.00401bc7
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x22
call fcn.00401bc7
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 0x10
call fcn.00401bc7
lea eax, [ebp - 0xe]
push 0
push eax
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x6c], 0x47e5e0
mov dword [ebp - 0x4c], 0x47e5d8
call fcn.004029f5
lea eax, [ebp - 0x78]
push 0x400
push eax
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x25
call fcn.004023dd
mov ecx, dword [eax]
mov byte [ebp - 4], 0x26
mov byte [eax + 4], 1
call fcn.00402a6a
mov eax, dword [eax]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0xa4], eax
lea eax, [ebp - 0x120]
push 8
push eax
call fcn.0040832b
mov eax, dword [eax + 8]
test eax, eax
jne 0x407c30
mov eax, 0x47e608
push 0x400
push dword [ebp - 0xa4]
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
lea ecx, [ebp - 0x120]
call fcn.00401f6c
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0x25
call fcn.004024ef
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x6c]
push 0
push eax
push 8
call fcn.004082ae
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x24], 5
je 0x407cb2
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x120]
push 8
push eax
call fcn.0040832b
mov eax, dword [eax + 8]
mov byte [ebp - 4], 0x27
test eax, eax
jne 0x407c93
mov eax, 0x47e608
mov ecx, dword [ebp - 0x14]
push 1
push eax
push 0x492410
call fcn.0043201b
lea ecx, [ebp - 0x120]
mov byte [ebp - 4], 0x25
call fcn.00401f6c
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x10
call fcn.00401f6c
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x24], 0
jne 0x407d60
mov eax, dword [str.Mode]
mov dword [ebp - 0xa0], edi
test eax, eax
mov dword [ebp - 0x80], esi
jne 0x407cdf
mov eax, ebx
lea ecx, [ebp - 0xe]
push 0
push ecx
push eax
lea ecx, [ebp - 0xa0]
call fcn.00408d43
mov eax, dword [str.Startup]
mov byte [ebp - 4], 0x28
test eax, eax
mov dword [ebp - 0xd0], edi
mov dword [ebp - 0xb0], esi
jne 0x407d0c
mov eax, ebx
lea ecx, [ebp - 0xf]
push 0
push ecx
push eax
lea ecx, [ebp - 0xd0]
call fcn.00408d43
mov ecx, dword [ebp - 0x14]
push 0xa
lea eax, [ebp - 0xa0]
push 0
push eax
lea eax, [ebp - 0xd0]
push eax
mov byte [ebp - 4], 0x29
call fcn.00432f11
mov ecx, dword [ebp - 0x14]
mov byte [ebp - 4], 0x28
mov dword [ecx + 0x24], eax
lea ecx, [ebp - 0xd0]
call fcn.00401bc7
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0x10
call fcn.00401bc7
lea eax, [ebp - 0xe]
push 0
push eax
push ebx
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x20], esi
call fcn.00408d43
mov eax, dword [str.RequireExactLangMatch]
mov byte [ebp - 4], 0x2a
test eax, eax
mov dword [ebp - 0xa0], edi
mov dword [ebp - 0x80], esi
jne 0x407d8d
mov eax, ebx
lea ecx, [ebp - 0xf]
push 0
push ecx
push eax
lea ecx, [ebp - 0xa0]
call fcn.00408d43
mov eax, dword [str.Startup]
mov byte [ebp - 4], 0x2b
test eax, eax
mov dword [ebp - 0xd0], edi
mov dword [ebp - 0xb0], esi
jne 0x407dba
mov eax, ebx
lea ecx, [ebp - 0xd]
push 0
push ecx
push eax
lea ecx, [ebp - 0xd0]
call fcn.00408d43
lea eax, [ebp - 0x40]
mov ecx, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0xd0]
push eax
push 0xe
mov byte [ebp - 4], 0x2c
call fcn.004083ce
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 0x2b
call fcn.00401bc7
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0x2a
call fcn.00401bc7
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x10
call fcn.00401bc7
lea eax, [ebp - 0xe]
push 0
push eax
push ebx
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x20], esi
call fcn.00408d43
mov eax, str.DotNetVersion
mov byte [ebp - 4], 0x2d
mov ecx, eax
mov dword [ebp - 0xa0], edi
test ecx, ecx
mov dword [ebp - 0x80], esi
jne 0x407e45
mov eax, ebx
lea ecx, [ebp - 0xf]
push 0
push ecx
push eax
lea ecx, [ebp - 0xa0]
call fcn.00408d43
mov eax, dword [str.Startup]
mov byte [ebp - 4], 0x2e
test eax, eax
mov dword [ebp - 0xd0], edi
mov dword [ebp - 0xb0], esi
jne 0x407e72
mov eax, ebx
lea ecx, [ebp - 0xd]
push 0
push ecx
push eax
lea ecx, [ebp - 0xd0]
call fcn.00408d43
lea eax, [ebp - 0x40]
mov ecx, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0xd0]
push eax
push 0xf
mov byte [ebp - 4], 0x2f
call fcn.004083ce
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 0x2e
call fcn.00401bc7
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0x2d
call fcn.00401bc7
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x10
call fcn.00401bc7
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x170]
push 0xf
push eax
call fcn.0040832b
cmp dword [ebp - 0x164], 3
mov byte [ebp - 4], 0x30
jbe 0x408158
mov eax, 0x4923ec
mov edi, 0x47e5e0
mov ecx, eax
mov esi, 0x47e5d8
test ecx, ecx
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x4c], esi
jne 0x407f0d
mov eax, ebx
lea ecx, [ebp - 0xe]
push 0
push ecx
push eax
lea ecx, [ebp - 0x6c]
call fcn.00403c0d
lea eax, [ebp - 0x6c]
lea ecx, [ebp - 0x68]
neg eax
sbb eax, eax
push 0
and eax, ecx
lea ecx, [ebp - 0x16c]
push eax
mov byte [ebp - 4], 0x31
call fcn.004095f0
neg eax
sbb al, al
lea ecx, [ebp - 0x6c]
inc al
mov byte [ebp - 4], 0x30
mov byte [ebp - 0xd], al
call fcn.00401f6c
cmp byte [ebp - 0xd], 0
je 0x407f61
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x68], 1
jmp 0x4080e6
mov eax, 0x4923e4
mov dword [ebp - 0x40], edi
mov ecx, eax
mov dword [ebp - 0x20], esi
test ecx, ecx
jne 0x407f74
mov eax, ebx
lea ecx, [ebp - 0xe]
push 0
push ecx
push eax
lea ecx, [ebp - 0x40]
call fcn.00403c0d
lea eax, [ebp - 0x40]
lea ecx, [ebp - 0x3c]
neg eax
sbb eax, eax
push 0
and eax, ecx
lea ecx, [ebp - 0x16c]
push eax
mov byte [ebp - 4], 0x32
call fcn.004095f0
test eax, eax
je 0x408006
mov eax, str.v1.1
mov dword [ebp - 0x6c], edi
mov ecx, eax
mov dword [ebp - 0x4c], esi
test ecx, ecx
jne 0x407fb8
mov eax, ebx
lea ecx, [ebp - 0xf]
push 0
push ecx
push eax
lea ecx, [ebp - 0x6c]
call fcn.00403c0d
lea eax, [ebp - 0x6c]
lea ecx, [ebp - 0x68]
neg eax
sbb eax, eax
push 0
and eax, ecx
lea ecx, [ebp - 0x16c]
push eax
mov byte [ebp - 4], 0x33
call fcn.004095f0
neg eax
sbb al, al
lea ecx, [ebp - 0x6c]
inc al
mov byte [ebp - 4], 0x32
mov byte [ebp - 0xd], al
call fcn.00401f6c
cmp byte [ebp - 0xd], 0
jne 0x408006
and byte [ebp - 0xd], 0
jmp 0x40800a
mov byte [ebp - 0xd], 1
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x30
call fcn.00401f6c
cmp byte [ebp - 0xd], 0
je 0x408028
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x69], 1
jmp 0x4080e6
mov eax, 0x4923d0
mov dword [ebp - 0x40], edi
mov ecx, eax
mov dword [ebp - 0x20], esi
test ecx, ecx
jne 0x40803b
mov eax, ebx
xor esi, esi
lea ecx, [ebp - 0xe]
push esi
push ecx
push eax
lea ecx, [ebp - 0x40]
call fcn.00403c0d
lea eax, [ebp - 0x40]
lea ecx, [ebp - 0x3c]
neg eax
sbb eax, eax
push esi
and eax, ecx
lea ecx, [ebp - 0x16c]
push eax
mov byte [ebp - 4], 0x34
call fcn.004095f0
test eax, eax
je 0x4080c9
lea eax, [ebp - 0xf]
push 1
push eax
push str.v2.0
lea ecx, [ebp - 0xd0]
call fcn.00408b60
lea eax, [ebp - 0xd0]
lea ecx, [ebp - 0xcc]
neg eax
sbb eax, eax
push esi
and eax, ecx
lea ecx, [ebp - 0x16c]
push eax
mov byte [ebp - 4], 0x35
call fcn.004095f0
neg eax
sbb al, al
lea ecx, [ebp - 0xd0]
inc al
mov byte [ebp - 4], 0x34
mov byte [ebp - 0xd], al
call fcn.00401f6c
cmp byte [ebp - 0xd], 0
jne 0x4080c9
and byte [ebp - 0xd], 0
jmp 0x4080cd
mov byte [ebp - 0xd], 1
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x30
call fcn.00401f6c
cmp byte [ebp - 0xd], 0
je 0x4080e6
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x6a], 1
lea eax, [ebp - 0xe]
push 1
push eax
push str.DotNetSPRequired
lea ecx, [ebp - 0xa0]
call fcn.00408798
lea eax, [ebp - 0xf]
push 1
push eax
lea ecx, [ebp - 0xd0]
push dword [0x47e60c]
mov byte [ebp - 4], 0x36
call fcn.00408798
mov esi, dword [ebp - 0x14]
push 0xa
lea eax, [ebp - 0xa0]
push 0xffffffffffffffff
push eax
lea eax, [ebp - 0xd0]
push eax
mov ecx, esi
mov byte [ebp - 4], 0x37
call fcn.00432f11
lea ecx, [ebp - 0xd0]
mov dword [esi + 0x6c], eax
mov byte [ebp - 4], 0x36
call fcn.00401bc7
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0x30
call fcn.00401bc7
push 1
lea eax, [ebp - 0xe]
pop esi
lea ecx, [ebp - 0x40]
push esi
push eax
push ebx
call fcn.00408798
lea eax, [ebp - 0xf]
push esi
push eax
lea ecx, [ebp - 0xa0]
push dword [0x47e644]
mov byte [ebp - 4], 0x38
call fcn.00408798
lea eax, [ebp - 0xd]
push esi
push eax
lea ecx, [ebp - 0xd0]
push dword [0x47e624]
mov byte [ebp - 4], 0x39
call fcn.00408798
lea eax, [ebp - 0x40]
mov ecx, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0xd0]
push eax
push 0x11
mov byte [ebp - 4], 0x3a
call fcn.004083ce
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 0x39
call fcn.00401bc7
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0x38
call fcn.00401bc7
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x30
call fcn.00401bc7
lea eax, [ebp - 0xe]
push esi
push eax
push ebx
lea ecx, [ebp - 0x120]
call fcn.00408798
lea eax, [ebp - 0xf]
push esi
push eax
lea ecx, [ebp - 0xa0]
push dword [0x47e648]
mov byte [ebp - 4], 0x3b
call fcn.00408798
lea eax, [ebp - 0xa6]
push esi
push eax
lea ecx, [ebp - 0xd0]
push dword [0x47e60c]
mov byte [ebp - 4], 0x3c
call fcn.00408798
lea eax, [ebp - 0x120]
mov ecx, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0xd0]
push eax
push 0x16
mov byte [ebp - 4], 0x3d
call fcn.004083ce
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 0x3c
call fcn.00401bc7
mov byte [ebp - 4], 0x3b
lea ecx, [ebp - 0xa0]
call fcn.00401bc7
lea ecx, [ebp - 0x120]
mov byte [ebp - 4], 0x30
call fcn.00401bc7
lea ecx, [ebp - 0x170]
mov byte [ebp - 4], 0x10
call fcn.00401f6c
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1c0]
call fcn.00401f6c
mov eax, esi
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret