	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function hb_dvdread_read
_hb_dvdread_read:                       ## @hb_dvdread_read
	.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	$72, %rsp
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	%rdi, %rbx
	movq	_HB_DVD_READ_BUFFER_SIZE@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_hb_buffer_init
	movq	%rax, %r14
	movq	%rax, -56(%rbp)
	leaq	L_.str(%rip), %r15
	leaq	L_.str.10(%rip), %r12
LBB0_1:                                 ## =>This Loop Header: Depth=1
                                        ##     Child Loop BB0_8 Depth 2
                                        ##       Child Loop BB0_11 Depth 3
	cmpl	$0, (%rbx)
	je	LBB0_4
## %bb.2:                               ##   in Loop: Header=BB0_1 Depth=1
	movl	80(%rbx), %edi
	movslq	64(%rbx), %rsi
	movq	8(%r14), %rcx
	movl	$1, %edx
	callq	_DVDReadBlocks
	cmpl	$1, %eax
	je	LBB0_50
## %bb.3:                               ##   in Loop: Header=BB0_1 Depth=1
	movl	64(%rbx), %esi
	movq	24(%rbx), %rdx
	movq	%r12, %rdi
	xorl	%eax, %eax
	callq	_hb_error
	movl	$0, (%rbx)
	jmp	LBB0_1
	.p2align	4, 0x90
LBB0_4:                                 ##   in Loop: Header=BB0_1 Depth=1
	movq	8(%rbx), %rax
	cmpq	16(%rbx), %rax
	ja	LBB0_53
## %bb.5:                               ##   in Loop: Header=BB0_1 Depth=1
	movl	$0, -44(%rbp)                   ## 4-byte Folded Spill
	jmp	LBB0_8
	.p2align	4, 0x90
LBB0_6:                                 ##   in Loop: Header=BB0_8 Depth=2
	movq	8(%rbx), %rsi
	movq	24(%rbx), %rax
	movq	%rax, (%rsp)
	leaq	L_.str.3(%rip), %rdi
	xorl	%eax, %eax
	callq	_hb_log
	movq	88(%rbx), %rax
	movq	(%rax), %rax
	movslq	32(%rbx), %rcx
	shlq	$4, %rcx
	movq	(%rax,%rcx), %rax
	cmpq	%rax, 24(%rbx)
	je	LBB0_23
## %bb.7:                               ##   in Loop: Header=BB0_8 Depth=2
	movq	%rax, 24(%rbx)
	movq	$0, 48(%rbx)
LBB0_8:                                 ##   Parent Loop BB0_1 Depth=1
                                        ## =>  This Loop Header: Depth=2
                                        ##       Child Loop BB0_11 Depth 3
	movq	24(%rbx), %rsi
	movl	$1, %r13d
	jmp	LBB0_11
	.p2align	4, 0x90
LBB0_9:                                 ##   in Loop: Header=BB0_11 Depth=3
	movq	24(%rbx), %rsi
	leal	(%r13,%r13), %eax
	leal	(%rax,%rax,4), %r12d
	movq	%r15, %rdi
	movl	%r12d, %edx
	xorl	%eax, %eax
	callq	_hb_log
	movslq	%r12d, %rsi
LBB0_10:                                ##   in Loop: Header=BB0_11 Depth=3
	addq	24(%rbx), %rsi
	movl	%r13d, %eax
	movq	%rsi, 24(%rbx)
	leal	1(%rax), %r13d
	cmpl	$1023, %eax                     ## imm = 0x3FF
	jge	LBB0_15
LBB0_11:                                ##   Parent Loop BB0_1 Depth=1
                                        ##     Parent Loop BB0_8 Depth=2
                                        ## =>    This Inner Loop Header: Depth=3
	movl	80(%rbx), %edi
	movq	8(%r14), %rcx
	movl	$1, %edx
	callq	_DVDReadBlocks
	cmpl	$1, %eax
	jne	LBB0_9
## %bb.12:                              ##   in Loop: Header=BB0_11 Depth=3
	cmpl	$2, %r13d
	jl	LBB0_18
## %bb.13:                              ##   in Loop: Header=BB0_11 Depth=3
	movq	8(%r14), %rdi
	callq	_is_nav_pack
	testl	%eax, %eax
	jne	LBB0_18
## %bb.14:                              ##   in Loop: Header=BB0_11 Depth=3
	movl	$1, %r13d
	movl	$1, %esi
	jmp	LBB0_10
	.p2align	4, 0x90
LBB0_15:                                ##   in Loop: Header=BB0_8 Depth=2
	cmpl	$1024, %r13d                    ## imm = 0x400
	jne	LBB0_18
## %bb.16:                              ##   in Loop: Header=BB0_8 Depth=2
	movl	32(%rbx), %edx
	leaq	L_.str.1(%rip), %rdi
	xorl	%eax, %eax
	callq	_hb_log
	movslq	32(%rbx), %rax
	movq	%rax, 8(%rbx)
	cmpq	%rax, 16(%rbx)
	jb	LBB0_47
## %bb.17:                              ##   in Loop: Header=BB0_8 Depth=2
	movl	$0, 36(%rbx)
	movq	88(%rbx), %rcx
	movq	(%rcx), %rcx
	shlq	$4, %rax
	movq	(%rcx,%rax), %rax
	movq	%rax, 24(%rbx)
	movq	%rbx, %rdi
	callq	_FindNextCell
	movl	$1, 40(%rbx)
	jmp	LBB0_8
	.p2align	4, 0x90
LBB0_18:                                ##   in Loop: Header=BB0_8 Depth=2
	movq	8(%r14), %rdi
	callq	_is_nav_pack
	testl	%eax, %eax
	je	LBB0_33
## %bb.19:                              ##   in Loop: Header=BB0_8 Depth=2
	movq	_DSI_START_BYTE@GOTPCREL(%rip), %rax
	movq	(%rax), %rsi
	shlq	$2, %rsi
	addq	8(%r14), %rsi
	leaq	-96(%rbp), %rdi
	callq	_navRead_DSI
	cmpl	$0, 44(%rbx)
	jne	LBB0_23
## %bb.20:                              ##   in Loop: Header=BB0_8 Depth=2
	movq	48(%rbx), %rcx
	testq	%rcx, %rcx
	je	LBB0_23
## %bb.21:                              ##   in Loop: Header=BB0_8 Depth=2
	movq	56(%rbx), %rdx
	movq	-80(%rbp), %r8
	movq	-72(%rbp), %r9
	cmpq	%r8, %rdx
	jne	LBB0_6
## %bb.22:                              ##   in Loop: Header=BB0_8 Depth=2
	cmpq	%r9, %rcx
	jne	LBB0_6
LBB0_23:                                ##   in Loop: Header=BB0_8 Depth=2
	movl	-96(%rbp), %eax
	movl	-64(%rbp), %ecx
	movslq	%ecx, %rsi
	movl	-60(%rbp), %edx
	movl	%eax, %edi
	andl	$-1073741824, %edi              ## imm = 0xC0000000
	cmpl	$-2147483648, %edi              ## imm = 0x80000000
	jne	LBB0_25
## %bb.24:                              ##   in Loop: Header=BB0_8 Depth=2
	movl	%eax, %edi
	andl	$1073741823, %edi               ## imm = 0x3FFFFFFF
	cmpl	$1073741823, %edi               ## imm = 0x3FFFFFFF
	jne	LBB0_27
LBB0_25:                                ##   in Loop: Header=BB0_8 Depth=2
	movl	-92(%rbp), %eax
	testl	%eax, %eax
	jns	LBB0_35
## %bb.26:                              ##   in Loop: Header=BB0_8 Depth=2
	movl	%eax, %edi
	andl	$1073741823, %edi               ## imm = 0x3FFFFFFF
	cmpl	$1073741823, %edi               ## imm = 0x3FFFFFFF
	je	LBB0_35
LBB0_27:                                ##   in Loop: Header=BB0_8 Depth=2
	leal	-1(%rdx), %edi
	cmpl	$1022, %edi                     ## imm = 0x3FE
	ja	LBB0_31
## %bb.28:                              ##   in Loop: Header=BB0_8 Depth=2
	cmpq	%rsi, 24(%rbx)
	jg	LBB0_31
## %bb.29:                              ##   in Loop: Header=BB0_8 Depth=2
	movl	72(%rbx), %edi
	addl	68(%rbx), %edi
	cmpl	%edi, %ecx
	jle	LBB0_36
## %bb.30:                              ##   in Loop: Header=BB0_8 Depth=2
	cmpl	76(%rbx), %ecx
	jle	LBB0_36
LBB0_31:                                ##   in Loop: Header=BB0_8 Depth=2
	movl	-44(%rbp), %eax                 ## 4-byte Reload
	cmpl	$1024, %eax                     ## imm = 0x400
	jae	LBB0_46
## %bb.32:                              ##   in Loop: Header=BB0_8 Depth=2
	incl	%eax
	movl	%eax, -44(%rbp)                 ## 4-byte Spill
	incq	24(%rbx)
	jmp	LBB0_8
	.p2align	4, 0x90
LBB0_33:                                ##   in Loop: Header=BB0_8 Depth=2
	movq	24(%rbx), %rsi
	incq	%rsi
	movq	%rsi, 24(%rbx)
	cmpl	$1, 44(%rbx)
	jne	LBB0_8
## %bb.34:                              ##   in Loop: Header=BB0_8 Depth=2
	leaq	L_.str.2(%rip), %rdi
	xorl	%eax, %eax
	callq	_hb_log
	movl	$0, 44(%rbx)
	jmp	LBB0_8
LBB0_35:                                ##   in Loop: Header=BB0_1 Depth=1
	movl	%ecx, 64(%rbx)
	movl	%edx, (%rbx)
	jmp	LBB0_37
LBB0_36:                                ##   in Loop: Header=BB0_1 Depth=1
	andl	$1073741823, %eax               ## imm = 0x3FFFFFFF
	addl	%ecx, %eax
	movl	%ecx, 64(%rbx)
	movl	%edx, (%rbx)
	cltq
	movq	%rax, 24(%rbx)
LBB0_37:                                ##   in Loop: Header=BB0_1 Depth=1
	movl	44(%rbx), %eax
	cmpl	$2, %eax
	leaq	L_.str.10(%rip), %r12
	je	LBB0_40
## %bb.38:                              ##   in Loop: Header=BB0_1 Depth=1
	testl	%eax, %eax
	jne	LBB0_41
## %bb.39:                              ##   in Loop: Header=BB0_1 Depth=1
	leaq	L_.str.5(%rip), %rdi
	xorl	%eax, %eax
	callq	_hb_log
LBB0_40:                                ##   in Loop: Header=BB0_1 Depth=1
	movl	$1, 44(%rbx)
LBB0_41:                                ##   in Loop: Header=BB0_1 Depth=1
	movl	-88(%rbp), %eax
	testl	%eax, %eax
	jns	LBB0_43
## %bb.42:                              ##   in Loop: Header=BB0_1 Depth=1
	andl	$1073741823, %eax               ## imm = 0x3FFFFFFF
	cmpl	$1073741823, %eax               ## imm = 0x3FFFFFFF
	jne	LBB0_60
LBB0_43:                                ##   in Loop: Header=BB0_1 Depth=1
	movq	8(%rbx), %rax
	movq	88(%rbx), %rcx
	movq	(%rcx), %rcx
	movq	%rax, %rsi
	shlq	$4, %rsi
	movq	(%rcx,%rsi), %rdx
	movslq	-64(%rbp), %rdi
	cmpq	%rdi, %rdx
	jae	LBB0_54
## %bb.44:                              ##   in Loop: Header=BB0_1 Depth=1
	cmpq	%rdi, 8(%rcx,%rsi)
	jl	LBB0_54
## %bb.45:                              ##   in Loop: Header=BB0_1 Depth=1
	movl	64(%rbx), %edx
	leaq	L_.str.6(%rip), %rdi
	movq	%rax, %rsi
	xorl	%eax, %eax
	callq	_hb_log
	movslq	32(%rbx), %rax
	movq	%rax, 8(%rbx)
	movl	$0, 36(%rbx)
	movq	88(%rbx), %rcx
	movq	(%rcx), %rcx
	shlq	$4, %rax
	movq	(%rcx,%rax), %rax
	movq	%rax, 24(%rbx)
	movq	%rbx, %rdi
	callq	_FindNextCell
	movl	$1, 40(%rbx)
	jmp	LBB0_1
LBB0_46:
	leaq	L_.str.4(%rip), %rdi
	xorl	%eax, %eax
	callq	_hb_error
LBB0_47:
	leaq	-56(%rbp), %rdi
	callq	_hb_buffer_close
	movl	96(%rbx), %edi
	movq	_HB_ERROR_READ@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	callq	_hb_set_work_error
LBB0_48:
	xorl	%r14d, %r14d
LBB0_49:
	movq	%r14, %rax
	addq	$72, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
LBB0_50:
	decl	(%rbx)
LBB0_51:
	movq	%rbx, %rdi
	callq	_hb_dvdread_is_break
	movl	%eax, (%r14)
LBB0_52:
	incl	64(%rbx)
	jmp	LBB0_49
LBB0_53:
	leaq	-56(%rbp), %rdi
	callq	_hb_buffer_close
	jmp	LBB0_48
LBB0_54:
	movslq	64(%rbx), %rcx
	cmpq	%rcx, %rdx
	je	LBB0_56
## %bb.55:
	leaq	L_.str.7(%rip), %rsi
	movl	$3, %edi
	movq	%rax, %rdx
	callq	_hb_deep_log
LBB0_56:
	cmpl	$0, 36(%rbx)
	je	LBB0_58
## %bb.57:
	movq	8(%rbx), %rsi
	movl	64(%rbx), %edx
	leaq	L_.str.8(%rip), %rdi
	xorl	%r15d, %r15d
	xorl	%eax, %eax
	callq	_hb_error
	movslq	32(%rbx), %rax
	movq	%rax, 8(%rbx)
	movq	88(%rbx), %rcx
	movq	(%rcx), %rcx
	shlq	$4, %rax
	movq	(%rcx,%rax), %rax
	movq	%rax, 24(%rbx)
	movq	%rbx, %rdi
	callq	_FindNextCell
	jmp	LBB0_59
LBB0_58:
	movl	$1, %r15d
LBB0_59:
	movl	%r15d, 36(%rbx)
	movdqu	-80(%rbp), %xmm0
	pshufd	$78, %xmm0, %xmm0               ## xmm0 = xmm0[2,3,0,1]
	movdqu	%xmm0, 48(%rbx)
	movl	$0, 40(%rbx)
LBB0_60:
	movl	-96(%rbp), %eax
	testl	%eax, %eax
	jns	LBB0_62
## %bb.61:
	andl	$1073741823, %eax               ## imm = 0x3FFFFFFF
	cmpl	$1073741823, %eax               ## imm = 0x3FFFFFFF
	jne	LBB0_66
LBB0_62:
	movslq	64(%rbx), %rcx
	movq	8(%rbx), %rdx
	movq	88(%rbx), %rax
	movq	(%rax), %rax
	movq	%rdx, %rsi
	shlq	$4, %rsi
	cmpq	%rcx, (%rax,%rsi)
	jae	LBB0_64
## %bb.63:
	cmpq	%rcx, 8(%rax,%rsi)
	jge	LBB0_65
LBB0_64:
	leaq	L_.str.9(%rip), %rsi
	movl	$3, %edi
	callq	_hb_deep_log
	movq	88(%rbx), %rax
	movq	(%rax), %rax
LBB0_65:
	movslq	32(%rbx), %rcx
	movq	%rcx, 8(%rbx)
	movl	$0, 36(%rbx)
	shlq	$4, %rcx
	movq	(%rax,%rcx), %rax
	movq	%rax, 24(%rbx)
	movq	%rbx, %rdi
	callq	_FindNextCell
	movl	$1, 40(%rbx)
LBB0_66:
	testq	%r14, %r14
	jne	LBB0_51
	jmp	LBB0_52
	.cfi_endproc
                                        ## -- End function
	.comm	_HB_DVD_READ_BUFFER_SIZE,4,2    ## @HB_DVD_READ_BUFFER_SIZE
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"dvd: vobu read error blk %d - skipping to next blk incr %d"

L_.str.1:                               ## @.str.1
	.asciz	"dvd: vobu read error blk %d - skipping to cell %d"

	.comm	_HB_ERROR_READ,4,2              ## @HB_ERROR_READ
L_.str.2:                               ## @.str.2
	.asciz	"dvd: Lost sync, searching for NAV pack at blk %d"

	.comm	_DSI_START_BYTE,8,3             ## @DSI_START_BYTE
L_.str.3:                               ## @.str.3
	.asciz	"dvd: left cell %d (%u,%u) for (%u,%u) at block %u"

L_.str.4:                               ## @.str.4
	.asciz	"dvd: couldn't find a VOBU after 1024 blocks"

L_.str.5:                               ## @.str.5
	.asciz	"dvd: In sync with DVD at block %d"

L_.str.6:                               ## @.str.6
	.asciz	"dvd: null prev_vobu in cell %d at block %d"

L_.str.7:                               ## @.str.7
	.asciz	"dvd: beginning of cell %d at block %d"

L_.str.8:                               ## @.str.8
	.asciz	"dvd: assuming missed end of cell %d at block %d"

L_.str.9:                               ## @.str.9
	.asciz	"dvd: end of cell %d at block %d"

L_.str.10:                              ## @.str.10
	.asciz	"dvd: DVDReadBlocks failed (%d), skipping to vobu %u"

	.no_dead_strip	_hb_dvdread_read
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function hb_dvdread_read
_hb_dvdread_read:                       ; @hb_dvdread_read
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #192
	.cfi_def_cfa_offset 192
	stp	x28, x27, [sp, #96]             ; 16-byte Folded Spill
	stp	x26, x25, [sp, #112]            ; 16-byte Folded Spill
	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
	.cfi_offset w25, -72
	.cfi_offset w26, -80
	.cfi_offset w27, -88
	.cfi_offset w28, -96
	mov	x19, x0
Lloh0:
	adrp	x8, _HB_DVD_READ_BUFFER_SIZE@GOTPAGE
Lloh1:
	ldr	x8, [x8, _HB_DVD_READ_BUFFER_SIZE@GOTPAGEOFF]
Lloh2:
	ldr	w0, [x8]
	bl	_hb_buffer_init
	mov	x20, x0
	str	x0, [sp, #88]
Lloh3:
	adrp	x21, l_.str.1@PAGE
Lloh4:
	add	x21, x21, l_.str.1@PAGEOFF
Lloh5:
	adrp	x28, _DSI_START_BYTE@GOTPAGE
Lloh6:
	ldr	x28, [x28, _DSI_START_BYTE@GOTPAGEOFF]
	mov	w25, #1
Lloh7:
	adrp	x23, l_.str.3@PAGE
Lloh8:
	add	x23, x23, l_.str.3@PAGEOFF
Lloh9:
	adrp	x26, l_.str@PAGE
Lloh10:
	add	x26, x26, l_.str@PAGEOFF
Lloh11:
	adrp	x22, l_.str.10@PAGE
Lloh12:
	add	x22, x22, l_.str.10@PAGEOFF
LBB0_1:                                 ; =>This Loop Header: Depth=1
                                        ;     Child Loop BB0_8 Depth 2
                                        ;       Child Loop BB0_11 Depth 3
	ldr	w8, [x19]
	cbz	w8, LBB0_4
; %bb.2:                                ;   in Loop: Header=BB0_1 Depth=1
	ldr	w0, [x19, #80]
	ldrsw	x1, [x19, #64]
	ldr	x3, [x20, #8]
	mov	w2, #1
	bl	_DVDReadBlocks
	cmp	w0, #1
	b.eq	LBB0_50
; %bb.3:                                ;   in Loop: Header=BB0_1 Depth=1
	ldr	x8, [x19, #24]
	ldr	w9, [x19, #64]
	stp	x9, x8, [sp]
	mov	x0, x22
	bl	_hb_error
	str	wzr, [x19]
	b	LBB0_1
LBB0_4:                                 ;   in Loop: Header=BB0_1 Depth=1
	ldp	x8, x9, [x19, #8]
	cmp	x8, x9
	b.hi	LBB0_53
; %bb.5:                                ;   in Loop: Header=BB0_1 Depth=1
	mov	w27, #0
	b	LBB0_8
LBB0_6:                                 ;   in Loop: Header=BB0_8 Depth=2
	ldr	x1, [x19, #8]
	ldr	x12, [x19, #24]
	stp	x11, x12, [sp, #24]
	stp	x8, x10, [sp, #8]
	str	x9, [sp]
	mov	x0, x23
	bl	_hb_log
	ldr	x9, [x19, #24]
	ldr	x8, [x19, #88]
	ldr	x8, [x8]
	ldrsw	x10, [x19, #32]
	lsl	x10, x10, #4
	ldr	x8, [x8, x10]
	cmp	x9, x8
	b.eq	LBB0_23
; %bb.7:                                ;   in Loop: Header=BB0_8 Depth=2
	str	x8, [x19, #24]
	str	xzr, [x19, #48]
LBB0_8:                                 ;   Parent Loop BB0_1 Depth=1
                                        ; =>  This Loop Header: Depth=2
                                        ;       Child Loop BB0_11 Depth 3
	ldr	x1, [x19, #24]
	mov	w24, #1
	b	LBB0_11
LBB0_9:                                 ;   in Loop: Header=BB0_11 Depth=3
	ldr	x1, [x19, #24]
	add	w8, w24, w24, lsl #2
	lsl	w22, w8, #1
	str	x22, [sp]
	mov	x0, x26
	bl	_hb_log
	sxtw	x8, w22
LBB0_10:                                ;   in Loop: Header=BB0_11 Depth=3
	ldr	x9, [x19, #24]
	add	x1, x9, x8
	str	x1, [x19, #24]
	add	w8, w24, #1
	cmp	w24, #1023
	mov	x24, x8
	b.ge	LBB0_15
LBB0_11:                                ;   Parent Loop BB0_1 Depth=1
                                        ;     Parent Loop BB0_8 Depth=2
                                        ; =>    This Inner Loop Header: Depth=3
	ldr	w0, [x19, #80]
	ldr	x3, [x20, #8]
	mov	w2, #1
	bl	_DVDReadBlocks
	cmp	w0, #1
	b.ne	LBB0_9
; %bb.12:                               ;   in Loop: Header=BB0_11 Depth=3
	cmp	w24, #2
	b.lt	LBB0_18
; %bb.13:                               ;   in Loop: Header=BB0_11 Depth=3
	ldr	x0, [x20, #8]
	bl	_is_nav_pack
	cbnz	w0, LBB0_18
; %bb.14:                               ;   in Loop: Header=BB0_11 Depth=3
	mov	w8, #1
	mov	w24, #1
	b	LBB0_10
LBB0_15:                                ;   in Loop: Header=BB0_8 Depth=2
	cmp	w8, #1024
	b.ne	LBB0_18
; %bb.16:                               ;   in Loop: Header=BB0_8 Depth=2
	ldr	w8, [x19, #32]
	str	x8, [sp]
	mov	x0, x21
	bl	_hb_log
	ldrsw	x8, [x19, #32]
	str	x8, [x19, #8]
	ldr	x9, [x19, #16]
	cmp	x9, x8
	b.lo	LBB0_47
; %bb.17:                               ;   in Loop: Header=BB0_8 Depth=2
	str	wzr, [x19, #36]
	ldr	x9, [x19, #88]
	ldr	x9, [x9]
	lsl	x8, x8, #4
	ldr	x8, [x9, x8]
	str	x8, [x19, #24]
	mov	x0, x19
	bl	_FindNextCell
	str	w25, [x19, #40]
	b	LBB0_8
LBB0_18:                                ;   in Loop: Header=BB0_8 Depth=2
	ldr	x0, [x20, #8]
	bl	_is_nav_pack
	cbz	w0, LBB0_33
; %bb.19:                               ;   in Loop: Header=BB0_8 Depth=2
	ldr	x8, [x20, #8]
	ldr	x9, [x28]
	add	x1, x8, x9, lsl #2
	add	x0, sp, #48
	bl	_navRead_DSI
	ldr	w8, [x19, #44]
	cbnz	w8, LBB0_23
; %bb.20:                               ;   in Loop: Header=BB0_8 Depth=2
	ldr	x8, [x19, #48]
	cbz	x8, LBB0_23
; %bb.21:                               ;   in Loop: Header=BB0_8 Depth=2
	ldr	x9, [x19, #56]
	ldp	x10, x11, [sp, #64]
	cmp	x9, x10
	b.ne	LBB0_6
; %bb.22:                               ;   in Loop: Header=BB0_8 Depth=2
	cmp	x8, x11
	b.ne	LBB0_6
LBB0_23:                                ;   in Loop: Header=BB0_8 Depth=2
	ldp	w8, w9, [sp, #80]
	ldr	w10, [sp, #48]
	sxtw	x1, w8
	lsr	w11, w10, #30
	cmp	w11, #2
	b.ne	LBB0_25
; %bb.24:                               ;   in Loop: Header=BB0_8 Depth=2
	and	w11, w10, #0x3fffffff
	mov	w12, #1073741823
	cmp	w11, w12
	b.ne	LBB0_27
LBB0_25:                                ;   in Loop: Header=BB0_8 Depth=2
	ldr	w10, [sp, #52]
	tbz	w10, #31, LBB0_35
; %bb.26:                               ;   in Loop: Header=BB0_8 Depth=2
	and	w11, w10, #0x3fffffff
	mov	w12, #1073741823
	cmp	w11, w12
	b.eq	LBB0_35
LBB0_27:                                ;   in Loop: Header=BB0_8 Depth=2
	sub	w11, w9, #1
	cmp	w11, #1022
	b.hi	LBB0_31
; %bb.28:                               ;   in Loop: Header=BB0_8 Depth=2
	ldr	x11, [x19, #24]
	cmp	x11, x1
	b.gt	LBB0_31
; %bb.29:                               ;   in Loop: Header=BB0_8 Depth=2
	ldp	w11, w12, [x19, #68]
	add	w11, w12, w11
	cmp	w8, w11
	b.le	LBB0_36
; %bb.30:                               ;   in Loop: Header=BB0_8 Depth=2
	ldr	w11, [x19, #76]
	cmp	w8, w11
	b.le	LBB0_36
LBB0_31:                                ;   in Loop: Header=BB0_8 Depth=2
	cmp	w27, #1024
	b.hs	LBB0_46
; %bb.32:                               ;   in Loop: Header=BB0_8 Depth=2
	add	w27, w27, #1
	ldr	x8, [x19, #24]
	add	x8, x8, #1
	str	x8, [x19, #24]
	b	LBB0_8
LBB0_33:                                ;   in Loop: Header=BB0_8 Depth=2
	ldr	x8, [x19, #24]
	add	x1, x8, #1
	str	x1, [x19, #24]
	ldr	w8, [x19, #44]
	cmp	w8, #1
	b.ne	LBB0_8
; %bb.34:                               ;   in Loop: Header=BB0_8 Depth=2
Lloh13:
	adrp	x0, l_.str.2@PAGE
Lloh14:
	add	x0, x0, l_.str.2@PAGEOFF
	bl	_hb_log
	str	wzr, [x19, #44]
	b	LBB0_8
LBB0_35:                                ;   in Loop: Header=BB0_1 Depth=1
	str	w8, [x19, #64]
	str	w9, [x19]
	b	LBB0_37
LBB0_36:                                ;   in Loop: Header=BB0_1 Depth=1
	and	w10, w10, #0x3fffffff
	add	w10, w10, w8
	str	w8, [x19, #64]
	str	w9, [x19]
	sxtw	x8, w10
	str	x8, [x19, #24]
LBB0_37:                                ;   in Loop: Header=BB0_1 Depth=1
	ldr	w8, [x19, #44]
	cmp	w8, #2
Lloh15:
	adrp	x22, l_.str.10@PAGE
Lloh16:
	add	x22, x22, l_.str.10@PAGEOFF
	b.eq	LBB0_40
; %bb.38:                               ;   in Loop: Header=BB0_1 Depth=1
	cbnz	w8, LBB0_41
; %bb.39:                               ;   in Loop: Header=BB0_1 Depth=1
Lloh17:
	adrp	x0, l_.str.5@PAGE
Lloh18:
	add	x0, x0, l_.str.5@PAGEOFF
	bl	_hb_log
LBB0_40:                                ;   in Loop: Header=BB0_1 Depth=1
	str	w25, [x19, #44]
LBB0_41:                                ;   in Loop: Header=BB0_1 Depth=1
	ldr	w8, [sp, #56]
	tbz	w8, #31, LBB0_43
; %bb.42:                               ;   in Loop: Header=BB0_1 Depth=1
	and	w8, w8, #0x3fffffff
	mov	w9, #1073741823
	cmp	w8, w9
	b.ne	LBB0_60
LBB0_43:                                ;   in Loop: Header=BB0_1 Depth=1
	ldr	x8, [x19, #88]
	ldr	x9, [x8]
	ldr	x2, [x19, #8]
	lsl	x8, x2, #4
	ldr	x8, [x9, x8]
	ldrsw	x10, [sp, #80]
	cmp	x8, x10
	b.hs	LBB0_54
; %bb.44:                               ;   in Loop: Header=BB0_1 Depth=1
	add	x9, x9, x2, lsl #4
	ldr	x9, [x9, #8]
	cmp	x9, x10
	b.lt	LBB0_54
; %bb.45:                               ;   in Loop: Header=BB0_1 Depth=1
	ldr	w8, [x19, #64]
	str	x8, [sp]
Lloh19:
	adrp	x0, l_.str.6@PAGE
Lloh20:
	add	x0, x0, l_.str.6@PAGEOFF
	mov	x1, x2
	bl	_hb_log
	ldrsw	x8, [x19, #32]
	str	x8, [x19, #8]
	str	wzr, [x19, #36]
	ldr	x9, [x19, #88]
	ldr	x9, [x9]
	lsl	x8, x8, #4
	ldr	x8, [x9, x8]
	str	x8, [x19, #24]
	mov	x0, x19
	bl	_FindNextCell
	str	w25, [x19, #40]
	b	LBB0_1
LBB0_46:
Lloh21:
	adrp	x0, l_.str.4@PAGE
Lloh22:
	add	x0, x0, l_.str.4@PAGEOFF
	bl	_hb_error
LBB0_47:
	add	x0, sp, #88
	bl	_hb_buffer_close
	ldr	w0, [x19, #96]
Lloh23:
	adrp	x8, _HB_ERROR_READ@GOTPAGE
Lloh24:
	ldr	x8, [x8, _HB_ERROR_READ@GOTPAGEOFF]
Lloh25:
	ldr	w1, [x8]
	bl	_hb_set_work_error
LBB0_48:
	mov	x20, #0
LBB0_49:
	mov	x0, x20
	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
	ldp	x26, x25, [sp, #112]            ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #96]             ; 16-byte Folded Reload
	add	sp, sp, #192
	ret
LBB0_50:
	ldr	w8, [x19]
	sub	w8, w8, #1
	str	w8, [x19]
LBB0_51:
	mov	x0, x19
	bl	_hb_dvdread_is_break
	str	w0, [x20]
LBB0_52:
	ldr	w8, [x19, #64]
	add	w8, w8, #1
	str	w8, [x19, #64]
	b	LBB0_49
LBB0_53:
	add	x0, sp, #88
	bl	_hb_buffer_close
	b	LBB0_48
LBB0_54:
	ldrsw	x3, [x19, #64]
	cmp	x8, x3
	b.eq	LBB0_56
; %bb.55:
Lloh26:
	adrp	x1, l_.str.7@PAGE
Lloh27:
	add	x1, x1, l_.str.7@PAGEOFF
	mov	w0, #3
	bl	_hb_deep_log
LBB0_56:
	ldr	w8, [x19, #36]
	cbz	w8, LBB0_58
; %bb.57:
	ldr	x8, [x19, #8]
	ldr	w9, [x19, #64]
	stp	x8, x9, [sp]
Lloh28:
	adrp	x0, l_.str.8@PAGE
Lloh29:
	add	x0, x0, l_.str.8@PAGEOFF
	bl	_hb_error
	ldrsw	x8, [x19, #32]
	str	x8, [x19, #8]
	ldr	x9, [x19, #88]
	ldr	x9, [x9]
	lsl	x8, x8, #4
	ldr	x8, [x9, x8]
	str	x8, [x19, #24]
	mov	x0, x19
	bl	_FindNextCell
	mov	w8, #0
	b	LBB0_59
LBB0_58:
	mov	w8, #1
LBB0_59:
	ldr	q0, [sp, #64]
	ext.16b	v0, v0, v0, #8
	str	q0, [x19, #48]
	stp	w8, wzr, [x19, #36]
LBB0_60:
	ldr	w8, [sp, #48]
	tbz	w8, #31, LBB0_62
; %bb.61:
	and	w8, w8, #0x3fffffff
	mov	w9, #1073741823
	cmp	w8, w9
	b.ne	LBB0_66
LBB0_62:
	ldrsw	x3, [x19, #64]
	ldr	x8, [x19, #88]
	ldr	x8, [x8]
	ldr	x2, [x19, #8]
	lsl	x9, x2, #4
	ldr	x9, [x8, x9]
	cmp	x9, x3
	b.hs	LBB0_64
; %bb.63:
	add	x9, x8, x2, lsl #4
	ldr	x9, [x9, #8]
	cmp	x9, x3
	b.ge	LBB0_65
LBB0_64:
Lloh30:
	adrp	x1, l_.str.9@PAGE
Lloh31:
	add	x1, x1, l_.str.9@PAGEOFF
	mov	w0, #3
	bl	_hb_deep_log
	ldr	x8, [x19, #88]
	ldr	x8, [x8]
LBB0_65:
	ldrsw	x9, [x19, #32]
	str	x9, [x19, #8]
	str	wzr, [x19, #36]
	lsl	x9, x9, #4
	ldr	x8, [x8, x9]
	str	x8, [x19, #24]
	mov	x0, x19
	bl	_FindNextCell
	mov	w8, #1
	str	w8, [x19, #40]
LBB0_66:
	cbnz	x20, LBB0_51
	b	LBB0_52
	.loh AdrpAdd	Lloh11, Lloh12
	.loh AdrpAdd	Lloh9, Lloh10
	.loh AdrpAdd	Lloh7, Lloh8
	.loh AdrpLdrGot	Lloh5, Lloh6
	.loh AdrpAdd	Lloh3, Lloh4
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpAdd	Lloh13, Lloh14
	.loh AdrpAdd	Lloh15, Lloh16
	.loh AdrpAdd	Lloh17, Lloh18
	.loh AdrpAdd	Lloh19, Lloh20
	.loh AdrpAdd	Lloh21, Lloh22
	.loh AdrpLdrGotLdr	Lloh23, Lloh24, Lloh25
	.loh AdrpAdd	Lloh26, Lloh27
	.loh AdrpAdd	Lloh28, Lloh29
	.loh AdrpAdd	Lloh30, Lloh31
	.cfi_endproc
                                        ; -- End function
	.comm	_HB_DVD_READ_BUFFER_SIZE,4,2    ; @HB_DVD_READ_BUFFER_SIZE
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"dvd: vobu read error blk %d - skipping to next blk incr %d"

l_.str.1:                               ; @.str.1
	.asciz	"dvd: vobu read error blk %d - skipping to cell %d"

	.comm	_HB_ERROR_READ,4,2              ; @HB_ERROR_READ
l_.str.2:                               ; @.str.2
	.asciz	"dvd: Lost sync, searching for NAV pack at blk %d"

	.comm	_DSI_START_BYTE,8,3             ; @DSI_START_BYTE
l_.str.3:                               ; @.str.3
	.asciz	"dvd: left cell %d (%u,%u) for (%u,%u) at block %u"

l_.str.4:                               ; @.str.4
	.asciz	"dvd: couldn't find a VOBU after 1024 blocks"

l_.str.5:                               ; @.str.5
	.asciz	"dvd: In sync with DVD at block %d"

l_.str.6:                               ; @.str.6
	.asciz	"dvd: null prev_vobu in cell %d at block %d"

l_.str.7:                               ; @.str.7
	.asciz	"dvd: beginning of cell %d at block %d"

l_.str.8:                               ; @.str.8
	.asciz	"dvd: assuming missed end of cell %d at block %d"

l_.str.9:                               ; @.str.9
	.asciz	"dvd: end of cell %d at block %d"

l_.str.10:                              ; @.str.10
	.asciz	"dvd: DVDReadBlocks failed (%d), skipping to vobu %u"

	.no_dead_strip	_hb_dvdread_read
.subsections_via_symbols
