function motion_enterFastArea() /* entry=89 class_id=0x01B7 slot=0x0F */
{
  var
    referent, /* [BP+00h] type=0x69 */
    trackedEnough, /* [BP-02h] type=0x69 */
    fram, /* [BP-04h] type=0x69 */
    movement, /* [BP-06h] type=0x69 */
    foundTarget, /* [BP-07h] type=0x62 */
    delay, /* [BP-09h] type=0x69 */
    iSeeYou, /* [BP-0Bh] type=0x69 */
    dir; /* [BP-0Dh] type=0x69 */

  entry:
    set_info(0x021B, *(arg_06));
    process_exclude();
    movement = 1;
    delay = ((5 - Intrinsic0029()) * 2);
    iSeeYou = ((5 - Intrinsic0029()) * 5);

  block_0112:
    suspend;
    spawn class_0A0C_slot_32(pid, delay, 0x00000000);
    suspend;
    /* global_address global_id=0x3C */
    /* global_address global_id=0x3C */
    dir = Intrinsic0027(Intrinsic0013(Item.legal_create(16, 0, 16)), Item.legal_create(arg_06), Intrinsic0013(arg_06));
    fram = Item.getFrame(arg_06);
    if (dir != fram) goto block_01DA;

  block_019C:
    trackedEnough = (1 + trackedEnough);
    if ((trackedEnough > iSeeYou) && (foundTarget != 0)) goto block_01D7;

  block_01BA:
    foundTarget = 1;
    spawn class_0A18_slot_20(0, *(arg_06), arg_06);

  block_01D7:
    goto block_02A1;

  block_01DA:
    if trackedEnough goto block_0207;

  block_01E2:
    if ((12 - dir) > fram) goto block_0200;

  block_01F6:
    movement = 1;
    goto block_0207;

  block_0200:
    movement = -1;

  block_0207:
    trackedEnough = 0;
    foundTarget = 0;
    if ((fram + movement) < 0) goto block_0253;

  block_0223:
    movement = 1;
    spawn class_0A0C_slot_32(pid, 30, 0x00000000);
    suspend;
    goto block_0291;

  block_0253:
    if ((fram + movement) > 15) goto block_0291;

  block_0261:
    movement = -1;
    spawn class_0A0C_slot_32(pid, 30, 0x00000000);
    suspend;
    goto block_0291;

  block_0291:

  block_02A1:
    goto block_0112;

  block_02A4:
    return;

}
