function wallgun_slot_2E() /* entry=396 class_id=0x0A1A slot=0x2E */
{
  var
    referent, /* [BP+00h] type=0x69 */
    target, /* [BP+0Ah] type=0x69 */
    x1, /* [BP-02h] type=0x69 */
    x2, /* [BP-04h] type=0x69 */
    y1, /* [BP-06h] type=0x69 */
    y2, /* [BP-08h] type=0x69 */
    z1, /* [BP-09h] type=0x62 */
    z2, /* [BP-0Ah] type=0x62 */
    dir, /* [BP-0Bh] type=0x62 */
    targetNpc; /* [BP-0Dh] type=0x24 */

  class_0A1A_slot_2C(arg_06);
  dir = retval;
  class_0A1A_slot_3E(dir, arg_06);
  x1 = retval;
  class_0A1A_slot_3F(dir, arg_06);
  y1 = retval;
  class_0A1A_slot_40(dir, arg_06);
  z1 = retval;
  targetNpc = target;
  if (!Actor.isDead(targetNpc)) {
    return;
  }
  else {
    class_0A1A_slot_2D(target, arg_06);
    if (retval) {
      if (Item.getNPCNum(arg_06) <= 99) {
        return;
      }
      if (!Item.getQHi(z1, y1, x1, dir, target, arg_06)) {
        return;
      }
      class_0A1A_slot_29(arg_06);
      if (!retval) {
        class_0A1A_slot_41(dir, arg_06);
        x2 = retval;
        class_0A1A_slot_42(dir, arg_06);
        y2 = retval;
        class_0A1A_slot_43(dir, arg_06);
        z2 = retval;
        if (!Item.getQHi(z2, y2, x2, dir, target, arg_06)) {
          return;
        }
      }
    }
    else {
      return;
    }
  }
  return;
}
