Function at 0x441d8b
Capabilities:
Check os version

Disassembly:
push 0x910
mov eax, 0x49ade3
call fcn.00459b85
mov ebx, ecx
call fcn.00440772
test eax, eax
je 0x441e76
mov ecx, ebx
call fcn.00442c11
mov dword [ebx + 0xb14], eax
xor edi, edi
lea eax, [ebp - 0x908]
mov dword [ebp - 0x908], edi
push eax
mov eax, dword [ebx + 0x268]
movzx eax, word [eax + 0x50]
push eax
call fcn.004579fe
mov eax, dword [ebx + 0x268]
push dword [ebp - 0x908]
mov dword [ebp - 0x904], str.C:CodeBasesisdevSrcRuntimeMSISharedSetup_session.cpp
mov dword [ebp - 0x900], 0x33d
movzx eax, word [eax + 0x50]
push eax
lea eax, [ebp - 0x904]
push str.Default_language:__d__got_code_page__d
push eax
call fcn.00415eae
mov eax, dword [ebx + 0x268]
add esp, 0x18
movzx eax, word [eax + 0x50]
push 1
push eax
call dword [sym.imp.KERNEL32.dll_IsValidLocale]
mov ecx, dword [ebx + 0x268]
test eax, eax
jne 0x441e7e
movzx eax, word [ecx + 0x50]
push eax
lea eax, [ebp - 0x870]
push eax
call fcn.00429710
mov dword [ebp - 4], edi
lea eax, [ebp - 0x86c]
cmp dword [ebp - 0x858], 8
mov ecx, 0x4b8
mov dword [0x4dea88], ecx
cmovae eax, dword [ebp - 0x86c]
push eax
push ecx
call fcn.004578e3
pop ecx
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x870]
call fcn.00404cc0
xor eax, eax
call fcn.00459b34
ret
cmp dword [ecx + 0x5c], 1
jbe 0x442419
mov eax, dword [ebx + 4]
mov esi, dword [eax]
mov ecx, esi
call dword [0x4a5608]
lea ecx, [ebx + 4]
call esi
cmp eax, 5
je 0x442419
push 0x400
lea eax, [ebp - 0x810]
push edi
push eax
call fcn.004714b0
push 0xa
lea eax, [ebp - 0x810]
push eax
mov eax, dword [ebx + 0x268]
movzx eax, word [eax + 0x50]
push eax
call fcn.00477161
cmp dword [0x4d9604], 8
mov eax, 0x4d95f0
cmovae eax, dword [0x4d95f0]
push eax
lea eax, [ebp - 0x810]
push eax
call fcn.0047768c
add esp, 0x20
mov dword [ebp - 0x870], 0x4b6748
lea eax, [ebp - 0x8f9]
mov dword [ebp - 0x848], 0x4b6750
lea ecx, [ebp - 0x870]
push edi
push eax
lea eax, [ebp - 0x810]
push eax
call fcn.00407aa0
mov dword [ebp - 4], 3
lea ecx, [ebp - 0x86c]
mov eax, dword [ebx + 4]
cmp dword [ebp - 0x858], 8
cmovae ecx, dword [ebp - 0x86c]
mov esi, dword [eax + 0x58]
push ecx
mov ecx, esi
call dword [0x4a5608]
lea ecx, [ebx + 4]
call esi
mov esi, eax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x870]
call fcn.00404cc0
test esi, esi
je 0x4421ad
cmp byte [0x4da060], 0
jne 0x441f7d
cmp byte [0x4df7bc], 0
je 0x442013
push edi
lea eax, [ebp - 0x8f9]
mov dword [ebp - 0x818], 0x4b6750
push eax
mov esi, 0x4b6748
lea ecx, [ebp - 0x840]
push str.C:CodeBasesisdevSrcRuntimeMSISharedSetup_session.cpp
mov dword [ebp - 0x840], esi
call fcn.00407aa0
mov dword [ebp - 4], 6
lea eax, [ebp - 0x8f9]
push edi
push eax
push str.Language_transforms_in_stream
lea ecx, [ebp - 0x8a0]
mov dword [ebp - 0x8a0], esi
mov dword [ebp - 0x878], 0x4b6750
call fcn.00407aa0
mov byte [ebp - 4], 8
lea eax, [ebp - 0x840]
push 0x351
push eax
lea eax, [ebp - 0x8a0]
push eax
call fcn.00405c50
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x8a0]
call fcn.00404cc0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x840]
call fcn.00404cc0
lea eax, [ebp - 0x900]
mov dword [ebp - 0x900], 6
push eax
lea eax, [ebp - 0x91c]
push eax
lea ecx, [ebx + 0xc]
call fcn.004260cc
push 0x400
mov ecx, dword [eax]
lea eax, [ebp - 0x914]
add ecx, 0x14
push eax
call fcn.0041c824
mov dword [ebp - 4], 0xb
mov ecx, dword [eax]
mov byte [eax + 4], 1
call fcn.004140be
lea ecx, [ebp - 0x810]
push ecx
push 0x4de288
push dword [eax]
call fcn.004573a9
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x914]
call fcn.0041132b
mov ecx, ebx
call fcn.0043ec9f
test eax, eax
je 0x441e76
mov eax, dword [ebx + 4]
lea ecx, [ebp - 0x870]
push 6
push ecx
mov esi, dword [eax + 0x1c]
mov ecx, esi
call dword [0x4a5608]
lea ecx, [ebx + 4]
call esi
mov dword [ebp - 4], 0xc
lea eax, [ebp - 0x8f9]
push edi
push eax
push str.ScriptDriven
lea ecx, [ebp - 0x840]
mov dword [ebp - 0x840], 0x4b6748
mov dword [ebp - 0x818], 0x4b6750
call fcn.00407aa0
mov byte [ebp - 4], 0xe
lea eax, [ebp - 0x8f9]
push 1
push eax
push str.Startup
lea ecx, [ebp - 0x8a0]
call fcn.00406b40
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0x840]
push 0xa
push edi
push eax
lea eax, [ebp - 0x8a0]
mov ecx, ebx
push eax
call fcn.004402a8
mov esi, eax
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x8a0]
call fcn.00404cc0
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x840]
call fcn.00404cc0
cmp esi, 3
jne 0x44216f
push edi
push edi
lea eax, [ebp - 0x840]
push eax
lea ecx, [ebp - 0x870]
call fcn.004288f0
mov byte [ebp - 4], 0x12
add eax, 4
push eax
lea ecx, [ebp - 0x86c]
call fcn.00407b80
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x840]
call fcn.00404cc0
cmp dword [ebp - 0x858], 8
lea eax, [ebp - 0x86c]
push 1
cmovae eax, dword [ebp - 0x86c]
mov ecx, ebx
push eax
push str._LangTransform
call fcn.0043d761
mov dword [ebx + 0x3c], 1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x870]
call fcn.00404cc0
jmp 0x442419
cmp byte [ebx + 0x264], 0
je 0x44228d
push edi
lea eax, [ebp - 0x8f9]
mov dword [ebp - 0x840], 0x4b6748
push eax
lea eax, [ebp - 0x810]
mov dword [ebp - 0x818], 0x4b6750
push eax
lea ecx, [ebp - 0x840]
call fcn.0041070a
mov dword [ebp - 4], 0x16
lea eax, [ebp - 0x8f9]
push 1
push eax
lea eax, [ebx + 0x56]
push eax
lea ecx, [ebp - 0x8a0]
call fcn.0041099e
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x840]
push ecx
lea ecx, [ebp - 0x870]
push ecx
mov ecx, eax
call fcn.0041ba06
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x8a0]
call fcn.00404cc0
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x840]
call fcn.00404cc0
mov eax, dword [ebx + 4]
lea ecx, [ebp - 0x870]
push edi
push ecx
push 6
mov esi, dword [eax + 0x18]
mov ecx, esi
call dword [0x4a5608]
lea ecx, [ebx + 4]
call esi
cmp dword [ebp - 0x858], 8
lea eax, [ebp - 0x86c]
push 1
cmovae eax, dword [ebp - 0x86c]
mov ecx, ebx
push eax
push str._LangTransform
call fcn.0043d761
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x870]
jmp 0x442368
mov ecx, ebx
call fcn.004411a6
test al, al
je 0x44230c
mov ecx, ebx
call fcn.004413ee
test al, al
je 0x44230c
lea eax, [ebp - 0x900]
mov dword [ebp - 0x900], 6
push eax
lea eax, [ebp - 0x91c]
push eax
lea ecx, [ebx + 0xc]
call fcn.004260cc
push 0x400
mov ecx, dword [eax]
lea eax, [ebp - 0x914]
add ecx, 0x14
push eax
call fcn.0041c824
mov dword [ebp - 4], 0x1e
mov ecx, dword [eax]
mov byte [eax + 4], 1
call fcn.004140be
mov ecx, ebx
push dword [eax]
lea eax, [ebp - 0x810]
push eax
call fcn.0043f541
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x914]
call fcn.0041132b
jmp 0x44236d
push edi
lea eax, [ebp - 0x8f9]
mov dword [ebp - 0x840], 0x4b6748
push eax
lea eax, [ebp - 0x810]
mov dword [ebp - 0x818], 0x4b6750
push eax
lea ecx, [ebp - 0x840]
call fcn.0041070a
mov dword [ebp - 4], 0x20
lea ecx, [ebp - 0x840]
mov eax, dword [ebx + 4]
push edi
push ecx
push 6
mov esi, dword [eax + 0x18]
mov ecx, esi
call dword [0x4a5608]
lea ecx, [ebx + 4]
call esi
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x840]
call fcn.00404cc0
cmp byte [0x4da060], 0
jne 0x442383
cmp byte [0x4df7bc], 0
je 0x442419
push edi
lea eax, [ebp - 0x8f9]
mov dword [ebp - 0x878], 0x4b6750
push eax
mov esi, 0x4b6748
lea ecx, [ebp - 0x8a0]
push str.C:CodeBasesisdevSrcRuntimeMSISharedSetup_session.cpp
mov dword [ebp - 0x8a0], esi
call fcn.00407aa0
mov dword [ebp - 4], 0x23
lea eax, [ebp - 0x8f9]
push edi
push eax
push str.Using_language_transforms_from_setup.exe_location
lea ecx, [ebp - 0x840]
mov dword [ebp - 0x840], esi
mov dword [ebp - 0x818], 0x4b6750
call fcn.00407aa0
mov byte [ebp - 4], 0x25
lea eax, [ebp - 0x8a0]
push 0x37d
push eax
lea eax, [ebp - 0x840]
push eax
call fcn.00405c50
mov byte [ebp - 4], 0x23
lea ecx, [ebp - 0x840]
call fcn.00404cc0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8a0]
call fcn.00404cc0
push 1
lea eax, [ebp - 0x8f9]
push eax
push 0x4b65d4
lea ecx, [ebp - 0x840]
call fcn.00406b40
mov dword [ebp - 4], 0x28
mov dword [ebp - 0x900], edi
mov byte [ebp - 4], 0x29
lea eax, [ebp - 0x900]
mov ecx, dword [ebx + 8]
push eax
push 1
lea eax, [ebp - 0x840]
push eax
push 1
call fcn.0044a7e4
test eax, eax
setne byte [ebp - 0x8f9]
mov byte [ebp - 4], 0x28
cmp dword [ebp - 0x900], 0
je 0x44247e
push dword [ebp - 0x900]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x840]
call fcn.00404cc0
cmp byte [ebp - 0x8f9], 0
je 0x4424a0
call fcn.00428d27
jmp 0x441e76
mov eax, dword [ebx + 4]
mov esi, dword [eax + 0x34]
mov ecx, esi
call dword [0x4a5608]
lea ecx, [ebx + 4]
call esi
test eax, eax
je 0x441e76
push 0x44f
mov ecx, ebx
call fcn.004429d9
mov ecx, ebx
call fcn.00442da1
test eax, eax
je 0x441e76
push ebx
push 0x451
lea ecx, [ebp - 0x8f8]
call fcn.0042aacd
mov dword [ebp - 4], 0x2b
lea ecx, [ebp - 0x8f8]
call fcn.0042d8f0
test eax, eax
jne 0x442501
xor esi, esi
jmp 0x442515
mov eax, dword [ebp - 0x8ec]
mov dword [ebx + 0xb1c], eax
call fcn.00428d27
xor esi, esi
inc esi
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8f8]
call fcn.0042b074
mov eax, esi
jmp 0x441e78