	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_ConvertUTF32toUTF8             ## -- Begin function ConvertUTF32toUTF8
	.p2align	4, 0x90
_ConvertUTF32toUTF8:                    ## @ConvertUTF32toUTF8
	.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
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	_conversionOK@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movl	%eax, -44(%rbp)                 ## 4-byte Spill
	movq	(%rdi), %r9
	movq	(%rdx), %r11
	cmpq	%rsi, %r9
	jae	LBB0_21
## %bb.1:
	movq	_strictConversion@GOTPCREL(%rip), %rax
	movq	(%rax), %r10
	movq	_UNI_MAX_LEGAL_UTF32@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	movq	%rax, -64(%rbp)                 ## 8-byte Spill
	movq	_UNI_REPLACEMENT_CHAR@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	movq	%rax, -56(%rbp)                 ## 8-byte Spill
	movq	_firstByteMark@GOTPCREL(%rip), %rax
	movq	(%rax), %rbx
	leaq	LJTI0_0(%rip), %r13
	jmp	LBB0_2
	.p2align	4, 0x90
LBB0_17:                                ##   in Loop: Header=BB0_2 Depth=1
	movl	%r14d, %eax
	andl	$63, %eax
	orl	$128, %eax
	movl	%eax, -4(%r15)
	addq	$-4, %r15
	sarq	$6, %r14
LBB0_18:                                ##   in Loop: Header=BB0_2 Depth=1
	movl	%r14d, %eax
	andl	$63, %eax
	orl	$128, %eax
	movl	%eax, -4(%r15)
	addq	$-4, %r15
	sarq	$6, %r14
LBB0_19:                                ##   in Loop: Header=BB0_2 Depth=1
	orl	(%rbx,%r12,8), %r14d
	movl	%r14d, -4(%r15)
	addq	$-4, %r15
LBB0_20:                                ##   in Loop: Header=BB0_2 Depth=1
	leaq	(%r15,%r12,4), %r11
	cmpq	%rsi, %r9
	jae	LBB0_21
LBB0_2:                                 ## =>This Inner Loop Header: Depth=1
	movq	(%r9), %r14
	cmpq	%r8, %r10
	jne	LBB0_7
## %bb.3:                               ##   in Loop: Header=BB0_2 Depth=1
	movq	_UNI_SUR_HIGH_START@GOTPCREL(%rip), %rax
	cmpq	(%rax), %r14
	jl	LBB0_7
## %bb.4:                               ##   in Loop: Header=BB0_2 Depth=1
	movq	_UNI_SUR_LOW_END@GOTPCREL(%rip), %rax
	cmpq	(%rax), %r14
	jle	LBB0_5
LBB0_7:                                 ##   in Loop: Header=BB0_2 Depth=1
	movw	$1, %ax
	cmpq	$128, %r14
	jl	LBB0_12
## %bb.8:                               ##   in Loop: Header=BB0_2 Depth=1
	movw	$2, %ax
	cmpq	$2048, %r14                     ## imm = 0x800
	jb	LBB0_12
## %bb.9:                               ##   in Loop: Header=BB0_2 Depth=1
	movw	$3, %ax
	cmpq	$65536, %r14                    ## imm = 0x10000
	jb	LBB0_12
## %bb.10:                              ##   in Loop: Header=BB0_2 Depth=1
	movw	$4, %ax
	cmpq	-64(%rbp), %r14                 ## 8-byte Folded Reload
	jle	LBB0_12
## %bb.11:                              ##   in Loop: Header=BB0_2 Depth=1
	movq	_sourceIllegal@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movl	%eax, -44(%rbp)                 ## 4-byte Spill
	movq	-56(%rbp), %r14                 ## 8-byte Reload
	movw	$3, %ax
	.p2align	4, 0x90
LBB0_12:                                ##   in Loop: Header=BB0_2 Depth=1
	movzwl	%ax, %r12d
	leaq	(%r11,%r12,4), %r15
	cmpq	%rcx, %r15
	ja	LBB0_13
## %bb.14:                              ##   in Loop: Header=BB0_2 Depth=1
	addq	$8, %r9
	leal	-1(%r12), %eax
	cmpl	$3, %eax
	ja	LBB0_20
## %bb.15:                              ##   in Loop: Header=BB0_2 Depth=1
	movslq	(%r13,%rax,4), %rax
	addq	%r13, %rax
	jmpq	*%rax
LBB0_16:                                ##   in Loop: Header=BB0_2 Depth=1
	movl	%r14d, %eax
	andl	$63, %eax
	orl	$128, %eax
	movl	%eax, -4(%r15)
	addq	$-4, %r15
	sarq	$6, %r14
	jmp	LBB0_17
LBB0_5:
	movq	_sourceIllegal@GOTPCREL(%rip), %rax
	jmp	LBB0_6
LBB0_13:
	movq	_targetExhausted@GOTPCREL(%rip), %rax
LBB0_6:
	movl	(%rax), %eax
	movl	%eax, -44(%rbp)                 ## 4-byte Spill
LBB0_21:
	movq	%r9, (%rdi)
	movq	%r11, (%rdx)
	movl	-44(%rbp), %eax                 ## 4-byte Reload
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
	.cfi_endproc
	.p2align	2, 0x90
	.data_region jt32
.set L0_0_set_19, LBB0_19-LJTI0_0
.set L0_0_set_18, LBB0_18-LJTI0_0
.set L0_0_set_17, LBB0_17-LJTI0_0
.set L0_0_set_16, LBB0_16-LJTI0_0
LJTI0_0:
	.long	L0_0_set_19
	.long	L0_0_set_18
	.long	L0_0_set_17
	.long	L0_0_set_16
	.end_data_region
                                        ## -- End function
	.comm	_conversionOK,4,2               ## @conversionOK
	.comm	_strictConversion,8,3           ## @strictConversion
	.comm	_UNI_SUR_HIGH_START,8,3         ## @UNI_SUR_HIGH_START
	.comm	_UNI_SUR_LOW_END,8,3            ## @UNI_SUR_LOW_END
	.comm	_sourceIllegal,4,2              ## @sourceIllegal
	.comm	_UNI_MAX_LEGAL_UTF32,8,3        ## @UNI_MAX_LEGAL_UTF32
	.comm	_UNI_REPLACEMENT_CHAR,8,3       ## @UNI_REPLACEMENT_CHAR
	.comm	_targetExhausted,4,2            ## @targetExhausted
	.comm	_firstByteMark,8,3              ## @firstByteMark
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_ConvertUTF32toUTF8             ; -- Begin function ConvertUTF32toUTF8
	.p2align	2
_ConvertUTF32toUTF8:                    ; @ConvertUTF32toUTF8
	.cfi_startproc
; %bb.0:
	stp	x22, x21, [sp, #-32]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 32
	stp	x20, x19, [sp, #16]             ; 16-byte Folded Spill
	.cfi_offset w19, -8
	.cfi_offset w20, -16
	.cfi_offset w21, -24
	.cfi_offset w22, -32
	ldr	x7, [x0]
Lloh0:
	adrp	x8, _conversionOK@GOTPAGE
Lloh1:
	ldr	x8, [x8, _conversionOK@GOTPAGEOFF]
Lloh2:
	ldr	w8, [x8]
	ldr	x5, [x2]
	cmp	x7, x1
	b.hs	LBB0_23
; %bb.1:
Lloh3:
	adrp	x9, _strictConversion@GOTPAGE
Lloh4:
	ldr	x9, [x9, _strictConversion@GOTPAGEOFF]
Lloh5:
	ldr	x9, [x9]
Lloh6:
	adrp	x10, _UNI_MAX_LEGAL_UTF32@GOTPAGE
Lloh7:
	ldr	x10, [x10, _UNI_MAX_LEGAL_UTF32@GOTPAGEOFF]
Lloh8:
	ldr	x11, [x10]
Lloh9:
	adrp	x10, _UNI_REPLACEMENT_CHAR@GOTPAGE
Lloh10:
	ldr	x10, [x10, _UNI_REPLACEMENT_CHAR@GOTPAGEOFF]
Lloh11:
	ldr	x12, [x10]
Lloh12:
	adrp	x10, _firstByteMark@GOTPAGE
Lloh13:
	ldr	x10, [x10, _firstByteMark@GOTPAGEOFF]
Lloh14:
	adrp	x13, _UNI_SUR_HIGH_START@GOTPAGE
Lloh15:
	ldr	x13, [x13, _UNI_SUR_HIGH_START@GOTPAGEOFF]
Lloh16:
	adrp	x14, _UNI_SUR_LOW_END@GOTPAGE
Lloh17:
	ldr	x14, [x14, _UNI_SUR_LOW_END@GOTPAGEOFF]
Lloh18:
	ldr	x15, [x10]
Lloh19:
	adrp	x16, lJTI0_0@PAGE
Lloh20:
	add	x16, x16, lJTI0_0@PAGEOFF
Lloh21:
	adrp	x17, _sourceIllegal@GOTPAGE
Lloh22:
	ldr	x17, [x17, _sourceIllegal@GOTPAGEOFF]
	mov	x10, x7
	b	LBB0_6
LBB0_2:                                 ;   in Loop: Header=BB0_6 Depth=1
	mov	w7, #128
	bfxil	w7, w6, #0, #6
	str	w7, [x19, #-4]!
	asr	x6, x6, #6
LBB0_3:                                 ;   in Loop: Header=BB0_6 Depth=1
	mov	w7, #128
	bfxil	w7, w6, #0, #6
	str	w7, [x19, #-4]!
	asr	x6, x6, #6
LBB0_4:                                 ;   in Loop: Header=BB0_6 Depth=1
	ldr	x7, [x15, x5, lsl #3]
	orr	w6, w7, w6
	str	w6, [x19, #-4]!
LBB0_5:                                 ;   in Loop: Header=BB0_6 Depth=1
	add	x5, x19, x5, lsl #2
	mov	x7, x10
	cmp	x10, x1
	b.hs	LBB0_24
LBB0_6:                                 ; =>This Inner Loop Header: Depth=1
	ldr	x6, [x10], #8
	cmp	x9, x4
	b.ne	LBB0_8
; %bb.7:                                ;   in Loop: Header=BB0_6 Depth=1
	ldr	x19, [x13]
	ldr	x20, [x14]
	cmp	x6, x19
	ccmp	x6, x20, #0, ge
	b.le	LBB0_21
LBB0_8:                                 ;   in Loop: Header=BB0_6 Depth=1
	cmp	x6, #128
	b.ge	LBB0_10
; %bb.9:                                ;   in Loop: Header=BB0_6 Depth=1
	mov	w20, #1
	b	LBB0_17
LBB0_10:                                ;   in Loop: Header=BB0_6 Depth=1
	cmp	x6, #2048
	b.hs	LBB0_12
; %bb.11:                               ;   in Loop: Header=BB0_6 Depth=1
	mov	w20, #2
	b	LBB0_17
LBB0_12:                                ;   in Loop: Header=BB0_6 Depth=1
	cmp	x6, #16, lsl #12                ; =65536
	b.hs	LBB0_14
; %bb.13:                               ;   in Loop: Header=BB0_6 Depth=1
	mov	w20, #3
	b	LBB0_17
LBB0_14:                                ;   in Loop: Header=BB0_6 Depth=1
	cmp	x6, x11
	b.le	LBB0_16
; %bb.15:                               ;   in Loop: Header=BB0_6 Depth=1
	ldr	w8, [x17]
	mov	w20, #3
	mov	x6, x12
	b	LBB0_17
LBB0_16:                                ;   in Loop: Header=BB0_6 Depth=1
	mov	w20, #4
LBB0_17:                                ;   in Loop: Header=BB0_6 Depth=1
	add	x19, x5, w20, uxtw #2
	cmp	x19, x3
	b.hi	LBB0_22
; %bb.18:                               ;   in Loop: Header=BB0_6 Depth=1
	mov	w5, w20
	sub	w7, w5, #1
	cmp	w7, #3
	b.hi	LBB0_5
; %bb.19:                               ;   in Loop: Header=BB0_6 Depth=1
	adr	x20, LBB0_2
	ldrb	w21, [x16, x7]
	add	x20, x20, x21, lsl #2
	br	x20
LBB0_20:                                ;   in Loop: Header=BB0_6 Depth=1
	mov	w7, #128
	bfxil	w7, w6, #0, #6
	str	w7, [x19, #-4]!
	asr	x6, x6, #6
	b	LBB0_2
LBB0_21:
	ldr	w8, [x17]
	b	LBB0_23
LBB0_22:
Lloh23:
	adrp	x8, _targetExhausted@GOTPAGE
Lloh24:
	ldr	x8, [x8, _targetExhausted@GOTPAGEOFF]
Lloh25:
	ldr	w8, [x8]
LBB0_23:
	mov	x10, x7
LBB0_24:
	str	x10, [x0]
	str	x5, [x2]
	mov	x0, x8
	ldp	x20, x19, [sp, #16]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp], #32             ; 16-byte Folded Reload
	ret
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpLdrGot	Lloh21, Lloh22
	.loh AdrpAdd	Lloh19, Lloh20
	.loh AdrpLdrGot	Lloh16, Lloh17
	.loh AdrpLdrGot	Lloh14, Lloh15
	.loh AdrpLdrGotLdr	Lloh12, Lloh13, Lloh18
	.loh AdrpLdrGotLdr	Lloh9, Lloh10, Lloh11
	.loh AdrpLdrGotLdr	Lloh6, Lloh7, Lloh8
	.loh AdrpLdrGotLdr	Lloh3, Lloh4, Lloh5
	.loh AdrpLdrGotLdr	Lloh23, Lloh24, Lloh25
	.cfi_endproc
	.section	__TEXT,__const
lJTI0_0:
	.byte	(LBB0_4-LBB0_2)>>2
	.byte	(LBB0_3-LBB0_2)>>2
	.byte	(LBB0_2-LBB0_2)>>2
	.byte	(LBB0_20-LBB0_2)>>2
                                        ; -- End function
	.comm	_conversionOK,4,2               ; @conversionOK
	.comm	_strictConversion,8,3           ; @strictConversion
	.comm	_UNI_SUR_HIGH_START,8,3         ; @UNI_SUR_HIGH_START
	.comm	_UNI_SUR_LOW_END,8,3            ; @UNI_SUR_LOW_END
	.comm	_sourceIllegal,4,2              ; @sourceIllegal
	.comm	_UNI_MAX_LEGAL_UTF32,8,3        ; @UNI_MAX_LEGAL_UTF32
	.comm	_UNI_REPLACEMENT_CHAR,8,3       ; @UNI_REPLACEMENT_CHAR
	.comm	_targetExhausted,4,2            ; @targetExhausted
	.comm	_firstByteMark,8,3              ; @firstByteMark
.subsections_via_symbols
