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

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x88]
sub rsp, 0x188
mov rax, qword [0x180030048]
xor rax, rsp
mov qword [rbp + 0x70], rax
mov r15, rcx
mov rbx, r9
lea rcx, str.ntdll.dll
mov rsi, r8
mov r14, rdx
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rcx, rax
lea rdx, str.RtlGetVersion
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
xor edx, edx
lea rcx, [rsp + 0x54]
mov rdi, rax
mov r8d, 0x118
xor eax, eax
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 fcn.18000abd0
mov dword [rsp + 0x50], 0x11c
test rdi, rdi
je 0x180002b2c
lea rcx, [rsp + 0x50]
call rdi
test eax, eax
jns 0x180002b3f
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x180002d08
test rbx, rbx
je 0x180002bb7
lea rcx, [rsp + 0x50]
mov eax, 2
nop
lea rbx, [rbx + 0x80]
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
lea rcx, [rcx + 0x80]
movups xmmword [rbx - 0x80], xmm0
movups xmm0, xmmword [rcx - 0x60]
movups xmmword [rbx - 0x70], xmm1
movups xmm1, xmmword [rcx - 0x50]
movups xmmword [rbx - 0x60], xmm0
movups xmm0, xmmword [rcx - 0x40]
movups xmmword [rbx - 0x50], xmm1
movups xmm1, xmmword [rcx - 0x30]
movups xmmword [rbx - 0x40], xmm0
movups xmm0, xmmword [rcx - 0x20]
movups xmmword [rbx - 0x30], xmm1
movups xmm1, xmmword [rcx - 0x10]
movups xmmword [rbx - 0x20], xmm0
movups xmmword [rbx - 0x10], xmm1
sub rax, 1
jne 0x180002b50
mov rax, qword [rcx + 0x10]
movups xmm0, xmmword [rcx]
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], rax
mov eax, dword [rcx + 0x18]
mov dword [rbx + 0x18], eax
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
mov ecx, dword [rsp + 0x60]
xor eax, eax
cmp dword [rsp + 0x44], 0x21d8
mov ebx, eax
movzx edi, word [rbp + 0x64]
sete bl
cmp ecx, 2
jne 0x180002cbe
mov ecx, dword [rsp + 0x54]
cmp ecx, 0xa
jne 0x180002c04
cmp dword [rsp + 0x58], eax
jne 0x180002cec
cmp byte [rbp + 0x6a], 1
setne al
add eax, 0x11
jmp 0x180002cec
cmp ecx, 6
jne 0x180002c5f
mov ecx, dword [rsp + 0x58]
cmp ecx, 3
jne 0x180002c21
cmp byte [rbp + 0x6a], 1
setne al
add eax, 0xf
jmp 0x180002cec
cmp ecx, 2
jne 0x180002c35
cmp byte [rbp + 0x6a], 1
setne al
add eax, 0xd
jmp 0x180002cec
cmp ecx, 1
jne 0x180002c48
cmp byte [rbp + 0x6a], cl
setne al
add eax, 0xb
jmp 0x180002cec
test ecx, ecx
jne 0x180002cec
cmp byte [rbp + 0x6a], 1
setne al
add eax, 9
jmp 0x180002cec
cmp ecx, 5
jne 0x180002cb2
mov ecx, dword [rsp + 0x58]
cmp ecx, 2
jne 0x180002c9f
mov ecx, 0x59
call qword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x180002c83
mov eax, 8
jmp 0x180002cec
cmp byte [rbp + 0x6a], 1
jne 0x180002c98
cmp word [rsp + 0x20], 9
jne 0x180002c98
mov eax, 6
jmp 0x180002cec
mov eax, 7
jmp 0x180002cec
cmp ecx, 1
jne 0x180002ca9
lea eax, [rcx + 5]
jmp 0x180002cec
test ecx, ecx
jne 0x180002cec
lea eax, [rcx + 5]
jmp 0x180002cec
cmp ecx, 4
ja 0x180002cec
mov eax, 4
jmp 0x180002cec
cmp ecx, 1
jne 0x180002cec
cmp dword [rsp + 0x54], 4
jne 0x180002cec
mov ecx, dword [rsp + 0x58]
test ecx, ecx
jne 0x180002cd7
lea eax, [rcx + 1]
jmp 0x180002cec
cmp ecx, 0xa
jne 0x180002ce1
lea eax, [rcx - 8]
jmp 0x180002cec
cmp ecx, 0x5a
mov edx, 3
cmove eax, edx
test r15, r15
je 0x180002cf4
mov dword [r15], eax
test r14, r14
je 0x180002cfc
mov dword [r14], edi
test rsi, rsi
je 0x180002d03
mov dword [rsi], ebx
mov eax, 1
mov rcx, qword [rbp + 0x70]
xor rcx, rsp
call fcn.180009290
add rsp, 0x188
pop r15
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret