[*] Binary protection state of libgstisomp4.so

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


[*] Function system tear down of libgstisomp4.so

    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/gstreamer-1.0/libgstisomp4.so @ 0x2fc54 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0002fc54 ()                                      | void fcn_0002fc54 (int16_t arg1, int16_t arg2, int16_t arg3) {
                                                                 |     int16_t var_4h_5;
                                                                 |     int16_t var_ch_4;
                                                                 |     int16_t var_10h_5;
                                                                 |     int16_t var_14h_3;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x0002fc54 svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x0002fc58 sub sp, 0x1c                                      |     
    0x0002fc5a str r2, [sp, 4]                                   |     var_4h_5 = r2;
    0x0002fc5c mov r4, r0                                        |     r4 = r0;
    0x0002fc5e movs r0, 0x20                                     |     r0 = 0x20;
    0x0002fc60 mov r6, r1                                        |     r6 = r1;
    0x0002fc62 ldr r2, [pc, 0x1cc]                               |     
    0x0002fc64 ldr r3, [pc, 0x1cc]                               |     r3 = *(0x2fe34);
    0x0002fc66 add r2, pc                                        |     r2 = 0x5fa9c;
    0x0002fc68 ldr r3, [r2, r3]                                  |     
    0x0002fc6a ldr r3, [r3]                                      |     r3 = *(0x5fa9c);
    0x0002fc6c str r3, [sp, 0x14]                                |     var_14h_3 = r3;
    0x0002fc6e mov.w r3, 0                                       |     r3 = 0;
    0x0002fc72 blx 0x8adc                                        |     gst_buffer_new_allocate ();
    0x0002fc76 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x0002fc78 beq 0x2fd0a                                       |         goto label_4;
                                                                 |     }
    0x0002fc7a strd r4, r6, [r0]                                 |     __asm ("strd r4, r6, [r0]");
    0x0002fc7e mov r5, r0                                        |     r5 = r0;
    0x0002fc80 movs r2, 2                                        |     r2 = 2;
    0x0002fc82 movs r1, 0                                        |     r1 = 0;
    0x0002fc84 mov r0, r4                                        |     r0 = r4;
    0x0002fc86 blx 0x8150                                        |     r0 = fcn_00008150 ();
    0x0002fc8a mov r7, r0                                        |     r7 = r0;
                                                                 |     if (r0 != 0) {
    0x0002fc8c cbnz r0, 0x2fce4                                  |         goto label_5;
                                                                 |     }
    0x0002fc8e mov r0, r4                                        |     r0 = r4;
    0x0002fc90 blx 0x8404                                        |     r0 = gst_pad_pause_task ();
    0x0002fc94 asrs r3, r0, 0x1f                                 |     r3 = r0 >> 0x1f;
    0x0002fc96 str r0, [r5, 8]                                   |     *((r5 + 8)) = r0;
    0x0002fc98 cmp.w r3, -1                                      |     
    0x0002fc9c it eq                                             |     
                                                                 |     if (r3 == -1) {
    0x0002fc9e cmpeq r0, -1                                      |         __asm ("cmpeq r0, -1");
                                                                 |     }
    0x0002fca0 subs r7, 0xff                                     |     r7 -= 0xff;
    0x0002fca2 str r3, [r5, 0xc]                                 |     *((r5 + 0xc)) = r3;
                                                                 |     if (r7 == 0xff) {
    0x0002fca4 beq 0x2fce4                                       |         goto label_5;
                                                                 |     }
    0x0002fca6 mov r2, r7                                        |     r2 = r7;
    0x0002fca8 mov r1, r7                                        |     r1 = r7;
    0x0002fcaa mov r0, r4                                        |     r0 = r4;
    0x0002fcac blx 0x8150                                        |     r0 = fcn_00008150 ();
    0x0002fcb0 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0002fcb2 bne 0x2fda2                                       |         goto label_6;
                                                                 |     }
                                                                 |     if (r6 == 0) {
    0x0002fcb4 cbz r6, 0x2fd1a                                   |         goto label_7;
                                                                 |     }
    0x0002fcb6 vldr d16, [pc, 0x170]                             |     __asm ("vldr d16, aav.0x000000ff");
    0x0002fcba movs r2, 0x10                                     |     r2 = 0x10;
    0x0002fcbc movs r3, 0                                        |     r3 = 0;
    0x0002fcbe strd r2, r3, [r5, 0x18]                           |     __asm ("strd r2, r3, [r5, 0x18]");
    0x0002fcc2 vstr d16, [r5, 0x10]                              |     __asm ("vstr d16, [r5, 0x10]");
                                                                 |     do {
                                                                 | label_3:
    0x0002fcc6 ldr r2, [pc, 0x170]                               |         
    0x0002fcc8 ldr r3, [pc, 0x168]                               |         r3 = *(0x2fe34);
    0x0002fcca add r2, pc                                        |         r2 = 0x5fb08;
    0x0002fccc ldr r3, [r2, r3]                                  |         r3 = *(0x5fb08);
    0x0002fcce ldr r2, [r3]                                      |         r2 = *(0x5fb08);
    0x0002fcd0 ldr r3, [sp, 0x14]                                |         r3 = var_14h_3;
    0x0002fcd2 eors r2, r3                                       |         r2 ^= r3;
    0x0002fcd4 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x0002fcd8 bne.w 0x2fe22                                     |             goto label_8;
                                                                 |         }
    0x0002fcdc mov r0, r5                                        |         r0 = r5;
    0x0002fcde add sp, 0x1c                                      |         
    0x0002fce0 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_5:
    0x0002fce4 ldr r0, [pc, 0x154]                               |         
    0x0002fce6 add r0, pc                                        |         r0 = 0x5fb26;
    0x0002fce8 blx 0x85a8                                        |         g_ptr_array_new_full ();
    0x0002fcec ldr r3, [pc, 0x150]                               |         
    0x0002fcee mov r1, r0                                        |         r1 = r0;
    0x0002fcf0 movs r2, 2                                        |         r2 = 2;
    0x0002fcf2 ldr r0, [sp, 4]                                   |         r0 = var_4h_5;
    0x0002fcf4 add r3, pc                                        |         r3 = 0x5fb38;
    0x0002fcf6 blx 0x8488                                        |         g_value_get_uint64 ();
                                                                 | label_1:
    0x0002fcfa ldr r0, [r5]                                      |         r0 = *(r5);
    0x0002fcfc blx 0x7ba8                                        |         fcn_00007ba8 ();
    0x0002fd00 mov r0, r5                                        |         r0 = r5;
    0x0002fd02 blx 0x782c                                        |         fcn_0000782c ();
    0x0002fd04 invalid                                           |         
                                                                 | label_0:
    0x0002fd06 movs r5, 0                                        |         r5 = 0;
    0x0002fd08 b 0x2fcc6                                         |         
                                                                 |     } while (1);
                                                                 | label_4:
    0x0002fd0a ldr r2, [pc, 0x138]                               |     
    0x0002fd0c mov r0, r4                                        |     r0 = r4;
    0x0002fd0e ldr r1, [pc, 0x138]                               |     
    0x0002fd10 add r2, pc                                        |     r2 = 0x5fb5a;
    0x0002fd12 add r1, pc                                        |     r1 = 0x5fb60;
    0x0002fd14 blx 0x83f8                                        |     gst_context_has_context_type ();
    0x0002fd18 b 0x2fd06                                         |     goto label_0;
                                                                 | label_7:
    0x0002fd1a movw fp, 0x646d                                   |     
    0x0002fd1e movw sl, 0x7266                                   |     
    0x0002fd22 movw sb, 0x7466                                   |     
    0x0002fd26 movw r8, 0x6475                                   |     
    0x0002fd2a strd r6, r6, [sp, 0xc]                            |     __asm ("strd r6, r6, [sp, 0xc]");
    0x0002fd2e add r7, sp, 0x10                                  |     r7 += var_10h_5;
    0x0002fd30 movt fp, 0x7461                                   |     fp = 0x7461646d;
    0x0002fd34 movt sl, 0x6565                                   |     sl = 0x65657266;
    0x0002fd36 ldrh r5, [r4, r1]                                 |     r5 = *((r4 + r1));
    0x0002fd38 movt sb, 0x7079                                   |     sb = 0x70797466;
    0x0002fd3c movt r8, 0x6174                                   |     r8 = 0x61746475;
    0x0002fd40 add r6, sp, 0xc                                   |     r6 += var_ch_4;
                                                                 | label_2:
    0x0002fd42 mov r2, r7                                        |     r2 = r7;
    0x0002fd44 mov r1, r6                                        |     r1 = r6;
    0x0002fd46 mov r0, r4                                        |     r0 = r4;
    0x0002fd48 bl 0x2f880                                        |     r0 = fcn_0002f880 (r0, r1, r2);
                                                                 |     if (r0 == 0) {
    0x0002fd4c cbz r0, 0x2fd8a                                   |         goto label_9;
                                                                 |     }
    0x0002fd4e ldr r3, [sp, 0xc]                                 |     r3 = var_ch_4;
    0x0002fd50 cmp r3, fp                                        |     
                                                                 |     if (r3 == fp) {
    0x0002fd52 beq 0x2fdba                                       |         goto label_10;
                                                                 |     }
                                                                 |     if (r3 > fp) {
    0x0002fd54 bhi 0x2fcfa                                       |         goto label_1;
                                                                 |     }
    0x0002fd56 cmp r3, sl                                        |     
                                                                 |     if (r3 == sl) {
    0x0002fd58 beq 0x2fd62                                       |         goto label_11;
                                                                 |     }
    0x0002fd5a cmp r3, sb                                        |     
                                                                 |     if (r3 == sb) {
    0x0002fd5c beq 0x2fd62                                       |         goto label_11;
                                                                 |     }
    0x0002fd5e cmp r3, r8                                        |     
                                                                 |     if (r3 != r8) {
    0x0002fd60 bne 0x2fcfa                                       |         goto label_1;
                                                                 |     }
                                                                 | label_11:
    0x0002fd62 ldr r1, [sp, 0x10]                                |     r1 = var_10h_5;
    0x0002fd64 movs r2, 1                                        |     r2 = 1;
    0x0002fd66 mov r0, r4                                        |     r0 = r4;
    0x0002fd68 subs r1, 8                                        |     r1 -= 8;
    0x0002fd6a blx 0x8150                                        |     r0 = fcn_00008150 ();
    0x0002fd6e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0002fd70 beq 0x2fd42                                       |         goto label_2;
                                                                 |     }
                                                                 |     do {
    0x0002fd72 ldr r0, [pc, 0xd8]                                |         
    0x0002fd74 add r0, pc                                        |         r0 = 0x5fbc6;
    0x0002fd76 blx 0x85a8                                        |         g_ptr_array_new_full ();
    0x0002fd7a ldr r3, [pc, 0xd4]                                |         
    0x0002fd7c mov r1, r0                                        |         r1 = r0;
    0x0002fd7e movs r2, 2                                        |         r2 = 2;
    0x0002fd80 ldr r0, [sp, 4]                                   |         r0 = var_4h_5;
    0x0002fd82 add r3, pc                                        |         r3 = 0x5fbd8;
    0x0002fd84 blx 0x8488                                        |         g_value_get_uint64 ();
    0x0002fd88 b 0x2fcfa                                         |         goto label_1;
                                                                 | label_9:
    0x0002fd8a ldr r0, [pc, 0xc8]                                |         
    0x0002fd8c add r0, pc                                        |         r0 = 0x5fbe6;
    0x0002fd8e blx 0x85a8                                        |         g_ptr_array_new_full ();
    0x0002fd92 ldr r3, [pc, 0xc4]                                |         
    0x0002fd94 mov r1, r0                                        |         r1 = r0;
    0x0002fd96 movs r2, 2                                        |         r2 = 2;
    0x0002fd98 ldr r0, [sp, 4]                                   |         r0 = var_4h_5;
    0x0002fd9a add r3, pc                                        |         r3 = 0x5fbf8;
    0x0002fd9c blx 0x8488                                        |         g_value_get_uint64 ();
    0x0002fda0 b 0x2fcfa                                         |         goto label_1;
                                                                 | label_6:
    0x0002fda2 ldr r0, [pc, 0xb8]                                |         
    0x0002fda4 add r0, pc                                        |         r0 = 0x5fc06;
    0x0002fda6 blx 0x85a8                                        |         g_ptr_array_new_full ();
    0x0002fdaa ldr r3, [pc, 0xb4]                                |         
    0x0002fdac mov r1, r0                                        |         r1 = r0;
    0x0002fdae movs r2, 2                                        |         r2 = 2;
    0x0002fdb0 ldr r0, [sp, 4]                                   |         r0 = var_4h_5;
    0x0002fdb2 add r3, pc                                        |         r3 = 0x5fc18;
    0x0002fdb4 blx 0x8488                                        |         g_value_get_uint64 ();
    0x0002fdb8 b 0x2fcfa                                         |         goto label_1;
                                                                 | label_10:
    0x0002fdba mov r0, r4                                        |         r0 = r4;
    0x0002fdbc movs r2, 1                                        |         r2 = 1;
    0x0002fdbe mvn r1, 7                                         |         r1 = ~7;
    0x0002fdc2 blx 0x8150                                        |         r0 = fcn_00008150 ();
    0x0002fdc6 cmp r0, 0                                         |         
    0x0002fdc8 bne 0x2fd72                                       |         
                                                                 |     } while (r0 != 0);
    0x0002fdca ldr r0, [r5]                                      |     r0 = *(r5);
    0x0002fdcc mov r2, r7                                        |     r2 = r7;
    0x0002fdce mov r1, r6                                        |     r1 = r6;
    0x0002fdd0 bl 0x2f880                                        |     r0 = fcn_0002f880 (r0, r1, r2);
                                                                 |     if (r0 == 0) {
    0x0002fdd4 cbz r0, 0x2fe0a                                   |         goto label_12;
                                                                 |     }
    0x0002fdd6 ldr r3, [sp, 0x10]                                |     r3 = var_10h_5;
    0x0002fdd8 cmp r3, 1                                         |     
    0x0002fdda ittee eq                                          |     
                                                                 |     if (r3 != 1) {
    0x0002fddc moveq r0, 0x10                                    |         r0 = 0x10;
                                                                 |     }
                                                                 |     if (r3 != 1) {
    0x0002fdde moveq r3, 0x10                                    |         r3 = 0x10;
                                                                 |     }
                                                                 |     if (r3 == 1) {
    0x0002fde0 movne r0, 8                                       |         r0 = 8;
                                                                 |     }
                                                                 |     if (r3 == 1) {
    0x0002fde2 movne r3, 8                                       |         r3 = 8;
                                                                 |     }
    0x0002fde4 ite eq                                            |     
                                                                 |     if (r3 != 1) {
    0x0002fde6 moveq r1, 0                                       |         r1 = 0;
                                                                 |     }
                                                                 |     if (r3 == 1) {
    0x0002fde8 movne r1, 0                                       |         r1 = 0;
                                                                 |     }
    0x0002fdea strd r0, r1, [r5, 0x18]                           |     __asm ("strd r0, r1, [r5, 0x18]");
    0x0002fdee str r3, [r5, 0x10]                                |     *((r5 + 0x10)) = r3;
    0x0002fdf0 ldr r0, [r5]                                      |     r0 = *(r5);
    0x0002fdf2 blx 0x8404                                        |     gst_pad_pause_task ();
    0x0002fdf6 ldr r2, [sp, 0xc]                                 |     r2 = var_ch_4;
    0x0002fdf8 movw r3, 0x646d                                   |     
    0x0002fdfc movt r3, 0x7461                                   |     r3 = 0x7461646d;
    0x0002fe00 subs r0, 8                                        |     r0 -= 8;
    0x0002fe02 str r0, [r5, 0x14]                                |     *((r5 + 0x14)) = r0;
    0x0002fe04 cmp r2, r3                                        |     
                                                                 |     if (r2 == r3) {
    0x0002fe06 beq.w 0x2fcc6                                     |         goto label_3;
                                                                 |     }
    0x0002fe08 add r7, sp, 0x178                                 |     r7 = sp + 0x178;
                                                                 | label_12:
    0x0002fe0a ldr r0, [pc, 0x58]                                |     
    0x0002fe0c add r0, pc                                        |     r0 = 0x5fc76;
    0x0002fe0e blx 0x85a8                                        |     g_ptr_array_new_full ();
    0x0002fe12 ldr r3, [pc, 0x54]                                |     
    0x0002fe14 mov r1, r0                                        |     r1 = r0;
    0x0002fe16 movs r2, 3                                        |     r2 = 3;
    0x0002fe18 ldr r0, [sp, 4]                                   |     r0 = var_4h_5;
    0x0002fe1a add r3, pc                                        |     r3 = 0x5fc88;
    0x0002fe1c blx 0x8488                                        |     g_value_get_uint64 ();
    0x0002fe20 b 0x2fcfa                                         |     goto label_1;
                                                                 | label_8:
    0x0002fe22 blx 0x88d8                                        |     gst_buffer_add_protection_meta ();
    0x0002fe26 nop                                               |     
    0x0002fe28 movs r0, r2                                       |     r0 = r2;
    0x0002fe2a movs r0, r0                                       |     
    0x0002fe2c movs r0, r0                                       |     
    0x0002fe2e movs r0, r0                                       |     
    0x0002fe30 ldm r3!, {r1, r2, r4}                             |     r1 = *(r3!);
                                                                 |     r2 = *((r3! + 4));
                                                                 |     r4 = *((r3! + 8));
    0x0002fe32 movs r0, r0                                       |     
    0x0002fe34 lsrs r0, r4, 1                                    |     r0 = r4 >> 1;
    0x0002fe36 movs r0, r0                                       |     
    0x0002fe38 ldm r2!, {r1, r4, r5, r7}                         |     r1 = *(r2!);
                                                                 |     r4 = *((r2! + 4));
                                                                 |     r5 = *((r2! + 8));
                                                                 |     r7 = *((r2! + 12));
    0x0002fe3a movs r0, r0                                       |     
    0x0002fe3c strh r2, [r7, 0x28]                               |     *((r7 + 0x28)) = r2;
    0x0002fe3e movs r0, r0                                       |     
    0x0002fe40 strh r0, [r4, 0x2c]                               |     *((r4 + 0x2c)) = r0;
    0x0002fe42 movs r0, r0                                       |     
    0x0002fe44 strh r0, [r0, 0x28]                               |     *((r0 + 0x28)) = r0;
    0x0002fe46 movs r0, r0                                       |     
    0x0002fe48 ldrh r2, [r0, 2]                                  |     r2 = *((r0 + 2));
    0x0002fe4a movs r0, r0                                       |     
    0x0002fe4c strh r4, [r5, 0x24]                               |     *((r5 + 0x24)) = r4;
    0x0002fe4e movs r0, r0                                       |     
    0x0002fe50 strh r6, [r6, 0x24]                               |     *((r6 + 0x24)) = r6;
    0x0002fe52 movs r0, r0                                       |     
    0x0002fe54 strh r4, [r2, 0x24]                               |     *((r2 + 0x24)) = r4;
    0x0002fe56 movs r0, r0                                       |     
    0x0002fe58 strh r2, [r0, 0x26]                               |     *((r0 + 0x26)) = r2;
    0x0002fe5a movs r0, r0                                       |     
    0x0002fe5c strh r4, [r7, 0x22]                               |     *((r7 + 0x22)) = r4;
    0x0002fe5e movs r0, r0                                       |     
    0x0002fe60 strh r6, [r0, 0x24]                               |     *((r0 + 0x24)) = r6;
    0x0002fe62 movs r0, r0                                       |     
    0x0002fe64 strh r4, [r2, 0x20]                               |     *((r2 + 0x20)) = r4;
    0x0002fe66 movs r0, r0                                       |     
    0x0002fe68 strh r2, [r3, 0x22]                               |     *((r3 + 0x22)) = r2;
    0x0002fe6a movs r0, r0                                       |     
                                                                 | }

[*] Function system used 1 times libgstisomp4.so