	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function read_next_line
_read_next_line:                        ## @read_next_line
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	pushq	%r15
	pushq	%r14
	pushq	%r12
	pushq	%rbx
	subq	$272, %rsp                      ## imm = 0x110
	.cfi_offset %rbx, -48
	.cfi_offset %r12, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	%rdi, %r14
	movq	___stack_chk_guard@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	movq	%rax, -40(%rbp)
	movq	_control_level@GOTPCREL(%rip), %rbx
	cmpl	$254, (%rbx)
	jl	LBB0_2
## %bb.1:
	leaq	L_.str(%rip), %rdi
	callq	_error
LBB0_2:
	movq	_instream@GOTPCREL(%rip), %rax
	movq	(%rax), %r15
	movq	_stdin@GOTPCREL(%rip), %rax
	movq	(%rax), %r12
	cmpq	%r12, %r15
	je	LBB0_5
## %bb.3:
	xorl	%edi, %edi
	testq	%r15, %r15
	jne	LBB0_9
## %bb.4:
	movq	_readline_hook@GOTPCREL(%rip), %rax
	cmpq	$0, (%rax)
	je	LBB0_9
LBB0_5:
	movl	(%rbx), %ebx
	testl	%ebx, %ebx
	jle	LBB0_6
## %bb.7:
	leaq	-304(%rbp), %rdi
	movl	$32, %esi
	movq	%rbx, %rdx
	callq	_memset
	jmp	LBB0_8
LBB0_6:
	xorl	%ebx, %ebx
LBB0_8:
	leaq	-304(%rbp), %rdi
	movl	%ebx, %eax
	movw	$62, -304(%rbp,%rax)
LBB0_9:
	xorl	%esi, %esi
	cmpq	%r12, %r15
	sete	%sil
	leaq	L_.str.1(%rip), %rdx
	callq	_command_line_input
	movq	_end_command@GOTPCREL(%rip), %r12
	testq	%rax, %rax
	je	LBB0_10
## %bb.11:
	movq	%rax, %rbx
	jmp	LBB0_12
	.p2align	4, 0x90
LBB0_14:                                ##   in Loop: Header=BB0_12 Depth=1
	incq	%rbx
LBB0_12:                                ## =>This Inner Loop Header: Depth=1
	movzbl	(%rbx), %eax
	cmpb	$32, %al
	je	LBB0_14
## %bb.13:                              ##   in Loop: Header=BB0_12 Depth=1
	cmpb	$9, %al
	je	LBB0_14
## %bb.15:
	movq	%rbx, %rdi
	callq	_strlen
	movq	_nop_command@GOTPCREL(%rip), %rcx
	testl	%eax, %eax
	je	LBB0_42
## %bb.16:
	movslq	%eax, %r15
	jmp	LBB0_17
	.p2align	4, 0x90
LBB0_19:                                ##   in Loop: Header=BB0_17 Depth=1
	decq	%r15
	je	LBB0_42
LBB0_17:                                ## =>This Inner Loop Header: Depth=1
	movzbl	-1(%rbx,%r15), %eax
	cmpb	$32, %al
	je	LBB0_19
## %bb.18:                              ##   in Loop: Header=BB0_17 Depth=1
	cmpb	$9, %al
	je	LBB0_19
## %bb.20:
	cmpb	$35, (%rbx)
	je	LBB0_42
## %bb.21:
	cmpq	$4, %r15
	je	LBB0_24
## %bb.22:
	cmpq	$3, %r15
	jne	LBB0_26
## %bb.23:
	leaq	L_.str.2(%rip), %rsi
	movq	%rbx, %rdi
	movl	$3, %edx
	callq	_strncmp
	movq	%r12, %rcx
	testl	%eax, %eax
	jne	LBB0_31
	jmp	LBB0_42
LBB0_10:
	movq	%r12, %rcx
LBB0_42:
	movl	(%rcx), %eax
	movq	___stack_chk_guard@GOTPCREL(%rip), %rcx
	movq	(%rcx), %rcx
	cmpq	-40(%rbp), %rcx
	jne	LBB0_44
## %bb.43:
	addq	$272, %rsp                      ## imm = 0x110
	popq	%rbx
	popq	%r12
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
LBB0_24:
	leaq	L_.str.3(%rip), %rsi
	movq	%rbx, %rdi
	movl	$4, %edx
	callq	_strncmp
	testl	%eax, %eax
	jne	LBB0_31
## %bb.25:
	movq	_else_command@GOTPCREL(%rip), %rcx
	jmp	LBB0_42
LBB0_26:
	cmpq	$6, %r15
	jl	LBB0_30
## %bb.27:
	leaq	L_.str.4(%rip), %rsi
	movq	%rbx, %rdi
	movl	$5, %edx
	callq	_strncmp
	testl	%eax, %eax
	jne	LBB0_31
## %bb.28:
	movq	_while_control@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	addq	$6, %rbx
	jmp	LBB0_29
LBB0_30:
	cmpq	$3, %r15
	jl	LBB0_33
LBB0_31:
	leaq	L_.str.5(%rip), %rsi
	movq	%rbx, %rdi
	movl	$2, %edx
	callq	_strncmp
	testl	%eax, %eax
	je	LBB0_32
LBB0_33:
	cmpq	$13, %r15
	je	LBB0_37
## %bb.34:
	cmpq	$10, %r15
	jne	LBB0_39
## %bb.35:
	leaq	L_.str.6(%rip), %rsi
	movq	%rbx, %rdi
	movl	$10, %edx
	callq	_strncmp
	testl	%eax, %eax
	jne	LBB0_39
## %bb.36:
	movl	$40, %edi
	callq	_xmalloc
	movq	%rax, (%r14)
	movq	$0, 32(%rax)
	movq	(%r14), %rax
	movq	$0, 24(%rax)
	movq	_break_control@GOTPCREL(%rip), %rax
	jmp	LBB0_40
LBB0_32:
	movq	_if_control@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	addq	$3, %rbx
LBB0_29:
	movq	%rbx, %rsi
	callq	_build_command_line
	movq	%rax, (%r14)
	jmp	LBB0_41
LBB0_37:
	leaq	L_.str.7(%rip), %rsi
	movq	%rbx, %rdi
	movl	$13, %edx
	callq	_strncmp
	testl	%eax, %eax
	je	LBB0_38
LBB0_39:
	movl	$40, %edi
	callq	_xmalloc
	movq	%rax, (%r14)
	movq	$0, 32(%rax)
	movq	%rbx, %rdi
	movl	%r15d, %esi
	callq	_savestring
	movq	(%r14), %rcx
	movq	%rax, 24(%rcx)
	movq	_simple_control@GOTPCREL(%rip), %rax
LBB0_40:
	movl	(%rax), %eax
	movq	(%r14), %rcx
	movl	%eax, 16(%rcx)
	xorps	%xmm0, %xmm0
	movups	%xmm0, (%rcx)
LBB0_41:
	movq	_ok_command@GOTPCREL(%rip), %rcx
	jmp	LBB0_42
LBB0_38:
	movl	$40, %edi
	callq	_xmalloc
	movq	%rax, (%r14)
	movq	$0, 32(%rax)
	movq	(%r14), %rax
	movq	$0, 24(%rax)
	movq	_continue_control@GOTPCREL(%rip), %rax
	jmp	LBB0_40
LBB0_44:
	callq	___stack_chk_fail
	.cfi_endproc
                                        ## -- End function
	.comm	_control_level,4,2              ## @control_level
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"Control nesting too deep!\n"

	.comm	_instream,8,3                   ## @instream
	.comm	_stdin,8,3                      ## @stdin
	.comm	_readline_hook,8,3              ## @readline_hook
L_.str.1:                               ## @.str.1
	.asciz	"commands"

	.comm	_end_command,4,2                ## @end_command
	.comm	_nop_command,4,2                ## @nop_command
L_.str.2:                               ## @.str.2
	.asciz	"end"

L_.str.3:                               ## @.str.3
	.asciz	"else"

	.comm	_else_command,4,2               ## @else_command
L_.str.4:                               ## @.str.4
	.asciz	"while"

	.comm	_while_control,4,2              ## @while_control
L_.str.5:                               ## @.str.5
	.asciz	"if"

	.comm	_if_control,4,2                 ## @if_control
L_.str.6:                               ## @.str.6
	.asciz	"loop_break"

	.comm	_break_control,4,2              ## @break_control
L_.str.7:                               ## @.str.7
	.asciz	"loop_continue"

	.comm	_continue_control,4,2           ## @continue_control
	.comm	_simple_control,4,2             ## @simple_control
	.comm	_ok_command,4,2                 ## @ok_command
	.no_dead_strip	_read_next_line
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function read_next_line
_read_next_line:                        ; @read_next_line
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #336
	.cfi_def_cfa_offset 336
	stp	x28, x27, [sp, #272]            ; 16-byte Folded Spill
	stp	x22, x21, [sp, #288]            ; 16-byte Folded Spill
	stp	x20, x19, [sp, #304]            ; 16-byte Folded Spill
	stp	x29, x30, [sp, #320]            ; 16-byte Folded Spill
	add	x29, sp, #320
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	.cfi_offset w19, -24
	.cfi_offset w20, -32
	.cfi_offset w21, -40
	.cfi_offset w22, -48
	.cfi_offset w27, -56
	.cfi_offset w28, -64
	mov	x19, x0
Lloh0:
	adrp	x8, ___stack_chk_guard@GOTPAGE
Lloh1:
	ldr	x8, [x8, ___stack_chk_guard@GOTPAGEOFF]
Lloh2:
	ldr	x8, [x8]
	stur	x8, [x29, #-56]
Lloh3:
	adrp	x20, _control_level@GOTPAGE
Lloh4:
	ldr	x20, [x20, _control_level@GOTPAGEOFF]
	ldr	w8, [x20]
	cmp	w8, #254
	b.lt	LBB0_2
; %bb.1:
Lloh5:
	adrp	x0, l_.str@PAGE
Lloh6:
	add	x0, x0, l_.str@PAGEOFF
	bl	_error
LBB0_2:
Lloh7:
	adrp	x8, _instream@GOTPAGE
Lloh8:
	ldr	x8, [x8, _instream@GOTPAGEOFF]
Lloh9:
	ldr	x21, [x8]
Lloh10:
	adrp	x8, _stdin@GOTPAGE
Lloh11:
	ldr	x8, [x8, _stdin@GOTPAGEOFF]
Lloh12:
	ldr	x22, [x8]
	cmp	x21, x22
	b.eq	LBB0_5
; %bb.3:
Lloh13:
	adrp	x8, _readline_hook@GOTPAGE
Lloh14:
	ldr	x8, [x8, _readline_hook@GOTPAGEOFF]
Lloh15:
	ldr	x8, [x8]
	cmp	x21, #0
	ccmp	x8, #0, #4, eq
	b.ne	LBB0_5
; %bb.4:
	mov	x0, #0
	b	LBB0_9
LBB0_5:
	ldr	w20, [x20]
	cmp	w20, #1
	b.lt	LBB0_7
; %bb.6:
	add	x0, sp, #8
	mov	w1, #32
	mov	x2, x20
	bl	_memset
	b	LBB0_8
LBB0_7:
	mov	w20, #0
LBB0_8:
	add	x0, sp, #8
	mov	w8, #62
	strh	w8, [x0, w20, uxtw]
LBB0_9:
	cmp	x21, x22
	cset	w1, eq
Lloh16:
	adrp	x2, l_.str.1@PAGE
Lloh17:
	add	x2, x2, l_.str.1@PAGEOFF
	bl	_command_line_input
	cbz	x0, LBB0_22
; %bb.10:
	mov	x20, x0
LBB0_11:                                ; =>This Inner Loop Header: Depth=1
	ldrb	w8, [x20]
	cmp	w8, #32
	ccmp	w8, #9, #4, ne
	b.ne	LBB0_13
; %bb.12:                               ;   in Loop: Header=BB0_11 Depth=1
	add	x20, x20, #1
	b	LBB0_11
LBB0_13:
	mov	x0, x20
	bl	_strlen
                                        ; kill: def $w0 killed $w0 def $x0
	cbz	w0, LBB0_18
; %bb.14:
	sxtw	x21, w0
Lloh18:
	adrp	x8, _nop_command@GOTPAGE
Lloh19:
	ldr	x8, [x8, _nop_command@GOTPAGEOFF]
LBB0_15:                                ; =>This Inner Loop Header: Depth=1
	add	x9, x20, x21
	ldurb	w9, [x9, #-1]
	cmp	w9, #32
	ccmp	w9, #9, #4, ne
	b.ne	LBB0_17
; %bb.16:                               ;   in Loop: Header=BB0_15 Depth=1
	subs	x21, x21, #1
	b.ne	LBB0_15
	b	LBB0_23
LBB0_17:
	ldrb	w8, [x20]
	cmp	w8, #35
	b.ne	LBB0_19
LBB0_18:
Lloh20:
	adrp	x8, _nop_command@GOTPAGE
Lloh21:
	ldr	x8, [x8, _nop_command@GOTPAGEOFF]
	b	LBB0_23
LBB0_19:
	cmp	x21, #4
	b.eq	LBB0_25
; %bb.20:
	cmp	x21, #3
	b.ne	LBB0_27
; %bb.21:
Lloh22:
	adrp	x1, l_.str.2@PAGE
Lloh23:
	add	x1, x1, l_.str.2@PAGEOFF
	mov	x0, x20
	mov	w2, #3
	bl	_strncmp
	cbnz	w0, LBB0_31
LBB0_22:
Lloh24:
	adrp	x8, _end_command@GOTPAGE
Lloh25:
	ldr	x8, [x8, _end_command@GOTPAGEOFF]
LBB0_23:
	ldr	w0, [x8]
	ldur	x8, [x29, #-56]
Lloh26:
	adrp	x9, ___stack_chk_guard@GOTPAGE
Lloh27:
	ldr	x9, [x9, ___stack_chk_guard@GOTPAGEOFF]
Lloh28:
	ldr	x9, [x9]
	cmp	x9, x8
	b.ne	LBB0_43
; %bb.24:
	ldp	x29, x30, [sp, #320]            ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #304]            ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #288]            ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #272]            ; 16-byte Folded Reload
	add	sp, sp, #336
	ret
LBB0_25:
Lloh29:
	adrp	x1, l_.str.3@PAGE
Lloh30:
	add	x1, x1, l_.str.3@PAGEOFF
	mov	x0, x20
	mov	w2, #4
	bl	_strncmp
	cbnz	w0, LBB0_31
; %bb.26:
Lloh31:
	adrp	x8, _else_command@GOTPAGE
Lloh32:
	ldr	x8, [x8, _else_command@GOTPAGEOFF]
	b	LBB0_23
LBB0_27:
	cmp	x21, #6
	b.lt	LBB0_30
; %bb.28:
Lloh33:
	adrp	x1, l_.str.4@PAGE
Lloh34:
	add	x1, x1, l_.str.4@PAGEOFF
	mov	x0, x20
	mov	w2, #5
	bl	_strncmp
	cbnz	w0, LBB0_31
; %bb.29:
Lloh35:
	adrp	x8, _while_control@GOTPAGE
Lloh36:
	ldr	x8, [x8, _while_control@GOTPAGEOFF]
Lloh37:
	ldr	w0, [x8]
	add	x1, x20, #6
	b	LBB0_37
LBB0_30:
	cmp	x21, #3
	b.lt	LBB0_32
LBB0_31:
Lloh38:
	adrp	x1, l_.str.5@PAGE
Lloh39:
	add	x1, x1, l_.str.5@PAGEOFF
	mov	x0, x20
	mov	w2, #2
	bl	_strncmp
	cbz	w0, LBB0_36
LBB0_32:
	cmp	x21, #13
	b.eq	LBB0_38
; %bb.33:
	cmp	x21, #10
	b.ne	LBB0_39
; %bb.34:
Lloh40:
	adrp	x1, l_.str.6@PAGE
Lloh41:
	add	x1, x1, l_.str.6@PAGEOFF
	mov	x0, x20
	mov	w2, #10
	bl	_strncmp
	cbnz	w0, LBB0_39
; %bb.35:
	mov	w0, #40
	bl	_xmalloc
	str	x0, [x19]
	str	xzr, [x0, #32]
	ldr	x8, [x19]
	str	xzr, [x8, #24]
Lloh42:
	adrp	x8, _break_control@GOTPAGE
Lloh43:
	ldr	x8, [x8, _break_control@GOTPAGEOFF]
	b	LBB0_40
LBB0_36:
Lloh44:
	adrp	x8, _if_control@GOTPAGE
Lloh45:
	ldr	x8, [x8, _if_control@GOTPAGEOFF]
Lloh46:
	ldr	w0, [x8]
	add	x1, x20, #3
LBB0_37:
	bl	_build_command_line
	str	x0, [x19]
	b	LBB0_41
LBB0_38:
Lloh47:
	adrp	x1, l_.str.7@PAGE
Lloh48:
	add	x1, x1, l_.str.7@PAGEOFF
	mov	x0, x20
	mov	w2, #13
	bl	_strncmp
	cbz	w0, LBB0_42
LBB0_39:
	mov	w0, #40
	bl	_xmalloc
	str	x0, [x19]
	str	xzr, [x0, #32]
	mov	x0, x20
	mov	x1, x21
	bl	_savestring
	ldr	x8, [x19]
	str	x0, [x8, #24]
Lloh49:
	adrp	x8, _simple_control@GOTPAGE
Lloh50:
	ldr	x8, [x8, _simple_control@GOTPAGEOFF]
LBB0_40:
	ldr	w8, [x8]
	ldr	x9, [x19]
	str	w8, [x9, #16]
	stp	xzr, xzr, [x9]
LBB0_41:
Lloh51:
	adrp	x8, _ok_command@GOTPAGE
Lloh52:
	ldr	x8, [x8, _ok_command@GOTPAGEOFF]
	b	LBB0_23
LBB0_42:
	mov	w0, #40
	bl	_xmalloc
	str	x0, [x19]
	str	xzr, [x0, #32]
	ldr	x8, [x19]
	str	xzr, [x8, #24]
Lloh53:
	adrp	x8, _continue_control@GOTPAGE
Lloh54:
	ldr	x8, [x8, _continue_control@GOTPAGEOFF]
	b	LBB0_40
LBB0_43:
	bl	___stack_chk_fail
	.loh AdrpLdrGot	Lloh3, Lloh4
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpAdd	Lloh5, Lloh6
	.loh AdrpLdrGotLdr	Lloh10, Lloh11, Lloh12
	.loh AdrpLdrGotLdr	Lloh7, Lloh8, Lloh9
	.loh AdrpLdrGotLdr	Lloh13, Lloh14, Lloh15
	.loh AdrpAdd	Lloh16, Lloh17
	.loh AdrpLdrGot	Lloh18, Lloh19
	.loh AdrpLdrGot	Lloh20, Lloh21
	.loh AdrpAdd	Lloh22, Lloh23
	.loh AdrpLdrGot	Lloh24, Lloh25
	.loh AdrpLdrGotLdr	Lloh26, Lloh27, Lloh28
	.loh AdrpAdd	Lloh29, Lloh30
	.loh AdrpLdrGot	Lloh31, Lloh32
	.loh AdrpAdd	Lloh33, Lloh34
	.loh AdrpLdrGotLdr	Lloh35, Lloh36, Lloh37
	.loh AdrpAdd	Lloh38, Lloh39
	.loh AdrpAdd	Lloh40, Lloh41
	.loh AdrpLdrGot	Lloh42, Lloh43
	.loh AdrpLdrGotLdr	Lloh44, Lloh45, Lloh46
	.loh AdrpAdd	Lloh47, Lloh48
	.loh AdrpLdrGot	Lloh49, Lloh50
	.loh AdrpLdrGot	Lloh51, Lloh52
	.loh AdrpLdrGot	Lloh53, Lloh54
	.cfi_endproc
                                        ; -- End function
	.comm	_control_level,4,2              ; @control_level
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"Control nesting too deep!\n"

	.comm	_instream,8,3                   ; @instream
	.comm	_stdin,8,3                      ; @stdin
	.comm	_readline_hook,8,3              ; @readline_hook
l_.str.1:                               ; @.str.1
	.asciz	"commands"

	.comm	_end_command,4,2                ; @end_command
	.comm	_nop_command,4,2                ; @nop_command
l_.str.2:                               ; @.str.2
	.asciz	"end"

l_.str.3:                               ; @.str.3
	.asciz	"else"

	.comm	_else_command,4,2               ; @else_command
l_.str.4:                               ; @.str.4
	.asciz	"while"

	.comm	_while_control,4,2              ; @while_control
l_.str.5:                               ; @.str.5
	.asciz	"if"

	.comm	_if_control,4,2                 ; @if_control
l_.str.6:                               ; @.str.6
	.asciz	"loop_break"

	.comm	_break_control,4,2              ; @break_control
l_.str.7:                               ; @.str.7
	.asciz	"loop_continue"

	.comm	_continue_control,4,2           ; @continue_control
	.comm	_simple_control,4,2             ; @simple_control
	.comm	_ok_command,4,2                 ; @ok_command
	.no_dead_strip	_read_next_line
.subsections_via_symbols
