function miss6_slot_20() /* entry=358 class_id=0x0912 slot=0x20 */
{
  var
    referent, /* [BP+00h] type=0x69 */
    snell, /* [BP-02h] type=0x24 */
    n, /* [BP-04h] type=0x24 */
    item, /* [BP-06h] type=0x24 */
    door, /* [BP-08h] type=0x24 */
    doorX; /* [BP-0Ah] type=0x69 */

  set_info(0x0001, *(arg_06));
  /* global_address global_id=0x3C */
  while (!Actor.isBusy()) {
    spawn FREE.waitNTimerTicks(pid, 2, 0x00000000);
    suspend;
  }
  for n in nearby_items(shape=0x04DC, origin=global[0x003C]) {
    /* loopnext  */
  }
  if (!snell) {
    suspend;
    door = 0;
    /* loop_selector item in nearby_items(shape=door_shape_0095, origin=global[0x003C]) */
    while (!condition) {
      if (Item.getQLo(item) == 19) {
        door = item;
        spawn DOOR.slot_20(pid, door);
        suspend;
        doorX = Item.getX(door);
      }
      /* loopnext  */
    }
    if (door) {
      for item in nearby_items(shape=0x0493, origin=global[0x003C]) {
        door = item;
        spawn DOOR.slot_20(pid, door);
        suspend;
        doorX = Item.getX(door);
        /* loopnext  */
      }
    }
    /* global_address global_id=0x3C */
    if (Item.getX() <= doorX) {
      /* global_address global_id=0x3C */
      spawn NPC.slot_22(pid, 1, 12);
      suspend;
    }
    else {
      /* global_address global_id=0x3C */
      if (Item.getX() >= (doorX - 64)) {
        /* global_address global_id=0x3C */
        spawn NPC.slot_22(pid, 1, 4);
        suspend;
      }
    }
    /* global_address global_id=0x3C */
    spawn NPC.slot_22(pid, 4, 0);
    suspend;
    /* global_address global_id=0x3C */
    spawn NPC.slot_22(pid, 2, 14);
    suspend;
    /* global_address global_id=0x3C */
    /* global_address global_id=0x3C */
    spawn NPC.slot_22(pid, 2, 4, snell);
    suspend;
    spawn NPC.slot_22(pid, 1, 6, snell);
    suspend;
    suspend;
    suspend;
    spawn FREE.waitNTimerTicks(pid, 60, 0x00000000);
    suspend;
    /* global_address global_id=0x3C */
    suspend;
    /* str_to_ptr  */
    /* free_stack_string value_u8=0x4 target=[SP+04h] */
    suspend;
    /* str_to_ptr  */
    /* free_stack_string value_u8=0x4 target=[SP+04h] */
    suspend;
    /* str_to_ptr  */
    /* free_stack_string value_u8=0x4 target=[SP+04h] */
    suspend;
    spawn FREE.waitNTimerTicks(pid, 60, 0x00000000);
    suspend;
    spawn NPC.slot_22(pid, 1, 4, snell);
    suspend;
    spawn NPC.slot_22(pid, 1, 2, snell);
    suspend;
    spawn NPC.slot_22(pid, 1, 4, snell);
    suspend;
    suspend;
    spawn FREE.waitNTimerTicks(pid, 60, 0x00000000);
    suspend;
    spawn NPC.slot_24(pid, snell);
    suspend;
    /* global_address global_id=0x3C */
    suspend;
    /* pop_global global_id=0x25 size=0x1 */
  }
  return;
}
