Something
public text v1 · immutablechar *decode(char *data, size_t len)
{
unsigned int i, dp;
unsigned short tmp;
unsigned char *dest;
unsigned char *data8;
data8 = (unsigned char *)data;
dest = malloc(len);
if(!dest)
{
return NULL;
}
dp = 0;
for(i = 0; i < len; i += 2)
{
tmp = data8[i] | (data8[i + 1] << 8);
tmp = (tmp >> 0x1) | ((tmp & 0x1) << 0xf);
dest[dp++] = (tmp & 0xff00) >> 8;
dest[dp++] = tmp & 0xff;
}
return (char *)dest;
}