unsigned int UnpRead(unsigned char *Addr,unsigned int Count) { unsigned int I,RetCode=0,ReadSize,TotalRead=0; unsigned char *ReadAddr; ReadAddr=Addr; while (Count > 0) { ReadSize=(unsigned int)((Count>UnpPackedSize) ? UnpPackedSize : Count); if (ArcPtr==NULL) return(0); RetCode=tread(RdUnpPtr,ReadAddr,ReadSize); CurUnpRead+=RetCode; ReadAddr+=RetCode; TotalRead+=RetCode; Count-=RetCode; UnpPackedSize-=RetCode; if (UnpPackedSize == 0 && UnpVolume) MergeArchive(1); else break; } if (RetCode!=-1U) { RetCode=TotalRead; if (Encryption) if (Encryption<20) Crypt(Addr,RetCode,(Encryption==15) ? NEW_CRYPT : OLD_DECODE); else for (I=0;I