Program: 187470
Project: 187470
Buggy source:
public void a(float motionSideways,float motionForward,float f){
  if (!hasRider || !this.isVehicle()) {
    super.a(motionSideways,motionForward,f);
    return;
  }
  if (this.onGround && this.isFlying) {
    isFlying=false;
    this.fallDistance=0;
  }
  EntityLiving passenger=(EntityLiving)this.getFirstPassenger();
  Ride rideSkill=myPet.getSkills().get(RideImpl.class);
  if (rideSkill == null) {
    passenger.stopRiding();
    return;
  }
  this.lastYaw=(this.yaw=passenger.yaw);
  this.pitch=passenger.pitch * 0.5F;
  setYawPitch(this.yaw,this.pitch);
  this.aP=(this.aN=this.yaw);
  motionSideways=passenger.bh * 0.5F;
  motionForward=passenger.bj;
  if (motionForward <= 0.0F) {
    motionForward*=0.25F;
  }
  motionSideways*=0.85F;
  float speed=0.22222F * (1F + (rideSkill.getSpeedIncrease().getValue() / 100F));
  double jumpHeight=Util.clamp(1 + rideSkill.getJumpHeight().getValue().doubleValue(),0,10);
  float ascendSpeed=0.2f;
  if (Configuration.HungerSystem.USE_HUNGER_SYSTEM && Configuration.HungerSystem.AFFECT_RIDE_SPEED) {
    double factor=Math.log10(myPet.getSaturation()) / 2;
    speed*=factor;
    jumpHeight*=factor;
    ascendSpeed*=factor;
  }
  ride(motionSideways,motionForward,f,speed);
  if (Configuration.Misc.THROW_PLAYER_MOVE_EVENT_WHILE_RIDING && !(this instanceof EntityMyHorse)) {
    double delta=Math.pow(this.locX - this.lastX,2.0D) + Math.pow(this.locY - this.lastY,2.0D) + Math.pow(this.locZ - this.lastZ,2.0D);
    float deltaAngle=Math.abs(this.yaw - lastYaw) + Math.abs(this.pitch - lastPitch);
    if (delta > 0.00390625D || deltaAngle > 10.0F) {
      Location to=getBukkitEntity().getLocation();
      Location from=new Location(world.getWorld(),this.lastX,this.lastY,this.lastZ,this.lastYaw,this.lastPitch);
      if (from.getX() != Double.MAX_VALUE) {
        Location oldTo=to.clone();
        PlayerMoveEvent event=new PlayerMoveEvent((Player)passenger.getBukkitEntity(),from,to);
        Bukkit.getPluginManager().callEvent(event);
        if (event.isCancelled()) {
          passenger.getBukkitEntity().teleport(from);
          return;
        }
        if ((!oldTo.equals(event.getTo())) && (!event.isCancelled())) {
          passenger.getBukkitEntity().teleport(event.getTo(),PlayerTeleportEvent.TeleportCause.UNKNOWN);
          return;
        }
      }
    }
  }
  if (jump != null && this.isVehicle()) {
    boolean doJump=false;
    if (this instanceof IJumpable) {
      if (this.jumpPower > 0.0F) {
        doJump=true;
        this.jumpPower=0.0F;
      }
 else       if (!this.onGround && jump != null) {
        try {
          doJump=jump.getBoolean(passenger);
        }
 catch (        IllegalAccessException ignored) {
        }
      }
    }
 else {
      if (jump != null) {
        try {
          doJump=jump.getBoolean(passenger);
        }
 catch (        IllegalAccessException ignored) {
        }
      }
    }
    if (doJump) {
      if (onGround) {
        jumpHeight=new BigDecimal(jumpHeight).setScale(1,BigDecimal.ROUND_HALF_UP).doubleValue();
        String jumpHeightString=JumpHelper.JUMP_FORMAT.format(jumpHeight);
        Double jumpVelocity=JumpHelper.JUMP_MAP.get(jumpHeightString);
        jumpVelocity=jumpVelocity == null ? 0.44161199999510264 : jumpVelocity;
        if (this instanceof IJumpable) {
          getAttributeInstance(EntityHorseAbstract.attributeJumpStrength).setValue(jumpVelocity);
        }
        this.motY=jumpVelocity;
      }
 else       if (rideSkill.getCanFly().getValue()) {
        if (limitCounter <= 0 && rideSkill.getFlyLimit().getValue().doubleValue() > 0) {
          canFly=false;
        }
 else         if (flyCheckCounter-- <= 0) {
          canFly=MyPetApi.getHookHelper().canMyPetFlyAt(getBukkitEntity().getLocation());
          flyCheckCounter=5;
        }
        if (canFly) {
          if (this.motY < ascendSpeed) {
            this.motY=ascendSpeed;
            this.fallDistance=0;
            this.isFlying=true;
          }
        }
      }
    }
 else {
      flyCheckCounter=0;
    }
  }
  if (Configuration.HungerSystem.USE_HUNGER_SYSTEM && Configuration.Skilltree.Skill.Ride.HUNGER_PER_METER > 0) {
    double dX=locX - lastX;
    double dY=Math.max(0,locY - lastY);
    double dZ=locZ - lastZ;
    if (dX != 0 || dY != 0 || dZ != 0) {
      double distance=Math.sqrt(dX * dX + dY * dY + dZ * dZ);
      if (isFlying && rideSkill.getFlyLimit().getValue().doubleValue() > 0) {
        limitCounter-=distance;
      }
      myPet.decreaseSaturation(Configuration.Skilltree.Skill.Ride.HUNGER_PER_METER * distance);
      double factor=Math.log10(myPet.getSaturation()) / 2;
      getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue((0.22222F * (1F + (rideSkill.getSpeedIncrease().getValue() / 100F))) * factor);
    }
  }
}

Fixed version (ground truth):
public void a(float motionSideways,float motionForward,float f){
  if (!hasRider || !this.isVehicle()) {
    super.a(motionSideways,motionForward,f);
    return;
  }
  EntityLiving passenger=(EntityLiving)this.getFirstPassenger();
  Ride rideSkill=myPet.getSkills().get(RideImpl.class);
  if (rideSkill == null) {
    passenger.stopRiding();
    return;
  }
  this.lastYaw=(this.yaw=passenger.yaw);
  this.pitch=passenger.pitch * 0.5F;
  setYawPitch(this.yaw,this.pitch);
  this.aP=(this.aN=this.yaw);
  motionSideways=passenger.bh * 0.5F;
  motionForward=passenger.bj;
  if (motionForward <= 0.0F) {
    motionForward*=0.25F;
  }
  motionSideways*=0.85F;
  float speed=0.22222F * (1F + (rideSkill.getSpeedIncrease().getValue() / 100F));
  double jumpHeight=Util.clamp(1 + rideSkill.getJumpHeight().getValue().doubleValue(),0,10);
  if (Configuration.HungerSystem.USE_HUNGER_SYSTEM && Configuration.HungerSystem.AFFECT_RIDE_SPEED) {
    double factor=Math.log10(myPet.getSaturation()) / 2;
    speed*=factor;
    jumpHeight*=factor;
  }
  ride(motionSideways,motionForward,f,speed);
  if (Configuration.Misc.THROW_PLAYER_MOVE_EVENT_WHILE_RIDING && !(this instanceof EntityMyHorse)) {
    double delta=Math.pow(this.locX - this.lastX,2.0D) + Math.pow(this.locY - this.lastY,2.0D) + Math.pow(this.locZ - this.lastZ,2.0D);
    float deltaAngle=Math.abs(this.yaw - lastYaw) + Math.abs(this.pitch - lastPitch);
    if (delta > 0.00390625D || deltaAngle > 10.0F) {
      Location to=getBukkitEntity().getLocation();
      Location from=new Location(world.getWorld(),this.lastX,this.lastY,this.lastZ,this.lastYaw,this.lastPitch);
      if (from.getX() != Double.MAX_VALUE) {
        Location oldTo=to.clone();
        PlayerMoveEvent event=new PlayerMoveEvent((Player)passenger.getBukkitEntity(),from,to);
        Bukkit.getPluginManager().callEvent(event);
        if (event.isCancelled()) {
          passenger.getBukkitEntity().teleport(from);
          return;
        }
        if ((!oldTo.equals(event.getTo())) && (!event.isCancelled())) {
          passenger.getBukkitEntity().teleport(event.getTo(),PlayerTeleportEvent.TeleportCause.UNKNOWN);
          return;
        }
      }
    }
  }
  if (jump != null && this.isVehicle()) {
    boolean doJump=false;
    if (this instanceof IJumpable) {
      if (this.jumpPower > 0.0F) {
        doJump=true;
        this.jumpPower=0.0F;
      }
 else       if (!this.onGround && jump != null) {
        try {
          doJump=jump.getBoolean(passenger);
        }
 catch (        IllegalAccessException ignored) {
        }
      }
    }
 else {
      if (jump != null) {
        try {
          doJump=jump.getBoolean(passenger);
        }
 catch (        IllegalAccessException ignored) {
        }
      }
    }
    if (doJump) {
      if (onGround) {
        jumpHeight=new BigDecimal(jumpHeight).setScale(1,BigDecimal.ROUND_HALF_UP).doubleValue();
        String jumpHeightString=JumpHelper.JUMP_FORMAT.format(jumpHeight);
        Double jumpVelocity=JumpHelper.JUMP_MAP.get(jumpHeightString);
        jumpVelocity=jumpVelocity == null ? 0.44161199999510264 : jumpVelocity;
        if (this instanceof IJumpable) {
          getAttributeInstance(EntityHorseAbstract.attributeJumpStrength).setValue(jumpVelocity);
        }
        this.motY=jumpVelocity;
      }
    }
  }
  if (Configuration.HungerSystem.USE_HUNGER_SYSTEM && Configuration.Skilltree.Skill.Ride.HUNGER_PER_METER > 0) {
    double dX=locX - lastX;
    double dY=Math.max(0,locY - lastY);
    double dZ=locZ - lastZ;
    if (dX != 0 || dY != 0 || dZ != 0) {
      double distance=Math.sqrt(dX * dX + dY * dY + dZ * dZ);
      myPet.decreaseSaturation(Configuration.Skilltree.Skill.Ride.HUNGER_PER_METER * distance);
      double factor=Math.log10(myPet.getSaturation()) / 2;
      getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue((0.22222F * (1F + (rideSkill.getSpeedIncrease().getValue() / 100F))) * factor);
    }
  }
}