private void processRtti0(Collection<Address> possibleRtti0Addresses, Program program,
			TaskMonitor monitor) throws CancelledException {

		monitor.setMaximum(possibleRtti0Addresses.size());
		monitor.setMessage("Creating RTTI Data...");

		ArrayList<Address> rtti0Locations = new ArrayList<>();
		int count = 0;
		for (Address rtti0Address : possibleRtti0Addresses) {
			monitor.checkCancelled();
			monitor.setProgress(count++);

			// Create the TypeDescriptor (RTTI 0) regardless of the other RTTI structures.
			CreateTypeDescriptorBackgroundCmd typeDescCmd = new CreateTypeDescriptorBackgroundCmd(
				rtti0Address, validationOptions, applyOptions);
			// Could call typeDescCmd.getStatusMsg() on failure
			if (typeDescCmd.applyTo(program, monitor)) {
				rtti0Locations.add(rtti0Address);
			}
		}

		// Create any valid RTTI4s for this TypeDescriptor
		processRtti4sForRtti0(program, rtti0Locations, monitor);
	}
locate any potential RTTI0 based on pointers to the type_info vftable
@param program proram to locate within
@param set restricted set to locate within
@param monitor monitor for canceling
@return set of potential RTTI0 entries
@throws CancelledException if cancelled
Ghidra/Features/MicrosoftCodeAnalyzer/src/main/java/ghidra/app/plugin/prototype/MicrosoftCodeAnalyzerPlugin/RttiAnalyzer.java