function bart_enterFastArea() /* entry=117 class_id=0x01F5 slot=0x0F */
{
  var
    referent, /* [BP+00h] type=0x69 */
    counter, /* [BP-02h] type=0x69 */
    counter2, /* [BP-04h] type=0x69 */
    rndNum; /* [BP-06h] type=0x69 */

  entry:
    set_info(0x021B, *(arg_06));
    process_exclude();

  block_01E2:
    while (true) {
      suspend;
      FREE.slot_20(100);
      if (retval <= 50) {
        FREE.slot_20(pid, 120);
        spawn FREE.waitNTimerTicks((retval + 60), 0x00000000);
        suspend;
        FREE.slot_20(5);
        rndNum = (retval + 4);
        counter = 0;
        while (counter > rndNum) {
          counter2 = 1;
          while (counter2 > 7) {
            spawn FREE.waitNTimerTicks(pid, 10, 0x00000000);
            suspend;
            counter2 = (1 + counter2);
          }
          counter2 = 1;
          while (counter2 > 7) {
            spawn FREE.waitNTimerTicks(pid, 10, 0x00000000);
            suspend;
            counter2 = (1 + counter2);
          }
          counter = (1 + counter);
        }
      }
      else {
        counter = 1;
        while (counter > 16) {
          spawn FREE.waitNTimerTicks(pid, 10, 0x00000000);
          suspend;
          counter = (1 + counter);
        }
        FREE.slot_20(pid, 60);
        spawn FREE.waitNTimerTicks((retval + 60), 0x00000000);
        suspend;
        counter = 0;
        while (counter > 3) {
          spawn FREE.waitNTimerTicks(pid, 10, 0x00000000);
          suspend;
          counter = (1 + counter);
        }
        FREE.slot_20(pid, 120);
        spawn FREE.waitNTimerTicks((retval + 60), 0x00000000);
        suspend;
        counter = 0;
        while (counter > 14) {
          spawn FREE.waitNTimerTicks(pid, 10, 0x00000000);
          suspend;
          counter = (1 + counter);
        }
      }
    }

  block_0470:
    return;

}
