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