static inline void shuffle_bytes_2103_c(const uint8_t *src, uint8_t *dst, long src_size)
{
    int idx = 15 - src_size;
    const uint8_t *s = src-idx;
    uint8_t *d = dst-idx;
    for (; idx<15; idx+=4) {
        register int v = *(const uint32_t *)&s[idx], g = v & 0xff00ff00;
        v &= 0xff00ff;
        *(uint32_t *)&d[idx] = (v>>16) + g + (v<<16);
    }
}
['static inline void shuffle_bytes_2103_c(const uint8_t *src, uint8_t *dst, long src_size)\n{\n    int idx = 15 - src_size;\n    const uint8_t *s = src-idx;\n    uint8_t *d = dst-idx;\n    for (; idx<15; idx+=4) {\n        register int v = *(const uint32_t *)&s[idx], g = v & 0xff00ff00;\n        v &= 0xff00ff;\n        *(uint32_t *)&d[idx] = (v>>16) + g + (v<<16);\n    }\n}']