private void processShiftedReference(Map<String, Object> result, boolean overwrite) {
		try {
			Address addr = getLocation(result);
			if (addr == null) {
				throw new AddressFormatException("Incompatible Shifted Reference Address");
			}
			int opIndex = CodeUnit.MNEMONIC;
			if (result.get("opIndex") != null) {
				opIndex = (int) (double) result.get("opIndex");
			}
			CodeUnit cu = listing.getCodeUnitContaining(addr);
			if (cu == null) {
				log.appendMsg("No codeunit at " + addr);
				return;
			}
			if (!overwrite) {
				Reference[] existingRefs = refManager.getReferencesFrom(addr, opIndex);
				if (existingRefs != null && existingRefs.length != 0) {
					log.appendMsg("Reference already exists from [" + addr + "] on operand [" + opIndex + "]");
					return;
				}
			}
			Reference ref = cu.getPrimaryReference(opIndex);
			if (ref != null) {
				if (!overwrite) {
					return;
				}
			}

			int shift = (int) (double) result.get("shift");
			long value = (long) (double) result.get("value");
			Address toAddr = addr.getNewAddress(value);
			int index = Integer.parseInt((String) result.get("index"));
			RefType refType = getRefType(index);

			SourceType sourceType = getSourceType((String) result.get("sourceType"));
			refManager.addShiftedMemReference(addr, toAddr, shift, refType, sourceType, opIndex);

		} catch (Exception e) {
			log.appendException(e);
		}
	}
@param result
@param language
@param overwrite
Ghidra/Features/Sarif/src/main/java/sarif/managers/MarkupSarifMgr.java