Function at 0x438d5a
Capabilities:
Check os version

Disassembly:
push 0x910
mov eax, 0x479603
call fcn.00444285
mov edi, ecx
call fcn.00437930
test eax, eax
je 0x438e45
mov ecx, edi
call fcn.0043996d
mov dword [edi + 0xb0c], eax
xor ebx, ebx
lea eax, [ebp - 0x908]
mov dword [ebp - 0x908], ebx
push eax
mov eax, dword [edi + 0x260]
movzx eax, word [eax + 0x50]
push eax
call fcn.0044259c
mov eax, dword [edi + 0x260]
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.004160ea
mov eax, dword [edi + 0x260]
add esp, 0x18
movzx eax, word [eax + 0x50]
push 1
push eax
call dword [sym.imp.KERNEL32.dll_IsValidLocale]
mov ecx, dword [edi + 0x260]
test eax, eax
jne 0x438e4d
movzx eax, word [ecx + 0x50]
push eax
lea eax, [ebp - 0x870]
push eax
call fcn.00422f5a
mov dword [ebp - 4], ebx
lea eax, [ebp - 0x86c]
cmp dword [ebp - 0x858], 8
mov ecx, 0x4b8
mov dword [0x4b07f0], ecx
cmovae eax, dword [ebp - 0x86c]
push eax
push ecx
call fcn.00442481
pop ecx
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x870]
call fcn.00404d40
xor eax, eax
call fcn.00444234
ret
cmp dword [ecx + 0x5c], 1
jbe 0x4393b9
cmp dword [edi + 0xc], 5
je 0x4393b9
push 0x400
lea eax, [ebp - 0x810]
push ebx
push eax
call fcn.004523f0
push 0xa
lea eax, [ebp - 0x810]
push eax
mov eax, dword [edi + 0x260]
movzx eax, word [eax + 0x50]
push eax
call fcn.00458049
cmp dword [0x4ab664], 8
mov eax, 0x4ab650
cmovae eax, dword [0x4ab650]
push eax
lea eax, [ebp - 0x810]
push eax
call fcn.00458520
add esp, 0x20
mov dword [ebp - 0x870], 0x48e948
lea eax, [ebp - 0x8f9]
mov dword [ebp - 0x848], 0x48e950
lea ecx, [ebp - 0x870]
push ebx
push eax
lea eax, [ebp - 0x810]
push eax
call fcn.00407a30
mov dword [ebp - 4], 3
lea eax, [ebp - 0x86c]
cmp dword [ebp - 0x858], 8
mov ecx, edi
cmovae eax, dword [ebp - 0x86c]
push eax
call fcn.00435f4d
mov esi, eax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x870]
call fcn.00404d40
test esi, esi
je 0x439165
cmp byte [0x4ac000], 0
jne 0x438f2f
cmp byte [0x4b14ac], 0
je 0x438fc7
push ebx
lea eax, [ebp - 0x8f9]
mov dword [ebp - 0x818], 0x48e950
push eax
mov esi, 0x48e948
lea ecx, [ebp - 0x840]
push str.C:CodeBasesisdevSrcRuntimeMSISharedSetup_session.cpp
mov dword [ebp - 0x840], esi
call fcn.00407a30
mov dword [ebp - 4], 6
lea eax, [ebp - 0x8f9]
push ebx
push eax
push str.Language_transforms_in_stream
lea ecx, [ebp - 0x8a0]
mov dword [ebp - 0x8a0], esi
mov dword [ebp - 0x878], 0x48e950
call fcn.00407a30
mov byte [ebp - 4], 8
lea eax, [ebp - 0x840]
push 0x351
push eax
lea eax, [ebp - 0x8a0]
push eax
call fcn.00405cd0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x8a0]
call fcn.00404d40
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x840]
call fcn.00404d40
jmp 0x438fcc
mov esi, 0x48e948
lea eax, [ebp - 0x900]
mov dword [ebp - 0x900], 6
push eax
lea eax, [ebp - 0x91c]
push eax
lea ecx, [edi + 4]
call fcn.004159ad
push 0x400
mov ecx, dword [eax]
lea eax, [ebp - 0x914]
add ecx, 0x14
push eax
call fcn.0041cab4
mov dword [ebp - 4], 0xb
mov ecx, dword [eax]
mov byte [eax + 4], 1
call fcn.00413f7e
lea ecx, [ebp - 0x810]
push ecx
push 0x4afff0
push dword [eax]
call fcn.00441f44
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x914]
call fcn.004111ed
mov ecx, edi
call fcn.004364aa
test eax, eax
je 0x438e45
push 6
lea eax, [ebp - 0x870]
mov ecx, edi
push eax
call fcn.00416ada
mov dword [ebp - 4], 0xc
lea eax, [ebp - 0x8f9]
push ebx
push eax
push str.ScriptDriven
lea ecx, [ebp - 0x8a0]
mov dword [ebp - 0x8a0], esi
mov dword [ebp - 0x878], 0x48e950
call fcn.00407a30
mov byte [ebp - 4], 0xe
lea eax, [ebp - 0x8f9]
push ebx
push eax
push str.Startup
lea ecx, [ebp - 0x840]
mov dword [ebp - 0x840], esi
mov dword [ebp - 0x818], 0x48e950
call fcn.00407a30
mov byte [ebp - 4], 0x10
lea eax, [ebp - 0x8a0]
push 0xa
push ebx
push eax
lea eax, [ebp - 0x840]
mov ecx, edi
push eax
call fcn.004376a7
mov esi, eax
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x840]
call fcn.00404d40
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x8a0]
call fcn.00404d40
cmp esi, 3
jne 0x439127
push ebx
push ebx
lea eax, [ebp - 0x840]
push eax
lea ecx, [ebp - 0x870]
call fcn.004221a9
mov byte [ebp - 4], 0x13
add eax, 4
push eax
lea ecx, [ebp - 0x86c]
call fcn.00407b10
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x840]
call fcn.00404d40
cmp dword [ebp - 0x858], 8
lea eax, [ebp - 0x86c]
push 1
cmovae eax, dword [ebp - 0x86c]
mov ecx, edi
push eax
push str._LangTransform
call fcn.00435215
mov dword [edi + 0x34], 1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x870]
call fcn.00404d40
jmp 0x4393b9
cmp byte [edi + 0x25c], 0
je 0x439239
push ebx
lea eax, [ebp - 0x8f9]
mov dword [ebp - 0x840], 0x48e948
push eax
lea eax, [ebp - 0x810]
mov dword [ebp - 0x818], 0x48e950
push eax
lea ecx, [ebp - 0x840]
call fcn.004105ca
mov dword [ebp - 4], 0x17
lea eax, [ebp - 0x8f9]
push 1
push eax
lea eax, [edi + 0x4e]
push eax
lea ecx, [ebp - 0x8a0]
call fcn.0041085e
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x840]
push ecx
lea ecx, [ebp - 0x870]
push ecx
mov ecx, eax
call fcn.0041bc96
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x8a0]
call fcn.00404d40
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x840]
call fcn.00404d40
push ebx
lea eax, [ebp - 0x870]
mov ecx, edi
push eax
push 6
call fcn.004195d8
cmp dword [ebp - 0x858], 8
lea eax, [ebp - 0x86c]
push 1
cmovae eax, dword [ebp - 0x86c]
mov ecx, edi
push eax
push str._LangTransform
call fcn.00435215
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x870]
jmp 0x439308
mov ecx, edi
call fcn.00438270
test al, al
je 0x4392b8
mov ecx, edi
call fcn.0043849a
test al, al
je 0x4392b8
lea eax, [ebp - 0x900]
mov dword [ebp - 0x900], 6
push eax
lea eax, [ebp - 0x91c]
push eax
lea ecx, [edi + 4]
call fcn.004159ad
push 0x400
mov ecx, dword [eax]
lea eax, [ebp - 0x914]
add ecx, 0x14
push eax
call fcn.0041cab4
mov dword [ebp - 4], 0x1f
mov ecx, dword [eax]
mov byte [eax + 4], 1
call fcn.00413f7e
mov ecx, edi
push dword [eax]
lea eax, [ebp - 0x810]
push eax
call fcn.00436928
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x914]
call fcn.004111ed
jmp 0x43930d
push ebx
lea eax, [ebp - 0x8f9]
mov dword [ebp - 0x840], 0x48e948
push eax
lea eax, [ebp - 0x810]
mov dword [ebp - 0x818], 0x48e950
push eax
lea ecx, [ebp - 0x840]
call fcn.004105ca
mov dword [ebp - 4], 0x21
lea eax, [ebp - 0x840]
push ebx
push eax
push 6
mov ecx, edi
call fcn.004195d8
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x840]
call fcn.00404d40
cmp byte [0x4ac000], 0
jne 0x439323
cmp byte [0x4b14ac], 0
je 0x4393b9
push ebx
lea eax, [ebp - 0x8f9]
mov dword [ebp - 0x878], 0x48e950
push eax
mov esi, 0x48e948
lea ecx, [ebp - 0x8a0]
push str.C:CodeBasesisdevSrcRuntimeMSISharedSetup_session.cpp
mov dword [ebp - 0x8a0], esi
call fcn.00407a30
mov dword [ebp - 4], 0x24
lea eax, [ebp - 0x8f9]
push ebx
push eax
push str.Using_language_transforms_from_setup.exe_location
lea ecx, [ebp - 0x840]
mov dword [ebp - 0x840], esi
mov dword [ebp - 0x818], 0x48e950
call fcn.00407a30
mov byte [ebp - 4], 0x26
lea eax, [ebp - 0x8a0]
push 0x37d
push eax
lea eax, [ebp - 0x840]
push eax
call fcn.00405cd0
mov byte [ebp - 4], 0x24
lea ecx, [ebp - 0x840]
call fcn.00404d40
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8a0]
call fcn.00404d40
mov ecx, edi
call fcn.00437ff4
test eax, eax
je 0x438e45
push 0x44f
mov ecx, edi
call fcn.00439737
mov ecx, edi
call fcn.00439aee
test eax, eax
je 0x438e45
push edi
push 0x451
lea ecx, [ebp - 0x8f8]
call fcn.00423a0f
mov dword [ebp - 4], 0x29
lea ecx, [ebp - 0x8f8]
call fcn.00426560
test eax, eax
je 0x43941e
mov eax, dword [ebp - 0x8ec]
mov dword [edi + 0xb14], eax
call fcn.00422607
xor ebx, ebx
inc ebx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8f8]
call fcn.00423d9c
mov eax, ebx
jmp 0x438e47