	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_oxygen_pcm_init                ## -- Begin function oxygen_pcm_init
	.p2align	4, 0x90
_oxygen_pcm_init:                       ## @oxygen_pcm_init
	.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
	pushq	%rax
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	%rdi, %r14
	movl	8(%rdi), %ebx
	movq	_PLAYBACK_0_TO_I2S@GOTPCREL(%rip), %rax
	movl	(%rax), %r12d
	movq	_CAPTURE_0_FROM_I2S_1@GOTPCREL(%rip), %rcx
	movq	_CAPTURE_0_FROM_I2S_2@GOTPCREL(%rip), %rax
	movl	(%rax), %r15d
	orl	(%rcx), %r15d
	movl	%r15d, %eax
	orl	%r12d, %eax
	testl	%ebx, %eax
	je	LBB0_14
## %bb.1:
	xorl	%r8d, %r8d
	testl	%ebx, %r15d
	setne	%r8b
	xorl	%ecx, %ecx
	testl	%ebx, %r12d
	setne	%cl
	movl	4(%r14), %edi
	leaq	L_.str(%rip), %rsi
	leaq	-48(%rbp), %r9
	xorl	%edx, %edx
	callq	_snd_pcm_new
	testl	%eax, %eax
	js	LBB0_33
## %bb.2:
	testl	%ebx, %r12d
	je	LBB0_4
## %bb.3:
	movq	-48(%rbp), %rdi
	movq	_SNDRV_PCM_STREAM_PLAYBACK@GOTPCREL(%rip), %rax
	movq	(%rax), %rsi
	movq	_oxygen_multich_ops@GOTPCREL(%rip), %rdx
	callq	_snd_pcm_set_ops
LBB0_4:
	movl	8(%r14), %eax
	movq	_CAPTURE_0_FROM_I2S_1@GOTPCREL(%rip), %rcx
	testl	%eax, (%rcx)
	je	LBB0_7
## %bb.5:
	movq	-48(%rbp), %rdi
	movq	_SNDRV_PCM_STREAM_CAPTURE@GOTPCREL(%rip), %rax
	movq	(%rax), %rsi
	movq	_oxygen_rec_a_ops@GOTPCREL(%rip), %rdx
	jmp	LBB0_9
LBB0_7:
	movq	_CAPTURE_0_FROM_I2S_2@GOTPCREL(%rip), %rcx
	testl	%eax, (%rcx)
	je	LBB0_10
## %bb.8:
	movq	-48(%rbp), %rdi
	movq	_SNDRV_PCM_STREAM_CAPTURE@GOTPCREL(%rip), %rax
	movq	(%rax), %rsi
	movq	_oxygen_rec_b_ops@GOTPCREL(%rip), %rdx
LBB0_9:
	callq	_snd_pcm_set_ops
LBB0_10:
	movq	-48(%rbp), %rax
	movq	%r14, 16(%rax)
	movq	_oxygen_pcm_free@GOTPCREL(%rip), %rcx
	movq	(%rcx), %rcx
	movq	%rcx, 8(%rax)
	movl	(%rax), %edi
	leaq	L_.str(%rip), %rsi
	callq	_strcpy
	testl	%ebx, %r12d
	je	LBB0_12
## %bb.11:
	movq	-48(%rbp), %rax
	movq	24(%rax), %rax
	movq	_SNDRV_PCM_STREAM_PLAYBACK@GOTPCREL(%rip), %rcx
	movq	(%rcx), %rcx
	movl	(%rax,%rcx,4), %r13d
	movq	_SNDRV_DMA_TYPE_DEV@GOTPCREL(%rip), %rax
	movl	(%rax), %r12d
	movl	(%r14), %edi
	callq	_snd_dma_pci_data
	movq	_DEFAULT_BUFFER_BYTES_MULTICH@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	movq	_BUFFER_BYTES_MAX_MULTICH@GOTPCREL(%rip), %rdx
	movl	(%rdx), %r8d
	movl	%r13d, %edi
	movl	%r12d, %esi
	movl	%eax, %edx
	callq	_snd_pcm_lib_preallocate_pages
LBB0_12:
	testl	%ebx, %r15d
	je	LBB0_14
## %bb.13:
	movq	-48(%rbp), %rax
	movq	24(%rax), %rax
	movq	_SNDRV_PCM_STREAM_CAPTURE@GOTPCREL(%rip), %rcx
	movq	(%rcx), %rcx
	movl	(%rax,%rcx,4), %r15d
	movq	_SNDRV_DMA_TYPE_DEV@GOTPCREL(%rip), %rax
	movl	(%rax), %ebx
	movl	(%r14), %edi
	callq	_snd_dma_pci_data
	movq	_DEFAULT_BUFFER_BYTES@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	movq	_BUFFER_BYTES_MAX@GOTPCREL(%rip), %rdx
	movl	(%rdx), %r8d
	movl	%r15d, %edi
	movl	%ebx, %esi
	movl	%eax, %edx
	callq	_snd_pcm_lib_preallocate_pages
LBB0_14:
	movl	8(%r14), %ebx
	movq	_PLAYBACK_1_TO_SPDIF@GOTPCREL(%rip), %rax
	movl	(%rax), %r12d
	movq	_CAPTURE_1_FROM_SPDIF@GOTPCREL(%rip), %rax
	movl	(%rax), %r15d
	movl	%r15d, %eax
	orl	%r12d, %eax
	testl	%ebx, %eax
	je	LBB0_21
## %bb.15:
	xorl	%r8d, %r8d
	testl	%ebx, %r15d
	setne	%r8b
	xorl	%ecx, %ecx
	testl	%ebx, %r12d
	setne	%cl
	movl	4(%r14), %edi
	leaq	L_.str.1(%rip), %rsi
	leaq	-48(%rbp), %r9
	movl	$1, %edx
	callq	_snd_pcm_new
	testl	%eax, %eax
	js	LBB0_33
## %bb.16:
	testl	%ebx, %r12d
	je	LBB0_18
## %bb.17:
	movq	-48(%rbp), %rdi
	movq	_SNDRV_PCM_STREAM_PLAYBACK@GOTPCREL(%rip), %rax
	movq	(%rax), %rsi
	movq	_oxygen_spdif_ops@GOTPCREL(%rip), %rdx
	callq	_snd_pcm_set_ops
LBB0_18:
	testl	%ebx, %r15d
	je	LBB0_20
## %bb.19:
	movq	-48(%rbp), %rdi
	movq	_SNDRV_PCM_STREAM_CAPTURE@GOTPCREL(%rip), %rax
	movq	(%rax), %rsi
	movq	_oxygen_rec_c_ops@GOTPCREL(%rip), %rdx
	callq	_snd_pcm_set_ops
LBB0_20:
	movq	-48(%rbp), %rax
	movq	%r14, 16(%rax)
	movq	_oxygen_pcm_free@GOTPCREL(%rip), %rcx
	movq	(%rcx), %rcx
	movq	%rcx, 8(%rax)
	movl	(%rax), %edi
	leaq	L_.str.1(%rip), %rsi
	callq	_strcpy
	movq	-48(%rbp), %r15
	movq	_SNDRV_DMA_TYPE_DEV@GOTPCREL(%rip), %rax
	movl	(%rax), %ebx
	movl	(%r14), %edi
	callq	_snd_dma_pci_data
	movq	_DEFAULT_BUFFER_BYTES@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	movq	_BUFFER_BYTES_MAX@GOTPCREL(%rip), %rdx
	movl	(%rdx), %r8d
	movq	%r15, %rdi
	movl	%ebx, %esi
	movl	%eax, %edx
	callq	_snd_pcm_lib_preallocate_pages_for_all
LBB0_21:
	movl	8(%r14), %ebx
	movq	_PLAYBACK_2_TO_AC97_1@GOTPCREL(%rip), %rax
	testl	%ebx, (%rax)
	setne	%al
	cmpq	$0, 16(%r14)
	setne	%r15b
	jne	LBB0_23
## %bb.22:
	movq	_CAPTURE_2_FROM_I2S_2@GOTPCREL(%rip), %rcx
	jmp	LBB0_24
LBB0_23:
	movq	_CAPTURE_2_FROM_AC97_1@GOTPCREL(%rip), %rcx
LBB0_24:
	xorl	%r13d, %r13d
	movl	(%rcx), %r12d
	andb	%al, %r15b
	jne	LBB0_26
## %bb.25:
	movl	%r12d, %eax
	andl	%ebx, %eax
	je	LBB0_34
LBB0_26:
	xorl	%r8d, %r8d
	testl	%ebx, %r12d
	setne	%r8b
	movzbl	%r15b, %ecx
	movl	4(%r14), %edi
	leaq	L_.str.2(%rip), %rax
	leaq	L_.str.3(%rip), %rsi
	testb	%cl, %cl
	cmovneq	%rax, %rsi
	leaq	-48(%rbp), %r9
	movl	$2, %edx
	callq	_snd_pcm_new
	testl	%eax, %eax
	js	LBB0_33
## %bb.27:
	testb	%r15b, %r15b
	je	LBB0_29
## %bb.28:
	movq	-48(%rbp), %rdi
	movq	_SNDRV_PCM_STREAM_PLAYBACK@GOTPCREL(%rip), %rax
	movq	(%rax), %rsi
	movq	_oxygen_ac97_ops@GOTPCREL(%rip), %rdx
	callq	_snd_pcm_set_ops
	movq	_OXYGEN_REC_ROUTING@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	_OXYGEN_REC_B_ROUTE_AC97_1@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	movq	_OXYGEN_REC_B_ROUTE_MASK@GOTPCREL(%rip), %rax
	movl	(%rax), %ecx
	movq	%r14, %rdi
	callq	_oxygen_write8_masked
LBB0_29:
	testl	%ebx, %r12d
	je	LBB0_31
## %bb.30:
	movq	-48(%rbp), %rdi
	movq	_SNDRV_PCM_STREAM_CAPTURE@GOTPCREL(%rip), %rax
	movq	(%rax), %rsi
	movq	_oxygen_rec_b_ops@GOTPCREL(%rip), %rdx
	callq	_snd_pcm_set_ops
LBB0_31:
	movq	-48(%rbp), %rax
	movq	%r14, 16(%rax)
	movq	_oxygen_pcm_free@GOTPCREL(%rip), %rcx
	movq	(%rcx), %rcx
	movq	%rcx, 8(%rax)
	movl	(%rax), %edi
	leaq	L_.str.4(%rip), %rax
	leaq	L_.str.5(%rip), %rsi
	testb	%r15b, %r15b
	cmovneq	%rax, %rsi
	callq	_strcpy
	movq	-48(%rbp), %r15
	movq	_SNDRV_DMA_TYPE_DEV@GOTPCREL(%rip), %rax
	movl	(%rax), %r12d
	movl	(%r14), %edi
	callq	_snd_dma_pci_data
	movq	_DEFAULT_BUFFER_BYTES@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	movq	_BUFFER_BYTES_MAX@GOTPCREL(%rip), %rdx
	movl	(%rdx), %r8d
	movq	%r15, %rdi
	movl	%r12d, %esi
	movl	%eax, %edx
	callq	_snd_pcm_lib_preallocate_pages_for_all
	jmp	LBB0_34
LBB0_33:
	movl	%eax, %r13d
LBB0_34:
	movl	%r13d, %eax
	addq	$8, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.comm	_PLAYBACK_0_TO_I2S,4,2          ## @PLAYBACK_0_TO_I2S
	.comm	_CAPTURE_0_FROM_I2S_1,4,2       ## @CAPTURE_0_FROM_I2S_1
	.comm	_CAPTURE_0_FROM_I2S_2,4,2       ## @CAPTURE_0_FROM_I2S_2
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"Multichannel"

	.comm	_SNDRV_PCM_STREAM_PLAYBACK,8,3  ## @SNDRV_PCM_STREAM_PLAYBACK
	.comm	_oxygen_multich_ops,4,2         ## @oxygen_multich_ops
	.comm	_SNDRV_PCM_STREAM_CAPTURE,8,3   ## @SNDRV_PCM_STREAM_CAPTURE
	.comm	_oxygen_rec_a_ops,4,2           ## @oxygen_rec_a_ops
	.comm	_oxygen_rec_b_ops,4,2           ## @oxygen_rec_b_ops
	.comm	_oxygen_pcm_free,8,3            ## @oxygen_pcm_free
	.comm	_SNDRV_DMA_TYPE_DEV,4,2         ## @SNDRV_DMA_TYPE_DEV
	.comm	_DEFAULT_BUFFER_BYTES_MULTICH,4,2 ## @DEFAULT_BUFFER_BYTES_MULTICH
	.comm	_BUFFER_BYTES_MAX_MULTICH,4,2   ## @BUFFER_BYTES_MAX_MULTICH
	.comm	_DEFAULT_BUFFER_BYTES,4,2       ## @DEFAULT_BUFFER_BYTES
	.comm	_BUFFER_BYTES_MAX,4,2           ## @BUFFER_BYTES_MAX
	.comm	_PLAYBACK_1_TO_SPDIF,4,2        ## @PLAYBACK_1_TO_SPDIF
	.comm	_CAPTURE_1_FROM_SPDIF,4,2       ## @CAPTURE_1_FROM_SPDIF
L_.str.1:                               ## @.str.1
	.asciz	"Digital"

	.comm	_oxygen_spdif_ops,4,2           ## @oxygen_spdif_ops
	.comm	_oxygen_rec_c_ops,4,2           ## @oxygen_rec_c_ops
	.comm	_PLAYBACK_2_TO_AC97_1,4,2       ## @PLAYBACK_2_TO_AC97_1
	.comm	_CAPTURE_2_FROM_AC97_1,4,2      ## @CAPTURE_2_FROM_AC97_1
	.comm	_CAPTURE_2_FROM_I2S_2,4,2       ## @CAPTURE_2_FROM_I2S_2
L_.str.2:                               ## @.str.2
	.asciz	"AC97"

L_.str.3:                               ## @.str.3
	.asciz	"Analog2"

	.comm	_oxygen_ac97_ops,4,2            ## @oxygen_ac97_ops
	.comm	_OXYGEN_REC_ROUTING,4,2         ## @OXYGEN_REC_ROUTING
	.comm	_OXYGEN_REC_B_ROUTE_AC97_1,4,2  ## @OXYGEN_REC_B_ROUTE_AC97_1
	.comm	_OXYGEN_REC_B_ROUTE_MASK,4,2    ## @OXYGEN_REC_B_ROUTE_MASK
L_.str.4:                               ## @.str.4
	.asciz	"Front Panel"

L_.str.5:                               ## @.str.5
	.asciz	"Analog 2"

.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_oxygen_pcm_init                ; -- Begin function oxygen_pcm_init
	.p2align	2
_oxygen_pcm_init:                       ; @oxygen_pcm_init
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #80
	.cfi_def_cfa_offset 80
	stp	x24, x23, [sp, #16]             ; 16-byte Folded Spill
	stp	x22, x21, [sp, #32]             ; 16-byte Folded Spill
	stp	x20, x19, [sp, #48]             ; 16-byte Folded Spill
	stp	x29, x30, [sp, #64]             ; 16-byte Folded Spill
	add	x29, sp, #64
	.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
	ldr	w8, [x0, #8]
Lloh0:
	adrp	x9, _PLAYBACK_0_TO_I2S@GOTPAGE
Lloh1:
	ldr	x9, [x9, _PLAYBACK_0_TO_I2S@GOTPAGEOFF]
Lloh2:
	ldr	w9, [x9]
Lloh3:
	adrp	x23, _CAPTURE_0_FROM_I2S_1@GOTPAGE
Lloh4:
	ldr	x23, [x23, _CAPTURE_0_FROM_I2S_1@GOTPAGEOFF]
	ldr	w10, [x23]
Lloh5:
	adrp	x24, _CAPTURE_0_FROM_I2S_2@GOTPAGE
Lloh6:
	ldr	x24, [x24, _CAPTURE_0_FROM_I2S_2@GOTPAGEOFF]
	ldr	w11, [x24]
	orr	w10, w11, w10
	orr	w11, w10, w9
	tst	w11, w8
	b.eq	LBB0_13
; %bb.1:
	and	w20, w9, w8
	and	w22, w10, w8
	cmp	w22, #0
	cset	w4, ne
	cmp	w20, #0
	cset	w3, ne
	ldr	w0, [x19, #4]
Lloh7:
	adrp	x1, l_.str@PAGE
Lloh8:
	add	x1, x1, l_.str@PAGEOFF
	add	x5, sp, #8
	mov	w2, #0
	bl	_snd_pcm_new
	tbnz	w0, #31, LBB0_29
; %bb.2:
Lloh9:
	adrp	x21, _SNDRV_PCM_STREAM_PLAYBACK@GOTPAGE
Lloh10:
	ldr	x21, [x21, _SNDRV_PCM_STREAM_PLAYBACK@GOTPAGEOFF]
	cbz	w20, LBB0_4
; %bb.3:
	ldr	x0, [sp, #8]
	ldr	x1, [x21]
Lloh11:
	adrp	x2, _oxygen_multich_ops@GOTPAGE
Lloh12:
	ldr	x2, [x2, _oxygen_multich_ops@GOTPAGEOFF]
	bl	_snd_pcm_set_ops
LBB0_4:
	ldr	w8, [x19, #8]
	ldr	w9, [x23]
Lloh13:
	adrp	x23, _SNDRV_PCM_STREAM_CAPTURE@GOTPAGE
Lloh14:
	ldr	x23, [x23, _SNDRV_PCM_STREAM_CAPTURE@GOTPAGEOFF]
	tst	w9, w8
	b.eq	LBB0_6
; %bb.5:
	ldr	x0, [sp, #8]
	ldr	x1, [x23]
Lloh15:
	adrp	x2, _oxygen_rec_a_ops@GOTPAGE
Lloh16:
	ldr	x2, [x2, _oxygen_rec_a_ops@GOTPAGEOFF]
	b	LBB0_8
LBB0_6:
	ldr	w9, [x24]
	tst	w9, w8
	b.eq	LBB0_9
; %bb.7:
	ldr	x0, [sp, #8]
	ldr	x1, [x23]
Lloh17:
	adrp	x2, _oxygen_rec_b_ops@GOTPAGE
Lloh18:
	ldr	x2, [x2, _oxygen_rec_b_ops@GOTPAGEOFF]
LBB0_8:
	bl	_snd_pcm_set_ops
LBB0_9:
	ldr	x8, [sp, #8]
Lloh19:
	adrp	x9, _oxygen_pcm_free@GOTPAGE
Lloh20:
	ldr	x9, [x9, _oxygen_pcm_free@GOTPAGEOFF]
Lloh21:
	ldr	x9, [x9]
	stp	x9, x19, [x8, #8]
	ldr	w0, [x8]
Lloh22:
	adrp	x1, l_.str@PAGE
Lloh23:
	add	x1, x1, l_.str@PAGEOFF
	bl	_strcpy
Lloh24:
	adrp	x24, _SNDRV_DMA_TYPE_DEV@GOTPAGE
Lloh25:
	ldr	x24, [x24, _SNDRV_DMA_TYPE_DEV@GOTPAGEOFF]
	cbz	w20, LBB0_11
; %bb.10:
	ldr	x8, [sp, #8]
	ldr	x8, [x8, #24]
	ldr	x9, [x21]
	ldr	w20, [x8, x9, lsl #2]
	ldr	w21, [x24]
	ldr	w0, [x19]
	bl	_snd_dma_pci_data
	mov	x2, x0
Lloh26:
	adrp	x8, _DEFAULT_BUFFER_BYTES_MULTICH@GOTPAGE
Lloh27:
	ldr	x8, [x8, _DEFAULT_BUFFER_BYTES_MULTICH@GOTPAGEOFF]
Lloh28:
	ldr	w3, [x8]
Lloh29:
	adrp	x8, _BUFFER_BYTES_MAX_MULTICH@GOTPAGE
Lloh30:
	ldr	x8, [x8, _BUFFER_BYTES_MAX_MULTICH@GOTPAGEOFF]
Lloh31:
	ldr	w4, [x8]
	mov	x0, x20
	mov	x1, x21
	bl	_snd_pcm_lib_preallocate_pages
LBB0_11:
	cbz	w22, LBB0_13
; %bb.12:
	ldr	x8, [sp, #8]
	ldr	x8, [x8, #24]
	ldr	x9, [x23]
	ldr	w20, [x8, x9, lsl #2]
	ldr	w21, [x24]
	ldr	w0, [x19]
	bl	_snd_dma_pci_data
	mov	x2, x0
Lloh32:
	adrp	x8, _DEFAULT_BUFFER_BYTES@GOTPAGE
Lloh33:
	ldr	x8, [x8, _DEFAULT_BUFFER_BYTES@GOTPAGEOFF]
Lloh34:
	ldr	w3, [x8]
Lloh35:
	adrp	x8, _BUFFER_BYTES_MAX@GOTPAGE
Lloh36:
	ldr	x8, [x8, _BUFFER_BYTES_MAX@GOTPAGEOFF]
Lloh37:
	ldr	w4, [x8]
	mov	x0, x20
	mov	x1, x21
	bl	_snd_pcm_lib_preallocate_pages
LBB0_13:
	ldr	w8, [x19, #8]
Lloh38:
	adrp	x9, _PLAYBACK_1_TO_SPDIF@GOTPAGE
Lloh39:
	ldr	x9, [x9, _PLAYBACK_1_TO_SPDIF@GOTPAGEOFF]
Lloh40:
	ldr	w9, [x9]
Lloh41:
	adrp	x10, _CAPTURE_1_FROM_SPDIF@GOTPAGE
Lloh42:
	ldr	x10, [x10, _CAPTURE_1_FROM_SPDIF@GOTPAGEOFF]
Lloh43:
	ldr	w10, [x10]
	orr	w11, w10, w9
	tst	w11, w8
	b.eq	LBB0_20
; %bb.14:
	and	w21, w9, w8
	and	w20, w10, w8
	cmp	w20, #0
	cset	w4, ne
	cmp	w21, #0
	cset	w3, ne
	ldr	w0, [x19, #4]
Lloh44:
	adrp	x1, l_.str.1@PAGE
Lloh45:
	add	x1, x1, l_.str.1@PAGEOFF
	add	x5, sp, #8
	mov	w2, #1
	bl	_snd_pcm_new
	tbnz	w0, #31, LBB0_29
; %bb.15:
	cbz	w21, LBB0_17
; %bb.16:
	ldr	x0, [sp, #8]
Lloh46:
	adrp	x8, _SNDRV_PCM_STREAM_PLAYBACK@GOTPAGE
Lloh47:
	ldr	x8, [x8, _SNDRV_PCM_STREAM_PLAYBACK@GOTPAGEOFF]
Lloh48:
	ldr	x1, [x8]
Lloh49:
	adrp	x2, _oxygen_spdif_ops@GOTPAGE
Lloh50:
	ldr	x2, [x2, _oxygen_spdif_ops@GOTPAGEOFF]
	bl	_snd_pcm_set_ops
LBB0_17:
	cbz	w20, LBB0_19
; %bb.18:
	ldr	x0, [sp, #8]
Lloh51:
	adrp	x8, _SNDRV_PCM_STREAM_CAPTURE@GOTPAGE
Lloh52:
	ldr	x8, [x8, _SNDRV_PCM_STREAM_CAPTURE@GOTPAGEOFF]
Lloh53:
	ldr	x1, [x8]
Lloh54:
	adrp	x2, _oxygen_rec_c_ops@GOTPAGE
Lloh55:
	ldr	x2, [x2, _oxygen_rec_c_ops@GOTPAGEOFF]
	bl	_snd_pcm_set_ops
LBB0_19:
	ldr	x8, [sp, #8]
Lloh56:
	adrp	x9, _oxygen_pcm_free@GOTPAGE
Lloh57:
	ldr	x9, [x9, _oxygen_pcm_free@GOTPAGEOFF]
Lloh58:
	ldr	x9, [x9]
	stp	x9, x19, [x8, #8]
	ldr	w0, [x8]
Lloh59:
	adrp	x1, l_.str.1@PAGE
Lloh60:
	add	x1, x1, l_.str.1@PAGEOFF
	bl	_strcpy
	ldr	x20, [sp, #8]
Lloh61:
	adrp	x8, _SNDRV_DMA_TYPE_DEV@GOTPAGE
Lloh62:
	ldr	x8, [x8, _SNDRV_DMA_TYPE_DEV@GOTPAGEOFF]
Lloh63:
	ldr	w21, [x8]
	ldr	w0, [x19]
	bl	_snd_dma_pci_data
	mov	x2, x0
Lloh64:
	adrp	x8, _DEFAULT_BUFFER_BYTES@GOTPAGE
Lloh65:
	ldr	x8, [x8, _DEFAULT_BUFFER_BYTES@GOTPAGEOFF]
Lloh66:
	ldr	w3, [x8]
Lloh67:
	adrp	x8, _BUFFER_BYTES_MAX@GOTPAGE
Lloh68:
	ldr	x8, [x8, _BUFFER_BYTES_MAX@GOTPAGEOFF]
Lloh69:
	ldr	w4, [x8]
	mov	x0, x20
	mov	x1, x21
	bl	_snd_pcm_lib_preallocate_pages_for_all
LBB0_20:
	ldr	x8, [x19, #16]
	ldr	w9, [x19, #8]
Lloh70:
	adrp	x10, _PLAYBACK_2_TO_AC97_1@GOTPAGE
Lloh71:
	ldr	x10, [x10, _PLAYBACK_2_TO_AC97_1@GOTPAGEOFF]
Lloh72:
	ldr	w10, [x10]
	tst	w10, w9
	cset	w10, ne
Lloh73:
	adrp	x11, _CAPTURE_2_FROM_I2S_2@GOTPAGE
Lloh74:
	ldr	x11, [x11, _CAPTURE_2_FROM_I2S_2@GOTPAGEOFF]
Lloh75:
	adrp	x12, _CAPTURE_2_FROM_AC97_1@GOTPAGE
Lloh76:
	ldr	x12, [x12, _CAPTURE_2_FROM_AC97_1@GOTPAGEOFF]
	cmp	x8, #0
	csel	x8, x11, x12, eq
	cset	w11, ne
	and	w20, w11, w10
	ldr	w8, [x8]
	and	w21, w8, w9
	tbnz	w20, #0, LBB0_22
; %bb.21:
	cbz	w21, LBB0_28
LBB0_22:
	cmp	w21, #0
	cset	w4, ne
	ldr	w0, [x19, #4]
Lloh77:
	adrp	x8, l_.str.3@PAGE
Lloh78:
	add	x8, x8, l_.str.3@PAGEOFF
Lloh79:
	adrp	x9, l_.str.2@PAGE
Lloh80:
	add	x9, x9, l_.str.2@PAGEOFF
	cmp	w20, #0
	csel	x1, x9, x8, ne
	add	x5, sp, #8
	mov	w2, #2
	mov	x3, x20
	bl	_snd_pcm_new
	tbnz	w0, #31, LBB0_29
; %bb.23:
	cbz	w20, LBB0_25
; %bb.24:
	ldr	x0, [sp, #8]
Lloh81:
	adrp	x8, _SNDRV_PCM_STREAM_PLAYBACK@GOTPAGE
Lloh82:
	ldr	x8, [x8, _SNDRV_PCM_STREAM_PLAYBACK@GOTPAGEOFF]
Lloh83:
	ldr	x1, [x8]
Lloh84:
	adrp	x2, _oxygen_ac97_ops@GOTPAGE
Lloh85:
	ldr	x2, [x2, _oxygen_ac97_ops@GOTPAGEOFF]
	bl	_snd_pcm_set_ops
Lloh86:
	adrp	x8, _OXYGEN_REC_ROUTING@GOTPAGE
Lloh87:
	ldr	x8, [x8, _OXYGEN_REC_ROUTING@GOTPAGEOFF]
Lloh88:
	ldr	w1, [x8]
Lloh89:
	adrp	x8, _OXYGEN_REC_B_ROUTE_AC97_1@GOTPAGE
Lloh90:
	ldr	x8, [x8, _OXYGEN_REC_B_ROUTE_AC97_1@GOTPAGEOFF]
Lloh91:
	ldr	w2, [x8]
Lloh92:
	adrp	x8, _OXYGEN_REC_B_ROUTE_MASK@GOTPAGE
Lloh93:
	ldr	x8, [x8, _OXYGEN_REC_B_ROUTE_MASK@GOTPAGEOFF]
Lloh94:
	ldr	w3, [x8]
	mov	x0, x19
	bl	_oxygen_write8_masked
LBB0_25:
	cbz	w21, LBB0_27
; %bb.26:
	ldr	x0, [sp, #8]
Lloh95:
	adrp	x8, _SNDRV_PCM_STREAM_CAPTURE@GOTPAGE
Lloh96:
	ldr	x8, [x8, _SNDRV_PCM_STREAM_CAPTURE@GOTPAGEOFF]
Lloh97:
	ldr	x1, [x8]
Lloh98:
	adrp	x2, _oxygen_rec_b_ops@GOTPAGE
Lloh99:
	ldr	x2, [x2, _oxygen_rec_b_ops@GOTPAGEOFF]
	bl	_snd_pcm_set_ops
LBB0_27:
	ldr	x8, [sp, #8]
Lloh100:
	adrp	x9, _oxygen_pcm_free@GOTPAGE
Lloh101:
	ldr	x9, [x9, _oxygen_pcm_free@GOTPAGEOFF]
Lloh102:
	ldr	x9, [x9]
	stp	x9, x19, [x8, #8]
	ldr	w0, [x8]
Lloh103:
	adrp	x8, l_.str.5@PAGE
Lloh104:
	add	x8, x8, l_.str.5@PAGEOFF
Lloh105:
	adrp	x9, l_.str.4@PAGE
Lloh106:
	add	x9, x9, l_.str.4@PAGEOFF
	cmp	w20, #0
	csel	x1, x9, x8, ne
	bl	_strcpy
	ldr	x20, [sp, #8]
Lloh107:
	adrp	x8, _SNDRV_DMA_TYPE_DEV@GOTPAGE
Lloh108:
	ldr	x8, [x8, _SNDRV_DMA_TYPE_DEV@GOTPAGEOFF]
Lloh109:
	ldr	w21, [x8]
	ldr	w0, [x19]
	bl	_snd_dma_pci_data
	mov	x2, x0
Lloh110:
	adrp	x8, _DEFAULT_BUFFER_BYTES@GOTPAGE
Lloh111:
	ldr	x8, [x8, _DEFAULT_BUFFER_BYTES@GOTPAGEOFF]
Lloh112:
	ldr	w3, [x8]
Lloh113:
	adrp	x8, _BUFFER_BYTES_MAX@GOTPAGE
Lloh114:
	ldr	x8, [x8, _BUFFER_BYTES_MAX@GOTPAGEOFF]
Lloh115:
	ldr	w4, [x8]
	mov	x0, x20
	mov	x1, x21
	bl	_snd_pcm_lib_preallocate_pages_for_all
LBB0_28:
	mov	w0, #0
LBB0_29:
	ldp	x29, x30, [sp, #64]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #48]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #32]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #16]             ; 16-byte Folded Reload
	add	sp, sp, #80
	ret
	.loh AdrpLdrGot	Lloh5, Lloh6
	.loh AdrpLdrGot	Lloh3, Lloh4
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpAdd	Lloh7, Lloh8
	.loh AdrpLdrGot	Lloh9, Lloh10
	.loh AdrpLdrGot	Lloh11, Lloh12
	.loh AdrpLdrGot	Lloh13, Lloh14
	.loh AdrpLdrGot	Lloh15, Lloh16
	.loh AdrpLdrGot	Lloh17, Lloh18
	.loh AdrpLdrGot	Lloh24, Lloh25
	.loh AdrpAdd	Lloh22, Lloh23
	.loh AdrpLdrGotLdr	Lloh19, Lloh20, Lloh21
	.loh AdrpLdrGotLdr	Lloh29, Lloh30, Lloh31
	.loh AdrpLdrGotLdr	Lloh26, Lloh27, Lloh28
	.loh AdrpLdrGotLdr	Lloh35, Lloh36, Lloh37
	.loh AdrpLdrGotLdr	Lloh32, Lloh33, Lloh34
	.loh AdrpLdrGotLdr	Lloh41, Lloh42, Lloh43
	.loh AdrpLdrGotLdr	Lloh38, Lloh39, Lloh40
	.loh AdrpAdd	Lloh44, Lloh45
	.loh AdrpLdrGot	Lloh49, Lloh50
	.loh AdrpLdrGotLdr	Lloh46, Lloh47, Lloh48
	.loh AdrpLdrGot	Lloh54, Lloh55
	.loh AdrpLdrGotLdr	Lloh51, Lloh52, Lloh53
	.loh AdrpLdrGotLdr	Lloh67, Lloh68, Lloh69
	.loh AdrpLdrGotLdr	Lloh64, Lloh65, Lloh66
	.loh AdrpLdrGotLdr	Lloh61, Lloh62, Lloh63
	.loh AdrpAdd	Lloh59, Lloh60
	.loh AdrpLdrGotLdr	Lloh56, Lloh57, Lloh58
	.loh AdrpLdrGot	Lloh75, Lloh76
	.loh AdrpLdrGot	Lloh73, Lloh74
	.loh AdrpLdrGotLdr	Lloh70, Lloh71, Lloh72
	.loh AdrpAdd	Lloh79, Lloh80
	.loh AdrpAdd	Lloh77, Lloh78
	.loh AdrpLdrGotLdr	Lloh92, Lloh93, Lloh94
	.loh AdrpLdrGotLdr	Lloh89, Lloh90, Lloh91
	.loh AdrpLdrGotLdr	Lloh86, Lloh87, Lloh88
	.loh AdrpLdrGot	Lloh84, Lloh85
	.loh AdrpLdrGotLdr	Lloh81, Lloh82, Lloh83
	.loh AdrpLdrGot	Lloh98, Lloh99
	.loh AdrpLdrGotLdr	Lloh95, Lloh96, Lloh97
	.loh AdrpLdrGotLdr	Lloh113, Lloh114, Lloh115
	.loh AdrpLdrGotLdr	Lloh110, Lloh111, Lloh112
	.loh AdrpLdrGotLdr	Lloh107, Lloh108, Lloh109
	.loh AdrpAdd	Lloh105, Lloh106
	.loh AdrpAdd	Lloh103, Lloh104
	.loh AdrpLdrGotLdr	Lloh100, Lloh101, Lloh102
	.cfi_endproc
                                        ; -- End function
	.comm	_PLAYBACK_0_TO_I2S,4,2          ; @PLAYBACK_0_TO_I2S
	.comm	_CAPTURE_0_FROM_I2S_1,4,2       ; @CAPTURE_0_FROM_I2S_1
	.comm	_CAPTURE_0_FROM_I2S_2,4,2       ; @CAPTURE_0_FROM_I2S_2
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"Multichannel"

	.comm	_SNDRV_PCM_STREAM_PLAYBACK,8,3  ; @SNDRV_PCM_STREAM_PLAYBACK
	.comm	_oxygen_multich_ops,4,2         ; @oxygen_multich_ops
	.comm	_SNDRV_PCM_STREAM_CAPTURE,8,3   ; @SNDRV_PCM_STREAM_CAPTURE
	.comm	_oxygen_rec_a_ops,4,2           ; @oxygen_rec_a_ops
	.comm	_oxygen_rec_b_ops,4,2           ; @oxygen_rec_b_ops
	.comm	_oxygen_pcm_free,8,3            ; @oxygen_pcm_free
	.comm	_SNDRV_DMA_TYPE_DEV,4,2         ; @SNDRV_DMA_TYPE_DEV
	.comm	_DEFAULT_BUFFER_BYTES_MULTICH,4,2 ; @DEFAULT_BUFFER_BYTES_MULTICH
	.comm	_BUFFER_BYTES_MAX_MULTICH,4,2   ; @BUFFER_BYTES_MAX_MULTICH
	.comm	_DEFAULT_BUFFER_BYTES,4,2       ; @DEFAULT_BUFFER_BYTES
	.comm	_BUFFER_BYTES_MAX,4,2           ; @BUFFER_BYTES_MAX
	.comm	_PLAYBACK_1_TO_SPDIF,4,2        ; @PLAYBACK_1_TO_SPDIF
	.comm	_CAPTURE_1_FROM_SPDIF,4,2       ; @CAPTURE_1_FROM_SPDIF
l_.str.1:                               ; @.str.1
	.asciz	"Digital"

	.comm	_oxygen_spdif_ops,4,2           ; @oxygen_spdif_ops
	.comm	_oxygen_rec_c_ops,4,2           ; @oxygen_rec_c_ops
	.comm	_PLAYBACK_2_TO_AC97_1,4,2       ; @PLAYBACK_2_TO_AC97_1
	.comm	_CAPTURE_2_FROM_AC97_1,4,2      ; @CAPTURE_2_FROM_AC97_1
	.comm	_CAPTURE_2_FROM_I2S_2,4,2       ; @CAPTURE_2_FROM_I2S_2
l_.str.2:                               ; @.str.2
	.asciz	"AC97"

l_.str.3:                               ; @.str.3
	.asciz	"Analog2"

	.comm	_oxygen_ac97_ops,4,2            ; @oxygen_ac97_ops
	.comm	_OXYGEN_REC_ROUTING,4,2         ; @OXYGEN_REC_ROUTING
	.comm	_OXYGEN_REC_B_ROUTE_AC97_1,4,2  ; @OXYGEN_REC_B_ROUTE_AC97_1
	.comm	_OXYGEN_REC_B_ROUTE_MASK,4,2    ; @OXYGEN_REC_B_ROUTE_MASK
l_.str.4:                               ; @.str.4
	.asciz	"Front Panel"

l_.str.5:                               ; @.str.5
	.asciz	"Analog 2"

.subsections_via_symbols
