[*] Binary protection state of librtsnm.so

  
  	No RELRO       No Canary found   NX disabled  DSO          RPATH        No RUNPATH   No Symbols


[*] Function strcat tear down of librtsnm.so

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/lib/librtsnm.so @ 0x1f1c */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.rtsnm_lcl_set ()         | void rtsnm_lcl_set () {
    0x00001f1c lui gp, 3                 |     
    0x00001f20 addiu gp, gp, -0x7a8c     |     
    0x00001f24 addu gp, gp, t9           |     gp += t9;
    0x00001f28 addiu sp, sp, -0x48       |     
    0x00001f2c sw ra, 0x44(sp)           |     *(var_44h) = ra;
    0x00001f30 sw s4, 0x40(sp)           |     *(var_40h) = s4;
    0x00001f34 sw s3, 0x3c(sp)           |     *(var_3ch) = s3;
    0x00001f38 sw s2, 0x38(sp)           |     *(var_38h) = s2;
    0x00001f3c sw s1, 0x34(sp)           |     *(var_34h) = s1;
    0x00001f40 sw s0, 0x30(sp)           |     *(var_30h) = s0;
    0x00001f44 move s3, a1               |     s3 = a1;
    0x00001f48 lw t9, -0x7fb0(gp)        |     t9 = *((gp - 8172));
    0x00001f4c sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x00001f50 move s2, a2               |     s2 = a2;
    0x00001f54 jalr t9                   |     t9 ();
    0x00001f58 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001f5c move s1, v0               |     s1 = v0;
                                         |     if (v0 == 0) {
    0x00001f60 bnez v0, 0x1f8c           |         
    0x00001f64 lw t8, -0x7e98(gp)        |         t8 = *((gp - 8102));
    0x00001f68 lui s0, 0xfd00            |         s0 = 0xfd000000;
    0x00001f6c lw t8, (t8)               |         t8 = *(t8);
    0x00001f70 ori s0, s0, 0xfffc        |         s0 |= 0xfffc;
                                         |         if (t8 < 0) {
    0x00001f74 bltz t8, 0x219c           |             goto label_0;
                                         |         }
    0x00001f78 lw a1, -0x7fd4(gp)        |         a1 = *((gp - 8181));
    0x00001f7c addiu a0, zero, 3         |         a0 = 3;
    0x00001f80 sw s0, 0x10(sp)           |         *(var_10h) = s0;
    0x00001f84 addiu a1, a1, -0x2a78     |         a1 += -0x2a78;
    0x00001f88 b 0x202c                  |         goto label_1;
                                         |     }
    0x00001f8c lw t9, 4(v0)              |     t9 = *((v0 + 1));
    0x00001f90 move a0, v0               |     a0 = v0;
    0x00001f94 bnez t9, 0x1fcc           |     
                                         |     while (v0 >= 0) {
    0x00001f98 lw t9, -0x7fd8(gp)        |         t9 = *((gp - 8182));
    0x00001f9c addiu t8, zero, 0x7d0     |         t8 = 0x7d0;
    0x00001fa0 lw a1, 0x28(s1)           |         a1 = *((s1 + 10));
    0x00001fa4 addiu s4, sp, 0x20        |         s4 = sp + 0x20;
    0x00001fa8 move a0, s4               |         a0 = s4;
    0x00001fac addiu t9, t9, 0x1df0      |         t9 += 0x1df0;
                                         |         if (a1 != 0) {
    0x00001fb0 movz a1, t8, a1           |             a1 = t8;
                                         |         }
    0x00001fb4 jalr t9                   |         t9 ();
    0x00001fb8 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001fbc move s0, v0               |         s0 = v0;
                                         |         if (v0 >= 0) {
    0x00001fc0 bgez v0, 0x1fec           |             goto label_2;
                                         |         }
    0x00001fc4 move v0, s0               |         v0 = s0;
    0x00001fc8 b 0x21a0                  |         goto label_3;
    0x00001fcc move a1, s3               |         a1 = s3;
    0x00001fd0 move a2, s2               |         a2 = s2;
    0x00001fd4 jalr t9                   |         t9 ();
    0x00001fd8 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001fdc move s0, v0               |         s0 = v0;
    0x00001fe0 bgez v0, 0x1f98           |         
                                         |     }
    0x00001fe4 move v0, s0               |     v0 = s0;
    0x00001fe8 b 0x21a0                  |     goto label_3;
                                         | label_2:
    0x00001fec lw t9, -0x7e90(gp)        |     t9 = *((gp - 8100));
    0x00001ff0 move a1, s4               |     a1 = s4;
    0x00001ff4 lw a0, 0x24(s1)           |     a0 = *((s1 + 9));
    0x00001ff8 jalr t9                   |     t9 ();
    0x00001ffc lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00002000 move s0, v0               |     s0 = v0;
                                         |     if (v0 < 0) {
    0x00002004 bgez v0, 0x2048           |         
    0x00002008 lw t8, -0x7e98(gp)        |         t8 = *((gp - 8102));
    0x0000200c lui s0, 0xfd00            |         s0 = 0xfd000000;
    0x00002010 lw t8, (t8)               |         t8 = *(t8);
    0x00002014 ori s0, s0, 0xfffa        |         s0 |= 0xfffa;
                                         |         if (t8 < 0) {
    0x00002018 bltz t8, 0x219c           |             goto label_0;
                                         |         }
    0x0000201c lw a1, -0x7fd4(gp)        |         a1 = *((gp - 8181));
    0x00002020 addiu a0, zero, 3         |         a0 = 3;
    0x00002024 sw s0, 0x10(sp)           |         *(var_10h) = s0;
    0x00002028 addiu a1, a1, -0x2a4c     |         a1 += -0x2a4c;
                                         | label_1:
    0x0000202c lw a2, -0x7fd4(gp)        |         a2 = *((gp - 8181));
    0x00002030 lw t9, -0x7f6c(gp)        |         t9 = *((gp - 8155));
    0x00002034 addiu a2, a2, -0x2904     |         a2 += -0x2904;
    0x00002038 move a3, a2               |         a3 = a2;
    0x0000203c jalr t9                   |         t9 ();
    0x00002040 b 0x219c                  |         goto label_0;
    0x00002044 nop                       |         
                                         |     }
    0x00002048 lw t9, 8(s1)              |     t9 = *((s1 + 2));
    0x0000204c move a0, s1               |     a0 = s1;
                                         |     if (t9 != 0) {
    0x00002050 beqz t9, 0x20b0           |         
    0x00002054 sw zero, 0x28(sp)         |         *(var_28h) = 0;
    0x00002058 move a1, s3               |         a1 = s3;
    0x0000205c addiu a3, sp, 0x28        |         a3 = sp + 0x28;
    0x00002060 move a2, s2               |         a2 = s2;
    0x00002064 jalr t9                   |         t9 ();
    0x00002068 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x0000206c move s0, v0               |         s0 = v0;
                                         |         if (v0 < 0) {
    0x00002070 bltz v0, 0x2190           |             goto label_4;
                                         |         }
    0x00002074 lw t8, 0x28(sp)           |         t8 = *(var_28h);
    0x00002078 lw t8, -0x7e98(gp)        |         t8 = *((gp - 8102));
                                         |         if (t8 == 0) {
    0x0000207c bnez t8, 0x20b0           |             
    0x00002080 lw t8, (t8)               |             t8 = *(t8);
    0x00002084 move s0, zero             |             s0 = 0;
                                         |             if (t8 <= 0) {
    0x00002088 blez t8, 0x2190           |                 goto label_4;
                                         |             }
    0x0000208c lw a1, -0x7fd4(gp)        |             a1 = *((gp - 8181));
    0x00002090 addiu a0, zero, 3         |             a0 = 3;
    0x00002094 lw a2, -0x7fd4(gp)        |             a2 = *((gp - 8181));
    0x00002098 lw t9, -0x7f6c(gp)        |             t9 = *((gp - 8155));
    0x0000209c addiu a1, a1, -0x2a24     |             a1 += -0x2a24;
    0x000020a0 addiu a2, a2, -0x2904     |             a2 += -0x2904;
    0x000020a4 jalr t9                   |             t9 ();
    0x000020a8 lw gp, 0x18(sp)           |             gp = *(var_18h);
    0x000020ac b 0x2190                  |             
                                         |         }
                                         |     } else {
    0x000020b0 lw t9, 0xc(s1)            |         t9 = *((s1 + 3));
    0x000020b4 lw s4, -0x7fe4(gp)        |         s4 = *((gp - 8185));
                                         |         if (t9 != 0) {
    0x000020b8 beqz t9, 0x20dc           |             
    0x000020bc lw a3, 0x2690(s4)         |             a3 = *((s4 + 2468));
    0x000020c0 move a0, s1               |             a0 = s1;
    0x000020c4 move a1, s3               |             a1 = s3;
    0x000020c8 move a2, s2               |             a2 = s2;
    0x000020cc jalr t9                   |             t9 ();
    0x000020d0 lw gp, 0x18(sp)           |             gp = *(var_18h);
    0x000020d4 move s0, v0               |             s0 = v0;
                                         |             if (v0 < 0) {
    0x000020d8 bltz v0, 0x2190           |                 goto label_4;
                                         |             }
                                         |         }
    0x000020dc lw t8, 0x2690(s4)         |         t8 = *((s4 + 2468));
    0x000020e0 lw t8, (t8)               |         t8 = *(t8);
    0x000020e4 lw t8, -0x7e98(gp)        |         t8 = *((gp - 8102));
                                         |         if (t8 == 0) {
    0x000020e8 bnez t8, 0x2128           |             
    0x000020ec lw t8, (t8)               |             t8 = *(t8);
    0x000020f0 lw a1, -0x7fd4(gp)        |             a1 = *((gp - 8181));
                                         |             if (t8 > 0) {
    0x000020f4 blez t8, 0x2114           |                 
    0x000020f8 addiu a0, zero, 3         |                 a0 = 3;
    0x000020fc lw a2, -0x7fd4(gp)        |                 a2 = *((gp - 8181));
    0x00002100 lw t9, -0x7f6c(gp)        |                 t9 = *((gp - 8155));
    0x00002104 addiu a1, a1, -0x2a04     |                 a1 += -0x2a04;
    0x00002108 addiu a2, a2, -0x2904     |                 a2 += -0x2904;
    0x0000210c jalr t9                   |                 t9 ();
    0x00002110 lw gp, 0x18(sp)           |                 gp = *(var_18h);
                                         |             }
    0x00002114 lw t9, 0x10(s1)           |             t9 = *((s1 + 4));
    0x00002118 move a0, s1               |             a0 = s1;
                                         |             if (t9 == 0) {
    0x0000211c bnez t9, 0x217c           |                 
    0x00002120 move s0, zero             |                 s0 = 0;
    0x00002124 b 0x2190                  |                 
                                         |             } else {
    0x00002128 lw t9, 0x14(s1)           |                 t9 = *((s1 + 5));
    0x0000212c move a0, s1               |                 a0 = s1;
                                         |                 if (t9 != 0) {
    0x00002130 beqz t9, 0x214c           |                     
    0x00002134 move a1, s3               |                     a1 = s3;
    0x00002138 move a2, s2               |                     a2 = s2;
    0x0000213c jalr t9                   |                     t9 ();
    0x00002140 lw gp, 0x18(sp)           |                     gp = *(var_18h);
    0x00002144 move s0, v0               |                     s0 = v0;
                                         |                     if (v0 < 0) {
    0x00002148 bltz v0, 0x2190           |                         goto label_4;
                                         |                     }
                                         |                 }
    0x0000214c lw t9, 0x18(s1)           |                 t9 = *((s1 + 6));
    0x00002150 move a0, s1               |                 a0 = s1;
                                         |                 if (t9 != 0) {
    0x00002154 beqz t9, 0x2170           |                     
    0x00002158 move a1, s3               |                     a1 = s3;
    0x0000215c move a2, s2               |                     a2 = s2;
    0x00002160 jalr t9                   |                     t9 ();
    0x00002164 lw gp, 0x18(sp)           |                     gp = *(var_18h);
    0x00002168 move s0, v0               |                     s0 = v0;
                                         |                     if (v0 < 0) {
    0x0000216c bltz v0, 0x2190           |                         goto label_4;
                                         |                     }
                                         |                 }
    0x00002170 lw t9, 0x10(s1)           |                 t9 = *((s1 + 4));
    0x00002174 move a0, s1               |                 a0 = s1;
                                         |                 if (t9 == 0) {
    0x00002178 beqz t9, 0x2190           |                     goto label_4;
                                         |                 }
                                         |             }
    0x0000217c move a1, s3               |             a1 = s3;
    0x00002180 move a2, s2               |             a2 = s2;
    0x00002184 jalr t9                   |             t9 ();
    0x00002188 lw gp, 0x18(sp)           |             gp = *(var_18h);
    0x0000218c move s0, v0               |             s0 = v0;
                                         |         }
                                         |     }
                                         | label_4:
    0x00002190 lw t9, -0x7ec4(gp)        |     t9 = *((gp - 8113));
    0x00002194 lw a0, 0x24(s1)           |     a0 = *((s1 + 9));
    0x00002198 jalr t9                   |     t9 ();
                                         | label_0:
    0x0000219c move v0, s0               |     v0 = s0;
                                         | label_3:
    0x000021a0 lw ra, 0x44(sp)           |     ra = *(var_44h);
    0x000021a4 lw s4, 0x40(sp)           |     s4 = *(var_40h);
    0x000021a8 lw s3, 0x3c(sp)           |     s3 = *(var_3ch);
    0x000021ac lw s2, 0x38(sp)           |     s2 = *(var_38h);
    0x000021b0 lw s1, 0x34(sp)           |     s1 = *(var_34h);
    0x000021b4 lw s0, 0x30(sp)           |     s0 = *(var_30h);
    0x000021b8 addiu sp, sp, 0x48        |     
    0x000021bc jr ra                     |     return v0;
                                         | }

[*] Function strcat used 1 times librtsnm.so