	.file	"extr_common.c_printf_decode.c"
	.intel_syntax noprefix
	.text
	.p2align 4
	.globl	printf_decode
	.type	printf_decode, @function
printf_decode:
.LFB0:
	.cfi_startproc
	endbr64
	push	r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	push	r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	mov	r14, rsi
	push	r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	mov	r13, rdi
	push	r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	push	rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	push	rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	sub	rsp, 24
	.cfi_def_cfa_offset 80
	movzx	eax, BYTE PTR [rdx]
	test	al, al
	je	.L23
	cmp	rsi, 1
	jbe	.L23
	mov	rbx, rdx
	xor	r12d, r12d
	mov	ebp, 1
	lea	r15, .L12[rip]
	jmp	.L3
	.p2align 4,,10
	.p2align 3
.L5:
	mov	BYTE PTR 0[r13+r12], al
	movzx	eax, BYTE PTR 1[rbx]
	mov	r12, rbp
.L8:
	test	al, al
	je	.L2
.L4:
	lea	rbp, 1[r12]
	cmp	rbp, r14
	jnb	.L2
	mov	rbx, rdx
.L3:
	lea	rdx, 1[rbx]
	cmp	al, 92
	jne	.L5
	movsx	eax, BYTE PTR 1[rbx]
	cmp	al, 120
	jg	.L4
	cmp	al, 91
	jle	.L27
	lea	ecx, -92[rax]
	cmp	cl, 28
	ja	.L4
	movzx	ecx, cl
	movsx	rcx, DWORD PTR [r15+rcx*4]
	add	rcx, r15
	notrack jmp	rcx
	.section	.rodata
	.align 4
	.align 4
.L12:
	.long	.L17-.L12
	.long	.L4-.L12
	.long	.L4-.L12
	.long	.L4-.L12
	.long	.L4-.L12
	.long	.L4-.L12
	.long	.L4-.L12
	.long	.L4-.L12
	.long	.L4-.L12
	.long	.L16-.L12
	.long	.L4-.L12
	.long	.L4-.L12
	.long	.L4-.L12
	.long	.L4-.L12
	.long	.L4-.L12
	.long	.L4-.L12
	.long	.L4-.L12
	.long	.L4-.L12
	.long	.L15-.L12
	.long	.L4-.L12
	.long	.L4-.L12
	.long	.L4-.L12
	.long	.L14-.L12
	.long	.L4-.L12
	.long	.L13-.L12
	.long	.L4-.L12
	.long	.L4-.L12
	.long	.L4-.L12
	.long	.L11-.L12
	.text
	.p2align 4,,10
	.p2align 3
.L27:
	cmp	al, 34
	je	.L7
	lea	ecx, -48[rax]
	cmp	cl, 7
	ja	.L8
	movsx	ecx, BYTE PTR 2[rbx]
	sub	eax, 48
	lea	edx, -48[rcx]
	cmp	dl, 7
	ja	.L28
	lea	eax, -48[rcx+rax*8]
	movsx	ecx, BYTE PTR 3[rbx]
	lea	rdx, 3[rbx]
	lea	esi, -48[rcx]
	cmp	sil, 7
	ja	.L20
	lea	rdx, 4[rbx]
	lea	eax, -48[rcx+rax*8]
.L20:
	mov	BYTE PTR 0[r13+r12], al
	mov	r12, rbp
	movzx	eax, BYTE PTR [rdx]
	jmp	.L8
	.p2align 4,,10
	.p2align 3
.L23:
	xor	r12d, r12d
.L2:
	cmp	r14, r12
	jbe	.L1
	mov	BYTE PTR 0[r13+r12], 0
.L1:
	add	rsp, 24
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	mov	rax, r12
	pop	rbx
	.cfi_def_cfa_offset 48
	pop	rbp
	.cfi_def_cfa_offset 40
	pop	r12
	.cfi_def_cfa_offset 32
	pop	r13
	.cfi_def_cfa_offset 24
	pop	r14
	.cfi_def_cfa_offset 16
	pop	r15
	.cfi_def_cfa_offset 8
	ret
.L11:
	.cfi_restore_state
	lea	rdx, 2[rbx]
	mov	rdi, rdx
	mov	QWORD PTR 8[rsp], rdx
	call	hex2byte@PLT
	test	eax, eax
	js	.L29
	mov	BYTE PTR 0[r13+r12], al
	lea	rdx, 4[rbx]
	movzx	eax, BYTE PTR 4[rbx]
	mov	r12, rbp
	jmp	.L8
.L13:
	mov	BYTE PTR 0[r13+r12], 9
	lea	rdx, 2[rbx]
	movzx	eax, BYTE PTR 2[rbx]
	mov	r12, rbp
	jmp	.L8
.L14:
	mov	BYTE PTR 0[r13+r12], 13
	lea	rdx, 2[rbx]
	movzx	eax, BYTE PTR 2[rbx]
	mov	r12, rbp
	jmp	.L8
.L15:
	mov	BYTE PTR 0[r13+r12], 10
	lea	rdx, 2[rbx]
	movzx	eax, BYTE PTR 2[rbx]
	mov	r12, rbp
	jmp	.L8
.L16:
	mov	BYTE PTR 0[r13+r12], 27
	lea	rdx, 2[rbx]
	movzx	eax, BYTE PTR 2[rbx]
	mov	r12, rbp
	jmp	.L8
.L17:
	mov	BYTE PTR 0[r13+r12], 92
	lea	rdx, 2[rbx]
	movzx	eax, BYTE PTR 2[rbx]
	mov	r12, rbp
	jmp	.L8
	.p2align 4,,10
	.p2align 3
.L7:
	mov	BYTE PTR 0[r13+r12], 34
	lea	rdx, 2[rbx]
	movzx	eax, BYTE PTR 2[rbx]
	mov	r12, rbp
	jmp	.L8
	.p2align 4,,10
	.p2align 3
.L28:
	lea	rdx, 2[rbx]
	mov	BYTE PTR 0[r13+r12], al
	mov	r12, rbp
	movzx	eax, BYTE PTR [rdx]
	jmp	.L8
.L29:
	movsx	edi, BYTE PTR 2[rbx]
	call	hex2num@PLT
	test	eax, eax
	js	.L30
	mov	BYTE PTR 0[r13+r12], al
	lea	rdx, 3[rbx]
	movzx	eax, BYTE PTR 3[rbx]
	mov	r12, rbp
	jmp	.L8
.L30:
	movzx	eax, BYTE PTR 2[rbx]
	mov	rdx, QWORD PTR 8[rsp]
	jmp	.L8
	.cfi_endproc
.LFE0:
	.size	printf_decode, .-printf_decode
	.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_common.c_printf_decode.c"
	.text
	.align	2
	.global	printf_decode
	.syntax unified
	.arm
	.fpu softvfp
	.type	printf_decode, %function
printf_decode:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
	ldrb	r3, [r2]	@ zero_extendqisi2
	mov	r9, r0
	cmp	r3, #0
	mov	r8, r1
	beq	.L23
	cmp	r1, #1
	bls	.L23
	mov	r4, r2
	mov	r5, #0
	mov	r6, #1
	mov	r1, #27
	mov	fp, #9
	mov	r10, #13
	b	.L3
.L5:
	strb	r3, [r9, r5]
	mov	r5, r6
	ldrb	r3, [r4, #1]	@ zero_extendqisi2
.L8:
	cmp	r3, #0
	beq	.L2
.L4:
	add	r6, r5, #1
	cmp	r6, r8
	bcs	.L2
	mov	r4, r7
.L3:
	cmp	r3, #92
	add	r7, r4, #1
	bne	.L5
	ldrb	r3, [r4, #1]	@ zero_extendqisi2
	cmp	r3, #120
	bhi	.L4
	cmp	r3, #91
	bls	.L28
	sub	r2, r3, #92
	cmp	r2, #28
	ldrls	pc, [pc, r2, asl #2]
	b	.L4
.L12:
	.word	.L17
	.word	.L4
	.word	.L4
	.word	.L4
	.word	.L4
	.word	.L4
	.word	.L4
	.word	.L4
	.word	.L4
	.word	.L16
	.word	.L4
	.word	.L4
	.word	.L4
	.word	.L4
	.word	.L4
	.word	.L4
	.word	.L4
	.word	.L4
	.word	.L15
	.word	.L4
	.word	.L4
	.word	.L4
	.word	.L14
	.word	.L4
	.word	.L13
	.word	.L4
	.word	.L4
	.word	.L4
	.word	.L11
.L28:
	cmp	r3, #34
	beq	.L26
	sub	r2, r3, #48
	and	r0, r2, #255
	cmp	r0, #7
	bhi	.L8
	ldrb	r3, [r4, #2]	@ zero_extendqisi2
	sub	r3, r3, #48
	and	r0, r3, #255
	cmp	r0, #7
	bhi	.L29
	ldrb	r0, [r4, #3]	@ zero_extendqisi2
	add	r2, r3, r2, lsl #3
	sub	r3, r0, #48
	and	r0, r3, #255
	cmp	r0, #7
	addls	r2, r3, r2, lsl #3
	add	r7, r4, #3
	strb	r2, [r9, r5]
	addls	r7, r4, #4
	mov	r5, r6
	ldrb	r3, [r7]	@ zero_extendqisi2
	b	.L8
.L23:
	mov	r5, #0
.L2:
	cmp	r8, r5
	movhi	r3, #0
	mov	r0, r5
	strbhi	r3, [r9, r5]
	pop	{r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L15:
	mov	r3, #10
.L26:
	strb	r3, [r9, r5]
	ldrb	r3, [r4, #2]	@ zero_extendqisi2
	mov	r5, r6
	add	r7, r4, #2
	b	.L8
.L11:
	add	r7, r4, #2
	mov	r0, r7
	bl	hex2byte
	cmp	r0, #0
	mov	r1, #27
	blt	.L30
	strb	r0, [r9, r5]
	ldrb	r3, [r4, #4]	@ zero_extendqisi2
	mov	r5, r6
	add	r7, r4, #4
	b	.L8
.L13:
	strb	fp, [r9, r5]
	ldrb	r3, [r4, #2]	@ zero_extendqisi2
	mov	r5, r6
	add	r7, r4, #2
	b	.L8
.L14:
	strb	r10, [r9, r5]
	ldrb	r3, [r4, #2]	@ zero_extendqisi2
	mov	r5, r6
	add	r7, r4, #2
	b	.L8
.L16:
	strb	r1, [r9, r5]
	ldrb	r3, [r4, #2]	@ zero_extendqisi2
	mov	r5, r6
	add	r7, r4, #2
	b	.L8
.L17:
	mov	r3, #92
	strb	r3, [r9, r5]
	ldrb	r3, [r4, #2]	@ zero_extendqisi2
	mov	r5, r6
	add	r7, r4, #2
	b	.L8
.L29:
	strb	r2, [r9, r5]
	add	r7, r4, #2
	mov	r5, r6
	ldrb	r3, [r7]	@ zero_extendqisi2
	b	.L8
.L30:
	ldrb	r0, [r4, #2]	@ zero_extendqisi2
	bl	hex2num
	cmp	r0, #0
	strbge	r0, [r9, r5]
	mov	r1, #27
	movge	r5, r6
	ldrblt	r3, [r4, #2]	@ zero_extendqisi2
	ldrbge	r3, [r4, #3]	@ zero_extendqisi2
	addge	r7, r4, #3
	b	.L8
	.size	printf_decode, .-printf_decode
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
