	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function scan_int23
_scan_int23:                            ## @scan_int23
	.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
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movl	%ecx, %r8d
	xorps	%xmm0, %xmm0
	movups	%xmm0, 24(%rdi)
	movups	%xmm0, 8(%rdi)
	movl	(%rdi), %r9d
	movq	_WV_MONO_DATA@GOTPCREL(%rip), %rax
	testl	%r9d, (%rax)
	je	LBB0_7
## %bb.1:
	testl	%r8d, %r8d
	jle	LBB0_32
## %bb.2:
	movl	%r8d, %r15d
	movl	$-1, %r11d
	xorl	%ecx, %ecx
	xorl	%r10d, %r10d
	xorl	%r14d, %r14d
	xorl	%r13d, %r13d
	jmp	LBB0_3
	.p2align	4, 0x90
LBB0_6:                                 ##   in Loop: Header=BB0_3 Depth=1
	movl	%ebx, %eax
	sarl	$31, %eax
	xorl	%ebx, %eax
	orl	%eax, %r10d
	incq	%rcx
	cmpq	%rcx, %r15
	je	LBB0_13
LBB0_3:                                 ## =>This Inner Loop Header: Depth=1
	movl	%r13d, %eax
	movl	(%rsi,%rcx,4), %ebx
	movl	%ebx, %r13d
	andl	$1, %r13d
	negl	%r13d
	xorl	%ebx, %r13d
	orl	%eax, %r13d
	andl	%ebx, %r11d
	orl	%ebx, %r14d
	testb	$1, %r14b
	je	LBB0_6
## %bb.4:                               ##   in Loop: Header=BB0_3 Depth=1
	movl	%r11d, %eax
	andl	$1, %eax
	jne	LBB0_6
## %bb.5:                               ##   in Loop: Header=BB0_3 Depth=1
	movl	%r13d, %eax
	andl	$2, %eax
	je	LBB0_6
	jmp	LBB0_31
LBB0_7:
	testl	%r8d, %r8d
	jle	LBB0_32
## %bb.8:
	movl	%r8d, %r15d
	movl	$-1, %r11d
	xorl	%r12d, %r12d
	xorl	%r10d, %r10d
	xorl	%r14d, %r14d
	xorl	%r13d, %r13d
	jmp	LBB0_9
	.p2align	4, 0x90
LBB0_12:                                ##   in Loop: Header=BB0_9 Depth=1
	movl	%ecx, %eax
	sarl	$31, %eax
	xorl	%ecx, %eax
	orl	%eax, %r10d
	movl	%ebx, %eax
	sarl	$31, %eax
	xorl	%ebx, %eax
	orl	%eax, %r10d
	incq	%r12
	cmpq	%r12, %r15
	je	LBB0_13
LBB0_9:                                 ## =>This Inner Loop Header: Depth=1
	movl	(%rsi,%r12,4), %ecx
	movl	(%rdx,%r12,4), %ebx
	movl	%ecx, %eax
	andl	$1, %eax
	negl	%eax
	xorl	%ecx, %eax
	orl	%r13d, %eax
	movl	%ebx, %r13d
	andl	$1, %r13d
	negl	%r13d
	xorl	%ebx, %r13d
	orl	%eax, %r13d
	andl	%ecx, %r11d
	andl	%ebx, %r11d
	orl	%ecx, %r14d
	orl	%ebx, %r14d
	testb	$1, %r14b
	je	LBB0_12
## %bb.10:                              ##   in Loop: Header=BB0_9 Depth=1
	movl	%r11d, %eax
	andl	$1, %eax
	jne	LBB0_12
## %bb.11:                              ##   in Loop: Header=BB0_9 Depth=1
	movl	%r13d, %eax
	andl	$2, %eax
	je	LBB0_12
	jmp	LBB0_31
LBB0_32:
	movq	_MAG_MASK@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	notl	%eax
	andl	%eax, %r9d
	movl	%r9d, (%rdi)
	movl	$-1, %r11d
	xorl	%r14d, %r14d
	xorl	%r13d, %r13d
	jmp	LBB0_16
LBB0_13:
	movq	_MAG_MASK@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	notl	%eax
	andl	%eax, %r9d
	movl	%r9d, (%rdi)
	testl	%r10d, %r10d
	je	LBB0_16
## %bb.14:
	movq	_MAG_LSB@GOTPCREL(%rip), %r15
	movl	%r10d, %eax
	.p2align	4, 0x90
LBB0_15:                                ## =>This Inner Loop Header: Depth=1
	movzbl	(%r15), %ecx
	movl	$1, %ebx
	shll	%cl, %ebx
	addl	%ebx, %r9d
	movl	%r9d, (%rdi)
	sarl	%eax
	cmpl	$1, %r10d
	movl	%eax, %r10d
	ja	LBB0_15
LBB0_16:
	movq	_MAG_MASK@GOTPCREL(%rip), %rax
	testl	%r9d, (%rax)
	je	LBB0_31
## %bb.17:
	testb	$1, %r14b
	jne	LBB0_21
## %bb.18:
	xorl	%r10d, %r10d
	movq	_MAG_LSB@GOTPCREL(%rip), %r11
	movl	%r14d, %ebx
	.p2align	4, 0x90
LBB0_19:                                ## =>This Inner Loop Header: Depth=1
	movzbl	(%r11), %ecx
	movl	$-1, %eax
	shll	%cl, %eax
	addl	%eax, %r9d
	movl	%r9d, (%rdi)
	incq	%r10
	sarl	%ebx
	testb	$2, %r14b
	movl	%ebx, %r14d
	je	LBB0_19
## %bb.20:
	movq	%r10, 24(%rdi)
	jmp	LBB0_29
LBB0_21:
	testb	$1, %r11b
	jne	LBB0_22
## %bb.25:
	testb	$2, %r13b
	jne	LBB0_31
## %bb.26:
	leaq	8(%rdi), %r11
	xorl	%r10d, %r10d
	movq	_MAG_LSB@GOTPCREL(%rip), %r14
	movl	%r13d, %ebx
	.p2align	4, 0x90
LBB0_27:                                ## =>This Inner Loop Header: Depth=1
	movzbl	(%r14), %ecx
	movl	$-1, %eax
	shll	%cl, %eax
	addl	%eax, %r9d
	movl	%r9d, (%rdi)
	incq	%r10
	sarl	%ebx
	testb	$4, %r13b
	movl	%ebx, %r13d
	je	LBB0_27
## %bb.28:
	movq	%r10, (%r11)
	jmp	LBB0_29
LBB0_31:
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
LBB0_22:
	xorl	%r10d, %r10d
	movq	_MAG_LSB@GOTPCREL(%rip), %r14
	movl	%r11d, %ebx
	.p2align	4, 0x90
LBB0_23:                                ## =>This Inner Loop Header: Depth=1
	movzbl	(%r14), %ecx
	movl	$-1, %eax
	shll	%cl, %eax
	addl	%eax, %r9d
	movl	%r9d, (%rdi)
	incq	%r10
	sarl	%ebx
	testb	$2, %r11b
	movl	%ebx, %r11d
	jne	LBB0_23
## %bb.24:
	movq	%r10, 16(%rdi)
LBB0_29:
	movq	_WV_MONO_DATA@GOTPCREL(%rip), %rcx
	movq	_WV_INT32_DATA@GOTPCREL(%rip), %rax
	orl	(%rax), %r9d
	movl	%r9d, (%rdi)
	testl	%r9d, (%rcx)
	je	LBB0_30
## %bb.33:
	movq	%rsi, %rdi
	movl	%r8d, %esi
	movl	%r10d, %edx
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_shift_mono                     ## TAILCALL
LBB0_30:
	movq	%rsi, %rdi
	movq	%rdx, %rsi
	movl	%r8d, %edx
	movl	%r10d, %ecx
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_shift_stereo                   ## TAILCALL
	.cfi_endproc
                                        ## -- End function
	.comm	_WV_MONO_DATA,4,2               ## @WV_MONO_DATA
	.comm	_MAG_MASK,4,2                   ## @MAG_MASK
	.comm	_MAG_LSB,4,2                    ## @MAG_LSB
	.comm	_WV_INT32_DATA,4,2              ## @WV_INT32_DATA
	.no_dead_strip	_scan_int23
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function scan_int23
_scan_int23:                            ; @scan_int23
	.cfi_startproc
; %bb.0:
	stp	x20, x19, [sp, #-16]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 16
	.cfi_offset w19, -8
	.cfi_offset w20, -16
	movi.2d	v0, #0000000000000000
	mov	x8, x0
	str	q0, [x8, #8]!
	stur	q0, [x0, #24]
	ldr	w14, [x0]
Lloh0:
	adrp	x9, _WV_MONO_DATA@GOTPAGE
Lloh1:
	ldr	x9, [x9, _WV_MONO_DATA@GOTPAGEOFF]
	ldr	w10, [x9]
Lloh2:
	adrp	x13, _MAG_MASK@GOTPAGE
Lloh3:
	ldr	x13, [x13, _MAG_MASK@GOTPAGEOFF]
	tst	w10, w14
	b.eq	LBB0_6
; %bb.1:
	cmp	w3, #1
	b.lt	LBB0_11
; %bb.2:
	mov	w15, #0
	mov	w11, #0
	mov	w10, #0
	mov	w12, #-1
	mov	x16, x1
	mov	w17, w3
	b	LBB0_4
LBB0_3:                                 ;   in Loop: Header=BB0_4 Depth=1
	eor	w4, w4, w4, asr #31
	orr	w15, w4, w15
	add	x16, x16, #4
	subs	x17, x17, #1
	b.eq	LBB0_12
LBB0_4:                                 ; =>This Inner Loop Header: Depth=1
	ldr	w4, [x16]
	and	w5, w4, #0x1
	neg	w5, w5
	eor	w5, w4, w5
	orr	w10, w5, w10
	and	w12, w4, w12
	orr	w11, w4, w11
	tbz	w11, #0, LBB0_3
; %bb.5:                                ;   in Loop: Header=BB0_4 Depth=1
	and	w5, w12, #0x1
	and	w6, w10, #0x2
	cmp	w5, #0
	ccmp	w6, #0, #4, eq
	b.eq	LBB0_3
	b	LBB0_25
LBB0_6:
	cmp	w3, #1
	b.lt	LBB0_11
; %bb.7:
	mov	w15, #0
	mov	w11, #0
	mov	w10, #0
	mov	w12, #-1
	mov	x16, x1
	mov	x17, x2
	mov	w4, w3
	b	LBB0_9
LBB0_8:                                 ;   in Loop: Header=BB0_9 Depth=1
	eor	w6, w6, w6, asr #31
	eor	w5, w5, w5, asr #31
	orr	w15, w6, w15
	orr	w15, w15, w5
	add	x17, x17, #4
	add	x16, x16, #4
	subs	x4, x4, #1
	b.eq	LBB0_12
LBB0_9:                                 ; =>This Inner Loop Header: Depth=1
	ldr	w6, [x16]
	ldr	w5, [x17]
	and	w7, w6, #0x1
	neg	w7, w7
	eor	w7, w6, w7
	orr	w10, w7, w10
	and	w7, w5, #0x1
	neg	w7, w7
	eor	w7, w5, w7
	orr	w10, w10, w7
	and	w12, w6, w12
	and	w12, w12, w5
	orr	w11, w6, w11
	orr	w11, w11, w5
	tbz	w11, #0, LBB0_8
; %bb.10:                               ;   in Loop: Header=BB0_9 Depth=1
	and	w7, w12, #0x1
	and	w19, w10, #0x2
	cmp	w7, #0
	ccmp	w19, #0, #4, eq
	b.eq	LBB0_8
	b	LBB0_25
LBB0_11:
	mov	w11, #0
	mov	w10, #0
	ldr	w12, [x13]
	bic	w14, w14, w12
	str	w14, [x0]
	mov	w12, #-1
	b	LBB0_15
LBB0_12:
	ldr	w16, [x13]
	bic	w14, w14, w16
	str	w14, [x0]
	cbz	w15, LBB0_15
; %bb.13:
Lloh4:
	adrp	x16, _MAG_LSB@GOTPAGE
Lloh5:
	ldr	x16, [x16, _MAG_LSB@GOTPAGEOFF]
	mov	w17, #1
LBB0_14:                                ; =>This Inner Loop Header: Depth=1
	ldr	w4, [x16]
	lsl	w4, w17, w4
	add	w14, w14, w4
	str	w14, [x0]
	asr	w4, w15, #1
	cmp	w15, #1
	mov	x15, x4
	b.hi	LBB0_14
LBB0_15:
	ldr	w13, [x13]
	tst	w13, w14
	b.eq	LBB0_25
; %bb.16:
	tbnz	w11, #0, LBB0_20
; %bb.17:
	mov	x8, #0
Lloh6:
	adrp	x10, _MAG_LSB@GOTPAGE
Lloh7:
	ldr	x10, [x10, _MAG_LSB@GOTPAGEOFF]
	mov	w12, #-1
LBB0_18:                                ; =>This Inner Loop Header: Depth=1
	mov	x13, x11
	ldr	w11, [x10]
	lsl	w11, w12, w11
	add	w14, w11, w14
	str	w14, [x0]
	add	x8, x8, #1
	asr	w11, w13, #1
	tbz	w13, #1, LBB0_18
; %bb.19:
	str	x8, [x0, #24]
	b	LBB0_29
LBB0_20:
	tbnz	w12, #0, LBB0_26
; %bb.21:
	tbnz	w10, #1, LBB0_25
; %bb.22:
	mov	x11, #0
Lloh8:
	adrp	x12, _MAG_LSB@GOTPAGE
Lloh9:
	ldr	x12, [x12, _MAG_LSB@GOTPAGEOFF]
	mov	w13, #-1
LBB0_23:                                ; =>This Inner Loop Header: Depth=1
	mov	x15, x10
	ldr	w10, [x12]
	lsl	w10, w13, w10
	add	w14, w10, w14
	str	w14, [x0]
	add	x11, x11, #1
	asr	w10, w15, #1
	tbz	w15, #2, LBB0_23
; %bb.24:
	str	x11, [x8]
	mov	x8, x11
	b	LBB0_29
LBB0_25:
	ldp	x20, x19, [sp], #16             ; 16-byte Folded Reload
	ret
LBB0_26:
	mov	x8, #0
Lloh10:
	adrp	x10, _MAG_LSB@GOTPAGE
Lloh11:
	ldr	x10, [x10, _MAG_LSB@GOTPAGEOFF]
	mov	w11, #-1
LBB0_27:                                ; =>This Inner Loop Header: Depth=1
	mov	x13, x12
	ldr	w12, [x10]
	lsl	w12, w11, w12
	add	w14, w12, w14
	str	w14, [x0]
	add	x8, x8, #1
	asr	w12, w13, #1
	tbnz	w13, #1, LBB0_27
; %bb.28:
	str	x8, [x0, #16]
                                        ; kill: def $w8 killed $w8 killed $x8 def $x8
LBB0_29:
Lloh12:
	adrp	x10, _WV_INT32_DATA@GOTPAGE
Lloh13:
	ldr	x10, [x10, _WV_INT32_DATA@GOTPAGEOFF]
Lloh14:
	ldr	w10, [x10]
	orr	w10, w14, w10
	str	w10, [x0]
	ldr	w9, [x9]
	mov	x0, x1
	tst	w9, w10
	b.eq	LBB0_31
; %bb.30:
	mov	x1, x3
	mov	x2, x8
	ldp	x20, x19, [sp], #16             ; 16-byte Folded Reload
	b	_shift_mono
LBB0_31:
	mov	x1, x2
	mov	x2, x3
	mov	x3, x8
	ldp	x20, x19, [sp], #16             ; 16-byte Folded Reload
	b	_shift_stereo
	.loh AdrpLdrGot	Lloh2, Lloh3
	.loh AdrpLdrGot	Lloh0, Lloh1
	.loh AdrpLdrGot	Lloh4, Lloh5
	.loh AdrpLdrGot	Lloh6, Lloh7
	.loh AdrpLdrGot	Lloh8, Lloh9
	.loh AdrpLdrGot	Lloh10, Lloh11
	.loh AdrpLdrGotLdr	Lloh12, Lloh13, Lloh14
	.cfi_endproc
                                        ; -- End function
	.comm	_WV_MONO_DATA,4,2               ; @WV_MONO_DATA
	.comm	_MAG_MASK,4,2                   ; @MAG_MASK
	.comm	_MAG_LSB,4,2                    ; @MAG_LSB
	.comm	_WV_INT32_DATA,4,2              ; @WV_INT32_DATA
	.no_dead_strip	_scan_int23
.subsections_via_symbols
