function hover_slot_21() /* entry=383 class_id=0x0A0D slot=0x21 */
{
  var
    referent, /* [BP+00h] type=0x69 */
    ref, /* [BP+0Ah] type=0x69 */
    h, /* [BP-02h] type=0x69 */
    firstEgg, /* [BP-04h] type=0x69 */
    targetEgg, /* [BP-06h] type=0x69 */
    time, /* [BP-08h] type=0x69 */
    oldqhi, /* [BP-0Ah] type=0x69 */
    link, /* [BP-0Ch] type=0x69 */
    tx, /* [BP-0Eh] type=0x69 */
    ty, /* [BP-10h] type=0x69 */
    tz, /* [BP-11h] type=0x62 */
    hover, /* [BP-13h] type=0x24 */
    item; /* [BP-15h] type=0x24 */

  entry:
    set_info(1, 0);
    hover = ref;
    h = Item.getQHi(hover);
    oldqhi = h;
    firstEgg = (h & 15);
    targetEgg = firstEgg;

  block_0F73:
    if 1 goto block_1256;

  block_0F7B:
    if ((Item.getStatus(hover) & 0x1000) != 0) goto block_0FC9;

  block_0F91:
    spawn HOVER.slot_23(pid, 1, ref, arg_06);
    suspend;
    goto block_1256;

  block_0FC9:
    link = Item.getQLo(hover);
    tx = -1;
    /* loop_selector item in nearby_items(shape=NUMBERS, origin=ref) */

  block_0FFA:
    if condition goto block_106C;

  block_0FFD:
    if (Item.getFrame(item) != targetEgg) goto block_1068;

  block_100F:
    if ((link != 0) || (link != Item.getQLo(item))) goto block_1068;

  block_102A:
    tx = Item.getX(item);
    ty = Item.getY(item);
    tz = Item.getZ(item);
    time = Item.getQHi(item);
    goto block_106C;

  block_1068:
    /* loopnext  */
    goto block_0FFA;

  block_106C:
    if (tx != -1) goto block_10CE;

  block_1079:
    if (targetEgg != firstEgg) goto block_10A6;

  block_1084:
    /* bit_not  */
    goto block_1256;

  block_10A6:
    targetEgg = firstEgg;
    h = (h & 0x00F0);
    goto block_0F73;

  block_10CE:
    spawn HOVER.slot_20(pid, tz, ty, tx, ref, arg_06);
    suspend;
    /* dword_to_word  */
    if (process_result != 1) goto block_1112;

  block_10FF:
    goto block_1256;

  block_1112:
    spawn HOVER.slot_24(pid, targetEgg, ref, arg_06);
    suspend;
    if ((Item.getStatus(hover) & 0x1000) != 0) goto block_1185;

  block_114D:
    spawn HOVER.slot_23(pid, 1, ref, arg_06);
    suspend;
    goto block_1256;

  block_1185:
    if (h & 0x0080) goto block_11BA;

  block_1191:
    spawn TRIGGER.slot_20(pid, (0 + 0x0080), item, arg_06);
    suspend;

  block_11BA:
    if (time != 0) goto block_11EE;

  block_11C5:
    spawn FREE.waitNTimerTicks(pid, (time * 10), 0x00000000);
    suspend;

  block_11EE:
    h = Item.getQHi(hover);
    if ((h & 15) != targetEgg) goto block_1220;

  block_1210:
    targetEgg = ((targetEgg + 1) & 15);
    goto block_1238;

  block_1220:
    firstEgg = (h & 15);
    targetEgg = firstEgg;
    oldqhi = h;

  block_1238:
    h = (h & 0x00F0);
    goto block_0F73;

  block_1256:
    return;

}
