function trigger_slot_23() /* entry=394 class_id=0x0A18 slot=0x23 */
{
  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_0B62;

  block_0B0F:
    /* 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_0B2C:
    if condition goto block_0B5D;

  block_0B2F:
    if (Item.getNpcNum(item) != baseLink) goto block_0B59;

  block_0B41:
    if (ref != item) goto block_0B59;

  block_0B4C:

  block_0B59:
    /* loopnext  */
    goto block_0B2C;

  block_0B5D:
    goto block_1056;

  block_0B62:
    if (cmd != 1) goto block_0BBD;

  block_0B6A:
    /* 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_0B87:
    if condition goto block_0BB8;

  block_0B8A:
    if (Item.getNpcNum(item) != baseLink) goto block_0BB4;

  block_0B9C:
    if (ref != item) goto block_0BB4;

  block_0BA7:

  block_0BB4:
    /* loopnext  */
    goto block_0B87;

  block_0BB8:
    goto block_1056;

  block_0BBD:
    if (cmd != 2) goto block_0C1A;

  block_0BC5:
    /* 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_0BE2:
    if condition goto block_0C15;

  block_0BE5:
    if (Item.getNpcNum(item) != baseLink) goto block_0C11;

  block_0BF7:
    if (ref != item) goto block_0C11;

  block_0C02:

  block_0C11:
    /* loopnext  */
    goto block_0BE2;

  block_0C15:
    goto block_1056;

  block_0C1A:
    if (cmd != 3) goto block_1056;

  block_0C22:
    scmd = (qHi & 7);
    if (scmd != 0) goto block_0CC3;

  block_0C34:
    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_0C5C:
    if condition goto block_0CBE;

  block_0C5F:
    if (Item.getNpcNum(item) != baseLink) goto block_0CBA;

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

  block_0CBA:
    /* loopnext  */
    goto block_0C5C;

  block_0CBE:
    goto block_1053;

  block_0CC3:
    if (scmd != 1) goto block_0E2E;

  block_0CCB:
    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_0CF2:
    if condition goto block_0E29;

  block_0CF5:
    if (Item.getNpcNum(item) != baseLink) goto block_0E25;

  block_0D07:
    if (ref != item) goto block_0E25;

  block_0D12:
    if (d != 31) goto block_0D58;

  block_0D2A:
    suspend;
    goto block_0E25;

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

  block_0E25:
    /* loopnext  */
    goto block_0CF2;

  block_0E29:
    goto block_1053;

  block_0E2E:
    if (scmd != 2) goto block_0E93;

  block_0E36:
    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_0E5D:
    if condition goto block_0E8E;

  block_0E60:
    if (Item.getNpcNum(item) != baseLink) goto block_0E8A;

  block_0E72:
    if (ref != item) goto block_0E8A;

  block_0E7D:

  block_0E8A:
    /* loopnext  */
    goto block_0E5D;

  block_0E8E:
    goto block_1053;

  block_0E93:
    if (scmd != 3) goto block_0EFF;

  block_0E9B:
    /* 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_0EB8:
    if condition goto block_0EFA;

  block_0EBB:
    if (Item.getNpcNum(item) != baseLink) goto block_0EF6;

  block_0ECD:
    if (ref != item) goto block_0EF6;

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

  block_0EF6:
    /* loopnext  */
    goto block_0EB8;

  block_0EFA:
    goto block_1053;

  block_0EFF:
    if (scmd != 4) goto block_0F1E;

  block_0F07:
    a = (qHi / 8);
    newLink = (newLink + a);
    goto block_1053;

  block_0F1E:
    if (scmd != 5) goto block_0F3D;

  block_0F26:
    a = (qHi / 8);
    newLink = (newLink - a);
    goto block_1053;

  block_0F3D:
    if (scmd != 6) goto block_1053;

  block_0F45:
    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_0F6D:
    if condition goto block_104E;

  block_0F70:
    if (Item.getNpcNum(item) != baseLink) goto block_104A;

  block_0F82:
    a = Item.getQLo(item);
    c = (a & 15);
    b = Item.getMapNum(item);
    b = (((a & 0x00E0) * 8) + b);
    if (b != 0) goto block_104A;

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

  block_0FDA:
    suspend;

  block_104A:
    /* loopnext  */
    goto block_0F6D;

  block_104E:
    goto block_1053;

  block_1053:
    goto block_1056;

  block_1056:
    /* word_to_dword  */
    /* pop_result  */
    goto block_1060;

  block_1060:
    return;

}
