function spider_slot_24() /* entry=465 class_id=0x0A13 slot=0x24 */
{
  entry:
    set_info(0x00F0, *(arg_06));
    local_07 = Item.getX(arg_06);
    local_09 = Item.getY(arg_06);
    local_0A = Item.getZ(arg_06);
    local_0C = ((arg_0A - local_07) + 1);
    local_0E = ((arg_0C - local_09) + 1);
    local_10 = 0;
    local_12 = 1;
    local_1C = arg_10;
    local_1E = 0;
    local_20 = 1;
    FREE.slot_48(local_0C);
    FREE.slot_48(retval, local_0E);
    if retval goto block_08D9;

  block_08D5:
    local_20 = 0;

  block_08D9:
    if (local_20 != 0) goto block_092C;

  block_08E1:
    FREE.slot_48(((local_0E / local_0C) * local_0C));
    local_16 = retval;
    /* mod  */
    FREE.slot_48(local_0E, local_0C);
    local_14 = retval;
    if (local_0C < 0) goto block_0911;

  block_090A:
    local_1C = (-1 * arg_10);

  block_0911:
    if (local_0E < 0) goto block_091D;

  block_0919:
    local_12 = -1;

  block_091D:
    FREE.slot_48(local_0C);
    local_18 = retval;
    goto block_0974;

  block_092C:
    FREE.slot_48(((local_0C / local_0E) * local_0E));
    local_16 = retval;
    /* mod  */
    FREE.slot_48(local_0C, local_0E);
    local_14 = retval;
    if (local_0E < 0) goto block_095C;

  block_0955:
    local_1C = (-1 * arg_10);

  block_095C:
    if (local_0C < 0) goto block_0968;

  block_0964:
    local_12 = -1;

  block_0968:
    FREE.slot_48(local_0E);
    local_18 = retval;

  block_0974:
    suspend;
    spawn FREE.slot_3B(pid, 2, 0x00000000);
    suspend;
    local_24 = (local_0A & 0x00FF);
    local_22 = (arg_0E & 0x00FF);
    if (local_24 != local_22) goto block_09E6;

  block_09A4:
    FREE.slot_48((local_22 - local_24));
    local_26 = ((retval / 20) + 1);
    if (local_26 != 0) goto block_09C5;

  block_09C1:
    local_26 = 1;

  block_09C5:
    if (local_24 < local_22) goto block_09D7;

  block_09CD:
    local_0A = (local_0A + local_26);
    goto block_09E6;

  block_09D7:
    local_24 = (local_24 - local_26);
    local_0A = (local_24 & 0x00FF);

  block_09E6:
    if (local_1E >= local_18) goto block_0A34;

  block_09EE:
    if (local_24 > (local_22 - 2)) goto block_0A0B;

  block_09F9:
    if (local_24 < (local_22 + 2)) goto block_0A0B;

  block_0A04:
    /* word_to_dword  */
    /* pop_result  */
    goto block_0B0F;

  block_0A0B:
    local_05 = local_07;
    local_03 = local_09;
    local_01 = local_0A;
    if (!Item.legalMoveToPoint(0, 1, local_05, arg_06)) goto block_0A31;

  block_0A2A:
    /* word_to_dword  */
    /* pop_result  */
    goto block_0B0F;

  block_0A31:
    goto block_0B0C;

  block_0A34:
    local_1E = (local_1E + arg_10);
    if (local_20 != 0) goto block_0AA9;

  block_0A43:
    local_05 = local_07;
    local_03 = local_09;
    local_01 = local_0A;
    if (!Item.legalMoveToPoint(0, 1, local_05, arg_06)) goto block_0A69;

  block_0A62:
    /* word_to_dword  */
    /* pop_result  */
    goto block_0B0F;

  block_0A69:
    local_07 = (local_07 + local_1C);
    local_1A = 1;

  block_0A74:
    if (local_1A <= arg_10) goto block_0AA6;

  block_0A7C:
    local_10 = (local_10 + (local_14 + local_16));
    if (local_10 >= local_18) goto block_0A9C;

  block_0A8E:
    local_10 = (local_10 - local_18);
    local_09 = (local_09 + local_12);

  block_0A9C:
    local_1A = (1 + local_1A);
    goto block_0A74;

  block_0AA6:
    goto block_0B0C;

  block_0AA9:
    local_05 = local_07;
    local_03 = local_09;
    local_01 = local_0A;
    if (!Item.legalMoveToPoint(0, 1, local_05, arg_06)) goto block_0ACF;

  block_0AC8:
    /* word_to_dword  */
    /* pop_result  */
    goto block_0B0F;

  block_0ACF:
    local_09 = (local_09 + local_1C);
    local_1A = 1;

  block_0ADA:
    if (local_1A <= arg_10) goto block_0B0C;

  block_0AE2:
    local_10 = (local_10 + (local_14 + local_16));
    if (local_10 >= local_18) goto block_0B02;

  block_0AF4:
    local_10 = (local_10 - local_18);
    local_07 = (local_07 + local_12);

  block_0B02:
    local_1A = (1 + local_1A);
    goto block_0ADA;

  block_0B0C:
    goto block_0974;

  block_0B0F:
    return;

}
