[*] Binary protection state of libuuid.so.1.3.0

  
  	Partial RELRO  No Canary found   NX disabled  DSO          No RPATH     No RUNPATH   No Symbols


[*] Function strcat tear down of libuuid.so.1.3.0

    ; assembly                       | /* r2dec pseudo code output */
                                     | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libuuid.so.1.3.0 @ 0x119c */
                                     | #include <stdint.h>
                                     |  
    ; (fcn) entry.fini0 ()           | void entry_fini0 () {
    0x0000119c ldr r3, [pc, 0x68]    |     r3 = *(0x1208);
    0x000011a0 push {r4, lr}         |     
    0x000011a4 ldr r4, [pc, 0x64]    |     r4 = *(0x120c);
    0x000011a8 add r3, pc, r3        |     r3 = pc + r3;
    0x000011ac ldrb r3, [r3]         |     r3 = *(r3);
    0x000011b0 add r4, pc, r4        |     r4 = pc + r4;
    0x000011b4 cmp r3, 0             |     
    0x000011b8 popne {r4, pc}        |     
    0x000011bc ldr r3, [pc, 0x50]    |     r3 = *(0x1210);
    0x000011c0 ldr r3, [r4, r3]      |     r3 = *(0x120c);
    0x000011c4 cmp r3, 0             |     
                                     |     if (r3 != 0) {
    0x000011c8 beq 0x11d8            |         
    0x000011cc ldr r3, [pc, 0x44]    |         r3 = *(0x1214);
    0x000011d0 ldr r0, [pc, r3]      |         r0 = *(0x000011d8);
    0x000011d4 bl 0xf20              |         cxa_finalize ();
                                     |     }
    0x000011d8 bl 0x10e0             |     entry0 ();
    0x000011dc ldr r3, [pc, 0x38]    |     r3 = *(0x1218);
    0x000011e0 ldr r3, [r4, r3]      |     r3 = *((r4 + r3));
    0x000011e4 cmp r3, 0             |     
                                     |     if (r3 != 0) {
    0x000011e8 beq 0x11f8            |         
    0x000011ec ldr r0, [pc, 0x2c]    |         r0 = *(0x121c);
    0x000011f0 add r0, pc, r0        |         r0 = pc + r0;
    0x000011f4 bl 0xf80              |         loc_imp_deregister_frame_info ();
                                     |     }
    0x000011f8 ldr r3, [pc, 0x24]    |     r3 = *(0x1220);
    0x000011fc mov r2, 1             |     r2 = 1;
    0x00001200 add r3, pc, r3        |     r3 = pc + r3;
    0x00001204 strb r2, [r3]         |     *(r3) = r2;
    0x00001208 pop {r4, pc}          |     
                                     | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/lib/libuuid.so.1.3.0 @ 0x45ac */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.000045ac ()                      | void fcn_000045ac (int32_t arg1, int32_t arg2) {
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x000045ac push {r4, r5, r6, r7, r8, lr}     |     
    0x000045b0 mov r4, r0                        |     r4 = r0;
    0x000045b4 ldr r0, [r0, 0x14]                |     r0 = *((r0 + 0x14));
    0x000045b8 lsl r3, r2, 3                     |     r3 = r2 << 3;
    0x000045bc adds r3, r3, r0                   |     r3 += r0;
    0x000045c0 str r3, [r4, 0x14]                |     *((r4 + 0x14)) = r3;
                                                 |     if (r3 < r3) {
    0x000045c4 ldrhs r3, [r4, 0x18]              |         r3 = *((r4 + 0x18));
                                                 |     }
    0x000045c8 lsr r0, r0, 3                     |     r0 >>= 3;
                                                 |     if (r3 < r3) {
    0x000045cc addhs r3, r3, 1                   |         r3++;
                                                 |     }
                                                 |     if (r3 < r3) {
    0x000045d0 strhs r3, [r4, 0x18]              |         *((r4 + 0x18)) = r3;
                                                 |     }
    0x000045d4 ldr r3, [r4, 0x18]                |     r3 = *((r4 + 0x18));
    0x000045d8 and r0, r0, 0x3f                  |     r0 &= 0x3f;
    0x000045dc add r3, r3, r2, lsr 29            |     r3 += (r2 >> 29);
    0x000045e0 str r3, [r4, 0x18]                |     *((r4 + 0x18)) = r3;
    0x000045e4 add r3, r2, r0                    |     r3 = r2 + r0;
    0x000045e8 cmp r3, 0x3f                      |     
    0x000045ec mov r7, r1                        |     r7 = r1;
    0x000045f0 mov r6, r2                        |     r6 = r2;
                                                 |     if (r3 > 0x3f) {
    0x000045f4 movls r5, 0                       |         r5 = 0;
                                                 |     }
                                                 |     if (r3 < 0x3f) {
    0x000045f8 bls 0x4630                        |         goto label_0;
                                                 |     }
    0x000045fc rsb r5, r0, 0x40                  |     r5 = 0x40 - r0;
    0x00004600 add r0, r0, 0x1c                  |     r0 += 0x1c;
    0x00004604 mov r2, r5                        |     r2 = r5;
    0x00004608 add r0, r4, r0                    |     r0 = r4 + r0;
    0x0000460c bl 0xf14                          |     memcpy (r0, r1, r2);
    0x00004610 add r1, r4, 0x1c                  |     r1 = r4 + 0x1c;
    0x00004614 mov r0, r4                        |     r0 = r4;
    0x00004618 bl 0x3120                         |     fcn_00003120 (r0, r1);
                                                 |     do {
    0x0000461c add r3, r5, 0x3f                  |         r3 = r5 + 0x3f;
    0x00004620 cmp r6, r3                        |         
    0x00004624 add r1, r7, r5                    |         r1 = r7 + r5;
                                                 |         if (r6 <= r3) {
    0x00004628 bhi 0x4648                        |             
    0x0000462c mov r0, 0                         |             r0 = 0;
                                                 | label_0:
    0x00004630 add r0, r0, 0x1c                  |             r0 += 0x1c;
    0x00004634 sub r2, r6, r5                    |             r2 = r6 - r5;
    0x00004638 add r1, r7, r5                    |             r1 = r7 + r5;
    0x0000463c add r0, r4, r0                    |             r0 = r4 + r0;
    0x00004640 pop {r4, r5, r6, r7, r8, lr}      |             
    0x00004644 b 0xf14                           |             void (*0xf14)() ();
                                                 |         }
    0x00004648 mov r0, r4                        |         r0 = r4;
    0x0000464c bl 0x3120                         |         fcn_00003120 (r0, r1);
    0x00004650 add r5, r5, 0x40                  |         r5 += 0x40;
    0x00004654 b 0x461c                          |         
                                                 |     } while (1);
                                                 | }

[*] Function strcat used 1 times libuuid.so.1.3.0