Function at 0x14000f9e0
Capabilities:
Check os version
Identify system language via api

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rax - 0xb8]
sub rsp, 0x190
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov rax, qword [0x1400c5a08]
xor rax, rsp
mov qword [rbp + 0x80], rax
mov r14d, r9d
mov rbx, r8
mov r15d, edx
mov rsi, rcx
and qword [rsp + 0x38], 0
mov eax, 0xffff
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x44], eax
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x4c], eax
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x54], eax
xor edi, edi
cmp qword [rcx + 0x148], rdi
jne 0x14000fa64
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
xor ecx, ecx
jmp 0x14000fd92
test rbx, rbx
je 0x14000fb51
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.140029fcc
mov edi, eax
test eax, eax
js 0x14000fa96
lea r8, [rsi + 0x60]
mov edx, dword [rsp + 0x30]
mov rcx, rbx
call fcn.140028308
mov edi, eax
test eax, eax
jns 0x14000fa9d
mov ecx, eax
call fcn.140025d30
mov ecx, edi
call fcn.140025d50
mov rcx, rsi
test edi, edi
jns 0x14000fad4
mov rax, qword [rsi]
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
xor ecx, ecx
test rax, rax
je 0x14000fd92
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], 0x313
jmp 0x14000fd6c
mov r8, qword [rsi + 0x60]
mov rdx, qword [rsi + 0x148]
call fcn.1400136f0
mov edi, eax
test eax, eax
jns 0x14000fb16
mov rcx, qword [rsi]
mov rax, qword [rcx + 0x18]
mov rcx, rsi
call qword [str.PN_t_]
xor ecx, ecx
test rax, rax
je 0x14000fd92
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], 0x315
jmp 0x14000fd6c
test r14d, r14d
je 0x14000fb51
mov rbx, qword [rsi + 0x58]
test rbx, rbx
je 0x14000fb51
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov rcx, rax
lea r8, [rbx - 4]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
xor ecx, ecx
call fcn.140025d50
and qword [rsi + 0x58], 0
cmp r15d, 5
jne 0x14000fd97
mov rdi, qword [rsi + 0x148]
mov rbx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
nop dword [rax + rax]
movzx edx, ax
lea r8, [rsp + 0x38]
mov rcx, rdi
mov rax, qword [rbx + 0x38]
call qword [str.PN_t_]
mov ebx, eax
mov rcx, qword [rsi]
mov rax, qword [rcx + 0x18]
lea r14d, [r15 - 3]
mov rcx, rsi
call qword [str.PN_t_]
test ebx, ebx
js 0x14000fc48
test rax, rax
je 0x14000fbd0
mov rax, qword [rsi]
mov rcx, rsi
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
mov rcx, rax
mov r9, qword [rsp + 0x38]
lea r8, str.SetupHost::EulaFile_path:___s_
mov edx, r14d
call fcn.14002374c
mov rbx, qword [rsp + 0x38]
test rbx, rbx
jne 0x14000fbde
xor edx, edx
jmp 0x14000fbf5
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.140029fcc
mov edi, eax
test eax, eax
js 0x14000fc0a
mov edx, dword [rsp + 0x30]
lea r8, [rsi + 0xa0]
mov rcx, rbx
call fcn.140028308
mov edi, eax
test eax, eax
jns 0x14000fc11
mov ecx, eax
call fcn.140025d30
mov ecx, edi
call fcn.140025d50
test edi, edi
jns 0x14000fc72
mov rax, qword [rsi]
mov rcx, rsi
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
xor ecx, ecx
test rax, rax
je 0x14000fd92
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], 0x322
jmp 0x14000fd6c
test rax, rax
je 0x14000fc72
mov rax, qword [rsi]
mov rcx, rsi
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
mov rcx, rax
mov r9d, ebx
lea r8, str.SetupHost::GetEulaFile_result:__0x_X_._Proceeding_without_EULA.
mov edx, r14d
call fcn.14002374c
lea rcx, [rsp + 0x40]
call fcn.14007cccc
mov edi, eax
test eax, eax
jns 0x14000fcae
mov rax, qword [rsi]
mov rcx, rsi
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
xor ecx, ecx
test rax, rax
je 0x14000fd92
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], 0x32a
jmp 0x14000fd6c
xor edx, edx
mov r8d, 0x118
lea rcx, [rsp + 0x64]
call sub.msvcrt.dll_memset
mov dword [rsp + 0x60], 0x11c
lea rcx, [rsp + 0x60]
call qword [sym.imp.ntdll.dll_RtlGetVersion]
nop dword [rax + rax]
test eax, eax
js 0x14000fd34
cmp dword [rsp + 0x64], 6
ja 0x14000fced
jne 0x14000fd34
cmp dword [rsp + 0x68], 4
jb 0x14000fd34
cmp dword [rsp + 0x50], 0x277a
jae 0x14000fd34
mov rax, qword [rsi]
mov rcx, rsi
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
test rax, rax
je 0x14000fd97
mov rax, qword [rsi]
mov rcx, rsi
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
mov rcx, rax
lea r8, str.SetupHost:_Skipping_check_for_HasExternalDownloadStorageCapability.
mov edx, r14d
call fcn.14002374c
jmp 0x14000fd97
lea rdx, [rsi + 0x12c]
mov rcx, rsi
call fcn.14001033c
mov edi, eax
test eax, eax
jns 0x14000fd97
mov rax, qword [rsi]
mov rcx, rsi
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
xor ecx, ecx
test rax, rax
je 0x14000fd92
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], 0x332
lea r9, str.CSetupHost::SetCachedFileNames
lea r8, str._s__d_:_Result__0x_X
mov edx, 4
mov rcx, rax
call fcn.14002374c
mov ecx, eax
test eax, eax
jns 0x14000fd92
call fcn.140025d30
call fcn.140025d50
mov ecx, edi
call fcn.140025d50
nop
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x14000fdbb
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
and qword [rsp + 0x38], 0
mov eax, edi
mov rcx, qword [rbp + 0x80]
xor rcx, rsp
call fcn.140094220
mov rbx, qword [rsp + 0x1c8]
add rsp, 0x190
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret