Function at 0x43843a
Capabilities:
Check os version

Disassembly:
push 0x908
mov eax, 0x46e80b
call fcn.00443652
mov edi, ecx
call fcn.00436ffc
test eax, eax
jne 0x43845b
xor eax, eax
jmp 0x438a47
mov ecx, edi
call fcn.00439010
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.00440b1f
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.00411a9d
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 0x43852d
mov ecx, dword [edi + 0x260]
movzx eax, word [ecx + 0x50]
push eax
lea eax, [ebp - 0x870]
push eax
call fcn.0041ee67
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 [0x4a65e4], ecx
call fcn.00440a04
pop ecx
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x870]
call fcn.00401580
jmp 0x438454
mov eax, dword [edi + 0x260]
cmp dword [eax + 0x5c], 1
jbe 0x4389d1
cmp dword [edi + 0xc], 5
je 0x4389d1
push 0x400
lea eax, [ebp - 0x810]
push ebx
push eax
call fcn.00442610
push 0xa
lea eax, [ebp - 0x810]
push eax
mov eax, dword [edi + 0x260]
movzx eax, word [eax + 0x50]
push eax
call fcn.00445b1d
cmp dword [0x4a5d70], 8
mov eax, 0x4a5d5c
cmovae eax, dword [0x4a5d5c]
push eax
lea eax, [ebp - 0x810]
push eax
call fcn.00444207
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 0x4385c2
mov eax, dword [eax]
push eax
mov ecx, edi
call fcn.00435852
mov esi, eax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x840]
call fcn.00401580
test esi, esi
je 0x4387d4
cmp byte [0x4a0228], 0
jne 0x4385f5
cmp byte [0x4a78a0], 0
je 0x438668
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.004119c5
push 0x400
lea ecx, [ebp - 0x914]
push ecx
mov ecx, eax
call fcn.0040f9a8
mov dword [ebp - 4], 8
mov ecx, dword [eax]
mov byte [eax + 4], 1
call fcn.0040f94d
lea ecx, [ebp - 0x810]
push ecx
push 0x4a5dc0
push dword [eax]
call fcn.004404a5
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x914]
call fcn.0040cef5
mov ecx, edi
call fcn.00435d28
test eax, eax
je 0x438454
push esi
lea eax, [ebp - 0x870]
push eax
mov ecx, edi
call fcn.004123eb
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.00436d5a
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 0x438796
push ebx
push ebx
lea eax, [ebp - 0x840]
push eax
lea ecx, [ebp - 0x870]
call fcn.0041e098
mov byte [ebp - 4], 0xe
push eax
lea ecx, [ebp - 0x870]
call fcn.0040cf65
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.00434b47
mov dword [edi + 0x34], 1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x870]
call fcn.00401580
jmp 0x4389d1
cmp byte [edi + 0x25c], 0
je 0x438895
push 1
lea eax, [ebp - 0x8f9]
push eax
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x840]
call fcn.0040cbd7
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.0040cbd7
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x840]
push ecx
lea ecx, [ebp - 0x870]
push ecx
mov ecx, eax
call fcn.004105c2
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.00414be7
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.00434b47
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x870]
jmp 0x438947
mov ecx, edi
call fcn.0045dd4d
test al, al
je 0x43890a
mov ecx, edi
call fcn.00437b9a
test al, al
je 0x43890a
lea eax, [ebp - 0x900]
push eax
lea ecx, [edi + 4]
mov dword [ebp - 0x900], 6
call fcn.004119c5
push 0x400
lea ecx, [ebp - 0x914]
push ecx
mov ecx, eax
call fcn.0040f9a8
mov dword [ebp - 4], 0x19
mov ecx, dword [eax]
mov byte [eax + 4], 1
call fcn.0040f94d
push dword [eax]
lea eax, [ebp - 0x810]
push eax
mov ecx, edi
call fcn.004361b1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x914]
call fcn.0040cef5
jmp 0x43894c
push 1
lea eax, [ebp - 0x8f9]
push eax
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x840]
call fcn.0040cbd7
mov dword [ebp - 4], 0x1a
push ebx
lea eax, [ebp - 0x840]
push eax
push 6
mov ecx, edi
call fcn.00414be7
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x840]
call fcn.00401580
cmp byte [0x4a0228], 0
jne 0x43895e
cmp byte [0x4a78a0], 0
je 0x4389d1
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.004376a6
test eax, eax
je 0x438454
push 0x44f
mov ecx, edi
call fcn.00438de1
mov ecx, edi
call fcn.004391a5
test eax, eax
je 0x438454
push edi
push 0x451
lea ecx, [ebp - 0x8f8]
call fcn.00420093
mov dword [ebp - 4], 0x20
lea ecx, [ebp - 0x8f8]
call fcn.00422da8
test eax, eax
je 0x438a36
mov eax, dword [ebp - 0x8ec]
mov dword [edi + 0xb14], eax
call fcn.0041e4f1
xor ebx, ebx
inc ebx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8f8]
call fcn.004202ab
mov eax, ebx
call fcn.00443601
ret