	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal16,16byte_literals
	.p2align	4                               ## -- Begin function png_ascii_from_fp
LCPI0_0:
	.quad	0x8000000000000000              ## double -0
	.quad	0x8000000000000000              ## double -0
LCPI0_5:
	.byte	3                               ## 0x3
	.byte	2                               ## 0x2
	.byte	1                               ## 0x1
	.byte	0                               ## 0x0
	.space	1
	.space	1
	.space	1
	.space	1
	.space	1
	.space	1
	.space	1
	.space	1
	.space	1
	.space	1
	.space	1
	.space	1
LCPI0_6:
	.long	105                             ## 0x69
	.long	110                             ## 0x6e
	.long	102                             ## 0x66
	.long	0                               ## 0x0
	.section	__TEXT,__literal8,8byte_literals
	.p2align	3
LCPI0_1:
	.quad	0x3ff0000000000000              ## double 1
LCPI0_2:
	.quad	0x4024000000000000              ## double 10
LCPI0_3:
	.quad	0x3fe0000000000000              ## double 0.5
LCPI0_4:
	.quad	0x4022000000000000              ## double 9
LCPI0_7:
	.quad	0x0000000000000000              ## double 0
	.section	__TEXT,__text,regular,pure_instructions
	.globl	_png_ascii_from_fp
	.p2align	4, 0x90
_png_ascii_from_fp:                     ## @png_ascii_from_fp
	.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
	subq	$72, %rsp
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movl	%edx, %r15d
	movq	___stack_chk_guard@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	movq	%rax, -48(%rbp)
	testl	%ecx, %ecx
	movq	_DBL_DIG@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	cmovel	%edx, %ecx
	incl	%edx
	cmpl	%edx, %ecx
	cmovbl	%ecx, %edx
	leal	5(%rdx), %eax
	cmpl	%r15d, %eax
	jbe	LBB0_3
LBB0_1:
	movq	___stack_chk_guard@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	cmpq	-48(%rbp), %rax
	jne	LBB0_106
## %bb.2:
	leaq	L_.str(%rip), %rsi
	addq	$72, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_png_error                      ## TAILCALL
LBB0_3:
	movq	%rsi, %rbx
	xorpd	%xmm1, %xmm1
	ucomisd	%xmm0, %xmm1
	jbe	LBB0_5
## %bb.4:
	xorpd	LCPI0_0(%rip), %xmm0
	movl	$45, (%rbx)
	addq	$4, %rbx
	decl	%r15d
LBB0_5:
	movq	_DBL_MIN@GOTPCREL(%rip), %rax
	movsd	(%rax), %xmm2                   ## xmm2 = mem[0],zero
	ucomisd	%xmm2, %xmm0
	jb	LBB0_10
## %bb.6:
	movq	_DBL_MAX@GOTPCREL(%rip), %r14
	movsd	(%r14), %xmm1                   ## xmm1 = mem[0],zero
	ucomisd	%xmm0, %xmm1
	jb	LBB0_10
## %bb.7:
	movq	%rdx, -72(%rbp)                 ## 8-byte Spill
	movl	%edi, -84(%rbp)                 ## 4-byte Spill
	leaq	-64(%rbp), %rdi
	movapd	%xmm0, -112(%rbp)               ## 16-byte Spill
	callq	_frexp
	imull	$77, -64(%rbp), %r12d
	sarl	$8, %r12d
	movl	%r12d, %edi
	callq	_png_pow10
	movapd	-112(%rbp), %xmm2               ## 16-byte Reload
	ucomisd	%xmm0, %xmm2
	movsd	%xmm0, -96(%rbp)                ## 8-byte Spill
	ja	LBB0_12
## %bb.8:
	movq	_DBL_MIN@GOTPCREL(%rip), %rax
	movsd	(%rax), %xmm1                   ## xmm1 = mem[0],zero
	ucomisd	%xmm0, %xmm1
	ja	LBB0_12
## %bb.9:
	movq	-72(%rbp), %rsi                 ## 8-byte Reload
	jmp	LBB0_16
LBB0_10:
	ucomisd	%xmm2, %xmm0
	jae	LBB0_78
## %bb.11:
	movq	$48, (%rbx)
	jmp	LBB0_83
LBB0_12:
	leal	1(%r12), %r13d
	movl	%r13d, %edi
	callq	_png_pow10
	movapd	-112(%rbp), %xmm2               ## 16-byte Reload
	movsd	(%r14), %xmm1                   ## xmm1 = mem[0],zero
	ucomisd	%xmm0, %xmm1
	movq	-72(%rbp), %rsi                 ## 8-byte Reload
	jae	LBB0_14
	jmp	LBB0_16
	.p2align	4, 0x90
LBB0_13:                                ##   in Loop: Header=BB0_14 Depth=1
	leal	1(%r12), %r13d
	movl	%r13d, %edi
	callq	_png_pow10
	movapd	-112(%rbp), %xmm2               ## 16-byte Reload
	movq	-72(%rbp), %rsi                 ## 8-byte Reload
	movsd	(%r14), %xmm1                   ## xmm1 = mem[0],zero
	ucomisd	%xmm0, %xmm1
	jb	LBB0_16
LBB0_14:                                ## =>This Inner Loop Header: Depth=1
	movl	%r13d, %r12d
	ucomisd	%xmm0, %xmm2
	movsd	%xmm0, -96(%rbp)                ## 8-byte Spill
	ja	LBB0_13
## %bb.15:                              ##   in Loop: Header=BB0_14 Depth=1
	movapd	%xmm0, %xmm1
	movq	_DBL_MIN@GOTPCREL(%rip), %rax
	movsd	(%rax), %xmm0                   ## xmm0 = mem[0],zero
	ucomisd	%xmm1, %xmm0
	ja	LBB0_13
LBB0_16:
	divsd	-96(%rbp), %xmm2                ## 8-byte Folded Reload
	ucomisd	LCPI0_1(%rip), %xmm2
	jb	LBB0_19
## %bb.17:
	movsd	LCPI0_2(%rip), %xmm0            ## xmm0 = mem[0],zero
	movsd	LCPI0_1(%rip), %xmm1            ## xmm1 = mem[0],zero
	.p2align	4, 0x90
LBB0_18:                                ## =>This Inner Loop Header: Depth=1
	divsd	%xmm0, %xmm2
	incl	%r12d
	ucomisd	%xmm1, %xmm2
	jae	LBB0_18
LBB0_19:
	movl	%r12d, -64(%rbp)
	xorl	%r13d, %r13d
	movl	$0, %r14d
	cmpl	$-2, %r12d
	jb	LBB0_21
## %bb.20:
	negl	%r12d
	movl	$0, -64(%rbp)
	movl	%r12d, %r14d
LBB0_21:
	movl	%r14d, %r12d
	.p2align	4, 0x90
LBB0_22:                                ## =>This Loop Header: Depth=1
                                        ##     Child Loop BB0_31 Depth 2
                                        ##     Child Loop BB0_63 Depth 2
	mulsd	LCPI0_2(%rip), %xmm2
	leal	(%r14,%r13), %eax
	incl	%eax
	leal	(%r12,%rsi), %ecx
	cmpl	%ecx, %eax
	jae	LBB0_24
## %bb.23:                              ##   in Loop: Header=BB0_22 Depth=1
	movapd	%xmm2, %xmm0
	leaq	-80(%rbp), %rdi
	callq	_modf
	movapd	%xmm0, %xmm2
	movsd	-80(%rbp), %xmm0                ## xmm0 = mem[0],zero
	jmp	LBB0_44
	.p2align	4, 0x90
LBB0_24:                                ##   in Loop: Header=BB0_22 Depth=1
	addsd	LCPI0_3(%rip), %xmm2
	xorps	%xmm0, %xmm0
	roundsd	$9, %xmm2, %xmm0
	xorpd	%xmm2, %xmm2
	ucomisd	LCPI0_4(%rip), %xmm0
	jbe	LBB0_44
## %bb.25:                              ##   in Loop: Header=BB0_22 Depth=1
	testl	%r14d, %r14d
	je	LBB0_29
## %bb.26:                              ##   in Loop: Header=BB0_22 Depth=1
	decl	%r14d
	movabsq	$4607182418800017408, %rax      ## imm = 0x3FF0000000000000
	movq	%rax, -80(%rbp)
	cmpl	$1, %r13d
	sbbl	$0, %r12d
	xorpd	%xmm2, %xmm2
	movsd	LCPI0_1(%rip), %xmm0            ## xmm0 = mem[0],zero
	testl	%r14d, %r14d
	jne	LBB0_47
LBB0_27:                                ##   in Loop: Header=BB0_22 Depth=1
	xorl	%r14d, %r14d
LBB0_28:                                ##   in Loop: Header=BB0_22 Depth=1
	movq	%rbx, %rax
LBB0_54:                                ##   in Loop: Header=BB0_22 Depth=1
	movl	-64(%rbp), %ecx
	cmpl	$-1, %ecx
	je	LBB0_58
## %bb.55:                              ##   in Loop: Header=BB0_22 Depth=1
	testl	%ecx, %ecx
	jne	LBB0_57
## %bb.56:                              ##   in Loop: Header=BB0_22 Depth=1
	movl	$46, (%rax)
	addq	$4, %rax
	decl	%r15d
	movl	-64(%rbp), %ecx
LBB0_57:                                ##   in Loop: Header=BB0_22 Depth=1
	decl	%ecx
	movl	%ecx, -64(%rbp)
LBB0_58:                                ##   in Loop: Header=BB0_22 Depth=1
	cvttsd2si	%xmm0, %ecx
	addb	$48, %cl
	movsbl	%cl, %ecx
	movl	%ecx, (%rax)
	addq	$4, %rax
	subl	%r12d, %r13d
	addl	%r14d, %r13d
	incl	%r13d
	xorl	%r14d, %r14d
	xorl	%r12d, %r12d
	movq	%rax, %rbx
	jmp	LBB0_59
LBB0_29:                                ##   in Loop: Header=BB0_22 Depth=1
	testl	%r13d, %r13d
	je	LBB0_40
## %bb.30:                              ##   in Loop: Header=BB0_22 Depth=1
	movl	-64(%rbp), %ecx
	.p2align	4, 0x90
LBB0_31:                                ##   Parent Loop BB0_22 Depth=1
                                        ## =>  This Inner Loop Header: Depth=2
	leaq	-4(%rbx), %rdx
	movl	-4(%rbx), %eax
	cmpl	$-1, %ecx
	je	LBB0_33
## %bb.32:                              ##   in Loop: Header=BB0_31 Depth=2
	incl	%ecx
	movl	%ecx, -64(%rbp)
	jmp	LBB0_35
	.p2align	4, 0x90
LBB0_33:                                ##   in Loop: Header=BB0_31 Depth=2
	movl	$-1, %ecx
	cmpl	$46, %eax
	jne	LBB0_35
## %bb.34:                              ##   in Loop: Header=BB0_31 Depth=2
	movl	-8(%rbx), %eax
	addq	$-8, %rbx
	incl	%r15d
	movl	$1, -64(%rbp)
	movl	$1, %ecx
	jmp	LBB0_36
	.p2align	4, 0x90
LBB0_35:                                ##   in Loop: Header=BB0_31 Depth=2
	movq	%rdx, %rbx
LBB0_36:                                ##   in Loop: Header=BB0_31 Depth=2
	leal	-1(%r13), %edx
	cmpl	$1, %r13d
	je	LBB0_38
## %bb.37:                              ##   in Loop: Header=BB0_31 Depth=2
	movl	%edx, %r13d
	cmpl	$56, %eax
	jg	LBB0_31
LBB0_38:                                ##   in Loop: Header=BB0_22 Depth=1
	cmpl	$57, %eax
	jl	LBB0_43
## %bb.39:                              ##   in Loop: Header=BB0_22 Depth=1
	movl	%edx, %r13d
	jmp	LBB0_41
LBB0_40:                                ##   in Loop: Header=BB0_22 Depth=1
	movsd	%xmm0, -80(%rbp)
	xorl	%r13d, %r13d
LBB0_41:                                ##   in Loop: Header=BB0_22 Depth=1
	movl	-64(%rbp), %eax
	cmpl	$-1, %eax
	je	LBB0_70
## %bb.42:                              ##   in Loop: Header=BB0_22 Depth=1
	incl	%eax
	movl	%eax, -64(%rbp)
	xorl	%r14d, %r14d
	xorpd	%xmm2, %xmm2
	movsd	LCPI0_1(%rip), %xmm0            ## xmm0 = mem[0],zero
	jmp	LBB0_28
LBB0_43:                                ##   in Loop: Header=BB0_22 Depth=1
	addl	$-47, %eax
	xorps	%xmm0, %xmm0
	cvtsi2sd	%eax, %xmm0
	movl	%edx, %r13d
	.p2align	4, 0x90
LBB0_44:                                ##   in Loop: Header=BB0_22 Depth=1
	ucomisd	LCPI0_7(%rip), %xmm0
	jne	LBB0_46
	jp	LBB0_46
## %bb.45:                              ##   in Loop: Header=BB0_22 Depth=1
	incl	%r14d
	cmpl	$1, %r13d
	adcl	$0, %r12d
	movq	-72(%rbp), %rsi                 ## 8-byte Reload
LBB0_59:                                ##   in Loop: Header=BB0_22 Depth=1
	leal	(%r14,%r13), %eax
	leal	(%r12,%rsi), %ecx
	cmpl	%ecx, %eax
	jae	LBB0_73
## %bb.60:                              ##   in Loop: Header=BB0_22 Depth=1
	movq	_DBL_MIN@GOTPCREL(%rip), %rax
	ucomisd	(%rax), %xmm2
	ja	LBB0_22
	jmp	LBB0_73
	.p2align	4, 0x90
LBB0_46:                                ##   in Loop: Header=BB0_22 Depth=1
	movq	-72(%rbp), %rsi                 ## 8-byte Reload
	testl	%r14d, %r14d
	je	LBB0_27
LBB0_47:                                ##   in Loop: Header=BB0_22 Depth=1
	testb	$1, %r14b
	jne	LBB0_49
## %bb.48:                              ##   in Loop: Header=BB0_22 Depth=1
                                        ## implicit-def: $rax
	movl	%r14d, %ecx
	cmpl	$1, %r14d
	jne	LBB0_63
	jmp	LBB0_54
LBB0_49:                                ##   in Loop: Header=BB0_22 Depth=1
	movl	-64(%rbp), %eax
	cmpl	$-1, %eax
	je	LBB0_53
## %bb.50:                              ##   in Loop: Header=BB0_22 Depth=1
	testl	%eax, %eax
	jne	LBB0_52
## %bb.51:                              ##   in Loop: Header=BB0_22 Depth=1
	movl	$46, (%rbx)
	addq	$4, %rbx
	decl	%r15d
	movl	-64(%rbp), %eax
LBB0_52:                                ##   in Loop: Header=BB0_22 Depth=1
	decl	%eax
	movl	%eax, -64(%rbp)
LBB0_53:                                ##   in Loop: Header=BB0_22 Depth=1
	movl	$48, (%rbx)
	addq	$4, %rbx
	leal	-1(%r14), %ecx
	movq	%rbx, %rax
	cmpl	$1, %r14d
	jne	LBB0_63
	jmp	LBB0_54
	.p2align	4, 0x90
LBB0_61:                                ##   in Loop: Header=BB0_63 Depth=2
	decl	%edx
	movl	%edx, -64(%rbp)
LBB0_62:                                ##   in Loop: Header=BB0_63 Depth=2
	movl	$48, (%rax)
	movq	%rax, %rbx
	addq	$4, %rbx
	addl	$-2, %ecx
	je	LBB0_28
LBB0_63:                                ##   Parent Loop BB0_22 Depth=1
                                        ## =>  This Inner Loop Header: Depth=2
	movl	-64(%rbp), %eax
	cmpl	$-1, %eax
	je	LBB0_67
## %bb.64:                              ##   in Loop: Header=BB0_63 Depth=2
	testl	%eax, %eax
	jne	LBB0_66
## %bb.65:                              ##   in Loop: Header=BB0_63 Depth=2
	movl	$46, (%rbx)
	addq	$4, %rbx
	decl	%r15d
	movl	-64(%rbp), %eax
LBB0_66:                                ##   in Loop: Header=BB0_63 Depth=2
	decl	%eax
	movl	%eax, -64(%rbp)
LBB0_67:                                ##   in Loop: Header=BB0_63 Depth=2
	leaq	4(%rbx), %rax
	movl	$48, (%rbx)
	movl	-64(%rbp), %edx
	cmpl	$-1, %edx
	je	LBB0_62
## %bb.68:                              ##   in Loop: Header=BB0_63 Depth=2
	testl	%edx, %edx
	jne	LBB0_61
## %bb.69:                              ##   in Loop: Header=BB0_63 Depth=2
	movl	$46, 4(%rbx)
	addq	$8, %rbx
	decl	%r15d
	movl	-64(%rbp), %edx
	movq	%rbx, %rax
	jmp	LBB0_61
LBB0_70:                                ##   in Loop: Header=BB0_22 Depth=1
	leaq	-4(%rbx), %rax
	xorl	%r14d, %r14d
	xorpd	%xmm2, %xmm2
	cmpl	$46, -4(%rbx)
	jne	LBB0_72
## %bb.71:                              ##   in Loop: Header=BB0_22 Depth=1
	incl	%r15d
	movl	$1, -64(%rbp)
LBB0_72:                                ##   in Loop: Header=BB0_22 Depth=1
	movsd	LCPI0_1(%rip), %xmm0            ## xmm0 = mem[0],zero
	jmp	LBB0_54
LBB0_73:
	movl	-64(%rbp), %eax
	leal	1(%rax), %ecx
	cmpl	$3, %ecx
	ja	LBB0_79
## %bb.74:
	leal	-1(%rax), %ecx
	movl	%ecx, -64(%rbp)
	testl	%eax, %eax
	jle	LBB0_82
## %bb.75:
	movq	%rbx, %rax
	.p2align	4, 0x90
LBB0_76:                                ## =>This Inner Loop Header: Depth=1
	movl	$48, (%rax)
	addq	$4, %rax
	movl	-64(%rbp), %ecx
	leal	-1(%rcx), %edx
	movl	%edx, -64(%rbp)
	testl	%ecx, %ecx
	jg	LBB0_76
LBB0_77:
	movl	$0, (%rax)
	jmp	LBB0_83
LBB0_78:
	movapd	LCPI0_6(%rip), %xmm0            ## xmm0 = [105,110,102,0]
	movupd	%xmm0, (%rbx)
	jmp	LBB0_83
LBB0_79:
	leaq	4(%rbx), %rax
	movl	$69, (%rbx)
	notl	%r13d
	addl	%r13d, %r15d
	movl	-64(%rbp), %esi
	testl	%esi, %esi
	js	LBB0_85
## %bb.80:
	jne	LBB0_86
## %bb.81:
	testl	%r15d, %r15d
	jne	LBB0_77
	jmp	LBB0_96
LBB0_82:
	movq	%rbx, %rax
	movl	$0, (%rbx)
LBB0_83:
	movq	___stack_chk_guard@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	cmpq	-48(%rbp), %rax
	jne	LBB0_106
## %bb.84:
	addq	$72, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
LBB0_85:
	movl	$45, 4(%rbx)
	addq	$8, %rbx
	decl	%r15d
	negl	%esi
	movq	%rbx, %rax
LBB0_86:
	xorl	%edx, %edx
	movl	$3435973837, %r8d               ## imm = 0xCCCCCCCD
	.p2align	4, 0x90
LBB0_87:                                ## =>This Inner Loop Header: Depth=1
	movl	%esi, %edi
	imulq	%r8, %rdi
	shrq	$35, %rdi
	leal	(%rdi,%rdi), %ebx
	leal	(%rbx,%rbx,4), %ebx
	movl	%esi, %ecx
	subl	%ebx, %ecx
	orb	$48, %cl
	movl	%edx, %ebx
	incl	%edx
	movb	%cl, -58(%rbp,%rbx)
	cmpl	$9, %esi
	movl	%edi, %esi
	ja	LBB0_87
## %bb.88:
	cmpl	%edx, %r15d
	jbe	LBB0_96
## %bb.89:
	testl	%edx, %edx
	je	LBB0_77
## %bb.90:
	movl	%edx, %ecx
	cmpl	$8, %edx
	jb	LBB0_102
## %bb.91:
	leaq	(%rcx,%rbp), %rdx
	addq	$-58, %rdx
	cmpq	%rax, %rdx
	jbe	LBB0_93
## %bb.92:
	leaq	(%rax,%rcx,4), %rdx
	leaq	-58(%rbp), %rsi
	cmpq	%rdx, %rsi
	jb	LBB0_102
LBB0_93:
	movl	%ecx, %r8d
	andl	$-8, %r8d
	leaq	-8(%r8), %rdx
	movq	%rdx, %r9
	shrq	$3, %r9
	incq	%r9
	testq	%rdx, %rdx
	je	LBB0_97
## %bb.94:
	leaq	(%rcx,%rbp), %rbx
	addq	$-62, %rbx
	movl	%ecx, %edx
	andl	$-8, %edx
	addq	$-8, %rdx
	shrq	$3, %rdx
	incq	%rdx
	andq	$-2, %rdx
	negq	%rdx
	xorl	%esi, %esi
	movdqa	LCPI0_5(%rip), %xmm0            ## xmm0 = <3,2,1,0,u,u,u,u,u,u,u,u,u,u,u,u>
	xorl	%edi, %edi
LBB0_95:                                ## =>This Inner Loop Header: Depth=1
	movd	(%rbx,%rsi,8), %xmm1            ## xmm1 = mem[0],zero,zero,zero
	pshufb	%xmm0, %xmm1
	movd	-4(%rbx,%rsi,8), %xmm2          ## xmm2 = mem[0],zero,zero,zero
	pshufb	%xmm0, %xmm2
	pmovsxbd	%xmm1, %xmm1
	pmovsxbd	%xmm2, %xmm2
	movdqu	%xmm1, (%rax,%rdi,4)
	movdqu	%xmm2, 16(%rax,%rdi,4)
	movd	-8(%rbx,%rsi,8), %xmm1          ## xmm1 = mem[0],zero,zero,zero
	pshufb	%xmm0, %xmm1
	movd	-12(%rbx,%rsi,8), %xmm2         ## xmm2 = mem[0],zero,zero,zero
	pshufb	%xmm0, %xmm2
	pmovsxbd	%xmm1, %xmm1
	pmovsxbd	%xmm2, %xmm2
	movdqu	%xmm1, 32(%rax,%rdi,4)
	movdqu	%xmm2, 48(%rax,%rdi,4)
	addq	$16, %rdi
	addq	$-2, %rsi
	cmpq	%rsi, %rdx
	jne	LBB0_95
	jmp	LBB0_98
LBB0_96:
	movl	-84(%rbp), %edi                 ## 4-byte Reload
	jmp	LBB0_1
LBB0_97:
	xorl	%edi, %edi
LBB0_98:
	testb	$1, %r9b
	je	LBB0_100
## %bb.99:
	movq	%rdi, %rdx
	notq	%rdx
	addq	%rcx, %rdx
	movd	-61(%rbp,%rdx), %xmm0           ## xmm0 = mem[0],zero,zero,zero
	movdqa	LCPI0_5(%rip), %xmm1            ## xmm1 = <3,2,1,0,u,u,u,u,u,u,u,u,u,u,u,u>
	pshufb	%xmm1, %xmm0
	movd	-65(%rbp,%rdx), %xmm2           ## xmm2 = mem[0],zero,zero,zero
	pshufb	%xmm1, %xmm2
	pmovsxbd	%xmm0, %xmm0
	pmovsxbd	%xmm2, %xmm1
	movdqu	%xmm0, (%rax,%rdi,4)
	movdqu	%xmm1, 16(%rax,%rdi,4)
LBB0_100:
	leaq	(%rax,%r8,4), %rax
	cmpq	%rcx, %r8
	je	LBB0_77
## %bb.101:
	andl	$7, %ecx
LBB0_102:
	leaq	-1(%rcx), %rdx
	movq	%rcx, %rsi
	andq	$7, %rsi
	je	LBB0_104
	.p2align	4, 0x90
LBB0_103:                               ## =>This Inner Loop Header: Depth=1
	movsbl	-59(%rbp,%rcx), %edi
	decq	%rcx
	movl	%edi, (%rax)
	addq	$4, %rax
	decq	%rsi
	jne	LBB0_103
LBB0_104:
	cmpq	$7, %rdx
	jb	LBB0_77
	.p2align	4, 0x90
LBB0_105:                               ## =>This Inner Loop Header: Depth=1
	movsbl	-59(%rbp,%rcx), %edx
	movl	%edx, (%rax)
	movsbl	-60(%rbp,%rcx), %edx
	movl	%edx, 4(%rax)
	movsbl	-61(%rbp,%rcx), %edx
	movl	%edx, 8(%rax)
	movsbl	-62(%rbp,%rcx), %edx
	movl	%edx, 12(%rax)
	movsbl	-63(%rbp,%rcx), %edx
	movl	%edx, 16(%rax)
	movsbl	-64(%rbp,%rcx), %edx
	movl	%edx, 20(%rax)
	movsbl	-65(%rbp,%rcx), %edx
	movl	%edx, 24(%rax)
	movsbl	-66(%rbp,%rcx), %edx
	movl	%edx, 28(%rax)
	addq	$32, %rax
	addq	$-8, %rcx
	jne	LBB0_105
	jmp	LBB0_77
LBB0_106:
	callq	___stack_chk_fail
	.cfi_endproc
                                        ## -- End function
	.comm	_DBL_DIG,4,2                    ## @DBL_DIG
	.comm	_DBL_MIN,8,3                    ## @DBL_MIN
	.comm	_DBL_MAX,8,3                    ## @DBL_MAX
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"ASCII conversion buffer too small"

.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal16,16byte_literals
	.p2align	4                               ; -- Begin function png_ascii_from_fp
lCPI0_0:
	.long	105                             ; 0x69
	.long	110                             ; 0x6e
	.long	102                             ; 0x66
	.long	0                               ; 0x0
	.section	__TEXT,__literal8,8byte_literals
	.p2align	3
lCPI0_1:
	.long	48                              ; 0x30
	.long	0                               ; 0x0
	.section	__TEXT,__text,regular,pure_instructions
	.globl	_png_ascii_from_fp
	.p2align	2
_png_ascii_from_fp:                     ; @png_ascii_from_fp
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #176
	.cfi_def_cfa_offset 176
	stp	d11, d10, [sp, #48]             ; 16-byte Folded Spill
	stp	d9, d8, [sp, #64]               ; 16-byte Folded Spill
	stp	x28, x27, [sp, #80]             ; 16-byte Folded Spill
	stp	x26, x25, [sp, #96]             ; 16-byte Folded Spill
	stp	x24, x23, [sp, #112]            ; 16-byte Folded Spill
	stp	x22, x21, [sp, #128]            ; 16-byte Folded Spill
	stp	x20, x19, [sp, #144]            ; 16-byte Folded Spill
	stp	x29, x30, [sp, #160]            ; 16-byte Folded Spill
	add	x29, sp, #160
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	.cfi_offset w19, -24
	.cfi_offset w20, -32
	.cfi_offset w21, -40
	.cfi_offset w22, -48
	.cfi_offset w23, -56
	.cfi_offset w24, -64
	.cfi_offset w25, -72
	.cfi_offset w26, -80
	.cfi_offset w27, -88
	.cfi_offset w28, -96
	.cfi_offset b8, -104
	.cfi_offset b9, -112
	.cfi_offset b10, -120
	.cfi_offset b11, -128
Lloh0:
	adrp	x8, ___stack_chk_guard@GOTPAGE
Lloh1:
	ldr	x8, [x8, ___stack_chk_guard@GOTPAGEOFF]
Lloh2:
	ldr	x8, [x8]
	str	x8, [sp, #40]
Lloh3:
	adrp	x8, _DBL_DIG@GOTPAGE
Lloh4:
	ldr	x8, [x8, _DBL_DIG@GOTPAGEOFF]
Lloh5:
	ldr	w8, [x8]
	cmp	w3, #0
	csel	w9, w8, w3, eq
	add	w10, w8, #1
	cmp	w9, w10
	csinc	w24, w9, w8, lo
	add	w8, w24, #5
	cmp	w8, w2
	b.ls	LBB0_3
LBB0_1:
	ldr	x8, [sp, #40]
Lloh6:
	adrp	x9, ___stack_chk_guard@GOTPAGE
Lloh7:
	ldr	x9, [x9, ___stack_chk_guard@GOTPAGEOFF]
Lloh8:
	ldr	x9, [x9]
	cmp	x9, x8
	b.ne	LBB0_86
; %bb.2:
Lloh9:
	adrp	x1, l_.str@PAGE
Lloh10:
	add	x1, x1, l_.str@PAGEOFF
	ldp	x29, x30, [sp, #160]            ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #144]            ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #128]            ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #112]            ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #96]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #80]             ; 16-byte Folded Reload
	ldp	d9, d8, [sp, #64]               ; 16-byte Folded Reload
	ldp	d11, d10, [sp, #48]             ; 16-byte Folded Reload
	add	sp, sp, #176
	b	_png_error
LBB0_3:
	mov	x21, x2
	fmov	d8, d0
	mov	x20, x1
	fcmp	d0, #0.0
	b.pl	LBB0_5
; %bb.4:
	fneg	d8, d8
	mov	w8, #45
	str	w8, [x20], #4
	sub	w21, w21, #1
LBB0_5:
Lloh11:
	adrp	x25, _DBL_MIN@GOTPAGE
Lloh12:
	ldr	x25, [x25, _DBL_MIN@GOTPAGEOFF]
	ldr	d0, [x25]
Lloh13:
	adrp	x19, _DBL_MAX@GOTPAGE
Lloh14:
	ldr	x19, [x19, _DBL_MAX@GOTPAGEOFF]
	ldr	d1, [x19]
	fcmp	d8, d0
	fccmp	d8, d1, #2, ge
	b.ls	LBB0_8
; %bb.6:
	fcmp	d8, d0
	b.ge	LBB0_17
; %bb.7:
Lloh15:
	adrp	x8, lCPI0_1@PAGE
Lloh16:
	ldr	d0, [x8, lCPI0_1@PAGEOFF]
	str	d0, [x20]
	b	LBB0_79
LBB0_8:
	str	w0, [sp, #12]                   ; 4-byte Folded Spill
	add	x0, sp, #24
	fmov	d0, d8
	bl	_frexp
	ldr	w8, [sp, #24]
	mov	w9, #77
	mul	w8, w8, w9
	asr	w22, w8, #8
	mov	x0, x22
	bl	_png_pow10
LBB0_9:                                 ; =>This Inner Loop Header: Depth=1
	fmov	d9, d0
	ldr	d0, [x25]
	fcmp	d9, d8
	fccmp	d9, d0, #8, pl
	b.pl	LBB0_12
; %bb.10:                               ;   in Loop: Header=BB0_9 Depth=1
	add	w23, w22, #1
	mov	x0, x23
	bl	_png_pow10
	ldr	d1, [x19]
	fcmp	d0, d1
	b.hi	LBB0_12
; %bb.11:                               ;   in Loop: Header=BB0_9 Depth=1
	mov	x22, x23
	b	LBB0_9
LBB0_12:
	fdiv	d0, d8, d9
	fmov	d1, #1.00000000
	fcmp	d0, d1
	b.lt	LBB0_15
; %bb.13:
	fmov	d2, #10.00000000
LBB0_14:                                ; =>This Inner Loop Header: Depth=1
	fdiv	d0, d0, d2
	add	w22, w22, #1
	fcmp	d0, d1
	b.ge	LBB0_14
LBB0_15:
	str	w22, [sp, #24]
	cmn	w22, #2
	b.lo	LBB0_18
; %bb.16:
	neg	w28, w22
	str	wzr, [sp, #24]
	b	LBB0_19
LBB0_17:
Lloh17:
	adrp	x8, lCPI0_0@PAGE
Lloh18:
	ldr	q0, [x8, lCPI0_0@PAGEOFF]
	str	q0, [x20]
	b	LBB0_79
LBB0_18:
	mov	w28, #0
LBB0_19:
	mov	w22, #0
	fmov	d8, #10.00000000
	mov	w23, #48
	mov	w26, #46
	fmov	d9, #0.50000000
	fmov	d10, #9.00000000
	mov	x19, x28
LBB0_20:                                ; =>This Loop Header: Depth=1
                                        ;     Child Loop BB0_29 Depth 2
                                        ;     Child Loop BB0_42 Depth 2
	fmul	d0, d0, d8
	add	w27, w28, #1
	add	w8, w27, w22
	add	w9, w19, w24
	cmp	w8, w9
	b.hs	LBB0_22
; %bb.21:                               ;   in Loop: Header=BB0_20 Depth=1
	add	x0, sp, #16
	bl	_modf
	ldr	d1, [sp, #16]
	b	LBB0_36
LBB0_22:                                ;   in Loop: Header=BB0_20 Depth=1
	fadd	d0, d0, d9
	frintm	d1, d0
	movi	d0, #0000000000000000
	fcmp	d1, d10
	b.le	LBB0_36
; %bb.23:                               ;   in Loop: Header=BB0_20 Depth=1
	cbz	w28, LBB0_25
; %bb.24:                               ;   in Loop: Header=BB0_20 Depth=1
	sub	w28, w28, #1
	mov	x8, #4607182418800017408
	str	x8, [sp, #16]
	cmp	w22, #0
	cset	w8, eq
	sub	w19, w19, w8
	fmov	d1, #1.00000000
	movi	d0, #0000000000000000
	b	LBB0_38
LBB0_25:                                ;   in Loop: Header=BB0_20 Depth=1
	cbz	w22, LBB0_45
; %bb.26:                               ;   in Loop: Header=BB0_20 Depth=1
	ldr	w9, [sp, #24]
	b	LBB0_29
LBB0_27:                                ;   in Loop: Header=BB0_29 Depth=2
	ldr	w8, [x20, #-8]!
	add	w21, w21, #1
	mov	w9, #1
	str	w9, [sp, #24]
	subs	w22, w22, #1
	b.eq	LBB0_34
LBB0_28:                                ;   in Loop: Header=BB0_29 Depth=2
	cmp	w8, #56
	b.le	LBB0_34
LBB0_29:                                ;   Parent Loop BB0_20 Depth=1
                                        ; =>  This Inner Loop Header: Depth=2
	mov	x10, x20
	ldr	w8, [x10, #-4]!
	cmn	w9, #1
	b.eq	LBB0_31
; %bb.30:                               ;   in Loop: Header=BB0_29 Depth=2
	add	w9, w9, #1
	str	w9, [sp, #24]
	b	LBB0_33
LBB0_31:                                ;   in Loop: Header=BB0_29 Depth=2
	cmp	w8, #46
	b.eq	LBB0_27
; %bb.32:                               ;   in Loop: Header=BB0_29 Depth=2
	mov	w9, #-1
LBB0_33:                                ;   in Loop: Header=BB0_29 Depth=2
	mov	x20, x10
	subs	w22, w22, #1
	b.ne	LBB0_28
LBB0_34:                                ;   in Loop: Header=BB0_20 Depth=1
	cmp	w8, #57
	b.ge	LBB0_46
; %bb.35:                               ;   in Loop: Header=BB0_20 Depth=1
	sub	w8, w8, #47
	scvtf	d1, w8
LBB0_36:                                ;   in Loop: Header=BB0_20 Depth=1
	fcmp	d1, #0.0
	b.ne	LBB0_38
; %bb.37:                               ;   in Loop: Header=BB0_20 Depth=1
	cmp	w22, #0
	cinc	w19, w19, eq
	mov	x28, x27
	b	LBB0_56
LBB0_38:                                ;   in Loop: Header=BB0_20 Depth=1
	cbz	w28, LBB0_51
; %bb.39:                               ;   in Loop: Header=BB0_20 Depth=1
	mov	x8, x28
	b	LBB0_42
LBB0_40:                                ;   in Loop: Header=BB0_42 Depth=2
	sub	w9, w9, #1
	str	w9, [sp, #24]
LBB0_41:                                ;   in Loop: Header=BB0_42 Depth=2
	str	w23, [x20], #4
	subs	w8, w8, #1
	b.eq	LBB0_51
LBB0_42:                                ;   Parent Loop BB0_20 Depth=1
                                        ; =>  This Inner Loop Header: Depth=2
	ldr	w9, [sp, #24]
	cmn	w9, #1
	b.eq	LBB0_41
; %bb.43:                               ;   in Loop: Header=BB0_42 Depth=2
	cbnz	w9, LBB0_40
; %bb.44:                               ;   in Loop: Header=BB0_42 Depth=2
	str	w26, [x20], #4
	sub	w21, w21, #1
	ldr	w9, [sp, #24]
	b	LBB0_40
LBB0_45:                                ;   in Loop: Header=BB0_20 Depth=1
	str	d1, [sp, #16]
LBB0_46:                                ;   in Loop: Header=BB0_20 Depth=1
	ldr	w8, [sp, #24]
	cmn	w8, #1
	b.eq	LBB0_48
; %bb.47:                               ;   in Loop: Header=BB0_20 Depth=1
	mov	w28, #0
	add	w8, w8, #1
	str	w8, [sp, #24]
	movi	d0, #0000000000000000
	fmov	d1, #1.00000000
	b	LBB0_51
LBB0_48:                                ;   in Loop: Header=BB0_20 Depth=1
	ldr	w8, [x20, #-4]!
	movi	d0, #0000000000000000
	fmov	d1, #1.00000000
	cmp	w8, #46
	b.ne	LBB0_50
; %bb.49:                               ;   in Loop: Header=BB0_20 Depth=1
	mov	w28, #0
	add	w21, w21, #1
	mov	w8, #1
	str	w8, [sp, #24]
	b	LBB0_51
LBB0_50:                                ;   in Loop: Header=BB0_20 Depth=1
	mov	w28, #0
LBB0_51:                                ;   in Loop: Header=BB0_20 Depth=1
	ldr	w8, [sp, #24]
	cmn	w8, #1
	b.eq	LBB0_55
; %bb.52:                               ;   in Loop: Header=BB0_20 Depth=1
	cbnz	w8, LBB0_54
; %bb.53:                               ;   in Loop: Header=BB0_20 Depth=1
	str	w26, [x20], #4
	sub	w21, w21, #1
	ldr	w8, [sp, #24]
LBB0_54:                                ;   in Loop: Header=BB0_20 Depth=1
	sub	w8, w8, #1
	str	w8, [sp, #24]
LBB0_55:                                ;   in Loop: Header=BB0_20 Depth=1
	fcvtzs	w8, d1
	add	w8, w8, #48
	sxtb	w8, w8
	str	w8, [x20], #4
	sub	w8, w22, w19
	add	w8, w8, w28
	add	w22, w8, #1
	mov	w28, #0
	mov	w19, #0
LBB0_56:                                ;   in Loop: Header=BB0_20 Depth=1
	add	w8, w22, w28
	add	w9, w19, w24
	cmp	w8, w9
	b.hs	LBB0_58
; %bb.57:                               ;   in Loop: Header=BB0_20 Depth=1
	ldr	d1, [x25]
	fcmp	d0, d1
	b.gt	LBB0_20
LBB0_58:
	ldr	w8, [sp, #24]
	add	w9, w8, #1
	cmp	w9, #3
	b.hi	LBB0_62
; %bb.59:
	subs	w8, w8, #1
	str	w8, [sp, #24]
	b.lt	LBB0_65
; %bb.60:
	mov	w9, #48
	mov	x8, x20
LBB0_61:                                ; =>This Inner Loop Header: Depth=1
	str	w9, [x8], #4
	ldr	w10, [sp, #24]
	sub	w11, w10, #1
	str	w11, [sp, #24]
	cmp	w10, #0
	b.gt	LBB0_61
	b	LBB0_78
LBB0_62:
	mov	w9, #69
	mov	x8, x20
	str	w9, [x8], #4
	mvn	w9, w22
	add	w10, w21, w9
	ldr	w12, [sp, #24]
	tbnz	w12, #31, LBB0_66
; %bb.63:
	cbz	w12, LBB0_77
; %bb.64:
	mov	x11, x8
	b	LBB0_67
LBB0_65:
	mov	x8, x20
	str	wzr, [x20]
	b	LBB0_79
LBB0_66:
	add	x11, x20, #8
	mov	w8, #45
	str	w8, [x20, #4]
	sub	w10, w10, #1
	neg	w12, w12
LBB0_67:
	mov	w9, #0
	mov	w8, #52429
	movk	w8, #52428, lsl #16
	mov	w13, #10
	add	x14, sp, #30
LBB0_68:                                ; =>This Inner Loop Header: Depth=1
                                        ; kill: def $w9 killed $w9 killed $x9
	umull	x15, w12, w8
	lsr	x15, x15, #35
	msub	w16, w15, w13, w12
	orr	w16, w16, #0x30
	strb	w16, [x14, w9, uxtw]
	add	w9, w9, #1
	cmp	w12, #9
	mov	x12, x15
	b.hi	LBB0_68
; %bb.69:
	cmp	w10, w9
	b.ls	LBB0_81
; %bb.70:
	cbz	w9, LBB0_82
; %bb.71:
	cmp	w9, #8
	b.lo	LBB0_74
; %bb.72:
	add	x14, sp, #30
	add	x8, x14, x9
	cmp	x8, x11
	b.ls	LBB0_83
; %bb.73:
	add	x8, x11, x9, lsl #2
	cmp	x14, x8
	b.hs	LBB0_83
LBB0_74:
	mov	x10, x9
	mov	x8, x11
LBB0_75:
	add	x9, sp, #30
	sub	x9, x9, #1
LBB0_76:                                ; =>This Inner Loop Header: Depth=1
	ldrsb	w11, [x9, x10]
	str	w11, [x8], #4
	subs	x10, x10, #1
	b.ne	LBB0_76
	b	LBB0_78
LBB0_77:
	cbz	w10, LBB0_81
LBB0_78:
	str	wzr, [x8]
LBB0_79:
	ldr	x8, [sp, #40]
Lloh19:
	adrp	x9, ___stack_chk_guard@GOTPAGE
Lloh20:
	ldr	x9, [x9, ___stack_chk_guard@GOTPAGEOFF]
Lloh21:
	ldr	x9, [x9]
	cmp	x9, x8
	b.ne	LBB0_86
; %bb.80:
	ldp	x29, x30, [sp, #160]            ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #144]            ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #128]            ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #112]            ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #96]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #80]             ; 16-byte Folded Reload
	ldp	d9, d8, [sp, #64]               ; 16-byte Folded Reload
	ldp	d11, d10, [sp, #48]             ; 16-byte Folded Reload
	add	sp, sp, #176
	ret
LBB0_81:
	ldr	w0, [sp, #12]                   ; 4-byte Folded Reload
	b	LBB0_1
LBB0_82:
	mov	x8, x11
	str	wzr, [x11]
	b	LBB0_79
LBB0_83:
	and	x12, x9, #0xfffffff8
	and	x10, x9, #0x7
	add	x8, x11, x12, lsl #2
	and	x13, x9, #0xfffffff8
	add	x11, x11, #16
	add	x14, x14, x9
	sub	x14, x14, #4
LBB0_84:                                ; =>This Inner Loop Header: Depth=1
	add	x15, x14, #3
	ld1.b	{ v0 }[0], [x15]
	add	x15, x14, #2
	ld1.b	{ v0 }[4], [x15]
	add	x15, x14, #1
	ld1.b	{ v1 }[0], [x15]
	ld1.b	{ v1 }[4], [x14]
	sub	x15, x14, #1
	ld1.b	{ v2 }[0], [x15]
	sub	x15, x14, #2
	ld1.b	{ v2 }[4], [x15]
	sub	x15, x14, #3
	ld1.b	{ v3 }[0], [x15]
	sub	x15, x14, #4
	ld1.b	{ v3 }[4], [x15]
	shl.2s	v0, v0, #24
	sshr.2s	v0, v0, #24
	shl.2s	v1, v1, #24
	sshr.2s	v1, v1, #24
	shl.2s	v2, v2, #24
	sshr.2s	v2, v2, #24
	shl.2s	v3, v3, #24
	stp	d0, d1, [x11, #-16]
	sshr.2s	v0, v3, #24
	stp	d2, d0, [x11], #32
	sub	x14, x14, #8
	sub	x13, x13, #8
	cbnz	x13, LBB0_84
; %bb.85:
	cmp	x12, x9
	b.ne	LBB0_75
	b	LBB0_78
LBB0_86:
	bl	___stack_chk_fail
	.loh AdrpLdrGotLdr	Lloh3, Lloh4, Lloh5
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpLdrGotLdr	Lloh6, Lloh7, Lloh8
	.loh AdrpAdd	Lloh9, Lloh10
	.loh AdrpLdrGot	Lloh13, Lloh14
	.loh AdrpLdrGot	Lloh11, Lloh12
	.loh AdrpLdr	Lloh15, Lloh16
	.loh AdrpLdr	Lloh17, Lloh18
	.loh AdrpLdrGotLdr	Lloh19, Lloh20, Lloh21
	.cfi_endproc
                                        ; -- End function
	.comm	_DBL_DIG,4,2                    ; @DBL_DIG
	.comm	_DBL_MIN,8,3                    ; @DBL_MIN
	.comm	_DBL_MAX,8,3                    ; @DBL_MAX
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"ASCII conversion buffer too small"

.subsections_via_symbols
