	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function complete_mode
_complete_mode:                         ## @complete_mode
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	pushq	%rbx
	pushq	%rax
	.cfi_offset %rbx, -24
	movq	%rdi, %rbx
	movl	48(%rdi), %ecx
	testl	%ecx, %ecx
	je	LBB0_3
## %bb.1:
	movl	8(%rbx), %eax
	movq	_MAX_MODE_CLASS@GOTPCREL(%rip), %rdx
	cmpl	(%rdx), %eax
	jne	LBB0_4
## %bb.2:
	movl	52(%rbx), %esi
	movq	(%rbx), %rdx
	leaq	L_.str.1(%rip), %rdi
	xorl	%eax, %eax
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	jmp	_error                          ## TAILCALL
LBB0_3:
	movl	52(%rbx), %esi
	movq	(%rbx), %rdx
	leaq	L_.str(%rip), %rdi
	xorl	%eax, %eax
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	jmp	_error                          ## TAILCALL
LBB0_4:
	leal	-128(%rax), %edx
	cmpl	$9, %edx
	ja	LBB0_13
## %bb.5:
	leaq	LJTI0_0(%rip), %rsi
	movslq	(%rsi,%rdx,4), %rdx
	addq	%rsi, %rdx
	jmpq	*%rdx
LBB0_6:
	movq	_OPTIONAL@GOTPCREL(%rip), %rcx
	movl	(%rcx), %esi
	movq	_SET@GOTPCREL(%rip), %rcx
	movl	(%rcx), %edx
	movq	_UNSET@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	cmpl	$132, %eax
	movl	%edx, %r9d
	cmovel	%ecx, %r9d
	movq	%rbx, %rdi
	movl	%ecx, %r8d
	callq	_validate_mode
	jmp	LBB0_18
LBB0_7:
	movq	_UNSET@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	movq	_SET@GOTPCREL(%rip), %rax
	movl	(%rax), %ecx
	movq	%rbx, %rdi
	movl	%edx, %esi
	movl	%ecx, %r8d
	movl	%edx, %r9d
	callq	_validate_mode
	movq	32(%rbx), %rax
	movl	4(%rax), %edx
	movl	20(%rbx), %ecx
	cmpl	$-1, %edx
	je	LBB0_9
## %bb.8:
	imull	%ecx, %edx
	movl	%edx, 12(%rbx)
LBB0_9:
	imull	(%rax), %ecx
	movl	%ecx, 16(%rbx)
	jmp	LBB0_20
LBB0_10:
	movq	_UNSET@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	movq	_SET@GOTPCREL(%rip), %rax
	movl	(%rax), %ecx
	movq	%rbx, %rdi
	movl	%edx, %esi
	movl	%edx, %r8d
	movl	%edx, %r9d
	callq	_validate_mode
	movl	$2, 20(%rbx)
	movq	32(%rbx), %rax
	movl	4(%rax), %ecx
	cmpl	$-1, %ecx
	je	LBB0_12
## %bb.11:
	addl	%ecx, %ecx
	movl	%ecx, 12(%rbx)
LBB0_12:
	movl	(%rax), %eax
	addl	%eax, %eax
	movl	%eax, 16(%rbx)
	jmp	LBB0_20
LBB0_13:
	xorl	%eax, %eax
	callq	_gcc_unreachable
	jmp	LBB0_20
LBB0_14:
	leaq	L_.str.2(%rip), %rsi
	movl	%ecx, %edi
	callq	_strcmp
	testl	%eax, %eax
	jne	LBB0_16
## %bb.15:
	movq	_void_mode@GOTPCREL(%rip), %rax
	movq	%rbx, (%rax)
LBB0_16:
	movq	_UNSET@GOTPCREL(%rip), %rax
	movl	(%rax), %ecx
	movq	%rbx, %rdi
	movl	%ecx, %esi
	movl	%ecx, %edx
	movl	%ecx, %r8d
	movl	%ecx, %r9d
	callq	_validate_mode
	movq	$0, 12(%rbx)
	movl	$0, 20(%rbx)
	jmp	LBB0_19
LBB0_17:
	movq	_OPTIONAL@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	_UNSET@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	movq	_SET@GOTPCREL(%rip), %rax
	movl	(%rax), %ecx
	movq	%rbx, %rdi
	movl	%edx, %r8d
	movl	%edx, %r9d
	callq	_validate_mode
	movq	32(%rbx), %rax
	movl	(%rax), %eax
	movl	%eax, 16(%rbx)
LBB0_18:
	movl	$1, 20(%rbx)
LBB0_19:
	movq	$0, 32(%rbx)
LBB0_20:
	movl	$-135, %eax
	addl	8(%rbx), %eax
	cmpl	$1, %eax
	ja	LBB0_22
## %bb.21:
	movq	32(%rbx), %rax
	movq	%rax, %rcx
	jmp	LBB0_23
LBB0_22:
	leaq	16(%rbx), %rcx
	movq	32(%rbx), %rax
LBB0_23:
	movl	(%rcx), %ecx
	movl	%ecx, %edx
	negl	%edx
	andl	%ecx, %edx
	movl	%edx, 24(%rbx)
	testq	%rax, %rax
	je	LBB0_25
## %bb.24:
	movq	8(%rax), %rcx
	movq	%rcx, 40(%rbx)
	movq	%rbx, 8(%rax)
LBB0_25:
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	retq
LBB0_26:
	movq	_UNSET@GOTPCREL(%rip), %rax
	movl	(%rax), %ecx
	movq	%rbx, %rdi
	movl	%ecx, %esi
	movl	%ecx, %edx
	movl	%ecx, %r8d
	movl	%ecx, %r9d
	callq	_validate_mode
	movabsq	$4294967300, %rax               ## imm = 0x100000004
	movq	%rax, 16(%rbx)
	jmp	LBB0_19
	.cfi_endproc
	.p2align	2, 0x90
	.data_region jt32
.set L0_0_set_7, LBB0_7-LJTI0_0
.set L0_0_set_14, LBB0_14-LJTI0_0
.set L0_0_set_17, LBB0_17-LJTI0_0
.set L0_0_set_6, LBB0_6-LJTI0_0
.set L0_0_set_10, LBB0_10-LJTI0_0
.set L0_0_set_26, LBB0_26-LJTI0_0
LJTI0_0:
	.long	L0_0_set_7
	.long	L0_0_set_7
	.long	L0_0_set_14
	.long	L0_0_set_17
	.long	L0_0_set_6
	.long	L0_0_set_6
	.long	L0_0_set_6
	.long	L0_0_set_10
	.long	L0_0_set_10
	.long	L0_0_set_26
	.end_data_region
                                        ## -- End function
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"%s:%d: mode with no name"

	.comm	_MAX_MODE_CLASS,4,2             ## @MAX_MODE_CLASS
L_.str.1:                               ## @.str.1
	.asciz	"%s:%d: %smode has no mode class"

L_.str.2:                               ## @.str.2
	.asciz	"VOID"

	.comm	_void_mode,8,3                  ## @void_mode
	.comm	_UNSET,4,2                      ## @UNSET
	.comm	_OPTIONAL,4,2                   ## @OPTIONAL
	.comm	_SET,4,2                        ## @SET
	.no_dead_strip	_complete_mode
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal8,8byte_literals
	.p2align	3                               ; -- Begin function complete_mode
lCPI0_0:
	.long	4                               ; 0x4
	.long	1                               ; 0x1
	.section	__TEXT,__text,regular,pure_instructions
	.p2align	2
_complete_mode:                         ; @complete_mode
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #48
	.cfi_def_cfa_offset 48
	stp	x20, x19, [sp, #16]             ; 16-byte Folded Spill
	stp	x29, x30, [sp, #32]             ; 16-byte Folded Spill
	add	x29, sp, #32
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	.cfi_offset w19, -24
	.cfi_offset w20, -32
	mov	x19, x0
	ldr	w0, [x0, #48]
	cbz	w0, LBB0_3
; %bb.1:
	ldr	w8, [x19, #8]
Lloh0:
	adrp	x9, _MAX_MODE_CLASS@GOTPAGE
Lloh1:
	ldr	x9, [x9, _MAX_MODE_CLASS@GOTPAGEOFF]
Lloh2:
	ldr	w9, [x9]
	cmp	w8, w9
	b.ne	LBB0_4
; %bb.2:
	ldr	w1, [x19, #52]
	ldr	x2, [x19]
	str	x0, [sp]
Lloh3:
	adrp	x0, l_.str.1@PAGE
Lloh4:
	add	x0, x0, l_.str.1@PAGEOFF
	bl	_error
	b	LBB0_25
LBB0_3:
	ldr	w1, [x19, #52]
	ldr	x2, [x19]
Lloh5:
	adrp	x0, l_.str@PAGE
Lloh6:
	add	x0, x0, l_.str@PAGEOFF
	ldp	x29, x30, [sp, #32]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #16]             ; 16-byte Folded Reload
	add	sp, sp, #48
	b	_error
LBB0_4:
	sub	w9, w8, #128
	cmp	w9, #9
	b.hi	LBB0_13
; %bb.5:
Lloh7:
	adrp	x10, lJTI0_0@PAGE
Lloh8:
	add	x10, x10, lJTI0_0@PAGEOFF
	adr	x11, LBB0_6
	ldrb	w12, [x10, x9]
	add	x11, x11, x12, lsl #2
	br	x11
LBB0_6:
Lloh9:
	adrp	x9, _OPTIONAL@GOTPAGE
Lloh10:
	ldr	x9, [x9, _OPTIONAL@GOTPAGEOFF]
Lloh11:
	ldr	w1, [x9]
Lloh12:
	adrp	x9, _SET@GOTPAGE
Lloh13:
	ldr	x9, [x9, _SET@GOTPAGEOFF]
Lloh14:
	ldr	w2, [x9]
Lloh15:
	adrp	x9, _UNSET@GOTPAGE
Lloh16:
	ldr	x9, [x9, _UNSET@GOTPAGEOFF]
Lloh17:
	ldr	w3, [x9]
	cmp	w8, #132
	csel	w5, w3, w2, eq
	mov	x0, x19
	mov	x4, x3
	bl	_validate_mode
	mov	w8, #1
	str	w8, [x19, #20]
	b	LBB0_19
LBB0_7:
Lloh18:
	adrp	x8, _UNSET@GOTPAGE
Lloh19:
	ldr	x8, [x8, _UNSET@GOTPAGEOFF]
Lloh20:
	ldr	w1, [x8]
Lloh21:
	adrp	x8, _SET@GOTPAGE
Lloh22:
	ldr	x8, [x8, _SET@GOTPAGEOFF]
Lloh23:
	ldr	w3, [x8]
	mov	x0, x19
	mov	x2, x1
	mov	x4, x3
	mov	x5, x1
	bl	_validate_mode
	ldr	x8, [x19, #32]
	ldr	w10, [x8, #4]
	ldr	w9, [x19, #20]
	cmn	w10, #1
	b.eq	LBB0_9
; %bb.8:
	mul	w10, w9, w10
	str	w10, [x19, #12]
LBB0_9:
	ldr	w8, [x8]
	mul	w8, w8, w9
	str	w8, [x19, #16]
	b	LBB0_20
LBB0_10:
Lloh24:
	adrp	x8, _UNSET@GOTPAGE
Lloh25:
	ldr	x8, [x8, _UNSET@GOTPAGEOFF]
Lloh26:
	ldr	w1, [x8]
Lloh27:
	adrp	x8, _SET@GOTPAGE
Lloh28:
	ldr	x8, [x8, _SET@GOTPAGEOFF]
Lloh29:
	ldr	w3, [x8]
	mov	x0, x19
	mov	x2, x1
	mov	x4, x1
	mov	x5, x1
	bl	_validate_mode
	mov	w8, #2
	str	w8, [x19, #20]
	ldr	x8, [x19, #32]
	ldr	w9, [x8, #4]
	cmn	w9, #1
	b.eq	LBB0_12
; %bb.11:
	lsl	w9, w9, #1
	str	w9, [x19, #12]
LBB0_12:
	ldr	w8, [x8]
	lsl	w8, w8, #1
	str	w8, [x19, #16]
	b	LBB0_20
LBB0_13:
	bl	_gcc_unreachable
	b	LBB0_20
LBB0_14:
Lloh30:
	adrp	x1, l_.str.2@PAGE
Lloh31:
	add	x1, x1, l_.str.2@PAGEOFF
                                        ; kill: def $w0 killed $w0 killed $x0
	bl	_strcmp
	cbnz	w0, LBB0_16
; %bb.15:
Lloh32:
	adrp	x8, _void_mode@GOTPAGE
Lloh33:
	ldr	x8, [x8, _void_mode@GOTPAGEOFF]
Lloh34:
	str	x19, [x8]
LBB0_16:
Lloh35:
	adrp	x8, _UNSET@GOTPAGE
Lloh36:
	ldr	x8, [x8, _UNSET@GOTPAGEOFF]
Lloh37:
	ldr	w1, [x8]
	mov	x0, x19
	mov	x2, x1
	mov	x3, x1
	mov	x4, x1
	mov	x5, x1
	bl	_validate_mode
	str	xzr, [x19, #16]
	str	wzr, [x19, #12]
	b	LBB0_19
LBB0_17:
Lloh38:
	adrp	x8, _OPTIONAL@GOTPAGE
Lloh39:
	ldr	x8, [x8, _OPTIONAL@GOTPAGEOFF]
Lloh40:
	ldr	w1, [x8]
Lloh41:
	adrp	x8, _UNSET@GOTPAGE
Lloh42:
	ldr	x8, [x8, _UNSET@GOTPAGEOFF]
Lloh43:
	ldr	w2, [x8]
Lloh44:
	adrp	x8, _SET@GOTPAGE
Lloh45:
	ldr	x8, [x8, _SET@GOTPAGEOFF]
Lloh46:
	ldr	w3, [x8]
	mov	x0, x19
	mov	x4, x2
	mov	x5, x2
	bl	_validate_mode
	ldr	x8, [x19, #32]
	ldr	w8, [x8]
	mov	w9, #1
	stp	w8, w9, [x19, #16]
	b	LBB0_19
LBB0_18:
Lloh47:
	adrp	x8, _UNSET@GOTPAGE
Lloh48:
	ldr	x8, [x8, _UNSET@GOTPAGEOFF]
Lloh49:
	ldr	w1, [x8]
	mov	x0, x19
	mov	x2, x1
	mov	x3, x1
	mov	x4, x1
	mov	x5, x1
	bl	_validate_mode
Lloh50:
	adrp	x8, lCPI0_0@PAGE
Lloh51:
	ldr	d0, [x8, lCPI0_0@PAGEOFF]
	str	d0, [x19, #16]
LBB0_19:
	str	xzr, [x19, #32]
LBB0_20:
	ldr	w8, [x19, #8]
	sub	w8, w8, #135
	cmp	w8, #1
	b.hi	LBB0_22
; %bb.21:
	ldr	x8, [x19, #32]
	mov	x9, x8
	b	LBB0_23
LBB0_22:
	add	x9, x19, #16
	ldr	x8, [x19, #32]
LBB0_23:
	ldr	w9, [x9]
	neg	w10, w9
	and	w9, w9, w10
	str	w9, [x19, #24]
	cbz	x8, LBB0_25
; %bb.24:
	ldr	x9, [x8, #8]
	str	x9, [x19, #40]
	str	x19, [x8, #8]
LBB0_25:
	ldp	x29, x30, [sp, #32]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #16]             ; 16-byte Folded Reload
	add	sp, sp, #48
	ret
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpAdd	Lloh3, Lloh4
	.loh AdrpAdd	Lloh5, Lloh6
	.loh AdrpAdd	Lloh7, Lloh8
	.loh AdrpLdrGotLdr	Lloh15, Lloh16, Lloh17
	.loh AdrpLdrGotLdr	Lloh12, Lloh13, Lloh14
	.loh AdrpLdrGotLdr	Lloh9, Lloh10, Lloh11
	.loh AdrpLdrGotLdr	Lloh21, Lloh22, Lloh23
	.loh AdrpLdrGotLdr	Lloh18, Lloh19, Lloh20
	.loh AdrpLdrGotLdr	Lloh27, Lloh28, Lloh29
	.loh AdrpLdrGotLdr	Lloh24, Lloh25, Lloh26
	.loh AdrpAdd	Lloh30, Lloh31
	.loh AdrpLdrGotStr	Lloh32, Lloh33, Lloh34
	.loh AdrpLdrGotLdr	Lloh35, Lloh36, Lloh37
	.loh AdrpLdrGotLdr	Lloh44, Lloh45, Lloh46
	.loh AdrpLdrGotLdr	Lloh41, Lloh42, Lloh43
	.loh AdrpLdrGotLdr	Lloh38, Lloh39, Lloh40
	.loh AdrpLdr	Lloh50, Lloh51
	.loh AdrpLdrGotLdr	Lloh47, Lloh48, Lloh49
	.cfi_endproc
	.section	__TEXT,__const
lJTI0_0:
	.byte	(LBB0_7-LBB0_6)>>2
	.byte	(LBB0_7-LBB0_6)>>2
	.byte	(LBB0_14-LBB0_6)>>2
	.byte	(LBB0_17-LBB0_6)>>2
	.byte	(LBB0_6-LBB0_6)>>2
	.byte	(LBB0_6-LBB0_6)>>2
	.byte	(LBB0_6-LBB0_6)>>2
	.byte	(LBB0_10-LBB0_6)>>2
	.byte	(LBB0_10-LBB0_6)>>2
	.byte	(LBB0_18-LBB0_6)>>2
                                        ; -- End function
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"%s:%d: mode with no name"

	.comm	_MAX_MODE_CLASS,4,2             ; @MAX_MODE_CLASS
l_.str.1:                               ; @.str.1
	.asciz	"%s:%d: %smode has no mode class"

l_.str.2:                               ; @.str.2
	.asciz	"VOID"

	.comm	_void_mode,8,3                  ; @void_mode
	.comm	_UNSET,4,2                      ; @UNSET
	.comm	_OPTIONAL,4,2                   ; @OPTIONAL
	.comm	_SET,4,2                        ; @SET
	.no_dead_strip	_complete_mode
.subsections_via_symbols
