function miss5_slot_20() /* entry=357 class_id=0x0911 slot=0x20 */
{
  var
    referent, /* [BP+00h] type=0x69 */
    counter, /* [BP-02h] type=0x69 */
    item, /* [BP-04h] type=0x24 */
    door, /* [BP-06h] type=0x24 */
    egg, /* [BP-08h] type=0x24 */
    willmar, /* [BP-0Ah] type=0x24 */
    post1, /* [BP-0Ch] type=0x24 */
    post2, /* [BP-0Eh] type=0x24 */
    floor, /* [BP-10h] type=0x24 */
    dir; /* [BP-12h] type=0x69 */

  set_info(0x0001, *(arg_06));
  egg = *(arg_06);
  set_info(1, 0);
  /* global_address global_id=0x3C */
  while (!Actor.isBusy()) {
    spawn class_0A0C_slot_32(pid, 2, 0x00000000);
    suspend;
  }
  /* global_address global_id=0x3C */
  suspend;
  door = 0;
  /* loopscr value_u8=0x24 */
  /* loopscr value_u8=0x3D */
  /* loopscr value_u8=0x40 */
  /* loopscr value_u8=0x25 */
  /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */
  while (!condition) {
    if (Item.getQLo(item) == 1) {
      door = item;
    }
    /* loopnext  */
  }
  if (!door) {
    /* global_address global_id=0x3C */
    if (Actor.getLastAnimSet() == 3) {
      counter = 2;
    }
    else {
      counter = 3;
    }
    /* global_address global_id=0x3C */
    spawn class_0A11_slot_22(counter, 0);
    /* global_address global_id=0x3C */
    suspend;
    spawn class_0A0C_slot_32(pid, 60, 0x00000000);
    suspend;
    /* global_address global_id=0x3C */
    /* 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=0xFC string_bytes=0x6 loop_type=0x2 */
    while (!condition) {
      willmar = item;
      /* loopnext  */
    }
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x3D */
    /* loopscr value_u8=0x40 */
    /* loopscr value_u8=0x25 */
    /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */
    while (!condition) {
      dir = Item.getQHi(item);
      floor = item;
      /* loopnext  */
    }
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x42 */
    /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */
    while (!condition) {
      post1 = item;
      /* loopnext  */
    }
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x42 */
    /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */
    while (!condition) {
      post2 = item;
      /* loopnext  */
    }
    if (!(post1 && post2)) {
      spawn class_0A0C_slot_32(pid, 60, 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, 60, 0x00000000);
    suspend;
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x42 */
    /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */
    while (!condition) {
      door = item;
      spawn class_0A06_slot_21(pid, 1, door);
      suspend;
      /* loopnext  */
    }
    spawn class_0A11_slot_21(pid, 4, willmar);
    suspend;
    suspend;
    /* global_address global_id=0x3C */
    /* global_address global_id=0x3C */
    suspend;
    /* str_to_ptr  */
    /* free_stack_string value_u8=0x4 target=[SP+04h] */
    suspend;
    suspend;
    spawn class_0A11_slot_21(pid, 2, willmar);
    suspend;
    suspend;
    spawn class_0A06_slot_21(pid, 1, door);
    suspend;
    /* global_address global_id=0x3C */
    /* global_address global_id=0x3C */
    suspend;
    spawn class_0A0C_slot_32(pid, 30, 0x00000000);
    suspend;
    spawn class_0A11_slot_21(pid, 2, willmar);
    suspend;
    suspend;
    spawn class_0A06_slot_21(pid, 2, door);
    suspend;
    if (!(post1 && post2)) {
      spawn class_0A0C_slot_32(pid, 60, 0x00000000);
      suspend;
      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;
    }
  }
  return;
}
