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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r14
lea rbp, [rsp - 0xe0]
sub rsp, 0x1e0
mov rax, qword [0x1401750b8]
xor rax, rsp
mov qword [rbp + 0xd0], rax
xor r14d, r14d
mov rbx, rcx
mov qword [rcx], r14
mov byte [rcx + 8], r14b
mov qword [rcx + 0x40], 0xf
mov qword [rcx + 0x38], r14
mov byte [rcx + 0x28], r14b
mov dword [rcx + 0x48], 3
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea rcx, str.kernel32.dll
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, [0x140150ed0]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
jne 0x1400704f2
mov eax, r14d
jmp 0x140070517
lea rdx, [rsp + 0x30]
mov dword [rsp + 0x30], r14d
mov rcx, rsi
call rax
test eax, eax
jne 0x14007050c
mov eax, 2
jmp 0x140070517
cmp dword [rsp + 0x30], r14d
mov eax, r14d
setne al
mov dword [rbx + 0x58], eax
lea rcx, [rbp - 0x4c]
mov qword [rbx + 0x78], 0xf
xor edx, edx
mov qword [rbx + 0x70], r14
mov r8d, 0x118
mov byte [rbx + 0x60], r14b
mov dword [rbp - 0x50], 0x11c
call fcn.140113400
lea rcx, [rbp - 0x50]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
mov eax, dword [rbp - 0x4c]
mov dword [rbx + 0xc], eax
mov eax, dword [rbp - 0x48]
mov dword [rbx + 0x10], eax
mov eax, dword [rbp - 0x44]
mov dword [rbx + 0x14], eax
call fcn.140070360
mov edx, dword [rbx + 0x10]
mov r8d, dword [rbx + 0x14]
mov ecx, dword [rbx + 0xc]
mov dword [rbx + 0x18], eax
call fcn.1400702e0
mov dword [rbx], eax
movzx eax, word [rbp + 0xc4]
mov dword [rbx + 0x20], eax
movzx eax, word [rbp + 0xc6]
mov dword [rbx + 0x24], eax
mov qword [rbp - 0x80], 7
mov qword [rsp + 0x78], r14
mov word [rsp + 0x68], r14w
cmp word [rbp - 0x3c], r14w
jne 0x1400705aa
mov r8, r14
jmp 0x1400705bc
lea rax, [rbp - 0x3c]
or r8, 0xffffffffffffffff
inc r8
cmp word [rax + r8*2], r14w
jne 0x1400705b2
lea rdx, [rbp - 0x3c]
lea rcx, [rsp + 0x68]
call fcn.140029c40
lea rdx, [rsp + 0x68]
lea rcx, [rbp - 0x78]
call fcn.140050a70
mov rdx, rax
lea rcx, [rbx + 0x28]
call fcn.140032e0c
mov rax, qword [rbp - 0x60]
cmp rax, 0x10
jb 0x140070632
mov rcx, qword [rbp - 0x78]
inc rax
cmp rax, 0x1000
jb 0x14007062d
test cl, 0x1f
jne 0x14007082c
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x140070832
sub rcx, rax
cmp rcx, 8
jb 0x140070838
cmp rcx, 0x27
ja 0x14007083e
mov rcx, rax
call fcn.140111e78
mov rax, qword [rbp - 0x80]
mov qword [rbp - 0x60], 0xf
mov qword [rbp - 0x68], r14
mov byte [rbp - 0x78], r14b
cmp rax, 8
jb 0x1400706a7
mov rcx, qword [rsp + 0x68]
inc rax
movabs rdx, 0x7fffffffffffffff
cmp rax, rdx
ja 0x140070844
add rax, rax
cmp rax, 0x1000
jb 0x1400706a2
test cl, 0x1f
jne 0x14007084a
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x140070850
sub rcx, rax
cmp rcx, 8
jb 0x140070856
cmp rcx, 0x27
ja 0x14007085c
mov rcx, rax
call fcn.140111e78
xor eax, eax
lea rcx, [rsp + 0x38]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rax
call qword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
mov rdx, qword [rsp + 0x38]
movzx eax, dx
test eax, eax
je 0x1400706fa
cmp eax, 6
je 0x1400706f1
cmp eax, 9
jne 0x1400706fe
mov dword [rbx + 0x48], 1
jmp 0x1400706fe
mov dword [rbx + 0x48], 2
jmp 0x1400706fe
mov dword [rbx + 0x48], r14d
mov eax, dword [rsp + 0x58]
mov ecx, dword [rbp - 0x4c]
mov dword [rbx + 0x4c], eax
mov eax, dword [rsp + 0x60]
mov qword [rbx + 0x50], rax
lea eax, [rcx - 6]
test eax, 0xfffffffb
je 0x14007077d
cmp ecx, 5
jne case.0x1400707d8.2
mov eax, dword [rbp - 0x48]
cmp eax, 2
jne 0x140070759
cmp byte [rbp + 0xca], 1
jne 0x14007073e
cmp dx, 9
je case.0x1400707d8.1
movzx eax, word [rbp + 0xc8]
not ax
movzx ecx, ax
shr ecx, 0xe
and ecx, 2
mov dword [rbx + 0x1c], ecx
jmp 0x140070802
cmp eax, 1
jne case.0x1400707d8.2
movzx eax, word [rbp + 0xc8]
not ax
movzx ecx, ax
shr ecx, 9
and ecx, 1
mov dword [rbx + 0x1c], ecx
jmp 0x140070802
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.GetProductInfo
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [rbp - 0x48]
lea rcx, [rsp + 0x34]
mov qword [rsp + 0x20], rcx
xor r9d, r9d
mov ecx, dword [rbp - 0x4c]
xor r8d, r8d
call rax
mov eax, dword [rsp + 0x34]
dec eax
cmp eax, 0x81
ja case.0x1400707d8.2
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0x70878]
mov ecx, dword [rdx + rax*4 + 0x70864]
add rcx, rdx
jmp rcx
mov dword [rbx + 0x1c], 2
jmp 0x140070802
mov dword [rbx + 0x1c], 1
jmp 0x140070802
mov dword [rbx + 0x1c], 3
jmp 0x140070802
mov dword [rbx + 0x1c], 4
jmp 0x140070802
mov dword [rbx + 0x1c], r14d
mov rax, rbx
mov rcx, qword [rbp + 0xd0]
xor rcx, rsp
call fcn.140111850
lea r11, [rsp + 0x1e0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret
call fcn.140116070
int3
call fcn.140116070
int3
call fcn.140116070
int3
call fcn.140116070
int3
call fcn.140116070
int3
call fcn.140116070
int3
call fcn.140116070
int3
call fcn.140116070
int3
call fcn.140116070
int3