@Override
	public void markup(Program program, boolean isBinary, TaskMonitor monitor, MessageLog log,
			NTHeader ntHeader)
			throws DuplicateNameException, CodeUnitInsertionException, IOException {
		for (CliAbstractTableRow row : rows) {
			Integer nativeTypeIndex = ((CliFieldMarshallRow) row).nativeTypeIndex;
			Address addr = CliAbstractStream.getStreamMarkupAddress(program, isBinary, monitor, log,
				ntHeader, metadataStream.getBlobStream(), nativeTypeIndex);

			// Create MarshalSpec Blob object
			CliBlobMarshalSpec blob =
				new CliBlobMarshalSpec(metadataStream.getBlobStream().getBlob(nativeTypeIndex));
			metadataStream.getBlobStream().updateBlob(blob, addr, program);
		}
	}
Describes the FieldMarshall table. Each row indicates how a Param or Field should be treated when calling from or to unmanaged code.
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/pe/cli/tables/CliTableFieldMarshall.java