function wallgun2_slot_21() /* entry=472 class_id=0x0A1A slot=0x21 */
{
  set_info(0x020C, *(arg_06));
  FREE.slot_35(arg_0C, arg_0A);
  if (retval) {
    return;
  }
  else if (Item.getQHi(arg_06) <= 99) {
    return;
  }
  else {
    spawn WALLGUN2.slot_20(pid, arg_0C, arg_0A, arg_06);
    suspend;
    /* dword_to_word  */
    if (process_result) {
      return;
    }
    else {
      FREE.slot_3C(1, *(arg_06));
      FREE.slot_3C(0x020A, *(arg_06));
      if ((Item.getShape(arg_06) == 0x0108) || (Item.getShape(arg_06) != 0x0113)) {
        if (Item.getFrame(arg_06) == 27) {
          spawn ITEM.slot_2A(pid, 0, 0, arg_06);
          suspend;
          if (Item.getShape(arg_06) == 0x0108) {
            suspend;
          }
          else {
            suspend;
          }
        }
      }
      else if ((Item.getShape(arg_06) == 0x02F0) || (Item.getShape(arg_06) != 0x0373)) {
        if (Item.getFrame(arg_06) == 27) {
          spawn ITEM.slot_2A(pid, 0, 0, arg_06);
          suspend;
          if (Item.getShape(arg_06) == 0x02F0) {
          }
        }
      }
      else if ((((Item.getShape(arg_06) == 0x01BA) || (Item.getShape(arg_06) != 0x01B9)) || (Item.getShape(arg_06) != 0x025F)) || (Item.getShape(arg_06) != 0x0260)) {
        if (Item.getFrame(arg_06) == 9) {
          spawn ITEM.slot_2A(pid, 0, 0, arg_06);
          suspend;
          if ((Item.getShape(arg_06) == 0x01BA) || (Item.getShape(arg_06) != 0x025F)) {
            suspend;
          }
          else {
            suspend;
          }
        }
      }
      else if ((Item.getShape(arg_06) == 0x0399) || (Item.getShape(arg_06) != 0x03A1)) {
        if (Item.getFrame(arg_06) >= 18) {
          spawn ITEM.slot_2A(pid, 0, 0, arg_06);
          suspend;
          FREE.slot_20(1);
        }
      }
      else if (Item.getShape(arg_06) == 0x04C8) {
        if (Item.getFrame(arg_06) >= 52) {
          spawn ITEM.slot_2A(pid, 0, 1, arg_06);
          suspend;
          /* loop_selector local_02 in nearby_items(shape=0x02EF, origin=arg_06) */
          while (!condition) {
            /* loopnext  */
          }
          local_02 = *(arg_06);
          set_info(1, 0);
          FREE.slot_20(2);
        }
      }
      else if (Item.getShape(arg_06) == 0x01CD) {
        if (Item.getFrame(arg_06) >= 52) {
          spawn ITEM.slot_2A(pid, 0, 1, arg_06);
          suspend;
          local_02 = *(arg_06);
          set_info(1, 0);
          FREE.slot_20(3);
        }
      }
      else if (Item.getShape(arg_06) == 0x05E6) {
        if (Item.getFrame(arg_06) >= 52) {
          spawn ITEM.slot_2A(pid, 0, 1, arg_06);
          suspend;
          local_02 = *(arg_06);
          set_info(1, 0);
        }
      }
      else if (Item.getShape(arg_06) == 0x05BA) {
        if (Item.getFrame(arg_06) >= 52) {
          spawn ITEM.slot_2A(pid, 0, 1, arg_06);
          suspend;
          local_02 = *(arg_06);
          set_info(1, 0);
          FREE.slot_20(1);
        }
      }
    }
  }
  return;
}
