[*] Binary protection state of libmbedx509.so.2.2.1

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


[*] Function printf tear down of libmbedx509.so.2.2.1

    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libmbedx509.so.2.2.1 @ 0x4bf4 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.mbedtls_x509_self_test ()        | void mbedtls_x509_self_test (uint32_t arg1) {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_4h;
                                                 |     int32_t var_8h;
                                                 |     int32_t var_14h;
                                                 |     int32_t var_18h;
                                                 |     int32_t var_150h;
                                                 |     int32_t var_28ch;
                                                 |     r0 = arg1;
    0x00004bf4 push {r4, r5, r6, r7, lr}         |     
    0x00004bf8 ldr r4, [pc, 0x1b4]               |     r4 = *(0x4db0);
    0x00004bfc ldr r3, [pc, 0x1b4]               |     r3 = *(0x4db4);
    0x00004c00 add r4, pc, r4                    |     r4 = pc + r4;
    0x00004c04 ldr r3, [r4, r3]                  |     r3 = *(0x4db0);
    0x00004c08 cmp r0, 0                         |     
    0x00004c0c sub sp, sp, 0x28c                 |     
    0x00004c10 ldr r6, [r3]                      |     r6 = *(0x4db0);
                                                 |     if (r0 != 0) {
    0x00004c14 bne 0x4cc8                        |         goto label_1;
                                                 |     }
    0x00004c18 add r5, sp, 0x150                 |     r5 += var_150h;
    0x00004c1c mov r0, r5                        |     r0 = r5;
    0x00004c20 bl 0x3648                         |     fcn_00003648 ();
    0x00004c24 ldr r3, [pc, 0x190]               |     r3 = *(0x4db8);
    0x00004c28 mov r2, r6                        |     r2 = r6;
    0x00004c2c ldr r3, [r4, r3]                  |     r3 = *((r4 + r3));
    0x00004c30 mov r0, r5                        |     r0 = r5;
    0x00004c34 ldr r1, [r3]                      |     r1 = *(0x4db8);
    0x00004c38 bl 0x33cc                         |     fcn_000033cc ();
    0x00004c3c subs r6, r0, 0                    |     r6 -= var_150h;
    0x00004c40 beq 0x4c50                        |     
                                                 |     while (r6 != var_18h) {
                                                 | label_0:
    0x00004c44 mov r0, r6                        |         r0 = r6;
    0x00004c48 add sp, sp, 0x28c                 |         
    0x00004c4c pop {r4, r5, r6, r7, pc}          |         
    0x00004c50 add r7, sp, 0x18                  |         r7 += var_18h;
    0x00004c54 mov r0, r7                        |         r0 = r7;
    0x00004c58 bl 0x3648                         |         fcn_00003648 ();
    0x00004c5c ldr r2, [pc, 0x15c]               |         
    0x00004c60 ldr r3, [pc, 0x15c]               |         r3 = *(0x4dc0);
    0x00004c64 ldr r2, [r4, r2]                  |         r2 = *((r4 + r2));
    0x00004c68 ldr r3, [r4, r3]                  |         r3 = *((r4 + r3));
    0x00004c6c ldr r2, [r2]                      |         r2 = *(0x4dbc);
    0x00004c70 ldr r1, [r3]                      |         r1 = *(0x4dc0);
    0x00004c74 mov r0, r7                        |         r0 = r7;
    0x00004c78 bl 0x33cc                         |         fcn_000033cc ();
    0x00004c7c subs r6, r0, 0                    |         r6 -= var_18h;
    0x00004c80 bne 0x4c44                        |         
                                                 |     }
    0x00004c84 add r3, sp, 0x14                  |     r3 += var_14h;
    0x00004c88 str r6, [sp, 8]                   |     var_8h = r6;
    0x00004c8c str r6, [sp, 4]                   |     var_4h = r6;
    0x00004c90 str r3, [sp]                      |     *(sp) = r3;
    0x00004c94 mov r2, r6                        |     r2 = r6;
    0x00004c98 mov r3, r6                        |     r3 = r6;
    0x00004c9c mov r1, r7                        |     r1 = r7;
    0x00004ca0 mov r0, r5                        |     r0 = r5;
    0x00004ca4 bl 0x3564                         |     fcn_00003564 ();
    0x00004ca8 subs r6, r0, 0                    |     r6 -= var_150h;
                                                 |     if (r6 != var_150h) {
    0x00004cac bne 0x4c44                        |         goto label_0;
                                                 |     }
                                                 |     do {
    0x00004cb0 mov r0, r7                        |         r0 = r7;
    0x00004cb4 bl 0x34bc                         |         fcn_000034bc ();
    0x00004cb8 mov r0, r5                        |         r0 = r5;
    0x00004cbc bl 0x34bc                         |         fcn_000034bc ();
    0x00004cc0 mov r6, 0                         |         r6 = 0;
    0x00004cc4 b 0x4c44                          |         goto label_0;
                                                 | label_1:
    0x00004cc8 ldr r0, [pc, 0xf8]                |         r0 = *(0x4dc4);
    0x00004ccc add r5, sp, 0x150                 |         r5 += var_150h;
    0x00004cd0 add r0, pc, r0                    |         r0 = pc + r0;
    0x00004cd4 bl 0x3210                         |         printf (r0, r1, r2, r3, r4, r5)
    0x00004cd8 mov r0, r5                        |         r0 = r5;
    0x00004cdc bl 0x3648                         |         fcn_00003648 ();
    0x00004ce0 ldr r3, [pc, 0xd4]                |         r3 = *(0x4db8);
    0x00004ce4 mov r2, r6                        |         r2 = r6;
    0x00004ce8 ldr r3, [r4, r3]                  |         r3 = *((r4 + r3));
    0x00004cec mov r0, r5                        |         r0 = r5;
    0x00004cf0 ldr r1, [r3]                      |         r1 = *(0x4db8);
    0x00004cf4 bl 0x33cc                         |         fcn_000033cc ();
    0x00004cf8 subs r6, r0, 0                    |         r6 -= var_150h;
                                                 |         if (r6 != var_150h) {
    0x00004cfc beq 0x4d18                        |             
    0x00004d00 ldr r0, [pc, 0xc4]                |             r0 = *(0x4dc8);
    0x00004d04 add r0, pc, r0                    |             r0 = pc + r0;
    0x00004d08 bl 0x3330                         |             puts (r0);
    0x00004d0c mov r0, r6                        |             r0 = r6;
    0x00004d10 add sp, sp, 0x28c                 |             
    0x00004d14 pop {r4, r5, r6, r7, pc}          |             
                                                 |         }
    0x00004d18 add r7, sp, 0x18                  |         r7 += var_18h;
    0x00004d1c mov r0, r7                        |         r0 = r7;
    0x00004d20 bl 0x3648                         |         fcn_00003648 ();
    0x00004d24 ldr r2, [pc, 0x94]                |         
    0x00004d28 ldr r3, [pc, 0x94]                |         r3 = *(0x4dc0);
    0x00004d2c ldr r2, [r4, r2]                  |         r2 = *((r4 + r2));
    0x00004d30 ldr r3, [r4, r3]                  |         r3 = *((r4 + r3));
    0x00004d34 ldr r2, [r2]                      |         r2 = *(0x4dbc);
    0x00004d38 ldr r1, [r3]                      |         r1 = *(0x4dc0);
    0x00004d3c mov r0, r7                        |         r0 = r7;
    0x00004d40 bl 0x33cc                         |         fcn_000033cc ();
    0x00004d44 subs r6, r0, 0                    |         r6 -= var_18h;
                                                 |         if (r6 != var_18h) {
    0x00004d48 beq 0x4d5c                        |             
    0x00004d4c ldr r0, [pc, 0x7c]                |             r0 = *(0x4dcc);
    0x00004d50 add r0, pc, r0                    |             r0 = pc + r0;
    0x00004d54 bl 0x3330                         |             puts (r0);
    0x00004d58 b 0x4c44                          |             goto label_0;
                                                 |         }
    0x00004d5c ldr r0, [pc, 0x70]                |         r0 = *(0x4dd0);
    0x00004d60 add r0, pc, r0                    |         r0 = pc + r0;
    0x00004d64 bl 0x3210                         |         printf (r0)
    0x00004d68 add r3, sp, 0x14                  |         r3 += var_14h;
    0x00004d6c str r6, [sp, 8]                   |         var_8h = r6;
    0x00004d70 str r6, [sp, 4]                   |         var_4h = r6;
    0x00004d74 str r3, [sp]                      |         *(sp) = r3;
    0x00004d78 mov r2, r6                        |         r2 = r6;
    0x00004d7c mov r3, r6                        |         r3 = r6;
    0x00004d80 mov r1, r7                        |         r1 = r7;
    0x00004d84 mov r0, r5                        |         r0 = r5;
    0x00004d88 bl 0x3564                         |         fcn_00003564 ();
    0x00004d8c subs r6, r0, 0                    |         r6 -= var_150h;
                                                 |         if (r6 != var_150h) {
    0x00004d90 beq 0x4da4                        |             
    0x00004d94 ldr r0, [pc, 0x3c]                |             r0 = *(0x4dd4);
    0x00004d98 add r0, pc, r0                    |             r0 = pc + r0;
    0x00004d9c bl 0x3330                         |             puts (r0);
    0x00004da0 b 0x4c44                          |             goto label_0;
                                                 |         }
    0x00004da4 ldr r0, [pc, 0x30]                |         r0 = *(0x4dd8);
    0x00004da8 add r0, pc, r0                    |         r0 = pc + r0;
    0x00004dac bl 0x3330                         |         puts (r0);
    0x00004db0 b 0x4cb0                          |         
                                                 |     } while (1);
                                                 | }

[*] Function printf used 3 times libmbedx509.so.2.2.1