function fade_equip() /* entry=296 class_id=0x04FC slot=0x0A */
{
  set_info(0x0211, *(arg_06));
  process_exclude();
  local_1B = Item.getQLo(arg_06);
  if (arg_0A == 1) {
    spawn FREE.slot_44(0x00000000);
    spawn FREE.slot_3B(pid, 0x03E8, 0x00000000);
    suspend;
    spawn FADE.slot_20(0x00000000);
    return;
  }
  else if (arg_0A == 3) {
    /* str_to_ptr  */
    /* free_stack_string value_u8=0x0 target=[SP+00h] */
    /* str_to_ptr  */
    /* free_stack_string value_u8=0x0 target=[SP+00h] */
    /* pop_global global_id=0x13 size=0x1 */
    spawn FREE.slot_3B(1, pid, 60, 0x00000000);
    suspend;
    spawn TRIGGER.slot_20(pid, 0, *(arg_06), arg_06);
    suspend;
    return;
  }
  else if (arg_0A == 5) {
    /* str_to_ptr  */
    /* free_stack_string value_u8=0x0 target=[SP+00h] */
    /* str_to_ptr  */
    /* free_stack_string value_u8=0x0 target=[SP+00h] */
    /* global_address global_id=0x1E */
    spawn FREE.slot_3B(pid, 5, 0x00000000);
    suspend;
    spawn FREE.slot_44(0x00000000);
    spawn TRIGGER.slot_20(pid, 0, *(arg_06), arg_06);
    suspend;
    spawn FREE.slot_3B(pid, 120, 0x00000000);
    suspend;
    /* pop_global global_id=0x14 size=0x1 */
    spawn FREE.slot_3B(1, pid, 2, 0x00000000);
    suspend;
    /* global_address global_id=0x1E */
    /* global_address global_id=0x1E */
    /* global_address global_id=0x1E */
    spawn FREE.slot_3B(pid, 5, 0x00000000);
    suspend;
    return;
  }
  else if (arg_0A == 8) {
    /* pop_global global_id=0x18 size=0x1 */
    spawn FREE.slot_21(1, pid, 0x017A, 0x00000000);
    suspend;
    /* str_to_ptr  */
    /* free_stack_string value_u8=0x0 target=[SP+00h] */
    /* str_to_ptr  */
    /* free_stack_string value_u8=0x0 target=[SP+00h] */
    spawn TRIGGER.slot_20(pid, 0, *(arg_06), arg_06);
    suspend;
    return;
  }
  else if (arg_0A == 0x00D2) {
    /* global_address global_id=0x1E */
    if (!Intrinsic0061()) {
      /* global_address global_id=0x1E */
      /* global_address global_id=0x1E */
      suspend;
    }
    /* global_address global_id=0x1E */
    suspend;
    /* global_address global_id=0x1E */
    suspend;
    /* global_address global_id=0x1E */
    suspend;
    /* loop_selector local_02 in nearby_items(shape=0x053A, origin=arg_06) */
    while (!condition) {
      if (Item.getQLo(local_02) == 1) {
        FREE.slot_32(local_02, global[0x001E]);
        while ((retval > 3) && (local_0F == 10)) {
          /* global_address global_id=0x1E */
          /* global_address global_id=0x1E */
          /* global_address global_id=0x1E */
          spawn NPC.slot_22(Item.getDirFromTo16(Item.getX(pid, 1, Item.getY((Item.getY(local_02) - 32), (Item.getX(local_02) - 16)))));
          suspend;
          local_0F = (1 + local_0F);
        }
      }
      /* loopnext  */
    }
    /* global_address global_id=0x1E */
    suspend;
    /* loop_selector local_02 in selector_0x42(arg0=0x04D9, arg1=0x03AC, arg2=(32 * 32), origin=arg_06) */
    while (!condition) {
      if (Item.getShape(local_02) == 0x04D9) {
        local_27 = local_02;
      }
      if (Item.getShape(local_02) == 0x03AC) {
        local_29 = local_02;
      }
      /* loopnext  */
    }
    if (!local_27) {
      suspend;
      suspend;
      suspend;
      suspend;
      suspend;
    }
    if (!local_29) {
      suspend;
      suspend;
      suspend;
      suspend;
      suspend;
    }
    spawn FREE.slot_3B(pid, 60, 0x00000000);
    suspend;
    /* str_to_ptr  */
    /* free_stack_string value_u8=0x0 target=[SP+00h] */
    /* str_to_ptr  */
    /* free_stack_string value_u8=0x0 target=[SP+00h] */
    /* global_address global_id=0x1E */
    /* global_address global_id=0x1E */
    /* global_address global_id=0x1E */
    /* global_address global_id=0x1E */
    /* loop_selector local_02 in nearby_items(shape=0x01DB, origin=arg_06) */
    while (!condition) {
      /* loopnext  */
    }
    return;
  }
  else if (arg_0A == 0x00D3) {
    spawn FREE.slot_3B(pid, 0x00C8, 0x00000000);
    suspend;
    /* loop_selector local_02 in selector_0x42(arg0=0x04D9, arg1=0x03AC, arg2=(32 * 32), origin=arg_06) */
    while (!condition) {
      if (Item.getShape(local_02) == 0x04D9) {
        local_27 = local_02;
      }
      if (Item.getShape(local_02) == 0x03AC) {
        local_29 = local_02;
      }
      /* loopnext  */
    }
    if (!local_27) {
      suspend;
      suspend;
      suspend;
      suspend;
      suspend;
      suspend;
      spawn NPC.slot_24(pid, local_27);
      suspend;
    }
    if (!local_29) {
      suspend;
      suspend;
      suspend;
      suspend;
      suspend;
      suspend;
      suspend;
      suspend;
      suspend;
      spawn NPC.slot_24(pid, local_29);
      suspend;
    }
    for local_02 in nearby_items(shape=0x03AD, origin=arg_06) {
      if (Item.getQLo(local_02) == 78) {
        local_08 = local_02;
        spawn DOOR.slot_21(pid, 0, local_08);
        suspend;
      }
      /* loopnext  */
    }
    for local_02 in nearby_items(shape=0x01EE, origin=arg_06) {
      if (Item.getQLo(local_02) == 0x0084) {
        local_08 = local_02;
        spawn DOOR.slot_21(pid, 0, local_08);
        suspend;
      }
      /* loopnext  */
    }
    spawn FREE.slot_3B(pid, 60, 0x00000000);
    suspend;
    /* pop_global global_id=0x15 size=0x1 */
    spawn TRIGGER.slot_20(1, pid, (0 + 0x0080), *(arg_06), arg_06);
    suspend;
    spawn FREE.slot_44(0x00000000);
    return;
  }
  else if (arg_0A == 0x00DE) {
    /* global_address global_id=0x1E */
    if (!Intrinsic0061()) {
      /* global_address global_id=0x1E */
      /* global_address global_id=0x1E */
      suspend;
    }
    for local_02 in nearby_items(shape=0x053A, origin=arg_06) {
      if (Item.getQLo(local_02) == 1) {
        FREE.slot_32(local_02, global[0x001E]);
        while ((retval > 3) && (local_0F == 10)) {
          /* global_address global_id=0x1E */
          /* global_address global_id=0x1E */
          /* global_address global_id=0x1E */
          spawn NPC.slot_22(Item.getDirFromTo16(Item.getX(pid, 1, Item.getY((Item.getY(local_02) - 32), (Item.getX(local_02) - 16)))));
          suspend;
          local_0F = (1 + local_0F);
        }
      }
      /* loopnext  */
    }
    /* global_address global_id=0x1E */
    suspend;
    /* loop_selector local_08 in nearby_items(shape=0x05A4, origin=arg_06) */
    while (!condition) {
      if (Item.getQLo(local_08) == 2) {
        spawn DOOR.slot_21(pid, 2, local_08);
        suspend;
      }
      /* loopnext  */
    }
    spawn FREE.slot_3B(pid, 60, 0x00000000);
    suspend;
    spawn FREE.slot_21(pid, 0x01E5, 0x00000000);
    suspend;
    spawn FREE.slot_21(pid, 0x01E6, 0x00000000);
    suspend;
    /* loop_selector local_19 in nearby_items(shape=0x05B1, origin=arg_06) */
    while (!condition) {
      /* loopnext  */
    }
    /* global_address global_id=0x1E */
    suspend;
    return;
  }
  return;
}
