[*] Binary protection state of libbootblock.so.2.4

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


[*] Function system tear down of libbootblock.so.2.4

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libbootblock.so.2.4 @ 0x1438 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.bootblock_clear ()       | void bootblock_clear () {
                                         |     int32_t var_0h;
                                         |     int32_t var_0h_2;
                                         |     int16_t var_8h;
                                         |     int16_t var_ch;
                                         |     int16_t var_10h;
                                         |     int16_t var_14h;
                                         |     int16_t var_18h;
                                         |     int16_t var_20h;
                                         |     int16_t var_24h;
    0x00001438 blmi 0xa53ce0             |     __asm ("blmi 0xa53ce0");
    0x0000143c push {r4, r5, lr}         |     
    0x0000143e sub sp, 0x2c              |     
    0x00001440 add r2, pc                |     r2 += pc;
    0x00001442 add r0, sp, 0x10          |     r0 += var_10h;
    0x00001444 ldr r3, [r2, r3]          |     r3 = *((r2 + r3));
    0x00001446 ldr r3, [r3]              |     r3 = *(r3);
    0x00001448 str r3, [sp, 0x24]        |     var_24h = r3;
    0x0000144a mov.w r3, 0               |     r3 = 0;
    0x0000144e blx 0xb68                 |     r0 = sd_bus_open_system ()
    0x00001452 cmp r0, 0                 |     
                                         |     if (r0 < 0) {
    0x00001454 blt 0x14cc                |         goto label_1;
                                         |     }
    0x00001456 ldr r2, [pc, 0x8c]        |     
    0x00001458 add r5, sp, 0x18          |     r5 += var_18h;
    0x0000145a ldr r3, [pc, 0x8c]        |     
    0x0000145c movs r4, 0                |     r4 = 0;
    0x0000145e ldr r0, [pc, 0x8c]        |     
    0x00001460 add r2, pc                |     r2 = 0x294a;
    0x00001462 vmov.i32 d16, 0           |     __asm ("vmov.i32 d16, 0");
    0x00001466 str r2, [sp, 0xc]         |     var_ch = r2;
    0x00001468 add r2, sp, 0x14          |     r2 += var_14h;
    0x0000146a str r2, [sp, 8]           |     var_8h = r2;
    0x0000146c add r3, pc                |     r3 = 0x295a;
    0x0000146e ldr r2, [pc, 0x80]        |     
    0x00001470 add r0, pc                |     r0 = 0x2962;
    0x00001472 strd r0, r5, [sp]         |     __asm ("strd r0, r5, [sp]");
    0x00001476 mov r1, r3                |     r1 = r3;
    0x00001478 ldr r0, [sp, 0x10]        |     r0 = var_10h;
    0x0000147a add r2, pc                |     r2 = 0x2970;
    0x0000147c vstr d16, [sp, 0x18]      |     __asm ("vstr d16, [sp, 0x18]");
    0x00001480 str r4, [sp, 0x20]        |     var_20h = r4;
    0x00001482 str r4, [sp, 0x14]        |     var_14h = r4;
    0x00001484 blx 0xbe4                 |     r0 = fcn_00000be4 ();
    0x00001488 cmp r0, r4                |     
                                         |     if (r0 >= r4) {
    0x0000148a bge 0x14c4                |         goto label_2;
                                         |     }
    0x0000148c ldr r1, [pc, 0x64]        |     
    0x0000148e ldr r0, [sp, 0x18]        |     r0 = var_18h;
    0x00001490 add r1, pc                |     r1 = 0x2988;
    0x00001492 blx 0xc2c                 |     r0 = fcn_00000c2c ();
    0x00001496 cmp r0, r4                |     
    0x00001498 ite ne                    |     
                                         |     if (r0 == r4) {
    0x0000149a movne r4, 0x46            |         r4 = 0x46;
                                         |     }
    0x0000149c moveq r4, 5               |     r4 = 5;
                                         |     while (1) {
    0x0000149e ldr r0, [sp, 0x10]        |         r0 = var_10h;
    0x000014a0 blx 0xb84                 |         fcn_00000b84 ();
    0x000014a4 blx 0xc44                 |         r0 = fcn_00000c44 ();
    0x000014a8 str r4, [r0]              |         *(r0) = r4;
                                         | label_0:
    0x000014aa ldr r2, [pc, 0x4c]        |         
    0x000014ac ldr r3, [pc, 0x30]        |         r3 = *(0x14e0);
    0x000014ae add r2, pc                |         r2 = 0x29ac;
    0x000014b0 ldr r3, [r2, r3]          |         r3 = *(0x29ac);
    0x000014b2 ldr r2, [r3]              |         r2 = *(0x29ac);
    0x000014b4 ldr r3, [sp, 0x24]        |         r3 = var_24h;
    0x000014b6 eors r2, r3               |         r2 ^= r3;
    0x000014b8 mov.w r3, 0               |         r3 = 0;
                                         |         if (r2 != r3) {
    0x000014bc bne 0x14d8                |             goto label_3;
                                         |         }
    0x000014be mov r0, r4                |         r0 = r4;
    0x000014c0 add sp, 0x2c              |         
    0x000014c2 pop {r4, r5, pc}          |         
                                         | label_2:
    0x000014c4 ldr r0, [sp, 0x14]        |         r0 = var_14h;
    0x000014c6 blx 0xb38                 |         sd_bus_message_unref ();
    0x000014ca b 0x149e                  |         
                                         |     }
                                         | label_1:
    0x000014cc blx 0xc44                 |     fcn_00000c44 ();
    0x000014d0 movs r3, 0x46             |     r3 = 0x46;
    0x000014d2 mov r4, r3                |     r4 = r3;
    0x000014d4 str r3, [r0]              |     *(r0) = r3;
    0x000014d6 b 0x14aa                  |     goto label_0;
                                         | label_3:
    0x000014d8 blx 0xbd8                 |     fcn_00000bd8 ();
    0x000014dc subs r0, r1, r4           |     r0 = r1 - r4;
    0x000014de movs r0, r0               |     
    0x000014e0 lsls r4, r5, 2            |     r4 = r5 << 2;
    0x000014e2 movs r0, r0               |     
    0x000014e4 lsls r4, r6, 6            |     r4 = r6 << 6;
    0x000014e6 movs r0, r0               |     
    0x000014e8 lsls r0, r7, 7            |     r0 = r7 << 7;
    0x000014ea movs r0, r0               |     
    0x000014ec lsls r0, r6, 0xb          |     r0 = r6 << 0xb;
    0x000014ee movs r0, r0               |     
    0x000014f0 lsls r2, r1, 7            |     r2 = r1 << 7;
    0x000014f2 movs r0, r0               |     
    0x000014f4 lsls r0, r7, 9            |     r0 = r7 << 9;
    0x000014f6 movs r0, r0               |     
    0x000014f8 subs r2, r3, r2           |     r2 = r3 - r2;
    0x000014fa movs r0, r0               |     
                                         |     /* [12] -r-x section size 8 named .fini */
    0x000014fc ands r0, r1               |     r0 &= r1;
    0x000014fe invalid                   |     
                                         | }

[*] Function system used 2 times libbootblock.so.2.4