Function at 0x14004f120
Capabilities:
Check os version

Disassembly:
mov rax, rsp
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x60
mov qword [rax - 0x50], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
movaps xmmword [rax - 0x38], xmm6
mov rsi, rcx
xor edi, edi
mov dword [rax - 0x58], edi
mov r9d, dword [0x1401c4d60]
lea r8d, [r9 + 1]
imul r8d, r9d
mov eax, 0x66666667
imul r8d
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
shl eax, 2
sub r8d, eax
or r15, 0xffffffffffffffff
cmp r8d, 0xb
jne 0x14004f1c3
mov eax, 0x51eb851f
imul r9d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x64
sub r9d, edx
add r9d, 0x2f4
movsxd rcx, r9d
mov eax, 4
mul rcx
cmovo rax, r15
mov rcx, rax
call fcn.1400cd918
mov rcx, rax
call fcn.1400cf37c
mov r9d, dword [0x1401c4d60]
lea r8d, [r9 + 2]
lea eax, [r9 + 1]
imul r8d, eax
imul r8d, r9d
mov eax, 0x38e38e39
imul r8d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea ecx, [rdx + rdx*8]
add ecx, ecx
sub r8d, ecx
cmp r8d, 0xe
jne 0x14004f220
mov r8d, edi
test r9d, r9d
je 0x14004f216
nop dword [rax + rax]
mov ecx, r9d
and ecx, 1
add r8d, ecx
mov eax, r9d
cdq
sub eax, edx
sar eax, 1
mov r9d, eax
jne 0x14004f200
mov r9d, r8d
mov dword [0x1401c4d60], r8d
lea ecx, [r9 + 2]
lea eax, [r9 + 1]
imul ecx, eax
imul ecx, r9d
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
cmp ecx, 7
jne 0x14004f29d
movsd xmm3, qword [0x1401542b8]
xorps xmm2, xmm2
movd xmm4, r9d
cvtdq2pd xmm4, xmm4
movsd xmm5, qword [0x1401542e0]
movsd xmm6, qword [0x1401542b0]
addsd xmm2, xmm3
movaps xmm0, xmm2
mulsd xmm0, xmm2
comisd xmm0, xmm4
jbe 0x14004f289
subsd xmm2, xmm3
divsd xmm3, xmm5
movaps xmm1, xmm2
mulsd xmm1, xmm2
movaps xmm0, xmm4
subsd xmm0, xmm1
comisd xmm0, xmm6
ja 0x14004f270
call qword [sym.imp.KERNEL32.dll_GetVersion]
mov ebx, eax
movzx r14d, al
mov r9d, dword [0x1401c4d60]
mov r8d, r9d
imul r8d, r9d
mov eax, 0x66666667
imul r8d
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea eax, [rdx + rdx*4]
shl eax, 2
sub r8d, eax
cmp r8d, 7
jne 0x14004f32d
mov rax, qword [str.ryI2lC1o9eLf]
mov qword [rsp + 0x40], rax
mov eax, dword [0x140152a58]
mov dword [rsp + 0x48], eax
movzx eax, byte [0x140152a5c]
mov byte [rsp + 0x4c], al
lea rdx, [rsp + 0x40]
mov rcx, r15
inc rcx
cmp byte [rdx + rcx], dil
jne 0x14004f301
mov eax, 4
mul rcx
cmovo rax, r15
mov rcx, rax
call fcn.1400cd918
mov rcx, rax
call fcn.1400cf37c
mov r9d, dword [0x1401c4d60]
movzx eax, bx
shr ax, 8
movzx ebp, al
cmp ebx, 0x80000000
jae 0x14004f344
mov edi, ebx
shr edi, 0x10
cmp r14d, 6
jb 0x14004f38d
cmp ebp, 2
jb 0x14004f38d
imul r9d, r9d
mov eax, 0x88888889
imul r9d
add edx, r9d
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0xf
sub r9d, edx
cmp r9d, 0xe
jne 0x14004f37a
dec dword [0x1401c60dc]
mov rcx, rsi
call fcn.14004f6d0
nop
mov dword [rsp + 0x30], 1
jmp 0x14004f3fd
lea rcx, [0x1401bc9a8]
mov rax, qword [0x1401bc9a8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x98], rax
mov dword [rsp + 0x20], edi
mov r9d, ebp
mov r8d, r14d
lea rdx, str._d._d___d_
lea rcx, [rsp + 0x98]
call fcn.1400119e0
mov rbx, qword [rsp + 0x98]
lea rcx, [rbx - 0x18]
call fcn.140002400
add rax, 0x18
mov qword [rsi], rax
mov dword [rsp + 0x30], 1
lock add dword [rbx - 8], 0xffffffff
jg 0x14004f3fd
mov rcx, qword [rbx - 0x18]
mov rax, qword [rcx]
lea rdx, [rbx - 0x18]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, rsi
mov rbx, qword [rsp + 0xa0]
movaps xmm6, xmmword [rsp + 0x50]
add rsp, 0x60
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret