@Override
	public void execute() {
	  seq(new EflSelectPcMonOperationSegment(PC_MON_DEPOSIT));

	  seqSample(() -> {
      int numMons = curGb.readMemory(curGb.pokemon.numPartyMonAddress);
      for (int i = 0; i < numMons; i++) {
        int curMon = curGb.readMemory(curGb.pokemon.numPartyMonAddress + i + 1);
        if (curMon == mon) {
          monGoalPosition = i;
          break;
        }
      }
      if (monGoalPosition == -1)
        throw new IllegalStateException("Mon " + mon + " not found.");
    });

    if (monGoalPosition <= 2)
      seqEflScrollFastAF(monGoalPosition);
    else
      seqEflScrollFastA(monGoalPosition);
		seqEflButton(A, PRESSED); // deposit
		seq(new EflSkipTextsSegment(1)); // stored in box
	}