	.file	"extr_test_main.c__utf8_to_unicode.c"
	.intel_syntax noprefix
	.text
	.p2align 4
	.type	_utf8_to_unicode, @function
_utf8_to_unicode:
.LFB0:
	.cfi_startproc
	endbr64
	mov	DWORD PTR [rdi], 0
	xor	eax, eax
	test	rdx, rdx
	je	.L1
	movzx	ecx, BYTE PTR [rsi]
	test	cl, cl
	je	.L1
	movzx	eax, cl
	lea	r9, utf8_count.1921[rip]
	movzx	r8d, cl
	movsx	r9, BYTE PTR [r9+rax]
	mov	rax, r9
	cmp	r9, rdx
	ja	.L20
	cmp	r9b, 3
	je	.L3
	jg	.L4
	cmp	r9b, 1
	je	.L5
	cmp	r9b, 2
	jne	.L20
	movzx	eax, BYTE PTR 1[rsi]
	mov	edx, eax
	and	edx, 192
	cmp	edx, 128
	jne	.L20
	sal	r8d, 6
	and	eax, 63
	and	r8d, 1984
	or	r8d, eax
	mov	eax, 2
	mov	DWORD PTR [rdi], r8d
	ret
	.p2align 4,,10
	.p2align 3
.L3:
	movsx	ecx, BYTE PTR 1[rsi]
	mov	edx, ecx
	and	edx, 192
	cmp	edx, 128
	jne	.L20
	movzx	esi, BYTE PTR 2[rsi]
	mov	edx, esi
	and	edx, 192
	cmp	edx, 128
	jne	.L20
	sal	ecx, 6
	and	esi, 63
	sal	r8d, 12
	mov	edx, ecx
	movzx	r8d, r8w
	and	edx, 4032
	or	edx, esi
	or	edx, r8d
	cmp	edx, 2047
	jg	.L8
	.p2align 4,,10
	.p2align 3
.L20:
	mov	eax, -1
.L1:
	ret
	.p2align 4,,10
	.p2align 3
.L4:
	cmp	r9b, 4
	jne	.L20
	cmp	rdx, 3
	jbe	.L20
	movsx	ecx, BYTE PTR 1[rsi]
	mov	edx, ecx
	and	edx, 192
	cmp	edx, 128
	jne	.L20
	movsx	r9d, BYTE PTR 2[rsi]
	mov	edx, r9d
	and	edx, 192
	cmp	edx, 128
	jne	.L20
	movzx	esi, BYTE PTR 3[rsi]
	mov	edx, esi
	and	edx, 192
	cmp	edx, 128
	jne	.L20
	sal	ecx, 12
	sal	r9d, 6
	and	esi, 63
	mov	edx, ecx
	and	r9d, 4032
	sal	r8d, 18
	and	edx, 258048
	and	r8d, 1835008
	or	edx, r9d
	or	edx, esi
	or	edx, r8d
	lea	ecx, -65536[rdx]
	cmp	ecx, 1048575
	ja	.L20
.L8:
	mov	DWORD PTR [rdi], edx
	ret
	.p2align 4,,10
	.p2align 3
.L5:
	and	ecx, 127
	mov	eax, 1
	mov	DWORD PTR [rdi], ecx
	ret
	.cfi_endproc
.LFE0:
	.size	_utf8_to_unicode, .-_utf8_to_unicode
	.section	.rodata
	.align 32
	.type	utf8_count.1921, @object
	.size	utf8_count.1921, 256
utf8_count.1921:
	.string	"\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001"
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	"\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\002\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\004\004\004\004\004"
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 2
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"extr_test_main.c__utf8_to_unicode.c"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	_utf8_to_unicode, %function
_utf8_to_unicode:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	mov	r3, r0
	mov	r0, #0
	cmp	r2, #0
	str	r0, [r3]
	beq	.L9
	ldrb	r0, [r1]	@ zero_extendqisi2
	cmp	r0, #0
	bxeq	lr
	ldr	ip, .L29
	push	{r4, lr}
	ldrb	lr, [ip, r0]	@ zero_extendqisi2
	cmp	lr, r2
	bhi	.L20
	sub	ip, lr, #1
	cmp	ip, #3
	ldrls	pc, [pc, ip, asl #2]
	b	.L20
.L4:
	.word	.L7
	.word	.L6
	.word	.L5
	.word	.L3
.L9:
	mov	r0, r2
	bx	lr
.L3:
	cmp	r2, #3
	bls	.L20
	ldrb	ip, [r1, #1]	@ zero_extendqisi2
	and	r2, ip, #192
	cmp	r2, #128
	bne	.L20
	ldrb	r4, [r1, #2]	@ zero_extendqisi2
	and	r2, r4, #192
	cmp	r2, #128
	bne	.L20
	ldrb	r1, [r1, #3]	@ zero_extendqisi2
	and	r2, r1, #192
	cmp	r2, #128
	bne	.L20
	lsl	r2, r0, #18
	lsl	ip, ip, #12
	and	r2, r2, #1835008
	and	ip, ip, #258048
	and	r1, r1, #63
	orr	r2, r2, ip
	lsl	r4, r4, #6
	orr	r2, r2, r1
	and	r4, r4, #4032
	orr	r2, r2, r4
	sub	r1, r2, #65536
	cmp	r1, #1048576
	bcs	.L20
.L8:
	mov	r0, lr
	str	r2, [r3]
	pop	{r4, pc}
.L5:
	ldrb	ip, [r1, #1]	@ zero_extendqisi2
	and	r2, ip, #192
	cmp	r2, #128
	bne	.L20
	ldrb	r4, [r1, #2]	@ zero_extendqisi2
	and	r2, r4, #192
	cmp	r2, #128
	bne	.L20
	ldr	r1, .L29+4
	lsl	r2, ip, #6
	and	r2, r2, #4032
	and	r0, r1, r0, lsl #12
	and	r4, r4, #63
	orr	r2, r0, r2
	orr	r2, r2, r4
	cmp	r2, #2048
	bge	.L8
.L20:
	mvn	r0, #0
	pop	{r4, pc}
.L6:
	ldrb	r2, [r1, #1]	@ zero_extendqisi2
	and	r1, r2, #192
	cmp	r1, #128
	bne	.L20
	lsl	r0, r0, #6
	and	r2, r2, #63
	and	r0, r0, #1984
	orr	r0, r0, r2
	str	r0, [r3]
	mov	r0, #2
	pop	{r4, pc}
.L7:
	and	r0, r0, #127
	str	r0, [r3]
	mov	r0, #1
	pop	{r4, pc}
.L30:
	.align	2
.L29:
	.word	.LANCHOR0
	.word	65535
	.size	_utf8_to_unicode, .-_utf8_to_unicode
	.section	.rodata
	.align	2
	.set	.LANCHOR0,. + 0
	.type	utf8_count.4205, %object
	.size	utf8_count.4205, 256
utf8_count.4205:
	.ascii	"\001\001\001\001\001\001\001\001\001\001\001\001\001"
	.ascii	"\001\001\001\001\001\001\001\001\001\001\001\001\001"
	.ascii	"\001\001\001\001\001\001\001\001\001\001\001\001\001"
	.ascii	"\001\001\001\001\001\001\001\001\001\001\001\001\001"
	.ascii	"\001\001\001\001\001\001\001\001\001\001\001\001\001"
	.ascii	"\001\001\001\001\001\001\001\001\001\001\001\001\001"
	.ascii	"\001\001\001\001\001\001\001\001\001\001\001\001\001"
	.ascii	"\001\001\001\001\001\001\001\001\001\001\001\001\001"
	.ascii	"\001\001\001\001\001\001\001\001\001\001\001\001\001"
	.ascii	"\001\001\001\001\001\001\001\001\001\001\001\000\000"
	.ascii	"\000\000\000\000\000\000\000\000\000\000\000\000\000"
	.ascii	"\000\000\000\000\000\000\000\000\000\000\000\000\000"
	.ascii	"\000\000\000\000\000\000\000\000\000\000\000\000\000"
	.ascii	"\000\000\000\000\000\000\000\000\000\000\000\000\000"
	.ascii	"\000\000\000\000\000\000\000\000\000\000\000\000\002"
	.ascii	"\002\002\002\002\002\002\002\002\002\002\002\002\002"
	.ascii	"\002\002\002\002\002\002\002\002\002\002\002\002\002"
	.ascii	"\002\002\002\003\003\003\003\003\003\003\003\003\003"
	.ascii	"\003\003\003\003\003\003\004\004\004\004\004\000\000"
	.ascii	"\000\000\000\000\000\000\000\000\000"
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
