	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_unpack_trees                   ## -- Begin function unpack_trees
	.p2align	4, 0x90
_unpack_trees:                          ## @unpack_trees
	.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	$104, %rsp
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	%rdx, %rbx
	movq	%rsi, %r14
	movl	%edi, %r12d
	movq	_MAX_UNPACK_TREES@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	cmpl	%edi, %esi
	jae	LBB0_2
## %bb.1:
	leaq	L_.str(%rip), %rdi
	callq	_die
LBB0_2:
	xorl	%eax, %eax
	callq	_trace_performance_enter
	leaq	-144(%rbp), %rdi
	xorl	%esi, %esi
	movl	$64, %edx
	callq	_memset
	movq	_core_apply_sparse_checkout@GOTPCREL(%rip), %rax
	cmpl	$0, (%rax)
	movq	%r14, -48(%rbp)                 ## 8-byte Spill
	je	LBB0_4
## %bb.3:
	cmpl	$0, 160(%rbx)
	je	LBB0_4
## %bb.5:
	cmpl	$0, (%rbx)
	jne	LBB0_10
## %bb.6:
	leaq	L_.str.1(%rip), %rdi
	callq	_git_pathdup
	movq	%rax, %r14
	leaq	L_.str.2(%rip), %rsi
	leaq	-144(%rbp), %r15
	movq	%rax, %rdi
	xorl	%edx, %edx
	movq	%r15, %rcx
	xorl	%r8d, %r8d
	callq	_add_patterns_from_file_to_list
	testq	%rax, %rax
	js	LBB0_7
## %bb.8:
	movq	%r15, 112(%rbx)
	jmp	LBB0_9
LBB0_4:
	movl	$1, (%rbx)
LBB0_10:
	leaq	40(%rbx), %r14
	movq	%r14, %rdi
	xorl	%esi, %esi
	movl	$64, %edx
	callq	_memset
	movl	$1, 40(%rbx)
	movq	24(%rbx), %rsi
	movl	56(%rsi), %eax
	movl	%eax, 96(%rbx)
	movl	52(%rsi), %eax
	movl	%eax, 92(%rbx)
	movl	48(%rsi), %eax
	movl	%eax, 88(%rbx)
	movq	40(%rsi), %rax
	testq	%rax, %rax
	je	LBB0_11
## %bb.12:
	cmpq	104(%rbx), %rsi
	je	LBB0_13
## %bb.14:
	movq	%r14, %rdi
	callq	_init_split_index
	movq	%rax, 80(%rbx)
	movq	24(%rbx), %rsi
	jmp	LBB0_15
LBB0_11:
	movq	$0, 80(%rbx)
	jmp	LBB0_15
LBB0_13:
	movq	%rax, 80(%rbx)
	incl	(%rax)
LBB0_15:
	leaq	72(%rbx), %rdi
	addq	$32, %rsi
	callq	_oidcpy
	movl	%r12d, 4(%rbx)
	movq	24(%rbx), %rdi
	callq	_mark_all_ce_unused
	cmpl	$0, (%rbx)
	jne	LBB0_17
## %bb.16:
	movq	24(%rbx), %rsi
	movq	112(%rbx), %rdi
	movq	_CE_NEW_SKIP_WORKTREE@GOTPCREL(%rip), %rax
	movl	(%rax), %ecx
	xorl	%edx, %edx
	callq	_mark_new_skip_worktree
LBB0_17:
	movq	_unpack_trees.dfc(%rip), %rax
	testq	%rax, %rax
	jne	LBB0_19
## %bb.18:
	xorl	%edi, %edi
	callq	_cache_entry_size
	movl	$1, %edi
	movl	%eax, %esi
	callq	_xcalloc
	movq	%rax, _unpack_trees.dfc(%rip)
LBB0_19:
	movq	%rax, 152(%rbx)
	testl	%r12d, %r12d
	je	LBB0_26
## %bb.20:
	movq	8(%rbx), %rax
	testq	%rax, %rax
	leaq	L_.str.2(%rip), %rsi
	cmovneq	%rax, %rsi
	leaq	-80(%rbp), %rdi
	callq	_setup_traverse_info
	movq	_unpack_callback@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movl	%eax, -56(%rbp)
	movq	%rbx, -64(%rbp)
	movq	32(%rbx), %rax
	movq	%rax, -72(%rbp)
	movl	144(%rbx), %eax
	movl	%eax, -80(%rbp)
	cmpq	$0, 8(%rbx)
	je	LBB0_25
## %bb.21:
	leaq	-80(%rbp), %r13
	.p2align	4, 0x90
LBB0_22:                                ## =>This Inner Loop Header: Depth=1
	movq	%rbx, %rdi
	callq	_next_cache_entry
	testq	%rax, %rax
	je	LBB0_25
## %bb.23:                              ##   in Loop: Header=BB0_22 Depth=1
	movq	%rax, %r15
	movq	%rax, %rdi
	movq	%r13, %rsi
	callq	_ce_in_traverse_path
	testq	%rax, %rax
	jne	LBB0_25
## %bb.24:                              ##   in Loop: Header=BB0_22 Depth=1
	movq	%r15, %rdi
	movq	%rbx, %rsi
	callq	_unpack_index_entry
	testq	%rax, %rax
	jns	LBB0_22
	jmp	LBB0_29
LBB0_25:
	xorl	%eax, %eax
	callq	_trace_performance_enter
	movq	24(%rbx), %rdi
	leaq	-80(%rbp), %rcx
	movl	%r12d, %esi
	movq	-48(%rbp), %rdx                 ## 8-byte Reload
	callq	_traverse_trees
	movl	%eax, %r15d
	leaq	L_.str.3(%rip), %rdi
	callq	_trace_performance_leave
	testl	%r15d, %r15d
	js	LBB0_29
LBB0_26:
	movq	%r14, -48(%rbp)                 ## 8-byte Spill
	cmpq	$0, 136(%rbx)
	je	LBB0_32
	.p2align	4, 0x90
LBB0_27:                                ## =>This Inner Loop Header: Depth=1
	movq	%rbx, %rdi
	callq	_next_cache_entry
	testq	%rax, %rax
	je	LBB0_32
## %bb.28:                              ##   in Loop: Header=BB0_27 Depth=1
	movq	%rax, %rdi
	movq	%rbx, %rsi
	callq	_unpack_index_entry
	testq	%rax, %rax
	jns	LBB0_27
LBB0_29:
	cmpq	$0, 32(%rbx)
	je	LBB0_31
## %bb.30:
	movq	%rbx, %rdi
	callq	_display_error_msgs
LBB0_31:
	movq	24(%rbx), %rdi
	callq	_mark_all_ce_unused
	xorl	%r14d, %r14d
	movq	%rbx, %rdi
	xorl	%esi, %esi
	callq	_unpack_failed
	movl	%eax, %r15d
	cmpq	$0, 16(%rbx)
	cmovnel	%r14d, %r15d
	jmp	LBB0_61
LBB0_32:
	movq	24(%rbx), %rdi
	callq	_mark_all_ce_unused
	cmpq	$0, 128(%rbx)
	je	LBB0_36
## %bb.33:
	cmpq	$0, 120(%rbx)
	je	LBB0_36
## %bb.34:
	leaq	L_.str.4(%rip), %rsi
LBB0_35:
	movq	%rbx, %rdi
	callq	_unpack_failed
	movl	%eax, %r15d
	jmp	LBB0_61
LBB0_36:
	cmpl	$0, (%rbx)
	je	LBB0_37
LBB0_50:
	movq	%rbx, %rdi
	callq	_check_updates
	movq	%rax, %r12
	xorl	%eax, %eax
	testq	%r12, %r12
	sete	%al
	leal	(%rax,%rax), %r15d
	addl	$-2, %r15d
	cmpq	$0, 104(%rbx)
	je	LBB0_59
## %bb.51:
	movq	24(%rbx), %rsi
	movq	-48(%rbp), %r14                 ## 8-byte Reload
	movq	%r14, %rdi
	callq	_move_index_extensions
	testq	%r12, %r12
	jne	LBB0_58
## %bb.52:
	leaq	L_.str.6(%rip), %rdi
	xorl	%esi, %esi
	callq	_git_env_bool
	testq	%rax, %rax
	je	LBB0_54
## %bb.53:
	movq	_the_repository@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	%r14, %rsi
	callq	_cache_tree_verify
LBB0_54:
	movq	56(%rbx), %rdi
	testq	%rdi, %rdi
	jne	LBB0_56
## %bb.55:
	xorl	%eax, %eax
	callq	_cache_tree
	movq	%rax, %rdi
	movq	%rax, 56(%rbx)
LBB0_56:
	callq	_cache_tree_fully_valid
	testl	%eax, %eax
	jne	LBB0_58
## %bb.57:
	movq	_WRITE_TREE_SILENT@GOTPCREL(%rip), %rax
	movq	_WRITE_TREE_REPAIR@GOTPCREL(%rip), %rcx
	movl	(%rcx), %esi
	orl	(%rax), %esi
	movq	%r14, %rdi
	callq	_cache_tree_update
LBB0_58:
	movl	$1, 48(%rbx)
	movq	104(%rbx), %rdi
	callq	_discard_index
	movq	104(%rbx), %rax
	movups	(%r14), %xmm0
	movups	16(%r14), %xmm1
	movups	32(%r14), %xmm2
	movups	48(%r14), %xmm3
	movups	%xmm0, (%rax)
	movups	%xmm1, 16(%rax)
	movups	%xmm2, 32(%rax)
	movups	%xmm3, 48(%rax)
	jmp	LBB0_60
LBB0_37:
	movq	112(%rbx), %rdi
	movq	_CE_ADDED@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	movq	_CE_SKIP_WORKTREE@GOTPCREL(%rip), %rax
	movq	_CE_NEW_SKIP_WORKTREE@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	orl	(%rax), %ecx
	movq	-48(%rbp), %rsi                 ## 8-byte Reload
	callq	_mark_new_skip_worktree
	movl	44(%rbx), %eax
	testl	%eax, %eax
	jle	LBB0_38
## %bb.39:
	xorl	%r12d, %r12d
	movl	$1, %r13d
	xorl	%r14d, %r14d
	jmp	LBB0_40
	.p2align	4, 0x90
LBB0_45:                                ##   in Loop: Header=BB0_40 Depth=1
	movq	%r15, %rdi
	callq	_ce_skip_worktree
	testl	%eax, %eax
	cmovel	%eax, %r13d
	incq	%r12
	movslq	44(%rbx), %rax
	cmpq	%rax, %r12
	jge	LBB0_46
LBB0_40:                                ## =>This Inner Loop Header: Depth=1
	movq	64(%rbx), %rax
	movq	(%rax,%r12,8), %r15
	movq	_CE_ADDED@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	testl	%eax, (%r15)
	je	LBB0_43
## %bb.41:                              ##   in Loop: Header=BB0_40 Depth=1
	movq	_ERROR_WOULD_LOSE_UNTRACKED_OVERWRITTEN@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r15, %rdi
	movq	%rbx, %rdx
	callq	_verify_absent
	testq	%rax, %rax
	je	LBB0_43
## %bb.42:                              ##   in Loop: Header=BB0_40 Depth=1
	movl	$-1, %r14d
	cmpq	$0, 32(%rbx)
	je	LBB0_29
LBB0_43:                                ##   in Loop: Header=BB0_40 Depth=1
	movq	-48(%rbp), %rdi                 ## 8-byte Reload
	movq	%r15, %rsi
	movq	%rbx, %rdx
	callq	_apply_sparse_checkout
	testq	%rax, %rax
	je	LBB0_45
## %bb.44:                              ##   in Loop: Header=BB0_40 Depth=1
	movl	$-1, %r14d
	cmpq	$0, 32(%rbx)
	jne	LBB0_45
	jmp	LBB0_29
LBB0_59:
	movq	-48(%rbp), %rdi                 ## 8-byte Reload
	callq	_discard_index
LBB0_60:
	movq	$0, 24(%rbx)
LBB0_61:
	leaq	L_.str.7(%rip), %rdi
	callq	_trace_performance_leave
	leaq	-144(%rbp), %rdi
	callq	_clear_pattern_list
	movl	%r15d, %eax
	addq	$104, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
LBB0_7:
	movl	$1, (%rbx)
LBB0_9:
	movq	%r14, %rdi
	callq	_free
	jmp	LBB0_10
LBB0_38:
	movl	$1, %r13d
	jmp	LBB0_47
LBB0_46:
	testl	%r14d, %r14d
	js	LBB0_29
LBB0_47:
	testl	%eax, %eax
	je	LBB0_50
## %bb.48:
	testl	%r13d, %r13d
	je	LBB0_50
## %bb.49:
	leaq	L_.str.5(%rip), %rsi
	jmp	LBB0_35
	.cfi_endproc
                                        ## -- End function
.zerofill __DATA,__bss,_unpack_trees.dfc,8,3 ## @unpack_trees.dfc
	.comm	_MAX_UNPACK_TREES,4,2           ## @MAX_UNPACK_TREES
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"unpack_trees takes at most %d trees"

	.comm	_core_apply_sparse_checkout,4,2 ## @core_apply_sparse_checkout
L_.str.1:                               ## @.str.1
	.asciz	"info/sparse-checkout"

L_.str.2:                               ## @.str.2
	.space	1

	.comm	_CE_NEW_SKIP_WORKTREE,4,2       ## @CE_NEW_SKIP_WORKTREE
	.comm	_unpack_callback,4,2            ## @unpack_callback
L_.str.3:                               ## @.str.3
	.asciz	"traverse_trees"

L_.str.4:                               ## @.str.4
	.asciz	"Merge requires file-level merging"

	.comm	_CE_ADDED,4,2                   ## @CE_ADDED
	.comm	_CE_SKIP_WORKTREE,4,2           ## @CE_SKIP_WORKTREE
	.comm	_ERROR_WOULD_LOSE_UNTRACKED_OVERWRITTEN,4,2 ## @ERROR_WOULD_LOSE_UNTRACKED_OVERWRITTEN
L_.str.5:                               ## @.str.5
	.asciz	"Sparse checkout leaves no entry on working directory"

L_.str.6:                               ## @.str.6
	.asciz	"GIT_TEST_CHECK_CACHE_TREE"

	.comm	_the_repository,4,2             ## @the_repository
	.comm	_WRITE_TREE_SILENT,4,2          ## @WRITE_TREE_SILENT
	.comm	_WRITE_TREE_REPAIR,4,2          ## @WRITE_TREE_REPAIR
L_.str.7:                               ## @.str.7
	.asciz	"unpack_trees"

.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_unpack_trees                   ; -- Begin function unpack_trees
	.p2align	2
_unpack_trees:                          ; @unpack_trees
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #176
	.cfi_def_cfa_offset 176
	stp	x26, x25, [sp, #96]             ; 16-byte Folded Spill
	stp	x24, x23, [sp, #112]            ; 16-byte Folded Spill
	stp	x22, x21, [sp, #128]            ; 16-byte Folded Spill
	stp	x20, x19, [sp, #144]            ; 16-byte Folded Spill
	stp	x29, x30, [sp, #160]            ; 16-byte Folded Spill
	add	x29, sp, #160
	.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
	.cfi_offset w25, -72
	.cfi_offset w26, -80
	mov	x19, x2
	mov	x21, x1
	mov	x22, x0
Lloh0:
	adrp	x8, _MAX_UNPACK_TREES@GOTPAGE
Lloh1:
	ldr	x8, [x8, _MAX_UNPACK_TREES@GOTPAGEOFF]
Lloh2:
	ldr	w1, [x8]
	cmp	w1, w0
	b.hs	LBB0_2
; %bb.1:
Lloh3:
	adrp	x0, l_.str@PAGE
Lloh4:
	add	x0, x0, l_.str@PAGEOFF
	bl	_die
LBB0_2:
	bl	_trace_performance_enter
	add	x0, sp, #32
	mov	w1, #0
	mov	w2, #64
	bl	_memset
Lloh5:
	adrp	x8, _core_apply_sparse_checkout@GOTPAGE
Lloh6:
	ldr	x8, [x8, _core_apply_sparse_checkout@GOTPAGEOFF]
Lloh7:
	ldr	w8, [x8]
	cbz	w8, LBB0_7
; %bb.3:
	ldr	w8, [x19, #160]
	cbz	w8, LBB0_7
; %bb.4:
	ldr	w8, [x19]
	cbnz	w8, LBB0_8
; %bb.5:
Lloh8:
	adrp	x0, l_.str.1@PAGE
Lloh9:
	add	x0, x0, l_.str.1@PAGEOFF
	bl	_git_pathdup
	mov	x20, x0
Lloh10:
	adrp	x1, l_.str.2@PAGE
Lloh11:
	add	x1, x1, l_.str.2@PAGEOFF
	add	x23, sp, #32
	add	x3, sp, #32
	mov	w2, #0
	mov	x4, #0
	bl	_add_patterns_from_file_to_list
	tbnz	x0, #63, LBB0_56
; %bb.6:
	str	x23, [x19, #112]
	b	LBB0_57
LBB0_7:
	mov	w8, #1
	str	w8, [x19]
LBB0_8:
	add	x20, x19, #40
	mov	x0, x20
	mov	w1, #0
	mov	w2, #64
	bl	_memset
	mov	w8, #1
	str	w8, [x19, #40]
	ldr	x8, [x19, #24]
	ldr	w9, [x8, #56]
	str	w9, [x19, #96]
	ldr	d0, [x8, #48]
	str	d0, [x19, #88]
	ldr	x9, [x8, #40]
	cbz	x9, LBB0_11
; %bb.9:
	ldr	x10, [x19, #104]
	cmp	x8, x10
	b.eq	LBB0_12
; %bb.10:
	mov	x0, x20
	bl	_init_split_index
	str	x0, [x19, #80]
	ldr	x8, [x19, #24]
	b	LBB0_13
LBB0_11:
	str	xzr, [x19, #80]
	b	LBB0_13
LBB0_12:
	str	x9, [x19, #80]
	ldr	w10, [x9]
	add	w10, w10, #1
	str	w10, [x9]
LBB0_13:
	add	x0, x19, #72
	add	x1, x8, #32
	bl	_oidcpy
	str	w22, [x19, #4]
	ldr	x0, [x19, #24]
	bl	_mark_all_ce_unused
	ldr	w8, [x19]
	cbnz	w8, LBB0_15
; %bb.14:
	ldr	x0, [x19, #112]
	ldr	x1, [x19, #24]
Lloh12:
	adrp	x8, _CE_NEW_SKIP_WORKTREE@GOTPAGE
Lloh13:
	ldr	x8, [x8, _CE_NEW_SKIP_WORKTREE@GOTPAGEOFF]
Lloh14:
	ldr	w3, [x8]
	mov	w2, #0
	bl	_mark_new_skip_worktree
LBB0_15:
	adrp	x23, _unpack_trees.dfc@PAGE
	ldr	x0, [x23, _unpack_trees.dfc@PAGEOFF]
	cbz	x0, LBB0_17
; %bb.16:
	str	x0, [x19, #152]
	cbnz	w22, LBB0_18
	b	LBB0_23
LBB0_17:
	bl	_cache_entry_size
	mov	x1, x0
	mov	w0, #1
	bl	_xcalloc
	str	x0, [x23, _unpack_trees.dfc@PAGEOFF]
	str	x0, [x19, #152]
	cbz	w22, LBB0_23
LBB0_18:
	ldr	x8, [x19, #8]
Lloh15:
	adrp	x9, l_.str.2@PAGE
Lloh16:
	add	x9, x9, l_.str.2@PAGEOFF
	cmp	x8, #0
	csel	x1, x9, x8, eq
	mov	x0, sp
	bl	_setup_traverse_info
Lloh17:
	adrp	x8, _unpack_callback@GOTPAGE
Lloh18:
	ldr	x8, [x8, _unpack_callback@GOTPAGEOFF]
Lloh19:
	ldr	w8, [x8]
	str	w8, [sp, #24]
	ldr	x8, [x19, #32]
	stp	x8, x19, [sp, #8]
	ldr	w8, [x19, #144]
	str	w8, [sp]
	ldr	x8, [x19, #8]
	cbz	x8, LBB0_22
LBB0_19:                                ; =>This Inner Loop Header: Depth=1
	mov	x0, x19
	bl	_next_cache_entry
	cbz	x0, LBB0_22
; %bb.20:                               ;   in Loop: Header=BB0_19 Depth=1
	mov	x23, x0
	mov	x1, sp
	bl	_ce_in_traverse_path
	cbnz	x0, LBB0_22
; %bb.21:                               ;   in Loop: Header=BB0_19 Depth=1
	mov	x0, x23
	mov	x1, x19
	bl	_unpack_index_entry
	tbz	x0, #63, LBB0_19
	b	LBB0_26
LBB0_22:
	bl	_trace_performance_enter
	ldr	x0, [x19, #24]
	mov	x3, sp
	mov	x1, x22
	mov	x2, x21
	bl	_traverse_trees
	mov	x21, x0
Lloh20:
	adrp	x0, l_.str.3@PAGE
Lloh21:
	add	x0, x0, l_.str.3@PAGEOFF
	bl	_trace_performance_leave
	tbnz	w21, #31, LBB0_26
LBB0_23:
	ldr	x8, [x19, #136]
	cbz	x8, LBB0_29
LBB0_24:                                ; =>This Inner Loop Header: Depth=1
	mov	x0, x19
	bl	_next_cache_entry
	cbz	x0, LBB0_29
; %bb.25:                               ;   in Loop: Header=BB0_24 Depth=1
	mov	x1, x19
	bl	_unpack_index_entry
	tbz	x0, #63, LBB0_24
LBB0_26:
	ldr	x8, [x19, #32]
	cbz	x8, LBB0_28
; %bb.27:
	mov	x0, x19
	bl	_display_error_msgs
LBB0_28:
	ldr	x0, [x19, #24]
	bl	_mark_all_ce_unused
	mov	x0, x19
	mov	x1, #0
	bl	_unpack_failed
	ldr	x8, [x19, #16]
	cmp	x8, #0
	csel	w21, w0, wzr, eq
	b	LBB0_55
LBB0_29:
	ldr	x0, [x19, #24]
	bl	_mark_all_ce_unused
	ldr	x8, [x19, #128]
	cbz	x8, LBB0_33
; %bb.30:
	ldr	x8, [x19, #120]
	cbz	x8, LBB0_33
; %bb.31:
Lloh22:
	adrp	x1, l_.str.4@PAGE
Lloh23:
	add	x1, x1, l_.str.4@PAGEOFF
LBB0_32:
	mov	x0, x19
	bl	_unpack_failed
	mov	x21, x0
	b	LBB0_55
LBB0_33:
	ldr	w8, [x19]
	cbz	w8, LBB0_43
LBB0_34:
	mov	x0, x19
	bl	_check_updates
	cmp	x0, #0
	mov	w8, #-2
	csel	w21, wzr, w8, eq
	ldr	x8, [x19, #104]
	cbz	x8, LBB0_53
; %bb.35:
	mov	x22, x0
	ldr	x1, [x19, #24]
	mov	x0, x20
	bl	_move_index_extensions
	cbnz	x22, LBB0_42
; %bb.36:
Lloh24:
	adrp	x0, l_.str.6@PAGE
Lloh25:
	add	x0, x0, l_.str.6@PAGEOFF
	mov	w1, #0
	bl	_git_env_bool
	cbz	x0, LBB0_38
; %bb.37:
Lloh26:
	adrp	x8, _the_repository@GOTPAGE
Lloh27:
	ldr	x8, [x8, _the_repository@GOTPAGEOFF]
Lloh28:
	ldr	w0, [x8]
	mov	x1, x20
	bl	_cache_tree_verify
LBB0_38:
	ldr	x0, [x19, #56]
	cbnz	x0, LBB0_40
; %bb.39:
	bl	_cache_tree
	str	x0, [x19, #56]
LBB0_40:
	bl	_cache_tree_fully_valid
	cbnz	w0, LBB0_42
; %bb.41:
Lloh29:
	adrp	x8, _WRITE_TREE_SILENT@GOTPAGE
Lloh30:
	ldr	x8, [x8, _WRITE_TREE_SILENT@GOTPAGEOFF]
Lloh31:
	ldr	w8, [x8]
Lloh32:
	adrp	x9, _WRITE_TREE_REPAIR@GOTPAGE
Lloh33:
	ldr	x9, [x9, _WRITE_TREE_REPAIR@GOTPAGEOFF]
Lloh34:
	ldr	w9, [x9]
	orr	w1, w9, w8
	mov	x0, x20
	bl	_cache_tree_update
LBB0_42:
	mov	w8, #1
	str	w8, [x19, #48]
	ldr	x0, [x19, #104]
	bl	_discard_index
	ldr	x8, [x19, #104]
	ldp	q1, q0, [x20, #32]
	ldp	q3, q2, [x20]
	stp	q3, q2, [x8]
	stp	q1, q0, [x8, #32]
	b	LBB0_54
LBB0_43:
	ldr	x0, [x19, #112]
Lloh35:
	adrp	x22, _CE_ADDED@GOTPAGE
Lloh36:
	ldr	x22, [x22, _CE_ADDED@GOTPAGEOFF]
Lloh37:
	adrp	x8, _CE_SKIP_WORKTREE@GOTPAGE
Lloh38:
	ldr	x8, [x8, _CE_SKIP_WORKTREE@GOTPAGEOFF]
	ldr	w2, [x22]
Lloh39:
	ldr	w8, [x8]
Lloh40:
	adrp	x9, _CE_NEW_SKIP_WORKTREE@GOTPAGE
Lloh41:
	ldr	x9, [x9, _CE_NEW_SKIP_WORKTREE@GOTPAGEOFF]
Lloh42:
	ldr	w9, [x9]
	orr	w3, w9, w8
	mov	x1, x20
	bl	_mark_new_skip_worktree
	ldr	w8, [x19, #44]
	cmp	w8, #1
	b.lt	LBB0_58
; %bb.44:
	mov	x24, #0
	mov	w25, #0
	mov	w23, #1
Lloh43:
	adrp	x26, _ERROR_WOULD_LOSE_UNTRACKED_OVERWRITTEN@GOTPAGE
Lloh44:
	ldr	x26, [x26, _ERROR_WOULD_LOSE_UNTRACKED_OVERWRITTEN@GOTPAGEOFF]
	b	LBB0_47
LBB0_45:                                ;   in Loop: Header=BB0_47 Depth=1
	mov	w25, #-1
LBB0_46:                                ;   in Loop: Header=BB0_47 Depth=1
	mov	x0, x21
	bl	_ce_skip_worktree
	cmp	w0, #0
	csel	w23, wzr, w23, eq
	add	x24, x24, #1
	ldrsw	x8, [x19, #44]
	cmp	x24, x8
	b.ge	LBB0_59
LBB0_47:                                ; =>This Inner Loop Header: Depth=1
	ldr	x8, [x19, #64]
	ldr	x21, [x8, x24, lsl #3]
	ldr	w8, [x21]
	ldr	w9, [x22]
	tst	w9, w8
	b.eq	LBB0_51
; %bb.48:                               ;   in Loop: Header=BB0_47 Depth=1
	ldr	w1, [x26]
	mov	x0, x21
	mov	x2, x19
	bl	_verify_absent
	cbz	x0, LBB0_51
; %bb.49:                               ;   in Loop: Header=BB0_47 Depth=1
	ldr	x8, [x19, #32]
	cbz	x8, LBB0_26
; %bb.50:                               ;   in Loop: Header=BB0_47 Depth=1
	mov	w25, #-1
LBB0_51:                                ;   in Loop: Header=BB0_47 Depth=1
	mov	x0, x20
	mov	x1, x21
	mov	x2, x19
	bl	_apply_sparse_checkout
	cbz	x0, LBB0_46
; %bb.52:                               ;   in Loop: Header=BB0_47 Depth=1
	ldr	x8, [x19, #32]
	cbnz	x8, LBB0_45
	b	LBB0_26
LBB0_53:
	mov	x0, x20
	bl	_discard_index
LBB0_54:
	str	xzr, [x19, #24]
LBB0_55:
Lloh45:
	adrp	x0, l_.str.7@PAGE
Lloh46:
	add	x0, x0, l_.str.7@PAGEOFF
	bl	_trace_performance_leave
	add	x0, sp, #32
	bl	_clear_pattern_list
	mov	x0, x21
	ldp	x29, x30, [sp, #160]            ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #144]            ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #128]            ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #112]            ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #96]             ; 16-byte Folded Reload
	add	sp, sp, #176
	ret
LBB0_56:
	mov	w8, #1
	str	w8, [x19]
LBB0_57:
	mov	x0, x20
	bl	_free
	b	LBB0_8
LBB0_58:
	mov	w23, #1
	b	LBB0_60
LBB0_59:
	tbnz	w25, #31, LBB0_26
LBB0_60:
	cbz	w8, LBB0_34
; %bb.61:
	cbz	w23, LBB0_34
; %bb.62:
Lloh47:
	adrp	x1, l_.str.5@PAGE
Lloh48:
	add	x1, x1, l_.str.5@PAGEOFF
	b	LBB0_32
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpAdd	Lloh3, Lloh4
	.loh AdrpLdrGotLdr	Lloh5, Lloh6, Lloh7
	.loh AdrpAdd	Lloh10, Lloh11
	.loh AdrpAdd	Lloh8, Lloh9
	.loh AdrpLdrGotLdr	Lloh12, Lloh13, Lloh14
	.loh AdrpLdrGotLdr	Lloh17, Lloh18, Lloh19
	.loh AdrpAdd	Lloh15, Lloh16
	.loh AdrpAdd	Lloh20, Lloh21
	.loh AdrpAdd	Lloh22, Lloh23
	.loh AdrpAdd	Lloh24, Lloh25
	.loh AdrpLdrGotLdr	Lloh26, Lloh27, Lloh28
	.loh AdrpLdrGotLdr	Lloh32, Lloh33, Lloh34
	.loh AdrpLdrGotLdr	Lloh29, Lloh30, Lloh31
	.loh AdrpLdrGotLdr	Lloh40, Lloh41, Lloh42
	.loh AdrpLdrGotLdr	Lloh37, Lloh38, Lloh39
	.loh AdrpLdrGot	Lloh35, Lloh36
	.loh AdrpLdrGot	Lloh43, Lloh44
	.loh AdrpAdd	Lloh45, Lloh46
	.loh AdrpAdd	Lloh47, Lloh48
	.cfi_endproc
                                        ; -- End function
.zerofill __DATA,__bss,_unpack_trees.dfc,8,3 ; @unpack_trees.dfc
	.comm	_MAX_UNPACK_TREES,4,2           ; @MAX_UNPACK_TREES
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"unpack_trees takes at most %d trees"

	.comm	_core_apply_sparse_checkout,4,2 ; @core_apply_sparse_checkout
l_.str.1:                               ; @.str.1
	.asciz	"info/sparse-checkout"

l_.str.2:                               ; @.str.2
	.space	1

	.comm	_CE_NEW_SKIP_WORKTREE,4,2       ; @CE_NEW_SKIP_WORKTREE
	.comm	_unpack_callback,4,2            ; @unpack_callback
l_.str.3:                               ; @.str.3
	.asciz	"traverse_trees"

l_.str.4:                               ; @.str.4
	.asciz	"Merge requires file-level merging"

	.comm	_CE_ADDED,4,2                   ; @CE_ADDED
	.comm	_CE_SKIP_WORKTREE,4,2           ; @CE_SKIP_WORKTREE
	.comm	_ERROR_WOULD_LOSE_UNTRACKED_OVERWRITTEN,4,2 ; @ERROR_WOULD_LOSE_UNTRACKED_OVERWRITTEN
l_.str.5:                               ; @.str.5
	.asciz	"Sparse checkout leaves no entry on working directory"

l_.str.6:                               ; @.str.6
	.asciz	"GIT_TEST_CHECK_CACHE_TREE"

	.comm	_the_repository,4,2             ; @the_repository
	.comm	_WRITE_TREE_SILENT,4,2          ; @WRITE_TREE_SILENT
	.comm	_WRITE_TREE_REPAIR,4,2          ; @WRITE_TREE_REPAIR
l_.str.7:                               ; @.str.7
	.asciz	"unpack_trees"

.subsections_via_symbols
