ByteBuffer byteBuffer = ByteBuffer.wrap(bytes);
byteBuffer.order(ByteOrder.LITTLE_ENDIAN);
int fileNameLen = byteBuffer.getInt();
byte[] fileNameBytes = new byte[fileNameLen];
byteBuffer.get(fileNameBytes);
int icon16Len = byteBuffer.getInt();
byte[] icon16 = new byte[icon16Len];
byteBuffer.get(icon16);
int icon32Len = byteBuffer.getInt();
byte[] icon32 = new byte[icon32Len];
byteBuffer.get(icon32);
int fileContentLen = byteBuffer.getInt();
byte[] fileContent = new byte[fileContentLen];
byteBuffer.get(fileContent);