function trigger_slot_24() /* entry=394 class_id=0x0A18 slot=0x24 */
{
  var
    referent, /* [BP+00h] type=0x69 */
    ref, /* [BP+0Ah] type=0x69 */
    qHi, /* [BP+0Ch] type=0x69 */
    npcNum, /* [BP+0Eh] type=0x69 */
    mapNum, /* [BP+10h] type=0x69 */
    baseLink, /* [BP+12h] type=0x69 */
    searchtype, /* [BP+14h] type=0x69 */
    scmd, /* [BP-02h] type=0x69 */
    cmd, /* [BP-04h] type=0x69 */
    a, /* [BP-06h] type=0x69 */
    b, /* [BP-08h] type=0x69 */
    c, /* [BP-0Ah] type=0x69 */
    d, /* [BP-0Ch] type=0x69 */
    item, /* [BP-0Eh] type=0x24 */
    aitem, /* [BP-10h] type=0x24 */
    newLink, /* [BP-12h] type=0x69 */
    distance, /* [BP-14h] type=0x69 */
    item2; /* [BP-16h] type=0x24 */

  entry:
    set_info(0x021B, 0);
    newLink = baseLink;
    aitem = ref;
    cmd = (mapNum & 3);
    if (cmd != 0) goto block_1191;

  block_113E:
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x3D */
    /* loopscr value_u8=0x3A */
    /* loopscr value_u8=0x25 */
    /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */

  block_115B:
    if condition goto block_118C;

  block_115E:
    if (Item.getNpcNum(item) != baseLink) goto block_1188;

  block_1170:
    if (ref != item) goto block_1188;

  block_117B:

  block_1188:
    /* loopnext  */
    goto block_115B;

  block_118C:
    goto block_16A3;

  block_1191:
    if (cmd != 1) goto block_11EC;

  block_1199:
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x3D */
    /* loopscr value_u8=0x3A */
    /* loopscr value_u8=0x25 */
    /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */

  block_11B6:
    if condition goto block_11E7;

  block_11B9:
    if (Item.getNpcNum(item) != baseLink) goto block_11E3;

  block_11CB:
    if (ref != item) goto block_11E3;

  block_11D6:

  block_11E3:
    /* loopnext  */
    goto block_11B6;

  block_11E7:
    goto block_16A3;

  block_11EC:
    if (cmd != 2) goto block_1249;

  block_11F4:
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x3D */
    /* loopscr value_u8=0x3A */
    /* loopscr value_u8=0x25 */
    /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */

  block_1211:
    if condition goto block_1244;

  block_1214:
    if (Item.getNpcNum(item) != baseLink) goto block_1240;

  block_1226:
    if (ref != item) goto block_1240;

  block_1231:

  block_1240:
    /* loopnext  */
    goto block_1211;

  block_1244:
    goto block_16A3;

  block_1249:
    if (cmd != 3) goto block_16A3;

  block_1251:
    scmd = (qHi & 7);
    if (scmd != 0) goto block_12F2;

  block_1263:
    d = (qHi / 8);
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x3D */
    /* loopscr value_u8=0x40 */
    /* loopscr value_u8=0x25 */
    /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */

  block_128B:
    if condition goto block_12ED;

  block_128E:
    if (Item.getNpcNum(item) != baseLink) goto block_12E9;

  block_12A0:
    a = Item.getQLo(item);
    c = (a & 15);
    b = Item.getMapNum(item);
    b = (((a & 0x00E0) * 8) + b);
    class_0A0C_slot_30(d, c, b, item);

  block_12E9:
    /* loopnext  */
    goto block_128B;

  block_12ED:
    goto block_16A0;

  block_12F2:
    if (scmd != 1) goto block_145D;

  block_12FA:
    d = (qHi / 8);
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x3D */
    /* loopscr value_u8=0x3A */
    /* loopscr value_u8=0x25 */
    /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */

  block_1321:
    if condition goto block_1458;

  block_1324:
    if (Item.getNpcNum(item) != baseLink) goto block_1454;

  block_1336:
    if (ref != item) goto block_1454;

  block_1341:
    if (d != 31) goto block_1387;

  block_1359:
    suspend;
    goto block_1454;

  block_1387:
    c = Item.getFrame(item);
    b = Intrinsic0016(item);
    a = (b & 0x00FF);
    b = (b & 0x0700);
    b = (b / 8);
    b = (b + c);
    suspend;
    /* bit_not  */

  block_1454:
    /* loopnext  */
    goto block_1321;

  block_1458:
    goto block_16A0;

  block_145D:
    if (scmd != 2) goto block_14C2;

  block_1465:
    a = (qHi / 8);
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x3D */
    /* loopscr value_u8=0x3A */
    /* loopscr value_u8=0x25 */
    /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */

  block_148C:
    if condition goto block_14BD;

  block_148F:
    if (Item.getNpcNum(item) != baseLink) goto block_14B9;

  block_14A1:
    if (ref != item) goto block_14B9;

  block_14AC:

  block_14B9:
    /* loopnext  */
    goto block_148C;

  block_14BD:
    goto block_16A0;

  block_14C2:
    if (scmd != 3) goto block_154C;

  block_14CA:
    if (global[0x0040] != 100) goto block_14E1;

  block_14D7:
    distance = 32;
    goto block_14EA;

  block_14E1:
    distance = global[0x0040];

  block_14EA:
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x3D */
    /* loopscr value_u8=0x3A */
    /* loopscr value_u8=0x25 */
    /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */

  block_1505:
    if condition goto block_1547;

  block_1508:
    if (Item.getNpcNum(item) != baseLink) goto block_1543;

  block_151A:
    if (ref != item) goto block_1543;

  block_1525:
    a = (qHi / 8);
    spawn class_0A18_slot_22(a, item, arg_06);

  block_1543:
    /* loopnext  */
    goto block_1505;

  block_1547:
    goto block_16A0;

  block_154C:
    if (scmd != 4) goto block_156B;

  block_1554:
    a = (qHi / 8);
    newLink = (newLink + a);
    goto block_16A0;

  block_156B:
    if (scmd != 5) goto block_158A;

  block_1573:
    a = (qHi / 8);
    newLink = (newLink - a);
    goto block_16A0;

  block_158A:
    if (scmd != 6) goto block_16A0;

  block_1592:
    d = (qHi / 8);
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x3D */
    /* loopscr value_u8=0x40 */
    /* loopscr value_u8=0x25 */
    /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */

  block_15BA:
    if condition goto block_169B;

  block_15BD:
    if (Item.getNpcNum(item) != baseLink) goto block_1697;

  block_15CF:
    a = Item.getQHi(item);
    c = (a & 15);
    b = Item.getMapNum(item);
    b = (((a & 0x00E0) * 8) + b);
    if (b != 0) goto block_1697;

  block_1611:
    if (Item.getQLo(c, b, item2) != 1) goto block_1697;

  block_1627:
    suspend;

  block_1697:
    /* loopnext  */
    goto block_15BA;

  block_169B:
    goto block_16A0;

  block_16A0:
    goto block_16A3;

  block_16A3:
    /* word_to_dword  */
    /* pop_result  */
    goto block_16AD;

  block_16AD:
    return;

}
