Function at 0x4383d2
Capabilities:
Check os version

Disassembly:
push 0x908
mov eax, 0x46e8aa
call fcn.00443402
mov edi, ecx
call fcn.00436f82
test eax, eax
jne 0x4383f3
xor eax, eax
jmp 0x4389df
mov ecx, edi
call fcn.00438fa8
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.00440863
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], 0x32a
call fcn.00411f5e
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 0x4384c5
mov ecx, dword [edi + 0x260]
movzx eax, word [ecx + 0x50]
push eax
lea eax, [ebp - 0x870]
push eax
call fcn.0041ed73
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 [0x4a6674], ecx
call fcn.00440748
pop ecx
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x870]
call fcn.00401580
jmp 0x4383ec
mov eax, dword [edi + 0x260]
cmp dword [eax + 0x5c], 1
jbe 0x438969
cmp dword [edi + 0xc], 5
je 0x438969
push 0x400
lea eax, [ebp - 0x810]
push ebx
push eax
call fcn.004423c0
push 0xa
lea eax, [ebp - 0x810]
push eax
mov eax, dword [edi + 0x260]
movzx eax, word [eax + 0x50]
push eax
call fcn.004458cd
cmp dword [0x4a5e00], 8
mov eax, 0x4a5dec
cmovae eax, dword [0x4a5dec]
push eax
lea eax, [ebp - 0x810]
push eax
call fcn.00443fb7
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 0x43855a
mov eax, dword [eax]
push eax
mov ecx, edi
call fcn.004357d8
mov esi, eax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x840]
call fcn.00401580
test esi, esi
je 0x43876c
cmp byte [0x4a0228], 0
jne 0x43858d
cmp byte [0x4a7930], 0
je 0x438600
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 0x33e
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.00411eb7
push 0x400
lea ecx, [ebp - 0x914]
push ecx
mov ecx, eax
call fcn.0040fedb
mov dword [ebp - 4], 8
mov ecx, dword [eax]
mov byte [eax + 4], 1
call fcn.0040fe80
lea ecx, [ebp - 0x810]
push ecx
push 0x4a5e50
push dword [eax]
call fcn.004401e9
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x914]
call fcn.0040cf55
mov ecx, edi
call fcn.00435cae
test eax, eax
je 0x4383ec
push esi
lea eax, [ebp - 0x870]
push eax
mov ecx, edi
call fcn.004128ac
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.00436ce0
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 0x43872e
push ebx
push ebx
lea eax, [ebp - 0x840]
push eax
lea ecx, [ebp - 0x870]
call fcn.0041dfa4
mov byte [ebp - 4], 0xe
push eax
lea ecx, [ebp - 0x870]
call fcn.0040cfc5
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.00434acd
mov dword [edi + 0x34], 1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x870]
call fcn.00401580
jmp 0x438969
cmp byte [edi + 0x25c], 0
je 0x43882d
push 1
lea eax, [ebp - 0x8f9]
push eax
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x840]
call fcn.0040cbc2
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.0040cbc2
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x840]
push ecx
lea ecx, [ebp - 0x870]
push ecx
mov ecx, eax
call fcn.00410b29
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.004150a8
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.00434acd
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x870]
jmp 0x4388df
mov ecx, edi
call fcn.00437916
test al, al
je 0x4388a2
mov ecx, edi
call fcn.00437b32
test al, al
je 0x4388a2
lea eax, [ebp - 0x900]
push eax
lea ecx, [edi + 4]
mov dword [ebp - 0x900], 6
call fcn.00411eb7
push 0x400
lea ecx, [ebp - 0x914]
push ecx
mov ecx, eax
call fcn.0040fedb
mov dword [ebp - 4], 0x19
mov ecx, dword [eax]
mov byte [eax + 4], 1
call fcn.0040fe80
push dword [eax]
lea eax, [ebp - 0x810]
push eax
mov ecx, edi
call fcn.00436137
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x914]
call fcn.0040cf55
jmp 0x4388e4
push 1
lea eax, [ebp - 0x8f9]
push eax
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x840]
call fcn.0040cbc2
mov dword [ebp - 4], 0x1a
push ebx
lea eax, [ebp - 0x840]
push eax
push 6
mov ecx, edi
call fcn.004150a8
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x840]
call fcn.00401580
cmp byte [0x4a0228], 0
jne 0x4388f6
cmp byte [0x4a7930], 0
je 0x438969
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 0x36a
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.0043762c
test eax, eax
je 0x4383ec
push 0x44f
mov ecx, edi
call fcn.00438d79
mov ecx, edi
call fcn.0043913d
test eax, eax
je 0x4383ec
push edi
push 0x451
lea ecx, [ebp - 0x8f8]
call fcn.0041ff6f
mov dword [ebp - 4], 0x20
lea ecx, [ebp - 0x8f8]
call fcn.00422c38
test eax, eax
je 0x4389ce
mov eax, dword [ebp - 0x8ec]
mov dword [edi + 0xb14], eax
call fcn.0041e3fd
xor ebx, ebx
inc ebx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8f8]
call fcn.004200f7
mov eax, ebx
call fcn.004433b1
ret