[*] Binary protection state of libgstonvifxmlmetadatastreamdoc.so

  
  	Full RELRO     Canary found      NX enabled   DSO          No RPATH     No RUNPATH   No Symbols


[*] Function strcpy tear down of libgstonvifxmlmetadatastreamdoc.so

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/gstreamer-1.0/libgstonvifxmlmetadatastreamdoc.so @ 0x3fac */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00003fac ()                  | void fcn_00003fac (int16_t arg1) {
                                             |     int16_t var_0h;
                                             |     r0 = arg1;
                                             |     if (? >= ?) {
    0x00003fac ldrlt r6, [r0, -0x981]!       |         r6 = *((r0 -= 0x981));
                                             |     }
    0x00003fb0 mov r4, r0                    |     r4 = r0;
    0x00003fb2 sub sp, 0xc                   |     
                                             |     if (r1 == 0) {
    0x00003fb4 cbz r1, 0x3fcc                |         goto label_0;
                                             |     }
                                             |     do {
    0x00003fb6 ldr r5, [r1]                  |         r5 = *(r1);
    0x00003fb8 mov r0, r1                    |         r0 = r1;
    0x00003fba blx 0x231c                    |         fcn_0000231c ();
    0x00003fbe str r0, [r4, 0x18]            |         *((r4 + 0x18)) = r0;
    0x00003fc0 mov r0, r5                    |         r0 = r5;
    0x00003fc2 blx 0x217c                    |         memcpy (r0, r1, r2);
    0x00003fc6 ldr r1, [r4, 0x18]            |         r1 = *((r4 + 0x18));
    0x00003fc8 cmp r1, 0                     |         
    0x00003fca bne 0x3fb6                    |         
                                             |     } while (r1 != 0);
                                             | label_0:
    0x00003fcc ldr r5, [r4, 0x10]            |     r5 = *((r4 + 0x10));
    0x00003fce movs r0, 0                    |     r0 = 0;
    0x00003fd0 strd r0, r0, [r4, 4]          |     __asm ("strd r0, r0, [r4, 4]");
    0x00003fd4 str r0, [r4, 0xc]             |     *((r4 + 0xc)) = r0;
                                             |     if (r5 != 0) {
    0x00003fd6 cbz r5, 0x3fee                |         
    0x00003fd8 ldr r4, [pc, 0x34]            |         
    0x00003fda movw r2, 0x46b                |         r2 = 0x46b;
    0x00003fde ldr r3, [pc, 0x34]            |         
    0x00003fe0 ldr r1, [pc, 0x34]            |         
    0x00003fe2 add r4, pc                    |         r4 = 0x7ff6;
    0x00003fe4 add r3, pc                    |         r3 = 0x7ffe;
    0x00003fe6 str r4, [sp]                  |         *(sp) = r4;
    0x00003fe8 add r1, pc                    |         r1 = 0x8004;
    0x00003fea blx 0x20ac                    |         fcn_000020ac ();
                                             |     }
    0x00003fee ldr r3, [r4, 0x14]            |     r3 = *((r4 + 0x14));
                                             |     if (r3 == 0) {
    0x00003ff0 cbnz r3, 0x3ff6               |         
    0x00003ff2 add sp, 0xc                   |         
    0x00003ff4 pop {r4, r5, pc}              |         
                                             |     }
    0x00003ff6 ldr r4, [pc, 0x24]            |     
    0x00003ff8 movw r2, 0x46c                |     r2 = 0x46c;
    0x00003ffc ldr r3, [pc, 0x20]            |     
    0x00003ffe mov r0, r5                    |     r0 = r5;
    0x00004000 ldr r1, [pc, 0x20]            |     
    0x00004002 add r4, pc                    |     r4 = 0x8024;
    0x00004004 add r3, pc                    |     r3 = 0x8028;
    0x00004006 str r4, [sp]                  |     *(sp) = r4;
    0x00004008 add r1, pc                    |     r1 = 0x8030;
    0x0000400a blx 0x20ac                    |     fcn_000020ac ();
    0x0000400e nop                           |     
    0x00004010 adds r6, r1, 3                |     r6 = r1 + 3;
    0x00004012 movs r0, r0                   |     
    0x00004014 subs r4, r0, 6                |     r4 = r0 - 6;
    0x00004016 movs r0, r0                   |     
    0x00004018 adds r0, r4, 2                |     r0 = r4 + 2;
    0x0000401a movs r0, r0                   |     
    0x0000401c adds r2, r0, 3                |     r2 = r0 + 3;
    0x0000401e movs r0, r0                   |     
    0x00004020 subs r4, r4, 5                |     r4 -= 5;
    0x00004022 movs r0, r0                   |     
    0x00004024 adds r0, r0, 2                |     r0 += 2;
    0x00004026 movs r0, r0                   |     
                                             | }

[*] Function strcpy used 1 times libgstonvifxmlmetadatastreamdoc.so