static void decode_pulses(Pulse * pulse, GetBitContext * gb, const uint16_t * swb_offset) {

    int i;

    pulse->num_pulse = get_bits(gb, 2) + 1;

    pulse->pos[0]    = swb_offset[get_bits(gb, 6)];

    pulse->pos[0]   += get_bits(gb, 5);

    pulse->amp[0]    = get_bits(gb, 4);

    for (i = 1; i < pulse->num_pulse; i++) {

        pulse->pos[i] = get_bits(gb, 5) + pulse->pos[i-1];

        pulse->amp[i] = get_bits(gb, 4);

    }

}

static void decode_pulses(Pulse * pulse, GetBitContext * gb, const uint16_t * swb_offset) {

    int i;

    pulse->num_pulse = get_bits(gb, 2) + 1;

    pulse->pos[0]    = swb_offset[get_bits(gb, 6)];

    pulse->pos[0]   += get_bits(gb, 5);

    pulse->amp[0]    = get_bits(gb, 4);

    for (i = 1; i < pulse->num_pulse; i++) {

        pulse->pos[i] = get_bits(gb, 5) + pulse->pos[i-1];

        pulse->amp[i] = get_bits(gb, 4);

    }

}

static void FUNC_0(Pulse * VAR_0, GetBitContext * VAR_1, const uint16_t * VAR_2) {

    int VAR_3;

    VAR_0->num_pulse = get_bits(VAR_1, 2) + 1;

    VAR_0->pos[0]    = VAR_2[get_bits(VAR_1, 6)];

    VAR_0->pos[0]   += get_bits(VAR_1, 5);

    VAR_0->amp[0]    = get_bits(VAR_1, 4);

    for (VAR_3 = 1; VAR_3 < VAR_0->num_pulse; VAR_3++) {

        VAR_0->pos[VAR_3] = get_bits(VAR_1, 5) + VAR_0->pos[VAR_3-1];

        VAR_0->amp[VAR_3] = get_bits(VAR_1, 4);

    }

}

static void FUNC_0(Pulse * VAR_0, GetBitContext * VAR_1, const uint16_t * VAR_2) { int VAR_3; VAR_0->num_pulse = get_bits(VAR_1, 2) + 1; VAR_0->pos[0]    = VAR_2[get_bits(VAR_1, 6)]; VAR_0->pos[0]   += get_bits(VAR_1, 5); VAR_0->amp[0]    = get_bits(VAR_1, 4); for (VAR_3 = 1; VAR_3 < VAR_0->num_pulse; VAR_3++) { VAR_0->pos[VAR_3] = get_bits(VAR_1, 5) + VAR_0->pos[VAR_3-1]; VAR_0->amp[VAR_3] = get_bits(VAR_1, 4); } }