[*] Binary protection state of libuClibc++-0.2.4.so

  
  	Full RELRO     No Canary found   NX enabled   DSO          No RPATH     No RUNPATH   No Symbols


[*] Function strcat tear down of libuClibc++-0.2.4.so

    ; assembly                                                                                               | /* r2dec pseudo code output */
                                                                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/usr/lib/libuClibc++-0.2.4.so @ 0x10aa0 */
                                                                                                             | #include <stdint.h>
                                                                                                             |  
    ; (fcn) method.std::basic_filebuf_wchar_t__std::char_traits_wchar_t___.overflow_unsigned_int_ ()         | void method_std::basic_filebuf_wchar_t_std::char_traits_wchar_t_overflow_unsigned_int_ () {
                                                                                                             |     /* std::basic_filebuf<wchar_t, std::char_traits<wchar_t> >::overflow(unsigned int) */
    0x00010aa0 lui gp, 4                                                                                     |     
    0x00010aa4 addiu gp, gp, -0x7a60                                                                         |     
    0x00010aa8 addu gp, gp, t9                                                                               |     gp += t9;
    0x00010aac addiu sp, sp, -0x48                                                                           |     
    0x00010ab0 lw v0, 0x24(a0)                                                                               |     v0 = *((a0 + 9));
    0x00010ab4 sw gp, 0x10(sp)                                                                               |     *(var_10h) = gp;
    0x00010ab8 sw ra, 0x44(sp)                                                                               |     *(var_44h) = ra;
    0x00010abc sw s6, 0x40(sp)                                                                               |     *(var_40h) = s6;
    0x00010ac0 sw s5, 0x3c(sp)                                                                               |     *(var_3ch) = s5;
    0x00010ac4 sw s4, 0x38(sp)                                                                               |     *(var_38h) = s4;
    0x00010ac8 sw s3, 0x34(sp)                                                                               |     *(var_34h) = s3;
    0x00010acc sw s2, 0x30(sp)                                                                               |     *(var_30h) = s2;
    0x00010ad0 sw s1, 0x2c(sp)                                                                               |     *(var_2ch) = s1;
    0x00010ad4 sw s0, 0x28(sp)                                                                               |     *(var_28h) = s0;
    0x00010ad8 move s0, a0                                                                                   |     s0 = a0;
                                                                                                             |     if (v0 == 0) {
    0x00010adc bnez v0, 0x10b10                                                                              |         
                                                                                                             | label_0:
    0x00010ae0 addiu s1, zero, -1                                                                            |         s1 = -1;
                                                                                                             | label_3:
    0x00010ae4 lw ra, 0x44(sp)                                                                               |         ra = *(var_44h);
                                                                                                             | label_1:
    0x00010ae8 move v0, s1                                                                                   |         v0 = s1;
    0x00010aec lw s6, 0x40(sp)                                                                               |         s6 = *(var_40h);
    0x00010af0 lw s5, 0x3c(sp)                                                                               |         s5 = *(var_3ch);
    0x00010af4 lw s4, 0x38(sp)                                                                               |         s4 = *(var_38h);
    0x00010af8 lw s3, 0x34(sp)                                                                               |         s3 = *(var_34h);
    0x00010afc lw s2, 0x30(sp)                                                                               |         s2 = *(var_30h);
    0x00010b00 lw s1, 0x2c(sp)                                                                               |         s1 = *(var_2ch);
    0x00010b04 lw s0, 0x28(sp)                                                                               |         s0 = *(var_28h);
    0x00010b08 addiu sp, sp, 0x48                                                                            |         
    0x00010b0c jr ra                                                                                         |         return v0;
                                                                                                             |     }
    0x00010b10 lw v0, 0x14(a0)                                                                               |     v0 = *((a0 + 5));
    0x00010b14 move s1, a1                                                                                   |     s1 = a1;
    0x00010b18 sw zero, 0x20(sp)                                                                             |     *(var_20h) = 0;
    0x00010b1c sw zero, 0x24(sp)                                                                             |     *(var_24h) = 0;
                                                                                                             |     if (v0 == 0) {
    0x00010b20 beqz v0, 0x10bb4                                                                              |         goto label_4;
                                                                                                             |     }
    0x00010b24 move s2, zero                                                                                 |     s2 = 0;
    0x00010b28 addiu s5, sp, 0x20                                                                            |     s5 = sp + 0x20;
    0x00010b2c addiu s4, sp, 0x18                                                                            |     s4 = sp + 0x18;
    0x00010b30 addiu s6, zero, -1                                                                            |     s6 = -1;
                                                                                                             |     do {
    0x00010b34 lw v1, 0x14(s0)                                                                               |         v1 = *((s0 + 5));
    0x00010b38 sll s3, s2, 2                                                                                 |         s3 = s2 << 2;
    0x00010b3c addu v0, v1, s3                                                                               |         v0 = v1 + s3;
    0x00010b40 lw a0, 0x18(s0)                                                                               |         a0 = *((s0 + 6));
                                                                                                             |         if (v1 == 0) {
    0x00010b44 beqz v1, 0x10b94                                                                              |             goto label_5;
                                                                                                             |         }
    0x00010b48 lw t9, -0x7ee0(gp)                                                                            |         t9 = *((gp - 8120));
                                                                                                             |         if (v0 == a0) {
    0x00010b4c beq v0, a0, 0x10b94                                                                           |             goto label_5;
                                                                                                             |         }
    0x00010b50 lw a1, (v0)                                                                                   |         a1 = *(v0);
    0x00010b54 addiu a3, zero, 8                                                                             |         a3 = 8;
    0x00010b58 move a2, s5                                                                                   |         a2 = s5;
    0x00010b5c move a0, s4                                                                                   |         a0 = s4;
    0x00010b60 jalr t9                                                                                       |         t9 ();
    0x00010b64 lw gp, 0x10(sp)                                                                               |         gp = *(var_10h);
                                                                                                             |         if (v0 == s6) {
    0x00010b68 beq v0, s6, 0x10b94                                                                           |             goto label_5;
                                                                                                             |         }
    0x00010b6c lw t9, -0x7c4c(gp)                                                                            |         t9 = *((gp - 7955));
    0x00010b70 lw a3, 0x24(s0)                                                                               |         a3 = *((s0 + 9));
    0x00010b74 addiu a2, zero, 1                                                                             |         a2 = 1;
    0x00010b78 move a1, v0                                                                                   |         a1 = v0;
    0x00010b7c move a0, s4                                                                                   |         a0 = s4;
    0x00010b80 jalr t9                                                                                       |         t9 ();
    0x00010b84 lw gp, 0x10(sp)                                                                               |         gp = *(var_10h);
                                                                                                             |         if (v0 == 0) {
    0x00010b88 beqz v0, 0x10b94                                                                              |             goto label_5;
                                                                                                             |         }
    0x00010b8c addiu s2, s2, 1                                                                               |         s2++;
    0x00010b90 b 0x10b34                                                                                     |         
                                                                                                             |     } while (1);
                                                                                                             | label_5:
    0x00010b94 lw a2, 0x14(s0)                                                                               |     a2 = *((s0 + 5));
    0x00010b98 lw v1, 0x18(s0)                                                                               |     v1 = *((s0 + 6));
    0x00010b9c addu s3, a2, s3                                                                               |     s3 = a2 + s3;
    0x00010ba0 negu a0, s2                                                                                   |     __asm ("negu a0, s2");
                                                                                                             |     if (v1 != s3) {
    0x00010ba4 bne v1, s3, 0x10c08                                                                           |         goto label_6;
                                                                                                             |     }
    0x00010ba8 sll a0, a0, 2                                                                                 |     a0 <<= 2;
    0x00010bac addu v1, v1, a0                                                                               |     v1 += a0;
    0x00010bb0 sw v1, 0x18(s0)                                                                               |     *((s0 + 6)) = v1;
                                                                                                             | label_4:
    0x00010bb4 addiu s3, zero, -1                                                                            |     s3 = -1;
    0x00010bb8 lw t9, -0x7ee0(gp)                                                                            |     t9 = *((gp - 8120));
                                                                                                             |     if (s1 == s3) {
    0x00010bbc beq s1, s3, 0x10c40                                                                           |         goto label_7;
                                                                                                             |     }
    0x00010bc0 addiu s2, sp, 0x18                                                                            |     s2 = sp + 0x18;
    0x00010bc4 addiu a3, zero, 8                                                                             |     a3 = 8;
    0x00010bc8 addiu a2, sp, 0x20                                                                            |     a2 = sp + 0x20;
    0x00010bcc move a1, s1                                                                                   |     a1 = s1;
    0x00010bd0 move a0, s2                                                                                   |     a0 = s2;
    0x00010bd4 jalr t9                                                                                       |     t9 ();
    0x00010bd8 lw gp, 0x10(sp)                                                                               |     gp = *(var_10h);
                                                                                                             |     if (v0 == s3) {
    0x00010bdc beq v0, s3, 0x10ae0                                                                           |         goto label_0;
                                                                                                             |     }
    0x00010be0 lw t9, -0x7c4c(gp)                                                                            |     t9 = *((gp - 7955));
    0x00010be4 lw a3, 0x24(s0)                                                                               |     a3 = *((s0 + 9));
    0x00010be8 addiu a2, zero, 1                                                                             |     a2 = 1;
    0x00010bec move a1, v0                                                                                   |     a1 = v0;
    0x00010bf0 move a0, s2                                                                                   |     a0 = s2;
    0x00010bf4 jalr t9                                                                                       |     t9 ();
    0x00010bf8 lw ra, 0x44(sp)                                                                               |     ra = *(var_44h);
                                                                                                             |     if (v0 != 0) {
    0x00010bfc bnez v0, 0x10ae8                                                                              |         goto label_1;
                                                                                                             |     }
    0x00010c00 addiu s1, zero, -1                                                                            |     s1 = -1;
    0x00010c04 b 0x10ae8                                                                                     |     goto label_1;
                                                                                                             | label_6:
    0x00010c08 subu v0, v1, a2                                                                               |     __asm ("subu v0, v1, a2");
    0x00010c0c sra v0, v0, 2                                                                                 |     v0 >>= 2;
    0x00010c10 subu v0, v0, s2                                                                               |     __asm ("subu v0, v0, s2");
    0x00010c14 sll v0, v0, 2                                                                                 |     v0 <<= 2;
    0x00010c18 sll a0, a0, 2                                                                                 |     a0 <<= 2;
    0x00010c1c move a1, zero                                                                                 |     a1 = 0;
                                                                                                             | label_2:
    0x00010c20 addu a3, a1, a0                                                                               |     a3 = a1 + a0;
                                                                                                             |     if (a1 == v0) {
    0x00010c24 beq a1, v0, 0x10ae0                                                                           |         goto label_0;
                                                                                                             |     }
    0x00010c28 addu a3, v1, a3                                                                               |     a3 = v1 + a3;
    0x00010c2c lw t0, (a3)                                                                                   |     t0 = *(a3);
    0x00010c30 addu a3, a2, a1                                                                               |     a3 = a2 + a1;
    0x00010c34 addiu a1, a1, 4                                                                               |     a1 += 4;
    0x00010c38 sw t0, (a3)                                                                                   |     *(a3) = t0;
    0x00010c3c b 0x10c20                                                                                     |     goto label_2;
                                                                                                             | label_7:
    0x00010c40 move s1, zero                                                                                 |     s1 = 0;
    0x00010c44 b 0x10ae4                                                                                     |     goto label_3;
                                                                                                             | }

[*] Function strcat used 1 times libuClibc++-0.2.4.so