static void imdct12(int *out, int *in)

{

    int in0, in1, in2, in3, in4, in5, t1, t2;

    in0= in[0*3]<<5;

    in1= (in[1*3] + in[0*3])<<5;

    in2= (in[2*3] + in[1*3])<<5;

    in3= (in[3*3] + in[2*3])<<5;

    in4= (in[4*3] + in[3*3])<<5;

    in5= (in[5*3] + in[4*3])<<5;

    in5 += in3;

    in3 += in1;



    in2= MULH(2*in2, C3);

    in3= MULH(2*in3, C3);

    

    t1 = in0 - in4;

    t2 = MULL(in1 - in5, icos36[4]);



    out[ 7]= 

    out[10]= t1 + t2;

    out[ 1]=

    out[ 4]= t1 - t2;



    in0 += in4>>1;

    in4 = in0 + in2;

    in1 += in5>>1;

    in5 = MULL(in1 + in3, icos36[1]);    

    out[ 8]= 

    out[ 9]= in4 + in5;

    out[ 2]=

    out[ 3]= in4 - in5;

    

    in0 -= in2;

    in1 = MULL(in1 - in3, icos36[7]);

    out[ 0]=

    out[ 5]= in0 - in1;

    out[ 6]=

    out[11]= in0 + in1;    

}

static void imdct12(int *out, int *in)

{

    int in0, in1, in2, in3, in4, in5, t1, t2;

    in0= in[0*3]<<5;

    in1= (in[1*3] + in[0*3])<<5;

    in2= (in[2*3] + in[1*3])<<5;

    in3= (in[3*3] + in[2*3])<<5;

    in4= (in[4*3] + in[3*3])<<5;

    in5= (in[5*3] + in[4*3])<<5;

    in5 += in3;

    in3 += in1;



    in2= MULH(2*in2, C3);

    in3= MULH(2*in3, C3);

    

    t1 = in0 - in4;

    t2 = MULL(in1 - in5, icos36[4]);



    out[ 7]= 

    out[10]= t1 + t2;

    out[ 1]=

    out[ 4]= t1 - t2;



    in0 += in4>>1;

    in4 = in0 + in2;

    in1 += in5>>1;

    in5 = MULL(in1 + in3, icos36[1]);    

    out[ 8]= 

    out[ 9]= in4 + in5;

    out[ 2]=

    out[ 3]= in4 - in5;

    

    in0 -= in2;

    in1 = MULL(in1 - in3, icos36[7]);

    out[ 0]=

    out[ 5]= in0 - in1;

    out[ 6]=

    out[11]= in0 + in1;    

}

    in0= in[0*3]<<5;     in1= (in[1*3] + in[0*3])<<5;     in2= (in[2*3] + in[1*3])<<5;     in3= (in[3*3] + in[2*3])<<5;     in4= (in[4*3] + in[3*3])<<5;     in5= (in[5*3] + in[4*3])<<5;
static void FUNC_0(int *VAR_0, int *VAR_1)

{

    int VAR_2, VAR_3, VAR_4, VAR_5, VAR_6, VAR_7, VAR_8, VAR_9;

    VAR_2= VAR_1[0*3]<<5;

    VAR_3= (VAR_1[1*3] + VAR_1[0*3])<<5;

    VAR_4= (VAR_1[2*3] + VAR_1[1*3])<<5;

    VAR_5= (VAR_1[3*3] + VAR_1[2*3])<<5;

    VAR_6= (VAR_1[4*3] + VAR_1[3*3])<<5;

    VAR_7= (VAR_1[5*3] + VAR_1[4*3])<<5;

    VAR_7 += VAR_5;

    VAR_5 += VAR_3;



    VAR_4= MULH(2*VAR_4, C3);

    VAR_5= MULH(2*VAR_5, C3);

    

    VAR_8 = VAR_2 - VAR_6;

    VAR_9 = MULL(VAR_3 - VAR_7, icos36[4]);



    VAR_0[ 7]= 

    VAR_0[10]= VAR_8 + VAR_9;

    VAR_0[ 1]=

    VAR_0[ 4]= VAR_8 - VAR_9;



    VAR_2 += VAR_6>>1;

    VAR_6 = VAR_2 + VAR_4;

    VAR_3 += VAR_7>>1;

    VAR_7 = MULL(VAR_3 + VAR_5, icos36[1]);    

    VAR_0[ 8]= 

    VAR_0[ 9]= VAR_6 + VAR_7;

    VAR_0[ 2]=

    VAR_0[ 3]= VAR_6 - VAR_7;

    

    VAR_2 -= VAR_4;

    VAR_3 = MULL(VAR_3 - VAR_5, icos36[7]);

    VAR_0[ 0]=

    VAR_0[ 5]= VAR_2 - VAR_3;

    VAR_0[ 6]=

    VAR_0[11]= VAR_2 + VAR_3;    

}

static void FUNC_0(int *VAR_0, int *VAR_1)
{ int VAR_2, VAR_3, VAR_4, VAR_5, VAR_6, VAR_7, VAR_8, VAR_9; VAR_2= VAR_1[0*3]<<5; VAR_3= (VAR_1[1*3] + VAR_1[0*3])<<5; VAR_4= (VAR_1[2*3] + VAR_1[1*3])<<5; VAR_5= (VAR_1[3*3] + VAR_1[2*3])<<5; VAR_6= (VAR_1[4*3] + VAR_1[3*3])<<5; VAR_7= (VAR_1[5*3] + VAR_1[4*3])<<5; VAR_7 += VAR_5; VAR_5 += VAR_3; VAR_4= MULH(2*VAR_4, C3); VAR_5= MULH(2*VAR_5, C3); VAR_8 = VAR_2 - VAR_6; VAR_9 = MULL(VAR_3 - VAR_7, icos36[4]); VAR_0[ 7]=
VAR_0[10]= VAR_8 + VAR_9; VAR_0[ 1]=
VAR_0[ 4]= VAR_8 - VAR_9; VAR_2 += VAR_6>>1; VAR_6 = VAR_2 + VAR_4; VAR_3 += VAR_7>>1; VAR_7 = MULL(VAR_3 + VAR_5, icos36[1]); VAR_0[ 8]=
VAR_0[ 9]= VAR_6 + VAR_7; VAR_0[ 2]=
VAR_0[ 3]= VAR_6 - VAR_7; VAR_2 -= VAR_4; VAR_3 = MULL(VAR_3 - VAR_5, icos36[7]); VAR_0[ 0]=
VAR_0[ 5]= VAR_2 - VAR_3; VAR_0[ 6]=
VAR_0[11]= VAR_2 + VAR_3; }