[*] Binary protection state of libgstreamer-1.0.so.0.1803.0

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


[*] Function system tear down of libgstreamer-1.0.so.0.1803.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/libgstreamer-1.0.so.0.1803.0 @ 0x33b38 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00033b38 ()                  | void fcn_00033b38 () {
    0x00033b38 invalid                       |     
    0x00033b3c ldr r4, [pc, 0x2c]            |     
    0x00033b3e mov r5, r1                    |     r5 = r1;
    0x00033b40 ldr r3, [pc, 0x2c]            |     r3 = *(0x33b70);
    0x00033b42 add r4, pc                    |     
    0x00033b44 ldr r6, [r4, r3]              |     r6 = *(0x676b2);
    0x00033b46 ldr r0, [r6]                  |     r0 = *(0x676b2);
    0x00033b48 bl 0x33ab8                    |     gst_caps_features_set_parent_refcount ();
    0x00033b4c ldr r0, [r6]                  |     r0 = *(0x676b2);
    0x00033b4e bl 0x339b8                    |     gst_caps_features_free ();
    0x00033b52 ldr r3, [pc, 0x20]            |     r3 = *(0x33b76);
    0x00033b54 mov r1, r5                    |     r1 = r5;
    0x00033b56 str r5, [r6]                  |     *(r6) = r5;
    0x00033b58 ldr r4, [r4, r3]              |     r4 = *(0x676b2);
    0x00033b5a ldr r0, [r4]                  |     r0 = *(0x676b2);
    0x00033b5c bl 0x33ab8                    |     gst_caps_features_set_parent_refcount ();
    0x00033b60 ldr r0, [r4]                  |     r0 = *(0x676b2);
    0x00033b62 bl 0x339b8                    |     gst_caps_features_free ();
    0x00033b66 str r5, [r4]                  |     *(r4) = r5;
    0x00033b68 pop {r4, r5, r6, pc}          |     
                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.1803.0 @ 0x32308 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.gst_caps_can_intersect ()                        | void gst_caps_can_intersect (int16_t arg_0h, uint32_t arg1, uint32_t arg2) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00032308 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x0003230c sub sp, 0x1c                                      |     
    0x0003230e ldr.w fp, [pc, 0x170]                             |     
    0x00032312 add fp, pc                                        |     fp = 0x64798;
                                                                 |     if (r0 != 0) {
    0x00032314 cbz r0, 0x32326                                   |         
    0x00032316 ldr r3, [pc, 0x16c]                               |         
    0x00032318 mov sb, r0                                        |         sb = r0;
    0x0003231a ldr r2, [r0]                                      |         r2 = *(r0);
    0x0003231c ldr.w r3, [fp, r3]                                |         r3 = *((fp + r3));
    0x00032320 ldr r3, [r3]                                      |         r3 = *(0x32486);
    0x00032322 cmp r2, r3                                        |         
                                                                 |         if (r2 == r3) {
    0x00032324 beq 0x32344                                       |             goto label_3;
                                                                 |         }
                                                                 |     }
    0x00032326 ldr r1, [pc, 0x160]                               |     
    0x00032328 ldr r3, [pc, 0x160]                               |     r3 = *(0x3248c);
    0x0003232a ldr r2, [pc, 0x164]                               |     
    0x0003232c add r1, pc                                        |     
    0x0003232e ldr.w r0, [fp, r3]                                |     r0 = *((fp + r3));
    0x00032332 add.w r1, r1, 0x2a0                               |     r1 = 0x64a5a;
    0x00032336 add r2, pc                                        |     r2 = 0x647cc;
    0x00032338 blx 0x1fdd0                                       |     fcn_0001fdd0 ();
    0x0003233c movs r0, 0                                        |     r0 = 0;
                                                                 | label_2:
    0x0003233e add sp, 0x1c                                      |     
    0x00032340 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_3:
    0x00032344 mov sl, r1                                        |     sl = r1;
                                                                 |     if (r1 != 0) {
    0x00032346 cbz r1, 0x3234e                                   |         
    0x00032348 ldr r3, [r1]                                      |         r3 = *(r1);
    0x0003234a cmp r2, r3                                        |         
                                                                 |         if (r2 == r3) {
    0x0003234c beq 0x3236c                                       |             goto label_4;
                                                                 |         }
                                                                 |     }
    0x0003234e ldr r1, [pc, 0x144]                               |     
    0x00032350 ldr r3, [pc, 0x138]                               |     r3 = *(0x3248c);
    0x00032352 ldr r2, [pc, 0x144]                               |     
    0x00032354 add r1, pc                                        |     
    0x00032356 ldr.w r0, [fp, r3]                                |     r0 = *((fp + r3));
    0x0003235a add.w r1, r1, 0x2a0                               |     r1 = 0x64a8e;
    0x0003235e add r2, pc                                        |     r2 = 0x647fc;
    0x00032360 blx 0x1fdd0                                       |     fcn_0001fdd0 ();
    0x00032362 ldc p0, c2, [r6, -0]!                             |     __asm ("ldc p0, c2, [r6, -0]!");
    0x00032366 add sp, 0x1c                                      |     
    0x00032368 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_4:
    0x0003236c cmp r0, r1                                        |     
                                                                 |     if (r0 == r1) {
    0x0003236e beq.w 0x32474                                     |         goto label_5;
                                                                 |     }
    0x00032372 ldr r3, [r0, 0xc]                                 |     r3 = *(arg_0hxc);
    0x00032374 ands r3, r3, 0x10                                 |     r3 &= 0x10;
    0x00032378 str r3, [sp, 8]                                   |     var_8h = r3;
                                                                 |     if (r3 == r3) {
    0x0003237a bne 0x32388                                       |         
    0x0003237c ldr r3, [r0, 0x24]                                |         r3 = *(arg_0hx24);
    0x0003237e cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00032380 beq 0x3247c                                       |             goto label_6;
                                                                 |         }
    0x00032382 ldr r3, [r3, 4]                                   |         r3 = *((r3 + 4));
    0x00032384 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00032386 beq 0x3247c                                       |             goto label_6;
                                                                 |         }
                                                                 |     }
    0x00032388 ldr.w r3, [sl, 0xc]                               |     r3 = *((sl + 0xc));
    0x0003238c lsls r3, r3, 0x1b                                 |     r3 <<= 0x1b;
                                                                 |     if (r3 < r3) {
    0x0003238e bmi 0x32474                                       |         goto label_5;
                                                                 |     }
    0x00032390 ldr.w r3, [sl, 0x24]                              |     r3 = *((sl + 0x24));
    0x00032394 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00032396 beq 0x3247c                                       |         goto label_6;
                                                                 |     }
    0x00032398 ldr r2, [r3, 4]                                   |     r2 = *((r3 + 4));
    0x0003239a str r2, [sp, 0x10]                                |     var_10h = r2;
    0x0003239c cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0003239e beq 0x3247c                                       |         goto label_6;
                                                                 |     }
    0x000323a0 ldr r3, [sp, 8]                                   |     r3 = var_8h;
    0x000323a2 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x000323a4 bne 0x32474                                       |         goto label_5;
                                                                 |     }
    0x000323a6 ldr.w r3, [sb, 0x24]                              |     r3 = *((sb + 0x24));
    0x000323aa subs r2, 1                                        |     r2--;
    0x000323ac ldr r3, [r3, 4]                                   |     r3 = *((r3 + 4));
    0x000323ae add r2, r3                                        |     r2 += r3;
    0x000323b0 str r2, [sp, 0xc]                                 |     var_ch = r2;
    0x000323b2 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x000323b4 beq 0x3247c                                       |         goto label_6;
                                                                 |     }
    0x000323b6 ldr r6, [sp, 8]                                   |     r6 = var_8h;
    0x000323b8 subs r3, 1                                        |     r3--;
    0x000323ba str r3, [sp, 0x14]                                |     var_14h = r3;
    0x000323bc mov r4, r6                                        |     r4 = r6;
    0x000323be mov r7, r6                                        |     r7 = r6;
    0x000323c0 str r6, [sp]                                      |     *(sp) = r6;
                                                                 | label_0:
    0x000323c2 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x000323c4 cmp r4, r3                                        |     
                                                                 |     if (r4 >= r3) {
    0x000323c6 bhs 0x32430                                       |         goto label_7;
                                                                 |     }
    0x000323c8 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x000323ca lsl.w r8, r4, 3                                   |     r8 = r4 << 3;
    0x000323ce add r4, r7                                        |     r4 += r7;
    0x000323d0 str r6, [sp, 4]                                   |     var_4h = r6;
    0x000323d2 mov r6, r8                                        |     r6 = r8;
    0x000323d4 subs r5, r4, r3                                   |     r5 = r4 - r3;
                                                                 |     do {
    0x000323d6 ldr.w r3, [sb, 0x24]                              |         r3 = *((sb + 0x24));
    0x000323da ldr r1, [pc, 0xc0]                                |         r1 = *(0x3249e);
    0x000323dc ldr r3, [r3]                                      |         r3 = *(r3);
    0x000323de ldr.w r4, [r3, r7, lsl 3]                         |         offset_0 = r7 << 3;
                                                                 |         r4 = *((r3 + offset_0));
    0x000323e0 ands r7, r6                                       |         r7 &= r6;
    0x000323e2 dmb ish                                           |         __asm ("dmb ish");
    0x000323e4 ldrh r3, [r3, 0x3a]                               |         r3 = *((r3 + 0x3a));
    0x000323e6 add.w r3, r3, r7, lsl 3                           |         r3 += (r7 << 3);
    0x000323ea ldr r3, [r3, 4]                                   |         r3 = *((r3 + 4));
    0x000323ec dmb ish                                           |         __asm ("dmb ish");
    0x000323f0 mov r0, r3                                        |         r0 = r3;
                                                                 |         if (r3 == 0) {
    0x000323f2 cbnz r3, 0x323fa                                  |             
    0x000323f4 ldr.w r3, [fp, r1]                                |             r3 = *((fp + r1));
    0x000323f8 ldr r0, [r3]                                      |             r0 = *(r3);
                                                                 |         }
    0x000323fa ldr.w r3, [sl, 0x24]                              |         r3 = *((sl + 0x24));
    0x000323fe ldr.w ip, [pc, 0x9c]                              |         ip = *(0x3249e);
    0x00032402 ldr r3, [r3]                                      |         r3 = *(r3);
    0x00032404 adds r1, r3, r6                                   |         r1 = r3 + r6;
    0x00032406 ldr.w r8, [r3, r6]                                |         r8 = *((r3 + r6));
    0x0003240a dmb ish                                           |         __asm ("dmb ish");
    0x0003240e ldr r3, [r1, 4]                                   |         r3 = *((r1 + 4));
    0x00032410 dmb ish                                           |         __asm ("dmb ish");
    0x00032414 mov r1, r3                                        |         r1 = r3;
                                                                 |         if (r3 == 0) {
    0x00032416 cbnz r3, 0x3241e                                  |             
    0x00032418 ldr.w r3, [fp, ip]                                |             r3 = *((fp + ip));
    0x0003241c ldr r1, [r3]                                      |             r1 = *(r3);
                                                                 |         }
    0x0003241e adds r6, 8                                        |         r6 += 8;
    0x00032420 bl 0x33e98                                        |         r0 = gst_caps_features_is_equal ();
                                                                 |         if (r0 != 0) {
    0x00032424 cbnz r0, 0x32468                                  |             goto label_8;
                                                                 |         }
                                                                 |         if (r7 == 0) {
                                                                 | label_1:
    0x00032426 cbz r7, 0x3242e                                   |             goto label_9;
                                                                 |         }
    0x00032428 subs r7, 1                                        |         r7--;
    0x0003242a cmp r7, r5                                        |         
    0x0003242c bne 0x323d6                                       |         
                                                                 |     } while (r7 != r5);
                                                                 | label_9:
    0x0003242e ldr r6, [sp, 4]                                   |     r6 = var_4h;
                                                                 | label_7:
    0x00032430 ldr r3, [sp]                                      |     r3 = *(sp);
    0x00032432 ldrd r0, r1, [sp, 8]                              |     __asm ("ldrd r0, r1, [var_8h]");
    0x00032436 adds r4, r3, 1                                    |     r4 = r3 + 1;
    0x00032438 adc r2, r6, 0                                     |     __asm ("adc r2, r6, 0");
    0x0003243c str r4, [sp]                                      |     *(sp) = r4;
    0x0003243e cmp r2, r0                                        |     
    0x00032440 it eq                                             |     
                                                                 |     if (r2 == r0) {
    0x00032442 cmpeq r4, r1                                      |         __asm ("cmpeq r4, r1");
                                                                 |     }
    0x00032444 mov r6, r2                                        |     r6 = r2;
                                                                 |     if (r2 == r0) {
    0x00032446 beq 0x3247c                                       |         goto label_6;
                                                                 |     }
    0x00032448 ldr r0, [sp, 0x14]                                |     r0 = var_14h;
    0x0003244a movs r1, 0                                        |     r1 = 0;
    0x0003244c cmp r4, r0                                        |     
    0x0003244e mov r3, r0                                        |     r3 = r0;
    0x00032450 sbcs r0, r6, 0                                    |     __asm ("sbcs r0, r6, 0");
    0x00032454 itt lo                                            |     
                                                                 |     if (r4 >= r0) {
    0x00032456 movlo r3, r4                                      |         r3 = r4;
                                                                 |     }
                                                                 |     if (r4 >= r0) {
    0x00032458 movlo r1, r6                                      |         r1 = r6;
                                                                 |     }
    0x0003245a cmp r3, r4                                        |     
    0x0003245c mov r7, r3                                        |     r7 = r3;
    0x0003245e sbcs r1, r2                                       |     __asm ("sbcs r1, r2");
    0x00032460 ite lo                                            |     
                                                                 |     if (r3 >= r4) {
    0x00032462 sublo r4, r4, r3                                  |         r4 -= r3;
                                                                 |     }
                                                                 |     if (r3 < r4) {
    0x00032464 movhs r4, 0                                       |         r4 = 0;
                                                                 |     }
    0x00032466 b 0x323c2                                         |     goto label_0;
                                                                 | label_8:
    0x00032468 mov r1, r8                                        |     r1 = r8;
    0x0003246a mov r0, r4                                        |     r0 = r4;
    0x0003246c bl 0x61d48                                        |     r0 = gst_structure_can_intersect ();
    0x00032470 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00032472 beq 0x32426                                       |         goto label_1;
                                                                 |     }
                                                                 | label_5:
    0x00032474 movs r0, 1                                        |     r0 = 1;
    0x00032476 add sp, 0x1c                                      |     
    0x00032478 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_6:
    0x0003247c movs r0, 0                                        |     r0 = 0;
    0x0003247e b 0x3233e                                         |     goto label_2;
                                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.1803.0 @ 0x317e4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.gst_caps_copy_nth ()         | void gst_caps_copy_nth (int16_t arg1, int16_t arg2) {
                                             |     int16_t var_0h;
                                             |     int16_t var_4h;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x000317e4 push {r4, r5, r6, r7, lr}     |     
    0x000317e6 sub sp, 0xc                   |     
    0x000317e8 ldr r7, [pc, 0xb4]            |     
    0x000317ea add r7, pc                    |     r7 = 0x6308e;
                                             |     if (r0 != 0) {
    0x000317ec cbz r0, 0x317fc               |         
    0x000317ee ldr r3, [pc, 0xb4]            |         
    0x000317f0 mov r4, r0                    |         r4 = r0;
    0x000317f2 ldr r2, [r0]                  |         r2 = *(r0);
    0x000317f4 ldr r3, [r7, r3]              |         r3 = *((r7 + r3));
    0x000317f6 ldr r3, [r3]                  |         r3 = *(0x318a6);
    0x000317f8 cmp r2, r3                    |         
                                             |         if (r2 == r3) {
    0x000317fa beq 0x31818                   |             goto label_2;
                                             |         }
                                             |     }
    0x000317fc ldr r1, [pc, 0xa8]            |     
    0x000317fe movs r5, 0                    |     r5 = 0;
    0x00031800 ldr r3, [pc, 0xa8]            |     r3 = *(0x318ac);
    0x00031802 ldr r2, [pc, 0xac]            |     
    0x00031804 add r1, pc                    |     
    0x00031806 ldr r0, [r7, r3]              |     r0 = *((r7 + r3));
    0x00031808 add.w r1, r1, 0x13c           |     r1 = 0x631ec;
    0x0003180c add r2, pc                    |     r2 = 0x630c2;
    0x0003180e blx 0x1fdd0                   |     fcn_0001fdd0 ();
                                             |     do {
                                             | label_0:
    0x00031812 mov r0, r5                    |         r0 = r5;
    0x00031814 add sp, 0xc                   |         
    0x00031816 pop {r4, r5, r6, r7, pc}      |         
                                             | label_2:
    0x00031818 mov r6, r1                    |         r6 = r1;
    0x0003181a bl 0x30dd8                    |         gst_caps_new_empty ();
    0x0003181e ldr r3, [r4, 0xc]             |         r3 = *((r4 + 0xc));
    0x00031820 mov r5, r0                    |         r5 = r0;
    0x00031822 str r3, [r0, 0xc]             |         *((r0 + 0xc)) = r3;
    0x00031824 ldr r3, [r4, 0x24]            |         r3 = *((r4 + 0x24));
    0x00031826 ldr r2, [r3, 4]               |         r2 = *((r3 + 4));
    0x00031828 cmp r2, r6                    |         
    0x0003182a bls 0x31812                   |         
                                             |     } while (r2 < r6);
    0x0003182c ldr r3, [r3]                  |     r3 = *(r3);
    0x0003182e ldr.w r0, [r3, r6, lsl 3]     |     offset_0 = r6 << 3;
                                             |     r0 = *((r3 + offset_0));
    0x00031832 dmb ish                       |     __asm ("dmb ish");
    0x00031836 add.w r2, r3, r6, lsl 3       |     r2 = r3 + (r6 << 3);
    0x0003183a ldr r4, [r2, 4]               |     r4 = *((r2 + 4));
    0x0003183c dmb ish                       |     __asm ("dmb ish");
    0x00031840 bl 0x5ef68                    |     gst_structure_copy ();
    0x00031842 invalid                       |     
                                             |     if (r4 != 0) {
    0x00031846 cbnz r4, 0x31874              |         goto label_3;
                                             |     }
                                             | label_1:
    0x00031848 adds r6, r5, 4                |     r6 = r5 + 4;
    0x0003184a str r4, [sp, 4]               |     var_4h = r4;
    0x0003184c mov r1, r6                    |     r1 = r6;
    0x0003184e bl 0x5eee8                    |     r0 = gst_structure_set_parent_refcount ();
    0x00031852 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x00031854 beq 0x31812                   |         goto label_0;
                                             |     }
    0x00031856 ldr r0, [sp, 4]               |     r0 = var_4h;
                                             |     if (r0 == 0) {
    0x00031858 cbz r0, 0x31864               |         goto label_4;
                                             |     }
    0x0003185a mov r1, r6                    |     r1 = r6;
    0x0003185c bl 0x33ab8                    |     r0 = gst_caps_features_set_parent_refcount ();
    0x00031860 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x00031862 beq 0x31812                   |         goto label_0;
                                             |     }
                                             | label_4:
    0x00031864 ldr r0, [r5, 0x24]            |     r0 = *((r5 + 0x24));
    0x00031866 movs r2, 1                    |     r2 = 1;
    0x00031868 mov r1, sp                    |     r1 = sp;
    0x0003186a blx 0x208f8                   |     fcn_000208f8 ();
    0x0003186c strex r6, r4, [r6, 0xa0]      |     __asm ("strex r6, r4, [r6, 0xa0]");
    0x00031870 add sp, 0xc                   |     
    0x00031872 pop {r4, r5, r6, r7, pc}      |     
                                             | label_3:
    0x00031874 mov r0, r4                    |     r0 = r4;
    0x00031876 bl 0x33f80                    |     r0 = gst_caps_features_is_any ();
    0x0003187a mov r6, r0                    |     r6 = r0;
                                             |     if (r0 == 0) {
    0x0003187c cbnz r0, 0x31892              |         
    0x0003187e ldr r3, [pc, 0x34]            |         r3 = *(0x318b6);
    0x00031880 mov r0, r4                    |         r0 = r4;
    0x00031882 ldr r3, [r7, r3]              |         r3 = *((r7 + r3));
    0x00031884 ldr r1, [r3]                  |         r1 = *(0x318b6);
    0x00031886 bl 0x33e98                    |         r0 = gst_caps_features_is_equal ();
                                             |         if (r0 == 0) {
    0x0003188a cbz r0, 0x31892               |             goto label_5;
                                             |         }
    0x0003188c ldr r0, [sp]                  |         r0 = *(sp);
    0x0003188e mov r4, r6                    |         r4 = r6;
    0x00031890 b 0x31848                     |         goto label_1;
                                             |     }
                                             | label_5:
    0x00031892 mov r0, r4                    |     r0 = r4;
    0x00031894 bl 0x34224                    |     r0 = gst_caps_features_copy ();
    0x00031898 mov r4, r0                    |     r4 = r0;
    0x0003189a ldr r0, [sp]                  |     r0 = *(sp);
    0x0003189c b 0x31848                     |     goto label_1;
                                             | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.1803.0 @ 0x32cc0 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.gst_caps_filter_and_map_in_place ()                  | void gst_caps_filter_and_map_in_place (int16_t arg1, int16_t arg2, int16_t arg3) {
                                                                     |     int16_t var_4h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
    0x00032cc0 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x00032cc4 sub sp, 0xc                                           |     
    0x00032cc6 ldr.w sl, [pc, 0x11c]                                 |     
    0x00032cca str r1, [sp, 4]                                       |     var_4h = r1;
    0x00032ccc add sl, pc                                            |     sl = 0x65ab6;
                                                                     |     if (r0 != 0) {
    0x00032cce cbz r0, 0x32ce2                                       |         
    0x00032cd0 ldr r3, [pc, 0x114]                                   |         
    0x00032cd2 mov sb, r2                                            |         sb = r2;
    0x00032cd4 ldr r2, [r0]                                          |         r2 = *(r0);
    0x00032cd6 mov r6, r0                                            |         r6 = r0;
    0x00032cd8 ldr.w r3, [sl, r3]                                    |         r3 = *((sl + r3));
    0x00032cdc ldr r3, [r3]                                          |         r3 = *(0x32de8);
    0x00032cde cmp r2, r3                                            |         
                                                                     |         if (r2 == r3) {
    0x00032ce0 beq 0x32cfe                                           |             goto label_4;
                                                                     |         }
                                                                     |     }
    0x00032ce2 ldr r1, [pc, 0x108]                                   |     
    0x00032ce4 ldr r2, [pc, 0x108]                                   |     
    0x00032ce6 ldr r3, [pc, 0x10c]                                   |     r3 = *(0x32df6);
    0x00032ce8 add r1, pc                                            |     r1 = 0x65ada;
    0x00032cea add r2, pc                                            |     r2 = 0x65ade;
                                                                     | label_3:
    0x00032cec ldr.w r0, [sl, r3]                                    |     r0 = *((sl + r3));
    0x00032cf0 add.w r1, r1, 0x33c                                   |     r1 += 0x33c;
    0x00032cf4 add sp, 0xc                                           |     
    0x00032cf6 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}            |     
    0x00032cfa b.w 0x1fdcc                                           |     void (*0x1fdcc)() ();
                                                                     | label_4:
    0x00032cfe bl 0x486d8                                            |     r0 = gst_mini_object_is_writable ();
    0x00032d02 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x00032d04 beq 0x32dca                                           |         goto label_5;
                                                                     |     }
    0x00032d06 ldr r3, [sp, 4]                                       |     r3 = var_4h;
    0x00032d08 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x00032d0a beq 0x32dd6                                           |         goto label_6;
                                                                     |     }
    0x00032d0c ldr r3, [r6, 0x24]                                    |     r3 = *((r6 + 0x24));
    0x00032d0e ldr.w r8, [r3, 4]                                     |     r8 = *((r3 + 4));
    0x00032d12 cmp.w r8, 0                                           |     
                                                                     |     if (r8 == 0) {
    0x00032d16 beq 0x32d9c                                           |         goto label_7;
                                                                     |     }
    0x00032d18 movs r5, 0                                            |     r5 = 0;
    0x00032d1a b 0x32d34                                             |     
                                                                     |     while (r4 != 0) {
    0x00032d1c ldr r3, [sp, 4]                                       |         r3 = var_4h;
    0x00032d1e mov r2, sb                                            |         r2 = sb;
    0x00032d20 mov r1, r7                                            |         r1 = r7;
    0x00032d22 mov r0, r4                                            |         r0 = r4;
    0x00032d24 blx r3                                                |         r0 = uint32_t (*r3)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
    0x00032d26 mov fp, r0                                            |         
    0x00032d28 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x00032d2a beq 0x32da2                                           |             goto label_8;
                                                                     |         }
                                                                     | label_0:
    0x00032d2c adds r5, 1                                            |         r5++;
    0x00032d2e cmp r8, r5                                            |         
                                                                     |         if (r8 < r5) {
    0x00032d30 bls 0x32d9c                                           |             goto label_7;
                                                                     |         }
                                                                     | label_1:
    0x00032d32 ldr r3, [r6, 0x24]                                    |         r3 = *((r6 + 0x24));
    0x00032d34 ldr r3, [r3]                                          |         r3 = *(r3);
    0x00032d36 dmb ish                                               |         __asm ("dmb ish");
    0x00032d3a add.w r3, r3, r5, lsl 3                               |         r3 += (r5 << 3);
    0x00032d3e ldr r4, [r3, 4]                                       |         r4 = *((r3 + 4));
    0x00032d40 dmb ish                                               |         __asm ("dmb ish");
    0x00032d44 ldr r3, [r6, 0x24]                                    |         r3 = *((r6 + 0x24));
    0x00032d46 ldr r3, [r3]                                          |         r3 = *(r3);
    0x00032d48 ldr.w r7, [r3, r5, lsl 3]                             |         offset_0 = r5 << 3;
                                                                     |         r7 = *((r3 + offset_0));
    0x00032d4c cmp r4, 0                                             |         
    0x00032d4e bne 0x32d1c                                           |         
                                                                     |     }
    0x00032d50 ldr r2, [pc, 0xa4]                                    |     r2 = *(0x32df8);
    0x00032d52 ldr.w r2, [sl, r2]                                    |     r2 = *((sl + r2));
    0x00032d56 ldr r0, [r2]                                          |     r0 = *(0x32df8);
    0x00032d58 bl 0x34224                                            |     gst_caps_features_copy ();
    0x00032d5c mov r1, r5                                            |     r1 = r5;
    0x00032d5e mov r2, r0                                            |     r2 = r0;
    0x00032d60 mov r4, r0                                            |     r4 = r0;
    0x00032d62 mov r0, r6                                            |     r0 = r6;
    0x00032d64 bl 0x31668                                            |     gst_caps_set_features ();
    0x00032d68 ldr r3, [sp, 4]                                       |     r3 = var_4h;
    0x00032d6a mov r2, sb                                            |     r2 = sb;
    0x00032d6c mov r1, r7                                            |     r1 = r7;
    0x00032d6e mov r0, r4                                            |     r0 = r4;
    0x00032d70 blx r3                                                |     r0 = uint32_t (*r3)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
    0x00032d72 mov fp, r0                                            |     
    0x00032d74 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x00032d76 bne 0x32d2c                                           |         goto label_0;
                                                                     |     }
    0x00032d78 mov r1, r5                                            |     r1 = r5;
    0x00032d7a ldr r0, [r6, 0x24]                                    |     r0 = *((r6 + 0x24));
    0x00032d7c blx 0x1f79c                                           |     g_list_copy ();
    0x00032d80 mov r1, fp                                            |     r1 = fp;
    0x00032d82 str r0, [r6, 0x24]                                    |     *((r6 + 0x24)) = r0;
    0x00032d84 mov r0, r7                                            |     r0 = r7;
    0x00032d86 bl 0x5eee8                                            |     gst_structure_set_parent_refcount ();
    0x00032d8a mov r0, r7                                            |     r0 = r7;
    0x00032d8c bl 0x5e698                                            |     gst_structure_free ();
                                                                     |     if (r4 != 0) {
    0x00032d90 cbnz r4, 0x32dba                                      |         goto label_9;
                                                                     |     }
                                                                     | label_2:
    0x00032d92 ldr r3, [r6, 0x24]                                    |     r3 = *((r6 + 0x24));
    0x00032d94 ldr.w r8, [r3, 4]                                     |     r8 = *((r3 + 4));
    0x00032d98 cmp r8, r5                                            |     
                                                                     |     if (r8 > r5) {
    0x00032d9a bhi 0x32d32                                           |         goto label_1;
                                                                     |     }
                                                                     | label_7:
    0x00032d9c add sp, 0xc                                           |     
    0x00032d9e pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                     | label_8:
    0x00032da2 mov r1, r5                                            |     r1 = r5;
    0x00032da4 ldr r0, [r6, 0x24]                                    |     r0 = *((r6 + 0x24));
    0x00032da6 blx 0x1f79c                                           |     g_list_copy ();
    0x00032daa mov r1, fp                                            |     r1 = fp;
    0x00032dac str r0, [r6, 0x24]                                    |     *((r6 + 0x24)) = r0;
    0x00032dae mov r0, r7                                            |     r0 = r7;
    0x00032db0 bl 0x5eee8                                            |     gst_structure_set_parent_refcount ();
    0x00032db4 mov r0, r7                                            |     r0 = r7;
    0x00032db6 bl 0x5e698                                            |     gst_structure_free ();
                                                                     | label_9:
    0x00032dba movs r1, 0                                            |     r1 = 0;
    0x00032dbc mov r0, r4                                            |     r0 = r4;
    0x00032dbe bl 0x33ab8                                            |     gst_caps_features_set_parent_refcount ();
    0x00032dc2 mov r0, r4                                            |     r0 = r4;
    0x00032dc4 bl 0x339b8                                            |     gst_caps_features_free ();
    0x00032dc8 b 0x32d92                                             |     goto label_2;
                                                                     | label_5:
    0x00032dca ldr r1, [pc, 0x30]                                    |     
    0x00032dcc ldr r2, [pc, 0x30]                                    |     
    0x00032dce ldr r3, [pc, 0x24]                                    |     r3 = *(0x32df6);
    0x00032dd0 add r1, pc                                            |     r1 = 0x65bd2;
    0x00032dd2 add r2, pc                                            |     r2 = 0x65bd6;
    0x00032dd4 b 0x32cec                                             |     goto label_3;
                                                                     | label_6:
    0x00032dd6 ldr r1, [pc, 0x2c]                                    |     
    0x00032dd8 ldr r2, [pc, 0x2c]                                    |     
    0x00032dda ldr r3, [pc, 0x18]                                    |     r3 = *(0x32df6);
    0x00032ddc add r1, pc                                            |     r1 = 0x65be6;
    0x00032dde add r2, pc                                            |     r2 = 0x65bea;
    0x00032de0 b 0x32cec                                             |     goto label_3;
                                                                     | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.1803.0 @ 0x3158c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.gst_caps_get_features ()     | void gst_caps_get_features (uint32_t arg1, uint32_t arg2) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x0003158c ldr r3, [pc, 0xb8]            |     
    0x0003158e push {r4, r5, r6, lr}         |     
    0x00031590 add r3, pc                    |     r3 = 0x62bdc;
                                             |     if (r0 != 0) {
    0x00031592 cbz r0, 0x315a2               |         
    0x00031594 ldr r2, [pc, 0xb4]            |         
    0x00031596 mov r6, r0                    |         r6 = r0;
    0x00031598 ldr r0, [r0]                  |         r0 = *(r0);
    0x0003159a ldr r2, [r3, r2]              |         r2 = *((r3 + r2));
    0x0003159c ldr r2, [r2]                  |         r2 = *(0x3164c);
    0x0003159e cmp r0, r2                    |         
                                             |         if (r0 == r2) {
    0x000315a0 beq 0x315ba                   |             goto label_1;
                                             |         }
                                             |     }
    0x000315a2 ldr r1, [pc, 0xac]            |     
    0x000315a4 movs r4, 0                    |     r4 = 0;
    0x000315a6 ldr r0, [pc, 0xac]            |     r0 = *(0x31656);
    0x000315a8 ldr r2, [pc, 0xac]            |     
    0x000315aa add r1, pc                    |     r1 = 0x62c00;
    0x000315ac ldr r0, [r3, r0]              |     r0 = *((r3 + r0));
    0x000315ae adds r1, 0xec                 |     r1 += 0xec;
    0x000315b0 add r2, pc                    |     r2 = 0x62c0c;
    0x000315b2 blx 0x1fdd0                   |     fcn_0001fdd0 ();
                                             |     do {
                                             | label_0:
    0x000315b6 mov r0, r4                    |         r0 = r4;
    0x000315b8 pop {r4, r5, r6, pc}          |         
                                             | label_1:
    0x000315ba ldr r2, [r6, 0x24]            |         r2 = *((r6 + 0x24));
    0x000315bc ldr r0, [r2, 4]               |         r0 = *((r2 + 4));
    0x000315be cmp r0, r1                    |         
                                             |         if (r0 < r1) {
    0x000315c0 bls 0x3162e                   |             goto label_2;
                                             |         }
    0x000315c2 ldr r2, [r2]                  |         r2 = *(r2);
    0x000315c4 lsls r5, r1, 3                |         r5 = r1 << 3;
    0x000315c6 dmb ish                       |         __asm ("dmb ish");
    0x000315ca add r2, r5                    |         r2 += r5;
    0x000315cc ldr r4, [r2, 4]               |         r4 = *((r2 + 4));
    0x000315ce dmb ish                       |         __asm ("dmb ish");
    0x000315d2 cmp r4, 0                     |         
    0x000315d4 bne 0x315b6                   |         
                                             |     } while (r4 != 0);
    0x000315d6 ldr r2, [pc, 0x84]            |     r2 = *(0x3165e);
    0x000315d8 ldr r3, [r3, r2]              |     r3 = *((r3 + r2));
    0x000315da ldr r0, [r3]                  |     r0 = *(r3);
    0x000315dc bl 0x34224                    |     gst_caps_features_copy ();
    0x000315e0 adds r1, r6, 4                |     r1 = r6 + 4;
    0x000315e2 mov r4, r0                    |     r4 = r0;
    0x000315e4 bl 0x33ab8                    |     gst_caps_features_set_parent_refcount ();
    0x000315e6 invalid                       |     
    0x000315ea ldr r3, [r3]                  |     r3 = *(r3);
    0x000315ec dmb ish                       |     __asm ("dmb ish");
    0x000315f0 add r3, r5                    |     r3 += r5;
    0x000315f2 adds r3, 4                    |     r3 += 4;
                                             |     do {
    0x000315f4 ldrex r2, [r3]                |         __asm ("ldrex r2, [r3]");
    0x000315f8 cmp r2, 0                     |         
                                             |         if (r2 != 0) {
    0x000315fa bne 0x31604                   |             goto label_3;
                                             |         }
    0x000315fc strex r1, r4, [r3]            |         __asm ("strex r1, r4, [r3]");
    0x00031600 cmp r1, 0                     |         
    0x00031602 bne 0x315f4                   |         
                                             |     } while (r1 != 0);
                                             | label_3:
    0x00031604 ite eq                        |     
                                             |     if (r1 != 0) {
    0x00031606 moveq r1, 1                   |         r1 = 1;
                                             |     }
                                             |     if (r1 == 0) {
    0x00031608 movne r1, 0                   |         r1 = 0;
                                             |     }
    0x0003160a dmb ish                       |     __asm ("dmb ish");
                                             |     if (r1 == 0) {
    0x0003160e beq 0x315b6                   |         goto label_0;
                                             |     }
    0x00031610 mov r0, r4                    |     r0 = r4;
    0x00031612 bl 0x33ab8                    |     gst_caps_features_set_parent_refcount ();
    0x00031616 mov r0, r4                    |     r0 = r4;
    0x00031618 bl 0x339b8                    |     gst_caps_features_free ();
    0x0003161c ldr r3, [r6, 0x24]            |     r3 = *((r6 + 0x24));
    0x0003161e ldr r3, [r3]                  |     r3 = *(r3);
    0x00031620 dmb ish                       |     __asm ("dmb ish");
    0x00031624 add r3, r5                    |     r3 += r5;
    0x00031626 ldr r4, [r3, 4]               |     r4 = *((r3 + 4));
    0x00031628 dmb ish                       |     __asm ("dmb ish");
    0x0003162c b 0x315b6                     |     goto label_0;
                                             | label_2:
    0x0003162e ldr r1, [pc, 0x30]            |     
    0x00031630 movs r4, 0                    |     r4 = 0;
    0x00031632 ldr r0, [pc, 0x20]            |     r0 = *(0x31656);
    0x00031634 ldr r2, [pc, 0x2c]            |     
    0x00031636 add r1, pc                    |     r1 = 0x62c9c;
    0x00031638 ldr r0, [r3, r0]              |     r0 = *((r3 + r0));
    0x0003163a adds r1, 0xec                 |     r1 += 0xec;
    0x0003163c add r2, pc                    |     r2 = 0x62ca4;
    0x0003163e blx 0x1fdd0                   |     fcn_0001fdd0 ();
    0x00031642 mov r0, r4                    |     r0 = r4;
    0x00031644 pop {r4, r5, r6, pc}          |     
                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.1803.0 @ 0x32e14 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.gst_caps_intersect_full ()                       | void gst_caps_intersect_full (int16_t arg_24h, uint32_t arg1, int16_t arg2, int16_t arg3) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x00032e14 svcmi 0xf0e92d                                    |     __asm ("svcmi 0xf0e92d");
    0x00032e18 sub sp, 0x24                                      |     
    0x00032e1a ldr r6, [pc, 0x318]                               |     
    0x00032e1c add r6, pc                                        |     r6 = 0x65f56;
                                                                 |     if (r0 != 0) {
    0x00032e1e cbz r0, 0x32e32                                   |         
    0x00032e20 mov r3, r2                                        |         r3 = r2;
    0x00032e22 ldr r2, [pc, 0x314]                               |         r2 = *(0x3313a);
    0x00032e24 mov r5, r1                                        |         r5 = r1;
    0x00032e26 mov fp, r0                                        |         
    0x00032e28 ldr r2, [r6, r2]                                  |         r2 = *((r6 + r2));
    0x00032e2a ldr r1, [r2]                                      |         r1 = *(0x3313a);
    0x00032e2c ldr r2, [r0]                                      |         r2 = *(r0);
    0x00032e2e cmp r2, r1                                        |         
                                                                 |         if (r2 == r1) {
    0x00032e30 beq 0x32e52                                       |             goto label_11;
                                                                 |         }
                                                                 |     }
    0x00032e32 ldr r1, [pc, 0x308]                               |     
    0x00032e34 ldr r2, [pc, 0x308]                               |     
    0x00032e36 ldr r3, [pc, 0x30c]                               |     r3 = *(0x33146);
    0x00032e38 add r1, pc                                        |     r1 = 0x65f7a;
    0x00032e3a add r2, pc                                        |     r2 = 0x65f7e;
                                                                 |     do {
    0x00032e3c ldr r0, [r6, r3]                                  |         r0 = *((r6 + r3));
    0x00032e3e add.w r1, r1, 0x360                               |         r1 += 0x360;
    0x00032e42 blx 0x1fdd0                                       |         fcn_0001fdd0 ();
    0x00032e46 movs r3, 0                                        |         r3 = 0;
    0x00032e48 str r3, [sp, 8]                                   |         var_8h = r3;
                                                                 | label_1:
    0x00032e4a ldr r0, [sp, 8]                                   |         r0 = var_8h;
    0x00032e4c add sp, 0x24                                      |         
    0x00032e4e pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 |         if (r5 != 0) {
                                                                 | label_11:
    0x00032e52 cbz r5, 0x32e5a                                   |             
    0x00032e54 ldr r1, [r5]                                      |             r1 = *(r5);
    0x00032e56 cmp r2, r1                                        |             
                                                                 |             if (r2 == r1) {
    0x00032e58 beq 0x32e66                                       |                 goto label_12;
                                                                 |             }
                                                                 |         }
    0x00032e5a ldr r1, [pc, 0x2ec]                               |         
    0x00032e5c ldr r2, [pc, 0x2ec]                               |         
    0x00032e5e ldr r3, [pc, 0x2e4]                               |         r3 = *(0x33146);
    0x00032e60 add r1, pc                                        |         r1 = 0x65fae;
    0x00032e62 add r2, pc                                        |         r2 = 0x65fb2;
    0x00032e64 b 0x32e3c                                         |         
                                                                 |     } while (1);
                                                                 | label_12:
    0x00032e66 cmp r0, r5                                        |     
                                                                 |     if (r0 != r5) {
    0x00032e68 beq 0x32e90                                       |         
    0x00032e6a ldr r2, [r0, 0xc]                                 |         r2 = *((r0 + 0xc));
    0x00032e6c ands r4, r2, 0x10                                 |         r4 = r2 & 0x10;
                                                                 |         if (r4 != r2) {
    0x00032e70 bne 0x32e9c                                       |             goto label_13;
                                                                 |         }
    0x00032e72 ldr r2, [r0, 0x24]                                |         r2 = *((r0 + 0x24));
                                                                 |         if (r2 != 0) {
    0x00032e74 cbz r2, 0x32e88                                   |             
    0x00032e76 ldr r2, [r2, 4]                                   |             r2 = *((r2 + 4));
                                                                 |             if (r2 == 0) {
    0x00032e78 cbz r2, 0x32e88                                   |                 goto label_14;
                                                                 |             }
    0x00032e7a ldr r2, [r5, 0xc]                                 |             r2 = *((r5 + 0xc));
    0x00032e7c lsls r0, r2, 0x1b                                 |             r0 = r2 << 0x1b;
                                                                 |             if (r0 < r2) {
    0x00032e7e bmi 0x32e90                                       |                 goto label_0;
                                                                 |             }
    0x00032e80 ldr r1, [r5, 0x24]                                |             r1 = *((r5 + 0x24));
                                                                 |             if (r1 == 0) {
    0x00032e82 cbz r1, 0x32e88                                   |                 goto label_14;
                                                                 |             }
    0x00032e84 ldr r1, [r1, 4]                                   |             r1 = *((r1 + 4));
                                                                 |             if (r1 != 0) {
    0x00032e86 cbnz r1, 0x32eae                                  |                 goto label_15;
                                                                 |             }
                                                                 |         }
                                                                 | label_14:
    0x00032e88 ldr r3, [pc, 0x2c4]                               |         r3 = *(0x33150);
    0x00032e8a ldr r3, [r6, r3]                                  |         r3 = *((r6 + r3));
    0x00032e8c ldr r0, [r3]                                      |         r0 = *(0x33150);
    0x00032e8e b 0x32e92                                         |         
                                                                 |     } else {
                                                                 | label_0:
    0x00032e90 mov r0, fp                                        |         r0 = fp;
                                                                 |     }
    0x00032e92 add sp, 0x24                                      |     
    0x00032e94 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}        |     
    0x00032e98 b.w 0x32e10                                       |     void (*0x32e10)() ();
    0x00032e9a itte lt                                           |     
                                                                 |     if (r1 >= 0) {
                                                                 | label_13:
    0x00032e9c ldrlt r2, [r5, 0xc]                               |         r2 = *((r5 + 0xc));
                                                                 |     }
                                                                 |     if (r1 >= 0) {
    0x00032e9e lsllt r1, r2, 0x1b                                |         r1 = r2 << 0x1b;
                                                                 |     }
    0x00032ea0 bge 0x32e80                                       |     
                                                                 |     while (r4 != 0) {
    0x00032ea2 mov r0, r5                                        |         r0 = r5;
    0x00032ea4 add sp, 0x24                                      |         
    0x00032ea6 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}        |         
    0x00032eaa b.w 0x32e10                                       |         void (*0x32e10)() ();
                                                                 | label_15:
    0x00032eae cmp r4, 0                                         |         
    0x00032eb0 bne 0x32ea2                                       |         
                                                                 |     }
    0x00032eb2 lsls r7, r2, 0x1b                                 |     r7 = r2 << 0x1b;
                                                                 |     if (r7 < r2) {
    0x00032eb4 bmi 0x32e90                                       |         goto label_0;
                                                                 |     }
    0x00032eb6 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00032eb8 beq.w 0x32fda                                     |         goto label_16;
                                                                 |     }
    0x00032ebc cmp r3, 1                                         |     
                                                                 |     if (r3 != 1) {
    0x00032ebe bne.w 0x32fcc                                     |         goto label_17;
                                                                 |     }
    0x00032ec2 bl 0x30dd8                                        |     gst_caps_new_empty ();
    0x00032ec6 ldr r2, [r5, 0x24]                                |     r2 = *((r5 + 0x24));
    0x00032ec8 ldr.w r3, [fp, 0x24]                              |     r3 = *(arg_24h);
    0x00032ecc str r0, [sp, 8]                                   |     var_8h = r0;
    0x00032ece ldr.w sb, [r2, 4]                                 |     sb = *((r2 + 4));
    0x00032ed2 ldr r2, [r3, 4]                                   |     r2 = *((r3 + 4));
    0x00032ed4 str r2, [sp, 0xc]                                 |     var_ch = r2;
    0x00032ed6 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00032ed8 beq 0x32e4a                                       |         goto label_1;
                                                                 |     }
    0x00032eda mov r2, r5                                        |     r2 = r5;
    0x00032edc mov sl, r0                                        |     sl = r0;
    0x00032ede mov r5, sb                                        |     r5 = sb;
    0x00032ee0 mov sb, r2                                        |     sb = r2;
    0x00032ee2 str r4, [sp, 4]                                   |     var_4h = r4;
    0x00032ee4 str.w fp, [sp, 8]                                 |     __asm ("str.w fp, [var_8h]");
                                                                 | label_4:
    0x00032ee8 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00032eea ldr r2, [sp, 4]                                   |     r2 = var_4h;
    0x00032eec ldr.w r1, [r3, r2, lsl 3]                         |     offset_0 = r2 << 3;
                                                                 |     r1 = *((r3 + offset_0));
    0x00032ef0 add.w r3, r3, r2, lsl 3                           |     r3 += (r2 << 3);
    0x00032ef4 str r1, [sp]                                      |     *(sp) = r1;
    0x00032ef6 dmb ish                                           |     __asm ("dmb ish");
    0x00032efa ldr r7, [r3, 4]                                   |     r7 = *((r3 + 4));
    0x00032efc dmb ish                                           |     __asm ("dmb ish");
                                                                 |     if (r7 == 0) {
    0x00032f00 cbnz r7, 0x32f08                                  |         
    0x00032f02 ldr r3, [pc, 0x250]                               |         r3 = *(0x33156);
    0x00032f04 ldr r3, [r6, r3]                                  |         r3 = *((r6 + r3));
    0x00032f06 ldr r7, [r3]                                      |         r7 = *(0x33156);
                                                                 |     }
    0x00032f08 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00032f0a beq 0x32f8e                                       |         goto label_18;
                                                                 |     }
    0x00032f0c mov.w fp, 0                                       |     
    0x00032f10 b 0x32f1a                                         |     
                                                                 |     while (r4 == 0) {
                                                                 | label_2:
    0x00032f12 add.w fp, fp, 1                                   |         
    0x00032f16 cmp r5, fp                                        |         
                                                                 |         if (r5 == fp) {
    0x00032f18 beq 0x32f8e                                       |             goto label_18;
                                                                 |         }
                                                                 | label_3:
    0x00032f1a ldr.w r2, [sb, 0x24]                              |         r2 = *((sb + 0x24));
    0x00032f1e ldr r2, [r2]                                      |         r2 = *(r2);
    0x00032f20 ldr.w r8, [r2, fp, lsl 3]                         |         offset_1 = fp << 3;
                                                                 |         r8 = *((r2 + offset_1));
    0x00032f24 dmb ish                                           |         __asm ("dmb ish");
    0x00032f28 add.w r2, r2, fp, lsl 3                           |         r2 += (fp << 3);
    0x00032f2c ldr r4, [r2, 4]                                   |         r4 = *((r2 + 4));
    0x00032f2e dmb ish                                           |         __asm ("dmb ish");
                                                                 |         if (r4 == 0) {
    0x00032f32 cbnz r4, 0x32f3a                                  |             
    0x00032f34 ldr r2, [pc, 0x21c]                               |             r2 = *(0x33154);
    0x00032f36 ldr r2, [r6, r2]                                  |             r2 = *((r6 + r2));
    0x00032f38 ldr r4, [r2]                                      |             r4 = *(0x33154);
                                                                 |         }
    0x00032f3a mov r1, r4                                        |         r1 = r4;
    0x00032f3c mov r0, r7                                        |         r0 = r7;
    0x00032f3e bl 0x33e98                                        |         gst_caps_features_is_equal ();
    0x00032f40 vmlal.u32 q1, d11, d0                             |         __asm ("vmlal.u32 q1, d11, d0");
    0x00032f44 beq 0x32f12                                       |         
                                                                 |     }
    0x00032f46 mov r1, r8                                        |     r1 = r8;
    0x00032f48 ldr r0, [sp]                                      |     r0 = *(sp);
    0x00032f4a bl 0x61c00                                        |     r0 = gst_structure_intersect ();
    0x00032f4e mov r8, r0                                        |     r8 = r0;
    0x00032f50 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00032f52 beq 0x32f12                                       |         goto label_2;
                                                                 |     }
    0x00032f54 mov r0, r7                                        |     r0 = r7;
    0x00032f56 bl 0x33f80                                        |     r0 = gst_caps_features_is_any ();
                                                                 |     if (r0 == 0) {
    0x00032f5a cbz r0, 0x32fa6                                   |         goto label_19;
                                                                 |     }
                                                                 |     if (r4 == 0) {
    0x00032f5c cbz r4, 0x32fa2                                   |         goto label_6;
                                                                 |     }
    0x00032f5e mov r0, r4                                        |     r0 = r4;
    0x00032f60 bl 0x33f80                                        |     r0 = gst_caps_features_is_any ();
                                                                 |     if (r0 == 0) {
    0x00032f64 cbnz r0, 0x32f74                                  |         
    0x00032f66 ldr r2, [pc, 0x1ec]                               |         r2 = *(0x33156);
    0x00032f68 mov r0, r4                                        |         r0 = r4;
    0x00032f6a ldr r2, [r6, r2]                                  |         r2 = *((r6 + r2));
    0x00032f6c ldr r1, [r2]                                      |         r1 = *(0x33156);
    0x00032f6e bl 0x33e98                                        |         gst_caps_features_is_equal ();
    0x00032f70 invalid                                           |         
                                                                 |     }
    0x00032f74 mov r0, r4                                        |     r0 = r4;
    0x00032f76 bl 0x34224                                        |     r0 = gst_caps_features_copy ();
    0x00032f7a mov r2, r0                                        |     r2 = r0;
                                                                 | label_5:
    0x00032f7c mov r0, sl                                        |     r0 = sl;
    0x00032f7e mov r1, r8                                        |     r1 = r8;
    0x00032f80 add.w fp, fp, 1                                   |     
    0x00032f84 bl 0x31328                                        |     gst_caps_merge_structure_full ();
    0x00032f88 cmp r5, fp                                        |     
    0x00032f8a mov sl, r0                                        |     sl = r0;
                                                                 |     if (r5 != fp) {
    0x00032f8c bne 0x32f1a                                       |         goto label_3;
                                                                 |     }
                                                                 | label_18:
    0x00032f8e ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x00032f90 ldr r2, [sp, 0xc]                                 |     r2 = var_ch;
    0x00032f92 adds r3, 1                                        |     r3++;
    0x00032f94 cmp r2, r3                                        |     
    0x00032f96 str r3, [sp, 4]                                   |     var_4h = r3;
                                                                 |     if (r2 == r3) {
    0x00032f98 beq.w 0x33128                                     |         goto label_20;
                                                                 |     }
    0x00032f9c ldr r3, [sp, 8]                                   |     r3 = var_8h;
    0x00032f9e ldr r3, [r3, 0x24]                                |     r3 = *((r3 + 0x24));
    0x00032fa0 b 0x32ee8                                         |     goto label_4;
                                                                 |     do {
                                                                 | label_6:
    0x00032fa2 movs r2, 0                                        |         r2 = 0;
    0x00032fa4 b 0x32f7c                                         |         goto label_5;
                                                                 | label_19:
    0x00032fa6 cmp r7, 0                                         |         
    0x00032fa8 beq 0x32fa2                                       |         
                                                                 |     } while (r7 == 0);
    0x00032faa mov r0, r7                                        |     r0 = r7;
    0x00032fac bl 0x33f80                                        |     r0 = gst_caps_features_is_any ();
                                                                 |     if (r0 != 0) {
    0x00032fb0 cbnz r0, 0x32fc2                                  |         goto label_21;
                                                                 |     }
    0x00032fb2 ldr r2, [pc, 0x1a0]                               |     r2 = *(0x33156);
    0x00032fb4 mov r0, r7                                        |     r0 = r7;
    0x00032fb6 ldr r2, [r6, r2]                                  |     r2 = *((r6 + r2));
    0x00032fb8 ldr r1, [r2]                                      |     r1 = *(0x33156);
    0x00032fba bl 0x33e98                                        |     r0 = gst_caps_features_is_equal ();
    0x00032fbe cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00032fc0 bne 0x32fa2                                       |         goto label_6;
                                                                 |     }
                                                                 | label_21:
    0x00032fc2 mov r0, r7                                        |     r0 = r7;
    0x00032fc4 bl 0x34224                                        |     r0 = gst_caps_features_copy ();
    0x00032fc8 mov r2, r0                                        |     r2 = r0;
    0x00032fca b 0x32f7c                                         |     goto label_5;
                                                                 | label_17:
    0x00032fcc ldr r2, [pc, 0x174]                               |     r2 = *(0x33144);
    0x00032fce movs r1, 0x10                                     |     r1 = 0x10;
    0x00032fd0 ldr r0, [r6, r2]                                  |     r0 = *((r6 + r2));
    0x00032fd2 ldr r2, [pc, 0x184]                               |     
    0x00032fd4 add r2, pc                                        |     r2 = 0x66132;
    0x00032fd6 blx 0x20930                                       |     g_param_spec_ref ();
                                                                 | label_16:
    0x00032fda bl 0x30dd8                                        |     gst_caps_new_empty ();
    0x00032fde ldr r2, [r5, 0x24]                                |     r2 = *((r5 + 0x24));
    0x00032fe0 ldr.w r3, [fp, 0x24]                              |     r3 = *(arg_24h);
    0x00032fe4 str r0, [sp, 8]                                   |     var_8h = r0;
    0x00032fe6 ldr r2, [r2, 4]                                   |     r2 = *((r2 + 4));
    0x00032fe8 ldr r3, [r3, 4]                                   |     r3 = *((r3 + 4));
    0x00032fea str r2, [sp, 0x14]                                |     var_14h = r2;
    0x00032fec subs r2, 1                                        |     r2--;
    0x00032fee add r2, r3                                        |     r2 += r3;
    0x00032ff0 str r2, [sp, 0x18]                                |     var_18h = r2;
    0x00032ff2 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00032ff4 beq.w 0x32e4a                                     |         goto label_1;
                                                                 |     }
    0x00032ff8 mov.w sl, 0                                       |     sl = 0;
    0x00032ffc mov sb, r6                                        |     sb = r6;
    0x00032ffe mov r4, sl                                        |     r4 = sl;
    0x00033000 mov r8, sl                                        |     r8 = sl;
    0x00033002 strd sl, sl, [sp, 0xc]                            |     __asm ("strd sl, sl, [var_ch]");
    0x00033006 mov sl, r5                                        |     sl = r5;
    0x00033008 subs r3, 1                                        |     r3--;
    0x0003300a str r3, [sp, 0x1c]                                |     var_1ch = r3;
                                                                 | label_7:
    0x0003300c ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x0003300e cmp r2, r4                                        |     
                                                                 |     if (r2 < r4) {
    0x00033010 bls 0x3307a                                       |         goto label_22;
                                                                 |     }
    0x00033012 add.w r3, r8, r4                                  |     r3 = r8 + r4;
    0x00033016 lsls r4, r4, 3                                    |     r4 <<= 3;
    0x00033018 subs r3, r3, r2                                   |     r3 -= r2;
    0x0003301a str r3, [sp, 4]                                   |     var_4h = r3;
                                                                 |     do {
    0x0003301c ldr.w r2, [fp, 0x24]                              |         r2 = *(arg_24h);
    0x00033020 ldr r2, [r2]                                      |         r2 = *(r2);
    0x00033022 ldr.w r6, [r2, r8, lsl 3]                         |         offset_2 = r8 << 3;
                                                                 |         r6 = *((r2 + offset_2));
    0x00033026 dmb ish                                           |         __asm ("dmb ish");
    0x0003302a add.w r2, r2, r8, lsl 3                           |         r2 += (r8 << 3);
    0x0003302e ldr r7, [r2, 4]                                   |         r7 = *((r2 + 4));
    0x00033030 dmb ish                                           |         __asm ("dmb ish");
                                                                 |         if (r7 == 0) {
    0x00033034 cbnz r7, 0x3303e                                  |             
    0x00033036 ldr r2, [pc, 0x11c]                               |             r2 = *(0x33156);
    0x00033038 ldr.w r2, [sb, r2]                                |             r2 = *((sb + r2));
    0x0003303c ldr r7, [r2]                                      |             r7 = *(0x33156);
                                                                 |         }
    0x0003303e ldr.w r1, [sl, 0x24]                              |         r1 = *((sl + 0x24));
    0x00033042 ldr r1, [r1]                                      |         r1 = *(r1);
    0x00033044 ldr r3, [r1, r4]                                  |         r3 = *((r1 + r4));
    0x00033046 adds r0, r1, r4                                   |         r0 = r1 + r4;
    0x00033048 str r3, [sp]                                      |         *(sp) = r3;
    0x0003304a dmb ish                                           |         __asm ("dmb ish");
    0x0003304e ldr r5, [r0, 4]                                   |         r5 = *((r0 + 4));
    0x00033050 dmb ish                                           |         __asm ("dmb ish");
                                                                 |         if (r5 == 0) {
    0x00033054 cbnz r5, 0x3305e                                  |             
    0x00033056 ldr r1, [pc, 0xfc]                                |             r1 = *(0x33156);
    0x00033058 ldr.w r1, [sb, r1]                                |             r1 = *((sb + r1));
    0x0003305c ldr r5, [r1]                                      |             r5 = *(0x33156);
                                                                 |         }
    0x0003305e mov r1, r5                                        |         r1 = r5;
    0x00033060 mov r0, r7                                        |         r0 = r7;
    0x00033062 bl 0x33e98                                        |         r0 = gst_caps_features_is_equal ();
                                                                 |         if (r0 != 0) {
    0x00033066 cbnz r0, 0x330b8                                  |             goto label_23;
                                                                 |         }
                                                                 | label_8:
    0x00033068 cmp.w r8, 0                                       |         
                                                                 |         if (r8 == 0) {
    0x0003306c beq 0x3307a                                       |             goto label_22;
                                                                 |         }
    0x0003306e ldr r3, [sp, 4]                                   |         r3 = var_4h;
    0x00033070 add.w r8, r8, -1                                  |         r8 += -1;
    0x00033074 adds r4, 8                                        |         r4 += 8;
    0x00033076 cmp r8, r3                                        |         
    0x00033078 bne 0x3301c                                       |         
                                                                 |     } while (r8 != r3);
                                                                 | label_22:
    0x0003307a ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x0003307c ldr r2, [sp, 0x18]                                |     r2 = var_18h;
    0x0003307e adds r4, r3, 1                                    |     r4 = r3 + 1;
    0x00033080 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x00033082 str r4, [sp, 0xc]                                 |     var_ch = r4;
    0x00033084 adc r1, r3, 0                                     |     __asm ("adc r1, r3, 0");
    0x00033088 cmp r1, 0                                         |     
    0x0003308a it eq                                             |     
                                                                 |     if (r1 == 0) {
    0x0003308c cmpeq r4, r2                                      |         __asm ("cmpeq r4, r2");
                                                                 |     }
    0x0003308e str r1, [sp, 0x10]                                |     var_10h = r1;
                                                                 |     if (r1 == 0) {
    0x00033090 beq.w 0x32e4a                                     |         goto label_1;
                                                                 |     }
    0x00033094 ldr r0, [sp, 0x1c]                                |     r0 = var_1ch;
    0x00033096 movs r2, 0                                        |     r2 = 0;
    0x00033098 ldr r5, [sp, 0xc]                                 |     r5 = var_ch;
    0x0003309a ldr r6, [sp, 0x10]                                |     r6 = var_10h;
    0x0003309c mov r3, r0                                        |     r3 = r0;
    0x0003309e cmp r5, r0                                        |     
    0x000330a0 sbcs r0, r6, 0                                    |     __asm ("sbcs r0, r6, 0");
    0x000330a4 itt lo                                            |     
                                                                 |     if (r5 >= r0) {
    0x000330a6 movlo r3, r5                                      |         r3 = r5;
                                                                 |     }
                                                                 |     if (r5 >= r0) {
    0x000330a8 movlo r2, r6                                      |         r2 = r6;
                                                                 |     }
    0x000330aa cmp r3, r4                                        |     
    0x000330ac mov r8, r3                                        |     r8 = r3;
    0x000330ae sbcs r2, r1                                       |     __asm ("sbcs r2, r1");
    0x000330b0 ite lo                                            |     
                                                                 |     if (r3 >= r4) {
    0x000330b2 sublo r4, r4, r3                                  |         r4 -= r3;
                                                                 |     }
                                                                 |     if (r3 < r4) {
    0x000330b4 movhs r4, 0                                       |         r4 = 0;
                                                                 |     }
    0x000330b6 b 0x3300c                                         |     goto label_7;
                                                                 | label_23:
    0x000330b8 mov r0, r6                                        |     r0 = r6;
    0x000330ba ldr r1, [sp]                                      |     r1 = *(sp);
    0x000330bc bl 0x61c00                                        |     r0 = gst_structure_intersect ();
    0x000330c0 mov r6, r0                                        |     r6 = r0;
    0x000330c2 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000330c4 beq 0x33068                                       |         goto label_8;
                                                                 |     }
    0x000330c6 mov r0, r7                                        |     r0 = r7;
    0x000330c8 bl 0x33f80                                        |     r0 = gst_caps_features_is_any ();
                                                                 |     if (r0 == 0) {
    0x000330cc cbz r0, 0x33100                                   |         goto label_24;
                                                                 |     }
                                                                 |     if (r5 == 0) {
    0x000330ce cbz r5, 0x330fc                                   |         goto label_9;
                                                                 |     }
    0x000330d0 mov r0, r5                                        |     r0 = r5;
    0x000330d2 bl 0x33f80                                        |     r0 = gst_caps_features_is_any ();
                                                                 |     if (r0 == 0) {
    0x000330d6 cbnz r0, 0x330e8                                  |         
    0x000330d8 ldr r2, [pc, 0x78]                                |         r2 = *(0x33154);
    0x000330da mov r0, r5                                        |         r0 = r5;
    0x000330dc ldr.w r2, [sb, r2]                                |         r2 = *((sb + r2));
    0x000330e0 ldr r1, [r2]                                      |         r1 = *(0x33154);
    0x000330e2 bl 0x33e98                                        |         r0 = gst_caps_features_is_equal ();
                                                                 |         if (r0 != 0) {
    0x000330e6 cbnz r0, 0x330fc                                  |             goto label_9;
                                                                 |         }
                                                                 |     }
    0x000330e8 mov r0, r5                                        |     r0 = r5;
    0x000330ea bl 0x34224                                        |     r0 = gst_caps_features_copy ();
    0x000330ee mov r2, r0                                        |     r2 = r0;
                                                                 |     do {
                                                                 | label_10:
    0x000330f0 ldr r0, [sp, 8]                                   |         r0 = var_8h;
    0x000330f2 mov r1, r6                                        |         r1 = r6;
    0x000330f4 bl 0x31328                                        |         gst_caps_merge_structure_full ();
    0x000330f8 str r0, [sp, 8]                                   |         var_8h = r0;
    0x000330fa b 0x33068                                         |         goto label_8;
                                                                 | label_9:
    0x000330fc movs r2, 0                                        |         r2 = 0;
    0x000330fe b 0x330f0                                         |         
                                                                 |     } while (1);
                                                                 | label_24:
    0x00033100 cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x00033102 beq 0x330fc                                       |         goto label_9;
                                                                 |     }
    0x00033104 mov r0, r7                                        |     r0 = r7;
    0x00033106 bl 0x33f80                                        |     r0 = gst_caps_features_is_any ();
                                                                 |     if (r0 != 0) {
    0x0003310a cbnz r0, 0x3311e                                  |         goto label_25;
                                                                 |     }
    0x0003310c ldr r1, [pc, 0x44]                                |     
    0x0003310e mov r0, r7                                        |     r0 = r7;
    0x00033110 ldr.w r1, [sb, r1]                                |     r1 = *((sb + r1));
    0x00033114 ldr r1, [r1]                                      |     r1 = *(0x33154);
    0x00033116 bl 0x33e98                                        |     r0 = gst_caps_features_is_equal ();
    0x0003311a cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0003311c bne 0x330fc                                       |         goto label_9;
                                                                 |     }
                                                                 | label_25:
    0x0003311e mov r0, r7                                        |     r0 = r7;
    0x00033120 bl 0x34224                                        |     r0 = gst_caps_features_copy ();
    0x00033124 mov r2, r0                                        |     r2 = r0;
    0x00033126 b 0x330f0                                         |     goto label_10;
                                                                 | label_20:
    0x00033128 str.w sl, [sp, 8]                                 |     __asm ("str.w sl, [var_8h]");
    0x0003312c ldr r0, [sp, 8]                                   |     r0 = var_8h;
    0x0003312e add sp, 0x24                                      |     
    0x00033130 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.1803.0 @ 0x31d34 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.gst_caps_is_equal_fixed ()           | void gst_caps_is_equal_fixed (int16_t arg1, int16_t arg2) {
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x00031d34 push {r3, r4, r5, r6, r7, lr}         |     
    0x00031d36 mov r6, r0                            |     r6 = r0;
    0x00031d38 ldr r7, [pc, 0x90]                    |     
    0x00031d3a mov r5, r1                            |     r5 = r1;
    0x00031d3c bl 0x31cb4                            |     gst_caps_is_fixed ();
    0x00031d40 add r7, pc                            |     r7 = 0x63b10;
                                                     |     if (r0 != 0) {
    0x00031d42 cbnz r0, 0x31d5e                      |         goto label_0;
                                                     |     }
    0x00031d44 ldr r1, [pc, 0x88]                    |     
    0x00031d46 mov r4, r0                            |     r4 = r0;
    0x00031d48 ldr r3, [pc, 0x88]                    |     r3 = *(0x31dd4);
    0x00031d4a ldr r2, [pc, 0x8c]                    |     
    0x00031d4c add r1, pc                            |     
    0x00031d4e ldr r0, [r7, r3]                      |     r0 = *((r7 + r3));
    0x00031d50 add.w r1, r1, 0x1e0                   |     r1 = 0x63d00;
    0x00031d54 add r2, pc                            |     r2 = 0x63b32;
    0x00031d56 blx 0x1fdd0                           |     fcn_0001fdd0 ();
                                                     |     do {
    0x00031d5a mov r0, r4                            |         r0 = r4;
    0x00031d5c pop {r3, r4, r5, r6, r7, pc}          |         
                                                     | label_0:
    0x00031d5e mov r0, r5                            |         r0 = r5;
    0x00031d60 bl 0x31cb4                            |         r0 = gst_caps_is_fixed ();
    0x00031d64 mov r4, r0                            |         r4 = r0;
                                                     |         if (r0 == 0) {
    0x00031d66 cbz r0, 0x31db4                       |             goto label_1;
                                                     |         }
    0x00031d68 ldr r3, [r6, 0x24]                    |         r3 = *((r6 + 0x24));
    0x00031d6a ldr r3, [r3]                          |         r3 = *(r3);
    0x00031d6c ldr r0, [r3]                          |         r0 = *(r3);
    0x00031d6e dmb ish                               |         __asm ("dmb ish");
    0x00031d72 ldr r6, [r3, 4]                       |         r6 = *((r3 + 4));
    0x00031d74 dmb ish                               |         __asm ("dmb ish");
                                                     |         if (r6 == 0) {
    0x00031d78 cbnz r6, 0x31d80                      |             
    0x00031d7a ldr r3, [pc, 0x60]                    |             r3 = *(0x31dde);
    0x00031d7c ldr r3, [r7, r3]                      |             r3 = *((r7 + r3));
    0x00031d7e ldr r6, [r3]                          |             r6 = *(0x31dde);
                                                     |         }
    0x00031d80 ldr r3, [r5, 0x24]                    |         r3 = *((r5 + 0x24));
    0x00031d82 ldr r3, [r3]                          |         r3 = *(r3);
    0x00031d84 ldr r1, [r3]                          |         r1 = *(r3);
    0x00031d86 dmb ish                               |         __asm ("dmb ish");
    0x00031d8a ldr r5, [r3, 4]                       |         r5 = *((r3 + 4));
    0x00031d8c dmb ish                               |         __asm ("dmb ish");
                                                     |         if (r5 == 0) {
    0x00031d90 cbnz r5, 0x31d98                      |             
    0x00031d92 ldr r3, [pc, 0x48]                    |             r3 = *(0x31dde);
    0x00031d94 ldr r3, [r7, r3]                      |             r3 = *((r7 + r3));
    0x00031d96 ldr r5, [r3]                          |             r5 = *(0x31dde);
                                                     |         }
    0x00031d98 bl 0x61b60                            |         r0 = gst_structure_is_equal ();
    0x00031d9c mov r4, r0                            |         r4 = r0;
    0x00031d9e cmp r0, 0                             |         
    0x00031da0 beq 0x31d5a                           |         
                                                     |     } while (r0 == 0);
    0x00031da2 mov r1, r5                            |     r1 = r5;
    0x00031da4 mov r0, r6                            |     r0 = r6;
    0x00031da6 bl 0x33e98                            |     r0 = gst_caps_features_is_equal ();
    0x00031daa subs r4, r0, 0                        |     r4 = r0 - 0;
    0x00031dac it ne                                 |     
                                                     |     if (r4 == r0) {
    0x00031dae movne r4, 1                           |         r4 = 1;
                                                     |     }
    0x00031db0 mov r0, r4                            |     r0 = r4;
    0x00031db2 pop {r3, r4, r5, r6, r7, pc}          |     
                                                     | label_1:
    0x00031db4 ldr r1, [pc, 0x28]                    |     
    0x00031db6 ldr r3, [pc, 0x1c]                    |     r3 = *(0x31dd6);
    0x00031db8 ldr r2, [pc, 0x28]                    |     
    0x00031dba add r1, pc                            |     
    0x00031dbc ldr r0, [r7, r3]                      |     r0 = *((r7 + r3));
    0x00031dbe add.w r1, r1, 0x1e0                   |     r1 = 0x63d7e;
    0x00031dc2 add r2, pc                            |     r2 = 0x63baa;
    0x00031dc4 blx 0x1fdd0                           |     fcn_0001fdd0 ();
    0x00031dc8 mov r0, r4                            |     r0 = r4;
    0x00031dca pop {r3, r4, r5, r6, r7, pc}          |     
                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.1803.0 @ 0x321d4 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.gst_caps_is_strictly_equal ()                    | void gst_caps_is_strictly_equal (uint32_t arg1, int16_t arg2) {
                                                                 |     int16_t var_4h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x000321d4 svcmi 0xf0e92d                                    |     __asm ("svcmi 0xf0e92d");
    0x000321d8 sub sp, 0xc                                       |     
    0x000321da ldr.w r8, [pc, 0x10c]                             |     
    0x000321de add r8, pc                                        |     r8 = 0x644cc;
                                                                 |     if (r0 != 0) {
    0x000321e0 cbz r0, 0x321f2                                   |         
    0x000321e2 ldr r3, [pc, 0x108]                               |         
    0x000321e4 mov r5, r0                                        |         r5 = r0;
    0x000321e6 ldr r2, [r0]                                      |         r2 = *(r0);
    0x000321e8 ldr.w r3, [r8, r3]                                |         r3 = *((r8 + r3));
    0x000321ec ldr r3, [r3]                                      |         r3 = *(0x322ee);
    0x000321ee cmp r2, r3                                        |         
                                                                 |         if (r2 == r3) {
    0x000321f0 beq 0x32210                                       |             goto label_1;
                                                                 |         }
                                                                 |     }
    0x000321f2 ldr r1, [pc, 0xfc]                                |     
    0x000321f4 ldr r3, [pc, 0xfc]                                |     r3 = *(0x322f4);
    0x000321f6 ldr r2, [pc, 0x100]                               |     
    0x000321f8 add r1, pc                                        |     
    0x000321fa ldr.w r0, [r8, r3]                                |     r0 = *((r8 + r3));
    0x000321fe add.w r1, r1, 0x284                               |     r1 = 0x64772;
    0x00032202 add r2, pc                                        |     r2 = 0x64500;
    0x00032204 blx 0x1fdd0                                       |     fcn_0001fdd0 ();
    0x00032208 movs r0, 0                                        |     r0 = 0;
                                                                 | label_0:
    0x0003220a add sp, 0xc                                       |     
    0x0003220c pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_1:
    0x00032210 mov r6, r1                                        |     r6 = r1;
                                                                 |     if (r1 != 0) {
    0x00032212 cbz r1, 0x3221a                                   |         
    0x00032214 ldr r3, [r1]                                      |         r3 = *(r1);
    0x00032216 cmp r2, r3                                        |         
                                                                 |         if (r2 == r3) {
    0x00032218 beq 0x32238                                       |             goto label_2;
                                                                 |         }
                                                                 |     }
    0x0003221a ldr r1, [pc, 0xe0]                                |     
    0x0003221c ldr r3, [pc, 0xd4]                                |     r3 = *(0x322f4);
    0x0003221e ldr r2, [pc, 0xe0]                                |     
    0x00032220 add r1, pc                                        |     
    0x00032222 ldr.w r0, [r8, r3]                                |     r0 = *((r8 + r3));
    0x00032226 add.w r1, r1, 0x284                               |     r1 = 0x647a6;
    0x0003222a add r2, pc                                        |     r2 = 0x64530;
    0x0003222c blx 0x1fdd0                                       |     fcn_0001fdd0 ();
    0x00032230 movs r0, 0                                        |     r0 = 0;
    0x00032232 add sp, 0xc                                       |     
    0x00032234 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_2:
    0x00032238 cmp r0, r1                                        |     
                                                                 |     if (r0 == r1) {
    0x0003223a beq 0x322e4                                       |         goto label_3;
                                                                 |     }
    0x0003223c ldr r3, [r0, 0xc]                                 |     r3 = *((r0 + 0xc));
    0x0003223e ldr r4, [r1, 0xc]                                 |     r4 = *((r1 + 0xc));
    0x00032240 lsls r3, r3, 0x1b                                 |     r3 <<= 0x1b;
    0x00032242 and r4, r4, 0x10                                  |     r4 &= 0x10;
                                                                 |     if (r3 < r3) {
    0x00032246 bmi 0x322dc                                       |         goto label_4;
                                                                 |     }
    0x00032248 cmp r4, 0                                         |     
                                                                 |     if (r4 != 0) {
    0x0003224a bne 0x322d4                                       |         goto label_5;
                                                                 |     }
    0x0003224c ldr r2, [r1, 0x24]                                |     r2 = *((r1 + 0x24));
    0x0003224e ldr r3, [r0, 0x24]                                |     r3 = *((r0 + 0x24));
    0x00032250 ldr r1, [r2, 4]                                   |     r1 = *((r2 + 4));
    0x00032252 ldr r2, [r3, 4]                                   |     r2 = *((r3 + 4));
    0x00032254 cmp r2, r1                                        |     
                                                                 |     if (r2 != r1) {
    0x00032256 bne 0x322d4                                       |         goto label_5;
                                                                 |     }
                                                                 |     if (r2 != 0) {
    0x00032258 cbnz r2, 0x32278                                  |         goto label_6;
                                                                 |     }
    0x0003225a b 0x322e4                                         |     goto label_3;
                                                                 |     do {
    0x0003225c bl 0x33e98                                        |         r0 = gst_caps_features_is_equal ();
    0x00032260 mov r3, r0                                        |         r3 = r0;
    0x00032262 mov r1, sl                                        |         r1 = sl;
    0x00032264 mov r0, sb                                        |         r0 = sb;
    0x00032266 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x00032268 beq 0x322d4                                       |             goto label_5;
                                                                 |         }
    0x0003226a bl 0x61b60                                        |         r0 = gst_structure_is_equal ();
                                                                 |         if (r0 == 0) {
    0x0003226e cbz r0, 0x322d4                                   |             goto label_5;
                                                                 |         }
    0x00032270 ldr r3, [r5, 0x24]                                |         r3 = *((r5 + 0x24));
    0x00032272 ldr r2, [r3, 4]                                   |         r2 = *((r3 + 4));
    0x00032274 cmp r2, r4                                        |         
                                                                 |         if (r2 < r4) {
    0x00032276 bls 0x322e4                                       |             goto label_3;
                                                                 |         }
                                                                 | label_6:
    0x00032278 ldr r2, [r3]                                      |         r2 = *(r3);
    0x0003227a lsls r3, r4, 3                                    |         r3 = r4 << 3;
    0x0003227c ldr r0, [pc, 0x84]                                |         r0 = *(0x32304);
    0x0003227e adds r1, r2, r3                                   |         r1 = r2 + r3;
    0x00032280 ldr.w sb, [r2, r4, lsl 3]                         |         offset_0 = r4 << 3;
                                                                 |         sb = *((r2 + offset_0));
    0x00032284 dmb ish                                           |         __asm ("dmb ish");
    0x00032288 ldr r2, [r1, 4]                                   |         r2 = *((r1 + 4));
    0x0003228a dmb ish                                           |         __asm ("dmb ish");
    0x0003228e mov fp, r2                                        |         
                                                                 |         if (r2 == 0) {
    0x00032290 cbnz r2, 0x3229a                                  |             
    0x00032292 ldr.w r2, [r8, r0]                                |             r2 = *((r8 + r0));
    0x00032296 ldr.w fp, [r2]                                    |             fp = *(r2);
                                                                 |         }
    0x0003229a ldr r2, [r6, 0x24]                                |         r2 = *((r6 + 0x24));
    0x0003229c ldr r0, [pc, 0x64]                                |         r0 = *(0x32304);
    0x0003229e ldr r2, [r2]                                      |         r2 = *(r2);
    0x000322a0 adds r1, r2, r3                                   |         r1 = r2 + r3;
    0x000322a2 ldr.w sl, [r2, r3]                                |         sl = *((r2 + r3));
    0x000322a6 dmb ish                                           |         __asm ("dmb ish");
    0x000322aa ldr r3, [r1, 4]                                   |         r3 = *((r1 + 4));
    0x000322ac dmb ish                                           |         __asm ("dmb ish");
    0x000322b0 mov r7, r3                                        |         r7 = r3;
                                                                 |         if (r3 == 0) {
    0x000322b2 cbnz r3, 0x322ba                                  |             
    0x000322b4 ldr.w r3, [r8, r0]                                |             r3 = *((r8 + r0));
    0x000322b8 ldr r7, [r3]                                      |             r7 = *(r3);
                                                                 |         }
    0x000322ba mov r0, fp                                        |         r0 = fp;
    0x000322bc adds r4, 1                                        |         r4++;
    0x000322be bl 0x33f80                                        |         gst_caps_features_is_any ();
    0x000322c2 str r0, [sp, 4]                                   |         var_4h = r0;
    0x000322c4 mov r0, r7                                        |         r0 = r7;
    0x000322c6 bl 0x33f80                                        |         gst_caps_features_is_any ();
    0x000322ca ldr r3, [sp, 4]                                   |         r3 = var_4h;
    0x000322cc mov r1, r7                                        |         r1 = r7;
    0x000322ce cmp r3, r0                                        |         
    0x000322d0 mov r0, fp                                        |         r0 = fp;
    0x000322d2 beq 0x3225c                                       |         
                                                                 |     } while (r3 == r0);
                                                                 | label_5:
    0x000322d4 movs r0, 0                                        |     r0 = 0;
    0x000322d6 add sp, 0xc                                       |     
    0x000322d8 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_4:
    0x000322dc subs r0, r4, 0                                    |     r0 = r4 - 0;
    0x000322de it ne                                             |     
                                                                 |     if (r0 == r4) {
    0x000322e0 movne r0, 1                                       |         r0 = 1;
                                                                 |     }
    0x000322e2 b 0x3220a                                         |     goto label_0;
                                                                 | label_3:
    0x000322e4 movs r0, 1                                        |     r0 = 1;
    0x000322e6 b 0x3220a                                         |     goto label_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/libgstreamer-1.0.so.0.1803.0 @ 0x31de8 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.gst_caps_is_subset ()                            | void gst_caps_is_subset (uint32_t arg1, uint32_t arg2) {
                                                                 |     uint32_t var_4h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00031de8 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00031dec sub sp, 0xc                                       |     
    0x00031dee ldr.w r8, [pc, 0x120]                             |     
    0x00031df2 str r0, [sp, 4]                                   |     var_4h = r0;
    0x00031df4 add r8, pc                                        |     r8 = 0x63d0a;
    0x00031df6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00031df8 beq 0x31ec8                                       |         goto label_2;
                                                                 |     }
    0x00031dfa mov r6, r1                                        |     r6 = r1;
    0x00031dfc cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x00031dfe beq 0x31ee6                                       |         goto label_3;
                                                                 |     }
    0x00031e00 ldr r2, [sp, 4]                                   |     r2 = var_4h;
    0x00031e02 ldr r3, [r2, 0xc]                                 |     r3 = *((r2 + 0xc));
    0x00031e04 lsls r0, r3, 0x1b                                 |     r0 = r3 << 0x1b;
                                                                 |     if (r0 < r3) {
    0x00031e06 bmi 0x31eb4                                       |         goto label_4;
                                                                 |     }
    0x00031e08 ldr r2, [r2, 0x24]                                |     r2 = *((r2 + 0x24));
    0x00031e0a cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00031e0c beq 0x31ec0                                       |         goto label_5;
                                                                 |     }
    0x00031e0e ldr r3, [r2, 4]                                   |     r3 = *((r2 + 4));
    0x00031e10 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00031e12 beq 0x31ec0                                       |         goto label_5;
                                                                 |     }
    0x00031e14 ldr r1, [r1, 0xc]                                 |     r1 = *((r1 + 0xc));
    0x00031e16 lsls r1, r1, 0x1b                                 |     r1 <<= 0x1b;
                                                                 |     if (r1 < r1) {
    0x00031e18 bmi 0x31ec0                                       |         goto label_5;
                                                                 |     }
    0x00031e1a ldr r1, [r6, 0x24]                                |     r1 = *((r6 + 0x24));
    0x00031e1c cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x00031e1e beq 0x31f08                                       |         goto label_6;
                                                                 |     }
    0x00031e20 ldr r1, [r1, 4]                                   |     r1 = *((r1 + 4));
    0x00031e22 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x00031e24 beq 0x31f08                                       |         goto label_6;
                                                                 |     }
    0x00031e26 subs.w sl, r3, 1                                  |     sl = r3 - 1;
                                                                 |     if (sl < r3) {
    0x00031e2a bmi 0x31ec0                                       |         goto label_5;
                                                                 |     }
                                                                 | label_1:
    0x00031e2c ldr r3, [r2]                                      |     r3 = *(r2);
    0x00031e2e ldr.w fp, [r3, sl, lsl 3]                         |     offset_0 = sl << 3;
                                                                 |     fp = *((r3 + offset_0));
    0x00031e32 dmb ish                                           |     __asm ("dmb ish");
    0x00031e36 add.w r3, r3, sl, lsl 3                           |     r3 += (sl << 3);
    0x00031e3a ldr r5, [r3, 4]                                   |     r5 = *((r3 + 4));
    0x00031e3c dmb ish                                           |     __asm ("dmb ish");
                                                                 |     if (r5 == 0) {
    0x00031e40 cbnz r5, 0x31e4a                                  |         
    0x00031e42 ldr r3, [pc, 0xd0]                                |         r3 = *(0x31f16);
    0x00031e44 ldr.w r3, [r8, r3]                                |         r3 = *((r8 + r3));
    0x00031e48 ldr r5, [r3]                                      |         r5 = *(0x31f16);
                                                                 |     }
    0x00031e4a ldr r3, [r6, 0x24]                                |     r3 = *((r6 + 0x24));
    0x00031e4c ldr r4, [r3, 4]                                   |     r4 = *((r3 + 4));
    0x00031e4e subs r4, 1                                        |     r4--;
                                                                 |     if (r4 >= 1) {
    0x00031e50 bpl 0x31e5a                                       |         goto label_7;
                                                                 |     }
    0x00031e52 b 0x31f04                                         |     goto label_8;
                                                                 |     do {
                                                                 | label_0:
    0x00031e54 subs r4, 1                                        |         r4--;
                                                                 |         if (r4 <= 1) {
    0x00031e56 blo 0x31f08                                       |             goto label_6;
                                                                 |         }
    0x00031e58 ldr r3, [r6, 0x24]                                |         r3 = *((r6 + 0x24));
                                                                 | label_7:
    0x00031e5a ldr r3, [r3]                                      |         r3 = *(r3);
    0x00031e5c ldr r2, [pc, 0xb4]                                |         r2 = *(0x31f14);
    0x00031e5e ldr.w r7, [r3, r4, lsl 3]                         |         offset_1 = r4 << 3;
                                                                 |         r7 = *((r3 + offset_1));
    0x00031e62 dmb ish                                           |         __asm ("dmb ish");
    0x00031e66 add.w r3, r3, r4, lsl 3                           |         r3 += (r4 << 3);
    0x00031e6a ldr r3, [r3, 4]                                   |         r3 = *((r3 + 4));
    0x00031e6c dmb ish                                           |         __asm ("dmb ish");
    0x00031e70 mov sb, r3                                        |         sb = r3;
                                                                 |         if (r3 == 0) {
    0x00031e72 cbnz r3, 0x31e7c                                  |             
    0x00031e74 ldr.w r3, [r8, r2]                                |             r3 = *((r8 + r2));
    0x00031e78 ldr.w sb, [r3]                                    |             sb = *(r3);
                                                                 |         }
    0x00031e7c mov r0, r5                                        |         r0 = r5;
    0x00031e7e bl 0x33f80                                        |         r0 = gst_caps_features_is_any ();
    0x00031e82 mov r3, r0                                        |         r3 = r0;
    0x00031e84 mov r0, sb                                        |         r0 = sb;
                                                                 |         if (r3 == 0) {
    0x00031e86 cbz r3, 0x31e90                                   |             goto label_9;
                                                                 |         }
    0x00031e88 bl 0x33f80                                        |         r0 = gst_caps_features_is_any ();
    0x00031e8c cmp r0, 0                                         |         
    0x00031e8e beq 0x31e54                                       |         
                                                                 |     } while (r0 == 0);
                                                                 | label_9:
    0x00031e90 mov r0, r5                                        |     r0 = r5;
    0x00031e92 mov r1, sb                                        |     r1 = sb;
    0x00031e94 bl 0x33e98                                        |     r0 = gst_caps_features_is_equal ();
    0x00031e98 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00031e9a beq 0x31e54                                       |         goto label_0;
                                                                 |     }
    0x00031e9c mov r1, r7                                        |     r1 = r7;
    0x00031e9e mov r0, fp                                        |     r0 = fp;
    0x00031ea0 bl 0x61dd4                                        |     r0 = gst_structure_is_subset ();
    0x00031ea4 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00031ea6 beq 0x31e54                                       |         goto label_0;
                                                                 |     }
                                                                 |     do {
    0x00031ea8 subs.w sl, sl, 1                                  |         sl--;
                                                                 |         if (sl > sl) {
    0x00031eac blo 0x31ec0                                       |             
    0x00031eae ldr r3, [sp, 4]                                   |             r3 = var_4h;
    0x00031eb0 ldr r2, [r3, 0x24]                                |             r2 = *((r3 + 0x24));
    0x00031eb2 b 0x31e2c                                         |             goto label_1;
                                                                 | label_4:
    0x00031eb4 ldr r0, [r1, 0xc]                                 |             r0 = *((r1 + 0xc));
    0x00031eb6 ubfx r0, r0, 4, 1                                 |             r0 = (r0 >> 4) & ((1 << 1) - 1);
    0x00031eba add sp, 0xc                                       |             
    0x00031ebc pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |             
                                                                 |         }
                                                                 | label_5:
    0x00031ec0 movs r0, 1                                        |         r0 = 1;
    0x00031ec2 add sp, 0xc                                       |         
    0x00031ec4 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_2:
    0x00031ec8 ldr r1, [pc, 0x4c]                                |         
    0x00031eca ldr r3, [pc, 0x50]                                |         r3 = *(0x31f1e);
    0x00031ecc ldr r2, [pc, 0x50]                                |         
    0x00031ece add r1, pc                                        |         
    0x00031ed0 ldr.w r0, [r8, r3]                                |         r0 = *((r8 + r3));
    0x00031ed4 add.w r1, r1, 0x1f8                               |         r1 = 0x63fe2;
    0x00031ed6 strb r4, [r7, 7]                                  |         *((r7 + 7)) = r4;
    0x00031ed8 add r2, pc                                        |         r2 = 0x63dfc;
    0x00031eda blx 0x1fdd0                                       |         fcn_0001fdd0 ();
    0x00031ede ldr r0, [sp, 4]                                   |         r0 = var_4h;
    0x00031ee0 add sp, 0xc                                       |         
    0x00031ee2 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_3:
    0x00031ee6 ldr r1, [pc, 0x3c]                                |         
    0x00031ee8 ldr r3, [pc, 0x30]                                |         r3 = *(0x31f1c);
    0x00031eea ldr r2, [pc, 0x3c]                                |         
    0x00031eec add r1, pc                                        |         
    0x00031eee ldr.w r0, [r8, r3]                                |         r0 = *((r8 + r3));
    0x00031ef2 add.w r1, r1, 0x1f8                               |         r1 = 0x6400e;
    0x00031ef6 add r2, pc                                        |         r2 = 0x63e24;
    0x00031ef8 blx 0x1fdd0                                       |         fcn_0001fdd0 ();
    0x00031efc mov r0, r6                                        |         r0 = r6;
    0x00031efe add sp, 0xc                                       |         
    0x00031f00 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_8:
    0x00031f04 adds r4, 1                                        |         r4++;
    0x00031f06 bne 0x31ea8                                       |         
                                                                 |     } while (r4 != 1);
                                                                 | label_6:
    0x00031f08 movs r0, 0                                        |     r0 = 0;
    0x00031f0a add sp, 0xc                                       |     
    0x00031f0c pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.1803.0 @ 0x31fa4 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.gst_caps_is_subset_structure ()      | void gst_caps_is_subset_structure (int16_t arg1, int16_t arg2) {
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x00031fa4 ldr r3, [pc, 0x70]                    |     
    0x00031fa6 push {r4, r5, r6, lr}                 |     
    0x00031fa8 mov r5, r0                            |     r5 = r0;
    0x00031faa add r3, pc                            |     r3 = 0x63fc6;
                                                     |     if (r0 == 0) {
    0x00031fac cbz r0, 0x31fe6                       |         goto label_0;
                                                     |     }
    0x00031fae mov r6, r1                            |     r6 = r1;
                                                     |     if (r1 == 0) {
    0x00031fb0 cbz r1, 0x31ffe                       |         goto label_1;
                                                     |     }
    0x00031fb2 ldr r3, [r0, 0xc]                     |     r3 = *((r0 + 0xc));
    0x00031fb4 lsls r2, r3, 0x1b                     |     r2 = r3 << 0x1b;
                                                     |     if (r2 < r3) {
    0x00031fb6 bmi 0x31fde                           |         goto label_2;
                                                     |     }
    0x00031fb8 ldr r3, [r0, 0x24]                    |     r3 = *((r0 + 0x24));
                                                     |     if (r3 == 0) {
    0x00031fba cbz r3, 0x31fe2                       |         goto label_3;
                                                     |     }
    0x00031fbc ldr r4, [r3, 4]                       |     r4 = *((r3 + 4));
                                                     |     if (r4 == 0) {
    0x00031fbe cbz r4, 0x31fe2                       |         goto label_3;
                                                     |     }
    0x00031fc0 subs r4, 1                            |     r4--;
                                                     |     if (r4 >= 1) {
    0x00031fc2 bpl 0x31fcc                           |         goto label_4;
                                                     |     }
    0x00031fc4 b 0x31fe2                             |     goto label_3;
                                                     |     do {
    0x00031fc6 adds r3, r4, 1                        |         r3 = r4 + 1;
                                                     |         if (r3 == r4) {
    0x00031fc8 beq 0x31fe2                           |             goto label_3;
                                                     |         }
    0x00031fca ldr r3, [r5, 0x24]                    |         r3 = *((r5 + 0x24));
                                                     | label_4:
    0x00031fcc ldr r3, [r3]                          |         r3 = *(r3);
    0x00031fce mov r0, r6                            |         r0 = r6;
    0x00031fd0 ldr.w r1, [r3, r4, lsl 3]             |         offset_0 = r4 << 3;
                                                     |         r1 = *((r3 + offset_0));
    0x00031fd4 subs r4, 1                            |         r4--;
    0x00031fd6 bl 0x61dd4                            |         r0 = gst_structure_is_subset ();
    0x00031fda cmp r0, 0                             |         
    0x00031fdc beq 0x31fc6                           |         
                                                     |     } while (r0 == 0);
                                                     | label_2:
    0x00031fde movs r0, 1                            |     r0 = 1;
    0x00031fe0 pop {r4, r5, r6, pc}                  |     
                                                     | label_3:
    0x00031fe2 movs r0, 0                            |     r0 = 0;
    0x00031fe4 pop {r4, r5, r6, pc}                  |     
                                                     | label_0:
    0x00031fe6 ldr r1, [pc, 0x34]                    |     
    0x00031fe8 ldr r0, [pc, 0x34]                    |     r0 = *(0x32020);
    0x00031fea ldr r2, [pc, 0x38]                    |     
    0x00031fec add r1, pc                            |     
    0x00031fee ldr r0, [r3, r0]                      |     r0 = *((r3 + r0));
    0x00031ff0 add.w r1, r1, 0x22c                   |     r1 = 0x6423a;
    0x00031ff4 add r2, pc                            |     r2 = 0x6401e;
    0x00031ff6 blx 0x1fdd0                           |     fcn_0001fdd0 ();
    0x00031ffa mov r0, r5                            |     r0 = r5;
    0x00031ffc pop {r4, r5, r6, pc}                  |     
                                                     | label_1:
    0x00031ffe ldr r1, [pc, 0x28]                    |     
    0x00032000 ldr r0, [pc, 0x1c]                    |     r0 = *(0x32020);
    0x00032002 ldr r2, [pc, 0x28]                    |     
    0x00032004 add r1, pc                            |     
    0x00032006 ldr r0, [r3, r0]                      |     r0 = *((r3 + r0));
    0x00032008 add.w r1, r1, 0x22c                   |     r1 = 0x6425e;
    0x0003200a strb r3, [r1, 4]                      |     *((r1 + 4)) = r3;
    0x0003200c add r2, pc                            |     r2 = 0x6403e;
    0x0003200e blx 0x1fdd0                           |     fcn_0001fdd0 ();
    0x00032012 mov r0, r6                            |     r0 = r6;
    0x00032014 pop {r4, r5, r6, pc}                  |     
                                                     | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.1803.0 @ 0x32030 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.gst_caps_is_subset_structure_full ()         | void gst_caps_is_subset_structure_full (uint32_t arg1, uint32_t arg2, uint32_t arg3) {
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     if (? >= ?) {
    0x00032030 ldrbmi lr, [r0, sp, lsr 18]!                  |         
                                                             |     }
    0x00032034 mov r5, r0                                    |     r5 = r0;
    0x00032036 ldr.w r8, [pc, 0xcc]                          |     
    0x0003203a add r8, pc                                    |     r8 = gst_tag_list_is_empty;
    0x0003203c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0003203e beq 0x320c2                                   |         goto label_2;
                                                             |     }
    0x00032040 mov r7, r1                                    |     r7 = r1;
    0x00032042 cmp r1, 0                                     |     
                                                             |     if (r1 == 0) {
    0x00032044 beq 0x320de                                   |         goto label_3;
                                                             |     }
    0x00032046 ldr r3, [r0, 0xc]                             |     r3 = *((r0 + 0xc));
    0x00032048 lsls r3, r3, 0x1b                             |     r3 <<= 0x1b;
                                                             |     if (r3 < r3) {
    0x0003204a bmi 0x320b6                                   |         goto label_4;
                                                             |     }
    0x0003204c ldr r3, [r0, 0x24]                            |     r3 = *((r0 + 0x24));
    0x0003204e cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00032050 beq 0x320bc                                   |         goto label_5;
                                                             |     }
    0x00032052 ldr r4, [r3, 4]                               |     r4 = *((r3 + 4));
                                                             |     if (r4 == 0) {
    0x00032054 cbz r4, 0x320bc                               |         goto label_5;
                                                             |     }
    0x00032056 mov r6, r2                                    |     r6 = r2;
    0x00032058 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x0003205a beq 0x320fa                                   |         goto label_6;
                                                             |     }
                                                             | label_1:
    0x0003205c subs r4, 1                                    |     r4--;
                                                             |     if (r4 >= 1) {
    0x0003205e bpl 0x32068                                   |         goto label_7;
                                                             |     }
    0x00032060 b 0x320bc                                     |     goto label_5;
                                                             |     do {
                                                             | label_0:
    0x00032062 subs r4, 1                                    |         r4--;
                                                             |         if (r4 <= 1) {
    0x00032064 blo 0x320bc                                   |             goto label_5;
                                                             |         }
    0x00032066 ldr r3, [r5, 0x24]                            |         r3 = *((r5 + 0x24));
                                                             | label_7:
    0x00032068 ldr r3, [r3]                                  |         r3 = *(r3);
    0x0003206a ldr r2, [pc, 0x9c]                            |         r2 = *(0x3210a);
    0x0003206c ldr.w sb, [r3, r4, lsl 3]                     |         offset_0 = r4 << 3;
                                                             |         sb = *((r3 + offset_0));
    0x0003206e str r0, [sp, 0xd0]                            |         *((sp + 0xd0)) = r0;
    0x00032070 dmb ish                                       |         __asm ("dmb ish");
    0x00032074 add.w r3, r3, r4, lsl 3                       |         r3 += (r4 << 3);
    0x00032078 ldr r3, [r3, 4]                               |         r3 = *((r3 + 4));
    0x0003207a dmb ish                                       |         __asm ("dmb ish");
    0x0003207e mov sl, r3                                    |         sl = r3;
                                                             |         if (r3 == 0) {
    0x00032080 cbnz r3, 0x3208a                              |             
    0x00032082 ldr.w r3, [r8, r2]                            |             r3 = *((r8 + r2));
    0x00032086 ldr.w sl, [r3]                                |             sl = *(r3);
                                                             |         }
    0x0003208a mov r0, r6                                    |         r0 = r6;
    0x0003208c bl 0x33f80                                    |         r0 = gst_caps_features_is_any ();
    0x00032090 mov r3, r0                                    |         r3 = r0;
    0x00032092 mov r0, sl                                    |         r0 = sl;
                                                             |         if (r3 == 0) {
    0x00032094 cbz r3, 0x3209e                               |             goto label_8;
                                                             |         }
    0x00032096 bl 0x33f80                                    |         r0 = gst_caps_features_is_any ();
    0x0003209a cmp r0, 0                                     |         
    0x0003209c beq 0x32062                                   |         
                                                             |     } while (r0 == 0);
                                                             | label_8:
    0x0003209e mov r0, r6                                    |     r0 = r6;
    0x000320a0 mov r1, sl                                    |     r1 = sl;
    0x000320a2 bl 0x33e98                                    |     r0 = gst_caps_features_is_equal ();
    0x000320a6 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000320a8 beq 0x32062                                   |         goto label_0;
                                                             |     }
    0x000320aa mov r1, sb                                    |     r1 = sb;
    0x000320ac mov r0, r7                                    |     r0 = r7;
    0x000320ae bl 0x61dd4                                    |     r0 = gst_structure_is_subset ();
    0x000320b2 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000320b4 beq 0x32062                                   |         goto label_0;
                                                             |     }
                                                             | label_4:
    0x000320b6 movs r0, 1                                    |     r0 = 1;
    0x000320b8 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |     
                                                             | label_5:
    0x000320bc movs r0, 0                                    |     r0 = 0;
    0x000320be pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |     
                                                             | label_2:
    0x000320c2 ldr r1, [pc, 0x48]                            |     
    0x000320c4 ldr r3, [pc, 0x48]                            |     r3 = *(0x32110);
    0x000320c6 ldr r2, [pc, 0x4c]                            |     
    0x000320c8 add r1, pc                                    |     
    0x000320ca ldr.w r0, [r8, r3]                            |     r0 = *((r8 + r3));
    0x000320ce add.w r1, r1, 0x24c                           |     r1 = 0x64426;
    0x000320d2 add r2, pc                                    |     r2 = 0x641ec;
    0x000320d4 blx 0x1fdd0                                   |     fcn_0001fdd0 ();
    0x000320d8 mov r0, r5                                    |     r0 = r5;
    0x000320da pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |     
                                                             | label_3:
    0x000320de ldr r1, [pc, 0x38]                            |     
    0x000320e0 ldr r3, [pc, 0x2c]                            |     r3 = *(0x32110);
    0x000320e2 ldr r2, [pc, 0x38]                            |     
    0x000320e4 add r1, pc                                    |     
    0x000320e6 ldr.w r0, [r8, r3]                            |     r0 = *((r8 + r3));
    0x000320ea add.w r1, r1, 0x24c                           |     r1 = 0x6444e;
    0x000320ee add r2, pc                                    |     r2 = 0x64210;
    0x000320f0 blx 0x1fdd0                                   |     fcn_0001fdd0 ();
    0x000320f4 mov r0, r7                                    |     r0 = r7;
    0x000320f6 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |     
                                                             | label_6:
    0x000320fa ldr r2, [pc, 0xc]                             |     r2 = *(0x3210a);
    0x000320fc ldr.w r2, [r8, r2]                            |     r2 = *((r8 + r2));
    0x00032100 ldr r6, [r2]                                  |     r6 = *(0x3210a);
    0x00032102 b 0x3205c                                     |     goto label_1;
                                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.1803.0 @ 0x32030 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.gst_caps_is_subset_structure_full ()         | void gst_caps_is_subset_structure_full (uint32_t arg1, uint32_t arg2, uint32_t arg3) {
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
    0x00032030 push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x00032034 mov r5, r0                                    |     r5 = r0;
    0x00032036 ldr.w r8, [pc, 0xcc]                          |     
    0x0003203a add r8, pc                                    |     r8 = gst_tag_list_is_empty;
    0x0003203c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0003203e beq 0x320c2                                   |         goto label_2;
                                                             |     }
    0x00032040 mov r7, r1                                    |     r7 = r1;
    0x00032042 cmp r1, 0                                     |     
                                                             |     if (r1 == 0) {
    0x00032044 beq 0x320de                                   |         goto label_3;
                                                             |     }
    0x00032046 ldr r3, [r0, 0xc]                             |     r3 = *((r0 + 0xc));
    0x00032048 lsls r3, r3, 0x1b                             |     r3 <<= 0x1b;
                                                             |     if (r3 < r3) {
    0x0003204a bmi 0x320b6                                   |         goto label_4;
                                                             |     }
    0x0003204c ldr r3, [r0, 0x24]                            |     r3 = *((r0 + 0x24));
    0x0003204e cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00032050 beq 0x320bc                                   |         goto label_5;
                                                             |     }
    0x00032052 ldr r4, [r3, 4]                               |     r4 = *((r3 + 4));
                                                             |     if (r4 == 0) {
    0x00032054 cbz r4, 0x320bc                               |         goto label_5;
                                                             |     }
    0x00032056 mov r6, r2                                    |     r6 = r2;
    0x00032058 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x0003205a beq 0x320fa                                   |         goto label_6;
                                                             |     }
                                                             | label_1:
    0x0003205c subs r4, 1                                    |     r4--;
                                                             |     if (r4 >= 1) {
    0x0003205e bpl 0x32068                                   |         goto label_7;
                                                             |     }
    0x00032060 b 0x320bc                                     |     goto label_5;
                                                             |     do {
                                                             | label_0:
    0x00032062 subs r4, 1                                    |         r4--;
                                                             |         if (r4 <= 1) {
    0x00032064 blo 0x320bc                                   |             goto label_5;
                                                             |         }
    0x00032066 ldr r3, [r5, 0x24]                            |         r3 = *((r5 + 0x24));
                                                             | label_7:
    0x00032068 ldr r3, [r3]                                  |         r3 = *(r3);
    0x0003206a ldr r2, [pc, 0x9c]                            |         r2 = *(0x3210a);
    0x0003206c ldr.w sb, [r3, r4, lsl 3]                     |         offset_0 = r4 << 3;
                                                             |         sb = *((r3 + offset_0));
    0x0003206e str r0, [sp, 0xd0]                            |         *((sp + 0xd0)) = r0;
    0x00032070 dmb ish                                       |         __asm ("dmb ish");
    0x00032074 add.w r3, r3, r4, lsl 3                       |         r3 += (r4 << 3);
    0x00032078 ldr r3, [r3, 4]                               |         r3 = *((r3 + 4));
    0x0003207a dmb ish                                       |         __asm ("dmb ish");
    0x0003207e mov sl, r3                                    |         sl = r3;
                                                             |         if (r3 == 0) {
    0x00032080 cbnz r3, 0x3208a                              |             
    0x00032082 ldr.w r3, [r8, r2]                            |             r3 = *((r8 + r2));
    0x00032086 ldr.w sl, [r3]                                |             sl = *(r3);
                                                             |         }
    0x0003208a mov r0, r6                                    |         r0 = r6;
    0x0003208c bl 0x33f80                                    |         r0 = gst_caps_features_is_any ();
    0x00032090 mov r3, r0                                    |         r3 = r0;
    0x00032092 mov r0, sl                                    |         r0 = sl;
                                                             |         if (r3 == 0) {
    0x00032094 cbz r3, 0x3209e                               |             goto label_8;
                                                             |         }
    0x00032096 bl 0x33f80                                    |         r0 = gst_caps_features_is_any ();
    0x0003209a cmp r0, 0                                     |         
    0x0003209c beq 0x32062                                   |         
                                                             |     } while (r0 == 0);
                                                             | label_8:
    0x0003209e mov r0, r6                                    |     r0 = r6;
    0x000320a0 mov r1, sl                                    |     r1 = sl;
    0x000320a2 bl 0x33e98                                    |     r0 = gst_caps_features_is_equal ();
    0x000320a6 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000320a8 beq 0x32062                                   |         goto label_0;
                                                             |     }
    0x000320aa mov r1, sb                                    |     r1 = sb;
    0x000320ac mov r0, r7                                    |     r0 = r7;
    0x000320ae bl 0x61dd4                                    |     r0 = gst_structure_is_subset ();
    0x000320b2 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000320b4 beq 0x32062                                   |         goto label_0;
                                                             |     }
                                                             | label_4:
    0x000320b6 movs r0, 1                                    |     r0 = 1;
    0x000320b8 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |     
                                                             | label_5:
    0x000320bc movs r0, 0                                    |     r0 = 0;
    0x000320be pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |     
                                                             | label_2:
    0x000320c2 ldr r1, [pc, 0x48]                            |     
    0x000320c4 ldr r3, [pc, 0x48]                            |     r3 = *(0x32110);
    0x000320c6 ldr r2, [pc, 0x4c]                            |     
    0x000320c8 add r1, pc                                    |     
    0x000320ca ldr.w r0, [r8, r3]                            |     r0 = *((r8 + r3));
    0x000320ce add.w r1, r1, 0x24c                           |     r1 = 0x64426;
    0x000320d2 add r2, pc                                    |     r2 = 0x641ec;
    0x000320d4 blx 0x1fdd0                                   |     fcn_0001fdd0 ();
    0x000320d8 mov r0, r5                                    |     r0 = r5;
    0x000320da pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |     
                                                             | label_3:
    0x000320de ldr r1, [pc, 0x38]                            |     
    0x000320e0 ldr r3, [pc, 0x2c]                            |     r3 = *(0x32110);
    0x000320e2 ldr r2, [pc, 0x38]                            |     
    0x000320e4 add r1, pc                                    |     
    0x000320e6 ldr.w r0, [r8, r3]                            |     r0 = *((r8 + r3));
    0x000320ea add.w r1, r1, 0x24c                           |     r1 = 0x6444e;
    0x000320ee add r2, pc                                    |     r2 = 0x64210;
    0x000320f0 blx 0x1fdd0                                   |     fcn_0001fdd0 ();
    0x000320f4 mov r0, r7                                    |     r0 = r7;
    0x000320f6 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |     
                                                             | label_6:
    0x000320fa ldr r2, [pc, 0xc]                             |     r2 = *(0x3210a);
    0x000320fc ldr.w r2, [r8, r2]                            |     r2 = *((r8 + r2));
    0x00032100 ldr r6, [r2]                                  |     r6 = *(0x3210a);
    0x00032102 b 0x3205c                                     |     goto label_1;
                                                             | }
    ; assembly                                                           | /* r2dec pseudo code output */
                                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.1803.0 @ 0x32ba4 */
                                                                         | #include <stdint.h>
                                                                         |  
    ; (fcn) sym.gst_caps_map_in_place ()                                 | void gst_caps_map_in_place (int16_t arg1, int16_t arg2, int16_t arg3) {
                                                                         |     r0 = arg1;
                                                                         |     r1 = arg2;
                                                                         |     r2 = arg3;
    0x00032ba4 push.w {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x00032ba8 ldr.w r8, [pc, 0xec]                                      |     
    0x00032baa strh r4, [r5, 6]                                          |     *((r5 + 6)) = r4;
    0x00032bac add r8, pc                                                |     r8 = 0x65848;
                                                                         |     if (r0 != 0) {
    0x00032bae cbz r0, 0x32bc2                                           |         
    0x00032bb0 ldr r3, [pc, 0xe8]                                        |         
    0x00032bb2 mov r7, r2                                                |         r7 = r2;
    0x00032bb4 ldr r2, [r0]                                              |         r2 = *(r0);
    0x00032bb6 mov sl, r0                                                |         sl = r0;
    0x00032bb8 ldr.w r3, [r8, r3]                                        |         r3 = *((r8 + r3));
    0x00032bbc ldr r3, [r3]                                              |         r3 = *(0x32c9c);
    0x00032bbe cmp r2, r3                                                |         
                                                                         |         if (r2 == r3) {
    0x00032bc0 beq 0x32be0                                               |             goto label_1;
                                                                         |         }
                                                                         |     }
    0x00032bc2 ldr r1, [pc, 0xdc]                                        |     
    0x00032bc4 movs r5, 0                                                |     r5 = 0;
    0x00032bc6 ldr r3, [pc, 0xdc]                                        |     r3 = *(0x32ca6);
    0x00032bc8 ldr r2, [pc, 0xdc]                                        |     
    0x00032bca add r1, pc                                                |     
    0x00032bcc ldr.w r0, [r8, r3]                                        |     r0 = *((r8 + r3));
    0x00032bd0 add.w r1, r1, 0x324                                       |     r1 = 0x65b94;
    0x00032bd4 add r2, pc                                                |     r2 = 0x65880;
    0x00032bd6 blx 0x1fdd0                                               |     fcn_0001fdd0 ();
                                                                         |     do {
    0x00032bda mov r0, r5                                                |         r0 = r5;
    0x00032bdc pop.w {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                         | label_1:
    0x00032be0 mov r6, r1                                                |         r6 = r1;
    0x00032be2 bl 0x486d8                                                |         r0 = gst_mini_object_is_writable ();
    0x00032be6 mov r5, r0                                                |         r5 = r0;
    0x00032be8 cmp r0, 0                                                 |         
                                                                         |         if (r0 == 0) {
    0x00032bea beq 0x32c54                                               |             goto label_2;
                                                                         |         }
    0x00032bec cmp r6, 0                                                 |         
                                                                         |         if (r6 == 0) {
    0x00032bee beq 0x32c78                                               |             goto label_3;
                                                                         |         }
    0x00032bf0 ldr.w r3, [sl, 0x24]                                      |         r3 = *((sl + 0x24));
    0x00032bf4 ldr.w sb, [r3, 4]                                         |         sb = *((r3 + 4));
    0x00032bf8 cmp.w sb, 0                                               |         
                                                                         |         if (sb == 0) {
    0x00032bfc beq 0x32c70                                               |             goto label_4;
                                                                         |         }
    0x00032bfe movs r4, 0                                                |         r4 = 0;
    0x00032c00 b 0x32c1a                                                 |         goto label_5;
                                                                         | label_0:
    0x00032c02 mov r0, r5                                                |         r0 = r5;
    0x00032c04 mov r2, r7                                                |         r2 = r7;
    0x00032c06 mov r1, fp                                                |         r1 = fp;
    0x00032c08 adds r4, 1                                                |         r4++;
    0x00032c0a blx r6                                                    |         r0 = uint32_t (*r6)(uint32_t, uint32_t, uint32_t) (r0, r1, r2);
    0x00032c0c mov r5, r0                                                |         r5 = r0;
    0x00032c0e cmp r0, 0                                                 |         
    0x00032c10 beq 0x32bda                                               |         
                                                                         |     } while (r0 == 0);
    0x00032c12 cmp sb, r4                                                |     
                                                                         |     if (sb == r4) {
    0x00032c14 beq 0x32c70                                               |         goto label_4;
                                                                         |     }
    0x00032c16 ldr.w r3, [sl, 0x24]                                      |     r3 = *((sl + 0x24));
                                                                         | label_5:
    0x00032c1a ldr r3, [r3]                                              |     r3 = *(r3);
    0x00032c1c dmb ish                                                   |     __asm ("dmb ish");
    0x00032c20 add.w r3, r3, r4, lsl 3                                   |     r3 += (r4 << 3);
    0x00032c24 ldr r3, [r3, 4]                                           |     r3 = *((r3 + 4));
    0x00032c26 dmb ish                                                   |     __asm ("dmb ish");
    0x00032c2a ldr.w r2, [sl, 0x24]                                      |     r2 = *((sl + 0x24));
    0x00032c2e mov r5, r3                                                |     r5 = r3;
    0x00032c30 ldr r2, [r2]                                              |     r2 = *(r2);
    0x00032c32 ldr.w fp, [r2, r4, lsl 3]                                 |     offset_0 = r4 << 3;
                                                                         |     fp = *((r2 + offset_0));
    0x00032c34 add sp, 0xd0                                              |     
    0x00032c36 cmp r3, 0                                                 |     
                                                                         |     if (r3 != 0) {
    0x00032c38 bne 0x32c02                                               |         goto label_0;
                                                                         |     }
    0x00032c3a ldr r3, [pc, 0x70]                                        |     r3 = *(0x32cae);
    0x00032c3c ldr.w r3, [r8, r3]                                        |     r3 = *((r8 + r3));
    0x00032c40 ldr r0, [r3]                                              |     r0 = *(0x32cae);
    0x00032c42 bl 0x34224                                                |     gst_caps_features_copy ();
    0x00032c46 mov r1, r4                                                |     r1 = r4;
    0x00032c48 mov r5, r0                                                |     r5 = r0;
    0x00032c4a mov r2, r0                                                |     r2 = r0;
    0x00032c4c mov r0, sl                                                |     r0 = sl;
    0x00032c4e bl 0x31668                                                |     gst_caps_set_features ();
    0x00032c52 b 0x32c02                                                 |     goto label_0;
                                                                         | label_2:
    0x00032c54 ldr r1, [pc, 0x58]                                        |     
    0x00032c56 ldr r3, [pc, 0x4c]                                        |     r3 = *(0x32ca6);
    0x00032c58 ldr r2, [pc, 0x58]                                        |     
    0x00032c5a add r1, pc                                                |     
    0x00032c5c ldr.w r0, [r8, r3]                                        |     r0 = *((r8 + r3));
    0x00032c60 add.w r1, r1, 0x324                                       |     r1 = 0x65c32;
    0x00032c64 add r2, pc                                                |     r2 = 0x6591c;
    0x00032c66 blx 0x1fdd0                                               |     fcn_0001fdd0 ();
    0x00032c6a mov r0, r5                                                |     r0 = r5;
    0x00032c6c pop.w {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                         | label_4:
    0x00032c70 movs r5, 1                                                |     r5 = 1;
    0x00032c72 mov r0, r5                                                |     r0 = r5;
    0x00032c74 pop.w {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                         | label_3:
    0x00032c78 ldr r1, [pc, 0x3c]                                        |     
    0x00032c7a mov r5, r6                                                |     r5 = r6;
    0x00032c7c ldr r3, [pc, 0x24]                                        |     r3 = *(0x32ca4);
    0x00032c7e ldr r2, [pc, 0x3c]                                        |     
    0x00032c80 add r1, pc                                                |     
    0x00032c82 ldr.w r0, [r8, r3]                                        |     r0 = *((r8 + r3));
    0x00032c86 add.w r1, r1, 0x324                                       |     r1 = 0x65c60;
    0x00032c8a add r2, pc                                                |     r2 = 0x6594c;
    0x00032c8c blx 0x1fdd0                                               |     fcn_0001fdd0 ();
    0x00032c90 mov r0, r5                                                |     r0 = r5;
    0x00032c92 pop.w {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                         | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.1803.0 @ 0x31230 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) sym.gst_caps_merge_structure ()          | void gst_caps_merge_structure (int16_t arg1, uint32_t arg2) {
                                                     |     int16_t var_0h;
                                                     |     int16_t var_4h;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x00031230 mvnsmi lr, sp, lsr 18                 |     __asm ("mvnsmi lr, sp, lsr 18");
    0x00031234 sub sp, 8                             |     
    0x00031236 ldr r6, [pc, 0xd8]                    |     
    0x00031238 add r6, pc                            |     r6 = 0x6254e;
                                                     |     if (r0 != 0) {
    0x0003123a cbz r0, 0x3124a                       |         
    0x0003123c ldr r3, [pc, 0xd4]                    |         
    0x0003123e mov r5, r0                            |         r5 = r0;
    0x00031240 ldr r2, [r0]                          |         r2 = *(r0);
    0x00031242 ldr r3, [r6, r3]                      |         r3 = *((r6 + r3));
    0x00031244 ldr r3, [r3]                          |         r3 = *(0x31314);
    0x00031246 cmp r2, r3                            |         
                                                     |         if (r2 == r3) {
    0x00031248 beq 0x31266                           |             goto label_2;
                                                     |         }
                                                     |     }
    0x0003124a ldr r1, [pc, 0xcc]                    |     
    0x0003124c movs r5, 0                            |     r5 = 0;
    0x0003124e ldr r3, [pc, 0xcc]                    |     r3 = *(0x3131e);
    0x00031250 ldr r2, [pc, 0xcc]                    |     
    0x00031252 add r1, pc                            |     r1 = 0x62570;
    0x00031254 ldr r0, [r6, r3]                      |     r0 = *((r6 + r3));
    0x00031256 adds r1, 0x68                         |     r1 += 0x68;
    0x00031258 add r2, pc                            |     r2 = 0x6257c;
    0x0003125a blx 0x1fdd0                           |     fcn_0001fdd0 ();
    0x0003125c invalid                               |     
                                                     |     do {
                                                     | label_1:
    0x0003125e mov r0, r5                            |         r0 = r5;
    0x00031260 add sp, 8                             |         
    0x00031262 pop.w {r4, r5, r6, r7, r8, pc}        |         
    0x00031264 strh r0, [r6, 0xe]                    |         *((r6 + 0xe)) = r0;
                                                     | label_2:
    0x00031266 mov r8, r1                            |         r8 = r1;
    0x00031268 cmp r1, 0                             |         
    0x0003126a beq 0x3125e                           |         
                                                     |     } while (r1 == 0);
    0x0003126c ldr r3, [r0, 0xc]                     |     r3 = *((r0 + 0xc));
    0x0003126e lsls r2, r3, 0x1b                     |     r2 = r3 << 0x1b;
                                                     |     if (r2 < r3) {
    0x00031270 bmi 0x312c4                           |         goto label_3;
                                                     |     }
    0x00031272 ldr r3, [r0, 0x24]                    |     r3 = *((r0 + 0x24));
    0x00031274 ldr r4, [r3, 4]                       |     r4 = *((r3 + 4));
    0x00031276 subs r4, 1                            |     r4--;
                                                     |     if (r4 < 1) {
    0x00031278 bmi 0x312d2                           |         goto label_4;
                                                     |     }
    0x0003127a ldr r2, [pc, 0xa8]                    |     r2 = *(0x31326);
    0x0003127c ldr r7, [r6, r2]                      |     r7 = *((r6 + r2));
    0x0003127e b 0x31290                             |     
                                                     |     while (r3 != 0) {
    0x00031280 ldr r1, [r7]                          |         r1 = *(r7);
    0x00031282 subs r4, 1                            |         r4--;
    0x00031284 bl 0x33e98                            |         r0 = gst_caps_features_is_equal ();
                                                     |         if (r0 != 0) {
    0x00031288 cbnz r0, 0x312b8                      |             goto label_5;
                                                     |         }
                                                     | label_0:
    0x0003128a adds r3, r4, 1                        |         r3 = r4 + 1;
                                                     |         if (r3 == r4) {
    0x0003128c beq 0x312d2                           |             goto label_4;
                                                     |         }
    0x0003128e ldr r3, [r5, 0x24]                    |         r3 = *((r5 + 0x24));
    0x00031290 ldr r3, [r3]                          |         r3 = *(r3);
    0x00031292 ldr.w r6, [r3, r4, lsl 3]             |         offset_0 = r4 << 3;
                                                     |         r6 = *((r3 + offset_0));
    0x00031296 dmb ish                               |         __asm ("dmb ish");
    0x0003129a add.w r3, r3, r4, lsl 3               |         r3 += (r4 << 3);
    0x0003129e ldr r3, [r3, 4]                       |         r3 = *((r3 + 4));
    0x000312a0 dmb ish                               |         __asm ("dmb ish");
    0x000312a4 mov r0, r3                            |         r0 = r3;
    0x000312a6 cmp r3, 0                             |         
    0x000312a8 bne 0x31280                           |         
                                                     |     }
    0x000312aa ldr r0, [r7]                          |     r0 = *(r7);
    0x000312ac subs r4, 1                            |     r4--;
    0x000312ae mov r1, r0                            |     r1 = r0;
    0x000312b0 bl 0x33e98                            |     gst_caps_features_is_equal ();
    0x000312b2 ldc2l p8, c2, [r2, 0]!                |     __asm ("ldc2l p8, c2, [r2, 0]!");
                                                     |     if (r4 == 1) {
    0x000312b6 beq 0x3128a                           |         goto label_0;
                                                     |     }
                                                     | label_5:
    0x000312b8 mov r1, r6                            |     r1 = r6;
    0x000312ba mov r0, r8                            |     r0 = r8;
    0x000312bc bl 0x61dd4                            |     r0 = gst_structure_is_subset ();
    0x000312c0 cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x000312c2 beq 0x3128a                           |         goto label_0;
                                                     |     }
                                                     | label_3:
    0x000312c4 mov r0, r8                            |     r0 = r8;
    0x000312c6 bl 0x5e698                            |     gst_structure_free ();
    0x000312ca mov r0, r5                            |     r0 = r5;
    0x000312cc add sp, 8                             |     
    0x000312ce pop.w {r4, r5, r6, r7, r8, pc}        |     
    0x000312d0 strh r0, [r6, 0xe]                    |     *((r6 + 0xe)) = r0;
                                                     | label_4:
    0x000312d2 mov r0, r5                            |     r0 = r5;
    0x000312d4 bl 0x489c8                            |     r0 = gst_mini_object_make_writable ();
    0x000312d8 adds r4, r0, 4                        |     r4 = r0 + 4;
    0x000312da mov r5, r0                            |     r5 = r0;
    0x000312dc movs r3, 0                            |     r3 = 0;
    0x000312de mov r1, r4                            |     r1 = r4;
    0x000312e0 mov r0, r8                            |     r0 = r8;
    0x000312e2 str.w r8, [sp]                        |     __asm ("str.w r8, [sp]");
    0x000312e6 str r3, [sp, 4]                       |     var_4h = r3;
    0x000312e8 bl 0x5eee8                            |     r0 = gst_structure_set_parent_refcount ();
    0x000312ec cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x000312ee beq 0x3125e                           |         goto label_1;
                                                     |     }
    0x000312f0 ldr r0, [sp, 4]                       |     r0 = var_4h;
                                                     |     if (r0 == 0) {
    0x000312f2 cbz r0, 0x312fe                       |         goto label_6;
                                                     |     }
    0x000312f4 mov r1, r4                            |     r1 = r4;
    0x000312f6 bl 0x33ab8                            |     r0 = gst_caps_features_set_parent_refcount ();
    0x000312fa cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x000312fc beq 0x3125e                           |         goto label_1;
                                                     |     }
                                                     | label_6:
    0x000312fe ldr r0, [r5, 0x24]                    |     r0 = *((r5 + 0x24));
    0x00031300 movs r2, 1                            |     r2 = 1;
    0x00031302 mov r1, sp                            |     r1 = sp;
    0x00031304 blx 0x208f8                           |     fcn_000208f8 ();
    0x00031308 mov r0, r5                            |     r0 = r5;
    0x0003130a add sp, 8                             |     
    0x0003130c pop.w {r4, r5, r6, r7, r8, pc}        |     
                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.1803.0 @ 0x31328 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.gst_caps_merge_structure_full ()                 | void gst_caps_merge_structure_full (int16_t arg1, uint32_t arg2, int16_t arg3) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x00031328 svcmi 0xf0e92d                                    |     __asm ("svcmi 0xf0e92d");
    0x0003132c sub sp, 0xc                                       |     
    0x0003132e ldr r7, [pc, 0x100]                               |     
    0x00031330 add r7, pc                                        |     r7 = 0x62766;
                                                                 |     if (r0 != 0) {
    0x00031332 cbz r0, 0x31344                                   |         
    0x00031334 ldr r3, [pc, 0xfc]                                |         
    0x00031336 mov sb, r2                                        |         sb = r2;
    0x00031338 ldr r2, [r0]                                      |         r2 = *(r0);
    0x0003133a mov r5, r0                                        |         r5 = r0;
    0x0003133c ldr r3, [r7, r3]                                  |         r3 = *((r7 + r3));
    0x0003133e ldr r3, [r3]                                      |         r3 = *(0x31434);
    0x00031340 cmp r2, r3                                        |         
                                                                 |         if (r2 == r3) {
    0x00031342 beq 0x31360                                       |             goto label_3;
                                                                 |         }
                                                                 |     }
    0x00031344 ldr r1, [pc, 0xf0]                                |     
    0x00031346 movs r5, 0                                        |     r5 = 0;
    0x00031348 ldr r3, [pc, 0xf0]                                |     r3 = *(0x3143c);
    0x0003134a ldr r2, [pc, 0xf4]                                |     
    0x0003134c add r1, pc                                        |     r1 = gst_system_clock_get_type
    0x0003134e ldr r0, [r7, r3]                                  |     r0 = *((r7 + r3));
    0x00031350 adds r1, 0x84                                     |     r1 += 0x84;
    0x00031352 add r2, pc                                        |     r2 = 0x62798;
    0x00031354 blx 0x1fdd0                                       |     fcn_0001fdd0 ();
                                                                 |     do {
                                                                 | label_1:
    0x00031358 mov r0, r5                                        |         r0 = r5;
    0x0003135a add sp, 0xc                                       |         
    0x0003135c pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_3:
    0x00031360 mov r8, r1                                        |         r8 = r1;
    0x00031362 cmp r1, 0                                         |         
    0x00031364 beq 0x31358                                       |         
                                                                 |     } while (r1 == 0);
    0x00031366 ldr r3, [r0, 0xc]                                 |     r3 = *((r0 + 0xc));
    0x00031368 lsls r3, r3, 0x1b                                 |     r3 <<= 0x1b;
                                                                 |     if (r3 < r3) {
    0x0003136a bmi 0x313d0                                       |         goto label_4;
                                                                 |     }
    0x0003136c mov r6, sb                                        |     r6 = sb;
    0x0003136e cmp.w sb, 0                                       |     
                                                                 |     if (sb == 0) {
    0x00031372 beq 0x31428                                       |         goto label_5;
                                                                 |     }
                                                                 | label_2:
    0x00031374 ldr r3, [r5, 0x24]                                |     r3 = *((r5 + 0x24));
    0x00031376 ldr r4, [r3, 4]                                   |     r4 = *((r3 + 4));
    0x00031378 subs r4, 1                                        |     r4--;
                                                                 |     if (r4 >= 1) {
    0x0003137a bpl 0x31384                                       |         goto label_6;
                                                                 |     }
    0x0003137c b 0x313ea                                         |     goto label_7;
                                                                 |     do {
                                                                 | label_0:
    0x0003137e subs r4, 1                                        |         r4--;
                                                                 |         if (r4 <= 1) {
    0x00031380 blo 0x313ea                                       |             goto label_7;
                                                                 |         }
    0x00031382 ldr r3, [r5, 0x24]                                |         r3 = *((r5 + 0x24));
                                                                 | label_6:
    0x00031384 ldr r3, [r3]                                      |         r3 = *(r3);
    0x00031386 ldr r2, [pc, 0xbc]                                |         r2 = *(0x31446);
    0x00031388 ldr.w sl, [r3, r4, lsl 3]                         |         offset_0 = r4 << 3;
                                                                 |         sl = *((r3 + offset_0));
    0x0003138c dmb ish                                           |         __asm ("dmb ish");
    0x00031390 add.w r3, r3, r4, lsl 3                           |         r3 += (r4 << 3);
    0x00031394 ldr r3, [r3, 4]                                   |         r3 = *((r3 + 4));
    0x00031396 dmb ish                                           |         __asm ("dmb ish");
    0x0003139a mov fp, r3                                        |         
                                                                 |         if (r3 == 0) {
    0x0003139c cbnz r3, 0x313a4                                  |             
    0x0003139e ldr r3, [r7, r2]                                  |             r3 = *((r7 + r2));
    0x000313a0 ldr.w fp, [r3]                                    |             fp = *(r3);
                                                                 |         }
    0x000313a4 mov r0, r6                                        |         r0 = r6;
    0x000313a6 bl 0x33f80                                        |         r0 = gst_caps_features_is_any ();
    0x000313aa mov r3, r0                                        |         r3 = r0;
    0x000313ac mov r0, fp                                        |         r0 = fp;
                                                                 |         if (r3 == 0) {
    0x000313ae cbz r3, 0x313b8                                   |             goto label_8;
                                                                 |         }
    0x000313b0 bl 0x33f80                                        |         r0 = gst_caps_features_is_any ();
    0x000313b4 cmp r0, 0                                         |         
    0x000313b6 beq 0x3137e                                       |         
                                                                 |     } while (r0 == 0);
                                                                 | label_8:
    0x000313b8 mov r0, r6                                        |     r0 = r6;
    0x000313ba mov r1, fp                                        |     r1 = fp;
    0x000313bc bl 0x33e98                                        |     r0 = gst_caps_features_is_equal ();
    0x000313c0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000313c2 beq 0x3137e                                       |         goto label_0;
                                                                 |     }
    0x000313c4 mov r1, sl                                        |     r1 = sl;
    0x000313c6 mov r0, r8                                        |     r0 = r8;
    0x000313c8 bl 0x61dd4                                        |     gst_structure_is_subset ();
    0x000313ca stc2 p8, c2, [r4, -0]                             |     __asm ("stc2 p8, c2, [r4, -0]");
                                                                 |     if (r0 == 0) {
    0x000313ce beq 0x3137e                                       |         goto label_0;
                                                                 |     }
                                                                 | label_4:
    0x000313d0 mov r0, r8                                        |     r0 = r8;
    0x000313d2 bl 0x5e698                                        |     gst_structure_free ();
    0x000313d4 vld4.32 {d31, d1, d3, d5}, [r1:0x100], sb         |     __asm ("vld4.32 {d31, d1, d3, d5}, [r1:0x100], sb");
    0x000313d8 lsrs r0, r0, 0x1c                                 |     r0 >>= 0x1c;
                                                                 |     if (r0 == r0) {
    0x000313da beq 0x31358                                       |         goto label_1;
                                                                 |     }
    0x000313dc mov r0, sb                                        |     r0 = sb;
    0x000313de bl 0x339b8                                        |     gst_caps_features_free ();
    0x000313e2 mov r0, r5                                        |     r0 = r5;
    0x000313e4 add sp, 0xc                                       |     
    0x000313e6 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_7:
    0x000313ea mov r0, r5                                        |     r0 = r5;
    0x000313ec bl 0x489c8                                        |     r0 = gst_mini_object_make_writable ();
    0x000313f0 mov r5, r0                                        |     r5 = r0;
    0x000313f2 mov r0, r8                                        |     r0 = r8;
    0x000313f4 adds r4, r5, 4                                    |     r4 = r5 + 4;
    0x000313f6 str.w r8, [sp]                                    |     __asm ("str.w r8, [sp]");
    0x000313fa mov r1, r4                                        |     r1 = r4;
    0x000313fc str.w sb, [sp, 4]                                 |     __asm ("str.w sb, [var_4h]");
    0x00031400 bl 0x5eee8                                        |     gst_structure_set_parent_refcount ();
    0x00031402 ldc2l p8, c2, [r2, -0]!                           |     __asm ("ldc2l p8, c2, [r2, -0]!");
                                                                 |     if (r4 == r5) {
    0x00031406 beq 0x31358                                       |         goto label_1;
                                                                 |     }
    0x00031408 ldr r0, [sp, 4]                                   |     r0 = var_4h;
                                                                 |     if (r0 == 0) {
    0x0003140a cbz r0, 0x31416                                   |         goto label_9;
                                                                 |     }
    0x0003140c mov r1, r4                                        |     r1 = r4;
    0x0003140e bl 0x33ab8                                        |     r0 = gst_caps_features_set_parent_refcount ();
    0x00031412 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00031414 beq 0x31358                                       |         goto label_1;
                                                                 |     }
                                                                 | label_9:
    0x00031416 ldr r0, [r5, 0x24]                                |     r0 = *((r5 + 0x24));
    0x00031418 movs r2, 1                                        |     r2 = 1;
    0x0003141a mov r1, sp                                        |     r1 = sp;
    0x0003141c blx 0x208f8                                       |     fcn_000208f8 ();
    0x0003141e orn r6, ip, r8, asr 16                            |     r6 = ip | r8;
                                                                 |     r6 = ~r6;
    0x00031420 mov r0, r5                                        |     r0 = r5;
    0x00031422 add sp, 0xc                                       |     
    0x00031424 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_5:
    0x00031428 ldr r3, [pc, 0x18]                                |     r3 = *(0x31444);
    0x0003142a ldr r3, [r7, r3]                                  |     r3 = *((r7 + r3));
    0x0003142c ldr r6, [r3]                                      |     r6 = *(0x31444);
    0x0003142e b 0x31374                                         |     goto label_2;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.1803.0 @ 0x31328 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.gst_caps_merge_structure_full ()                 | void gst_caps_merge_structure_full (int16_t arg1, uint32_t arg2, int16_t arg3) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x00031328 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x0003132c sub sp, 0xc                                       |     
    0x0003132e ldr r7, [pc, 0x100]                               |     
    0x00031330 add r7, pc                                        |     r7 = 0x62766;
                                                                 |     if (r0 != 0) {
    0x00031332 cbz r0, 0x31344                                   |         
    0x00031334 ldr r3, [pc, 0xfc]                                |         
    0x00031336 mov sb, r2                                        |         sb = r2;
    0x00031338 ldr r2, [r0]                                      |         r2 = *(r0);
    0x0003133a mov r5, r0                                        |         r5 = r0;
    0x0003133c ldr r3, [r7, r3]                                  |         r3 = *((r7 + r3));
    0x0003133e ldr r3, [r3]                                      |         r3 = *(0x31434);
    0x00031340 cmp r2, r3                                        |         
                                                                 |         if (r2 == r3) {
    0x00031342 beq 0x31360                                       |             goto label_3;
                                                                 |         }
                                                                 |     }
    0x00031344 ldr r1, [pc, 0xf0]                                |     
    0x00031346 movs r5, 0                                        |     r5 = 0;
    0x00031348 ldr r3, [pc, 0xf0]                                |     r3 = *(0x3143c);
    0x0003134a ldr r2, [pc, 0xf4]                                |     
    0x0003134c add r1, pc                                        |     r1 = gst_system_clock_get_type
    0x0003134e ldr r0, [r7, r3]                                  |     r0 = *((r7 + r3));
    0x00031350 adds r1, 0x84                                     |     r1 += 0x84;
    0x00031352 add r2, pc                                        |     r2 = 0x62798;
    0x00031354 blx 0x1fdd0                                       |     fcn_0001fdd0 ();
                                                                 |     do {
                                                                 | label_1:
    0x00031358 mov r0, r5                                        |         r0 = r5;
    0x0003135a add sp, 0xc                                       |         
    0x0003135c pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_3:
    0x00031360 mov r8, r1                                        |         r8 = r1;
    0x00031362 cmp r1, 0                                         |         
    0x00031364 beq 0x31358                                       |         
                                                                 |     } while (r1 == 0);
    0x00031366 ldr r3, [r0, 0xc]                                 |     r3 = *((r0 + 0xc));
    0x00031368 lsls r3, r3, 0x1b                                 |     r3 <<= 0x1b;
                                                                 |     if (r3 < r3) {
    0x0003136a bmi 0x313d0                                       |         goto label_4;
                                                                 |     }
    0x0003136c mov r6, sb                                        |     r6 = sb;
    0x0003136e cmp.w sb, 0                                       |     
                                                                 |     if (sb == 0) {
    0x00031372 beq 0x31428                                       |         goto label_5;
                                                                 |     }
                                                                 | label_2:
    0x00031374 ldr r3, [r5, 0x24]                                |     r3 = *((r5 + 0x24));
    0x00031376 ldr r4, [r3, 4]                                   |     r4 = *((r3 + 4));
    0x00031378 subs r4, 1                                        |     r4--;
                                                                 |     if (r4 >= 1) {
    0x0003137a bpl 0x31384                                       |         goto label_6;
                                                                 |     }
    0x0003137c b 0x313ea                                         |     goto label_7;
                                                                 |     do {
                                                                 | label_0:
    0x0003137e subs r4, 1                                        |         r4--;
                                                                 |         if (r4 <= 1) {
    0x00031380 blo 0x313ea                                       |             goto label_7;
                                                                 |         }
    0x00031382 ldr r3, [r5, 0x24]                                |         r3 = *((r5 + 0x24));
                                                                 | label_6:
    0x00031384 ldr r3, [r3]                                      |         r3 = *(r3);
    0x00031386 ldr r2, [pc, 0xbc]                                |         r2 = *(0x31446);
    0x00031388 ldr.w sl, [r3, r4, lsl 3]                         |         offset_0 = r4 << 3;
                                                                 |         sl = *((r3 + offset_0));
    0x0003138c dmb ish                                           |         __asm ("dmb ish");
    0x00031390 add.w r3, r3, r4, lsl 3                           |         r3 += (r4 << 3);
    0x00031394 ldr r3, [r3, 4]                                   |         r3 = *((r3 + 4));
    0x00031396 dmb ish                                           |         __asm ("dmb ish");
    0x0003139a mov fp, r3                                        |         
                                                                 |         if (r3 == 0) {
    0x0003139c cbnz r3, 0x313a4                                  |             
    0x0003139e ldr r3, [r7, r2]                                  |             r3 = *((r7 + r2));
    0x000313a0 ldr.w fp, [r3]                                    |             fp = *(r3);
                                                                 |         }
    0x000313a4 mov r0, r6                                        |         r0 = r6;
    0x000313a6 bl 0x33f80                                        |         r0 = gst_caps_features_is_any ();
    0x000313aa mov r3, r0                                        |         r3 = r0;
    0x000313ac mov r0, fp                                        |         r0 = fp;
                                                                 |         if (r3 == 0) {
    0x000313ae cbz r3, 0x313b8                                   |             goto label_8;
                                                                 |         }
    0x000313b0 bl 0x33f80                                        |         r0 = gst_caps_features_is_any ();
    0x000313b4 cmp r0, 0                                         |         
    0x000313b6 beq 0x3137e                                       |         
                                                                 |     } while (r0 == 0);
                                                                 | label_8:
    0x000313b8 mov r0, r6                                        |     r0 = r6;
    0x000313ba mov r1, fp                                        |     r1 = fp;
    0x000313bc bl 0x33e98                                        |     r0 = gst_caps_features_is_equal ();
    0x000313c0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000313c2 beq 0x3137e                                       |         goto label_0;
                                                                 |     }
    0x000313c4 mov r1, sl                                        |     r1 = sl;
    0x000313c6 mov r0, r8                                        |     r0 = r8;
    0x000313c8 bl 0x61dd4                                        |     gst_structure_is_subset ();
    0x000313ca stc2 p8, c2, [r4, -0]                             |     __asm ("stc2 p8, c2, [r4, -0]");
                                                                 |     if (r0 == 0) {
    0x000313ce beq 0x3137e                                       |         goto label_0;
                                                                 |     }
                                                                 | label_4:
    0x000313d0 mov r0, r8                                        |     r0 = r8;
    0x000313d2 bl 0x5e698                                        |     gst_structure_free ();
    0x000313d4 vld4.32 {d31, d1, d3, d5}, [r1:0x100], sb         |     __asm ("vld4.32 {d31, d1, d3, d5}, [r1:0x100], sb");
    0x000313d8 lsrs r0, r0, 0x1c                                 |     r0 >>= 0x1c;
                                                                 |     if (r0 == r0) {
    0x000313da beq 0x31358                                       |         goto label_1;
                                                                 |     }
    0x000313dc mov r0, sb                                        |     r0 = sb;
    0x000313de bl 0x339b8                                        |     gst_caps_features_free ();
    0x000313e2 mov r0, r5                                        |     r0 = r5;
    0x000313e4 add sp, 0xc                                       |     
    0x000313e6 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_7:
    0x000313ea mov r0, r5                                        |     r0 = r5;
    0x000313ec bl 0x489c8                                        |     r0 = gst_mini_object_make_writable ();
    0x000313f0 mov r5, r0                                        |     r5 = r0;
    0x000313f2 mov r0, r8                                        |     r0 = r8;
    0x000313f4 adds r4, r5, 4                                    |     r4 = r5 + 4;
    0x000313f6 str.w r8, [sp]                                    |     __asm ("str.w r8, [sp]");
    0x000313fa mov r1, r4                                        |     r1 = r4;
    0x000313fc str.w sb, [sp, 4]                                 |     __asm ("str.w sb, [var_4h]");
    0x00031400 bl 0x5eee8                                        |     gst_structure_set_parent_refcount ();
    0x00031402 ldc2l p8, c2, [r2, -0]!                           |     __asm ("ldc2l p8, c2, [r2, -0]!");
                                                                 |     if (r4 == r5) {
    0x00031406 beq 0x31358                                       |         goto label_1;
                                                                 |     }
    0x00031408 ldr r0, [sp, 4]                                   |     r0 = var_4h;
                                                                 |     if (r0 == 0) {
    0x0003140a cbz r0, 0x31416                                   |         goto label_9;
                                                                 |     }
    0x0003140c mov r1, r4                                        |     r1 = r4;
    0x0003140e bl 0x33ab8                                        |     r0 = gst_caps_features_set_parent_refcount ();
    0x00031412 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00031414 beq 0x31358                                       |         goto label_1;
                                                                 |     }
                                                                 | label_9:
    0x00031416 ldr r0, [r5, 0x24]                                |     r0 = *((r5 + 0x24));
    0x00031418 movs r2, 1                                        |     r2 = 1;
    0x0003141a mov r1, sp                                        |     r1 = sp;
    0x0003141c blx 0x208f8                                       |     fcn_000208f8 ();
    0x0003141e orn r6, ip, r8, asr 16                            |     r6 = ip | r8;
                                                                 |     r6 = ~r6;
    0x00031420 mov r0, r5                                        |     r0 = r5;
    0x00031422 add sp, 0xc                                       |     
    0x00031424 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_5:
    0x00031428 ldr r3, [pc, 0x18]                                |     r3 = *(0x31444);
    0x0003142a ldr r3, [r7, r3]                                  |     r3 = *((r7 + r3));
    0x0003142c ldr r6, [r3]                                      |     r6 = *(0x31444);
    0x0003142e b 0x31374                                         |     goto label_2;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.1803.0 @ 0x3253c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.gst_caps_simplify ()                             | void gst_caps_simplify (int16_t arg1, int16_t arg2) {
                                                                 |     int16_t var_0h_3;
                                                                 |     int16_t var_4h_3;
                                                                 |     int16_t var_8h_2;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h_2;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_40h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0003253c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00032540 sub sp, 0x4c                                      |     
    0x00032542 ldr.w sl, [pc, 0x234]                             |     
    0x00032544 adr r2, 0xd0                                      |     r2 = 0xd0;
    0x00032546 add sl, pc                                        |     sl = 0x64cc4;
                                                                 |     if (r0 != 0) {
    0x00032548 cbz r0, 0x3255a                                   |         
    0x0003254a ldr r3, [pc, 0x230]                               |         
    0x0003254c mov r7, r0                                        |         r7 = r0;
    0x0003254e ldr r2, [r0]                                      |         r2 = *(r0);
    0x00032550 ldr.w r3, [sl, r3]                                |         r3 = *((sl + r3));
    0x00032554 ldr r3, [r3]                                      |         r3 = *(0x3277e);
    0x00032556 cmp r2, r3                                        |         
                                                                 |         if (r2 == r3) {
    0x00032558 beq 0x3257a                                       |             goto label_8;
                                                                 |         }
                                                                 |     }
    0x0003255a ldr r1, [pc, 0x224]                               |     
    0x0003255c movs r7, 0                                        |     r7 = 0;
    0x0003255e ldr r3, [pc, 0x224]                               |     r3 = *(0x32786);
    0x00032560 ldr r2, [pc, 0x224]                               |     
    0x00032562 add r1, pc                                        |     
    0x00032564 ldr.w r0, [sl, r3]                                |     r0 = *((sl + r3));
    0x00032568 add.w r1, r1, 0x2cc                               |     r1 = 0x64fb4;
    0x0003256c add r2, pc                                        |     r2 = 0x64cf8;
    0x0003256e blx 0x1fdd0                                       |     fcn_0001fdd0 ();
                                                                 |     do {
                                                                 | label_0:
    0x00032572 mov r0, r7                                        |         r0 = r7;
    0x00032574 add sp, 0x4c                                      |         
    0x00032576 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_8:
    0x0003257a ldr r3, [r0, 0x24]                                |         r3 = *((r0 + 0x24));
    0x0003257c ldr r3, [r3, 4]                                   |         r3 = *((r3 + 4));
    0x0003257e cmp r3, 0                                         |         
    0x00032580 beq 0x32572                                       |         
                                                                 |     } while (r3 == 0);
    0x00032582 subs r4, r3, 1                                    |     r4 = r3 - 1;
    0x00032584 str r4, [sp, 0x10]                                |     var_10h = r4;
                                                                 |     if (r4 == r3) {
    0x00032586 beq 0x32572                                       |         goto label_0;
                                                                 |     }
    0x00032588 bl 0x489c8                                        |     gst_mini_object_make_writable ();
    0x0003258c ldr r1, [pc, 0x1fc]                               |     
    0x0003258e mov r7, r0                                        |     r7 = r0;
    0x00032590 ldr r0, [r0, 0x24]                                |     r0 = *((r0 + 0x24));
    0x00032592 add r1, pc                                        |     r1 = 0x64d22;
    0x00032594 blx 0x1f198                                       |     fcn_0001f198 ();
    0x00032598 cmp r4, 0                                         |     
                                                                 |     if (r4 < 0) {
    0x0003259a blt 0x32572                                       |         goto label_0;
                                                                 |     }
    0x0003259c ldr r3, [pc, 0x1f0]                               |     
    0x0003259e mov fp, r4                                        |     
    0x000325a0 add.w r8, sp, 0x20                                |     r8 += var_20h;
    0x000325a4 add r3, pc                                        |     r3 = 0x64d38;
    0x000325a6 str r3, [sp, 8]                                   |     var_8h_2 = r3;
                                                                 | label_3:
    0x000325a8 ldr r3, [r7, 0x24]                                |     r3 = *((r7 + 0x24));
    0x000325aa lsl.w r2, fp, 3                                   |     r2 = fp << 3;
    0x000325ae str r2, [sp, 0xc]                                 |     var_ch = r2;
    0x000325b0 ldr r3, [r3]                                      |     r3 = *(r3);
    0x000325b2 adds r2, r3, r2                                   |     r2 = r3 + r2;
    0x000325b4 ldr.w r5, [r3, fp, lsl 3]                         |     offset_0 = fp << 3;
                                                                 |     r5 = *((r3 + offset_0));
    0x000325b8 dmb ish                                           |     __asm ("dmb ish");
    0x000325bc ldr r3, [r2, 4]                                   |     r3 = *((r2 + 4));
    0x000325be dmb ish                                           |     __asm ("dmb ish");
                                                                 |     if (r3 == 0) {
    0x000325c2 cbnz r3, 0x325cc                                  |         
    0x000325c4 ldr r3, [pc, 0x1cc]                               |         
    0x000325c6 ldr.w r3, [sl, r3]                                |         r3 = *((sl + r3));
    0x000325ca ldr r3, [r3]                                      |         r3 = *(0x32794);
                                                                 |     }
    0x000325cc str r3, [sp, 4]                                   |     var_4h_3 = r3;
    0x000325ce ldr r3, [r7, 0x24]                                |     r3 = *((r7 + 0x24));
    0x000325d0 ldr r2, [sp, 0x10]                                |     r2 = var_10h;
    0x000325d2 ldr r3, [r3]                                      |     r3 = *(r3);
    0x000325d4 ldr.w r6, [r3, r2, lsl 3]                         |     offset_1 = r2 << 3;
                                                                 |     r6 = *((r3 + offset_1));
    0x000325d8 dmb ish                                           |     __asm ("dmb ish");
    0x000325dc add.w r3, r3, r2, lsl 3                           |     r3 += (r2 << 3);
    0x000325e0 ldr r4, [r3, 4]                                   |     r4 = *((r3 + 4));
    0x000325e2 dmb ish                                           |     __asm ("dmb ish");
                                                                 |     if (r4 == 0) {
    0x000325e6 cbnz r4, 0x325f0                                  |         
    0x000325e8 ldr r3, [pc, 0x1a8]                               |         r3 = *(0x32794);
    0x000325ea ldr.w r3, [sl, r3]                                |         r3 = *((sl + r3));
    0x000325ee ldr r4, [r3]                                      |         r4 = *(0x32794);
                                                                 |     }
    0x000325f0 mov r0, r5                                        |     r0 = r5;
    0x000325f2 bl 0x5f168                                        |     r0 = gst_structure_get_name_id ();
    0x000325f6 mov r3, r0                                        |     r3 = r0;
    0x000325f8 mov r0, r6                                        |     r0 = r6;
    0x000325fa mov r6, r3                                        |     r6 = r3;
    0x000325fc bl 0x5f168                                        |     r0 = gst_structure_get_name_id ();
    0x00032600 cmp r6, r0                                        |     
                                                                 |     if (r6 == r0) {
    0x00032602 beq.w 0x32760                                     |         goto label_9;
                                                                 |     }
                                                                 | label_5:
    0x00032606 str.w fp, [sp, 0x10]                              |     __asm ("str.w fp, [var_10h]");
                                                                 | label_6:
    0x0003260a ldr r4, [sp, 0x10]                                |     r4 = var_10h;
    0x0003260c b 0x32612                                         |     
                                                                 |     while (fp == r4) {
                                                                 | label_1:
    0x0003260e subs r4, 1                                        |         r4--;
                                                                 |         if (r4 <= 1) {
    0x00032610 blo 0x326cc                                       |             goto label_7;
                                                                 |         }
                                                                 | label_2:
    0x00032612 cmp fp, r4                                        |         
    0x00032614 beq 0x3260e                                       |         
                                                                 |     }
    0x00032616 ldr r3, [r7, 0x24]                                |     r3 = *((r7 + 0x24));
    0x00032618 ldr r3, [r3]                                      |     r3 = *(r3);
    0x0003261a ldr.w r6, [r3, r4, lsl 3]                         |     offset_2 = r4 << 3;
                                                                 |     r6 = *((r3 + offset_2));
    0x0003261e dmb ish                                           |     __asm ("dmb ish");
    0x00032622 add.w r3, r3, r4, lsl 3                           |     r3 += (r4 << 3);
    0x00032626 ldr r1, [r3, 4]                                   |     r1 = *((r3 + 4));
    0x00032628 dmb ish                                           |     __asm ("dmb ish");
                                                                 |     if (r1 == 0) {
    0x0003262c cbnz r1, 0x32636                                  |         
    0x0003262e ldr r3, [pc, 0x164]                               |         r3 = *(0x32796);
    0x00032630 ldr.w r3, [sl, r3]                                |         r3 = *((sl + r3));
    0x00032634 ldr r1, [r3]                                      |         r1 = *(0x32796);
                                                                 |     }
    0x00032636 mov r0, r5                                        |     r0 = r5;
    0x00032638 str r1, [sp]                                      |     *(sp) = r1;
    0x0003263a bl 0x5f168                                        |     r0 = gst_structure_get_name_id ();
    0x0003263e mov sb, r0                                        |     sb = r0;
    0x00032640 mov r0, r6                                        |     r0 = r6;
    0x00032642 bl 0x5f168                                        |     r0 = gst_structure_get_name_id ();
    0x00032646 cmp sb, r0                                        |     
                                                                 |     if (sb != r0) {
    0x00032648 bne 0x326cc                                       |         goto label_7;
                                                                 |     }
    0x0003264a ldrd r1, r0, [sp]                                 |     __asm ("ldrd r1, r0, [sp]");
    0x0003264e bl 0x33e98                                        |     r0 = gst_caps_features_is_equal ();
    0x00032652 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00032654 beq 0x326cc                                       |         goto label_7;
                                                                 |     }
    0x00032656 movs r2, 0x28                                     |     r2 = 0x28;
    0x00032658 movs r1, 0                                        |     r1 = 0;
    0x0003265a mov r0, r8                                        |     r0 = r8;
    0x0003265c blx 0x1f724                                       |     fsync ();
    0x00032660 mov r2, r6                                        |     r2 = r6;
    0x00032662 mov r1, r5                                        |     r1 = r5;
    0x00032664 add r0, sp, 0x1c                                  |     r0 += var_1ch;
    0x00032666 bl 0x30b38                                        |     r0 = fcn_00030b38 (r0, r1, r2);
                                                                 |     if (r0 != 0) {
    0x0003266a cbz r0, 0x32690                                   |         
    0x0003266c ldr r0, [sp, 0x1c]                                |         r0 = var_1ch;
    0x0003266e cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00032670 beq 0x32748                                       |             goto label_10;
                                                                 |         }
    0x00032672 ldr r1, [r0, 4]                                   |         r1 = *((r0 + 4));
    0x00032674 cmp r1, 0                                         |         
                                                                 |         if (r1 == 0) {
    0x00032676 beq 0x326dc                                       |             goto label_11;
                                                                 |         }
    0x00032678 ldr r3, [pc, 0x11c]                               |         r3 = *(0x32798);
    0x0003267a movs r2, 0                                        |         r2 = 0;
    0x0003267c ldr.w r1, [sl, r3]                                |         r1 = *((sl + r3));
    0x00032680 str r0, [sp]                                      |         *(sp) = r0;
    0x00032682 blx 0x200b4                                       |         g_initially_unowned_get_type ();
    0x00032686 ldr r0, [sp]                                      |         r0 = *(sp);
    0x00032688 blx 0x1f330                                       |         fcn_0001f330 ();
    0x0003268c movs r3, 0                                        |         r3 = 0;
    0x0003268e str r3, [sp, 0x1c]                                |         var_1ch = r3;
                                                                 |     }
    0x00032690 ldr r1, [sp, 8]                                   |     r1 = var_8h_2;
    0x00032692 mov r2, r8                                        |     r2 = r8;
    0x00032694 mov r0, r5                                        |     r0 = r5;
    0x00032696 str r6, [sp, 0x40]                                |     var_40h = r6;
    0x00032698 bl 0x5fda8                                        |     r0 = gst_structure_foreach ();
    0x0003269c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0003269e beq 0x3260e                                       |         goto label_1;
                                                                 |     }
    0x000326a0 add r2, sp, 0x28                                  |     r2 += var_28h;
    0x000326a2 mov r0, r2                                        |     r0 = r2;
    0x000326a4 str r2, [sp]                                      |     *(sp) = r2;
    0x000326a6 blx 0x207f0                                       |     r0 = fcn_000207f0 ();
                                                                 |     if (r0 == 0) {
    0x000326aa cbz r0, 0x32708                                   |         goto label_12;
                                                                 |     }
    0x000326ac mov r0, r5                                        |     r0 = r5;
    0x000326ae bl 0x5fd0c                                        |     gst_structure_n_fields ();
    0x000326b2 str r0, [sp, 0x14]                                |     var_14h_2 = r0;
    0x000326b4 mov r0, r6                                        |     r0 = r6;
    0x000326b6 bl 0x5fd0c                                        |     gst_structure_n_fields ();
    0x000326ba ldr r3, [sp, 0x14]                                |     r3 = var_14h_2;
    0x000326bc ldr r2, [sp]                                      |     r2 = *(sp);
    0x000326be cmp r3, r0                                        |     
                                                                 |     if (r3 == r0) {
    0x000326c0 beq 0x32740                                       |         goto label_13;
                                                                 |     }
    0x000326c2 mov r0, r2                                        |     r0 = r2;
    0x000326c4 blx 0x1f1d8                                       |     g_source_set_priority ();
    0x000326c8 subs r4, 1                                        |     r4--;
                                                                 |     if (r4 >= 1) {
    0x000326ca bhs 0x32612                                       |         goto label_2;
                                                                 |     }
                                                                 | label_7:
    0x000326cc subs.w fp, fp, 1                                  |     
                                                                 |     if (fp >= fp) {
    0x000326d0 bhs.w 0x325a8                                     |         goto label_3;
                                                                 |     }
                                                                 | label_4:
    0x000326d4 mov r0, r7                                        |     r0 = r7;
    0x000326d6 add sp, 0x4c                                      |     
    0x000326d8 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_11:
    0x000326dc ldr r6, [r0]                                      |     r6 = *(r0);
    0x000326de str r1, [sp]                                      |     *(sp) = r1;
    0x000326e0 blx 0x1f330                                       |     fcn_0001f330 ();
    0x000326e4 ldr r1, [sp]                                      |     r1 = *(sp);
                                                                 |     if (r6 == 0) {
    0x000326e6 cbz r6, 0x32748                                   |         goto label_10;
                                                                 |     }
    0x000326e8 mov r0, r5                                        |     r0 = r5;
    0x000326ea bl 0x5eee8                                        |     gst_structure_set_parent_refcount ();
    0x000326ee mov r0, r5                                        |     r0 = r5;
    0x000326f0 mov r5, r6                                        |     r5 = r6;
    0x000326f2 bl 0x5e698                                        |     gst_structure_free ();
    0x000326f6 adds r1, r7, 4                                    |     r1 = r7 + 4;
    0x000326f8 mov r0, r6                                        |     r0 = r6;
    0x000326fa bl 0x5eee8                                        |     gst_structure_set_parent_refcount ();
    0x000326fe ldr r3, [r7, 0x24]                                |     r3 = *((r7 + 0x24));
    0x00032700 ldr r2, [sp, 0xc]                                 |     r2 = var_ch;
    0x00032702 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00032704 str r6, [r3, r2]                                  |     *((r3 + r2)) = r6;
    0x00032706 b 0x3260e                                         |     goto label_1;
                                                                 | label_12:
    0x00032708 mov r0, r5                                        |     r0 = r5;
    0x0003270a bl 0x5fd0c                                        |     gst_structure_n_fields ();
    0x0003270e str r0, [sp]                                      |     *(sp) = r0;
    0x00032710 mov r0, r6                                        |     r0 = r6;
    0x00032712 bl 0x5fd0c                                        |     gst_structure_n_fields ();
    0x00032716 ldr r3, [sp]                                      |     r3 = *(sp);
    0x00032718 cmp r3, r0                                        |     
                                                                 |     if (r3 <= r0) {
    0x0003271a ble.w 0x3260e                                     |         goto label_1;
                                                                 |     }
    0x0003271e mov r0, r5                                        |     r0 = r5;
    0x00032720 bl 0x60c90                                        |     r0 = gst_structure_to_string ();
    0x00032724 mov r3, r0                                        |     r3 = r0;
    0x00032726 mov r0, r6                                        |     r0 = r6;
    0x00032728 str r3, [sp]                                      |     *(sp) = r3;
    0x0003272a bl 0x60c90                                        |     gst_structure_to_string ();
    0x0003272e ldr r3, [sp]                                      |     r3 = *(sp);
    0x00032730 mov r6, r0                                        |     r6 = r0;
    0x00032732 mov r0, r3                                        |     r0 = r3;
    0x00032734 blx 0x1f14c                                       |     fcn_0001f14c ();
    0x00032738 mov r0, r6                                        |     r0 = r6;
    0x0003273a blx 0x1f14c                                       |     fcn_0001f14c ();
    0x0003273e b 0x3260e                                         |     goto label_1;
                                                                 | label_13:
    0x00032740 ldr r1, [sp, 0x20]                                |     r1 = var_20h;
    0x00032742 mov r0, r6                                        |     r0 = r6;
    0x00032744 bl 0x5f3a0                                        |     gst_structure_id_take_value ();
                                                                 | label_10:
    0x00032748 ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x0003274a mov r1, fp                                        |     r1 = fp;
    0x0003274c mov r0, r7                                        |     r0 = r7;
    0x0003274e subs r3, 1                                        |     r3--;
    0x00032750 str r3, [sp, 0x10]                                |     var_10h = r3;
    0x00032752 bl 0x3148c                                        |     gst_caps_remove_structure ();
    0x00032756 subs.w fp, fp, 1                                  |     
                                                                 |     if (fp >= fp) {
    0x0003275a bhs.w 0x325a8                                     |         goto label_3;
                                                                 |     }
    0x0003275e b 0x326d4                                         |     goto label_4;
                                                                 | label_9:
    0x00032760 ldr r0, [sp, 4]                                   |     r0 = var_4h_3;
    0x00032762 mov r1, r4                                        |     r1 = r4;
    0x00032764 bl 0x33e98                                        |     r0 = gst_caps_features_is_equal ();
    0x00032768 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0003276a beq.w 0x32606                                     |         goto label_5;
                                                                 |     }
    0x0003276e ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x00032770 cmp r3, 0                                         |     
                                                                 |     if (r3 >= 0) {
    0x00032772 bge.w 0x3260a                                     |         goto label_6;
                                                                 |     }
    0x00032776 b 0x326cc                                         |     goto label_7;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.1803.0 @ 0x33394 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.gst_caps_subtract ()                             | void gst_caps_subtract (uint32_t arg1, uint32_t arg2) {
                                                                 |     int16_t var_0h_2;
                                                                 |     int16_t var_4h_2;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch_2;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_28h_2;
                                                                 |     int16_t var_2ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00033394 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00033398 sub sp, 0x34                                      |     
    0x0003339a ldr.w r8, [pc, 0x29c]                             |     
    0x0003339e add r8, pc                                        |     r8 = 0x669dc;
    0x000333a0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000333a2 beq.w 0x33592                                     |         goto label_7;
                                                                 |     }
    0x000333a6 mov sb, r1                                        |     sb = r1;
    0x000333a8 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x000333aa beq.w 0x335b2                                     |         goto label_8;
                                                                 |     }
    0x000333ac strh r2, [r0, 8]                                  |     *((r0 + 8)) = r2;
    0x000333ae ldr r3, [r0, 0xc]                                 |     r3 = *((r0 + 0xc));
    0x000333b0 ands r3, r3, 0x10                                 |     r3 &= 0x10;
                                                                 |     if (r3 == r3) {
    0x000333b4 bne 0x333c2                                       |         
    0x000333b6 ldr r2, [r0, 0x24]                                |         r2 = *((r0 + 0x24));
    0x000333b8 cmp r2, 0                                         |         
                                                                 |         if (r2 == 0) {
    0x000333ba beq 0x3348a                                       |             goto label_9;
                                                                 |         }
    0x000333bc ldr r2, [r2, 4]                                   |         r2 = *((r2 + 4));
    0x000333be cmp r2, 0                                         |         
                                                                 |         if (r2 == 0) {
    0x000333c0 beq 0x3348a                                       |             goto label_9;
                                                                 |         }
                                                                 |     }
    0x000333c2 ldr.w r2, [sb, 0xc]                               |     r2 = *((sb + 0xc));
    0x000333c6 ands r4, r2, 0x10                                 |     r4 = r2 & 0x10;
                                                                 |     if (r4 != r2) {
    0x000333ca bne 0x3348a                                       |         goto label_9;
                                                                 |     }
    0x000333cc ldr.w r2, [sb, 0x24]                              |     r2 = *((sb + 0x24));
    0x000333d0 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x000333d2 beq.w 0x335ec                                     |         goto label_10;
                                                                 |     }
    0x000333d6 ldr r2, [r2, 4]                                   |     r2 = *((r2 + 4));
    0x000333d8 str r2, [sp, 0x14]                                |     var_14h = r2;
    0x000333da cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x000333dc beq.w 0x335ec                                     |         goto label_10;
                                                                 |     }
    0x000333e0 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x000333e2 bne.w 0x335d2                                     |         goto label_11;
                                                                 |     }
    0x000333e6 mov sl, r3                                        |     sl = r3;
    0x000333e8 str r3, [sp, 0xc]                                 |     var_0h = r3;
    0x000333ea bl 0x3116c                                        |     fcn_0003116c (r0);
    0x000333ee str.w sb, [sp, 0x10]                              |     __asm ("str.w sb, [var_4h]");
    0x000333f2 strd r0, sl, [sp]                                 |     __asm ("strd r0, sl, [sp]");
                                                                 | label_5:
    0x000333f6 ldr r3, [sp, 0x10]                                |     r3 = var_4h;
    0x000333f8 ldr r2, [sp, 0xc]                                 |     r2 = var_0h;
    0x000333fa ldr r3, [r3, 0x24]                                |     r3 = *((r3 + 0x24));
    0x000333fc ldr r3, [r3]                                      |     r3 = *(r3);
    0x000333fe ldr.w sb, [r3, r2, lsl 3]                         |     offset_0 = r2 << 3;
                                                                 |     sb = *((r3 + offset_0));
    0x00033402 dmb ish                                           |     __asm ("dmb ish");
    0x00033406 add.w r3, r3, r2, lsl 3                           |     r3 += (r2 << 3);
    0x0003340a ldr r3, [r3, 4]                                   |     r3 = *((r3 + 4));
    0x0003340c dmb ish                                           |     __asm ("dmb ish");
                                                                 |     if (r3 == 0) {
    0x00033410 cbnz r3, 0x3341a                                  |         
    0x00033412 ldr r3, [pc, 0x228]                               |         
    0x00033414 ldr.w r3, [r8, r3]                                |         r3 = *((r8 + r3));
    0x00033418 ldr r3, [r3]                                      |         r3 = *(0x3363e);
                                                                 |     }
    0x0003341a ldr r4, [sp, 4]                                   |     r4 = var_4h_2;
    0x0003341c str r3, [sp, 8]                                   |     var_8h = r3;
                                                                 |     if (r4 != 0) {
    0x0003341e cbz r4, 0x33428                                   |         
    0x00033420 ldr r0, [sp]                                      |         r0 = *(sp);
    0x00033422 bl 0x33164                                        |         gst_caps_unref ();
    0x00033426 str r4, [sp]                                      |         *(sp) = r4;
                                                                 |     }
    0x00033428 bl 0x30dd8                                        |     gst_caps_new_empty ();
    0x0003342c ldr r3, [sp]                                      |     r3 = *(sp);
    0x0003342e str r0, [sp, 4]                                   |     var_4h_2 = r0;
    0x00033430 ldr r3, [r3, 0x24]                                |     r3 = *((r3 + 0x24));
    0x00033432 ldr.w fp, [r3, 4]                                 |     fp = *((r3 + 4));
    0x00033436 cmp.w fp, 0                                       |     
                                                                 |     if (fp == 0) {
    0x0003343a beq.w 0x335f6                                     |         goto label_12;
                                                                 |     }
    0x0003343e movs r5, 0                                        |     r5 = 0;
    0x00033440 adds r6, r0, 4                                    |     r6 = r0 + 4;
                                                                 |     do {
    0x00033442 ldr r3, [r3]                                      |         r3 = *(r3);
    0x00033444 ldr.w r7, [r3, r5, lsl 3]                         |         offset_1 = r5 << 3;
                                                                 |         r7 = *((r3 + offset_1));
    0x00033448 dmb ish                                           |         __asm ("dmb ish");
    0x0003344c add.w r3, r3, r5, lsl 3                           |         r3 += (r5 << 3);
    0x00033450 ldr r4, [r3, 4]                                   |         r4 = *((r3 + 4));
    0x00033452 dmb ish                                           |         __asm ("dmb ish");
                                                                 |         if (r4 == 0) {
    0x00033456 cbnz r4, 0x33460                                  |             
    0x00033458 ldr r3, [pc, 0x1e0]                               |             r3 = *(0x3363c);
    0x0003345a ldr.w r3, [r8, r3]                                |             r3 = *((r8 + r3));
    0x0003345e ldr r4, [r3]                                      |             r4 = *(0x3363c);
                                                                 |         }
    0x00033460 mov r0, r4                                        |         r0 = r4;
    0x00033462 bl 0x33f80                                        |         r0 = gst_caps_features_is_any ();
                                                                 |         if (r0 != 0) {
    0x00033466 cbz r0, 0x33494                                   |             
    0x00033468 ldr r1, [pc, 0x1d4]                               |             
    0x0003346a mov.w sl, 0                                       |             sl = 0;
    0x0003346e ldr r3, [pc, 0x1d4]                               |             r3 = *(0x33646);
    0x00033470 ldr r2, [pc, 0x1d4]                               |             
    0x00033472 add r1, pc                                        |             
    0x00033474 ldr.w r0, [r8, r3]                                |             r0 = *((r8 + r3));
    0x00033478 add.w r1, r1, 0x398                               |             r1 = 0x66e4e;
    0x0003347c add r2, pc                                        |             r2 = 0x66ac8;
    0x0003347e blx 0x1fdd0                                       |             fcn_0001fdd0 ();
                                                                 | label_4:
    0x00033482 mov r0, sl                                        |             r0 = sl;
    0x00033484 add sp, 0x34                                      |             
    0x00033486 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |             
    0x00033488 ldrh r0, [r6, 0x3e]                               |             r0 = *((r6 + 0x3e));
                                                                 | label_9:
    0x0003348a add sp, 0x34                                      |             
    0x0003348c pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}        |             
    0x00033490 b.w 0x30dd8                                       |             void (*0x30dd8)() ();
    0x00033492 pop {r1, r5, r7}                                  |             
                                                                 |         }
    0x00033494 mov r0, r7                                        |         r0 = r7;
    0x00033496 bl 0x5f168                                        |         r0 = gst_structure_get_name_id ();
    0x0003349a mov sl, r0                                        |         sl = r0;
    0x0003349c mov r0, sb                                        |         r0 = sb;
    0x0003349e bl 0x5f168                                        |         r0 = gst_structure_get_name_id ();
    0x000334a2 cmp sl, r0                                        |         
                                                                 |         if (sl == r0) {
    0x000334a4 beq 0x33508                                       |             goto label_13;
                                                                 |         }
                                                                 | label_1:
    0x000334a6 mov r0, r7                                        |         r0 = r7;
    0x000334a8 bl 0x5ef68                                        |         gst_structure_copy ();
    0x000334ac str r0, [sp, 0x28]                                |         var_28h_2 = r0;
                                                                 |         if (r4 != 0) {
    0x000334ae cbz r4, 0x334ce                                   |             
    0x000334b0 mov r0, r4                                        |             r0 = r4;
    0x000334b2 bl 0x33f80                                        |             r0 = gst_caps_features_is_any ();
    0x000334b6 mov r7, r0                                        |             r7 = r0;
                                                                 |             if (r0 != 0) {
    0x000334b8 cbnz r0, 0x334fc                                  |                 goto label_14;
                                                                 |             }
    0x000334ba ldr r3, [pc, 0x180]                               |             r3 = *(0x3363e);
    0x000334bc mov r0, r4                                        |             r0 = r4;
    0x000334be ldr.w r3, [r8, r3]                                |             r3 = *((r8 + r3));
    0x000334c2 ldr r1, [r3]                                      |             r1 = *(0x3363e);
    0x000334c4 bl 0x33e98                                        |             r0 = gst_caps_features_is_equal ();
                                                                 |             if (r0 == 0) {
    0x000334c8 cbz r0, 0x334fc                                   |                 goto label_14;
                                                                 |             }
    0x000334ca ldr r0, [sp, 0x28]                                |             r0 = var_28h_2;
    0x000334cc mov r4, r7                                        |             r4 = r7;
                                                                 |         }
                                                                 | label_0:
    0x000334ce mov r1, r6                                        |         r1 = r6;
    0x000334d0 str r4, [sp, 0x2c]                                |         var_2ch = r4;
    0x000334d2 bl 0x5eee8                                        |         r0 = gst_structure_set_parent_refcount ();
                                                                 |         if (r0 != 0) {
    0x000334d6 cbz r0, 0x334f0                                   |             
    0x000334d8 ldr r0, [sp, 0x2c]                                |             r0 = var_2ch;
                                                                 |             if (r0 != 0) {
    0x000334da cbz r0, 0x334e4                                   |                 
    0x000334dc mov r1, r6                                        |                 r1 = r6;
    0x000334de bl 0x33ab8                                        |                 r0 = gst_caps_features_set_parent_refcount ();
                                                                 |                 if (r0 == 0) {
    0x000334e2 cbz r0, 0x334f0                                   |                     goto label_6;
                                                                 |                 }
                                                                 |             }
    0x000334e4 ldr r3, [sp, 4]                                   |             r3 = var_4h_2;
    0x000334e6 movs r2, 1                                        |             r2 = 1;
    0x000334e8 add r1, sp, 0x28                                  |             r1 += var_28h_2;
    0x000334ea ldr r0, [r3, 0x24]                                |             r0 = *((r3 + 0x24));
    0x000334ec blx 0x208f8                                       |             fcn_000208f8 ();
                                                                 |         }
                                                                 | label_6:
    0x000334f0 adds r5, 1                                        |         r5++;
    0x000334f2 cmp fp, r5                                        |         
                                                                 |         if (fp == r5) {
    0x000334f4 beq 0x335f6                                       |             goto label_12;
                                                                 |         }
    0x000334f6 ldr r3, [sp]                                      |         r3 = *(sp);
    0x000334f8 ldr r3, [r3, 0x24]                                |         r3 = *((r3 + 0x24));
    0x000334fa b 0x33442                                         |         
                                                                 |     } while (1);
                                                                 | label_14:
    0x000334fc mov r0, r4                                        |     r0 = r4;
    0x000334fe bl 0x34224                                        |     r0 = gst_caps_features_copy ();
    0x00033502 mov r4, r0                                        |     r4 = r0;
    0x00033504 ldr r0, [sp, 0x28]                                |     r0 = var_28h_2;
    0x00033506 b 0x334ce                                         |     goto label_0;
                                                                 | label_13:
    0x00033508 ldr r1, [sp, 8]                                   |     r1 = var_8h;
    0x0003350a mov r0, r4                                        |     r0 = r4;
    0x0003350c bl 0x33e98                                        |     r0 = gst_caps_features_is_equal ();
    0x00033510 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00033512 beq 0x334a6                                       |         goto label_1;
                                                                 |     }
    0x00033514 mov r2, sb                                        |     r2 = sb;
    0x00033516 mov r1, r7                                        |     r1 = r7;
    0x00033518 add r0, sp, 0x24                                  |     r0 += var_24h;
    0x0003351a bl 0x30b38                                        |     r0 = fcn_00030b38 (r0, r1, r2);
    0x0003351e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00033520 beq 0x334a6                                       |         goto label_1;
                                                                 |     }
    0x00033522 ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x00033524 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x00033526 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00033528 beq 0x33624                                       |         goto label_15;
                                                                 |     }
    0x0003352a add r3, sp, 0x28                                  |     r3 += var_28h_2;
    0x0003352c ldr r7, [sp, 0x18]                                |     r7 = var_18h;
    0x0003352e mov sl, r3                                        |     sl = r3;
    0x00033530 str r5, [sp, 0x1c]                                |     var_1ch_2 = r5;
    0x00033532 b 0x33570                                         |     goto label_16;
                                                                 | label_2:
    0x00033534 ldr r2, [pc, 0x104]                               |     r2 = *(0x3363c);
    0x00033536 mov r0, r4                                        |     r0 = r4;
    0x00033538 ldr.w r2, [r8, r2]                                |     r2 = *((r8 + r2));
    0x0003353c ldr r1, [r2]                                      |     r1 = *(0x3363c);
    0x0003353e bl 0x33e98                                        |     r0 = gst_caps_features_is_equal ();
                                                                 |     if (r0 == 0) {
    0x00033542 cbz r0, 0x33586                                   |         goto label_17;
                                                                 |     }
    0x00033544 ldr r0, [sp, 0x28]                                |     r0 = var_28h_2;
    0x00033546 mov r3, r5                                        |     r3 = r5;
                                                                 |     do {
                                                                 | label_3:
    0x00033548 mov r1, r6                                        |         r1 = r6;
    0x0003354a str r3, [sp, 0x2c]                                |         var_2ch = r3;
    0x0003354c bl 0x5eee8                                        |         r0 = gst_structure_set_parent_refcount ();
                                                                 |         if (r0 != 0) {
    0x00033550 cbz r0, 0x3356a                                   |             
    0x00033552 ldr r0, [sp, 0x2c]                                |             r0 = var_2ch;
                                                                 |             if (r0 != 0) {
    0x00033554 cbz r0, 0x3355e                                   |                 
    0x00033556 mov r1, r6                                        |                 r1 = r6;
    0x00033558 bl 0x33ab8                                        |                 r0 = gst_caps_features_set_parent_refcount ();
                                                                 |                 if (r0 == 0) {
    0x0003355c cbz r0, 0x3356a                                   |                     goto label_18;
                                                                 |                 }
                                                                 |             }
    0x0003355e ldr r3, [sp, 4]                                   |             r3 = var_4h_2;
    0x00033560 movs r2, 1                                        |             r2 = 1;
    0x00033562 mov r1, sl                                        |             r1 = sl;
    0x00033564 ldr r0, [r3, 0x24]                                |             r0 = *((r3 + 0x24));
    0x00033566 blx 0x208f8                                       |             fcn_000208f8 ();
                                                                 |         }
                                                                 | label_18:
    0x0003356a ldr r7, [r7, 4]                                   |         r7 = *((r7 + 4));
    0x0003356c cmp r7, 0                                         |         
                                                                 |         if (r7 == 0) {
    0x0003356e beq 0x33622                                       |             goto label_19;
                                                                 |         }
                                                                 | label_16:
    0x00033570 ldr r0, [r7]                                      |         r0 = *(r7);
    0x00033572 mov r3, r4                                        |         r3 = r4;
    0x00033574 str r0, [sp, 0x28]                                |         var_28h_2 = r0;
    0x00033576 cmp r4, 0                                         |         
    0x00033578 beq 0x33548                                       |         
                                                                 |     } while (r4 == 0);
    0x0003357a mov r0, r4                                        |     r0 = r4;
    0x0003357c bl 0x33f80                                        |     r0 = gst_caps_features_is_any ();
    0x00033580 mov r5, r0                                        |     r5 = r0;
    0x00033582 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00033584 beq 0x33534                                       |         goto label_2;
                                                                 |     }
                                                                 | label_17:
    0x00033586 mov r0, r4                                        |     r0 = r4;
    0x00033588 bl 0x34224                                        |     r0 = gst_caps_features_copy ();
    0x0003358c mov r3, r0                                        |     r3 = r0;
    0x0003358e ldr r0, [sp, 0x28]                                |     r0 = var_28h_2;
    0x00033590 b 0x33548                                         |     goto label_3;
                                                                 | label_7:
    0x00033592 ldr r1, [pc, 0xb8]                                |     
    0x00033594 mov sl, r0                                        |     sl = r0;
    0x00033596 ldr r3, [pc, 0xac]                                |     r3 = *(0x33646);
    0x00033598 ldr r2, [pc, 0xb4]                                |     
    0x0003359a add r1, pc                                        |     
    0x0003359c ldr.w r0, [r8, r3]                                |     r0 = *((r8 + r3));
    0x000335a0 add.w r1, r1, 0x398                               |     r1 = 0x66f84;
    0x000335a4 add r2, pc                                        |     r2 = 0x66bf8;
    0x000335a6 blx 0x1fdd0                                       |     fcn_0001fdd0 ();
    0x000335aa mov r0, sl                                        |     r0 = sl;
    0x000335ac add sp, 0x34                                      |     
    0x000335ae pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_8:
    0x000335b2 ldr r1, [pc, 0xa0]                                |     
    0x000335b4 mov sl, sb                                        |     sl = sb;
    0x000335b6 ldr r3, [pc, 0x8c]                                |     r3 = *(0x33646);
    0x000335b8 ldr r2, [pc, 0x9c]                                |     
    0x000335ba add r1, pc                                        |     
    0x000335bc ldr.w r0, [r8, r3]                                |     r0 = *((r8 + r3));
    0x000335c0 add.w r1, r1, 0x398                               |     r1 = 0x66fac;
    0x000335c2 strb r6, [r4, 5]                                  |     *((r4 + 5)) = r6;
    0x000335c4 add r2, pc                                        |     r2 = 0x66c20;
    0x000335c6 blx 0x1fdd0                                       |     fcn_0001fdd0 ();
    0x000335ca mov r0, sl                                        |     r0 = sl;
    0x000335cc add sp, 0x34                                      |     
    0x000335ce pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_11:
    0x000335d2 ldr r1, [pc, 0x88]                                |     
    0x000335d4 mov sl, r4                                        |     sl = r4;
    0x000335d6 ldr r3, [pc, 0x6c]                                |     r3 = *(0x33646);
    0x000335d8 ldr r2, [pc, 0x84]                                |     
    0x000335da add r1, pc                                        |     
    0x000335dc ldr.w r0, [r8, r3]                                |     r0 = *((r8 + r3));
    0x000335de movs r3, r0                                       |     r3 = r0;
    0x000335e0 add.w r1, r1, 0x398                               |     r1 = 0x66fd4;
    0x000335e2 strb r6, [r4, 5]                                  |     *((r4 + 5)) = r6;
    0x000335e4 add r2, pc                                        |     r2 = 0x66c48;
    0x000335e6 blx 0x1fdd0                                       |     fcn_0001fdd0 ();
    0x000335ea b 0x33482                                         |     goto label_4;
                                                                 | label_10:
    0x000335ec add sp, 0x34                                      |     
    0x000335ee pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}        |     
    0x000335f2 b.w 0x32e10                                       |     void (*0x32e10)() ();
                                                                 | label_12:
    0x000335f6 ldr r3, [sp, 4]                                   |     r3 = var_4h_2;
    0x000335f8 ldr r3, [r3, 0x24]                                |     r3 = *((r3 + 0x24));
                                                                 |     if (r3 == 0) {
    0x000335fa cbz r3, 0x3362c                                   |         goto label_20;
                                                                 |     }
    0x000335fc ldr r3, [r3, 4]                                   |     r3 = *((r3 + 4));
                                                                 |     if (r3 == 0) {
    0x000335fe cbz r3, 0x3362c                                   |         goto label_20;
                                                                 |     }
    0x00033600 ldr r3, [sp, 0xc]                                 |     r3 = var_0h;
    0x00033602 ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x00033604 adds r3, 1                                        |     r3++;
    0x00033606 cmp r2, r3                                        |     
    0x00033608 str r3, [sp, 0xc]                                 |     var_0h = r3;
                                                                 |     if (r2 != r3) {
    0x0003360a bne.w 0x333f6                                     |         goto label_5;
                                                                 |     }
    0x0003360e ldrd r0, sl, [sp]                                 |     __asm ("ldrd r0, sl, [sp]");
    0x00033612 bl 0x33164                                        |     gst_caps_unref ();
    0x00033616 mov r0, sl                                        |     r0 = sl;
    0x00033618 add sp, 0x34                                      |     
    0x0003361a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}        |     
    0x0003361e b.w 0x3253c                                       |     void (*0x3253c)() ();
                                                                 | label_19:
    0x00033622 ldr r5, [sp, 0x1c]                                |     r5 = var_1ch_2;
                                                                 | label_15:
    0x00033624 ldr r0, [sp, 0x18]                                |     r0 = var_18h;
    0x00033626 blx 0x1f330                                       |     fcn_0001f330 ();
    0x0003362a b 0x334f0                                         |     goto label_6;
                                                                 | label_20:
    0x0003362c ldrd r0, sl, [sp]                                 |     __asm ("ldrd r0, sl, [sp]");
    0x00033630 bl 0x33164                                        |     gst_caps_unref ();
    0x00033634 b 0x33482                                         |     goto label_4;
                                                                 | }


r2dec has crashed (info: /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.1803.0 @ 0x32858).
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.

[*] Function system used 3 times libgstreamer-1.0.so.0.1803.0