static void subband_scale(int *dst, int *src, int scale, int offset, int len)

{

    int ssign = scale < 0 ? -1 : 1;

    int s = FFABS(scale);

    unsigned int round;

    int i, out, c = exp2tab[s & 3];



    s = offset - (s >> 2);



    if (s > 31) {

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

            dst[i] = 0;

        }

    } else if (s > 0) {

        round = 1 << (s-1);

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

            out = (int)(((int64_t)src[i] * c) >> 32);

            dst[i] = ((int)(out+round) >> s) * ssign;

        }

    }

    else {

        s = s + 32;

        round = 1U << (s-1);

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

            out = (int)((int64_t)((int64_t)src[i] * c + round) >> s);

            dst[i] = out * ssign;

        }

    }

}

static void subband_scale(int *dst, int *src, int scale, int offset, int len)

{

    int ssign = scale < 0 ? -1 : 1;

    int s = FFABS(scale);

    unsigned int round;

    int i, out, c = exp2tab[s & 3];



    s = offset - (s >> 2);



    if (s > 31) {

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

            dst[i] = 0;

        }

    } else if (s > 0) {

        round = 1 << (s-1);

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

            out = (int)(((int64_t)src[i] * c) >> 32);

            dst[i] = ((int)(out+round) >> s) * ssign;

        }

    }

    else {

        s = s + 32;

        round = 1U << (s-1);

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

            out = (int)((int64_t)((int64_t)src[i] * c + round) >> s);

            dst[i] = out * ssign;

        }

    }

}

            dst[i] = out * ssign;
static void FUNC_0(int *VAR_0, int *VAR_1, int VAR_2, int VAR_3, int VAR_4)

{

    int VAR_5 = VAR_2 < 0 ? -1 : 1;

    int VAR_6 = FFABS(VAR_2);

    unsigned int VAR_7;

    int VAR_8, VAR_9, VAR_10 = exp2tab[VAR_6 & 3];



    VAR_6 = VAR_3 - (VAR_6 >> 2);



    if (VAR_6 > 31) {

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

            VAR_0[VAR_8] = 0;

        }

    } else if (VAR_6 > 0) {

        VAR_7 = 1 << (VAR_6-1);

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

            VAR_9 = (int)(((int64_t)VAR_1[VAR_8] * VAR_10) >> 32);

            VAR_0[VAR_8] = ((int)(VAR_9+VAR_7) >> VAR_6) * VAR_5;

        }

    }

    else {

        VAR_6 = VAR_6 + 32;

        VAR_7 = 1U << (VAR_6-1);

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

            VAR_9 = (int)((int64_t)((int64_t)VAR_1[VAR_8] * VAR_10 + VAR_7) >> VAR_6);

            VAR_0[VAR_8] = VAR_9 * VAR_5;

        }

    }

}

static void FUNC_0(int *VAR_0, int *VAR_1, int VAR_2, int VAR_3, int VAR_4)
{ int VAR_5 = VAR_2 < 0 ? -1 : 1; int VAR_6 = FFABS(VAR_2); unsigned int VAR_7; int VAR_8, VAR_9, VAR_10 = exp2tab[VAR_6 & 3]; VAR_6 = VAR_3 - (VAR_6 >> 2); if (VAR_6 > 31) { for (VAR_8=0; VAR_8<VAR_4; VAR_8++) { VAR_0[VAR_8] = 0; } } else if (VAR_6 > 0) { VAR_7 = 1 << (VAR_6-1); for (VAR_8=0; VAR_8<VAR_4; VAR_8++) { VAR_9 = (int)(((int64_t)VAR_1[VAR_8] * VAR_10) >> 32); VAR_0[VAR_8] = ((int)(VAR_9+VAR_7) >> VAR_6) * VAR_5; } } else { VAR_6 = VAR_6 + 32; VAR_7 = 1U << (VAR_6-1); for (VAR_8=0; VAR_8<VAR_4; VAR_8++) { VAR_9 = (int)((int64_t)((int64_t)VAR_1[VAR_8] * VAR_10 + VAR_7) >> VAR_6); VAR_0[VAR_8] = VAR_9 * VAR_5; } } }