	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function compute_checksum
_compute_checksum:                      ## @compute_checksum
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	testl	%edx, %edx
	jle	LBB0_11
## %bb.1:
	movl	%edx, %eax
	cmpl	$8, %edx
	jae	LBB0_3
## %bb.2:
	xorl	%ecx, %ecx
	jmp	LBB0_10
LBB0_3:
	movl	%eax, %ecx
	andl	$-8, %ecx
	movd	%edi, %xmm0
	leaq	-8(%rcx), %rdx
	movq	%rdx, %r8
	shrq	$3, %r8
	incq	%r8
	testq	%rdx, %rdx
	je	LBB0_4
## %bb.5:
	movq	%r8, %rdx
	andq	$-2, %rdx
	pxor	%xmm1, %xmm1
	xorl	%edi, %edi
	.p2align	4, 0x90
LBB0_6:                                 ## =>This Inner Loop Header: Depth=1
	pmovzxbd	(%rsi,%rdi), %xmm2              ## xmm2 = mem[0],zero,zero,zero,mem[1],zero,zero,zero,mem[2],zero,zero,zero,mem[3],zero,zero,zero
	paddd	%xmm0, %xmm2
	pmovzxbd	4(%rsi,%rdi), %xmm3             ## xmm3 = mem[0],zero,zero,zero,mem[1],zero,zero,zero,mem[2],zero,zero,zero,mem[3],zero,zero,zero
	paddd	%xmm1, %xmm3
	pmovzxbd	8(%rsi,%rdi), %xmm0             ## xmm0 = mem[0],zero,zero,zero,mem[1],zero,zero,zero,mem[2],zero,zero,zero,mem[3],zero,zero,zero
	pmovzxbd	12(%rsi,%rdi), %xmm1            ## xmm1 = mem[0],zero,zero,zero,mem[1],zero,zero,zero,mem[2],zero,zero,zero,mem[3],zero,zero,zero
	paddd	%xmm2, %xmm0
	paddd	%xmm3, %xmm1
	addq	$16, %rdi
	addq	$-2, %rdx
	jne	LBB0_6
## %bb.7:
	testb	$1, %r8b
	je	LBB0_9
LBB0_8:
	pmovzxbd	(%rsi,%rdi), %xmm2              ## xmm2 = mem[0],zero,zero,zero,mem[1],zero,zero,zero,mem[2],zero,zero,zero,mem[3],zero,zero,zero
	paddd	%xmm2, %xmm0
	pmovzxbd	4(%rsi,%rdi), %xmm2             ## xmm2 = mem[0],zero,zero,zero,mem[1],zero,zero,zero,mem[2],zero,zero,zero,mem[3],zero,zero,zero
	paddd	%xmm2, %xmm1
LBB0_9:
	paddd	%xmm1, %xmm0
	pshufd	$238, %xmm0, %xmm1              ## xmm1 = xmm0[2,3,2,3]
	paddd	%xmm0, %xmm1
	pshufd	$85, %xmm1, %xmm0               ## xmm0 = xmm1[1,1,1,1]
	paddd	%xmm1, %xmm0
	movd	%xmm0, %edi
	cmpq	%rax, %rcx
	je	LBB0_11
	.p2align	4, 0x90
LBB0_10:                                ## =>This Inner Loop Header: Depth=1
	movzbl	(%rsi,%rcx), %edx
	addl	%edx, %edi
	incq	%rcx
	cmpq	%rcx, %rax
	jne	LBB0_10
LBB0_11:
	movslq	%edi, %rax
	imulq	$-2122019415, %rax, %rcx        ## imm = 0x81848DA9
	shrq	$32, %rcx
	addl	%eax, %ecx
	movl	%ecx, %edx
	shrl	$31, %edx
	sarl	$7, %ecx
	addl	%edx, %ecx
	imull	$253, %ecx, %ecx
	subl	%ecx, %eax
                                        ## kill: def $eax killed $eax killed $rax
	popq	%rbp
	retq
LBB0_4:
	pxor	%xmm1, %xmm1
	xorl	%edi, %edi
	testb	$1, %r8b
	jne	LBB0_8
	jmp	LBB0_9
	.cfi_endproc
                                        ## -- End function
	.no_dead_strip	_compute_checksum
.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 compute_checksum
lCPI0_0:
	.byte	12                              ; 0xc
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	13                              ; 0xd
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	14                              ; 0xe
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	15                              ; 0xf
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
lCPI0_1:
	.byte	0                               ; 0x0
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	1                               ; 0x1
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	2                               ; 0x2
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	3                               ; 0x3
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
lCPI0_2:
	.byte	4                               ; 0x4
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	5                               ; 0x5
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	6                               ; 0x6
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	7                               ; 0x7
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
lCPI0_3:
	.byte	8                               ; 0x8
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	9                               ; 0x9
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	10                              ; 0xa
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	11                              ; 0xb
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.section	__TEXT,__text,regular,pure_instructions
	.p2align	2
_compute_checksum:                      ; @compute_checksum
	.cfi_startproc
; %bb.0:
	cmp	w2, #1
	b.lt	LBB0_14
; %bb.1:
	mov	w8, w2
	cmp	w2, #8
	b.hs	LBB0_3
; %bb.2:
	mov	x9, #0
	b	LBB0_12
LBB0_3:
	adrp	x10, lCPI0_1@PAGE
	adrp	x11, lCPI0_2@PAGE
	cmp	w2, #32
	b.hs	LBB0_5
; %bb.4:
	mov	x9, #0
	b	LBB0_9
LBB0_5:
	and	x9, x8, #0xffffffe0
	movi.2d	v1, #0000000000000000
	movi.2d	v0, #0000000000000000
	mov.s	v0[0], w0
	add	x12, x1, #16
Lloh0:
	adrp	x13, lCPI0_0@PAGE
Lloh1:
	ldr	q2, [x13, lCPI0_0@PAGEOFF]
	ldr	q3, [x10, lCPI0_1@PAGEOFF]
	ldr	q4, [x11, lCPI0_2@PAGEOFF]
Lloh2:
	adrp	x13, lCPI0_3@PAGE
Lloh3:
	ldr	q5, [x13, lCPI0_3@PAGEOFF]
	mov	x13, x9
	movi.2d	v6, #0000000000000000
	movi.2d	v7, #0000000000000000
	movi.2d	v16, #0000000000000000
	movi.2d	v18, #0000000000000000
	movi.2d	v17, #0000000000000000
	movi.2d	v19, #0000000000000000
LBB0_6:                                 ; =>This Inner Loop Header: Depth=1
	ldp	q20, q24, [x12, #-16]
	tbl.16b	v21, { v20 }, v2
	tbl.16b	v22, { v20 }, v3
	tbl.16b	v23, { v20 }, v4
	tbl.16b	v20, { v20 }, v5
	tbl.16b	v25, { v24 }, v2
	tbl.16b	v26, { v24 }, v3
	tbl.16b	v27, { v24 }, v4
	tbl.16b	v24, { v24 }, v5
	add.4s	v6, v6, v20
	add.4s	v1, v1, v23
	add.4s	v0, v0, v22
	add.4s	v7, v7, v21
	add.4s	v17, v17, v24
	add.4s	v18, v18, v27
	add.4s	v16, v16, v26
	add.4s	v19, v19, v25
	add	x12, x12, #32
	subs	x13, x13, #32
	b.ne	LBB0_6
; %bb.7:
	add.4s	v1, v18, v1
	add.4s	v2, v19, v7
	add.4s	v0, v16, v0
	add.4s	v3, v17, v6
	add.4s	v0, v0, v3
	add.4s	v1, v1, v2
	add.4s	v0, v0, v1
	addv.4s	s0, v0
	fmov	w0, s0
	cmp	x9, x8
	b.eq	LBB0_14
; %bb.8:
	tst	x8, #0x18
	b.eq	LBB0_12
LBB0_9:
	mov	x13, x9
	and	x9, x8, #0xfffffff8
	movi.2d	v0, #0000000000000000
	movi.2d	v1, #0000000000000000
	mov.s	v1[0], w0
	add	x12, x1, x13
	sub	x13, x13, x9
	ldr	q2, [x10, lCPI0_1@PAGEOFF]
	ldr	q3, [x11, lCPI0_2@PAGEOFF]
LBB0_10:                                ; =>This Inner Loop Header: Depth=1
	ldr	d4, [x12], #8
	tbl.16b	v5, { v4 }, v2
	tbl.16b	v4, { v4 }, v3
	add.4s	v0, v0, v4
	add.4s	v1, v1, v5
	adds	x13, x13, #8
	b.ne	LBB0_10
; %bb.11:
	add.4s	v0, v1, v0
	addv.4s	s0, v0
	fmov	w0, s0
	cmp	x9, x8
	b.eq	LBB0_14
LBB0_12:
	add	x10, x1, x9
	sub	x8, x8, x9
LBB0_13:                                ; =>This Inner Loop Header: Depth=1
	ldrb	w9, [x10], #1
	add	w0, w0, w9
	subs	x8, x8, #1
	b.ne	LBB0_13
LBB0_14:
	mov	w8, #36265
	movk	w8, #33156, lsl #16
	smull	x8, w0, w8
	lsr	x8, x8, #32
	add	w8, w8, w0
	asr	w9, w8, #7
	add	w8, w9, w8, lsr #31
	mov	w9, #253
	msub	w0, w8, w9, w0
	ret
	.loh AdrpLdr	Lloh2, Lloh3
	.loh AdrpAdrp	Lloh0, Lloh2
	.loh AdrpLdr	Lloh0, Lloh1
	.cfi_endproc
                                        ; -- End function
	.no_dead_strip	_compute_checksum
.subsections_via_symbols
