	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_png_muldiv                     ## -- Begin function png_muldiv
	.p2align	4, 0x90
_png_muldiv:                            ## @png_muldiv
	.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	%r12
	pushq	%rbx
	.cfi_offset %rbx, -48
	.cfi_offset %r12, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	testq	%rcx, %rcx
	je	LBB0_1
## %bb.2:
	movq	%rcx, %r8
	xorl	%ecx, %ecx
	testl	%esi, %esi
	je	LBB0_16
## %bb.3:
	testq	%rdx, %rdx
	je	LBB0_16
## %bb.4:
	movl	%esi, %ebx
	negl	%ebx
	cmovsl	%esi, %ebx
	movq	%rdx, %rax
	negq	%rax
	cmovsq	%rdx, %rax
	movq	%r8, %r9
	negq	%r9
	cmovsq	%r8, %r9
	movzwl	%bx, %r14d
	shrl	$16, %ebx
	movzwl	%ax, %r10d
	movl	%r10d, %ecx
	imull	%ebx, %ecx
	sarl	$16, %eax
	movl	%eax, %r15d
	imull	%r14d, %r15d
	addl	%ecx, %r15d
	imull	%ebx, %eax
	movl	%r15d, %r11d
	sarl	$16, %r11d
	addl	%eax, %r11d
	xorl	%eax, %eax
	cmpl	%r9d, %r11d
	jge	LBB0_17
## %bb.5:
	sarq	$63, %rdx
	xorl	%esi, %edx
	sarq	$63, %r8
	xorl	%edx, %r8d
	shll	$16, %r15d
	imull	%r14d, %r10d
	addl	%r15d, %r10d
	xorl	%r14d, %r14d
	movl	$31, %r12d
	movl	$1, %esi
	xorl	%r15d, %r15d
	jmp	LBB0_6
	.p2align	4, 0x90
LBB0_7:                                 ##   in Loop: Header=BB0_6 Depth=1
	xorl	%ecx, %ecx
	subl	%eax, %r10d
	setl	%cl
	subl	%ecx, %ebx
	movl	$1, %eax
	movl	%r12d, %ecx
	shll	%cl, %eax
	addl	%eax, %r15d
	movl	%ebx, %r11d
LBB0_11:                                ##   in Loop: Header=BB0_6 Depth=1
	decl	%r12d
	incl	%esi
	cmpl	$33, %esi
	je	LBB0_12
LBB0_6:                                 ## =>This Inner Loop Header: Depth=1
	movl	%r9d, %edx
	movl	%esi, %ecx
	sarl	%cl, %edx
	cmpl	$32, %esi
	cmovel	%r14d, %edx
	movl	%r9d, %eax
	movl	%r12d, %ecx
	shll	%cl, %eax
	movl	%r11d, %ebx
	subl	%edx, %ebx
	jg	LBB0_7
## %bb.8:                               ##   in Loop: Header=BB0_6 Depth=1
	jne	LBB0_11
## %bb.9:                               ##   in Loop: Header=BB0_6 Depth=1
	movl	%r10d, %ebx
	subl	%eax, %ebx
	jl	LBB0_11
## %bb.10:                              ##   in Loop: Header=BB0_6 Depth=1
	movl	$1, %eax
	movl	%r12d, %ecx
	shll	%cl, %eax
	addl	%eax, %r15d
	xorl	%r11d, %r11d
	movl	%ebx, %r10d
	jmp	LBB0_11
LBB0_1:
	xorl	%eax, %eax
	jmp	LBB0_17
LBB0_12:
	sarl	%r9d
	xorl	%eax, %eax
	cmpl	%r9d, %r10d
	setge	%al
	addl	%eax, %r15d
	movl	%r15d, %ecx
	negl	%ecx
	testl	%r8d, %r8d
	cmovnsl	%r15d, %ecx
	jns	LBB0_14
## %bb.13:
	testl	%ecx, %ecx
	jle	LBB0_16
LBB0_14:
	xorl	%eax, %eax
	testl	%r8d, %r8d
	js	LBB0_17
## %bb.15:
	testl	%ecx, %ecx
	js	LBB0_17
LBB0_16:
	movl	%ecx, (%rdi)
	movl	$1, %eax
LBB0_17:
	popq	%rbx
	popq	%r12
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_png_muldiv                     ; -- Begin function png_muldiv
	.p2align	2
_png_muldiv:                            ; @png_muldiv
	.cfi_startproc
; %bb.0:
	cbz	x3, LBB0_12
; %bb.1:
	mov	w10, #0
	cbz	w1, LBB0_10
; %bb.2:
	cbz	x2, LBB0_10
; %bb.3:
	cmp	w1, #0
	cneg	w9, w1, mi
	cmp	x2, #0
	cneg	x10, x2, mi
	cmp	x3, #0
	cneg	x8, x3, mi
	lsr	w11, w9, #16
	and	w12, w10, #0xffff
	and	w13, w9, #0xffff
	asr	w9, w10, #16
	mul	w10, w9, w13
	madd	w14, w12, w11, w10
	mul	w9, w9, w11
	add	w10, w9, w14, asr #16
	cmp	w10, w8
	b.ge	LBB0_12
; %bb.4:
	mov	w11, #0
	asr	x9, x2, #63
	eor	w9, w9, w1
	asr	x15, x3, #63
	eor	w9, w9, w15
	mul	w12, w12, w13
	add	w13, w12, w14, lsl #16
	mov	w12, #31
	mov	w14, #1
	mov	w15, #1
LBB0_5:                                 ; =>This Inner Loop Header: Depth=1
	asr	w16, w8, w15
	cmp	w15, #32
	csel	w16, wzr, w16, eq
	lsl	w17, w8, w12
	sub	w1, w13, w17
	lsl	w2, w14, w12
	add	w2, w2, w11
	cmp	w13, w17
	csel	w3, w10, wzr, lt
	csel	w1, w13, w1, lt
	csel	w4, w11, w2, lt
	subs	w5, w10, w16
	csel	w3, w10, w3, ne
	csel	w1, w13, w1, ne
	csel	w11, w11, w4, ne
	subs	w13, w13, w17
	cset	w17, lt
	sub	w17, w5, w17
	cmp	w10, w16
	csel	w10, w3, w17, le
	csel	w13, w1, w13, le
	csel	w11, w11, w2, le
	sub	w12, w12, #1
	add	w15, w15, #1
	cmp	w15, #33
	b.ne	LBB0_5
; %bb.6:
	cmp	w13, w8, asr #1
	cinc	w8, w11, ge
	cmp	w9, #0
	cneg	w10, w8, lt
	tbz	w9, #31, LBB0_8
; %bb.7:
	cmp	w10, #1
	b.lt	LBB0_10
LBB0_8:
	mov	w8, #0
	tbnz	w9, #31, LBB0_11
; %bb.9:
	tbnz	w10, #31, LBB0_11
LBB0_10:
	str	w10, [x0]
	mov	w8, #1
LBB0_11:
	mov	x0, x8
	ret
LBB0_12:
	mov	w0, #0
	ret
	.cfi_endproc
                                        ; -- End function
.subsections_via_symbols
