private void parseSignature(PdbByteReader symbolsReader) throws PdbException {
		if (symbolsReader == PdbByteReader.DUMMY) {
			return; // DUMMY is empty.
		}
		// cvSignature:
		// >64K = C6
		// 1 = C7
		// 2 = C11 (vc5.x)
		// 3 = ??? (not specified, and not marked as reserved)
		// 4 = C13 (vc7.x)
		// 5-64K = RESERVED
		//
		// Both cvdump (1660 and 1668) and mod.cpp (575) seem to indicate that the first module
		// might have the cvSignature of C7 or C11 (when C7/C11), but modules thereafter will not
		// or may not have the value.  C13 would always have the C13 signature.

		// NOTE: the following logic was originally intended for when processing multiple modules,
		// back-to-back.  It won't work here, as the getSig value is not retained.  Thing is, we
		// have no real data to test the questionable requirement (what we think was in MSFT
		// design) at this time.
		boolean getSig = true;
		int cvSignature = 0;
		if (getSig) {
			cvSignature = symbolsReader.parseInt();
		}
		switch (cvSignature) {
			case 1:
			case 2:
				// We have no 1,2 examples to test this logic for cvSignature.  Confirming
				// or rejecting this logic is important for simplifying/refactoring this
				// method or writing new methods to allow for extraction of information from
				// individual modules.  The current implementation has cross-module logic
				// (setting state in the processing of the first and using this state in the
				// processing of follow-on modules).
				getSig = false;
				break;
			case 4:
				break;
			default:
				if (cvSignature < 0x10000) {
					throw new PdbException(
						"PDB Error: Invalid module CV signature in stream " + streamNumber);
				}
				break;
		}

	}
Returns an MsSymbolIterator for the symbols of this module
@return the iterator
@throws CancelledException upon user cancellation
@throws PdbException upon invalid cvSignature
Ghidra/Features/PDB/src/main/java/ghidra/app/util/bin/format/pdb2/pdbreader/Module.java