[*] Binary protection state of libgstrtp.so

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


[*] Function mmap tear down of libgstrtp.so



r2dec has crashed (info: /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/gstreamer-1.0/libgstrtp.so @ 0x40e2c).
Please report the bug at https://github.com/radareorg/r2dec-js/issues
Use the option '--issue' or the command 'pddi' to generate 
the needed data for the issue.
    ; 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/libgstrtp.so @ 0x15cb8 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00015cb8 ()                                  | void fcn_00015cb8 (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x00015cb8 invalid                                       |     
    0x00015cbc mov r7, r1                                    |     r7 = r1;
    0x00015cbe mov r8, r0                                    |     r8 = r0;
    0x00015cc0 movs r0, 0x38                                 |     r0 = 0x38;
    0x00015cc2 mov r6, r2                                    |     r6 = r2;
    0x00015cc4 mov sb, r3                                    |     sb = r3;
    0x00015cc6 blx 0x7098                                    |     fcn_00007098 ();
    0x00015cca ldrd r2, r5, [r7, 0x14]                       |     __asm ("ldrd r2, r5, [r7, 0x14]");
    0x00015cce mov r4, r0                                    |     r4 = r0;
    0x00015cd0 ldr.w r3, [r5, r6, lsl 2]                     |     offset_0 = r6 << 2;
                                                             |     r3 = *((r5 + offset_0));
    0x00015cd4 subs r2, 1                                    |     r2--;
    0x00015cd6 sub.w r2, r2, sb                              |     r2 -= sb;
    0x00015cda clz r2, r2                                    |     r2 &= r2;
    0x00015cde ldr r3, [r3]                                  |     r3 = *(r3);
    0x00015ce0 lsrs r2, r2, 5                                |     r2 >>= 5;
    0x00015ce2 str r3, [r0]                                  |     *(r0) = r3;
    0x00015ce4 ldr.w r3, [r5, r6, lsl 2]                     |     offset_1 = r6 << 2;
                                                             |     r3 = *((r5 + offset_1));
    0x00015ce8 ldrb r3, [r3, 0xc]                            |     r3 = *((r3 + 0xc));
    0x00015cea strb r3, [r0, 0xc]                            |     *((r0 + 0xc)) = r3;
    0x00015cec ldr.w r3, [r5, sb, lsl 2]                     |     offset_2 = sb << 2;
                                                             |     r3 = *((r5 + offset_2));
    0x00015cf0 ldrb r3, [r3, 0xd]                            |     r3 = *((r3 + 0xd));
    0x00015cf2 strb r3, [r0, 0xd]                            |     *((r0 + 0xd)) = r3;
    0x00015cf4 ldr.w r3, [r5, sb, lsl 2]                     |     offset_3 = sb << 2;
                                                             |     r3 = *((r5 + offset_3));
    0x00015cf8 ldr.w r1, [r5, r6, lsl 2]                     |     offset_4 = r6 << 2;
                                                             |     r1 = *((r5 + offset_4));
    0x00015cfc ldr r3, [r3, 4]                               |     r3 = *((r3 + 4));
    0x00015cfe ldr r1, [r1]                                  |     r1 = *(r1);
    0x00015d00 str r2, [r0, 0x14]                            |     *((r0 + 0x14)) = r2;
    0x00015d02 movs r2, 0                                    |     r2 = 0;
    0x00015d04 subs r3, r3, r1                               |     r3 -= r1;
    0x00015d06 mov r1, r2                                    |     r1 = r2;
    0x00015d08 adds r3, 1                                    |     r3++;
    0x00015d0a str r3, [r0, 8]                               |     *((r0 + 8)) = r3;
    0x00015d0c movs r0, 4                                    |     r0 = 4;
    0x00015d0e ldr.w r3, [r5, r6, lsl 2]                     |     offset_5 = r6 << 2;
                                                             |     r3 = *((r5 + offset_5));
    0x00015d12 ldr r3, [r3, 0x10]                            |     r3 = *((r3 + 0x10));
    0x00015d14 str r0, [r4, 0x18]                            |     *((r4 + 0x18)) = r0;
    0x00015d16 str r3, [r4, 0x30]                            |     *((r4 + 0x30)) = r3;
    0x00015d18 blx 0x6264                                    |     r0 = fcn_00006264 ();
    0x00015d1c mov r3, r0                                    |     r3 = r0;
    0x00015d1e mov r2, r4                                    |     r2 = r4;
    0x00015d20 mov r1, r7                                    |     r1 = r7;
    0x00015d22 mov r0, r8                                    |     r0 = r8;
    0x00015d24 str r3, [r4, 0x10]                            |     *((r4 + 0x10)) = r3;
    0x00015d26 pop.w {r3, r4, r5, r6, r7, r8, sb, lr}        |     
    0x00015d2a b 0x1568c                                     |     return void (*0x1568c)() ();
                                                             | }

[*] Function mmap used 1 times libgstrtp.so