static void truespeech_apply_twopoint_filter(TSContext *dec, int quart)

{

    int16_t tmp[146 + 60], *ptr0, *ptr1;

    const int16_t *filter;

    int i, t, off;



    t = dec->offset2[quart];

    if(t == 127){

        memset(dec->newvec, 0, 60 * sizeof(*dec->newvec));

        return;

    }

    for(i = 0; i < 146; i++)

        tmp[i] = dec->filtbuf[i];

    off = (t / 25) + dec->offset1[quart >> 1] + 18;


    ptr0 = tmp + 145 - off;

    ptr1 = tmp + 146;

    filter = (const int16_t*)ts_order2_coeffs + (t % 25) * 2;

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

        t = (ptr0[0] * filter[0] + ptr0[1] * filter[1] + 0x2000) >> 14;

        ptr0++;

        dec->newvec[i] = t;

        ptr1[i] = t;

    }

}
static void truespeech_apply_twopoint_filter(TSContext *dec, int quart)

{

    int16_t tmp[146 + 60], *ptr0, *ptr1;

    const int16_t *filter;

    int i, t, off;



    t = dec->offset2[quart];

    if(t == 127){

        memset(dec->newvec, 0, 60 * sizeof(*dec->newvec));

        return;

    }

    for(i = 0; i < 146; i++)

        tmp[i] = dec->filtbuf[i];

    off = (t / 25) + dec->offset1[quart >> 1] + 18;


    ptr0 = tmp + 145 - off;

    ptr1 = tmp + 146;

    filter = (const int16_t*)ts_order2_coeffs + (t % 25) * 2;

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

        t = (ptr0[0] * filter[0] + ptr0[1] * filter[1] + 0x2000) >> 14;

        ptr0++;

        dec->newvec[i] = t;

        ptr1[i] = t;

    }

}
static void FUNC_0(TSContext *VAR_0, int VAR_1)

{

    int16_t tmp[146 + 60], *ptr0, *ptr1;

    const int16_t *VAR_2;

    int VAR_3, VAR_4, VAR_5;



    VAR_4 = VAR_0->offset2[VAR_1];

    if(VAR_4 == 127){

        memset(VAR_0->newvec, 0, 60 * sizeof(*VAR_0->newvec));

        return;

    }

    for(VAR_3 = 0; VAR_3 < 146; VAR_3++)

        tmp[VAR_3] = VAR_0->filtbuf[VAR_3];

    VAR_5 = (VAR_4 / 25) + VAR_0->offset1[VAR_1 >> 1] + 18;


    ptr0 = tmp + 145 - VAR_5;

    ptr1 = tmp + 146;

    VAR_2 = (const int16_t*)ts_order2_coeffs + (VAR_4 % 25) * 2;

    for(VAR_3 = 0; VAR_3 < 60; VAR_3++){

        VAR_4 = (ptr0[0] * VAR_2[0] + ptr0[1] * VAR_2[1] + 0x2000) >> 14;

        ptr0++;

        VAR_0->newvec[VAR_3] = VAR_4;

        ptr1[VAR_3] = VAR_4;

    }

}
static void FUNC_0(TSContext *VAR_0, int VAR_1)
{ int16_t tmp[146 + 60], *ptr0, *ptr1; const int16_t *VAR_2; int VAR_3, VAR_4, VAR_5; VAR_4 = VAR_0->offset2[VAR_1]; if(VAR_4 == 127){ memset(VAR_0->newvec, 0, 60 * sizeof(*VAR_0->newvec)); return; } for(VAR_3 = 0; VAR_3 < 146; VAR_3++) tmp[VAR_3] = VAR_0->filtbuf[VAR_3]; VAR_5 = (VAR_4 / 25) + VAR_0->offset1[VAR_1 >> 1] + 18; ptr0 = tmp + 145 - VAR_5; ptr1 = tmp + 146; VAR_2 = (const int16_t*)ts_order2_coeffs + (VAR_4 % 25) * 2; for(VAR_3 = 0; VAR_3 < 60; VAR_3++){ VAR_4 = (ptr0[0] * VAR_2[0] + ptr0[1] * VAR_2[1] + 0x2000) >> 14; ptr0++; VAR_0->newvec[VAR_3] = VAR_4; ptr1[VAR_3] = VAR_4; } }