@Override
	public void markup(Program program, boolean isBinary, TaskMonitor monitor, MessageLog log,
			NTHeader ntHeader)
			throws DuplicateNameException, CodeUnitInsertionException, IOException {
		for (CliAbstractTableRow row : rows) {
			Integer sigIndex = ((CliStandAloneSigRow) row).signatureIndex;

			CliBlob blob =
				metadataStream.getBlobStream().getBlob(((CliStandAloneSigRow) row).signatureIndex);
			Address sigAddr = CliAbstractStream.getStreamMarkupAddress(program, isBinary, monitor,
				log, ntHeader, metadataStream.getBlobStream(), sigIndex);

			// Create one of several *Sig objects
			if (CliSigLocalVar.isLocalVarSig(blob)) {
				CliSigLocalVar localSig = new CliSigLocalVar(blob);
				metadataStream.getBlobStream().updateBlob(localSig, sigAddr, program);
			}
			else if (CliSigField.isFieldSig(blob)) {
				// UNDOCUMENTED FEATURE ALERT! Contrary to ISO standards Microsoft compilers
				// will sometimes put FieldSig references in this table.
				CliSigField fieldSig = new CliSigField(blob);
				metadataStream.getBlobStream().updateBlob(fieldSig, sigAddr, program);
			}
			else {
				CliSigStandAloneMethod standAloneSig = new CliSigStandAloneMethod(blob);
				metadataStream.getBlobStream().updateBlob(standAloneSig, sigAddr, program);
			}
		}
	}
Describes the StandAloneSig table. Each row represents a signature that isn't referenced by any other Table.
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/pe/cli/tables/CliTableStandAloneSig.java