	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function raid_ctr
_raid_ctr:                              ## @raid_ctr
	.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	$136, %rsp
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	%rdi, %r12
	movq	___stack_chk_guard@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	movq	%rax, -48(%rbp)
	movl	%esi, -136(%rbp)
	movq	%rdx, -128(%rbp)
	movl	$0, -120(%rbp)
	movq	$0, -96(%rbp)
	leaq	L_.str(%rip), %rax
	movq	%rax, -88(%rbp)
	movl	$0, -80(%rbp)
	movabsq	$1090921693185, %rax            ## imm = 0xFE00000001
	movq	%rax, -72(%rbp)
	leaq	L_.str.1(%rip), %rax
	movq	%rax, -64(%rbp)
	movl	$0, -56(%rbp)
	leaq	-136(%rbp), %rdi
	callq	_dm_shift_arg
	testq	%rax, %rax
	je	LBB0_7
## %bb.1:
	movq	%rax, %rdi
	callq	_get_raid_type
	testq	%rax, %rax
	je	LBB0_8
## %bb.2:
	movq	%rax, %rbx
	leaq	-96(%rbp), %rdi
	leaq	-136(%rbp), %rsi
	leaq	-112(%rbp), %rdx
	movq	%r12, %rcx
	callq	_dm_read_arg_group
	testq	%rax, %rax
	jne	LBB0_10
## %bb.3:
	leaq	-72(%rbp), %r14
	movq	-120(%rbp), %rax
	movq	%rax, -160(%rbp)
	movups	-136(%rbp), %xmm0
	movaps	%xmm0, -176(%rbp)
	movl	-112(%rbp), %esi
	leaq	-176(%rbp), %r15
	movq	%r15, %rdi
	callq	_dm_consume_args
	movl	-160(%rbp), %eax
	movl	%eax, %ecx
	decl	%ecx
	shrl	$31, %ecx
	addl	%ecx, %eax
	decl	%eax
	sarl	%eax
	movl	%eax, -56(%rbp)
	leaq	-108(%rbp), %rdx
	movq	%r14, %rdi
	movq	%r15, %rsi
	movq	%r12, %rcx
	callq	_dm_read_arg
	testq	%rax, %rax
	jne	LBB0_10
## %bb.4:
	movl	-108(%rbp), %edi
	movq	_MAX_RAID_DEVICES@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	movl	$1, %esi
	callq	___within_range
	testl	%eax, %eax
	je	LBB0_13
## %bb.5:
	movl	-108(%rbp), %edx
	movq	%r12, %rdi
	movq	%rbx, %rsi
	callq	_raid_set_alloc
	movq	%rax, %r15
	movq	%rax, %r14
	movq	%rax, %rdi
	callq	_IS_ERR
	testq	%rax, %rax
	je	LBB0_14
## %bb.6:
	movq	%r14, %rdi
	callq	_PTR_ERR
	movl	%eax, %ebx
	jmp	LBB0_11
LBB0_7:
	leaq	L_.str.2(%rip), %rax
	jmp	LBB0_9
LBB0_8:
	leaq	L_.str.3(%rip), %rax
LBB0_9:
	movq	%rax, (%r12)
LBB0_10:
	movq	_EINVAL@GOTPCREL(%rip), %rax
	xorl	%ebx, %ebx
	subl	(%rax), %ebx
LBB0_11:
	movq	___stack_chk_guard@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	cmpq	-48(%rbp), %rax
	jne	LBB0_45
## %bb.12:
	movl	%ebx, %eax
	addq	$136, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
LBB0_13:
	leaq	L_.str.4(%rip), %rax
	jmp	LBB0_9
LBB0_14:
	movl	-112(%rbp), %edx
	leaq	-136(%rbp), %rsi
	movq	%r14, %rdi
	callq	_parse_raid_params
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	LBB0_65
## %bb.15:
	leaq	-136(%rbp), %rsi
	movq	%r14, %rdi
	callq	_parse_dev_params
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	LBB0_65
## %bb.16:
	movq	_super_sync@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movl	%eax, 36(%r14)
	movq	%r14, %rdi
	xorl	%esi, %esi
	callq	_rs_set_dev_and_array_sectors
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	LBB0_65
## %bb.17:
	movq	(%r14), %r13
	leaq	-104(%rbp), %rsi
	movq	%r14, %rdi
	callq	_rs_config_backup
	movq	%r12, %rdi
	movq	%r14, %rsi
	callq	_analyse_superblocks
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	LBB0_65
## %bb.18:
	movq	%r14, %rdi
	callq	___rdev_sectors
	testq	%rax, %rax
	je	LBB0_23
## %bb.19:
	movq	%rax, %rbx
	movq	%r14, %rdi
	callq	__get_reshape_sectors
	cmpq	%rbx, %r13
	setne	-97(%rbp)                       ## 1-byte Folded Spill
	movq	%rax, -144(%rbp)                ## 8-byte Spill
	subq	%rax, %rbx
	cmpq	%rbx, %r13
	setne	%bl
	leaq	32(%r15), %rdi
	movq	_do_table_event@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	callq	_INIT_WORK
	movq	%r14, 16(%r12)
	movl	$1, 8(%r12)
	leaq	-104(%rbp), %rsi
	movq	%r14, %rdi
	callq	_rs_config_restore
	movq	_MD_ARRAY_FIRST_USE@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	leaq	28(%r15), %rsi
	callq	_test_bit
	movq	%r14, %rdi
	testq	%rax, %rax
	je	LBB0_28
## %bb.20:
	callq	_rs_is_raid6
	testq	%rax, %rax
	je	LBB0_26
## %bb.21:
	movq	___CTR_FLAG_NOSYNC@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	leaq	48(%r15), %rsi
	callq	_test_bit
	testq	%rax, %rax
	je	LBB0_26
## %bb.22:
	leaq	L_.str.6(%rip), %rax
	jmp	LBB0_24
LBB0_23:
	leaq	L_.str.5(%rip), %rax
LBB0_24:
	movq	%rax, (%r12)
	movq	_EINVAL@GOTPCREL(%rip), %rax
LBB0_25:
	xorl	%ebx, %ebx
	subl	(%rax), %ebx
	jmp	LBB0_65
LBB0_26:
	movq	%r14, %rdi
	xorl	%esi, %esi
	callq	_rs_setup_recovery
	movq	_RT_FLAG_UPDATE_SBS@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	leaq	40(%r15), %rsi
	callq	_set_bit
LBB0_27:
	movq	%r14, %rdi
	callq	_rs_set_new
	jmp	LBB0_58
LBB0_28:
	callq	_rs_is_recovering
	testq	%rax, %rax
	je	LBB0_31
## %bb.29:
	movq	___CTR_FLAG_REBUILD@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	leaq	48(%r15), %rsi
	callq	_test_bit
	testq	%rax, %rax
	je	LBB0_58
## %bb.30:
	movq	_RT_FLAG_UPDATE_SBS@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	leaq	40(%r15), %rsi
	callq	_set_bit
	movq	_MaxSector@GOTPCREL(%rip), %rax
	movq	(%rax), %rsi
	movq	%r14, %rdi
	callq	_rs_setup_recovery
	jmp	LBB0_58
LBB0_31:
	andb	%bl, -97(%rbp)                  ## 1-byte Folded Spill
	movq	%r14, %rdi
	callq	_rs_is_reshaping
	testq	%rax, %rax
	je	LBB0_34
## %bb.32:
	cmpb	$0, -97(%rbp)                   ## 1-byte Folded Reload
	je	LBB0_58
## %bb.33:
	leaq	L_.str.7(%rip), %rax
	jmp	LBB0_42
LBB0_34:
	movq	%r14, %rdi
	callq	_rs_takeover_requested
	movq	%r14, %rdi
	testq	%rax, %rax
	je	LBB0_37
## %bb.35:
	callq	_rs_is_reshaping
	testq	%rax, %rax
	je	LBB0_40
## %bb.36:
	leaq	L_.str.8(%rip), %rax
	jmp	LBB0_42
LBB0_37:
	callq	_rs_reshape_requested
	testq	%rax, %rax
	je	LBB0_43
## %bb.38:
	movq	___CTR_FLAG_JOURNAL_DEV@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	leaq	48(%r15), %rsi
	callq	_test_bit
	testq	%rax, %rax
	je	LBB0_46
## %bb.39:
	leaq	L_.str.10(%rip), %rax
	jmp	LBB0_42
LBB0_40:
	movq	___CTR_FLAG_JOURNAL_DEV@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	leaq	48(%r15), %rsi
	callq	_test_bit
	testq	%rax, %rax
	je	LBB0_50
## %bb.41:
	leaq	L_.str.9(%rip), %rax
LBB0_42:
	movq	%rax, (%r12)
	movq	_EPERM@GOTPCREL(%rip), %rax
	jmp	LBB0_25
LBB0_43:
	movq	___CTR_FLAG_REBUILD@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	leaq	48(%r15), %rbx
	movq	%rbx, %rsi
	callq	_test_bit
	testq	%rax, %rax
	je	LBB0_53
## %bb.44:
	movq	_MaxSector@GOTPCREL(%rip), %rax
	movq	(%rax), %rsi
	movq	%r14, %rdi
	callq	_rs_setup_recovery
	movq	_RT_FLAG_UPDATE_SBS@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	leaq	40(%r15), %rsi
	callq	_set_bit
	jmp	LBB0_57
LBB0_45:
	callq	___stack_chk_fail
LBB0_46:
	cmpq	$0, -144(%rbp)                  ## 8-byte Folded Reload
	jne	LBB0_48
## %bb.47:
	movq	%r14, %rdi
	callq	_rs_is_raid1
	testq	%rax, %rax
	je	LBB0_57
LBB0_48:
	movq	%r14, %rdi
	callq	_rs_prepare_reshape
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	LBB0_65
## %bb.49:
	movq	_MaxSector@GOTPCREL(%rip), %rax
	movq	(%rax), %rsi
	jmp	LBB0_56
LBB0_50:
	movq	%r14, %rdi
	callq	_rs_check_takeover
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	LBB0_65
## %bb.51:
	movq	%r14, %rdi
	callq	_rs_setup_takeover
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	LBB0_65
## %bb.52:
	movq	_RT_FLAG_UPDATE_SBS@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	leaq	40(%r15), %rsi
	callq	_set_bit
	movq	_MaxSector@GOTPCREL(%rip), %rax
	movq	(%rax), %rsi
	movq	%r14, %rdi
	callq	_rs_setup_recovery
	jmp	LBB0_27
LBB0_53:
	movq	___CTR_FLAG_SYNC@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	%rbx, %rsi
	callq	_test_bit
	cmpb	$0, -97(%rbp)                   ## 1-byte Folded Reload
	jne	LBB0_55
## %bb.54:
	movq	_MaxSector@GOTPCREL(%rip), %rcx
	movq	(%rcx), %r13
LBB0_55:
	xorl	%esi, %esi
	testq	%rax, %rax
	cmoveq	%r13, %rsi
LBB0_56:
	movq	%r14, %rdi
	callq	_rs_setup_recovery
LBB0_57:
	movq	%r14, %rdi
	callq	_rs_set_cur
LBB0_58:
	movq	%r14, %rdi
	callq	_rs_adjust_data_offsets
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	LBB0_65
## %bb.59:
	movabsq	$4294967297, %rax               ## imm = 0x100000001
	movq	%rax, 8(%r14)
	movq	_MD_RECOVERY_FROZEN@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	leaq	24(%r15), %rsi
	callq	_set_bit
	movq	%r14, %rdi
	callq	_mddev_lock_nointr
	movq	%r14, %rdi
	callq	_md_run
	movl	$0, 12(%r14)
	testl	%eax, %eax
	je	LBB0_61
## %bb.60:
	movl	%eax, %ebx
	leaq	L_.str.11(%rip), %rax
	movq	%rax, (%r12)
	movq	%r14, %rdi
	callq	_mddev_unlock
	jmp	LBB0_65
LBB0_61:
	movq	%r14, %rdi
	callq	_md_start
	testl	%eax, %eax
	je	LBB0_66
## %bb.62:
	movl	%eax, %ebx
	leaq	L_.str.12(%rip), %rax
LBB0_63:
	movq	%rax, (%r12)
	movq	%r14, %rdi
	callq	_mddev_unlock
LBB0_64:
	movq	%r14, %rdi
	callq	_md_stop
LBB0_65:
	movq	%r14, %rdi
	callq	_raid_set_free
	jmp	LBB0_11
LBB0_66:
	movq	_raid_is_congested@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	leaq	52(%r15), %rsi
	movl	%eax, 52(%r14)
	movl	12(%r12), %edi
	callq	_dm_table_add_target_callbacks
	movq	___CTR_FLAG_JOURNAL_MODE@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	leaq	48(%r15), %rsi
	callq	_test_bit
	testq	%rax, %rax
	je	LBB0_69
## %bb.67:
	movl	44(%r14), %esi
	movq	%r14, %rdi
	callq	_r5c_journal_mode_set
	testl	%eax, %eax
	je	LBB0_69
## %bb.68:
	movl	%eax, %ebx
	leaq	L_.str.13(%rip), %rax
	jmp	LBB0_63
LBB0_69:
	movq	%r14, %rdi
	callq	_mddev_suspend
	movq	_RT_FLAG_RS_SUSPENDED@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	addq	$40, %r15
	movq	%r15, %rsi
	callq	_set_bit
	movq	%r14, %rdi
	callq	_rs_is_raid456
	testq	%rax, %rax
	je	LBB0_71
## %bb.70:
	movq	%r14, %rdi
	callq	_rs_set_raid456_stripe_cache
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	LBB0_64
LBB0_71:
	movq	_RT_FLAG_RESHAPE_RS@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	%r15, %rsi
	callq	_test_bit
	testq	%rax, %rax
	je	LBB0_76
## %bb.72:
	movq	%r14, %rdi
	callq	_rs_check_reshape
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	LBB0_64
## %bb.73:
	leaq	-104(%rbp), %rsi
	movq	%r14, %rdi
	callq	_rs_config_restore
	movq	16(%r14), %rax
	cmpq	$0, 8(%rax)
	je	LBB0_76
## %bb.74:
	movq	%r14, %rdi
	callq	*(%rax)
	testl	%eax, %eax
	je	LBB0_76
## %bb.75:
	movl	%eax, %ebx
	leaq	L_.str.14(%rip), %rax
	movq	%rax, (%r12)
	jmp	LBB0_64
LBB0_76:
	movq	%r14, %rdi
	callq	_configure_discard_support
	movq	%r14, %rdi
	callq	_mddev_unlock
	xorl	%ebx, %ebx
	jmp	LBB0_11
	.cfi_endproc
                                        ## -- End function
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"Cannot understand number of raid parameters"

L_.str.1:                               ## @.str.1
	.asciz	"Cannot understand number of raid devices parameters"

L_.str.2:                               ## @.str.2
	.asciz	"No arguments"

	.comm	_EINVAL,4,2                     ## @EINVAL
L_.str.3:                               ## @.str.3
	.asciz	"Unrecognised raid_type"

	.comm	_MAX_RAID_DEVICES,4,2           ## @MAX_RAID_DEVICES
L_.str.4:                               ## @.str.4
	.asciz	"Invalid number of supplied raid devices"

	.comm	_super_sync,4,2                 ## @super_sync
L_.str.5:                               ## @.str.5
	.asciz	"Invalid rdev size"

	.comm	_do_table_event,4,2             ## @do_table_event
	.comm	_MD_ARRAY_FIRST_USE,4,2         ## @MD_ARRAY_FIRST_USE
	.comm	___CTR_FLAG_NOSYNC,4,2          ## @__CTR_FLAG_NOSYNC
L_.str.6:                               ## @.str.6
	.asciz	"'nosync' not allowed for new raid6 set"

	.comm	_RT_FLAG_UPDATE_SBS,4,2         ## @RT_FLAG_UPDATE_SBS
	.comm	___CTR_FLAG_REBUILD,4,2         ## @__CTR_FLAG_REBUILD
	.comm	_MaxSector,8,3                  ## @MaxSector
L_.str.7:                               ## @.str.7
	.asciz	"Can't resize a reshaping raid set"

	.comm	_EPERM,4,2                      ## @EPERM
L_.str.8:                               ## @.str.8
	.asciz	"Can't takeover a reshaping raid set"

	.comm	___CTR_FLAG_JOURNAL_DEV,4,2     ## @__CTR_FLAG_JOURNAL_DEV
L_.str.9:                               ## @.str.9
	.asciz	"Can't takeover a journaled raid4/5/6 set"

L_.str.10:                              ## @.str.10
	.asciz	"Can't reshape a journaled raid4/5/6 set"

	.comm	___CTR_FLAG_SYNC,4,2            ## @__CTR_FLAG_SYNC
	.comm	_MD_RECOVERY_FROZEN,4,2         ## @MD_RECOVERY_FROZEN
L_.str.11:                              ## @.str.11
	.asciz	"Failed to run raid array"

L_.str.12:                              ## @.str.12
	.asciz	"Failed to start raid array"

	.comm	_raid_is_congested,4,2          ## @raid_is_congested
	.comm	___CTR_FLAG_JOURNAL_MODE,4,2    ## @__CTR_FLAG_JOURNAL_MODE
L_.str.13:                              ## @.str.13
	.asciz	"Failed to set raid4/5/6 journal mode"

	.comm	_RT_FLAG_RS_SUSPENDED,4,2       ## @RT_FLAG_RS_SUSPENDED
	.comm	_RT_FLAG_RESHAPE_RS,4,2         ## @RT_FLAG_RESHAPE_RS
L_.str.14:                              ## @.str.14
	.asciz	"Reshape check failed"

	.no_dead_strip	_raid_ctr
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal8,8byte_literals
	.p2align	3                               ; -- Begin function raid_ctr
lCPI0_0:
	.long	1                               ; 0x1
	.long	254                             ; 0xfe
	.section	__TEXT,__text,regular,pure_instructions
	.p2align	2
_raid_ctr:                              ; @raid_ctr
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #192
	.cfi_def_cfa_offset 192
	stp	x24, x23, [sp, #128]            ; 16-byte Folded Spill
	stp	x22, x21, [sp, #144]            ; 16-byte Folded Spill
	stp	x20, x19, [sp, #160]            ; 16-byte Folded Spill
	stp	x29, x30, [sp, #176]            ; 16-byte Folded Spill
	add	x29, sp, #176
	.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
	.cfi_offset w23, -56
	.cfi_offset w24, -64
	mov	x19, x0
Lloh0:
	adrp	x8, ___stack_chk_guard@GOTPAGE
Lloh1:
	ldr	x8, [x8, ___stack_chk_guard@GOTPAGEOFF]
Lloh2:
	ldr	x8, [x8]
	stur	x8, [x29, #-56]
	str	w1, [sp, #32]
	str	x2, [sp, #40]
	str	wzr, [sp, #48]
Lloh3:
	adrp	x8, l_.str@PAGE
Lloh4:
	add	x8, x8, l_.str@PAGEOFF
	stp	xzr, x8, [sp, #72]
	str	wzr, [sp, #88]
Lloh5:
	adrp	x8, lCPI0_0@PAGE
Lloh6:
	ldr	d0, [x8, lCPI0_0@PAGEOFF]
	str	d0, [sp, #96]
Lloh7:
	adrp	x8, l_.str.1@PAGE
Lloh8:
	add	x8, x8, l_.str.1@PAGEOFF
	str	x8, [sp, #104]
	str	wzr, [sp, #112]
	add	x0, sp, #32
	bl	_dm_shift_arg
	cbz	x0, LBB0_7
; %bb.1:
	bl	_get_raid_type
	cbz	x0, LBB0_8
; %bb.2:
	mov	x20, x0
	add	x0, sp, #72
	add	x1, sp, #32
	add	x2, sp, #68
	mov	x3, x19
	bl	_dm_read_arg_group
	cbnz	x0, LBB0_10
; %bb.3:
	add	x8, sp, #72
	add	x21, x8, #24
	ldr	q0, [sp, #32]
	str	q0, [sp]
	ldr	x8, [sp, #48]
	str	x8, [sp, #16]
	ldr	w1, [sp, #68]
	mov	x0, sp
	bl	_dm_consume_args
	ldr	w8, [sp, #16]
	sub	w9, w8, #1
	cmp	w9, #0
	csel	w8, w8, w9, lt
	asr	w8, w8, #1
	str	w8, [sp, #112]
	mov	x1, sp
	add	x2, sp, #64
	mov	x0, x21
	mov	x3, x19
	bl	_dm_read_arg
	cbnz	x0, LBB0_10
; %bb.4:
	ldr	w0, [sp, #64]
Lloh9:
	adrp	x8, _MAX_RAID_DEVICES@GOTPAGE
Lloh10:
	ldr	x8, [x8, _MAX_RAID_DEVICES@GOTPAGEOFF]
Lloh11:
	ldr	w2, [x8]
	mov	w1, #1
	bl	___within_range
	cbz	w0, LBB0_13
; %bb.5:
	ldr	w2, [sp, #64]
	mov	x0, x19
	mov	x1, x20
	bl	_raid_set_alloc
	mov	x20, x0
	bl	_IS_ERR
	cbz	x0, LBB0_14
; %bb.6:
	mov	x0, x20
	bl	_PTR_ERR
	mov	x21, x0
	b	LBB0_11
LBB0_7:
Lloh12:
	adrp	x8, l_.str.2@PAGE
Lloh13:
	add	x8, x8, l_.str.2@PAGEOFF
	b	LBB0_9
LBB0_8:
Lloh14:
	adrp	x8, l_.str.3@PAGE
Lloh15:
	add	x8, x8, l_.str.3@PAGEOFF
LBB0_9:
	str	x8, [x19]
LBB0_10:
Lloh16:
	adrp	x8, _EINVAL@GOTPAGE
Lloh17:
	ldr	x8, [x8, _EINVAL@GOTPAGEOFF]
Lloh18:
	ldr	w8, [x8]
	neg	w21, w8
LBB0_11:
	ldur	x8, [x29, #-56]
Lloh19:
	adrp	x9, ___stack_chk_guard@GOTPAGE
Lloh20:
	ldr	x9, [x9, ___stack_chk_guard@GOTPAGEOFF]
Lloh21:
	ldr	x9, [x9]
	cmp	x9, x8
	b.ne	LBB0_45
; %bb.12:
	mov	x0, x21
	ldp	x29, x30, [sp, #176]            ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #160]            ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #144]            ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #128]            ; 16-byte Folded Reload
	add	sp, sp, #192
	ret
LBB0_13:
Lloh22:
	adrp	x8, l_.str.4@PAGE
Lloh23:
	add	x8, x8, l_.str.4@PAGEOFF
	b	LBB0_9
LBB0_14:
	ldr	w2, [sp, #68]
	add	x1, sp, #32
	mov	x0, x20
	bl	_parse_raid_params
	mov	x21, x0
	cbnz	w0, LBB0_63
; %bb.15:
	add	x1, sp, #32
	mov	x0, x20
	bl	_parse_dev_params
	mov	x21, x0
	cbnz	w0, LBB0_63
; %bb.16:
Lloh24:
	adrp	x8, _super_sync@GOTPAGE
Lloh25:
	ldr	x8, [x8, _super_sync@GOTPAGEOFF]
Lloh26:
	ldr	w8, [x8]
	str	w8, [x20, #36]
	mov	x0, x20
	mov	w1, #0
	bl	_rs_set_dev_and_array_sectors
	mov	x21, x0
	cbnz	w0, LBB0_63
; %bb.17:
	ldr	x23, [x20]
	add	x1, sp, #56
	mov	x0, x20
	bl	_rs_config_backup
	mov	x0, x19
	mov	x1, x20
	bl	_analyse_superblocks
	mov	x21, x0
	cbnz	w0, LBB0_63
; %bb.18:
	mov	x0, x20
	bl	___rdev_sectors
	cbz	x0, LBB0_23
; %bb.19:
	mov	x22, x0
	mov	x0, x20
	bl	__get_reshape_sectors
	mov	x21, x0
	sub	x8, x22, x0
	cmp	x23, x22
	ccmp	x23, x8, #4, ne
	cset	w22, ne
	add	x0, x20, #32
Lloh27:
	adrp	x8, _do_table_event@GOTPAGE
Lloh28:
	ldr	x8, [x8, _do_table_event@GOTPAGEOFF]
Lloh29:
	ldr	w1, [x8]
	bl	_INIT_WORK
	str	x20, [x19, #16]
	mov	w8, #1
	str	w8, [x19, #8]
	add	x1, sp, #56
	mov	x0, x20
	bl	_rs_config_restore
Lloh30:
	adrp	x8, _MD_ARRAY_FIRST_USE@GOTPAGE
Lloh31:
	ldr	x8, [x8, _MD_ARRAY_FIRST_USE@GOTPAGEOFF]
Lloh32:
	ldr	w0, [x8]
	add	x1, x20, #28
	bl	_test_bit
	cbz	x0, LBB0_28
; %bb.20:
	mov	x0, x20
	bl	_rs_is_raid6
	cbz	x0, LBB0_26
; %bb.21:
Lloh33:
	adrp	x8, ___CTR_FLAG_NOSYNC@GOTPAGE
Lloh34:
	ldr	x8, [x8, ___CTR_FLAG_NOSYNC@GOTPAGEOFF]
Lloh35:
	ldr	w0, [x8]
	add	x1, x20, #48
	bl	_test_bit
	cbz	x0, LBB0_26
; %bb.22:
Lloh36:
	adrp	x8, l_.str.6@PAGE
Lloh37:
	add	x8, x8, l_.str.6@PAGEOFF
	b	LBB0_24
LBB0_23:
Lloh38:
	adrp	x8, l_.str.5@PAGE
Lloh39:
	add	x8, x8, l_.str.5@PAGEOFF
LBB0_24:
	str	x8, [x19]
Lloh40:
	adrp	x8, _EINVAL@GOTPAGE
Lloh41:
	ldr	x8, [x8, _EINVAL@GOTPAGEOFF]
LBB0_25:
	ldr	w8, [x8]
	neg	w21, w8
	b	LBB0_63
LBB0_26:
	mov	x0, x20
	mov	x1, #0
	bl	_rs_setup_recovery
Lloh42:
	adrp	x8, _RT_FLAG_UPDATE_SBS@GOTPAGE
Lloh43:
	ldr	x8, [x8, _RT_FLAG_UPDATE_SBS@GOTPAGEOFF]
Lloh44:
	ldr	w0, [x8]
	add	x1, x20, #40
	bl	_set_bit
LBB0_27:
	mov	x0, x20
	bl	_rs_set_new
	b	LBB0_56
LBB0_28:
	mov	x0, x20
	bl	_rs_is_recovering
	cbz	x0, LBB0_31
; %bb.29:
Lloh45:
	adrp	x8, ___CTR_FLAG_REBUILD@GOTPAGE
Lloh46:
	ldr	x8, [x8, ___CTR_FLAG_REBUILD@GOTPAGEOFF]
Lloh47:
	ldr	w0, [x8]
	add	x1, x20, #48
	bl	_test_bit
	cbz	x0, LBB0_56
; %bb.30:
Lloh48:
	adrp	x8, _RT_FLAG_UPDATE_SBS@GOTPAGE
Lloh49:
	ldr	x8, [x8, _RT_FLAG_UPDATE_SBS@GOTPAGEOFF]
Lloh50:
	ldr	w0, [x8]
	add	x1, x20, #40
	bl	_set_bit
Lloh51:
	adrp	x8, _MaxSector@GOTPAGE
Lloh52:
	ldr	x8, [x8, _MaxSector@GOTPAGEOFF]
Lloh53:
	ldr	x1, [x8]
	mov	x0, x20
	bl	_rs_setup_recovery
	b	LBB0_56
LBB0_31:
	mov	x0, x20
	bl	_rs_is_reshaping
	cbz	x0, LBB0_34
; %bb.32:
	cbz	w22, LBB0_56
; %bb.33:
Lloh54:
	adrp	x8, l_.str.7@PAGE
Lloh55:
	add	x8, x8, l_.str.7@PAGEOFF
	b	LBB0_42
LBB0_34:
	mov	x0, x20
	bl	_rs_takeover_requested
	cbz	x0, LBB0_37
; %bb.35:
	mov	x0, x20
	bl	_rs_is_reshaping
	cbz	x0, LBB0_40
; %bb.36:
Lloh56:
	adrp	x8, l_.str.8@PAGE
Lloh57:
	add	x8, x8, l_.str.8@PAGEOFF
	b	LBB0_42
LBB0_37:
	mov	x0, x20
	bl	_rs_reshape_requested
	cbz	x0, LBB0_43
; %bb.38:
Lloh58:
	adrp	x8, ___CTR_FLAG_JOURNAL_DEV@GOTPAGE
Lloh59:
	ldr	x8, [x8, ___CTR_FLAG_JOURNAL_DEV@GOTPAGEOFF]
Lloh60:
	ldr	w0, [x8]
	add	x1, x20, #48
	bl	_test_bit
	cbz	x0, LBB0_46
; %bb.39:
Lloh61:
	adrp	x8, l_.str.10@PAGE
Lloh62:
	add	x8, x8, l_.str.10@PAGEOFF
	b	LBB0_42
LBB0_40:
Lloh63:
	adrp	x8, ___CTR_FLAG_JOURNAL_DEV@GOTPAGE
Lloh64:
	ldr	x8, [x8, ___CTR_FLAG_JOURNAL_DEV@GOTPAGEOFF]
Lloh65:
	ldr	w0, [x8]
	add	x1, x20, #48
	bl	_test_bit
	cbz	x0, LBB0_50
; %bb.41:
Lloh66:
	adrp	x8, l_.str.9@PAGE
Lloh67:
	add	x8, x8, l_.str.9@PAGEOFF
LBB0_42:
	str	x8, [x19]
Lloh68:
	adrp	x8, _EPERM@GOTPAGE
Lloh69:
	ldr	x8, [x8, _EPERM@GOTPAGEOFF]
	b	LBB0_25
LBB0_43:
Lloh70:
	adrp	x8, ___CTR_FLAG_REBUILD@GOTPAGE
Lloh71:
	ldr	x8, [x8, ___CTR_FLAG_REBUILD@GOTPAGEOFF]
Lloh72:
	ldr	w0, [x8]
	add	x21, x20, #48
	mov	x1, x21
	bl	_test_bit
	cbz	x0, LBB0_53
; %bb.44:
Lloh73:
	adrp	x8, _MaxSector@GOTPAGE
Lloh74:
	ldr	x8, [x8, _MaxSector@GOTPAGEOFF]
Lloh75:
	ldr	x1, [x8]
	mov	x0, x20
	bl	_rs_setup_recovery
Lloh76:
	adrp	x8, _RT_FLAG_UPDATE_SBS@GOTPAGE
Lloh77:
	ldr	x8, [x8, _RT_FLAG_UPDATE_SBS@GOTPAGEOFF]
Lloh78:
	ldr	w0, [x8]
	add	x1, x20, #40
	bl	_set_bit
	b	LBB0_55
LBB0_45:
	bl	___stack_chk_fail
LBB0_46:
	cbnz	x21, LBB0_48
; %bb.47:
	mov	x0, x20
	bl	_rs_is_raid1
	cbz	x0, LBB0_55
LBB0_48:
	mov	x0, x20
	bl	_rs_prepare_reshape
	mov	x21, x0
	cbnz	w0, LBB0_63
; %bb.49:
Lloh79:
	adrp	x8, _MaxSector@GOTPAGE
Lloh80:
	ldr	x8, [x8, _MaxSector@GOTPAGEOFF]
Lloh81:
	ldr	x1, [x8]
	b	LBB0_54
LBB0_50:
	mov	x0, x20
	bl	_rs_check_takeover
	mov	x21, x0
	cbnz	w0, LBB0_63
; %bb.51:
	mov	x0, x20
	bl	_rs_setup_takeover
	mov	x21, x0
	cbnz	w0, LBB0_63
; %bb.52:
Lloh82:
	adrp	x8, _RT_FLAG_UPDATE_SBS@GOTPAGE
Lloh83:
	ldr	x8, [x8, _RT_FLAG_UPDATE_SBS@GOTPAGEOFF]
Lloh84:
	ldr	w0, [x8]
	add	x1, x20, #40
	bl	_set_bit
Lloh85:
	adrp	x8, _MaxSector@GOTPAGE
Lloh86:
	ldr	x8, [x8, _MaxSector@GOTPAGEOFF]
Lloh87:
	ldr	x1, [x8]
	mov	x0, x20
	bl	_rs_setup_recovery
	b	LBB0_27
LBB0_53:
Lloh88:
	adrp	x8, ___CTR_FLAG_SYNC@GOTPAGE
Lloh89:
	ldr	x8, [x8, ___CTR_FLAG_SYNC@GOTPAGEOFF]
Lloh90:
	ldr	w0, [x8]
	mov	x1, x21
	bl	_test_bit
Lloh91:
	adrp	x8, _MaxSector@GOTPAGE
Lloh92:
	ldr	x8, [x8, _MaxSector@GOTPAGEOFF]
Lloh93:
	ldr	x8, [x8]
	cmp	w22, #0
	csel	x8, x23, x8, ne
	cmp	x0, #0
	csel	x1, x8, xzr, eq
LBB0_54:
	mov	x0, x20
	bl	_rs_setup_recovery
LBB0_55:
	mov	x0, x20
	bl	_rs_set_cur
LBB0_56:
	mov	x0, x20
	bl	_rs_adjust_data_offsets
	mov	x21, x0
	cbnz	w0, LBB0_63
; %bb.57:
	mov	x8, #4294967297
	str	x8, [x20, #8]
Lloh94:
	adrp	x8, _MD_RECOVERY_FROZEN@GOTPAGE
Lloh95:
	ldr	x8, [x8, _MD_RECOVERY_FROZEN@GOTPAGEOFF]
Lloh96:
	ldr	w0, [x8]
	add	x1, x20, #24
	bl	_set_bit
	mov	x0, x20
	bl	_mddev_lock_nointr
	mov	x0, x20
	bl	_md_run
	str	wzr, [x20, #12]
	cbz	w0, LBB0_59
; %bb.58:
	mov	x21, x0
Lloh97:
	adrp	x8, l_.str.11@PAGE
Lloh98:
	add	x8, x8, l_.str.11@PAGEOFF
	str	x8, [x19]
	mov	x0, x20
	bl	_mddev_unlock
	b	LBB0_63
LBB0_59:
	mov	x0, x20
	bl	_md_start
	cbz	w0, LBB0_64
; %bb.60:
	mov	x21, x0
Lloh99:
	adrp	x8, l_.str.12@PAGE
Lloh100:
	add	x8, x8, l_.str.12@PAGEOFF
LBB0_61:
	str	x8, [x19]
	mov	x0, x20
	bl	_mddev_unlock
LBB0_62:
	mov	x0, x20
	bl	_md_stop
LBB0_63:
	mov	x0, x20
	bl	_raid_set_free
	b	LBB0_11
LBB0_64:
Lloh101:
	adrp	x8, _raid_is_congested@GOTPAGE
Lloh102:
	ldr	x8, [x8, _raid_is_congested@GOTPAGEOFF]
Lloh103:
	ldr	w8, [x8]
	mov	x21, x20
	str	w8, [x21, #52]!
	ldr	w0, [x19, #12]
	mov	x1, x21
	bl	_dm_table_add_target_callbacks
Lloh104:
	adrp	x8, ___CTR_FLAG_JOURNAL_MODE@GOTPAGE
Lloh105:
	ldr	x8, [x8, ___CTR_FLAG_JOURNAL_MODE@GOTPAGEOFF]
Lloh106:
	ldr	w0, [x8]
	sub	x1, x21, #4
	bl	_test_bit
	cbz	x0, LBB0_67
; %bb.65:
	ldr	w1, [x20, #44]
	mov	x0, x20
	bl	_r5c_journal_mode_set
	cbz	w0, LBB0_67
; %bb.66:
	mov	x21, x0
Lloh107:
	adrp	x8, l_.str.13@PAGE
Lloh108:
	add	x8, x8, l_.str.13@PAGEOFF
	b	LBB0_61
LBB0_67:
	mov	x0, x20
	bl	_mddev_suspend
Lloh109:
	adrp	x8, _RT_FLAG_RS_SUSPENDED@GOTPAGE
Lloh110:
	ldr	x8, [x8, _RT_FLAG_RS_SUSPENDED@GOTPAGEOFF]
Lloh111:
	ldr	w0, [x8]
	add	x22, x20, #40
	mov	x1, x22
	bl	_set_bit
	mov	x0, x20
	bl	_rs_is_raid456
	cbz	x0, LBB0_69
; %bb.68:
	mov	x0, x20
	bl	_rs_set_raid456_stripe_cache
	mov	x21, x0
	cbnz	w0, LBB0_62
LBB0_69:
Lloh112:
	adrp	x8, _RT_FLAG_RESHAPE_RS@GOTPAGE
Lloh113:
	ldr	x8, [x8, _RT_FLAG_RESHAPE_RS@GOTPAGEOFF]
Lloh114:
	ldr	w0, [x8]
	mov	x1, x22
	bl	_test_bit
	cbz	x0, LBB0_74
; %bb.70:
	mov	x0, x20
	bl	_rs_check_reshape
	mov	x21, x0
	cbnz	w0, LBB0_62
; %bb.71:
	add	x1, sp, #56
	mov	x0, x20
	bl	_rs_config_restore
	ldr	x8, [x20, #16]
	ldr	x9, [x8, #8]
	cbz	x9, LBB0_74
; %bb.72:
	ldr	x8, [x8]
	mov	x0, x20
	blr	x8
	cbz	w0, LBB0_74
; %bb.73:
	mov	x21, x0
Lloh115:
	adrp	x8, l_.str.14@PAGE
Lloh116:
	add	x8, x8, l_.str.14@PAGEOFF
	str	x8, [x19]
	b	LBB0_62
LBB0_74:
	mov	x0, x20
	bl	_configure_discard_support
	mov	x0, x20
	bl	_mddev_unlock
	mov	w21, #0
	b	LBB0_11
	.loh AdrpAdd	Lloh7, Lloh8
	.loh AdrpAdrp	Lloh5, Lloh7
	.loh AdrpLdr	Lloh5, Lloh6
	.loh AdrpAdd	Lloh3, Lloh4
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpLdrGotLdr	Lloh9, Lloh10, Lloh11
	.loh AdrpAdd	Lloh12, Lloh13
	.loh AdrpAdd	Lloh14, Lloh15
	.loh AdrpLdrGotLdr	Lloh16, Lloh17, Lloh18
	.loh AdrpLdrGotLdr	Lloh19, Lloh20, Lloh21
	.loh AdrpAdd	Lloh22, Lloh23
	.loh AdrpLdrGotLdr	Lloh24, Lloh25, Lloh26
	.loh AdrpLdrGotLdr	Lloh30, Lloh31, Lloh32
	.loh AdrpLdrGotLdr	Lloh27, Lloh28, Lloh29
	.loh AdrpLdrGotLdr	Lloh33, Lloh34, Lloh35
	.loh AdrpAdd	Lloh36, Lloh37
	.loh AdrpAdd	Lloh38, Lloh39
	.loh AdrpLdrGot	Lloh40, Lloh41
	.loh AdrpLdrGotLdr	Lloh42, Lloh43, Lloh44
	.loh AdrpLdrGotLdr	Lloh45, Lloh46, Lloh47
	.loh AdrpLdrGotLdr	Lloh51, Lloh52, Lloh53
	.loh AdrpLdrGotLdr	Lloh48, Lloh49, Lloh50
	.loh AdrpAdd	Lloh54, Lloh55
	.loh AdrpAdd	Lloh56, Lloh57
	.loh AdrpLdrGotLdr	Lloh58, Lloh59, Lloh60
	.loh AdrpAdd	Lloh61, Lloh62
	.loh AdrpLdrGotLdr	Lloh63, Lloh64, Lloh65
	.loh AdrpAdd	Lloh66, Lloh67
	.loh AdrpLdrGot	Lloh68, Lloh69
	.loh AdrpLdrGotLdr	Lloh70, Lloh71, Lloh72
	.loh AdrpLdrGotLdr	Lloh76, Lloh77, Lloh78
	.loh AdrpLdrGotLdr	Lloh73, Lloh74, Lloh75
	.loh AdrpLdrGotLdr	Lloh79, Lloh80, Lloh81
	.loh AdrpLdrGotLdr	Lloh85, Lloh86, Lloh87
	.loh AdrpLdrGotLdr	Lloh82, Lloh83, Lloh84
	.loh AdrpLdrGotLdr	Lloh91, Lloh92, Lloh93
	.loh AdrpLdrGotLdr	Lloh88, Lloh89, Lloh90
	.loh AdrpLdrGotLdr	Lloh94, Lloh95, Lloh96
	.loh AdrpAdd	Lloh97, Lloh98
	.loh AdrpAdd	Lloh99, Lloh100
	.loh AdrpLdrGotLdr	Lloh104, Lloh105, Lloh106
	.loh AdrpLdrGotLdr	Lloh101, Lloh102, Lloh103
	.loh AdrpAdd	Lloh107, Lloh108
	.loh AdrpLdrGotLdr	Lloh109, Lloh110, Lloh111
	.loh AdrpLdrGotLdr	Lloh112, Lloh113, Lloh114
	.loh AdrpAdd	Lloh115, Lloh116
	.cfi_endproc
                                        ; -- End function
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"Cannot understand number of raid parameters"

l_.str.1:                               ; @.str.1
	.asciz	"Cannot understand number of raid devices parameters"

l_.str.2:                               ; @.str.2
	.asciz	"No arguments"

	.comm	_EINVAL,4,2                     ; @EINVAL
l_.str.3:                               ; @.str.3
	.asciz	"Unrecognised raid_type"

	.comm	_MAX_RAID_DEVICES,4,2           ; @MAX_RAID_DEVICES
l_.str.4:                               ; @.str.4
	.asciz	"Invalid number of supplied raid devices"

	.comm	_super_sync,4,2                 ; @super_sync
l_.str.5:                               ; @.str.5
	.asciz	"Invalid rdev size"

	.comm	_do_table_event,4,2             ; @do_table_event
	.comm	_MD_ARRAY_FIRST_USE,4,2         ; @MD_ARRAY_FIRST_USE
	.comm	___CTR_FLAG_NOSYNC,4,2          ; @__CTR_FLAG_NOSYNC
l_.str.6:                               ; @.str.6
	.asciz	"'nosync' not allowed for new raid6 set"

	.comm	_RT_FLAG_UPDATE_SBS,4,2         ; @RT_FLAG_UPDATE_SBS
	.comm	___CTR_FLAG_REBUILD,4,2         ; @__CTR_FLAG_REBUILD
	.comm	_MaxSector,8,3                  ; @MaxSector
l_.str.7:                               ; @.str.7
	.asciz	"Can't resize a reshaping raid set"

	.comm	_EPERM,4,2                      ; @EPERM
l_.str.8:                               ; @.str.8
	.asciz	"Can't takeover a reshaping raid set"

	.comm	___CTR_FLAG_JOURNAL_DEV,4,2     ; @__CTR_FLAG_JOURNAL_DEV
l_.str.9:                               ; @.str.9
	.asciz	"Can't takeover a journaled raid4/5/6 set"

l_.str.10:                              ; @.str.10
	.asciz	"Can't reshape a journaled raid4/5/6 set"

	.comm	___CTR_FLAG_SYNC,4,2            ; @__CTR_FLAG_SYNC
	.comm	_MD_RECOVERY_FROZEN,4,2         ; @MD_RECOVERY_FROZEN
l_.str.11:                              ; @.str.11
	.asciz	"Failed to run raid array"

l_.str.12:                              ; @.str.12
	.asciz	"Failed to start raid array"

	.comm	_raid_is_congested,4,2          ; @raid_is_congested
	.comm	___CTR_FLAG_JOURNAL_MODE,4,2    ; @__CTR_FLAG_JOURNAL_MODE
l_.str.13:                              ; @.str.13
	.asciz	"Failed to set raid4/5/6 journal mode"

	.comm	_RT_FLAG_RS_SUSPENDED,4,2       ; @RT_FLAG_RS_SUSPENDED
	.comm	_RT_FLAG_RESHAPE_RS,4,2         ; @RT_FLAG_RESHAPE_RS
l_.str.14:                              ; @.str.14
	.asciz	"Reshape check failed"

	.no_dead_strip	_raid_ctr
.subsections_via_symbols
