[*] Binary protection state of liblttng-ust-ctl.so.5.0.0

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


[*] Function printf tear down of liblttng-ust-ctl.so.5.0.0

    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/liblttng-ust-ctl.so.5.0.0 @ 0x3828 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) entry.init1 ()                                   | void entry_init1 (int16_t arg_0h) {
                                                             |     int16_t var_0h;
                                                             |     int16_t var_4h;
                                                             |     int16_t var_8h;
                                                             |     int32_t var_8h_2;
                                                             |     int16_t var_14h;
                                                             |     int16_t var_18h;
                                                             |     int16_t var_24h;
                                                             |     int16_t var_28h;
                                                             |     int16_t var_30h;
                                                             |     int16_t var_34h;
                                                             |     int16_t var_38h;
                                                             |     int16_t var_3ch;
                                                             |     struct sockaddr* address;
                                                             |     int16_t var_15ch;
                                                             |     int8_t var_1ffh;
                                                             |     int16_t var_35ch;
                                                             |     int16_t var_360h;
    0x00003828 push {r3, lr}                                 |     
    0x0000382a blx 0x33d0                                    |     fcn_000033d0 ();
    0x0000382e bl 0xfab4                                     |     fcn_0000fab4 ();
    0x00003832 bl 0x1b704                                    |     fcn_0001b704 ();
    0x00003836 pop.w {r3, lr}                                |     
    0x0000383a b.w 0xe780                                    |     goto label_8;
                                                             |     do {
    0x0000e29e ldr.w r2, [pc, 0x4cc]                         |         
    0x0000e2a2 ldr.w r3, [pc, 0x4c4]                         |         r3 = *(0xe76a);
    0x0000e2a6 add r2, pc                                    |         r2 = 0x1ca18;
    0x0000e2a8 ldr r3, [r2, r3]                              |         r3 = *(0x1ca18);
    0x0000e2aa ldr r2, [r3]                                  |         r2 = *(0x1ca18);
    0x0000e2ac ldr r3, [sp, 0x3c]                            |         r3 = var_3ch;
    0x0000e2ae eors r2, r3                                   |         r2 ^= r3;
    0x0000e2b0 mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x0000e2b4 bne.w 0xe750                                  |             goto label_9;
                                                             |         }
    0x0000e2b8 mov r0, r8                                    |         r0 = r8;
    0x0000e2ba add sp, 0x44                                  |         
    0x0000e2bc pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}    |         
                                                             | label_0:
    0x0000e494 lsls r0, r3, 0x1e                             |         r0 = r3 << 0x1e;
                                                             |         if (r0 < r3) {
    0x0000e496 bmi.w 0xe62e                                  |             goto label_10;
                                                             |         }
                                                             | label_1:
    0x0000e49a ldr r3, [sp, 0x34]                            |         r3 = var_34h;
    0x0000e49c ldr r2, [sp, 0x24]                            |         r2 = var_24h;
    0x0000e49e str r3, [r6, 0xc]                             |         *((r6 + 0xc)) = r3;
    0x0000e4a0 ldr r3, [sp, 0x30]                            |         r3 = var_30h;
    0x0000e4a2 str r2, [r6, 0x14]                            |         *((r6 + 0x14)) = r2;
    0x0000e4a4 add r3, r2                                    |         r3 += r2;
    0x0000e4a6 str r3, [r6, 0x10]                            |         *((r6 + 0x10)) = r3;
    0x0000e4a8 b 0xe29e                                      |         
                                                             |     } while (1);
                                                             | label_7:
    0x0000e568 ldr.w ip, [r2, 0x1c]                          |     ip = *((r2 + 0x1c));
    0x0000e56c adds.w r3, ip, sl                             |     r3 = ip + sl;
    0x0000e570 strd r3, ip, [sp, 0x14]                       |     __asm ("strd r3, ip, [var_14h]");
                                                             |     if (r3 == ip) {
    0x0000e574 beq 0xe612                                    |         goto label_11;
                                                             |     }
    0x0000e576 ldr.w r2, [r4, 0xac]                          |     r2 = *((r4 + 0xac));
    0x0000e57a blx r2                                        |     uint32_t (*r2)(uint32_t) (r2);
    0x0000e57c ldr.w r2, [r4, 0x84]                          |     r2 = *((r4 + 0x84));
    0x0000e580 ldr.w ip, [sp, 0x18]                          |     ip = var_18h;
    0x0000e584 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x0000e586 beq.w 0xe760                                  |         goto label_12;
                                                             |     }
    0x0000e58a ldr r3, [sp, 0x14]                            |     r3 = var_14h;
    0x0000e58c dmb ish                                       |     __asm ("dmb ish");
                                                             |     do {
    0x0000e590 ldrex r2, [r3]                                |         __asm ("ldrex r2, [r3]");
    0x0000e594 add r2, r0                                    |         r2 += r0;
    0x0000e596 strex r1, r2, [r3]                            |         __asm ("strex r1, r2, [r3]");
    0x0000e59a cmp r1, 0                                     |         
    0x0000e59c bne 0xe590                                    |         
                                                             |     } while (r1 != 0);
    0x0000e59e dmb ish                                       |     __asm ("dmb ish");
    0x0000e5a2 ldr.w r2, [r4, 0x84]                          |     r2 = *((r4 + 0x84));
    0x0000e5a6 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x0000e5a8 beq.w 0xe75c                                  |         goto label_13;
                                                             |     }
    0x0000e5ac ldr r3, [r4, 0x50]                            |     r3 = *((r4 + 0x50));
    0x0000e5ae ldr r1, [r4, 0x5c]                            |     r1 = *((r4 + 0x5c));
    0x0000e5b0 ldr.w sl, [ip, sl]                            |     sl = *((ip + sl));
    0x0000e5b4 rsbs r2, r3, 0                                |     r2 = r3 - ;
    0x0000e5b6 ldr r3, [sp, 0x24]                            |     r3 = var_24h;
    0x0000e5b8 ldr r0, [r4, 4]                               |     r0 = *((r4 + 4));
    0x0000e5ba ands r2, r3                                   |     r2 &= r3;
    0x0000e5bc lsrs r2, r1                                   |     r2 >>= r1;
    0x0000e5be ldr r1, [r4, 0x54]                            |     r1 = *((r4 + 0x54));
    0x0000e5c0 sub.w r1, sl, r1                              |     r1 = sl - r1;
    0x0000e5c4 ands r1, r0                                   |     r1 &= r0;
    0x0000e5c6 cmp r2, r1                                    |     
                                                             |     if (r2 == r1) {
    0x0000e5c8 beq.w 0xe734                                  |         goto label_14;
                                                             |     }
                                                             | label_3:
    0x0000e5cc ldr.w r2, [r4, 0xac]                          |     r2 = *((r4 + 0xac));
    0x0000e5d0 str r3, [sp, 0x18]                            |     var_18h = r3;
    0x0000e5d2 blx r2                                        |     uint32_t (*r2)(uint32_t, uint32_t) (r2, r3);
    0x0000e5d4 ldr.w r2, [r4, 0x94]                          |     r2 = *((r4 + 0x94));
    0x0000e5d8 ldr r3, [sp, 0x18]                            |     r3 = var_18h;
    0x0000e5da cmp r2, 1                                     |     
                                                             |     if (r2 == 1) {
    0x0000e5dc bne 0xe612                                    |         
    0x0000e5de add r0, r3                                    |         r0 += r3;
    0x0000e5e0 ldr r3, [r4, 0x54]                            |         r3 = *((r4 + 0x54));
    0x0000e5e2 sub.w r0, r0, sl                              |         r0 -= sl;
    0x0000e5e6 subs r3, 1                                    |         r3--;
    0x0000e5e8 tst r0, r3                                    |         
                                                             |         if ((r0 & r3) != 0) {
    0x0000e5ea bne 0xe612                                    |             goto label_11;
                                                             |         }
    0x0000e5ec ldr.w r3, [r4, 0x84]                          |         r3 = *((r4 + 0x84));
    0x0000e5f0 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x0000e5f2 beq.w 0xe75c                                  |             goto label_13;
                                                             |         }
    0x0000e5f6 ldr r3, [sp, 0x14]                            |         r3 = var_14h;
    0x0000e5f8 ldr r3, [r3, 4]                               |         r3 = *((r3 + 4));
    0x0000e5fa sub.w r3, r3, sl                              |         r3 -= sl;
    0x0000e5fe cmp r3, 0                                     |         
                                                             |         if (r3 >= 0) {
    0x0000e600 bge 0xe612                                    |             goto label_11;
                                                             |         }
    0x0000e602 ldr.w r3, [r4, 0x84]                          |         r3 = *((r4 + 0x84));
    0x0000e606 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x0000e608 beq.w 0xe758                                  |             goto label_15;
                                                             |         }
    0x0000e60c ldr r3, [sp, 0x14]                            |         r3 = var_14h;
    0x0000e60e str.w sl, [r3, 4]                             |         __asm ("str.w sl, [r3, 4]");
                                                             |     }
                                                             | label_11:
    0x0000e612 ldrb.w r3, [sp, 0x38]                         |     r3 = var_38h;
    0x0000e616 b 0xe494                                      |     goto label_0;
                                                             | label_10:
    0x0000e62e ldr r0, [sp, 0x28]                            |     r0 = var_28h;
    0x0000e630 ldr r2, [r4, 0x50]                            |     r2 = *((r4 + 0x50));
    0x0000e632 ldr r3, [r4, 0x58]                            |     r3 = *((r4 + 0x58));
    0x0000e634 ldr.w r1, [fp]                                |     r1 = *(fp);
    0x0000e638 subs r0, 1                                    |     r0--;
    0x0000e63a subs r2, 1                                    |     r2--;
    0x0000e63c ands r2, r0                                   |     r2 &= r0;
    0x0000e63e ldr.w ip, [r1, 4]                             |     ip = *((r1 + 4));
    0x0000e642 lsr.w r3, r2, r3                              |     r3 = r2 >> r3;
    0x0000e646 ldr.w r2, [r5, 0x98]                          |     r2 = *((r5 + 0x98));
    0x0000e64a cmp r2, ip                                    |     
                                                             |     if (r2 < ip) {
    0x0000e64c bhs 0xe6ec                                    |         
    0x0000e64e add.w r2, r2, r2, lsl 1                       |         r2 += (r2 << 1);
    0x0000e652 add.w lr, r1, r2, lsl 4                       |         lr = r1 + (r2 << 4);
    0x0000e656 ldr.w r2, [r5, 0x9c]                          |         r2 = *((r5 + 0x9c));
    0x0000e65a add.w sb, r2, r3, lsl 2                       |         sb = r2 + (r3 << 2);
    0x0000e65c lsrs r3, r0, 6                                |         r3 = r0 >> 6;
    0x0000e65e ldr.w r2, [lr, 0x20]                          |         r2 = *((lr + 0x20));
    0x0000e662 add.w sl, sb, 4                               |         sl = sb + 4;
    0x0000e666 cmp sl, r2                                    |         
                                                             |         if (sl > r2) {
    0x0000e668 bhi 0xe6ec                                    |             goto label_16;
                                                             |         }
    0x0000e66a ldr.w r2, [lr, 0x1c]                          |         r2 = *((lr + 0x1c));
    0x0000e66e cmn.w r2, sb                                  |         
                                                             |         if (r2 == sb) {
    0x0000e672 beq 0xe6ec                                    |             goto label_16;
                                                             |         }
    0x0000e674 ldr.w sb, [r2, sb]                            |         sb = *((r2 + sb));
    0x0000e678 ldr.w r2, [r4, 0x88]                          |         r2 = *((r4 + 0x88));
    0x0000e67c cmp r2, 0                                     |         
                                                             |         if (r2 == 0) {
    0x0000e67e beq 0xe724                                    |             goto label_17;
                                                             |         }
                                                             | label_2:
    0x0000e680 ldr.w r2, [r5, 0xac]                          |         r2 = *((r5 + 0xac));
    0x0000e684 cmp ip, r2                                    |         
                                                             |         if (ip < r2) {
    0x0000e686 bls 0xe6ec                                    |             goto label_16;
                                                             |         }
    0x0000e688 add.w r2, r2, r2, lsl 1                       |         r2 += (r2 << 1);
    0x0000e68c add.w lr, r1, r2, lsl 4                       |         lr = r1 + (r2 << 4);
    0x0000e68e subs r2, r0, 0                                |         r2 = r0 - 0;
    0x0000e690 ldr.w r2, [r5, 0xb0]                          |         r2 = *((r5 + 0xb0));
    0x0000e694 add.w sb, r2, sb, lsl 3                       |         sb = r2 + (sb << 3);
    0x0000e698 ldr.w r2, [lr, 0x20]                          |         r2 = *((lr + 0x20));
    0x0000e69c add.w sl, sb, 8                               |         sl = sb + 8;
    0x0000e6a0 cmp sl, r2                                    |         
                                                             |         if (sl > r2) {
    0x0000e6a2 bhi 0xe6ec                                    |             goto label_16;
                                                             |         }
    0x0000e6a4 ldr.w r2, [lr, 0x1c]                          |         r2 = *((lr + 0x1c));
    0x0000e6a8 adds.w lr, r2, sb                             |         lr = r2 + sb;
                                                             |         if (lr == r2) {
    0x0000e6ac beq 0xe6ec                                    |             goto label_16;
                                                             |         }
    0x0000e6ae ldr.w r2, [r2, sb]                            |         r2 = *((r2 + sb));
    0x0000e6b2 cmp r2, ip                                    |         
                                                             |         if (r2 >= ip) {
    0x0000e6b4 bhs 0xe6ec                                    |             goto label_16;
                                                             |         }
    0x0000e6b6 add.w r2, r2, r2, lsl 1                       |         r2 += (r2 << 1);
    0x0000e6ba ldr.w sb, [lr, 4]                             |         sb = *((lr + 4));
    0x0000e6be add.w lr, r1, r2, lsl 4                       |         lr = r1 + (r2 << 4);
    0x0000e6c2 add.w sl, sb, 0x28                            |         sl = sb + 0x28;
    0x0000e6c6 ldr.w r2, [lr, 0x20]                          |         r2 = *((lr + 0x20));
    0x0000e6ca cmp sl, r2                                    |         
                                                             |         if (sl > r2) {
    0x0000e6cc bhi 0xe6ec                                    |             goto label_16;
                                                             |         }
    0x0000e6ce ldr.w r2, [lr, 0x1c]                          |         r2 = *((lr + 0x1c));
    0x0000e6d2 adds.w lr, r2, sb                             |         lr = r2 + sb;
                                                             |         if (lr == r2) {
    0x0000e6d6 beq 0xe6ec                                    |             goto label_16;
                                                             |         }
    0x0000e6d8 ldr r2, [r4, 0x54]                            |         r2 = *((r4 + 0x54));
    0x0000e6da subs r2, 1                                    |         r2--;
    0x0000e6dc ands r2, r0                                   |         r2 &= r0;
    0x0000e6de adds r2, 1                                    |         r2++;
    0x0000e6e0 str.w r2, [lr, 0xc]                           |         __asm ("str.w r2, [lr, 0xc]");
    0x0000e6e4 ldr.w r1, [fp]                                |         r1 = *(fp);
    0x0000e6e8 ldr.w ip, [r1, 4]                             |         ip = *((r1 + 4));
                                                             |     }
                                                             | label_16:
    0x0000e6ec ldr.w r2, [r5, 0x118]                         |     r2 = *((r5 + 0x118));
    0x0000e6f0 cmp r2, ip                                    |     
                                                             |     if (r2 >= ip) {
    0x0000e6f2 bhs.w 0xe49a                                  |         goto label_1;
                                                             |     }
    0x0000e6f6 ldr.w r0, [r5, 0x11c]                         |     r0 = *((r5 + 0x11c));
    0x0000e6fa add.w r2, r2, r2, lsl 1                       |     r2 += (r2 << 1);
    0x0000e6fe add.w r0, r0, r3, lsl 3                       |     r0 += (r3 << 3);
    0x0000e702 add.w r3, r1, r2, lsl 4                       |     r3 = r1 + (r2 << 4);
    0x0000e706 ldr r2, [r3, 0x20]                            |     r2 = *((r3 + 0x20));
    0x0000e708 add.w r1, r0, 8                               |     r1 = r0 + 8;
    0x0000e70c cmp r1, r2                                    |     
                                                             |     if (r1 > r2) {
    0x0000e70e bhi.w 0xe49a                                  |         goto label_1;
                                                             |     }
    0x0000e712 ldr r3, [r3, 0x1c]                            |     r3 = *((r3 + 0x1c));
    0x0000e714 adds r3, r3, r0                               |     r3 += r0;
    0x0000e716 ittt ne                                       |     
                                                             |     if (r3 == r3) {
    0x0000e718 ldrne r2, [r7, 0x14]                          |         r2 = *((r7 + 0x14));
                                                             |     }
                                                             |     if (r3 != r3) {
    0x0000e71a ldrdne r0, r1, [r2, 0x18]                     |         __asm ("ldrdne r0, r1, [r2, 0x18]");
                                                             |     }
                                                             |     if (r3 != r3) {
    0x0000e71e strd r0, r1, [r3]                             |         __asm ("strd r0, r1, [r3]");
                                                             |     }
    0x0000e722 b 0xe49a                                      |     goto label_1;
                                                             | label_17:
    0x0000e724 uxth.w sb, sb                                 |     sb = (int16_t) sb;
    0x0000e728 b 0xe680                                      |     goto label_2;
                                                             | label_14:
    0x0000e734 mov r2, r4                                    |     r2 = r4;
    0x0000e736 mov r1, r5                                    |     r1 = r5;
    0x0000e738 add.w r0, r4, 0x80                            |     r0 = r4 + 0x80;
    0x0000e73c str.w sb, [sp, 4]                             |     __asm ("str.w sb, [var_4h]");
    0x0000e740 strd fp, r7, [sp, 8]                          |     __asm ("strd fp, r7, [var_8h]");
    0x0000e744 str.w sl, [sp]                                |     __asm ("str.w sl, [sp]");
    0x0000e748 bl 0xd5dc                                     |     fcn_0000d5dc (r0, r1, r2, r3, r4, r5, r6);
    0x0000e74c ldr r3, [sp, 0x24]                            |     r3 = var_24h;
    0x0000e74e b 0xe5cc                                      |     goto label_3;
                                                             | label_9:
    0x0000e750 blx 0x347c                                    |     fcn_0000347c ();
    0x0000e754 bl 0xa460                                     |     fcn_0000a460 ();
                                                             | label_15:
    0x0000e758 bl 0xa3f4                                     |     fcn_0000a3f4 ();
                                                             | label_13:
    0x0000e75c bl 0xa43c                                     |     fcn_0000a43c ();
                                                             | label_12:
    0x0000e760 bl 0xa418                                     |     fcn_0000a418 ();
    0x0000e764 subs.w r0, sl, r1                             |     r0 = sl - r1;
    0x0000e768 lsls r0, r1, 7                                |     r0 = r1 << 7;
    0x0000e76a movs r0, r0                                   |     
    0x0000e76c sbc.w r0, lr, r1                              |     __asm ("sbc.w r0, lr, r1");
    0x0000e770 ldr r0, [pc, 8]                               |     
    0x0000e772 push {r3, lr}                                 |     
    0x0000e774 add r0, pc                                    |     r0 = 0x1cef4;
    0x0000e776 blx 0x37a0                                    |     fcn_000037a0 ();
    0x0000e77a pop {r3, pc}                                  |     
                                                             | label_8:
    0x0000e780 ldr r2, [pc, 0xd0]                            |     
    0x0000e782 ldr r3, [pc, 0xd4]                            |     r3 = *(0xe85a);
    0x0000e784 push.w {r4, r5, r6, r7, r8, lr}               |     
    0x0000e788 sub.w sp, sp, 0x360                           |     
    0x0000e78c add r2, pc                                    |     r2 = 0x1cfe4;
    0x0000e78e add r4, sp, 0x14                              |     r4 += var_14h;
    0x0000e790 mov r0, r4                                    |     r0 = r4;
    0x0000e792 ldr r3, [r2, r3]                              |     
    0x0000e794 ldr r3, [r3]                                  |     r3 = *(0x1cfe4);
    0x0000e796 str r3, [sp, 0x35c]                           |     var_35ch = r3;
    0x0000e798 mov.w r3, 0                                   |     r3 = 0;
    0x0000e79c bl 0xa7e8                                     |     fcn_0000a7e8 (r0);
    0x0000e7a0 movs r2, 0                                    |     r2 = 0;
    0x0000e7a2 mov r1, r4                                    |     r1 = r4;
    0x0000e7a4 mov r0, r2                                    |     r0 = r2;
    0x0000e7a6 blx 0x3654                                    |     r0 = fprintf_chk ()
    0x0000e7aa cbnz r0, 0xe7c8                               |     
                                                             |     while (r3 != 2) {
                                                             | label_4:
    0x0000e7ac ldr r2, [pc, 0xac]                            |         
    0x0000e7ae ldr r3, [pc, 0xa8]                            |         r3 = *(0xe85a);
    0x0000e7b0 add r2, pc                                    |         r2 = 0x1d010;
    0x0000e7b2 ldr r3, [r2, r3]                              |         r3 = *(0x1d010);
    0x0000e7b4 ldr r2, [r3]                                  |         r2 = *(0x1d010);
    0x0000e7b6 ldr r3, [sp, 0x35c]                           |         r3 = var_35ch;
    0x0000e7b8 eors r2, r3                                   |         r2 ^= r3;
    0x0000e7ba mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x0000e7be bne 0xe850                                    |             goto label_18;
                                                             |         }
    0x0000e7c0 add.w sp, sp, 0x360                           |         
    0x0000e7c4 pop.w {r4, r5, r6, r7, r8, pc}                |         
    0x0000e7c8 mov r4, r0                                    |         r4 = r0;
    0x0000e7ca blx 0x35e8                                    |         r0 = fcn_000035e8 ();
    0x0000e7ce mov r5, r0                                    |         r5 = r0;
    0x0000e7d0 str r4, [r0]                                  |         *(r0) = r4;
    0x0000e7d2 ldr r4, [pc, 0x8c]                            |         
    0x0000e7d4 add r4, pc                                    |         r4 = 0x1d03a;
    0x0000e7d6 ldr r3, [r4]                                  |         r3 = *(0x1d03a);
                                                             |         if (r3 == 0) {
    0x0000e7d8 cbz r3, 0xe840                                |             goto label_19;
                                                             |         }
                                                             | label_5:
    0x0000e7da cmp r3, 2                                     |         
    0x0000e7dc bne 0xe7ac                                    |         
                                                             |     }
    0x0000e7de ldr r0, [r5]                                  |     r0 = *(r5);
    0x0000e7e0 movs r2, 0xc8                                 |     r2 = 0xc8;
    0x0000e7e2 add r1, sp, 0x94                              |     r1 += address;
    0x0000e7e4 blx 0x3600                                    |     r0 = bind (r0, r1, r2);
    0x0000e7e8 mov r6, r0                                    |     r6 = r0;
    0x0000e7ea ldr r7, [pc, 0x78]                            |     
    0x0000e7ec add r7, pc                                    |     r7 = 0x1d056;
    0x0000e7ee ldr r4, [r7]                                  |     r4 = *(0x1d056);
                                                             |     if (r4 == 0) {
    0x0000e7f0 cbz r4, 0xe848                                |         goto label_20;
                                                             |     }
                                                             | label_6:
    0x0000e7f2 cmp r4, 2                                     |     
                                                             |     if (r4 != 2) {
    0x0000e7f4 bne 0xe7ac                                    |         goto label_4;
                                                             |     }
    0x0000e7f6 ldr.w r8, [r5]                                |     r8 = *(r5);
    0x0000e7fa blx 0x3594                                    |     r0 = exit (r0);
    0x0000e7fe mov r7, r0                                    |     r7 = r0;
    0x0000e800 blx 0x33dc                                    |     fcn_000033dc ();
    0x0000e804 ldr r1, [pc, 0x60]                            |     
    0x0000e806 mov r3, r7                                    |     r3 = r7;
    0x0000e808 ldr r2, [pc, 0x60]                            |     
    0x0000e80a str r6, [sp, 4]                               |     var_4h = r6;
    0x0000e80c add r6, sp, 0x15c                             |     r6 += var_15ch;
    0x0000e80e add r1, pc                                    |     
    0x0000e810 str r0, [sp]                                  |     *(sp) = r0;
    0x0000e812 add.w r1, r1, 0x344                           |     r1 = 0x1d3be;
    0x0000e816 add r2, pc                                    |     r2 = 0x1d086;
    0x0000e818 str r1, [sp, 8]                               |     var_8h = r1;
    0x0000e81a mov r0, r6                                    |     r0 = r6;
    0x0000e81c mov.w r1, 0x200                               |     r1 = 0x200;
    0x0000e820 bl 0x20db8                                    |     fcn_00020db8 (r0, r1);
    0x0000e824 movs r3, 0                                    |     r3 = 0;
    0x0000e826 mov r0, r6                                    |     r0 = r6;
    0x0000e828 strb.w r3, [r6, 0x1ff]                        |     var_1ffh = r3;
    0x0000e82c blx 0x35b8                                    |     getpagesize ();
    0x0000e830 mov r1, r6                                    |     r1 = r6;
    0x0000e832 mov r2, r0                                    |     r2 = r0;
    0x0000e834 mov r0, r4                                    |     r0 = r4;
    0x0000e836 bl 0x20430                                    |     fcn_00020430 (r0, r1, r2);
    0x0000e83a str.w r8, [r5]                                |     __asm ("str.w r8, [r5]");
    0x0000e83e b 0xe7ac                                      |     goto label_4;
                                                             | label_19:
    0x0000e840 bl 0x1fdc4                                    |     fcn_0001fdc4 ();
    0x0000e844 ldr r3, [r4]                                  |     r3 = *(r4);
    0x0000e846 b 0xe7da                                      |     goto label_5;
                                                             | label_20:
    0x0000e848 bl 0x1fdc4                                    |     fcn_0001fdc4 ();
    0x0000e84c ldr r4, [r7]                                  |     r4 = *(r7);
    0x0000e84e b 0xe7f2                                      |     goto label_6;
                                                             | label_18:
    0x0000e850 blx 0x347c                                    |     fcn_0000347c ();
    0x0000e854 b 0xe568                                      |     goto label_7;
                                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/liblttng-ust-ctl.so.5.0.0 @ 0xa230 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0000a230 ()                      | void fcn_0000a230 (int16_t arg1, int16_t arg2) {
                                                 |     size_t var_0h;
                                                 |     char * dest;
                                                 |     int16_t var_8ch;
                                                 |     int16_t var_10ch;
                                                 |     int16_t var_18ch;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x0000a230 push {r4, r5, r6, lr}             |     
    0x0000a232 sub sp, 0x190                     |     
    0x0000a234 ldr r2, [r1]                      |     r2 = *(r1);
    0x0000a236 ldr r1, [pc, 0x164]               |     
    0x0000a238 ldr r3, [pc, 0x164]               |     r3 = *(0xa3a0);
    0x0000a23a add r1, pc                        |     r1 = 0x145dc;
    0x0000a23c ldr r3, [r1, r3]                  |     
    0x0000a23e ldr r1, [r2, 4]                   |     r1 = *((r2 + 4));
    0x0000a240 ldr r3, [r3]                      |     r3 = *(0x145dc);
    0x0000a242 str r3, [sp, 0x18c]               |     var_18ch = r3;
    0x0000a244 mov.w r3, 0                       |     r3 = 0;
    0x0000a248 ldr.w r3, [r0, 0x14c]             |     r3 = *((r0 + 0x14c));
    0x0000a24c cmp r3, r1                        |     
                                                 |     if (r3 >= r1) {
    0x0000a24e bhs 0xa2a4                        |         goto label_2;
                                                 |     }
    0x0000a250 add.w r3, r3, r3, lsl 1           |     r3 += (r3 << 1);
    0x0000a254 add.w r2, r2, r3, lsl 4           |     r2 += (r3 << 4);
    0x0000a256 asrs r3, r0, 8                    |     r3 = r0 >> 8;
    0x0000a258 ldr r4, [r2, 0x18]                |     r4 = *((r2 + 0x18));
    0x0000a25a cmp r4, 0                         |     
                                                 |     if (r4 < 0) {
    0x0000a25c blt 0xa2a4                        |         goto label_2;
                                                 |     }
    0x0000a25e add r5, sp, 0x8c                  |     r5 += var_8ch;
    0x0000a260 mov r0, r5                        |     r0 = r5;
    0x0000a262 blx 0x36e8                        |     r0 = fcn_000036e8 ();
    0x0000a266 cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x0000a268 bne 0xa360                        |         goto label_3;
                                                 |     }
    0x0000a26a mov r0, r5                        |     r0 = r5;
    0x0000a26c blx 0x36dc                        |     r0 = fcn_000036dc ();
    0x0000a270 cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x0000a272 bne.w 0xa388                      |         goto label_4;
                                                 |     }
    0x0000a276 movs r1, 0xd                      |     r1 = 0xd;
    0x0000a278 mov r0, r5                        |     r0 = r5;
    0x0000a27a blx 0x34c8                        |     r0 = geteuid ();
    0x0000a27e mov r6, r0                        |     r6 = r0;
                                                 |     if (r0 == 0) {
    0x0000a280 cbz r0, 0xa2bc                    |         goto label_5;
                                                 |     }
                                                 | label_0:
    0x0000a282 ldr r5, [pc, 0x120]               |     
    0x0000a284 add r5, pc                        |     r5 = 0x1462e;
    0x0000a286 b 0xa292                          |     
                                                 |     while (r0 == 1) {
    0x0000a288 blx 0x35e8                        |         r0 = fcn_000035e8 ();
    0x0000a28c ldr r3, [r0]                      |         r3 = *(r0);
    0x0000a28e cmp r3, 4                         |         
                                                 |         if (r3 != 4) {
    0x0000a290 bne 0xa2f4                        |             goto label_6;
                                                 |         }
    0x0000a292 movs r2, 1                        |         r2 = 1;
    0x0000a294 mov r1, r5                        |         r1 = r5;
    0x0000a296 mov r0, r4                        |         r0 = r4;
    0x0000a298 blx 0x3648                        |         pthread_sigmask ();
    0x0000a29c adds r0, 1                        |         r0++;
    0x0000a29e beq 0xa288                        |         
                                                 |     }
                                                 | label_1:
    0x0000a2a0 cmp r6, 0                         |     
                                                 |     if (r6 == 0) {
    0x0000a2a2 beq 0xa326                        |         goto label_7;
                                                 |     }
                                                 | label_2:
    0x0000a2a4 ldr r2, [pc, 0x100]               |     
    0x0000a2a6 ldr r3, [pc, 0xf8]                |     r3 = *(0xa3a2);
    0x0000a2a8 add r2, pc                        |     r2 = 0x14654;
    0x0000a2aa ldr r3, [r2, r3]                  |     r3 = *(0x14654);
    0x0000a2ac ldr r2, [r3]                      |     r2 = *(0x14654);
    0x0000a2ae ldr r3, [sp, 0x18c]               |     r3 = var_18ch;
    0x0000a2b0 eors r2, r3                       |     r2 ^= r3;
    0x0000a2b2 mov.w r3, 0                       |     r3 = 0;
    0x0000a2b4 lsls r0, r0, 0xc                  |     r0 <<= 0xc;
                                                 |     if (r0 != r0) {
    0x0000a2b6 bne 0xa348                        |         goto label_8;
                                                 |     }
    0x0000a2b8 add sp, 0x190                     |     
    0x0000a2ba pop {r4, r5, r6, pc}              |     
                                                 | label_5:
    0x0000a2bc add r5, sp, 0xc                   |     r5 += dest;
    0x0000a2be mov r0, r5                        |     r0 = r5;
    0x0000a2c0 blx 0x36e8                        |     r0 = fcn_000036e8 ();
    0x0000a2c4 cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x0000a2c6 bne 0xa374                        |         goto label_9;
                                                 |     }
    0x0000a2c8 movs r1, 0xd                      |     r1 = 0xd;
    0x0000a2ca mov r0, r5                        |     r0 = r5;
    0x0000a2cc blx 0x3558                        |     r0 = timer_delete ();
    0x0000a2d0 cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x0000a2d2 bne 0xa34c                        |         goto label_10;
                                                 |     }
    0x0000a2d4 add r2, sp, 0x10c                 |     r2 += var_10ch;
    0x0000a2d6 mov r1, r5                        |     r1 = r5;
    0x0000a2d8 blx 0x3654                        |     r0 = fprintf_chk ()
    0x0000a2dc cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x0000a2de beq 0xa282                        |         goto label_0;
                                                 |     }
    0x0000a2e0 ldr r3, [pc, 0xc8]                |     
    0x0000a2e2 mov.w r2, 0x23c                   |     r2 = 0x23c;
    0x0000a2e6 ldr r1, [pc, 0xc8]                |     
    0x0000a2e8 ldr r0, [pc, 0xc8]                |     
    0x0000a2ea add r3, pc                        |     r3 = 0x1469a;
    0x0000a2ec add r1, pc                        |     r1 = 0x146a2;
    0x0000a2ee add r0, pc                        |     r0 = 0x146a6;
    0x0000a2f0 blx 0x380c                        |     fcn_0000380c ();
                                                 | label_6:
    0x0000a2f4 blx 0x35e8                        |     r0 = fcn_000035e8 ();
    0x0000a2f8 ldr r3, [r0]                      |     r3 = *(r0);
    0x0000a2fa mov r4, r0                        |     r4 = r0;
    0x0000a2fc cmp r3, 0x20                      |     
                                                 |     if (r3 != 0x20) {
    0x0000a2fe bne 0xa2a0                        |         goto label_1;
                                                 |     }
    0x0000a300 cmp r6, 0                         |     
                                                 |     if (r6 != 0) {
    0x0000a302 bne 0xa2a4                        |         goto label_2;
                                                 |     }
    0x0000a304 vmov.i32 d16, 0                   |     __asm ("vmov.i32 d16, 0");
    0x0000a308 add r5, sp, 0xc                   |     r5 += dest;
    0x0000a30a mov r6, sp                        |     r6 = sp;
    0x0000a30c vstr d16, [sp]                    |     __asm ("vstr d16, [sp]");
    0x0000a310 b 0xa318                          |     
                                                 |     while (r0 == 1) {
    0x0000a312 ldr r3, [r4]                      |         r3 = *(r4);
    0x0000a314 cmp r3, 4                         |         
                                                 |         if (r3 != 4) {
    0x0000a316 bne 0xa326                        |             goto label_7;
                                                 |         }
    0x0000a318 mov r2, r6                        |         r2 = r6;
    0x0000a31a movs r1, 0                        |         r1 = 0;
    0x0000a31c mov r0, r5                        |         r0 = r5;
    0x0000a31e blx 0x3630                        |         strncpy (r0, r1, r2);
    0x0000a322 adds r0, 1                        |         r0++;
    0x0000a324 beq 0xa312                        |         
                                                 |     }
                                                 | label_7:
    0x0000a326 movs r2, 0                        |     r2 = 0;
    0x0000a328 add r1, sp, 0x10c                 |     r1 += var_10ch;
    0x0000a32a movs r0, 2                        |     r0 = 2;
    0x0000a32c blx 0x3654                        |     r0 = fprintf_chk ()
    0x0000a330 cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x0000a332 beq 0xa2a4                        |         goto label_2;
                                                 |     }
    0x0000a334 ldr r3, [pc, 0x80]                |     
    0x0000a336 movw r2, 0x24a                    |     r2 = 0x24a;
    0x0000a33a ldr r1, [pc, 0x80]                |     
    0x0000a33c ldr r0, [pc, 0x80]                |     
    0x0000a33e add r3, pc                        |     r3 = 0x146fa;
    0x0000a340 add r1, pc                        |     r1 = 0x14702;
    0x0000a342 add r0, pc                        |     r0 = 0x14706;
    0x0000a344 blx 0x380c                        |     fcn_0000380c ();
                                                 | label_8:
    0x0000a348 blx 0x347c                        |     fcn_0000347c ();
                                                 | label_10:
    0x0000a34c ldr r3, [pc, 0x74]                |     
    0x0000a34e movw r2, 0x23a                    |     r2 = 0x23a;
    0x0000a352 ldr r1, [pc, 0x74]                |     
    0x0000a354 ldr r0, [pc, 0x74]                |     
    0x0000a356 add r3, pc                        |     r3 = 0x1471e;
    0x0000a358 add r1, pc                        |     r1 = 0x14726;
    0x0000a35a add r0, pc                        |     r0 = 0x1472a;
    0x0000a35c blx 0x380c                        |     fcn_0000380c ();
                                                 | label_3:
    0x0000a360 ldr r3, [pc, 0x6c]                |     
    0x0000a362 movw r2, 0x229                    |     r2 = 0x229;
    0x0000a366 ldr r1, [pc, 0x6c]                |     
    0x0000a368 ldr r0, [pc, 0x6c]                |     
    0x0000a36a add r3, pc                        |     r3 = 0x1473e;
    0x0000a36c add r1, pc                        |     r1 = 0x14746;
    0x0000a36e add r0, pc                        |     r0 = 0x1474a;
    0x0000a370 blx 0x380c                        |     fcn_0000380c ();
                                                 | label_9:
    0x0000a374 ldr r3, [pc, 0x64]                |     
    0x0000a376 mov.w r2, 0x238                   |     r2 = 0x238;
    0x0000a37a ldr r1, [pc, 0x64]                |     
    0x0000a37c ldr r0, [pc, 0x64]                |     
    0x0000a37e add r3, pc                        |     r3 = 0x1475e;
    0x0000a380 add r1, pc                        |     r1 = 0x14766;
    0x0000a382 add r0, pc                        |     r0 = 0x1476a;
    0x0000a384 blx 0x380c                        |     fcn_0000380c ();
                                                 | label_4:
    0x0000a388 ldr r3, [pc, 0x5c]                |     
    0x0000a38a mov.w r2, 0x230                   |     r2 = 0x230;
    0x0000a38e ldr r1, [pc, 0x5c]                |     
    0x0000a390 ldr r0, [pc, 0x5c]                |     
    0x0000a392 add r3, pc                        |     r3 = 0x1477e;
    0x0000a394 add r1, pc                        |     r1 = 0x14786;
    0x0000a396 add r0, pc                        |     r0 = 0x1478a;
    0x0000a398 blx 0x380c                        |     fcn_0000380c ();
    0x0000a39c cmp r3, 0xda                      |     
    0x0000a39e movs r2, r0                       |     r2 = r0;
    0x0000a3a0 lsls r0, r1, 7                    |     r0 = r1 << 7;
    0x0000a3a2 movs r0, r0                       |     
    0x0000a3a4 add sp, 0x1f0                     |     
    0x0000a3a6 movs r1, r0                       |     r1 = r0;
    0x0000a3a8 cmp r3, 0x6c                      |     
    0x0000a3aa movs r2, r0                       |     r2 = r0;
    0x0000a3ac bkpt 0x72                         |     __asm ("bkpt 0x72");
                                                 | }

[*] Function printf used 4 times liblttng-ust-ctl.so.5.0.0