	.file	"333141.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 132[rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 128[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 132[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, 3
	and	eax, -4
	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 104[rax]
	test	rax, rax
	je	.L9
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 104[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 120[rax]
	cdqe
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 120[rax]
	mov	eax, DWORD PTR -28[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 124[rax]
	cmp	edx, eax
	jle	.L10
	mov	eax, 0
	jmp	.L11
.L10:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 120[rax]
	mov	eax, DWORD PTR -28[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 120[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 104[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, 3
	and	eax, -4
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 104[rax]
	test	rax, rax
	je	.L19
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 124[rax]
	sub	eax, DWORD PTR -12[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 120[rax]
	cmp	edx, eax
	jge	.L20
	mov	eax, 0
	jmp	.L21
.L20:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 124[rax]
	sub	eax, DWORD PTR -12[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 124[rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 104[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 124[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 104[rax]
	test	rax, rax
	je	.L23
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR 124[rax]
	mov	eax, DWORD PTR -20[rbp]
	add	eax, 3
	and	eax, -4
	add	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 124[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.22[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.22[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.22[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.22[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.22[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.22[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.22[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/333141.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__.21[rip]
	mov	edx, 1050
	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__.21[rip]
	mov	edx, 1073
	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__.21[rip]
	mov	edx, 1078
	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__.21[rip]
	mov	edx, 1080
	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__.20[rip]
	mov	edx, 1127
	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__.19[rip]
	mov	edx, 1147
	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__.19[rip]
	mov	edx, 1177
	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.18[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
	.section	.rodata
	.align 8
.LC12:
	.string	"pow((float) r+1, dim) > entries"
	.align 8
.LC13:
	.string	"(int) floor(pow((float) r, dim)) <= entries"
	.text
	.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
	movq	rax, xmm0
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, DWORD PTR -20[rbp]
	movq	xmm5, rax
	comisd	xmm5, xmm0
	ja	.L136
	lea	rcx, __PRETTY_FUNCTION__.17[rip]
	mov	edx, 1202
	lea	rsi, .LC1[rip]
	lea	rdi, .LC12[rip]
	call	__assert_fail@PLT
.L136:
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, DWORD PTR -24[rbp]
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, DWORD PTR -4[rbp]
	pxor	xmm6, xmm6
	cvtss2sd	xmm6, xmm1
	movq	rax, xmm6
	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	.L137
	lea	rcx, __PRETTY_FUNCTION__.17[rip]
	mov	edx, 1203
	lea	rsi, .LC1[rip]
	lea	rdi, .LC13[rip]
	call	__assert_fail@PLT
.L137:
	mov	eax, DWORD PTR -4[rbp]
	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	.L140
.L141:
	mov	eax, DWORD PTR -16[rbp]
	sal	eax, 2
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	movsd	xmm0, QWORD PTR .LC14[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 .LC14[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 .LC15[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 .LC14[rip]
	mulsd	xmm0, xmm1
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, DWORD PTR -20[rbp]
	divsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR .LC16[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 .LC17[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 .LC14[rip]
	mulsd	xmm0, xmm1
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, DWORD PTR -20[rbp]
	divsd	xmm0, xmm1
	movsd	xmm1, QWORD PTR .LC16[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 .LC17[rip]
	mulss	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -16[rbp], 1
	add	DWORD PTR -12[rbp], 2
.L140:
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, DWORD PTR -8[rbp]
	jl	.L141
	mov	DWORD PTR -12[rbp], 0
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR -16[rbp], eax
	jmp	.L142
.L143:
	mov	eax, DWORD PTR -12[rbp]
	add	eax, 1
	add	eax, eax
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, eax
	movsd	xmm0, QWORD PTR .LC14[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 .LC14[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 .LC15[rip]
	xorps	xmm0, xmm1
	movss	DWORD PTR [rax], xmm0
	add	DWORD PTR -16[rbp], 1
	add	DWORD PTR -12[rbp], 2
.L142:
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, DWORD PTR -4[rbp]
	jl	.L143
	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	.L145
.L146:
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, DWORD PTR -8[rbp]
	movsd	xmm0, QWORD PTR .LC18[rip]
	addsd	xmm0, xmm1
	pxor	xmm2, xmm2
	cvtsi2sd	xmm2, DWORD PTR -4[rbp]
	movapd	xmm1, xmm0
	divsd	xmm1, xmm2
	movsd	xmm0, QWORD PTR .LC18[rip]
	mulsd	xmm1, xmm0
	movsd	xmm0, QWORD PTR .LC14[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 .LC19[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
.L145:
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -4[rbp]
	jl	.L146
	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	.L148
.L149:
	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
.L148:
	mov	eax, DWORD PTR -12[rbp]
	cmp	eax, DWORD PTR -4[rbp]
	jl	.L149
	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, 174
	mov	QWORD PTR [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, 176
	mov	QWORD PTR [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, 178
	mov	QWORD PTR [rdx+rcx*8], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	add	rdx, 174
	mov	rax, QWORD PTR [rax+rdx*8]
	test	rax, rax
	je	.L151
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	add	rdx, 176
	mov	rax, QWORD PTR [rax+rdx*8]
	test	rax, rax
	je	.L151
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	add	rdx, 178
	mov	rax, QWORD PTR [rax+rdx*8]
	test	rax, rax
	jne	.L152
.L151:
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L153
.L152:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	add	rdx, 178
	mov	rcx, QWORD PTR [rax+rdx*8]
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	add	rdx, 176
	mov	rdx, QWORD PTR [rax+rdx*8]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, DWORD PTR -28[rbp]
	movsx	rsi, esi
	add	rsi, 174
	mov	rsi, QWORD PTR [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, 180
	mov	QWORD PTR [rdx+rcx*8], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	add	rdx, 180
	mov	rax, QWORD PTR [rax+rdx*8]
	test	rax, rax
	jne	.L154
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L153
.L154:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	add	rdx, 180
	mov	rdx, QWORD PTR [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, 182
	mov	QWORD PTR [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 [rax+rdx*8]
	test	rax, rax
	jne	.L155
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L153
.L155:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -28[rbp]
	movsx	rdx, edx
	add	rdx, 182
	mov	rdx, QWORD PTR [rax+rdx*8]
	mov	eax, DWORD PTR -32[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	compute_bitreverse
	mov	eax, 1
.L153:
	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	.L157
.L160:
	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	.L158
	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	.L158
	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
.L158:
	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	.L159
	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	.L159
	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
.L159:
	add	DWORD PTR -4[rbp], 1
.L157:
	mov	eax, DWORD PTR -4[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	jl	.L160
	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	.L162
	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	.L164
.L162:
	mov	eax, -1
.L164:
	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 40[rax]
	test	rax, rax
	je	.L166
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 56[rax]
	cmp	rdx, rax
	jb	.L167
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 128[rax], 1
	mov	eax, 0
	jmp	.L168
.L167:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 40[rax]
	lea	rcx, 1[rax]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 40[rdx], rcx
	movzx	eax, BYTE PTR [rax]
	jmp	.L168
.L166:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdi, rax
	call	fgetc@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], -1
	jne	.L169
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 128[rax], 1
	mov	eax, 0
	jmp	.L168
.L169:
	mov	eax, DWORD PTR -4[rbp]
.L168:
	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 40[rax]
	test	rax, rax
	je	.L173
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	add	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 56[rax]
	cmp	rdx, rax
	jbe	.L174
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 128[rax], 1
	mov	eax, 0
	jmp	.L175
.L174:
	mov	eax, DWORD PTR -20[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, QWORD PTR 40[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 40[rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	add	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	eax, 1
	jmp	.L175
.L173:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 24[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	.L176
	mov	eax, 1
	jmp	.L175
.L176:
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 128[rax], 1
	mov	eax, 0
.L175:
	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 40[rax]
	test	rax, rax
	je	.L178
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	add	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 56[rax]
	cmp	rdx, rax
	jb	.L181
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 128[rax], 1
	jmp	.L181
.L178:
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 24[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 24[rax]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	fseek@PLT
	jmp	.L177
.L181:
	nop
.L177:
	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 68[rax]
	test	al, al
	je	.L183
	mov	eax, 0
	jmp	.L184
.L183:
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 128[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 40[rax]
	test	rax, rax
	je	.L185
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -12[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 56[rax]
	cmp	rdx, rax
	jb	.L186
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 128[rax], 1
	mov	eax, 0
	jmp	.L184
.L186:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -12[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 40[rax], rdx
	mov	eax, 1
	jmp	.L184
.L185:
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR 32[rax]
	mov	eax, DWORD PTR -12[rbp]
	add	eax, edx
	cmp	DWORD PTR -12[rbp], eax
	ja	.L187
	mov	eax, DWORD PTR -12[rbp]
	test	eax, eax
	jns	.L188
.L187:
	mov	DWORD PTR -12[rbp], 2147483647
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 128[rax], 1
	jmp	.L189
.L188:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 32[rax]
	add	DWORD PTR -12[rbp], eax
.L189:
	mov	ecx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	fseek@PLT
	test	eax, eax
	jne	.L190
	mov	eax, 1
	jmp	.L184
.L190:
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 128[rax], 1
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 32[rax]
	mov	ecx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	edx, 2
	mov	rsi, rcx
	mov	rdi, rax
	call	fseek@PLT
	mov	eax, 0
.L184:
	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	.L192
	mov	eax, 0
	jmp	.L193
.L192:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	get8
	cmp	al, 103
	je	.L194
	mov	eax, 0
	jmp	.L193
.L194:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	get8
	cmp	al, 103
	je	.L195
	mov	eax, 0
	jmp	.L193
.L195:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	get8
	cmp	al, 83
	je	.L196
	mov	eax, 0
	jmp	.L193
.L196:
	mov	eax, 1
.L193:
	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, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	get8
	test	al, al
	je	.L198
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 31
	mov	rdi, rax
	call	error
	jmp	.L199
.L198:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	get8
	mov	rdx, QWORD PTR -56[rbp]
	mov	BYTE PTR 1739[rdx], al
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	get32
	mov	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	get32
	mov	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	get32
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	get32
	mov	DWORD PTR -16[rbp], eax
	mov	edx, DWORD PTR -16[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 1476[rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	get32
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	get8
	movzx	edx, al
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 1480[rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR 1480[rax]
	mov	rax, QWORD PTR -56[rbp]
	lea	rcx, 1484[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	getn
	test	eax, eax
	jne	.L200
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 10
	mov	rdi, rax
	call	error
	jmp	.L199
.L200:
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 1768[rax], -2
	cmp	DWORD PTR -24[rbp], -1
	jne	.L201
	cmp	DWORD PTR -20[rbp], -1
	je	.L202
.L201:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1480[rax]
	sub	eax, 1
	mov	DWORD PTR -36[rbp], eax
	jmp	.L203
.L206:
	mov	rdx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	movzx	eax, BYTE PTR 1484[rdx+rax]
	cmp	al, -1
	jne	.L210
	sub	DWORD PTR -36[rbp], 1
.L203:
	cmp	DWORD PTR -36[rbp], 0
	jns	.L206
	jmp	.L205
.L210:
	nop
.L205:
	cmp	DWORD PTR -36[rbp], 0
	js	.L202
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -36[rbp]
	mov	DWORD PTR 1768[rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -24[rbp]
	mov	DWORD PTR 1772[rax], edx
.L202:
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR 1741[rax]
	test	al, al
	je	.L207
	mov	DWORD PTR -28[rbp], 0
	mov	DWORD PTR -32[rbp], 0
	jmp	.L208
.L209:
	mov	rdx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	movzx	eax, BYTE PTR 1484[rdx+rax]
	movzx	eax, al
	add	DWORD PTR -28[rbp], eax
	add	DWORD PTR -32[rbp], 1
.L208:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1480[rax]
	cmp	DWORD PTR -32[rbp], eax
	jl	.L209
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1480[rax]
	add	eax, 27
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 72[rax]
	mov	DWORD PTR -12[rbp], eax
	mov	edx, DWORD PTR -12[rbp]
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR -12[rbp]
	mov	QWORD PTR 76[rax], rdx
	mov	edx, DWORD PTR -4[rbp]
	mov	DWORD PTR 84[rax], edx
.L207:
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 1744[rax], 0
	mov	eax, 1
.L199:
	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	.L212
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 30
	mov	rdi, rax
	call	error
	jmp	.L213
.L212:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	start_page_no_capturepattern
.L213:
	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	.L215
.L218:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	start_page
	test	eax, eax
	jne	.L216
	mov	eax, 0
	jmp	.L217
.L216:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 1739[rax]
	movzx	eax, al
	and	eax, 1
	test	eax, eax
	je	.L215
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 32
	mov	rdi, rax
	call	error
	jmp	.L217
.L215:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 1744[rax]
	cmp	eax, -1
	je	.L218
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 1748[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 1760[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 1764[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 1740[rax], 0
	mov	eax, 1
.L217:
	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 1744[rax]
	cmp	eax, -1
	jne	.L220
	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 128[rax]
	test	eax, eax
	je	.L221
	mov	eax, 0
	jmp	.L222
.L221:
	cmp	DWORD PTR -4[rbp], 79
	je	.L223
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 30
	mov	rdi, rax
	call	error
	jmp	.L222
.L223:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	cmp	al, 103
	je	.L224
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 30
	mov	rdi, rax
	call	error
	jmp	.L222
.L224:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	cmp	al, 103
	je	.L225
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 30
	mov	rdi, rax
	call	error
	jmp	.L222
.L225:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	get8
	cmp	al, 83
	je	.L226
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 30
	mov	rdi, rax
	call	error
	jmp	.L222
.L226:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	start_page_no_capturepattern
	test	eax, eax
	jne	.L227
	mov	eax, 0
	jmp	.L222
.L227:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 1739[rax]
	movzx	eax, al
	and	eax, 1
	test	eax, eax
	je	.L220
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1748[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 1740[rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 32
	mov	rdi, rax
	call	error
	jmp	.L222
.L220:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	start_packet
.L222:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE41:
	.size	maybe_start_packet, .-maybe_start_packet
	.section	.rodata
.LC20:
	.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 1748[rax]
	test	eax, eax
	je	.L229
	mov	eax, 0
	jmp	.L230
.L229:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1744[rax]
	cmp	eax, -1
	jne	.L231
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1480[rax]
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1752[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	start_page
	test	eax, eax
	jne	.L232
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1748[rax], 1
	mov	eax, 0
	jmp	.L230
.L232:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 1739[rax]
	movzx	eax, al
	and	eax, 1
	test	eax, eax
	jne	.L231
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 32
	mov	rdi, rax
	call	error
	jmp	.L230
.L231:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1744[rax]
	lea	ecx, 1[rax]
	mov	rdx, QWORD PTR -24[rbp]
	mov	DWORD PTR 1744[rdx], ecx
	mov	rdx, QWORD PTR -24[rbp]
	cdqe
	movzx	eax, BYTE PTR 1484[rdx+rax]
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 254
	jg	.L233
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1748[rax], 1
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1744[rax]
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1752[rax], edx
.L233:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 1744[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1480[rax]
	cmp	edx, eax
	jl	.L234
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1744[rax], -1
.L234:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 1740[rax]
	test	al, al
	je	.L235
	lea	rcx, __PRETTY_FUNCTION__.16[rip]
	mov	edx, 1509
	lea	rsi, .LC1[rip]
	lea	rdi, .LC20[rip]
	call	__assert_fail@PLT
.L235:
	mov	eax, DWORD PTR -4[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 1740[rax], dl
	mov	eax, DWORD PTR -4[rbp]
.L230:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE42:
	.size	next_segment, .-next_segment
	.section	.rodata
.LC21:
	.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 1740[rax]
	test	al, al
	jne	.L237
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 1748[rax]
	test	eax, eax
	je	.L238
	mov	eax, -1
	jmp	.L239
.L238:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	next_segment
	test	eax, eax
	jne	.L237
	mov	eax, -1
	jmp	.L239
.L237:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 1740[rax]
	test	al, al
	jne	.L240
	lea	rcx, __PRETTY_FUNCTION__.15[rip]
	mov	edx, 1523
	lea	rsi, .LC1[rip]
	lea	rdi, .LC21[rip]
	call	__assert_fail@PLT
.L240:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 1740[rax]
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 1740[rax], dl
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 1764[rax]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 1764[rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	get8
	movzx	eax, al
.L239:
	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 1760[rax], 0
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE44:
	.size	get8_packet, .-get8_packet
	.type	flush_packet, @function
flush_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, 16
	mov	QWORD PTR -8[rbp], rdi
	nop
.L244:
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	get8_packet_raw
	cmp	eax, -1
	jne	.L244
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE45:
	.size	flush_packet, .-flush_packet
	.type	get_bits, @function
get_bits:
.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, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1760[rax]
	test	eax, eax
	jns	.L246
	mov	eax, 0
	jmp	.L247
.L246:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1760[rax]
	cmp	DWORD PTR -28[rbp], eax
	jle	.L248
	cmp	DWORD PTR -28[rbp], 24
	jle	.L249
	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	.L247
.L249:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1760[rax]
	test	eax, eax
	jne	.L251
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1756[rax], 0
	jmp	.L251
.L253:
	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	.L252
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1760[rax], -1
	mov	eax, 0
	jmp	.L247
.L252:
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, DWORD PTR 1756[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1760[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 1756[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1760[rax]
	lea	edx, 8[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1760[rax], edx
.L251:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1760[rax]
	cmp	DWORD PTR -28[rbp], eax
	jg	.L253
.L248:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1760[rax]
	test	eax, eax
	jns	.L254
	mov	eax, 0
	jmp	.L247
.L254:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 1756[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 1756[rax]
	mov	eax, DWORD PTR -28[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1756[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1760[rax]
	sub	eax, DWORD PTR -28[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1760[rax], edx
	mov	eax, DWORD PTR -4[rbp]
.L247:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE46:
	.size	get_bits, .-get_bits
	.type	prep_huffman, @function
prep_huffman:
.LFB47:
	.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 1760[rax]
	cmp	eax, 24
	jg	.L255
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1760[rax]
	test	eax, eax
	jne	.L260
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1756[rax], 0
.L260:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1748[rax]
	test	eax, eax
	je	.L258
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 1740[rax]
	test	al, al
	je	.L261
.L258:
	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	.L262
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, DWORD PTR 1756[rax]
	mov	edx, DWORD PTR -4[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1760[rax]
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	lea	edx, [rsi+rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1756[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1760[rax]
	lea	edx, 8[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1760[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1760[rax]
	cmp	eax, 24
	jle	.L260
	jmp	.L255
.L261:
	nop
	jmp	.L255
.L262:
	nop
.L255:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE47:
	.size	prep_huffman, .-prep_huffman
	.section	.rodata
.LC22:
	.string	"!c->sparse"
	.text
	.type	codebook_decode_scalar_raw, @function
codebook_decode_scalar_raw:
.LFB48:
	.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	.L264
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 2096[rax]
	test	rax, rax
	jne	.L264
	mov	eax, -1
	jmp	.L265
.L264:
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	eax, 8
	jle	.L266
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 2096[rax]
	test	rax, rax
	setne	al
	jmp	.L267
.L266:
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 40[rax]
	test	rax, rax
	sete	al
.L267:
	test	al, al
	je	.L268
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 1756[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	.L269
.L271:
	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	.L270
	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	.L269
.L270:
	sar	DWORD PTR -16[rbp]
.L269:
	cmp	DWORD PTR -16[rbp], 1
	jg	.L271
	mov	rax, QWORD PTR -48[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	jne	.L272
	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
.L272:
	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 1760[rax]
	cmp	DWORD PTR -8[rbp], eax
	jg	.L273
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 1756[rax]
	mov	eax, DWORD PTR -8[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1756[rax], edx
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 1760[rax]
	sub	eax, DWORD PTR -8[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1760[rax], edx
	mov	eax, DWORD PTR -20[rbp]
	jmp	.L265
.L273:
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1760[rax], 0
	mov	eax, -1
	jmp	.L265
.L268:
	mov	rax, QWORD PTR -48[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L274
	lea	rcx, __PRETTY_FUNCTION__.14[rip]
	mov	edx, 1639
	lea	rsi, .LC1[rip]
	lea	rdi, .LC22[rip]
	call	__assert_fail@PLT
.L274:
	mov	DWORD PTR -24[rbp], 0
	jmp	.L275
.L279:
	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	.L280
	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 1756[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	.L277
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 1760[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	.L278
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 1756[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 1756[rax], edx
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 1760[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 1760[rax], edx
	mov	eax, DWORD PTR -24[rbp]
	jmp	.L265
.L278:
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1760[rax], 0
	mov	eax, -1
	jmp	.L265
.L280:
	nop
.L277:
	add	DWORD PTR -24[rbp], 1
.L275:
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L279
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 21
	mov	rdi, rax
	call	error
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1760[rax], 0
	mov	eax, -1
.L265:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE48:
	.size	codebook_decode_scalar_raw, .-codebook_decode_scalar_raw
	.section	.rodata
.LC23:
	.string	"z < c->sorted_entries"
	.text
	.type	codebook_decode_start, @function
codebook_decode_start:
.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, 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	.L282
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 21
	mov	rdi, rax
	call	error
	jmp	.L283
.L282:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1760[rax]
	cmp	eax, 9
	jg	.L284
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	prep_huffman
.L284:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1756[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	.L285
	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 1756[rax]
	mov	eax, DWORD PTR -4[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1756[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1760[rax]
	sub	eax, DWORD PTR -4[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1760[rax], edx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1760[rax]
	test	eax, eax
	jns	.L286
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1760[rax], 0
	mov	DWORD PTR -8[rbp], -1
	jmp	.L286
.L285:
	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
.L286:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L287
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 2112[rax]
	cmp	DWORD PTR -8[rbp], eax
	jl	.L287
	lea	rcx, __PRETTY_FUNCTION__.13[rip]
	mov	edx, 1727
	lea	rsi, .LC1[rip]
	lea	rdi, .LC23[rip]
	call	__assert_fail@PLT
.L287:
	cmp	DWORD PTR -8[rbp], 0
	jns	.L283
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR 1740[rax]
	test	al, al
	jne	.L288
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1748[rax]
	test	eax, eax
	je	.L288
	mov	eax, DWORD PTR -8[rbp]
	jmp	.L289
.L288:
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, 21
	mov	rdi, rax
	call	error
.L283:
	mov	eax, DWORD PTR -8[rbp]
.L289:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE49:
	.size	codebook_decode_start, .-codebook_decode_start
	.type	codebook_decode, @function
codebook_decode:
.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, 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	.L291
	mov	eax, 0
	jmp	.L292
.L291:
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -60[rbp], eax
	jle	.L293
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -60[rbp], eax
.L293:
	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	.L294
	pxor	xmm0, xmm0
	movss	DWORD PTR -16[rbp], xmm0
	mov	DWORD PTR -20[rbp], 0
	jmp	.L295
.L296:
	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
.L295:
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -60[rbp]
	jl	.L296
	jmp	.L297
.L294:
	pxor	xmm0, xmm0
	movss	DWORD PTR -8[rbp], xmm0
	mov	DWORD PTR -20[rbp], 0
	jmp	.L298
.L299:
	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
.L298:
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -60[rbp]
	jl	.L299
.L297:
	mov	eax, 1
.L292:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE50:
	.size	codebook_decode, .-codebook_decode
	.type	codebook_decode_step, @function
codebook_decode_step:
.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, 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	.L301
	mov	eax, 0
	jmp	.L302
.L301:
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -44[rbp], eax
	jle	.L303
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -44[rbp], eax
.L303:
	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	.L304
.L306:
	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	.L305
	movss	xmm0, DWORD PTR -4[rbp]
	movss	DWORD PTR -12[rbp], xmm0
.L305:
	add	DWORD PTR -16[rbp], 1
.L304:
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L306
	mov	eax, 1
.L302:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE51:
	.size	codebook_decode_step, .-codebook_decode_step
	.section	.rodata
	.align 8
.LC25:
	.string	"!c->sparse || z < c->sorted_entries"
	.text
	.type	codebook_decode_deinterleave_repeat, @function
codebook_decode_deinterleave_repeat:
.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, 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	.L310
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 21
	mov	rdi, rax
	call	error
	jmp	.L309
.L328:
	pxor	xmm0, xmm0
	movss	DWORD PTR -16[rbp], xmm0
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1760[rax]
	cmp	eax, 9
	jg	.L311
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	prep_huffman
.L311:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1756[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	.L312
	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 1756[rax]
	mov	eax, DWORD PTR -12[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 1756[rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1760[rax]
	sub	eax, DWORD PTR -12[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 1760[rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1760[rax]
	test	eax, eax
	jns	.L313
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 1760[rax], 0
	mov	DWORD PTR -24[rbp], -1
	jmp	.L313
.L312:
	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
.L313:
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L314
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 2112[rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L314
	lea	rcx, __PRETTY_FUNCTION__.12[rip]
	mov	edx, 1821
	lea	rsi, .LC1[rip]
	lea	rdi, .LC25[rip]
	call	__assert_fail@PLT
.L314:
	cmp	DWORD PTR -24[rbp], 0
	jns	.L315
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR 1740[rax]
	test	al, al
	jne	.L316
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1748[rax]
	test	eax, eax
	je	.L316
	mov	eax, 0
	jmp	.L309
.L316:
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 21
	mov	rdi, rax
	call	error
	jmp	.L309
.L315:
	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	.L317
	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
.L317:
	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	.L318
	mov	DWORD PTR -28[rbp], 0
	jmp	.L319
.L322:
	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	.L320
	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
.L320:
	add	DWORD PTR -36[rbp], 1
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jne	.L321
	mov	DWORD PTR -36[rbp], 0
	add	DWORD PTR -32[rbp], 1
.L321:
	movss	xmm0, DWORD PTR -4[rbp]
	movss	DWORD PTR -16[rbp], xmm0
	add	DWORD PTR -28[rbp], 1
.L319:
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, DWORD PTR -20[rbp]
	jl	.L322
	jmp	.L323
.L318:
	mov	DWORD PTR -28[rbp], 0
	jmp	.L324
.L327:
	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	.L325
	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
.L325:
	add	DWORD PTR -36[rbp], 1
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jne	.L326
	mov	DWORD PTR -36[rbp], 0
	add	DWORD PTR -32[rbp], 1
.L326:
	add	DWORD PTR -28[rbp], 1
.L324:
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, DWORD PTR -20[rbp]
	jl	.L327
.L323:
	mov	eax, DWORD PTR -20[rbp]
	sub	DWORD PTR 24[rbp], eax
.L310:
	cmp	DWORD PTR 24[rbp], 0
	jg	.L328
	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
.L309:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE52:
	.size	codebook_decode_deinterleave_repeat, .-codebook_decode_deinterleave_repeat
	.type	predict_point, @function
predict_point:
.LFB53:
	.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	.L330
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, DWORD PTR -4[rbp]
	jmp	.L332
.L330:
	mov	edx, DWORD PTR -32[rbp]
	mov	eax, DWORD PTR -4[rbp]
	add	eax, edx
.L332:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE53:
	.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:
.LFB54:
	.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	.L334
	mov	eax, DWORD PTR -4[rbp]
	sub	eax, 1
	mov	DWORD PTR -20[rbp], eax
	jmp	.L335
.L334:
	mov	eax, DWORD PTR -4[rbp]
	add	eax, 1
	mov	DWORD PTR -20[rbp], eax
.L335:
	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	.L336
	mov	eax, DWORD PTR -60[rbp]
	mov	DWORD PTR -52[rbp], eax
.L336:
	mov	eax, DWORD PTR -32[rbp]
	cmp	eax, DWORD PTR -52[rbp]
	jge	.L342
	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]
	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	.L338
.L341:
	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	.L339
	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	.L340
.L339:
	mov	eax, DWORD PTR -4[rbp]
	add	DWORD PTR -28[rbp], eax
.L340:
	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]
	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
.L338:
	mov	eax, DWORD PTR -32[rbp]
	cmp	eax, DWORD PTR -52[rbp]
	jl	.L341
.L342:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE54:
	.size	draw_line, .-draw_line
	.type	residue_decode, @function
residue_decode:
.LFB55:
	.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	.L344
	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	.L345
.L348:
	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	.L346
	mov	eax, 0
	jmp	.L347
.L346:
	add	DWORD PTR -8[rbp], 1
.L345:
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -4[rbp]
	jl	.L348
	jmp	.L349
.L344:
	mov	DWORD PTR -8[rbp], 0
	jmp	.L350
.L352:
	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	.L351
	mov	eax, 0
	jmp	.L347
.L351:
	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
.L350:
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -48[rbp]
	jl	.L352
.L349:
	mov	eax, 1
.L347:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE55:
	.size	residue_decode, .-residue_decode
	.type	decode_residue, @function
decode_residue:
.LFB56:
	.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, 320
	.cfi_offset 12, -24
	.cfi_offset 3, -32
	mov	QWORD PTR -296[rbp], rdi
	mov	QWORD PTR -304[rbp], rsi
	mov	DWORD PTR -308[rbp], edx
	mov	DWORD PTR -312[rbp], ecx
	mov	DWORD PTR -316[rbp], r8d
	mov	QWORD PTR -328[rbp], r9
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -296[rbp]
	mov	rdx, QWORD PTR 448[rax]
	mov	eax, DWORD PTR -316[rbp]
	cdqe
	sal	rax, 5
	add	rax, rdx
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -296[rbp]
	mov	edx, DWORD PTR -316[rbp]
	movsx	rdx, edx
	add	rdx, 152
	movzx	eax, WORD PTR 12[rax+rdx*2]
	movzx	eax, ax
	mov	DWORD PTR -228[rbp], eax
	mov	rax, QWORD PTR -112[rbp]
	movzx	eax, BYTE PTR 13[rax]
	movzx	eax, al
	mov	DWORD PTR -224[rbp], eax
	mov	rax, QWORD PTR -296[rbp]
	mov	rdx, QWORD PTR 160[rax]
	mov	eax, DWORD PTR -224[rbp]
	cdqe
	imul	rax, rax, 2120
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -220[rbp], eax
	cmp	DWORD PTR -228[rbp], 2
	jne	.L354
	mov	eax, DWORD PTR -312[rbp]
	add	eax, eax
	jmp	.L355
.L354:
	mov	eax, DWORD PTR -312[rbp]
.L355:
	mov	DWORD PTR -216[rbp], eax
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -216[rbp], eax
	cmovbe	eax, DWORD PTR -216[rbp]
	mov	DWORD PTR -212[rbp], eax
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -216[rbp], eax
	cmovbe	eax, DWORD PTR -216[rbp]
	mov	DWORD PTR -208[rbp], eax
	mov	eax, DWORD PTR -208[rbp]
	sub	eax, DWORD PTR -212[rbp]
	mov	DWORD PTR -204[rbp], eax
	mov	eax, DWORD PTR -204[rbp]
	mov	rdx, QWORD PTR -112[rbp]
	mov	ebx, DWORD PTR 8[rdx]
	mov	edx, 0
	div	ebx
	mov	DWORD PTR -200[rbp], eax
	mov	rax, QWORD PTR -296[rbp]
	mov	eax, DWORD PTR 124[rax]
	mov	DWORD PTR -196[rbp], eax
	mov	eax, DWORD PTR -200[rbp]
	cdqe
	sal	eax, 3
	mov	r12d, eax
	mov	rax, QWORD PTR -296[rbp]
	mov	ebx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -296[rbp]
	mov	rax, QWORD PTR 104[rax]
	test	rax, rax
	je	.L356
	mov	eax, DWORD PTR -200[rbp]
	cdqe
	add	rax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -296[rbp]
	mov	eax, DWORD PTR 4[rax]
	cdqe
	imul	eax, edx
	sal	eax, 3
	mov	edx, eax
	mov	rax, QWORD PTR -296[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	setup_temp_malloc
	jmp	.L357
.L356:
	mov	eax, DWORD PTR -200[rbp]
	cdqe
	lea	rdx, 1[rax]
	mov	rax, QWORD PTR -296[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
.L358:
	cmp	rsp, rdx
	je	.L359
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L358
.L359:
	mov	rdx, rax
	and	edx, 4095
	sub	rsp, rdx
	mov	rdx, rax
	and	edx, 4095
	test	rdx, rdx
	je	.L360
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L360:
	mov	rax, rsp
	add	rax, 15
	shr	rax, 4
	sal	rax, 4
.L357:
	mov	edx, r12d
	mov	esi, ebx
	mov	rdi, rax
	call	make_block_array
	mov	QWORD PTR -104[rbp], rax
	mov	DWORD PTR -272[rbp], 0
	jmp	.L361
.L363:
	mov	eax, DWORD PTR -272[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -328[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L362
	mov	eax, DWORD PTR -312[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	eax, DWORD PTR -272[rbp]
	cdqe
	lea	rcx, 0[0+rax*8]
	mov	rax, QWORD PTR -304[rbp]
	add	rax, rcx
	mov	rax, QWORD PTR [rax]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
.L362:
	add	DWORD PTR -272[rbp], 1
.L361:
	mov	eax, DWORD PTR -272[rbp]
	cmp	eax, DWORD PTR -308[rbp]
	jl	.L363
	cmp	DWORD PTR -228[rbp], 2
	jne	.L364
	cmp	DWORD PTR -308[rbp], 1
	je	.L364
	mov	DWORD PTR -268[rbp], 0
	jmp	.L365
.L368:
	mov	eax, DWORD PTR -268[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -328[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L438
	add	DWORD PTR -268[rbp], 1
.L365:
	mov	eax, DWORD PTR -268[rbp]
	cmp	eax, DWORD PTR -308[rbp]
	jl	.L368
	jmp	.L367
.L438:
	nop
.L367:
	mov	eax, DWORD PTR -268[rbp]
	cmp	eax, DWORD PTR -308[rbp]
	je	.L439
	mov	DWORD PTR -264[rbp], 0
	jmp	.L371
.L417:
	mov	DWORD PTR -260[rbp], 0
	mov	DWORD PTR -256[rbp], 0
	cmp	DWORD PTR -308[rbp], 2
	jne	.L372
	jmp	.L373
.L386:
	mov	rax, QWORD PTR -112[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	eax, DWORD PTR -260[rbp]
	imul	eax, edx
	add	eax, ecx
	mov	DWORD PTR -152[rbp], eax
	mov	eax, DWORD PTR -152[rbp]
	and	eax, 1
	mov	DWORD PTR -280[rbp], eax
	mov	eax, DWORD PTR -152[rbp]
	sar	eax
	mov	DWORD PTR -276[rbp], eax
	cmp	DWORD PTR -264[rbp], 0
	jne	.L374
	mov	rax, QWORD PTR -296[rbp]
	mov	rdx, QWORD PTR 160[rax]
	mov	rax, QWORD PTR -112[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 -296[rbp]
	mov	eax, DWORD PTR 1760[rax]
	cmp	eax, 9
	jg	.L375
	mov	rax, QWORD PTR -296[rbp]
	mov	rdi, rax
	call	prep_huffman
.L375:
	mov	rax, QWORD PTR -296[rbp]
	mov	eax, DWORD PTR 1756[rax]
	and	eax, 1023
	mov	DWORD PTR -252[rbp], eax
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR -252[rbp]
	movsx	rdx, edx
	add	rdx, 24
	movzx	eax, WORD PTR [rax+rdx*2]
	cwde
	mov	DWORD PTR -252[rbp], eax
	cmp	DWORD PTR -252[rbp], 0
	js	.L376
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -252[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -148[rbp], eax
	mov	rax, QWORD PTR -296[rbp]
	mov	edx, DWORD PTR 1756[rax]
	mov	eax, DWORD PTR -148[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	rax, QWORD PTR -296[rbp]
	mov	DWORD PTR 1756[rax], edx
	mov	rax, QWORD PTR -296[rbp]
	mov	eax, DWORD PTR 1760[rax]
	sub	eax, DWORD PTR -148[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -296[rbp]
	mov	DWORD PTR 1760[rax], edx
	mov	rax, QWORD PTR -296[rbp]
	mov	eax, DWORD PTR 1760[rax]
	test	eax, eax
	jns	.L377
	mov	rax, QWORD PTR -296[rbp]
	mov	DWORD PTR 1760[rax], 0
	mov	DWORD PTR -252[rbp], -1
	jmp	.L377
.L376:
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -296[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	codebook_decode_scalar_raw
	mov	DWORD PTR -252[rbp], eax
.L377:
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L378
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 2104[rax]
	mov	eax, DWORD PTR -252[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -252[rbp], eax
.L378:
	cmp	DWORD PTR -252[rbp], -1
	je	.L440
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -252[rbp]
	cdqe
	sal	rax, 3
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -256[rbp]
	cdqe
	sal	rax, 3
	add	rdx, rax
	mov	rax, QWORD PTR [rcx]
	mov	QWORD PTR [rdx], rax
.L374:
	mov	DWORD PTR -272[rbp], 0
	jmp	.L381
.L385:
	mov	rax, QWORD PTR -112[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	eax, DWORD PTR -260[rbp]
	imul	eax, edx
	add	eax, ecx
	mov	DWORD PTR -144[rbp], eax
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -256[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -272[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -140[rbp], eax
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -140[rbp]
	cdqe
	sal	rax, 4
	add	rdx, rax
	mov	eax, DWORD PTR -264[rbp]
	cdqe
	movzx	eax, WORD PTR [rdx+rax*2]
	cwde
	mov	DWORD PTR -136[rbp], eax
	cmp	DWORD PTR -136[rbp], 0
	js	.L382
	mov	rax, QWORD PTR -296[rbp]
	mov	rdx, QWORD PTR 160[rax]
	mov	eax, DWORD PTR -136[rbp]
	cdqe
	imul	rax, rax, 2120
	add	rax, rdx
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	edi, eax
	lea	r9, -276[rbp]
	lea	r8, -280[rbp]
	mov	ecx, DWORD PTR -308[rbp]
	mov	rdx, QWORD PTR -304[rbp]
	mov	rsi, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -296[rbp]
	push	rdi
	mov	edi, DWORD PTR -312[rbp]
	push	rdi
	mov	rdi, rax
	call	codebook_decode_deinterleave_repeat
	add	rsp, 16
	test	eax, eax
	jne	.L383
	jmp	.L370
.L382:
	mov	rax, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	eax, DWORD PTR -144[rbp]
	add	eax, edx
	mov	DWORD PTR -144[rbp], eax
	mov	eax, DWORD PTR -144[rbp]
	and	eax, 1
	mov	DWORD PTR -280[rbp], eax
	mov	eax, DWORD PTR -144[rbp]
	sar	eax
	mov	DWORD PTR -276[rbp], eax
.L383:
	add	DWORD PTR -272[rbp], 1
	add	DWORD PTR -260[rbp], 1
.L381:
	mov	eax, DWORD PTR -272[rbp]
	cmp	eax, DWORD PTR -220[rbp]
	jge	.L384
	mov	eax, DWORD PTR -260[rbp]
	cmp	eax, DWORD PTR -200[rbp]
	jl	.L385
.L384:
	add	DWORD PTR -256[rbp], 1
.L373:
	mov	eax, DWORD PTR -260[rbp]
	cmp	eax, DWORD PTR -200[rbp]
	jl	.L386
	jmp	.L387
.L372:
	cmp	DWORD PTR -308[rbp], 1
	jne	.L403
	jmp	.L389
.L402:
	mov	rax, QWORD PTR -112[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	eax, DWORD PTR -260[rbp]
	imul	eax, edx
	add	eax, ecx
	mov	DWORD PTR -172[rbp], eax
	mov	DWORD PTR -280[rbp], 0
	mov	eax, DWORD PTR -172[rbp]
	mov	DWORD PTR -276[rbp], eax
	cmp	DWORD PTR -264[rbp], 0
	jne	.L390
	mov	rax, QWORD PTR -296[rbp]
	mov	rdx, QWORD PTR 160[rax]
	mov	rax, QWORD PTR -112[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 -296[rbp]
	mov	eax, DWORD PTR 1760[rax]
	cmp	eax, 9
	jg	.L391
	mov	rax, QWORD PTR -296[rbp]
	mov	rdi, rax
	call	prep_huffman
.L391:
	mov	rax, QWORD PTR -296[rbp]
	mov	eax, DWORD PTR 1756[rax]
	and	eax, 1023
	mov	DWORD PTR -248[rbp], eax
	mov	rax, QWORD PTR -80[rbp]
	mov	edx, DWORD PTR -248[rbp]
	movsx	rdx, edx
	add	rdx, 24
	movzx	eax, WORD PTR [rax+rdx*2]
	cwde
	mov	DWORD PTR -248[rbp], eax
	cmp	DWORD PTR -248[rbp], 0
	js	.L392
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -248[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -168[rbp], eax
	mov	rax, QWORD PTR -296[rbp]
	mov	edx, DWORD PTR 1756[rax]
	mov	eax, DWORD PTR -168[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	rax, QWORD PTR -296[rbp]
	mov	DWORD PTR 1756[rax], edx
	mov	rax, QWORD PTR -296[rbp]
	mov	eax, DWORD PTR 1760[rax]
	sub	eax, DWORD PTR -168[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -296[rbp]
	mov	DWORD PTR 1760[rax], edx
	mov	rax, QWORD PTR -296[rbp]
	mov	eax, DWORD PTR 1760[rax]
	test	eax, eax
	jns	.L393
	mov	rax, QWORD PTR -296[rbp]
	mov	DWORD PTR 1760[rax], 0
	mov	DWORD PTR -248[rbp], -1
	jmp	.L393
.L392:
	mov	rdx, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -296[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	codebook_decode_scalar_raw
	mov	DWORD PTR -248[rbp], eax
.L393:
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L394
	mov	rax, QWORD PTR -80[rbp]
	mov	rdx, QWORD PTR 2104[rax]
	mov	eax, DWORD PTR -248[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -248[rbp], eax
.L394:
	cmp	DWORD PTR -248[rbp], -1
	je	.L441
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -248[rbp]
	cdqe
	sal	rax, 3
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -256[rbp]
	cdqe
	sal	rax, 3
	add	rdx, rax
	mov	rax, QWORD PTR [rcx]
	mov	QWORD PTR [rdx], rax
.L390:
	mov	DWORD PTR -272[rbp], 0
	jmp	.L397
.L401:
	mov	rax, QWORD PTR -112[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	eax, DWORD PTR -260[rbp]
	imul	eax, edx
	add	eax, ecx
	mov	DWORD PTR -164[rbp], eax
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -256[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -272[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -160[rbp], eax
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -160[rbp]
	cdqe
	sal	rax, 4
	add	rdx, rax
	mov	eax, DWORD PTR -264[rbp]
	cdqe
	movzx	eax, WORD PTR [rdx+rax*2]
	cwde
	mov	DWORD PTR -156[rbp], eax
	cmp	DWORD PTR -156[rbp], 0
	js	.L398
	mov	rax, QWORD PTR -296[rbp]
	mov	rdx, QWORD PTR 160[rax]
	mov	eax, DWORD PTR -156[rbp]
	cdqe
	imul	rax, rax, 2120
	add	rax, rdx
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	edi, eax
	lea	r9, -276[rbp]
	lea	r8, -280[rbp]
	mov	ecx, DWORD PTR -308[rbp]
	mov	rdx, QWORD PTR -304[rbp]
	mov	rsi, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -296[rbp]
	push	rdi
	mov	edi, DWORD PTR -312[rbp]
	push	rdi
	mov	rdi, rax
	call	codebook_decode_deinterleave_repeat
	add	rsp, 16
	test	eax, eax
	jne	.L399
	jmp	.L370
.L398:
	mov	rax, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	eax, DWORD PTR -164[rbp]
	add	eax, edx
	mov	DWORD PTR -164[rbp], eax
	mov	DWORD PTR -280[rbp], 0
	mov	eax, DWORD PTR -164[rbp]
	mov	DWORD PTR -276[rbp], eax
.L399:
	add	DWORD PTR -272[rbp], 1
	add	DWORD PTR -260[rbp], 1
.L397:
	mov	eax, DWORD PTR -272[rbp]
	cmp	eax, DWORD PTR -220[rbp]
	jge	.L400
	mov	eax, DWORD PTR -260[rbp]
	cmp	eax, DWORD PTR -200[rbp]
	jl	.L401
.L400:
	add	DWORD PTR -256[rbp], 1
.L389:
	mov	eax, DWORD PTR -260[rbp]
	cmp	eax, DWORD PTR -200[rbp]
	jl	.L402
	jmp	.L387
.L416:
	mov	rax, QWORD PTR -112[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	eax, DWORD PTR -260[rbp]
	imul	eax, edx
	add	eax, ecx
	mov	DWORD PTR -192[rbp], eax
	mov	eax, DWORD PTR -192[rbp]
	cdq
	idiv	DWORD PTR -308[rbp]
	mov	eax, edx
	mov	DWORD PTR -280[rbp], eax
	mov	eax, DWORD PTR -192[rbp]
	cdq
	idiv	DWORD PTR -308[rbp]
	mov	DWORD PTR -276[rbp], eax
	cmp	DWORD PTR -264[rbp], 0
	jne	.L404
	mov	rax, QWORD PTR -296[rbp]
	mov	rdx, QWORD PTR 160[rax]
	mov	rax, QWORD PTR -112[rbp]
	movzx	eax, BYTE PTR 13[rax]
	movzx	eax, al
	imul	rax, rax, 2120
	add	rax, rdx
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -296[rbp]
	mov	eax, DWORD PTR 1760[rax]
	cmp	eax, 9
	jg	.L405
	mov	rax, QWORD PTR -296[rbp]
	mov	rdi, rax
	call	prep_huffman
.L405:
	mov	rax, QWORD PTR -296[rbp]
	mov	eax, DWORD PTR 1756[rax]
	and	eax, 1023
	mov	DWORD PTR -244[rbp], eax
	mov	rax, QWORD PTR -96[rbp]
	mov	edx, DWORD PTR -244[rbp]
	movsx	rdx, edx
	add	rdx, 24
	movzx	eax, WORD PTR [rax+rdx*2]
	cwde
	mov	DWORD PTR -244[rbp], eax
	cmp	DWORD PTR -244[rbp], 0
	js	.L406
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -244[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -188[rbp], eax
	mov	rax, QWORD PTR -296[rbp]
	mov	edx, DWORD PTR 1756[rax]
	mov	eax, DWORD PTR -188[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	rax, QWORD PTR -296[rbp]
	mov	DWORD PTR 1756[rax], edx
	mov	rax, QWORD PTR -296[rbp]
	mov	eax, DWORD PTR 1760[rax]
	sub	eax, DWORD PTR -188[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -296[rbp]
	mov	DWORD PTR 1760[rax], edx
	mov	rax, QWORD PTR -296[rbp]
	mov	eax, DWORD PTR 1760[rax]
	test	eax, eax
	jns	.L407
	mov	rax, QWORD PTR -296[rbp]
	mov	DWORD PTR 1760[rax], 0
	mov	DWORD PTR -244[rbp], -1
	jmp	.L407
.L406:
	mov	rdx, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR -296[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	codebook_decode_scalar_raw
	mov	DWORD PTR -244[rbp], eax
.L407:
	mov	rax, QWORD PTR -96[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L408
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR 2104[rax]
	mov	eax, DWORD PTR -244[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -244[rbp], eax
.L408:
	cmp	DWORD PTR -244[rbp], -1
	je	.L442
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -244[rbp]
	cdqe
	sal	rax, 3
	lea	rcx, [rdx+rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -256[rbp]
	cdqe
	sal	rax, 3
	add	rdx, rax
	mov	rax, QWORD PTR [rcx]
	mov	QWORD PTR [rdx], rax
.L404:
	mov	DWORD PTR -272[rbp], 0
	jmp	.L411
.L415:
	mov	rax, QWORD PTR -112[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	eax, DWORD PTR -260[rbp]
	imul	eax, edx
	add	eax, ecx
	mov	DWORD PTR -184[rbp], eax
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -256[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -272[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -180[rbp], eax
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -180[rbp]
	cdqe
	sal	rax, 4
	add	rdx, rax
	mov	eax, DWORD PTR -264[rbp]
	cdqe
	movzx	eax, WORD PTR [rdx+rax*2]
	cwde
	mov	DWORD PTR -176[rbp], eax
	cmp	DWORD PTR -176[rbp], 0
	js	.L412
	mov	rax, QWORD PTR -296[rbp]
	mov	rdx, QWORD PTR 160[rax]
	mov	eax, DWORD PTR -176[rbp]
	cdqe
	imul	rax, rax, 2120
	add	rax, rdx
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	edi, eax
	lea	r9, -276[rbp]
	lea	r8, -280[rbp]
	mov	ecx, DWORD PTR -308[rbp]
	mov	rdx, QWORD PTR -304[rbp]
	mov	rsi, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR -296[rbp]
	push	rdi
	mov	edi, DWORD PTR -312[rbp]
	push	rdi
	mov	rdi, rax
	call	codebook_decode_deinterleave_repeat
	add	rsp, 16
	test	eax, eax
	jne	.L413
	jmp	.L370
.L412:
	mov	rax, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	eax, DWORD PTR -184[rbp]
	add	eax, edx
	mov	DWORD PTR -184[rbp], eax
	mov	eax, DWORD PTR -184[rbp]
	cdq
	idiv	DWORD PTR -308[rbp]
	mov	eax, edx
	mov	DWORD PTR -280[rbp], eax
	mov	eax, DWORD PTR -184[rbp]
	cdq
	idiv	DWORD PTR -308[rbp]
	mov	DWORD PTR -276[rbp], eax
.L413:
	add	DWORD PTR -272[rbp], 1
	add	DWORD PTR -260[rbp], 1
.L411:
	mov	eax, DWORD PTR -272[rbp]
	cmp	eax, DWORD PTR -220[rbp]
	jge	.L414
	mov	eax, DWORD PTR -260[rbp]
	cmp	eax, DWORD PTR -200[rbp]
	jl	.L415
.L414:
	add	DWORD PTR -256[rbp], 1
.L403:
	mov	eax, DWORD PTR -260[rbp]
	cmp	eax, DWORD PTR -200[rbp]
	jl	.L416
.L387:
	add	DWORD PTR -264[rbp], 1
.L371:
	cmp	DWORD PTR -264[rbp], 7
	jle	.L417
	jmp	.L370
.L364:
	mov	DWORD PTR -264[rbp], 0
	jmp	.L418
.L436:
	mov	DWORD PTR -240[rbp], 0
	mov	DWORD PTR -236[rbp], 0
	jmp	.L419
.L435:
	cmp	DWORD PTR -264[rbp], 0
	jne	.L420
	mov	DWORD PTR -268[rbp], 0
	jmp	.L421
.L428:
	mov	eax, DWORD PTR -268[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -328[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L422
	mov	rax, QWORD PTR -296[rbp]
	mov	rdx, QWORD PTR 160[rax]
	mov	rax, QWORD PTR -112[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 -296[rbp]
	mov	eax, DWORD PTR 1760[rax]
	cmp	eax, 9
	jg	.L423
	mov	rax, QWORD PTR -296[rbp]
	mov	rdi, rax
	call	prep_huffman
.L423:
	mov	rax, QWORD PTR -296[rbp]
	mov	eax, DWORD PTR 1756[rax]
	and	eax, 1023
	mov	DWORD PTR -232[rbp], eax
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, DWORD PTR -232[rbp]
	movsx	rdx, edx
	add	rdx, 24
	movzx	eax, WORD PTR [rax+rdx*2]
	cwde
	mov	DWORD PTR -232[rbp], eax
	cmp	DWORD PTR -232[rbp], 0
	js	.L424
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -232[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -132[rbp], eax
	mov	rax, QWORD PTR -296[rbp]
	mov	edx, DWORD PTR 1756[rax]
	mov	eax, DWORD PTR -132[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	rax, QWORD PTR -296[rbp]
	mov	DWORD PTR 1756[rax], edx
	mov	rax, QWORD PTR -296[rbp]
	mov	eax, DWORD PTR 1760[rax]
	sub	eax, DWORD PTR -132[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -296[rbp]
	mov	DWORD PTR 1760[rax], edx
	mov	rax, QWORD PTR -296[rbp]
	mov	eax, DWORD PTR 1760[rax]
	test	eax, eax
	jns	.L425
	mov	rax, QWORD PTR -296[rbp]
	mov	DWORD PTR 1760[rax], 0
	mov	DWORD PTR -232[rbp], -1
	jmp	.L425
.L424:
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -296[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	codebook_decode_scalar_raw
	mov	DWORD PTR -232[rbp], eax
.L425:
	mov	rax, QWORD PTR -48[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L426
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR 2104[rax]
	mov	eax, DWORD PTR -232[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -232[rbp], eax
.L426:
	cmp	DWORD PTR -232[rbp], -1
	je	.L443
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -232[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	edx, DWORD PTR -268[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*8]
	mov	rdx, QWORD PTR -104[rbp]
	add	rdx, rcx
	mov	rcx, QWORD PTR [rdx]
	mov	edx, DWORD PTR -236[rbp]
	movsx	rdx, edx
	sal	rdx, 3
	add	rdx, rcx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR [rdx], rax
.L422:
	add	DWORD PTR -268[rbp], 1
.L421:
	mov	eax, DWORD PTR -268[rbp]
	cmp	eax, DWORD PTR -308[rbp]
	jl	.L428
.L420:
	mov	DWORD PTR -272[rbp], 0
	jmp	.L429
.L434:
	mov	DWORD PTR -268[rbp], 0
	jmp	.L430
.L432:
	mov	eax, DWORD PTR -268[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -328[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L431
	mov	eax, DWORD PTR -268[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -236[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -272[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	DWORD PTR -128[rbp], eax
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -128[rbp]
	cdqe
	sal	rax, 4
	add	rdx, rax
	mov	eax, DWORD PTR -264[rbp]
	cdqe
	movzx	eax, WORD PTR [rdx+rax*2]
	cwde
	mov	DWORD PTR -124[rbp], eax
	cmp	DWORD PTR -124[rbp], 0
	js	.L431
	mov	eax, DWORD PTR -268[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -304[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	eax, DWORD PTR -240[rbp]
	imul	eax, edx
	add	eax, ecx
	mov	DWORD PTR -120[rbp], eax
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -116[rbp], eax
	mov	rax, QWORD PTR -296[rbp]
	mov	rdx, QWORD PTR 160[rax]
	mov	eax, DWORD PTR -124[rbp]
	cdqe
	imul	rax, rax, 2120
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	mov	r8d, DWORD PTR -228[rbp]
	mov	edi, DWORD PTR -116[rbp]
	mov	ecx, DWORD PTR -120[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -296[rbp]
	mov	r9d, r8d
	mov	r8d, edi
	mov	rdi, rax
	call	residue_decode
	test	eax, eax
	je	.L444
.L431:
	add	DWORD PTR -268[rbp], 1
.L430:
	mov	eax, DWORD PTR -268[rbp]
	cmp	eax, DWORD PTR -308[rbp]
	jl	.L432
	add	DWORD PTR -272[rbp], 1
	add	DWORD PTR -240[rbp], 1
.L429:
	mov	eax, DWORD PTR -272[rbp]
	cmp	eax, DWORD PTR -220[rbp]
	jge	.L433
	mov	eax, DWORD PTR -240[rbp]
	cmp	eax, DWORD PTR -200[rbp]
	jl	.L434
.L433:
	add	DWORD PTR -236[rbp], 1
.L419:
	mov	eax, DWORD PTR -240[rbp]
	cmp	eax, DWORD PTR -200[rbp]
	jl	.L435
	add	DWORD PTR -264[rbp], 1
.L418:
	cmp	DWORD PTR -264[rbp], 7
	jle	.L436
	jmp	.L370
.L439:
	nop
	jmp	.L370
.L440:
	nop
	jmp	.L370
.L441:
	nop
	jmp	.L370
.L442:
	nop
	jmp	.L370
.L443:
	nop
	jmp	.L370
.L444:
	nop
.L370:
	mov	rax, QWORD PTR -296[rbp]
	mov	edx, DWORD PTR -196[rbp]
	mov	DWORD PTR 124[rax], edx
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L437
	call	__stack_chk_fail@PLT
.L437:
	lea	rsp, -16[rbp]
	pop	rbx
	pop	r12
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE56:
	.size	decode_residue, .-decode_residue
	.section	.rodata
.LC26:
	.string	"(n & 3) == 0"
	.text
	.type	imdct_step3_iter0_loop, @function
imdct_step3_iter0_loop:
.LFB57:
	.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	.L446
	lea	rcx, __PRETTY_FUNCTION__.11[rip]
	mov	edx, 2397
	lea	rsi, .LC1[rip]
	lea	rdi, .LC26[rip]
	call	__assert_fail@PLT
.L446:
	mov	eax, DWORD PTR -36[rbp]
	sar	eax, 2
	mov	DWORD PTR -28[rbp], eax
	jmp	.L447
.L448:
	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
.L447:
	cmp	DWORD PTR -28[rbp], 0
	jg	.L448
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE57:
	.size	imdct_step3_iter0_loop, .-imdct_step3_iter0_loop
	.type	imdct_step3_inner_r_loop, @function
imdct_step3_inner_r_loop:
.LFB58:
	.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	.L450
.L451:
	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
.L450:
	cmp	DWORD PTR -28[rbp], 0
	jg	.L451
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE58:
	.size	imdct_step3_inner_r_loop, .-imdct_step3_inner_r_loop
	.type	imdct_step3_inner_s_loop, @function
imdct_step3_inner_s_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 -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	.L453
.L454:
	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
.L453:
	cmp	DWORD PTR -60[rbp], 0
	jg	.L454
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE59:
	.size	imdct_step3_inner_s_loop, .-imdct_step3_inner_s_loop
	.type	iter_54, @function
iter_54:
.LFB60:
	.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
.LFE60:
	.size	iter_54, .-iter_54
	.type	imdct_step3_inner_s_loop_ld654, @function
imdct_step3_inner_s_loop_ld654:
.LFB61:
	.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	.L457
.L458:
	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
.L457:
	mov	rax, QWORD PTR -16[rbp]
	cmp	rax, QWORD PTR -8[rbp]
	ja	.L458
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE61:
	.size	imdct_step3_inner_s_loop_ld654, .-imdct_step3_inner_s_loop_ld654
	.section	.rodata
.LC27:
	.string	"v == buf2"
	.text
	.type	inverse_mdct, @function
inverse_mdct:
.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, 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 124[rax]
	mov	DWORD PTR -308[rbp], eax
	mov	rax, QWORD PTR -360[rbp]
	mov	rax, QWORD PTR 104[rax]
	test	rax, rax
	je	.L460
	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	.L461
.L460:
	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
.L462:
	cmp	rsp, rdx
	je	.L463
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L462
.L463:
	mov	rdx, rax
	and	edx, 4095
	sub	rsp, rdx
	mov	rdx, rax
	and	edx, 4095
	test	rdx, rdx
	je	.L464
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L464:
	mov	rax, rsp
	add	rax, 15
	shr	rax, 4
	sal	rax, 4
.L461:
	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, 174
	mov	rax, QWORD PTR [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	.L465
.L466:
	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
.L465:
	mov	rax, QWORD PTR -208[rbp]
	cmp	rax, QWORD PTR -16[rbp]
	jne	.L466
	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	.L467
.L468:
	mov	rax, QWORD PTR -208[rbp]
	add	rax, 8
	movss	xmm0, DWORD PTR [rax]
	movss	xmm1, DWORD PTR .LC15[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 .LC15[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 .LC15[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
.L467:
	mov	rax, QWORD PTR -216[rbp]
	cmp	rax, QWORD PTR -48[rbp]
	jnb	.L468
	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	.L469
.L470:
	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
.L469:
	mov	rax, QWORD PTR -192[rbp]
	cmp	rax, QWORD PTR -24[rbp]
	jnb	.L470
	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	.L471
.L474:
	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	.L472
.L473:
	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
.L472:
	mov	eax, DWORD PTR -332[rbp]
	cmp	eax, DWORD PTR -228[rbp]
	jl	.L473
	add	DWORD PTR -336[rbp], 1
.L471:
	mov	eax, DWORD PTR -304[rbp]
	sub	eax, 3
	sar	eax
	cmp	DWORD PTR -336[rbp], eax
	jl	.L474
	jmp	.L475
.L478:
	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	.L476
.L477:
	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
.L476:
	cmp	DWORD PTR -328[rbp], 0
	jg	.L477
	add	DWORD PTR -336[rbp], 1
.L475:
	mov	eax, DWORD PTR -304[rbp]
	sub	eax, 6
	cmp	DWORD PTR -336[rbp], eax
	jl	.L478
	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, 182
	mov	rax, QWORD PTR [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	.L479
.L480:
	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
.L479:
	mov	rax, QWORD PTR -136[rbp]
	cmp	rax, QWORD PTR -32[rbp]
	jnb	.L480
	mov	rax, QWORD PTR -32[rbp]
	cmp	rax, QWORD PTR -48[rbp]
	je	.L481
	lea	rcx, __PRETTY_FUNCTION__.10[rip]
	mov	edx, 2800
	lea	rsi, .LC1[rip]
	lea	rdi, .LC27[rip]
	call	__assert_fail@PLT
.L481:
	mov	rax, QWORD PTR -360[rbp]
	mov	edx, DWORD PTR -352[rbp]
	movsx	rdx, edx
	add	rdx, 178
	mov	rax, QWORD PTR [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	.L482
.L483:
	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
.L482:
	mov	rax, QWORD PTR -112[rbp]
	cmp	rax, QWORD PTR -104[rbp]
	jb	.L483
	mov	rax, QWORD PTR -360[rbp]
	mov	edx, DWORD PTR -352[rbp]
	movsx	rdx, edx
	add	rdx, 176
	mov	rdx, QWORD PTR [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	.L484
.L485:
	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 .LC15[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 .LC15[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 .LC15[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 .LC15[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 .LC15[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 .LC15[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 .LC15[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 .LC15[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
.L484:
	mov	rax, QWORD PTR -56[rbp]
	cmp	rax, QWORD PTR -32[rbp]
	jnb	.L485
	mov	rax, QWORD PTR -360[rbp]
	mov	edx, DWORD PTR -308[rbp]
	mov	DWORD PTR 124[rax], edx
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L486
	call	__stack_chk_fail@PLT
.L486:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE62:
	.size	inverse_mdct, .-inverse_mdct
	.section	.rodata
.LC28:
	.string	"0"
	.text
	.type	get_window, @function
get_window:
.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, 16
	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 144[rax]
	cmp	DWORD PTR -12[rbp], eax
	jne	.L488
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 1440[rax]
	jmp	.L489
.L488:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 148[rax]
	cmp	DWORD PTR -12[rbp], eax
	jne	.L490
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 1448[rax]
	jmp	.L489
.L490:
	lea	rcx, __PRETTY_FUNCTION__.9[rip]
	mov	edx, 3048
	lea	rsi, .LC1[rip]
	lea	rdi, .LC28[rip]
	call	__assert_fail@PLT
.L489:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE63:
	.size	get_window, .-get_window
	.type	do_floor, @function
do_floor:
.LFB64:
	.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, 80
	movzx	eax, WORD PTR 12[rax+rdx*2]
	test	ax, ax
	jne	.L492
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 21
	mov	rdi, rax
	call	error
	jmp	.L493
.L492:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR 304[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	.L494
.L497:
	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	.L495
	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	.L496
	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
.L496:
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR -32[rbp], eax
.L495:
	add	DWORD PTR -40[rbp], 1
.L494:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 1592[rax]
	cmp	DWORD PTR -40[rbp], eax
	jl	.L497
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	jge	.L498
	mov	eax, DWORD PTR -36[rbp]
	mov	DWORD PTR -44[rbp], eax
	jmp	.L499
.L500:
	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
.L499:
	mov	eax, DWORD PTR -44[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	jl	.L500
.L498:
	mov	eax, 1
.L493:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE64:
	.size	do_floor, .-do_floor
	.section	.rodata
	.align 8
.LC29:
	.string	"f->alloc.alloc_buffer_length_in_bytes == f->temp_offset"
	.text
	.type	vorbis_decode_initial, @function
vorbis_decode_initial:
.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, 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 1872[rax], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 1872[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1868[rax], edx
.L502:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 128[rax]
	test	eax, eax
	je	.L503
	mov	eax, 0
	jmp	.L504
.L503:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	maybe_start_packet
	test	eax, eax
	jne	.L505
	mov	eax, 0
	jmp	.L504
.L505:
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	get_bits
	test	eax, eax
	je	.L506
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR 68[rax]
	test	al, al
	je	.L518
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 35
	mov	rdi, rax
	call	error
	jmp	.L504
.L518:
	nop
.L508:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	get8_packet
	cmp	eax, -1
	jne	.L508
	jmp	.L502
.L506:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 104[rax]
	test	rax, rax
	je	.L509
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 112[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 124[rax]
	cmp	edx, eax
	je	.L509
	lea	rcx, __PRETTY_FUNCTION__.8[rip]
	mov	edx, 3127
	lea	rsi, .LC1[rip]
	lea	rdi, .LC29[rip]
	call	__assert_fail@PLT
.L509:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 472[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	.L510
	mov	eax, 0
	jmp	.L504
.L510:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 472[rax]
	cmp	DWORD PTR -16[rbp], eax
	jl	.L511
	mov	eax, 0
	jmp	.L504
.L511:
	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, 476[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	.L512
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 148[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	.L513
.L512:
	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 144[rax]
	mov	DWORD PTR -28[rbp], eax
.L513:
	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	.L514
	cmp	DWORD PTR -24[rbp], 0
	jne	.L514
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 144[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 144[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	.L515
.L514:
	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
.L515:
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L516
	cmp	DWORD PTR -20[rbp], 0
	jne	.L516
	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 144[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 144[rax]
	add	eax, edx
	sar	eax, 2
	mov	edx, eax
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L517
.L516:
	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
.L517:
	mov	eax, 1
.L504:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE65:
	.size	vorbis_decode_initial, .-vorbis_decode_initial
	.type	vorbis_decode_packet_rest, @function
vorbis_decode_packet_rest:
.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, 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, 32
	mov	eax, DWORD PTR 8[rax+rdx*4]
	mov	DWORD PTR -2588[rbp], eax
	mov	rax, QWORD PTR -2648[rbp]
	mov	rcx, QWORD PTR 464[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	.L520
.L552:
	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, 80
	movzx	eax, WORD PTR 12[rax+rdx*2]
	test	ax, ax
	jne	.L521
	mov	rax, QWORD PTR -2648[rbp]
	mov	esi, 21
	mov	rdi, rax
	call	error
	jmp	.L594
.L521:
	mov	rax, QWORD PTR -2648[rbp]
	mov	rdx, QWORD PTR 304[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	.L602
	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, 156
	mov	rax, QWORD PTR 8[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	.L524
.L537:
	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	.L525
	mov	rax, QWORD PTR -2648[rbp]
	mov	rcx, QWORD PTR 160[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 1760[rax]
	cmp	eax, 9
	jg	.L526
	mov	rax, QWORD PTR -2648[rbp]
	mov	rdi, rax
	call	prep_huffman
.L526:
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1756[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	.L527
	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 1756[rax]
	mov	eax, DWORD PTR -2516[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	rax, QWORD PTR -2648[rbp]
	mov	DWORD PTR 1756[rax], edx
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1760[rax]
	sub	eax, DWORD PTR -2516[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -2648[rbp]
	mov	DWORD PTR 1760[rax], edx
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1760[rax]
	test	eax, eax
	jns	.L528
	mov	rax, QWORD PTR -2648[rbp]
	mov	DWORD PTR 1760[rax], 0
	mov	DWORD PTR -2612[rbp], -1
	jmp	.L528
.L527:
	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
.L528:
	mov	rax, QWORD PTR -2464[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L525
	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
.L525:
	mov	DWORD PTR -2620[rbp], 0
	jmp	.L529
.L536:
	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	.L530
	mov	rax, QWORD PTR -2648[rbp]
	mov	rdx, QWORD PTR 160[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 1760[rax]
	cmp	eax, 9
	jg	.L531
	mov	rax, QWORD PTR -2648[rbp]
	mov	rdi, rax
	call	prep_huffman
.L531:
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1756[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	.L532
	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 1756[rax]
	mov	eax, DWORD PTR -2508[rbp]
	mov	ecx, eax
	shr	edx, cl
	mov	rax, QWORD PTR -2648[rbp]
	mov	DWORD PTR 1756[rax], edx
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1760[rax]
	sub	eax, DWORD PTR -2508[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -2648[rbp]
	mov	DWORD PTR 1760[rax], edx
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1760[rax]
	test	eax, eax
	jns	.L533
	mov	rax, QWORD PTR -2648[rbp]
	mov	DWORD PTR 1760[rax], 0
	mov	DWORD PTR -2608[rbp], -1
	jmp	.L533
.L532:
	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
.L533:
	mov	rax, QWORD PTR -2456[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L534
	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
.L534:
	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	.L535
.L530:
	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
.L535:
	add	DWORD PTR -2620[rbp], 1
.L529:
	mov	eax, DWORD PTR -2620[rbp]
	cmp	eax, DWORD PTR -2528[rbp]
	jl	.L536
	add	DWORD PTR -2624[rbp], 1
.L524:
	mov	rax, QWORD PTR -2480[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cmp	DWORD PTR -2624[rbp], eax
	jl	.L537
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1760[rax]
	cmp	eax, -1
	je	.L603
	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	.L539
.L547:
	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	.L540
	mov	eax, DWORD PTR -2540[rbp]
	add	eax, eax
	mov	DWORD PTR -2604[rbp], eax
	jmp	.L541
.L540:
	mov	eax, DWORD PTR -2536[rbp]
	add	eax, eax
	mov	DWORD PTR -2604[rbp], eax
.L541:
	cmp	DWORD PTR -2544[rbp], 0
	je	.L542
	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	.L543
	mov	eax, DWORD PTR -2540[rbp]
	cmp	eax, DWORD PTR -2536[rbp]
	jle	.L544
	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	.L545
.L544:
	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	.L545
.L543:
	mov	eax, DWORD PTR -2544[rbp]
	and	eax, 1
	test	eax, eax
	je	.L546
	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	.L545
.L546:
	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	.L545
.L542:
	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
.L545:
	add	DWORD PTR -2624[rbp], 1
.L539:
	mov	rax, QWORD PTR -2480[rbp]
	mov	eax, DWORD PTR 1592[rax]
	cmp	DWORD PTR -2624[rbp], eax
	jl	.L547
	mov	DWORD PTR -2624[rbp], 0
	jmp	.L548
.L550:
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	movzx	eax, BYTE PTR -272[rbp+rax]
	test	al, al
	jne	.L549
	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
.L549:
	add	DWORD PTR -2624[rbp], 1
.L548:
	mov	rax, QWORD PTR -2480[rbp]
	mov	eax, DWORD PTR 1592[rax]
	cmp	DWORD PTR -2624[rbp], eax
	jl	.L550
	jmp	.L551
.L602:
	nop
	jmp	.L523
.L603:
	nop
.L523:
	mov	eax, DWORD PTR -2628[rbp]
	cdqe
	mov	DWORD PTR -2320[rbp+rax*4], 1
.L551:
	add	DWORD PTR -2628[rbp], 1
.L520:
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -2628[rbp], eax
	jl	.L552
	mov	rax, QWORD PTR -2648[rbp]
	mov	rax, QWORD PTR 104[rax]
	test	rax, rax
	je	.L553
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR 112[rax]
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 124[rax]
	cmp	edx, eax
	je	.L553
	lea	rcx, __PRETTY_FUNCTION__.6[rip]
	mov	edx, 3276
	lea	rsi, .LC1[rip]
	lea	rdi, .LC29[rip]
	call	__assert_fail@PLT
.L553:
	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	.L554
.L557:
	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	.L555
	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	.L556
.L555:
	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
.L556:
	add	DWORD PTR -2628[rbp], 1
.L554:
	mov	rax, QWORD PTR -2504[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	cmp	DWORD PTR -2628[rbp], eax
	jl	.L557
	mov	DWORD PTR -2628[rbp], 0
	jmp	.L558
.L564:
	mov	DWORD PTR -2600[rbp], 0
	mov	DWORD PTR -2624[rbp], 0
	jmp	.L559
.L563:
	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	.L560
	mov	eax, DWORD PTR -2624[rbp]
	cdqe
	mov	eax, DWORD PTR -2320[rbp+rax*4]
	test	eax, eax
	je	.L561
	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	.L562
.L561:
	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, 108
	mov	rdx, QWORD PTR [rax+rdx*8]
	mov	eax, DWORD PTR -2600[rbp]
	cdqe
	mov	QWORD PTR -2448[rbp+rax*8], rdx
.L562:
	add	DWORD PTR -2600[rbp], 1
.L560:
	add	DWORD PTR -2624[rbp], 1
.L559:
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -2624[rbp], eax
	jl	.L563
	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
.L558:
	mov	rax, QWORD PTR -2504[rbp]
	movzx	eax, BYTE PTR 16[rax]
	movzx	eax, al
	cmp	DWORD PTR -2628[rbp], eax
	jl	.L564
	mov	rax, QWORD PTR -2648[rbp]
	mov	rax, QWORD PTR 104[rax]
	test	rax, rax
	je	.L565
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR 112[rax]
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 124[rax]
	cmp	edx, eax
	je	.L565
	lea	rcx, __PRETTY_FUNCTION__.6[rip]
	mov	edx, 3309
	lea	rsi, .LC1[rip]
	lea	rdi, .LC29[rip]
	call	__assert_fail@PLT
.L565:
	mov	rax, QWORD PTR -2504[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	sub	eax, 1
	mov	DWORD PTR -2628[rbp], eax
	jmp	.L566
.L576:
	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, 108
	mov	rax, QWORD PTR [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, 108
	mov	rax, QWORD PTR [rax+rdx*8]
	mov	QWORD PTR -2488[rbp], rax
	mov	DWORD PTR -2624[rbp], 0
	jmp	.L567
.L575:
	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	.L599
	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	.L600
	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	.L572
.L600:
	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	.L572
.L599:
	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	.L601
	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	.L572
.L601:
	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
.L572:
	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
.L567:
	mov	eax, DWORD PTR -2624[rbp]
	cmp	eax, DWORD PTR -2576[rbp]
	jl	.L575
	sub	DWORD PTR -2628[rbp], 1
.L566:
	cmp	DWORD PTR -2628[rbp], 0
	jns	.L576
	mov	DWORD PTR -2628[rbp], 0
	jmp	.L577
.L580:
	mov	eax, DWORD PTR -2628[rbp]
	cdqe
	mov	eax, DWORD PTR -1296[rbp+rax*4]
	test	eax, eax
	je	.L578
	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, 108
	mov	rax, QWORD PTR [rax+rcx*8]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	jmp	.L579
.L578:
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR -2628[rbp]
	movsx	rdx, edx
	add	rdx, 156
	mov	r8, QWORD PTR 8[rax+rdx*8]
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR -2628[rbp]
	movsx	rdx, edx
	add	rdx, 108
	mov	rdi, QWORD PTR [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
.L579:
	add	DWORD PTR -2628[rbp], 1
.L577:
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -2628[rbp], eax
	jl	.L580
	mov	DWORD PTR -2628[rbp], 0
	jmp	.L581
.L582:
	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, 108
	mov	rax, QWORD PTR [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
.L581:
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -2628[rbp], eax
	jl	.L582
	mov	rax, QWORD PTR -2648[rbp]
	mov	rdi, rax
	call	flush_packet
	mov	rax, QWORD PTR -2648[rbp]
	movzx	eax, BYTE PTR 1741[rax]
	test	al, al
	je	.L583
	mov	eax, DWORD PTR -2584[rbp]
	neg	eax
	mov	edx, eax
	mov	rax, QWORD PTR -2648[rbp]
	mov	DWORD PTR 1384[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 1776[rax], edx
	mov	rax, QWORD PTR -2648[rbp]
	mov	DWORD PTR 1388[rax], 1
	mov	rax, QWORD PTR -2648[rbp]
	mov	BYTE PTR 1741[rax], 0
	jmp	.L584
.L583:
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1776[rax]
	test	eax, eax
	je	.L585
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR 1776[rax]
	mov	eax, DWORD PTR -2676[rbp]
	sub	eax, DWORD PTR -2668[rbp]
	cmp	edx, eax
	jl	.L586
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR 1776[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 1776[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	.L584
.L586:
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1776[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 1776[rax], 0
	jmp	.L584
.L585:
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1248[rax]
	test	eax, eax
.L584:
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR 1752[rax]
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1768[rax]
	cmp	edx, eax
	jne	.L587
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1388[rax]
	test	eax, eax
	je	.L588
	mov	rax, QWORD PTR -2648[rbp]
	movzx	eax, BYTE PTR 1739[rax]
	movzx	eax, al
	and	eax, 4
	test	eax, eax
	je	.L588
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1772[rax]
	mov	DWORD PTR -2580[rbp], eax
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR 1384[rax]
	mov	eax, DWORD PTR 16[rbp]
	sub	eax, DWORD PTR -2668[rbp]
	add	eax, edx
	cmp	DWORD PTR -2580[rbp], eax
	jnb	.L588
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1384[rax]
	cmp	DWORD PTR -2580[rbp], eax
	jnb	.L589
	mov	rax, QWORD PTR -2656[rbp]
	mov	DWORD PTR [rax], 0
	jmp	.L590
.L589:
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR 1384[rax]
	mov	eax, DWORD PTR -2580[rbp]
	sub	eax, edx
	mov	edx, eax
	mov	rax, QWORD PTR -2656[rbp]
	mov	DWORD PTR [rax], edx
.L590:
	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	.L591
	mov	rax, QWORD PTR -2656[rbp]
	mov	edx, DWORD PTR 16[rbp]
	mov	DWORD PTR [rax], edx
.L591:
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR 1384[rax]
	mov	rax, QWORD PTR -2656[rbp]
	mov	eax, DWORD PTR [rax]
	add	edx, eax
	mov	rax, QWORD PTR -2648[rbp]
	mov	DWORD PTR 1384[rax], edx
	mov	eax, 1
	jmp	.L594
.L588:
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR 1772[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 1384[rax], edx
	mov	rax, QWORD PTR -2648[rbp]
	mov	DWORD PTR 1388[rax], 1
.L587:
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 1388[rax]
	test	eax, eax
	je	.L592
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR 1384[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 1384[rax], edx
.L592:
	mov	rax, QWORD PTR -2648[rbp]
	mov	rax, QWORD PTR 104[rax]
	test	rax, rax
	je	.L593
	mov	rax, QWORD PTR -2648[rbp]
	mov	edx, DWORD PTR 112[rax]
	mov	rax, QWORD PTR -2648[rbp]
	mov	eax, DWORD PTR 124[rax]
	cmp	edx, eax
	je	.L593
	lea	rcx, __PRETTY_FUNCTION__.6[rip]
	mov	edx, 3425
	lea	rsi, .LC1[rip]
	lea	rdi, .LC29[rip]
	call	__assert_fail@PLT
.L593:
	mov	rax, QWORD PTR -2656[rbp]
	mov	edx, DWORD PTR 16[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, 1
.L594:
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L595
	call	__stack_chk_fail@PLT
.L595:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE66:
	.size	vorbis_decode_packet_rest, .-vorbis_decode_packet_rest
	.type	vorbis_decode_packet, @function
vorbis_decode_packet:
.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, 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	.L605
	mov	eax, 0
	jmp	.L607
.L605:
	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, 476[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
.L607:
	mov	rdx, QWORD PTR -8[rbp]
	sub	rdx, QWORD PTR fs:40
	je	.L608
	call	__stack_chk_fail@PLT
.L608:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE67:
	.size	vorbis_decode_packet, .-vorbis_decode_packet
	.type	vorbis_finish_frame, @function
vorbis_finish_frame:
.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	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 1248[rax]
	test	eax, eax
	je	.L610
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 1248[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
	mov	DWORD PTR -24[rbp], 0
	jmp	.L611
.L614:
	mov	DWORD PTR -20[rbp], 0
	jmp	.L612
.L613:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -24[rbp]
	movsx	rdx, edx
	add	rdx, 108
	mov	rdx, QWORD PTR [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, 140
	mov	rdx, QWORD PTR [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, 108
	mov	rdx, QWORD PTR [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
.L612:
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -16[rbp]
	jl	.L613
	add	DWORD PTR -24[rbp], 1
.L611:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L614
.L610:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 1248[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 1248[rax], edx
	mov	DWORD PTR -32[rbp], 0
	jmp	.L615
.L618:
	mov	DWORD PTR -28[rbp], 0
	jmp	.L616
.L617:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -32[rbp]
	movsx	rdx, edx
	add	rdx, 108
	mov	rdx, QWORD PTR [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, 140
	mov	rcx, QWORD PTR [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
.L616:
	mov	edx, DWORD PTR -52[rbp]
	mov	eax, DWORD PTR -28[rbp]
	add	eax, edx
	cmp	DWORD PTR -44[rbp], eax
	jg	.L617
	add	DWORD PTR -32[rbp], 1
.L615:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -32[rbp], eax
	jl	.L618
	cmp	DWORD PTR -12[rbp], 0
	jne	.L619
	mov	eax, 0
	jmp	.L620
.L619:
	mov	eax, DWORD PTR -44[rbp]
	cmp	eax, DWORD PTR -52[rbp]
	jge	.L621
	mov	eax, DWORD PTR -44[rbp]
	mov	DWORD PTR -52[rbp], eax
.L621:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 1780[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 1780[rax], edx
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, DWORD PTR -48[rbp]
.L620:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE68:
	.size	vorbis_finish_frame, .-vorbis_finish_frame
	.type	vorbis_pump_first_frame, @function
vorbis_pump_first_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, 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	.L623
	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
.L623:
	mov	eax, DWORD PTR -12[rbp]
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L625
	call	__stack_chk_fail@PLT
.L625:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE69:
	.size	vorbis_pump_first_frame, .-vorbis_pump_first_frame
	.type	is_whole_packet_present, @function
is_whole_packet_present:
.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	DWORD PTR -44[rbp], esi
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 1744[rax]
	mov	DWORD PTR -28[rbp], eax
	mov	DWORD PTR -24[rbp], 1
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	QWORD PTR -16[rbp], rax
	cmp	DWORD PTR -28[rbp], -1
	je	.L636
	jmp	.L628
.L631:
	mov	rdx, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	movzx	eax, BYTE PTR 1484[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 1484[rdx+rax]
	cmp	al, -1
	jne	.L651
	add	DWORD PTR -28[rbp], 1
.L628:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 1480[rax]
	cmp	DWORD PTR -28[rbp], eax
	jl	.L631
	jmp	.L630
.L651:
	nop
.L630:
	cmp	DWORD PTR -44[rbp], 0
	je	.L632
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 1480[rax]
	sub	eax, 1
	cmp	DWORD PTR -28[rbp], eax
	jge	.L632
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 21
	mov	rdi, rax
	call	error
	jmp	.L633
.L632:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 1480[rax]
	cmp	DWORD PTR -28[rbp], eax
	jne	.L634
	mov	DWORD PTR -28[rbp], -1
.L634:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 56[rax]
	cmp	QWORD PTR -16[rbp], rax
	jbe	.L635
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	error
	jmp	.L633
.L635:
	mov	DWORD PTR -24[rbp], 0
	jmp	.L636
.L650:
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, 26[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 56[rax]
	cmp	rdx, rax
	jb	.L637
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	error
	jmp	.L633
.L637:
	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	.L638
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 21
	mov	rdi, rax
	call	error
	jmp	.L633
.L638:
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 4
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L639
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 21
	mov	rdi, rax
	call	error
	jmp	.L633
.L639:
	cmp	DWORD PTR -24[rbp], 0
	je	.L640
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 1248[rax]
	test	eax, eax
	je	.L641
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 5
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	and	eax, 1
	test	eax, eax
	je	.L641
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 21
	mov	rdi, rax
	call	error
	jmp	.L633
.L640:
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 5
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	and	eax, 1
	test	eax, eax
	jne	.L641
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 21
	mov	rdi, rax
	call	error
	jmp	.L633
.L641:
	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 56[rax]
	cmp	QWORD PTR -16[rbp], rax
	jbe	.L642
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	error
	jmp	.L633
.L642:
	mov	DWORD PTR -28[rbp], 0
	jmp	.L643
.L646:
	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	.L652
	add	DWORD PTR -28[rbp], 1
.L643:
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, DWORD PTR -20[rbp]
	jl	.L646
	jmp	.L645
.L652:
	nop
.L645:
	cmp	DWORD PTR -44[rbp], 0
	je	.L647
	mov	eax, DWORD PTR -20[rbp]
	sub	eax, 1
	cmp	DWORD PTR -28[rbp], eax
	jge	.L647
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 21
	mov	rdi, rax
	call	error
	jmp	.L633
.L647:
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, DWORD PTR -20[rbp]
	jne	.L648
	mov	DWORD PTR -28[rbp], -1
.L648:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 56[rax]
	cmp	QWORD PTR -16[rbp], rax
	jbe	.L649
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	error
	jmp	.L633
.L649:
	mov	DWORD PTR -24[rbp], 0
.L636:
	cmp	DWORD PTR -28[rbp], -1
	je	.L650
	mov	eax, 1
.L633:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE70:
	.size	is_whole_packet_present, .-is_whole_packet_present
	.section	.rodata
	.align 8
.LC30:
	.string	"f->temp_offset == f->alloc.alloc_buffer_length_in_bytes"
	.text
	.type	start_decoder, @function
start_decoder:
.LFB71:
	.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 -1340[rbp], 0
	mov	DWORD PTR -1336[rbp], 0
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	start_page
	test	eax, eax
	jne	.L654
	mov	eax, 0
	jmp	.L855
.L654:
	mov	rax, QWORD PTR -1384[rbp]
	movzx	eax, BYTE PTR 1739[rax]
	movzx	eax, al
	and	eax, 2
	test	eax, eax
	jne	.L656
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 34
	mov	rdi, rax
	call	error
	jmp	.L855
.L656:
	mov	rax, QWORD PTR -1384[rbp]
	movzx	eax, BYTE PTR 1739[rax]
	movzx	eax, al
	and	eax, 4
	test	eax, eax
	je	.L657
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 34
	mov	rdi, rax
	call	error
	jmp	.L855
.L657:
	mov	rax, QWORD PTR -1384[rbp]
	movzx	eax, BYTE PTR 1739[rax]
	movzx	eax, al
	and	eax, 1
	test	eax, eax
	je	.L658
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 34
	mov	rdi, rax
	call	error
	jmp	.L855
.L658:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 1480[rax]
	cmp	eax, 1
	je	.L659
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 34
	mov	rdi, rax
	call	error
	jmp	.L855
.L659:
	mov	rax, QWORD PTR -1384[rbp]
	movzx	eax, BYTE PTR 1484[rax]
	cmp	al, 30
	je	.L660
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 34
	mov	rdi, rax
	call	error
	jmp	.L855
.L660:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	get8
	cmp	al, 1
	je	.L661
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 34
	mov	rdi, rax
	call	error
	jmp	.L855
.L661:
	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	.L662
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 10
	mov	rdi, rax
	call	error
	jmp	.L855
.L662:
	lea	rax, -102[rbp]
	mov	rdi, rax
	call	vorbis_validate
	test	eax, eax
	jne	.L663
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 34
	mov	rdi, rax
	call	error
	jmp	.L855
.L663:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	get32
	test	eax, eax
	je	.L664
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 34
	mov	rdi, rax
	call	error
	jmp	.L855
.L664:
	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	.L665
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 34
	mov	rdi, rax
	call	error
	jmp	.L855
.L665:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	eax, 16
	jle	.L666
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 5
	mov	rdi, rax
	call	error
	jmp	.L855
.L666:
	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	.L667
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 34
	mov	rdi, rax
	call	error
	jmp	.L855
.L667:
	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 -1363[rbp], al
	movzx	eax, BYTE PTR -1363[rbp]
	and	eax, 15
	mov	DWORD PTR -1288[rbp], eax
	movzx	eax, BYTE PTR -1363[rbp]
	shr	al, 4
	movzx	eax, al
	mov	DWORD PTR -1284[rbp], eax
	mov	eax, DWORD PTR -1288[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	rax, QWORD PTR -1384[rbp]
	mov	DWORD PTR 144[rax], edx
	mov	eax, DWORD PTR -1284[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	rax, QWORD PTR -1384[rbp]
	mov	DWORD PTR 148[rax], edx
	cmp	DWORD PTR -1288[rbp], 5
	jle	.L668
	cmp	DWORD PTR -1288[rbp], 13
	jle	.L669
.L668:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L669:
	cmp	DWORD PTR -1284[rbp], 5
	jle	.L670
	cmp	DWORD PTR -1284[rbp], 13
	jle	.L671
.L670:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L671:
	mov	eax, DWORD PTR -1288[rbp]
	cmp	eax, DWORD PTR -1284[rbp]
	jle	.L672
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L672:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	get8
	mov	BYTE PTR -1363[rbp], al
	movzx	eax, BYTE PTR -1363[rbp]
	and	eax, 1
	test	eax, eax
	jne	.L673
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 34
	mov	rdi, rax
	call	error
	jmp	.L855
.L673:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	start_page
	test	eax, eax
	jne	.L674
	mov	eax, 0
	jmp	.L855
.L674:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	start_packet
	test	eax, eax
	jne	.L675
	mov	eax, 0
	jmp	.L855
.L675:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	next_segment
	mov	DWORD PTR -1280[rbp], eax
	mov	edx, DWORD PTR -1280[rbp]
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	skip
	mov	rax, QWORD PTR -1384[rbp]
	mov	BYTE PTR 1740[rax], 0
	cmp	DWORD PTR -1280[rbp], 0
	jne	.L675
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	start_packet
	test	eax, eax
	jne	.L676
	mov	eax, 0
	jmp	.L855
.L676:
	mov	rax, QWORD PTR -1384[rbp]
	movzx	eax, BYTE PTR 68[rax]
	test	al, al
	je	.L677
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	is_whole_packet_present
	test	eax, eax
	jne	.L677
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 132[rax]
	cmp	eax, 21
	jne	.L678
	mov	rax, QWORD PTR -1384[rbp]
	mov	DWORD PTR 132[rax], 20
.L678:
	mov	eax, 0
	jmp	.L855
.L677:
	call	crc32_init
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	get8_packet
	cmp	eax, 5
	je	.L679
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L679:
	mov	DWORD PTR -1352[rbp], 0
	jmp	.L680
.L681:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	get8_packet
	mov	edx, eax
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	mov	BYTE PTR -102[rbp+rax], dl
	add	DWORD PTR -1352[rbp], 1
.L680:
	cmp	DWORD PTR -1352[rbp], 5
	jle	.L681
	lea	rax, -102[rbp]
	mov	rdi, rax
	call	vorbis_validate
	test	eax, eax
	jne	.L682
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L682:
	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 152[rax], edx
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 152[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 160[rdx], rax
	mov	rax, QWORD PTR -1384[rbp]
	mov	rax, QWORD PTR 160[rax]
	test	rax, rax
	jne	.L683
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L855
.L683:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 152[rax]
	cdqe
	imul	rdx, rax, 2120
	mov	rax, QWORD PTR -1384[rbp]
	mov	rax, QWORD PTR 160[rax]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	DWORD PTR -1352[rbp], 0
	jmp	.L684
.L756:
	mov	DWORD PTR -1328[rbp], 0
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdx, QWORD PTR 160[rax]
	mov	eax, DWORD PTR -1352[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 -1363[rbp], al
	cmp	BYTE PTR -1363[rbp], 66
	je	.L685
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L685:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	get_bits
	mov	BYTE PTR -1363[rbp], al
	cmp	BYTE PTR -1363[rbp], 67
	je	.L686
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L686:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	get_bits
	mov	BYTE PTR -1363[rbp], al
	cmp	BYTE PTR -1363[rbp], 86
	je	.L687
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L687:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	get_bits
	mov	BYTE PTR -1363[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 -1363[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 -1363[rbp], al
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	get_bits
	mov	BYTE PTR -1361[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 -1361[rbp]
	sal	eax, 8
	add	edx, eax
	movzx	eax, BYTE PTR -1363[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 -1232[rbp], eax
	cmp	DWORD PTR -1232[rbp], 0
	jne	.L688
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	get_bits
	mov	edx, eax
	jmp	.L689
.L688:
	mov	edx, 0
.L689:
	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	.L690
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 4[rax]
	test	eax, eax
	je	.L690
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L690:
	mov	rax, QWORD PTR -1120[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L691
	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	.L692
.L691:
	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
.L692:
	cmp	QWORD PTR -1176[rbp], 0
	jne	.L693
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L855
.L693:
	cmp	DWORD PTR -1232[rbp], 0
	je	.L694
	mov	DWORD PTR -1324[rbp], 0
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 5
	mov	rdi, rax
	call	get_bits
	add	eax, 1
	mov	DWORD PTR -1320[rbp], eax
	jmp	.L695
.L697:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 4[rax]
	sub	eax, DWORD PTR -1324[rbp]
	mov	DWORD PTR -1224[rbp], eax
	mov	eax, DWORD PTR -1224[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 -1220[rbp], eax
	mov	edx, DWORD PTR -1324[rbp]
	mov	eax, DWORD PTR -1220[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	edx, eax
	jle	.L696
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L696:
	mov	eax, DWORD PTR -1220[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -1324[rbp]
	movsx	rcx, eax
	mov	rax, QWORD PTR -1176[rbp]
	add	rcx, rax
	mov	eax, DWORD PTR -1320[rbp]
	mov	esi, eax
	mov	rdi, rcx
	call	memset@PLT
	mov	eax, DWORD PTR -1220[rbp]
	add	DWORD PTR -1324[rbp], eax
	add	DWORD PTR -1320[rbp], 1
.L695:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -1324[rbp], eax
	jl	.L697
	jmp	.L698
.L694:
	mov	DWORD PTR -1348[rbp], 0
	jmp	.L699
.L704:
	mov	rax, QWORD PTR -1120[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L700
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	get_bits
	jmp	.L701
.L700:
	mov	eax, 1
.L701:
	mov	DWORD PTR -1228[rbp], eax
	cmp	DWORD PTR -1228[rbp], 0
	je	.L702
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 5
	mov	rdi, rax
	call	get_bits
	mov	ecx, eax
	mov	eax, DWORD PTR -1348[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 -1328[rbp], 1
	mov	eax, DWORD PTR -1348[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -1176[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 32
	jne	.L703
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L702:
	mov	eax, DWORD PTR -1348[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -1176[rbp]
	add	rax, rdx
	mov	BYTE PTR [rax], -1
.L703:
	add	DWORD PTR -1348[rbp], 1
.L699:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -1348[rbp], eax
	jl	.L704
.L698:
	mov	rax, QWORD PTR -1120[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L705
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 4[rax]
	sar	eax, 2
	cmp	DWORD PTR -1328[rbp], eax
	jl	.L705
	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	.L706
	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
.L706:
	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	.L707
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L855
.L707:
	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
.L705:
	mov	rax, QWORD PTR -1120[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L708
	mov	eax, DWORD PTR -1328[rbp]
	mov	DWORD PTR -1332[rbp], eax
	jmp	.L709
.L708:
	mov	DWORD PTR -1332[rbp], 0
	mov	DWORD PTR -1348[rbp], 0
	jmp	.L710
.L712:
	mov	eax, DWORD PTR -1348[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -1176[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, 10
	jbe	.L711
	mov	eax, DWORD PTR -1348[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -1176[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	cmp	al, -1
	je	.L711
	add	DWORD PTR -1332[rbp], 1
.L711:
	add	DWORD PTR -1348[rbp], 1
.L710:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -1348[rbp], eax
	jl	.L712
.L709:
	mov	rax, QWORD PTR -1120[rbp]
	mov	edx, DWORD PTR -1332[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	.L713
	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	.L714
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L855
.L713:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 2112[rax]
	test	eax, eax
	je	.L715
	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	.L716
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L855
.L716:
	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	.L717
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L855
.L717:
	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	.L715
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L855
.L715:
	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 -1216[rbp], eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 16[rax]
	cmp	DWORD PTR -1216[rbp], eax
	jbe	.L714
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR -1216[rbp]
	mov	DWORD PTR 16[rax], edx
.L714:
	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	.L718
	mov	rax, QWORD PTR -1120[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L719
	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
.L719:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L718:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 2112[rax]
	test	eax, eax
	je	.L720
	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	.L721
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L855
.L721:
	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	.L722
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L855
.L722:
	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
.L720:
	mov	rax, QWORD PTR -1120[rbp]
	movzx	eax, BYTE PTR 27[rax]
	test	al, al
	je	.L723
	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
.L723:
	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	.L724
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L724:
	mov	rax, QWORD PTR -1120[rbp]
	movzx	eax, BYTE PTR 25[rax]
	test	al, al
	je	.L725
	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	.L726
	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	edx, eax
	mov	rax, QWORD PTR -1120[rbp]
	mov	DWORD PTR 28[rax], edx
	jmp	.L727
.L726:
	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
.L727:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 28[rax]
	test	eax, eax
	jne	.L728
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L728:
	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	.L729
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L855
.L729:
	mov	DWORD PTR -1348[rbp], 0
	jmp	.L730
.L732:
	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	.L731
	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	.L855
.L731:
	mov	eax, DWORD PTR -1348[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 -1348[rbp], 1
.L730:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 28[rax]
	cmp	DWORD PTR -1348[rbp], eax
	jl	.L732
	mov	rax, QWORD PTR -1120[rbp]
	movzx	eax, BYTE PTR 25[rax]
	cmp	al, 1
	jne	.L733
	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 -1316[rbp], xmm0
	cmp	DWORD PTR -1208[rbp], 0
	je	.L734
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 2112[rax]
	test	eax, eax
	je	.L857
	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	.L737
.L734:
	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
.L737:
	mov	rax, QWORD PTR -1120[rbp]
	mov	rax, QWORD PTR 32[rax]
	test	rax, rax
	jne	.L738
	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	.L855
.L738:
	cmp	DWORD PTR -1208[rbp], 0
	je	.L739
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 2112[rax]
	jmp	.L740
.L739:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 4[rax]
.L740:
	mov	DWORD PTR -1204[rbp], eax
	mov	DWORD PTR -1348[rbp], 0
	jmp	.L741
.L751:
	cmp	DWORD PTR -1208[rbp], 0
	je	.L742
	mov	rax, QWORD PTR -1120[rbp]
	mov	rdx, QWORD PTR 2104[rax]
	mov	eax, DWORD PTR -1348[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	eax, DWORD PTR [rax]
	jmp	.L743
.L742:
	mov	eax, DWORD PTR -1348[rbp]
.L743:
	mov	DWORD PTR -1200[rbp], eax
	mov	DWORD PTR -1312[rbp], 1
	mov	DWORD PTR -1344[rbp], 0
	jmp	.L744
.L750:
	mov	eax, DWORD PTR -1200[rbp]
	mov	edx, 0
	div	DWORD PTR -1312[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 -1316[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 -1348[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -1344[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	.L745
	movss	xmm0, DWORD PTR -1192[rbp]
	movss	DWORD PTR -1316[rbp], xmm0
.L745:
	mov	eax, DWORD PTR -1344[rbp]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	jge	.L746
	mov	rax, QWORD PTR -1120[rbp]
	mov	edx, DWORD PTR 28[rax]
	mov	ecx, 0
	mov	eax, edx
	mul	DWORD PTR -1312[rbp]
	jno	.L747
	mov	ecx, 1
.L747:
	mov	eax, ecx
	test	eax, eax
	je	.L749
	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	.L855
.L749:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 28[rax]
	mov	edx, DWORD PTR -1312[rbp]
	imul	eax, edx
	mov	DWORD PTR -1312[rbp], eax
.L746:
	add	DWORD PTR -1344[rbp], 1
.L744:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -1344[rbp], eax
	jl	.L750
	add	DWORD PTR -1348[rbp], 1
.L741:
	mov	eax, DWORD PTR -1348[rbp]
	cmp	eax, DWORD PTR -1204[rbp]
	jl	.L751
	mov	rax, QWORD PTR -1120[rbp]
	mov	BYTE PTR 25[rax], 2
	jmp	.L736
.L733:
	pxor	xmm0, xmm0
	movss	DWORD PTR -1308[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	.L752
	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	.L855
.L752:
	mov	DWORD PTR -1348[rbp], 0
	jmp	.L753
.L755:
	mov	eax, DWORD PTR -1348[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 -1308[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 -1348[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	.L754
	movss	xmm0, DWORD PTR -1212[rbp]
	movss	DWORD PTR -1308[rbp], xmm0
.L754:
	add	DWORD PTR -1348[rbp], 1
.L753:
	mov	rax, QWORD PTR -1120[rbp]
	mov	eax, DWORD PTR 28[rax]
	cmp	DWORD PTR -1348[rbp], eax
	jl	.L755
	jmp	.L736
.L857:
	nop
.L736:
	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
.L725:
	add	DWORD PTR -1352[rbp], 1
.L684:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 152[rax]
	cmp	DWORD PTR -1352[rbp], eax
	jl	.L756
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 6
	mov	rdi, rax
	call	get_bits
	add	eax, 1
	mov	BYTE PTR -1363[rbp], al
	mov	DWORD PTR -1352[rbp], 0
	jmp	.L757
.L759:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 16
	mov	rdi, rax
	call	get_bits
	mov	DWORD PTR -1236[rbp], eax
	cmp	DWORD PTR -1236[rbp], 0
	je	.L758
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L758:
	add	DWORD PTR -1352[rbp], 1
.L757:
	movzx	eax, BYTE PTR -1363[rbp]
	cmp	DWORD PTR -1352[rbp], eax
	jl	.L759
	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 168[rax], edx
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 168[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 304[rdx], rax
	mov	rax, QWORD PTR -1384[rbp]
	mov	rax, QWORD PTR 304[rax]
	test	rax, rax
	jne	.L760
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L855
.L760:
	mov	DWORD PTR -1352[rbp], 0
	jmp	.L761
.L787:
	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 -1352[rbp]
	movsx	rdx, edx
	add	rdx, 80
	mov	WORD PTR 12[rax+rdx*2], cx
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR -1352[rbp]
	movsx	rdx, edx
	add	rdx, 80
	movzx	eax, WORD PTR 12[rax+rdx*2]
	cmp	ax, 1
	jbe	.L762
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L762:
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR -1352[rbp]
	movsx	rdx, edx
	add	rdx, 80
	movzx	eax, WORD PTR 12[rax+rdx*2]
	test	ax, ax
	jne	.L763
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdx, QWORD PTR 304[rax]
	mov	eax, DWORD PTR -1352[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 -1348[rbp], 0
	jmp	.L764
.L765:
	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 -1348[rbp]
	cdqe
	mov	BYTE PTR 9[rdx+rax], cl
	add	DWORD PTR -1348[rbp], 1
.L764:
	mov	rax, QWORD PTR -1128[rbp]
	movzx	eax, BYTE PTR 8[rax]
	movzx	eax, al
	cmp	DWORD PTR -1348[rbp], eax
	jl	.L765
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 4
	mov	rdi, rax
	call	error
	jmp	.L855
.L763:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdx, QWORD PTR 304[rax]
	mov	eax, DWORD PTR -1352[rbp]
	cdqe
	imul	rax, rax, 1596
	add	rax, rdx
	mov	QWORD PTR -1136[rbp], rax
	mov	DWORD PTR -1304[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 -1348[rbp], 0
	jmp	.L766
.L768:
	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 -1348[rbp]
	cdqe
	mov	BYTE PTR 1[rdx+rax], cl
	mov	rdx, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR -1348[rbp]
	cdqe
	movzx	eax, BYTE PTR 1[rdx+rax]
	movzx	eax, al
	cmp	DWORD PTR -1304[rbp], eax
	jge	.L767
	mov	rdx, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR -1348[rbp]
	cdqe
	movzx	eax, BYTE PTR 1[rdx+rax]
	movzx	eax, al
	mov	DWORD PTR -1304[rbp], eax
.L767:
	add	DWORD PTR -1348[rbp], 1
.L766:
	mov	rax, QWORD PTR -1136[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cmp	DWORD PTR -1348[rbp], eax
	jl	.L768
	mov	DWORD PTR -1348[rbp], 0
	jmp	.L769
.L775:
	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 -1348[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 -1348[rbp]
	cdqe
	mov	BYTE PTR 49[rdx+rax], cl
	mov	rdx, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR -1348[rbp]
	cdqe
	movzx	eax, BYTE PTR 49[rdx+rax]
	test	al, al
	je	.L770
	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 -1348[rbp]
	cdqe
	mov	BYTE PTR 65[rdx+rax], cl
	mov	rdx, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR -1348[rbp]
	cdqe
	movzx	eax, BYTE PTR 65[rdx+rax]
	movzx	edx, al
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 152[rax]
	cmp	edx, eax
	jl	.L770
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L770:
	mov	DWORD PTR -1344[rbp], 0
	jmp	.L772
.L774:
	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 -1344[rbp]
	movsx	rsi, edx
	mov	edx, DWORD PTR -1348[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 -1344[rbp]
	movsx	rcx, edx
	mov	edx, DWORD PTR -1348[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 152[rax]
	cmp	edx, eax
	jl	.L773
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L773:
	add	DWORD PTR -1344[rbp], 1
.L772:
	mov	rdx, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR -1348[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 -1344[rbp], eax
	jl	.L774
	add	DWORD PTR -1348[rbp], 1
.L769:
	mov	eax, DWORD PTR -1348[rbp]
	cmp	eax, DWORD PTR -1304[rbp]
	jle	.L775
	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 -1348[rbp], 0
	jmp	.L776
.L779:
	mov	rdx, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR -1348[rbp]
	cdqe
	movzx	eax, BYTE PTR 1[rdx+rax]
	movzx	eax, al
	mov	DWORD PTR -1240[rbp], eax
	mov	DWORD PTR -1344[rbp], 0
	jmp	.L777
.L778:
	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 -1344[rbp], 1
.L777:
	mov	rdx, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR -1240[rbp]
	cdqe
	movzx	eax, BYTE PTR 33[rdx+rax]
	movzx	eax, al
	cmp	DWORD PTR -1344[rbp], eax
	jl	.L778
	add	DWORD PTR -1348[rbp], 1
.L776:
	mov	rax, QWORD PTR -1136[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	cmp	DWORD PTR -1348[rbp], eax
	jl	.L779
	mov	DWORD PTR -1348[rbp], 0
	jmp	.L780
.L781:
	mov	rax, QWORD PTR -1136[rbp]
	mov	edx, DWORD PTR -1348[rbp]
	movsx	rdx, edx
	add	rdx, 168
	movzx	edx, WORD PTR 2[rax+rdx*2]
	mov	eax, DWORD PTR -1348[rbp]
	cdqe
	mov	WORD PTR -1104[rbp+rax*4], dx
	mov	eax, DWORD PTR -1348[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -1348[rbp]
	cdqe
	mov	WORD PTR -1102[rbp+rax*4], dx
	add	DWORD PTR -1348[rbp], 1
.L780:
	mov	rax, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR 1592[rax]
	cmp	DWORD PTR -1348[rbp], eax
	jl	.L781
	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 -1348[rbp], 0
	jmp	.L782
.L783:
	mov	eax, DWORD PTR -1348[rbp]
	cdqe
	movzx	eax, WORD PTR -1102[rbp+rax*4]
	mov	ecx, eax
	mov	rdx, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR -1348[rbp]
	cdqe
	mov	BYTE PTR 838[rdx+rax], cl
	add	DWORD PTR -1348[rbp], 1
.L782:
	mov	rax, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR 1592[rax]
	cmp	DWORD PTR -1348[rbp], eax
	jl	.L783
	mov	DWORD PTR -1348[rbp], 2
	jmp	.L784
.L785:
	mov	rax, QWORD PTR -1136[rbp]
	lea	rdi, 338[rax]
	lea	rcx, -1356[rbp]
	lea	rdx, -1360[rbp]
	mov	eax, DWORD PTR -1348[rbp]
	mov	esi, eax
	call	neighbors
	mov	eax, DWORD PTR -1360[rbp]
	mov	ecx, eax
	mov	rax, QWORD PTR -1136[rbp]
	mov	edx, DWORD PTR -1348[rbp]
	movsx	rdx, edx
	add	rdx, 544
	mov	BYTE PTR [rax+rdx*2], cl
	mov	eax, DWORD PTR -1356[rbp]
	mov	ecx, eax
	mov	rax, QWORD PTR -1136[rbp]
	mov	edx, DWORD PTR -1348[rbp]
	movsx	rdx, edx
	mov	BYTE PTR 1089[rax+rdx*2], cl
	add	DWORD PTR -1348[rbp], 1
.L784:
	mov	rax, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR 1592[rax]
	cmp	DWORD PTR -1348[rbp], eax
	jl	.L785
	mov	rax, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR 1592[rax]
	cmp	DWORD PTR -1336[rbp], eax
	jge	.L786
	mov	rax, QWORD PTR -1136[rbp]
	mov	eax, DWORD PTR 1592[rax]
	mov	DWORD PTR -1336[rbp], eax
.L786:
	add	DWORD PTR -1352[rbp], 1
.L761:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 168[rax]
	cmp	DWORD PTR -1352[rbp], eax
	jl	.L787
	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 312[rax], edx
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 312[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 448[rdx], rax
	mov	rax, QWORD PTR -1384[rbp]
	mov	rax, QWORD PTR 448[rax]
	test	rax, rax
	jne	.L788
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L855
.L788:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 312[rax]
	cdqe
	sal	rax, 5
	mov	rdx, rax
	mov	rax, QWORD PTR -1384[rbp]
	mov	rax, QWORD PTR 448[rax]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	DWORD PTR -1352[rbp], 0
	jmp	.L789
.L810:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdx, QWORD PTR 448[rax]
	mov	eax, DWORD PTR -1352[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 -1352[rbp]
	movsx	rdx, edx
	add	rdx, 152
	mov	WORD PTR 12[rax+rdx*2], cx
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR -1352[rbp]
	movsx	rdx, edx
	add	rdx, 152
	movzx	eax, WORD PTR 12[rax+rdx*2]
	cmp	ax, 2
	jbe	.L790
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L790:
	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	.L792
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L792:
	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 152[rax]
	cmp	edx, eax
	jl	.L793
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L793:
	mov	DWORD PTR -1348[rbp], 0
	jmp	.L794
.L796:
	mov	BYTE PTR -1364[rbp], 0
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	get_bits
	mov	BYTE PTR -1362[rbp], al
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	get_bits
	test	eax, eax
	je	.L795
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 5
	mov	rdi, rax
	call	get_bits
	mov	BYTE PTR -1364[rbp], al
.L795:
	movzx	eax, BYTE PTR -1364[rbp]
	lea	edx, 0[0+rax*8]
	movzx	eax, BYTE PTR -1362[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -1348[rbp]
	cdqe
	mov	BYTE PTR -96[rbp+rax], dl
	add	DWORD PTR -1348[rbp], 1
.L794:
	mov	rax, QWORD PTR -1144[rbp]
	movzx	eax, BYTE PTR 12[rax]
	movzx	eax, al
	cmp	DWORD PTR -1348[rbp], eax
	jl	.L796
	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	.L797
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L855
.L797:
	mov	DWORD PTR -1348[rbp], 0
	jmp	.L798
.L803:
	mov	DWORD PTR -1344[rbp], 0
	jmp	.L799
.L802:
	mov	eax, DWORD PTR -1348[rbp]
	cdqe
	movzx	eax, BYTE PTR -96[rbp+rax]
	movzx	edx, al
	mov	eax, DWORD PTR -1344[rbp]
	mov	ecx, eax
	sar	edx, cl
	mov	eax, edx
	and	eax, 1
	test	eax, eax
	je	.L800
	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 -1348[rbp]
	movsx	rdx, edx
	sal	rdx, 4
	add	rdx, rcx
	mov	ecx, eax
	mov	eax, DWORD PTR -1344[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 -1348[rbp]
	cdqe
	sal	rax, 4
	add	rdx, rax
	mov	eax, DWORD PTR -1344[rbp]
	cdqe
	movzx	eax, WORD PTR [rdx+rax*2]
	movsx	edx, ax
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 152[rax]
	cmp	edx, eax
	jl	.L801
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L800:
	mov	rax, QWORD PTR -1144[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -1348[rbp]
	cdqe
	sal	rax, 4
	add	rdx, rax
	mov	eax, DWORD PTR -1344[rbp]
	cdqe
	mov	WORD PTR [rdx+rax*2], -1
.L801:
	add	DWORD PTR -1344[rbp], 1
.L799:
	cmp	DWORD PTR -1344[rbp], 7
	jle	.L802
	add	DWORD PTR -1348[rbp], 1
.L798:
	mov	rax, QWORD PTR -1144[rbp]
	movzx	eax, BYTE PTR 12[rax]
	movzx	eax, al
	cmp	DWORD PTR -1348[rbp], eax
	jl	.L803
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdx, QWORD PTR 160[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	.L804
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L855
.L804:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdx, QWORD PTR 160[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 -1348[rbp], 0
	jmp	.L805
.L809:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdx, QWORD PTR 160[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 -1244[rbp], eax
	mov	eax, DWORD PTR -1348[rbp]
	mov	DWORD PTR -1300[rbp], eax
	mov	rax, QWORD PTR -1144[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -1348[rbp]
	cdqe
	sal	rax, 3
	lea	rbx, [rdx+rax]
	mov	edx, DWORD PTR -1244[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 -1348[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	jne	.L806
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L855
.L806:
	mov	eax, DWORD PTR -1244[rbp]
	sub	eax, 1
	mov	DWORD PTR -1344[rbp], eax
	jmp	.L807
.L808:
	mov	rax, QWORD PTR -1144[rbp]
	movzx	eax, BYTE PTR 12[rax]
	movzx	ecx, al
	mov	eax, DWORD PTR -1300[rbp]
	cdq
	idiv	ecx
	mov	ecx, edx
	mov	rax, QWORD PTR -1144[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -1348[rbp]
	cdqe
	sal	rax, 3
	add	rax, rdx
	mov	rdx, QWORD PTR [rax]
	mov	eax, DWORD PTR -1344[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 -1300[rbp]
	cdq
	idiv	ebx
	mov	DWORD PTR -1300[rbp], eax
	sub	DWORD PTR -1344[rbp], 1
.L807:
	cmp	DWORD PTR -1344[rbp], 0
	jns	.L808
	add	DWORD PTR -1348[rbp], 1
.L805:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdx, QWORD PTR 160[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 -1348[rbp], eax
	jl	.L809
	add	DWORD PTR -1352[rbp], 1
.L789:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 312[rax]
	cmp	DWORD PTR -1352[rbp], eax
	jl	.L810
	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 456[rax], edx
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 456[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 464[rdx], rax
	mov	rax, QWORD PTR -1384[rbp]
	mov	rax, QWORD PTR 464[rax]
	test	rax, rax
	jne	.L811
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L855
.L811:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 456[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 464[rax]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	DWORD PTR -1352[rbp], 0
	jmp	.L812
.L837:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rcx, QWORD PTR 464[rax]
	mov	eax, DWORD PTR -1352[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 -1248[rbp], eax
	cmp	DWORD PTR -1248[rbp], 0
	je	.L813
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L813:
	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	.L814
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L855
.L814:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	get_bits
	test	eax, eax
	je	.L815
	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	.L816
.L815:
	mov	rax, QWORD PTR -1152[rbp]
	mov	BYTE PTR 16[rax], 1
.L816:
	mov	rax, QWORD PTR -1152[rbp]
	movzx	eax, BYTE PTR 16[rax]
	movzx	eax, al
	cmp	DWORD PTR -1340[rbp], eax
	jge	.L817
	mov	rax, QWORD PTR -1152[rbp]
	movzx	eax, BYTE PTR 16[rax]
	movzx	eax, al
	mov	DWORD PTR -1340[rbp], eax
.L817:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	get_bits
	test	eax, eax
	je	.L818
	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	DWORD PTR -1344[rbp], 0
	jmp	.L819
.L823:
	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 -1344[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 -1344[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 -1344[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	.L820
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L820:
	mov	rax, QWORD PTR -1152[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -1344[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	.L821
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L821:
	mov	rax, QWORD PTR -1152[rbp]
	mov	rcx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -1344[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 -1344[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	.L822
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L822:
	add	DWORD PTR -1344[rbp], 1
.L819:
	mov	rax, QWORD PTR -1152[rbp]
	movzx	eax, WORD PTR [rax]
	movzx	eax, ax
	cmp	DWORD PTR -1344[rbp], eax
	jl	.L823
	jmp	.L824
.L818:
	mov	rax, QWORD PTR -1152[rbp]
	mov	WORD PTR [rax], 0
.L824:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	get_bits
	test	eax, eax
	je	.L825
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L825:
	mov	rax, QWORD PTR -1152[rbp]
	movzx	eax, BYTE PTR 16[rax]
	cmp	al, 1
	jbe	.L826
	mov	DWORD PTR -1348[rbp], 0
	jmp	.L827
.L829:
	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 -1348[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 -1348[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	.L828
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L828:
	add	DWORD PTR -1348[rbp], 1
.L827:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -1348[rbp], eax
	jl	.L829
	jmp	.L830
.L826:
	mov	DWORD PTR -1348[rbp], 0
	jmp	.L831
.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
	mov	BYTE PTR 2[rax], 0
	add	DWORD PTR -1348[rbp], 1
.L831:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -1348[rbp], eax
	jl	.L832
.L830:
	mov	DWORD PTR -1348[rbp], 0
	jmp	.L833
.L836:
	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 -1348[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 -1348[rbp]
	cdqe
	mov	BYTE PTR 32[rdx+rax], cl
	mov	rdx, QWORD PTR -1152[rbp]
	mov	eax, DWORD PTR -1348[rbp]
	cdqe
	movzx	eax, BYTE PTR 17[rdx+rax]
	movzx	edx, al
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 168[rax]
	cmp	edx, eax
	jl	.L834
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L834:
	mov	rdx, QWORD PTR -1152[rbp]
	mov	eax, DWORD PTR -1348[rbp]
	cdqe
	movzx	eax, BYTE PTR 32[rdx+rax]
	movzx	edx, al
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 312[rax]
	cmp	edx, eax
	jl	.L835
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L835:
	add	DWORD PTR -1348[rbp], 1
.L833:
	mov	rax, QWORD PTR -1152[rbp]
	movzx	eax, BYTE PTR 16[rax]
	movzx	eax, al
	cmp	DWORD PTR -1348[rbp], eax
	jl	.L836
	add	DWORD PTR -1352[rbp], 1
.L812:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 456[rax]
	cmp	DWORD PTR -1352[rbp], eax
	jl	.L837
	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 472[rax], edx
	mov	DWORD PTR -1352[rbp], 0
	jmp	.L838
.L842:
	mov	rax, QWORD PTR -1384[rbp]
	lea	rcx, 476[rax]
	mov	eax, DWORD PTR -1352[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	.L839
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L839:
	mov	rax, QWORD PTR -1160[rbp]
	movzx	eax, WORD PTR 4[rax]
	test	ax, ax
	je	.L840
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L840:
	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 456[rax]
	cmp	edx, eax
	jl	.L841
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 20
	mov	rdi, rax
	call	error
	jmp	.L855
.L841:
	add	DWORD PTR -1352[rbp], 1
.L838:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 472[rax]
	cmp	DWORD PTR -1352[rbp], eax
	jl	.L842
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	flush_packet
	mov	rax, QWORD PTR -1384[rbp]
	mov	DWORD PTR 1248[rax], 0
	mov	DWORD PTR -1352[rbp], 0
	jmp	.L843
.L846:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 148[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 -1352[rbp]
	movsx	rcx, ecx
	add	rcx, 108
	mov	QWORD PTR [rdx+rcx*8], rax
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 148[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 -1352[rbp]
	movsx	rcx, ecx
	add	rcx, 140
	mov	QWORD PTR [rdx+rcx*8], rax
	mov	eax, DWORD PTR -1336[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 -1352[rbp]
	movsx	rcx, ecx
	add	rcx, 156
	mov	QWORD PTR 8[rdx+rcx*8], rax
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR -1352[rbp]
	movsx	rdx, edx
	add	rdx, 108
	mov	rax, QWORD PTR [rax+rdx*8]
	test	rax, rax
	je	.L844
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR -1352[rbp]
	movsx	rdx, edx
	add	rdx, 140
	mov	rax, QWORD PTR [rax+rdx*8]
	test	rax, rax
	je	.L844
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR -1352[rbp]
	movsx	rdx, edx
	add	rdx, 156
	mov	rax, QWORD PTR 8[rax+rdx*8]
	test	rax, rax
	jne	.L845
.L844:
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L855
.L845:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 148[rax]
	cdqe
	lea	rdx, 0[0+rax*4]
	mov	rax, QWORD PTR -1384[rbp]
	mov	ecx, DWORD PTR -1352[rbp]
	movsx	rcx, ecx
	add	rcx, 108
	mov	rax, QWORD PTR [rax+rcx*8]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	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	.L846
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR 144[rax]
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	init_blocksize
	test	eax, eax
	jne	.L847
	mov	eax, 0
	jmp	.L855
.L847:
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR 148[rax]
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	init_blocksize
	test	eax, eax
	jne	.L848
	mov	eax, 0
	jmp	.L855
.L848:
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR 144[rax]
	mov	rax, QWORD PTR -1384[rbp]
	mov	DWORD PTR 136[rax], edx
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR 148[rax]
	mov	rax, QWORD PTR -1384[rbp]
	mov	DWORD PTR 140[rax], edx
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 148[rax]
	cdqe
	sal	rax, 2
	shr	rax
	mov	DWORD PTR -1276[rbp], eax
	mov	DWORD PTR -1292[rbp], 0
	mov	DWORD PTR -1296[rbp], 0
	jmp	.L849
.L851:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdx, QWORD PTR 448[rax]
	mov	eax, DWORD PTR -1296[rbp]
	cdqe
	sal	rax, 5
	add	rax, rdx
	mov	QWORD PTR -1168[rbp], rax
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 148[rax]
	mov	edx, eax
	shr	edx, 31
	add	eax, edx
	sar	eax
	mov	DWORD PTR -1268[rbp], eax
	mov	rax, QWORD PTR -1168[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	DWORD PTR -1268[rbp], eax
	cmovbe	eax, DWORD PTR -1268[rbp]
	mov	DWORD PTR -1264[rbp], eax
	mov	rax, QWORD PTR -1168[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -1268[rbp], eax
	cmovbe	eax, DWORD PTR -1268[rbp]
	mov	DWORD PTR -1260[rbp], eax
	mov	eax, DWORD PTR -1260[rbp]
	sub	eax, DWORD PTR -1264[rbp]
	mov	DWORD PTR -1256[rbp], eax
	mov	eax, DWORD PTR -1256[rbp]
	mov	rdx, QWORD PTR -1168[rbp]
	mov	ebx, DWORD PTR 8[rdx]
	mov	edx, 0
	div	ebx
	mov	DWORD PTR -1252[rbp], eax
	mov	eax, DWORD PTR -1252[rbp]
	cmp	eax, DWORD PTR -1292[rbp]
	jle	.L850
	mov	eax, DWORD PTR -1252[rbp]
	mov	DWORD PTR -1292[rbp], eax
.L850:
	add	DWORD PTR -1296[rbp], 1
.L849:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 312[rax]
	cmp	DWORD PTR -1296[rbp], eax
	jl	.L851
	mov	eax, DWORD PTR -1292[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 -1272[rbp], eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR -1272[rbp]
	mov	DWORD PTR 12[rax], edx
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 12[rax]
	cmp	DWORD PTR -1276[rbp], eax
	jbe	.L852
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR -1276[rbp]
	mov	DWORD PTR 12[rax], edx
.L852:
	mov	rax, QWORD PTR -1384[rbp]
	mov	BYTE PTR 1741[rax], 1
	mov	rax, QWORD PTR -1384[rbp]
	mov	rax, QWORD PTR 104[rax]
	test	rax, rax
	je	.L853
	mov	rax, QWORD PTR -1384[rbp]
	mov	edx, DWORD PTR 124[rax]
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 112[rax]
	cmp	edx, eax
	je	.L854
	lea	rcx, __PRETTY_FUNCTION__.5[rip]
	mov	edx, 4110
	lea	rsi, .LC1[rip]
	lea	rdi, .LC30[rip]
	call	__assert_fail@PLT
.L854:
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 120[rax]
	movsx	rdx, eax
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 12[rax]
	mov	eax, eax
	add	rax, rdx
	lea	rdx, 1880[rax]
	mov	rax, QWORD PTR -1384[rbp]
	mov	eax, DWORD PTR 124[rax]
	mov	eax, eax
	cmp	rdx, rax
	jbe	.L853
	mov	rax, QWORD PTR -1384[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	error
	jmp	.L855
.L853:
	mov	rax, QWORD PTR -1384[rbp]
	mov	rdi, rax
	call	stb_vorbis_get_file_offset
	mov	rdx, QWORD PTR -1384[rbp]
	mov	DWORD PTR 72[rdx], eax
	mov	eax, 1
.L855:
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L856
	call	__stack_chk_fail@PLT
.L856:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE71:
	.size	start_decoder, .-start_decoder
	.type	vorbis_deinit, @function
vorbis_deinit:
.LFB72:
	.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	rax, QWORD PTR 448[rax]
	test	rax, rax
	je	.L859
	mov	DWORD PTR -24[rbp], 0
	jmp	.L860
.L864:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 448[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	.L861
	mov	DWORD PTR -20[rbp], 0
	jmp	.L862
.L863:
	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
.L862:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 160[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	.L863
	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
.L861:
	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
.L860:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 312[rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L864
.L859:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 160[rax]
	test	rax, rax
	je	.L865
	mov	DWORD PTR -24[rbp], 0
	jmp	.L866
.L869:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 160[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	.L867
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 2104[rax]
	lea	rdx, -4[rax]
	jmp	.L868
.L867:
	mov	edx, 0
.L868:
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	setup_free
	add	DWORD PTR -24[rbp], 1
.L866:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 152[rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L869
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 160[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	setup_free
.L865:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 304[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 448[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 464[rax]
	test	rax, rax
	je	.L870
	mov	DWORD PTR -24[rbp], 0
	jmp	.L871
.L872:
	mov	rax, QWORD PTR -40[rbp]
	mov	rcx, QWORD PTR 464[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
.L871:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 456[rax]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L872
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR 464[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	setup_free
.L870:
	mov	DWORD PTR -24[rbp], 0
	jmp	.L873
.L875:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -24[rbp]
	movsx	rdx, edx
	add	rdx, 108
	mov	rdx, QWORD PTR [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, 140
	mov	rdx, QWORD PTR [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, 156
	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
.L873:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -24[rbp], eax
	jge	.L874
	cmp	DWORD PTR -24[rbp], 15
	jle	.L875
.L874:
	mov	DWORD PTR -24[rbp], 0
	jmp	.L876
.L877:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -24[rbp]
	movsx	rdx, edx
	add	rdx, 174
	mov	rdx, QWORD PTR [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, 176
	mov	rdx, QWORD PTR [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 [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 [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 [rax+rdx*8]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	setup_free
	add	DWORD PTR -24[rbp], 1
.L876:
	cmp	DWORD PTR -24[rbp], 1
	jle	.L877
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 36[rax]
	test	eax, eax
	je	.L879
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdi, rax
	call	fclose@PLT
.L879:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE72:
	.size	vorbis_deinit, .-vorbis_deinit
	.globl	stb_vorbis_close
	.type	stb_vorbis_close, @function
stb_vorbis_close:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	cmp	QWORD PTR -8[rbp], 0
	je	.L883
	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	.L880
.L883:
	nop
.L880:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE73:
	.size	stb_vorbis_close, .-stb_vorbis_close
	.type	vorbis_init, @function
vorbis_init:
.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
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, 1880
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	cmp	QWORD PTR -16[rbp], 0
	je	.L885
	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 104[rcx], rax
	mov	QWORD PTR 112[rcx], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 112[rax]
	add	eax, 3
	and	eax, -4
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 112[rax], edx
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR 112[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 124[rax], edx
.L885:
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 128[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 132[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 40[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 160[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 1784[rax], -1
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 36[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 24[rax], 0
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE74:
	.size	vorbis_init, .-vorbis_init
	.globl	stb_vorbis_get_sample_offset
	.type	stb_vorbis_get_sample_offset, @function
stb_vorbis_get_sample_offset:
.LFB75:
	.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 1388[rax]
	test	eax, eax
	je	.L887
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 1384[rax]
	jmp	.L888
.L887:
	mov	eax, -1
.L888:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE75:
	.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:
.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 -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 148[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
.LFE76:
	.size	stb_vorbis_get_info, .-stb_vorbis_get_info
	.globl	stb_vorbis_get_error
	.type	stb_vorbis_get_error, @function
stb_vorbis_get_error:
.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 -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 132[rax]
	mov	DWORD PTR -4[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 132[rax], 0
	mov	eax, DWORD PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE77:
	.size	stb_vorbis_get_error, .-stb_vorbis_get_error
	.type	vorbis_alloc, @function
vorbis_alloc:
.LFB78:
	.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, 1880
	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
.LFE78:
	.size	vorbis_alloc, .-vorbis_alloc
	.globl	stb_vorbis_flush_pushdata
	.type	stb_vorbis_flush_pushdata, @function
stb_vorbis_flush_pushdata:
.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 -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 1248[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 1784[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 1776[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 1388[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 1741[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 1780[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 1868[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 1872[rax], 0
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE79:
	.size	stb_vorbis_flush_pushdata, .-stb_vorbis_flush_pushdata
	.type	vorbis_search_for_page_pushdata, @function
vorbis_search_for_page_pushdata:
.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, 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	.L897
.L898:
	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, 1800
	mov	DWORD PTR [rax], 0
	add	DWORD PTR -36[rbp], 1
.L897:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1784[rax]
	cmp	DWORD PTR -36[rbp], eax
	jl	.L898
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1784[rax]
	cmp	eax, 3
	jg	.L899
	cmp	DWORD PTR -68[rbp], 3
	jg	.L900
	mov	eax, 0
	jmp	.L901
.L900:
	sub	DWORD PTR -68[rbp], 3
	mov	DWORD PTR -36[rbp], 0
	jmp	.L902
.L914:
	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	.L903
	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	.L903
	mov	eax, DWORD PTR -36[rbp]
	add	eax, 26
	cmp	DWORD PTR -68[rbp], eax
	jle	.L904
	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	.L905
.L904:
	mov	eax, DWORD PTR -36[rbp]
	mov	DWORD PTR -68[rbp], eax
	jmp	.L899
.L905:
	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	.L906
.L907:
	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
.L906:
	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	.L907
	mov	DWORD PTR -24[rbp], 0
	mov	DWORD PTR -32[rbp], 0
	jmp	.L908
.L909:
	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
.L908:
	cmp	DWORD PTR -32[rbp], 21
	jle	.L909
	jmp	.L910
.L911:
	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
.L910:
	cmp	DWORD PTR -32[rbp], 25
	jle	.L911
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1784[rax]
	lea	ecx, 1[rax]
	mov	rdx, QWORD PTR -56[rbp]
	mov	DWORD PTR 1784[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, 1792
	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, 1796[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, 1788
	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	.L912
	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, 1804
	mov	DWORD PTR [rax], -1
	jmp	.L913
.L912:
	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, 1804
	mov	DWORD PTR [rax], ecx
.L913:
	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, 1800
	mov	DWORD PTR [rax], ecx
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1784[rax]
	cmp	eax, 4
	je	.L922
.L903:
	add	DWORD PTR -36[rbp], 1
.L902:
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -68[rbp]
	jl	.L914
	jmp	.L899
.L922:
	nop
.L899:
	mov	DWORD PTR -36[rbp], 0
	jmp	.L915
.L921:
	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, 1800
	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, 1792
	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	.L916
	mov	eax, DWORD PTR -68[rbp]
	sub	eax, DWORD PTR -4[rbp]
	mov	DWORD PTR -12[rbp], eax
.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, 1796
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -20[rbp], eax
	mov	DWORD PTR -16[rbp], 0
	jmp	.L917
.L918:
	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
.L917:
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, DWORD PTR -12[rbp]
	jl	.L918
	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, 1792
	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, 1792
	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, 1796[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, 1792
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L919
	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, 1796
	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, 1788
	mov	eax, DWORD PTR [rax]
	cmp	ecx, eax
	jne	.L920
	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 1784[rax], -1
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 1248[rax], 0
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 1744[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, 1804
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 1384[rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1384[rax]
	cmp	eax, -1
	setne	al
	movzx	edx, al
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 1388[rax], edx
	mov	eax, DWORD PTR -68[rbp]
	jmp	.L901
.L920:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1784[rax]
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 1784[rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, DWORD PTR 1784[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, 1776[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, 1776[rax]
	mov	rax, QWORD PTR 12[rsi]
	mov	rdx, QWORD PTR 20[rsi]
	mov	QWORD PTR 12[rcx], rax
	mov	QWORD PTR 20[rcx], rdx
	mov	eax, DWORD PTR 28[rsi]
	mov	DWORD PTR 28[rcx], eax
	jmp	.L915
.L919:
	add	DWORD PTR -36[rbp], 1
.L915:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1784[rax]
	cmp	DWORD PTR -36[rbp], eax
	jl	.L921
	mov	eax, DWORD PTR -68[rbp]
.L901:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE80:
	.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:
.LFB81:
	.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 68[rax]
	test	al, al
	jne	.L924
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	error
	jmp	.L940
.L924:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 1784[rax]
	test	eax, eax
	js	.L926
	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	.L940
.L926:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -48[rbp]
	mov	QWORD PTR 40[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 56[rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 132[rax], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	is_whole_packet_present
	test	eax, eax
	jne	.L927
	mov	rax, QWORD PTR -80[rbp]
	mov	DWORD PTR [rax], 0
	mov	eax, 0
	jmp	.L940
.L927:
	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	.L928
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 132[rax]
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 35
	jne	.L929
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 132[rax], 0
	jmp	.L930
.L932:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 128[rax]
	test	eax, eax
	jne	.L942
.L930:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	get8_packet
	cmp	eax, -1
	jne	.L932
	jmp	.L931
.L942:
	nop
.L931:
	mov	rax, QWORD PTR -80[rbp]
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 40[rax]
	sub	rax, QWORD PTR -48[rbp]
	jmp	.L940
.L929:
	cmp	DWORD PTR -12[rbp], 32
	jne	.L933
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 1248[rax]
	test	eax, eax
	jne	.L933
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 132[rax], 0
	jmp	.L934
.L936:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 128[rax]
	test	eax, eax
	jne	.L943
.L934:
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	get8_packet
	cmp	eax, -1
	jne	.L936
	jmp	.L935
.L943:
	nop
.L935:
	mov	rax, QWORD PTR -80[rbp]
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 40[rax]
	sub	rax, QWORD PTR -48[rbp]
	jmp	.L940
.L933:
	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 132[rax], edx
	mov	rax, QWORD PTR -80[rbp]
	mov	DWORD PTR [rax], 0
	mov	eax, 1
	jmp	.L940
.L928:
	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	.L937
.L938:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -16[rbp]
	movsx	rdx, edx
	add	rdx, 108
	mov	rdx, QWORD PTR [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, 124
	mov	QWORD PTR [rax+rdx*8], rcx
	add	DWORD PTR -16[rbp], 1
.L937:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -16[rbp], eax
	jl	.L938
	cmp	QWORD PTR -64[rbp], 0
	je	.L939
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
.L939:
	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, 992[rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 40[rax]
	sub	rax, QWORD PTR -48[rbp]
.L940:
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L941
	call	__stack_chk_fail@PLT
.L941:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE81:
	.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:
.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, 1952
	mov	QWORD PTR -1912[rbp], rdi
	mov	DWORD PTR -1916[rbp], esi
	mov	QWORD PTR -1928[rbp], rdx
	mov	QWORD PTR -1936[rbp], rcx
	mov	QWORD PTR -1944[rbp], r8
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rdx, QWORD PTR -1944[rbp]
	lea	rax, -1888[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	vorbis_init
	mov	rax, QWORD PTR -1912[rbp]
	mov	QWORD PTR -1848[rbp], rax
	mov	eax, DWORD PTR -1916[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -1912[rbp]
	add	rax, rdx
	mov	QWORD PTR -1832[rbp], rax
	mov	BYTE PTR -1820[rbp], 1
	lea	rax, -1888[rbp]
	mov	rdi, rax
	call	start_decoder
	test	eax, eax
	jne	.L945
	mov	eax, DWORD PTR -1760[rbp]
	test	eax, eax
	je	.L946
	mov	rax, QWORD PTR -1936[rbp]
	mov	DWORD PTR [rax], 1
	jmp	.L947
.L946:
	mov	eax, DWORD PTR -1756[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -1936[rbp]
	mov	DWORD PTR [rax], edx
.L947:
	mov	eax, 0
	jmp	.L950
.L945:
	lea	rax, -1888[rbp]
	mov	rdi, rax
	call	vorbis_alloc
	mov	QWORD PTR -1896[rbp], rax
	cmp	QWORD PTR -1896[rbp], 0
	je	.L949
	mov	rax, QWORD PTR -1896[rbp]
	mov	rdi, rax
	lea	rax, -1888[rbp]
	mov	edx, 235
	mov	rsi, rax
	mov	rcx, rdx
	rep movsq
	mov	rax, QWORD PTR -1896[rbp]
	mov	rax, QWORD PTR 40[rax]
	sub	rax, QWORD PTR -1912[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -1928[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -1936[rbp]
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -1896[rbp]
	jmp	.L950
.L949:
	lea	rax, -1888[rbp]
	mov	rdi, rax
	call	vorbis_deinit
	mov	eax, 0
.L950:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L951
	call	__stack_chk_fail@PLT
.L951:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE82:
	.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:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 68[rax]
	test	al, al
	je	.L953
	mov	eax, 0
	jmp	.L954
.L953:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 40[rax]
	test	rax, rax
	je	.L955
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rcx, QWORD PTR 48[rax]
	mov	rax, rdx
	sub	rax, rcx
	jmp	.L954
.L955:
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 24[rax]
	mov	rdi, rax
	call	ftell@PLT
	mov	ecx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR 32[rax]
	mov	eax, ecx
	sub	eax, edx
.L954:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE83:
	.size	stb_vorbis_get_file_offset, .-stb_vorbis_get_file_offset
	.type	vorbis_find_page, @function
vorbis_find_page:
.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, 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
.L987:
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 128[rax]
	test	eax, eax
	je	.L957
	mov	eax, 0
	jmp	.L958
.L957:
	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	.L987
	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 64[rax]
	cmp	edx, eax
	jbe	.L960
	mov	eax, 0
	jmp	.L958
.L960:
	mov	DWORD PTR -80[rbp], 1
	jmp	.L961
.L964:
	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	.L989
	add	DWORD PTR -80[rbp], 1
.L961:
	cmp	DWORD PTR -80[rbp], 3
	jle	.L964
	jmp	.L963
.L989:
	nop
.L963:
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 128[rax]
	test	eax, eax
	je	.L965
	mov	eax, 0
	jmp	.L958
.L965:
	cmp	DWORD PTR -80[rbp], 4
	jne	.L990
	mov	DWORD PTR -76[rbp], 0
	jmp	.L967
.L968:
	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
.L967:
	cmp	DWORD PTR -76[rbp], 3
	jbe	.L968
	jmp	.L969
.L970:
	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
.L969:
	cmp	DWORD PTR -76[rbp], 26
	jbe	.L970
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 128[rax]
	test	eax, eax
	je	.L971
	mov	eax, 0
	jmp	.L958
.L971:
	movzx	eax, BYTE PTR -44[rbp]
	test	al, al
	jne	.L991
	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	.L974
.L975:
	mov	eax, DWORD PTR -76[rbp]
	mov	BYTE PTR -48[rbp+rax], 0
	add	DWORD PTR -76[rbp], 1
.L974:
	cmp	DWORD PTR -76[rbp], 25
	jbe	.L975
	mov	DWORD PTR -72[rbp], 0
	mov	DWORD PTR -76[rbp], 0
	jmp	.L976
.L977:
	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
.L976:
	cmp	DWORD PTR -76[rbp], 26
	jbe	.L977
	mov	DWORD PTR -68[rbp], 0
	mov	DWORD PTR -76[rbp], 0
	jmp	.L978
.L979:
	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
.L978:
	movzx	eax, BYTE PTR -22[rbp]
	movzx	eax, al
	cmp	DWORD PTR -76[rbp], eax
	jb	.L979
	cmp	DWORD PTR -68[rbp], 0
	je	.L980
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR 128[rax]
	test	eax, eax
	je	.L980
	mov	eax, 0
	jmp	.L958
.L980:
	mov	DWORD PTR -76[rbp], 0
	jmp	.L981
.L982:
	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
.L981:
	mov	eax, DWORD PTR -76[rbp]
	cmp	eax, DWORD PTR -68[rbp]
	jb	.L982
	mov	eax, DWORD PTR -72[rbp]
	cmp	eax, DWORD PTR -56[rbp]
	jne	.L966
	cmp	QWORD PTR -96[rbp], 0
	je	.L984
	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
.L984:
	cmp	QWORD PTR -104[rbp], 0
	je	.L985
	movzx	eax, BYTE PTR -43[rbp]
	movzx	eax, al
	and	eax, 4
	test	eax, eax
	je	.L986
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR [rax], 1
	jmp	.L985
.L986:
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR [rax], 0
.L985:
	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	.L958
.L990:
	nop
	jmp	.L966
.L991:
	nop
.L966:
	mov	edx, DWORD PTR -60[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	set_file_offset
	jmp	.L987
.L958:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L988
	call	__stack_chk_fail@PLT
.L988:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE84:
	.size	vorbis_find_page, .-vorbis_find_page
	.type	get_seek_page_info, @function
get_seek_page_info:
.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, 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	.L993
	movzx	eax, BYTE PTR -303[rbp]
	cmp	al, 103
	jne	.L993
	movzx	eax, BYTE PTR -302[rbp]
	cmp	al, 103
	jne	.L993
	movzx	eax, BYTE PTR -301[rbp]
	cmp	al, 83
	je	.L994
.L993:
	mov	eax, 0
	jmp	.L998
.L994:
	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	.L996
.L997:
	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
.L996:
	movzx	eax, BYTE PTR -278[rbp]
	movzx	eax, al
	cmp	DWORD PTR -312[rbp], eax
	jl	.L997
	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
.L998:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L999
	call	__stack_chk_fail@PLT
.L999:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE85:
	.size	get_seek_page_info, .-get_seek_page_info
	.type	go_to_page_before, @function
go_to_page_before:
.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, 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	.L1001
	mov	eax, DWORD PTR -28[rbp]
	lea	edx, -65536[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 72[rax]
	cmp	edx, eax
	jb	.L1001
	mov	eax, DWORD PTR -28[rbp]
	sub	eax, 65536
	mov	DWORD PTR -12[rbp], eax
	jmp	.L1002
.L1001:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 72[rax]
	mov	DWORD PTR -12[rbp], eax
.L1002:
	mov	edx, DWORD PTR -12[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	set_file_offset
	jmp	.L1003
.L1006:
	mov	eax, DWORD PTR -16[rbp]
	cmp	DWORD PTR -28[rbp], eax
	ja	.L1004
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stb_vorbis_get_file_offset
	cmp	DWORD PTR -28[rbp], eax
	jbe	.L1004
	mov	eax, 1
	jmp	.L1007
.L1004:
	mov	edx, DWORD PTR -16[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	set_file_offset
.L1003:
	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	.L1006
	mov	eax, 0
.L1007:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1008
	call	__stack_chk_fail@PLT
.L1008:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE86:
	.size	go_to_page_before, .-go_to_page_before
	.section	.rodata
	.align 8
.LC31:
	.string	"right.last_decoded_sample != ~0U"
	.align 8
.LC32:
	.string	"left.page_end < right.page_start"
	.align 8
.LC36:
	.string	"mid.page_start < right.page_start"
.LC37:
	.string	"end_pos >= 0"
	.text
	.type	seek_to_sample_coarse, @function
seek_to_sample_coarse:
.LFB87:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	add	rsp, -128
	mov	QWORD PTR -120[rbp], rdi
	mov	DWORD PTR -124[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -100[rbp], 0
	mov	rax, QWORD PTR -120[rbp]
	mov	rdi, rax
	call	stb_vorbis_stream_length_in_samples
	mov	DWORD PTR -96[rbp], eax
	cmp	DWORD PTR -96[rbp], 0
	jne	.L1010
	mov	rax, QWORD PTR -120[rbp]
	mov	esi, 7
	mov	rdi, rax
	call	error
	jmp	.L1082
.L1010:
	mov	eax, DWORD PTR -124[rbp]
	cmp	eax, DWORD PTR -96[rbp]
	jbe	.L1012
	mov	rax, QWORD PTR -120[rbp]
	mov	esi, 11
	mov	rdi, rax
	call	error
	jmp	.L1082
.L1012:
	mov	rax, QWORD PTR -120[rbp]
	mov	edx, DWORD PTR 148[rax]
	mov	rax, QWORD PTR -120[rbp]
	mov	ecx, DWORD PTR 144[rax]
	mov	eax, edx
	sub	eax, ecx
	sar	eax, 2
	mov	DWORD PTR -92[rbp], eax
	mov	eax, DWORD PTR -124[rbp]
	cmp	eax, DWORD PTR -92[rbp]
	jnb	.L1013
	mov	DWORD PTR -124[rbp], 0
	jmp	.L1014
.L1013:
	mov	eax, DWORD PTR -92[rbp]
	sub	DWORD PTR -124[rbp], eax
.L1014:
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 76[rax]
	mov	QWORD PTR -44[rbp], rdx
	mov	eax, DWORD PTR 84[rax]
	mov	DWORD PTR -36[rbp], eax
	jmp	.L1015
.L1017:
	mov	edx, DWORD PTR -40[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	set_file_offset
	lea	rdx, -44[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	get_seek_page_info
	test	eax, eax
	je	.L1091
.L1015:
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, -1
	je	.L1017
	mov	rax, QWORD PTR -120[rbp]
	mov	rdx, QWORD PTR 88[rax]
	mov	QWORD PTR -32[rbp], rdx
	mov	eax, DWORD PTR 96[rax]
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	cmp	eax, -1
	jne	.L1018
	lea	rcx, __PRETTY_FUNCTION__.4[rip]
	mov	edx, 4626
	lea	rsi, .LC1[rip]
	lea	rdi, .LC31[rip]
	call	__assert_fail@PLT
.L1018:
	mov	eax, DWORD PTR -36[rbp]
	cmp	DWORD PTR -124[rbp], eax
	ja	.L1021
	mov	rax, QWORD PTR -120[rbp]
	mov	rdi, rax
	call	stb_vorbis_seek_start
	test	eax, eax
	je	.L1020
	mov	eax, 1
	jmp	.L1082
.L1020:
	mov	eax, 0
	jmp	.L1082
.L1068:
	mov	edx, DWORD PTR -40[rbp]
	mov	eax, DWORD PTR -32[rbp]
	cmp	edx, eax
	jb	.L1022
	lea	rcx, __PRETTY_FUNCTION__.4[rip]
	mov	edx, 4636
	lea	rsi, .LC1[rip]
	lea	rdi, .LC32[rip]
	call	__assert_fail@PLT
.L1022:
	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	.L1023
	mov	edx, DWORD PTR -40[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	set_file_offset
	jmp	.L1063
.L1023:
	cmp	DWORD PTR -100[rbp], 1
	jg	.L1025
	cmp	DWORD PTR -100[rbp], 0
	jne	.L1026
	mov	eax, DWORD PTR -28[rbp]
	mov	edx, DWORD PTR -44[rbp]
	sub	eax, edx
	mov	eax, eax
	test	rax, rax
	js	.L1027
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	jmp	.L1028
.L1027:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rdx
	addsd	xmm0, xmm0
.L1028:
	movsd	QWORD PTR -56[rbp], xmm0
	mov	eax, DWORD PTR -24[rbp]
	mov	eax, eax
	test	rax, rax
	js	.L1029
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	jmp	.L1030
.L1029:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rdx
	addsd	xmm0, xmm0
.L1030:
	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	.L1031
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, rax
	jmp	.L1032
.L1031:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rdx
	movapd	xmm1, xmm0
	addsd	xmm1, xmm0
.L1032:
	mov	edx, DWORD PTR -36[rbp]
	mov	eax, DWORD PTR -124[rbp]
	sub	eax, edx
	mov	eax, eax
	test	rax, rax
	js	.L1033
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	jmp	.L1034
.L1033:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rdx
	addsd	xmm0, xmm0
.L1034:
	mulsd	xmm0, QWORD PTR -72[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -80[rbp], xmm0
	jmp	.L1035
.L1026:
	mov	eax, DWORD PTR -124[rbp]
	test	rax, rax
	js	.L1036
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	jmp	.L1037
.L1036:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rdx
	addsd	xmm0, xmm0
.L1037:
	mov	eax, DWORD PTR -12[rbp]
	mov	eax, eax
	test	rax, rax
	js	.L1038
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, rax
	jmp	.L1039
.L1038:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, rdx
	addsd	xmm1, xmm1
.L1039:
	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	.L1040
	movsd	xmm0, QWORD PTR .LC34[rip]
	comisd	xmm0, QWORD PTR -64[rbp]
	jbe	.L1040
	movsd	xmm0, QWORD PTR .LC34[rip]
	movsd	QWORD PTR -64[rbp], xmm0
.L1040:
	pxor	xmm0, xmm0
	comisd	xmm0, QWORD PTR -64[rbp]
	jbe	.L1043
	movsd	xmm0, QWORD PTR -64[rbp]
	comisd	xmm0, QWORD PTR .LC35[rip]
	jbe	.L1043
	movsd	xmm0, QWORD PTR .LC35[rip]
	movsd	QWORD PTR -64[rbp], xmm0
.L1043:
	movsd	xmm0, QWORD PTR -64[rbp]
	addsd	xmm0, xmm0
	movsd	xmm1, QWORD PTR -80[rbp]
	addsd	xmm0, xmm1
	movsd	QWORD PTR -80[rbp], xmm0
.L1035:
	mov	eax, DWORD PTR -40[rbp]
	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:
	comisd	xmm0, QWORD PTR -80[rbp]
	jbe	.L1048
	mov	eax, DWORD PTR -40[rbp]
	mov	eax, eax
	test	rax, rax
	js	.L1050
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	jmp	.L1051
.L1050:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rdx
	addsd	xmm0, xmm0
.L1051:
	movsd	QWORD PTR -80[rbp], xmm0
.L1048:
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 65536
	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:
	movsd	xmm1, QWORD PTR -80[rbp]
	comisd	xmm1, xmm0
	jbe	.L1054
	mov	eax, DWORD PTR -32[rbp]
	sub	eax, 65536
	mov	eax, eax
	test	rax, rax
	js	.L1056
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	jmp	.L1057
.L1056:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rdx
	addsd	xmm0, xmm0
.L1057:
	movsd	QWORD PTR -80[rbp], xmm0
.L1054:
	movsd	xmm0, QWORD PTR -80[rbp]
	cvttsd2si	rax, xmm0
	mov	edx, eax
	mov	rax, QWORD PTR -120[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	set_file_offset
	jmp	.L1058
.L1025:
	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 -120[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	set_file_offset
.L1058:
	mov	rax, QWORD PTR -120[rbp]
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	vorbis_find_page
	test	eax, eax
	je	.L1092
.L1063:
	lea	rdx, -20[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	get_seek_page_info
	test	eax, eax
	je	.L1093
	mov	eax, DWORD PTR -12[rbp]
	cmp	eax, -1
	jne	.L1094
	mov	edx, DWORD PTR -16[rbp]
	mov	rax, QWORD PTR -120[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	.L1063
	lea	rcx, __PRETTY_FUNCTION__.4[rip]
	mov	edx, 4678
	lea	rsi, .LC1[rip]
	lea	rdi, .LC36[rip]
	call	__assert_fail@PLT
.L1094:
	nop
	mov	edx, DWORD PTR -20[rbp]
	mov	eax, DWORD PTR -32[rbp]
	cmp	edx, eax
	je	.L1095
	mov	eax, DWORD PTR -12[rbp]
	cmp	DWORD PTR -124[rbp], eax
	jnb	.L1066
	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	.L1067
.L1066:
	mov	rax, QWORD PTR -20[rbp]
	mov	QWORD PTR -44[rbp], rax
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR -36[rbp], eax
.L1067:
	add	DWORD PTR -100[rbp], 1
.L1021:
	mov	edx, DWORD PTR -40[rbp]
	mov	eax, DWORD PTR -32[rbp]
	cmp	edx, eax
	jne	.L1068
	jmp	.L1065
.L1095:
	nop
.L1065:
	mov	eax, DWORD PTR -44[rbp]
	mov	DWORD PTR -104[rbp], eax
	mov	edx, DWORD PTR -104[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	set_file_offset
	mov	rax, QWORD PTR -120[rbp]
	mov	rdi, rax
	call	start_page
	test	eax, eax
	jne	.L1069
	mov	rax, QWORD PTR -120[rbp]
	mov	esi, 37
	mov	rdi, rax
	call	error
	jmp	.L1082
.L1069:
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 1768[rax]
	mov	DWORD PTR -108[rbp], eax
	cmp	DWORD PTR -108[rbp], 0
	jns	.L1070
	lea	rcx, __PRETTY_FUNCTION__.4[rip]
	mov	edx, 4699
	lea	rsi, .LC1[rip]
	lea	rdi, .LC37[rip]
	call	__assert_fail@PLT
.L1070:
	mov	eax, DWORD PTR -108[rbp]
	mov	DWORD PTR -112[rbp], eax
	jmp	.L1071
.L1074:
	mov	eax, DWORD PTR -112[rbp]
	sub	eax, 1
	mov	rdx, QWORD PTR -120[rbp]
	cdqe
	movzx	eax, BYTE PTR 1484[rdx+rax]
	cmp	al, -1
	jne	.L1096
	sub	DWORD PTR -112[rbp], 1
.L1071:
	cmp	DWORD PTR -112[rbp], 0
	jg	.L1074
	jmp	.L1073
.L1096:
	nop
.L1073:
	mov	eax, DWORD PTR -112[rbp]
	mov	DWORD PTR -84[rbp], eax
	cmp	DWORD PTR -84[rbp], 0
	jg	.L1075
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, BYTE PTR 1739[rax]
	movzx	eax, al
	and	eax, 1
	test	eax, eax
	je	.L1075
	mov	edx, DWORD PTR -104[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	go_to_page_before
	test	eax, eax
	je	.L1097
	mov	rax, QWORD PTR -120[rbp]
	mov	rdi, rax
	call	stb_vorbis_get_file_offset
	mov	DWORD PTR -104[rbp], eax
	mov	rax, QWORD PTR -120[rbp]
	mov	rdi, rax
	call	start_page
	test	eax, eax
	je	.L1098
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 1480[rax]
	sub	eax, 1
	mov	DWORD PTR -108[rbp], eax
	jmp	.L1070
.L1075:
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 1388[rax], 0
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 1748[rax], 0
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 1760[rax], 0
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 1764[rax], 0
	mov	rax, QWORD PTR -120[rbp]
	mov	BYTE PTR 1740[rax], 0
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR 1248[rax], 0
	mov	rax, QWORD PTR -120[rbp]
	mov	edx, DWORD PTR -84[rbp]
	mov	DWORD PTR 1744[rax], edx
	mov	DWORD PTR -112[rbp], 0
	jmp	.L1078
.L1079:
	mov	rdx, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR -112[rbp]
	cdqe
	movzx	eax, BYTE PTR 1484[rdx+rax]
	movzx	edx, al
	mov	rax, QWORD PTR -120[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	skip
	add	DWORD PTR -112[rbp], 1
.L1078:
	mov	eax, DWORD PTR -112[rbp]
	cmp	eax, DWORD PTR -84[rbp]
	jl	.L1079
	mov	rax, QWORD PTR -120[rbp]
	mov	rdi, rax
	call	vorbis_pump_first_frame
	test	eax, eax
	jne	.L1080
	mov	eax, 0
	jmp	.L1082
.L1080:
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR 1384[rax]
	cmp	DWORD PTR -124[rbp], eax
	jnb	.L1081
	mov	rax, QWORD PTR -120[rbp]
	mov	esi, 37
	mov	rdi, rax
	call	error
	jmp	.L1082
.L1081:
	mov	eax, 1
	jmp	.L1082
.L1091:
	nop
	jmp	.L1016
.L1092:
	nop
	jmp	.L1016
.L1093:
	nop
	jmp	.L1016
.L1097:
	nop
	jmp	.L1016
.L1098:
	nop
.L1016:
	mov	rax, QWORD PTR -120[rbp]
	mov	rdi, rax
	call	stb_vorbis_seek_start
	mov	rax, QWORD PTR -120[rbp]
	mov	esi, 37
	mov	rdi, rax
	call	error
.L1082:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1083
	call	__stack_chk_fail@PLT
.L1083:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE87:
	.size	seek_to_sample_coarse, .-seek_to_sample_coarse
	.type	peek_decode_initial, @function
peek_decode_initial:
.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, 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	.L1100
	mov	eax, 0
	jmp	.L1101
.L1100:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 472[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, 476
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L1102
	add	DWORD PTR -8[rbp], 2
.L1102:
	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 1740[rax]
	mov	edx, DWORD PTR -4[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR 1740[rax], dl
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1764[rax]
	sub	eax, DWORD PTR -4[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1764[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 1744[rax]
	cmp	eax, -1
	jne	.L1103
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1480[rax]
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1744[rax], edx
	jmp	.L1104
.L1103:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1744[rax]
	lea	edx, -1[rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1744[rax], edx
.L1104:
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 1760[rax], 0
	mov	eax, 1
.L1101:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE88:
	.size	peek_decode_initial, .-peek_decode_initial
	.section	.rodata
.LC38:
	.string	"f->current_loc_valid"
	.align 8
.LC39:
	.string	"f->current_loc <= sample_number"
	.align 8
.LC40:
	.string	"f->current_loc == sample_number"
	.text
	.globl	stb_vorbis_seek_frame
	.type	stb_vorbis_seek_frame, @function
stb_vorbis_seek_frame:
.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, 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 68[rax]
	test	al, al
	je	.L1106
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	error
	jmp	.L1107
.L1106:
	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	.L1108
	mov	eax, 0
	jmp	.L1107
.L1108:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1388[rax]
	test	eax, eax
	jne	.L1109
	lea	rcx, __PRETTY_FUNCTION__.3[rip]
	mov	edx, 4781
	lea	rsi, .LC1[rip]
	lea	rdi, .LC38[rip]
	call	__assert_fail@PLT
.L1109:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1384[rax]
	cmp	DWORD PTR -60[rbp], eax
	jnb	.L1110
	lea	rcx, __PRETTY_FUNCTION__.3[rip]
	mov	edx, 4782
	lea	rsi, .LC1[rip]
	lea	rdi, .LC39[rip]
	call	__assert_fail@PLT
.L1110:
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR 148[rax]
	mov	eax, edx
	add	eax, eax
	add	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	ecx, DWORD PTR 144[rax]
	mov	eax, edx
	sub	eax, ecx
	sar	eax, 2
	mov	DWORD PTR -16[rbp], eax
	jmp	.L1111
.L1117:
	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	.L1112
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 37
	mov	rdi, rax
	call	error
	jmp	.L1107
.L1112:
	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 1384[rax]
	mov	eax, DWORD PTR -12[rbp]
	add	eax, edx
	cmp	DWORD PTR -60[rbp], eax
	jnb	.L1114
	mov	eax, 1
	jmp	.L1107
.L1114:
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR 1384[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	.L1115
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	vorbis_pump_first_frame
	jmp	.L1111
.L1115:
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR 1384[rax]
	mov	eax, DWORD PTR -12[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 1384[rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 1248[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
.L1111:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1384[rax]
	cmp	DWORD PTR -60[rbp], eax
	ja	.L1117
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 1384[rax]
	cmp	DWORD PTR -60[rbp], eax
	je	.L1118
	lea	rcx, __PRETTY_FUNCTION__.3[rip]
	mov	edx, 4806
	lea	rsi, .LC1[rip]
	lea	rdi, .LC40[rip]
	call	__assert_fail@PLT
.L1118:
	mov	eax, 1
.L1107:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1119
	call	__stack_chk_fail@PLT
.L1119:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE89:
	.size	stb_vorbis_seek_frame, .-stb_vorbis_seek_frame
	.section	.rodata
.LC41:
	.string	"sample_number > frame_start"
	.align 8
.LC42:
	.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:
.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, 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	.L1121
	mov	eax, 0
	jmp	.L1122
.L1121:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1384[rax]
	cmp	DWORD PTR -28[rbp], eax
	je	.L1123
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1384[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	.L1124
	lea	rcx, __PRETTY_FUNCTION__.2[rip]
	mov	edx, 4819
	lea	rsi, .LC1[rip]
	lea	rdi, .LC41[rip]
	call	__assert_fail@PLT
.L1124:
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR 1868[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 1872[rax]
	cmp	edx, eax
	jle	.L1125
	lea	rcx, __PRETTY_FUNCTION__.2[rip]
	mov	edx, 4820
	lea	rsi, .LC1[rip]
	lea	rdi, .LC42[rip]
	call	__assert_fail@PLT
.L1125:
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR 1868[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 1868[rax], edx
.L1123:
	mov	eax, 1
.L1122:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1126
	call	__stack_chk_fail@PLT
.L1126:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE90:
	.size	stb_vorbis_seek, .-stb_vorbis_seek
	.globl	stb_vorbis_seek_start
	.type	stb_vorbis_seek_start, @function
stb_vorbis_seek_start:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR 68[rax]
	test	al, al
	je	.L1128
	mov	rax, QWORD PTR -8[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	error
	jmp	.L1129
.L1128:
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR 72[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 1248[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR 1741[rax], 1
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 1744[rax], -1
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	vorbis_pump_first_frame
.L1129:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE91:
	.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:
.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, 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 68[rax]
	test	al, al
	je	.L1131
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	error
	jmp	.L1146
.L1131:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 860[rax]
	test	eax, eax
	jne	.L1133
	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 64[rax]
	cmp	eax, 65535
	jbe	.L1134
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 64[rax]
	lea	edx, -65536[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 72[rax]
	cmp	edx, eax
	jb	.L1134
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 64[rax]
	sub	eax, 65536
	mov	DWORD PTR -36[rbp], eax
	jmp	.L1135
.L1134:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 72[rax]
	mov	DWORD PTR -36[rbp], eax
.L1135:
	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	.L1136
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 132[rax], 36
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 860[rax], -1
	jmp	.L1137
.L1136:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	stb_vorbis_get_file_offset
	mov	DWORD PTR -32[rbp], eax
	jmp	.L1138
.L1141:
	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	.L1148
	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
.L1138:
	mov	eax, DWORD PTR -40[rbp]
	test	eax, eax
	je	.L1141
	jmp	.L1140
.L1148:
	nop
.L1140:
	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	.L1142
	cmp	DWORD PTR -20[rbp], -1
	jne	.L1142
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 132[rax], 36
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 860[rax], -1
	jmp	.L1137
.L1142:
	cmp	DWORD PTR -20[rbp], 0
	je	.L1143
	mov	DWORD PTR -28[rbp], -2
.L1143:
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -28[rbp]
	mov	DWORD PTR 860[rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -32[rbp]
	mov	DWORD PTR 88[rax], edx
	mov	edx, DWORD PTR -44[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 92[rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -28[rbp]
	mov	DWORD PTR 96[rax], edx
.L1137:
	mov	edx, DWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	set_file_offset
.L1133:
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 860[rax]
	cmp	eax, -1
	je	.L1144
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR 860[rax]
	jmp	.L1146
.L1144:
	mov	eax, 0
.L1146:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1147
	call	__stack_chk_fail@PLT
.L1147:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE92:
	.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:
.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]
	mov	rdi, rax
	call	stb_vorbis_stream_length_in_samples
	mov	eax, eax
	test	rax, rax
	js	.L1150
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, rax
	jmp	.L1151
.L1150:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, rdx
	addss	xmm0, xmm0
.L1151:
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	mov	eax, eax
	test	rax, rax
	js	.L1152
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, rax
	jmp	.L1153
.L1152:
	mov	rdx, rax
	shr	rdx
	and	eax, 1
	or	rdx, rax
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, rdx
	addss	xmm1, xmm1
.L1153:
	divss	xmm0, xmm1
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE93:
	.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:
.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 -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 68[rax]
	test	al, al
	je	.L1156
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 2
	mov	rdi, rax
	call	error
	jmp	.L1163
.L1156:
	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	.L1158
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1872[rax], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 1872[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1868[rax], edx
	mov	eax, 0
	jmp	.L1163
.L1158:
	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	.L1159
.L1160:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -12[rbp]
	movsx	rdx, edx
	add	rdx, 108
	mov	rdx, QWORD PTR [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, 124
	mov	QWORD PTR [rax+rdx*8], rcx
	add	DWORD PTR -12[rbp], 1
.L1159:
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 4[rax]
	cmp	DWORD PTR -12[rbp], eax
	jl	.L1160
	mov	edx, DWORD PTR -16[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1868[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 1872[rax], edx
	cmp	QWORD PTR -48[rbp], 0
	je	.L1161
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 4[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR [rax], edx
.L1161:
	cmp	QWORD PTR -56[rbp], 0
	je	.L1162
	mov	rax, QWORD PTR -40[rbp]
	lea	rdx, 992[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR [rax], rdx
.L1162:
	mov	eax, DWORD PTR -24[rbp]
.L1163:
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L1164
	call	__stack_chk_fail@PLT
.L1164:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE94:
	.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:
.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, 1936
	mov	QWORD PTR -1912[rbp], rdi
	mov	DWORD PTR -1916[rbp], esi
	mov	QWORD PTR -1928[rbp], rdx
	mov	QWORD PTR -1936[rbp], rcx
	mov	DWORD PTR -1920[rbp], r8d
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rdx, QWORD PTR -1936[rbp]
	lea	rax, -1888[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	vorbis_init
	mov	rax, QWORD PTR -1912[rbp]
	mov	QWORD PTR -1864[rbp], rax
	mov	rax, QWORD PTR -1912[rbp]
	mov	rdi, rax
	call	ftell@PLT
	mov	DWORD PTR -1856[rbp], eax
	mov	eax, DWORD PTR -1920[rbp]
	mov	DWORD PTR -1824[rbp], eax
	mov	eax, DWORD PTR -1916[rbp]
	mov	DWORD PTR -1852[rbp], eax
	lea	rax, -1888[rbp]
	mov	rdi, rax
	call	start_decoder
	test	eax, eax
	je	.L1166
	lea	rax, -1888[rbp]
	mov	rdi, rax
	call	vorbis_alloc
	mov	QWORD PTR -1896[rbp], rax
	cmp	QWORD PTR -1896[rbp], 0
	je	.L1166
	mov	rax, QWORD PTR -1896[rbp]
	mov	rdi, rax
	lea	rax, -1888[rbp]
	mov	edx, 235
	mov	rsi, rax
	mov	rcx, rdx
	rep movsq
	mov	rax, QWORD PTR -1896[rbp]
	mov	rdi, rax
	call	vorbis_pump_first_frame
	mov	rax, QWORD PTR -1896[rbp]
	jmp	.L1169
.L1166:
	cmp	QWORD PTR -1928[rbp], 0
	je	.L1168
	mov	eax, DWORD PTR -1756[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -1928[rbp]
	mov	DWORD PTR [rax], edx
.L1168:
	lea	rax, -1888[rbp]
	mov	rdi, rax
	call	vorbis_deinit
	mov	eax, 0
.L1169:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1170
	call	__stack_chk_fail@PLT
.L1170:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE95:
	.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:
.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, 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
.LFE96:
	.size	stb_vorbis_open_file, .-stb_vorbis_open_file
	.section	.rodata
.LC43:
	.string	"rb"
	.text
	.globl	stb_vorbis_open_filename
	.type	stb_vorbis_open_filename, @function
stb_vorbis_open_filename:
.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, 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, .LC43[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	je	.L1174
	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	.L1175
.L1174:
	cmp	QWORD PTR -32[rbp], 0
	je	.L1176
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], 6
.L1176:
	mov	eax, 0
.L1175:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE97:
	.size	stb_vorbis_open_filename, .-stb_vorbis_open_filename
	.globl	stb_vorbis_open_memory
	.type	stb_vorbis_open_memory, @function
stb_vorbis_open_memory:
.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, 1936
	mov	QWORD PTR -1912[rbp], rdi
	mov	DWORD PTR -1916[rbp], esi
	mov	QWORD PTR -1928[rbp], rdx
	mov	QWORD PTR -1936[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	cmp	QWORD PTR -1912[rbp], 0
	jne	.L1178
	mov	eax, 0
	jmp	.L1183
.L1178:
	mov	rdx, QWORD PTR -1936[rbp]
	lea	rax, -1888[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	vorbis_init
	mov	rax, QWORD PTR -1912[rbp]
	mov	QWORD PTR -1848[rbp], rax
	mov	eax, DWORD PTR -1916[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -1912[rbp]
	add	rax, rdx
	mov	QWORD PTR -1832[rbp], rax
	mov	rax, QWORD PTR -1848[rbp]
	mov	QWORD PTR -1840[rbp], rax
	mov	eax, DWORD PTR -1916[rbp]
	mov	DWORD PTR -1824[rbp], eax
	mov	BYTE PTR -1820[rbp], 0
	lea	rax, -1888[rbp]
	mov	rdi, rax
	call	start_decoder
	test	eax, eax
	je	.L1180
	lea	rax, -1888[rbp]
	mov	rdi, rax
	call	vorbis_alloc
	mov	QWORD PTR -1896[rbp], rax
	cmp	QWORD PTR -1896[rbp], 0
	je	.L1180
	mov	rax, QWORD PTR -1896[rbp]
	mov	rdi, rax
	lea	rax, -1888[rbp]
	mov	edx, 235
	mov	rsi, rax
	mov	rcx, rdx
	rep movsq
	mov	rax, QWORD PTR -1896[rbp]
	mov	rdi, rax
	call	vorbis_pump_first_frame
	cmp	QWORD PTR -1928[rbp], 0
	je	.L1181
	mov	rax, QWORD PTR -1928[rbp]
	mov	DWORD PTR [rax], 0
.L1181:
	mov	rax, QWORD PTR -1896[rbp]
	jmp	.L1183
.L1180:
	cmp	QWORD PTR -1928[rbp], 0
	je	.L1182
	mov	eax, DWORD PTR -1756[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -1928[rbp]
	mov	DWORD PTR [rax], edx
.L1182:
	lea	rax, -1888[rbp]
	mov	rdi, rax
	call	vorbis_deinit
	mov	eax, 0
.L1183:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1184
	call	__stack_chk_fail@PLT
.L1184:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE98:
	.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:
.LFB99:
	.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	.L1186
.L1190:
	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 .LC44[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	.L1187
	cmp	DWORD PTR -4[rbp], 0
	jns	.L1188
	mov	eax, -32768
	jmp	.L1189
.L1188:
	mov	eax, 32767
.L1189:
	mov	DWORD PTR -4[rbp], eax
.L1187:
	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
.L1186:
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -36[rbp]
	jl	.L1190
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE99:
	.size	copy_samples, .-copy_samples
	.type	compute_samples, @function
compute_samples:
.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, 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	.L1192
.L1204:
	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	.L1193
	mov	eax, DWORD PTR -208[rbp]
	sub	eax, DWORD PTR -156[rbp]
	mov	DWORD PTR -152[rbp], eax
.L1193:
	mov	DWORD PTR -160[rbp], 0
	jmp	.L1194
.L1198:
	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	.L1195
	mov	DWORD PTR -164[rbp], 0
	jmp	.L1196
.L1197:
	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
.L1196:
	mov	eax, DWORD PTR -164[rbp]
	cmp	eax, DWORD PTR -152[rbp]
	jl	.L1197
.L1195:
	add	DWORD PTR -160[rbp], 1
.L1194:
	mov	eax, DWORD PTR -160[rbp]
	cmp	eax, DWORD PTR -184[rbp]
	jl	.L1198
	mov	DWORD PTR -164[rbp], 0
	jmp	.L1199
.L1203:
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	movss	xmm1, DWORD PTR -144[rbp+rax*4]
	movss	xmm0, DWORD PTR .LC44[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	.L1200
	cmp	DWORD PTR -148[rbp], 0
	jns	.L1201
	mov	eax, -32768
	jmp	.L1202
.L1201:
	mov	eax, 32767
.L1202:
	mov	DWORD PTR -148[rbp], eax
.L1200:
	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
.L1199:
	mov	eax, DWORD PTR -164[rbp]
	cmp	eax, DWORD PTR -152[rbp]
	jl	.L1203
	add	DWORD PTR -156[rbp], 32
.L1192:
	mov	eax, DWORD PTR -156[rbp]
	cmp	eax, DWORD PTR -208[rbp]
	jl	.L1204
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1205
	call	__stack_chk_fail@PLT
.L1205:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE100:
	.size	compute_samples, .-compute_samples
	.type	compute_stereo_samples, @function
compute_stereo_samples:
.LFB101:
	.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	.L1207
.L1225:
	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	.L1208
	mov	eax, DWORD PTR -204[rbp]
	sub	eax, DWORD PTR -164[rbp]
	mov	DWORD PTR -160[rbp], eax
.L1208:
	mov	DWORD PTR -168[rbp], 0
	jmp	.L1209
.L1219:
	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	.L1210
	mov	DWORD PTR -172[rbp], 0
	jmp	.L1211
.L1212:
	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
.L1211:
	mov	eax, DWORD PTR -172[rbp]
	cmp	eax, DWORD PTR -160[rbp]
	jl	.L1212
	jmp	.L1213
.L1210:
	cmp	DWORD PTR -148[rbp], 2
	jne	.L1214
	mov	DWORD PTR -172[rbp], 0
	jmp	.L1215
.L1216:
	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
.L1215:
	mov	eax, DWORD PTR -172[rbp]
	cmp	eax, DWORD PTR -160[rbp]
	jl	.L1216
	jmp	.L1213
.L1214:
	cmp	DWORD PTR -148[rbp], 4
	jne	.L1213
	mov	DWORD PTR -172[rbp], 0
	jmp	.L1217
.L1218:
	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
.L1217:
	mov	eax, DWORD PTR -172[rbp]
	cmp	eax, DWORD PTR -160[rbp]
	jl	.L1218
.L1213:
	add	DWORD PTR -168[rbp], 1
.L1209:
	mov	eax, DWORD PTR -168[rbp]
	cmp	eax, DWORD PTR -188[rbp]
	jl	.L1219
	mov	DWORD PTR -172[rbp], 0
	jmp	.L1220
.L1224:
	mov	eax, DWORD PTR -172[rbp]
	cdqe
	movss	xmm1, DWORD PTR -144[rbp+rax*4]
	movss	xmm0, DWORD PTR .LC44[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	.L1221
	cmp	DWORD PTR -156[rbp], 0
	jns	.L1222
	mov	eax, -32768
	jmp	.L1223
.L1222:
	mov	eax, 32767
.L1223:
	mov	DWORD PTR -156[rbp], eax
.L1221:
	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
.L1220:
	mov	eax, DWORD PTR -160[rbp]
	add	eax, eax
	cmp	DWORD PTR -172[rbp], eax
	jl	.L1224
	add	DWORD PTR -164[rbp], 16
.L1207:
	mov	eax, DWORD PTR -164[rbp]
	cmp	eax, DWORD PTR -204[rbp]
	jl	.L1225
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L1226
	call	__stack_chk_fail@PLT
.L1226:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE101:
	.size	compute_stereo_samples, .-compute_stereo_samples
	.type	convert_samples_short, @function
convert_samples_short:
.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, 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	.L1228
	cmp	DWORD PTR -20[rbp], 2
	jg	.L1228
	cmp	DWORD PTR -36[rbp], 6
	jg	.L1228
	mov	DWORD PTR -8[rbp], 0
	jmp	.L1229
.L1230:
	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
.L1229:
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -20[rbp]
	jl	.L1230
	jmp	.L1231
.L1228:
	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	.L1232
.L1233:
	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
.L1232:
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -4[rbp]
	jl	.L1233
	jmp	.L1234
.L1235:
	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
.L1234:
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -20[rbp]
	jl	.L1235
	nop
.L1231:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE102:
	.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:
.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, 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
	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	.L1237
	mov	eax, DWORD PTR -48[rbp]
	mov	DWORD PTR -20[rbp], eax
.L1237:
	cmp	DWORD PTR -20[rbp], 0
	je	.L1238
	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
.L1238:
	mov	eax, DWORD PTR -20[rbp]
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1240
	call	__stack_chk_fail@PLT
.L1240:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE103:
	.size	stb_vorbis_get_frame_short, .-stb_vorbis_get_frame_short
	.section	.rodata
.LC45:
	.string	"buf_c == 2"
	.text
	.type	convert_channels_short_interleaved, @function
convert_channels_short_interleaved:
.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, 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	.L1242
	cmp	DWORD PTR -36[rbp], 2
	jg	.L1242
	cmp	DWORD PTR -40[rbp], 6
	jg	.L1242
	cmp	DWORD PTR -36[rbp], 2
	je	.L1243
	lea	rcx, __PRETTY_FUNCTION__.0[rip]
	mov	edx, 5155
	lea	rsi, .LC1[rip]
	lea	rdi, .LC45[rip]
	call	__assert_fail@PLT
.L1243:
	mov	DWORD PTR -20[rbp], 0
	jmp	.L1244
.L1245:
	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
.L1244:
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -36[rbp]
	jl	.L1245
	jmp	.L1246
.L1242:
	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	.L1247
.L1255:
	mov	DWORD PTR -20[rbp], 0
	jmp	.L1248
.L1252:
	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 .LC44[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	.L1249
	cmp	DWORD PTR -12[rbp], 0
	jns	.L1250
	mov	eax, -32768
	jmp	.L1251
.L1250:
	mov	eax, 32767
.L1251:
	mov	DWORD PTR -12[rbp], eax
.L1249:
	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
.L1248:
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -8[rbp]
	jl	.L1252
	jmp	.L1253
.L1254:
	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
.L1253:
	mov	eax, DWORD PTR -20[rbp]
	cmp	eax, DWORD PTR -36[rbp]
	jl	.L1254
	add	DWORD PTR -16[rbp], 1
.L1247:
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, DWORD PTR -64[rbp]
	jl	.L1255
	nop
.L1246:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE104:
	.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:
.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
	cmp	DWORD PTR -44[rbp], 1
	jne	.L1257
	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	.L1261
.L1257:
	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	.L1259
	mov	eax, DWORD PTR -20[rbp]
	imul	eax, DWORD PTR -44[rbp]
	cmp	DWORD PTR -48[rbp], eax
	jge	.L1260
	mov	eax, DWORD PTR -48[rbp]
	cdq
	idiv	DWORD PTR -44[rbp]
	mov	DWORD PTR -20[rbp], eax
.L1260:
	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
.L1259:
	mov	eax, DWORD PTR -20[rbp]
.L1261:
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L1262
	call	__stack_chk_fail@PLT
.L1262:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE105:
	.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:
.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	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	.L1265
	mov	eax, DWORD PTR -44[rbp]
	mov	DWORD PTR -20[rbp], eax
	jmp	.L1265
.L1270:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 1872[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	ecx, DWORD PTR 1868[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	.L1266
	mov	eax, DWORD PTR -24[rbp]
	sub	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR -28[rbp], eax
.L1266:
	cmp	DWORD PTR -28[rbp], 0
	je	.L1267
	mov	rax, QWORD PTR -40[rbp]
	mov	edi, DWORD PTR 1868[rax]
	mov	rax, QWORD PTR -40[rbp]
	lea	rcx, 864[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
.L1267:
	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 1868[rax]
	mov	eax, DWORD PTR -28[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1868[rax], edx
	mov	eax, DWORD PTR -32[rbp]
	cmp	eax, DWORD PTR -24[rbp]
	je	.L1273
	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	.L1274
.L1265:
	mov	eax, DWORD PTR -32[rbp]
	cmp	eax, DWORD PTR -24[rbp]
	jl	.L1270
	jmp	.L1269
.L1273:
	nop
	jmp	.L1269
.L1274:
	nop
.L1269:
	mov	eax, DWORD PTR -32[rbp]
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L1272
	call	__stack_chk_fail@PLT
.L1272:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE106:
	.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:
.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
	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	.L1277
	mov	eax, DWORD PTR -44[rbp]
	mov	DWORD PTR -20[rbp], eax
	jmp	.L1277
.L1282:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 1872[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	ecx, DWORD PTR 1868[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	.L1278
	mov	eax, DWORD PTR -48[rbp]
	sub	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR -24[rbp], eax
.L1278:
	cmp	DWORD PTR -24[rbp], 0
	je	.L1279
	mov	rax, QWORD PTR -40[rbp]
	mov	r8d, DWORD PTR 1868[rax]
	mov	rax, QWORD PTR -40[rbp]
	lea	r10, 864[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
.L1279:
	mov	eax, DWORD PTR -24[rbp]
	add	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 1868[rax]
	mov	eax, DWORD PTR -24[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1868[rax], edx
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, DWORD PTR -48[rbp]
	je	.L1285
	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	.L1286
.L1277:
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, DWORD PTR -48[rbp]
	jl	.L1282
	jmp	.L1281
.L1285:
	nop
	jmp	.L1281
.L1286:
	nop
.L1281:
	mov	eax, DWORD PTR -28[rbp]
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L1284
	call	__stack_chk_fail@PLT
.L1284:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE107:
	.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:
.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, 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	.L1288
	mov	eax, -1
	jmp	.L1296
.L1288:
	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	.L1290
	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
.L1290:
	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	.L1291
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stb_vorbis_close
	mov	eax, -2
	jmp	.L1296
.L1291:
	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	.L1299
	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	.L1291
	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	.L1295
	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	.L1296
.L1295:
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR -32[rbp], rax
	jmp	.L1291
.L1299:
	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]
.L1296:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1297
	call	__stack_chk_fail@PLT
.L1297:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE108:
	.size	stb_vorbis_decode_filename, .-stb_vorbis_decode_filename
	.globl	stb_vorbis_decode_memory
	.type	stb_vorbis_decode_memory, @function
stb_vorbis_decode_memory:
.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, 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	.L1301
	mov	eax, -1
	jmp	.L1309
.L1301:
	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	.L1303
	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
.L1303:
	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	.L1304
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	stb_vorbis_close
	mov	eax, -2
	jmp	.L1309
.L1304:
	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	.L1312
	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	.L1304
	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	.L1308
	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	.L1309
.L1308:
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR -32[rbp], rax
	jmp	.L1304
.L1312:
	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]
.L1309:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L1310
	call	__stack_chk_fail@PLT
.L1310:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE109:
	.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:
.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, 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	.L1315
	mov	eax, DWORD PTR -60[rbp]
	mov	DWORD PTR -36[rbp], eax
	jmp	.L1315
.L1325:
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR 1872[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	ecx, DWORD PTR 1868[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	.L1316
	mov	eax, DWORD PTR -20[rbp]
	sub	eax, DWORD PTR -40[rbp]
	mov	DWORD PTR -24[rbp], eax
.L1316:
	mov	DWORD PTR -28[rbp], 0
	jmp	.L1317
.L1322:
	mov	DWORD PTR -32[rbp], 0
	jmp	.L1318
.L1319:
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -32[rbp]
	movsx	rdx, edx
	add	rdx, 108
	mov	rdx, QWORD PTR [rax+rdx*8]
	mov	rax, QWORD PTR -56[rbp]
	mov	ecx, DWORD PTR 1868[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
.L1318:
	mov	eax, DWORD PTR -32[rbp]
	cmp	eax, DWORD PTR -36[rbp]
	jl	.L1319
	jmp	.L1320
.L1321:
	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
.L1320:
	mov	eax, DWORD PTR -32[rbp]
	cmp	eax, DWORD PTR -60[rbp]
	jl	.L1321
	add	DWORD PTR -28[rbp], 1
.L1317:
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, DWORD PTR -24[rbp]
	jl	.L1322
	mov	eax, DWORD PTR -24[rbp]
	add	DWORD PTR -40[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR 1868[rax]
	mov	eax, DWORD PTR -24[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 1868[rax], edx
	mov	eax, DWORD PTR -40[rbp]
	cmp	eax, DWORD PTR -20[rbp]
	je	.L1328
	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	.L1329
.L1315:
	mov	eax, DWORD PTR -40[rbp]
	cmp	eax, DWORD PTR -20[rbp]
	jl	.L1325
	jmp	.L1324
.L1328:
	nop
	jmp	.L1324
.L1329:
	nop
.L1324:
	mov	eax, DWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L1327
	call	__stack_chk_fail@PLT
.L1327:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE110:
	.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:
.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, 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	.L1332
	mov	eax, DWORD PTR -44[rbp]
	mov	DWORD PTR -28[rbp], eax
	jmp	.L1332
.L1341:
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 1872[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	ecx, DWORD PTR 1868[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	.L1333
	mov	eax, DWORD PTR -48[rbp]
	sub	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR -20[rbp], eax
.L1333:
	cmp	DWORD PTR -20[rbp], 0
	je	.L1334
	mov	DWORD PTR -24[rbp], 0
	jmp	.L1335
.L1336:
	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, 108
	mov	rcx, QWORD PTR [rax+rcx*8]
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR 1868[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
.L1335:
	mov	eax, DWORD PTR -24[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	jl	.L1336
	jmp	.L1337
.L1338:
	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
.L1337:
	mov	eax, DWORD PTR -24[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	jl	.L1338
.L1334:
	mov	eax, DWORD PTR -20[rbp]
	add	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR 1868[rax]
	mov	eax, DWORD PTR -20[rbp]
	add	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 1868[rax], edx
	mov	eax, DWORD PTR -32[rbp]
	cmp	eax, DWORD PTR -48[rbp]
	je	.L1344
	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	.L1345
.L1332:
	mov	eax, DWORD PTR -32[rbp]
	cmp	eax, DWORD PTR -48[rbp]
	jl	.L1341
	jmp	.L1340
.L1344:
	nop
	jmp	.L1340
.L1345:
	nop
.L1340:
	mov	eax, DWORD PTR -32[rbp]
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L1343
	call	__stack_chk_fail@PLT
.L1343:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE111:
	.size	stb_vorbis_get_samples_float, .-stb_vorbis_get_samples_float
	.data
	.align 16
	.type	log2_4.22, @object
	.size	log2_4.22, 16
log2_4.22:
	.string	""
	.ascii	"\001\002\002\003\003\003\003\004\004\004\004\004\004\004\004"
	.section	.rodata
	.align 16
	.type	__PRETTY_FUNCTION__.21, @object
	.size	__PRETTY_FUNCTION__.21, 18
__PRETTY_FUNCTION__.21:
	.string	"compute_codewords"
	.align 16
	.type	__PRETTY_FUNCTION__.20, @object
	.size	__PRETTY_FUNCTION__.20, 16
__PRETTY_FUNCTION__.20:
	.string	"include_in_sort"
	.align 16
	.type	__PRETTY_FUNCTION__.19, @object
	.size	__PRETTY_FUNCTION__.19, 23
__PRETTY_FUNCTION__.19:
	.string	"compute_sorted_huffman"
	.data
	.type	vorbis.18, @object
	.size	vorbis.18, 6
vorbis.18:
	.ascii	"vorbis"
	.section	.rodata
	.align 8
	.type	__PRETTY_FUNCTION__.17, @object
	.size	__PRETTY_FUNCTION__.17, 15
__PRETTY_FUNCTION__.17:
	.string	"lookup1_values"
	.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 16
	.type	__PRETTY_FUNCTION__.14, @object
	.size	__PRETTY_FUNCTION__.14, 27
__PRETTY_FUNCTION__.14:
	.string	"codebook_decode_scalar_raw"
	.align 16
	.type	__PRETTY_FUNCTION__.13, @object
	.size	__PRETTY_FUNCTION__.13, 22
__PRETTY_FUNCTION__.13:
	.string	"codebook_decode_start"
	.align 32
	.type	__PRETTY_FUNCTION__.12, @object
	.size	__PRETTY_FUNCTION__.12, 36
__PRETTY_FUNCTION__.12:
	.string	"codebook_decode_deinterleave_repeat"
	.align 16
	.type	__PRETTY_FUNCTION__.11, @object
	.size	__PRETTY_FUNCTION__.11, 23
__PRETTY_FUNCTION__.11:
	.string	"imdct_step3_iter0_loop"
	.align 8
	.type	__PRETTY_FUNCTION__.10, @object
	.size	__PRETTY_FUNCTION__.10, 13
__PRETTY_FUNCTION__.10:
	.string	"inverse_mdct"
	.align 8
	.type	__PRETTY_FUNCTION__.9, @object
	.size	__PRETTY_FUNCTION__.9, 11
__PRETTY_FUNCTION__.9:
	.string	"get_window"
	.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
.LC14:
	.long	1413754136
	.long	1074340347
	.align 16
.LC15:
	.long	-2147483648
	.long	0
	.long	0
	.long	0
	.align 8
.LC16:
	.long	0
	.long	1073741824
	.align 4
.LC17:
	.long	1056964608
	.align 8
.LC18:
	.long	0
	.long	1071644672
	.align 8
.LC19:
	.long	1413754136
	.long	1073291771
	.align 8
.LC34:
	.long	0
	.long	1086275584
	.align 8
.LC35:
	.long	0
	.long	-1061208064
	.align 4
.LC44:
	.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	"333141.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, #100]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #96]
	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, #100]
.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, #3
	bic	r3, r3, #3
	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, #80]
	cmp	r3, #0
	beq	.L9
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #80]
	ldr	r2, [fp, #-16]
	ldr	r2, [r2, #88]
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-20]
	add	r2, r2, r3
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #92]
	cmp	r2, r3
	ble	.L10
	mov	r3, #0
	b	.L11
.L10:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-20]
	add	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #88]
	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, #80]
	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, #3
	bic	r3, r3, #3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #80]
	cmp	r3, #0
	beq	.L19
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-12]
	sub	r2, r2, r3
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #88]
	cmp	r2, r3
	bge	.L20
	mov	r3, #0
	b	.L21
.L20:
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-12]
	sub	r2, r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3, #92]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #80]
	ldr	r2, [fp, #-8]
	ldr	r2, [r2, #92]
	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, #80]
	cmp	r3, #0
	beq	.L23
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-16]
	add	r3, r3, #3
	bic	r3, r3, #3
	add	r2, r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3, #92]
	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.6705
	.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/333141.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__.6734
	.word	1050
	.word	.LC0
	.word	.LC1
	.word	1073
	.word	.LC2
	.word	1078
	.word	.LC3
	.word	1080
	.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__.6776
	.word	1127
	.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__.6788
	.word	1147
	.word	.LC0
	.word	.LC7
	.word	uint32_compare
	.word	1177
	.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.6806
	.size	vorbis_validate, .-vorbis_validate
	.global	__aeabi_i2f
	.global	__aeabi_fdiv
	.global	__aeabi_d2iz
	.global	__aeabi_fadd
	.global	__aeabi_i2d
	.global	__aeabi_dcmpgt
	.section	.rodata
	.align	2
.LC9:
	.ascii	"pow((float) r+1, dim) > entries\000"
	.align	2
.LC10:
	.ascii	"(int) floor(pow((float) r, dim)) <= entries\000"
	.text
	.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_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	bne	.L149
	ldr	r3, .L152
	ldr	r2, .L152+4
	ldr	r1, .L152+8
	ldr	r0, .L152+12
	bl	__assert_fail
.L149:
	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	.L150
	ldr	r3, .L152
	ldr	r2, .L152+16
	ldr	r1, .L152+8
	ldr	r0, .L152+20
	bl	__assert_fail
.L150:
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L153:
	.align	2
.L152:
	.word	__PRETTY_FUNCTION__.6812
	.word	1202
	.word	.LC0
	.word	.LC9
	.word	1203
	.word	.LC10
	.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	.L155
.L156:
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #2
	mov	r0, r3
	bl	__aeabi_i2d
	ldr	r2, .L159
	ldr	r3, .L159+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, .L159
	ldr	r3, .L159+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, .L159
	ldr	r3, .L159+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, .L159
	ldr	r3, .L159+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]
.L155:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	blt	.L156
	mov	r3, #0
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-28]
	b	.L157
.L158:
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	lsl	r3, r3, #1
	mov	r0, r3
	bl	__aeabi_i2d
	ldr	r2, .L159
	ldr	r3, .L159+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, .L159
	ldr	r3, .L159+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]
.L157:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L158
	nop
	nop
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L160:
	.align	2
.L159:
	.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	.L162
.L163:
	ldr	r0, [fp, #-20]
	bl	__aeabi_i2d
	mov	r2, #0
	ldr	r3, .L164
	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, .L164
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r2, .L164+4
	ldr	r3, .L164+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, .L164+4
	ldr	r3, .L164+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]
.L162:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L163
	nop
	nop
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L165:
	.align	2
.L164:
	.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	.L167
.L168:
	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]
.L167:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	blt	.L168
	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, #264
	add	r3, r3, #2
	lsl	r3, r3, #2
	add	r3, r2, r3
	str	r1, [r3, #4]
	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
	lsl	r3, r3, #2
	add	r3, r2, r3
	str	r1, [r3, #4]
	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, #268
	add	r3, r3, #2
	lsl	r3, r3, #2
	add	r3, r2, r3
	str	r1, [r3, #4]
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	add	r3, r3, #264
	add	r3, r3, #2
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L170
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	add	r3, r3, #268
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L170
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	add	r3, r3, #268
	add	r3, r3, #2
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L171
.L170:
	mov	r1, #3
	ldr	r0, [fp, #-24]
	bl	error
	mov	r3, r0
	b	.L172
.L171:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	add	r3, r3, #264
	add	r3, r3, #2
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	add	r3, r3, #268
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r0, [r3, #4]
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	add	r3, r3, #268
	add	r3, r3, #2
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	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	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	add	r3, r3, #272
	lsl	r3, r3, #2
	add	r3, r2, r3
	str	r1, [r3, #4]
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	add	r3, r3, #272
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L173
	mov	r1, #3
	ldr	r0, [fp, #-24]
	bl	error
	mov	r3, r0
	b	.L172
.L173:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	add	r3, r3, #272
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	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, #272
	add	r3, r3, #2
	lsl	r3, r3, #2
	add	r3, r2, r3
	str	r1, [r3, #4]
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	add	r3, r3, #272
	add	r3, r3, #2
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L174
	mov	r1, #3
	ldr	r0, [fp, #-24]
	bl	error
	mov	r3, r0
	b	.L172
.L174:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	add	r3, r3, #272
	add	r3, r3, #2
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	compute_bitreverse
	mov	r3, #1
.L172:
	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	.L176
.L179:
	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	.L177
	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	.L177
	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]
.L177:
	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	.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
	bls	.L178
	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]
.L178:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L176:
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	blt	.L179
	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	.L181
	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	.L183
.L181:
	mvn	r3, #0
.L183:
	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, #32]
	cmp	r3, #0
	beq	.L185
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #32]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #40]
	cmp	r2, r3
	bcc	.L186
	ldr	r3, [fp, #-16]
	mov	r2, #1
	str	r2, [r3, #96]
	mov	r3, #0
	b	.L187
.L186:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	add	r1, r3, #1
	ldr	r2, [fp, #-16]
	str	r1, [r2, #32]
	ldrb	r3, [r3]	@ zero_extendqisi2
	b	.L187
.L185:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #20]
	mov	r0, r3
	bl	fgetc
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmn	r3, #1
	bne	.L188
	ldr	r3, [fp, #-16]
	mov	r2, #1
	str	r2, [r3, #96]
	mov	r3, #0
	b	.L187
.L188:
	ldr	r3, [fp, #-8]
	and	r3, r3, #255
.L187:
	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, #32]
	cmp	r3, #0
	beq	.L192
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #32]
	ldr	r3, [fp, #-16]
	add	r2, r2, r3
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #40]
	cmp	r2, r3
	bls	.L193
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3, #96]
	mov	r3, #0
	b	.L194
.L193:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #32]
	ldr	r2, [fp, #-16]
	mov	r1, r3
	ldr	r0, [fp, #-12]
	bl	memcpy
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #32]
	ldr	r3, [fp, #-16]
	add	r2, r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3, #32]
	mov	r3, #1
	b	.L194
.L192:
	ldr	r1, [fp, #-16]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #20]
	mov	r2, #1
	ldr	r0, [fp, #-12]
	bl	fread
	mov	r3, r0
	cmp	r3, #1
	bne	.L195
	mov	r3, #1
	b	.L194
.L195:
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3, #96]
	mov	r3, #0
.L194:
	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, #32]
	cmp	r3, #0
	beq	.L197
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #32]
	ldr	r3, [fp, #-20]
	add	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #32]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #32]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #40]
	cmp	r2, r3
	bcc	.L200
	ldr	r3, [fp, #-16]
	mov	r2, #1
	str	r2, [r3, #96]
	b	.L200
.L197:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #20]
	mov	r0, r3
	bl	ftell
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r0, [r3, #20]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	mov	r2, #0
	mov	r1, r3
	bl	fseek
	b	.L196
.L200:
	nop
.L196:
	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, #48]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L202
	mov	r3, #0
	b	.L203
.L202:
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #96]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #32]
	cmp	r3, #0
	beq	.L204
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-12]
	add	r2, r2, r3
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #40]
	cmp	r2, r3
	bcs	.L205
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bge	.L206
.L205:
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #32]
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3, #96]
	mov	r3, #0
	b	.L203
.L206:
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-12]
	add	r2, r2, r3
	ldr	r3, [fp, #-8]
	str	r2, [r3, #32]
	mov	r3, #1
	b	.L203
.L204:
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bhi	.L207
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bge	.L208
.L207:
	mvn	r3, #-2147483648
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3, #96]
	b	.L209
.L208:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #24]
	ldr	r2, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-12]
.L209:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #20]
	ldr	r1, [fp, #-12]
	mov	r2, #0
	mov	r0, r3
	bl	fseek
	mov	r3, r0
	cmp	r3, #0
	bne	.L210
	mov	r3, #1
	b	.L203
.L210:
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3, #96]
	ldr	r3, [fp, #-8]
	ldr	r0, [r3, #20]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #24]
	mov	r2, #2
	mov	r1, r3
	bl	fseek
	mov	r3, #0
.L203:
	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	.L212
	mov	r3, #0
	b	.L213
.L212:
	ldr	r0, [fp, #-8]
	bl	get8
	mov	r3, r0
	cmp	r3, #103
	beq	.L214
	mov	r3, #0
	b	.L213
.L214:
	ldr	r0, [fp, #-8]
	bl	get8
	mov	r3, r0
	cmp	r3, #103
	beq	.L215
	mov	r3, #0
	b	.L213
.L215:
	ldr	r0, [fp, #-8]
	bl	get8
	mov	r3, r0
	cmp	r3, #83
	beq	.L216
	mov	r3, #0
	b	.L213
.L216:
	mov	r3, #1
.L213:
	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 = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-48]
	ldr	r0, [fp, #-48]
	bl	get8
	mov	r3, r0
	cmp	r3, #0
	beq	.L218
	mov	r1, #31
	ldr	r0, [fp, #-48]
	bl	error
	mov	r3, r0
	b	.L219
.L218:
	ldr	r0, [fp, #-48]
	bl	get8
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-48]
	strb	r2, [r3, #1375]
	ldr	r0, [fp, #-48]
	bl	get32
	str	r0, [fp, #-28]
	ldr	r0, [fp, #-48]
	bl	get32
	str	r0, [fp, #-24]
	ldr	r0, [fp, #-48]
	bl	get32
	ldr	r0, [fp, #-48]
	bl	get32
	str	r0, [fp, #-20]
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-48]
	str	r2, [r3, #1112]
	ldr	r0, [fp, #-48]
	bl	get32
	ldr	r0, [fp, #-48]
	bl	get8
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-48]
	str	r2, [r3, #1116]
	ldr	r3, [fp, #-48]
	add	r1, r3, #1120
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #1116]
	mov	r2, r3
	ldr	r0, [fp, #-48]
	bl	getn
	mov	r3, r0
	cmp	r3, #0
	bne	.L220
	mov	r1, #10
	ldr	r0, [fp, #-48]
	bl	error
	mov	r3, r0
	b	.L219
.L220:
	ldr	r3, [fp, #-48]
	mvn	r2, #1
	str	r2, [r3, #1404]
	ldr	r3, [fp, #-28]
	cmn	r3, #1
	bne	.L221
	ldr	r3, [fp, #-24]
	cmn	r3, #1
	beq	.L222
.L221:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #1116]
	sub	r3, r3, #1
	str	r3, [fp, #-40]
	b	.L223
.L226:
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	add	r3, r3, #1120
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #255
	bne	.L230
	ldr	r3, [fp, #-40]
	sub	r3, r3, #1
	str	r3, [fp, #-40]
.L223:
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bge	.L226
	b	.L225
.L230:
	nop
.L225:
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	blt	.L222
	ldr	r3, [fp, #-48]
	ldr	r2, [fp, #-40]
	str	r2, [r3, #1404]
	ldr	r3, [fp, #-48]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #1408]
.L222:
	ldr	r3, [fp, #-48]
	ldrb	r3, [r3, #1377]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L227
	mov	r3, #0
	str	r3, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-36]
	b	.L228
.L229:
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	add	r3, r3, #1120
	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]
.L228:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #1116]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	blt	.L229
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #1116]
	add	r3, r3, #27
	ldr	r2, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #52]
	str	r3, [fp, #-16]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-48]
	add	r3, r3, #56
	sub	r2, fp, #16
	ldm	r2, {r0, r1, r2}
	stm	r3, {r0, r1, r2}
.L227:
	ldr	r3, [fp, #-48]
	mov	r2, #0
	str	r2, [r3, #1380]
	mov	r3, #1
.L219:
	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	.L232
	mov	r1, #30
	ldr	r0, [fp, #-8]
	bl	error
	mov	r3, r0
	b	.L233
.L232:
	ldr	r0, [fp, #-8]
	bl	start_page_no_capturepattern
	mov	r3, r0
.L233:
	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	.L235
.L238:
	ldr	r0, [fp, #-8]
	bl	start_page
	mov	r3, r0
	cmp	r3, #0
	bne	.L236
	mov	r3, #0
	b	.L237
.L236:
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #1375]	@ zero_extendqisi2
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L235
	mov	r1, #32
	ldr	r0, [fp, #-8]
	bl	error
	mov	r3, r0
	b	.L237
.L235:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #1380]
	cmn	r3, #1
	beq	.L238
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #1384]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #1396]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #1400]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	strb	r2, [r3, #1376]
	mov	r3, #1
.L237:
	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, #1380]
	cmn	r3, #1
	bne	.L240
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #96]
	cmp	r3, #0
	beq	.L241
	mov	r3, #0
	b	.L242
.L241:
	ldr	r3, [fp, #-8]
	cmp	r3, #79
	beq	.L243
	mov	r1, #30
	ldr	r0, [fp, #-16]
	bl	error
	mov	r3, r0
	b	.L242
.L243:
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	cmp	r3, #103
	beq	.L244
	mov	r1, #30
	ldr	r0, [fp, #-16]
	bl	error
	mov	r3, r0
	b	.L242
.L244:
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	cmp	r3, #103
	beq	.L245
	mov	r1, #30
	ldr	r0, [fp, #-16]
	bl	error
	mov	r3, r0
	b	.L242
.L245:
	ldr	r0, [fp, #-16]
	bl	get8
	mov	r3, r0
	cmp	r3, #83
	beq	.L246
	mov	r1, #30
	ldr	r0, [fp, #-16]
	bl	error
	mov	r3, r0
	b	.L242
.L246:
	ldr	r0, [fp, #-16]
	bl	start_page_no_capturepattern
	mov	r3, r0
	cmp	r3, #0
	bne	.L247
	mov	r3, #0
	b	.L242
.L247:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3, #1375]	@ zero_extendqisi2
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L240
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #1384]
	ldr	r3, [fp, #-16]
	mov	r2, #0
	strb	r2, [r3, #1376]
	mov	r1, #32
	ldr	r0, [fp, #-16]
	bl	error
	mov	r3, r0
	b	.L242
.L240:
	ldr	r0, [fp, #-16]
	bl	start_packet
	mov	r3, r0
.L242:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	maybe_start_packet, .-maybe_start_packet
	.section	.rodata
	.align	2
.LC11:
	.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, #1384]
	cmp	r3, #0
	beq	.L249
	mov	r3, #0
	b	.L250
.L249:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1380]
	cmn	r3, #1
	bne	.L251
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1116]
	sub	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3, #1388]
	ldr	r0, [fp, #-16]
	bl	start_page
	mov	r3, r0
	cmp	r3, #0
	bne	.L252
	ldr	r3, [fp, #-16]
	mov	r2, #1
	str	r2, [r3, #1384]
	mov	r3, #0
	b	.L250
.L252:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3, #1375]	@ zero_extendqisi2
	and	r3, r3, #1
	cmp	r3, #0
	bne	.L251
	mov	r1, #32
	ldr	r0, [fp, #-16]
	bl	error
	mov	r3, r0
	b	.L250
.L251:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1380]
	add	r1, r3, #1
	ldr	r2, [fp, #-16]
	str	r1, [r2, #1380]
	ldr	r2, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3, #1120]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #254
	bgt	.L253
	ldr	r3, [fp, #-16]
	mov	r2, #1
	str	r2, [r3, #1384]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1380]
	sub	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3, #1388]
.L253:
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #1380]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1116]
	cmp	r2, r3
	blt	.L254
	ldr	r3, [fp, #-16]
	mvn	r2, #0
	str	r2, [r3, #1380]
.L254:
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3, #1376]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L255
	ldr	r3, .L256
	ldr	r2, .L256+4
	ldr	r1, .L256+8
	ldr	r0, .L256+12
	bl	__assert_fail
.L255:
	ldr	r3, [fp, #-8]
	and	r2, r3, #255
	ldr	r3, [fp, #-16]
	strb	r2, [r3, #1376]
	ldr	r3, [fp, #-8]
.L250:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L257:
	.align	2
.L256:
	.word	__PRETTY_FUNCTION__.6937
	.word	1509
	.word	.LC0
	.word	.LC11
	.size	next_segment, .-next_segment
	.section	.rodata
	.align	2
.LC12:
	.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, #1376]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L259
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #1384]
	cmp	r3, #0
	beq	.L260
	mvn	r3, #0
	b	.L261
.L260:
	ldr	r0, [fp, #-8]
	bl	next_segment
	mov	r3, r0
	cmp	r3, #0
	bne	.L259
	mvn	r3, #0
	b	.L261
.L259:
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #1376]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L262
	ldr	r3, .L263
	ldr	r2, .L263+4
	ldr	r1, .L263+8
	ldr	r0, .L263+12
	bl	__assert_fail
.L262:
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3, #1376]	@ zero_extendqisi2
	sub	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, [fp, #-8]
	strb	r2, [r3, #1376]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #1400]
	add	r2, r3, #1
	ldr	r3, [fp, #-8]
	str	r2, [r3, #1400]
	ldr	r0, [fp, #-8]
	bl	get8
	mov	r3, r0
.L261:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L264:
	.align	2
.L263:
	.word	__PRETTY_FUNCTION__.6941
	.word	1523
	.word	.LC0
	.word	.LC12
	.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, #1396]
	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	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
.L268:
	ldr	r0, [fp, #-8]
	bl	get8_packet_raw
	mov	r3, r0
	cmn	r3, #1
	bne	.L268
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	flush_packet, .-flush_packet
	.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, #1396]
	cmp	r3, #0
	bge	.L270
	mov	r3, #0
	b	.L271
.L270:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1396]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	ble	.L272
	ldr	r3, [fp, #-20]
	cmp	r3, #24
	ble	.L273
	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	.L271
.L273:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1396]
	cmp	r3, #0
	bne	.L275
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #1392]
	b	.L275
.L277:
	ldr	r0, [fp, #-16]
	bl	get8_packet_raw
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmn	r3, #1
	bne	.L276
	ldr	r3, [fp, #-16]
	mvn	r2, #0
	str	r2, [r3, #1396]
	mov	r3, #0
	b	.L271
.L276:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1392]
	ldr	r2, [fp, #-16]
	ldr	r2, [r2, #1396]
	ldr	r1, [fp, #-12]
	lsl	r2, r1, r2
	add	r2, r3, r2
	ldr	r3, [fp, #-16]
	str	r2, [r3, #1392]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1396]
	add	r2, r3, #8
	ldr	r3, [fp, #-16]
	str	r2, [r3, #1396]
.L275:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1396]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	bgt	.L277
.L272:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1396]
	cmp	r3, #0
	bge	.L278
	mov	r3, #0
	b	.L271
.L278:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1392]
	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, #1392]
	ldr	r3, [fp, #-20]
	lsr	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #1392]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #1396]
	ldr	r3, [fp, #-20]
	sub	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #1396]
	ldr	r3, [fp, #-8]
.L271:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.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, #1396]
	cmp	r3, #24
	bgt	.L279
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1396]
	cmp	r3, #0
	bne	.L284
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #1392]
.L284:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1384]
	cmp	r3, #0
	beq	.L282
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3, #1376]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L285
.L282:
	ldr	r0, [fp, #-16]
	bl	get8_packet_raw
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmn	r3, #1
	beq	.L286
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #1392]
	ldr	r1, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1396]
	lsl	r3, r1, r3
	add	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #1392]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1396]
	add	r2, r3, #8
	ldr	r3, [fp, #-16]
	str	r2, [r3, #1396]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1396]
	cmp	r3, #24
	ble	.L284
	b	.L279
.L285:
	nop
	b	.L279
.L286:
	nop
.L279:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	prep_huffman, .-prep_huffman
	.section	.rodata
	.align	2
.LC13:
	.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	.L288
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #2084]
	cmp	r3, #0
	bne	.L288
	mvn	r3, #0
	b	.L289
.L288:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #4]
	cmp	r3, #8
	ble	.L290
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #2084]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	b	.L291
.L290:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #32]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
.L291:
	cmp	r3, #0
	beq	.L292
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1392]
	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	.L293
.L295:
	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	.L294
	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	.L293
.L294:
	ldr	r3, [fp, #-20]
	asr	r3, r3, #1
	str	r3, [fp, #-20]
.L293:
	ldr	r3, [fp, #-20]
	cmp	r3, #1
	bgt	.L295
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L296
	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]
.L296:
	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, #1396]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bgt	.L297
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #1392]
	ldr	r3, [fp, #-12]
	lsr	r2, r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3, #1392]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #1396]
	ldr	r3, [fp, #-12]
	sub	r2, r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3, #1396]
	ldr	r3, [fp, #-24]
	b	.L289
.L297:
	ldr	r3, [fp, #-32]
	mov	r2, #0
	str	r2, [r3, #1396]
	mvn	r3, #0
	b	.L289
.L292:
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L298
	ldr	r3, .L305
	ldr	r2, .L305+4
	ldr	r1, .L305+8
	ldr	r0, .L305+12
	bl	__assert_fail
.L298:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L299
.L303:
	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	.L304
	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, #1392]
	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	.L301
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1396]
	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	.L302
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1392]
	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, #1392]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1396]
	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, #1396]
	ldr	r3, [fp, #-28]
	b	.L289
.L302:
	ldr	r3, [fp, #-32]
	mov	r2, #0
	str	r2, [r3, #1396]
	mvn	r3, #0
	b	.L289
.L304:
	nop
.L301:
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L299:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	blt	.L303
	mov	r1, #21
	ldr	r0, [fp, #-32]
	bl	error
	ldr	r3, [fp, #-32]
	mov	r2, #0
	str	r2, [r3, #1396]
	mvn	r3, #0
.L289:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L306:
	.align	2
.L305:
	.word	__PRETTY_FUNCTION__.6984
	.word	1639
	.word	.LC0
	.word	.LC13
	.size	codebook_decode_scalar_raw, .-codebook_decode_scalar_raw
	.section	.rodata
	.align	2
.LC14:
	.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	.L308
	mov	r1, #21
	ldr	r0, [fp, #-16]
	bl	error
	b	.L309
.L308:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1396]
	cmp	r3, #9
	bgt	.L310
	ldr	r0, [fp, #-16]
	bl	prep_huffman
.L310:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1392]
	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	.L311
	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, #1392]
	ldr	r3, [fp, #-8]
	lsr	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #1392]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #1396]
	ldr	r3, [fp, #-8]
	sub	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #1396]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1396]
	cmp	r3, #0
	bge	.L312
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #1396]
	mvn	r3, #0
	str	r3, [fp, #-12]
	b	.L312
.L311:
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-16]
	bl	codebook_decode_scalar_raw
	str	r0, [fp, #-12]
.L312:
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L313
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #2092]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L313
	ldr	r3, .L316
	ldr	r2, .L316+4
	ldr	r1, .L316+8
	ldr	r0, .L316+12
	bl	__assert_fail
.L313:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bge	.L309
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3, #1376]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L314
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1384]
	cmp	r3, #0
	beq	.L314
	ldr	r3, [fp, #-12]
	b	.L315
.L314:
	mov	r1, #21
	ldr	r0, [fp, #-16]
	bl	error
.L309:
	ldr	r3, [fp, #-12]
.L315:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L317:
	.align	2
.L316:
	.word	__PRETTY_FUNCTION__.6995
	.word	1727
	.word	.LC0
	.word	.LC14
	.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	.L319
	mov	r3, #0
	b	.L320
.L319:
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	ldr	r2, [fp, #-52]
	cmp	r2, r3
	ble	.L321
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	str	r3, [fp, #-52]
.L321:
	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	.L322
	mov	r3, #0
	str	r3, [fp, #-28]	@ float
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L323
.L324:
	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]
.L323:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	blt	.L324
	b	.L325
.L322:
	mov	r3, #0
	str	r3, [fp, #-20]	@ float
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L326
.L327:
	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]
.L326:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	blt	.L327
.L325:
	mov	r3, #1
.L320:
	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	.L329
	mov	r3, #0
	b	.L330
.L329:
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	ldr	r2, [fp, #-44]
	cmp	r2, r3
	ble	.L331
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	str	r3, [fp, #-44]
.L331:
	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	.L332
.L334:
	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	.L333
	ldr	r3, [fp, #-16]	@ float
	str	r3, [fp, #-24]	@ float
.L333:
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L332:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	blt	.L334
	mov	r3, #1
.L330:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	codebook_decode_step, .-codebook_decode_step
	.section	.rodata
	.align	2
.LC15:
	.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	.L338
	mov	r1, #21
	ldr	r0, [fp, #-56]
	bl	error
	mov	r3, r0
	b	.L337
.L356:
	mov	r3, #0
	str	r3, [fp, #-28]	@ float
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #1396]
	cmp	r3, #9
	bgt	.L339
	ldr	r0, [fp, #-56]
	bl	prep_huffman
.L339:
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #1392]
	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	.L340
	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, #1392]
	ldr	r3, [fp, #-24]
	lsr	r2, r2, r3
	ldr	r3, [fp, #-56]
	str	r2, [r3, #1392]
	ldr	r3, [fp, #-56]
	ldr	r2, [r3, #1396]
	ldr	r3, [fp, #-24]
	sub	r2, r2, r3
	ldr	r3, [fp, #-56]
	str	r2, [r3, #1396]
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #1396]
	cmp	r3, #0
	bge	.L341
	ldr	r3, [fp, #-56]
	mov	r2, #0
	str	r2, [r3, #1396]
	mvn	r3, #0
	str	r3, [fp, #-36]
	b	.L341
.L340:
	ldr	r1, [fp, #-60]
	ldr	r0, [fp, #-56]
	bl	codebook_decode_scalar_raw
	str	r0, [fp, #-36]
.L341:
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L342
	ldr	r3, [fp, #-60]
	ldr	r3, [r3, #2092]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	blt	.L342
	ldr	r3, .L357
	ldr	r2, .L357+4
	ldr	r1, .L357+8
	ldr	r0, .L357+12
	bl	__assert_fail
.L342:
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	bge	.L343
	ldr	r3, [fp, #-56]
	ldrb	r3, [r3, #1376]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L344
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #1384]
	cmp	r3, #0
	beq	.L344
	mov	r3, #0
	b	.L337
.L344:
	mov	r1, #21
	ldr	r0, [fp, #-56]
	bl	error
	mov	r3, r0
	b	.L337
.L343:
	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	.L345
	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]
.L345:
	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	.L346
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L347
.L350:
	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	.L348
	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
.L348:
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-68]
	cmp	r2, r3
	bne	.L349
	mov	r3, #0
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
.L349:
	ldr	r3, [fp, #-16]	@ float
	str	r3, [fp, #-28]	@ float
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L347:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	blt	.L350
	b	.L351
.L346:
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L352
.L355:
	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	.L353
	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
.L353:
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-68]
	cmp	r2, r3
	bne	.L354
	mov	r3, #0
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
.L354:
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L352:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	blt	.L355
.L351:
	ldr	r2, [fp, #16]
	ldr	r3, [fp, #-32]
	sub	r3, r2, r3
	str	r3, [fp, #16]
.L338:
	ldr	r3, [fp, #16]
	cmp	r3, #0
	bgt	.L356
	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
.L337:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L358:
	.align	2
.L357:
	.word	__PRETTY_FUNCTION__.7044
	.word	1821
	.word	.LC0
	.word	.LC15
	.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	.L360
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-8]
	sub	r3, r2, r3
	b	.L362
.L360:
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
.L362:
	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	.L364
	ldr	r3, [fp, #-16]
	sub	r3, r3, #1
	str	r3, [fp, #-32]
	b	.L365
.L364:
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L365:
	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	.L366
	ldr	r3, [fp, #8]
	str	r3, [fp, #-60]
.L366:
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-60]
	cmp	r2, r3
	bge	.L372
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r2, .L373
	ldr	r3, [fp, #-40]
	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	.L368
.L371:
	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	.L369
	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	.L370
.L369:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-40]
.L370:
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r2, .L373
	ldr	r3, [fp, #-40]
	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]
.L368:
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-60]
	cmp	r2, r3
	blt	.L371
.L372:
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L374:
	.align	2
.L373:
	.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	.L376
	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	.L377
.L380:
	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	.L378
	mov	r3, #0
	b	.L379
.L378:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L377:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	blt	.L380
	b	.L381
.L376:
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L382
.L384:
	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	.L383
	mov	r3, #0
	b	.L379
.L383:
	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]
.L382:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #4]
	cmp	r2, r3
	blt	.L384
.L381:
	mov	r3, #1
.L379:
	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
.LC16:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	decode_residue, %function
decode_residue:
	@ args = 8, pretend = 0, frame = 240
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #256
	str	r0, [fp, #-224]
	str	r1, [fp, #-228]
	str	r2, [fp, #-232]
	str	r3, [fp, #-236]
	ldr	r3, [fp, #8]
	str	r3, [fp, #-240]
	ldr	r3, .L474
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-224]
	ldr	r1, [r3, #396]
	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, #-168]
	ldr	r2, [fp, #-224]
	ldr	r3, [fp, #4]
	add	r3, r3, #132
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #4
	ldrh	r3, [r3]
	str	r3, [fp, #-164]
	ldr	r3, [fp, #-168]
	ldrb	r3, [r3, #13]	@ zero_extendqisi2
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-224]
	ldr	r1, [r3, #124]
	ldr	r2, [fp, #-160]
	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, #-156]
	ldr	r3, [fp, #-164]
	cmp	r3, #2
	bne	.L386
	ldr	r3, [fp, #-236]
	lsl	r3, r3, #1
	b	.L387
.L386:
	ldr	r3, [fp, #-236]
.L387:
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-168]
	ldr	r3, [r3]
	ldr	r2, [fp, #-152]
	cmp	r2, r3
	movcc	r3, r2
	movcs	r3, r3
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-168]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-152]
	cmp	r2, r3
	movcc	r3, r2
	movcs	r3, r3
	str	r3, [fp, #-144]
	ldr	r2, [fp, #-144]
	ldr	r3, [fp, #-148]
	sub	r3, r2, r3
	str	r3, [fp, #-140]
	ldr	r2, [fp, #-140]
	ldr	r3, [fp, #-168]
	ldr	r3, [r3, #8]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidiv
	mov	r3, r0
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-224]
	ldr	r3, [r3, #92]
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-224]
	ldr	r3, [r3, #80]
	cmp	r3, #0
	beq	.L388
	ldr	r3, [fp, #-136]
	add	r3, r3, #1
	ldr	r2, [fp, #-224]
	ldr	r2, [r2, #4]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-224]
	bl	setup_temp_malloc
	b	.L389
.L388:
	ldr	r3, [fp, #-136]
	add	r3, r3, #1
	ldr	r2, [fp, #-224]
	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
.L389:
	ldr	r3, [fp, #-224]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #2
	mov	r2, r3
	bl	make_block_array
	str	r0, [fp, #-128]
	mov	r3, #0
	str	r3, [fp, #-212]
	b	.L390
.L392:
	ldr	r3, [fp, #-212]
	ldr	r2, [fp, #-240]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L391
	ldr	r3, [fp, #-212]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-228]
	add	r3, r2, r3
	ldr	r0, [r3]
	ldr	r3, [fp, #-236]
	lsl	r3, r3, #2
	mov	r2, r3
	mov	r1, #0
	bl	memset
.L391:
	ldr	r3, [fp, #-212]
	add	r3, r3, #1
	str	r3, [fp, #-212]
.L390:
	ldr	r2, [fp, #-212]
	ldr	r3, [fp, #-232]
	cmp	r2, r3
	blt	.L392
	ldr	r3, [fp, #-164]
	cmp	r3, #2
	bne	.L393
	ldr	r3, [fp, #-232]
	cmp	r3, #1
	beq	.L393
	mov	r3, #0
	str	r3, [fp, #-208]
	b	.L394
.L397:
	ldr	r3, [fp, #-208]
	ldr	r2, [fp, #-240]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L467
	ldr	r3, [fp, #-208]
	add	r3, r3, #1
	str	r3, [fp, #-208]
.L394:
	ldr	r2, [fp, #-208]
	ldr	r3, [fp, #-232]
	cmp	r2, r3
	blt	.L397
	b	.L396
.L467:
	nop
.L396:
	ldr	r2, [fp, #-208]
	ldr	r3, [fp, #-232]
	cmp	r2, r3
	beq	.L468
	mov	r3, #0
	str	r3, [fp, #-204]
	b	.L400
.L446:
	mov	r3, #0
	str	r3, [fp, #-200]
	mov	r3, #0
	str	r3, [fp, #-196]
	ldr	r3, [fp, #-232]
	cmp	r3, #2
	bne	.L401
	b	.L402
.L415:
	ldr	r3, [fp, #-168]
	ldr	r2, [r3]
	ldr	r3, [fp, #-168]
	ldr	r3, [r3, #8]
	ldr	r1, [fp, #-200]
	mul	r3, r1, r3
	add	r3, r2, r3
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	and	r3, r3, #1
	str	r3, [fp, #-220]
	ldr	r3, [fp, #-68]
	asr	r3, r3, #1
	str	r3, [fp, #-216]
	ldr	r3, [fp, #-204]
	cmp	r3, #0
	bne	.L403
	ldr	r3, [fp, #-224]
	ldr	r1, [r3, #124]
	ldr	r3, [fp, #-168]
	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, #-224]
	ldr	r3, [r3, #1396]
	cmp	r3, #9
	bgt	.L404
	ldr	r0, [fp, #-224]
	bl	prep_huffman
.L404:
	ldr	r3, [fp, #-224]
	ldr	r3, [r3, #1392]
	lsl	r3, r3, #22
	lsr	r3, r3, #22
	str	r3, [fp, #-192]
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-192]
	add	r3, r3, #16
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #4
	ldrsh	r3, [r3]
	str	r3, [fp, #-192]
	ldr	r3, [fp, #-192]
	cmp	r3, #0
	blt	.L405
	ldr	r3, [fp, #-64]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-192]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-224]
	ldr	r2, [r3, #1392]
	ldr	r3, [fp, #-60]
	lsr	r2, r2, r3
	ldr	r3, [fp, #-224]
	str	r2, [r3, #1392]
	ldr	r3, [fp, #-224]
	ldr	r2, [r3, #1396]
	ldr	r3, [fp, #-60]
	sub	r2, r2, r3
	ldr	r3, [fp, #-224]
	str	r2, [r3, #1396]
	ldr	r3, [fp, #-224]
	ldr	r3, [r3, #1396]
	cmp	r3, #0
	bge	.L406
	ldr	r3, [fp, #-224]
	mov	r2, #0
	str	r2, [r3, #1396]
	mvn	r3, #0
	str	r3, [fp, #-192]
	b	.L406
.L405:
	ldr	r1, [fp, #-64]
	ldr	r0, [fp, #-224]
	bl	codebook_decode_scalar_raw
	str	r0, [fp, #-192]
.L406:
	ldr	r3, [fp, #-64]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L407
	ldr	r3, [fp, #-64]
	ldr	r2, [r3, #2088]
	ldr	r3, [fp, #-192]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-192]
.L407:
	ldr	r3, [fp, #-192]
	cmn	r3, #1
	beq	.L469
	ldr	r3, [fp, #-168]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-192]
	lsl	r3, r3, #2
	add	r2, r2, r3
	ldr	r3, [fp, #-128]
	ldr	r1, [r3]
	ldr	r3, [fp, #-196]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r2, [r2]
	str	r2, [r3]
.L403:
	mov	r3, #0
	str	r3, [fp, #-212]
	b	.L410
.L414:
	ldr	r3, [fp, #-168]
	ldr	r2, [r3]
	ldr	r3, [fp, #-168]
	ldr	r3, [r3, #8]
	ldr	r1, [fp, #-200]
	mul	r3, r1, r3
	add	r3, r2, r3
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-128]
	ldr	r2, [r3]
	ldr	r3, [fp, #-196]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-212]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-168]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #4
	add	r2, r2, r3
	ldr	r3, [fp, #-204]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r3, [r3]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	blt	.L411
	ldr	r3, [fp, #-224]
	ldr	r1, [r3, #124]
	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, #-168]
	ldr	r3, [r3, #8]
	str	r3, [sp, #12]
	ldr	r3, [fp, #-236]
	str	r3, [sp, #8]
	sub	r3, fp, #216
	str	r3, [sp, #4]
	sub	r3, fp, #220
	str	r3, [sp]
	ldr	r3, [fp, #-232]
	ldr	r2, [fp, #-228]
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-224]
	bl	codebook_decode_deinterleave_repeat
	mov	r3, r0
	cmp	r3, #0
	bne	.L412
	b	.L399
.L411:
	ldr	r3, [fp, #-168]
	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, #-220]
	ldr	r3, [fp, #-56]
	asr	r3, r3, #1
	str	r3, [fp, #-216]
.L412:
	ldr	r3, [fp, #-212]
	add	r3, r3, #1
	str	r3, [fp, #-212]
	ldr	r3, [fp, #-200]
	add	r3, r3, #1
	str	r3, [fp, #-200]
.L410:
	ldr	r2, [fp, #-212]
	ldr	r3, [fp, #-156]
	cmp	r2, r3
	bge	.L413
	ldr	r2, [fp, #-200]
	ldr	r3, [fp, #-136]
	cmp	r2, r3
	blt	.L414
.L413:
	ldr	r3, [fp, #-196]
	add	r3, r3, #1
	str	r3, [fp, #-196]
.L402:
	ldr	r2, [fp, #-200]
	ldr	r3, [fp, #-136]
	cmp	r2, r3
	blt	.L415
	b	.L416
.L401:
	ldr	r3, [fp, #-232]
	cmp	r3, #1
	bne	.L432
	b	.L418
.L431:
	ldr	r3, [fp, #-168]
	ldr	r2, [r3]
	ldr	r3, [fp, #-168]
	ldr	r3, [r3, #8]
	ldr	r1, [fp, #-200]
	mul	r3, r1, r3
	add	r3, r2, r3
	str	r3, [fp, #-96]
	mov	r3, #0
	str	r3, [fp, #-220]
	ldr	r3, [fp, #-96]
	str	r3, [fp, #-216]
	ldr	r3, [fp, #-204]
	cmp	r3, #0
	bne	.L419
	ldr	r3, [fp, #-224]
	ldr	r1, [r3, #124]
	ldr	r3, [fp, #-168]
	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, #-224]
	ldr	r3, [r3, #1396]
	cmp	r3, #9
	bgt	.L420
	ldr	r0, [fp, #-224]
	bl	prep_huffman
.L420:
	ldr	r3, [fp, #-224]
	ldr	r3, [r3, #1392]
	lsl	r3, r3, #22
	lsr	r3, r3, #22
	str	r3, [fp, #-188]
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-188]
	add	r3, r3, #16
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #4
	ldrsh	r3, [r3]
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-188]
	cmp	r3, #0
	blt	.L421
	ldr	r3, [fp, #-92]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-188]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-224]
	ldr	r2, [r3, #1392]
	ldr	r3, [fp, #-88]
	lsr	r2, r2, r3
	ldr	r3, [fp, #-224]
	str	r2, [r3, #1392]
	ldr	r3, [fp, #-224]
	ldr	r2, [r3, #1396]
	ldr	r3, [fp, #-88]
	sub	r2, r2, r3
	ldr	r3, [fp, #-224]
	str	r2, [r3, #1396]
	ldr	r3, [fp, #-224]
	ldr	r3, [r3, #1396]
	cmp	r3, #0
	bge	.L422
	ldr	r3, [fp, #-224]
	mov	r2, #0
	str	r2, [r3, #1396]
	mvn	r3, #0
	str	r3, [fp, #-188]
	b	.L422
.L421:
	ldr	r1, [fp, #-92]
	ldr	r0, [fp, #-224]
	bl	codebook_decode_scalar_raw
	str	r0, [fp, #-188]
.L422:
	ldr	r3, [fp, #-92]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L423
	ldr	r3, [fp, #-92]
	ldr	r2, [r3, #2088]
	ldr	r3, [fp, #-188]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-188]
.L423:
	ldr	r3, [fp, #-188]
	cmn	r3, #1
	beq	.L470
	ldr	r3, [fp, #-168]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-188]
	lsl	r3, r3, #2
	add	r2, r2, r3
	ldr	r3, [fp, #-128]
	ldr	r1, [r3]
	ldr	r3, [fp, #-196]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r2, [r2]
	str	r2, [r3]
.L419:
	mov	r3, #0
	str	r3, [fp, #-212]
	b	.L426
.L430:
	ldr	r3, [fp, #-168]
	ldr	r2, [r3]
	ldr	r3, [fp, #-168]
	ldr	r3, [r3, #8]
	ldr	r1, [fp, #-200]
	mul	r3, r1, r3
	add	r3, r2, r3
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-128]
	ldr	r2, [r3]
	ldr	r3, [fp, #-196]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-212]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-168]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-80]
	lsl	r3, r3, #4
	add	r2, r2, r3
	ldr	r3, [fp, #-204]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r3, [r3]
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	blt	.L427
	ldr	r3, [fp, #-224]
	ldr	r1, [r3, #124]
	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, #-168]
	ldr	r3, [r3, #8]
	str	r3, [sp, #12]
	ldr	r3, [fp, #-236]
	str	r3, [sp, #8]
	sub	r3, fp, #216
	str	r3, [sp, #4]
	sub	r3, fp, #220
	str	r3, [sp]
	ldr	r3, [fp, #-232]
	ldr	r2, [fp, #-228]
	ldr	r1, [fp, #-72]
	ldr	r0, [fp, #-224]
	bl	codebook_decode_deinterleave_repeat
	mov	r3, r0
	cmp	r3, #0
	bne	.L428
	b	.L399
.L427:
	ldr	r3, [fp, #-168]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-84]
	add	r3, r2, r3
	str	r3, [fp, #-84]
	mov	r3, #0
	str	r3, [fp, #-220]
	ldr	r3, [fp, #-84]
	str	r3, [fp, #-216]
.L428:
	ldr	r3, [fp, #-212]
	add	r3, r3, #1
	str	r3, [fp, #-212]
	ldr	r3, [fp, #-200]
	add	r3, r3, #1
	str	r3, [fp, #-200]
.L426:
	ldr	r2, [fp, #-212]
	ldr	r3, [fp, #-156]
	cmp	r2, r3
	bge	.L429
	ldr	r2, [fp, #-200]
	ldr	r3, [fp, #-136]
	cmp	r2, r3
	blt	.L430
.L429:
	ldr	r3, [fp, #-196]
	add	r3, r3, #1
	str	r3, [fp, #-196]
.L418:
	ldr	r2, [fp, #-200]
	ldr	r3, [fp, #-136]
	cmp	r2, r3
	blt	.L431
	b	.L416
.L445:
	ldr	r3, [fp, #-168]
	ldr	r2, [r3]
	ldr	r3, [fp, #-168]
	ldr	r3, [r3, #8]
	ldr	r1, [fp, #-200]
	mul	r3, r1, r3
	add	r3, r2, r3
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-124]
	ldr	r1, [fp, #-232]
	mov	r0, r3
	bl	__aeabi_idivmod
	mov	r3, r1
	str	r3, [fp, #-220]
	ldr	r1, [fp, #-232]
	ldr	r0, [fp, #-124]
	bl	__aeabi_idiv
	mov	r3, r0
	str	r3, [fp, #-216]
	ldr	r3, [fp, #-204]
	cmp	r3, #0
	bne	.L433
	ldr	r3, [fp, #-224]
	ldr	r1, [r3, #124]
	ldr	r3, [fp, #-168]
	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, #-120]
	ldr	r3, [fp, #-224]
	ldr	r3, [r3, #1396]
	cmp	r3, #9
	bgt	.L434
	ldr	r0, [fp, #-224]
	bl	prep_huffman
.L434:
	ldr	r3, [fp, #-224]
	ldr	r3, [r3, #1392]
	lsl	r3, r3, #22
	lsr	r3, r3, #22
	str	r3, [fp, #-184]
	ldr	r2, [fp, #-120]
	ldr	r3, [fp, #-184]
	add	r3, r3, #16
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #4
	ldrsh	r3, [r3]
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-184]
	cmp	r3, #0
	blt	.L435
	ldr	r3, [fp, #-120]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-184]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-224]
	ldr	r2, [r3, #1392]
	ldr	r3, [fp, #-116]
	lsr	r2, r2, r3
	ldr	r3, [fp, #-224]
	str	r2, [r3, #1392]
	ldr	r3, [fp, #-224]
	ldr	r2, [r3, #1396]
	ldr	r3, [fp, #-116]
	sub	r2, r2, r3
	ldr	r3, [fp, #-224]
	str	r2, [r3, #1396]
	ldr	r3, [fp, #-224]
	ldr	r3, [r3, #1396]
	cmp	r3, #0
	bge	.L436
	ldr	r3, [fp, #-224]
	mov	r2, #0
	str	r2, [r3, #1396]
	mvn	r3, #0
	str	r3, [fp, #-184]
	b	.L436
.L435:
	ldr	r1, [fp, #-120]
	ldr	r0, [fp, #-224]
	bl	codebook_decode_scalar_raw
	str	r0, [fp, #-184]
.L436:
	ldr	r3, [fp, #-120]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L437
	ldr	r3, [fp, #-120]
	ldr	r2, [r3, #2088]
	ldr	r3, [fp, #-184]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-184]
.L437:
	ldr	r3, [fp, #-184]
	cmn	r3, #1
	beq	.L471
	ldr	r3, [fp, #-168]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-184]
	lsl	r3, r3, #2
	add	r2, r2, r3
	ldr	r3, [fp, #-128]
	ldr	r1, [r3]
	ldr	r3, [fp, #-196]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r2, [r2]
	str	r2, [r3]
.L433:
	mov	r3, #0
	str	r3, [fp, #-212]
	b	.L440
.L444:
	ldr	r3, [fp, #-168]
	ldr	r2, [r3]
	ldr	r3, [fp, #-168]
	ldr	r3, [r3, #8]
	ldr	r1, [fp, #-200]
	mul	r3, r1, r3
	add	r3, r2, r3
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-128]
	ldr	r2, [r3]
	ldr	r3, [fp, #-196]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-212]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-168]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-108]
	lsl	r3, r3, #4
	add	r2, r2, r3
	ldr	r3, [fp, #-204]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r3, [r3]
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-104]
	cmp	r3, #0
	blt	.L441
	ldr	r3, [fp, #-224]
	ldr	r1, [r3, #124]
	ldr	r2, [fp, #-104]
	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, #-100]
	ldr	r3, [fp, #-168]
	ldr	r3, [r3, #8]
	str	r3, [sp, #12]
	ldr	r3, [fp, #-236]
	str	r3, [sp, #8]
	sub	r3, fp, #216
	str	r3, [sp, #4]
	sub	r3, fp, #220
	str	r3, [sp]
	ldr	r3, [fp, #-232]
	ldr	r2, [fp, #-228]
	ldr	r1, [fp, #-100]
	ldr	r0, [fp, #-224]
	bl	codebook_decode_deinterleave_repeat
	mov	r3, r0
	cmp	r3, #0
	bne	.L442
	b	.L399
.L441:
	ldr	r3, [fp, #-168]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-112]
	add	r3, r2, r3
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-112]
	ldr	r1, [fp, #-232]
	mov	r0, r3
	bl	__aeabi_idivmod
	mov	r3, r1
	str	r3, [fp, #-220]
	ldr	r1, [fp, #-232]
	ldr	r0, [fp, #-112]
	bl	__aeabi_idiv
	mov	r3, r0
	str	r3, [fp, #-216]
.L442:
	ldr	r3, [fp, #-212]
	add	r3, r3, #1
	str	r3, [fp, #-212]
	ldr	r3, [fp, #-200]
	add	r3, r3, #1
	str	r3, [fp, #-200]
.L440:
	ldr	r2, [fp, #-212]
	ldr	r3, [fp, #-156]
	cmp	r2, r3
	bge	.L443
	ldr	r2, [fp, #-200]
	ldr	r3, [fp, #-136]
	cmp	r2, r3
	blt	.L444
.L443:
	ldr	r3, [fp, #-196]
	add	r3, r3, #1
	str	r3, [fp, #-196]
.L432:
	ldr	r2, [fp, #-200]
	ldr	r3, [fp, #-136]
	cmp	r2, r3
	blt	.L445
.L416:
	ldr	r3, [fp, #-204]
	add	r3, r3, #1
	str	r3, [fp, #-204]
.L400:
	ldr	r3, [fp, #-204]
	cmp	r3, #7
	ble	.L446
	b	.L399
.L393:
	mov	r3, #0
	str	r3, [fp, #-204]
	b	.L447
.L465:
	mov	r3, #0
	str	r3, [fp, #-180]
	mov	r3, #0
	str	r3, [fp, #-176]
	b	.L448
.L464:
	ldr	r3, [fp, #-204]
	cmp	r3, #0
	bne	.L449
	mov	r3, #0
	str	r3, [fp, #-208]
	b	.L450
.L457:
	ldr	r3, [fp, #-208]
	ldr	r2, [fp, #-240]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L451
	ldr	r3, [fp, #-224]
	ldr	r1, [r3, #124]
	ldr	r3, [fp, #-168]
	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, #-224]
	ldr	r3, [r3, #1396]
	cmp	r3, #9
	bgt	.L452
	ldr	r0, [fp, #-224]
	bl	prep_huffman
.L452:
	ldr	r3, [fp, #-224]
	ldr	r3, [r3, #1392]
	lsl	r3, r3, #22
	lsr	r3, r3, #22
	str	r3, [fp, #-172]
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-172]
	add	r3, r3, #16
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #4
	ldrsh	r3, [r3]
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-172]
	cmp	r3, #0
	blt	.L453
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-172]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-224]
	ldr	r2, [r3, #1392]
	ldr	r3, [fp, #-36]
	lsr	r2, r2, r3
	ldr	r3, [fp, #-224]
	str	r2, [r3, #1392]
	ldr	r3, [fp, #-224]
	ldr	r2, [r3, #1396]
	ldr	r3, [fp, #-36]
	sub	r2, r2, r3
	ldr	r3, [fp, #-224]
	str	r2, [r3, #1396]
	ldr	r3, [fp, #-224]
	ldr	r3, [r3, #1396]
	cmp	r3, #0
	bge	.L454
	ldr	r3, [fp, #-224]
	mov	r2, #0
	str	r2, [r3, #1396]
	mvn	r3, #0
	str	r3, [fp, #-172]
	b	.L454
.L453:
	ldr	r1, [fp, #-40]
	ldr	r0, [fp, #-224]
	bl	codebook_decode_scalar_raw
	str	r0, [fp, #-172]
.L454:
	ldr	r3, [fp, #-40]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L455
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #2088]
	ldr	r3, [fp, #-172]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-172]
.L455:
	ldr	r3, [fp, #-172]
	cmn	r3, #1
	beq	.L472
	ldr	r3, [fp, #-168]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-172]
	lsl	r3, r3, #2
	add	r2, r2, r3
	ldr	r3, [fp, #-208]
	lsl	r3, r3, #2
	ldr	r1, [fp, #-128]
	add	r3, r1, r3
	ldr	r1, [r3]
	ldr	r3, [fp, #-176]
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r2, [r2]
	str	r2, [r3]
.L451:
	ldr	r3, [fp, #-208]
	add	r3, r3, #1
	str	r3, [fp, #-208]
.L450:
	ldr	r2, [fp, #-208]
	ldr	r3, [fp, #-232]
	cmp	r2, r3
	blt	.L457
.L449:
	mov	r3, #0
	str	r3, [fp, #-212]
	b	.L458
.L463:
	mov	r3, #0
	str	r3, [fp, #-208]
	b	.L459
.L475:
	.align	2
.L474:
	.word	.LC16
.L461:
	ldr	r3, [fp, #-208]
	ldr	r2, [fp, #-240]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L460
	ldr	r3, [fp, #-208]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-128]
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-176]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-212]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-168]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #4
	add	r2, r2, r3
	ldr	r3, [fp, #-204]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	blt	.L460
	ldr	r3, [fp, #-208]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-228]
	add	r3, r2, r3
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-168]
	ldr	r2, [r3]
	ldr	r3, [fp, #-168]
	ldr	r3, [r3, #8]
	ldr	r1, [fp, #-180]
	mul	r3, r1, r3
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-168]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-224]
	ldr	r1, [r3, #124]
	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, #-164]
	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, #-224]
	bl	residue_decode
	mov	r3, r0
	cmp	r3, #0
	beq	.L473
.L460:
	ldr	r3, [fp, #-208]
	add	r3, r3, #1
	str	r3, [fp, #-208]
.L459:
	ldr	r2, [fp, #-208]
	ldr	r3, [fp, #-232]
	cmp	r2, r3
	blt	.L461
	ldr	r3, [fp, #-212]
	add	r3, r3, #1
	str	r3, [fp, #-212]
	ldr	r3, [fp, #-180]
	add	r3, r3, #1
	str	r3, [fp, #-180]
.L458:
	ldr	r2, [fp, #-212]
	ldr	r3, [fp, #-156]
	cmp	r2, r3
	bge	.L462
	ldr	r2, [fp, #-180]
	ldr	r3, [fp, #-136]
	cmp	r2, r3
	blt	.L463
.L462:
	ldr	r3, [fp, #-176]
	add	r3, r3, #1
	str	r3, [fp, #-176]
.L448:
	ldr	r2, [fp, #-180]
	ldr	r3, [fp, #-136]
	cmp	r2, r3
	blt	.L464
	ldr	r3, [fp, #-204]
	add	r3, r3, #1
	str	r3, [fp, #-204]
.L447:
	ldr	r3, [fp, #-204]
	cmp	r3, #7
	ble	.L465
	b	.L399
.L468:
	nop
	b	.L399
.L469:
	nop
	b	.L399
.L470:
	nop
	b	.L399
.L471:
	nop
	b	.L399
.L472:
	nop
	b	.L399
.L473:
	nop
.L399:
	ldr	r3, [fp, #-224]
	ldr	r2, [fp, #-132]
	str	r2, [r3, #92]
	nop
	ldr	r3, .L474
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L466
	bl	__stack_chk_fail
.L466:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	decode_residue, .-decode_residue
	.section	.rodata
	.align	2
.LC17:
	.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	.L477
	ldr	r3, .L480
	ldr	r2, .L480+4
	ldr	r1, .L480+8
	ldr	r0, .L480+12
	bl	__assert_fail
.L477:
	ldr	r3, [fp, #-40]
	asr	r3, r3, #2
	str	r3, [fp, #-24]
	b	.L478
.L479:
	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]
.L478:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bgt	.L479
	nop
	nop
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L481:
	.align	2
.L480:
	.word	__PRETTY_FUNCTION__.7221
	.word	2397
	.word	.LC0
	.word	.LC17
	.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	.L483
.L484:
	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]
.L483:
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bgt	.L484
	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	.L486
.L487:
	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]
.L486:
	ldr	r3, [fp, #-64]
	cmp	r3, #0
	bgt	.L487
	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	.L490
.L491:
	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]
.L490:
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	bhi	.L491
	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
.LC18:
	.ascii	"v == buf2\000"
	.align	2
.LC19:
	.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, .L517+12
	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, #92]
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-256]
	ldr	r3, [r3, #80]
	cmp	r3, #0
	beq	.L493
	ldr	r3, [fp, #-140]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-256]
	bl	setup_temp_malloc
	mov	r3, r0
	b	.L494
.L493:
	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
.L494:
	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, #264
	add	r3, r3, #2
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	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	.L495
.L496:
	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]
.L495:
	ldr	r2, [fp, #-232]
	ldr	r3, [fp, #-108]
	cmp	r2, r3
	bne	.L496
	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	.L497
.L498:
	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]
.L497:
	ldr	r2, [fp, #-236]
	ldr	r3, [fp, #-124]
	cmp	r2, r3
	bcs	.L498
	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	.L499
.L500:
	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]
.L499:
	ldr	r2, [fp, #-224]
	ldr	r3, [fp, #-112]
	cmp	r2, r3
	bcs	.L500
	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	.L501
.L504:
	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	.L502
.L503:
	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]
.L502:
	ldr	r2, [fp, #-204]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	blt	.L503
	ldr	r3, [fp, #-240]
	add	r3, r3, #1
	str	r3, [fp, #-240]
.L501:
	ldr	r3, [fp, #-104]
	sub	r3, r3, #3
	asr	r3, r3, #1
	ldr	r2, [fp, #-240]
	cmp	r2, r3
	blt	.L504
	b	.L505
.L508:
	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	.L506
.L507:
	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]
.L506:
	ldr	r3, [fp, #-200]
	cmp	r3, #0
	bgt	.L507
	ldr	r3, [fp, #-240]
	add	r3, r3, #1
	str	r3, [fp, #-240]
.L505:
	ldr	r3, [fp, #-104]
	sub	r3, r3, #6
	ldr	r2, [fp, #-240]
	cmp	r2, r3
	blt	.L508
	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, #272
	add	r3, r3, #2
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	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	.L509
.L510:
	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]
.L509:
	ldr	r2, [fp, #-184]
	ldr	r3, [fp, #-116]
	cmp	r2, r3
	bcs	.L510
	ldr	r2, [fp, #-116]
	ldr	r3, [fp, #-124]
	cmp	r2, r3
	beq	.L511
	ldr	r3, .L517
	mov	r2, #2800
	ldr	r1, .L517+4
	ldr	r0, .L517+8
	bl	__assert_fail
.L511:
	ldr	r2, [fp, #-256]
	ldr	r3, [fp, #-260]
	add	r3, r3, #268
	add	r3, r3, #2
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	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	.L512
.L518:
	.align	2
.L517:
	.word	__PRETTY_FUNCTION__.7362
	.word	.LC0
	.word	.LC18
	.word	.LC19
.L513:
	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]
.L512:
	ldr	r2, [fp, #-172]
	ldr	r3, [fp, #-168]
	cmp	r2, r3
	bcc	.L513
	ldr	r2, [fp, #-256]
	ldr	r3, [fp, #-260]
	add	r3, r3, #268
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3, #4]
	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	.L514
.L515:
	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]
.L514:
	ldr	r2, [fp, #-144]
	ldr	r3, [fp, #-116]
	cmp	r2, r3
	bcs	.L515
	ldr	r3, [fp, #-256]
	ldr	r2, [fp, #-128]
	str	r2, [r3, #92]
	nop
	ldr	r3, .L517+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L516
	bl	__stack_chk_fail
.L516:
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
	.size	inverse_mdct, .-inverse_mdct
	.section	.rodata
	.align	2
.LC20:
	.ascii	"0\000"
	.text
	.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
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	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, #112]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bne	.L520
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #1092]
	b	.L521
.L520:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #116]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	bne	.L522
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #1096]
	b	.L521
.L522:
	ldr	r3, .L523
	ldr	r2, .L523+4
	ldr	r1, .L523+8
	ldr	r0, .L523+12
	bl	__assert_fail
.L521:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L524:
	.align	2
.L523:
	.word	__PRETTY_FUNCTION__.7392
	.word	3048
	.word	.LC0
	.word	.LC20
	.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, #64
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #4
	ldrh	r3, [r3]
	cmp	r3, #0
	bne	.L526
	mov	r1, #21
	ldr	r0, [fp, #-56]
	bl	error
	mov	r3, r0
	b	.L527
.L526:
	ldr	r3, [fp, #-56]
	ldr	r1, [r3, #260]
	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	.L528
.L531:
	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	.L529
	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	.L530
	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
.L530:
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-40]
.L529:
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
.L528:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #1592]
	ldr	r2, [fp, #-48]
	cmp	r2, r3
	blt	.L531
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-36]
	cmp	r2, r3
	bge	.L532
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-52]
	b	.L533
.L534:
	ldr	r3, [fp, #-52]
	lsl	r3, r3, #2
	ldr	r2, [fp, #4]
	add	r3, r2, r3
	ldr	r0, [r3]	@ float
	ldr	r2, .L535
	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]
.L533:
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-36]
	cmp	r2, r3
	blt	.L534
.L532:
	mov	r3, #1
.L527:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L536:
	.align	2
.L535:
	.word	inverse_db_table
	.size	do_floor, .-do_floor
	.section	.rodata
	.align	2
.LC21:
	.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, #1508]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #1508]
	ldr	r3, [fp, #-32]
	str	r2, [r3, #1504]
.L538:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #96]
	cmp	r3, #0
	beq	.L539
	mov	r3, #0
	b	.L540
.L539:
	ldr	r0, [fp, #-32]
	bl	maybe_start_packet
	mov	r3, r0
	cmp	r3, #0
	bne	.L541
	mov	r3, #0
	b	.L540
.L541:
	mov	r1, #1
	ldr	r0, [fp, #-32]
	bl	get_bits
	mov	r3, r0
	cmp	r3, #0
	beq	.L542
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3, #48]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L554
	mov	r1, #35
	ldr	r0, [fp, #-32]
	bl	error
	mov	r3, r0
	b	.L540
.L554:
	nop
.L544:
	ldr	r0, [fp, #-32]
	bl	get8_packet
	mov	r3, r0
	cmn	r3, #1
	bne	.L544
	b	.L538
.L542:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #80]
	cmp	r3, #0
	beq	.L545
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #92]
	cmp	r2, r3
	beq	.L545
	ldr	r3, .L555
	ldr	r2, .L555+4
	ldr	r1, .L555+8
	ldr	r0, .L555+12
	bl	__assert_fail
.L545:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #408]
	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	.L546
	mov	r3, #0
	b	.L540
.L546:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #408]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L547
	mov	r3, #0
	b	.L540
.L547:
	ldr	r3, [fp, #8]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	add	r1, r3, #412
	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	.L548
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #116]
	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	.L549
.L548:
	mov	r3, #0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #112]
	str	r3, [fp, #-28]
.L549:
	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	.L550
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L550
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #112]
	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, #112]
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	asr	r2, r3, #2
	ldr	r3, [fp, #-40]
	str	r2, [r3]
	b	.L551
.L550:
	ldr	r3, [fp, #-36]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
.L551:
	ldr	r3, [fp, #-12]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L552
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L552
	ldr	r2, [fp, #-28]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r2, r3, r2
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #112]
	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, #112]
	add	r3, r2, r3
	asr	r2, r3, #2
	ldr	r3, [fp, #4]
	str	r2, [r3]
	b	.L553
.L552:
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #4]
	ldr	r2, [fp, #-28]
	str	r2, [r3]
.L553:
	mov	r3, #1
.L540:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L556:
	.align	2
.L555:
	.word	__PRETTY_FUNCTION__.7437
	.word	3127
	.word	.LC0
	.word	.LC21
	.size	vorbis_decode_initial, .-vorbis_decode_initial
	.global	__aeabi_fcmpgt
	.section	.rodata
	.align	2
.LC22:
	.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, .L642
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-2544]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-2536]
	add	r2, r2, #26
	ldr	r3, [r3, r2, lsl #2]
	str	r3, [fp, #-2488]
	ldr	r3, [fp, #-2536]
	ldr	r2, [r3, #404]
	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	.L558
.L590:
	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, #64
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #4
	ldrh	r3, [r3]
	cmp	r3, #0
	bne	.L559
	mov	r1, #21
	ldr	r0, [fp, #-2536]
	bl	error
	mov	r3, r0
	b	.L632
.L559:
	ldr	r3, [fp, #-2536]
	ldr	r1, [r3, #260]
	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	.L640
	ldr	r3, [fp, #-2448]
	ldrb	r3, [r3, #1588]	@ zero_extendqisi2
	sub	r3, r3, #1
	ldr	r2, .L642+4
	ldr	r3, [r2, r3, lsl #2]
	str	r3, [fp, #-2444]
	mov	r3, #2
	str	r3, [fp, #-2516]
	ldr	r2, [fp, #-2536]
	ldr	r3, [fp, #-2528]
	add	r3, r3, #248
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	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	.L562
.L575:
	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	.L563
	ldr	r3, [fp, #-2536]
	ldr	r1, [r3, #124]
	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, #1396]
	cmp	r3, #9
	bgt	.L564
	ldr	r0, [fp, #-2536]
	bl	prep_huffman
.L564:
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1392]
	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	.L565
	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, #1392]
	ldr	r3, [fp, #-2392]
	lsr	r2, r2, r3
	ldr	r3, [fp, #-2536]
	str	r2, [r3, #1392]
	ldr	r3, [fp, #-2536]
	ldr	r2, [r3, #1396]
	ldr	r3, [fp, #-2392]
	sub	r2, r2, r3
	ldr	r3, [fp, #-2536]
	str	r2, [r3, #1396]
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1396]
	cmp	r3, #0
	bge	.L566
	ldr	r3, [fp, #-2536]
	mov	r2, #0
	str	r2, [r3, #1396]
	mvn	r3, #0
	str	r3, [fp, #-2512]
	b	.L566
.L565:
	ldr	r1, [fp, #-2396]
	ldr	r0, [fp, #-2536]
	bl	codebook_decode_scalar_raw
	str	r0, [fp, #-2512]
.L566:
	ldr	r3, [fp, #-2396]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L563
	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]
.L563:
	mov	r3, #0
	str	r3, [fp, #-2520]
	b	.L567
.L574:
	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	.L568
	ldr	r3, [fp, #-2536]
	ldr	r1, [r3, #124]
	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, #1396]
	cmp	r3, #9
	bgt	.L569
	ldr	r0, [fp, #-2536]
	bl	prep_huffman
.L569:
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1392]
	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	.L570
	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, #1392]
	ldr	r3, [fp, #-2380]
	lsr	r2, r2, r3
	ldr	r3, [fp, #-2536]
	str	r2, [r3, #1392]
	ldr	r3, [fp, #-2536]
	ldr	r2, [r3, #1396]
	ldr	r3, [fp, #-2380]
	sub	r2, r2, r3
	ldr	r3, [fp, #-2536]
	str	r2, [r3, #1396]
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1396]
	cmp	r3, #0
	bge	.L571
	ldr	r3, [fp, #-2536]
	mov	r2, #0
	str	r2, [r3, #1396]
	mvn	r3, #0
	str	r3, [fp, #-2508]
	b	.L571
.L570:
	ldr	r1, [fp, #-2384]
	ldr	r0, [fp, #-2536]
	bl	codebook_decode_scalar_raw
	str	r0, [fp, #-2508]
.L571:
	ldr	r3, [fp, #-2384]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L572
	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]
.L572:
	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	.L573
.L568:
	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
.L573:
	ldr	r3, [fp, #-2520]
	add	r3, r3, #1
	str	r3, [fp, #-2520]
.L567:
	ldr	r2, [fp, #-2520]
	ldr	r3, [fp, #-2408]
	cmp	r2, r3
	blt	.L574
	ldr	r3, [fp, #-2524]
	add	r3, r3, #1
	str	r3, [fp, #-2524]
.L562:
	ldr	r3, [fp, #-2448]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-2524]
	cmp	r3, r2
	blt	.L575
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1396]
	cmn	r3, #1
	beq	.L641
	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	.L577
.L585:
	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	.L578
	ldr	r3, [fp, #-2420]
	lsl	r3, r3, #1
	str	r3, [fp, #-2504]
	b	.L579
.L578:
	ldr	r3, [fp, #-2416]
	lsl	r3, r3, #1
	str	r3, [fp, #-2504]
.L579:
	ldr	r3, [fp, #-2424]
	cmp	r3, #0
	beq	.L580
	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	.L581
	ldr	r2, [fp, #-2420]
	ldr	r3, [fp, #-2416]
	cmp	r2, r3
	ble	.L582
	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	.L583
.L582:
	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	.L583
.L581:
	ldr	r3, [fp, #-2424]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L584
	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	.L583
.L584:
	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	.L583
.L580:
	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
.L583:
	ldr	r3, [fp, #-2524]
	add	r3, r3, #1
	str	r3, [fp, #-2524]
.L577:
	ldr	r3, [fp, #-2448]
	ldr	r3, [r3, #1592]
	ldr	r2, [fp, #-2524]
	cmp	r2, r3
	blt	.L585
	mov	r3, #0
	str	r3, [fp, #-2524]
	b	.L586
.L588:
	sub	r2, fp, #264
	ldr	r3, [fp, #-2524]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L587
	ldr	r3, [fp, #-2524]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-2440]
	add	r3, r2, r3
	mvn	r2, #0
	strh	r2, [r3]	@ movhi
.L587:
	ldr	r3, [fp, #-2524]
	add	r3, r3, #1
	str	r3, [fp, #-2524]
.L586:
	ldr	r3, [fp, #-2448]
	ldr	r3, [r3, #1592]
	ldr	r2, [fp, #-2524]
	cmp	r2, r3
	blt	.L588
	b	.L589
.L640:
	nop
	b	.L561
.L641:
	nop
.L561:
	ldr	r3, [fp, #-2528]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	mov	r2, #1
	str	r2, [r3, #-2308]
.L589:
	ldr	r3, [fp, #-2528]
	add	r3, r3, #1
	str	r3, [fp, #-2528]
.L558:
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-2528]
	cmp	r2, r3
	blt	.L590
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #80]
	cmp	r3, #0
	beq	.L591
	ldr	r3, [fp, #-2536]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #92]
	cmp	r2, r3
	beq	.L591
	ldr	r3, .L642+16
	ldr	r2, .L642+8
	ldr	r1, .L642+28
	ldr	r0, .L642+24
	bl	__assert_fail
.L591:
	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	.L592
.L595:
	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	.L593
	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	.L594
.L593:
	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]
.L594:
	ldr	r3, [fp, #-2528]
	add	r3, r3, #1
	str	r3, [fp, #-2528]
.L592:
	ldr	r3, [fp, #-2484]
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-2528]
	cmp	r3, r2
	blt	.L595
	mov	r3, #0
	str	r3, [fp, #-2528]
	b	.L596
.L602:
	mov	r3, #0
	str	r3, [fp, #-2500]
	mov	r3, #0
	str	r3, [fp, #-2524]
	b	.L597
.L601:
	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	.L598
	ldr	r3, [fp, #-2524]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-2308]
	cmp	r3, #0
	beq	.L599
	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	.L600
.L599:
	sub	r2, fp, #264
	ldr	r3, [fp, #-2500]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-2536]
	ldr	r2, [fp, #-2524]
	add	r2, r2, #200
	ldr	r2, [r3, r2, lsl #2]
	ldr	r3, [fp, #-2500]
	lsl	r3, r3, #2
	sub	r1, fp, #4
	add	r3, r1, r3
	str	r2, [r3, #-2372]
.L600:
	ldr	r3, [fp, #-2500]
	add	r3, r3, #1
	str	r3, [fp, #-2500]
.L598:
	ldr	r3, [fp, #-2524]
	add	r3, r3, #1
	str	r3, [fp, #-2524]
.L597:
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-2524]
	cmp	r2, r3
	blt	.L601
	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]
.L596:
	ldr	r3, [fp, #-2484]
	ldrb	r3, [r3, #8]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-2528]
	cmp	r3, r2
	blt	.L602
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #80]
	cmp	r3, #0
	beq	.L603
	ldr	r3, [fp, #-2536]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #92]
	cmp	r2, r3
	beq	.L603
	ldr	r3, .L642+16
	ldr	r2, .L642+12
	ldr	r1, .L642+28
	ldr	r0, .L642+24
	bl	__assert_fail
.L603:
	ldr	r3, [fp, #-2484]
	ldrh	r3, [r3]
	sub	r3, r3, #1
	str	r3, [fp, #-2528]
	b	.L604
.L614:
	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
	mov	r2, r3
	ldr	r3, [fp, #-2536]
	add	r2, r2, #200
	ldr	r3, [r3, r2, lsl #2]
	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
	mov	r2, r3
	ldr	r3, [fp, #-2536]
	add	r2, r2, #200
	ldr	r3, [r3, r2, lsl #2]
	str	r3, [fp, #-2464]
	mov	r3, #0
	str	r3, [fp, #-2524]
	b	.L605
.L613:
	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	.L637
	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	.L638
	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	.L610
.L638:
	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	.L610
.L637:
	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	.L639
	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	.L610
.L639:
	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
.L610:
	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]
.L605:
	ldr	r2, [fp, #-2524]
	ldr	r3, [fp, #-2472]
	cmp	r2, r3
	blt	.L613
	ldr	r3, [fp, #-2528]
	sub	r3, r3, #1
	str	r3, [fp, #-2528]
.L604:
	ldr	r3, [fp, #-2528]
	cmp	r3, #0
	bge	.L614
	mov	r3, #0
	str	r3, [fp, #-2528]
	b	.L615
.L643:
	.align	2
.L642:
	.word	.LC22
	.word	range_list.7461
	.word	3276
	.word	3309
	.word	__PRETTY_FUNCTION__.7498
	.word	3425
	.word	.LC21
	.word	.LC0
	.word	.LC22
.L618:
	ldr	r3, [fp, #-2528]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-1284]
	cmp	r3, #0
	beq	.L616
	ldr	r3, [fp, #-2536]
	ldr	r2, [fp, #-2528]
	add	r2, r2, #200
	ldr	r0, [r3, r2, lsl #2]
	ldr	r3, [fp, #-2480]
	lsl	r3, r3, #2
	mov	r2, r3
	mov	r1, #0
	bl	memset
	b	.L617
.L616:
	ldr	r3, [fp, #-2536]
	ldr	r2, [fp, #-2528]
	add	r2, r2, #200
	ldr	r2, [r3, r2, lsl #2]
	ldr	r1, [fp, #-2536]
	ldr	r3, [fp, #-2528]
	add	r3, r3, #248
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3, #4]
	mov	r1, #0
	str	r1, [sp, #8]
	str	r3, [sp, #4]
	str	r2, [sp]
	ldr	r3, [fp, #-2488]
	ldr	r2, [fp, #-2528]
	ldr	r1, [fp, #-2484]
	ldr	r0, [fp, #-2536]
	bl	do_floor
.L617:
	ldr	r3, [fp, #-2528]
	add	r3, r3, #1
	str	r3, [fp, #-2528]
.L615:
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-2528]
	cmp	r2, r3
	blt	.L618
	mov	r3, #0
	str	r3, [fp, #-2528]
	b	.L619
.L620:
	ldr	r3, [fp, #-2536]
	ldr	r2, [fp, #-2528]
	add	r2, r2, #200
	ldr	r0, [r3, r2, lsl #2]
	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]
.L619:
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-2528]
	cmp	r2, r3
	blt	.L620
	ldr	r0, [fp, #-2536]
	bl	flush_packet
	ldr	r3, [fp, #-2536]
	ldrb	r3, [r3, #1377]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L621
	ldr	r3, [fp, #-2480]
	rsb	r3, r3, #0
	mov	r2, r3
	ldr	r3, [fp, #-2536]
	str	r2, [r3, #1060]
	ldr	r2, [fp, #-2488]
	ldr	r3, [fp, #12]
	sub	r2, r2, r3
	ldr	r3, [fp, #-2536]
	str	r2, [r3, #1412]
	ldr	r3, [fp, #-2536]
	mov	r2, #1
	str	r2, [r3, #1064]
	ldr	r3, [fp, #-2536]
	mov	r2, #0
	strb	r2, [r3, #1377]
	b	.L622
.L621:
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1412]
	cmp	r3, #0
	beq	.L623
	ldr	r3, [fp, #-2536]
	ldr	r2, [r3, #1412]
	ldr	r1, [fp, #8]
	ldr	r3, [fp, #-2548]
	sub	r3, r1, r3
	cmp	r2, r3
	blt	.L624
	ldr	r3, [fp, #-2536]
	ldr	r2, [r3, #1412]
	ldr	r1, [fp, #8]
	ldr	r3, [fp, #-2548]
	sub	r3, r1, r3
	sub	r2, r2, r3
	ldr	r3, [fp, #-2536]
	str	r2, [r3, #1412]
	ldr	r3, [fp, #8]
	str	r3, [fp, #-2548]
	ldr	r3, [fp, #-2552]
	ldr	r2, [fp, #-2548]
	str	r2, [r3]
	b	.L622
.L624:
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1412]
	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, #1412]
	b	.L622
.L623:
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #992]
	cmp	r3, #0
.L622:
	ldr	r3, [fp, #-2536]
	ldr	r2, [r3, #1388]
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1404]
	cmp	r2, r3
	bne	.L625
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1064]
	cmp	r3, #0
	beq	.L626
	ldr	r3, [fp, #-2536]
	ldrb	r3, [r3, #1375]	@ zero_extendqisi2
	and	r3, r3, #4
	cmp	r3, #0
	beq	.L626
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1408]
	str	r3, [fp, #-2476]
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1060]
	ldr	r1, [fp, #12]
	ldr	r2, [fp, #-2548]
	sub	r2, r1, r2
	add	r3, r3, r2
	ldr	r2, [fp, #-2476]
	cmp	r2, r3
	bcs	.L626
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1060]
	ldr	r2, [fp, #-2476]
	cmp	r2, r3
	bcs	.L627
	ldr	r3, [fp, #-2540]
	mov	r2, #0
	str	r2, [r3]
	b	.L628
.L627:
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1060]
	ldr	r2, [fp, #-2476]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-2540]
	str	r2, [r3]
.L628:
	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	.L629
	ldr	r3, [fp, #-2540]
	ldr	r2, [fp, #12]
	str	r2, [r3]
.L629:
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1060]
	ldr	r2, [fp, #-2540]
	ldr	r2, [r2]
	add	r2, r3, r2
	ldr	r3, [fp, #-2536]
	str	r2, [r3, #1060]
	mov	r3, #1
	b	.L632
.L626:
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1408]
	ldr	r1, [fp, #-2480]
	ldr	r2, [fp, #-2548]
	sub	r2, r1, r2
	sub	r2, r3, r2
	ldr	r3, [fp, #-2536]
	str	r2, [r3, #1060]
	ldr	r3, [fp, #-2536]
	mov	r2, #1
	str	r2, [r3, #1064]
.L625:
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1064]
	cmp	r3, #0
	beq	.L630
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #1060]
	ldr	r1, [fp, #8]
	ldr	r2, [fp, #-2548]
	sub	r2, r1, r2
	add	r2, r3, r2
	ldr	r3, [fp, #-2536]
	str	r2, [r3, #1060]
.L630:
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #80]
	cmp	r3, #0
	beq	.L631
	ldr	r3, [fp, #-2536]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-2536]
	ldr	r3, [r3, #92]
	cmp	r2, r3
	beq	.L631
	ldr	r3, .L642+16
	ldr	r2, .L642+20
	ldr	r1, .L642+28
	ldr	r0, .L642+24
	bl	__assert_fail
.L631:
	ldr	r3, [fp, #-2540]
	ldr	r2, [fp, #12]
	str	r2, [r3]
	mov	r3, #1
.L632:
	ldr	r2, .L642+32
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L633
	bl	__stack_chk_fail
.L633:
	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
.LC23:
	.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, .L649
	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	.L645
	mov	r3, #0
	b	.L647
.L645:
	ldr	r3, [fp, #-24]
	add	r2, r3, #412
	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
.L647:
	ldr	r2, .L649
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L648
	bl	__stack_chk_fail
.L648:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L650:
	.align	2
.L649:
	.word	.LC23
	.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, #992]
	cmp	r3, #0
	beq	.L652
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #992]
	str	r3, [fp, #-24]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-48]
	bl	get_window
	str	r0, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L653
.L656:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L654
.L655:
	ldr	r3, [fp, #-48]
	ldr	r2, [fp, #-32]
	add	r2, r2, #200
	ldr	r2, [r3, r2, lsl #2]
	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	r3, [fp, #-48]
	ldr	r2, [fp, #-32]
	add	r2, r2, #232
	ldr	r2, [r3, r2, lsl #2]
	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	r3, [fp, #-48]
	ldr	r2, [fp, #-32]
	add	r2, r2, #200
	ldr	r2, [r3, r2, lsl #2]
	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]
.L654:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	blt	.L655
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L653:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	blt	.L656
.L652:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #992]
	str	r3, [fp, #-16]
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-60]
	sub	r2, r2, r3
	ldr	r3, [fp, #-48]
	str	r2, [r3, #992]
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L657
.L660:
	mov	r3, #0
	str	r3, [fp, #-36]
	b	.L658
.L659:
	ldr	r3, [fp, #-48]
	ldr	r2, [fp, #-40]
	add	r2, r2, #200
	ldr	r2, [r3, r2, lsl #2]
	ldr	r1, [fp, #-60]
	ldr	r3, [fp, #-36]
	add	r3, r1, r3
	lsl	r3, r3, #2
	add	r2, r2, r3
	ldr	r3, [fp, #-48]
	ldr	r1, [fp, #-40]
	add	r1, r1, #232
	ldr	r1, [r3, r1, lsl #2]
	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]
.L658:
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	ldr	r2, [fp, #-52]
	cmp	r2, r3
	bgt	.L659
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L657:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L660
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L661
	mov	r3, #0
	b	.L662
.L661:
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-60]
	cmp	r2, r3
	bge	.L663
	ldr	r3, [fp, #-52]
	str	r3, [fp, #-60]
.L663:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #1416]
	ldr	r1, [fp, #-60]
	ldr	r2, [fp, #-56]
	sub	r2, r1, r2
	add	r2, r3, r2
	ldr	r3, [fp, #-48]
	str	r2, [r3, #1416]
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #-56]
	sub	r3, r2, r3
.L662:
	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
.LC24:
	.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, .L668
	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	.L665
	ldr	r1, [fp, #-24]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	vorbis_finish_frame
.L665:
	ldr	r3, [fp, #-12]
	ldr	r2, .L668
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L667
	bl	__stack_chk_fail
.L667:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L669:
	.align	2
.L668:
	.word	.LC24
	.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]
	str	r1, [fp, #-36]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1380]
	str	r3, [fp, #-24]
	mov	r3, #1
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #32]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	cmn	r3, #1
	beq	.L680
	b	.L672
.L675:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	add	r3, r3, #1120
	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
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #255
	bne	.L695
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L672:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1116]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	blt	.L675
	b	.L674
.L695:
	nop
.L674:
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L676
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1116]
	sub	r3, r3, #1
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	bge	.L676
	mov	r1, #21
	ldr	r0, [fp, #-32]
	bl	error
	mov	r3, r0
	b	.L677
.L676:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1116]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	bne	.L678
	mvn	r3, #0
	str	r3, [fp, #-24]
.L678:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #40]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bls	.L679
	mov	r1, #1
	ldr	r0, [fp, #-32]
	bl	error
	mov	r3, r0
	b	.L677
.L679:
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L680
.L694:
	ldr	r3, [fp, #-16]
	add	r2, r3, #26
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #40]
	cmp	r2, r3
	bcc	.L681
	mov	r1, #1
	ldr	r0, [fp, #-32]
	bl	error
	mov	r3, r0
	b	.L677
.L681:
	mov	r2, #4
	ldr	r1, .L697
	ldr	r0, [fp, #-16]
	bl	memcmp
	mov	r3, r0
	cmp	r3, #0
	beq	.L682
	mov	r1, #21
	ldr	r0, [fp, #-32]
	bl	error
	mov	r3, r0
	b	.L677
.L682:
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L683
	mov	r1, #21
	ldr	r0, [fp, #-32]
	bl	error
	mov	r3, r0
	b	.L677
.L683:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L684
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #992]
	cmp	r3, #0
	beq	.L685
	ldr	r3, [fp, #-16]
	add	r3, r3, #5
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L685
	mov	r1, #21
	ldr	r0, [fp, #-32]
	bl	error
	mov	r3, r0
	b	.L677
.L684:
	ldr	r3, [fp, #-16]
	add	r3, r3, #5
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #1
	cmp	r3, #0
	bne	.L685
	mov	r1, #21
	ldr	r0, [fp, #-32]
	bl	error
	mov	r3, r0
	b	.L677
.L685:
	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, #40]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bls	.L686
	mov	r1, #1
	ldr	r0, [fp, #-32]
	bl	error
	mov	r3, r0
	b	.L677
.L686:
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L687
.L690:
	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	.L696
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L687:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	blt	.L690
	b	.L689
.L696:
	nop
.L689:
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L691
	ldr	r3, [fp, #-12]
	sub	r3, r3, #1
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	bge	.L691
	mov	r1, #21
	ldr	r0, [fp, #-32]
	bl	error
	mov	r3, r0
	b	.L677
.L691:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	bne	.L692
	mvn	r3, #0
	str	r3, [fp, #-24]
.L692:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #40]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bls	.L693
	mov	r1, #1
	ldr	r0, [fp, #-32]
	bl	error
	mov	r3, r0
	b	.L677
.L693:
	mov	r3, #0
	str	r3, [fp, #-20]
.L680:
	ldr	r3, [fp, #-24]
	cmn	r3, #1
	beq	.L694
	mov	r3, #1
.L677:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L698:
	.align	2
.L697:
	.word	ogg_page_header
	.size	is_whole_packet_present, .-is_whole_packet_present
	.global	__aeabi_uidivmod
	.global	__aeabi_ui2f
	.section	.rodata
	.align	2
.LC25:
	.ascii	"f->temp_offset == f->alloc.alloc_buffer_length_in_b"
	.ascii	"ytes\000"
	.align	2
.LC26:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	start_decoder, %function
start_decoder:
	@ args = 0, pretend = 0, frame = 1304
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #1296
	sub	sp, sp, #12
	str	r0, [fp, #-1312]
	ldr	r3, .L904
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-1284]
	mov	r3, #0
	str	r3, [fp, #-1280]
	ldr	r0, [fp, #-1312]
	bl	start_page
	mov	r3, r0
	cmp	r3, #0
	bne	.L700
	mov	r3, #0
	b	.L901
.L700:
	ldr	r3, [fp, #-1312]
	ldrb	r3, [r3, #1375]	@ zero_extendqisi2
	and	r3, r3, #2
	cmp	r3, #0
	bne	.L702
	mov	r1, #34
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L702:
	ldr	r3, [fp, #-1312]
	ldrb	r3, [r3, #1375]	@ zero_extendqisi2
	and	r3, r3, #4
	cmp	r3, #0
	beq	.L703
	mov	r1, #34
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L703:
	ldr	r3, [fp, #-1312]
	ldrb	r3, [r3, #1375]	@ zero_extendqisi2
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L704
	mov	r1, #34
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L704:
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #1116]
	cmp	r3, #1
	beq	.L705
	mov	r1, #34
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L705:
	ldr	r3, [fp, #-1312]
	ldrb	r3, [r3, #1120]	@ zero_extendqisi2
	cmp	r3, #30
	beq	.L706
	mov	r1, #34
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L706:
	ldr	r0, [fp, #-1312]
	bl	get8
	mov	r3, r0
	cmp	r3, #1
	beq	.L707
	mov	r1, #34
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L707:
	sub	r3, fp, #88
	mov	r2, #6
	mov	r1, r3
	ldr	r0, [fp, #-1312]
	bl	getn
	mov	r3, r0
	cmp	r3, #0
	bne	.L708
	mov	r1, #10
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L708:
	sub	r3, fp, #88
	mov	r0, r3
	bl	vorbis_validate
	mov	r3, r0
	cmp	r3, #0
	bne	.L709
	mov	r1, #34
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L709:
	ldr	r0, [fp, #-1312]
	bl	get32
	mov	r3, r0
	cmp	r3, #0
	beq	.L710
	mov	r1, #34
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L710:
	ldr	r0, [fp, #-1312]
	bl	get8
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-1312]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L711
	mov	r1, #34
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L711:
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #4]
	cmp	r3, #16
	ble	.L712
	mov	r1, #5
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L712:
	ldr	r0, [fp, #-1312]
	bl	get32
	mov	r2, r0
	ldr	r3, [fp, #-1312]
	str	r2, [r3]
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L713
	mov	r1, #34
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L713:
	ldr	r0, [fp, #-1312]
	bl	get32
	ldr	r0, [fp, #-1312]
	bl	get32
	ldr	r0, [fp, #-1312]
	bl	get32
	ldr	r0, [fp, #-1312]
	bl	get8
	mov	r3, r0
	strb	r3, [fp, #-1307]
	ldrb	r3, [fp, #-1307]	@ zero_extendqisi2
	and	r3, r3, #15
	str	r3, [fp, #-1224]
	ldrb	r3, [fp, #-1307]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	str	r3, [fp, #-1220]
	mov	r2, #1
	ldr	r3, [fp, #-1224]
	lsl	r2, r2, r3
	ldr	r3, [fp, #-1312]
	str	r2, [r3, #112]
	mov	r2, #1
	ldr	r3, [fp, #-1220]
	lsl	r2, r2, r3
	ldr	r3, [fp, #-1312]
	str	r2, [r3, #116]
	ldr	r3, [fp, #-1224]
	cmp	r3, #5
	ble	.L714
	ldr	r3, [fp, #-1224]
	cmp	r3, #13
	ble	.L715
.L714:
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L715:
	ldr	r3, [fp, #-1220]
	cmp	r3, #5
	ble	.L716
	ldr	r3, [fp, #-1220]
	cmp	r3, #13
	ble	.L717
.L716:
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L717:
	ldr	r2, [fp, #-1224]
	ldr	r3, [fp, #-1220]
	cmp	r2, r3
	ble	.L718
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L718:
	ldr	r0, [fp, #-1312]
	bl	get8
	mov	r3, r0
	strb	r3, [fp, #-1307]
	ldrb	r3, [fp, #-1307]	@ zero_extendqisi2
	and	r3, r3, #1
	cmp	r3, #0
	bne	.L719
	mov	r1, #34
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L719:
	ldr	r0, [fp, #-1312]
	bl	start_page
	mov	r3, r0
	cmp	r3, #0
	bne	.L720
	mov	r3, #0
	b	.L901
.L720:
	ldr	r0, [fp, #-1312]
	bl	start_packet
	mov	r3, r0
	cmp	r3, #0
	bne	.L721
	mov	r3, #0
	b	.L901
.L721:
	ldr	r0, [fp, #-1312]
	bl	next_segment
	str	r0, [fp, #-1216]
	ldr	r1, [fp, #-1216]
	ldr	r0, [fp, #-1312]
	bl	skip
	ldr	r3, [fp, #-1312]
	mov	r2, #0
	strb	r2, [r3, #1376]
	ldr	r3, [fp, #-1216]
	cmp	r3, #0
	bne	.L721
	ldr	r0, [fp, #-1312]
	bl	start_packet
	mov	r3, r0
	cmp	r3, #0
	bne	.L722
	mov	r3, #0
	b	.L901
.L722:
	ldr	r3, [fp, #-1312]
	ldrb	r3, [r3, #48]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L723
	mov	r1, #1
	ldr	r0, [fp, #-1312]
	bl	is_whole_packet_present
	mov	r3, r0
	cmp	r3, #0
	bne	.L723
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #100]
	cmp	r3, #21
	bne	.L724
	ldr	r3, [fp, #-1312]
	mov	r2, #20
	str	r2, [r3, #100]
.L724:
	mov	r3, #0
	b	.L901
.L723:
	bl	crc32_init
	ldr	r0, [fp, #-1312]
	bl	get8_packet
	mov	r3, r0
	cmp	r3, #5
	beq	.L725
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L725:
	mov	r3, #0
	str	r3, [fp, #-1296]
	b	.L726
.L727:
	ldr	r0, [fp, #-1312]
	bl	get8_packet
	mov	r3, r0
	and	r1, r3, #255
	sub	r2, fp, #88
	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]
.L726:
	ldr	r3, [fp, #-1296]
	cmp	r3, #5
	ble	.L727
	sub	r3, fp, #88
	mov	r0, r3
	bl	vorbis_validate
	mov	r3, r0
	cmp	r3, #0
	bne	.L728
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L728:
	mov	r1, #8
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	add	r3, r3, #1
	mov	r2, r3
	ldr	r3, [fp, #-1312]
	str	r2, [r3, #120]
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #120]
	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, #-1312]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1312]
	str	r2, [r3, #124]
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #124]
	cmp	r3, #0
	bne	.L729
	mov	r1, #3
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L729:
	ldr	r3, [fp, #-1312]
	ldr	r0, [r3, #124]
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #120]
	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, #-1296]
	b	.L730
.L802:
	mov	r3, #0
	str	r3, [fp, #-1268]
	ldr	r3, [fp, #-1312]
	ldr	r1, [r3, #124]
	ldr	r2, [fp, #-1296]
	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, #-1144]
	mov	r1, #8
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	strb	r3, [fp, #-1307]
	ldrb	r3, [fp, #-1307]	@ zero_extendqisi2
	cmp	r3, #66
	beq	.L731
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L731:
	mov	r1, #8
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	strb	r3, [fp, #-1307]
	ldrb	r3, [fp, #-1307]	@ zero_extendqisi2
	cmp	r3, #67
	beq	.L732
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L732:
	mov	r1, #8
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	strb	r3, [fp, #-1307]
	ldrb	r3, [fp, #-1307]	@ zero_extendqisi2
	cmp	r3, #86
	beq	.L733
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L733:
	mov	r1, #8
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	strb	r3, [fp, #-1307]
	mov	r1, #8
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	lsl	r2, r3, #8
	ldrb	r3, [fp, #-1307]	@ zero_extendqisi2
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-1144]
	str	r2, [r3]
	mov	r1, #8
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	strb	r3, [fp, #-1307]
	mov	r1, #8
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	strb	r3, [fp, #-1305]
	mov	r1, #8
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	lsl	r3, r3, #16
	ldrb	r2, [fp, #-1305]	@ zero_extendqisi2
	lsl	r2, r2, #8
	add	r2, r3, r2
	ldrb	r3, [fp, #-1307]	@ zero_extendqisi2
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-1144]
	str	r2, [r3, #4]
	mov	r1, #1
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	str	r3, [fp, #-1140]
	ldr	r3, [fp, #-1140]
	cmp	r3, #0
	bne	.L734
	mov	r1, #1
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	and	r2, r3, #255
	b	.L735
.L734:
	mov	r2, #0
.L735:
	ldr	r3, [fp, #-1144]
	strb	r2, [r3, #23]
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L736
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L736
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L736:
	ldr	r3, [fp, #-1144]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L737
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #4]
	mov	r1, r3
	ldr	r0, [fp, #-1312]
	bl	setup_temp_malloc
	str	r0, [fp, #-1264]
	b	.L738
.L737:
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #4]
	mov	r1, r3
	ldr	r0, [fp, #-1312]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1144]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-1264]
.L738:
	ldr	r3, [fp, #-1264]
	cmp	r3, #0
	bne	.L739
	mov	r1, #3
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L739:
	ldr	r3, [fp, #-1140]
	cmp	r3, #0
	beq	.L740
	mov	r3, #0
	str	r3, [fp, #-1260]
	mov	r1, #5
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	add	r3, r3, #1
	str	r3, [fp, #-1256]
	b	.L741
.L743:
	ldr	r3, [fp, #-1144]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-1260]
	sub	r3, r2, r3
	str	r3, [fp, #-1132]
	ldr	r0, [fp, #-1132]
	bl	ilog
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	str	r3, [fp, #-1128]
	ldr	r2, [fp, #-1260]
	ldr	r3, [fp, #-1128]
	add	r2, r2, r3
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	ble	.L742
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L742:
	ldr	r3, [fp, #-1260]
	ldr	r2, [fp, #-1264]
	add	r3, r2, r3
	ldr	r2, [fp, #-1128]
	ldr	r1, [fp, #-1256]
	mov	r0, r3
	bl	memset
	ldr	r2, [fp, #-1260]
	ldr	r3, [fp, #-1128]
	add	r3, r2, r3
	str	r3, [fp, #-1260]
	ldr	r3, [fp, #-1256]
	add	r3, r3, #1
	str	r3, [fp, #-1256]
.L741:
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-1260]
	cmp	r2, r3
	blt	.L743
	b	.L744
.L740:
	mov	r3, #0
	str	r3, [fp, #-1292]
	b	.L745
.L750:
	ldr	r3, [fp, #-1144]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L746
	mov	r1, #1
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	b	.L747
.L746:
	mov	r3, #1
.L747:
	str	r3, [fp, #-1136]
	ldr	r3, [fp, #-1136]
	cmp	r3, #0
	beq	.L748
	mov	r1, #5
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-1292]
	ldr	r1, [fp, #-1264]
	add	r3, r1, r3
	add	r2, r2, #1
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-1268]
	add	r3, r3, #1
	str	r3, [fp, #-1268]
	ldr	r3, [fp, #-1292]
	ldr	r2, [fp, #-1264]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #32
	bne	.L749
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L748:
	ldr	r3, [fp, #-1292]
	ldr	r2, [fp, #-1264]
	add	r3, r2, r3
	mvn	r2, #0
	strb	r2, [r3]
.L749:
	ldr	r3, [fp, #-1292]
	add	r3, r3, #1
	str	r3, [fp, #-1292]
.L745:
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-1292]
	cmp	r2, r3
	blt	.L750
.L744:
	ldr	r3, [fp, #-1144]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L751
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #4]
	asr	r3, r3, #2
	ldr	r2, [fp, #-1268]
	cmp	r2, r3
	blt	.L751
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-1312]
	ldr	r2, [r2, #16]
	cmp	r3, r2
	ble	.L752
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r3, [fp, #-1312]
	str	r2, [r3, #16]
.L752:
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #4]
	mov	r1, r3
	ldr	r0, [fp, #-1312]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1144]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	bne	.L753
	mov	r1, #3
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L753:
	ldr	r3, [fp, #-1144]
	ldr	r0, [r3, #8]
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r1, [fp, #-1264]
	bl	memcpy
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r1, [fp, #-1264]
	ldr	r0, [fp, #-1312]
	bl	setup_temp_free
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-1264]
	ldr	r3, [fp, #-1144]
	mov	r2, #0
	strb	r2, [r3, #23]
.L751:
	ldr	r3, [fp, #-1144]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L754
	ldr	r3, [fp, #-1268]
	str	r3, [fp, #-1272]
	b	.L755
.L754:
	mov	r3, #0
	str	r3, [fp, #-1272]
	mov	r3, #0
	str	r3, [fp, #-1292]
	b	.L756
.L758:
	ldr	r3, [fp, #-1292]
	ldr	r2, [fp, #-1264]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #10
	bls	.L757
	ldr	r3, [fp, #-1292]
	ldr	r2, [fp, #-1264]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #255
	beq	.L757
	ldr	r3, [fp, #-1272]
	add	r3, r3, #1
	str	r3, [fp, #-1272]
.L757:
	ldr	r3, [fp, #-1292]
	add	r3, r3, #1
	str	r3, [fp, #-1292]
.L756:
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-1292]
	cmp	r2, r3
	blt	.L758
.L755:
	ldr	r3, [fp, #-1144]
	ldr	r2, [fp, #-1272]
	str	r2, [r3, #2092]
	mov	r3, #0
	str	r3, [fp, #-1276]
	ldr	r3, [fp, #-1144]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L759
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #4]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-1312]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1144]
	str	r2, [r3, #32]
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #32]
	cmp	r3, #0
	bne	.L760
	mov	r1, #3
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L759:
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #2092]
	cmp	r3, #0
	beq	.L761
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #2092]
	mov	r1, r3
	ldr	r0, [fp, #-1312]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1144]
	str	r2, [r3, #8]
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	bne	.L762
	mov	r1, #3
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L762:
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #2092]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-1312]
	bl	setup_temp_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1144]
	str	r2, [r3, #32]
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #32]
	cmp	r3, #0
	bne	.L763
	mov	r1, #3
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L763:
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #2092]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-1312]
	bl	setup_temp_malloc
	str	r0, [fp, #-1276]
	ldr	r3, [fp, #-1276]
	cmp	r3, #0
	bne	.L761
	mov	r1, #3
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L761:
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #2092]
	lsl	r3, r3, #3
	add	r3, r2, r3
	str	r3, [fp, #-1124]
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #16]
	ldr	r2, [fp, #-1124]
	cmp	r2, r3
	bls	.L760
	ldr	r3, [fp, #-1312]
	ldr	r2, [fp, #-1124]
	str	r2, [r3, #16]
.L760:
	ldr	r3, [fp, #-1144]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-1276]
	ldr	r1, [fp, #-1264]
	ldr	r0, [fp, #-1144]
	bl	compute_codewords
	mov	r3, r0
	cmp	r3, #0
	bne	.L764
	ldr	r3, [fp, #-1144]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L765
	mov	r2, #0
	ldr	r1, [fp, #-1276]
	ldr	r0, [fp, #-1312]
	bl	setup_temp_free
.L765:
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L764:
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #2092]
	cmp	r3, #0
	beq	.L766
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #2092]
	add	r3, r3, #1
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-1312]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1144]
	str	r2, [r3, #2084]
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #2084]
	cmp	r3, #0
	bne	.L767
	mov	r1, #3
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L767:
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #2092]
	add	r3, r3, #1
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-1312]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1144]
	str	r2, [r3, #2088]
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #2088]
	cmp	r3, #0
	bne	.L768
	mov	r1, #3
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L768:
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #2088]
	add	r2, r3, #4
	ldr	r3, [fp, #-1144]
	str	r2, [r3, #2088]
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #2088]
	sub	r3, r3, #4
	mvn	r2, #0
	str	r2, [r3]
	ldr	r2, [fp, #-1276]
	ldr	r1, [fp, #-1264]
	ldr	r0, [fp, #-1144]
	bl	compute_sorted_huffman
.L766:
	ldr	r3, [fp, #-1144]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L769
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #2092]
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r1, [fp, #-1276]
	ldr	r0, [fp, #-1312]
	bl	setup_temp_free
	ldr	r3, [fp, #-1144]
	ldr	r1, [r3, #32]
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #2092]
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r0, [fp, #-1312]
	bl	setup_temp_free
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r1, [fp, #-1264]
	ldr	r0, [fp, #-1312]
	bl	setup_temp_free
	ldr	r3, [fp, #-1144]
	mov	r2, #0
	str	r2, [r3, #32]
.L769:
	ldr	r0, [fp, #-1144]
	bl	compute_accelerated_huffman
	mov	r1, #4
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-1144]
	strb	r2, [r3, #21]
	ldr	r3, [fp, #-1144]
	ldrb	r3, [r3, #21]	@ zero_extendqisi2
	cmp	r3, #2
	bls	.L770
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L770:
	ldr	r3, [fp, #-1144]
	ldrb	r3, [r3, #21]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L771
	mov	r1, #32
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	mov	r0, r3
	bl	float32_unpack
	mov	r2, r0
	ldr	r3, [fp, #-1144]
	str	r2, [r3, #12]	@ float
	mov	r1, #32
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	mov	r0, r3
	bl	float32_unpack
	mov	r2, r0
	ldr	r3, [fp, #-1144]
	str	r2, [r3, #16]	@ float
	mov	r1, #4
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	and	r3, r3, #255
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, [fp, #-1144]
	strb	r2, [r3, #20]
	mov	r1, #1
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-1144]
	strb	r2, [r3, #22]
	ldr	r3, [fp, #-1144]
	ldrb	r3, [r3, #21]	@ zero_extendqisi2
	cmp	r3, #1
	bne	.L772
	ldr	r3, [fp, #-1144]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	lookup1_values
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-1144]
	str	r2, [r3, #24]
	b	.L773
.L772:
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-1144]
	ldr	r2, [r2]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-1144]
	str	r2, [r3, #24]
.L773:
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #24]
	cmp	r3, #0
	bne	.L774
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L774:
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #24]
	lsl	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-1312]
	bl	setup_temp_malloc
	str	r0, [fp, #-1120]
	ldr	r3, [fp, #-1120]
	cmp	r3, #0
	bne	.L775
	mov	r1, #3
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L775:
	mov	r3, #0
	str	r3, [fp, #-1292]
	b	.L776
.L905:
	.align	2
.L904:
	.word	.LC26
	.word	point_compare
.L778:
	ldr	r3, [fp, #-1144]
	ldrb	r3, [r3, #20]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	str	r3, [fp, #-1092]
	ldr	r3, [fp, #-1092]
	cmn	r3, #1
	bne	.L777
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #24]
	lsl	r3, r3, #1
	mov	r2, r3
	ldr	r1, [fp, #-1120]
	ldr	r0, [fp, #-1312]
	bl	setup_temp_free
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L777:
	ldr	r3, [fp, #-1292]
	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, #-1292]
	add	r3, r3, #1
	str	r3, [fp, #-1292]
.L776:
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #24]
	mov	r2, r3
	ldr	r3, [fp, #-1292]
	cmp	r3, r2
	blt	.L778
	ldr	r3, [fp, #-1144]
	ldrb	r3, [r3, #21]	@ zero_extendqisi2
	cmp	r3, #1
	bne	.L779
	ldr	r3, [fp, #-1144]
	ldrb	r3, [r3, #23]	@ zero_extendqisi2
	str	r3, [fp, #-1112]
	mov	r3, #0
	str	r3, [fp, #-1252]	@ float
	ldr	r3, [fp, #-1112]
	cmp	r3, #0
	beq	.L780
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #2092]
	cmp	r3, #0
	beq	.L903
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #2092]
	mov	r2, r3
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-1312]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1144]
	str	r2, [r3, #28]
	b	.L783
.L780:
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #4]
	mov	r2, r3
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-1312]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1144]
	str	r2, [r3, #28]
.L783:
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #28]
	cmp	r3, #0
	bne	.L784
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #24]
	lsl	r3, r3, #1
	mov	r2, r3
	ldr	r1, [fp, #-1120]
	ldr	r0, [fp, #-1312]
	bl	setup_temp_free
	mov	r1, #3
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L784:
	ldr	r3, [fp, #-1112]
	cmp	r3, #0
	beq	.L785
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #2092]
	b	.L786
.L785:
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #4]
.L786:
	str	r3, [fp, #-1108]
	mov	r3, #0
	str	r3, [fp, #-1292]
	b	.L787
.L797:
	ldr	r3, [fp, #-1112]
	cmp	r3, #0
	beq	.L788
	ldr	r3, [fp, #-1144]
	ldr	r2, [r3, #2088]
	ldr	r3, [fp, #-1292]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	b	.L789
.L788:
	ldr	r3, [fp, #-1292]
.L789:
	str	r3, [fp, #-1104]
	mov	r3, #1
	str	r3, [fp, #-1248]
	mov	r3, #0
	str	r3, [fp, #-1288]
	b	.L790
.L796:
	ldr	r1, [fp, #-1248]
	ldr	r0, [fp, #-1104]
	bl	__aeabi_uidiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-1144]
	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, #-1144]
	ldr	r3, [r3, #16]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #12]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-1252]	@ float
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-1096]	@ float
	ldr	r3, [fp, #-1144]
	ldr	r2, [r3, #28]
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3]
	ldr	r1, [fp, #-1292]
	mul	r1, r3, r1
	ldr	r3, [fp, #-1288]
	add	r3, r1, r3
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-1096]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-1144]
	ldrb	r3, [r3, #22]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L791
	ldr	r3, [fp, #-1096]	@ float
	str	r3, [fp, #-1252]	@ float
.L791:
	ldr	r3, [fp, #-1288]
	add	r2, r3, #1
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3]
	cmp	r2, r3
	bge	.L792
	ldr	r3, [fp, #-1144]
	ldr	r2, [r3, #24]
	mov	r1, #0
	ldr	r3, [fp, #-1248]
	umull	r0, r3, r2, r3
	cmp	r3, #0
	beq	.L793
	mov	r1, #1
.L793:
	mov	r3, r1
	cmp	r3, #0
	beq	.L795
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #24]
	lsl	r3, r3, #1
	mov	r2, r3
	ldr	r1, [fp, #-1120]
	ldr	r0, [fp, #-1312]
	bl	setup_temp_free
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L795:
	ldr	r3, [fp, #-1144]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-1248]
	mul	r3, r2, r3
	str	r3, [fp, #-1248]
.L792:
	ldr	r3, [fp, #-1288]
	add	r3, r3, #1
	str	r3, [fp, #-1288]
.L790:
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3]
	ldr	r2, [fp, #-1288]
	cmp	r2, r3
	blt	.L796
	ldr	r3, [fp, #-1292]
	add	r3, r3, #1
	str	r3, [fp, #-1292]
.L787:
	ldr	r2, [fp, #-1292]
	ldr	r3, [fp, #-1108]
	cmp	r2, r3
	blt	.L797
	ldr	r3, [fp, #-1144]
	mov	r2, #2
	strb	r2, [r3, #21]
	b	.L782
.L779:
	mov	r3, #0
	str	r3, [fp, #-1244]	@ float
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #24]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-1312]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1144]
	str	r2, [r3, #28]
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #28]
	cmp	r3, #0
	bne	.L798
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #24]
	lsl	r3, r3, #1
	mov	r2, r3
	ldr	r1, [fp, #-1120]
	ldr	r0, [fp, #-1312]
	bl	setup_temp_free
	mov	r1, #3
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L798:
	mov	r3, #0
	str	r3, [fp, #-1292]
	b	.L799
.L801:
	ldr	r3, [fp, #-1292]
	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, #-1144]
	ldr	r3, [r3, #16]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fmul
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #12]	@ float
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_fadd
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-1244]	@ float
	bl	__aeabi_fadd
	mov	r3, r0
	str	r3, [fp, #-1116]	@ float
	ldr	r3, [fp, #-1144]
	ldr	r2, [r3, #28]
	ldr	r3, [fp, #-1292]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [fp, #-1116]	@ float
	str	r2, [r3]	@ float
	ldr	r3, [fp, #-1144]
	ldrb	r3, [r3, #22]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L800
	ldr	r3, [fp, #-1116]	@ float
	str	r3, [fp, #-1244]	@ float
.L800:
	ldr	r3, [fp, #-1292]
	add	r3, r3, #1
	str	r3, [fp, #-1292]
.L799:
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #24]
	mov	r2, r3
	ldr	r3, [fp, #-1292]
	cmp	r3, r2
	blt	.L801
	b	.L782
.L903:
	nop
.L782:
	ldr	r3, [fp, #-1144]
	ldr	r3, [r3, #24]
	lsl	r3, r3, #1
	mov	r2, r3
	ldr	r1, [fp, #-1120]
	ldr	r0, [fp, #-1312]
	bl	setup_temp_free
.L771:
	ldr	r3, [fp, #-1296]
	add	r3, r3, #1
	str	r3, [fp, #-1296]
.L730:
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #120]
	ldr	r2, [fp, #-1296]
	cmp	r2, r3
	blt	.L802
	mov	r1, #6
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	and	r3, r3, #255
	add	r3, r3, #1
	strb	r3, [fp, #-1307]
	mov	r3, #0
	str	r3, [fp, #-1296]
	b	.L803
.L805:
	mov	r1, #16
	ldr	r0, [fp, #-1312]
	bl	get_bits
	str	r0, [fp, #-1148]
	ldr	r3, [fp, #-1148]
	cmp	r3, #0
	beq	.L804
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L804:
	ldr	r3, [fp, #-1296]
	add	r3, r3, #1
	str	r3, [fp, #-1296]
.L803:
	ldrb	r3, [fp, #-1307]	@ zero_extendqisi2
	ldr	r2, [fp, #-1296]
	cmp	r2, r3
	blt	.L805
	mov	r1, #6
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	add	r3, r3, #1
	mov	r2, r3
	ldr	r3, [fp, #-1312]
	str	r2, [r3, #128]
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #128]
	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, #-1312]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1312]
	str	r2, [r3, #260]
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #260]
	cmp	r3, #0
	bne	.L806
	mov	r1, #3
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L806:
	mov	r3, #0
	str	r3, [fp, #-1296]
	b	.L807
.L833:
	mov	r1, #16
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r1, [fp, #-1312]
	ldr	r3, [fp, #-1296]
	add	r3, r3, #64
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #4
	strh	r2, [r3]	@ movhi
	ldr	r2, [fp, #-1312]
	ldr	r3, [fp, #-1296]
	add	r3, r3, #64
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #4
	ldrh	r3, [r3]
	cmp	r3, #1
	bls	.L808
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L808:
	ldr	r2, [fp, #-1312]
	ldr	r3, [fp, #-1296]
	add	r3, r3, #64
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #4
	ldrh	r3, [r3]
	cmp	r3, #0
	bne	.L809
	ldr	r3, [fp, #-1312]
	ldr	r1, [r3, #260]
	ldr	r2, [fp, #-1296]
	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, #-1152]
	mov	r1, #8
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-1152]
	strb	r2, [r3]
	mov	r1, #16
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-1152]
	strh	r2, [r3, #2]	@ movhi
	mov	r1, #16
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-1152]
	strh	r2, [r3, #4]	@ movhi
	mov	r1, #6
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-1152]
	strb	r2, [r3, #6]
	mov	r1, #8
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-1152]
	strb	r2, [r3, #7]
	mov	r1, #4
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	and	r3, r3, #255
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, [fp, #-1152]
	strb	r2, [r3, #8]
	mov	r3, #0
	str	r3, [fp, #-1292]
	b	.L810
.L811:
	mov	r1, #8
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	and	r1, r3, #255
	ldr	r2, [fp, #-1152]
	ldr	r3, [fp, #-1292]
	add	r3, r2, r3
	add	r3, r3, #9
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-1292]
	add	r3, r3, #1
	str	r3, [fp, #-1292]
.L810:
	ldr	r3, [fp, #-1152]
	ldrb	r3, [r3, #8]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1292]
	cmp	r3, r2
	blt	.L811
	mov	r1, #4
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L809:
	ldr	r3, [fp, #-1312]
	ldr	r1, [r3, #260]
	ldr	r2, [fp, #-1296]
	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, #-1160]
	mvn	r3, #0
	str	r3, [fp, #-1240]
	mov	r1, #5
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-1160]
	strb	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-1292]
	b	.L812
.L814:
	mov	r1, #4
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	and	r1, r3, #255
	ldr	r2, [fp, #-1160]
	ldr	r3, [fp, #-1292]
	add	r3, r2, r3
	add	r3, r3, #1
	mov	r2, r1
	strb	r2, [r3]
	ldr	r2, [fp, #-1160]
	ldr	r3, [fp, #-1292]
	add	r3, r2, r3
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1240]
	cmp	r3, r2
	bge	.L813
	ldr	r2, [fp, #-1160]
	ldr	r3, [fp, #-1292]
	add	r3, r2, r3
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-1240]
.L813:
	ldr	r3, [fp, #-1292]
	add	r3, r3, #1
	str	r3, [fp, #-1292]
.L812:
	ldr	r3, [fp, #-1160]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1292]
	cmp	r3, r2
	blt	.L814
	mov	r3, #0
	str	r3, [fp, #-1292]
	b	.L815
.L821:
	mov	r1, #3
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	and	r3, r3, #255
	add	r3, r3, #1
	and	r1, r3, #255
	ldr	r2, [fp, #-1160]
	ldr	r3, [fp, #-1292]
	add	r3, r2, r3
	add	r3, r3, #33
	mov	r2, r1
	strb	r2, [r3]
	mov	r1, #2
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	and	r1, r3, #255
	ldr	r2, [fp, #-1160]
	ldr	r3, [fp, #-1292]
	add	r3, r2, r3
	add	r3, r3, #49
	mov	r2, r1
	strb	r2, [r3]
	ldr	r2, [fp, #-1160]
	ldr	r3, [fp, #-1292]
	add	r3, r2, r3
	add	r3, r3, #49
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L816
	mov	r1, #8
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	and	r1, r3, #255
	ldr	r2, [fp, #-1160]
	ldr	r3, [fp, #-1292]
	add	r3, r2, r3
	add	r3, r3, #65
	mov	r2, r1
	strb	r2, [r3]
	ldr	r2, [fp, #-1160]
	ldr	r3, [fp, #-1292]
	add	r3, r2, r3
	add	r3, r3, #65
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #120]
	cmp	r2, r3
	blt	.L816
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L816:
	mov	r3, #0
	str	r3, [fp, #-1288]
	b	.L818
.L820:
	mov	r1, #8
	ldr	r0, [fp, #-1312]
	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, #-1160]
	ldr	r3, [fp, #-1292]
	lsl	r0, r3, #3
	ldr	r3, [fp, #-1288]
	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, #-1160]
	ldr	r3, [fp, #-1292]
	lsl	r1, r3, #3
	ldr	r3, [fp, #-1288]
	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, #-1312]
	ldr	r3, [r3, #120]
	cmp	r2, r3
	blt	.L819
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L819:
	ldr	r3, [fp, #-1288]
	add	r3, r3, #1
	str	r3, [fp, #-1288]
.L818:
	ldr	r2, [fp, #-1160]
	ldr	r3, [fp, #-1292]
	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, #-1288]
	cmp	r2, r3
	blt	.L820
	ldr	r3, [fp, #-1292]
	add	r3, r3, #1
	str	r3, [fp, #-1292]
.L815:
	ldr	r2, [fp, #-1292]
	ldr	r3, [fp, #-1240]
	cmp	r2, r3
	ble	.L821
	mov	r1, #2
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	and	r3, r3, #255
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, [fp, #-1160]
	strb	r2, [r3, #1588]
	mov	r1, #4
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-1160]
	strb	r2, [r3, #1589]
	ldr	r3, [fp, #-1160]
	add	r3, r3, #336
	add	r3, r3, #2
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-1160]
	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, #-1160]
	add	r3, r3, #340
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-1160]
	mov	r2, #2
	str	r2, [r3, #1592]
	mov	r3, #0
	str	r3, [fp, #-1292]
	b	.L822
.L825:
	ldr	r2, [fp, #-1160]
	ldr	r3, [fp, #-1292]
	add	r3, r2, r3
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-1156]
	mov	r3, #0
	str	r3, [fp, #-1288]
	b	.L823
.L824:
	ldr	r3, [fp, #-1160]
	ldrb	r3, [r3, #1589]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r2, r0
	ldr	r3, [fp, #-1160]
	ldr	r3, [r3, #1592]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	ldr	r1, [fp, #-1160]
	add	r3, r3, #168
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #2
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-1160]
	ldr	r3, [r3, #1592]
	add	r2, r3, #1
	ldr	r3, [fp, #-1160]
	str	r2, [r3, #1592]
	ldr	r3, [fp, #-1288]
	add	r3, r3, #1
	str	r3, [fp, #-1288]
.L823:
	ldr	r2, [fp, #-1160]
	ldr	r3, [fp, #-1156]
	add	r3, r2, r3
	add	r3, r3, #33
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1288]
	cmp	r3, r2
	blt	.L824
	ldr	r3, [fp, #-1292]
	add	r3, r3, #1
	str	r3, [fp, #-1292]
.L822:
	ldr	r3, [fp, #-1160]
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1292]
	cmp	r3, r2
	blt	.L825
	mov	r3, #0
	str	r3, [fp, #-1292]
	b	.L826
.L827:
	ldr	r2, [fp, #-1160]
	ldr	r3, [fp, #-1292]
	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, #-1292]
	lsl	r1, r1, #2
	add	r3, r3, r1
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-1292]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	sub	r3, fp, #12
	sub	r3, r3, #1072
	sub	r3, r3, #4
	ldr	r1, [fp, #-1292]
	lsl	r1, r1, #2
	add	r3, r3, r1
	add	r3, r3, #2
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-1292]
	add	r3, r3, #1
	str	r3, [fp, #-1292]
.L826:
	ldr	r3, [fp, #-1160]
	ldr	r3, [r3, #1592]
	ldr	r2, [fp, #-1292]
	cmp	r2, r3
	blt	.L827
	ldr	r3, [fp, #-1160]
	ldr	r3, [r3, #1592]
	mov	r1, r3
	sub	r0, fp, #1072
	sub	r0, r0, #12
	sub	r0, r0, #4
	ldr	r3, .L904+4
	mov	r2, #4
	bl	qsort
	mov	r3, #0
	str	r3, [fp, #-1292]
	b	.L828
.L829:
	sub	r3, fp, #12
	sub	r3, r3, #1072
	sub	r3, r3, #4
	ldr	r2, [fp, #-1292]
	lsl	r2, r2, #2
	add	r3, r3, r2
	add	r3, r3, #2
	ldrh	r3, [r3]
	and	r1, r3, #255
	ldr	r2, [fp, #-1160]
	ldr	r3, [fp, #-1292]
	add	r3, r2, r3
	add	r3, r3, #836
	add	r3, r3, #2
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-1292]
	add	r3, r3, #1
	str	r3, [fp, #-1292]
.L828:
	ldr	r3, [fp, #-1160]
	ldr	r3, [r3, #1592]
	ldr	r2, [fp, #-1292]
	cmp	r2, r3
	blt	.L829
	mov	r3, #2
	str	r3, [fp, #-1292]
	b	.L830
.L831:
	ldr	r3, [fp, #-1160]
	add	r0, r3, #336
	add	r0, r0, #2
	sub	r3, fp, #1280
	sub	r3, r3, #12
	sub	r3, r3, #8
	sub	r2, fp, #1280
	sub	r2, r2, #12
	sub	r2, r2, #12
	ldr	r1, [fp, #-1292]
	bl	neighbors
	ldr	r3, [fp, #-1304]
	and	r1, r3, #255
	ldr	r3, [fp, #-1160]
	ldr	r2, [fp, #-1292]
	add	r2, r2, #544
	strb	r1, [r3, r2, lsl #1]
	ldr	r3, [fp, #-1300]
	and	r1, r3, #255
	ldr	r2, [fp, #-1160]
	ldr	r3, [fp, #-1292]
	lsl	r3, r3, #1
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3, #1089]
	ldr	r3, [fp, #-1292]
	add	r3, r3, #1
	str	r3, [fp, #-1292]
.L830:
	ldr	r3, [fp, #-1160]
	ldr	r3, [r3, #1592]
	ldr	r2, [fp, #-1292]
	cmp	r2, r3
	blt	.L831
	ldr	r3, [fp, #-1160]
	ldr	r3, [r3, #1592]
	ldr	r2, [fp, #-1280]
	cmp	r2, r3
	bge	.L832
	ldr	r3, [fp, #-1160]
	ldr	r3, [r3, #1592]
	str	r3, [fp, #-1280]
.L832:
	ldr	r3, [fp, #-1296]
	add	r3, r3, #1
	str	r3, [fp, #-1296]
.L807:
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #128]
	ldr	r2, [fp, #-1296]
	cmp	r2, r3
	blt	.L833
	mov	r1, #6
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	add	r3, r3, #1
	mov	r2, r3
	ldr	r3, [fp, #-1312]
	str	r2, [r3, #264]
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #264]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r1, r3
	ldr	r0, [fp, #-1312]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1312]
	str	r2, [r3, #396]
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #396]
	cmp	r3, #0
	bne	.L834
	mov	r1, #3
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L834:
	ldr	r3, [fp, #-1312]
	ldr	r0, [r3, #396]
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #264]
	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, #-1296]
	b	.L835
.L856:
	ldr	r3, [fp, #-1312]
	ldr	r1, [r3, #396]
	ldr	r2, [fp, #-1296]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	str	r3, [fp, #-1168]
	mov	r1, #16
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r1, [fp, #-1312]
	ldr	r3, [fp, #-1296]
	add	r3, r3, #132
	lsl	r3, r3, #1
	add	r3, r1, r3
	add	r3, r3, #4
	strh	r2, [r3]	@ movhi
	ldr	r2, [fp, #-1312]
	ldr	r3, [fp, #-1296]
	add	r3, r3, #132
	lsl	r3, r3, #1
	add	r3, r2, r3
	add	r3, r3, #4
	ldrh	r3, [r3]
	cmp	r3, #2
	bls	.L836
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L836:
	mov	r1, #24
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r2, r0
	ldr	r3, [fp, #-1168]
	str	r2, [r3]
	mov	r1, #24
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r2, r0
	ldr	r3, [fp, #-1168]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-1168]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-1168]
	ldr	r3, [r3]
	cmp	r2, r3
	bcs	.L838
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L838:
	mov	r1, #24
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	add	r2, r3, #1
	ldr	r3, [fp, #-1168]
	str	r2, [r3, #8]
	mov	r1, #6
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	and	r3, r3, #255
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, [fp, #-1168]
	strb	r2, [r3, #12]
	mov	r1, #8
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-1168]
	strb	r2, [r3, #13]
	ldr	r3, [fp, #-1168]
	ldrb	r3, [r3, #13]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #120]
	cmp	r2, r3
	blt	.L839
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L839:
	mov	r3, #0
	str	r3, [fp, #-1292]
	b	.L840
.L842:
	mov	r3, #0
	strb	r3, [fp, #-1308]
	mov	r1, #3
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	strb	r3, [fp, #-1306]
	mov	r1, #1
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	cmp	r3, #0
	beq	.L841
	mov	r1, #5
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	strb	r3, [fp, #-1308]
.L841:
	ldrb	r3, [fp, #-1308]
	lsl	r3, r3, #3
	and	r2, r3, #255
	ldrb	r3, [fp, #-1306]
	add	r3, r2, r3
	and	r1, r3, #255
	sub	r2, fp, #80
	ldr	r3, [fp, #-1292]
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-1292]
	add	r3, r3, #1
	str	r3, [fp, #-1292]
.L840:
	ldr	r3, [fp, #-1168]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1292]
	cmp	r3, r2
	blt	.L842
	ldr	r3, [fp, #-1168]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	lsl	r3, r3, #4
	mov	r1, r3
	ldr	r0, [fp, #-1312]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1168]
	str	r2, [r3, #20]
	ldr	r3, [fp, #-1168]
	ldr	r3, [r3, #20]
	cmp	r3, #0
	bne	.L843
	mov	r1, #3
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L843:
	mov	r3, #0
	str	r3, [fp, #-1292]
	b	.L844
.L849:
	mov	r3, #0
	str	r3, [fp, #-1288]
	b	.L845
.L848:
	sub	r2, fp, #80
	ldr	r3, [fp, #-1292]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1288]
	asr	r3, r2, r3
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L846
	mov	r1, #8
	ldr	r0, [fp, #-1312]
	bl	get_bits
	ldr	r3, [fp, #-1168]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-1292]
	lsl	r3, r3, #4
	add	r1, r2, r3
	lsl	r3, r0, #16
	asr	r2, r3, #16
	ldr	r3, [fp, #-1288]
	lsl	r3, r3, #1
	add	r3, r1, r3
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-1168]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-1292]
	lsl	r3, r3, #4
	add	r2, r2, r3
	ldr	r3, [fp, #-1288]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #120]
	cmp	r2, r3
	blt	.L847
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L846:
	ldr	r3, [fp, #-1168]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-1292]
	lsl	r3, r3, #4
	add	r2, r2, r3
	ldr	r3, [fp, #-1288]
	lsl	r3, r3, #1
	add	r3, r2, r3
	mvn	r2, #0
	strh	r2, [r3]	@ movhi
.L847:
	ldr	r3, [fp, #-1288]
	add	r3, r3, #1
	str	r3, [fp, #-1288]
.L845:
	ldr	r3, [fp, #-1288]
	cmp	r3, #7
	ble	.L848
	ldr	r3, [fp, #-1292]
	add	r3, r3, #1
	str	r3, [fp, #-1292]
.L844:
	ldr	r3, [fp, #-1168]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1292]
	cmp	r3, r2
	blt	.L849
	ldr	r3, [fp, #-1312]
	ldr	r1, [r3, #124]
	ldr	r3, [fp, #-1168]
	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, #-1312]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1168]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-1168]
	ldr	r3, [r3, #16]
	cmp	r3, #0
	bne	.L850
	mov	r1, #3
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L850:
	ldr	r3, [fp, #-1168]
	ldr	r0, [r3, #16]
	ldr	r3, [fp, #-1312]
	ldr	r1, [r3, #124]
	ldr	r3, [fp, #-1168]
	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, #-1292]
	b	.L851
.L855:
	ldr	r3, [fp, #-1312]
	ldr	r1, [r3, #124]
	ldr	r3, [fp, #-1168]
	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, #-1164]
	ldr	r3, [fp, #-1292]
	str	r3, [fp, #-1236]
	ldr	r3, [fp, #-1168]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-1292]
	lsl	r3, r3, #2
	add	r4, r2, r3
	ldr	r1, [fp, #-1164]
	ldr	r0, [fp, #-1312]
	bl	setup_malloc
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, [fp, #-1168]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-1292]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L852
	mov	r1, #3
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L852:
	ldr	r3, [fp, #-1164]
	sub	r3, r3, #1
	str	r3, [fp, #-1288]
	b	.L853
.L854:
	ldr	r3, [fp, #-1168]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1236]
	mov	r1, r2
	mov	r0, r3
	bl	__aeabi_idivmod
	mov	r3, r1
	mov	r1, r3
	ldr	r3, [fp, #-1168]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-1292]
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r2, [r3]
	ldr	r3, [fp, #-1288]
	add	r3, r2, r3
	and	r2, r1, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-1168]
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, [fp, #-1236]
	bl	__aeabi_idiv
	mov	r3, r0
	str	r3, [fp, #-1236]
	ldr	r3, [fp, #-1288]
	sub	r3, r3, #1
	str	r3, [fp, #-1288]
.L853:
	ldr	r3, [fp, #-1288]
	cmp	r3, #0
	bge	.L854
	ldr	r3, [fp, #-1292]
	add	r3, r3, #1
	str	r3, [fp, #-1292]
.L851:
	ldr	r3, [fp, #-1312]
	ldr	r1, [r3, #124]
	ldr	r3, [fp, #-1168]
	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, #-1292]
	cmp	r2, r3
	blt	.L855
	ldr	r3, [fp, #-1296]
	add	r3, r3, #1
	str	r3, [fp, #-1296]
.L835:
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #264]
	ldr	r2, [fp, #-1296]
	cmp	r2, r3
	blt	.L856
	mov	r1, #6
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	add	r3, r3, #1
	mov	r2, r3
	ldr	r3, [fp, #-1312]
	str	r2, [r3, #400]
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #400]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	mov	r1, r3
	ldr	r0, [fp, #-1312]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1312]
	str	r2, [r3, #404]
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #404]
	cmp	r3, #0
	bne	.L857
	mov	r1, #3
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L857:
	ldr	r3, [fp, #-1312]
	ldr	r0, [r3, #404]
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #400]
	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, #-1296]
	b	.L858
.L883:
	ldr	r3, [fp, #-1312]
	ldr	r1, [r3, #404]
	ldr	r2, [fp, #-1296]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	str	r3, [fp, #-1176]
	mov	r1, #16
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	str	r3, [fp, #-1172]
	ldr	r3, [fp, #-1172]
	cmp	r3, #0
	beq	.L859
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L859:
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #4]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	mov	r1, r3
	ldr	r0, [fp, #-1312]
	bl	setup_malloc
	mov	r2, r0
	ldr	r3, [fp, #-1176]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-1176]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L860
	mov	r1, #3
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L860:
	mov	r1, #1
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	cmp	r3, #0
	beq	.L861
	mov	r1, #4
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	and	r3, r3, #255
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, [fp, #-1176]
	strb	r2, [r3, #8]
	b	.L862
.L861:
	ldr	r3, [fp, #-1176]
	mov	r2, #1
	strb	r2, [r3, #8]
.L862:
	ldr	r3, [fp, #-1176]
	ldrb	r3, [r3, #8]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1284]
	cmp	r3, r2
	bge	.L863
	ldr	r3, [fp, #-1176]
	ldrb	r3, [r3, #8]	@ zero_extendqisi2
	str	r3, [fp, #-1284]
.L863:
	mov	r1, #1
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	cmp	r3, #0
	beq	.L864
	mov	r1, #8
	ldr	r0, [fp, #-1312]
	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, #-1176]
	strh	r2, [r3]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-1288]
	b	.L865
.L869:
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #4]
	sub	r3, r3, #1
	mov	r0, r3
	bl	ilog
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-1312]
	bl	get_bits
	ldr	r3, [fp, #-1176]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-1288]
	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, #-1312]
	ldr	r3, [r3, #4]
	sub	r3, r3, #1
	mov	r0, r3
	bl	ilog
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-1312]
	bl	get_bits
	ldr	r3, [fp, #-1176]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-1288]
	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, #-1176]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-1288]
	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, #-1312]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	blt	.L866
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L866:
	ldr	r3, [fp, #-1176]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-1288]
	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, #-1312]
	ldr	r3, [r3, #4]
	cmp	r2, r3
	blt	.L867
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L867:
	ldr	r3, [fp, #-1176]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-1288]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r1, r3
	ldrb	r1, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-1176]
	ldr	r0, [r3, #4]
	ldr	r2, [fp, #-1288]
	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	.L868
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L868:
	ldr	r3, [fp, #-1288]
	add	r3, r3, #1
	str	r3, [fp, #-1288]
.L865:
	ldr	r3, [fp, #-1176]
	ldrh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-1288]
	cmp	r3, r2
	blt	.L869
	b	.L870
.L864:
	ldr	r3, [fp, #-1176]
	mov	r2, #0
	strh	r2, [r3]	@ movhi
.L870:
	mov	r1, #2
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	cmp	r3, #0
	beq	.L871
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L871:
	ldr	r3, [fp, #-1176]
	ldrb	r3, [r3, #8]	@ zero_extendqisi2
	cmp	r3, #1
	bls	.L872
	mov	r3, #0
	str	r3, [fp, #-1292]
	b	.L873
.L875:
	mov	r1, #4
	ldr	r0, [fp, #-1312]
	bl	get_bits
	ldr	r3, [fp, #-1176]
	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, #2]
	ldr	r3, [fp, #-1176]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-1292]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r1, r3
	ldrb	r2, [r3, #2]	@ zero_extendqisi2
	ldr	r3, [fp, #-1176]
	ldrb	r3, [r3, #8]	@ zero_extendqisi2
	cmp	r2, r3
	bcc	.L874
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L874:
	ldr	r3, [fp, #-1292]
	add	r3, r3, #1
	str	r3, [fp, #-1292]
.L873:
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-1292]
	cmp	r2, r3
	blt	.L875
	b	.L876
.L872:
	mov	r3, #0
	str	r3, [fp, #-1292]
	b	.L877
.L878:
	ldr	r3, [fp, #-1176]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-1292]
	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, #-1292]
	add	r3, r3, #1
	str	r3, [fp, #-1292]
.L877:
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-1292]
	cmp	r2, r3
	blt	.L878
.L876:
	mov	r3, #0
	str	r3, [fp, #-1292]
	b	.L879
.L882:
	mov	r1, #8
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r1, #8
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	and	r1, r3, #255
	ldr	r2, [fp, #-1176]
	ldr	r3, [fp, #-1292]
	add	r3, r2, r3
	add	r3, r3, #9
	mov	r2, r1
	strb	r2, [r3]
	mov	r1, #8
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	and	r1, r3, #255
	ldr	r2, [fp, #-1176]
	ldr	r3, [fp, #-1292]
	add	r3, r2, r3
	add	r3, r3, #24
	mov	r2, r1
	strb	r2, [r3]
	ldr	r2, [fp, #-1176]
	ldr	r3, [fp, #-1292]
	add	r3, r2, r3
	add	r3, r3, #9
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #128]
	cmp	r2, r3
	blt	.L880
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L880:
	ldr	r2, [fp, #-1176]
	ldr	r3, [fp, #-1292]
	add	r3, r2, r3
	add	r3, r3, #24
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #264]
	cmp	r2, r3
	blt	.L881
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L881:
	ldr	r3, [fp, #-1292]
	add	r3, r3, #1
	str	r3, [fp, #-1292]
.L879:
	ldr	r3, [fp, #-1176]
	ldrb	r3, [r3, #8]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1292]
	cmp	r3, r2
	blt	.L882
	ldr	r3, [fp, #-1296]
	add	r3, r3, #1
	str	r3, [fp, #-1296]
.L858:
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #400]
	ldr	r2, [fp, #-1296]
	cmp	r2, r3
	blt	.L883
	mov	r1, #6
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	add	r3, r3, #1
	mov	r2, r3
	ldr	r3, [fp, #-1312]
	str	r2, [r3, #408]
	mov	r3, #0
	str	r3, [fp, #-1296]
	b	.L884
.L888:
	ldr	r3, [fp, #-1312]
	add	r1, r3, #412
	ldr	r2, [fp, #-1296]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r1, r3
	str	r3, [fp, #-1180]
	mov	r1, #1
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-1180]
	strb	r2, [r3]
	mov	r1, #16
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-1180]
	strh	r2, [r3, #2]	@ movhi
	mov	r1, #16
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-1180]
	strh	r2, [r3, #4]	@ movhi
	mov	r1, #8
	ldr	r0, [fp, #-1312]
	bl	get_bits
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-1180]
	strb	r2, [r3, #1]
	ldr	r3, [fp, #-1180]
	ldrh	r3, [r3, #2]
	cmp	r3, #0
	beq	.L885
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L885:
	ldr	r3, [fp, #-1180]
	ldrh	r3, [r3, #4]
	cmp	r3, #0
	beq	.L886
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L886:
	ldr	r3, [fp, #-1180]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #400]
	cmp	r2, r3
	blt	.L887
	mov	r1, #20
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L887:
	ldr	r3, [fp, #-1296]
	add	r3, r3, #1
	str	r3, [fp, #-1296]
.L884:
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #408]
	ldr	r2, [fp, #-1296]
	cmp	r2, r3
	blt	.L888
	ldr	r0, [fp, #-1312]
	bl	flush_packet
	ldr	r3, [fp, #-1312]
	mov	r2, #0
	str	r2, [r3, #992]
	mov	r3, #0
	str	r3, [fp, #-1296]
	b	.L889
.L892:
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #116]
	lsl	r3, r3, #2
	mov	r1, r3
	ldr	r0, [fp, #-1312]
	bl	setup_malloc
	mov	r1, r0
	ldr	r3, [fp, #-1312]
	ldr	r2, [fp, #-1296]
	add	r2, r2, #200
	str	r1, [r3, r2, lsl #2]
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #116]
	lsl	r3, r3, #2
	lsr	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-1312]
	bl	setup_malloc
	mov	r1, r0
	ldr	r3, [fp, #-1312]
	ldr	r2, [fp, #-1296]
	add	r2, r2, #232
	str	r1, [r3, r2, lsl #2]
	ldr	r3, [fp, #-1280]
	lsl	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-1312]
	bl	setup_malloc
	mov	r1, r0
	ldr	r2, [fp, #-1312]
	ldr	r3, [fp, #-1296]
	add	r3, r3, #248
	lsl	r3, r3, #2
	add	r3, r2, r3
	str	r1, [r3, #4]
	ldr	r3, [fp, #-1312]
	ldr	r2, [fp, #-1296]
	add	r2, r2, #200
	ldr	r3, [r3, r2, lsl #2]
	cmp	r3, #0
	beq	.L890
	ldr	r3, [fp, #-1312]
	ldr	r2, [fp, #-1296]
	add	r2, r2, #232
	ldr	r3, [r3, r2, lsl #2]
	cmp	r3, #0
	beq	.L890
	ldr	r2, [fp, #-1312]
	ldr	r3, [fp, #-1296]
	add	r3, r3, #248
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L891
.L890:
	mov	r1, #3
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L891:
	ldr	r3, [fp, #-1312]
	ldr	r2, [fp, #-1296]
	add	r2, r2, #200
	ldr	r0, [r3, r2, lsl #2]
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #116]
	lsl	r3, r3, #2
	mov	r2, r3
	mov	r1, #0
	bl	memset
	ldr	r3, [fp, #-1296]
	add	r3, r3, #1
	str	r3, [fp, #-1296]
.L889:
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-1296]
	cmp	r2, r3
	blt	.L892
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #112]
	mov	r2, r3
	mov	r1, #0
	ldr	r0, [fp, #-1312]
	bl	init_blocksize
	mov	r3, r0
	cmp	r3, #0
	bne	.L893
	mov	r3, #0
	b	.L901
.L893:
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #116]
	mov	r2, r3
	mov	r1, #1
	ldr	r0, [fp, #-1312]
	bl	init_blocksize
	mov	r3, r0
	cmp	r3, #0
	bne	.L894
	mov	r3, #0
	b	.L901
.L894:
	ldr	r3, [fp, #-1312]
	ldr	r2, [r3, #112]
	ldr	r3, [fp, #-1312]
	str	r2, [r3, #104]
	ldr	r3, [fp, #-1312]
	ldr	r2, [r3, #116]
	ldr	r3, [fp, #-1312]
	str	r2, [r3, #108]
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #116]
	lsl	r3, r3, #2
	lsr	r3, r3, #1
	str	r3, [fp, #-1212]
	mov	r3, #0
	str	r3, [fp, #-1228]
	mov	r3, #0
	str	r3, [fp, #-1232]
	b	.L895
.L897:
	ldr	r3, [fp, #-1312]
	ldr	r1, [r3, #396]
	ldr	r2, [fp, #-1232]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	str	r3, [fp, #-1204]
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #116]
	lsr	r2, r3, #31
	add	r3, r2, r3
	asr	r3, r3, #1
	str	r3, [fp, #-1200]
	ldr	r3, [fp, #-1204]
	ldr	r3, [r3]
	ldr	r2, [fp, #-1200]
	cmp	r2, r3
	movcc	r3, r2
	movcs	r3, r3
	str	r3, [fp, #-1196]
	ldr	r3, [fp, #-1204]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-1200]
	cmp	r2, r3
	movcc	r3, r2
	movcs	r3, r3
	str	r3, [fp, #-1192]
	ldr	r2, [fp, #-1192]
	ldr	r3, [fp, #-1196]
	sub	r3, r2, r3
	str	r3, [fp, #-1188]
	ldr	r2, [fp, #-1188]
	ldr	r3, [fp, #-1204]
	ldr	r3, [r3, #8]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidiv
	mov	r3, r0
	str	r3, [fp, #-1184]
	ldr	r2, [fp, #-1184]
	ldr	r3, [fp, #-1228]
	cmp	r2, r3
	ble	.L896
	ldr	r3, [fp, #-1184]
	str	r3, [fp, #-1228]
.L896:
	ldr	r3, [fp, #-1232]
	add	r3, r3, #1
	str	r3, [fp, #-1232]
.L895:
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #264]
	ldr	r2, [fp, #-1232]
	cmp	r2, r3
	blt	.L897
	ldr	r3, [fp, #-1228]
	add	r3, r3, #1
	ldr	r2, [fp, #-1312]
	ldr	r2, [r2, #4]
	mul	r3, r2, r3
	lsl	r3, r3, #2
	str	r3, [fp, #-1208]
	ldr	r3, [fp, #-1312]
	ldr	r2, [fp, #-1208]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #12]
	ldr	r2, [fp, #-1212]
	cmp	r2, r3
	bls	.L898
	ldr	r3, [fp, #-1312]
	ldr	r2, [fp, #-1212]
	str	r2, [r3, #12]
.L898:
	ldr	r3, [fp, #-1312]
	mov	r2, #1
	strb	r2, [r3, #1377]
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #80]
	cmp	r3, #0
	beq	.L899
	ldr	r3, [fp, #-1312]
	ldr	r2, [r3, #92]
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #84]
	cmp	r2, r3
	beq	.L900
	ldr	r3, .L906
	ldr	r2, .L906+4
	ldr	r1, .L906+8
	ldr	r0, .L906+12
	bl	__assert_fail
.L900:
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #88]
	mov	r2, r3
	ldr	r3, [fp, #-1312]
	ldr	r3, [r3, #12]
	add	r3, r2, r3
	add	r3, r3, #1504
	add	r3, r3, #8
	ldr	r2, [fp, #-1312]
	ldr	r2, [r2, #92]
	cmp	r3, r2
	bls	.L899
	mov	r1, #3
	ldr	r0, [fp, #-1312]
	bl	error
	mov	r3, r0
	b	.L901
.L899:
	ldr	r0, [fp, #-1312]
	bl	stb_vorbis_get_file_offset
	mov	r2, r0
	ldr	r3, [fp, #-1312]
	str	r2, [r3, #52]
	mov	r3, #1
.L901:
	ldr	r2, .L906+16
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L902
	bl	__stack_chk_fail
.L902:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L907:
	.align	2
.L906:
	.word	__PRETTY_FUNCTION__.7758
	.word	4110
	.word	.LC0
	.word	.LC25
	.word	.LC26
	.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, #396]
	cmp	r3, #0
	beq	.L909
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L910
.L914:
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #396]
	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	.L911
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L912
.L913:
	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]
.L912:
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #124]
	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	.L913
	ldr	r3, [fp, #-12]
	ldr	r3, [r3, #16]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
.L911:
	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]
.L910:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #264]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L914
.L909:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #124]
	cmp	r3, #0
	beq	.L915
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L916
.L919:
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #124]
	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	.L917
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #2088]
	sub	r3, r3, #4
	b	.L918
.L917:
	mov	r3, #0
.L918:
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L916:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #120]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L919
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #124]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
.L915:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #260]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #396]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #404]
	cmp	r3, #0
	beq	.L920
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L921
.L922:
	ldr	r3, [fp, #-24]
	ldr	r1, [r3, #404]
	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]
.L921:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #400]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L922
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #404]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
.L920:
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L923
.L925:
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-20]
	add	r2, r2, #200
	ldr	r3, [r3, r2, lsl #2]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	setup_free
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-20]
	add	r2, r2, #232
	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, #248
	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, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L923:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	bge	.L924
	ldr	r3, [fp, #-20]
	cmp	r3, #15
	ble	.L925
.L924:
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L926
.L927:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-20]
	add	r3, r3, #264
	add	r3, r3, #2
	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, #268
	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, #268
	add	r3, r3, #2
	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, #272
	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, #272
	add	r3, r3, #2
	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, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L926:
	ldr	r3, [fp, #-20]
	cmp	r3, #1
	ble	.L927
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #28]
	cmp	r3, #0
	beq	.L929
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #20]
	mov	r0, r3
	bl	fclose
.L929:
	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	.L933
	ldr	r0, [fp, #-8]
	bl	vorbis_deinit
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	setup_free
	b	.L930
.L933:
	nop
.L930:
	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, .L936
	mov	r1, #0
	ldr	r0, [fp, #-8]
	bl	memset
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L935
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-12]
	add	r3, r3, #80
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #84]
	add	r3, r3, #3
	bic	r2, r3, #3
	ldr	r3, [fp, #-8]
	str	r2, [r3, #84]
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #92]
.L935:
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #96]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #100]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #32]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #124]
	ldr	r3, [fp, #-8]
	mvn	r2, #0
	str	r2, [r3, #1420]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #28]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #20]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L937:
	.align	2
.L936:
	.word	1512
	.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, #1064]
	cmp	r3, #0
	beq	.L939
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #1060]
	b	.L940
.L939:
	mvn	r3, #0
.L940:
	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, #116]
	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_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, #100]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #100]
	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, .L947
	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}
.L948:
	.align	2
.L947:
	.word	1512
	.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, #992]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #1420]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #1412]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #1064]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	strb	r2, [r3, #1377]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #1416]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #1504]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #1508]
	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	.L951
.L952:
	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, #1424
	add	r3, r3, #12
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L951:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #1420]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L952
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #1420]
	cmp	r3, #3
	bgt	.L953
	ldr	r3, [fp, #-56]
	cmp	r3, #3
	bgt	.L954
	mov	r3, #0
	b	.L955
.L954:
	ldr	r3, [fp, #-56]
	sub	r3, r3, #3
	str	r3, [fp, #-56]
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L956
.L968:
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #79
	bne	.L957
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-52]
	add	r3, r2, r3
	mov	r2, #4
	ldr	r1, .L977
	mov	r0, r3
	bl	memcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L957
	ldr	r3, [fp, #-40]
	add	r3, r3, #26
	ldr	r2, [fp, #-56]
	cmp	r2, r3
	ble	.L958
	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	.L959
.L958:
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-56]
	b	.L953
.L959:
	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	.L960
.L961:
	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]
.L960:
	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	.L961
	mov	r3, #0
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-36]
	b	.L962
.L963:
	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]
.L962:
	ldr	r3, [fp, #-36]
	cmp	r3, #21
	ble	.L963
	b	.L964
.L965:
	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]
.L964:
	ldr	r3, [fp, #-36]
	cmp	r3, #25
	ble	.L965
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #1420]
	add	r1, r3, #1
	ldr	r2, [fp, #-48]
	str	r1, [r2, #1420]
	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, #1424
	add	r3, r3, #4
	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, #1424
	add	r3, r3, #8
	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
	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	.L966
	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
	mvn	r2, #0
	str	r2, [r3]
	b	.L967
.L966:
	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
	str	r0, [r3]
.L967:
	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, #1424
	add	r3, r3, #12
	str	r1, [r3]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #1420]
	cmp	r3, #4
	beq	.L976
.L957:
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L956:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-56]
	cmp	r2, r3
	blt	.L968
	b	.L953
.L976:
	nop
.L953:
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L969
.L975:
	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, #1424
	add	r3, r3, #12
	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, #1424
	add	r3, r3, #4
	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	.L970
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-8]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
.L970:
	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, #1424
	add	r3, r3, #8
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L971
.L972:
	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]
.L971:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L972
	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, #1424
	add	r3, r3, #4
	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, #1424
	add	r3, r3, #4
	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, #1424
	add	r3, r3, #8
	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, #1424
	add	r3, r3, #4
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L973
	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, #1424
	add	r3, r3, #8
	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
	ldr	r3, [r3]
	cmp	r1, r3
	bne	.L974
	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, #1420]
	ldr	r3, [fp, #-48]
	mov	r2, #0
	str	r2, [r3, #992]
	ldr	r3, [fp, #-48]
	mvn	r2, #0
	str	r2, [r3, #1380]
	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, #-48]
	str	r2, [r3, #1060]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #1060]
	cmn	r3, #1
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-48]
	str	r2, [r3, #1064]
	ldr	r3, [fp, #-56]
	b	.L955
.L974:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #1420]
	sub	r2, r3, #1
	ldr	r3, [fp, #-48]
	str	r2, [r3, #1420]
	ldr	r3, [fp, #-48]
	ldr	r2, [r3, #1420]
	ldr	r0, [fp, #-48]
	ldr	r1, [fp, #-40]
	mov	r3, r1
	lsl	r3, r3, #2
	add	r3, r3, r1
	lsl	r3, r3, #2
	add	r3, r0, r3
	add	r0, r3, #1424
	ldr	r1, [fp, #-48]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	add	r3, r3, #1424
	mov	ip, r0
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldr	r3, [lr]
	str	r3, [ip]
	b	.L969
.L973:
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L969:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #1420]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L975
	ldr	r3, [fp, #-56]
.L955:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L978:
	.align	2
.L977:
	.word	ogg_page_header
	.size	vorbis_search_for_page_pushdata, .-vorbis_search_for_page_pushdata
	.section	.rodata
	.align	2
.LC27:
	.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, .L1000
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3, #48]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L980
	mov	r1, #2
	ldr	r0, [fp, #-32]
	bl	error
	mov	r3, r0
	b	.L996
.L980:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1420]
	cmp	r3, #0
	blt	.L982
	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	.L996
.L982:
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-36]
	str	r2, [r3, #32]
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-36]
	add	r2, r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3, #40]
	ldr	r3, [fp, #-32]
	mov	r2, #0
	str	r2, [r3, #100]
	mov	r1, #0
	ldr	r0, [fp, #-32]
	bl	is_whole_packet_present
	mov	r3, r0
	cmp	r3, #0
	bne	.L983
	ldr	r3, [fp, #-52]
	mov	r2, #0
	str	r2, [r3]
	mov	r3, #0
	b	.L996
.L983:
	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	.L984
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #100]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #35
	bne	.L985
	ldr	r3, [fp, #-32]
	mov	r2, #0
	str	r2, [r3, #100]
	b	.L986
.L988:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #96]
	cmp	r3, #0
	bne	.L998
.L986:
	ldr	r0, [fp, #-32]
	bl	get8_packet
	mov	r3, r0
	cmn	r3, #1
	bne	.L988
	b	.L987
.L998:
	nop
.L987:
	ldr	r3, [fp, #-52]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #32]
	ldr	r3, [fp, #-36]
	sub	r3, r2, r3
	b	.L996
.L985:
	ldr	r3, [fp, #-12]
	cmp	r3, #32
	bne	.L989
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #992]
	cmp	r3, #0
	bne	.L989
	ldr	r3, [fp, #-32]
	mov	r2, #0
	str	r2, [r3, #100]
	b	.L990
.L992:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #96]
	cmp	r3, #0
	bne	.L999
.L990:
	ldr	r0, [fp, #-32]
	bl	get8_packet
	mov	r3, r0
	cmn	r3, #1
	bne	.L992
	b	.L991
.L999:
	nop
.L991:
	ldr	r3, [fp, #-52]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #32]
	ldr	r3, [fp, #-36]
	sub	r3, r2, r3
	b	.L996
.L989:
	ldr	r0, [fp, #-32]
	bl	stb_vorbis_flush_pushdata
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #100]
	ldr	r3, [fp, #-52]
	mov	r2, #0
	str	r2, [r3]
	mov	r3, #1
	b	.L996
.L984:
	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	.L993
.L994:
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-16]
	add	r2, r2, #200
	ldr	r2, [r3, r2, lsl #2]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #2
	add	r1, r2, r3
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-16]
	add	r2, r2, #216
	str	r1, [r3, r2, lsl #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L993:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	blt	.L994
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	beq	.L995
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-44]
	str	r2, [r3]
.L995:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-52]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	add	r2, r3, #864
	ldr	r3, [fp, #-48]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #32]
	ldr	r3, [fp, #-36]
	sub	r3, r2, r3
.L996:
	ldr	r2, .L1000
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L997
	bl	__stack_chk_fail
.L997:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1001:
	.align	2
.L1000:
	.word	.LC27
	.size	stb_vorbis_decode_frame_pushdata, .-stb_vorbis_decode_frame_pushdata
	.section	.rodata
	.align	2
.LC28:
	.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 = 1544
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #1536
	sub	sp, sp, #8
	str	r0, [fp, #-1528]
	str	r1, [fp, #-1532]
	str	r2, [fp, #-1536]
	str	r3, [fp, #-1540]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-1544]
	ldr	r3, .L1010
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #1504
	sub	r3, r3, #4
	sub	r3, r3, #12
	ldr	r1, [fp, #-1544]
	mov	r0, r3
	bl	vorbis_init
	ldr	r3, [fp, #-1528]
	str	r3, [fp, #-1488]
	ldr	r3, [fp, #-1532]
	ldr	r2, [fp, #-1528]
	add	r3, r2, r3
	str	r3, [fp, #-1480]
	mov	r3, #1
	strb	r3, [fp, #-1472]
	sub	r3, fp, #1504
	sub	r3, r3, #4
	sub	r3, r3, #12
	mov	r0, r3
	bl	start_decoder
	mov	r3, r0
	cmp	r3, #0
	bne	.L1003
	ldr	r3, [fp, #-1424]
	cmp	r3, #0
	beq	.L1004
	ldr	r3, [fp, #-1540]
	mov	r2, #1
	str	r2, [r3]
	b	.L1005
.L1004:
	ldr	r3, [fp, #-1420]
	mov	r2, r3
	ldr	r3, [fp, #-1540]
	str	r2, [r3]
.L1005:
	mov	r3, #0
	b	.L1008
.L1003:
	sub	r3, fp, #1504
	sub	r3, r3, #4
	sub	r3, r3, #12
	mov	r0, r3
	bl	vorbis_alloc
	str	r0, [fp, #-1524]
	ldr	r3, [fp, #-1524]
	cmp	r3, #0
	beq	.L1007
	ldr	r3, [fp, #-1524]
	mov	r0, r3
	sub	r3, fp, #1504
	sub	r3, r3, #4
	sub	r3, r3, #12
	ldr	r2, .L1010+4
	mov	r1, r3
	bl	memcpy
	ldr	r3, [fp, #-1524]
	ldr	r2, [r3, #32]
	ldr	r3, [fp, #-1528]
	sub	r2, r2, r3
	ldr	r3, [fp, #-1536]
	str	r2, [r3]
	ldr	r3, [fp, #-1540]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-1524]
	b	.L1008
.L1007:
	sub	r3, fp, #1504
	sub	r3, r3, #4
	sub	r3, r3, #12
	mov	r0, r3
	bl	vorbis_deinit
	mov	r3, #0
.L1008:
	ldr	r2, .L1010
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1009
	bl	__stack_chk_fail
.L1009:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1011:
	.align	2
.L1010:
	.word	.LC28
	.word	1512
	.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, #48]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L1013
	mov	r3, #0
	b	.L1014
.L1013:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #32]
	cmp	r3, #0
	beq	.L1015
	ldr	r3, [fp, #-8]
	ldr	r2, [r3, #32]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #36]
	sub	r3, r2, r3
	b	.L1014
.L1015:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #20]
	mov	r0, r3
	bl	ftell
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #24]
	sub	r3, r2, r3
.L1014:
	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
.LC29:
	.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, .L1052
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
.L1047:
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #96]
	cmp	r3, #0
	beq	.L1017
	mov	r3, #0
	b	.L1018
.L1017:
	ldr	r0, [fp, #-72]
	bl	get8
	mov	r3, r0
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	cmp	r3, #79
	bne	.L1047
	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, #44]
	cmp	r2, r3
	bls	.L1020
	mov	r3, #0
	b	.L1018
.L1020:
	mov	r3, #1
	str	r3, [fp, #-68]
	b	.L1021
.L1024:
	ldr	r0, [fp, #-72]
	bl	get8
	mov	r3, r0
	mov	r1, r3
	ldr	r2, .L1052+4
	ldr	r3, [fp, #-68]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r1, r3
	bne	.L1049
	ldr	r3, [fp, #-68]
	add	r3, r3, #1
	str	r3, [fp, #-68]
.L1021:
	ldr	r3, [fp, #-68]
	cmp	r3, #3
	ble	.L1024
	b	.L1023
.L1049:
	nop
.L1023:
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #96]
	cmp	r3, #0
	beq	.L1025
	mov	r3, #0
	b	.L1018
.L1025:
	ldr	r3, [fp, #-68]
	cmp	r3, #4
	bne	.L1050
	mov	r3, #0
	str	r3, [fp, #-64]
	b	.L1027
.L1028:
	ldr	r2, .L1052+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]
.L1027:
	ldr	r3, [fp, #-64]
	cmp	r3, #3
	bls	.L1028
	b	.L1029
.L1030:
	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]
.L1029:
	ldr	r3, [fp, #-64]
	cmp	r3, #26
	bls	.L1030
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #96]
	cmp	r3, #0
	beq	.L1031
	mov	r3, #0
	b	.L1018
.L1031:
	ldrb	r3, [fp, #-32]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L1051
	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	.L1034
.L1035:
	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]
.L1034:
	ldr	r3, [fp, #-64]
	cmp	r3, #25
	bls	.L1035
	mov	r3, #0
	str	r3, [fp, #-60]
	mov	r3, #0
	str	r3, [fp, #-64]
	b	.L1036
.L1037:
	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]
.L1036:
	ldr	r3, [fp, #-64]
	cmp	r3, #26
	bls	.L1037
	mov	r3, #0
	str	r3, [fp, #-56]
	mov	r3, #0
	str	r3, [fp, #-64]
	b	.L1038
.L1039:
	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]
.L1038:
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-64]
	cmp	r3, r2
	bcc	.L1039
	ldr	r3, [fp, #-56]
	cmp	r3, #0
	beq	.L1040
	ldr	r3, [fp, #-72]
	ldr	r3, [r3, #96]
	cmp	r3, #0
	beq	.L1040
	mov	r3, #0
	b	.L1018
.L1040:
	mov	r3, #0
	str	r3, [fp, #-64]
	b	.L1041
.L1042:
	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]
.L1041:
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-56]
	cmp	r2, r3
	bcc	.L1042
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	bne	.L1026
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	beq	.L1044
	ldr	r0, [fp, #-72]
	bl	stb_vorbis_get_file_offset
	mov	r2, r0
	ldr	r3, [fp, #-76]
	str	r2, [r3]
.L1044:
	ldr	r3, [fp, #-80]
	cmp	r3, #0
	beq	.L1045
	ldrb	r3, [fp, #-31]	@ zero_extendqisi2
	and	r3, r3, #4
	cmp	r3, #0
	beq	.L1046
	ldr	r3, [fp, #-80]
	mov	r2, #1
	str	r2, [r3]
	b	.L1045
.L1046:
	ldr	r3, [fp, #-80]
	mov	r2, #0
	str	r2, [r3]
.L1045:
	ldr	r3, [fp, #-48]
	sub	r3, r3, #1
	mov	r1, r3
	ldr	r0, [fp, #-72]
	bl	set_file_offset
	mov	r3, #1
	b	.L1018
.L1050:
	nop
	b	.L1026
.L1051:
	nop
.L1026:
	ldr	r1, [fp, #-48]
	ldr	r0, [fp, #-72]
	bl	set_file_offset
	b	.L1047
.L1018:
	ldr	r2, .L1052
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1048
	bl	__stack_chk_fail
.L1048:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1053:
	.align	2
.L1052:
	.word	.LC29
	.word	ogg_page_header
	.size	vorbis_find_page, .-vorbis_find_page
	.section	.rodata
	.align	2
.LC30:
	.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, .L1062
	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	.L1055
	ldrb	r3, [fp, #-291]	@ zero_extendqisi2
	cmp	r3, #103
	bne	.L1055
	ldrb	r3, [fp, #-290]	@ zero_extendqisi2
	cmp	r3, #103
	bne	.L1055
	ldrb	r3, [fp, #-289]	@ zero_extendqisi2
	cmp	r3, #83
	beq	.L1056
.L1055:
	mov	r3, #0
	b	.L1060
.L1056:
	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	.L1058
.L1059:
	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]
.L1058:
	ldrb	r3, [fp, #-266]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-300]
	cmp	r3, r2
	blt	.L1059
	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
.L1060:
	ldr	r2, .L1062
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1061
	bl	__stack_chk_fail
.L1061:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1063:
	.align	2
.L1062:
	.word	.LC30
	.size	get_seek_page_info, .-get_seek_page_info
	.section	.rodata
	.align	2
.LC31:
	.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, .L1073
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-28]
	cmp	r3, #65536
	bcc	.L1065
	ldr	r3, [fp, #-28]
	sub	r2, r3, #65536
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #52]
	cmp	r2, r3
	bcc	.L1065
	ldr	r3, [fp, #-28]
	sub	r3, r3, #65536
	str	r3, [fp, #-12]
	b	.L1066
.L1065:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #52]
	str	r3, [fp, #-12]
.L1066:
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	set_file_offset
	b	.L1067
.L1070:
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	bhi	.L1068
	ldr	r0, [fp, #-24]
	bl	stb_vorbis_get_file_offset
	mov	r2, r0
	ldr	r3, [fp, #-28]
	cmp	r3, r2
	bls	.L1068
	mov	r3, #1
	b	.L1071
.L1068:
	ldr	r3, [fp, #-16]
	mov	r1, r3
	ldr	r0, [fp, #-24]
	bl	set_file_offset
.L1067:
	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	.L1070
	mov	r3, #0
.L1071:
	ldr	r2, .L1073
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1072
	bl	__stack_chk_fail
.L1072:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1074:
	.align	2
.L1073:
	.word	.LC31
	.size	go_to_page_before, .-go_to_page_before
	.section	.rodata
	.align	2
.LC32:
	.ascii	"right.last_decoded_sample != ~0U\000"
	.align	2
.LC33:
	.ascii	"left.page_end < right.page_start\000"
	.global	__aeabi_dsub
	.global	__aeabi_dcmpge
	.global	__aeabi_dcmplt
	.global	__aeabi_d2uiz
	.align	2
.LC34:
	.ascii	"mid.page_start < right.page_start\000"
	.align	2
.LC35:
	.ascii	"end_pos >= 0\000"
	.align	2
.LC36:
	.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 = 112
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #112
	str	r0, [fp, #-120]
	str	r1, [fp, #-124]
	ldr	r3, .L1145
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-104]
	ldr	r0, [fp, #-120]
	bl	stb_vorbis_stream_length_in_samples
	str	r0, [fp, #-100]
	ldr	r3, [fp, #-100]
	cmp	r3, #0
	bne	.L1076
	mov	r1, #7
	ldr	r0, [fp, #-120]
	bl	error
	mov	r3, r0
	b	.L1128
.L1076:
	ldr	r2, [fp, #-124]
	ldr	r3, [fp, #-100]
	cmp	r2, r3
	bls	.L1078
	mov	r1, #11
	ldr	r0, [fp, #-120]
	bl	error
	mov	r3, r0
	b	.L1128
.L1078:
	ldr	r3, [fp, #-120]
	ldr	r2, [r3, #116]
	ldr	r3, [fp, #-120]
	ldr	r3, [r3, #112]
	sub	r3, r2, r3
	asr	r3, r3, #2
	str	r3, [fp, #-96]
	ldr	r2, [fp, #-124]
	ldr	r3, [fp, #-96]
	cmp	r2, r3
	bcs	.L1079
	mov	r3, #0
	str	r3, [fp, #-124]
	b	.L1080
.L1079:
	ldr	r2, [fp, #-124]
	ldr	r3, [fp, #-96]
	sub	r3, r2, r3
	str	r3, [fp, #-124]
.L1080:
	ldr	r2, [fp, #-120]
	sub	r3, fp, #52
	add	r2, r2, #56
	ldm	r2, {r0, r1, r2}
	stm	r3, {r0, r1, r2}
	b	.L1081
.L1083:
	ldr	r3, [fp, #-48]
	mov	r1, r3
	ldr	r0, [fp, #-120]
	bl	set_file_offset
	sub	r3, fp, #52
	mov	r1, r3
	ldr	r0, [fp, #-120]
	bl	get_seek_page_info
	mov	r3, r0
	cmp	r3, #0
	beq	.L1137
.L1081:
	ldr	r3, [fp, #-44]
	cmn	r3, #1
	beq	.L1083
	ldr	r2, [fp, #-120]
	sub	r3, fp, #40
	add	r2, r2, #68
	ldm	r2, {r0, r1, r2}
	stm	r3, {r0, r1, r2}
	ldr	r3, [fp, #-32]
	cmn	r3, #1
	bne	.L1084
	ldr	r3, .L1145+4
	ldr	r2, .L1145+8
	ldr	r1, .L1145+12
	ldr	r0, .L1145+16
	bl	__assert_fail
.L1084:
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #-124]
	cmp	r2, r3
	bhi	.L1087
	ldr	r0, [fp, #-120]
	bl	stb_vorbis_seek_start
	mov	r3, r0
	cmp	r3, #0
	beq	.L1086
	mov	r3, #1
	b	.L1128
.L1086:
	mov	r3, #0
	b	.L1128
.L1114:
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	bcc	.L1088
	ldr	r3, .L1145+4
	ldr	r2, .L1145+20
	ldr	r1, .L1145+12
	ldr	r0, .L1145+24
	bl	__assert_fail
.L1088:
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-48]
	sub	r3, r2, r3
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	cmp	r3, #65536
	bhi	.L1089
	ldr	r3, [fp, #-48]
	mov	r1, r3
	ldr	r0, [fp, #-120]
	bl	set_file_offset
	b	.L1109
.L1089:
	ldr	r3, [fp, #-104]
	cmp	r3, #1
	bgt	.L1091
	ldr	r3, [fp, #-104]
	cmp	r3, #0
	bne	.L1092
	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, #-124]
	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	.L1093
.L1092:
	ldr	r0, [fp, #-124]
	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	.L1094
	mov	r2, #0
	ldr	r3, .L1145+28
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1094
	mov	r2, #0
	ldr	r3, .L1145+28
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
.L1094:
	mov	r2, #0
	mov	r3, #0
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmplt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1097
	mov	r2, #0
	ldr	r3, .L1145+32
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	bl	__aeabi_dcmpgt
	mov	r3, r0
	cmp	r3, #0
	beq	.L1097
	mov	r2, #0
	ldr	r3, .L1145+32
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
.L1097:
	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]
.L1093:
	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	.L1100
	ldr	r3, [fp, #-48]
	mov	r0, r3
	bl	__aeabi_ui2d
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
.L1100:
	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	.L1102
	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]
.L1102:
	sub	r1, fp, #84
	ldmia	r1, {r0-r1}
	bl	__aeabi_d2uiz
	mov	r3, r0
	mov	r1, r3
	ldr	r0, [fp, #-120]
	bl	set_file_offset
	b	.L1104
.L1091:
	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, #-120]
	bl	set_file_offset
.L1104:
	mov	r2, #0
	mov	r1, #0
	ldr	r0, [fp, #-120]
	bl	vorbis_find_page
	mov	r3, r0
	cmp	r3, #0
	beq	.L1138
.L1109:
	sub	r3, fp, #28
	mov	r1, r3
	ldr	r0, [fp, #-120]
	bl	get_seek_page_info
	mov	r3, r0
	cmp	r3, #0
	beq	.L1139
	ldr	r3, [fp, #-20]
	cmn	r3, #1
	bne	.L1140
	ldr	r3, [fp, #-24]
	mov	r1, r3
	ldr	r0, [fp, #-120]
	bl	set_file_offset
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	bcc	.L1109
	ldr	r3, .L1145+4
	ldr	r2, .L1145+36
	ldr	r1, .L1145+12
	ldr	r0, .L1145+40
	bl	__assert_fail
.L1140:
	nop
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	beq	.L1141
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-124]
	cmp	r2, r3
	bcs	.L1112
	sub	r3, fp, #40
	sub	r2, fp, #28
	ldm	r2, {r0, r1, r2}
	stm	r3, {r0, r1, r2}
	b	.L1113
.L1112:
	sub	r3, fp, #52
	sub	r2, fp, #28
	ldm	r2, {r0, r1, r2}
	stm	r3, {r0, r1, r2}
.L1113:
	ldr	r3, [fp, #-104]
	add	r3, r3, #1
	str	r3, [fp, #-104]
.L1087:
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	bne	.L1114
	b	.L1111
.L1141:
	nop
.L1111:
	ldr	r3, [fp, #-52]
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-108]
	mov	r1, r3
	ldr	r0, [fp, #-120]
	bl	set_file_offset
	ldr	r0, [fp, #-120]
	bl	start_page
	mov	r3, r0
	cmp	r3, #0
	bne	.L1115
	mov	r1, #37
	ldr	r0, [fp, #-120]
	bl	error
	mov	r3, r0
	b	.L1128
.L1115:
	ldr	r3, [fp, #-120]
	ldr	r3, [r3, #1404]
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-112]
	cmp	r3, #0
	bge	.L1116
	ldr	r3, .L1145+4
	ldr	r2, .L1145+44
	ldr	r1, .L1145+12
	ldr	r0, .L1145+48
	bl	__assert_fail
.L1116:
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-116]
	b	.L1117
.L1120:
	ldr	r3, [fp, #-116]
	sub	r3, r3, #1
	ldr	r2, [fp, #-120]
	add	r3, r2, r3
	ldrb	r3, [r3, #1120]	@ zero_extendqisi2
	cmp	r3, #255
	bne	.L1142
	ldr	r3, [fp, #-116]
	sub	r3, r3, #1
	str	r3, [fp, #-116]
.L1117:
	ldr	r3, [fp, #-116]
	cmp	r3, #0
	bgt	.L1120
	b	.L1119
.L1142:
	nop
.L1119:
	ldr	r3, [fp, #-116]
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	cmp	r3, #0
	bgt	.L1121
	ldr	r3, [fp, #-120]
	ldrb	r3, [r3, #1375]	@ zero_extendqisi2
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L1121
	ldr	r3, [fp, #-108]
	mov	r1, r3
	ldr	r0, [fp, #-120]
	bl	go_to_page_before
	mov	r3, r0
	cmp	r3, #0
	beq	.L1143
	ldr	r0, [fp, #-120]
	bl	stb_vorbis_get_file_offset
	mov	r3, r0
	str	r3, [fp, #-108]
	ldr	r0, [fp, #-120]
	bl	start_page
	mov	r3, r0
	cmp	r3, #0
	beq	.L1144
	ldr	r3, [fp, #-120]
	ldr	r3, [r3, #1116]
	sub	r3, r3, #1
	str	r3, [fp, #-112]
	b	.L1116
.L1121:
	ldr	r3, [fp, #-120]
	mov	r2, #0
	str	r2, [r3, #1064]
	ldr	r3, [fp, #-120]
	mov	r2, #0
	str	r2, [r3, #1384]
	ldr	r3, [fp, #-120]
	mov	r2, #0
	str	r2, [r3, #1396]
	ldr	r3, [fp, #-120]
	mov	r2, #0
	str	r2, [r3, #1400]
	ldr	r3, [fp, #-120]
	mov	r2, #0
	strb	r2, [r3, #1376]
	ldr	r3, [fp, #-120]
	mov	r2, #0
	str	r2, [r3, #992]
	ldr	r3, [fp, #-120]
	ldr	r2, [fp, #-88]
	str	r2, [r3, #1380]
	mov	r3, #0
	str	r3, [fp, #-116]
	b	.L1124
.L1125:
	ldr	r2, [fp, #-120]
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	add	r3, r3, #1120
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, [fp, #-120]
	bl	skip
	ldr	r3, [fp, #-116]
	add	r3, r3, #1
	str	r3, [fp, #-116]
.L1124:
	ldr	r2, [fp, #-116]
	ldr	r3, [fp, #-88]
	cmp	r2, r3
	blt	.L1125
	ldr	r0, [fp, #-120]
	bl	vorbis_pump_first_frame
	mov	r3, r0
	cmp	r3, #0
	bne	.L1126
	mov	r3, #0
	b	.L1128
.L1126:
	ldr	r3, [fp, #-120]
	ldr	r3, [r3, #1060]
	ldr	r2, [fp, #-124]
	cmp	r2, r3
	bcs	.L1127
	mov	r1, #37
	ldr	r0, [fp, #-120]
	bl	error
	mov	r3, r0
	b	.L1128
.L1127:
	mov	r3, #1
	b	.L1128
.L1137:
	nop
	b	.L1082
.L1138:
	nop
	b	.L1082
.L1139:
	nop
	b	.L1082
.L1143:
	nop
	b	.L1082
.L1144:
	nop
.L1082:
	ldr	r0, [fp, #-120]
	bl	stb_vorbis_seek_start
	mov	r1, #37
	ldr	r0, [fp, #-120]
	bl	error
	mov	r3, r0
.L1128:
	ldr	r2, .L1145
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1129
	bl	__stack_chk_fail
.L1129:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L1146:
	.align	2
.L1145:
	.word	.LC36
	.word	__PRETTY_FUNCTION__.7956
	.word	4626
	.word	.LC0
	.word	.LC32
	.word	4636
	.word	.LC33
	.word	1086275584
	.word	-1061208064
	.word	4678
	.word	.LC34
	.word	4699
	.word	.LC35
	.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	.L1148
	mov	r3, #0
	b	.L1149
.L1148:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #408]
	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, #412
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L1150
	ldr	r3, [fp, #-12]
	add	r3, r3, #2
	str	r3, [fp, #-12]
.L1150:
	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, #1376]	@ 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, #1376]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #1400]
	ldr	r3, [fp, #-8]
	sub	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3, #1400]
	ldr	r3, [fp, #-8]
	rsb	r3, r3, #0
	mov	r1, r3
	ldr	r0, [fp, #-16]
	bl	skip
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1380]
	cmn	r3, #1
	bne	.L1151
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1116]
	sub	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3, #1380]
	b	.L1152
.L1151:
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #1380]
	sub	r2, r3, #1
	ldr	r3, [fp, #-16]
	str	r2, [r3, #1380]
.L1152:
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3, #1396]
	mov	r3, #1
.L1149:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	peek_decode_initial, .-peek_decode_initial
	.section	.rodata
	.align	2
.LC37:
	.ascii	"f->current_loc_valid\000"
	.align	2
.LC38:
	.ascii	"f->current_loc <= sample_number\000"
	.align	2
.LC39:
	.ascii	"f->current_loc == sample_number\000"
	.align	2
.LC40:
	.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, .L1168
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-40]
	ldrb	r3, [r3, #48]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L1154
	mov	r1, #2
	ldr	r0, [fp, #-40]
	bl	error
	mov	r3, r0
	b	.L1155
.L1154:
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-40]
	bl	seek_to_sample_coarse
	mov	r3, r0
	cmp	r3, #0
	bne	.L1156
	mov	r3, #0
	b	.L1155
.L1156:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #1064]
	cmp	r3, #0
	bne	.L1157
	ldr	r3, .L1168+4
	ldr	r2, .L1168+8
	ldr	r1, .L1168+12
	ldr	r0, .L1168+16
	bl	__assert_fail
.L1157:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #1060]
	ldr	r2, [fp, #-44]
	cmp	r2, r3
	bcs	.L1158
	ldr	r3, .L1168+4
	ldr	r2, .L1168+20
	ldr	r1, .L1168+12
	ldr	r0, .L1168+24
	bl	__assert_fail
.L1158:
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #116]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r2, r3, r2
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #112]
	sub	r3, r2, r3
	asr	r3, r3, #2
	str	r3, [fp, #-16]
	b	.L1159
.L1165:
	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	.L1160
	mov	r1, #37
	ldr	r0, [fp, #-40]
	bl	error
	mov	r3, r0
	b	.L1155
.L1160:
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-36]
	sub	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #1060]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	ldr	r2, [fp, #-44]
	cmp	r2, r3
	bcs	.L1162
	mov	r3, #1
	b	.L1155
.L1162:
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #1060]
	ldr	r3, [fp, #-12]
	add	r2, r2, r3
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	ldr	r2, [fp, #-44]
	cmp	r2, r3
	bcs	.L1163
	ldr	r0, [fp, #-40]
	bl	vorbis_pump_first_frame
	b	.L1159
.L1163:
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #1060]
	ldr	r3, [fp, #-12]
	add	r2, r2, r3
	ldr	r3, [fp, #-40]
	str	r2, [r3, #1060]
	ldr	r3, [fp, #-40]
	mov	r2, #0
	str	r2, [r3, #992]
	ldr	r0, [fp, #-40]
	bl	maybe_start_packet
	ldr	r0, [fp, #-40]
	bl	flush_packet
.L1159:
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #1060]
	ldr	r2, [fp, #-44]
	cmp	r2, r3
	bhi	.L1165
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #1060]
	ldr	r2, [fp, #-44]
	cmp	r2, r3
	beq	.L1166
	ldr	r3, .L1168+4
	ldr	r2, .L1168+28
	ldr	r1, .L1168+12
	ldr	r0, .L1168+32
	bl	__assert_fail
.L1166:
	mov	r3, #1
.L1155:
	ldr	r2, .L1168
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1167
	bl	__stack_chk_fail
.L1167:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1169:
	.align	2
.L1168:
	.word	.LC40
	.word	__PRETTY_FUNCTION__.7987
	.word	4781
	.word	.LC0
	.word	.LC37
	.word	4782
	.word	.LC38
	.word	4806
	.word	.LC39
	.size	stb_vorbis_seek_frame, .-stb_vorbis_seek_frame
	.section	.rodata
	.align	2
.LC41:
	.ascii	"sample_number > frame_start\000"
	.align	2
.LC42:
	.ascii	"f->channel_buffer_start + (int) (sample_number-fram"
	.ascii	"e_start) <= f->channel_buffer_end\000"
	.align	2
.LC43:
	.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, .L1177
	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	.L1171
	mov	r3, #0
	b	.L1172
.L1171:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #1060]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	beq	.L1173
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #1060]
	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	.L1174
	ldr	r3, .L1177+4
	ldr	r2, .L1177+8
	ldr	r1, .L1177+12
	ldr	r0, .L1177+16
	bl	__assert_fail
.L1174:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #1504]
	ldr	r1, [fp, #-28]
	ldr	r2, [fp, #-12]
	sub	r2, r1, r2
	add	r2, r3, r2
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #1508]
	cmp	r2, r3
	ble	.L1175
	ldr	r3, .L1177+4
	ldr	r2, .L1177+20
	ldr	r1, .L1177+12
	ldr	r0, .L1177+24
	bl	__assert_fail
.L1175:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #1504]
	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, #1504]
.L1173:
	mov	r3, #1
.L1172:
	ldr	r2, .L1177
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1176
	bl	__stack_chk_fail
.L1176:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1178:
	.align	2
.L1177:
	.word	.LC43
	.word	__PRETTY_FUNCTION__.8003
	.word	4819
	.word	.LC0
	.word	.LC41
	.word	4820
	.word	.LC42
	.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, #48]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L1180
	mov	r1, #2
	ldr	r0, [fp, #-8]
	bl	error
	mov	r3, r0
	b	.L1181
.L1180:
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #52]
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	set_file_offset
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #992]
	ldr	r3, [fp, #-8]
	mov	r2, #1
	strb	r2, [r3, #1377]
	ldr	r3, [fp, #-8]
	mvn	r2, #0
	str	r2, [r3, #1380]
	ldr	r0, [fp, #-8]
	bl	vorbis_pump_first_frame
	mov	r3, r0
.L1181:
	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
.LC44:
	.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, .L1201
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-48]
	ldrb	r3, [r3, #48]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L1183
	mov	r1, #2
	ldr	r0, [fp, #-48]
	bl	error
	mov	r3, r0
	b	.L1198
.L1183:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #796]
	cmp	r3, #0
	bne	.L1185
	ldr	r0, [fp, #-48]
	bl	stb_vorbis_get_file_offset
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #44]
	cmp	r3, #65536
	bcc	.L1186
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #44]
	sub	r2, r3, #65536
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #52]
	cmp	r2, r3
	bcc	.L1186
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #44]
	sub	r3, r3, #65536
	str	r3, [fp, #-36]
	b	.L1187
.L1186:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #52]
	str	r3, [fp, #-36]
.L1187:
	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	.L1188
	ldr	r3, [fp, #-48]
	mov	r2, #36
	str	r2, [r3, #100]
	ldr	r3, [fp, #-48]
	mvn	r2, #0
	str	r2, [r3, #796]
	b	.L1189
.L1188:
	ldr	r0, [fp, #-48]
	bl	stb_vorbis_get_file_offset
	str	r0, [fp, #-32]
	b	.L1190
.L1193:
	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	.L1200
	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]
.L1190:
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	beq	.L1193
	b	.L1192
.L1200:
	nop
.L1192:
	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	.L1194
	ldr	r3, [fp, #-20]
	cmn	r3, #1
	bne	.L1194
	ldr	r3, [fp, #-48]
	mov	r2, #36
	str	r2, [r3, #100]
	ldr	r3, [fp, #-48]
	mvn	r2, #0
	str	r2, [r3, #796]
	b	.L1189
.L1194:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L1195
	mvn	r3, #1
	str	r3, [fp, #-28]
.L1195:
	ldr	r3, [fp, #-48]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #796]
	ldr	r3, [fp, #-48]
	ldr	r2, [fp, #-32]
	str	r2, [r3, #68]
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-48]
	str	r2, [r3, #72]
	ldr	r3, [fp, #-48]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #76]
.L1189:
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-48]
	bl	set_file_offset
.L1185:
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #796]
	cmn	r3, #1
	beq	.L1196
	ldr	r3, [fp, #-48]
	ldr	r3, [r3, #796]
	b	.L1198
.L1196:
	mov	r3, #0
.L1198:
	ldr	r2, .L1201
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1199
	bl	__stack_chk_fail
.L1199:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1202:
	.align	2
.L1201:
	.word	.LC44
	.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
.LC45:
	.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, .L1215
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-32]
	ldrb	r3, [r3, #48]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L1206
	mov	r1, #2
	ldr	r0, [fp, #-32]
	bl	error
	mov	r3, r0
	b	.L1213
.L1206:
	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	.L1208
	ldr	r3, [fp, #-32]
	mov	r2, #0
	str	r2, [r3, #1508]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #1508]
	ldr	r3, [fp, #-32]
	str	r2, [r3, #1504]
	mov	r3, #0
	b	.L1213
.L1208:
	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	.L1209
.L1210:
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-12]
	add	r2, r2, #200
	ldr	r2, [r3, r2, lsl #2]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #2
	add	r1, r2, r3
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-12]
	add	r2, r2, #216
	str	r1, [r3, r2, lsl #2]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L1209:
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #4]
	ldr	r2, [fp, #-12]
	cmp	r2, r3
	blt	.L1210
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-32]
	str	r2, [r3, #1504]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r2, r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3, #1508]
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L1211
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-36]
	str	r2, [r3]
.L1211:
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	beq	.L1212
	ldr	r3, [fp, #-32]
	add	r2, r3, #864
	ldr	r3, [fp, #-40]
	str	r2, [r3]
.L1212:
	ldr	r3, [fp, #-24]
.L1213:
	ldr	r2, .L1215
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1214
	bl	__stack_chk_fail
.L1214:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1216:
	.align	2
.L1215:
	.word	.LC45
	.size	stb_vorbis_get_frame_float, .-stb_vorbis_get_frame_float
	.section	.rodata
	.align	2
.LC46:
	.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 = 1536
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #1536
	str	r0, [fp, #-1528]
	str	r1, [fp, #-1532]
	str	r2, [fp, #-1536]
	str	r3, [fp, #-1540]
	ldr	r3, .L1223
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #1504
	sub	r3, r3, #4
	sub	r3, r3, #12
	ldr	r1, [fp, #-1540]
	mov	r0, r3
	bl	vorbis_init
	ldr	r3, [fp, #-1528]
	str	r3, [fp, #-1500]
	ldr	r0, [fp, #-1528]
	bl	ftell
	mov	r3, r0
	str	r3, [fp, #-1496]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-1476]
	ldr	r3, [fp, #-1532]
	str	r3, [fp, #-1492]
	sub	r3, fp, #1504
	sub	r3, r3, #4
	sub	r3, r3, #12
	mov	r0, r3
	bl	start_decoder
	mov	r3, r0
	cmp	r3, #0
	beq	.L1218
	sub	r3, fp, #1504
	sub	r3, r3, #4
	sub	r3, r3, #12
	mov	r0, r3
	bl	vorbis_alloc
	str	r0, [fp, #-1524]
	ldr	r3, [fp, #-1524]
	cmp	r3, #0
	beq	.L1218
	ldr	r3, [fp, #-1524]
	mov	r0, r3
	sub	r3, fp, #1504
	sub	r3, r3, #4
	sub	r3, r3, #12
	ldr	r2, .L1223+4
	mov	r1, r3
	bl	memcpy
	ldr	r0, [fp, #-1524]
	bl	vorbis_pump_first_frame
	ldr	r3, [fp, #-1524]
	b	.L1221
.L1218:
	ldr	r3, [fp, #-1536]
	cmp	r3, #0
	beq	.L1220
	ldr	r3, [fp, #-1420]
	mov	r2, r3
	ldr	r3, [fp, #-1536]
	str	r2, [r3]
.L1220:
	sub	r3, fp, #1504
	sub	r3, r3, #4
	sub	r3, r3, #12
	mov	r0, r3
	bl	vorbis_deinit
	mov	r3, #0
.L1221:
	ldr	r2, .L1223
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1222
	bl	__stack_chk_fail
.L1222:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1224:
	.align	2
.L1223:
	.word	.LC46
	.word	1512
	.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
.LC47:
	.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, .L1231
	ldr	r0, [fp, #-16]
	bl	fopen
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L1228
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-20]
	mov	r1, #1
	ldr	r0, [fp, #-8]
	bl	stb_vorbis_open_file
	mov	r3, r0
	b	.L1229
.L1228:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L1230
	ldr	r3, [fp, #-20]
	mov	r2, #6
	str	r2, [r3]
.L1230:
	mov	r3, #0
.L1229:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1232:
	.align	2
.L1231:
	.word	.LC47
	.size	stb_vorbis_open_filename, .-stb_vorbis_open_filename
	.section	.rodata
	.align	2
.LC48:
	.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 = 1536
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #1536
	str	r0, [fp, #-1528]
	str	r1, [fp, #-1532]
	str	r2, [fp, #-1536]
	str	r3, [fp, #-1540]
	ldr	r3, .L1241
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-1528]
	cmp	r3, #0
	bne	.L1234
	mov	r3, #0
	b	.L1239
.L1234:
	sub	r3, fp, #1504
	sub	r3, r3, #4
	sub	r3, r3, #12
	ldr	r1, [fp, #-1540]
	mov	r0, r3
	bl	vorbis_init
	ldr	r3, [fp, #-1528]
	str	r3, [fp, #-1488]
	ldr	r3, [fp, #-1532]
	ldr	r2, [fp, #-1528]
	add	r3, r2, r3
	str	r3, [fp, #-1480]
	ldr	r3, [fp, #-1488]
	str	r3, [fp, #-1484]
	ldr	r3, [fp, #-1532]
	str	r3, [fp, #-1476]
	mov	r3, #0
	strb	r3, [fp, #-1472]
	sub	r3, fp, #1504
	sub	r3, r3, #4
	sub	r3, r3, #12
	mov	r0, r3
	bl	start_decoder
	mov	r3, r0
	cmp	r3, #0
	beq	.L1236
	sub	r3, fp, #1504
	sub	r3, r3, #4
	sub	r3, r3, #12
	mov	r0, r3
	bl	vorbis_alloc
	str	r0, [fp, #-1524]
	ldr	r3, [fp, #-1524]
	cmp	r3, #0
	beq	.L1236
	ldr	r3, [fp, #-1524]
	mov	r0, r3
	sub	r3, fp, #1504
	sub	r3, r3, #4
	sub	r3, r3, #12
	ldr	r2, .L1241+4
	mov	r1, r3
	bl	memcpy
	ldr	r0, [fp, #-1524]
	bl	vorbis_pump_first_frame
	ldr	r3, [fp, #-1536]
	cmp	r3, #0
	beq	.L1237
	ldr	r3, [fp, #-1536]
	mov	r2, #0
	str	r2, [r3]
.L1237:
	ldr	r3, [fp, #-1524]
	b	.L1239
.L1236:
	ldr	r3, [fp, #-1536]
	cmp	r3, #0
	beq	.L1238
	ldr	r3, [fp, #-1420]
	mov	r2, r3
	ldr	r3, [fp, #-1536]
	str	r2, [r3]
.L1238:
	sub	r3, fp, #1504
	sub	r3, r3, #4
	sub	r3, r3, #12
	mov	r0, r3
	bl	vorbis_deinit
	mov	r3, #0
.L1239:
	ldr	r2, .L1241
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1240
	bl	__stack_chk_fail
.L1240:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1242:
	.align	2
.L1241:
	.word	.LC48
	.word	1512
	.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	.L1244
.L1248:
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-28]
	add	r3, r2, r3
	ldr	r3, [r3]	@ float
	ldr	r1, .L1249
	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	.L1245
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bge	.L1246
	ldr	r3, .L1249+4
	b	.L1247
.L1246:
	ldr	r3, .L1249+8
.L1247:
	str	r3, [fp, #-8]
.L1245:
	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]
.L1244:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	blt	.L1248
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1250:
	.align	2
.L1249:
	.word	1136656384
	.word	-32768
	.word	32767
	.size	copy_samples, .-copy_samples
	.section	.rodata
	.align	2
.LC49:
	.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, .L1266
	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	.L1252
.L1264:
	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	.L1253
	ldr	r2, [fp, #8]
	ldr	r3, [fp, #-148]
	sub	r3, r2, r3
	str	r3, [fp, #-144]
.L1253:
	mov	r3, #0
	str	r3, [fp, #-152]
	b	.L1254
.L1258:
	ldr	r1, .L1266+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	.L1255
	mov	r3, #0
	str	r3, [fp, #-156]
	b	.L1256
.L1257:
	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]
.L1256:
	ldr	r2, [fp, #-156]
	ldr	r3, [fp, #-144]
	cmp	r2, r3
	blt	.L1257
.L1255:
	ldr	r3, [fp, #-152]
	add	r3, r3, #1
	str	r3, [fp, #-152]
.L1254:
	ldr	r2, [fp, #-152]
	ldr	r3, [fp, #-176]
	cmp	r2, r3
	blt	.L1258
	mov	r3, #0
	str	r3, [fp, #-156]
	b	.L1259
.L1263:
	ldr	r3, [fp, #-156]
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	ldr	r3, [r3, #-132]	@ float
	ldr	r1, .L1266+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	.L1260
	ldr	r3, [fp, #-140]
	cmp	r3, #0
	bge	.L1261
	ldr	r3, .L1266+12
	b	.L1262
.L1261:
	ldr	r3, .L1266+16
.L1262:
	str	r3, [fp, #-140]
.L1260:
	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]
.L1259:
	ldr	r2, [fp, #-156]
	ldr	r3, [fp, #-144]
	cmp	r2, r3
	blt	.L1263
	ldr	r3, [fp, #-148]
	add	r3, r3, #32
	str	r3, [fp, #-148]
.L1252:
	ldr	r2, [fp, #-148]
	ldr	r3, [fp, #8]
	cmp	r2, r3
	blt	.L1264
	nop
	ldr	r3, .L1266
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L1265
	bl	__stack_chk_fail
.L1265:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1267:
	.align	2
.L1266:
	.word	.LC49
	.word	channel_position
	.word	1136656384
	.word	-32768
	.word	32767
	.size	compute_samples, .-compute_samples
	.section	.rodata
	.align	2
.LC50:
	.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, .L1289
	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	.L1269
.L1287:
	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	.L1270
	ldr	r2, [fp, #4]
	ldr	r3, [fp, #-164]
	sub	r3, r2, r3
	str	r3, [fp, #-160]
.L1270:
	mov	r3, #0
	str	r3, [fp, #-168]
	b	.L1271
.L1281:
	ldr	r1, .L1289+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	.L1272
	mov	r3, #0
	str	r3, [fp, #-172]
	b	.L1273
.L1274:
	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]
.L1273:
	ldr	r2, [fp, #-172]
	ldr	r3, [fp, #-160]
	cmp	r2, r3
	blt	.L1274
	b	.L1275
.L1272:
	ldr	r3, [fp, #-148]
	cmp	r3, #2
	bne	.L1276
	mov	r3, #0
	str	r3, [fp, #-172]
	b	.L1277
.L1278:
	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]
.L1277:
	ldr	r2, [fp, #-172]
	ldr	r3, [fp, #-160]
	cmp	r2, r3
	blt	.L1278
	b	.L1275
.L1276:
	ldr	r3, [fp, #-148]
	cmp	r3, #4
	bne	.L1275
	mov	r3, #0
	str	r3, [fp, #-172]
	b	.L1279
.L1280:
	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]
.L1279:
	ldr	r2, [fp, #-172]
	ldr	r3, [fp, #-160]
	cmp	r2, r3
	blt	.L1280
.L1275:
	ldr	r3, [fp, #-168]
	add	r3, r3, #1
	str	r3, [fp, #-168]
.L1271:
	ldr	r2, [fp, #-168]
	ldr	r3, [fp, #-188]
	cmp	r2, r3
	blt	.L1281
	mov	r3, #0
	str	r3, [fp, #-172]
	b	.L1282
.L1286:
	ldr	r3, [fp, #-172]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r3, [r3, #-132]	@ float
	ldr	r1, .L1289+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	.L1283
	ldr	r3, [fp, #-156]
	cmp	r3, #0
	bge	.L1284
	ldr	r3, .L1289+12
	b	.L1285
.L1284:
	ldr	r3, .L1289+16
.L1285:
	str	r3, [fp, #-156]
.L1283:
	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]
.L1282:
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #1
	ldr	r2, [fp, #-172]
	cmp	r2, r3
	blt	.L1286
	ldr	r3, [fp, #-164]
	add	r3, r3, #16
	str	r3, [fp, #-164]
.L1269:
	ldr	r2, [fp, #-164]
	ldr	r3, [fp, #4]
	cmp	r2, r3
	blt	.L1287
	nop
	ldr	r3, .L1289
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L1288
	bl	__stack_chk_fail
.L1288:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1290:
	.align	2
.L1289:
	.word	.LC50
	.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	.L1292
	ldr	r3, [fp, #-16]
	cmp	r3, #2
	bgt	.L1292
	ldr	r3, [fp, #-28]
	cmp	r3, #6
	bgt	.L1292
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L1293
.L1294:
	ldr	r1, .L1300
	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]
.L1293:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L1294
	b	.L1295
.L1292:
	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	.L1296
.L1297:
	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]
.L1296:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	blt	.L1297
	b	.L1298
.L1299:
	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]
.L1298:
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L1299
	nop
.L1295:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1301:
	.align	2
.L1300:
	.word	channel_selector.8156
	.size	convert_samples_short, .-convert_samples_short
	.section	.rodata
	.align	2
.LC51:
	.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, .L1307
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	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	.L1303
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-12]
.L1303:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L1304
	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
.L1304:
	ldr	r3, [fp, #-12]
	ldr	r2, .L1307
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1306
	bl	__stack_chk_fail
.L1306:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1308:
	.align	2
.L1307:
	.word	.LC51
	.size	stb_vorbis_get_frame_short, .-stb_vorbis_get_frame_short
	.section	.rodata
	.align	2
.LC52:
	.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	.L1310
	ldr	r3, [fp, #-32]
	cmp	r3, #2
	bgt	.L1310
	ldr	r3, [fp, #-40]
	cmp	r3, #6
	bgt	.L1310
	ldr	r3, [fp, #-32]
	cmp	r3, #2
	beq	.L1311
	ldr	r3, .L1324
	ldr	r2, .L1324+4
	ldr	r1, .L1324+8
	ldr	r0, .L1324+12
	bl	__assert_fail
.L1311:
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L1312
.L1313:
	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]
.L1312:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	blt	.L1313
	b	.L1314
.L1310:
	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	.L1315
.L1323:
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L1316
.L1320:
	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, .L1324+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	.L1317
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bge	.L1318
	ldr	r3, .L1324+20
	b	.L1319
.L1318:
	ldr	r3, .L1324+24
.L1319:
	str	r3, [fp, #-16]
.L1317:
	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]
.L1316:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	blt	.L1320
	b	.L1321
.L1322:
	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]
.L1321:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	blt	.L1322
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L1315:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #8]
	cmp	r2, r3
	blt	.L1323
	nop
.L1314:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1325:
	.align	2
.L1324:
	.word	__PRETTY_FUNCTION__.8184
	.word	5155
	.word	.LC0
	.word	.LC52
	.word	1136656384
	.word	-32768
	.word	32767
	.size	convert_channels_short_interleaved, .-convert_channels_short_interleaved
	.section	.rodata
	.align	2
.LC53:
	.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, .L1333
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-28]
	cmp	r3, #1
	bne	.L1327
	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	.L1331
.L1327:
	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	.L1329
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-28]
	mul	r3, r2, r3
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	bge	.L1330
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-36]
	bl	__aeabi_idiv
	mov	r3, r0
	str	r3, [fp, #-12]
.L1330:
	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
.L1329:
	ldr	r3, [fp, #-12]
.L1331:
	ldr	r2, .L1333
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1332
	bl	__stack_chk_fail
.L1332:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1334:
	.align	2
.L1333:
	.word	.LC53
	.size	stb_vorbis_get_frame_short_interleaved, .-stb_vorbis_get_frame_short_interleaved
	.section	.rodata
	.align	2
.LC54:
	.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, .L1347
	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	.L1337
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-12]
	b	.L1337
.L1342:
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #1508]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1504]
	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	.L1338
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-24]
	sub	r3, r2, r3
	str	r3, [fp, #-20]
.L1338:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L1339
	ldr	r3, [fp, #-32]
	ldr	r1, [r3, #4]
	ldr	r3, [fp, #-32]
	add	r0, r3, #800
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1504]
	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
.L1339:
	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, #1504]
	ldr	r3, [fp, #-20]
	add	r2, r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3, #1504]
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	beq	.L1345
	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	.L1346
.L1337:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L1342
	b	.L1341
.L1345:
	nop
	b	.L1341
.L1346:
	nop
.L1341:
	ldr	r3, [fp, #-24]
	ldr	r2, .L1347
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1344
	bl	__stack_chk_fail
.L1344:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1348:
	.align	2
.L1347:
	.word	.LC54
	.size	stb_vorbis_get_samples_short_interleaved, .-stb_vorbis_get_samples_short_interleaved
	.section	.rodata
	.align	2
.LC55:
	.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, .L1361
	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	.L1351
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-12]
	b	.L1351
.L1356:
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #1508]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1504]
	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	.L1352
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-20]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
.L1352:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L1353
	ldr	r3, [fp, #-32]
	ldr	r0, [r3, #4]
	ldr	r3, [fp, #-32]
	add	r3, r3, #800
	ldr	r2, [fp, #-32]
	ldr	r2, [r2, #1504]
	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
.L1353:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #1504]
	ldr	r3, [fp, #-16]
	add	r2, r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3, #1504]
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	beq	.L1359
	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	.L1360
.L1351:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	blt	.L1356
	b	.L1355
.L1359:
	nop
	b	.L1355
.L1360:
	nop
.L1355:
	ldr	r3, [fp, #-20]
	ldr	r2, .L1361
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1358
	bl	__stack_chk_fail
.L1358:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1362:
	.align	2
.L1361:
	.word	.LC55
	.size	stb_vorbis_get_samples_short, .-stb_vorbis_get_samples_short
	.section	.rodata
	.align	2
.LC56:
	.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, .L1376
	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	.L1364
	mvn	r3, #0
	b	.L1372
.L1364:
	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	.L1366
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-56]
	str	r2, [r3]
.L1366:
	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	.L1367
	ldr	r0, [fp, #-24]
	bl	stb_vorbis_close
	mvn	r3, #1
	b	.L1372
.L1367:
	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	.L1375
	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	.L1367
	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	.L1371
	ldr	r0, [fp, #-28]
	bl	free
	ldr	r0, [fp, #-24]
	bl	stb_vorbis_close
	mvn	r3, #1
	b	.L1372
.L1371:
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-28]
	b	.L1367
.L1375:
	nop
	ldr	r3, [fp, #-60]
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r0, [fp, #-24]
	bl	stb_vorbis_close
	ldr	r3, [fp, #-40]
.L1372:
	ldr	r2, .L1376
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1373
	bl	__stack_chk_fail
.L1373:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1377:
	.align	2
.L1376:
	.word	.LC56
	.size	stb_vorbis_decode_filename, .-stb_vorbis_decode_filename
	.section	.rodata
	.align	2
.LC57:
	.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, .L1391
	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	.L1379
	mvn	r3, #0
	b	.L1387
.L1379:
	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	.L1381
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-60]
	str	r2, [r3]
.L1381:
	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	.L1382
	ldr	r0, [fp, #-24]
	bl	stb_vorbis_close
	mvn	r3, #1
	b	.L1387
.L1382:
	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	.L1390
	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	.L1382
	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	.L1386
	ldr	r0, [fp, #-28]
	bl	free
	ldr	r0, [fp, #-24]
	bl	stb_vorbis_close
	mvn	r3, #1
	b	.L1387
.L1386:
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-28]
	b	.L1382
.L1390:
	nop
	ldr	r3, [fp, #-64]
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r0, [fp, #-24]
	bl	stb_vorbis_close
	ldr	r3, [fp, #-40]
.L1387:
	ldr	r2, .L1391
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1388
	bl	__stack_chk_fail
.L1388:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1392:
	.align	2
.L1391:
	.word	.LC57
	.size	stb_vorbis_decode_memory, .-stb_vorbis_decode_memory
	.section	.rodata
	.align	2
.LC58:
	.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, .L1410
	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	.L1395
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-28]
	b	.L1395
.L1405:
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #1508]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3, #1504]
	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	.L1396
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-32]
	sub	r3, r2, r3
	str	r3, [fp, #-16]
.L1396:
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L1397
.L1402:
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L1398
.L1399:
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-24]
	add	r2, r2, #200
	ldr	r2, [r3, r2, lsl #2]
	ldr	r3, [fp, #-40]
	ldr	r1, [r3, #1504]
	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]
.L1398:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	blt	.L1399
	b	.L1400
.L1401:
	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]
.L1400:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	blt	.L1401
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L1397:
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	blt	.L1402
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-40]
	ldr	r2, [r3, #1504]
	ldr	r3, [fp, #-16]
	add	r2, r2, r3
	ldr	r3, [fp, #-40]
	str	r2, [r3, #1504]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	beq	.L1408
	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	.L1409
.L1395:
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	blt	.L1405
	b	.L1404
.L1408:
	nop
	b	.L1404
.L1409:
	nop
.L1404:
	ldr	r3, [fp, #-32]
	ldr	r2, .L1410
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1407
	bl	__stack_chk_fail
.L1407:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1411:
	.align	2
.L1410:
	.word	.LC58
	.size	stb_vorbis_get_samples_float_interleaved, .-stb_vorbis_get_samples_float_interleaved
	.section	.rodata
	.align	2
.LC59:
	.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, .L1428
	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	.L1414
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-20]
	b	.L1414
.L1423:
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #1508]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1504]
	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	.L1415
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-24]
	sub	r3, r2, r3
	str	r3, [fp, #-12]
.L1415:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L1416
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L1417
.L1418:
	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, #-32]
	ldr	r2, [fp, #-16]
	add	r2, r2, #200
	ldr	r2, [r3, r2, lsl #2]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #1504]
	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]
.L1417:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	blt	.L1418
	b	.L1419
.L1420:
	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]
.L1419:
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-36]
	cmp	r2, r3
	blt	.L1420
.L1416:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3, #1504]
	ldr	r3, [fp, #-12]
	add	r2, r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3, #1504]
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	beq	.L1426
	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	.L1427
.L1414:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	blt	.L1423
	b	.L1422
.L1426:
	nop
	b	.L1422
.L1427:
	nop
.L1422:
	ldr	r3, [fp, #-24]
	ldr	r2, .L1428
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1425
	bl	__stack_chk_fail
.L1425:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1429:
	.align	2
.L1428:
	.word	.LC59
	.size	stb_vorbis_get_samples_float, .-stb_vorbis_get_samples_float
	.data
	.align	2
	.type	log2_4.6705, %object
	.size	log2_4.6705, 16
log2_4.6705:
	.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__.6734, %object
	.size	__PRETTY_FUNCTION__.6734, 18
__PRETTY_FUNCTION__.6734:
	.ascii	"compute_codewords\000"
	.align	2
	.type	__PRETTY_FUNCTION__.6776, %object
	.size	__PRETTY_FUNCTION__.6776, 16
__PRETTY_FUNCTION__.6776:
	.ascii	"include_in_sort\000"
	.align	2
	.type	__PRETTY_FUNCTION__.6788, %object
	.size	__PRETTY_FUNCTION__.6788, 23
__PRETTY_FUNCTION__.6788:
	.ascii	"compute_sorted_huffman\000"
	.data
	.align	2
	.type	vorbis.6806, %object
	.size	vorbis.6806, 6
vorbis.6806:
	.ascii	"vorbis"
	.section	.rodata
	.align	2
	.type	__PRETTY_FUNCTION__.6812, %object
	.size	__PRETTY_FUNCTION__.6812, 15
__PRETTY_FUNCTION__.6812:
	.ascii	"lookup1_values\000"
	.align	2
	.type	__PRETTY_FUNCTION__.6937, %object
	.size	__PRETTY_FUNCTION__.6937, 13
__PRETTY_FUNCTION__.6937:
	.ascii	"next_segment\000"
	.align	2
	.type	__PRETTY_FUNCTION__.6941, %object
	.size	__PRETTY_FUNCTION__.6941, 16
__PRETTY_FUNCTION__.6941:
	.ascii	"get8_packet_raw\000"
	.align	2
	.type	__PRETTY_FUNCTION__.6984, %object
	.size	__PRETTY_FUNCTION__.6984, 27
__PRETTY_FUNCTION__.6984:
	.ascii	"codebook_decode_scalar_raw\000"
	.align	2
	.type	__PRETTY_FUNCTION__.6995, %object
	.size	__PRETTY_FUNCTION__.6995, 22
__PRETTY_FUNCTION__.6995:
	.ascii	"codebook_decode_start\000"
	.align	2
	.type	__PRETTY_FUNCTION__.7044, %object
	.size	__PRETTY_FUNCTION__.7044, 36
__PRETTY_FUNCTION__.7044:
	.ascii	"codebook_decode_deinterleave_repeat\000"
	.align	2
	.type	__PRETTY_FUNCTION__.7221, %object
	.size	__PRETTY_FUNCTION__.7221, 23
__PRETTY_FUNCTION__.7221:
	.ascii	"imdct_step3_iter0_loop\000"
	.align	2
	.type	__PRETTY_FUNCTION__.7362, %object
	.size	__PRETTY_FUNCTION__.7362, 13
__PRETTY_FUNCTION__.7362:
	.ascii	"inverse_mdct\000"
	.align	2
	.type	__PRETTY_FUNCTION__.7392, %object
	.size	__PRETTY_FUNCTION__.7392, 11
__PRETTY_FUNCTION__.7392:
	.ascii	"get_window\000"
	.align	2
	.type	__PRETTY_FUNCTION__.7437, %object
	.size	__PRETTY_FUNCTION__.7437, 22
__PRETTY_FUNCTION__.7437:
	.ascii	"vorbis_decode_initial\000"
	.data
	.align	2
	.type	range_list.7461, %object
	.size	range_list.7461, 16
range_list.7461:
	.word	256
	.word	128
	.word	86
	.word	64
	.section	.rodata
	.align	2
	.type	__PRETTY_FUNCTION__.7498, %object
	.size	__PRETTY_FUNCTION__.7498, 26
__PRETTY_FUNCTION__.7498:
	.ascii	"vorbis_decode_packet_rest\000"
	.align	2
	.type	__PRETTY_FUNCTION__.7758, %object
	.size	__PRETTY_FUNCTION__.7758, 14
__PRETTY_FUNCTION__.7758:
	.ascii	"start_decoder\000"
	.align	2
	.type	__PRETTY_FUNCTION__.7956, %object
	.size	__PRETTY_FUNCTION__.7956, 22
__PRETTY_FUNCTION__.7956:
	.ascii	"seek_to_sample_coarse\000"
	.align	2
	.type	__PRETTY_FUNCTION__.7987, %object
	.size	__PRETTY_FUNCTION__.7987, 22
__PRETTY_FUNCTION__.7987:
	.ascii	"stb_vorbis_seek_frame\000"
	.align	2
	.type	__PRETTY_FUNCTION__.8003, %object
	.size	__PRETTY_FUNCTION__.8003, 16
__PRETTY_FUNCTION__.8003:
	.ascii	"stb_vorbis_seek\000"
	.data
	.align	2
	.type	channel_selector.8156, %object
	.size	channel_selector.8156, 24
channel_selector.8156:
	.word	0
	.space	4
	.word	1
	.space	4
	.word	2
	.word	4
	.section	.rodata
	.align	2
	.type	__PRETTY_FUNCTION__.8184, %object
	.size	__PRETTY_FUNCTION__.8184, 35
__PRETTY_FUNCTION__.8184:
	.ascii	"convert_channels_short_interleaved\000"
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
