Function at 0x43b66a
Capabilities:
Check os version

Disassembly:
push ebp
sub esp, 0x88c
lea ebp, [esp - 4]
mov eax, dword [0x4d6080]
xor eax, ebp
mov dword [ebp + 0x88c], eax
push 0x84
mov eax, 0x4a61ef
call fcn.004646e0
mov esi, ecx
call fcn.0043b0a5
test eax, eax
jne 0x43b6c1
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.004646d1
add ebp, 0x890
leave
ret
mov ecx, esi
call fcn.0043a0e0
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.00441a4e
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.E:CodeBases_Majesty_Hotfixesisdev_srcRuntimeMSISharedSetup_session.cpp
mov dword [ebp - 0x14], 0x324
call fcn.004115dc
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 0x43b776
mov esi, dword [esi + 0x294]
movzx eax, word [esi + 0x50]
push eax
lea eax, [ebp + 0x58]
push eax
mov ecx, esi
call fcn.0041f0f8
and dword [ebp - 4], 0
cmp dword [ebp + 0x74], 8
mov ecx, dword [ebp + 0x60]
mov eax, 0x4b8
mov dword [0x4db6d0], eax
jae 0x43b75c
lea ecx, [ebp + 0x60]
push ecx
push eax
call fcn.00442de8
pop ecx
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x58]
call fcn.004016d0
jmp 0x43b69c
mov eax, dword [esi + 0x294]
mov eax, dword [eax + 0x74]
cmp eax, ebx
jbe 0x43bad7
mov eax, dword [esi + 0x24]
cmp eax, 5
je 0x43bad7
mov edi, 0x400
push edi
lea eax, [ebp + 0x8c]
push 0
push eax
call fcn.00465a70
push 0xa
lea eax, [ebp + 0x8c]
push eax
mov eax, dword [esi + 0x294]
movzx eax, word [eax + 0x50]
push eax
call fcn.00467c2d
mov eax, dword [0x4dae6c]
add esp, 0x18
cmp dword [0x4dae80], 8
jae 0x43b7d6
mov eax, 0x4dae6c
push eax
lea eax, [ebp + 0x8c]
push eax
call fcn.00465a1c
pop ecx
pop ecx
push ebx
lea eax, [ebp - 0xd]
push eax
lea eax, [ebp + 0x8c]
push eax
lea ecx, [ebp - 0x5c]
call fcn.004018b0
mov dword [ebp - 4], ebx
mov ecx, eax
call fcn.00402d00
push eax
mov ecx, esi
call fcn.00436018
mov dword [ebp - 0x14], eax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x5c]
call fcn.00401670
cmp dword [ebp - 0x14], 0
je 0x43b932
cmp byte [0x4d745e], 0
jne 0x43b836
cmp byte [0x4dc5e4], 0
je 0x43b88f
push ebx
lea eax, [ebp - 0xd]
push eax
push str.E:CodeBases_Majesty_Hotfixesisdev_srcRuntimeMSISharedSetup_session.cpp
lea ecx, [ebp - 0x5c]
call fcn.004018b0
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.004018b0
mov byte [ebp - 4], 3
push 0x338
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp + 0x58]
push eax
call fcn.0049b7a0
mov byte [ebp - 4], 2
lea ecx, [ebp + 0x58]
call fcn.00401670
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x5c]
call fcn.00401670
lea eax, [ebp - 0x14]
push eax
lea ecx, [esi + 4]
mov dword [ebp - 0x14], 6
call fcn.00410c1b
push edi
lea ecx, [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.0040b2f1
mov dword [ebp - 4], 4
mov ecx, dword [eax]
mov byte [eax + 4], bl
call fcn.00407803
mov eax, dword [eax]
lea ecx, [ebp + 0x8c]
push ecx
push 0x4daed0
push eax
call fcn.00441d63
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.0040b14b
mov ecx, esi
call fcn.0043a3ec
test eax, eax
je 0x43b69c
push 6
lea eax, [ebp - 0x5c]
push eax
mov ecx, esi
call fcn.0040f5ac
mov dword [ebp - 4], 5
cmp dword [eax + 0x1c], 8
jb 0x43b90d
mov eax, dword [eax + 8]
jmp 0x43b910
add eax, 8
push ebx
push eax
push str._LangTransform
mov ecx, esi
call fcn.0043a451
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x5c]
call fcn.004016d0
mov dword [esi + 0x68], ebx
jmp 0x43bad7
cmp byte [esi + 0x290], 0
je 0x43b9d2
push ebx
lea eax, [ebp - 0xd]
push eax
lea eax, [ebp + 0x8c]
push eax
lea ecx, [ebp - 0x5c]
call fcn.004096ba
push 6
pop edi
mov dword [ebp - 4], edi
push ebx
lea eax, [ebp - 0xd]
push eax
lea eax, [esi + 0x82]
push eax
lea ecx, [ebp - 0x90]
call fcn.004096ba
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x5c]
push ecx
lea ecx, [ebp + 0x58]
push ecx
mov ecx, eax
call fcn.00415ec8
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x90]
call fcn.004016d0
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x5c]
call fcn.004016d0
push 0
lea eax, [ebp + 0x58]
push eax
push edi
mov ecx, esi
call fcn.004111a1
cmp dword [ebp + 0x74], 8
mov eax, dword [ebp + 0x60]
jae 0x43b9b8
lea eax, [ebp + 0x60]
push ebx
push eax
push str._LangTransform
mov ecx, esi
call fcn.0043a451
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x58]
jmp 0x43ba67
mov ecx, esi
call fcn.00435f9c
test al, al
je 0x43ba36
mov ecx, esi
call fcn.0043876e
test al, al
je 0x43ba36
lea eax, [ebp - 0x14]
push eax
lea ecx, [esi + 4]
mov dword [ebp - 0x14], 6
call fcn.00410c1b
push edi
lea ecx, [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.0040b2f1
mov dword [ebp - 4], 0xb
mov ecx, dword [eax]
mov byte [eax + 4], bl
call fcn.00407803
push dword [eax]
lea eax, [ebp + 0x8c]
push eax
mov ecx, esi
call fcn.00438679
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.0040b14b
jmp 0x43ba6c
push ebx
lea eax, [ebp - 0xd]
push eax
lea eax, [ebp + 0x8c]
push eax
lea ecx, [ebp - 0x5c]
call fcn.004096ba
mov dword [ebp - 4], 0xc
push 0
lea eax, [ebp - 0x5c]
push eax
push 6
mov ecx, esi
call fcn.004111a1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x5c]
call fcn.004016d0
cmp byte [0x4d745e], 0
jne 0x43ba7e
cmp byte [0x4dc5e4], 0
je 0x43bad7
push ebx
lea eax, [ebp - 0xd]
push eax
push str.E:CodeBases_Majesty_Hotfixesisdev_srcRuntimeMSISharedSetup_session.cpp
lea ecx, [ebp + 0x58]
call fcn.004018b0
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.004018b0
mov byte [ebp - 4], 0xe
push 0x35f
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.0049b7a0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x5c]
call fcn.00401670
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x58]
call fcn.00401670
mov ecx, esi
call fcn.00438f1e
test eax, eax
je 0x43b69c
push 0x44f
mov ecx, esi
call fcn.00439569
mov ecx, esi
call fcn.00438502
test eax, eax
je 0x43b69c
push esi
push 0x451
lea ecx, [ebp]
call fcn.0041fa91
mov dword [ebp - 4], 0xf
lea ecx, [ebp]
call fcn.0042d364
test eax, eax
jne 0x43bb37
xor ebx, ebx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp]
call fcn.0041fae1
mov eax, ebx
jmp 0x43b69e
mov eax, dword [ebp + 0xc]
mov dword [esi + 0xb50], eax
call fcn.0041e650
jmp 0x43bb24