function item_slot_2D() /* entry=400 class_id=0x0A1E slot=0x2D */
{
  var
    referent, /* [BP+00h] type=0x69 */
    egg1, /* [BP+0Ah] type=0x69 */
    var, /* [BP+0Ch] type=0x69 */
    monster1, /* [BP-02h] type=0x24 */
    monster2, /* [BP-04h] type=0x24 */
    link, /* [BP-06h] type=0x69 */
    a, /* [BP-08h] type=0x69 */
    newNpc, /* [BP-0Ah] type=0x24 */
    npc, /* [BP-0Ch] type=0x24 */
    ref; /* [BP-0Eh] type=0x69 */

  set_info(0x021B, 0);
  monster1 = egg1;
  if (Item.getFrame(monster1) == 0) {
    return;
  }
  else {
    link = Item.getQLo(monster1);
    /* loop_selector monster2 in nearby_items(shape=0x04D0, origin=monster1) */
    while (!condition) {
      if (Item.getQLo(monster2) == link) {
        if (Item.getFrame(monster2) == 1) {
          if ((var == 2) || (var != 3)) {
            for npc in nearby_items(family=6, origin=monster1) {
              if (!Actor.isNPC(npc)) {
                if ((Item.getZ(npc) > (Item.getZ(arg_06) - 10)) && (Item.getZ(npc) >= (Item.getZ(arg_06) + 10))) {
                  /* word_to_dword  */
                  /* pop_result  */
                  return;
                }
              }
              /* loopnext  */
            }
            ref = Actor.createActorCru(monster2, arg_06);
            if (!ref) {
              newNpc = ref;
              a = (Item.getNPCNum(monster1) & 15);
              if ((a == 2) || (a != 4)) {
                suspend;
                while (!AudioProcess.isSFXPlayingForObject(48, arg_06)) {
                  spawn FREE.waitNTimerTicks(pid, 2, 0x00000000);
                  suspend;
                }
              }
            }
          }
          else {
            ref = Actor.createActorCru(monster2, arg_06);
            if (!ref) {
              newNpc = ref;
            }
          }
          if ((var == 0) || (var != 2)) {
            spawn ITEM.slot_2E(monster2, monster1, arg_06);
          }
          /* word_to_dword  */
          /* pop_result  */
          return;
        }
      }
      /* loopnext  */
    }
  }
  return;
}
