[*] Binary protection state of liblttng-ust-cyg-profile.so.1.0.0

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


[*] Function printf tear down of liblttng-ust-cyg-profile.so.1.0.0

    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/liblttng-ust-cyg-profile.so.1.0.0 @ 0xab0 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) entry.fini2 ()                           | void entry_fini2 () {
    0x00000ab0 push {r3, r4, r5, r6, r7, lr}         |     
    0x00000ab2 ldr r4, [pc, 0x80]                    |     
    0x00000ab4 ldr r3, [pc, 0x80]                    |     r3 = *(0xb38);
    0x00000ab6 add r4, pc                            |     r4 = 0x15f0;
    0x00000ab8 ldr r5, [r4, r3]                      |     r5 = *(0x15f0);
    0x00000aba ldr r3, [r5]                          |     r3 = *(0x15f0);
    0x00000abc subs r3, 1                            |     r3--;
    0x00000abe str r3, [r5]                          |     *(r5) = r3;
                                                     |     if (r3 != 0) {
    0x00000ac0 cbnz r3, 0xb0c                        |         goto label_1;
                                                     |     }
    0x00000ac2 ldr r3, [pc, 0x78]                    |     r3 = *(0xb3e);
    0x00000ac4 ldr r6, [r4, r3]                      |     r6 = *((r4 + r3));
    0x00000ac6 ldr r3, [r6]                          |     r3 = *(r6);
                                                     |     if (r3 == 0) {
    0x00000ac8 cbz r3, 0xb16                         |         goto label_2;
                                                     |     }
                                                     | label_0:
    0x00000aca ldr r3, [pc, 0x74]                    |     r3 = *(0xb42);
    0x00000acc ldr r7, [r4, r3]                      |     r7 = *((r4 + r3));
    0x00000ace ldr r3, [r7]                          |     r3 = *(r7);
    0x00000ad0 cbz r3, 0xb0e                         |     
                                                     |     while (1) {
    0x00000ad2 ldr r3, [r6]                          |         r3 = *(r6);
    0x00000ad4 ldr r3, [r3, 0xc]                     |         r3 = *((r3 + 0xc));
                                                     |         if (r3 != 0) {
    0x00000ad6 cbz r3, 0xade                         |             
    0x00000ad8 ldr r2, [pc, 0x68]                    |             r2 = *(0xb44);
    0x00000ada ldr r0, [r4, r2]                      |             r0 = *((r4 + r2));
    0x00000adc blx r3                                |             uint32_t (*r3)(uint32_t, uint32_t) (r0, r2);
                                                     |         }
    0x00000ade ldr r3, [r6]                          |         r3 = *(r6);
    0x00000ae0 ldr r3, [r3, 4]                       |         r3 = *((r3 + 4));
                                                     |         if (r3 != 0) {
    0x00000ae2 cbz r3, 0xb0c                         |             
    0x00000ae4 ldr r3, [r7]                          |             r3 = *(r7);
    0x00000ae6 ldr r3, [r3, 8]                       |             r3 = *((r3 + 8));
                                                     |             if (r3 == 0) {
    0x00000ae8 cbz r3, 0xb0c                         |                 goto label_1;
                                                     |             }
    0x00000aea blx r3                                |             r0 = uint32_t (*r3)(uint32_t) (r0);
                                                     |             if (r0 == 0) {
    0x00000aec cbz r0, 0xb0c                         |                 goto label_1;
                                                     |             }
    0x00000aee ldr r3, [r5]                          |             r3 = *(r5);
                                                     |             if (r3 != 0) {
    0x00000af0 cbnz r3, 0xb0c                        |                 goto label_1;
                                                     |             }
    0x00000af2 ldr r3, [r6]                          |             r3 = *(r6);
    0x00000af4 ldr r0, [r3, 4]                       |             r0 = *((r3 + 4));
    0x00000af6 blx 0x9ec                             |             r0 = dlclose ();
                                                     |             if (r0 != 0) {
    0x00000afa cbnz r0, 0xb1e                        |                 goto label_3;
                                                     |             }
    0x00000afc ldr r3, [r6]                          |             r3 = *(r6);
    0x00000afe str r0, [r3]                          |             *(r3) = r0;
    0x00000b00 str r0, [r3, 4]                       |             *((r3 + 4)) = r0;
    0x00000b02 str r0, [r3, 8]                       |             *((r3 + 8)) = r0;
    0x00000b04 str r0, [r3, 0xc]                     |             *((r3 + 0xc)) = r0;
    0x00000b06 str r0, [r3, 0x10]                    |             *((r3 + 0x10)) = r0;
    0x00000b08 str r0, [r3, 0x14]                    |             *((r3 + 0x14)) = r0;
    0x00000b0a str r0, [r3, 0x18]                    |             *((r3 + 0x18)) = r0;
                                                     |         }
                                                     | label_1:
    0x00000b0c pop {r3, r4, r5, r6, r7, pc}          |         
    0x00000b0e ldr r3, [pc, 0x38]                    |         r3 = *(0xb4a);
    0x00000b10 ldr r3, [r4, r3]                      |         r3 = *((r4 + r3));
    0x00000b12 str r3, [r7]                          |         *(r7) = r3;
    0x00000b14 b 0xad2                               |         
                                                     |     }
                                                     | label_2:
    0x00000b16 ldr r3, [pc, 0x34]                    |     r3 = *(0xb4e);
    0x00000b18 ldr r3, [r4, r3]                      |     r3 = *((r4 + r3));
    0x00000b1a str r3, [r6]                          |     *(r6) = r3;
    0x00000b1c b 0xaca                               |     goto label_0;
                                                     | label_3:
    0x00000b1e ldr r5, [pc, 0x30]                    |     r5 = *(0xb52);
    0x00000b20 mov r3, r0                            |     r3 = r0;
    0x00000b22 ldr r2, [pc, 0x30]                    |     
    0x00000b24 movs r1, 1                            |     r1 = 1;
    0x00000b26 ldr r0, [r4, r5]                      |     r0 = *((r4 + r5));
    0x00000b28 add r2, pc                            |     r2 = 0x1682;
    0x00000b2a ldr r0, [r0]                          |     r0 = *(r0);
    0x00000b2c blx 0x9bc                             |     fprintf_chk ()
    0x00000b30 blx 0x9f8                             |     abort ();
    0x00000b34 asrs r2, r7, 0x12                     |     r2 = r7 >> 0x12;
    0x00000b36 movs r1, r0                           |     r1 = r0;
    0x00000b38 lsls r0, r5, 1                        |     r0 = r5 << 1;
    0x00000b3a movs r0, r0                           |     
    0x00000b3c lsls r4, r3, 1                        |     r4 = r3 << 1;
    0x00000b3e movs r0, r0                           |     
    0x00000b40 lsls r0, r2, 1                        |     r0 = r2 << 1;
    0x00000b42 movs r0, r0                           |     
    0x00000b44 lsls r4, r1, 1                        |     r4 = r1 << 1;
    0x00000b46 movs r0, r0                           |     
    0x00000b48 lsls r4, r4, 1                        |     r4 <<= 1;
    0x00000b4a movs r0, r0                           |     
    0x00000b4c lsls r4, r5, 1                        |     r4 = r5 << 1;
    0x00000b4e movs r0, r0                           |     
    0x00000b50 lsls r0, r3, 1                        |     r0 = r3 << 1;
    0x00000b52 movs r0, r0                           |     
    0x00000b54 lsls r4, r3, 0x19                     |     r4 = r3 << 0x19;
    0x00000b56 movs r0, r0                           |     
                                                     | }

[*] Function printf used 2 times liblttng-ust-cyg-profile.so.1.0.0