	.file	"extr_..commonutf8_utils.h_get_char_utf8.c"
	.intel_syntax noprefix
	.text
	.p2align 4
	.type	get_char_utf8, @function
get_char_utf8:
.LFB0:
	.cfi_startproc
	endbr64
	movzx	eax, BYTE PTR [rsi]
	test	al, al
	jns	.L31
	mov	edx, eax
	test	al, 64
	je	.L27
	movzx	ecx, BYTE PTR 1[rsi]
	mov	r8d, ecx
	and	r8d, -64
	cmp	r8b, -128
	jne	.L27
	test	al, 32
	jne	.L6
	and	edx, 30
	je	.L27
	sal	eax, 6
	and	ecx, 63
	and	eax, 1984
	or	eax, ecx
	mov	DWORD PTR [rdi], eax
	mov	eax, 2
	ret
	.p2align 4,,10
	.p2align 3
.L6:
	movzx	r8d, BYTE PTR 2[rsi]
	mov	r9d, r8d
	and	r9d, -64
	cmp	r9b, -128
	jne	.L27
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	push	rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movzx	ebx, cl
	test	al, 16
	je	.L32
	movzx	ebp, BYTE PTR 3[rsi]
	mov	r9d, ebp
	and	r9d, -64
	cmp	r9b, -128
	jne	.L5
	movzx	r11d, r8b
	test	al, 8
	jne	.L8
	and	edx, 7
	and	ecx, 48
	or	dl, cl
	je	.L5
	sal	eax, 18
	sal	ebx, 12
	mov	r10d, ebp
	mov	r8d, eax
	mov	edx, ebx
	and	r10d, 63
	sal	r11d, 6
	and	r8d, 1835008
	and	edx, 258048
	mov	eax, 4
	or	r8d, edx
	or	r10d, r8d
	mov	r8d, r11d
	and	r8d, 4032
	or	r8d, r10d
	mov	DWORD PTR [rdi], r8d
.L1:
	pop	rbx
	.cfi_def_cfa_offset 16
	pop	rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L31:
	.cfi_restore 3
	.cfi_restore 6
	test	eax, eax
	mov	DWORD PTR [rdi], eax
	setne	al
	movzx	eax, al
	ret
	.p2align 4,,10
	.p2align 3
.L32:
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	.cfi_offset 6, -16
	and	edx, 15
	and	ecx, 32
	or	dl, cl
	je	.L5
	sal	eax, 12
	sal	ebx, 6
	and	r8d, 63
	and	ebx, 4032
	movzx	eax, ax
	or	eax, ebx
	pop	rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 16
	pop	rbp
	.cfi_def_cfa_offset 8
	or	r8d, eax
	mov	eax, 3
	mov	DWORD PTR [rdi], r8d
	ret
	.p2align 4,,10
	.p2align 3
.L8:
	.cfi_restore_state
	movzx	r9d, BYTE PTR 4[rsi]
	mov	r8d, r9d
	and	r8d, -64
	cmp	r8b, -128
	jne	.L5
	movzx	r10d, bpl
	test	al, 4
	je	.L33
	movzx	esi, BYTE PTR 5[rsi]
	mov	r8d, esi
	and	r8d, -64
	cmp	r8b, -128
	jne	.L5
	test	al, 2
	jne	.L5
	and	edx, 1
	and	ecx, 60
	or	dl, cl
	je	.L5
	sal	ebx, 24
	sal	eax, 30
	and	esi, 63
	sal	r11d, 18
	mov	edx, ebx
	and	eax, 1073741824
	sal	r10d, 12
	and	edx, 1056964608
	and	r11d, 16515072
	and	r10d, 258048
	sal	r9d, 6
	or	eax, edx
	and	r9d, 4032
	or	eax, esi
	or	eax, r11d
	or	eax, r10d
	or	eax, r9d
	mov	DWORD PTR [rdi], eax
	mov	eax, 6
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L33:
	and	edx, 3
	and	ecx, 56
	or	dl, cl
	je	.L5
	sal	eax, 24
	sal	ebx, 18
	and	r9d, 63
	and	eax, 50331648
	and	ebx, 16515072
	sal	r11d, 12
	or	ebx, eax
	and	r11d, 258048
	sal	r10d, 6
	mov	eax, 5
	or	r9d, ebx
	and	r10d, 4032
	or	r11d, r9d
	or	r10d, r11d
	mov	DWORD PTR [rdi], r10d
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L5:
	mov	DWORD PTR [rdi], -1
	mov	eax, -1
	jmp	.L1
.L27:
	.cfi_def_cfa_offset 8
	.cfi_restore 3
	.cfi_restore 6
	mov	DWORD PTR [rdi], -1
	or	eax, -1
	ret
	.cfi_endproc
.LFE0:
	.size	get_char_utf8, .-get_char_utf8
	.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_..commonutf8_utils.h_get_char_utf8.c"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_char_utf8, %function
get_char_utf8:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	ldrb	r3, [r1]	@ zero_extendqisi2
	mov	ip, r0
	lsls	r0, r3, #24
	bpl	.L30
	tst	r3, #64
	beq	.L31
	push	{r4, r5, r6, lr}
	ldrb	r2, [r1, #1]	@ zero_extendqisi2
	and	lr, r2, #192
	cmp	lr, #128
	bne	.L5
	tst	r3, #32
	bne	.L6
	tst	r3, #30
	beq	.L5
	lsl	r3, r3, #6
	and	r3, r3, #1984
	and	r2, r2, #63
	orr	r2, r3, r2
	mov	r0, #2
	str	r2, [ip]
	pop	{r4, r5, r6, pc}
.L6:
	ldrb	lr, [r1, #2]	@ zero_extendqisi2
	and	r4, lr, #192
	cmp	r4, #128
	bne	.L5
	tst	r3, #16
	beq	.L32
	ldrb	r5, [r1, #3]	@ zero_extendqisi2
	and	r4, r5, #192
	cmp	r4, #128
	bne	.L5
	tst	r3, #8
	bne	.L8
	and	r1, r3, #7
	and	r0, r2, #48
	orrs	r1, r1, r0
	beq	.L5
	lsl	r3, r3, #18
	lsl	r2, r2, #12
	and	r2, r2, #258048
	and	r3, r3, #1835008
	orr	r3, r3, r2
	and	r5, r5, #63
	lsl	lr, lr, #6
	orr	r5, r3, r5
	and	lr, lr, #4032
	orr	lr, r5, lr
	mov	r0, #4
	str	lr, [ip]
	pop	{r4, r5, r6, pc}
.L30:
	subs	r0, r3, #0
	movne	r0, #1
	str	r3, [ip]
	bx	lr
.L32:
	and	r1, r3, #15
	and	r0, r2, #32
	orrs	r1, r1, r0
	beq	.L5
	ldr	r1, .L34
	lsl	r2, r2, #6
	and	r2, r2, #4032
	and	r3, r1, r3, lsl #12
	orr	r3, r3, r2
	and	lr, lr, #63
	orr	lr, r3, lr
	mov	r0, #3
	str	lr, [ip]
	pop	{r4, r5, r6, pc}
.L8:
	ldrb	r4, [r1, #4]	@ zero_extendqisi2
	and	r6, r4, #192
	cmp	r6, #128
	bne	.L5
	tst	r3, #4
	beq	.L33
	ldrb	r1, [r1, #5]	@ zero_extendqisi2
	and	r0, r1, #192
	cmp	r0, #128
	bne	.L5
	tst	r3, #2
	bne	.L5
	and	r0, r3, #1
	and	r6, r2, #60
	orrs	r0, r0, r6
	beq	.L5
	mov	r0, #6
	lsl	r3, r3, #30
	lsl	r2, r2, #24
	and	r2, r2, #1056964608
	and	r3, r3, #1073741824
	orr	r3, r3, r2
	and	r1, r1, #63
	lsl	lr, lr, #18
	orr	r3, r3, r1
	and	lr, lr, #16515072
	lsl	r5, r5, #12
	orr	r3, r3, lr
	and	r5, r5, #258048
	lsl	r4, r4, r0
	orr	r3, r3, r5
	and	r4, r4, #4032
	orr	r3, r3, r4
	str	r3, [ip]
	pop	{r4, r5, r6, pc}
.L33:
	and	r3, r3, #3
	and	r1, r2, #56
	orrs	r3, r3, r1
	beq	.L5
	lsl	r2, r2, #18
	and	r2, r2, #16515072
	and	r3, r0, #50331648
	orr	r3, r3, r2
	and	r4, r4, #63
	lsl	lr, lr, #12
	orr	r3, r3, r4
	and	lr, lr, #258048
	lsl	r5, r5, #6
	orr	r3, r3, lr
	and	r5, r5, #4032
	orr	r3, r3, r5
	mov	r0, #5
	str	r3, [ip]
	pop	{r4, r5, r6, pc}
.L5:
	mvn	r0, #0
	str	r0, [ip]
	pop	{r4, r5, r6, pc}
.L31:
	mvn	r0, #0
	str	r0, [ip]
	bx	lr
.L35:
	.align	2
.L34:
	.word	65535
	.size	get_char_utf8, .-get_char_utf8
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
