class PseudoInstruction extends DexlibAbstractInstruction {

  public PseudoInstruction(Instruction instruction, int codeAddress) {
    super(instruction, codeAddress);
  }

  protected int dataFirstByte = -1;
  protected int dataLastByte = -1;
  protected int dataSize = -1;
  protected byte[] data = null;
  protected boolean loaded = false;

  public boolean isLoaded() {
    return loaded;
  }

  public void setLoaded(boolean loaded) {
    this.loaded = loaded;
  }

  public byte[] getData() {
    return data;
  }

  protected void setData(byte[] data) {
    this.data = data;
  }

  public int getDataFirstByte() {
    if (dataFirstByte == -1) {
      throw new RuntimeException("Error: dataFirstByte was not set!");
    }
    return dataFirstByte;
  }

  protected void setDataFirstByte(int dataFirstByte) {
    this.dataFirstByte = dataFirstByte;
  }

  public int getDataLastByte() {<FILL_FUNCTION_BODY>}

  protected void setDataLastByte(int dataLastByte) {
    this.dataLastByte = dataLastByte;
  }

  public int getDataSize() {
    if (dataSize == -1) {
      throw new RuntimeException("Error: dataFirstByte was not set!");
    }
    return dataSize;
  }

  protected void setDataSize(int dataSize) {
    this.dataSize = dataSize;
  }

  public abstract void computeDataOffsets(DexBody body);

}

    if (dataLastByte == -1) {
      throw new RuntimeException("Error: dataLastByte was not set!");
    }
    return dataLastByte;
  
<methods>public void <init>(org.jf.dexlib2.iface.instruction.Instruction, int) ,public org.jf.dexlib2.iface.instruction.Instruction getInstruction() ,public int getLineNumber() ,public soot.Unit getUnit() ,public Set<soot.Type> introducedTypes() ,public abstract void jimplify(soot.dexpler.DexBody) ,public void setLineNumber(int) <variables>protected final non-sealed int codeAddress,protected final non-sealed org.jf.dexlib2.iface.instruction.Instruction instruction,protected int lineNumber,protected soot.Unit unit