Function at 0x1400096b0
Capabilities:
Check os version

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r12
push rbp
push r14
push r15
lea rbp, [rsp - 0x160]
sub rsp, 0x260
mov r14, r8
mov r15, rdx
mov rsi, rcx
xor r12d, r12d
cmp qword [rcx + 8], r12
je 0x14000972c
mov edx, dword [rcx + 0x14]
lea rcx, str.Windows
call fcn.14003c464
mov r8d, dword [rsi + 0x14]
lea ecx, [r8 - 1]
cmp eax, r8d
cmovb ecx, eax
mov edi, ecx
lea rbx, [rcx + rcx]
mov r8, rbx
lea rdx, str.Windows
mov rcx, qword [rsi + 8]
call fcn.14014cbf0
mov dword [rsi + 0x10], edi
mov rax, qword [rsi + 8]
mov word [rbx + rax], r12w
xor edx, edx
mov r8d, 0x118
lea rcx, [rsp + 0x24]
call fcn.14014d290
mov dword [rsp + 0x20], 0x11c
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x140009a36
mov ecx, dword [rsp + 0x28]
mov edx, dword [rsp + 0x24]
test r15, r15
je 0x14000976e
imul eax, edx, 0x64
add eax, ecx
mov dword [r15], eax
test r14, r14
je 0x14000977a
mov eax, dword [rsp + 0x2c]
mov dword [r14], eax
cmp edx, 6
jne 0x140009805
test ecx, ecx
je 0x1400097ea
sub ecx, 1
je 0x1400097cf
sub ecx, 1
je 0x1400097b4
cmp ecx, 1
jne 0x14000991a
lea rax, str.Windows_8.1
lea rdx, str.Windows_Server_2012_R2
cmp byte [rbp + 0x3a], cl
cmove rdx, rax
jmp 0x140009912
lea rax, str.Windows_8
lea rdx, str.Windows_Server_2012
cmp byte [rbp + 0x3a], 1
cmove rdx, rax
jmp 0x140009912
lea rax, str.Windows_7
lea rdx, str.Windows_Server_2008_R2
cmp byte [rbp + 0x3a], 1
cmove rdx, rax
jmp 0x140009912
lea rax, str.Windows_Vista
lea rdx, str.Windows_Server_2008
cmp byte [rbp + 0x3a], 1
cmove rdx, rax
jmp 0x140009912
cmp edx, 0xa
jne 0x1400098f7
cmp byte [rbp + 0x3a], 1
jne 0x140009857
cmp qword [rsi + 8], r12
je 0x14000991a
mov edx, dword [rsi + 0x14]
cmp dword [rsp + 0x2c], 0x55f0
jae 0x140009843
lea rcx, [0x1401b9688]
call fcn.14003c464
lea rdx, [0x1401b9688]
jmp 0x1400098c9
lea r15, str.Windows_11
mov rcx, r15
call fcn.14003c464
mov rdx, r15
jmp 0x1400098c9
cmp dword [rsp + 0x2c], 0x4f7c
jb 0x14000988a
cmp qword [rsi + 8], r12
je 0x14000991a
mov edx, dword [rsi + 0x14]
lea r14, str.Windows_Server_2022
mov rcx, r14
call fcn.14003c464
mov edx, dword [rsi + 0x14]
lea ecx, [rdx - 1]
cmp eax, edx
mov rdx, r14
jmp 0x1400098d4
cmp qword [rsi + 8], r12
je 0x14000991a
mov edx, dword [rsi + 0x14]
cmp dword [rsp + 0x2c], 0x3839
jbe 0x1400098b6
lea rcx, str.Windows_Server_2019
call fcn.14003c464
lea rdx, str.Windows_Server_2019
jmp 0x1400098c9
lea rcx, str.Windows_Server_2016
call fcn.14003c464
lea rdx, str.Windows_Server_2016
mov r8d, dword [rsi + 0x14]
cmp eax, r8d
lea ecx, [r8 - 1]
cmovb ecx, eax
lea rbx, [rcx + rcx]
mov edi, ecx
mov r8, rbx
mov rcx, qword [rsi + 8]
call fcn.14014cbf0
mov dword [rsi + 0x10], edi
mov rax, qword [rsi + 8]
mov word [rbx + rax], r12w
jmp 0x14000991a
cmp edx, 0xb
jne 0x14000991a
lea r15, str.Windows_11
lea rdx, str.Windows_Server_2022
cmp byte [rbp + 0x3a], 1
cmove rdx, r15
mov rcx, rsi
call fcn.1400030f0
lea rax, [rbp + 0x58]
mov qword [rbp + 0x48], rax
mov dword [rbp + 0x50], r12d
mov dword [rbp + 0x54], 0x80
mov word [rbp + 0x58], r12w
lea rax, [0x1401b9730]
mov qword [rbp + 0x40], rax
lea rcx, [rbp + 0x40]
cmp word [rsp + 0x34], 0
jne 0x14000995d
movzx r8d, word [rsp + 0x2c]
lea rdx, str._build__d
call fcn.140003670
jmp 0x140009974
movzx r9d, word [rsp + 0x2c]
lea r8, [rsp + 0x34]
lea rdx, str.__s_build__d
call fcn.140003670
mov rdx, qword [rsi + 8]
test rdx, rdx
je 0x1400099b6
mov ecx, dword [rbp + 0x50]
test ecx, ecx
je 0x1400099b6
mov r9d, dword [rsi + 0x10]
lea eax, [r9 + rcx]
cmp eax, dword [rsi + 0x14]
jae 0x1400099b6
mov r8d, ecx
lea rcx, [rdx + r9*2]
add r8, r8
mov rdx, qword [rbp + 0x48]
call fcn.14014cbf0
mov edx, dword [rsi + 0x10]
add edx, dword [rbp + 0x50]
mov dword [rsi + 0x10], edx
mov rax, qword [rsi + 8]
mov word [rax + rdx*2], r12w
lea rcx, [rbp + 0x40]
call fcn.140009520
test al, al
je 0x140009a34
mov rdx, qword [rsi + 8]
test rdx, rdx
je 0x1400099f2
mov ecx, dword [rsi + 0x10]
lea eax, [rcx + 4]
cmp eax, dword [rsi + 0x14]
jae 0x1400099f2
mov rax, qword [str._on]
mov qword [rdx + rcx*2], rax
add dword [rsi + 0x10], 4
mov ecx, dword [rsi + 0x10]
mov rax, qword [rsi + 8]
mov word [rax + rcx*2], r12w
mov rdx, qword [rsi + 8]
test rdx, rdx
je 0x140009a34
mov ecx, dword [rbp + 0x50]
test ecx, ecx
je 0x140009a34
mov r9d, dword [rsi + 0x10]
lea eax, [r9 + rcx]
cmp eax, dword [rsi + 0x14]
jae 0x140009a34
mov r8d, ecx
lea rcx, [rdx + r9*2]
add r8, r8
mov rdx, qword [rbp + 0x48]
call fcn.14014cbf0
mov edx, dword [rsi + 0x10]
add edx, dword [rbp + 0x50]
mov dword [rsi + 0x10], edx
mov rax, qword [rsi + 8]
mov word [rax + rdx*2], r12w
mov al, 1
lea r11, [rsp + 0x260]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret