[*] Binary protection state of libmbedcrypto.so.2.16.0

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


[*] Function sprintf tear down of libmbedcrypto.so.2.16.0

    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/usr/lib/libmbedcrypto.so.2.16.0 @ 0x20ae8 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.mbedtls_md_file ()               | void mbedtls_md_file () {
    0x00020ae8 lui gp, 3                         |     
    0x00020aec addiu gp, gp, 0x1528              |     
    0x00020af0 addu gp, gp, t9                   |     gp += t9;
    0x00020af4 addiu sp, sp, -0x448              |     
    0x00020af8 sw gp, 0x10(sp)                   |     *(var_10h) = gp;
    0x00020afc sw ra, 0x444(sp)                  |     *(var_444h) = ra;
    0x00020b00 sw s5, 0x440(sp)                  |     *(var_440h) = s5;
    0x00020b04 sw s4, 0x43c(sp)                  |     *(var_43ch) = s4;
    0x00020b08 sw s3, 0x438(sp)                  |     *(var_438h) = s3;
    0x00020b0c sw s2, 0x434(sp)                  |     *(var_434h) = s2;
    0x00020b10 sw s1, 0x430(sp)                  |     *(var_430h) = s1;
    0x00020b14 sw s0, 0x42c(sp)                  |     *(var_42ch) = s0;
    0x00020b18 move v0, a1                       |     v0 = a1;
                                                 |     if (a0 == 0) {
    0x00020b1c beqz a0, 0x20c70                  |         goto label_3;
                                                 |     }
    0x00020b20 lw a1, -0x7fd8(gp)                |     a1 = *((gp - 8182));
    0x00020b24 lw t9, -0x7a94(gp)                |     t9 = *((gp - 7845));
    0x00020b28 move s1, a0                       |     s1 = a0;
    0x00020b2c addiu a1, a1, 0x4308              |     a1 += 0x4308;
    0x00020b30 move a0, v0                       |     a0 = v0;
    0x00020b34 move s4, a2                       |     s4 = a2;
    0x00020b38 jalr t9                           |     t9 ();
    0x00020b3c move s3, v0                       |     s3 = v0;
    0x00020b40 lw gp, 0x10(sp)                   |     gp = *(var_10h);
                                                 |     if (v0 == 0) {
    0x00020b44 beqz v0, 0x20c78                  |         goto label_4;
                                                 |     }
    0x00020b48 lw t9, -0x7cec(gp)                |     t9 = *((gp - 7995));
    0x00020b4c addiu s5, sp, 0x418               |     s5 = sp + aav.0x00000418;
    0x00020b50 move a0, s5                       |     a0 = s5;
    0x00020b54 bal 0x20834                       |     sym_mbedtls_md_init ();
    0x00020b58 lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00020b5c move a2, zero                     |     a2 = 0;
    0x00020b60 move a1, s1                       |     a1 = s1;
    0x00020b64 lw t9, -0x7d00(gp)                |     t9 = *((gp - 8000));
    0x00020b68 move a0, s5                       |     a0 = s5;
    0x00020b6c bal 0x20974                       |     sym_mbedtls_md_setup ();
    0x00020b70 move s0, v0                       |     s0 = v0;
    0x00020b74 lw gp, 0x10(sp)                   |     gp = *(var_10h);
                                                 |     if (v0 != 0) {
    0x00020b78 bnez v0, 0x20c60                  |         goto label_5;
                                                 |     }
    0x00020b7c lw t9, 0x10(s1)                   |     t9 = *((s1 + 4));
    0x00020b80 lw a0, 0x41c(sp)                  |     a0 = *(var_41ch);
    0x00020b84 addiu s2, sp, 0x18                |     s2 = sp + 0x18;
    0x00020b88 jalr t9                           |     t9 ();
    0x00020b8c move s0, v0                       |     s0 = v0;
    0x00020b90 lw gp, 0x10(sp)                   |     gp = *(var_10h);
                                                 |     if (v0 == 0) {
    0x00020b94 beqz v0, 0x20c08                  |         goto label_6;
                                                 |     }
                                                 |     do {
                                                 | label_1:
    0x00020b98 lw t9, -0x7fd4(gp)                |         t9 = *((gp - 8181));
    0x00020b9c addiu a1, zero, 0x400             |         a1 = 0x400;
    0x00020ba0 move a0, s2                       |         a0 = s2;
    0x00020ba4 bal 0x29110                       |         sym_mbedtls_platform_zeroize ();
    0x00020ba8 lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x00020bac lw t9, -0x7b18(gp)                |         t9 = *((gp - 7878));
    0x00020bb0 move a0, s3                       |         a0 = s3;
    0x00020bb4 jalr t9                           |         t9 ();
    0x00020bb8 lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x00020bbc lw t9, -0x7cf4(gp)                |         t9 = *((gp - 7997));
    0x00020bc0 move a0, s5                       |         a0 = s5;
    0x00020bc4 bal 0x20868                       |         sym_mbedtls_md_free ();
                                                 | label_2:
    0x00020bc8 lw ra, 0x444(sp)                  |         ra = *(var_444h);
    0x00020bcc move v0, s0                       |         v0 = s0;
    0x00020bd0 lw s5, 0x440(sp)                  |         s5 = *(var_440h);
    0x00020bd4 lw s4, 0x43c(sp)                  |         s4 = *(var_43ch);
    0x00020bd8 lw s3, 0x438(sp)                  |         s3 = *(var_438h);
    0x00020bdc lw s2, 0x434(sp)                  |         s2 = *(var_434h);
    0x00020be0 lw s1, 0x430(sp)                  |         s1 = *(var_430h);
    0x00020be4 lw s0, 0x42c(sp)                  |         s0 = *(var_42ch);
    0x00020be8 addiu sp, sp, 0x448               |         
    0x00020bec jr ra                             |         return v0;
                                                 | label_0:
    0x00020bf0 lw t9, 0x14(s1)                   |         t9 = *((s1 + 5));
    0x00020bf4 lw a0, 0x41c(sp)                  |         a0 = *(var_41ch);
    0x00020bf8 jalr t9                           |         t9 ();
    0x00020bfc move s0, v0                       |         s0 = v0;
    0x00020c00 lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x00020c04 bnez v0, 0x20b98                  |         
                                                 |     } while (v0 != 0);
                                                 | label_6:
    0x00020c08 lw t9, -0x7ad4(gp)                |     t9 = *((gp - 7861));
    0x00020c0c addiu a2, zero, 0x400             |     a2 = 0x400;
    0x00020c10 addiu a1, zero, 1                 |     a1 = 1;
    0x00020c14 move a0, s2                       |     a0 = s2;
    0x00020c18 move a3, s3                       |     a3 = s3;
    0x00020c1c jalr t9                           |     t9 ();
    0x00020c20 move a2, v0                       |     a2 = v0;
    0x00020c24 lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00020c28 move a1, s2                       |     a1 = s2;
                                                 |     if (v0 != 0) {
    0x00020c2c bnez v0, 0x20bf0                  |         goto label_0;
                                                 |     }
    0x00020c30 lw t9, -0x7aa4(gp)                |     t9 = *((gp - 7849));
    0x00020c34 move a0, s3                       |     a0 = s3;
    0x00020c38 jalr t9                           |     t9 ();
    0x00020c3c lw gp, 0x10(sp)                   |     gp = *(var_10h);
                                                 |     if (v0 == 0) {
    0x00020c40 bnez v0, 0x20c68                  |         
    0x00020c44 lw t9, 0x18(s1)                   |         t9 = *((s1 + 6));
    0x00020c48 lw a0, 0x41c(sp)                  |         a0 = *(var_41ch);
    0x00020c4c move a1, s4                       |         a1 = s4;
    0x00020c50 jalr t9                           |         t9 ();
    0x00020c54 move s0, v0                       |         s0 = v0;
    0x00020c58 lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x00020c5c b 0x20b98                         |         goto label_1;
                                                 | label_5:
    0x00020c60 addiu s2, sp, 0x18                |         s2 = sp + 0x18;
    0x00020c64 b 0x20b98                         |         goto label_1;
                                                 |     }
    0x00020c68 addiu s0, zero, -0x5200           |     s0 = -0x5200;
    0x00020c6c b 0x20b98                         |     goto label_1;
                                                 | label_3:
    0x00020c70 addiu s0, zero, -0x5100           |     s0 = -0x5100;
    0x00020c74 b 0x20bc8                         |     goto label_2;
                                                 | label_4:
    0x00020c78 addiu s0, zero, -0x5200           |     s0 = -0x5200;
    0x00020c7c b 0x20bc8                         |     goto label_2;
                                                 | }

[*] Function sprintf used 1 times libmbedcrypto.so.2.16.0