[*] Binary protection state of liburcu-bp.so.8.0.0

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


[*] Function printf tear down of liburcu-bp.so.8.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/liburcu-bp.so.8.0.0 @ 0x3430 */
                                                             | #include <stdint.h>
                                                             |  
                                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                             |  
    ; (fcn) sym.urcu_bp_after_fork_child ()                  | void urcu_bp_after_fork_child () {
                                                             |     int16_t var_4h_2;
                                                             |     int16_t var_4h;
                                                             |     int16_t var_84h;
    0x00003430 ldr r2, [pc, 0xec]                            |     
    0x00003432 ldr r3, [pc, 0xf0]                            |     r3 = *(0x3526);
    0x00003434 push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x00003438 sub sp, 0x88                                  |     
    0x0000343a add r2, pc                                    |     r2 = 0x695e;
    0x0000343c ldr.w sb, [pc, 0xe8]                          |     
    0x00003440 ldr r3, [r2, r3]                              |     
    0x00003442 add sb, pc                                    |     sb = 0x696e;
    0x00003444 ldr r3, [r3]                                  |     r3 = *(0x695e);
    0x00003446 str r3, [sp, 0x84]                            |     var_84h = r3;
    0x00003448 mov.w r3, 0                                   |     r3 = 0;
    0x0000344c ldr r3, [sb, 0x10]!                           |     r3 = *(0x697e);
    0x00003450 cmp r3, sb                                    |     
                                                             |     if (r3 == sb) {
    0x00003452 beq 0x34bc                                    |         goto label_1;
                                                             |     }
    0x00003454 sub.w r6, r3, 8                               |     r6 = r3 - 8;
    0x00003458 mvn r8, 0x10                                  |     r8 = ~0x10;
    0x0000345c movs r7, 0                                    |     r7 = 0;
                                                             | label_0:
    0x0000345e ldr r5, [r6]                                  |     r5 = *(r6);
    0x00003460 add.w r3, r6, 0x10                            |     r3 = r6 + 0x10;
    0x00003464 adds r5, 0x10                                 |     r5 += 0x10;
    0x00003466 add r5, r6                                    |     r5 += r6;
    0x00003468 cmp r5, r3                                    |     
                                                             |     if (r5 < r3) {
    0x0000346a bls 0x34b2                                    |         goto label_2;
                                                             |     }
    0x0000346c sub.w r2, r8, r6                              |     r2 = r8 - r6;
    0x00003470 add.w r3, r6, 0x110                           |     r3 = r6 + 0x110;
    0x00003474 add r5, r2                                    |     r5 += r2;
    0x00003476 add.w r4, r6, 0x90                            |     r4 = r6 + 0x90;
    0x0000347a bic r5, r5, 0x7f                              |     r5 = BIT_MASK (r5, 0x7f);
    0x0000347e add r5, r3                                    |     r5 += r3;
                                                             |     do {
    0x00003480 ldr r3, [r4, -0x34]                           |         r3 = *((r4 - 0x34));
                                                             |         if (r3 != 0) {
    0x00003484 cbz r3, 0x34ac                                |             
    0x00003486 ldr sl, [r4, -0x38]                           |             sl = *((r4 - 0x38));
    0x0000348a blx 0x1770                                    |             r0 = fcn_00001770 ();
    0x0000348e cmp sl, r0                                    |             
                                                             |             if (sl == r0) {
    0x00003490 beq 0x34ac                                    |                 goto label_3;
                                                             |             }
    0x00003492 ldrd r2, r3, [r4, -0x40]                      |             __asm ("ldrd r2, r3, [r4, -0x40]");
    0x00003496 str r7, [r4, -0x80]                           |             *((r4 - 0x80)) = r7;
    0x0000349a str r3, [r2, 4]                               |             *((r2 + 4)) = r3;
    0x0000349c str r2, [r3]                                  |             *(r3) = r2;
    0x0000349e str r7, [r4, -0x34]                           |             *((r4 - 0x34)) = r7;
    0x000034a2 ldr r3, [r6, 4]                               |             r3 = *((r6 + 4));
    0x000034a4 str r7, [r4, -0x38]                           |             *((r4 - 0x38)) = r7;
    0x000034a8 subs r3, 0x80                                 |             r3 -= 0x80;
    0x000034aa str r3, [r6, 4]                               |             *((r6 + 4)) = r3;
                                                             |         }
                                                             | label_3:
    0x000034ac adds r4, 0x80                                 |         r4 += 0x80;
    0x000034ae cmp r4, r5                                    |         
    0x000034b0 bne 0x3480                                    |         
                                                             |     } while (r4 != r5);
                                                             | label_2:
    0x000034b2 ldr r3, [r6, 8]                               |     r3 = *((r6 + 8));
    0x000034b4 cmp r3, sb                                    |     
    0x000034b6 sub.w r6, r3, 8                               |     r6 = r3 - 8;
                                                             |     if (r3 != sb) {
    0x000034ba bne 0x345e                                    |         goto label_0;
                                                             |     }
                                                             | label_1:
    0x000034bc ldr r4, [pc, 0x6c]                            |     
    0x000034be add r5, sp, 4                                 |     r5 += var_4h;
    0x000034c0 movs r2, 0x80                                 |     r2 = 0x80;
    0x000034c2 mov r0, r5                                    |     r0 = r5;
    0x000034c4 add r4, pc                                    |     r4 = 0x69f4;
    0x000034c6 add.w r1, r4, 0x88                            |     r1 = r4 + 0x88;
    0x000034ca blx 0x177c                                    |     fcn_0000177c ();
    0x000034ce mov r0, r4                                    |     r0 = r4;
    0x000034d0 bl 0x1cdc                                     |     fcn_00001cdc ();
    0x000034d4 add.w r0, r4, 0x38                            |     r0 = r4 + 0x38;
    0x000034d8 bl 0x1cdc                                     |     fcn_00001cdc ();
    0x000034dc movs r2, 0                                    |     r2 = 0;
    0x000034de mov r1, r5                                    |     r1 = r5;
    0x000034e0 movs r0, 2                                    |     r0 = 2;
    0x000034e2 blx 0x18b8                                    |     r0 = fprintf_chk ()
                                                             |     if (r0 == 0) {
    0x000034e6 cbnz r0, 0x3502                               |         
    0x000034e8 ldr r2, [pc, 0x44]                            |         
    0x000034ea ldr r3, [pc, 0x38]                            |         r3 = *(0x3526);
    0x000034ec add r2, pc                                    |         r2 = 0x6a20;
    0x000034ee ldr r3, [r2, r3]                              |         r3 = *(0x6a20);
    0x000034f0 ldr r2, [r3]                                  |         r2 = *(0x6a20);
    0x000034f2 ldr r3, [sp, 0x84]                            |         r3 = var_84h;
    0x000034f4 eors r2, r3                                   |         r2 ^= r3;
    0x000034f6 mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x000034fa bne 0x351a                                    |             goto label_4;
                                                             |         }
    0x000034fc add sp, 0x88                                  |         
    0x000034fe pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
                                                             |     }
    0x00003502 ldr r3, [pc, 0x30]                            |     
    0x00003504 movw r2, 0x2e5                                |     r2 = 0x2e5;
    0x00003508 ldr r1, [pc, 0x2c]                            |     
    0x0000350a ldr r0, [pc, 0x30]                            |     
    0x0000350c add r3, pc                                    |     
    0x0000350e add r1, pc                                    |     r1 = 0x6a4a;
    0x00003510 add.w r3, r3, 0x1c8                           |     r3 = 0x6c0e;
    0x00003514 add r0, pc                                    |     r0 = 0x6a56;
    0x00003516 blx 0x1990                                    |     fcn_00001990 ();
                                                             | label_4:
    0x0000351a blx 0x17a0                                    |     fcn_000017a0 ();
    0x0000351e nop                                           |     
    0x00003520 subs r2, 0x9a                                 |     r2 -= 0x9a;
    0x00003522 movs r0, r0                                   |     
    0x00003524 lsls r0, r0, 4                                |     r0 <<= 4;
    0x00003526 movs r0, r0                                   |     
    0x00003528 subs r4, 0x3a                                 |     r4 -= 0x3a;
    0x0000352a movs r0, r0                                   |     
    0x0000352c subs r3, 0xe0                                 |     r3 -= 0xe0;
    0x0000352e movs r0, r0                                   |     
    0x00003530 subs r1, 0xe8                                 |     r1 -= 0xe8;
    0x00003532 movs r0, r0                                   |     
    0x00003534 asrs r0, r3, 0x16                             |     r0 = r3 >> 0x16;
    0x00003536 movs r0, r0                                   |     
    0x00003538 asrs r6, r3, 8                                |     r6 = r3 >> 8;
    0x0000353a movs r0, r0                                   |     
    0x0000353c asrs r0, r2, 8                                |     r0 = r2 >> 8;
    0x0000353e 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/liburcu-bp.so.8.0.0 @ 0x33a0 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.urcu_bp_after_fork_parent ()     | void urcu_bp_after_fork_parent () {
                                                 |     int16_t var_4h_2;
                                                 |     int16_t var_84h;
                                                 |     if (? < ?) {
    0x000033a0 addhs r4, r0, 28, 18              |         r4 = r0 + (28 18);
                                                 |     }
    0x000033a4 ldr r3, [pc, 0x70]                |     
    0x000033a6 push {r4, r5, lr}                 |     
    0x000033a8 sub sp, 0x8c                      |     
    0x000033aa ldr r4, [pc, 0x70]                |     
    0x000033ac add r1, pc                        |     r1 += pc;
    0x000033ae add r5, sp, 4                     |     r5 += var_4h_2;
    0x000033b0 ldr r3, [r1, r3]                  |     r3 = *((r1 + r3));
    0x000033b2 mov r0, r5                        |     r0 = r5;
    0x000033b4 add r4, pc                        |     r4 = 0x67d6;
    0x000033b6 add.w r1, r4, 0x88                |     r1 = r4 + 0x88;
    0x000033ba ldr r3, [r3]                      |     r3 = *(0x3418);
    0x000033bc str r3, [sp, 0x84]                |     var_84h = r3;
    0x000033be mov.w r3, 0                       |     r3 = 0;
    0x000033c2 blx 0x177c                        |     fcn_0000177c ();
    0x000033c6 mov r0, r4                        |     r0 = r4;
    0x000033c8 bl 0x1cdc                         |     fcn_00001cdc ();
    0x000033ca stc2 p1, c15, [r8], {4}           |     __asm ("stc2 p1, c15, [r8], {4}");
    0x000033cc add.w r0, r4, 0x38                |     r0 = r4 + 0x38;
    0x000033d0 bl 0x1cdc                         |     fcn_00001cdc ();
    0x000033d4 movs r2, 0                        |     r2 = 0;
    0x000033d6 mov r1, r5                        |     r1 = r5;
    0x000033d8 movs r0, 2                        |     r0 = 2;
    0x000033da blx 0x18b8                        |     r0 = fprintf_chk ()
                                                 |     if (r0 == 0) {
    0x000033de cbnz r0, 0x33f8                   |         
    0x000033e0 ldr r2, [pc, 0x3c]                |         
    0x000033e2 ldr r3, [pc, 0x34]                |         r3 = *(0x341a);
    0x000033e4 add r2, pc                        |         r2 = 0x6808;
    0x000033e6 ldr r3, [r2, r3]                  |         r3 = *(0x6808);
    0x000033e8 ldr r2, [r3]                      |         r2 = *(0x6808);
    0x000033ea ldr r3, [sp, 0x84]                |         r3 = var_84h;
    0x000033ec eors r2, r3                       |         r2 ^= r3;
    0x000033ee mov.w r3, 0                       |         r3 = 0;
                                                 |         if (r2 != r3) {
    0x000033f2 bne 0x3410                        |             goto label_0;
                                                 |         }
    0x000033f4 add sp, 0x8c                      |         
    0x000033f6 pop {r4, r5, pc}                  |         
                                                 |     }
    0x000033f8 ldr r3, [pc, 0x28]                |     
    0x000033fa movw r2, 0x2c1                    |     r2 = 0x2c1;
    0x000033fe ldr r1, [pc, 0x28]                |     
    0x00003400 ldr r0, [pc, 0x28]                |     
    0x00003402 add r3, pc                        |     
    0x00003404 add r1, pc                        |     r1 = 0x6832;
    0x00003406 add.w r3, r3, 0x1ac               |     r3 = 0x69d6;
    0x0000340a add r0, pc                        |     r0 = 0x683a;
    0x0000340c blx 0x1990                        |     fcn_00001990 ();
    0x0000340e invalid                           |     
                                                 | label_0:
    0x00003410 blx 0x17a0                        |     fcn_000017a0 ();
    0x00003414 subs r3, 0x28                     |     r3 -= 0x28;
    0x00003416 movs r0, r0                       |     
    0x00003418 lsls r0, r0, 4                    |     r0 <<= 4;
    0x0000341a movs r0, r0                       |     
    0x0000341c subs r4, 0xf0                     |     r4 -= 0xf0;
    0x0000341e movs r0, r0                       |     
    0x00003420 subs r2, 0xf0                     |     r2 -= 0xf0;
    0x00003422 movs r0, r0                       |     
    0x00003424 asrs r2, r4, 0x1a                 |     r2 = r4 >> 0x1a;
    0x00003426 movs r0, r0                       |     
    0x00003428 asrs r0, r5, 0xc                  |     r0 = r5 >> 0xc;
    0x0000342a movs r0, r0                       |     
    0x0000342c asrs r2, r3, 0xc                  |     r2 = r3 >> 0xc;
    0x0000342e 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/liburcu-bp.so.8.0.0 @ 0x32e4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.urcu_bp_before_fork ()       | void urcu_bp_before_fork () {
                                             |     int16_t var_84h_2;
                                             |     int16_t var_4h;
                                             |     int16_t var_84h_3;
                                             |     int16_t var_104h;
    0x000032e4 blmi 0x955b7c                 |     __asm ("blmi aav.0x00003be8");
    0x000032e8 push {r4, r5, lr}             |     
    0x000032ea sub sp, 0x10c                 |     
    0x000032ec add r2, pc                    |     r2 += pc;
    0x000032ee add r4, sp, 4                 |     r4 += var_4h;
    0x000032f0 mov r0, r4                    |     r0 = r4;
    0x000032f2 ldr r3, [r2, r3]              |     r3 = *((r2 + r3));
    0x000032f4 ldr r3, [r3]                  |     r3 = *(r3);
    0x000032f6 str r3, [sp, 0x104]           |     var_104h = r3;
    0x000032f8 mov.w r3, 0                   |     r3 = 0;
    0x000032fc blx 0x1878                    |     r0 = fcn_00001878 ();
                                             |     if (r0 == 0) {
    0x00003300 cbnz r0, 0x3344               |         
    0x00003302 add r5, sp, 0x84              |         r5 += var_84h_3;
    0x00003304 mov r1, r4                    |         r1 = r4;
    0x00003306 mov r2, r5                    |         r2 = r5;
    0x00003308 blx 0x18b8                    |         r0 = fprintf_chk ()
                                             |         if (r0 != 0) {
    0x0000330c cbnz r0, 0x3360               |             goto label_0;
                                             |         }
    0x0000330e ldr r4, [pc, 0x70]            |         
    0x00003310 add r4, pc                    |         r4 = 0x6696;
    0x00003312 add.w r0, r4, 0x38            |         r0 = r4 + 0x38;
    0x00003316 bl 0x1be0                     |         fcn_00001be0 ();
    0x0000331a mov r0, r4                    |         r0 = r4;
    0x0000331c bl 0x1be0                     |         fcn_00001be0 ();
    0x00003320 movs r2, 0x80                 |         r2 = 0x80;
    0x00003322 mov r1, r5                    |         r1 = r5;
    0x00003324 add.w r0, r4, 0x88            |         r0 = r4 + 0x88;
    0x00003328 blx 0x177c                    |         fcn_0000177c ();
    0x0000332c ldr r2, [pc, 0x54]            |         
    0x0000332e ldr r3, [pc, 0x4c]            |         r3 = *(0x337e);
    0x00003330 add r2, pc                    |         r2 = 0x66b8;
    0x00003332 ldr r3, [r2, r3]              |         r3 = *(0x66b8);
    0x00003334 ldr r2, [r3]                  |         r2 = *(0x66b8);
    0x00003336 ldr r3, [sp, 0x104]           |         r3 = var_104h;
    0x00003338 eors r2, r3                   |         r2 ^= r3;
    0x0000333a mov.w r3, 0                   |         r3 = 0;
                                             |         if (r2 != r3) {
    0x0000333e bne 0x335c                    |             goto label_1;
                                             |         }
    0x00003340 add sp, 0x10c                 |         
    0x00003342 pop {r4, r5, pc}              |         
                                             |     }
    0x00003344 ldr r3, [pc, 0x40]            |     
    0x00003346 mov.w r2, 0x2b0               |     r2 = 0x2b0;
    0x0000334a ldr r1, [pc, 0x40]            |     
    0x0000334c ldr r0, [pc, 0x40]            |     
    0x0000334e add r3, pc                    |     
    0x00003350 add r1, pc                    |     r1 = 0x66e2;
    0x00003352 add.w r3, r3, 0x198           |     r3 = 0x6872;
    0x00003356 add r0, pc                    |     r0 = 0x66ea;
    0x00003358 blx 0x1990                    |     fcn_00001990 ();
                                             | label_1:
    0x0000335c blx 0x17a0                    |     fcn_000017a0 ();
                                             | label_0:
    0x00003360 ldr r3, [pc, 0x30]            |     
    0x00003362 movw r2, 0x2b2                |     r2 = 0x2b2;
    0x00003366 ldr r1, [pc, 0x30]            |     
    0x00003368 ldr r0, [pc, 0x30]            |     
    0x0000336a add r3, pc                    |     
    0x0000336c add r1, pc                    |     r1 = 0x670a;
    0x0000336e add.w r3, r3, 0x198           |     r3 = 0x689a;
    0x00003372 add r0, pc                    |     r0 = 0x6712;
    0x00003374 blx 0x1990                    |     fcn_00001990 ();
    0x00003378 subs r3, 0xe8                 |     r3 -= 0xe8;
    0x0000337a movs r0, r0                   |     
    0x0000337c lsls r0, r0, 4                |     r0 <<= 4;
    0x0000337e movs r0, r0                   |     
    0x00003380 subs r5, 0x94                 |     r5 -= 0x94;
    0x00003382 movs r0, r0                   |     
    0x00003384 subs r3, 0xa4                 |     r3 -= 0xa4;
    0x00003386 movs r0, r0                   |     
    0x00003388 asrs r6, r2, 0x1d             |     r6 = r2 >> 0x1d;
    0x0000338a movs r0, r0                   |     
    0x0000338c asrs r4, r3, 0xf              |     r4 = r3 >> 0xf;
    0x0000338e movs r0, r0                   |     
    0x00003390 asrs r6, r1, 0xf              |     r6 = r1 >> 0xf;
    0x00003392 movs r0, r0                   |     
    0x00003394 asrs r2, r7, 0x1c             |     r2 = r7 >> 0x1c;
    0x00003396 movs r0, r0                   |     
    0x00003398 asrs r0, r0, 0xf              |     r0 >>= 0xf;
    0x0000339a movs r0, r0                   |     
    0x0000339c asrs r2, r6, 0xe              |     r2 = r6 >> 0xe;
    0x0000339e 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/liburcu-bp.so.8.0.0 @ 0x20d4 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.urcu_bp_register_rculfhash_atfork ()     | void urcu_bp_register_rculfhash_atfork (int16_t arg1) {
                                                         |     r0 = arg1;
    0x000020d4 invalid                                   |     
    0x000020d8 bl 0x2060                                 |     fcn_00002060 ();
    0x000020dc ldr r3, [pc, 0x10]                        |     
    0x000020de add r3, pc                                |     r3 = 0x41d2;
    0x000020e0 ldr r2, [r3, 0x30]                        |     r2 = *(0x4202);
    0x000020e2 adds r1, r2, 1                            |     r1 = r2 + 1;
    0x000020e4 str r1, [r3, 0x30]                        |     *((r3 + 0x30)) = r1;
                                                         |     if (r2 == 0) {
    0x000020e6 cbnz r2, 0x20ea                           |         
    0x000020e8 str r4, [r3, 0x34]                        |         *((r3 + 0x34)) = r4;
                                                         |     }
    0x000020ea pop.w {r4, lr}                            |     
    0x000020ee b 0x200c                                  |     return void (*0x200c)() ();
                                                         | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/liburcu-bp.so.8.0.0 @ 0x2800 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.urcu_bp_register ()                          | void urcu_bp_register () {
                                                             |     int16_t var_0h;
                                                             |     int16_t var_14h;
                                                             |     int16_t var_94h;
                                                             |     int16_t var_114h;
    0x00002800 ldr r2, [pc, 0x224]                           |     
    0x00002802 ldr r3, [pc, 0x228]                           |     r3 = *(0x2a2e);
    0x00002804 push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x00002808 sub sp, 0x118                                 |     
    0x0000280a add r2, pc                                    |     r2 = 0x5236;
    0x0000280c add r4, sp, 0x14                              |     r4 += var_14h;
    0x0000280e mov r0, r4                                    |     r0 = r4;
    0x00002810 ldr r3, [r2, r3]                              |     
    0x00002812 ldr r3, [r3]                                  |     r3 = *(0x5236);
    0x00002814 str r3, [sp, 0x114]                           |     var_114h = r3;
    0x00002816 mov.w r3, 0                                   |     r3 = 0;
    0x0000281a blx 0x1878                                    |     r0 = fcn_00001878 ();
    0x0000281e cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00002820 bne 0x28fc                                    |         goto label_3;
                                                             |     }
    0x00002822 add r6, sp, 0x94                              |     r6 += var_94h;
    0x00002824 mov r1, r4                                    |     r1 = r4;
    0x00002826 mov r2, r6                                    |     r2 = r6;
    0x00002828 blx 0x18b8                                    |     r0 = fprintf_chk ()
    0x0000282c mov r5, r0                                    |     r5 = r0;
    0x0000282e cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00002830 bne 0x28fc                                    |         goto label_3;
                                                             |     }
    0x00002832 ldr r0, [pc, 0x1ec]                           |     
    0x00002834 add r0, pc                                    |     r0 = 0x525a;
    0x00002836 blx 0x1948                                    |     r0 = pthread_join (r0, r1);
    0x0000283a ldr r3, [r0]                                  |     r3 = *(0x525a);
                                                             |     if (r3 != 0) {
    0x0000283c cbz r3, 0x2868                                |         
                                                             | label_4:
    0x0000283e movs r2, 0                                    |         r2 = 0;
    0x00002840 mov r1, r6                                    |         r1 = r6;
    0x00002842 movs r0, 2                                    |         r0 = 2;
    0x00002844 blx 0x18b8                                    |         r0 = fprintf_chk ()
    0x00002848 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0000284a bne 0x28fc                                    |             goto label_3;
                                                             |         }
    0x0000284c ldr r2, [pc, 0x1e0]                           |         
    0x0000284e ldr r3, [pc, 0x1dc]                           |         r3 = *(0x2a2e);
    0x00002850 add r2, pc                                    |         r2 = 0x5284;
    0x00002852 ldr r3, [r2, r3]                              |         r3 = *(0x5284);
    0x00002854 ldr r2, [r3]                                  |         r2 = *(0x5284);
    0x00002856 ldr r3, [sp, 0x114]                           |         r3 = var_114h;
    0x00002858 eors r2, r3                                   |         r2 ^= r3;
    0x0000285a mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x0000285e bne.w 0x29ea                                  |             goto label_6;
                                                             |         }
    0x00002862 add sp, 0x118                                 |         
    0x00002864 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
                                                             |     }
    0x00002868 bl 0x1a58                                     |     entry_init1 ();
    0x0000286c ldr r0, [pc, 0x1c4]                           |     
    0x0000286e add r0, pc                                    |     r0 = 0x52a6;
    0x00002870 bl 0x1be0                                     |     fcn_00001be0 ();
    0x00002874 ldr r3, [pc, 0x1c0]                           |     
    0x00002876 add r3, pc                                    |     r3 = 0x52b2;
    0x00002878 ldr r7, [r3, 0x10]!                           |     r7 = *(0x52c2);
    0x0000287c cmp r7, r3                                    |     
    0x0000287e sub.w r1, r7, 8                               |     r1 = r7 - 8;
                                                             |     if (r7 == r3) {
    0x00002882 beq 0x28a4                                    |         goto label_7;
                                                             |     }
                                                             | label_0:
    0x00002884 ldr.w ip, [pc, 0x1b4]                         |     
    0x00002888 add ip, pc                                    |     
    0x0000288a add.w ip, ip, 0x10                            |     ip = 0x52d8;
                                                             |     do {
    0x0000288e ldrd r3, r0, [r1]                             |         __asm ("ldrd r3, r0, [r1]");
    0x00002892 subs r2, r3, r0                               |         r2 = r3 - r0;
    0x00002894 cmp r2, 0x7f                                  |         
                                                             |         if (r2 > 0x7f) {
    0x00002896 bhi 0x2900                                    |             goto label_8;
                                                             |         }
                                                             | label_1:
    0x00002898 ldr r3, [r1, 8]                               |         r3 = *((r1 + 8));
    0x0000289a cmp r3, ip                                    |         
    0x0000289c sub.w r1, r3, 8                               |         r1 = r3 - 8;
    0x000028a0 bne 0x288e                                    |         
                                                             |     } while (r3 != ip);
                                                             |     if (r5 != 0) {
    0x000028a2 cbnz r5, 0x28fc                               |         goto label_3;
                                                             |     }
                                                             | label_7:
    0x000028a4 ldr.w r8, [pc, 0x198]                         |     
    0x000028a8 add r8, pc                                    |     r8 = 0x52ec;
    0x000028aa add.w sb, r8, 0x10                            |     sb = r8 + 0x10;
    0x000028ae cmp r7, sb                                    |     
                                                             |     if (r7 == sb) {
    0x000028b0 beq 0x2968                                    |         goto label_9;
                                                             |     }
    0x000028b2 ldr.w r7, [r8, 0x14]                          |     r7 = *((r8 + 0x14));
    0x000028b6 movs r3, 0                                    |     r3 = 0;
    0x000028b8 ldr r4, [r7, -0x8]                            |     r4 = *((r7 - 0x8));
    0x000028bc sub.w sl, r7, 8                               |     sl = r7 - 8;
    0x000028c0 mov r0, sl                                    |     r0 = sl;
    0x000028c2 adds r4, 0x10                                 |     r4 += 0x10;
    0x000028c4 lsls r5, r4, 1                                |     r5 = r4 << 1;
    0x000028c6 mov r1, r4                                    |     r1 = r4;
    0x000028c8 mov r2, r5                                    |     r2 = r5;
    0x000028ca blx 0x193c                                    |     r0 = tls_get_addr ();
    0x000028ce adds r2, r0, 1                                |     r2 = r0 + 1;
                                                             |     if (r2 == r0) {
    0x000028d0 beq 0x29ae                                    |         goto label_10;
                                                             |     }
    0x000028d2 cmp sl, r0                                    |     
                                                             |     if (sl != r0) {
    0x000028d4 bne.w 0x29ee                                  |         goto label_11;
                                                             |     }
    0x000028d8 subs r2, r5, r4                               |     r2 = r5 - r4;
    0x000028da add.w r0, sl, r4                              |     r0 = sl + r4;
    0x000028de movs r1, 0                                    |     r1 = 0;
    0x000028e0 subs r5, 0x10                                 |     r5 -= 0x10;
    0x000028e2 blx 0x189c                                    |     fcn_0000189c ();
    0x000028e6 str r5, [r7, -0x8]                            |     *((r7 - 0x8)) = r5;
                                                             | label_5:
    0x000028ea ldr r3, [pc, 0x158]                           |     
    0x000028ec movs r5, 1                                    |     r5 = 1;
    0x000028ee add r3, pc                                    |     r3 = 0x5338;
    0x000028f0 ldr r7, [r3, 0x10]!                           |     r7 = *(0x5348);
    0x000028f4 cmp r7, r3                                    |     
    0x000028f6 sub.w r1, r7, 8                               |     r1 = r7 - 8;
                                                             |     if (r7 != r3) {
    0x000028fa bne 0x2884                                    |         goto label_0;
                                                             |     }
                                                             | label_3:
    0x000028fc blx 0x1960                                    |     close (r0);
                                                             | label_8:
    0x00002900 adds r3, 0x10                                 |     r3 += 0x10;
    0x00002902 add.w r4, r1, 0x10                            |     r4 = r1 + 0x10;
    0x00002906 add r3, r1                                    |     r3 += r1;
    0x00002908 cmp r4, r3                                    |     
                                                             |     if (r4 <= r3) {
    0x0000290a blo 0x2914                                    |         goto label_12;
                                                             |     }
    0x0000290c b 0x2898                                      |     goto label_1;
                                                             | label_2:
    0x0000290e adds r4, 0x80                                 |     r4 += 0x80;
    0x00002910 cmp r4, r3                                    |     
                                                             |     if (r4 >= r3) {
    0x00002912 bhs 0x2898                                    |         goto label_1;
                                                             |     }
                                                             | label_12:
    0x00002914 ldr r2, [r4, 0x4c]                            |     r2 = *((r4 + 0x4c));
    0x00002916 cmp r2, 0                                     |     
                                                             |     if (r2 != 0) {
    0x00002918 bne 0x290e                                    |         goto label_2;
                                                             |     }
    0x0000291a ldr r5, [pc, 0x12c]                           |     
    0x0000291c adds r0, 0x80                                 |     r0 += 0x80;
    0x0000291e movs r3, 1                                    |     r3 = 1;
    0x00002920 str r3, [r4, 0x4c]                            |     *((r4 + 0x4c)) = r3;
    0x00002922 add r5, pc                                    |     r5 = 0x5370;
    0x00002924 str r0, [r1, 4]                               |     *((r1 + 4)) = r0;
    0x00002926 ldr r0, [r5, 0x7c]                            |     r0 = *(0x53ec);
    0x00002928 mov r1, r4                                    |     r1 = r4;
    0x0000292a blx 0x1984                                    |     r0 = assert_fail ();
    0x0000292e cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00002930 bne 0x28fc                                    |         goto label_3;
                                                             |     }
    0x00002932 blx 0x1770                                    |     fcn_00001770 ();
    0x00002936 ldr r3, [r4]                                  |     r3 = *(r4);
    0x00002938 str r0, [r4, 0x48]                            |     *((r4 + 0x48)) = r0;
    0x0000293a cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0000293c bne 0x2a06                                    |         goto label_13;
                                                             |     }
    0x0000293e ldr r3, [pc, 0x10c]                           |     
    0x00002940 add.w r7, r4, 0x40                            |     r7 = r4 + 0x40;
    0x00002944 ldr r0, [pc, 0xdc]                            |     
    0x00002946 add r3, pc                                    |     r3 = 0x5398;
    0x00002948 mov r2, r3                                    |     r2 = r3;
    0x0000294a add r0, pc                                    |     r0 = 0x5372;
    0x0000294c ldr r1, [r2, 8]!                              |     r1 = *((r2 += 8));
    0x00002950 str r7, [r3, 8]                               |     *((r3 + 8)) = r7;
    0x00002952 str r7, [r1, 4]                               |     *((r1 + 4)) = r7;
    0x00002954 strd r1, r2, [r4, 0x40]                       |     __asm ("strd r1, r2, [r4, 0x40]");
    0x00002958 blx 0x1948                                    |     r0 = pthread_join (r0, r1);
    0x0000295c mov r3, r0                                    |     r3 = r0;
    0x0000295e mov r0, r5                                    |     r0 = r5;
    0x00002960 str r4, [r3]                                  |     *(r3) = r4;
    0x00002962 bl 0x1cdc                                     |     fcn_00001cdc ();
    0x00002966 b 0x283e                                      |     goto label_4;
                                                             | label_9:
    0x00002968 vmov.i32 d16, 0                               |     __asm ("vmov.i32 d16, 0");
    0x0000296c mov.w r2, -1                                  |     r2 = -1;
    0x00002970 mov.w r1, 0x410                               |     r1 = 0x410;
    0x00002974 str r2, [sp]                                  |     *(sp) = r2;
    0x00002976 movs r3, 0x22                                 |     r3 = 0x22;
    0x00002978 movs r2, 3                                    |     r2 = 3;
    0x0000297a movs r0, 0                                    |     r0 = 0;
    0x0000297c vstr d16, [sp, 8]                             |     __asm ("vstr d16, [sp, 8]");
    0x00002980 blx 0x1788                                    |     r0 = fcn_00001788 ();
    0x00002984 adds r1, r0, 1                                |     r1 = r0 + 1;
    0x00002986 mov r4, r0                                    |     r4 = r0;
                                                             |     if (r1 == r0) {
    0x00002988 beq 0x28fc                                    |         goto label_3;
                                                             |     }
    0x0000298a mov.w r2, 0x410                               |     r2 = 0x410;
    0x0000298e movs r1, 0                                    |     r1 = 0;
    0x00002990 blx 0x189c                                    |     fcn_0000189c ();
    0x00002992 invalid                                       |     
    0x00002996 movs r0, 0x14                                 |     r0 = 0x14;
    0x00002998 mov r3, r4                                    |     r3 = r4;
    0x0000299a mov.w r1, 0x400                               |     r1 = 0x400;
    0x0000299c str r0, [r0, 0x18]                            |     *((r0 + 0x18)) = r0;
    0x0000299e str r1, [r3], 8                               |     *(r3) = r1;
                                                             |     r3 += 8;
    0x000029a2 str r3, [r2]                                  |     *(r2) = r3;
    0x000029a4 strd r7, r2, [r4, 8]                          |     __asm ("strd r7, r2, [r4, 8]");
    0x000029a8 str.w r3, [r8, 0x14]                          |     __asm ("str.w r3, [r8, 0x14]");
    0x000029ac b 0x28ea                                      |     goto label_5;
                                                             | label_10:
    0x000029ae vmov.i32 d16, 0                               |     __asm ("vmov.i32 d16, 0");
    0x000029b2 movs r3, 0x22                                 |     r3 = 0x22;
    0x000029b4 str r0, [sp]                                  |     *(sp) = r0;
    0x000029b6 movs r2, 3                                    |     r2 = 3;
    0x000029b8 mov r1, r5                                    |     r1 = r5;
    0x000029ba movs r0, 0                                    |     r0 = 0;
    0x000029bc vstr d16, [sp, 8]                             |     __asm ("vstr d16, [sp, 8]");
    0x000029c0 blx 0x1788                                    |     r0 = fcn_00001788 ();
    0x000029c4 adds r3, r0, 1                                |     r3 = r0 + 1;
    0x000029c6 mov r4, r0                                    |     r4 = r0;
                                                             |     if (r3 == r0) {
    0x000029c8 beq 0x28fc                                    |         goto label_3;
                                                             |     }
    0x000029ca mov r2, r5                                    |     r2 = r5;
    0x000029cc movs r1, 0                                    |     r1 = 0;
    0x000029ce blx 0x189c                                    |     fcn_0000189c ();
    0x000029d2 ldr.w r2, [r8, 0x14]                          |     r2 = *((r8 + 0x14));
    0x000029d6 mov r3, r4                                    |     r3 = r4;
    0x000029d8 subs r5, 0x10                                 |     r5 -= 0x10;
    0x000029da str r5, [r3], 8                               |     *(r3) = r5;
                                                             |     r3 += 8;
    0x000029de str r3, [r2]                                  |     *(r2) = r3;
    0x000029e0 strd sb, r2, [r4, 8]                          |     __asm ("strd sb, r2, [r4, 8]");
    0x000029e4 str.w r3, [r8, 0x14]                          |     __asm ("str.w r3, [r8, 0x14]");
    0x000029e8 b 0x28ea                                      |     goto label_5;
                                                             | label_6:
    0x000029ea blx 0x17a0                                    |     fcn_000017a0 ();
                                                             | label_11:
    0x000029ee ldr r3, [pc, 0x60]                            |     
    0x000029f0 mov.w r2, 0x1a0                               |     r2 = 0x1a0;
    0x000029f4 ldr r1, [pc, 0x5c]                            |     
    0x000029f6 ldr r0, [pc, 0x60]                            |     
    0x000029f8 add r3, pc                                    |     
    0x000029fa add r1, pc                                    |     r1 = 0x5452;
    0x000029fc add.w r3, r3, 0x120                           |     r3 = 0x556e;
    0x00002a00 add r0, pc                                    |     r0 = 0x545e;
    0x00002a02 blx 0x1990                                    |     fcn_00001990 ();
                                                             | label_13:
    0x00002a06 ldr r3, [pc, 0x54]                            |     
    0x00002a08 movw r2, 0x1e7                                |     r2 = 0x1e7;
    0x00002a0c ldr r1, [pc, 0x50]                            |     
    0x00002a0e ldr r0, [pc, 0x54]                            |     
    0x00002a10 add r3, pc                                    |     
    0x00002a12 add r1, pc                                    |     r1 = 0x5476;
    0x00002a14 add.w r3, r3, 0x130                           |     r3 = 0x55a2;
    0x00002a16 strb r0, [r3, 0xe]                            |     *((r3 + 0xe)) = r0;
    0x00002a18 add r0, pc                                    |     r0 = 0x5482;
    0x00002a1a blx 0x1990                                    |     fcn_00001990 ();
    0x00002a1e nop                                           |     
    0x00002a20 blx r8                                        |     r0 = uint32_t (*r8)(uint32_t, uint32_t) (r1, r0);
    0x00002a22 movs r0, r0                                   |     
    0x00002a24 mov sl, r5                                    |     sl = r5;
    0x00002a26 movs r0, r0                                   |     
    0x00002a28 mov sl, sb                                    |     sl = sb;
    0x00002a2a movs r0, r0                                   |     
    0x00002a2c lsls r0, r0, 4                                |     r0 <<= 4;
    0x00002a2e movs r0, r0                                   |     
    0x00002a30 mov ip, r0                                    |     
    0x00002a32 movs r0, r0                                   |     
    0x00002a34 ldr r0, [pc, 0xd8]                            |     r0 = *(0x2b10);
    0x00002a36 movs r0, r0                                   |     
    0x00002a38 ldr r0, [pc, 0x18]                            |     r0 = *(0x2a54);
    0x00002a3a movs r0, r0                                   |     
    0x00002a3c invalid                                       |     
                                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/liburcu-bp.so.8.0.0 @ 0x2a68 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.urcu_bp_register_thread ()       | void urcu_bp_register_thread () {
                                                 |     do {
    0x00001738 invalid                           |         void (*0x173c)() ();
    0x00002a68 ldr r0, [pc, 0x14]                |         
    0x00002a6a push {r3, lr}                     |         
    0x00002a6c add r0, pc                        |         r0 = 0x54f0;
    0x00002a6e blx 0x1948                        |         r0 = pthread_join (r0, r1);
    0x00002a72 ldr r3, [r0]                      |         r3 = *(0x54f0);
                                                 |         if (r3 != 0) {
    0x00002a74 cbz r3, 0x2a78                    |             
    0x00002a76 pop {r3, pc}                      |             
                                                 |         }
    0x00002a78 pop.w {r3, lr}                    |         
    0x00002a7c b.w 0x1738                        |         
                                                 |     } while (1);
                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/liburcu-bp.so.8.0.0 @ 0x2224 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.urcu_bp_synchronize_rcu ()                   | void urcu_bp_synchronize_rcu () {
                                                             |     int16_t var_0h;
                                                             |     int16_t var_8h;
                                                             |     int32_t var_4h;
                                                             |     int16_t var_14h;
                                                             |     int16_t var_94h;
                                                             |     int16_t var_114h;
    0x00002224 ldr r2, [pc, 0x170]                           |     
    0x00002226 ldr r3, [pc, 0x174]                           |     r3 = *(0x239e);
    0x00002228 push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x0000222c sub sp, 0x118                                 |     
    0x0000222e add r2, pc                                    |     r2 = 0x45ca;
    0x00002230 add r4, sp, 8                                 |     r4 += var_8h;
    0x00002232 mov r6, sp                                    |     r6 = sp;
    0x00002234 add r5, sp, 0x14                              |     r5 += var_14h;
    0x00002236 ldr r3, [r2, r3]                              |     
    0x00002238 mov r0, r5                                    |     r0 = r5;
    0x0000223a ldr r7, [pc, 0x164]                           |     
    0x0000223c vdup.32 d17, r6                               |     __asm ("vdup.32 d17, r6");
    0x00002240 vdup.32 d16, r4                               |     __asm ("vdup.32 d16, r4");
    0x00002244 ldr r3, [r3]                                  |     r3 = *(0x45ca);
    0x00002246 str r3, [sp, 0x114]                           |     var_114h = r3;
    0x00002248 mov.w r3, 0                                   |     r3 = 0;
    0x0000224c add r7, pc                                    |     r7 = 0x45f2;
    0x0000224e vstr d17, [sp]                                |     __asm ("vstr d17, [sp]");
    0x00002252 vstr d16, [sp, 8]                             |     __asm ("vstr d16, [sp, 8]");
    0x00002256 blx 0x1878                                    |     r0 = fcn_00001878 ();
    0x0000225a cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0000225c bne.w 0x237e                                  |         goto label_1;
                                                             |     }
    0x00002260 add.w sb, sp, 0x94                            |     sb += var_94h;
    0x00002264 mov r1, r5                                    |     r1 = r5;
    0x00002266 mov r2, sb                                    |     r2 = sb;
    0x00002268 blx 0x18b8                                    |     r0 = fprintf_chk ()
    0x0000226c mov r5, r0                                    |     r5 = r0;
    0x0000226e cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00002270 bne 0x2368                                    |         goto label_2;
                                                             |     }
    0x00002272 ldr.w r8, [pc, 0x130]                         |     
    0x00002276 add r8, pc                                    |     r8 = 0x4620;
    0x00002278 add.w r0, r8, 0x38                            |     r0 = r8 + 0x38;
    0x0000227c bl 0x1be0                                     |     fcn_00001be0 ();
    0x00002280 mov r0, r8                                    |     r0 = r8;
    0x00002282 bl 0x1be0                                     |     fcn_00001be0 ();
    0x00002286 ldr r3, [pc, 0x120]                           |     
    0x00002288 add r3, pc                                    |     r3 = 0x4636;
    0x0000228a ldr r2, [r3, 8]                               |     r2 = *(0x463e);
    0x0000228c adds r3, 8                                    |     r3 += 8;
    0x0000228e cmp r2, r3                                    |     
                                                             |     if (r2 == r3) {
    0x00002290 beq 0x230a                                    |         goto label_0;
                                                             |     }
    0x00002292 ldr r3, [pc, 0x118]                           |     r3 = *(0x23ae);
    0x00002294 ldr.w r8, [r7, r3]                            |     r8 = *((r7 + r3));
    0x00002298 ldr.w r3, [r8]                                |     r3 = *(r8);
    0x0000229c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0000229e beq 0x2342                                    |         goto label_3;
                                                             |     }
    0x000022a0 mov r2, r5                                    |     r2 = r5;
    0x000022a2 movs r1, 8                                    |     r1 = 8;
    0x000022a4 movw r0, 0x185                                |     r0 = 0x185;
    0x000022a8 blx 0x1854                                    |     r0 = fcn_00001854 ();
    0x000022ac cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000022ae bne 0x234e                                    |         goto label_4;
                                                             |     }
                                                             |     do {
    0x000022b0 ldr r5, [pc, 0xfc]                            |         
    0x000022b2 mov r2, r4                                    |         r2 = r4;
    0x000022b4 mov r1, r6                                    |         r1 = r6;
    0x000022b6 add r5, pc                                    |         r5 = 0x466a;
    0x000022b8 add.w sl, r5, 8                               |         sl = r5 + 8;
    0x000022bc mov r0, sl                                    |         r0 = sl;
    0x000022be bl 0x1d28                                     |         fcn_00001d28 (r0, r1, r2);
    0x000022c2 dmb ish                                       |         __asm ("dmb ish");
    0x000022c6 ldr r3, [pc, 0xec]                            |         r3 = *(0x23b6);
    0x000022c8 ldr r2, [r7, r3]                              |         r2 = *((r7 + r3));
    0x000022ca ldr r3, [r2]                                  |         r3 = *(r2);
    0x000022cc eor r3, r3, 0x10000                           |         r3 ^= 0x10000;
    0x000022d0 str r3, [r2]                                  |         *(r2) = r3;
    0x000022d2 dmb ish                                       |         __asm ("dmb ish");
    0x000022d6 movs r1, 0                                    |         r1 = 0;
    0x000022d8 mov r0, r6                                    |         r0 = r6;
    0x000022da mov r2, r4                                    |         r2 = r4;
    0x000022dc bl 0x1d28                                     |         fcn_00001d28 (r0, r1, r2);
    0x000022de stc2 p8, c6, [r4, -0x8c]!                     |         __asm ("stc2 p8, c6, [r4, -0x8c]!");
    0x000022e2 cmp r3, r4                                    |         
                                                             |         if (r3 != r4) {
    0x000022e4 beq 0x22f6                                    |             
    0x000022e6 str.w sl, [r3, 4]                             |             __asm ("str.w sl, [r3, 4]");
    0x000022ea ldr r3, [r5, 8]                               |             r3 = *((r5 + 8));
    0x000022ec ldr r2, [r4, 4]                               |             r2 = var_4h;
    0x000022ee str r3, [r2]                                  |             *(r2) = r3;
    0x000022f0 str r2, [r3, 4]                               |             *((r3 + 4)) = r2;
    0x000022f2 ldr r3, [r4]                                  |             r3 = *(r4);
    0x000022f4 str r3, [r5, 8]                               |             *((r5 + 8)) = r3;
                                                             |         }
    0x000022f6 ldr.w r3, [r8]                                |         r3 = *(r8);
                                                             |         if (r3 == 0) {
    0x000022fa cbz r3, 0x2348                                |             goto label_5;
                                                             |         }
    0x000022fc movs r2, 0                                    |         r2 = 0;
    0x000022fe movs r1, 8                                    |         r1 = 8;
    0x00002300 movw r0, 0x185                                |         r0 = 0x185;
    0x00002304 blx 0x1854                                    |         r0 = fcn_00001854 ();
                                                             |         if (r0 != 0) {
    0x00002308 cbnz r0, 0x234e                               |             goto label_4;
                                                             |         }
                                                             | label_0:
    0x0000230a ldr r4, [pc, 0xac]                            |         
    0x0000230c add r4, pc                                    |         r4 = 0x46ca;
    0x0000230e mov r0, r4                                    |         r0 = r4;
    0x00002310 bl 0x1cdc                                     |         fcn_00001cdc ();
    0x00002314 add.w r0, r4, 0x38                            |         r0 = r4 + 0x38;
    0x00002316 movs r0, r7                                   |         r0 = r7;
    0x00002318 bl 0x1cdc                                     |         fcn_00001cdc ();
    0x0000231c movs r2, 0                                    |         r2 = 0;
    0x0000231e mov r1, sb                                    |         r1 = sb;
    0x00002320 movs r0, 2                                    |         r0 = 2;
    0x00002322 blx 0x18b8                                    |         r0 = fprintf_chk ()
                                                             |         if (r0 != 0) {
    0x00002326 cbnz r0, 0x2352                               |             goto label_6;
                                                             |         }
    0x00002328 ldr r2, [pc, 0x90]                            |         
    0x0000232a ldr r3, [pc, 0x70]                            |         r3 = *(0x239e);
    0x0000232c add r2, pc                                    |         r2 = 0x46ec;
    0x0000232e ldr r3, [r2, r3]                              |         r3 = *(0x46ec);
    0x00002330 ldr r2, [r3]                                  |         r2 = *(0x46ec);
    0x00002332 ldr r3, [sp, 0x114]                           |         r3 = var_114h;
    0x00002334 eors r2, r3                                   |         r2 ^= r3;
    0x00002336 mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x0000233a bne 0x2394                                    |             goto label_7;
                                                             |         }
    0x0000233c add sp, 0x118                                 |         
    0x0000233e pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
                                                             | label_3:
    0x00002342 dmb ish                                       |         __asm ("dmb ish");
    0x00002346 b 0x22b0                                      |         
                                                             |     } while (1);
                                                             | label_5:
    0x00002348 dmb ish                                       |     __asm ("dmb ish");
    0x0000234c b 0x230a                                      |     goto label_0;
                                                             | label_4:
    0x0000234e bl 0x1eb8                                     |     fcn_00001eb8 ();
                                                             | label_6:
    0x00002352 ldr r3, [pc, 0x6c]                            |     
    0x00002354 mov.w r2, 0x15c                               |     r2 = 0x15c;
    0x00002358 ldr r1, [pc, 0x68]                            |     
    0x0000235a ldr r0, [pc, 0x6c]                            |     
    0x0000235c add r3, pc                                    |     r3 = 0x4722;
    0x0000235e add r1, pc                                    |     r1 = 0x4726;
    0x00002360 adds r3, 0xb0                                 |     r3 += 0xb0;
    0x00002362 add r0, pc                                    |     r0 = "/usr/src/debug/liburcu/0.13.2-r0/src/urcu-bp.c";
    0x00002364 blx 0x1990                                    |     fcn_00001990 ();
                                                             | label_2:
    0x00002368 ldr r3, [pc, 0x60]                            |     
    0x0000236a mov.w r2, 0x11a                               |     r2 = 0x11a;
    0x0000236e ldr r1, [pc, 0x60]                            |     
    0x00002370 ldr r0, [pc, 0x60]                            |     
    0x00002372 add r3, pc                                    |     r3 = 0x4742;
    0x00002374 add r1, pc                                    |     r1 = 0x474a;
    0x00002376 adds r3, 0xb0                                 |     r3 += 0xb0;
    0x00002378 add r0, pc                                    |     r0 = 0x4750;
    0x0000237a blx 0x1990                                    |     fcn_00001990 ();
                                                             | label_1:
    0x0000237e ldr r3, [pc, 0x58]                            |     
    0x00002380 mov.w r2, 0x118                               |     r2 = 0x118;
    0x00002384 ldr r1, [pc, 0x54]                            |     
    0x00002386 ldr r0, [pc, 0x58]                            |     
    0x00002388 add r3, pc                                    |     r3 = 0x4766;
    0x0000238a add r1, pc                                    |     r1 = 0x476a;
    0x0000238c adds r3, 0xb0                                 |     r3 += 0xb0;
    0x0000238e add r0, pc                                    |     r0 = 0x4774;
    0x00002390 blx 0x1990                                    |     fcn_00001990 ();
                                                             | label_7:
    0x00002394 blx 0x17a0                                    |     fcn_000017a0 ();
    0x00002398 ldr r4, [pc, 0x298]                           |     r4 = *(0x2634);
    0x0000239a movs r0, r0                                   |     
    0x0000239c lsls r0, r0, 4                                |     r0 <<= 4;
    0x0000239e movs r0, r0                                   |     
    0x000023a0 ldr r4, [pc, 0x220]                           |     r4 = *(0x25c4);
    0x000023a2 movs r0, r0                                   |     
    0x000023a4 ldr r6, [pc, 0xb8]                            |     r6 = *(0x2460);
    0x000023a6 movs r0, r0                                   |     
    0x000023a8 ldr r5, [pc, 0x3d0]                           |     r5 = *(0x277c);
    0x000023aa movs r0, r0                                   |     
    0x000023ac lsls r0, r2, 4                                |     r0 = r2 << 4;
    0x000023ae movs r0, r0                                   |     
    0x000023b0 ldr r5, [pc, 0x318]                           |     r5 = *(0x26cc);
    0x000023b2 movs r0, r0                                   |     
    0x000023b4 lsls r0, r3, 4                                |     r0 = r3 << 4;
    0x000023b6 movs r0, r0                                   |     
    0x000023b8 ldr r5, [pc, 0x260]                           |     r5 = *(0x261c);
    0x000023ba movs r0, r0                                   |     
    0x000023bc ldr r3, [pc, 0x2a0]                           |     r3 = *(0x2660);
    0x000023be movs r0, r0                                   |     
    0x000023c0 movs r7, 0x48                                 |     r7 = 0x48;
    0x000023c2 movs r0, r0                                   |     
    0x000023c4 movs r3, 0xce                                 |     r3 = 0xce;
    0x000023c6 movs r0, r0                                   |     
    0x000023c8 movs r3, 0xc2                                 |     r3 = 0xc2;
    0x000023ca movs r0, r0                                   |     
    0x000023cc movs r7, 0x32                                 |     r7 = 0x32;
    0x000023ce movs r0, r0                                   |     
    0x000023d0 movs r3, 0xb8                                 |     r3 = 0xb8;
    0x000023d2 movs r0, r0                                   |     
    0x000023d4 movs r3, 0xac                                 |     r3 = 0xac;
    0x000023d6 movs r0, r0                                   |     
    0x000023d8 movs r7, 0x1c                                 |     r7 = 0x1c;
    0x000023da movs r0, r0                                   |     
    0x000023dc movs r3, 0xa2                                 |     r3 = 0xa2;
    0x000023de movs r0, r0                                   |     
    0x000023e0 movs r3, 0x96                                 |     r3 = 0x96;
    0x000023e2 movs r0, r0                                   |     
                                                             | }

[*] Function printf used 8 times liburcu-bp.so.8.0.0