Function at 0x438488
Capabilities:
Check os version

Disassembly:
push 0x908
mov eax, 0x46eb44
call fcn.00443729
mov edi, ecx
call fcn.00437038
test eax, eax
jne 0x4384a9
xor eax, eax
jmp 0x438a95
mov ecx, edi
call fcn.00439065
mov dword [edi + 0xb0c], eax
lea eax, [ebp - 0x908]
push eax
mov eax, dword [edi + 0x260]
xor ebx, ebx
mov dword [ebp - 0x908], ebx
movzx eax, word [eax + 0x50]
push eax
call fcn.00440c0a
mov eax, dword [edi + 0x260]
push dword [ebp - 0x908]
movzx eax, word [eax + 0x50]
push eax
lea eax, [ebp - 0x904]
push str.Default_language:__d__got_code_page__d
push eax
mov dword [ebp - 0x904], str.session.cpp
mov dword [ebp - 0x900], 0x33c
call fcn.0041183c
mov eax, dword [edi + 0x260]
add esp, 0x18
movzx eax, word [eax + 0x50]
push 1
push eax
call dword [sym.imp.KERNEL32.dll_IsValidLocale]
test eax, eax
jne 0x43857b
mov ecx, dword [edi + 0x260]
movzx eax, word [ecx + 0x50]
push eax
lea eax, [ebp - 0x870]
push eax
call fcn.0041efb1
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x858], 8
lea eax, [ebp - 0x86c]
cmovae eax, dword [ebp - 0x86c]
mov ecx, 0x4b8
push eax
push ecx
mov dword [0x4a6824], ecx
call fcn.00440aef
pop ecx
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x870]
call fcn.00401580
jmp 0x4384a2
mov eax, dword [edi + 0x260]
cmp dword [eax + 0x5c], 1
jbe 0x438a1f
cmp dword [edi + 0xc], 5
je 0x438a1f
push 0x400
lea eax, [ebp - 0x810]
push ebx
push eax
call fcn.00442700
push 0xa
lea eax, [ebp - 0x810]
push eax
mov eax, dword [edi + 0x260]
movzx eax, word [eax + 0x50]
push eax
call fcn.00445bdd
cmp dword [0x4a5fb0], 8
mov eax, 0x4a5f9c
cmovae eax, dword [0x4a5f9c]
push eax
lea eax, [ebp - 0x810]
push eax
call fcn.004442e7
add esp, 0x20
lea eax, [ebp - 0x8f9]
push 1
push eax
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x840]
call fcn.004025e0
mov dword [ebp - 4], 2
add eax, 4
cmp dword [eax + 0x14], 8
jb 0x438610
mov eax, dword [eax]
push eax
mov ecx, edi
call fcn.00435796
mov esi, eax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x840]
call fcn.00401580
test esi, esi
je 0x438822
cmp byte [0x4a0228], 0
jne 0x438643
cmp byte [0x4a7ae0], 0
je 0x4386b6
push 1
lea eax, [ebp - 0x8f9]
push eax
push str.session.cpp
lea ecx, [ebp - 0x840]
call fcn.004025e0
mov dword [ebp - 4], 4
push 1
lea eax, [ebp - 0x8f9]
push eax
push str.Language_transforms_in_stream
lea ecx, [ebp - 0x8a0]
call fcn.004025e0
mov byte [ebp - 4], 5
push 0x350
lea eax, [ebp - 0x840]
push eax
lea eax, [ebp - 0x8a0]
push eax
call fcn.004023a0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x8a0]
call fcn.00401580
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x840]
call fcn.00401580
push 6
pop esi
lea eax, [ebp - 0x900]
push eax
lea ecx, [edi + 4]
mov dword [ebp - 0x900], esi
call fcn.00411795
push 0x400
lea ecx, [ebp - 0x914]
push ecx
mov ecx, eax
call fcn.0040f5d4
mov dword [ebp - 4], 8
mov ecx, dword [eax]
mov byte [eax + 4], 1
call fcn.0040f579
lea ecx, [ebp - 0x810]
push ecx
push 0x4a6000
push dword [eax]
call fcn.00440590
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x914]
call fcn.0040cd3a
mov ecx, edi
call fcn.00435c6c
test eax, eax
je 0x4384a2
push esi
lea eax, [ebp - 0x870]
push eax
mov ecx, edi
call fcn.0041218a
mov dword [ebp - 4], 9
push 1
lea eax, [ebp - 0x8f9]
push eax
push str.ScriptDriven
lea ecx, [ebp - 0x8a0]
call fcn.004025e0
mov byte [ebp - 4], 0xa
push 1
lea eax, [ebp - 0x8f9]
push eax
push str.Startup
lea ecx, [ebp - 0x840]
call fcn.004025e0
mov byte [ebp - 4], 0xb
push 0xa
push ebx
lea eax, [ebp - 0x8a0]
push eax
lea eax, [ebp - 0x840]
push eax
mov ecx, edi
call fcn.00436d96
mov esi, eax
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x840]
call fcn.00401580
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x8a0]
call fcn.00401580
cmp esi, 3
jne 0x4387e4
push ebx
push ebx
lea eax, [ebp - 0x840]
push eax
lea ecx, [ebp - 0x870]
call fcn.0041e1e2
mov byte [ebp - 4], 0xe
push eax
lea ecx, [ebp - 0x870]
call fcn.0040cdaa
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x840]
call fcn.00401580
cmp dword [ebp - 0x858], 8
lea eax, [ebp - 0x86c]
cmovae eax, dword [ebp - 0x86c]
push 1
push eax
push str._LangTransform
mov ecx, edi
call fcn.00434a8b
mov dword [edi + 0x34], 1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x870]
call fcn.00401580
jmp 0x438a1f
cmp byte [edi + 0x25c], 0
je 0x4388e3
push 1
lea eax, [ebp - 0x8f9]
push eax
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x840]
call fcn.0040ca90
mov dword [ebp - 4], 0x11
push 1
lea eax, [ebp - 0x8f9]
push eax
lea eax, [edi + 0x4e]
push eax
lea ecx, [ebp - 0x8a0]
call fcn.0040ca90
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x840]
push ecx
lea ecx, [ebp - 0x870]
push ecx
mov ecx, eax
call fcn.00417192
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x8a0]
call fcn.00401580
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x840]
call fcn.00401580
push ebx
lea eax, [ebp - 0x870]
push eax
push 6
mov ecx, edi
call fcn.00414987
cmp dword [ebp - 0x858], 8
lea eax, [ebp - 0x86c]
cmovae eax, dword [ebp - 0x86c]
push 1
push eax
push str._LangTransform
mov ecx, edi
call fcn.00434a8b
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x870]
jmp 0x438995
mov ecx, edi
call fcn.004379cc
test al, al
je 0x438958
mov ecx, edi
call fcn.00437be8
test al, al
je 0x438958
lea eax, [ebp - 0x900]
push eax
lea ecx, [edi + 4]
mov dword [ebp - 0x900], 6
call fcn.00411795
push 0x400
lea ecx, [ebp - 0x914]
push ecx
mov ecx, eax
call fcn.0040f5d4
mov dword [ebp - 4], 0x19
mov ecx, dword [eax]
mov byte [eax + 4], 1
call fcn.0040f579
push dword [eax]
lea eax, [ebp - 0x810]
push eax
mov ecx, edi
call fcn.004360f5
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x914]
call fcn.0040cd3a
jmp 0x43899a
push 1
lea eax, [ebp - 0x8f9]
push eax
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x840]
call fcn.0040ca90
mov dword [ebp - 4], 0x1a
push ebx
lea eax, [ebp - 0x840]
push eax
push 6
mov ecx, edi
call fcn.00414987
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x840]
call fcn.00401580
cmp byte [0x4a0228], 0
jne 0x4389ac
cmp byte [0x4a7ae0], 0
je 0x438a1f
push 1
lea eax, [ebp - 0x8f9]
push eax
push str.session.cpp
lea ecx, [ebp - 0x8a0]
call fcn.004025e0
mov dword [ebp - 4], 0x1c
push 1
lea eax, [ebp - 0x8f9]
push eax
push str.Using_language_transforms_from_setup.exe_location
lea ecx, [ebp - 0x840]
call fcn.004025e0
mov byte [ebp - 4], 0x1d
push 0x37c
lea eax, [ebp - 0x8a0]
push eax
lea eax, [ebp - 0x840]
push eax
call fcn.004023a0
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x840]
call fcn.00401580
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8a0]
call fcn.00401580
mov ecx, edi
call fcn.004376e2
test eax, eax
je 0x4384a2
push 0x44f
mov ecx, edi
call fcn.00438e2f
mov ecx, edi
call fcn.004391fa
test eax, eax
je 0x4384a2
push edi
push 0x451
lea ecx, [ebp - 0x8f8]
call fcn.00420130
mov dword [ebp - 4], 0x20
lea ecx, [ebp - 0x8f8]
call fcn.00422d7c
test eax, eax
je 0x438a84
mov eax, dword [ebp - 0x8ec]
mov dword [edi + 0xb14], eax
call fcn.0041e63b
xor ebx, ebx
inc ebx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8f8]
call fcn.004202b8
mov eax, ebx
call fcn.004436d8
ret