Function at 0x18003aa2c
Capabilities:
Check os version

Disassembly:
mov r11, rsp
push rsi
push rdi
push r12
sub rsp, 0x360
mov qword [rsp + 0x88], 0xfffffffffffffffe
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rbp
mov rax, qword [0x180080060]
xor rax, rsp
mov qword [rsp + 0x350], rax
mov rbx, rcx
xor ebp, ebp
mov dword [rsp + 0x30], ebp
lea r12d, [rbp + 0xf]
mov qword [r11 - 0x278], r12
mov qword [r11 - 0x280], rbp
mov byte [rsp + 0xe8], bpl
mov dword [rsp + 0x30], ebp
mov esi, 0x11c
mov r8, rsi
xor edx, edx
lea rcx, [r11 - 0x268]
call fcn.180044a90
mov dword [rsp + 0x110], esi
lea rcx, [rsp + 0x110]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
mov dword [rsp + 0x30], ebp
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.GetProductInfo
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rdi, rax
mov r8, rsi
xor edx, edx
lea rcx, [rsp + 0x230]
call fcn.180044a90
mov dword [rsp + 0x230], esi
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp eax, ebp
je 0x18003ab40
lea rcx, [rsp + 0x230]
call fcn.180035e44
cmp eax, ebp
je 0x18003ab40
mov r10d, dword [rsp + 0x234]
mov dword [rsp + 0x114], r10d
mov ecx, dword [rsp + 0x238]
mov dword [rsp + 0x118], ecx
mov eax, dword [rsp + 0x23c]
mov dword [rsp + 0x11c], eax
jmp 0x18003ab4f
mov ecx, dword [rsp + 0x118]
mov r10d, dword [rsp + 0x114]
cmp rdi, rbp
je 0x18003ab86
movzx r9d, word [rsp + 0x226]
movzx r8d, word [rsp + 0x224]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
mov edx, ecx
mov ecx, r10d
call rdi
mov ecx, dword [rsp + 0x118]
mov r10d, dword [rsp + 0x114]
cmp dword [rsp + 0x120], 2
je 0x18003abd4
mov qword [rbx + 0x20], r12
mov qword [rbx + 0x18], rbp
mov byte [rbx + 8], bpl
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rsp + 0xe0]
mov rcx, rbx
call fcn.180002954
nop
cmp qword [rsp + 0x100], 0x10
jb 0x18003abcc
mov rcx, qword [rsp + 0xe8]
call fcn.180042a14
mov rax, rbx
jmp 0x18003b660
cmp r10d, 5
jne 0x18003ad8a
cmp ecx, ebp
jne 0x18003abff
lea r8d, [r10 + 7]
lea rdx, str.Windows_2000
lea rcx, [rsp + 0xe0]
call fcn.180002e60
jmp 0x18003b608
cmp ecx, 1
jne 0x18003ac72
lea r8d, [rcx + 9]
lea rdx, str.Windows_XP
lea rcx, [rsp + 0xe0]
call fcn.180002e60
movzx r11d, word [rsp + 0x228]
mov eax, 0x200
and r11w, ax
cmp r11w, ax
jne 0x18003ac53
mov r8d, ntohl
lea rdx, str._Home_Edition
lea rcx, [rsp + 0xe0]
call fcn.18000cde0
jmp 0x18003b608
mov r8d, reloc.WS2_32.dll_setsockopt
lea rdx, str._Professional_Edition
lea rcx, [rsp + 0xe0]
call fcn.18000cde0
jmp 0x18003b608
cmp ecx, 2
jne 0x18003b608
cmp byte [rsp + 0x22a], 1
jne 0x18003acf3
lea r8d, [rcx + 8]
lea rdx, str.Windows_XP
lea rcx, [rsp + 0xe0]
call fcn.180002e60
movzx r11d, word [rsp + 0x228]
mov eax, 0x200
and r11w, ax
cmp r11w, ax
jne 0x18003acd4
mov r8d, ntohl
lea rdx, str._Home_Edition
lea rcx, [rsp + 0xe0]
call fcn.18000cde0
jmp 0x18003b608
mov r8d, reloc.WS2_32.dll_setsockopt
lea rdx, str._Professional_Edition
lea rcx, [rsp + 0xe0]
call fcn.18000cde0
jmp 0x18003b608
movzx edx, word [rsp + 0x228]
lea rcx, [rsp + 0xb8]
call fcn.18003a9b0
nop
mov r8, rax
lea rdx, str.Windows_Server_2003
lea rcx, [rsp + 0x90]
call fcn.180009038
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.180002954
nop
cmp qword [rsp + 0xb0], 0x10
jb 0x18003ad51
mov rcx, qword [rsp + 0x98]
call fcn.180042a14
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xa8], rbp
mov byte [rsp + 0x98], bpl
cmp qword [rsp + 0xd8], 0x10
jb 0x18003b608
mov rcx, qword [rsp + 0xc0]
call fcn.180042a14
jmp 0x18003b608
cmp r10d, 6
jne 0x18003b332
cmp ecx, ebp
jne 0x18003aed4
cmp byte [rsp + 0x22a], 1
jne 0x18003ae3d
mov edx, dword [rsp + 0x30]
lea rcx, [rsp + 0xb8]
call fcn.18003a810
nop
mov r8, rax
lea rdx, str.Windows_Vista
lea rcx, [rsp + 0x90]
call fcn.180009038
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.180002954
nop
cmp qword [rsp + 0xb0], 0x10
jb 0x18003ae04
mov rcx, qword [rsp + 0x98]
call fcn.180042a14
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xa8], rbp
mov byte [rsp + 0x98], bpl
cmp qword [rsp + 0xd8], 0x10
jb 0x18003b608
mov rcx, qword [rsp + 0xc0]
call fcn.180042a14
jmp 0x18003b608
movzx edx, word [rsp + 0x228]
lea rcx, [rsp + 0xb8]
call fcn.18003a9b0
nop
mov r8, rax
lea rdx, str.Windows_Server_2008
lea rcx, [rsp + 0x90]
call fcn.180009038
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.180002954
nop
cmp qword [rsp + 0xb0], 0x10
jb 0x18003ae9b
mov rcx, qword [rsp + 0x98]
call fcn.180042a14
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xa8], rbp
mov byte [rsp + 0x98], bpl
cmp qword [rsp + 0xd8], 0x10
jb 0x18003b608
mov rcx, qword [rsp + 0xc0]
call fcn.180042a14
jmp 0x18003b608
cmp ecx, 1
jne 0x18003b014
cmp byte [rsp + 0x22a], cl
jne 0x18003af7d
mov edx, dword [rsp + 0x30]
lea rcx, [rsp + 0xb8]
call fcn.18003a810
nop
mov r8, rax
lea rdx, str.Windows_7
lea rcx, [rsp + 0x90]
call fcn.180009038
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.180002954
nop
cmp qword [rsp + 0xb0], 0x10
jb 0x18003af44
mov rcx, qword [rsp + 0x98]
call fcn.180042a14
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xa8], rbp
mov byte [rsp + 0x98], bpl
cmp qword [rsp + 0xd8], 0x10
jb 0x18003b608
mov rcx, qword [rsp + 0xc0]
call fcn.180042a14
jmp 0x18003b608
movzx edx, word [rsp + 0x228]
lea rcx, [rsp + 0xb8]
call fcn.18003a9b0
nop
mov r8, rax
lea rdx, str.Windows_Server_2008_R2
lea rcx, [rsp + 0x90]
call fcn.180009038
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.180002954
nop
cmp qword [rsp + 0xb0], 0x10
jb 0x18003afdb
mov rcx, qword [rsp + 0x98]
call fcn.180042a14
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xa8], rbp
mov byte [rsp + 0x98], bpl
cmp qword [rsp + 0xd8], 0x10
jb 0x18003b608
mov rcx, qword [rsp + 0xc0]
call fcn.180042a14
jmp 0x18003b608
cmp ecx, 2
jne 0x18003b155
cmp byte [rsp + 0x22a], 1
jne 0x18003b0be
mov edx, dword [rsp + 0x30]
lea rcx, [rsp + 0xb8]
call fcn.18003a810
nop
mov r8, rax
lea rdx, str.Windows_8
lea rcx, [rsp + 0x90]
call fcn.180009038
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.180002954
nop
cmp qword [rsp + 0xb0], 0x10
jb 0x18003b085
mov rcx, qword [rsp + 0x98]
call fcn.180042a14
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xa8], rbp
mov byte [rsp + 0x98], bpl
cmp qword [rsp + 0xd8], 0x10
jb 0x18003b608
mov rcx, qword [rsp + 0xc0]
call fcn.180042a14
jmp 0x18003b608
movzx edx, word [rsp + 0x228]
lea rcx, [rsp + 0xb8]
call fcn.18003a9b0
nop
mov r8, rax
lea rdx, str.Windows_Server_2012
lea rcx, [rsp + 0x90]
call fcn.180009038
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.180002954
nop
cmp qword [rsp + 0xb0], 0x10
jb 0x18003b11c
mov rcx, qword [rsp + 0x98]
call fcn.180042a14
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xa8], rbp
mov byte [rsp + 0x98], bpl
cmp qword [rsp + 0xd8], 0x10
jb 0x18003b608
mov rcx, qword [rsp + 0xc0]
call fcn.180042a14
jmp 0x18003b608
cmp ecx, 3
jne 0x18003b296
cmp byte [rsp + 0x22a], 1
jne 0x18003b1ff
mov edx, dword [rsp + 0x30]
lea rcx, [rsp + 0xb8]
call fcn.18003a810
nop
mov r8, rax
lea rdx, str.Windows_8.1
lea rcx, [rsp + 0x90]
call fcn.180009038
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.180002954
nop
cmp qword [rsp + 0xb0], 0x10
jb 0x18003b1c6
mov rcx, qword [rsp + 0x98]
call fcn.180042a14
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xa8], rbp
mov byte [rsp + 0x98], bpl
cmp qword [rsp + 0xd8], 0x10
jb 0x18003b608
mov rcx, qword [rsp + 0xc0]
call fcn.180042a14
jmp 0x18003b608
movzx edx, word [rsp + 0x228]
lea rcx, [rsp + 0xb8]
call fcn.18003a9b0
nop
mov r8, rax
lea rdx, str.Windows_Server_2012_R2
lea rcx, [rsp + 0x90]
call fcn.180009038
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.180002954
nop
cmp qword [rsp + 0xb0], 0x10
jb 0x18003b25d
mov rcx, qword [rsp + 0x98]
call fcn.180042a14
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xa8], rbp
mov byte [rsp + 0x98], bpl
cmp qword [rsp + 0xd8], 0x10
jb 0x18003b608
mov rcx, qword [rsp + 0xc0]
call fcn.180042a14
jmp 0x18003b608
cmp ecx, 4
jne 0x18003b608
mov edx, dword [rsp + 0x30]
lea rcx, [rsp + 0xb8]
call fcn.18003a810
nop
mov r8, rax
lea rdx, str.Windows_10_Preview
lea rcx, [rsp + 0x90]
call fcn.180009038
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.180002954
nop
cmp qword [rsp + 0xb0], 0x10
jb 0x18003b2f9
mov rcx, qword [rsp + 0x98]
call fcn.180042a14
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xa8], rbp
mov byte [rsp + 0x98], bpl
cmp qword [rsp + 0xd8], 0x10
jb 0x18003b608
mov rcx, qword [rsp + 0xc0]
call fcn.180042a14
jmp 0x18003b608
mov r8d, 0xa
cmp r10d, r8d
jne 0x18003b608
cmp byte [rsp + 0x22a], 1
jne 0x18003b4c6
cmp dword [rsp + 0x11c], 0x55f0
jb 0x18003b372
lea rdx, str.Windows_11
lea rcx, [rsp + 0xe0]
call fcn.180002e60
jmp 0x18003b386
lea rdx, str.Windows_10
lea rcx, [rsp + 0xe0]
call fcn.180002e60
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xa8], rbp
mov byte [rsp + 0x98], bpl
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0xb8]
call fcn.18003b688
nop
cmp qword [rsp + 0xa8], rbp
je 0x18003b402
lea r8, [rsp + 0x90]
lea rdx, [0x180069b3c]
lea rcx, [rsp + 0x38]
call fcn.180009038
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.180003ce4
nop
cmp qword [rsp + 0x58], 0x10
jb 0x18003b402
mov rcx, qword [rsp + 0x40]
call fcn.180042a14
mov edx, dword [rsp + 0x30]
lea rcx, [rsp + 0x60]
call fcn.18003a810
nop
mov r8, rax
lea rdx, [0x180069b3c]
lea rcx, [rsp + 0x38]
call fcn.180009038
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.180003ce4
nop
cmp qword [rsp + 0x58], 0x10
jb 0x18003b450
mov rcx, qword [rsp + 0x40]
call fcn.180042a14
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x50], rbp
mov byte [rsp + 0x40], bpl
cmp qword [rsp + 0x80], 0x10
jb 0x18003b475
mov rcx, qword [rsp + 0x68]
call fcn.180042a14
nop
cmp qword [rsp + 0xd8], 0x10
jb 0x18003b48d
mov rcx, qword [rsp + 0xc0]
call fcn.180042a14
mov qword [rsp + 0xd8], r12
mov qword [rsp + 0xd0], rbp
mov byte [rsp + 0xc0], bpl
cmp qword [rsp + 0xb0], 0x10
jb 0x18003b5ba
mov rcx, qword [rsp + 0x98]
call fcn.180042a14
jmp 0x18003b5ba
cmp dword [rsp + 0x11c], 0x4f7c
jb 0x18003b4ef
mov r8d, socket
lea rdx, str.Windows_Server_2022
lea rcx, [rsp + 0xe0]
call fcn.180002e60
jmp 0x18003b532
cmp dword [rsp + 0x11c], 0x4268
jb 0x18003b518
mov r8d, socket
lea rdx, str.Windows_Server_2019
lea rcx, [rsp + 0xe0]
call fcn.180002e60
jmp 0x18003b532
mov r8d, socket
lea rdx, str.Windows_Server_2016
lea rcx, [rsp + 0xe0]
call fcn.180002e60
movzx edx, word [rsp + 0x228]
lea rcx, [rsp + 0x60]
call fcn.18003a9b0
nop
mov r8, rax
lea rdx, [0x180069b3c]
lea rcx, [rsp + 0xb8]
call fcn.180009038
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.180003ce4
nop
cmp qword [rsp + 0xd8], 0x10
jb 0x18003b58d
mov rcx, qword [rsp + 0xc0]
call fcn.180042a14
mov qword [rsp + 0xd8], r12
mov qword [rsp + 0xd0], rbp
mov byte [rsp + 0xc0], bpl
cmp qword [rsp + 0x80], 0x10
jb 0x18003b5ba
mov rcx, qword [rsp + 0x68]
call fcn.180042a14
lea r8, [rsp + 0xe8]
cmp qword [rsp + 0x100], 0x10
cmovae r8, qword [rsp + 0xe8]
lea r9, str.64_bit
lea rdx, str._s__s
mov rcx, rbx
call fcn.1800384e0
nop
cmp qword [rsp + 0x100], 0x10
jb 0x18003b603
mov rcx, qword [rsp + 0xe8]
call fcn.180042a14
mov rax, rbx
jmp 0x18003b660
lea r8, [rsp + 0xe8]
cmp qword [rsp + 0x100], 0x10
cmovae r8, qword [rsp + 0xe8]
movzx eax, word [rsp + 0x11c]
mov dword [rsp + 0x20], eax
lea r9, str.64_bit
lea rdx, str._s__s___Build__d_
mov rcx, rbx
call fcn.1800384e0
nop
cmp qword [rsp + 0x100], 0x10
jb 0x18003b65d
mov rcx, qword [rsp + 0xe8]
call fcn.180042a14
mov rax, rbx
mov rcx, qword [rsp + 0x350]
xor rcx, rsp
call fcn.1800423f0
lea r11, [rsp + 0x360]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsp, r11
pop r12
pop rdi
pop rsi
ret