	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function validate_expr
_validate_expr:                         ## @validate_expr
	.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	%r13
	pushq	%r12
	pushq	%rbx
	pushq	%rax
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	%r8, %r14
	testl	%esi, %esi
	setne	%r8b
	testl	%edx, %edx
	sete	%r10b
	testl	%ecx, %ecx
	sete	%cl
	movl	(%r14), %r9d
	testq	%rdi, %rdi
	je	LBB0_18
## %bb.1:
	movq	%rdi, %r13
	leaq	LJTI0_0(%rip), %r15
	movl	$1, %r12d
	.p2align	4, 0x90
LBB0_2:                                 ## =>This Inner Loop Header: Depth=1
	movl	(%r13), %esi
	leal	-128(%rsi), %eax
	cmpl	$7, %eax
	ja	LBB0_31
## %bb.3:                               ##   in Loop: Header=BB0_2 Depth=1
	movl	%r10d, %edx
	notb	%dl
	movzbl	%dl, %ebx
	andl	$1, %ebx
	movl	%ecx, %edx
	notb	%dl
	movzbl	%dl, %esi
	andl	$1, %esi
	movslq	(%r15,%rax,4), %rax
	addq	%r15, %rax
	jmpq	*%rax
LBB0_4:                                 ##   in Loop: Header=BB0_2 Depth=1
	orb	%r10b, %cl
	notb	%cl
	andb	%r8b, %cl
	movl	$1, %ebx
	testb	$1, %cl
	je	LBB0_7
## %bb.5:                               ##   in Loop: Header=BB0_2 Depth=1
	xorl	%esi, %esi
	jmp	LBB0_8
	.p2align	4, 0x90
LBB0_6:                                 ##   in Loop: Header=BB0_2 Depth=1
	andb	%r8b, %r10b
	testb	$1, %r8b
	cmovnel	%r12d, %ebx
	cmovnel	%r12d, %esi
	testb	$1, %r10b
	je	LBB0_8
	jmp	LBB0_20
	.p2align	4, 0x90
LBB0_7:                                 ##   in Loop: Header=BB0_2 Depth=1
	andb	%r10b, %r8b
	testb	$1, %r8b
	je	LBB0_21
LBB0_8:                                 ##   in Loop: Header=BB0_2 Depth=1
	movq	8(%r13), %rdi
	movb	$1, %al
LBB0_9:                                 ##   in Loop: Header=BB0_2 Depth=1
	testl	%ebx, %ebx
	sete	%r10b
	testl	%esi, %esi
	sete	%cl
	movl	%eax, %r8d
	movq	%rdi, %r13
	testq	%rdi, %rdi
	jne	LBB0_2
	jmp	LBB0_19
LBB0_10:                                ##   in Loop: Header=BB0_2 Depth=1
	movq	8(%r13), %rdi
	testq	%rdi, %rdi
	je	LBB0_32
## %bb.11:                              ##   in Loop: Header=BB0_2 Depth=1
	movl	(%rdi), %eax
	andl	$-4, %eax
	cmpl	$132, %eax
	je	LBB0_24
## %bb.12:                              ##   in Loop: Header=BB0_2 Depth=1
	movl	%r8d, %eax
	andb	%r10b, %al
	testb	$1, %al
	jne	LBB0_25
## %bb.13:                              ##   in Loop: Header=BB0_2 Depth=1
	orb	%cl, %r10b
	notb	%r10b
	andb	%r8b, %r10b
	testb	$1, %r10b
	jne	LBB0_26
## %bb.14:                              ##   in Loop: Header=BB0_2 Depth=1
	incl	%r9d
	movl	%r9d, (%r14)
	xorl	%eax, %eax
	testb	$1, %r8b
	je	LBB0_17
## %bb.15:                              ##   in Loop: Header=BB0_2 Depth=1
	xorl	%esi, %esi
	xorl	%edx, %edx
	xorl	%ecx, %ecx
	movq	%r14, %r8
	callq	_validate_expr
	testl	%eax, %eax
	jne	LBB0_28
## %bb.16:                              ##   in Loop: Header=BB0_2 Depth=1
	movl	(%r14), %r9d
	movl	$1, %esi
	jmp	LBB0_8
LBB0_17:                                ##   in Loop: Header=BB0_2 Depth=1
	xorl	%ebx, %ebx
	xorl	%esi, %esi
	jmp	LBB0_9
LBB0_18:
	movl	%r8d, %eax
LBB0_19:
	orb	%cl, %r10b
	testl	%r9d, %r9d
	setne	%cl
	xorb	$1, %al
	orb	%r10b, %al
	orb	%cl, %al
	movzbl	%al, %eax
	jmp	LBB0_29
LBB0_20:
	leaq	L_str(%rip), %rdi
	jmp	LBB0_27
LBB0_21:
	leaq	L_str.13(%rip), %rdi
	jmp	LBB0_27
LBB0_22:
	decl	%r9d
	movl	%r9d, (%r14)
	orb	%cl, %r10b
	notb	%r10b
	andb	%r10b, %r8b
	xorl	%eax, %eax
	testb	$1, %r8b
	jne	LBB0_29
## %bb.23:
	leaq	L_str.8(%rip), %rdi
	jmp	LBB0_27
LBB0_24:
	leaq	L_str.11(%rip), %rdi
	jmp	LBB0_27
LBB0_25:
	leaq	L_str.10(%rip), %rdi
	jmp	LBB0_27
LBB0_26:
	leaq	L_str.9(%rip), %rdi
LBB0_27:
	callq	_puts
LBB0_28:
	movl	$-1, %eax
LBB0_29:
	addq	$8, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
LBB0_31:
	leaq	L_.str.7(%rip), %rdi
                                        ## kill: def $esi killed $esi killed $rsi
	xorl	%eax, %eax
	callq	_printf
	movl	$-5, %edi
	callq	_exit
LBB0_32:
	leaq	L_str.12(%rip), %rdi
	callq	_puts
	movl	$-1, %edi
	callq	_exit
	.cfi_endproc
	.p2align	2, 0x90
	.data_region jt32
.set L0_0_set_6, LBB0_6-LJTI0_0
.set L0_0_set_10, LBB0_10-LJTI0_0
.set L0_0_set_22, LBB0_22-LJTI0_0
.set L0_0_set_4, LBB0_4-LJTI0_0
LJTI0_0:
	.long	L0_0_set_6
	.long	L0_0_set_6
	.long	L0_0_set_10
	.long	L0_0_set_22
	.long	L0_0_set_4
	.long	L0_0_set_4
	.long	L0_0_set_4
	.long	L0_0_set_4
	.end_data_region
                                        ## -- End function
	.section	__TEXT,__cstring,cstring_literals
L_.str.7:                               ## @.str.7
	.asciz	"unknown type %d\n"

L_str:                                  ## @str
	.asciz	"val1 set, val2 about to be set op empty"

L_str.8:                                ## @str.8
	.asciz	"Found close paren and not complete"

L_str.9:                                ## @str.9
	.asciz	"'Val OP Val (' -- not allowed"

L_str.10:                               ## @str.10
	.asciz	"'Val (' -- not allowed"

L_str.11:                               ## @str.11
	.asciz	"'( OP' -- not allowed"

L_str.12:                               ## @str.12
	.asciz	"NULL after open paren"

L_str.13:                               ## @str.13
	.asciz	"Op but no val1 set"

	.no_dead_strip	_validate_expr
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function validate_expr
_validate_expr:                         ; @validate_expr
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #64
	.cfi_def_cfa_offset 64
	stp	x22, x21, [sp, #16]             ; 16-byte Folded Spill
	stp	x20, x19, [sp, #32]             ; 16-byte Folded Spill
	stp	x29, x30, [sp, #48]             ; 16-byte Folded Spill
	add	x29, sp, #48
	.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
	cmp	w1, #0
	cset	w9, ne
	cmp	w2, #0
	cset	w10, eq
	cmp	w3, #0
	cset	w11, eq
	ldr	w8, [x4]
	cbz	x0, LBB0_19
; %bb.1:
	mov	x19, x4
	mov	x20, x0
Lloh0:
	adrp	x21, lJTI0_0@PAGE
Lloh1:
	add	x21, x21, lJTI0_0@PAGEOFF
LBB0_2:                                 ; =>This Inner Loop Header: Depth=1
	ldr	w12, [x20]
	sub	w13, w12, #128
	cmp	w13, #7
	b.hi	LBB0_31
; %bb.3:                                ;   in Loop: Header=BB0_2 Depth=1
	mvn	w12, w10
	and	w22, w12, #0x1
	mvn	w12, w11
	and	w12, w12, #0x1
	adr	x14, LBB0_4
	ldrb	w15, [x21, x13]
	add	x14, x14, x15, lsl #2
	br	x14
LBB0_4:                                 ;   in Loop: Header=BB0_2 Depth=1
	orr	w11, w10, w11
	bic	w11, w9, w11
	tbz	w11, #0, LBB0_7
; %bb.5:                                ;   in Loop: Header=BB0_2 Depth=1
	mov	w12, #0
	b	LBB0_8
LBB0_6:                                 ;   in Loop: Header=BB0_2 Depth=1
	and	w10, w9, w10
	tst	w9, #0x1
	csinc	w22, w22, wzr, eq
	csinc	w12, w12, wzr, eq
	tbz	w10, #0, LBB0_9
	b	LBB0_20
LBB0_7:                                 ;   in Loop: Header=BB0_2 Depth=1
	and	w9, w9, w10
	tbz	w9, #0, LBB0_21
LBB0_8:                                 ;   in Loop: Header=BB0_2 Depth=1
	mov	w22, #1
LBB0_9:                                 ;   in Loop: Header=BB0_2 Depth=1
	ldr	x0, [x20, #8]
	mov	w9, #1
LBB0_10:                                ;   in Loop: Header=BB0_2 Depth=1
	cmp	w22, #0
	cset	w10, eq
	cmp	w12, #0
	cset	w11, eq
	mov	x20, x0
	cbnz	x0, LBB0_2
	b	LBB0_19
LBB0_11:                                ;   in Loop: Header=BB0_2 Depth=1
	ldr	x0, [x20, #8]
	cbz	x0, LBB0_32
; %bb.12:                               ;   in Loop: Header=BB0_2 Depth=1
	ldr	w12, [x0]
	and	w12, w12, #0xfffffffc
	cmp	w12, #132
	b.eq	LBB0_24
; %bb.13:                               ;   in Loop: Header=BB0_2 Depth=1
	and	w12, w9, w10
	tbnz	w12, #0, LBB0_25
; %bb.14:                               ;   in Loop: Header=BB0_2 Depth=1
	orr	w10, w10, w11
	bic	w10, w9, w10
	tbnz	w10, #0, LBB0_26
; %bb.15:                               ;   in Loop: Header=BB0_2 Depth=1
	add	w8, w8, #1
	str	w8, [x19]
	tbz	w9, #0, LBB0_18
; %bb.16:                               ;   in Loop: Header=BB0_2 Depth=1
	mov	w1, #0
	mov	w2, #0
	mov	w3, #0
	mov	x4, x19
	bl	_validate_expr
	cbnz	w0, LBB0_29
; %bb.17:                               ;   in Loop: Header=BB0_2 Depth=1
	ldr	w8, [x19]
	mov	w12, #1
	b	LBB0_9
LBB0_18:                                ;   in Loop: Header=BB0_2 Depth=1
	mov	w9, #0
	mov	w22, #0
	mov	w12, #0
	b	LBB0_10
LBB0_19:
	orr	w10, w10, w11
	cmp	w8, #0
	cset	w8, ne
	eor	w9, w9, #0x1
	orr	w9, w10, w9
	orr	w0, w9, w8
	b	LBB0_30
LBB0_20:
Lloh2:
	adrp	x0, l_str@PAGE
Lloh3:
	add	x0, x0, l_str@PAGEOFF
	b	LBB0_28
LBB0_21:
Lloh4:
	adrp	x0, l_str.13@PAGE
Lloh5:
	add	x0, x0, l_str.13@PAGEOFF
	b	LBB0_28
LBB0_22:
	sub	w8, w8, #1
	str	w8, [x19]
	orr	w8, w10, w11
	bic	w8, w9, w8
	tbz	w8, #0, LBB0_27
; %bb.23:
	mov	w0, #0
	b	LBB0_30
LBB0_24:
Lloh6:
	adrp	x0, l_str.11@PAGE
Lloh7:
	add	x0, x0, l_str.11@PAGEOFF
	b	LBB0_28
LBB0_25:
Lloh8:
	adrp	x0, l_str.10@PAGE
Lloh9:
	add	x0, x0, l_str.10@PAGEOFF
	b	LBB0_28
LBB0_26:
Lloh10:
	adrp	x0, l_str.9@PAGE
Lloh11:
	add	x0, x0, l_str.9@PAGEOFF
	b	LBB0_28
LBB0_27:
Lloh12:
	adrp	x0, l_str.8@PAGE
Lloh13:
	add	x0, x0, l_str.8@PAGEOFF
LBB0_28:
	bl	_puts
LBB0_29:
	mov	w0, #-1
LBB0_30:
	ldp	x29, x30, [sp, #48]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #32]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #16]             ; 16-byte Folded Reload
	add	sp, sp, #64
	ret
LBB0_31:
	str	x12, [sp]
Lloh14:
	adrp	x0, l_.str.7@PAGE
Lloh15:
	add	x0, x0, l_.str.7@PAGEOFF
	bl	_printf
	mov	w0, #-5
	bl	_exit
LBB0_32:
Lloh16:
	adrp	x0, l_str.12@PAGE
Lloh17:
	add	x0, x0, l_str.12@PAGEOFF
	bl	_puts
	mov	w0, #-1
	bl	_exit
	.loh AdrpAdd	Lloh0, Lloh1
	.loh AdrpAdd	Lloh2, Lloh3
	.loh AdrpAdd	Lloh4, Lloh5
	.loh AdrpAdd	Lloh6, Lloh7
	.loh AdrpAdd	Lloh8, Lloh9
	.loh AdrpAdd	Lloh10, Lloh11
	.loh AdrpAdd	Lloh12, Lloh13
	.loh AdrpAdd	Lloh14, Lloh15
	.loh AdrpAdd	Lloh16, Lloh17
	.cfi_endproc
	.section	__TEXT,__const
lJTI0_0:
	.byte	(LBB0_6-LBB0_4)>>2
	.byte	(LBB0_6-LBB0_4)>>2
	.byte	(LBB0_11-LBB0_4)>>2
	.byte	(LBB0_22-LBB0_4)>>2
	.byte	(LBB0_4-LBB0_4)>>2
	.byte	(LBB0_4-LBB0_4)>>2
	.byte	(LBB0_4-LBB0_4)>>2
	.byte	(LBB0_4-LBB0_4)>>2
                                        ; -- End function
	.section	__TEXT,__cstring,cstring_literals
l_.str.7:                               ; @.str.7
	.asciz	"unknown type %d\n"

l_str:                                  ; @str
	.asciz	"val1 set, val2 about to be set op empty"

l_str.8:                                ; @str.8
	.asciz	"Found close paren and not complete"

l_str.9:                                ; @str.9
	.asciz	"'Val OP Val (' -- not allowed"

l_str.10:                               ; @str.10
	.asciz	"'Val (' -- not allowed"

l_str.11:                               ; @str.11
	.asciz	"'( OP' -- not allowed"

l_str.12:                               ; @str.12
	.asciz	"NULL after open paren"

l_str.13:                               ; @str.13
	.asciz	"Op but no val1 set"

	.no_dead_strip	_validate_expr
.subsections_via_symbols
