Function at 0x43b6ab
Capabilities:
Check os version

Disassembly:
push ebp
sub esp, 0x88c
lea ebp, [esp - 4]
mov eax, dword [0x4db020]
xor eax, ebp
mov dword [ebp + 0x88c], eax
push 0x84
mov eax, 0x4a8c18
call fcn.00466e90
mov esi, ecx
call fcn.0043b0e6
test eax, eax
jne 0x43b702
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x88c]
xor ecx, ebp
call fcn.00466e81
add ebp, 0x890
leave
ret
mov ecx, esi
call fcn.0043a203
and dword [ebp - 0x1c], 0
mov dword [esi + 0xb48], eax
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [esi + 0x294]
movzx eax, word [eax + 0x50]
push eax
call fcn.004430d0
mov eax, dword [esi + 0x294]
push dword [ebp - 0x1c]
movzx eax, word [eax + 0x50]
push eax
lea eax, [ebp - 0x18]
push str.Default_language:__d__got_code_page__d
push eax
mov dword [ebp - 0x18], str.C:CodeBasesisdev_srcRuntimeMSISharedSetup_session.cpp
mov dword [ebp - 0x14], 0x324
call fcn.004113cc
mov eax, dword [esi + 0x294]
movzx eax, word [eax + 0x50]
add esp, 0x18
xor ebx, ebx
inc ebx
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_IsValidLocale]
test eax, eax
jne 0x43b7b7
mov esi, dword [esi + 0x294]
movzx eax, word [esi + 0x50]
push eax
lea eax, [ebp + 0x58]
push eax
mov ecx, esi
call fcn.0041f06c
and dword [ebp - 4], 0
cmp dword [ebp + 0x74], 8
mov ecx, dword [ebp + 0x60]
mov eax, 0x4b8
mov dword [0x4e0670], eax
jae 0x43b79d
lea ecx, [ebp + 0x60]
push ecx
push eax
call fcn.00444479
pop ecx
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x58]
call fcn.004016a0
jmp 0x43b6dd
mov eax, dword [esi + 0x294]
mov eax, dword [eax + 0x74]
cmp eax, ebx
jbe 0x43bb2f
mov eax, dword [esi + 0x24]
cmp eax, 5
je 0x43bb2f
mov edi, 0x400
push edi
lea eax, [ebp + 0x8c]
push 0
push eax
call fcn.00468220
push 0xa
lea eax, [ebp + 0x8c]
push eax
mov eax, dword [esi + 0x294]
movzx eax, word [eax + 0x50]
push eax
call fcn.0046a3dd
mov eax, dword [0x4dfe0c]
add esp, 0x18
cmp dword [0x4dfe20], 8
jae 0x43b817
mov eax, 0x4dfe0c
push eax
lea eax, [ebp + 0x8c]
push eax
call fcn.004681cc
pop ecx
pop ecx
push ebx
lea eax, [ebp - 0xd]
push eax
lea eax, [ebp + 0x8c]
push eax
lea ecx, [ebp - 0x5c]
call fcn.00401890
mov dword [ebp - 4], ebx
cmp dword [eax + 0x1c], 8
jb 0x43b848
mov eax, dword [eax + 8]
jmp 0x43b84b
add eax, 8
push eax
mov ecx, esi
call fcn.00435f8a
mov dword [ebp - 0x14], eax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x5c]
call fcn.00401640
cmp dword [ebp - 0x14], 0
je 0x43b97f
cmp byte [0x4dc3fe], 0
jne 0x43b87e
cmp byte [0x4e166c], 0
je 0x43b8d7
push ebx
lea eax, [ebp - 0xd]
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetup_session.cpp
lea ecx, [ebp - 0x5c]
call fcn.00401890
mov dword [ebp - 4], 2
push ebx
lea eax, [ebp - 0xd]
push eax
push str.Language_transforms_in_stream
lea ecx, [ebp + 0x58]
call fcn.00401890
mov byte [ebp - 4], 3
push 0x338
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp + 0x58]
push eax
call fcn.0049edb0
mov byte [ebp - 4], 2
lea ecx, [ebp + 0x58]
call fcn.00401640
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x5c]
call fcn.00401640
push 6
pop ebx
lea eax, [ebp - 0x14]
push eax
lea ecx, [esi + 4]
mov dword [ebp - 0x14], ebx
call fcn.00410daa
push edi
lea ecx, [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.0040adc6
mov dword [ebp - 4], 4
mov ecx, dword [eax]
mov byte [eax + 4], 1
call fcn.00407e29
mov eax, dword [eax]
lea ecx, [ebp + 0x8c]
push ecx
push 0x4dfe70
push eax
call fcn.004433a9
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.0040aa24
mov ecx, esi
call fcn.0043a523
test eax, eax
je 0x43b6dd
push ebx
lea eax, [ebp - 0x5c]
push eax
mov ecx, esi
call fcn.0040f640
mov dword [ebp - 4], 5
cmp dword [eax + 0x1c], 8
jb 0x43b954
mov eax, dword [eax + 8]
jmp 0x43b957
add eax, 8
xor edi, edi
inc edi
push edi
push eax
push str._LangTransform
mov ecx, esi
call fcn.0043a58f
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x5c]
call fcn.004016a0
xor ebx, ebx
mov dword [esi + 0x68], edi
inc ebx
jmp 0x43bb2f
cmp byte [esi + 0x290], 0
je 0x43ba29
push ebx
lea eax, [ebp - 0xd]
push eax
lea eax, [ebp + 0x8c]
push eax
lea ecx, [ebp - 0x5c]
call fcn.0040921c
push 6
pop ebx
mov dword [ebp - 4], ebx
push 1
lea eax, [ebp - 0xd]
push eax
lea eax, [esi + 0x82]
push eax
lea ecx, [ebp - 0x90]
call fcn.0040921c
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x5c]
push ecx
lea ecx, [ebp + 0x58]
push ecx
mov ecx, eax
call fcn.00415dff
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x90]
call fcn.004016a0
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x5c]
call fcn.004016a0
push 0
lea eax, [ebp + 0x58]
push eax
push ebx
mov ecx, esi
call fcn.0041112d
cmp dword [ebp + 0x74], 8
mov eax, dword [ebp + 0x60]
jae 0x43ba06
lea eax, [ebp + 0x60]
push 1
push eax
push str._LangTransform
mov ecx, esi
call fcn.0043a58f
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x58]
call fcn.004016a0
xor ebx, ebx
inc ebx
jmp 0x43bac4
mov ecx, esi
call fcn.00435f0e
test al, al
je 0x43ba8e
mov ecx, esi
call fcn.004386a6
test al, al
je 0x43ba8e
lea eax, [ebp - 0x14]
push eax
lea ecx, [esi + 4]
mov dword [ebp - 0x14], 6
call fcn.00410daa
push edi
lea ecx, [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.0040adc6
mov dword [ebp - 4], 0xb
mov ecx, dword [eax]
mov byte [eax + 4], 1
call fcn.00407e29
push dword [eax]
lea eax, [ebp + 0x8c]
push eax
mov ecx, esi
call fcn.004385b1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.0040aa24
jmp 0x43bac4
push ebx
lea eax, [ebp - 0xd]
push eax
lea eax, [ebp + 0x8c]
push eax
lea ecx, [ebp - 0x5c]
call fcn.0040921c
mov dword [ebp - 4], 0xc
push 0
lea eax, [ebp - 0x5c]
push eax
push 6
mov ecx, esi
call fcn.0041112d
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x5c]
call fcn.004016a0
cmp byte [0x4dc3fe], 0
jne 0x43bad6
cmp byte [0x4e166c], 0
je 0x43bb2f
push ebx
lea eax, [ebp - 0xd]
push eax
push str.C:CodeBasesisdev_srcRuntimeMSISharedSetup_session.cpp
lea ecx, [ebp + 0x58]
call fcn.00401890
mov dword [ebp - 4], 0xd
push ebx
lea eax, [ebp - 0xd]
push eax
push str.Using_language_transforms_from_setup.exe_location
lea ecx, [ebp - 0x5c]
call fcn.00401890
mov byte [ebp - 4], 0xe
push 0x35f
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.0049edb0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x5c]
call fcn.00401640
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x58]
call fcn.00401640
mov ecx, esi
call fcn.00438e42
test eax, eax
je 0x43b6dd
push 0x44f
mov ecx, esi
call fcn.004393ba
mov ecx, esi
call fcn.00438712
test eax, eax
je 0x43b6dd
push esi
push 0x451
lea ecx, [ebp]
call fcn.0041fa05
mov dword [ebp - 4], 0xf
lea ecx, [ebp]
call fcn.0042d2d6
test eax, eax
jne 0x43bb8f
xor ebx, ebx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp]
call fcn.0041fa55
mov eax, ebx
jmp 0x43b6df
mov eax, dword [ebp + 0xc]
mov dword [esi + 0xb50], eax
call fcn.0041e5c4
jmp 0x43bb7c