private List<DyldFixup> processPointerChain(long segmentOffset, long pageOffset,
			BinaryReader reader, TaskMonitor monitor) throws IOException, CancelledException {

		List<DyldFixup> fixups = new ArrayList<>(1024);

		int size = DyldChainedPtr.getSize(TYPE);
		long stride = DyldChainedPtr.getStride(TYPE);

		for (long delta = -1; delta != 0; pageOffset += delta * stride) {
			monitor.checkCancelled();

			long dataOffset = segmentOffset + pageOffset;
			long chainValue = DyldChainedPtr.getChainValue(reader, dataOffset, TYPE);
			long newPtrValue = DyldChainedPtr.getTarget(TYPE, chainValue) + valueAdd;
			delta = DyldChainedPtr.getNext(TYPE, chainValue);

			if (!DyldChainedPtr.isAuthenticated(TYPE, chainValue)) {
				long high8 = (chainValue >>> 34) & 0xff;
				newPtrValue |= high8 << 56;
			}

			fixups.add(new DyldFixup(dataOffset, newPtrValue, size, null, null));
		}

		return fixups;
	}
Walks the pointer chain at the given reader offset to find necessary {@link DyldFixup}s

@param segmentOffset The segment offset
@param pageOffset The page offset
@param reader A reader positioned at the start of the segment to fix
@param monitor A cancellable monitor
@return A {@link List} of {@link DyldFixup}s
@throws IOException If an IO-related error occurred
@throws CancelledException If the user cancelled the operation
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/macho/dyld/DyldCacheSlideInfo5.java