static inline int ape_decode_value_3860(APEContext *ctx, GetBitContext *gb,

                                        APERice *rice)

{

    unsigned int x, overflow;



    overflow = get_unary(gb, 1, get_bits_left(gb));



    if (ctx->fileversion > 3880) {

        while (overflow >= 16) {

            overflow -= 16;

            rice->k  += 4;

        }

    }



    if (!rice->k)

        x = overflow;

    else

        x = (overflow << rice->k) + get_bits(gb, rice->k);



    rice->ksum += x - (rice->ksum + 8 >> 4);

    if (rice->ksum < (rice->k ? 1 << (rice->k + 4) : 0))

        rice->k--;

    else if (rice->ksum >= (1 << (rice->k + 5)) && rice->k < 24)

        rice->k++;



    /* Convert to signed */

    if (x & 1)

        return (x >> 1) + 1;

    else

        return -(x >> 1);

}

static inline int ape_decode_value_3860(APEContext *ctx, GetBitContext *gb,

                                        APERice *rice)

{

    unsigned int x, overflow;



    overflow = get_unary(gb, 1, get_bits_left(gb));



    if (ctx->fileversion > 3880) {

        while (overflow >= 16) {

            overflow -= 16;

            rice->k  += 4;

        }

    }



    if (!rice->k)

        x = overflow;

    else

        x = (overflow << rice->k) + get_bits(gb, rice->k);



    rice->ksum += x - (rice->ksum + 8 >> 4);

    if (rice->ksum < (rice->k ? 1 << (rice->k + 4) : 0))

        rice->k--;

    else if (rice->ksum >= (1 << (rice->k + 5)) && rice->k < 24)

        rice->k++;



    

    if (x & 1)

        return (x >> 1) + 1;

    else

        return -(x >> 1);

}

static inline int FUNC_0(APEContext *VAR_0, GetBitContext *VAR_1,

                                        APERice *VAR_2)

{

    unsigned int VAR_3, VAR_4;



    VAR_4 = get_unary(VAR_1, 1, get_bits_left(VAR_1));



    if (VAR_0->fileversion > 3880) {

        while (VAR_4 >= 16) {

            VAR_4 -= 16;

            VAR_2->k  += 4;

        }

    }



    if (!VAR_2->k)

        VAR_3 = VAR_4;

    else

        VAR_3 = (VAR_4 << VAR_2->k) + get_bits(VAR_1, VAR_2->k);



    VAR_2->ksum += VAR_3 - (VAR_2->ksum + 8 >> 4);

    if (VAR_2->ksum < (VAR_2->k ? 1 << (VAR_2->k + 4) : 0))

        VAR_2->k--;

    else if (VAR_2->ksum >= (1 << (VAR_2->k + 5)) && VAR_2->k < 24)

        VAR_2->k++;



    

    if (VAR_3 & 1)

        return (VAR_3 >> 1) + 1;

    else

        return -(VAR_3 >> 1);

}

static inline int FUNC_0(APEContext *VAR_0, GetBitContext *VAR_1,
APERice *VAR_2)
{ unsigned int VAR_3, VAR_4; VAR_4 = get_unary(VAR_1, 1, get_bits_left(VAR_1)); if (VAR_0->fileversion > 3880) { while (VAR_4 >= 16) { VAR_4 -= 16; VAR_2->k  += 4; } } if (!VAR_2->k)
VAR_3 = VAR_4; else
VAR_3 = (VAR_4 << VAR_2->k) + get_bits(VAR_1, VAR_2->k); VAR_2->ksum += VAR_3 - (VAR_2->ksum + 8 >> 4); if (VAR_2->ksum < (VAR_2->k ? 1 << (VAR_2->k + 4) : 0))
VAR_2->k--; else if (VAR_2->ksum >= (1 << (VAR_2->k + 5)) && VAR_2->k < 24)
VAR_2->k++; if (VAR_3 & 1)
return (VAR_3 >> 1) + 1; else
return -(VAR_3 >> 1); }