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

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


[*] Function fprintf tear down of liblttng-ust-common.so.1.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-common.so.1.0.0 @ 0x2800 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.lttng_ust_lock_fd_tracker ()             | void lttng_ust_lock_fd_tracker () {
                                                         |     int16_t var_0h_2;
                                                         |     int16_t var_4h_2;
                                                         |     int16_t var_8h_2;
                                                         |     int16_t var_14h;
                                                         |     int16_t var_94h;
                                                         |     int16_t var_3ch;
                                                         |     int16_t var_114h_2;
                                                         |     int16_t var_313h_2;
                                                         |     int16_t var_314h;
                                                         |     int16_t var_31ch;
    0x00002800 ldr r2, [pc, 0x1cc]                       |     
    0x00002802 ldr r3, [pc, 0x1d0]                       |     r3 = *(0x29d6);
    0x00002804 push.w {r4, r5, r6, r7, r8, sb, lr}       |     
    0x00002808 sub.w sp, sp, 0x31c                       |     
    0x0000280c add r2, pc                                |     r2 = 0x51e0;
    0x0000280e ldr r3, [r2, r3]                          |     
    0x00002810 ldr r3, [r3]                              |     r3 = *(0x51e0);
    0x00002812 str r3, [sp, 0x314]                       |     var_314h = r3;
    0x00002814 mov.w r3, 0                               |     r3 = 0;
    0x00002816 lsls r0, r0, 0xc                          |     r0 <<= 0xc;
    0x00002818 blx 0x1c38                                |     r0 = opendir ();
    0x0000281c cbnz r0, 0x287c                           |     
                                                         |     while (r4 != 2) {
                                                         | label_0:
    0x0000281e add r4, sp, 0x14                          |         r4 += var_14h;
    0x00002820 add r5, sp, 0x94                          |         r5 += var_94h;
    0x00002822 mov r0, r4                                |         r0 = r4;
    0x00002824 blx 0x1cd4                                |         errno_location ();
    0x00002828 mov r1, r4                                |         r1 = r4;
    0x0000282a mov r2, r5                                |         r2 = r5;
    0x0000282c movs r0, 2                                |         r0 = 2;
    0x0000282e blx 0x1d28                                |         r0 = fprintf_chk ()
    0x00002832 mov r4, r0                                |         r4 = r0;
    0x00002834 cmp r0, 0                                 |         
                                                         |         if (r0 != 0) {
    0x00002836 bne.w 0x2946                              |             goto label_7;
                                                         |         }
                                                         | label_3:
    0x0000283a ldr r0, [pc, 0x18c]                       |         
    0x0000283c add r0, pc                                |         r0 = 0x520a;
    0x0000283e blx 0x1db8                                |         fcn_00001db8 ();
    0x00002842 ldr r2, [pc, 0x188]                       |         r2 = *(0x29ce);
    0x00002844 ldr r3, [r2, r0]                          |         r3 = *(0x29ce);
    0x00002846 adds r1, r3, 1                            |         r1 = r3 + 1;
    0x00002848 str r1, [r2, r0]                          |         *((r2 + r0)) = r1;
    0x0000284a cmp r3, 0                                 |         
                                                         |         if (r3 == 0) {
    0x0000284c beq 0x293a                                |             goto label_8;
                                                         |         }
                                                         | label_2:
    0x0000284e movs r2, 0                                |         r2 = 0;
    0x00002850 mov r1, r5                                |         r1 = r5;
    0x00002852 movs r0, 2                                |         r0 = 2;
    0x00002854 blx 0x1d28                                |         r0 = fprintf_chk ()
    0x00002858 mov r4, r0                                |         r4 = r0;
    0x0000285a cmp r0, 0                                 |         
                                                         |         if (r0 != 0) {
    0x0000285c bne 0x28d4                                |             goto label_9;
                                                         |         }
                                                         | label_1:
    0x0000285e ldr r2, [pc, 0x178]                       |         
    0x00002860 ldr r3, [pc, 0x170]                       |         r3 = *(0x29d4);
    0x00002862 add r2, pc                                |         r2 = 0x5240;
    0x00002864 ldr r3, [r2, r3]                          |         r3 = *(0x5240);
    0x00002866 ldr r2, [r3]                              |         r2 = *(0x5240);
    0x00002868 ldr r3, [sp, 0x314]                       |         r3 = var_314h;
    0x0000286a eors r2, r3                               |         r2 ^= r3;
    0x0000286c mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x00002870 bne.w 0x29c4                              |             goto label_10;
                                                         |         }
    0x00002874 add.w sp, sp, 0x31c                       |         
    0x00002878 pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
    0x0000287c ldr r5, [pc, 0x15c]                       |         
    0x0000287e add r5, pc                                |         r5 = 0x525e;
    0x00002880 ldr r4, [r5]                              |         r4 = *(0x525e);
    0x00002882 cmp r4, 0                                 |         
                                                         |         if (r4 == 0) {
    0x00002884 beq.w 0x29b4                              |             goto label_11;
                                                         |         }
                                                         | label_5:
    0x00002888 cmp r4, 2                                 |         
    0x0000288a bne 0x281e                                |         
                                                         |     }
    0x0000288c blx 0x1ce0                                |     r0 = strerror_r ();
    0x00002890 ldr r7, [r0]                              |     r7 = *(r0);
    0x00002892 mov r6, r0                                |     r6 = r0;
    0x00002894 blx 0x1c98                                |     r0 = syscall ();
    0x00002898 mov r5, r0                                |     r5 = r0;
    0x0000289a blx 0x1b04                                |     fcn_00001b04 ();
    0x0000289e ldr r1, [pc, 0x140]                       |     
    0x000028a0 mov r3, r5                                |     r3 = r5;
    0x000028a2 ldr r2, [pc, 0x140]                       |     
    0x000028a4 add r5, sp, 0x114                         |     r5 += var_114h_2;
    0x000028a6 str r0, [sp]                              |     *(sp) = r0;
    0x000028a8 mov r0, r5                                |     r0 = r5;
    0x000028aa add r1, pc                                |     r1 = 0x5290;
    0x000028ac adds r1, 0xc                              |     r1 += 0xc;
    0x000028ae add r2, pc                                |     r2 = 0x5298;
    0x000028b0 str r1, [sp, 4]                           |     var_4h_2 = r1;
    0x000028b2 mov.w r1, 0x200                           |     r1 = 0x200;
    0x000028b6 bl 0x60f0                                 |     fcn_000060f0 ();
    0x000028ba movs r3, 0                                |     r3 = 0;
    0x000028bc mov r0, r5                                |     r0 = r5;
    0x000028be strb.w r3, [sp, 0x313]                    |     var_313h_2 = r3;
    0x000028c2 blx 0x1cbc                                |     getpagesize ();
    0x000028c6 mov r1, r5                                |     r1 = r5;
    0x000028c8 mov r2, r0                                |     r2 = r0;
    0x000028ca mov r0, r4                                |     r0 = r4;
    0x000028cc bl 0x5768                                 |     fcn_00005768 (r0, r1, r2);
    0x000028d0 str r7, [r6]                              |     *(r6) = r7;
    0x000028d2 b 0x281e                                  |     goto label_0;
                                                         | label_9:
    0x000028d4 ldr r6, [pc, 0x110]                       |     
    0x000028d6 add r6, pc                                |     r6 = 0x52c2;
    0x000028d8 ldr r5, [r6]                              |     r5 = *(0x52c2);
    0x000028da cmp r5, 0                                 |     
                                                         |     if (r5 == 0) {
    0x000028dc beq 0x29bc                                |         goto label_12;
                                                         |     }
                                                         | label_6:
    0x000028de cmp r5, 2                                 |     
                                                         |     if (r5 != 2) {
    0x000028e0 bne 0x285e                                |         goto label_1;
                                                         |     }
    0x000028e2 blx 0x1ce0                                |     r0 = strerror_r ();
    0x000028e6 ldr.w r8, [r0]                            |     r8 = *(r0);
    0x000028ea mov r6, r0                                |     r6 = r0;
    0x000028ec blx 0x1c98                                |     r0 = syscall ();
    0x000028f0 mov r7, r0                                |     r7 = r0;
    0x000028f2 blx 0x1b04                                |     r0 = fcn_00001b04 ();
    0x000028f6 mov r3, r0                                |     r3 = r0;
    0x000028f8 mov r0, r4                                |     r0 = r4;
    0x000028fa mov r4, r3                                |     r4 = r3;
    0x000028fc blx 0x1c74                                |     dlopen ();
    0x00002900 ldr r1, [pc, 0xe8]                        |     
    0x00002902 mov r3, r7                                |     r3 = r7;
    0x00002904 ldr r2, [pc, 0xe8]                        |     
    0x00002906 strd r4, r0, [sp]                         |     __asm ("strd r4, r0, [sp]");
    0x0000290a add r4, sp, 0x114                         |     r4 += var_114h_2;
    0x0000290c add r1, pc                                |     r1 = 0x52fc;
    0x0000290e mov r0, r4                                |     r0 = r4;
    0x00002910 adds r1, 0xc                              |     r1 += 0xc;
    0x00002912 add r2, pc                                |     r2 = 0x5306;
    0x00002914 str r1, [sp, 8]                           |     var_8h_2 = r1;
    0x00002916 mov.w r1, 0x200                           |     r1 = 0x200;
    0x0000291a bl 0x60f0                                 |     fcn_000060f0 ();
    0x0000291e movs r3, 0                                |     r3 = 0;
    0x00002920 mov r0, r4                                |     r0 = r4;
    0x00002922 strb.w r3, [r4, 0x1ff]                    |     var_313h_2 = r3;
    0x00002926 blx 0x1cbc                                |     getpagesize ();
    0x0000292a mov r1, r4                                |     r1 = r4;
    0x0000292c mov r2, r0                                |     r2 = r0;
    0x0000292e mov r0, r5                                |     r0 = r5;
    0x00002930 bl 0x5768                                 |     fcn_00005768 (r0, r1, r2);
    0x00002934 str.w r8, [r6]                            |     __asm ("str.w r8, [r6]");
    0x00002938 b 0x285e                                  |     goto label_1;
                                                         | label_8:
    0x0000293a ldr r0, [pc, 0xb8]                        |     
    0x0000293c add r0, pc                                |     r0 = 0x5336;
    0x0000293e adds r0, 0x10                             |     r0 += 0x10;
    0x00002940 blx 0x1b38                                |     fcn_00001b38 ();
    0x00002944 b 0x284e                                  |     goto label_2;
                                                         | label_7:
    0x00002946 ldr r7, [pc, 0xb0]                        |     
    0x00002948 add r7, pc                                |     r7 = 0x5346;
    0x0000294a ldr r6, [r7]                              |     r6 = *(0x5346);
                                                         |     if (r6 == 0) {
    0x0000294c cbz r6, 0x29ac                            |         goto label_13;
                                                         |     }
                                                         | label_4:
    0x0000294e cmp r6, 2                                 |     
                                                         |     if (r6 != 2) {
    0x00002950 bne.w 0x283a                              |         goto label_3;
                                                         |     }
    0x00002954 blx 0x1ce0                                |     r0 = strerror_r ();
    0x00002958 ldr.w r8, [r0]                            |     r8 = *(r0);
    0x0000295c mov r7, r0                                |     r7 = r0;
    0x0000295e blx 0x1c98                                |     r0 = syscall ();
    0x00002962 mov sb, r0                                |     sb = r0;
    0x00002964 blx 0x1b04                                |     r0 = fcn_00001b04 ();
    0x00002968 mov r3, r0                                |     r3 = r0;
    0x0000296a mov r0, r4                                |     r0 = r4;
    0x0000296c mov r4, r3                                |     r4 = r3;
    0x0000296e blx 0x1c74                                |     dlopen ();
    0x00002972 ldr r2, [pc, 0x88]                        |     
    0x00002974 mov.w r1, 0x200                           |     r1 = 0x200;
    0x00002978 strd r4, r0, [sp]                         |     __asm ("strd r4, r0, [sp]");
    0x0000297c add r4, sp, 0x114                         |     r4 += var_114h_2;
    0x0000297e mov r3, sb                                |     r3 = sb;
    0x00002980 mov r0, r4                                |     r0 = r4;
    0x00002982 add r2, pc                                |     r2 = 0x5384;
    0x00002984 adds r2, 0xc                              |     r2 += 0xc;
    0x00002986 str r2, [sp, 8]                           |     var_8h_2 = r2;
    0x00002988 ldr r2, [pc, 0x74]                        |     
    0x0000298a add r2, pc                                |     r2 = 0x538e;
    0x0000298c bl 0x60f0                                 |     fcn_000060f0 ();
    0x00002990 movs r3, 0                                |     r3 = 0;
    0x00002992 mov r0, r4                                |     r0 = r4;
    0x00002994 strb.w r3, [sp, 0x313]                    |     var_313h_2 = r3;
    0x00002998 blx 0x1cbc                                |     getpagesize ();
    0x0000299c mov r1, r4                                |     r1 = r4;
    0x0000299e mov r2, r0                                |     r2 = r0;
    0x000029a0 mov r0, r6                                |     r0 = r6;
    0x000029a2 bl 0x5768                                 |     fcn_00005768 (r0, r1, r2);
    0x000029a6 str.w r8, [r7]                            |     __asm ("str.w r8, [r7]");
    0x000029aa b 0x283a                                  |     goto label_3;
                                                         | label_13:
    0x000029ac bl 0x50fc                                 |     fcn_000050fc ();
    0x000029b0 ldr r6, [r7]                              |     r6 = *(r7);
    0x000029b2 b 0x294e                                  |     goto label_4;
                                                         | label_11:
    0x000029b4 bl 0x50fc                                 |     fcn_000050fc ();
    0x000029b8 ldr r4, [r5]                              |     r4 = *(r5);
    0x000029ba b 0x2888                                  |     goto label_5;
                                                         | label_12:
    0x000029bc bl 0x50fc                                 |     fcn_000050fc ();
    0x000029c0 ldr r5, [r6]                              |     r5 = *(r6);
    0x000029c2 b 0x28de                                  |     goto label_6;
                                                         | label_10:
    0x000029c4 blx 0x1b98                                |     fcn_00001b98 ();
    0x000029c8 strh r0, [r1, 0x3c]                       |     var_3ch = r0;
    0x000029ca movs r0, r0                               |     
    0x000029cc movs r0, r0                               |     
    0x000029ce movs r0, r0                               |     
    0x000029d0 strh r0, [r0, 0x34]                       |     *((r0 + 0x34)) = r0;
    0x000029d2 movs r0, r0                               |     
    0x000029d4 lsls r0, r1, 5                            |     r0 = r1 << 5;
    0x000029d6 movs r0, r0                               |     
    0x000029d8 strh r2, [r5, 0x30]                       |     *((r5 + 0x30)) = r2;
    0x000029da movs r0, r0                               |     
    0x000029dc ldrh r6, [r7, 0x2c]                       |     r6 = *((r7 + 0x2c));
    0x000029de movs r0, r0                               |     
    0x000029e0 ldrb r2, [r7, r5]                         |     r2 = *((r7 + r5));
    0x000029e2 movs r0, r0                               |     
    0x000029e4 ldr r2, [r4, r5]                          |     r2 = *((r4 + r5));
    0x000029e6 movs r0, r0                               |     
    0x000029e8 ldrh r6, [r4, 0x2a]                       |     r6 = *((r4 + 0x2a));
    0x000029ea movs r0, r0                               |     
    0x000029ec ldrb r0, [r3, r4]                         |     r0 = *((r3 + r4));
    0x000029ee movs r0, r0                               |     
    0x000029f0 ldrh r2, [r4, r0]                         |     r2 = *((r4 + r0));
    0x000029f2 movs r0, r0                               |     
    0x000029f4 ldrh r0, [r4, 0x1e]                       |     r0 = *((r4 + 0x1e));
    0x000029f6 movs r0, r0                               |     
    0x000029f8 ldrh r4, [r6, 0x26]                       |     r4 = *((r6 + 0x26));
    0x000029fa movs r0, r0                               |     
    0x000029fc ldrb r2, [r4, r2]                         |     r2 = *((r4 + r2));
    0x000029fe movs r0, r0                               |     
    0x00002a00 ldr r6, [r3, r4]                          |     r6 = *((r3 + r4));
    0x00002a02 movs r0, r0                               |     
                                                         | }
    ; 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-common.so.1.0.0 @ 0x2a04 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.lttng_ust_unlock_fd_tracker ()               | void lttng_ust_unlock_fd_tracker () {
                                                             |     int16_t var_0h;
                                                             |     int16_t var_4h;
                                                             |     int16_t var_8h;
                                                             |     int16_t var_14h_2;
                                                             |     int16_t var_94h_2;
                                                             |     int16_t var_114h;
                                                             |     int16_t var_313h;
                                                             |     int16_t var_314h_2;
    0x00002a04 blmi 0x1d153d8                                |     __asm ("blmi aav.0x0000847c");
    0x00002a08 push.w {r4, r5, r6, r7, r8, sb, lr}           |     
    0x00002a0c sub.w sp, sp, 0x31c                           |     
    0x00002a10 add r2, pc                                    |     r2 += pc;
    0x00002a12 add r4, sp, 0x14                              |     r4 += var_14h_2;
    0x00002a14 add r5, sp, 0x94                              |     r5 += var_94h_2;
    0x00002a16 mov r0, r4                                    |     r0 = r4;
    0x00002a18 ldr r3, [r2, r3]                              |     r3 = *((r2 + r3));
    0x00002a1a ldr r3, [r3]                                  |     r3 = *(r3);
    0x00002a1c str r3, [sp, 0x314]                           |     var_314h_2 = r3;
    0x00002a1e mov.w r3, 0                                   |     r3 = 0;
    0x00002a22 blx 0x1cd4                                    |     errno_location ();
    0x00002a26 mov r2, r5                                    |     r2 = r5;
    0x00002a28 mov r1, r4                                    |     r1 = r4;
    0x00002a2a movs r0, 2                                    |     r0 = 2;
    0x00002a2c blx 0x1d28                                    |     r0 = fprintf_chk ()
    0x00002a30 cbnz r0, 0x2a7e                               |     
                                                             |     while (r6 != 2) {
                                                             | label_0:
    0x00002a32 ldr r0, [pc, 0x198]                           |         
    0x00002a34 add r0, pc                                    |         r0 = 0x5606;
    0x00002a36 blx 0x1db8                                    |         fcn_00001db8 ();
    0x00002a3a ldr r2, [pc, 0x194]                           |         r2 = *(0x2bd2);
    0x00002a3c ldr r3, [r2, r0]                              |         r3 = *(0x2bd2);
    0x00002a3e subs r3, 1                                    |         r3--;
    0x00002a40 str r3, [r2, r0]                              |         *((r2 + r0)) = r3;
    0x00002a42 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00002a44 beq.w 0x2ba2                                  |             goto label_7;
                                                             |         }
                                                             | label_3:
    0x00002a48 movs r2, 0                                    |         r2 = 0;
    0x00002a4a mov r1, r5                                    |         r1 = r5;
    0x00002a4c movs r0, 2                                    |         r0 = 2;
    0x00002a4e blx 0x1d28                                    |         r0 = fprintf_chk ()
    0x00002a52 mov r4, r0                                    |         r4 = r0;
    0x00002a54 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00002a56 bne 0x2b3e                                    |             goto label_8;
                                                             |         }
                                                             | label_2:
    0x00002a58 blx 0x1b68                                    |         r0 = fcn_00001b68 ();
    0x00002a5c cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00002a5e bne 0x2ae8                                    |             goto label_9;
                                                             |         }
                                                             | label_1:
    0x00002a60 ldr r2, [pc, 0x178]                           |         
    0x00002a62 ldr r3, [pc, 0x174]                           |         r3 = *(0x2bda);
    0x00002a64 add r2, pc                                    |         r2 = 0x5644;
    0x00002a66 ldr r3, [r2, r3]                              |         r3 = *(0x5644);
    0x00002a68 ldr r2, [r3]                                  |         r2 = *(0x5644);
    0x00002a6a ldr r3, [sp, 0x314]                           |         r3 = var_314h_2;
    0x00002a6c eors r2, r3                                   |         r2 ^= r3;
    0x00002a6e mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x00002a72 bne.w 0x2bc6                                  |             goto label_10;
                                                             |         }
    0x00002a76 add.w sp, sp, 0x31c                           |         
    0x00002a7a pop.w {r4, r5, r6, r7, r8, sb, pc}            |         
    0x00002a7e mov r4, r0                                    |         r4 = r0;
    0x00002a80 ldr r7, [pc, 0x15c]                           |         
    0x00002a82 add r7, pc                                    |         r7 = 0x5666;
    0x00002a84 ldr r6, [r7]                                  |         r6 = *(0x5666);
    0x00002a86 cmp r6, 0                                     |         
                                                             |         if (r6 == 0) {
    0x00002a88 beq.w 0x2bb6                                  |             goto label_11;
                                                             |         }
                                                             | label_5:
    0x00002a8c cmp r6, 2                                     |         
    0x00002a8e bne 0x2a32                                    |         
                                                             |     }
    0x00002a90 blx 0x1ce0                                    |     r0 = strerror_r ();
    0x00002a94 ldr.w r8, [r0]                                |     r8 = *(r0);
    0x00002a98 mov r7, r0                                    |     r7 = r0;
    0x00002a9a blx 0x1c98                                    |     r0 = syscall ();
    0x00002a9e mov sb, r0                                    |     sb = r0;
    0x00002aa0 blx 0x1b04                                    |     r0 = fcn_00001b04 ();
    0x00002aa4 mov r3, r0                                    |     r3 = r0;
    0x00002aa6 mov r0, r4                                    |     r0 = r4;
    0x00002aa8 mov r4, r3                                    |     r4 = r3;
    0x00002aaa blx 0x1c74                                    |     dlopen ();
    0x00002aae ldr r2, [pc, 0x134]                           |     
    0x00002ab0 mov.w r1, 0x200                               |     r1 = 0x200;
    0x00002ab4 strd r4, r0, [sp]                             |     __asm ("strd r4, r0, [sp]");
    0x00002ab8 add r4, sp, 0x114                             |     r4 += var_114h;
    0x00002aba mov r3, sb                                    |     r3 = sb;
    0x00002abc mov r0, r4                                    |     r0 = r4;
    0x00002abe add r2, pc                                    |     r2 = 0x56a8;
    0x00002ac0 adds r2, 0x28                                 |     r2 += 0x28;
    0x00002ac2 str r2, [sp, 8]                               |     var_8h = r2;
    0x00002ac4 ldr r2, [pc, 0x120]                           |     
    0x00002ac6 add r2, pc                                    |     r2 = 0x56b2;
    0x00002ac8 bl 0x60f0                                     |     fcn_000060f0 ();
    0x00002acc movs r3, 0                                    |     r3 = 0;
    0x00002ace mov r0, r4                                    |     r0 = r4;
    0x00002ad0 strb.w r3, [sp, 0x313]                        |     var_313h = r3;
    0x00002ad4 blx 0x1cbc                                    |     getpagesize ();
    0x00002ad8 mov r1, r4                                    |     r1 = r4;
    0x00002ada mov r2, r0                                    |     r2 = r0;
    0x00002adc mov r0, r6                                    |     r0 = r6;
    0x00002ade bl 0x5768                                     |     fcn_00005768 (r0, r1, r2);
    0x00002ae2 str.w r8, [r7]                                |     __asm ("str.w r8, [r7]");
    0x00002ae6 b 0x2a32                                      |     goto label_0;
                                                             | label_9:
    0x00002ae8 ldr r5, [pc, 0x100]                           |     
    0x00002aea add r5, pc                                    |     r5 = 0x56da;
    0x00002aec ldr r4, [r5]                                  |     r4 = *(0x56da);
    0x00002aee cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x00002af0 beq 0x2bbe                                    |         goto label_12;
                                                             |     }
                                                             | label_6:
    0x00002af2 cmp r4, 2                                     |     
                                                             |     if (r4 != 2) {
    0x00002af4 bne 0x2a60                                    |         goto label_1;
                                                             |     }
    0x00002af6 blx 0x1ce0                                    |     r0 = strerror_r ();
    0x00002afa ldr r7, [r0]                                  |     r7 = *(r0);
    0x00002afc mov r6, r0                                    |     r6 = r0;
    0x00002afe blx 0x1c98                                    |     r0 = syscall ();
    0x00002b02 mov r5, r0                                    |     r5 = r0;
    0x00002b04 blx 0x1b04                                    |     fcn_00001b04 ();
    0x00002b08 ldr r1, [pc, 0xe4]                            |     
    0x00002b0a mov r3, r5                                    |     r3 = r5;
    0x00002b0c ldr r2, [pc, 0xe4]                            |     
    0x00002b0e add r5, sp, 0x114                             |     r5 += var_114h;
    0x00002b10 str r0, [sp]                                  |     *(sp) = r0;
    0x00002b12 mov r0, r5                                    |     r0 = r5;
    0x00002b14 add r1, pc                                    |     r1 = 0x5708;
    0x00002b16 adds r1, 0x28                                 |     r1 += 0x28;
    0x00002b18 add r2, pc                                    |     r2 = 0x5710;
    0x00002b1a str r1, [sp, 4]                               |     var_4h = r1;
    0x00002b1c mov.w r1, 0x200                               |     r1 = 0x200;
    0x00002b20 bl 0x60f0                                     |     fcn_000060f0 ();
    0x00002b24 movs r3, 0                                    |     r3 = 0;
    0x00002b26 mov r0, r5                                    |     r0 = r5;
    0x00002b28 strb.w r3, [r5, 0x1ff]                        |     *((r5 + 0x1ff)) = r3;
    0x00002b2c blx 0x1cbc                                    |     getpagesize ();
    0x00002b30 mov r1, r5                                    |     r1 = r5;
    0x00002b32 mov r2, r0                                    |     r2 = r0;
    0x00002b34 mov r0, r4                                    |     r0 = r4;
    0x00002b36 bl 0x5768                                     |     fcn_00005768 (r0, r1, r2);
    0x00002b3a str r7, [r6]                                  |     *(r6) = r7;
    0x00002b3c b 0x2a60                                      |     goto label_1;
                                                             | label_8:
    0x00002b3e ldr r6, [pc, 0xb8]                            |     
    0x00002b40 add r6, pc                                    |     r6 = 0x573e;
    0x00002b42 ldr r5, [r6]                                  |     r5 = *(0x573e);
                                                             |     if (r5 == 0) {
    0x00002b44 cbz r5, 0x2bae                                |         goto label_13;
                                                             |     }
                                                             | label_4:
    0x00002b46 cmp r5, 2                                     |     
                                                             |     if (r5 != 2) {
    0x00002b48 bne 0x2a58                                    |         goto label_2;
                                                             |     }
    0x00002b4a blx 0x1ce0                                    |     r0 = strerror_r ();
    0x00002b4e ldr.w r8, [r0]                                |     r8 = *(r0);
    0x00002b52 mov r6, r0                                    |     r6 = r0;
    0x00002b54 blx 0x1c98                                    |     r0 = syscall ();
    0x00002b58 mov r7, r0                                    |     r7 = r0;
    0x00002b5a blx 0x1b04                                    |     r0 = fcn_00001b04 ();
    0x00002b5e mov r3, r0                                    |     r3 = r0;
    0x00002b60 mov r0, r4                                    |     r0 = r4;
    0x00002b62 mov r4, r3                                    |     r4 = r3;
    0x00002b64 blx 0x1c74                                    |     dlopen ();
    0x00002b68 ldr r1, [pc, 0x90]                            |     
    0x00002b6a mov r3, r7                                    |     r3 = r7;
    0x00002b6c ldr r2, [pc, 0x90]                            |     
    0x00002b6e strd r4, r0, [sp]                             |     __asm ("strd r4, r0, [sp]");
    0x00002b72 add r4, sp, 0x114                             |     r4 += var_114h;
    0x00002b74 add r1, pc                                    |     r1 = 0x5774;
    0x00002b76 mov r0, r4                                    |     r0 = r4;
    0x00002b78 adds r1, 0x28                                 |     r1 += 0x28;
    0x00002b7a add r2, pc                                    |     r2 = 0x577e;
    0x00002b7c str r1, [sp, 8]                               |     var_8h = r1;
    0x00002b7e mov.w r1, 0x200                               |     r1 = 0x200;
    0x00002b82 bl 0x60f0                                     |     fcn_000060f0 ();
    0x00002b86 movs r3, 0                                    |     r3 = 0;
    0x00002b88 mov r0, r4                                    |     r0 = r4;
    0x00002b8a strb.w r3, [sp, 0x313]                        |     var_313h = r3;
    0x00002b8e blx 0x1cbc                                    |     getpagesize ();
    0x00002b92 mov r1, r4                                    |     r1 = r4;
    0x00002b94 mov r2, r0                                    |     r2 = r0;
    0x00002b96 mov r0, r5                                    |     r0 = r5;
    0x00002b98 bl 0x5768                                     |     fcn_00005768 (r0, r1, r2);
    0x00002b9c str.w r8, [r6]                                |     __asm ("str.w r8, [r6]");
    0x00002ba0 b 0x2a58                                      |     goto label_2;
                                                             | label_7:
    0x00002ba2 ldr r0, [pc, 0x60]                            |     
    0x00002ba4 add r0, pc                                    |     r0 = 0x57ae;
    0x00002ba6 adds r0, 0x10                                 |     r0 += 0x10;
    0x00002ba8 blx 0x1aa4                                    |     fcn_00001aa4 ();
    0x00002bac b 0x2a48                                      |     goto label_3;
                                                             | label_13:
    0x00002bae bl 0x50fc                                     |     fcn_000050fc ();
    0x00002bb2 ldr r5, [r6]                                  |     r5 = *(r6);
    0x00002bb4 b 0x2b46                                      |     goto label_4;
                                                             | label_11:
    0x00002bb6 bl 0x50fc                                     |     fcn_000050fc ();
    0x00002bba ldr r6, [r7]                                  |     r6 = *(r7);
    0x00002bbc b 0x2a8c                                      |     goto label_5;
                                                             | label_12:
    0x00002bbe bl 0x50fc                                     |     fcn_000050fc ();
    0x00002bc2 ldr r4, [r5]                                  |     r4 = *(r5);
    0x00002bc4 b 0x2af2                                      |     goto label_6;
                                                             | label_10:
    0x00002bc6 blx 0x1b98                                    |     fcn_00001b98 ();
    0x00002bca nop                                           |     
    0x00002bcc strh r0, [r2, 0x2c]                           |     *((r2 + 0x2c)) = r0;
    0x00002bce movs r0, r0                                   |     
    0x00002bd0 movs r0, r0                                   |     
    0x00002bd2 movs r0, r0                                   |     
    0x00002bd4 strh r4, [r7, 0x22]                           |     *((r7 + 0x22)) = r4;
    0x00002bd6 movs r0, r0                                   |     
    0x00002bd8 lsls r0, r1, 5                                |     r0 = r1 << 5;
    0x00002bda movs r0, r0                                   |     
    0x00002bdc strh r0, [r5, 0x20]                           |     *((r5 + 0x20)) = r0;
    0x00002bde movs r0, r0                                   |     
    0x00002be0 ldrh r2, [r7, 0x1c]                           |     r2 = *((r7 + 0x1c));
    0x00002be2 movs r0, r0                                   |     
    0x00002be4 ldrh r6, [r4, r5]                             |     r6 = *((r4 + r5));
    0x00002be6 movs r0, r0                                   |     
    0x00002be8 ldr r2, [r7, r3]                              |     r2 = *((r7 + r3));
    0x00002bea movs r0, r0                                   |     
    0x00002bec ldrh r2, [r2, 0x1a]                           |     r2 = *((r2 + 0x1a));
    0x00002bee movs r0, r0                                   |     
    0x00002bf0 ldrh r0, [r2, r4]                             |     r0 = *((r2 + r4));
    0x00002bf2 movs r0, r0                                   |     
    0x00002bf4 ldr r0, [r0, r7]                              |     r0 = *((r0 + r7));
    0x00002bf6 movs r0, r0                                   |     
    0x00002bf8 ldrh r4, [r7, 0x16]                           |     r4 = *((r7 + 0x16));
    0x00002bfa movs r0, r0                                   |     
    0x00002bfc ldrh r0, [r6, r2]                             |     r0 = *((r6 + r2));
    0x00002bfe movs r0, r0                                   |     
    0x00002c00 ldr r2, [r2, r3]                              |     r2 = *((r2 + r3));
    0x00002c02 movs r0, r0                                   |     
    0x00002c04 ldrh r0, [r7, 0xa]                            |     r0 = *((r7 + 0xa));
    0x00002c06 movs r0, r0                                   |     
                                                             | }
    ; 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-common.so.1.0.0 @ 0x3a3c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.lttng_ust_urcu_after_fork_child ()           | void lttng_ust_urcu_after_fork_child () {
                                                             |     int16_t var_4h_3;
                                                             |     int16_t var_84h_2;
    0x00003a3c blmi 0xe16320                                 |     __asm ("blmi aav.0x00007446");
    0x00003a40 push.w {r4, r5, r6, r7, r8, sb, lr}           |     
    0x00003a44 sub sp, 0x8c                                  |     
    0x00003a46 add r2, pc                                    |     r2 += pc;
    0x00003a48 ldr.w r8, [pc, 0xd8]                          |     
    0x00003a4c ldr r3, [r2, r3]                              |     r3 = *((r2 + r3));
    0x00003a4e add r8, pc                                    |     r8 = 0x7576;
    0x00003a50 ldr r3, [r3]                                  |     r3 = *(r3);
    0x00003a52 str r3, [sp, 0x84]                            |     var_84h_2 = r3;
    0x00003a54 mov.w r3, 0                                   |     r3 = 0;
    0x00003a58 ldr r3, [r8, 8]!                              |     r3 = *(0x757e);
    0x00003a5c cmp r3, r8                                    |     
                                                             |     if (r3 == r8) {
    0x00003a5e beq 0x3ab2                                    |         goto label_1;
                                                             |     }
    0x00003a60 sub.w r5, r3, 8                               |     r5 = r3 - 8;
    0x00003a64 movs r6, 0                                    |     r6 = 0;
                                                             | label_0:
    0x00003a66 mov r4, r5                                    |     r4 = r5;
    0x00003a68 ldr r7, [r4], 0x10                            |     r7 = *(r4);
                                                             |     r4 += 0x10;
    0x00003a6c add.w r3, r7, 0x10                            |     r3 = r7 + 0x10;
    0x00003a70 add r3, r5                                    |     r3 += r5;
    0x00003a72 cmp r4, r3                                    |     
                                                             |     if (r4 >= r3) {
    0x00003a74 bhs 0x3aa8                                    |         goto label_2;
                                                             |     }
                                                             |     do {
    0x00003a76 ldr r3, [r4, 0x4c]                            |         r3 = *((r4 + 0x4c));
                                                             |         if (r3 != 0) {
    0x00003a78 cbz r3, 0x3a9c                                |             
    0x00003a7a ldr.w sb, [r4, 0x48]                          |             sb = *((r4 + 0x48));
    0x00003a7e blx 0x1b50                                    |             r0 = fcn_00001b50 ();
    0x00003a82 cmp sb, r0                                    |             
                                                             |             if (sb == r0) {
    0x00003a84 beq 0x3a9c                                    |                 goto label_3;
                                                             |             }
    0x00003a86 ldrd r2, r3, [r4, 0x40]                       |             __asm ("ldrd r2, r3, [r4, 0x40]");
    0x00003a8a str r6, [r4]                                  |             *(r4) = r6;
    0x00003a8c str r3, [r2, 4]                               |             *((r2 + 4)) = r3;
    0x00003a8e str r2, [r3]                                  |             *(r3) = r2;
    0x00003a90 strd r6, r6, [r4, 0x48]                       |             __asm ("strd r6, r6, [r4, 0x48]");
    0x00003a94 ldrd r7, r3, [r5]                             |             __asm ("ldrd r7, r3, [r5]");
    0x00003a98 subs r3, 0x80                                 |             r3 -= 0x80;
    0x00003a9a str r3, [r5, 4]                               |             *((r5 + 4)) = r3;
                                                             |         }
                                                             | label_3:
    0x00003a9c add.w r3, r7, 0x10                            |         r3 = r7 + 0x10;
    0x00003aa0 adds r4, 0x80                                 |         r4 += 0x80;
    0x00003aa2 add r3, r5                                    |         r3 += r5;
    0x00003aa4 cmp r4, r3                                    |         
    0x00003aa6 blo 0x3a76                                    |         
                                                             |     } while (r4 <= r3);
                                                             | label_2:
    0x00003aa8 ldr r3, [r5, 8]                               |     r3 = *((r5 + 8));
    0x00003aaa cmp r3, r8                                    |     
    0x00003aac sub.w r5, r3, 8                               |     r5 = r3 - 8;
                                                             |     if (r3 != r8) {
    0x00003ab0 bne 0x3a66                                    |         goto label_0;
                                                             |     }
                                                             | label_1:
    0x00003ab2 ldr r4, [pc, 0x74]                            |     
    0x00003ab4 add r5, sp, 4                                 |     r5 += var_4h_3;
    0x00003ab6 movs r2, 0x80                                 |     r2 = 0x80;
    0x00003ab8 mov r0, r5                                    |     r0 = r5;
    0x00003aba add r4, pc                                    |     r4 = 0x75e8;
    0x00003abc add.w r1, r4, 0x50                            |     r1 = r4 + 0x50;
    0x00003ac0 blx 0x1b5c                                    |     fcn_00001b5c ();
    0x00003ac4 mov r0, r4                                    |     r0 = r4;
    0x00003ac6 blx 0x1aa4                                    |     r0 = fcn_00001aa4 ();
                                                             |     if (r0 == 0) {
    0x00003aca cbnz r0, 0x3b16                               |         
    0x00003acc add.w r0, r4, 0x18                            |         r0 = r4 + 0x18;
    0x00003ad0 blx 0x1aa4                                    |         r0 = fcn_00001aa4 ();
    0x00003ad4 mov r2, r0                                    |         r2 = r0;
                                                             |         if (r0 != 0) {
    0x00003ad6 cbnz r0, 0x3b16                               |             goto label_4;
                                                             |         }
    0x00003ad8 mov r1, r5                                    |         r1 = r5;
    0x00003ada movs r0, 2                                    |         r0 = 2;
    0x00003adc blx 0x1d28                                    |         r0 = fprintf_chk ()
                                                             |         if (r0 == 0) {
    0x00003ae0 cbnz r0, 0x3afc                               |             
    0x00003ae2 ldr r2, [pc, 0x48]                            |             
    0x00003ae4 ldr r3, [pc, 0x38]                            |             r3 = *(0x3b20);
    0x00003ae6 add r2, pc                                    |             r2 = 0x7618;
    0x00003ae8 ldr r3, [r2, r3]                              |             r3 = *(0x7618);
    0x00003aea ldr r2, [r3]                                  |             r2 = *(0x7618);
    0x00003aec ldr r3, [sp, 0x84]                            |             r3 = var_84h_2;
    0x00003aee eors r2, r3                                   |             r2 ^= r3;
    0x00003af0 mov.w r3, 0                                   |             r3 = 0;
                                                             |             if (r2 != r3) {
    0x00003af4 bne 0x3b12                                    |                 goto label_5;
                                                             |             }
    0x00003af6 add sp, 0x8c                                  |             
    0x00003af8 pop.w {r4, r5, r6, r7, r8, sb, pc}            |             
                                                             |         }
    0x00003afc ldr r3, [pc, 0x30]                            |         
    0x00003afe mov.w r2, 0x2d0                               |         r2 = 0x2d0;
    0x00003b02 ldr r1, [pc, 0x30]                            |         
    0x00003b04 ldr r0, [pc, 0x30]                            |         
    0x00003b06 add r3, pc                                    |         r3 = 0x763a;
    0x00003b08 add r1, pc                                    |         r1 = 0x7642;
    0x00003b0a adds r3, 0x7c                                 |         r3 += 0x7c;
    0x00003b0c add r0, pc                                    |         r0 = 0x7648;
    0x00003b0e blx 0x1e28                                    |         fcn_00001e28 ();
                                                             | label_5:
    0x00003b12 blx 0x1b98                                    |         fcn_00001b98 ();
                                                             |     }
                                                             | label_4:
    0x00003b16 blx 0x1dec                                    |     fcn_00001dec ();
    0x00003b1a nop                                           |     
    0x00003b1c strb r6, [r0, 0x11]                           |     *((r0 + 0x11)) = r6;
    0x00003b1e movs r0, r0                                   |     
    0x00003b20 lsls r0, r1, 5                                |     r0 = r1 << 5;
    0x00003b22 movs r0, r0                                   |     
    0x00003b24 strb r6, [r5, 0x18]                           |     *((r5 + 0x18)) = r6;
    0x00003b26 movs r0, r0                                   |     
    0x00003b28 ldrb r2, [r2, 0xa]                            |     r2 = *((r2 + 0xa));
    0x00003b2a movs r0, r0                                   |     
    0x00003b2c strb r6, [r4, 0xe]                            |     *((r4 + 0xe)) = r6;
    0x00003b2e movs r0, r0                                   |     
    0x00003b30 ldr r6, [pc, 0x28]                            |     r6 = *(0x3b5c);
    0x00003b32 movs r0, r0                                   |     
    0x00003b34 ldr r5, [pc, 0x1f0]                           |     r5 = *(0x3d28);
    0x00003b36 movs r0, r0                                   |     
    0x00003b38 ldr r5, [pc, 0x320]                           |     r5 = *(0x3e5c);
    0x00003b3a movs r0, r0                                   |     
                                                             | }
    ; 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-common.so.1.0.0 @ 0x39a4 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.lttng_ust_urcu_after_fork_parent ()      | void lttng_ust_urcu_after_fork_parent () {
                                                         |     int16_t var_4h_2;
                                                         |     int16_t var_84h;
                                                         |     if (? < ?) {
    0x000039a4 addhs r4, r0, 0x78000                     |         r4 = r0 + 0x78000;
                                                         |     }
    0x000039a8 ldr r3, [pc, 0x78]                        |     
    0x000039aa push {r4, r5, lr}                         |     
    0x000039ac sub sp, 0x8c                              |     
    0x000039ae ldr r4, [pc, 0x78]                        |     
    0x000039b0 add r1, pc                                |     r1 += pc;
    0x000039b2 add r5, sp, 4                             |     r5 += var_4h_2;
    0x000039b4 ldr r3, [r1, r3]                          |     r3 = *((r1 + r3));
    0x000039b6 mov r0, r5                                |     r0 = r5;
    0x000039b8 add r4, pc                                |     r4 = 0x73e6;
    0x000039ba add.w r1, r4, 0x50                        |     r1 = r4 + 0x50;
    0x000039be ldr r3, [r3]                              |     r3 = *(0x3a24);
    0x000039c0 str r3, [sp, 0x84]                        |     var_84h = r3;
    0x000039c2 mov.w r3, 0                               |     r3 = 0;
    0x000039c6 blx 0x1b5c                                |     fcn_00001b5c ();
    0x000039ca mov r0, r4                                |     r0 = r4;
    0x000039cc blx 0x1aa4                                |     r0 = fcn_00001aa4 ();
                                                         |     if (r0 == 0) {
    0x000039d0 cbnz r0, 0x3a1a                           |         
    0x000039d2 add.w r0, r4, 0x18                        |         r0 = r4 + 0x18;
    0x000039d6 blx 0x1aa4                                |         r0 = fcn_00001aa4 ();
    0x000039da mov r2, r0                                |         r2 = r0;
                                                         |         if (r0 != 0) {
    0x000039dc cbnz r0, 0x3a1a                           |             goto label_0;
                                                         |         }
    0x000039de mov r1, r5                                |         r1 = r5;
    0x000039e0 movs r0, 2                                |         r0 = 2;
    0x000039e2 blx 0x1d28                                |         r0 = fprintf_chk ()
                                                         |         if (r0 == 0) {
    0x000039e6 cbnz r0, 0x3a00                           |             
    0x000039e8 ldr r2, [pc, 0x40]                        |             
    0x000039ea ldr r3, [pc, 0x38]                        |             r3 = *(0x3a26);
    0x000039ec add r2, pc                                |             r2 = 0x741c;
    0x000039ee ldr r3, [r2, r3]                          |             r3 = *(0x741c);
    0x000039f0 ldr r2, [r3]                              |             r2 = *(0x741c);
    0x000039f2 ldr r3, [sp, 0x84]                        |             r3 = var_84h;
    0x000039f4 eors r2, r3                               |             r2 ^= r3;
    0x000039f6 mov.w r3, 0                               |             r3 = 0;
                                                         |             if (r2 != r3) {
    0x000039fa bne 0x3a16                                |                 goto label_1;
                                                         |             }
    0x000039fc add sp, 0x8c                              |             
    0x000039fe pop {r4, r5, pc}                          |             
                                                         |         }
    0x00003a00 ldr r3, [pc, 0x2c]                        |         
    0x00003a02 mov.w r2, 0x2ac                           |         r2 = 0x2ac;
    0x00003a06 ldr r1, [pc, 0x2c]                        |         
    0x00003a08 ldr r0, [pc, 0x2c]                        |         
    0x00003a0a add r3, pc                                |         r3 = 0x743e;
    0x00003a0c add r1, pc                                |         r1 = 0x7446;
    0x00003a0e adds r3, 0x58                             |         r3 += 0x58;
    0x00003a10 add r0, pc                                |         r0 = 0x744c;
    0x00003a12 blx 0x1e28                                |         fcn_00001e28 ();
                                                         | label_1:
    0x00003a16 blx 0x1b98                                |         fcn_00001b98 ();
                                                         |     }
                                                         | label_0:
    0x00003a1a blx 0x1dec                                |     fcn_00001dec ();
    0x00003a1e nop                                       |     
    0x00003a20 strb r4, [r3, 0x13]                       |     *((r3 + 0x13)) = r4;
    0x00003a22 movs r0, r0                               |     
    0x00003a24 lsls r0, r1, 5                            |     r0 = r1 << 5;
    0x00003a26 movs r0, r0                               |     
    0x00003a28 ldrb r4, [r2, 0xe]                        |     r4 = *((r2 + 0xe));
    0x00003a2a movs r0, r0                               |     
    0x00003a2c strb r0, [r4, 0x12]                       |     *((r4 + 0x12)) = r0;
    0x00003a2e movs r0, r0                               |     
    0x00003a30 ldr r7, [pc, 0x18]                        |     r7 = *(0x3a4c);
    0x00003a32 movs r0, r0                               |     
    0x00003a34 ldr r6, [pc, 0x1e0]                       |     r6 = *(0x3c18);
    0x00003a36 movs r0, r0                               |     
    0x00003a38 ldr r6, [pc, 0x310]                       |     r6 = *(0x3d4c);
    0x00003a3a movs r0, r0                               |     
                                                         | }
    ; 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-common.so.1.0.0 @ 0x38e4 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.lttng_ust_urcu_before_fork ()    | void lttng_ust_urcu_before_fork () {
                                                 |     int16_t var_4h;
                                                 |     int8_t var_16h;
                                                 |     int16_t var_84h_3;
                                                 |     int16_t var_104h;
    0x000038e4 blmi 0x996180                     |     __asm ("blmi aav.0x000075a0");
    0x000038e8 push {r4, r5, lr}                 |     
    0x000038ea sub sp, 0x10c                     |     
    0x000038ec add r2, pc                        |     r2 += pc;
    0x000038ee add r4, sp, 4                     |     r4 += var_4h;
    0x000038f0 mov r0, r4                        |     r0 = r4;
    0x000038f2 ldr r3, [r2, r3]                  |     r3 = *((r2 + r3));
    0x000038f4 ldr r3, [r3]                      |     r3 = *(r3);
    0x000038f6 str r3, [sp, 0x104]               |     var_104h = r3;
    0x000038f8 mov.w r3, 0                       |     r3 = 0;
    0x000038fc blx 0x1cd4                        |     r0 = errno_location ();
                                                 |     if (r0 == 0) {
    0x00003900 cbnz r0, 0x3948                   |         
    0x00003902 add r5, sp, 0x84                  |         r5 += var_84h_3;
    0x00003904 mov r1, r4                        |         r1 = r4;
    0x00003906 mov r2, r5                        |         r2 = r5;
    0x00003908 blx 0x1d28                        |         r0 = fprintf_chk ()
                                                 |         if (r0 != 0) {
    0x0000390c cbnz r0, 0x3962                   |             goto label_0;
                                                 |         }
    0x0000390e ldr r4, [pc, 0x74]                |         
    0x00003910 add r4, pc                        |         r4 = 0x729a;
    0x00003912 add.w r0, r4, 0x18                |         r0 = r4 + 0x18;
    0x00003916 blx 0x1b38                        |         r0 = fcn_00001b38 ();
                                                 |         if (r0 != 0) {
    0x0000391a cbnz r0, 0x3978                   |             goto label_1;
                                                 |         }
    0x0000391c mov r0, r4                        |         r0 = r4;
    0x0000391e blx 0x1b38                        |         r0 = fcn_00001b38 ();
                                                 |         if (r0 != 0) {
    0x00003922 cbnz r0, 0x3978                   |             goto label_1;
                                                 |         }
    0x00003924 movs r2, 0x80                     |         r2 = 0x80;
    0x00003926 mov r1, r5                        |         r1 = r5;
    0x00003928 add.w r0, r4, 0x50                |         r0 = r4 + 0x50;
    0x0000392c blx 0x1b5c                        |         fcn_00001b5c ();
    0x00003930 ldr r2, [pc, 0x54]                |         
    0x00003932 ldr r3, [pc, 0x4c]                |         r3 = *(0x3982);
    0x00003934 add r2, pc                        |         r2 = 0x72c0;
    0x00003936 ldr r3, [r2, r3]                  |         r3 = *(0x72c0);
    0x00003938 ldr r2, [r3]                      |         r2 = *(0x72c0);
    0x0000393a ldr r3, [sp, 0x104]               |         r3 = var_104h;
    0x0000393c eors r2, r3                       |         r2 ^= r3;
    0x0000393e mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x00003942 bne 0x395e                        |             goto label_2;
                                                 |         }
    0x00003944 add sp, 0x10c                     |         
    0x00003946 pop {r4, r5, pc}                  |         
                                                 |     }
    0x00003948 ldr r3, [pc, 0x40]                |     
    0x0000394a movw r2, 0x29b                    |     r2 = 0x29b;
    0x0000394e ldr r1, [pc, 0x40]                |     
    0x00003950 ldr r0, [pc, 0x40]                |     
    0x00003952 add r3, pc                        |     r3 = 0x72e2;
    0x00003954 add r1, pc                        |     r1 = 0x72ea;
    0x00003956 adds r3, 0x3c                     |     r3 += 0x3c;
    0x00003958 add r0, pc                        |     r0 = 0x72f0;
    0x0000395a blx 0x1e28                        |     fcn_00001e28 ();
                                                 | label_2:
    0x0000395e blx 0x1b98                        |     fcn_00001b98 ();
                                                 | label_0:
    0x00003962 ldr r3, [pc, 0x34]                |     
    0x00003964 movw r2, 0x29d                    |     r2 = 0x29d;
    0x00003968 ldr r1, [pc, 0x30]                |     
    0x0000396a ldr r0, [pc, 0x34]                |     
    0x0000396c add r3, pc                        |     r3 = 0x730a;
    0x0000396e add r1, pc                        |     r1 = 0x730e;
    0x00003970 adds r3, 0x3c                     |     r3 += 0x3c;
    0x00003972 add r0, pc                        |     r0 = 0x7318;
    0x00003974 blx 0x1e28                        |     fcn_00001e28 ();
                                                 | label_1:
    0x00003978 blx 0x1dec                        |     fcn_00001dec ();
    0x0000397c strb r0, [r4, 0x16]               |     var_16h = r0;
    0x0000397e movs r0, r0                       |     
    0x00003980 lsls r0, r1, 5                    |     r0 = r1 << 5;
    0x00003982 movs r0, r0                       |     
    0x00003984 ldrb r4, [r7, 0x10]               |     r4 = *((r7 + 0x10));
    0x00003986 movs r0, r0                       |     
    0x00003988 strb r0, [r3, 0x15]               |     *((r3 + 0x15)) = r0;
    0x0000398a movs r0, r0                       |     
    0x0000398c ldr r7, [pc, 0x2f8]               |     r7 = *(0x3c88);
    0x0000398e movs r0, r0                       |     
    0x00003990 ldr r7, [pc, 0xc0]                |     r7 = *(0x3a54);
    0x00003992 movs r0, r0                       |     
    0x00003994 ldr r7, [pc, 0x1f0]               |     r7 = *(0x3b88);
    0x00003996 movs r0, r0                       |     
    0x00003998 ldr r7, [pc, 0x290]               |     r7 = *(0x3c2c);
    0x0000399a movs r0, r0                       |     
    0x0000399c ldr r7, [pc, 0x58]                |     r7 = *(0x39f8);
    0x0000399e movs r0, r0                       |     
    0x000039a0 ldr r7, [pc, 0x188]               |     r7 = *(0x3b2c);
    0x000039a2 movs r0, r0                       |     
                                                 | }
    ; 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-common.so.1.0.0 @ 0x34e4 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.lttng_ust_urcu_register ()                   | void lttng_ust_urcu_register () {
                                                             |     int16_t var_0h;
                                                             |     int16_t var_14h;
                                                             |     int16_t var_94h;
                                                             |     int16_t var_114h;
    0x000034e4 blmi 0xfe255f0c                               |     __asm ("blmi aav.0x0000799e");
    0x000034e8 push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x000034ec sub sp, 0x118                                 |     
    0x000034ee add r2, pc                                    |     r2 += pc;
    0x000034f0 add r4, sp, 0x14                              |     r4 += var_14h;
    0x000034f2 mov r0, r4                                    |     r0 = r4;
    0x000034f4 ldr r3, [r2, r3]                              |     r3 = *((r2 + r3));
    0x000034f6 ldr r3, [r3]                                  |     r3 = *(r3);
    0x000034f8 str r3, [sp, 0x114]                           |     var_114h = r3;
    0x000034fa mov.w r3, 0                                   |     r3 = 0;
    0x000034fe blx 0x1cd4                                    |     r0 = errno_location ();
    0x00003502 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00003504 bne 0x35e0                                    |         goto label_3;
                                                             |     }
    0x00003506 add r5, sp, 0x94                              |     r5 += var_94h;
    0x00003508 mov r1, r4                                    |     r1 = r4;
    0x0000350a mov r2, r5                                    |     r2 = r5;
    0x0000350c blx 0x1d28                                    |     r0 = fprintf_chk ()
    0x00003510 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00003512 bne 0x35e0                                    |         goto label_3;
                                                             |     }
    0x00003514 ldr r0, [pc, 0x1e8]                           |     
    0x00003516 add r0, pc                                    |     r0 = 0x6c1a;
    0x00003518 blx 0x1db8                                    |     r0 = fcn_00001db8 ();
    0x0000351c ldr r3, [r0]                                  |     r3 = *(0x6c1a);
                                                             |     if (r3 != 0) {
    0x0000351e cbz r3, 0x354a                                |         
                                                             | label_4:
    0x00003520 movs r2, 0                                    |         r2 = 0;
    0x00003522 mov r1, r5                                    |         r1 = r5;
    0x00003524 movs r0, 2                                    |         r0 = 2;
    0x00003526 blx 0x1d28                                    |         r0 = fprintf_chk ()
    0x0000352a cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0000352c bne 0x35e0                                    |             goto label_3;
                                                             |         }
    0x0000352e ldr r2, [pc, 0x1e0]                           |         
    0x00003530 ldr r3, [pc, 0x1d8]                           |         r3 = *(0x370c);
    0x00003532 add r2, pc                                    |         r2 = 0x6c48;
    0x00003534 ldr r3, [r2, r3]                              |         r3 = *(0x6c48);
    0x00003536 ldr r2, [r3]                                  |         r2 = *(0x6c48);
    0x00003538 ldr r3, [sp, 0x114]                           |         r3 = var_114h;
    0x0000353a eors r2, r3                                   |         r2 ^= r3;
    0x0000353c mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x00003540 bne.w 0x36d0                                  |             goto label_6;
                                                             |         }
    0x00003544 add sp, 0x118                                 |         
    0x00003546 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
                                                             |     }
    0x0000354a bl 0x1ed4                                     |     entry_init1 (r0, r1);
    0x0000354e ldr r0, [pc, 0x1c4]                           |     
    0x00003550 add r0, pc                                    |     r0 = 0x6c6a;
    0x00003552 blx 0x1b38                                    |     r0 = fcn_00001b38 ();
    0x00003556 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00003558 bne 0x35e0                                    |         goto label_3;
                                                             |     }
    0x0000355a ldr r3, [pc, 0x1bc]                           |     
    0x0000355c add r3, pc                                    |     r3 = 0x6c7a;
    0x0000355e ldr r6, [r3, 8]!                              |     r6 = *(0x6c82);
    0x00003562 cmp r6, r3                                    |     
    0x00003564 sub.w r1, r6, 8                               |     r1 = r6 - 8;
                                                             |     if (r6 == r3) {
    0x00003568 beq 0x358a                                    |         goto label_7;
                                                             |     }
                                                             | label_0:
    0x0000356a ldr.w ip, [pc, 0x1b0]                         |     
    0x0000356e add ip, pc                                    |     ip = 0x6c90;
    0x00003570 add.w ip, ip, 8                               |     
                                                             |     do {
    0x00003574 ldrd r3, r2, [r1]                             |         __asm ("ldrd r3, r2, [r1]");
    0x00003578 subs r2, r3, r2                               |         r2 = r3 - r2;
    0x0000357a cmp r2, 0x7f                                  |         
                                                             |         if (r2 > 0x7f) {
    0x0000357c bhi 0x35e4                                    |             goto label_8;
                                                             |         }
                                                             | label_1:
    0x0000357e ldr r3, [r1, 8]                               |         r3 = *((r1 + 8));
    0x00003580 cmp r3, ip                                    |         
    0x00003582 sub.w r1, r3, 8                               |         r1 = r3 - 8;
    0x00003586 bne 0x3574                                    |         
                                                             |     } while (r3 != ip);
                                                             |     if (r0 != 0) {
    0x00003588 cbnz r0, 0x35e0                               |         goto label_3;
                                                             |     }
                                                             | label_7:
    0x0000358a ldr r7, [pc, 0x194]                           |     
    0x0000358c add r7, pc                                    |     r7 = 0x6cb2;
    0x0000358e add.w sb, r7, 8                               |     sb = r7 + 8;
    0x00003592 cmp r6, sb                                    |     
                                                             |     if (r6 == sb) {
    0x00003594 beq 0x3650                                    |         goto label_9;
                                                             |     }
    0x00003596 ldr.w r8, [r7, 0xc]                           |     r8 = *((r7 + 0xc));
    0x0000359a movs r3, 0                                    |     r3 = 0;
    0x0000359c ldr r4, [r8, -0x8]                            |     r4 = *((r8 - 0x8));
    0x000035a0 sub.w sl, r8, 8                               |     sl = r8 - 8;
    0x000035a4 mov r0, sl                                    |     r0 = sl;
    0x000035a6 adds r4, 0x10                                 |     r4 += 0x10;
    0x000035a8 lsls r6, r4, 1                                |     r6 = r4 << 1;
    0x000035aa mov r1, r4                                    |     r1 = r4;
    0x000035ac mov r2, r6                                    |     r2 = r6;
    0x000035ae blx 0x1dac                                    |     r0 = tls_get_addr ();
    0x000035b2 adds r2, r0, 1                                |     r2 = r0 + 1;
                                                             |     if (r2 == r0) {
    0x000035b4 beq 0x3694                                    |         goto label_10;
                                                             |     }
    0x000035b6 cmp sl, r0                                    |     
                                                             |     if (sl != r0) {
    0x000035b8 bne.w 0x36d4                                  |         goto label_11;
                                                             |     }
    0x000035bc subs r2, r6, r4                               |     r2 = r6 - r4;
    0x000035be add.w r0, sl, r4                              |     r0 = sl + r4;
    0x000035c2 movs r1, 0                                    |     r1 = 0;
    0x000035c4 subs r6, 0x10                                 |     r6 -= 0x10;
    0x000035c6 blx 0x1d04                                    |     write (r0, r1, r2);
    0x000035ca str r6, [r8, -0x8]                            |     *((r8 - 0x8)) = r6;
                                                             | label_5:
    0x000035ce ldr r3, [pc, 0x154]                           |     
    0x000035d0 movs r0, 1                                    |     r0 = 1;
    0x000035d2 add r3, pc                                    |     r3 = 0x6cfc;
    0x000035d4 ldr r6, [r3, 8]!                              |     r6 = *(0x6d04);
    0x000035d8 cmp r6, r3                                    |     
    0x000035da sub.w r1, r6, 8                               |     r1 = r6 - 8;
                                                             |     if (r6 != r3) {
    0x000035de bne 0x356a                                    |         goto label_0;
                                                             |     }
                                                             | label_3:
    0x000035e0 blx 0x1dec                                    |     fcn_00001dec ();
                                                             | label_8:
    0x000035e4 adds r3, 0x10                                 |     r3 += 0x10;
    0x000035e6 add.w r4, r1, 0x10                            |     r4 = r1 + 0x10;
    0x000035ea add r3, r1                                    |     r3 += r1;
    0x000035ec cmp r4, r3                                    |     
                                                             |     if (r4 <= r3) {
    0x000035ee blo 0x35f8                                    |         goto label_12;
                                                             |     }
    0x000035f0 b 0x357e                                      |     goto label_1;
                                                             | label_2:
    0x000035f2 adds r4, 0x80                                 |     r4 += 0x80;
    0x000035f4 cmp r4, r3                                    |     
                                                             |     if (r4 >= r3) {
    0x000035f6 bhs 0x357e                                    |         goto label_1;
                                                             |     }
                                                             | label_12:
    0x000035f8 ldr r2, [r4, 0x4c]                            |     r2 = *((r4 + 0x4c));
    0x000035fa cmp r2, 0                                     |     
                                                             |     if (r2 != 0) {
    0x000035fc bne 0x35f2                                    |         goto label_2;
                                                             |     }
    0x000035fe movs r3, 1                                    |     r3 = 1;
    0x00003600 ldr r6, [pc, 0x124]                           |     
    0x00003602 str r3, [r4, 0x4c]                            |     *((r4 + 0x4c)) = r3;
    0x00003604 ldr r3, [r1, 4]                               |     r3 = *((r1 + 4));
    0x00003606 add r6, pc                                    |     r6 = 0x6d32;
    0x00003608 ldr r0, [r6, 0x4c]                            |     r0 = *(0x6d7e);
    0x0000360a adds r3, 0x80                                 |     r3 += 0x80;
    0x0000360c str r3, [r1, 4]                               |     *((r1 + 4)) = r3;
    0x0000360e mov r1, r4                                    |     r1 = r4;
    0x00003610 blx 0x1e1c                                    |     r0 = fcn_00001e1c ();
    0x00003614 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00003616 bne 0x35e0                                    |         goto label_3;
                                                             |     }
    0x00003618 blx 0x1b50                                    |     fcn_00001b50 ();
    0x0000361c ldr r3, [r4]                                  |     r3 = *(r4);
    0x0000361e str r0, [r4, 0x48]                            |     *((r4 + 0x48)) = r0;
    0x00003620 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00003622 bne 0x36ea                                    |         goto label_13;
                                                             |     }
    0x00003624 ldr r3, [pc, 0x104]                           |     
    0x00003626 add.w r1, r4, 0x40                            |     r1 = r4 + 0x40;
    0x0000362a ldr r0, [pc, 0xd8]                            |     
    0x0000362c add r3, pc                                    |     r3 = 0x6d5c;
    0x0000362e ldr r2, [r3]                                  |     r2 = *(0x6d5c);
    0x00003630 add r0, pc                                    |     r0 = 0x6d3a;
    0x00003632 str r1, [r3]                                  |     *(r3) = r1;
    0x00003634 str r1, [r2, 4]                               |     *((r2 + 4)) = r1;
    0x00003636 strd r2, r3, [r4, 0x40]                       |     __asm ("strd r2, r3, [r4, 0x40]");
    0x0000363a blx 0x1db8                                    |     r0 = fcn_00001db8 ();
    0x0000363e mov r3, r0                                    |     r3 = r0;
    0x00003640 mov r0, r6                                    |     r0 = r6;
    0x00003642 str r4, [r3]                                  |     *(r3) = r4;
    0x00003644 blx 0x1aa4                                    |     r0 = fcn_00001aa4 ();
    0x00003648 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0000364a beq.w 0x3520                                  |         goto label_4;
                                                             |     }
    0x0000364e b 0x35e0                                      |     goto label_3;
                                                             | label_9:
    0x00003650 vmov.i32 d16, 0                               |     __asm ("vmov.i32 d16, 0");
    0x00003654 mov.w r2, -1                                  |     r2 = -1;
    0x00003658 mov.w r1, 0x410                               |     r1 = 0x410;
    0x0000365c str r2, [sp]                                  |     *(sp) = r2;
    0x0000365e movs r3, 0x22                                 |     r3 = 0x22;
    0x00003660 movs r2, 3                                    |     r2 = 3;
    0x00003662 movs r0, 0                                    |     r0 = 0;
    0x00003664 vstr d16, [sp, 8]                             |     __asm ("vstr d16, [sp, 8]");
    0x00003668 blx 0x1b74                                    |     r0 = fcn_00001b74 ();
    0x0000366c adds r1, r0, 1                                |     r1 = r0 + 1;
    0x0000366e mov r4, r0                                    |     r4 = r0;
                                                             |     if (r1 == r0) {
    0x00003670 beq 0x35e0                                    |         goto label_3;
                                                             |     }
    0x00003672 mov.w r2, 0x410                               |     r2 = 0x410;
    0x00003676 movs r1, 0                                    |     r1 = 0;
    0x00003678 blx 0x1d04                                    |     write (r0, r1, r2);
    0x0000367c mov r3, r4                                    |     r3 = r4;
    0x0000367e mov.w r2, 0x400                               |     r2 = 0x400;
    0x00003682 str r2, [r3], 8                               |     *(r3) = r2;
                                                             |     r3 += 8;
    0x00003686 ldr r2, [r7, 0xc]                             |     r2 = *((r7 + 0xc));
    0x00003688 str r3, [r2]                                  |     *(r2) = r3;
    0x0000368a ldr r2, [r7, 0xc]                             |     r2 = *((r7 + 0xc));
    0x0000368c str r6, [r4, 8]                               |     *((r4 + 8)) = r6;
    0x0000368e str r3, [r7, 0xc]                             |     *((r7 + 0xc)) = r3;
    0x00003690 str r2, [r4, 0xc]                             |     *((r4 + 0xc)) = r2;
    0x00003692 b 0x35ce                                      |     goto label_5;
                                                             | label_10:
    0x00003694 vmov.i32 d16, 0                               |     __asm ("vmov.i32 d16, 0");
    0x00003698 movs r3, 0x22                                 |     r3 = 0x22;
    0x0000369a str r0, [sp]                                  |     *(sp) = r0;
    0x0000369c movs r2, 3                                    |     r2 = 3;
    0x0000369e mov r1, r6                                    |     r1 = r6;
    0x000036a0 movs r0, 0                                    |     r0 = 0;
    0x000036a2 vstr d16, [sp, 8]                             |     __asm ("vstr d16, [sp, 8]");
    0x000036a6 blx 0x1b74                                    |     r0 = fcn_00001b74 ();
    0x000036aa adds r3, r0, 1                                |     r3 = r0 + 1;
    0x000036ac mov r4, r0                                    |     r4 = r0;
                                                             |     if (r3 == r0) {
    0x000036ae beq 0x35e0                                    |         goto label_3;
                                                             |     }
    0x000036b0 mov r2, r6                                    |     r2 = r6;
    0x000036b2 movs r1, 0                                    |     r1 = 0;
    0x000036b4 blx 0x1d04                                    |     write (r0, r1, r2);
    0x000036b8 subs r6, 0x10                                 |     r6 -= 0x10;
    0x000036ba mov r3, r4                                    |     r3 = r4;
    0x000036bc str r6, [r3], 8                               |     *(r3) = r6;
                                                             |     r3 += 8;
    0x000036c0 ldr r2, [r7, 0xc]                             |     r2 = *((r7 + 0xc));
    0x000036c2 str r3, [r2]                                  |     *(r2) = r3;
    0x000036c4 ldr r2, [r7, 0xc]                             |     r2 = *((r7 + 0xc));
    0x000036c6 str.w sb, [r4, 8]                             |     __asm ("str.w sb, [r4, 8]");
    0x000036ca str r3, [r7, 0xc]                             |     *((r7 + 0xc)) = r3;
    0x000036cc str r2, [r4, 0xc]                             |     *((r4 + 0xc)) = r2;
    0x000036ce b 0x35ce                                      |     goto label_5;
                                                             | label_6:
    0x000036d0 blx 0x1b98                                    |     fcn_00001b98 ();
                                                             | label_11:
    0x000036d4 ldr r3, [pc, 0x58]                            |     
    0x000036d6 movw r2, 0x18b                                |     r2 = 0x18b;
    0x000036da ldr r1, [pc, 0x58]                            |     
    0x000036dc ldr r0, [pc, 0x58]                            |     
    0x000036de add r3, pc                                    |     r3 = 0x6e12;
    0x000036e0 add r1, pc                                    |     r1 = 0x6e1a;
    0x000036e2 adds r3, 0x20                                 |     r3 += 0x20;
    0x000036e4 add r0, pc                                    |     r0 = 0x6e20;
    0x000036e6 blx 0x1e28                                    |     fcn_00001e28 ();
                                                             | label_13:
    0x000036ea ldr r3, [pc, 0x50]                            |     
    0x000036ec mov.w r2, 0x1d2                               |     r2 = 0x1d2;
    0x000036f0 ldr r1, [pc, 0x4c]                            |     
    0x000036f2 ldr r0, [pc, 0x50]                            |     
    0x000036f4 add r3, pc                                    |     r3 = 0x6e36;
    0x000036f6 add r1, pc                                    |     r1 = 0x6e3a;
    0x000036f8 adds r3, 0x30                                 |     r3 += 0x30;
    0x000036fa add r0, pc                                    |     r0 = 0x6e44;
    0x000036fc blx 0x1e28                                    |     fcn_00001e28 ();
    0x00003700 ldrb r2, [r3, 0xb]                            |     r2 = *((r3 + 0xb));
    0x00003702 movs r0, r0                                   |     
    0x00003704 ldrb r0, [r0, 7]                              |     r0 = *((r0 + 7));
    0x00003706 movs r0, r0                                   |     
    0x00003708 ldrb r6, [r3, 6]                              |     r6 = *((r3 + 6));
    0x0000370a movs r0, r0                                   |     
    0x0000370c lsls r0, r1, 5                                |     r0 = r1 << 5;
    0x0000370e movs r0, r0                                   |     
    0x00003710 ldrb r2, [r3, 5]                              |     r2 = *((r3 + 5));
    0x00003712 movs r0, r0                                   |     
    0x00003714 ldrb r4, [r7, 0x1f]                           |     r4 = *((r7 + 0x1f));
    0x00003716 movs r0, r0                                   |     
    0x00003718 ldrb r0, [r4, 0xc]                            |     r0 = *((r4 + 0xc));
    0x0000371a movs r0, r0                                   |     
    0x0000371c ldrb r6, [r1, 0xc]                            |     r6 = *((r1 + 0xc));
    0x0000371e movs r0, r0                                   |     
    0x00003720 ldrb r0, [r6, 0xb]                            |     r0 = *((r6 + 0xb));
    0x00003722 movs r0, r0                                   |     
    0x00003724 ldrb r2, [r5, 0xa]                            |     r2 = *((r5 + 0xa));
    0x00003726 movs r0, r0                                   |     
    0x00003728 ldrb r6, [r0, 0x1d]                           |     r6 = *((r0 + 0x1d));
    0x0000372a movs r0, r0                                   |     
    0x0000372c ldrb r0, [r2, 9]                              |     r0 = *((r2 + 9));
    0x0000372e movs r0, r0                                   |     
    0x00003730 strh r2, [r6, r0]                             |     *((r6 + r0)) = r2;
    0x00003732 movs r0, r0                                   |     
    0x00003734 str r4, [r4, r6]                              |     *((r4 + r6)) = r4;
    0x00003736 movs r0, r0                                   |     
    0x00003738 str r0, [r7, r7]                              |     *((r7 + r7)) = r0;
    0x0000373a movs r0, r0                                   |     
    0x0000373c strh r4, [r3, r0]                             |     *((r3 + r0)) = r4;
    0x0000373e movs r0, r0                                   |     
    0x00003740 str r6, [r1, r6]                              |     *((r1 + r6)) = r6;
    0x00003742 movs r0, r0                                   |     
    0x00003744 str r2, [r7, r7]                              |     *((r7 + r7)) = r2;
    0x00003746 movs r0, r0                                   |     
                                                             | }
    ; 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-common.so.1.0.0 @ 0x37c8 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.lttng_ust_urcu_register_thread ()        | void lttng_ust_urcu_register_thread () {
                                                         |     if (? >= ?) {
    0x000037c8 strlt r4, [r8, -0x805]                    |         *((r8 - 0x805)) = r4;
                                                         |     }
    0x000037cc add r0, pc                                |     r0 += pc;
    0x000037ce blx 0x1db8                                |     r0 = fcn_00001db8 ();
    0x000037d2 ldr r3, [r0]                              |     r3 = *(r0);
                                                         |     if (r3 != 0) {
    0x000037d4 cbz r3, 0x37d8                            |         
    0x000037d6 pop {r3, pc}                              |         
                                                         |     }
    0x000037d8 pop.w {r3, lr}                            |     
    0x000037dc b.w 0x1dd0                                |     return void (*0x1dd0)() ();
                                                         | }
    ; 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-common.so.1.0.0 @ 0x32d4 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.lttng_ust_urcu_synchronize_rcu ()        | void lttng_ust_urcu_synchronize_rcu () {
                                                         |     int16_t var_0h;
                                                         |     int16_t var_8h;
                                                         |     int32_t var_4h;
                                                         |     int8_t var_eh;
                                                         |     int16_t var_10h;
                                                         |     int16_t var_14h;
                                                         |     int8_t var_14h_2;
                                                         |     int16_t var_94h;
                                                         |     int16_t var_114h;
    0x000032d4 ldr r2, [pc, 0x180]                       |     
    0x000032d6 ldr r3, [pc, 0x184]                       |     r3 = *(0x345e);
    0x000032d8 push.w {r4, r5, r6, r7, r8, sb, lr}       |     
    0x000032dc sub sp, 0x11c                             |     
    0x000032de add r2, pc                                |     r2 = 0x673a;
    0x000032e0 add r4, sp, 8                             |     r4 += var_8h;
    0x000032e2 mov r5, sp                                |     r5 = sp;
    0x000032e4 add r7, sp, 0x14                          |     r7 += var_14h;
    0x000032e6 ldr r3, [r2, r3]                          |     
    0x000032e8 mov r0, r7                                |     r0 = r7;
    0x000032ea ldr r6, [pc, 0x174]                       |     
    0x000032ec vdup.32 d17, r5                           |     __asm ("vdup.32 d17, r5");
    0x000032f0 vdup.32 d16, r4                           |     __asm ("vdup.32 d16, r4");
    0x000032f4 ldr r3, [r3]                              |     r3 = *(0x673a);
    0x000032f6 str r3, [sp, 0x114]                       |     var_114h = r3;
    0x000032f8 mov.w r3, 0                               |     r3 = 0;
    0x000032fc add r6, pc                                |     r6 = 0x6762;
    0x000032fe vstr d17, [sp]                            |     __asm ("vstr d17, [sp]");
    0x00003302 vstr d16, [sp, 8]                         |     __asm ("vstr d16, [sp, 8]");
    0x00003306 blx 0x1cd4                                |     r0 = errno_location ();
    0x0000330a cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x0000330c bne.w 0x343c                              |         goto label_1;
                                                         |     }
    0x00003310 mov r1, r7                                |     r1 = r7;
    0x00003312 add r7, sp, 0x94                          |     r7 += var_94h;
    0x00003314 mov r2, r7                                |     r2 = r7;
    0x00003316 blx 0x1d28                                |     r0 = fprintf_chk ()
    0x0000331a cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x0000331c bne.w 0x3428                              |         goto label_2;
                                                         |     }
    0x00003320 ldr.w r8, [pc, 0x140]                     |     
    0x00003324 add r8, pc                                |     r8 = 0x678c;
    0x00003326 add.w r0, r8, 0x18                        |     r0 = r8 + 0x18;
    0x0000332a blx 0x1b38                                |     r0 = fcn_00001b38 ();
    0x0000332e cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x00003330 bne.w 0x3454                              |         goto label_3;
                                                         |     }
    0x00003334 mov r0, r8                                |     r0 = r8;
    0x00003336 blx 0x1b38                                |     r0 = fcn_00001b38 ();
    0x0000333a mov r2, r0                                |     r2 = r0;
    0x0000333c cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x0000333e bne.w 0x3454                              |         goto label_3;
                                                         |     }
    0x00003342 ldr r3, [pc, 0x124]                       |     
    0x00003344 add r3, pc                                |     r3 = 0x67b2;
    0x00003346 ldr r1, [r3]                              |     r1 = *(0x67b2);
    0x00003348 cmp r1, r3                                |     
                                                         |     if (r1 == r3) {
    0x0000334a beq 0x33c8                                |         goto label_0;
                                                         |     }
    0x0000334c ldr r3, [pc, 0x11c]                       |     r3 = *(0x346c);
    0x0000334e ldr.w sb, [r6, r3]                        |     sb = *((r6 + r3));
    0x00003352 ldr.w r3, [sb]                            |     r3 = *(sb);
    0x00003356 cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x00003358 beq 0x3408                                |         goto label_4;
                                                         |     }
    0x0000335a movs r1, 8                                |     r1 = 8;
    0x0000335c movw r0, 0x185                            |     r0 = 0x185;
    0x00003360 blx 0x1ca4                                |     r0 = strtoul (r0, r1, r2);
    0x00003364 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x00003366 bne 0x3454                                |         goto label_3;
                                                         |     }
                                                         |     do {
    0x00003368 ldr.w r8, [pc, 0x104]                     |         
    0x0000336c mov r2, r4                                |         r2 = r4;
    0x0000336e mov r1, r5                                |         r1 = r5;
    0x00003370 add r8, pc                                |         r8 = 0x67e4;
    0x00003372 mov r0, r8                                |         r0 = r8;
    0x00003374 bl 0x3200                                 |         fcn_00003200 (r0, r1, r2);
    0x00003378 dmb ish                                   |         __asm ("dmb ish");
    0x0000337c ldr r3, [pc, 0xf4]                        |         r3 = *(0x3474);
    0x0000337e ldr r2, [r6, r3]                          |         r2 = *((r6 + r3));
    0x00003380 ldr r3, [r2]                              |         r3 = *(r2);
    0x00003382 eor r3, r3, 0x10000                       |         r3 ^= 0x10000;
    0x00003386 str r3, [r2]                              |         *(r2) = r3;
    0x00003388 dmb ish                                   |         __asm ("dmb ish");
    0x0000338c movs r1, 0                                |         r1 = 0;
    0x0000338e mov r0, r5                                |         r0 = r5;
    0x00003390 mov r2, r4                                |         r2 = r4;
    0x00003392 bl 0x3200                                 |         fcn_00003200 (r0, r1, r2);
    0x00003396 ldr r3, [r4]                              |         r3 = *(r4);
    0x00003398 cmp r3, r4                                |         
                                                         |         if (r3 != r4) {
    0x0000339a beq 0x33b2                                |             
    0x0000339c str.w r8, [r3, 4]                         |             __asm ("str.w r8, [r3, 4]");
    0x000033a0 ldr.w r3, [r8]                            |             r3 = *(r8);
    0x000033a4 ldr r2, [r4, 4]                           |             r2 = var_4h;
    0x000033a6 str r3, [r2]                              |             *(r2) = r3;
    0x000033a8 ldr r2, [r4, 4]                           |             r2 = var_4h;
    0x000033aa str r2, [r3, 4]                           |             *((r3 + 4)) = r2;
    0x000033ac ldr r3, [r4]                              |             r3 = *(r4);
    0x000033ae str.w r3, [r8]                            |             __asm ("str.w r3, [r8]");
                                                         |         }
    0x000033b2 ldr.w r3, [sb]                            |         r3 = *(sb);
                                                         |         if (r3 == 0) {
    0x000033b6 cbz r3, 0x340e                            |             goto label_5;
                                                         |         }
    0x000033b8 movs r2, 0                                |         r2 = 0;
    0x000033ba movs r1, 8                                |         r1 = 8;
    0x000033bc movw r0, 0x185                            |         r0 = 0x185;
    0x000033c0 blx 0x1ca4                                |         r0 = strtoul (r0, r1, r2);
    0x000033c4 cmp r0, 0                                 |         
                                                         |         if (r0 != 0) {
    0x000033c6 bne 0x3454                                |             goto label_3;
                                                         |         }
                                                         | label_0:
    0x000033c8 ldr r4, [pc, 0xac]                        |         
    0x000033ca add r4, pc                                |         r4 = 0x6846;
    0x000033cc mov r0, r4                                |         r0 = r4;
    0x000033ce blx 0x1aa4                                |         r0 = fcn_00001aa4 ();
    0x000033d2 cmp r0, 0                                 |         
                                                         |         if (r0 != 0) {
    0x000033d4 bne 0x3454                                |             goto label_3;
                                                         |         }
    0x000033d6 add.w r0, r4, 0x18                        |         r0 = r4 + 0x18;
    0x000033da blx 0x1aa4                                |         r0 = fcn_00001aa4 ();
    0x000033de mov r2, r0                                |         r2 = r0;
    0x000033e0 cmp r0, 0                                 |         
                                                         |         if (r0 != 0) {
    0x000033e2 bne 0x3454                                |             goto label_3;
                                                         |         }
    0x000033e4 mov r1, r7                                |         r1 = r7;
    0x000033e6 movs r0, 2                                |         r0 = 2;
    0x000033e8 blx 0x1d28                                |         r0 = fprintf_chk ()
                                                         |         if (r0 != 0) {
    0x000033ec cbnz r0, 0x3414                           |             goto label_6;
                                                         |         }
    0x000033ee ldr r2, [pc, 0x8c]                        |         
    0x000033f0 ldr r3, [pc, 0x68]                        |         r3 = *(0x345c);
    0x000033f2 add r2, pc                                |         r2 = 0x6874;
    0x000033f4 ldr r3, [r2, r3]                          |         r3 = *(0x6874);
    0x000033f6 ldr r2, [r3]                              |         r2 = *(0x6874);
    0x000033f8 ldr r3, [sp, 0x114]                       |         r3 = var_114h;
    0x000033fa eors r2, r3                               |         r2 ^= r3;
    0x000033fc mov.w r3, 0                               |         r3 = 0;
                                                         |         if (r2 != r3) {
    0x00003400 bne 0x3450                                |             goto label_7;
                                                         |         }
    0x00003402 add sp, 0x11c                             |         
    0x00003404 pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
                                                         | label_4:
    0x00003408 dmb ish                                   |         __asm ("dmb ish");
    0x0000340c b 0x3368                                  |         
                                                         |     } while (1);
                                                         | label_5:
    0x0000340e dmb ish                                   |     __asm ("dmb ish");
    0x00003412 b 0x33c8                                  |     goto label_0;
                                                         | label_6:
    0x00003414 ldr r3, [pc, 0x68]                        |     
    0x00003416 movw r2, 0x147                            |     r2 = 0x147;
    0x0000341a ldr r1, [pc, 0x68]                        |     
    0x0000341c ldr r0, [pc, 0x68]                        |     
    0x0000341e add r3, pc                                |     r3 = 0x68a2;
    0x00003420 add r1, pc                                |     r1 = 0x68aa;
    0x00003422 add r0, pc                                |     r0 = 0x68ae;
    0x00003424 blx 0x1e28                                |     fcn_00001e28 ();
                                                         | label_2:
    0x00003428 ldr r3, [pc, 0x60]                        |     
    0x0000342a movw r2, 0x105                            |     r2 = 0x105;
    0x0000342e ldr r1, [pc, 0x60]                        |     
    0x00003430 ldr r0, [pc, 0x60]                        |     
    0x00003432 add r3, pc                                |     r3 = 0x68c2;
    0x00003434 add r1, pc                                |     r1 = 0x68ca;
    0x00003436 add r0, pc                                |     r0 = 0x68ce;
    0x00003438 blx 0x1e28                                |     fcn_00001e28 ();
                                                         | label_1:
    0x0000343c ldr r3, [pc, 0x58]                        |     
    0x0000343e movw r2, 0x103                            |     r2 = 0x103;
    0x00003442 ldr r1, [pc, 0x58]                        |     
    0x00003444 ldr r0, [pc, 0x58]                        |     
    0x00003446 add r3, pc                                |     r3 = 0x68e2;
    0x00003448 add r1, pc                                |     r1 = 0x68ea;
    0x0000344a add r0, pc                                |     r0 = 0x68ee;
    0x0000344c blx 0x1e28                                |     fcn_00001e28 ();
                                                         | label_7:
    0x00003450 blx 0x1b98                                |     fcn_00001b98 ();
                                                         | label_3:
    0x00003454 blx 0x1dec                                |     fcn_00001dec ();
    0x00003458 ldrb r6, [r5, 0xe]                        |     r6 = var_eh;
    0x0000345a movs r0, r0                               |     
    0x0000345c lsls r0, r1, 5                            |     r0 = r1 << 5;
    0x0000345e movs r0, r0                               |     
    0x00003460 ldrb r0, [r2, 0xe]                        |     r0 = *((r2 + 0xe));
    0x00003462 movs r0, r0                               |     
    0x00003464 strh r0, [r5, 0x10]                       |     var_10h = r0;
    0x00003466 movs r0, r0                               |     
    0x00003468 ldrb r0, [r7, 0x14]                       |     r0 = var_14h_2;
    0x0000346a movs r0, r0                               |     
    0x0000346c lsls r0, r3, 5                            |     r0 = r3 << 5;
    0x0000346e movs r0, r0                               |     
    0x00003470 ldrb r4, [r1, 0x14]                       |     r4 = *((r1 + 0x14));
    0x00003472 movs r0, r0                               |     
    0x00003474 lsls r4, r5, 5                            |     r4 = r5 << 5;
    0x00003476 movs r0, r0                               |     
    0x00003478 strh r2, [r0, 0xc]                        |     *((r0 + 0xc)) = r2;
    0x0000347a movs r0, r0                               |     
    0x0000347c ldrb r2, [r3, 0xa]                        |     r2 = *((r3 + 0xa));
    0x0000347e movs r0, r0                               |     
    0x00003480 strb r2, [r6, r3]                         |     *((r6 + r3)) = r2;
    0x00003482 movs r0, r0                               |     
    0x00003484 strb r4, [r4, r1]                         |     *((r4 + r1)) = r4;
    0x00003486 movs r0, r0                               |     
    0x00003488 strb r2, [r6, r2]                         |     *((r6 + r2)) = r2;
    0x0000348a movs r0, r0                               |     
    0x0000348c strb r6, [r3, r3]                         |     *((r3 + r3)) = r6;
    0x0000348e movs r0, r0                               |     
    0x00003490 strb r0, [r2, r1]                         |     *((r2 + r1)) = r0;
    0x00003492 movs r0, r0                               |     
    0x00003494 strb r6, [r3, r2]                         |     *((r3 + r2)) = r6;
    0x00003496 movs r0, r0                               |     
    0x00003498 strb r2, [r1, r3]                         |     *((r1 + r3)) = r2;
    0x0000349a movs r0, r0                               |     
    0x0000349c strb r4, [r7, r0]                         |     *((r7 + r0)) = r4;
    0x0000349e movs r0, r0                               |     
    0x000034a0 strb r2, [r1, r2]                         |     *((r1 + r2)) = r2;
    0x000034a2 movs r0, r0                               |     
                                                         | }

[*] Function fprintf used 12 times liblttng-ust-common.so.1.0.0