static inline int decode_bytes(const uint8_t *inbuffer, uint8_t *out, int bytes)

{

    static const uint32_t tab[4] = {

        AV_BE2NE32C(0x37c511f2), AV_BE2NE32C(0xf237c511),

        AV_BE2NE32C(0x11f237c5), AV_BE2NE32C(0xc511f237),

    };

    int i, off;

    uint32_t c;

    const uint32_t *buf;

    uint32_t *obuf = (uint32_t *) out;

    /* FIXME: 64 bit platforms would be able to do 64 bits at a time.

     * I'm too lazy though, should be something like

     * for (i = 0; i < bitamount / 64; i++)

     *     (int64_t) out[i] = 0x37c511f237c511f2 ^ av_be2ne64(int64_t) in[i]);

     * Buffer alignment needs to be checked. */



    off = (intptr_t) inbuffer & 3;

    buf = (const uint32_t *) (inbuffer - off);

    c = tab[off];

    bytes += 3 + off;

    for (i = 0; i < bytes / 4; i++)

        obuf[i] = c ^ buf[i];



    return off;

}

static inline int decode_bytes(const uint8_t *inbuffer, uint8_t *out, int bytes)

{

    static const uint32_t tab[4] = {

        AV_BE2NE32C(0x37c511f2), AV_BE2NE32C(0xf237c511),

        AV_BE2NE32C(0x11f237c5), AV_BE2NE32C(0xc511f237),

    };

    int i, off;

    uint32_t c;

    const uint32_t *buf;

    uint32_t *obuf = (uint32_t *) out;

    











    off = (intptr_t) inbuffer & 3;

    buf = (const uint32_t *) (inbuffer - off);

    c = tab[off];

    bytes += 3 + off;

    for (i = 0; i < bytes / 4; i++)

        obuf[i] = c ^ buf[i];



    return off;

}

        AV_BE2NE32C(0x37c511f2), AV_BE2NE32C(0xf237c511),         AV_BE2NE32C(0x11f237c5), AV_BE2NE32C(0xc511f237),
static inline int FUNC_0(const uint8_t *VAR_0, uint8_t *VAR_1, int VAR_2)

{

    static const uint32_t VAR_3[4] = {

        AV_BE2NE32C(0x37c511f2), AV_BE2NE32C(0xf237c511),

        AV_BE2NE32C(0x11f237c5), AV_BE2NE32C(0xc511f237),

    };

    int VAR_4, VAR_5;

    uint32_t c;

    const uint32_t *VAR_6;

    uint32_t *obuf = (uint32_t *) VAR_1;

    











    VAR_5 = (intptr_t) VAR_0 & 3;

    VAR_6 = (const uint32_t *) (VAR_0 - VAR_5);

    c = VAR_3[VAR_5];

    VAR_2 += 3 + VAR_5;

    for (VAR_4 = 0; VAR_4 < VAR_2 / 4; VAR_4++)

        obuf[VAR_4] = c ^ VAR_6[VAR_4];



    return VAR_5;

}

static inline int FUNC_0(const uint8_t *VAR_0, uint8_t *VAR_1, int VAR_2)
{ static const uint32_t VAR_3[4] = { AV_BE2NE32C(0x37c511f2), AV_BE2NE32C(0xf237c511),
AV_BE2NE32C(0x11f237c5), AV_BE2NE32C(0xc511f237),
}; int VAR_4, VAR_5; uint32_t c; const uint32_t *VAR_6; uint32_t *obuf = (uint32_t *) VAR_1; VAR_5 = (intptr_t) VAR_0 & 3; VAR_6 = (const uint32_t *) (VAR_0 - VAR_5); c = VAR_3[VAR_5]; VAR_2 += 3 + VAR_5; for (VAR_4 = 0; VAR_4 < VAR_2 / 4; VAR_4++) obuf[VAR_4] = c ^ VAR_6[VAR_4]; return VAR_5; }