Function at 0x4383bf
Capabilities:
Check os version

Disassembly:
push 0x908
mov eax, 0x46ea45
call fcn.004436e9
mov edi, ecx
call fcn.00436f6f
test eax, eax
jne 0x4383e0
xor eax, eax
jmp 0x4389cc
mov ecx, edi
call fcn.00438f9c
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.00440bd3
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 0x4384b2
mov ecx, dword [edi + 0x260]
movzx eax, word [ecx + 0x50]
push eax
lea eax, [ebp - 0x870]
push eax
call fcn.0041ef9d
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 [0x4a67f4], ecx
call fcn.00440ab8
pop ecx
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x870]
call fcn.00401580
jmp 0x4383d9
mov eax, dword [edi + 0x260]
cmp dword [eax + 0x5c], 1
jbe 0x438956
cmp dword [edi + 0xc], 5
je 0x438956
push 0x400
lea eax, [ebp - 0x810]
push ebx
push eax
call fcn.004426c0
push 0xa
lea eax, [ebp - 0x810]
push eax
mov eax, dword [edi + 0x260]
movzx eax, word [eax + 0x50]
push eax
call fcn.00445b9d
cmp dword [0x4a5f80], 8
mov eax, 0x4a5f6c
cmovae eax, dword [0x4a5f6c]
push eax
lea eax, [ebp - 0x810]
push eax
call fcn.004442a7
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 0x438547
mov eax, dword [eax]
push eax
mov ecx, edi
call fcn.004356cd
mov esi, eax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x840]
call fcn.00401580
test esi, esi
je 0x438759
cmp byte [0x4a0228], 0
jne 0x43857a
cmp byte [0x4a7ab0], 0
je 0x4385ed
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 0x4a5fd0
push dword [eax]
call fcn.00440559
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x914]
call fcn.0040cd3a
mov ecx, edi
call fcn.00435ba3
test eax, eax
je 0x4383d9
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.00436ccd
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 0x43871b
push ebx
push ebx
lea eax, [ebp - 0x840]
push eax
lea ecx, [ebp - 0x870]
call fcn.0041e1ce
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.004349c2
mov dword [edi + 0x34], 1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x870]
call fcn.00401580
jmp 0x438956
cmp byte [edi + 0x25c], 0
je 0x43881a
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.004349c2
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x870]
jmp 0x4388cc
mov ecx, edi
call fcn.00437903
test al, al
je 0x43888f
mov ecx, edi
call fcn.00437b1f
test al, al
je 0x43888f
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.0043602c
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x914]
call fcn.0040cd3a
jmp 0x4388d1
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 0x4388e3
cmp byte [0x4a7ab0], 0
je 0x438956
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.00437619
test eax, eax
je 0x4383d9
push 0x44f
mov ecx, edi
call fcn.00438d66
mov ecx, edi
call fcn.00439131
test eax, eax
je 0x4383d9
push edi
push 0x451
lea ecx, [ebp - 0x8f8]
call fcn.0042011f
mov dword [ebp - 4], 0x20
lea ecx, [ebp - 0x8f8]
call fcn.00422d33
test eax, eax
je 0x4389bb
mov eax, dword [ebp - 0x8ec]
mov dword [edi + 0xb14], eax
call fcn.0041e627
xor ebx, ebx
inc ebx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8f8]
call fcn.004202a7
mov eax, ebx
call fcn.00443698
ret