	.file	"857268.c"
	.intel_syntax noprefix
	.text
	.globl	vecTable
	.section	VECTORS,"aw"
	.align 32
	.type	vecTable, @object
	.size	vecTable, 2048
vecTable:
	.quad	523264
	.quad	1032
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.quad	524288
	.text
	.globl	lead_function
	.type	lead_function, @function
lead_function:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
#APP
# 51 "the_stack_data/857268.c" 1
	jmp _start
# 0 "" 2
#NO_APP
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	lead_function, .-lead_function
	.globl	sh2Com
	.data
	.align 8
	.type	sh2Com, @object
	.size	sh2Com, 8
sh2Com:
	.quad	11272
	.globl	csr
	.align 8
	.type	csr, @object
	.size	csr, 8
csr:
	.quad	1048576
	.globl	pcmCtrlData
	.bss
	.align 32
	.type	pcmCtrlData, @object
	.size	pcmCtrlData, 2304
pcmCtrlData:
	.zero	2304
	.globl	ICSR_Busy
	.align 32
	.type	ICSR_Busy, @object
	.size	ICSR_Busy, 32
ICSR_Busy:
	.zero	32
	.globl	icsr_index
	.type	icsr_index, @object
	.size	icsr_index, 1
icsr_index:
	.zero	1
	.globl	loopingIndex
	.align 2
	.type	loopingIndex, @object
	.size	loopingIndex, 2
loopingIndex:
	.zero	2
	.globl	volatileIndex
	.align 2
	.type	volatileIndex, @object
	.size	volatileIndex, 2
volatileIndex:
	.zero	2
	.globl	loopingPCMs
	.align 32
	.type	loopingPCMs, @object
	.size	loopingPCMs, 256
loopingPCMs:
	.zero	256
	.globl	volatilePCMs
	.align 32
	.type	volatilePCMs, @object
	.size	volatilePCMs, 256
volatilePCMs:
	.zero	256
	.globl	dataTimers
	.align 32
	.type	dataTimers, @object
	.size	dataTimers, 128
dataTimers:
	.zero	128
	.text
	.globl	driver_data_init
	.type	driver_data_init, @function
driver_data_init:
.LFB1:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	rax, pcmCtrlData[rip]
	add	eax, 631242752
	mov	edx, eax
	mov	rax, QWORD PTR sh2Com[rip]
	mov	QWORD PTR 8[rax], rdx
	mov	BYTE PTR -3[rbp], 0
	jmp	.L3
.L4:
	movsx	eax, BYTE PTR -3[rbp]
	cdqe
	lea	rdx, ICSR_Busy[rip]
	mov	BYTE PTR [rax+rdx], -1
	movsx	eax, BYTE PTR -3[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, dataTimers[rip]
	mov	DWORD PTR [rdx+rax], 0
	movzx	eax, BYTE PTR -3[rbp]
	add	eax, 1
	mov	BYTE PTR -3[rbp], al
.L3:
	cmp	BYTE PTR -3[rbp], 31
	jle	.L4
	mov	WORD PTR -2[rbp], 0
	jmp	.L5
.L6:
	movsx	eax, WORD PTR -2[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, pcmCtrlData[rip+16]
	mov	BYTE PTR [rdx+rax], 0
	movsx	eax, WORD PTR -2[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	add	rax, rax
	mov	rdx, rax
	lea	rax, pcmCtrlData[rip+17]
	mov	BYTE PTR [rdx+rax], -1
	movsx	eax, WORD PTR -2[rbp]
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, loopingPCMs[rip]
	mov	WORD PTR [rdx+rax], -1
	movsx	eax, WORD PTR -2[rbp]
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, volatilePCMs[rip]
	mov	WORD PTR [rdx+rax], -1
	movzx	eax, WORD PTR -2[rbp]
	add	eax, 1
	mov	WORD PTR -2[rbp], ax
.L5:
	cmp	WORD PTR -2[rbp], 127
	jle	.L6
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	driver_data_init, .-driver_data_init
	.globl	play_volatile_sound
	.type	play_volatile_sound, @function
play_volatile_sound:
.LFB2:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 17[rax]
	mov	BYTE PTR -1[rbp], al
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -1[rbp]
	sal	rax, 5
	add	rax, rdx
	mov	WORD PTR [rax], 0
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -1[rbp]
	sal	rax, 5
	add	rax, rdx
	movzx	edx, WORD PTR [rax]
	mov	rcx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -1[rbp]
	sal	rax, 5
	add	rax, rcx
	or	dh, 16
	mov	WORD PTR [rax], dx
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 1[rax]
	movzx	eax, al
	sal	eax, 4
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, WORD PTR 2[rax]
	or	edx, eax
	mov	rcx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -1[rbp]
	sal	rax, 5
	add	rax, rcx
	or	dh, 8
	mov	WORD PTR [rax], dx
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -1[rbp]
	sal	rax, 5
	add	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, WORD PTR 4[rax]
	mov	WORD PTR 2[rdx], ax
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -1[rbp]
	sal	rax, 5
	add	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, WORD PTR 6[rax]
	mov	WORD PTR 4[rdx], ax
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -1[rbp]
	sal	rax, 5
	add	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, WORD PTR 8[rax]
	mov	WORD PTR 6[rdx], ax
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -1[rbp]
	sal	rax, 5
	add	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, WORD PTR 10[rax]
	mov	WORD PTR 16[rdx], ax
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 13[rax]
	movzx	eax, al
	sal	eax, 13
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 12[rax]
	movzx	eax, al
	sal	eax, 8
	or	edx, eax
	mov	rcx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -1[rbp]
	sal	rax, 5
	add	rax, rcx
	mov	WORD PTR 22[rax], dx
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -1[rbp]
	sal	rax, 5
	add	rax, rdx
	mov	WORD PTR 8[rax], 31
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -1[rbp]
	sal	rax, 5
	add	rax, rdx
	mov	WORD PTR 10[rax], 31
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -1[rbp]
	sal	rax, 5
	add	rax, rdx
	movzx	edx, WORD PTR [rax]
	mov	rcx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -1[rbp]
	sal	rax, 5
	add	rax, rcx
	or	dh, 16
	mov	WORD PTR [rax], dx
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 16[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 17[rax], -1
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	play_volatile_sound, .-play_volatile_sound
	.globl	play_protected_sound
	.type	play_protected_sound, @function
play_protected_sound:
.LFB3:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, edi
	mov	WORD PTR -20[rbp], ax
	movsx	eax, WORD PTR -20[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	add	rax, rax
	lea	rdx, pcmCtrlData[rip]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 17[rax]
	mov	BYTE PTR -9[rbp], al
	movsx	eax, BYTE PTR -9[rbp]
	cdqe
	lea	rdx, ICSR_Busy[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cbw
	cmp	WORD PTR -20[rbp], ax
	je	.L9
	movsx	eax, BYTE PTR -9[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, dataTimers[rip]
	mov	DWORD PTR [rdx+rax], 0
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rdx
	mov	WORD PTR [rax], 0
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rdx
	movzx	edx, WORD PTR [rax]
	mov	rcx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rcx
	or	dh, 16
	mov	WORD PTR [rax], dx
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 1[rax]
	movzx	eax, al
	sal	eax, 4
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 2[rax]
	or	edx, eax
	mov	rcx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rcx
	or	dh, 8
	mov	WORD PTR [rax], dx
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 4[rax]
	mov	WORD PTR 2[rdx], ax
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 6[rax]
	mov	WORD PTR 4[rdx], ax
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 8[rax]
	mov	WORD PTR 6[rdx], ax
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 10[rax]
	mov	WORD PTR 16[rdx], ax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 13[rax]
	movzx	eax, al
	sal	eax, 13
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 12[rax]
	movzx	eax, al
	sal	eax, 8
	or	edx, eax
	mov	rcx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rcx
	mov	WORD PTR 22[rax], dx
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rdx
	mov	WORD PTR 8[rax], 31
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rdx
	mov	WORD PTR 10[rax], 31
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rdx
	movzx	edx, WORD PTR [rax]
	mov	rcx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rcx
	or	dh, 16
	mov	WORD PTR [rax], dx
	jmp	.L10
.L9:
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 10[rax]
	mov	WORD PTR 16[rdx], ax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 13[rax]
	movzx	eax, al
	sal	eax, 13
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 12[rax]
	movzx	eax, al
	sal	eax, 8
	or	edx, eax
	mov	rcx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rcx
	mov	WORD PTR 22[rax], dx
.L10:
	movsx	eax, BYTE PTR -9[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, dataTimers[rip]
	mov	edx, DWORD PTR [rdx+rax]
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 8[rax]
	movzx	esi, ax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 1[rax]
	movzx	ecx, al
	mov	eax, 1
	sub	eax, ecx
	mov	ecx, eax
	sal	esi, cl
	mov	eax, esi
	cmp	edx, eax
	jl	.L11
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rdx
	mov	WORD PTR [rax], 0
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rdx
	movzx	edx, WORD PTR [rax]
	mov	rcx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rcx
	or	dh, 16
	mov	WORD PTR [rax], dx
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 16[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 17[rax], -1
	movsx	eax, BYTE PTR -9[rbp]
	cdqe
	lea	rdx, ICSR_Busy[rip]
	mov	BYTE PTR [rax+rdx], -1
	movsx	eax, BYTE PTR -9[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, dataTimers[rip]
	mov	DWORD PTR [rdx+rax], 0
	jmp	.L13
.L11:
	movsx	eax, BYTE PTR -9[rbp]
	movzx	edx, WORD PTR -20[rbp]
	mov	ecx, edx
	cdqe
	lea	rdx, ICSR_Busy[rip]
	mov	BYTE PTR [rax+rdx], cl
	movsx	eax, BYTE PTR -9[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, dataTimers[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 14[rax]
	movzx	edx, ax
	movsx	eax, BYTE PTR -9[rbp]
	add	ecx, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, dataTimers[rip]
	mov	DWORD PTR [rdx+rax], ecx
.L13:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	play_protected_sound, .-play_protected_sound
	.globl	play_semi_protected_sound
	.type	play_semi_protected_sound, @function
play_semi_protected_sound:
.LFB4:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, edi
	mov	WORD PTR -20[rbp], ax
	movsx	eax, WORD PTR -20[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	add	rax, rax
	lea	rdx, pcmCtrlData[rip]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 17[rax]
	mov	BYTE PTR -9[rbp], al
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 16[rax]
	cmp	al, 1
	jne	.L15
	movsx	eax, BYTE PTR -9[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, dataTimers[rip]
	mov	DWORD PTR [rdx+rax], 0
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rdx
	mov	WORD PTR [rax], 0
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rdx
	movzx	edx, WORD PTR [rax]
	mov	rcx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rcx
	or	dh, 16
	mov	WORD PTR [rax], dx
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 1[rax]
	movzx	eax, al
	sal	eax, 4
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 2[rax]
	or	edx, eax
	mov	rcx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rcx
	or	dh, 8
	mov	WORD PTR [rax], dx
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 4[rax]
	mov	WORD PTR 2[rdx], ax
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 6[rax]
	mov	WORD PTR 4[rdx], ax
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 8[rax]
	mov	WORD PTR 6[rdx], ax
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 10[rax]
	mov	WORD PTR 16[rdx], ax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 13[rax]
	movzx	eax, al
	sal	eax, 13
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 12[rax]
	movzx	eax, al
	sal	eax, 8
	or	edx, eax
	mov	rcx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rcx
	mov	WORD PTR 22[rax], dx
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rdx
	mov	WORD PTR 8[rax], 31
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rdx
	mov	WORD PTR 10[rax], 31
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rdx
	movzx	edx, WORD PTR [rax]
	mov	rcx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rcx
	or	dh, 16
	mov	WORD PTR [rax], dx
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 16[rax], 0
.L15:
	movsx	eax, BYTE PTR -9[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, dataTimers[rip]
	mov	edx, DWORD PTR [rdx+rax]
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 8[rax]
	movzx	esi, ax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 1[rax]
	movzx	ecx, al
	mov	eax, 1
	sub	eax, ecx
	mov	ecx, eax
	sal	esi, cl
	mov	eax, esi
	cmp	edx, eax
	jl	.L16
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rdx
	mov	WORD PTR [rax], 0
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rdx
	movzx	edx, WORD PTR [rax]
	mov	rcx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rcx
	or	dh, 16
	mov	WORD PTR [rax], dx
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 16[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 17[rax], -1
	movsx	eax, BYTE PTR -9[rbp]
	cdqe
	lea	rdx, ICSR_Busy[rip]
	mov	BYTE PTR [rax+rdx], -1
	movsx	eax, BYTE PTR -9[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, dataTimers[rip]
	mov	DWORD PTR [rdx+rax], 0
	jmp	.L18
.L16:
	movsx	eax, BYTE PTR -9[rbp]
	movzx	edx, WORD PTR -20[rbp]
	mov	ecx, edx
	cdqe
	lea	rdx, ICSR_Busy[rip]
	mov	BYTE PTR [rax+rdx], cl
	movsx	eax, BYTE PTR -9[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, dataTimers[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 14[rax]
	movzx	edx, ax
	movsx	eax, BYTE PTR -9[rbp]
	add	ecx, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, dataTimers[rip]
	mov	DWORD PTR [rdx+rax], ecx
.L18:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	play_semi_protected_sound, .-play_semi_protected_sound
	.globl	set_looping_sound
	.type	set_looping_sound, @function
set_looping_sound:
.LFB5:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, edi
	mov	WORD PTR -20[rbp], ax
	movsx	eax, WORD PTR -20[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	add	rax, rax
	lea	rdx, pcmCtrlData[rip]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 17[rax]
	mov	BYTE PTR -9[rbp], al
	movsx	eax, BYTE PTR -9[rbp]
	cdqe
	lea	rdx, ICSR_Busy[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cbw
	cmp	WORD PTR -20[rbp], ax
	je	.L20
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rdx
	mov	WORD PTR [rax], 0
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rdx
	movzx	edx, WORD PTR [rax]
	mov	rcx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rcx
	or	dh, 16
	mov	WORD PTR [rax], dx
.L20:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	sal	eax, 5
	or	ah, 8
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 1[rax]
	movzx	eax, al
	sal	eax, 4
	or	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 2[rax]
	or	edx, eax
	mov	rcx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rcx
	mov	WORD PTR [rax], dx
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 4[rax]
	mov	WORD PTR 2[rdx], ax
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 6[rax]
	mov	WORD PTR 4[rdx], ax
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 8[rax]
	mov	WORD PTR 6[rdx], ax
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR 10[rax]
	mov	WORD PTR 16[rdx], ax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 13[rax]
	movzx	eax, al
	sal	eax, 13
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 12[rax]
	movzx	eax, al
	sal	eax, 8
	or	edx, eax
	mov	rcx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rcx
	mov	WORD PTR 22[rax], dx
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rdx
	mov	WORD PTR 8[rax], 31
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rdx
	mov	WORD PTR 10[rax], 31
	mov	rdx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rdx
	movzx	edx, WORD PTR [rax]
	mov	rcx, QWORD PTR csr[rip]
	movsx	rax, BYTE PTR -9[rbp]
	sal	rax, 5
	add	rax, rcx
	or	dh, 16
	mov	WORD PTR [rax], dx
	movsx	eax, BYTE PTR -9[rbp]
	movzx	edx, WORD PTR -20[rbp]
	mov	ecx, edx
	cdqe
	lea	rdx, ICSR_Busy[rip]
	mov	BYTE PTR [rax+rdx], cl
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	set_looping_sound, .-set_looping_sound
	.globl	pcm_control_loop
	.type	pcm_control_loop, @function
pcm_control_loop:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	BYTE PTR icsr_index[rip], 0
	mov	WORD PTR loopingIndex[rip], 0
	mov	WORD PTR volatileIndex[rip], 0
	mov	WORD PTR -14[rbp], 0
	jmp	.L22
.L25:
	movsx	eax, WORD PTR -14[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	add	rax, rax
	lea	rdx, pcmCtrlData[rip]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L23
	movzx	eax, WORD PTR volatileIndex[rip]
	cwde
	cdqe
	lea	rcx, [rax+rax]
	lea	rdx, volatilePCMs[rip]
	movzx	eax, WORD PTR -14[rbp]
	mov	WORD PTR [rcx+rdx], ax
	movzx	eax, WORD PTR volatileIndex[rip]
	add	eax, 1
	mov	WORD PTR volatileIndex[rip], ax
	jmp	.L24
.L23:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L24
	movzx	eax, WORD PTR loopingIndex[rip]
	cwde
	cdqe
	lea	rcx, [rax+rax]
	lea	rdx, loopingPCMs[rip]
	movzx	eax, WORD PTR -14[rbp]
	mov	WORD PTR [rcx+rdx], ax
	movzx	eax, WORD PTR loopingIndex[rip]
	add	eax, 1
	mov	WORD PTR loopingIndex[rip], ax
.L24:
	movzx	eax, WORD PTR -14[rbp]
	add	eax, 1
	mov	WORD PTR -14[rbp], ax
.L22:
	cmp	WORD PTR -14[rbp], 127
	jle	.L25
	mov	WORD PTR -12[rbp], 0
	jmp	.L26
.L45:
	movsx	eax, WORD PTR -12[rbp]
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, loopingPCMs[rip]
	movzx	eax, WORD PTR [rdx+rax]
	cwde
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	add	rax, rax
	lea	rdx, pcmCtrlData[rip]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jle	.L27
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 16[rax]
	cmp	al, 1
	jne	.L28
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 17[rax]
	cmp	al, -1
	jne	.L29
	jmp	.L30
.L31:
	movzx	eax, BYTE PTR icsr_index[rip]
	add	eax, 1
	mov	BYTE PTR icsr_index[rip], al
.L30:
	movzx	eax, BYTE PTR icsr_index[rip]
	movsx	eax, al
	cdqe
	lea	rdx, ICSR_Busy[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, -1
	jne	.L31
	movzx	eax, BYTE PTR icsr_index[rip]
	cmp	al, 31
	jg	.L53
	movzx	edx, BYTE PTR icsr_index[rip]
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 17[rax], dl
	movsx	eax, WORD PTR -12[rbp]
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, loopingPCMs[rip]
	movzx	eax, WORD PTR [rdx+rax]
	cwde
	mov	edi, eax
	call	set_looping_sound
	movzx	eax, BYTE PTR icsr_index[rip]
	add	eax, 1
	mov	BYTE PTR icsr_index[rip], al
	jmp	.L34
.L29:
	movsx	eax, WORD PTR -12[rbp]
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, loopingPCMs[rip]
	movzx	eax, WORD PTR [rdx+rax]
	cwde
	mov	edi, eax
	call	set_looping_sound
	jmp	.L34
.L28:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 17[rax]
	cmp	al, -1
	je	.L34
	mov	rdx, QWORD PTR csr[rip]
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 17[rax]
	movsx	rax, al
	sal	rax, 5
	add	rax, rdx
	mov	WORD PTR [rax], 0
	mov	rdx, QWORD PTR csr[rip]
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 17[rax]
	movsx	rax, al
	sal	rax, 5
	add	rax, rdx
	movzx	edx, WORD PTR [rax]
	mov	rcx, QWORD PTR csr[rip]
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 17[rax]
	movsx	rax, al
	sal	rax, 5
	add	rax, rcx
	or	dh, 16
	mov	WORD PTR [rax], dx
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 17[rax]
	movsx	eax, al
	cdqe
	lea	rdx, ICSR_Busy[rip]
	mov	BYTE PTR [rax+rdx], -1
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 17[rax], -1
	jmp	.L34
.L27:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, -1
	jne	.L35
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 16[rax]
	cmp	al, 1
	jne	.L35
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 17[rax]
	cmp	al, -1
	jne	.L36
	jmp	.L37
.L38:
	movzx	eax, BYTE PTR icsr_index[rip]
	add	eax, 1
	mov	BYTE PTR icsr_index[rip], al
.L37:
	movzx	eax, BYTE PTR icsr_index[rip]
	movsx	eax, al
	cdqe
	lea	rdx, ICSR_Busy[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, -1
	jne	.L38
	movzx	eax, BYTE PTR icsr_index[rip]
	cmp	al, 31
	jg	.L54
	movzx	edx, BYTE PTR icsr_index[rip]
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 17[rax], dl
	movsx	eax, WORD PTR -12[rbp]
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, loopingPCMs[rip]
	movzx	eax, WORD PTR [rdx+rax]
	cwde
	mov	edi, eax
	call	play_protected_sound
	movzx	eax, BYTE PTR icsr_index[rip]
	add	eax, 1
	mov	BYTE PTR icsr_index[rip], al
	jmp	.L34
.L36:
	movsx	eax, WORD PTR -12[rbp]
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, loopingPCMs[rip]
	movzx	eax, WORD PTR [rdx+rax]
	cwde
	mov	edi, eax
	call	play_protected_sound
	jmp	.L34
.L35:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, -2
	jne	.L34
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 17[rax]
	cmp	al, -1
	jne	.L41
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 16[rax]
	cmp	al, 1
	jne	.L41
	jmp	.L42
.L43:
	movzx	eax, BYTE PTR icsr_index[rip]
	add	eax, 1
	mov	BYTE PTR icsr_index[rip], al
.L42:
	movzx	eax, BYTE PTR icsr_index[rip]
	movsx	eax, al
	cdqe
	lea	rdx, ICSR_Busy[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, -1
	jne	.L43
	movzx	eax, BYTE PTR icsr_index[rip]
	cmp	al, 31
	jg	.L55
	movzx	edx, BYTE PTR icsr_index[rip]
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 17[rax], dl
	movsx	eax, WORD PTR -12[rbp]
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, loopingPCMs[rip]
	movzx	eax, WORD PTR [rdx+rax]
	cwde
	mov	edi, eax
	call	play_semi_protected_sound
	movzx	eax, BYTE PTR icsr_index[rip]
	add	eax, 1
	mov	BYTE PTR icsr_index[rip], al
	jmp	.L34
.L41:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 17[rax]
	cmp	al, -1
	je	.L34
	movsx	eax, WORD PTR -12[rbp]
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, loopingPCMs[rip]
	movzx	eax, WORD PTR [rdx+rax]
	cwde
	mov	edi, eax
	call	play_semi_protected_sound
.L34:
	movzx	eax, WORD PTR -12[rbp]
	add	eax, 1
	mov	WORD PTR -12[rbp], ax
.L26:
	movzx	eax, WORD PTR loopingIndex[rip]
	cmp	WORD PTR -12[rbp], ax
	jl	.L45
	jmp	.L33
.L53:
	nop
	jmp	.L33
.L54:
	nop
	jmp	.L33
.L55:
	nop
.L33:
	mov	WORD PTR -10[rbp], 0
	jmp	.L46
.L52:
	movsx	eax, WORD PTR -10[rbp]
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, volatilePCMs[rip]
	movzx	eax, WORD PTR [rdx+rax]
	cwde
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	add	rax, rax
	lea	rdx, pcmCtrlData[rip]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	jmp	.L47
.L48:
	movzx	eax, BYTE PTR icsr_index[rip]
	add	eax, 1
	mov	BYTE PTR icsr_index[rip], al
.L47:
	movzx	eax, BYTE PTR icsr_index[rip]
	movsx	eax, al
	cdqe
	lea	rdx, ICSR_Busy[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, -1
	jne	.L48
	movzx	eax, BYTE PTR icsr_index[rip]
	cmp	al, 31
	jg	.L56
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L51
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 16[rax]
	cmp	al, 1
	jne	.L51
	movzx	edx, BYTE PTR icsr_index[rip]
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 17[rax], dl
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	play_volatile_sound
	movzx	eax, BYTE PTR icsr_index[rip]
	add	eax, 1
	mov	BYTE PTR icsr_index[rip], al
.L51:
	movzx	eax, WORD PTR -10[rbp]
	add	eax, 1
	mov	WORD PTR -10[rbp], ax
.L46:
	movzx	eax, WORD PTR volatileIndex[rip]
	cmp	WORD PTR -10[rbp], ax
	jl	.L52
	jmp	.L57
.L56:
	nop
.L57:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	pcm_control_loop, .-pcm_control_loop
	.globl	_start
	.type	_start, @function
_start:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	call	driver_data_init
.L61:
	mov	rax, QWORD PTR sh2Com[rip]
	movzx	eax, WORD PTR [rax]
	test	ax, ax
	jne	.L63
	jmp	.L61
.L63:
	nop
	mov	rax, QWORD PTR sh2Com[rip]
	mov	WORD PTR [rax], 0
	call	pcm_control_loop
	jmp	.L61
	.cfi_endproc
.LFE7:
	.size	_start, .-_start
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"857268.c"
	.text
	.global	vecTable
	.section	VECTORS,"aw"
	.align	2
	.type	vecTable, %object
	.size	vecTable, 1024
vecTable:
	.word	523264
	.word	1032
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.word	524288
	.text
	.align	2
	.global	lead_function
	.syntax unified
	.arm
	.fpu softvfp
	.type	lead_function, %function
lead_function:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	.syntax divided
@ 51 "the_stack_data/857268.c" 1
	jmp _start
@ 0 "" 2
	.arm
	.syntax unified
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	lead_function, .-lead_function
	.global	sh2Com
	.data
	.align	2
	.type	sh2Com, %object
	.size	sh2Com, 4
sh2Com:
	.word	11272
	.global	csr
	.align	2
	.type	csr, %object
	.size	csr, 4
csr:
	.word	1048576
	.comm	pcmCtrlData,2304,4
	.comm	ICSR_Busy,32,4
	.global	icsr_index
	.bss
	.type	icsr_index, %object
	.size	icsr_index, 1
icsr_index:
	.space	1
	.global	loopingIndex
	.align	1
	.type	loopingIndex, %object
	.size	loopingIndex, 2
loopingIndex:
	.space	2
	.global	volatileIndex
	.align	1
	.type	volatileIndex, %object
	.size	volatileIndex, 2
volatileIndex:
	.space	2
	.comm	loopingPCMs,256,4
	.comm	volatilePCMs,256,4
	.comm	dataTimers,128,4
	.text
	.align	2
	.global	driver_data_init
	.syntax unified
	.arm
	.fpu softvfp
	.type	driver_data_init, %function
driver_data_init:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	ldr	r3, .L7
	add	r3, r3, #629145600
	add	r3, r3, #2097152
	ldr	r2, .L7+4
	ldr	r2, [r2]
	str	r3, [r2, #4]
	mov	r3, #0
	strb	r3, [fp, #-7]
	b	.L3
.L4:
	ldrb	r3, [fp, #-7]	@ zero_extendqisi2
	ldr	r2, .L7+8
	mvn	r1, #0
	strb	r1, [r2, r3]
	ldrb	r3, [fp, #-7]	@ zero_extendqisi2
	ldr	r2, .L7+12
	mov	r1, #0
	str	r1, [r2, r3, lsl #2]
	ldrb	r3, [fp, #-7]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-7]
.L3:
	ldrb	r3, [fp, #-7]	@ zero_extendqisi2
	cmp	r3, #31
	bls	.L4
	mov	r3, #0
	strh	r3, [fp, #-6]	@ movhi
	b	.L5
.L6:
	ldrsh	r2, [fp, #-6]
	ldr	r1, .L7
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #16
	mov	r2, #0
	strb	r2, [r3]
	ldrsh	r2, [fp, #-6]
	ldr	r1, .L7
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #17
	mvn	r2, #0
	strb	r2, [r3]
	ldrsh	r3, [fp, #-6]
	ldr	r2, .L7+16
	lsl	r3, r3, #1
	add	r3, r2, r3
	mvn	r2, #0
	strh	r2, [r3]	@ movhi
	ldrsh	r3, [fp, #-6]
	ldr	r2, .L7+20
	lsl	r3, r3, #1
	add	r3, r2, r3
	mvn	r2, #0
	strh	r2, [r3]	@ movhi
	ldrsh	r3, [fp, #-6]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-6]	@ movhi
.L5:
	ldrsh	r3, [fp, #-6]
	cmp	r3, #127
	ble	.L6
	nop
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L8:
	.align	2
.L7:
	.word	pcmCtrlData
	.word	sh2Com
	.word	ICSR_Busy
	.word	dataTimers
	.word	loopingPCMs
	.word	volatilePCMs
	.size	driver_data_init, .-driver_data_init
	.align	2
	.global	play_volatile_sound
	.syntax unified
	.arm
	.fpu softvfp
	.type	play_volatile_sound, %function
play_volatile_sound:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3, #17]
	strb	r3, [fp, #-5]
	ldr	r3, .L10
	ldr	r2, [r3]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	ldr	r3, .L10
	ldr	r2, [r3]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L10
	ldr	r1, [r3]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r1, r3
	orr	r2, r2, #4096
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	lsl	r3, r3, #4
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-16]
	ldrh	r3, [r3, #2]
	orr	r3, r2, r3
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L10
	ldr	r1, [r3]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r1, r3
	orr	r2, r2, #2048
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	ldr	r3, .L10
	ldr	r2, [r3]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [fp, #-16]
	ldrh	r2, [r2, #4]
	strh	r2, [r3, #2]	@ movhi
	ldr	r3, .L10
	ldr	r2, [r3]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [fp, #-16]
	ldrh	r2, [r2, #6]
	strh	r2, [r3, #4]	@ movhi
	ldr	r3, .L10
	ldr	r2, [r3]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [fp, #-16]
	ldrh	r2, [r2, #8]
	strh	r2, [r3, #6]	@ movhi
	ldr	r3, .L10
	ldr	r2, [r3]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [fp, #-16]
	ldrh	r2, [r2, #10]
	strh	r2, [r3, #16]	@ movhi
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3, #13]	@ zero_extendqisi2
	lsl	r3, r3, #13
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	lsl	r3, r3, #8
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r2, r3
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L10
	ldr	r1, [r3]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r1, r3
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #22]	@ movhi
	ldr	r3, .L10
	ldr	r2, [r3]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	mov	r2, #31
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, .L10
	ldr	r2, [r3]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	mov	r2, #31
	strh	r2, [r3, #10]	@ movhi
	ldr	r3, .L10
	ldr	r2, [r3]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L10
	ldr	r1, [r3]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r1, r3
	orr	r2, r2, #4096
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-16]
	mov	r2, #0
	strb	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	mvn	r2, #0
	strb	r2, [r3, #17]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L11:
	.align	2
.L10:
	.word	csr
	.size	play_volatile_sound, .-play_volatile_sound
	.align	2
	.global	play_protected_sound
	.syntax unified
	.arm
	.fpu softvfp
	.type	play_protected_sound, %function
play_protected_sound:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	mov	r3, r0
	strh	r3, [fp, #-14]	@ movhi
	ldrsh	r2, [fp, #-14]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	ldr	r2, .L18
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #17]
	strb	r3, [fp, #-9]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	ldr	r2, .L18+4
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	mov	r2, r3
	ldrsh	r3, [fp, #-14]
	cmp	r2, r3
	beq	.L13
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	ldr	r2, .L18+8
	mov	r1, #0
	str	r1, [r2, r3, lsl #2]
	ldr	r3, .L18+12
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	ldr	r3, .L18+12
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L18+12
	ldr	r1, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r1, r3
	orr	r2, r2, #4096
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	lsl	r3, r3, #4
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #2]
	orr	r3, r2, r3
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L18+12
	ldr	r1, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r1, r3
	orr	r2, r2, #2048
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	ldr	r3, .L18+12
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	ldrh	r2, [r2, #4]
	strh	r2, [r3, #2]	@ movhi
	ldr	r3, .L18+12
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	ldrh	r2, [r2, #6]
	strh	r2, [r3, #4]	@ movhi
	ldr	r3, .L18+12
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	ldrh	r2, [r2, #8]
	strh	r2, [r3, #6]	@ movhi
	ldr	r3, .L18+12
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	ldrh	r2, [r2, #10]
	strh	r2, [r3, #16]	@ movhi
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #13]	@ zero_extendqisi2
	lsl	r3, r3, #13
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	lsl	r3, r3, #8
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r2, r3
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L18+12
	ldr	r1, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r1, r3
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #22]	@ movhi
	ldr	r3, .L18+12
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	mov	r2, #31
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, .L18+12
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	mov	r2, #31
	strh	r2, [r3, #10]	@ movhi
	ldr	r3, .L18+12
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L18+12
	ldr	r1, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r1, r3
	orr	r2, r2, #4096
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	b	.L14
.L13:
	ldr	r3, .L18+12
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	ldrh	r2, [r2, #10]
	strh	r2, [r3, #16]	@ movhi
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #13]	@ zero_extendqisi2
	lsl	r3, r3, #13
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	lsl	r3, r3, #8
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r2, r3
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L18+12
	ldr	r1, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r1, r3
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #22]	@ movhi
.L14:
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	ldr	r2, .L18+8
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #8]
	mov	r1, r3
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	rsb	r3, r3, #1
	lsl	r3, r1, r3
	cmp	r2, r3
	blt	.L15
	ldr	r3, .L18+12
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	ldr	r3, .L18+12
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L18+12
	ldr	r1, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r1, r3
	orr	r2, r2, #4096
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-8]
	mov	r2, #0
	strb	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	mvn	r2, #0
	strb	r2, [r3, #17]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	ldr	r2, .L18+4
	mvn	r1, #0
	strb	r1, [r2, r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	ldr	r2, .L18+8
	mov	r1, #0
	str	r1, [r2, r3, lsl #2]
	b	.L17
.L15:
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	ldrh	r2, [fp, #-14]	@ movhi
	and	r1, r2, #255
	ldr	r2, .L18+4
	strb	r1, [r2, r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	ldr	r2, .L18+8
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #14]
	mov	r1, r3
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	add	r2, r2, r1
	ldr	r1, .L18+8
	str	r2, [r1, r3, lsl #2]
.L17:
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L19:
	.align	2
.L18:
	.word	pcmCtrlData
	.word	ICSR_Busy
	.word	dataTimers
	.word	csr
	.size	play_protected_sound, .-play_protected_sound
	.align	2
	.global	play_semi_protected_sound
	.syntax unified
	.arm
	.fpu softvfp
	.type	play_semi_protected_sound, %function
play_semi_protected_sound:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	mov	r3, r0
	strh	r3, [fp, #-14]	@ movhi
	ldrsh	r2, [fp, #-14]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	ldr	r2, .L25
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #17]
	strb	r3, [fp, #-9]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #16]	@ zero_extendqisi2
	cmp	r3, #1
	bne	.L21
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	ldr	r2, .L25+4
	mov	r1, #0
	str	r1, [r2, r3, lsl #2]
	ldr	r3, .L25+8
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	ldr	r3, .L25+8
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L25+8
	ldr	r1, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r1, r3
	orr	r2, r2, #4096
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	lsl	r3, r3, #4
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #2]
	orr	r3, r2, r3
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L25+8
	ldr	r1, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r1, r3
	orr	r2, r2, #2048
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	ldr	r3, .L25+8
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	ldrh	r2, [r2, #4]
	strh	r2, [r3, #2]	@ movhi
	ldr	r3, .L25+8
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	ldrh	r2, [r2, #6]
	strh	r2, [r3, #4]	@ movhi
	ldr	r3, .L25+8
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	ldrh	r2, [r2, #8]
	strh	r2, [r3, #6]	@ movhi
	ldr	r3, .L25+8
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	ldrh	r2, [r2, #10]
	strh	r2, [r3, #16]	@ movhi
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #13]	@ zero_extendqisi2
	lsl	r3, r3, #13
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	lsl	r3, r3, #8
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r2, r3
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L25+8
	ldr	r1, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r1, r3
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #22]	@ movhi
	ldr	r3, .L25+8
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	mov	r2, #31
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, .L25+8
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	mov	r2, #31
	strh	r2, [r3, #10]	@ movhi
	ldr	r3, .L25+8
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L25+8
	ldr	r1, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r1, r3
	orr	r2, r2, #4096
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-8]
	mov	r2, #0
	strb	r2, [r3, #16]
.L21:
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	ldr	r2, .L25+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #8]
	mov	r1, r3
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	rsb	r3, r3, #1
	lsl	r3, r1, r3
	cmp	r2, r3
	blt	.L22
	ldr	r3, .L25+8
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	ldr	r3, .L25+8
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L25+8
	ldr	r1, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r1, r3
	orr	r2, r2, #4096
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-8]
	mov	r2, #0
	strb	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	mvn	r2, #0
	strb	r2, [r3, #17]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	ldr	r2, .L25+12
	mvn	r1, #0
	strb	r1, [r2, r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	ldr	r2, .L25+4
	mov	r1, #0
	str	r1, [r2, r3, lsl #2]
	b	.L24
.L22:
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	ldrh	r2, [fp, #-14]	@ movhi
	and	r1, r2, #255
	ldr	r2, .L25+12
	strb	r1, [r2, r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	ldr	r2, .L25+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #14]
	mov	r1, r3
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	add	r2, r2, r1
	ldr	r1, .L25+4
	str	r2, [r1, r3, lsl #2]
.L24:
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L26:
	.align	2
.L25:
	.word	pcmCtrlData
	.word	dataTimers
	.word	csr
	.word	ICSR_Busy
	.size	play_semi_protected_sound, .-play_semi_protected_sound
	.align	2
	.global	set_looping_sound
	.syntax unified
	.arm
	.fpu softvfp
	.type	set_looping_sound, %function
set_looping_sound:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	mov	r3, r0
	strh	r3, [fp, #-14]	@ movhi
	ldrsh	r2, [fp, #-14]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	ldr	r2, .L29
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #17]
	strb	r3, [fp, #-9]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	ldr	r2, .L29+4
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	mov	r2, r3
	ldrsh	r3, [fp, #-14]
	cmp	r2, r3
	beq	.L28
	ldr	r3, .L29+8
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	ldr	r3, .L29+8
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L29+8
	ldr	r1, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r1, r3
	orr	r2, r2, #4096
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3]	@ movhi
.L28:
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #5
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r3, #2048
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	lsl	r3, r3, #4
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r2, r3
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3, #2]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r2, r3
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L29+8
	ldr	r1, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r1, r3
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	ldr	r3, .L29+8
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	ldrh	r2, [r2, #4]
	strh	r2, [r3, #2]	@ movhi
	ldr	r3, .L29+8
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	ldrh	r2, [r2, #6]
	strh	r2, [r3, #4]	@ movhi
	ldr	r3, .L29+8
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	ldrh	r2, [r2, #8]
	strh	r2, [r3, #6]	@ movhi
	ldr	r3, .L29+8
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	ldrh	r2, [r2, #10]
	strh	r2, [r3, #16]	@ movhi
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #13]	@ zero_extendqisi2
	lsl	r3, r3, #13
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	lsl	r3, r3, #8
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r2, r3
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L29+8
	ldr	r1, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r1, r3
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3, #22]	@ movhi
	ldr	r3, .L29+8
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	mov	r2, #31
	strh	r2, [r3, #8]	@ movhi
	ldr	r3, .L29+8
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	mov	r2, #31
	strh	r2, [r3, #10]	@ movhi
	ldr	r3, .L29+8
	ldr	r2, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L29+8
	ldr	r1, [r3]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r1, r3
	orr	r2, r2, #4096
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	ldrh	r2, [fp, #-14]	@ movhi
	and	r1, r2, #255
	ldr	r2, .L29+4
	strb	r1, [r2, r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L30:
	.align	2
.L29:
	.word	pcmCtrlData
	.word	ICSR_Busy
	.word	csr
	.size	set_looping_sound, .-set_looping_sound
	.align	2
	.global	pcm_control_loop
	.syntax unified
	.arm
	.fpu softvfp
	.type	pcm_control_loop, %function
pcm_control_loop:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	ldr	r3, .L45
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, .L45+4
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	ldr	r3, .L45+8
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	mov	r3, #0
	strh	r3, [fp, #-14]	@ movhi
	b	.L32
.L35:
	ldrsh	r2, [fp, #-14]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	ldr	r2, .L45+12
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L33
	ldr	r3, .L45+8
	ldrsh	r3, [r3]
	ldr	r2, .L45+16
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r2, [fp, #-14]	@ movhi
	strh	r2, [r3]	@ movhi
	ldr	r3, .L45+8
	ldrsh	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #16
	asr	r3, r3, #16
	ldr	r2, .L45+8
	strh	r3, [r2]	@ movhi
	b	.L34
.L33:
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L34
	ldr	r3, .L45+4
	ldrsh	r3, [r3]
	ldr	r2, .L45+20
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r2, [fp, #-14]	@ movhi
	strh	r2, [r3]	@ movhi
	ldr	r3, .L45+4
	ldrsh	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #16
	asr	r3, r3, #16
	ldr	r2, .L45+4
	strh	r3, [r2]	@ movhi
.L34:
	ldrsh	r3, [fp, #-14]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-14]	@ movhi
.L32:
	ldrsh	r3, [fp, #-14]
	cmp	r3, #127
	ble	.L35
	mov	r3, #0
	strh	r3, [fp, #-12]	@ movhi
	b	.L36
.L39:
	ldrsh	r3, [fp, #-12]
	ldr	r2, .L45+20
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	ldr	r2, .L45+12
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L37
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #16]	@ zero_extendqisi2
	cmp	r3, #1
	bne	.L38
	ldrsh	r3, [fp, #-12]
	ldr	r2, .L45+20
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r3, [r3]
	mov	r0, r3
	bl	set_looping_sound
	b	.L37
.L38:
	ldr	r3, .L45+24
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #17]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	ldr	r3, .L45+24
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #17]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L45+24
	ldr	r1, [r3]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #17]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r1, r3
	orr	r2, r2, #4096
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #17]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L45+28
	mvn	r1, #0
	strb	r1, [r3, r2]
	ldr	r3, [fp, #-8]
	mvn	r2, #0
	strb	r2, [r3, #17]
.L37:
	ldrsh	r3, [fp, #-12]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-12]	@ movhi
.L36:
	ldr	r3, .L45+4
	ldrsh	r3, [r3]
	ldrsh	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L39
	mov	r3, #0
	strh	r3, [fp, #-10]	@ movhi
	nop
	ldr	r3, .L45+8
	ldrsh	r3, [r3]
	ldrsh	r2, [fp, #-10]
	cmp	r2, r3
	bge	.L44
	ldrsh	r3, [fp, #-10]
	ldr	r2, .L45+16
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #1
	ldr	r2, .L45+12
	add	r3, r3, r2
	str	r3, [fp, #-8]
.L41:
	ldr	r3, .L45
	ldrb	r3, [r3]	@ zero_extendqisi2
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, .L45
	strb	r2, [r3]
	b	.L41
.L44:
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L46:
	.align	2
.L45:
	.word	icsr_index
	.word	loopingIndex
	.word	volatileIndex
	.word	pcmCtrlData
	.word	volatilePCMs
	.word	loopingPCMs
	.word	csr
	.word	ICSR_Busy
	.size	pcm_control_loop, .-pcm_control_loop
	.align	2
	.global	_start
	.syntax unified
	.arm
	.fpu softvfp
	.type	_start, %function
_start:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	bl	driver_data_init
.L50:
	ldr	r3, .L53
	ldr	r3, [r3]
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	cmp	r3, #0
	bne	.L52
	b	.L50
.L52:
	nop
	ldr	r3, .L53
	ldr	r3, [r3]
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	bl	pcm_control_loop
	b	.L50
.L54:
	.align	2
.L53:
	.word	sh2Com
	.size	_start, .-_start
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
