[*] Binary protection state of libssl.so.1.1

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


[*] Function sprintf tear down of libssl.so.1.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/libssl.so.1.1 @ 0x26590 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00026590 ()                                  | void fcn_00026590 (int32_t arg_38h, int32_t arg_3ch, int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_14h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00026590 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00026594 ldr fp, [pc, 0x144]                           |     fp = *(0x266dc);
    0x00026598 sub sp, sp, 0x14                              |     
    0x0002659c mov r8, r3                                    |     r8 = r3;
    0x000265a0 mov sb, r1                                    |     sb = r1;
    0x000265a4 mov r6, r2                                    |     r6 = r2;
    0x000265a8 mov r7, r0                                    |     r7 = r0;
    0x000265ac bl 0x111a0                                    |     strlen (r0);
    0x000265b0 ldr r3, [sp, 0x3c]                            |     r3 = *(arg_3ch);
    0x000265b4 add fp, pc, fp                                |     
    0x000265b8 add r5, r8, r3                                |     r5 = r8 + r3;
    0x000265bc ldr r2, [pc, 0x120]                           |     r2 = *(0x266e0);
    0x000265c0 mov r1, fp                                    |     r1 = fp;
    0x000265c4 add r5, r0, r5, lsl 1                         |     r5 = r0 + (r5 << 1);
    0x000265c8 add r5, r5, 3                                 |     r5 += 3;
    0x000265cc mov sl, r0                                    |     sl = r0;
    0x000265d0 mov r0, r5                                    |     r0 = r5;
    0x000265d4 bl 0x111dc                                    |     r0 = CRYPTO_malloc ();
    0x000265d8 subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 == r0) {
    0x000265dc bne 0x2660c                                   |         
    0x000265e0 ldr r3, [pc, 0x100]                           |         r3 = *(0x266e4);
    0x000265e4 mov r0, sb                                    |         r0 = sb;
    0x000265e8 str r3, [sp, 4]                               |         var_4h = r3;
    0x000265ec str fp, [sp]                                  |         *(sp) = fp;
    0x000265f0 mov r3, 0x41                                  |         r3 = 0x41;
    0x000265f4 mov r2, 0x1f4                                 |         r2 = 0x1f4;
    0x000265f8 mov r1, 0x50                                  |         r1 = 0x50;
    0x000265fc bl 0x3bd84                                    |         fcn_0003bd84 (r0, r1, r2, r3);
    0x00026600 mov r0, r4                                    |         r0 = r4;
                                                             | label_0:
    0x00026604 add sp, sp, 0x14                              |         
    0x00026608 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             |     }
    0x0002660c mov r1, r7                                    |     r1 = r7;
    0x00026610 bl 0x11fd4                                    |     strcpy (r0, r1);
    0x00026614 mov r3, 0x20                                  |     r3 = 0x20;
    0x00026618 strb r3, [r4, sl]                             |     *((r4 + sl)) = r3;
    0x0002661c ldr r3, [pc, 0xc8]                            |     r3 = *(0x266e8);
    0x00026620 add r7, r4, sl                                |     r7 = r4 + sl;
    0x00026624 add r7, r7, 1                                 |     r7++;
    0x00026628 add fp, r6, r8                                |     
    0x0002662c mov sl, r7                                    |     sl = r7;
    0x00026630 add r3, pc, r3                                |     r3 = pc + r3;
                                                             |     do {
    0x00026634 ldrb r2, [r6], 1                              |         r2 = *(r6);
                                                             |         r6++;
    0x00026638 mov r1, r3                                    |         r1 = r3;
    0x0002663c mov r0, sl                                    |         r0 = sl;
    0x00026640 str r3, [sp, 0xc]                             |         var_ch = r3;
    0x00026644 bl 0x11b00                                    |         sprintf (r0, r1, r2)
    0x00026648 cmp r6, fp                                    |         
    0x0002664c add sl, sl, 2                                 |         sl += 2;
    0x00026650 ldr r3, [sp, 0xc]                             |         r3 = var_ch;
    0x00026654 bne 0x26634                                   |         
                                                             |     } while (r6 != fp);
    0x00026658 mov r3, 0x20                                  |     r3 = 0x20;
    0x0002665c add r6, r7, r8, lsl 1                         |     r6 = r7 + (r8 << 1);
    0x00026660 strb r3, [r7, r8, lsl 1]                      |     offset_0 = r8 << 1;
                                                             |     *((r7 + offset_0)) = r3;
    0x00026664 ldr fp, [pc, 0x84]                            |     fp = *(0x000266f0);
    0x00026668 ldr r7, [sp, 0x38]                            |     r7 = *(arg_38h);
    0x0002666c ldr r3, [sp, 0x3c]                            |     r3 = *(arg_3ch);
    0x00026670 add r6, r6, 1                                 |     r6++;
    0x00026674 add sl, r7, r3                                |     sl = r7 + r3;
    0x00026678 mov r8, r6                                    |     r8 = r6;
    0x0002667c add fp, pc, fp                                |     
                                                             |     do {
    0x00026680 cmp r7, sl                                    |         
                                                             |         if (r7 == sl) {
    0x00026684 bne 0x266c8                                   |             
    0x00026688 ldr r2, [sp, 0x3c]                            |             r2 = *(arg_3ch);
    0x0002668c mov r3, 0                                     |             r3 = 0;
    0x00026690 strb r3, [r6, r2, lsl 1]                      |             offset_1 = r2 << 1;
                                                             |             *((r6 + offset_1)) = r3;
    0x00026694 ldr r3, [sb, 0x4cc]                           |             r3 = *((sb + 0x4cc));
    0x00026698 mov r1, r4                                    |             r1 = r4;
    0x0002669c ldr r3, [r3, 0x21c]                           |             r3 = *((r3 + 0x21c));
    0x000266a0 mov r0, sb                                    |             r0 = sb;
    0x000266a4 blx r3                                        |             uint32_t (*r3)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
    0x000266a8 ldr r2, [pc, 0x44]                            |             r2 = *(0x266f0);
    0x000266ac mov r0, r4                                    |             r0 = r4;
    0x000266b0 ldr r3, [pc, 0x40]                            |             r3 = *(0x266f4);
    0x000266b4 add r2, pc, r2                                |             r2 = pc + r2;
    0x000266b8 mov r1, r5                                    |             r1 = r5;
    0x000266bc bl 0x12040                                    |             CRYPTO_clear_free ();
    0x000266c0 mov r0, 1                                     |             r0 = 1;
    0x000266c4 b 0x26604                                     |             goto label_0;
                                                             |         }
    0x000266c8 mov r0, r8                                    |         r0 = r8;
    0x000266cc ldrb r2, [r7], 1                              |         r2 = *(r7);
                                                             |         r7++;
    0x000266d0 mov r1, fp                                    |         r1 = fp;
    0x000266d4 bl 0x11b00                                    |         sprintf (r0, r1, r2)
    0x000266d8 add r8, r8, 2                                 |         r8 += 2;
    0x000266dc b 0x26680                                     |         
                                                             |     } while (1);
                                                             | }

[*] Function sprintf used 3 times libssl.so.1.1