public T findAndParse() throws CancelledException, PdbException {
		while (reader.hasMore()) {
			monitor.checkCancelled();
			int index = reader.getIndex();
			int typeVal = reader.parseInt();
			boolean ignore = C13Type.ignore(typeVal);
			detectedType = C13Type.fromValue(typeVal);
			int len = reader.parseInt();
			if ((!ignore || processIgnore) &&
				(requestedType == C13Type.ALL || detectedType == requestedType)) {
				reader.setIndex(index);
				C13Section parsedSection = C13Section.parse(reader, monitor);
				return (parsedSection.getClass().equals(clazz) ||
					C13Section.class.equals(clazz))
							? clazz.cast(parsedSection)
							: null;
			}
			reader.skip(len);
		}
		return null;
	}
Finds and parses the next C13 Section type requested
@return the found and parsed element. Can be null if not found
@throws CancelledException upon user cancellation
@throws PdbException upon problem parsing data
Ghidra/Features/PDB/src/main/java/ghidra/app/util/bin/format/pdb2/pdbreader/C13SectionIterator.java