	.file	"395174.c"
	.intel_syntax noprefix
	.text
	.local	var
	.comm	var,100,32
	.local	sp
	.comm	sp,4,4
	.section	.rodata
.LC0:
	.string	"{[ 7 + (77*7)] + 8}"
.LC1:
	.string	"s : %d\n"
	.text
	.globl	main_arraystack
	.type	main_arraystack, @function
main_arraystack:
.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, 32
	mov	DWORD PTR -20[rbp], edi
	mov	QWORD PTR -32[rbp], rsi
	lea	rax, .LC0[rip]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	is_legal
	mov	esi, eax
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	main_arraystack, .-main_arraystack
	.globl	is_legal
	.type	is_legal, @function
is_legal:
.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, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -4[rbp], 0
	jmp	.L4
.L15:
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	cmp	eax, 125
	je	.L5
	cmp	eax, 125
	jg	.L17
	cmp	eax, 123
	je	.L7
	cmp	eax, 123
	jg	.L17
	cmp	eax, 93
	je	.L8
	cmp	eax, 93
	jg	.L17
	cmp	eax, 91
	je	.L7
	cmp	eax, 91
	jg	.L17
	cmp	eax, 40
	je	.L7
	cmp	eax, 41
	je	.L9
	jmp	.L17
.L7:
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	edi, eax
	call	push
	jmp	.L10
.L8:
	call	pop
	mov	BYTE PTR -5[rbp], al
	cmp	BYTE PTR -5[rbp], 91
	je	.L18
	mov	eax, -1
	jmp	.L12
.L5:
	call	pop
	mov	BYTE PTR -5[rbp], al
	cmp	BYTE PTR -5[rbp], 123
	je	.L19
	mov	eax, -1
	jmp	.L12
.L9:
	call	pop
	mov	BYTE PTR -5[rbp], al
	cmp	BYTE PTR -5[rbp], 40
	je	.L20
	mov	eax, -1
	jmp	.L12
.L17:
	nop
	jmp	.L10
.L18:
	nop
	jmp	.L10
.L19:
	nop
	jmp	.L10
.L20:
	nop
.L10:
	add	DWORD PTR -4[rbp], 1
.L4:
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L15
	call	is_empty
	test	eax, eax
	je	.L16
	mov	eax, 1
	jmp	.L12
.L16:
	mov	eax, -1
.L12:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	is_legal, .-is_legal
	.section	.rodata
.LC2:
	.string	"error: stack is full"
	.text
	.globl	push
	.type	push, @function
push:
.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, 16
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	mov	eax, DWORD PTR sp[rip]
	cmp	eax, 99
	jle	.L22
	lea	rdi, .LC2[rip]
	mov	eax, 0
	call	printf@PLT
	jmp	.L24
.L22:
	mov	eax, DWORD PTR sp[rip]
	lea	edx, 1[rax]
	mov	DWORD PTR sp[rip], edx
	cdqe
	lea	rcx, var[rip]
	movzx	edx, BYTE PTR -4[rbp]
	mov	BYTE PTR [rax+rcx], dl
.L24:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	push, .-push
	.section	.rodata
.LC3:
	.string	"error: stack is empty"
	.text
	.globl	pop
	.type	pop, @function
pop:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, DWORD PTR sp[rip]
	test	eax, eax
	jg	.L26
	lea	rdi, .LC3[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, -1
	jmp	.L27
.L26:
	mov	eax, DWORD PTR sp[rip]
	sub	eax, 1
	mov	DWORD PTR sp[rip], eax
	mov	eax, DWORD PTR sp[rip]
	cdqe
	lea	rdx, var[rip]
	movzx	eax, BYTE PTR [rax+rdx]
.L27:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	pop, .-pop
	.globl	is_empty
	.type	is_empty, @function
is_empty:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, DWORD PTR sp[rip]
	test	eax, eax
	setle	al
	movzx	eax, al
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	is_empty, .-is_empty
	.globl	clearup
	.type	clearup, @function
clearup:
.LFB11:
	.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 sp[rip], 0
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	clearup, .-clearup
	.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	"395174.c"
	.text
	.local	var
	.comm	var,100,4
	.local	sp
	.comm	sp,4,4
	.section	.rodata
	.align	2
.LC0:
	.ascii	"{[ 7 + (77*7)] + 8}\000"
	.align	2
.LC1:
	.ascii	"s : %d\012\000"
	.text
	.align	2
	.global	main_arraystack
	.syntax unified
	.arm
	.fpu softvfp
	.type	main_arraystack, %function
main_arraystack:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, .L3
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	is_legal
	mov	r3, r0
	mov	r1, r3
	ldr	r0, .L3+4
	bl	printf
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L4:
	.align	2
.L3:
	.word	.LC0
	.word	.LC1
	.size	main_arraystack, .-main_arraystack
	.align	2
	.global	is_legal
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_legal, %function
is_legal:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L6
.L17:
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #125
	beq	.L7
	cmp	r3, #125
	bgt	.L19
	cmp	r3, #123
	beq	.L9
	cmp	r3, #123
	bgt	.L19
	cmp	r3, #93
	beq	.L10
	cmp	r3, #93
	bgt	.L19
	cmp	r3, #91
	beq	.L9
	cmp	r3, #91
	bgt	.L19
	cmp	r3, #40
	beq	.L9
	cmp	r3, #41
	beq	.L11
	b	.L19
.L9:
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	push
	b	.L12
.L10:
	bl	pop
	mov	r3, r0
	strb	r3, [fp, #-9]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	cmp	r3, #91
	beq	.L20
	mvn	r3, #0
	b	.L14
.L7:
	bl	pop
	mov	r3, r0
	strb	r3, [fp, #-9]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	cmp	r3, #123
	beq	.L21
	mvn	r3, #0
	b	.L14
.L11:
	bl	pop
	mov	r3, r0
	strb	r3, [fp, #-9]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	cmp	r3, #40
	beq	.L22
	mvn	r3, #0
	b	.L14
.L19:
	nop
	b	.L12
.L20:
	nop
	b	.L12
.L21:
	nop
	b	.L12
.L22:
	nop
.L12:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L6:
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L17
	bl	is_empty
	mov	r3, r0
	cmp	r3, #0
	beq	.L18
	mov	r3, #1
	b	.L14
.L18:
	mvn	r3, #0
.L14:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	is_legal, .-is_legal
	.section	.rodata
	.align	2
.LC2:
	.ascii	"error: stack is full\000"
	.text
	.align	2
	.global	push
	.syntax unified
	.arm
	.fpu softvfp
	.type	push, %function
push:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldr	r3, .L27
	ldr	r3, [r3]
	cmp	r3, #99
	ble	.L24
	ldr	r0, .L27+4
	bl	printf
	b	.L26
.L24:
	ldr	r3, .L27
	ldr	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L27
	str	r2, [r1]
	ldr	r1, .L27+8
	ldrb	r2, [fp, #-5]
	strb	r2, [r1, r3]
.L26:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L28:
	.align	2
.L27:
	.word	sp
	.word	.LC2
	.word	var
	.size	push, .-push
	.section	.rodata
	.align	2
.LC3:
	.ascii	"error: stack is empty\000"
	.text
	.align	2
	.global	pop
	.syntax unified
	.arm
	.fpu softvfp
	.type	pop, %function
pop:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L32
	ldr	r3, [r3]
	cmp	r3, #0
	bgt	.L30
	ldr	r0, .L32+4
	bl	printf
	mov	r3, #255
	b	.L31
.L30:
	ldr	r3, .L32
	ldr	r3, [r3]
	sub	r3, r3, #1
	ldr	r2, .L32
	str	r3, [r2]
	ldr	r3, .L32
	ldr	r3, [r3]
	ldr	r2, .L32+8
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
.L31:
	mov	r0, r3
	pop	{fp, pc}
.L33:
	.align	2
.L32:
	.word	sp
	.word	.LC3
	.word	var
	.size	pop, .-pop
	.align	2
	.global	is_empty
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_empty, %function
is_empty:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	ldr	r3, .L36
	ldr	r3, [r3]
	cmp	r3, #0
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L37:
	.align	2
.L36:
	.word	sp
	.size	is_empty, .-is_empty
	.align	2
	.global	clearup
	.syntax unified
	.arm
	.fpu softvfp
	.type	clearup, %function
clearup:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	ldr	r3, .L39
	mov	r2, #0
	str	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L40:
	.align	2
.L39:
	.word	sp
	.size	clearup, .-clearup
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
