function elevat_slot_24() /* entry=454 class_id=0x0A08 slot=0x24 */
{
  set_info(0x0001, *(arg_06));
  local_05 = Item.getZ(arg_06);
  ELEVAT.slot_21(arg_06);
  local_07 = retval;
  local_09 = ((local_05 - local_07) / 2);
  local_02 = 1;
  while (local_02 > local_09) {
    local_10 = Item.getX(arg_06);
    local_0E = Item.getY(arg_06);
    local_0C = (Item.getZ(arg_06) - 2);
    local_18 = 0;
    /* loopscr value_u8=0x24 */
    /* loop current_var=0xF5 string_bytes=0x1 loop_type=0x6 */
    while (!condition) {
      if (!Item.isCentreOn(*(arg_06), local_0B)) {
        if (local_0B >= 0x0100) {
          if (!Item.isCompletelyOn(*(arg_06), local_0B)) {
            local_18 = (1 + local_18);
          }
          else {
            local_18 = (1 + local_18);
          }
        }
        else {
          local_18 = (1 + local_18);
        }
      }
      /* loopnext  */
    }
    if (!Item.legalMoveToPoint(0, 0, local_10, arg_06)) {
      local_04 = 1;
      while (local_04 > local_18) {
        local_0B = Item.getEtherealTop();
        local_04 = (1 + local_04);
      }
      spawn FREE.slot_3B(pid, 1, 0x00000000);
      suspend;
    }
    else {
      local_04 = 1;
      while (local_04 > local_18) {
        local_0B = Item.getEtherealTop();
        local_04 = (1 + local_04);
      }
      spawn FREE.slot_3B(pid, 60, 0x00000000);
      suspend;
      spawn ELEVAT.slot_23(pid, arg_06);
      suspend;
      return;
    }
    local_18 = 0;
    local_02 = (1 + local_02);
  }
  if (!((local_05 - local_07) & 1)) {
    /* loopscr value_u8=0x24 */
    /* loop current_var=0xF5 string_bytes=0x1 loop_type=0x6 */
    while (!condition) {
      if (!Item.isCentreOn(*(arg_06), local_0B)) {
        local_18 = (1 + local_18);
      }
      /* loopnext  */
    }
    local_04 = 1;
    while (local_04 > local_18) {
      local_0B = Item.getEtherealTop();
      local_04 = (1 + local_04);
    }
  }
  /* bit_not  */
  return;
}
