[*] Binary protection state of pdbtool

  
  	Full RELRO     Canary found      NX disabled  PIE enabled  No RPATH     No RUNPATH   No Symbols


[*] Function printf tear down of pdbtool

    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/pdbtool @ 0x6674 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.pdbtool_merge_start_element ()       | void pdbtool_merge_start_element () {
    0x00006674 lui gp, 3                             |     
    0x00006678 addiu gp, gp, -0x3174                 |     
    0x0000667c addu gp, gp, t9                       |     gp += t9;
    0x00006680 addiu sp, sp, -0x38                   |     
    0x00006684 lw t9, -0x7aa0(gp)                    |     t9 = *((gp - 7848));
    0x00006688 sw s2, 0x24(sp)                       |     *(var_24h) = s2;
    0x0000668c move s2, a1                           |     s2 = a1;
    0x00006690 lw a1, -0x7fdc(gp)                    |     a1 = *((gp - 8183));
    0x00006694 sw gp, 0x10(sp)                       |     *(var_10h) = gp;
    0x00006698 sw s3, 0x28(sp)                       |     *(var_28h) = s3;
    0x0000669c sw s1, 0x20(sp)                       |     *(var_20h) = s1;
    0x000066a0 sw s0, 0x1c(sp)                       |     *(var_1ch) = s0;
    0x000066a4 sw ra, 0x34(sp)                       |     *(var_34h) = ra;
    0x000066a8 sw s5, 0x30(sp)                       |     *(var_30h) = s5;
    0x000066ac sw s4, 0x2c(sp)                       |     *(var_2ch) = s4;
                                                     |     /* str.patterndb */
    0x000066b0 addiu a1, a1, -0x7d6c                 |     a1 += -0x7d6c;
    0x000066b4 move a0, s2                           |     a0 = s2;
    0x000066b8 move s0, a2                           |     s0 = a2;
    0x000066bc move s1, a3                           |     s1 = a3;
    0x000066c0 lw s3, 0x48(sp)                       |     s3 = *(arg_48h);
    0x000066c4 jalr t9                               |     t9 ();
    0x000066c8 lw gp, 0x10(sp)                       |     gp = *(var_10h);
                                                     |     if (v0 == 0) {
    0x000066cc beqz v0, 0x6758                       |         goto label_4;
                                                     |     }
    0x000066d0 lw a0, (s0)                           |     a0 = *(s0);
    0x000066d4 lw s4, -0x7fdc(gp)                    |     s4 = *((gp - 8183));
                                                     |     if (a0 == 0) {
    0x000066d8 beqz a0, 0x6734                       |         goto label_5;
                                                     |     }
    0x000066dc move s2, zero                         |     s2 = 0;
                                                     |     /* esilref: 'version' */
    0x000066e0 addiu s4, s4, -0x7d0c                 |     s4 += -0x7d0c;
    0x000066e4 b 0x66f8                              |     
                                                     |     while (v0 == 0) {
    0x000066e8 addiu s2, s2, 4                       |         s2 += 4;
    0x000066ec lwx a0, s2(s0)                        |         __asm ("lwx a0, s2(s0)");
    0x000066f0 lw ra, 0x34(sp)                       |         ra = *(var_34h);
                                                     |         if (a0 == 0) {
    0x000066f4 beqz a0, 0x6738                       |             goto label_6;
                                                     |         }
                                                     | label_0:
    0x000066f8 lw t9, -0x7aa0(gp)                    |         t9 = *((gp - 7848));
    0x000066fc move a1, s4                           |         a1 = s4;
    0x00006700 jalr t9                               |         t9 ();
    0x00006704 lw gp, 0x10(sp)                       |         gp = *(var_10h);
    0x00006708 beqz v0, 0x66e8                       |         
                                                     |     }
    0x0000670c lwx a0, s2(s1)                        |     __asm ("lwx a0, s2(s1)");
    0x00006710 lw t9, -0x7c24(gp)                    |     t9 = sym.imp.strtol;
    0x00006714 addiu s2, s2, 4                       |     s2 += 4;
    0x00006718 addiu a2, zero, 0xa                   |     a2 = 0xa;
    0x0000671c move a1, zero                         |     a1 = 0;
    0x00006720 jalr t9                               |     t9 ();
    0x00006724 lwx a0, s2(s0)                        |     __asm ("lwx a0, s2(s0)");
    0x00006728 lw gp, 0x10(sp)                       |     gp = *(var_10h);
    0x0000672c sw v0, 4(s3)                          |     *((s3 + 1)) = v0;
                                                     |     if (a0 != 0) {
    0x00006730 bnez a0, 0x66f8                       |         goto label_0;
                                                     |     }
                                                     | label_5:
    0x00006734 lw ra, 0x34(sp)                       |     ra = *(var_34h);
                                                     | label_6:
    0x00006738 lw s5, 0x30(sp)                       |     s5 = *(var_30h);
    0x0000673c lw s4, 0x2c(sp)                       |     s4 = *(var_2ch);
    0x00006740 lw s3, 0x28(sp)                       |     s3 = *(var_28h);
    0x00006744 lw s2, 0x24(sp)                       |     s2 = *(var_24h);
    0x00006748 lw s1, 0x20(sp)                       |     s1 = *(var_20h);
    0x0000674c lw s0, 0x1c(sp)                       |     s0 = *(var_1ch);
    0x00006750 addiu sp, sp, 0x38                    |     
    0x00006754 jr ra                                 |     return v0;
                                                     | label_4:
    0x00006758 lw a1, -0x7fdc(gp)                    |     a1 = *((gp - 8183));
    0x0000675c lw t9, -0x7aa0(gp)                    |     t9 = *((gp - 7848));
                                                     |     /* str.rule */
    0x00006760 addiu a1, a1, -0x7d60                 |     a1 += -0x7d60;
    0x00006764 move a0, s2                           |     a0 = s2;
    0x00006768 jalr t9                               |     t9 ();
    0x0000676c lw gp, 0x10(sp)                       |     gp = *(var_10h);
                                                     |     if (v0 != 0) {
    0x00006770 beqz v0, 0x677c                       |         
    0x00006774 addiu v0, zero, 1                     |         v0 = 1;
    0x00006778 sw v0, 8(s3)                          |         *((s3 + 2)) = v0;
                                                     |     }
    0x0000677c lw a1, -0x7fdc(gp)                    |     a1 = *((gp - 8183));
    0x00006780 lw t9, -0x7aa0(gp)                    |     t9 = *((gp - 7848));
                                                     |     /* str.program */
    0x00006784 addiu a1, a1, -0x7d58                 |     a1 += -0x7d58;
    0x00006788 move a0, s2                           |     a0 = s2;
    0x0000678c jalr t9                               |     t9 ();
    0x00006790 lw gp, 0x10(sp)                       |     gp = *(var_10h);
                                                     |     if (v0 != 0) {
    0x00006794 bnez v0, 0x6864                       |         goto label_7;
                                                     |     }
    0x00006798 lw s4, 4(s3)                          |     s4 = *((s3 + 1));
    0x0000679c addiu v0, zero, 1                     |     v0 = 1;
                                                     |     if (s4 == v0) {
    0x000067a0 beql s4, v0, 0x6880                   |         goto label_8;
                                                     |     }
    0x000067a4 lw v0, 8(s3)                          |     v0 = *((s3 + 2));
                                                     | label_3:
    0x000067a8 lw a1, -0x7fdc(gp)                    |     a1 = *((gp - 8183));
                                                     | label_2:
    0x000067ac lw t9, -0x7d64(gp)                    |     t9 = sym.imp.g_string_append_printf
    0x000067b0 lw a0, (s3)                           |     a0 = *(s3);
    0x000067b4 move a2, s2                           |     a2 = s2;
                                                     |     /* esilref: '<&s' */
    0x000067b8 addiu a1, a1, -0x7cdc                 |     a1 += -0x7cdc;
    0x000067bc jalr t9                               |     t9 ();
    0x000067c0 lw gp, 0x10(sp)                       |     gp = *(var_10h);
                                                     | label_1:
    0x000067c4 lw a1, (s0)                           |     a1 = *(s0);
    0x000067c8 lw s5, -0x7fdc(gp)                    |     s5 = *((gp - 8183));
                                                     |     if (a1 == 0) {
    0x000067cc beqz a1, 0x6830                       |         goto label_9;
                                                     |     }
    0x000067d0 lw s4, -0x7fdc(gp)                    |     s4 = *((gp - 8183));
    0x000067d4 addiu s0, s0, 4                       |     s0 += 4;
                                                     |     /* str.__s_s */
    0x000067d8 addiu s5, s5, -0x7cd8                 |     s5 += -0x7cd8;
                                                     |     /* esilref: '&s' */
    0x000067dc addiu s4, s4, -0x6520                 |     s4 += -0x6520;
                                                     |     do {
    0x000067e0 lw t9, -0x7c34(gp)                    |         t9 = sym.imp.g_markup_printf_escaped
    0x000067e4 lw a2, (s1)                           |         a2 = *(s1);
    0x000067e8 move a0, s5                           |         a0 = s5;
    0x000067ec jalr t9                               |         t9 ();
    0x000067f0 lw gp, 0x10(sp)                       |         gp = *(var_10h);
    0x000067f4 lw a0, (s3)                           |         a0 = *(s3);
    0x000067f8 move a1, s4                           |         a1 = s4;
    0x000067fc lw t9, -0x7d64(gp)                    |         t9 = sym.imp.g_string_append_printf
    0x00006800 move a2, v0                           |         a2 = v0;
    0x00006804 move s2, v0                           |         s2 = v0;
    0x00006808 jalr t9                               |         t9 ();
    0x0000680c lw gp, 0x10(sp)                       |         gp = *(var_10h);
    0x00006810 move a0, s2                           |         a0 = s2;
    0x00006814 addiu s1, s1, 4                       |         s1 += 4;
    0x00006818 lw t9, -0x7c38(gp)                    |         t9 = *((gp - 7950));
    0x0000681c addiu s0, s0, 4                       |         s0 += 4;
    0x00006820 jalr t9                               |         t9 ();
    0x00006824 lw a1, -4(s0)                         |         a1 = *((s0 - 1));
    0x00006828 lw gp, 0x10(sp)                       |         gp = *(var_10h);
    0x0000682c bnez a1, 0x67e0                       |         
                                                     |     } while (a1 != 0);
                                                     | label_9:
    0x00006830 lw a1, -0x7fdc(gp)                    |     a1 = *((gp - 8183));
    0x00006834 lw a0, (s3)                           |     a0 = *(s3);
    0x00006838 lw ra, 0x34(sp)                       |     ra = *(var_34h);
    0x0000683c lw s5, 0x30(sp)                       |     s5 = *(var_30h);
    0x00006840 lw s4, 0x2c(sp)                       |     s4 = *(var_2ch);
    0x00006844 lw s3, 0x28(sp)                       |     s3 = *(var_28h);
    0x00006848 lw s2, 0x24(sp)                       |     s2 = *(var_24h);
    0x0000684c lw s1, 0x20(sp)                       |     s1 = *(var_20h);
    0x00006850 lw s0, 0x1c(sp)                       |     s0 = *(var_1ch);
    0x00006854 lw t9, -0x7d48(gp)                    |     t9 = sym.imp.g_string_append;
    0x00006858 addiu a1, a1, -0x70dc                 |     a1 += -0x70dc;
    0x0000685c addiu sp, sp, 0x38                    |     
    0x00006860 jr t9                                 |     t9 ();
                                                     | label_7:
    0x00006864 lw a1, -0x7fdc(gp)                    |     a1 = *((gp - 8183));
    0x00006868 lw t9, -0x7d48(gp)                    |     t9 = sym.imp.g_string_append;
    0x0000686c lw a0, (s3)                           |     a0 = *(s3);
                                                     |     /* str._ruleset */
    0x00006870 addiu a1, a1, -0x7d04                 |     a1 += -0x7d04;
    0x00006874 jalr t9                               |     t9 ();
    0x00006878 lw gp, 0x10(sp)                       |     gp = *(var_10h);
    0x0000687c b 0x67c4                              |     goto label_1;
                                                     | label_8:
    0x00006880 lw a1, -0x7fdc(gp)                    |     a1 = *((gp - 8183));
                                                     |     if (v0 == 0) {
    0x00006884 beqz v0, 0x67ac                       |         goto label_2;
                                                     |     }
    0x00006888 lw a1, -0x7fdc(gp)                    |     a1 = *((gp - 8183));
    0x0000688c lw t9, -0x7aa0(gp)                    |     t9 = *((gp - 7848));
                                                     |     /* str.pattern */
    0x00006890 addiu a1, a1, -0x7d44                 |     a1 += -0x7d44;
    0x00006894 move a0, s2                           |     a0 = s2;
    0x00006898 jalr t9                               |     t9 ();
    0x0000689c lw gp, 0x10(sp)                       |     gp = *(var_10h);
                                                     |     if (v0 != 0) {
    0x000068a0 bnez v0, 0x68f4                       |         goto label_10;
                                                     |     }
    0x000068a4 lw v0, 4(s3)                          |     v0 = *((s3 + 1));
    0x000068a8 lw a1, -0x7fdc(gp)                    |     a1 = *((gp - 8183));
                                                     |     if (v0 != s4) {
    0x000068ac bne v0, s4, 0x67ac                    |         goto label_2;
                                                     |     }
    0x000068b0 lw v0, 8(s3)                          |     v0 = *((s3 + 2));
    0x000068b4 lw t9, -0x7aa0(gp)                    |     t9 = *((gp - 7848));
                                                     |     if (v0 == 0) {
    0x000068b8 beqz v0, 0x67ac                       |         goto label_2;
                                                     |     }
    0x000068bc lw a1, -0x7fdc(gp)                    |     a1 = *((gp - 8183));
                                                     |     /* esilref: 'url' */
    0x000068c0 addiu a1, a1, -0x7d28                 |     a1 += -0x7d28;
    0x000068c4 move a0, s2                           |     a0 = s2;
    0x000068c8 jalr t9                               |     t9 ();
    0x000068cc lw gp, 0x10(sp)                       |     gp = *(var_10h);
                                                     |     if (v0 == 0) {
    0x000068d0 beqz v0, 0x67a8                       |         goto label_3;
                                                     |     }
    0x000068d4 lw a1, -0x7fdc(gp)                    |     a1 = *((gp - 8183));
    0x000068d8 lw t9, -0x7d64(gp)                    |     t9 = sym.imp.g_string_append_printf
    0x000068dc lw a0, (s3)                           |     a0 = *(s3);
    0x000068e0 move a2, s2                           |     a2 = s2;
                                                     |     /* str._urls__n__s */
    0x000068e4 addiu a1, a1, -0x7ce8                 |     a1 += -0x7ce8;
    0x000068e8 jalr t9                               |     t9 ();
    0x000068ec lw gp, 0x10(sp)                       |     gp = *(var_10h);
    0x000068f0 b 0x67c4                              |     goto label_1;
                                                     | label_10:
    0x000068f4 lw a1, -0x7fdc(gp)                    |     a1 = *((gp - 8183));
    0x000068f8 lw t9, -0x7d64(gp)                    |     t9 = sym.imp.g_string_append_printf
    0x000068fc lw a0, (s3)                           |     a0 = *(s3);
    0x00006900 move a2, s2                           |     a2 = s2;
                                                     |     /* str._patterns__n__s */
    0x00006904 addiu a1, a1, -0x7cf8                 |     a1 += -0x7cf8;
    0x00006908 jalr t9                               |     t9 ();
    0x0000690c lw gp, 0x10(sp)                       |     gp = *(var_10h);
    0x00006910 b 0x67c4                              |     goto label_1;
                                                     | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/pdbtool @ 0x14984 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.ptz_find_clusters_slct ()        | void ptz_find_clusters_slct () {
    0x00014984 lui gp, 2                         |     
    0x00014988 addiu gp, gp, -0x1484             |     
    0x0001498c addu gp, gp, t9                   |     gp += t9;
    0x00014990 lw v0, -0x7a84(gp)                |     v0 = *((gp - 7841));
    0x00014994 addiu sp, sp, -0x88               |     
    0x00014998 lw t9, -0x7dc8(gp)                |     t9 = sym.ptz_find_frequent_words;
    0x0001499c sw v0, 0x4c(sp)                   |     *(var_4ch) = v0;
    0x000149a0 lw v0, (v0)                       |     v0 = *(v0);
    0x000149a4 sw ra, 0x84(sp)                   |     *(var_84h) = ra;
    0x000149a8 sw gp, 0x18(sp)                   |     *(var_18h) = gp;
    0x000149ac sw fp, 0x80(sp)                   |     *(var_80h) = fp;
    0x000149b0 sw s5, 0x74(sp)                   |     *(var_74h) = s5;
    0x000149b4 sw s0, 0x60(sp)                   |     *(var_60h) = s0;
    0x000149b8 sw a3, 0x94(sp)                   |     *(arg_94h) = a3;
    0x000149bc sw a1, 0x8c(sp)                   |     *(arg_8ch) = a1;
    0x000149c0 addiu a3, zero, 1                 |     a3 = 1;
    0x000149c4 sw a2, 0x38(sp)                   |     *(var_38h) = a2;
    0x000149c8 sw s7, 0x7c(sp)                   |     *(var_7ch) = s7;
    0x000149cc sw s6, 0x78(sp)                   |     *(var_78h) = s6;
    0x000149d0 sw s4, 0x70(sp)                   |     *(var_70h) = s4;
    0x000149d4 sw s3, 0x6c(sp)                   |     *(var_6ch) = s3;
    0x000149d8 sw s2, 0x68(sp)                   |     *(var_68h) = s2;
    0x000149dc sw s1, 0x64(sp)                   |     *(var_64h) = s1;
    0x000149e0 sw v0, 0x5c(sp)                   |     *(var_5ch) = v0;
    0x000149e4 move fp, a0                       |     fp = a0;
    0x000149e8 bal 0x143b8                       |     sym_ptz_find_frequent_words ();
    0x000149ec lw gp, 0x18(sp)                   |     gp = *(var_18h);
    0x000149f0 move s5, v0                       |     s5 = v0;
    0x000149f4 lw a3, -0x7f64(gp)                |     a3 = *(gp);
    0x000149f8 lw t9, -0x7b08(gp)                |     t9 = sym.imp.g_hash_table_new_full;
    0x000149fc lw a2, -0x7c38(gp)                |     a2 = *((gp - 7950));
    0x00014a00 lw a1, -0x7aa0(gp)                |     a1 = *((gp - 7848));
    0x00014a04 lw a0, -0x7c1c(gp)                |     a0 = *((gp - 7943));
    0x00014a08 addiu a3, a3, 0x3bbc              |     a3 += 0x3bbc;
    0x00014a0c jalr t9                           |     t9 ();
    0x00014a10 lw gp, 0x18(sp)                   |     gp = *(var_18h);
    0x00014a14 move a0, zero                     |     a0 = 0;
    0x00014a18 lw t9, -0x7bfc(gp)                |     t9 = sym.imp.g_string_sized_new;
    0x00014a1c sw v0, 0x44(sp)                   |     *(var_44h) = v0;
    0x00014a20 jalr t9                           |     t9 ();
    0x00014a24 lw v1, 4(fp)                      |     v1 = *(arg_8ch);
    0x00014a28 lw gp, 0x18(sp)                   |     gp = *(var_18h);
    0x00014a2c move s0, v0                       |     s0 = v0;
                                                 |     if (v1 == 0) {
    0x00014a30 beqz v1, 0x14cb0                  |         goto label_8;
                                                 |     }
    0x00014a34 lw v0, -0x7aec(gp)                |     v0 = *((gp - 7867));
    0x00014a38 lw s4, -0x7fdc(gp)                |     s4 = *((gp - 8183));
    0x00014a3c sw v0, 0x3c(sp)                   |     *(var_3ch_3) = v0;
    0x00014a40 lw v0, -0x7fdc(gp)                |     v0 = *((gp - 8183));
    0x00014a44 move s6, zero                     |     s6 = 0;
    0x00014a48 sw v0, 0x40(sp)                   |     *(var_40h_2) = v0;
    0x00014a4c lw v0, -0x7fd8(gp)                |     v0 = *((gp - 8182));
                                                 |     /* str._d__s */
    0x00014a50 addiu s4, s4, -0x5728             |     s4 += -0x5728;
    0x00014a54 sw v0, 0x48(sp)                   |     *(var_48h_2) = v0;
    0x00014a58 lw v0, -0x7fdc(gp)                |     v0 = *((gp - 8183));
                                                 |     /* str._d__c_c */
    0x00014a5c addiu v0, v0, -0x5720             |     v0 += -0x5720;
    0x00014a60 sw v0, 0x24(sp)                   |     *(var_24h_3) = v0;
                                                 | label_1:
    0x00014a64 lw v0, 0x3c(sp)                   |     v0 = *(var_3ch_3);
    0x00014a68 lw a0, (fp)                       |     a0 = *(fp);
    0x00014a6c lw v1, (v0)                       |     v1 = *(v0);
    0x00014a70 sll v0, s6, 2                     |     v0 = s6 << 2;
    0x00014a74 lw v1, 4(v1)                      |     v1 = *((v1 + 1));
    0x00014a78 lwx a0, v0(a0)                    |     __asm ("lwx a0, v0(a0)");
    0x00014a7c lw v0, (v1)                       |     v0 = *(v1);
    0x00014a80 sw a0, 0x2c(sp)                   |     *(var_2ch_3) = a0;
    0x00014a84 lhu a1, 0x14(v0)                  |     a1 = *((v0 + 10));
    0x00014a88 andi v0, a1, 4                    |     v0 = a1 & 4;
    0x00014a8c lw t9, -0x7b6c(gp)                |     t9 = sym.imp.log_msg_get_macro_value;
                                                 |     if (v0 != 0) {
    0x00014a90 bnez v0, 0x14d34                  |         goto label_9;
                                                 |     }
    0x00014a94 lw s1, 0x48(a0)                   |     s1 = *((a0 + 18));
    0x00014a98 lbu v0, 0xa(s1)                   |     v0 = *((s1 + 10));
    0x00014a9c sltiu v0, v0, 3                   |     v0 = (v0 < 3) ? 1 : 0;
                                                 |     if (v0 == 0) {
    0x00014aa0 beql v0, zero, 0x14d50            |         goto label_10;
                                                 |     }
    0x00014aa4 lw a1, 0x14(s1)                   |     a1 = *((s1 + 5));
    0x00014aa8 lw t9, -0x7c80(gp)                |     t9 = sym.imp.nv_table_get_entry_slow;
    0x00014aac addiu a2, sp, 0x58                |     a2 = sp + 0x58;
    0x00014ab0 addiu a1, zero, 3                 |     a1 = 3;
    0x00014ab4 move a0, s1                       |     a0 = s1;
    0x00014ab8 jalr t9                           |     t9 ();
    0x00014abc lw gp, 0x18(sp)                   |     gp = *(var_18h);
                                                 |     if (v0 == 0) {
                                                 | label_3:
    0x00014ac0 beql v0, zero, 0x14d5c            |         goto label_11;
                                                 |     }
    0x00014ac4 sw zero, 0x54(sp)                 |     *(var_54h) = 0;
    0x00014ac8 lbu v1, (v0)                      |     v1 = *(v0);
    0x00014acc andi a0, v1, 4                    |     a0 = v1 & 4;
    0x00014ad0 andi v1, v1, 1                    |     v1 &= 1;
                                                 |     if (a0 != 0) {
    0x00014ad4 bnez a0, 0x14d58                  |         goto label_12;
                                                 |     }
    0x00014ad8 lw t9, -0x7b70(gp)                |     t9 = sym.imp.nv_table_resolve_indirect;
                                                 |     if (v1 != 0) {
    0x00014adc bnez v1, 0x14de4                  |         goto label_13;
                                                 |     }
    0x00014ae0 lw v1, 8(v0)                      |     v1 = *((v0 + 2));
    0x00014ae4 sw v1, 0x54(sp)                   |     *(var_54h) = v1;
    0x00014ae8 lbu v1, 1(v0)                     |     v1 = *((v0 + 1));
    0x00014aec addu v0, v0, v1                   |     v0 += v1;
    0x00014af0 addiu v0, v0, 0xd                 |     v0 += 0xd;
    0x00014af4 sw v0, 0x28(sp)                   |     *(var_28h_2) = v0;
                                                 | label_5:
    0x00014af8 lw v0, 0x28(sp)                   |     v0 = *(var_28h_2);
    0x00014afc lw v0, -0x7aac(gp)                |     v0 = *((gp - 7851));
                                                 |     if (v0 == 0) {
    0x00014b00 beqz v0, 0x14d60                  |         goto label_14;
                                                 |     }
                                                 | label_2:
    0x00014b04 lw t9, -0x7a80(gp)                |     t9 = sym.imp.g_string_truncate;
    0x00014b08 move a1, zero                     |     a1 = 0;
    0x00014b0c move a0, s0                       |     a0 = s0;
    0x00014b10 jalr t9                           |     t9 ();
    0x00014b14 lw gp, 0x18(sp)                   |     gp = *(var_18h);
    0x00014b18 lw s3, 0x38(sp)                   |     s3 = *(var_38h);
    0x00014b1c lw s2, 0x28(sp)                   |     s2 = *(var_28h_2);
    0x00014b20 lw t9, -0x7a74(gp)                |     t9 = sym.imp.g_strsplit_set;
    0x00014b24 addiu a2, zero, 0x200             |     a2 = 0x200;
    0x00014b28 move a1, s3                       |     a1 = s3;
    0x00014b2c move a0, s2                       |     a0 = s2;
    0x00014b30 jalr t9                           |     t9 ();
    0x00014b34 lw gp, 0x18(sp)                   |     gp = *(var_18h);
    0x00014b38 move s1, v0                       |     s1 = v0;
    0x00014b3c sw v0, 0x30(sp)                   |     *(var_30h_3) = v0;
    0x00014b40 lw t9, -0x7dc4(gp)                |     t9 = sym.ptz_find_delimiters;
    0x00014b44 move a1, s3                       |     a1 = s3;
    0x00014b48 move a0, s2                       |     a0 = s2;
    0x00014b4c bal 0x142d0                       |     sym_ptz_find_delimiters ();
    0x00014b50 lw a2, (s1)                       |     a2 = *(s1);
    0x00014b54 lw gp, 0x18(sp)                   |     gp = *(var_18h);
    0x00014b58 sw v0, 0x34(sp)                   |     *(var_34h_3) = v0;
                                                 |     if (a2 == 0) {
    0x00014b5c beqz a2, 0x14e00                  |         goto label_15;
                                                 |     }
    0x00014b60 addiu s3, s1, 4                   |     s3 = s1 + 4;
    0x00014b64 move s7, zero                     |     s7 = 0;
    0x00014b68 move s2, zero                     |     s2 = 0;
    0x00014b6c b 0x14be0                         |     
                                                 |     while (v0 != 0) {
    0x00014b70 lw t9, -0x7d48(gp)                |         t9 = sym.imp.g_string_append;
    0x00014b74 move a0, s0                       |         a0 = s0;
    0x00014b78 move a1, s1                       |         a1 = s1;
    0x00014b7c jalr t9                           |         t9 ();
    0x00014b80 lw a0, 4(s0)                      |         a0 = *((s0 + 1));
    0x00014b84 lw v0, 8(s0)                      |         v0 = *((s0 + 2));
    0x00014b88 addiu v1, a0, 1                   |         v1 = a0 + 1;
    0x00014b8c sltu v0, v1, v0                   |         v0 = (v1 < v0) ? 1 : 0;
    0x00014b90 lw gp, 0x18(sp)                   |         gp = *(var_18h);
                                                 |         if (v0 == 0) {
    0x00014b94 beqz v0, 0x14c38                  |             goto label_16;
                                                 |         }
    0x00014b98 lw v0, (s0)                       |         v0 = *(s0);
    0x00014b9c sw v1, 4(s0)                      |         *((s0 + 1)) = v1;
    0x00014ba0 addu v0, v0, a0                   |         v0 += a0;
    0x00014ba4 addiu v1, zero, 0x1e              |         v1 = 0x1e;
    0x00014ba8 sb v1, (v0)                       |         *(v0) = v1;
    0x00014bac lw v0, (s0)                       |         v0 = *(s0);
    0x00014bb0 lw v1, 4(s0)                      |         v1 = *((s0 + 1));
    0x00014bb4 addiu s7, zero, 1                 |         s7 = 1;
    0x00014bb8 addu v0, v0, v1                   |         v0 += v1;
    0x00014bbc sb zero, (v0)                     |         *(v0) = 0;
                                                 | label_0:
    0x00014bc0 lw t9, -0x7c38(gp)                |         t9 = *((gp - 7950));
    0x00014bc4 addiu s3, s3, 4                   |         s3 += 4;
    0x00014bc8 move a0, s1                       |         a0 = s1;
    0x00014bcc jalr t9                           |         t9 ();
    0x00014bd0 lw a2, -4(s3)                     |         a2 = *((s3 - 1));
    0x00014bd4 lw gp, 0x18(sp)                   |         gp = *(var_18h);
    0x00014bd8 addiu s2, s2, 1                   |         s2++;
                                                 |         if (a2 == 0) {
    0x00014bdc beqz a2, 0x14c58                  |             goto label_17;
                                                 |         }
    0x00014be0 lw t9, -0x7b28(gp)                |         t9 = sym.imp.g_strdup_printf
    0x00014be4 move a1, s2                       |         a1 = s2;
    0x00014be8 move a0, s4                       |         a0 = s4;
    0x00014bec jalr t9                           |         t9 ();
    0x00014bf0 lw gp, 0x18(sp)                   |         gp = *(var_18h);
    0x00014bf4 move a1, v0                       |         a1 = v0;
    0x00014bf8 move a0, s5                       |         a0 = s5;
    0x00014bfc lw t9, -0x7bbc(gp)                |         t9 = sym.imp.g_hash_table_lookup;
    0x00014c00 move s1, v0                       |         s1 = v0;
    0x00014c04 jalr t9                           |         t9 ();
    0x00014c08 lw gp, 0x18(sp)                   |         gp = *(var_18h);
    0x00014c0c bnez v0, 0x14b70                  |         
                                                 |     }
    0x00014c10 lw t9, -0x7d64(gp)                |     t9 = sym.imp.g_string_append_printf
    0x00014c14 addiu v0, zero, 0x1e              |     v0 = 0x1e;
    0x00014c18 lw a1, 0x24(sp)                   |     a1 = *(var_24h_3);
    0x00014c1c sw v0, 0x10(sp)                   |     *(var_10h_3) = v0;
    0x00014c20 addiu a3, zero, 0x1a              |     a3 = 0x1a;
    0x00014c24 move a2, s2                       |     a2 = s2;
    0x00014c28 move a0, s0                       |     a0 = s0;
    0x00014c2c jalr t9                           |     t9 ();
    0x00014c30 lw gp, 0x18(sp)                   |     gp = *(var_18h);
    0x00014c34 b 0x14bc0                         |     goto label_0;
                                                 | label_16:
    0x00014c38 lw t9, -0x7b84(gp)                |     t9 = sym.imp.g_string_insert_c;
    0x00014c3c addiu a2, zero, 0x1e              |     a2 = 0x1e;
    0x00014c40 addiu a1, zero, -1                |     a1 = -1;
    0x00014c44 move a0, s0                       |     a0 = s0;
    0x00014c48 jalr t9                           |     t9 ();
    0x00014c4c addiu s7, zero, 1                 |     s7 = 1;
    0x00014c50 lw gp, 0x18(sp)                   |     gp = *(var_18h);
    0x00014c54 b 0x14bc0                         |     goto label_0;
                                                 | label_17:
    0x00014c58 lw s1, 0x34(sp)                   |     s1 = *(var_34h_3);
    0x00014c5c lw v0, 0x40(sp)                   |     v0 = *(var_40h_2);
    0x00014c60 lw t9, -0x7d64(gp)                |     t9 = sym.imp.g_string_append_printf
    0x00014c64 addiu a3, zero, 0x1e              |     a3 = 0x1e;
    0x00014c68 move a2, s1                       |     a2 = s1;
    0x00014c6c addiu a1, v0, -0x5718             |     a1 = v0 + -0x5718;
    0x00014c70 move a0, s0                       |     a0 = s0;
    0x00014c74 jalr t9                           |     t9 ();
    0x00014c78 lw gp, 0x18(sp)                   |     gp = *(var_18h);
    0x00014c7c lw t9, -0x7c38(gp)                |     t9 = *((gp - 7950));
    0x00014c80 move a0, s1                       |     a0 = s1;
    0x00014c84 jalr t9                           |     t9 ();
    0x00014c88 lw gp, 0x18(sp)                   |     gp = *(var_18h);
                                                 |     if (s7 != 0) {
    0x00014c8c bnez s7, 0x14d7c                  |         goto label_18;
                                                 |     }
                                                 | label_4:
    0x00014c90 lw t9, -0x7bec(gp)                |     t9 = sym.imp.g_strfreev;
    0x00014c94 lw a0, 0x30(sp)                   |     a0 = *(var_30h_3);
    0x00014c98 addiu s6, s6, 1                   |     s6++;
    0x00014c9c jalr t9                           |     t9 ();
    0x00014ca0 lw v0, 4(fp)                      |     v0 = *(arg_8ch);
    0x00014ca4 sltu v0, s6, v0                   |     v0 = (s6 < v0) ? 1 : 0;
    0x00014ca8 lw gp, 0x18(sp)                   |     gp = *(var_18h);
                                                 |     if (v0 != 0) {
    0x00014cac bnez v0, 0x14a64                  |         goto label_1;
                                                 |     }
                                                 | label_8:
    0x00014cb0 lw s1, 0x44(sp)                   |     s1 = *(var_44h);
    0x00014cb4 lw a1, -0x7dc0(gp)                |     a1 = sym.ptz_find_clusters_remove_cluster_predicate;
    0x00014cb8 lw t9, -0x7b3c(gp)                |     t9 = sym.imp.g_hash_table_foreach_remove;
    0x00014cbc lw a2, 0x8c(sp)                   |     a2 = *(arg_8ch);
    0x00014cc0 move a0, s1                       |     a0 = s1;
    0x00014cc4 jalr t9                           |     t9 ();
    0x00014cc8 lw gp, 0x18(sp)                   |     gp = *(var_18h);
    0x00014ccc lw t9, -0x7c48(gp)                |     t9 = sym.imp.g_hash_table_unref;
    0x00014cd0 move a0, s5                       |     a0 = s5;
    0x00014cd4 jalr t9                           |     t9 ();
    0x00014cd8 lw gp, 0x18(sp)                   |     gp = *(var_18h);
    0x00014cdc move a0, s0                       |     a0 = s0;
    0x00014ce0 lw t9, -0x7ca4(gp)                |     t9 = sym.imp.g_string_free;
    0x00014ce4 addiu a1, zero, 1                 |     a1 = 1;
    0x00014ce8 jalr t9                           |     t9 ();
    0x00014cec lw v0, 0x4c(sp)                   |     v0 = *(var_4ch);
    0x00014cf0 lw a0, 0x5c(sp)                   |     a0 = *(var_5ch);
    0x00014cf4 lw gp, 0x18(sp)                   |     gp = *(var_18h);
    0x00014cf8 lw v1, (v0)                       |     v1 = *(v0);
    0x00014cfc move v0, s1                       |     v0 = s1;
                                                 |     if (a0 != v1) {
    0x00014d00 bne a0, v1, 0x14f20               |         goto label_19;
                                                 |     }
    0x00014d04 lw ra, 0x84(sp)                   |     ra = *(var_84h);
    0x00014d08 lw fp, 0x80(sp)                   |     fp = *(var_80h);
    0x00014d0c lw s7, 0x7c(sp)                   |     s7 = *(var_7ch);
    0x00014d10 lw s6, 0x78(sp)                   |     s6 = *(var_78h);
    0x00014d14 lw s5, 0x74(sp)                   |     s5 = *(var_74h);
    0x00014d18 lw s4, 0x70(sp)                   |     s4 = *(var_70h);
    0x00014d1c lw s3, 0x6c(sp)                   |     s3 = *(var_6ch);
    0x00014d20 lw s2, 0x68(sp)                   |     s2 = *(var_68h);
    0x00014d24 lw s1, 0x64(sp)                   |     s1 = *(var_64h);
    0x00014d28 lw s0, 0x60(sp)                   |     s0 = *(var_60h);
    0x00014d2c addiu sp, sp, 0x88                |     
    0x00014d30 jr ra                             |     return v0;
                                                 | label_9:
    0x00014d34 lw a0, 0x2c(sp)                   |     a0 = *(var_2ch_3);
    0x00014d38 addiu a2, sp, 0x54                |     a2 = sp + 0x54;
    0x00014d3c srl a1, a1, 8                     |     a1 >>= 8;
    0x00014d40 jalr t9                           |     t9 ();
    0x00014d44 sw v0, 0x28(sp)                   |     *(var_28h_2) = v0;
    0x00014d48 lw gp, 0x18(sp)                   |     gp = *(var_18h);
    0x00014d4c b 0x14b04                         |     goto label_2;
                                                 | label_10:
    0x00014d50 sw zero, 0x58(sp)                 |     *(var_58h) = 0;
                                                 |     if (a1 == 0) {
    0x00014d54 bnez a1, 0x14d6c                  |         
                                                 | label_12:
    0x00014d58 sw zero, 0x54(sp)                 |         *(var_54h) = 0;
                                                 | label_11:
    0x00014d5c lw v0, -0x7aac(gp)                |         v0 = *((gp - 7851));
                                                 | label_14:
    0x00014d60 lw v0, (v0)                       |         v0 = *(v0);
    0x00014d64 sw v0, 0x28(sp)                   |         *(var_28h_2) = v0;
    0x00014d68 b 0x14b04                         |         goto label_2;
                                                 |     }
    0x00014d6c lw v0, (s1)                       |     v0 = *(s1);
    0x00014d70 subu v0, v0, a1                   |     __asm ("subu v0, v0, a1");
    0x00014d74 addu v0, s1, v0                   |     v0 = s1 + v0;
    0x00014d78 b 0x14ac0                         |     goto label_3;
                                                 | label_18:
    0x00014d7c lw t9, -0x7bbc(gp)                |     t9 = sym.imp.g_hash_table_lookup;
    0x00014d80 lw a1, (s0)                       |     a1 = *(s0);
    0x00014d84 lw a0, 0x44(sp)                   |     a0 = *(var_44h);
    0x00014d88 jalr t9                           |     t9 ();
    0x00014d8c move s1, v0                       |     s1 = v0;
    0x00014d90 lw gp, 0x18(sp)                   |     gp = *(var_18h);
                                                 |     if (v0 == 0) {
    0x00014d94 beqz v0, 0x14e38                  |         goto label_20;
                                                 |     }
    0x00014d98 lw t9, -0x7d24(gp)                |     t9 = sym.imp.g_ptr_array_add;
    0x00014d9c lw a0, (v0)                       |     a0 = *(v0);
    0x00014da0 lw a1, 0x2c(sp)                   |     a1 = *(var_2ch_3);
    0x00014da4 jalr t9                           |     t9 ();
    0x00014da8 lw s1, 8(s1)                      |     s1 = *((s1 + 2));
    0x00014dac lw gp, 0x18(sp)                   |     gp = *(var_18h);
                                                 |     if (s1 == 0) {
    0x00014db0 beqz s1, 0x14dc8                  |         goto label_6;
                                                 |     }
    0x00014db4 lw v0, 4(s1)                      |     v0 = *((s1 + 1));
    0x00014db8 lw v1, 0x94(sp)                   |     v1 = *(arg_94h);
    0x00014dbc sltu v0, v0, v1                   |     v0 = (v0 < v1) ? 1 : 0;
    0x00014dc0 lw t9, -0x7b0c(gp)                |     t9 = sym.imp.g_strdup;
                                                 |     if (v0 != 0) {
    0x00014dc4 bnez v0, 0x14ebc                  |         goto label_21;
                                                 |     }
                                                 |     do {
                                                 | label_6:
    0x00014dc8 lw v0, 0x48(sp)                   |         v0 = *(var_48h_2);
    0x00014dcc lw t9, -0x7b1c(gp)                |         t9 = sym.imp.log_msg_set_tag_by_id;
    0x00014dd0 lw a0, 0x2c(sp)                   |         a0 = *(var_2ch_3);
    0x00014dd4 lhu a1, -0x4390(v0)               |         a1 = *((v0 - 8648));
    0x00014dd8 jalr t9                           |         t9 ();
    0x00014ddc lw gp, 0x18(sp)                   |         gp = *(var_18h);
    0x00014de0 b 0x14c90                         |         goto label_4;
                                                 | label_13:
    0x00014de4 addiu a2, sp, 0x54                |         a2 = sp + 0x54;
    0x00014de8 move a1, v0                       |         a1 = v0;
    0x00014dec move a0, s1                       |         a0 = s1;
    0x00014df0 jalr t9                           |         t9 ();
    0x00014df4 sw v0, 0x28(sp)                   |         *(var_28h_2) = v0;
    0x00014df8 lw gp, 0x18(sp)                   |         gp = *(var_18h);
    0x00014dfc b 0x14af8                         |         goto label_5;
                                                 | label_15:
    0x00014e00 lw s1, 0x34(sp)                   |         s1 = *(var_34h_3);
    0x00014e04 lw v0, 0x40(sp)                   |         v0 = *(var_40h_2);
    0x00014e08 lw t9, -0x7d64(gp)                |         t9 = sym.imp.g_string_append_printf
    0x00014e0c addiu a3, zero, 0x1e              |         a3 = 0x1e;
    0x00014e10 move a2, s1                       |         a2 = s1;
    0x00014e14 addiu a1, v0, -0x5718             |         a1 = v0 + -0x5718;
    0x00014e18 move a0, s0                       |         a0 = s0;
    0x00014e1c jalr t9                           |         t9 ();
    0x00014e20 lw gp, 0x18(sp)                   |         gp = *(var_18h);
    0x00014e24 lw t9, -0x7c38(gp)                |         t9 = *((gp - 7950));
    0x00014e28 move a0, s1                       |         a0 = s1;
    0x00014e2c jalr t9                           |         t9 ();
    0x00014e30 lw gp, 0x18(sp)                   |         gp = *(var_18h);
    0x00014e34 b 0x14c90                         |         goto label_4;
                                                 | label_20:
    0x00014e38 lw t9, -0x7d14(gp)                |         t9 = sym.imp.g_malloc0;
    0x00014e3c addiu a0, zero, 0xc               |         a0 = 0xc;
    0x00014e40 jalr t9                           |         t9 ();
    0x00014e44 move s1, v0                       |         s1 = v0;
    0x00014e48 lw v0, 0x94(sp)                   |         v0 = *(arg_94h);
    0x00014e4c lw gp, 0x18(sp)                   |         gp = *(var_18h);
                                                 |         if (v0 != 0) {
    0x00014e50 bnez v0, 0x14ee0                  |             goto label_22;
                                                 |         }
                                                 | label_7:
    0x00014e54 lw t9, -0x7b4c(gp)                |         t9 = sym.imp.g_ptr_array_sized_new;
    0x00014e58 addiu a0, zero, 0x40              |         a0 = 0x40;
    0x00014e5c jalr t9                           |         t9 ();
    0x00014e60 lw gp, 0x18(sp)                   |         gp = *(var_18h);
    0x00014e64 lw a1, 0x2c(sp)                   |         a1 = *(var_2ch_3);
    0x00014e68 move a0, v0                       |         a0 = v0;
    0x00014e6c lw t9, -0x7d24(gp)                |         t9 = sym.imp.g_ptr_array_add;
    0x00014e70 sw v0, (s1)                       |         *(s1) = v0;
    0x00014e74 jalr t9                           |         t9 ();
    0x00014e78 lw gp, 0x18(sp)                   |         gp = *(var_18h);
    0x00014e7c lw t9, -0x7a68(gp)                |         t9 = sym.imp.g_strdupv;
    0x00014e80 lw a0, 0x30(sp)                   |         a0 = *(var_30h_3);
    0x00014e84 jalr t9                           |         t9 ();
    0x00014e88 lw gp, 0x18(sp)                   |         gp = *(var_18h);
    0x00014e8c lw a0, (s0)                       |         a0 = *(s0);
    0x00014e90 lw t9, -0x7b0c(gp)                |         t9 = sym.imp.g_strdup;
    0x00014e94 sw v0, 4(s1)                      |         *((s1 + 1)) = v0;
    0x00014e98 jalr t9                           |         t9 ();
    0x00014e9c lw gp, 0x18(sp)                   |         gp = *(var_18h);
    0x00014ea0 lw a0, 0x44(sp)                   |         a0 = *(var_44h);
    0x00014ea4 move a2, s1                       |         a2 = s1;
    0x00014ea8 lw t9, -0x7b10(gp)                |         t9 = sym.imp.g_hash_table_insert;
    0x00014eac move a1, v0                       |         a1 = v0;
    0x00014eb0 jalr t9                           |         t9 ();
    0x00014eb4 lw gp, 0x18(sp)                   |         gp = *(var_18h);
    0x00014eb8 b 0x14dc8                         |         
                                                 |     } while (1);
                                                 | label_21:
    0x00014ebc lw a0, 0x28(sp)                   |     a0 = *(var_28h_2);
    0x00014ec0 jalr t9                           |     t9 ();
    0x00014ec4 lw gp, 0x18(sp)                   |     gp = *(var_18h);
    0x00014ec8 move a1, v0                       |     a1 = v0;
    0x00014ecc lw t9, -0x7d24(gp)                |     t9 = sym.imp.g_ptr_array_add;
    0x00014ed0 move a0, s1                       |     a0 = s1;
    0x00014ed4 jalr t9                           |     t9 ();
    0x00014ed8 lw gp, 0x18(sp)                   |     gp = *(var_18h);
    0x00014edc b 0x14dc8                         |     goto label_6;
                                                 | label_22:
    0x00014ee0 lw t9, -0x7b4c(gp)                |     t9 = sym.imp.g_ptr_array_sized_new;
    0x00014ee4 addiu a0, zero, 5                 |     a0 = 5;
    0x00014ee8 jalr t9                           |     t9 ();
    0x00014eec lw gp, 0x18(sp)                   |     gp = *(var_18h);
    0x00014ef0 lw a0, 0x28(sp)                   |     a0 = *(var_28h_2);
    0x00014ef4 sw v0, 8(s1)                      |     *((s1 + 2)) = v0;
    0x00014ef8 lw t9, -0x7b0c(gp)                |     t9 = sym.imp.g_strdup;
    0x00014efc move s2, v0                       |     s2 = v0;
    0x00014f00 jalr t9                           |     t9 ();
    0x00014f04 lw gp, 0x18(sp)                   |     gp = *(var_18h);
    0x00014f08 move a1, v0                       |     a1 = v0;
    0x00014f0c lw t9, -0x7d24(gp)                |     t9 = sym.imp.g_ptr_array_add;
    0x00014f10 move a0, s2                       |     a0 = s2;
    0x00014f14 jalr t9                           |     t9 ();
    0x00014f18 lw gp, 0x18(sp)                   |     gp = *(var_18h);
    0x00014f1c b 0x14e54                         |     goto label_7;
                                                 | label_19:
    0x00014f20 lw t9, -0x7c04(gp)                |     t9 = sym.imp.__stack_chk_fail;
    0x00014f24 jalr t9                           |     t9 ();
    0x00014f28 nop                               |     
                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/pdbtool @ 0x13c74 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.ptz_print_patterndb_rule ()      | void ptz_print_patterndb_rule () {
    0x00013c74 lui gp, 2                         |     
    0x00013c78 addiu gp, gp, -0x774              |     
    0x00013c7c addu gp, gp, t9                   |     gp += t9;
    0x00013c80 lw v0, -0x7a84(gp)                |     v0 = *((gp - 7841));
    0x00013c84 addiu sp, sp, -0xa0               |     
    0x00013c88 lw v1, (a2)                       |     v1 = *(a2);
    0x00013c8c sw s2, 0x80(sp)                   |     *(var_80h) = s2;
    0x00013c90 sw v0, 0x44(sp)                   |     *(var_44h) = v0;
    0x00013c94 move s2, a0                       |     s2 = a0;
    0x00013c98 lw v0, (v0)                       |     v0 = *(v0);
    0x00013c9c lw a0, -0x7fdc(gp)                |     a0 = *((gp - 8183));
    0x00013ca0 lw t9, -0x7a9c(gp)                |     t9 = sym.imp.g_string_new;
    0x00013ca4 sw v1, 0x20(sp)                   |     *(var_20h) = v1;
    0x00013ca8 sw ra, 0x9c(sp)                   |     *(var_9ch) = ra;
    0x00013cac sw gp, 0x10(sp)                   |     *(var_10h) = gp;
    0x00013cb0 sw s7, 0x94(sp)                   |     *(var_94h) = s7;
    0x00013cb4 sw s1, 0x7c(sp)                   |     *(var_7ch) = s1;
    0x00013cb8 sw s0, 0x78(sp)                   |     *(var_78h) = s0;
    0x00013cbc addiu a0, a0, -0x7c38             |     a0 += -0x7c38;
    0x00013cc0 sw fp, 0x98(sp)                   |     *(var_98h) = fp;
    0x00013cc4 sw s6, 0x90(sp)                   |     *(var_90h) = s6;
    0x00013cc8 sw s5, 0x8c(sp)                   |     *(var_8ch) = s5;
    0x00013ccc sw s4, 0x88(sp)                   |     *(var_88h) = s4;
    0x00013cd0 sw s3, 0x84(sp)                   |     *(var_84h) = s3;
    0x00013cd4 sw v0, 0x74(sp)                   |     *(var_74h) = v0;
    0x00013cd8 move s7, a1                       |     s7 = a1;
    0x00013cdc jalr t9                           |     t9 ();
    0x00013ce0 lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00013ce4 addiu s0, sp, 0x4c                |     s0 = sp + 0x4c;
    0x00013ce8 move a0, s0                       |     a0 = s0;
    0x00013cec lw t9, -0x7cb4(gp)                |     t9 = sym.imp.uuid_gen_random;
    0x00013cf0 addiu a1, zero, 0x25              |     a1 = 0x25;
    0x00013cf4 move s1, v0                       |     s1 = v0;
    0x00013cf8 jalr t9                           |     t9 ();
    0x00013cfc lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00013d00 move a2, s0                       |     a2 = s0;
    0x00013d04 addiu a0, zero, 1                 |     a0 = 1;
    0x00013d08 lw a1, -0x7fdc(gp)                |     a1 = *((gp - 8183));
    0x00013d0c lw t9, -0x7a1c(gp)                |     t9 = sym.imp.__printf_chk
                                                 |     /* str._______rule_id_s_classsystem_providerpatternize__n */
    0x00013d10 addiu a1, a1, -0x58e4             |     a1 += -0x58e4;
    0x00013d14 jalr t9                           |     t9 ();
    0x00013d18 lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00013d1c lw v0, (s7)                       |     v0 = *(s7);
    0x00013d20 addiu a0, zero, 1                 |     a0 = 1;
    0x00013d24 lw a1, -0x7fdc(gp)                |     a1 = *((gp - 8183));
    0x00013d28 lw a2, 4(v0)                      |     a2 = *((v0 + 1));
    0x00013d2c lw t9, -0x7a1c(gp)                |     t9 = sym.imp.__printf_chk
                                                 |     /* str._____________support:__d_____n */
    0x00013d30 addiu a1, a1, -0x58a8             |     a1 += -0x58a8;
    0x00013d34 jalr t9                           |     t9 ();
    0x00013d38 lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00013d3c lw a0, -0x7fdc(gp)                |     a0 = *((gp - 8183));
    0x00013d40 lw t9, -0x7cc0(gp)                |     t9 = sym.imp.puts;
                                                 |     /* str._________patterns_ */
    0x00013d44 addiu a0, a0, -0x5888             |     a0 += -0x5888;
    0x00013d48 jalr t9                           |     t9 ();
    0x00013d4c lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00013d50 addiu a0, zero, 1                 |     a0 = 1;
    0x00013d54 lw a1, -0x7fdc(gp)                |     a1 = *((gp - 8183));
    0x00013d58 lw t9, -0x7a1c(gp)                |     t9 = sym.imp.__printf_chk
                                                 |     /* str.___________pattern_ */
    0x00013d5c addiu a1, a1, -0x5874             |     a1 += -0x5874;
    0x00013d60 jalr t9                           |     t9 ();
    0x00013d64 lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00013d68 lw t9, -0x7b0c(gp)                |     t9 = sym.imp.g_strdup;
    0x00013d6c move a0, s2                       |     a0 = s2;
    0x00013d70 jalr t9                           |     t9 ();
    0x00013d74 lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00013d78 move a0, v0                       |     a0 = v0;
    0x00013d7c sw v0, 0x30(sp)                   |     *(var_30h) = v0;
    0x00013d80 lw t9, -0x7af0(gp)                |     t9 = sym.imp.strlen;
    0x00013d84 move s0, v0                       |     s0 = v0;
    0x00013d88 jalr t9                           |     t9 ();
    0x00013d8c addiu v0, v0, -1                  |     v0 += -1;
    0x00013d90 addu v0, s0, v0                   |     v0 = s0 + v0;
    0x00013d94 addiu v1, zero, 0x1e              |     v1 = 0x1e;
    0x00013d98 lb a0, (v0)                       |     a0 = *(v0);
    0x00013d9c lw gp, 0x10(sp)                   |     gp = *(var_10h);
                                                 |     if (a0 == v1) {
    0x00013da0 bne a0, v1, 0x13da8               |         
    0x00013da4 sb zero, (v0)                     |         *(v0) = 0;
                                                 |     }
    0x00013da8 lw v0, -0x7fdc(gp)                |     v0 = *((gp - 8183));
    0x00013dac lw t9, -0x7b28(gp)                |     t9 = sym.imp.g_strdup_printf
    0x00013db0 addiu a1, zero, 0x1e              |     a1 = 0x1e;
                                                 |     /* esilref: '&c' */
    0x00013db4 addiu a0, v0, -0x5860             |     a0 = v0 + -0x5860;
    0x00013db8 sw v0, 0x24(sp)                   |     *(var_24h) = v0;
    0x00013dbc jalr t9                           |     t9 ();
    0x00013dc0 lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00013dc4 lw a0, 0x30(sp)                   |     a0 = *(var_30h);
    0x00013dc8 move a2, zero                     |     a2 = 0;
    0x00013dcc lw t9, -0x7b64(gp)                |     t9 = sym.imp.g_strsplit;
    0x00013dd0 move a1, v0                       |     a1 = v0;
    0x00013dd4 move s0, v0                       |     s0 = v0;
    0x00013dd8 jalr t9                           |     t9 ();
    0x00013ddc lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00013de0 move a0, s0                       |     a0 = s0;
    0x00013de4 sw v0, 0x38(sp)                   |     *(var_38h) = v0;
    0x00013de8 lw t9, -0x7c38(gp)                |     t9 = *((gp - 7950));
    0x00013dec move s0, v0                       |     s0 = v0;
    0x00013df0 jalr t9                           |     t9 ();
    0x00013df4 lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00013df8 lw t9, -0x7bf0(gp)                |     t9 = sym.imp.g_strv_length;
    0x00013dfc move a0, s0                       |     a0 = s0;
    0x00013e00 jalr t9                           |     t9 ();
    0x00013e04 sll v0, v0, 2                     |     v0 <<= 2;
    0x00013e08 addiu v0, v0, -4                  |     v0 += -4;
    0x00013e0c addu v0, s0, v0                   |     v0 = s0 + v0;
    0x00013e10 lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00013e14 lw a0, (v0)                       |     a0 = *(v0);
    0x00013e18 sw zero, (v0)                     |     *(v0) = 0;
    0x00013e1c lw v0, (s0)                       |     v0 = *(s0);
    0x00013e20 sw a0, 0x3c(sp)                   |     *(var_3ch) = a0;
                                                 |     if (v0 == 0) {
    0x00013e24 beqz v0, 0x13f50                  |         goto label_3;
                                                 |     }
    0x00013e28 lw v0, -0x7fdc(gp)                |     v0 = *((gp - 8183));
    0x00013e2c lw s6, -0x7fdc(gp)                |     s6 = *((gp - 8183));
    0x00013e30 sw v0, 0x34(sp)                   |     *(var_34h) = v0;
    0x00013e34 lw v0, -0x7fdc(gp)                |     v0 = *((gp - 8183));
    0x00013e38 lw s4, 0x3c(sp)                   |     s4 = *(var_3ch);
    0x00013e3c sw v0, 0x2c(sp)                   |     *(var_2ch_2) = v0;
    0x00013e40 lw v0, 0x38(sp)                   |     v0 = *(var_38h);
    0x00013e44 sw zero, 0x40(sp)                 |     *(var_40h) = 0;
    0x00013e48 addiu s0, v0, 4                   |     s0 = v0 + 4;
    0x00013e4c lw v0, -0x7fdc(gp)                |     v0 = *((gp - 8183));
    0x00013e50 addiu v0, v0, -0x6ba0             |     v0 += -0x6ba0;
    0x00013e54 sw v0, 0x1c(sp)                   |     *(var_1ch_2) = v0;
    0x00013e58 lw v0, -0x7fdc(gp)                |     v0 = *((gp - 8183));
                                                 |     /* esilref: '&s' */
    0x00013e5c addiu fp, v0, -0x6520             |     fp = v0 + -0x6520;
    0x00013e60 lw v0, -0x7fdc(gp)                |     v0 = *((gp - 8183));
                                                 |     /* str._ESTRING: */
    0x00013e64 addiu v0, v0, -0x583c             |     v0 += -0x583c;
    0x00013e68 sw v0, 0x28(sp)                   |     *(var_28h_2) = v0;
                                                 |     do {
    0x00013e6c lw t9, -0x7a80(gp)                |         t9 = sym.imp.g_string_truncate;
    0x00013e70 move a1, zero                     |         a1 = 0;
    0x00013e74 move a0, s1                       |         a0 = s1;
    0x00013e78 jalr t9                           |         t9 ();
    0x00013e7c lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x00013e80 lw a0, -4(s0)                     |         a0 = *((s0 - 1));
    0x00013e84 addiu a1, s6, -0x78b8             |         a1 = s6 + -0x78b8;
    0x00013e88 lw t9, -0x7b64(gp)                |         t9 = sym.imp.g_strsplit;
    0x00013e8c addiu a2, zero, 2                 |         a2 = 2;
    0x00013e90 jalr t9                           |         t9 ();
    0x00013e94 move s2, v0                       |         s2 = v0;
    0x00013e98 addiu v0, zero, 0x1a              |         v0 = 0x1a;
    0x00013e9c lw a1, 4(s2)                      |         a1 = *((s2 + 1));
    0x00013ea0 lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x00013ea4 lb v1, (a1)                       |         v1 = *(a1);
    0x00013ea8 move s5, s0                       |         s5 = s0;
                                                 |         if (v1 != v0) {
    0x00013eac bne v1, v0, 0x14008               |             goto label_4;
                                                 |         }
    0x00013eb0 lw v0, (s0)                       |         v0 = *(s0);
    0x00013eb4 lw t9, -0x7d48(gp)                |         t9 = sym.imp.g_string_append;
                                                 |         if (v0 != 0) {
    0x00013eb8 beqz v0, 0x13f30                  |             
    0x00013ebc lw a1, 0x28(sp)                   |             a1 = *(var_28h_2);
    0x00013ec0 move a0, s1                       |             a0 = s1;
    0x00013ec4 jalr t9                           |             t9 ();
    0x00013ec8 lw v0, 0x20(sp)                   |             v0 = *(var_20h);
    0x00013ecc lw gp, 0x10(sp)                   |             gp = *(var_10h);
                                                 |             if (v0 != 0) {
    0x00013ed0 bnez v0, 0x140c8                  |                 goto label_5;
                                                 |             }
                                                 | label_1:
    0x00013ed4 lw v0, 0x2c(sp)                   |             v0 = *(var_2ch_2);
    0x00013ed8 lw t9, -0x7d64(gp)                |             t9 = sym.imp.g_string_append_printf
    0x00013edc lb a2, (s4)                       |             a2 = *(s4);
    0x00013ee0 addiu a1, v0, -0x5820             |             a1 = v0 + -0x5820;
    0x00013ee4 move a0, s1                       |             a0 = s1;
    0x00013ee8 jalr t9                           |             t9 ();
    0x00013eec lw gp, 0x10(sp)                   |             gp = *(var_10h);
    0x00013ef0 lw a0, (s1)                       |             a0 = *(s1);
    0x00013ef4 lw t9, -0x7d28(gp)                |             t9 = sym.imp.g_markup_escape_text;
    0x00013ef8 addiu a1, zero, -1                |             a1 = -1;
    0x00013efc jalr t9                           |             t9 ();
    0x00013f00 lw gp, 0x10(sp)                   |             gp = *(var_10h);
    0x00013f04 move s3, v0                       |             s3 = v0;
                                                 | label_0:
    0x00013f08 lw t9, -0x7a1c(gp)                |             t9 = sym.imp.__printf_chk
    0x00013f0c move a2, s3                       |             a2 = s3;
    0x00013f10 move a1, fp                       |             a1 = fp;
    0x00013f14 addiu a0, zero, 1                 |             a0 = 1;
    0x00013f18 jalr t9                           |             t9 ();
    0x00013f1c lw gp, 0x10(sp)                   |             gp = *(var_10h);
    0x00013f20 lw t9, -0x7c38(gp)                |             t9 = *((gp - 7950));
    0x00013f24 move a0, s3                       |             a0 = s3;
    0x00013f28 jalr t9                           |             t9 ();
    0x00013f2c lw gp, 0x10(sp)                   |             gp = *(var_10h);
                                                 |         }
    0x00013f30 lw t9, -0x7bec(gp)                |         t9 = sym.imp.g_strfreev;
    0x00013f34 move a0, s2                       |         a0 = s2;
    0x00013f38 jalr t9                           |         t9 ();
    0x00013f3c lw v0, (s5)                       |         v0 = *(s5);
    0x00013f40 lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x00013f44 addiu s0, s0, 4                   |         s0 += 4;
    0x00013f48 addiu s4, s4, 1                   |         s4++;
    0x00013f4c bnez v0, 0x13e6c                  |         
                                                 |     } while (v0 != 0);
                                                 | label_3:
    0x00013f50 lw t9, -0x7c38(gp)                |     t9 = *((gp - 7950));
    0x00013f54 lw a0, 0x30(sp)                   |     a0 = *(var_30h);
    0x00013f58 jalr t9                           |     t9 ();
    0x00013f5c lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00013f60 lw t9, -0x7c38(gp)                |     t9 = *((gp - 7950));
    0x00013f64 lw a0, 0x3c(sp)                   |     a0 = *(var_3ch);
    0x00013f68 jalr t9                           |     t9 ();
    0x00013f6c lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00013f70 lw t9, -0x7bec(gp)                |     t9 = sym.imp.g_strfreev;
    0x00013f74 lw a0, 0x38(sp)                   |     a0 = *(var_38h);
    0x00013f78 jalr t9                           |     t9 ();
    0x00013f7c lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00013f80 addiu a1, zero, 1                 |     a1 = 1;
    0x00013f84 lw t9, -0x7ca4(gp)                |     t9 = sym.imp.g_string_free;
    0x00013f88 move a0, s1                       |     a0 = s1;
    0x00013f8c jalr t9                           |     t9 ();
    0x00013f90 lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00013f94 lw a0, -0x7fdc(gp)                |     a0 = *((gp - 8183));
    0x00013f98 lw t9, -0x7cc0(gp)                |     t9 = sym.imp.puts;
                                                 |     /* str.__pattern_ */
    0x00013f9c addiu a0, a0, -0x585c             |     a0 += -0x585c;
    0x00013fa0 jalr t9                           |     t9 ();
    0x00013fa4 lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00013fa8 lw a0, -0x7fdc(gp)                |     a0 = *((gp - 8183));
    0x00013fac lw t9, -0x7cc0(gp)                |     t9 = sym.imp.puts;
                                                 |     /* str.__________patterns_ */
    0x00013fb0 addiu a0, a0, -0x5850             |     a0 += -0x5850;
    0x00013fb4 jalr t9                           |     t9 ();
    0x00013fb8 lw v0, 8(s7)                      |     v0 = *((s7 + 2));
    0x00013fbc lw v0, 4(v0)                      |     v0 = *((v0 + 1));
    0x00013fc0 lw gp, 0x10(sp)                   |     gp = *(var_10h);
                                                 |     if (v0 != 0) {
    0x00013fc4 bnez v0, 0x140f0                  |         goto label_6;
                                                 |     }
                                                 | label_2:
    0x00013fc8 lw v0, 0x44(sp)                   |     v0 = *(var_44h);
    0x00013fcc lw v1, 0x74(sp)                   |     v1 = *(var_74h);
    0x00013fd0 lw v0, (v0)                       |     v0 = *(v0);
    0x00013fd4 lw ra, 0x9c(sp)                   |     ra = *(var_9ch);
                                                 |     if (v1 != v0) {
    0x00013fd8 bne v1, v0, 0x141e8               |         goto label_7;
                                                 |     }
    0x00013fdc lw fp, 0x98(sp)                   |     fp = *(var_98h);
    0x00013fe0 lw s7, 0x94(sp)                   |     s7 = *(var_94h);
    0x00013fe4 lw s6, 0x90(sp)                   |     s6 = *(var_90h);
    0x00013fe8 lw s5, 0x8c(sp)                   |     s5 = *(var_8ch);
    0x00013fec lw s4, 0x88(sp)                   |     s4 = *(var_88h);
    0x00013ff0 lw s3, 0x84(sp)                   |     s3 = *(var_84h);
    0x00013ff4 lw s2, 0x80(sp)                   |     s2 = *(var_80h);
    0x00013ff8 lw s1, 0x7c(sp)                   |     s1 = *(var_7ch);
    0x00013ffc lw s0, 0x78(sp)                   |     s0 = *(var_78h);
    0x00014000 addiu sp, sp, 0xa0                |     
    0x00014004 jr ra                             |     return v0;
                                                 | label_4:
    0x00014008 lw t9, -0x7d48(gp)                |     t9 = sym.imp.g_string_append;
    0x0001400c move a0, s1                       |     a0 = s1;
    0x00014010 jalr t9                           |     t9 ();
    0x00014014 lw v0, (s0)                       |     v0 = *(s0);
    0x00014018 lw gp, 0x10(sp)                   |     gp = *(var_10h);
                                                 |     if (v0 != 0) {
    0x0001401c beqz v0, 0x1403c                  |         
    0x00014020 lw v0, 0x24(sp)                   |         v0 = *(var_24h);
    0x00014024 lw t9, -0x7d64(gp)                |         t9 = sym.imp.g_string_append_printf
    0x00014028 lb a2, (s4)                       |         a2 = *(s4);
    0x0001402c addiu a1, v0, -0x5860             |         a1 = v0 + -0x5860;
    0x00014030 move a0, s1                       |         a0 = s1;
    0x00014034 jalr t9                           |         t9 ();
    0x00014038 lw gp, 0x10(sp)                   |         gp = *(var_10h);
                                                 |     }
    0x0001403c lw t9, -0x7d28(gp)                |     t9 = sym.imp.g_markup_escape_text;
    0x00014040 lw a0, (s1)                       |     a0 = *(s1);
    0x00014044 addiu a1, zero, -1                |     a1 = -1;
    0x00014048 jalr t9                           |     t9 ();
    0x0001404c lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00014050 lw a1, 0x1c(sp)                   |     a1 = *(var_1ch_2);
    0x00014054 move a0, v0                       |     a0 = v0;
    0x00014058 lw t9, -0x7bd8(gp)                |     t9 = sym.imp.g_strrstr;
    0x0001405c move s3, v0                       |     s3 = v0;
    0x00014060 jalr t9                           |     t9 ();
    0x00014064 lw gp, 0x10(sp)                   |     gp = *(var_10h);
                                                 |     if (v0 == 0) {
    0x00014068 beqz v0, 0x13f08                  |         goto label_0;
                                                 |     }
    0x0001406c lw t9, -0x7b64(gp)                |     t9 = sym.imp.g_strsplit;
    0x00014070 lw a1, 0x1c(sp)                   |     a1 = *(var_1ch_2);
    0x00014074 addiu a2, zero, -1                |     a2 = -1;
    0x00014078 move a0, s3                       |     a0 = s3;
    0x0001407c jalr t9                           |     t9 ();
    0x00014080 lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00014084 move a0, s3                       |     a0 = s3;
    0x00014088 lw t9, -0x7c38(gp)                |     t9 = *((gp - 7950));
    0x0001408c move s3, v0                       |     s3 = v0;
    0x00014090 jalr t9                           |     t9 ();
    0x00014094 lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00014098 lw v0, 0x34(sp)                   |     v0 = *(var_34h);
    0x0001409c move a1, s3                       |     a1 = s3;
    0x000140a0 lw t9, -0x7d5c(gp)                |     t9 = sym.imp.g_strjoinv;
    0x000140a4 addiu a0, v0, -0x5818             |     a0 = v0 + -0x5818;
    0x000140a8 jalr t9                           |     t9 ();
    0x000140ac lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x000140b0 move a0, s3                       |     a0 = s3;
    0x000140b4 lw t9, -0x7bec(gp)                |     t9 = sym.imp.g_strfreev;
    0x000140b8 move s3, v0                       |     s3 = v0;
    0x000140bc jalr t9                           |     t9 ();
    0x000140c0 lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x000140c4 b 0x13f08                         |     goto label_0;
                                                 | label_5:
    0x000140c8 lw a2, 0x40(sp)                   |     a2 = *(var_40h);
    0x000140cc lw a1, -0x7fdc(gp)                |     a1 = *((gp - 8183));
    0x000140d0 lw t9, -0x7d64(gp)                |     t9 = sym.imp.g_string_append_printf
    0x000140d4 addiu v0, a2, 1                   |     v0 = a2 + 1;
                                                 |     /* str..dict.string_d */
    0x000140d8 addiu a1, a1, -0x5830             |     a1 += -aav.0x00005830;
    0x000140dc move a0, s1                       |     a0 = s1;
    0x000140e0 sw v0, 0x40(sp)                   |     *(var_40h) = v0;
    0x000140e4 jalr t9                           |     t9 ();
    0x000140e8 lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x000140ec b 0x13ed4                         |     goto label_1;
                                                 | label_6:
    0x000140f0 lw a0, -0x7fdc(gp)                |     a0 = *((gp - 8183));
    0x000140f4 lw t9, -0x7cc0(gp)                |     t9 = sym.imp.puts;
                                                 |     /* str._________examples_ */
    0x000140f8 addiu a0, a0, -0x5814             |     a0 += -0x5814;
    0x000140fc jalr t9                           |     t9 ();
    0x00014100 lw v1, 8(s7)                      |     v1 = *((s7 + 2));
    0x00014104 lw v0, 4(v1)                      |     v0 = *((v1 + 1));
    0x00014108 lw gp, 0x10(sp)                   |     gp = *(var_10h);
                                                 |     if (v0 == 0) {
    0x0001410c beqz v0, 0x141bc                  |         goto label_8;
                                                 |     }
    0x00014110 lw s4, -0x7fdc(gp)                |     s4 = *((gp - 8183));
    0x00014114 lw s3, -0x7fdc(gp)                |     s3 = *((gp - 8183));
    0x00014118 lw s2, -0x7fdc(gp)                |     s2 = *((gp - 8183));
    0x0001411c move s1, zero                     |     s1 = 0;
                                                 |     /* str._____________example_ */
    0x00014120 addiu s4, s4, -0x57dc             |     s4 += -0x57dc;
                                                 |     /* str._________________test_message_programpatternize__s__test_message__n */
    0x00014124 addiu s3, s3, -0x57c4             |     s3 += -0x57c4;
                                                 |     /* str.______________example_ */
    0x00014128 addiu s2, s2, -0x577c             |     s2 += -0x577c;
                                                 |     do {
    0x0001412c lw s0, (v1)                       |         s0 = *(v1);
    0x00014130 sll v0, s1, 2                     |         v0 = s1 << 2;
    0x00014134 lw t9, -0x7af0(gp)                |         t9 = sym.imp.strlen;
    0x00014138 lwx s0, v0(s0)                    |         __asm ("lwx s0, v0(s0)");
    0x0001413c addiu s1, s1, 1                   |         s1++;
    0x00014140 move a0, s0                       |         a0 = s0;
    0x00014144 jalr t9                           |         t9 ();
    0x00014148 lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x0001414c move a1, v0                       |         a1 = v0;
    0x00014150 lw t9, -0x7d28(gp)                |         t9 = sym.imp.g_markup_escape_text;
    0x00014154 move a0, s0                       |         a0 = s0;
    0x00014158 jalr t9                           |         t9 ();
    0x0001415c lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x00014160 move a0, s4                       |         a0 = s4;
    0x00014164 lw t9, -0x7cc0(gp)                |         t9 = sym.imp.puts;
    0x00014168 move s0, v0                       |         s0 = v0;
    0x0001416c jalr t9                           |         t9 ();
    0x00014170 lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x00014174 move a2, s0                       |         a2 = s0;
    0x00014178 move a1, s3                       |         a1 = s3;
    0x0001417c lw t9, -0x7a1c(gp)                |         t9 = sym.imp.__printf_chk
    0x00014180 addiu a0, zero, 1                 |         a0 = 1;
    0x00014184 jalr t9                           |         t9 ();
    0x00014188 lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x0001418c lw t9, -0x7cc0(gp)                |         t9 = sym.imp.puts;
    0x00014190 move a0, s2                       |         a0 = s2;
    0x00014194 jalr t9                           |         t9 ();
    0x00014198 lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x0001419c lw t9, -0x7c38(gp)                |         t9 = *((gp - 7950));
    0x000141a0 move a0, s0                       |         a0 = s0;
    0x000141a4 jalr t9                           |         t9 ();
    0x000141a8 lw v1, 8(s7)                      |         v1 = *((s7 + 2));
    0x000141ac lw v0, 4(v1)                      |         v0 = *((v1 + 1));
    0x000141b0 sltu v0, s1, v0                   |         v0 = (s1 < v0) ? 1 : 0;
    0x000141b4 lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x000141b8 bnez v0, 0x1412c                  |         
                                                 |     } while (v0 != 0);
                                                 | label_8:
    0x000141bc lw a0, -0x7fdc(gp)                |     a0 = *((gp - 8183));
    0x000141c0 lw t9, -0x7cc0(gp)                |     t9 = sym.imp.puts;
                                                 |     /* str.__________examples_ */
    0x000141c4 addiu a0, a0, -0x5800             |     a0 += -0x5800;
    0x000141c8 jalr t9                           |     t9 ();
    0x000141cc lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x000141d0 lw a0, -0x7fdc(gp)                |     a0 = *((gp - 8183));
    0x000141d4 lw t9, -0x7cc0(gp)                |     t9 = sym.imp.puts;
                                                 |     /* str.________rule_ */
    0x000141d8 addiu a0, a0, -0x57ec             |     a0 += -0x57ec;
    0x000141dc jalr t9                           |     t9 ();
    0x000141e0 lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x000141e4 b 0x13fc8                         |     goto label_2;
                                                 | label_7:
    0x000141e8 lw t9, -0x7c04(gp)                |     t9 = sym.imp.__stack_chk_fail;
    0x000141ec jalr t9                           |     t9 ();
    0x000141f0 nop                               |     
                                                 | }

[*] Function printf used 19 times pdbtool