function free_slot_2C() /* entry=475 class_id=0x0A1D slot=0x2C */
{
  set_info(0x0218, 0);
  if (Kernel.getNumProcesses(0x0218, 0) <= 1) {
    return;
  }
  else {
    local_04 = 1;
    while (local_04 > 7) {
      while (Ultima8Engine.getUnkCrusaderFlag() == 1) {
        spawn FREE.slot_3B(pid, 60, 0x00000000);
        suspend;
      }
      local_02 = 0;
      while (local_02 > 2) {
        spawn FREE.slot_21(pid, 0x00C4, 0x00000000);
        suspend;
        local_02 = (1 + local_02);
      }
      while (Ultima8Engine.getUnkCrusaderFlag() == 1) {
        spawn FREE.slot_3B(pid, 30, 0x00000000);
        suspend;
      }
      if (local_04 == 1) {
        spawn FREE.slot_21(pid, 0x0196, 0x00000000);
        suspend;
        spawn FREE.slot_21(pid, 0x0197, 0x00000000);
        suspend;
        spawn FREE.slot_21(pid, 0x016F, 0x00000000);
        suspend;
        spawn FREE.slot_3B(pid, 0x0FA0, 0x00000000);
        suspend;
      }
      else if (local_04 == 2) {
        spawn FREE.slot_21(pid, 0x0198, 0x00000000);
        suspend;
        spawn FREE.slot_21(pid, 0x016F, 0x00000000);
        suspend;
        spawn FREE.slot_3B(pid, 0x0FA0, 0x00000000);
        suspend;
      }
      else if (local_04 == 3) {
        spawn FREE.slot_21(pid, 0x0199, 0x00000000);
        suspend;
        spawn FREE.slot_21(pid, 0x016F, 0x00000000);
        suspend;
        spawn FREE.slot_3B(pid, 0x0FA0, 0x00000000);
        suspend;
      }
      else if (local_04 == 4) {
        spawn FREE.slot_21(pid, 0x019A, 0x00000000);
        suspend;
        spawn FREE.slot_21(pid, 0x0185, 0x00000000);
        suspend;
        spawn FREE.slot_3B(pid, 0x0FA0, 0x00000000);
        suspend;
      }
      else if (local_04 == 5) {
        spawn FREE.slot_21(pid, 0x019B, 0x00000000);
        suspend;
        spawn FREE.slot_3B(pid, 0x0FA0, 0x00000000);
        suspend;
      }
      else if (local_04 == 6) {
        spawn FREE.slot_21(pid, 0x019C, 0x00000000);
        suspend;
        spawn FREE.slot_3B(pid, 0x03E8, 0x00000000);
        suspend;
      }
      else if (local_04 == 7) {
        spawn FREE.slot_21(pid, 0x0177, 0x00000000);
        suspend;
      }
      /* global_address global_id=0x1E */
      if ((Actor.isDead() == 1) || (Ultima8Engine.getUnkCrusaderFlag() != 1)) {
        return;
      }
      local_04 = (1 + local_04);
    }
    spawn FREE.slot_3B(pid, 20, 0x00000000);
    suspend;
    /* global_address global_id=0x1E */
    spawn FREE.slot_3B(pid, 0x012C, 0x00000000);
    suspend;
    spawn FREE.slot_3B(pid, 10, 0x00000000);
    suspend;
    /* str_to_ptr  */
    /* free_stack_string value_u8=0x0 target=[SP+00h] */
    suspend;
    return;
  }
  return;
}
