	.file	"decfr.c"
	.version	"01.01"
gcc2_compiled.:
.data
	.align 2
	.type	 dtmf_coeff,@object
dtmf_coeff:
	.value 27979
	.value 26956
	.value 25701
	.value 24218
	.value 19072
	.value 16324
	.value 13084
	.value 9314
	.size	 dtmf_coeff,16
	.align 8
	.type	 dtmf_coefff,@object
dtmf_coefff:
	.long 0x0,0x3ffb52c0
	.long 0x0,0x3ffa5300
	.long 0x0,0x3ff91940
	.long 0x0,0x3ff7a680
	.long 0x0,0x3ff2a000
	.long 0x0,0x3fefe200
	.long 0x0,0x3fe98e00
	.long 0x0,0x3fe23100
	.size	 dtmf_coefff,64
.section	.rodata
	.align 8
.LC3:
	.long 0x0,0x3e500000
	.align 8
.LC4:
	.long 0x0,0x40dfffc0
.text
	.align 4
.globl decode_frame
	.type	 decode_frame,@function
decode_frame:
	pushl %ebp
	movl %esp,%ebp
	subl $132,%esp
	pushl %edi
	pushl %esi
	pushl %ebx
	xorl %esi,%esi
	leal -84(%ebp),%eax
	movl %eax,-108(%ebp)
	leal -92(%ebp),%ecx
	movl %ecx,-112(%ebp)
	leal -64(%ebp),%eax
	movl %eax,-116(%ebp)
	fldl .LC4
	movl 8(%ebp),%edi
	movl $dtmf_coefff,%ebx
	.p2align 4,,7
.L20:
	movl -108(%ebp),%ecx
	pushl %ecx
	movl -112(%ebp),%eax
	pushl %eax
	leal 0(,%esi,8),%ecx
	movl %ecx,-104(%ebp)
	pushl 4(%ebx)
	pushl (%ebx)
	movl 20(%ebp),%eax
	pushl %eax
	fstpt -128(%ebp)
	call dtmf_inner
	fstp %st(0)
	fldl -92(%ebp)
	fld %st(0)
	fmul %st(0),%st
	fldl -84(%ebp)
	fld %st(0)
	fmul %st(0),%st
	faddp %st,%st(2)
	fxch %st(2)
	fmull (%ebx)
	fmulp %st,%st(2)
	fsubp %st,%st(1)
	addl $20,%esp
	fldt -128(%ebp)
	fldl .LC3
	fmulp %st,%st(2)
	fcom %st(1)
	fnstsw %ax
	andb $69,%ah
	cmpb $1,%ah
	jne .L21
	fstp %st(1)
	fld %st(0)
.L21:
	fxch %st(1)
	movl -116(%ebp),%ecx
	movl -104(%ebp),%eax
	fstl (%eax,%ecx)
	fnstcw -68(%ebp)
	movl -68(%ebp),%ecx
	movb $12,%ch
	movl %ecx,-76(%ebp)
	fldcw -76(%ebp)
	fistpl -132(%ebp)
	fldcw -68(%ebp)
	movl -132(%ebp),%eax
	movw %ax,(%edi)
	addl $2,%edi
	addl $8,%ebx
	incl %esi
	cmpl $7,%esi
	jle .L20
	fstp %st(0)
	pushl $60
	movl 20(%ebp),%ecx
	pushl %ecx
	call energy
	fstpl -100(%ebp)
	pushl $60
	movl 20(%ebp),%eax
	addl $120,%eax
	pushl %eax
	call energy
	fldl -100(%ebp)
	fnstcw -68(%ebp)
	movl -68(%ebp),%ecx
	movb $12,%ch
	movl %ecx,-76(%ebp)
	fldcw -76(%ebp)
	fistpl -76(%ebp)
	movl -76(%ebp),%edx
	fldcw -68(%ebp)
	movl 12(%ebp),%eax
	movw %dx,(%eax)
	fnstcw -68(%ebp)
	movl -68(%ebp),%ecx
	movb $12,%ch
	movl %ecx,-76(%ebp)
	fldcw -76(%ebp)
	fistpl -76(%ebp)
	movl -76(%ebp),%edx
	fldcw -68(%ebp)
	movl 16(%ebp),%eax
	movw %dx,(%eax)
	leal -144(%ebp),%esp
	popl %ebx
	popl %esi
	popl %edi
	leave
	ret
.Lfe1:
	.size	 decode_frame,.Lfe1-decode_frame
.section	.rodata
	.align 4
.LC5:
	.long 0x32800000
.text
	.align 4
	.type	 energy,@function
energy:
	pushl %ebp
	movl %esp,%ebp
	fldz
	movl 8(%ebp),%edx
	leal 118(%edx),%ecx
	.p2align 4,,7
.L27:
	movswl (%edx),%eax
	imull %eax,%eax
	pushl %eax
	fiaddl (%esp)
	addl $4,%esp
	addl $2,%edx
	cmpl %ecx,%edx
	jle .L27
	flds .LC5
	fmulp %st,%st(1)
	leave
	ret
.Lfe2:
	.size	 energy,.Lfe2-energy
	.ident	"GCC: (GNU) egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)"
