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

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1f0
movaps xmmword [rsp + 0x1e0], xmm6
mov rax, qword [0x140162028]
xor rax, rsp
mov qword [rsp + 0x1d8], rax
lea rsi, [rsp + 0xac]
mov r8d, 0x118
mov rcx, rsi
xor edx, edx
call fcn.1400f27e0
mov dword [rsi - 4], 0x11c
lea rsi, [rsp + 0xa8]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
lea rdi, [rsp + 0x2c]
mov dword [rdi], 0
mov ecx, dword [rsi + 4]
mov edx, dword [rsi + 8]
mov qword [rsp + 0x20], rdi
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_GetProductInfo]
mov ecx, 0x80
call fcn.1400ef770
mov r14, rax
mov rsi, rax
mov r12d, dword [rdi]
mov eax, dword [0x140169da0]
mov ecx, dword [0x1401653f4]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14007c2b1
mov dword [rsi], 0
xorps xmm6, xmm6
movups xmmword [rsi + 0x20], xmm6
movups xmmword [rsi + 0x30], xmm6
movups xmmword [rsi + 0x40], xmm6
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rdi, rax
lea rcx, str.api_ms_win_core_wow64_l1_1_1.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov ebx, 5
test rax, rax
je 0x14007bdb2
lea rdx, str.IsWow64Process2
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x14007bdb2
lea rdx, [rsp + 0x30]
lea r8, [rsp + 0x88]
mov rcx, rdi
call rax
mov ebx, 5
test eax, eax
je 0x14007bdb2
movzx eax, word [rsp + 0x88]
cmp eax, 0x8664
jne 0x14007c15e
mov ebx, 1
mov dword [rsi + 0x50], ebx
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
xor ebx, ebx
lea rdi, [rsp + 0x30]
mov dword [rdi], ebx
mov rcx, rax
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_IsWow64Process]
xor ecx, ecx
cmp dword [rdi], ebx
setne cl
test eax, eax
mov eax, 2
cmovne eax, ecx
mov dword [rsi + 0x60], eax
movups xmmword [rsi + 0x68], xmm6
mov qword [rsi + 0x78], rbx
mov eax, dword [rsp + 0xac]
mov dword [rsi + 4], eax
mov eax, dword [rsp + 0xb0]
mov dword [rsi + 8], eax
mov eax, dword [rsp + 0xb4]
mov dword [rsi + 0xc], eax
mov dword [rsp + 0xa4], ebx
mov qword [rdi + 0x10], rbx
movaps xmmword [rdi], xmm6
lea rbx, [rsp + 0x88]
mov rcx, rbx
call fcn.14007b5e0
lea r8, str.SOFTWAREMicrosoftWindows_NTCurrentVersion
mov rcx, rbx
mov rdx, 0xffffffff80000002
mov r9d, 1
call fcn.14007b750
test eax, eax
jne 0x14007c278
lea rdx, [0x140136fda]
lea r15, [rsp + 0x88]
lea r8, [rsp + 0xa4]
mov rcx, r15
call fcn.14007b8d0
lea rdx, str.ReleaseId
lea rbx, [rsp + 0x30]
mov rcx, r15
mov r8, rbx
call fcn.14007b9d0
mov cl, byte [rbx + 0x17]
mov rdx, qword [rbx]
mov rax, qword [rbx + 8]
test cl, cl
cmovs rdi, rdx
lea rdx, [rsp + 0x60]
mov qword [rdx], rdi
movzx ecx, cl
cmovs rcx, rax
mov qword [rdx + 8], rcx
lea rdi, [rsp + 0x70]
mov rcx, rdi
call fcn.14006e060
mov r15d, dword [rsp + 0xa4]
mov rbp, qword [rdi]
mov rax, qword [rdi + 8]
mov qword [rsp + 0x1c8], rax
mov rax, qword [rdi + 0xf]
mov qword [rsp + 0x1cf], rax
mov dil, byte [rdi + 0x17]
lea rcx, [rsp + 0x88]
call fcn.14007b860
xor eax, eax
cmp byte [rbx + 0x17], al
js 0x14007c08b
cmp byte [rsi + 0x37], 0
js 0x14007c0e0
xor eax, eax
mov byte [rsi + 0x20], al
mov byte [rsi + 0x37], al
mov qword [rsi + 0x20], rbp
mov rax, qword [rsp + 0x1c8]
mov rcx, qword [rsp + 0x1cf]
mov qword [rsi + 0x28], rax
mov qword [rsi + 0x2f], rcx
mov byte [rsi + 0x37], dil
mov dword [rsi + 0x10], r15d
mov ecx, dword [rsi + 4]
cmp ecx, 0xa
jne 0x14007bf9d
mov ecx, dword [rsi + 0xc]
mov eax, 0xf
cmp ecx, 0x4a60
jg 0x14007bfab
mov eax, 0xe
cmp ecx, 0x47b9
jg 0x14007bfab
mov eax, 0xd
cmp ecx, 0x4562
jg 0x14007bfab
mov eax, 0xc
cmp ecx, 0x42ed
jg 0x14007bfab
mov eax, 0xb
cmp ecx, 0x3faa
jg 0x14007bfab
mov eax, 0xa
cmp ecx, 0x3ad6
jg 0x14007bfab
mov eax, 9
cmp ecx, 0x3838
jg 0x14007bfab
xor eax, eax
cmp ecx, 0x2959
setg al
add eax, 7
jmp 0x14007bfab
mov eax, 0x10
cmp ecx, 6
jle 0x14007c09a
mov dword [rsi], eax
lea rax, [rsp + 0xbc]
movzx ecx, word [rax + 0x100]
mov dword [rsi + 0x18], ecx
movzx ecx, word [rax + 0x102]
mov dword [rsi + 0x1c], ecx
mov qword [rsp + 0x88], rax
cmp word [rax], 0
je 0x14007c0d9
xor eax, eax
cmp word [rsp + rax*2 + 0xbe], 0
lea rax, [rax + 1]
jne 0x14007bfdd
add r14, 0x38
lea rdx, [rsp + 0x88]
mov qword [rdx + 8], rax
lea rcx, [rsp + 0x30]
call fcn.14006e060
cmp byte [rsi + 0x4f], 0
js 0x14007c10f
xor eax, eax
mov byte [rsi + 0x38], al
mov byte [rsi + 0x4f], al
mov rax, qword [rsp + 0x40]
mov qword [r14 + 0x10], rax
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [r14], xmm0
mov eax, dword [0x140169d90]
mov dword [rsi + 0x54], eax
mov eax, dword [0x140169d98]
mov qword [rsi + 0x58], rax
mov eax, dword [rsp + 0xac]
cmp eax, 0xa
jne 0x14007c230
cmp r12d, 4
jne 0x14007c13e
mov dword [rsi + 0x14], 3
mov rcx, qword [rsp + 0x1d8]
xor rcx, rsp
call fcn.1400f0560
mov rax, rsi
movaps xmm6, xmmword [rsp + 0x1e0]
add rsp, 0x1f0
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
mov rcx, qword [rsp + 0x30]
call fcn.1400ef7cc
jmp 0x14007bef1
mov edx, dword [rsi + 8]
jne 0x14007c0b2
lea ecx, [rdx + 3]
cmp edx, 3
mov eax, 6
cmovb eax, ecx
jmp 0x14007bfab
xor eax, eax
test edx, edx
je 0x14007bfab
cmp ecx, 5
jne 0x14007bfab
xor ecx, ecx
cmp edx, 1
sete cl
mov eax, 2
sub eax, ecx
jmp 0x14007bfab
xor eax, eax
jmp 0x14007bfec
mov rax, qword [rsi + 0x20]
xor ecx, ecx
mov byte [rax], cl
mov qword [rsi + 0x28], 0
cmp byte [rsi + 0x37], cl
jns 0x14007bf03
mov rcx, qword [rsi + 0x20]
call fcn.1400ef7cc
mov qword [rsi + 0x30], 0
jmp 0x14007bf03
mov rax, qword [rsi + 0x38]
xor ecx, ecx
mov byte [rax], cl
mov qword [rsi + 0x40], 0
cmp byte [rsi + 0x4f], cl
jns 0x14007c018
mov rcx, qword [rsi + 0x38]
call fcn.1400ef7cc
mov qword [rsi + 0x48], 0
jmp 0x14007c018
cmp r12d, 0x30
ja 0x14007c1c1
mov eax, r12d
mov ecx, 0x206f780
bt rcx, rax
jae 0x14007c196
mov dword [rsi + 0x14], 2
jmp 0x14007c05e
movsx ecx, ax
movzx eax, ax
cmp ecx, 0x1c1
jg 0x14007c203
cmp eax, 0xaa64
je 0x14007c286
cmp eax, 0x14c
je 0x14007c290
cmp eax, 0x1c0
je 0x14007c226
jmp 0x14007bdb2
mov ecx, 0x8010040
bt rcx, rax
jb 0x14007c057
movabs rcx, 0x1000000000002
bt rcx, rax
jae 0x14007c1c1
mov dword [rsi + 0x14], 1
jmp 0x14007c05e
add r12d, 0xffffffba
cmp r12d, 0x3c
ja 0x14007c2a5
movabs rax, 0x1980000000004005
bt rax, r12
jb 0x14007c057
movabs rax, 0x18000000000000
bt rax, r12
jae 0x14007c2a5
mov dword [rsi + 0x14], 4
jmp 0x14007c05e
cmp eax, 0x1c2
je 0x14007c226
cmp eax, 0x1c4
je 0x14007c226
cmp eax, 0x200
jne 0x14007bdb2
mov ebx, 2
jmp 0x14007bdb2
mov ebx, 3
jmp 0x14007bdb2
cmp eax, 6
je 0x14007c04d
cmp eax, 5
jne 0x14007c2a5
mov eax, dword [rsp + 0xb0]
cmp eax, 1
je 0x14007c297
cmp eax, 2
jne 0x14007c2a5
cmp byte [rsp + 0x1c2], 1
jne 0x14007c267
cmp word [0x140169d70], 9
je 0x14007c1b5
cmp word [rsp + 0x1c0], 0
jns 0x14007c152
jmp 0x14007c2a5
xor eax, eax
mov rbx, rdi
xor edx, edx
xor ecx, ecx
jmp 0x14007be8c
mov ebx, 4
jmp 0x14007bdb2
xor ebx, ebx
jmp 0x14007bdb2
test byte [rsp + 0x1c1], 2
je 0x14007c1b5
mov dword [rsi + 0x14], 0
jmp 0x14007c05e
lea rcx, [0x140169da0]
call fcn.1400ef8f0
cmp dword [0x140169da0], 0xffffffff
jne 0x14007bd35
xorps xmm0, xmm0
lea rdi, [rsp + 0x30]
movaps xmmword [rdi + 0x20], xmm0
movaps xmmword [rdi + 0x10], xmm0
movaps xmmword [rdi], xmm0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
movaps xmm0, xmmword [rdi]
movaps xmm1, xmmword [rdi + 0x10]
movaps xmm2, xmmword [rdi + 0x20]
movups xmmword [0x140169d90], xmm2
movups xmmword [0x140169d80], xmm1
movups xmmword [0x140169d70], xmm0
lea rcx, [0x140169da0]
call fcn.1400ef988
jmp 0x14007bd35