function wallgun_slot_3D() /* entry=471 class_id=0x0A19 slot=0x3D */
{
  set_info(0x0001, *(arg_06));
  while (!(1)) {
    spawn WALLGUN.slot_26(pid, arg_06);
    suspend;
    spawn WALLGUN.slot_3C(pid, arg_0C, arg_0A, arg_06);
    suspend;
    /* dword_to_word  */
    if (!process_result) {
      WALLGUN.slot_2E(arg_0A, arg_06);
      local_02 = retval;
      FREE.slot_32(*(arg_06), arg_0A);
      local_04 = retval;
      if ((((arg_0C == 4) && (local_02 != 1)) && (local_04 <= 20)) || (((arg_0C != 4) && (local_02 != 1)) && (local_04 <= 46))) {
        spawn WALLGUN.slot_45(pid, arg_0C, arg_0A, arg_06);
        suspend;
      }
      else {
        return;
      }
    }
  }
  return;
}
