function camerans_enterFastArea() /* entry=98 class_id=0x01B8 slot=0x0F */
{
  entry:
    set_info(0x021B, *(arg_06));
    process_exclude();
    local_02 = ((5 - World.gameDifficulty()) * 5);
    local_04 = (5 - (World.gameDifficulty() * 5));
    if (Item.getFrame(arg_06) != 9) goto block_010B;

  block_0108:
    goto block_036C;

  block_010B:
    if (!Item.isEntirelyOnScreen(arg_06)) goto block_0132;

  block_0118:
    spawn class_0A1D_slot_3B(pid, local_02, 0x00000000);
    suspend;
    goto block_010B;

  block_0132:
    local_0C = 0;
    local_0E = 1;

  block_013A:
    suspend;
    local_12 = 0;

  block_013F:
    if (!Item.isEntirelyOnScreen(arg_06)) goto block_0166;

  block_014C:
    spawn class_0A1D_slot_3B(pid, local_02, 0x00000000);
    suspend;
    goto block_013F;

  block_0166:
    spawn class_0A1D_slot_3B(pid, local_02, 0x00000000);
    suspend;
    if (World.getControlledNPCNum() != 0) goto block_0192;

  block_0188:
    local_10 = World.getControlledNPCNum();
    goto block_0196;

  block_0192:
    local_10 = 1;

  block_0196:
    local_14 = Item.getClosestDirectionInRange(13, 3, 16, Item.getY(local_10), Item.getX(local_10), Item.getY(arg_06), Item.getX(arg_06));
    local_08 = Item.getFrame(arg_06);
    if ((12 - local_14) != local_08) goto block_02CB;

  block_01DF:
    local_12 = Intrinsic0036(local_10, arg_06);
    if local_12 goto block_025A;

  block_01F1:
    local_0C = 1;
    local_06 = (1 + local_06);
    if ((local_06 > local_04) && (!(Item.getStatus(arg_06) & 4))) goto block_0257;

  block_0212:
    spawn class_0A1D_slot_3B(pid, local_02, 0x00000000);
    suspend;
    spawn class_0A17_slot_20(pid, 0, *(arg_06), arg_06);
    suspend;
    class_0A0C_slot_24(4, arg_06);

  block_0257:
    goto block_02C8;

  block_025A:
    local_0C = 0;
    if ((local_08 + local_0E) < 0) goto block_0287;

  block_0269:
    local_0E = 1;
    spawn class_0A1D_slot_3B(pid, 30, 0x00000000);
    suspend;
    goto block_02B0;

  block_0287:
    if ((local_08 + local_0E) > 8) goto block_02B0;

  block_0292:
    local_0E = -1;
    spawn class_0A1D_slot_3B(pid, 30, 0x00000000);
    suspend;
    goto block_02B0;

  block_02B0:

  block_02C8:
    goto block_0369;

  block_02CB:
    if (local_06 && local_0C) goto block_02EC;

  block_02D3:
    if ((12 - local_14) > local_08) goto block_02E5;

  block_02DE:
    local_0E = 1;
    goto block_02E9;

  block_02E5:
    local_0E = -1;

  block_02E9:
    goto block_02FF;

  block_02EC:
    local_06 = 0;
    local_0C = 0;
    /* bit_not  */

  block_02FF:
    if ((local_08 + local_0E) < 0) goto block_0328;

  block_030A:
    local_0E = 1;
    spawn class_0A1D_slot_3B(pid, 30, 0x00000000);
    suspend;
    goto block_0351;

  block_0328:
    if ((local_08 + local_0E) > 8) goto block_0351;

  block_0333:
    local_0E = -1;
    spawn class_0A1D_slot_3B(pid, 30, 0x00000000);
    suspend;
    goto block_0351;

  block_0351:

  block_0369:
    goto block_013A;

  block_036C:
    return;

}
