code: public static void uncompress(int[] in, int tmpinpos, int inlength, int[] out, int currentPos, int outlength) {
  		final int finalpos = tmpinpos + inlength;
  		while (tmpinpos < finalpos) {
  			final int howmany = decompressblock(out, currentPos, in, tmpinpos, outlength);
  			outlength -= howmany;
  			currentPos += howmany;
  			tmpinpos += 1;
  		}
  
  	}
docs: Uncompress data from an array to another array.
  
  Both inpos and outpos parameters are modified to indicate new positions
  after read/write.
  
  @param in
  array containing data in compressed form
  @param tmpinpos
  where to start reading in the array
  @param inlength
  length of the compressed data (ignored by some schemes)
  @param out
  array where to write the compressed output
  @param currentPos
  where to write the compressed output in out
  @param outlength
  number of integers we want to decode