function door2_slot_2B() /* entry=377 class_id=0x0A07 slot=0x2B */
{
  var
    referent, /* [BP+00h] type=0x69 */
    doorList, /* [BP-02h] type=0x6C */
    counter, /* [BP-04h] type=0x69 */
    maxFrame; /* [BP-06h] type=0x69 */

  entry:
    set_info(0x021B, 0);
    if (Item.getStatus(arg_06) & 4) goto block_12A4;

  block_129E:
    goto block_1437;

  block_12A4:
    /* create_list element_size=0x2 count=0x7 */
    /* free_local_list bp_offset=0xFE target=[BP-02h] */
    doorList = 0x00CB;
    FREE.slot_3A(123, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, doorList);
    /* free_stack_list value_u8=0x0 target=[SP+00h] */
    maxFrame = retval;
    counter = (maxFrame - 1);

  block_12F7:
    if (counter != 0) goto block_142D;

  block_12FF:
    FREE.slot_2D(Item.getZ(arg_06), (Item.getY(arg_06) + 16), Item.getX(arg_06), Item.getFrame(arg_06), doorList, counter, list_element(size=0x2), *(arg_06));
    if retval goto block_1368;

  block_133F:
    spawn FREE.waitNTimerTicks(pid, 3, 0x00000000);
    suspend;
    goto block_141D;

  block_1368:
    counter = (1 + counter);
    counter = (1 + counter);

  block_1389:
    if (counter < (maxFrame + 1)) goto block_1413;

  block_139A:
    spawn FREE.waitNTimerTicks(doorList, pid, 5, 0x00000000);
    suspend;
    counter = (1 + counter);
    goto block_1389;

  block_1413:
    /* word_to_dword  */
    /* pop_result  */
    goto block_1437;

  block_141D:
    counter = (counter - 1);
    goto block_12F7;

  block_142D:
    /* word_to_dword  */
    /* pop_result  */
    goto block_1437;

  block_1437:
    /* free_local_list bp_offset=0xFE target=[BP-02h] */
    return;

}
