Function at 0x18003c95c
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 [0x18008a090]
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.18004a190
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.18004a190
mov dword [rsp + 0x230], esi
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp eax, ebp
je 0x18003ca70
lea rcx, [rsp + 0x230]
call fcn.180037a58
cmp eax, ebp
je 0x18003ca70
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 0x18003ca7f
mov ecx, dword [rsp + 0x118]
mov r10d, dword [rsp + 0x114]
cmp rdi, rbp
je 0x18003cab6
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 0x18003cb04
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.1800029c8
nop
cmp qword [rsp + 0x100], 0x10
jb 0x18003cafc
mov rcx, qword [rsp + 0xe8]
call fcn.180048114
mov rax, rbx
jmp 0x18003d590
cmp r10d, 5
jne 0x18003ccba
cmp ecx, ebp
jne 0x18003cb2f
lea r8d, [r10 + 7]
lea rdx, str.Windows_2000
lea rcx, [rsp + 0xe0]
call fcn.180002ed4
jmp 0x18003d538
cmp ecx, 1
jne 0x18003cba2
lea r8d, [rcx + 9]
lea rdx, str.Windows_XP
lea rcx, [rsp + 0xe0]
call fcn.180002ed4
movzx r11d, word [rsp + 0x228]
mov eax, 0x200
and r11w, ax
cmp r11w, ax
jne 0x18003cb83
mov r8d, ntohl
lea rdx, str._Home_Edition
lea rcx, [rsp + 0xe0]
call fcn.18000e4bc
jmp 0x18003d538
mov r8d, reloc.WS2_32.dll_setsockopt
lea rdx, str._Professional_Edition
lea rcx, [rsp + 0xe0]
call fcn.18000e4bc
jmp 0x18003d538
cmp ecx, 2
jne 0x18003d538
cmp byte [rsp + 0x22a], 1
jne 0x18003cc23
lea r8d, [rcx + 8]
lea rdx, str.Windows_XP
lea rcx, [rsp + 0xe0]
call fcn.180002ed4
movzx r11d, word [rsp + 0x228]
mov eax, 0x200
and r11w, ax
cmp r11w, ax
jne 0x18003cc04
mov r8d, ntohl
lea rdx, str._Home_Edition
lea rcx, [rsp + 0xe0]
call fcn.18000e4bc
jmp 0x18003d538
mov r8d, reloc.WS2_32.dll_setsockopt
lea rdx, str._Professional_Edition
lea rcx, [rsp + 0xe0]
call fcn.18000e4bc
jmp 0x18003d538
movzx edx, word [rsp + 0x228]
lea rcx, [rsp + 0xb8]
call fcn.18003c8e0
nop
mov r8, rax
lea rdx, str.Windows_Server_2003
lea rcx, [rsp + 0x90]
call fcn.1800090d8
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.1800029c8
nop
cmp qword [rsp + 0xb0], 0x10
jb 0x18003cc81
mov rcx, qword [rsp + 0x98]
call fcn.180048114
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xa8], rbp
mov byte [rsp + 0x98], bpl
cmp qword [rsp + 0xd8], 0x10
jb 0x18003d538
mov rcx, qword [rsp + 0xc0]
call fcn.180048114
jmp 0x18003d538
cmp r10d, 6
jne 0x18003d262
cmp ecx, ebp
jne 0x18003ce04
cmp byte [rsp + 0x22a], 1
jne 0x18003cd6d
mov edx, dword [rsp + 0x30]
lea rcx, [rsp + 0xb8]
call fcn.18003c740
nop
mov r8, rax
lea rdx, str.Windows_Vista
lea rcx, [rsp + 0x90]
call fcn.1800090d8
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.1800029c8
nop
cmp qword [rsp + 0xb0], 0x10
jb 0x18003cd34
mov rcx, qword [rsp + 0x98]
call fcn.180048114
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xa8], rbp
mov byte [rsp + 0x98], bpl
cmp qword [rsp + 0xd8], 0x10
jb 0x18003d538
mov rcx, qword [rsp + 0xc0]
call fcn.180048114
jmp 0x18003d538
movzx edx, word [rsp + 0x228]
lea rcx, [rsp + 0xb8]
call fcn.18003c8e0
nop
mov r8, rax
lea rdx, str.Windows_Server_2008
lea rcx, [rsp + 0x90]
call fcn.1800090d8
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.1800029c8
nop
cmp qword [rsp + 0xb0], 0x10
jb 0x18003cdcb
mov rcx, qword [rsp + 0x98]
call fcn.180048114
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xa8], rbp
mov byte [rsp + 0x98], bpl
cmp qword [rsp + 0xd8], 0x10
jb 0x18003d538
mov rcx, qword [rsp + 0xc0]
call fcn.180048114
jmp 0x18003d538
cmp ecx, 1
jne 0x18003cf44
cmp byte [rsp + 0x22a], cl
jne 0x18003cead
mov edx, dword [rsp + 0x30]
lea rcx, [rsp + 0xb8]
call fcn.18003c740
nop
mov r8, rax
lea rdx, str.Windows_7
lea rcx, [rsp + 0x90]
call fcn.1800090d8
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.1800029c8
nop
cmp qword [rsp + 0xb0], 0x10
jb 0x18003ce74
mov rcx, qword [rsp + 0x98]
call fcn.180048114
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xa8], rbp
mov byte [rsp + 0x98], bpl
cmp qword [rsp + 0xd8], 0x10
jb 0x18003d538
mov rcx, qword [rsp + 0xc0]
call fcn.180048114
jmp 0x18003d538
movzx edx, word [rsp + 0x228]
lea rcx, [rsp + 0xb8]
call fcn.18003c8e0
nop
mov r8, rax
lea rdx, str.Windows_Server_2008_R2
lea rcx, [rsp + 0x90]
call fcn.1800090d8
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.1800029c8
nop
cmp qword [rsp + 0xb0], 0x10
jb 0x18003cf0b
mov rcx, qword [rsp + 0x98]
call fcn.180048114
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xa8], rbp
mov byte [rsp + 0x98], bpl
cmp qword [rsp + 0xd8], 0x10
jb 0x18003d538
mov rcx, qword [rsp + 0xc0]
call fcn.180048114
jmp 0x18003d538
cmp ecx, 2
jne 0x18003d085
cmp byte [rsp + 0x22a], 1
jne 0x18003cfee
mov edx, dword [rsp + 0x30]
lea rcx, [rsp + 0xb8]
call fcn.18003c740
nop
mov r8, rax
lea rdx, str.Windows_8
lea rcx, [rsp + 0x90]
call fcn.1800090d8
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.1800029c8
nop
cmp qword [rsp + 0xb0], 0x10
jb 0x18003cfb5
mov rcx, qword [rsp + 0x98]
call fcn.180048114
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xa8], rbp
mov byte [rsp + 0x98], bpl
cmp qword [rsp + 0xd8], 0x10
jb 0x18003d538
mov rcx, qword [rsp + 0xc0]
call fcn.180048114
jmp 0x18003d538
movzx edx, word [rsp + 0x228]
lea rcx, [rsp + 0xb8]
call fcn.18003c8e0
nop
mov r8, rax
lea rdx, str.Windows_Server_2012
lea rcx, [rsp + 0x90]
call fcn.1800090d8
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.1800029c8
nop
cmp qword [rsp + 0xb0], 0x10
jb 0x18003d04c
mov rcx, qword [rsp + 0x98]
call fcn.180048114
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xa8], rbp
mov byte [rsp + 0x98], bpl
cmp qword [rsp + 0xd8], 0x10
jb 0x18003d538
mov rcx, qword [rsp + 0xc0]
call fcn.180048114
jmp 0x18003d538
cmp ecx, 3
jne 0x18003d1c6
cmp byte [rsp + 0x22a], 1
jne 0x18003d12f
mov edx, dword [rsp + 0x30]
lea rcx, [rsp + 0xb8]
call fcn.18003c740
nop
mov r8, rax
lea rdx, str.Windows_8.1
lea rcx, [rsp + 0x90]
call fcn.1800090d8
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.1800029c8
nop
cmp qword [rsp + 0xb0], 0x10
jb 0x18003d0f6
mov rcx, qword [rsp + 0x98]
call fcn.180048114
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xa8], rbp
mov byte [rsp + 0x98], bpl
cmp qword [rsp + 0xd8], 0x10
jb 0x18003d538
mov rcx, qword [rsp + 0xc0]
call fcn.180048114
jmp 0x18003d538
movzx edx, word [rsp + 0x228]
lea rcx, [rsp + 0xb8]
call fcn.18003c8e0
nop
mov r8, rax
lea rdx, str.Windows_Server_2012_R2
lea rcx, [rsp + 0x90]
call fcn.1800090d8
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.1800029c8
nop
cmp qword [rsp + 0xb0], 0x10
jb 0x18003d18d
mov rcx, qword [rsp + 0x98]
call fcn.180048114
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xa8], rbp
mov byte [rsp + 0x98], bpl
cmp qword [rsp + 0xd8], 0x10
jb 0x18003d538
mov rcx, qword [rsp + 0xc0]
call fcn.180048114
jmp 0x18003d538
cmp ecx, 4
jne 0x18003d538
mov edx, dword [rsp + 0x30]
lea rcx, [rsp + 0xb8]
call fcn.18003c740
nop
mov r8, rax
lea rdx, str.Windows_10_Preview
lea rcx, [rsp + 0x90]
call fcn.1800090d8
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.1800029c8
nop
cmp qword [rsp + 0xb0], 0x10
jb 0x18003d229
mov rcx, qword [rsp + 0x98]
call fcn.180048114
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xa8], rbp
mov byte [rsp + 0x98], bpl
cmp qword [rsp + 0xd8], 0x10
jb 0x18003d538
mov rcx, qword [rsp + 0xc0]
call fcn.180048114
jmp 0x18003d538
mov r8d, 0xa
cmp r10d, r8d
jne 0x18003d538
cmp byte [rsp + 0x22a], 1
jne 0x18003d3f6
cmp dword [rsp + 0x11c], 0x55f0
jb 0x18003d2a2
lea rdx, str.Windows_11
lea rcx, [rsp + 0xe0]
call fcn.180002ed4
jmp 0x18003d2b6
lea rdx, str.Windows_10
lea rcx, [rsp + 0xe0]
call fcn.180002ed4
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.18003d5b8
nop
cmp qword [rsp + 0xa8], rbp
je 0x18003d332
lea r8, [rsp + 0x90]
lea rdx, [0x18007130c]
lea rcx, [rsp + 0x38]
call fcn.1800090d8
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.180003d58
nop
cmp qword [rsp + 0x58], 0x10
jb 0x18003d332
mov rcx, qword [rsp + 0x40]
call fcn.180048114
mov edx, dword [rsp + 0x30]
lea rcx, [rsp + 0x60]
call fcn.18003c740
nop
mov r8, rax
lea rdx, [0x18007130c]
lea rcx, [rsp + 0x38]
call fcn.1800090d8
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.180003d58
nop
cmp qword [rsp + 0x58], 0x10
jb 0x18003d380
mov rcx, qword [rsp + 0x40]
call fcn.180048114
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x50], rbp
mov byte [rsp + 0x40], bpl
cmp qword [rsp + 0x80], 0x10
jb 0x18003d3a5
mov rcx, qword [rsp + 0x68]
call fcn.180048114
nop
cmp qword [rsp + 0xd8], 0x10
jb 0x18003d3bd
mov rcx, qword [rsp + 0xc0]
call fcn.180048114
mov qword [rsp + 0xd8], r12
mov qword [rsp + 0xd0], rbp
mov byte [rsp + 0xc0], bpl
cmp qword [rsp + 0xb0], 0x10
jb 0x18003d4ea
mov rcx, qword [rsp + 0x98]
call fcn.180048114
jmp 0x18003d4ea
cmp dword [rsp + 0x11c], 0x4f7c
jb 0x18003d41f
mov r8d, sendto
lea rdx, str.Windows_Server_2022
lea rcx, [rsp + 0xe0]
call fcn.180002ed4
jmp 0x18003d462
cmp dword [rsp + 0x11c], 0x4268
jb 0x18003d448
mov r8d, sendto
lea rdx, str.Windows_Server_2019
lea rcx, [rsp + 0xe0]
call fcn.180002ed4
jmp 0x18003d462
mov r8d, sendto
lea rdx, str.Windows_Server_2016
lea rcx, [rsp + 0xe0]
call fcn.180002ed4
movzx edx, word [rsp + 0x228]
lea rcx, [rsp + 0x60]
call fcn.18003c8e0
nop
mov r8, rax
lea rdx, [0x18007130c]
lea rcx, [rsp + 0xb8]
call fcn.1800090d8
nop
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.180003d58
nop
cmp qword [rsp + 0xd8], 0x10
jb 0x18003d4bd
mov rcx, qword [rsp + 0xc0]
call fcn.180048114
mov qword [rsp + 0xd8], r12
mov qword [rsp + 0xd0], rbp
mov byte [rsp + 0xc0], bpl
cmp qword [rsp + 0x80], 0x10
jb 0x18003d4ea
mov rcx, qword [rsp + 0x68]
call fcn.180048114
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.180039de8
nop
cmp qword [rsp + 0x100], 0x10
jb 0x18003d533
mov rcx, qword [rsp + 0xe8]
call fcn.180048114
mov rax, rbx
jmp 0x18003d590
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.180039de8
nop
cmp qword [rsp + 0x100], 0x10
jb 0x18003d58d
mov rcx, qword [rsp + 0xe8]
call fcn.180048114
mov rax, rbx
mov rcx, qword [rsp + 0x350]
xor rcx, rsp
call fcn.180047b20
lea r11, [rsp + 0x360]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsp, r11
pop r12
pop rdi
pop rsi
ret