	.arch armv8-a
	.file	"shell.c"
	.text
	.section	.rodata
	.align	3
.LC0:
	.string	"smid_sh# "
	.text
	.align	2
	.global	print_shell
	.type	print_shell, %function
print_shell:
.LFB0:
	.cfi_startproc
	stp	x29, x30, [sp, -16]!
	.cfi_def_cfa_offset 16
	.cfi_offset 29, -16
	.cfi_offset 30, -8
	mov	x29, sp
	adrp	x0, .LC0
	add	x0, x0, :lo12:.LC0
	bl	printf
	nop
	ldp	x29, x30, [sp], 16
	.cfi_restore 30
	.cfi_restore 29
	.cfi_def_cfa_offset 0
	ret
	.cfi_endproc
.LFE0:
	.size	print_shell, .-print_shell
	.section	.rodata
	.align	3
.LC1:
	.string	"Shell input successful\n\007"
	.text
	.align	2
	.global	test
	.type	test, %function
test:
.LFB1:
	.cfi_startproc
	stp	x29, x30, [sp, -16]!
	.cfi_def_cfa_offset 16
	.cfi_offset 29, -16
	.cfi_offset 30, -8
	mov	x29, sp
	adrp	x0, .LC1
	add	x0, x0, :lo12:.LC1
	bl	printf
	nop
	ldp	x29, x30, [sp], 16
	.cfi_restore 30
	.cfi_restore 29
	.cfi_def_cfa_offset 0
	ret
	.cfi_endproc
.LFE1:
	.size	test, .-test
	.section	.rodata
	.align	3
.LC2:
	.string	"Exiting"
	.text
	.align	2
	.global	do_exit
	.type	do_exit, %function
do_exit:
.LFB2:
	.cfi_startproc
	stp	x29, x30, [sp, -16]!
	.cfi_def_cfa_offset 16
	.cfi_offset 29, -16
	.cfi_offset 30, -8
	mov	x29, sp
	adrp	x0, .LC2
	add	x0, x0, :lo12:.LC2
	bl	puts
	adrp	x0, :got:state;ldr	x0, [x0, :got_lo12:state]
	str	wzr, [x0]
	nop
	ldp	x29, x30, [sp], 16
	.cfi_restore 30
	.cfi_restore 29
	.cfi_def_cfa_offset 0
	ret
	.cfi_endproc
.LFE2:
	.size	do_exit, .-do_exit
	.section	.rodata
	.align	3
.LC3:
	.string	"\n"
	.text
	.align	2
	.global	get_input
	.type	get_input, %function
get_input:
.LFB3:
	.cfi_startproc
	stp	x29, x30, [sp, -16]!
	.cfi_def_cfa_offset 16
	.cfi_offset 29, -16
	.cfi_offset 30, -8
	mov	x29, sp
	adrp	x0, :got:stdin;ldr	x0, [x0, :got_lo12:stdin]
	ldr	x0, [x0]
	mov	x2, x0
	mov	w1, 100
	adrp	x0, :got:input;ldr	x0, [x0, :got_lo12:input]
	bl	fgets
	cmp	x0, 0
	bne	.L5
	adrp	x0, :got:input;ldr	x0, [x0, :got_lo12:input]
	strb	wzr, [x0]
	b	.L4
.L5:
	adrp	x0, .LC3
	add	x1, x0, :lo12:.LC3
	adrp	x0, :got:input;ldr	x0, [x0, :got_lo12:input]
	bl	strcspn
	mov	x1, x0
	adrp	x0, :got:input;ldr	x0, [x0, :got_lo12:input]
	strb	wzr, [x0, x1]
.L4:
	ldp	x29, x30, [sp], 16
	.cfi_restore 30
	.cfi_restore 29
	.cfi_def_cfa_offset 0
	ret
	.cfi_endproc
.LFE3:
	.size	get_input, .-get_input
	.section	.rodata
	.align	3
.LC4:
	.string	"\033[H\033[2J\033[3J"
	.text
	.align	2
	.global	clear_screen
	.type	clear_screen, %function
clear_screen:
.LFB4:
	.cfi_startproc
	stp	x29, x30, [sp, -16]!
	.cfi_def_cfa_offset 16
	.cfi_offset 29, -16
	.cfi_offset 30, -8
	mov	x29, sp
	adrp	x0, .LC4
	add	x0, x0, :lo12:.LC4
	bl	printf
	nop
	ldp	x29, x30, [sp], 16
	.cfi_restore 30
	.cfi_restore 29
	.cfi_def_cfa_offset 0
	ret
	.cfi_endproc
.LFE4:
	.size	clear_screen, .-clear_screen
	.ident	"GCC: (Debian 14.2.0-19) 14.2.0"
	.section	.note.GNU-stack,"",@progbits
