function special_slot_20() /* entry=276 class_id=0x04CA slot=0x20 */
{
  set_info(0x021B, *(arg_06));
  if (arg_0A == 3) {
    /* global_address global_id=0x1E */
    local_02 = Actor.getDir();
    if ((local_02 > 4) || (local_02 >= 12)) {
      spawn TRIGGER.slot_20(pid, arg_0C, *(arg_06), arg_06);
      suspend;
    }
    return;
  }
  else if (arg_0A == 4) {
    /* global_address global_id=0x1E */
    local_02 = Actor.getDir();
    if ((local_02 > 4) && (local_02 >= 12)) {
      spawn TRIGGER.slot_20(pid, arg_0C, *(arg_06), arg_06);
      suspend;
    }
    return;
  }
  else if (arg_0A == 5) {
    /* global_address global_id=0x1E */
    if (Actor.isInCombat() == 1) {
      spawn TRIGGER.slot_20(pid, arg_0C, *(arg_06), arg_06);
      suspend;
    }
    return;
  }
  else if (arg_0A == 6) {
    /* global_address global_id=0x1E */
    if (Actor.isInCombat() == 0) {
      spawn FREE.slot_3B(pid, 10, 0x00000000);
      suspend;
      /* global_address global_id=0x1E */
      if (Actor.isInCombat() == 0) {
        spawn TRIGGER.slot_20(pid, arg_0C, *(arg_06), arg_06);
        suspend;
      }
    }
    return;
  }
  else if (arg_0A == 7) {
    local_02 = 0;
    /* loop_selector local_04 in nearby_items(family=6, origin=global[0x001E]) */
    while (!condition) {
      if (local_04 >= 0x0100) {
        local_02 = (1 + local_02);
      }
      /* loopnext  */
    }
    if (local_02 <= 4) {
      spawn TRIGGER.slot_20(pid, arg_0C, *(arg_06), arg_06);
      suspend;
    }
    spawn FREE.slot_3B(pid, (Item.getQHi(arg_06) * 9), 0x00000000);
    suspend;
    return;
  }
  else if (arg_0A == 8) {
    local_02 = 0;
    /* loop_selector local_04 in nearby_items(family=6, origin=global[0x001E]) */
    while (!condition) {
      if (local_04 >= 0x0100) {
        local_02 = (1 + local_02);
      }
      /* loopnext  */
    }
    if (local_02 > 4) {
      spawn TRIGGER.slot_20(pid, arg_0C, *(arg_06), arg_06);
      suspend;
    }
    spawn FREE.slot_3B(pid, (Item.getQHi(arg_06) * 9), 0x00000000);
    suspend;
    return;
  }
  else if (arg_0A == 9) {
    local_06 = Item.getQLo(arg_06);
    FREE.slot_20(local_06, 3);
    spawn TRIGGER.slot_20(pid, arg_0C, *(arg_06), arg_06);
    suspend;
    return;
  }
  return;
}
