function conveyor_slot_20() /* entry=374 class_id=0x0A04 slot=0x20 */
{
  var
    referent, /* [BP+00h] type=0x69 */
    xdir, /* [BP+0Ah] type=0x62 */
    ydir, /* [BP+0Ch] type=0x62 */
    counter, /* [BP-02h] type=0x69 */
    areThereItems, /* [BP-03h] type=0x62 */
    cargo_item, /* [BP-05h] type=0x24 */
    a, /* [BP-06h] type=0x62 */
    b, /* [BP-07h] type=0x62 */
    t, /* [BP-09h] type=0x69 */
    wp; /* [BP-0Eh] type=0x24 */

  entry:
    set_info(0x0205, *(arg_06));
    set_info(0x0205, *(arg_06));
    counter = 0;
    counter = Item.getFrame(arg_06);
    if (AudioProcess.isSFXPlayingForObject(115, arg_06) != 0) goto block_013E;

  block_0131:

  block_013E:
    suspend;
    areThereItems = 0;
    if Item.getQHi(arg_06) goto block_019E;

  block_0161:
    counter = (counter - 1);
    if (xdir < 0) goto block_0183;

  block_0179:
    xdir = (xdir * -1);

  block_0183:
    if (ydir < 0) goto block_019B;

  block_0191:
    ydir = (ydir * -1);

  block_019B:
    goto block_01D8;

  block_019E:
    counter = (1 + counter);
    if (xdir > 0) goto block_01C0;

  block_01B6:
    xdir = (xdir * -1);

  block_01C0:
    if (ydir > 0) goto block_01D8;

  block_01CE:
    ydir = (ydir * -1);

  block_01D8:
    if (counter > 2) goto block_01ED;

  block_01E6:
    counter = 0;

  block_01ED:
    if (counter < 0) goto block_0202;

  block_01FB:
    counter = 2;

  block_0202:
    /* loopscr value_u8=0x24 */
    /* loop current_var=0xFB string_bytes=0x1 loop_type=0x6 */

  block_0212:
    if condition goto block_0304;

  block_0215:
    t = Item.getShape(cargo_item);
    if ((t != 0x0476) && (t != 0x04D0)) goto block_0300;

  block_0239:
    a = Item.IsOn(*(arg_06), cargo_item);
    wp = (Item.getX(cargo_item) + xdir);
    local_0C = (Item.getY(cargo_item) + ydir);
    local_0A = Item.getZ(cargo_item);
    if (!legalMoveToPoint(0, 1, wp, cargo_item)) goto block_02CB;

  block_029F:

  block_02CB:
    b = Item.IsOn(*(arg_06), cargo_item);
    areThereItems = 1;
    if ((a != 1) && (b != 0)) goto block_0300;

  block_02F5:

  block_0300:
    /* loopnext  */
    goto block_0212;

  block_0304:
    spawn FREE.waitNTimerTicks(pid, 2, 0x00000000);
    suspend;
    if (!areThereItems) goto block_0355;

  block_0335:
    goto block_0386;

  block_0355:
    if (AudioProcess.isSFXPlayingForObject(115, arg_06) != 0) goto block_0376;

  block_0369:

  block_0376:
    goto block_013E;

  block_0386:
    return;

}
