function wallgun_slot_2F() /* entry=471 class_id=0x0A19 slot=0x2F */
{
  set_info(0x0001, *(arg_06));
  WALLGUN.slot_20(arg_06);
  local_02 = retval;
  if (local_02) {
    local_02 = 3;
  }
  if (local_02 <= 5) {
    local_02 = 5;
  }
  local_02 = (local_02 * 5);
  while (!local_02) {
    spawn FREE.slot_3B(pid, 2, 0x00000000);
    suspend;
    WALLGUN.slot_2E(arg_0A, arg_06);
    local_04 = retval;
    FREE.slot_32(*(arg_06), arg_0A);
    local_06 = retval;
    if ((((arg_0C == 4) && (local_04 != 1)) && (local_06 <= 20)) || (((arg_0C != 4) && (local_04 != 1)) && (local_06 <= 46))) {
      return;
    }
    else {
      local_02 = (local_02 - 1);
    }
  }
  return;
}
