Function at 0x437782
Capabilities:
Check os version

Disassembly:
push 0x908
mov eax, 0x46d6ec
call fcn.00442722
mov edi, ecx
call fcn.00436339
test eax, eax
jne 0x4377a3
xor eax, eax
jmp 0x437d8f
mov ecx, edi
call fcn.00438358
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 + 0x44]
push eax
call fcn.0043fbea
mov eax, dword [edi + 0x260]
push dword [ebp - 0x908]
movzx eax, word [eax + 0x44]
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], 0x325
call fcn.00411965
mov eax, dword [edi + 0x260]
add esp, 0x18
movzx eax, word [eax + 0x44]
push 1
push eax
call dword [sym.imp.KERNEL32.dll_IsValidLocale]
test eax, eax
jne 0x437875
mov ecx, dword [edi + 0x260]
movzx eax, word [ecx + 0x44]
push eax
lea eax, [ebp - 0x870]
push eax
call fcn.0041e592
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 [0x4a55c4], ecx
call fcn.0043facf
pop ecx
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x870]
call fcn.00401580
jmp 0x43779c
mov eax, dword [edi + 0x260]
cmp dword [eax + 0x50], 1
jbe 0x437d19
cmp dword [edi + 0xc], 5
je 0x437d19
push 0x400
lea eax, [ebp - 0x810]
push ebx
push eax
call fcn.004416e0
push 0xa
lea eax, [ebp - 0x810]
push eax
mov eax, dword [edi + 0x260]
movzx eax, word [eax + 0x44]
push eax
call fcn.00444bed
cmp dword [0x4a4d50], 8
mov eax, 0x4a4d3c
cmovae eax, dword [0x4a4d3c]
push eax
lea eax, [ebp - 0x810]
push eax
call fcn.004432d7
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 0x43790a
mov eax, dword [eax]
push eax
mov ecx, edi
call fcn.00434b8f
mov esi, eax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x840]
call fcn.00401580
test esi, esi
je 0x437b1c
cmp byte [0x49f228], 0
jne 0x43793d
cmp byte [0x4a6880], 0
je 0x4379b0
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 0x339
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.00411853
push 0x400
lea ecx, [ebp - 0x914]
push ecx
mov ecx, eax
call fcn.0040f868
mov dword [ebp - 4], 8
mov ecx, dword [eax]
mov byte [eax + 4], 1
call fcn.0040f80d
lea ecx, [ebp - 0x810]
push ecx
push 0x4a4da0
push dword [eax]
call fcn.0043f570
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x914]
call fcn.0040c9c5
mov ecx, edi
call fcn.00435065
test eax, eax
je 0x43779c
push esi
lea eax, [ebp - 0x870]
push eax
mov ecx, edi
call fcn.004122b3
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.00436097
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 0x437ade
push ebx
push ebx
lea eax, [ebp - 0x840]
push eax
lea ecx, [ebp - 0x870]
call fcn.0041d825
mov byte [ebp - 4], 0xe
push eax
lea ecx, [ebp - 0x870]
call fcn.0040ca5e
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.00433e84
mov dword [edi + 0x34], 1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x870]
call fcn.00401580
jmp 0x437d19
cmp byte [edi + 0x25c], 0
je 0x437bdd
push 1
lea eax, [ebp - 0x8f9]
push eax
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x840]
call fcn.0040c6e1
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.0040c6e1
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x840]
push ecx
lea ecx, [ebp - 0x870]
push ecx
mov ecx, eax
call fcn.0041047d
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.0041494f
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.00433e84
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x870]
jmp 0x437c8f
mov ecx, edi
call fcn.00436ccd
test al, al
je 0x437c52
mov ecx, edi
call fcn.00436ee2
test al, al
je 0x437c52
lea eax, [ebp - 0x900]
push eax
lea ecx, [edi + 4]
mov dword [ebp - 0x900], 6
call fcn.00411853
push 0x400
lea ecx, [ebp - 0x914]
push ecx
mov ecx, eax
call fcn.0040f868
mov dword [ebp - 4], 0x19
mov ecx, dword [eax]
mov byte [eax + 4], 1
call fcn.0040f80d
push dword [eax]
lea eax, [ebp - 0x810]
push eax
mov ecx, edi
call fcn.004354ee
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x914]
call fcn.0040c9c5
jmp 0x437c94
push 1
lea eax, [ebp - 0x8f9]
push eax
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x840]
call fcn.0040c6e1
mov dword [ebp - 4], 0x1a
push ebx
lea eax, [ebp - 0x840]
push eax
push 6
mov ecx, edi
call fcn.0041494f
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x840]
call fcn.00401580
cmp byte [0x49f228], 0
jne 0x437ca6
cmp byte [0x4a6880], 0
je 0x437d19
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 0x365
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.004369e3
test eax, eax
je 0x43779c
push 0x44f
mov ecx, edi
call fcn.00438129
mov ecx, edi
call fcn.004384ed
test eax, eax
je 0x43779c
push edi
push 0x451
lea ecx, [ebp - 0x8f8]
call fcn.0041f78e
mov dword [ebp - 4], 0x20
lea ecx, [ebp - 0x8f8]
call fcn.004223db
test eax, eax
je 0x437d7e
mov eax, dword [ebp - 0x8ec]
mov dword [edi + 0xb14], eax
call fcn.0041dc1c
xor ebx, ebx
inc ebx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8f8]
call fcn.0041f916
mov eax, ebx
call fcn.004426d1
ret