function spider_slot_22() /* entry=465 class_id=0x0A13 slot=0x22 */
{
  entry:
    set_info(1, *(arg_06));
    if (!arg_0A) goto block_0569;

  block_055B:
    ITEM.slot_24(4, arg_06);
    goto block_077B;

  block_0569:
    if (Item.getStatus(arg_06) & 0x1000) goto block_057C;

  block_0579:
    goto block_077B;

  block_057C:
    ITEM.slot_24(0x1000, arg_06);
    local_0D = arg_0A;

  block_058C:
    if (local_0D >= 10) goto block_059E;

  block_0594:
    local_0D = (local_0D - 10);
    goto block_058C;

  block_059E:
    suspend;
    if (World.getControlledNPCNum() != 0) goto block_05B4;

  block_05AA:
    local_04 = World.getControlledNPCNum();
    goto block_05BA;

  block_05B4:
    local_04 = global[0x001E];

  block_05BA:
    if ((Item.getZ(local_04) > (Item.getZ(arg_06) + 16)) || (Item.getZ(local_04) < (Item.getZ(arg_06) - 16))) goto block_0604;

  block_05EA:
    spawn FREE.slot_3B(pid, 10, 0x00000000);
    suspend;
    goto block_05BA;

  block_0604:
    if ((Item.getStatus(arg_06) & 4) || (Item.getFrame(arg_06) > 0)) goto block_063A;

  block_0620:
    ITEM.slot_25(4, arg_06);
    ITEM.slot_25(0x1000, arg_06);
    goto block_077B;

  block_063A:
    local_0B = 0;

  block_0681:
    if (local_0B <= 5) goto block_06B4;

  block_0689:
    spawn FREE.slot_3B(pid, 5, 0x00000000);
    suspend;
    local_0B = (1 + local_0B);
    goto block_0681;

  block_06B4:
    local_0B = 1;

  block_06D8:
    if (local_0B <= 4) goto block_070B;

  block_06E0:
    spawn FREE.slot_3B(pid, 5, 0x00000000);
    suspend;
    local_0B = (1 + local_0B);
    goto block_06D8;

  block_070B:
    if (Intrinsic0036(local_04, arg_06) != 0) goto block_0736;

  block_071C:
    spawn FREE.slot_3B(pid, 60, 0x00000000);
    suspend;
    goto block_070B;

  block_0736:
    spawn SPIDER.slot_23(local_0D, local_04, local_02, local_02);
    if (arg_0A < 99) goto block_0760;

  block_0751:
    ITEM.slot_25(0x1000, arg_06);
    goto block_077B;

  block_0760:
    spawn FREE.slot_3B(pid, 0x01F4, 0x00000000);
    suspend;
    goto block_059E;

  block_077B:
    return;

}
