Function at 0x180008040
Capabilities:
Check os version
Get system information on windows

Disassembly:
sub rsp, 0x188
mov rax, qword [0x180066010]
xor rax, rsp
mov qword [rsp + 0x170], rax
cmp dword [0x180068f18], 0
jne 0x180008434
xor edx, edx
lea rcx, [rsp + 0x54]
mov r8d, pe_nt_image_headers64
call fcn.180026920
lea rcx, str.NtDll.dll
mov dword [rsp + 0x50], 0x11c
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.RtlGetVersion
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x1800080d4
lea rcx, [rsp + 0x50]
call rax
test eax, eax
je 0x1800080d4
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
jne 0x1800080d4
mov rcx, qword [rsp + 0x170]
xor rcx, rsp
call fcn.180012d60
add rsp, 0x188
ret
mov qword [rsp + 0x190], rbx
mov rbx, 0xffffffffffffffff
mov qword [rsp + 0x180], rdi
mov rax, rbx
mov dword [0x180068fb8], 0
lea rdi, [0x180058218]
nop
inc rax
cmp word [rdi + rax*2], 0
jne 0x180008100
mov r8d, eax
lea rcx, [0x180068fa8]
mov rdx, rdi
call fcn.1800078e0
mov eax, dword [rsp + 0x60]
test eax, eax
je 0x18000839c
sub eax, 1
je 0x18000831f
cmp eax, 1
je 0x180008148
inc rbx
cmp word [rdi + rbx*2], 0
jne 0x180008136
mov rdx, rdi
jmp 0x1800083ba
mov eax, dword [rsp + 0x54]
cmp eax, 4
ja 0x180008171
mov dword [0x180068fb8], 0x40
lea rdx, str.Windows_NT
inc rbx
cmp word [rdx + rbx*2], 0
jne 0x180008162
jmp 0x1800083ba
cmp eax, 5
jne 0x1800081ef
mov eax, dword [rsp + 0x58]
test eax, eax
jne 0x18000819f
mov dword [0x180068fb8], 0x80
lea rdx, str.Windows_2000
nop
inc rbx
cmp word [rdx + rbx*2], 0
jne 0x180008190
jmp 0x1800083ba
cmp eax, 1
jne 0x1800081c4
mov dword [0x180068fb8], 0x100
lea rdx, str.Windows_XP
inc rbx
cmp word [rdx + rbx*2], 0
jne 0x1800081b5
jmp 0x1800083ba
cmp eax, 2
jne 0x1800083c9
mov dword [0x180068fb8], 0x200
lea rdx, str.Windows_2003
nop
inc rbx
cmp word [rdx + rbx*2], 0
jne 0x1800081e0
jmp 0x1800083ba
cmp eax, 6
jne 0x1800082e3
mov eax, dword [rsp + 0x58]
test eax, eax
jne 0x180008220
mov dword [0x180068fb8], 0x400
lea rdx, str.Windows_Vista
inc rbx
cmp word [rdx + rbx*2], 0
jne 0x180008211
jmp 0x1800083ba
cmp eax, 1
jne 0x180008245
mov dword [0x180068fb8], 0x800
lea rdx, str.Windows_7
inc rbx
cmp word [rdx + rbx*2], 0
jne 0x180008236
jmp 0x1800083ba
cmp eax, 2
jne 0x18000826f
mov dword [0x180068fb8], 0x1000
lea rdx, str.Windows_8
nop dword [rax + rax]
inc rbx
cmp word [rdx + rbx*2], 0
jne 0x180008260
jmp 0x1800083ba
cmp eax, 3
jne 0x180008294
mov dword [0x180068fb8], 0x2000
lea rdx, str.Windows_8.1
inc rbx
cmp word [rdx + rbx*2], 0
jne 0x180008285
jmp 0x1800083ba
cmp eax, 4
jne 0x1800083c9
mov eax, dword [rsp + 0x5c]
add eax, 0xffffd98f
cmp eax, 0x26
ja 0x1800083c9
movabs rcx, 0x4000080001
bt rcx, rax
jae 0x1800083c9
mov dword [0x180068fb8], 0x4000
lea rdx, str.Windows_10
inc rbx
cmp word [rdx + rbx*2], 0
jne 0x1800082d4
jmp 0x1800083ba
cmp eax, 0xa
jne 0x1800083c9
cmp dword [rsp + 0x58], 0
jne 0x1800083c9
mov dword [0x180068fb8], 0x4000
lea rdx, str.Windows_10
nop dword [rax + rax]
inc rbx
cmp word [rdx + rbx*2], 0
jne 0x180008310
jmp 0x1800083ba
cmp dword [rsp + 0x54], 4
jne 0x1800083c9
mov eax, dword [rsp + 0x58]
test eax, eax
jne 0x18000834f
mov dword [0x180068fb8], 8
lea rdx, str.Windows_9x
inc rbx
cmp word [rdx + rbx*2], 0
jne 0x180008343
jmp 0x1800083ba
cmp eax, 0xa
jne 0x180008371
mov dword [0x180068fb8], 8
lea rdx, str.Windows_9x
inc rbx
cmp word [rdx + rbx*2], 0
jne 0x180008365
jmp 0x1800083ba
cmp eax, 0x5a
jne 0x1800083c9
mov dword [0x180068fb8], 0x20
lea rdx, str.Windows_ME
nop word [rax + rax]
inc rbx
cmp word [rdx + rbx*2], 0
jne 0x180008390
jmp 0x1800083ba
mov dword [0x180068fb8], 1
lea rdx, str.Windows_3.2
nop dword [rax]
inc rbx
cmp word [rdx + rbx*2], 0
jne 0x1800083b0
mov r8d, ebx
lea rcx, [0x180068fa8]
call fcn.1800078e0
xor eax, eax
lea rcx, str.kernel32.dll
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rax
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.GetNativeSystemInfo
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rdi, qword [rsp + 0x180]
lea rcx, [rsp + 0x20]
mov rbx, qword [rsp + 0x190]
test rax, rax
je 0x180008424
call rax
jmp 0x18000842a
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov dword [0x180068f18], 1
mov eax, 1
mov rcx, qword [rsp + 0x170]
xor rcx, rsp
call fcn.180012d60
add rsp, 0x188
ret