	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function reverse_mono_decorr
_reverse_mono_decorr:                   ## @reverse_mono_decorr
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	movl	(%rdi), %ecx
	movq	_MAX_TERM@GOTPCREL(%rip), %r8
	movl	(%r8), %eax
	cmpl	%eax, %ecx
	jle	LBB0_6
## %bb.1:
	movq	8(%rdi), %rax
	movl	(%rax), %edx
	testb	$1, %cl
	jne	LBB0_2
## %bb.3:
	leal	(%rdx,%rdx,2), %ecx
	subl	4(%rax), %ecx
	sarl	%ecx
	jmp	LBB0_4
LBB0_6:
	cmpl	$2, %ecx
	jl	LBB0_11
## %bb.7:
	movq	8(%rdi), %r10
	xorl	%r11d, %r11d
	movl	$1, %r9d
	.p2align	4, 0x90
LBB0_8:                                 ## =>This Inner Loop Header: Depth=1
	movl	%ecx, %edx
	decl	%edx
	decl	%eax
	andl	%eax, %r11d
	movl	%eax, %ecx
	andl	%edx, %ecx
	movslq	%ecx, %rax
	movslq	%r11d, %rdx
	movl	(%r10,%rdx,4), %esi
	xorl	(%r10,%rax,4), %esi
	movl	%esi, (%r10,%rdx,4)
	xorl	(%r10,%rax,4), %esi
	movl	%esi, (%r10,%rax,4)
	xorl	%esi, (%r10,%rdx,4)
	movl	(%rdi), %eax
	movl	%eax, %edx
	shrl	$31, %edx
	addl	%eax, %edx
	sarl	%edx
	cmpl	%edx, %r9d
	jge	LBB0_11
## %bb.9:                               ##   in Loop: Header=BB0_8 Depth=1
	incl	%r11d
	movl	(%r8), %eax
	incl	%r9d
	jmp	LBB0_8
LBB0_2:
	leal	(%rdx,%rdx), %ecx
	subl	4(%rax), %ecx
LBB0_4:
	movl	%edx, 4(%rax)
	movl	%ecx, (%rax)
	testb	$1, (%rdi)
	jne	LBB0_5
## %bb.10:
	leal	(%rcx,%rcx,2), %ecx
	subl	%edx, %ecx
	sarl	%ecx
	movl	%ecx, 4(%rax)
LBB0_11:
	popq	%rbp
	retq
LBB0_5:
	addl	%ecx, %ecx
	subl	%edx, %ecx
	movl	%ecx, 4(%rax)
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.comm	_MAX_TERM,4,2                   ## @MAX_TERM
	.no_dead_strip	_reverse_mono_decorr
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function reverse_mono_decorr
_reverse_mono_decorr:                   ; @reverse_mono_decorr
	.cfi_startproc
; %bb.0:
	ldr	w8, [x0]
Lloh0:
	adrp	x9, _MAX_TERM@GOTPAGE
Lloh1:
	ldr	x9, [x9, _MAX_TERM@GOTPAGEOFF]
	ldr	w12, [x9]
	cmp	w8, w12
	b.le	LBB0_3
; %bb.1:
	ldr	x9, [x0, #8]
	ldr	w10, [x9]
	tbnz	w8, #0, LBB0_7
; %bb.2:
	add	w8, w10, w10, lsl #1
	ldr	w11, [x9, #4]
	sub	w8, w8, w11
	asr	w8, w8, #1
	b	LBB0_8
LBB0_3:
	cmp	w8, #2
	b.lt	LBB0_12
; %bb.4:
	mov	w13, #0
	ldr	x10, [x0, #8]
	mov	w11, #1
LBB0_5:                                 ; =>This Inner Loop Header: Depth=1
	sub	w8, w8, #1
	sub	w14, w12, #1
	and	w12, w14, w13
	and	w8, w14, w8
	sbfiz	x13, x8, #2, #32
	ldr	w14, [x10, x13]
	sbfiz	x15, x12, #2, #32
	ldr	w16, [x10, x15]
	eor	w14, w16, w14
	str	w14, [x10, x15]
	ldr	w16, [x10, x13]
	eor	w14, w16, w14
	str	w14, [x10, x13]
	ldr	w13, [x10, x15]
	eor	w13, w13, w14
	str	w13, [x10, x15]
	ldr	w13, [x0]
	cmp	w13, #0
	cinc	w13, w13, lt
	cmp	w11, w13, asr #1
	b.ge	LBB0_12
; %bb.6:                                ;   in Loop: Header=BB0_5 Depth=1
	add	w13, w12, #1
	ldr	w12, [x9]
	add	w11, w11, #1
	b	LBB0_5
LBB0_7:
	lsl	w8, w10, #1
	ldr	w11, [x9, #4]
	sub	w8, w8, w11
LBB0_8:
	stp	w8, w10, [x9]
	ldrb	w11, [x0]
	tbnz	w11, #0, LBB0_10
; %bb.9:
	add	w8, w8, w8, lsl #1
	sub	w8, w8, w10
	asr	w8, w8, #1
	b	LBB0_11
LBB0_10:
	lsl	w8, w8, #1
	sub	w8, w8, w10
LBB0_11:
	str	w8, [x9, #4]
LBB0_12:
	ret
	.loh AdrpLdrGot	Lloh0, Lloh1
	.cfi_endproc
                                        ; -- End function
	.comm	_MAX_TERM,4,2                   ; @MAX_TERM
	.no_dead_strip	_reverse_mono_decorr
.subsections_via_symbols
