function door2_slot_29() /* entry=377 class_id=0x0A07 slot=0x29 */
{
  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_0F4B;

  block_0F45:
    goto block_10DE;

  block_0F4B:
    /* create_list element_size=0x2 count=0x7 */
    /* free_local_list bp_offset=0xFE target=[BP-02h] */
    doorList = 0x00C2;
    FREE.slot_3A(5, 0x00BE, 0x00BF, 0x00C0, 0x00C1, 0x00CA, doorList);
    /* free_stack_list value_u8=0x0 target=[SP+00h] */
    maxFrame = retval;
    counter = (maxFrame - 1);

  block_0F9E:
    if (counter != 0) goto block_10D4;

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

  block_0FE6:
    spawn FREE.waitNTimerTicks(pid, 3, 0x00000000);
    suspend;
    goto block_10C4;

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

  block_1030:
    if (counter < (maxFrame + 1)) goto block_10BA;

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

  block_10BA:
    /* word_to_dword  */
    /* pop_result  */
    goto block_10DE;

  block_10C4:
    counter = (counter - 1);
    goto block_0F9E;

  block_10D4:
    /* word_to_dword  */
    /* pop_result  */
    goto block_10DE;

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

}
