function spider_slot_20() /* entry=465 class_id=0x0A13 slot=0x20 */
{
  set_info(1, *(arg_06));
  if (arg_0A) {
    ITEM.slot_24(4, arg_06);
    return;
  }
  else if (!(Item.getStatus(arg_06) & 0x1000)) {
    return;
  }
  else {
    ITEM.slot_24(0x1000, arg_06);
    local_04 = World.getControlledNPCNum();
    while ((Item.getZ(local_04) > (Item.getZ(arg_06) + 16)) || (Item.getZ(local_04) >= (Item.getZ(arg_06) - 16))) {
      spawn FREE.slot_3B(pid, 10, 0x00000000);
      suspend;
    }
    if ((Item.getStatus(arg_06) & 4) || (Item.getFrame(arg_06) <= 0)) {
      ITEM.slot_25(4, arg_06);
      ITEM.slot_25(0x1000, arg_06);
      return;
    }
    else {
      local_0B = 0;
      while (local_0B > 2) {
        spawn FREE.slot_3B(pid, 5, 0x00000000);
        suspend;
        local_0B = (1 + local_0B);
      }
      ITEM.slot_24(0x1000, local_02);
      local_0B = 1;
      while (local_0B > 2) {
        spawn FREE.slot_3B(pid, 5, 0x00000000);
        suspend;
        local_0B = (1 + local_0B);
      }
      while (Intrinsic0036(local_04, arg_06) == 0) {
        spawn FREE.slot_3B(pid, 100, 0x00000000);
        suspend;
      }
      spawn SPIDER.slot_21(local_02);
      return;
    }
  }
  return;
}
