	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function fci_get_checksum
_fci_get_checksum:                      ## @fci_get_checksum
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
                                        ## kill: def $esi killed $esi def $rsi
	cmpl	$4, %esi
	jl	LBB0_1
## %bb.2:
	movl	%esi, %r10d
	shrl	$2, %r10d
	leal	-1(%r10), %r8d
	cmpl	$7, %r8d
	jae	LBB0_4
## %bb.3:
	movq	%rdi, %r11
	jmp	LBB0_7
LBB0_1:
	movq	%rdi, %r11
	jmp	LBB0_9
LBB0_4:
	incq	%r8
	movq	%r8, %r9
	andq	$-8, %r9
	movq	%r9, %r11
	shlq	$4, %r11
	addq	%rdi, %r11
	subl	%r9d, %r10d
	movd	%edx, %xmm8
	addq	$64, %rdi
	pxor	%xmm9, %xmm9
	movq	%r9, %rdx
	.p2align	4, 0x90
LBB0_5:                                 ## =>This Inner Loop Header: Depth=1
	movdqu	-64(%rdi), %xmm3
	movdqu	-48(%rdi), %xmm6
	movdqu	-32(%rdi), %xmm0
	movdqu	-16(%rdi), %xmm11
	movdqu	48(%rdi), %xmm10
	movdqu	32(%rdi), %xmm13
	movdqu	16(%rdi), %xmm14
	movdqu	(%rdi), %xmm2
	movdqa	%xmm3, %xmm12
	punpckldq	%xmm6, %xmm12           ## xmm12 = xmm12[0],xmm6[0],xmm12[1],xmm6[1]
	movdqa	%xmm0, %xmm4
	punpckldq	%xmm11, %xmm4           ## xmm4 = xmm4[0],xmm11[0],xmm4[1],xmm11[1]
	punpcklqdq	%xmm4, %xmm12           ## xmm12 = xmm12[0],xmm4[0]
	movdqa	%xmm2, %xmm1
	punpckldq	%xmm14, %xmm1           ## xmm1 = xmm1[0],xmm14[0],xmm1[1],xmm14[1]
	movdqa	%xmm13, %xmm7
	punpckldq	%xmm10, %xmm7           ## xmm7 = xmm7[0],xmm10[0],xmm7[1],xmm10[1]
	punpcklqdq	%xmm7, %xmm1            ## xmm1 = xmm1[0],xmm7[0]
	pshufd	$85, %xmm3, %xmm5               ## xmm5 = xmm3[1,1,1,1]
	pblendw	$12, %xmm6, %xmm5               ## xmm5 = xmm5[0,1],xmm6[2,3],xmm5[4,5,6,7]
	pblendw	$240, %xmm4, %xmm5              ## xmm5 = xmm5[0,1,2,3],xmm4[4,5,6,7]
	pshufd	$85, %xmm2, %xmm4               ## xmm4 = xmm2[1,1,1,1]
	pblendw	$12, %xmm14, %xmm4              ## xmm4 = xmm4[0,1],xmm14[2,3],xmm4[4,5,6,7]
	pblendw	$240, %xmm7, %xmm4              ## xmm4 = xmm4[0,1,2,3],xmm7[4,5,6,7]
	pshufd	$170, %xmm11, %xmm7             ## xmm7 = xmm11[2,2,2,2]
	pblendw	$63, %xmm0, %xmm7               ## xmm7 = xmm0[0,1,2,3,4,5],xmm7[6,7]
	punpckhdq	%xmm6, %xmm3            ## xmm3 = xmm3[2],xmm6[2],xmm3[3],xmm6[3]
	pblendw	$15, %xmm3, %xmm7               ## xmm7 = xmm3[0,1,2,3],xmm7[4,5,6,7]
	pshufd	$170, %xmm10, %xmm6             ## xmm6 = xmm10[2,2,2,2]
	pblendw	$63, %xmm13, %xmm6              ## xmm6 = xmm13[0,1,2,3,4,5],xmm6[6,7]
	punpckhdq	%xmm14, %xmm2           ## xmm2 = xmm2[2],xmm14[2],xmm2[3],xmm14[3]
	pblendw	$15, %xmm2, %xmm6               ## xmm6 = xmm2[0,1,2,3],xmm6[4,5,6,7]
	punpckhdq	%xmm11, %xmm0           ## xmm0 = xmm0[2],xmm11[2],xmm0[3],xmm11[3]
	punpckhqdq	%xmm0, %xmm3            ## xmm3 = xmm3[1],xmm0[1]
	punpckhdq	%xmm10, %xmm13          ## xmm13 = xmm13[2],xmm10[2],xmm13[3],xmm10[3]
	punpckhqdq	%xmm13, %xmm2           ## xmm2 = xmm2[1],xmm13[1]
	pslld	$8, %xmm5
	por	%xmm12, %xmm5
	pslld	$8, %xmm4
	por	%xmm1, %xmm4
	pslld	$16, %xmm7
	pslld	$16, %xmm6
	pslld	$24, %xmm3
	por	%xmm7, %xmm3
	por	%xmm5, %xmm3
	pxor	%xmm3, %xmm8
	pslld	$24, %xmm2
	por	%xmm6, %xmm2
	por	%xmm4, %xmm2
	pxor	%xmm2, %xmm9
	subq	$-128, %rdi
	addq	$-8, %rdx
	jne	LBB0_5
## %bb.6:
	pxor	%xmm8, %xmm9
	pshufd	$238, %xmm9, %xmm0              ## xmm0 = xmm9[2,3,2,3]
	pxor	%xmm9, %xmm0
	pshufd	$85, %xmm0, %xmm1               ## xmm1 = xmm0[1,1,1,1]
	pxor	%xmm0, %xmm1
	movd	%xmm1, %edx
	cmpq	%r9, %r8
	je	LBB0_9
LBB0_7:
	incl	%r10d
	.p2align	4, 0x90
LBB0_8:                                 ## =>This Inner Loop Header: Depth=1
	movl	4(%r11), %edi
	movl	8(%r11), %eax
	shll	$8, %edi
	orl	(%r11), %edi
	shll	$16, %eax
	movl	12(%r11), %ecx
	addq	$16, %r11
	shll	$24, %ecx
	orl	%eax, %ecx
	orl	%edi, %ecx
	xorl	%ecx, %edx
	decl	%r10d
	cmpl	$1, %r10d
	ja	LBB0_8
LBB0_9:
	leal	3(%rsi), %eax
	testl	%esi, %esi
	cmovnsl	%esi, %eax
	andl	$-4, %eax
	subl	%eax, %esi
	xorl	%eax, %eax
	cmpl	$1, %esi
	je	LBB0_14
## %bb.10:
	cmpl	$2, %esi
	je	LBB0_13
## %bb.11:
	cmpl	$3, %esi
	jne	LBB0_15
## %bb.12:
	movl	(%r11), %eax
	addq	$4, %r11
	shll	$16, %eax
LBB0_13:
	movl	(%r11), %ecx
	addq	$4, %r11
	shll	$8, %ecx
	orl	%ecx, %eax
LBB0_14:
	orl	(%r11), %eax
LBB0_15:
	xorl	%edx, %eax
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.no_dead_strip	_fci_get_checksum
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function fci_get_checksum
_fci_get_checksum:                      ; @fci_get_checksum
	.cfi_startproc
; %bb.0:
	stp	d11, d10, [sp, #-32]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 32
	stp	d9, d8, [sp, #16]               ; 16-byte Folded Spill
	.cfi_offset b8, -8
	.cfi_offset b9, -16
	.cfi_offset b10, -24
	.cfi_offset b11, -32
	cmp	w1, #4
	b.lt	LBB0_9
; %bb.1:
	lsr	w10, w1, #2
	sub	w9, w10, #1
	add	x8, x0, w9, uxtw #4
	add	x8, x8, #16
	cmp	w9, #15
	b.hs	LBB0_3
; %bb.2:
	mov	x9, x0
	b	LBB0_6
LBB0_3:
	add	x11, x9, #1
	and	x12, x11, #0x1fffffff0
	add	x9, x0, x12, lsl #4
	sub	w10, w10, w12
	movi.2d	v0, #0000000000000000
	movi.2d	v1, #0000000000000000
	mov.s	v1[0], w2
	add	x13, x0, #128
	mov	x14, x12
	movi.2d	v2, #0000000000000000
	movi.2d	v3, #0000000000000000
LBB0_4:                                 ; =>This Inner Loop Header: Depth=1
	sub	x15, x13, #128
	sub	x16, x13, #64
	ld4.4s	{ v4, v5, v6, v7 }, [x15]
	ld4.4s	{ v16, v17, v18, v19 }, [x16]
	mov	x15, x13
	ld4.4s	{ v20, v21, v22, v23 }, [x15], #64
	ld4.4s	{ v24, v25, v26, v27 }, [x15]
	shl.4s	v28, v5, #8
	shl.4s	v29, v17, #8
	shl.4s	v30, v21, #8
	shl.4s	v31, v25, #8
	orr.16b	v28, v28, v4
	orr.16b	v29, v29, v16
	orr.16b	v30, v30, v20
	orr.16b	v31, v31, v24
	shl.4s	v8, v6, #16
	shl.4s	v9, v18, #16
	shl.4s	v10, v22, #16
	shl.4s	v11, v26, #16
	orr.16b	v28, v28, v8
	orr.16b	v29, v29, v9
	orr.16b	v30, v30, v10
	orr.16b	v31, v31, v11
	shl.4s	v4, v7, #24
	shl.4s	v5, v19, #24
	shl.4s	v6, v23, #24
	shl.4s	v7, v27, #24
	orr.16b	v4, v28, v4
	orr.16b	v5, v29, v5
	orr.16b	v6, v30, v6
	orr.16b	v7, v31, v7
	eor.16b	v1, v4, v1
	eor.16b	v0, v5, v0
	eor.16b	v2, v6, v2
	eor.16b	v3, v7, v3
	add	x13, x13, #256
	subs	x14, x14, #16
	b.ne	LBB0_4
; %bb.5:
	eor.16b	v0, v0, v1
	eor3.16b	v0, v2, v0, v3
	ext.16b	v1, v0, v0, #8
	eor.8b	v0, v0, v1
	mov.s	w13, v0[1]
	fmov	w14, s0
	eor	w2, w14, w13
	cmp	x11, x12
	b.eq	LBB0_8
LBB0_6:
	add	w10, w10, #1
LBB0_7:                                 ; =>This Inner Loop Header: Depth=1
	ldp	w11, w12, [x9]
	orr	w11, w11, w12, lsl #8
	ldp	w12, w13, [x9, #8]
	orr	w11, w11, w12, lsl #16
	orr	w11, w11, w13, lsl #24
	eor	w2, w11, w2
	sub	w10, w10, #1
	add	x9, x9, #16
	cmp	w10, #1
	b.hi	LBB0_7
LBB0_8:
	mov	x0, x8
LBB0_9:
	mov	w8, #0
	negs	w9, w1
	and	w9, w9, #0x3
	and	w10, w1, #0x3
	csneg	w9, w10, w9, mi
	cmp	w9, #1
	b.eq	LBB0_14
; %bb.10:
	cmp	w9, #2
	b.eq	LBB0_13
; %bb.11:
	cmp	w9, #3
	b.ne	LBB0_15
; %bb.12:
	ldr	w8, [x0], #4
	lsl	w8, w8, #16
LBB0_13:
	ldr	w9, [x0], #4
	orr	w8, w8, w9, lsl #8
LBB0_14:
	ldr	w9, [x0]
	orr	w8, w9, w8
LBB0_15:
	eor	w0, w8, w2
	ldp	d9, d8, [sp, #16]               ; 16-byte Folded Reload
	ldp	d11, d10, [sp], #32             ; 16-byte Folded Reload
	ret
	.cfi_endproc
                                        ; -- End function
	.no_dead_strip	_fci_get_checksum
.subsections_via_symbols
