[*] 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