static void switch_buffer(MPADecodeContext *s, int *pos, int *end_pos,

                          int *end_pos2)

{

    if (s->in_gb.buffer && *pos >= s->gb.size_in_bits) {

        s->gb           = s->in_gb;

        s->in_gb.buffer = NULL;

        assert((get_bits_count(&s->gb) & 7) == 0);

        skip_bits_long(&s->gb, *pos - *end_pos);

        *end_pos2 =

        *end_pos  = *end_pos2 + get_bits_count(&s->gb) - *pos;

        *pos      = get_bits_count(&s->gb);

    }

}

static void switch_buffer(MPADecodeContext *s, int *pos, int *end_pos,

                          int *end_pos2)

{

    if (s->in_gb.buffer && *pos >= s->gb.size_in_bits) {

        s->gb           = s->in_gb;

        s->in_gb.buffer = NULL;

        assert((get_bits_count(&s->gb) & 7) == 0);

        skip_bits_long(&s->gb, *pos - *end_pos);

        *end_pos2 =

        *end_pos  = *end_pos2 + get_bits_count(&s->gb) - *pos;

        *pos      = get_bits_count(&s->gb);

    }

}

    if (s->in_gb.buffer && *pos >= s->gb.size_in_bits) {
static void FUNC_0(MPADecodeContext *VAR_0, int *VAR_1, int *VAR_2,

                          int *VAR_3)

{

    if (VAR_0->in_gb.buffer && *VAR_1 >= VAR_0->gb.size_in_bits) {

        VAR_0->gb           = VAR_0->in_gb;

        VAR_0->in_gb.buffer = NULL;

        assert((get_bits_count(&VAR_0->gb) & 7) == 0);

        skip_bits_long(&VAR_0->gb, *VAR_1 - *VAR_2);

        *VAR_3 =

        *VAR_2  = *VAR_3 + get_bits_count(&VAR_0->gb) - *VAR_1;

        *VAR_1      = get_bits_count(&VAR_0->gb);

    }

}

static void FUNC_0(MPADecodeContext *VAR_0, int *VAR_1, int *VAR_2,
int *VAR_3)
{ if (VAR_0->in_gb.buffer && *VAR_1 >= VAR_0->gb.size_in_bits) { VAR_0->gb           = VAR_0->in_gb; VAR_0->in_gb.buffer = NULL; assert((get_bits_count(&VAR_0->gb) & 7) == 0); skip_bits_long(&VAR_0->gb, *VAR_1 - *VAR_2); *VAR_3 =
*VAR_2  = *VAR_3 + get_bits_count(&VAR_0->gb) - *VAR_1; *VAR_1      = get_bits_count(&VAR_0->gb); } }