[*] Binary protection state of liblttng-ust-pthread-wrapper.so.1.0.0
Full RELRO Canary found NX enabled DSO No RPATH No RUNPATH No Symbols
[*] Function fprintf tear down of liblttng-ust-pthread-wrapper.so.1.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/liblttng-ust-pthread-wrapper.so.1.0.0 @ 0xd7c */
| #include <stdint.h>
|
; (fcn) entry.fini2 () | void entry_fini2 () {
0x00000d7c push {r3, r4, r5, r6, r7, lr} |
0x00000d7e ldr r4, [pc, 0x80] |
0x00000d80 ldr r3, [pc, 0x80] | r3 = *(0xe04);
0x00000d82 add r4, pc | r4 = 0x1b88;
0x00000d84 ldr r5, [r4, r3] | r5 = *(0x1b88);
0x00000d86 ldr r3, [r5] | r3 = *(0x1b88);
0x00000d88 subs r3, 1 | r3--;
0x00000d8a str r3, [r5] | *(r5) = r3;
| if (r3 != 0) {
0x00000d8c cbnz r3, 0xdd8 | goto label_1;
| }
0x00000d8e ldr r3, [pc, 0x78] | r3 = *(0xe0a);
0x00000d90 ldr r6, [r4, r3] | r6 = *((r4 + r3));
0x00000d92 ldr r3, [r6] | r3 = *(r6);
| if (r3 == 0) {
0x00000d94 cbz r3, 0xde2 | goto label_2;
| }
| label_0:
0x00000d96 ldr r3, [pc, 0x74] | r3 = *(0xe0e);
0x00000d98 ldr r7, [r4, r3] | r7 = *((r4 + r3));
0x00000d9a ldr r3, [r7] | r3 = *(r7);
0x00000d9c cbz r3, 0xdda |
| while (1) {
0x00000d9e ldr r3, [r6] | r3 = *(r6);
0x00000da0 ldr r3, [r3, 0xc] | r3 = *((r3 + 0xc));
| if (r3 != 0) {
0x00000da2 cbz r3, 0xdaa |
0x00000da4 ldr r2, [pc, 0x68] | r2 = *(0xe10);
0x00000da6 ldr r0, [r4, r2] | r0 = *((r4 + r2));
0x00000da8 blx r3 | uint32_t (*r3)(uint32_t, uint32_t) (r0, r2);
| }
0x00000daa ldr r3, [r6] | r3 = *(r6);
0x00000dac ldr r3, [r3, 4] | r3 = *((r3 + 4));
| if (r3 != 0) {
0x00000dae cbz r3, 0xdd8 |
0x00000db0 ldr r3, [r7] | r3 = *(r7);
0x00000db2 ldr r3, [r3, 8] | r3 = *((r3 + 8));
| if (r3 == 0) {
0x00000db4 cbz r3, 0xdd8 | goto label_1;
| }
0x00000db6 blx r3 | r0 = uint32_t (*r3)(uint32_t) (r0);
| if (r0 == 0) {
0x00000db8 cbz r0, 0xdd8 | goto label_1;
| }
0x00000dba ldr r3, [r5] | r3 = *(r5);
| if (r3 != 0) {
0x00000dbc cbnz r3, 0xdd8 | goto label_1;
| }
0x00000dbe ldr r3, [r6] | r3 = *(r6);
0x00000dc0 ldr r0, [r3, 4] | r0 = *((r3 + 4));
0x00000dc2 blx 0xcb8 | r0 = dlclose ();
| if (r0 != 0) {
0x00000dc6 cbnz r0, 0xdea | goto label_3;
| }
0x00000dc8 ldr r3, [r6] | r3 = *(r6);
0x00000dca str r0, [r3] | *(r3) = r0;
0x00000dcc str r0, [r3, 4] | *((r3 + 4)) = r0;
0x00000dce str r0, [r3, 8] | *((r3 + 8)) = r0;
0x00000dd0 str r0, [r3, 0xc] | *((r3 + 0xc)) = r0;
0x00000dd2 str r0, [r3, 0x10] | *((r3 + 0x10)) = r0;
0x00000dd4 str r0, [r3, 0x14] | *((r3 + 0x14)) = r0;
0x00000dd6 str r0, [r3, 0x18] | *((r3 + 0x18)) = r0;
| }
| label_1:
0x00000dd8 pop {r3, r4, r5, r6, r7, pc} |
0x00000dda ldr r3, [pc, 0x38] | r3 = *(0xe16);
0x00000ddc ldr r3, [r4, r3] | r3 = *((r4 + r3));
0x00000dde str r3, [r7] | *(r7) = r3;
0x00000de0 b 0xd9e |
| }
| label_2:
0x00000de2 ldr r3, [pc, 0x34] | r3 = *(0xe1a);
0x00000de4 ldr r3, [r4, r3] | r3 = *((r4 + r3));
0x00000de6 str r3, [r6] | *(r6) = r3;
0x00000de8 b 0xd96 | goto label_0;
| label_3:
0x00000dea ldr r5, [pc, 0x30] | r5 = *(0xe1e);
0x00000dec mov r3, r0 | r3 = r0;
0x00000dee ldr r2, [pc, 0x30] |
0x00000df0 movs r1, 1 | r1 = 1;
0x00000df2 ldr r0, [r4, r5] | r0 = *((r4 + r5));
0x00000df4 add r2, pc | r2 = 0x1c1a;
0x00000df6 ldr r0, [r0] | r0 = *(r0);
0x00000df8 blx 0xc94 | fprintf_chk ()
0x00000dfc blx 0xcc4 | abort ();
0x00000e00 movs r1, 0xfa | r1 = 0xfa;
0x00000e02 movs r1, r0 | r1 = r0;
0x00000e04 lsls r4, r5, 1 | r4 = r5 << 1;
0x00000e06 movs r0, r0 |
0x00000e08 lsls r0, r4, 1 | r0 = r4 << 1;
0x00000e0a movs r0, r0 |
0x00000e0c lsls r4, r2, 1 | r4 = r2 << 1;
0x00000e0e movs r0, r0 |
0x00000e10 lsls r0, r2, 1 | r0 = r2 << 1;
0x00000e12 movs r0, r0 |
0x00000e14 lsls r0, r5, 1 | r0 = r5 << 1;
0x00000e16 movs r0, r0 |
0x00000e18 lsls r0, r6, 1 | r0 = r6 << 1;
0x00000e1a movs r0, r0 |
0x00000e1c lsls r4, r3, 1 | r4 = r3 << 1;
0x00000e1e movs r0, r0 |
0x00000e20 lsrs r4, r6, 0xb | r4 = r6 >> 0xb;
0x00000e22 movs r0, r0 |
| }
[*] Function fprintf used 2 times liblttng-ust-pthread-wrapper.so.1.0.0