[*] Binary protection state of libgcc_s.so.1

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


[*] Function fprintf tear down of libgcc_s.so.1

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/11108416-13869836.lzma_extract/lzma.uncompressed_extract/3761304-11775640.cpio_portable_ascii_extract/lib/libgcc_s.so.1 @ 0x26d54 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.__emutls_get_address ()      | void emutls_get_address () {
    0x00026d54 lui gp, 2                     |     
    0x00026d58 addiu gp, gp, -0x5d34         |     
    0x00026d5c addu gp, gp, t9               |     gp += t9;
    0x00026d60 lw v0, -0x7dfc(gp)            |     v0 = *((gp - 8063));
    0x00026d64 addiu sp, sp, -0x38           |     
    0x00026d68 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x00026d6c sw s0, 0x1c(sp)               |     *(var_1ch) = s0;
    0x00026d70 sw ra, 0x34(sp)               |     *(var_34h) = ra;
    0x00026d74 sw s5, 0x30(sp)               |     *(var_30h) = s5;
    0x00026d78 sw s4, 0x2c(sp)               |     *(var_2ch) = s4;
    0x00026d7c sw s3, 0x28(sp)               |     *(var_28h) = s3;
    0x00026d80 sw s2, 0x24(sp)               |     *(var_24h) = s2;
    0x00026d84 sw s1, 0x20(sp)               |     *(var_20h) = s1;
    0x00026d88 move s0, a0                   |     s0 = a0;
                                             |     if (v0 != 0) {
    0x00026d8c bnez v0, 0x26dc0              |         goto label_3;
                                             |     }
    0x00026d90 lw v0, 8(a0)                  |     v0 = *((a0 + 2));
    0x00026d94 lw t9, -0x7fd8(gp)            |     t9 = *((gp - 8182));
                                             |     if (v0 == 0) {
    0x00026d98 beqz v0, 0x26e28              |         goto label_4;
                                             |     }
                                             | label_0:
    0x00026d9c lw ra, 0x34(sp)               |     ra = *(var_34h);
                                             |     do {
    0x00026da0 lw s5, 0x30(sp)               |         s5 = *(var_30h);
    0x00026da4 lw s4, 0x2c(sp)               |         s4 = *(var_2ch);
    0x00026da8 lw s3, 0x28(sp)               |         s3 = *(var_28h);
    0x00026dac lw s2, 0x24(sp)               |         s2 = *(var_24h);
    0x00026db0 lw s1, 0x20(sp)               |         s1 = *(var_20h);
    0x00026db4 lw s0, 0x1c(sp)               |         s0 = *(var_1ch);
    0x00026db8 addiu sp, sp, 0x38            |         
    0x00026dbc jr ra                         |         return v0;
                                             | label_3:
    0x00026dc0 lw s2, 8(a0)                  |         s2 = *((a0 + 2));
    0x00026dc4 lw a0, -0x7fe4(gp)            |         a0 = *((gp - 8185));
                                             |         if (s2 == 0) {
    0x00026dc8 beqz s2, 0x26ee4              |             goto label_5;
                                             |         }
                                             | label_2:
    0x00026dcc lw s5, -0x7fe4(gp)            |         s5 = *((gp - 8185));
    0x00026dd0 lw t9, -0x7dec(gp)            |         t9 = *((gp - 8059));
    0x00026dd4 lw a0, -0x6ba0(s5)            |         a0 = *((s5 - 6888));
    0x00026dd8 jalr t9                       |         t9 ();
    0x00026ddc move s1, v0                   |         s1 = v0;
    0x00026de0 lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |         if (v0 == 0) {
    0x00026de4 beqz v0, 0x26ea8              |             goto label_6;
                                             |         }
    0x00026de8 lw s4, (v0)                   |         s4 = *(v0);
    0x00026dec sltu v0, s4, s2               |         v0 = (s4 < s2) ? 1 : 0;
    0x00026df0 sll s3, s4, 1                 |         s3 = s4 << 1;
                                             |         if (v0 != 0) {
    0x00026df4 bnez v0, 0x26e3c              |             goto label_7;
                                             |         }
                                             | label_1:
    0x00026df8 addiu v0, s2, -1              |         v0 = s2 + -1;
    0x00026dfc sll v0, v0, 2                 |         v0 <<= 2;
    0x00026e00 addu s1, s1, v0               |         s1 += v0;
    0x00026e04 lw v0, 4(s1)                  |         v0 = *((s1 + 1));
    0x00026e08 lw ra, 0x34(sp)               |         ra = *(var_34h);
    0x00026e0c bnez v0, 0x26da0              |         
                                             |     } while (v0 != 0);
    0x00026e10 lw t9, -0x7fd8(gp)            |     t9 = *((gp - 8182));
    0x00026e14 addiu t9, t9, -0x3660         |     t9 += -0x3660;
    0x00026e18 move a0, s0                   |     a0 = s0;
    0x00026e1c bal 0xc9a0                    |     entry0 ();
    0x00026e20 sw v0, 4(s1)                  |     *((s1 + 1)) = v0;
    0x00026e24 b 0x26d9c                     |     goto label_0;
                                             | label_4:
    0x00026e28 addiu t9, t9, -0x3660         |     t9 += -0x3660;
    0x00026e2c bal 0xc9a0                    |     entry0 ();
    0x00026e30 nop                           |     
    0x00026e34 sw v0, 8(s0)                  |     *((s0 + 2)) = v0;
    0x00026e38 b 0x26d9c                     |     goto label_0;
                                             | label_7:
    0x00026e3c sltu v1, s3, s2               |     v1 = (s3 < s2) ? 1 : 0;
    0x00026e40 addiu v0, s2, 0x20            |     v0 = s2 + 0x20;
    0x00026e44 lw t9, -0x7e48(gp)            |     t9 = *((gp - 8082));
                                             |     if (v1 == 0) {
    0x00026e48 movn s3, v0, v1               |         s3 = v0;
                                             |     }
    0x00026e4c addiu a1, s3, 1               |     a1 = s3 + 1;
    0x00026e50 move a0, s1                   |     a0 = s1;
    0x00026e54 sll a1, a1, 2                 |     a1 <<= 2;
    0x00026e58 jalr t9                       |     t9 ();
    0x00026e5c move s1, v0                   |     s1 = v0;
    0x00026e60 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 != 0) {
    0x00026e64 beqz v0, 0x26f40              |         
    0x00026e68 lw t9, -0x7e60(gp)            |         t9 = *((gp - 8088));
    0x00026e6c sll a0, s4, 2                 |         a0 = s4 << 2;
    0x00026e70 addu a0, v0, a0               |         a0 = v0 + a0;
    0x00026e74 subu a2, s3, s4               |         __asm ("subu a2, s3, s4");
    0x00026e78 addiu a0, a0, 4               |         a0 += 4;
    0x00026e7c move a1, zero                 |         a1 = 0;
    0x00026e80 sll a2, a2, 2                 |         a2 <<= 2;
    0x00026e84 sw s3, (v0)                   |         *(v0) = s3;
    0x00026e88 jalr t9                       |         t9 ();
    0x00026e8c lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00026e90 lw a0, -0x6ba0(s5)            |         a0 = *((s5 - 6888));
    0x00026e94 lw t9, -0x7ea0(gp)            |         t9 = *((gp - 8104));
    0x00026e98 move a1, s1                   |         a1 = s1;
    0x00026e9c jalr t9                       |         t9 ();
    0x00026ea0 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00026ea4 b 0x26df8                     |         goto label_1;
                                             | label_6:
    0x00026ea8 lw t9, -0x7e14(gp)            |         t9 = *((gp - 8069));
    0x00026eac addiu a0, s2, 0x21            |         a0 = s2 + 0x21;
    0x00026eb0 addiu a1, zero, 4             |         a1 = 4;
    0x00026eb4 jalr t9                       |         t9 ();
    0x00026eb8 move s1, v0                   |         s1 = v0;
    0x00026ebc lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00026ec0 addiu v0, s2, 0x20            |         v0 = s2 + 0x20;
                                             |         if (s1 == 0) {
    0x00026ec4 beqz s1, 0x26f40              |             goto label_8;
                                             |         }
    0x00026ec8 lw t9, -0x7ea0(gp)            |         t9 = *((gp - 8104));
    0x00026ecc lw a0, -0x6ba0(s5)            |         a0 = *((s5 - 6888));
    0x00026ed0 sw v0, (s1)                   |         *(s1) = v0;
    0x00026ed4 move a1, s1                   |         a1 = s1;
    0x00026ed8 jalr t9                       |         t9 ();
    0x00026edc lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00026ee0 b 0x26df8                     |         goto label_1;
                                             | label_5:
    0x00026ee4 lw a1, -0x7fd0(gp)            |         a1 = *((gp - 8180));
    0x00026ee8 lw t9, -0x7e2c(gp)            |         t9 = *((gp - 8075));
    0x00026eec addiu a0, a0, -0x6bc0         |         a0 += -0x6bc0;
    0x00026ef0 lw s1, -0x7fe4(gp)            |         s1 = *((gp - 8185));
    0x00026ef4 addiu a1, a1, 0x6c80          |         a1 += 0x6c80;
    0x00026ef8 jalr t9                       |         t9 ();
    0x00026efc lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00026f00 lw t9, -0x7e84(gp)            |         t9 = *((gp - 8097));
    0x00026f04 addiu a0, s1, -0x6bbc         |         a0 = s1 + -0x6bbc;
    0x00026f08 jalr t9                       |         t9 ();
    0x00026f0c lw s2, 8(s0)                  |         s2 = *((s0 + 2));
    0x00026f10 lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |         if (s2 == 0) {
    0x00026f14 bnez s2, 0x26f2c              |             
    0x00026f18 lw v0, -0x7fe4(gp)            |             v0 = *((gp - 8185));
    0x00026f1c lw s2, -0x6ba4(v0)            |             s2 = *((v0 - 6889));
    0x00026f20 addiu s2, s2, 1               |             s2++;
    0x00026f24 sw s2, -0x6ba4(v0)            |             *((v0 - 6889)) = s2;
    0x00026f28 sw s2, 8(s0)                  |             *((s0 + 2)) = s2;
                                             |         }
    0x00026f2c lw t9, -0x7e70(gp)            |         t9 = *((gp - 8092));
    0x00026f30 addiu a0, s1, -0x6bbc         |         a0 = s1 + -0x6bbc;
    0x00026f34 jalr t9                       |         t9 ();
    0x00026f38 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00026f3c b 0x26dcc                     |         goto label_2;
                                             |     }
                                             | label_8:
    0x00026f40 lw t9, -0x7e10(gp)            |     t9 = *((gp - 8068));
    0x00026f44 jalr t9                       |     t9 ();
    0x00026f48 nop                           |     
                                             | }

[*] Function fprintf used 1 times libgcc_s.so.1