Ops correct, I forgot it was already available, I didn't understand that some files are ok and others fail.
So basically the code used in quickbms is exactly the same one also used in umodel and it's the standard code of libmspack (as written in the initial comment of the source file unmspack.c):
lzxd_init(&lzxSys, (void *)&src, (void *)&dst, 17, 0, 256*1024, UncompressedSize, 0);
It's quite simple but the function returns a MSPACK_ERR_DECRUNCH with that file.
I already tried to play with the window_bits and input_buffer_size arguments but the function fails every time.
Honestly I don't know what else to do but I'm open to suggestions.