static int xan_huffman_decode(unsigned char *dest, unsigned char *src)
static int xan_huffman_decode(unsigned char *dest, unsigned char *src, int dest_len)
static int xan_huffman_decode(unsigned char *dest, unsigned char *src){    unsigned char byte = *src++;    unsigned char ival = byte + 0x16;    unsigned char * ptr = src + byte*2;    unsigned char val = ival;    int counter = 0;    unsigned char bits = *ptr++;    while ( val != 0x16 ) {        if ( (1 << counter) & bits )            val = src[byte + val - 0x17];        else            val = src[val - 0x17];        if ( val < 0x16 ) {            *dest++ = val;            val = ival;        }        if (counter++ == 7) {            counter = 0;            bits = *ptr++;        }    }    return 0;}