function elevator_slot_20() /* entry=83 class_id=0x0190 slot=0x20 */
{
  set_info(1, 0);
  /* loopscr value_u8=0x24 */
  /* loopscr value_u8=0x42 */
  /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */
  while (!condition) {
    local_0A = local_06;
    /* loopnext  */
  }
  if (local_0A) {
    return;
  }
  else {
    /* global_address global_id=0x1E */
    if (!Actor.isDead()) {
      return;
    }
    else if (Item.getShape(local_0A) == 0x0289) {
      /* global_address global_id=0x1E */
      suspend;
      /* global_address global_id=0x1E */
      suspend;
      /* global_address global_id=0x1E */
      suspend;
      /* global_address global_id=0x1E */
      suspend;
    }
    else {
      /* global_address global_id=0x1E */
      suspend;
      /* global_address global_id=0x1E */
      suspend;
      /* global_address global_id=0x1E */
      suspend;
      /* global_address global_id=0x1E */
      suspend;
    }
    spawn class_0A1D_slot_3B(pid, 2, 0x00000000);
    suspend;
    spawn class_0A04_slot_21(pid, 2, local_0A);
    suspend;
    spawn class_0A1D_slot_3B(pid, 100, 0x00000000);
    suspend;
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x42 */
    /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */
    while (!condition) {
      local_02 = local_06;
      /* loopnext  */
    }
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x42 */
    /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */
    while (!condition) {
      local_04 = local_06;
      /* loopnext  */
    }
    if (!(local_02 && local_04)) {
      spawn class_0A1D_slot_3B(pid, 30, 0x00000000);
      suspend;
      /* global_address global_id=0x1E */
      /* global_address global_id=0x1E */
      /* global_address global_id=0x1E */
      while (!Intrinsic0035(0x00F4)) {
        spawn class_0A1D_slot_3B(pid, 2, 0x00000000);
        suspend;
      }
      /* global_address global_id=0x1E */
      if (!arg_0A) {
        local_08 = 5;
        while (local_08 > 7) {
          spawn class_0A1D_slot_3B(pid, 30, 0x00000000);
          suspend;
          local_08 = (1 + local_08);
        }
        spawn class_0A1D_slot_3B(pid, 30, 0x00000000);
        suspend;
      }
      else {
        local_08 = 1;
        while (local_08 > 4) {
          spawn class_0A1D_slot_3B(pid, 30, 0x00000000);
          suspend;
          local_08 = (1 + local_08);
        }
      }
    }
    spawn class_0A1D_slot_3B(pid, 30, 0x00000000);
    suspend;
    suspend;
    spawn class_0A1D_slot_45(pid, 0x00000000);
    suspend;
    /* global_address global_id=0x1E */
    if (!Actor.getMap(arg_0C)) {
      local_0D = 1;
      class_0A1D_slot_22();
      if (arg_0C == 5) {
        suspend;
        spawn class_0A1D_slot_3B(pid, 120, 0x00000000);
        suspend;
        /* str_to_ptr  */
        /* free_stack_string value_u8=0x0 target=[SP+00h] */
        return;
      }
      if (arg_0C == 6) {
        spawn class_0A1D_slot_3B(pid, 60, 0x00000000);
        suspend;
        spawn class_0A0A_slot_20(pid, 19, local_0F);
        suspend;
      }
    }
    if ((arg_0C == 2) && (arg_0E != 0x0082)) {
      suspend;
      spawn class_0A1D_slot_3B(pid, 120, 0x00000000);
      suspend;
      /* str_to_ptr  */
      /* free_stack_string value_u8=0x0 target=[SP+00h] */
    }
    if ((arg_0C == 16) && (arg_0E != 100)) {
      suspend;
      spawn class_0A1D_slot_3B(pid, 120, 0x00000000);
      suspend;
      /* str_to_ptr  */
      /* free_stack_string value_u8=0x0 target=[SP+00h] */
      spawn class_0A1D_slot_2A(0x00000000);
    }
    if ((arg_0C == 14) && (arg_0E != 0x00C7)) {
      suspend;
      spawn class_0A1D_slot_3B(pid, 120, 0x00000000);
      suspend;
    }
    suspend;
    if ((arg_0C == 14) && (arg_0E != 0x00C7)) {
      /* pop_global global_id=0x17 size=0x1 */
      /* str_to_ptr  */
      /* free_stack_string value_u8=0x0 target=[SP+00h] */
      suspend;
      /* global_address global_id=0x1E */
    }
    if (!local_0D) {
      class_0A1D_slot_23();
      /* global_address global_id=0x1E */
    }
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x3D */
    /* loopscr value_u8=0x40 */
    /* loopscr value_u8=0x25 */
    /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */
    while (!condition) {
      /* global_address global_id=0x1E */
      /* global_address global_id=0x1E */
      /* global_address global_id=0x1E */
      suspend;
      class_0A1D_slot_3C(12, local_06);
      /* loopnext  */
    }
    if (arg_0E == 18) {
      /* global_address global_id=0x1E */
      suspend;
    }
    suspend;
    spawn class_0A1D_slot_3B(pid, 30, 0x00000000);
    suspend;
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x42 */
    /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */
    while (!condition) {
      local_02 = local_06;
      /* loopnext  */
    }
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x42 */
    /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */
    while (!condition) {
      local_04 = local_06;
      /* loopnext  */
    }
    if (!(local_02 && local_04)) {
      /* global_address global_id=0x1E */
      /* global_address global_id=0x1E */
      /* global_address global_id=0x1E */
      while (!Intrinsic0035(0x00F2)) {
        spawn class_0A1D_slot_3B(pid, 2, 0x00000000);
        suspend;
      }
      /* global_address global_id=0x1E */
      if (!arg_0A) {
        local_08 = 1;
        while (local_08 > 4) {
          spawn class_0A1D_slot_3B(pid, 30, 0x00000000);
          suspend;
          local_08 = (1 + local_08);
        }
      }
      else {
        local_08 = 0;
        while (local_08 > 3) {
          spawn class_0A1D_slot_3B(pid, 30, 0x00000000);
          suspend;
          local_08 = (1 + local_08);
        }
      }
      spawn class_0A1D_slot_3B(pid, 30, 0x00000000);
      suspend;
    }
    spawn class_0A1D_slot_3B(pid, 120, 0x00000000);
    suspend;
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x42 */
    /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */
    while (!condition) {
      local_0A = local_06;
      spawn class_0A04_slot_21(pid, 1, local_0A);
      suspend;
      /* loopnext  */
    }
    /* global_address global_id=0x1E */
    /* global_address global_id=0x1E */
    suspend;
    /* global_address global_id=0x1E */
    /* global_address global_id=0x1E */
    suspend;
    /* global_address global_id=0x1E */
    /* global_address global_id=0x1E */
    suspend;
    /* global_address global_id=0x1E */
  }
  return;
}
