@Override
	public void markup(OatHeader oatHeader, Program program, TaskMonitor monitor, MessageLog log)
			throws Exception {
		Symbol oatDataSymbol = OatUtilities.getOatDataSymbol(program);
		Address address = oatDataSymbol.getAddress();

		Listing listing = program.getListing();
		ReferenceManager referenceManager = program.getReferenceManager();
		SymbolTable symbolTable = program.getSymbolTable();

		Data oatHeaderData = listing.getDefinedDataAt(address);
		if (oatHeaderData == null ||
			!oatHeaderData.getDataType().getName().startsWith("OatHeader")) {
			return;
		}
		for (int i = 0; i < oatHeaderData.getNumComponents(); ++i) {
			monitor.checkCancelled();
			Data componentI = oatHeaderData.getComponent(i);
			if (componentI.getFieldName().startsWith(OatDexFile.PREFIX)) {
				for (int j = 0; j < componentI.getNumComponents(); ++j) {
					monitor.checkCancelled();
					Data componentJ = componentI.getComponent(j);
					if (componentJ.getFieldName().startsWith("canonical_dex_file_location_")) {
						if (!canonical_dex_file_location_.equals(componentJ.getValue())) {
							break;//not the correct structure...
						}
					}
					if (componentJ.getFieldName().startsWith("oat_class_offsets_pointer_") ||
						componentJ.getFieldName().startsWith("lookup_table_data_") ||
						componentJ.getFieldName().startsWith("oat_class_offsets_pointer_")) {

						Scalar scalar = componentJ.getScalar(0);
						Address destinationAddress = address.add(scalar.getUnsignedValue());
						referenceManager.addMemoryReference(componentJ.getMinAddress(),
							destinationAddress, RefType.DATA, SourceType.ANALYSIS, 0);
						symbolTable.createLabel(destinationAddress, componentJ.getFieldName(),
							SourceType.ANALYSIS);

						if (componentJ.getFieldName().startsWith("lookup_table_data_")) {
							OatDexFileUtilities.markupLookupTableData(this.getClass(),
								destinationAddress, dexHeader, oatHeader, program, monitor, log);
						}
						if (componentJ.getFieldName().startsWith("oat_class_offsets_pointer_")) {
							OatDexFileUtilities.markupOatClassOffsetsPointer(this.getClass(),
								destinationAddress, dexHeader, oatHeader, program, monitor, log);
						}
					}
				}
			}
		}
	}
Used for OAT Header version 079 to 088.
<br>
Versions: Nougat, Nougat MR1
<br>
<a href="https://android.googlesource.com/platform/art/+/nougat-release/runtime/oat_file.h#383">nougat-release/runtime/oat_file.h</a>
Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/android/oat/oatdexfile/OatDexFile_Nougat.java