static void adx_decode(short *out,const unsigned char *in,PREV *prev)

{

	int scale = ((in[0]<<8)|(in[1]));

	int i;

	int s0,s1,s2,d;



//	printf("%x ",scale);



	in+=2;

	s1 = prev->s1;

	s2 = prev->s2;

	for(i=0;i<16;i++) {

		d = in[i];

		// d>>=4; if (d&8) d-=16;

		d = ((signed char)d >> 4);

		s0 = (BASEVOL*d*scale + SCALE1*s1 - SCALE2*s2)>>14;

		CLIP(s0);

		*out++=s0;

		s2 = s1;

		s1 = s0;



		d = in[i];

		//d&=15; if (d&8) d-=16;

		d = ((signed char)(d<<4) >> 4);

		s0 = (BASEVOL*d*scale + SCALE1*s1 - SCALE2*s2)>>14;

		CLIP(s0);

		*out++=s0;

		s2 = s1;

		s1 = s0;

	}

	prev->s1 = s1;

	prev->s2 = s2;



}

static void adx_decode(short *out,const unsigned char *in,PREV *prev)

{

	int scale = ((in[0]<<8)|(in[1]));

	int i;

	int s0,s1,s2,d;







	in+=2;

	s1 = prev->s1;

	s2 = prev->s2;

	for(i=0;i<16;i++) {

		d = in[i];

		

		d = ((signed char)d >> 4);

		s0 = (BASEVOL*d*scale + SCALE1*s1 - SCALE2*s2)>>14;

		CLIP(s0);

		*out++=s0;

		s2 = s1;

		s1 = s0;



		d = in[i];

		

		d = ((signed char)(d<<4) >> 4);

		s0 = (BASEVOL*d*scale + SCALE1*s1 - SCALE2*s2)>>14;

		CLIP(s0);

		*out++=s0;

		s2 = s1;

		s1 = s0;

	}

	prev->s1 = s1;

	prev->s2 = s2;



}

	int i; 	int s0,s1,s2,d; 	s1 = prev->s1; 	s2 = prev->s2; 		s2 = s1; 		s1 = s0; 	prev->s1 = s1; 	prev->s2 = s2; 	for(i=0;i<16;i++) { 	int scale = ((in[0]<<8)|(in[1])); 	int i; 	int s0,s1,s2,d; 	in+=2; 	s1 = prev->s1; 	s2 = prev->s2; 	for(i=0;i<16;i++) { 		d = in[i]; 		d = ((signed char)d >> 4); 		s0 = (BASEVOL*d*scale + SCALE1*s1 - SCALE2*s2)>>14; 		CLIP(s0); 		*out++=s0; 		s2 = s1; 		s1 = s0; 		d = in[i]; 		d = ((signed char)(d<<4) >> 4); 		s0 = (BASEVOL*d*scale + SCALE1*s1 - SCALE2*s2)>>14; 		CLIP(s0); 		*out++=s0; 		s2 = s1; 		s1 = s0; 	prev->s1 = s1; 	prev->s2 = s2; 	int i; 	int i;
static void FUNC_0(short *VAR_0,const unsigned char *VAR_1,PREV *VAR_2)

{

	int VAR_3 = ((VAR_1[0]<<8)|(VAR_1[1]));

	int VAR_4;

	int VAR_5,VAR_6,VAR_7,VAR_8;







	VAR_1+=2;

	VAR_6 = VAR_2->VAR_6;

	VAR_7 = VAR_2->VAR_7;

	for(VAR_4=0;VAR_4<16;VAR_4++) {

		VAR_8 = VAR_1[VAR_4];

		

		VAR_8 = ((signed char)VAR_8 >> 4);

		VAR_5 = (BASEVOL*VAR_8*VAR_3 + SCALE1*VAR_6 - SCALE2*VAR_7)>>14;

		CLIP(VAR_5);

		*VAR_0++=VAR_5;

		VAR_7 = VAR_6;

		VAR_6 = VAR_5;



		VAR_8 = VAR_1[VAR_4];

		

		VAR_8 = ((signed char)(VAR_8<<4) >> 4);

		VAR_5 = (BASEVOL*VAR_8*VAR_3 + SCALE1*VAR_6 - SCALE2*VAR_7)>>14;

		CLIP(VAR_5);

		*VAR_0++=VAR_5;

		VAR_7 = VAR_6;

		VAR_6 = VAR_5;

	}

	VAR_2->VAR_6 = VAR_6;

	VAR_2->VAR_7 = VAR_7;



}

static void FUNC_0(short *VAR_0,const unsigned char *VAR_1,PREV *VAR_2)
{ int VAR_3 = ((VAR_1[0]<<8)|(VAR_1[1])); int VAR_4; int VAR_5,VAR_6,VAR_7,VAR_8; VAR_1+=2; VAR_6 = VAR_2->VAR_6; VAR_7 = VAR_2->VAR_7; for(VAR_4=0;VAR_4<16;VAR_4++) { VAR_8 = VAR_1[VAR_4]; VAR_8 = ((signed char)VAR_8 >> 4); VAR_5 = (BASEVOL*VAR_8*VAR_3 + SCALE1*VAR_6 - SCALE2*VAR_7)>>14; CLIP(VAR_5); *VAR_0++=VAR_5; VAR_7 = VAR_6; VAR_6 = VAR_5; VAR_8 = VAR_1[VAR_4]; VAR_8 = ((signed char)(VAR_8<<4) >> 4); VAR_5 = (BASEVOL*VAR_8*VAR_3 + SCALE1*VAR_6 - SCALE2*VAR_7)>>14; CLIP(VAR_5); *VAR_0++=VAR_5; VAR_7 = VAR_6; VAR_6 = VAR_5; } VAR_2->VAR_6 = VAR_6; VAR_2->VAR_7 = VAR_7; }