function trigger_slot_25() /* entry=394 class_id=0x0A18 slot=0x25 */
{
  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 */
    item2; /* [BP-14h] type=0x24 */

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

  block_1798:
    /* 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_17B5:
    if condition goto block_17D4;

  block_17B8:
    if (ref != item) goto block_17D0;

  block_17C3:

  block_17D0:
    /* loopnext  */
    goto block_17B5;

  block_17D4:
    goto block_1C4F;

  block_17D9:
    if (cmd != 1) goto block_1822;

  block_17E1:
    /* 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_17FE:
    if condition goto block_181D;

  block_1801:
    if (ref != item) goto block_1819;

  block_180C:

  block_1819:
    /* loopnext  */
    goto block_17FE;

  block_181D:
    goto block_1C4F;

  block_1822:
    if (cmd != 2) goto block_186D;

  block_182A:
    /* 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_1847:
    if condition goto block_1868;

  block_184A:
    if (ref != item) goto block_1864;

  block_1855:

  block_1864:
    /* loopnext  */
    goto block_1847;

  block_1868:
    goto block_1C4F;

  block_186D:
    if (cmd != 3) goto block_1C4F;

  block_1875:
    scmd = (qHi & 7);
    if (scmd != 0) goto block_1904;

  block_1887:
    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_18AF:
    if condition goto block_18FF;

  block_18B2:
    a = Item.getQHi(item);
    c = (a & 15);
    b = Item.getMapNum(item);
    b = (((a & 0x00E0) * 8) + b);
    class_0A0C_slot_30(d, c, b, item);
    /* loopnext  */
    goto block_18AF;

  block_18FF:
    goto block_1C4C;

  block_1904:
    if (scmd != 1) goto block_1A5D;

  block_190C:
    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_1933:
    if condition goto block_1A58;

  block_1936:
    if (ref != item) goto block_1A54;

  block_1941:
    if (d != 31) goto block_1987;

  block_1959:
    suspend;
    goto block_1A54;

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

  block_1A54:
    /* loopnext  */
    goto block_1933;

  block_1A58:
    goto block_1C4C;

  block_1A5D:
    if (scmd != 2) goto block_1AB0;

  block_1A65:
    a = (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_1A8C:
    if condition goto block_1AAB;

  block_1A8F:
    if (ref != item) goto block_1AA7;

  block_1A9A:

  block_1AA7:
    /* loopnext  */
    goto block_1A8C;

  block_1AAB:
    goto block_1C4C;

  block_1AB0:
    if (scmd != 3) goto block_1B0A;

  block_1AB8:
    /* 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_1AD5:
    if condition goto block_1B05;

  block_1AD8:
    if (ref != item) goto block_1B01;

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

  block_1B01:
    /* loopnext  */
    goto block_1AD5;

  block_1B05:
    goto block_1C4C;

  block_1B0A:
    if (scmd != 4) goto block_1B29;

  block_1B12:
    a = (qHi / 8);
    newLink = (newLink + a);
    goto block_1C4C;

  block_1B29:
    if (scmd != 5) goto block_1B48;

  block_1B31:
    a = (qHi / 8);
    newLink = (newLink - a);
    goto block_1C4C;

  block_1B48:
    if (scmd != 6) goto block_1C4C;

  block_1B50:
    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_1B78:
    if condition goto block_1C47;

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

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

  block_1BD3:
    suspend;

  block_1C43:
    /* loopnext  */
    goto block_1B78;

  block_1C47:
    goto block_1C4C;

  block_1C4C:
    goto block_1C4F;

  block_1C4F:
    /* word_to_dword  */
    /* pop_result  */
    goto block_1C59;

  block_1C59:
    return;

}
