static int get_qcx(Jpeg2000DecoderContext *s, int n, Jpeg2000QuantStyle *q)

{

    int i, x;



    if (s->buf_end - s->buf < 1)

        return AVERROR(EINVAL);



    x = bytestream_get_byte(&s->buf); // Sqcd



    q->nguardbits = x >> 5;

    q->quantsty   = x & 0x1f;



    if (q->quantsty == JPEG2000_QSTY_NONE) {

        n -= 3;

        if (s->buf_end - s->buf < n || 32*3 < n)

            return AVERROR(EINVAL);

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

            q->expn[i] = bytestream_get_byte(&s->buf) >> 3;

    } else if (q->quantsty == JPEG2000_QSTY_SI) {

        if (s->buf_end - s->buf < 2)

            return AVERROR(EINVAL);

        x          = bytestream_get_be16(&s->buf);

        q->expn[0] = x >> 11;

        q->mant[0] = x & 0x7ff;

        for (i = 1; i < 32 * 3; i++) {

            int curexpn = FFMAX(0, q->expn[0] - (i - 1) / 3);

            q->expn[i] = curexpn;

            q->mant[i] = q->mant[0];

        }

    } else {

        n = (n - 3) >> 1;

        if (s->buf_end - s->buf < 2 * n || 32*3 < n)

            return AVERROR(EINVAL);

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

            x          = bytestream_get_be16(&s->buf);

            q->expn[i] = x >> 11;

            q->mant[i] = x & 0x7ff;

        }

    }

    return 0;

}

static int get_qcx(Jpeg2000DecoderContext *s, int n, Jpeg2000QuantStyle *q)

{

    int i, x;



    if (s->buf_end - s->buf < 1)

        return AVERROR(EINVAL);



    x = bytestream_get_byte(&s->buf); 



    q->nguardbits = x >> 5;

    q->quantsty   = x & 0x1f;



    if (q->quantsty == JPEG2000_QSTY_NONE) {

        n -= 3;

        if (s->buf_end - s->buf < n || 32*3 < n)

            return AVERROR(EINVAL);

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

            q->expn[i] = bytestream_get_byte(&s->buf) >> 3;

    } else if (q->quantsty == JPEG2000_QSTY_SI) {

        if (s->buf_end - s->buf < 2)

            return AVERROR(EINVAL);

        x          = bytestream_get_be16(&s->buf);

        q->expn[0] = x >> 11;

        q->mant[0] = x & 0x7ff;

        for (i = 1; i < 32 * 3; i++) {

            int curexpn = FFMAX(0, q->expn[0] - (i - 1) / 3);

            q->expn[i] = curexpn;

            q->mant[i] = q->mant[0];

        }

    } else {

        n = (n - 3) >> 1;

        if (s->buf_end - s->buf < 2 * n || 32*3 < n)

            return AVERROR(EINVAL);

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

            x          = bytestream_get_be16(&s->buf);

            q->expn[i] = x >> 11;

            q->mant[i] = x & 0x7ff;

        }

    }

    return 0;

}

static int FUNC_0(Jpeg2000DecoderContext *VAR_0, int VAR_1, Jpeg2000QuantStyle *VAR_2)

{

    int VAR_3, VAR_4;



    if (VAR_0->buf_end - VAR_0->buf < 1)

        return AVERROR(EINVAL);



    VAR_4 = bytestream_get_byte(&VAR_0->buf); 



    VAR_2->nguardbits = VAR_4 >> 5;

    VAR_2->quantsty   = VAR_4 & 0x1f;



    if (VAR_2->quantsty == JPEG2000_QSTY_NONE) {

        VAR_1 -= 3;

        if (VAR_0->buf_end - VAR_0->buf < VAR_1 || 32*3 < VAR_1)

            return AVERROR(EINVAL);

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

            VAR_2->expn[VAR_3] = bytestream_get_byte(&VAR_0->buf) >> 3;

    } else if (VAR_2->quantsty == JPEG2000_QSTY_SI) {

        if (VAR_0->buf_end - VAR_0->buf < 2)

            return AVERROR(EINVAL);

        VAR_4          = bytestream_get_be16(&VAR_0->buf);

        VAR_2->expn[0] = VAR_4 >> 11;

        VAR_2->mant[0] = VAR_4 & 0x7ff;

        for (VAR_3 = 1; VAR_3 < 32 * 3; VAR_3++) {

            int VAR_5 = FFMAX(0, VAR_2->expn[0] - (VAR_3 - 1) / 3);

            VAR_2->expn[VAR_3] = VAR_5;

            VAR_2->mant[VAR_3] = VAR_2->mant[0];

        }

    } else {

        VAR_1 = (VAR_1 - 3) >> 1;

        if (VAR_0->buf_end - VAR_0->buf < 2 * VAR_1 || 32*3 < VAR_1)

            return AVERROR(EINVAL);

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

            VAR_4          = bytestream_get_be16(&VAR_0->buf);

            VAR_2->expn[VAR_3] = VAR_4 >> 11;

            VAR_2->mant[VAR_3] = VAR_4 & 0x7ff;

        }

    }

    return 0;

}

static int FUNC_0(Jpeg2000DecoderContext *VAR_0, int VAR_1, Jpeg2000QuantStyle *VAR_2)
{ int VAR_3, VAR_4; if (VAR_0->buf_end - VAR_0->buf < 1)
return AVERROR(EINVAL); VAR_4 = bytestream_get_byte(&VAR_0->buf); VAR_2->nguardbits = VAR_4 >> 5; VAR_2->quantsty   = VAR_4 & 0x1f; if (VAR_2->quantsty == JPEG2000_QSTY_NONE) { VAR_1 -= 3; if (VAR_0->buf_end - VAR_0->buf < VAR_1 || 32*3 < VAR_1)
return AVERROR(EINVAL); for (VAR_3 = 0; VAR_3 < VAR_1; VAR_3++) VAR_2->expn[VAR_3] = bytestream_get_byte(&VAR_0->buf) >> 3; } else if (VAR_2->quantsty == JPEG2000_QSTY_SI) { if (VAR_0->buf_end - VAR_0->buf < 2)
return AVERROR(EINVAL); VAR_4          = bytestream_get_be16(&VAR_0->buf); VAR_2->expn[0] = VAR_4 >> 11; VAR_2->mant[0] = VAR_4 & 0x7ff; for (VAR_3 = 1; VAR_3 < 32 * 3; VAR_3++) { int VAR_5 = FFMAX(0, VAR_2->expn[0] - (VAR_3 - 1) / 3); VAR_2->expn[VAR_3] = VAR_5; VAR_2->mant[VAR_3] = VAR_2->mant[0]; } } else { VAR_1 = (VAR_1 - 3) >> 1; if (VAR_0->buf_end - VAR_0->buf < 2 * VAR_1 || 32*3 < VAR_1)
return AVERROR(EINVAL); for (VAR_3 = 0; VAR_3 < VAR_1; VAR_3++) { VAR_4          = bytestream_get_be16(&VAR_0->buf); VAR_2->expn[VAR_3] = VAR_4 >> 11; VAR_2->mant[VAR_3] = VAR_4 & 0x7ff; } } return 0; }