	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal16,16byte_literals
	.p2align	4                               ## -- Begin function co_reduce_mod
LCPI0_0:
	.long	2147483647                      ## 0x7fffffff
	.long	2147483647                      ## 0x7fffffff
	.long	2147483647                      ## 0x7fffffff
	.long	2147483647                      ## 0x7fffffff
	.section	__TEXT,__text,regular,pure_instructions
	.p2align	4, 0x90
_co_reduce_mod:                         ## @co_reduce_mod
	.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	$56, %rsp
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	%rdx, %r12
	movq	%rsi, %r13
	movq	24(%rbp), %rbx
	cmpq	$2, %rdx
	jb	LBB0_12
## %bb.1:
	movq	%r8, %rax
	movq	%rbx, -64(%rbp)                 ## 8-byte Spill
	movl	32(%rbp), %ebx
	movl	16(%rbp), %r10d
	movq	%r12, -72(%rbp)                 ## 8-byte Spill
	movl	(%rdi), %r12d
	movl	%r12d, %edx
	imull	%ecx, %edx
	movl	(%r13), %r14d
	movl	%r14d, %r15d
	imull	%eax, %r15d
	addl	%edx, %r15d
	imull	%r9d, %r12d
	imull	%r10d, %r14d
	addl	%r12d, %r14d
	movq	-72(%rbp), %rdx                 ## 8-byte Reload
	leaq	-1(%rdx), %r8
	movl	$1, %r11d
	cmpq	$4, %r8
	movq	%rax, -88(%rbp)                 ## 8-byte Spill
	jae	LBB0_3
## %bb.2:
	movl	%ebx, %r8d
	jmp	LBB0_11
LBB0_3:
	movl	%r15d, -48(%rbp)                ## 4-byte Spill
	movl	%r14d, -52(%rbp)                ## 4-byte Spill
	movl	%r10d, -56(%rbp)                ## 4-byte Spill
	movl	%ebx, -44(%rbp)                 ## 4-byte Spill
	leaq	(%rdi,%rdx,4), %rax
	leaq	(,%rdx,4), %r14
	addq	%r13, %r14
	movq	-64(%rbp), %rsi                 ## 8-byte Reload
	leaq	4(%rsi), %rbx
	cmpq	%rdi, %r14
	seta	%r10b
	leaq	(%rsi,%rdx,4), %r12
	cmpq	%r13, %rax
	seta	%sil
	cmpq	%rdi, %r12
	seta	%dl
	cmpq	%rax, %rbx
	setb	%r15b
	cmpq	%r13, %r12
	seta	%al
	cmpq	%r14, %rbx
	setb	%bl
	testb	%sil, %r10b
	jne	LBB0_4
## %bb.5:
	movq	%rcx, %rsi
	andb	%r15b, %dl
	jne	LBB0_6
## %bb.7:
	movq	%r8, -80(%rbp)                  ## 8-byte Spill
	andb	%bl, %al
	movq	-88(%rbp), %rax                 ## 8-byte Reload
	movq	%rsi, %rcx
	movl	-44(%rbp), %r8d                 ## 4-byte Reload
	movl	-56(%rbp), %r10d                ## 4-byte Reload
	movl	-52(%rbp), %r14d                ## 4-byte Reload
	movl	-48(%rbp), %r15d                ## 4-byte Reload
	jne	LBB0_11
## %bb.8:
	movq	%rax, %rdx
	movq	-80(%rbp), %rax                 ## 8-byte Reload
	andq	$-4, %rax
	leaq	1(%rax), %r11
	movd	%r9d, %xmm0
	pshufd	$0, %xmm0, %xmm8                ## xmm8 = xmm0[0,0,0,0]
	movd	%r10d, %xmm1
	pshufd	$0, %xmm1, %xmm9                ## xmm9 = xmm1[0,0,0,0]
	movd	%r8d, %xmm2
	pshufd	$0, %xmm2, %xmm10               ## xmm10 = xmm2[0,0,0,0]
	movd	%r14d, %xmm3
	pshufd	$0, %xmm3, %xmm11               ## xmm11 = xmm3[0,0,0,0]
	movd	%ecx, %xmm4
	pshufd	$0, %xmm4, %xmm12               ## xmm12 = xmm4[0,0,0,0]
	movd	%edx, %xmm5
	movq	-64(%rbp), %rbx                 ## 8-byte Reload
	pshufd	$0, %xmm5, %xmm5                ## xmm5 = xmm5[0,0,0,0]
	movd	%r15d, %xmm6
	pshufd	$0, %xmm6, %xmm6                ## xmm6 = xmm6[0,0,0,0]
	xorl	%r12d, %r12d
	movdqa	LCPI0_0(%rip), %xmm7            ## xmm7 = [2147483647,2147483647,2147483647,2147483647]
	.p2align	4, 0x90
LBB0_9:                                 ## =>This Inner Loop Header: Depth=1
	movdqu	4(%rdi,%r12,4), %xmm1
	movdqa	%xmm1, %xmm0
	pmulld	%xmm8, %xmm0
	movdqu	4(%r13,%r12,4), %xmm3
	movdqa	%xmm3, %xmm2
	pmulld	%xmm9, %xmm2
	paddd	%xmm0, %xmm2
	movdqu	4(%rbx,%r12,4), %xmm0
	pmulld	%xmm10, %xmm0
	movdqa	%xmm0, %xmm4
	pmulld	%xmm11, %xmm4
	paddd	%xmm2, %xmm4
	pmulld	%xmm12, %xmm1
	pmulld	%xmm5, %xmm3
	paddd	%xmm1, %xmm3
	pmulld	%xmm6, %xmm0
	paddd	%xmm3, %xmm0
	pand	%xmm7, %xmm0
	movdqu	%xmm0, (%rdi,%r12,4)
	pand	%xmm7, %xmm4
	movdqu	%xmm4, (%r13,%r12,4)
	addq	$4, %r12
	cmpq	%r12, %rax
	jne	LBB0_9
## %bb.10:
	cmpq	%rax, -80(%rbp)                 ## 8-byte Folded Reload
	movq	%rsi, %rcx
	movl	-44(%rbp), %r8d                 ## 4-byte Reload
	movl	-56(%rbp), %r10d                ## 4-byte Reload
	movl	-52(%rbp), %r14d                ## 4-byte Reload
	movq	-72(%rbp), %r12                 ## 8-byte Reload
	movl	-48(%rbp), %r15d                ## 4-byte Reload
	jne	LBB0_11
	jmp	LBB0_12
LBB0_6:
	movq	%rsi, %rcx
LBB0_4:
	movl	-44(%rbp), %r8d                 ## 4-byte Reload
	movl	-56(%rbp), %r10d                ## 4-byte Reload
	movl	-52(%rbp), %r14d                ## 4-byte Reload
	movl	-48(%rbp), %r15d                ## 4-byte Reload
	.p2align	4, 0x90
LBB0_11:                                ## =>This Inner Loop Header: Depth=1
	movl	(%rdi,%r11,4), %r12d
	movl	%r12d, %eax
	imull	%r9d, %eax
	movl	(%r13,%r11,4), %ebx
	movq	-64(%rbp), %rdx                 ## 8-byte Reload
	movl	(%rdx,%r11,4), %edx
	imull	%r8d, %edx
	movl	%edx, %esi
	imull	%r14d, %esi
	addl	%eax, %esi
	movl	%ebx, %eax
	imull	%r10d, %eax
	addl	%eax, %esi
	imull	%ecx, %r12d
	imull	%r15d, %edx
	addl	%r12d, %edx
	movq	-72(%rbp), %r12                 ## 8-byte Reload
	imull	-88(%rbp), %ebx                 ## 4-byte Folded Reload
	addl	%ebx, %edx
	andl	$2147483647, %edx               ## imm = 0x7FFFFFFF
	movl	%edx, -4(%rdi,%r11,4)
	movq	-64(%rbp), %rbx                 ## 8-byte Reload
	andl	$2147483647, %esi               ## imm = 0x7FFFFFFF
	movl	%esi, -4(%r13,%r11,4)
	incq	%r11
	cmpq	%r11, %r12
	jne	LBB0_11
LBB0_12:
	movl	$0, -4(%rdi,%r12,4)
	movl	$0, -4(%r13,%r12,4)
	movq	%r12, %rsi
	movq	%rbx, %rdx
	callq	_finish_mod
	movq	%r13, %rdi
	movq	%r12, %rsi
	movq	%rbx, %rdx
	addq	$56, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_finish_mod                     ## TAILCALL
	.cfi_endproc
                                        ## -- End function
	.comm	_M,4,2                          ## @M
	.no_dead_strip	_co_reduce_mod
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function co_reduce_mod
_co_reduce_mod:                         ; @co_reduce_mod
	.cfi_startproc
; %bb.0:
	stp	x22, x21, [sp, #-48]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 48
	stp	x20, x19, [sp, #16]             ; 16-byte Folded Spill
	stp	x29, x30, [sp, #32]             ; 16-byte Folded Spill
	add	x29, sp, #32
	.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
	mov	x19, x7
	mov	x20, x2
	mov	x21, x1
	lsl	x8, x2, #2
	cmp	x2, #2
	b.lo	LBB0_11
; %bb.1:
	ldr	w9, [x29, #16]
	ldr	w11, [x0]
	mul	w10, w11, w3
	ldr	w12, [x21]
	madd	w10, w12, w4, w10
	mul	w11, w11, w5
	madd	w11, w12, w6, w11
	sub	x12, x20, #1
	cmp	x12, #4
	b.hs	LBB0_3
; %bb.2:
	mov	w13, #1
	b	LBB0_9
LBB0_3:
	add	x13, x21, x8
	add	x15, x19, #4
	add	x16, x19, x8
	cmp	x16, x0
	add	x17, x0, x8
	ccmp	x15, x17, #2, hi
	cset	w14, lo
	cmp	x16, x21
	ccmp	x15, x13, #2, hi
	cset	w15, lo
	cmp	x17, x21
	ccmp	x13, x0, #0, hi
	mov	w13, #1
	b.hi	LBB0_9
; %bb.4:
	tbnz	w14, #0, LBB0_9
; %bb.5:
	tbnz	w15, #0, LBB0_9
; %bb.6:
	and	x14, x12, #0xfffffffffffffffc
	orr	x13, x14, #0x1
	dup.4s	v0, w5
	dup.4s	v1, w6
	dup.4s	v2, w9
	dup.4s	v3, w11
	dup.4s	v4, w3
	dup.4s	v5, w4
	add	x15, x21, #4
	add	x16, x0, #4
	add	x17, x19, #4
	mov	x1, x14
	dup.4s	v6, w10
LBB0_7:                                 ; =>This Inner Loop Header: Depth=1
	ldr	q7, [x16]
	ldr	q16, [x15]
	ldr	q17, [x17], #16
	mul.4s	v17, v17, v2
	mul.4s	v18, v17, v3
	mla.4s	v18, v7, v0
	mla.4s	v18, v16, v1
	mul.4s	v17, v17, v6
	mla.4s	v17, v7, v4
	mla.4s	v17, v16, v5
	bic.4s	v17, #128, lsl #24
	stur	q17, [x16, #-4]
	bic.4s	v18, #128, lsl #24
	stur	q18, [x15, #-4]
	add	x15, x15, #16
	add	x16, x16, #16
	subs	x1, x1, #4
	b.ne	LBB0_7
; %bb.8:
	cmp	x12, x14
	b.eq	LBB0_11
LBB0_9:
	sub	x12, x20, x13
	lsl	x15, x13, #2
	add	x13, x19, x15
	add	x14, x21, x15
	add	x15, x0, x15
LBB0_10:                                ; =>This Inner Loop Header: Depth=1
	ldr	w16, [x15]
	ldr	w17, [x14]
	ldr	w1, [x13], #4
	mul	w1, w1, w9
	mul	w2, w1, w11
	madd	w2, w16, w5, w2
	madd	w2, w17, w6, w2
	mul	w1, w1, w10
	madd	w16, w16, w3, w1
	madd	w16, w17, w4, w16
	and	w16, w16, #0x7fffffff
	stur	w16, [x15, #-4]
	and	w16, w2, #0x7fffffff
	stur	w16, [x14, #-4]
	add	x14, x14, #4
	add	x15, x15, #4
	subs	x12, x12, #1
	b.ne	LBB0_10
LBB0_11:
	sub	x8, x8, #4
	str	wzr, [x0, x8]
	str	wzr, [x21, x8]
	mov	x1, x20
	mov	x2, x19
	bl	_finish_mod
	mov	x0, x21
	mov	x1, x20
	mov	x2, x19
	ldp	x29, x30, [sp, #32]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #16]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp], #48             ; 16-byte Folded Reload
	b	_finish_mod
	.cfi_endproc
                                        ; -- End function
	.comm	_M,4,2                          ; @M
	.no_dead_strip	_co_reduce_mod
.subsections_via_symbols
