	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function generate_cesu8_char
_generate_cesu8_char:                   ## @generate_cesu8_char
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	pushq	%r14
	pushq	%rbx
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	movl	%edi, %ebx
	testl	%edi, %edi
	setns	%al
	movq	_LIT_CESU8_MAX_BYTES_IN_CODE_UNIT@GOTPCREL(%rip), %rcx
	cmpl	%edi, (%rcx)
	movq	%rsi, %r14
	setge	%cl
	andb	%al, %cl
	movzbl	%cl, %edi
	callq	_TEST_ASSERT
	xorl	%eax, %eax
	callq	_rand
	cmpl	$3, %ebx
	je	LBB0_6
## %bb.1:
	cmpl	$2, %ebx
	je	LBB0_4
## %bb.2:
	cmpl	$1, %ebx
	jne	LBB0_7
## %bb.3:
	movq	_LIT_UTF8_1_BYTE_CODE_POINT_MAX@GOTPCREL(%rip), %rcx
	jmp	LBB0_8
LBB0_6:
	movq	_LIT_UTF8_3_BYTE_CODE_POINT_MIN@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	movq	_LIT_UTF8_3_BYTE_CODE_POINT_MAX@GOTPCREL(%rip), %rdx
	jmp	LBB0_5
LBB0_4:
	movq	_LIT_UTF8_2_BYTE_CODE_POINT_MIN@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	movq	_LIT_UTF8_2_BYTE_CODE_POINT_MAX@GOTPCREL(%rip), %rdx
LBB0_5:
	movl	(%rdx), %esi
	subl	%ecx, %esi
	cltd
	idivl	%esi
	addl	%ecx, %edx
	jmp	LBB0_9
LBB0_7:
	movq	_LIT_UTF8_3_BYTE_CODE_POINT_MAX@GOTPCREL(%rip), %rcx
LBB0_8:
	cltd
	idivl	(%rcx)
LBB0_9:
	movq	_LIT_UTF16_HIGH_SURROGATE_MIN@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movq	_LIT_UTF16_LOW_SURROGATE_MAX@GOTPCREL(%rip), %rcx
	leal	-1(%rax), %edi
	cmpl	(%rcx), %edx
	cmovgl	%edx, %edi
	cmpl	%eax, %edx
	cmovll	%edx, %edi
	movq	%r14, %rsi
	popq	%rbx
	popq	%r14
	popq	%rbp
	jmp	_lit_code_unit_to_utf8          ## TAILCALL
	.cfi_endproc
                                        ## -- End function
	.comm	_LIT_CESU8_MAX_BYTES_IN_CODE_UNIT,4,2 ## @LIT_CESU8_MAX_BYTES_IN_CODE_UNIT
	.comm	_LIT_UTF8_1_BYTE_CODE_POINT_MAX,4,2 ## @LIT_UTF8_1_BYTE_CODE_POINT_MAX
	.comm	_LIT_UTF8_2_BYTE_CODE_POINT_MIN,4,2 ## @LIT_UTF8_2_BYTE_CODE_POINT_MIN
	.comm	_LIT_UTF8_2_BYTE_CODE_POINT_MAX,4,2 ## @LIT_UTF8_2_BYTE_CODE_POINT_MAX
	.comm	_LIT_UTF8_3_BYTE_CODE_POINT_MIN,4,2 ## @LIT_UTF8_3_BYTE_CODE_POINT_MIN
	.comm	_LIT_UTF8_3_BYTE_CODE_POINT_MAX,4,2 ## @LIT_UTF8_3_BYTE_CODE_POINT_MAX
	.comm	_LIT_UTF16_HIGH_SURROGATE_MIN,4,2 ## @LIT_UTF16_HIGH_SURROGATE_MIN
	.comm	_LIT_UTF16_LOW_SURROGATE_MAX,4,2 ## @LIT_UTF16_LOW_SURROGATE_MAX
	.no_dead_strip	_generate_cesu8_char
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function generate_cesu8_char
_generate_cesu8_char:                   ; @generate_cesu8_char
	.cfi_startproc
; %bb.0:
	stp	x20, x19, [sp, #-32]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 32
	stp	x29, x30, [sp, #16]             ; 16-byte Folded Spill
	add	x29, sp, #16
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	.cfi_offset w19, -24
	.cfi_offset w20, -32
	mov	x19, x1
	mov	x20, x0
	cmp	w0, #0
Lloh0:
	adrp	x8, _LIT_CESU8_MAX_BYTES_IN_CODE_UNIT@GOTPAGE
Lloh1:
	ldr	x8, [x8, _LIT_CESU8_MAX_BYTES_IN_CODE_UNIT@GOTPAGEOFF]
Lloh2:
	ldr	w8, [x8]
	ccmp	w8, w0, #8, ge
	cset	w0, ge
	bl	_TEST_ASSERT
	bl	_rand
	cmp	w20, #3
	b.eq	LBB0_4
; %bb.1:
	cmp	w20, #2
	b.eq	LBB0_5
; %bb.2:
	cmp	w20, #1
	b.ne	LBB0_7
; %bb.3:
Lloh3:
	adrp	x8, _LIT_UTF8_1_BYTE_CODE_POINT_MAX@GOTPAGE
Lloh4:
	ldr	x8, [x8, _LIT_UTF8_1_BYTE_CODE_POINT_MAX@GOTPAGEOFF]
	b	LBB0_8
LBB0_4:
Lloh5:
	adrp	x8, _LIT_UTF8_3_BYTE_CODE_POINT_MIN@GOTPAGE
Lloh6:
	ldr	x8, [x8, _LIT_UTF8_3_BYTE_CODE_POINT_MIN@GOTPAGEOFF]
Lloh7:
	adrp	x9, _LIT_UTF8_3_BYTE_CODE_POINT_MAX@GOTPAGE
Lloh8:
	ldr	x9, [x9, _LIT_UTF8_3_BYTE_CODE_POINT_MAX@GOTPAGEOFF]
	b	LBB0_6
LBB0_5:
Lloh9:
	adrp	x8, _LIT_UTF8_2_BYTE_CODE_POINT_MIN@GOTPAGE
Lloh10:
	ldr	x8, [x8, _LIT_UTF8_2_BYTE_CODE_POINT_MIN@GOTPAGEOFF]
Lloh11:
	adrp	x9, _LIT_UTF8_2_BYTE_CODE_POINT_MAX@GOTPAGE
Lloh12:
	ldr	x9, [x9, _LIT_UTF8_2_BYTE_CODE_POINT_MAX@GOTPAGEOFF]
LBB0_6:
	ldr	w8, [x8]
	ldr	w9, [x9]
	sub	w9, w9, w8
	sdiv	w10, w0, w9
	msub	w9, w10, w9, w0
	add	w8, w9, w8
	b	LBB0_9
LBB0_7:
Lloh13:
	adrp	x8, _LIT_UTF8_3_BYTE_CODE_POINT_MAX@GOTPAGE
Lloh14:
	ldr	x8, [x8, _LIT_UTF8_3_BYTE_CODE_POINT_MAX@GOTPAGEOFF]
LBB0_8:
	ldr	w8, [x8]
	sdiv	w9, w0, w8
	msub	w8, w9, w8, w0
LBB0_9:
Lloh15:
	adrp	x9, _LIT_UTF16_HIGH_SURROGATE_MIN@GOTPAGE
Lloh16:
	ldr	x9, [x9, _LIT_UTF16_HIGH_SURROGATE_MIN@GOTPAGEOFF]
Lloh17:
	ldr	w9, [x9]
Lloh18:
	adrp	x10, _LIT_UTF16_LOW_SURROGATE_MAX@GOTPAGE
Lloh19:
	ldr	x10, [x10, _LIT_UTF16_LOW_SURROGATE_MAX@GOTPAGEOFF]
Lloh20:
	ldr	w10, [x10]
	sub	w11, w9, #1
	cmp	w8, w10
	ccmp	w8, w9, #8, le
	csel	w0, w8, w11, lt
	mov	x1, x19
	ldp	x29, x30, [sp, #16]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp], #32             ; 16-byte Folded Reload
	b	_lit_code_unit_to_utf8
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpLdrGot	Lloh3, Lloh4
	.loh AdrpLdrGot	Lloh7, Lloh8
	.loh AdrpLdrGot	Lloh5, Lloh6
	.loh AdrpLdrGot	Lloh11, Lloh12
	.loh AdrpLdrGot	Lloh9, Lloh10
	.loh AdrpLdrGot	Lloh13, Lloh14
	.loh AdrpLdrGotLdr	Lloh18, Lloh19, Lloh20
	.loh AdrpLdrGotLdr	Lloh15, Lloh16, Lloh17
	.cfi_endproc
                                        ; -- End function
	.comm	_LIT_CESU8_MAX_BYTES_IN_CODE_UNIT,4,2 ; @LIT_CESU8_MAX_BYTES_IN_CODE_UNIT
	.comm	_LIT_UTF8_1_BYTE_CODE_POINT_MAX,4,2 ; @LIT_UTF8_1_BYTE_CODE_POINT_MAX
	.comm	_LIT_UTF8_2_BYTE_CODE_POINT_MIN,4,2 ; @LIT_UTF8_2_BYTE_CODE_POINT_MIN
	.comm	_LIT_UTF8_2_BYTE_CODE_POINT_MAX,4,2 ; @LIT_UTF8_2_BYTE_CODE_POINT_MAX
	.comm	_LIT_UTF8_3_BYTE_CODE_POINT_MIN,4,2 ; @LIT_UTF8_3_BYTE_CODE_POINT_MIN
	.comm	_LIT_UTF8_3_BYTE_CODE_POINT_MAX,4,2 ; @LIT_UTF8_3_BYTE_CODE_POINT_MAX
	.comm	_LIT_UTF16_HIGH_SURROGATE_MIN,4,2 ; @LIT_UTF16_HIGH_SURROGATE_MIN
	.comm	_LIT_UTF16_LOW_SURROGATE_MAX,4,2 ; @LIT_UTF16_LOW_SURROGATE_MAX
	.no_dead_strip	_generate_cesu8_char
.subsections_via_symbols
