private void deserializeTypeIndexOffsetPairs(PdbByteReader reader, TaskMonitor monitor)
				throws PdbException, CancelledException {
			int numPairs = lengthTypeIndexOffsetPairs / TiOff32.size;
			if (numPairs * TiOff32.size != lengthTypeIndexOffsetPairs) {
				throw new PdbException("Corruption in Length of Type Index Pairs;");
			}
			long previousTypeIndex = -1;
			for (int i = 0; i < numPairs; i++) {
				monitor.checkCancelled();
				TiOff tiOff = new TiOff32(reader);
				if (tiOff.getTypeIndex() <= previousTypeIndex) {
					throw new PdbException("Corruption in TypeIndex/Offset pairs: out of order");
				}
				previousTypeIndex = tiOff.getTypeIndex();
				tiOffs.add(tiOff);
			}
		}
*UNDER CONSTRUCTION* Deserializes the Hash Streams...
@param monitor {@link TaskMonitor} used for checking cancellation
@throws IOException on file seek or read, invalid parameters, bad file configuration, or
 inability to read required bytes
@throws PdbException upon error in processing components
@throws CancelledException upon user cancellation
Ghidra/Features/PDB/src/main/java/ghidra/app/util/bin/format/pdb2/pdbreader/TypeProgramInterface.java