static inline void shuffle_bytes_2103_c(const uint8_t *src, uint8_t *dst,
                                        int 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,\n                                        int 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}']