[*] Binary protection state of libuuid.so.1.3.0
Full RELRO Canary found NX enabled DSO No RPATH No RUNPATH No Symbols
[*] Function system tear down of libuuid.so.1.3.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/libuuid.so.1.3.0 @ 0x3998 */
| #include <stdint.h>
|
; (fcn) fcn.00003998 () | void fcn_00003998 (int16_t arg1, int16_t arg2, int16_t arg3) {
| r0 = arg1;
| r1 = arg2;
| r2 = arg3;
0x00003998 mvnsmi lr, sp, lsr 18 | __asm ("mvnsmi lr, sp, lsr 18");
0x0000399c mov r6, r2 | r6 = r2;
0x0000399e ldr r2, [r0, 0x14] | r2 = *((r0 + 0x14));
0x000039a0 lsls r3, r6, 3 | r3 = r6 << 3;
0x000039a2 mov r5, r0 | r5 = r0;
0x000039a4 mov r7, r1 | r7 = r1;
0x000039a6 adds r3, r3, r2 | r3 += r2;
0x000039a8 ubfx r8, r2, 3, 6 | r8 = (r2 >> 3) & ((1 << 6) - 1);
0x000039ac str r3, [r0, 0x14] | *((r0 + 0x14)) = r3;
0x000039ae ldr r3, [r0, 0x18] | r3 = *((r0 + 0x18));
0x000039b0 it hs |
| if (r3 < r3) {
0x000039b2 addhs r3, 1 | r3++;
| }
0x000039b4 add.w r3, r3, r6, lsr 29 | r3 += (r6 >> 29);
0x000039b8 str r3, [r0, 0x18] | *((r0 + 0x18)) = r3;
0x000039ba add.w r3, r6, r8 | r3 = r6 + r8;
0x000039be cmp r3, 0x3f |
0x000039c0 add.w r0, r8, 0x1c | r0 = r8 + 0x1c;
0x000039c4 bhi 0x39d4 |
| while (r0 < 0x1c) {
0x000039c6 mov r2, r6 | r2 = r6;
0x000039c8 mov r1, r7 | r1 = r7;
0x000039ca add r0, r5 | r0 += r5;
0x000039cc pop.w {r4, r5, r6, r7, r8, lr} |
0x000039d0 b.w 0xea0 | void (*0xea0)() ();
0x000039d4 rsb.w r4, r8, 0x40 | r4 = 0x40 - r8;
0x000039d8 add r0, r5 | r0 += r5;
0x000039da mov r2, r4 | r2 = r4;
0x000039dc blx 0xea4 | fcn_00000ea4 ();
0x000039e0 mov r0, r5 | r0 = r5;
0x000039e2 add.w r1, r5, 0x1c | r1 = r5 + 0x1c;
0x000039e6 bl 0x2af0 | fcn_00002af0 (r0, r1);
0x000039ea rsb.w r3, r8, 0x7f | r3 = 0x7f - r8;
0x000039ee cmp r6, r3 |
0x000039f0 itttt ls |
| if (r6 > r3) {
0x000039f2 subls r2, r8, 0x40 | r2 = r8 - 0x40;
| }
| if (r6 > r3) {
0x000039f6 addls r7, r7, r4 | r7 += r4;
| }
| if (r6 > r3) {
0x000039f8 addls r6, r6, r2 | r6 += r2;
| }
| if (r6 <= r3) {
0x000039fa movs r0, 0x1c | r0 = 0x1c;
| }
0x000039fc bls 0x39c6 |
| }
| do {
0x000039fe adds r1, r7, r4 | r1 = r7 + r4;
0x00003a00 mov r0, r5 | r0 = r5;
0x00003a02 bl 0x2af0 | fcn_00002af0 (r0, r1);
0x00003a06 mov r3, r4 | r3 = r4;
0x00003a08 adds r4, 0x40 | r4 += 0x40;
0x00003a0a adds r3, 0x7f | r3 += 0x7f;
0x00003a0c cmp r6, r3 |
0x00003a0e bhi 0x39fe |
| } while (r6 > r3);
0x00003a10 add r7, r4 | r7 += r4;
0x00003a12 subs r6, r6, r4 | r6 -= r4;
0x00003a14 movs r0, 0x1c | r0 = 0x1c;
0x00003a16 mov r2, r6 | r2 = r6;
0x00003a18 mov r1, r7 | r1 = r7;
0x00003a1a add r0, r5 | r0 += r5;
0x00003a1c pop.w {r4, r5, r6, r7, r8, lr} |
0x00003a20 b.w 0xea0 | return void (*0xea0)() ();
| }
[*] Function system used 1 times libuuid.so.1.3.0