	.file	"extr_printf.c_PrintString.c"
	.intel_syntax noprefix
	.text
	.p2align 4
	.type	PrintString, @function
PrintString:
.LFB0:
	.cfi_startproc
	endbr64
	movzx	r10d, BYTE PTR [rsi]
	lea	r8, 1[rsi]
	test	r10b, r10b
	je	.L2
	xor	eax, eax
	.p2align 4,,10
	.p2align 3
.L3:
	add	r8, 1
	movsx	r9, eax
	add	eax, 1
	cmp	BYTE PTR -1[r8], 0
	jne	.L3
	cmp	edx, eax
	cmovl	edx, eax
	mov	r8d, edx
	xor	edx, edx
	test	ecx, ecx
	jne	.L8
	mov	ecx, r8d
	sub	ecx, eax
	test	ecx, ecx
	jle	.L10
.L9:
	xor	edx, edx
	.p2align 4,,10
	.p2align 3
.L13:
	mov	BYTE PTR [rdi+rdx], 32
	add	rdx, 1
	cmp	ecx, edx
	jg	.L13
	cmp	r8d, ecx
	jle	.L1
.L10:
	movsx	rdx, ecx
	cdqe
	movsx	rcx, r8d
	sub	rax, rcx
	lea	rcx, [rsi+rax]
	.p2align 4,,10
	.p2align 3
.L14:
	movzx	eax, BYTE PTR [rcx+rdx]
	mov	BYTE PTR [rdi+rdx], al
	add	rdx, 1
	cmp	r8d, edx
	jg	.L14
.L1:
	mov	eax, r8d
	ret
	.p2align 4,,10
	.p2align 3
.L24:
	movzx	r10d, BYTE PTR 1[rsi+rdx]
	mov	rdx, rcx
.L8:
	mov	BYTE PTR [rdi+rdx], r10b
	lea	rcx, 1[rdx]
	cmp	r9, rdx
	jne	.L24
.L5:
	cmp	eax, r8d
	jge	.L1
	lea	ecx, -1[r8]
	movsx	rsi, eax
	mov	r11d, ecx
	lea	rcx, 1[rdi+rsi]
	lea	rdx, [rdi+rsi]
	sub	r11d, eax
	mov	rax, r11
	add	rax, rcx
	.p2align 4,,10
	.p2align 3
.L12:
	mov	BYTE PTR [rdx], 32
	add	rdx, 1
	cmp	rdx, rax
	jne	.L12
	mov	eax, r8d
	ret
	.p2align 4,,10
	.p2align 3
.L2:
	test	edx, edx
	mov	r8d, 0
	cmovns	r8d, edx
	test	ecx, ecx
	je	.L25
	xor	eax, eax
	jmp	.L5
.L25:
	mov	ecx, r8d
	xor	eax, eax
	test	edx, edx
	jg	.L9
	jmp	.L1
	.cfi_endproc
.LFE0:
	.size	PrintString, .-PrintString
	.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_printf.c_PrintString.c"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	PrintString, %function
PrintString:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, lr}
	mov	lr, r1
	ldrb	r7, [lr], #1	@ zero_extendqisi2
	mov	r6, r0
	cmp	r7, #0
	beq	.L2
	mov	ip, #0
.L3:
	ldrb	r4, [lr], #1	@ zero_extendqisi2
	mov	r5, ip
	cmp	r4, #0
	add	ip, ip, #1
	bne	.L3
	cmp	r2, ip
	movge	r0, r2
	movlt	r0, ip
	cmp	r3, #0
	addne	r5, r6, r5
	subne	r3, r6, #1
	bne	.L8
	sub	r2, r0, ip
	cmp	r2, #0
	suble	r4, r6, #1
	ble	.L10
.L9:
	sub	r4, r6, #1
	mov	lr, r4
	mov	r5, #32
.L13:
	add	r3, lr, #2
	sub	r3, r3, r6
	cmp	r2, r3
	strb	r5, [lr, #1]!
	bgt	.L13
	cmp	r0, r2
	pople	{r4, r5, r6, r7, pc}
.L10:
	sub	r3, r2, r0
	add	ip, r3, ip
	sub	ip, ip, #1
	sub	r2, r2, #1
	add	lr, r4, r0
	add	r1, r1, ip
	add	r3, r6, r2
.L14:
	ldrb	r2, [r1, #1]!	@ zero_extendqisi2
	strb	r2, [r3, #1]!
	cmp	r3, lr
	bne	.L14
	pop	{r4, r5, r6, r7, pc}
.L28:
	ldrb	r7, [r1, #1]!	@ zero_extendqisi2
.L8:
	strb	r7, [r3, #1]!
	cmp	r3, r5
	bne	.L28
.L5:
	cmp	ip, r0
	popge	{r4, r5, r6, r7, pc}
	mov	r1, #32
	sub	ip, ip, #1
	sub	r2, r6, #1
	add	r3, r6, ip
	add	r2, r2, r0
.L12:
	strb	r1, [r3, #1]!
	cmp	r2, r3
	bne	.L12
	pop	{r4, r5, r6, r7, pc}
.L2:
	cmp	r3, #0
	bic	r0, r2, r2, asr #31
	movne	ip, r7
	bne	.L5
.L29:
	cmp	r2, #0
	pople	{r4, r5, r6, r7, pc}
	mov	ip, r3
	mov	r2, r0
	b	.L9
	.size	PrintString, .-PrintString
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
