[*] Binary protection state of liburcu-signal.so.8.0.0
Full RELRO Canary found NX enabled DSO No RPATH No RUNPATH No Symbols
[*] Function strcat tear down of liburcu-signal.so.8.0.0
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/liburcu-signal.so.8.0.0 @ 0x1524 */
| #include <stdint.h>
|
; (fcn) sym.urcu_signal_init () | void urcu_signal_init () {
| int16_t var_8h;
| int16_t var_ch;
| int16_t var_8ch;
| int16_t var_94h;
0x00001120 lsls r5, r2, 0x1c | r5 = r2 << 0x1c;
0x00001122 movs r0, r0 |
0x00001124 ldr r7, [pc, 0x380] | r7 = *(0x14a8);
0x00001126 movs r1, r0 | r1 = r0;
0x00001128 lsrs r5, r2, 8 | r5 = r2 >> 8;
0x0000112a movs r0, r0 |
0x0000112c ldr r7, [pc, 0x390] | r7 = *(0x14c0);
0x0000112e movs r1, r0 | r1 = r0;
0x00001130 adds r7, 0x15 | r7 += 0x15;
0x00001132 movs r0, r0 |
0x00001134 ldr r7, [pc, 0x3a0] | r7 = *(0x14d8);
0x00001136 movs r1, r0 | r1 = r0;
0x00001138 asrs r5, r2, 4 | r5 = r2 >> 4;
0x0000113a movs r0, r0 |
0x0000113c ldr r7, [pc, 0x3b0] | r7 = *(0x14f0);
0x0000113e movs r1, r0 | r1 = r0;
0x00001140 asrs r5, r2, 0x18 | r5 = r2 >> 0x18;
0x00001142 movs r0, r0 |
0x00001144 ldr r7, [pc, 0x3c0] | r7 = *(0x1508);
0x00001146 movs r1, r0 | r1 = r0;
0x00001148 ldr r0, [pc, 0x54] | r0 = *(0x11a0);
0x0000114a movs r0, r0 |
0x0000114c ldr r7, [pc, 0x3d0] | r7 = *(0x1520);
0x0000114e movs r1, r0 | r1 = r0;
0x00001150 adds r3, 0x11 | r3 += 0x11;
0x00001152 movs r0, r0 |
0x00001154 ldr r7, [pc, 0x3e0] | r7 = *(0x1538);
0x00001156 movs r1, r0 | r1 = r0;
0x00001158 adds r3, 0x12 | r3 += 0x12;
0x0000115a movs r0, r0 |
0x0000115c ldr r7, [pc, 0x3f0] | r7 = *(0x1550);
0x0000115e movs r1, r0 | r1 = r0;
0x00001160 movs r1, 0x15 | r1 = 0x15;
0x00001162 movs r0, r0 |
| /* [08] -r-- section size 344 named .rel.plt */
0x00001164 ldr r7, [pc, 0x80] | r7 = *(0x11e8);
0x00001166 movs r1, r0 | r1 = r0;
0x00001168 lsls r6, r2, 0xc | r6 = r2 << 0xc;
0x0000116a movs r0, r0 |
0x0000116c ldr r7, [pc, 0x90] | r7 = *(0x1200);
0x0000116e movs r1, r0 | r1 = r0;
0x00001170 cmp r3, 0x16 |
0x00001172 movs r0, r0 |
0x00001174 ldr r7, [pc, 0xa0] | r7 = *(0x1218);
0x00001176 movs r1, r0 | r1 = r0;
0x00001178 lsls r6, r2, 0x10 | r6 = r2 << 0x10;
0x0000117a movs r0, r0 |
0x0000117c ldr r7, [pc, 0xb0] | r7 = *(0x1230);
0x0000117e movs r1, r0 | r1 = r0;
0x00001180 lsls r6, r2, 0x14 | r6 = r2 << 0x14;
0x00001182 movs r0, r0 |
0x00001184 ldr r7, [pc, 0xc0] | r7 = *(0x1248);
0x00001186 movs r1, r0 | r1 = r0;
0x00001188 subs r4, 0x16 | r4 -= 0x16;
0x0000118a movs r0, r0 |
0x0000118c ldr r7, [pc, 0xd0] | r7 = *(0x1260);
0x0000118e movs r1, r0 | r1 = r0;
0x00001190 lsls r6, r2, 0x18 | r6 = r2 << 0x18;
0x00001192 movs r0, r0 |
0x00001194 ldr r7, [pc, 0xe0] | r7 = *(0x1278);
0x00001196 movs r1, r0 | r1 = r0;
0x00001198 subs r7, 0x16 | r7 -= 0x16;
0x0000119a movs r0, r0 |
0x0000119c ldr r7, [pc, 0xf0] | r7 = *(0x1290);
0x0000119e movs r1, r0 | r1 = r0;
0x000011a0 lsrs r6, r2, 0x20 | r6 = r2 >> 0x20;
0x000011a2 movs r0, r0 |
0x000011a4 ldr r7, [pc, 0x100] | r7 = *(0x12a8);
0x000011a6 movs r1, r0 | r1 = r0;
0x000011a8 lsrs r6, r2, 4 | r6 = r2 >> 4;
0x000011aa movs r0, r0 |
0x000011ac ldr r7, [pc, 0x110] | r7 = *(0x12c0);
0x000011ae movs r1, r0 | r1 = r0;
0x000011b0 lsrs r6, r2, 0xc | r6 = r2 >> 0xc;
0x000011b2 movs r0, r0 |
0x000011b4 ldr r7, [pc, 0x120] | r7 = *(0x12d8);
0x000011b6 movs r1, r0 | r1 = r0;
0x000011b8 lsrs r6, r2, 0x10 | r6 = r2 >> 0x10;
0x000011ba movs r0, r0 |
0x000011bc ldr r7, [pc, 0x130] | r7 = *(0x12f0);
0x000011be movs r1, r0 | r1 = r0;
0x000011c0 lsrs r6, r2, 0x14 | r6 = r2 >> 0x14;
0x000011c2 movs r0, r0 |
0x000011c4 ldr r7, [pc, 0x140] | r7 = *(0x1308);
0x000011c6 movs r1, r0 | r1 = r0;
0x000011c8 lsrs r6, r2, 0x18 | r6 = r2 >> 0x18;
0x000011ca movs r0, r0 |
0x000011cc ldr r7, [pc, 0x150] | r7 = *(0x1320);
0x000011ce movs r1, r0 | r1 = r0;
0x000011d0 lsrs r6, r2, 0x1c | r6 = r2 >> 0x1c;
0x000011d2 movs r0, r0 |
0x000011d4 ldr r7, [pc, 0x160] | r7 = *(0x1338);
0x000011d6 movs r1, r0 | r1 = r0;
0x000011d8 asrs r6, r2, 0x20 | r6 = r2 >> 0x20;
0x000011da movs r0, r0 |
0x000011dc ldr r7, [pc, 0x170] | r7 = *(0x1350);
0x000011de movs r1, r0 | r1 = r0;
0x000011e0 asrs r6, r2, 8 | r6 = r2 >> 8;
0x000011e2 movs r0, r0 |
0x000011e4 ldr r7, [pc, 0x180] | r7 = *(0x1368);
0x000011e6 movs r1, r0 | r1 = r0;
0x000011e8 mov r6, r2 | r6 = r2;
0x000011ea movs r0, r0 |
0x000011ec ldr r7, [pc, 0x190] | r7 = *(0x1380);
0x000011ee movs r1, r0 | r1 = r0;
0x000011f0 asrs r6, r2, 0xc | r6 = r2 >> 0xc;
0x000011f2 movs r0, r0 |
0x000011f4 ldr r7, [pc, 0x1a0] | r7 = *(0x1398);
0x000011f6 movs r1, r0 | r1 = r0;
0x000011f8 asrs r6, r2, 0x10 | r6 = r2 >> 0x10;
0x000011fa movs r0, r0 |
0x000011fc ldr r7, [pc, 0x1b0] | r7 = *(0x13b0);
0x000011fe movs r1, r0 | r1 = r0;
0x00001200 asrs r6, r2, 0x14 | r6 = r2 >> 0x14;
0x00001202 movs r0, r0 |
0x00001204 ldr r7, [pc, 0x1c0] | r7 = *(0x13c8);
0x00001206 movs r1, r0 | r1 = r0;
0x00001208 asrs r6, r2, 0x18 | r6 = r2 >> 0x18;
0x0000120a movs r0, r0 |
0x0000120c ldr r7, [pc, 0x1d0] | r7 = *(0x13e0);
0x0000120e movs r1, r0 | r1 = r0;
0x00001210 asrs r6, r2, 0x1c | r6 = r2 >> 0x1c;
0x00001212 movs r0, r0 |
0x00001214 ldr r7, [pc, 0x1e0] | r7 = *(0x13f8);
0x00001216 movs r1, r0 | r1 = r0;
0x00001218 cmp r7, 0x16 |
0x0000121a movs r0, r0 |
0x0000121c ldr r7, [pc, 0x1f0] | r7 = *(0x1410);
0x0000121e movs r1, r0 | r1 = r0;
0x00001220 adds r6, r2, r0 | r6 = r2 + r0;
0x00001222 movs r0, r0 |
0x00001224 ldr r7, [pc, 0x200] | r7 = *(0x1428);
0x00001226 movs r1, r0 | r1 = r0;
0x00001228 adds r6, r2, r4 | r6 = r2 + r4;
0x0000122a movs r0, r0 |
0x0000122c ldr r7, [pc, 0x210] | r7 = *(0x1440);
0x0000122e movs r1, r0 | r1 = r0;
0x00001230 asrs r6, r2 | r6 >>= r2;
0x00001232 movs r0, r0 |
0x00001234 ldr r7, [pc, 0x220] | r7 = *(0x1458);
0x00001236 movs r1, r0 | r1 = r0;
0x00001238 subs r6, r2, r0 | r6 = r2 - r0;
0x0000123a movs r0, r0 |
0x0000123c ldr r7, [pc, 0x230] | r7 = *(0x1470);
0x0000123e movs r1, r0 | r1 = r0;
0x00001240 subs r6, r2, r4 | r6 = r2 - r4;
0x00001242 movs r0, r0 |
0x00001244 ldr r7, [pc, 0x240] | r7 = *(0x1488);
0x00001246 movs r1, r0 | r1 = r0;
0x00001248 adds r6, r2, 0 | r6 = r2 + 0;
0x0000124a movs r0, r0 |
0x0000124c ldr r7, [pc, 0x250] | r7 = *(0x14a0);
0x0000124e movs r1, r0 | r1 = r0;
0x00001250 cmp r2, 0x16 |
0x00001252 movs r0, r0 |
0x00001254 ldr r7, [pc, 0x260] | r7 = *(0x14b8);
0x00001256 movs r1, r0 | r1 = r0;
0x00001258 adds r6, r2, 4 | r6 = r2 + 4;
0x0000125a movs r0, r0 |
0x0000125c ldr r7, [pc, 0x270] | r7 = *(0x14d0);
0x0000125e movs r1, r0 | r1 = r0;
0x00001260 subs r6, r2, 0 | r6 = r2 - 0;
0x00001262 movs r0, r0 |
0x00001264 ldr r7, [pc, 0x280] | r7 = urcu_signal_exit;
0x00001266 movs r1, r0 | r1 = r0;
0x00001268 ands r6, r2 | r6 &= r2;
0x0000126a movs r0, r0 |
0x0000126c ldr r7, [pc, 0x290] | r7 = *(0x1500);
0x0000126e movs r1, r0 | r1 = r0;
0x00001270 subs r6, r2, 4 | r6 = r2 - 4;
0x00001272 movs r0, r0 |
0x00001274 ldr r7, [pc, 0x2a0] | r7 = *(0x1518);
0x00001276 movs r1, r0 | r1 = r0;
0x00001278 movs r0, 0x16 | r0 = 0x16;
0x0000127a movs r0, r0 |
0x0000127c ldr r7, [pc, 0x2b0] | r7 = *(0x1530);
0x0000127e movs r1, r0 | r1 = r0;
0x00001280 movs r2, 0x16 | r2 = 0x16;
0x00001282 movs r0, r0 |
0x00001284 ldr r7, [pc, 0x2c0] | r7 = *(0x1548);
0x00001286 movs r1, r0 | r1 = r0;
0x00001288 movs r3, 0x16 | r3 = 0x16;
0x0000128a movs r0, r0 |
0x0000128c ldr r7, [pc, 0x2d0] | r7 = *(0x1560);
0x0000128e movs r1, r0 | r1 = r0;
0x00001290 cmp r6, r2 |
0x00001292 movs r0, r0 |
0x00001294 ldr r7, [pc, 0x2e0] | r7 = *(0x1578);
0x00001296 movs r1, r0 | r1 = r0;
0x00001298 cmp r5, 0x16 |
0x0000129a movs r0, r0 |
0x0000129c ldr r7, [pc, 0x2f0] | r7 = *(0x1590);
0x0000129e movs r1, r0 | r1 = r0;
0x000012a0 ldr r4, [pc, 0x58] | r4 = *(0x12fc);
0x000012a2 movs r0, r0 |
0x000012a4 ldr r7, [pc, 0x300] | r7 = *(0x15a8);
0x000012a6 movs r1, r0 | r1 = r0;
0x000012a8 subs r3, 0x16 | r3 -= 0x16;
0x000012aa movs r0, r0 |
0x000012ac ldr r7, [pc, 0x310] | r7 = *(0x15c0);
0x000012ae movs r1, r0 | r1 = r0;
0x000012b0 movs r4, 0x16 | r4 = 0x16;
0x000012b2 movs r0, r0 |
0x000012b4 ldr r7, [pc, 0x320] | r7 = *(0x15d8);
0x000012b6 movs r1, r0 | r1 = r0;
0x000012b8 movs r5, 0x16 | r5 = 0x16;
0x000012ba movs r0, r0 |
| /* [09] -r-x section size 12 named .init */
0x000012bc ands r0, r1 | r0 &= r1;
0x000012c0 bl 0x15dc | void (*0x15dc)() ();
0x000012c4 pop {r3, pc} |
0x00001524 stmdbmi r5!, {r2, r5, r8, sb, fp, lr} | __asm ("stmdbmi r5!, {r2, r5, r8, sb, fp, lr}");
0x00001528 ldr r2, [pc, 0x94] |
0x0000152a add r3, pc | r3 += pc;
0x0000152c push {r4, r5, r6, lr} |
0x0000152e add r1, pc | r1 += pc;
0x00001530 ldr r4, [r3, 0x64] | r4 = *((r3 + 0x64));
0x00001532 sub sp, 0x98 |
0x00001534 ldr r5, [pc, 0x8c] |
0x00001536 ldr r2, [r1, r2] | r2 = *((r1 + r2));
0x00001538 add r5, pc | r5 = 0x2b00;
0x0000153a ldr r2, [r2] | r2 = *(0x15c0);
0x0000153c str r2, [sp, 0x94] | var_94h = r2;
0x0000153e mov.w r2, 0 | r2 = 0;
0x00001542 cbz r4, 0x155c |
| while (r0 == 0) {
0x00001544 ldr r2, [pc, 0x80] |
0x00001546 ldr r3, [pc, 0x78] | r3 = *(0x15c2);
0x00001548 add r2, pc | r2 = 0x2b14;
0x0000154a ldr r3, [r2, r3] | r3 = *(0x2b14);
0x0000154c ldr r2, [r3] | r2 = *(0x2b14);
0x0000154e ldr r3, [sp, 0x94] | r3 = var_94h;
0x00001550 eors r2, r3 | r2 ^= r3;
0x00001552 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00001556 bne 0x15b4 | goto label_0;
| }
0x00001558 add sp, 0x98 |
0x0000155a pop {r4, r5, r6, pc} |
0x0000155c ldr r2, [pc, 0x6c] |
0x0000155e movs r1, 4 |
0x00001560 movt r1, 0x1000 | r1 = 0x10000004;
0x00001564 movs r6, 1 | r6 = 1;
0x00001566 add r0, sp, 0xc | r0 += var_ch;
0x00001568 str r1, [sp, 0x8c] | var_8ch = r1;
0x0000156a add r2, pc | r2 = 0x2b3a;
0x0000156c str r6, [r3, 0x64] | *((r3 + 0x64)) = r6;
0x0000156e str r2, [sp, 8] | var_8h = r2;
0x00001570 blx 0x1454 | fcn_00001454 ();
0x00001574 mov r2, r4 | r2 = r4;
0x00001576 add r1, sp, 8 | r1 += var_8h;
0x00001578 movs r0, 0xa | r0 = 0xa;
0x0000157a blx 0x1388 | r0 = fcn_00001388 ();
0x0000157e cmp r0, 0 |
0x00001580 beq 0x1544 |
| }
0x00001582 ldr r3, [pc, 0x4c] | r3 = *(0x15d2);
0x00001584 ldr r3, [r5, r3] | r3 = *((r5 + r3));
0x00001586 ldr r5, [r3] | r5 = *(0x15d2);
0x00001588 blx 0x13f4 | r0 = fcn_000013f4 ();
0x0000158c ldr r0, [r0] | r0 = *(r0);
0x0000158e blx 0x13c4 | fcn_000013c4 ();
0x00001592 mov.w r2, 0x280 | r2 = 0x280;
0x00001596 mov r4, r0 | r4 = r0;
0x00001598 ldr r3, [pc, 0x38] |
0x0000159a mov r1, r6 | r1 = r6;
0x0000159c strd r2, r4, [sp] | __asm ("strd r2, r4, [sp]");
0x000015a0 mov r0, r5 | r0 = r5;
0x000015a2 ldr r2, [pc, 0x34] |
0x000015a4 add r3, pc |
0x000015a6 add.w r3, r3, 0x184 | r3 = 0x2d00;
0x000015aa add r2, pc | r2 = 0x2b88;
0x000015ac blx 0x1418 | fcn_00001418 ();
0x000015b0 blx 0x14d0 | fcn_000014d0 ();
| label_0:
0x000015b4 blx 0x1364 | fcn_00001364 ();
0x000015b8 subs r3, 0xae | r3 -= 0xae;
0x000015ba movs r1, r0 | r1 = r0;
0x000015bc subs r1, 0xe2 | r1 -= 0xe2;
0x000015be movs r1, r0 | r1 = r0;
0x000015c0 lsls r4, r1, 3 | r4 = r1 << 3;
0x000015c2 movs r0, r0 |
0x000015c4 subs r1, 0xd8 | r1 -= 0xd8;
0x000015c6 movs r1, r0 | r1 = r0;
0x000015c8 subs r1, 0xc8 | r1 -= 0xc8;
0x000015ca movs r1, r0 | r1 = r0;
0x000015cc lsls r7, r1, 5 | r7 = r1 << 5;
0x000015ce movs r0, r0 |
0x000015d0 lsls r4, r2, 3 | r4 = r2 << 3;
0x000015d2 movs r0, r0 |
0x000015d4 cmp r3, 0x40 |
0x000015d6 movs r0, r0 |
0x000015d8 movs r5, 0xc6 | r5 = 0xc6;
0x000015da movs r0, r0 |
0x000015dc adds r0, 0x14 | r0 += 0x14;
| }
[*] Function strcat used 1 times liburcu-signal.so.8.0.0