	.file	"989295.c"
	.intel_syntax noprefix
	.text
	.section	.rodata
.LC0:
	.string	"UNKNOWN"
.LC1:
	.string	"ARMV8"
.LC2:
	.string	"CORTEXA57"
	.section	.data.rel.local,"aw"
	.align 16
	.type	cpuname, @object
	.size	cpuname, 24
cpuname:
	.quad	.LC0
	.quad	.LC1
	.quad	.LC2
	.section	.rodata
.LC3:
	.string	"unknown"
.LC4:
	.string	"armv8"
.LC5:
	.string	"cortexa57"
	.section	.data.rel.local
	.align 16
	.type	cpuname_lower, @object
	.size	cpuname_lower, 24
cpuname_lower:
	.quad	.LC3
	.quad	.LC4
	.quad	.LC5
	.section	.rodata
.LC6:
	.string	"r"
.LC7:
	.string	"/proc/cpuinfo"
.LC8:
	.string	"Features"
.LC9:
	.string	" "
	.text
	.globl	get_feature
	.type	get_feature, @function
get_feature:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 2112
	mov	QWORD PTR -2104[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -2088[rbp], 0
	lea	rsi, .LC6[rip]
	lea	rdi, .LC7[rip]
	call	fopen@PLT
	mov	QWORD PTR -2080[rbp], rax
	jmp	.L2
.L4:
	lea	rax, -2064[rbp]
	mov	edx, 8
	mov	rsi, rax
	lea	rdi, .LC8[rip]
	call	strncmp@PLT
	test	eax, eax
	jne	.L2
	lea	rax, -2064[rbp]
	mov	esi, 58
	mov	rdi, rax
	call	strchr@PLT
	add	rax, 2
	mov	QWORD PTR -2088[rbp], rax
	jmp	.L3
.L2:
	mov	rdx, QWORD PTR -2080[rbp]
	lea	rax, -2064[rbp]
	mov	esi, 2048
	mov	rdi, rax
	call	fgets@PLT
	test	rax, rax
	jne	.L4
.L3:
	mov	rax, QWORD PTR -2080[rbp]
	mov	rdi, rax
	call	fclose@PLT
	cmp	QWORD PTR -2088[rbp], 0
	jne	.L5
	mov	eax, 0
	jmp	.L9
.L5:
	mov	rax, QWORD PTR -2088[rbp]
	lea	rsi, .LC9[rip]
	mov	rdi, rax
	call	strtok@PLT
	mov	QWORD PTR -2072[rbp], rax
	jmp	.L7
.L8:
	mov	rdx, QWORD PTR -2104[rbp]
	mov	rax, QWORD PTR -2072[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L7
	mov	eax, 1
	jmp	.L9
.L7:
	lea	rsi, .LC9[rip]
	mov	edi, 0
	call	strtok@PLT
	mov	QWORD PTR -2072[rbp], rax
	cmp	QWORD PTR -2072[rbp], 0
	jne	.L8
	mov	eax, 0
.L9:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L10
	call	__stack_chk_fail@PLT
.L10:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	get_feature, .-get_feature
	.section	.rodata
.LC10:
	.string	"CPU part"
.LC11:
	.string	"0xd07"
.LC12:
	.string	"model name"
.LC13:
	.string	"Processor"
.LC14:
	.string	"CPU architecture"
.LC15:
	.string	"AArch64"
	.text
	.globl	detect
	.type	detect, @function
detect:
.LFB1:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 544
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -544[rbp], 0
	lea	rsi, .LC6[rip]
	lea	rdi, .LC7[rip]
	call	fopen@PLT
	mov	QWORD PTR -536[rbp], rax
	jmp	.L12
.L14:
	lea	rax, -528[rbp]
	mov	edx, 8
	mov	rsi, rax
	lea	rdi, .LC10[rip]
	call	strncmp@PLT
	test	eax, eax
	jne	.L12
	lea	rax, -528[rbp]
	mov	esi, 58
	mov	rdi, rax
	call	strchr@PLT
	add	rax, 2
	mov	QWORD PTR -544[rbp], rax
	jmp	.L13
.L12:
	mov	rdx, QWORD PTR -536[rbp]
	lea	rax, -528[rbp]
	mov	esi, 512
	mov	rdi, rax
	call	fgets@PLT
	test	rax, rax
	jne	.L14
.L13:
	mov	rax, QWORD PTR -536[rbp]
	mov	rdi, rax
	call	fclose@PLT
	cmp	QWORD PTR -544[rbp], 0
	je	.L15
	mov	rax, QWORD PTR -544[rbp]
	lea	rsi, .LC11[rip]
	mov	rdi, rax
	call	strstr@PLT
	test	rax, rax
	je	.L15
	mov	eax, 2
	jmp	.L22
.L15:
	mov	QWORD PTR -544[rbp], 0
	lea	rsi, .LC6[rip]
	lea	rdi, .LC7[rip]
	call	fopen@PLT
	mov	QWORD PTR -536[rbp], rax
	jmp	.L17
.L20:
	lea	rax, -528[rbp]
	mov	edx, 10
	mov	rsi, rax
	lea	rdi, .LC12[rip]
	call	strncmp@PLT
	test	eax, eax
	je	.L18
	lea	rax, -528[rbp]
	mov	edx, 9
	mov	rsi, rax
	lea	rdi, .LC13[rip]
	call	strncmp@PLT
	test	eax, eax
	je	.L18
	lea	rax, -528[rbp]
	mov	edx, 16
	mov	rsi, rax
	lea	rdi, .LC14[rip]
	call	strncmp@PLT
	test	eax, eax
	jne	.L17
.L18:
	lea	rax, -528[rbp]
	mov	esi, 58
	mov	rdi, rax
	call	strchr@PLT
	add	rax, 2
	mov	QWORD PTR -544[rbp], rax
	jmp	.L19
.L17:
	mov	rdx, QWORD PTR -536[rbp]
	lea	rax, -528[rbp]
	mov	esi, 512
	mov	rdi, rax
	call	fgets@PLT
	test	rax, rax
	jne	.L20
.L19:
	mov	rax, QWORD PTR -536[rbp]
	mov	rdi, rax
	call	fclose@PLT
	cmp	QWORD PTR -544[rbp], 0
	je	.L21
	mov	rax, QWORD PTR -544[rbp]
	lea	rsi, .LC15[rip]
	mov	rdi, rax
	call	strstr@PLT
	test	rax, rax
	je	.L21
	mov	eax, 1
	jmp	.L22
.L21:
	mov	eax, 0
.L22:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L23
	call	__stack_chk_fail@PLT
.L23:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	detect, .-detect
	.globl	get_corename
	.type	get_corename, @function
get_corename:
.LFB2:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	call	detect
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, cpuname[rip]
	mov	rax, QWORD PTR [rdx+rax]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	get_corename, .-get_corename
	.section	.rodata
.LC16:
	.string	"ARM64"
	.text
	.globl	get_architecture
	.type	get_architecture, @function
get_architecture:
.LFB3:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	rdi, .LC16[rip]
	mov	eax, 0
	call	printf@PLT
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	get_architecture, .-get_architecture
	.section	.rodata
.LC17:
	.string	"%s"
	.text
	.globl	get_subarchitecture
	.type	get_subarchitecture, @function
get_subarchitecture:
.LFB4:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	call	detect
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, cpuname[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rsi, rax
	lea	rdi, .LC17[rip]
	mov	eax, 0
	call	printf@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	get_subarchitecture, .-get_subarchitecture
	.section	.rodata
.LC18:
	.string	"arm64"
	.text
	.globl	get_subdirname
	.type	get_subdirname, @function
get_subdirname:
.LFB5:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	rdi, .LC18[rip]
	mov	eax, 0
	call	printf@PLT
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	get_subdirname, .-get_subdirname
	.section	.rodata
.LC19:
	.string	"#define ARMV8"
.LC20:
	.string	"#define L1_DATA_SIZE 32768"
.LC21:
	.string	"#define L1_DATA_LINESIZE 64"
.LC22:
	.string	"#define L2_SIZE 262144"
.LC23:
	.string	"#define L2_LINESIZE 64"
	.align 8
.LC24:
	.string	"#define DTB_DEFAULT_ENTRIES 64"
.LC25:
	.string	"#define DTB_SIZE 4096"
.LC26:
	.string	"#define L2_ASSOCIATIVE 4"
.LC27:
	.string	"#define CORTEXA57"
.LC28:
	.string	"#define HAVE_VFP"
.LC29:
	.string	"#define HAVE_VFPV3"
.LC30:
	.string	"#define HAVE_NEON"
.LC31:
	.string	"#define HAVE_VFPV4"
.LC32:
	.string	"#define L1_CODE_SIZE 49152"
.LC33:
	.string	"#define L1_CODE_LINESIZE 64"
.LC34:
	.string	"#define L1_CODE_ASSOCIATIVE 3"
.LC35:
	.string	"#define L1_DATA_ASSOCIATIVE 2"
.LC36:
	.string	"#define L2_SIZE 2097152"
.LC37:
	.string	"#define L2_ASSOCIATIVE 16"
	.text
	.globl	get_cpuconfig
	.type	get_cpuconfig, @function
get_cpuconfig:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	call	detect
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 1
	je	.L30
	cmp	DWORD PTR -4[rbp], 2
	je	.L31
	jmp	.L33
.L30:
	lea	rdi, .LC19[rip]
	call	puts@PLT
	lea	rdi, .LC20[rip]
	call	puts@PLT
	lea	rdi, .LC21[rip]
	call	puts@PLT
	lea	rdi, .LC22[rip]
	call	puts@PLT
	lea	rdi, .LC23[rip]
	call	puts@PLT
	lea	rdi, .LC24[rip]
	call	puts@PLT
	lea	rdi, .LC25[rip]
	call	puts@PLT
	lea	rdi, .LC26[rip]
	call	puts@PLT
	jmp	.L32
.L31:
	lea	rdi, .LC27[rip]
	call	puts@PLT
	lea	rdi, .LC28[rip]
	call	puts@PLT
	lea	rdi, .LC29[rip]
	call	puts@PLT
	lea	rdi, .LC30[rip]
	call	puts@PLT
	lea	rdi, .LC31[rip]
	call	puts@PLT
	lea	rdi, .LC32[rip]
	call	puts@PLT
	lea	rdi, .LC33[rip]
	call	puts@PLT
	lea	rdi, .LC34[rip]
	call	puts@PLT
	lea	rdi, .LC20[rip]
	call	puts@PLT
	lea	rdi, .LC21[rip]
	call	puts@PLT
	lea	rdi, .LC35[rip]
	call	puts@PLT
	lea	rdi, .LC36[rip]
	call	puts@PLT
	lea	rdi, .LC23[rip]
	call	puts@PLT
	lea	rdi, .LC37[rip]
	call	puts@PLT
	lea	rdi, .LC24[rip]
	call	puts@PLT
	lea	rdi, .LC25[rip]
	call	puts@PLT
	nop
.L32:
.L33:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	get_cpuconfig, .-get_cpuconfig
	.globl	get_libname
	.type	get_libname, @function
get_libname:
.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, 16
	call	detect
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, cpuname_lower[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rsi, rax
	lea	rdi, .LC17[rip]
	mov	eax, 0
	call	printf@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	get_libname, .-get_libname
	.globl	get_features
	.type	get_features, @function
get_features:
.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, 2096
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -2088[rbp], 0
	lea	rsi, .LC6[rip]
	lea	rdi, .LC7[rip]
	call	fopen@PLT
	mov	QWORD PTR -2080[rbp], rax
	jmp	.L36
.L38:
	lea	rax, -2064[rbp]
	mov	edx, 8
	mov	rsi, rax
	lea	rdi, .LC8[rip]
	call	strncmp@PLT
	test	eax, eax
	jne	.L36
	lea	rax, -2064[rbp]
	mov	esi, 58
	mov	rdi, rax
	call	strchr@PLT
	add	rax, 2
	mov	QWORD PTR -2088[rbp], rax
	jmp	.L37
.L36:
	mov	rdx, QWORD PTR -2080[rbp]
	lea	rax, -2064[rbp]
	mov	esi, 2048
	mov	rdi, rax
	call	fgets@PLT
	test	rax, rax
	jne	.L38
.L37:
	mov	rax, QWORD PTR -2080[rbp]
	mov	rdi, rax
	call	fclose@PLT
	cmp	QWORD PTR -2088[rbp], 0
	je	.L44
	mov	rax, QWORD PTR -2088[rbp]
	lea	rsi, .LC9[rip]
	mov	rdi, rax
	call	strtok@PLT
	mov	QWORD PTR -2072[rbp], rax
	nop
.L41:
	lea	rsi, .LC9[rip]
	mov	edi, 0
	call	strtok@PLT
	mov	QWORD PTR -2072[rbp], rax
	cmp	QWORD PTR -2072[rbp], 0
	jne	.L41
	jmp	.L35
.L44:
	nop
.L35:
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L43
	call	__stack_chk_fail@PLT
.L43:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	get_features, .-get_features
	.globl	main
	.type	main, @function
main:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	call	get_corename
	mov	rsi, rax
	lea	rdi, .LC17[rip]
	mov	eax, 0
	call	printf@PLT
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	main, .-main
	.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	"989295.c"
	.text
	.section	.rodata
	.align	2
.LC0:
	.ascii	"UNKNOWN\000"
	.align	2
.LC1:
	.ascii	"ARMV8\000"
	.align	2
.LC2:
	.ascii	"CORTEXA57\000"
	.data
	.align	2
	.type	cpuname, %object
	.size	cpuname, 12
cpuname:
	.word	.LC0
	.word	.LC1
	.word	.LC2
	.section	.rodata
	.align	2
.LC3:
	.ascii	"unknown\000"
	.align	2
.LC4:
	.ascii	"armv8\000"
	.align	2
.LC5:
	.ascii	"cortexa57\000"
	.data
	.align	2
	.type	cpuname_lower, %object
	.size	cpuname_lower, 12
cpuname_lower:
	.word	.LC3
	.word	.LC4
	.word	.LC5
	.section	.rodata
	.align	2
.LC6:
	.ascii	"r\000"
	.align	2
.LC7:
	.ascii	"/proc/cpuinfo\000"
	.align	2
.LC8:
	.ascii	"Features\000"
	.align	2
.LC9:
	.ascii	" \000"
	.align	2
.LC10:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	get_feature
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_feature, %function
get_feature:
	@ args = 0, pretend = 0, frame = 2072
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #2064
	sub	sp, sp, #8
	str	r0, [fp, #-2072]
	ldr	r3, .L11
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-2068]
	ldr	r1, .L11+4
	ldr	r0, .L11+8
	bl	fopen
	str	r0, [fp, #-2064]
	b	.L2
.L4:
	sub	r3, fp, #2048
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r2, #8
	mov	r1, r3
	ldr	r0, .L11+12
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L2
	sub	r3, fp, #2048
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r1, #58
	mov	r0, r3
	bl	strchr
	mov	r3, r0
	add	r3, r3, #2
	str	r3, [fp, #-2068]
	b	.L3
.L2:
	sub	r3, fp, #2048
	sub	r3, r3, #4
	sub	r3, r3, #4
	ldr	r2, [fp, #-2064]
	mov	r1, #2048
	mov	r0, r3
	bl	fgets
	mov	r3, r0
	cmp	r3, #0
	bne	.L4
.L3:
	ldr	r0, [fp, #-2064]
	bl	fclose
	ldr	r3, [fp, #-2068]
	cmp	r3, #0
	bne	.L5
	mov	r3, #0
	b	.L9
.L5:
	ldr	r1, .L11+16
	ldr	r0, [fp, #-2068]
	bl	strtok
	str	r0, [fp, #-2060]
	b	.L7
.L8:
	ldr	r1, [fp, #-2072]
	ldr	r0, [fp, #-2060]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L7
	mov	r3, #1
	b	.L9
.L7:
	ldr	r1, .L11+16
	mov	r0, #0
	bl	strtok
	str	r0, [fp, #-2060]
	ldr	r3, [fp, #-2060]
	cmp	r3, #0
	bne	.L8
	mov	r3, #0
.L9:
	ldr	r2, .L11
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L10
	bl	__stack_chk_fail
.L10:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L12:
	.align	2
.L11:
	.word	.LC10
	.word	.LC6
	.word	.LC7
	.word	.LC8
	.word	.LC9
	.size	get_feature, .-get_feature
	.section	.rodata
	.align	2
.LC11:
	.ascii	"CPU part\000"
	.align	2
.LC12:
	.ascii	"0xd07\000"
	.align	2
.LC13:
	.ascii	"model name\000"
	.align	2
.LC14:
	.ascii	"Processor\000"
	.align	2
.LC15:
	.ascii	"CPU architecture\000"
	.align	2
.LC16:
	.ascii	"AArch64\000"
	.align	2
.LC17:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	detect
	.syntax unified
	.arm
	.fpu softvfp
	.type	detect, %function
detect:
	@ args = 0, pretend = 0, frame = 528
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #528
	ldr	r3, .L26
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-528]
	ldr	r1, .L26+4
	ldr	r0, .L26+8
	bl	fopen
	str	r0, [fp, #-524]
	b	.L14
.L16:
	sub	r3, fp, #520
	mov	r2, #8
	mov	r1, r3
	ldr	r0, .L26+12
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L14
	sub	r3, fp, #520
	mov	r1, #58
	mov	r0, r3
	bl	strchr
	mov	r3, r0
	add	r3, r3, #2
	str	r3, [fp, #-528]
	b	.L15
.L14:
	sub	r3, fp, #520
	ldr	r2, [fp, #-524]
	mov	r1, #512
	mov	r0, r3
	bl	fgets
	mov	r3, r0
	cmp	r3, #0
	bne	.L16
.L15:
	ldr	r0, [fp, #-524]
	bl	fclose
	ldr	r3, [fp, #-528]
	cmp	r3, #0
	beq	.L17
	ldr	r1, .L26+16
	ldr	r0, [fp, #-528]
	bl	strstr
	mov	r3, r0
	cmp	r3, #0
	beq	.L17
	mov	r3, #2
	b	.L24
.L17:
	mov	r3, #0
	str	r3, [fp, #-528]
	ldr	r1, .L26+4
	ldr	r0, .L26+8
	bl	fopen
	str	r0, [fp, #-524]
	b	.L19
.L22:
	sub	r3, fp, #520
	mov	r2, #10
	mov	r1, r3
	ldr	r0, .L26+20
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L20
	sub	r3, fp, #520
	mov	r2, #9
	mov	r1, r3
	ldr	r0, .L26+24
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L20
	sub	r3, fp, #520
	mov	r2, #16
	mov	r1, r3
	ldr	r0, .L26+28
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L19
.L20:
	sub	r3, fp, #520
	mov	r1, #58
	mov	r0, r3
	bl	strchr
	mov	r3, r0
	add	r3, r3, #2
	str	r3, [fp, #-528]
	b	.L21
.L19:
	sub	r3, fp, #520
	ldr	r2, [fp, #-524]
	mov	r1, #512
	mov	r0, r3
	bl	fgets
	mov	r3, r0
	cmp	r3, #0
	bne	.L22
.L21:
	ldr	r0, [fp, #-524]
	bl	fclose
	ldr	r3, [fp, #-528]
	cmp	r3, #0
	beq	.L23
	ldr	r1, .L26+32
	ldr	r0, [fp, #-528]
	bl	strstr
	mov	r3, r0
	cmp	r3, #0
	beq	.L23
	mov	r3, #1
	b	.L24
.L23:
	mov	r3, #0
.L24:
	ldr	r2, .L26
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L25
	bl	__stack_chk_fail
.L25:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L27:
	.align	2
.L26:
	.word	.LC17
	.word	.LC6
	.word	.LC7
	.word	.LC11
	.word	.LC12
	.word	.LC13
	.word	.LC14
	.word	.LC15
	.word	.LC16
	.size	detect, .-detect
	.align	2
	.global	get_corename
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_corename, %function
get_corename:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	bl	detect
	mov	r3, r0
	ldr	r2, .L30
	ldr	r3, [r2, r3, lsl #2]
	mov	r0, r3
	pop	{fp, pc}
.L31:
	.align	2
.L30:
	.word	cpuname
	.size	get_corename, .-get_corename
	.section	.rodata
	.align	2
.LC18:
	.ascii	"ARM64\000"
	.text
	.align	2
	.global	get_architecture
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_architecture, %function
get_architecture:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r0, .L33
	bl	printf
	nop
	pop	{fp, pc}
.L34:
	.align	2
.L33:
	.word	.LC18
	.size	get_architecture, .-get_architecture
	.section	.rodata
	.align	2
.LC19:
	.ascii	"%s\000"
	.text
	.align	2
	.global	get_subarchitecture
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_subarchitecture, %function
get_subarchitecture:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	bl	detect
	str	r0, [fp, #-8]
	ldr	r2, .L36
	ldr	r3, [fp, #-8]
	ldr	r3, [r2, r3, lsl #2]
	mov	r1, r3
	ldr	r0, .L36+4
	bl	printf
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L37:
	.align	2
.L36:
	.word	cpuname
	.word	.LC19
	.size	get_subarchitecture, .-get_subarchitecture
	.section	.rodata
	.align	2
.LC20:
	.ascii	"arm64\000"
	.text
	.align	2
	.global	get_subdirname
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_subdirname, %function
get_subdirname:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r0, .L39
	bl	printf
	nop
	pop	{fp, pc}
.L40:
	.align	2
.L39:
	.word	.LC20
	.size	get_subdirname, .-get_subdirname
	.section	.rodata
	.align	2
.LC21:
	.ascii	"#define ARMV8\000"
	.align	2
.LC22:
	.ascii	"#define L1_DATA_SIZE 32768\000"
	.align	2
.LC23:
	.ascii	"#define L1_DATA_LINESIZE 64\000"
	.align	2
.LC24:
	.ascii	"#define L2_SIZE 262144\000"
	.align	2
.LC25:
	.ascii	"#define L2_LINESIZE 64\000"
	.align	2
.LC26:
	.ascii	"#define DTB_DEFAULT_ENTRIES 64\000"
	.align	2
.LC27:
	.ascii	"#define DTB_SIZE 4096\000"
	.align	2
.LC28:
	.ascii	"#define L2_ASSOCIATIVE 4\000"
	.align	2
.LC29:
	.ascii	"#define CORTEXA57\000"
	.align	2
.LC30:
	.ascii	"#define HAVE_VFP\000"
	.align	2
.LC31:
	.ascii	"#define HAVE_VFPV3\000"
	.align	2
.LC32:
	.ascii	"#define HAVE_NEON\000"
	.align	2
.LC33:
	.ascii	"#define HAVE_VFPV4\000"
	.align	2
.LC34:
	.ascii	"#define L1_CODE_SIZE 49152\000"
	.align	2
.LC35:
	.ascii	"#define L1_CODE_LINESIZE 64\000"
	.align	2
.LC36:
	.ascii	"#define L1_CODE_ASSOCIATIVE 3\000"
	.align	2
.LC37:
	.ascii	"#define L1_DATA_ASSOCIATIVE 2\000"
	.align	2
.LC38:
	.ascii	"#define L2_SIZE 2097152\000"
	.align	2
.LC39:
	.ascii	"#define L2_ASSOCIATIVE 16\000"
	.text
	.align	2
	.global	get_cpuconfig
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_cpuconfig, %function
get_cpuconfig:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	bl	detect
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #1
	beq	.L42
	ldr	r3, [fp, #-8]
	cmp	r3, #2
	beq	.L43
	b	.L45
.L42:
	ldr	r0, .L46
	bl	puts
	ldr	r0, .L46+4
	bl	puts
	ldr	r0, .L46+8
	bl	puts
	ldr	r0, .L46+12
	bl	puts
	ldr	r0, .L46+16
	bl	puts
	ldr	r0, .L46+20
	bl	puts
	ldr	r0, .L46+24
	bl	puts
	ldr	r0, .L46+28
	bl	puts
	b	.L44
.L43:
	ldr	r0, .L46+32
	bl	puts
	ldr	r0, .L46+36
	bl	puts
	ldr	r0, .L46+40
	bl	puts
	ldr	r0, .L46+44
	bl	puts
	ldr	r0, .L46+48
	bl	puts
	ldr	r0, .L46+52
	bl	puts
	ldr	r0, .L46+56
	bl	puts
	ldr	r0, .L46+60
	bl	puts
	ldr	r0, .L46+4
	bl	puts
	ldr	r0, .L46+8
	bl	puts
	ldr	r0, .L46+64
	bl	puts
	ldr	r0, .L46+68
	bl	puts
	ldr	r0, .L46+16
	bl	puts
	ldr	r0, .L46+72
	bl	puts
	ldr	r0, .L46+20
	bl	puts
	ldr	r0, .L46+24
	bl	puts
	nop
.L44:
.L45:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L47:
	.align	2
.L46:
	.word	.LC21
	.word	.LC22
	.word	.LC23
	.word	.LC24
	.word	.LC25
	.word	.LC26
	.word	.LC27
	.word	.LC28
	.word	.LC29
	.word	.LC30
	.word	.LC31
	.word	.LC32
	.word	.LC33
	.word	.LC34
	.word	.LC35
	.word	.LC36
	.word	.LC37
	.word	.LC38
	.word	.LC39
	.size	get_cpuconfig, .-get_cpuconfig
	.align	2
	.global	get_libname
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_libname, %function
get_libname:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	bl	detect
	str	r0, [fp, #-8]
	ldr	r2, .L49
	ldr	r3, [fp, #-8]
	ldr	r3, [r2, r3, lsl #2]
	mov	r1, r3
	ldr	r0, .L49+4
	bl	printf
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L50:
	.align	2
.L49:
	.word	cpuname_lower
	.word	.LC19
	.size	get_libname, .-get_libname
	.section	.rodata
	.align	2
.LC40:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	get_features
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_features, %function
get_features:
	@ args = 0, pretend = 0, frame = 2064
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #2064
	ldr	r3, .L61
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-2068]
	ldr	r1, .L61+4
	ldr	r0, .L61+8
	bl	fopen
	str	r0, [fp, #-2064]
	b	.L52
.L54:
	sub	r3, fp, #2048
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r2, #8
	mov	r1, r3
	ldr	r0, .L61+12
	bl	strncmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L52
	sub	r3, fp, #2048
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r1, #58
	mov	r0, r3
	bl	strchr
	mov	r3, r0
	add	r3, r3, #2
	str	r3, [fp, #-2068]
	b	.L53
.L52:
	sub	r3, fp, #2048
	sub	r3, r3, #4
	sub	r3, r3, #4
	ldr	r2, [fp, #-2064]
	mov	r1, #2048
	mov	r0, r3
	bl	fgets
	mov	r3, r0
	cmp	r3, #0
	bne	.L54
.L53:
	ldr	r0, [fp, #-2064]
	bl	fclose
	ldr	r3, [fp, #-2068]
	cmp	r3, #0
	beq	.L60
	ldr	r1, .L61+16
	ldr	r0, [fp, #-2068]
	bl	strtok
	str	r0, [fp, #-2060]
	nop
.L57:
	ldr	r1, .L61+16
	mov	r0, #0
	bl	strtok
	str	r0, [fp, #-2060]
	ldr	r3, [fp, #-2060]
	cmp	r3, #0
	bne	.L57
	b	.L51
.L60:
	nop
.L51:
	ldr	r3, .L61
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L59
	bl	__stack_chk_fail
.L59:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L62:
	.align	2
.L61:
	.word	.LC40
	.word	.LC6
	.word	.LC7
	.word	.LC8
	.word	.LC9
	.size	get_features, .-get_features
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	bl	get_corename
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L64
	bl	printf
	nop
	pop	{fp, pc}
.L65:
	.align	2
.L64:
	.word	.LC19
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
