Function at 0x14000f6f4
Capabilities:
Check os version

Disassembly:
mov qword [rsp + 0x20], rbx
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x220
mov rax, qword [0x1400277a0]
xor rax, rsp
mov qword [rsp + 0x218], rax
mov rsi, r8
mov r8, rdx
mov qword [rsp + 0x70], rdx
mov r9, rcx
mov qword [rsp + 0xb8], rcx
mov qword [rsp + 0xc0], rsi
xor edi, edi
mov qword [rsp + 0x50], rdi
mov r13d, edi
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x48], rdi
xorps xmm0, xmm0
movups xmmword [rsp + 0x78], xmm0
movups xmmword [rsp + 0x88], xmm0
movups xmmword [rsp + 0x98], xmm0
mov rdx, qword [rsi + 0x40]
test rdx, rdx
je 0x14000f791
lea rax, [rdx + 0x28]
mov ecx, edi
cmp word [rdx + 2], 0x34
cmovae rcx, rax
mov qword [r8], rcx
mov rax, qword [rsi + 0x40]
mov qword [r9], rax
mov ebx, edi
mov dword [rsp + 0x40], ebx
jmp 0x14000fc80
mov rcx, rsi
call fcn.14000e408
mov ebx, eax
mov dword [rsp + 0x40], eax
test eax, eax
jns 0x14000f7ca
mov dword [rsp + 0x20], eax
lea r9, str.AslFileMappingEnsure_failed___x_
mov r8d, 0x530
lea rdx, str.AslpFileGetVersionBlock
mov ecx, 1
call fcn.14000ac0c
jmp 0x14000fc80
cmp dword [rsi + 0x38], 6
je 0x14000f7d7
mov ebx, 0xc0000089
jmp 0x14000f788
mov qword [rsp + 0x200], 0x10
mov r15d, 1
mov qword [rsp + 0x208], r15
mov qword [rsp + 0x210], rdi
mov r12, qword [rsi + 0x20]
mov qword [rsp + 0xa8], r12
mov rax, qword [rsi + 0x28]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0xb0], rax
mov al, byte [rsi + 0x33]
neg al
sbb r9d, r9d
not r9d
and r9d, 0x200
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rdi
lea rax, [rsp + 0x48]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
lea r8d, [r15 + 2]
lea rdx, [rsp + 0x200]
mov rcx, r12
call qword [sym.imp.ntdll.dll_LdrResSearchResource]
nop dword [rax + rax]
mov ebx, eax
mov dword [rsp + 0x40], eax
test eax, eax
jns 0x14000fa8c
add eax, 0x3fffff77
lea r12d, [r15 + 1]
cmp eax, r12d
jbe 0x14000fc3f
cmp ebx, 0xc000007b
jne 0x14000fa5f
cmp byte [rsi + 0x33], dil
jne 0x14000fa5f
cmp dword [rsi + 0x4c], edi
jne 0x14000fa5f
mov ebx, 0x11c
mov r8d, ebx
xor edx, edx
lea rcx, [rsp + 0xe0]
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
mov dword [rsp + 0xe0], ebx
mov dword [rsp + 0xe4], 6
mov dword [rsp + 0xe8], r12d
mov r8b, 3
mov edx, r12d
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VerSetConditionMask]
nop dword [rax + rax]
mov r8b, 3
mov edx, r15d
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_VerSetConditionMask]
nop dword [rax + rax]
mov r8, rax
lea edx, [r15 + 2]
lea rcx, [rsp + 0xe0]
call qword [sym.imp.ntdll.dll_RtlVerifyVersionInfo]
nop dword [rax + rax]
mov dword [rsp + 0x40], eax
test eax, eax
jns 0x14000f92b
mov ebx, 0xc0000089
mov dword [rsp + 0x40], ebx
jmp 0x14000fc3f
mov rax, qword [rsi + 8]
mov byte [rsp + 0xa0], dil
mov qword [rsp + 0x78], rax
mov dword [rsp + 0x40], edi
mov dl, r15b
lea rcx, [rsp + 0x78]
call fcn.14000eb14
mov ebx, eax
mov dword [rsp + 0x40], eax
lea rdx, str.AslpFileGetVersionBlock
test eax, eax
jns 0x14000f97c
mov dword [rsp + 0x20], eax
lea r9, str.RtlFileMapMapView_failed___x_
mov r8d, 0x58c
mov ecx, r15d
call fcn.14000ac0c
jmp 0x14000fc3f
mov rax, qword [rsi]
mov qword [rsp + 0x20], rax
lea r9, str.Re_mapped_file_as_image_to_get_version_block:__ls
mov r8d, 0x595
mov ebx, 3
mov ecx, ebx
call fcn.14000ac0c
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rdi
lea rax, [rsp + 0x48]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8d, ebx
lea rdx, [rsp + 0x200]
mov rcx, qword [rsp + 0x90]
call qword [sym.imp.ntdll.dll_LdrResSearchResource]
nop dword [rax + rax]
mov ebx, eax
mov dword [rsp + 0x40], eax
lea rdx, str.Found
lea rax, str.Did_not_find
test ebx, ebx
cmovns rax, rdx
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rax
lea r9, str._ls_version_block_after_re_mapping_as_image___x_
mov r8d, 0x5a2
lea rdx, str.AslpFileGetVersionBlock
mov ecx, r12d
call fcn.14000ac0c
test ebx, ebx
jns 0x14000fa3d
mov dword [rsp + 0x20], ebx
lea r9, str.LdrResFindResource_failed___x_
mov r8d, 0x5a5
lea rdx, str.AslpFileGetVersionBlock
jmp 0x14000f96f
mov r12, qword [rsp + 0x90]
mov qword [rsp + 0xa8], r12
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0xb0], rax
jmp 0x14000fa91
mov dword [rsp + 0x28], ebx
mov rax, qword [rsi]
mov qword [rsp + 0x20], rax
lea r9, str.LdrResFindResource_failed__ls___x_
mov r8d, 0x5ad
lea rdx, str.AslpFileGetVersionBlock
mov ecx, r15d
call fcn.14000ac0c
jmp 0x14000fc3f
mov rax, qword [rsp + 0x68]
mov r8, qword [rsp + 0x50]
test r8, r8
jne 0x14000fac0
mov dword [rsp + 0x20], ebx
lea r9, str.LdrResFindResource_returned_null_version_block_with_status:___x_
mov r8d, 0x5b4
lea rdx, str.AslpFileGetVersionBlock
mov ecx, r15d
call fcn.14000ac0c
jmp 0x14000f91d
mov r9, qword [rsp + 0x48]
lea rdx, [r9 + r8]
cmp rdx, r8
jb 0x14000fad2
mov ecx, edi
jmp 0x14000fadb
or rdx, 0xffffffffffffffff
mov ecx, 0xc0000095
mov qword [rsp + 0x68], rdx
mov dword [rsp + 0x40], ecx
test ecx, ecx
jns 0x14000fafa
lea r9, str.Version_block_has_bad_size
mov r8d, 0x5c2
jmp 0x14000fc27
cmp r8, r12
jb 0x14000fc1a
add rax, r12
cmp rdx, rax
ja 0x14000fc1a
cmp byte [rsi + 0x33], dil
jne 0x14000fb36
cmp qword [rsp + 0x80], rdi
jne 0x14000fb36
mov rcx, qword [rsi + 0x18]
add rcx, r12
cmp rdx, rcx
jbe 0x14000fb36
mov r8d, 0x5e0
jmp 0x14000fc20
cmp r9, 0x26
jb 0x14000fc06
lea rcx, [r8 + 6]
lea rdx, [0x14001ef28]
call sub.api_ms_win_crt_private_l1_1_0.dll__o__wcsicmp
test eax, eax
jne 0x14000fc06
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x30]
mov qword [rsp + 0xc8], rcx
mov r8, qword [rsp + 0x48]
mov edx, 8
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
nop dword [rax + rax]
mov rbx, rax
mov r13, rax
mov qword [rsp + 0x58], rax
test rax, rax
jne 0x14000fbaa
mov ebx, 0xc0000017
lea r9, str.Out_of_memory
mov r8d, 0x5f6
jmp 0x14000fc2c
mov r8, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x50]
mov rcx, rbx
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
movzx eax, word [rbx]
mov rcx, qword [rsp + 0x48]
cmp rcx, rax
jae 0x14000fbcc
mov word [rbx], cx
mov qword [rsi + 0x40], rbx
mov r13, rdi
mov qword [rsp + 0x58], rdi
mov rcx, qword [rsp + 0x70]
cmp word [rbx + 2], 0x34
jae 0x14000fbe9
mov qword [rcx], rdi
jmp 0x14000fbf0
lea rax, [rbx + 0x28]
mov qword [rcx], rax
mov rax, qword [rsi + 0x40]
mov rcx, qword [rsp + 0xb8]
mov qword [rcx], rax
mov ebx, edi
jmp 0x14000f922
mov ebx, 0xc00000e5
lea r9, str.Version_block_invalid
mov r8d, 0x5eb
jmp 0x14000fc2c
mov r8d, 0x5ce
lea r9, str.Version_block_out_of_range
mov ebx, 0xc0000089
mov dword [rsp + 0x40], ebx
lea rdx, str.AslpFileGetVersionBlock
mov ecx, r15d
call fcn.14000ac0c
jmp 0x14000fc80
test r13, r13
je 0x14000fca9
mov rcx, qword gs:[0x60]
mov r8, qword [rsp + 0x58]
xor edx, edx
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
nop dword [rax + rax]
mov ebx, dword [rsp + 0x40]
cmp byte [rsp + 0xa0], dil
je 0x14000fcc9
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x14000fcc9
call qword [sym.imp.ntdll.dll_ZwClose]
nop dword [rax + rax]
cmp byte [rsp + 0xa1], dil
je 0x14000fcec
mov rcx, qword [rsp + 0x80]
test rcx, rcx
je 0x14000fcec
call qword [sym.imp.ntdll.dll_ZwClose]
nop dword [rax + rax]
cmp byte [rsp + 0xa2], dil
je 0x14000fd13
mov rdx, qword [rsp + 0x90]
test rdx, rdx
je 0x14000fd13
or rcx, 0xffffffffffffffff
call qword [sym.imp.ntdll.dll_ZwUnmapViewOfSection]
nop dword [rax + rax]
mov eax, ebx
mov rcx, qword [rsp + 0x218]
xor rcx, rsp
call fcn.1400199f0
mov rbx, qword [rsp + 0x268]
add rsp, 0x220
pop r15
pop r13
pop r12
pop rdi
pop rsi
ret