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

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


[*] Function strcpy tear down of libstdc++.so.6.0.25

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libstdc++.so.6.0.25 @ 0xb55f4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000b55f4 ()                  | void fcn_000b55f4 () {
    0x000b55f4 lui gp, 0xf                   |     
    0x000b55f8 addiu gp, gp, -0x1554         |     
    0x000b55fc addu gp, gp, t9               |     gp += t9;
    0x000b5600 lw v0, (a1)                   |     v0 = *(a1);
    0x000b5604 addiu sp, sp, -0x30           |     
    0x000b5608 lw t9, 0xc(v0)                |     t9 = *((v0 + 3));
    0x000b560c sw s1, 0x28(sp)               |     *(var_28h) = s1;
    0x000b5610 sw s0, 0x24(sp)               |     *(var_24h) = s0;
    0x000b5614 addiu s1, sp, 0x18            |     s1 = sp + 0x18;
    0x000b5618 move s0, a2                   |     s0 = a2;
    0x000b561c move a2, a3                   |     a2 = a3;
    0x000b5620 lw a3, 0x40(sp)               |     a3 = *(arg_40h);
    0x000b5624 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x000b5628 sw ra, 0x2c(sp)               |     *(var_2ch) = ra;
    0x000b562c move a0, s1                   |     a0 = s1;
    0x000b5630 jalr t9                       |     t9 ();
    0x000b5634 lw t9, 0x18(s0)               |     t9 = *((s0 + 6));
    0x000b5638 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (t9 != 0) {
    0x000b563c beqz t9, 0xb564c              |         
    0x000b5640 move a0, s0                   |         a0 = s0;
    0x000b5644 jalr t9                       |         t9 ();
    0x000b5648 lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |     }
    0x000b564c lw t9, -0x7a90(gp)            |     t9 = *((gp - 7844));
    0x000b5650 move a1, s1                   |     a1 = s1;
    0x000b5654 move a0, s0                   |     a0 = s0;
    0x000b5658 jalr t9                       |     t9 ();
    0x000b565c lw v1, 0x18(sp)               |     v1 = *(var_18h);
    0x000b5660 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x000b5664 addiu a0, v1, -0xc            |     a0 = v1 + -0xc;
    0x000b5668 lw v0, -0xc(v1)               |     v0 = *((v1 - 3));
    0x000b566c lw a1, -0x6ed4(gp)            |     a1 = *((gp - 7093));
    0x000b5670 sw v0, 4(s0)                  |     *((s0 + 1)) = v0;
    0x000b5674 lw v0, -0x7fa8(gp)            |     v0 = *((gp - 8170));
    0x000b5678 addiu v0, v0, 0x3c64          |     v0 += 0x3c64;
    0x000b567c sw v0, 0x18(s0)               |     *((s0 + 6)) = v0;
                                             |     if (a0 == a1) {
    0x000b5680 bne a0, a1, 0xb5698           |         
    0x000b5684 lw ra, 0x2c(sp)               |         ra = *(var_2ch);
                                             | label_0:
    0x000b5688 lw s1, 0x28(sp)               |         s1 = *(var_28h);
    0x000b568c lw s0, 0x24(sp)               |         s0 = *(var_24h);
    0x000b5690 addiu sp, sp, 0x30            |         
    0x000b5694 jr ra                         |         return v0;
                                             |     }
    0x000b5698 lw v0, -0x75a0(gp)            |     v0 = *((gp - 7528));
                                             |     if (v0 == 0) {
    0x000b569c beql v0, zero, 0xb56dc        |         goto label_2;
                                             |     }
    0x000b56a0 lw v0, -4(v1)                 |     v0 = *((v1 - 1));
    0x000b56a4 sync                          |     __asm ("sync");
                                             |     do {
    0x000b56a8 ll v0, -4(v1)                 |         __asm ("ll v0, -4(v1)");
    0x000b56ac addiu at, v0, -1              |         at = v0 + -1;
    0x000b56b0 sc at, -4(v1)                 |         __asm ("sc at, -4(v1)");
    0x000b56b4 beqz at, 0xb56a8              |         
                                             |     } while (at == 0);
    0x000b56b8 nop                           |     
    0x000b56bc sync                          |     __asm ("sync");
                                             |     if (v0 > 0) {
                                             | label_1:
    0x000b56c0 bgtzl v0, 0xb5688             |         goto label_0;
                                             |     }
    0x000b56c4 lw ra, 0x2c(sp)               |     ra = *(var_2ch);
    0x000b56c8 lw t9, -0x67a8(gp)            |     t9 = *((gp - 6634));
    0x000b56cc addiu a1, sp, 0x1c            |     a1 = sp + 0x1c;
    0x000b56d0 jalr t9                       |     t9 ();
    0x000b56d4 lw ra, 0x2c(sp)               |     ra = *(var_2ch);
    0x000b56d8 b 0xb5688                     |     goto label_0;
                                             | label_2:
    0x000b56dc addiu a1, v0, -1              |     a1 = v0 + -1;
    0x000b56e0 sw a1, -4(v1)                 |     *((v1 - 1)) = a1;
    0x000b56e4 b 0xb56c0                     |     goto label_1;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libstdc++.so.6.0.25 @ 0xb5724 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000b5724 ()                  | void fcn_000b5724 () {
    0x000b5724 lui gp, 0xf                   |     
    0x000b5728 addiu gp, gp, -0x1684         |     
    0x000b572c addu gp, gp, t9               |     gp += t9;
    0x000b5730 lw v0, (a1)                   |     v0 = *(a1);
    0x000b5734 addiu sp, sp, -0x30           |     
    0x000b5738 lw t9, 0xc(v0)                |     t9 = *((v0 + 3));
    0x000b573c sw s1, 0x28(sp)               |     *(var_28h) = s1;
    0x000b5740 sw s0, 0x24(sp)               |     *(var_24h) = s0;
    0x000b5744 addiu s1, sp, 0x18            |     s1 = sp + 0x18;
    0x000b5748 move s0, a2                   |     s0 = a2;
    0x000b574c move a2, a3                   |     a2 = a3;
    0x000b5750 lw a3, 0x40(sp)               |     a3 = *(arg_40h);
    0x000b5754 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x000b5758 sw ra, 0x2c(sp)               |     *(var_2ch) = ra;
    0x000b575c move a0, s1                   |     a0 = s1;
    0x000b5760 jalr t9                       |     t9 ();
    0x000b5764 lw t9, 0x18(s0)               |     t9 = *((s0 + 6));
    0x000b5768 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (t9 != 0) {
    0x000b576c beqz t9, 0xb577c              |         
    0x000b5770 move a0, s0                   |         a0 = s0;
    0x000b5774 jalr t9                       |         t9 ();
    0x000b5778 lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |     }
    0x000b577c lw t9, -0x6cbc(gp)            |     t9 = *((gp - 6959));
    0x000b5780 move a1, s1                   |     a1 = s1;
    0x000b5784 move a0, s0                   |     a0 = s0;
    0x000b5788 jalr t9                       |     t9 ();
    0x000b578c lw v1, 0x18(sp)               |     v1 = *(var_18h);
    0x000b5790 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x000b5794 addiu a0, v1, -0xc            |     a0 = v1 + -0xc;
    0x000b5798 lw v0, -0xc(v1)               |     v0 = *((v1 - 3));
    0x000b579c lw a1, -0x712c(gp)            |     a1 = *((gp - 7243));
    0x000b57a0 sw v0, 4(s0)                  |     *((s0 + 1)) = v0;
    0x000b57a4 lw v0, -0x7fa8(gp)            |     v0 = *((gp - 8170));
    0x000b57a8 addiu v0, v0, 0x3280          |     v0 += 0x3280;
    0x000b57ac sw v0, 0x18(s0)               |     *((s0 + 6)) = v0;
                                             |     if (a0 == a1) {
    0x000b57b0 bne a0, a1, 0xb57c8           |         
    0x000b57b4 lw ra, 0x2c(sp)               |         ra = *(var_2ch);
                                             | label_0:
    0x000b57b8 lw s1, 0x28(sp)               |         s1 = *(var_28h);
    0x000b57bc lw s0, 0x24(sp)               |         s0 = *(var_24h);
    0x000b57c0 addiu sp, sp, 0x30            |         
    0x000b57c4 jr ra                         |         return v0;
                                             |     }
    0x000b57c8 lw v0, -0x75a0(gp)            |     v0 = *((gp - 7528));
                                             |     if (v0 == 0) {
    0x000b57cc beql v0, zero, 0xb580c        |         goto label_2;
                                             |     }
    0x000b57d0 lw v0, -4(v1)                 |     v0 = *((v1 - 1));
    0x000b57d4 sync                          |     __asm ("sync");
                                             |     do {
    0x000b57d8 ll v0, -4(v1)                 |         __asm ("ll v0, -4(v1)");
    0x000b57dc addiu at, v0, -1              |         at = v0 + -1;
    0x000b57e0 sc at, -4(v1)                 |         __asm ("sc at, -4(v1)");
    0x000b57e4 beqz at, 0xb57d8              |         
                                             |     } while (at == 0);
    0x000b57e8 nop                           |     
    0x000b57ec sync                          |     __asm ("sync");
                                             |     if (v0 > 0) {
                                             | label_1:
    0x000b57f0 bgtzl v0, 0xb57b8             |         goto label_0;
                                             |     }
    0x000b57f4 lw ra, 0x2c(sp)               |     ra = *(var_2ch);
    0x000b57f8 lw t9, -0x7890(gp)            |     t9 = *(gp);
    0x000b57fc addiu a1, sp, 0x1c            |     a1 = sp + 0x1c;
    0x000b5800 jalr t9                       |     t9 ();
    0x000b5804 lw ra, 0x2c(sp)               |     ra = *(var_2ch);
    0x000b5808 b 0xb57b8                     |     goto label_0;
                                             | label_2:
    0x000b580c addiu a1, v0, -1              |     a1 = v0 + -1;
    0x000b5810 sw a1, -4(v1)                 |     *((v1 - 1)) = a1;
    0x000b5814 b 0xb57f0                     |     goto label_1;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libstdc++.so.6.0.25 @ 0xb6d1c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000b6d1c ()                  | void fcn_000b6d1c () {
    0x000b6d1c lui gp, 0xf                   |     
    0x000b6d20 addiu gp, gp, -0x2c7c         |     
    0x000b6d24 addu gp, gp, t9               |     gp += t9;
    0x000b6d28 addiu sp, sp, -0x48           |     
    0x000b6d2c lw t9, -0x6d24(gp)            |     t9 = *((gp - 6985));
    0x000b6d30 sw s2, 0x3c(sp)               |     *(var_3ch) = s2;
    0x000b6d34 sw s1, 0x38(sp)               |     *(var_38h) = s1;
    0x000b6d38 move s2, a1                   |     s2 = a1;
    0x000b6d3c addiu s1, sp, 0x24            |     s1 = sp + 0x24;
    0x000b6d40 sw s0, 0x34(sp)               |     *(var_34h) = s0;
    0x000b6d44 lw a1, 0x60(sp)               |     a1 = *(arg_60h);
    0x000b6d48 move s0, a2                   |     s0 = a2;
    0x000b6d4c lw a2, 0x64(sp)               |     a2 = *(arg_64h);
    0x000b6d50 move a0, s1                   |     a0 = s1;
    0x000b6d54 sw s3, 0x40(sp)               |     *(var_40h) = s3;
    0x000b6d58 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x000b6d5c move s3, a3                   |     s3 = a3;
    0x000b6d60 sw ra, 0x44(sp)               |     *(var_44h) = ra;
    0x000b6d64 addiu a3, sp, 0x2c            |     a3 = sp + 0x2c;
    0x000b6d68 jalr t9                       |     t9 ();
    0x000b6d6c lw v0, (s2)                   |     v0 = *(s2);
    0x000b6d70 lw v1, 0x5c(sp)               |     v1 = *(arg_5ch);
    0x000b6d74 sw s1, 0x14(sp)               |     *(var_14h) = s1;
    0x000b6d78 sw v1, 0x10(sp)               |     *(var_10h) = v1;
    0x000b6d7c addiu s1, sp, 0x20            |     s1 = sp + 0x20;
    0x000b6d80 lw t9, 0xc(v0)                |     t9 = *((v0 + 3));
    0x000b6d84 lw a3, 0x58(sp)               |     a3 = *(arg_58h);
    0x000b6d88 move a2, s3                   |     a2 = s3;
    0x000b6d8c move a1, s2                   |     a1 = s2;
    0x000b6d90 move a0, s1                   |     a0 = s1;
    0x000b6d94 jalr t9                       |     t9 ();
    0x000b6d98 lw t9, 0x18(s0)               |     t9 = *((s0 + 6));
    0x000b6d9c lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (t9 != 0) {
    0x000b6da0 beqz t9, 0xb6db0              |         
    0x000b6da4 move a0, s0                   |         a0 = s0;
    0x000b6da8 jalr t9                       |         t9 ();
    0x000b6dac lw gp, 0x18(sp)               |         gp = *(var_18h);
                                             |     }
    0x000b6db0 lw t9, -0x7a90(gp)            |     t9 = *((gp - 7844));
    0x000b6db4 move a1, s1                   |     a1 = s1;
    0x000b6db8 move a0, s0                   |     a0 = s0;
    0x000b6dbc jalr t9                       |     t9 ();
    0x000b6dc0 lw v1, 0x20(sp)               |     v1 = *(var_20h);
    0x000b6dc4 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x000b6dc8 addiu a0, v1, -0xc            |     a0 = v1 + -0xc;
    0x000b6dcc lw v0, -0xc(v1)               |     v0 = *((v1 - 3));
    0x000b6dd0 lw s2, -0x6ed4(gp)            |     s2 = *((gp - 7093));
    0x000b6dd4 sw v0, 4(s0)                  |     *((s0 + 1)) = v0;
    0x000b6dd8 lw v0, -0x7fa8(gp)            |     v0 = *((gp - 8170));
    0x000b6ddc addiu v0, v0, 0x3c64          |     v0 += 0x3c64;
    0x000b6de0 sw v0, 0x18(s0)               |     *((s0 + 6)) = v0;
                                             |     if (a0 == s2) {
    0x000b6de4 bne a0, s2, 0xb6e14           |         
                                             | label_1:
    0x000b6de8 lw v0, 0x24(sp)               |         v0 = *(var_24h);
                                             | label_0:
    0x000b6dec addiu a0, v0, -0xc            |         a0 = v0 + -0xc;
    0x000b6df0 lw v1, -0x75a0(gp)            |         v1 = *((gp - 7528));
                                             |         if (a0 == s2) {
    0x000b6df4 bnel a0, s2, 0xb6e58          |             goto label_5;
                                             |         }
    0x000b6df8 lw ra, 0x44(sp)               |         ra = *(var_44h);
                                             | label_2:
    0x000b6dfc lw s3, 0x40(sp)               |         s3 = *(var_40h);
    0x000b6e00 lw s2, 0x3c(sp)               |         s2 = *(var_3ch);
    0x000b6e04 lw s1, 0x38(sp)               |         s1 = *(var_38h);
    0x000b6e08 lw s0, 0x34(sp)               |         s0 = *(var_34h);
    0x000b6e0c addiu sp, sp, 0x48            |         
    0x000b6e10 jr ra                         |         return v1;
                                             |     }
    0x000b6e14 lw v0, -0x75a0(gp)            |     v0 = *((gp - 7528));
                                             |     if (v0 == 0) {
    0x000b6e18 beql v0, zero, 0xb6ea4        |         goto label_6;
                                             |     }
    0x000b6e1c lw v0, -4(v1)                 |     v0 = *((v1 - 1));
    0x000b6e20 sync                          |     __asm ("sync");
                                             |     do {
    0x000b6e24 ll v0, -4(v1)                 |         __asm ("ll v0, -4(v1)");
    0x000b6e28 addiu at, v0, -1              |         at = v0 + -1;
    0x000b6e2c sc at, -4(v1)                 |         __asm ("sc at, -4(v1)");
    0x000b6e30 beqz at, 0xb6e24              |         
                                             |     } while (at == 0);
    0x000b6e34 nop                           |     
    0x000b6e38 sync                          |     __asm ("sync");
                                             | label_4:
    0x000b6e3c lw v0, 0x24(sp)               |     v0 = *(var_24h);
                                             |     if (v0 > 0) {
    0x000b6e40 bgtz v0, 0xb6dec              |         goto label_0;
                                             |     }
    0x000b6e44 lw t9, -0x67a8(gp)            |     t9 = *((gp - 6634));
    0x000b6e48 addiu a1, sp, 0x28            |     a1 = sp + 0x28;
    0x000b6e4c jalr t9                       |     t9 ();
    0x000b6e50 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x000b6e54 b 0xb6de8                     |     goto label_1;
                                             |     if (v1 == 0) {
                                             | label_5:
    0x000b6e58 beql v1, zero, 0xb6e98        |         goto label_7;
                                             |     }
    0x000b6e5c lw v1, -4(v0)                 |     v1 = *((v0 - 1));
    0x000b6e60 sync                          |     __asm ("sync");
                                             |     do {
    0x000b6e64 ll v1, -4(v0)                 |         __asm ("ll v1, -4(v0)");
    0x000b6e68 addiu at, v1, -1              |         at = v1 + -1;
    0x000b6e6c sc at, -4(v0)                 |         __asm ("sc at, -4(v0)");
    0x000b6e70 beqz at, 0xb6e64              |         
                                             |     } while (at == 0);
    0x000b6e74 nop                           |     
    0x000b6e78 sync                          |     __asm ("sync");
                                             |     if (v1 > 0) {
                                             | label_3:
    0x000b6e7c bgtzl v1, 0xb6dfc             |         goto label_2;
                                             |     }
    0x000b6e80 lw ra, 0x44(sp)               |     ra = *(var_44h);
    0x000b6e84 lw t9, -0x67a8(gp)            |     t9 = *((gp - 6634));
    0x000b6e88 move a1, s1                   |     a1 = s1;
    0x000b6e8c jalr t9                       |     t9 ();
    0x000b6e90 lw ra, 0x44(sp)               |     ra = *(var_44h);
    0x000b6e94 b 0xb6dfc                     |     goto label_2;
                                             | label_7:
    0x000b6e98 addiu a1, v1, -1              |     a1 = v1 + -1;
    0x000b6e9c sw a1, -4(v0)                 |     *((v0 - 1)) = a1;
    0x000b6ea0 b 0xb6e7c                     |     goto label_3;
                                             | label_6:
    0x000b6ea4 addiu a1, v0, -1              |     a1 = v0 + -1;
    0x000b6ea8 sw a1, -4(v1)                 |     *((v1 - 1)) = a1;
    0x000b6eac b 0xb6e3c                     |     goto label_4;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libstdc++.so.6.0.25 @ 0xb6f1c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000b6f1c ()                  | void fcn_000b6f1c () {
    0x000b6f1c lui gp, 0xf                   |     
    0x000b6f20 addiu gp, gp, -0x2e7c         |     
    0x000b6f24 addu gp, gp, t9               |     gp += t9;
    0x000b6f28 addiu sp, sp, -0x48           |     
    0x000b6f2c lw t9, -0x703c(gp)            |     t9 = *(gp);
    0x000b6f30 sw s2, 0x3c(sp)               |     *(var_3ch) = s2;
    0x000b6f34 sw s1, 0x38(sp)               |     *(var_38h) = s1;
    0x000b6f38 move s2, a1                   |     s2 = a1;
    0x000b6f3c addiu s1, sp, 0x24            |     s1 = sp + 0x24;
    0x000b6f40 sw s0, 0x34(sp)               |     *(var_34h) = s0;
    0x000b6f44 lw a1, 0x60(sp)               |     a1 = *(arg_60h);
    0x000b6f48 move s0, a2                   |     s0 = a2;
    0x000b6f4c lw a2, 0x64(sp)               |     a2 = *(arg_64h);
    0x000b6f50 move a0, s1                   |     a0 = s1;
    0x000b6f54 sw s3, 0x40(sp)               |     *(var_40h) = s3;
    0x000b6f58 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x000b6f5c move s3, a3                   |     s3 = a3;
    0x000b6f60 sw ra, 0x44(sp)               |     *(var_44h) = ra;
    0x000b6f64 addiu a3, sp, 0x2c            |     a3 = sp + 0x2c;
    0x000b6f68 jalr t9                       |     t9 ();
    0x000b6f6c lw v0, (s2)                   |     v0 = *(s2);
    0x000b6f70 lw v1, 0x5c(sp)               |     v1 = *(arg_5ch);
    0x000b6f74 sw s1, 0x14(sp)               |     *(var_14h) = s1;
    0x000b6f78 sw v1, 0x10(sp)               |     *(var_10h) = v1;
    0x000b6f7c addiu s1, sp, 0x20            |     s1 = sp + 0x20;
    0x000b6f80 lw t9, 0xc(v0)                |     t9 = *((v0 + 3));
    0x000b6f84 lw a3, 0x58(sp)               |     a3 = *(arg_58h);
    0x000b6f88 move a2, s3                   |     a2 = s3;
    0x000b6f8c move a1, s2                   |     a1 = s2;
    0x000b6f90 move a0, s1                   |     a0 = s1;
    0x000b6f94 jalr t9                       |     t9 ();
    0x000b6f98 lw t9, 0x18(s0)               |     t9 = *((s0 + 6));
    0x000b6f9c lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (t9 != 0) {
    0x000b6fa0 beqz t9, 0xb6fb0              |         
    0x000b6fa4 move a0, s0                   |         a0 = s0;
    0x000b6fa8 jalr t9                       |         t9 ();
    0x000b6fac lw gp, 0x18(sp)               |         gp = *(var_18h);
                                             |     }
    0x000b6fb0 lw t9, -0x6cbc(gp)            |     t9 = *((gp - 6959));
    0x000b6fb4 move a1, s1                   |     a1 = s1;
    0x000b6fb8 move a0, s0                   |     a0 = s0;
    0x000b6fbc jalr t9                       |     t9 ();
    0x000b6fc0 lw v1, 0x20(sp)               |     v1 = *(var_20h);
    0x000b6fc4 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x000b6fc8 addiu a0, v1, -0xc            |     a0 = v1 + -0xc;
    0x000b6fcc lw v0, -0xc(v1)               |     v0 = *((v1 - 3));
    0x000b6fd0 lw s2, -0x712c(gp)            |     s2 = *((gp - 7243));
    0x000b6fd4 sw v0, 4(s0)                  |     *((s0 + 1)) = v0;
    0x000b6fd8 lw v0, -0x7fa8(gp)            |     v0 = *((gp - 8170));
    0x000b6fdc addiu v0, v0, 0x3280          |     v0 += 0x3280;
    0x000b6fe0 sw v0, 0x18(s0)               |     *((s0 + 6)) = v0;
                                             |     if (a0 == s2) {
    0x000b6fe4 bne a0, s2, 0xb7014           |         
                                             | label_1:
    0x000b6fe8 lw v0, 0x24(sp)               |         v0 = *(var_24h);
                                             | label_0:
    0x000b6fec addiu a0, v0, -0xc            |         a0 = v0 + -0xc;
    0x000b6ff0 lw v1, -0x75a0(gp)            |         v1 = *((gp - 7528));
                                             |         if (a0 == s2) {
    0x000b6ff4 bnel a0, s2, 0xb7058          |             goto label_5;
                                             |         }
    0x000b6ff8 lw ra, 0x44(sp)               |         ra = *(var_44h);
                                             | label_2:
    0x000b6ffc lw s3, 0x40(sp)               |         s3 = *(var_40h);
    0x000b7000 lw s2, 0x3c(sp)               |         s2 = *(var_3ch);
    0x000b7004 lw s1, 0x38(sp)               |         s1 = *(var_38h);
    0x000b7008 lw s0, 0x34(sp)               |         s0 = *(var_34h);
    0x000b700c addiu sp, sp, 0x48            |         
    0x000b7010 jr ra                         |         return v1;
                                             |     }
    0x000b7014 lw v0, -0x75a0(gp)            |     v0 = *((gp - 7528));
                                             |     if (v0 == 0) {
    0x000b7018 beql v0, zero, 0xb70a4        |         goto label_6;
                                             |     }
    0x000b701c lw v0, -4(v1)                 |     v0 = *((v1 - 1));
    0x000b7020 sync                          |     __asm ("sync");
                                             |     do {
    0x000b7024 ll v0, -4(v1)                 |         __asm ("ll v0, -4(v1)");
    0x000b7028 addiu at, v0, -1              |         at = v0 + -1;
    0x000b702c sc at, -4(v1)                 |         __asm ("sc at, -4(v1)");
    0x000b7030 beqz at, 0xb7024              |         
                                             |     } while (at == 0);
    0x000b7034 nop                           |     
    0x000b7038 sync                          |     __asm ("sync");
                                             | label_4:
    0x000b703c lw v0, 0x24(sp)               |     v0 = *(var_24h);
                                             |     if (v0 > 0) {
    0x000b7040 bgtz v0, 0xb6fec              |         goto label_0;
                                             |     }
    0x000b7044 lw t9, -0x7890(gp)            |     t9 = *(gp);
    0x000b7048 addiu a1, sp, 0x28            |     a1 = sp + 0x28;
    0x000b704c jalr t9                       |     t9 ();
    0x000b7050 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x000b7054 b 0xb6fe8                     |     goto label_1;
                                             |     if (v1 == 0) {
                                             | label_5:
    0x000b7058 beql v1, zero, 0xb7098        |         goto label_7;
                                             |     }
    0x000b705c lw v1, -4(v0)                 |     v1 = *((v0 - 1));
    0x000b7060 sync                          |     __asm ("sync");
                                             |     do {
    0x000b7064 ll v1, -4(v0)                 |         __asm ("ll v1, -4(v0)");
    0x000b7068 addiu at, v1, -1              |         at = v1 + -1;
    0x000b706c sc at, -4(v0)                 |         __asm ("sc at, -4(v0)");
    0x000b7070 beqz at, 0xb7064              |         
                                             |     } while (at == 0);
    0x000b7074 nop                           |     
    0x000b7078 sync                          |     __asm ("sync");
                                             |     if (v1 > 0) {
                                             | label_3:
    0x000b707c bgtzl v1, 0xb6ffc             |         goto label_2;
                                             |     }
    0x000b7080 lw ra, 0x44(sp)               |     ra = *(var_44h);
    0x000b7084 lw t9, -0x7890(gp)            |     t9 = *(gp);
    0x000b7088 move a1, s1                   |     a1 = s1;
    0x000b708c jalr t9                       |     t9 ();
    0x000b7090 lw ra, 0x44(sp)               |     ra = *(var_44h);
    0x000b7094 b 0xb6ffc                     |     goto label_2;
                                             | label_7:
    0x000b7098 addiu a1, v1, -1              |     a1 = v1 + -1;
    0x000b709c sw a1, -4(v0)                 |     *((v0 - 1)) = a1;
    0x000b70a0 b 0xb707c                     |     goto label_3;
                                             | label_6:
    0x000b70a4 addiu a1, v0, -1              |     a1 = v0 + -1;
    0x000b70a8 sw a1, -4(v1)                 |     *((v1 - 1)) = a1;
    0x000b70ac b 0xb703c                     |     goto label_4;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libstdc++.so.6.0.25 @ 0xbc978 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000bc978 ()                  | void fcn_000bc978 () {
    0x000bc978 lui gp, 0xe                   |     
    0x000bc97c addiu gp, gp, 0x7728          |     
    0x000bc980 addu gp, gp, t9               |     gp += t9;
    0x000bc984 lw v0, (a1)                   |     v0 = *(a1);
    0x000bc988 addiu sp, sp, -0x38           |     
    0x000bc98c sw s0, 0x30(sp)               |     *(var_30h) = s0;
    0x000bc990 lw t9, 0xc(v0)                |     t9 = *((v0 + 3));
    0x000bc994 move s0, a2                   |     s0 = a2;
    0x000bc998 move a2, a3                   |     a2 = a3;
    0x000bc99c lw a3, 0x48(sp)               |     a3 = *(arg_48h);
    0x000bc9a0 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x000bc9a4 sw ra, 0x34(sp)               |     *(var_34h) = ra;
    0x000bc9a8 addiu a0, sp, 0x18            |     a0 = sp + 0x18;
    0x000bc9ac jalr t9                       |     t9 ();
    0x000bc9b0 lw t9, 0x18(s0)               |     t9 = *((s0 + 6));
    0x000bc9b4 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (t9 != 0) {
    0x000bc9b8 beqz t9, 0xbc9c8              |         
    0x000bc9bc move a0, s0                   |         a0 = s0;
    0x000bc9c0 jalr t9                       |         t9 ();
    0x000bc9c4 lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |     }
    0x000bc9c8 lw a1, 0x18(sp)               |     a1 = *(var_18h);
    0x000bc9cc lw a2, 0x1c(sp)               |     a2 = *(var_1ch);
    0x000bc9d0 addiu v0, s0, 8               |     v0 = s0 + 8;
    0x000bc9d4 lw t9, -0x6b14(gp)            |     t9 = *((gp - 6853));
    0x000bc9d8 sw v0, (s0)                   |     *(s0) = v0;
    0x000bc9dc move a3, zero                 |     a3 = 0;
    0x000bc9e0 addu a2, a1, a2               |     a2 = a1 + a2;
    0x000bc9e4 move a0, s0                   |     a0 = s0;
    0x000bc9e8 jalr t9                       |     t9 ();
    0x000bc9ec lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x000bc9f0 lw a0, 0x18(sp)               |     a0 = *(var_18h);
    0x000bc9f4 lw v0, -0x7c98(gp)            |     v0 = *((gp - 7974));
    0x000bc9f8 addiu v0, v0, -0x6664         |     v0 += -0x6664;
    0x000bc9fc sw v0, 0x18(s0)               |     *((s0 + 6)) = v0;
    0x000bca00 addiu v0, sp, 0x20            |     v0 = sp + 0x20;
    0x000bca04 lw t9, -0x6b24(gp)            |     t9 = *((gp - 6857));
                                             |     if (a0 != v0) {
    0x000bca08 beq a0, v0, 0xbca14           |         
    0x000bca0c jalr t9                       |         t9 ();
    0x000bca10 nop                           |         
                                             |     }
    0x000bca14 lw ra, 0x34(sp)               |     ra = *(var_34h);
    0x000bca18 lw s0, 0x30(sp)               |     s0 = *(var_30h);
    0x000bca1c addiu sp, sp, 0x38            |     
    0x000bca20 jr ra                         |     return v0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libstdc++.so.6.0.25 @ 0xbca54 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000bca54 ()                  | void fcn_000bca54 () {
    0x000bca54 lui gp, 0xe                   |     
    0x000bca58 addiu gp, gp, 0x764c          |     
    0x000bca5c addu gp, gp, t9               |     gp += t9;
    0x000bca60 lw v0, (a1)                   |     v0 = *(a1);
    0x000bca64 addiu sp, sp, -0x38           |     
    0x000bca68 sw s0, 0x30(sp)               |     *(var_30h) = s0;
    0x000bca6c lw t9, 0xc(v0)                |     t9 = *((v0 + 3));
    0x000bca70 move s0, a2                   |     s0 = a2;
    0x000bca74 move a2, a3                   |     a2 = a3;
    0x000bca78 lw a3, 0x48(sp)               |     a3 = *(arg_48h);
    0x000bca7c sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x000bca80 sw ra, 0x34(sp)               |     *(var_34h) = ra;
    0x000bca84 addiu a0, sp, 0x18            |     a0 = sp + 0x18;
    0x000bca88 jalr t9                       |     t9 ();
    0x000bca8c lw t9, 0x18(s0)               |     t9 = *((s0 + 6));
    0x000bca90 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (t9 != 0) {
    0x000bca94 beqz t9, 0xbcaa4              |         
    0x000bca98 move a0, s0                   |         a0 = s0;
    0x000bca9c jalr t9                       |         t9 ();
    0x000bcaa0 lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |     }
    0x000bcaa4 lw a2, 0x1c(sp)               |     a2 = *(var_1ch);
    0x000bcaa8 lw a1, 0x18(sp)               |     a1 = *(var_18h);
    0x000bcaac addiu v0, s0, 8               |     v0 = s0 + 8;
    0x000bcab0 sll a2, a2, 2                 |     a2 <<= 2;
    0x000bcab4 lw t9, -0x75fc(gp)            |     t9 = *((gp - 7551));
    0x000bcab8 sw v0, (s0)                   |     *(s0) = v0;
    0x000bcabc move a3, zero                 |     a3 = 0;
    0x000bcac0 addu a2, a1, a2               |     a2 = a1 + a2;
    0x000bcac4 move a0, s0                   |     a0 = s0;
    0x000bcac8 jalr t9                       |     t9 ();
    0x000bcacc lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x000bcad0 lw a0, 0x18(sp)               |     a0 = *(var_18h);
    0x000bcad4 lw v0, -0x7c98(gp)            |     v0 = *((gp - 7974));
    0x000bcad8 addiu v0, v0, -0x6638         |     v0 += -aav.0x00006638;
    0x000bcadc sw v0, 0x18(s0)               |     *((s0 + 6)) = v0;
    0x000bcae0 addiu v0, sp, 0x20            |     v0 = sp + 0x20;
    0x000bcae4 lw t9, -0x6b24(gp)            |     t9 = *((gp - 6857));
                                             |     if (a0 != v0) {
    0x000bcae8 beq a0, v0, 0xbcaf4           |         
    0x000bcaec jalr t9                       |         t9 ();
    0x000bcaf0 nop                           |         
                                             |     }
    0x000bcaf4 lw ra, 0x34(sp)               |     ra = *(var_34h);
    0x000bcaf8 lw s0, 0x30(sp)               |     s0 = *(var_30h);
    0x000bcafc addiu sp, sp, 0x38            |     
    0x000bcb00 jr ra                         |     return v0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libstdc++.so.6.0.25 @ 0xbd9e4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000bd9e4 ()                  | void fcn_000bd9e4 () {
    0x000bd9e4 lui gp, 0xe                   |     
    0x000bd9e8 addiu gp, gp, 0x66bc          |     
    0x000bd9ec addu gp, gp, t9               |     gp += t9;
    0x000bd9f0 addiu sp, sp, -0x68           |     
    0x000bd9f4 lw t9, -0x75ec(gp)            |     t9 = *((gp - 7547));
    0x000bd9f8 lw v0, 0x80(sp)               |     v0 = *(arg_80h);
    0x000bd9fc sw s0, 0x50(sp)               |     *(var_50h) = s0;
    0x000bda00 move s0, a2                   |     s0 = a2;
    0x000bda04 lw a2, 0x84(sp)               |     a2 = *(arg_84h);
    0x000bda08 sw s3, 0x5c(sp)               |     *(var_5ch) = s3;
    0x000bda0c sw s2, 0x58(sp)               |     *(var_58h) = s2;
    0x000bda10 move s3, a1                   |     s3 = a1;
    0x000bda14 sw s1, 0x54(sp)               |     *(var_54h) = s1;
    0x000bda18 addiu s2, sp, 0x40            |     s2 = sp + 0x40;
    0x000bda1c addiu s1, sp, 0x38            |     s1 = sp + 0x38;
    0x000bda20 move a1, v0                   |     a1 = v0;
    0x000bda24 addu a2, v0, a2               |     a2 = v0 + a2;
    0x000bda28 sw s4, 0x60(sp)               |     *(var_60h) = s4;
    0x000bda2c sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x000bda30 move s4, a3                   |     s4 = a3;
    0x000bda34 move a0, s1                   |     a0 = s1;
    0x000bda38 sw ra, 0x64(sp)               |     *(var_64h) = ra;
    0x000bda3c sw s2, 0x38(sp)               |     *(var_38h) = s2;
    0x000bda40 move a3, zero                 |     a3 = 0;
    0x000bda44 jalr t9                       |     t9 ();
    0x000bda48 lw v0, (s3)                   |     v0 = *(s3);
    0x000bda4c lw v1, 0x7c(sp)               |     v1 = *(arg_7ch);
    0x000bda50 sw s1, 0x14(sp)               |     *(var_14h) = s1;
    0x000bda54 sw v1, 0x10(sp)               |     *(var_10h) = v1;
    0x000bda58 lw t9, 0xc(v0)                |     t9 = *((v0 + 3));
    0x000bda5c lw a3, 0x78(sp)               |     a3 = *(arg_78h);
    0x000bda60 move a2, s4                   |     a2 = s4;
    0x000bda64 move a1, s3                   |     a1 = s3;
    0x000bda68 addiu a0, sp, 0x20            |     a0 = sp + 0x20;
    0x000bda6c jalr t9                       |     t9 ();
    0x000bda70 lw t9, 0x18(s0)               |     t9 = *((s0 + 6));
    0x000bda74 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (t9 != 0) {
    0x000bda78 beqz t9, 0xbda88              |         
    0x000bda7c move a0, s0                   |         a0 = s0;
    0x000bda80 jalr t9                       |         t9 ();
    0x000bda84 lw gp, 0x18(sp)               |         gp = *(var_18h);
                                             |     }
    0x000bda88 lw a1, 0x20(sp)               |     a1 = *(var_20h);
    0x000bda8c lw a2, 0x24(sp)               |     a2 = *(var_24h);
    0x000bda90 addiu v0, s0, 8               |     v0 = s0 + 8;
    0x000bda94 lw t9, -0x6b14(gp)            |     t9 = *((gp - 6853));
    0x000bda98 sw v0, (s0)                   |     *(s0) = v0;
    0x000bda9c move a3, zero                 |     a3 = 0;
    0x000bdaa0 addu a2, a1, a2               |     a2 = a1 + a2;
    0x000bdaa4 move a0, s0                   |     a0 = s0;
    0x000bdaa8 jalr t9                       |     t9 ();
    0x000bdaac lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x000bdab0 lw a0, 0x20(sp)               |     a0 = *(var_20h);
    0x000bdab4 lw v0, -0x7c98(gp)            |     v0 = *((gp - 7974));
    0x000bdab8 addiu v0, v0, -0x6664         |     v0 += -0x6664;
    0x000bdabc sw v0, 0x18(s0)               |     *((s0 + 6)) = v0;
    0x000bdac0 addiu v0, sp, 0x28            |     v0 = sp + 0x28;
    0x000bdac4 lw t9, -0x6b24(gp)            |     t9 = *((gp - 6857));
                                             |     if (a0 != v0) {
    0x000bdac8 beq a0, v0, 0xbdad8           |         
    0x000bdacc jalr t9                       |         t9 ();
    0x000bdad0 nop                           |         
    0x000bdad4 lw gp, 0x18(sp)               |         gp = *(var_18h);
                                             |     }
    0x000bdad8 lw a0, 0x38(sp)               |     a0 = *(var_38h);
    0x000bdadc lw t9, -0x6b24(gp)            |     t9 = *((gp - 6857));
                                             |     if (a0 != s2) {
    0x000bdae0 beq a0, s2, 0xbdaec           |         
    0x000bdae4 jalr t9                       |         t9 ();
    0x000bdae8 nop                           |         
                                             |     }
    0x000bdaec lw ra, 0x64(sp)               |     ra = *(var_64h);
    0x000bdaf0 lw s4, 0x60(sp)               |     s4 = *(var_60h);
    0x000bdaf4 lw s3, 0x5c(sp)               |     s3 = *(var_5ch);
    0x000bdaf8 lw s2, 0x58(sp)               |     s2 = *(var_58h);
    0x000bdafc lw s1, 0x54(sp)               |     s1 = *(var_54h);
    0x000bdb00 lw s0, 0x50(sp)               |     s0 = *(var_50h);
    0x000bdb04 addiu sp, sp, 0x68            |     
    0x000bdb08 jr ra                         |     return v0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libstdc++.so.6.0.25 @ 0xbdb60 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000bdb60 ()                  | void fcn_000bdb60 () {
    0x000bdb60 lui gp, 0xe                   |     
    0x000bdb64 addiu gp, gp, 0x6540          |     
    0x000bdb68 addu gp, gp, t9               |     gp += t9;
    0x000bdb6c addiu sp, sp, -0x68           |     
    0x000bdb70 lw t9, -0x7a2c(gp)            |     t9 = *((gp - 7819));
    0x000bdb74 lw v0, 0x84(sp)               |     v0 = *(arg_84h);
    0x000bdb78 lw v1, 0x80(sp)               |     v1 = *(arg_80h);
    0x000bdb7c sll v0, v0, 2                 |     v0 <<= 2;
    0x000bdb80 sw s3, 0x5c(sp)               |     *(var_5ch) = s3;
    0x000bdb84 sw s2, 0x58(sp)               |     *(var_58h) = s2;
    0x000bdb88 move s3, a1                   |     s3 = a1;
    0x000bdb8c sw s1, 0x54(sp)               |     *(var_54h) = s1;
    0x000bdb90 addiu s2, sp, 0x40            |     s2 = sp + 0x40;
    0x000bdb94 addiu s1, sp, 0x38            |     s1 = sp + 0x38;
    0x000bdb98 move a1, v1                   |     a1 = v1;
    0x000bdb9c sw s4, 0x60(sp)               |     *(var_60h) = s4;
    0x000bdba0 sw s0, 0x50(sp)               |     *(var_50h) = s0;
    0x000bdba4 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x000bdba8 move s4, a3                   |     s4 = a3;
    0x000bdbac move a0, s1                   |     a0 = s1;
    0x000bdbb0 move a3, zero                 |     a3 = 0;
    0x000bdbb4 sw ra, 0x64(sp)               |     *(var_64h) = ra;
    0x000bdbb8 move s0, a2                   |     s0 = a2;
    0x000bdbbc sw s2, 0x38(sp)               |     *(var_38h) = s2;
    0x000bdbc0 addu a2, v1, v0               |     a2 = v1 + v0;
    0x000bdbc4 jalr t9                       |     t9 ();
    0x000bdbc8 lw v0, (s3)                   |     v0 = *(s3);
    0x000bdbcc lw v1, 0x7c(sp)               |     v1 = *(arg_7ch);
    0x000bdbd0 sw s1, 0x14(sp)               |     *(var_14h) = s1;
    0x000bdbd4 sw v1, 0x10(sp)               |     *(var_10h) = v1;
    0x000bdbd8 lw t9, 0xc(v0)                |     t9 = *((v0 + 3));
    0x000bdbdc lw a3, 0x78(sp)               |     a3 = *(arg_78h);
    0x000bdbe0 move a2, s4                   |     a2 = s4;
    0x000bdbe4 move a1, s3                   |     a1 = s3;
    0x000bdbe8 addiu a0, sp, 0x20            |     a0 = sp + 0x20;
    0x000bdbec jalr t9                       |     t9 ();
    0x000bdbf0 lw t9, 0x18(s0)               |     t9 = *((s0 + 6));
    0x000bdbf4 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (t9 != 0) {
    0x000bdbf8 beqz t9, 0xbdc08              |         
    0x000bdbfc move a0, s0                   |         a0 = s0;
    0x000bdc00 jalr t9                       |         t9 ();
    0x000bdc04 lw gp, 0x18(sp)               |         gp = *(var_18h);
                                             |     }
    0x000bdc08 lw a2, 0x24(sp)               |     a2 = *(var_24h);
    0x000bdc0c lw a1, 0x20(sp)               |     a1 = *(var_20h);
    0x000bdc10 addiu v0, s0, 8               |     v0 = s0 + 8;
    0x000bdc14 sll a2, a2, 2                 |     a2 <<= 2;
    0x000bdc18 lw t9, -0x75fc(gp)            |     t9 = *((gp - 7551));
    0x000bdc1c sw v0, (s0)                   |     *(s0) = v0;
    0x000bdc20 move a3, zero                 |     a3 = 0;
    0x000bdc24 addu a2, a1, a2               |     a2 = a1 + a2;
    0x000bdc28 move a0, s0                   |     a0 = s0;
    0x000bdc2c jalr t9                       |     t9 ();
    0x000bdc30 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x000bdc34 lw a0, 0x20(sp)               |     a0 = *(var_20h);
    0x000bdc38 lw v0, -0x7c98(gp)            |     v0 = *((gp - 7974));
    0x000bdc3c addiu v0, v0, -0x6638         |     v0 += -aav.0x00006638;
    0x000bdc40 sw v0, 0x18(s0)               |     *((s0 + 6)) = v0;
    0x000bdc44 addiu v0, sp, 0x28            |     v0 = sp + 0x28;
    0x000bdc48 lw t9, -0x6b24(gp)            |     t9 = *((gp - 6857));
                                             |     if (a0 != v0) {
    0x000bdc4c beq a0, v0, 0xbdc5c           |         
    0x000bdc50 jalr t9                       |         t9 ();
    0x000bdc54 nop                           |         
    0x000bdc58 lw gp, 0x18(sp)               |         gp = *(var_18h);
                                             |     }
    0x000bdc5c lw a0, 0x38(sp)               |     a0 = *(var_38h);
    0x000bdc60 lw t9, -0x6b24(gp)            |     t9 = *((gp - 6857));
                                             |     if (a0 != s2) {
    0x000bdc64 beq a0, s2, 0xbdc70           |         
    0x000bdc68 jalr t9                       |         t9 ();
    0x000bdc6c nop                           |         
                                             |     }
    0x000bdc70 lw ra, 0x64(sp)               |     ra = *(var_64h);
    0x000bdc74 lw s4, 0x60(sp)               |     s4 = *(var_60h);
    0x000bdc78 lw s3, 0x5c(sp)               |     s3 = *(var_5ch);
    0x000bdc7c lw s2, 0x58(sp)               |     s2 = *(var_58h);
    0x000bdc80 lw s1, 0x54(sp)               |     s1 = *(var_54h);
    0x000bdc84 lw s0, 0x50(sp)               |     s0 = *(var_50h);
    0x000bdc88 addiu sp, sp, 0x68            |     
    0x000bdc8c jr ra                         |     return v0;
                                             | }
    ; assembly                                                                       | /* r2dec pseudo code output */
                                                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libstdc++.so.6.0.25 @ 0xae9b4 */
                                                                                     | #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) */
    0x000ae9b4 lui gp, 0xf                                                           |     
    0x000ae9b8 addiu gp, gp, 0x56ec                                                  |     
    0x000ae9bc addu gp, gp, t9                                                       |     gp += t9;
    0x000ae9c0 addiu sp, sp, -0x28                                                   |     
    0x000ae9c4 sw s0, 0x18(sp)                                                       |     *(var_18h) = s0;
    0x000ae9c8 lw s0, 0x18(a0)                                                       |     s0 = *((a0 + 6));
    0x000ae9cc sw gp, 0x10(sp)                                                       |     *(var_10h_2) = gp;
    0x000ae9d0 sw ra, 0x24(sp)                                                       |     *(var_24h_2) = ra;
    0x000ae9d4 sw s2, 0x20(sp)                                                       |     *(var_20h) = s2;
    0x000ae9d8 sw s1, 0x1c(sp)                                                       |     *(var_1ch) = s1;
    0x000ae9dc move s1, a0                                                           |     s1 = a0;
                                                                                     |     if (s0 == 0) {
    0x000ae9e0 beqz s0, 0xaea08                                                      |         goto label_0;
                                                                                     |     }
    0x000ae9e4 move s2, a1                                                           |     s2 = a1;
    0x000ae9e8 lw t9, 4(s0)                                                          |     t9 = *((s0 + 1));
                                                                                     |     do {
    0x000ae9ec lw a2, 8(s0)                                                          |         a2 = *((s0 + 2));
    0x000ae9f0 move a1, s1                                                           |         a1 = s1;
    0x000ae9f4 move a0, s2                                                           |         a0 = s2;
    0x000ae9f8 jalr t9                                                               |         t9 ();
    0x000ae9fc lw s0, (s0)                                                           |         s0 = *(s0);
    0x000aea00 lw t9, 4(s0)                                                          |         t9 = *((s0 + 1));
    0x000aea04 bnel s0, zero, 0xae9ec                                                |         
                                                                                     |     } while (s0 == 0);
                                                                                     | label_0:
    0x000aea08 lw ra, 0x24(sp)                                                       |     ra = *(var_24h_2);
    0x000aea0c lw s2, 0x20(sp)                                                       |     s2 = *(var_20h);
    0x000aea10 lw s1, 0x1c(sp)                                                       |     s1 = *(var_1ch);
    0x000aea14 lw s0, 0x18(sp)                                                       |     s0 = *(var_18h);
    0x000aea18 addiu sp, sp, 0x28                                                    |     
    0x000aea1c jr ra                                                                 |     return;
                                                                                     | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libstdc++.so.6.0.25 @ 0xaea6c */
                                                                     | #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() */
    0x000aea6c lui gp, 0xf                                           |     
    0x000aea70 addiu gp, gp, 0x5634                                  |     
    0x000aea74 addu gp, gp, t9                                       |     gp += t9;
    0x000aea78 addiu sp, sp, -0x28                                   |     
    0x000aea7c sw s0, 0x18(sp)                                       |     *(var_18h) = s0;
    0x000aea80 lw s0, 0x18(a0)                                       |     s0 = *((a0 + 6));
    0x000aea84 sw gp, 0x10(sp)                                       |     *(var_10h) = gp;
    0x000aea88 sw s2, 0x20(sp)                                       |     *(var_20h) = s2;
    0x000aea8c sw ra, 0x24(sp)                                       |     *(var_24h) = ra;
    0x000aea90 sw s1, 0x1c(sp)                                       |     *(var_1ch) = s1;
    0x000aea94 move s2, a0                                           |     s2 = a0;
                                                                     |     if (s0 == 0) {
    0x000aea98 beqz s0, 0xaeaf8                                      |         goto label_2;
                                                                     |     }
    0x000aea9c lw s1, -0x75a0(gp)                                    |     s1 = *((gp - 7528));
    0x000aeaa0 b 0xaeadc                                             |     goto label_3;
                                                                     | label_0:
    0x000aeaa4 sync                                                  |     __asm ("sync");
                                                                     |     do {
    0x000aeaa8 ll v1, 0xc(s0)                                        |         __asm ("ll v1, 0xc(s0)");
    0x000aeaac addiu at, v1, -1                                      |         at = v1 + -1;
    0x000aeab0 sc at, 0xc(s0)                                        |         __asm ("sc at, 0xc(s0)");
    0x000aeab4 beqz at, 0xaeaa8                                      |         
                                                                     |     } while (at == 0);
    0x000aeab8 nop                                                   |     
    0x000aeabc sync                                                  |     __asm ("sync");
    0x000aeac0 lw t9, -0x6b24(gp)                                    |     t9 = *((gp - 6857));
    0x000aeac4 move a0, s0                                           |     a0 = s0;
                                                                     |     if (v1 != 0) {
    0x000aeac8 bnez v1, 0xaeaf8                                      |         goto label_2;
                                                                     |     }
                                                                     | label_1:
    0x000aeacc lw s0, (s0)                                           |     s0 = *(s0);
    0x000aead0 jalr t9                                               |     t9 ();
    0x000aead4 lw gp, 0x10(sp)                                       |     gp = *(var_10h);
                                                                     |     if (s0 == 0) {
    0x000aead8 beqz s0, 0xaeaf8                                      |         goto label_2;
                                                                     |     }
                                                                     | label_3:
    0x000aeadc lw t9, -0x6b24(gp)                                    |     t9 = *((gp - 6857));
                                                                     |     if (s1 != 0) {
    0x000aeae0 bnez s1, 0xaeaa4                                      |         goto label_0;
                                                                     |     }
    0x000aeae4 lw v1, 0xc(s0)                                        |     v1 = *((s0 + 3));
    0x000aeae8 addiu a0, v1, -1                                      |     a0 = v1 + -1;
    0x000aeaec sw a0, 0xc(s0)                                        |     *((s0 + 3)) = a0;
    0x000aeaf0 move a0, s0                                           |     a0 = s0;
                                                                     |     if (v1 == 0) {
    0x000aeaf4 beqz v1, 0xaeacc                                      |         goto label_1;
                                                                     |     }
                                                                     | label_2:
    0x000aeaf8 lw ra, 0x24(sp)                                       |     ra = *(var_24h);
    0x000aeafc sw zero, 0x18(s2)                                     |     *((s2 + 6)) = 0;
    0x000aeb00 lw s1, 0x1c(sp)                                       |     s1 = *(var_1ch);
    0x000aeb04 lw s2, 0x20(sp)                                       |     s2 = *(var_20h);
    0x000aeb08 lw s0, 0x18(sp)                                       |     s0 = *(var_18h);
    0x000aeb0c addiu sp, sp, 0x28                                    |     
    0x000aeb10 jr ra                                                 |     return v1;
                                                                     | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/lib/libstdc++.so.6.0.25 @ 0x11c5c0 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) method.std::ostream::sentry.sentry__ ()          | void method_std::ostream::sentry_sentry_ () {
                                                             |     /* std::ostream::sentry::~sentry() */
    0x0011c5c0 lui gp, 8                                     |     
    0x0011c5c4 addiu gp, gp, 0x7ae0                          |     
    0x0011c5c8 addu gp, gp, t9                               |     gp += t9;
    0x0011c5cc lw v0, 4(a0)                                  |     v0 = *((a0 + 1));
    0x0011c5d0 addiu sp, sp, -0x28                           |     
    0x0011c5d4 lw v1, (v0)                                   |     v1 = *(v0);
    0x0011c5d8 sw s0, 0x1c(sp)                               |     *(var_1ch) = s0;
    0x0011c5dc sw gp, 0x10(sp)                               |     *(var_10h) = gp;
    0x0011c5e0 lw s0, -0xc(v1)                               |     s0 = *((v1 - 3));
    0x0011c5e4 sw ra, 0x24(sp)                               |     *(var_24h) = ra;
    0x0011c5e8 addu s0, v0, s0                               |     s0 = v0 + s0;
    0x0011c5ec sw s1, 0x20(sp)                               |     *(var_20h) = s1;
    0x0011c5f0 lw v0, 0xc(s0)                                |     v0 = *((s0 + 3));
    0x0011c5f4 andi v0, v0, 0x2000                           |     v0 &= aav.0x00002000;
    0x0011c5f8 lw ra, 0x24(sp)                               |     ra = *(var_24h);
                                                             |     if (v0 != 0) {
    0x0011c5fc beqz v0, 0x11c640                             |         
    0x0011c600 lw t9, -0x6cd0(gp)                            |         t9 = *((gp - 6964));
    0x0011c604 move s1, a0                                   |         s1 = a0;
    0x0011c608 jalr t9                                       |         t9 ();
    0x0011c60c lw ra, 0x24(sp)                               |         ra = *(var_24h);
                                                             |         if (v0 != 0) {
    0x0011c610 bnez v0, 0x11c640                             |             goto label_0;
                                                             |         }
    0x0011c614 lw a0, 0x78(s0)                               |         a0 = *((s0 + 30));
                                                             |         if (a0 == 0) {
    0x0011c618 beql a0, zero, 0x11c644                       |             goto label_1;
                                                             |         }
    0x0011c61c lw s1, 0x20(sp)                               |         s1 = *(var_20h);
    0x0011c620 lw v0, (a0)                                   |         v0 = *(a0);
    0x0011c624 lw t9, 0x18(v0)                               |         t9 = *((v0 + 6));
    0x0011c628 jalr t9                                       |         t9 ();
    0x0011c62c nop                                           |         
    0x0011c630 addiu v1, zero, -1                            |         v1 = -1;
    0x0011c634 lw gp, 0x10(sp)                               |         gp = *(var_10h);
                                                             |         if (v0 == v1) {
    0x0011c638 beq v0, v1, 0x11c650                          |             goto label_2;
                                                             |         }
    0x0011c63c lw ra, 0x24(sp)                               |         ra = *(var_24h);
                                                             |     }
                                                             | label_0:
    0x0011c640 lw s1, 0x20(sp)                               |     s1 = *(var_20h);
                                                             | label_1:
    0x0011c644 lw s0, 0x1c(sp)                               |     s0 = *(var_1ch);
    0x0011c648 addiu sp, sp, 0x28                            |     
    0x0011c64c jr ra                                         |     return v0;
                                                             | label_2:
    0x0011c650 lw v0, 4(s1)                                  |     v0 = *((s1 + 1));
    0x0011c654 lw ra, 0x24(sp)                               |     ra = *(var_24h);
    0x0011c658 lw s1, 0x20(sp)                               |     s1 = *(var_20h);
    0x0011c65c lw v1, (v0)                                   |     v1 = *(v0);
    0x0011c660 lw s0, 0x1c(sp)                               |     s0 = *(var_1ch);
    0x0011c664 lw t9, -0x7904(gp)                            |     t9 = *(gp);
    0x0011c668 lw v1, -0xc(v1)                               |     v1 = *((v1 - 3));
    0x0011c66c addu v0, v0, v1                               |     v0 += v1;
    0x0011c670 move a0, v0                                   |     a0 = v0;
    0x0011c674 lw a1, 0x14(v0)                               |     a1 = *((v0 + 5));
    0x0011c678 addiu sp, sp, 0x28                            |     
    0x0011c67c ori a1, a1, 1                                 |     a1 |= 1;
    0x0011c680 jr t9                                         |     return t9 ();
                                                             | }

[*] Function strcpy used 1 times libstdc++.so.6.0.25