function trigger_slot_29() /* entry=394 class_id=0x0A18 slot=0x29 */
{
  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 */
    aitem, /* [BP-0Eh] type=0x24 */
    npc, /* [BP-10h] type=0x24 */
    e, /* [BP-12h] type=0x69 */
    f, /* [BP-14h] type=0x69 */
    g, /* [BP-16h] type=0x69 */
    counter, /* [BP-18h] type=0x69 */
    h, /* [BP-1Ah] type=0x69 */
    i, /* [BP-1Ch] type=0x69 */
    k; /* [BP-1Eh] type=0x69 */

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

  block_2E92:
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x3D */
    /* loopscr value_u8=0x40 */
    /* loopscr value_u8=0x25 */
    /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */

  block_2EAF:
    if condition goto block_30B5;

  block_2EB2:
    if (Item.getQLo(npc) != baseLink) goto block_30B1;

  block_2EC4:
    a = (qHi / 16);
    b = (qHi & 15);
    if (a != 0) goto block_2F76;

  block_2EE3:
    if (Intrinsic0050(npc) != 1) goto block_2F02;

  block_2EF5:

  block_2F02:
    e = Item.getQHi(npc);
    suspend;
    spawn class_0A0C_slot_32(pid, 2, 0x00000000);
    suspend;
    f = Item.getQHi(npc);
    goto block_30B1;

  block_2F76:
    if (Intrinsic0050(npc) != 1) goto block_2F95;

  block_2F88:

  block_2F95:
    g = Item.getQHi(npc);
    suspend;
    spawn class_0A0C_slot_32(pid, 2, 0x00000000);
    suspend;
    if (Kernel.resetRef(npc) != 1) goto block_3003;

  block_2FFD:
    goto block_3456;

  block_3003:
    counter = 1;

  block_300A:
    if (counter <= a) goto block_3081;

  block_3015:
    if (Kernel.resetRef(npc) != 0) goto block_304E;

  block_3027:
    suspend;

  block_304E:
    spawn class_0A0C_slot_32(pid, 1, 0x00000000);
    suspend;
    counter = (1 + counter);
    goto block_300A;

  block_3081:
    h = Item.getQHi(npc);
    i = Intrinsic0050(npc);

  block_30B1:
    /* loopnext  */
    goto block_2EAF;

  block_30B5:
    goto block_3456;

  block_30BA:
    if (cmd != 1) goto block_310A;

  block_30C2:
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x3D */
    /* loopscr value_u8=0x40 */
    /* loopscr value_u8=0x25 */
    /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */

  block_30DF:
    if condition goto block_3105;

  block_30E2:
    if (Item.getQLo(npc) != baseLink) goto block_3101;

  block_30F4:

  block_3101:
    /* loopnext  */
    goto block_30DF;

  block_3105:
    goto block_3456;

  block_310A:
    if (cmd != 2) goto block_316A;

  block_3112:
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x3D */
    /* loopscr value_u8=0x40 */
    /* loopscr value_u8=0x25 */
    /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */

  block_312F:
    if condition goto block_3165;

  block_3132:
    if (Item.getQLo(npc) != baseLink) goto block_3161;

  block_3144:

  block_3161:
    /* loopnext  */
    goto block_312F;

  block_3165:
    goto block_3456;

  block_316A:
    if (cmd != 3) goto block_3456;

  block_3172:
    scmd = (qHi & 7);
    a = (qHi / 8);
    if (scmd != 0) goto block_321E;

  block_318E:
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x3D */
    /* loopscr value_u8=0x40 */
    /* loopscr value_u8=0x25 */
    /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */

  block_31AB:
    if condition goto block_3219;

  block_31AE:
    if (Item.getQLo(npc) != baseLink) goto block_3215;

  block_31C0:
    if (a != 1) goto block_31D8;

  block_31C8:
    goto block_3215;

  block_31D8:
    if (a != 2) goto block_31F0;

  block_31E0:
    goto block_3215;

  block_31F0:
    if (a != 3) goto block_3208;

  block_31F8:
    goto block_3215;

  block_3208:

  block_3215:
    /* loopnext  */
    goto block_31AB;

  block_3219:
    goto block_3453;

  block_321E:
    if (scmd != 1) goto block_32A1;

  block_3226:
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x3D */
    /* loopscr value_u8=0x40 */
    /* loopscr value_u8=0x25 */
    /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */

  block_3243:
    if condition goto block_329C;

  block_3246:
    if (Item.getQLo(npc) != baseLink) goto block_3298;

  block_3258:
    spawn class_0A0C_slot_32(pid, 1, 0x00000000);
    suspend;

  block_3298:
    /* loopnext  */
    goto block_3243;

  block_329C:
    goto block_3453;

  block_32A1:
    if (scmd != 2) goto block_3324;

  block_32A9:
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x3D */
    /* loopscr value_u8=0x40 */
    /* loopscr value_u8=0x25 */
    /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */

  block_32C6:
    if condition goto block_331F;

  block_32C9:
    if (Item.getQLo(npc) != baseLink) goto block_331B;

  block_32DB:
    spawn class_0A0C_slot_32(pid, 1, 0x00000000);
    suspend;

  block_331B:
    /* loopnext  */
    goto block_32C6;

  block_331F:
    goto block_3453;

  block_3324:
    if (scmd != 3) goto block_33A7;

  block_332C:
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x3D */
    /* loopscr value_u8=0x40 */
    /* loopscr value_u8=0x25 */
    /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */

  block_3349:
    if condition goto block_33A2;

  block_334C:
    if (Item.getQLo(npc) != baseLink) goto block_339E;

  block_335E:
    spawn class_0A0C_slot_32(pid, 1, 0x00000000);
    suspend;

  block_339E:
    /* loopnext  */
    goto block_3349;

  block_33A2:
    goto block_3453;

  block_33A7:
    if (scmd != 4) goto block_33FE;

  block_33AF:
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x3D */
    /* loopscr value_u8=0x40 */
    /* loopscr value_u8=0x25 */
    /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */

  block_33CC:
    if condition goto block_33F9;

  block_33CF:
    if (Item.getQLo(npc) != baseLink) goto block_33F5;

  block_33E1:
    k = a;

  block_33F5:
    /* loopnext  */
    goto block_33CC;

  block_33F9:
    goto block_3453;

  block_33FE:
    if (scmd != 5) goto block_3453;

  block_3406:
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x3D */
    /* loopscr value_u8=0x40 */
    /* loopscr value_u8=0x25 */
    /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */

  block_3423:
    if condition goto block_344E;

  block_3426:
    if (Item.getQLo(npc) != baseLink) goto block_344A;

  block_3438:
    spawn class_0A11_equip(a, npc);

  block_344A:
    /* loopnext  */
    goto block_3423;

  block_344E:
    goto block_3453;

  block_3453:
    goto block_3456;

  block_3456:
    return;

}
