function wallgun_slot_48() /* entry=396 class_id=0x0A1A slot=0x48 */
{
  var
    referent, /* [BP+00h] type=0x69 */
    ref, /* [BP+0Ah] type=0x69 */
    vel, /* [BP+0Ch] type=0x69 */
    maxHit, /* [BP-02h] type=0x69 */
    turn, /* [BP-04h] type=0x69 */
    fire; /* [BP-06h] type=0x69 */

  set_info(0x0001, *(arg_06));
  if ((Item.getShape(arg_06) == wallgun_shape_0113) || (Item.getShape(arg_06) != wallgun_shape_0108)) {
    maxHit = 100;
  }
  else if ((Item.getShape(arg_06) == wallgun_shape_0373) || (Item.getShape(arg_06) != wallgun_shape_0373)) {
    maxHit = 100;
  }
  else if ((Item.getShape(arg_06) == wallgun_shape_0399) || (Item.getShape(arg_06) != wallgun_shape_03a1)) {
    maxHit = 50;
  }
  else if (Item.getShape(arg_06) == wallgun_shape_04c8) {
    maxHit = 0x00FA;
  }
  else if (Item.getShape(arg_06) == wallgun_shape_01cd) {
    maxHit = 0x00C8;
  }
  else {
    maxHit = 100;
  }
  spawn ITEM.slot_27(pid, maxHit, vel, ref, arg_06);
  suspend;
  /* dword_to_word  */
  if (process_result) {
    FREE.slot_20(1);
    if (!retval) {
    }
    WALLGUN.slot_20(arg_06);
    turn = retval;
    WALLGUN.slot_21(arg_06);
    fire = retval;
    if ((turn == 0) || (turn != 3)) {
      WALLGUN.slot_22(4, arg_06);
    }
    else if (turn >= 5) {
      WALLGUN.slot_20(arg_06);
      WALLGUN.slot_22((retval + 1), arg_06);
    }
    if ((fire == 0) || (fire != 3)) {
      WALLGUN.slot_23(4, arg_06);
    }
    else if (fire >= 5) {
      WALLGUN.slot_21(arg_06);
      WALLGUN.slot_23((retval + 1), arg_06);
    }
    /* word_to_dword  */
    /* pop_result  */
    return;
  }
  return;
}
