[*] Binary protection state of libstdc++.so.6.0.19

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


[*] Function fprintf tear down of libstdc++.so.6.0.19

    ; assembly                                                                   | /* r2dec pseudo code output */
                                                                                 | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/lib/libstdc++.so.6.0.19 @ 0x58e04 */
                                                                                 | #include <stdint.h>
                                                                                 |  
    ; (fcn) method.std::ios_base._M_call_callbacks_std::ios_base::event_ ()      | void method_std::ios_base_M_call_callbacks_std::ios_base::event_ () {
                                                                                 |     /* std::ios_base::_M_call_callbacks(std::ios_base::event) */
    0x00058e04 lui gp, 9                                                         |     
    0x00058e08 addiu gp, gp, -0xca4                                              |     
    0x00058e0c addu gp, gp, t9                                                   |     gp += t9;
    0x00058e10 addiu sp, sp, -0x28                                               |     
    0x00058e14 sw ra, 0x24(sp)                                                   |     *(var_24h) = ra;
    0x00058e18 sw s2, 0x20(sp)                                                   |     *(var_20h) = s2;
    0x00058e1c sw s1, 0x1c(sp)                                                   |     *(var_1ch) = s1;
    0x00058e20 sw s0, 0x18(sp)                                                   |     *(var_18h) = s0;
    0x00058e24 move s1, a0                                                       |     s1 = a0;
    0x00058e28 lw s0, 0x18(a0)                                                   |     s0 = *((a0 + 6));
    0x00058e2c move s2, a1                                                       |     s2 = a1;
    0x00058e30 sw gp, 0x10(sp)                                                   |     *(var_10h) = gp;
                                                                                 |     do {
    0x00058e34 move a0, s2                                                       |         a0 = s2;
                                                                                 |         if (s0 == 0) {
    0x00058e38 beqz s0, 0x58e9c                                                  |             goto label_0;
                                                                                 |         }
    0x00058e3c lw t9, 4(s0)                                                      |         t9 = *((s0 + 1));
    0x00058e40 lw a2, 8(s0)                                                      |         a2 = *((s0 + 2));
    0x00058e44 move a1, s1                                                       |         a1 = s1;
    0x00058e48 jalr t9                                                           |         t9 ();
    0x00058e4c lw s0, (s0)                                                       |         s0 = *(s0);
    0x00058e50 b 0x58e34                                                         |         
                                                                                 |     } while (1);
                                                                                 | label_0:
    0x00058e9c lw ra, 0x24(sp)                                                   |     ra = *(var_24h);
    0x00058ea0 lw s2, 0x20(sp)                                                   |     s2 = *(var_20h);
    0x00058ea4 lw s1, 0x1c(sp)                                                   |     s1 = *(var_1ch);
    0x00058ea8 lw s0, 0x18(sp)                                                   |     s0 = *(var_18h);
    0x00058eac addiu sp, sp, 0x28                                                |     
    0x00058eb0 jr ra                                                             |     return;
                                                                                 | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/lib/libstdc++.so.6.0.19 @ 0x58eb4 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) method.std::ios_base._M_dispose_callbacks__ ()           | void method_std::ios_base_M_dispose_callbacks_ () {
                                                                     |     /* std::ios_base::_M_dispose_callbacks() */
    0x00058eb4 lui gp, 9                                             |     
    0x00058eb8 addiu gp, gp, -0xd54                                  |     
    0x00058ebc addu gp, gp, t9                                       |     gp += t9;
    0x00058ec0 addiu sp, sp, -0x28                                   |     
    0x00058ec4 sw ra, 0x24(sp)                                       |     *(var_24h) = ra;
    0x00058ec8 sw s2, 0x20(sp)                                       |     *(var_20h) = s2;
    0x00058ecc sw s1, 0x1c(sp)                                       |     *(var_1ch) = s1;
    0x00058ed0 sw s0, 0x18(sp)                                       |     *(var_18h) = s0;
    0x00058ed4 move s0, a0                                           |     s0 = a0;
    0x00058ed8 lw s2, -0x6818(gp)                                    |     s2 = *((gp - 6662));
    0x00058edc lw a0, 0x18(a0)                                       |     a0 = *((a0 + 6));
    0x00058ee0 sw gp, 0x10(sp)                                       |     *(var_10h) = gp;
                                                                     |     if (a0 == 0) {
                                                                     | label_0:
    0x00058ee4 beqz a0, 0x58f40                                      |         goto label_1;
                                                                     |     }
    0x00058ee8 nop                                                   |     
    0x00058eec addiu v0, a0, 0xc                                     |     v0 = a0 + 0xc;
                                                                     |     if (s2 == 0) {
    0x00058ef0 beqz s2, 0x58f18                                      |         goto label_2;
                                                                     |     }
    0x00058ef4 sync                                                  |     __asm ("sync");
                                                                     |     do {
    0x00058ef8 ll v1, (v0)                                           |         __asm ("ll v1, (v0)");
    0x00058efc addiu at, v1, -1                                      |         at = v1 + -1;
    0x00058f00 sc at, (v0)                                           |         __asm ("sc at, (v0)");
    0x00058f04 beqz at, 0x58ef8                                      |         
                                                                     |     } while (at == 0);
    0x00058f08 nop                                                   |     
    0x00058f0c sync                                                  |     __asm ("sync");
    0x00058f10 move v0, v1                                           |     v0 = v1;
    0x00058f14 b 0x58f24                                             |     goto label_3;
                                                                     | label_2:
    0x00058f18 lw v0, 0xc(a0)                                        |     v0 = *((a0 + 3));
    0x00058f1c addiu v1, v0, -1                                      |     v1 = v0 + -1;
    0x00058f20 sw v1, 0xc(a0)                                        |     *((a0 + 3)) = v1;
                                                                     | label_3:
    0x00058f24 lw t9, -0x68e0(gp)                                    |     t9 = *((gp - 6712));
                                                                     |     if (v0 == 0) {
    0x00058f28 bnez v0, 0x58f40                                      |         
    0x00058f2c lw s1, (a0)                                           |         s1 = *(a0);
    0x00058f30 jalr t9                                               |         t9 ();
    0x00058f34 lw gp, 0x10(sp)                                       |         gp = *(var_10h);
    0x00058f38 move a0, s1                                           |         a0 = s1;
    0x00058f3c b 0x58ee4                                             |         goto label_0;
                                                                     |     }
                                                                     | label_1:
    0x00058f40 sw zero, 0x18(s0)                                     |     *((s0 + 6)) = 0;
    0x00058f44 lw ra, 0x24(sp)                                       |     ra = *(var_24h);
    0x00058f48 lw s2, 0x20(sp)                                       |     s2 = *(var_20h);
    0x00058f4c lw s1, 0x1c(sp)                                       |     s1 = *(var_1ch);
    0x00058f50 lw s0, 0x18(sp)                                       |     s0 = *(var_18h);
    0x00058f54 addiu sp, sp, 0x28                                    |     
    0x00058f58 jr ra                                                 |     return v0;
                                                                     | }

[*] Function fprintf used 1 times libstdc++.so.6.0.19