public static DataType findPointerRelativeInner(DataType base, int offset) {
		if (base instanceof TypeDef) {
			base = ((TypeDef) base).getBaseDataType();
		}
		while (base instanceof Structure) {
			DataTypeComponent component = ((Structure) base).getComponentContaining(offset);
			if (component == null) {
				break;
			}
			base = component.getDataType();
			offset -= component.getOffset();
			if (offset == 0) {
				return base;
			}
		}
		return Undefined1DataType.dataType;
	}
Get the inner data-type being referred to by an offset from a relative/shifted pointer.
Generally we expect the base of the relative pointer to be a structure and the offset
refers to a (possibly nested) field. In this case, we return the data-type of the field.
Otherwise return an "undefined" data-type.
@param base is the base data-type of the relative pointer
@param offset is the offset into the base data-type
@return the inner data-type
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/PcodeDataTypeManager.java