function elevator_slot_20() /* entry=124 class_id=0x021E slot=0x20 */
{
  var
    referent, /* [BP+00h] type=0x69 */
    dir, /* [BP+0Ah] type=0x69 */
    mapNum, /* [BP+0Ch] type=0x69 */
    eggNum, /* [BP+0Eh] type=0x69 */
    post1, /* [BP-02h] type=0x24 */
    post2, /* [BP-04h] type=0x24 */
    item, /* [BP-06h] type=0x24 */
    counter, /* [BP-08h] type=0x69 */
    door, /* [BP-0Ah] type=0x24 */
    door1; /* [BP-0Ch] type=0x24 */

  set_info(1, 0);
  /* loopscr value_u8=0x24 */
  /* loopscr value_u8=0x42 */
  /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */
  while (!condition) {
    door = item;
    /* loopnext  */
  }
  if (door) {
    return;
  }
  else if (Item.getShape(door) == 0x0189) {
    /* global_address global_id=0x3C */
    suspend;
    /* global_address global_id=0x3C */
    suspend;
    /* global_address global_id=0x3C */
    suspend;
    /* global_address global_id=0x3C */
    suspend;
  }
  else {
    /* global_address global_id=0x3C */
    suspend;
    /* global_address global_id=0x3C */
    suspend;
    /* global_address global_id=0x3C */
    suspend;
    /* global_address global_id=0x3C */
    suspend;
  }
  /* global_address global_id=0x3C */
  spawn class_0A0C_slot_32(pid, 2, 0x00000000);
  suspend;
  spawn class_0A06_slot_21(pid, 2, door);
  suspend;
  /* loopscr value_u8=0x24 */
  /* loopscr value_u8=0x42 */
  /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */
  while (!condition) {
    post1 = item;
    /* loopnext  */
  }
  /* loopscr value_u8=0x24 */
  /* loopscr value_u8=0x42 */
  /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */
  while (!condition) {
    post2 = item;
    /* loopnext  */
  }
  if (!(post1 && post2)) {
    spawn class_0A0C_slot_32(pid, 30, 0x00000000);
    suspend;
    /* global_address global_id=0x3C */
    /* global_address global_id=0x3C */
    /* global_address global_id=0x3C */
    while (!AudioProcess.isSFXPlayingForObject(0x00F4)) {
      spawn class_0A0C_slot_32(pid, 2, 0x00000000);
      suspend;
    }
    /* global_address global_id=0x3C */
    if (!dir) {
      counter = 5;
      while (counter > 7) {
        spawn class_0A0C_slot_32(pid, 30, 0x00000000);
        suspend;
        counter = (1 + counter);
      }
      spawn class_0A0C_slot_32(pid, 30, 0x00000000);
      suspend;
    }
    else {
      counter = 1;
      while (counter > 4) {
        spawn class_0A0C_slot_32(pid, 30, 0x00000000);
        suspend;
        counter = (1 + counter);
      }
    }
  }
  spawn class_0A0C_slot_32(pid, 30, 0x00000000);
  suspend;
  suspend;
  spawn class_0A0C_slot_3C(pid, 0x00000000);
  suspend;
  /* global_address global_id=0x3C */
  suspend;
  /* 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=0x3C */
    /* global_address global_id=0x3C */
    /* global_address global_id=0x3C */
    suspend;
    class_0A0C_slot_33(12, item);
    /* loopnext  */
  }
  if (eggNum == 18) {
    /* global_address global_id=0x3C */
    suspend;
  }
  suspend;
  spawn class_0A0C_slot_32(pid, 30, 0x00000000);
  suspend;
  /* loopscr value_u8=0x24 */
  /* loopscr value_u8=0x42 */
  /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */
  while (!condition) {
    post1 = item;
    /* loopnext  */
  }
  /* loopscr value_u8=0x24 */
  /* loopscr value_u8=0x42 */
  /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */
  while (!condition) {
    post2 = item;
    /* loopnext  */
  }
  if (!(post1 && post2)) {
    /* global_address global_id=0x3C */
    /* global_address global_id=0x3C */
    /* global_address global_id=0x3C */
    while (!AudioProcess.isSFXPlayingForObject(0x00F2)) {
      spawn class_0A0C_slot_32(pid, 2, 0x00000000);
      suspend;
    }
    /* global_address global_id=0x3C */
    if (!dir) {
      counter = 1;
      while (counter > 4) {
        spawn class_0A0C_slot_32(pid, 30, 0x00000000);
        suspend;
        counter = (1 + counter);
      }
    }
    else {
      counter = 0;
      while (counter > 3) {
        spawn class_0A0C_slot_32(pid, 30, 0x00000000);
        suspend;
        counter = (1 + counter);
      }
    }
    spawn class_0A0C_slot_32(pid, 30, 0x00000000);
    suspend;
  }
  spawn class_0A0C_slot_32(pid, 120, 0x00000000);
  suspend;
  /* loopscr value_u8=0x24 */
  /* loopscr value_u8=0x42 */
  /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */
  while (!condition) {
    door = item;
    spawn class_0A06_slot_21(pid, 1, door);
    suspend;
    /* loopnext  */
  }
  /* global_address global_id=0x3C */
  /* global_address global_id=0x3C */
  suspend;
  /* global_address global_id=0x3C */
  /* global_address global_id=0x3C */
  suspend;
  /* global_address global_id=0x3C */
  /* global_address global_id=0x3C */
  suspend;
  /* global_address global_id=0x3C */
  return;
}
