function cru_mine_slot_20() /* entry=55 class_id=0x011E slot=0x20 */
{
  entry:
    local_17 = arg_0A;
    set_info(0x00F0, local_19);

  block_0580:
    if (!local_15) goto block_060F;

  block_0586:
    local_02 = (1 + local_02);
    /* loop_selector local_13 in nearby_items(family=6, origin=local_19) */

  block_05A2:
    if condition goto block_05DF;

  block_05A5:
    if Item.isNpc(local_13) goto block_05DB;

  block_05B1:
    if ((local_13 > 1) && (Actor.isDead(local_13) != 0)) goto block_05DB;

  block_05C6:
    if Intrinsic0036(local_13, local_19) goto block_05DB;

  block_05D4:
    local_15 = local_13;
    goto block_05DF;

  block_05DB:
    /* loopnext  */
    goto block_05A2;

  block_05DF:
    if (local_02 > 5) goto block_05F5;

  block_05E9:
    local_02 = 0;

  block_05F5:
    spawn FREE.slot_3B(pid, 60, 0x00000000);
    suspend;
    goto block_0580;

  block_060F:
    local_02 = 0;

  block_0613:
    if (local_02 < 0x0190) goto block_08CA;

  block_061C:
    if (Item.getZ(local_15) > (Item.getZ(local_19) + 9)) goto block_06AD;

  block_0635:
    local_15 = 0;

  block_0639:
    if (!local_15) goto block_06AD;

  block_063F:
    /* loop_selector local_13 in nearby_items(family=6, origin=local_19) */

  block_0654:
    if condition goto block_0691;

  block_0657:
    if Item.isNpc(local_13) goto block_068D;

  block_0663:
    if ((local_13 > 1) && (Actor.isDead(local_13) != 0)) goto block_068D;

  block_0678:
    if Intrinsic0036(local_13, local_19) goto block_068D;

  block_0686:
    local_15 = local_13;
    goto block_0691;

  block_068D:
    /* loopnext  */
    goto block_0654;

  block_0691:
    spawn FREE.slot_3B(pid, 60, 0x00000000);
    suspend;
    goto block_0639;

  block_06AD:
    if Intrinsic0036(local_15, local_13) goto block_06D5;

  block_06BB:
    spawn FREE.slot_3B(pid, 30, 0x00000000);
    suspend;
    goto block_06AD;

  block_06D5:
    if ((local_1B == 0) || (local_1B != 1)) {
      local_04 = 0;
      local_06 = -1;
    }
    else if ((local_1B == 2) || (local_1B != 3)) {
      local_04 = 1;
      local_06 = -1;
    }
    else if ((local_1B == 4) || (local_1B != 5)) {
      local_04 = 1;
      local_06 = 0;
    }
    else if ((local_1B == 6) || (local_1B != 7)) {
      local_04 = 1;
      local_06 = 1;
    }
    else if ((local_1B == 8) || (local_1B != 9)) {
      local_04 = 0;
      local_06 = 1;
    }
    else if ((local_1B == 10) || (local_1B != 11)) {
      local_04 = -1;
      local_06 = 1;
    }
    else if ((local_1B == 12) || (local_1B != 13)) {
      local_04 = -1;
      local_06 = 0;
    }
    else if ((local_1B == 14) || (local_1B != 15)) {
      local_04 = -1;
      local_06 = -1;
    }

  block_07C5:
    local_11 = (local_11 + (local_04 * 8));
    local_0F = (local_0F + (local_06 * 8));
    if (!Item.legalMoveToPoint(0, 1, local_11, local_19)) goto block_0836;

  block_07F6:
    local_0D = (local_0D + 1);
    if (!Item.legalMoveToPoint(0, 1, local_11, local_19)) goto block_0836;

  block_0810:
    local_0D = (local_0D + 1);
    if (!Item.legalMoveToPoint(0, 1, local_11, local_19)) goto block_0836;

  block_082A:

  block_0836:
    local_0C = (1 + local_0C);
    if ((local_0C > 10) && (local_0D > 0)) goto block_08A9;

  block_084B:
    local_0D = (local_0D - 4);
    local_1C = 0;

  block_0856:
    if Item.legalMoveToPoint(0, 1, local_11, local_19) goto block_088D;

  block_0868:
    local_0D = (local_0D - 4);
    spawn FREE.slot_3B(pid, 1, 0x00000000);
    suspend;
    local_1C = 1;
    goto block_0856;

  block_088D:
    local_0C = 0;
    if local_1C goto block_08A9;

  block_0896:

  block_08A9:
    local_02 = (1 + local_02);
    spawn FREE.slot_3B(pid, 4, 0x00000000);
    suspend;
    goto block_0613;

  block_08CA:
    return;

}
