	.file	"262027.c"
	.intel_syntax noprefix
	.text
	.type	error, @function
error:
.LFB6:
	.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 -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	DWORD PTR 156[rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 152[rax]
	test	eax, eax
	jne	.L2
	cmp	DWORD PTR -12[rbp], 1
	je	.L2
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	DWORD PTR 156[rax], edx
.L2:
	mov	eax, 0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	error, .-error
	.type	make_block_array, @function
make_block_array:
.LFB7:
	.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 -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	DWORD PTR -48[rbp], edx
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	DWORD PTR -20[rbp], 0
	jmp	.L5
.L6:
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -8[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR [rdx], rax
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	add	QWORD PTR -16[rbp], rax
	add	DWORD PTR -20[rbp], 1
.L5:
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L6
	mov	rax, QWORD PTR -8[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	make_block_array, .-make_block_array
	.type	setup_malloc, @function
setup_malloc:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	eax, DWORD PTR -28[rbp]
	add	eax, 7
	and	eax, -8
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	eax, DWORD PTR -28[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 8[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 128[rax]
	test	rax, rax
	je	.L9
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 128[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 144[rax]
	cdqe
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 144[rax]
	mov	eax, DWORD PTR -28[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 148[rax]
	cmp	edx, eax
	jle	.L10
	mov	eax, 0
	jmp	.L11
.L10:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 144[rax]
	mov	eax, DWORD PTR -28[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 144[rax], edx
	mov	rax, QWORD PTR -8[rbp]
	jmp	.L11
.L9:
	cmp	DWORD PTR -28[rbp], 0
	je	.L12
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	mov	rdi, rax
	call	malloc@PLT
	jmp	.L11
.L12:
	mov	eax, 0
.L11:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	setup_malloc, .-setup_malloc
	.type	setup_free, @function
setup_free:
.LFB9:
	.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	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 128[rax]
	test	rax, rax
	jne	.L17
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	free@PLT
	jmp	.L14
.L17:
	nop
.L14:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	setup_free, .-setup_free
	.type	setup_temp_malloc, @function
setup_temp_malloc:
.LFB10:
	.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	QWORD PTR -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	mov	eax, DWORD PTR -12[rbp]
	add	eax, 7
	and	eax, -8
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 128[rax]
	test	rax, rax
	je	.L19
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 148[rax]
	sub	eax, DWORD PTR -12[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 144[rax]
	cmp	edx, eax
	jge	.L20
	mov	eax, 0
	jmp	.L21
.L20:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 148[rax]
	sub	eax, DWORD PTR -12[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 148[rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 128[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 148[rax]
	cdqe
	add	rax, rdx
	jmp	.L21
.L19:
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	mov	rdi, rax
	call	malloc@PLT
.L21:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	setup_temp_malloc, .-setup_temp_malloc
	.type	setup_temp_free, @function
setup_temp_free:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	DWORD PTR -20[rbp], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 128[rax]
	test	rax, rax
	je	.L23
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR 148[rax]
	mov	eax, DWORD PTR -20[rbp]
	add	eax, 7
	and	eax, -8
	add	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 148[rax], edx
	jmp	.L22
.L23:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	free@PLT
.L22:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	setup_temp_free, .-setup_temp_free
	.local	crc_table
	.comm	crc_table,1024,32
	.type	crc32_init, @function
crc32_init:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -12[rbp], 0
	jmp	.L26
.L31:
	mov	eax, DWORD PTR -12[rbp]
	sal	eax, 24
	mov	DWORD PTR -4[rbp], eax
	mov	DWORD PTR -8[rbp], 0
	jmp	.L27
.L30:
	mov	eax, DWORD PTR -4[rbp]
	lea	edx, [rax+rax]
	mov	eax, DWORD PTR -4[rbp]
	test	eax, eax
	jns	.L28
	mov	eax, 79764919
	jmp	.L29
.L28:
	mov	eax, 0
.L29:
	xor	eax, edx
	mov	DWORD PTR -4[rbp], eax
	add	DWORD PTR -8[rbp], 1
.L27:
	cmp	DWORD PTR -8[rbp], 7
	jle	.L30
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rcx, 0[0+rax*4]
	lea	rdx, crc_table[rip]
	mov	eax, DWORD PTR -4[rbp]
	mov	DWORD PTR [rcx+rdx], eax
	add	DWORD PTR -12[rbp], 1
.L26:
	cmp	DWORD PTR -12[rbp], 255
	jle	.L31
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	crc32_init, .-crc32_init
	.type	crc32_update, @function
crc32_update:
.LFB13:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], edi
	mov	eax, esi
	mov	BYTE PTR -8[rbp], al
	mov	eax, DWORD PTR -4[rbp]
	sal	eax, 8
	mov	ecx, eax
	movzx	edx, BYTE PTR -8[rbp]
	mov	eax, DWORD PTR -4[rbp]
	shr	eax, 24
	xor	eax, edx
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, crc_table[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	eax, ecx
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	crc32_update, .-crc32_update
	.type	bit_reverse, @function
bit_reverse:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], edi
	mov	eax, DWORD PTR -4[rbp]
	shr	eax
	and	eax, 1431655765
	mov	edx, eax
	mov	eax, DWORD PTR -4[rbp]
	add	eax, eax
	and	eax, -1431655766
	or	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	shr	eax, 2
	and	eax, 858993459
	mov	edx, eax
	mov	eax, DWORD PTR -4[rbp]
	sal	eax, 2
	and	eax, -858993460
	or	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	shr	eax, 4
	and	eax, 252645135
	mov	edx, eax
	mov	eax, DWORD PTR -4[rbp]
	sal	eax, 4
	and	eax, -252645136
	or	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	shr	eax, 8
	and	eax, 16711935
	mov	edx, eax
	mov	eax, DWORD PTR -4[rbp]
	sal	eax, 8
	and	eax, -16711936
	or	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	rol	eax, 16
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	bit_reverse, .-bit_reverse
	.type	square, @function
square:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	movss	DWORD PTR -4[rbp], xmm0
	movss	xmm0, DWORD PTR -4[rbp]
	mulss	xmm0, xmm0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	square, .-square
	.type	ilog, @function
ilog:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], edi
	cmp	DWORD PTR -4[rbp], 0
	jns	.L39
	mov	eax, 0
	jmp	.L40
.L39:
	cmp	DWORD PTR -4[rbp], 16383
	jg	.L41
	cmp	DWORD PTR -4[rbp], 15
	jg	.L42
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, log2_4.21[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movsx	eax, al
	jmp	.L40
.L42:
	cmp	DWORD PTR -4[rbp], 511
	jg	.L43
	mov	eax, DWORD PTR -4[rbp]
	sar	eax, 5
	cdqe
	lea	rdx, log2_4.21[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movsx	eax, al
	add	eax, 5
	jmp	.L40
.L43:
	mov	eax, DWORD PTR -4[rbp]
	sar	eax, 10
	cdqe
	lea	rdx, log2_4.21[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movsx	eax, al
	add	eax, 10
	jmp	.L40
.L41:
	cmp	DWORD PTR -4[rbp], 16777215
	jg	.L44
	cmp	DWORD PTR -4[rbp], 524287
	jg	.L45
	mov	eax, DWORD PTR -4[rbp]
	sar	eax, 15
	cdqe
	lea	rdx, log2_4.21[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movsx	eax, al
	add	eax, 15
	jmp	.L40
.L45:
	mov	eax, DWORD PTR -4[rbp]
	sar	eax, 20
	cdqe
	lea	rdx, log2_4.21[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movsx	eax, al
	add	eax, 20
	jmp	.L40
.L44:
	cmp	DWORD PTR -4[rbp], 536870911
	jg	.L46
	mov	eax, DWORD PTR -4[rbp]
	sar	eax, 25
	cdqe
	lea	rdx, log2_4.21[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movsx	eax, al
	add	eax, 25
	jmp	.L40
.L46:
	mov	eax, DWORD PTR -4[rbp]
	sar	eax, 30
	cdqe
	lea	rdx, log2_4.21[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movsx	eax, al
	add	eax, 30
.L40:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	ilog, .-ilog
	.type	float32_unpack, @function
float32_unpack:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	DWORD PTR -36[rbp], edi
	mov	eax, DWORD PTR -36[rbp]
	and	eax, 2097151
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	and	eax, -2147483648
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	shr	eax, 21
	and	eax, 1023
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -16[rbp], 0
	je	.L48
	mov	eax, DWORD PTR -20[rbp]
	test	rax, rax
	js	.L49
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	jmp	.L50
.L49:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rdx
	addsd	xmm0, xmm0
.L50:
	movq	xmm1, QWORD PTR .LC0[rip]
	xorpd	xmm0, xmm1
	jmp	.L51
.L48:
	mov	eax, DWORD PTR -20[rbp]
	test	rax, rax
	js	.L52
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	jmp	.L51
.L52:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rdx
	addsd	xmm0, xmm0
.L51:
	movsd	QWORD PTR -8[rbp], xmm0
	mov	eax, DWORD PTR -12[rbp]
	sub	eax, 788
	mov	edx, eax
	pxor	xmm0, xmm0
	cvtsd2ss	xmm0, QWORD PTR -8[rbp]
	pxor	xmm2, xmm2
	cvtss2sd	xmm2, xmm0
	movq	rax, xmm2
	mov	edi, edx
	movq	xmm0, rax
	call	ldexp@PLT
	cvtsd2ss	xmm0, xmm0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	float32_unpack, .-float32_unpack
	.type	add_entry, @function
add_entry:
.LFB18:
	.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 -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	mov	DWORD PTR -16[rbp], edx
	mov	DWORD PTR -20[rbp], ecx
	mov	DWORD PTR -24[rbp], r8d
	mov	QWORD PTR -32[rbp], r9
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	jne	.L56
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	sal	rax, 2
	add	rdx, rax
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR [rdx], eax
	jmp	.L58
.L56:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 2
	add	rdx, rax
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	add	rax, rdx
	mov	edx, DWORD PTR -24[rbp]
	mov	BYTE PTR [rax], dl
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -32[rbp]
	add	rdx, rax
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR [rdx], eax
.L58:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	add_entry, .-add_entry
	.section	.rodata
.LC1:
	.string	"the_stack_data/262027.c"
.LC2:
	.string	"c->sorted_entries == 0"
.LC3:
	.string	"z >= 0 && z < 32"
.LC4:
	.string	"len[i] >= 0 && len[i] < 32"
.LC5:
	.string	"available[y] == 0"
	.text
	.type	compute_codewords, @function
compute_codewords:
.LFB19:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r12
	push	rbx
	sub	rsp, 208
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	QWORD PTR -200[rbp], rdi
	mov	QWORD PTR -208[rbp], rsi
	mov	DWORD PTR -212[rbp], edx
	mov	QWORD PTR -224[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -176[rbp], 0
	lea	rax, -160[rbp]
	mov	edx, 128
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	DWORD PTR -180[rbp], 0
	jmp	.L60
.L63:
	mov	eax, DWORD PTR -180[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -208[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, -1
	jne	.L86
	add	DWORD PTR -180[rbp], 1
.L60:
	mov	eax, DWORD PTR -180[rbp]
	cmp	eax, DWORD PTR -212[rbp]
	jl	.L63
	jmp	.L62
.L86:
	nop
.L62:
	mov	eax, DWORD PTR -180[rbp]
	cmp	eax, DWORD PTR -212[rbp]
	jne	.L64
	mov	rax, QWORD PTR -200[rbp]
	mov	eax, DWORD PTR 2112[rax]
	test	eax, eax
	je	.L65
	lea	rcx, __PRETTY_FUNCTION__.20[rip]
	mov	edx, 1079
	lea	rsi, .LC1[rip]
	lea	rdi, .LC2[rip]
	call	__assert_fail@PLT
.L65:
	mov	eax, 1
	jmp	.L83
.L64:
	mov	eax, DWORD PTR -180[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -208[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	ecx, al
	mov	eax, DWORD PTR -176[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -176[rbp], edx
	mov	rsi, QWORD PTR -224[rbp]
	mov	edx, DWORD PTR -180[rbp]
	mov	rdi, QWORD PTR -200[rbp]
	mov	r9, rsi
	mov	r8d, ecx
	mov	ecx, eax
	mov	esi, 0
	call	add_entry
	mov	DWORD PTR -184[rbp], 1
	jmp	.L67
.L68:
	mov	eax, 32
	sub	eax, DWORD PTR -184[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, DWORD PTR -184[rbp]
	cdqe
	mov	DWORD PTR -160[rbp+rax*4], edx
	add	DWORD PTR -184[rbp], 1
.L67:
	mov	eax, DWORD PTR -180[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -208[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cmp	DWORD PTR -184[rbp], eax
	jle	.L68
	mov	eax, DWORD PTR -180[rbp]
	add	eax, 1
	mov	DWORD PTR -184[rbp], eax
	jmp	.L69
.L82:
	mov	eax, DWORD PTR -184[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -208[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -172[rbp], eax
	cmp	DWORD PTR -172[rbp], 255
	je	.L87
	jmp	.L72
.L74:
	sub	DWORD PTR -172[rbp], 1
.L72:
	cmp	DWORD PTR -172[rbp], 0
	jle	.L73
	mov	eax, DWORD PTR -172[rbp]
	cdqe
	mov	eax, DWORD PTR -160[rbp+rax*4]
	test	eax, eax
	je	.L74
.L73:
	cmp	DWORD PTR -172[rbp], 0
	jne	.L75
	mov	eax, 0
	jmp	.L83
.L75:
	mov	eax, DWORD PTR -172[rbp]
	cdqe
	mov	eax, DWORD PTR -160[rbp+rax*4]
	mov	DWORD PTR -164[rbp], eax
	cmp	DWORD PTR -172[rbp], 0
	js	.L76
	cmp	DWORD PTR -172[rbp], 31
	jle	.L85
.L76:
	lea	rcx, __PRETTY_FUNCTION__.20[rip]
	mov	edx, 1102
	lea	rsi, .LC1[rip]
	lea	rdi, .LC3[rip]
	call	__assert_fail@PLT
.L85:
	mov	eax, DWORD PTR -172[rbp]
	cdqe
	mov	DWORD PTR -160[rbp+rax*4], 0
	mov	eax, DWORD PTR -184[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -208[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	r12d, al
	mov	ebx, DWORD PTR -176[rbp]
	lea	eax, 1[rbx]
	mov	DWORD PTR -176[rbp], eax
	mov	eax, DWORD PTR -164[rbp]
	mov	edi, eax
	call	bit_reverse
	mov	esi, eax
	mov	rcx, QWORD PTR -224[rbp]
	mov	edx, DWORD PTR -184[rbp]
	mov	rax, QWORD PTR -200[rbp]
	mov	r9, rcx
	mov	r8d, r12d
	mov	ecx, ebx
	mov	rdi, rax
	call	add_entry
	mov	eax, DWORD PTR -184[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -208[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cmp	DWORD PTR -172[rbp], eax
	je	.L71
	mov	eax, DWORD PTR -184[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -208[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 31
	jbe	.L78
	lea	rcx, __PRETTY_FUNCTION__.20[rip]
	mov	edx, 1107
	lea	rsi, .LC1[rip]
	lea	rdi, .LC4[rip]
	call	__assert_fail@PLT
.L78:
	mov	eax, DWORD PTR -184[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -208[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -168[rbp], eax
	jmp	.L79
.L81:
	mov	eax, DWORD PTR -168[rbp]
	cdqe
	mov	eax, DWORD PTR -160[rbp+rax*4]
	test	eax, eax
	je	.L80
	lea	rcx, __PRETTY_FUNCTION__.20[rip]
	mov	edx, 1109
	lea	rsi, .LC1[rip]
	lea	rdi, .LC5[rip]
	call	__assert_fail@PLT
.L80:
	mov	eax, 32
	sub	eax, DWORD PTR -168[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	mov	edx, eax
	mov	eax, DWORD PTR -164[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -168[rbp]
	cdqe
	mov	DWORD PTR -160[rbp+rax*4], edx
	sub	DWORD PTR -168[rbp], 1
.L79:
	mov	eax, DWORD PTR -168[rbp]
	cmp	eax, DWORD PTR -172[rbp]
	jg	.L81
	jmp	.L71
.L87:
	nop
.L71:
	add	DWORD PTR -184[rbp], 1
.L69:
	mov	eax, DWORD PTR -184[rbp]
	cmp	eax, DWORD PTR -212[rbp]
	jl	.L82
	mov	eax, 1
.L83:
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L84
	call	__stack_chk_fail@PLT
.L84:
	add	rsp, 208
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	compute_codewords, .-compute_codewords
	.type	compute_accelerated_huffman, @function
compute_accelerated_huffman:
.LFB20:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 24
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -12[rbp], 0
	jmp	.L89
.L90:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -12[rbp]
	movsx	rdx, edx
	add	rdx, 24
	mov	WORD PTR [rax+rdx*2], -1
	add	DWORD PTR -12[rbp], 1
.L89:
	cmp	DWORD PTR -12[rbp], 1023
	jle	.L90
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L91
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 2112[rax]
	jmp	.L92
.L91:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
.L92:
	mov	DWORD PTR -8[rbp], eax
	cmp	DWORD PTR -8[rbp], 32767
	jle	.L93
	mov	DWORD PTR -8[rbp], 32767
.L93:
	mov	DWORD PTR -12[rbp], 0
	jmp	.L94
.L100:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 10
	ja	.L95
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L96
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 2096[rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	bit_reverse
	jmp	.L97
.L96:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
.L97:
	mov	DWORD PTR -4[rbp], eax
	jmp	.L98
.L99:
	mov	eax, DWORD PTR -12[rbp]
	mov	ecx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -4[rbp]
	add	rdx, 24
	mov	WORD PTR [rax+rdx*2], cx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	add	DWORD PTR -4[rbp], eax
.L98:
	cmp	DWORD PTR -4[rbp], 1023
	jbe	.L99
.L95:
	add	DWORD PTR -12[rbp], 1
.L94:
	mov	eax, DWORD PTR -12[rbp]
	cmp	eax, DWORD PTR -8[rbp]
	jl	.L100
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	compute_accelerated_huffman, .-compute_accelerated_huffman
	.type	uint32_compare, @function
uint32_compare:
.LFB21:
	.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	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -4[rbp]
	jb	.L102
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -4[rbp]
	seta	al
	movzx	eax, al
	jmp	.L104
.L102:
	mov	eax, -1
.L104:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	uint32_compare, .-uint32_compare
	.section	.rodata
.LC6:
	.string	"len != NO_CODE"
	.text
	.type	include_in_sort, @function
include_in_sort:
.LFB22:
	.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	QWORD PTR -8[rbp], rdi
	mov	eax, esi
	mov	BYTE PTR -12[rbp], al
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L106
	cmp	BYTE PTR -12[rbp], -1
	jne	.L107
	lea	rcx, __PRETTY_FUNCTION__.19[rip]
	mov	edx, 1156
	lea	rsi, .LC1[rip]
	lea	rdi, .LC6[rip]
	call	__assert_fail@PLT
.L107:
	mov	eax, 1
	jmp	.L108
.L106:
	cmp	BYTE PTR -12[rbp], -1
	jne	.L109
	mov	eax, 0
	jmp	.L108
.L109:
	cmp	BYTE PTR -12[rbp], 10
	jbe	.L110
	mov	eax, 1
	jmp	.L108
.L110:
	mov	eax, 0
.L108:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE22:
	.size	include_in_sort, .-include_in_sort
	.section	.rodata
.LC7:
	.string	"k == c->sorted_entries"
	.align 8
.LC8:
	.string	"c->sorted_codewords[x] == code"
	.text
	.type	compute_sorted_huffman, @function
compute_sorted_huffman:
.LFB23:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 72
	.cfi_offset 3, -24
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	QWORD PTR -72[rbp], rdx
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	jne	.L112
	mov	DWORD PTR -44[rbp], 0
	mov	DWORD PTR -48[rbp], 0
	jmp	.L113
.L115:
	mov	eax, DWORD PTR -48[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	include_in_sort
	test	eax, eax
	je	.L114
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, QWORD PTR 2096[rax]
	mov	eax, DWORD PTR -44[rbp]
	lea	ecx, 1[rax]
	mov	DWORD PTR -44[rbp], ecx
	cdqe
	sal	rax, 2
	lea	rbx, [rsi+rax]
	mov	edi, edx
	call	bit_reverse
	mov	DWORD PTR [rbx], eax
.L114:
	add	DWORD PTR -48[rbp], 1
.L113:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -48[rbp], eax
	jl	.L115
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 2112[rax]
	cmp	DWORD PTR -44[rbp], eax
	je	.L116
	lea	rcx, __PRETTY_FUNCTION__.18[rip]
	mov	edx, 1176
	lea	rsi, .LC1[rip]
	lea	rdi, .LC7[rip]
	call	__assert_fail@PLT
.L112:
	mov	DWORD PTR -48[rbp], 0
	jmp	.L117
.L118:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -56[rbp]
	mov	rcx, QWORD PTR 2096[rdx]
	mov	edx, DWORD PTR -48[rbp]
	movsx	rdx, edx
	sal	rdx, 2
	lea	rbx, [rcx+rdx]
	mov	edi, eax
	call	bit_reverse
	mov	DWORD PTR [rbx], eax
	add	DWORD PTR -48[rbp], 1
.L117:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 2112[rax]
	cmp	DWORD PTR -48[rbp], eax
	jl	.L118
.L116:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 2112[rax]
	movsx	rsi, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 2096[rax]
	lea	rcx, uint32_compare[rip]
	mov	edx, 4
	mov	rdi, rax
	call	qsort@PLT
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 2096[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 2112[rax]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	DWORD PTR [rax], -1
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L119
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 2112[rax]
	jmp	.L120
.L119:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 4[rax]
.L120:
	mov	DWORD PTR -32[rbp], eax
	mov	DWORD PTR -48[rbp], 0
	jmp	.L121
.L130:
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L122
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	jmp	.L123
.L122:
	mov	eax, DWORD PTR -48[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
.L123:
	mov	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	movzx	edx, al
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	include_in_sort
	test	eax, eax
	je	.L124
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	call	bit_reverse
	mov	DWORD PTR -24[rbp], eax
	mov	DWORD PTR -40[rbp], 0
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 2112[rax]
	mov	DWORD PTR -36[rbp], eax
	jmp	.L125
.L127:
	mov	eax, DWORD PTR -36[rbp]
	sar	eax
	mov	edx, eax
	mov	eax, DWORD PTR -40[rbp]
	add	eax, edx
	mov	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 2096[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	jb	.L126
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR -40[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	sar	eax
	sub	DWORD PTR -36[rbp], eax
	jmp	.L125
.L126:
	sar	DWORD PTR -36[rbp]
.L125:
	cmp	DWORD PTR -36[rbp], 1
	jg	.L127
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 2096[rax]
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -24[rbp], eax
	je	.L128
	lea	rcx, __PRETTY_FUNCTION__.18[rip]
	mov	edx, 1206
	lea	rsi, .LC1[rip]
	lea	rdi, .LC8[rip]
	call	__assert_fail@PLT
.L128:
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L129
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rcx, QWORD PTR 2104[rax]
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	sal	rax, 2
	add	rax, rcx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	add	rax, rdx
	mov	edx, DWORD PTR -28[rbp]
	mov	BYTE PTR [rax], dl
	jmp	.L124
.L129:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 2104[rax]
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	sal	rax, 2
	add	rdx, rax
	mov	eax, DWORD PTR -48[rbp]
	mov	DWORD PTR [rdx], eax
.L124:
	add	DWORD PTR -48[rbp], 1
.L121:
	mov	eax, DWORD PTR -48[rbp]
	cmp	eax, DWORD PTR -32[rbp]
	jl	.L130
	nop
	nop
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE23:
	.size	compute_sorted_huffman, .-compute_sorted_huffman
	.type	vorbis_validate, @function
vorbis_validate:
.LFB24:
	.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	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, 6
	lea	rsi, vorbis.17[rip]
	mov	rdi, rax
	call	memcmp@PLT
	test	eax, eax
	sete	al
	movzx	eax, al
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE24:
	.size	vorbis_validate, .-vorbis_validate
	.type	lookup1_values, @function
lookup1_values:
.LFB25:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, DWORD PTR -20[rbp]
	pxor	xmm4, xmm4
	cvtss2sd	xmm4, xmm0
	movq	rax, xmm4
	movq	xmm0, rax
	call	log@PLT
	cvtsd2ss	xmm0, xmm0
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, DWORD PTR -24[rbp]
	divss	xmm0, xmm1
	pxor	xmm5, xmm5
	cvtss2sd	xmm5, xmm0
	movq	rax, xmm5
	movq	xmm0, rax
	call	exp@PLT
	movq	rax, xmm0
	movsd	xmm2, QWORD PTR .LC9[rip]
	movq	xmm0, rax
	movq	xmm1, QWORD PTR .LC10[rip]
	movapd	xmm3, xmm0
	andpd	xmm3, xmm1
	ucomisd	xmm2, xmm3
	jbe	.L134
	cvttsd2si	rdx, xmm0
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rdx
	movq	xmm6, rax
	andnpd	xmm1, xmm6
	orpd	xmm0, xmm1
.L134:
	cvttsd2si	eax, xmm0
	mov	DWORD PTR -4[rbp], eax
	pxor	xmm2, xmm2
	cvtsi2sd	xmm2, DWORD PTR -24[rbp]
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, DWORD PTR -4[rbp]
	movss	xmm0, DWORD PTR .LC11[rip]
	addss	xmm0, xmm1
	pxor	xmm7, xmm7
	cvtss2sd	xmm7, xmm0
	movq	rax, xmm7
	movapd	xmm1, xmm2
	movq	xmm0, rax
	call	pow@PLT
	movq	rax, xmm0
	movq	xmm0, rax
	call	floor@PLT
	cvttsd2si	eax, xmm0
	cmp	DWORD PTR -20[rbp], eax
	jl	.L135
	add	DWORD PTR -4[rbp], 1
.L135:
	pxor	xmm2, xmm2
	cvtsi2sd	xmm2, DWORD PTR -24[rbp]
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, DWORD PTR -4[rbp]
	movss	xmm0, DWORD PTR .LC11[rip]
	addss	xmm0, xmm1
	pxor	xmm4, xmm4
	cvtss2sd	xmm4, xmm0
	movq	rax, xmm4
	movapd	xmm1, xmm2
	movq	xmm0, rax
	call	pow@PLT
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, DWORD PTR -20[rbp]
	comisd	xmm1, xmm0
	jb	.L141
	mov	eax, -1
	jmp	.L138
.L141:
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, DWORD PTR -24[rbp]
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, DWORD PTR -4[rbp]
	pxor	xmm5, xmm5
	cvtss2sd	xmm5, xmm1
	movq	rax, xmm5
	movapd	xmm1, xmm0
	movq	xmm0, rax
	call	pow@PLT
	movq	rax, xmm0
	movq	xmm0, rax
	call	floor@PLT
	cvttsd2si	eax, xmm0
	cmp	DWORD PTR -20[rbp], eax
	jge	.L139
	mov	eax, -1
	jmp	.L138
.L139:
	mov	eax, DWORD PTR -4[rbp]
.L138:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE25:
	.size	lookup1_values, .-lookup1_values
	.type	compute_twiddle_factors, @function
compute_twiddle_factors:
.LFB26:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	DWORD PTR -20[rbp], edi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	mov	eax, DWORD PTR -20[rbp]
	sar	eax, 2
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	sar	eax, 3
	mov	DWORD PTR -4[rbp], eax
	mov	DWORD PTR -12[rbp], 0
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR -16[rbp], eax
	jmp	.L143
.L144:
	mov	eax, DWORD PTR -16[rbp]
	sal	eax, 2
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	movsd	xmm0, QWORD PTR .LC12[rip]
	mulsd	xmm0, xmm1
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, DWORD PTR -20[rbp]
	divsd	xmm0, xmm1
	movq	rax, xmm0
	movq	xmm0, rax
	call	cos@PLT
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	mov	eax, DWORD PTR -16[rbp]
	sal	eax, 2
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	movsd	xmm0, QWORD PTR .LC12[rip]
	mulsd	xmm0, xmm1
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, DWORD PTR -20[rbp]
	divsd	xmm0, xmm1
	movq	rax, xmm0
	movq	xmm0, rax
	call	sin@PLT
	cvtsd2ss	xmm0, xmm0
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movss	xmm1, DWORD PTR .LC13[rip]
	xorps	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	eax, DWORD PTR -12[rbp]
	add	eax, 1
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	movsd	xmm0, QWORD PTR .LC12[rip]
	mulsd	xmm0, xmm1
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, DWORD PTR -20[rbp]
	divsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR .LC14[rip]
	divsd	xmm0, xmm1
	movq	rax, xmm0
	movq	xmm0, rax
	call	cos@PLT
	pxor	xmm1, xmm1
	cvtsd2ss	xmm1, xmm0
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR .LC15[rip]
	mulss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	eax, DWORD PTR -12[rbp]
	add	eax, 1
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	movsd	xmm0, QWORD PTR .LC12[rip]
	mulsd	xmm0, xmm1
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, DWORD PTR -20[rbp]
	divsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR .LC14[rip]
	divsd	xmm0, xmm1
	movq	rax, xmm0
	movq	xmm0, rax
	call	sin@PLT
	pxor	xmm1, xmm1
	cvtsd2ss	xmm1, xmm0
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR .LC15[rip]
	mulss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -16[rbp], 1
	add	DWORD PTR -12[rbp], 2
.L143:
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, DWORD PTR -8[rbp]
	jl	.L144
	mov	DWORD PTR -12[rbp], 0
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR -16[rbp], eax
	jmp	.L145
.L146:
	mov	eax, DWORD PTR -12[rbp]
	add	eax, 1
	add	eax, eax
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	movsd	xmm0, QWORD PTR .LC12[rip]
	mulsd	xmm0, xmm1
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, DWORD PTR -20[rbp]
	divsd	xmm0, xmm1
	movq	rax, xmm0
	movq	xmm0, rax
	call	cos@PLT
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	mov	eax, DWORD PTR -12[rbp]
	add	eax, 1
	add	eax, eax
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	movsd	xmm0, QWORD PTR .LC12[rip]
	mulsd	xmm0, xmm1
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, DWORD PTR -20[rbp]
	divsd	xmm0, xmm1
	movq	rax, xmm0
	movq	xmm0, rax
	call	sin@PLT
	cvtsd2ss	xmm0, xmm0
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	movss	xmm1, DWORD PTR .LC13[rip]
	xorps	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -16[rbp], 1
	add	DWORD PTR -12[rbp], 2
.L145:
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, DWORD PTR -4[rbp]
	jl	.L146
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE26:
	.size	compute_twiddle_factors, .-compute_twiddle_factors
	.type	compute_window, @function
compute_window:
.LFB27:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	QWORD PTR -32[rbp], rsi
	mov	eax, DWORD PTR -20[rbp]
	sar	eax
	mov	DWORD PTR -4[rbp], eax
	mov	DWORD PTR -8[rbp], 0
	jmp	.L148
.L149:
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, DWORD PTR -8[rbp]
	movsd	xmm0, QWORD PTR .LC16[rip]
	addsd	xmm0, xmm1
	pxor	xmm2, xmm2
	cvtsi2sd	xmm2, DWORD PTR -4[rbp]
	movapd	xmm1, xmm0
	divsd	xmm1, xmm2
	movsd	xmm0, QWORD PTR .LC16[rip]
	mulsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC12[rip]
	mulsd	xmm1, xmm0
	movq	rax, xmm1
	movq	xmm0, rax
	call	sin@PLT
	pxor	xmm3, xmm3
	cvtsd2ss	xmm3, xmm0
	movd	eax, xmm3
	movd	xmm0, eax
	call	square
	pxor	xmm1, xmm1
	cvtss2sd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC17[rip]
	mulsd	xmm1, xmm0
	movq	rax, xmm1
	movq	xmm0, rax
	call	sin@PLT
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	cvtsd2ss	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -8[rbp], 1
.L148:
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -4[rbp]
	jl	.L149
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE27:
	.size	compute_window, .-compute_window
	.type	compute_bitreverse, @function
compute_bitreverse:
.LFB28:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	QWORD PTR -32[rbp], rsi
	mov	eax, DWORD PTR -20[rbp]
	mov	edi, eax
	call	ilog
	sub	eax, 1
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	sar	eax, 3
	mov	DWORD PTR -4[rbp], eax
	mov	DWORD PTR -12[rbp], 0
	jmp	.L151
.L152:
	mov	eax, DWORD PTR -12[rbp]
	mov	edi, eax
	call	bit_reverse
	mov	edx, eax
	mov	eax, 35
	sub	eax, DWORD PTR -8[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	eax, edx
	mov	edx, eax
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rcx, [rax+rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rcx
	sal	edx, 2
	mov	WORD PTR [rax], dx
	add	DWORD PTR -12[rbp], 1
.L151:
	mov	eax, DWORD PTR -12[rbp]
	cmp	eax, DWORD PTR -4[rbp]
	jl	.L152
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE28:
	.size	compute_bitreverse, .-compute_bitreverse
	.type	init_blocksize, @function
init_blocksize:
.LFB29:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	DWORD PTR -32[rbp], edx
	mov	eax, DWORD PTR -32[rbp]
	sar	eax
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -32[rbp]
	sar	eax, 2
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -32[rbp]
	sar	eax, 3
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	eax, 2
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_malloc
	mov	rdx, QWORD PTR -24[rbp]
	mov	ecx, DWORD PTR -28[rbp]
	movsx	rcx, ecx
	add	rcx, 176
	mov	QWORD PTR 8[rdx+rcx*8], rax
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	eax, 2
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_malloc
	mov	rdx, QWORD PTR -24[rbp]
	mov	ecx, DWORD PTR -28[rbp]
	movsx	rcx, ecx
	add	rcx, 178
	mov	QWORD PTR 8[rdx+rcx*8], rax
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	sal	eax, 2
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_malloc
	mov	rdx, QWORD PTR -24[rbp]
	mov	ecx, DWORD PTR -28[rbp]
	movsx	rcx, ecx
	add	rcx, 180
	mov	QWORD PTR 8[rdx+rcx*8], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	add	rdx, 176
	mov	rax, QWORD PTR 8[rax+rdx*8]
	test	rax, rax
	je	.L154
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	add	rdx, 178
	mov	rax, QWORD PTR 8[rax+rdx*8]
	test	rax, rax
	je	.L154
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	add	rdx, 180
	mov	rax, QWORD PTR 8[rax+rdx*8]
	test	rax, rax
	jne	.L155
.L154:
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L156
.L155:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	add	rdx, 180
	mov	rcx, QWORD PTR 8[rax+rdx*8]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	add	rdx, 178
	mov	rdx, QWORD PTR 8[rax+rdx*8]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, DWORD PTR -28[rbp]
	movsx	rsi, esi
	add	rsi, 176
	mov	rsi, QWORD PTR 8[rax+rsi*8]
	mov	eax, DWORD PTR -32[rbp]
	mov	edi, eax
	call	compute_twiddle_factors
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	sal	eax, 2
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_malloc
	mov	rdx, QWORD PTR -24[rbp]
	mov	ecx, DWORD PTR -28[rbp]
	movsx	rcx, ecx
	add	rcx, 182
	mov	QWORD PTR 8[rdx+rcx*8], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	add	rdx, 182
	mov	rax, QWORD PTR 8[rax+rdx*8]
	test	rax, rax
	jne	.L157
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L156
.L157:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	add	rdx, 182
	mov	rdx, QWORD PTR 8[rax+rdx*8]
	mov	eax, DWORD PTR -32[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	compute_window
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	add	eax, eax
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_malloc
	mov	rdx, QWORD PTR -24[rbp]
	mov	ecx, DWORD PTR -28[rbp]
	movsx	rcx, ecx
	add	rcx, 184
	mov	QWORD PTR 8[rdx+rcx*8], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	add	rdx, 184
	mov	rax, QWORD PTR 8[rax+rdx*8]
	test	rax, rax
	jne	.L158
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L156
.L158:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	add	rdx, 184
	mov	rdx, QWORD PTR 8[rax+rdx*8]
	mov	eax, DWORD PTR -32[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	compute_bitreverse
	mov	eax, 1
.L156:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE29:
	.size	init_blocksize, .-init_blocksize
	.type	neighbors, @function
neighbors:
.LFB30:
	.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	DWORD PTR -28[rbp], esi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	mov	DWORD PTR -12[rbp], -1
	mov	DWORD PTR -8[rbp], 65536
	mov	DWORD PTR -4[rbp], 0
	jmp	.L160
.L163:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	cmp	DWORD PTR -12[rbp], eax
	jge	.L161
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	edx, WORD PTR [rax]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	lea	rcx, [rax+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rcx
	movzx	eax, WORD PTR [rax]
	cmp	dx, ax
	jnb	.L161
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -4[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	mov	DWORD PTR -12[rbp], eax
.L161:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	cmp	DWORD PTR -8[rbp], eax
	jle	.L162
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	edx, WORD PTR [rax]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	lea	rcx, [rax+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rcx
	movzx	eax, WORD PTR [rax]
	cmp	dx, ax
	jbe	.L162
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR -4[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	mov	DWORD PTR -8[rbp], eax
.L162:
	add	DWORD PTR -4[rbp], 1
.L160:
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	jl	.L163
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE30:
	.size	neighbors, .-neighbors
	.type	point_compare, @function
point_compare:
.LFB31:
	.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	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	movzx	edx, WORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR [rax]
	cmp	dx, ax
	jb	.L165
	mov	rax, QWORD PTR -16[rbp]
	movzx	edx, WORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, WORD PTR [rax]
	cmp	dx, ax
	seta	al
	movzx	eax, al
	jmp	.L167
.L165:
	mov	eax, -1
.L167:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE31:
	.size	point_compare, .-point_compare
	.type	get8, @function
get8:
.LFB32:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	test	rax, rax
	je	.L169
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 80[rax]
	cmp	rdx, rax
	jb	.L170
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 152[rax], 1
	mov	eax, 0
	jmp	.L171
.L170:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	lea	rcx, 1[rax]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 64[rdx], rcx
	movzx	eax, BYTE PTR [rax]
	jmp	.L171
.L169:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 48[rax]
	mov	rdi, rax
	call	fgetc@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], -1
	jne	.L172
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 152[rax], 1
	mov	eax, 0
	jmp	.L171
.L172:
	mov	eax, DWORD PTR -4[rbp]
.L171:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE32:
	.size	get8, .-get8
	.type	get32, @function
get32:
.LFB33:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	movzx	eax, al
	sal	eax, 8
	add	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	movzx	eax, al
	sal	eax, 16
	add	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	movzx	eax, al
	sal	eax, 24
	add	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE33:
	.size	get32, .-get32
	.type	getn, @function
getn:
.LFB34:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	DWORD PTR -20[rbp], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 64[rax]
	test	rax, rax
	je	.L176
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	add	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 80[rax]
	cmp	rdx, rax
	jbe	.L177
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 152[rax], 1
	mov	eax, 0
	jmp	.L178
.L177:
	mov	eax, DWORD PTR -20[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, QWORD PTR 64[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	memcpy@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	add	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 64[rax], rdx
	mov	eax, 1
	jmp	.L178
.L176:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -20[rbp]
	movsx	rsi, eax
	mov	rax, QWORD PTR -16[rbp]
	mov	rcx, rdx
	mov	edx, 1
	mov	rdi, rax
	call	fread@PLT
	cmp	rax, 1
	jne	.L179
	mov	eax, 1
	jmp	.L178
.L179:
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 152[rax], 1
	mov	eax, 0
.L178:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE34:
	.size	getn, .-getn
	.type	skip, @function
skip:
.LFB35:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 64[rax]
	test	rax, rax
	je	.L181
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	add	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 64[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 80[rax]
	cmp	rdx, rax
	jb	.L184
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 152[rax], 1
	jmp	.L184
.L181:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 48[rax]
	mov	rdi, rax
	call	ftell@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -8[rbp]
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 48[rax]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	fseek@PLT
	jmp	.L180
.L184:
	nop
.L180:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE35:
	.size	skip, .-skip
	.type	set_file_offset, @function
set_file_offset:
.LFB36:
	.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	QWORD PTR -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 92[rax]
	test	al, al
	je	.L186
	mov	eax, 0
	jmp	.L187
.L186:
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 152[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 64[rax]
	test	rax, rax
	je	.L188
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 72[rax]
	mov	eax, DWORD PTR -12[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 80[rax]
	cmp	rdx, rax
	jb	.L189
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 80[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 64[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 152[rax], 1
	mov	eax, 0
	jmp	.L187
.L189:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 72[rax]
	mov	eax, DWORD PTR -12[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 64[rax], rdx
	mov	eax, 1
	jmp	.L187
.L188:
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR 56[rax]
	mov	eax, DWORD PTR -12[rbp]
	add	eax, edx
	cmp	DWORD PTR -12[rbp], eax
	ja	.L190
	mov	eax, DWORD PTR -12[rbp]
	test	eax, eax
	jns	.L191
.L190:
	mov	DWORD PTR -12[rbp], 2147483647
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 152[rax], 1
	jmp	.L192
.L191:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 56[rax]
	add	DWORD PTR -12[rbp], eax
.L192:
	mov	ecx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 48[rax]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	fseek@PLT
	test	eax, eax
	jne	.L193
	mov	eax, 1
	jmp	.L187
.L193:
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 152[rax], 1
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 56[rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 48[rax]
	mov	edx, 2
	mov	rsi, rcx
	mov	rdi, rax
	call	fseek@PLT
	mov	eax, 0
.L187:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE36:
	.size	set_file_offset, .-set_file_offset
	.data
	.type	ogg_page_header, @object
	.size	ogg_page_header, 4
ogg_page_header:
	.ascii	"OggS"
	.text
	.type	capture_pattern, @function
capture_pattern:
.LFB37:
	.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	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	get8
	cmp	al, 79
	je	.L195
	mov	eax, 0
	jmp	.L196
.L195:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	get8
	cmp	al, 103
	je	.L197
	mov	eax, 0
	jmp	.L196
.L197:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	get8
	cmp	al, 103
	je	.L198
	mov	eax, 0
	jmp	.L196
.L198:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	get8
	cmp	al, 83
	je	.L199
	mov	eax, 0
	jmp	.L196
.L199:
	mov	eax, 1
.L196:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE37:
	.size	capture_pattern, .-capture_pattern
	.type	start_page_no_capturepattern, @function
start_page_no_capturepattern:
.LFB38:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 1765[rax]
	test	al, al
	je	.L201
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 92[rax]
	test	al, al
	jne	.L201
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	stb_vorbis_get_file_offset
	lea	edx, -4[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 100[rax], edx
.L201:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	get8
	test	al, al
	je	.L202
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 31
	mov	rdi, rax
	call	error
	jmp	.L203
.L202:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	get8
	mov	rdx, QWORD PTR -40[rbp]
	mov	BYTE PTR 1763[rdx], al
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	get32
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	get32
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	get32
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	get32
	mov	DWORD PTR -4[rbp], eax
	mov	edx, DWORD PTR -4[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1500[rax], edx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	get32
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	get8
	movzx	edx, al
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1504[rax], edx
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 1504[rax]
	mov	rax, QWORD PTR -40[rbp]
	lea	rcx, 1508[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	getn
	test	eax, eax
	jne	.L204
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 10
	mov	rdi, rax
	call	error
	jmp	.L203
.L204:
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1792[rax], -2
	cmp	DWORD PTR -12[rbp], -1
	jne	.L205
	cmp	DWORD PTR -8[rbp], -1
	je	.L206
.L205:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 1504[rax]
	sub	eax, 1
	mov	DWORD PTR -24[rbp], eax
	jmp	.L207
.L210:
	mov	rdx, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	movzx	eax, BYTE PTR 1508[rdx+rax]
	cmp	al, -1
	jne	.L214
	sub	DWORD PTR -24[rbp], 1
.L207:
	cmp	DWORD PTR -24[rbp], 0
	jns	.L210
	jmp	.L209
.L214:
	nop
.L209:
	cmp	DWORD PTR -24[rbp], 0
	js	.L206
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -24[rbp]
	mov	DWORD PTR 1792[rax], edx
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	DWORD PTR 1796[rax], edx
.L206:
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 1765[rax]
	test	al, al
	je	.L211
	mov	DWORD PTR -16[rbp], 0
	mov	DWORD PTR -20[rbp], 0
	jmp	.L212
.L213:
	mov	rdx, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	movzx	eax, BYTE PTR 1508[rdx+rax]
	movzx	eax, al
	add	DWORD PTR -16[rbp], eax
	add	DWORD PTR -20[rbp], 1
.L212:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 1504[rax]
	cmp	DWORD PTR -20[rbp], eax
	jl	.L213
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 1504[rax]
	add	eax, 27
	add	DWORD PTR -16[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 100[rax]
	mov	eax, DWORD PTR -16[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 104[rax], edx
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	DWORD PTR 108[rax], edx
.L211:
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1768[rax], 0
	mov	eax, 1
.L203:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE38:
	.size	start_page_no_capturepattern, .-start_page_no_capturepattern
	.type	start_page, @function
start_page:
.LFB39:
	.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	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	capture_pattern
	test	eax, eax
	jne	.L216
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 30
	mov	rdi, rax
	call	error
	jmp	.L217
.L216:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	start_page_no_capturepattern
.L217:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE39:
	.size	start_page, .-start_page
	.type	start_packet, @function
start_packet:
.LFB40:
	.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	QWORD PTR -8[rbp], rdi
	jmp	.L219
.L222:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	start_page
	test	eax, eax
	jne	.L220
	mov	eax, 0
	jmp	.L221
.L220:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 1763[rax]
	movzx	eax, al
	and	eax, 1
	test	eax, eax
	je	.L219
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 32
	mov	rdi, rax
	call	error
	jmp	.L221
.L219:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 1768[rax]
	cmp	eax, -1
	je	.L222
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 1772[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 1784[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 1788[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 1764[rax], 0
	mov	eax, 1
.L221:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE40:
	.size	start_packet, .-start_packet
	.type	maybe_start_packet, @function
maybe_start_packet:
.LFB41:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1768[rax]
	cmp	eax, -1
	jne	.L224
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 152[rax]
	test	eax, eax
	je	.L225
	mov	eax, 0
	jmp	.L226
.L225:
	cmp	DWORD PTR -4[rbp], 79
	je	.L227
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 30
	mov	rdi, rax
	call	error
	jmp	.L226
.L227:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	cmp	al, 103
	je	.L228
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 30
	mov	rdi, rax
	call	error
	jmp	.L226
.L228:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	cmp	al, 103
	je	.L229
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 30
	mov	rdi, rax
	call	error
	jmp	.L226
.L229:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	cmp	al, 83
	je	.L230
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 30
	mov	rdi, rax
	call	error
	jmp	.L226
.L230:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	start_page_no_capturepattern
	test	eax, eax
	jne	.L231
	mov	eax, 0
	jmp	.L226
.L231:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 1763[rax]
	movzx	eax, al
	and	eax, 1
	test	eax, eax
	je	.L224
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1772[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 1764[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 32
	mov	rdi, rax
	call	error
	jmp	.L226
.L224:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	start_packet
.L226:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE41:
	.size	maybe_start_packet, .-maybe_start_packet
	.section	.rodata
.LC18:
	.string	"f->bytes_in_seg == 0"
	.text
	.type	next_segment, @function
next_segment:
.LFB42:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1772[rax]
	test	eax, eax
	je	.L233
	mov	eax, 0
	jmp	.L234
.L233:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1768[rax]
	cmp	eax, -1
	jne	.L235
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1504[rax]
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1776[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	start_page
	test	eax, eax
	jne	.L236
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1772[rax], 1
	mov	eax, 0
	jmp	.L234
.L236:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 1763[rax]
	movzx	eax, al
	and	eax, 1
	test	eax, eax
	jne	.L235
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 32
	mov	rdi, rax
	call	error
	jmp	.L234
.L235:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1768[rax]
	lea	ecx, 1[rax]
	mov	rdx, QWORD PTR -24[rbp]
	mov	DWORD PTR 1768[rdx], ecx
	mov	rdx, QWORD PTR -24[rbp]
	cdqe
	movzx	eax, BYTE PTR 1508[rdx+rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 254
	jg	.L237
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1772[rax], 1
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1768[rax]
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1776[rax], edx
.L237:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 1768[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1504[rax]
	cmp	edx, eax
	jl	.L238
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1768[rax], -1
.L238:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 1764[rax]
	test	al, al
	je	.L239
	lea	rcx, __PRETTY_FUNCTION__.16[rip]
	mov	edx, 1540
	lea	rsi, .LC1[rip]
	lea	rdi, .LC18[rip]
	call	__assert_fail@PLT
.L239:
	mov	eax, DWORD PTR -4[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 1764[rax], dl
	mov	eax, DWORD PTR -4[rbp]
.L234:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE42:
	.size	next_segment, .-next_segment
	.section	.rodata
.LC19:
	.string	"f->bytes_in_seg > 0"
	.text
	.type	get8_packet_raw, @function
get8_packet_raw:
.LFB43:
	.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	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 1764[rax]
	test	al, al
	jne	.L241
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 1772[rax]
	test	eax, eax
	je	.L242
	mov	eax, -1
	jmp	.L243
.L242:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	next_segment
	test	eax, eax
	jne	.L241
	mov	eax, -1
	jmp	.L243
.L241:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 1764[rax]
	test	al, al
	jne	.L244
	lea	rcx, __PRETTY_FUNCTION__.15[rip]
	mov	edx, 1554
	lea	rsi, .LC1[rip]
	lea	rdi, .LC19[rip]
	call	__assert_fail@PLT
.L244:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 1764[rax]
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 1764[rax], dl
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 1788[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 1788[rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	get8
	movzx	eax, al
.L243:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE43:
	.size	get8_packet_raw, .-get8_packet_raw
	.type	get8_packet, @function
get8_packet:
.LFB44:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8_packet_raw
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1784[rax], 0
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE44:
	.size	get8_packet, .-get8_packet
	.type	get32_packet, @function
get32_packet:
.LFB45:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8_packet
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8_packet
	sal	eax, 8
	add	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8_packet
	sal	eax, 16
	add	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8_packet
	sal	eax, 24
	add	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE45:
	.size	get32_packet, .-get32_packet
	.type	flush_packet, @function
flush_packet:
.LFB46:
	.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	QWORD PTR -8[rbp], rdi
	nop
.L250:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	get8_packet_raw
	cmp	eax, -1
	jne	.L250
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE46:
	.size	flush_packet, .-flush_packet
	.section	.rodata
.LC20:
	.string	"f->valid_bits >= n"
	.text
	.type	get_bits, @function
get_bits:
.LFB47:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1784[rax]
	test	eax, eax
	jns	.L252
	mov	eax, 0
	jmp	.L253
.L252:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1784[rax]
	cmp	DWORD PTR -28[rbp], eax
	jle	.L254
	cmp	DWORD PTR -28[rbp], 24
	jle	.L255
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 24
	mov	rdi, rax
	call	get_bits
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	lea	edx, -24[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	get_bits
	sal	eax, 24
	add	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	jmp	.L253
.L255:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1784[rax]
	test	eax, eax
	jne	.L257
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1780[rax], 0
	jmp	.L257
.L259:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8_packet_raw
	mov	DWORD PTR -8[rbp], eax
	cmp	DWORD PTR -8[rbp], -1
	jne	.L258
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1784[rax], -1
	mov	eax, 0
	jmp	.L253
.L258:
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, DWORD PTR 1780[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1784[rax]
	mov	edx, DWORD PTR -8[rbp]
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	lea	edx, [rsi+rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1780[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1784[rax]
	lea	edx, 8[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1784[rax], edx
.L257:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1784[rax]
	cmp	DWORD PTR -28[rbp], eax
	jg	.L259
.L254:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1784[rax]
	cmp	DWORD PTR -28[rbp], eax
	jle	.L260
	lea	rcx, __PRETTY_FUNCTION__.14[rip]
	mov	edx, 1608
	lea	rsi, .LC1[rip]
	lea	rdi, .LC20[rip]
	call	__assert_fail@PLT
.L260:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 1780[rax]
	mov	eax, DWORD PTR -28[rbp]
	mov	esi, 1
	mov	ecx, eax
	sal	esi, cl
	mov	eax, esi
	sub	eax, 1
	and	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 1780[rax]
	mov	eax, DWORD PTR -28[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1780[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1784[rax]
	sub	eax, DWORD PTR -28[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1784[rax], edx
	mov	eax, DWORD PTR -4[rbp]
.L253:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE47:
	.size	get_bits, .-get_bits
	.type	prep_huffman, @function
prep_huffman:
.LFB48:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1784[rax]
	cmp	eax, 24
	jg	.L261
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1784[rax]
	test	eax, eax
	jne	.L266
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1780[rax], 0
.L266:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1772[rax]
	test	eax, eax
	je	.L264
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 1764[rax]
	test	al, al
	je	.L267
.L264:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8_packet_raw
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], -1
	je	.L268
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, DWORD PTR 1780[rax]
	mov	edx, DWORD PTR -4[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1784[rax]
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	lea	edx, [rsi+rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1780[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1784[rax]
	lea	edx, 8[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1784[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1784[rax]
	cmp	eax, 24
	jle	.L266
	jmp	.L261
.L267:
	nop
	jmp	.L261
.L268:
	nop
.L261:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE48:
	.size	prep_huffman, .-prep_huffman
	.section	.rodata
.LC21:
	.string	"!c->sparse"
	.text
	.type	codebook_decode_scalar_raw, @function
codebook_decode_scalar_raw:
.LFB49:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	prep_huffman
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 40[rax]
	test	rax, rax
	jne	.L270
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 2096[rax]
	test	rax, rax
	jne	.L270
	mov	eax, -1
	jmp	.L271
.L270:
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	eax, 8
	jle	.L272
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 2096[rax]
	test	rax, rax
	setne	al
	jmp	.L273
.L272:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 40[rax]
	test	rax, rax
	sete	al
.L273:
	test	al, al
	je	.L274
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 1780[rax]
	mov	edi, eax
	call	bit_reverse
	mov	DWORD PTR -12[rbp], eax
	mov	DWORD PTR -20[rbp], 0
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 2112[rax]
	mov	DWORD PTR -16[rbp], eax
	jmp	.L275
.L277:
	mov	eax, DWORD PTR -16[rbp]
	sar	eax
	mov	edx, eax
	mov	eax, DWORD PTR -20[rbp]
	add	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 2096[rax]
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -12[rbp], eax
	jb	.L276
	mov	eax, DWORD PTR -4[rbp]
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	sar	eax
	sub	DWORD PTR -16[rbp], eax
	jmp	.L275
.L276:
	sar	DWORD PTR -16[rbp]
.L275:
	cmp	DWORD PTR -16[rbp], 1
	jg	.L277
	mov	rax, QWORD PTR -48[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	jne	.L278
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 2104[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -20[rbp], eax
.L278:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 1784[rax]
	cmp	DWORD PTR -8[rbp], eax
	jg	.L279
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 1780[rax]
	mov	eax, DWORD PTR -8[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1780[rax], edx
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 1784[rax]
	sub	eax, DWORD PTR -8[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1784[rax], edx
	mov	eax, DWORD PTR -20[rbp]
	jmp	.L271
.L279:
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1784[rax], 0
	mov	eax, -1
	jmp	.L271
.L274:
	mov	rax, QWORD PTR -48[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L280
	lea	rcx, __PRETTY_FUNCTION__.13[rip]
	mov	edx, 1681
	lea	rsi, .LC1[rip]
	lea	rdi, .LC21[rip]
	call	__assert_fail@PLT
.L280:
	mov	DWORD PTR -24[rbp], 0
	jmp	.L281
.L285:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, -1
	je	.L286
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, DWORD PTR 1780[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edi, 1
	mov	ecx, eax
	sal	edi, cl
	mov	eax, edi
	sub	eax, 1
	and	eax, esi
	cmp	edx, eax
	jne	.L283
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 1784[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cmp	edx, eax
	jl	.L284
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 1780[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	ecx, eax
	shr	edx, cl
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1780[rax], edx
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 1784[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sub	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1784[rax], edx
	mov	eax, DWORD PTR -24[rbp]
	jmp	.L271
.L284:
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1784[rax], 0
	mov	eax, -1
	jmp	.L271
.L286:
	nop
.L283:
	add	DWORD PTR -24[rbp], 1
.L281:
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L285
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 21
	mov	rdi, rax
	call	error
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1784[rax], 0
	mov	eax, -1
.L271:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE49:
	.size	codebook_decode_scalar_raw, .-codebook_decode_scalar_raw
	.section	.rodata
.LC22:
	.string	"z < c->sorted_entries"
	.text
	.type	codebook_decode_start, @function
codebook_decode_start:
.LFB50:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -8[rbp], -1
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 25[rax]
	test	al, al
	jne	.L288
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 21
	mov	rdi, rax
	call	error
	jmp	.L289
.L288:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1784[rax]
	cmp	eax, 9
	jg	.L290
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	prep_huffman
.L290:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1780[rax]
	and	eax, 1023
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR -32[rbp]
	mov	edx, DWORD PTR -8[rbp]
	movsx	rdx, edx
	add	rdx, 24
	movzx	eax, WORD PTR [rax+rdx*2]
	cwde
	mov	DWORD PTR -8[rbp], eax
	cmp	DWORD PTR -8[rbp], 0
	js	.L291
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 1780[rax]
	mov	eax, DWORD PTR -4[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1780[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1784[rax]
	sub	eax, DWORD PTR -4[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1784[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1784[rax]
	test	eax, eax
	jns	.L292
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1784[rax], 0
	mov	DWORD PTR -8[rbp], -1
	jmp	.L292
.L291:
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	codebook_decode_scalar_raw
	mov	DWORD PTR -8[rbp], eax
.L292:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L293
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 2112[rax]
	cmp	DWORD PTR -8[rbp], eax
	jl	.L293
	lea	rcx, __PRETTY_FUNCTION__.12[rip]
	mov	edx, 1769
	lea	rsi, .LC1[rip]
	lea	rdi, .LC22[rip]
	call	__assert_fail@PLT
.L293:
	cmp	DWORD PTR -8[rbp], 0
	jns	.L289
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 1764[rax]
	test	al, al
	jne	.L294
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1772[rax]
	test	eax, eax
	je	.L294
	mov	eax, DWORD PTR -8[rbp]
	jmp	.L295
.L294:
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 21
	mov	rdi, rax
	call	error
.L289:
	mov	eax, DWORD PTR -8[rbp]
.L295:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE50:
	.size	codebook_decode_start, .-codebook_decode_start
	.type	codebook_decode, @function
codebook_decode:
.LFB51:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	DWORD PTR -60[rbp], ecx
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	codebook_decode_start
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 0
	jns	.L297
	mov	eax, 0
	jmp	.L298
.L297:
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -60[rbp], eax
	jle	.L299
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -60[rbp], eax
.L299:
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, DWORD PTR -12[rbp]
	imul	eax, edx
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -48[rbp]
	movzx	eax, BYTE PTR 26[rax]
	test	al, al
	je	.L300
	pxor	xmm0, xmm0
	movss	DWORD PTR -16[rbp], xmm0
	mov	DWORD PTR -20[rbp], 0
	jmp	.L301
.L302:
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	ecx, DWORD PTR -12[rbp]
	mov	eax, DWORD PTR -20[rbp]
	add	eax, ecx
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	movss	xmm1, DWORD PTR -16[rbp]
	addss	xmm0, xmm1
	movss	DWORD PTR -4[rbp], xmm0
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	addss	xmm0, DWORD PTR -4[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -48[rbp]
	movss	xmm0, DWORD PTR 16[rax]
	movss	xmm1, DWORD PTR -4[rbp]
	addss	xmm0, xmm1
	movss	DWORD PTR -16[rbp], xmm0
	add	DWORD PTR -20[rbp], 1
.L301:
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -60[rbp]
	jl	.L302
	jmp	.L303
.L300:
	pxor	xmm0, xmm0
	movss	DWORD PTR -8[rbp], xmm0
	mov	DWORD PTR -20[rbp], 0
	jmp	.L304
.L305:
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	ecx, DWORD PTR -12[rbp]
	mov	eax, DWORD PTR -20[rbp]
	add	eax, ecx
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	addss	xmm0, DWORD PTR -8[rbp]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -20[rbp], 1
.L304:
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -60[rbp]
	jl	.L305
.L303:
	mov	eax, 1
.L298:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE51:
	.size	codebook_decode, .-codebook_decode
	.type	codebook_decode_step, @function
codebook_decode_step:
.LFB52:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	DWORD PTR -44[rbp], ecx
	mov	DWORD PTR -48[rbp], r8d
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	codebook_decode_start
	mov	DWORD PTR -8[rbp], eax
	pxor	xmm0, xmm0
	movss	DWORD PTR -12[rbp], xmm0
	cmp	DWORD PTR -8[rbp], 0
	jns	.L307
	mov	eax, 0
	jmp	.L308
.L307:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -44[rbp], eax
	jle	.L309
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -44[rbp], eax
.L309:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, DWORD PTR -8[rbp]
	imul	eax, edx
	mov	DWORD PTR -8[rbp], eax
	mov	DWORD PTR -16[rbp], 0
	jmp	.L310
.L312:
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	ecx, DWORD PTR -8[rbp]
	mov	eax, DWORD PTR -16[rbp]
	add	eax, ecx
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	movss	xmm1, DWORD PTR -12[rbp]
	addss	xmm0, xmm1
	movss	DWORD PTR -4[rbp], xmm0
	mov	eax, DWORD PTR -16[rbp]
	imul	eax, DWORD PTR -48[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mov	eax, DWORD PTR -16[rbp]
	imul	eax, DWORD PTR -48[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	addss	xmm0, DWORD PTR -4[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 26[rax]
	test	al, al
	je	.L311
	movss	xmm0, DWORD PTR -4[rbp]
	movss	DWORD PTR -12[rbp], xmm0
.L311:
	add	DWORD PTR -16[rbp], 1
.L310:
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L312
	mov	eax, 1
.L308:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE52:
	.size	codebook_decode_step, .-codebook_decode_step
	.section	.rodata
	.align 8
.LC24:
	.string	"!c->sparse || z < c->sorted_entries"
	.text
	.type	codebook_decode_deinterleave_repeat, @function
codebook_decode_deinterleave_repeat:
.LFB53:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	QWORD PTR -72[rbp], rdx
	mov	DWORD PTR -76[rbp], ecx
	mov	QWORD PTR -88[rbp], r8
	mov	QWORD PTR -96[rbp], r9
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -96[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, BYTE PTR 25[rax]
	test	al, al
	jne	.L316
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 21
	mov	rdi, rax
	call	error
	jmp	.L315
.L334:
	pxor	xmm0, xmm0
	movss	DWORD PTR -16[rbp], xmm0
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1784[rax]
	cmp	eax, 9
	jg	.L317
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	prep_huffman
.L317:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1780[rax]
	and	eax, 1023
	mov	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR -24[rbp]
	movsx	rdx, edx
	add	rdx, 24
	movzx	eax, WORD PTR [rax+rdx*2]
	cwde
	mov	DWORD PTR -24[rbp], eax
	cmp	DWORD PTR -24[rbp], 0
	js	.L318
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR 1780[rax]
	mov	eax, DWORD PTR -12[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 1780[rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1784[rax]
	sub	eax, DWORD PTR -12[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 1784[rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1784[rax]
	test	eax, eax
	jns	.L319
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 1784[rax], 0
	mov	DWORD PTR -24[rbp], -1
	jmp	.L319
.L318:
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	codebook_decode_scalar_raw
	mov	DWORD PTR -24[rbp], eax
.L319:
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L320
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 2112[rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L320
	lea	rcx, __PRETTY_FUNCTION__.11[rip]
	mov	edx, 1863
	lea	rsi, .LC1[rip]
	lea	rdi, .LC24[rip]
	call	__assert_fail@PLT
.L320:
	cmp	DWORD PTR -24[rbp], 0
	jns	.L321
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR 1764[rax]
	test	al, al
	jne	.L322
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1772[rax]
	test	eax, eax
	je	.L322
	mov	eax, 0
	jmp	.L315
.L322:
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 21
	mov	rdi, rax
	call	error
	jmp	.L315
.L321:
	mov	eax, DWORD PTR -32[rbp]
	imul	eax, DWORD PTR -76[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -36[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -20[rbp]
	add	edx, eax
	mov	eax, DWORD PTR 16[rbp]
	imul	eax, DWORD PTR -76[rbp]
	cmp	edx, eax
	jle	.L323
	mov	eax, DWORD PTR 16[rbp]
	imul	eax, DWORD PTR -76[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -32[rbp]
	imul	eax, DWORD PTR -76[rbp]
	sub	eax, DWORD PTR -36[rbp]
	mov	ecx, eax
	mov	eax, edx
	sub	eax, ecx
	mov	DWORD PTR -20[rbp], eax
.L323:
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, DWORD PTR -24[rbp]
	imul	eax, edx
	mov	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, BYTE PTR 26[rax]
	test	al, al
	je	.L324
	mov	DWORD PTR -28[rbp], 0
	jmp	.L325
.L328:
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	ecx, DWORD PTR -24[rbp]
	mov	eax, DWORD PTR -28[rbp]
	add	eax, ecx
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	movss	xmm1, DWORD PTR -16[rbp]
	addss	xmm0, xmm1
	movss	DWORD PTR -4[rbp], xmm0
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L326
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	addss	xmm0, DWORD PTR -4[rbp]
	movss	DWORD PTR [rax], xmm0
.L326:
	add	DWORD PTR -36[rbp], 1
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jne	.L327
	mov	DWORD PTR -36[rbp], 0
	add	DWORD PTR -32[rbp], 1
.L327:
	movss	xmm0, DWORD PTR -4[rbp]
	movss	DWORD PTR -16[rbp], xmm0
	add	DWORD PTR -28[rbp], 1
.L325:
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, DWORD PTR -20[rbp]
	jl	.L328
	jmp	.L329
.L324:
	mov	DWORD PTR -28[rbp], 0
	jmp	.L330
.L333:
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	ecx, DWORD PTR -24[rbp]
	mov	eax, DWORD PTR -28[rbp]
	add	eax, ecx
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	movss	xmm1, DWORD PTR -16[rbp]
	addss	xmm0, xmm1
	movss	DWORD PTR -8[rbp], xmm0
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L331
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	addss	xmm0, DWORD PTR -8[rbp]
	movss	DWORD PTR [rax], xmm0
.L331:
	add	DWORD PTR -36[rbp], 1
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jne	.L332
	mov	DWORD PTR -36[rbp], 0
	add	DWORD PTR -32[rbp], 1
.L332:
	add	DWORD PTR -28[rbp], 1
.L330:
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, DWORD PTR -20[rbp]
	jl	.L333
.L329:
	mov	eax, DWORD PTR -20[rbp]
	sub	DWORD PTR 24[rbp], eax
.L316:
	cmp	DWORD PTR 24[rbp], 0
	jg	.L334
	mov	rax, QWORD PTR -88[rbp]
	mov	edx, DWORD PTR -36[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -96[rbp]
	mov	edx, DWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, 1
.L315:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE53:
	.size	codebook_decode_deinterleave_repeat, .-codebook_decode_deinterleave_repeat
	.type	predict_point, @function
predict_point:
.LFB54:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	DWORD PTR -28[rbp], edx
	mov	DWORD PTR -32[rbp], ecx
	mov	DWORD PTR -36[rbp], r8d
	mov	eax, DWORD PTR -36[rbp]
	sub	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	sub	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	cdq
	mov	eax, edx
	xor	eax, DWORD PTR -16[rbp]
	sub	eax, edx
	mov	edx, DWORD PTR -20[rbp]
	sub	edx, DWORD PTR -24[rbp]
	imul	eax, edx
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	cdq
	idiv	DWORD PTR -12[rbp]
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -16[rbp], 0
	jns	.L336
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, DWORD PTR -4[rbp]
	jmp	.L338
.L336:
	mov	edx, DWORD PTR -32[rbp]
	mov	eax, DWORD PTR -4[rbp]
	add	eax, edx
.L338:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE54:
	.size	predict_point, .-predict_point
	.data
	.align 32
	.type	inverse_db_table, @object
	.size	inverse_db_table, 1024
inverse_db_table:
	.long	870626366
	.long	871600393
	.long	872526475
	.long	873078844
	.long	873667107
	.long	874293600
	.long	874960807
	.long	875671371
	.long	876428112
	.long	877234032
	.long	878092323
	.long	879006392
	.long	879979861
	.long	880910216
	.long	881462268
	.long	882050195
	.long	882676329
	.long	883343154
	.long	884053311
	.long	884809619
	.long	885615076
	.long	886472877
	.long	887386422
	.long	888359334
	.long	889293960
	.long	889845696
	.long	890433286
	.long	891059062
	.long	891725504
	.long	892435255
	.long	893191130
	.long	893996126
	.long	894853435
	.long	895766457
	.long	896738812
	.long	897677706
	.long	898229126
	.long	898816380
	.long	899441797
	.long	900107858
	.long	900817203
	.long	901572645
	.long	902377180
	.long	903233998
	.long	904146497
	.long	905118295
	.long	906061455
	.long	906612559
	.long	907199477
	.long	907824536
	.long	908490216
	.long	909199154
	.long	909954164
	.long	910758238
	.long	911614565
	.long	912526542
	.long	913497784
	.long	914445207
	.long	914995996
	.long	915582578
	.long	916207279
	.long	916872577
	.long	917581109
	.long	918335687
	.long	919139300
	.long	919995137
	.long	920906592
	.long	921877278
	.long	922828962
	.long	923379435
	.long	923965681
	.long	924590025
	.long	925254942
	.long	925963069
	.long	926717214
	.long	927520367
	.long	928375714
	.long	929286647
	.long	930256777
	.long	931212719
	.long	931762878
	.long	932348788
	.long	932972774
	.long	933637310
	.long	934345031
	.long	935098745
	.long	935901438
	.long	936756295
	.long	937666706
	.long	938636280
	.long	939596480
	.long	940146323
	.long	940731897
	.long	941355526
	.long	942019682
	.long	942726998
	.long	943480280
	.long	944282514
	.long	945136882
	.long	946046771
	.long	947015790
	.long	947980243
	.long	948529771
	.long	949115010
	.long	949738282
	.long	950402057
	.long	951108968
	.long	951861819
	.long	952663593
	.long	953517472
	.long	954426841
	.long	955395304
	.long	956364009
	.long	956913222
	.long	957498126
	.long	958121041
	.long	958784437
	.long	959490943
	.long	960243362
	.long	961044677
	.long	961898067
	.long	962806915
	.long	963774824
	.long	964747777
	.long	965296676
	.long	965881245
	.long	966503803
	.long	967166819
	.long	967872921
	.long	968624909
	.long	969425766
	.long	970278667
	.long	971186994
	.long	972154349
	.long	973131549
	.long	973680133
	.long	974264368
	.long	974886569
	.long	975549205
	.long	976254903
	.long	977006460
	.long	977806858
	.long	978659271
	.long	979567078
	.long	980533880
	.long	981515323
	.long	982063593
	.long	982647494
	.long	983269339
	.long	983931595
	.long	984636888
	.long	985388015
	.long	986187955
	.long	987039880
	.long	987947167
	.long	988913415
	.long	989899100
	.long	990447056
	.long	991030622
	.long	991652111
	.long	992313988
	.long	993018877
	.long	993769575
	.long	994569057
	.long	995420493
	.long	996327261
	.long	997292956
	.long	998282879
	.long	998830522
	.long	999413753
	.long	1000034887
	.long	1000696385
	.long	1001400871
	.long	1002151138
	.long	1002950162
	.long	1003801111
	.long	1004707360
	.long	1005672501
	.long	1006666662
	.long	1007213991
	.long	1007796888
	.long	1008417666
	.long	1009078785
	.long	1009782868
	.long	1010532705
	.long	1011331272
	.long	1012181733
	.long	1013087464
	.long	1014052052
	.long	1015050447
	.long	1015597462
	.long	1016180026
	.long	1016800448
	.long	1017461189
	.long	1018164869
	.long	1018914277
	.long	1019712386
	.long	1020562361
	.long	1021467572
	.long	1022431609
	.long	1023434235
	.long	1023980937
	.long	1024563167
	.long	1025183234
	.long	1025843597
	.long	1026546873
	.long	1027295853
	.long	1028093504
	.long	1028942993
	.long	1029847685
	.long	1030811170
	.long	1031818026
	.long	1032364415
	.long	1032946312
	.long	1033566024
	.long	1034226008
	.long	1034928882
	.long	1035677432
	.long	1036474627
	.long	1037323629
	.long	1038227804
	.long	1039190737
	.long	1040201819
	.long	1040747895
	.long	1041329459
	.long	1041948816
	.long	1042608423
	.long	1043310894
	.long	1044059015
	.long	1044855754
	.long	1045704269
	.long	1046607927
	.long	1047570308
	.long	1048585615
	.long	1049131379
	.long	1049712610
	.long	1050331612
	.long	1050990841
	.long	1051692909
	.long	1052440603
	.long	1053236885
	.long	1054084915
	.long	1054988055
	.long	1055949885
	.long	1056969414
	.long	1057514866
	.long	1058095763
	.long	1058714411
	.long	1059373262
	.long	1060074929
	.long	1060822194
	.long	1061618021
	.long	1062465565
	.long	1063368187
	.long	1064329467
	.long	1065353216
	.text
	.type	draw_line, @function
draw_line:
.LFB55:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	DWORD PTR -48[rbp], edx
	mov	DWORD PTR -52[rbp], ecx
	mov	DWORD PTR -56[rbp], r8d
	mov	DWORD PTR -60[rbp], r9d
	mov	eax, DWORD PTR -56[rbp]
	sub	eax, DWORD PTR -48[rbp]
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, DWORD PTR -44[rbp]
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	cdq
	mov	eax, edx
	xor	eax, DWORD PTR -16[rbp]
	sub	eax, edx
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -44[rbp]
	mov	DWORD PTR -32[rbp], eax
	mov	eax, DWORD PTR -48[rbp]
	mov	DWORD PTR -28[rbp], eax
	mov	DWORD PTR -24[rbp], 0
	mov	eax, DWORD PTR -16[rbp]
	cdq
	idiv	DWORD PTR -12[rbp]
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -16[rbp], 0
	jns	.L340
	mov	eax, DWORD PTR -4[rbp]
	sub	eax, 1
	mov	DWORD PTR -20[rbp], eax
	jmp	.L341
.L340:
	mov	eax, DWORD PTR -4[rbp]
	add	eax, 1
	mov	DWORD PTR -20[rbp], eax
.L341:
	mov	eax, DWORD PTR -4[rbp]
	cdq
	mov	eax, edx
	xor	eax, DWORD PTR -4[rbp]
	sub	eax, edx
	imul	eax, DWORD PTR -12[rbp]
	sub	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -52[rbp]
	cmp	eax, DWORD PTR -60[rbp]
	jle	.L342
	mov	eax, DWORD PTR -60[rbp]
	mov	DWORD PTR -52[rbp], eax
.L342:
	mov	eax, DWORD PTR -32[rbp]
	cmp	eax, DWORD PTR -52[rbp]
	jge	.L348
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	mov	eax, DWORD PTR -28[rbp]
	movzx	eax, al
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, inverse_db_table[rip]
	movss	xmm0, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mulss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -32[rbp], 1
	jmp	.L344
.L347:
	mov	eax, DWORD PTR -8[rbp]
	add	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	cmp	eax, DWORD PTR -12[rbp]
	jl	.L345
	mov	eax, DWORD PTR -12[rbp]
	sub	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	add	DWORD PTR -28[rbp], eax
	jmp	.L346
.L345:
	mov	eax, DWORD PTR -4[rbp]
	add	DWORD PTR -28[rbp], eax
.L346:
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	mov	eax, DWORD PTR -28[rbp]
	movzx	eax, al
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, inverse_db_table[rip]
	movss	xmm0, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mulss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -32[rbp], 1
.L344:
	mov	eax, DWORD PTR -32[rbp]
	cmp	eax, DWORD PTR -52[rbp]
	jl	.L347
.L348:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE55:
	.size	draw_line, .-draw_line
	.type	residue_decode, @function
residue_decode:
.LFB56:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	DWORD PTR -44[rbp], ecx
	mov	DWORD PTR -48[rbp], r8d
	mov	DWORD PTR -52[rbp], r9d
	cmp	DWORD PTR -52[rbp], 0
	jne	.L350
	mov	rax, QWORD PTR -32[rbp]
	mov	esi, DWORD PTR [rax]
	mov	eax, DWORD PTR -48[rbp]
	cdq
	idiv	esi
	mov	DWORD PTR -4[rbp], eax
	mov	DWORD PTR -8[rbp], 0
	jmp	.L351
.L354:
	mov	eax, DWORD PTR -48[rbp]
	sub	eax, DWORD PTR -44[rbp]
	sub	eax, DWORD PTR -8[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -44[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	add	rax, rcx
	lea	rcx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	lea	rdi, [rcx+rax]
	mov	ecx, DWORD PTR -4[rbp]
	mov	rsi, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	rdx, rdi
	mov	rdi, rax
	call	codebook_decode_step
	test	eax, eax
	jne	.L352
	mov	eax, 0
	jmp	.L353
.L352:
	add	DWORD PTR -8[rbp], 1
.L351:
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -4[rbp]
	jl	.L354
	jmp	.L355
.L350:
	mov	DWORD PTR -8[rbp], 0
	jmp	.L356
.L358:
	mov	eax, DWORD PTR -48[rbp]
	sub	eax, DWORD PTR -8[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	lea	rcx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	lea	rdi, [rcx+rax]
	mov	rsi, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	ecx, edx
	mov	rdx, rdi
	mov	rdi, rax
	call	codebook_decode
	test	eax, eax
	jne	.L357
	mov	eax, 0
	jmp	.L353
.L357:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	add	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	add	DWORD PTR -44[rbp], eax
.L356:
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -48[rbp]
	jl	.L358
.L355:
	mov	eax, 1
.L353:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE56:
	.size	residue_decode, .-residue_decode
	.type	decode_residue, @function
decode_residue:
.LFB57:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r12
	push	rbx
	sub	rsp, 272
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	QWORD PTR -248[rbp], rdi
	mov	QWORD PTR -256[rbp], rsi
	mov	DWORD PTR -260[rbp], edx
	mov	DWORD PTR -264[rbp], ecx
	mov	DWORD PTR -268[rbp], r8d
	mov	QWORD PTR -280[rbp], r9
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -248[rbp]
	mov	rdx, QWORD PTR 472[rax]
	mov	eax, DWORD PTR -268[rbp]
	cdqe
	sal	rax, 5
	add	rax, rdx
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -248[rbp]
	mov	edx, DWORD PTR -268[rbp]
	movsx	rdx, edx
	add	rdx, 168
	movzx	eax, WORD PTR 4[rax+rdx*2]
	movzx	eax, ax
	mov	DWORD PTR -192[rbp], eax
	mov	rax, QWORD PTR -96[rbp]
	movzx	eax, BYTE PTR 13[rax]
	movzx	eax, al
	mov	DWORD PTR -188[rbp], eax
	mov	rax, QWORD PTR -248[rbp]
	mov	rdx, QWORD PTR 184[rax]
	mov	eax, DWORD PTR -188[rbp]
	cdqe
	imul	rax, rax, 2120
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -184[rbp], eax
	cmp	DWORD PTR -192[rbp], 2
	jne	.L360
	mov	eax, DWORD PTR -264[rbp]
	add	eax, eax
	jmp	.L361
.L360:
	mov	eax, DWORD PTR -264[rbp]
.L361:
	mov	DWORD PTR -180[rbp], eax
	mov	rax, QWORD PTR -96[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -180[rbp], eax
	cmovbe	eax, DWORD PTR -180[rbp]
	mov	DWORD PTR -176[rbp], eax
	mov	rax, QWORD PTR -96[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -180[rbp], eax
	cmovbe	eax, DWORD PTR -180[rbp]
	mov	DWORD PTR -172[rbp], eax
	mov	eax, DWORD PTR -172[rbp]
	sub	eax, DWORD PTR -176[rbp]
	mov	DWORD PTR -168[rbp], eax
	mov	eax, DWORD PTR -168[rbp]
	mov	rdx, QWORD PTR -96[rbp]
	mov	ebx, DWORD PTR 8[rdx]
	mov	edx, 0
	div	ebx
	mov	DWORD PTR -164[rbp], eax
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR 148[rax]
	mov	DWORD PTR -160[rbp], eax
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	sal	eax, 3
	mov	r12d, eax
	mov	rax, QWORD PTR -248[rbp]
	mov	ebx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -248[rbp]
	mov	rax, QWORD PTR 128[rax]
	test	rax, rax
	je	.L362
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	add	rax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	imul	eax, edx
	sal	eax, 3
	mov	edx, eax
	mov	rax, QWORD PTR -248[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_temp_malloc
	jmp	.L363
.L362:
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	imul	rax, rdx
	sal	rax, 3
	lea	rdx, 8[rax]
	mov	eax, 16
	sub	rax, 1
	add	rax, rdx
	mov	esi, 16
	mov	edx, 0
	div	rsi
	imul	rax, rax, 16
	mov	rcx, rax
	and	rcx, -4096
	mov	rdx, rsp
	sub	rdx, rcx
.L364:
	cmp	rsp, rdx
	je	.L365
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L364
.L365:
	mov	rdx, rax
	and	edx, 4095
	sub	rsp, rdx
	mov	rdx, rax
	and	edx, 4095
	test	rdx, rdx
	je	.L366
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L366:
	mov	rax, rsp
	add	rax, 15
	shr	rax, 4
	sal	rax, 4
.L363:
	mov	edx, r12d
	mov	esi, ebx
	mov	rdi, rax
	call	make_block_array
	mov	QWORD PTR -88[rbp], rax
	mov	DWORD PTR -232[rbp], 0
	jmp	.L367
.L369:
	mov	eax, DWORD PTR -232[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -280[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L368
	mov	eax, DWORD PTR -264[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	eax, DWORD PTR -232[rbp]
	cdqe
	lea	rcx, 0[0+rax*8]
	mov	rax, QWORD PTR -256[rbp]
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
.L368:
	add	DWORD PTR -232[rbp], 1
.L367:
	mov	eax, DWORD PTR -232[rbp]
	cmp	eax, DWORD PTR -260[rbp]
	jl	.L369
	cmp	DWORD PTR -192[rbp], 2
	jne	.L370
	cmp	DWORD PTR -260[rbp], 1
	je	.L370
	mov	DWORD PTR -228[rbp], 0
	jmp	.L371
.L374:
	mov	eax, DWORD PTR -228[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -280[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L429
	add	DWORD PTR -228[rbp], 1
.L371:
	mov	eax, DWORD PTR -228[rbp]
	cmp	eax, DWORD PTR -260[rbp]
	jl	.L374
	jmp	.L373
.L429:
	nop
.L373:
	mov	eax, DWORD PTR -228[rbp]
	cmp	eax, DWORD PTR -260[rbp]
	je	.L430
	mov	DWORD PTR -224[rbp], 0
	jmp	.L377
.L408:
	mov	DWORD PTR -220[rbp], 0
	mov	DWORD PTR -216[rbp], 0
	cmp	DWORD PTR -260[rbp], 2
	jne	.L378
	jmp	.L379
.L392:
	mov	rax, QWORD PTR -96[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -96[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	eax, DWORD PTR -220[rbp]
	imul	eax, edx
	add	eax, ecx
	mov	DWORD PTR -136[rbp], eax
	mov	eax, DWORD PTR -136[rbp]
	and	eax, 1
	mov	DWORD PTR -240[rbp], eax
	mov	eax, DWORD PTR -136[rbp]
	sar	eax
	mov	DWORD PTR -236[rbp], eax
	cmp	DWORD PTR -224[rbp], 0
	jne	.L380
	mov	rax, QWORD PTR -248[rbp]
	mov	rdx, QWORD PTR 184[rax]
	mov	rax, QWORD PTR -96[rbp]
	movzx	eax, BYTE PTR 13[rax]
	movzx	eax, al
	imul	rax, rax, 2120
	add	rax, rdx
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR 1784[rax]
	cmp	eax, 9
	jg	.L381
	mov	rax, QWORD PTR -248[rbp]
	mov	rdi, rax
	call	prep_huffman
.L381:
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR 1780[rax]
	and	eax, 1023
	mov	DWORD PTR -212[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR -212[rbp]
	movsx	rdx, edx
	add	rdx, 24
	movzx	eax, WORD PTR [rax+rdx*2]
	cwde
	mov	DWORD PTR -212[rbp], eax
	cmp	DWORD PTR -212[rbp], 0
	js	.L382
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -212[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -132[rbp], eax
	mov	rax, QWORD PTR -248[rbp]
	mov	edx, DWORD PTR 1780[rax]
	mov	eax, DWORD PTR -132[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	rax, QWORD PTR -248[rbp]
	mov	DWORD PTR 1780[rax], edx
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR 1784[rax]
	sub	eax, DWORD PTR -132[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -248[rbp]
	mov	DWORD PTR 1784[rax], edx
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR 1784[rax]
	test	eax, eax
	jns	.L383
	mov	rax, QWORD PTR -248[rbp]
	mov	DWORD PTR 1784[rax], 0
	mov	DWORD PTR -212[rbp], -1
	jmp	.L383
.L382:
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -248[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	codebook_decode_scalar_raw
	mov	DWORD PTR -212[rbp], eax
.L383:
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L384
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 2104[rax]
	mov	eax, DWORD PTR -212[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -212[rbp], eax
.L384:
	cmp	DWORD PTR -212[rbp], -1
	je	.L431
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -212[rbp]
	cdqe
	sal	rax, 3
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -216[rbp]
	cdqe
	sal	rax, 3
	add	rdx, rax
	mov	rax, QWORD PTR [rcx]
	mov	QWORD PTR [rdx], rax
.L380:
	mov	DWORD PTR -232[rbp], 0
	jmp	.L387
.L391:
	mov	rax, QWORD PTR -96[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -96[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	eax, DWORD PTR -220[rbp]
	imul	eax, edx
	add	eax, ecx
	mov	DWORD PTR -128[rbp], eax
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -216[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -232[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -124[rbp], eax
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -124[rbp]
	cdqe
	sal	rax, 4
	add	rdx, rax
	mov	eax, DWORD PTR -224[rbp]
	cdqe
	movzx	eax, WORD PTR [rdx+rax*2]
	cwde
	mov	DWORD PTR -120[rbp], eax
	cmp	DWORD PTR -120[rbp], 0
	js	.L388
	mov	rax, QWORD PTR -248[rbp]
	mov	rdx, QWORD PTR 184[rax]
	mov	eax, DWORD PTR -120[rbp]
	cdqe
	imul	rax, rax, 2120
	add	rax, rdx
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	edi, eax
	lea	r9, -236[rbp]
	lea	r8, -240[rbp]
	mov	ecx, DWORD PTR -260[rbp]
	mov	rdx, QWORD PTR -256[rbp]
	mov	rsi, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -248[rbp]
	push	rdi
	mov	edi, DWORD PTR -264[rbp]
	push	rdi
	mov	rdi, rax
	call	codebook_decode_deinterleave_repeat
	add	rsp, 16
	test	eax, eax
	jne	.L389
	jmp	.L376
.L388:
	mov	rax, QWORD PTR -96[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	eax, DWORD PTR -128[rbp]
	add	eax, edx
	mov	DWORD PTR -128[rbp], eax
	mov	eax, DWORD PTR -128[rbp]
	and	eax, 1
	mov	DWORD PTR -240[rbp], eax
	mov	eax, DWORD PTR -128[rbp]
	sar	eax
	mov	DWORD PTR -236[rbp], eax
.L389:
	add	DWORD PTR -232[rbp], 1
	add	DWORD PTR -220[rbp], 1
.L387:
	mov	eax, DWORD PTR -232[rbp]
	cmp	eax, DWORD PTR -184[rbp]
	jge	.L390
	mov	eax, DWORD PTR -220[rbp]
	cmp	eax, DWORD PTR -164[rbp]
	jl	.L391
.L390:
	add	DWORD PTR -216[rbp], 1
.L379:
	mov	eax, DWORD PTR -220[rbp]
	cmp	eax, DWORD PTR -164[rbp]
	jl	.L392
	jmp	.L393
.L378:
	cmp	DWORD PTR -260[rbp], 2
	jle	.L393
	jmp	.L394
.L407:
	mov	rax, QWORD PTR -96[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -96[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	eax, DWORD PTR -220[rbp]
	imul	eax, edx
	add	eax, ecx
	mov	DWORD PTR -156[rbp], eax
	mov	eax, DWORD PTR -156[rbp]
	cdq
	idiv	DWORD PTR -260[rbp]
	mov	eax, edx
	mov	DWORD PTR -240[rbp], eax
	mov	eax, DWORD PTR -156[rbp]
	cdq
	idiv	DWORD PTR -260[rbp]
	mov	DWORD PTR -236[rbp], eax
	cmp	DWORD PTR -224[rbp], 0
	jne	.L395
	mov	rax, QWORD PTR -248[rbp]
	mov	rdx, QWORD PTR 184[rax]
	mov	rax, QWORD PTR -96[rbp]
	movzx	eax, BYTE PTR 13[rax]
	movzx	eax, al
	imul	rax, rax, 2120
	add	rax, rdx
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR 1784[rax]
	cmp	eax, 9
	jg	.L396
	mov	rax, QWORD PTR -248[rbp]
	mov	rdi, rax
	call	prep_huffman
.L396:
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR 1780[rax]
	and	eax, 1023
	mov	DWORD PTR -208[rbp], eax
	mov	rax, QWORD PTR -80[rbp]
	mov	edx, DWORD PTR -208[rbp]
	movsx	rdx, edx
	add	rdx, 24
	movzx	eax, WORD PTR [rax+rdx*2]
	cwde
	mov	DWORD PTR -208[rbp], eax
	cmp	DWORD PTR -208[rbp], 0
	js	.L397
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -152[rbp], eax
	mov	rax, QWORD PTR -248[rbp]
	mov	edx, DWORD PTR 1780[rax]
	mov	eax, DWORD PTR -152[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	rax, QWORD PTR -248[rbp]
	mov	DWORD PTR 1780[rax], edx
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR 1784[rax]
	sub	eax, DWORD PTR -152[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -248[rbp]
	mov	DWORD PTR 1784[rax], edx
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR 1784[rax]
	test	eax, eax
	jns	.L398
	mov	rax, QWORD PTR -248[rbp]
	mov	DWORD PTR 1784[rax], 0
	mov	DWORD PTR -208[rbp], -1
	jmp	.L398
.L397:
	mov	rdx, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -248[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	codebook_decode_scalar_raw
	mov	DWORD PTR -208[rbp], eax
.L398:
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L399
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR 2104[rax]
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -208[rbp], eax
.L399:
	cmp	DWORD PTR -208[rbp], -1
	je	.L432
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -208[rbp]
	cdqe
	sal	rax, 3
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -216[rbp]
	cdqe
	sal	rax, 3
	add	rdx, rax
	mov	rax, QWORD PTR [rcx]
	mov	QWORD PTR [rdx], rax
.L395:
	mov	DWORD PTR -232[rbp], 0
	jmp	.L402
.L406:
	mov	rax, QWORD PTR -96[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -96[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	eax, DWORD PTR -220[rbp]
	imul	eax, edx
	add	eax, ecx
	mov	DWORD PTR -148[rbp], eax
	mov	rax, QWORD PTR -88[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -216[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -232[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -144[rbp], eax
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -144[rbp]
	cdqe
	sal	rax, 4
	add	rdx, rax
	mov	eax, DWORD PTR -224[rbp]
	cdqe
	movzx	eax, WORD PTR [rdx+rax*2]
	cwde
	mov	DWORD PTR -140[rbp], eax
	cmp	DWORD PTR -140[rbp], 0
	js	.L403
	mov	rax, QWORD PTR -248[rbp]
	mov	rdx, QWORD PTR 184[rax]
	mov	eax, DWORD PTR -140[rbp]
	cdqe
	imul	rax, rax, 2120
	add	rax, rdx
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	edi, eax
	lea	r9, -236[rbp]
	lea	r8, -240[rbp]
	mov	ecx, DWORD PTR -260[rbp]
	mov	rdx, QWORD PTR -256[rbp]
	mov	rsi, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -248[rbp]
	push	rdi
	mov	edi, DWORD PTR -264[rbp]
	push	rdi
	mov	rdi, rax
	call	codebook_decode_deinterleave_repeat
	add	rsp, 16
	test	eax, eax
	jne	.L404
	jmp	.L376
.L403:
	mov	rax, QWORD PTR -96[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	eax, DWORD PTR -148[rbp]
	add	eax, edx
	mov	DWORD PTR -148[rbp], eax
	mov	eax, DWORD PTR -148[rbp]
	cdq
	idiv	DWORD PTR -260[rbp]
	mov	eax, edx
	mov	DWORD PTR -240[rbp], eax
	mov	eax, DWORD PTR -148[rbp]
	cdq
	idiv	DWORD PTR -260[rbp]
	mov	DWORD PTR -236[rbp], eax
.L404:
	add	DWORD PTR -232[rbp], 1
	add	DWORD PTR -220[rbp], 1
.L402:
	mov	eax, DWORD PTR -232[rbp]
	cmp	eax, DWORD PTR -184[rbp]
	jge	.L405
	mov	eax, DWORD PTR -220[rbp]
	cmp	eax, DWORD PTR -164[rbp]
	jl	.L406
.L405:
	add	DWORD PTR -216[rbp], 1
.L394:
	mov	eax, DWORD PTR -220[rbp]
	cmp	eax, DWORD PTR -164[rbp]
	jl	.L407
.L393:
	add	DWORD PTR -224[rbp], 1
.L377:
	cmp	DWORD PTR -224[rbp], 7
	jle	.L408
	jmp	.L376
.L370:
	mov	DWORD PTR -224[rbp], 0
	jmp	.L409
.L427:
	mov	DWORD PTR -204[rbp], 0
	mov	DWORD PTR -200[rbp], 0
	jmp	.L410
.L426:
	cmp	DWORD PTR -224[rbp], 0
	jne	.L411
	mov	DWORD PTR -228[rbp], 0
	jmp	.L412
.L419:
	mov	eax, DWORD PTR -228[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -280[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L413
	mov	rax, QWORD PTR -248[rbp]
	mov	rdx, QWORD PTR 184[rax]
	mov	rax, QWORD PTR -96[rbp]
	movzx	eax, BYTE PTR 13[rax]
	movzx	eax, al
	imul	rax, rax, 2120
	add	rax, rdx
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR 1784[rax]
	cmp	eax, 9
	jg	.L414
	mov	rax, QWORD PTR -248[rbp]
	mov	rdi, rax
	call	prep_huffman
.L414:
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR 1780[rax]
	and	eax, 1023
	mov	DWORD PTR -196[rbp], eax
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR -196[rbp]
	movsx	rdx, edx
	add	rdx, 24
	movzx	eax, WORD PTR [rax+rdx*2]
	cwde
	mov	DWORD PTR -196[rbp], eax
	cmp	DWORD PTR -196[rbp], 0
	js	.L415
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -196[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -116[rbp], eax
	mov	rax, QWORD PTR -248[rbp]
	mov	edx, DWORD PTR 1780[rax]
	mov	eax, DWORD PTR -116[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	rax, QWORD PTR -248[rbp]
	mov	DWORD PTR 1780[rax], edx
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR 1784[rax]
	sub	eax, DWORD PTR -116[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -248[rbp]
	mov	DWORD PTR 1784[rax], edx
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR 1784[rax]
	test	eax, eax
	jns	.L416
	mov	rax, QWORD PTR -248[rbp]
	mov	DWORD PTR 1784[rax], 0
	mov	DWORD PTR -196[rbp], -1
	jmp	.L416
.L415:
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -248[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	codebook_decode_scalar_raw
	mov	DWORD PTR -196[rbp], eax
.L416:
	mov	rax, QWORD PTR -48[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L417
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 2104[rax]
	mov	eax, DWORD PTR -196[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -196[rbp], eax
.L417:
	cmp	DWORD PTR -196[rbp], -1
	je	.L433
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -196[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	edx, DWORD PTR -228[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*8]
	mov	rdx, QWORD PTR -88[rbp]
	add	rdx, rcx
	mov	rcx, QWORD PTR [rdx]
	mov	edx, DWORD PTR -200[rbp]
	movsx	rdx, edx
	sal	rdx, 3
	add	rdx, rcx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR [rdx], rax
.L413:
	add	DWORD PTR -228[rbp], 1
.L412:
	mov	eax, DWORD PTR -228[rbp]
	cmp	eax, DWORD PTR -260[rbp]
	jl	.L419
.L411:
	mov	DWORD PTR -232[rbp], 0
	jmp	.L420
.L425:
	mov	DWORD PTR -228[rbp], 0
	jmp	.L421
.L423:
	mov	eax, DWORD PTR -228[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -280[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L422
	mov	eax, DWORD PTR -228[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -200[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -232[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -112[rbp], eax
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -112[rbp]
	cdqe
	sal	rax, 4
	add	rdx, rax
	mov	eax, DWORD PTR -224[rbp]
	cdqe
	movzx	eax, WORD PTR [rdx+rax*2]
	cwde
	mov	DWORD PTR -108[rbp], eax
	cmp	DWORD PTR -108[rbp], 0
	js	.L422
	mov	eax, DWORD PTR -228[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -256[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -96[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	eax, DWORD PTR -204[rbp]
	imul	eax, edx
	add	eax, ecx
	mov	DWORD PTR -104[rbp], eax
	mov	rax, QWORD PTR -96[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -100[rbp], eax
	mov	rax, QWORD PTR -248[rbp]
	mov	rdx, QWORD PTR 184[rax]
	mov	eax, DWORD PTR -108[rbp]
	cdqe
	imul	rax, rax, 2120
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	mov	r8d, DWORD PTR -192[rbp]
	mov	edi, DWORD PTR -100[rbp]
	mov	ecx, DWORD PTR -104[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -248[rbp]
	mov	r9d, r8d
	mov	r8d, edi
	mov	rdi, rax
	call	residue_decode
	test	eax, eax
	je	.L434
.L422:
	add	DWORD PTR -228[rbp], 1
.L421:
	mov	eax, DWORD PTR -228[rbp]
	cmp	eax, DWORD PTR -260[rbp]
	jl	.L423
	add	DWORD PTR -232[rbp], 1
	add	DWORD PTR -204[rbp], 1
.L420:
	mov	eax, DWORD PTR -232[rbp]
	cmp	eax, DWORD PTR -184[rbp]
	jge	.L424
	mov	eax, DWORD PTR -204[rbp]
	cmp	eax, DWORD PTR -164[rbp]
	jl	.L425
.L424:
	add	DWORD PTR -200[rbp], 1
.L410:
	mov	eax, DWORD PTR -204[rbp]
	cmp	eax, DWORD PTR -164[rbp]
	jl	.L426
	add	DWORD PTR -224[rbp], 1
.L409:
	cmp	DWORD PTR -224[rbp], 7
	jle	.L427
	jmp	.L376
.L430:
	nop
	jmp	.L376
.L431:
	nop
	jmp	.L376
.L432:
	nop
	jmp	.L376
.L433:
	nop
	jmp	.L376
.L434:
	nop
.L376:
	mov	rax, QWORD PTR -248[rbp]
	mov	edx, DWORD PTR -160[rbp]
	mov	DWORD PTR 148[rax], edx
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L428
	call	__stack_chk_fail@PLT
.L428:
	lea	rsp, -16[rbp]
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE57:
	.size	decode_residue, .-decode_residue
	.section	.rodata
.LC25:
	.string	"(n & 3) == 0"
	.text
	.type	imdct_step3_iter0_loop, @function
imdct_step3_iter0_loop:
.LFB58:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	DWORD PTR -36[rbp], edi
	mov	QWORD PTR -48[rbp], rsi
	mov	DWORD PTR -40[rbp], edx
	mov	DWORD PTR -52[rbp], ecx
	mov	QWORD PTR -64[rbp], r8
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -36[rbp]
	and	eax, 3
	test	eax, eax
	je	.L436
	lea	rcx, __PRETTY_FUNCTION__.10[rip]
	mov	edx, 2399
	lea	rsi, .LC1[rip]
	lea	rdi, .LC25[rip]
	call	__assert_fail@PLT
.L436:
	mov	eax, DWORD PTR -36[rbp]
	sar	eax, 2
	mov	DWORD PTR -28[rbp], eax
	jmp	.L437
.L438:
	mov	rax, QWORD PTR -16[rbp]
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -24[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 4
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 4
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -20[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	movss	xmm0, DWORD PTR [rax]
	addss	xmm0, xmm1
	mov	rax, QWORD PTR -16[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 4
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 4
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 4
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -64[rbp]
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, DWORD PTR -24[rbp]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 4
	movss	xmm1, DWORD PTR [rax]
	mulss	xmm1, DWORD PTR -20[rbp]
	subss	xmm0, xmm1
	mov	rax, QWORD PTR -8[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -64[rbp]
	movss	xmm0, DWORD PTR [rax]
	movaps	xmm1, xmm0
	mulss	xmm1, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, DWORD PTR -24[rbp]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 4
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	add	QWORD PTR -64[rbp], 32
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 8
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 8
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -24[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 12
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 12
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -20[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 8
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 8
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 8
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 12
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 12
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 12
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -64[rbp]
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, DWORD PTR -24[rbp]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 4
	movss	xmm1, DWORD PTR [rax]
	mulss	xmm1, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 8
	subss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -64[rbp]
	movss	xmm0, DWORD PTR [rax]
	movaps	xmm1, xmm0
	mulss	xmm1, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, DWORD PTR -24[rbp]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 12
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	add	QWORD PTR -64[rbp], 32
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 16
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 16
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -24[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 20
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 20
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -20[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 16
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 16
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 16
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 20
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 20
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 20
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -64[rbp]
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, DWORD PTR -24[rbp]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 4
	movss	xmm1, DWORD PTR [rax]
	mulss	xmm1, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 16
	subss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -64[rbp]
	movss	xmm0, DWORD PTR [rax]
	movaps	xmm1, xmm0
	mulss	xmm1, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, DWORD PTR -24[rbp]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 20
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	add	QWORD PTR -64[rbp], 32
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 24
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 24
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -24[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 28
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 28
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -20[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 24
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 24
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 24
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 28
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 28
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 28
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -64[rbp]
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, DWORD PTR -24[rbp]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 4
	movss	xmm1, DWORD PTR [rax]
	mulss	xmm1, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 24
	subss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -64[rbp]
	movss	xmm0, DWORD PTR [rax]
	movaps	xmm1, xmm0
	mulss	xmm1, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, DWORD PTR -24[rbp]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 28
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	add	QWORD PTR -64[rbp], 32
	sub	QWORD PTR -16[rbp], 32
	sub	QWORD PTR -8[rbp], 32
	sub	DWORD PTR -28[rbp], 1
.L437:
	cmp	DWORD PTR -28[rbp], 0
	jg	.L438
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE58:
	.size	imdct_step3_iter0_loop, .-imdct_step3_iter0_loop
	.type	imdct_step3_inner_r_loop, @function
imdct_step3_inner_r_loop:
.LFB59:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -36[rbp], edi
	mov	QWORD PTR -48[rbp], rsi
	mov	DWORD PTR -40[rbp], edx
	mov	DWORD PTR -52[rbp], ecx
	mov	QWORD PTR -64[rbp], r8
	mov	DWORD PTR -56[rbp], r9d
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -36[rbp]
	sar	eax, 2
	mov	DWORD PTR -28[rbp], eax
	jmp	.L440
.L441:
	mov	rax, QWORD PTR -16[rbp]
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -24[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 4
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 4
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -20[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	movss	xmm0, DWORD PTR [rax]
	addss	xmm0, xmm1
	mov	rax, QWORD PTR -16[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 4
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 4
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 4
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -64[rbp]
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, DWORD PTR -24[rbp]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 4
	movss	xmm1, DWORD PTR [rax]
	mulss	xmm1, DWORD PTR -20[rbp]
	subss	xmm0, xmm1
	mov	rax, QWORD PTR -8[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -64[rbp]
	movss	xmm0, DWORD PTR [rax]
	movaps	xmm1, xmm0
	mulss	xmm1, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, DWORD PTR -24[rbp]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 4
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	sal	rax, 2
	add	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 8
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 8
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -24[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 12
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 12
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -20[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 8
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 8
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 8
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 12
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 12
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 12
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -64[rbp]
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, DWORD PTR -24[rbp]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 4
	movss	xmm1, DWORD PTR [rax]
	mulss	xmm1, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 8
	subss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -64[rbp]
	movss	xmm0, DWORD PTR [rax]
	movaps	xmm1, xmm0
	mulss	xmm1, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, DWORD PTR -24[rbp]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 12
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	sal	rax, 2
	add	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 16
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 16
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -24[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 20
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 20
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -20[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 16
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 16
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 16
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 20
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 20
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 20
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -64[rbp]
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, DWORD PTR -24[rbp]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 4
	movss	xmm1, DWORD PTR [rax]
	mulss	xmm1, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 16
	subss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -64[rbp]
	movss	xmm0, DWORD PTR [rax]
	movaps	xmm1, xmm0
	mulss	xmm1, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, DWORD PTR -24[rbp]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 20
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	sal	rax, 2
	add	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 24
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 24
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -24[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 28
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 28
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -20[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 24
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 24
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 24
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 28
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 28
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 28
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -64[rbp]
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, DWORD PTR -24[rbp]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 4
	movss	xmm1, DWORD PTR [rax]
	mulss	xmm1, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 24
	subss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -64[rbp]
	movss	xmm0, DWORD PTR [rax]
	movaps	xmm1, xmm0
	mulss	xmm1, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, DWORD PTR -24[rbp]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 28
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	sub	QWORD PTR -16[rbp], 32
	sub	QWORD PTR -8[rbp], 32
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	sal	rax, 2
	add	QWORD PTR -64[rbp], rax
	sub	DWORD PTR -28[rbp], 1
.L440:
	cmp	DWORD PTR -28[rbp], 0
	jg	.L441
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE59:
	.size	imdct_step3_inner_r_loop, .-imdct_step3_inner_r_loop
	.type	imdct_step3_inner_s_loop, @function
imdct_step3_inner_s_loop:
.LFB60:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -68[rbp], edi
	mov	QWORD PTR -80[rbp], rsi
	mov	DWORD PTR -72[rbp], edx
	mov	DWORD PTR -84[rbp], ecx
	mov	QWORD PTR -96[rbp], r8
	mov	DWORD PTR -88[rbp], r9d
	mov	rax, QWORD PTR -96[rbp]
	movss	xmm0, DWORD PTR [rax]
	movss	DWORD PTR -56[rbp], xmm0
	mov	rax, QWORD PTR -96[rbp]
	movss	xmm0, DWORD PTR 4[rax]
	movss	DWORD PTR -52[rbp], xmm0
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	movss	DWORD PTR -48[rbp], xmm0
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	movss	DWORD PTR -44[rbp], xmm0
	mov	eax, DWORD PTR -88[rbp]
	add	eax, eax
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	movss	DWORD PTR -40[rbp], xmm0
	mov	eax, DWORD PTR -88[rbp]
	add	eax, eax
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	movss	DWORD PTR -36[rbp], xmm0
	mov	edx, DWORD PTR -88[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	movss	DWORD PTR -32[rbp], xmm0
	mov	edx, DWORD PTR -88[rbp]
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	movss	DWORD PTR -28[rbp], xmm0
	mov	eax, DWORD PTR -72[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -68[rbp]
	mov	DWORD PTR -60[rbp], eax
	jmp	.L443
.L444:
	mov	rax, QWORD PTR -16[rbp]
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -24[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 4
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 4
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -20[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	movss	xmm0, DWORD PTR [rax]
	addss	xmm0, xmm1
	mov	rax, QWORD PTR -16[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 4
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 4
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 4
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	movss	xmm0, DWORD PTR -24[rbp]
	mulss	xmm0, DWORD PTR -56[rbp]
	movss	xmm1, DWORD PTR -20[rbp]
	mulss	xmm1, DWORD PTR -52[rbp]
	subss	xmm0, xmm1
	mov	rax, QWORD PTR -8[rbp]
	movss	DWORD PTR [rax], xmm0
	movss	xmm0, DWORD PTR -20[rbp]
	movaps	xmm1, xmm0
	mulss	xmm1, DWORD PTR -56[rbp]
	movss	xmm0, DWORD PTR -24[rbp]
	mulss	xmm0, DWORD PTR -52[rbp]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 4
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 8
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 8
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -24[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 12
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 12
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -20[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 8
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 8
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 8
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 12
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 12
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 12
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	movss	xmm0, DWORD PTR -24[rbp]
	mulss	xmm0, DWORD PTR -48[rbp]
	movss	xmm1, DWORD PTR -20[rbp]
	mulss	xmm1, DWORD PTR -44[rbp]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 8
	subss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	movss	xmm0, DWORD PTR -20[rbp]
	movaps	xmm1, xmm0
	mulss	xmm1, DWORD PTR -48[rbp]
	movss	xmm0, DWORD PTR -24[rbp]
	mulss	xmm0, DWORD PTR -44[rbp]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 12
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 16
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 16
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -24[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 20
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 20
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -20[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 16
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 16
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 16
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 20
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 20
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 20
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	movss	xmm0, DWORD PTR -24[rbp]
	mulss	xmm0, DWORD PTR -40[rbp]
	movss	xmm1, DWORD PTR -20[rbp]
	mulss	xmm1, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 16
	subss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	movss	xmm0, DWORD PTR -20[rbp]
	movaps	xmm1, xmm0
	mulss	xmm1, DWORD PTR -40[rbp]
	movss	xmm0, DWORD PTR -24[rbp]
	mulss	xmm0, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 20
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 24
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 24
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -24[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 28
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 28
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -20[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 24
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 24
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 24
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 28
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 28
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 28
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	movss	xmm0, DWORD PTR -24[rbp]
	mulss	xmm0, DWORD PTR -32[rbp]
	movss	xmm1, DWORD PTR -20[rbp]
	mulss	xmm1, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 24
	subss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	movss	xmm0, DWORD PTR -20[rbp]
	movaps	xmm1, xmm0
	mulss	xmm1, DWORD PTR -32[rbp]
	movss	xmm0, DWORD PTR -24[rbp]
	mulss	xmm0, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, 28
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	eax, DWORD PTR 16[rbp]
	cdqe
	sal	rax, 2
	neg	rax
	add	QWORD PTR -16[rbp], rax
	mov	eax, DWORD PTR 16[rbp]
	cdqe
	sal	rax, 2
	neg	rax
	add	QWORD PTR -8[rbp], rax
	sub	DWORD PTR -60[rbp], 1
.L443:
	cmp	DWORD PTR -60[rbp], 0
	jg	.L444
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE60:
	.size	imdct_step3_inner_s_loop, .-imdct_step3_inner_s_loop
	.type	iter_54, @function
iter_54:
.LFB61:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, 16
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -32[rbp], xmm0
	mov	rax, QWORD PTR -40[rbp]
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, 16
	movss	xmm0, DWORD PTR [rax]
	addss	xmm0, xmm1
	movss	DWORD PTR -28[rbp], xmm0
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, 8
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, 24
	movss	xmm0, DWORD PTR [rax]
	addss	xmm0, xmm1
	movss	DWORD PTR -24[rbp], xmm0
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, 8
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, 24
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -20[rbp], xmm0
	movss	xmm0, DWORD PTR -28[rbp]
	addss	xmm0, DWORD PTR -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, 8
	movss	xmm0, DWORD PTR -28[rbp]
	subss	xmm0, DWORD PTR -24[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, 12
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, 28
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -16[rbp], xmm0
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, 16
	movss	xmm0, DWORD PTR -32[rbp]
	addss	xmm0, DWORD PTR -16[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, 24
	movss	xmm0, DWORD PTR -32[rbp]
	subss	xmm0, DWORD PTR -16[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, 4
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, 20
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -12[rbp], xmm0
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, 4
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, 20
	movss	xmm0, DWORD PTR [rax]
	addss	xmm0, xmm1
	movss	DWORD PTR -8[rbp], xmm0
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, 12
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, 28
	movss	xmm0, DWORD PTR [rax]
	addss	xmm0, xmm1
	movss	DWORD PTR -4[rbp], xmm0
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, 4
	movss	xmm0, DWORD PTR -8[rbp]
	addss	xmm0, DWORD PTR -4[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, 12
	movss	xmm0, DWORD PTR -8[rbp]
	subss	xmm0, DWORD PTR -4[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, 20
	movss	xmm0, DWORD PTR -12[rbp]
	subss	xmm0, DWORD PTR -20[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -40[rbp]
	sub	rax, 28
	movss	xmm0, DWORD PTR -12[rbp]
	addss	xmm0, DWORD PTR -20[rbp]
	movss	DWORD PTR [rax], xmm0
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE61:
	.size	iter_54, .-iter_54
	.type	imdct_step3_inner_s_loop_ld654, @function
imdct_step3_inner_s_loop_ld654:
.LFB62:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	DWORD PTR -36[rbp], edi
	mov	QWORD PTR -48[rbp], rsi
	mov	DWORD PTR -40[rbp], edx
	mov	QWORD PTR -56[rbp], rcx
	mov	DWORD PTR -60[rbp], r8d
	mov	eax, DWORD PTR -60[rbp]
	sar	eax, 3
	mov	DWORD PTR -32[rbp], eax
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	movss	DWORD PTR -28[rbp], xmm0
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	eax, DWORD PTR -36[rbp]
	sal	eax, 4
	cdqe
	sal	rax, 2
	neg	rax
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	jmp	.L447
.L448:
	mov	rax, QWORD PTR -16[rbp]
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 32
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -24[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 4
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 36
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -20[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 32
	movss	xmm0, DWORD PTR [rax]
	addss	xmm0, xmm1
	mov	rax, QWORD PTR -16[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 4
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 36
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 4
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 32
	movss	xmm0, DWORD PTR -24[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 36
	movss	xmm0, DWORD PTR -20[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 8
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 40
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -24[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 12
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 44
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -20[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 8
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 40
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 8
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 12
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 44
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 12
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	movss	xmm0, DWORD PTR -24[rbp]
	addss	xmm0, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 40
	mulss	xmm0, DWORD PTR -28[rbp]
	movss	DWORD PTR [rax], xmm0
	movss	xmm0, DWORD PTR -20[rbp]
	subss	xmm0, DWORD PTR -24[rbp]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 44
	mulss	xmm0, DWORD PTR -28[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 48
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 16
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -24[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 20
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 52
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -20[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 16
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 48
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 16
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 20
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 52
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 20
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 48
	movss	xmm0, DWORD PTR -20[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 52
	movss	xmm0, DWORD PTR -24[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 56
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 24
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -24[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 28
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 60
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -20[rbp], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 24
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 56
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 24
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 28
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 60
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 28
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	movss	xmm0, DWORD PTR -24[rbp]
	addss	xmm0, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 56
	mulss	xmm0, DWORD PTR -28[rbp]
	movss	DWORD PTR [rax], xmm0
	movss	xmm0, DWORD PTR -24[rbp]
	subss	xmm0, DWORD PTR -20[rbp]
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 60
	mulss	xmm0, DWORD PTR -28[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	iter_54
	mov	rax, QWORD PTR -16[rbp]
	sub	rax, 32
	mov	rdi, rax
	call	iter_54
	sub	QWORD PTR -16[rbp], 64
.L447:
	mov	rax, QWORD PTR -16[rbp]
	cmp	rax, QWORD PTR -8[rbp]
	ja	.L448
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE62:
	.size	imdct_step3_inner_s_loop_ld654, .-imdct_step3_inner_s_loop_ld654
	.section	.rodata
.LC26:
	.string	"v == buf2"
	.text
	.type	inverse_mdct, @function
inverse_mdct:
.LFB63:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 368
	mov	QWORD PTR -344[rbp], rdi
	mov	DWORD PTR -348[rbp], esi
	mov	QWORD PTR -360[rbp], rdx
	mov	DWORD PTR -352[rbp], ecx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR -348[rbp]
	sar	eax
	mov	DWORD PTR -320[rbp], eax
	mov	eax, DWORD PTR -348[rbp]
	sar	eax, 2
	mov	DWORD PTR -316[rbp], eax
	mov	eax, DWORD PTR -348[rbp]
	sar	eax, 3
	mov	DWORD PTR -312[rbp], eax
	mov	rax, QWORD PTR -360[rbp]
	mov	eax, DWORD PTR 148[rax]
	mov	DWORD PTR -308[rbp], eax
	mov	rax, QWORD PTR -360[rbp]
	mov	rax, QWORD PTR 128[rax]
	test	rax, rax
	je	.L450
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	sal	eax, 2
	mov	edx, eax
	mov	rax, QWORD PTR -360[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_temp_malloc
	jmp	.L451
.L450:
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	sal	rax, 2
	lea	rdx, 8[rax]
	mov	eax, 16
	sub	rax, 1
	add	rax, rdx
	mov	esi, 16
	mov	edx, 0
	div	rsi
	imul	rax, rax, 16
	mov	rcx, rax
	and	rcx, -4096
	mov	rdx, rsp
	sub	rdx, rcx
.L452:
	cmp	rsp, rdx
	je	.L453
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L452
.L453:
	mov	rdx, rax
	and	edx, 4095
	sub	rsp, rdx
	mov	rdx, rax
	and	edx, 4095
	test	rdx, rdx
	je	.L454
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L454:
	mov	rax, rsp
	add	rax, 15
	shr	rax, 4
	sal	rax, 4
.L451:
	mov	QWORD PTR -48[rbp], rax
	mov	QWORD PTR -40[rbp], 0
	mov	QWORD PTR -32[rbp], 0
	mov	rax, QWORD PTR -360[rbp]
	mov	edx, DWORD PTR -352[rbp]
	movsx	rdx, edx
	add	rdx, 176
	mov	rax, QWORD PTR 8[rax+rdx*8]
	mov	QWORD PTR -24[rbp], rax
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	sal	rax, 2
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	QWORD PTR -216[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -200[rbp], rax
	mov	rax, QWORD PTR -344[rbp]
	mov	QWORD PTR -208[rbp], rax
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -344[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	jmp	.L455
.L456:
	mov	rax, QWORD PTR -208[rbp]
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -200[rbp]
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, xmm1
	mov	rax, QWORD PTR -208[rbp]
	add	rax, 8
	movss	xmm2, DWORD PTR [rax]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 4
	movss	xmm1, DWORD PTR [rax]
	mulss	xmm1, xmm2
	mov	rax, QWORD PTR -216[rbp]
	add	rax, 4
	subss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -208[rbp]
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm1, xmm0
	mov	rax, QWORD PTR -208[rbp]
	add	rax, 8
	movss	xmm2, DWORD PTR [rax]
	mov	rax, QWORD PTR -200[rbp]
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, xmm2
	addss	xmm0, xmm1
	mov	rax, QWORD PTR -216[rbp]
	movss	DWORD PTR [rax], xmm0
	sub	QWORD PTR -216[rbp], 8
	add	QWORD PTR -200[rbp], 8
	add	QWORD PTR -208[rbp], 16
.L455:
	mov	rax, QWORD PTR -208[rbp]
	cmp	rax, QWORD PTR -16[rbp]
	jne	.L456
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	sal	rax, 2
	lea	rdx, -12[rax]
	mov	rax, QWORD PTR -344[rbp]
	add	rax, rdx
	mov	QWORD PTR -208[rbp], rax
	jmp	.L457
.L458:
	mov	rax, QWORD PTR -208[rbp]
	add	rax, 8
	movss	xmm0, DWORD PTR [rax]
	movss	xmm1, DWORD PTR .LC13[rip]
	xorps	xmm1, xmm0
	mov	rax, QWORD PTR -200[rbp]
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm1, xmm0
	mov	rax, QWORD PTR -208[rbp]
	movss	xmm2, DWORD PTR [rax]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, xmm2
	mov	rax, QWORD PTR -216[rbp]
	add	rax, 4
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -208[rbp]
	add	rax, 8
	movss	xmm0, DWORD PTR [rax]
	movss	xmm1, DWORD PTR .LC13[rip]
	xorps	xmm1, xmm0
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm1, xmm0
	mov	rax, QWORD PTR -208[rbp]
	movss	xmm0, DWORD PTR [rax]
	movss	xmm2, DWORD PTR .LC13[rip]
	xorps	xmm2, xmm0
	mov	rax, QWORD PTR -200[rbp]
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, xmm2
	addss	xmm0, xmm1
	mov	rax, QWORD PTR -216[rbp]
	movss	DWORD PTR [rax], xmm0
	sub	QWORD PTR -216[rbp], 8
	add	QWORD PTR -200[rbp], 8
	sub	QWORD PTR -208[rbp], 16
.L457:
	mov	rax, QWORD PTR -216[rbp]
	cmp	rax, QWORD PTR -48[rbp]
	jnb	.L458
	mov	rax, QWORD PTR -344[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	sal	rax, 2
	lea	rdx, -32[rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	QWORD PTR -192[rbp], rax
	mov	eax, DWORD PTR -316[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	QWORD PTR -168[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR -160[rbp], rax
	mov	eax, DWORD PTR -316[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	QWORD PTR -184[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -176[rbp], rax
	jmp	.L459
.L460:
	mov	rax, QWORD PTR -168[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, 4
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -224[rbp], xmm0
	mov	rax, QWORD PTR -168[rbp]
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -160[rbp]
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -220[rbp], xmm0
	mov	rax, QWORD PTR -168[rbp]
	add	rax, 4
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, 4
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -168[rbp]
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -160[rbp]
	movss	xmm0, DWORD PTR [rax]
	addss	xmm0, xmm1
	mov	rax, QWORD PTR -184[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 16
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, DWORD PTR -224[rbp]
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 20
	movss	xmm1, DWORD PTR [rax]
	mulss	xmm1, DWORD PTR -220[rbp]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, 4
	subss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 16
	movss	xmm0, DWORD PTR [rax]
	movaps	xmm1, xmm0
	mulss	xmm1, DWORD PTR -220[rbp]
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 20
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, DWORD PTR -224[rbp]
	addss	xmm0, xmm1
	mov	rax, QWORD PTR -176[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -168[rbp]
	add	rax, 12
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, 12
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -224[rbp], xmm0
	mov	rax, QWORD PTR -168[rbp]
	add	rax, 8
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, 8
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -220[rbp], xmm0
	mov	rax, QWORD PTR -168[rbp]
	add	rax, 12
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, 12
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, 12
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -168[rbp]
	add	rax, 8
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, 8
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, 8
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -192[rbp]
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, DWORD PTR -224[rbp]
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 4
	movss	xmm1, DWORD PTR [rax]
	mulss	xmm1, DWORD PTR -220[rbp]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, 12
	subss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -192[rbp]
	movss	xmm0, DWORD PTR [rax]
	movaps	xmm1, xmm0
	mulss	xmm1, DWORD PTR -220[rbp]
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, DWORD PTR -224[rbp]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, 8
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	sub	QWORD PTR -192[rbp], 32
	add	QWORD PTR -184[rbp], 16
	add	QWORD PTR -176[rbp], 16
	add	QWORD PTR -168[rbp], 16
	add	QWORD PTR -160[rbp], 16
.L459:
	mov	rax, QWORD PTR -192[rbp]
	cmp	rax, QWORD PTR -24[rbp]
	jnb	.L460
	mov	eax, DWORD PTR -348[rbp]
	mov	edi, eax
	call	ilog
	sub	eax, 1
	mov	DWORD PTR -304[rbp], eax
	mov	eax, DWORD PTR -348[rbp]
	sar	eax, 3
	neg	eax
	mov	ecx, eax
	mov	eax, DWORD PTR -320[rbp]
	lea	edx, -1[rax]
	mov	eax, DWORD PTR -348[rbp]
	sar	eax, 4
	mov	edi, eax
	mov	rsi, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	r8, rsi
	mov	rsi, rax
	call	imdct_step3_iter0_loop
	mov	eax, DWORD PTR -348[rbp]
	sar	eax, 3
	neg	eax
	mov	ecx, eax
	mov	eax, DWORD PTR -320[rbp]
	sub	eax, 1
	sub	eax, DWORD PTR -316[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -348[rbp]
	sar	eax, 4
	mov	edi, eax
	mov	rsi, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	r8, rsi
	mov	rsi, rax
	call	imdct_step3_iter0_loop
	mov	eax, DWORD PTR -348[rbp]
	sar	eax, 4
	neg	eax
	mov	ecx, eax
	mov	eax, DWORD PTR -320[rbp]
	lea	edx, -1[rax]
	mov	eax, DWORD PTR -348[rbp]
	sar	eax, 5
	mov	edi, eax
	mov	rsi, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	r9d, 16
	mov	r8, rsi
	mov	rsi, rax
	call	imdct_step3_inner_r_loop
	mov	eax, DWORD PTR -348[rbp]
	sar	eax, 4
	neg	eax
	mov	ecx, eax
	mov	eax, DWORD PTR -320[rbp]
	sub	eax, 1
	sub	eax, DWORD PTR -312[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -348[rbp]
	sar	eax, 5
	mov	edi, eax
	mov	rsi, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	r9d, 16
	mov	r8, rsi
	mov	rsi, rax
	call	imdct_step3_inner_r_loop
	mov	eax, DWORD PTR -348[rbp]
	sar	eax, 4
	neg	eax
	mov	ecx, eax
	mov	eax, DWORD PTR -320[rbp]
	lea	edx, -1[rax]
	mov	eax, DWORD PTR -312[rbp]
	add	eax, eax
	sub	edx, eax
	mov	eax, DWORD PTR -348[rbp]
	sar	eax, 5
	mov	edi, eax
	mov	rsi, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	r9d, 16
	mov	r8, rsi
	mov	rsi, rax
	call	imdct_step3_inner_r_loop
	mov	eax, DWORD PTR -348[rbp]
	sar	eax, 4
	neg	eax
	mov	ecx, eax
	mov	eax, DWORD PTR -320[rbp]
	lea	edx, -1[rax]
	mov	eax, DWORD PTR -312[rbp]
	mov	edi, eax
	lea	esi, 0[0+rax*4]
	mov	eax, edi
	sub	eax, esi
	add	edx, eax
	mov	eax, DWORD PTR -348[rbp]
	sar	eax, 5
	mov	edi, eax
	mov	rsi, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	r9d, 16
	mov	r8, rsi
	mov	rsi, rax
	call	imdct_step3_inner_r_loop
	mov	DWORD PTR -336[rbp], 2
	jmp	.L461
.L464:
	mov	eax, DWORD PTR -336[rbp]
	add	eax, 2
	mov	edx, DWORD PTR -348[rbp]
	mov	ecx, eax
	sar	edx, cl
	mov	eax, edx
	mov	DWORD PTR -236[rbp], eax
	mov	eax, DWORD PTR -236[rbp]
	sar	eax
	mov	DWORD PTR -232[rbp], eax
	mov	eax, DWORD PTR -336[rbp]
	add	eax, 1
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	mov	DWORD PTR -228[rbp], eax
	mov	DWORD PTR -332[rbp], 0
	jmp	.L462
.L463:
	mov	eax, DWORD PTR -336[rbp]
	add	eax, 3
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	r8d, edx
	mov	eax, DWORD PTR -232[rbp]
	neg	eax
	mov	esi, eax
	mov	eax, DWORD PTR -320[rbp]
	lea	edx, -1[rax]
	mov	eax, DWORD PTR -236[rbp]
	imul	eax, DWORD PTR -332[rbp]
	sub	edx, eax
	mov	eax, DWORD PTR -336[rbp]
	add	eax, 4
	mov	edi, DWORD PTR -348[rbp]
	mov	ecx, eax
	sar	edi, cl
	mov	rcx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	r9d, r8d
	mov	r8, rcx
	mov	ecx, esi
	mov	rsi, rax
	call	imdct_step3_inner_r_loop
	add	DWORD PTR -332[rbp], 1
.L462:
	mov	eax, DWORD PTR -332[rbp]
	cmp	eax, DWORD PTR -228[rbp]
	jl	.L463
	add	DWORD PTR -336[rbp], 1
.L461:
	mov	eax, DWORD PTR -304[rbp]
	sub	eax, 3
	sar	eax
	cmp	DWORD PTR -336[rbp], eax
	jl	.L464
	jmp	.L465
.L468:
	mov	eax, DWORD PTR -336[rbp]
	add	eax, 2
	mov	edx, DWORD PTR -348[rbp]
	mov	ecx, eax
	sar	edx, cl
	mov	eax, edx
	mov	DWORD PTR -256[rbp], eax
	mov	eax, DWORD PTR -336[rbp]
	add	eax, 3
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	mov	DWORD PTR -252[rbp], eax
	mov	eax, DWORD PTR -256[rbp]
	sar	eax
	mov	DWORD PTR -248[rbp], eax
	mov	eax, DWORD PTR -336[rbp]
	add	eax, 6
	mov	edx, DWORD PTR -348[rbp]
	mov	ecx, eax
	sar	edx, cl
	mov	eax, edx
	mov	DWORD PTR -244[rbp], eax
	mov	eax, DWORD PTR -336[rbp]
	add	eax, 1
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	mov	DWORD PTR -240[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -152[rbp], rax
	mov	eax, DWORD PTR -320[rbp]
	sub	eax, 1
	mov	DWORD PTR -324[rbp], eax
	mov	eax, DWORD PTR -244[rbp]
	mov	DWORD PTR -328[rbp], eax
	jmp	.L466
.L467:
	mov	eax, DWORD PTR -248[rbp]
	neg	eax
	mov	ecx, eax
	mov	r9d, DWORD PTR -252[rbp]
	mov	r8, QWORD PTR -152[rbp]
	mov	edx, DWORD PTR -324[rbp]
	mov	rsi, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR -240[rbp]
	sub	rsp, 8
	mov	edi, DWORD PTR -256[rbp]
	push	rdi
	mov	edi, eax
	call	imdct_step3_inner_s_loop
	add	rsp, 16
	mov	eax, DWORD PTR -252[rbp]
	sal	eax, 2
	cdqe
	sal	rax, 2
	add	QWORD PTR -152[rbp], rax
	sub	DWORD PTR -324[rbp], 8
	sub	DWORD PTR -328[rbp], 1
.L466:
	cmp	DWORD PTR -328[rbp], 0
	jg	.L467
	add	DWORD PTR -336[rbp], 1
.L465:
	mov	eax, DWORD PTR -304[rbp]
	sub	eax, 6
	cmp	DWORD PTR -336[rbp], eax
	jl	.L468
	mov	eax, DWORD PTR -320[rbp]
	lea	esi, -1[rax]
	mov	eax, DWORD PTR -348[rbp]
	sar	eax, 5
	mov	edi, eax
	mov	ecx, DWORD PTR -348[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	r8d, ecx
	mov	rcx, rdx
	mov	edx, esi
	mov	rsi, rax
	call	imdct_step3_inner_s_loop_ld654
	mov	rax, QWORD PTR -360[rbp]
	mov	edx, DWORD PTR -352[rbp]
	movsx	rdx, edx
	add	rdx, 184
	mov	rax, QWORD PTR 8[rax+rdx*8]
	mov	QWORD PTR -144[rbp], rax
	mov	eax, DWORD PTR -316[rbp]
	cdqe
	sal	rax, 2
	lea	rdx, -16[rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	QWORD PTR -136[rbp], rax
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	sal	rax, 2
	lea	rdx, -16[rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	QWORD PTR -128[rbp], rax
	jmp	.L469
.L470:
	mov	rax, QWORD PTR -144[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	mov	DWORD PTR -260[rbp], eax
	mov	eax, DWORD PTR -260[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 12
	movss	xmm0, DWORD PTR [rdx]
	movss	DWORD PTR [rax], xmm0
	mov	eax, DWORD PTR -260[rbp]
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 8
	movss	xmm0, DWORD PTR [rdx]
	movss	DWORD PTR [rax], xmm0
	mov	eax, DWORD PTR -260[rbp]
	cdqe
	add	rax, 2
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -136[rbp]
	add	rax, 12
	movss	xmm0, DWORD PTR [rdx]
	movss	DWORD PTR [rax], xmm0
	mov	eax, DWORD PTR -260[rbp]
	cdqe
	add	rax, 3
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -136[rbp]
	add	rax, 8
	movss	xmm0, DWORD PTR [rdx]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -144[rbp]
	add	rax, 2
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	mov	DWORD PTR -260[rbp], eax
	mov	eax, DWORD PTR -260[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR [rdx]
	movss	DWORD PTR [rax], xmm0
	mov	eax, DWORD PTR -260[rbp]
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -128[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	eax, DWORD PTR -260[rbp]
	cdqe
	add	rax, 2
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -136[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR [rdx]
	movss	DWORD PTR [rax], xmm0
	mov	eax, DWORD PTR -260[rbp]
	cdqe
	add	rax, 3
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -136[rbp]
	movss	DWORD PTR [rax], xmm0
	sub	QWORD PTR -136[rbp], 16
	sub	QWORD PTR -128[rbp], 16
	add	QWORD PTR -144[rbp], 4
.L469:
	mov	rax, QWORD PTR -136[rbp]
	cmp	rax, QWORD PTR -32[rbp]
	jnb	.L470
	mov	rax, QWORD PTR -32[rbp]
	cmp	rax, QWORD PTR -48[rbp]
	je	.L471
	lea	rcx, __PRETTY_FUNCTION__.9[rip]
	mov	edx, 2802
	lea	rsi, .LC1[rip]
	lea	rdi, .LC26[rip]
	call	__assert_fail@PLT
.L471:
	mov	rax, QWORD PTR -360[rbp]
	mov	edx, DWORD PTR -352[rbp]
	movsx	rdx, edx
	add	rdx, 180
	mov	rax, QWORD PTR 8[rax+rdx*8]
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR -112[rbp], rax
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	sal	rax, 2
	lea	rdx, -16[rax]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	QWORD PTR -104[rbp], rax
	jmp	.L472
.L473:
	mov	rax, QWORD PTR -112[rbp]
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 8
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -284[rbp], xmm0
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 4
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 12
	movss	xmm0, DWORD PTR [rax]
	addss	xmm0, xmm1
	movss	DWORD PTR -280[rbp], xmm0
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR [rax]
	movaps	xmm1, xmm0
	mulss	xmm1, DWORD PTR -284[rbp]
	mov	rax, QWORD PTR -120[rbp]
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, DWORD PTR -280[rbp]
	addss	xmm0, xmm1
	movss	DWORD PTR -276[rbp], xmm0
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, DWORD PTR -280[rbp]
	mov	rax, QWORD PTR -120[rbp]
	movss	xmm1, DWORD PTR [rax]
	mulss	xmm1, DWORD PTR -284[rbp]
	subss	xmm0, xmm1
	movss	DWORD PTR -272[rbp], xmm0
	mov	rax, QWORD PTR -112[rbp]
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 8
	movss	xmm0, DWORD PTR [rax]
	addss	xmm0, xmm1
	movss	DWORD PTR -268[rbp], xmm0
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 12
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -264[rbp], xmm0
	movss	xmm0, DWORD PTR -268[rbp]
	addss	xmm0, DWORD PTR -276[rbp]
	mov	rax, QWORD PTR -112[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR -264[rbp]
	addss	xmm0, DWORD PTR -272[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 8
	movss	xmm0, DWORD PTR -268[rbp]
	subss	xmm0, DWORD PTR -276[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 12
	movss	xmm0, DWORD PTR -272[rbp]
	subss	xmm0, DWORD PTR -264[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 8
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -104[rbp]
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -284[rbp], xmm0
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 12
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR [rax]
	addss	xmm0, xmm1
	movss	DWORD PTR -280[rbp], xmm0
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 12
	movss	xmm0, DWORD PTR [rax]
	movaps	xmm1, xmm0
	mulss	xmm1, DWORD PTR -284[rbp]
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 8
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, DWORD PTR -280[rbp]
	addss	xmm0, xmm1
	movss	DWORD PTR -276[rbp], xmm0
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 12
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, DWORD PTR -280[rbp]
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 8
	movss	xmm1, DWORD PTR [rax]
	mulss	xmm1, DWORD PTR -284[rbp]
	subss	xmm0, xmm1
	movss	DWORD PTR -272[rbp], xmm0
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 8
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -104[rbp]
	movss	xmm0, DWORD PTR [rax]
	addss	xmm0, xmm1
	movss	DWORD PTR -268[rbp], xmm0
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 12
	movss	xmm0, DWORD PTR [rax]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 4
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -264[rbp], xmm0
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 8
	movss	xmm0, DWORD PTR -268[rbp]
	addss	xmm0, DWORD PTR -276[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 12
	movss	xmm0, DWORD PTR -264[rbp]
	addss	xmm0, DWORD PTR -272[rbp]
	movss	DWORD PTR [rax], xmm0
	movss	xmm0, DWORD PTR -268[rbp]
	subss	xmm0, DWORD PTR -276[rbp]
	mov	rax, QWORD PTR -104[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR -272[rbp]
	subss	xmm0, DWORD PTR -264[rbp]
	movss	DWORD PTR [rax], xmm0
	add	QWORD PTR -120[rbp], 16
	add	QWORD PTR -112[rbp], 16
	sub	QWORD PTR -104[rbp], 16
.L472:
	mov	rax, QWORD PTR -112[rbp]
	cmp	rax, QWORD PTR -104[rbp]
	jb	.L473
	mov	rax, QWORD PTR -360[rbp]
	mov	edx, DWORD PTR -352[rbp]
	movsx	rdx, edx
	add	rdx, 178
	mov	rdx, QWORD PTR 8[rax+rdx*8]
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	sal	rax, 2
	sub	rax, 32
	add	rax, rdx
	mov	QWORD PTR -64[rbp], rax
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	sal	rax, 2
	lea	rdx, -32[rax]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -344[rbp]
	mov	QWORD PTR -96[rbp], rax
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	sal	rax, 2
	lea	rdx, -16[rax]
	mov	rax, QWORD PTR -344[rbp]
	add	rax, rdx
	mov	QWORD PTR -88[rbp], rax
	mov	eax, DWORD PTR -320[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -344[rbp]
	add	rax, rdx
	mov	QWORD PTR -80[rbp], rax
	mov	eax, DWORD PTR -348[rbp]
	cdqe
	sal	rax, 2
	lea	rdx, -16[rax]
	mov	rax, QWORD PTR -344[rbp]
	add	rax, rdx
	mov	QWORD PTR -72[rbp], rax
	jmp	.L474
.L475:
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 24
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 28
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, xmm1
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 28
	movss	xmm2, DWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 24
	movss	xmm1, DWORD PTR [rax]
	mulss	xmm1, xmm2
	subss	xmm0, xmm1
	movss	DWORD PTR -300[rbp], xmm0
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 24
	movss	xmm0, DWORD PTR [rax]
	movss	xmm1, DWORD PTR .LC13[rip]
	xorps	xmm1, xmm0
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 24
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, xmm1
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 28
	movss	xmm2, DWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 28
	movss	xmm1, DWORD PTR [rax]
	mulss	xmm1, xmm2
	subss	xmm0, xmm1
	movss	DWORD PTR -296[rbp], xmm0
	mov	rax, QWORD PTR -96[rbp]
	movss	xmm0, DWORD PTR -300[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -88[rbp]
	add	rax, 12
	movss	xmm0, DWORD PTR -300[rbp]
	movss	xmm1, DWORD PTR .LC13[rip]
	xorps	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -80[rbp]
	movss	xmm0, DWORD PTR -296[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 12
	movss	xmm0, DWORD PTR -296[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 16
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 20
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, xmm1
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 20
	movss	xmm2, DWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 16
	movss	xmm1, DWORD PTR [rax]
	mulss	xmm1, xmm2
	subss	xmm0, xmm1
	movss	DWORD PTR -292[rbp], xmm0
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 16
	movss	xmm0, DWORD PTR [rax]
	movss	xmm1, DWORD PTR .LC13[rip]
	xorps	xmm1, xmm0
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 16
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, xmm1
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 20
	movss	xmm2, DWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 20
	movss	xmm1, DWORD PTR [rax]
	mulss	xmm1, xmm2
	subss	xmm0, xmm1
	movss	DWORD PTR -288[rbp], xmm0
	mov	rax, QWORD PTR -96[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR -292[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -88[rbp]
	add	rax, 8
	movss	xmm0, DWORD PTR -292[rbp]
	movss	xmm1, DWORD PTR .LC13[rip]
	xorps	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR -288[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 8
	movss	xmm0, DWORD PTR -288[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 8
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 12
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, xmm1
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 12
	movss	xmm2, DWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 8
	movss	xmm1, DWORD PTR [rax]
	mulss	xmm1, xmm2
	subss	xmm0, xmm1
	movss	DWORD PTR -300[rbp], xmm0
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 8
	movss	xmm0, DWORD PTR [rax]
	movss	xmm1, DWORD PTR .LC13[rip]
	xorps	xmm1, xmm0
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 8
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, xmm1
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 12
	movss	xmm2, DWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 12
	movss	xmm1, DWORD PTR [rax]
	mulss	xmm1, xmm2
	subss	xmm0, xmm1
	movss	DWORD PTR -296[rbp], xmm0
	mov	rax, QWORD PTR -96[rbp]
	add	rax, 8
	movss	xmm0, DWORD PTR -300[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -88[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR -300[rbp]
	movss	xmm1, DWORD PTR .LC13[rip]
	xorps	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 8
	movss	xmm0, DWORD PTR -296[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR -296[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -56[rbp]
	movss	xmm1, DWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 4
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, xmm1
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 4
	movss	xmm2, DWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	movss	xmm1, DWORD PTR [rax]
	mulss	xmm1, xmm2
	subss	xmm0, xmm1
	movss	DWORD PTR -292[rbp], xmm0
	mov	rax, QWORD PTR -56[rbp]
	movss	xmm0, DWORD PTR [rax]
	movss	xmm1, DWORD PTR .LC13[rip]
	xorps	xmm1, xmm0
	mov	rax, QWORD PTR -64[rbp]
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, xmm1
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 4
	movss	xmm2, DWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 4
	movss	xmm1, DWORD PTR [rax]
	mulss	xmm1, xmm2
	subss	xmm0, xmm1
	movss	DWORD PTR -288[rbp], xmm0
	mov	rax, QWORD PTR -96[rbp]
	add	rax, 12
	movss	xmm0, DWORD PTR -292[rbp]
	movss	DWORD PTR [rax], xmm0
	movss	xmm0, DWORD PTR -292[rbp]
	movss	xmm1, DWORD PTR .LC13[rip]
	xorps	xmm0, xmm1
	mov	rax, QWORD PTR -88[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 12
	movss	xmm0, DWORD PTR -288[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -72[rbp]
	movss	xmm0, DWORD PTR -288[rbp]
	movss	DWORD PTR [rax], xmm0
	sub	QWORD PTR -64[rbp], 32
	sub	QWORD PTR -56[rbp], 32
	add	QWORD PTR -96[rbp], 16
	add	QWORD PTR -80[rbp], 16
	sub	QWORD PTR -88[rbp], 16
	sub	QWORD PTR -72[rbp], 16
.L474:
	mov	rax, QWORD PTR -56[rbp]
	cmp	rax, QWORD PTR -32[rbp]
	jnb	.L475
	mov	rax, QWORD PTR -360[rbp]
	mov	edx, DWORD PTR -308[rbp]
	mov	DWORD PTR 148[rax], edx
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L476
	call	__stack_chk_fail@PLT
.L476:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE63:
	.size	inverse_mdct, .-inverse_mdct
	.type	get_window, @function
get_window:
.LFB64:
	.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 -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	sal	DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 168[rax]
	cmp	DWORD PTR -12[rbp], eax
	jne	.L478
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 1464[rax]
	jmp	.L479
.L478:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 172[rax]
	cmp	DWORD PTR -12[rbp], eax
	jne	.L480
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 1472[rax]
	jmp	.L479
.L480:
	mov	eax, 0
.L479:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE64:
	.size	get_window, .-get_window
	.type	do_floor, @function
do_floor:
.LFB65:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 88
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	DWORD PTR -68[rbp], edx
	mov	DWORD PTR -72[rbp], ecx
	mov	QWORD PTR -80[rbp], r8
	mov	QWORD PTR -88[rbp], r9
	mov	eax, DWORD PTR -72[rbp]
	sar	eax
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -68[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	movzx	eax, BYTE PTR 2[rax]
	movzx	eax, al
	mov	DWORD PTR -24[rbp], eax
	mov	rdx, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	movzx	eax, BYTE PTR 17[rdx+rax]
	movzx	eax, al
	mov	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -20[rbp]
	movsx	rdx, edx
	add	rdx, 96
	movzx	eax, WORD PTR 4[rax+rdx*2]
	test	ax, ax
	jne	.L482
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 21
	mov	rdi, rax
	call	error
	jmp	.L483
.L482:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 328[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	imul	rax, rax, 1596
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -36[rbp], 0
	mov	rax, QWORD PTR -88[rbp]
	movzx	eax, WORD PTR [rax]
	movsx	edx, ax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 1588[rax]
	movzx	eax, al
	imul	eax, edx
	mov	DWORD PTR -32[rbp], eax
	mov	DWORD PTR -40[rbp], 1
	jmp	.L484
.L487:
	mov	rdx, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	movzx	eax, BYTE PTR 838[rdx+rax]
	movzx	eax, al
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	test	ax, ax
	js	.L485
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movsx	edx, ax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 1588[rax]
	movzx	eax, al
	imul	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -44[rbp]
	movsx	rdx, edx
	add	rdx, 168
	movzx	eax, WORD PTR 2[rax+rdx*2]
	movzx	eax, ax
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -12[rbp]
	je	.L486
	mov	r8d, DWORD PTR -28[rbp]
	mov	edi, DWORD PTR -16[rbp]
	mov	ecx, DWORD PTR -12[rbp]
	mov	edx, DWORD PTR -32[rbp]
	mov	esi, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -80[rbp]
	mov	r9d, r8d
	mov	r8d, edi
	mov	rdi, rax
	call	draw_line
.L486:
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR -32[rbp], eax
.L485:
	add	DWORD PTR -40[rbp], 1
.L484:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 1592[rax]
	cmp	DWORD PTR -40[rbp], eax
	jl	.L487
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	jge	.L488
	mov	eax, DWORD PTR -36[rbp]
	mov	DWORD PTR -44[rbp], eax
	jmp	.L489
.L490:
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, inverse_db_table[rip]
	movss	xmm0, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mulss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -44[rbp], 1
.L489:
	mov	eax, DWORD PTR -44[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	jl	.L490
.L488:
	mov	eax, 1
.L483:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE65:
	.size	do_floor, .-do_floor
	.section	.rodata
	.align 8
.LC27:
	.string	"f->alloc.alloc_buffer_length_in_bytes == f->temp_offset"
	.text
	.type	vorbis_decode_initial, @function
vorbis_decode_initial:
.LFB66:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	QWORD PTR -64[rbp], rcx
	mov	QWORD PTR -72[rbp], r8
	mov	QWORD PTR -80[rbp], r9
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1896[rax], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 1896[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1892[rax], edx
.L492:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 152[rax]
	test	eax, eax
	je	.L493
	mov	eax, 0
	jmp	.L494
.L493:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	maybe_start_packet
	test	eax, eax
	jne	.L495
	mov	eax, 0
	jmp	.L494
.L495:
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	get_bits
	test	eax, eax
	je	.L496
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 92[rax]
	test	al, al
	je	.L508
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 35
	mov	rdi, rax
	call	error
	jmp	.L494
.L508:
	nop
.L498:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	get8_packet
	cmp	eax, -1
	jne	.L498
	jmp	.L492
.L496:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 128[rax]
	test	rax, rax
	je	.L499
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 136[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 148[rax]
	cmp	edx, eax
	je	.L499
	lea	rcx, __PRETTY_FUNCTION__.8[rip]
	mov	edx, 3128
	lea	rsi, .LC1[rip]
	lea	rdi, .LC27[rip]
	call	__assert_fail@PLT
.L499:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 496[rax]
	sub	eax, 1
	mov	edi, eax
	call	ilog
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	get_bits
	mov	DWORD PTR -16[rbp], eax
	cmp	DWORD PTR -16[rbp], -1
	jne	.L500
	mov	eax, 0
	jmp	.L494
.L500:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 496[rax]
	cmp	DWORD PTR -16[rbp], eax
	jl	.L501
	mov	eax, 0
	jmp	.L494
.L501:
	mov	rax, QWORD PTR -80[rbp]
	mov	edx, DWORD PTR -16[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -40[rbp]
	lea	rcx, 500[rax]
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	add	rax, rcx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L502
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 172[rax]
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	get_bits
	mov	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	get_bits
	mov	DWORD PTR -20[rbp], eax
	jmp	.L503
.L502:
	mov	DWORD PTR -20[rbp], 0
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 168[rax]
	mov	DWORD PTR -28[rbp], eax
.L503:
	mov	eax, DWORD PTR -28[rbp]
	sar	eax
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L504
	cmp	DWORD PTR -24[rbp], 0
	jne	.L504
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 168[rax]
	mov	eax, DWORD PTR -28[rbp]
	sub	eax, edx
	sar	eax, 2
	mov	edx, eax
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 168[rax]
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	sar	eax, 2
	mov	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L505
.L504:
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	DWORD PTR [rax], edx
.L505:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L506
	cmp	DWORD PTR -20[rbp], 0
	jne	.L506
	mov	edx, DWORD PTR -28[rbp]
	mov	eax, edx
	add	eax, eax
	add	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	ecx, DWORD PTR 168[rax]
	mov	eax, edx
	sub	eax, ecx
	sar	eax, 2
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	mov	edx, DWORD PTR -28[rbp]
	mov	eax, edx
	add	eax, eax
	add	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 168[rax]
	add	eax, edx
	sar	eax, 2
	mov	edx, eax
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L507
.L506:
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, DWORD PTR -28[rbp]
	mov	DWORD PTR [rax], edx
.L507:
	mov	eax, 1
.L494:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE66:
	.size	vorbis_decode_initial, .-vorbis_decode_initial
	.type	vorbis_decode_packet_rest, @function
vorbis_decode_packet_rest:
.LFB67:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 2688
	mov	QWORD PTR -2648[rbp], rdi
	mov	QWORD PTR -2656[rbp], rsi
	mov	QWORD PTR -2664[rbp], rdx
	mov	DWORD PTR -2668[rbp], ecx
	mov	DWORD PTR -2672[rbp], r8d
	mov	DWORD PTR -2676[rbp], r9d
	mov	rax, QWORD PTR 24[rbp]
	mov	QWORD PTR -2688[rbp], rax
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -2664[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -2648[rbp]
	movsx	rdx, edx
	add	rdx, 40
	mov	eax, DWORD PTR [rax+rdx*4]
	mov	DWORD PTR -2588[rbp], eax
	mov	rax, QWORD PTR -2648[rbp]
	mov	rcx, QWORD PTR 488[rax]
	mov	rax, QWORD PTR -2664[rbp]
	movzx	eax, BYTE PTR 1[rax]
	movzx	edx, al
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	add	rax, rcx
	mov	QWORD PTR -2504[rbp], rax
	mov	eax, DWORD PTR -2588[rbp]
	sar	eax
	mov	DWORD PTR -2584[rbp], eax
	mov	DWORD PTR -2628[rbp], 0
	jmp	.L510
.L542:
	mov	rax, QWORD PTR -2504[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2628[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	movzx	eax, BYTE PTR 2[rax]
	movzx	eax, al
	mov	DWORD PTR -2568[rbp], eax
	mov	eax, DWORD PTR -2628[rbp]
	cdqe
	mov	DWORD PTR -2320[rbp+rax*4], 0
	mov	rdx, QWORD PTR -2504[rbp]
	mov	eax, DWORD PTR -2568[rbp]
	cdqe
	movzx	eax, BYTE PTR 17[rdx+rax]
	movzx	eax, al
	mov	DWORD PTR -2564[rbp], eax
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR -2564[rbp]
	movsx	rdx, edx
	add	rdx, 96
	movzx	eax, WORD PTR 4[rax+rdx*2]
	test	ax, ax
	jne	.L511
	mov	rax, QWORD PTR -2648[rbp]
	mov	esi, 21
	mov	rdi, rax
	call	error
	jmp	.L584
.L511:
	mov	rax, QWORD PTR -2648[rbp]
	mov	rdx, QWORD PTR 328[rax]
	mov	eax, DWORD PTR -2564[rbp]
	cdqe
	imul	rax, rax, 1596
	add	rax, rdx
	mov	QWORD PTR -2480[rbp], rax
	mov	rax, QWORD PTR -2648[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	get_bits
	test	eax, eax
	je	.L592
	mov	rax, QWORD PTR -2480[rbp]
	movzx	eax, BYTE PTR 1588[rax]
	movzx	eax, al
	sub	eax, 1
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, range_list.7[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	DWORD PTR -2560[rbp], eax
	mov	DWORD PTR -2616[rbp], 2
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR -2628[rbp]
	movsx	rdx, edx
	add	rdx, 160
	mov	rax, QWORD PTR [rax+rdx*8]
	mov	QWORD PTR -2472[rbp], rax
	mov	eax, DWORD PTR -2560[rbp]
	mov	edi, eax
	call	ilog
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -2648[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	get_bits
	mov	edx, eax
	mov	rax, QWORD PTR -2472[rbp]
	mov	WORD PTR [rax], dx
	mov	eax, DWORD PTR -2560[rbp]
	mov	edi, eax
	call	ilog
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -2648[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	get_bits
	mov	rdx, QWORD PTR -2472[rbp]
	add	rdx, 2
	mov	WORD PTR [rdx], ax
	mov	DWORD PTR -2624[rbp], 0
	jmp	.L514
.L527:
	mov	rdx, QWORD PTR -2480[rbp]
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	movzx	eax, BYTE PTR 1[rdx+rax]
	movzx	eax, al
	mov	DWORD PTR -2532[rbp], eax
	mov	rdx, QWORD PTR -2480[rbp]
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	movzx	eax, BYTE PTR 33[rdx+rax]
	movzx	eax, al
	mov	DWORD PTR -2528[rbp], eax
	mov	rdx, QWORD PTR -2480[rbp]
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	movzx	eax, BYTE PTR 49[rdx+rax]
	movzx	eax, al
	mov	DWORD PTR -2524[rbp], eax
	mov	eax, DWORD PTR -2524[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	sub	eax, 1
	mov	DWORD PTR -2520[rbp], eax
	mov	DWORD PTR -2612[rbp], 0
	cmp	DWORD PTR -2524[rbp], 0
	je	.L515
	mov	rax, QWORD PTR -2648[rbp]
	mov	rcx, QWORD PTR 184[rax]
	mov	rdx, QWORD PTR -2480[rbp]
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	movzx	eax, BYTE PTR 65[rdx+rax]
	movzx	eax, al
	imul	rax, rax, 2120
	add	rax, rcx
	mov	QWORD PTR -2464[rbp], rax
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1784[rax]
	cmp	eax, 9
	jg	.L516
	mov	rax, QWORD PTR -2648[rbp]
	mov	rdi, rax
	call	prep_huffman
.L516:
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1780[rax]
	and	eax, 1023
	mov	DWORD PTR -2612[rbp], eax
	mov	rax, QWORD PTR -2464[rbp]
	mov	edx, DWORD PTR -2612[rbp]
	movsx	rdx, edx
	add	rdx, 24
	movzx	eax, WORD PTR [rax+rdx*2]
	cwde
	mov	DWORD PTR -2612[rbp], eax
	cmp	DWORD PTR -2612[rbp], 0
	js	.L517
	mov	rax, QWORD PTR -2464[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2612[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -2516[rbp], eax
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR 1780[rax]
	mov	eax, DWORD PTR -2516[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	rax, QWORD PTR -2648[rbp]
	mov	DWORD PTR 1780[rax], edx
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1784[rax]
	sub	eax, DWORD PTR -2516[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -2648[rbp]
	mov	DWORD PTR 1784[rax], edx
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1784[rax]
	test	eax, eax
	jns	.L518
	mov	rax, QWORD PTR -2648[rbp]
	mov	DWORD PTR 1784[rax], 0
	mov	DWORD PTR -2612[rbp], -1
	jmp	.L518
.L517:
	mov	rdx, QWORD PTR -2464[rbp]
	mov	rax, QWORD PTR -2648[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	codebook_decode_scalar_raw
	mov	DWORD PTR -2612[rbp], eax
.L518:
	mov	rax, QWORD PTR -2464[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L515
	mov	rax, QWORD PTR -2464[rbp]
	mov	rdx, QWORD PTR 2104[rax]
	mov	eax, DWORD PTR -2612[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2612[rbp], eax
.L515:
	mov	DWORD PTR -2620[rbp], 0
	jmp	.L519
.L526:
	mov	eax, DWORD PTR -2612[rbp]
	and	eax, DWORD PTR -2520[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -2480[rbp]
	movsx	rcx, edx
	mov	edx, DWORD PTR -2532[rbp]
	movsx	rdx, edx
	sal	rdx, 3
	add	rdx, rcx
	add	rdx, 40
	movzx	eax, WORD PTR 2[rax+rdx*2]
	cwde
	mov	DWORD PTR -2512[rbp], eax
	mov	eax, DWORD PTR -2524[rbp]
	mov	ecx, eax
	sar	DWORD PTR -2612[rbp], cl
	cmp	DWORD PTR -2512[rbp], 0
	js	.L520
	mov	rax, QWORD PTR -2648[rbp]
	mov	rdx, QWORD PTR 184[rax]
	mov	eax, DWORD PTR -2512[rbp]
	cdqe
	imul	rax, rax, 2120
	add	rax, rdx
	mov	QWORD PTR -2456[rbp], rax
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1784[rax]
	cmp	eax, 9
	jg	.L521
	mov	rax, QWORD PTR -2648[rbp]
	mov	rdi, rax
	call	prep_huffman
.L521:
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1780[rax]
	and	eax, 1023
	mov	DWORD PTR -2608[rbp], eax
	mov	rax, QWORD PTR -2456[rbp]
	mov	edx, DWORD PTR -2608[rbp]
	movsx	rdx, edx
	add	rdx, 24
	movzx	eax, WORD PTR [rax+rdx*2]
	cwde
	mov	DWORD PTR -2608[rbp], eax
	cmp	DWORD PTR -2608[rbp], 0
	js	.L522
	mov	rax, QWORD PTR -2456[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2608[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -2508[rbp], eax
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR 1780[rax]
	mov	eax, DWORD PTR -2508[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	rax, QWORD PTR -2648[rbp]
	mov	DWORD PTR 1780[rax], edx
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1784[rax]
	sub	eax, DWORD PTR -2508[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -2648[rbp]
	mov	DWORD PTR 1784[rax], edx
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1784[rax]
	test	eax, eax
	jns	.L523
	mov	rax, QWORD PTR -2648[rbp]
	mov	DWORD PTR 1784[rax], 0
	mov	DWORD PTR -2608[rbp], -1
	jmp	.L523
.L522:
	mov	rdx, QWORD PTR -2456[rbp]
	mov	rax, QWORD PTR -2648[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	codebook_decode_scalar_raw
	mov	DWORD PTR -2608[rbp], eax
.L523:
	mov	rax, QWORD PTR -2456[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L524
	mov	rax, QWORD PTR -2456[rbp]
	mov	rdx, QWORD PTR 2104[rax]
	mov	eax, DWORD PTR -2608[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2608[rbp], eax
.L524:
	mov	eax, DWORD PTR -2616[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -2616[rbp], edx
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -2472[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -2608[rbp]
	mov	WORD PTR [rax], dx
	jmp	.L525
.L520:
	mov	eax, DWORD PTR -2616[rbp]
	lea	edx, 1[rax]
	mov	DWORD PTR -2616[rbp], edx
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -2472[rbp]
	add	rax, rdx
	mov	WORD PTR [rax], 0
.L525:
	add	DWORD PTR -2620[rbp], 1
.L519:
	mov	eax, DWORD PTR -2620[rbp]
	cmp	eax, DWORD PTR -2528[rbp]
	jl	.L526
	add	DWORD PTR -2624[rbp], 1
.L514:
	mov	rax, QWORD PTR -2480[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cmp	DWORD PTR -2624[rbp], eax
	jl	.L527
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1784[rax]
	cmp	eax, -1
	je	.L593
	mov	BYTE PTR -271[rbp], 1
	movzx	eax, BYTE PTR -271[rbp]
	mov	BYTE PTR -272[rbp], al
	mov	DWORD PTR -2624[rbp], 2
	jmp	.L529
.L537:
	mov	rax, QWORD PTR -2480[rbp]
	mov	edx, DWORD PTR -2624[rbp]
	movsx	rdx, edx
	add	rdx, 544
	movzx	eax, BYTE PTR [rax+rdx*2]
	movzx	eax, al
	mov	DWORD PTR -2556[rbp], eax
	mov	rax, QWORD PTR -2480[rbp]
	mov	edx, DWORD PTR -2624[rbp]
	movsx	rdx, edx
	movzx	eax, BYTE PTR 1089[rax+rdx*2]
	movzx	eax, al
	mov	DWORD PTR -2552[rbp], eax
	mov	eax, DWORD PTR -2552[rbp]
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -2472[rbp]
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movsx	r8d, ax
	mov	eax, DWORD PTR -2556[rbp]
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -2472[rbp]
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movsx	ecx, ax
	mov	rax, QWORD PTR -2480[rbp]
	mov	edx, DWORD PTR -2552[rbp]
	movsx	rdx, edx
	add	rdx, 168
	movzx	eax, WORD PTR 2[rax+rdx*2]
	movzx	edx, ax
	mov	rax, QWORD PTR -2480[rbp]
	mov	esi, DWORD PTR -2556[rbp]
	movsx	rsi, esi
	add	rsi, 168
	movzx	eax, WORD PTR 2[rax+rsi*2]
	movzx	esi, ax
	mov	rax, QWORD PTR -2480[rbp]
	mov	edi, DWORD PTR -2624[rbp]
	movsx	rdi, edi
	add	rdi, 168
	movzx	eax, WORD PTR 2[rax+rdi*2]
	movzx	eax, ax
	mov	edi, eax
	call	predict_point
	mov	DWORD PTR -2548[rbp], eax
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -2472[rbp]
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	cwde
	mov	DWORD PTR -2544[rbp], eax
	mov	eax, DWORD PTR -2560[rbp]
	sub	eax, DWORD PTR -2548[rbp]
	mov	DWORD PTR -2540[rbp], eax
	mov	eax, DWORD PTR -2548[rbp]
	mov	DWORD PTR -2536[rbp], eax
	mov	eax, DWORD PTR -2540[rbp]
	cmp	eax, DWORD PTR -2536[rbp]
	jge	.L530
	mov	eax, DWORD PTR -2540[rbp]
	add	eax, eax
	mov	DWORD PTR -2604[rbp], eax
	jmp	.L531
.L530:
	mov	eax, DWORD PTR -2536[rbp]
	add	eax, eax
	mov	DWORD PTR -2604[rbp], eax
.L531:
	cmp	DWORD PTR -2544[rbp], 0
	je	.L532
	mov	eax, DWORD PTR -2552[rbp]
	cdqe
	mov	BYTE PTR -272[rbp+rax], 1
	mov	eax, DWORD PTR -2552[rbp]
	cdqe
	movzx	edx, BYTE PTR -272[rbp+rax]
	mov	eax, DWORD PTR -2556[rbp]
	cdqe
	mov	BYTE PTR -272[rbp+rax], dl
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	mov	BYTE PTR -272[rbp+rax], 1
	mov	eax, DWORD PTR -2544[rbp]
	cmp	eax, DWORD PTR -2604[rbp]
	jl	.L533
	mov	eax, DWORD PTR -2540[rbp]
	cmp	eax, DWORD PTR -2536[rbp]
	jle	.L534
	mov	eax, DWORD PTR -2544[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -2536[rbp]
	sub	edx, eax
	mov	eax, DWORD PTR -2548[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	lea	rcx, [rax+rax]
	mov	rax, QWORD PTR -2472[rbp]
	add	rax, rcx
	mov	WORD PTR [rax], dx
	jmp	.L535
.L534:
	mov	eax, DWORD PTR -2548[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -2544[rbp]
	sub	edx, eax
	mov	eax, DWORD PTR -2540[rbp]
	add	eax, edx
	lea	edx, -1[rax]
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	lea	rcx, [rax+rax]
	mov	rax, QWORD PTR -2472[rbp]
	add	rax, rcx
	mov	WORD PTR [rax], dx
	jmp	.L535
.L533:
	mov	eax, DWORD PTR -2544[rbp]
	and	eax, 1
	test	eax, eax
	je	.L536
	mov	eax, DWORD PTR -2548[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -2544[rbp]
	add	eax, 1
	sar	eax
	sub	edx, eax
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	lea	rcx, [rax+rax]
	mov	rax, QWORD PTR -2472[rbp]
	add	rax, rcx
	mov	WORD PTR [rax], dx
	jmp	.L535
.L536:
	mov	eax, DWORD PTR -2544[rbp]
	sar	eax
	mov	edx, eax
	mov	eax, DWORD PTR -2548[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	lea	rcx, [rax+rax]
	mov	rax, QWORD PTR -2472[rbp]
	add	rax, rcx
	mov	WORD PTR [rax], dx
	jmp	.L535
.L532:
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	mov	BYTE PTR -272[rbp+rax], 0
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -2472[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -2548[rbp]
	mov	WORD PTR [rax], dx
.L535:
	add	DWORD PTR -2624[rbp], 1
.L529:
	mov	rax, QWORD PTR -2480[rbp]
	mov	eax, DWORD PTR 1592[rax]
	cmp	DWORD PTR -2624[rbp], eax
	jl	.L537
	mov	DWORD PTR -2624[rbp], 0
	jmp	.L538
.L540:
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	movzx	eax, BYTE PTR -272[rbp+rax]
	test	al, al
	jne	.L539
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -2472[rbp]
	add	rax, rdx
	mov	WORD PTR [rax], -1
.L539:
	add	DWORD PTR -2624[rbp], 1
.L538:
	mov	rax, QWORD PTR -2480[rbp]
	mov	eax, DWORD PTR 1592[rax]
	cmp	DWORD PTR -2624[rbp], eax
	jl	.L540
	jmp	.L541
.L592:
	nop
	jmp	.L513
.L593:
	nop
.L513:
	mov	eax, DWORD PTR -2628[rbp]
	cdqe
	mov	DWORD PTR -2320[rbp+rax*4], 1
.L541:
	add	DWORD PTR -2628[rbp], 1
.L510:
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -2628[rbp], eax
	jl	.L542
	mov	rax, QWORD PTR -2648[rbp]
	mov	rax, QWORD PTR 128[rax]
	test	rax, rax
	je	.L543
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR 136[rax]
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 148[rax]
	cmp	edx, eax
	je	.L543
	lea	rcx, __PRETTY_FUNCTION__.6[rip]
	mov	edx, 3277
	lea	rsi, .LC1[rip]
	lea	rdi, .LC27[rip]
	call	__assert_fail@PLT
.L543:
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rcx, -2320[rbp]
	lea	rax, -1296[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	memcpy@PLT
	mov	DWORD PTR -2628[rbp], 0
	jmp	.L544
.L547:
	mov	rax, QWORD PTR -2504[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2628[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cdqe
	mov	eax, DWORD PTR -2320[rbp+rax*4]
	test	eax, eax
	je	.L545
	mov	rax, QWORD PTR -2504[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2628[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	movzx	eax, BYTE PTR 1[rax]
	movzx	eax, al
	cdqe
	mov	eax, DWORD PTR -2320[rbp+rax*4]
	test	eax, eax
	jne	.L546
.L545:
	mov	rax, QWORD PTR -2504[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2628[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	movzx	eax, BYTE PTR 1[rax]
	movzx	edx, al
	movsx	rax, edx
	mov	DWORD PTR -2320[rbp+rax*4], 0
	mov	rax, QWORD PTR -2504[rbp]
	mov	rsi, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2628[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	add	rax, rax
	add	rax, rcx
	add	rax, rsi
	movzx	eax, BYTE PTR [rax]
	movzx	ecx, al
	movsx	rax, edx
	mov	edx, DWORD PTR -2320[rbp+rax*4]
	movsx	rax, ecx
	mov	DWORD PTR -2320[rbp+rax*4], edx
.L546:
	add	DWORD PTR -2628[rbp], 1
.L544:
	mov	rax, QWORD PTR -2504[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	cmp	DWORD PTR -2628[rbp], eax
	jl	.L547
	mov	DWORD PTR -2628[rbp], 0
	jmp	.L548
.L554:
	mov	DWORD PTR -2600[rbp], 0
	mov	DWORD PTR -2624[rbp], 0
	jmp	.L549
.L553:
	mov	rax, QWORD PTR -2504[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2624[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	movzx	eax, BYTE PTR 2[rax]
	movzx	eax, al
	cmp	DWORD PTR -2628[rbp], eax
	jne	.L550
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	mov	eax, DWORD PTR -2320[rbp+rax*4]
	test	eax, eax
	je	.L551
	mov	eax, DWORD PTR -2600[rbp]
	cdqe
	mov	BYTE PTR -272[rbp+rax], 1
	mov	eax, DWORD PTR -2600[rbp]
	cdqe
	mov	QWORD PTR -2448[rbp+rax*8], 0
	jmp	.L552
.L551:
	mov	eax, DWORD PTR -2600[rbp]
	cdqe
	mov	BYTE PTR -272[rbp+rax], 0
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR -2624[rbp]
	movsx	rdx, edx
	add	rdx, 110
	mov	rdx, QWORD PTR 8[rax+rdx*8]
	mov	eax, DWORD PTR -2600[rbp]
	cdqe
	mov	QWORD PTR -2448[rbp+rax*8], rdx
.L552:
	add	DWORD PTR -2600[rbp], 1
.L550:
	add	DWORD PTR -2624[rbp], 1
.L549:
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -2624[rbp], eax
	jl	.L553
	mov	rdx, QWORD PTR -2504[rbp]
	mov	eax, DWORD PTR -2628[rbp]
	cdqe
	movzx	eax, BYTE PTR 32[rdx+rax]
	movzx	eax, al
	mov	DWORD PTR -2572[rbp], eax
	lea	r8, -272[rbp]
	mov	edi, DWORD PTR -2572[rbp]
	mov	ecx, DWORD PTR -2584[rbp]
	mov	edx, DWORD PTR -2600[rbp]
	lea	rsi, -2448[rbp]
	mov	rax, QWORD PTR -2648[rbp]
	mov	r9, r8
	mov	r8d, edi
	mov	rdi, rax
	call	decode_residue
	add	DWORD PTR -2628[rbp], 1
.L548:
	mov	rax, QWORD PTR -2504[rbp]
	movzx	eax, BYTE PTR 16[rax]
	movzx	eax, al
	cmp	DWORD PTR -2628[rbp], eax
	jl	.L554
	mov	rax, QWORD PTR -2648[rbp]
	mov	rax, QWORD PTR 128[rax]
	test	rax, rax
	je	.L555
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR 136[rax]
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 148[rax]
	cmp	edx, eax
	je	.L555
	lea	rcx, __PRETTY_FUNCTION__.6[rip]
	mov	edx, 3310
	lea	rsi, .LC1[rip]
	lea	rdi, .LC27[rip]
	call	__assert_fail@PLT
.L555:
	mov	rax, QWORD PTR -2504[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	sub	eax, 1
	mov	DWORD PTR -2628[rbp], eax
	jmp	.L556
.L566:
	mov	eax, DWORD PTR -2588[rbp]
	sar	eax
	mov	DWORD PTR -2576[rbp], eax
	mov	rax, QWORD PTR -2504[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2628[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -2648[rbp]
	movsx	rdx, edx
	add	rdx, 110
	mov	rax, QWORD PTR 8[rax+rdx*8]
	mov	QWORD PTR -2496[rbp], rax
	mov	rax, QWORD PTR -2504[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -2628[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	movzx	eax, BYTE PTR 1[rax]
	movzx	edx, al
	mov	rax, QWORD PTR -2648[rbp]
	movsx	rdx, edx
	add	rdx, 110
	mov	rax, QWORD PTR 8[rax+rdx*8]
	mov	QWORD PTR -2488[rbp], rax
	mov	DWORD PTR -2624[rbp], 0
	jmp	.L557
.L565:
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2496[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L589
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2488[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L590
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2496[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	movss	DWORD PTR -2592[rbp], xmm0
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2496[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2488[rbp]
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -2596[rbp], xmm0
	jmp	.L562
.L590:
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2496[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	movss	DWORD PTR -2596[rbp], xmm0
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2496[rbp]
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2488[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	addss	xmm0, xmm1
	movss	DWORD PTR -2592[rbp], xmm0
	jmp	.L562
.L589:
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2488[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	pxor	xmm1, xmm1
	comiss	xmm0, xmm1
	jbe	.L591
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2496[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	movss	DWORD PTR -2592[rbp], xmm0
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2496[rbp]
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2488[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	addss	xmm0, xmm1
	movss	DWORD PTR -2596[rbp], xmm0
	jmp	.L562
.L591:
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2496[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	movss	DWORD PTR -2596[rbp], xmm0
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2496[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2488[rbp]
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	subss	xmm0, xmm1
	movss	DWORD PTR -2592[rbp], xmm0
.L562:
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2496[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR -2592[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2488[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR -2596[rbp]
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -2624[rbp], 1
.L557:
	mov	eax, DWORD PTR -2624[rbp]
	cmp	eax, DWORD PTR -2576[rbp]
	jl	.L565
	sub	DWORD PTR -2628[rbp], 1
.L556:
	cmp	DWORD PTR -2628[rbp], 0
	jns	.L566
	mov	DWORD PTR -2628[rbp], 0
	jmp	.L567
.L570:
	mov	eax, DWORD PTR -2628[rbp]
	cdqe
	mov	eax, DWORD PTR -1296[rbp+rax*4]
	test	eax, eax
	je	.L568
	mov	eax, DWORD PTR -2584[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -2648[rbp]
	mov	ecx, DWORD PTR -2628[rbp]
	movsx	rcx, ecx
	add	rcx, 110
	mov	rax, QWORD PTR 8[rax+rcx*8]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	jmp	.L569
.L568:
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR -2628[rbp]
	movsx	rdx, edx
	add	rdx, 160
	mov	r8, QWORD PTR [rax+rdx*8]
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR -2628[rbp]
	movsx	rdx, edx
	add	rdx, 110
	mov	rdi, QWORD PTR 8[rax+rdx*8]
	mov	ecx, DWORD PTR -2588[rbp]
	mov	edx, DWORD PTR -2628[rbp]
	mov	rsi, QWORD PTR -2504[rbp]
	mov	rax, QWORD PTR -2648[rbp]
	sub	rsp, 8
	push	0
	mov	r9, r8
	mov	r8, rdi
	mov	rdi, rax
	call	do_floor
	add	rsp, 16
.L569:
	add	DWORD PTR -2628[rbp], 1
.L567:
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -2628[rbp], eax
	jl	.L570
	mov	DWORD PTR -2628[rbp], 0
	jmp	.L571
.L572:
	mov	rax, QWORD PTR -2664[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	ecx, al
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR -2628[rbp]
	movsx	rdx, edx
	add	rdx, 110
	mov	rax, QWORD PTR 8[rax+rdx*8]
	mov	rdx, QWORD PTR -2648[rbp]
	mov	esi, DWORD PTR -2588[rbp]
	mov	rdi, rax
	call	inverse_mdct
	add	DWORD PTR -2628[rbp], 1
.L571:
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -2628[rbp], eax
	jl	.L572
	mov	rax, QWORD PTR -2648[rbp]
	mov	rdi, rax
	call	flush_packet
	mov	rax, QWORD PTR -2648[rbp]
	movzx	eax, BYTE PTR 1765[rax]
	test	al, al
	je	.L573
	mov	eax, DWORD PTR -2584[rbp]
	neg	eax
	mov	edx, eax
	mov	rax, QWORD PTR -2648[rbp]
	mov	DWORD PTR 1408[rax], edx
	mov	eax, DWORD PTR -2588[rbp]
	sub	eax, DWORD PTR 16[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -2648[rbp]
	mov	DWORD PTR 1800[rax], edx
	mov	rax, QWORD PTR -2648[rbp]
	mov	DWORD PTR 1412[rax], 1
	mov	rax, QWORD PTR -2648[rbp]
	mov	BYTE PTR 1765[rax], 0
	jmp	.L574
.L573:
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1800[rax]
	test	eax, eax
	je	.L575
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR 1800[rax]
	mov	eax, DWORD PTR -2676[rbp]
	sub	eax, DWORD PTR -2668[rbp]
	cmp	edx, eax
	jl	.L576
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR 1800[rax]
	mov	eax, DWORD PTR -2676[rbp]
	sub	eax, DWORD PTR -2668[rbp]
	sub	edx, eax
	mov	rax, QWORD PTR -2648[rbp]
	mov	DWORD PTR 1800[rax], edx
	mov	eax, DWORD PTR -2676[rbp]
	mov	DWORD PTR -2668[rbp], eax
	mov	rax, QWORD PTR -2688[rbp]
	mov	edx, DWORD PTR -2668[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L574
.L576:
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1800[rax]
	add	DWORD PTR -2668[rbp], eax
	mov	rax, QWORD PTR -2688[rbp]
	mov	edx, DWORD PTR -2668[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -2648[rbp]
	mov	DWORD PTR 1800[rax], 0
	jmp	.L574
.L575:
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1272[rax]
	test	eax, eax
.L574:
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR 1776[rax]
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1792[rax]
	cmp	edx, eax
	jne	.L577
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1412[rax]
	test	eax, eax
	je	.L578
	mov	rax, QWORD PTR -2648[rbp]
	movzx	eax, BYTE PTR 1763[rax]
	movzx	eax, al
	and	eax, 4
	test	eax, eax
	je	.L578
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1796[rax]
	mov	DWORD PTR -2580[rbp], eax
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR 1408[rax]
	mov	eax, DWORD PTR 16[rbp]
	sub	eax, DWORD PTR -2668[rbp]
	add	eax, edx
	cmp	DWORD PTR -2580[rbp], eax
	jnb	.L578
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1408[rax]
	cmp	DWORD PTR -2580[rbp], eax
	jnb	.L579
	mov	rax, QWORD PTR -2656[rbp]
	mov	DWORD PTR [rax], 0
	jmp	.L580
.L579:
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR 1408[rax]
	mov	eax, DWORD PTR -2580[rbp]
	sub	eax, edx
	mov	edx, eax
	mov	rax, QWORD PTR -2656[rbp]
	mov	DWORD PTR [rax], edx
.L580:
	mov	rax, QWORD PTR -2656[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR -2668[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -2656[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -2656[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR 16[rbp], eax
	jge	.L581
	mov	rax, QWORD PTR -2656[rbp]
	mov	edx, DWORD PTR 16[rbp]
	mov	DWORD PTR [rax], edx
.L581:
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR 1408[rax]
	mov	rax, QWORD PTR -2656[rbp]
	mov	eax, DWORD PTR [rax]
	add	edx, eax
	mov	rax, QWORD PTR -2648[rbp]
	mov	DWORD PTR 1408[rax], edx
	mov	eax, 1
	jmp	.L584
.L578:
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR 1796[rax]
	mov	eax, DWORD PTR -2584[rbp]
	sub	eax, DWORD PTR -2668[rbp]
	sub	edx, eax
	mov	rax, QWORD PTR -2648[rbp]
	mov	DWORD PTR 1408[rax], edx
	mov	rax, QWORD PTR -2648[rbp]
	mov	DWORD PTR 1412[rax], 1
.L577:
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1412[rax]
	test	eax, eax
	je	.L582
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR 1408[rax]
	mov	eax, DWORD PTR -2676[rbp]
	sub	eax, DWORD PTR -2668[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -2648[rbp]
	mov	DWORD PTR 1408[rax], edx
.L582:
	mov	rax, QWORD PTR -2648[rbp]
	mov	rax, QWORD PTR 128[rax]
	test	rax, rax
	je	.L583
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR 136[rax]
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 148[rax]
	cmp	edx, eax
	je	.L583
	lea	rcx, __PRETTY_FUNCTION__.6[rip]
	mov	edx, 3426
	lea	rsi, .LC1[rip]
	lea	rdi, .LC27[rip]
	call	__assert_fail@PLT
.L583:
	mov	rax, QWORD PTR -2656[rbp]
	mov	edx, DWORD PTR 16[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, 1
.L584:
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L585
	call	__stack_chk_fail@PLT
.L585:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE67:
	.size	vorbis_decode_packet_rest, .-vorbis_decode_packet_rest
	.type	vorbis_decode_packet, @function
vorbis_decode_packet:
.LFB68:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	QWORD PTR -64[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	r8, -20[rbp]
	lea	rdi, -12[rbp]
	mov	rcx, QWORD PTR -64[rbp]
	lea	rdx, -16[rbp]
	mov	rsi, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	r9, r8
	mov	r8, rdi
	mov	rdi, rax
	call	vorbis_decode_initial
	test	eax, eax
	jne	.L595
	mov	eax, 0
	jmp	.L597
.L595:
	mov	ecx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	r9d, DWORD PTR [rax]
	mov	r8d, DWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	lea	rdi, 500[rax]
	mov	eax, DWORD PTR -20[rbp]
	movsx	rsi, eax
	mov	rax, rsi
	add	rax, rax
	add	rax, rsi
	add	rax, rax
	add	rdi, rax
	mov	rsi, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	push	QWORD PTR -56[rbp]
	push	rcx
	mov	ecx, edx
	mov	rdx, rdi
	mov	rdi, rax
	call	vorbis_decode_packet_rest
	add	rsp, 16
.L597:
	mov	rdx, QWORD PTR -8[rbp]
	sub	rdx, QWORD PTR fs:40
	je	.L598
	call	__stack_chk_fail@PLT
.L598:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE68:
	.size	vorbis_decode_packet, .-vorbis_decode_packet
	.type	vorbis_finish_frame, @function
vorbis_finish_frame:
.LFB69:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 56
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	DWORD PTR -48[rbp], edx
	mov	DWORD PTR -52[rbp], ecx
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 1272[rax]
	test	eax, eax
	je	.L600
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 1272[rax]
	mov	DWORD PTR -16[rbp], eax
	mov	edx, DWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	get_window
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	jne	.L601
	mov	eax, 0
	jmp	.L602
.L601:
	mov	DWORD PTR -24[rbp], 0
	jmp	.L603
.L606:
	mov	DWORD PTR -20[rbp], 0
	jmp	.L604
.L605:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -24[rbp]
	movsx	rdx, edx
	add	rdx, 110
	mov	rdx, QWORD PTR 8[rax+rdx*8]
	mov	ecx, DWORD PTR -48[rbp]
	mov	eax, DWORD PTR -20[rbp]
	add	eax, ecx
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm1, xmm0
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -24[rbp]
	movsx	rdx, edx
	add	rdx, 142
	mov	rdx, QWORD PTR 8[rax+rdx*8]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm2, DWORD PTR [rax]
	mov	eax, DWORD PTR -16[rbp]
	sub	eax, 1
	sub	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mulss	xmm0, xmm2
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -24[rbp]
	movsx	rdx, edx
	add	rdx, 110
	mov	rdx, QWORD PTR 8[rax+rdx*8]
	mov	ecx, DWORD PTR -48[rbp]
	mov	eax, DWORD PTR -20[rbp]
	add	eax, ecx
	cdqe
	sal	rax, 2
	add	rax, rdx
	addss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -20[rbp], 1
.L604:
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -16[rbp]
	jl	.L605
	add	DWORD PTR -24[rbp], 1
.L603:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L606
.L600:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 1272[rax]
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -44[rbp]
	sub	eax, DWORD PTR -52[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1272[rax], edx
	mov	DWORD PTR -32[rbp], 0
	jmp	.L607
.L610:
	mov	DWORD PTR -28[rbp], 0
	jmp	.L608
.L609:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -32[rbp]
	movsx	rdx, edx
	add	rdx, 110
	mov	rdx, QWORD PTR 8[rax+rdx*8]
	mov	ecx, DWORD PTR -52[rbp]
	mov	eax, DWORD PTR -28[rbp]
	add	eax, ecx
	cdqe
	sal	rax, 2
	add	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	ecx, DWORD PTR -32[rbp]
	movsx	rcx, ecx
	add	rcx, 142
	mov	rcx, QWORD PTR 8[rax+rcx*8]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	sal	rax, 2
	add	rax, rcx
	movss	xmm0, DWORD PTR [rdx]
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -28[rbp], 1
.L608:
	mov	edx, DWORD PTR -52[rbp]
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cmp	DWORD PTR -44[rbp], eax
	jg	.L609
	add	DWORD PTR -32[rbp], 1
.L607:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -32[rbp], eax
	jl	.L610
	cmp	DWORD PTR -12[rbp], 0
	jne	.L611
	mov	eax, 0
	jmp	.L602
.L611:
	mov	eax, DWORD PTR -44[rbp]
	cmp	eax, DWORD PTR -52[rbp]
	jge	.L612
	mov	eax, DWORD PTR -44[rbp]
	mov	DWORD PTR -52[rbp], eax
.L612:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 1804[rax]
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, DWORD PTR -48[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1804[rax], edx
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, DWORD PTR -48[rbp]
.L602:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE69:
	.size	vorbis_finish_frame, .-vorbis_finish_frame
	.type	vorbis_pump_first_frame, @function
vorbis_pump_first_frame:
.LFB70:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rcx, -20[rbp]
	lea	rdx, -16[rbp]
	lea	rsi, -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	vorbis_decode_packet
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 0
	je	.L614
	mov	ecx, DWORD PTR -20[rbp]
	mov	edx, DWORD PTR -16[rbp]
	mov	esi, DWORD PTR -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	vorbis_finish_frame
.L614:
	mov	eax, DWORD PTR -12[rbp]
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L616
	call	__stack_chk_fail@PLT
.L616:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE70:
	.size	vorbis_pump_first_frame, .-vorbis_pump_first_frame
	.type	is_whole_packet_present, @function
is_whole_packet_present:
.LFB71:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 1768[rax]
	mov	DWORD PTR -28[rbp], eax
	mov	DWORD PTR -24[rbp], 1
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 64[rax]
	mov	QWORD PTR -16[rbp], rax
	cmp	DWORD PTR -28[rbp], -1
	je	.L626
	jmp	.L619
.L622:
	mov	rdx, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	movzx	eax, BYTE PTR 1508[rdx+rax]
	movzx	eax, al
	add	QWORD PTR -16[rbp], rax
	mov	rdx, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	movzx	eax, BYTE PTR 1508[rdx+rax]
	cmp	al, -1
	jne	.L640
	add	DWORD PTR -28[rbp], 1
.L619:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 1504[rax]
	cmp	DWORD PTR -28[rbp], eax
	jl	.L622
	jmp	.L621
.L640:
	nop
.L621:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 1504[rax]
	cmp	DWORD PTR -28[rbp], eax
	jne	.L623
	mov	DWORD PTR -28[rbp], -1
.L623:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 80[rax]
	cmp	QWORD PTR -16[rbp], rax
	jbe	.L624
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	error
	jmp	.L625
.L624:
	mov	DWORD PTR -24[rbp], 0
	jmp	.L626
.L639:
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 26[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 80[rax]
	cmp	rdx, rax
	jb	.L627
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	error
	jmp	.L625
.L627:
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, 4
	lea	rsi, ogg_page_header[rip]
	mov	rdi, rax
	call	memcmp@PLT
	test	eax, eax
	je	.L628
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 21
	mov	rdi, rax
	call	error
	jmp	.L625
.L628:
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 4
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L629
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 21
	mov	rdi, rax
	call	error
	jmp	.L625
.L629:
	cmp	DWORD PTR -24[rbp], 0
	je	.L630
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 1272[rax]
	test	eax, eax
	je	.L631
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 5
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	and	eax, 1
	test	eax, eax
	je	.L631
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 21
	mov	rdi, rax
	call	error
	jmp	.L625
.L630:
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 5
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	and	eax, 1
	test	eax, eax
	jne	.L631
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 21
	mov	rdi, rax
	call	error
	jmp	.L625
.L631:
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 26
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 27
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -20[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 80[rax]
	cmp	QWORD PTR -16[rbp], rax
	jbe	.L632
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	error
	jmp	.L625
.L632:
	mov	DWORD PTR -28[rbp], 0
	jmp	.L633
.L636:
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	QWORD PTR -16[rbp], rax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -8[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, -1
	jne	.L641
	add	DWORD PTR -28[rbp], 1
.L633:
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, DWORD PTR -20[rbp]
	jl	.L636
	jmp	.L635
.L641:
	nop
.L635:
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, DWORD PTR -20[rbp]
	jne	.L637
	mov	DWORD PTR -28[rbp], -1
.L637:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 80[rax]
	cmp	QWORD PTR -16[rbp], rax
	jbe	.L638
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	error
	jmp	.L625
.L638:
	mov	DWORD PTR -24[rbp], 0
.L626:
	cmp	DWORD PTR -28[rbp], -1
	je	.L639
	mov	eax, 1
.L625:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE71:
	.size	is_whole_packet_present, .-is_whole_packet_present
	.section	.rodata
	.align 8
.LC28:
	.string	"f->temp_offset == f->alloc.alloc_buffer_length_in_bytes"
	.text
	.type	start_decoder, @function
start_decoder:
.LFB72:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 1384
	.cfi_offset 3, -24
	mov	QWORD PTR -1384[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -1344[rbp], 0
	mov	DWORD PTR -1340[rbp], 0
	mov	rax, QWORD PTR -1384[rbp]
	mov	BYTE PTR 1765[rax], 1
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	start_page
	test	eax, eax
	jne	.L643
	mov	eax, 0
	jmp	.L869
.L643:
	mov	rax, QWORD PTR -1384[rbp]
	movzx	eax, BYTE PTR 1763[rax]
	movzx	eax, al
	and	eax, 2
	test	eax, eax
	jne	.L645
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 34
	mov	rdi, rax
	call	error
	jmp	.L869
.L645:
	mov	rax, QWORD PTR -1384[rbp]
	movzx	eax, BYTE PTR 1763[rax]
	movzx	eax, al
	and	eax, 4
	test	eax, eax
	je	.L646
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 34
	mov	rdi, rax
	call	error
	jmp	.L869
.L646:
	mov	rax, QWORD PTR -1384[rbp]
	movzx	eax, BYTE PTR 1763[rax]
	movzx	eax, al
	and	eax, 1
	test	eax, eax
	je	.L647
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 34
	mov	rdi, rax
	call	error
	jmp	.L869
.L647:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 1504[rax]
	cmp	eax, 1
	je	.L648
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 34
	mov	rdi, rax
	call	error
	jmp	.L869
.L648:
	mov	rax, QWORD PTR -1384[rbp]
	movzx	eax, BYTE PTR 1508[rax]
	cmp	al, 30
	je	.L649
	mov	rax, QWORD PTR -1384[rbp]
	movzx	eax, BYTE PTR 1508[rax]
	cmp	al, 64
	jne	.L650
	lea	rcx, -102[rbp]
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, 6
	mov	rsi, rcx
	mov	rdi, rax
	call	getn
	test	eax, eax
	je	.L650
	movzx	eax, BYTE PTR -102[rbp]
	cmp	al, 102
	jne	.L650
	movzx	eax, BYTE PTR -101[rbp]
	cmp	al, 105
	jne	.L650
	movzx	eax, BYTE PTR -100[rbp]
	cmp	al, 115
	jne	.L650
	movzx	eax, BYTE PTR -99[rbp]
	cmp	al, 104
	jne	.L650
	movzx	eax, BYTE PTR -98[rbp]
	cmp	al, 101
	jne	.L650
	movzx	eax, BYTE PTR -97[rbp]
	cmp	al, 97
	jne	.L650
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	get8
	cmp	al, 100
	jne	.L650
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	get8
	test	al, al
	jne	.L650
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 38
	mov	rdi, rax
	call	error
	jmp	.L869
.L650:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 34
	mov	rdi, rax
	call	error
	jmp	.L869
.L649:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	get8
	cmp	al, 1
	je	.L651
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 34
	mov	rdi, rax
	call	error
	jmp	.L869
.L651:
	lea	rcx, -102[rbp]
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, 6
	mov	rsi, rcx
	mov	rdi, rax
	call	getn
	test	eax, eax
	jne	.L652
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 10
	mov	rdi, rax
	call	error
	jmp	.L869
.L652:
	lea	rax, -102[rbp]
	mov	rdi, rax
	call	vorbis_validate
	test	eax, eax
	jne	.L653
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 34
	mov	rdi, rax
	call	error
	jmp	.L869
.L653:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	get32
	test	eax, eax
	je	.L654
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 34
	mov	rdi, rax
	call	error
	jmp	.L869
.L654:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	get8
	movzx	edx, al
	mov	rax, QWORD PTR -1384[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 4[rax]
	test	eax, eax
	jne	.L655
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 34
	mov	rdi, rax
	call	error
	jmp	.L869
.L655:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	eax, 16
	jle	.L656
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 5
	mov	rdi, rax
	call	error
	jmp	.L869
.L656:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	get32
	mov	rdx, QWORD PTR -1384[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L657
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 34
	mov	rdi, rax
	call	error
	jmp	.L869
.L657:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	get32
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	get32
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	get32
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	get8
	mov	BYTE PTR -1367[rbp], al
	movzx	eax, BYTE PTR -1367[rbp]
	and	eax, 15
	mov	DWORD PTR -1292[rbp], eax
	movzx	eax, BYTE PTR -1367[rbp]
	shr	al, 4
	movzx	eax, al
	mov	DWORD PTR -1288[rbp], eax
	mov	eax, DWORD PTR -1292[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	rax, QWORD PTR -1384[rbp]
	mov	DWORD PTR 168[rax], edx
	mov	eax, DWORD PTR -1288[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	rax, QWORD PTR -1384[rbp]
	mov	DWORD PTR 172[rax], edx
	cmp	DWORD PTR -1292[rbp], 5
	jle	.L658
	cmp	DWORD PTR -1292[rbp], 13
	jle	.L659
.L658:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L659:
	cmp	DWORD PTR -1288[rbp], 5
	jle	.L660
	cmp	DWORD PTR -1288[rbp], 13
	jle	.L661
.L660:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L661:
	mov	eax, DWORD PTR -1292[rbp]
	cmp	eax, DWORD PTR -1288[rbp]
	jle	.L662
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L662:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	get8
	mov	BYTE PTR -1367[rbp], al
	movzx	eax, BYTE PTR -1367[rbp]
	and	eax, 1
	test	eax, eax
	jne	.L663
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 34
	mov	rdi, rax
	call	error
	jmp	.L869
.L663:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	start_page
	test	eax, eax
	jne	.L664
	mov	eax, 0
	jmp	.L869
.L664:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	start_packet
	test	eax, eax
	jne	.L665
	mov	eax, 0
	jmp	.L869
.L665:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	next_segment
	test	eax, eax
	jne	.L666
	mov	eax, 0
	jmp	.L869
.L666:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	get8_packet
	cmp	eax, 3
	je	.L667
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L667:
	mov	DWORD PTR -1356[rbp], 0
	jmp	.L668
.L669:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	get8_packet
	mov	edx, eax
	mov	eax, DWORD PTR -1356[rbp]
	cdqe
	mov	BYTE PTR -102[rbp+rax], dl
	add	DWORD PTR -1356[rbp], 1
.L668:
	cmp	DWORD PTR -1356[rbp], 5
	jle	.L669
	lea	rax, -102[rbp]
	mov	rdi, rax
	call	vorbis_validate
	test	eax, eax
	jne	.L670
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L670:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	get32_packet
	mov	DWORD PTR -1284[rbp], eax
	mov	eax, DWORD PTR -1284[rbp]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_malloc
	mov	rdx, QWORD PTR -1384[rbp]
	mov	QWORD PTR 24[rdx], rax
	mov	rax, QWORD PTR -1384[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	jne	.L671
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L869
.L671:
	mov	DWORD PTR -1356[rbp], 0
	jmp	.L672
.L673:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	get8_packet
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	rcx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -1356[rbp]
	cdqe
	add	rax, rcx
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -1356[rbp], 1
.L672:
	mov	eax, DWORD PTR -1356[rbp]
	cmp	eax, DWORD PTR -1284[rbp]
	jl	.L673
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -1284[rbp]
	cdqe
	add	rax, rdx
	mov	BYTE PTR [rax], 0
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	get32_packet
	mov	rdx, QWORD PTR -1384[rbp]
	mov	DWORD PTR 32[rdx], eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 32[rax]
	cdqe
	sal	eax, 3
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_malloc
	mov	rdx, QWORD PTR -1384[rbp]
	mov	QWORD PTR 40[rdx], rax
	mov	rax, QWORD PTR -1384[rbp]
	mov	rax, QWORD PTR 40[rax]
	test	rax, rax
	jne	.L674
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L869
.L674:
	mov	DWORD PTR -1356[rbp], 0
	jmp	.L675
.L679:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	get32_packet
	mov	DWORD PTR -1284[rbp], eax
	mov	eax, DWORD PTR -1284[rbp]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -1384[rbp]
	mov	rcx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -1356[rbp]
	cdqe
	sal	rax, 3
	lea	rbx, [rcx+rax]
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_malloc
	mov	QWORD PTR [rbx], rax
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -1356[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L676
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L869
.L676:
	mov	DWORD PTR -1352[rbp], 0
	jmp	.L677
.L678:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	get8_packet
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	rcx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -1356[rbp]
	cdqe
	sal	rax, 3
	add	rax, rcx
	mov	rcx, QWORD PTR [rax]
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	add	rax, rcx
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -1352[rbp], 1
.L677:
	mov	eax, DWORD PTR -1352[rbp]
	cmp	eax, DWORD PTR -1284[rbp]
	jl	.L678
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -1356[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -1284[rbp]
	cdqe
	add	rax, rdx
	mov	BYTE PTR [rax], 0
	add	DWORD PTR -1356[rbp], 1
.L675:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	DWORD PTR -1356[rbp], eax
	jl	.L679
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	get8_packet
	mov	BYTE PTR -1367[rbp], al
	movzx	eax, BYTE PTR -1367[rbp]
	and	eax, 1
	test	eax, eax
	jne	.L680
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L680:
	mov	rax, QWORD PTR -1384[rbp]
	movzx	eax, BYTE PTR 1764[rax]
	movzx	edx, al
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	skip
	mov	rax, QWORD PTR -1384[rbp]
	mov	BYTE PTR 1764[rax], 0
.L681:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	next_segment
	mov	DWORD PTR -1284[rbp], eax
	mov	edx, DWORD PTR -1284[rbp]
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	skip
	mov	rax, QWORD PTR -1384[rbp]
	mov	BYTE PTR 1764[rax], 0
	cmp	DWORD PTR -1284[rbp], 0
	jne	.L681
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	start_packet
	test	eax, eax
	jne	.L682
	mov	eax, 0
	jmp	.L869
.L682:
	mov	rax, QWORD PTR -1384[rbp]
	movzx	eax, BYTE PTR 92[rax]
	test	al, al
	je	.L683
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	is_whole_packet_present
	test	eax, eax
	jne	.L683
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 156[rax]
	cmp	eax, 21
	jne	.L684
	mov	rax, QWORD PTR -1384[rbp]
	mov	DWORD PTR 156[rax], 20
.L684:
	mov	eax, 0
	jmp	.L869
.L683:
	call	crc32_init
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	get8_packet
	cmp	eax, 5
	je	.L685
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L685:
	mov	DWORD PTR -1356[rbp], 0
	jmp	.L686
.L687:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	get8_packet
	mov	edx, eax
	mov	eax, DWORD PTR -1356[rbp]
	cdqe
	mov	BYTE PTR -102[rbp+rax], dl
	add	DWORD PTR -1356[rbp], 1
.L686:
	cmp	DWORD PTR -1356[rbp], 5
	jle	.L687
	lea	rax, -102[rbp]
	mov	rdi, rax
	call	vorbis_validate
	test	eax, eax
	jne	.L688
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L688:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	get_bits
	add	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	DWORD PTR 176[rax], edx
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 176[rax]
	cdqe
	imul	eax, eax, 2120
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_malloc
	mov	rdx, QWORD PTR -1384[rbp]
	mov	QWORD PTR 184[rdx], rax
	mov	rax, QWORD PTR -1384[rbp]
	mov	rax, QWORD PTR 184[rax]
	test	rax, rax
	jne	.L689
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L869
.L689:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 176[rax]
	cdqe
	imul	rdx, rax, 2120
	mov	rax, QWORD PTR -1384[rbp]
	mov	rax, QWORD PTR 184[rax]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	DWORD PTR -1356[rbp], 0
	jmp	.L690
.L764:
	mov	DWORD PTR -1332[rbp], 0
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdx, QWORD PTR 184[rax]
	mov	eax, DWORD PTR -1356[rbp]
	cdqe
	imul	rax, rax, 2120
	add	rax, rdx
	mov	QWORD PTR -1120[rbp], rax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	get_bits
	mov	BYTE PTR -1367[rbp], al
	cmp	BYTE PTR -1367[rbp], 66
	je	.L691
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L691:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	get_bits
	mov	BYTE PTR -1367[rbp], al
	cmp	BYTE PTR -1367[rbp], 67
	je	.L692
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L692:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	get_bits
	mov	BYTE PTR -1367[rbp], al
	cmp	BYTE PTR -1367[rbp], 86
	je	.L693
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L693:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	get_bits
	mov	BYTE PTR -1367[rbp], al
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	get_bits
	sal	eax, 8
	mov	edx, eax
	movzx	eax, BYTE PTR -1367[rbp]
	add	eax, edx
	mov	edx, eax
	mov	rax, QWORD PTR -1120[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	get_bits
	mov	BYTE PTR -1367[rbp], al
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	get_bits
	mov	BYTE PTR -1365[rbp], al
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	get_bits
	sal	eax, 16
	mov	edx, eax
	movzx	eax, BYTE PTR -1365[rbp]
	sal	eax, 8
	add	edx, eax
	movzx	eax, BYTE PTR -1367[rbp]
	add	eax, edx
	mov	edx, eax
	mov	rax, QWORD PTR -1120[rbp]
	mov	DWORD PTR 4[rax], edx
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	get_bits
	mov	DWORD PTR -1236[rbp], eax
	cmp	DWORD PTR -1236[rbp], 0
	jne	.L694
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	get_bits
	mov	edx, eax
	jmp	.L695
.L694:
	mov	edx, 0
.L695:
	mov	rax, QWORD PTR -1120[rbp]
	mov	BYTE PTR 27[rax], dl
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L696
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 4[rax]
	test	eax, eax
	je	.L696
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L696:
	mov	rax, QWORD PTR -1120[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L697
	mov	rax, QWORD PTR -1120[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_temp_malloc
	mov	QWORD PTR -1176[rbp], rax
	jmp	.L698
.L697:
	mov	rax, QWORD PTR -1120[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_malloc
	mov	rdx, QWORD PTR -1120[rbp]
	mov	QWORD PTR 8[rdx], rax
	mov	rax, QWORD PTR -1120[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -1176[rbp], rax
.L698:
	cmp	QWORD PTR -1176[rbp], 0
	jne	.L699
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L869
.L699:
	cmp	DWORD PTR -1236[rbp], 0
	je	.L700
	mov	DWORD PTR -1328[rbp], 0
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 5
	mov	rdi, rax
	call	get_bits
	add	eax, 1
	mov	DWORD PTR -1324[rbp], eax
	jmp	.L701
.L704:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 4[rax]
	sub	eax, DWORD PTR -1328[rbp]
	mov	DWORD PTR -1228[rbp], eax
	mov	eax, DWORD PTR -1228[rbp]
	mov	edi, eax
	call	ilog
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	get_bits
	mov	DWORD PTR -1224[rbp], eax
	cmp	DWORD PTR -1324[rbp], 31
	jle	.L702
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L702:
	mov	edx, DWORD PTR -1328[rbp]
	mov	eax, DWORD PTR -1224[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	edx, eax
	jle	.L703
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L703:
	mov	eax, DWORD PTR -1224[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -1328[rbp]
	movsx	rcx, eax
	mov	rax, QWORD PTR -1176[rbp]
	add	rcx, rax
	mov	eax, DWORD PTR -1324[rbp]
	mov	esi, eax
	mov	rdi, rcx
	call	memset@PLT
	mov	eax, DWORD PTR -1224[rbp]
	add	DWORD PTR -1328[rbp], eax
	add	DWORD PTR -1324[rbp], 1
.L701:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -1328[rbp], eax
	jl	.L704
	jmp	.L705
.L700:
	mov	DWORD PTR -1352[rbp], 0
	jmp	.L706
.L711:
	mov	rax, QWORD PTR -1120[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L707
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	get_bits
	jmp	.L708
.L707:
	mov	eax, 1
.L708:
	mov	DWORD PTR -1232[rbp], eax
	cmp	DWORD PTR -1232[rbp], 0
	je	.L709
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 5
	mov	rdi, rax
	call	get_bits
	mov	ecx, eax
	mov	eax, DWORD PTR -1352[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -1176[rbp]
	add	rax, rdx
	lea	edx, 1[rcx]
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -1332[rbp], 1
	mov	eax, DWORD PTR -1352[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -1176[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 32
	jne	.L710
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L709:
	mov	eax, DWORD PTR -1352[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -1176[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], -1
.L710:
	add	DWORD PTR -1352[rbp], 1
.L706:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -1352[rbp], eax
	jl	.L711
.L705:
	mov	rax, QWORD PTR -1120[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L712
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 4[rax]
	sar	eax, 2
	cmp	DWORD PTR -1332[rbp], eax
	jl	.L712
	mov	rax, QWORD PTR -1120[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	edx, eax
	jle	.L713
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	DWORD PTR 16[rax], edx
.L713:
	mov	rax, QWORD PTR -1120[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_malloc
	mov	rdx, QWORD PTR -1120[rbp]
	mov	QWORD PTR 8[rdx], rax
	mov	rax, QWORD PTR -1120[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	jne	.L714
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L869
.L714:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 4[rax]
	movsx	rdx, eax
	mov	rax, QWORD PTR -1120[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	rcx, QWORD PTR -1176[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	memcpy@PLT
	mov	rax, QWORD PTR -1120[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rcx, QWORD PTR -1176[rbp]
	mov	rax, QWORD PTR -1384[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	setup_temp_free
	mov	rax, QWORD PTR -1120[rbp]
	mov	rax, QWORD PTR 8[rax]
	mov	QWORD PTR -1176[rbp], rax
	mov	rax, QWORD PTR -1120[rbp]
	mov	BYTE PTR 27[rax], 0
.L712:
	mov	rax, QWORD PTR -1120[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L715
	mov	eax, DWORD PTR -1332[rbp]
	mov	DWORD PTR -1336[rbp], eax
	jmp	.L716
.L715:
	mov	DWORD PTR -1336[rbp], 0
	mov	DWORD PTR -1352[rbp], 0
	jmp	.L717
.L719:
	mov	eax, DWORD PTR -1352[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -1176[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 10
	jbe	.L718
	mov	eax, DWORD PTR -1352[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -1176[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, -1
	je	.L718
	add	DWORD PTR -1336[rbp], 1
.L718:
	add	DWORD PTR -1352[rbp], 1
.L717:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -1352[rbp], eax
	jl	.L719
.L716:
	mov	rax, QWORD PTR -1120[rbp]
	mov	edx, DWORD PTR -1336[rbp]
	mov	DWORD PTR 2112[rax], edx
	mov	QWORD PTR -1184[rbp], 0
	mov	rax, QWORD PTR -1120[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	jne	.L720
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	sal	eax, 2
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_malloc
	mov	rdx, QWORD PTR -1120[rbp]
	mov	QWORD PTR 40[rdx], rax
	mov	rax, QWORD PTR -1120[rbp]
	mov	rax, QWORD PTR 40[rax]
	test	rax, rax
	jne	.L721
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L869
.L720:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 2112[rax]
	test	eax, eax
	je	.L722
	mov	rax, QWORD PTR -1120[rbp]
	mov	edx, DWORD PTR 2112[rax]
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_malloc
	mov	rdx, QWORD PTR -1120[rbp]
	mov	QWORD PTR 8[rdx], rax
	mov	rax, QWORD PTR -1120[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	jne	.L723
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L869
.L723:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 2112[rax]
	cdqe
	sal	eax, 2
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_temp_malloc
	mov	rdx, QWORD PTR -1120[rbp]
	mov	QWORD PTR 40[rdx], rax
	mov	rax, QWORD PTR -1120[rbp]
	mov	rax, QWORD PTR 40[rax]
	test	rax, rax
	jne	.L724
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L869
.L724:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 2112[rax]
	cdqe
	sal	eax, 2
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_temp_malloc
	mov	QWORD PTR -1184[rbp], rax
	cmp	QWORD PTR -1184[rbp], 0
	jne	.L722
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L869
.L722:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	edx, eax
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 2112[rax]
	cdqe
	sal	eax, 3
	add	eax, edx
	mov	DWORD PTR -1220[rbp], eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	DWORD PTR -1220[rbp], eax
	jbe	.L721
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR -1220[rbp]
	mov	DWORD PTR 16[rax], edx
.L721:
	mov	rax, QWORD PTR -1120[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rcx, QWORD PTR -1184[rbp]
	mov	rsi, QWORD PTR -1176[rbp]
	mov	rax, QWORD PTR -1120[rbp]
	mov	rdi, rax
	call	compute_codewords
	test	eax, eax
	jne	.L725
	mov	rax, QWORD PTR -1120[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L726
	mov	rcx, QWORD PTR -1184[rbp]
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	setup_temp_free
.L726:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L725:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 2112[rax]
	test	eax, eax
	je	.L727
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 2112[rax]
	add	eax, 1
	cdqe
	sal	eax, 2
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_malloc
	mov	rdx, QWORD PTR -1120[rbp]
	mov	QWORD PTR 2096[rdx], rax
	mov	rax, QWORD PTR -1120[rbp]
	mov	rax, QWORD PTR 2096[rax]
	test	rax, rax
	jne	.L728
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L869
.L728:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 2112[rax]
	add	eax, 1
	cdqe
	sal	eax, 2
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_malloc
	mov	rdx, QWORD PTR -1120[rbp]
	mov	QWORD PTR 2104[rdx], rax
	mov	rax, QWORD PTR -1120[rbp]
	mov	rax, QWORD PTR 2104[rax]
	test	rax, rax
	jne	.L729
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L869
.L729:
	mov	rax, QWORD PTR -1120[rbp]
	mov	rax, QWORD PTR 2104[rax]
	lea	rdx, 4[rax]
	mov	rax, QWORD PTR -1120[rbp]
	mov	QWORD PTR 2104[rax], rdx
	mov	rax, QWORD PTR -1120[rbp]
	mov	rax, QWORD PTR 2104[rax]
	sub	rax, 4
	mov	DWORD PTR [rax], -1
	mov	rdx, QWORD PTR -1184[rbp]
	mov	rcx, QWORD PTR -1176[rbp]
	mov	rax, QWORD PTR -1120[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	compute_sorted_huffman
.L727:
	mov	rax, QWORD PTR -1120[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L730
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 2112[rax]
	cdqe
	sal	eax, 2
	mov	edx, eax
	mov	rcx, QWORD PTR -1184[rbp]
	mov	rax, QWORD PTR -1384[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	setup_temp_free
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 2112[rax]
	cdqe
	sal	eax, 2
	mov	edx, eax
	mov	rax, QWORD PTR -1120[rbp]
	mov	rcx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -1384[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	setup_temp_free
	mov	rax, QWORD PTR -1120[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rcx, QWORD PTR -1176[rbp]
	mov	rax, QWORD PTR -1384[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	setup_temp_free
	mov	rax, QWORD PTR -1120[rbp]
	mov	QWORD PTR 40[rax], 0
.L730:
	mov	rax, QWORD PTR -1120[rbp]
	mov	rdi, rax
	call	compute_accelerated_huffman
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 4
	mov	rdi, rax
	call	get_bits
	mov	edx, eax
	mov	rax, QWORD PTR -1120[rbp]
	mov	BYTE PTR 25[rax], dl
	mov	rax, QWORD PTR -1120[rbp]
	movzx	eax, BYTE PTR 25[rax]
	cmp	al, 2
	jbe	.L731
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L731:
	mov	rax, QWORD PTR -1120[rbp]
	movzx	eax, BYTE PTR 25[rax]
	test	al, al
	je	.L732
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 32
	mov	rdi, rax
	call	get_bits
	mov	edi, eax
	call	float32_unpack
	movd	eax, xmm0
	mov	rdx, QWORD PTR -1120[rbp]
	mov	DWORD PTR 16[rdx], eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 32
	mov	rdi, rax
	call	get_bits
	mov	edi, eax
	call	float32_unpack
	movd	eax, xmm0
	mov	rdx, QWORD PTR -1120[rbp]
	mov	DWORD PTR 20[rdx], eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 4
	mov	rdi, rax
	call	get_bits
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -1120[rbp]
	mov	BYTE PTR 24[rax], dl
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	get_bits
	mov	edx, eax
	mov	rax, QWORD PTR -1120[rbp]
	mov	BYTE PTR 26[rax], dl
	mov	rax, QWORD PTR -1120[rbp]
	movzx	eax, BYTE PTR 25[rax]
	cmp	al, 1
	jne	.L733
	mov	rax, QWORD PTR -1120[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	esi, edx
	mov	edi, eax
	call	lookup1_values
	mov	DWORD PTR -1216[rbp], eax
	cmp	DWORD PTR -1216[rbp], 0
	jns	.L734
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L734:
	mov	edx, DWORD PTR -1216[rbp]
	mov	rax, QWORD PTR -1120[rbp]
	mov	DWORD PTR 28[rax], edx
	jmp	.L735
.L733:
	mov	rax, QWORD PTR -1120[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR [rax]
	imul	eax, edx
	mov	edx, eax
	mov	rax, QWORD PTR -1120[rbp]
	mov	DWORD PTR 28[rax], edx
.L735:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 28[rax]
	test	eax, eax
	jne	.L736
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L736:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 28[rax]
	add	eax, eax
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_temp_malloc
	mov	QWORD PTR -1112[rbp], rax
	cmp	QWORD PTR -1112[rbp], 0
	jne	.L737
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L869
.L737:
	mov	DWORD PTR -1352[rbp], 0
	jmp	.L738
.L740:
	mov	rax, QWORD PTR -1120[rbp]
	movzx	eax, BYTE PTR 24[rax]
	movzx	edx, al
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	get_bits
	mov	DWORD PTR -1188[rbp], eax
	cmp	DWORD PTR -1188[rbp], -1
	jne	.L739
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 28[rax]
	add	eax, eax
	mov	edx, eax
	mov	rcx, QWORD PTR -1112[rbp]
	mov	rax, QWORD PTR -1384[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	setup_temp_free
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L739:
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -1112[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -1188[rbp]
	mov	WORD PTR [rax], dx
	add	DWORD PTR -1352[rbp], 1
.L738:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 28[rax]
	cmp	DWORD PTR -1352[rbp], eax
	jl	.L740
	mov	rax, QWORD PTR -1120[rbp]
	movzx	eax, BYTE PTR 25[rax]
	cmp	al, 1
	jne	.L741
	mov	rax, QWORD PTR -1120[rbp]
	movzx	eax, BYTE PTR 27[rax]
	movzx	eax, al
	mov	DWORD PTR -1208[rbp], eax
	pxor	xmm0, xmm0
	movss	DWORD PTR -1320[rbp], xmm0
	cmp	DWORD PTR -1208[rbp], 0
	je	.L742
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 2112[rax]
	test	eax, eax
	je	.L871
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 2112[rax]
	cdqe
	mov	edx, eax
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	imul	eax, edx
	sal	eax, 2
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_malloc
	mov	rdx, QWORD PTR -1120[rbp]
	mov	QWORD PTR 32[rdx], rax
	jmp	.L745
.L742:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	mov	edx, eax
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	imul	eax, edx
	sal	eax, 2
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_malloc
	mov	rdx, QWORD PTR -1120[rbp]
	mov	QWORD PTR 32[rdx], rax
.L745:
	mov	rax, QWORD PTR -1120[rbp]
	mov	rax, QWORD PTR 32[rax]
	test	rax, rax
	jne	.L746
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 28[rax]
	add	eax, eax
	mov	edx, eax
	mov	rcx, QWORD PTR -1112[rbp]
	mov	rax, QWORD PTR -1384[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	setup_temp_free
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L869
.L746:
	cmp	DWORD PTR -1208[rbp], 0
	je	.L747
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 2112[rax]
	jmp	.L748
.L747:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 4[rax]
.L748:
	mov	DWORD PTR -1204[rbp], eax
	mov	DWORD PTR -1352[rbp], 0
	jmp	.L749
.L759:
	cmp	DWORD PTR -1208[rbp], 0
	je	.L750
	mov	rax, QWORD PTR -1120[rbp]
	mov	rdx, QWORD PTR 2104[rax]
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	jmp	.L751
.L750:
	mov	eax, DWORD PTR -1352[rbp]
.L751:
	mov	DWORD PTR -1200[rbp], eax
	mov	DWORD PTR -1316[rbp], 1
	mov	DWORD PTR -1348[rbp], 0
	jmp	.L752
.L758:
	mov	eax, DWORD PTR -1200[rbp]
	mov	edx, 0
	div	DWORD PTR -1316[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -1120[rbp]
	mov	ecx, DWORD PTR 28[rax]
	mov	eax, edx
	mov	edx, 0
	div	ecx
	mov	eax, edx
	mov	DWORD PTR -1196[rbp], eax
	mov	eax, DWORD PTR -1196[rbp]
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -1112[rbp]
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, eax
	movss	DWORD PTR -1192[rbp], xmm0
	mov	eax, DWORD PTR -1196[rbp]
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -1112[rbp]
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, eax
	mov	rax, QWORD PTR -1120[rbp]
	movss	xmm0, DWORD PTR 20[rax]
	mulss	xmm1, xmm0
	mov	rax, QWORD PTR -1120[rbp]
	movss	xmm0, DWORD PTR 16[rax]
	addss	xmm0, xmm1
	movss	xmm1, DWORD PTR -1320[rbp]
	addss	xmm0, xmm1
	movss	DWORD PTR -1192[rbp], xmm0
	mov	rax, QWORD PTR -1120[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR [rax]
	imul	eax, DWORD PTR -1352[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -1348[rbp]
	add	eax, ecx
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR -1192[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -1120[rbp]
	movzx	eax, BYTE PTR 26[rax]
	test	al, al
	je	.L753
	movss	xmm0, DWORD PTR -1192[rbp]
	movss	DWORD PTR -1320[rbp], xmm0
.L753:
	mov	eax, DWORD PTR -1348[rbp]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	jge	.L754
	mov	rax, QWORD PTR -1120[rbp]
	mov	edx, DWORD PTR 28[rax]
	mov	ecx, 0
	mov	eax, edx
	mul	DWORD PTR -1316[rbp]
	jno	.L755
	mov	ecx, 1
.L755:
	mov	eax, ecx
	test	eax, eax
	je	.L757
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 28[rax]
	add	eax, eax
	mov	edx, eax
	mov	rcx, QWORD PTR -1112[rbp]
	mov	rax, QWORD PTR -1384[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	setup_temp_free
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L757:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 28[rax]
	mov	edx, DWORD PTR -1316[rbp]
	imul	eax, edx
	mov	DWORD PTR -1316[rbp], eax
.L754:
	add	DWORD PTR -1348[rbp], 1
.L752:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -1348[rbp], eax
	jl	.L758
	add	DWORD PTR -1352[rbp], 1
.L749:
	mov	eax, DWORD PTR -1352[rbp]
	cmp	eax, DWORD PTR -1204[rbp]
	jl	.L759
	mov	rax, QWORD PTR -1120[rbp]
	mov	BYTE PTR 25[rax], 2
	jmp	.L744
.L741:
	pxor	xmm0, xmm0
	movss	DWORD PTR -1312[rbp], xmm0
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 28[rax]
	sal	eax, 2
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_malloc
	mov	rdx, QWORD PTR -1120[rbp]
	mov	QWORD PTR 32[rdx], rax
	mov	rax, QWORD PTR -1120[rbp]
	mov	rax, QWORD PTR 32[rax]
	test	rax, rax
	jne	.L760
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 28[rax]
	add	eax, eax
	mov	edx, eax
	mov	rcx, QWORD PTR -1112[rbp]
	mov	rax, QWORD PTR -1384[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	setup_temp_free
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L869
.L760:
	mov	DWORD PTR -1352[rbp], 0
	jmp	.L761
.L763:
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -1112[rbp]
	add	rax, rdx
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, eax
	mov	rax, QWORD PTR -1120[rbp]
	movss	xmm0, DWORD PTR 20[rax]
	mulss	xmm1, xmm0
	mov	rax, QWORD PTR -1120[rbp]
	movss	xmm0, DWORD PTR 16[rax]
	addss	xmm0, xmm1
	movss	xmm1, DWORD PTR -1312[rbp]
	addss	xmm0, xmm1
	movss	DWORD PTR -1212[rbp], xmm0
	mov	rax, QWORD PTR -1120[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR -1212[rbp]
	movss	DWORD PTR [rax], xmm0
	mov	rax, QWORD PTR -1120[rbp]
	movzx	eax, BYTE PTR 26[rax]
	test	al, al
	je	.L762
	movss	xmm0, DWORD PTR -1212[rbp]
	movss	DWORD PTR -1312[rbp], xmm0
.L762:
	add	DWORD PTR -1352[rbp], 1
.L761:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 28[rax]
	cmp	DWORD PTR -1352[rbp], eax
	jl	.L763
	jmp	.L744
.L871:
	nop
.L744:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 28[rax]
	add	eax, eax
	mov	edx, eax
	mov	rcx, QWORD PTR -1112[rbp]
	mov	rax, QWORD PTR -1384[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	setup_temp_free
.L732:
	add	DWORD PTR -1356[rbp], 1
.L690:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 176[rax]
	cmp	DWORD PTR -1356[rbp], eax
	jl	.L764
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 6
	mov	rdi, rax
	call	get_bits
	add	eax, 1
	mov	BYTE PTR -1367[rbp], al
	mov	DWORD PTR -1356[rbp], 0
	jmp	.L765
.L767:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 16
	mov	rdi, rax
	call	get_bits
	mov	DWORD PTR -1240[rbp], eax
	cmp	DWORD PTR -1240[rbp], 0
	je	.L766
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L766:
	add	DWORD PTR -1356[rbp], 1
.L765:
	movzx	eax, BYTE PTR -1367[rbp]
	cmp	DWORD PTR -1356[rbp], eax
	jl	.L767
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 6
	mov	rdi, rax
	call	get_bits
	add	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	DWORD PTR 192[rax], edx
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 192[rax]
	cdqe
	imul	eax, eax, 1596
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_malloc
	mov	rdx, QWORD PTR -1384[rbp]
	mov	QWORD PTR 328[rdx], rax
	mov	rax, QWORD PTR -1384[rbp]
	mov	rax, QWORD PTR 328[rax]
	test	rax, rax
	jne	.L768
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L869
.L768:
	mov	DWORD PTR -1356[rbp], 0
	jmp	.L769
.L798:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 16
	mov	rdi, rax
	call	get_bits
	mov	ecx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR -1356[rbp]
	movsx	rdx, edx
	add	rdx, 96
	mov	WORD PTR 4[rax+rdx*2], cx
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR -1356[rbp]
	movsx	rdx, edx
	add	rdx, 96
	movzx	eax, WORD PTR 4[rax+rdx*2]
	cmp	ax, 1
	jbe	.L770
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L770:
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR -1356[rbp]
	movsx	rdx, edx
	add	rdx, 96
	movzx	eax, WORD PTR 4[rax+rdx*2]
	test	ax, ax
	jne	.L771
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdx, QWORD PTR 328[rax]
	mov	eax, DWORD PTR -1356[rbp]
	cdqe
	imul	rax, rax, 1596
	add	rax, rdx
	mov	QWORD PTR -1128[rbp], rax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	get_bits
	mov	edx, eax
	mov	rax, QWORD PTR -1128[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 16
	mov	rdi, rax
	call	get_bits
	mov	edx, eax
	mov	rax, QWORD PTR -1128[rbp]
	mov	WORD PTR 2[rax], dx
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 16
	mov	rdi, rax
	call	get_bits
	mov	edx, eax
	mov	rax, QWORD PTR -1128[rbp]
	mov	WORD PTR 4[rax], dx
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 6
	mov	rdi, rax
	call	get_bits
	mov	edx, eax
	mov	rax, QWORD PTR -1128[rbp]
	mov	BYTE PTR 6[rax], dl
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	get_bits
	mov	edx, eax
	mov	rax, QWORD PTR -1128[rbp]
	mov	BYTE PTR 7[rax], dl
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 4
	mov	rdi, rax
	call	get_bits
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -1128[rbp]
	mov	BYTE PTR 8[rax], dl
	mov	DWORD PTR -1352[rbp], 0
	jmp	.L772
.L773:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	get_bits
	mov	ecx, eax
	mov	rdx, QWORD PTR -1128[rbp]
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	mov	BYTE PTR 9[rdx+rax], cl
	add	DWORD PTR -1352[rbp], 1
.L772:
	mov	rax, QWORD PTR -1128[rbp]
	movzx	eax, BYTE PTR 8[rax]
	movzx	eax, al
	cmp	DWORD PTR -1352[rbp], eax
	jl	.L773
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 4
	mov	rdi, rax
	call	error
	jmp	.L869
.L771:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdx, QWORD PTR 328[rax]
	mov	eax, DWORD PTR -1356[rbp]
	cdqe
	imul	rax, rax, 1596
	add	rax, rdx
	mov	QWORD PTR -1136[rbp], rax
	mov	DWORD PTR -1308[rbp], -1
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 5
	mov	rdi, rax
	call	get_bits
	mov	edx, eax
	mov	rax, QWORD PTR -1136[rbp]
	mov	BYTE PTR [rax], dl
	mov	DWORD PTR -1352[rbp], 0
	jmp	.L774
.L776:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 4
	mov	rdi, rax
	call	get_bits
	mov	ecx, eax
	mov	rdx, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	mov	BYTE PTR 1[rdx+rax], cl
	mov	rdx, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	movzx	eax, BYTE PTR 1[rdx+rax]
	movzx	eax, al
	cmp	DWORD PTR -1308[rbp], eax
	jge	.L775
	mov	rdx, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	movzx	eax, BYTE PTR 1[rdx+rax]
	movzx	eax, al
	mov	DWORD PTR -1308[rbp], eax
.L775:
	add	DWORD PTR -1352[rbp], 1
.L774:
	mov	rax, QWORD PTR -1136[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cmp	DWORD PTR -1352[rbp], eax
	jl	.L776
	mov	DWORD PTR -1352[rbp], 0
	jmp	.L777
.L783:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	get_bits
	lea	ecx, 1[rax]
	mov	rdx, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	mov	BYTE PTR 33[rdx+rax], cl
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	get_bits
	mov	ecx, eax
	mov	rdx, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	mov	BYTE PTR 49[rdx+rax], cl
	mov	rdx, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	movzx	eax, BYTE PTR 49[rdx+rax]
	test	al, al
	je	.L778
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	get_bits
	mov	ecx, eax
	mov	rdx, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	mov	BYTE PTR 65[rdx+rax], cl
	mov	rdx, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	movzx	eax, BYTE PTR 65[rdx+rax]
	movzx	edx, al
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 176[rax]
	cmp	edx, eax
	jl	.L778
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L778:
	mov	DWORD PTR -1348[rbp], 0
	jmp	.L780
.L782:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	get_bits
	sub	eax, 1
	mov	ecx, eax
	mov	rax, QWORD PTR -1136[rbp]
	mov	edx, DWORD PTR -1348[rbp]
	movsx	rsi, edx
	mov	edx, DWORD PTR -1352[rbp]
	movsx	rdx, edx
	sal	rdx, 3
	add	rdx, rsi
	add	rdx, 40
	mov	WORD PTR 2[rax+rdx*2], cx
	mov	rax, QWORD PTR -1136[rbp]
	mov	edx, DWORD PTR -1348[rbp]
	movsx	rcx, edx
	mov	edx, DWORD PTR -1352[rbp]
	movsx	rdx, edx
	sal	rdx, 3
	add	rdx, rcx
	add	rdx, 40
	movzx	eax, WORD PTR 2[rax+rdx*2]
	movsx	edx, ax
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 176[rax]
	cmp	edx, eax
	jl	.L781
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L781:
	add	DWORD PTR -1348[rbp], 1
.L780:
	mov	rdx, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	movzx	eax, BYTE PTR 49[rdx+rax]
	movzx	eax, al
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR -1348[rbp], eax
	jl	.L782
	add	DWORD PTR -1352[rbp], 1
.L777:
	mov	eax, DWORD PTR -1352[rbp]
	cmp	eax, DWORD PTR -1308[rbp]
	jle	.L783
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	get_bits
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -1136[rbp]
	mov	BYTE PTR 1588[rax], dl
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 4
	mov	rdi, rax
	call	get_bits
	mov	edx, eax
	mov	rax, QWORD PTR -1136[rbp]
	mov	BYTE PTR 1589[rax], dl
	mov	rax, QWORD PTR -1136[rbp]
	mov	WORD PTR 338[rax], 0
	mov	rax, QWORD PTR -1136[rbp]
	movzx	eax, BYTE PTR 1589[rax]
	movzx	eax, al
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	mov	edx, eax
	mov	rax, QWORD PTR -1136[rbp]
	mov	WORD PTR 340[rax], dx
	mov	rax, QWORD PTR -1136[rbp]
	mov	DWORD PTR 1592[rax], 2
	mov	DWORD PTR -1352[rbp], 0
	jmp	.L784
.L787:
	mov	rdx, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	movzx	eax, BYTE PTR 1[rdx+rax]
	movzx	eax, al
	mov	DWORD PTR -1244[rbp], eax
	mov	DWORD PTR -1348[rbp], 0
	jmp	.L785
.L786:
	mov	rax, QWORD PTR -1136[rbp]
	movzx	eax, BYTE PTR 1589[rax]
	movzx	edx, al
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	get_bits
	mov	rdx, QWORD PTR -1136[rbp]
	mov	edx, DWORD PTR 1592[rdx]
	mov	ecx, eax
	mov	rax, QWORD PTR -1136[rbp]
	movsx	rdx, edx
	add	rdx, 168
	mov	WORD PTR 2[rax+rdx*2], cx
	mov	rax, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR 1592[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -1136[rbp]
	mov	DWORD PTR 1592[rax], edx
	add	DWORD PTR -1348[rbp], 1
.L785:
	mov	rdx, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR -1244[rbp]
	cdqe
	movzx	eax, BYTE PTR 33[rdx+rax]
	movzx	eax, al
	cmp	DWORD PTR -1348[rbp], eax
	jl	.L786
	add	DWORD PTR -1352[rbp], 1
.L784:
	mov	rax, QWORD PTR -1136[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cmp	DWORD PTR -1352[rbp], eax
	jl	.L787
	mov	DWORD PTR -1352[rbp], 0
	jmp	.L788
.L789:
	mov	rax, QWORD PTR -1136[rbp]
	mov	edx, DWORD PTR -1352[rbp]
	movsx	rdx, edx
	add	rdx, 168
	movzx	edx, WORD PTR 2[rax+rdx*2]
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	mov	WORD PTR -1104[rbp+rax*4], dx
	mov	eax, DWORD PTR -1352[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	mov	WORD PTR -1102[rbp+rax*4], dx
	add	DWORD PTR -1352[rbp], 1
.L788:
	mov	rax, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR 1592[rax]
	cmp	DWORD PTR -1352[rbp], eax
	jl	.L789
	mov	rax, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR 1592[rax]
	movsx	rsi, eax
	lea	rax, -1104[rbp]
	lea	rcx, point_compare[rip]
	mov	edx, 4
	mov	rdi, rax
	call	qsort@PLT
	mov	DWORD PTR -1352[rbp], 0
	jmp	.L790
.L792:
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	movzx	edx, WORD PTR -1104[rbp+rax*4]
	mov	eax, DWORD PTR -1352[rbp]
	add	eax, 1
	cdqe
	movzx	eax, WORD PTR -1104[rbp+rax*4]
	cmp	dx, ax
	jne	.L791
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L791:
	add	DWORD PTR -1352[rbp], 1
.L790:
	mov	rax, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR 1592[rax]
	sub	eax, 1
	cmp	DWORD PTR -1352[rbp], eax
	jl	.L792
	mov	DWORD PTR -1352[rbp], 0
	jmp	.L793
.L794:
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	movzx	eax, WORD PTR -1102[rbp+rax*4]
	mov	ecx, eax
	mov	rdx, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	mov	BYTE PTR 838[rdx+rax], cl
	add	DWORD PTR -1352[rbp], 1
.L793:
	mov	rax, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR 1592[rax]
	cmp	DWORD PTR -1352[rbp], eax
	jl	.L794
	mov	DWORD PTR -1352[rbp], 2
	jmp	.L795
.L796:
	mov	DWORD PTR -1364[rbp], 0
	mov	DWORD PTR -1360[rbp], 0
	mov	rax, QWORD PTR -1136[rbp]
	lea	rdi, 338[rax]
	lea	rcx, -1360[rbp]
	lea	rdx, -1364[rbp]
	mov	eax, DWORD PTR -1352[rbp]
	mov	esi, eax
	call	neighbors
	mov	eax, DWORD PTR -1364[rbp]
	mov	ecx, eax
	mov	rax, QWORD PTR -1136[rbp]
	mov	edx, DWORD PTR -1352[rbp]
	movsx	rdx, edx
	add	rdx, 544
	mov	BYTE PTR [rax+rdx*2], cl
	mov	eax, DWORD PTR -1360[rbp]
	mov	ecx, eax
	mov	rax, QWORD PTR -1136[rbp]
	mov	edx, DWORD PTR -1352[rbp]
	movsx	rdx, edx
	mov	BYTE PTR 1089[rax+rdx*2], cl
	add	DWORD PTR -1352[rbp], 1
.L795:
	mov	rax, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR 1592[rax]
	cmp	DWORD PTR -1352[rbp], eax
	jl	.L796
	mov	rax, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR 1592[rax]
	cmp	DWORD PTR -1340[rbp], eax
	jge	.L797
	mov	rax, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR 1592[rax]
	mov	DWORD PTR -1340[rbp], eax
.L797:
	add	DWORD PTR -1356[rbp], 1
.L769:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 192[rax]
	cmp	DWORD PTR -1356[rbp], eax
	jl	.L798
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 6
	mov	rdi, rax
	call	get_bits
	add	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	DWORD PTR 336[rax], edx
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 336[rax]
	cdqe
	sal	eax, 5
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_malloc
	mov	rdx, QWORD PTR -1384[rbp]
	mov	QWORD PTR 472[rdx], rax
	mov	rax, QWORD PTR -1384[rbp]
	mov	rax, QWORD PTR 472[rax]
	test	rax, rax
	jne	.L799
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L869
.L799:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 336[rax]
	cdqe
	sal	rax, 5
	mov	rdx, rax
	mov	rax, QWORD PTR -1384[rbp]
	mov	rax, QWORD PTR 472[rax]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	DWORD PTR -1356[rbp], 0
	jmp	.L800
.L821:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdx, QWORD PTR 472[rax]
	mov	eax, DWORD PTR -1356[rbp]
	cdqe
	sal	rax, 5
	add	rax, rdx
	mov	QWORD PTR -1144[rbp], rax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 16
	mov	rdi, rax
	call	get_bits
	mov	ecx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR -1356[rbp]
	movsx	rdx, edx
	add	rdx, 168
	mov	WORD PTR 4[rax+rdx*2], cx
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR -1356[rbp]
	movsx	rdx, edx
	add	rdx, 168
	movzx	eax, WORD PTR 4[rax+rdx*2]
	cmp	ax, 2
	jbe	.L801
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L801:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 24
	mov	rdi, rax
	call	get_bits
	mov	rdx, QWORD PTR -1144[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 24
	mov	rdi, rax
	call	get_bits
	mov	rdx, QWORD PTR -1144[rbp]
	mov	DWORD PTR 4[rdx], eax
	mov	rax, QWORD PTR -1144[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -1144[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	jnb	.L803
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L803:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 24
	mov	rdi, rax
	call	get_bits
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -1144[rbp]
	mov	DWORD PTR 8[rax], edx
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 6
	mov	rdi, rax
	call	get_bits
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -1144[rbp]
	mov	BYTE PTR 12[rax], dl
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	get_bits
	mov	edx, eax
	mov	rax, QWORD PTR -1144[rbp]
	mov	BYTE PTR 13[rax], dl
	mov	rax, QWORD PTR -1144[rbp]
	movzx	eax, BYTE PTR 13[rax]
	movzx	edx, al
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 176[rax]
	cmp	edx, eax
	jl	.L804
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L804:
	mov	DWORD PTR -1352[rbp], 0
	jmp	.L805
.L807:
	mov	BYTE PTR -1368[rbp], 0
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	get_bits
	mov	BYTE PTR -1366[rbp], al
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	get_bits
	test	eax, eax
	je	.L806
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 5
	mov	rdi, rax
	call	get_bits
	mov	BYTE PTR -1368[rbp], al
.L806:
	movzx	eax, BYTE PTR -1368[rbp]
	lea	edx, 0[0+rax*8]
	movzx	eax, BYTE PTR -1366[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	mov	BYTE PTR -96[rbp+rax], dl
	add	DWORD PTR -1352[rbp], 1
.L805:
	mov	rax, QWORD PTR -1144[rbp]
	movzx	eax, BYTE PTR 12[rax]
	movzx	eax, al
	cmp	DWORD PTR -1352[rbp], eax
	jl	.L807
	mov	rax, QWORD PTR -1144[rbp]
	movzx	eax, BYTE PTR 12[rax]
	movzx	eax, al
	sal	eax, 4
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_malloc
	mov	rdx, QWORD PTR -1144[rbp]
	mov	QWORD PTR 24[rdx], rax
	mov	rax, QWORD PTR -1144[rbp]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	jne	.L808
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L869
.L808:
	mov	DWORD PTR -1352[rbp], 0
	jmp	.L809
.L814:
	mov	DWORD PTR -1348[rbp], 0
	jmp	.L810
.L813:
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	movzx	eax, BYTE PTR -96[rbp+rax]
	movzx	edx, al
	mov	eax, DWORD PTR -1348[rbp]
	mov	ecx, eax
	sar	edx, cl
	mov	eax, edx
	and	eax, 1
	test	eax, eax
	je	.L811
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	get_bits
	mov	rdx, QWORD PTR -1144[rbp]
	mov	rcx, QWORD PTR 24[rdx]
	mov	edx, DWORD PTR -1352[rbp]
	movsx	rdx, edx
	sal	rdx, 4
	add	rdx, rcx
	mov	ecx, eax
	mov	eax, DWORD PTR -1348[rbp]
	cdqe
	mov	WORD PTR [rdx+rax*2], cx
	mov	rax, QWORD PTR -1144[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	sal	rax, 4
	add	rdx, rax
	mov	eax, DWORD PTR -1348[rbp]
	cdqe
	movzx	eax, WORD PTR [rdx+rax*2]
	movsx	edx, ax
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 176[rax]
	cmp	edx, eax
	jl	.L812
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L811:
	mov	rax, QWORD PTR -1144[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	sal	rax, 4
	add	rdx, rax
	mov	eax, DWORD PTR -1348[rbp]
	cdqe
	mov	WORD PTR [rdx+rax*2], -1
.L812:
	add	DWORD PTR -1348[rbp], 1
.L810:
	cmp	DWORD PTR -1348[rbp], 7
	jle	.L813
	add	DWORD PTR -1352[rbp], 1
.L809:
	mov	rax, QWORD PTR -1144[rbp]
	movzx	eax, BYTE PTR 12[rax]
	movzx	eax, al
	cmp	DWORD PTR -1352[rbp], eax
	jl	.L814
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdx, QWORD PTR 184[rax]
	mov	rax, QWORD PTR -1144[rbp]
	movzx	eax, BYTE PTR 13[rax]
	movzx	eax, al
	imul	rax, rax, 2120
	add	rax, rdx
	mov	eax, DWORD PTR 4[rax]
	cdqe
	sal	eax, 3
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_malloc
	mov	rdx, QWORD PTR -1144[rbp]
	mov	QWORD PTR 16[rdx], rax
	mov	rax, QWORD PTR -1144[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	jne	.L815
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L869
.L815:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdx, QWORD PTR 184[rax]
	mov	rax, QWORD PTR -1144[rbp]
	movzx	eax, BYTE PTR 13[rax]
	movzx	eax, al
	imul	rax, rax, 2120
	add	rax, rdx
	mov	eax, DWORD PTR 4[rax]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -1144[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	DWORD PTR -1352[rbp], 0
	jmp	.L816
.L820:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdx, QWORD PTR 184[rax]
	mov	rax, QWORD PTR -1144[rbp]
	movzx	eax, BYTE PTR 13[rax]
	movzx	eax, al
	imul	rax, rax, 2120
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -1248[rbp], eax
	mov	eax, DWORD PTR -1352[rbp]
	mov	DWORD PTR -1304[rbp], eax
	mov	rax, QWORD PTR -1144[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	sal	rax, 3
	lea	rbx, [rdx+rax]
	mov	edx, DWORD PTR -1248[rbp]
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_malloc
	mov	QWORD PTR [rbx], rax
	mov	rax, QWORD PTR -1144[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L817
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L869
.L817:
	mov	eax, DWORD PTR -1248[rbp]
	sub	eax, 1
	mov	DWORD PTR -1348[rbp], eax
	jmp	.L818
.L819:
	mov	rax, QWORD PTR -1144[rbp]
	movzx	eax, BYTE PTR 12[rax]
	movzx	ecx, al
	mov	eax, DWORD PTR -1304[rbp]
	cdq
	idiv	ecx
	mov	ecx, edx
	mov	rax, QWORD PTR -1144[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -1348[rbp]
	cdqe
	add	rax, rdx
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -1144[rbp]
	movzx	eax, BYTE PTR 12[rax]
	movzx	ebx, al
	mov	eax, DWORD PTR -1304[rbp]
	cdq
	idiv	ebx
	mov	DWORD PTR -1304[rbp], eax
	sub	DWORD PTR -1348[rbp], 1
.L818:
	cmp	DWORD PTR -1348[rbp], 0
	jns	.L819
	add	DWORD PTR -1352[rbp], 1
.L816:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdx, QWORD PTR 184[rax]
	mov	rax, QWORD PTR -1144[rbp]
	movzx	eax, BYTE PTR 13[rax]
	movzx	eax, al
	imul	rax, rax, 2120
	add	rax, rdx
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -1352[rbp], eax
	jl	.L820
	add	DWORD PTR -1356[rbp], 1
.L800:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 336[rax]
	cmp	DWORD PTR -1356[rbp], eax
	jl	.L821
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 6
	mov	rdi, rax
	call	get_bits
	add	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	DWORD PTR 480[rax], edx
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 480[rax]
	cdqe
	mov	edx, eax
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	sal	eax, 4
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_malloc
	mov	rdx, QWORD PTR -1384[rbp]
	mov	QWORD PTR 488[rdx], rax
	mov	rax, QWORD PTR -1384[rbp]
	mov	rax, QWORD PTR 488[rax]
	test	rax, rax
	jne	.L822
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L869
.L822:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 480[rax]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -1384[rbp]
	mov	rax, QWORD PTR 488[rax]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	DWORD PTR -1356[rbp], 0
	jmp	.L823
.L849:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rcx, QWORD PTR 488[rax]
	mov	eax, DWORD PTR -1356[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	add	rax, rcx
	mov	QWORD PTR -1152[rbp], rax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 16
	mov	rdi, rax
	call	get_bits
	mov	DWORD PTR -1252[rbp], eax
	cmp	DWORD PTR -1252[rbp], 0
	je	.L824
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L824:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	mov	edx, eax
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_malloc
	mov	rdx, QWORD PTR -1152[rbp]
	mov	QWORD PTR 8[rdx], rax
	mov	rax, QWORD PTR -1152[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	jne	.L825
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L869
.L825:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	get_bits
	test	eax, eax
	je	.L826
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 4
	mov	rdi, rax
	call	get_bits
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -1152[rbp]
	mov	BYTE PTR 16[rax], dl
	jmp	.L827
.L826:
	mov	rax, QWORD PTR -1152[rbp]
	mov	BYTE PTR 16[rax], 1
.L827:
	mov	rax, QWORD PTR -1152[rbp]
	movzx	eax, BYTE PTR 16[rax]
	movzx	eax, al
	cmp	DWORD PTR -1344[rbp], eax
	jge	.L828
	mov	rax, QWORD PTR -1152[rbp]
	movzx	eax, BYTE PTR 16[rax]
	movzx	eax, al
	mov	DWORD PTR -1344[rbp], eax
.L828:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	get_bits
	test	eax, eax
	je	.L829
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	get_bits
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -1152[rbp]
	mov	WORD PTR [rax], dx
	mov	rax, QWORD PTR -1152[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	edx, ax
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	edx, eax
	jle	.L830
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L830:
	mov	DWORD PTR -1348[rbp], 0
	jmp	.L831
.L835:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 4[rax]
	sub	eax, 1
	mov	edi, eax
	call	ilog
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	get_bits
	mov	ecx, eax
	mov	rax, QWORD PTR -1152[rbp]
	mov	rsi, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -1348[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rsi
	mov	edx, ecx
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 4[rax]
	sub	eax, 1
	mov	edi, eax
	call	ilog
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	get_bits
	mov	ecx, eax
	mov	rax, QWORD PTR -1152[rbp]
	mov	rsi, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -1348[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rsi
	mov	edx, ecx
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -1152[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -1348[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	edx, eax
	jl	.L832
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L832:
	mov	rax, QWORD PTR -1152[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -1348[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	movzx	eax, BYTE PTR 1[rax]
	movzx	edx, al
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	edx, eax
	jl	.L833
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L833:
	mov	rax, QWORD PTR -1152[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -1348[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	movzx	ecx, BYTE PTR [rax]
	mov	rax, QWORD PTR -1152[rbp]
	mov	rsi, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -1348[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rsi
	movzx	eax, BYTE PTR 1[rax]
	cmp	cl, al
	jne	.L834
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L834:
	add	DWORD PTR -1348[rbp], 1
.L831:
	mov	rax, QWORD PTR -1152[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	cmp	DWORD PTR -1348[rbp], eax
	jl	.L835
	jmp	.L836
.L829:
	mov	rax, QWORD PTR -1152[rbp]
	mov	WORD PTR [rax], 0
.L836:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	get_bits
	test	eax, eax
	je	.L837
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L837:
	mov	rax, QWORD PTR -1152[rbp]
	movzx	eax, BYTE PTR 16[rax]
	cmp	al, 1
	jbe	.L838
	mov	DWORD PTR -1352[rbp], 0
	jmp	.L839
.L841:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 4
	mov	rdi, rax
	call	get_bits
	mov	ecx, eax
	mov	rax, QWORD PTR -1152[rbp]
	mov	rsi, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -1352[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rsi
	mov	edx, ecx
	mov	BYTE PTR 2[rax], dl
	mov	rax, QWORD PTR -1152[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -1352[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	movzx	edx, BYTE PTR 2[rax]
	mov	rax, QWORD PTR -1152[rbp]
	movzx	eax, BYTE PTR 16[rax]
	cmp	dl, al
	jb	.L840
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L840:
	add	DWORD PTR -1352[rbp], 1
.L839:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -1352[rbp], eax
	jl	.L841
	jmp	.L842
.L838:
	mov	DWORD PTR -1352[rbp], 0
	jmp	.L843
.L844:
	mov	rax, QWORD PTR -1152[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -1352[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	mov	BYTE PTR 2[rax], 0
	add	DWORD PTR -1352[rbp], 1
.L843:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -1352[rbp], eax
	jl	.L844
.L842:
	mov	DWORD PTR -1352[rbp], 0
	jmp	.L845
.L848:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	get_bits
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	get_bits
	mov	ecx, eax
	mov	rdx, QWORD PTR -1152[rbp]
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	mov	BYTE PTR 17[rdx+rax], cl
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	get_bits
	mov	ecx, eax
	mov	rdx, QWORD PTR -1152[rbp]
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	mov	BYTE PTR 32[rdx+rax], cl
	mov	rdx, QWORD PTR -1152[rbp]
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	movzx	eax, BYTE PTR 17[rdx+rax]
	movzx	edx, al
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 192[rax]
	cmp	edx, eax
	jl	.L846
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L846:
	mov	rdx, QWORD PTR -1152[rbp]
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	movzx	eax, BYTE PTR 32[rdx+rax]
	movzx	edx, al
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 336[rax]
	cmp	edx, eax
	jl	.L847
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L847:
	add	DWORD PTR -1352[rbp], 1
.L845:
	mov	rax, QWORD PTR -1152[rbp]
	movzx	eax, BYTE PTR 16[rax]
	movzx	eax, al
	cmp	DWORD PTR -1352[rbp], eax
	jl	.L848
	add	DWORD PTR -1356[rbp], 1
.L823:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 480[rax]
	cmp	DWORD PTR -1356[rbp], eax
	jl	.L849
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 6
	mov	rdi, rax
	call	get_bits
	add	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	DWORD PTR 496[rax], edx
	mov	DWORD PTR -1356[rbp], 0
	jmp	.L850
.L854:
	mov	rax, QWORD PTR -1384[rbp]
	lea	rcx, 500[rax]
	mov	eax, DWORD PTR -1356[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	add	rax, rcx
	mov	QWORD PTR -1160[rbp], rax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	get_bits
	mov	edx, eax
	mov	rax, QWORD PTR -1160[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 16
	mov	rdi, rax
	call	get_bits
	mov	edx, eax
	mov	rax, QWORD PTR -1160[rbp]
	mov	WORD PTR 2[rax], dx
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 16
	mov	rdi, rax
	call	get_bits
	mov	edx, eax
	mov	rax, QWORD PTR -1160[rbp]
	mov	WORD PTR 4[rax], dx
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	get_bits
	mov	edx, eax
	mov	rax, QWORD PTR -1160[rbp]
	mov	BYTE PTR 1[rax], dl
	mov	rax, QWORD PTR -1160[rbp]
	movzx	eax, WORD PTR 2[rax]
	test	ax, ax
	je	.L851
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L851:
	mov	rax, QWORD PTR -1160[rbp]
	movzx	eax, WORD PTR 4[rax]
	test	ax, ax
	je	.L852
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L852:
	mov	rax, QWORD PTR -1160[rbp]
	movzx	eax, BYTE PTR 1[rax]
	movzx	edx, al
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 480[rax]
	cmp	edx, eax
	jl	.L853
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L869
.L853:
	add	DWORD PTR -1356[rbp], 1
.L850:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 496[rax]
	cmp	DWORD PTR -1356[rbp], eax
	jl	.L854
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	flush_packet
	mov	rax, QWORD PTR -1384[rbp]
	mov	DWORD PTR 1272[rax], 0
	mov	DWORD PTR -1356[rbp], 0
	jmp	.L855
.L858:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 172[rax]
	cdqe
	sal	eax, 2
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_malloc
	mov	rdx, QWORD PTR -1384[rbp]
	mov	ecx, DWORD PTR -1356[rbp]
	movsx	rcx, ecx
	add	rcx, 110
	mov	QWORD PTR 8[rdx+rcx*8], rax
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 172[rax]
	cdqe
	sal	rax, 2
	shr	rax
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_malloc
	mov	rdx, QWORD PTR -1384[rbp]
	mov	ecx, DWORD PTR -1356[rbp]
	movsx	rcx, ecx
	add	rcx, 142
	mov	QWORD PTR 8[rdx+rcx*8], rax
	mov	eax, DWORD PTR -1340[rbp]
	cdqe
	add	eax, eax
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_malloc
	mov	rdx, QWORD PTR -1384[rbp]
	mov	ecx, DWORD PTR -1356[rbp]
	movsx	rcx, ecx
	add	rcx, 160
	mov	QWORD PTR [rdx+rcx*8], rax
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR -1356[rbp]
	movsx	rdx, edx
	add	rdx, 110
	mov	rax, QWORD PTR 8[rax+rdx*8]
	test	rax, rax
	je	.L856
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR -1356[rbp]
	movsx	rdx, edx
	add	rdx, 142
	mov	rax, QWORD PTR 8[rax+rdx*8]
	test	rax, rax
	je	.L856
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR -1356[rbp]
	movsx	rdx, edx
	add	rdx, 160
	mov	rax, QWORD PTR [rax+rdx*8]
	test	rax, rax
	jne	.L857
.L856:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L869
.L857:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 172[rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -1384[rbp]
	mov	ecx, DWORD PTR -1356[rbp]
	movsx	rcx, ecx
	add	rcx, 110
	mov	rax, QWORD PTR 8[rax+rcx*8]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	add	DWORD PTR -1356[rbp], 1
.L855:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -1356[rbp], eax
	jl	.L858
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR 168[rax]
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	init_blocksize
	test	eax, eax
	jne	.L859
	mov	eax, 0
	jmp	.L869
.L859:
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR 172[rax]
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	init_blocksize
	test	eax, eax
	jne	.L860
	mov	eax, 0
	jmp	.L869
.L860:
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR 168[rax]
	mov	rax, QWORD PTR -1384[rbp]
	mov	DWORD PTR 160[rax], edx
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR 172[rax]
	mov	rax, QWORD PTR -1384[rbp]
	mov	DWORD PTR 164[rax], edx
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 172[rax]
	cdqe
	sal	rax, 2
	shr	rax
	mov	DWORD PTR -1280[rbp], eax
	mov	DWORD PTR -1296[rbp], 0
	mov	DWORD PTR -1300[rbp], 0
	jmp	.L861
.L863:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdx, QWORD PTR 472[rax]
	mov	eax, DWORD PTR -1300[rbp]
	cdqe
	sal	rax, 5
	add	rax, rdx
	mov	QWORD PTR -1168[rbp], rax
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 172[rax]
	mov	edx, eax
	shr	edx, 31
	add	eax, edx
	sar	eax
	mov	DWORD PTR -1272[rbp], eax
	mov	rax, QWORD PTR -1168[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -1272[rbp], eax
	cmovbe	eax, DWORD PTR -1272[rbp]
	mov	DWORD PTR -1268[rbp], eax
	mov	rax, QWORD PTR -1168[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -1272[rbp], eax
	cmovbe	eax, DWORD PTR -1272[rbp]
	mov	DWORD PTR -1264[rbp], eax
	mov	eax, DWORD PTR -1264[rbp]
	sub	eax, DWORD PTR -1268[rbp]
	mov	DWORD PTR -1260[rbp], eax
	mov	eax, DWORD PTR -1260[rbp]
	mov	rdx, QWORD PTR -1168[rbp]
	mov	ebx, DWORD PTR 8[rdx]
	mov	edx, 0
	div	ebx
	mov	DWORD PTR -1256[rbp], eax
	mov	eax, DWORD PTR -1256[rbp]
	cmp	eax, DWORD PTR -1296[rbp]
	jle	.L862
	mov	eax, DWORD PTR -1256[rbp]
	mov	DWORD PTR -1296[rbp], eax
.L862:
	add	DWORD PTR -1300[rbp], 1
.L861:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 336[rax]
	cmp	DWORD PTR -1300[rbp], eax
	jl	.L863
	mov	eax, DWORD PTR -1296[rbp]
	cdqe
	add	rax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	imul	eax, edx
	sal	eax, 3
	mov	DWORD PTR -1276[rbp], eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR -1276[rbp]
	mov	DWORD PTR 12[rax], edx
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 12[rax]
	cmp	DWORD PTR -1280[rbp], eax
	jbe	.L864
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR -1280[rbp]
	mov	DWORD PTR 12[rax], edx
.L864:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rax, QWORD PTR 128[rax]
	test	rax, rax
	je	.L865
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR 148[rax]
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 136[rax]
	cmp	edx, eax
	je	.L866
	lea	rcx, __PRETTY_FUNCTION__.5[rip]
	mov	edx, 4168
	lea	rsi, .LC1[rip]
	lea	rdi, .LC28[rip]
	call	__assert_fail@PLT
.L866:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 144[rax]
	movsx	rdx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 12[rax]
	mov	eax, eax
	add	rax, rdx
	lea	rdx, 1904[rax]
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 148[rax]
	mov	eax, eax
	cmp	rdx, rax
	jbe	.L865
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L869
.L865:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 1768[rax]
	cmp	eax, -1
	jne	.L867
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	stb_vorbis_get_file_offset
	mov	rdx, QWORD PTR -1384[rbp]
	mov	DWORD PTR 96[rdx], eax
	jmp	.L868
.L867:
	mov	rax, QWORD PTR -1384[rbp]
	mov	DWORD PTR 96[rax], 0
.L868:
	mov	eax, 1
.L869:
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L870
	call	__stack_chk_fail@PLT
.L870:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE72:
	.size	start_decoder, .-start_decoder
	.type	vorbis_deinit, @function
vorbis_deinit:
.LFB73:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	setup_free
	mov	DWORD PTR -24[rbp], 0
	jmp	.L873
.L874:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	setup_free
	add	DWORD PTR -24[rbp], 1
.L873:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 32[rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L874
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	setup_free
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 472[rax]
	test	rax, rax
	je	.L875
	mov	DWORD PTR -24[rbp], 0
	jmp	.L876
.L880:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 472[rax]
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	sal	rax, 5
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	je	.L877
	mov	DWORD PTR -20[rbp], 0
	jmp	.L878
.L879:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	setup_free
	add	DWORD PTR -20[rbp], 1
.L878:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 184[rax]
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR 13[rax]
	movzx	eax, al
	imul	rax, rax, 2120
	add	rax, rdx
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -20[rbp], eax
	jl	.L879
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	setup_free
.L877:
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	setup_free
	add	DWORD PTR -24[rbp], 1
.L876:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 336[rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L880
.L875:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 184[rax]
	test	rax, rax
	je	.L881
	mov	DWORD PTR -24[rbp], 0
	jmp	.L882
.L885:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 184[rax]
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	imul	rax, rax, 2120
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	setup_free
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	setup_free
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	setup_free
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 2096[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	setup_free
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 2104[rax]
	test	rax, rax
	je	.L883
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 2104[rax]
	lea	rdx, -4[rax]
	jmp	.L884
.L883:
	mov	edx, 0
.L884:
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	setup_free
	add	DWORD PTR -24[rbp], 1
.L882:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 176[rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L885
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 184[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	setup_free
.L881:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 328[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	setup_free
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 472[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	setup_free
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 488[rax]
	test	rax, rax
	je	.L886
	mov	DWORD PTR -24[rbp], 0
	jmp	.L887
.L888:
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR 488[rax]
	mov	eax, DWORD PTR -24[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	add	rax, rcx
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	setup_free
	add	DWORD PTR -24[rbp], 1
.L887:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 480[rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L888
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 488[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	setup_free
.L886:
	mov	DWORD PTR -24[rbp], 0
	jmp	.L889
.L891:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -24[rbp]
	movsx	rdx, edx
	add	rdx, 110
	mov	rdx, QWORD PTR 8[rax+rdx*8]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	setup_free
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -24[rbp]
	movsx	rdx, edx
	add	rdx, 142
	mov	rdx, QWORD PTR 8[rax+rdx*8]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	setup_free
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -24[rbp]
	movsx	rdx, edx
	add	rdx, 160
	mov	rdx, QWORD PTR [rax+rdx*8]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	setup_free
	add	DWORD PTR -24[rbp], 1
.L889:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -24[rbp], eax
	jge	.L890
	cmp	DWORD PTR -24[rbp], 15
	jle	.L891
.L890:
	mov	DWORD PTR -24[rbp], 0
	jmp	.L892
.L893:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -24[rbp]
	movsx	rdx, edx
	add	rdx, 176
	mov	rdx, QWORD PTR 8[rax+rdx*8]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	setup_free
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -24[rbp]
	movsx	rdx, edx
	add	rdx, 178
	mov	rdx, QWORD PTR 8[rax+rdx*8]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	setup_free
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -24[rbp]
	movsx	rdx, edx
	add	rdx, 180
	mov	rdx, QWORD PTR 8[rax+rdx*8]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	setup_free
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -24[rbp]
	movsx	rdx, edx
	add	rdx, 182
	mov	rdx, QWORD PTR 8[rax+rdx*8]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	setup_free
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -24[rbp]
	movsx	rdx, edx
	add	rdx, 184
	mov	rdx, QWORD PTR 8[rax+rdx*8]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	setup_free
	add	DWORD PTR -24[rbp], 1
.L892:
	cmp	DWORD PTR -24[rbp], 1
	jle	.L893
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 60[rax]
	test	eax, eax
	je	.L895
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 48[rax]
	mov	rdi, rax
	call	fclose@PLT
.L895:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE73:
	.size	vorbis_deinit, .-vorbis_deinit
	.globl	stb_vorbis_close
	.type	stb_vorbis_close, @function
stb_vorbis_close:
.LFB74:
	.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	QWORD PTR -8[rbp], rdi
	cmp	QWORD PTR -8[rbp], 0
	je	.L899
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	vorbis_deinit
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	setup_free
	jmp	.L896
.L899:
	nop
.L896:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE74:
	.size	stb_vorbis_close, .-stb_vorbis_close
	.type	vorbis_init, @function
vorbis_init:
.LFB75:
	.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	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, 1904
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	cmp	QWORD PTR -16[rbp], 0
	je	.L901
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR 128[rcx], rax
	mov	QWORD PTR 136[rcx], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 136[rax]
	and	eax, -8
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 136[rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR 136[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 148[rax], edx
.L901:
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 152[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 156[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 64[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 184[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 1808[rax], -1
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 60[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 48[rax], 0
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE75:
	.size	vorbis_init, .-vorbis_init
	.globl	stb_vorbis_get_sample_offset
	.type	stb_vorbis_get_sample_offset, @function
stb_vorbis_get_sample_offset:
.LFB76:
	.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 -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 1412[rax]
	test	eax, eax
	je	.L903
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 1408[rax]
	jmp	.L904
.L903:
	mov	eax, -1
.L904:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE76:
	.size	stb_vorbis_get_sample_offset, .-stb_vorbis_get_sample_offset
	.globl	stb_vorbis_get_info
	.type	stb_vorbis_get_info, @function
stb_vorbis_get_info:
.LFB77:
	.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 -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 16[rax]
	mov	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 12[rax]
	mov	DWORD PTR -16[rbp], eax
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 172[rax]
	sar	eax
	mov	DWORD PTR -12[rbp], eax
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rcx], rax
	mov	QWORD PTR 8[rcx], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 16[rcx], rax
	mov	rax, QWORD PTR -40[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE77:
	.size	stb_vorbis_get_info, .-stb_vorbis_get_info
	.globl	stb_vorbis_get_comment
	.type	stb_vorbis_get_comment, @function
stb_vorbis_get_comment:
.LFB78:
	.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 -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 32[rax]
	mov	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rcx], rax
	mov	QWORD PTR 8[rcx], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR 16[rcx], rax
	mov	rax, QWORD PTR -40[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE78:
	.size	stb_vorbis_get_comment, .-stb_vorbis_get_comment
	.globl	stb_vorbis_get_error
	.type	stb_vorbis_get_error, @function
stb_vorbis_get_error:
.LFB79:
	.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]
	mov	eax, DWORD PTR 156[rax]
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 156[rax], 0
	mov	eax, DWORD PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE79:
	.size	stb_vorbis_get_error, .-stb_vorbis_get_error
	.type	vorbis_alloc, @function
vorbis_alloc:
.LFB80:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 1904
	mov	rdi, rax
	call	setup_malloc
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE80:
	.size	vorbis_alloc, .-vorbis_alloc
	.globl	stb_vorbis_flush_pushdata
	.type	stb_vorbis_flush_pushdata, @function
stb_vorbis_flush_pushdata:
.LFB81:
	.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 -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 1272[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 1808[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 1800[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 1412[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 1765[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 1804[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 1892[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 1896[rax], 0
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE81:
	.size	stb_vorbis_flush_pushdata, .-stb_vorbis_flush_pushdata
	.type	vorbis_search_for_page_pushdata, @function
vorbis_search_for_page_pushdata:
.LFB82:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	DWORD PTR -68[rbp], edx
	mov	DWORD PTR -36[rbp], 0
	jmp	.L915
.L916:
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rcx
	add	rax, 1824
	mov	DWORD PTR [rax], 0
	add	DWORD PTR -36[rbp], 1
.L915:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1808[rax]
	cmp	DWORD PTR -36[rbp], eax
	jl	.L916
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1808[rax]
	cmp	eax, 3
	jg	.L917
	cmp	DWORD PTR -68[rbp], 3
	jg	.L918
	mov	eax, 0
	jmp	.L919
.L918:
	sub	DWORD PTR -68[rbp], 3
	mov	DWORD PTR -36[rbp], 0
	jmp	.L920
.L932:
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 79
	jne	.L921
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	edx, 4
	lea	rsi, ogg_page_header[rip]
	mov	rdi, rax
	call	memcmp@PLT
	test	eax, eax
	jne	.L921
	mov	eax, DWORD PTR -36[rbp]
	add	eax, 26
	cmp	DWORD PTR -68[rbp], eax
	jle	.L922
	mov	eax, DWORD PTR -36[rbp]
	lea	edx, 27[rax]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	lea	rcx, 26[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	eax, edx
	cmp	DWORD PTR -68[rbp], eax
	jg	.L923
.L922:
	mov	eax, DWORD PTR -36[rbp]
	mov	DWORD PTR -68[rbp], eax
	jmp	.L917
.L923:
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	lea	rdx, 26[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	eax, 27
	mov	DWORD PTR -28[rbp], eax
	mov	DWORD PTR -32[rbp], 0
	jmp	.L924
.L925:
	mov	eax, DWORD PTR -36[rbp]
	lea	edx, 27[rax]
	mov	eax, DWORD PTR -32[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	add	DWORD PTR -32[rbp], 1
.L924:
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	lea	rdx, 26[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cmp	DWORD PTR -32[rbp], eax
	jl	.L925
	mov	DWORD PTR -24[rbp], 0
	mov	DWORD PTR -32[rbp], 0
	jmp	.L926
.L927:
	mov	edx, DWORD PTR -36[rbp]
	mov	eax, DWORD PTR -32[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	eax, DWORD PTR -24[rbp]
	mov	esi, edx
	mov	edi, eax
	call	crc32_update
	mov	DWORD PTR -24[rbp], eax
	add	DWORD PTR -32[rbp], 1
.L926:
	cmp	DWORD PTR -32[rbp], 21
	jle	.L927
	jmp	.L928
.L929:
	mov	eax, DWORD PTR -24[rbp]
	mov	esi, 0
	mov	edi, eax
	call	crc32_update
	mov	DWORD PTR -24[rbp], eax
	add	DWORD PTR -32[rbp], 1
.L928:
	cmp	DWORD PTR -32[rbp], 25
	jle	.L929
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1808[rax]
	lea	ecx, 1[rax]
	mov	rdx, QWORD PTR -56[rbp]
	mov	DWORD PTR 1808[rdx], ecx
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	sub	eax, DWORD PTR -32[rbp]
	mov	edx, eax
	mov	rsi, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -8[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 1816
	mov	DWORD PTR [rax], edx
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -8[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rcx
	lea	rdx, 1820[rax]
	mov	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	lea	rdx, 22[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	lea	rcx, 23[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 8
	add	edx, eax
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	lea	rcx, 24[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 16
	add	edx, eax
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	lea	rcx, 25[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 24
	add	eax, edx
	mov	ecx, eax
	mov	rsi, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -8[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rsi
	add	rax, 1812
	mov	DWORD PTR [rax], ecx
	mov	eax, DWORD PTR -36[rbp]
	lea	edx, 27[rax]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	lea	rcx, 26[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	add	eax, edx
	cdqe
	lea	rdx, -1[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, -1
	jne	.L930
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -8[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rcx
	add	rax, 1828
	mov	DWORD PTR [rax], -1
	jmp	.L931
.L930:
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	lea	rdx, 6[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	lea	rcx, 7[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 8
	add	edx, eax
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	lea	rcx, 8[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 16
	add	edx, eax
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	lea	rcx, 9[rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	eax, 24
	add	eax, edx
	mov	ecx, eax
	mov	rsi, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -8[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rsi
	add	rax, 1828
	mov	DWORD PTR [rax], ecx
.L931:
	mov	edx, DWORD PTR -36[rbp]
	mov	eax, DWORD PTR -32[rbp]
	lea	ecx, [rdx+rax]
	mov	rsi, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -8[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rsi
	add	rax, 1824
	mov	DWORD PTR [rax], ecx
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1808[rax]
	cmp	eax, 4
	je	.L940
.L921:
	add	DWORD PTR -36[rbp], 1
.L920:
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -68[rbp]
	jl	.L932
	jmp	.L917
.L940:
	nop
.L917:
	mov	DWORD PTR -36[rbp], 0
	jmp	.L933
.L939:
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rcx
	add	rax, 1824
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -4[rbp], eax
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rcx
	add	rax, 1816
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	sub	eax, DWORD PTR -4[rbp]
	cmp	DWORD PTR -12[rbp], eax
	jle	.L934
	mov	eax, DWORD PTR -68[rbp]
	sub	eax, DWORD PTR -4[rbp]
	mov	DWORD PTR -12[rbp], eax
.L934:
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rcx
	add	rax, 1820
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -20[rbp], eax
	mov	DWORD PTR -16[rbp], 0
	jmp	.L935
.L936:
	mov	edx, DWORD PTR -4[rbp]
	mov	eax, DWORD PTR -16[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	mov	eax, DWORD PTR -20[rbp]
	mov	esi, edx
	mov	edi, eax
	call	crc32_update
	mov	DWORD PTR -20[rbp], eax
	add	DWORD PTR -16[rbp], 1
.L935:
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, DWORD PTR -12[rbp]
	jl	.L936
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rcx
	add	rax, 1816
	mov	eax, DWORD PTR [rax]
	sub	eax, DWORD PTR -12[rbp]
	mov	edx, eax
	mov	rsi, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	sal	rax, 2
	add	rax, rsi
	add	rax, 1816
	mov	DWORD PTR [rax], edx
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rcx
	lea	rdx, 1820[rax]
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rcx
	add	rax, 1816
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L937
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rcx
	add	rax, 1820
	mov	ecx, DWORD PTR [rax]
	mov	rsi, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rsi
	add	rax, 1812
	mov	eax, DWORD PTR [rax]
	cmp	ecx, eax
	jne	.L938
	mov	edx, DWORD PTR -4[rbp]
	mov	eax, DWORD PTR -12[rbp]
	add	eax, edx
	mov	DWORD PTR -68[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 1808[rax], -1
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 1272[rax], 0
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 1768[rax], -1
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rcx
	add	rax, 1828
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 1408[rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1408[rax]
	cmp	eax, -1
	setne	al
	movzx	edx, al
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 1412[rax], edx
	mov	eax, DWORD PTR -68[rbp]
	jmp	.L919
.L938:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1808[rax]
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 1808[rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, DWORD PTR 1808[rax]
	mov	rcx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rcx
	lea	rcx, 1808[rax]
	mov	rdi, QWORD PTR -56[rbp]
	movsx	rdx, esi
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	add	rax, rdi
	lea	rsi, 1808[rax]
	mov	rax, QWORD PTR 4[rsi]
	mov	rdx, QWORD PTR 12[rsi]
	mov	QWORD PTR 4[rcx], rax
	mov	QWORD PTR 12[rcx], rdx
	mov	eax, DWORD PTR 20[rsi]
	mov	DWORD PTR 20[rcx], eax
	jmp	.L933
.L937:
	add	DWORD PTR -36[rbp], 1
.L933:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1808[rax]
	cmp	DWORD PTR -36[rbp], eax
	jl	.L939
	mov	eax, DWORD PTR -68[rbp]
.L919:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE82:
	.size	vorbis_search_for_page_pushdata, .-vorbis_search_for_page_pushdata
	.globl	stb_vorbis_decode_frame_pushdata
	.type	stb_vorbis_decode_frame_pushdata, @function
stb_vorbis_decode_frame_pushdata:
.LFB83:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	DWORD PTR -52[rbp], edx
	mov	QWORD PTR -64[rbp], rcx
	mov	QWORD PTR -72[rbp], r8
	mov	QWORD PTR -80[rbp], r9
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 92[rax]
	test	al, al
	jne	.L942
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	error
	jmp	.L958
.L942:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 1808[rax]
	test	eax, eax
	js	.L944
	mov	rax, QWORD PTR -80[rbp]
	mov	DWORD PTR [rax], 0
	mov	edx, DWORD PTR -52[rbp]
	mov	rcx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vorbis_search_for_page_pushdata
	jmp	.L958
.L944:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -48[rbp]
	mov	QWORD PTR 64[rax], rdx
	mov	eax, DWORD PTR -52[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -48[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 80[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 156[rax], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	is_whole_packet_present
	test	eax, eax
	jne	.L945
	mov	rax, QWORD PTR -80[rbp]
	mov	DWORD PTR [rax], 0
	mov	eax, 0
	jmp	.L958
.L945:
	lea	rcx, -24[rbp]
	lea	rdx, -20[rbp]
	lea	rsi, -28[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	vorbis_decode_packet
	test	eax, eax
	jne	.L946
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 156[rax]
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 35
	jne	.L947
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 156[rax], 0
	jmp	.L948
.L950:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 152[rax]
	test	eax, eax
	jne	.L960
.L948:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	get8_packet
	cmp	eax, -1
	jne	.L950
	jmp	.L949
.L960:
	nop
.L949:
	mov	rax, QWORD PTR -80[rbp]
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 64[rax]
	sub	rax, QWORD PTR -48[rbp]
	jmp	.L958
.L947:
	cmp	DWORD PTR -12[rbp], 32
	jne	.L951
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 1272[rax]
	test	eax, eax
	jne	.L951
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 156[rax], 0
	jmp	.L952
.L954:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 152[rax]
	test	eax, eax
	jne	.L961
.L952:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	get8_packet
	cmp	eax, -1
	jne	.L954
	jmp	.L953
.L961:
	nop
.L953:
	mov	rax, QWORD PTR -80[rbp]
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 64[rax]
	sub	rax, QWORD PTR -48[rbp]
	jmp	.L958
.L951:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	stb_vorbis_flush_pushdata
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	DWORD PTR 156[rax], edx
	mov	rax, QWORD PTR -80[rbp]
	mov	DWORD PTR [rax], 0
	mov	eax, 1
	jmp	.L958
.L946:
	mov	ecx, DWORD PTR -24[rbp]
	mov	edx, DWORD PTR -20[rbp]
	mov	esi, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	vorbis_finish_frame
	mov	DWORD PTR -28[rbp], eax
	mov	DWORD PTR -16[rbp], 0
	jmp	.L955
.L956:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -16[rbp]
	movsx	rdx, edx
	add	rdx, 110
	mov	rdx, QWORD PTR 8[rax+rdx*8]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	sal	rax, 2
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -16[rbp]
	movsx	rdx, edx
	add	rdx, 126
	mov	QWORD PTR 8[rax+rdx*8], rcx
	add	DWORD PTR -16[rbp], 1
.L955:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -16[rbp], eax
	jl	.L956
	cmp	QWORD PTR -64[rbp], 0
	je	.L957
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
.L957:
	mov	edx, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -80[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, 1016[rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 64[rax]
	sub	rax, QWORD PTR -48[rbp]
.L958:
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L959
	call	__stack_chk_fail@PLT
.L959:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE83:
	.size	stb_vorbis_decode_frame_pushdata, .-stb_vorbis_decode_frame_pushdata
	.globl	stb_vorbis_open_pushdata
	.type	stb_vorbis_open_pushdata, @function
stb_vorbis_open_pushdata:
.LFB84:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 1984
	mov	QWORD PTR -1944[rbp], rdi
	mov	DWORD PTR -1948[rbp], esi
	mov	QWORD PTR -1960[rbp], rdx
	mov	QWORD PTR -1968[rbp], rcx
	mov	QWORD PTR -1976[rbp], r8
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rdx, QWORD PTR -1976[rbp]
	lea	rax, -1920[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	vorbis_init
	mov	rax, QWORD PTR -1944[rbp]
	mov	QWORD PTR -1856[rbp], rax
	mov	eax, DWORD PTR -1948[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -1944[rbp]
	add	rax, rdx
	mov	QWORD PTR -1840[rbp], rax
	mov	BYTE PTR -1828[rbp], 1
	lea	rax, -1920[rbp]
	mov	rdi, rax
	call	start_decoder
	test	eax, eax
	jne	.L963
	mov	eax, DWORD PTR -1768[rbp]
	test	eax, eax
	je	.L964
	mov	rax, QWORD PTR -1968[rbp]
	mov	DWORD PTR [rax], 1
	jmp	.L965
.L964:
	mov	eax, DWORD PTR -1764[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -1968[rbp]
	mov	DWORD PTR [rax], edx
.L965:
	mov	eax, 0
	jmp	.L968
.L963:
	lea	rax, -1920[rbp]
	mov	rdi, rax
	call	vorbis_alloc
	mov	QWORD PTR -1928[rbp], rax
	cmp	QWORD PTR -1928[rbp], 0
	je	.L967
	mov	rax, QWORD PTR -1928[rbp]
	mov	rdi, rax
	lea	rax, -1920[rbp]
	mov	edx, 238
	mov	rsi, rax
	mov	rcx, rdx
	rep movsq
	mov	rax, QWORD PTR -1928[rbp]
	mov	rax, QWORD PTR 64[rax]
	sub	rax, QWORD PTR -1944[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -1960[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -1968[rbp]
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -1928[rbp]
	jmp	.L968
.L967:
	lea	rax, -1920[rbp]
	mov	rdi, rax
	call	vorbis_deinit
	mov	eax, 0
.L968:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L969
	call	__stack_chk_fail@PLT
.L969:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE84:
	.size	stb_vorbis_open_pushdata, .-stb_vorbis_open_pushdata
	.globl	stb_vorbis_get_file_offset
	.type	stb_vorbis_get_file_offset, @function
stb_vorbis_get_file_offset:
.LFB85:
	.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	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 92[rax]
	test	al, al
	je	.L971
	mov	eax, 0
	jmp	.L972
.L971:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 64[rax]
	test	rax, rax
	je	.L973
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, QWORD PTR 72[rax]
	mov	rax, rdx
	sub	rax, rcx
	jmp	.L972
.L973:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 48[rax]
	mov	rdi, rax
	call	ftell@PLT
	mov	ecx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR 56[rax]
	mov	eax, ecx
	sub	eax, edx
.L972:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE85:
	.size	stb_vorbis_get_file_offset, .-stb_vorbis_get_file_offset
	.type	vorbis_find_page, @function
vorbis_find_page:
.LFB86:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	QWORD PTR -88[rbp], rdi
	mov	QWORD PTR -96[rbp], rsi
	mov	QWORD PTR -104[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
.L1005:
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 152[rax]
	test	eax, eax
	je	.L975
	mov	eax, 0
	jmp	.L976
.L975:
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	get8
	movzx	eax, al
	mov	DWORD PTR -64[rbp], eax
	cmp	DWORD PTR -64[rbp], 79
	jne	.L1005
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	stb_vorbis_get_file_offset
	mov	DWORD PTR -60[rbp], eax
	mov	eax, DWORD PTR -60[rbp]
	lea	edx, -25[rax]
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 88[rax]
	cmp	edx, eax
	jbe	.L978
	mov	eax, 0
	jmp	.L976
.L978:
	mov	DWORD PTR -80[rbp], 1
	jmp	.L979
.L982:
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	get8
	mov	edx, DWORD PTR -80[rbp]
	movsx	rdx, edx
	lea	rcx, ogg_page_header[rip]
	movzx	edx, BYTE PTR [rdx+rcx]
	cmp	al, dl
	jne	.L1007
	add	DWORD PTR -80[rbp], 1
.L979:
	cmp	DWORD PTR -80[rbp], 3
	jle	.L982
	jmp	.L981
.L1007:
	nop
.L981:
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 152[rax]
	test	eax, eax
	je	.L983
	mov	eax, 0
	jmp	.L976
.L983:
	cmp	DWORD PTR -80[rbp], 4
	jne	.L1008
	mov	DWORD PTR -76[rbp], 0
	jmp	.L985
.L986:
	mov	eax, DWORD PTR -76[rbp]
	lea	rdx, ogg_page_header[rip]
	movzx	edx, BYTE PTR [rax+rdx]
	mov	eax, DWORD PTR -76[rbp]
	mov	BYTE PTR -48[rbp+rax], dl
	add	DWORD PTR -76[rbp], 1
.L985:
	cmp	DWORD PTR -76[rbp], 3
	jbe	.L986
	jmp	.L987
.L988:
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	get8
	mov	edx, DWORD PTR -76[rbp]
	mov	BYTE PTR -48[rbp+rdx], al
	add	DWORD PTR -76[rbp], 1
.L987:
	cmp	DWORD PTR -76[rbp], 26
	jbe	.L988
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 152[rax]
	test	eax, eax
	je	.L989
	mov	eax, 0
	jmp	.L976
.L989:
	movzx	eax, BYTE PTR -44[rbp]
	test	al, al
	jne	.L1009
	movzx	eax, BYTE PTR -26[rbp]
	movzx	edx, al
	movzx	eax, BYTE PTR -25[rbp]
	movzx	eax, al
	sal	eax, 8
	add	edx, eax
	movzx	eax, BYTE PTR -24[rbp]
	movzx	eax, al
	sal	eax, 16
	add	edx, eax
	movzx	eax, BYTE PTR -23[rbp]
	movzx	eax, al
	sal	eax, 24
	add	eax, edx
	mov	DWORD PTR -56[rbp], eax
	mov	DWORD PTR -76[rbp], 22
	jmp	.L992
.L993:
	mov	eax, DWORD PTR -76[rbp]
	mov	BYTE PTR -48[rbp+rax], 0
	add	DWORD PTR -76[rbp], 1
.L992:
	cmp	DWORD PTR -76[rbp], 25
	jbe	.L993
	mov	DWORD PTR -72[rbp], 0
	mov	DWORD PTR -76[rbp], 0
	jmp	.L994
.L995:
	mov	eax, DWORD PTR -76[rbp]
	movzx	eax, BYTE PTR -48[rbp+rax]
	movzx	edx, al
	mov	eax, DWORD PTR -72[rbp]
	mov	esi, edx
	mov	edi, eax
	call	crc32_update
	mov	DWORD PTR -72[rbp], eax
	add	DWORD PTR -76[rbp], 1
.L994:
	cmp	DWORD PTR -76[rbp], 26
	jbe	.L995
	mov	DWORD PTR -68[rbp], 0
	mov	DWORD PTR -76[rbp], 0
	jmp	.L996
.L997:
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	get8
	movzx	eax, al
	mov	DWORD PTR -52[rbp], eax
	mov	eax, DWORD PTR -52[rbp]
	movzx	edx, al
	mov	eax, DWORD PTR -72[rbp]
	mov	esi, edx
	mov	edi, eax
	call	crc32_update
	mov	DWORD PTR -72[rbp], eax
	mov	eax, DWORD PTR -52[rbp]
	add	DWORD PTR -68[rbp], eax
	add	DWORD PTR -76[rbp], 1
.L996:
	movzx	eax, BYTE PTR -22[rbp]
	movzx	eax, al
	cmp	DWORD PTR -76[rbp], eax
	jb	.L997
	cmp	DWORD PTR -68[rbp], 0
	je	.L998
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 152[rax]
	test	eax, eax
	je	.L998
	mov	eax, 0
	jmp	.L976
.L998:
	mov	DWORD PTR -76[rbp], 0
	jmp	.L999
.L1000:
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	get8
	movzx	edx, al
	mov	eax, DWORD PTR -72[rbp]
	mov	esi, edx
	mov	edi, eax
	call	crc32_update
	mov	DWORD PTR -72[rbp], eax
	add	DWORD PTR -76[rbp], 1
.L999:
	mov	eax, DWORD PTR -76[rbp]
	cmp	eax, DWORD PTR -68[rbp]
	jb	.L1000
	mov	eax, DWORD PTR -72[rbp]
	cmp	eax, DWORD PTR -56[rbp]
	jne	.L984
	cmp	QWORD PTR -96[rbp], 0
	je	.L1002
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	stb_vorbis_get_file_offset
	mov	rdx, QWORD PTR -96[rbp]
	mov	DWORD PTR [rdx], eax
.L1002:
	cmp	QWORD PTR -104[rbp], 0
	je	.L1003
	movzx	eax, BYTE PTR -43[rbp]
	movzx	eax, al
	and	eax, 4
	test	eax, eax
	je	.L1004
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR [rax], 1
	jmp	.L1003
.L1004:
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR [rax], 0
.L1003:
	mov	eax, DWORD PTR -60[rbp]
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -88[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	set_file_offset
	mov	eax, 1
	jmp	.L976
.L1008:
	nop
	jmp	.L984
.L1009:
	nop
.L984:
	mov	edx, DWORD PTR -60[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	set_file_offset
	jmp	.L1005
.L976:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1006
	call	__stack_chk_fail@PLT
.L1006:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE86:
	.size	vorbis_find_page, .-vorbis_find_page
	.type	get_seek_page_info, @function
get_seek_page_info:
.LFB87:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 336
	mov	QWORD PTR -328[rbp], rdi
	mov	QWORD PTR -336[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -328[rbp]
	mov	rdi, rax
	call	stb_vorbis_get_file_offset
	mov	rdx, QWORD PTR -336[rbp]
	mov	DWORD PTR [rdx], eax
	lea	rcx, -304[rbp]
	mov	rax, QWORD PTR -328[rbp]
	mov	edx, 27
	mov	rsi, rcx
	mov	rdi, rax
	call	getn
	movzx	eax, BYTE PTR -304[rbp]
	cmp	al, 79
	jne	.L1011
	movzx	eax, BYTE PTR -303[rbp]
	cmp	al, 103
	jne	.L1011
	movzx	eax, BYTE PTR -302[rbp]
	cmp	al, 103
	jne	.L1011
	movzx	eax, BYTE PTR -301[rbp]
	cmp	al, 83
	je	.L1012
.L1011:
	mov	eax, 0
	jmp	.L1016
.L1012:
	movzx	eax, BYTE PTR -278[rbp]
	movzx	edx, al
	lea	rcx, -272[rbp]
	mov	rax, QWORD PTR -328[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	getn
	mov	DWORD PTR -308[rbp], 0
	mov	DWORD PTR -312[rbp], 0
	jmp	.L1014
.L1015:
	mov	eax, DWORD PTR -312[rbp]
	cdqe
	movzx	eax, BYTE PTR -272[rbp+rax]
	movzx	eax, al
	add	DWORD PTR -308[rbp], eax
	add	DWORD PTR -312[rbp], 1
.L1014:
	movzx	eax, BYTE PTR -278[rbp]
	movzx	eax, al
	cmp	DWORD PTR -312[rbp], eax
	jl	.L1015
	mov	rax, QWORD PTR -336[rbp]
	mov	edx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -278[rbp]
	movzx	eax, al
	add	edx, eax
	mov	eax, DWORD PTR -308[rbp]
	add	eax, edx
	lea	edx, 27[rax]
	mov	rax, QWORD PTR -336[rbp]
	mov	DWORD PTR 4[rax], edx
	movzx	eax, BYTE PTR -298[rbp]
	movzx	edx, al
	movzx	eax, BYTE PTR -297[rbp]
	movzx	eax, al
	sal	eax, 8
	add	edx, eax
	movzx	eax, BYTE PTR -296[rbp]
	movzx	eax, al
	sal	eax, 16
	add	edx, eax
	movzx	eax, BYTE PTR -295[rbp]
	movzx	eax, al
	sal	eax, 24
	add	eax, edx
	mov	edx, eax
	mov	rax, QWORD PTR -336[rbp]
	mov	DWORD PTR 8[rax], edx
	mov	rax, QWORD PTR -336[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -328[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	set_file_offset
	mov	eax, 1
.L1016:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1017
	call	__stack_chk_fail@PLT
.L1017:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE87:
	.size	get_seek_page_info, .-get_seek_page_info
	.type	go_to_page_before, @function
go_to_page_before:
.LFB88:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	cmp	DWORD PTR -28[rbp], 65535
	jbe	.L1019
	mov	eax, DWORD PTR -28[rbp]
	lea	edx, -65536[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 96[rax]
	cmp	edx, eax
	jb	.L1019
	mov	eax, DWORD PTR -28[rbp]
	sub	eax, 65536
	mov	DWORD PTR -12[rbp], eax
	jmp	.L1020
.L1019:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 96[rax]
	mov	DWORD PTR -12[rbp], eax
.L1020:
	mov	edx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	set_file_offset
	jmp	.L1021
.L1024:
	mov	eax, DWORD PTR -16[rbp]
	cmp	DWORD PTR -28[rbp], eax
	ja	.L1022
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stb_vorbis_get_file_offset
	cmp	DWORD PTR -28[rbp], eax
	jbe	.L1022
	mov	eax, 1
	jmp	.L1025
.L1022:
	mov	edx, DWORD PTR -16[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	set_file_offset
.L1021:
	lea	rcx, -16[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	vorbis_find_page
	test	eax, eax
	jne	.L1024
	mov	eax, 0
.L1025:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1026
	call	__stack_chk_fail@PLT
.L1026:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE88:
	.size	go_to_page_before, .-go_to_page_before
	.section	.rodata
	.align 8
.LC30:
	.string	"right.last_decoded_sample != ~0U"
	.align 8
.LC31:
	.string	"left.page_end < right.page_start"
	.align 8
.LC34:
	.string	"mid.page_start < right.page_start"
.LC35:
	.string	"end_pos >= 0"
	.text
	.type	seek_to_sample_coarse, @function
seek_to_sample_coarse:
.LFB89:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 144
	mov	QWORD PTR -136[rbp], rdi
	mov	DWORD PTR -140[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	pxor	xmm0, xmm0
	movsd	QWORD PTR -80[rbp], xmm0
	pxor	xmm0, xmm0
	movsd	QWORD PTR -72[rbp], xmm0
	mov	DWORD PTR -100[rbp], 0
	mov	rax, QWORD PTR -136[rbp]
	mov	rdi, rax
	call	stb_vorbis_stream_length_in_samples
	mov	DWORD PTR -96[rbp], eax
	cmp	DWORD PTR -96[rbp], 0
	jne	.L1028
	mov	rax, QWORD PTR -136[rbp]
	mov	esi, 7
	mov	rdi, rax
	call	error
	jmp	.L1101
.L1028:
	mov	eax, DWORD PTR -140[rbp]
	cmp	eax, DWORD PTR -96[rbp]
	jbe	.L1030
	mov	rax, QWORD PTR -136[rbp]
	mov	esi, 11
	mov	rdi, rax
	call	error
	jmp	.L1101
.L1030:
	mov	rax, QWORD PTR -136[rbp]
	mov	edx, DWORD PTR 172[rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	ecx, DWORD PTR 168[rax]
	mov	eax, edx
	sub	eax, ecx
	sar	eax, 2
	mov	DWORD PTR -92[rbp], eax
	mov	eax, DWORD PTR -140[rbp]
	cmp	eax, DWORD PTR -92[rbp]
	jnb	.L1031
	mov	DWORD PTR -104[rbp], 0
	jmp	.L1032
.L1031:
	mov	eax, DWORD PTR -140[rbp]
	sub	eax, DWORD PTR -92[rbp]
	mov	DWORD PTR -104[rbp], eax
.L1032:
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR 100[rax]
	mov	QWORD PTR -44[rbp], rdx
	mov	eax, DWORD PTR 108[rax]
	mov	DWORD PTR -36[rbp], eax
	jmp	.L1033
.L1035:
	mov	edx, DWORD PTR -40[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	set_file_offset
	lea	rdx, -44[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	get_seek_page_info
	test	eax, eax
	je	.L1110
.L1033:
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, -1
	je	.L1035
	mov	rax, QWORD PTR -136[rbp]
	mov	rdx, QWORD PTR 112[rax]
	mov	QWORD PTR -32[rbp], rdx
	mov	eax, DWORD PTR 120[rax]
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	cmp	eax, -1
	jne	.L1036
	lea	rcx, __PRETTY_FUNCTION__.4[rip]
	mov	edx, 4710
	lea	rsi, .LC1[rip]
	lea	rdi, .LC30[rip]
	call	__assert_fail@PLT
.L1036:
	mov	eax, DWORD PTR -36[rbp]
	cmp	DWORD PTR -104[rbp], eax
	ja	.L1040
	mov	rax, QWORD PTR -136[rbp]
	mov	rdi, rax
	call	stb_vorbis_seek_start
	test	eax, eax
	je	.L1038
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 1408[rax]
	cmp	DWORD PTR -140[rbp], eax
	jnb	.L1039
	mov	rax, QWORD PTR -136[rbp]
	mov	esi, 37
	mov	rdi, rax
	call	error
	jmp	.L1101
.L1039:
	mov	eax, 1
	jmp	.L1101
.L1038:
	mov	eax, 0
	jmp	.L1101
.L1087:
	mov	edx, DWORD PTR -40[rbp]
	mov	eax, DWORD PTR -32[rbp]
	cmp	edx, eax
	jb	.L1041
	lea	rcx, __PRETTY_FUNCTION__.4[rip]
	mov	edx, 4723
	lea	rsi, .LC1[rip]
	lea	rdi, .LC31[rip]
	call	__assert_fail@PLT
.L1041:
	mov	eax, DWORD PTR -32[rbp]
	mov	edx, DWORD PTR -40[rbp]
	sub	eax, edx
	mov	DWORD PTR -88[rbp], eax
	cmp	DWORD PTR -88[rbp], 65536
	ja	.L1042
	mov	edx, DWORD PTR -40[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	set_file_offset
	jmp	.L1082
.L1042:
	cmp	DWORD PTR -100[rbp], 1
	jg	.L1044
	cmp	DWORD PTR -100[rbp], 0
	jne	.L1045
	mov	eax, DWORD PTR -28[rbp]
	mov	edx, DWORD PTR -44[rbp]
	sub	eax, edx
	mov	eax, eax
	test	rax, rax
	js	.L1046
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	jmp	.L1047
.L1046:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rdx
	addsd	xmm0, xmm0
.L1047:
	movsd	QWORD PTR -56[rbp], xmm0
	mov	eax, DWORD PTR -24[rbp]
	mov	eax, eax
	test	rax, rax
	js	.L1048
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	jmp	.L1049
.L1048:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rdx
	addsd	xmm0, xmm0
.L1049:
	movsd	xmm1, QWORD PTR -56[rbp]
	divsd	xmm1, xmm0
	movsd	QWORD PTR -72[rbp], xmm1
	mov	eax, DWORD PTR -44[rbp]
	mov	eax, eax
	test	rax, rax
	js	.L1050
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, rax
	jmp	.L1051
.L1050:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rdx
	movapd	xmm1, xmm0
	addsd	xmm1, xmm0
.L1051:
	mov	edx, DWORD PTR -36[rbp]
	mov	eax, DWORD PTR -104[rbp]
	sub	eax, edx
	mov	eax, eax
	test	rax, rax
	js	.L1052
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	jmp	.L1053
.L1052:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rdx
	addsd	xmm0, xmm0
.L1053:
	mulsd	xmm0, QWORD PTR -72[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -80[rbp], xmm0
	jmp	.L1054
.L1045:
	mov	eax, DWORD PTR -104[rbp]
	test	rax, rax
	js	.L1055
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	jmp	.L1056
.L1055:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rdx
	addsd	xmm0, xmm0
.L1056:
	mov	eax, DWORD PTR -12[rbp]
	mov	eax, eax
	test	rax, rax
	js	.L1057
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, rax
	jmp	.L1058
.L1057:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, rdx
	addsd	xmm1, xmm1
.L1058:
	subsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR -72[rbp]
	mulsd	xmm0, xmm1
	movsd	QWORD PTR -64[rbp], xmm0
	movsd	xmm0, QWORD PTR -64[rbp]
	pxor	xmm1, xmm1
	comisd	xmm0, xmm1
	jb	.L1059
	movsd	xmm0, QWORD PTR .LC32[rip]
	comisd	xmm0, QWORD PTR -64[rbp]
	jbe	.L1059
	movsd	xmm0, QWORD PTR .LC32[rip]
	movsd	QWORD PTR -64[rbp], xmm0
.L1059:
	pxor	xmm0, xmm0
	comisd	xmm0, QWORD PTR -64[rbp]
	jbe	.L1062
	movsd	xmm0, QWORD PTR -64[rbp]
	comisd	xmm0, QWORD PTR .LC33[rip]
	jbe	.L1062
	movsd	xmm0, QWORD PTR .LC33[rip]
	movsd	QWORD PTR -64[rbp], xmm0
.L1062:
	movsd	xmm0, QWORD PTR -64[rbp]
	addsd	xmm0, xmm0
	movsd	xmm1, QWORD PTR -80[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -80[rbp], xmm0
.L1054:
	mov	eax, DWORD PTR -40[rbp]
	mov	eax, eax
	test	rax, rax
	js	.L1065
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	jmp	.L1066
.L1065:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rdx
	addsd	xmm0, xmm0
.L1066:
	comisd	xmm0, QWORD PTR -80[rbp]
	jbe	.L1067
	mov	eax, DWORD PTR -40[rbp]
	mov	eax, eax
	test	rax, rax
	js	.L1069
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	jmp	.L1070
.L1069:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rdx
	addsd	xmm0, xmm0
.L1070:
	movsd	QWORD PTR -80[rbp], xmm0
.L1067:
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 65536
	mov	eax, eax
	test	rax, rax
	js	.L1071
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	jmp	.L1072
.L1071:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rdx
	addsd	xmm0, xmm0
.L1072:
	movsd	xmm1, QWORD PTR -80[rbp]
	comisd	xmm1, xmm0
	jbe	.L1073
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 65536
	mov	eax, eax
	test	rax, rax
	js	.L1075
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	jmp	.L1076
.L1075:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rdx
	addsd	xmm0, xmm0
.L1076:
	movsd	QWORD PTR -80[rbp], xmm0
.L1073:
	movsd	xmm0, QWORD PTR -80[rbp]
	cvttsd2si	rax, xmm0
	mov	edx, eax
	mov	rax, QWORD PTR -136[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	set_file_offset
	jmp	.L1077
.L1044:
	mov	edx, DWORD PTR -40[rbp]
	mov	eax, DWORD PTR -88[rbp]
	shr	eax
	add	eax, edx
	lea	edx, -32768[rax]
	mov	rax, QWORD PTR -136[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	set_file_offset
.L1077:
	mov	rax, QWORD PTR -136[rbp]
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	vorbis_find_page
	test	eax, eax
	je	.L1111
.L1082:
	lea	rdx, -20[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	get_seek_page_info
	test	eax, eax
	je	.L1112
	mov	eax, DWORD PTR -12[rbp]
	cmp	eax, -1
	jne	.L1113
	mov	edx, DWORD PTR -16[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	set_file_offset
	mov	edx, DWORD PTR -20[rbp]
	mov	eax, DWORD PTR -32[rbp]
	cmp	edx, eax
	jb	.L1082
	lea	rcx, __PRETTY_FUNCTION__.4[rip]
	mov	edx, 4765
	lea	rsi, .LC1[rip]
	lea	rdi, .LC34[rip]
	call	__assert_fail@PLT
.L1113:
	nop
	mov	edx, DWORD PTR -20[rbp]
	mov	eax, DWORD PTR -32[rbp]
	cmp	edx, eax
	jne	.L1083
	cmp	DWORD PTR -100[rbp], 1
	jg	.L1084
	cmp	DWORD PTR -88[rbp], 65536
	jbe	.L1084
	jmp	.L1085
.L1083:
	mov	eax, DWORD PTR -12[rbp]
	cmp	DWORD PTR -104[rbp], eax
	jnb	.L1086
	mov	rax, QWORD PTR -20[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR -24[rbp], eax
	jmp	.L1085
.L1086:
	mov	rax, QWORD PTR -20[rbp]
	mov	QWORD PTR -44[rbp], rax
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR -36[rbp], eax
.L1085:
	add	DWORD PTR -100[rbp], 1
.L1040:
	mov	edx, DWORD PTR -40[rbp]
	mov	eax, DWORD PTR -32[rbp]
	cmp	edx, eax
	jne	.L1087
.L1084:
	mov	eax, DWORD PTR -44[rbp]
	mov	DWORD PTR -108[rbp], eax
	mov	edx, DWORD PTR -108[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	set_file_offset
	mov	rax, QWORD PTR -136[rbp]
	mov	rdi, rax
	call	start_page
	test	eax, eax
	jne	.L1088
	mov	rax, QWORD PTR -136[rbp]
	mov	esi, 37
	mov	rdi, rax
	call	error
	jmp	.L1101
.L1088:
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 1792[rax]
	mov	DWORD PTR -112[rbp], eax
	cmp	DWORD PTR -112[rbp], 0
	jns	.L1089
	lea	rcx, __PRETTY_FUNCTION__.4[rip]
	mov	edx, 4788
	lea	rsi, .LC1[rip]
	lea	rdi, .LC35[rip]
	call	__assert_fail@PLT
.L1089:
	mov	eax, DWORD PTR -112[rbp]
	mov	DWORD PTR -116[rbp], eax
	jmp	.L1090
.L1093:
	mov	eax, DWORD PTR -116[rbp]
	sub	eax, 1
	mov	rdx, QWORD PTR -136[rbp]
	cdqe
	movzx	eax, BYTE PTR 1508[rdx+rax]
	cmp	al, -1
	jne	.L1114
	sub	DWORD PTR -116[rbp], 1
.L1090:
	cmp	DWORD PTR -116[rbp], 0
	jg	.L1093
	jmp	.L1092
.L1114:
	nop
.L1092:
	mov	eax, DWORD PTR -116[rbp]
	mov	DWORD PTR -84[rbp], eax
	cmp	DWORD PTR -84[rbp], 0
	jg	.L1094
	mov	rax, QWORD PTR -136[rbp]
	movzx	eax, BYTE PTR 1763[rax]
	movzx	eax, al
	and	eax, 1
	test	eax, eax
	je	.L1094
	mov	edx, DWORD PTR -108[rbp]
	mov	rax, QWORD PTR -136[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	go_to_page_before
	test	eax, eax
	je	.L1115
	mov	rax, QWORD PTR -136[rbp]
	mov	rdi, rax
	call	stb_vorbis_get_file_offset
	mov	DWORD PTR -108[rbp], eax
	mov	rax, QWORD PTR -136[rbp]
	mov	rdi, rax
	call	start_page
	test	eax, eax
	je	.L1116
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 1504[rax]
	sub	eax, 1
	mov	DWORD PTR -112[rbp], eax
	jmp	.L1089
.L1094:
	mov	rax, QWORD PTR -136[rbp]
	mov	DWORD PTR 1412[rax], 0
	mov	rax, QWORD PTR -136[rbp]
	mov	DWORD PTR 1772[rax], 0
	mov	rax, QWORD PTR -136[rbp]
	mov	DWORD PTR 1784[rax], 0
	mov	rax, QWORD PTR -136[rbp]
	mov	DWORD PTR 1788[rax], 0
	mov	rax, QWORD PTR -136[rbp]
	mov	BYTE PTR 1764[rax], 0
	mov	rax, QWORD PTR -136[rbp]
	mov	DWORD PTR 1272[rax], 0
	mov	rax, QWORD PTR -136[rbp]
	mov	edx, DWORD PTR -84[rbp]
	mov	DWORD PTR 1768[rax], edx
	mov	DWORD PTR -116[rbp], 0
	jmp	.L1097
.L1098:
	mov	rdx, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	movzx	eax, BYTE PTR 1508[rdx+rax]
	movzx	edx, al
	mov	rax, QWORD PTR -136[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	skip
	add	DWORD PTR -116[rbp], 1
.L1097:
	mov	eax, DWORD PTR -116[rbp]
	cmp	eax, DWORD PTR -84[rbp]
	jl	.L1098
	mov	rax, QWORD PTR -136[rbp]
	mov	rdi, rax
	call	vorbis_pump_first_frame
	test	eax, eax
	jne	.L1099
	mov	eax, 0
	jmp	.L1101
.L1099:
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR 1408[rax]
	cmp	DWORD PTR -140[rbp], eax
	jnb	.L1100
	mov	rax, QWORD PTR -136[rbp]
	mov	esi, 37
	mov	rdi, rax
	call	error
	jmp	.L1101
.L1100:
	mov	eax, 1
	jmp	.L1101
.L1110:
	nop
	jmp	.L1034
.L1111:
	nop
	jmp	.L1034
.L1112:
	nop
	jmp	.L1034
.L1115:
	nop
	jmp	.L1034
.L1116:
	nop
.L1034:
	mov	rax, QWORD PTR -136[rbp]
	mov	rdi, rax
	call	stb_vorbis_seek_start
	mov	rax, QWORD PTR -136[rbp]
	mov	esi, 37
	mov	rdi, rax
	call	error
.L1101:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1102
	call	__stack_chk_fail@PLT
.L1102:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE89:
	.size	seek_to_sample_coarse, .-seek_to_sample_coarse
	.type	peek_decode_initial, @function
peek_decode_initial:
.LFB90:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	mov	QWORD PTR -56[rbp], r8
	mov	QWORD PTR -64[rbp], r9
	mov	r8, QWORD PTR -64[rbp]
	mov	rdi, QWORD PTR -56[rbp]
	mov	rcx, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	r9, r8
	mov	r8, rdi
	mov	rdi, rax
	call	vorbis_decode_initial
	test	eax, eax
	jne	.L1118
	mov	eax, 0
	jmp	.L1119
.L1118:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 496[rax]
	sub	eax, 1
	mov	edi, eax
	call	ilog
	add	eax, 1
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	mov	rcx, QWORD PTR -24[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	add	rax, rcx
	add	rax, 500
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L1120
	add	DWORD PTR -8[rbp], 2
.L1120:
	mov	eax, DWORD PTR -8[rbp]
	add	eax, 7
	lea	edx, 7[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 3
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 1764[rax]
	mov	edx, DWORD PTR -4[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 1764[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1788[rax]
	sub	eax, DWORD PTR -4[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1788[rax], edx
	mov	eax, DWORD PTR -4[rbp]
	neg	eax
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	skip
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1768[rax]
	cmp	eax, -1
	jne	.L1121
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1504[rax]
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1768[rax], edx
	jmp	.L1122
.L1121:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1768[rax]
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1768[rax], edx
.L1122:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1784[rax], 0
	mov	eax, 1
.L1119:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE90:
	.size	peek_decode_initial, .-peek_decode_initial
	.section	.rodata
.LC36:
	.string	"f->current_loc_valid"
	.align 8
.LC37:
	.string	"f->current_loc <= sample_number"
	.text
	.globl	stb_vorbis_seek_frame
	.type	stb_vorbis_seek_frame, @function
stb_vorbis_seek_frame:
.LFB91:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	DWORD PTR -60[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR 92[rax]
	test	al, al
	je	.L1124
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	error
	jmp	.L1125
.L1124:
	mov	edx, DWORD PTR -60[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	seek_to_sample_coarse
	test	eax, eax
	jne	.L1126
	mov	eax, 0
	jmp	.L1125
.L1126:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1412[rax]
	test	eax, eax
	jne	.L1127
	lea	rcx, __PRETTY_FUNCTION__.3[rip]
	mov	edx, 4870
	lea	rsi, .LC1[rip]
	lea	rdi, .LC36[rip]
	call	__assert_fail@PLT
.L1127:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1408[rax]
	cmp	DWORD PTR -60[rbp], eax
	jnb	.L1128
	lea	rcx, __PRETTY_FUNCTION__.3[rip]
	mov	edx, 4871
	lea	rsi, .LC1[rip]
	lea	rdi, .LC37[rip]
	call	__assert_fail@PLT
.L1128:
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR 172[rax]
	mov	eax, edx
	add	eax, eax
	add	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	ecx, DWORD PTR 168[rax]
	mov	eax, edx
	sub	eax, ecx
	sar	eax, 2
	mov	DWORD PTR -16[rbp], eax
	jmp	.L1129
.L1135:
	lea	r8, -20[rbp]
	lea	rdi, -24[rbp]
	lea	rcx, -28[rbp]
	lea	rdx, -32[rbp]
	lea	rsi, -36[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	r9, r8
	mov	r8, rdi
	mov	rdi, rax
	call	peek_decode_initial
	test	eax, eax
	jne	.L1130
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 37
	mov	rdi, rax
	call	error
	jmp	.L1125
.L1130:
	mov	eax, DWORD PTR -28[rbp]
	mov	edx, DWORD PTR -36[rbp]
	sub	eax, edx
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR 1408[rax]
	mov	eax, DWORD PTR -12[rbp]
	add	eax, edx
	cmp	DWORD PTR -60[rbp], eax
	jnb	.L1132
	mov	eax, 1
	jmp	.L1125
.L1132:
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR 1408[rax]
	mov	eax, DWORD PTR -12[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	add	eax, edx
	cmp	DWORD PTR -60[rbp], eax
	jnb	.L1133
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	vorbis_pump_first_frame
	jmp	.L1129
.L1133:
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR 1408[rax]
	mov	eax, DWORD PTR -12[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 1408[rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 1272[rax], 0
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	maybe_start_packet
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	flush_packet
.L1129:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1408[rax]
	cmp	DWORD PTR -60[rbp], eax
	ja	.L1135
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1408[rax]
	cmp	DWORD PTR -60[rbp], eax
	je	.L1136
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 37
	mov	rdi, rax
	call	error
	jmp	.L1125
.L1136:
	mov	eax, 1
.L1125:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1137
	call	__stack_chk_fail@PLT
.L1137:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE91:
	.size	stb_vorbis_seek_frame, .-stb_vorbis_seek_frame
	.section	.rodata
.LC38:
	.string	"sample_number > frame_start"
	.align 8
.LC39:
	.string	"f->channel_buffer_start + (int) (sample_number-frame_start) <= f->channel_buffer_end"
	.text
	.globl	stb_vorbis_seek
	.type	stb_vorbis_seek, @function
stb_vorbis_seek:
.LFB92:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	edx, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	stb_vorbis_seek_frame
	test	eax, eax
	jne	.L1139
	mov	eax, 0
	jmp	.L1140
.L1139:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1408[rax]
	cmp	DWORD PTR -28[rbp], eax
	je	.L1141
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1408[rax]
	mov	DWORD PTR -12[rbp], eax
	lea	rcx, -16[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	stb_vorbis_get_frame_float
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, DWORD PTR -12[rbp]
	ja	.L1142
	lea	rcx, __PRETTY_FUNCTION__.2[rip]
	mov	edx, 4908
	lea	rsi, .LC1[rip]
	lea	rdi, .LC38[rip]
	call	__assert_fail@PLT
.L1142:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 1892[rax]
	mov	eax, DWORD PTR -28[rbp]
	sub	eax, DWORD PTR -12[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1896[rax]
	cmp	edx, eax
	jle	.L1143
	lea	rcx, __PRETTY_FUNCTION__.2[rip]
	mov	edx, 4909
	lea	rsi, .LC1[rip]
	lea	rdi, .LC39[rip]
	call	__assert_fail@PLT
.L1143:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1892[rax]
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	sub	eax, DWORD PTR -12[rbp]
	add	eax, edx
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1892[rax], edx
.L1141:
	mov	eax, 1
.L1140:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1144
	call	__stack_chk_fail@PLT
.L1144:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE92:
	.size	stb_vorbis_seek, .-stb_vorbis_seek
	.globl	stb_vorbis_seek_start
	.type	stb_vorbis_seek_start, @function
stb_vorbis_seek_start:
.LFB93:
	.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	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 92[rax]
	test	al, al
	je	.L1146
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	error
	jmp	.L1147
.L1146:
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR 96[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	set_file_offset
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 1272[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 1765[rax], 1
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 1768[rax], -1
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	vorbis_pump_first_frame
.L1147:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE93:
	.size	stb_vorbis_seek_start, .-stb_vorbis_seek_start
	.globl	stb_vorbis_stream_length_in_samples
	.type	stb_vorbis_stream_length_in_samples, @function
stb_vorbis_stream_length_in_samples:
.LFB94:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR 92[rax]
	test	al, al
	je	.L1149
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	error
	jmp	.L1164
.L1149:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 884[rax]
	test	eax, eax
	jne	.L1151
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	stb_vorbis_get_file_offset
	mov	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 88[rax]
	cmp	eax, 65535
	jbe	.L1152
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 88[rax]
	lea	edx, -65536[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 96[rax]
	cmp	edx, eax
	jb	.L1152
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 88[rax]
	sub	eax, 65536
	mov	DWORD PTR -36[rbp], eax
	jmp	.L1153
.L1152:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 96[rax]
	mov	DWORD PTR -36[rbp], eax
.L1153:
	mov	edx, DWORD PTR -36[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	set_file_offset
	lea	rdx, -40[rbp]
	lea	rcx, -44[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vorbis_find_page
	test	eax, eax
	jne	.L1154
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 156[rax], 36
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 884[rax], -1
	jmp	.L1155
.L1154:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	stb_vorbis_get_file_offset
	mov	DWORD PTR -32[rbp], eax
	jmp	.L1156
.L1159:
	mov	edx, DWORD PTR -44[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	set_file_offset
	lea	rdx, -40[rbp]
	lea	rcx, -44[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	vorbis_find_page
	test	eax, eax
	je	.L1166
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 1
	mov	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	stb_vorbis_get_file_offset
	mov	DWORD PTR -32[rbp], eax
.L1156:
	mov	eax, DWORD PTR -40[rbp]
	test	eax, eax
	je	.L1159
	jmp	.L1158
.L1166:
	nop
.L1158:
	mov	edx, DWORD PTR -32[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	set_file_offset
	lea	rcx, -14[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, 6
	mov	rsi, rcx
	mov	rdi, rax
	call	getn
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	get32
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	get32
	mov	DWORD PTR -20[rbp], eax
	cmp	DWORD PTR -28[rbp], -1
	jne	.L1160
	cmp	DWORD PTR -20[rbp], -1
	jne	.L1160
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 156[rax], 36
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 884[rax], -1
	jmp	.L1155
.L1160:
	cmp	DWORD PTR -20[rbp], 0
	je	.L1161
	mov	DWORD PTR -28[rbp], -2
.L1161:
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -28[rbp]
	mov	DWORD PTR 884[rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -32[rbp]
	mov	DWORD PTR 112[rax], edx
	mov	edx, DWORD PTR -44[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 116[rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -28[rbp]
	mov	DWORD PTR 120[rax], edx
.L1155:
	mov	edx, DWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	set_file_offset
.L1151:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 884[rax]
	cmp	eax, -1
	je	.L1162
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 884[rax]
	jmp	.L1164
.L1162:
	mov	eax, 0
.L1164:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1165
	call	__stack_chk_fail@PLT
.L1165:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE94:
	.size	stb_vorbis_stream_length_in_samples, .-stb_vorbis_stream_length_in_samples
	.globl	stb_vorbis_stream_length_in_seconds
	.type	stb_vorbis_stream_length_in_seconds, @function
stb_vorbis_stream_length_in_seconds:
.LFB95:
	.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	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	stb_vorbis_stream_length_in_samples
	mov	eax, eax
	test	rax, rax
	js	.L1168
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, rax
	jmp	.L1169
.L1168:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, rdx
	addss	xmm0, xmm0
.L1169:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	test	rax, rax
	js	.L1170
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, rax
	jmp	.L1171
.L1170:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, rdx
	addss	xmm1, xmm1
.L1171:
	divss	xmm0, xmm1
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE95:
	.size	stb_vorbis_stream_length_in_seconds, .-stb_vorbis_stream_length_in_seconds
	.globl	stb_vorbis_get_frame_float
	.type	stb_vorbis_get_frame_float, @function
stb_vorbis_get_frame_float:
.LFB96:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 92[rax]
	test	al, al
	je	.L1174
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	error
	jmp	.L1181
.L1174:
	lea	rcx, -20[rbp]
	lea	rdx, -16[rbp]
	lea	rsi, -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	vorbis_decode_packet
	test	eax, eax
	jne	.L1176
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1896[rax], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 1896[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1892[rax], edx
	mov	eax, 0
	jmp	.L1181
.L1176:
	mov	ecx, DWORD PTR -20[rbp]
	mov	edx, DWORD PTR -16[rbp]
	mov	esi, DWORD PTR -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	vorbis_finish_frame
	mov	DWORD PTR -24[rbp], eax
	mov	DWORD PTR -12[rbp], 0
	jmp	.L1177
.L1178:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -12[rbp]
	movsx	rdx, edx
	add	rdx, 110
	mov	rdx, QWORD PTR 8[rax+rdx*8]
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	sal	rax, 2
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -12[rbp]
	movsx	rdx, edx
	add	rdx, 126
	mov	QWORD PTR 8[rax+rdx*8], rcx
	add	DWORD PTR -12[rbp], 1
.L1177:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -12[rbp], eax
	jl	.L1178
	mov	edx, DWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1892[rax], edx
	mov	edx, DWORD PTR -16[rbp]
	mov	eax, DWORD PTR -24[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1896[rax], edx
	cmp	QWORD PTR -48[rbp], 0
	je	.L1179
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR [rax], edx
.L1179:
	cmp	QWORD PTR -56[rbp], 0
	je	.L1180
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, 1016[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR [rax], rdx
.L1180:
	mov	eax, DWORD PTR -24[rbp]
.L1181:
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L1182
	call	__stack_chk_fail@PLT
.L1182:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE96:
	.size	stb_vorbis_get_frame_float, .-stb_vorbis_get_frame_float
	.globl	stb_vorbis_open_file_section
	.type	stb_vorbis_open_file_section, @function
stb_vorbis_open_file_section:
.LFB97:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 1968
	mov	QWORD PTR -1944[rbp], rdi
	mov	DWORD PTR -1948[rbp], esi
	mov	QWORD PTR -1960[rbp], rdx
	mov	QWORD PTR -1968[rbp], rcx
	mov	DWORD PTR -1952[rbp], r8d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rdx, QWORD PTR -1968[rbp]
	lea	rax, -1920[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	vorbis_init
	mov	rax, QWORD PTR -1944[rbp]
	mov	QWORD PTR -1872[rbp], rax
	mov	rax, QWORD PTR -1944[rbp]
	mov	rdi, rax
	call	ftell@PLT
	mov	DWORD PTR -1864[rbp], eax
	mov	eax, DWORD PTR -1952[rbp]
	mov	DWORD PTR -1832[rbp], eax
	mov	eax, DWORD PTR -1948[rbp]
	mov	DWORD PTR -1860[rbp], eax
	lea	rax, -1920[rbp]
	mov	rdi, rax
	call	start_decoder
	test	eax, eax
	je	.L1184
	lea	rax, -1920[rbp]
	mov	rdi, rax
	call	vorbis_alloc
	mov	QWORD PTR -1928[rbp], rax
	cmp	QWORD PTR -1928[rbp], 0
	je	.L1184
	mov	rax, QWORD PTR -1928[rbp]
	mov	rdi, rax
	lea	rax, -1920[rbp]
	mov	edx, 238
	mov	rsi, rax
	mov	rcx, rdx
	rep movsq
	mov	rax, QWORD PTR -1928[rbp]
	mov	rdi, rax
	call	vorbis_pump_first_frame
	mov	rax, QWORD PTR -1928[rbp]
	jmp	.L1187
.L1184:
	cmp	QWORD PTR -1960[rbp], 0
	je	.L1186
	mov	eax, DWORD PTR -1764[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -1960[rbp]
	mov	DWORD PTR [rax], edx
.L1186:
	lea	rax, -1920[rbp]
	mov	rdi, rax
	call	vorbis_deinit
	mov	eax, 0
.L1187:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1188
	call	__stack_chk_fail@PLT
.L1188:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE97:
	.size	stb_vorbis_open_file_section, .-stb_vorbis_open_file_section
	.globl	stb_vorbis_open_file
	.type	stb_vorbis_open_file, @function
stb_vorbis_open_file:
.LFB98:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	ftell@PLT
	mov	DWORD PTR -8[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 2
	mov	esi, 0
	mov	rdi, rax
	call	fseek@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	ftell@PLT
	sub	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR -4[rbp], eax
	mov	ecx, DWORD PTR -8[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	fseek@PLT
	mov	edi, DWORD PTR -4[rbp]
	mov	rcx, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	esi, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	stb_vorbis_open_file_section
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE98:
	.size	stb_vorbis_open_file, .-stb_vorbis_open_file
	.section	.rodata
.LC40:
	.string	"rb"
	.text
	.globl	stb_vorbis_open_filename
	.type	stb_vorbis_open_filename, @function
stb_vorbis_open_filename:
.LFB99:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR -24[rbp]
	lea	rsi, .LC40[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	je	.L1192
	mov	rcx, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	stb_vorbis_open_file
	jmp	.L1193
.L1192:
	cmp	QWORD PTR -32[rbp], 0
	je	.L1194
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 6
.L1194:
	mov	eax, 0
.L1193:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE99:
	.size	stb_vorbis_open_filename, .-stb_vorbis_open_filename
	.globl	stb_vorbis_open_memory
	.type	stb_vorbis_open_memory, @function
stb_vorbis_open_memory:
.LFB100:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 1968
	mov	QWORD PTR -1944[rbp], rdi
	mov	DWORD PTR -1948[rbp], esi
	mov	QWORD PTR -1960[rbp], rdx
	mov	QWORD PTR -1968[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	cmp	QWORD PTR -1944[rbp], 0
	jne	.L1196
	mov	eax, 0
	jmp	.L1201
.L1196:
	mov	rdx, QWORD PTR -1968[rbp]
	lea	rax, -1920[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	vorbis_init
	mov	rax, QWORD PTR -1944[rbp]
	mov	QWORD PTR -1856[rbp], rax
	mov	eax, DWORD PTR -1948[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -1944[rbp]
	add	rax, rdx
	mov	QWORD PTR -1840[rbp], rax
	mov	rax, QWORD PTR -1856[rbp]
	mov	QWORD PTR -1848[rbp], rax
	mov	eax, DWORD PTR -1948[rbp]
	mov	DWORD PTR -1832[rbp], eax
	mov	BYTE PTR -1828[rbp], 0
	lea	rax, -1920[rbp]
	mov	rdi, rax
	call	start_decoder
	test	eax, eax
	je	.L1198
	lea	rax, -1920[rbp]
	mov	rdi, rax
	call	vorbis_alloc
	mov	QWORD PTR -1928[rbp], rax
	cmp	QWORD PTR -1928[rbp], 0
	je	.L1198
	mov	rax, QWORD PTR -1928[rbp]
	mov	rdi, rax
	lea	rax, -1920[rbp]
	mov	edx, 238
	mov	rsi, rax
	mov	rcx, rdx
	rep movsq
	mov	rax, QWORD PTR -1928[rbp]
	mov	rdi, rax
	call	vorbis_pump_first_frame
	cmp	QWORD PTR -1960[rbp], 0
	je	.L1199
	mov	rax, QWORD PTR -1960[rbp]
	mov	DWORD PTR [rax], 0
.L1199:
	mov	rax, QWORD PTR -1928[rbp]
	jmp	.L1201
.L1198:
	cmp	QWORD PTR -1960[rbp], 0
	je	.L1200
	mov	eax, DWORD PTR -1764[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -1960[rbp]
	mov	DWORD PTR [rax], edx
.L1200:
	lea	rax, -1920[rbp]
	mov	rdi, rax
	call	vorbis_deinit
	mov	eax, 0
.L1201:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1202
	call	__stack_chk_fail@PLT
.L1202:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE100:
	.size	stb_vorbis_open_memory, .-stb_vorbis_open_memory
	.data
	.align 32
	.type	channel_position, @object
	.size	channel_position, 42
channel_position:
	.string	""
	.string	""
	.zero	4
	.string	"\007"
	.zero	4
	.string	"\003\005"
	.zero	3
	.string	"\003\007\005"
	.zero	2
	.string	"\003\005\003\005"
	.zero	1
	.string	"\003\007\005\003\005"
	.ascii	"\003\007\005\003\005\007"
	.text
	.type	copy_samples, @function
copy_samples:
.LFB101:
	.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	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -36[rbp], edx
	mov	DWORD PTR -8[rbp], 0
	jmp	.L1204
.L1208:
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	movss	xmm1, DWORD PTR [rax]
	movss	xmm0, DWORD PTR .LC41[rip]
	addss	xmm0, xmm1
	movss	DWORD PTR -12[rbp], xmm0
	mov	eax, DWORD PTR -12[rbp]
	sub	eax, 1136656384
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	add	eax, 32768
	cmp	eax, 65535
	jbe	.L1205
	cmp	DWORD PTR -4[rbp], 0
	jns	.L1206
	mov	eax, -32768
	jmp	.L1207
.L1206:
	mov	eax, 32767
.L1207:
	mov	DWORD PTR -4[rbp], eax
.L1205:
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -4[rbp]
	mov	WORD PTR [rax], dx
	add	DWORD PTR -8[rbp], 1
.L1204:
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -36[rbp]
	jl	.L1208
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE101:
	.size	copy_samples, .-copy_samples
	.type	compute_samples, @function
compute_samples:
.LFB102:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 208
	mov	DWORD PTR -180[rbp], edi
	mov	QWORD PTR -192[rbp], rsi
	mov	DWORD PTR -184[rbp], edx
	mov	QWORD PTR -200[rbp], rcx
	mov	DWORD PTR -204[rbp], r8d
	mov	DWORD PTR -208[rbp], r9d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -152[rbp], 32
	mov	DWORD PTR -156[rbp], 0
	jmp	.L1210
.L1222:
	lea	rax, -144[rbp]
	mov	edx, 128
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	edx, DWORD PTR -156[rbp]
	mov	eax, DWORD PTR -152[rbp]
	add	eax, edx
	cmp	DWORD PTR -208[rbp], eax
	jge	.L1211
	mov	eax, DWORD PTR -208[rbp]
	sub	eax, DWORD PTR -156[rbp]
	mov	DWORD PTR -152[rbp], eax
.L1211:
	mov	DWORD PTR -160[rbp], 0
	jmp	.L1212
.L1216:
	mov	eax, DWORD PTR -160[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -184[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	lea	rdx, [rax+rcx]
	lea	rax, channel_position[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	and	eax, DWORD PTR -180[rbp]
	test	eax, eax
	je	.L1213
	mov	DWORD PTR -164[rbp], 0
	jmp	.L1214
.L1215:
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	movss	xmm1, DWORD PTR -144[rbp+rax*4]
	mov	eax, DWORD PTR -160[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	ecx, DWORD PTR -204[rbp]
	mov	eax, DWORD PTR -156[rbp]
	add	ecx, eax
	mov	eax, DWORD PTR -164[rbp]
	add	eax, ecx
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	addss	xmm0, xmm1
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	movss	DWORD PTR -144[rbp+rax*4], xmm0
	add	DWORD PTR -164[rbp], 1
.L1214:
	mov	eax, DWORD PTR -164[rbp]
	cmp	eax, DWORD PTR -152[rbp]
	jl	.L1215
.L1213:
	add	DWORD PTR -160[rbp], 1
.L1212:
	mov	eax, DWORD PTR -160[rbp]
	cmp	eax, DWORD PTR -184[rbp]
	jl	.L1216
	mov	DWORD PTR -164[rbp], 0
	jmp	.L1217
.L1221:
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	movss	xmm1, DWORD PTR -144[rbp+rax*4]
	movss	xmm0, DWORD PTR .LC41[rip]
	addss	xmm0, xmm1
	movss	DWORD PTR -168[rbp], xmm0
	mov	eax, DWORD PTR -168[rbp]
	sub	eax, 1136656384
	mov	DWORD PTR -148[rbp], eax
	mov	eax, DWORD PTR -148[rbp]
	add	eax, 32768
	cmp	eax, 65535
	jbe	.L1218
	cmp	DWORD PTR -148[rbp], 0
	jns	.L1219
	mov	eax, -32768
	jmp	.L1220
.L1219:
	mov	eax, 32767
.L1220:
	mov	DWORD PTR -148[rbp], eax
.L1218:
	mov	edx, DWORD PTR -156[rbp]
	mov	eax, DWORD PTR -164[rbp]
	add	eax, edx
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -192[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -148[rbp]
	mov	WORD PTR [rax], dx
	add	DWORD PTR -164[rbp], 1
.L1217:
	mov	eax, DWORD PTR -164[rbp]
	cmp	eax, DWORD PTR -152[rbp]
	jl	.L1221
	add	DWORD PTR -156[rbp], 32
.L1210:
	mov	eax, DWORD PTR -156[rbp]
	cmp	eax, DWORD PTR -208[rbp]
	jl	.L1222
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1223
	call	__stack_chk_fail@PLT
.L1223:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE102:
	.size	compute_samples, .-compute_samples
	.type	compute_stereo_samples, @function
compute_stereo_samples:
.LFB103:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 208
	mov	QWORD PTR -184[rbp], rdi
	mov	DWORD PTR -188[rbp], esi
	mov	QWORD PTR -200[rbp], rdx
	mov	DWORD PTR -192[rbp], ecx
	mov	DWORD PTR -204[rbp], r8d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -160[rbp], 16
	mov	DWORD PTR -164[rbp], 0
	jmp	.L1225
.L1243:
	mov	eax, DWORD PTR -164[rbp]
	add	eax, eax
	mov	DWORD PTR -152[rbp], eax
	lea	rax, -144[rbp]
	mov	edx, 128
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	edx, DWORD PTR -164[rbp]
	mov	eax, DWORD PTR -160[rbp]
	add	eax, edx
	cmp	DWORD PTR -204[rbp], eax
	jge	.L1226
	mov	eax, DWORD PTR -204[rbp]
	sub	eax, DWORD PTR -164[rbp]
	mov	DWORD PTR -160[rbp], eax
.L1226:
	mov	DWORD PTR -168[rbp], 0
	jmp	.L1227
.L1237:
	mov	eax, DWORD PTR -168[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -188[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	lea	rdx, [rax+rcx]
	lea	rax, channel_position[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	and	eax, 6
	mov	DWORD PTR -148[rbp], eax
	cmp	DWORD PTR -148[rbp], 6
	jne	.L1228
	mov	DWORD PTR -172[rbp], 0
	jmp	.L1229
.L1230:
	mov	eax, DWORD PTR -172[rbp]
	add	eax, eax
	cdqe
	movss	xmm1, DWORD PTR -144[rbp+rax*4]
	mov	eax, DWORD PTR -168[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	ecx, DWORD PTR -192[rbp]
	mov	eax, DWORD PTR -164[rbp]
	add	ecx, eax
	mov	eax, DWORD PTR -172[rbp]
	add	eax, ecx
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mov	eax, DWORD PTR -172[rbp]
	add	eax, eax
	addss	xmm0, xmm1
	cdqe
	movss	DWORD PTR -144[rbp+rax*4], xmm0
	mov	eax, DWORD PTR -172[rbp]
	add	eax, eax
	add	eax, 1
	cdqe
	movss	xmm1, DWORD PTR -144[rbp+rax*4]
	mov	eax, DWORD PTR -168[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	ecx, DWORD PTR -192[rbp]
	mov	eax, DWORD PTR -164[rbp]
	add	ecx, eax
	mov	eax, DWORD PTR -172[rbp]
	add	eax, ecx
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mov	eax, DWORD PTR -172[rbp]
	add	eax, eax
	add	eax, 1
	addss	xmm0, xmm1
	cdqe
	movss	DWORD PTR -144[rbp+rax*4], xmm0
	add	DWORD PTR -172[rbp], 1
.L1229:
	mov	eax, DWORD PTR -172[rbp]
	cmp	eax, DWORD PTR -160[rbp]
	jl	.L1230
	jmp	.L1231
.L1228:
	cmp	DWORD PTR -148[rbp], 2
	jne	.L1232
	mov	DWORD PTR -172[rbp], 0
	jmp	.L1233
.L1234:
	mov	eax, DWORD PTR -172[rbp]
	add	eax, eax
	cdqe
	movss	xmm1, DWORD PTR -144[rbp+rax*4]
	mov	eax, DWORD PTR -168[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	ecx, DWORD PTR -192[rbp]
	mov	eax, DWORD PTR -164[rbp]
	add	ecx, eax
	mov	eax, DWORD PTR -172[rbp]
	add	eax, ecx
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mov	eax, DWORD PTR -172[rbp]
	add	eax, eax
	addss	xmm0, xmm1
	cdqe
	movss	DWORD PTR -144[rbp+rax*4], xmm0
	add	DWORD PTR -172[rbp], 1
.L1233:
	mov	eax, DWORD PTR -172[rbp]
	cmp	eax, DWORD PTR -160[rbp]
	jl	.L1234
	jmp	.L1231
.L1232:
	cmp	DWORD PTR -148[rbp], 4
	jne	.L1231
	mov	DWORD PTR -172[rbp], 0
	jmp	.L1235
.L1236:
	mov	eax, DWORD PTR -172[rbp]
	add	eax, eax
	add	eax, 1
	cdqe
	movss	xmm1, DWORD PTR -144[rbp+rax*4]
	mov	eax, DWORD PTR -168[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	ecx, DWORD PTR -192[rbp]
	mov	eax, DWORD PTR -164[rbp]
	add	ecx, eax
	mov	eax, DWORD PTR -172[rbp]
	add	eax, ecx
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	mov	eax, DWORD PTR -172[rbp]
	add	eax, eax
	add	eax, 1
	addss	xmm0, xmm1
	cdqe
	movss	DWORD PTR -144[rbp+rax*4], xmm0
	add	DWORD PTR -172[rbp], 1
.L1235:
	mov	eax, DWORD PTR -172[rbp]
	cmp	eax, DWORD PTR -160[rbp]
	jl	.L1236
.L1231:
	add	DWORD PTR -168[rbp], 1
.L1227:
	mov	eax, DWORD PTR -168[rbp]
	cmp	eax, DWORD PTR -188[rbp]
	jl	.L1237
	mov	DWORD PTR -172[rbp], 0
	jmp	.L1238
.L1242:
	mov	eax, DWORD PTR -172[rbp]
	cdqe
	movss	xmm1, DWORD PTR -144[rbp+rax*4]
	movss	xmm0, DWORD PTR .LC41[rip]
	addss	xmm0, xmm1
	movss	DWORD PTR -176[rbp], xmm0
	mov	eax, DWORD PTR -176[rbp]
	sub	eax, 1136656384
	mov	DWORD PTR -156[rbp], eax
	mov	eax, DWORD PTR -156[rbp]
	add	eax, 32768
	cmp	eax, 65535
	jbe	.L1239
	cmp	DWORD PTR -156[rbp], 0
	jns	.L1240
	mov	eax, -32768
	jmp	.L1241
.L1240:
	mov	eax, 32767
.L1241:
	mov	DWORD PTR -156[rbp], eax
.L1239:
	mov	edx, DWORD PTR -152[rbp]
	mov	eax, DWORD PTR -172[rbp]
	add	eax, edx
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, rdx
	mov	edx, DWORD PTR -156[rbp]
	mov	WORD PTR [rax], dx
	add	DWORD PTR -172[rbp], 1
.L1238:
	mov	eax, DWORD PTR -160[rbp]
	add	eax, eax
	cmp	DWORD PTR -172[rbp], eax
	jl	.L1242
	add	DWORD PTR -164[rbp], 16
.L1225:
	mov	eax, DWORD PTR -164[rbp]
	cmp	eax, DWORD PTR -204[rbp]
	jl	.L1243
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1244
	call	__stack_chk_fail@PLT
.L1244:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE103:
	.size	compute_stereo_samples, .-compute_stereo_samples
	.type	convert_samples_short, @function
convert_samples_short:
.LFB104:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	DWORD PTR -20[rbp], edi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -24[rbp], edx
	mov	DWORD PTR -36[rbp], ecx
	mov	QWORD PTR -48[rbp], r8
	mov	DWORD PTR -40[rbp], r9d
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -36[rbp]
	je	.L1246
	cmp	DWORD PTR -20[rbp], 2
	jg	.L1246
	cmp	DWORD PTR -36[rbp], 6
	jg	.L1246
	mov	DWORD PTR -8[rbp], 0
	jmp	.L1247
.L1248:
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	add	rax, rax
	lea	rsi, [rdx+rax]
	mov	eax, DWORD PTR -8[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	add	rax, rax
	add	rax, rdx
	lea	rdx, 0[0+rax*4]
	lea	rax, channel_selector.1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edi, DWORD PTR -40[rbp]
	mov	rcx, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR -36[rbp]
	mov	r9d, DWORD PTR 16[rbp]
	mov	r8d, edi
	mov	edi, eax
	call	compute_samples
	add	DWORD PTR -8[rbp], 1
.L1247:
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -20[rbp]
	jl	.L1248
	jmp	.L1249
.L1246:
	mov	eax, DWORD PTR -20[rbp]
	cmp	DWORD PTR -36[rbp], eax
	cmovle	eax, DWORD PTR -36[rbp]
	mov	DWORD PTR -4[rbp], eax
	mov	DWORD PTR -8[rbp], 0
	jmp	.L1250
.L1251:
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	sal	rax, 2
	lea	rcx, [rdx+rax]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	add	rax, rax
	add	rax, rdx
	mov	edx, DWORD PTR 16[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	copy_samples
	add	DWORD PTR -8[rbp], 1
.L1250:
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -4[rbp]
	jl	.L1251
	jmp	.L1252
.L1253:
	mov	eax, DWORD PTR 16[rbp]
	cdqe
	lea	rdx, [rax+rax]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rcx, 0[0+rax*8]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rcx
	mov	rcx, QWORD PTR [rax]
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	add	rax, rax
	add	rax, rcx
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	add	DWORD PTR -8[rbp], 1
.L1252:
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -20[rbp]
	jl	.L1253
	nop
.L1249:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE104:
	.size	convert_samples_short, .-convert_samples_short
	.globl	stb_vorbis_get_frame_short
	.type	stb_vorbis_get_frame_short, @function
stb_vorbis_get_frame_short:
.LFB105:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	QWORD PTR -56[rbp], rdx
	mov	DWORD PTR -48[rbp], ecx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -16[rbp], 0
	lea	rdx, -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	stb_vorbis_get_frame_float
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -48[rbp]
	jle	.L1255
	mov	eax, DWORD PTR -48[rbp]
	mov	DWORD PTR -20[rbp], eax
.L1255:
	cmp	DWORD PTR -20[rbp], 0
	je	.L1256
	mov	rdi, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rsi, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -44[rbp]
	sub	rsp, 8
	mov	ecx, DWORD PTR -20[rbp]
	push	rcx
	mov	r9d, 0
	mov	r8, rdi
	mov	ecx, edx
	mov	edx, 0
	mov	edi, eax
	call	convert_samples_short
	add	rsp, 16
.L1256:
	mov	eax, DWORD PTR -20[rbp]
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1258
	call	__stack_chk_fail@PLT
.L1258:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE105:
	.size	stb_vorbis_get_frame_short, .-stb_vorbis_get_frame_short
	.section	.rodata
.LC42:
	.string	"buf_c == 2"
	.text
	.type	convert_channels_short_interleaved, @function
convert_channels_short_interleaved:
.LFB106:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	DWORD PTR -36[rbp], edi
	mov	QWORD PTR -48[rbp], rsi
	mov	DWORD PTR -40[rbp], edx
	mov	QWORD PTR -56[rbp], rcx
	mov	DWORD PTR -60[rbp], r8d
	mov	DWORD PTR -64[rbp], r9d
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -40[rbp]
	je	.L1260
	cmp	DWORD PTR -36[rbp], 2
	jg	.L1260
	cmp	DWORD PTR -40[rbp], 6
	jg	.L1260
	cmp	DWORD PTR -36[rbp], 2
	je	.L1261
	lea	rcx, __PRETTY_FUNCTION__.0[rip]
	mov	edx, 5250
	lea	rsi, .LC1[rip]
	lea	rdi, .LC42[rip]
	call	__assert_fail@PLT
.L1261:
	mov	DWORD PTR -20[rbp], 0
	jmp	.L1262
.L1263:
	mov	edi, DWORD PTR -64[rbp]
	mov	ecx, DWORD PTR -60[rbp]
	mov	rdx, QWORD PTR -56[rbp]
	mov	esi, DWORD PTR -40[rbp]
	mov	rax, QWORD PTR -48[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	compute_stereo_samples
	add	DWORD PTR -20[rbp], 1
.L1262:
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -36[rbp]
	jl	.L1263
	jmp	.L1264
.L1260:
	mov	eax, DWORD PTR -36[rbp]
	cmp	DWORD PTR -40[rbp], eax
	cmovle	eax, DWORD PTR -40[rbp]
	mov	DWORD PTR -8[rbp], eax
	mov	DWORD PTR -16[rbp], 0
	jmp	.L1265
.L1273:
	mov	DWORD PTR -20[rbp], 0
	jmp	.L1266
.L1270:
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	ecx, DWORD PTR -60[rbp]
	mov	eax, DWORD PTR -16[rbp]
	add	eax, ecx
	cdqe
	sal	rax, 2
	add	rax, rdx
	movss	xmm0, DWORD PTR [rax]
	movss	DWORD PTR -4[rbp], xmm0
	movss	xmm1, DWORD PTR -4[rbp]
	movss	xmm0, DWORD PTR .LC41[rip]
	addss	xmm0, xmm1
	movss	DWORD PTR -24[rbp], xmm0
	mov	eax, DWORD PTR -24[rbp]
	sub	eax, 1136656384
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	add	eax, 32768
	cmp	eax, 65535
	jbe	.L1267
	cmp	DWORD PTR -12[rbp], 0
	jns	.L1268
	mov	eax, -32768
	jmp	.L1269
.L1268:
	mov	eax, 32767
.L1269:
	mov	DWORD PTR -12[rbp], eax
.L1267:
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 2[rax]
	mov	QWORD PTR -48[rbp], rdx
	mov	edx, DWORD PTR -12[rbp]
	mov	WORD PTR [rax], dx
	add	DWORD PTR -20[rbp], 1
.L1266:
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -8[rbp]
	jl	.L1270
	jmp	.L1271
.L1272:
	mov	rax, QWORD PTR -48[rbp]
	lea	rdx, 2[rax]
	mov	QWORD PTR -48[rbp], rdx
	mov	WORD PTR [rax], 0
	add	DWORD PTR -20[rbp], 1
.L1271:
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -36[rbp]
	jl	.L1272
	add	DWORD PTR -16[rbp], 1
.L1265:
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, DWORD PTR -64[rbp]
	jl	.L1273
	nop
.L1264:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE106:
	.size	convert_channels_short_interleaved, .-convert_channels_short_interleaved
	.globl	stb_vorbis_get_frame_short_interleaved
	.type	stb_vorbis_get_frame_short_interleaved, @function
stb_vorbis_get_frame_short_interleaved:
.LFB107:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	QWORD PTR -56[rbp], rdx
	mov	DWORD PTR -48[rbp], ecx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	cmp	DWORD PTR -44[rbp], 1
	jne	.L1275
	mov	ecx, DWORD PTR -48[rbp]
	lea	rdx, -56[rbp]
	mov	esi, DWORD PTR -44[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	stb_vorbis_get_frame_short
	jmp	.L1279
.L1275:
	lea	rdx, -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	stb_vorbis_get_frame_float
	mov	DWORD PTR -20[rbp], eax
	cmp	DWORD PTR -20[rbp], 0
	je	.L1277
	mov	eax, DWORD PTR -20[rbp]
	imul	eax, DWORD PTR -44[rbp]
	cmp	DWORD PTR -48[rbp], eax
	jge	.L1278
	mov	eax, DWORD PTR -48[rbp]
	cdq
	idiv	DWORD PTR -44[rbp]
	mov	DWORD PTR -20[rbp], eax
.L1278:
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rsi, QWORD PTR -56[rbp]
	mov	edi, DWORD PTR -20[rbp]
	mov	eax, DWORD PTR -44[rbp]
	mov	r9d, edi
	mov	r8d, 0
	mov	edi, eax
	call	convert_channels_short_interleaved
.L1277:
	mov	eax, DWORD PTR -20[rbp]
.L1279:
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L1280
	call	__stack_chk_fail@PLT
.L1280:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE107:
	.size	stb_vorbis_get_frame_short_interleaved, .-stb_vorbis_get_frame_short_interleaved
	.globl	stb_vorbis_get_samples_short_interleaved
	.type	stb_vorbis_get_samples_short_interleaved, @function
stb_vorbis_get_samples_short_interleaved:
.LFB108:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	QWORD PTR -56[rbp], rdx
	mov	DWORD PTR -48[rbp], ecx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR -48[rbp]
	cdq
	idiv	DWORD PTR -44[rbp]
	mov	DWORD PTR -24[rbp], eax
	mov	DWORD PTR -32[rbp], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jle	.L1283
	mov	eax, DWORD PTR -44[rbp]
	mov	DWORD PTR -20[rbp], eax
	jmp	.L1283
.L1288:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 1896[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	ecx, DWORD PTR 1892[rax]
	mov	eax, edx
	sub	eax, ecx
	mov	DWORD PTR -28[rbp], eax
	mov	edx, DWORD PTR -32[rbp]
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cmp	DWORD PTR -24[rbp], eax
	jg	.L1284
	mov	eax, DWORD PTR -24[rbp]
	sub	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR -28[rbp], eax
.L1284:
	cmp	DWORD PTR -28[rbp], 0
	je	.L1285
	mov	rax, QWORD PTR -40[rbp]
	mov	edi, DWORD PTR 1892[rax]
	mov	rax, QWORD PTR -40[rbp]
	lea	rcx, 888[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	r8d, DWORD PTR -28[rbp]
	mov	rsi, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -44[rbp]
	mov	r9d, r8d
	mov	r8d, edi
	mov	edi, eax
	call	convert_channels_short_interleaved
.L1285:
	mov	eax, DWORD PTR -28[rbp]
	imul	eax, DWORD PTR -44[rbp]
	cdqe
	add	rax, rax
	add	QWORD PTR -56[rbp], rax
	mov	eax, DWORD PTR -28[rbp]
	add	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 1892[rax]
	mov	eax, DWORD PTR -28[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1892[rax], edx
	mov	eax, DWORD PTR -32[rbp]
	cmp	eax, DWORD PTR -24[rbp]
	je	.L1291
	lea	rdx, -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	stb_vorbis_get_frame_float
	test	eax, eax
	je	.L1292
.L1283:
	mov	eax, DWORD PTR -32[rbp]
	cmp	eax, DWORD PTR -24[rbp]
	jl	.L1288
	jmp	.L1287
.L1291:
	nop
	jmp	.L1287
.L1292:
	nop
.L1287:
	mov	eax, DWORD PTR -32[rbp]
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L1290
	call	__stack_chk_fail@PLT
.L1290:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE108:
	.size	stb_vorbis_get_samples_short_interleaved, .-stb_vorbis_get_samples_short_interleaved
	.globl	stb_vorbis_get_samples_short
	.type	stb_vorbis_get_samples_short, @function
stb_vorbis_get_samples_short:
.LFB109:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	QWORD PTR -56[rbp], rdx
	mov	DWORD PTR -48[rbp], ecx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -28[rbp], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jle	.L1295
	mov	eax, DWORD PTR -44[rbp]
	mov	DWORD PTR -20[rbp], eax
	jmp	.L1295
.L1300:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 1896[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	ecx, DWORD PTR 1892[rax]
	mov	eax, edx
	sub	eax, ecx
	mov	DWORD PTR -24[rbp], eax
	mov	edx, DWORD PTR -28[rbp]
	mov	eax, DWORD PTR -24[rbp]
	add	eax, edx
	cmp	DWORD PTR -48[rbp], eax
	jg	.L1296
	mov	eax, DWORD PTR -48[rbp]
	sub	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR -24[rbp], eax
.L1296:
	cmp	DWORD PTR -24[rbp], 0
	je	.L1297
	mov	rax, QWORD PTR -40[rbp]
	mov	r8d, DWORD PTR 1892[rax]
	mov	rax, QWORD PTR -40[rbp]
	lea	r10, 888[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	ecx, DWORD PTR 4[rax]
	mov	edx, DWORD PTR -28[rbp]
	mov	rsi, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -44[rbp]
	sub	rsp, 8
	mov	edi, DWORD PTR -24[rbp]
	push	rdi
	mov	r9d, r8d
	mov	r8, r10
	mov	edi, eax
	call	convert_samples_short
	add	rsp, 16
.L1297:
	mov	eax, DWORD PTR -24[rbp]
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 1892[rax]
	mov	eax, DWORD PTR -24[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1892[rax], edx
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, DWORD PTR -48[rbp]
	je	.L1303
	lea	rdx, -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	stb_vorbis_get_frame_float
	test	eax, eax
	je	.L1304
.L1295:
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, DWORD PTR -48[rbp]
	jl	.L1300
	jmp	.L1299
.L1303:
	nop
	jmp	.L1299
.L1304:
	nop
.L1299:
	mov	eax, DWORD PTR -28[rbp]
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L1302
	call	__stack_chk_fail@PLT
.L1302:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE109:
	.size	stb_vorbis_get_samples_short, .-stb_vorbis_get_samples_short
	.globl	stb_vorbis_decode_filename
	.type	stb_vorbis_decode_filename, @function
stb_vorbis_decode_filename:
.LFB110:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	QWORD PTR -88[rbp], rdx
	mov	QWORD PTR -96[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rcx, -56[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	stb_vorbis_open_filename
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	jne	.L1306
	mov	eax, -1
	jmp	.L1314
.L1306:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	sal	eax, 12
	mov	DWORD PTR -40[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -80[rbp]
	mov	DWORD PTR [rax], edx
	cmp	QWORD PTR -88[rbp], 0
	je	.L1308
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -88[rbp]
	mov	DWORD PTR [rax], edx
.L1308:
	mov	DWORD PTR -52[rbp], 0
	mov	eax, DWORD PTR -52[rbp]
	mov	DWORD PTR -48[rbp], eax
	mov	eax, DWORD PTR -40[rbp]
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	rax, rax
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -32[rbp], rax
	cmp	QWORD PTR -32[rbp], 0
	jne	.L1309
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stb_vorbis_close
	mov	eax, -2
	jmp	.L1314
.L1309:
	mov	eax, DWORD PTR -44[rbp]
	sub	eax, DWORD PTR -48[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	lea	rcx, [rax+rax]
	mov	rax, QWORD PTR -32[rbp]
	lea	rdi, [rcx+rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	ecx, edx
	mov	rdx, rdi
	mov	rdi, rax
	call	stb_vorbis_get_frame_short_interleaved
	mov	DWORD PTR -36[rbp], eax
	cmp	DWORD PTR -36[rbp], 0
	je	.L1317
	mov	eax, DWORD PTR -36[rbp]
	add	DWORD PTR -52[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	imul	eax, DWORD PTR -36[rbp]
	add	DWORD PTR -48[rbp], eax
	mov	edx, DWORD PTR -48[rbp]
	mov	eax, DWORD PTR -40[rbp]
	add	eax, edx
	cmp	DWORD PTR -44[rbp], eax
	jge	.L1309
	sal	DWORD PTR -44[rbp]
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	realloc@PLT
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jne	.L1313
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stb_vorbis_close
	mov	eax, -2
	jmp	.L1314
.L1313:
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR -32[rbp], rax
	jmp	.L1309
.L1317:
	nop
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stb_vorbis_close
	mov	eax, DWORD PTR -52[rbp]
.L1314:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1315
	call	__stack_chk_fail@PLT
.L1315:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE110:
	.size	stb_vorbis_decode_filename, .-stb_vorbis_decode_filename
	.globl	stb_vorbis_decode_memory
	.type	stb_vorbis_decode_memory, @function
stb_vorbis_decode_memory:
.LFB111:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	QWORD PTR -72[rbp], rdi
	mov	DWORD PTR -76[rbp], esi
	mov	QWORD PTR -88[rbp], rdx
	mov	QWORD PTR -96[rbp], rcx
	mov	QWORD PTR -104[rbp], r8
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rdx, -56[rbp]
	mov	esi, DWORD PTR -76[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	ecx, 0
	mov	rdi, rax
	call	stb_vorbis_open_memory
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	jne	.L1319
	mov	eax, -1
	jmp	.L1327
.L1319:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	sal	eax, 12
	mov	DWORD PTR -40[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -88[rbp]
	mov	DWORD PTR [rax], edx
	cmp	QWORD PTR -96[rbp], 0
	je	.L1321
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	mov	edx, eax
	mov	rax, QWORD PTR -96[rbp]
	mov	DWORD PTR [rax], edx
.L1321:
	mov	DWORD PTR -52[rbp], 0
	mov	eax, DWORD PTR -52[rbp]
	mov	DWORD PTR -48[rbp], eax
	mov	eax, DWORD PTR -40[rbp]
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	add	rax, rax
	mov	rdi, rax
	call	malloc@PLT
	mov	QWORD PTR -32[rbp], rax
	cmp	QWORD PTR -32[rbp], 0
	jne	.L1322
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stb_vorbis_close
	mov	eax, -2
	jmp	.L1327
.L1322:
	mov	eax, DWORD PTR -44[rbp]
	sub	eax, DWORD PTR -48[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	lea	rcx, [rax+rax]
	mov	rax, QWORD PTR -32[rbp]
	lea	rdi, [rcx+rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	ecx, edx
	mov	rdx, rdi
	mov	rdi, rax
	call	stb_vorbis_get_frame_short_interleaved
	mov	DWORD PTR -36[rbp], eax
	cmp	DWORD PTR -36[rbp], 0
	je	.L1330
	mov	eax, DWORD PTR -36[rbp]
	add	DWORD PTR -52[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 4[rax]
	imul	eax, DWORD PTR -36[rbp]
	add	DWORD PTR -48[rbp], eax
	mov	edx, DWORD PTR -48[rbp]
	mov	eax, DWORD PTR -40[rbp]
	add	eax, edx
	cmp	DWORD PTR -44[rbp], eax
	jge	.L1322
	sal	DWORD PTR -44[rbp]
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	lea	rdx, [rax+rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	realloc@PLT
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jne	.L1326
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	free@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stb_vorbis_close
	mov	eax, -2
	jmp	.L1327
.L1326:
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR -32[rbp], rax
	jmp	.L1322
.L1330:
	nop
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stb_vorbis_close
	mov	eax, DWORD PTR -52[rbp]
.L1327:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1328
	call	__stack_chk_fail@PLT
.L1328:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE111:
	.size	stb_vorbis_decode_memory, .-stb_vorbis_decode_memory
	.globl	stb_vorbis_get_samples_float_interleaved
	.type	stb_vorbis_get_samples_float_interleaved, @function
stb_vorbis_get_samples_float_interleaved:
.LFB112:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -56[rbp], rdi
	mov	DWORD PTR -60[rbp], esi
	mov	QWORD PTR -72[rbp], rdx
	mov	DWORD PTR -64[rbp], ecx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR -64[rbp]
	cdq
	idiv	DWORD PTR -60[rbp]
	mov	DWORD PTR -20[rbp], eax
	mov	DWORD PTR -40[rbp], 0
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -60[rbp]
	jle	.L1333
	mov	eax, DWORD PTR -60[rbp]
	mov	DWORD PTR -36[rbp], eax
	jmp	.L1333
.L1343:
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR 1896[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	ecx, DWORD PTR 1892[rax]
	mov	eax, edx
	sub	eax, ecx
	mov	DWORD PTR -24[rbp], eax
	mov	edx, DWORD PTR -40[rbp]
	mov	eax, DWORD PTR -24[rbp]
	add	eax, edx
	cmp	DWORD PTR -20[rbp], eax
	jg	.L1334
	mov	eax, DWORD PTR -20[rbp]
	sub	eax, DWORD PTR -40[rbp]
	mov	DWORD PTR -24[rbp], eax
.L1334:
	mov	DWORD PTR -28[rbp], 0
	jmp	.L1335
.L1340:
	mov	DWORD PTR -32[rbp], 0
	jmp	.L1336
.L1337:
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -32[rbp]
	movsx	rdx, edx
	add	rdx, 110
	mov	rdx, QWORD PTR 8[rax+rdx*8]
	mov	rax, QWORD PTR -56[rbp]
	mov	ecx, DWORD PTR 1892[rax]
	mov	eax, DWORD PTR -28[rbp]
	add	eax, ecx
	cdqe
	sal	rax, 2
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, 4[rax]
	mov	QWORD PTR -72[rbp], rdx
	movss	xmm0, DWORD PTR [rcx]
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -32[rbp], 1
.L1336:
	mov	eax, DWORD PTR -32[rbp]
	cmp	eax, DWORD PTR -36[rbp]
	jl	.L1337
	jmp	.L1338
.L1339:
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, 4[rax]
	mov	QWORD PTR -72[rbp], rdx
	pxor	xmm0, xmm0
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -32[rbp], 1
.L1338:
	mov	eax, DWORD PTR -32[rbp]
	cmp	eax, DWORD PTR -60[rbp]
	jl	.L1339
	add	DWORD PTR -28[rbp], 1
.L1335:
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, DWORD PTR -24[rbp]
	jl	.L1340
	mov	eax, DWORD PTR -24[rbp]
	add	DWORD PTR -40[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR 1892[rax]
	mov	eax, DWORD PTR -24[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 1892[rax], edx
	mov	eax, DWORD PTR -40[rbp]
	cmp	eax, DWORD PTR -20[rbp]
	je	.L1346
	lea	rdx, -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	stb_vorbis_get_frame_float
	test	eax, eax
	je	.L1347
.L1333:
	mov	eax, DWORD PTR -40[rbp]
	cmp	eax, DWORD PTR -20[rbp]
	jl	.L1343
	jmp	.L1342
.L1346:
	nop
	jmp	.L1342
.L1347:
	nop
.L1342:
	mov	eax, DWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L1345
	call	__stack_chk_fail@PLT
.L1345:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE112:
	.size	stb_vorbis_get_samples_float_interleaved, .-stb_vorbis_get_samples_float_interleaved
	.globl	stb_vorbis_get_samples_float
	.type	stb_vorbis_get_samples_float, @function
stb_vorbis_get_samples_float:
.LFB113:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	QWORD PTR -56[rbp], rdx
	mov	DWORD PTR -48[rbp], ecx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -32[rbp], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jle	.L1350
	mov	eax, DWORD PTR -44[rbp]
	mov	DWORD PTR -28[rbp], eax
	jmp	.L1350
.L1359:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 1896[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	ecx, DWORD PTR 1892[rax]
	mov	eax, edx
	sub	eax, ecx
	mov	DWORD PTR -20[rbp], eax
	mov	edx, DWORD PTR -32[rbp]
	mov	eax, DWORD PTR -20[rbp]
	add	eax, edx
	cmp	DWORD PTR -48[rbp], eax
	jg	.L1351
	mov	eax, DWORD PTR -48[rbp]
	sub	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR -20[rbp], eax
.L1351:
	cmp	DWORD PTR -20[rbp], 0
	je	.L1352
	mov	DWORD PTR -24[rbp], 0
	jmp	.L1353
.L1354:
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -40[rbp]
	mov	ecx, DWORD PTR -24[rbp]
	movsx	rcx, ecx
	add	rcx, 110
	mov	rcx, QWORD PTR 8[rax+rcx*8]
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 1892[rax]
	cdqe
	sal	rax, 2
	add	rcx, rax
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	lea	rsi, 0[0+rax*8]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rsi
	mov	rsi, QWORD PTR [rax]
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	sal	rax, 2
	add	rax, rsi
	mov	rsi, rcx
	mov	rdi, rax
	call	memcpy@PLT
	add	DWORD PTR -24[rbp], 1
.L1353:
	mov	eax, DWORD PTR -24[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	jl	.L1354
	jmp	.L1355
.L1356:
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	lea	rcx, 0[0+rax*8]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rcx
	mov	rcx, QWORD PTR [rax]
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	sal	rax, 2
	add	rax, rcx
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	add	DWORD PTR -24[rbp], 1
.L1355:
	mov	eax, DWORD PTR -24[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L1356
.L1352:
	mov	eax, DWORD PTR -20[rbp]
	add	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 1892[rax]
	mov	eax, DWORD PTR -20[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1892[rax], edx
	mov	eax, DWORD PTR -32[rbp]
	cmp	eax, DWORD PTR -48[rbp]
	je	.L1362
	lea	rdx, -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	stb_vorbis_get_frame_float
	test	eax, eax
	je	.L1363
.L1350:
	mov	eax, DWORD PTR -32[rbp]
	cmp	eax, DWORD PTR -48[rbp]
	jl	.L1359
	jmp	.L1358
.L1362:
	nop
	jmp	.L1358
.L1363:
	nop
.L1358:
	mov	eax, DWORD PTR -32[rbp]
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L1361
	call	__stack_chk_fail@PLT
.L1361:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE113:
	.size	stb_vorbis_get_samples_float, .-stb_vorbis_get_samples_float
	.data
	.align 16
	.type	log2_4.21, @object
	.size	log2_4.21, 16
log2_4.21:
	.string	""
	.ascii	"\001\002\002\003\003\003\003\004\004\004\004\004\004\004\004"
	.section	.rodata
	.align 16
	.type	__PRETTY_FUNCTION__.20, @object
	.size	__PRETTY_FUNCTION__.20, 18
__PRETTY_FUNCTION__.20:
	.string	"compute_codewords"
	.align 16
	.type	__PRETTY_FUNCTION__.19, @object
	.size	__PRETTY_FUNCTION__.19, 16
__PRETTY_FUNCTION__.19:
	.string	"include_in_sort"
	.align 16
	.type	__PRETTY_FUNCTION__.18, @object
	.size	__PRETTY_FUNCTION__.18, 23
__PRETTY_FUNCTION__.18:
	.string	"compute_sorted_huffman"
	.data
	.type	vorbis.17, @object
	.size	vorbis.17, 6
vorbis.17:
	.ascii	"vorbis"
	.section	.rodata
	.align 8
	.type	__PRETTY_FUNCTION__.16, @object
	.size	__PRETTY_FUNCTION__.16, 13
__PRETTY_FUNCTION__.16:
	.string	"next_segment"
	.align 16
	.type	__PRETTY_FUNCTION__.15, @object
	.size	__PRETTY_FUNCTION__.15, 16
__PRETTY_FUNCTION__.15:
	.string	"get8_packet_raw"
	.align 8
	.type	__PRETTY_FUNCTION__.14, @object
	.size	__PRETTY_FUNCTION__.14, 9
__PRETTY_FUNCTION__.14:
	.string	"get_bits"
	.align 16
	.type	__PRETTY_FUNCTION__.13, @object
	.size	__PRETTY_FUNCTION__.13, 27
__PRETTY_FUNCTION__.13:
	.string	"codebook_decode_scalar_raw"
	.align 16
	.type	__PRETTY_FUNCTION__.12, @object
	.size	__PRETTY_FUNCTION__.12, 22
__PRETTY_FUNCTION__.12:
	.string	"codebook_decode_start"
	.align 32
	.type	__PRETTY_FUNCTION__.11, @object
	.size	__PRETTY_FUNCTION__.11, 36
__PRETTY_FUNCTION__.11:
	.string	"codebook_decode_deinterleave_repeat"
	.align 16
	.type	__PRETTY_FUNCTION__.10, @object
	.size	__PRETTY_FUNCTION__.10, 23
__PRETTY_FUNCTION__.10:
	.string	"imdct_step3_iter0_loop"
	.align 8
	.type	__PRETTY_FUNCTION__.9, @object
	.size	__PRETTY_FUNCTION__.9, 13
__PRETTY_FUNCTION__.9:
	.string	"inverse_mdct"
	.align 16
	.type	__PRETTY_FUNCTION__.8, @object
	.size	__PRETTY_FUNCTION__.8, 22
__PRETTY_FUNCTION__.8:
	.string	"vorbis_decode_initial"
	.data
	.align 16
	.type	range_list.7, @object
	.size	range_list.7, 16
range_list.7:
	.long	256
	.long	128
	.long	86
	.long	64
	.section	.rodata
	.align 16
	.type	__PRETTY_FUNCTION__.6, @object
	.size	__PRETTY_FUNCTION__.6, 26
__PRETTY_FUNCTION__.6:
	.string	"vorbis_decode_packet_rest"
	.align 8
	.type	__PRETTY_FUNCTION__.5, @object
	.size	__PRETTY_FUNCTION__.5, 14
__PRETTY_FUNCTION__.5:
	.string	"start_decoder"
	.align 16
	.type	__PRETTY_FUNCTION__.4, @object
	.size	__PRETTY_FUNCTION__.4, 22
__PRETTY_FUNCTION__.4:
	.string	"seek_to_sample_coarse"
	.align 16
	.type	__PRETTY_FUNCTION__.3, @object
	.size	__PRETTY_FUNCTION__.3, 22
__PRETTY_FUNCTION__.3:
	.string	"stb_vorbis_seek_frame"
	.align 16
	.type	__PRETTY_FUNCTION__.2, @object
	.size	__PRETTY_FUNCTION__.2, 16
__PRETTY_FUNCTION__.2:
	.string	"stb_vorbis_seek"
	.data
	.align 16
	.type	channel_selector.1, @object
	.size	channel_selector.1, 24
channel_selector.1:
	.long	0
	.zero	4
	.long	1
	.zero	4
	.long	2
	.long	4
	.section	.rodata
	.align 32
	.type	__PRETTY_FUNCTION__.0, @object
	.size	__PRETTY_FUNCTION__.0, 35
__PRETTY_FUNCTION__.0:
	.string	"convert_channels_short_interleaved"
	.align 16
.LC0:
	.long	0
	.long	-2147483648
	.long	0
	.long	0
	.align 8
.LC9:
	.long	0
	.long	1127219200
	.align 16
.LC10:
	.long	-1
	.long	2147483647
	.long	0
	.long	0
	.align 4
.LC11:
	.long	1065353216
	.align 8
.LC12:
	.long	1413754136
	.long	1074340347
	.align 16
.LC13:
	.long	-2147483648
	.long	0
	.long	0
	.long	0
	.align 8
.LC14:
	.long	0
	.long	1073741824
	.align 4
.LC15:
	.long	1056964608
	.align 8
.LC16:
	.long	0
	.long	1071644672
	.align 8
.LC17:
	.long	1413754136
	.long	1073291771
	.align 8
.LC32:
	.long	0
	.long	1086275584
	.align 8
.LC33:
	.long	0
	.long	-1061208064
	.align 4
.LC41:
	.long	1136656384
	.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	"262027.c"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	error, %function
error:
	@ 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
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #112]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #108]
	cmp	r3, #0
	bne	.L2
	ldr	r3, [fp, #-12]
	cmp	r3, #1
	beq	.L2
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #112]
.L2:
	mov	r3, #0
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	error, .-error
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	make_block_array, %function
make_block_array:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #36
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L5
.L6:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L5:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	blt	.L6
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	make_block_array, .-make_block_array
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	setup_malloc, %function
setup_malloc:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-20]
	add	r3, r3, #7
	bic	r3, r3, #7
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-20]
	add	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #92]
	cmp	r3, #0
	beq	.L9
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #92]
	ldr	r2, [fp, #-16]
	ldr	r2, [r2, #100]
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #100]
	ldr	r3, [fp, #-20]
	add	r2, r2, r3
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #104]
	cmp	r2, r3
	ble	.L10
	mov	r3, #0
	b	.L11
.L10:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #100]
	ldr	r3, [fp, #-20]
	add	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #100]
	ldr	r3, [fp, #-8]
	b	.L11
.L9:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L12
	ldr	r3, [fp, #-20]
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	b	.L11
.L12:
	mov	r3, #0
.L11:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	setup_malloc, .-setup_malloc
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	setup_free, %function
setup_free:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #92]
	cmp	r3, #0
	bne	.L17
	ldr	r0, [fp, #-12]
	bl	free
	b	.L14
.L17:
	nop
.L14:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	setup_free, .-setup_free
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	setup_temp_malloc, %function
setup_temp_malloc:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r3, r3, #7
	bic	r3, r3, #7
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #92]
	cmp	r3, #0
	beq	.L19
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #104]
	ldr	r3, [fp, #-12]
	sub	r2, r2, r3
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #100]
	cmp	r2, r3
	bge	.L20
	mov	r3, #0
	b	.L21
.L20:
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #104]
	ldr	r3, [fp, #-12]
	sub	r2, r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3, #104]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #92]
	ldr	r2, [fp, #-8]
	ldr	r2, [r2, #104]
	add	r3, r3, r2
	b	.L21
.L19:
	ldr	r3, [fp, #-12]
	mov	r0, r3
	bl	malloc
	mov	r3, r0
.L21:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	setup_temp_malloc, .-setup_temp_malloc
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	setup_temp_free, %function
setup_temp_free:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #92]
	cmp	r3, #0
	beq	.L23
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #104]
	ldr	r3, [fp, #-16]
	add	r3, r3, #7
	bic	r3, r3, #7
	add	r2, r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3, #104]
	b	.L22
.L23:
	ldr	r0, [fp, #-12]
	bl	free
.L22:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	setup_temp_free, .-setup_temp_free
	.local	crc_table
	.comm	crc_table,1024,4
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	crc32_init, %function
crc32_init:
	@ 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, #0
	str	r3, [fp, #-16]
	b	.L26
.L31:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #24
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L27
.L30:
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-8]
	cmp	r2, #0
	bge	.L28
	ldr	r2, .L32
	b	.L29
.L28:
	mov	r2, #0
.L29:
	eor	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L27:
	ldr	r3, [fp, #-12]
	cmp	r3, #7
	ble	.L30
	ldr	r1, .L32+4
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	str	r2, [r1, r3, lsl #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L26:
	ldr	r3, [fp, #-16]
	cmp	r3, #255
	ble	.L31
	nop
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L33:
	.align	2
.L32:
	.word	79764919
	.word	crc_table
	.size	crc32_init, .-crc32_init
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	crc32_update, %function
crc32_update:
	@ 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
	str	r0, [fp, #-8]
	mov	r3, r1
	strb	r3, [fp, #-9]
	ldr	r3, [fp, #-8]
	lsl	r2, r3, #8
	ldrb	r1, [fp, #-9]	@ zero_extendqisi2
	ldr	r3, [fp, #-8]
	lsr	r3, r3, #24
	eor	r3, r3, r1
	ldr	r1, .L36
	ldr	r3, [r1, r3, lsl #2]
	eor	r3, r3, r2
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L37:
	.align	2
.L36:
	.word	crc_table
	.size	crc32_update, .-crc32_update
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	bit_reverse, %function
bit_reverse:
	@ 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
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	lsr	r3, r3, #1
	ldr	r2, .L40
	and	r2, r2, r3
	ldr	r3, [fp, #-8]
	lsl	r1, r3, #1
	ldr	r3, .L40+4
	and	r3, r3, r1
	orr	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	lsr	r3, r3, #2
	ldr	r2, .L40+8
	and	r2, r2, r3
	ldr	r3, [fp, #-8]
	lsl	r1, r3, #2
	ldr	r3, .L40+12
	and	r3, r3, r1
	orr	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	lsr	r3, r3, #4
	ldr	r2, .L40+16
	and	r2, r2, r3
	ldr	r3, [fp, #-8]
	lsl	r1, r3, #4
	ldr	r3, .L40+20
	and	r3, r3, r1
	orr	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	lsr	r3, r3, #8
	bic	r2, r3, #-16777216
	bic	r2, r2, #65280
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #8
	bic	r3, r3, #16711680
	bic	r3, r3, #255
	orr	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ror	r3, r3, #16
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L41:
	.align	2
.L40:
	.word	1431655765
	.word	-1431655766
	.word	858993459
	.word	-858993460
	.word	252645135
	.word	-252645136
	.size	bit_reverse, .-bit_reverse
	.global	__aeabi_fmul
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	square, %function
square:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]	@ float
	ldr	r1, [fp, #-8]	@ float
	ldr	r0, [fp, #-8]	@ float
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	square, .-square
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	ilog, %function
ilog:
	@ 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
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bge	.L45
	mov	r3, #0
	b	.L46
.L45:
	ldr	r3, [fp, #-8]
	cmp	r3, #16384
	bge	.L47
	ldr	r3, [fp, #-8]
	cmp	r3, #15
	bgt	.L48
	ldr	r2, .L53
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	ldrsb	r3, [r3]
	b	.L46
.L48:
	ldr	r3, [fp, #-8]
	cmp	r3, #512
	bge	.L49
	ldr	r3, [fp, #-8]
	asr	r3, r3, #5
	ldr	r2, .L53
	ldrsb	r3, [r2, r3]
	add	r3, r3, #5
	b	.L46
.L49:
	ldr	r3, [fp, #-8]
	asr	r3, r3, #10
	ldr	r2, .L53
	ldrsb	r3, [r2, r3]
	add	r3, r3, #10
	b	.L46
.L47:
	ldr	r3, [fp, #-8]
	cmp	r3, #16777216
	bge	.L50
	ldr	r3, [fp, #-8]
	cmp	r3, #524288
	bge	.L51
	ldr	r3, [fp, #-8]
	asr	r3, r3, #15
	ldr	r2, .L53
	ldrsb	r3, [r2, r3]
	add	r3, r3, #15
	b	.L46
.L51:
	ldr	r3, [fp, #-8]
	asr	r3, r3, #20
	ldr	r2, .L53
	ldrsb	r3, [r2, r3]
	add	r3, r3, #20
	b	.L46
.L50:
	ldr	r3, [fp, #-8]
	cmn	r3, #-536870911
	bgt	.L52
	ldr	r3, [fp, #-8]
	asr	r3, r3, #25
	ldr	r2, .L53
	ldrsb	r3, [r2, r3]
	add	r3, r3, #25
	b	.L46
.L52:
	ldr	r3, [fp, #-8]
	asr	r3, r3, #30
	ldr	r2, .L53
	ldrsb	r3, [r2, r3]
	add	r3, r3, #30
.L46:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L54:
	.align	2
.L53:
	.word	log2_4.6716
	.size	ilog, .-ilog
	.global	__aeabi_ui2d
	.global	__aeabi_d2f
	.global	__aeabi_f2d
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	float32_unpack, %function
float32_unpack:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #32
	str	r0, [fp, #-40]
	ldr	r3, [fp, #-40]
	bic	r3, r3, #-16777216
	bic	r3, r3, #14680064
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-40]
	and	r3, r3, #-2147483648
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-40]
	lsr	r3, r3, #21
	lsl	r3, r3, #22
	lsr	r3, r3, #22
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	beq	.L56
	ldr	r0, [fp, #-32]
	bl	__aeabi_ui2d
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	eor	r5, r3, #-2147483648
	b	.L57
.L56:
	ldr	r0, [fp, #-32]
	bl	__aeabi_ui2d
	mov	r4, r0
	mov	r5, r1
.L57:
	str	r4, [fp, #-20]
	str	r5, [fp, #-16]
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	bl	__aeabi_d2f
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r3, [fp, #-24]
	sub	r3, r3, #788
	mov	r2, r3
	bl	ldexp
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
	.size	float32_unpack, .-float32_unpack
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	add_entry, %function
add_entry:
	@ args = 8, 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, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L60
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #32]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	b	.L62
.L60:
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #32]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	ldr	r2, [fp, #4]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	ldr	r2, [fp, #8]
	add	r3, r2, r3
	ldr	r2, [fp, #-16]
	str	r2, [r3]
.L62:
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	add_entry, .-add_entry
	.section	.rodata
	.align	2
.LC0:
	.ascii	"the_stack_data/262027.c\000"
	.align	2
.LC1:
	.ascii	"c->sorted_entries == 0\000"
	.align	2
.LC2:
	.ascii	"z >= 0 && z < 32\000"
	.align	2
.LC3:
	.ascii	"len[i] >= 0 && len[i] < 32\000"
	.align	2
.LC4:
	.ascii	"available[y] == 0\000"
	.align	2
.LC5:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	compute_codewords, %function
compute_codewords:
	@ args = 0, pretend = 0, frame = 176
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #184
	str	r0, [fp, #-168]
	str	r1, [fp, #-172]
	str	r2, [fp, #-176]
	str	r3, [fp, #-180]
	ldr	r3, .L92
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-152]
	sub	r3, fp, #136
	mov	r2, #128
	mov	r1, #0
	mov	r0, r3
	bl	memset
	mov	r3, #0
	str	r3, [fp, #-156]
	b	.L64
.L67:
	ldr	r3, [fp, #-156]
	ldr	r2, [fp, #-172]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #255
	bne	.L90
	ldr	r3, [fp, #-156]
	add	r3, r3, #1
	str	r3, [fp, #-156]
.L64:
	ldr	r2, [fp, #-156]
	ldr	r3, [fp, #-176]
	cmp	r2, r3
	blt	.L67
	b	.L66
.L90:
	nop
.L66:
	ldr	r2, [fp, #-156]
	ldr	r3, [fp, #-176]
	cmp	r2, r3
	bne	.L68
	ldr	r3, [fp, #-168]
	ldr	r3, [r3, #2092]
	cmp	r3, #0
	beq	.L69
	ldr	r3, .L92+4
	ldr	r2, .L92+8
	ldr	r1, .L92+12
	ldr	r0, .L92+16
	bl	__assert_fail
.L69:
	mov	r3, #1
	b	.L87
.L68:
	ldr	r3, [fp, #-152]
	add	r2, r3, #1
	str	r2, [fp, #-152]
	ldr	r2, [fp, #-156]
	ldr	r1, [fp, #-172]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	mov	r1, r2
	ldr	r2, [fp, #-180]
	str	r2, [sp, #4]
	str	r1, [sp]
	ldr	r2, [fp, #-156]
	mov	r1, #0
	ldr	r0, [fp, #-168]
	bl	add_entry
	mov	r3, #1
	str	r3, [fp, #-160]
	b	.L71
.L72:
	ldr	r3, [fp, #-160]
	rsb	r3, r3, #32
	mov	r2, #1
	lsl	r2, r2, r3
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #2
	sub	r1, fp, #4
	add	r3, r1, r3
	str	r2, [r3, #-132]
	ldr	r3, [fp, #-160]
	add	r3, r3, #1
	str	r3, [fp, #-160]
.L71:
	ldr	r3, [fp, #-156]
	ldr	r2, [fp, #-172]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-160]
	cmp	r3, r2
	ble	.L72
	ldr	r3, [fp, #-156]
	add	r3, r3, #1
	str	r3, [fp, #-160]
	b	.L73
.L86:
	ldr	r3, [fp, #-160]
	ldr	r2, [fp, #-172]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-148]
	cmp	r3, #255
	beq	.L91
	b	.L76
.L78:
	ldr	r3, [fp, #-148]
	sub	r3, r3, #1
	str	r3, [fp, #-148]
.L76:
	ldr	r3, [fp, #-148]
	cmp	r3, #0
	ble	.L77
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-132]
	cmp	r3, #0
	beq	.L78
.L77:
	ldr	r3, [fp, #-148]
	cmp	r3, #0
	bne	.L79
	mov	r3, #0
	b	.L87
.L79:
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-132]
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-148]
	cmp	r3, #0
	blt	.L80
	ldr	r3, [fp, #-148]
	cmp	r3, #31
	ble	.L89
.L80:
	ldr	r3, .L92+4
	ldr	r2, .L92+20
	ldr	r1, .L92+12
	ldr	r0, .L92+24
	bl	__assert_fail
.L89:
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3, #-132]
	ldr	r0, [fp, #-140]
	bl	bit_reverse
	ldr	r3, [fp, #-152]
	add	r2, r3, #1
	str	r2, [fp, #-152]
	ldr	r2, [fp, #-160]
	ldr	r1, [fp, #-172]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	mov	r1, r2
	ldr	r2, [fp, #-180]
	str	r2, [sp, #4]
	str	r1, [sp]
	ldr	r2, [fp, #-160]
	mov	r1, r0
	ldr	r0, [fp, #-168]
	bl	add_entry
	ldr	r3, [fp, #-160]
	ldr	r2, [fp, #-172]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-148]
	cmp	r3, r2
	beq	.L75
	ldr	r3, [fp, #-160]
	ldr	r2, [fp, #-172]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #31
	bls	.L82
	ldr	r3, .L92+4
	ldr	r2, .L92+28
	ldr	r1, .L92+12
	ldr	r0, .L92+32
	bl	__assert_fail
.L82:
	ldr	r3, [fp, #-160]
	ldr	r2, [fp, #-172]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-144]
	b	.L83
.L85:
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-132]
	cmp	r3, #0
	beq	.L84
	ldr	r3, .L92+4
	ldr	r2, .L92+36
	ldr	r1, .L92+12
	ldr	r0, .L92+40
	bl	__assert_fail
.L84:
	ldr	r3, [fp, #-144]
	rsb	r3, r3, #32
	mov	r2, #1
	lsl	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-140]
	add	r2, r2, r3
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #2
	sub	r1, fp, #4
	add	r3, r1, r3
	str	r2, [r3, #-132]
	ldr	r3, [fp, #-144]
	sub	r3, r3, #1
	str	r3, [fp, #-144]
.L83:
	ldr	r2, [fp, #-144]
	ldr	r3, [fp, #-148]
	cmp	r2, r3
	bgt	.L85
	b	.L75
.L91:
	nop
.L75:
	ldr	r3, [fp, #-160]
	add	r3, r3, #1
	str	r3, [fp, #-160]
.L73:
	ldr	r2, [fp, #-160]
	ldr	r3, [fp, #-176]
	cmp	r2, r3
	blt	.L86
	mov	r3, #1
.L87:
	ldr	r2, .L92
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L88
	bl	__stack_chk_fail
.L88:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L93:
	.align	2
.L92:
	.word	.LC5
	.word	__PRETTY_FUNCTION__.6745
	.word	1079
	.word	.LC0
	.word	.LC1
	.word	1102
	.word	.LC2
	.word	1107
	.word	.LC3
	.word	1109
	.word	.LC4
	.size	compute_codewords, .-compute_codewords
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	compute_accelerated_huffman, %function
compute_accelerated_huffman:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L95
.L96:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-16]
	add	r3, r3, #16
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #4
	mvn	r2, #0
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L95:
	ldr	r3, [fp, #-16]
	cmp	r3, #1024
	blt	.L96
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L97
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #2092]
	b	.L98
.L97:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
.L98:
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #32768
	blt	.L99
	ldr	r3, .L107
	str	r3, [fp, #-12]
.L99:
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L100
.L106:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #10
	bhi	.L101
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L102
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #2084]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	bit_reverse
	mov	r3, r0
	b	.L103
.L102:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #32]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
.L103:
	str	r3, [fp, #-8]
	b	.L104
.L105:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r1, [fp, #-24]
	ldr	r3, [fp, #-8]
	add	r3, r3, #16
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #4
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, #1
	lsl	r3, r3, r2
	mov	r2, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, r2
	str	r3, [fp, #-8]
.L104:
	ldr	r3, [fp, #-8]
	cmp	r3, #1024
	bcc	.L105
.L101:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L100:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	blt	.L106
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L108:
	.align	2
.L107:
	.word	32767
	.size	compute_accelerated_huffman, .-compute_accelerated_huffman
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	uint32_compare, %function
uint32_compare:
	@ 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]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	bcc	.L110
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	movhi	r3, #1
	movls	r3, #0
	and	r3, r3, #255
	b	.L112
.L110:
	mvn	r3, #0
.L112:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	uint32_compare, .-uint32_compare
	.section	.rodata
	.align	2
.LC6:
	.ascii	"len != NO_CODE\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	include_in_sort, %function
include_in_sort:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	mov	r3, r1
	strb	r3, [fp, #-9]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L114
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	cmp	r3, #255
	bne	.L115
	ldr	r3, .L119
	ldr	r2, .L119+4
	ldr	r1, .L119+8
	ldr	r0, .L119+12
	bl	__assert_fail
.L115:
	mov	r3, #1
	b	.L116
.L114:
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	cmp	r3, #255
	bne	.L117
	mov	r3, #0
	b	.L116
.L117:
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	cmp	r3, #10
	bls	.L118
	mov	r3, #1
	b	.L116
.L118:
	mov	r3, #0
.L116:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L120:
	.align	2
.L119:
	.word	__PRETTY_FUNCTION__.6787
	.word	1156
	.word	.LC0
	.word	.LC6
	.size	include_in_sort, .-include_in_sort
	.section	.rodata
	.align	2
.LC7:
	.ascii	"k == c->sorted_entries\000"
	.align	2
.LC8:
	.ascii	"c->sorted_codewords[x] == code\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	compute_sorted_huffman, %function
compute_sorted_huffman:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #52
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	str	r2, [fp, #-56]
	ldr	r3, [fp, #-48]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L122
	mov	r3, #0
	str	r3, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-44]
	b	.L123
.L125:
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, [fp, #-48]
	bl	include_in_sort
	mov	r3, r0
	cmp	r3, #0
	beq	.L124
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #32]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #2084]
	ldr	r3, [fp, #-40]
	add	r1, r3, #1
	str	r1, [fp, #-40]
	lsl	r3, r3, #2
	add	r4, r2, r3
	bl	bit_reverse
	mov	r3, r0
	str	r3, [r4]
.L124:
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
.L123:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-44]
	cmp	r2, r3
	blt	.L125
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #2092]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	beq	.L126
	ldr	r3, .L141
	ldr	r2, .L141+4
	ldr	r1, .L141+8
	ldr	r0, .L141+12
	bl	__assert_fail
.L122:
	mov	r3, #0
	str	r3, [fp, #-44]
	b	.L127
.L128:
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #32]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #2084]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	add	r4, r2, r3
	mov	r0, r1
	bl	bit_reverse
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
.L127:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #2092]
	ldr	r2, [fp, #-44]
	cmp	r2, r3
	blt	.L128
.L126:
	ldr	r3, [fp, #-48]
	ldr	r0, [r3, #2084]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #2092]
	mov	r1, r3
	ldr	r3, .L141+16
	mov	r2, #4
	bl	qsort
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #2084]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #2092]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mvn	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L129
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #2092]
	b	.L130
.L129:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #4]
.L130:
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-44]
	b	.L131
.L140:
	ldr	r3, [fp, #-48]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L132
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-56]
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	b	.L133
.L132:
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
.L133:
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	and	r3, r3, #255
	mov	r1, r3
	ldr	r0, [fp, #-48]
	bl	include_in_sort
	mov	r3, r0
	cmp	r3, #0
	beq	.L134
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #32]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r0, r3
	bl	bit_reverse
	str	r0, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #2092]
	str	r3, [fp, #-32]
	b	.L135
.L137:
	ldr	r3, [fp, #-32]
	asr	r3, r3, #1
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #2084]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	bcc	.L136
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-32]
	asr	r3, r3, #1
	ldr	r2, [fp, #-32]
	sub	r3, r2, r3
	str	r3, [fp, #-32]
	b	.L135
.L136:
	ldr	r3, [fp, #-32]
	asr	r3, r3, #1
	str	r3, [fp, #-32]
.L135:
	ldr	r3, [fp, #-32]
	cmp	r3, #1
	bgt	.L137
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #2084]
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	beq	.L138
	ldr	r3, .L141
	ldr	r2, .L141+20
	ldr	r1, .L141+8
	ldr	r0, .L141+24
	bl	__assert_fail
.L138:
	ldr	r3, [fp, #-48]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L139
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-56]
	add	r3, r2, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #2088]
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	ldr	r2, [fp, #-24]
	and	r2, r2, #255
	strb	r2, [r3]
	b	.L134
.L139:
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #2088]
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-44]
	str	r2, [r3]
.L134:
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
.L131:
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	blt	.L140
	nop
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L142:
	.align	2
.L141:
	.word	__PRETTY_FUNCTION__.6799
	.word	1176
	.word	.LC0
	.word	.LC7
	.word	uint32_compare
	.word	1206
	.word	.LC8
	.size	compute_sorted_huffman, .-compute_sorted_huffman
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	vorbis_validate, %function
vorbis_validate:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	mov	r2, #6
	ldr	r1, .L145
	ldr	r0, [fp, #-8]
	bl	memcmp
	mov	r3, r0
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L146:
	.align	2
.L145:
	.word	vorbis.6817
	.size	vorbis_validate, .-vorbis_validate
	.global	__aeabi_i2f
	.global	__aeabi_fdiv
	.global	__aeabi_d2iz
	.global	__aeabi_fadd
	.global	__aeabi_i2d
	.global	__aeabi_dcmple
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	lookup1_values, %function
lookup1_values:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #16
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r0, [fp, #-24]
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	log
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r4, r0
	ldr	r0, [fp, #-28]
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fdiv
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	exp
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	trunc
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r3, r0
	str	r3, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r1, #1065353216
	mov	r0, r3
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	ldr	r0, [fp, #-28]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	pow
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	floor
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r2, r0
	ldr	r3, [fp, #-24]
	cmp	r3, r2
	blt	.L148
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L148:
	ldr	r0, [fp, #-16]
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r1, #1065353216
	mov	r0, r3
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	ldr	r0, [fp, #-28]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	pow
	mov	r4, r0
	mov	r5, r1
	ldr	r0, [fp, #-24]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dcmple
	mov	r3, r0
	cmp	r3, #0
	beq	.L154
	mvn	r3, #0
	b	.L151
.L154:
	ldr	r0, [fp, #-16]
	bl	__aeabi_i2f
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	mov	r4, r0
	mov	r5, r1
	ldr	r0, [fp, #-28]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	pow
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	floor
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2iz
	mov	r2, r0
	ldr	r3, [fp, #-24]
	cmp	r3, r2
	bge	.L152
	mvn	r3, #0
	b	.L151
.L152:
	ldr	r3, [fp, #-16]
.L151:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
	.size	lookup1_values, .-lookup1_values
	.global	__aeabi_dmul
	.global	__aeabi_ddiv
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	compute_twiddle_factors, %function
compute_twiddle_factors:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-32]
	asr	r3, r3, #2
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-32]
	asr	r3, r3, #3
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-28]
	b	.L156
.L157:
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	__aeabi_i2d
	ldr	r2, .L160
	ldr	r3, .L160+4
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r0, [fp, #-32]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	cos
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-24]
	lsl	r1, r1, #2
	ldr	r0, [fp, #-36]
	add	r4, r0, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	__aeabi_i2d
	ldr	r2, .L160
	ldr	r3, .L160+4
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r0, [fp, #-32]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	sin
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r1, r0
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	eor	r2, r1, #-2147483648
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	mov	r0, r3
	bl	__aeabi_i2d
	ldr	r2, .L160
	ldr	r3, .L160+4
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r0, [fp, #-32]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	mov	r3, #1073741824
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	cos
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r4, r2, r3
	mov	r1, #1056964608
	bl	__aeabi_fmul
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	mov	r0, r3
	bl	__aeabi_i2d
	ldr	r2, .L160
	ldr	r3, .L160+4
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r0, [fp, #-32]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	mov	r3, #1073741824
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	sin
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r4, r2, r3
	mov	r1, #1056964608
	bl	__aeabi_fmul
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-24]
	add	r3, r3, #2
	str	r3, [fp, #-24]
.L156:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	blt	.L157
	mov	r3, #0
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-28]
	b	.L158
.L159:
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	lsl	r3, r3, #1
	mov	r0, r3
	bl	__aeabi_i2d
	ldr	r2, .L160
	ldr	r3, .L160+4
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r0, [fp, #-32]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	cos
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-24]
	lsl	r1, r1, #2
	ldr	r0, [fp, #-44]
	add	r4, r0, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	lsl	r3, r3, #1
	mov	r0, r3
	bl	__aeabi_i2d
	ldr	r2, .L160
	ldr	r3, .L160+4
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r0, [fp, #-32]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	sin
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r1, r0
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	eor	r2, r1, #-2147483648
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-24]
	add	r3, r3, #2
	str	r3, [fp, #-24]
.L158:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L159
	nop
	nop
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L161:
	.align	2
.L160:
	.word	1413754136
	.word	1074340347
	.size	compute_twiddle_factors, .-compute_twiddle_factors
	.global	__aeabi_dadd
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	compute_window, %function
compute_window:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #16
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r3, [fp, #-24]
	asr	r3, r3, #1
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L163
.L164:
	ldr	r0, [fp, #-20]
	bl	__aeabi_i2d
	mov	r2, #0
	ldr	r3, .L165
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r0, [fp, #-16]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L165
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, .L165+4
	ldr	r3, .L165+8
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	sin
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	mov	r0, r3
	bl	square
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_f2d
	ldr	r2, .L165+4
	ldr	r3, .L165+12
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	bl	sin
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-20]
	lsl	r1, r1, #2
	ldr	r0, [fp, #-28]
	add	r4, r0, r1
	mov	r0, r2
	mov	r1, r3
	bl	__aeabi_d2f
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L163:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L164
	nop
	nop
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L166:
	.align	2
.L165:
	.word	1071644672
	.word	1413754136
	.word	1074340347
	.word	1073291771
	.size	compute_window, .-compute_window
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	compute_bitreverse, %function
compute_bitreverse:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r0, [fp, #-24]
	bl	ilog
	mov	r3, r0
	sub	r3, r3, #1
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-24]
	asr	r3, r3, #3
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L168
.L169:
	ldr	r3, [fp, #-16]
	mov	r0, r3
	bl	bit_reverse
	mov	r2, r0
	ldr	r3, [fp, #-12]
	rsb	r3, r3, #35
	lsr	r3, r2, r3
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #1
	ldr	r1, [fp, #-28]
	add	r3, r1, r3
	lsl	r2, r2, #2
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L168:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	blt	.L169
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	compute_bitreverse, .-compute_bitreverse
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	init_blocksize, %function
init_blocksize:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	ldr	r3, [fp, #-32]
	asr	r3, r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-32]
	asr	r3, r3, #2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-32]
	asr	r3, r3, #3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_malloc
	mov	r1, r0
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	add	r3, r3, #268
	add	r3, r3, #2
	str	r1, [r2, r3, lsl #2]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_malloc
	mov	r1, r0
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-28]
	add	r2, r2, #272
	str	r1, [r3, r2, lsl #2]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_malloc
	mov	r1, r0
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	add	r3, r3, #272
	add	r3, r3, #2
	str	r1, [r2, r3, lsl #2]
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	add	r3, r3, #268
	add	r3, r3, #2
	ldr	r3, [r2, r3, lsl #2]
	cmp	r3, #0
	beq	.L171
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-28]
	add	r2, r2, #272
	ldr	r3, [r3, r2, lsl #2]
	cmp	r3, #0
	beq	.L171
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	add	r3, r3, #272
	add	r3, r3, #2
	ldr	r3, [r2, r3, lsl #2]
	cmp	r3, #0
	bne	.L172
.L171:
	mov	r1, #3
	ldr	r0, [fp, #-24]
	bl	error
	mov	r3, r0
	b	.L173
.L172:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	add	r3, r3, #268
	add	r3, r3, #2
	ldr	r1, [r2, r3, lsl #2]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-28]
	add	r2, r2, #272
	ldr	r0, [r3, r2, lsl #2]
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	add	r3, r3, #272
	add	r3, r3, #2
	ldr	r3, [r2, r3, lsl #2]
	mov	r2, r0
	ldr	r0, [fp, #-32]
	bl	compute_twiddle_factors
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_malloc
	mov	r1, r0
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-28]
	add	r2, r2, #276
	str	r1, [r3, r2, lsl #2]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-28]
	add	r2, r2, #276
	ldr	r3, [r3, r2, lsl #2]
	cmp	r3, #0
	bne	.L174
	mov	r1, #3
	ldr	r0, [fp, #-24]
	bl	error
	mov	r3, r0
	b	.L173
.L174:
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-28]
	add	r2, r2, #276
	ldr	r3, [r3, r2, lsl #2]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	compute_window
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_malloc
	mov	r1, r0
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	add	r3, r3, #276
	add	r3, r3, #2
	str	r1, [r2, r3, lsl #2]
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	add	r3, r3, #276
	add	r3, r3, #2
	ldr	r3, [r2, r3, lsl #2]
	cmp	r3, #0
	bne	.L175
	mov	r1, #3
	ldr	r0, [fp, #-24]
	bl	error
	mov	r3, r0
	b	.L173
.L175:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	add	r3, r3, #276
	add	r3, r3, #2
	ldr	r3, [r2, r3, lsl #2]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	compute_bitreverse
	mov	r3, #1
.L173:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	init_blocksize, .-init_blocksize
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	neighbors, %function
neighbors:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #36
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	str	r3, [fp, #-36]
	mvn	r3, #0
	str	r3, [fp, #-16]
	mov	r3, #65536
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L177
.L180:
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-16]
	cmp	r3, r2
	bge	.L178
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldrh	r2, [r3]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #1
	ldr	r1, [fp, #-24]
	add	r3, r1, r3
	ldrh	r3, [r3]
	cmp	r2, r3
	bcs	.L178
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldrh	r3, [r3]
	str	r3, [fp, #-16]
.L178:
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-12]
	cmp	r3, r2
	ble	.L179
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldrh	r2, [r3]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #1
	ldr	r1, [fp, #-24]
	add	r3, r1, r3
	ldrh	r3, [r3]
	cmp	r2, r3
	bls	.L179
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldrh	r3, [r3]
	str	r3, [fp, #-12]
.L179:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L177:
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	blt	.L180
	nop
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	neighbors, .-neighbors
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	point_compare, %function
point_compare:
	@ 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]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	ldrh	r2, [r3]
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3]
	cmp	r2, r3
	bcc	.L182
	ldr	r3, [fp, #-12]
	ldrh	r2, [r3]
	ldr	r3, [fp, #-8]
	ldrh	r3, [r3]
	cmp	r2, r3
	movhi	r3, #1
	movls	r3, #0
	and	r3, r3, #255
	b	.L184
.L182:
	mvn	r3, #0
.L184:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	point_compare, .-point_compare
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	get8, %function
get8:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #44]
	cmp	r3, #0
	beq	.L186
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #52]
	cmp	r2, r3
	bcc	.L187
	ldr	r3, [fp, #-16]
	mov	r2, #1
	str	r2, [r3, #108]
	mov	r3, #0
	b	.L188
.L187:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #44]
	add	r1, r3, #1
	ldr	r2, [fp, #-16]
	str	r1, [r2, #44]
	ldrb	r3, [r3]	@ zero_extendqisi2
	b	.L188
.L186:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	mov	r0, r3
	bl	fgetc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmn	r3, #1
	bne	.L189
	ldr	r3, [fp, #-16]
	mov	r2, #1
	str	r2, [r3, #108]
	mov	r3, #0
	b	.L188
.L189:
	ldr	r3, [fp, #-8]
	and	r3, r3, #255
.L188:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	get8, .-get8
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	get32, %function
get32:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	lsl	r3, r3, #8
	mov	r2, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	lsl	r3, r3, #16
	mov	r2, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	lsl	r3, r3, #24
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	get32, .-get32
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	getn, %function
getn:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #44]
	cmp	r3, #0
	beq	.L193
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-16]
	add	r2, r2, r3
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #52]
	cmp	r2, r3
	bls	.L194
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3, #108]
	mov	r3, #0
	b	.L195
.L194:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #44]
	ldr	r2, [fp, #-16]
	mov	r1, r3
	ldr	r0, [fp, #-12]
	bl	memcpy
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-16]
	add	r2, r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3, #44]
	mov	r3, #1
	b	.L195
.L193:
	ldr	r1, [fp, #-16]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #32]
	mov	r2, #1
	ldr	r0, [fp, #-12]
	bl	fread
	mov	r3, r0
	cmp	r3, #1
	bne	.L196
	mov	r3, #1
	b	.L195
.L196:
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3, #108]
	mov	r3, #0
.L195:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	getn, .-getn
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	skip, %function
skip:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #44]
	cmp	r3, #0
	beq	.L198
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-20]
	add	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #44]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #52]
	cmp	r2, r3
	bcc	.L201
	ldr	r3, [fp, #-16]
	mov	r2, #1
	str	r2, [r3, #108]
	b	.L201
.L198:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	mov	r0, r3
	bl	ftell
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r0, [r3, #32]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	mov	r2, #0
	mov	r1, r3
	bl	fseek
	b	.L197
.L201:
	nop
.L197:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	skip, .-skip
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	set_file_offset, %function
set_file_offset:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #60]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L203
	mov	r3, #0
	b	.L204
.L203:
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #108]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #44]
	cmp	r3, #0
	beq	.L205
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #48]
	ldr	r3, [fp, #-12]
	add	r2, r2, r3
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #52]
	cmp	r2, r3
	bcs	.L206
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bge	.L207
.L206:
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #44]
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3, #108]
	mov	r3, #0
	b	.L204
.L207:
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #48]
	ldr	r3, [fp, #-12]
	add	r2, r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3, #44]
	mov	r3, #1
	b	.L204
.L205:
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bhi	.L208
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bge	.L209
.L208:
	mvn	r3, #-2147483648
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3, #108]
	b	.L210
.L209:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #36]
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-12]
.L210:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #32]
	ldr	r1, [fp, #-12]
	mov	r2, #0
	mov	r0, r3
	bl	fseek
	mov	r3, r0
	cmp	r3, #0
	bne	.L211
	mov	r3, #1
	b	.L204
.L211:
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3, #108]
	ldr	r3, [fp, #-8]
	ldr	r0, [r3, #32]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #36]
	mov	r2, #2
	mov	r1, r3
	bl	fseek
	mov	r3, #0
.L204:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	set_file_offset, .-set_file_offset
	.data
	.align	2
	.type	ogg_page_header, %object
	.size	ogg_page_header, 4
ogg_page_header:
	.ascii	"OggS"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	capture_pattern, %function
capture_pattern:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	get8
	mov	r3, r0
	cmp	r3, #79
	beq	.L213
	mov	r3, #0
	b	.L214
.L213:
	ldr	r0, [fp, #-8]
	bl	get8
	mov	r3, r0
	cmp	r3, #103
	beq	.L215
	mov	r3, #0
	b	.L214
.L215:
	ldr	r0, [fp, #-8]
	bl	get8
	mov	r3, r0
	cmp	r3, #103
	beq	.L216
	mov	r3, #0
	b	.L214
.L216:
	ldr	r0, [fp, #-8]
	bl	get8
	mov	r3, r0
	cmp	r3, #83
	beq	.L217
	mov	r3, #0
	b	.L214
.L217:
	mov	r3, #1
.L214:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	capture_pattern, .-capture_pattern
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	start_page_no_capturepattern, %function
start_page_no_capturepattern:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3, #1389]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L219
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3, #60]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L219
	ldr	r0, [fp, #-32]
	bl	stb_vorbis_get_file_offset
	mov	r3, r0
	sub	r2, r3, #4
	ldr	r3, [fp, #-32]
	str	r2, [r3, #68]
.L219:
	ldr	r0, [fp, #-32]
	bl	get8
	mov	r3, r0
	cmp	r3, #0
	beq	.L220
	mov	r1, #31
	ldr	r0, [fp, #-32]
	bl	error
	mov	r3, r0
	b	.L221
.L220:
	ldr	r0, [fp, #-32]
	bl	get8
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-32]
	strb	r2, [r3, #1387]
	ldr	r0, [fp, #-32]
	bl	get32
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-32]
	bl	get32
	str	r0, [fp, #-12]
	ldr	r0, [fp, #-32]
	bl	get32
	ldr	r0, [fp, #-32]
	bl	get32
	str	r0, [fp, #-8]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-32]
	str	r2, [r3, #1124]
	ldr	r0, [fp, #-32]
	bl	get32
	ldr	r0, [fp, #-32]
	bl	get8
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3, #1128]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1120
	add	r3, r3, #12
	ldr	r2, [fp, #-32]
	ldr	r2, [r2, #1128]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	getn
	mov	r3, r0
	cmp	r3, #0
	bne	.L222
	mov	r1, #10
	ldr	r0, [fp, #-32]
	bl	error
	mov	r3, r0
	b	.L221
.L222:
	ldr	r3, [fp, #-32]
	mvn	r2, #1
	str	r2, [r3, #1416]
	ldr	r3, [fp, #-16]
	cmn	r3, #1
	bne	.L223
	ldr	r3, [fp, #-12]
	cmn	r3, #1
	beq	.L224
.L223:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1128]
	sub	r3, r3, #1
	str	r3, [fp, #-28]
	b	.L225
.L228:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	add	r3, r3, #1120
	add	r3, r3, #12
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #255
	bne	.L232
	ldr	r3, [fp, #-28]
	sub	r3, r3, #1
	str	r3, [fp, #-28]
.L225:
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bge	.L228
	b	.L227
.L232:
	nop
.L227:
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	blt	.L224
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #1416]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-16]
	str	r2, [r3, #1420]
.L224:
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3, #1389]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L229
	mov	r3, #0
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L230
.L231:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #1120
	add	r3, r3, #12
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-20]
	add	r3, r3, r2
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L230:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1128]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	blt	.L231
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1128]
	add	r3, r3, #27
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #68]
	ldr	r3, [fp, #-20]
	add	r2, r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3, #72]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-16]
	str	r2, [r3, #76]
.L229:
	ldr	r3, [fp, #-32]
	mov	r2, #0
	str	r2, [r3, #1392]
	mov	r3, #1
.L221:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	start_page_no_capturepattern, .-start_page_no_capturepattern
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	start_page, %function
start_page:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	capture_pattern
	mov	r3, r0
	cmp	r3, #0
	bne	.L234
	mov	r1, #30
	ldr	r0, [fp, #-8]
	bl	error
	mov	r3, r0
	b	.L235
.L234:
	ldr	r0, [fp, #-8]
	bl	start_page_no_capturepattern
	mov	r3, r0
.L235:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	start_page, .-start_page
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	start_packet, %function
start_packet:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	b	.L237
.L240:
	ldr	r0, [fp, #-8]
	bl	start_page
	mov	r3, r0
	cmp	r3, #0
	bne	.L238
	mov	r3, #0
	b	.L239
.L238:
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #1387]	@ zero_extendqisi2
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L237
	mov	r1, #32
	ldr	r0, [fp, #-8]
	bl	error
	mov	r3, r0
	b	.L239
.L237:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #1392]
	cmn	r3, #1
	beq	.L240
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #1396]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #1408]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #1412]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	strb	r2, [r3, #1388]
	mov	r3, #1
.L239:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	start_packet, .-start_packet
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	maybe_start_packet, %function
maybe_start_packet:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1392]
	cmn	r3, #1
	bne	.L242
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #108]
	cmp	r3, #0
	beq	.L243
	mov	r3, #0
	b	.L244
.L243:
	ldr	r3, [fp, #-8]
	cmp	r3, #79
	beq	.L245
	mov	r1, #30
	ldr	r0, [fp, #-16]
	bl	error
	mov	r3, r0
	b	.L244
.L245:
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	cmp	r3, #103
	beq	.L246
	mov	r1, #30
	ldr	r0, [fp, #-16]
	bl	error
	mov	r3, r0
	b	.L244
.L246:
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	cmp	r3, #103
	beq	.L247
	mov	r1, #30
	ldr	r0, [fp, #-16]
	bl	error
	mov	r3, r0
	b	.L244
.L247:
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	cmp	r3, #83
	beq	.L248
	mov	r1, #30
	ldr	r0, [fp, #-16]
	bl	error
	mov	r3, r0
	b	.L244
.L248:
	ldr	r0, [fp, #-16]
	bl	start_page_no_capturepattern
	mov	r3, r0
	cmp	r3, #0
	bne	.L249
	mov	r3, #0
	b	.L244
.L249:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3, #1387]	@ zero_extendqisi2
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L242
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #1396]
	ldr	r3, [fp, #-16]
	mov	r2, #0
	strb	r2, [r3, #1388]
	mov	r1, #32
	ldr	r0, [fp, #-16]
	bl	error
	mov	r3, r0
	b	.L244
.L242:
	ldr	r0, [fp, #-16]
	bl	start_packet
	mov	r3, r0
.L244:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	maybe_start_packet, .-maybe_start_packet
	.section	.rodata
	.align	2
.LC9:
	.ascii	"f->bytes_in_seg == 0\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	next_segment, %function
next_segment:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1396]
	cmp	r3, #0
	beq	.L251
	mov	r3, #0
	b	.L252
.L251:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1392]
	cmn	r3, #1
	bne	.L253
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1128]
	sub	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3, #1400]
	ldr	r0, [fp, #-16]
	bl	start_page
	mov	r3, r0
	cmp	r3, #0
	bne	.L254
	ldr	r3, [fp, #-16]
	mov	r2, #1
	str	r2, [r3, #1396]
	mov	r3, #0
	b	.L252
.L254:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3, #1387]	@ zero_extendqisi2
	and	r3, r3, #1
	cmp	r3, #0
	bne	.L253
	mov	r1, #32
	ldr	r0, [fp, #-16]
	bl	error
	mov	r3, r0
	b	.L252
.L253:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1392]
	add	r1, r3, #1
	ldr	r2, [fp, #-16]
	str	r1, [r2, #1392]
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3, #1132]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #254
	bgt	.L255
	ldr	r3, [fp, #-16]
	mov	r2, #1
	str	r2, [r3, #1396]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1392]
	sub	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3, #1400]
.L255:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #1392]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1128]
	cmp	r2, r3
	blt	.L256
	ldr	r3, [fp, #-16]
	mvn	r2, #0
	str	r2, [r3, #1392]
.L256:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3, #1388]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L257
	ldr	r3, .L258
	ldr	r2, .L258+4
	ldr	r1, .L258+8
	ldr	r0, .L258+12
	bl	__assert_fail
.L257:
	ldr	r3, [fp, #-8]
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #1388]
	ldr	r3, [fp, #-8]
.L252:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L259:
	.align	2
.L258:
	.word	__PRETTY_FUNCTION__.6946
	.word	1540
	.word	.LC0
	.word	.LC9
	.size	next_segment, .-next_segment
	.section	.rodata
	.align	2
.LC10:
	.ascii	"f->bytes_in_seg > 0\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	get8_packet_raw, %function
get8_packet_raw:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #1388]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L261
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #1396]
	cmp	r3, #0
	beq	.L262
	mvn	r3, #0
	b	.L263
.L262:
	ldr	r0, [fp, #-8]
	bl	next_segment
	mov	r3, r0
	cmp	r3, #0
	bne	.L261
	mvn	r3, #0
	b	.L263
.L261:
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #1388]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L264
	ldr	r3, .L265
	ldr	r2, .L265+4
	ldr	r1, .L265+8
	ldr	r0, .L265+12
	bl	__assert_fail
.L264:
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #1388]	@ zero_extendqisi2
	sub	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, [fp, #-8]
	strb	r2, [r3, #1388]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #1412]
	add	r2, r3, #1
	ldr	r3, [fp, #-8]
	str	r2, [r3, #1412]
	ldr	r0, [fp, #-8]
	bl	get8
	mov	r3, r0
.L263:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L266:
	.align	2
.L265:
	.word	__PRETTY_FUNCTION__.6950
	.word	1554
	.word	.LC0
	.word	.LC10
	.size	get8_packet_raw, .-get8_packet_raw
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	get8_packet, %function
get8_packet:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	get8_packet_raw
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #1408]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	get8_packet, .-get8_packet
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	get32_packet, %function
get32_packet:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	get8_packet
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	get8_packet
	mov	r3, r0
	lsl	r3, r3, #8
	mov	r2, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	get8_packet
	mov	r3, r0
	lsl	r3, r3, #16
	mov	r2, r3
	ldr	r3, [fp, #-8]
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-16]
	bl	get8_packet
	mov	r3, r0
	lsl	r3, r3, #24
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	get32_packet, .-get32_packet
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	flush_packet, %function
flush_packet:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	nop
.L272:
	ldr	r0, [fp, #-8]
	bl	get8_packet_raw
	mov	r3, r0
	cmn	r3, #1
	bne	.L272
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	flush_packet, .-flush_packet
	.section	.rodata
	.align	2
.LC11:
	.ascii	"f->valid_bits >= n\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_bits, %function
get_bits:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1408]
	cmp	r3, #0
	bge	.L274
	mov	r3, #0
	b	.L275
.L274:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1408]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L276
	ldr	r3, [fp, #-20]
	cmp	r3, #24
	ble	.L277
	mov	r1, #24
	ldr	r0, [fp, #-16]
	bl	get_bits
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-20]
	sub	r3, r3, #24
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	get_bits
	mov	r3, r0
	lsl	r3, r3, #24
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	b	.L275
.L277:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1408]
	cmp	r3, #0
	bne	.L279
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #1404]
	b	.L279
.L281:
	ldr	r0, [fp, #-16]
	bl	get8_packet_raw
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmn	r3, #1
	bne	.L280
	ldr	r3, [fp, #-16]
	mvn	r2, #0
	str	r2, [r3, #1408]
	mov	r3, #0
	b	.L275
.L280:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1404]
	ldr	r2, [fp, #-16]
	ldr	r2, [r2, #1408]
	ldr	r1, [fp, #-12]
	lsl	r2, r1, r2
	add	r2, r3, r2
	ldr	r3, [fp, #-16]
	str	r2, [r3, #1404]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1408]
	add	r2, r3, #8
	ldr	r3, [fp, #-16]
	str	r2, [r3, #1408]
.L279:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1408]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	bgt	.L281
.L276:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1408]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L282
	ldr	r3, .L283
	ldr	r2, .L283+4
	ldr	r1, .L283+8
	ldr	r0, .L283+12
	bl	__assert_fail
.L282:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1404]
	mov	r1, #1
	ldr	r2, [fp, #-20]
	lsl	r2, r1, r2
	sub	r2, r2, #1
	and	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #1404]
	ldr	r3, [fp, #-20]
	lsr	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #1404]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #1408]
	ldr	r3, [fp, #-20]
	sub	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #1408]
	ldr	r3, [fp, #-8]
.L275:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L284:
	.align	2
.L283:
	.word	__PRETTY_FUNCTION__.6974
	.word	1608
	.word	.LC0
	.word	.LC11
	.size	get_bits, .-get_bits
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	prep_huffman, %function
prep_huffman:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1408]
	cmp	r3, #24
	bgt	.L285
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1408]
	cmp	r3, #0
	bne	.L290
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #1404]
.L290:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1396]
	cmp	r3, #0
	beq	.L288
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3, #1388]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L291
.L288:
	ldr	r0, [fp, #-16]
	bl	get8_packet_raw
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmn	r3, #1
	beq	.L292
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #1404]
	ldr	r1, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1408]
	lsl	r3, r1, r3
	add	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #1404]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1408]
	add	r2, r3, #8
	ldr	r3, [fp, #-16]
	str	r2, [r3, #1408]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1408]
	cmp	r3, #24
	ble	.L290
	b	.L285
.L291:
	nop
	b	.L285
.L292:
	nop
.L285:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	prep_huffman, .-prep_huffman
	.section	.rodata
	.align	2
.LC12:
	.ascii	"!c->sparse\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	codebook_decode_scalar_raw, %function
codebook_decode_scalar_raw:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	prep_huffman
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #32]
	cmp	r3, #0
	bne	.L294
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #2084]
	cmp	r3, #0
	bne	.L294
	mvn	r3, #0
	b	.L295
.L294:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #4]
	cmp	r3, #8
	ble	.L296
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #2084]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	b	.L297
.L296:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #32]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
.L297:
	cmp	r3, #0
	beq	.L298
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1404]
	mov	r0, r3
	bl	bit_reverse
	str	r0, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #2092]
	str	r3, [fp, #-20]
	b	.L299
.L301:
	ldr	r3, [fp, #-20]
	asr	r3, r3, #1
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #2084]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bcc	.L300
	ldr	r3, [fp, #-8]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-20]
	asr	r3, r3, #1
	ldr	r2, [fp, #-20]
	sub	r3, r2, r3
	str	r3, [fp, #-20]
	b	.L299
.L300:
	ldr	r3, [fp, #-20]
	asr	r3, r3, #1
	str	r3, [fp, #-20]
.L299:
	ldr	r3, [fp, #-20]
	cmp	r3, #1
	bgt	.L301
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L302
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #2088]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-24]
.L302:
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1408]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bgt	.L303
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #1404]
	ldr	r3, [fp, #-12]
	lsr	r2, r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3, #1404]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #1408]
	ldr	r3, [fp, #-12]
	sub	r2, r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3, #1408]
	ldr	r3, [fp, #-24]
	b	.L295
.L303:
	ldr	r3, [fp, #-32]
	mov	r2, #0
	str	r2, [r3, #1408]
	mvn	r3, #0
	b	.L295
.L298:
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L304
	ldr	r3, .L311
	ldr	r2, .L311+4
	ldr	r1, .L311+8
	ldr	r0, .L311+12
	bl	__assert_fail
.L304:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L305
.L309:
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #255
	beq	.L310
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #32]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1404]
	ldr	r1, [fp, #-36]
	ldr	r0, [r1, #8]
	ldr	r1, [fp, #-28]
	add	r1, r0, r1
	ldrb	r1, [r1]	@ zero_extendqisi2
	mov	r0, r1
	mov	r1, #1
	lsl	r1, r1, r0
	sub	r1, r1, #1
	and	r3, r3, r1
	cmp	r2, r3
	bne	.L307
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1408]
	ldr	r2, [fp, #-36]
	ldr	r1, [r2, #8]
	ldr	r2, [fp, #-28]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	cmp	r3, r2
	blt	.L308
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1404]
	ldr	r2, [fp, #-36]
	ldr	r1, [r2, #8]
	ldr	r2, [fp, #-28]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	lsr	r2, r3, r2
	ldr	r3, [fp, #-32]
	str	r2, [r3, #1404]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1408]
	ldr	r2, [fp, #-36]
	ldr	r1, [r2, #8]
	ldr	r2, [fp, #-28]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	sub	r2, r3, r2
	ldr	r3, [fp, #-32]
	str	r2, [r3, #1408]
	ldr	r3, [fp, #-28]
	b	.L295
.L308:
	ldr	r3, [fp, #-32]
	mov	r2, #0
	str	r2, [r3, #1408]
	mvn	r3, #0
	b	.L295
.L310:
	nop
.L307:
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L305:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	blt	.L309
	mov	r1, #21
	ldr	r0, [fp, #-32]
	bl	error
	ldr	r3, [fp, #-32]
	mov	r2, #0
	str	r2, [r3, #1408]
	mvn	r3, #0
.L295:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L312:
	.align	2
.L311:
	.word	__PRETTY_FUNCTION__.6998
	.word	1681
	.word	.LC0
	.word	.LC12
	.size	codebook_decode_scalar_raw, .-codebook_decode_scalar_raw
	.section	.rodata
	.align	2
.LC13:
	.ascii	"z < c->sorted_entries\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	codebook_decode_start, %function
codebook_decode_start:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	mvn	r3, #0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3, #21]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L314
	mov	r1, #21
	ldr	r0, [fp, #-16]
	bl	error
	b	.L315
.L314:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1408]
	cmp	r3, #9
	bgt	.L316
	ldr	r0, [fp, #-16]
	bl	prep_huffman
.L316:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1404]
	lsl	r3, r3, #22
	lsr	r3, r3, #22
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-12]
	add	r3, r3, #16
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #4
	ldrsh	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	blt	.L317
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #1404]
	ldr	r3, [fp, #-8]
	lsr	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #1404]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #1408]
	ldr	r3, [fp, #-8]
	sub	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #1408]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1408]
	cmp	r3, #0
	bge	.L318
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #1408]
	mvn	r3, #0
	str	r3, [fp, #-12]
	b	.L318
.L317:
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	codebook_decode_scalar_raw
	str	r0, [fp, #-12]
.L318:
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L319
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #2092]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L319
	ldr	r3, .L322
	ldr	r2, .L322+4
	ldr	r1, .L322+8
	ldr	r0, .L322+12
	bl	__assert_fail
.L319:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bge	.L315
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3, #1388]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L320
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1396]
	cmp	r3, #0
	beq	.L320
	ldr	r3, [fp, #-12]
	b	.L321
.L320:
	mov	r1, #21
	ldr	r0, [fp, #-16]
	bl	error
.L315:
	ldr	r3, [fp, #-12]
.L321:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L323:
	.align	2
.L322:
	.word	__PRETTY_FUNCTION__.7009
	.word	1769
	.word	.LC0
	.word	.LC13
	.size	codebook_decode_start, .-codebook_decode_start
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	codebook_decode, %function
codebook_decode:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	str	r2, [fp, #-48]
	str	r3, [fp, #-52]
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-40]
	bl	codebook_decode_start
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bge	.L325
	mov	r3, #0
	b	.L326
.L325:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	ldr	r2, [fp, #-52]
	cmp	r2, r3
	ble	.L327
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	str	r3, [fp, #-52]
.L327:
	ldr	r3, [fp, #-44]
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	mul	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-44]
	ldrb	r3, [r3, #22]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L328
	mov	r3, #0
	str	r3, [fp, #-28]	@ float
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L329
.L330:
	ldr	r3, [fp, #-44]
	ldr	r2, [r3, #28]
	ldr	r1, [fp, #-24]
	ldr	r3, [fp, #-32]
	add	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	ldr	r0, [fp, #-28]	@ float
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-16]	@ float
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	add	r4, r2, r3
	ldr	r1, [fp, #-16]	@ float
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #12]	@ float
	mov	r1, r3
	ldr	r0, [fp, #-16]	@ float
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-28]	@ float
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L329:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	blt	.L330
	b	.L331
.L328:
	mov	r3, #0
	str	r3, [fp, #-20]	@ float
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L332
.L333:
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldr	r5, [r3]	@ float
	ldr	r3, [fp, #-44]
	ldr	r2, [r3, #28]
	ldr	r1, [fp, #-24]
	ldr	r3, [fp, #-32]
	add	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-20]	@ float
	mov	r0, r3
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r1, r3
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	add	r4, r2, r3
	mov	r0, r5
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L332:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	blt	.L333
.L331:
	mov	r3, #1
.L326:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
	.size	codebook_decode, .-codebook_decode
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	codebook_decode_step, %function
codebook_decode_step:
	@ args = 4, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #36
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	codebook_decode_start
	str	r0, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-24]	@ float
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bge	.L335
	mov	r3, #0
	b	.L336
.L335:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	ldr	r2, [fp, #-44]
	cmp	r2, r3
	ble	.L337
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	str	r3, [fp, #-44]
.L337:
	ldr	r3, [fp, #-36]
	ldr	r2, [r3]
	ldr	r3, [fp, #-20]
	mul	r3, r2, r3
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L338
.L340:
	ldr	r3, [fp, #-36]
	ldr	r2, [r3, #28]
	ldr	r1, [fp, #-20]
	ldr	r3, [fp, #-28]
	add	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	ldr	r0, [fp, #-24]	@ float
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-16]	@ float
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #4]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #4]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r4, r2, r3
	ldr	r1, [fp, #-16]	@ float
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3, #22]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L339
	ldr	r3, [fp, #-16]	@ float
	str	r3, [fp, #-24]	@ float
.L339:
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L338:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	blt	.L340
	mov	r3, #1
.L336:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	codebook_decode_step, .-codebook_decode_step
	.section	.rodata
	.align	2
.LC14:
	.ascii	"!c->sparse || z < c->sorted_entries\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	codebook_decode_deinterleave_repeat, %function
codebook_decode_deinterleave_repeat:
	@ args = 16, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #60
	str	r0, [fp, #-56]
	str	r1, [fp, #-60]
	str	r2, [fp, #-64]
	str	r3, [fp, #-68]
	ldr	r3, [fp, #4]
	ldr	r3, [r3]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #8]
	ldr	r3, [r3]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-60]
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3, #21]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L344
	mov	r1, #21
	ldr	r0, [fp, #-56]
	bl	error
	mov	r3, r0
	b	.L343
.L362:
	mov	r3, #0
	str	r3, [fp, #-28]	@ float
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #1408]
	cmp	r3, #9
	bgt	.L345
	ldr	r0, [fp, #-56]
	bl	prep_huffman
.L345:
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #1404]
	lsl	r3, r3, #22
	lsr	r3, r3, #22
	str	r3, [fp, #-36]
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #-36]
	add	r3, r3, #16
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #4
	ldrsh	r3, [r3]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	blt	.L346
	ldr	r3, [fp, #-60]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #1404]
	ldr	r3, [fp, #-24]
	lsr	r2, r2, r3
	ldr	r3, [fp, #-56]
	str	r2, [r3, #1404]
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #1408]
	ldr	r3, [fp, #-24]
	sub	r2, r2, r3
	ldr	r3, [fp, #-56]
	str	r2, [r3, #1408]
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #1408]
	cmp	r3, #0
	bge	.L347
	ldr	r3, [fp, #-56]
	mov	r2, #0
	str	r2, [r3, #1408]
	mvn	r3, #0
	str	r3, [fp, #-36]
	b	.L347
.L346:
	ldr	r1, [fp, #-60]
	ldr	r0, [fp, #-56]
	bl	codebook_decode_scalar_raw
	str	r0, [fp, #-36]
.L347:
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L348
	ldr	r3, [fp, #-60]
	ldr	r3, [r3, #2092]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	blt	.L348
	ldr	r3, .L363
	ldr	r2, .L363+4
	ldr	r1, .L363+8
	ldr	r0, .L363+12
	bl	__assert_fail
.L348:
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	bge	.L349
	ldr	r3, [fp, #-56]
	ldrb	r3, [r3, #1388]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L350
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #1396]
	cmp	r3, #0
	beq	.L350
	mov	r3, #0
	b	.L343
.L350:
	mov	r1, #21
	ldr	r0, [fp, #-56]
	bl	error
	mov	r3, r0
	b	.L343
.L349:
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #-68]
	mul	r2, r3, r2
	ldr	r3, [fp, #-48]
	add	r2, r2, r3
	ldr	r3, [fp, #-32]
	add	r2, r2, r3
	ldr	r3, [fp, #12]
	ldr	r1, [fp, #-68]
	mul	r3, r1, r3
	cmp	r2, r3
	ble	.L351
	ldr	r3, [fp, #12]
	ldr	r2, [fp, #-68]
	mul	r2, r3, r2
	ldr	r3, [fp, #-44]
	ldr	r1, [fp, #-68]
	mul	r1, r3, r1
	ldr	r3, [fp, #-48]
	sub	r3, r1, r3
	sub	r3, r2, r3
	str	r3, [fp, #-32]
.L351:
	ldr	r3, [fp, #-60]
	ldr	r2, [r3]
	ldr	r3, [fp, #-36]
	mul	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3, #22]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L352
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L353
.L356:
	ldr	r3, [fp, #-60]
	ldr	r2, [r3, #28]
	ldr	r1, [fp, #-36]
	ldr	r3, [fp, #-40]
	add	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	ldr	r0, [fp, #-28]	@ float
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-16]	@ float
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-64]
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L354
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-64]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-64]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	add	r4, r2, r3
	ldr	r1, [fp, #-16]	@ float
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
.L354:
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-68]
	cmp	r2, r3
	bne	.L355
	mov	r3, #0
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
.L355:
	ldr	r3, [fp, #-16]	@ float
	str	r3, [fp, #-28]	@ float
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L353:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	blt	.L356
	b	.L357
.L352:
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L358
.L361:
	ldr	r3, [fp, #-60]
	ldr	r2, [r3, #28]
	ldr	r1, [fp, #-36]
	ldr	r3, [fp, #-40]
	add	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	ldr	r0, [fp, #-28]	@ float
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-20]	@ float
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-64]
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L359
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-64]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-64]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	add	r4, r2, r3
	ldr	r1, [fp, #-20]	@ float
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
.L359:
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-68]
	cmp	r2, r3
	bne	.L360
	mov	r3, #0
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
.L360:
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L358:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	blt	.L361
.L357:
	ldr	r2, [fp, #16]
	ldr	r3, [fp, #-32]
	sub	r3, r2, r3
	str	r3, [fp, #16]
.L344:
	ldr	r3, [fp, #16]
	cmp	r3, #0
	bgt	.L362
	ldr	r3, [fp, #4]
	ldr	r2, [fp, #-48]
	str	r2, [r3]
	ldr	r3, [fp, #8]
	ldr	r2, [fp, #-44]
	str	r2, [r3]
	mov	r3, #1
.L343:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L364:
	.align	2
.L363:
	.word	__PRETTY_FUNCTION__.7058
	.word	1863
	.word	.LC0
	.word	.LC14
	.size	codebook_decode_deinterleave_repeat, .-codebook_decode_deinterleave_repeat
	.global	__aeabi_idiv
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	predict_point, %function
predict_point:
	@ args = 4, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	str	r3, [fp, #-36]
	ldr	r2, [fp, #4]
	ldr	r3, [fp, #-36]
	sub	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-28]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	rsblt	r3, r3, #0
	ldr	r1, [fp, #-24]
	ldr	r2, [fp, #-28]
	sub	r2, r1, r2
	mul	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-12]
	bl	__aeabi_idiv
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bge	.L366
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-8]
	sub	r3, r2, r3
	b	.L368
.L366:
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
.L368:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	predict_point, .-predict_point
	.data
	.align	2
	.type	inverse_db_table, %object
	.size	inverse_db_table, 1024
inverse_db_table:
	.word	870626366
	.word	871600393
	.word	872526475
	.word	873078844
	.word	873667107
	.word	874293600
	.word	874960807
	.word	875671371
	.word	876428112
	.word	877234032
	.word	878092323
	.word	879006392
	.word	879979861
	.word	880910216
	.word	881462268
	.word	882050195
	.word	882676329
	.word	883343154
	.word	884053311
	.word	884809619
	.word	885615076
	.word	886472877
	.word	887386422
	.word	888359334
	.word	889293960
	.word	889845696
	.word	890433286
	.word	891059062
	.word	891725504
	.word	892435255
	.word	893191130
	.word	893996126
	.word	894853435
	.word	895766457
	.word	896738812
	.word	897677706
	.word	898229126
	.word	898816380
	.word	899441797
	.word	900107858
	.word	900817203
	.word	901572645
	.word	902377180
	.word	903233998
	.word	904146497
	.word	905118295
	.word	906061455
	.word	906612559
	.word	907199477
	.word	907824536
	.word	908490216
	.word	909199154
	.word	909954164
	.word	910758238
	.word	911614565
	.word	912526542
	.word	913497784
	.word	914445207
	.word	914995996
	.word	915582578
	.word	916207279
	.word	916872577
	.word	917581109
	.word	918335687
	.word	919139300
	.word	919995137
	.word	920906592
	.word	921877278
	.word	922828962
	.word	923379435
	.word	923965681
	.word	924590025
	.word	925254942
	.word	925963069
	.word	926717214
	.word	927520367
	.word	928375714
	.word	929286647
	.word	930256777
	.word	931212719
	.word	931762878
	.word	932348788
	.word	932972774
	.word	933637310
	.word	934345031
	.word	935098745
	.word	935901438
	.word	936756295
	.word	937666706
	.word	938636280
	.word	939596480
	.word	940146323
	.word	940731897
	.word	941355526
	.word	942019682
	.word	942726998
	.word	943480280
	.word	944282514
	.word	945136882
	.word	946046771
	.word	947015790
	.word	947980243
	.word	948529771
	.word	949115010
	.word	949738282
	.word	950402057
	.word	951108968
	.word	951861819
	.word	952663593
	.word	953517472
	.word	954426841
	.word	955395304
	.word	956364009
	.word	956913222
	.word	957498126
	.word	958121041
	.word	958784437
	.word	959490943
	.word	960243362
	.word	961044677
	.word	961898067
	.word	962806915
	.word	963774824
	.word	964747777
	.word	965296676
	.word	965881245
	.word	966503803
	.word	967166819
	.word	967872921
	.word	968624909
	.word	969425766
	.word	970278667
	.word	971186994
	.word	972154349
	.word	973131549
	.word	973680133
	.word	974264368
	.word	974886569
	.word	975549205
	.word	976254903
	.word	977006460
	.word	977806858
	.word	978659271
	.word	979567078
	.word	980533880
	.word	981515323
	.word	982063593
	.word	982647494
	.word	983269339
	.word	983931595
	.word	984636888
	.word	985388015
	.word	986187955
	.word	987039880
	.word	987947167
	.word	988913415
	.word	989899100
	.word	990447056
	.word	991030622
	.word	991652111
	.word	992313988
	.word	993018877
	.word	993769575
	.word	994569057
	.word	995420493
	.word	996327261
	.word	997292956
	.word	998282879
	.word	998830522
	.word	999413753
	.word	1000034887
	.word	1000696385
	.word	1001400871
	.word	1002151138
	.word	1002950162
	.word	1003801111
	.word	1004707360
	.word	1005672501
	.word	1006666662
	.word	1007213991
	.word	1007796888
	.word	1008417666
	.word	1009078785
	.word	1009782868
	.word	1010532705
	.word	1011331272
	.word	1012181733
	.word	1013087464
	.word	1014052052
	.word	1015050447
	.word	1015597462
	.word	1016180026
	.word	1016800448
	.word	1017461189
	.word	1018164869
	.word	1018914277
	.word	1019712386
	.word	1020562361
	.word	1021467572
	.word	1022431609
	.word	1023434235
	.word	1023980937
	.word	1024563167
	.word	1025183234
	.word	1025843597
	.word	1026546873
	.word	1027295853
	.word	1028093504
	.word	1028942993
	.word	1029847685
	.word	1030811170
	.word	1031818026
	.word	1032364415
	.word	1032946312
	.word	1033566024
	.word	1034226008
	.word	1034928882
	.word	1035677432
	.word	1036474627
	.word	1037323629
	.word	1038227804
	.word	1039190737
	.word	1040201819
	.word	1040747895
	.word	1041329459
	.word	1041948816
	.word	1042608423
	.word	1043310894
	.word	1044059015
	.word	1044855754
	.word	1045704269
	.word	1046607927
	.word	1047570308
	.word	1048585615
	.word	1049131379
	.word	1049712610
	.word	1050331612
	.word	1050990841
	.word	1051692909
	.word	1052440603
	.word	1053236885
	.word	1054084915
	.word	1054988055
	.word	1055949885
	.word	1056969414
	.word	1057514866
	.word	1058095763
	.word	1058714411
	.word	1059373262
	.word	1060074929
	.word	1060822194
	.word	1061618021
	.word	1062465565
	.word	1063368187
	.word	1064329467
	.word	1065353216
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	draw_line, %function
draw_line:
	@ args = 8, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #52
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	str	r2, [fp, #-56]
	str	r3, [fp, #-60]
	ldr	r2, [fp, #4]
	ldr	r3, [fp, #-56]
	sub	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #-52]
	sub	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	rsblt	r3, r3, #0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-52]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-56]
	str	r3, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-36]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-28]
	bl	__aeabi_idiv
	mov	r3, r0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bge	.L370
	ldr	r3, [fp, #-16]
	sub	r3, r3, #1
	str	r3, [fp, #-32]
	b	.L371
.L370:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L371:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	rsblt	r3, r3, #0
	ldr	r2, [fp, #-24]
	mul	r3, r2, r3
	ldr	r2, [fp, #-20]
	sub	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #8]
	cmp	r2, r3
	ble	.L372
	ldr	r3, [fp, #8]
	str	r3, [fp, #-60]
.L372:
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-60]
	cmp	r2, r3
	bge	.L378
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-40]
	and	r3, r3, #255
	ldr	r2, .L379
	ldr	r1, [r2, r3, lsl #2]	@ float
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	add	r4, r2, r3
	bl	__aeabi_fmul
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
	b	.L374
.L377:
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	blt	.L375
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-24]
	sub	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	b	.L376
.L375:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-40]
.L376:
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-40]
	and	r3, r3, #255
	ldr	r2, .L379
	ldr	r1, [r2, r3, lsl #2]	@ float
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	add	r4, r2, r3
	bl	__aeabi_fmul
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
.L374:
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-60]
	cmp	r2, r3
	blt	.L377
.L378:
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L380:
	.align	2
.L379:
	.word	inverse_db_table
	.size	draw_line, .-draw_line
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	residue_decode, %function
residue_decode:
	@ args = 8, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #8]
	cmp	r3, #0
	bne	.L382
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #4]
	bl	__aeabi_idiv
	mov	r3, r0
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L383
.L386:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r1, r2, r3
	ldr	r2, [fp, #4]
	ldr	r3, [fp, #-28]
	sub	r2, r2, r3
	ldr	r3, [fp, #-12]
	sub	r2, r2, r3
	ldr	r3, [fp, #-8]
	str	r3, [sp]
	mov	r3, r2
	mov	r2, r1
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	codebook_decode_step
	mov	r3, r0
	cmp	r3, #0
	bne	.L384
	mov	r3, #0
	b	.L385
.L384:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L383:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	blt	.L386
	b	.L387
.L382:
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L388
.L390:
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-24]
	add	r1, r2, r3
	ldr	r2, [fp, #4]
	ldr	r3, [fp, #-12]
	sub	r3, r2, r3
	mov	r2, r1
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	codebook_decode
	mov	r3, r0
	cmp	r3, #0
	bne	.L389
	mov	r3, #0
	b	.L385
.L389:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	str	r3, [fp, #-28]
.L388:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #4]
	cmp	r2, r3
	blt	.L390
.L387:
	mov	r3, #1
.L385:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	residue_decode, .-residue_decode
	.global	__aeabi_uidiv
	.global	__aeabi_idivmod
	.section	.rodata
	.align	2
.LC15:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	decode_residue, %function
decode_residue:
	@ args = 8, pretend = 0, frame = 208
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #224
	str	r0, [fp, #-192]
	str	r1, [fp, #-196]
	str	r2, [fp, #-200]
	str	r3, [fp, #-204]
	ldr	r3, [fp, #8]
	str	r3, [fp, #-208]
	ldr	r3, .L464
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-192]
	ldr	r1, [r3, #408]
	ldr	r2, [fp, #4]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	str	r3, [fp, #-140]
	ldr	r2, [fp, #-192]
	ldr	r3, [fp, #4]
	add	r3, r3, #140
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-140]
	ldrb	r3, [r3, #13]	@ zero_extendqisi2
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-192]
	ldr	r1, [r3, #136]
	ldr	r2, [fp, #-132]
	mov	r3, r2
	lsl	r3, r3, #6
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r1, r3
	ldr	r3, [r3]
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-136]
	cmp	r3, #2
	bne	.L392
	ldr	r3, [fp, #-204]
	lsl	r3, r3, #1
	b	.L393
.L392:
	ldr	r3, [fp, #-204]
.L393:
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-140]
	ldr	r3, [r3]
	ldr	r2, [fp, #-124]
	cmp	r2, r3
	movcc	r3, r2
	movcs	r3, r3
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-140]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-124]
	cmp	r2, r3
	movcc	r3, r2
	movcs	r3, r3
	str	r3, [fp, #-116]
	ldr	r2, [fp, #-116]
	ldr	r3, [fp, #-120]
	sub	r3, r2, r3
	str	r3, [fp, #-112]
	ldr	r2, [fp, #-112]
	ldr	r3, [fp, #-140]
	ldr	r3, [r3, #8]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidiv
	mov	r3, r0
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-192]
	ldr	r3, [r3, #104]
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-192]
	ldr	r3, [r3, #92]
	cmp	r3, #0
	beq	.L394
	ldr	r3, [fp, #-108]
	add	r3, r3, #1
	ldr	r2, [fp, #-192]
	ldr	r2, [r2, #4]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-192]
	bl	setup_temp_malloc
	b	.L395
.L394:
	ldr	r3, [fp, #-108]
	add	r3, r3, #1
	ldr	r2, [fp, #-192]
	ldr	r2, [r2, #4]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	add	r3, r3, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	add	r3, sp, #16
	add	r3, r3, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	mov	r0, r3
.L395:
	ldr	r3, [fp, #-192]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-108]
	lsl	r3, r3, #2
	mov	r2, r3
	bl	make_block_array
	str	r0, [fp, #-100]
	mov	r3, #0
	str	r3, [fp, #-180]
	b	.L396
.L398:
	ldr	r3, [fp, #-180]
	ldr	r2, [fp, #-208]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L397
	ldr	r3, [fp, #-180]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-196]
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-204]
	lsl	r3, r3, #2
	mov	r2, r3
	mov	r1, #0
	bl	memset
.L397:
	ldr	r3, [fp, #-180]
	add	r3, r3, #1
	str	r3, [fp, #-180]
.L396:
	ldr	r2, [fp, #-180]
	ldr	r3, [fp, #-200]
	cmp	r2, r3
	blt	.L398
	ldr	r3, [fp, #-136]
	cmp	r3, #2
	bne	.L399
	ldr	r3, [fp, #-200]
	cmp	r3, #1
	beq	.L399
	mov	r3, #0
	str	r3, [fp, #-176]
	b	.L400
.L403:
	ldr	r3, [fp, #-176]
	ldr	r2, [fp, #-208]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L458
	ldr	r3, [fp, #-176]
	add	r3, r3, #1
	str	r3, [fp, #-176]
.L400:
	ldr	r2, [fp, #-176]
	ldr	r3, [fp, #-200]
	cmp	r2, r3
	blt	.L403
	b	.L402
.L458:
	nop
.L402:
	ldr	r2, [fp, #-176]
	ldr	r3, [fp, #-200]
	cmp	r2, r3
	beq	.L459
	mov	r3, #0
	str	r3, [fp, #-172]
	b	.L406
.L437:
	mov	r3, #0
	str	r3, [fp, #-168]
	mov	r3, #0
	str	r3, [fp, #-164]
	ldr	r3, [fp, #-200]
	cmp	r3, #2
	bne	.L407
	b	.L408
.L421:
	ldr	r3, [fp, #-140]
	ldr	r2, [r3]
	ldr	r3, [fp, #-140]
	ldr	r3, [r3, #8]
	ldr	r1, [fp, #-168]
	mul	r3, r1, r3
	add	r3, r2, r3
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	and	r3, r3, #1
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-68]
	asr	r3, r3, #1
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-172]
	cmp	r3, #0
	bne	.L409
	ldr	r3, [fp, #-192]
	ldr	r1, [r3, #136]
	ldr	r3, [fp, #-140]
	ldrb	r3, [r3, #13]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #6
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r1, r3
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-192]
	ldr	r3, [r3, #1408]
	cmp	r3, #9
	bgt	.L410
	ldr	r0, [fp, #-192]
	bl	prep_huffman
.L410:
	ldr	r3, [fp, #-192]
	ldr	r3, [r3, #1404]
	lsl	r3, r3, #22
	lsr	r3, r3, #22
	str	r3, [fp, #-160]
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-160]
	add	r3, r3, #16
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #4
	ldrsh	r3, [r3]
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-160]
	cmp	r3, #0
	blt	.L411
	ldr	r3, [fp, #-64]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-160]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-192]
	ldr	r2, [r3, #1404]
	ldr	r3, [fp, #-60]
	lsr	r2, r2, r3
	ldr	r3, [fp, #-192]
	str	r2, [r3, #1404]
	ldr	r3, [fp, #-192]
	ldr	r2, [r3, #1408]
	ldr	r3, [fp, #-60]
	sub	r2, r2, r3
	ldr	r3, [fp, #-192]
	str	r2, [r3, #1408]
	ldr	r3, [fp, #-192]
	ldr	r3, [r3, #1408]
	cmp	r3, #0
	bge	.L412
	ldr	r3, [fp, #-192]
	mov	r2, #0
	str	r2, [r3, #1408]
	mvn	r3, #0
	str	r3, [fp, #-160]
	b	.L412
.L411:
	ldr	r1, [fp, #-64]
	ldr	r0, [fp, #-192]
	bl	codebook_decode_scalar_raw
	str	r0, [fp, #-160]
.L412:
	ldr	r3, [fp, #-64]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L413
	ldr	r3, [fp, #-64]
	ldr	r2, [r3, #2088]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-160]
.L413:
	ldr	r3, [fp, #-160]
	cmn	r3, #1
	beq	.L460
	ldr	r3, [fp, #-140]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #2
	add	r2, r2, r3
	ldr	r3, [fp, #-100]
	ldr	r1, [r3]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r2, [r2]
	str	r2, [r3]
.L409:
	mov	r3, #0
	str	r3, [fp, #-180]
	b	.L416
.L420:
	ldr	r3, [fp, #-140]
	ldr	r2, [r3]
	ldr	r3, [fp, #-140]
	ldr	r3, [r3, #8]
	ldr	r1, [fp, #-168]
	mul	r3, r1, r3
	add	r3, r2, r3
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-100]
	ldr	r2, [r3]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-180]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-140]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #4
	add	r2, r2, r3
	ldr	r3, [fp, #-172]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r3, [r3]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	blt	.L417
	ldr	r3, [fp, #-192]
	ldr	r1, [r3, #136]
	ldr	r2, [fp, #-48]
	mov	r3, r2
	lsl	r3, r3, #6
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r1, r3
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-140]
	ldr	r3, [r3, #8]
	str	r3, [sp, #12]
	ldr	r3, [fp, #-204]
	str	r3, [sp, #8]
	sub	r3, fp, #184
	str	r3, [sp, #4]
	sub	r3, fp, #188
	str	r3, [sp]
	ldr	r3, [fp, #-200]
	ldr	r2, [fp, #-196]
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-192]
	bl	codebook_decode_deinterleave_repeat
	mov	r3, r0
	cmp	r3, #0
	bne	.L418
	b	.L405
.L417:
	ldr	r3, [fp, #-140]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-56]
	add	r3, r2, r3
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	and	r3, r3, #1
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-56]
	asr	r3, r3, #1
	str	r3, [fp, #-184]
.L418:
	ldr	r3, [fp, #-180]
	add	r3, r3, #1
	str	r3, [fp, #-180]
	ldr	r3, [fp, #-168]
	add	r3, r3, #1
	str	r3, [fp, #-168]
.L416:
	ldr	r2, [fp, #-180]
	ldr	r3, [fp, #-128]
	cmp	r2, r3
	bge	.L419
	ldr	r2, [fp, #-168]
	ldr	r3, [fp, #-108]
	cmp	r2, r3
	blt	.L420
.L419:
	ldr	r3, [fp, #-164]
	add	r3, r3, #1
	str	r3, [fp, #-164]
.L408:
	ldr	r2, [fp, #-168]
	ldr	r3, [fp, #-108]
	cmp	r2, r3
	blt	.L421
	b	.L422
.L407:
	ldr	r3, [fp, #-200]
	cmp	r3, #2
	ble	.L422
	b	.L423
.L436:
	ldr	r3, [fp, #-140]
	ldr	r2, [r3]
	ldr	r3, [fp, #-140]
	ldr	r3, [r3, #8]
	ldr	r1, [fp, #-168]
	mul	r3, r1, r3
	add	r3, r2, r3
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-96]
	ldr	r1, [fp, #-200]
	mov	r0, r3
	bl	__aeabi_idivmod
	mov	r3, r1
	str	r3, [fp, #-188]
	ldr	r1, [fp, #-200]
	ldr	r0, [fp, #-96]
	bl	__aeabi_idiv
	mov	r3, r0
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-172]
	cmp	r3, #0
	bne	.L424
	ldr	r3, [fp, #-192]
	ldr	r1, [r3, #136]
	ldr	r3, [fp, #-140]
	ldrb	r3, [r3, #13]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #6
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r1, r3
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-192]
	ldr	r3, [r3, #1408]
	cmp	r3, #9
	bgt	.L425
	ldr	r0, [fp, #-192]
	bl	prep_huffman
.L425:
	ldr	r3, [fp, #-192]
	ldr	r3, [r3, #1404]
	lsl	r3, r3, #22
	lsr	r3, r3, #22
	str	r3, [fp, #-156]
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-156]
	add	r3, r3, #16
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #4
	ldrsh	r3, [r3]
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-156]
	cmp	r3, #0
	blt	.L426
	ldr	r3, [fp, #-92]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-156]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-192]
	ldr	r2, [r3, #1404]
	ldr	r3, [fp, #-88]
	lsr	r2, r2, r3
	ldr	r3, [fp, #-192]
	str	r2, [r3, #1404]
	ldr	r3, [fp, #-192]
	ldr	r2, [r3, #1408]
	ldr	r3, [fp, #-88]
	sub	r2, r2, r3
	ldr	r3, [fp, #-192]
	str	r2, [r3, #1408]
	ldr	r3, [fp, #-192]
	ldr	r3, [r3, #1408]
	cmp	r3, #0
	bge	.L427
	ldr	r3, [fp, #-192]
	mov	r2, #0
	str	r2, [r3, #1408]
	mvn	r3, #0
	str	r3, [fp, #-156]
	b	.L427
.L426:
	ldr	r1, [fp, #-92]
	ldr	r0, [fp, #-192]
	bl	codebook_decode_scalar_raw
	str	r0, [fp, #-156]
.L427:
	ldr	r3, [fp, #-92]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L428
	ldr	r3, [fp, #-92]
	ldr	r2, [r3, #2088]
	ldr	r3, [fp, #-156]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-156]
.L428:
	ldr	r3, [fp, #-156]
	cmn	r3, #1
	beq	.L461
	ldr	r3, [fp, #-140]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-156]
	lsl	r3, r3, #2
	add	r2, r2, r3
	ldr	r3, [fp, #-100]
	ldr	r1, [r3]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r2, [r2]
	str	r2, [r3]
.L424:
	mov	r3, #0
	str	r3, [fp, #-180]
	b	.L431
.L435:
	ldr	r3, [fp, #-140]
	ldr	r2, [r3]
	ldr	r3, [fp, #-140]
	ldr	r3, [r3, #8]
	ldr	r1, [fp, #-168]
	mul	r3, r1, r3
	add	r3, r2, r3
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-100]
	ldr	r2, [r3]
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-180]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-140]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-80]
	lsl	r3, r3, #4
	add	r2, r2, r3
	ldr	r3, [fp, #-172]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r3, [r3]
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	blt	.L432
	ldr	r3, [fp, #-192]
	ldr	r1, [r3, #136]
	ldr	r2, [fp, #-76]
	mov	r3, r2
	lsl	r3, r3, #6
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r1, r3
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-140]
	ldr	r3, [r3, #8]
	str	r3, [sp, #12]
	ldr	r3, [fp, #-204]
	str	r3, [sp, #8]
	sub	r3, fp, #184
	str	r3, [sp, #4]
	sub	r3, fp, #188
	str	r3, [sp]
	ldr	r3, [fp, #-200]
	ldr	r2, [fp, #-196]
	ldr	r1, [fp, #-72]
	ldr	r0, [fp, #-192]
	bl	codebook_decode_deinterleave_repeat
	mov	r3, r0
	cmp	r3, #0
	bne	.L433
	b	.L405
.L432:
	ldr	r3, [fp, #-140]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-84]
	add	r3, r2, r3
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-84]
	ldr	r1, [fp, #-200]
	mov	r0, r3
	bl	__aeabi_idivmod
	mov	r3, r1
	str	r3, [fp, #-188]
	ldr	r1, [fp, #-200]
	ldr	r0, [fp, #-84]
	bl	__aeabi_idiv
	mov	r3, r0
	str	r3, [fp, #-184]
.L433:
	ldr	r3, [fp, #-180]
	add	r3, r3, #1
	str	r3, [fp, #-180]
	ldr	r3, [fp, #-168]
	add	r3, r3, #1
	str	r3, [fp, #-168]
.L431:
	ldr	r2, [fp, #-180]
	ldr	r3, [fp, #-128]
	cmp	r2, r3
	bge	.L434
	ldr	r2, [fp, #-168]
	ldr	r3, [fp, #-108]
	cmp	r2, r3
	blt	.L435
.L434:
	ldr	r3, [fp, #-164]
	add	r3, r3, #1
	str	r3, [fp, #-164]
.L423:
	ldr	r2, [fp, #-168]
	ldr	r3, [fp, #-108]
	cmp	r2, r3
	blt	.L436
.L422:
	ldr	r3, [fp, #-172]
	add	r3, r3, #1
	str	r3, [fp, #-172]
.L406:
	ldr	r3, [fp, #-172]
	cmp	r3, #7
	ble	.L437
	b	.L405
.L399:
	mov	r3, #0
	str	r3, [fp, #-172]
	b	.L438
.L456:
	mov	r3, #0
	str	r3, [fp, #-152]
	mov	r3, #0
	str	r3, [fp, #-148]
	b	.L439
.L455:
	ldr	r3, [fp, #-172]
	cmp	r3, #0
	bne	.L440
	mov	r3, #0
	str	r3, [fp, #-176]
	b	.L441
.L448:
	ldr	r3, [fp, #-176]
	ldr	r2, [fp, #-208]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L442
	ldr	r3, [fp, #-192]
	ldr	r1, [r3, #136]
	ldr	r3, [fp, #-140]
	ldrb	r3, [r3, #13]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #6
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r1, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-192]
	ldr	r3, [r3, #1408]
	cmp	r3, #9
	bgt	.L443
	ldr	r0, [fp, #-192]
	bl	prep_huffman
.L443:
	ldr	r3, [fp, #-192]
	ldr	r3, [r3, #1404]
	lsl	r3, r3, #22
	lsr	r3, r3, #22
	str	r3, [fp, #-144]
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-144]
	add	r3, r3, #16
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #4
	ldrsh	r3, [r3]
	str	r3, [fp, #-144]
	ldr	r3, [fp, #-144]
	cmp	r3, #0
	blt	.L444
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-144]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-192]
	ldr	r2, [r3, #1404]
	ldr	r3, [fp, #-36]
	lsr	r2, r2, r3
	ldr	r3, [fp, #-192]
	str	r2, [r3, #1404]
	ldr	r3, [fp, #-192]
	ldr	r2, [r3, #1408]
	ldr	r3, [fp, #-36]
	sub	r2, r2, r3
	ldr	r3, [fp, #-192]
	str	r2, [r3, #1408]
	ldr	r3, [fp, #-192]
	ldr	r3, [r3, #1408]
	cmp	r3, #0
	bge	.L445
	ldr	r3, [fp, #-192]
	mov	r2, #0
	str	r2, [r3, #1408]
	mvn	r3, #0
	str	r3, [fp, #-144]
	b	.L445
.L444:
	ldr	r1, [fp, #-40]
	ldr	r0, [fp, #-192]
	bl	codebook_decode_scalar_raw
	str	r0, [fp, #-144]
.L445:
	ldr	r3, [fp, #-40]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L446
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #2088]
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-144]
.L446:
	ldr	r3, [fp, #-144]
	cmn	r3, #1
	beq	.L462
	ldr	r3, [fp, #-140]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-144]
	lsl	r3, r3, #2
	add	r2, r2, r3
	ldr	r3, [fp, #-176]
	lsl	r3, r3, #2
	ldr	r1, [fp, #-100]
	add	r3, r1, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r2, [r2]
	str	r2, [r3]
.L442:
	ldr	r3, [fp, #-176]
	add	r3, r3, #1
	str	r3, [fp, #-176]
.L441:
	ldr	r2, [fp, #-176]
	ldr	r3, [fp, #-200]
	cmp	r2, r3
	blt	.L448
.L440:
	mov	r3, #0
	str	r3, [fp, #-180]
	b	.L449
.L454:
	mov	r3, #0
	str	r3, [fp, #-176]
	b	.L450
.L452:
	ldr	r3, [fp, #-176]
	ldr	r2, [fp, #-208]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L451
	ldr	r3, [fp, #-176]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-100]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-148]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-180]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-140]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #4
	add	r2, r2, r3
	ldr	r3, [fp, #-172]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	blt	.L451
	ldr	r3, [fp, #-176]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-196]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-140]
	ldr	r2, [r3]
	ldr	r3, [fp, #-140]
	ldr	r3, [r3, #8]
	ldr	r1, [fp, #-152]
	mul	r3, r1, r3
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-140]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-192]
	ldr	r1, [r3, #136]
	ldr	r2, [fp, #-28]
	mov	r3, r2
	lsl	r3, r3, #6
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r1, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-136]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-16]
	str	r3, [sp]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-192]
	bl	residue_decode
	mov	r3, r0
	cmp	r3, #0
	beq	.L463
.L451:
	ldr	r3, [fp, #-176]
	add	r3, r3, #1
	str	r3, [fp, #-176]
.L450:
	ldr	r2, [fp, #-176]
	ldr	r3, [fp, #-200]
	cmp	r2, r3
	blt	.L452
	ldr	r3, [fp, #-180]
	add	r3, r3, #1
	str	r3, [fp, #-180]
	ldr	r3, [fp, #-152]
	add	r3, r3, #1
	str	r3, [fp, #-152]
.L449:
	ldr	r2, [fp, #-180]
	ldr	r3, [fp, #-128]
	cmp	r2, r3
	bge	.L453
	ldr	r2, [fp, #-152]
	ldr	r3, [fp, #-108]
	cmp	r2, r3
	blt	.L454
.L453:
	ldr	r3, [fp, #-148]
	add	r3, r3, #1
	str	r3, [fp, #-148]
.L439:
	ldr	r2, [fp, #-152]
	ldr	r3, [fp, #-108]
	cmp	r2, r3
	blt	.L455
	ldr	r3, [fp, #-172]
	add	r3, r3, #1
	str	r3, [fp, #-172]
.L438:
	ldr	r3, [fp, #-172]
	cmp	r3, #7
	ble	.L456
	b	.L405
.L459:
	nop
	b	.L405
.L460:
	nop
	b	.L405
.L461:
	nop
	b	.L405
.L462:
	nop
	b	.L405
.L463:
	nop
.L405:
	ldr	r3, [fp, #-192]
	ldr	r2, [fp, #-104]
	str	r2, [r3, #104]
	nop
	ldr	r3, .L464
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L457
	bl	__stack_chk_fail
.L457:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L465:
	.align	2
.L464:
	.word	.LC15
	.size	decode_residue, .-decode_residue
	.section	.rodata
	.align	2
.LC16:
	.ascii	"(n & 3) == 0\000"
	.global	__aeabi_fsub
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	imdct_step3_iter0_loop, %function
imdct_step3_iter0_loop:
	@ args = 4, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	str	r2, [fp, #-48]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-40]
	and	r3, r3, #3
	cmp	r3, #0
	beq	.L467
	ldr	r3, .L470
	ldr	r2, .L470+4
	ldr	r1, .L470+8
	ldr	r0, .L470+12
	bl	__assert_fail
.L467:
	ldr	r3, [fp, #-40]
	asr	r3, r3, #2
	str	r3, [fp, #-24]
	b	.L468
.L469:
	ldr	r3, [fp, #-32]
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-20]	@ float
	ldr	r3, [fp, #-32]
	sub	r3, r3, #4
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-28]
	sub	r3, r3, #4
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-16]	@ float
	ldr	r3, [fp, #-32]
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-32]
	sub	r3, r3, #4
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-28]
	sub	r3, r3, #4
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-32]
	sub	r4, r3, #4
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #4]
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-20]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r4, r3
	ldr	r3, [fp, #4]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-16]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-28]
	str	r2, [r3]	@ float
	ldr	r3, [fp, #4]
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-16]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r5, r3
	ldr	r3, [fp, #4]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-20]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-28]
	sub	r4, r3, #4
	mov	r1, r2
	mov	r0, r5
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #4]
	add	r3, r3, #32
	str	r3, [fp, #4]
	ldr	r3, [fp, #-32]
	sub	r3, r3, #8
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-28]
	sub	r3, r3, #8
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-20]	@ float
	ldr	r3, [fp, #-32]
	sub	r3, r3, #12
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-28]
	sub	r3, r3, #12
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-16]	@ float
	ldr	r3, [fp, #-32]
	sub	r3, r3, #8
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-28]
	sub	r3, r3, #8
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-32]
	sub	r4, r3, #8
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-32]
	sub	r3, r3, #12
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-28]
	sub	r3, r3, #12
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-32]
	sub	r4, r3, #12
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #4]
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-20]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r5, r3
	ldr	r3, [fp, #4]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-16]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-28]
	sub	r4, r3, #8
	mov	r1, r2
	mov	r0, r5
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #4]
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-16]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r5, r3
	ldr	r3, [fp, #4]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-20]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-28]
	sub	r4, r3, #12
	mov	r1, r2
	mov	r0, r5
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #4]
	add	r3, r3, #32
	str	r3, [fp, #4]
	ldr	r3, [fp, #-32]
	sub	r3, r3, #16
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-28]
	sub	r3, r3, #16
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-20]	@ float
	ldr	r3, [fp, #-32]
	sub	r3, r3, #20
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-28]
	sub	r3, r3, #20
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-16]	@ float
	ldr	r3, [fp, #-32]
	sub	r3, r3, #16
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-28]
	sub	r3, r3, #16
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-32]
	sub	r4, r3, #16
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-32]
	sub	r3, r3, #20
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-28]
	sub	r3, r3, #20
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-32]
	sub	r4, r3, #20
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #4]
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-20]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r5, r3
	ldr	r3, [fp, #4]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-16]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-28]
	sub	r4, r3, #16
	mov	r1, r2
	mov	r0, r5
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #4]
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-16]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r5, r3
	ldr	r3, [fp, #4]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-20]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-28]
	sub	r4, r3, #20
	mov	r1, r2
	mov	r0, r5
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #4]
	add	r3, r3, #32
	str	r3, [fp, #4]
	ldr	r3, [fp, #-32]
	sub	r3, r3, #24
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-28]
	sub	r3, r3, #24
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-20]	@ float
	ldr	r3, [fp, #-32]
	sub	r3, r3, #28
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-28]
	sub	r3, r3, #28
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-16]	@ float
	ldr	r3, [fp, #-32]
	sub	r3, r3, #24
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-28]
	sub	r3, r3, #24
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-32]
	sub	r4, r3, #24
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-32]
	sub	r3, r3, #28
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-28]
	sub	r3, r3, #28
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-32]
	sub	r4, r3, #28
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #4]
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-20]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r5, r3
	ldr	r3, [fp, #4]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-16]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-28]
	sub	r4, r3, #24
	mov	r1, r2
	mov	r0, r5
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #4]
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-16]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r5, r3
	ldr	r3, [fp, #4]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-20]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-28]
	sub	r4, r3, #28
	mov	r1, r2
	mov	r0, r5
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #4]
	add	r3, r3, #32
	str	r3, [fp, #4]
	ldr	r3, [fp, #-32]
	sub	r3, r3, #32
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-28]
	sub	r3, r3, #32
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-24]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
.L468:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bgt	.L469
	nop
	nop
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L471:
	.align	2
.L470:
	.word	__PRETTY_FUNCTION__.7219
	.word	2399
	.word	.LC0
	.word	.LC16
	.size	imdct_step3_iter0_loop, .-imdct_step3_iter0_loop
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	imdct_step3_inner_r_loop, %function
imdct_step3_inner_r_loop:
	@ args = 8, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	str	r2, [fp, #-48]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-40]
	asr	r3, r3, #2
	str	r3, [fp, #-32]
	b	.L473
.L474:
	ldr	r3, [fp, #-28]
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-20]	@ float
	ldr	r3, [fp, #-28]
	sub	r3, r3, #4
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-24]
	sub	r3, r3, #4
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-16]	@ float
	ldr	r3, [fp, #-28]
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-28]
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-28]
	sub	r3, r3, #4
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-24]
	sub	r3, r3, #4
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-28]
	sub	r4, r3, #4
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #4]
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-20]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r4, r3
	ldr	r3, [fp, #4]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-16]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3]	@ float
	ldr	r3, [fp, #4]
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-16]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r5, r3
	ldr	r3, [fp, #4]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-20]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-24]
	sub	r4, r3, #4
	mov	r1, r2
	mov	r0, r5
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #8]
	lsl	r3, r3, #2
	ldr	r2, [fp, #4]
	add	r3, r2, r3
	str	r3, [fp, #4]
	ldr	r3, [fp, #-28]
	sub	r3, r3, #8
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-24]
	sub	r3, r3, #8
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-20]	@ float
	ldr	r3, [fp, #-28]
	sub	r3, r3, #12
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-24]
	sub	r3, r3, #12
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-16]	@ float
	ldr	r3, [fp, #-28]
	sub	r3, r3, #8
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-24]
	sub	r3, r3, #8
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-28]
	sub	r4, r3, #8
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-28]
	sub	r3, r3, #12
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-24]
	sub	r3, r3, #12
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-28]
	sub	r4, r3, #12
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #4]
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-20]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r5, r3
	ldr	r3, [fp, #4]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-16]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-24]
	sub	r4, r3, #8
	mov	r1, r2
	mov	r0, r5
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #4]
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-16]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r5, r3
	ldr	r3, [fp, #4]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-20]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-24]
	sub	r4, r3, #12
	mov	r1, r2
	mov	r0, r5
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #8]
	lsl	r3, r3, #2
	ldr	r2, [fp, #4]
	add	r3, r2, r3
	str	r3, [fp, #4]
	ldr	r3, [fp, #-28]
	sub	r3, r3, #16
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-24]
	sub	r3, r3, #16
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-20]	@ float
	ldr	r3, [fp, #-28]
	sub	r3, r3, #20
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-24]
	sub	r3, r3, #20
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-16]	@ float
	ldr	r3, [fp, #-28]
	sub	r3, r3, #16
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-24]
	sub	r3, r3, #16
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-28]
	sub	r4, r3, #16
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-28]
	sub	r3, r3, #20
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-24]
	sub	r3, r3, #20
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-28]
	sub	r4, r3, #20
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #4]
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-20]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r5, r3
	ldr	r3, [fp, #4]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-16]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-24]
	sub	r4, r3, #16
	mov	r1, r2
	mov	r0, r5
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #4]
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-16]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r5, r3
	ldr	r3, [fp, #4]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-20]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-24]
	sub	r4, r3, #20
	mov	r1, r2
	mov	r0, r5
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #8]
	lsl	r3, r3, #2
	ldr	r2, [fp, #4]
	add	r3, r2, r3
	str	r3, [fp, #4]
	ldr	r3, [fp, #-28]
	sub	r3, r3, #24
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-24]
	sub	r3, r3, #24
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-20]	@ float
	ldr	r3, [fp, #-28]
	sub	r3, r3, #28
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-24]
	sub	r3, r3, #28
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-16]	@ float
	ldr	r3, [fp, #-28]
	sub	r3, r3, #24
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-24]
	sub	r3, r3, #24
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-28]
	sub	r4, r3, #24
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-28]
	sub	r3, r3, #28
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-24]
	sub	r3, r3, #28
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-28]
	sub	r4, r3, #28
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #4]
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-20]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r5, r3
	ldr	r3, [fp, #4]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-16]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-24]
	sub	r4, r3, #24
	mov	r1, r2
	mov	r0, r5
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #4]
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-16]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r5, r3
	ldr	r3, [fp, #4]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-20]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-24]
	sub	r4, r3, #28
	mov	r1, r2
	mov	r0, r5
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-28]
	sub	r3, r3, #32
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-24]
	sub	r3, r3, #32
	str	r3, [fp, #-24]
	ldr	r3, [fp, #8]
	lsl	r3, r3, #2
	ldr	r2, [fp, #4]
	add	r3, r2, r3
	str	r3, [fp, #4]
	ldr	r3, [fp, #-32]
	sub	r3, r3, #1
	str	r3, [fp, #-32]
.L473:
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bgt	.L474
	nop
	nop
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
	.size	imdct_step3_inner_r_loop, .-imdct_step3_inner_r_loop
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	imdct_step3_inner_s_loop, %function
imdct_step3_inner_s_loop:
	@ args = 12, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #72
	str	r0, [fp, #-72]
	str	r1, [fp, #-76]
	str	r2, [fp, #-80]
	str	r3, [fp, #-84]
	ldr	r3, [fp, #4]
	ldr	r3, [r3]	@ float
	str	r3, [fp, #-52]	@ float
	ldr	r3, [fp, #4]
	ldr	r3, [r3, #4]	@ float
	str	r3, [fp, #-48]	@ float
	ldr	r3, [fp, #8]
	lsl	r3, r3, #2
	ldr	r2, [fp, #4]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	str	r3, [fp, #-44]	@ float
	ldr	r3, [fp, #8]
	add	r3, r3, #1
	lsl	r3, r3, #2
	ldr	r2, [fp, #4]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	str	r3, [fp, #-40]	@ float
	ldr	r3, [fp, #8]
	lsl	r3, r3, #3
	ldr	r2, [fp, #4]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	str	r3, [fp, #-36]	@ float
	ldr	r3, [fp, #8]
	lsl	r3, r3, #1
	add	r3, r3, #1
	lsl	r3, r3, #2
	ldr	r2, [fp, #4]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	str	r3, [fp, #-32]	@ float
	ldr	r2, [fp, #8]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #4]
	add	r3, r3, r2
	ldr	r3, [r3]	@ float
	str	r3, [fp, #-28]	@ float
	ldr	r2, [fp, #8]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r3, #1
	lsl	r3, r3, #2
	ldr	r2, [fp, #4]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	str	r3, [fp, #-24]	@ float
	ldr	r3, [fp, #-80]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-76]
	add	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-84]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-72]
	str	r3, [fp, #-64]
	b	.L476
.L477:
	ldr	r3, [fp, #-60]
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-56]
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-20]	@ float
	ldr	r3, [fp, #-60]
	sub	r3, r3, #4
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-56]
	sub	r3, r3, #4
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-16]	@ float
	ldr	r3, [fp, #-60]
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-56]
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-60]
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-60]
	sub	r3, r3, #4
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-56]
	sub	r3, r3, #4
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-60]
	sub	r4, r3, #4
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r1, [fp, #-52]	@ float
	ldr	r0, [fp, #-20]	@ float
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r4, r3
	ldr	r1, [fp, #-48]	@ float
	ldr	r0, [fp, #-16]	@ float
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-56]
	str	r2, [r3]	@ float
	ldr	r1, [fp, #-52]	@ float
	ldr	r0, [fp, #-16]	@ float
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r5, r3
	ldr	r1, [fp, #-48]	@ float
	ldr	r0, [fp, #-20]	@ float
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-56]
	sub	r4, r3, #4
	mov	r1, r2
	mov	r0, r5
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-60]
	sub	r3, r3, #8
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-56]
	sub	r3, r3, #8
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-20]	@ float
	ldr	r3, [fp, #-60]
	sub	r3, r3, #12
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-56]
	sub	r3, r3, #12
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-16]	@ float
	ldr	r3, [fp, #-60]
	sub	r3, r3, #8
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-56]
	sub	r3, r3, #8
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-60]
	sub	r4, r3, #8
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-60]
	sub	r3, r3, #12
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-56]
	sub	r3, r3, #12
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-60]
	sub	r4, r3, #12
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r1, [fp, #-44]	@ float
	ldr	r0, [fp, #-20]	@ float
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r5, r3
	ldr	r1, [fp, #-40]	@ float
	ldr	r0, [fp, #-16]	@ float
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-56]
	sub	r4, r3, #8
	mov	r1, r2
	mov	r0, r5
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r1, [fp, #-44]	@ float
	ldr	r0, [fp, #-16]	@ float
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r5, r3
	ldr	r1, [fp, #-40]	@ float
	ldr	r0, [fp, #-20]	@ float
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-56]
	sub	r4, r3, #12
	mov	r1, r2
	mov	r0, r5
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-60]
	sub	r3, r3, #16
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-56]
	sub	r3, r3, #16
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-20]	@ float
	ldr	r3, [fp, #-60]
	sub	r3, r3, #20
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-56]
	sub	r3, r3, #20
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-16]	@ float
	ldr	r3, [fp, #-60]
	sub	r3, r3, #16
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-56]
	sub	r3, r3, #16
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-60]
	sub	r4, r3, #16
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-60]
	sub	r3, r3, #20
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-56]
	sub	r3, r3, #20
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-60]
	sub	r4, r3, #20
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r1, [fp, #-36]	@ float
	ldr	r0, [fp, #-20]	@ float
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r5, r3
	ldr	r1, [fp, #-32]	@ float
	ldr	r0, [fp, #-16]	@ float
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-56]
	sub	r4, r3, #16
	mov	r1, r2
	mov	r0, r5
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r1, [fp, #-36]	@ float
	ldr	r0, [fp, #-16]	@ float
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r5, r3
	ldr	r1, [fp, #-32]	@ float
	ldr	r0, [fp, #-20]	@ float
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-56]
	sub	r4, r3, #20
	mov	r1, r2
	mov	r0, r5
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-60]
	sub	r3, r3, #24
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-56]
	sub	r3, r3, #24
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-20]	@ float
	ldr	r3, [fp, #-60]
	sub	r3, r3, #28
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-56]
	sub	r3, r3, #28
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-16]	@ float
	ldr	r3, [fp, #-60]
	sub	r3, r3, #24
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-56]
	sub	r3, r3, #24
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-60]
	sub	r4, r3, #24
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-60]
	sub	r3, r3, #28
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-56]
	sub	r3, r3, #28
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-60]
	sub	r4, r3, #28
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r1, [fp, #-28]	@ float
	ldr	r0, [fp, #-20]	@ float
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r5, r3
	ldr	r1, [fp, #-24]	@ float
	ldr	r0, [fp, #-16]	@ float
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-56]
	sub	r4, r3, #24
	mov	r1, r2
	mov	r0, r5
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r1, [fp, #-28]	@ float
	ldr	r0, [fp, #-16]	@ float
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r5, r3
	ldr	r1, [fp, #-24]	@ float
	ldr	r0, [fp, #-20]	@ float
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-56]
	sub	r4, r3, #28
	mov	r1, r2
	mov	r0, r5
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #12]
	lsl	r3, r3, #2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r3, [fp, #12]
	lsl	r3, r3, #2
	rsb	r3, r3, #0
	ldr	r2, [fp, #-56]
	add	r3, r2, r3
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-64]
	sub	r3, r3, #1
	str	r3, [fp, #-64]
.L476:
	ldr	r3, [fp, #-64]
	cmp	r3, #0
	bgt	.L477
	nop
	nop
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
	.size	imdct_step3_inner_s_loop, .-imdct_step3_inner_s_loop
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	iter_54, %function
iter_54:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #44
	str	r0, [fp, #-48]
	ldr	r3, [fp, #-48]
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-48]
	sub	r3, r3, #16
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-44]	@ float
	ldr	r3, [fp, #-48]
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-48]
	sub	r3, r3, #16
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-40]	@ float
	ldr	r3, [fp, #-48]
	sub	r3, r3, #8
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-48]
	sub	r3, r3, #24
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-36]	@ float
	ldr	r3, [fp, #-48]
	sub	r3, r3, #8
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-48]
	sub	r3, r3, #24
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-32]	@ float
	ldr	r1, [fp, #-36]	@ float
	ldr	r0, [fp, #-40]	@ float
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-48]
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-48]
	sub	r4, r3, #8
	ldr	r1, [fp, #-36]	@ float
	ldr	r0, [fp, #-40]	@ float
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-48]
	sub	r3, r3, #12
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-48]
	sub	r3, r3, #28
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-28]	@ float
	ldr	r3, [fp, #-48]
	sub	r4, r3, #16
	ldr	r1, [fp, #-28]	@ float
	ldr	r0, [fp, #-44]	@ float
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-48]
	sub	r4, r3, #24
	ldr	r1, [fp, #-28]	@ float
	ldr	r0, [fp, #-44]	@ float
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-48]
	sub	r3, r3, #4
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-48]
	sub	r3, r3, #20
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-24]	@ float
	ldr	r3, [fp, #-48]
	sub	r3, r3, #4
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-48]
	sub	r3, r3, #20
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-20]	@ float
	ldr	r3, [fp, #-48]
	sub	r3, r3, #12
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-48]
	sub	r3, r3, #28
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-16]	@ float
	ldr	r3, [fp, #-48]
	sub	r4, r3, #4
	ldr	r1, [fp, #-16]	@ float
	ldr	r0, [fp, #-20]	@ float
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-48]
	sub	r4, r3, #12
	ldr	r1, [fp, #-16]	@ float
	ldr	r0, [fp, #-20]	@ float
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-48]
	sub	r4, r3, #20
	ldr	r1, [fp, #-32]	@ float
	ldr	r0, [fp, #-24]	@ float
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-48]
	sub	r4, r3, #28
	ldr	r1, [fp, #-32]	@ float
	ldr	r0, [fp, #-24]	@ float
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	iter_54, .-iter_54
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	imdct_step3_inner_s_loop_ld654, %function
imdct_step3_inner_s_loop_ld654:
	@ args = 4, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #44
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	str	r2, [fp, #-48]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #4]
	asr	r3, r3, #3
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	str	r3, [fp, #-28]	@ float
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #6
	rsb	r3, r3, #0
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	b	.L480
.L481:
	ldr	r3, [fp, #-36]
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #32
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-20]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #4
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #36
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-16]	@ float
	ldr	r3, [fp, #-36]
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #32
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-36]
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #4
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #36
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-36]
	sub	r4, r3, #4
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #32
	ldr	r2, [fp, #-20]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #36
	ldr	r2, [fp, #-16]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #8
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #40
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-20]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #12
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #44
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-16]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #8
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #40
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-36]
	sub	r4, r3, #8
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #12
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #44
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-36]
	sub	r4, r3, #12
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r1, [fp, #-16]	@ float
	ldr	r0, [fp, #-20]	@ float
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-36]
	sub	r4, r3, #40
	ldr	r1, [fp, #-28]	@ float
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r1, [fp, #-20]	@ float
	ldr	r0, [fp, #-16]	@ float
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-36]
	sub	r4, r3, #44
	ldr	r1, [fp, #-28]	@ float
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #48
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #16
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-20]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #20
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #52
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-16]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #16
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #48
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-36]
	sub	r4, r3, #16
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #20
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #52
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-36]
	sub	r4, r3, #20
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #48
	ldr	r2, [fp, #-16]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #52
	ldr	r2, [fp, #-20]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #56
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #24
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-20]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #28
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #60
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-16]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #24
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #56
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-36]
	sub	r4, r3, #24
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #28
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-36]
	sub	r3, r3, #60
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-36]
	sub	r4, r3, #28
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r1, [fp, #-16]	@ float
	ldr	r0, [fp, #-20]	@ float
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-36]
	sub	r4, r3, #56
	ldr	r1, [fp, #-28]	@ float
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r1, [fp, #-16]	@ float
	ldr	r0, [fp, #-20]	@ float
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-36]
	sub	r4, r3, #60
	ldr	r1, [fp, #-28]	@ float
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r0, [fp, #-36]
	bl	iter_54
	ldr	r3, [fp, #-36]
	sub	r3, r3, #32
	mov	r0, r3
	bl	iter_54
	ldr	r3, [fp, #-36]
	sub	r3, r3, #64
	str	r3, [fp, #-36]
.L480:
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	bhi	.L481
	nop
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	imdct_step3_inner_s_loop_ld654, .-imdct_step3_inner_s_loop_ld654
	.section	.rodata
	.align	2
.LC17:
	.ascii	"v == buf2\000"
	.align	2
.LC18:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	inverse_mdct, %function
inverse_mdct:
	@ args = 0, pretend = 0, frame = 248
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #264
	str	r0, [fp, #-248]
	str	r1, [fp, #-252]
	str	r2, [fp, #-256]
	str	r3, [fp, #-260]
	ldr	r3, .L507+16
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-252]
	asr	r3, r3, #1
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-252]
	asr	r3, r3, #2
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-252]
	asr	r3, r3, #3
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-256]
	ldr	r3, [r3, #104]
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-256]
	ldr	r3, [r3, #92]
	cmp	r3, #0
	beq	.L483
	ldr	r3, [fp, #-140]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-256]
	bl	setup_temp_malloc
	mov	r3, r0
	b	.L484
.L483:
	ldr	r3, [fp, #-140]
	lsl	r3, r3, #2
	add	r3, r3, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	add	r3, sp, #16
	add	r3, r3, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
.L484:
	str	r3, [fp, #-124]
	mov	r3, #0
	str	r3, [fp, #-120]
	mov	r3, #0
	str	r3, [fp, #-116]
	ldr	r2, [fp, #-256]
	ldr	r3, [fp, #-260]
	add	r3, r3, #268
	add	r3, r3, #2
	ldr	r3, [r2, r3, lsl #2]
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-140]
	sub	r3, r3, #-1073741822
	lsl	r3, r3, #2
	ldr	r2, [fp, #-124]
	add	r3, r2, r3
	str	r3, [fp, #-236]
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-228]
	ldr	r3, [fp, #-248]
	str	r3, [fp, #-232]
	ldr	r3, [fp, #-140]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-248]
	add	r3, r2, r3
	str	r3, [fp, #-108]
	b	.L485
.L486:
	ldr	r3, [fp, #-232]
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-228]
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r5, r3
	ldr	r3, [fp, #-232]
	add	r3, r3, #8
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-228]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-236]
	add	r4, r3, #4
	mov	r1, r2
	mov	r0, r5
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-232]
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-228]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r4, r3
	ldr	r3, [fp, #-232]
	add	r3, r3, #8
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-228]
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-236]
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-236]
	sub	r3, r3, #8
	str	r3, [fp, #-236]
	ldr	r3, [fp, #-228]
	add	r3, r3, #8
	str	r3, [fp, #-228]
	ldr	r3, [fp, #-232]
	add	r3, r3, #16
	str	r3, [fp, #-232]
.L485:
	ldr	r2, [fp, #-232]
	ldr	r3, [fp, #-108]
	cmp	r2, r3
	bne	.L486
	ldr	r3, [fp, #-140]
	sub	r3, r3, #-1073741821
	lsl	r3, r3, #2
	ldr	r2, [fp, #-248]
	add	r3, r2, r3
	str	r3, [fp, #-232]
	b	.L487
.L488:
	ldr	r3, [fp, #-232]
	add	r3, r3, #8
	ldr	r3, [r3]	@ float
	eor	r2, r3, #-2147483648
	ldr	r3, [fp, #-228]
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r5, r3
	ldr	r3, [fp, #-232]
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-228]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-236]
	add	r4, r3, #4
	mov	r1, r2
	mov	r0, r5
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-232]
	add	r3, r3, #8
	ldr	r3, [r3]	@ float
	eor	r2, r3, #-2147483648
	ldr	r3, [fp, #-228]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r4, r3
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]	@ float
	eor	r2, r3, #-2147483648
	ldr	r3, [fp, #-228]
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-236]
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-236]
	sub	r3, r3, #8
	str	r3, [fp, #-236]
	ldr	r3, [fp, #-228]
	add	r3, r3, #8
	str	r3, [fp, #-228]
	ldr	r3, [fp, #-232]
	sub	r3, r3, #16
	str	r3, [fp, #-232]
.L487:
	ldr	r2, [fp, #-236]
	ldr	r3, [fp, #-124]
	cmp	r2, r3
	bcs	.L488
	ldr	r3, [fp, #-248]
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-124]
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-140]
	sub	r3, r3, #-1073741816
	lsl	r3, r3, #2
	ldr	r2, [fp, #-112]
	add	r3, r2, r3
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-116]
	add	r3, r2, r3
	str	r3, [fp, #-212]
	ldr	r3, [fp, #-116]
	str	r3, [fp, #-208]
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-120]
	add	r3, r2, r3
	str	r3, [fp, #-220]
	ldr	r3, [fp, #-120]
	str	r3, [fp, #-216]
	b	.L489
.L490:
	ldr	r3, [fp, #-212]
	add	r3, r3, #4
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-208]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-24]	@ float
	ldr	r3, [fp, #-212]
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-208]
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-20]	@ float
	ldr	r3, [fp, #-212]
	add	r3, r3, #4
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-208]
	add	r3, r3, #4
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-220]
	add	r4, r3, #4
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-212]
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-208]
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-220]
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-224]
	add	r3, r3, #16
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-24]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r5, r3
	ldr	r3, [fp, #-224]
	add	r3, r3, #20
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-20]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-216]
	add	r4, r3, #4
	mov	r1, r2
	mov	r0, r5
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-224]
	add	r3, r3, #16
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-20]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r4, r3
	ldr	r3, [fp, #-224]
	add	r3, r3, #20
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-24]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-216]
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-212]
	add	r3, r3, #12
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-208]
	add	r3, r3, #12
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-24]	@ float
	ldr	r3, [fp, #-212]
	add	r3, r3, #8
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-208]
	add	r3, r3, #8
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-20]	@ float
	ldr	r3, [fp, #-212]
	add	r3, r3, #12
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-208]
	add	r3, r3, #12
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-220]
	add	r4, r3, #12
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-212]
	add	r3, r3, #8
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-208]
	add	r3, r3, #8
	ldr	r1, [r3]	@ float
	ldr	r3, [fp, #-220]
	add	r4, r3, #8
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-224]
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-24]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r5, r3
	ldr	r3, [fp, #-224]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-20]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-216]
	add	r4, r3, #12
	mov	r1, r2
	mov	r0, r5
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-224]
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-20]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r5, r3
	ldr	r3, [fp, #-224]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-24]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-216]
	add	r4, r3, #8
	mov	r1, r2
	mov	r0, r5
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-224]
	sub	r3, r3, #32
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-220]
	add	r3, r3, #16
	str	r3, [fp, #-220]
	ldr	r3, [fp, #-216]
	add	r3, r3, #16
	str	r3, [fp, #-216]
	ldr	r3, [fp, #-212]
	add	r3, r3, #16
	str	r3, [fp, #-212]
	ldr	r3, [fp, #-208]
	add	r3, r3, #16
	str	r3, [fp, #-208]
.L489:
	ldr	r2, [fp, #-224]
	ldr	r3, [fp, #-112]
	cmp	r2, r3
	bcs	.L490
	ldr	r0, [fp, #-252]
	bl	ilog
	mov	r3, r0
	sub	r3, r3, #1
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-252]
	asr	r0, r3, #4
	ldr	r3, [fp, #-140]
	sub	r2, r3, #1
	ldr	r3, [fp, #-252]
	asr	r3, r3, #3
	rsb	r1, r3, #0
	ldr	r3, [fp, #-112]
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, [fp, #-120]
	bl	imdct_step3_iter0_loop
	ldr	r3, [fp, #-252]
	asr	r0, r3, #4
	ldr	r3, [fp, #-140]
	sub	r2, r3, #1
	ldr	r3, [fp, #-136]
	sub	r2, r2, r3
	ldr	r3, [fp, #-252]
	asr	r3, r3, #3
	rsb	r1, r3, #0
	ldr	r3, [fp, #-112]
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, [fp, #-120]
	bl	imdct_step3_iter0_loop
	ldr	r3, [fp, #-252]
	asr	r0, r3, #5
	ldr	r3, [fp, #-140]
	sub	r2, r3, #1
	ldr	r3, [fp, #-252]
	asr	r3, r3, #4
	rsb	r1, r3, #0
	mov	r3, #16
	str	r3, [sp, #4]
	ldr	r3, [fp, #-112]
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, [fp, #-120]
	bl	imdct_step3_inner_r_loop
	ldr	r3, [fp, #-252]
	asr	r0, r3, #5
	ldr	r3, [fp, #-140]
	sub	r2, r3, #1
	ldr	r3, [fp, #-132]
	sub	r2, r2, r3
	ldr	r3, [fp, #-252]
	asr	r3, r3, #4
	rsb	r1, r3, #0
	mov	r3, #16
	str	r3, [sp, #4]
	ldr	r3, [fp, #-112]
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, [fp, #-120]
	bl	imdct_step3_inner_r_loop
	ldr	r3, [fp, #-252]
	asr	r0, r3, #5
	ldr	r3, [fp, #-140]
	sub	r2, r3, #1
	ldr	r3, [fp, #-132]
	lsl	r3, r3, #1
	sub	r2, r2, r3
	ldr	r3, [fp, #-252]
	asr	r3, r3, #4
	rsb	r1, r3, #0
	mov	r3, #16
	str	r3, [sp, #4]
	ldr	r3, [fp, #-112]
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, [fp, #-120]
	bl	imdct_step3_inner_r_loop
	ldr	r3, [fp, #-252]
	asr	r0, r3, #5
	ldr	r3, [fp, #-140]
	sub	r2, r3, #1
	ldr	r3, [fp, #-132]
	mov	r1, r3
	lsl	r3, r3, #2
	sub	r3, r1, r3
	add	r2, r2, r3
	ldr	r3, [fp, #-252]
	asr	r3, r3, #4
	rsb	r1, r3, #0
	mov	r3, #16
	str	r3, [sp, #4]
	ldr	r3, [fp, #-112]
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, [fp, #-120]
	bl	imdct_step3_inner_r_loop
	mov	r3, #2
	str	r3, [fp, #-240]
	b	.L491
.L494:
	ldr	r3, [fp, #-240]
	add	r3, r3, #2
	ldr	r2, [fp, #-252]
	asr	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	asr	r3, r3, #1
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-240]
	add	r3, r3, #1
	mov	r2, #1
	lsl	r3, r2, r3
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-204]
	b	.L492
.L493:
	ldr	r3, [fp, #-240]
	add	r3, r3, #4
	ldr	r2, [fp, #-252]
	asr	r0, r2, r3
	ldr	r3, [fp, #-140]
	sub	r2, r3, #1
	ldr	r3, [fp, #-36]
	ldr	r1, [fp, #-204]
	mul	r3, r1, r3
	sub	r2, r2, r3
	ldr	r3, [fp, #-32]
	rsb	r1, r3, #0
	ldr	r3, [fp, #-240]
	add	r3, r3, #3
	mov	ip, #1
	lsl	r3, ip, r3
	str	r3, [sp, #4]
	ldr	r3, [fp, #-112]
	str	r3, [sp]
	mov	r3, r1
	ldr	r1, [fp, #-120]
	bl	imdct_step3_inner_r_loop
	ldr	r3, [fp, #-204]
	add	r3, r3, #1
	str	r3, [fp, #-204]
.L492:
	ldr	r2, [fp, #-204]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	blt	.L493
	ldr	r3, [fp, #-240]
	add	r3, r3, #1
	str	r3, [fp, #-240]
.L491:
	ldr	r3, [fp, #-104]
	sub	r3, r3, #3
	asr	r3, r3, #1
	ldr	r2, [fp, #-240]
	cmp	r2, r3
	blt	.L494
	b	.L495
.L498:
	ldr	r3, [fp, #-240]
	add	r3, r3, #2
	ldr	r2, [fp, #-252]
	asr	r3, r2, r3
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-240]
	add	r3, r3, #3
	mov	r2, #1
	lsl	r3, r2, r3
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-56]
	asr	r3, r3, #1
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-240]
	add	r3, r3, #6
	ldr	r2, [fp, #-252]
	asr	r3, r2, r3
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-240]
	add	r3, r3, #1
	mov	r2, #1
	lsl	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-192]
	ldr	r3, [fp, #-140]
	sub	r3, r3, #1
	str	r3, [fp, #-196]
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-200]
	b	.L496
.L497:
	ldr	r3, [fp, #-48]
	rsb	r2, r3, #0
	ldr	r3, [fp, #-56]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-52]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-192]
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-196]
	ldr	r1, [fp, #-120]
	ldr	r0, [fp, #-40]
	bl	imdct_step3_inner_s_loop
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #4
	ldr	r2, [fp, #-192]
	add	r3, r2, r3
	str	r3, [fp, #-192]
	ldr	r3, [fp, #-196]
	sub	r3, r3, #8
	str	r3, [fp, #-196]
	ldr	r3, [fp, #-200]
	sub	r3, r3, #1
	str	r3, [fp, #-200]
.L496:
	ldr	r3, [fp, #-200]
	cmp	r3, #0
	bgt	.L497
	ldr	r3, [fp, #-240]
	add	r3, r3, #1
	str	r3, [fp, #-240]
.L495:
	ldr	r3, [fp, #-104]
	sub	r3, r3, #6
	ldr	r2, [fp, #-240]
	cmp	r2, r3
	blt	.L498
	ldr	r3, [fp, #-252]
	asr	r0, r3, #5
	ldr	r3, [fp, #-140]
	sub	r2, r3, #1
	ldr	r3, [fp, #-252]
	str	r3, [sp]
	ldr	r3, [fp, #-112]
	ldr	r1, [fp, #-120]
	bl	imdct_step3_inner_s_loop_ld654
	ldr	r2, [fp, #-256]
	ldr	r3, [fp, #-260]
	add	r3, r3, #276
	add	r3, r3, #2
	ldr	r3, [r2, r3, lsl #2]
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-136]
	sub	r3, r3, #-1073741820
	lsl	r3, r3, #2
	ldr	r2, [fp, #-116]
	add	r3, r2, r3
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-140]
	sub	r3, r3, #-1073741820
	lsl	r3, r3, #2
	ldr	r2, [fp, #-116]
	add	r3, r2, r3
	str	r3, [fp, #-180]
	b	.L499
.L500:
	ldr	r3, [fp, #-188]
	ldrh	r3, [r3]
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-120]
	add	r2, r2, r3
	ldr	r3, [fp, #-180]
	add	r3, r3, #12
	ldr	r2, [r2]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	lsl	r3, r3, #2
	ldr	r2, [fp, #-120]
	add	r2, r2, r3
	ldr	r3, [fp, #-180]
	add	r3, r3, #8
	ldr	r2, [r2]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-60]
	add	r3, r3, #2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-120]
	add	r2, r2, r3
	ldr	r3, [fp, #-184]
	add	r3, r3, #12
	ldr	r2, [r2]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-60]
	add	r3, r3, #3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-120]
	add	r2, r2, r3
	ldr	r3, [fp, #-184]
	add	r3, r3, #8
	ldr	r2, [r2]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-188]
	add	r3, r3, #2
	ldrh	r3, [r3]
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-120]
	add	r2, r2, r3
	ldr	r3, [fp, #-180]
	add	r3, r3, #4
	ldr	r2, [r2]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	lsl	r3, r3, #2
	ldr	r2, [fp, #-120]
	add	r3, r2, r3
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-180]
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-60]
	add	r3, r3, #2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-120]
	add	r2, r2, r3
	ldr	r3, [fp, #-184]
	add	r3, r3, #4
	ldr	r2, [r2]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-60]
	add	r3, r3, #3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-120]
	add	r3, r2, r3
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-184]
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-184]
	sub	r3, r3, #16
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-180]
	sub	r3, r3, #16
	str	r3, [fp, #-180]
	ldr	r3, [fp, #-188]
	add	r3, r3, #4
	str	r3, [fp, #-188]
.L499:
	ldr	r2, [fp, #-184]
	ldr	r3, [fp, #-116]
	cmp	r2, r3
	bcs	.L500
	ldr	r2, [fp, #-116]
	ldr	r3, [fp, #-124]
	cmp	r2, r3
	beq	.L501
	ldr	r3, .L507
	ldr	r2, .L507+4
	ldr	r1, .L507+8
	ldr	r0, .L507+12
	bl	__assert_fail
.L501:
	ldr	r2, [fp, #-256]
	ldr	r3, [fp, #-260]
	add	r3, r3, #272
	add	r3, r3, #2
	ldr	r3, [r2, r3, lsl #2]
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-116]
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-140]
	sub	r3, r3, #-1073741820
	lsl	r3, r3, #2
	ldr	r2, [fp, #-116]
	add	r3, r2, r3
	str	r3, [fp, #-168]
	b	.L502
.L508:
	.align	2
.L507:
	.word	__PRETTY_FUNCTION__.7360
	.word	2802
	.word	.LC0
	.word	.LC17
	.word	.LC18
.L503:
	ldr	r3, [fp, #-172]
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-168]
	add	r3, r3, #8
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-84]	@ float
	ldr	r3, [fp, #-172]
	add	r3, r3, #4
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-168]
	add	r3, r3, #12
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-80]	@ float
	ldr	r3, [fp, #-176]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-84]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r4, r3
	ldr	r3, [fp, #-176]
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-80]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-76]	@ float
	ldr	r3, [fp, #-176]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-80]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r4, r3
	ldr	r3, [fp, #-176]
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-84]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-72]	@ float
	ldr	r3, [fp, #-172]
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-168]
	add	r3, r3, #8
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-68]	@ float
	ldr	r3, [fp, #-172]
	add	r3, r3, #4
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-168]
	add	r3, r3, #12
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-64]	@ float
	ldr	r1, [fp, #-76]	@ float
	ldr	r0, [fp, #-68]	@ float
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-172]
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-172]
	add	r4, r3, #4
	ldr	r1, [fp, #-72]	@ float
	ldr	r0, [fp, #-64]	@ float
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-168]
	add	r4, r3, #8
	ldr	r1, [fp, #-76]	@ float
	ldr	r0, [fp, #-68]	@ float
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-168]
	add	r4, r3, #12
	ldr	r1, [fp, #-64]	@ float
	ldr	r0, [fp, #-72]	@ float
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-172]
	add	r3, r3, #8
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-168]
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-84]	@ float
	ldr	r3, [fp, #-172]
	add	r3, r3, #12
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-168]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-80]	@ float
	ldr	r3, [fp, #-176]
	add	r3, r3, #12
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-84]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r4, r3
	ldr	r3, [fp, #-176]
	add	r3, r3, #8
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-80]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-76]	@ float
	ldr	r3, [fp, #-176]
	add	r3, r3, #12
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-80]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r4, r3
	ldr	r3, [fp, #-176]
	add	r3, r3, #8
	ldr	r3, [r3]	@ float
	ldr	r1, [fp, #-84]	@ float
	mov	r0, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-72]	@ float
	ldr	r3, [fp, #-172]
	add	r3, r3, #8
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-168]
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-68]	@ float
	ldr	r3, [fp, #-172]
	add	r3, r3, #12
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-168]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-64]	@ float
	ldr	r3, [fp, #-172]
	add	r4, r3, #8
	ldr	r1, [fp, #-76]	@ float
	ldr	r0, [fp, #-68]	@ float
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-172]
	add	r4, r3, #12
	ldr	r1, [fp, #-72]	@ float
	ldr	r0, [fp, #-64]	@ float
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r1, [fp, #-76]	@ float
	ldr	r0, [fp, #-68]	@ float
	bl	__aeabi_fsub
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-168]
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-168]
	add	r4, r3, #4
	ldr	r1, [fp, #-64]	@ float
	ldr	r0, [fp, #-72]	@ float
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-176]
	add	r3, r3, #16
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-172]
	add	r3, r3, #16
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-168]
	sub	r3, r3, #16
	str	r3, [fp, #-168]
.L502:
	ldr	r2, [fp, #-172]
	ldr	r3, [fp, #-168]
	cmp	r2, r3
	bcc	.L503
	ldr	r3, [fp, #-256]
	ldr	r2, [fp, #-260]
	add	r2, r2, #272
	ldr	r2, [r3, r2, lsl #2]
	ldr	r3, [fp, #-140]
	sub	r3, r3, #-1073741816
	lsl	r3, r3, #2
	add	r3, r2, r3
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-140]
	sub	r3, r3, #-1073741816
	lsl	r3, r3, #2
	ldr	r2, [fp, #-124]
	add	r3, r2, r3
	str	r3, [fp, #-144]
	ldr	r3, [fp, #-248]
	str	r3, [fp, #-164]
	ldr	r3, [fp, #-140]
	sub	r3, r3, #-1073741820
	lsl	r3, r3, #2
	ldr	r2, [fp, #-248]
	add	r3, r2, r3
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-140]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-248]
	add	r3, r2, r3
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-252]
	sub	r3, r3, #-1073741820
	lsl	r3, r3, #2
	ldr	r2, [fp, #-248]
	add	r3, r2, r3
	str	r3, [fp, #-152]
	b	.L504
.L505:
	ldr	r3, [fp, #-144]
	add	r3, r3, #24
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-148]
	add	r3, r3, #28
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r4, r3
	ldr	r3, [fp, #-144]
	add	r3, r3, #28
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-148]
	add	r3, r3, #24
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-100]	@ float
	ldr	r3, [fp, #-144]
	add	r3, r3, #24
	ldr	r3, [r3]	@ float
	eor	r2, r3, #-2147483648
	ldr	r3, [fp, #-148]
	add	r3, r3, #24
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r4, r3
	ldr	r3, [fp, #-144]
	add	r3, r3, #28
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-148]
	add	r3, r3, #28
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-96]	@ float
	ldr	r3, [fp, #-164]
	ldr	r2, [fp, #-100]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-160]
	add	r3, r3, #12
	ldr	r2, [fp, #-100]
	eor	r2, r2, #-2147483648
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-156]
	ldr	r2, [fp, #-96]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-152]
	add	r3, r3, #12
	ldr	r2, [fp, #-96]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-144]
	add	r3, r3, #16
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-148]
	add	r3, r3, #20
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r4, r3
	ldr	r3, [fp, #-144]
	add	r3, r3, #20
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-148]
	add	r3, r3, #16
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-92]	@ float
	ldr	r3, [fp, #-144]
	add	r3, r3, #16
	ldr	r3, [r3]	@ float
	eor	r2, r3, #-2147483648
	ldr	r3, [fp, #-148]
	add	r3, r3, #16
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r4, r3
	ldr	r3, [fp, #-144]
	add	r3, r3, #20
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-148]
	add	r3, r3, #20
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-88]	@ float
	ldr	r3, [fp, #-164]
	add	r3, r3, #4
	ldr	r2, [fp, #-92]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-160]
	add	r3, r3, #8
	ldr	r2, [fp, #-92]
	eor	r2, r2, #-2147483648
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-156]
	add	r3, r3, #4
	ldr	r2, [fp, #-88]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-152]
	add	r3, r3, #8
	ldr	r2, [fp, #-88]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-144]
	add	r3, r3, #8
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-148]
	add	r3, r3, #12
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r4, r3
	ldr	r3, [fp, #-144]
	add	r3, r3, #12
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-148]
	add	r3, r3, #8
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-100]	@ float
	ldr	r3, [fp, #-144]
	add	r3, r3, #8
	ldr	r3, [r3]	@ float
	eor	r2, r3, #-2147483648
	ldr	r3, [fp, #-148]
	add	r3, r3, #8
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r4, r3
	ldr	r3, [fp, #-144]
	add	r3, r3, #12
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-148]
	add	r3, r3, #12
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-96]	@ float
	ldr	r3, [fp, #-164]
	add	r3, r3, #8
	ldr	r2, [fp, #-100]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-160]
	add	r3, r3, #4
	ldr	r2, [fp, #-100]
	eor	r2, r2, #-2147483648
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-156]
	add	r3, r3, #8
	ldr	r2, [fp, #-96]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-152]
	add	r3, r3, #4
	ldr	r2, [fp, #-96]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-144]
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-148]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r4, r3
	ldr	r3, [fp, #-144]
	add	r3, r3, #4
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-148]
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-92]	@ float
	ldr	r3, [fp, #-144]
	ldr	r3, [r3]	@ float
	eor	r2, r3, #-2147483648
	ldr	r3, [fp, #-148]
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r4, r3
	ldr	r3, [fp, #-144]
	add	r3, r3, #4
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-148]
	add	r3, r3, #4
	ldr	r3, [r3]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-88]	@ float
	ldr	r3, [fp, #-164]
	add	r3, r3, #12
	ldr	r2, [fp, #-92]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-92]
	eor	r2, r3, #-2147483648
	ldr	r3, [fp, #-160]
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-156]
	add	r3, r3, #12
	ldr	r2, [fp, #-88]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-152]
	ldr	r2, [fp, #-88]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-148]
	sub	r3, r3, #32
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-144]
	sub	r3, r3, #32
	str	r3, [fp, #-144]
	ldr	r3, [fp, #-164]
	add	r3, r3, #16
	str	r3, [fp, #-164]
	ldr	r3, [fp, #-156]
	add	r3, r3, #16
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-160]
	sub	r3, r3, #16
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-152]
	sub	r3, r3, #16
	str	r3, [fp, #-152]
.L504:
	ldr	r2, [fp, #-144]
	ldr	r3, [fp, #-116]
	cmp	r2, r3
	bcs	.L505
	ldr	r3, [fp, #-256]
	ldr	r2, [fp, #-128]
	str	r2, [r3, #104]
	nop
	ldr	r3, .L507+16
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L506
	bl	__stack_chk_fail
.L506:
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
	.size	inverse_mdct, .-inverse_mdct
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_window, %function
get_window:
	@ 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
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #1
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #124]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bne	.L510
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #1104]
	b	.L511
.L510:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #128]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bne	.L512
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #1108]
	b	.L511
.L512:
	mov	r3, #0
.L511:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	get_window, .-get_window
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	do_floor, %function
do_floor:
	@ args = 12, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #68
	str	r0, [fp, #-56]
	str	r1, [fp, #-60]
	str	r2, [fp, #-64]
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	asr	r3, r3, #1
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-60]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-64]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r1, r3
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	add	r3, r3, #9
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-28]
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-28]
	add	r3, r3, #72
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	cmp	r3, #0
	bne	.L514
	mov	r1, #21
	ldr	r0, [fp, #-56]
	bl	error
	mov	r3, r0
	b	.L515
.L514:
	ldr	r3, [fp, #-56]
	ldr	r1, [r3, #272]
	ldr	r2, [fp, #-28]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r2, r3, #3
	sub	r2, r2, r3
	lsl	r3, r2, #2
	mov	r2, r3
	mov	r3, r2
	add	r3, r1, r3
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r3, [fp, #8]
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3, #1588]	@ zero_extendqisi2
	mul	r3, r2, r3
	str	r3, [fp, #-40]
	mov	r3, #1
	str	r3, [fp, #-48]
	b	.L516
.L519:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-48]
	add	r3, r2, r3
	add	r3, r3, #836
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #1
	ldr	r2, [fp, #8]
	add	r3, r2, r3
	ldrsh	r3, [r3]
	cmp	r3, #0
	blt	.L517
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #1
	ldr	r2, [fp, #8]
	add	r3, r2, r3
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3, #1588]	@ zero_extendqisi2
	mul	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-52]
	add	r3, r3, #168
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #2
	ldrh	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	beq	.L518
	ldr	r3, [fp, #-36]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-20]
	str	r3, [sp]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-40]
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #4]
	bl	draw_line
.L518:
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-40]
.L517:
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
.L516:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #1592]
	ldr	r2, [fp, #-48]
	cmp	r2, r3
	blt	.L519
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-36]
	cmp	r2, r3
	bge	.L520
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-52]
	b	.L521
.L522:
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #2
	ldr	r2, [fp, #4]
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r2, .L523
	ldr	r3, [fp, #-40]
	ldr	r1, [r2, r3, lsl #2]	@ float
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #2
	ldr	r2, [fp, #4]
	add	r4, r2, r3
	bl	__aeabi_fmul
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
.L521:
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-36]
	cmp	r2, r3
	blt	.L522
.L520:
	mov	r3, #1
.L515:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L524:
	.align	2
.L523:
	.word	inverse_db_table
	.size	do_floor, .-do_floor
	.section	.rodata
	.align	2
.LC19:
	.ascii	"f->alloc.alloc_buffer_length_in_bytes == f->temp_of"
	.ascii	"fset\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	vorbis_decode_initial, %function
vorbis_decode_initial:
	@ args = 8, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-32]
	mov	r2, #0
	str	r2, [r3, #1520]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #1520]
	ldr	r3, [fp, #-32]
	str	r2, [r3, #1516]
.L526:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #108]
	cmp	r3, #0
	beq	.L527
	mov	r3, #0
	b	.L528
.L527:
	ldr	r0, [fp, #-32]
	bl	maybe_start_packet
	mov	r3, r0
	cmp	r3, #0
	bne	.L529
	mov	r3, #0
	b	.L528
.L529:
	mov	r1, #1
	ldr	r0, [fp, #-32]
	bl	get_bits
	mov	r3, r0
	cmp	r3, #0
	beq	.L530
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3, #60]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L542
	mov	r1, #35
	ldr	r0, [fp, #-32]
	bl	error
	mov	r3, r0
	b	.L528
.L542:
	nop
.L532:
	ldr	r0, [fp, #-32]
	bl	get8_packet
	mov	r3, r0
	cmn	r3, #1
	bne	.L532
	b	.L526
.L530:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #92]
	cmp	r3, #0
	beq	.L533
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #96]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #104]
	cmp	r2, r3
	beq	.L533
	ldr	r3, .L543
	ldr	r2, .L543+4
	ldr	r1, .L543+8
	ldr	r0, .L543+12
	bl	__assert_fail
.L533:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #420]
	sub	r3, r3, #1
	mov	r0, r3
	bl	ilog
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	get_bits
	mov	r3, r0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmn	r3, #1
	bne	.L534
	mov	r3, #0
	b	.L528
.L534:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #420]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L535
	mov	r3, #0
	b	.L528
.L535:
	ldr	r3, [fp, #8]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	add	r1, r3, #424
	ldr	r2, [fp, #-16]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r1, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L536
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #128]
	str	r3, [fp, #-28]
	mov	r1, #1
	ldr	r0, [fp, #-32]
	bl	get_bits
	mov	r3, r0
	str	r3, [fp, #-24]
	mov	r1, #1
	ldr	r0, [fp, #-32]
	bl	get_bits
	mov	r3, r0
	str	r3, [fp, #-20]
	b	.L537
.L536:
	mov	r3, #0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #124]
	str	r3, [fp, #-28]
.L537:
	ldr	r3, [fp, #-28]
	asr	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L538
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L538
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #124]
	ldr	r2, [fp, #-28]
	sub	r3, r2, r3
	asr	r2, r3, #2
	ldr	r3, [fp, #-36]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #124]
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	asr	r2, r3, #2
	ldr	r3, [fp, #-40]
	str	r2, [r3]
	b	.L539
.L538:
	ldr	r3, [fp, #-36]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
.L539:
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L540
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L540
	ldr	r2, [fp, #-28]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r2, r3, r2
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #124]
	sub	r3, r2, r3
	asr	r2, r3, #2
	ldr	r3, [fp, #-44]
	str	r2, [r3]
	ldr	r2, [fp, #-28]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r2, r3, r2
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #124]
	add	r3, r2, r3
	asr	r2, r3, #2
	ldr	r3, [fp, #4]
	str	r2, [r3]
	b	.L541
.L540:
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #4]
	ldr	r2, [fp, #-28]
	str	r2, [r3]
.L541:
	mov	r3, #1
.L528:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L544:
	.align	2
.L543:
	.word	__PRETTY_FUNCTION__.7434
	.word	3128
	.word	.LC0
	.word	.LC19
	.size	vorbis_decode_initial, .-vorbis_decode_initial
	.global	__aeabi_fcmpgt
	.section	.rodata
	.align	2
.LC20:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	vorbis_decode_packet_rest, %function
vorbis_decode_packet_rest:
	@ args = 16, pretend = 0, frame = 2552
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #2560
	sub	sp, sp, #8
	str	r0, [fp, #-2536]
	str	r1, [fp, #-2540]
	str	r2, [fp, #-2544]
	str	r3, [fp, #-2548]
	ldr	r3, [fp, #16]
	str	r3, [fp, #-2552]
	ldr	r3, .L630
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-2544]
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-2536]
	add	r3, r3, #28
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	str	r3, [fp, #-2488]
	ldr	r3, [fp, #-2536]
	ldr	r2, [r3, #416]
	ldr	r3, [fp, #-2544]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	mov	r1, r3
	mov	r3, r1
	lsl	r3, r3, #2
	add	r3, r3, r1
	lsl	r3, r3, #3
	add	r3, r2, r3
	str	r3, [fp, #-2484]
	ldr	r3, [fp, #-2488]
	asr	r3, r3, #1
	str	r3, [fp, #-2480]
	mov	r3, #0
	str	r3, [fp, #-2528]
	b	.L546
.L578:
	ldr	r3, [fp, #-2484]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-2528]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r1, r3
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	str	r3, [fp, #-2456]
	ldr	r3, [fp, #-2528]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3, #-2308]
	ldr	r2, [fp, #-2484]
	ldr	r3, [fp, #-2456]
	add	r3, r2, r3
	add	r3, r3, #9
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-2452]
	ldr	r2, [fp, #-2536]
	ldr	r3, [fp, #-2452]
	add	r3, r3, #72
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	cmp	r3, #0
	bne	.L547
	mov	r1, #21
	ldr	r0, [fp, #-2536]
	bl	error
	mov	r3, r0
	b	.L620
.L547:
	ldr	r3, [fp, #-2536]
	ldr	r1, [r3, #272]
	ldr	r2, [fp, #-2452]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r2, r3, #3
	sub	r2, r2, r3
	lsl	r3, r2, #2
	mov	r2, r3
	mov	r3, r2
	add	r3, r1, r3
	str	r3, [fp, #-2448]
	mov	r1, #1
	ldr	r0, [fp, #-2536]
	bl	get_bits
	mov	r3, r0
	cmp	r3, #0
	beq	.L628
	ldr	r3, [fp, #-2448]
	ldrb	r3, [r3, #1588]	@ zero_extendqisi2
	sub	r3, r3, #1
	ldr	r2, .L630+4
	ldr	r3, [r2, r3, lsl #2]
	str	r3, [fp, #-2444]
	mov	r3, #2
	str	r3, [fp, #-2516]
	ldr	r3, [fp, #-2536]
	ldr	r2, [fp, #-2528]
	add	r2, r2, #252
	ldr	r3, [r3, r2, lsl #2]
	str	r3, [fp, #-2440]
	ldr	r0, [fp, #-2444]
	bl	ilog
	mov	r3, r0
	sub	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-2536]
	bl	get_bits
	mov	r3, r0
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, [fp, #-2440]
	strh	r2, [r3]	@ movhi
	ldr	r0, [fp, #-2444]
	bl	ilog
	mov	r3, r0
	sub	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-2536]
	bl	get_bits
	mov	r2, r0
	ldr	r3, [fp, #-2440]
	add	r3, r3, #2
	lsl	r2, r2, #16
	asr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-2524]
	b	.L550
.L563:
	ldr	r2, [fp, #-2448]
	ldr	r3, [fp, #-2524]
	add	r3, r2, r3
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-2412]
	ldr	r2, [fp, #-2448]
	ldr	r3, [fp, #-2412]
	add	r3, r2, r3
	add	r3, r3, #33
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-2408]
	ldr	r2, [fp, #-2448]
	ldr	r3, [fp, #-2412]
	add	r3, r2, r3
	add	r3, r3, #49
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-2404]
	mov	r2, #1
	ldr	r3, [fp, #-2404]
	lsl	r3, r2, r3
	sub	r3, r3, #1
	str	r3, [fp, #-2400]
	mov	r3, #0
	str	r3, [fp, #-2512]
	ldr	r3, [fp, #-2404]
	cmp	r3, #0
	beq	.L551
	ldr	r3, [fp, #-2536]
	ldr	r1, [r3, #136]
	ldr	r2, [fp, #-2448]
	ldr	r3, [fp, #-2412]
	add	r3, r2, r3
	add	r3, r3, #65
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #6
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r1, r3
	str	r3, [fp, #-2396]
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1408]
	cmp	r3, #9
	bgt	.L552
	ldr	r0, [fp, #-2536]
	bl	prep_huffman
.L552:
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1404]
	lsl	r3, r3, #22
	lsr	r3, r3, #22
	str	r3, [fp, #-2512]
	ldr	r2, [fp, #-2396]
	ldr	r3, [fp, #-2512]
	add	r3, r3, #16
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #4
	ldrsh	r3, [r3]
	str	r3, [fp, #-2512]
	ldr	r3, [fp, #-2512]
	cmp	r3, #0
	blt	.L553
	ldr	r3, [fp, #-2396]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-2512]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-2392]
	ldr	r3, [fp, #-2536]
	ldr	r2, [r3, #1404]
	ldr	r3, [fp, #-2392]
	lsr	r2, r2, r3
	ldr	r3, [fp, #-2536]
	str	r2, [r3, #1404]
	ldr	r3, [fp, #-2536]
	ldr	r2, [r3, #1408]
	ldr	r3, [fp, #-2392]
	sub	r2, r2, r3
	ldr	r3, [fp, #-2536]
	str	r2, [r3, #1408]
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1408]
	cmp	r3, #0
	bge	.L554
	ldr	r3, [fp, #-2536]
	mov	r2, #0
	str	r2, [r3, #1408]
	mvn	r3, #0
	str	r3, [fp, #-2512]
	b	.L554
.L553:
	ldr	r1, [fp, #-2396]
	ldr	r0, [fp, #-2536]
	bl	codebook_decode_scalar_raw
	str	r0, [fp, #-2512]
.L554:
	ldr	r3, [fp, #-2396]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L551
	ldr	r3, [fp, #-2396]
	ldr	r2, [r3, #2088]
	ldr	r3, [fp, #-2512]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-2512]
.L551:
	mov	r3, #0
	str	r3, [fp, #-2520]
	b	.L555
.L562:
	ldr	r2, [fp, #-2512]
	ldr	r3, [fp, #-2400]
	and	r3, r3, r2
	ldr	r2, [fp, #-2448]
	ldr	r1, [fp, #-2412]
	lsl	r1, r1, #3
	add	r3, r1, r3
	add	r3, r3, #40
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #2
	ldrsh	r3, [r3]
	str	r3, [fp, #-2388]
	ldr	r2, [fp, #-2512]
	ldr	r3, [fp, #-2404]
	asr	r3, r2, r3
	str	r3, [fp, #-2512]
	ldr	r3, [fp, #-2388]
	cmp	r3, #0
	blt	.L556
	ldr	r3, [fp, #-2536]
	ldr	r1, [r3, #136]
	ldr	r2, [fp, #-2388]
	mov	r3, r2
	lsl	r3, r3, #6
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r1, r3
	str	r3, [fp, #-2384]
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1408]
	cmp	r3, #9
	bgt	.L557
	ldr	r0, [fp, #-2536]
	bl	prep_huffman
.L557:
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1404]
	lsl	r3, r3, #22
	lsr	r3, r3, #22
	str	r3, [fp, #-2508]
	ldr	r2, [fp, #-2384]
	ldr	r3, [fp, #-2508]
	add	r3, r3, #16
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #4
	ldrsh	r3, [r3]
	str	r3, [fp, #-2508]
	ldr	r3, [fp, #-2508]
	cmp	r3, #0
	blt	.L558
	ldr	r3, [fp, #-2384]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-2508]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-2380]
	ldr	r3, [fp, #-2536]
	ldr	r2, [r3, #1404]
	ldr	r3, [fp, #-2380]
	lsr	r2, r2, r3
	ldr	r3, [fp, #-2536]
	str	r2, [r3, #1404]
	ldr	r3, [fp, #-2536]
	ldr	r2, [r3, #1408]
	ldr	r3, [fp, #-2380]
	sub	r2, r2, r3
	ldr	r3, [fp, #-2536]
	str	r2, [r3, #1408]
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1408]
	cmp	r3, #0
	bge	.L559
	ldr	r3, [fp, #-2536]
	mov	r2, #0
	str	r2, [r3, #1408]
	mvn	r3, #0
	str	r3, [fp, #-2508]
	b	.L559
.L558:
	ldr	r1, [fp, #-2384]
	ldr	r0, [fp, #-2536]
	bl	codebook_decode_scalar_raw
	str	r0, [fp, #-2508]
.L559:
	ldr	r3, [fp, #-2384]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L560
	ldr	r3, [fp, #-2384]
	ldr	r2, [r3, #2088]
	ldr	r3, [fp, #-2508]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-2508]
.L560:
	ldr	r3, [fp, #-2516]
	add	r2, r3, #1
	str	r2, [fp, #-2516]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-2440]
	add	r3, r2, r3
	ldr	r2, [fp, #-2508]
	lsl	r2, r2, #16
	asr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	b	.L561
.L556:
	ldr	r3, [fp, #-2516]
	add	r2, r3, #1
	str	r2, [fp, #-2516]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-2440]
	add	r3, r2, r3
	mov	r2, #0
	strh	r2, [r3]	@ movhi
.L561:
	ldr	r3, [fp, #-2520]
	add	r3, r3, #1
	str	r3, [fp, #-2520]
.L555:
	ldr	r2, [fp, #-2520]
	ldr	r3, [fp, #-2408]
	cmp	r2, r3
	blt	.L562
	ldr	r3, [fp, #-2524]
	add	r3, r3, #1
	str	r3, [fp, #-2524]
.L550:
	ldr	r3, [fp, #-2448]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-2524]
	cmp	r3, r2
	blt	.L563
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1408]
	cmn	r3, #1
	beq	.L629
	mov	r3, #1
	strb	r3, [fp, #-263]
	ldrb	r3, [fp, #-263]	@ zero_extendqisi2
	strb	r3, [fp, #-264]
	mov	r3, #2
	str	r3, [fp, #-2524]
	b	.L565
.L573:
	ldr	r3, [fp, #-2448]
	ldr	r2, [fp, #-2524]
	add	r2, r2, #544
	ldrb	r3, [r3, r2, lsl #1]	@ zero_extendqisi2
	str	r3, [fp, #-2436]
	ldr	r2, [fp, #-2448]
	ldr	r3, [fp, #-2524]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrb	r3, [r3, #1089]	@ zero_extendqisi2
	str	r3, [fp, #-2432]
	ldr	r2, [fp, #-2448]
	ldr	r3, [fp, #-2524]
	add	r3, r3, #168
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #2
	ldrh	r3, [r3]
	mov	r0, r3
	ldr	r2, [fp, #-2448]
	ldr	r3, [fp, #-2436]
	add	r3, r3, #168
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #2
	ldrh	r3, [r3]
	mov	r1, r3
	ldr	r2, [fp, #-2448]
	ldr	r3, [fp, #-2432]
	add	r3, r3, #168
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #2
	ldrh	r3, [r3]
	mov	ip, r3
	ldr	r3, [fp, #-2436]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-2440]
	add	r3, r2, r3
	ldrsh	r3, [r3]
	mov	lr, r3
	ldr	r3, [fp, #-2432]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-2440]
	add	r3, r2, r3
	ldrsh	r3, [r3]
	str	r3, [sp]
	mov	r3, lr
	mov	r2, ip
	bl	predict_point
	str	r0, [fp, #-2428]
	ldr	r3, [fp, #-2524]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-2440]
	add	r3, r2, r3
	ldrsh	r3, [r3]
	str	r3, [fp, #-2424]
	ldr	r2, [fp, #-2444]
	ldr	r3, [fp, #-2428]
	sub	r3, r2, r3
	str	r3, [fp, #-2420]
	ldr	r3, [fp, #-2428]
	str	r3, [fp, #-2416]
	ldr	r2, [fp, #-2420]
	ldr	r3, [fp, #-2416]
	cmp	r2, r3
	bge	.L566
	ldr	r3, [fp, #-2420]
	lsl	r3, r3, #1
	str	r3, [fp, #-2504]
	b	.L567
.L566:
	ldr	r3, [fp, #-2416]
	lsl	r3, r3, #1
	str	r3, [fp, #-2504]
.L567:
	ldr	r3, [fp, #-2424]
	cmp	r3, #0
	beq	.L568
	sub	r2, fp, #264
	ldr	r3, [fp, #-2432]
	add	r3, r2, r3
	mov	r2, #1
	strb	r2, [r3]
	sub	r2, fp, #264
	ldr	r3, [fp, #-2432]
	add	r3, r2, r3
	ldrb	r1, [r3]	@ zero_extendqisi2
	sub	r2, fp, #264
	ldr	r3, [fp, #-2436]
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3]
	sub	r2, fp, #264
	ldr	r3, [fp, #-2524]
	add	r3, r2, r3
	mov	r2, #1
	strb	r2, [r3]
	ldr	r2, [fp, #-2424]
	ldr	r3, [fp, #-2504]
	cmp	r2, r3
	blt	.L569
	ldr	r2, [fp, #-2420]
	ldr	r3, [fp, #-2416]
	cmp	r2, r3
	ble	.L570
	ldr	r3, [fp, #-2424]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-2416]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r3, r2, r3
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-2428]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r2, r3
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-2524]
	lsl	r3, r3, #1
	ldr	r1, [fp, #-2440]
	add	r3, r1, r3
	lsl	r2, r2, #16
	asr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	b	.L571
.L570:
	ldr	r3, [fp, #-2428]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-2424]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r3, r2, r3
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-2420]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r2, r3
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-2524]
	lsl	r3, r3, #1
	ldr	r1, [fp, #-2440]
	add	r3, r1, r3
	lsl	r2, r2, #16
	asr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	b	.L571
.L569:
	ldr	r3, [fp, #-2424]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L572
	ldr	r3, [fp, #-2428]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-2424]
	add	r3, r3, #1
	asr	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r3, r2, r3
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-2524]
	lsl	r3, r3, #1
	ldr	r1, [fp, #-2440]
	add	r3, r1, r3
	lsl	r2, r2, #16
	asr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	b	.L571
.L572:
	ldr	r3, [fp, #-2424]
	asr	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-2428]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r2, r3
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-2524]
	lsl	r3, r3, #1
	ldr	r1, [fp, #-2440]
	add	r3, r1, r3
	lsl	r2, r2, #16
	asr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	b	.L571
.L568:
	sub	r2, fp, #264
	ldr	r3, [fp, #-2524]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-2524]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-2440]
	add	r3, r2, r3
	ldr	r2, [fp, #-2428]
	lsl	r2, r2, #16
	asr	r2, r2, #16
	strh	r2, [r3]	@ movhi
.L571:
	ldr	r3, [fp, #-2524]
	add	r3, r3, #1
	str	r3, [fp, #-2524]
.L565:
	ldr	r3, [fp, #-2448]
	ldr	r3, [r3, #1592]
	ldr	r2, [fp, #-2524]
	cmp	r2, r3
	blt	.L573
	mov	r3, #0
	str	r3, [fp, #-2524]
	b	.L574
.L576:
	sub	r2, fp, #264
	ldr	r3, [fp, #-2524]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L575
	ldr	r3, [fp, #-2524]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-2440]
	add	r3, r2, r3
	mvn	r2, #0
	strh	r2, [r3]	@ movhi
.L575:
	ldr	r3, [fp, #-2524]
	add	r3, r3, #1
	str	r3, [fp, #-2524]
.L574:
	ldr	r3, [fp, #-2448]
	ldr	r3, [r3, #1592]
	ldr	r2, [fp, #-2524]
	cmp	r2, r3
	blt	.L576
	b	.L577
.L628:
	nop
	b	.L549
.L629:
	nop
.L549:
	ldr	r3, [fp, #-2528]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	mov	r2, #1
	str	r2, [r3, #-2308]
.L577:
	ldr	r3, [fp, #-2528]
	add	r3, r3, #1
	str	r3, [fp, #-2528]
.L546:
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-2528]
	cmp	r2, r3
	blt	.L578
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #92]
	cmp	r3, #0
	beq	.L579
	ldr	r3, [fp, #-2536]
	ldr	r2, [r3, #96]
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #104]
	cmp	r2, r3
	beq	.L579
	ldr	r3, .L630+16
	ldr	r2, .L630+8
	ldr	r1, .L630+28
	ldr	r0, .L630+24
	bl	__assert_fail
.L579:
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #4]
	lsl	r2, r3, #2
	sub	r1, fp, #2304
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r3, fp, #1280
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r0, r3
	bl	memcpy
	mov	r3, #0
	str	r3, [fp, #-2528]
	b	.L580
.L583:
	ldr	r3, [fp, #-2484]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-2528]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-2308]
	cmp	r3, #0
	beq	.L581
	ldr	r3, [fp, #-2484]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-2528]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r1, r3
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-2308]
	cmp	r3, #0
	bne	.L582
.L581:
	ldr	r3, [fp, #-2484]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-2528]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r1, r3
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	mov	r2, r3
	lsl	r3, r2, #2
	sub	r1, fp, #4
	add	r3, r1, r3
	mov	r1, #0
	str	r1, [r3, #-2308]
	ldr	r3, [fp, #-2484]
	ldr	r0, [r3, #4]
	ldr	r1, [fp, #-2528]
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	add	r3, r0, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	lsl	r3, r2, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r2, [r3, #-2308]
	lsl	r3, r1, #2
	sub	r1, fp, #4
	add	r3, r1, r3
	str	r2, [r3, #-2308]
.L582:
	ldr	r3, [fp, #-2528]
	add	r3, r3, #1
	str	r3, [fp, #-2528]
.L580:
	ldr	r3, [fp, #-2484]
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-2528]
	cmp	r3, r2
	blt	.L583
	mov	r3, #0
	str	r3, [fp, #-2528]
	b	.L584
.L590:
	mov	r3, #0
	str	r3, [fp, #-2500]
	mov	r3, #0
	str	r3, [fp, #-2524]
	b	.L585
.L589:
	ldr	r3, [fp, #-2484]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-2524]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r1, r3
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-2528]
	cmp	r3, r2
	bne	.L586
	ldr	r3, [fp, #-2524]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-2308]
	cmp	r3, #0
	beq	.L587
	sub	r2, fp, #264
	ldr	r3, [fp, #-2500]
	add	r3, r2, r3
	mov	r2, #1
	strb	r2, [r3]
	ldr	r3, [fp, #-2500]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3, #-2372]
	b	.L588
.L587:
	sub	r2, fp, #264
	ldr	r3, [fp, #-2500]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r2, [fp, #-2536]
	ldr	r3, [fp, #-2524]
	add	r3, r3, #202
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-2500]
	lsl	r3, r3, #2
	sub	r1, fp, #4
	add	r3, r1, r3
	str	r2, [r3, #-2372]
.L588:
	ldr	r3, [fp, #-2500]
	add	r3, r3, #1
	str	r3, [fp, #-2500]
.L586:
	ldr	r3, [fp, #-2524]
	add	r3, r3, #1
	str	r3, [fp, #-2524]
.L585:
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-2524]
	cmp	r2, r3
	blt	.L589
	ldr	r2, [fp, #-2484]
	ldr	r3, [fp, #-2528]
	add	r3, r2, r3
	add	r3, r3, #24
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-2460]
	sub	r1, fp, #2368
	sub	r1, r1, #4
	sub	r1, r1, #4
	sub	r3, fp, #264
	str	r3, [sp, #4]
	ldr	r3, [fp, #-2460]
	str	r3, [sp]
	ldr	r3, [fp, #-2480]
	ldr	r2, [fp, #-2500]
	ldr	r0, [fp, #-2536]
	bl	decode_residue
	ldr	r3, [fp, #-2528]
	add	r3, r3, #1
	str	r3, [fp, #-2528]
.L584:
	ldr	r3, [fp, #-2484]
	ldrb	r3, [r3, #8]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-2528]
	cmp	r3, r2
	blt	.L590
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #92]
	cmp	r3, #0
	beq	.L591
	ldr	r3, [fp, #-2536]
	ldr	r2, [r3, #96]
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #104]
	cmp	r2, r3
	beq	.L591
	ldr	r3, .L630+16
	ldr	r2, .L630+12
	ldr	r1, .L630+28
	ldr	r0, .L630+24
	bl	__assert_fail
.L591:
	ldr	r3, [fp, #-2484]
	ldrh	r3, [r3]
	sub	r3, r3, #1
	str	r3, [fp, #-2528]
	b	.L592
.L602:
	ldr	r3, [fp, #-2488]
	asr	r3, r3, #1
	str	r3, [fp, #-2472]
	ldr	r3, [fp, #-2484]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-2528]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-2536]
	add	r3, r3, #202
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	str	r3, [fp, #-2468]
	ldr	r3, [fp, #-2484]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-2528]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r1, r3
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	ldr	r2, [fp, #-2536]
	add	r3, r3, #202
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	str	r3, [fp, #-2464]
	mov	r3, #0
	str	r3, [fp, #-2524]
	b	.L593
.L601:
	ldr	r3, [fp, #-2524]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2468]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L625
	ldr	r3, [fp, #-2524]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2464]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L626
	ldr	r3, [fp, #-2524]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2468]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	str	r3, [fp, #-2492]	@ float
	ldr	r3, [fp, #-2524]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2468]
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-2524]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2464]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-2496]	@ float
	b	.L598
.L626:
	ldr	r3, [fp, #-2524]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2468]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	str	r3, [fp, #-2496]	@ float
	ldr	r3, [fp, #-2524]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2468]
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-2524]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2464]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-2492]	@ float
	b	.L598
.L625:
	ldr	r3, [fp, #-2524]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2464]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_fcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L627
	ldr	r3, [fp, #-2524]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2468]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	str	r3, [fp, #-2492]	@ float
	ldr	r3, [fp, #-2524]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2468]
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-2524]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2464]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-2496]	@ float
	b	.L598
.L627:
	ldr	r3, [fp, #-2524]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2468]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	str	r3, [fp, #-2496]	@ float
	ldr	r3, [fp, #-2524]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2468]
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-2524]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2464]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fsub
	mov	r3, r0
	str	r3, [fp, #-2492]	@ float
.L598:
	ldr	r3, [fp, #-2524]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2468]
	add	r3, r2, r3
	ldr	r2, [fp, #-2492]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-2524]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-2464]
	add	r3, r2, r3
	ldr	r2, [fp, #-2496]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-2524]
	add	r3, r3, #1
	str	r3, [fp, #-2524]
.L593:
	ldr	r2, [fp, #-2524]
	ldr	r3, [fp, #-2472]
	cmp	r2, r3
	blt	.L601
	ldr	r3, [fp, #-2528]
	sub	r3, r3, #1
	str	r3, [fp, #-2528]
.L592:
	ldr	r3, [fp, #-2528]
	cmp	r3, #0
	bge	.L602
	mov	r3, #0
	str	r3, [fp, #-2528]
	b	.L603
.L631:
	.align	2
.L630:
	.word	.LC20
	.word	range_list.7458
	.word	3277
	.word	3310
	.word	__PRETTY_FUNCTION__.7495
	.word	3426
	.word	.LC19
	.word	.LC0
	.word	.LC20
.L606:
	ldr	r3, [fp, #-2528]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-1284]
	cmp	r3, #0
	beq	.L604
	ldr	r2, [fp, #-2536]
	ldr	r3, [fp, #-2528]
	add	r3, r3, #202
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3, #4]
	ldr	r3, [fp, #-2480]
	lsl	r3, r3, #2
	mov	r2, r3
	mov	r1, #0
	bl	memset
	b	.L605
.L604:
	ldr	r2, [fp, #-2536]
	ldr	r3, [fp, #-2528]
	add	r3, r3, #202
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-2536]
	ldr	r1, [fp, #-2528]
	add	r1, r1, #252
	ldr	r2, [r2, r1, lsl #2]
	mov	r1, #0
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-2488]
	ldr	r2, [fp, #-2528]
	ldr	r1, [fp, #-2484]
	ldr	r0, [fp, #-2536]
	bl	do_floor
.L605:
	ldr	r3, [fp, #-2528]
	add	r3, r3, #1
	str	r3, [fp, #-2528]
.L603:
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-2528]
	cmp	r2, r3
	blt	.L606
	mov	r3, #0
	str	r3, [fp, #-2528]
	b	.L607
.L608:
	ldr	r2, [fp, #-2536]
	ldr	r3, [fp, #-2528]
	add	r3, r3, #202
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3, #4]
	ldr	r3, [fp, #-2544]
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-2536]
	ldr	r1, [fp, #-2488]
	bl	inverse_mdct
	ldr	r3, [fp, #-2528]
	add	r3, r3, #1
	str	r3, [fp, #-2528]
.L607:
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-2528]
	cmp	r2, r3
	blt	.L608
	ldr	r0, [fp, #-2536]
	bl	flush_packet
	ldr	r3, [fp, #-2536]
	ldrb	r3, [r3, #1389]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L609
	ldr	r3, [fp, #-2480]
	rsb	r3, r3, #0
	mov	r2, r3
	ldr	r3, [fp, #-2536]
	str	r2, [r3, #1072]
	ldr	r2, [fp, #-2488]
	ldr	r3, [fp, #12]
	sub	r2, r2, r3
	ldr	r3, [fp, #-2536]
	str	r2, [r3, #1424]
	ldr	r3, [fp, #-2536]
	mov	r2, #1
	str	r2, [r3, #1076]
	ldr	r3, [fp, #-2536]
	mov	r2, #0
	strb	r2, [r3, #1389]
	b	.L610
.L609:
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1424]
	cmp	r3, #0
	beq	.L611
	ldr	r3, [fp, #-2536]
	ldr	r2, [r3, #1424]
	ldr	r1, [fp, #8]
	ldr	r3, [fp, #-2548]
	sub	r3, r1, r3
	cmp	r2, r3
	blt	.L612
	ldr	r3, [fp, #-2536]
	ldr	r2, [r3, #1424]
	ldr	r1, [fp, #8]
	ldr	r3, [fp, #-2548]
	sub	r3, r1, r3
	sub	r2, r2, r3
	ldr	r3, [fp, #-2536]
	str	r2, [r3, #1424]
	ldr	r3, [fp, #8]
	str	r3, [fp, #-2548]
	ldr	r3, [fp, #-2552]
	ldr	r2, [fp, #-2548]
	str	r2, [r3]
	b	.L610
.L612:
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1424]
	ldr	r2, [fp, #-2548]
	add	r3, r2, r3
	str	r3, [fp, #-2548]
	ldr	r3, [fp, #-2552]
	ldr	r2, [fp, #-2548]
	str	r2, [r3]
	ldr	r3, [fp, #-2536]
	mov	r2, #0
	str	r2, [r3, #1424]
	b	.L610
.L611:
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1004]
	cmp	r3, #0
.L610:
	ldr	r3, [fp, #-2536]
	ldr	r2, [r3, #1400]
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1416]
	cmp	r2, r3
	bne	.L613
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1076]
	cmp	r3, #0
	beq	.L614
	ldr	r3, [fp, #-2536]
	ldrb	r3, [r3, #1387]	@ zero_extendqisi2
	and	r3, r3, #4
	cmp	r3, #0
	beq	.L614
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1420]
	str	r3, [fp, #-2476]
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1072]
	ldr	r1, [fp, #12]
	ldr	r2, [fp, #-2548]
	sub	r2, r1, r2
	add	r3, r3, r2
	ldr	r2, [fp, #-2476]
	cmp	r2, r3
	bcs	.L614
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1072]
	ldr	r2, [fp, #-2476]
	cmp	r2, r3
	bcs	.L615
	ldr	r3, [fp, #-2540]
	mov	r2, #0
	str	r2, [r3]
	b	.L616
.L615:
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1072]
	ldr	r2, [fp, #-2476]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-2540]
	str	r2, [r3]
.L616:
	ldr	r3, [fp, #-2540]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2548]
	add	r2, r2, r3
	ldr	r3, [fp, #-2540]
	str	r2, [r3]
	ldr	r3, [fp, #-2540]
	ldr	r3, [r3]
	ldr	r2, [fp, #12]
	cmp	r2, r3
	bge	.L617
	ldr	r3, [fp, #-2540]
	ldr	r2, [fp, #12]
	str	r2, [r3]
.L617:
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1072]
	ldr	r2, [fp, #-2540]
	ldr	r2, [r2]
	add	r2, r3, r2
	ldr	r3, [fp, #-2536]
	str	r2, [r3, #1072]
	mov	r3, #1
	b	.L620
.L614:
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1420]
	ldr	r1, [fp, #-2480]
	ldr	r2, [fp, #-2548]
	sub	r2, r1, r2
	sub	r2, r3, r2
	ldr	r3, [fp, #-2536]
	str	r2, [r3, #1072]
	ldr	r3, [fp, #-2536]
	mov	r2, #1
	str	r2, [r3, #1076]
.L613:
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1076]
	cmp	r3, #0
	beq	.L618
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1072]
	ldr	r1, [fp, #8]
	ldr	r2, [fp, #-2548]
	sub	r2, r1, r2
	add	r2, r3, r2
	ldr	r3, [fp, #-2536]
	str	r2, [r3, #1072]
.L618:
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #92]
	cmp	r3, #0
	beq	.L619
	ldr	r3, [fp, #-2536]
	ldr	r2, [r3, #96]
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #104]
	cmp	r2, r3
	beq	.L619
	ldr	r3, .L630+16
	ldr	r2, .L630+20
	ldr	r1, .L630+28
	ldr	r0, .L630+24
	bl	__assert_fail
.L619:
	ldr	r3, [fp, #-2540]
	ldr	r2, [fp, #12]
	str	r2, [r3]
	mov	r3, #1
.L620:
	ldr	r2, .L630+32
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L621
	bl	__stack_chk_fail
.L621:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	vorbis_decode_packet_rest, .-vorbis_decode_packet_rest
	.section	.rodata
	.align	2
.LC21:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	vorbis_decode_packet, %function
vorbis_decode_packet:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	str	r3, [fp, #-36]
	ldr	r3, .L637
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r2, fp, #16
	sub	r3, fp, #20
	str	r3, [sp, #4]
	sub	r3, fp, #12
	str	r3, [sp]
	ldr	r3, [fp, #-36]
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-24]
	bl	vorbis_decode_initial
	mov	r3, r0
	cmp	r3, #0
	bne	.L633
	mov	r3, #0
	b	.L635
.L633:
	ldr	r3, [fp, #-24]
	add	r2, r3, #424
	ldr	r3, [fp, #-20]
	mov	r1, r3
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r3, r3, #1
	add	ip, r2, r3
	ldr	r3, [fp, #-32]
	ldr	lr, [r3]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-36]
	ldr	r2, [r2]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-32]
	str	r0, [sp, #12]
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, lr
	mov	r2, ip
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-24]
	bl	vorbis_decode_packet_rest
	mov	r3, r0
.L635:
	ldr	r2, .L637
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L636
	bl	__stack_chk_fail
.L636:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L638:
	.align	2
.L637:
	.word	.LC21
	.size	vorbis_decode_packet, .-vorbis_decode_packet
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	vorbis_finish_frame, %function
vorbis_finish_frame:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #48
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	str	r2, [fp, #-56]
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #1004]
	cmp	r3, #0
	beq	.L640
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #1004]
	str	r3, [fp, #-24]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-48]
	bl	get_window
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L641
	mov	r3, #0
	b	.L642
.L641:
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L643
.L646:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L644
.L645:
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-32]
	add	r3, r3, #202
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3, #4]
	ldr	r1, [fp, #-56]
	ldr	r3, [fp, #-28]
	add	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r5, r3
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-32]
	add	r3, r3, #234
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r3, [fp, #-24]
	sub	r2, r3, #1
	ldr	r3, [fp, #-28]
	sub	r3, r2, r3
	lsl	r3, r3, #2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r0, r3
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-32]
	add	r3, r3, #202
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3, #4]
	ldr	r1, [fp, #-56]
	ldr	r3, [fp, #-28]
	add	r3, r1, r3
	lsl	r3, r3, #2
	add	r4, r2, r3
	mov	r1, r0
	mov	r0, r5
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [r4]	@ float
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L644:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	blt	.L645
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L643:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	blt	.L646
.L640:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #1004]
	str	r3, [fp, #-16]
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-60]
	sub	r2, r2, r3
	ldr	r3, [fp, #-48]
	str	r2, [r3, #1004]
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L647
.L650:
	mov	r3, #0
	str	r3, [fp, #-36]
	b	.L648
.L649:
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-40]
	add	r3, r3, #202
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3, #4]
	ldr	r1, [fp, #-60]
	ldr	r3, [fp, #-36]
	add	r3, r1, r3
	lsl	r3, r3, #2
	add	r2, r2, r3
	ldr	r1, [fp, #-48]
	ldr	r3, [fp, #-40]
	add	r3, r3, #234
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r2, [r2]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L648:
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	ldr	r2, [fp, #-52]
	cmp	r2, r3
	bgt	.L649
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L647:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L650
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L651
	mov	r3, #0
	b	.L642
.L651:
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-60]
	cmp	r2, r3
	bge	.L652
	ldr	r3, [fp, #-52]
	str	r3, [fp, #-60]
.L652:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #1428]
	ldr	r1, [fp, #-60]
	ldr	r2, [fp, #-56]
	sub	r2, r1, r2
	add	r2, r3, r2
	ldr	r3, [fp, #-48]
	str	r2, [r3, #1428]
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #-56]
	sub	r3, r2, r3
.L642:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
	.size	vorbis_finish_frame, .-vorbis_finish_frame
	.section	.rodata
	.align	2
.LC22:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	vorbis_pump_first_frame, %function
vorbis_pump_first_frame:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	ldr	r3, .L657
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #20
	sub	r2, fp, #16
	sub	r1, fp, #24
	ldr	r0, [fp, #-32]
	bl	vorbis_decode_packet
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L654
	ldr	r1, [fp, #-24]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	vorbis_finish_frame
.L654:
	ldr	r3, [fp, #-12]
	ldr	r2, .L657
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L656
	bl	__stack_chk_fail
.L656:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L658:
	.align	2
.L657:
	.word	.LC22
	.size	vorbis_pump_first_frame, .-vorbis_pump_first_frame
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	is_whole_packet_present, %function
is_whole_packet_present:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1392]
	str	r3, [fp, #-24]
	mov	r3, #1
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #44]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	cmn	r3, #1
	beq	.L668
	b	.L661
.L664:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #1120
	add	r3, r3, #12
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #1120
	add	r3, r3, #12
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #255
	bne	.L682
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L661:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1128]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	blt	.L664
	b	.L663
.L682:
	nop
.L663:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1128]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	bne	.L665
	mvn	r3, #0
	str	r3, [fp, #-24]
.L665:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #52]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bls	.L666
	mov	r1, #1
	ldr	r0, [fp, #-32]
	bl	error
	mov	r3, r0
	b	.L667
.L666:
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L668
.L681:
	ldr	r3, [fp, #-16]
	add	r2, r3, #26
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #52]
	cmp	r2, r3
	bcc	.L669
	mov	r1, #1
	ldr	r0, [fp, #-32]
	bl	error
	mov	r3, r0
	b	.L667
.L669:
	mov	r2, #4
	ldr	r1, .L684
	ldr	r0, [fp, #-16]
	bl	memcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L670
	mov	r1, #21
	ldr	r0, [fp, #-32]
	bl	error
	mov	r3, r0
	b	.L667
.L670:
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L671
	mov	r1, #21
	ldr	r0, [fp, #-32]
	bl	error
	mov	r3, r0
	b	.L667
.L671:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L672
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1004]
	cmp	r3, #0
	beq	.L673
	ldr	r3, [fp, #-16]
	add	r3, r3, #5
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L673
	mov	r1, #21
	ldr	r0, [fp, #-32]
	bl	error
	mov	r3, r0
	b	.L667
.L672:
	ldr	r3, [fp, #-16]
	add	r3, r3, #5
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #1
	cmp	r3, #0
	bne	.L673
	mov	r1, #21
	ldr	r0, [fp, #-32]
	bl	error
	mov	r3, r0
	b	.L667
.L673:
	ldr	r3, [fp, #-16]
	add	r3, r3, #26
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	add	r3, r3, #27
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #52]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bls	.L674
	mov	r1, #1
	ldr	r0, [fp, #-32]
	bl	error
	mov	r3, r0
	b	.L667
.L674:
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L675
.L678:
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #255
	bne	.L683
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L675:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	blt	.L678
	b	.L677
.L683:
	nop
.L677:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	bne	.L679
	mvn	r3, #0
	str	r3, [fp, #-24]
.L679:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #52]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bls	.L680
	mov	r1, #1
	ldr	r0, [fp, #-32]
	bl	error
	mov	r3, r0
	b	.L667
.L680:
	mov	r3, #0
	str	r3, [fp, #-20]
.L668:
	ldr	r3, [fp, #-24]
	cmn	r3, #1
	beq	.L681
	mov	r3, #1
.L667:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L685:
	.align	2
.L684:
	.word	ogg_page_header
	.size	is_whole_packet_present, .-is_whole_packet_present
	.global	__aeabi_uidivmod
	.global	__aeabi_ui2f
	.section	.rodata
	.align	2
.LC23:
	.ascii	"f->temp_offset == f->alloc.alloc_buffer_length_in_b"
	.ascii	"ytes\000"
	.align	2
.LC24:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	start_decoder, %function
start_decoder:
	@ args = 0, pretend = 0, frame = 1312
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #1312
	sub	sp, sp, #4
	str	r0, [fp, #-1320]
	ldr	r3, .L916
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-1288]
	mov	r3, #0
	str	r3, [fp, #-1284]
	ldr	r3, [fp, #-1320]
	mov	r2, #1
	strb	r2, [r3, #1389]
	ldr	r0, [fp, #-1320]
	bl	start_page
	mov	r3, r0
	cmp	r3, #0
	bne	.L687
	mov	r3, #0
	b	.L913
.L687:
	ldr	r3, [fp, #-1320]
	ldrb	r3, [r3, #1387]	@ zero_extendqisi2
	and	r3, r3, #2
	cmp	r3, #0
	bne	.L689
	mov	r1, #34
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L689:
	ldr	r3, [fp, #-1320]
	ldrb	r3, [r3, #1387]	@ zero_extendqisi2
	and	r3, r3, #4
	cmp	r3, #0
	beq	.L690
	mov	r1, #34
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L690:
	ldr	r3, [fp, #-1320]
	ldrb	r3, [r3, #1387]	@ zero_extendqisi2
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L691
	mov	r1, #34
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L691:
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #1128]
	cmp	r3, #1
	beq	.L692
	mov	r1, #34
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L692:
	ldr	r3, [fp, #-1320]
	ldrb	r3, [r3, #1132]	@ zero_extendqisi2
	cmp	r3, #30
	beq	.L693
	ldr	r3, [fp, #-1320]
	ldrb	r3, [r3, #1132]	@ zero_extendqisi2
	cmp	r3, #64
	bne	.L694
	sub	r3, fp, #88
	mov	r2, #6
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	getn
	mov	r3, r0
	cmp	r3, #0
	beq	.L694
	ldrb	r3, [fp, #-88]	@ zero_extendqisi2
	cmp	r3, #102
	bne	.L694
	ldrb	r3, [fp, #-87]	@ zero_extendqisi2
	cmp	r3, #105
	bne	.L694
	ldrb	r3, [fp, #-86]	@ zero_extendqisi2
	cmp	r3, #115
	bne	.L694
	ldrb	r3, [fp, #-85]	@ zero_extendqisi2
	cmp	r3, #104
	bne	.L694
	ldrb	r3, [fp, #-84]	@ zero_extendqisi2
	cmp	r3, #101
	bne	.L694
	ldrb	r3, [fp, #-83]	@ zero_extendqisi2
	cmp	r3, #97
	bne	.L694
	ldr	r0, [fp, #-1320]
	bl	get8
	mov	r3, r0
	cmp	r3, #100
	bne	.L694
	ldr	r0, [fp, #-1320]
	bl	get8
	mov	r3, r0
	cmp	r3, #0
	bne	.L694
	mov	r1, #38
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L694:
	mov	r1, #34
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L693:
	ldr	r0, [fp, #-1320]
	bl	get8
	mov	r3, r0
	cmp	r3, #1
	beq	.L695
	mov	r1, #34
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L695:
	sub	r3, fp, #88
	mov	r2, #6
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	getn
	mov	r3, r0
	cmp	r3, #0
	bne	.L696
	mov	r1, #10
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L696:
	sub	r3, fp, #88
	mov	r0, r3
	bl	vorbis_validate
	mov	r3, r0
	cmp	r3, #0
	bne	.L697
	mov	r1, #34
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L697:
	ldr	r0, [fp, #-1320]
	bl	get32
	mov	r3, r0
	cmp	r3, #0
	beq	.L698
	mov	r1, #34
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L698:
	ldr	r0, [fp, #-1320]
	bl	get8
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-1320]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L699
	mov	r1, #34
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L699:
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #4]
	cmp	r3, #16
	ble	.L700
	mov	r1, #5
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L700:
	ldr	r0, [fp, #-1320]
	bl	get32
	mov	r2, r0
	ldr	r3, [fp, #-1320]
	str	r2, [r3]
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L701
	mov	r1, #34
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L701:
	ldr	r0, [fp, #-1320]
	bl	get32
	ldr	r0, [fp, #-1320]
	bl	get32
	ldr	r0, [fp, #-1320]
	bl	get32
	ldr	r0, [fp, #-1320]
	bl	get8
	mov	r3, r0
	strb	r3, [fp, #-1311]
	ldrb	r3, [fp, #-1311]	@ zero_extendqisi2
	and	r3, r3, #15
	str	r3, [fp, #-1228]
	ldrb	r3, [fp, #-1311]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	str	r3, [fp, #-1224]
	mov	r2, #1
	ldr	r3, [fp, #-1228]
	lsl	r2, r2, r3
	ldr	r3, [fp, #-1320]
	str	r2, [r3, #124]
	mov	r2, #1
	ldr	r3, [fp, #-1224]
	lsl	r2, r2, r3
	ldr	r3, [fp, #-1320]
	str	r2, [r3, #128]
	ldr	r3, [fp, #-1228]
	cmp	r3, #5
	ble	.L702
	ldr	r3, [fp, #-1228]
	cmp	r3, #13
	ble	.L703
.L702:
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L703:
	ldr	r3, [fp, #-1224]
	cmp	r3, #5
	ble	.L704
	ldr	r3, [fp, #-1224]
	cmp	r3, #13
	ble	.L705
.L704:
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L705:
	ldr	r2, [fp, #-1228]
	ldr	r3, [fp, #-1224]
	cmp	r2, r3
	ble	.L706
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L706:
	ldr	r0, [fp, #-1320]
	bl	get8
	mov	r3, r0
	strb	r3, [fp, #-1311]
	ldrb	r3, [fp, #-1311]	@ zero_extendqisi2
	and	r3, r3, #1
	cmp	r3, #0
	bne	.L707
	mov	r1, #34
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L707:
	ldr	r0, [fp, #-1320]
	bl	start_page
	mov	r3, r0
	cmp	r3, #0
	bne	.L708
	mov	r3, #0
	b	.L913
.L708:
	ldr	r0, [fp, #-1320]
	bl	start_packet
	mov	r3, r0
	cmp	r3, #0
	bne	.L709
	mov	r3, #0
	b	.L913
.L709:
	ldr	r0, [fp, #-1320]
	bl	next_segment
	mov	r3, r0
	cmp	r3, #0
	bne	.L710
	mov	r3, #0
	b	.L913
.L710:
	ldr	r0, [fp, #-1320]
	bl	get8_packet
	mov	r3, r0
	cmp	r3, #3
	beq	.L711
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L711:
	mov	r3, #0
	str	r3, [fp, #-1300]
	b	.L712
.L713:
	ldr	r0, [fp, #-1320]
	bl	get8_packet
	mov	r3, r0
	and	r1, r3, #255
	sub	r2, fp, #88
	ldr	r3, [fp, #-1300]
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-1300]
	add	r3, r3, #1
	str	r3, [fp, #-1300]
.L712:
	ldr	r3, [fp, #-1300]
	cmp	r3, #5
	ble	.L713
	sub	r3, fp, #88
	mov	r0, r3
	bl	vorbis_validate
	mov	r3, r0
	cmp	r3, #0
	bne	.L714
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L714:
	ldr	r0, [fp, #-1320]
	bl	get32_packet
	str	r0, [fp, #-1220]
	ldr	r3, [fp, #-1220]
	add	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1320]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #20]
	cmp	r3, #0
	bne	.L715
	mov	r1, #3
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L715:
	mov	r3, #0
	str	r3, [fp, #-1300]
	b	.L716
.L717:
	ldr	r0, [fp, #-1320]
	bl	get8_packet
	mov	r1, r0
	ldr	r3, [fp, #-1320]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-1300]
	add	r3, r2, r3
	and	r2, r1, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-1300]
	add	r3, r3, #1
	str	r3, [fp, #-1300]
.L716:
	ldr	r2, [fp, #-1300]
	ldr	r3, [fp, #-1220]
	cmp	r2, r3
	blt	.L717
	ldr	r3, [fp, #-1320]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-1220]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r0, [fp, #-1320]
	bl	get32_packet
	mov	r2, r0
	ldr	r3, [fp, #-1320]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #24]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1320]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #28]
	cmp	r3, #0
	bne	.L718
	mov	r1, #3
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L718:
	mov	r3, #0
	str	r3, [fp, #-1300]
	b	.L719
.L723:
	ldr	r0, [fp, #-1320]
	bl	get32_packet
	str	r0, [fp, #-1220]
	ldr	r3, [fp, #-1220]
	add	r1, r3, #1
	ldr	r3, [fp, #-1320]
	ldr	r2, [r3, #28]
	ldr	r3, [fp, #-1300]
	lsl	r3, r3, #2
	add	r4, r2, r3
	ldr	r0, [fp, #-1320]
	bl	setup_malloc
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, [fp, #-1320]
	ldr	r2, [r3, #28]
	ldr	r3, [fp, #-1300]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L720
	mov	r1, #3
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L720:
	mov	r3, #0
	str	r3, [fp, #-1296]
	b	.L721
.L722:
	ldr	r0, [fp, #-1320]
	bl	get8_packet
	mov	r1, r0
	ldr	r3, [fp, #-1320]
	ldr	r2, [r3, #28]
	ldr	r3, [fp, #-1300]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-1296]
	add	r3, r2, r3
	and	r2, r1, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-1296]
	add	r3, r3, #1
	str	r3, [fp, #-1296]
.L721:
	ldr	r2, [fp, #-1296]
	ldr	r3, [fp, #-1220]
	cmp	r2, r3
	blt	.L722
	ldr	r3, [fp, #-1320]
	ldr	r2, [r3, #28]
	ldr	r3, [fp, #-1300]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-1220]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-1300]
	add	r3, r3, #1
	str	r3, [fp, #-1300]
.L719:
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #24]
	ldr	r2, [fp, #-1300]
	cmp	r2, r3
	blt	.L723
	ldr	r0, [fp, #-1320]
	bl	get8_packet
	mov	r3, r0
	strb	r3, [fp, #-1311]
	ldrb	r3, [fp, #-1311]	@ zero_extendqisi2
	and	r3, r3, #1
	cmp	r3, #0
	bne	.L724
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L724:
	ldr	r3, [fp, #-1320]
	ldrb	r3, [r3, #1388]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	skip
	ldr	r3, [fp, #-1320]
	mov	r2, #0
	strb	r2, [r3, #1388]
.L725:
	ldr	r0, [fp, #-1320]
	bl	next_segment
	str	r0, [fp, #-1220]
	ldr	r1, [fp, #-1220]
	ldr	r0, [fp, #-1320]
	bl	skip
	ldr	r3, [fp, #-1320]
	mov	r2, #0
	strb	r2, [r3, #1388]
	ldr	r3, [fp, #-1220]
	cmp	r3, #0
	bne	.L725
	ldr	r0, [fp, #-1320]
	bl	start_packet
	mov	r3, r0
	cmp	r3, #0
	bne	.L726
	mov	r3, #0
	b	.L913
.L726:
	ldr	r3, [fp, #-1320]
	ldrb	r3, [r3, #60]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L727
	ldr	r0, [fp, #-1320]
	bl	is_whole_packet_present
	mov	r3, r0
	cmp	r3, #0
	bne	.L727
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #112]
	cmp	r3, #21
	bne	.L728
	ldr	r3, [fp, #-1320]
	mov	r2, #20
	str	r2, [r3, #112]
.L728:
	mov	r3, #0
	b	.L913
.L727:
	bl	crc32_init
	ldr	r0, [fp, #-1320]
	bl	get8_packet
	mov	r3, r0
	cmp	r3, #5
	beq	.L729
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L729:
	mov	r3, #0
	str	r3, [fp, #-1300]
	b	.L730
.L731:
	ldr	r0, [fp, #-1320]
	bl	get8_packet
	mov	r3, r0
	and	r1, r3, #255
	sub	r2, fp, #88
	ldr	r3, [fp, #-1300]
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-1300]
	add	r3, r3, #1
	str	r3, [fp, #-1300]
.L730:
	ldr	r3, [fp, #-1300]
	cmp	r3, #5
	ble	.L731
	sub	r3, fp, #88
	mov	r0, r3
	bl	vorbis_validate
	mov	r3, r0
	cmp	r3, #0
	bne	.L732
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L732:
	mov	r1, #8
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	add	r3, r3, #1
	mov	r2, r3
	ldr	r3, [fp, #-1320]
	str	r2, [r3, #132]
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #132]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #6
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #4
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1320]
	str	r2, [r3, #136]
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #136]
	cmp	r3, #0
	bne	.L733
	mov	r1, #3
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L733:
	ldr	r3, [fp, #-1320]
	ldr	r0, [r3, #136]
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #132]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #6
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #4
	mov	r2, r3
	mov	r1, #0
	bl	memset
	mov	r3, #0
	str	r3, [fp, #-1300]
	b	.L734
.L808:
	mov	r3, #0
	str	r3, [fp, #-1272]
	ldr	r3, [fp, #-1320]
	ldr	r1, [r3, #136]
	ldr	r2, [fp, #-1300]
	mov	r3, r2
	lsl	r3, r3, #6
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r1, r3
	str	r3, [fp, #-1148]
	mov	r1, #8
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	strb	r3, [fp, #-1311]
	ldrb	r3, [fp, #-1311]	@ zero_extendqisi2
	cmp	r3, #66
	beq	.L735
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L735:
	mov	r1, #8
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	strb	r3, [fp, #-1311]
	ldrb	r3, [fp, #-1311]	@ zero_extendqisi2
	cmp	r3, #67
	beq	.L736
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L736:
	mov	r1, #8
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	strb	r3, [fp, #-1311]
	ldrb	r3, [fp, #-1311]	@ zero_extendqisi2
	cmp	r3, #86
	beq	.L737
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L737:
	mov	r1, #8
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	strb	r3, [fp, #-1311]
	mov	r1, #8
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	lsl	r2, r3, #8
	ldrb	r3, [fp, #-1311]	@ zero_extendqisi2
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-1148]
	str	r2, [r3]
	mov	r1, #8
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	strb	r3, [fp, #-1311]
	mov	r1, #8
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	strb	r3, [fp, #-1309]
	mov	r1, #8
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	lsl	r3, r3, #16
	ldrb	r2, [fp, #-1309]	@ zero_extendqisi2
	lsl	r2, r2, #8
	add	r2, r3, r2
	ldrb	r3, [fp, #-1311]	@ zero_extendqisi2
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-1148]
	str	r2, [r3, #4]
	mov	r1, #1
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	str	r3, [fp, #-1144]
	ldr	r3, [fp, #-1144]
	cmp	r3, #0
	bne	.L738
	mov	r1, #1
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	and	r2, r3, #255
	b	.L739
.L738:
	mov	r2, #0
.L739:
	ldr	r3, [fp, #-1148]
	strb	r2, [r3, #23]
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L740
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L740
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L740:
	ldr	r3, [fp, #-1148]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L741
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #4]
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	setup_temp_malloc
	str	r0, [fp, #-1268]
	b	.L742
.L741:
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #4]
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1148]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-1268]
.L742:
	ldr	r3, [fp, #-1268]
	cmp	r3, #0
	bne	.L743
	mov	r1, #3
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L743:
	ldr	r3, [fp, #-1144]
	cmp	r3, #0
	beq	.L744
	mov	r3, #0
	str	r3, [fp, #-1264]
	mov	r1, #5
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	add	r3, r3, #1
	str	r3, [fp, #-1260]
	b	.L745
.L748:
	ldr	r3, [fp, #-1148]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-1264]
	sub	r3, r2, r3
	str	r3, [fp, #-1136]
	ldr	r0, [fp, #-1136]
	bl	ilog
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	str	r3, [fp, #-1132]
	ldr	r3, [fp, #-1260]
	cmp	r3, #31
	ble	.L746
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L746:
	ldr	r2, [fp, #-1264]
	ldr	r3, [fp, #-1132]
	add	r2, r2, r3
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	ble	.L747
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L747:
	ldr	r3, [fp, #-1264]
	ldr	r2, [fp, #-1268]
	add	r3, r2, r3
	ldr	r2, [fp, #-1132]
	ldr	r1, [fp, #-1260]
	mov	r0, r3
	bl	memset
	ldr	r2, [fp, #-1264]
	ldr	r3, [fp, #-1132]
	add	r3, r2, r3
	str	r3, [fp, #-1264]
	ldr	r3, [fp, #-1260]
	add	r3, r3, #1
	str	r3, [fp, #-1260]
.L745:
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-1264]
	cmp	r2, r3
	blt	.L748
	b	.L749
.L744:
	mov	r3, #0
	str	r3, [fp, #-1296]
	b	.L750
.L755:
	ldr	r3, [fp, #-1148]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L751
	mov	r1, #1
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	b	.L752
.L751:
	mov	r3, #1
.L752:
	str	r3, [fp, #-1140]
	ldr	r3, [fp, #-1140]
	cmp	r3, #0
	beq	.L753
	mov	r1, #5
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-1296]
	ldr	r1, [fp, #-1268]
	add	r3, r1, r3
	add	r2, r2, #1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-1272]
	add	r3, r3, #1
	str	r3, [fp, #-1272]
	ldr	r3, [fp, #-1296]
	ldr	r2, [fp, #-1268]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #32
	bne	.L754
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L753:
	ldr	r3, [fp, #-1296]
	ldr	r2, [fp, #-1268]
	add	r3, r2, r3
	mvn	r2, #0
	strb	r2, [r3]
.L754:
	ldr	r3, [fp, #-1296]
	add	r3, r3, #1
	str	r3, [fp, #-1296]
.L750:
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-1296]
	cmp	r2, r3
	blt	.L755
.L749:
	ldr	r3, [fp, #-1148]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L756
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #4]
	asr	r3, r3, #2
	ldr	r2, [fp, #-1272]
	cmp	r2, r3
	blt	.L756
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-1320]
	ldr	r2, [r2, #16]
	cmp	r3, r2
	ble	.L757
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r3, [fp, #-1320]
	str	r2, [r3, #16]
.L757:
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #4]
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1148]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	bne	.L758
	mov	r1, #3
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L758:
	ldr	r3, [fp, #-1148]
	ldr	r0, [r3, #8]
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r1, [fp, #-1268]
	bl	memcpy
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r1, [fp, #-1268]
	ldr	r0, [fp, #-1320]
	bl	setup_temp_free
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-1268]
	ldr	r3, [fp, #-1148]
	mov	r2, #0
	strb	r2, [r3, #23]
.L756:
	ldr	r3, [fp, #-1148]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L759
	ldr	r3, [fp, #-1272]
	str	r3, [fp, #-1276]
	b	.L760
.L759:
	mov	r3, #0
	str	r3, [fp, #-1276]
	mov	r3, #0
	str	r3, [fp, #-1296]
	b	.L761
.L763:
	ldr	r3, [fp, #-1296]
	ldr	r2, [fp, #-1268]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #10
	bls	.L762
	ldr	r3, [fp, #-1296]
	ldr	r2, [fp, #-1268]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #255
	beq	.L762
	ldr	r3, [fp, #-1276]
	add	r3, r3, #1
	str	r3, [fp, #-1276]
.L762:
	ldr	r3, [fp, #-1296]
	add	r3, r3, #1
	str	r3, [fp, #-1296]
.L761:
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-1296]
	cmp	r2, r3
	blt	.L763
.L760:
	ldr	r3, [fp, #-1148]
	ldr	r2, [fp, #-1276]
	str	r2, [r3, #2092]
	mov	r3, #0
	str	r3, [fp, #-1280]
	ldr	r3, [fp, #-1148]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L764
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1148]
	str	r2, [r3, #32]
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #32]
	cmp	r3, #0
	bne	.L765
	mov	r1, #3
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L764:
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #2092]
	cmp	r3, #0
	beq	.L766
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #2092]
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1148]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	bne	.L767
	mov	r1, #3
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L917:
	.align	2
.L916:
	.word	.LC24
.L767:
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #2092]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	setup_temp_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1148]
	str	r2, [r3, #32]
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #32]
	cmp	r3, #0
	bne	.L768
	mov	r1, #3
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L768:
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #2092]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	setup_temp_malloc
	str	r0, [fp, #-1280]
	ldr	r3, [fp, #-1280]
	cmp	r3, #0
	bne	.L766
	mov	r1, #3
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L766:
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #2092]
	lsl	r3, r3, #3
	add	r3, r2, r3
	str	r3, [fp, #-1128]
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-1128]
	cmp	r2, r3
	bls	.L765
	ldr	r3, [fp, #-1320]
	ldr	r2, [fp, #-1128]
	str	r2, [r3, #16]
.L765:
	ldr	r3, [fp, #-1148]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-1280]
	ldr	r1, [fp, #-1268]
	ldr	r0, [fp, #-1148]
	bl	compute_codewords
	mov	r3, r0
	cmp	r3, #0
	bne	.L769
	ldr	r3, [fp, #-1148]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L770
	mov	r2, #0
	ldr	r1, [fp, #-1280]
	ldr	r0, [fp, #-1320]
	bl	setup_temp_free
.L770:
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L769:
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #2092]
	cmp	r3, #0
	beq	.L771
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #2092]
	add	r3, r3, #1
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1148]
	str	r2, [r3, #2084]
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #2084]
	cmp	r3, #0
	bne	.L772
	mov	r1, #3
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L772:
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #2092]
	add	r3, r3, #1
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1148]
	str	r2, [r3, #2088]
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #2088]
	cmp	r3, #0
	bne	.L773
	mov	r1, #3
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L773:
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #2088]
	add	r2, r3, #4
	ldr	r3, [fp, #-1148]
	str	r2, [r3, #2088]
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #2088]
	sub	r3, r3, #4
	mvn	r2, #0
	str	r2, [r3]
	ldr	r2, [fp, #-1280]
	ldr	r1, [fp, #-1268]
	ldr	r0, [fp, #-1148]
	bl	compute_sorted_huffman
.L771:
	ldr	r3, [fp, #-1148]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L774
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #2092]
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r1, [fp, #-1280]
	ldr	r0, [fp, #-1320]
	bl	setup_temp_free
	ldr	r3, [fp, #-1148]
	ldr	r1, [r3, #32]
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #2092]
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r0, [fp, #-1320]
	bl	setup_temp_free
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r1, [fp, #-1268]
	ldr	r0, [fp, #-1320]
	bl	setup_temp_free
	ldr	r3, [fp, #-1148]
	mov	r2, #0
	str	r2, [r3, #32]
.L774:
	ldr	r0, [fp, #-1148]
	bl	compute_accelerated_huffman
	mov	r1, #4
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-1148]
	strb	r2, [r3, #21]
	ldr	r3, [fp, #-1148]
	ldrb	r3, [r3, #21]	@ zero_extendqisi2
	cmp	r3, #2
	bls	.L775
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L775:
	ldr	r3, [fp, #-1148]
	ldrb	r3, [r3, #21]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L776
	mov	r1, #32
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	mov	r0, r3
	bl	float32_unpack
	mov	r2, r0
	ldr	r3, [fp, #-1148]
	str	r2, [r3, #12]	@ float
	mov	r1, #32
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	mov	r0, r3
	bl	float32_unpack
	mov	r2, r0
	ldr	r3, [fp, #-1148]
	str	r2, [r3, #16]	@ float
	mov	r1, #4
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	and	r3, r3, #255
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, [fp, #-1148]
	strb	r2, [r3, #20]
	mov	r1, #1
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-1148]
	strb	r2, [r3, #22]
	ldr	r3, [fp, #-1148]
	ldrb	r3, [r3, #21]	@ zero_extendqisi2
	cmp	r3, #1
	bne	.L777
	ldr	r3, [fp, #-1148]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	lookup1_values
	str	r0, [fp, #-1124]
	ldr	r3, [fp, #-1124]
	cmp	r3, #0
	bge	.L778
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L778:
	ldr	r2, [fp, #-1124]
	ldr	r3, [fp, #-1148]
	str	r2, [r3, #24]
	b	.L779
.L777:
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-1148]
	ldr	r2, [r2]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-1148]
	str	r2, [r3, #24]
.L779:
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #24]
	cmp	r3, #0
	bne	.L780
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L780:
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #24]
	lsl	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	setup_temp_malloc
	str	r0, [fp, #-1120]
	ldr	r3, [fp, #-1120]
	cmp	r3, #0
	bne	.L781
	mov	r1, #3
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L781:
	mov	r3, #0
	str	r3, [fp, #-1296]
	b	.L782
.L784:
	ldr	r3, [fp, #-1148]
	ldrb	r3, [r3, #20]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	str	r3, [fp, #-1092]
	ldr	r3, [fp, #-1092]
	cmn	r3, #1
	bne	.L783
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #24]
	lsl	r3, r3, #1
	mov	r2, r3
	ldr	r1, [fp, #-1120]
	ldr	r0, [fp, #-1320]
	bl	setup_temp_free
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L783:
	ldr	r3, [fp, #-1296]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-1120]
	add	r3, r2, r3
	ldr	r2, [fp, #-1092]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-1296]
	add	r3, r3, #1
	str	r3, [fp, #-1296]
.L782:
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #24]
	mov	r2, r3
	ldr	r3, [fp, #-1296]
	cmp	r3, r2
	blt	.L784
	ldr	r3, [fp, #-1148]
	ldrb	r3, [r3, #21]	@ zero_extendqisi2
	cmp	r3, #1
	bne	.L785
	ldr	r3, [fp, #-1148]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	str	r3, [fp, #-1112]
	mov	r3, #0
	str	r3, [fp, #-1256]	@ float
	ldr	r3, [fp, #-1112]
	cmp	r3, #0
	beq	.L786
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #2092]
	cmp	r3, #0
	beq	.L915
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #2092]
	mov	r2, r3
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1148]
	str	r2, [r3, #28]
	b	.L789
.L786:
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1148]
	str	r2, [r3, #28]
.L789:
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #28]
	cmp	r3, #0
	bne	.L790
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #24]
	lsl	r3, r3, #1
	mov	r2, r3
	ldr	r1, [fp, #-1120]
	ldr	r0, [fp, #-1320]
	bl	setup_temp_free
	mov	r1, #3
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L790:
	ldr	r3, [fp, #-1112]
	cmp	r3, #0
	beq	.L791
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #2092]
	b	.L792
.L791:
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #4]
.L792:
	str	r3, [fp, #-1108]
	mov	r3, #0
	str	r3, [fp, #-1296]
	b	.L793
.L803:
	ldr	r3, [fp, #-1112]
	cmp	r3, #0
	beq	.L794
	ldr	r3, [fp, #-1148]
	ldr	r2, [r3, #2088]
	ldr	r3, [fp, #-1296]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	b	.L795
.L794:
	ldr	r3, [fp, #-1296]
.L795:
	str	r3, [fp, #-1104]
	mov	r3, #1
	str	r3, [fp, #-1252]
	mov	r3, #0
	str	r3, [fp, #-1292]
	b	.L796
.L802:
	ldr	r1, [fp, #-1252]
	ldr	r0, [fp, #-1104]
	bl	__aeabi_uidiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #24]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidivmod
	mov	r3, r1
	str	r3, [fp, #-1100]
	ldr	r3, [fp, #-1100]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-1120]
	add	r3, r2, r3
	ldrh	r3, [r3]
	mov	r0, r3
	bl	__aeabi_ui2f
	mov	r3, r0
	str	r3, [fp, #-1096]	@ float
	ldr	r3, [fp, #-1100]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-1120]
	add	r3, r2, r3
	ldrh	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r2, r0
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #16]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #12]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-1256]	@ float
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-1096]	@ float
	ldr	r3, [fp, #-1148]
	ldr	r2, [r3, #28]
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3]
	ldr	r1, [fp, #-1296]
	mul	r1, r3, r1
	ldr	r3, [fp, #-1292]
	add	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-1096]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-1148]
	ldrb	r3, [r3, #22]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L797
	ldr	r3, [fp, #-1096]	@ float
	str	r3, [fp, #-1256]	@ float
.L797:
	ldr	r3, [fp, #-1292]
	add	r2, r3, #1
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3]
	cmp	r2, r3
	bge	.L798
	ldr	r3, [fp, #-1148]
	ldr	r2, [r3, #24]
	mov	r1, #0
	ldr	r3, [fp, #-1252]
	umull	r0, r3, r2, r3
	cmp	r3, #0
	beq	.L799
	mov	r1, #1
.L799:
	mov	r3, r1
	cmp	r3, #0
	beq	.L801
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #24]
	lsl	r3, r3, #1
	mov	r2, r3
	ldr	r1, [fp, #-1120]
	ldr	r0, [fp, #-1320]
	bl	setup_temp_free
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L801:
	ldr	r3, [fp, #-1148]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-1252]
	mul	r3, r2, r3
	str	r3, [fp, #-1252]
.L798:
	ldr	r3, [fp, #-1292]
	add	r3, r3, #1
	str	r3, [fp, #-1292]
.L796:
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3]
	ldr	r2, [fp, #-1292]
	cmp	r2, r3
	blt	.L802
	ldr	r3, [fp, #-1296]
	add	r3, r3, #1
	str	r3, [fp, #-1296]
.L793:
	ldr	r2, [fp, #-1296]
	ldr	r3, [fp, #-1108]
	cmp	r2, r3
	blt	.L803
	ldr	r3, [fp, #-1148]
	mov	r2, #2
	strb	r2, [r3, #21]
	b	.L788
.L785:
	mov	r3, #0
	str	r3, [fp, #-1248]	@ float
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #24]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1148]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #28]
	cmp	r3, #0
	bne	.L804
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #24]
	lsl	r3, r3, #1
	mov	r2, r3
	ldr	r1, [fp, #-1120]
	ldr	r0, [fp, #-1320]
	bl	setup_temp_free
	mov	r1, #3
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L804:
	mov	r3, #0
	str	r3, [fp, #-1296]
	b	.L805
.L807:
	ldr	r3, [fp, #-1296]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-1120]
	add	r3, r2, r3
	ldrh	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2f
	mov	r2, r0
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #16]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #12]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-1248]	@ float
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-1116]	@ float
	ldr	r3, [fp, #-1148]
	ldr	r2, [r3, #28]
	ldr	r3, [fp, #-1296]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-1116]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-1148]
	ldrb	r3, [r3, #22]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L806
	ldr	r3, [fp, #-1116]	@ float
	str	r3, [fp, #-1248]	@ float
.L806:
	ldr	r3, [fp, #-1296]
	add	r3, r3, #1
	str	r3, [fp, #-1296]
.L805:
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #24]
	mov	r2, r3
	ldr	r3, [fp, #-1296]
	cmp	r3, r2
	blt	.L807
	b	.L788
.L915:
	nop
.L788:
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3, #24]
	lsl	r3, r3, #1
	mov	r2, r3
	ldr	r1, [fp, #-1120]
	ldr	r0, [fp, #-1320]
	bl	setup_temp_free
.L776:
	ldr	r3, [fp, #-1300]
	add	r3, r3, #1
	str	r3, [fp, #-1300]
.L734:
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #132]
	ldr	r2, [fp, #-1300]
	cmp	r2, r3
	blt	.L808
	mov	r1, #6
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	and	r3, r3, #255
	add	r3, r3, #1
	strb	r3, [fp, #-1311]
	mov	r3, #0
	str	r3, [fp, #-1300]
	b	.L809
.L811:
	mov	r1, #16
	ldr	r0, [fp, #-1320]
	bl	get_bits
	str	r0, [fp, #-1152]
	ldr	r3, [fp, #-1152]
	cmp	r3, #0
	beq	.L810
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L810:
	ldr	r3, [fp, #-1300]
	add	r3, r3, #1
	str	r3, [fp, #-1300]
.L809:
	ldrb	r3, [fp, #-1311]	@ zero_extendqisi2
	ldr	r2, [fp, #-1300]
	cmp	r2, r3
	blt	.L811
	mov	r1, #6
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	add	r3, r3, #1
	mov	r2, r3
	ldr	r3, [fp, #-1320]
	str	r2, [r3, #140]
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #140]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r2, r3, #3
	sub	r2, r2, r3
	lsl	r3, r2, #2
	mov	r2, r3
	mov	r3, r2
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1320]
	str	r2, [r3, #272]
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #272]
	cmp	r3, #0
	bne	.L812
	mov	r1, #3
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L812:
	mov	r3, #0
	str	r3, [fp, #-1300]
	b	.L813
.L842:
	mov	r1, #16
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r1, [fp, #-1320]
	ldr	r3, [fp, #-1300]
	add	r3, r3, #72
	lsl	r3, r3, #1
	add	r3, r1, r3
	strh	r2, [r3]	@ movhi
	ldr	r2, [fp, #-1320]
	ldr	r3, [fp, #-1300]
	add	r3, r3, #72
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	cmp	r3, #1
	bls	.L814
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L814:
	ldr	r2, [fp, #-1320]
	ldr	r3, [fp, #-1300]
	add	r3, r3, #72
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	cmp	r3, #0
	bne	.L815
	ldr	r3, [fp, #-1320]
	ldr	r1, [r3, #272]
	ldr	r2, [fp, #-1300]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r2, r3, #3
	sub	r2, r2, r3
	lsl	r3, r2, #2
	mov	r2, r3
	mov	r3, r2
	add	r3, r1, r3
	str	r3, [fp, #-1156]
	mov	r1, #8
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-1156]
	strb	r2, [r3]
	mov	r1, #16
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-1156]
	strh	r2, [r3, #2]	@ movhi
	mov	r1, #16
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-1156]
	strh	r2, [r3, #4]	@ movhi
	mov	r1, #6
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-1156]
	strb	r2, [r3, #6]
	mov	r1, #8
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-1156]
	strb	r2, [r3, #7]
	mov	r1, #4
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	and	r3, r3, #255
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, [fp, #-1156]
	strb	r2, [r3, #8]
	mov	r3, #0
	str	r3, [fp, #-1296]
	b	.L816
.L817:
	mov	r1, #8
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	and	r1, r3, #255
	ldr	r2, [fp, #-1156]
	ldr	r3, [fp, #-1296]
	add	r3, r2, r3
	add	r3, r3, #9
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-1296]
	add	r3, r3, #1
	str	r3, [fp, #-1296]
.L816:
	ldr	r3, [fp, #-1156]
	ldrb	r3, [r3, #8]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1296]
	cmp	r3, r2
	blt	.L817
	mov	r1, #4
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L815:
	ldr	r3, [fp, #-1320]
	ldr	r1, [r3, #272]
	ldr	r2, [fp, #-1300]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r2, r3, #3
	sub	r2, r2, r3
	lsl	r3, r2, #2
	mov	r2, r3
	mov	r3, r2
	add	r3, r1, r3
	str	r3, [fp, #-1164]
	mvn	r3, #0
	str	r3, [fp, #-1244]
	mov	r1, #5
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-1164]
	strb	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-1296]
	b	.L818
.L820:
	mov	r1, #4
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	and	r1, r3, #255
	ldr	r2, [fp, #-1164]
	ldr	r3, [fp, #-1296]
	add	r3, r2, r3
	add	r3, r3, #1
	mov	r2, r1
	strb	r2, [r3]
	ldr	r2, [fp, #-1164]
	ldr	r3, [fp, #-1296]
	add	r3, r2, r3
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1244]
	cmp	r3, r2
	bge	.L819
	ldr	r2, [fp, #-1164]
	ldr	r3, [fp, #-1296]
	add	r3, r2, r3
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-1244]
.L819:
	ldr	r3, [fp, #-1296]
	add	r3, r3, #1
	str	r3, [fp, #-1296]
.L818:
	ldr	r3, [fp, #-1164]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1296]
	cmp	r3, r2
	blt	.L820
	mov	r3, #0
	str	r3, [fp, #-1296]
	b	.L821
.L827:
	mov	r1, #3
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	and	r3, r3, #255
	add	r3, r3, #1
	and	r1, r3, #255
	ldr	r2, [fp, #-1164]
	ldr	r3, [fp, #-1296]
	add	r3, r2, r3
	add	r3, r3, #33
	mov	r2, r1
	strb	r2, [r3]
	mov	r1, #2
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	and	r1, r3, #255
	ldr	r2, [fp, #-1164]
	ldr	r3, [fp, #-1296]
	add	r3, r2, r3
	add	r3, r3, #49
	mov	r2, r1
	strb	r2, [r3]
	ldr	r2, [fp, #-1164]
	ldr	r3, [fp, #-1296]
	add	r3, r2, r3
	add	r3, r3, #49
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L822
	mov	r1, #8
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	and	r1, r3, #255
	ldr	r2, [fp, #-1164]
	ldr	r3, [fp, #-1296]
	add	r3, r2, r3
	add	r3, r3, #65
	mov	r2, r1
	strb	r2, [r3]
	ldr	r2, [fp, #-1164]
	ldr	r3, [fp, #-1296]
	add	r3, r2, r3
	add	r3, r3, #65
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #132]
	cmp	r2, r3
	blt	.L822
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L822:
	mov	r3, #0
	str	r3, [fp, #-1292]
	b	.L824
.L826:
	mov	r1, #8
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r1, [fp, #-1164]
	ldr	r3, [fp, #-1296]
	lsl	r0, r3, #3
	ldr	r3, [fp, #-1292]
	add	r3, r0, r3
	add	r3, r3, #40
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #2
	strh	r2, [r3]	@ movhi
	ldr	r2, [fp, #-1164]
	ldr	r3, [fp, #-1296]
	lsl	r1, r3, #3
	ldr	r3, [fp, #-1292]
	add	r3, r1, r3
	add	r3, r3, #40
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #2
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #132]
	cmp	r2, r3
	blt	.L825
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L825:
	ldr	r3, [fp, #-1292]
	add	r3, r3, #1
	str	r3, [fp, #-1292]
.L824:
	ldr	r2, [fp, #-1164]
	ldr	r3, [fp, #-1296]
	add	r3, r2, r3
	add	r3, r3, #49
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, #1
	lsl	r3, r3, r2
	ldr	r2, [fp, #-1292]
	cmp	r2, r3
	blt	.L826
	ldr	r3, [fp, #-1296]
	add	r3, r3, #1
	str	r3, [fp, #-1296]
.L821:
	ldr	r2, [fp, #-1296]
	ldr	r3, [fp, #-1244]
	cmp	r2, r3
	ble	.L827
	mov	r1, #2
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	and	r3, r3, #255
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, [fp, #-1164]
	strb	r2, [r3, #1588]
	mov	r1, #4
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-1164]
	strb	r2, [r3, #1589]
	ldr	r3, [fp, #-1164]
	add	r3, r3, #336
	add	r3, r3, #2
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-1164]
	ldrb	r3, [r3, #1589]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, #1
	lsl	r3, r3, r2
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-1164]
	add	r3, r3, #340
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-1164]
	mov	r2, #2
	str	r2, [r3, #1592]
	mov	r3, #0
	str	r3, [fp, #-1296]
	b	.L828
.L831:
	ldr	r2, [fp, #-1164]
	ldr	r3, [fp, #-1296]
	add	r3, r2, r3
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-1160]
	mov	r3, #0
	str	r3, [fp, #-1292]
	b	.L829
.L830:
	ldr	r3, [fp, #-1164]
	ldrb	r3, [r3, #1589]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r2, r0
	ldr	r3, [fp, #-1164]
	ldr	r3, [r3, #1592]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	ldr	r1, [fp, #-1164]
	add	r3, r3, #168
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #2
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-1164]
	ldr	r3, [r3, #1592]
	add	r2, r3, #1
	ldr	r3, [fp, #-1164]
	str	r2, [r3, #1592]
	ldr	r3, [fp, #-1292]
	add	r3, r3, #1
	str	r3, [fp, #-1292]
.L829:
	ldr	r2, [fp, #-1164]
	ldr	r3, [fp, #-1160]
	add	r3, r2, r3
	add	r3, r3, #33
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1292]
	cmp	r3, r2
	blt	.L830
	ldr	r3, [fp, #-1296]
	add	r3, r3, #1
	str	r3, [fp, #-1296]
.L828:
	ldr	r3, [fp, #-1164]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1296]
	cmp	r3, r2
	blt	.L831
	mov	r3, #0
	str	r3, [fp, #-1296]
	b	.L832
.L833:
	ldr	r2, [fp, #-1164]
	ldr	r3, [fp, #-1296]
	add	r3, r3, #168
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #2
	ldrh	r2, [r3]
	sub	r3, fp, #12
	sub	r3, r3, #1072
	sub	r3, r3, #4
	ldr	r1, [fp, #-1296]
	lsl	r1, r1, #2
	add	r3, r3, r1
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-1296]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	sub	r3, fp, #12
	sub	r3, r3, #1072
	sub	r3, r3, #4
	ldr	r1, [fp, #-1296]
	lsl	r1, r1, #2
	add	r3, r3, r1
	add	r3, r3, #2
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-1296]
	add	r3, r3, #1
	str	r3, [fp, #-1296]
.L832:
	ldr	r3, [fp, #-1164]
	ldr	r3, [r3, #1592]
	ldr	r2, [fp, #-1296]
	cmp	r2, r3
	blt	.L833
	ldr	r3, [fp, #-1164]
	ldr	r3, [r3, #1592]
	mov	r1, r3
	sub	r0, fp, #1072
	sub	r0, r0, #12
	sub	r0, r0, #4
	ldr	r3, .L918
	mov	r2, #4
	bl	qsort
	mov	r3, #0
	str	r3, [fp, #-1296]
	b	.L834
.L836:
	sub	r3, fp, #12
	sub	r3, r3, #1072
	sub	r3, r3, #4
	ldr	r2, [fp, #-1296]
	lsl	r2, r2, #2
	add	r3, r3, r2
	ldrh	r2, [r3]
	ldr	r3, [fp, #-1296]
	add	r1, r3, #1
	sub	r3, fp, #12
	sub	r3, r3, #1072
	sub	r3, r3, #4
	lsl	r1, r1, #2
	add	r3, r3, r1
	ldrh	r3, [r3]
	cmp	r2, r3
	bne	.L835
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L835:
	ldr	r3, [fp, #-1296]
	add	r3, r3, #1
	str	r3, [fp, #-1296]
.L834:
	ldr	r3, [fp, #-1164]
	ldr	r3, [r3, #1592]
	sub	r3, r3, #1
	ldr	r2, [fp, #-1296]
	cmp	r2, r3
	blt	.L836
	mov	r3, #0
	str	r3, [fp, #-1296]
	b	.L837
.L838:
	sub	r3, fp, #12
	sub	r3, r3, #1072
	sub	r3, r3, #4
	ldr	r2, [fp, #-1296]
	lsl	r2, r2, #2
	add	r3, r3, r2
	add	r3, r3, #2
	ldrh	r3, [r3]
	and	r1, r3, #255
	ldr	r2, [fp, #-1164]
	ldr	r3, [fp, #-1296]
	add	r3, r2, r3
	add	r3, r3, #836
	add	r3, r3, #2
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-1296]
	add	r3, r3, #1
	str	r3, [fp, #-1296]
.L837:
	ldr	r3, [fp, #-1164]
	ldr	r3, [r3, #1592]
	ldr	r2, [fp, #-1296]
	cmp	r2, r3
	blt	.L838
	mov	r3, #2
	str	r3, [fp, #-1296]
	b	.L839
.L840:
	mov	r3, #0
	str	r3, [fp, #-1308]
	mov	r3, #0
	str	r3, [fp, #-1304]
	ldr	r3, [fp, #-1164]
	add	r0, r3, #336
	add	r0, r0, #2
	sub	r3, fp, #1280
	sub	r3, r3, #12
	sub	r3, r3, #12
	sub	r2, fp, #1296
	sub	r2, r2, #12
	ldr	r1, [fp, #-1296]
	bl	neighbors
	ldr	r3, [fp, #-1308]
	and	r1, r3, #255
	ldr	r3, [fp, #-1164]
	ldr	r2, [fp, #-1296]
	add	r2, r2, #544
	strb	r1, [r3, r2, lsl #1]
	ldr	r3, [fp, #-1304]
	and	r1, r3, #255
	ldr	r2, [fp, #-1164]
	ldr	r3, [fp, #-1296]
	lsl	r3, r3, #1
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3, #1089]
	ldr	r3, [fp, #-1296]
	add	r3, r3, #1
	str	r3, [fp, #-1296]
.L839:
	ldr	r3, [fp, #-1164]
	ldr	r3, [r3, #1592]
	ldr	r2, [fp, #-1296]
	cmp	r2, r3
	blt	.L840
	ldr	r3, [fp, #-1164]
	ldr	r3, [r3, #1592]
	ldr	r2, [fp, #-1284]
	cmp	r2, r3
	bge	.L841
	ldr	r3, [fp, #-1164]
	ldr	r3, [r3, #1592]
	str	r3, [fp, #-1284]
.L841:
	ldr	r3, [fp, #-1300]
	add	r3, r3, #1
	str	r3, [fp, #-1300]
.L813:
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #140]
	ldr	r2, [fp, #-1300]
	cmp	r2, r3
	blt	.L842
	mov	r1, #6
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	add	r3, r3, #1
	mov	r2, r3
	ldr	r3, [fp, #-1320]
	str	r2, [r3, #276]
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #276]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1320]
	str	r2, [r3, #408]
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #408]
	cmp	r3, #0
	bne	.L843
	mov	r1, #3
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L843:
	ldr	r3, [fp, #-1320]
	ldr	r0, [r3, #408]
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #276]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	mov	r1, #0
	bl	memset
	mov	r3, #0
	str	r3, [fp, #-1300]
	b	.L844
.L865:
	ldr	r3, [fp, #-1320]
	ldr	r1, [r3, #408]
	ldr	r2, [fp, #-1300]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	str	r3, [fp, #-1172]
	mov	r1, #16
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r1, [fp, #-1320]
	ldr	r3, [fp, #-1300]
	add	r3, r3, #140
	lsl	r3, r3, #1
	add	r3, r1, r3
	strh	r2, [r3]	@ movhi
	ldr	r2, [fp, #-1320]
	ldr	r3, [fp, #-1300]
	add	r3, r3, #140
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrh	r3, [r3]
	cmp	r3, #2
	bls	.L845
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L845:
	mov	r1, #24
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r2, r0
	ldr	r3, [fp, #-1172]
	str	r2, [r3]
	mov	r1, #24
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r2, r0
	ldr	r3, [fp, #-1172]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-1172]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-1172]
	ldr	r3, [r3]
	cmp	r2, r3
	bcs	.L847
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L847:
	mov	r1, #24
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	add	r2, r3, #1
	ldr	r3, [fp, #-1172]
	str	r2, [r3, #8]
	mov	r1, #6
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	and	r3, r3, #255
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, [fp, #-1172]
	strb	r2, [r3, #12]
	mov	r1, #8
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-1172]
	strb	r2, [r3, #13]
	ldr	r3, [fp, #-1172]
	ldrb	r3, [r3, #13]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #132]
	cmp	r2, r3
	blt	.L848
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L848:
	mov	r3, #0
	str	r3, [fp, #-1296]
	b	.L849
.L851:
	mov	r3, #0
	strb	r3, [fp, #-1312]
	mov	r1, #3
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	strb	r3, [fp, #-1310]
	mov	r1, #1
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	cmp	r3, #0
	beq	.L850
	mov	r1, #5
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	strb	r3, [fp, #-1312]
.L850:
	ldrb	r3, [fp, #-1312]
	lsl	r3, r3, #3
	and	r2, r3, #255
	ldrb	r3, [fp, #-1310]
	add	r3, r2, r3
	and	r1, r3, #255
	sub	r2, fp, #80
	ldr	r3, [fp, #-1296]
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-1296]
	add	r3, r3, #1
	str	r3, [fp, #-1296]
.L849:
	ldr	r3, [fp, #-1172]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1296]
	cmp	r3, r2
	blt	.L851
	ldr	r3, [fp, #-1172]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	lsl	r3, r3, #4
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1172]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-1172]
	ldr	r3, [r3, #20]
	cmp	r3, #0
	bne	.L852
	mov	r1, #3
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L852:
	mov	r3, #0
	str	r3, [fp, #-1296]
	b	.L853
.L858:
	mov	r3, #0
	str	r3, [fp, #-1292]
	b	.L854
.L857:
	sub	r2, fp, #80
	ldr	r3, [fp, #-1296]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1292]
	asr	r3, r2, r3
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L855
	mov	r1, #8
	ldr	r0, [fp, #-1320]
	bl	get_bits
	ldr	r3, [fp, #-1172]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-1296]
	lsl	r3, r3, #4
	add	r1, r2, r3
	lsl	r3, r0, #16
	asr	r2, r3, #16
	ldr	r3, [fp, #-1292]
	lsl	r3, r3, #1
	add	r3, r1, r3
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-1172]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-1296]
	lsl	r3, r3, #4
	add	r2, r2, r3
	ldr	r3, [fp, #-1292]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #132]
	cmp	r2, r3
	blt	.L856
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L855:
	ldr	r3, [fp, #-1172]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-1296]
	lsl	r3, r3, #4
	add	r2, r2, r3
	ldr	r3, [fp, #-1292]
	lsl	r3, r3, #1
	add	r3, r2, r3
	mvn	r2, #0
	strh	r2, [r3]	@ movhi
.L856:
	ldr	r3, [fp, #-1292]
	add	r3, r3, #1
	str	r3, [fp, #-1292]
.L854:
	ldr	r3, [fp, #-1292]
	cmp	r3, #7
	ble	.L857
	ldr	r3, [fp, #-1296]
	add	r3, r3, #1
	str	r3, [fp, #-1296]
.L853:
	ldr	r3, [fp, #-1172]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1296]
	cmp	r3, r2
	blt	.L858
	ldr	r3, [fp, #-1320]
	ldr	r1, [r3, #136]
	ldr	r3, [fp, #-1172]
	ldrb	r3, [r3, #13]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #6
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r1, r3
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1172]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-1172]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L859
	mov	r1, #3
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L859:
	ldr	r3, [fp, #-1172]
	ldr	r0, [r3, #16]
	ldr	r3, [fp, #-1320]
	ldr	r1, [r3, #136]
	ldr	r3, [fp, #-1172]
	ldrb	r3, [r3, #13]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #6
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r1, r3
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	mov	r2, r3
	mov	r1, #0
	bl	memset
	mov	r3, #0
	str	r3, [fp, #-1296]
	b	.L860
.L864:
	ldr	r3, [fp, #-1320]
	ldr	r1, [r3, #136]
	ldr	r3, [fp, #-1172]
	ldrb	r3, [r3, #13]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #6
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r1, r3
	ldr	r3, [r3]
	str	r3, [fp, #-1168]
	ldr	r3, [fp, #-1296]
	str	r3, [fp, #-1240]
	ldr	r3, [fp, #-1172]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-1296]
	lsl	r3, r3, #2
	add	r4, r2, r3
	ldr	r1, [fp, #-1168]
	ldr	r0, [fp, #-1320]
	bl	setup_malloc
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, [fp, #-1172]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-1296]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L861
	mov	r1, #3
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L861:
	ldr	r3, [fp, #-1168]
	sub	r3, r3, #1
	str	r3, [fp, #-1292]
	b	.L862
.L863:
	ldr	r3, [fp, #-1172]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1240]
	mov	r1, r2
	mov	r0, r3
	bl	__aeabi_idivmod
	mov	r3, r1
	mov	r1, r3
	ldr	r3, [fp, #-1172]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-1296]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-1292]
	add	r3, r2, r3
	and	r2, r1, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-1172]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, [fp, #-1240]
	bl	__aeabi_idiv
	mov	r3, r0
	str	r3, [fp, #-1240]
	ldr	r3, [fp, #-1292]
	sub	r3, r3, #1
	str	r3, [fp, #-1292]
.L862:
	ldr	r3, [fp, #-1292]
	cmp	r3, #0
	bge	.L863
	ldr	r3, [fp, #-1296]
	add	r3, r3, #1
	str	r3, [fp, #-1296]
.L860:
	ldr	r3, [fp, #-1320]
	ldr	r1, [r3, #136]
	ldr	r3, [fp, #-1172]
	ldrb	r3, [r3, #13]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #6
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r1, r3
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-1296]
	cmp	r2, r3
	blt	.L864
	ldr	r3, [fp, #-1300]
	add	r3, r3, #1
	str	r3, [fp, #-1300]
.L844:
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #276]
	ldr	r2, [fp, #-1300]
	cmp	r2, r3
	blt	.L865
	mov	r1, #6
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	add	r3, r3, #1
	mov	r2, r3
	ldr	r3, [fp, #-1320]
	str	r2, [r3, #412]
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #412]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1320]
	str	r2, [r3, #416]
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #416]
	cmp	r3, #0
	bne	.L866
	mov	r1, #3
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L866:
	ldr	r3, [fp, #-1320]
	ldr	r0, [r3, #416]
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #412]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	mov	r1, #0
	bl	memset
	mov	r3, #0
	str	r3, [fp, #-1300]
	b	.L867
.L893:
	ldr	r3, [fp, #-1320]
	ldr	r1, [r3, #416]
	ldr	r2, [fp, #-1300]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	str	r3, [fp, #-1180]
	mov	r1, #16
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	str	r3, [fp, #-1176]
	ldr	r3, [fp, #-1176]
	cmp	r3, #0
	beq	.L868
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L868:
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #4]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1180]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-1180]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L869
	mov	r1, #3
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L869:
	mov	r1, #1
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	cmp	r3, #0
	beq	.L870
	mov	r1, #4
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	and	r3, r3, #255
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, [fp, #-1180]
	strb	r2, [r3, #8]
	b	.L871
.L870:
	ldr	r3, [fp, #-1180]
	mov	r2, #1
	strb	r2, [r3, #8]
.L871:
	ldr	r3, [fp, #-1180]
	ldrb	r3, [r3, #8]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1288]
	cmp	r3, r2
	bge	.L872
	ldr	r3, [fp, #-1180]
	ldrb	r3, [r3, #8]	@ zero_extendqisi2
	str	r3, [fp, #-1288]
.L872:
	mov	r1, #1
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	cmp	r3, #0
	beq	.L873
	mov	r1, #8
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-1180]
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-1180]
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	ble	.L874
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L874:
	mov	r3, #0
	str	r3, [fp, #-1292]
	b	.L875
.L879:
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #4]
	sub	r3, r3, #1
	mov	r0, r3
	bl	ilog
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	get_bits
	ldr	r3, [fp, #-1180]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-1292]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r1, r3
	and	r2, r0, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #4]
	sub	r3, r3, #1
	mov	r0, r3
	bl	ilog
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	get_bits
	ldr	r3, [fp, #-1180]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-1292]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r1, r3
	and	r2, r0, #255
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-1180]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-1292]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	blt	.L876
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L876:
	ldr	r3, [fp, #-1180]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-1292]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r1, r3
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	blt	.L877
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L877:
	ldr	r3, [fp, #-1180]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-1292]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r1, r3
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-1180]
	ldr	r0, [r3, #4]
	ldr	r2, [fp, #-1292]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r0, r3
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r1, r3
	bne	.L878
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L878:
	ldr	r3, [fp, #-1292]
	add	r3, r3, #1
	str	r3, [fp, #-1292]
.L875:
	ldr	r3, [fp, #-1180]
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-1292]
	cmp	r3, r2
	blt	.L879
	b	.L880
.L873:
	ldr	r3, [fp, #-1180]
	mov	r2, #0
	strh	r2, [r3]	@ movhi
.L880:
	mov	r1, #2
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	cmp	r3, #0
	beq	.L881
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L881:
	ldr	r3, [fp, #-1180]
	ldrb	r3, [r3, #8]	@ zero_extendqisi2
	cmp	r3, #1
	bls	.L882
	mov	r3, #0
	str	r3, [fp, #-1296]
	b	.L883
.L885:
	mov	r1, #4
	ldr	r0, [fp, #-1320]
	bl	get_bits
	ldr	r3, [fp, #-1180]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-1296]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r1, r3
	and	r2, r0, #255
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-1180]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-1296]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r1, r3
	ldrb	r2, [r3, #2]	@ zero_extendqisi2
	ldr	r3, [fp, #-1180]
	ldrb	r3, [r3, #8]	@ zero_extendqisi2
	cmp	r2, r3
	bcc	.L884
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L884:
	ldr	r3, [fp, #-1296]
	add	r3, r3, #1
	str	r3, [fp, #-1296]
.L883:
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-1296]
	cmp	r2, r3
	blt	.L885
	b	.L886
.L882:
	mov	r3, #0
	str	r3, [fp, #-1296]
	b	.L887
.L888:
	ldr	r3, [fp, #-1180]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-1296]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r1, r3
	mov	r2, #0
	strb	r2, [r3, #2]
	ldr	r3, [fp, #-1296]
	add	r3, r3, #1
	str	r3, [fp, #-1296]
.L887:
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-1296]
	cmp	r2, r3
	blt	.L888
.L886:
	mov	r3, #0
	str	r3, [fp, #-1296]
	b	.L889
.L892:
	mov	r1, #8
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r1, #8
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	and	r1, r3, #255
	ldr	r2, [fp, #-1180]
	ldr	r3, [fp, #-1296]
	add	r3, r2, r3
	add	r3, r3, #9
	mov	r2, r1
	strb	r2, [r3]
	mov	r1, #8
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	and	r1, r3, #255
	ldr	r2, [fp, #-1180]
	ldr	r3, [fp, #-1296]
	add	r3, r2, r3
	add	r3, r3, #24
	mov	r2, r1
	strb	r2, [r3]
	ldr	r2, [fp, #-1180]
	ldr	r3, [fp, #-1296]
	add	r3, r2, r3
	add	r3, r3, #9
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #140]
	cmp	r2, r3
	blt	.L890
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L890:
	ldr	r2, [fp, #-1180]
	ldr	r3, [fp, #-1296]
	add	r3, r2, r3
	add	r3, r3, #24
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #276]
	cmp	r2, r3
	blt	.L891
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L891:
	ldr	r3, [fp, #-1296]
	add	r3, r3, #1
	str	r3, [fp, #-1296]
.L889:
	ldr	r3, [fp, #-1180]
	ldrb	r3, [r3, #8]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1296]
	cmp	r3, r2
	blt	.L892
	ldr	r3, [fp, #-1300]
	add	r3, r3, #1
	str	r3, [fp, #-1300]
.L867:
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #412]
	ldr	r2, [fp, #-1300]
	cmp	r2, r3
	blt	.L893
	mov	r1, #6
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	add	r3, r3, #1
	mov	r2, r3
	ldr	r3, [fp, #-1320]
	str	r2, [r3, #420]
	mov	r3, #0
	str	r3, [fp, #-1300]
	b	.L894
.L898:
	ldr	r3, [fp, #-1320]
	add	r1, r3, #424
	ldr	r2, [fp, #-1300]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r1, r3
	str	r3, [fp, #-1184]
	mov	r1, #1
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-1184]
	strb	r2, [r3]
	mov	r1, #16
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-1184]
	strh	r2, [r3, #2]	@ movhi
	mov	r1, #16
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-1184]
	strh	r2, [r3, #4]	@ movhi
	mov	r1, #8
	ldr	r0, [fp, #-1320]
	bl	get_bits
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-1184]
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-1184]
	ldrh	r3, [r3, #2]
	cmp	r3, #0
	beq	.L895
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L895:
	ldr	r3, [fp, #-1184]
	ldrh	r3, [r3, #4]
	cmp	r3, #0
	beq	.L896
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L919:
	.align	2
.L918:
	.word	point_compare
	.word	__PRETTY_FUNCTION__.7770
	.word	4168
	.word	.LC0
	.word	.LC23
	.word	.LC24
.L896:
	ldr	r3, [fp, #-1184]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #412]
	cmp	r2, r3
	blt	.L897
	mov	r1, #20
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L897:
	ldr	r3, [fp, #-1300]
	add	r3, r3, #1
	str	r3, [fp, #-1300]
.L894:
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #420]
	ldr	r2, [fp, #-1300]
	cmp	r2, r3
	blt	.L898
	ldr	r0, [fp, #-1320]
	bl	flush_packet
	ldr	r3, [fp, #-1320]
	mov	r2, #0
	str	r2, [r3, #1004]
	mov	r3, #0
	str	r3, [fp, #-1300]
	b	.L899
.L902:
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #128]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	setup_malloc
	mov	r1, r0
	ldr	r2, [fp, #-1320]
	ldr	r3, [fp, #-1300]
	add	r3, r3, #202
	lsl	r3, r3, #2
	add	r3, r2, r3
	str	r1, [r3, #4]
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #128]
	lsl	r3, r3, #2
	lsr	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	setup_malloc
	mov	r1, r0
	ldr	r2, [fp, #-1320]
	ldr	r3, [fp, #-1300]
	add	r3, r3, #234
	lsl	r3, r3, #2
	add	r3, r2, r3
	str	r1, [r3, #4]
	ldr	r3, [fp, #-1284]
	lsl	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-1320]
	bl	setup_malloc
	mov	r1, r0
	ldr	r3, [fp, #-1320]
	ldr	r2, [fp, #-1300]
	add	r2, r2, #252
	str	r1, [r3, r2, lsl #2]
	ldr	r2, [fp, #-1320]
	ldr	r3, [fp, #-1300]
	add	r3, r3, #202
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L900
	ldr	r2, [fp, #-1320]
	ldr	r3, [fp, #-1300]
	add	r3, r3, #234
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L900
	ldr	r3, [fp, #-1320]
	ldr	r2, [fp, #-1300]
	add	r2, r2, #252
	ldr	r3, [r3, r2, lsl #2]
	cmp	r3, #0
	bne	.L901
.L900:
	mov	r1, #3
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L901:
	ldr	r2, [fp, #-1320]
	ldr	r3, [fp, #-1300]
	add	r3, r3, #202
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3, #4]
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #128]
	lsl	r3, r3, #2
	mov	r2, r3
	mov	r1, #0
	bl	memset
	ldr	r3, [fp, #-1300]
	add	r3, r3, #1
	str	r3, [fp, #-1300]
.L899:
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-1300]
	cmp	r2, r3
	blt	.L902
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #124]
	mov	r2, r3
	mov	r1, #0
	ldr	r0, [fp, #-1320]
	bl	init_blocksize
	mov	r3, r0
	cmp	r3, #0
	bne	.L903
	mov	r3, #0
	b	.L913
.L903:
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #128]
	mov	r2, r3
	mov	r1, #1
	ldr	r0, [fp, #-1320]
	bl	init_blocksize
	mov	r3, r0
	cmp	r3, #0
	bne	.L904
	mov	r3, #0
	b	.L913
.L904:
	ldr	r3, [fp, #-1320]
	ldr	r2, [r3, #124]
	ldr	r3, [fp, #-1320]
	str	r2, [r3, #116]
	ldr	r3, [fp, #-1320]
	ldr	r2, [r3, #128]
	ldr	r3, [fp, #-1320]
	str	r2, [r3, #120]
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #128]
	lsl	r3, r3, #2
	lsr	r3, r3, #1
	str	r3, [fp, #-1216]
	mov	r3, #0
	str	r3, [fp, #-1232]
	mov	r3, #0
	str	r3, [fp, #-1236]
	b	.L905
.L907:
	ldr	r3, [fp, #-1320]
	ldr	r1, [r3, #408]
	ldr	r2, [fp, #-1236]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	str	r3, [fp, #-1208]
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #128]
	lsr	r2, r3, #31
	add	r3, r2, r3
	asr	r3, r3, #1
	str	r3, [fp, #-1204]
	ldr	r3, [fp, #-1208]
	ldr	r3, [r3]
	ldr	r2, [fp, #-1204]
	cmp	r2, r3
	movcc	r3, r2
	movcs	r3, r3
	str	r3, [fp, #-1200]
	ldr	r3, [fp, #-1208]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-1204]
	cmp	r2, r3
	movcc	r3, r2
	movcs	r3, r3
	str	r3, [fp, #-1196]
	ldr	r2, [fp, #-1196]
	ldr	r3, [fp, #-1200]
	sub	r3, r2, r3
	str	r3, [fp, #-1192]
	ldr	r2, [fp, #-1192]
	ldr	r3, [fp, #-1208]
	ldr	r3, [r3, #8]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidiv
	mov	r3, r0
	str	r3, [fp, #-1188]
	ldr	r2, [fp, #-1188]
	ldr	r3, [fp, #-1232]
	cmp	r2, r3
	ble	.L906
	ldr	r3, [fp, #-1188]
	str	r3, [fp, #-1232]
.L906:
	ldr	r3, [fp, #-1236]
	add	r3, r3, #1
	str	r3, [fp, #-1236]
.L905:
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #276]
	ldr	r2, [fp, #-1236]
	cmp	r2, r3
	blt	.L907
	ldr	r3, [fp, #-1232]
	add	r3, r3, #1
	ldr	r2, [fp, #-1320]
	ldr	r2, [r2, #4]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	str	r3, [fp, #-1212]
	ldr	r3, [fp, #-1320]
	ldr	r2, [fp, #-1212]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-1216]
	cmp	r2, r3
	bls	.L908
	ldr	r3, [fp, #-1320]
	ldr	r2, [fp, #-1216]
	str	r2, [r3, #12]
.L908:
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #92]
	cmp	r3, #0
	beq	.L909
	ldr	r3, [fp, #-1320]
	ldr	r2, [r3, #104]
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #96]
	cmp	r2, r3
	beq	.L910
	ldr	r3, .L918+4
	ldr	r2, .L918+8
	ldr	r1, .L918+12
	ldr	r0, .L918+16
	bl	__assert_fail
.L910:
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #100]
	mov	r2, r3
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #12]
	add	r3, r2, r3
	add	r3, r3, #1520
	add	r3, r3, #4
	ldr	r2, [fp, #-1320]
	ldr	r2, [r2, #104]
	cmp	r3, r2
	bls	.L909
	mov	r1, #3
	ldr	r0, [fp, #-1320]
	bl	error
	mov	r3, r0
	b	.L913
.L909:
	ldr	r3, [fp, #-1320]
	ldr	r3, [r3, #1392]
	cmn	r3, #1
	bne	.L911
	ldr	r0, [fp, #-1320]
	bl	stb_vorbis_get_file_offset
	mov	r2, r0
	ldr	r3, [fp, #-1320]
	str	r2, [r3, #64]
	b	.L912
.L911:
	ldr	r3, [fp, #-1320]
	mov	r2, #0
	str	r2, [r3, #64]
.L912:
	mov	r3, #1
.L913:
	ldr	r2, .L918+20
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L914
	bl	__stack_chk_fail
.L914:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	start_decoder, .-start_decoder
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	vorbis_deinit, %function
vorbis_deinit:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #20]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L921
.L922:
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #28]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L921:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #24]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L922
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #28]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #408]
	cmp	r3, #0
	beq	.L923
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L924
.L928:
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #408]
	ldr	r2, [fp, #-20]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	beq	.L925
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L926
.L927:
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L926:
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #136]
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3, #13]	@ zero_extendqisi2
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #6
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r1, r3
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L927
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
.L925:
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #20]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L924:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #276]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L928
.L923:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #136]
	cmp	r3, #0
	beq	.L929
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L930
.L933:
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #136]
	ldr	r2, [fp, #-20]
	mov	r3, r2
	lsl	r3, r3, #6
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #4
	add	r3, r1, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #28]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #32]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #2084]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #2088]
	cmp	r3, #0
	beq	.L931
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #2088]
	sub	r3, r3, #4
	b	.L932
.L931:
	mov	r3, #0
.L932:
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L930:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #132]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L933
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #136]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
.L929:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #272]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #408]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #416]
	cmp	r3, #0
	beq	.L934
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L935
.L936:
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #416]
	ldr	r2, [fp, #-20]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	ldr	r3, [r3, #4]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L935:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #412]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L936
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #416]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
.L934:
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L937
.L939:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-20]
	add	r3, r3, #202
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-20]
	add	r3, r3, #234
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-20]
	add	r2, r2, #252
	ldr	r3, [r3, r2, lsl #2]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L937:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	bge	.L938
	ldr	r3, [fp, #-20]
	cmp	r3, #15
	ble	.L939
.L938:
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L940
.L941:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-20]
	add	r3, r3, #268
	add	r3, r3, #2
	ldr	r3, [r2, r3, lsl #2]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-20]
	add	r2, r2, #272
	ldr	r3, [r3, r2, lsl #2]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-20]
	add	r3, r3, #272
	add	r3, r3, #2
	ldr	r3, [r2, r3, lsl #2]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-20]
	add	r2, r2, #276
	ldr	r3, [r3, r2, lsl #2]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-20]
	add	r3, r3, #276
	add	r3, r3, #2
	ldr	r3, [r2, r3, lsl #2]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L940:
	ldr	r3, [fp, #-20]
	cmp	r3, #1
	ble	.L941
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #40]
	cmp	r3, #0
	beq	.L943
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #32]
	mov	r0, r3
	bl	fclose
.L943:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	vorbis_deinit, .-vorbis_deinit
	.align	2
	.global	stb_vorbis_close
	.syntax unified
	.arm
	.fpu softvfp
	.type	stb_vorbis_close, %function
stb_vorbis_close:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L947
	ldr	r0, [fp, #-8]
	bl	vorbis_deinit
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	setup_free
	b	.L944
.L947:
	nop
.L944:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	stb_vorbis_close, .-stb_vorbis_close
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	vorbis_init, %function
vorbis_init:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r2, .L950
	mov	r1, #0
	ldr	r0, [fp, #-8]
	bl	memset
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L949
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-12]
	add	r3, r3, #92
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #96]
	bic	r2, r3, #7
	ldr	r3, [fp, #-8]
	str	r2, [r3, #96]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #96]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #104]
.L949:
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #108]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #112]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #44]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #136]
	ldr	r3, [fp, #-8]
	mvn	r2, #0
	str	r2, [r3, #1432]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #40]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #32]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L951:
	.align	2
.L950:
	.word	1524
	.size	vorbis_init, .-vorbis_init
	.align	2
	.global	stb_vorbis_get_sample_offset
	.syntax unified
	.arm
	.fpu softvfp
	.type	stb_vorbis_get_sample_offset, %function
stb_vorbis_get_sample_offset:
	@ 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
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #1076]
	cmp	r3, #0
	beq	.L953
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #1072]
	b	.L954
.L953:
	mvn	r3, #0
.L954:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	stb_vorbis_get_sample_offset, .-stb_vorbis_get_sample_offset
	.align	2
	.global	stb_vorbis_get_info
	.syntax unified
	.arm
	.fpu softvfp
	.type	stb_vorbis_get_info, %function
stb_vorbis_get_info:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #128]
	asr	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-32]
	mov	lr, r3
	sub	ip, fp, #28
	ldmia	ip!, {r0, r1, r2, r3}
	stmia	lr!, {r0, r1, r2, r3}
	ldm	ip, {r0, r1}
	stm	lr, {r0, r1}
	ldr	r0, [fp, #-32]
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	stb_vorbis_get_info, .-stb_vorbis_get_info
	.align	2
	.global	stb_vorbis_get_comment
	.syntax unified
	.arm
	.fpu softvfp
	.type	stb_vorbis_get_comment, %function
stb_vorbis_get_comment:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #28
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #24]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #28]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-24]
	mov	ip, r3
	sub	r3, fp, #16
	ldm	r3, {r0, r1, r2}
	stm	ip, {r0, r1, r2}
	ldr	r0, [fp, #-24]
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	stb_vorbis_get_comment, .-stb_vorbis_get_comment
	.align	2
	.global	stb_vorbis_get_error
	.syntax unified
	.arm
	.fpu softvfp
	.type	stb_vorbis_get_error, %function
stb_vorbis_get_error:
	@ 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]
	ldr	r3, [r3, #112]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #112]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	stb_vorbis_get_error, .-stb_vorbis_get_error
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	vorbis_alloc, %function
vorbis_alloc:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r1, .L963
	ldr	r0, [fp, #-16]
	bl	setup_malloc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L964:
	.align	2
.L963:
	.word	1524
	.size	vorbis_alloc, .-vorbis_alloc
	.align	2
	.global	stb_vorbis_flush_pushdata
	.syntax unified
	.arm
	.fpu softvfp
	.type	stb_vorbis_flush_pushdata, %function
stb_vorbis_flush_pushdata:
	@ 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
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #1004]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #1432]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #1424]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #1076]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	strb	r2, [r3, #1389]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #1428]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #1516]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #1520]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	stb_vorbis_flush_pushdata, .-stb_vorbis_flush_pushdata
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	vorbis_search_for_page_pushdata, %function
vorbis_search_for_page_pushdata:
	@ args = 0, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #56
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	str	r2, [fp, #-56]
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L967
.L968:
	ldr	r1, [fp, #-48]
	ldr	r2, [fp, #-40]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	add	r3, r3, #1440
	add	r3, r3, #8
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L967:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #1432]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L968
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #1432]
	cmp	r3, #3
	bgt	.L969
	ldr	r3, [fp, #-56]
	cmp	r3, #3
	bgt	.L970
	mov	r3, #0
	b	.L971
.L970:
	ldr	r3, [fp, #-56]
	sub	r3, r3, #3
	str	r3, [fp, #-56]
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L972
.L984:
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #79
	bne	.L973
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	mov	r2, #4
	ldr	r1, .L993
	mov	r0, r3
	bl	memcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L973
	ldr	r3, [fp, #-40]
	add	r3, r3, #26
	ldr	r2, [fp, #-56]
	cmp	r2, r3
	ble	.L974
	ldr	r3, [fp, #-40]
	add	r3, r3, #27
	ldr	r2, [fp, #-40]
	add	r2, r2, #26
	ldr	r1, [fp, #-52]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	ldr	r2, [fp, #-56]
	cmp	r2, r3
	bgt	.L975
.L974:
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-56]
	b	.L969
.L975:
	ldr	r3, [fp, #-40]
	add	r3, r3, #26
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	add	r3, r3, #27
	str	r3, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-36]
	b	.L976
.L977:
	ldr	r3, [fp, #-40]
	add	r2, r3, #27
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-52]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L976:
	ldr	r3, [fp, #-40]
	add	r3, r3, #26
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-36]
	cmp	r3, r2
	blt	.L977
	mov	r3, #0
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-36]
	b	.L978
.L979:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-52]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, [fp, #-28]
	bl	crc32_update
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L978:
	ldr	r3, [fp, #-36]
	cmp	r3, #21
	ble	.L979
	b	.L980
.L981:
	mov	r1, #0
	ldr	r0, [fp, #-28]
	bl	crc32_update
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L980:
	ldr	r3, [fp, #-36]
	cmp	r3, #25
	ble	.L981
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #1432]
	add	r1, r3, #1
	ldr	r2, [fp, #-48]
	str	r1, [r2, #1432]
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-36]
	sub	r1, r2, r3
	ldr	r0, [fp, #-48]
	ldr	r2, [fp, #-12]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r0, r3
	add	r3, r3, #1440
	str	r1, [r3]
	ldr	r1, [fp, #-48]
	ldr	r2, [fp, #-12]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	add	r3, r3, #1440
	add	r3, r3, #4
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #22
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r3, [fp, #-40]
	add	r3, r3, #23
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	add	r2, r1, r3
	ldr	r3, [fp, #-40]
	add	r3, r3, #24
	ldr	r1, [fp, #-52]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	add	r2, r2, r3
	ldr	r3, [fp, #-40]
	add	r3, r3, #25
	ldr	r1, [fp, #-52]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #24
	add	r3, r2, r3
	mov	r0, r3
	ldr	r1, [fp, #-48]
	ldr	r2, [fp, #-12]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	add	r3, r3, #1424
	add	r3, r3, #12
	str	r0, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #27
	ldr	r2, [fp, #-40]
	add	r2, r2, #26
	ldr	r1, [fp, #-52]
	add	r2, r1, r2
	ldrb	r2, [r2]	@ zero_extendqisi2
	add	r3, r3, r2
	sub	r3, r3, #1
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #255
	bne	.L982
	ldr	r1, [fp, #-48]
	ldr	r2, [fp, #-12]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	add	r3, r3, #1440
	add	r3, r3, #12
	mvn	r2, #0
	str	r2, [r3]
	b	.L983
.L982:
	ldr	r3, [fp, #-40]
	add	r3, r3, #6
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r3, [fp, #-40]
	add	r3, r3, #7
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #8
	add	r2, r1, r3
	ldr	r3, [fp, #-40]
	add	r3, r3, #8
	ldr	r1, [fp, #-52]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #16
	add	r2, r2, r3
	ldr	r3, [fp, #-40]
	add	r3, r3, #9
	ldr	r1, [fp, #-52]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #24
	add	r3, r2, r3
	mov	r0, r3
	ldr	r1, [fp, #-48]
	ldr	r2, [fp, #-12]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	add	r3, r3, #1440
	add	r3, r3, #12
	str	r0, [r3]
.L983:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-36]
	add	r1, r2, r3
	ldr	r0, [fp, #-48]
	ldr	r2, [fp, #-12]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r0, r3
	add	r3, r3, #1440
	add	r3, r3, #8
	str	r1, [r3]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #1432]
	cmp	r3, #4
	beq	.L992
.L973:
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L972:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-56]
	cmp	r2, r3
	blt	.L984
	b	.L969
.L992:
	nop
.L969:
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L985
.L991:
	ldr	r1, [fp, #-48]
	ldr	r2, [fp, #-40]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	add	r3, r3, #1440
	add	r3, r3, #8
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r1, [fp, #-48]
	ldr	r2, [fp, #-40]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	add	r3, r3, #1440
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-8]
	sub	r3, r2, r3
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	ble	.L986
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-8]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
.L986:
	ldr	r1, [fp, #-48]
	ldr	r2, [fp, #-40]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	add	r3, r3, #1440
	add	r3, r3, #4
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L987
.L988:
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-52]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	crc32_update
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L987:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L988
	ldr	r1, [fp, #-48]
	ldr	r2, [fp, #-40]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	add	r3, r3, #1440
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	sub	r1, r2, r3
	ldr	r0, [fp, #-48]
	ldr	r2, [fp, #-40]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r0, r3
	add	r3, r3, #1440
	str	r1, [r3]
	ldr	r1, [fp, #-48]
	ldr	r2, [fp, #-40]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	add	r3, r3, #1440
	add	r3, r3, #4
	ldr	r2, [fp, #-24]
	str	r2, [r3]
	ldr	r1, [fp, #-48]
	ldr	r2, [fp, #-40]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	add	r3, r3, #1440
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L989
	ldr	r1, [fp, #-48]
	ldr	r2, [fp, #-40]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	add	r3, r3, #1440
	add	r3, r3, #4
	ldr	r1, [r3]
	ldr	r0, [fp, #-48]
	ldr	r2, [fp, #-40]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r0, r3
	add	r3, r3, #1424
	add	r3, r3, #12
	ldr	r3, [r3]
	cmp	r1, r3
	bne	.L990
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-48]
	mvn	r2, #0
	str	r2, [r3, #1432]
	ldr	r3, [fp, #-48]
	mov	r2, #0
	str	r2, [r3, #1004]
	ldr	r3, [fp, #-48]
	mvn	r2, #0
	str	r2, [r3, #1392]
	ldr	r1, [fp, #-48]
	ldr	r2, [fp, #-40]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	add	r3, r3, #1440
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-48]
	str	r2, [r3, #1072]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #1072]
	cmn	r3, #1
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-48]
	str	r2, [r3, #1076]
	ldr	r3, [fp, #-56]
	b	.L971
.L990:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #1432]
	sub	r2, r3, #1
	ldr	r3, [fp, #-48]
	str	r2, [r3, #1432]
	ldr	r3, [fp, #-48]
	ldr	r1, [r3, #1432]
	ldr	r0, [fp, #-48]
	ldr	r2, [fp, #-40]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r0, r3
	add	r2, r3, #1424
	add	r2, r2, #8
	ldr	r0, [fp, #-48]
	mov	r3, r1
	lsl	r3, r3, #2
	add	r3, r3, r1
	lsl	r3, r3, #2
	add	r3, r0, r3
	add	r3, r3, #1424
	add	r3, r3, #8
	add	ip, r2, #4
	add	lr, r3, #4
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldr	r3, [lr]
	str	r3, [ip]
	b	.L985
.L989:
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L985:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #1432]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L991
	ldr	r3, [fp, #-56]
.L971:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L994:
	.align	2
.L993:
	.word	ogg_page_header
	.size	vorbis_search_for_page_pushdata, .-vorbis_search_for_page_pushdata
	.section	.rodata
	.align	2
.LC25:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stb_vorbis_decode_frame_pushdata
	.syntax unified
	.arm
	.fpu softvfp
	.type	stb_vorbis_decode_frame_pushdata, %function
stb_vorbis_decode_frame_pushdata:
	@ args = 8, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #8]
	str	r3, [fp, #-52]
	ldr	r3, .L1016
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3, #60]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L996
	mov	r1, #2
	ldr	r0, [fp, #-32]
	bl	error
	mov	r3, r0
	b	.L1012
.L996:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1432]
	cmp	r3, #0
	blt	.L998
	ldr	r3, [fp, #-52]
	mov	r2, #0
	str	r2, [r3]
	ldr	r2, [fp, #-40]
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	vorbis_search_for_page_pushdata
	mov	r3, r0
	b	.L1012
.L998:
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-36]
	str	r2, [r3, #44]
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-36]
	add	r2, r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3, #52]
	ldr	r3, [fp, #-32]
	mov	r2, #0
	str	r2, [r3, #112]
	ldr	r0, [fp, #-32]
	bl	is_whole_packet_present
	mov	r3, r0
	cmp	r3, #0
	bne	.L999
	ldr	r3, [fp, #-52]
	mov	r2, #0
	str	r2, [r3]
	mov	r3, #0
	b	.L1012
.L999:
	sub	r3, fp, #24
	sub	r2, fp, #20
	sub	r1, fp, #28
	ldr	r0, [fp, #-32]
	bl	vorbis_decode_packet
	mov	r3, r0
	cmp	r3, #0
	bne	.L1000
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #112]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #35
	bne	.L1001
	ldr	r3, [fp, #-32]
	mov	r2, #0
	str	r2, [r3, #112]
	b	.L1002
.L1004:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #108]
	cmp	r3, #0
	bne	.L1014
.L1002:
	ldr	r0, [fp, #-32]
	bl	get8_packet
	mov	r3, r0
	cmn	r3, #1
	bne	.L1004
	b	.L1003
.L1014:
	nop
.L1003:
	ldr	r3, [fp, #-52]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-36]
	sub	r3, r2, r3
	b	.L1012
.L1001:
	ldr	r3, [fp, #-12]
	cmp	r3, #32
	bne	.L1005
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1004]
	cmp	r3, #0
	bne	.L1005
	ldr	r3, [fp, #-32]
	mov	r2, #0
	str	r2, [r3, #112]
	b	.L1006
.L1008:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #108]
	cmp	r3, #0
	bne	.L1015
.L1006:
	ldr	r0, [fp, #-32]
	bl	get8_packet
	mov	r3, r0
	cmn	r3, #1
	bne	.L1008
	b	.L1007
.L1015:
	nop
.L1007:
	ldr	r3, [fp, #-52]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-36]
	sub	r3, r2, r3
	b	.L1012
.L1005:
	ldr	r0, [fp, #-32]
	bl	stb_vorbis_flush_pushdata
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #112]
	ldr	r3, [fp, #-52]
	mov	r2, #0
	str	r2, [r3]
	mov	r3, #1
	b	.L1012
.L1000:
	ldr	r1, [fp, #-28]
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-24]
	ldr	r0, [fp, #-32]
	bl	vorbis_finish_frame
	mov	r3, r0
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L1009
.L1010:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-16]
	add	r3, r3, #202
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	add	r2, r2, r3
	ldr	r1, [fp, #-32]
	ldr	r3, [fp, #-16]
	add	r3, r3, #218
	lsl	r3, r3, #2
	add	r3, r1, r3
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L1009:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L1010
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	beq	.L1011
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-44]
	str	r2, [r3]
.L1011:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-52]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	add	r2, r3, #876
	ldr	r3, [fp, #-48]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-36]
	sub	r3, r2, r3
.L1012:
	ldr	r2, .L1016
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1013
	bl	__stack_chk_fail
.L1013:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1017:
	.align	2
.L1016:
	.word	.LC25
	.size	stb_vorbis_decode_frame_pushdata, .-stb_vorbis_decode_frame_pushdata
	.section	.rodata
	.align	2
.LC26:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stb_vorbis_open_pushdata
	.syntax unified
	.arm
	.fpu softvfp
	.type	stb_vorbis_open_pushdata, %function
stb_vorbis_open_pushdata:
	@ args = 4, pretend = 0, frame = 1560
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #1552
	sub	sp, sp, #8
	str	r0, [fp, #-1544]
	str	r1, [fp, #-1548]
	str	r2, [fp, #-1552]
	str	r3, [fp, #-1556]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-1560]
	ldr	r3, .L1026
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #1520
	sub	r3, r3, #4
	sub	r3, r3, #8
	ldr	r1, [fp, #-1560]
	mov	r0, r3
	bl	vorbis_init
	ldr	r3, [fp, #-1544]
	str	r3, [fp, #-1488]
	ldr	r3, [fp, #-1548]
	ldr	r2, [fp, #-1544]
	add	r3, r2, r3
	str	r3, [fp, #-1480]
	mov	r3, #1
	strb	r3, [fp, #-1472]
	sub	r3, fp, #1520
	sub	r3, r3, #4
	sub	r3, r3, #8
	mov	r0, r3
	bl	start_decoder
	mov	r3, r0
	cmp	r3, #0
	bne	.L1019
	ldr	r3, [fp, #-1424]
	cmp	r3, #0
	beq	.L1020
	ldr	r3, [fp, #-1556]
	mov	r2, #1
	str	r2, [r3]
	b	.L1021
.L1020:
	ldr	r3, [fp, #-1420]
	mov	r2, r3
	ldr	r3, [fp, #-1556]
	str	r2, [r3]
.L1021:
	mov	r3, #0
	b	.L1024
.L1019:
	sub	r3, fp, #1520
	sub	r3, r3, #4
	sub	r3, r3, #8
	mov	r0, r3
	bl	vorbis_alloc
	str	r0, [fp, #-1536]
	ldr	r3, [fp, #-1536]
	cmp	r3, #0
	beq	.L1023
	ldr	r3, [fp, #-1536]
	mov	r0, r3
	sub	r3, fp, #1520
	sub	r3, r3, #4
	sub	r3, r3, #8
	ldr	r2, .L1026+4
	mov	r1, r3
	bl	memcpy
	ldr	r3, [fp, #-1536]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-1544]
	sub	r2, r2, r3
	ldr	r3, [fp, #-1552]
	str	r2, [r3]
	ldr	r3, [fp, #-1556]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-1536]
	b	.L1024
.L1023:
	sub	r3, fp, #1520
	sub	r3, r3, #4
	sub	r3, r3, #8
	mov	r0, r3
	bl	vorbis_deinit
	mov	r3, #0
.L1024:
	ldr	r2, .L1026
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1025
	bl	__stack_chk_fail
.L1025:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1027:
	.align	2
.L1026:
	.word	.LC26
	.word	1524
	.size	stb_vorbis_open_pushdata, .-stb_vorbis_open_pushdata
	.align	2
	.global	stb_vorbis_get_file_offset
	.syntax unified
	.arm
	.fpu softvfp
	.type	stb_vorbis_get_file_offset, %function
stb_vorbis_get_file_offset:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #60]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L1029
	mov	r3, #0
	b	.L1030
.L1029:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #44]
	cmp	r3, #0
	beq	.L1031
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #48]
	sub	r3, r2, r3
	b	.L1030
.L1031:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #32]
	mov	r0, r3
	bl	ftell
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #36]
	sub	r3, r2, r3
.L1030:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	stb_vorbis_get_file_offset, .-stb_vorbis_get_file_offset
	.section	.rodata
	.align	2
.LC27:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	vorbis_find_page, %function
vorbis_find_page:
	@ args = 0, pretend = 0, frame = 80
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #80
	str	r0, [fp, #-72]
	str	r1, [fp, #-76]
	str	r2, [fp, #-80]
	ldr	r3, .L1068
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
.L1063:
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #108]
	cmp	r3, #0
	beq	.L1033
	mov	r3, #0
	b	.L1034
.L1033:
	ldr	r0, [fp, #-72]
	bl	get8
	mov	r3, r0
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	cmp	r3, #79
	bne	.L1063
	ldr	r0, [fp, #-72]
	bl	stb_vorbis_get_file_offset
	str	r0, [fp, #-48]
	ldr	r3, [fp, #-48]
	sub	r2, r3, #25
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #56]
	cmp	r2, r3
	bls	.L1036
	mov	r3, #0
	b	.L1034
.L1036:
	mov	r3, #1
	str	r3, [fp, #-68]
	b	.L1037
.L1040:
	ldr	r0, [fp, #-72]
	bl	get8
	mov	r3, r0
	mov	r1, r3
	ldr	r2, .L1068+4
	ldr	r3, [fp, #-68]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r1, r3
	bne	.L1065
	ldr	r3, [fp, #-68]
	add	r3, r3, #1
	str	r3, [fp, #-68]
.L1037:
	ldr	r3, [fp, #-68]
	cmp	r3, #3
	ble	.L1040
	b	.L1039
.L1065:
	nop
.L1039:
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #108]
	cmp	r3, #0
	beq	.L1041
	mov	r3, #0
	b	.L1034
.L1041:
	ldr	r3, [fp, #-68]
	cmp	r3, #4
	bne	.L1066
	mov	r3, #0
	str	r3, [fp, #-64]
	b	.L1043
.L1044:
	ldr	r2, .L1068+4
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	ldrb	r1, [r3]	@ zero_extendqisi2
	sub	r2, fp, #36
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
.L1043:
	ldr	r3, [fp, #-64]
	cmp	r3, #3
	bls	.L1044
	b	.L1045
.L1046:
	ldr	r0, [fp, #-72]
	bl	get8
	mov	r3, r0
	mov	r1, r3
	sub	r2, fp, #36
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
.L1045:
	ldr	r3, [fp, #-64]
	cmp	r3, #26
	bls	.L1046
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #108]
	cmp	r3, #0
	beq	.L1047
	mov	r3, #0
	b	.L1034
.L1047:
	ldrb	r3, [fp, #-32]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L1067
	ldrb	r3, [fp, #-14]	@ zero_extendqisi2
	mov	r2, r3
	ldrb	r3, [fp, #-13]	@ zero_extendqisi2
	lsl	r3, r3, #8
	add	r2, r2, r3
	ldrb	r3, [fp, #-12]	@ zero_extendqisi2
	lsl	r3, r3, #16
	add	r2, r2, r3
	ldrb	r3, [fp, #-11]	@ zero_extendqisi2
	lsl	r3, r3, #24
	add	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, #22
	str	r3, [fp, #-64]
	b	.L1050
.L1051:
	sub	r2, fp, #36
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
.L1050:
	ldr	r3, [fp, #-64]
	cmp	r3, #25
	bls	.L1051
	mov	r3, #0
	str	r3, [fp, #-60]
	mov	r3, #0
	str	r3, [fp, #-64]
	b	.L1052
.L1053:
	sub	r2, fp, #36
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, [fp, #-60]
	bl	crc32_update
	str	r0, [fp, #-60]
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
.L1052:
	ldr	r3, [fp, #-64]
	cmp	r3, #26
	bls	.L1053
	mov	r3, #0
	str	r3, [fp, #-56]
	mov	r3, #0
	str	r3, [fp, #-64]
	b	.L1054
.L1055:
	ldr	r0, [fp, #-72]
	bl	get8
	mov	r3, r0
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	and	r3, r3, #255
	mov	r1, r3
	ldr	r0, [fp, #-60]
	bl	crc32_update
	str	r0, [fp, #-60]
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-56]
	add	r3, r2, r3
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
.L1054:
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	cmp	r3, r2
	bcc	.L1055
	ldr	r3, [fp, #-56]
	cmp	r3, #0
	beq	.L1056
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #108]
	cmp	r3, #0
	beq	.L1056
	mov	r3, #0
	b	.L1034
.L1056:
	mov	r3, #0
	str	r3, [fp, #-64]
	b	.L1057
.L1058:
	ldr	r0, [fp, #-72]
	bl	get8
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-60]
	bl	crc32_update
	str	r0, [fp, #-60]
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
.L1057:
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-56]
	cmp	r2, r3
	bcc	.L1058
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	bne	.L1042
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	beq	.L1060
	ldr	r0, [fp, #-72]
	bl	stb_vorbis_get_file_offset
	mov	r2, r0
	ldr	r3, [fp, #-76]
	str	r2, [r3]
.L1060:
	ldr	r3, [fp, #-80]
	cmp	r3, #0
	beq	.L1061
	ldrb	r3, [fp, #-31]	@ zero_extendqisi2
	and	r3, r3, #4
	cmp	r3, #0
	beq	.L1062
	ldr	r3, [fp, #-80]
	mov	r2, #1
	str	r2, [r3]
	b	.L1061
.L1062:
	ldr	r3, [fp, #-80]
	mov	r2, #0
	str	r2, [r3]
.L1061:
	ldr	r3, [fp, #-48]
	sub	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-72]
	bl	set_file_offset
	mov	r3, #1
	b	.L1034
.L1066:
	nop
	b	.L1042
.L1067:
	nop
.L1042:
	ldr	r1, [fp, #-48]
	ldr	r0, [fp, #-72]
	bl	set_file_offset
	b	.L1063
.L1034:
	ldr	r2, .L1068
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1064
	bl	__stack_chk_fail
.L1064:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1069:
	.align	2
.L1068:
	.word	.LC27
	.word	ogg_page_header
	.size	vorbis_find_page, .-vorbis_find_page
	.section	.rodata
	.align	2
.LC28:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_seek_page_info, %function
get_seek_page_info:
	@ args = 0, pretend = 0, frame = 304
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #304
	str	r0, [fp, #-304]
	str	r1, [fp, #-308]
	ldr	r3, .L1078
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r0, [fp, #-304]
	bl	stb_vorbis_get_file_offset
	mov	r2, r0
	ldr	r3, [fp, #-308]
	str	r2, [r3]
	sub	r3, fp, #292
	mov	r2, #27
	mov	r1, r3
	ldr	r0, [fp, #-304]
	bl	getn
	ldrb	r3, [fp, #-292]	@ zero_extendqisi2
	cmp	r3, #79
	bne	.L1071
	ldrb	r3, [fp, #-291]	@ zero_extendqisi2
	cmp	r3, #103
	bne	.L1071
	ldrb	r3, [fp, #-290]	@ zero_extendqisi2
	cmp	r3, #103
	bne	.L1071
	ldrb	r3, [fp, #-289]	@ zero_extendqisi2
	cmp	r3, #83
	beq	.L1072
.L1071:
	mov	r3, #0
	b	.L1076
.L1072:
	ldrb	r3, [fp, #-266]	@ zero_extendqisi2
	mov	r2, r3
	sub	r3, fp, #264
	mov	r1, r3
	ldr	r0, [fp, #-304]
	bl	getn
	mov	r3, #0
	str	r3, [fp, #-296]
	mov	r3, #0
	str	r3, [fp, #-300]
	b	.L1074
.L1075:
	sub	r2, fp, #264
	ldr	r3, [fp, #-300]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-296]
	add	r3, r3, r2
	str	r3, [fp, #-296]
	ldr	r3, [fp, #-300]
	add	r3, r3, #1
	str	r3, [fp, #-300]
.L1074:
	ldrb	r3, [fp, #-266]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-300]
	cmp	r3, r2
	blt	.L1075
	ldr	r3, [fp, #-308]
	ldr	r3, [r3]
	ldrb	r2, [fp, #-266]	@ zero_extendqisi2
	add	r2, r3, r2
	ldr	r3, [fp, #-296]
	add	r3, r2, r3
	add	r2, r3, #27
	ldr	r3, [fp, #-308]
	str	r2, [r3, #4]
	ldrb	r3, [fp, #-286]	@ zero_extendqisi2
	mov	r2, r3
	ldrb	r3, [fp, #-285]	@ zero_extendqisi2
	lsl	r3, r3, #8
	add	r2, r2, r3
	ldrb	r3, [fp, #-284]	@ zero_extendqisi2
	lsl	r3, r3, #16
	add	r2, r2, r3
	ldrb	r3, [fp, #-283]	@ zero_extendqisi2
	lsl	r3, r3, #24
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-308]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-308]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-304]
	bl	set_file_offset
	mov	r3, #1
.L1076:
	ldr	r2, .L1078
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1077
	bl	__stack_chk_fail
.L1077:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1079:
	.align	2
.L1078:
	.word	.LC28
	.size	get_seek_page_info, .-get_seek_page_info
	.section	.rodata
	.align	2
.LC29:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	go_to_page_before, %function
go_to_page_before:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r3, .L1089
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-28]
	cmp	r3, #65536
	bcc	.L1081
	ldr	r3, [fp, #-28]
	sub	r2, r3, #65536
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #64]
	cmp	r2, r3
	bcc	.L1081
	ldr	r3, [fp, #-28]
	sub	r3, r3, #65536
	str	r3, [fp, #-12]
	b	.L1082
.L1081:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #64]
	str	r3, [fp, #-12]
.L1082:
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	set_file_offset
	b	.L1083
.L1086:
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bhi	.L1084
	ldr	r0, [fp, #-24]
	bl	stb_vorbis_get_file_offset
	mov	r2, r0
	ldr	r3, [fp, #-28]
	cmp	r3, r2
	bls	.L1084
	mov	r3, #1
	b	.L1087
.L1084:
	ldr	r3, [fp, #-16]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	set_file_offset
.L1083:
	sub	r3, fp, #16
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	vorbis_find_page
	mov	r3, r0
	cmp	r3, #0
	bne	.L1086
	mov	r3, #0
.L1087:
	ldr	r2, .L1089
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1088
	bl	__stack_chk_fail
.L1088:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1090:
	.align	2
.L1089:
	.word	.LC29
	.size	go_to_page_before, .-go_to_page_before
	.section	.rodata
	.align	2
.LC30:
	.ascii	"right.last_decoded_sample != ~0U\000"
	.align	2
.LC31:
	.ascii	"left.page_end < right.page_start\000"
	.global	__aeabi_dsub
	.global	__aeabi_dcmpge
	.global	__aeabi_dcmplt
	.global	__aeabi_dcmpgt
	.global	__aeabi_d2uiz
	.align	2
.LC32:
	.ascii	"mid.page_start < right.page_start\000"
	.align	2
.LC33:
	.ascii	"end_pos >= 0\000"
	.align	2
.LC34:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	seek_to_sample_coarse, %function
seek_to_sample_coarse:
	@ args = 0, pretend = 0, frame = 120
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #120
	str	r0, [fp, #-128]
	str	r1, [fp, #-132]
	ldr	r3, .L1161
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	mov	r3, #0
	str	r3, [fp, #-104]
	ldr	r0, [fp, #-128]
	bl	stb_vorbis_stream_length_in_samples
	str	r0, [fp, #-100]
	ldr	r3, [fp, #-100]
	cmp	r3, #0
	bne	.L1092
	mov	r1, #7
	ldr	r0, [fp, #-128]
	bl	error
	mov	r3, r0
	b	.L1145
.L1092:
	ldr	r2, [fp, #-132]
	ldr	r3, [fp, #-100]
	cmp	r2, r3
	bls	.L1094
	mov	r1, #11
	ldr	r0, [fp, #-128]
	bl	error
	mov	r3, r0
	b	.L1145
.L1094:
	ldr	r3, [fp, #-128]
	ldr	r2, [r3, #128]
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #124]
	sub	r3, r2, r3
	asr	r3, r3, #2
	str	r3, [fp, #-96]
	ldr	r2, [fp, #-132]
	ldr	r3, [fp, #-96]
	cmp	r2, r3
	bcs	.L1095
	mov	r3, #0
	str	r3, [fp, #-108]
	b	.L1096
.L1095:
	ldr	r2, [fp, #-132]
	ldr	r3, [fp, #-96]
	sub	r3, r2, r3
	str	r3, [fp, #-108]
.L1096:
	ldr	r2, [fp, #-128]
	sub	r3, fp, #52
	add	r2, r2, #68
	ldm	r2, {r0, r1, r2}
	stm	r3, {r0, r1, r2}
	b	.L1097
.L1099:
	ldr	r3, [fp, #-48]
	mov	r1, r3
	ldr	r0, [fp, #-128]
	bl	set_file_offset
	sub	r3, fp, #52
	mov	r1, r3
	ldr	r0, [fp, #-128]
	bl	get_seek_page_info
	mov	r3, r0
	cmp	r3, #0
	beq	.L1154
.L1097:
	ldr	r3, [fp, #-44]
	cmn	r3, #1
	beq	.L1099
	ldr	r2, [fp, #-128]
	sub	r3, fp, #40
	add	r2, r2, #80
	ldm	r2, {r0, r1, r2}
	stm	r3, {r0, r1, r2}
	ldr	r3, [fp, #-32]
	cmn	r3, #1
	bne	.L1100
	ldr	r3, .L1161+4
	ldr	r2, .L1161+8
	ldr	r1, .L1161+12
	ldr	r0, .L1161+16
	bl	__assert_fail
.L1100:
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #-108]
	cmp	r2, r3
	bhi	.L1104
	ldr	r0, [fp, #-128]
	bl	stb_vorbis_seek_start
	mov	r3, r0
	cmp	r3, #0
	beq	.L1102
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #1072]
	ldr	r2, [fp, #-132]
	cmp	r2, r3
	bcs	.L1103
	mov	r1, #37
	ldr	r0, [fp, #-128]
	bl	error
	mov	r3, r0
	b	.L1145
.L1103:
	mov	r3, #1
	b	.L1145
.L1102:
	mov	r3, #0
	b	.L1145
.L1131:
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	bcc	.L1105
	ldr	r3, .L1161+4
	ldr	r2, .L1161+20
	ldr	r1, .L1161+12
	ldr	r0, .L1161+24
	bl	__assert_fail
.L1105:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-48]
	sub	r3, r2, r3
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	cmp	r3, #65536
	bhi	.L1106
	ldr	r3, [fp, #-48]
	mov	r1, r3
	ldr	r0, [fp, #-128]
	bl	set_file_offset
	b	.L1126
.L1106:
	ldr	r3, [fp, #-104]
	cmp	r3, #1
	bgt	.L1108
	ldr	r3, [fp, #-104]
	cmp	r3, #0
	bne	.L1109
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-52]
	sub	r3, r2, r3
	mov	r0, r3
	bl	__aeabi_ui2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-32]
	mov	r0, r3
	bl	__aeabi_ui2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-52]
	mov	r0, r3
	bl	__aeabi_ui2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #-108]
	sub	r3, r2, r3
	mov	r0, r3
	bl	__aeabi_ui2d
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	b	.L1110
.L1109:
	ldr	r0, [fp, #-108]
	bl	__aeabi_ui2d
	mov	r4, r0
	mov	r5, r1
	ldr	r3, [fp, #-20]
	mov	r0, r3
	bl	__aeabi_ui2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpge
	mov	r3, r0
	cmp	r3, #0
	beq	.L1111
	mov	r2, #0
	ldr	r3, .L1161+28
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1111
	mov	r2, #0
	ldr	r3, .L1161+28
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
.L1111:
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1114
	mov	r2, #0
	ldr	r3, .L1161+32
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1114
	mov	r2, #0
	ldr	r3, .L1161+32
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
.L1114:
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	mov	r2, r0
	mov	r3, r1
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #84
	ldmia	r1, {r0-r1}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
.L1110:
	ldr	r3, [fp, #-48]
	mov	r0, r3
	bl	__aeabi_ui2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #84
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1117
	ldr	r3, [fp, #-48]
	mov	r0, r3
	bl	__aeabi_ui2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
.L1117:
	ldr	r3, [fp, #-40]
	sub	r3, r3, #65536
	mov	r0, r3
	bl	__aeabi_ui2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #84
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1119
	ldr	r3, [fp, #-40]
	sub	r3, r3, #65536
	mov	r0, r3
	bl	__aeabi_ui2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
.L1119:
	sub	r1, fp, #84
	ldmia	r1, {r0-r1}
	bl	__aeabi_d2uiz
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-128]
	bl	set_file_offset
	b	.L1121
.L1108:
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-92]
	lsr	r3, r3, #1
	add	r3, r2, r3
	sub	r3, r3, #32768
	mov	r1, r3
	ldr	r0, [fp, #-128]
	bl	set_file_offset
.L1121:
	mov	r2, #0
	mov	r1, #0
	ldr	r0, [fp, #-128]
	bl	vorbis_find_page
	mov	r3, r0
	cmp	r3, #0
	beq	.L1155
.L1126:
	sub	r3, fp, #28
	mov	r1, r3
	ldr	r0, [fp, #-128]
	bl	get_seek_page_info
	mov	r3, r0
	cmp	r3, #0
	beq	.L1156
	ldr	r3, [fp, #-20]
	cmn	r3, #1
	bne	.L1157
	ldr	r3, [fp, #-24]
	mov	r1, r3
	ldr	r0, [fp, #-128]
	bl	set_file_offset
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	bcc	.L1126
	ldr	r3, .L1161+4
	ldr	r2, .L1161+36
	ldr	r1, .L1161+12
	ldr	r0, .L1161+40
	bl	__assert_fail
.L1157:
	nop
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	bne	.L1127
	ldr	r3, [fp, #-104]
	cmp	r3, #1
	bgt	.L1128
	ldr	r3, [fp, #-92]
	cmp	r3, #65536
	bls	.L1128
	b	.L1129
.L1127:
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-108]
	cmp	r2, r3
	bcs	.L1130
	sub	r3, fp, #40
	sub	r2, fp, #28
	ldm	r2, {r0, r1, r2}
	stm	r3, {r0, r1, r2}
	b	.L1129
.L1130:
	sub	r3, fp, #52
	sub	r2, fp, #28
	ldm	r2, {r0, r1, r2}
	stm	r3, {r0, r1, r2}
.L1129:
	ldr	r3, [fp, #-104]
	add	r3, r3, #1
	str	r3, [fp, #-104]
.L1104:
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	bne	.L1131
.L1128:
	ldr	r3, [fp, #-52]
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-112]
	mov	r1, r3
	ldr	r0, [fp, #-128]
	bl	set_file_offset
	ldr	r0, [fp, #-128]
	bl	start_page
	mov	r3, r0
	cmp	r3, #0
	bne	.L1132
	mov	r1, #37
	ldr	r0, [fp, #-128]
	bl	error
	mov	r3, r0
	b	.L1145
.L1132:
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #1416]
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-116]
	cmp	r3, #0
	bge	.L1133
	ldr	r3, .L1161+4
	ldr	r2, .L1161+44
	ldr	r1, .L1161+12
	ldr	r0, .L1161+48
	bl	__assert_fail
.L1133:
	ldr	r3, [fp, #-116]
	str	r3, [fp, #-120]
	b	.L1134
.L1137:
	ldr	r3, [fp, #-120]
	sub	r3, r3, #1
	ldr	r2, [fp, #-128]
	add	r3, r2, r3
	ldrb	r3, [r3, #1132]	@ zero_extendqisi2
	cmp	r3, #255
	bne	.L1158
	ldr	r3, [fp, #-120]
	sub	r3, r3, #1
	str	r3, [fp, #-120]
.L1134:
	ldr	r3, [fp, #-120]
	cmp	r3, #0
	bgt	.L1137
	b	.L1136
.L1158:
	nop
.L1136:
	ldr	r3, [fp, #-120]
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	cmp	r3, #0
	bgt	.L1138
	ldr	r3, [fp, #-128]
	ldrb	r3, [r3, #1387]	@ zero_extendqisi2
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L1138
	ldr	r3, [fp, #-112]
	mov	r1, r3
	ldr	r0, [fp, #-128]
	bl	go_to_page_before
	mov	r3, r0
	cmp	r3, #0
	beq	.L1159
	ldr	r0, [fp, #-128]
	bl	stb_vorbis_get_file_offset
	mov	r3, r0
	str	r3, [fp, #-112]
	ldr	r0, [fp, #-128]
	bl	start_page
	mov	r3, r0
	cmp	r3, #0
	beq	.L1160
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #1128]
	sub	r3, r3, #1
	str	r3, [fp, #-116]
	b	.L1133
.L1138:
	ldr	r3, [fp, #-128]
	mov	r2, #0
	str	r2, [r3, #1076]
	ldr	r3, [fp, #-128]
	mov	r2, #0
	str	r2, [r3, #1396]
	ldr	r3, [fp, #-128]
	mov	r2, #0
	str	r2, [r3, #1408]
	ldr	r3, [fp, #-128]
	mov	r2, #0
	str	r2, [r3, #1412]
	ldr	r3, [fp, #-128]
	mov	r2, #0
	strb	r2, [r3, #1388]
	ldr	r3, [fp, #-128]
	mov	r2, #0
	str	r2, [r3, #1004]
	ldr	r3, [fp, #-128]
	ldr	r2, [fp, #-88]
	str	r2, [r3, #1392]
	mov	r3, #0
	str	r3, [fp, #-120]
	b	.L1141
.L1142:
	ldr	r2, [fp, #-128]
	ldr	r3, [fp, #-120]
	add	r3, r2, r3
	add	r3, r3, #1120
	add	r3, r3, #12
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, [fp, #-128]
	bl	skip
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	str	r3, [fp, #-120]
.L1141:
	ldr	r2, [fp, #-120]
	ldr	r3, [fp, #-88]
	cmp	r2, r3
	blt	.L1142
	ldr	r0, [fp, #-128]
	bl	vorbis_pump_first_frame
	mov	r3, r0
	cmp	r3, #0
	bne	.L1143
	mov	r3, #0
	b	.L1145
.L1143:
	ldr	r3, [fp, #-128]
	ldr	r3, [r3, #1072]
	ldr	r2, [fp, #-132]
	cmp	r2, r3
	bcs	.L1144
	mov	r1, #37
	ldr	r0, [fp, #-128]
	bl	error
	mov	r3, r0
	b	.L1145
.L1144:
	mov	r3, #1
	b	.L1145
.L1154:
	nop
	b	.L1098
.L1155:
	nop
	b	.L1098
.L1156:
	nop
	b	.L1098
.L1159:
	nop
	b	.L1098
.L1160:
	nop
.L1098:
	ldr	r0, [fp, #-128]
	bl	stb_vorbis_seek_start
	mov	r1, #37
	ldr	r0, [fp, #-128]
	bl	error
	mov	r3, r0
.L1145:
	ldr	r2, .L1161
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1146
	bl	__stack_chk_fail
.L1146:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L1162:
	.align	2
.L1161:
	.word	.LC34
	.word	__PRETTY_FUNCTION__.7976
	.word	4710
	.word	.LC0
	.word	.LC30
	.word	4723
	.word	.LC31
	.word	1086275584
	.word	-1061208064
	.word	4765
	.word	.LC32
	.word	4788
	.word	.LC33
	.size	seek_to_sample_coarse, .-seek_to_sample_coarse
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	peek_decode_initial, %function
peek_decode_initial:
	@ args = 8, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #8]
	str	r3, [sp, #4]
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	vorbis_decode_initial
	mov	r3, r0
	cmp	r3, #0
	bne	.L1164
	mov	r3, #0
	b	.L1165
.L1164:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #420]
	sub	r3, r3, #1
	mov	r0, r3
	bl	ilog
	mov	r3, r0
	add	r3, r3, #1
	str	r3, [fp, #-12]
	ldr	r3, [fp, #8]
	ldr	r2, [r3]
	ldr	r1, [fp, #-16]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #424
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L1166
	ldr	r3, [fp, #-12]
	add	r3, r3, #2
	str	r3, [fp, #-12]
.L1166:
	ldr	r3, [fp, #-12]
	add	r3, r3, #7
	add	r2, r3, #7
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldrb	r2, [r3, #1388]	@ zero_extendqisi2
	ldr	r3, [fp, #-8]
	and	r3, r3, #255
	add	r3, r2, r3
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #1388]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #1412]
	ldr	r3, [fp, #-8]
	sub	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #1412]
	ldr	r3, [fp, #-8]
	rsb	r3, r3, #0
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	skip
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1392]
	cmn	r3, #1
	bne	.L1167
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1128]
	sub	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3, #1392]
	b	.L1168
.L1167:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1392]
	sub	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3, #1392]
.L1168:
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #1408]
	mov	r3, #1
.L1165:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	peek_decode_initial, .-peek_decode_initial
	.section	.rodata
	.align	2
.LC35:
	.ascii	"f->current_loc_valid\000"
	.align	2
.LC36:
	.ascii	"f->current_loc <= sample_number\000"
	.align	2
.LC37:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stb_vorbis_seek_frame
	.syntax unified
	.arm
	.fpu softvfp
	.type	stb_vorbis_seek_frame, %function
stb_vorbis_seek_frame:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	ldr	r3, .L1184
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-40]
	ldrb	r3, [r3, #60]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L1170
	mov	r1, #2
	ldr	r0, [fp, #-40]
	bl	error
	mov	r3, r0
	b	.L1171
.L1170:
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-40]
	bl	seek_to_sample_coarse
	mov	r3, r0
	cmp	r3, #0
	bne	.L1172
	mov	r3, #0
	b	.L1171
.L1172:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #1076]
	cmp	r3, #0
	bne	.L1173
	ldr	r3, .L1184+4
	ldr	r2, .L1184+8
	ldr	r1, .L1184+12
	ldr	r0, .L1184+16
	bl	__assert_fail
.L1173:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #1072]
	ldr	r2, [fp, #-44]
	cmp	r2, r3
	bcs	.L1174
	ldr	r3, .L1184+4
	ldr	r2, .L1184+20
	ldr	r1, .L1184+12
	ldr	r0, .L1184+24
	bl	__assert_fail
.L1174:
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #128]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r2, r3, r2
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #124]
	sub	r3, r2, r3
	asr	r3, r3, #2
	str	r3, [fp, #-16]
	b	.L1175
.L1181:
	sub	r0, fp, #28
	sub	r2, fp, #32
	sub	r1, fp, #36
	sub	r3, fp, #20
	str	r3, [sp, #4]
	sub	r3, fp, #24
	str	r3, [sp]
	mov	r3, r0
	ldr	r0, [fp, #-40]
	bl	peek_decode_initial
	mov	r3, r0
	cmp	r3, #0
	bne	.L1176
	mov	r1, #37
	ldr	r0, [fp, #-40]
	bl	error
	mov	r3, r0
	b	.L1171
.L1176:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-36]
	sub	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #1072]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	ldr	r2, [fp, #-44]
	cmp	r2, r3
	bcs	.L1178
	mov	r3, #1
	b	.L1171
.L1178:
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #1072]
	ldr	r3, [fp, #-12]
	add	r2, r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	ldr	r2, [fp, #-44]
	cmp	r2, r3
	bcs	.L1179
	ldr	r0, [fp, #-40]
	bl	vorbis_pump_first_frame
	b	.L1175
.L1179:
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #1072]
	ldr	r3, [fp, #-12]
	add	r2, r2, r3
	ldr	r3, [fp, #-40]
	str	r2, [r3, #1072]
	ldr	r3, [fp, #-40]
	mov	r2, #0
	str	r2, [r3, #1004]
	ldr	r0, [fp, #-40]
	bl	maybe_start_packet
	ldr	r0, [fp, #-40]
	bl	flush_packet
.L1175:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #1072]
	ldr	r2, [fp, #-44]
	cmp	r2, r3
	bhi	.L1181
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #1072]
	ldr	r2, [fp, #-44]
	cmp	r2, r3
	beq	.L1182
	mov	r1, #37
	ldr	r0, [fp, #-40]
	bl	error
	mov	r3, r0
	b	.L1171
.L1182:
	mov	r3, #1
.L1171:
	ldr	r2, .L1184
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1183
	bl	__stack_chk_fail
.L1183:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1185:
	.align	2
.L1184:
	.word	.LC37
	.word	__PRETTY_FUNCTION__.8007
	.word	4870
	.word	.LC0
	.word	.LC35
	.word	4871
	.word	.LC36
	.size	stb_vorbis_seek_frame, .-stb_vorbis_seek_frame
	.section	.rodata
	.align	2
.LC38:
	.ascii	"sample_number > frame_start\000"
	.align	2
.LC39:
	.ascii	"f->channel_buffer_start + (int) (sample_number-fram"
	.ascii	"e_start) <= f->channel_buffer_end\000"
	.align	2
.LC40:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stb_vorbis_seek
	.syntax unified
	.arm
	.fpu softvfp
	.type	stb_vorbis_seek, %function
stb_vorbis_seek:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r3, .L1193
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-24]
	bl	stb_vorbis_seek_frame
	mov	r3, r0
	cmp	r3, #0
	bne	.L1187
	mov	r3, #0
	b	.L1188
.L1187:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #1072]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	beq	.L1189
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #1072]
	str	r3, [fp, #-12]
	sub	r3, fp, #16
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	stb_vorbis_get_frame_float
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	bhi	.L1190
	ldr	r3, .L1193+4
	ldr	r2, .L1193+8
	ldr	r1, .L1193+12
	ldr	r0, .L1193+16
	bl	__assert_fail
.L1190:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #1516]
	ldr	r1, [fp, #-28]
	ldr	r2, [fp, #-12]
	sub	r2, r1, r2
	add	r2, r3, r2
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #1520]
	cmp	r2, r3
	ble	.L1191
	ldr	r3, .L1193+4
	ldr	r2, .L1193+20
	ldr	r1, .L1193+12
	ldr	r0, .L1193+24
	bl	__assert_fail
.L1191:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #1516]
	mov	r1, r3
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-12]
	sub	r3, r2, r3
	add	r3, r1, r3
	mov	r2, r3
	ldr	r3, [fp, #-24]
	str	r2, [r3, #1516]
.L1189:
	mov	r3, #1
.L1188:
	ldr	r2, .L1193
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1192
	bl	__stack_chk_fail
.L1192:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1194:
	.align	2
.L1193:
	.word	.LC40
	.word	__PRETTY_FUNCTION__.8023
	.word	4908
	.word	.LC0
	.word	.LC38
	.word	4909
	.word	.LC39
	.size	stb_vorbis_seek, .-stb_vorbis_seek
	.align	2
	.global	stb_vorbis_seek_start
	.syntax unified
	.arm
	.fpu softvfp
	.type	stb_vorbis_seek_start, %function
stb_vorbis_seek_start:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #60]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L1196
	mov	r1, #2
	ldr	r0, [fp, #-8]
	bl	error
	mov	r3, r0
	b	.L1197
.L1196:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #64]
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	set_file_offset
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #1004]
	ldr	r3, [fp, #-8]
	mov	r2, #1
	strb	r2, [r3, #1389]
	ldr	r3, [fp, #-8]
	mvn	r2, #0
	str	r2, [r3, #1392]
	ldr	r0, [fp, #-8]
	bl	vorbis_pump_first_frame
	mov	r3, r0
.L1197:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	stb_vorbis_seek_start, .-stb_vorbis_seek_start
	.section	.rodata
	.align	2
.LC41:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stb_vorbis_stream_length_in_samples
	.syntax unified
	.arm
	.fpu softvfp
	.type	stb_vorbis_stream_length_in_samples, %function
stb_vorbis_stream_length_in_samples:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-48]
	ldr	r3, .L1217
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-48]
	ldrb	r3, [r3, #60]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L1199
	mov	r1, #2
	ldr	r0, [fp, #-48]
	bl	error
	mov	r3, r0
	b	.L1214
.L1199:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #808]
	cmp	r3, #0
	bne	.L1201
	ldr	r0, [fp, #-48]
	bl	stb_vorbis_get_file_offset
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #56]
	cmp	r3, #65536
	bcc	.L1202
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #56]
	sub	r2, r3, #65536
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #64]
	cmp	r2, r3
	bcc	.L1202
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #56]
	sub	r3, r3, #65536
	str	r3, [fp, #-36]
	b	.L1203
.L1202:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #64]
	str	r3, [fp, #-36]
.L1203:
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-48]
	bl	set_file_offset
	sub	r2, fp, #40
	sub	r3, fp, #44
	mov	r1, r3
	ldr	r0, [fp, #-48]
	bl	vorbis_find_page
	mov	r3, r0
	cmp	r3, #0
	bne	.L1204
	ldr	r3, [fp, #-48]
	mov	r2, #36
	str	r2, [r3, #112]
	ldr	r3, [fp, #-48]
	mvn	r2, #0
	str	r2, [r3, #808]
	b	.L1205
.L1204:
	ldr	r0, [fp, #-48]
	bl	stb_vorbis_get_file_offset
	str	r0, [fp, #-32]
	b	.L1206
.L1209:
	ldr	r3, [fp, #-44]
	mov	r1, r3
	ldr	r0, [fp, #-48]
	bl	set_file_offset
	sub	r2, fp, #40
	sub	r3, fp, #44
	mov	r1, r3
	ldr	r0, [fp, #-48]
	bl	vorbis_find_page
	mov	r3, r0
	cmp	r3, #0
	beq	.L1216
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-36]
	ldr	r0, [fp, #-48]
	bl	stb_vorbis_get_file_offset
	str	r0, [fp, #-32]
.L1206:
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	beq	.L1209
	b	.L1208
.L1216:
	nop
.L1208:
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-48]
	bl	set_file_offset
	sub	r3, fp, #16
	mov	r2, #6
	mov	r1, r3
	ldr	r0, [fp, #-48]
	bl	getn
	ldr	r0, [fp, #-48]
	bl	get32
	str	r0, [fp, #-28]
	ldr	r0, [fp, #-48]
	bl	get32
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-28]
	cmn	r3, #1
	bne	.L1210
	ldr	r3, [fp, #-20]
	cmn	r3, #1
	bne	.L1210
	ldr	r3, [fp, #-48]
	mov	r2, #36
	str	r2, [r3, #112]
	ldr	r3, [fp, #-48]
	mvn	r2, #0
	str	r2, [r3, #808]
	b	.L1205
.L1210:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L1211
	mvn	r3, #1
	str	r3, [fp, #-28]
.L1211:
	ldr	r3, [fp, #-48]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #808]
	ldr	r3, [fp, #-48]
	ldr	r2, [fp, #-32]
	str	r2, [r3, #80]
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-48]
	str	r2, [r3, #84]
	ldr	r3, [fp, #-48]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #88]
.L1205:
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-48]
	bl	set_file_offset
.L1201:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #808]
	cmn	r3, #1
	beq	.L1212
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #808]
	b	.L1214
.L1212:
	mov	r3, #0
.L1214:
	ldr	r2, .L1217
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1215
	bl	__stack_chk_fail
.L1215:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1218:
	.align	2
.L1217:
	.word	.LC41
	.size	stb_vorbis_stream_length_in_samples, .-stb_vorbis_stream_length_in_samples
	.align	2
	.global	stb_vorbis_stream_length_in_seconds
	.syntax unified
	.arm
	.fpu softvfp
	.type	stb_vorbis_stream_length_in_seconds, %function
stb_vorbis_stream_length_in_seconds:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #12
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	stb_vorbis_stream_length_in_samples
	mov	r3, r0
	mov	r0, r3
	bl	__aeabi_ui2f
	mov	r4, r0
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_ui2f
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_fdiv
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	stb_vorbis_stream_length_in_seconds, .-stb_vorbis_stream_length_in_seconds
	.section	.rodata
	.align	2
.LC42:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stb_vorbis_get_frame_float
	.syntax unified
	.arm
	.fpu softvfp
	.type	stb_vorbis_get_frame_float, %function
stb_vorbis_get_frame_float:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	ldr	r3, .L1231
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3, #60]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L1222
	mov	r1, #2
	ldr	r0, [fp, #-32]
	bl	error
	mov	r3, r0
	b	.L1229
.L1222:
	sub	r3, fp, #20
	sub	r2, fp, #16
	sub	r1, fp, #24
	ldr	r0, [fp, #-32]
	bl	vorbis_decode_packet
	mov	r3, r0
	cmp	r3, #0
	bne	.L1224
	ldr	r3, [fp, #-32]
	mov	r2, #0
	str	r2, [r3, #1520]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #1520]
	ldr	r3, [fp, #-32]
	str	r2, [r3, #1516]
	mov	r3, #0
	b	.L1229
.L1224:
	ldr	r1, [fp, #-24]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	vorbis_finish_frame
	mov	r3, r0
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L1225
.L1226:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-12]
	add	r3, r3, #202
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r2, r2, r3
	ldr	r1, [fp, #-32]
	ldr	r3, [fp, #-12]
	add	r3, r3, #218
	lsl	r3, r3, #2
	add	r3, r1, r3
	str	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L1225:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L1226
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-32]
	str	r2, [r3, #1516]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r2, r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3, #1520]
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L1227
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-36]
	str	r2, [r3]
.L1227:
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	beq	.L1228
	ldr	r3, [fp, #-32]
	add	r2, r3, #876
	ldr	r3, [fp, #-40]
	str	r2, [r3]
.L1228:
	ldr	r3, [fp, #-24]
.L1229:
	ldr	r2, .L1231
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1230
	bl	__stack_chk_fail
.L1230:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1232:
	.align	2
.L1231:
	.word	.LC42
	.size	stb_vorbis_get_frame_float, .-stb_vorbis_get_frame_float
	.section	.rodata
	.align	2
.LC43:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stb_vorbis_open_file_section
	.syntax unified
	.arm
	.fpu softvfp
	.type	stb_vorbis_open_file_section, %function
stb_vorbis_open_file_section:
	@ args = 4, pretend = 0, frame = 1552
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #1552
	str	r0, [fp, #-1544]
	str	r1, [fp, #-1548]
	str	r2, [fp, #-1552]
	str	r3, [fp, #-1556]
	ldr	r3, .L1239
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #1520
	sub	r3, r3, #4
	sub	r3, r3, #8
	ldr	r1, [fp, #-1556]
	mov	r0, r3
	bl	vorbis_init
	ldr	r3, [fp, #-1544]
	str	r3, [fp, #-1500]
	ldr	r0, [fp, #-1544]
	bl	ftell
	mov	r3, r0
	str	r3, [fp, #-1496]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-1476]
	ldr	r3, [fp, #-1548]
	str	r3, [fp, #-1492]
	sub	r3, fp, #1520
	sub	r3, r3, #4
	sub	r3, r3, #8
	mov	r0, r3
	bl	start_decoder
	mov	r3, r0
	cmp	r3, #0
	beq	.L1234
	sub	r3, fp, #1520
	sub	r3, r3, #4
	sub	r3, r3, #8
	mov	r0, r3
	bl	vorbis_alloc
	str	r0, [fp, #-1536]
	ldr	r3, [fp, #-1536]
	cmp	r3, #0
	beq	.L1234
	ldr	r3, [fp, #-1536]
	mov	r0, r3
	sub	r3, fp, #1520
	sub	r3, r3, #4
	sub	r3, r3, #8
	ldr	r2, .L1239+4
	mov	r1, r3
	bl	memcpy
	ldr	r0, [fp, #-1536]
	bl	vorbis_pump_first_frame
	ldr	r3, [fp, #-1536]
	b	.L1237
.L1234:
	ldr	r3, [fp, #-1552]
	cmp	r3, #0
	beq	.L1236
	ldr	r3, [fp, #-1420]
	mov	r2, r3
	ldr	r3, [fp, #-1552]
	str	r2, [r3]
.L1236:
	sub	r3, fp, #1520
	sub	r3, r3, #4
	sub	r3, r3, #8
	mov	r0, r3
	bl	vorbis_deinit
	mov	r3, #0
.L1237:
	ldr	r2, .L1239
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1238
	bl	__stack_chk_fail
.L1238:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1240:
	.align	2
.L1239:
	.word	.LC43
	.word	1524
	.size	stb_vorbis_open_file_section, .-stb_vorbis_open_file_section
	.align	2
	.global	stb_vorbis_open_file
	.syntax unified
	.arm
	.fpu softvfp
	.type	stb_vorbis_open_file, %function
stb_vorbis_open_file:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	ldr	r0, [fp, #-16]
	bl	ftell
	mov	r3, r0
	str	r3, [fp, #-12]
	mov	r2, #2
	mov	r1, #0
	ldr	r0, [fp, #-16]
	bl	fseek
	ldr	r0, [fp, #-16]
	bl	ftell
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-12]
	sub	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	fseek
	ldr	r3, [fp, #-8]
	str	r3, [sp]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	stb_vorbis_open_file_section
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	stb_vorbis_open_file, .-stb_vorbis_open_file
	.section	.rodata
	.align	2
.LC44:
	.ascii	"rb\000"
	.text
	.align	2
	.global	stb_vorbis_open_filename
	.syntax unified
	.arm
	.fpu softvfp
	.type	stb_vorbis_open_filename, %function
stb_vorbis_open_filename:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r1, .L1247
	ldr	r0, [fp, #-16]
	bl	fopen
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L1244
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-20]
	mov	r1, #1
	ldr	r0, [fp, #-8]
	bl	stb_vorbis_open_file
	mov	r3, r0
	b	.L1245
.L1244:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L1246
	ldr	r3, [fp, #-20]
	mov	r2, #6
	str	r2, [r3]
.L1246:
	mov	r3, #0
.L1245:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1248:
	.align	2
.L1247:
	.word	.LC44
	.size	stb_vorbis_open_filename, .-stb_vorbis_open_filename
	.section	.rodata
	.align	2
.LC45:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stb_vorbis_open_memory
	.syntax unified
	.arm
	.fpu softvfp
	.type	stb_vorbis_open_memory, %function
stb_vorbis_open_memory:
	@ args = 0, pretend = 0, frame = 1552
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #1552
	str	r0, [fp, #-1544]
	str	r1, [fp, #-1548]
	str	r2, [fp, #-1552]
	str	r3, [fp, #-1556]
	ldr	r3, .L1257
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-1544]
	cmp	r3, #0
	bne	.L1250
	mov	r3, #0
	b	.L1255
.L1250:
	sub	r3, fp, #1520
	sub	r3, r3, #4
	sub	r3, r3, #8
	ldr	r1, [fp, #-1556]
	mov	r0, r3
	bl	vorbis_init
	ldr	r3, [fp, #-1544]
	str	r3, [fp, #-1488]
	ldr	r3, [fp, #-1548]
	ldr	r2, [fp, #-1544]
	add	r3, r2, r3
	str	r3, [fp, #-1480]
	ldr	r3, [fp, #-1488]
	str	r3, [fp, #-1484]
	ldr	r3, [fp, #-1548]
	str	r3, [fp, #-1476]
	mov	r3, #0
	strb	r3, [fp, #-1472]
	sub	r3, fp, #1520
	sub	r3, r3, #4
	sub	r3, r3, #8
	mov	r0, r3
	bl	start_decoder
	mov	r3, r0
	cmp	r3, #0
	beq	.L1252
	sub	r3, fp, #1520
	sub	r3, r3, #4
	sub	r3, r3, #8
	mov	r0, r3
	bl	vorbis_alloc
	str	r0, [fp, #-1536]
	ldr	r3, [fp, #-1536]
	cmp	r3, #0
	beq	.L1252
	ldr	r3, [fp, #-1536]
	mov	r0, r3
	sub	r3, fp, #1520
	sub	r3, r3, #4
	sub	r3, r3, #8
	ldr	r2, .L1257+4
	mov	r1, r3
	bl	memcpy
	ldr	r0, [fp, #-1536]
	bl	vorbis_pump_first_frame
	ldr	r3, [fp, #-1552]
	cmp	r3, #0
	beq	.L1253
	ldr	r3, [fp, #-1552]
	mov	r2, #0
	str	r2, [r3]
.L1253:
	ldr	r3, [fp, #-1536]
	b	.L1255
.L1252:
	ldr	r3, [fp, #-1552]
	cmp	r3, #0
	beq	.L1254
	ldr	r3, [fp, #-1420]
	mov	r2, r3
	ldr	r3, [fp, #-1552]
	str	r2, [r3]
.L1254:
	sub	r3, fp, #1520
	sub	r3, r3, #4
	sub	r3, r3, #8
	mov	r0, r3
	bl	vorbis_deinit
	mov	r3, #0
.L1255:
	ldr	r2, .L1257
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1256
	bl	__stack_chk_fail
.L1256:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1258:
	.align	2
.L1257:
	.word	.LC45
	.word	1524
	.size	stb_vorbis_open_memory, .-stb_vorbis_open_memory
	.data
	.align	2
	.type	channel_position, %object
	.size	channel_position, 42
channel_position:
	.ascii	"\000\000"
	.space	4
	.ascii	"\007\000"
	.space	4
	.ascii	"\003\005\000"
	.space	3
	.ascii	"\003\007\005\000"
	.space	2
	.ascii	"\003\005\003\005\000"
	.space	1
	.ascii	"\003\007\005\003\005\000"
	.ascii	"\003\007\005\003\005\007"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	copy_samples, %function
copy_samples:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L1260
.L1264:
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	ldr	r1, .L1265
	mov	r0, r3
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-16]	@ float
	ldr	r3, [fp, #-16]
	add	r3, r3, #-1140850688
	add	r3, r3, #4194304
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	add	r3, r3, #32768
	cmp	r3, #65536
	bcc	.L1261
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bge	.L1262
	ldr	r3, .L1265+4
	b	.L1263
.L1262:
	ldr	r3, .L1265+8
.L1263:
	str	r3, [fp, #-8]
.L1261:
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-24]
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	lsl	r2, r2, #16
	asr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L1260:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	blt	.L1264
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1266:
	.align	2
.L1265:
	.word	1136656384
	.word	-32768
	.word	32767
	.size	copy_samples, .-copy_samples
	.section	.rodata
	.align	2
.LC46:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	compute_samples, %function
compute_samples:
	@ args = 8, pretend = 0, frame = 176
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #176
	str	r0, [fp, #-168]
	str	r1, [fp, #-172]
	str	r2, [fp, #-176]
	str	r3, [fp, #-180]
	ldr	r3, .L1282
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #32
	str	r3, [fp, #-144]
	mov	r3, #0
	str	r3, [fp, #-148]
	b	.L1268
.L1280:
	sub	r3, fp, #136
	mov	r2, #128
	mov	r1, #0
	mov	r0, r3
	bl	memset
	ldr	r2, [fp, #-148]
	ldr	r3, [fp, #-144]
	add	r3, r2, r3
	ldr	r2, [fp, #8]
	cmp	r2, r3
	bge	.L1269
	ldr	r2, [fp, #8]
	ldr	r3, [fp, #-148]
	sub	r3, r2, r3
	str	r3, [fp, #-144]
.L1269:
	mov	r3, #0
	str	r3, [fp, #-152]
	b	.L1270
.L1274:
	ldr	r1, .L1282+4
	ldr	r2, [fp, #-176]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r2, r1, r3
	ldr	r3, [fp, #-152]
	add	r3, r2, r3
	ldrsb	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-168]
	and	r3, r3, r2
	cmp	r3, #0
	beq	.L1271
	mov	r3, #0
	str	r3, [fp, #-156]
	b	.L1272
.L1273:
	ldr	r3, [fp, #-156]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r0, [r3, #-132]	@ float
	ldr	r3, [fp, #-152]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-180]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r1, [fp, #4]
	ldr	r3, [fp, #-148]
	add	r1, r1, r3
	ldr	r3, [fp, #-156]
	add	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	mov	r1, r3
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-156]
	lsl	r3, r3, #2
	sub	r1, fp, #4
	add	r3, r1, r3
	str	r2, [r3, #-132]	@ float
	ldr	r3, [fp, #-156]
	add	r3, r3, #1
	str	r3, [fp, #-156]
.L1272:
	ldr	r2, [fp, #-156]
	ldr	r3, [fp, #-144]
	cmp	r2, r3
	blt	.L1273
.L1271:
	ldr	r3, [fp, #-152]
	add	r3, r3, #1
	str	r3, [fp, #-152]
.L1270:
	ldr	r2, [fp, #-152]
	ldr	r3, [fp, #-176]
	cmp	r2, r3
	blt	.L1274
	mov	r3, #0
	str	r3, [fp, #-156]
	b	.L1275
.L1279:
	ldr	r3, [fp, #-156]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-132]	@ float
	ldr	r1, .L1282+8
	mov	r0, r3
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-160]	@ float
	ldr	r3, [fp, #-160]
	add	r3, r3, #-1140850688
	add	r3, r3, #4194304
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-140]
	add	r3, r3, #32768
	cmp	r3, #65536
	bcc	.L1276
	ldr	r3, [fp, #-140]
	cmp	r3, #0
	bge	.L1277
	ldr	r3, .L1282+12
	b	.L1278
.L1277:
	ldr	r3, .L1282+16
.L1278:
	str	r3, [fp, #-140]
.L1276:
	ldr	r2, [fp, #-148]
	ldr	r3, [fp, #-156]
	add	r3, r2, r3
	lsl	r3, r3, #1
	ldr	r2, [fp, #-172]
	add	r3, r2, r3
	ldr	r2, [fp, #-140]
	lsl	r2, r2, #16
	asr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-156]
	add	r3, r3, #1
	str	r3, [fp, #-156]
.L1275:
	ldr	r2, [fp, #-156]
	ldr	r3, [fp, #-144]
	cmp	r2, r3
	blt	.L1279
	ldr	r3, [fp, #-148]
	add	r3, r3, #32
	str	r3, [fp, #-148]
.L1268:
	ldr	r2, [fp, #-148]
	ldr	r3, [fp, #8]
	cmp	r2, r3
	blt	.L1280
	nop
	ldr	r3, .L1282
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L1281
	bl	__stack_chk_fail
.L1281:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1283:
	.align	2
.L1282:
	.word	.LC46
	.word	channel_position
	.word	1136656384
	.word	-32768
	.word	32767
	.size	compute_samples, .-compute_samples
	.section	.rodata
	.align	2
.LC47:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	compute_stereo_samples, %function
compute_stereo_samples:
	@ args = 4, pretend = 0, frame = 184
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #188
	str	r0, [fp, #-184]
	str	r1, [fp, #-188]
	str	r2, [fp, #-192]
	str	r3, [fp, #-196]
	ldr	r3, .L1305
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #16
	str	r3, [fp, #-160]
	mov	r3, #0
	str	r3, [fp, #-164]
	b	.L1285
.L1303:
	ldr	r3, [fp, #-164]
	lsl	r3, r3, #1
	str	r3, [fp, #-152]
	sub	r3, fp, #144
	mov	r2, #128
	mov	r1, #0
	mov	r0, r3
	bl	memset
	ldr	r2, [fp, #-164]
	ldr	r3, [fp, #-160]
	add	r3, r2, r3
	ldr	r2, [fp, #4]
	cmp	r2, r3
	bge	.L1286
	ldr	r2, [fp, #4]
	ldr	r3, [fp, #-164]
	sub	r3, r2, r3
	str	r3, [fp, #-160]
.L1286:
	mov	r3, #0
	str	r3, [fp, #-168]
	b	.L1287
.L1297:
	ldr	r1, .L1305+4
	ldr	r2, [fp, #-188]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r2, r1, r3
	ldr	r3, [fp, #-168]
	add	r3, r2, r3
	ldrsb	r3, [r3]
	and	r3, r3, #255
	and	r3, r3, #6
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-148]
	cmp	r3, #6
	bne	.L1288
	mov	r3, #0
	str	r3, [fp, #-172]
	b	.L1289
.L1290:
	ldr	r3, [fp, #-172]
	lsl	r3, r3, #1
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r0, [r3, #-132]	@ float
	ldr	r3, [fp, #-168]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-192]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r1, [fp, #-196]
	ldr	r3, [fp, #-164]
	add	r1, r1, r3
	ldr	r3, [fp, #-172]
	add	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-172]
	lsl	r4, r3, #1
	mov	r1, r2
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r2, r3
	lsl	r3, r4, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-132]	@ float
	ldr	r3, [fp, #-172]
	lsl	r3, r3, #1
	add	r3, r3, #1
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r0, [r3, #-132]	@ float
	ldr	r3, [fp, #-168]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-192]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r1, [fp, #-196]
	ldr	r3, [fp, #-164]
	add	r1, r1, r3
	ldr	r3, [fp, #-172]
	add	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-172]
	lsl	r3, r3, #1
	add	r4, r3, #1
	mov	r1, r2
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r2, r3
	lsl	r3, r4, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-132]	@ float
	ldr	r3, [fp, #-172]
	add	r3, r3, #1
	str	r3, [fp, #-172]
.L1289:
	ldr	r2, [fp, #-172]
	ldr	r3, [fp, #-160]
	cmp	r2, r3
	blt	.L1290
	b	.L1291
.L1288:
	ldr	r3, [fp, #-148]
	cmp	r3, #2
	bne	.L1292
	mov	r3, #0
	str	r3, [fp, #-172]
	b	.L1293
.L1294:
	ldr	r3, [fp, #-172]
	lsl	r3, r3, #1
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r0, [r3, #-132]	@ float
	ldr	r3, [fp, #-168]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-192]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r1, [fp, #-196]
	ldr	r3, [fp, #-164]
	add	r1, r1, r3
	ldr	r3, [fp, #-172]
	add	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-172]
	lsl	r4, r3, #1
	mov	r1, r2
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r2, r3
	lsl	r3, r4, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-132]	@ float
	ldr	r3, [fp, #-172]
	add	r3, r3, #1
	str	r3, [fp, #-172]
.L1293:
	ldr	r2, [fp, #-172]
	ldr	r3, [fp, #-160]
	cmp	r2, r3
	blt	.L1294
	b	.L1291
.L1292:
	ldr	r3, [fp, #-148]
	cmp	r3, #4
	bne	.L1291
	mov	r3, #0
	str	r3, [fp, #-172]
	b	.L1295
.L1296:
	ldr	r3, [fp, #-172]
	lsl	r3, r3, #1
	add	r3, r3, #1
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r0, [r3, #-132]	@ float
	ldr	r3, [fp, #-168]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-192]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r1, [fp, #-196]
	ldr	r3, [fp, #-164]
	add	r1, r1, r3
	ldr	r3, [fp, #-172]
	add	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]	@ float
	ldr	r3, [fp, #-172]
	lsl	r3, r3, #1
	add	r4, r3, #1
	mov	r1, r2
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r2, r3
	lsl	r3, r4, #2
	sub	r1, fp, #12
	add	r3, r1, r3
	str	r2, [r3, #-132]	@ float
	ldr	r3, [fp, #-172]
	add	r3, r3, #1
	str	r3, [fp, #-172]
.L1295:
	ldr	r2, [fp, #-172]
	ldr	r3, [fp, #-160]
	cmp	r2, r3
	blt	.L1296
.L1291:
	ldr	r3, [fp, #-168]
	add	r3, r3, #1
	str	r3, [fp, #-168]
.L1287:
	ldr	r2, [fp, #-168]
	ldr	r3, [fp, #-188]
	cmp	r2, r3
	blt	.L1297
	mov	r3, #0
	str	r3, [fp, #-172]
	b	.L1298
.L1302:
	ldr	r3, [fp, #-172]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r3, [r3, #-132]	@ float
	ldr	r1, .L1305+8
	mov	r0, r3
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-176]	@ float
	ldr	r3, [fp, #-176]
	add	r3, r3, #-1140850688
	add	r3, r3, #4194304
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-156]
	add	r3, r3, #32768
	cmp	r3, #65536
	bcc	.L1299
	ldr	r3, [fp, #-156]
	cmp	r3, #0
	bge	.L1300
	ldr	r3, .L1305+12
	b	.L1301
.L1300:
	ldr	r3, .L1305+16
.L1301:
	str	r3, [fp, #-156]
.L1299:
	ldr	r2, [fp, #-152]
	ldr	r3, [fp, #-172]
	add	r3, r2, r3
	lsl	r3, r3, #1
	ldr	r2, [fp, #-184]
	add	r3, r2, r3
	ldr	r2, [fp, #-156]
	lsl	r2, r2, #16
	asr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-172]
	add	r3, r3, #1
	str	r3, [fp, #-172]
.L1298:
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-172]
	cmp	r2, r3
	blt	.L1302
	ldr	r3, [fp, #-164]
	add	r3, r3, #16
	str	r3, [fp, #-164]
.L1285:
	ldr	r2, [fp, #-164]
	ldr	r3, [fp, #4]
	cmp	r2, r3
	blt	.L1303
	nop
	ldr	r3, .L1305
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L1304
	bl	__stack_chk_fail
.L1304:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1306:
	.align	2
.L1305:
	.word	.LC47
	.word	channel_position
	.word	1136656384
	.word	-32768
	.word	32767
	.size	compute_stereo_samples, .-compute_stereo_samples
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	convert_samples_short, %function
convert_samples_short:
	@ args = 12, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	beq	.L1308
	ldr	r3, [fp, #-16]
	cmp	r3, #2
	bgt	.L1308
	ldr	r3, [fp, #-28]
	cmp	r3, #6
	bgt	.L1308
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L1309
.L1310:
	ldr	r1, .L1316
	ldr	r3, [fp, #-16]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	ldr	r0, [r1, r3, lsl #2]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #1
	add	r1, r2, r3
	ldr	r3, [fp, #12]
	str	r3, [sp, #4]
	ldr	r3, [fp, #8]
	str	r3, [sp]
	ldr	r3, [fp, #4]
	ldr	r2, [fp, #-28]
	bl	compute_samples
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L1309:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L1310
	b	.L1311
.L1308:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	movlt	r3, r2
	movge	r3, r3
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L1312
.L1313:
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #1
	add	r0, r2, r3
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	ldr	r2, [fp, #4]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #8]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #12]
	mov	r1, r3
	bl	copy_samples
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L1312:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	blt	.L1313
	b	.L1314
.L1315:
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #1
	add	r0, r2, r3
	ldr	r3, [fp, #12]
	lsl	r3, r3, #1
	mov	r2, r3
	mov	r1, #0
	bl	memset
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L1314:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L1315
	nop
.L1311:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1317:
	.align	2
.L1316:
	.word	channel_selector.8176
	.size	convert_samples_short, .-convert_samples_short
	.section	.rodata
	.align	2
.LC48:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stb_vorbis_get_frame_short
	.syntax unified
	.arm
	.fpu softvfp
	.type	stb_vorbis_get_frame_short, %function
stb_vorbis_get_frame_short:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	str	r3, [fp, #-36]
	ldr	r3, .L1323
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-16]
	sub	r3, fp, #16
	mov	r2, r3
	mov	r1, #0
	ldr	r0, [fp, #-24]
	bl	stb_vorbis_get_frame_float
	str	r0, [fp, #-12]
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-36]
	cmp	r2, r3
	ble	.L1319
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-12]
.L1319:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L1320
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [sp, #8]
	mov	r2, #0
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, r1
	mov	r2, #0
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-28]
	bl	convert_samples_short
.L1320:
	ldr	r3, [fp, #-12]
	ldr	r2, .L1323
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1322
	bl	__stack_chk_fail
.L1322:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1324:
	.align	2
.L1323:
	.word	.LC48
	.size	stb_vorbis_get_frame_short, .-stb_vorbis_get_frame_short
	.section	.rodata
	.align	2
.LC49:
	.ascii	"buf_c == 2\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	convert_channels_short_interleaved, %function
convert_channels_short_interleaved:
	@ args = 8, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	beq	.L1326
	ldr	r3, [fp, #-32]
	cmp	r3, #2
	bgt	.L1326
	ldr	r3, [fp, #-40]
	cmp	r3, #6
	bgt	.L1326
	ldr	r3, [fp, #-32]
	cmp	r3, #2
	beq	.L1327
	ldr	r3, .L1340
	ldr	r2, .L1340+4
	ldr	r1, .L1340+8
	ldr	r0, .L1340+12
	bl	__assert_fail
.L1327:
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L1328
.L1329:
	ldr	r3, [fp, #8]
	str	r3, [sp]
	ldr	r3, [fp, #4]
	ldr	r2, [fp, #-44]
	ldr	r1, [fp, #-40]
	ldr	r0, [fp, #-36]
	bl	compute_stereo_samples
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L1328:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	blt	.L1329
	b	.L1330
.L1326:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	movlt	r3, r2
	movge	r3, r3
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L1331
.L1339:
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L1332
.L1336:
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-44]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r1, [fp, #4]
	ldr	r3, [fp, #-20]
	add	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	str	r3, [fp, #-8]	@ float
	ldr	r1, .L1340+16
	ldr	r0, [fp, #-8]	@ float
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-28]	@ float
	ldr	r3, [fp, #-28]
	add	r3, r3, #-1140850688
	add	r3, r3, #4194304
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	add	r3, r3, #32768
	cmp	r3, #65536
	bcc	.L1333
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bge	.L1334
	ldr	r3, .L1340+20
	b	.L1335
.L1334:
	ldr	r3, .L1340+24
.L1335:
	str	r3, [fp, #-16]
.L1333:
	ldr	r3, [fp, #-36]
	add	r2, r3, #2
	str	r2, [fp, #-36]
	ldr	r2, [fp, #-16]
	lsl	r2, r2, #16
	asr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L1332:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	blt	.L1336
	b	.L1337
.L1338:
	ldr	r3, [fp, #-36]
	add	r2, r3, #2
	str	r2, [fp, #-36]
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L1337:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	blt	.L1338
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L1331:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #8]
	cmp	r2, r3
	blt	.L1339
	nop
.L1330:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1341:
	.align	2
.L1340:
	.word	__PRETTY_FUNCTION__.8204
	.word	5250
	.word	.LC0
	.word	.LC49
	.word	1136656384
	.word	-32768
	.word	32767
	.size	convert_channels_short_interleaved, .-convert_channels_short_interleaved
	.section	.rodata
	.align	2
.LC50:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stb_vorbis_get_frame_short_interleaved
	.syntax unified
	.arm
	.fpu softvfp
	.type	stb_vorbis_get_frame_short_interleaved, %function
stb_vorbis_get_frame_short_interleaved:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	str	r3, [fp, #-36]
	ldr	r3, .L1349
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-28]
	cmp	r3, #1
	bne	.L1343
	sub	r2, fp, #32
	ldr	r3, [fp, #-36]
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-24]
	bl	stb_vorbis_get_frame_short
	mov	r3, r0
	b	.L1347
.L1343:
	sub	r3, fp, #16
	mov	r2, r3
	mov	r1, #0
	ldr	r0, [fp, #-24]
	bl	stb_vorbis_get_frame_float
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L1345
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-28]
	mul	r3, r2, r3
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	bge	.L1346
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-36]
	bl	__aeabi_idiv
	mov	r3, r0
	str	r3, [fp, #-12]
.L1346:
	ldr	r1, [fp, #-32]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #4]
	ldr	r0, [fp, #-16]
	ldr	r3, [fp, #-12]
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, r0
	ldr	r0, [fp, #-28]
	bl	convert_channels_short_interleaved
.L1345:
	ldr	r3, [fp, #-12]
.L1347:
	ldr	r2, .L1349
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1348
	bl	__stack_chk_fail
.L1348:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1350:
	.align	2
.L1349:
	.word	.LC50
	.size	stb_vorbis_get_frame_short_interleaved, .-stb_vorbis_get_frame_short_interleaved
	.section	.rodata
	.align	2
.LC51:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stb_vorbis_get_samples_short_interleaved
	.syntax unified
	.arm
	.fpu softvfp
	.type	stb_vorbis_get_samples_short_interleaved, %function
stb_vorbis_get_samples_short_interleaved:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	ldr	r3, .L1363
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-44]
	bl	__aeabi_idiv
	mov	r3, r0
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-36]
	cmp	r2, r3
	ble	.L1353
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-12]
	b	.L1353
.L1358:
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #1520]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1516]
	sub	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bgt	.L1354
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-24]
	sub	r3, r2, r3
	str	r3, [fp, #-20]
.L1354:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L1355
	ldr	r3, [fp, #-32]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-32]
	add	r0, r3, #812
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1516]
	ldr	r2, [fp, #-20]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, r0
	mov	r2, r1
	ldr	r1, [fp, #-40]
	ldr	r0, [fp, #-36]
	bl	convert_channels_short_interleaved
.L1355:
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-36]
	mul	r3, r2, r3
	lsl	r3, r3, #1
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #1516]
	ldr	r3, [fp, #-20]
	add	r2, r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3, #1516]
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	beq	.L1361
	sub	r3, fp, #28
	mov	r2, r3
	mov	r1, #0
	ldr	r0, [fp, #-32]
	bl	stb_vorbis_get_frame_float
	mov	r3, r0
	cmp	r3, #0
	beq	.L1362
.L1353:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L1358
	b	.L1357
.L1361:
	nop
	b	.L1357
.L1362:
	nop
.L1357:
	ldr	r3, [fp, #-24]
	ldr	r2, .L1363
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1360
	bl	__stack_chk_fail
.L1360:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1364:
	.align	2
.L1363:
	.word	.LC51
	.size	stb_vorbis_get_samples_short_interleaved, .-stb_vorbis_get_samples_short_interleaved
	.section	.rodata
	.align	2
.LC52:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stb_vorbis_get_samples_short
	.syntax unified
	.arm
	.fpu softvfp
	.type	stb_vorbis_get_samples_short, %function
stb_vorbis_get_samples_short:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #56
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	ldr	r3, .L1377
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-36]
	cmp	r2, r3
	ble	.L1367
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-12]
	b	.L1367
.L1372:
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #1520]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1516]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	ldr	r2, [fp, #-44]
	cmp	r2, r3
	bgt	.L1368
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-20]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
.L1368:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L1369
	ldr	r3, [fp, #-32]
	ldr	r0, [r3, #4]
	ldr	r3, [fp, #-32]
	add	r3, r3, #812
	ldr	r2, [fp, #-32]
	ldr	r2, [r2, #1516]
	ldr	r1, [fp, #-16]
	str	r1, [sp, #8]
	str	r2, [sp, #4]
	str	r3, [sp]
	mov	r3, r0
	ldr	r2, [fp, #-20]
	ldr	r1, [fp, #-40]
	ldr	r0, [fp, #-36]
	bl	convert_samples_short
.L1369:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #1516]
	ldr	r3, [fp, #-16]
	add	r2, r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3, #1516]
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	beq	.L1375
	sub	r3, fp, #24
	mov	r2, r3
	mov	r1, #0
	ldr	r0, [fp, #-32]
	bl	stb_vorbis_get_frame_float
	mov	r3, r0
	cmp	r3, #0
	beq	.L1376
.L1367:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	blt	.L1372
	b	.L1371
.L1375:
	nop
	b	.L1371
.L1376:
	nop
.L1371:
	ldr	r3, [fp, #-20]
	ldr	r2, .L1377
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1374
	bl	__stack_chk_fail
.L1374:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1378:
	.align	2
.L1377:
	.word	.LC52
	.size	stb_vorbis_get_samples_short, .-stb_vorbis_get_samples_short
	.section	.rodata
	.align	2
.LC53:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stb_vorbis_decode_filename
	.syntax unified
	.arm
	.fpu softvfp
	.type	stb_vorbis_decode_filename, %function
stb_vorbis_decode_filename:
	@ args = 0, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #56
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	str	r2, [fp, #-56]
	str	r3, [fp, #-60]
	ldr	r3, .L1392
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #44
	mov	r2, #0
	mov	r1, r3
	ldr	r0, [fp, #-48]
	bl	stb_vorbis_open_filename
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L1380
	mvn	r3, #0
	b	.L1388
.L1380:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #12
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-52]
	str	r2, [r3]
	ldr	r3, [fp, #-56]
	cmp	r3, #0
	beq	.L1382
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-56]
	str	r2, [r3]
.L1382:
	mov	r3, #0
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #1
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bne	.L1383
	ldr	r0, [fp, #-24]
	bl	stb_vorbis_close
	mvn	r3, #1
	b	.L1388
.L1383:
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-28]
	add	r0, r2, r3
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-36]
	sub	r3, r2, r3
	mov	r2, r0
	ldr	r0, [fp, #-24]
	bl	stb_vorbis_get_frame_short_interleaved
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L1391
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-16]
	mul	r3, r2, r3
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	bge	.L1383
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #1
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-28]
	bl	realloc
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L1387
	ldr	r0, [fp, #-28]
	bl	free
	ldr	r0, [fp, #-24]
	bl	stb_vorbis_close
	mvn	r3, #1
	b	.L1388
.L1387:
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-28]
	b	.L1383
.L1391:
	nop
	ldr	r3, [fp, #-60]
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r0, [fp, #-24]
	bl	stb_vorbis_close
	ldr	r3, [fp, #-40]
.L1388:
	ldr	r2, .L1392
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1389
	bl	__stack_chk_fail
.L1389:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1393:
	.align	2
.L1392:
	.word	.LC53
	.size	stb_vorbis_decode_filename, .-stb_vorbis_decode_filename
	.section	.rodata
	.align	2
.LC54:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stb_vorbis_decode_memory
	.syntax unified
	.arm
	.fpu softvfp
	.type	stb_vorbis_decode_memory, %function
stb_vorbis_decode_memory:
	@ args = 4, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #64
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	str	r2, [fp, #-56]
	str	r3, [fp, #-60]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-64]
	ldr	r3, .L1407
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r2, fp, #44
	mov	r3, #0
	ldr	r1, [fp, #-52]
	ldr	r0, [fp, #-48]
	bl	stb_vorbis_open_memory
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L1395
	mvn	r3, #0
	b	.L1403
.L1395:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #12
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-56]
	str	r2, [r3]
	ldr	r3, [fp, #-60]
	cmp	r3, #0
	beq	.L1397
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-60]
	str	r2, [r3]
.L1397:
	mov	r3, #0
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #1
	mov	r0, r3
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bne	.L1398
	ldr	r0, [fp, #-24]
	bl	stb_vorbis_close
	mvn	r3, #1
	b	.L1403
.L1398:
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-28]
	add	r0, r2, r3
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-36]
	sub	r3, r2, r3
	mov	r2, r0
	ldr	r0, [fp, #-24]
	bl	stb_vorbis_get_frame_short_interleaved
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L1406
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-16]
	mul	r3, r2, r3
	ldr	r2, [fp, #-36]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	bge	.L1398
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #1
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-28]
	bl	realloc
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L1402
	ldr	r0, [fp, #-28]
	bl	free
	ldr	r0, [fp, #-24]
	bl	stb_vorbis_close
	mvn	r3, #1
	b	.L1403
.L1402:
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-28]
	b	.L1398
.L1406:
	nop
	ldr	r3, [fp, #-64]
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r0, [fp, #-24]
	bl	stb_vorbis_close
	ldr	r3, [fp, #-40]
.L1403:
	ldr	r2, .L1407
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1404
	bl	__stack_chk_fail
.L1404:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1408:
	.align	2
.L1407:
	.word	.LC54
	.size	stb_vorbis_decode_memory, .-stb_vorbis_decode_memory
	.section	.rodata
	.align	2
.LC55:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stb_vorbis_get_samples_float_interleaved
	.syntax unified
	.arm
	.fpu softvfp
	.type	stb_vorbis_get_samples_float_interleaved, %function
stb_vorbis_get_samples_float_interleaved:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	str	r2, [fp, #-48]
	str	r3, [fp, #-52]
	ldr	r3, .L1426
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-52]
	bl	__aeabi_idiv
	mov	r3, r0
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-28]
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	ble	.L1411
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-28]
	b	.L1411
.L1421:
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #1520]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #1516]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bgt	.L1412
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-32]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
.L1412:
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L1413
.L1418:
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L1414
.L1415:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-24]
	add	r3, r3, #202
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-40]
	ldr	r1, [r3, #1516]
	ldr	r3, [fp, #-20]
	add	r3, r1, r3
	lsl	r3, r3, #2
	add	r2, r2, r3
	ldr	r3, [fp, #-48]
	add	r1, r3, #4
	str	r1, [fp, #-48]
	ldr	r2, [r2]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L1414:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	blt	.L1415
	b	.L1416
.L1417:
	ldr	r3, [fp, #-48]
	add	r2, r3, #4
	str	r2, [fp, #-48]
	mov	r2, #0
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L1416:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	blt	.L1417
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L1413:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L1418
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #1516]
	ldr	r3, [fp, #-16]
	add	r2, r2, r3
	ldr	r3, [fp, #-40]
	str	r2, [r3, #1516]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	beq	.L1424
	sub	r3, fp, #36
	mov	r2, r3
	mov	r1, #0
	ldr	r0, [fp, #-40]
	bl	stb_vorbis_get_frame_float
	mov	r3, r0
	cmp	r3, #0
	beq	.L1425
.L1411:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	blt	.L1421
	b	.L1420
.L1424:
	nop
	b	.L1420
.L1425:
	nop
.L1420:
	ldr	r3, [fp, #-32]
	ldr	r2, .L1426
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1423
	bl	__stack_chk_fail
.L1423:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1427:
	.align	2
.L1426:
	.word	.LC55
	.size	stb_vorbis_get_samples_float_interleaved, .-stb_vorbis_get_samples_float_interleaved
	.section	.rodata
	.align	2
.LC56:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	stb_vorbis_get_samples_float
	.syntax unified
	.arm
	.fpu softvfp
	.type	stb_vorbis_get_samples_float, %function
stb_vorbis_get_samples_float:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	ldr	r3, .L1444
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-20]
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-36]
	cmp	r2, r3
	ble	.L1430
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-20]
	b	.L1430
.L1439:
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #1520]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1516]
	sub	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	ldr	r2, [fp, #-44]
	cmp	r2, r3
	bgt	.L1431
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-24]
	sub	r3, r2, r3
	str	r3, [fp, #-12]
.L1431:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L1432
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L1433
.L1434:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	add	r0, r2, r3
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-16]
	add	r3, r3, #202
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1516]
	lsl	r3, r3, #2
	add	r1, r2, r3
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	mov	r2, r3
	bl	memcpy
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L1433:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	blt	.L1434
	b	.L1435
.L1436:
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-40]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #2
	add	r0, r2, r3
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	mov	r2, r3
	mov	r1, #0
	bl	memset
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L1435:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-36]
	cmp	r2, r3
	blt	.L1436
.L1432:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #1516]
	ldr	r3, [fp, #-12]
	add	r2, r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3, #1516]
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	beq	.L1442
	sub	r3, fp, #28
	mov	r2, r3
	mov	r1, #0
	ldr	r0, [fp, #-32]
	bl	stb_vorbis_get_frame_float
	mov	r3, r0
	cmp	r3, #0
	beq	.L1443
.L1430:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	blt	.L1439
	b	.L1438
.L1442:
	nop
	b	.L1438
.L1443:
	nop
.L1438:
	ldr	r3, [fp, #-24]
	ldr	r2, .L1444
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1441
	bl	__stack_chk_fail
.L1441:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1445:
	.align	2
.L1444:
	.word	.LC56
	.size	stb_vorbis_get_samples_float, .-stb_vorbis_get_samples_float
	.data
	.align	2
	.type	log2_4.6716, %object
	.size	log2_4.6716, 16
log2_4.6716:
	.ascii	"\000\001\002\002\003\003\003\003\004\004\004\004\004"
	.ascii	"\004\004\004"
	.section	.rodata
	.align	2
	.type	__PRETTY_FUNCTION__.6745, %object
	.size	__PRETTY_FUNCTION__.6745, 18
__PRETTY_FUNCTION__.6745:
	.ascii	"compute_codewords\000"
	.align	2
	.type	__PRETTY_FUNCTION__.6787, %object
	.size	__PRETTY_FUNCTION__.6787, 16
__PRETTY_FUNCTION__.6787:
	.ascii	"include_in_sort\000"
	.align	2
	.type	__PRETTY_FUNCTION__.6799, %object
	.size	__PRETTY_FUNCTION__.6799, 23
__PRETTY_FUNCTION__.6799:
	.ascii	"compute_sorted_huffman\000"
	.data
	.align	2
	.type	vorbis.6817, %object
	.size	vorbis.6817, 6
vorbis.6817:
	.ascii	"vorbis"
	.section	.rodata
	.align	2
	.type	__PRETTY_FUNCTION__.6946, %object
	.size	__PRETTY_FUNCTION__.6946, 13
__PRETTY_FUNCTION__.6946:
	.ascii	"next_segment\000"
	.align	2
	.type	__PRETTY_FUNCTION__.6950, %object
	.size	__PRETTY_FUNCTION__.6950, 16
__PRETTY_FUNCTION__.6950:
	.ascii	"get8_packet_raw\000"
	.align	2
	.type	__PRETTY_FUNCTION__.6974, %object
	.size	__PRETTY_FUNCTION__.6974, 9
__PRETTY_FUNCTION__.6974:
	.ascii	"get_bits\000"
	.align	2
	.type	__PRETTY_FUNCTION__.6998, %object
	.size	__PRETTY_FUNCTION__.6998, 27
__PRETTY_FUNCTION__.6998:
	.ascii	"codebook_decode_scalar_raw\000"
	.align	2
	.type	__PRETTY_FUNCTION__.7009, %object
	.size	__PRETTY_FUNCTION__.7009, 22
__PRETTY_FUNCTION__.7009:
	.ascii	"codebook_decode_start\000"
	.align	2
	.type	__PRETTY_FUNCTION__.7058, %object
	.size	__PRETTY_FUNCTION__.7058, 36
__PRETTY_FUNCTION__.7058:
	.ascii	"codebook_decode_deinterleave_repeat\000"
	.align	2
	.type	__PRETTY_FUNCTION__.7219, %object
	.size	__PRETTY_FUNCTION__.7219, 23
__PRETTY_FUNCTION__.7219:
	.ascii	"imdct_step3_iter0_loop\000"
	.align	2
	.type	__PRETTY_FUNCTION__.7360, %object
	.size	__PRETTY_FUNCTION__.7360, 13
__PRETTY_FUNCTION__.7360:
	.ascii	"inverse_mdct\000"
	.align	2
	.type	__PRETTY_FUNCTION__.7434, %object
	.size	__PRETTY_FUNCTION__.7434, 22
__PRETTY_FUNCTION__.7434:
	.ascii	"vorbis_decode_initial\000"
	.data
	.align	2
	.type	range_list.7458, %object
	.size	range_list.7458, 16
range_list.7458:
	.word	256
	.word	128
	.word	86
	.word	64
	.section	.rodata
	.align	2
	.type	__PRETTY_FUNCTION__.7495, %object
	.size	__PRETTY_FUNCTION__.7495, 26
__PRETTY_FUNCTION__.7495:
	.ascii	"vorbis_decode_packet_rest\000"
	.align	2
	.type	__PRETTY_FUNCTION__.7770, %object
	.size	__PRETTY_FUNCTION__.7770, 14
__PRETTY_FUNCTION__.7770:
	.ascii	"start_decoder\000"
	.align	2
	.type	__PRETTY_FUNCTION__.7976, %object
	.size	__PRETTY_FUNCTION__.7976, 22
__PRETTY_FUNCTION__.7976:
	.ascii	"seek_to_sample_coarse\000"
	.align	2
	.type	__PRETTY_FUNCTION__.8007, %object
	.size	__PRETTY_FUNCTION__.8007, 22
__PRETTY_FUNCTION__.8007:
	.ascii	"stb_vorbis_seek_frame\000"
	.align	2
	.type	__PRETTY_FUNCTION__.8023, %object
	.size	__PRETTY_FUNCTION__.8023, 16
__PRETTY_FUNCTION__.8023:
	.ascii	"stb_vorbis_seek\000"
	.data
	.align	2
	.type	channel_selector.8176, %object
	.size	channel_selector.8176, 24
channel_selector.8176:
	.word	0
	.space	4
	.word	1
	.space	4
	.word	2
	.word	4
	.section	.rodata
	.align	2
	.type	__PRETTY_FUNCTION__.8204, %object
	.size	__PRETTY_FUNCTION__.8204, 35
__PRETTY_FUNCTION__.8204:
	.ascii	"convert_channels_short_interleaved\000"
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
