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 */

  entry:
    set_info(1, 0);
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x42 */
    /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */

  block_0585:
    if condition goto block_0593;

  block_0588:
    door = item;
    /* loopnext  */
    goto block_0585;

  block_0593:
    if (!door) goto block_05A4;

  block_059E:
    goto block_0E9C;

  block_05A4:
    if (Intrinsic0016(door) != 0x0189) goto block_0656;

  block_05BD:
    /* global_address global_id=0x3C */
    suspend;
    /* global_address global_id=0x3C */
    suspend;
    /* global_address global_id=0x3C */
    suspend;
    /* global_address global_id=0x3C */
    suspend;
    goto block_06EC;

  block_0656:
    /* global_address global_id=0x3C */
    suspend;
    /* global_address global_id=0x3C */
    suspend;
    /* global_address global_id=0x3C */
    suspend;
    /* global_address global_id=0x3C */
    suspend;

  block_06EC:
    /* 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 */

  block_0782:
    if condition goto block_0790;

  block_0785:
    post1 = item;
    /* loopnext  */
    goto block_0782;

  block_0790:
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x42 */
    /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */

  block_07B2:
    if condition goto block_07C0;

  block_07B5:
    post2 = item;
    /* loopnext  */
    goto block_07B2;

  block_07C0:
    if (post1 && post2) goto block_09BA;

  block_07D3:
    spawn class_0A0C_slot_32(pid, 30, 0x00000000);
    suspend;
    /* global_address global_id=0x3C */
    /* global_address global_id=0x3C */

  block_083C:
    /* global_address global_id=0x3C */
    if Item.touch(0x00F4) goto block_0878;

  block_084F:
    spawn class_0A0C_slot_32(pid, 2, 0x00000000);
    suspend;
    goto block_083C;

  block_0878:
    /* global_address global_id=0x3C */
    if dir goto block_094A;

  block_088F:
    counter = 5;

  block_0896:
    if (counter <= 7) goto block_08F9;

  block_089E:
    spawn class_0A0C_slot_32(pid, 30, 0x00000000);
    suspend;
    counter = (1 + counter);
    goto block_0896;

  block_08F9:
    spawn class_0A0C_slot_32(pid, 30, 0x00000000);
    suspend;
    goto block_09BA;

  block_094A:
    counter = 1;

  block_0951:
    if (counter <= 4) goto block_09BA;

  block_0959:
    spawn class_0A0C_slot_32(pid, 30, 0x00000000);
    suspend;
    counter = (1 + counter);
    goto block_0951;

  block_09BA:
    spawn class_0A0C_slot_32(pid, 30, 0x00000000);
    suspend;
    suspend;
    spawn class_0A0C_slot_3C(pid, 0x00000000);
    suspend;
    /* global_address global_id=0x3C */
    if Item.getType(mapNum) goto block_0A39;

  block_0A32:

  block_0A39:
    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 */

  block_0A79:
    if condition goto block_0AEB;

  block_0A7C:
    /* global_address global_id=0x3C */
    /* global_address global_id=0x3C */
    /* global_address global_id=0x3C */
    suspend;
    class_0A0C_slot_33(12, item);
    /* loopnext  */
    goto block_0A79;

  block_0AEB:
    if (eggNum != 18) goto block_0B23;

  block_0AFB:
    /* global_address global_id=0x3C */
    suspend;

  block_0B23:
    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 */

  block_0B83:
    if condition goto block_0B91;

  block_0B86:
    post1 = item;
    /* loopnext  */
    goto block_0B83;

  block_0B91:
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x42 */
    /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */

  block_0BB3:
    if condition goto block_0BC1;

  block_0BB6:
    post2 = item;
    /* loopnext  */
    goto block_0BB3;

  block_0BC1:
    if (post1 && post2) goto block_0D87;

  block_0BD4:
    /* global_address global_id=0x3C */
    /* global_address global_id=0x3C */

  block_0BEF:
    /* global_address global_id=0x3C */
    if Item.touch(0x00F2) goto block_0C2B;

  block_0C02:
    spawn class_0A0C_slot_32(pid, 2, 0x00000000);
    suspend;
    goto block_0BEF;

  block_0C2B:
    /* global_address global_id=0x3C */
    if dir goto block_0CC9;

  block_0C42:
    counter = 1;

  block_0C63:
    if (counter <= 4) goto block_0CC6;

  block_0C6B:
    spawn class_0A0C_slot_32(pid, 30, 0x00000000);
    suspend;
    counter = (1 + counter);
    goto block_0C63;

  block_0CC6:
    goto block_0D39;

  block_0CC9:
    counter = 0;

  block_0CD0:
    if (counter <= 3) goto block_0D39;

  block_0CD8:
    spawn class_0A0C_slot_32(pid, 30, 0x00000000);
    suspend;
    counter = (1 + counter);
    goto block_0CD0;

  block_0D39:
    spawn class_0A0C_slot_32(pid, 30, 0x00000000);
    suspend;

  block_0D87:
    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 */

  block_0DCD:
    if condition goto block_0DFE;

  block_0DD0:
    door = item;
    spawn class_0A06_slot_21(pid, 1, door);
    suspend;
    /* loopnext  */
    goto block_0DCD;

  block_0DFE:
    /* 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 */

  block_0E9C:
    return;

}
