Note that Z_BUF_ERROR is not fatal,
int inflateResult = inflate (&stream, 4);...inflateEnd (&stream);...return -3;-> returnedif (res || inflated != output->size()){ throw std::runtime_error ("error: not inflated correctly");}
if (inflateResult == 1) { *written_output = stream.total_out; return inflateEnd (&stream); }
Try writing output to disk and look at it. Also, try increasing input size read from BsnI. I'd wonder if, but it may be wrong.The last possibly wrong thing is the size of unsigned int being wrong, but I really can't believe that.
The filenames of course are fine. The question is if the contents are..
try increasing input size read from BsnI.
The only thing I'd suspect being wrong is the compression mode / strength chosen for inflate. But as you know, I successfully extracted your installer using exactly that source code.May you give sizeof(BsnI_Entry) (or whatever it was called)?
Those values are fine. I have no idea what might be wrong, then. It should work fine.Try different numbers for inflate, try using bsnientry.data_size * 2.
Why try assembling them? The exe is a executable itself and should be possible to run.