[*] Binary protection state of liblttng-ust-libc-wrapper.so.1.0.0

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


[*] Function printf tear down of liblttng-ust-libc-wrapper.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-libc-wrapper.so.1.0.0 @ 0x1094 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) entry.fini2 ()                       | void entry_fini2 () {
    0x00001094 push {r3, r4, r5, r6, r7, lr}     |     
    0x00001096 ldr r4, [pc, 0x80]                |     
    0x00001098 ldr r3, [pc, 0x80]                |     r3 = *(0x111c);
    0x0000109a add r4, pc                        |     r4 = 0x21b8;
    0x0000109c ldr r5, [r4, r3]                  |     r5 = *(0x21b8);
    0x0000109e ldr r3, [r5]                      |     r3 = *(0x21b8);
    0x000010a0 subs r3, 1                        |     r3--;
    0x000010a2 str r3, [r5]                      |     *(r5) = r3;
                                                 |     if (r3 != 0) {
    0x000010a4 cbnz r3, 0x10f0                   |         goto label_1;
                                                 |     }
    0x000010a6 ldr r3, [pc, 0x78]                |     r3 = *(0x1122);
    0x000010a8 ldr r6, [r4, r3]                  |     r6 = *((r4 + r3));
    0x000010aa ldr r3, [r6]                      |     r3 = *(r6);
                                                 |     if (r3 == 0) {
    0x000010ac cbz r3, 0x10fa                    |         goto label_2;
                                                 |     }
                                                 | label_0:
    0x000010ae ldr r3, [pc, 0x74]                |     r3 = *(0x1126);
    0x000010b0 ldr r7, [r4, r3]                  |     r7 = *((r4 + r3));
    0x000010b2 ldr r3, [r7]                      |     r3 = *(r7);
    0x000010b4 cbz r3, 0x10f2                    |     
                                                 |     while (1) {
    0x000010b6 ldr r3, [r6]                      |         r3 = *(r6);
    0x000010b8 ldr r3, [r3, 0xc]                 |         r3 = *((r3 + 0xc));
                                                 |         if (r3 != 0) {
    0x000010ba cbz r3, 0x10c2                    |             
    0x000010bc ldr r2, [pc, 0x68]                |             r2 = *(0x1128);
    0x000010be ldr r0, [r4, r2]                  |             r0 = *((r4 + r2));
    0x000010c0 blx r3                            |             uint32_t (*r3)(uint32_t, uint32_t) (r0, r2);
                                                 |         }
    0x000010c2 ldr r3, [r6]                      |         r3 = *(r6);
    0x000010c4 ldr r3, [r3, 4]                   |         r3 = *((r3 + 4));
                                                 |         if (r3 != 0) {
    0x000010c6 cbz r3, 0x10f0                    |             
    0x000010c8 ldr r3, [r7]                      |             r3 = *(r7);
    0x000010ca ldr r3, [r3, 8]                   |             r3 = *((r3 + 8));
                                                 |             if (r3 == 0) {
    0x000010cc cbz r3, 0x10f0                    |                 goto label_1;
                                                 |             }
    0x000010ce blx r3                            |             r0 = uint32_t (*r3)(uint32_t) (r0);
                                                 |             if (r0 == 0) {
    0x000010d0 cbz r0, 0x10f0                    |                 goto label_1;
                                                 |             }
    0x000010d2 ldr r3, [r5]                      |             r3 = *(r5);
                                                 |             if (r3 != 0) {
    0x000010d4 cbnz r3, 0x10f0                   |                 goto label_1;
                                                 |             }
    0x000010d6 ldr r3, [r6]                      |             r3 = *(r6);
    0x000010d8 ldr r0, [r3, 4]                   |             r0 = *((r3 + 4));
    0x000010da blx 0xfd0                         |             r0 = dlclose ();
                                                 |             if (r0 != 0) {
    0x000010de cbnz r0, 0x1102                   |                 goto label_3;
                                                 |             }
    0x000010e0 ldr r3, [r6]                      |             r3 = *(r6);
    0x000010e2 str r0, [r3]                      |             *(r3) = r0;
    0x000010e4 str r0, [r3, 4]                   |             *((r3 + 4)) = r0;
    0x000010e6 str r0, [r3, 8]                   |             *((r3 + 8)) = r0;
    0x000010e8 str r0, [r3, 0xc]                 |             *((r3 + 0xc)) = r0;
    0x000010ea str r0, [r3, 0x10]                |             *((r3 + 0x10)) = r0;
    0x000010ec str r0, [r3, 0x14]                |             *((r3 + 0x14)) = r0;
    0x000010ee str r0, [r3, 0x18]                |             *((r3 + 0x18)) = r0;
                                                 |         }
                                                 | label_1:
    0x000010f0 pop {r3, r4, r5, r6, r7, pc}      |         
    0x000010f2 ldr r3, [pc, 0x38]                |         r3 = *(0x112e);
    0x000010f4 ldr r3, [r4, r3]                  |         r3 = *((r4 + r3));
    0x000010f6 str r3, [r7]                      |         *(r7) = r3;
    0x000010f8 b 0x10b6                          |         
                                                 |     }
                                                 | label_2:
    0x000010fa ldr r3, [pc, 0x34]                |     r3 = *(0x1132);
    0x000010fc ldr r3, [r4, r3]                  |     r3 = *((r4 + r3));
    0x000010fe str r3, [r6]                      |     *(r6) = r3;
    0x00001100 b 0x10ae                          |     goto label_0;
                                                 | label_3:
    0x00001102 ldr r5, [pc, 0x30]                |     r5 = *(0x1136);
    0x00001104 mov r3, r0                        |     r3 = r0;
    0x00001106 ldr r2, [pc, 0x30]                |     
    0x00001108 movs r1, 1                        |     r1 = 1;
    0x0000110a ldr r0, [r4, r5]                  |     r0 = *((r4 + r5));
    0x0000110c add r2, pc                        |     r2 = 0x224a;
    0x0000110e ldr r0, [r0]                      |     r0 = *(r0);
    0x00001110 blx 0xfac                         |     fprintf_chk ()
    0x00001114 blx 0xfdc                         |     abort ();
    0x00001118 cmp r6, 0xde                      |     
    0x0000111a movs r1, r0                       |     r1 = r0;
    0x0000111c lsls r0, r6, 1                    |     r0 = r6 << 1;
    0x0000111e movs r0, r0                       |     
    0x00001120 lsls r4, r4, 1                    |     r4 <<= 1;
    0x00001122 movs r0, r0                       |     
    0x00001124 lsls r0, r3, 1                    |     r0 = r3 << 1;
    0x00001126 movs r0, r0                       |     
    0x00001128 lsls r4, r2, 1                    |     r4 = r2 << 1;
    0x0000112a movs r0, r0                       |     
    0x0000112c lsls r4, r5, 1                    |     r4 = r5 << 1;
    0x0000112e movs r0, r0                       |     
    0x00001130 lsls r4, r6, 1                    |     r4 = r6 << 1;
    0x00001132 movs r0, r0                       |     
    0x00001134 lsls r0, r4, 1                    |     r0 = r4 << 1;
    0x00001136 movs r0, r0                       |     
    0x00001138 adds r0, r1, r0                   |     r0 = r1 + r0;
    0x0000113a movs r0, r0                       |     
                                                 | }

[*] Function printf used 2 times liblttng-ust-libc-wrapper.so.1.0.0