	.file	"90698.c"
	.intel_syntax noprefix
	.text
	.type	isCpuIdSupported, @function
isCpuIdSupported:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, 1
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	isCpuIdSupported, .-isCpuIdSupported
	.type	getX86CpuIDAndInfo, @function
getX86CpuIDAndInfo:
.LFB1:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], edi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	QWORD PTR -32[rbp], rcx
	mov	QWORD PTR -40[rbp], r8
	mov	eax, DWORD PTR -4[rbp]
#APP
# 170 "the_stack_data/90698.c" 1
	movq	%rbx, %rsi
	cpuid
	xchgq	%rbx, %rsi
	
# 0 "" 2
#NO_APP
	mov	edi, eax
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR [rax], edi
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], esi
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], ecx
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, 0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	getX86CpuIDAndInfo, .-getX86CpuIDAndInfo
	.type	getX86CpuIDAndInfoEx, @function
getX86CpuIDAndInfoEx:
.LFB2:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], edi
	mov	DWORD PTR -8[rbp], esi
	mov	QWORD PTR -16[rbp], rdx
	mov	QWORD PTR -24[rbp], rcx
	mov	QWORD PTR -32[rbp], r8
	mov	QWORD PTR -40[rbp], r9
	mov	eax, DWORD PTR -4[rbp]
	mov	edx, DWORD PTR -8[rbp]
	mov	ecx, edx
#APP
# 210 "the_stack_data/90698.c" 1
	movq	%rbx, %rsi
	cpuid
	xchgq	%rbx, %rsi
	
# 0 "" 2
#NO_APP
	mov	edi, eax
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR [rax], edi
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], esi
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], ecx
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, 0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	getX86CpuIDAndInfoEx, .-getX86CpuIDAndInfoEx
	.type	getX86XCR0, @function
getX86XCR0:
.LFB3:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	eax, 0
	mov	ecx, eax
#APP
# 245 "the_stack_data/90698.c" 1
	.byte 0x0f, 0x01, 0xd0
# 0 "" 2
#NO_APP
	mov	ecx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], ecx
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, 0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	getX86XCR0, .-getX86XCR0
	.type	detectX86FamilyModel, @function
detectX86FamilyModel:
.LFB4:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], edi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	eax, DWORD PTR -4[rbp]
	shr	eax, 8
	and	eax, 15
	mov	edx, eax
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -4[rbp]
	shr	eax, 4
	and	eax, 15
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 6
	je	.L10
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 15
	jne	.L13
.L10:
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	eax, 15
	jne	.L12
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -4[rbp]
	shr	eax, 20
	movzx	eax, al
	add	edx, eax
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR [rax], edx
.L12:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -4[rbp]
	shr	eax, 16
	sal	eax, 4
	movzx	eax, al
	add	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], edx
.L13:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	detectX86FamilyModel, .-detectX86FamilyModel
	.type	getIntelProcessorTypeAndSubtype, @function
getIntelProcessorTypeAndSubtype:
.LFB5:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], edi
	mov	DWORD PTR -8[rbp], esi
	mov	DWORD PTR -12[rbp], edx
	mov	DWORD PTR -16[rbp], ecx
	mov	DWORD PTR -20[rbp], r8d
	mov	QWORD PTR -32[rbp], r9
	cmp	DWORD PTR -12[rbp], 0
	jne	.L38
	cmp	DWORD PTR -4[rbp], 6
	jne	.L39
	mov	eax, DWORD PTR -8[rbp]
	sub	eax, 15
	cmp	eax, 143
	ja	.L40
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L20[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L20[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L20:
	.long	.L35-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L35-.L20
	.long	.L35-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L33-.L20
	.long	.L40-.L20
	.long	.L31-.L20
	.long	.L35-.L20
	.long	.L33-.L20
	.long	.L33-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L32-.L20
	.long	.L31-.L20
	.long	.L31-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L34-.L20
	.long	.L40-.L20
	.long	.L32-.L20
	.long	.L34-.L20
	.long	.L33-.L20
	.long	.L32-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L31-.L20
	.long	.L31-.L20
	.long	.L25-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L30-.L20
	.long	.L40-.L20
	.long	.L29-.L20
	.long	.L27-.L20
	.long	.L30-.L20
	.long	.L29-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L29-.L20
	.long	.L29-.L20
	.long	.L27-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L25-.L20
	.long	.L40-.L20
	.long	.L25-.L20
	.long	.L25-.L20
	.long	.L19-.L20
	.long	.L27-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L28-.L20
	.long	.L27-.L20
	.long	.L26-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L25-.L20
	.long	.L40-.L20
	.long	.L24-.L20
	.long	.L25-.L20
	.long	.L19-.L20
	.long	.L24-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L23-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L22-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L21-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L19-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L40-.L20
	.long	.L19-.L20
	.text
.L35:
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 2
	jmp	.L17
.L33:
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 3
	mov	rax, QWORD PTR 16[rbp]
	mov	DWORD PTR [rax], 1
	jmp	.L17
.L32:
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 3
	mov	rax, QWORD PTR 16[rbp]
	mov	DWORD PTR [rax], 2
	jmp	.L17
.L34:
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 3
	mov	rax, QWORD PTR 16[rbp]
	mov	DWORD PTR [rax], 3
	jmp	.L17
.L30:
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 3
	mov	rax, QWORD PTR 16[rbp]
	mov	DWORD PTR [rax], 12
	jmp	.L17
.L29:
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 3
	mov	rax, QWORD PTR 16[rbp]
	mov	DWORD PTR [rax], 13
	jmp	.L17
.L27:
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 3
	mov	rax, QWORD PTR 16[rbp]
	mov	DWORD PTR [rax], 14
	jmp	.L17
.L19:
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 3
	mov	rax, QWORD PTR 16[rbp]
	mov	DWORD PTR [rax], 15
	jmp	.L17
.L28:
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 3
	mov	eax, DWORD PTR -20[rbp]
	and	eax, 4
	test	eax, eax
	je	.L36
	mov	rax, QWORD PTR 16[rbp]
	mov	DWORD PTR [rax], 21
	jmp	.L17
.L36:
	mov	rax, QWORD PTR 16[rbp]
	mov	DWORD PTR [rax], 16
	jmp	.L17
.L23:
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 3
	mov	rax, QWORD PTR 16[rbp]
	mov	DWORD PTR [rax], 17
	jmp	.L17
.L31:
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 1
	jmp	.L17
.L25:
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 6
	jmp	.L17
.L24:
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 12
	jmp	.L17
.L22:
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 13
	jmp	.L17
.L26:
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 7
	jmp	.L17
.L21:
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 11
	jmp	.L17
.L40:
	nop
.L17:
	jmp	.L39
.L38:
	nop
	jmp	.L14
.L39:
	nop
.L14:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	getIntelProcessorTypeAndSubtype, .-getIntelProcessorTypeAndSubtype
	.type	getAMDProcessorTypeAndSubtype, @function
getAMDProcessorTypeAndSubtype:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], edi
	mov	DWORD PTR -8[rbp], esi
	mov	DWORD PTR -12[rbp], edx
	mov	DWORD PTR -16[rbp], ecx
	mov	QWORD PTR -24[rbp], r8
	mov	QWORD PTR -32[rbp], r9
	mov	eax, DWORD PTR -4[rbp]
	sub	eax, 16
	cmp	eax, 7
	ja	.L62
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L44[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L44[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L44:
	.long	.L48-.L44
	.long	.L62-.L44
	.long	.L62-.L44
	.long	.L62-.L44
	.long	.L47-.L44
	.long	.L46-.L44
	.long	.L45-.L44
	.long	.L43-.L44
	.text
.L48:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], 4
	cmp	DWORD PTR -8[rbp], 8
	je	.L49
	cmp	DWORD PTR -8[rbp], 8
	ja	.L63
	cmp	DWORD PTR -8[rbp], 2
	je	.L51
	cmp	DWORD PTR -8[rbp], 4
	je	.L52
	jmp	.L63
.L51:
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 4
	jmp	.L50
.L52:
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 5
	jmp	.L50
.L49:
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 6
	nop
.L50:
	jmp	.L63
.L47:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], 8
	jmp	.L53
.L46:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], 5
	cmp	DWORD PTR -8[rbp], 95
	jbe	.L54
	cmp	DWORD PTR -8[rbp], 127
	ja	.L54
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 10
	jmp	.L53
.L54:
	cmp	DWORD PTR -8[rbp], 47
	jbe	.L55
	cmp	DWORD PTR -8[rbp], 63
	ja	.L55
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 9
	jmp	.L53
.L55:
	cmp	DWORD PTR -8[rbp], 15
	jbe	.L56
	cmp	DWORD PTR -8[rbp], 31
	jbe	.L57
.L56:
	cmp	DWORD PTR -8[rbp], 2
	jne	.L58
.L57:
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 8
	jmp	.L53
.L58:
	cmp	DWORD PTR -8[rbp], 15
	ja	.L64
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 7
	jmp	.L53
.L45:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], 9
	jmp	.L53
.L43:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], 10
	cmp	DWORD PTR -8[rbp], 47
	jbe	.L60
	cmp	DWORD PTR -8[rbp], 63
	ja	.L60
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 20
	jmp	.L53
.L60:
	cmp	DWORD PTR -8[rbp], 15
	ja	.L65
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 11
	jmp	.L53
.L62:
	nop
	jmp	.L66
.L63:
	nop
	jmp	.L66
.L64:
	nop
	jmp	.L66
.L65:
	nop
.L53:
.L66:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	getAMDProcessorTypeAndSubtype, .-getAMDProcessorTypeAndSubtype
	.type	getAvailableFeatures, @function
getAvailableFeatures:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	DWORD PTR -52[rbp], edi
	mov	DWORD PTR -56[rbp], esi
	mov	DWORD PTR -60[rbp], edx
	mov	QWORD PTR -72[rbp], rcx
	mov	QWORD PTR -80[rbp], r8
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -36[rbp], 0
	mov	DWORD PTR -32[rbp], 0
	mov	eax, DWORD PTR -56[rbp]
	and	eax, 32768
	test	eax, eax
	je	.L68
	or	DWORD PTR -36[rbp], 1
.L68:
	mov	eax, DWORD PTR -56[rbp]
	and	eax, 8388608
	test	eax, eax
	je	.L69
	or	DWORD PTR -36[rbp], 2
.L69:
	mov	eax, DWORD PTR -56[rbp]
	and	eax, 33554432
	test	eax, eax
	je	.L70
	or	DWORD PTR -36[rbp], 8
.L70:
	mov	eax, DWORD PTR -56[rbp]
	and	eax, 67108864
	test	eax, eax
	je	.L71
	or	DWORD PTR -36[rbp], 16
.L71:
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 1
	test	eax, eax
	je	.L72
	or	DWORD PTR -36[rbp], 32
.L72:
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 2
	test	eax, eax
	je	.L73
	or	DWORD PTR -36[rbp], 524288
.L73:
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 512
	test	eax, eax
	je	.L74
	or	DWORD PTR -36[rbp], 64
.L74:
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 4096
	test	eax, eax
	je	.L75
	or	DWORD PTR -36[rbp], 16384
.L75:
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 524288
	test	eax, eax
	je	.L76
	or	DWORD PTR -36[rbp], 128
.L76:
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 1048576
	test	eax, eax
	je	.L77
	or	DWORD PTR -36[rbp], 256
.L77:
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 8388608
	test	eax, eax
	je	.L78
	or	DWORD PTR -36[rbp], 4
.L78:
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 33554432
	test	eax, eax
	je	.L79
	or	DWORD PTR -36[rbp], 262144
.L79:
	mov	DWORD PTR -28[rbp], 402653184
	mov	eax, DWORD PTR -52[rbp]
	and	eax, DWORD PTR -28[rbp]
	cmp	DWORD PTR -28[rbp], eax
	jne	.L80
	lea	rdx, -56[rbp]
	lea	rax, -48[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	getX86XCR0
	test	eax, eax
	jne	.L80
	mov	eax, DWORD PTR -48[rbp]
	and	eax, 6
	cmp	eax, 6
	jne	.L80
	mov	eax, 1
	jmp	.L81
.L80:
	mov	eax, 0
.L81:
	mov	DWORD PTR -24[rbp], eax
	cmp	DWORD PTR -24[rbp], 0
	je	.L82
	mov	eax, DWORD PTR -48[rbp]
	and	eax, 224
	cmp	eax, 224
	jne	.L82
	mov	eax, 1
	jmp	.L83
.L82:
	mov	eax, 0
.L83:
	mov	DWORD PTR -20[rbp], eax
	cmp	DWORD PTR -24[rbp], 0
	je	.L84
	or	DWORD PTR -36[rbp], 512
.L84:
	cmp	DWORD PTR -60[rbp], 6
	jbe	.L85
	lea	rsi, -56[rbp]
	lea	rcx, -52[rbp]
	lea	rdx, -44[rbp]
	lea	rax, -48[rbp]
	mov	r9, rsi
	mov	r8, rcx
	mov	rcx, rdx
	mov	rdx, rax
	mov	esi, 0
	mov	edi, 7
	call	getX86CpuIDAndInfoEx
	test	eax, eax
	jne	.L85
	mov	eax, 1
	jmp	.L86
.L85:
	mov	eax, 0
.L86:
	mov	DWORD PTR -16[rbp], eax
	cmp	DWORD PTR -16[rbp], 0
	je	.L87
	mov	eax, DWORD PTR -44[rbp]
	and	eax, 8
	test	eax, eax
	je	.L87
	or	DWORD PTR -36[rbp], 65536
.L87:
	cmp	DWORD PTR -16[rbp], 0
	je	.L88
	mov	eax, DWORD PTR -44[rbp]
	and	eax, 32
	test	eax, eax
	je	.L88
	cmp	DWORD PTR -24[rbp], 0
	je	.L88
	or	DWORD PTR -36[rbp], 1024
.L88:
	cmp	DWORD PTR -16[rbp], 0
	je	.L89
	mov	eax, DWORD PTR -44[rbp]
	and	eax, 512
	test	eax, eax
	je	.L89
	or	DWORD PTR -36[rbp], 131072
.L89:
	cmp	DWORD PTR -16[rbp], 0
	je	.L90
	mov	eax, DWORD PTR -44[rbp]
	and	eax, 65536
	test	eax, eax
	je	.L90
	cmp	DWORD PTR -20[rbp], 0
	je	.L90
	or	DWORD PTR -36[rbp], 32768
.L90:
	cmp	DWORD PTR -16[rbp], 0
	je	.L91
	mov	eax, DWORD PTR -44[rbp]
	and	eax, 131072
	test	eax, eax
	je	.L91
	cmp	DWORD PTR -20[rbp], 0
	je	.L91
	or	DWORD PTR -36[rbp], 4194304
.L91:
	cmp	DWORD PTR -16[rbp], 0
	je	.L92
	mov	eax, DWORD PTR -44[rbp]
	and	eax, 2097152
	test	eax, eax
	je	.L92
	cmp	DWORD PTR -20[rbp], 0
	je	.L92
	or	DWORD PTR -36[rbp], 134217728
.L92:
	cmp	DWORD PTR -16[rbp], 0
	je	.L93
	mov	eax, DWORD PTR -44[rbp]
	and	eax, 67108864
	test	eax, eax
	je	.L93
	cmp	DWORD PTR -20[rbp], 0
	je	.L93
	or	DWORD PTR -36[rbp], 33554432
.L93:
	cmp	DWORD PTR -16[rbp], 0
	je	.L94
	mov	eax, DWORD PTR -44[rbp]
	and	eax, 134217728
	test	eax, eax
	je	.L94
	cmp	DWORD PTR -20[rbp], 0
	je	.L94
	or	DWORD PTR -36[rbp], 16777216
.L94:
	cmp	DWORD PTR -16[rbp], 0
	je	.L95
	mov	eax, DWORD PTR -44[rbp]
	and	eax, 268435456
	test	eax, eax
	je	.L95
	cmp	DWORD PTR -20[rbp], 0
	je	.L95
	or	DWORD PTR -36[rbp], 8388608
.L95:
	cmp	DWORD PTR -16[rbp], 0
	je	.L96
	mov	eax, DWORD PTR -44[rbp]
	and	eax, 1073741824
	test	eax, eax
	je	.L96
	cmp	DWORD PTR -20[rbp], 0
	je	.L96
	or	DWORD PTR -36[rbp], 2097152
.L96:
	cmp	DWORD PTR -16[rbp], 0
	je	.L97
	mov	eax, DWORD PTR -44[rbp]
	test	eax, eax
	jns	.L97
	cmp	DWORD PTR -20[rbp], 0
	je	.L97
	or	DWORD PTR -36[rbp], 1048576
.L97:
	cmp	DWORD PTR -16[rbp], 0
	je	.L98
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 2
	test	eax, eax
	je	.L98
	cmp	DWORD PTR -20[rbp], 0
	je	.L98
	or	DWORD PTR -36[rbp], 67108864
.L98:
	cmp	DWORD PTR -16[rbp], 0
	je	.L99
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 64
	test	eax, eax
	je	.L99
	cmp	DWORD PTR -20[rbp], 0
	je	.L99
	or	DWORD PTR -36[rbp], -2147483648
.L99:
	cmp	DWORD PTR -16[rbp], 0
	je	.L100
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 256
	test	eax, eax
	je	.L100
	or	DWORD PTR -32[rbp], 1
.L100:
	cmp	DWORD PTR -16[rbp], 0
	je	.L101
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 1024
	test	eax, eax
	je	.L101
	cmp	DWORD PTR -24[rbp], 0
	je	.L101
	or	DWORD PTR -32[rbp], 2
.L101:
	cmp	DWORD PTR -16[rbp], 0
	je	.L102
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 2048
	test	eax, eax
	je	.L102
	cmp	DWORD PTR -20[rbp], 0
	je	.L102
	or	DWORD PTR -32[rbp], 4
.L102:
	cmp	DWORD PTR -16[rbp], 0
	je	.L103
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 4096
	test	eax, eax
	je	.L103
	cmp	DWORD PTR -20[rbp], 0
	je	.L103
	or	DWORD PTR -32[rbp], 8
.L103:
	cmp	DWORD PTR -16[rbp], 0
	je	.L104
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 16384
	test	eax, eax
	je	.L104
	cmp	DWORD PTR -20[rbp], 0
	je	.L104
	or	DWORD PTR -36[rbp], 1073741824
.L104:
	cmp	DWORD PTR -16[rbp], 0
	je	.L105
	mov	eax, DWORD PTR -56[rbp]
	and	eax, 4
	test	eax, eax
	je	.L105
	cmp	DWORD PTR -20[rbp], 0
	je	.L105
	or	DWORD PTR -36[rbp], 268435456
.L105:
	cmp	DWORD PTR -16[rbp], 0
	je	.L106
	mov	eax, DWORD PTR -56[rbp]
	and	eax, 8
	test	eax, eax
	je	.L106
	cmp	DWORD PTR -20[rbp], 0
	je	.L106
	or	DWORD PTR -36[rbp], 536870912
.L106:
	lea	rsi, -56[rbp]
	lea	rcx, -52[rbp]
	lea	rdx, -44[rbp]
	lea	rax, -40[rbp]
	mov	r8, rsi
	mov	rsi, rax
	mov	edi, -2147483648
	call	getX86CpuIDAndInfo
	mov	eax, DWORD PTR -40[rbp]
	cmp	eax, -2147483648
	jbe	.L107
	lea	rsi, -56[rbp]
	lea	rcx, -52[rbp]
	lea	rdx, -44[rbp]
	lea	rax, -48[rbp]
	mov	r8, rsi
	mov	rsi, rax
	mov	edi, -2147483647
	call	getX86CpuIDAndInfo
	test	eax, eax
	jne	.L107
	mov	eax, 1
	jmp	.L108
.L107:
	mov	eax, 0
.L108:
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 0
	je	.L109
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 64
	test	eax, eax
	je	.L109
	or	DWORD PTR -36[rbp], 2048
.L109:
	cmp	DWORD PTR -12[rbp], 0
	je	.L110
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 2048
	test	eax, eax
	je	.L110
	or	DWORD PTR -36[rbp], 8192
.L110:
	cmp	DWORD PTR -12[rbp], 0
	je	.L111
	mov	eax, DWORD PTR -52[rbp]
	and	eax, 65536
	test	eax, eax
	je	.L111
	or	DWORD PTR -36[rbp], 4096
.L111:
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, DWORD PTR -36[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -80[rbp]
	mov	edx, DWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L112
	call	__stack_chk_fail@PLT
.L112:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	getAvailableFeatures, .-getAvailableFeatures
	.hidden	__cpu_model
	.globl	__cpu_model
	.bss
	.align 16
	.type	__cpu_model, @object
	.size	__cpu_model, 16
__cpu_model:
	.zero	16
	.hidden	__cpu_features2
	.globl	__cpu_features2
	.align 4
	.type	__cpu_features2, @object
	.size	__cpu_features2, 4
__cpu_features2:
	.zero	4
	.section	.rodata
.LC0:
	.string	"the_stack_data/90698.c"
	.align 8
.LC1:
	.string	"__cpu_model.__cpu_vendor < VENDOR_MAX"
	.align 8
.LC2:
	.string	"__cpu_model.__cpu_type < CPU_TYPE_MAX"
	.align 8
.LC3:
	.string	"__cpu_model.__cpu_subtype < CPU_SUBTYPE_MAX"
	.text
	.globl	__cpu_indicator_init
	.hidden	__cpu_indicator_init
	.type	__cpu_indicator_init, @function
__cpu_indicator_init:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -36[rbp], 5
	mov	DWORD PTR -20[rbp], 0
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR __cpu_model[rip]
	test	eax, eax
	je	.L114
	mov	eax, 0
	jmp	.L125
.L114:
	mov	eax, 0
	call	isCpuIdSupported
	test	eax, eax
	jne	.L116
	mov	eax, -1
	jmp	.L125
.L116:
	lea	rsi, -40[rbp]
	lea	rcx, -44[rbp]
	lea	rdx, -32[rbp]
	lea	rax, -36[rbp]
	mov	r8, rsi
	mov	rsi, rax
	mov	edi, 0
	call	getX86CpuIDAndInfo
	test	eax, eax
	jne	.L117
	mov	eax, DWORD PTR -36[rbp]
	test	eax, eax
	jne	.L118
.L117:
	mov	DWORD PTR __cpu_model[rip], 3
	mov	eax, -1
	jmp	.L125
.L118:
	lea	rsi, -40[rbp]
	lea	rcx, -44[rbp]
	lea	rdx, -48[rbp]
	lea	rax, -52[rbp]
	mov	r8, rsi
	mov	rsi, rax
	mov	edi, 1
	call	getX86CpuIDAndInfo
	mov	eax, DWORD PTR -52[rbp]
	lea	rdx, -28[rbp]
	lea	rcx, -24[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	detectX86FamilyModel
	mov	eax, DWORD PTR -48[rbp]
	and	eax, 255
	mov	DWORD PTR -12[rbp], eax
	mov	edx, DWORD PTR -36[rbp]
	mov	esi, DWORD PTR -40[rbp]
	mov	eax, DWORD PTR -44[rbp]
	lea	rdi, -16[rbp]
	lea	rcx, -20[rbp]
	mov	r8, rdi
	mov	edi, eax
	call	getAvailableFeatures
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR __cpu_model[rip+12], eax
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR __cpu_features2[rip], eax
	mov	eax, DWORD PTR -32[rbp]
	cmp	eax, 1970169159
	jne	.L119
	mov	r8d, DWORD PTR -16[rbp]
	mov	ecx, DWORD PTR -20[rbp]
	mov	esi, DWORD PTR -28[rbp]
	mov	eax, DWORD PTR -24[rbp]
	mov	edx, DWORD PTR -12[rbp]
	sub	rsp, 8
	lea	rdi, __cpu_model[rip+8]
	push	rdi
	lea	r9, __cpu_model[rip+4]
	mov	edi, eax
	call	getIntelProcessorTypeAndSubtype
	add	rsp, 16
	mov	DWORD PTR __cpu_model[rip], 1
	jmp	.L120
.L119:
	mov	eax, DWORD PTR -32[rbp]
	cmp	eax, 1752462657
	jne	.L121
	mov	ecx, DWORD PTR -16[rbp]
	mov	edx, DWORD PTR -20[rbp]
	mov	esi, DWORD PTR -28[rbp]
	mov	eax, DWORD PTR -24[rbp]
	lea	r9, __cpu_model[rip+8]
	lea	r8, __cpu_model[rip+4]
	mov	edi, eax
	call	getAMDProcessorTypeAndSubtype
	mov	DWORD PTR __cpu_model[rip], 2
	jmp	.L120
.L121:
	mov	DWORD PTR __cpu_model[rip], 3
.L120:
	mov	eax, DWORD PTR __cpu_model[rip]
	cmp	eax, 3
	jbe	.L122
	lea	rcx, __PRETTY_FUNCTION__.0[rip]
	mov	edx, 667
	lea	rsi, .LC0[rip]
	lea	rdi, .LC1[rip]
	call	__assert_fail@PLT
.L122:
	mov	eax, DWORD PTR __cpu_model[rip+4]
	cmp	eax, 14
	jbe	.L123
	lea	rcx, __PRETTY_FUNCTION__.0[rip]
	mov	edx, 668
	lea	rsi, .LC0[rip]
	lea	rdi, .LC2[rip]
	call	__assert_fail@PLT
.L123:
	mov	eax, DWORD PTR __cpu_model[rip+8]
	cmp	eax, 21
	jbe	.L124
	lea	rcx, __PRETTY_FUNCTION__.0[rip]
	mov	edx, 669
	lea	rsi, .LC0[rip]
	lea	rdi, .LC3[rip]
	call	__assert_fail@PLT
.L124:
	mov	eax, 0
.L125:
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L126
	call	__stack_chk_fail@PLT
.L126:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	__cpu_indicator_init, .-__cpu_indicator_init
	.section	.init_array,"aw"
	.align 8
	.quad	__cpu_indicator_init
	.section	.rodata
	.align 16
	.type	__PRETTY_FUNCTION__.0, @object
	.size	__PRETTY_FUNCTION__.0, 21
__PRETTY_FUNCTION__.0:
	.string	"__cpu_indicator_init"
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"90698.c"
	.text
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
