	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function ivtv_decoder_ioctls
_ivtv_decoder_ioctls:                   ## @ivtv_decoder_ioctls
	.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	$40, %rsp
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	%rdx, %rbx
	movl	%esi, %r14d
	movq	%rdi, %r12
	movq	___stack_chk_guard@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	movq	%rax, -48(%rbp)
	movl	4(%rdi), %edi
	callq	_fh2id
	leal	-128(%r14), %edx
	cmpl	$13, %edx
	ja	LBB0_47
## %bb.1:
	movq	%rbx, -56(%rbp)                 ## 8-byte Spill
	movq	(%rax), %r15
	movq	16(%rax), %rbx
	movq	64(%rbx), %r13
	leaq	(,%r15,8), %rsi
	addq	%r13, %rsi
	leaq	LJTI0_0(%rip), %rcx
	movslq	(%rcx,%rdx,4), %rdx
	addq	%rcx, %rdx
	jmpq	*%rdx
LBB0_2:
	movq	%rax, %r15
	xorl	%r12d, %r12d
	cmpl	$128, %r14d
	sete	%r14b
	movq	%rbx, %r13
	movq	-56(%rbp), %rbx                 ## 8-byte Reload
	movl	12(%rbx), %esi
	leaq	L_.str.8(%rip), %rax
	leaq	L_.str.9(%rip), %rdi
	cmoveq	%rax, %rdi
	xorl	%eax, %eax
	callq	_IVTV_DEBUG_IOCTL
	movq	___stack_chk_guard@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	cmpq	-48(%rbp), %rax
	jne	LBB0_77
## %bb.3:
	movq	%r13, %rdi
	movb	%r14b, %r12b
	movq	%r15, %rsi
	movq	%rbx, %rdx
	movl	%r12d, %ecx
	leaq	-40(%rbp), %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_ivtv_video_command             ## TAILCALL
LBB0_4:
	movq	%rax, %r15
	leaq	L_.str.5(%rip), %rdi
	xorl	%eax, %eax
	callq	_IVTV_DEBUG_IOCTL
	leaq	-72(%rbp), %r14
	movq	%r14, %rdi
	xorl	%esi, %esi
	movl	$16, %edx
	callq	_memset
	movq	_VIDEO_CMD_STOP@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movl	%eax, -60(%rbp)
	movq	_VIDEO_CMD_STOP_TO_BLACK@GOTPCREL(%rip), %rax
	movq	_VIDEO_CMD_STOP_IMMEDIATELY@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	orl	(%rax), %ecx
	movl	%ecx, -72(%rbp)
	jmp	LBB0_35
LBB0_5:
	leaq	L_.str.12(%rip), %rdi
	xorl	%r12d, %r12d
	xorl	%eax, %eax
	callq	_IVTV_DEBUG_IOCTL
	movq	_V4L2_CAP_VIDEO_OUTPUT@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	testl	%eax, (%rbx)
	je	LBB0_42
## %bb.6:
	movq	_VIDEO_SOURCE_DEMUX@GOTPCREL(%rip), %rax
	xorl	%esi, %esi
	movq	-56(%rbp), %rcx                 ## 8-byte Reload
	cmpq	%rcx, (%rax)
	sete	%al
	movq	___stack_chk_guard@GOTPCREL(%rip), %rcx
	movq	(%rcx), %rcx
	cmpq	-48(%rbp), %rcx
	jne	LBB0_77
## %bb.7:
	movb	%al, %sil
	movq	%rbx, %rdi
	leaq	-40(%rbp), %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_ivtv_passthrough_mode          ## TAILCALL
LBB0_8:
	movq	%rax, %r15
	leaq	L_.str.4(%rip), %rdi
	xorl	%eax, %eax
	callq	_IVTV_DEBUG_IOCTL
	leaq	-72(%rbp), %r14
	movq	%r14, %rdi
	xorl	%esi, %esi
	movl	$16, %edx
	callq	_memset
	movq	_VIDEO_CMD_PLAY@GOTPCREL(%rip), %rax
	jmp	LBB0_34
LBB0_9:
	movq	%rsi, %r12
	movq	%rsp, %r14
	movq	_CX2341X_MBOX_MAX_DATA@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	shlq	$2, %rax
	callq	____chkstk_darwin
	addq	$15, %rax
	andq	$-16, %rax
	subq	%rax, %rsp
	movq	%rsp, -80(%rbp)                 ## 8-byte Spill
	leaq	L_.str.1(%rip), %rdi
	xorl	%eax, %eax
	callq	_IVTV_DEBUG_IOCTL
	movl	4(%r13,%r15,8), %eax
	movq	_IVTV_DEC_STREAM_TYPE_MPG@GOTPCREL(%rip), %rcx
	cmpl	(%rcx), %eax
	jge	LBB0_50
## %bb.10:
	movl	(%r12), %eax
	movq	-56(%rbp), %rcx                 ## 8-byte Reload
	movl	%eax, (%rcx)
	jmp	LBB0_52
LBB0_11:
	movq	%rbx, %r12
	movq	%rsp, %r14
	movq	_CX2341X_MBOX_MAX_DATA@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	shlq	$2, %rax
	callq	____chkstk_darwin
	addq	$15, %rax
	andq	$-16, %rax
	subq	%rax, %rsp
	movq	%rsp, -80(%rbp)                 ## 8-byte Spill
	leaq	L_.str.3(%rip), %rdi
	xorl	%ebx, %ebx
	xorl	%eax, %eax
	callq	_IVTV_DEBUG_IOCTL
	movl	4(%r13,%r15,8), %eax
	movq	_IVTV_DEC_STREAM_TYPE_MPG@GOTPCREL(%rip), %rcx
	cmpl	(%rcx), %eax
	jl	LBB0_15
## %bb.12:
	movq	_V4L2_CAP_VIDEO_OUTPUT@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	testl	%eax, (%r12)
	je	LBB0_59
## %bb.13:
	movq	%r12, %rbx
	movq	_IVTV_F_I_VALID_DEC_TIMINGS@GOTPCREL(%rip), %r15
	movl	(%r15), %edi
	leaq	48(%r12), %r13
	movq	%r13, %rsi
	callq	_test_bit
	testl	%eax, %eax
	je	LBB0_60
## %bb.14:
	movq	8(%rbx), %rax
	movl	(%rax), %ebx
LBB0_15:
	movq	-56(%rbp), %rax                 ## 8-byte Reload
	movl	%ebx, (%rax)
	jmp	LBB0_52
LBB0_16:
	movq	_O_NONBLOCK@GOTPCREL(%rip), %rax
	movl	(%rax), %r14d
	andl	(%r12), %r14d
	movq	_wait@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_DEFINE_WAIT
	leaq	L_.str.10(%rip), %rdi
	xorl	%r12d, %r12d
	xorl	%eax, %eax
	callq	_IVTV_DEBUG_IOCTL
	movq	_V4L2_CAP_VIDEO_OUTPUT@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	testl	%eax, (%rbx)
	je	LBB0_42
## %bb.17:
	movq	%rbx, %r15
	movq	-56(%rbp), %rdi                 ## 8-byte Reload
	xorl	%esi, %esi
	movl	$16, %edx
	callq	_memset
	movq	_IVTV_F_I_EV_VSYNC_ENABLED@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	addq	$48, %rbx
	movq	%rbx, %rsi
	callq	_set_bit
	leaq	40(%r15), %r12
	leaq	44(%r15), %r13
	jmp	LBB0_19
	.p2align	4, 0x90
LBB0_18:                                ##   in Loop: Header=BB0_19 Depth=1
	movq	%r13, %rdi
	movq	_wait@GOTPCREL(%rip), %rsi
	callq	_finish_wait
	movq	%r12, %rdi
	callq	_mutex_lock
	movq	_current@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_signal_pending
	testl	%eax, %eax
	jne	LBB0_57
LBB0_19:                                ## =>This Inner Loop Header: Depth=1
	movq	_IVTV_F_I_EV_DEC_STOPPED@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	%rbx, %rsi
	callq	_test_and_clear_bit
	testl	%eax, %eax
	je	LBB0_21
## %bb.20:                              ##   in Loop: Header=BB0_19 Depth=1
	movq	_VIDEO_EVENT_DECODER_STOPPED@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movq	-56(%rbp), %rcx                 ## 8-byte Reload
	movl	%eax, 4(%rcx)
	testl	%eax, %eax
	je	LBB0_28
	jmp	LBB0_73
LBB0_21:                                ##   in Loop: Header=BB0_19 Depth=1
	movq	_IVTV_F_I_EV_VSYNC@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	%rbx, %rsi
	callq	_test_and_clear_bit
	testl	%eax, %eax
	je	LBB0_27
## %bb.22:                              ##   in Loop: Header=BB0_19 Depth=1
	movq	_VIDEO_EVENT_VSYNC@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movq	-56(%rbp), %rcx                 ## 8-byte Reload
	movl	%eax, 4(%rcx)
	movq	_IVTV_F_I_EV_VSYNC_FIELD@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	%rbx, %rsi
	callq	_test_bit
	movq	_VIDEO_VSYNC_FIELD_ODD@GOTPCREL(%rip), %rcx
	testl	%eax, %eax
	jne	LBB0_24
## %bb.23:                              ##   in Loop: Header=BB0_19 Depth=1
	movq	_VIDEO_VSYNC_FIELD_EVEN@GOTPCREL(%rip), %rcx
LBB0_24:                                ##   in Loop: Header=BB0_19 Depth=1
	movl	(%rcx), %eax
	movq	-56(%rbp), %rcx                 ## 8-byte Reload
	movl	%eax, 8(%rcx)
	movl	56(%r15), %eax
	movq	_OUT_UDMA_YUV@GOTPCREL(%rip), %rcx
	cmpl	(%rcx), %eax
	jne	LBB0_27
## %bb.25:                              ##   in Loop: Header=BB0_19 Depth=1
	movq	_IVTV_YUV_MODE_MASK@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	andl	52(%r15), %eax
	movq	_IVTV_YUV_MODE_PROGRESSIVE@GOTPCREL(%rip), %rcx
	cmpl	(%rcx), %eax
	jne	LBB0_27
## %bb.26:                              ##   in Loop: Header=BB0_19 Depth=1
	movq	_VIDEO_VSYNC_FIELD_PROGRESSIVE@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movq	-56(%rbp), %rcx                 ## 8-byte Reload
	movl	%eax, 8(%rcx)
LBB0_27:                                ##   in Loop: Header=BB0_19 Depth=1
	movq	-56(%rbp), %rax                 ## 8-byte Reload
	movl	4(%rax), %eax
	testl	%eax, %eax
	jne	LBB0_73
LBB0_28:                                ##   in Loop: Header=BB0_19 Depth=1
	testl	%r14d, %r14d
	jne	LBB0_56
## %bb.29:                              ##   in Loop: Header=BB0_19 Depth=1
	movq	%r12, %rdi
	callq	_mutex_unlock
	movq	_TASK_INTERRUPTIBLE@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	movq	%r13, %rdi
	movq	_wait@GOTPCREL(%rip), %rsi
	callq	_prepare_to_wait
	movq	_IVTV_F_I_EV_DEC_STOPPED@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	%rbx, %rsi
	callq	_test_bit
	testl	%eax, %eax
	jne	LBB0_18
## %bb.30:                              ##   in Loop: Header=BB0_19 Depth=1
	movq	_IVTV_F_I_EV_VSYNC@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	%rbx, %rsi
	callq	_test_bit
	testl	%eax, %eax
	jne	LBB0_18
## %bb.31:                              ##   in Loop: Header=BB0_19 Depth=1
	xorl	%eax, %eax
	callq	_schedule
	jmp	LBB0_18
LBB0_32:
	movq	%rax, %r15
	leaq	L_.str.6(%rip), %rdi
	xorl	%eax, %eax
	callq	_IVTV_DEBUG_IOCTL
	leaq	-72(%rbp), %r14
	movq	%r14, %rdi
	xorl	%esi, %esi
	movl	$16, %edx
	callq	_memset
	movq	_VIDEO_CMD_FREEZE@GOTPCREL(%rip), %rax
	jmp	LBB0_34
LBB0_33:
	movq	%rax, %r15
	leaq	L_.str.7(%rip), %rdi
	xorl	%eax, %eax
	callq	_IVTV_DEBUG_IOCTL
	leaq	-72(%rbp), %r14
	movq	%r14, %rdi
	xorl	%esi, %esi
	movl	$16, %edx
	callq	_memset
	movq	_VIDEO_CMD_CONTINUE@GOTPCREL(%rip), %rax
LBB0_34:
	movl	(%rax), %eax
	movl	%eax, -60(%rbp)
LBB0_35:
	movq	%rbx, %rdi
	movq	%r15, %rsi
	movq	%r14, %rdx
	xorl	%ecx, %ecx
	callq	_ivtv_video_command
	movl	%eax, %r12d
	jmp	LBB0_67
LBB0_36:
	movq	%rsi, %r15
	movq	%rax, %r14
	leaq	L_.str(%rip), %rdi
	xorl	%r12d, %r12d
	xorl	%eax, %eax
	callq	_IVTV_DEBUG_IOCTL
	movq	_V4L2_CAP_VIDEO_OUTPUT@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	testl	%eax, (%rbx)
	je	LBB0_42
## %bb.37:
	movq	%rbx, %r13
	movq	-56(%rbp), %rbx                 ## 8-byte Reload
	movl	8(%rbx), %eax
	movq	_V4L2_BUF_TYPE_VIDEO_OUTPUT@GOTPCREL(%rip), %rcx
	cmpl	(%rcx), %eax
	jne	LBB0_47
## %bb.38:
	movl	56(%r13), %eax
	movq	_OUT_UDMA_YUV@GOTPCREL(%rip), %r12
	cmpl	(%r12), %eax
	jne	LBB0_40
## %bb.39:
	cmpq	$0, (%rbx)
	je	LBB0_73
LBB0_40:
	movq	%r14, %rdi
	movq	(%r14), %rsi
	callq	_ivtv_start_decoding
	testl	%eax, %eax
	je	LBB0_69
## %bb.41:
	movq	_EBUSY@GOTPCREL(%rip), %rax
	jmp	LBB0_48
LBB0_42:
	movq	_EINVAL@GOTPCREL(%rip), %rax
	jmp	LBB0_49
LBB0_43:
	leaq	L_.str.13(%rip), %rdi
	xorl	%r12d, %r12d
	xorl	%eax, %eax
	callq	_IVTV_DEBUG_IOCTL
	movq	-56(%rbp), %rax                 ## 8-byte Reload
	movq	%rax, 16(%rbx)
	jmp	LBB0_67
LBB0_44:
	leaq	L_.str.14(%rip), %rdi
	xorl	%r12d, %r12d
	xorl	%eax, %eax
	callq	_IVTV_DEBUG_IOCTL
	movq	_AUDIO_STEREO_SWAPPED@GOTPCREL(%rip), %rax
	movq	-56(%rbp), %r8                  ## 8-byte Reload
	cmpq	%r8, (%rax)
	jb	LBB0_47
## %bb.45:
	movq	%r8, 24(%rbx)
	movq	_CX2341X_DEC_SET_AUDIO_MODE@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	32(%rbx), %rcx
	jmp	LBB0_54
LBB0_46:
	leaq	L_.str.15(%rip), %rdi
	xorl	%r12d, %r12d
	xorl	%eax, %eax
	callq	_IVTV_DEBUG_IOCTL
	movq	_AUDIO_STEREO_SWAPPED@GOTPCREL(%rip), %rax
	movq	-56(%rbp), %rcx                 ## 8-byte Reload
	cmpq	%rcx, (%rax)
	jae	LBB0_53
LBB0_47:
	movq	_EINVAL@GOTPCREL(%rip), %rax
LBB0_48:
	xorl	%r12d, %r12d
LBB0_49:
	subl	(%rax), %r12d
	jmp	LBB0_67
LBB0_50:
	movq	_V4L2_CAP_VIDEO_OUTPUT@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	testl	%eax, (%rbx)
	je	LBB0_59
## %bb.51:
	movq	%rbx, %r13
	movq	_IVTV_F_I_VALID_DEC_TIMINGS@GOTPCREL(%rip), %r15
	movl	(%r15), %edi
	addq	$48, %rbx
	movq	%rbx, %rsi
	callq	_test_bit
	testl	%eax, %eax
	je	LBB0_63
LBB0_52:
	movq	%r14, %rsp
	xorl	%r12d, %r12d
	jmp	LBB0_67
LBB0_53:
	movq	%rcx, 32(%rbx)
	movq	_CX2341X_DEC_SET_AUDIO_MODE@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	24(%rbx), %r8
LBB0_54:
	movq	%rbx, %rdi
	movl	$2, %edx
	callq	_ivtv_vapi
	jmp	LBB0_67
LBB0_59:
	movq	_EINVAL@GOTPCREL(%rip), %rax
LBB0_66:
	xorl	%r12d, %r12d
	subl	(%rax), %r12d
	movq	%r14, %rsp
	jmp	LBB0_67
LBB0_56:
	movq	_EAGAIN@GOTPCREL(%rip), %rax
	jmp	LBB0_48
LBB0_57:
	leaq	L_.str.11(%rip), %rdi
	callq	_IVTV_DEBUG_INFO
	movq	_EINTR@GOTPCREL(%rip), %rax
	jmp	LBB0_48
LBB0_60:
	movq	-56(%rbp), %rax                 ## 8-byte Reload
	movl	$0, (%rax)
	leaq	60(%rbx), %rdi
	callq	_atomic_read
	testl	%eax, %eax
	je	LBB0_52
## %bb.61:
	movq	_CX2341X_DEC_GET_TIMING_INFO@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%rbx, %rdi
	movl	$5, %edx
	movq	-80(%rbp), %r12                 ## 8-byte Reload
	movq	%r12, %rcx
	callq	_ivtv_api
	testl	%eax, %eax
	jne	LBB0_65
## %bb.62:
	movq	8(%rbx), %rdi
	movq	%r12, %rsi
	movl	$8, %edx
	callq	_memcpy
	movl	(%r15), %edi
	movq	%r13, %rsi
	callq	_set_bit
	movl	(%r12), %ebx
	jmp	LBB0_15
LBB0_63:
	movq	-56(%rbp), %rax                 ## 8-byte Reload
	movl	$0, (%rax)
	leaq	60(%r13), %rdi
	callq	_atomic_read
	testl	%eax, %eax
	je	LBB0_52
## %bb.64:
	movq	_CX2341X_DEC_GET_TIMING_INFO@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r13, %rdi
	movl	$5, %edx
	movq	-80(%rbp), %r12                 ## 8-byte Reload
	movq	%r12, %rcx
	callq	_ivtv_api
	testl	%eax, %eax
	je	LBB0_75
LBB0_65:
	leaq	L_.str.2(%rip), %rdi
	callq	_IVTV_DEBUG_WARN
	movq	_EIO@GOTPCREL(%rip), %rax
	jmp	LBB0_66
LBB0_69:
	movl	(%r12), %esi
	movq	%r13, %rdi
	callq	_ivtv_set_output_mode
	cmpl	(%r12), %eax
	jne	LBB0_74
## %bb.70:
	movl	$1, 8(%r14)
	cmpq	$0, (%rbx)
	je	LBB0_73
## %bb.71:
	movq	___stack_chk_guard@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	cmpq	-48(%rbp), %rax
	jne	LBB0_77
## %bb.72:
	movq	%r13, %rdi
	movq	%rbx, %rsi
	leaq	-40(%rbp), %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_ivtv_yuv_prep_frame            ## TAILCALL
LBB0_73:
	xorl	%r12d, %r12d
LBB0_67:
	movq	___stack_chk_guard@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	cmpq	-48(%rbp), %rax
	jne	LBB0_77
## %bb.68:
	movl	%r12d, %eax
	leaq	-40(%rbp), %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
LBB0_74:
	movq	%r15, %rdi
	callq	_ivtv_release_stream
	movq	_EBUSY@GOTPCREL(%rip), %rax
	jmp	LBB0_48
LBB0_75:
	movq	8(%r13), %rdi
	movq	%r12, %rsi
	movl	$8, %edx
	callq	_memcpy
	movl	(%r15), %edi
	movq	%rbx, %rsi
	callq	_set_bit
	jmp	LBB0_52
LBB0_77:
	callq	___stack_chk_fail
	.cfi_endproc
	.p2align	2, 0x90
	.data_region jt32
.set L0_0_set_2, LBB0_2-LJTI0_0
.set L0_0_set_4, LBB0_4-LJTI0_0
.set L0_0_set_5, LBB0_5-LJTI0_0
.set L0_0_set_8, LBB0_8-LJTI0_0
.set L0_0_set_9, LBB0_9-LJTI0_0
.set L0_0_set_11, LBB0_11-LJTI0_0
.set L0_0_set_16, LBB0_16-LJTI0_0
.set L0_0_set_32, LBB0_32-LJTI0_0
.set L0_0_set_33, LBB0_33-LJTI0_0
.set L0_0_set_36, LBB0_36-LJTI0_0
.set L0_0_set_43, LBB0_43-LJTI0_0
.set L0_0_set_44, LBB0_44-LJTI0_0
.set L0_0_set_46, LBB0_46-LJTI0_0
LJTI0_0:
	.long	L0_0_set_2
	.long	L0_0_set_4
	.long	L0_0_set_5
	.long	L0_0_set_8
	.long	L0_0_set_9
	.long	L0_0_set_11
	.long	L0_0_set_16
	.long	L0_0_set_32
	.long	L0_0_set_33
	.long	L0_0_set_2
	.long	L0_0_set_36
	.long	L0_0_set_43
	.long	L0_0_set_44
	.long	L0_0_set_46
	.end_data_region
                                        ## -- End function
	.comm	_O_NONBLOCK,4,2                 ## @O_NONBLOCK
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"IVTV_IOC_DMA_FRAME\n"

	.comm	_V4L2_CAP_VIDEO_OUTPUT,4,2      ## @V4L2_CAP_VIDEO_OUTPUT
	.comm	_EINVAL,4,2                     ## @EINVAL
	.comm	_V4L2_BUF_TYPE_VIDEO_OUTPUT,4,2 ## @V4L2_BUF_TYPE_VIDEO_OUTPUT
	.comm	_OUT_UDMA_YUV,4,2               ## @OUT_UDMA_YUV
	.comm	_EBUSY,4,2                      ## @EBUSY
	.comm	_CX2341X_MBOX_MAX_DATA,4,2      ## @CX2341X_MBOX_MAX_DATA
L_.str.1:                               ## @.str.1
	.asciz	"VIDEO_GET_PTS\n"

	.comm	_IVTV_DEC_STREAM_TYPE_MPG,4,2   ## @IVTV_DEC_STREAM_TYPE_MPG
	.comm	_IVTV_F_I_VALID_DEC_TIMINGS,4,2 ## @IVTV_F_I_VALID_DEC_TIMINGS
	.comm	_CX2341X_DEC_GET_TIMING_INFO,4,2 ## @CX2341X_DEC_GET_TIMING_INFO
L_.str.2:                               ## @.str.2
	.asciz	"GET_TIMING: couldn't read clock\n"

	.comm	_EIO,4,2                        ## @EIO
L_.str.3:                               ## @.str.3
	.asciz	"VIDEO_GET_FRAME_COUNT\n"

L_.str.4:                               ## @.str.4
	.asciz	"VIDEO_PLAY\n"

	.comm	_VIDEO_CMD_PLAY,4,2             ## @VIDEO_CMD_PLAY
L_.str.5:                               ## @.str.5
	.asciz	"VIDEO_STOP\n"

	.comm	_VIDEO_CMD_STOP,4,2             ## @VIDEO_CMD_STOP
	.comm	_VIDEO_CMD_STOP_TO_BLACK,4,2    ## @VIDEO_CMD_STOP_TO_BLACK
	.comm	_VIDEO_CMD_STOP_IMMEDIATELY,4,2 ## @VIDEO_CMD_STOP_IMMEDIATELY
L_.str.6:                               ## @.str.6
	.asciz	"VIDEO_FREEZE\n"

	.comm	_VIDEO_CMD_FREEZE,4,2           ## @VIDEO_CMD_FREEZE
L_.str.7:                               ## @.str.7
	.asciz	"VIDEO_CONTINUE\n"

	.comm	_VIDEO_CMD_CONTINUE,4,2         ## @VIDEO_CMD_CONTINUE
L_.str.8:                               ## @.str.8
	.asciz	"VIDEO_TRY_COMMAND %d\n"

L_.str.9:                               ## @.str.9
	.asciz	"VIDEO_COMMAND %d\n"

	.comm	_wait,4,2                       ## @wait
L_.str.10:                              ## @.str.10
	.asciz	"VIDEO_GET_EVENT\n"

	.comm	_IVTV_F_I_EV_VSYNC_ENABLED,4,2  ## @IVTV_F_I_EV_VSYNC_ENABLED
	.comm	_IVTV_F_I_EV_DEC_STOPPED,4,2    ## @IVTV_F_I_EV_DEC_STOPPED
	.comm	_VIDEO_EVENT_DECODER_STOPPED,4,2 ## @VIDEO_EVENT_DECODER_STOPPED
	.comm	_IVTV_F_I_EV_VSYNC,4,2          ## @IVTV_F_I_EV_VSYNC
	.comm	_VIDEO_EVENT_VSYNC,4,2          ## @VIDEO_EVENT_VSYNC
	.comm	_IVTV_F_I_EV_VSYNC_FIELD,4,2    ## @IVTV_F_I_EV_VSYNC_FIELD
	.comm	_VIDEO_VSYNC_FIELD_ODD,4,2      ## @VIDEO_VSYNC_FIELD_ODD
	.comm	_VIDEO_VSYNC_FIELD_EVEN,4,2     ## @VIDEO_VSYNC_FIELD_EVEN
	.comm	_IVTV_YUV_MODE_MASK,4,2         ## @IVTV_YUV_MODE_MASK
	.comm	_IVTV_YUV_MODE_PROGRESSIVE,4,2  ## @IVTV_YUV_MODE_PROGRESSIVE
	.comm	_VIDEO_VSYNC_FIELD_PROGRESSIVE,4,2 ## @VIDEO_VSYNC_FIELD_PROGRESSIVE
	.comm	_EAGAIN,4,2                     ## @EAGAIN
	.comm	_TASK_INTERRUPTIBLE,4,2         ## @TASK_INTERRUPTIBLE
	.comm	_current,4,2                    ## @current
L_.str.11:                              ## @.str.11
	.asciz	"User stopped wait for event\n"

	.comm	_EINTR,4,2                      ## @EINTR
L_.str.12:                              ## @.str.12
	.asciz	"VIDEO_SELECT_SOURCE\n"

	.comm	_VIDEO_SOURCE_DEMUX,8,3         ## @VIDEO_SOURCE_DEMUX
L_.str.13:                              ## @.str.13
	.asciz	"AUDIO_SET_MUTE\n"

L_.str.14:                              ## @.str.14
	.asciz	"AUDIO_CHANNEL_SELECT\n"

	.comm	_AUDIO_STEREO_SWAPPED,8,3       ## @AUDIO_STEREO_SWAPPED
	.comm	_CX2341X_DEC_SET_AUDIO_MODE,4,2 ## @CX2341X_DEC_SET_AUDIO_MODE
L_.str.15:                              ## @.str.15
	.asciz	"AUDIO_BILINGUAL_CHANNEL_SELECT\n"

	.no_dead_strip	_ivtv_decoder_ioctls
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function ivtv_decoder_ioctls
_ivtv_decoder_ioctls:                   ; @ivtv_decoder_ioctls
	.cfi_startproc
; %bb.0:
	stp	x28, x27, [sp, #-96]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 96
	stp	x26, x25, [sp, #16]             ; 16-byte Folded Spill
	stp	x24, x23, [sp, #32]             ; 16-byte Folded Spill
	stp	x22, x21, [sp, #48]             ; 16-byte Folded Spill
	stp	x20, x19, [sp, #64]             ; 16-byte Folded Spill
	stp	x29, x30, [sp, #80]             ; 16-byte Folded Spill
	add	x29, sp, #80
	.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
	sub	sp, sp, #32
	mov	x20, x2
	mov	x23, x1
	mov	x24, x0
Lloh0:
	adrp	x8, ___stack_chk_guard@GOTPAGE
Lloh1:
	ldr	x8, [x8, ___stack_chk_guard@GOTPAGEOFF]
Lloh2:
	ldr	x8, [x8]
	stur	x8, [x29, #-88]
	ldr	w0, [x0, #4]
	bl	_fh2id
	sub	w8, w23, #128
	cmp	w8, #13
	b.hi	LBB0_44
; %bb.1:
	mov	x21, x0
	ldr	x19, [x0, #16]
	ldr	x25, [x19, #64]
	ldr	x26, [x0]
	add	x22, x25, x26, lsl #3
Lloh3:
	adrp	x9, lJTI0_0@PAGE
Lloh4:
	add	x9, x9, lJTI0_0@PAGEOFF
	adr	x10, LBB0_2
	ldrh	w11, [x9, x8, lsl #1]
	add	x10, x10, x11, lsl #2
	br	x10
LBB0_2:
	cmp	w23, #128
	cset	w22, eq
Lloh5:
	adrp	x8, l_.str.9@PAGE
Lloh6:
	add	x8, x8, l_.str.9@PAGEOFF
Lloh7:
	adrp	x9, l_.str.8@PAGE
Lloh8:
	add	x9, x9, l_.str.8@PAGEOFF
	csel	x0, x9, x8, eq
	ldr	w8, [x20, #12]
	str	x8, [sp, #-16]!
	bl	_IVTV_DEBUG_IOCTL
	add	sp, sp, #16
	ldur	x8, [x29, #-88]
Lloh9:
	adrp	x9, ___stack_chk_guard@GOTPAGE
Lloh10:
	ldr	x9, [x9, ___stack_chk_guard@GOTPAGEOFF]
Lloh11:
	ldr	x9, [x9]
	cmp	x9, x8
	b.ne	LBB0_71
; %bb.3:
	mov	x0, x19
	mov	x1, x21
	mov	x2, x20
	mov	x3, x22
	sub	sp, x29, #80
	ldp	x29, x30, [sp, #80]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #64]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #48]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #32]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #16]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp], #96             ; 16-byte Folded Reload
	b	_ivtv_video_command
LBB0_4:
Lloh12:
	adrp	x0, l_.str.5@PAGE
Lloh13:
	add	x0, x0, l_.str.5@PAGEOFF
	bl	_IVTV_DEBUG_IOCTL
	sub	x0, x29, #104
	mov	w1, #0
	mov	w2, #16
	bl	_memset
Lloh14:
	adrp	x8, _VIDEO_CMD_STOP@GOTPAGE
Lloh15:
	ldr	x8, [x8, _VIDEO_CMD_STOP@GOTPAGEOFF]
Lloh16:
	ldr	w8, [x8]
Lloh17:
	adrp	x9, _VIDEO_CMD_STOP_TO_BLACK@GOTPAGE
Lloh18:
	ldr	x9, [x9, _VIDEO_CMD_STOP_TO_BLACK@GOTPAGEOFF]
Lloh19:
	ldr	w9, [x9]
Lloh20:
	adrp	x10, _VIDEO_CMD_STOP_IMMEDIATELY@GOTPAGE
Lloh21:
	ldr	x10, [x10, _VIDEO_CMD_STOP_IMMEDIATELY@GOTPAGEOFF]
Lloh22:
	ldr	w10, [x10]
	orr	w9, w10, w9
	stur	w8, [x29, #-92]
	stur	w9, [x29, #-104]
	b	LBB0_30
LBB0_5:
Lloh23:
	adrp	x0, l_.str.12@PAGE
Lloh24:
	add	x0, x0, l_.str.12@PAGEOFF
	bl	_IVTV_DEBUG_IOCTL
	ldr	w8, [x19]
Lloh25:
	adrp	x9, _V4L2_CAP_VIDEO_OUTPUT@GOTPAGE
Lloh26:
	ldr	x9, [x9, _V4L2_CAP_VIDEO_OUTPUT@GOTPAGEOFF]
Lloh27:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_44
; %bb.6:
Lloh28:
	adrp	x8, _VIDEO_SOURCE_DEMUX@GOTPAGE
Lloh29:
	ldr	x8, [x8, _VIDEO_SOURCE_DEMUX@GOTPAGEOFF]
Lloh30:
	ldr	x8, [x8]
	cmp	x8, x20
	cset	w1, eq
	ldur	x8, [x29, #-88]
Lloh31:
	adrp	x9, ___stack_chk_guard@GOTPAGE
Lloh32:
	ldr	x9, [x9, ___stack_chk_guard@GOTPAGEOFF]
Lloh33:
	ldr	x9, [x9]
	cmp	x9, x8
	b.ne	LBB0_71
; %bb.7:
	mov	x0, x19
	sub	sp, x29, #80
	ldp	x29, x30, [sp, #80]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #64]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #48]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #32]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #16]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp], #96             ; 16-byte Folded Reload
	b	_ivtv_passthrough_mode
LBB0_8:
Lloh34:
	adrp	x0, l_.str.4@PAGE
Lloh35:
	add	x0, x0, l_.str.4@PAGEOFF
	bl	_IVTV_DEBUG_IOCTL
	sub	x0, x29, #104
	mov	w1, #0
	mov	w2, #16
	bl	_memset
Lloh36:
	adrp	x8, _VIDEO_CMD_PLAY@GOTPAGE
Lloh37:
	ldr	x8, [x8, _VIDEO_CMD_PLAY@GOTPAGEOFF]
	b	LBB0_29
LBB0_9:
	mov	x23, sp
Lloh38:
	adrp	x8, _CX2341X_MBOX_MAX_DATA@GOTPAGE
Lloh39:
	ldr	x8, [x8, _CX2341X_MBOX_MAX_DATA@GOTPAGEOFF]
Lloh40:
	ldr	w8, [x8]
	lsl	x8, x8, #2
	mov	x9, x8
Lloh41:
	adrp	x16, ___chkstk_darwin@GOTPAGE
Lloh42:
	ldr	x16, [x16, ___chkstk_darwin@GOTPAGEOFF]
	blr	x16
	mov	x9, sp
	add	x8, x8, #15
	and	x8, x8, #0x7fffffff0
	sub	x21, x9, x8
	mov	sp, x21
Lloh43:
	adrp	x0, l_.str.1@PAGE
Lloh44:
	add	x0, x0, l_.str.1@PAGEOFF
	bl	_IVTV_DEBUG_IOCTL
	add	x8, x25, x26, lsl #3
	ldr	w8, [x8, #4]
Lloh45:
	adrp	x9, _IVTV_DEC_STREAM_TYPE_MPG@GOTPAGE
Lloh46:
	ldr	x9, [x9, _IVTV_DEC_STREAM_TYPE_MPG@GOTPAGEOFF]
Lloh47:
	ldr	w9, [x9]
	cmp	w8, w9
	b.ge	LBB0_46
; %bb.10:
	ldr	w8, [x22]
	b	LBB0_54
LBB0_11:
	mov	x23, sp
Lloh48:
	adrp	x8, _CX2341X_MBOX_MAX_DATA@GOTPAGE
Lloh49:
	ldr	x8, [x8, _CX2341X_MBOX_MAX_DATA@GOTPAGEOFF]
Lloh50:
	ldr	w8, [x8]
	lsl	x8, x8, #2
	mov	x9, x8
Lloh51:
	adrp	x16, ___chkstk_darwin@GOTPAGE
Lloh52:
	ldr	x16, [x16, ___chkstk_darwin@GOTPAGEOFF]
	blr	x16
	mov	x9, sp
	add	x8, x8, #15
	and	x8, x8, #0x7fffffff0
	sub	x21, x9, x8
	mov	sp, x21
Lloh53:
	adrp	x0, l_.str.3@PAGE
Lloh54:
	add	x0, x0, l_.str.3@PAGEOFF
	bl	_IVTV_DEBUG_IOCTL
	add	x8, x25, x26, lsl #3
	ldr	w8, [x8, #4]
Lloh55:
	adrp	x9, _IVTV_DEC_STREAM_TYPE_MPG@GOTPAGE
Lloh56:
	ldr	x9, [x9, _IVTV_DEC_STREAM_TYPE_MPG@GOTPAGEOFF]
Lloh57:
	ldr	w9, [x9]
	cmp	w8, w9
	b.ge	LBB0_51
; %bb.12:
	mov	w8, #0
	str	wzr, [x20]
	b	LBB0_55
LBB0_13:
	ldr	w21, [x24]
Lloh58:
	adrp	x8, _O_NONBLOCK@GOTPAGE
Lloh59:
	ldr	x8, [x8, _O_NONBLOCK@GOTPAGEOFF]
Lloh60:
	ldr	w22, [x8]
Lloh61:
	adrp	x8, _wait@GOTPAGE
Lloh62:
	ldr	x8, [x8, _wait@GOTPAGEOFF]
Lloh63:
	ldr	w0, [x8]
	bl	_DEFINE_WAIT
Lloh64:
	adrp	x0, l_.str.10@PAGE
Lloh65:
	add	x0, x0, l_.str.10@PAGEOFF
	bl	_IVTV_DEBUG_IOCTL
	ldr	w8, [x19]
Lloh66:
	adrp	x9, _V4L2_CAP_VIDEO_OUTPUT@GOTPAGE
Lloh67:
	ldr	x9, [x9, _V4L2_CAP_VIDEO_OUTPUT@GOTPAGEOFF]
Lloh68:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_44
; %bb.14:
	and	w25, w22, w21
	mov	x0, x20
	mov	w1, #0
	mov	w2, #16
	bl	_memset
Lloh69:
	adrp	x8, _IVTV_F_I_EV_VSYNC_ENABLED@GOTPAGE
Lloh70:
	ldr	x8, [x8, _IVTV_F_I_EV_VSYNC_ENABLED@GOTPAGEOFF]
Lloh71:
	ldr	w0, [x8]
	add	x21, x19, #48
	mov	x1, x21
	bl	_set_bit
Lloh72:
	adrp	x26, _IVTV_F_I_EV_DEC_STOPPED@GOTPAGE
Lloh73:
	ldr	x26, [x26, _IVTV_F_I_EV_DEC_STOPPED@GOTPAGEOFF]
	add	x22, x19, #40
	add	x23, x19, #44
Lloh74:
	adrp	x28, _TASK_INTERRUPTIBLE@GOTPAGE
Lloh75:
	ldr	x28, [x28, _TASK_INTERRUPTIBLE@GOTPAGEOFF]
Lloh76:
	adrp	x24, _wait@GOTPAGE
Lloh77:
	ldr	x24, [x24, _wait@GOTPAGEOFF]
Lloh78:
	adrp	x27, _current@GOTPAGE
Lloh79:
	ldr	x27, [x27, _current@GOTPAGEOFF]
	b	LBB0_16
LBB0_15:                                ;   in Loop: Header=BB0_16 Depth=1
	mov	x0, x23
	mov	x1, x24
	bl	_finish_wait
	mov	x0, x22
	bl	_mutex_lock
	ldr	w0, [x27]
	bl	_signal_pending
	cbnz	w0, LBB0_64
LBB0_16:                                ; =>This Inner Loop Header: Depth=1
	ldr	w0, [x26]
	mov	x1, x21
	bl	_test_and_clear_bit
	cbz	w0, LBB0_18
; %bb.17:                               ;   in Loop: Header=BB0_16 Depth=1
Lloh80:
	adrp	x8, _VIDEO_EVENT_DECODER_STOPPED@GOTPAGE
Lloh81:
	ldr	x8, [x8, _VIDEO_EVENT_DECODER_STOPPED@GOTPAGEOFF]
Lloh82:
	ldr	w8, [x8]
	str	w8, [x20, #4]
	cbz	w8, LBB0_23
	b	LBB0_58
LBB0_18:                                ;   in Loop: Header=BB0_16 Depth=1
Lloh83:
	adrp	x8, _IVTV_F_I_EV_VSYNC@GOTPAGE
Lloh84:
	ldr	x8, [x8, _IVTV_F_I_EV_VSYNC@GOTPAGEOFF]
Lloh85:
	ldr	w0, [x8]
	mov	x1, x21
	bl	_test_and_clear_bit
	cbz	w0, LBB0_22
; %bb.19:                               ;   in Loop: Header=BB0_16 Depth=1
Lloh86:
	adrp	x8, _VIDEO_EVENT_VSYNC@GOTPAGE
Lloh87:
	ldr	x8, [x8, _VIDEO_EVENT_VSYNC@GOTPAGEOFF]
Lloh88:
	ldr	w8, [x8]
	str	w8, [x20, #4]
Lloh89:
	adrp	x8, _IVTV_F_I_EV_VSYNC_FIELD@GOTPAGE
Lloh90:
	ldr	x8, [x8, _IVTV_F_I_EV_VSYNC_FIELD@GOTPAGEOFF]
Lloh91:
	ldr	w0, [x8]
	mov	x1, x21
	bl	_test_bit
	cmp	w0, #0
Lloh92:
	adrp	x8, _VIDEO_VSYNC_FIELD_ODD@GOTPAGE
Lloh93:
	ldr	x8, [x8, _VIDEO_VSYNC_FIELD_ODD@GOTPAGEOFF]
Lloh94:
	adrp	x9, _VIDEO_VSYNC_FIELD_EVEN@GOTPAGE
Lloh95:
	ldr	x9, [x9, _VIDEO_VSYNC_FIELD_EVEN@GOTPAGEOFF]
	csel	x8, x9, x8, eq
	ldr	w8, [x8]
	str	w8, [x20, #8]
	ldr	w8, [x19, #56]
Lloh96:
	adrp	x9, _OUT_UDMA_YUV@GOTPAGE
Lloh97:
	ldr	x9, [x9, _OUT_UDMA_YUV@GOTPAGEOFF]
Lloh98:
	ldr	w9, [x9]
	cmp	w8, w9
	b.ne	LBB0_22
; %bb.20:                               ;   in Loop: Header=BB0_16 Depth=1
	ldr	w8, [x19, #52]
Lloh99:
	adrp	x9, _IVTV_YUV_MODE_MASK@GOTPAGE
Lloh100:
	ldr	x9, [x9, _IVTV_YUV_MODE_MASK@GOTPAGEOFF]
Lloh101:
	ldr	w9, [x9]
	and	w8, w9, w8
Lloh102:
	adrp	x9, _IVTV_YUV_MODE_PROGRESSIVE@GOTPAGE
Lloh103:
	ldr	x9, [x9, _IVTV_YUV_MODE_PROGRESSIVE@GOTPAGEOFF]
Lloh104:
	ldr	w9, [x9]
	cmp	w8, w9
	b.ne	LBB0_22
; %bb.21:                               ;   in Loop: Header=BB0_16 Depth=1
Lloh105:
	adrp	x8, _VIDEO_VSYNC_FIELD_PROGRESSIVE@GOTPAGE
Lloh106:
	ldr	x8, [x8, _VIDEO_VSYNC_FIELD_PROGRESSIVE@GOTPAGEOFF]
Lloh107:
	ldr	w8, [x8]
	str	w8, [x20, #8]
LBB0_22:                                ;   in Loop: Header=BB0_16 Depth=1
	ldr	w8, [x20, #4]
	cbnz	w8, LBB0_58
LBB0_23:                                ;   in Loop: Header=BB0_16 Depth=1
	cbnz	w25, LBB0_63
; %bb.24:                               ;   in Loop: Header=BB0_16 Depth=1
	mov	x0, x22
	bl	_mutex_unlock
	ldr	w2, [x28]
	mov	x0, x23
	mov	x1, x24
	bl	_prepare_to_wait
	ldr	w0, [x26]
	mov	x1, x21
	bl	_test_bit
	cbnz	w0, LBB0_15
; %bb.25:                               ;   in Loop: Header=BB0_16 Depth=1
Lloh108:
	adrp	x8, _IVTV_F_I_EV_VSYNC@GOTPAGE
Lloh109:
	ldr	x8, [x8, _IVTV_F_I_EV_VSYNC@GOTPAGEOFF]
Lloh110:
	ldr	w0, [x8]
	mov	x1, x21
	bl	_test_bit
	cbnz	w0, LBB0_15
; %bb.26:                               ;   in Loop: Header=BB0_16 Depth=1
	bl	_schedule
	b	LBB0_15
LBB0_27:
Lloh111:
	adrp	x0, l_.str.6@PAGE
Lloh112:
	add	x0, x0, l_.str.6@PAGEOFF
	bl	_IVTV_DEBUG_IOCTL
	sub	x0, x29, #104
	mov	w1, #0
	mov	w2, #16
	bl	_memset
Lloh113:
	adrp	x8, _VIDEO_CMD_FREEZE@GOTPAGE
Lloh114:
	ldr	x8, [x8, _VIDEO_CMD_FREEZE@GOTPAGEOFF]
	b	LBB0_29
LBB0_28:
Lloh115:
	adrp	x0, l_.str.7@PAGE
Lloh116:
	add	x0, x0, l_.str.7@PAGEOFF
	bl	_IVTV_DEBUG_IOCTL
	sub	x0, x29, #104
	mov	w1, #0
	mov	w2, #16
	bl	_memset
Lloh117:
	adrp	x8, _VIDEO_CMD_CONTINUE@GOTPAGE
Lloh118:
	ldr	x8, [x8, _VIDEO_CMD_CONTINUE@GOTPAGEOFF]
LBB0_29:
	ldr	w8, [x8]
	stur	w8, [x29, #-92]
LBB0_30:
	sub	x2, x29, #104
	mov	x0, x19
	mov	x1, x21
	mov	w3, #0
	bl	_ivtv_video_command
	b	LBB0_61
LBB0_31:
Lloh119:
	adrp	x0, l_.str@PAGE
Lloh120:
	add	x0, x0, l_.str@PAGEOFF
	bl	_IVTV_DEBUG_IOCTL
	ldr	w8, [x19]
Lloh121:
	adrp	x9, _V4L2_CAP_VIDEO_OUTPUT@GOTPAGE
Lloh122:
	ldr	x9, [x9, _V4L2_CAP_VIDEO_OUTPUT@GOTPAGEOFF]
Lloh123:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_44
; %bb.32:
	ldr	w8, [x20, #8]
Lloh124:
	adrp	x9, _V4L2_BUF_TYPE_VIDEO_OUTPUT@GOTPAGE
Lloh125:
	ldr	x9, [x9, _V4L2_BUF_TYPE_VIDEO_OUTPUT@GOTPAGEOFF]
Lloh126:
	ldr	w9, [x9]
	cmp	w8, w9
	b.ne	LBB0_44
; %bb.33:
	ldr	w8, [x19, #56]
Lloh127:
	adrp	x23, _OUT_UDMA_YUV@GOTPAGE
Lloh128:
	ldr	x23, [x23, _OUT_UDMA_YUV@GOTPAGEOFF]
	ldr	w9, [x23]
	cmp	w8, w9
	b.ne	LBB0_35
; %bb.34:
	ldr	x8, [x20]
	cbz	x8, LBB0_58
LBB0_35:
	ldr	x1, [x21]
	mov	x0, x21
	bl	_ivtv_start_decoding
	cbnz	w0, LBB0_69
; %bb.36:
	ldr	w1, [x23]
	mov	x0, x19
	bl	_ivtv_set_output_mode
	ldr	w8, [x23]
	cmp	w0, w8
	b.ne	LBB0_68
; %bb.37:
	mov	w8, #1
	str	w8, [x21, #8]
	ldr	x8, [x20]
	cbz	x8, LBB0_58
; %bb.38:
	ldur	x8, [x29, #-88]
Lloh129:
	adrp	x9, ___stack_chk_guard@GOTPAGE
Lloh130:
	ldr	x9, [x9, ___stack_chk_guard@GOTPAGEOFF]
Lloh131:
	ldr	x9, [x9]
	cmp	x9, x8
	b.ne	LBB0_71
; %bb.39:
	mov	x0, x19
	mov	x1, x20
	sub	sp, x29, #80
	ldp	x29, x30, [sp, #80]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #64]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #48]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #32]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #16]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp], #96             ; 16-byte Folded Reload
	b	_ivtv_yuv_prep_frame
LBB0_40:
Lloh132:
	adrp	x0, l_.str.13@PAGE
Lloh133:
	add	x0, x0, l_.str.13@PAGEOFF
	bl	_IVTV_DEBUG_IOCTL
	mov	w0, #0
	str	x20, [x19, #16]
	b	LBB0_61
LBB0_41:
Lloh134:
	adrp	x0, l_.str.14@PAGE
Lloh135:
	add	x0, x0, l_.str.14@PAGEOFF
	bl	_IVTV_DEBUG_IOCTL
Lloh136:
	adrp	x8, _AUDIO_STEREO_SWAPPED@GOTPAGE
Lloh137:
	ldr	x8, [x8, _AUDIO_STEREO_SWAPPED@GOTPAGEOFF]
Lloh138:
	ldr	x8, [x8]
	cmp	x8, x20
	b.lo	LBB0_44
; %bb.42:
	str	x20, [x19, #24]
Lloh139:
	adrp	x8, _CX2341X_DEC_SET_AUDIO_MODE@GOTPAGE
Lloh140:
	ldr	x8, [x8, _CX2341X_DEC_SET_AUDIO_MODE@GOTPAGEOFF]
Lloh141:
	ldr	w1, [x8]
	ldr	x3, [x19, #32]
	mov	x0, x19
	mov	w2, #2
	mov	x4, x20
	b	LBB0_57
LBB0_43:
Lloh142:
	adrp	x0, l_.str.15@PAGE
Lloh143:
	add	x0, x0, l_.str.15@PAGEOFF
	bl	_IVTV_DEBUG_IOCTL
Lloh144:
	adrp	x8, _AUDIO_STEREO_SWAPPED@GOTPAGE
Lloh145:
	ldr	x8, [x8, _AUDIO_STEREO_SWAPPED@GOTPAGEOFF]
Lloh146:
	ldr	x8, [x8]
	cmp	x8, x20
	b.hs	LBB0_56
LBB0_44:
Lloh147:
	adrp	x8, _EINVAL@GOTPAGE
Lloh148:
	ldr	x8, [x8, _EINVAL@GOTPAGEOFF]
LBB0_45:
	ldr	w8, [x8]
	neg	w0, w8
	b	LBB0_61
LBB0_46:
	ldr	w8, [x19]
Lloh149:
	adrp	x9, _V4L2_CAP_VIDEO_OUTPUT@GOTPAGE
Lloh150:
	ldr	x9, [x9, _V4L2_CAP_VIDEO_OUTPUT@GOTPAGEOFF]
Lloh151:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_59
; %bb.47:
Lloh152:
	adrp	x24, _IVTV_F_I_VALID_DEC_TIMINGS@GOTPAGE
Lloh153:
	ldr	x24, [x24, _IVTV_F_I_VALID_DEC_TIMINGS@GOTPAGEOFF]
	ldr	w0, [x24]
	add	x22, x19, #48
	mov	x1, x22
	bl	_test_bit
	cbnz	w0, LBB0_55
; %bb.48:
	str	wzr, [x20]
	add	x0, x19, #60
	bl	_atomic_read
	cbz	w0, LBB0_55
; %bb.49:
Lloh154:
	adrp	x8, _CX2341X_DEC_GET_TIMING_INFO@GOTPAGE
Lloh155:
	ldr	x8, [x8, _CX2341X_DEC_GET_TIMING_INFO@GOTPAGEOFF]
Lloh156:
	ldr	w1, [x8]
	mov	x0, x19
	mov	w2, #5
	mov	x3, x21
	bl	_ivtv_api
	cbnz	w0, LBB0_67
; %bb.50:
	ldr	x0, [x19, #8]
	mov	x1, x21
	mov	w2, #8
	bl	_memcpy
	ldr	w0, [x24]
	mov	x1, x22
	bl	_set_bit
	b	LBB0_55
LBB0_51:
	ldr	w8, [x19]
Lloh157:
	adrp	x9, _V4L2_CAP_VIDEO_OUTPUT@GOTPAGE
Lloh158:
	ldr	x9, [x9, _V4L2_CAP_VIDEO_OUTPUT@GOTPAGEOFF]
Lloh159:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_59
; %bb.52:
Lloh160:
	adrp	x24, _IVTV_F_I_VALID_DEC_TIMINGS@GOTPAGE
Lloh161:
	ldr	x24, [x24, _IVTV_F_I_VALID_DEC_TIMINGS@GOTPAGEOFF]
	ldr	w0, [x24]
	add	x22, x19, #48
	mov	x1, x22
	bl	_test_bit
	cbz	w0, LBB0_65
; %bb.53:
	ldr	x8, [x19, #8]
	ldr	w8, [x8]
LBB0_54:
	str	w8, [x20]
LBB0_55:
	mov	sp, x23
	mov	w0, #0
	b	LBB0_61
LBB0_56:
	str	x20, [x19, #32]
Lloh162:
	adrp	x8, _CX2341X_DEC_SET_AUDIO_MODE@GOTPAGE
Lloh163:
	ldr	x8, [x8, _CX2341X_DEC_SET_AUDIO_MODE@GOTPAGEOFF]
Lloh164:
	ldr	w1, [x8]
	ldr	x4, [x19, #24]
	mov	x0, x19
	mov	w2, #2
	mov	x3, x20
LBB0_57:
	bl	_ivtv_vapi
LBB0_58:
	mov	w0, #0
	b	LBB0_61
LBB0_59:
Lloh165:
	adrp	x8, _EINVAL@GOTPAGE
Lloh166:
	ldr	x8, [x8, _EINVAL@GOTPAGEOFF]
LBB0_60:
	ldr	w8, [x8]
	neg	w0, w8
	mov	sp, x23
LBB0_61:
	ldur	x8, [x29, #-88]
Lloh167:
	adrp	x9, ___stack_chk_guard@GOTPAGE
Lloh168:
	ldr	x9, [x9, ___stack_chk_guard@GOTPAGEOFF]
Lloh169:
	ldr	x9, [x9]
	cmp	x9, x8
	b.ne	LBB0_71
; %bb.62:
	sub	sp, x29, #80
	ldp	x29, x30, [sp, #80]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #64]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #48]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #32]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #16]             ; 16-byte Folded Reload
	ldp	x28, x27, [sp], #96             ; 16-byte Folded Reload
	ret
LBB0_63:
Lloh170:
	adrp	x8, _EAGAIN@GOTPAGE
Lloh171:
	ldr	x8, [x8, _EAGAIN@GOTPAGEOFF]
	b	LBB0_45
LBB0_64:
Lloh172:
	adrp	x0, l_.str.11@PAGE
Lloh173:
	add	x0, x0, l_.str.11@PAGEOFF
	bl	_IVTV_DEBUG_INFO
Lloh174:
	adrp	x8, _EINTR@GOTPAGE
Lloh175:
	ldr	x8, [x8, _EINTR@GOTPAGEOFF]
	b	LBB0_45
LBB0_65:
	str	wzr, [x20]
	add	x0, x19, #60
	bl	_atomic_read
	cbz	w0, LBB0_55
; %bb.66:
Lloh176:
	adrp	x8, _CX2341X_DEC_GET_TIMING_INFO@GOTPAGE
Lloh177:
	ldr	x8, [x8, _CX2341X_DEC_GET_TIMING_INFO@GOTPAGEOFF]
Lloh178:
	ldr	w1, [x8]
	mov	x0, x19
	mov	w2, #5
	mov	x3, x21
	bl	_ivtv_api
	cbz	w0, LBB0_70
LBB0_67:
Lloh179:
	adrp	x0, l_.str.2@PAGE
Lloh180:
	add	x0, x0, l_.str.2@PAGEOFF
	bl	_IVTV_DEBUG_WARN
Lloh181:
	adrp	x8, _EIO@GOTPAGE
Lloh182:
	ldr	x8, [x8, _EIO@GOTPAGEOFF]
	b	LBB0_60
LBB0_68:
	mov	x0, x22
	bl	_ivtv_release_stream
LBB0_69:
Lloh183:
	adrp	x8, _EBUSY@GOTPAGE
Lloh184:
	ldr	x8, [x8, _EBUSY@GOTPAGEOFF]
	b	LBB0_45
LBB0_70:
	ldr	x0, [x19, #8]
	mov	x1, x21
	mov	w2, #8
	bl	_memcpy
	ldr	w0, [x24]
	mov	x1, x22
	bl	_set_bit
	ldr	w8, [x21]
	b	LBB0_54
LBB0_71:
	bl	___stack_chk_fail
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpAdd	Lloh3, Lloh4
	.loh AdrpLdrGotLdr	Lloh9, Lloh10, Lloh11
	.loh AdrpAdd	Lloh7, Lloh8
	.loh AdrpAdd	Lloh5, Lloh6
	.loh AdrpLdrGotLdr	Lloh20, Lloh21, Lloh22
	.loh AdrpLdrGotLdr	Lloh17, Lloh18, Lloh19
	.loh AdrpLdrGotLdr	Lloh14, Lloh15, Lloh16
	.loh AdrpAdd	Lloh12, Lloh13
	.loh AdrpLdrGotLdr	Lloh25, Lloh26, Lloh27
	.loh AdrpAdd	Lloh23, Lloh24
	.loh AdrpLdrGotLdr	Lloh31, Lloh32, Lloh33
	.loh AdrpLdrGotLdr	Lloh28, Lloh29, Lloh30
	.loh AdrpLdrGot	Lloh36, Lloh37
	.loh AdrpAdd	Lloh34, Lloh35
	.loh AdrpLdrGotLdr	Lloh45, Lloh46, Lloh47
	.loh AdrpAdd	Lloh43, Lloh44
	.loh AdrpLdrGot	Lloh41, Lloh42
	.loh AdrpLdrGotLdr	Lloh38, Lloh39, Lloh40
	.loh AdrpLdrGotLdr	Lloh55, Lloh56, Lloh57
	.loh AdrpAdd	Lloh53, Lloh54
	.loh AdrpLdrGot	Lloh51, Lloh52
	.loh AdrpLdrGotLdr	Lloh48, Lloh49, Lloh50
	.loh AdrpLdrGotLdr	Lloh66, Lloh67, Lloh68
	.loh AdrpAdd	Lloh64, Lloh65
	.loh AdrpLdrGotLdr	Lloh61, Lloh62, Lloh63
	.loh AdrpLdrGotLdr	Lloh58, Lloh59, Lloh60
	.loh AdrpLdrGot	Lloh78, Lloh79
	.loh AdrpLdrGot	Lloh76, Lloh77
	.loh AdrpLdrGot	Lloh74, Lloh75
	.loh AdrpLdrGot	Lloh72, Lloh73
	.loh AdrpLdrGotLdr	Lloh69, Lloh70, Lloh71
	.loh AdrpLdrGotLdr	Lloh80, Lloh81, Lloh82
	.loh AdrpLdrGotLdr	Lloh83, Lloh84, Lloh85
	.loh AdrpLdrGotLdr	Lloh96, Lloh97, Lloh98
	.loh AdrpLdrGot	Lloh94, Lloh95
	.loh AdrpLdrGot	Lloh92, Lloh93
	.loh AdrpLdrGotLdr	Lloh89, Lloh90, Lloh91
	.loh AdrpLdrGotLdr	Lloh86, Lloh87, Lloh88
	.loh AdrpLdrGotLdr	Lloh102, Lloh103, Lloh104
	.loh AdrpLdrGotLdr	Lloh99, Lloh100, Lloh101
	.loh AdrpLdrGotLdr	Lloh105, Lloh106, Lloh107
	.loh AdrpLdrGotLdr	Lloh108, Lloh109, Lloh110
	.loh AdrpLdrGot	Lloh113, Lloh114
	.loh AdrpAdd	Lloh111, Lloh112
	.loh AdrpLdrGot	Lloh117, Lloh118
	.loh AdrpAdd	Lloh115, Lloh116
	.loh AdrpLdrGotLdr	Lloh121, Lloh122, Lloh123
	.loh AdrpAdd	Lloh119, Lloh120
	.loh AdrpLdrGotLdr	Lloh124, Lloh125, Lloh126
	.loh AdrpLdrGot	Lloh127, Lloh128
	.loh AdrpLdrGotLdr	Lloh129, Lloh130, Lloh131
	.loh AdrpAdd	Lloh132, Lloh133
	.loh AdrpLdrGotLdr	Lloh136, Lloh137, Lloh138
	.loh AdrpAdd	Lloh134, Lloh135
	.loh AdrpLdrGotLdr	Lloh139, Lloh140, Lloh141
	.loh AdrpLdrGotLdr	Lloh144, Lloh145, Lloh146
	.loh AdrpAdd	Lloh142, Lloh143
	.loh AdrpLdrGot	Lloh147, Lloh148
	.loh AdrpLdrGotLdr	Lloh149, Lloh150, Lloh151
	.loh AdrpLdrGot	Lloh152, Lloh153
	.loh AdrpLdrGotLdr	Lloh154, Lloh155, Lloh156
	.loh AdrpLdrGotLdr	Lloh157, Lloh158, Lloh159
	.loh AdrpLdrGot	Lloh160, Lloh161
	.loh AdrpLdrGotLdr	Lloh162, Lloh163, Lloh164
	.loh AdrpLdrGot	Lloh165, Lloh166
	.loh AdrpLdrGotLdr	Lloh167, Lloh168, Lloh169
	.loh AdrpLdrGot	Lloh170, Lloh171
	.loh AdrpLdrGot	Lloh174, Lloh175
	.loh AdrpAdd	Lloh172, Lloh173
	.loh AdrpLdrGotLdr	Lloh176, Lloh177, Lloh178
	.loh AdrpLdrGot	Lloh181, Lloh182
	.loh AdrpAdd	Lloh179, Lloh180
	.loh AdrpLdrGot	Lloh183, Lloh184
	.cfi_endproc
	.section	__TEXT,__const
	.p2align	1
lJTI0_0:
	.short	(LBB0_2-LBB0_2)>>2
	.short	(LBB0_4-LBB0_2)>>2
	.short	(LBB0_5-LBB0_2)>>2
	.short	(LBB0_8-LBB0_2)>>2
	.short	(LBB0_9-LBB0_2)>>2
	.short	(LBB0_11-LBB0_2)>>2
	.short	(LBB0_13-LBB0_2)>>2
	.short	(LBB0_27-LBB0_2)>>2
	.short	(LBB0_28-LBB0_2)>>2
	.short	(LBB0_2-LBB0_2)>>2
	.short	(LBB0_31-LBB0_2)>>2
	.short	(LBB0_40-LBB0_2)>>2
	.short	(LBB0_41-LBB0_2)>>2
	.short	(LBB0_43-LBB0_2)>>2
                                        ; -- End function
	.comm	_O_NONBLOCK,4,2                 ; @O_NONBLOCK
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"IVTV_IOC_DMA_FRAME\n"

	.comm	_V4L2_CAP_VIDEO_OUTPUT,4,2      ; @V4L2_CAP_VIDEO_OUTPUT
	.comm	_EINVAL,4,2                     ; @EINVAL
	.comm	_V4L2_BUF_TYPE_VIDEO_OUTPUT,4,2 ; @V4L2_BUF_TYPE_VIDEO_OUTPUT
	.comm	_OUT_UDMA_YUV,4,2               ; @OUT_UDMA_YUV
	.comm	_EBUSY,4,2                      ; @EBUSY
	.comm	_CX2341X_MBOX_MAX_DATA,4,2      ; @CX2341X_MBOX_MAX_DATA
l_.str.1:                               ; @.str.1
	.asciz	"VIDEO_GET_PTS\n"

	.comm	_IVTV_DEC_STREAM_TYPE_MPG,4,2   ; @IVTV_DEC_STREAM_TYPE_MPG
	.comm	_IVTV_F_I_VALID_DEC_TIMINGS,4,2 ; @IVTV_F_I_VALID_DEC_TIMINGS
	.comm	_CX2341X_DEC_GET_TIMING_INFO,4,2 ; @CX2341X_DEC_GET_TIMING_INFO
l_.str.2:                               ; @.str.2
	.asciz	"GET_TIMING: couldn't read clock\n"

	.comm	_EIO,4,2                        ; @EIO
l_.str.3:                               ; @.str.3
	.asciz	"VIDEO_GET_FRAME_COUNT\n"

l_.str.4:                               ; @.str.4
	.asciz	"VIDEO_PLAY\n"

	.comm	_VIDEO_CMD_PLAY,4,2             ; @VIDEO_CMD_PLAY
l_.str.5:                               ; @.str.5
	.asciz	"VIDEO_STOP\n"

	.comm	_VIDEO_CMD_STOP,4,2             ; @VIDEO_CMD_STOP
	.comm	_VIDEO_CMD_STOP_TO_BLACK,4,2    ; @VIDEO_CMD_STOP_TO_BLACK
	.comm	_VIDEO_CMD_STOP_IMMEDIATELY,4,2 ; @VIDEO_CMD_STOP_IMMEDIATELY
l_.str.6:                               ; @.str.6
	.asciz	"VIDEO_FREEZE\n"

	.comm	_VIDEO_CMD_FREEZE,4,2           ; @VIDEO_CMD_FREEZE
l_.str.7:                               ; @.str.7
	.asciz	"VIDEO_CONTINUE\n"

	.comm	_VIDEO_CMD_CONTINUE,4,2         ; @VIDEO_CMD_CONTINUE
l_.str.8:                               ; @.str.8
	.asciz	"VIDEO_TRY_COMMAND %d\n"

l_.str.9:                               ; @.str.9
	.asciz	"VIDEO_COMMAND %d\n"

	.comm	_wait,4,2                       ; @wait
l_.str.10:                              ; @.str.10
	.asciz	"VIDEO_GET_EVENT\n"

	.comm	_IVTV_F_I_EV_VSYNC_ENABLED,4,2  ; @IVTV_F_I_EV_VSYNC_ENABLED
	.comm	_IVTV_F_I_EV_DEC_STOPPED,4,2    ; @IVTV_F_I_EV_DEC_STOPPED
	.comm	_VIDEO_EVENT_DECODER_STOPPED,4,2 ; @VIDEO_EVENT_DECODER_STOPPED
	.comm	_IVTV_F_I_EV_VSYNC,4,2          ; @IVTV_F_I_EV_VSYNC
	.comm	_VIDEO_EVENT_VSYNC,4,2          ; @VIDEO_EVENT_VSYNC
	.comm	_IVTV_F_I_EV_VSYNC_FIELD,4,2    ; @IVTV_F_I_EV_VSYNC_FIELD
	.comm	_VIDEO_VSYNC_FIELD_ODD,4,2      ; @VIDEO_VSYNC_FIELD_ODD
	.comm	_VIDEO_VSYNC_FIELD_EVEN,4,2     ; @VIDEO_VSYNC_FIELD_EVEN
	.comm	_IVTV_YUV_MODE_MASK,4,2         ; @IVTV_YUV_MODE_MASK
	.comm	_IVTV_YUV_MODE_PROGRESSIVE,4,2  ; @IVTV_YUV_MODE_PROGRESSIVE
	.comm	_VIDEO_VSYNC_FIELD_PROGRESSIVE,4,2 ; @VIDEO_VSYNC_FIELD_PROGRESSIVE
	.comm	_EAGAIN,4,2                     ; @EAGAIN
	.comm	_TASK_INTERRUPTIBLE,4,2         ; @TASK_INTERRUPTIBLE
	.comm	_current,4,2                    ; @current
l_.str.11:                              ; @.str.11
	.asciz	"User stopped wait for event\n"

	.comm	_EINTR,4,2                      ; @EINTR
l_.str.12:                              ; @.str.12
	.asciz	"VIDEO_SELECT_SOURCE\n"

	.comm	_VIDEO_SOURCE_DEMUX,8,3         ; @VIDEO_SOURCE_DEMUX
l_.str.13:                              ; @.str.13
	.asciz	"AUDIO_SET_MUTE\n"

l_.str.14:                              ; @.str.14
	.asciz	"AUDIO_CHANNEL_SELECT\n"

	.comm	_AUDIO_STEREO_SWAPPED,8,3       ; @AUDIO_STEREO_SWAPPED
	.comm	_CX2341X_DEC_SET_AUDIO_MODE,4,2 ; @CX2341X_DEC_SET_AUDIO_MODE
l_.str.15:                              ; @.str.15
	.asciz	"AUDIO_BILINGUAL_CHANNEL_SELECT\n"

	.no_dead_strip	_ivtv_decoder_ioctls
.subsections_via_symbols
