function watchns_slot_20() /* entry=273 class_id=0x04C6 slot=0x20 */
{
  entry:
    set_info(0x021B, 0);
    local_0A = Item.getQLo(arg_06);
    if (Item.getMapNum(arg_06) != 0) goto block_034C;

  block_0291:
    for local_04 in nearby_items(shape=0x0510, origin=arg_06) {
      if ((Item.getQLo(local_04) == local_0A) || (local_0A != 0)) {
        if (!Item.getQHi(local_04)) {
          TEXTFILE.slot_21(Item.getQHi(local_04), Item.getQLo(local_04), arg_06);
          /* free_local_string bp_offset=0xFE target=[BP-02h] */
          local_02 = retval;
          spawn TEXTFILE.slot_20(pid, local_02, arg_06);
          /* free_stack_string value_u8=0x0 target=[SP+00h] */
          suspend;
        }
      }
      /* loopnext  */
    }

  block_0307:
    spawn TRIGGER.slot_20(pid, 0, *(arg_06), arg_06);
    suspend;
    spawn WATCHNS.slot_21(pid, arg_06);
    suspend;
    spawn TRIGGER.slot_20(pid, 1, *(arg_06), arg_06);
    suspend;
    goto block_0412;

  block_034C:
    local_0B = 0;
    if Item.getQHi(arg_06) goto block_0402;

  block_035C:
    /* loop_selector local_06 in nearby_items(shape=0x0251, origin=arg_06) */

  block_0374:
    if condition goto block_03A0;

  block_0377:
    if (Item.getQLo(local_06) != local_0A) goto block_039C;

  block_0386:
    VALBOX.slot_20(local_06);
    local_08 = retval;
    local_0B = (1 + local_0B);
    goto block_03A0;

  block_039C:
    /* loopnext  */
    goto block_0374;

  block_03A0:
    if local_0B goto block_03CC;

  block_03A7:
    TEXTFILE.slot_23(local_08, Item.getQHi(arg_06), Item.getQLo(arg_06), arg_06);
    /* free_local_string bp_offset=0xFE target=[BP-02h] */
    local_02 = retval;
    goto block_03EC;

  block_03CC:
    TEXTFILE.slot_21(Item.getQHi(arg_06), Item.getQLo(arg_06), arg_06);
    /* free_local_string bp_offset=0xFE target=[BP-02h] */
    local_02 = retval;

  block_03EC:
    spawn TEXTFILE.slot_20(pid, local_02, arg_06);
    /* free_stack_string value_u8=0x0 target=[SP+00h] */
    suspend;

  block_0402:
    spawn WATCHNS.slot_21(pid, arg_06);
    suspend;

  block_0412:
    /* bit_not  */
    /* free_local_string bp_offset=0xFE target=[BP-02h] */
    return;

}
