	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function utf_charcheck
_utf_charcheck:                         ## @utf_charcheck
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	movzbl	(%rdi), %ecx
	movl	$1, %eax
	testb	$-128, %cl
	jne	LBB0_1
LBB0_22:
	popq	%rbp
	retq
LBB0_1:
	movl	%ecx, %eax
	andl	$-32, %eax
	cmpl	$192, %eax
	jne	LBB0_3
## %bb.2:
	movb	1(%rdi), %al
	andb	$-64, %al
	cmpb	$-128, %al
	sete	%al
	testb	$30, %cl
	setne	%cl
	andb	%al, %cl
	movzbl	%cl, %eax
	leal	(%rax,%rax,2), %eax
	decl	%eax
	popq	%rbp
	retq
LBB0_3:
	movl	%ecx, %eax
	andl	$-16, %eax
	cmpl	$224, %eax
	jne	LBB0_15
## %bb.4:
	movzbl	1(%rdi), %r8d
	movl	%r8d, %esi
	andl	$-64, %esi
	movl	$-1, %eax
	cmpl	$128, %esi
	jne	LBB0_22
## %bb.5:
	movl	%ecx, %esi
	andl	$15, %esi
	movl	%r8d, %edx
	andl	$32, %edx
	orl	%esi, %edx
	je	LBB0_22
## %bb.6:
	movb	2(%rdi), %dl
	andb	$-64, %dl
	cmpb	$-128, %dl
	jne	LBB0_22
## %bb.7:
	andl	$63, %r8d
	cmpl	$13, %esi
	je	LBB0_13
## %bb.8:
	cmpl	$15, %esi
	jne	LBB0_14
## %bb.9:
	movl	%r8d, %edx
	shll	$6, %edx
	andl	$63, %ecx
	orl	%edx, %ecx
	movl	%ecx, %edx
	notl	%edx
	testl	$4094, %edx                     ## imm = 0xFFE
	je	LBB0_22
## %bb.10:
	andl	$-2, %r8d
	cmpl	$54, %r8d
	jne	LBB0_14
## %bb.11:
	andl	$127, %ecx
	cmpl	$48, %ecx
	jb	LBB0_14
## %bb.12:
	cmpl	$80, %ecx
	jb	LBB0_22
	jmp	LBB0_14
LBB0_15:
	movl	%ecx, %edx
	andl	$-8, %edx
	movl	$-1, %eax
	cmpl	$240, %edx
	jne	LBB0_22
## %bb.16:
	movzbl	1(%rdi), %edx
	movl	%edx, %esi
	andl	$-64, %esi
	cmpl	$128, %esi
	jne	LBB0_22
## %bb.17:
	andl	$7, %ecx
	movl	%edx, %esi
	shrl	$4, %esi
	andl	$3, %esi
	leal	(%rsi,%rcx,4), %ecx
	testl	%ecx, %ecx
	je	LBB0_22
## %bb.18:
	cmpl	$16, %ecx
	ja	LBB0_22
## %bb.19:
	movzbl	2(%rdi), %ecx
	movl	%ecx, %esi
	andl	$-64, %esi
	cmpl	$128, %esi
	jne	LBB0_22
## %bb.20:
	movzbl	3(%rdi), %esi
	movl	%esi, %edi
	andl	$-64, %edi
	cmpl	$128, %edi
	jne	LBB0_22
## %bb.21:
	notl	%edx
	andl	$15, %edx
	notl	%ecx
	andl	$63, %ecx
	orl	%edx, %ecx
	notl	%esi
	andl	$62, %esi
	xorl	%eax, %eax
	orl	%ecx, %esi
	setne	%al
	leal	(%rax,%rax,4), %eax
	decl	%eax
	popq	%rbp
	retq
LBB0_13:
	andl	$-20, %r8d
	cmpl	$32, %r8d
	je	LBB0_22
LBB0_14:
	movl	$3, %eax
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.no_dead_strip	_utf_charcheck
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function utf_charcheck
_utf_charcheck:                         ; @utf_charcheck
	.cfi_startproc
; %bb.0:
	ldrb	w9, [x0]
	tbnz	w9, #7, LBB0_2
; %bb.1:
	mov	w0, #1
	ret
LBB0_2:
	mov	x8, x0
	and	w10, w9, #0xe0
	cmp	w10, #192
	b.ne	LBB0_4
; %bb.3:
	ldrb	w8, [x8, #1]
	and	w8, w8, #0xc0
	tst	w9, #0x1e
	mov	w9, #128
	ccmp	w8, w9, #0, ne
	mov	w8, #2
	csinv	w0, w8, wzr, eq
	ret
LBB0_4:
	and	w10, w9, #0xf0
	cmp	w10, #224
	b.ne	LBB0_14
; %bb.5:
	ldrb	w10, [x8, #1]
	and	w11, w10, #0xc0
	cmp	w11, #128
	b.ne	LBB0_23
; %bb.6:
	and	w11, w10, #0x20
	bfxil	w11, w9, #0, #4
	cbz	w11, LBB0_23
; %bb.7:
	ldrb	w8, [x8, #2]
	and	w8, w8, #0xc0
	cmp	w8, #128
	b.ne	LBB0_23
; %bb.8:
	and	w11, w9, #0xf
	and	w8, w10, #0x3f
	cmp	w11, #13
	b.eq	LBB0_22
; %bb.9:
	cmp	w11, #15
	b.ne	LBB0_24
; %bb.10:
	and	w9, w9, #0x3f
	bfi	w9, w8, #6, #6
	mvn	w10, w9
	tst	w10, #0xffe
	b.eq	LBB0_23
; %bb.11:
	and	w8, w8, #0x3e
	cmp	w8, #54
	b.ne	LBB0_24
; %bb.12:
	and	w8, w9, #0x7f
	cmp	w8, #48
	b.lo	LBB0_24
; %bb.13:
	cmp	w8, #80
	b.lo	LBB0_23
	b	LBB0_24
LBB0_14:
	and	w10, w9, #0xf8
	cmp	w10, #240
	b.ne	LBB0_23
; %bb.15:
	ldrb	w10, [x8, #1]
	and	w11, w10, #0xc0
	mov	w0, #-1
	cmp	w11, #128
	b.ne	LBB0_21
; %bb.16:
	ubfiz	w9, w9, #2, #3
	bfxil	w9, w10, #4, #2
	cbz	w9, LBB0_21
; %bb.17:
	cmp	w9, #16
	b.hi	LBB0_21
; %bb.18:
	ldrb	w9, [x8, #2]
	and	w11, w9, #0xc0
	cmp	w11, #128
	b.ne	LBB0_23
; %bb.19:
	ldrb	w8, [x8, #3]
	and	w11, w8, #0xc0
	cmp	w11, #128
	b.ne	LBB0_23
; %bb.20:
	mvn	w10, w10
	and	w10, w10, #0xf
	mvn	w9, w9
	and	w9, w9, #0x3f
	orr	w9, w10, w9
	mvn	w8, w8
	and	w8, w8, #0x3e
	orr	w8, w9, w8
	cmp	w8, #0
	mov	w8, #4
	csinv	w0, w8, wzr, ne
LBB0_21:
	ret
LBB0_22:
	mov	w9, #44
	and	w8, w8, w9
	cmp	w8, #32
	b.ne	LBB0_24
LBB0_23:
	mov	w0, #-1
	ret
LBB0_24:
	mov	w0, #3
	ret
	.cfi_endproc
                                        ; -- End function
	.no_dead_strip	_utf_charcheck
.subsections_via_symbols
