private SortedSet<Address> getChangePoints(Address startAddr, Address endAddr,
			int registerOffset, int registerLength) {

		SortedSet<Address> changePoints = new TreeSet<Address>();

		AddressRangeMapDB map = getRangeMap(registerOffset);
		if (map != null) {
			AddressRangeIterator iter = map.getAddressRanges(startAddr, endAddr);
			Address curr = startAddr;
			while (iter.hasNext() && curr.compareTo(endAddr) < 0) {
				AddressRange range = iter.next();
				Address rangeStart = range.getMinAddress();
				if (!rangeStart.equals(curr)) {
					changePoints.add(rangeStart);
				}
				Address rangeEnd = range.getMaxAddress();
				curr = rangeEnd.addWrap(1);
				if (curr.compareTo(endAddr) <= 0) {
					changePoints.add(curr);
				}
			}
		}

		return changePoints;
	}
Constructs a new ProgramContextDB object
@param dbHandle the handle to the database.
@param errHandler the error handler
@param language the processor language
@param addrMap the address map.
@param lock the program synchronization lock
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/register/OldProgramContextDB.java