[*] Binary protection state of libgstreamer-1.0.so.0.2202.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.2202.0

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.2202.0 @ 0x3541c */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.0003541c ()              | void fcn_0003541c () {
    0x0003541c invalid                   |     
    0x00035420 ldr r4, [pc, 0x2c]        |     
    0x00035422 mov r5, r1                |     r5 = r1;
    0x00035424 ldr r3, [pc, 0x2c]        |     r3 = *(0x35454);
    0x00035426 add r4, pc                |     
    0x00035428 ldr r6, [r4, r3]          |     r6 = *(0x6a87a);
    0x0003542a ldr r0, [r6]              |     r0 = *(0x6a87a);
    0x0003542c bl 0x353a4                |     gst_caps_features_set_parent_refcount ();
    0x00035430 ldr r0, [r6]              |     r0 = *(0x6a87a);
    0x00035432 bl 0x352a8                |     gst_caps_features_free ();
    0x00035436 ldr r3, [pc, 0x20]        |     r3 = *(0x3545a);
    0x00035438 mov r1, r5                |     r1 = r5;
    0x0003543a str r5, [r6]              |     *(r6) = r5;
    0x0003543c ldr r4, [r4, r3]          |     r4 = *(0x6a87a);
    0x0003543e ldr r0, [r4]              |     r0 = *(0x6a87a);
    0x00035440 bl 0x353a4                |     gst_caps_features_set_parent_refcount ();
    0x00035442 vtbl.8 d6, {d0}, d16      |     __asm ("vtbl.8 d6, {d0}, d16");
    0x00035446 bl 0x352a8                |     gst_caps_features_free ();
    0x0003544a str r5, [r4]              |     *(r4) = r5;
    0x0003544c pop {r4, r5, r6, pc}      |     
                                         | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.2202.0 @ 0x33c78 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) sym.gst_caps_can_intersect ()                            | void gst_caps_can_intersect (int16_t arg_24h, uint32_t arg1, int16_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;
    0x00033c78 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x00033c7c sub sp, 0x1c                                          |     
    0x00033c7e ldr.w sb, [pc, 0x174]                                 |     
    0x00033c82 add sb, pc                                            |     sb = 0x67a7c;
                                                                     |     if (r0 != 0) {
    0x00033c84 cbz r0, 0x33c98                                       |         
    0x00033c86 ldr r3, [pc, 0x170]                                   |         
    0x00033c88 mov sl, r1                                            |         sl = r1;
    0x00033c8a ldr r1, [r0]                                          |         r1 = *(r0);
    0x00033c8c mov fp, r0                                            |         
    0x00033c8e ldr.w r3, [sb, r3]                                    |         r3 = *((sb + r3));
    0x00033c90 adds r0, 3                                            |         r0 += 3;
    0x00033c92 ldr r3, [r3]                                          |         r3 = *(0x33dfa);
    0x00033c94 cmp r1, r3                                            |         
                                                                     |         if (r1 == r3) {
    0x00033c96 beq 0x33cb4                                           |             goto label_5;
                                                                     |         }
                                                                     |     }
    0x00033c98 ldr r1, [pc, 0x160]                                   |     
    0x00033c9a ldr r2, [pc, 0x164]                                   |     
    0x00033c9c ldr r0, [pc, 0x164]                                   |     
    0x00033c9e add r1, pc                                            |     
    0x00033ca0 add r2, pc                                            |     r2 = 0x67aa6;
    0x00033ca2 add.w r1, r1, 0x2a0                                   |     r1 = 0x67d3e;
    0x00033ca4 strb r0, [r5, 4]                                      |     *((r5 + 4)) = r0;
    0x00033ca6 add r0, pc                                            |     r0 = 0x67aae;
    0x00033ca8 blx 0x20b70                                           |     fcn_00020b70 ();
                                                                     |     do {
                                                                     | label_0:
    0x00033cac movs r0, 0                                            |         r0 = 0;
    0x00033cae add sp, 0x1c                                          |         
    0x00033cb0 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
    0x00033cb2 ldrh r0, [r6, 0x3e]                                   |         r0 = *((r6 + 0x3e));
                                                                     | label_5:
    0x00033cb4 cmp.w sl, 0                                           |         
                                                                     |         if (sl != 0) {
    0x00033cb8 beq 0x33cc2                                           |             
    0x00033cba ldr.w r3, [sl]                                        |             r3 = *(sl);
    0x00033cbe cmp r1, r3                                            |             
                                                                     |             if (r1 == r3) {
    0x00033cc0 beq 0x33cd8                                           |                 goto label_6;
                                                                     |             }
                                                                     |         }
    0x00033cc2 ldr r1, [pc, 0x144]                                   |         
    0x00033cc4 ldr r2, [pc, 0x144]                                   |         
    0x00033cc6 ldr r0, [pc, 0x148]                                   |         
    0x00033cc8 add r1, pc                                            |         
    0x00033cca add r2, pc                                            |         r2 = 0x67ada;
    0x00033ccc add.w r1, r1, 0x2a0                                   |         r1 = 0x67d76;
    0x00033cd0 add r0, pc                                            |         r0 = 0x67ae6;
    0x00033cd2 blx 0x20b70                                           |         fcn_00020b70 ();
    0x00033cd6 b 0x33cac                                             |         
                                                                     |     } while (1);
                                                                     | label_6:
    0x00033cd8 cmp r0, sl                                            |     
                                                                     |     if (r0 == sl) {
    0x00033cda beq 0x33d0c                                           |         goto label_7;
                                                                     |     }
    0x00033cdc ldr r3, [r0, 0xc]                                     |     r3 = *((r0 + 0xc));
    0x00033cde ands r1, r3, 0x10                                     |     r1 = r3 & 0x10;
                                                                     |     if (r1 != r3) {
    0x00033ce2 bne 0x33cf0                                           |         goto label_8;
                                                                     |     }
    0x00033ce4 ldr r3, [r0, 0x24]                                    |     r3 = *((r0 + 0x24));
    0x00033ce6 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x00033ce8 beq 0x33cac                                           |         goto label_0;
                                                                     |     }
    0x00033cea ldr r3, [r3, 4]                                       |     r3 = *((r3 + 4));
    0x00033cec cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x00033cee beq 0x33cac                                           |         goto label_0;
                                                                     |     }
                                                                     | label_8:
    0x00033cf0 ldr.w r3, [sl, 0xc]                                   |     r3 = *((sl + 0xc));
    0x00033cf4 lsls r3, r3, 0x1b                                     |     r3 <<= 0x1b;
                                                                     |     if (r3 < r3) {
    0x00033cf6 bmi 0x33d0c                                           |         goto label_7;
                                                                     |     }
    0x00033cf8 ldr.w r3, [sl, 0x24]                                  |     r3 = *((sl + 0x24));
    0x00033cfc cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x00033cfe beq 0x33cac                                           |         goto label_0;
                                                                     |     }
    0x00033d00 ldr.w r8, [r3, 4]                                     |     r8 = *((r3 + 4));
    0x00033d04 cmp.w r8, 0                                           |     
                                                                     |     if (r8 == 0) {
    0x00033d08 beq 0x33cac                                           |         goto label_0;
                                                                     |     }
                                                                     |     if (r1 != 0) {
    0x00033d0a cbz r1, 0x33d14                                       |         
                                                                     | label_7:
    0x00033d0c movs r0, 1                                            |         r0 = 1;
                                                                     | label_3:
    0x00033d0e add sp, 0x1c                                          |         
    0x00033d10 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     |     }
    0x00033d14 ldr.w r3, [fp, 0x24]                                  |     r3 = *(arg_24h);
    0x00033d18 ldr r0, [r3, 4]                                       |     r0 = *((r3 + 4));
    0x00033d1a add.w r3, r8, r0                                      |     r3 = r8 + r0;
    0x00033d1c lsls r0, r0, 0xc                                      |     r0 <<= 0xc;
    0x00033d1e cmp r3, 1                                             |     
    0x00033d20 add.w r2, r3, -1                                      |     r2 = r3 + -1;
                                                                     |     if (r3 == 1) {
    0x00033d24 beq 0x33cac                                           |         goto label_0;
                                                                     |     }
    0x00033d26 strd r2, r8, [sp, 8]                                  |     __asm ("strd r2, r8, [var_ch]");
    0x00033d2a mov r8, r1                                            |     r8 = r1;
    0x00033d2c subs r3, r0, 1                                        |     r3 = r0 - 1;
    0x00033d2e str r1, [sp, 0x14]                                    |     var_14h = r1;
    0x00033d30 str r3, [sp, 0x10]                                    |     var_10h = r3;
                                                                     | label_1:
    0x00033d32 ldr r0, [sp, 0x10]                                    |     r0 = var_10h;
    0x00033d34 mov r7, r8                                            |     r7 = r8;
    0x00033d36 ldr r2, [sp, 0x14]                                    |     r2 = var_14h;
    0x00033d38 mov r3, r1                                            |     r3 = r1;
    0x00033d3a cmp r0, r8                                            |     
    0x00033d3c sbcs r2, r1                                           |     __asm ("sbcs r2, r1");
    0x00033d3e itt lo                                                |     
                                                                     |     if (r0 >= r8) {
    0x00033d40 movlo r7, r0                                          |         r7 = r0;
                                                                     |     }
                                                                     |     if (r0 >= r8) {
    0x00033d42 movlo r3, 0                                           |         r3 = 0;
                                                                     |     }
    0x00033d44 cmp r7, r8                                            |     
    0x00033d46 mov r4, r7                                            |     r4 = r7;
    0x00033d48 sbcs r3, r1                                           |     __asm ("sbcs r3, r1");
                                                                     |     if (r7 >= r8) {
    0x00033d4a bhs 0x33df0                                           |         goto label_9;
                                                                     |     }
    0x00033d4c ldr r3, [sp, 0xc]                                     |     r3 = var_ch;
    0x00033d4e sub.w r5, r8, r7                                      |     r5 = r8 - r7;
    0x00033d52 cmp r3, r5                                            |     
                                                                     |     if (r3 < r5) {
    0x00033d54 bls 0x33dcc                                           |         goto label_10;
                                                                     |     }
                                                                     | label_4:
    0x00033d56 ldr r3, [sp, 0xc]                                     |     r3 = var_ch;
    0x00033d58 str.w r8, [sp]                                        |     __asm ("str.w r8, [sp]");
    0x00033d5c mov r8, r4                                            |     r8 = r4;
    0x00033d5e str r1, [sp, 4]                                       |     var_4h = r1;
    0x00033d60 subs r7, r7, r3                                       |     r7 -= r3;
    0x00033d62 add r7, r5                                            |     r7 += r5;
    0x00033d64 lsls r5, r5, 3                                        |     r5 <<= 3;
                                                                     |     do {
    0x00033d66 ldr.w r1, [fp, 0x24]                                  |         r1 = *(arg_24h);
    0x00033d6a ldr r4, [pc, 0xa8]                                    |         r4 = *(0x33e16);
    0x00033d6c ldr r1, [r1]                                          |         r1 = *(r1);
    0x00033d6e ldr.w r6, [r1, r8, lsl 3]                             |         offset_0 = r8 << 3;
                                                                     |         r6 = *((r1 + offset_0));
    0x00033d70 str r0, [r7]                                          |         *(r7) = r0;
    0x00033d72 dmb ish                                               |         __asm ("dmb ish");
    0x00033d76 add.w r1, r1, r8, lsl 3                               |         r1 += (r8 << 3);
    0x00033d7a ldr r1, [r1, 4]                                       |         r1 = *((r1 + 4));
    0x00033d7c dmb ish                                               |         __asm ("dmb ish");
    0x00033d80 mov r0, r1                                            |         r0 = r1;
                                                                     |         if (r1 == 0) {
    0x00033d82 cbnz r1, 0x33d8a                                      |             
    0x00033d84 ldr.w r1, [sb, r4]                                    |             r1 = *((sb + r4));
    0x00033d88 ldr r0, [r1]                                          |             r0 = *(r1);
                                                                     |         }
    0x00033d8a ldr.w r1, [sl, 0x24]                                  |         r1 = *((sl + 0x24));
    0x00033d8e ldr.w ip, [pc, 0x84]                                  |         ip = *(0x33e16);
    0x00033d92 ldr r1, [r1]                                          |         r1 = *(r1);
    0x00033d94 add.w lr, r1, r5                                      |         lr = r1 + r5;
    0x00033d98 ldr r4, [r1, r5]                                      |         r4 = *((r1 + r5));
    0x00033d9a dmb ish                                               |         __asm ("dmb ish");
    0x00033d9e ldr.w r1, [lr, 4]                                     |         r1 = *((lr + 4));
    0x00033da0 asrs r4, r0, 0x20                                     |         r4 = r0 >> 0x20;
    0x00033da2 dmb ish                                               |         __asm ("dmb ish");
    0x00033da6 mov r3, r1                                            |         r3 = r1;
                                                                     |         if (r1 == 0) {
    0x00033da8 cbnz r1, 0x33db0                                      |             
    0x00033daa ldr.w r1, [sb, ip]                                    |             r1 = *((sb + ip));
    0x00033dae ldr r3, [r1]                                          |             r3 = *(r1);
                                                                     |         }
    0x00033db0 mov r1, r3                                            |         r1 = r3;
    0x00033db2 adds r5, 8                                            |         r5 += 8;
    0x00033db4 bl 0x35724                                            |         r0 = gst_caps_features_is_equal ();
                                                                     |         if (r0 != 0) {
    0x00033db8 cbnz r0, 0x33de0                                      |             goto label_11;
                                                                     |         }
                                                                     | label_2:
    0x00033dba cmp.w r8, 0                                           |         
                                                                     |         if (r8 == 0) {
    0x00033dbe beq 0x33dc8                                           |             goto label_12;
                                                                     |         }
    0x00033dc0 add.w r8, r8, -1                                      |         r8 += -1;
    0x00033dc4 cmp r7, r8                                            |         
    0x00033dc6 bne 0x33d66                                           |         
                                                                     |     } while (r7 != r8);
                                                                     | label_12:
    0x00033dc8 ldrd r8, r1, [sp]                                     |     __asm ("ldrd r8, r1, [sp]");
                                                                     | label_10:
    0x00033dcc ldr r3, [sp, 8]                                       |     r3 = var_8h;
    0x00033dce adds.w r8, r8, 1                                      |     r8++;
    0x00033dd2 adc r1, r1, 0                                         |     __asm ("adc r1, r1, 0");
    0x00033dd6 cmp r8, r3                                            |     
    0x00033dd8 sbcs r3, r1, 0                                        |     __asm ("sbcs r3, r1, 0");
                                                                     |     if (r8 <= r3) {
    0x00033ddc blo 0x33d32                                           |         goto label_1;
                                                                     |     }
    0x00033dde b 0x33cac                                             |     goto label_0;
                                                                     | label_11:
    0x00033de0 mov r1, r4                                            |     r1 = r4;
    0x00033de2 mov r0, r6                                            |     r0 = r6;
    0x00033de4 bl 0x64464                                            |     r0 = gst_structure_can_intersect ();
    0x00033de8 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x00033dea beq 0x33dba                                           |         goto label_2;
                                                                     |     }
    0x00033dec movs r0, 1                                            |     r0 = 1;
    0x00033dee b 0x33d0e                                             |     goto label_3;
                                                                     | label_9:
    0x00033df0 movs r5, 0                                            |     r5 = 0;
    0x00033df2 b 0x33d56                                             |     goto label_4;
                                                                     | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.2202.0 @ 0x3316c */
                                             | #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;
    0x0003316c push {r4, r5, r6, r7, lr}     |     
    0x0003316e sub sp, 0xc                   |     
    0x00033170 ldr r7, [pc, 0xb4]            |     
    0x00033172 add r7, pc                    |     r7 = 0x6639e;
                                             |     if (r0 != 0) {
    0x00033174 cbz r0, 0x33184               |         
    0x00033176 ldr r3, [pc, 0xb4]            |         
    0x00033178 mov r4, r0                    |         r4 = r0;
    0x0003317a ldr r2, [r0]                  |         r2 = *(r0);
    0x0003317c ldr r3, [r7, r3]              |         r3 = *((r7 + r3));
    0x0003317e ldr r3, [r3]                  |         r3 = *(0x3322e);
    0x00033180 cmp r2, r3                    |         
                                             |         if (r2 == r3) {
    0x00033182 beq 0x331a0                   |             goto label_2;
                                             |         }
                                             |     }
    0x00033184 ldr r1, [pc, 0xa8]            |     
    0x00033186 movs r5, 0                    |     r5 = 0;
    0x00033188 ldr r2, [pc, 0xa8]            |     
    0x0003318a ldr r0, [pc, 0xac]            |     
    0x0003318c add r1, pc                    |     
    0x0003318e add r2, pc                    |     r2 = 0x663c6;
    0x00033190 add.w r1, r1, 0x13c           |     r1 = 0x664fc;
    0x00033194 add r0, pc                    |     r0 = 0x663d2;
    0x00033196 blx 0x20b70                   |     fcn_00020b70 ();
                                             |     do {
                                             | label_0:
    0x0003319a mov r0, r5                    |         r0 = r5;
    0x0003319c add sp, 0xc                   |         
    0x0003319e pop {r4, r5, r6, r7, pc}      |         
                                             | label_2:
    0x000331a0 mov r6, r1                    |         r6 = r1;
    0x000331a2 bl 0x326e0                    |         gst_caps_new_empty ();
    0x000331a6 ldr r3, [r4, 0xc]             |         r3 = *((r4 + 0xc));
    0x000331a8 mov r5, r0                    |         r5 = r0;
    0x000331aa str r3, [r0, 0xc]             |         *((r0 + 0xc)) = r3;
    0x000331ac ldr r3, [r4, 0x24]            |         r3 = *((r4 + 0x24));
    0x000331ae ldr r2, [r3, 4]               |         r2 = *((r3 + 4));
    0x000331b0 cmp r2, r6                    |         
    0x000331b2 bls 0x3319a                   |         
                                             |     } while (r2 < r6);
    0x000331b4 ldr r3, [r3]                  |     r3 = *(r3);
    0x000331b6 ldr.w r0, [r3, r6, lsl 3]     |     offset_0 = r6 << 3;
                                             |     r0 = *((r3 + offset_0));
    0x000331ba dmb ish                       |     __asm ("dmb ish");
    0x000331be add.w r2, r3, r6, lsl 3       |     r2 = r3 + (r6 << 3);
    0x000331c2 ldr r4, [r2, 4]               |     r4 = *((r2 + 4));
    0x000331c4 dmb ish                       |     __asm ("dmb ish");
    0x000331c8 bl 0x6169c                    |     gst_structure_copy ();
    0x000331cc str r0, [sp]                  |     *(sp) = r0;
                                             |     if (r4 != 0) {
    0x000331ce cbnz r4, 0x331fc              |         goto label_3;
                                             |     }
                                             | label_1:
    0x000331d0 adds r6, r5, 4                |     r6 = r5 + 4;
    0x000331d2 str r4, [sp, 4]               |     var_4h = r4;
    0x000331d4 mov r1, r6                    |     r1 = r6;
    0x000331d6 bl 0x61624                    |     r0 = gst_structure_set_parent_refcount ();
    0x000331da cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x000331dc beq 0x3319a                   |         goto label_0;
                                             |     }
    0x000331de ldr r0, [sp, 4]               |     r0 = var_4h;
                                             |     if (r0 == 0) {
    0x000331e0 cbz r0, 0x331ec               |         goto label_4;
                                             |     }
    0x000331e2 mov r1, r6                    |     r1 = r6;
    0x000331e4 bl 0x353a4                    |     r0 = gst_caps_features_set_parent_refcount ();
    0x000331e8 cmp r0, 0                     |     
                                             |     if (r0 == 0) {
    0x000331ea beq 0x3319a                   |         goto label_0;
                                             |     }
                                             | label_4:
    0x000331ec ldr r0, [r5, 0x24]            |     r0 = *((r5 + 0x24));
    0x000331ee movs r2, 1                    |     r2 = 1;
    0x000331f0 mov r1, sp                    |     r1 = sp;
    0x000331f2 blx 0x216ec                   |     fcn_000216ec ();
    0x000331f6 mov r0, r5                    |     r0 = r5;
    0x000331f8 add sp, 0xc                   |     
    0x000331fa pop {r4, r5, r6, r7, pc}      |     
                                             | label_3:
    0x000331fc mov r0, r4                    |     r0 = r4;
    0x000331fe bl 0x35804                    |     r0 = gst_caps_features_is_any ();
    0x00033202 mov r6, r0                    |     r6 = r0;
                                             |     if (r0 == 0) {
    0x00033204 cbnz r0, 0x3321a              |         
    0x00033206 ldr r3, [pc, 0x34]            |         r3 = *(0x3323e);
    0x00033208 mov r0, r4                    |         r0 = r4;
    0x0003320a ldr r3, [r7, r3]              |         r3 = *((r7 + r3));
    0x0003320c ldr r1, [r3]                  |         r1 = *(0x3323e);
    0x0003320e bl 0x35724                    |         r0 = gst_caps_features_is_equal ();
                                             |         if (r0 == 0) {
    0x00033212 cbz r0, 0x3321a               |             goto label_5;
                                             |         }
    0x00033214 ldr r0, [sp]                  |         r0 = *(sp);
    0x00033216 mov r4, r6                    |         r4 = r6;
    0x00033218 b 0x331d0                     |         goto label_1;
                                             |     }
                                             | label_5:
    0x0003321a mov r0, r4                    |     r0 = r4;
    0x0003321c bl 0x35aa0                    |     r0 = gst_caps_features_copy ();
    0x00033220 mov r4, r0                    |     r4 = r0;
    0x00033222 ldr r0, [sp]                  |     r0 = *(sp);
    0x00033224 b 0x331d0                     |     goto label_1;
                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.2202.0 @ 0x344a8 */
                                                                 | #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;
    0x000344a8 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x000344ac sub sp, 0xc                                       |     
    0x000344ae ldr.w sl, [pc, 0x134]                             |     
    0x000344b2 add sl, pc                                        |     sl = 0x68a9c;
                                                                 |     if (r0 != 0) {
    0x000344b4 cbz r0, 0x344c8                                   |         
    0x000344b6 ldr r3, [pc, 0x130]                               |         
    0x000344b8 mov sb, r2                                        |         sb = r2;
    0x000344ba ldr r2, [r0]                                      |         r2 = *(r0);
    0x000344bc mov r6, r0                                        |         r6 = r0;
    0x000344be ldr.w r3, [sl, r3]                                |         r3 = *((sl + r3));
    0x000344c2 ldr r3, [r3]                                      |         r3 = *(0x345ea);
    0x000344c4 cmp r2, r3                                        |         
                                                                 |         if (r2 == r3) {
    0x000344c6 beq 0x344e2                                       |             goto label_3;
                                                                 |         }
                                                                 |     }
    0x000344c8 ldr r1, [pc, 0x120]                               |     
    0x000344ca ldr r2, [pc, 0x124]                               |     
    0x000344cc ldr r0, [pc, 0x124]                               |     
    0x000344ce add r1, pc                                        |     
    0x000344d0 add r2, pc                                        |     r2 = 0x68ac6;
    0x000344d2 add.w r1, r1, 0x33c                               |     r1 = 0x68dfa;
    0x000344d6 add r0, pc                                        |     r0 = 0x68ace;
    0x000344d8 add sp, 0xc                                       |     
    0x000344da pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}        |     
    0x000344de b.w 0x20b6c                                       |     void (*0x20b6c)() ();
                                                                 | label_3:
    0x000344e2 mov r7, r1                                        |     r7 = r1;
    0x000344e4 bl 0x4acc4                                        |     r0 = gst_mini_object_is_writable ();
    0x000344e8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000344ea beq 0x345ae                                       |         goto label_4;
                                                                 |     }
    0x000344ec cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x000344ee beq 0x345c8                                       |         goto label_5;
                                                                 |     }
    0x000344f0 ldr r3, [r6, 0x24]                                |     r3 = *((r6 + 0x24));
    0x000344f2 ldr.w r8, [r3, 4]                                 |     r8 = *((r3 + 4));
    0x000344f6 cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x000344fa beq 0x3457c                                       |         goto label_6;
                                                                 |     }
    0x000344fc movs r5, 0                                        |     r5 = 0;
    0x000344fe b 0x34514                                         |     
                                                                 |     while (r4 != 0) {
    0x00034500 mov r2, sb                                        |         r2 = sb;
    0x00034502 mov r1, fp                                        |         r1 = fp;
    0x00034504 mov r0, r4                                        |         r0 = r4;
    0x00034506 blx r7                                            |         r0 = uint32_t (*r7)(uint32_t, uint32_t, uint32_t) (r0, r1, r2);
    0x00034508 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0003450a beq 0x34582                                       |             goto label_7;
                                                                 |         }
                                                                 | label_0:
    0x0003450c adds r5, 1                                        |         r5++;
    0x0003450e cmp r8, r5                                        |         
                                                                 |         if (r8 < r5) {
    0x00034510 bls 0x3457c                                       |             goto label_6;
                                                                 |         }
                                                                 | label_1:
    0x00034512 ldr r3, [r6, 0x24]                                |         r3 = *((r6 + 0x24));
    0x00034514 ldr r3, [r3]                                      |         r3 = *(r3);
    0x00034516 dmb ish                                           |         __asm ("dmb ish");
    0x0003451a add.w r3, r3, r5, lsl 3                           |         r3 += (r5 << 3);
    0x0003451e ldr r4, [r3, 4]                                   |         r4 = *((r3 + 4));
    0x00034520 dmb ish                                           |         __asm ("dmb ish");
    0x00034524 ldr r3, [r6, 0x24]                                |         r3 = *((r6 + 0x24));
    0x00034526 ldr r3, [r3]                                      |         r3 = *(r3);
    0x00034528 ldr.w fp, [r3, r5, lsl 3]                         |         offset_0 = r5 << 3;
                                                                 |         fp = *((r3 + offset_0));
    0x0003452a add sp, 0xd4                                      |         
    0x0003452c cmp r4, 0                                         |         
    0x0003452e bne 0x34500                                       |         
                                                                 |     }
    0x00034530 ldr r3, [pc, 0xc4]                                |     r3 = *(0x345f8);
    0x00034532 ldr.w r3, [sl, r3]                                |     r3 = *((sl + r3));
    0x00034534 adds r0, 3                                        |     r0 += 3;
    0x00034536 ldr r0, [r3]                                      |     r0 = *(0x345f8);
    0x00034538 bl 0x35aa0                                        |     gst_caps_features_copy ();
    0x0003453c mov r1, r5                                        |     r1 = r5;
    0x0003453e mov r2, r0                                        |     r2 = r0;
    0x00034540 mov r4, r0                                        |     r4 = r0;
    0x00034542 mov r0, r6                                        |     r0 = r6;
    0x00034544 bl 0x32ff8                                        |     gst_caps_set_features ();
    0x00034548 mov r2, sb                                        |     r2 = sb;
    0x0003454a mov r1, fp                                        |     r1 = fp;
    0x0003454c mov r0, r4                                        |     r0 = r4;
    0x0003454e blx r7                                            |     uint32_t (*r7)(uint32_t, uint32_t, uint32_t) (r0, r1, r2);
    0x00034550 str r0, [sp, 4]                                   |     var_4h = r0;
    0x00034552 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00034554 bne 0x3450c                                       |         goto label_0;
                                                                 |     }
    0x00034556 mov r1, r5                                        |     r1 = r5;
    0x00034558 ldr r0, [r6, 0x24]                                |     r0 = *((r6 + 0x24));
    0x0003455a blx 0x2050c                                       |     fcn_0002050c ();
    0x0003455e ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x00034560 str r0, [r6, 0x24]                                |     *((r6 + 0x24)) = r0;
    0x00034562 mov r0, fp                                        |     r0 = fp;
    0x00034564 mov r1, r3                                        |     r1 = r3;
    0x00034566 bl 0x61624                                        |     gst_structure_set_parent_refcount ();
    0x0003456a mov r0, fp                                        |     r0 = fp;
    0x0003456c bl 0x60df4                                        |     gst_structure_free ();
                                                                 |     if (r4 != 0) {
    0x00034570 cbnz r4, 0x3459e                                  |         goto label_8;
                                                                 |     }
                                                                 | label_2:
    0x00034572 ldr r3, [r6, 0x24]                                |     r3 = *((r6 + 0x24));
    0x00034574 ldr.w r8, [r3, 4]                                 |     r8 = *((r3 + 4));
    0x00034578 cmp r8, r5                                        |     
                                                                 |     if (r8 > r5) {
    0x0003457a bhi 0x34512                                       |         goto label_1;
                                                                 |     }
                                                                 | label_6:
    0x0003457c add sp, 0xc                                       |     
    0x0003457e pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_7:
    0x00034582 mov r1, r5                                        |     r1 = r5;
    0x00034584 str r0, [sp, 4]                                   |     var_4h = r0;
    0x00034586 ldr r0, [r6, 0x24]                                |     r0 = *((r6 + 0x24));
    0x00034588 blx 0x2050c                                       |     fcn_0002050c ();
    0x0003458c ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x0003458e str r0, [r6, 0x24]                                |     *((r6 + 0x24)) = r0;
    0x00034590 mov r0, fp                                        |     r0 = fp;
    0x00034592 mov r1, r3                                        |     r1 = r3;
    0x00034594 bl 0x61624                                        |     gst_structure_set_parent_refcount ();
    0x00034598 mov r0, fp                                        |     r0 = fp;
    0x0003459a bl 0x60df4                                        |     gst_structure_free ();
                                                                 | label_8:
    0x0003459e movs r1, 0                                        |     r1 = 0;
    0x000345a0 mov r0, r4                                        |     r0 = r4;
    0x000345a2 bl 0x353a4                                        |     gst_caps_features_set_parent_refcount ();
    0x000345a6 mov r0, r4                                        |     r0 = r4;
    0x000345a8 bl 0x352a8                                        |     gst_caps_features_free ();
    0x000345ac b 0x34572                                         |     goto label_2;
                                                                 | label_4:
    0x000345ae ldr r1, [pc, 0x4c]                                |     
    0x000345b0 ldr r2, [pc, 0x4c]                                |     
    0x000345b2 ldr r0, [pc, 0x50]                                |     
    0x000345b4 add r1, pc                                        |     
    0x000345b6 add r2, pc                                        |     r2 = 0x68bba;
    0x000345b8 add.w r1, r1, 0x33c                               |     r1 = 0x68ef2;
    0x000345bc add r0, pc                                        |     r0 = 0x68bc6;
    0x000345be add sp, 0xc                                       |     
    0x000345c0 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}        |     
    0x000345c4 b.w 0x20b6c                                       |     void (*0x20b6c)() ();
                                                                 | label_5:
    0x000345c8 ldr r1, [pc, 0x3c]                                |     
    0x000345ca ldr r2, [pc, 0x40]                                |     
    0x000345cc ldr r0, [pc, 0x40]                                |     
    0x000345ce add r1, pc                                        |     
    0x000345d0 add r2, pc                                        |     r2 = 0x68be2;
    0x000345d2 add.w r1, r1, 0x33c                               |     r1 = 0x68f16;
    0x000345d6 add r0, pc                                        |     r0 = 0x68bea;
    0x000345d8 add sp, 0xc                                       |     
    0x000345da pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}        |     
    0x000345de b.w 0x20b6c                                       |     return void (*0x20b6c)() ();
                                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.2202.0 @ 0x32f1c */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.gst_caps_get_features ()         | void gst_caps_get_features (uint32_t arg1, uint32_t arg2) {
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00032f1c ldr r2, [pc, 0xb4]                |     
    0x00032f1e push {r4, r5, r6, lr}             |     
    0x00032f20 add r2, pc                        |     r2 = 0x65ef8;
                                                 |     if (r0 != 0) {
    0x00032f22 cbz r0, 0x32f32                   |         
    0x00032f24 ldr r3, [pc, 0xb0]                |         
    0x00032f26 mov r6, r0                        |         r6 = r0;
    0x00032f28 ldr r0, [r0]                      |         r0 = *(r0);
    0x00032f2a ldr r3, [r2, r3]                  |         r3 = *((r2 + r3));
    0x00032f2c ldr r3, [r3]                      |         r3 = *(0x32fd8);
    0x00032f2e cmp r0, r3                        |         
                                                 |         if (r0 == r3) {
    0x00032f30 beq 0x32f4a                       |             goto label_2;
                                                 |         }
                                                 |     }
    0x00032f32 ldr r1, [pc, 0xa8]                |     
    0x00032f34 ldr r2, [pc, 0xa8]                |     
    0x00032f36 ldr r0, [pc, 0xac]                |     
    0x00032f38 add r1, pc                        |     r1 = 0x65f1a;
    0x00032f3a add r2, pc                        |     r2 = 0x65f1e;
    0x00032f3c adds r1, 0xec                     |     r1 += 0xec;
    0x00032f3e add r0, pc                        |     r0 = 0x65f28;
    0x00032f40 blx 0x20b70                       |     fcn_00020b70 ();
                                                 | label_1:
    0x00032f44 movs r4, 0                        |     r4 = 0;
                                                 |     do {
                                                 | label_0:
    0x00032f46 mov r0, r4                        |         r0 = r4;
    0x00032f48 pop {r4, r5, r6, pc}              |         
                                                 | label_2:
    0x00032f4a ldr r3, [r6, 0x24]                |         r3 = *((r6 + 0x24));
    0x00032f4c ldr r0, [r3, 4]                   |         r0 = *((r3 + 4));
    0x00032f4e cmp r0, r1                        |         
                                                 |         if (r0 < r1) {
    0x00032f50 bls 0x32fbe                       |             goto label_3;
                                                 |         }
    0x00032f52 ldr r3, [r3]                      |         r3 = *(r3);
    0x00032f54 lsls r5, r1, 3                    |         r5 = r1 << 3;
    0x00032f56 dmb ish                           |         __asm ("dmb ish");
    0x00032f5a add r3, r5                        |         r3 += r5;
    0x00032f5c ldr r4, [r3, 4]                   |         r4 = *((r3 + 4));
    0x00032f5e dmb ish                           |         __asm ("dmb ish");
    0x00032f62 cmp r4, 0                         |         
    0x00032f64 bne 0x32f46                       |         
                                                 |     } while (r4 != 0);
    0x00032f66 ldr r3, [pc, 0x80]                |     
    0x00032f68 ldr r3, [r2, r3]                  |     r3 = *((r2 + r3));
    0x00032f6a ldr r0, [r3]                      |     r0 = *(0x32fea);
    0x00032f6c bl 0x35aa0                        |     gst_caps_features_copy ();
    0x00032f70 adds r1, r6, 4                    |     r1 = r6 + 4;
    0x00032f72 mov r4, r0                        |     r4 = r0;
    0x00032f74 bl 0x353a4                        |     gst_caps_features_set_parent_refcount ();
    0x00032f78 ldr r3, [r6, 0x24]                |     r3 = *((r6 + 0x24));
    0x00032f7a ldr r3, [r3]                      |     r3 = *(0x32fea);
    0x00032f7c dmb ish                           |     __asm ("dmb ish");
    0x00032f80 add r3, r5                        |     r3 += r5;
    0x00032f82 adds r3, 4                        |     r3 += 4;
                                                 |     do {
    0x00032f84 ldrex r2, [r3]                    |         __asm ("ldrex r2, [r3]");
    0x00032f88 cmp r2, 0                         |         
                                                 |         if (r2 != 0) {
    0x00032f8a bne 0x32f94                       |             goto label_4;
                                                 |         }
    0x00032f8c strex r1, r4, [r3]                |         __asm ("strex r1, r4, [r3]");
    0x00032f90 cmp r1, 0                         |         
    0x00032f92 bne 0x32f84                       |         
                                                 |     } while (r1 != 0);
                                                 | label_4:
    0x00032f94 ite eq                            |     
                                                 |     if (r1 != 0) {
    0x00032f96 moveq r1, 1                       |         r1 = 1;
                                                 |     }
                                                 |     if (r1 == 0) {
    0x00032f98 movne r1, 0                       |         r1 = 0;
                                                 |     }
    0x00032f9a dmb ish                           |     __asm ("dmb ish");
                                                 |     if (r1 == 0) {
    0x00032f9e beq 0x32f46                       |         goto label_0;
                                                 |     }
    0x00032fa0 mov r0, r4                        |     r0 = r4;
    0x00032fa2 bl 0x353a4                        |     gst_caps_features_set_parent_refcount ();
    0x00032fa6 mov r0, r4                        |     r0 = r4;
    0x00032fa8 bl 0x352a8                        |     gst_caps_features_free ();
    0x00032fac ldr r3, [r6, 0x24]                |     r3 = *((r6 + 0x24));
    0x00032fae ldr r3, [r3]                      |     r3 = *(r3);
    0x00032fb0 dmb ish                           |     __asm ("dmb ish");
    0x00032fb4 add r3, r5                        |     r3 += r5;
    0x00032fb6 ldr r4, [r3, 4]                   |     r4 = *((r3 + 4));
    0x00032fb8 dmb ish                           |     __asm ("dmb ish");
    0x00032fbc b 0x32f46                         |     goto label_0;
                                                 | label_3:
    0x00032fbe ldr r1, [pc, 0x2c]                |     
    0x00032fc0 ldr r2, [pc, 0x2c]                |     
    0x00032fc2 ldr r0, [pc, 0x30]                |     
    0x00032fc4 add r1, pc                        |     r1 = 0x65fb6;
    0x00032fc6 add r2, pc                        |     r2 = 0x65fba;
    0x00032fc8 adds r1, 0xec                     |     r1 += 0xec;
    0x00032fca add r0, pc                        |     r0 = 0x65fc4;
    0x00032fcc blx 0x20b70                       |     fcn_00020b70 ();
    0x00032fd0 b 0x32f44                         |     goto label_1;
                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.2202.0 @ 0x3461c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.gst_caps_intersect_full ()                       | void gst_caps_intersect_full (int16_t arg_24h, int16_t arg1, int16_t arg2, int16_t arg3) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int32_t var_ch_2;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x0003461c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00034620 sub sp, 0x24                                      |     
    0x00034622 ldr.w sb, [pc, 0x35c]                             |     
    0x00034626 str r0, [sp, 4]                                   |     var_4h = r0;
    0x00034628 add sb, pc                                        |     sb = 0x68fae;
                                                                 |     if (r0 != 0) {
    0x0003462a cbz r0, 0x3463e                                   |         
    0x0003462c mov r3, r2                                        |         r3 = r2;
    0x0003462e ldr r2, [pc, 0x354]                               |         r2 = *(0x34986);
    0x00034630 mov r8, r1                                        |         r8 = r1;
    0x00034632 ldr.w r2, [sb, r2]                                |         r2 = *((sb + r2));
    0x00034636 ldr r1, [r2]                                      |         r1 = *(0x34986);
    0x00034638 ldr r2, [r0]                                      |         r2 = *(r0);
    0x0003463a cmp r2, r1                                        |         
                                                                 |         if (r2 == r1) {
    0x0003463c beq 0x3465c                                       |             goto label_10;
                                                                 |         }
                                                                 |     }
    0x0003463e ldr r1, [pc, 0x348]                               |     
    0x00034640 ldr r2, [pc, 0x348]                               |     
    0x00034642 ldr r0, [pc, 0x34c]                               |     
    0x00034644 add r1, pc                                        |     
    0x00034646 add r2, pc                                        |     r2 = 0x68fd6;
    0x00034648 add.w r1, r1, 0x360                               |     r1 = 0x69332;
    0x0003464c add r0, pc                                        |     r0 = 0x68fe2;
    0x0003464e blx 0x20b70                                       |     fcn_00020b70 ();
                                                                 |     do {
    0x00034652 movs r1, 0                                        |         r1 = 0;
                                                                 | label_0:
    0x00034654 mov r0, r1                                        |         r0 = r1;
    0x00034656 add sp, 0x24                                      |         
    0x00034658 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_10:
    0x0003465c cmp.w r8, 0                                       |         
                                                                 |         if (r8 != 0) {
    0x00034660 beq 0x3466a                                       |             
    0x00034662 ldr.w r1, [r8]                                    |             r1 = *(r8);
    0x00034666 cmp r2, r1                                        |             
                                                                 |             if (r2 == r1) {
    0x00034668 beq 0x34680                                       |                 goto label_11;
                                                                 |             }
                                                                 |         }
    0x0003466a ldr r1, [pc, 0x328]                               |         
    0x0003466c ldr r2, [pc, 0x328]                               |         
    0x0003466e ldr r0, [pc, 0x32c]                               |         
    0x00034670 add r1, pc                                        |         
    0x00034672 add r2, pc                                        |         r2 = 0x6900e;
    0x00034674 add.w r1, r1, 0x360                               |         r1 = 0x6936a;
    0x00034678 add r0, pc                                        |         r0 = 0x6901a;
    0x0003467a blx 0x20b70                                       |         fcn_00020b70 ();
    0x0003467e b 0x34652                                         |         
                                                                 |     } while (1);
                                                                 | label_11:
    0x00034680 ldr r2, [sp, 4]                                   |     r2 = var_4h;
    0x00034682 cmp r2, r8                                        |     
                                                                 |     if (r2 == r8) {
    0x00034684 beq.w 0x347b4                                     |         goto label_12;
                                                                 |     }
    0x00034688 ldr r2, [r2, 0xc]                                 |     r2 = *((r2 + 0xc));
    0x0003468a lsls r1, r2, 0x1b                                 |     r1 = r2 << 0x1b;
                                                                 |     if (r1 < r2) {
    0x0003468c bmi.w 0x347c0                                     |         goto label_13;
                                                                 |     }
    0x00034690 ldr r2, [sp, 4]                                   |     r2 = var_4h;
    0x00034692 ldr r2, [r2, 0x24]                                |     r2 = *((r2 + 0x24));
    0x00034694 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00034696 beq.w 0x347d2                                     |         goto label_14;
                                                                 |     }
    0x0003469a ldr r2, [r2, 4]                                   |     r2 = *((r2 + 4));
    0x0003469c cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0003469e beq.w 0x347d2                                     |         goto label_14;
                                                                 |     }
    0x000346a2 ldr.w r5, [r8, 0xc]                               |     r5 = *((r8 + 0xc));
    0x000346a6 lsls r2, r5, 0x1b                                 |     r2 = r5 << 0x1b;
                                                                 |     if (r2 < r5) {
    0x000346a8 bmi.w 0x347b4                                     |         goto label_12;
                                                                 |     }
    0x000346ac ldr.w r2, [r8, 0x24]                              |     r2 = *((r8 + 0x24));
    0x000346b0 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x000346b2 beq.w 0x347d2                                     |         goto label_14;
                                                                 |     }
    0x000346b6 ldr r2, [r2, 4]                                   |     r2 = *((r2 + 4));
    0x000346b8 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x000346ba beq.w 0x347d2                                     |         goto label_14;
                                                                 |     }
    0x000346be ands r5, r5, 0x10                                 |     r5 &= 0x10;
                                                                 |     if (r5 != r5) {
    0x000346c2 bne 0x347b4                                       |         goto label_12;
                                                                 |     }
    0x000346c4 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000346c6 beq.w 0x34824                                     |         goto label_15;
                                                                 |     }
    0x000346ca cmp r3, 1                                         |     
                                                                 |     if (r3 != 1) {
    0x000346cc bne.w 0x34816                                     |         goto label_16;
                                                                 |     }
    0x000346d0 bl 0x326e0                                        |     gst_caps_new_empty ();
    0x000346d4 ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x000346d6 mov r1, r0                                        |     r1 = r0;
    0x000346d8 ldr.w r2, [r8, 0x24]                              |     r2 = *((r8 + 0x24));
    0x000346dc ldr r3, [r3, 0x24]                                |     r3 = *((r3 + 0x24));
    0x000346de ldr.w sl, [r2, 4]                                 |     sl = *((r2 + 4));
    0x000346e0 adr r0, 0x10                                      |     r0 = 0x10;
    0x000346e2 ldr r2, [r3, 4]                                   |     r2 = *((r3 + 4));
    0x000346e4 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x000346e6 beq 0x34654                                       |         goto label_0;
                                                                 |     }
    0x000346e8 mov r4, r5                                        |     r4 = r5;
    0x000346ea mov r7, r0                                        |     r7 = r0;
    0x000346ec mov r5, sl                                        |     r5 = sl;
    0x000346ee str r2, [sp, 0xc]                                 |     var_ch = r2;
                                                                 | label_3:
    0x000346f0 ldr r3, [r3]                                      |     r3 = *(r3);
    0x000346f2 ldr.w r2, [r3, r4, lsl 3]                         |     offset_0 = r4 << 3;
                                                                 |     r2 = *((r3 + offset_0));
    0x000346f6 add.w r3, r3, r4, lsl 3                           |     r3 += (r4 << 3);
    0x000346fa str r2, [sp]                                      |     *(sp) = r2;
    0x000346fc dmb ish                                           |     __asm ("dmb ish");
    0x00034700 ldr r1, [r3, 4]                                   |     r1 = *((r3 + 4));
    0x00034702 dmb ish                                           |     __asm ("dmb ish");
    0x00034706 mov sl, r1                                        |     sl = r1;
                                                                 |     if (r1 == 0) {
    0x00034708 cbnz r1, 0x34714                                  |         
    0x0003470a ldr r3, [pc, 0x294]                               |         r3 = *(0x349a2);
    0x0003470c ldr.w r3, [sb, r3]                                |         r3 = *((sb + r3));
    0x00034710 ldr.w sl, [r3]                                    |         sl = *(0x349a2);
                                                                 |     }
    0x00034714 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00034716 beq 0x347a4                                       |         goto label_17;
                                                                 |     }
    0x00034718 mov.w fp, 0                                       |     
    0x0003471c str r4, [sp, 8]                                   |     var_8h = r4;
    0x0003471e mov r4, fp                                        |     r4 = fp;
    0x00034720 b 0x34728                                         |     
                                                                 |     while (r0 == 0) {
                                                                 | label_1:
    0x00034722 adds r4, 1                                        |         r4++;
    0x00034724 cmp r5, r4                                        |         
                                                                 |         if (r5 == r4) {
    0x00034726 beq 0x347a2                                       |             goto label_18;
                                                                 |         }
                                                                 | label_2:
    0x00034728 ldr.w r2, [r8, 0x24]                              |         r2 = *((r8 + 0x24));
    0x0003472c ldr r2, [r2]                                      |         r2 = *(r2);
    0x0003472e ldr.w fp, [r2, r4, lsl 3]                         |         offset_1 = r4 << 3;
                                                                 |         fp = *((r2 + offset_1));
    0x00034730 add sp, 0xd0                                      |         
    0x00034732 dmb ish                                           |         __asm ("dmb ish");
    0x00034736 add.w r2, r2, r4, lsl 3                           |         r2 += (r4 << 3);
    0x0003473a ldr r6, [r2, 4]                                   |         r6 = *((r2 + 4));
    0x0003473c dmb ish                                           |         __asm ("dmb ish");
                                                                 |         if (r6 == 0) {
    0x00034740 cbnz r6, 0x3474a                                  |             
    0x00034742 ldr r2, [pc, 0x25c]                               |             r2 = *(0x349a2);
    0x00034744 ldr.w r2, [sb, r2]                                |             r2 = *((sb + r2));
    0x00034748 ldr r6, [r2]                                      |             r6 = *(0x349a2);
                                                                 |         }
    0x0003474a mov r1, r6                                        |         r1 = r6;
    0x0003474c mov r0, sl                                        |         r0 = sl;
    0x0003474e bl 0x35724                                        |         r0 = gst_caps_features_is_equal ();
    0x00034752 cmp r0, 0                                         |         
    0x00034754 beq 0x34722                                       |         
                                                                 |     }
    0x00034756 mov r1, fp                                        |     r1 = fp;
    0x00034758 ldr r0, [sp]                                      |     r0 = *(sp);
    0x0003475a bl 0x6432c                                        |     r0 = gst_structure_intersect ();
    0x0003475e mov fp, r0                                        |     
    0x00034760 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00034762 beq 0x34722                                       |         goto label_1;
                                                                 |     }
    0x00034764 mov r0, sl                                        |     r0 = sl;
    0x00034766 bl 0x35804                                        |     r0 = gst_caps_features_is_any ();
    0x0003476a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0003476c beq 0x347ec                                       |         goto label_19;
                                                                 |     }
    0x0003476e cmp r6, 0                                         |     
                                                                 |     if (r6 == 0) {
    0x00034770 beq 0x347e8                                       |         goto label_5;
                                                                 |     }
    0x00034772 mov r0, r6                                        |     r0 = r6;
    0x00034774 bl 0x35804                                        |     gst_caps_features_is_any ();
    0x00034776 str fp, [r6], -0x38                               |     *(r6) = fp;
                                                                 |     r6 += -0x38;
    0x0003477a ldr r2, [pc, 0x224]                               |     r2 = *(0x349a2);
    0x0003477c mov r0, r6                                        |     r0 = r6;
    0x0003477e ldr.w r2, [sb, r2]                                |     r2 = *((sb + r2));
    0x00034782 ldr r1, [r2]                                      |     r1 = *(0x349a2);
    0x00034784 bl 0x35724                                        |     r0 = gst_caps_features_is_equal ();
                                                                 |     if (r0 != 0) {
    0x00034788 cbnz r0, 0x347e8                                  |         goto label_5;
                                                                 |     }
    0x0003478a mov r0, r6                                        |     r0 = r6;
    0x0003478c bl 0x35aa0                                        |     r0 = gst_caps_features_copy ();
    0x00034790 mov r2, r0                                        |     r2 = r0;
                                                                 | label_4:
    0x00034792 mov r0, r7                                        |     r0 = r7;
    0x00034794 mov r1, fp                                        |     r1 = fp;
    0x00034796 adds r4, 1                                        |     r4++;
    0x00034798 bl 0x32ca0                                        |     gst_caps_merge_structure_full ();
    0x0003479c cmp r5, r4                                        |     
    0x0003479e mov r7, r0                                        |     r7 = r0;
                                                                 |     if (r5 != r4) {
    0x000347a0 bne 0x34728                                       |         goto label_2;
                                                                 |     }
                                                                 | label_18:
    0x000347a2 ldr r4, [sp, 8]                                   |     r4 = var_8h;
                                                                 | label_17:
    0x000347a4 ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
    0x000347a6 adds r4, 1                                        |     r4++;
    0x000347a8 cmp r3, r4                                        |     
                                                                 |     if (r3 == r4) {
    0x000347aa beq.w 0x3497a                                     |         goto label_20;
                                                                 |     }
    0x000347ae ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x000347b0 ldr r3, [r3, 0x24]                                |     r3 = *((r3 + 0x24));
    0x000347b2 b 0x346f0                                         |     goto label_3;
                                                                 | label_12:
    0x000347b4 ldr r0, [sp, 4]                                   |     r0 = var_4h;
                                                                 |     do {
    0x000347b6 add sp, 0x24                                      |         
    0x000347b8 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}        |         
    0x000347bc b.w 0x34618                                       |         void (*0x34618)() ();
                                                                 | label_13:
    0x000347c0 ldr.w r3, [r8, 0xc]                               |         r3 = *((r8 + 0xc));
    0x000347c4 lsls r3, r3, 0x1b                                 |         r3 <<= 0x1b;
                                                                 |         if (r3 < r3) {
    0x000347c6 bmi 0x347dc                                       |             goto label_21;
                                                                 |         }
    0x000347c8 ldr.w r3, [r8, 0x24]                              |         r3 = *((r8 + 0x24));
                                                                 |         if (r3 != 0) {
    0x000347cc cbz r3, 0x347d2                                   |             
    0x000347ce ldr r3, [r3, 4]                                   |             r3 = *((r3 + 4));
                                                                 |             if (r3 != 0) {
    0x000347d0 cbnz r3, 0x347dc                                  |                 goto label_21;
                                                                 |             }
                                                                 |         }
                                                                 | label_14:
    0x000347d2 ldr r3, [pc, 0x1d0]                               |         r3 = *(0x349a6);
    0x000347d4 ldr.w r3, [sb, r3]                                |         r3 = *((sb + r3));
    0x000347d8 ldr r0, [r3]                                      |         r0 = *(0x349a6);
    0x000347da b 0x347b6                                         |         
                                                                 |     } while (1);
                                                                 | label_21:
    0x000347dc mov r0, r8                                        |     r0 = r8;
    0x000347de add sp, 0x24                                      |     
    0x000347e0 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}        |     
    0x000347e4 b.w 0x34618                                       |     void (*0x34618)() ();
                                                                 |     do {
                                                                 | label_5:
    0x000347e8 movs r2, 0                                        |         r2 = 0;
    0x000347ea b 0x34792                                         |         goto label_4;
                                                                 | label_19:
    0x000347ec cmp.w sl, 0                                       |         
    0x000347f0 beq 0x347e8                                       |         
                                                                 |     } while (sl == 0);
    0x000347f2 mov r0, sl                                        |     r0 = sl;
    0x000347f4 bl 0x35804                                        |     r0 = gst_caps_features_is_any ();
                                                                 |     if (r0 != 0) {
    0x000347f8 cbnz r0, 0x3480c                                  |         goto label_22;
                                                                 |     }
    0x000347fa ldr r2, [pc, 0x1a4]                               |     r2 = *(0x349a2);
    0x000347fc mov r0, sl                                        |     r0 = sl;
    0x000347fe ldr.w r2, [sb, r2]                                |     r2 = *((sb + r2));
    0x00034802 ldr r1, [r2]                                      |     r1 = *(0x349a2);
    0x00034804 bl 0x35724                                        |     r0 = gst_caps_features_is_equal ();
    0x00034808 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0003480a bne 0x347e8                                       |         goto label_5;
                                                                 |     }
                                                                 | label_22:
    0x0003480c mov r0, sl                                        |     r0 = sl;
    0x0003480e bl 0x35aa0                                        |     r0 = gst_caps_features_copy ();
    0x00034812 mov r2, r0                                        |     r2 = r0;
    0x00034814 b 0x34792                                         |     goto label_4;
                                                                 | label_16:
    0x00034816 ldr r2, [pc, 0x190]                               |     
    0x00034818 movs r1, 0x10                                     |     r1 = 0x10;
    0x0003481a ldr r0, [pc, 0x190]                               |     
    0x0003481c add r2, pc                                        |     r2 = 0x691ca;
    0x0003481e add r0, pc                                        |     r0 = 0x691d0;
    0x00034820 blx 0x21724                                       |     fcn_00021724 ();
                                                                 | label_15:
    0x00034824 bl 0x326e0                                        |     gst_caps_new_empty ();
    0x00034828 ldr r6, [sp, 4]                                   |     r6 = var_4h;
    0x0003482a mov r1, r0                                        |     r1 = r0;
    0x0003482c ldr r3, [r6, 0x24]                                |     r3 = *((r6 + 0x24));
    0x0003482e ldr r2, [r3, 4]                                   |     r2 = *((r3 + 4));
    0x00034830 ldr.w r3, [r8, 0x24]                              |     r3 = *((r8 + 0x24));
    0x00034834 ldr r5, [r3, 4]                                   |     r5 = *((r3 + 4));
    0x00034836 adds r3, r2, r5                                   |     r3 = r2 + r5;
    0x00034838 cmp r3, 1                                         |     
    0x0003483a add.w ip, r3, -1                                  |     
                                                                 |     if (r3 == 1) {
    0x0003483e beq.w 0x34654                                     |         goto label_0;
                                                                 |     }
    0x00034842 movs r7, 0                                        |     r7 = 0;
    0x00034844 mov fp, r6                                        |     
    0x00034846 mov r4, r7                                        |     r4 = r7;
    0x00034848 mov r1, r7                                        |     r1 = r7;
    0x0003484a subs r3, r2, 1                                    |     r3 = r2 - 1;
    0x0003484c str r5, [sp, 0x18]                                |     var_18h = r5;
    0x0003484e str r3, [sp, 0x14]                                |     var_14h = r3;
    0x00034850 str r0, [sp, 8]                                   |     var_8h = r0;
    0x00034852 str.w ip, [sp, 0x1c]                              |     __asm ("str.w ip, [var_1ch]");
                                                                 | label_6:
    0x00034856 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x00034858 movs r0, 0                                        |     r0 = 0;
    0x0003485a cmp r1, r3                                        |     
    0x0003485c mov r2, r3                                        |     r2 = r3;
    0x0003485e sbcs r3, r4, 0                                    |     __asm ("sbcs r3, r4, 0");
    0x00034862 ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x00034864 itt lo                                            |     
                                                                 |     if (r1 >= r3) {
    0x00034866 movlo r2, r1                                      |         r2 = r1;
                                                                 |     }
                                                                 |     if (r1 >= r3) {
    0x00034868 movlo r0, r4                                      |         r0 = r4;
                                                                 |     }
    0x0003486a cmp r2, r1                                        |     
    0x0003486c mov r6, r2                                        |     r6 = r2;
    0x0003486e sbcs r0, r4                                       |     __asm ("sbcs r0, r4");
    0x00034870 ite lo                                            |     
                                                                 |     if (r2 >= r1) {
    0x00034872 sublo sl, r1, r2                                  |         sl = r1 - r2;
                                                                 |     }
                                                                 |     if (r2 >= r1) {
    0x00034876 mov.w sl, 0                                       |         sl = 0;
                                                                 |     }
    0x0003487a cmp r3, sl                                        |     
                                                                 |     if (r3 < sl) {
    0x0003487c bls 0x348f0                                       |         goto label_23;
                                                                 |     }
    0x0003487e subs r2, r2, r3                                   |     r2 -= r3;
    0x00034880 strd r1, r4, [sp, 0xc]                            |     __asm ("strd r1, r4, [var_ch]");
    0x00034884 add.w r3, r2, sl                                  |     r3 = r2 + sl;
    0x00034888 lsl.w sl, sl, 3                                   |     sl <<= 3;
    0x0003488c str r3, [sp, 4]                                   |     var_4h = r3;
                                                                 |     do {
    0x0003488e ldr.w r2, [fp, 0x24]                              |         r2 = *(arg_24h);
    0x00034892 ldr r2, [r2]                                      |         r2 = *(r2);
    0x00034894 ldr.w r7, [r2, r6, lsl 3]                         |         offset_2 = r6 << 3;
                                                                 |         r7 = *((r2 + offset_2));
    0x00034898 dmb ish                                           |         __asm ("dmb ish");
    0x0003489c add.w r2, r2, r6, lsl 3                           |         r2 += (r6 << 3);
    0x000348a0 ldr r4, [r2, 4]                                   |         r4 = *((r2 + 4));
    0x000348a2 dmb ish                                           |         __asm ("dmb ish");
                                                                 |         if (r4 == 0) {
    0x000348a6 cbnz r4, 0x348b0                                  |             
    0x000348a8 ldr r2, [pc, 0xf4]                                |             r2 = *(0x349a0);
    0x000348aa ldr.w r2, [sb, r2]                                |             r2 = *((sb + r2));
    0x000348ae ldr r4, [r2]                                      |             r4 = *(0x349a0);
                                                                 |         }
    0x000348b0 ldr.w r2, [r8, 0x24]                              |         r2 = *((r8 + 0x24));
    0x000348b4 ldr r2, [r2]                                      |         r2 = *(r2);
    0x000348b6 ldr.w r3, [r2, sl]                                |         r3 = *((r2 + sl));
    0x000348ba add.w r1, r2, sl                                  |         r1 = r2 + sl;
    0x000348be str r3, [sp]                                      |         *(sp) = r3;
    0x000348c0 dmb ish                                           |         __asm ("dmb ish");
    0x000348c4 ldr r5, [r1, 4]                                   |         r5 = *((r1 + 4));
    0x000348c6 dmb ish                                           |         __asm ("dmb ish");
                                                                 |         if (r5 == 0) {
    0x000348ca cbnz r5, 0x348d4                                  |             
    0x000348cc ldr r2, [pc, 0xd0]                                |             r2 = *(0x349a0);
    0x000348ce ldr.w r2, [sb, r2]                                |             r2 = *((sb + r2));
    0x000348d0 movs r0, 2                                        |             r0 = 2;
    0x000348d2 ldr r5, [r2]                                      |             r5 = *(0x349a0);
                                                                 |         }
    0x000348d4 mov r1, r5                                        |         r1 = r5;
    0x000348d6 mov r0, r4                                        |         r0 = r4;
    0x000348d8 bl 0x35724                                        |         r0 = gst_caps_features_is_equal ();
                                                                 |         if (r0 != 0) {
    0x000348dc cbnz r0, 0x3490a                                  |             goto label_24;
                                                                 |         }
                                                                 |         if (r6 == 0) {
                                                                 | label_7:
    0x000348de cbz r6, 0x348ec                                   |             goto label_25;
                                                                 |         }
    0x000348e0 ldr r3, [sp, 4]                                   |         r3 = var_4h;
    0x000348e2 subs r6, 1                                        |         r6--;
    0x000348e4 add.w sl, sl, 8                                   |         sl += 8;
    0x000348e8 cmp r6, r3                                        |         
    0x000348ea bne 0x3488e                                       |         
                                                                 |     } while (r6 != r3);
                                                                 | label_25:
    0x000348ec ldrd r1, r4, [sp, 0xc]                            |     __asm ("ldrd r1, r4, [var_ch]");
                                                                 | label_23:
    0x000348f0 ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x000348f2 adds r1, 1                                        |     r1++;
    0x000348f4 adc r4, r4, 0                                     |     __asm ("adc r4, r4, 0");
    0x000348f8 cmp r1, r3                                        |     
    0x000348fa sbcs r3, r4, 0                                    |     __asm ("sbcs r3, r4, 0");
                                                                 |     if (r1 <= r3) {
    0x000348fe blo 0x34856                                       |         goto label_6;
                                                                 |     }
    0x00034900 ldr r1, [sp, 8]                                   |     r1 = var_8h;
    0x00034902 mov r0, r1                                        |     r0 = r1;
    0x00034904 add sp, 0x24                                      |     
    0x00034906 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_24:
    0x0003490a mov r0, r7                                        |     r0 = r7;
    0x0003490c ldr r1, [sp]                                      |     r1 = *(sp);
    0x0003490e bl 0x6432c                                        |     r0 = gst_structure_intersect ();
    0x00034912 mov r7, r0                                        |     r7 = r0;
    0x00034914 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00034916 beq 0x348de                                       |         goto label_7;
                                                                 |     }
    0x00034918 mov r0, r4                                        |     r0 = r4;
    0x0003491a bl 0x35804                                        |     r0 = gst_caps_features_is_any ();
                                                                 |     if (r0 == 0) {
    0x0003491e cbz r0, 0x34952                                   |         goto label_26;
                                                                 |     }
                                                                 |     if (r5 == 0) {
    0x00034920 cbz r5, 0x3494e                                   |         goto label_8;
                                                                 |     }
    0x00034922 mov r0, r5                                        |     r0 = r5;
    0x00034924 bl 0x35804                                        |     r0 = gst_caps_features_is_any ();
                                                                 |     if (r0 == 0) {
    0x00034928 cbnz r0, 0x3493a                                  |         
    0x0003492a ldr r2, [pc, 0x74]                                |         r2 = *(0x349a2);
    0x0003492c mov r0, r5                                        |         r0 = r5;
    0x0003492e ldr.w r2, [sb, r2]                                |         r2 = *((sb + r2));
    0x00034932 ldr r1, [r2]                                      |         r1 = *(0x349a2);
    0x00034934 bl 0x35724                                        |         r0 = gst_caps_features_is_equal ();
                                                                 |         if (r0 != 0) {
    0x00034938 cbnz r0, 0x3494e                                  |             goto label_8;
                                                                 |         }
                                                                 |     }
    0x0003493a mov r0, r5                                        |     r0 = r5;
    0x0003493c bl 0x35aa0                                        |     r0 = gst_caps_features_copy ();
    0x00034940 mov r2, r0                                        |     r2 = r0;
                                                                 |     do {
                                                                 | label_9:
    0x00034942 ldr r0, [sp, 8]                                   |         r0 = var_8h;
    0x00034944 mov r1, r7                                        |         r1 = r7;
    0x00034946 bl 0x32ca0                                        |         gst_caps_merge_structure_full ();
    0x0003494a str r0, [sp, 8]                                   |         var_8h = r0;
    0x0003494c b 0x348de                                         |         goto label_7;
                                                                 | label_8:
    0x0003494e movs r2, 0                                        |         r2 = 0;
    0x00034950 b 0x34942                                         |         
                                                                 |     } while (1);
                                                                 | label_26:
    0x00034952 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x00034954 beq 0x3494e                                       |         goto label_8;
                                                                 |     }
    0x00034956 mov r0, r4                                        |     r0 = r4;
    0x00034958 bl 0x35804                                        |     r0 = gst_caps_features_is_any ();
                                                                 |     if (r0 != 0) {
    0x0003495c cbnz r0, 0x34970                                  |         goto label_27;
                                                                 |     }
    0x0003495e ldr r2, [pc, 0x40]                                |     r2 = *(0x349a2);
    0x00034960 mov r0, r4                                        |     r0 = r4;
    0x00034962 ldr.w r2, [sb, r2]                                |     r2 = *((sb + r2));
    0x00034966 ldr r1, [r2]                                      |     r1 = *(0x349a2);
    0x00034968 bl 0x35724                                        |     r0 = gst_caps_features_is_equal ();
    0x0003496c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0003496e bne 0x3494e                                       |         goto label_8;
                                                                 |     }
                                                                 | label_27:
    0x00034970 mov r0, r4                                        |     r0 = r4;
    0x00034972 bl 0x35aa0                                        |     r0 = gst_caps_features_copy ();
    0x00034976 mov r2, r0                                        |     r2 = r0;
    0x00034978 b 0x34942                                         |     goto label_9;
                                                                 | label_20:
    0x0003497a mov r1, r7                                        |     r1 = r7;
    0x0003497c b 0x34654                                         |     goto label_0;
                                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.2202.0 @ 0x336c4 */
                                                 | #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;
    0x000336c4 push {r4, r5, r6, lr}             |     
    0x000336c6 mov r5, r0                        |     r5 = r0;
    0x000336c8 ldr r6, [pc, 0x88]                |     
    0x000336ca mov r4, r1                        |     r4 = r1;
    0x000336cc bl 0x33644                        |     gst_caps_is_fixed ();
    0x000336d0 add r6, pc                        |     r6 = 0x66e28;
                                                 |     if (r0 != 0) {
    0x000336d2 cbnz r0, 0x336ec                  |         goto label_1;
                                                 |     }
    0x000336d4 ldr r1, [pc, 0x80]                |     
    0x000336d6 ldr r2, [pc, 0x84]                |     
    0x000336d8 ldr r0, [pc, 0x84]                |     
    0x000336da add r1, pc                        |     
    0x000336dc add r2, pc                        |     r2 = 0x66e3e;
    0x000336de add.w r1, r1, 0x1e0               |     r1 = 0x67016;
    0x000336e2 add r0, pc                        |     r0 = 0x66e46;
    0x000336e4 blx 0x20b70                       |     fcn_00020b70 ();
                                                 |     do {
                                                 | label_0:
    0x000336e8 movs r0, 0                        |         r0 = 0;
    0x000336ea pop {r4, r5, r6, pc}              |         
                                                 | label_1:
    0x000336ec mov r0, r4                        |         r0 = r4;
    0x000336ee bl 0x33644                        |         r0 = gst_caps_is_fixed ();
                                                 |         if (r0 == 0) {
    0x000336f2 cbz r0, 0x3373c                   |             goto label_2;
                                                 |         }
    0x000336f4 ldr r3, [r5, 0x24]                |         r3 = *((r5 + 0x24));
    0x000336f6 ldr r3, [r3]                      |         r3 = *(r3);
    0x000336f8 ldr r0, [r3]                      |         r0 = *(r3);
    0x000336fa dmb ish                           |         __asm ("dmb ish");
    0x000336fe ldr r5, [r3, 4]                   |         r5 = *((r3 + 4));
    0x00033700 dmb ish                           |         __asm ("dmb ish");
                                                 |         if (r5 == 0) {
    0x00033704 cbnz r5, 0x3370c                  |             
    0x00033706 ldr r3, [pc, 0x5c]                |             r3 = *(0x33766);
    0x00033708 ldr r3, [r6, r3]                  |             r3 = *((r6 + r3));
    0x0003370a ldr r5, [r3]                      |             r5 = *(0x33766);
                                                 |         }
    0x0003370c ldr r3, [r4, 0x24]                |         r3 = *((r4 + 0x24));
    0x0003370e ldr r3, [r3]                      |         r3 = *(r3);
    0x00033710 ldr r1, [r3]                      |         r1 = *(r3);
    0x00033712 dmb ish                           |         __asm ("dmb ish");
    0x00033716 ldr r4, [r3, 4]                   |         r4 = *((r3 + 4));
    0x00033718 dmb ish                           |         __asm ("dmb ish");
                                                 |         if (r4 == 0) {
    0x0003371c cbnz r4, 0x33724                  |             
    0x0003371e ldr r3, [pc, 0x44]                |             r3 = *(0x33766);
    0x00033720 ldr r3, [r6, r3]                  |             r3 = *((r6 + r3));
    0x00033722 ldr r4, [r3]                      |             r4 = *(0x33766);
                                                 |         }
    0x00033724 bl 0x64294                        |         r0 = gst_structure_is_equal ();
    0x00033728 cmp r0, 0                         |         
    0x0003372a beq 0x336e8                       |         
                                                 |     } while (r0 == 0);
    0x0003372c mov r1, r4                        |     r1 = r4;
    0x0003372e mov r0, r5                        |     r0 = r5;
    0x00033730 bl 0x35724                        |     gst_caps_features_is_equal ();
    0x00033734 subs r0, 0                        |     
    0x00033736 it ne                             |     
                                                 |     if (r0 == 0) {
    0x00033738 movne r0, 1                       |         r0 = 1;
                                                 |     }
    0x0003373a pop {r4, r5, r6, pc}              |     
                                                 | label_2:
    0x0003373c ldr r1, [pc, 0x28]                |     
    0x0003373e ldr r2, [pc, 0x2c]                |     
    0x00033740 ldr r0, [pc, 0x2c]                |     
    0x00033742 add r1, pc                        |     
    0x00033744 add r2, pc                        |     r2 = 0x66eb6;
    0x00033746 add.w r1, r1, 0x1e0               |     r1 = 0x6708e;
    0x0003374a add r0, pc                        |     r0 = 0x66ebe;
    0x0003374c blx 0x20b70                       |     fcn_00020b70 ();
    0x00033750 b 0x336e8                         |     goto label_0;
                                                 | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.2202.0 @ 0x33b44 */
                                                                     | #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;
    0x00033b44 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x00033b48 sub sp, 0xc                                           |     
    0x00033b4a ldr.w sb, [pc, 0x108]                                 |     
    0x00033b4e add sb, pc                                            |     sb = 0x677a8;
                                                                     |     if (r0 != 0) {
    0x00033b50 cbz r0, 0x33b62                                       |         
    0x00033b52 ldr r3, [pc, 0x104]                                   |         
    0x00033b54 mov r5, r0                                            |         r5 = r0;
    0x00033b56 ldr r2, [r0]                                          |         r2 = *(r0);
    0x00033b58 ldr.w r3, [sb, r3]                                    |         r3 = *((sb + r3));
    0x00033b5c ldr r3, [r3]                                          |         r3 = *(0x33c5a);
    0x00033b5e cmp r2, r3                                            |         
                                                                     |         if (r2 == r3) {
    0x00033b60 beq 0x33b7e                                           |             goto label_2;
                                                                     |         }
                                                                     |     }
    0x00033b62 ldr r1, [pc, 0xf8]                                    |     
    0x00033b64 ldr r2, [pc, 0xf8]                                    |     
    0x00033b66 ldr r0, [pc, 0xfc]                                    |     
    0x00033b68 add r1, pc                                            |     
    0x00033b6a add r2, pc                                            |     r2 = 0x677ce;
    0x00033b6c add.w r1, r1, 0x284                                   |     r1 = 0x67a4e;
    0x00033b70 add r0, pc                                            |     r0 = 0x677da;
    0x00033b72 blx 0x20b70                                           |     fcn_00020b70 ();
                                                                     |     do {
                                                                     | label_0:
    0x00033b76 movs r0, 0                                            |         r0 = 0;
    0x00033b78 add sp, 0xc                                           |         
    0x00033b7a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_2:
    0x00033b7e mov r6, r1                                            |         r6 = r1;
                                                                     |         if (r1 != 0) {
    0x00033b80 cbz r1, 0x33b88                                       |             
    0x00033b82 ldr r3, [r1]                                          |             r3 = *(r1);
    0x00033b84 cmp r2, r3                                            |             
                                                                     |             if (r2 == r3) {
    0x00033b86 beq 0x33b9e                                           |                 goto label_3;
                                                                     |             }
                                                                     |         }
    0x00033b88 ldr r1, [pc, 0xdc]                                    |         
    0x00033b8a ldr r2, [pc, 0xe0]                                    |         
    0x00033b8c ldr r0, [pc, 0xe0]                                    |         
    0x00033b8e add r1, pc                                            |         
    0x00033b90 add r2, pc                                            |         r2 = 0x67802;
    0x00033b92 add.w r1, r1, 0x284                                   |         r1 = 0x67a7e;
    0x00033b96 add r0, pc                                            |         r0 = 0x6780a;
    0x00033b98 blx 0x20b70                                           |         fcn_00020b70 ();
    0x00033b9c b 0x33b76                                             |         
                                                                     |     } while (1);
                                                                     | label_3:
    0x00033b9e cmp r0, r1                                            |     
                                                                     |     if (r0 == r1) {
    0x00033ba0 beq 0x33c3e                                           |         goto label_4;
                                                                     |     }
    0x00033ba2 ldr r3, [r0, 0xc]                                     |     r3 = *((r0 + 0xc));
    0x00033ba4 ldr r4, [r1, 0xc]                                     |     r4 = *((r1 + 0xc));
    0x00033ba6 lsls r3, r3, 0x1b                                     |     r3 <<= 0x1b;
    0x00033ba8 and r4, r4, 0x10                                      |     r4 &= 0x10;
                                                                     |     if (r3 < r3) {
    0x00033bac bmi 0x33c46                                           |         goto label_5;
                                                                     |     }
    0x00033bae cmp r4, 0                                             |     
                                                                     |     if (r4 != 0) {
    0x00033bb0 bne 0x33b76                                           |         goto label_0;
                                                                     |     }
    0x00033bb2 ldr r2, [r1, 0x24]                                    |     r2 = *((r1 + 0x24));
    0x00033bb4 ldr r3, [r0, 0x24]                                    |     r3 = *((r0 + 0x24));
    0x00033bb6 ldr r1, [r2, 4]                                       |     r1 = *((r2 + 4));
    0x00033bb8 ldr r2, [r3, 4]                                       |     r2 = *((r3 + 4));
    0x00033bba cmp r2, r1                                            |     
                                                                     |     if (r2 != r1) {
    0x00033bbc bne 0x33b76                                           |         goto label_0;
                                                                     |     }
    0x00033bbe cmp r2, 0                                             |     
                                                                     |     if (r2 == 0) {
    0x00033bc0 beq 0x33c3e                                           |         goto label_4;
                                                                     |     }
                                                                     | label_1:
    0x00033bc2 ldr r3, [r3]                                          |     r3 = *(r3);
    0x00033bc4 lsls r2, r4, 3                                        |     r2 = r4 << 3;
    0x00033bc6 ldr r0, [pc, 0xac]                                    |     r0 = *(0x33c76);
    0x00033bc8 adds r1, r3, r2                                       |     r1 = r3 + r2;
    0x00033bca ldr.w r3, [r3, r4, lsl 3]                             |     offset_0 = r4 << 3;
                                                                     |     r3 = *((r3 + offset_0));
    0x00033bce str r3, [sp, 4]                                       |     var_4h = r3;
    0x00033bd0 dmb ish                                               |     __asm ("dmb ish");
    0x00033bd4 ldr r1, [r1, 4]                                       |     r1 = *((r1 + 4));
    0x00033bd6 dmb ish                                               |     __asm ("dmb ish");
    0x00033bda mov sl, r1                                            |     sl = r1;
                                                                     |     if (r1 == 0) {
    0x00033bdc cbnz r1, 0x33be6                                      |         
    0x00033bde ldr.w r3, [sb, r0]                                    |         r3 = *((sb + r0));
    0x00033be2 ldr.w sl, [r3]                                        |         sl = *(r3);
                                                                     |     }
    0x00033be6 ldr r1, [r6, 0x24]                                    |     r1 = *((r6 + 0x24));
    0x00033be8 ldr r7, [pc, 0x88]                                    |     r7 = *(0x33c74);
    0x00033bea ldr r1, [r1]                                          |     r1 = *(r1);
    0x00033bec adds r0, r1, r2                                       |     r0 = r1 + r2;
    0x00033bee ldr.w fp, [r1, r2]                                    |     fp = *((r1 + r2));
    0x00033bf0 add sp, 8                                             |     
    0x00033bf2 dmb ish                                               |     __asm ("dmb ish");
    0x00033bf6 ldr r2, [r0, 4]                                       |     r2 = *((r0 + 4));
    0x00033bf8 dmb ish                                               |     __asm ("dmb ish");
    0x00033bfc mov r8, r2                                            |     r8 = r2;
                                                                     |     if (r2 == 0) {
    0x00033bfe cbnz r2, 0x33c08                                      |         
    0x00033c00 ldr.w r2, [sb, r7]                                    |         r2 = *((sb + r7));
    0x00033c04 ldr.w r8, [r2]                                        |         r8 = *(r2);
                                                                     |     }
    0x00033c08 mov r0, sl                                            |     r0 = sl;
    0x00033c0a adds r4, 1                                            |     r4++;
    0x00033c0c bl 0x35804                                            |     r0 = gst_caps_features_is_any ();
    0x00033c10 mov r7, r0                                            |     r7 = r0;
    0x00033c12 mov r0, r8                                            |     r0 = r8;
    0x00033c14 bl 0x35804                                            |     r0 = gst_caps_features_is_any ();
    0x00033c18 cmp r7, r0                                            |     
    0x00033c1a mov r1, r8                                            |     r1 = r8;
    0x00033c1c mov r0, sl                                            |     r0 = sl;
                                                                     |     if (r7 != r0) {
    0x00033c1e bne 0x33b76                                           |         goto label_0;
                                                                     |     }
    0x00033c20 bl 0x35724                                            |     r0 = gst_caps_features_is_equal ();
    0x00033c24 mov r3, r0                                            |     r3 = r0;
    0x00033c26 mov r1, fp                                            |     r1 = fp;
    0x00033c28 ldr r0, [sp, 4]                                       |     r0 = var_4h;
    0x00033c2a cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x00033c2c beq 0x33b76                                           |         goto label_0;
                                                                     |     }
    0x00033c2e bl 0x64294                                            |     r0 = gst_structure_is_equal ();
    0x00033c32 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x00033c34 beq 0x33b76                                           |         goto label_0;
                                                                     |     }
    0x00033c36 ldr r3, [r5, 0x24]                                    |     r3 = *((r5 + 0x24));
    0x00033c38 ldr r2, [r3, 4]                                       |     r2 = *((r3 + 4));
    0x00033c3a cmp r4, r2                                            |     
                                                                     |     if (r4 <= r2) {
    0x00033c3c blo 0x33bc2                                           |         goto label_1;
                                                                     |     }
                                                                     | label_4:
    0x00033c3e movs r0, 1                                            |     r0 = 1;
    0x00033c40 add sp, 0xc                                           |     
    0x00033c42 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                     | label_5:
    0x00033c46 subs r0, r4, 0                                        |     r0 = r4 - 0;
    0x00033c48 it ne                                                 |     
                                                                     |     if (r0 == r4) {
    0x00033c4a movne r0, 1                                           |         r0 = 1;
                                                                     |     }
    0x00033c4c add sp, 0xc                                           |     
    0x00033c4e 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-80367616.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.2202.0 @ 0x33774 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.gst_caps_is_subset ()                            | void gst_caps_is_subset (uint32_t arg1, uint32_t arg2) {
                                                                 |     int16_t var_4h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00033774 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00033778 sub sp, 0xc                                       |     
    0x0003377a ldr.w r8, [pc, 0x114]                             |     
    0x0003377e add r8, pc                                        |     r8 = 0x67014;
    0x00033780 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00033782 beq 0x33852                                       |         goto label_2;
                                                                 |     }
    0x00033784 mov r6, r1                                        |     r6 = r1;
    0x00033786 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x00033788 beq 0x33876                                       |         goto label_3;
                                                                 |     }
    0x0003378a ldr r3, [r0, 0xc]                                 |     r3 = *((r0 + 0xc));
    0x0003378c mov sl, r0                                        |     sl = r0;
    0x0003378e lsls r0, r3, 0x1b                                 |     r0 = r3 << 0x1b;
                                                                 |     if (r0 < r3) {
    0x00033790 bmi 0x33846                                       |         goto label_4;
                                                                 |     }
    0x00033792 ldr.w r2, [sl, 0x24]                              |     r2 = *((sl + 0x24));
    0x00033796 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00033798 beq 0x3386e                                       |         goto label_5;
                                                                 |     }
    0x0003379a ldr r3, [r2, 4]                                   |     r3 = *((r2 + 4));
    0x0003379c cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0003379e beq 0x3386e                                       |         goto label_5;
                                                                 |     }
    0x000337a0 ldr r1, [r1, 0xc]                                 |     r1 = *((r1 + 0xc));
    0x000337a2 lsls r1, r1, 0x1b                                 |     r1 <<= 0x1b;
                                                                 |     if (r1 < r1) {
    0x000337a4 bmi 0x3386e                                       |         goto label_5;
                                                                 |     }
    0x000337a6 ldr r1, [r6, 0x24]                                |     r1 = *((r6 + 0x24));
    0x000337a8 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x000337aa beq 0x33866                                       |         goto label_6;
                                                                 |     }
    0x000337ac ldr r1, [r1, 4]                                   |     r1 = *((r1 + 4));
    0x000337ae cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x000337b0 beq 0x33866                                       |         goto label_6;
                                                                 |     }
    0x000337b2 subs.w sb, r3, 1                                  |     sb = r3 - 1;
                                                                 |     if (sb < r3) {
    0x000337b6 bmi 0x3386e                                       |         goto label_5;
                                                                 |     }
                                                                 | label_1:
    0x000337b8 ldr r3, [r2]                                      |     r3 = *(r2);
    0x000337ba ldr.w r2, [r3, sb, lsl 3]                         |     offset_0 = sb << 3;
                                                                 |     r2 = *((r3 + offset_0));
    0x000337be add.w r3, r3, sb, lsl 3                           |     r3 += (sb << 3);
    0x000337c2 str r2, [sp, 4]                                   |     var_4h = r2;
    0x000337c4 dmb ish                                           |     __asm ("dmb ish");
    0x000337c8 ldr r5, [r3, 4]                                   |     r5 = *((r3 + 4));
    0x000337ca dmb ish                                           |     __asm ("dmb ish");
                                                                 |     if (r5 == 0) {
    0x000337ce cbnz r5, 0x337d8                                  |         
    0x000337d0 ldr r3, [pc, 0xc0]                                |         r3 = *(0x33894);
    0x000337d2 ldr.w r3, [r8, r3]                                |         r3 = *((r8 + r3));
    0x000337d6 ldr r5, [r3]                                      |         r5 = *(0x33894);
                                                                 |     }
    0x000337d8 ldr r3, [r6, 0x24]                                |     r3 = *((r6 + 0x24));
    0x000337da ldr r4, [r3, 4]                                   |     r4 = *((r3 + 4));
    0x000337dc subs r4, 1                                        |     r4--;
                                                                 |     if (r4 >= 1) {
    0x000337de bpl 0x337e8                                       |         goto label_7;
                                                                 |     }
    0x000337e0 b 0x33836                                         |     goto label_8;
                                                                 |     do {
                                                                 | label_0:
    0x000337e2 subs r4, 1                                        |         r4--;
                                                                 |         if (r4 <= 1) {
    0x000337e4 blo 0x33866                                       |             goto label_6;
                                                                 |         }
    0x000337e6 ldr r3, [r6, 0x24]                                |         r3 = *((r6 + 0x24));
                                                                 | label_7:
    0x000337e8 ldr r3, [r3]                                      |         r3 = *(r3);
    0x000337ea ldr r2, [pc, 0xa8]                                |         r2 = *(0x33896);
    0x000337ec ldr.w r7, [r3, r4, lsl 3]                         |         offset_1 = r4 << 3;
                                                                 |         r7 = *((r3 + offset_1));
    0x000337f0 dmb ish                                           |         __asm ("dmb ish");
    0x000337f4 add.w r3, r3, r4, lsl 3                           |         r3 += (r4 << 3);
    0x000337f8 ldr r3, [r3, 4]                                   |         r3 = *((r3 + 4));
    0x000337fa dmb ish                                           |         __asm ("dmb ish");
    0x000337fe mov fp, r3                                        |         
                                                                 |         if (r3 == 0) {
    0x00033800 cbnz r3, 0x3380a                                  |             
    0x00033802 ldr.w r3, [r8, r2]                                |             r3 = *((r8 + r2));
    0x00033806 ldr.w fp, [r3]                                    |             fp = *(r3);
                                                                 |         }
    0x0003380a mov r0, r5                                        |         r0 = r5;
    0x0003380c bl 0x35804                                        |         r0 = gst_caps_features_is_any ();
    0x00033810 mov r3, r0                                        |         r3 = r0;
    0x00033812 mov r0, fp                                        |         r0 = fp;
                                                                 |         if (r3 == 0) {
    0x00033814 cbz r3, 0x3381e                                   |             goto label_9;
                                                                 |         }
    0x00033816 bl 0x35804                                        |         r0 = gst_caps_features_is_any ();
    0x0003381a cmp r0, 0                                         |         
    0x0003381c beq 0x337e2                                       |         
                                                                 |     } while (r0 == 0);
                                                                 | label_9:
    0x0003381e mov r0, r5                                        |     r0 = r5;
    0x00033820 mov r1, fp                                        |     r1 = fp;
    0x00033822 bl 0x35724                                        |     r0 = gst_caps_features_is_equal ();
    0x00033826 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00033828 beq 0x337e2                                       |         goto label_0;
                                                                 |     }
    0x0003382a ldr r0, [sp, 4]                                   |     r0 = var_4h;
    0x0003382c mov r1, r7                                        |     r1 = r7;
    0x0003382e bl 0x644f0                                        |     r0 = gst_structure_is_subset ();
    0x00033832 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00033834 beq 0x337e2                                       |         goto label_0;
                                                                 |     }
                                                                 | label_8:
    0x00033836 adds r4, 1                                        |     r4++;
                                                                 |     if (r4 != 1) {
    0x00033838 beq 0x33866                                       |         
    0x0003383a subs.w sb, sb, 1                                  |         sb--;
                                                                 |         if (sb <= sb) {
    0x0003383e blo 0x3386e                                       |             goto label_5;
                                                                 |         }
    0x00033840 ldr.w r2, [sl, 0x24]                              |         r2 = *((sl + 0x24));
    0x00033844 b 0x337b8                                         |         goto label_1;
                                                                 | label_4:
    0x00033846 ldr r0, [r1, 0xc]                                 |         r0 = *((r1 + 0xc));
    0x00033848 ubfx r0, r0, 4, 1                                 |         r0 = (r0 >> 4) & ((1 << 1) - 1);
    0x0003384a asrs r0, r0, 0x20                                 |         r0 >>= 0x20;
    0x0003384c add sp, 0xc                                       |         
    0x0003384e pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_2:
    0x00033852 ldr r1, [pc, 0x44]                                |         
    0x00033854 ldr r2, [pc, 0x44]                                |         
    0x00033856 ldr r0, [pc, 0x48]                                |         
    0x00033858 add r1, pc                                        |         
    0x0003385a add r2, pc                                        |         r2 = 0x670fa;
    0x0003385c add.w r1, r1, 0x1f8                               |         r1 = 0x672ee;
    0x00033860 add r0, pc                                        |         r0 = 0x67106;
    0x00033862 blx 0x20b70                                       |         fcn_00020b70 ();
                                                                 |     }
                                                                 | label_6:
    0x00033866 movs r0, 0                                        |     r0 = 0;
                                                                 |     do {
    0x00033868 add sp, 0xc                                       |         
    0x0003386a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_5:
    0x0003386e movs r0, 1                                        |         r0 = 1;
    0x00033870 add sp, 0xc                                       |         
    0x00033872 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_3:
    0x00033876 ldr r1, [pc, 0x2c]                                |         
    0x00033878 ldr r2, [pc, 0x2c]                                |         
    0x0003387a ldr r0, [pc, 0x30]                                |         
    0x0003387c add r1, pc                                        |         
    0x0003387e add r2, pc                                        |         r2 = 0x6712a;
    0x00033880 add.w r1, r1, 0x1f8                               |         r1 = 0x6731e;
    0x00033884 add r0, pc                                        |         r0 = 0x67136;
    0x00033886 blx 0x20b70                                       |         fcn_00020b70 ();
    0x0003388a movs r0, 0                                        |         r0 = 0;
    0x0003388c b 0x33868                                         |         
                                                                 |     } while (1);
                                                                 | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.2202.0 @ 0x33928 */
                                                     | #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;
    0x00033928 push {r4, r5, r6, lr}                 |     
                                                     |     if (r0 == 0) {
    0x0003392a cbz r0, 0x33962                       |         goto label_0;
                                                     |     }
    0x0003392c mov r6, r1                            |     r6 = r1;
                                                     |     if (r1 == 0) {
    0x0003392e cbz r1, 0x3397a                       |         goto label_1;
                                                     |     }
    0x00033930 mov r5, r0                            |     r5 = r0;
    0x00033932 ldr r3, [r0, 0xc]                     |     r3 = *((r0 + 0xc));
    0x00033934 lsls r2, r3, 0x1b                     |     r2 = r3 << 0x1b;
                                                     |     if (r2 < r3) {
    0x00033936 bmi 0x3395e                           |         goto label_2;
                                                     |     }
    0x00033938 ldr r3, [r0, 0x24]                    |     r3 = *((r0 + 0x24));
                                                     |     if (r3 == 0) {
    0x0003393a cbz r3, 0x33976                       |         goto label_3;
                                                     |     }
    0x0003393c ldr r4, [r3, 4]                       |     r4 = *((r3 + 4));
                                                     |     if (r4 == 0) {
    0x0003393e cbz r4, 0x33976                       |         goto label_3;
                                                     |     }
    0x00033940 subs r4, 1                            |     r4--;
                                                     |     if (r4 >= 1) {
    0x00033942 bpl 0x3394c                           |         goto label_4;
                                                     |     }
    0x00033944 b 0x33976                             |     goto label_3;
                                                     |     do {
    0x00033946 adds r3, r4, 1                        |         r3 = r4 + 1;
                                                     |         if (r3 == r4) {
    0x00033948 beq 0x33976                           |             goto label_3;
                                                     |         }
    0x0003394a ldr r3, [r5, 0x24]                    |         r3 = *((r5 + 0x24));
                                                     | label_4:
    0x0003394c ldr r3, [r3]                          |         r3 = *(r3);
    0x0003394e mov r0, r6                            |         r0 = r6;
    0x00033950 ldr.w r1, [r3, r4, lsl 3]             |         offset_0 = r4 << 3;
                                                     |         r1 = *((r3 + offset_0));
    0x00033954 subs r4, 1                            |         r4--;
    0x00033956 bl 0x644f0                            |         r0 = gst_structure_is_subset ();
    0x0003395a cmp r0, 0                             |         
    0x0003395c beq 0x33946                           |         
                                                     |     } while (r0 == 0);
                                                     | label_2:
    0x0003395e movs r0, 1                            |     r0 = 1;
    0x00033960 pop {r4, r5, r6, pc}                  |     
                                                     | label_0:
    0x00033962 ldr r1, [pc, 0x30]                    |     
    0x00033964 ldr r2, [pc, 0x30]                    |     
    0x00033966 ldr r0, [pc, 0x34]                    |     
    0x00033968 add r1, pc                            |     
    0x0003396a add r2, pc                            |     r2 = 0x67306;
    0x0003396c add.w r1, r1, 0x22c                   |     r1 = 0x6752e;
    0x00033970 add r0, pc                            |     r0 = 0x67312;
    0x00033972 blx 0x20b70                           |     fcn_00020b70 ();
                                                     | label_3:
    0x00033976 movs r0, 0                            |     r0 = 0;
                                                     |     do {
    0x00033978 pop {r4, r5, r6, pc}                  |         
                                                     | label_1:
    0x0003397a ldr r1, [pc, 0x24]                    |         
    0x0003397c ldr r2, [pc, 0x24]                    |         
    0x0003397e ldr r0, [pc, 0x28]                    |         
    0x00033980 add r1, pc                            |         
    0x00033982 add r2, pc                            |         r2 = 0x6732a;
    0x00033984 add.w r1, r1, 0x22c                   |         r1 = 0x67552;
    0x00033988 add r0, pc                            |         r0 = 0x67336;
    0x0003398a blx 0x20b70                           |         fcn_00020b70 ();
    0x0003398e movs r0, 0                            |         r0 = 0;
    0x00033990 b 0x33978                             |         
                                                     |     } while (1);
                                                     | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.2202.0 @ 0x339ac */
                                                             | #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;
    0x000339ac push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x000339b0 ldr.w r8, [pc, 0xc0]                          |     
    0x000339b4 add r8, pc                                    |     r8 = 0x6742c;
    0x000339b6 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000339b8 beq 0x33a3a                                   |         goto label_2;
                                                             |     }
    0x000339ba mov r7, r1                                    |     r7 = r1;
    0x000339bc cmp r1, 0                                     |     
                                                             |     if (r1 == 0) {
    0x000339be beq 0x33a54                                   |         goto label_3;
                                                             |     }
    0x000339c0 ldr r3, [r0, 0xc]                             |     r3 = *((r0 + 0xc));
    0x000339c2 mov r6, r0                                    |     r6 = r0;
    0x000339c4 lsls r3, r3, 0x1b                             |     r3 <<= 0x1b;
                                                             |     if (r3 < r3) {
    0x000339c6 bmi 0x33a34                                   |         goto label_4;
                                                             |     }
    0x000339c8 ldr r3, [r0, 0x24]                            |     r3 = *((r0 + 0x24));
    0x000339ca cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000339cc beq 0x33a4e                                   |         goto label_5;
                                                             |     }
    0x000339ce ldr r4, [r3, 4]                               |     r4 = *((r3 + 4));
    0x000339d0 cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x000339d2 beq 0x33a4e                                   |         goto label_5;
                                                             |     }
    0x000339d4 mov r5, r2                                    |     r5 = r2;
    0x000339d6 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x000339d8 beq 0x33a6a                                   |         goto label_6;
                                                             |     }
                                                             | label_1:
    0x000339da subs r4, 1                                    |     r4--;
                                                             |     if (r4 >= 1) {
    0x000339dc bpl 0x339e6                                   |         goto label_7;
                                                             |     }
    0x000339de b 0x33a4e                                     |     goto label_5;
                                                             |     do {
                                                             | label_0:
    0x000339e0 subs r4, 1                                    |         r4--;
                                                             |         if (r4 <= 1) {
    0x000339e2 blo 0x33a4e                                   |             goto label_5;
                                                             |         }
    0x000339e4 ldr r3, [r6, 0x24]                            |         r3 = *((r6 + 0x24));
                                                             | label_7:
    0x000339e6 ldr r3, [r3]                                  |         r3 = *(r3);
    0x000339e8 ldr r2, [pc, 0x8c]                            |         r2 = *(0x33a78);
    0x000339ea ldr.w sb, [r3, r4, lsl 3]                     |         offset_0 = r4 << 3;
                                                             |         sb = *((r3 + offset_0));
    0x000339ec str r0, [sp, 0xd0]                            |         *((sp + 0xd0)) = r0;
    0x000339ee dmb ish                                       |         __asm ("dmb ish");
    0x000339f2 add.w r3, r3, r4, lsl 3                       |         r3 += (r4 << 3);
    0x000339f6 ldr r3, [r3, 4]                               |         r3 = *((r3 + 4));
    0x000339f8 dmb ish                                       |         __asm ("dmb ish");
    0x000339fc mov sl, r3                                    |         sl = r3;
                                                             |         if (r3 == 0) {
    0x000339fe cbnz r3, 0x33a08                              |             
    0x00033a00 ldr.w r3, [r8, r2]                            |             r3 = *((r8 + r2));
    0x00033a04 ldr.w sl, [r3]                                |             sl = *(r3);
                                                             |         }
    0x00033a08 mov r0, r5                                    |         r0 = r5;
    0x00033a0a bl 0x35804                                    |         r0 = gst_caps_features_is_any ();
    0x00033a0e mov r3, r0                                    |         r3 = r0;
    0x00033a10 mov r0, sl                                    |         r0 = sl;
                                                             |         if (r3 == 0) {
    0x00033a12 cbz r3, 0x33a1c                               |             goto label_8;
                                                             |         }
    0x00033a14 bl 0x35804                                    |         r0 = gst_caps_features_is_any ();
    0x00033a18 cmp r0, 0                                     |         
    0x00033a1a beq 0x339e0                                   |         
                                                             |     } while (r0 == 0);
                                                             | label_8:
    0x00033a1c mov r0, r5                                    |     r0 = r5;
    0x00033a1e mov r1, sl                                    |     r1 = sl;
    0x00033a20 bl 0x35724                                    |     r0 = gst_caps_features_is_equal ();
    0x00033a24 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00033a26 beq 0x339e0                                   |         goto label_0;
                                                             |     }
    0x00033a28 mov r1, sb                                    |     r1 = sb;
    0x00033a2a mov r0, r7                                    |     r0 = r7;
    0x00033a2c bl 0x644f0                                    |     r0 = gst_structure_is_subset ();
    0x00033a30 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00033a32 beq 0x339e0                                   |         goto label_0;
                                                             |     }
                                                             | label_4:
    0x00033a34 movs r0, 1                                    |     r0 = 1;
    0x00033a36 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |     
    0x00033a38 strh r0, [r6, 0x3e]                           |     *((r6 + 0x3e)) = r0;
                                                             | label_2:
    0x00033a3a ldr r1, [pc, 0x40]                            |     
    0x00033a3c ldr r2, [pc, 0x40]                            |     
    0x00033a3e ldr r0, [pc, 0x44]                            |     
    0x00033a40 add r1, pc                                    |     
    0x00033a42 add r2, pc                                    |     r2 = 0x674c6;
    0x00033a44 add.w r1, r1, 0x24c                           |     r1 = 0x6770e;
    0x00033a48 add r0, pc                                    |     r0 = 0x674d2;
    0x00033a4a blx 0x20b70                                   |     fcn_00020b70 ();
                                                             |     do {
                                                             | label_5:
    0x00033a4e movs r0, 0                                    |         r0 = 0;
    0x00033a50 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
                                                             | label_3:
    0x00033a54 ldr r1, [pc, 0x30]                            |         
    0x00033a56 ldr r2, [pc, 0x34]                            |         
    0x00033a58 ldr r0, [pc, 0x34]                            |         
    0x00033a5a add r1, pc                                    |         
    0x00033a5c add r2, pc                                    |         r2 = 0x674ee;
    0x00033a5e add.w r1, r1, 0x24c                           |         r1 = 0x67732;
    0x00033a62 add r0, pc                                    |         r0 = 0x674f6;
    0x00033a64 blx 0x20b70                                   |         fcn_00020b70 ();
    0x00033a68 b 0x33a4e                                     |         
                                                             |     } while (1);
                                                             | label_6:
    0x00033a6a ldr r2, [pc, 0xc]                             |     r2 = *(0x33a7a);
    0x00033a6c ldr.w r2, [r8, r2]                            |     r2 = *((r8 + r2));
    0x00033a70 ldr r5, [r2]                                  |     r5 = *(0x33a7a);
    0x00033a72 b 0x339da                                     |     goto label_1;
                                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.2202.0 @ 0x339ac */
                                                             | #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;
    0x000339ac push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x000339b0 ldr.w r8, [pc, 0xc0]                          |     
    0x000339b4 add r8, pc                                    |     r8 = 0x6742c;
    0x000339b6 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000339b8 beq 0x33a3a                                   |         goto label_2;
                                                             |     }
    0x000339ba mov r7, r1                                    |     r7 = r1;
    0x000339bc cmp r1, 0                                     |     
                                                             |     if (r1 == 0) {
    0x000339be beq 0x33a54                                   |         goto label_3;
                                                             |     }
    0x000339c0 ldr r3, [r0, 0xc]                             |     r3 = *((r0 + 0xc));
    0x000339c2 mov r6, r0                                    |     r6 = r0;
    0x000339c4 lsls r3, r3, 0x1b                             |     r3 <<= 0x1b;
                                                             |     if (r3 < r3) {
    0x000339c6 bmi 0x33a34                                   |         goto label_4;
                                                             |     }
    0x000339c8 ldr r3, [r0, 0x24]                            |     r3 = *((r0 + 0x24));
    0x000339ca cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000339cc beq 0x33a4e                                   |         goto label_5;
                                                             |     }
    0x000339ce ldr r4, [r3, 4]                               |     r4 = *((r3 + 4));
    0x000339d0 cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x000339d2 beq 0x33a4e                                   |         goto label_5;
                                                             |     }
    0x000339d4 mov r5, r2                                    |     r5 = r2;
    0x000339d6 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x000339d8 beq 0x33a6a                                   |         goto label_6;
                                                             |     }
                                                             | label_1:
    0x000339da subs r4, 1                                    |     r4--;
                                                             |     if (r4 >= 1) {
    0x000339dc bpl 0x339e6                                   |         goto label_7;
                                                             |     }
    0x000339de b 0x33a4e                                     |     goto label_5;
                                                             |     do {
                                                             | label_0:
    0x000339e0 subs r4, 1                                    |         r4--;
                                                             |         if (r4 <= 1) {
    0x000339e2 blo 0x33a4e                                   |             goto label_5;
                                                             |         }
    0x000339e4 ldr r3, [r6, 0x24]                            |         r3 = *((r6 + 0x24));
                                                             | label_7:
    0x000339e6 ldr r3, [r3]                                  |         r3 = *(r3);
    0x000339e8 ldr r2, [pc, 0x8c]                            |         r2 = *(0x33a78);
    0x000339ea ldr.w sb, [r3, r4, lsl 3]                     |         offset_0 = r4 << 3;
                                                             |         sb = *((r3 + offset_0));
    0x000339ec str r0, [sp, 0xd0]                            |         *((sp + 0xd0)) = r0;
    0x000339ee dmb ish                                       |         __asm ("dmb ish");
    0x000339f2 add.w r3, r3, r4, lsl 3                       |         r3 += (r4 << 3);
    0x000339f6 ldr r3, [r3, 4]                               |         r3 = *((r3 + 4));
    0x000339f8 dmb ish                                       |         __asm ("dmb ish");
    0x000339fc mov sl, r3                                    |         sl = r3;
                                                             |         if (r3 == 0) {
    0x000339fe cbnz r3, 0x33a08                              |             
    0x00033a00 ldr.w r3, [r8, r2]                            |             r3 = *((r8 + r2));
    0x00033a04 ldr.w sl, [r3]                                |             sl = *(r3);
                                                             |         }
    0x00033a08 mov r0, r5                                    |         r0 = r5;
    0x00033a0a bl 0x35804                                    |         r0 = gst_caps_features_is_any ();
    0x00033a0e mov r3, r0                                    |         r3 = r0;
    0x00033a10 mov r0, sl                                    |         r0 = sl;
                                                             |         if (r3 == 0) {
    0x00033a12 cbz r3, 0x33a1c                               |             goto label_8;
                                                             |         }
    0x00033a14 bl 0x35804                                    |         r0 = gst_caps_features_is_any ();
    0x00033a18 cmp r0, 0                                     |         
    0x00033a1a beq 0x339e0                                   |         
                                                             |     } while (r0 == 0);
                                                             | label_8:
    0x00033a1c mov r0, r5                                    |     r0 = r5;
    0x00033a1e mov r1, sl                                    |     r1 = sl;
    0x00033a20 bl 0x35724                                    |     r0 = gst_caps_features_is_equal ();
    0x00033a24 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00033a26 beq 0x339e0                                   |         goto label_0;
                                                             |     }
    0x00033a28 mov r1, sb                                    |     r1 = sb;
    0x00033a2a mov r0, r7                                    |     r0 = r7;
    0x00033a2c bl 0x644f0                                    |     r0 = gst_structure_is_subset ();
    0x00033a30 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00033a32 beq 0x339e0                                   |         goto label_0;
                                                             |     }
                                                             | label_4:
    0x00033a34 movs r0, 1                                    |     r0 = 1;
    0x00033a36 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |     
    0x00033a38 strh r0, [r6, 0x3e]                           |     *((r6 + 0x3e)) = r0;
                                                             | label_2:
    0x00033a3a ldr r1, [pc, 0x40]                            |     
    0x00033a3c ldr r2, [pc, 0x40]                            |     
    0x00033a3e ldr r0, [pc, 0x44]                            |     
    0x00033a40 add r1, pc                                    |     
    0x00033a42 add r2, pc                                    |     r2 = 0x674c6;
    0x00033a44 add.w r1, r1, 0x24c                           |     r1 = 0x6770e;
    0x00033a48 add r0, pc                                    |     r0 = 0x674d2;
    0x00033a4a blx 0x20b70                                   |     fcn_00020b70 ();
                                                             |     do {
                                                             | label_5:
    0x00033a4e movs r0, 0                                    |         r0 = 0;
    0x00033a50 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
                                                             | label_3:
    0x00033a54 ldr r1, [pc, 0x30]                            |         
    0x00033a56 ldr r2, [pc, 0x34]                            |         
    0x00033a58 ldr r0, [pc, 0x34]                            |         
    0x00033a5a add r1, pc                                    |         
    0x00033a5c add r2, pc                                    |         r2 = 0x674ee;
    0x00033a5e add.w r1, r1, 0x24c                           |         r1 = 0x67732;
    0x00033a62 add r0, pc                                    |         r0 = 0x674f6;
    0x00033a64 blx 0x20b70                                   |         fcn_00020b70 ();
    0x00033a68 b 0x33a4e                                     |         
                                                             |     } while (1);
                                                             | label_6:
    0x00033a6a ldr r2, [pc, 0xc]                             |     r2 = *(0x33a7a);
    0x00033a6c ldr.w r2, [r8, r2]                            |     r2 = *((r8 + r2));
    0x00033a70 ldr r5, [r2]                                  |     r5 = *(0x33a7a);
    0x00033a72 b 0x339da                                     |     goto label_1;
                                                             | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.2202.0 @ 0x343a4 */
                                                                     | #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;
    0x000343a4 push.w {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x000343a8 ldr.w sb, [pc, 0xcc]                                  |     
    0x000343ac add sb, pc                                            |     sb = 0x68828;
                                                                     |     if (r0 != 0) {
    0x000343ae cbz r0, 0x343c2                                       |         
    0x000343b0 ldr r3, [pc, 0xc8]                                    |         
    0x000343b2 mov r7, r2                                            |         r7 = r2;
    0x000343b4 ldr r2, [r0]                                          |         r2 = *(r0);
    0x000343b6 mov r5, r0                                            |         r5 = r0;
    0x000343b8 ldr.w r3, [sb, r3]                                    |         r3 = *((sb + r3));
    0x000343bc ldr r3, [r3]                                          |         r3 = *(0x3447c);
    0x000343be cmp r2, r3                                            |         
                                                                     |         if (r2 == r3) {
    0x000343c0 beq 0x343dc                                           |             goto label_2;
                                                                     |         }
                                                                     |     }
    0x000343c2 ldr r1, [pc, 0xbc]                                    |     
    0x000343c4 ldr r2, [pc, 0xbc]                                    |     
    0x000343c6 ldr r0, [pc, 0xc0]                                    |     
    0x000343c8 add r1, pc                                            |     
    0x000343ca add r2, pc                                            |     r2 = 0x68852;
    0x000343cc add.w r1, r1, 0x324                                   |     r1 = 0x68b72;
    0x000343d0 add r0, pc                                            |     r0 = 0x6885e;
    0x000343d2 blx 0x20b70                                           |     fcn_00020b70 ();
                                                                     |     do {
                                                                     | label_1:
    0x000343d6 movs r0, 0                                            |         r0 = 0;
    0x000343d8 pop.w {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
    0x000343da ldrh r0, [r7, 0x3e]                                   |         r0 = *((r7 + 0x3e));
                                                                     | label_2:
    0x000343dc mov r6, r1                                            |         r6 = r1;
    0x000343de bl 0x4acc4                                            |         r0 = gst_mini_object_is_writable ();
                                                                     |         if (r0 == 0) {
    0x000343e2 cbz r0, 0x34444                                       |             goto label_3;
                                                                     |         }
    0x000343e4 cmp r6, 0                                             |         
                                                                     |         if (r6 == 0) {
    0x000343e6 beq 0x34460                                           |             goto label_4;
                                                                     |         }
    0x000343e8 ldr r3, [r5, 0x24]                                    |         r3 = *((r5 + 0x24));
    0x000343ea ldr.w r8, [r3, 4]                                     |         r8 = *((r3 + 4));
    0x000343ee cmp.w r8, 0                                           |         
    0x000343f0 lsrs r0, r0, 0x1c                                     |         r0 >>= 0x1c;
                                                                     |         if (r0 == r0) {
    0x000343f2 beq 0x3445a                                           |             goto label_5;
                                                                     |         }
    0x000343f4 movs r4, 0                                            |         r4 = 0;
    0x000343f6 b 0x3440c                                             |         goto label_6;
                                                                     | label_0:
    0x000343f8 mov r2, r7                                            |         r2 = r7;
    0x000343fa mov r0, sl                                            |         r0 = sl;
    0x000343fc mov r1, fp                                            |         r1 = fp;
    0x000343fe adds r4, 1                                            |         r4++;
    0x00034400 blx r6                                                |         r0 = uint32_t (*r6)(uint32_t, uint32_t, uint32_t) (r0, r1, r2);
    0x00034402 cmp r0, 0                                             |         
    0x00034404 beq 0x343d6                                           |         
                                                                     |     } while (r0 == 0);
    0x00034406 cmp r8, r4                                            |     
                                                                     |     if (r8 == r4) {
    0x00034408 beq 0x3445a                                           |         goto label_5;
                                                                     |     }
    0x0003440a ldr r3, [r5, 0x24]                                    |     r3 = *((r5 + 0x24));
                                                                     | label_6:
    0x0003440c ldr r3, [r3]                                          |     r3 = *(r3);
    0x0003440e dmb ish                                               |     __asm ("dmb ish");
    0x00034412 add.w r3, r3, r4, lsl 3                               |     r3 += (r4 << 3);
    0x00034416 ldr r3, [r3, 4]                                       |     r3 = *((r3 + 4));
    0x00034418 dmb ish                                               |     __asm ("dmb ish");
    0x0003441c ldr r2, [r5, 0x24]                                    |     r2 = *((r5 + 0x24));
    0x0003441e mov sl, r3                                            |     sl = r3;
    0x00034420 ldr r2, [r2]                                          |     r2 = *(r2);
    0x00034422 ldr.w fp, [r2, r4, lsl 3]                             |     offset_0 = r4 << 3;
                                                                     |     fp = *((r2 + offset_0));
    0x00034426 cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x00034428 bne 0x343f8                                           |         goto label_0;
                                                                     |     }
    0x0003442a ldr r3, [pc, 0x60]                                    |     r3 = *(0x3448e);
    0x0003442c ldr.w r3, [sb, r3]                                    |     r3 = *((sb + r3));
    0x00034430 ldr r0, [r3]                                          |     r0 = *(0x3448e);
    0x00034432 bl 0x35aa0                                            |     gst_caps_features_copy ();
    0x00034436 mov r1, r4                                            |     r1 = r4;
    0x00034438 mov sl, r0                                            |     sl = r0;
    0x0003443a mov r2, r0                                            |     r2 = r0;
    0x0003443c mov r0, r5                                            |     r0 = r5;
    0x0003443e bl 0x32ff8                                            |     gst_caps_set_features ();
    0x00034442 b 0x343f8                                             |     goto label_0;
                                                                     | label_3:
    0x00034444 ldr r1, [pc, 0x48]                                    |     
    0x00034446 ldr r2, [pc, 0x4c]                                    |     
    0x00034448 ldr r0, [pc, 0x4c]                                    |     
    0x0003444a add r1, pc                                            |     
    0x0003444c add r2, pc                                            |     r2 = 0x688e6;
    0x0003444e add.w r1, r1, 0x324                                   |     r1 = 0x68c02;
    0x00034452 add r0, pc                                            |     r0 = 0x688ee;
    0x00034454 blx 0x20b70                                           |     fcn_00020b70 ();
    0x00034458 b 0x343d6                                             |     goto label_1;
                                                                     | label_5:
    0x0003445a movs r0, 1                                            |     r0 = 1;
    0x0003445c pop.w {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                     | label_4:
    0x00034460 ldr r1, [pc, 0x38]                                    |     
    0x00034462 ldr r2, [pc, 0x3c]                                    |     
    0x00034464 ldr r0, [pc, 0x3c]                                    |     
    0x00034466 add r1, pc                                            |     
    0x00034468 add r2, pc                                            |     r2 = 0x6890e;
    0x0003446a add.w r1, r1, 0x324                                   |     r1 = 0x68c2a;
    0x0003446e add r0, pc                                            |     r0 = 0x68916;
    0x00034470 blx 0x20b70                                           |     fcn_00020b70 ();
    0x00034474 b 0x343d6                                             |     goto label_1;
                                                                     | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.2202.0 @ 0x32ba4 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) sym.gst_caps_merge_structure ()              | void gst_caps_merge_structure (int16_t arg1, int16_t arg2) {
                                                         |     int16_t var_0h;
                                                         |     int16_t var_4h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x00032ba4 ldr r2, [pc, 0xe0]                        |     
    0x00032ba6 push.w {r4, r5, r6, r7, r8, lr}           |     
    0x00032ba8 rors r0, r6                               |     __asm ("rors r0, r6");
    0x00032baa sub sp, 8                                 |     
    0x00032bac add r2, pc                                |     r2 = 0x65838;
                                                         |     if (r0 != 0) {
    0x00032bae cbz r0, 0x32bc0                           |         
    0x00032bb0 ldr r3, [pc, 0xd8]                        |         
    0x00032bb2 mov r8, r1                                |         r8 = r1;
    0x00032bb4 ldr r1, [r0]                              |         r1 = *(r0);
    0x00032bb6 mov r5, r0                                |         r5 = r0;
    0x00032bb8 ldr r3, [r2, r3]                          |         r3 = *((r2 + r3));
    0x00032bba ldr r3, [r3]                              |         r3 = *(0x32c8c);
    0x00032bbc cmp r1, r3                                |         
                                                         |         if (r1 == r3) {
    0x00032bbe beq 0x32bdc                               |             goto label_2;
                                                         |         }
                                                         |     }
    0x00032bc0 ldr r1, [pc, 0xcc]                        |     
    0x00032bc2 movs r5, 0                                |     r5 = 0;
    0x00032bc4 ldr r2, [pc, 0xcc]                        |     
    0x00032bc6 ldr r0, [pc, 0xd0]                        |     
    0x00032bc8 add r1, pc                                |     r1 = 0x6585c;
    0x00032bca add r2, pc                                |     r2 = 0x65862;
    0x00032bcc adds r1, 0x68                             |     r1 += 0x68;
    0x00032bce add r0, pc                                |     r0 = 0x6586c;
    0x00032bd0 blx 0x20b70                               |     fcn_00020b70 ();
                                                         |     do {
                                                         | label_1:
    0x00032bd4 mov r0, r5                                |         r0 = r5;
    0x00032bd6 add sp, 8                                 |         
    0x00032bd8 pop.w {r4, r5, r6, r7, r8, pc}            |         
                                                         | label_2:
    0x00032bdc cmp.w r8, 0                               |         
    0x00032be0 beq 0x32bd4                               |         
                                                         |     } while (r8 == 0);
    0x00032be2 ldr r3, [r0, 0xc]                         |     r3 = *((r0 + 0xc));
    0x00032be4 lsls r1, r3, 0x1b                         |     r1 = r3 << 0x1b;
                                                         |     if (r1 < r3) {
    0x00032be6 bmi 0x32c3a                               |         goto label_3;
                                                         |     }
    0x00032be8 ldr r3, [r0, 0x24]                        |     r3 = *((r0 + 0x24));
    0x00032bea ldr r4, [r3, 4]                           |     r4 = *((r3 + 4));
    0x00032bec subs r4, 1                                |     r4--;
                                                         |     if (r4 < 1) {
    0x00032bee bmi 0x32c48                               |         goto label_4;
                                                         |     }
    0x00032bf0 ldr r1, [pc, 0xa8]                        |     r1 = *(0x32c9c);
    0x00032bf2 ldr r7, [r2, r1]                          |     r7 = *((r2 + r1));
    0x00032bf4 b 0x32c06                                 |     
                                                         |     while (r3 != 0) {
    0x00032bf6 ldr r1, [r7]                              |         r1 = *(r7);
    0x00032bf8 subs r4, 1                                |         r4--;
    0x00032bfa bl 0x35724                                |         r0 = gst_caps_features_is_equal ();
                                                         |         if (r0 != 0) {
    0x00032bfe cbnz r0, 0x32c2e                          |             goto label_5;
                                                         |         }
                                                         | label_0:
    0x00032c00 adds r3, r4, 1                            |         r3 = r4 + 1;
                                                         |         if (r3 == r4) {
    0x00032c02 beq 0x32c48                               |             goto label_4;
                                                         |         }
    0x00032c04 ldr r3, [r5, 0x24]                        |         r3 = *((r5 + 0x24));
    0x00032c06 ldr r3, [r3]                              |         r3 = *(r3);
    0x00032c08 ldr.w r6, [r3, r4, lsl 3]                 |         offset_0 = r4 << 3;
                                                         |         r6 = *((r3 + offset_0));
    0x00032c0c dmb ish                                   |         __asm ("dmb ish");
    0x00032c10 add.w r3, r3, r4, lsl 3                   |         r3 += (r4 << 3);
    0x00032c14 ldr r3, [r3, 4]                           |         r3 = *((r3 + 4));
    0x00032c16 dmb ish                                   |         __asm ("dmb ish");
    0x00032c1a mov r0, r3                                |         r0 = r3;
    0x00032c1c cmp r3, 0                                 |         
    0x00032c1e bne 0x32bf6                               |         
                                                         |     }
    0x00032c20 ldr r0, [r7]                              |     r0 = *(r7);
    0x00032c22 subs r4, 1                                |     r4--;
    0x00032c24 mov r1, r0                                |     r1 = r0;
    0x00032c26 bl 0x35724                                |     r0 = gst_caps_features_is_equal ();
    0x00032c2a cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00032c2c beq 0x32c00                               |         goto label_0;
                                                         |     }
                                                         | label_5:
    0x00032c2e mov r1, r6                                |     r1 = r6;
    0x00032c30 mov r0, r8                                |     r0 = r8;
    0x00032c32 bl 0x644f0                                |     gst_structure_is_subset ();
    0x00032c34 mrrc2 p8, 0, r2, sp, c0                   |     __asm ("mrrc2 p8, 0, r2, sp, c0");
                                                         |     if (r0 == 0) {
    0x00032c38 beq 0x32c00                               |         goto label_0;
                                                         |     }
                                                         | label_3:
    0x00032c3a mov r0, r8                                |     r0 = r8;
    0x00032c3c bl 0x60df4                                |     gst_structure_free ();
    0x00032c40 mov r0, r5                                |     r0 = r5;
    0x00032c42 add sp, 8                                 |     
    0x00032c44 pop.w {r4, r5, r6, r7, r8, pc}            |     
                                                         | label_4:
    0x00032c48 mov r0, r5                                |     r0 = r5;
    0x00032c4a bl 0x4adb0                                |     r0 = gst_mini_object_make_writable ();
    0x00032c4e adds r4, r0, 4                            |     r4 = r0 + 4;
    0x00032c50 mov r5, r0                                |     r5 = r0;
    0x00032c52 movs r3, 0                                |     r3 = 0;
    0x00032c54 mov r1, r4                                |     r1 = r4;
    0x00032c56 mov r0, r8                                |     r0 = r8;
    0x00032c58 str.w r8, [sp]                            |     __asm ("str.w r8, [sp]");
    0x00032c5c str r3, [sp, 4]                           |     var_4h = r3;
    0x00032c5e bl 0x61624                                |     r0 = gst_structure_set_parent_refcount ();
    0x00032c62 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00032c64 beq 0x32bd4                               |         goto label_1;
                                                         |     }
    0x00032c66 ldr r0, [sp, 4]                           |     r0 = var_4h;
                                                         |     if (r0 == 0) {
    0x00032c68 cbz r0, 0x32c74                           |         goto label_6;
                                                         |     }
    0x00032c6a mov r1, r4                                |     r1 = r4;
    0x00032c6c bl 0x353a4                                |     r0 = gst_caps_features_set_parent_refcount ();
    0x00032c70 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00032c72 beq 0x32bd4                               |         goto label_1;
                                                         |     }
                                                         | label_6:
    0x00032c74 ldr r0, [r5, 0x24]                        |     r0 = *((r5 + 0x24));
    0x00032c76 movs r2, 1                                |     r2 = 1;
    0x00032c78 mov r1, sp                                |     r1 = sp;
    0x00032c7a blx 0x216ec                               |     fcn_000216ec ();
    0x00032c7e mov r0, r5                                |     r0 = r5;
    0x00032c80 add sp, 8                                 |     
    0x00032c82 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-80367616.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.2202.0 @ 0x32ca0 */
                                                                 | #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;
    0x00032ca0 svcmi 0xf0e92d                                    |     __asm ("svcmi 0xf0e92d");
    0x00032ca4 sub sp, 0xc                                       |     
    0x00032ca6 ldr r7, [pc, 0x100]                               |     
    0x00032ca8 add r7, pc                                        |     r7 = 0x65a56;
                                                                 |     if (r0 != 0) {
    0x00032caa cbz r0, 0x32cbc                                   |         
    0x00032cac ldr r3, [pc, 0xfc]                                |         
    0x00032cae mov sb, r2                                        |         sb = r2;
    0x00032cb0 ldr r2, [r0]                                      |         r2 = *(r0);
    0x00032cb2 mov r5, r0                                        |         r5 = r0;
    0x00032cb4 ldr r3, [r7, r3]                                  |         r3 = *((r7 + r3));
    0x00032cb6 ldr r3, [r3]                                      |         r3 = *(0x32dac);
    0x00032cb8 cmp r2, r3                                        |         
                                                                 |         if (r2 == r3) {
    0x00032cba beq 0x32cd8                                       |             goto label_3;
                                                                 |         }
                                                                 |     }
    0x00032cbc ldr r1, [pc, 0xf0]                                |     
    0x00032cbe movs r5, 0                                        |     r5 = 0;
    0x00032cc0 ldr r2, [pc, 0xf0]                                |     
    0x00032cc2 ldr r0, [pc, 0xf4]                                |     
    0x00032cc4 add r1, pc                                        |     r1 = 0x65a78;
    0x00032cc6 add r2, pc                                        |     r2 = 0x65a7e;
    0x00032cc8 adds r1, 0x84                                     |     r1 += 0x84;
    0x00032cca add r0, pc                                        |     r0 = 0x65a88;
    0x00032ccc blx 0x20b70                                       |     fcn_00020b70 ();
                                                                 |     do {
                                                                 | label_1:
    0x00032cd0 mov r0, r5                                        |         r0 = r5;
    0x00032cd2 add sp, 0xc                                       |         
    0x00032cd4 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_3:
    0x00032cd8 mov r8, r1                                        |         r8 = r1;
    0x00032cda cmp r1, 0                                         |         
    0x00032cdc beq 0x32cd0                                       |         
                                                                 |     } while (r1 == 0);
    0x00032cde ldr r3, [r0, 0xc]                                 |     r3 = *((r0 + 0xc));
    0x00032ce0 lsls r3, r3, 0x1b                                 |     r3 <<= 0x1b;
                                                                 |     if (r3 < r3) {
    0x00032ce2 bmi 0x32d48                                       |         goto label_4;
                                                                 |     }
    0x00032ce4 mov r6, sb                                        |     r6 = sb;
    0x00032ce6 cmp.w sb, 0                                       |     
                                                                 |     if (sb == 0) {
    0x00032cea beq 0x32da0                                       |         goto label_5;
                                                                 |     }
                                                                 | label_2:
    0x00032cec ldr r3, [r5, 0x24]                                |     r3 = *((r5 + 0x24));
    0x00032cee ldr r4, [r3, 4]                                   |     r4 = *((r3 + 4));
    0x00032cf0 subs r4, 1                                        |     r4--;
                                                                 |     if (r4 >= 1) {
    0x00032cf2 bpl 0x32cfc                                       |         goto label_6;
                                                                 |     }
    0x00032cf4 b 0x32d62                                         |     goto label_7;
                                                                 |     do {
                                                                 | label_0:
    0x00032cf6 subs r4, 1                                        |         r4--;
                                                                 |         if (r4 <= 1) {
    0x00032cf8 blo 0x32d62                                       |             goto label_7;
                                                                 |         }
    0x00032cfa ldr r3, [r5, 0x24]                                |         r3 = *((r5 + 0x24));
                                                                 | label_6:
    0x00032cfc ldr r3, [r3]                                      |         r3 = *(r3);
    0x00032cfe ldr r2, [pc, 0xbc]                                |         r2 = *(0x32dbe);
    0x00032d00 ldr.w sl, [r3, r4, lsl 3]                         |         offset_0 = r4 << 3;
                                                                 |         sl = *((r3 + offset_0));
    0x00032d04 dmb ish                                           |         __asm ("dmb ish");
    0x00032d06 ldrh r3, [r3, 0x3a]                               |         r3 = *((r3 + 0x3a));
    0x00032d08 add.w r3, r3, r4, lsl 3                           |         r3 += (r4 << 3);
    0x00032d0c ldr r3, [r3, 4]                                   |         r3 = *((r3 + 4));
    0x00032d0e dmb ish                                           |         __asm ("dmb ish");
    0x00032d12 mov fp, r3                                        |         
                                                                 |         if (r3 == 0) {
    0x00032d14 cbnz r3, 0x32d1c                                  |             
    0x00032d16 ldr r3, [r7, r2]                                  |             r3 = *((r7 + r2));
    0x00032d18 ldr.w fp, [r3]                                    |             fp = *(r3);
                                                                 |         }
    0x00032d1c mov r0, r6                                        |         r0 = r6;
    0x00032d1e bl 0x35804                                        |         r0 = gst_caps_features_is_any ();
    0x00032d22 mov r3, r0                                        |         r3 = r0;
    0x00032d24 mov r0, fp                                        |         r0 = fp;
                                                                 |         if (r3 == 0) {
    0x00032d26 cbz r3, 0x32d30                                   |             goto label_8;
                                                                 |         }
    0x00032d28 bl 0x35804                                        |         r0 = gst_caps_features_is_any ();
    0x00032d2c cmp r0, 0                                         |         
    0x00032d2e beq 0x32cf6                                       |         
                                                                 |     } while (r0 == 0);
                                                                 | label_8:
    0x00032d30 mov r0, r6                                        |     r0 = r6;
    0x00032d32 mov r1, fp                                        |     r1 = fp;
    0x00032d34 bl 0x35724                                        |     r0 = gst_caps_features_is_equal ();
    0x00032d38 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00032d3a beq 0x32cf6                                       |         goto label_0;
                                                                 |     }
    0x00032d3c mov r1, sl                                        |     r1 = sl;
    0x00032d3e mov r0, r8                                        |     r0 = r8;
    0x00032d40 bl 0x644f0                                        |     r0 = gst_structure_is_subset ();
    0x00032d44 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00032d46 beq 0x32cf6                                       |         goto label_0;
                                                                 |     }
                                                                 | label_4:
    0x00032d48 mov r0, r8                                        |     r0 = r8;
    0x00032d4a bl 0x60df4                                        |     gst_structure_free ();
    0x00032d4e cmp.w sb, 0                                       |     
                                                                 |     if (sb == 0) {
    0x00032d52 beq 0x32cd0                                       |         goto label_1;
                                                                 |     }
    0x00032d54 mov r0, sb                                        |     r0 = sb;
    0x00032d56 bl 0x352a8                                        |     gst_caps_features_free ();
    0x00032d5a mov r0, r5                                        |     r0 = r5;
    0x00032d5c add sp, 0xc                                       |     
    0x00032d5e pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_7:
    0x00032d62 mov r0, r5                                        |     r0 = r5;
    0x00032d64 bl 0x4adb0                                        |     r0 = gst_mini_object_make_writable ();
    0x00032d68 mov r5, r0                                        |     r5 = r0;
    0x00032d6a mov r0, r8                                        |     r0 = r8;
    0x00032d6c adds r4, r5, 4                                    |     r4 = r5 + 4;
    0x00032d6e str.w r8, [sp]                                    |     __asm ("str.w r8, [sp]");
    0x00032d72 mov r1, r4                                        |     r1 = r4;
    0x00032d74 str.w sb, [sp, 4]                                 |     __asm ("str.w sb, [var_4h]");
    0x00032d78 bl 0x61624                                        |     r0 = gst_structure_set_parent_refcount ();
    0x00032d7c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00032d7e beq 0x32cd0                                       |         goto label_1;
                                                                 |     }
    0x00032d80 ldr r0, [sp, 4]                                   |     r0 = var_4h;
                                                                 |     if (r0 == 0) {
    0x00032d82 cbz r0, 0x32d8e                                   |         goto label_9;
                                                                 |     }
    0x00032d84 mov r1, r4                                        |     r1 = r4;
    0x00032d86 bl 0x353a4                                        |     r0 = gst_caps_features_set_parent_refcount ();
    0x00032d8a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00032d8c beq 0x32cd0                                       |         goto label_1;
                                                                 |     }
                                                                 | label_9:
    0x00032d8e ldr r0, [r5, 0x24]                                |     r0 = *((r5 + 0x24));
    0x00032d90 movs r2, 1                                        |     r2 = 1;
    0x00032d92 mov r1, sp                                        |     r1 = sp;
    0x00032d94 blx 0x216ec                                       |     fcn_000216ec ();
    0x00032d98 mov r0, r5                                        |     r0 = r5;
    0x00032d9a add sp, 0xc                                       |     
    0x00032d9c pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_5:
    0x00032da0 ldr r3, [pc, 0x18]                                |     r3 = *(0x32dbc);
    0x00032da2 ldr r3, [r7, r3]                                  |     r3 = *((r7 + r3));
    0x00032da4 ldr r6, [r3]                                      |     r6 = *(0x32dbc);
    0x00032da6 b 0x32cec                                         |     goto label_2;
                                                                 | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.2202.0 @ 0x32ca0 */
                                                                     | #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;
    0x00032ca0 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x00032ca4 sub sp, 0xc                                           |     
    0x00032ca6 ldr r7, [pc, 0x100]                                   |     
    0x00032ca8 add r7, pc                                            |     r7 = 0x65a56;
                                                                     |     if (r0 != 0) {
    0x00032caa cbz r0, 0x32cbc                                       |         
    0x00032cac ldr r3, [pc, 0xfc]                                    |         
    0x00032cae mov sb, r2                                            |         sb = r2;
    0x00032cb0 ldr r2, [r0]                                          |         r2 = *(r0);
    0x00032cb2 mov r5, r0                                            |         r5 = r0;
    0x00032cb4 ldr r3, [r7, r3]                                      |         r3 = *((r7 + r3));
    0x00032cb6 ldr r3, [r3]                                          |         r3 = *(0x32dac);
    0x00032cb8 cmp r2, r3                                            |         
                                                                     |         if (r2 == r3) {
    0x00032cba beq 0x32cd8                                           |             goto label_3;
                                                                     |         }
                                                                     |     }
    0x00032cbc ldr r1, [pc, 0xf0]                                    |     
    0x00032cbe movs r5, 0                                            |     r5 = 0;
    0x00032cc0 ldr r2, [pc, 0xf0]                                    |     
    0x00032cc2 ldr r0, [pc, 0xf4]                                    |     
    0x00032cc4 add r1, pc                                            |     r1 = 0x65a78;
    0x00032cc6 add r2, pc                                            |     r2 = 0x65a7e;
    0x00032cc8 adds r1, 0x84                                         |     r1 += 0x84;
    0x00032cca add r0, pc                                            |     r0 = 0x65a88;
    0x00032ccc blx 0x20b70                                           |     fcn_00020b70 ();
                                                                     |     do {
                                                                     | label_1:
    0x00032cd0 mov r0, r5                                            |         r0 = r5;
    0x00032cd2 add sp, 0xc                                           |         
    0x00032cd4 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_3:
    0x00032cd8 mov r8, r1                                            |         r8 = r1;
    0x00032cda cmp r1, 0                                             |         
    0x00032cdc beq 0x32cd0                                           |         
                                                                     |     } while (r1 == 0);
    0x00032cde ldr r3, [r0, 0xc]                                     |     r3 = *((r0 + 0xc));
    0x00032ce0 lsls r3, r3, 0x1b                                     |     r3 <<= 0x1b;
                                                                     |     if (r3 < r3) {
    0x00032ce2 bmi 0x32d48                                           |         goto label_4;
                                                                     |     }
    0x00032ce4 mov r6, sb                                            |     r6 = sb;
    0x00032ce6 cmp.w sb, 0                                           |     
                                                                     |     if (sb == 0) {
    0x00032cea beq 0x32da0                                           |         goto label_5;
                                                                     |     }
                                                                     | label_2:
    0x00032cec ldr r3, [r5, 0x24]                                    |     r3 = *((r5 + 0x24));
    0x00032cee ldr r4, [r3, 4]                                       |     r4 = *((r3 + 4));
    0x00032cf0 subs r4, 1                                            |     r4--;
                                                                     |     if (r4 >= 1) {
    0x00032cf2 bpl 0x32cfc                                           |         goto label_6;
                                                                     |     }
    0x00032cf4 b 0x32d62                                             |     goto label_7;
                                                                     |     do {
                                                                     | label_0:
    0x00032cf6 subs r4, 1                                            |         r4--;
                                                                     |         if (r4 <= 1) {
    0x00032cf8 blo 0x32d62                                           |             goto label_7;
                                                                     |         }
    0x00032cfa ldr r3, [r5, 0x24]                                    |         r3 = *((r5 + 0x24));
                                                                     | label_6:
    0x00032cfc ldr r3, [r3]                                          |         r3 = *(r3);
    0x00032cfe ldr r2, [pc, 0xbc]                                    |         r2 = *(0x32dbe);
    0x00032d00 ldr.w sl, [r3, r4, lsl 3]                             |         offset_0 = r4 << 3;
                                                                     |         sl = *((r3 + offset_0));
    0x00032d04 dmb ish                                               |         __asm ("dmb ish");
    0x00032d06 ldrh r3, [r3, 0x3a]                                   |         r3 = *((r3 + 0x3a));
    0x00032d08 add.w r3, r3, r4, lsl 3                               |         r3 += (r4 << 3);
    0x00032d0c ldr r3, [r3, 4]                                       |         r3 = *((r3 + 4));
    0x00032d0e dmb ish                                               |         __asm ("dmb ish");
    0x00032d12 mov fp, r3                                            |         
                                                                     |         if (r3 == 0) {
    0x00032d14 cbnz r3, 0x32d1c                                      |             
    0x00032d16 ldr r3, [r7, r2]                                      |             r3 = *((r7 + r2));
    0x00032d18 ldr.w fp, [r3]                                        |             fp = *(r3);
                                                                     |         }
    0x00032d1c mov r0, r6                                            |         r0 = r6;
    0x00032d1e bl 0x35804                                            |         r0 = gst_caps_features_is_any ();
    0x00032d22 mov r3, r0                                            |         r3 = r0;
    0x00032d24 mov r0, fp                                            |         r0 = fp;
                                                                     |         if (r3 == 0) {
    0x00032d26 cbz r3, 0x32d30                                       |             goto label_8;
                                                                     |         }
    0x00032d28 bl 0x35804                                            |         r0 = gst_caps_features_is_any ();
    0x00032d2c cmp r0, 0                                             |         
    0x00032d2e beq 0x32cf6                                           |         
                                                                     |     } while (r0 == 0);
                                                                     | label_8:
    0x00032d30 mov r0, r6                                            |     r0 = r6;
    0x00032d32 mov r1, fp                                            |     r1 = fp;
    0x00032d34 bl 0x35724                                            |     r0 = gst_caps_features_is_equal ();
    0x00032d38 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x00032d3a beq 0x32cf6                                           |         goto label_0;
                                                                     |     }
    0x00032d3c mov r1, sl                                            |     r1 = sl;
    0x00032d3e mov r0, r8                                            |     r0 = r8;
    0x00032d40 bl 0x644f0                                            |     r0 = gst_structure_is_subset ();
    0x00032d44 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x00032d46 beq 0x32cf6                                           |         goto label_0;
                                                                     |     }
                                                                     | label_4:
    0x00032d48 mov r0, r8                                            |     r0 = r8;
    0x00032d4a bl 0x60df4                                            |     gst_structure_free ();
    0x00032d4e cmp.w sb, 0                                           |     
                                                                     |     if (sb == 0) {
    0x00032d52 beq 0x32cd0                                           |         goto label_1;
                                                                     |     }
    0x00032d54 mov r0, sb                                            |     r0 = sb;
    0x00032d56 bl 0x352a8                                            |     gst_caps_features_free ();
    0x00032d5a mov r0, r5                                            |     r0 = r5;
    0x00032d5c add sp, 0xc                                           |     
    0x00032d5e pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                     | label_7:
    0x00032d62 mov r0, r5                                            |     r0 = r5;
    0x00032d64 bl 0x4adb0                                            |     r0 = gst_mini_object_make_writable ();
    0x00032d68 mov r5, r0                                            |     r5 = r0;
    0x00032d6a mov r0, r8                                            |     r0 = r8;
    0x00032d6c adds r4, r5, 4                                        |     r4 = r5 + 4;
    0x00032d6e str.w r8, [sp]                                        |     __asm ("str.w r8, [sp]");
    0x00032d72 mov r1, r4                                            |     r1 = r4;
    0x00032d74 str.w sb, [sp, 4]                                     |     __asm ("str.w sb, [var_4h]");
    0x00032d78 bl 0x61624                                            |     r0 = gst_structure_set_parent_refcount ();
    0x00032d7c cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x00032d7e beq 0x32cd0                                           |         goto label_1;
                                                                     |     }
    0x00032d80 ldr r0, [sp, 4]                                       |     r0 = var_4h;
                                                                     |     if (r0 == 0) {
    0x00032d82 cbz r0, 0x32d8e                                       |         goto label_9;
                                                                     |     }
    0x00032d84 mov r1, r4                                            |     r1 = r4;
    0x00032d86 bl 0x353a4                                            |     r0 = gst_caps_features_set_parent_refcount ();
    0x00032d8a cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x00032d8c beq 0x32cd0                                           |         goto label_1;
                                                                     |     }
                                                                     | label_9:
    0x00032d8e ldr r0, [r5, 0x24]                                    |     r0 = *((r5 + 0x24));
    0x00032d90 movs r2, 1                                            |     r2 = 1;
    0x00032d92 mov r1, sp                                            |     r1 = sp;
    0x00032d94 blx 0x216ec                                           |     fcn_000216ec ();
    0x00032d98 mov r0, r5                                            |     r0 = r5;
    0x00032d9a add sp, 0xc                                           |     
    0x00032d9c pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                     | label_5:
    0x00032da0 ldr r3, [pc, 0x18]                                    |     r3 = *(0x32dbc);
    0x00032da2 ldr r3, [r7, r3]                                      |     r3 = *((r7 + r3));
    0x00032da4 ldr r6, [r3]                                          |     r6 = *(0x32dbc);
    0x00032da6 b 0x32cec                                             |     goto label_2;
                                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.2202.0 @ 0x33eb4 */
                                                                 | #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_2;
                                                                 |     int16_t var_8h_2;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_1ch_2;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_40h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00033eb4 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00033eb8 sub sp, 0x4c                                      |     
    0x00033eba ldr.w sb, [pc, 0x250]                             |     
    0x00033ebe add sb, pc                                        |     sb = 0x67fd0;
                                                                 |     if (r0 != 0) {
    0x00033ec0 cbz r0, 0x33ed2                                   |         
    0x00033ec2 ldr r3, [pc, 0x24c]                               |         
    0x00033ec4 mov r6, r0                                        |         r6 = r0;
    0x00033ec6 ldr r2, [r0]                                      |         r2 = *(r0);
    0x00033ec8 ldr.w r3, [sb, r3]                                |         r3 = *((sb + r3));
    0x00033ecc ldr r3, [r3]                                      |         r3 = *(0x34112);
    0x00033ece cmp r2, r3                                        |         
                                                                 |         if (r2 == r3) {
    0x00033ed0 beq 0x33ef0                                       |             goto label_9;
                                                                 |         }
                                                                 |     }
    0x00033ed2 ldr r1, [pc, 0x240]                               |     
    0x00033ed4 movs r6, 0                                        |     r6 = 0;
    0x00033ed6 ldr r2, [pc, 0x240]                               |     
    0x00033ed8 ldr r0, [pc, 0x240]                               |     
    0x00033eda add r1, pc                                        |     
    0x00033edc add r2, pc                                        |     r2 = 0x67ffa;
    0x00033ede add.w r1, r1, 0x2cc                               |     r1 = gst_tag_list_get_uint64_index;
    0x00033ee2 add r0, pc                                        |     r0 = 0x68002;
    0x00033ee4 blx 0x20b70                                       |     fcn_00020b70 ();
                                                                 |     do {
                                                                 | label_0:
    0x00033ee8 mov r0, r6                                        |         r0 = r6;
    0x00033eea add sp, 0x4c                                      |         
    0x00033eec pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_9:
    0x00033ef0 ldr r3, [r0, 0x24]                                |         r3 = *((r0 + 0x24));
    0x00033ef2 ldr r3, [r3, 4]                                   |         r3 = *((r3 + 4));
    0x00033ef4 cmp r3, 0                                         |         
    0x00033ef6 beq 0x33ee8                                       |         
                                                                 |     } while (r3 == 0);
    0x00033ef8 subs r4, r3, 1                                    |     r4 = r3 - 1;
                                                                 |     if (r4 == r3) {
    0x00033efa beq 0x33ee8                                       |         goto label_0;
                                                                 |     }
    0x00033efc bl 0x4adb0                                        |     gst_mini_object_make_writable ();
    0x00033f00 ldr r1, [pc, 0x21c]                               |     
    0x00033f02 mov r6, r0                                        |     r6 = r0;
    0x00033f04 ldr r0, [r0, 0x24]                                |     r0 = *((r0 + 0x24));
    0x00033f06 add r1, pc                                        |     r1 = 0x6802a;
    0x00033f08 blx 0x1febc                                       |     fcn_0001febc ();
    0x00033f0c cmp r4, 0                                         |     
                                                                 |     if (r4 < 0) {
    0x00033f0e blt 0x33ee8                                       |         goto label_0;
                                                                 |     }
    0x00033f10 add r3, sp, 0x20                                  |     r3 += var_20h;
    0x00033f12 mov r7, r4                                        |     r7 = r4;
    0x00033f14 str r3, [sp]                                      |     *(sp) = r3;
    0x00033f16 mov fp, r4                                        |     
    0x00033f18 ldr r3, [pc, 0x208]                               |     
    0x00033f1a add r3, pc                                        |     r3 = 0x68042;
    0x00033f1c str r3, [sp, 0xc]                                 |     var_ch = r3;
                                                                 | label_3:
    0x00033f1e ldr r3, [r6, 0x24]                                |     r3 = *((r6 + 0x24));
    0x00033f20 lsls r2, r7, 3                                    |     r2 = r7 << 3;
    0x00033f22 str r2, [sp, 0x10]                                |     var_10h = r2;
    0x00033f24 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00033f26 adds r2, r3, r2                                   |     r2 = r3 + r2;
    0x00033f28 ldr.w r5, [r3, r7, lsl 3]                         |     offset_0 = r7 << 3;
                                                                 |     r5 = *((r3 + offset_0));
    0x00033f2c dmb ish                                           |     __asm ("dmb ish");
    0x00033f30 ldr r3, [r2, 4]                                   |     r3 = *((r2 + 4));
    0x00033f32 dmb ish                                           |     __asm ("dmb ish");
                                                                 |     if (r3 == 0) {
    0x00033f36 cbnz r3, 0x33f40                                  |         
    0x00033f38 ldr r3, [pc, 0x1ec]                               |         
    0x00033f3a ldr.w r3, [sb, r3]                                |         r3 = *((sb + r3));
    0x00033f3c adds r0, 3                                        |         r0 += 3;
    0x00033f3e ldr r3, [r3]                                      |         r3 = *(0x34128);
                                                                 |     }
    0x00033f40 str r3, [sp, 4]                                   |     var_4h_2 = r3;
    0x00033f42 ldr r3, [r6, 0x24]                                |     r3 = *((r6 + 0x24));
    0x00033f44 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00033f46 ldr.w sl, [r3, fp, lsl 3]                         |     offset_1 = fp << 3;
                                                                 |     sl = *((r3 + offset_1));
    0x00033f4a dmb ish                                           |     __asm ("dmb ish");
    0x00033f4e add.w r3, r3, fp, lsl 3                           |     r3 += (fp << 3);
    0x00033f52 ldr r4, [r3, 4]                                   |     r4 = *((r3 + 4));
    0x00033f54 dmb ish                                           |     __asm ("dmb ish");
                                                                 |     if (r4 == 0) {
    0x00033f58 cbnz r4, 0x33f62                                  |         
    0x00033f5a ldr r3, [pc, 0x1cc]                               |         r3 = *(0x3412a);
    0x00033f5c ldr.w r3, [sb, r3]                                |         r3 = *((sb + r3));
    0x00033f60 ldr r4, [r3]                                      |         r4 = *(0x3412a);
                                                                 |     }
    0x00033f62 mov r0, r5                                        |     r0 = r5;
    0x00033f64 bl 0x61888                                        |     r0 = gst_structure_get_name_id ();
    0x00033f68 mov r3, r0                                        |     r3 = r0;
    0x00033f6a mov r0, sl                                        |     r0 = sl;
    0x00033f6c mov sl, r3                                        |     sl = r3;
    0x00033f6e bl 0x61888                                        |     r0 = gst_structure_get_name_id ();
    0x00033f72 cmp sl, r0                                        |     
                                                                 |     if (sl == r0) {
    0x00033f74 beq 0x34062                                       |         goto label_10;
                                                                 |     }
                                                                 | label_4:
    0x00033f76 mov fp, r7                                        |     
                                                                 | label_5:
    0x00033f78 mov r4, fp                                        |     r4 = fp;
    0x00033f7a mov r8, r6                                        |     r8 = r6;
    0x00033f7c str.w fp, [sp, 0x14]                              |     __asm ("str.w fp, [var_14h]");
    0x00033f80 b 0x33f86                                         |     
                                                                 |     while (r4 == r7) {
                                                                 | label_1:
    0x00033f82 subs r4, 1                                        |         r4--;
                                                                 |         if (r4 <= 1) {
    0x00033f84 blo 0x3404e                                       |             goto label_11;
                                                                 |         }
                                                                 | label_2:
    0x00033f86 cmp r4, r7                                        |         
    0x00033f88 beq 0x33f82                                       |         
                                                                 |     }
    0x00033f8a ldr.w r3, [r8, 0x24]                              |     r3 = *((r8 + 0x24));
    0x00033f8e ldr r3, [r3]                                      |     r3 = *(r3);
    0x00033f90 ldr.w r6, [r3, r4, lsl 3]                         |     offset_2 = r4 << 3;
                                                                 |     r6 = *((r3 + offset_2));
    0x00033f94 dmb ish                                           |     __asm ("dmb ish");
    0x00033f98 add.w r3, r3, r4, lsl 3                           |     r3 += (r4 << 3);
    0x00033f9c ldr r3, [r3, 4]                                   |     r3 = *((r3 + 4));
    0x00033f9e dmb ish                                           |     __asm ("dmb ish");
    0x00033fa2 mov sl, r3                                        |     sl = r3;
                                                                 |     if (r3 == 0) {
    0x00033fa4 cbnz r3, 0x33fb0                                  |         
    0x00033fa6 ldr r3, [pc, 0x180]                               |         r3 = *(0x3412a);
    0x00033fa8 ldr.w r3, [sb, r3]                                |         r3 = *((sb + r3));
    0x00033fac ldr.w sl, [r3]                                    |         sl = *(0x3412a);
                                                                 |     }
    0x00033fb0 mov r0, r5                                        |     r0 = r5;
    0x00033fb2 bl 0x61888                                        |     r0 = gst_structure_get_name_id ();
    0x00033fb6 mov fp, r0                                        |     
    0x00033fb8 mov r0, r6                                        |     r0 = r6;
    0x00033fba bl 0x61888                                        |     r0 = gst_structure_get_name_id ();
    0x00033fbe cmp fp, r0                                        |     
                                                                 |     if (fp != r0) {
    0x00033fc0 bne 0x3404e                                       |         goto label_11;
                                                                 |     }
    0x00033fc2 ldr r0, [sp, 4]                                   |     r0 = var_4h_2;
    0x00033fc4 mov r1, sl                                        |     r1 = sl;
    0x00033fc6 bl 0x35724                                        |     r0 = gst_caps_features_is_equal ();
    0x00033fca cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00033fcc beq 0x3404e                                       |         goto label_11;
                                                                 |     }
    0x00033fce movs r2, 0x28                                     |     r2 = 0x28;
    0x00033fd0 movs r1, 0                                        |     r1 = 0;
    0x00033fd2 ldr r0, [sp]                                      |     r0 = *(sp);
    0x00033fd4 blx 0x20488                                       |     fcn_00020488 ();
    0x00033fd8 mov r2, r6                                        |     r2 = r6;
    0x00033fda mov r1, r5                                        |     r1 = r5;
    0x00033fdc add r0, sp, 0x1c                                  |     r0 += var_1ch_2;
    0x00033fde bl 0x32274                                        |     r0 = fcn_00032274 (r0, r1, r2);
                                                                 |     if (r0 != 0) {
    0x00033fe2 cbz r0, 0x34012                                   |         
    0x00033fe4 ldr.w sl, [sp, 0x1c]                              |         sl = var_1ch_2;
    0x00033fe8 cmp.w sl, 0                                       |         
                                                                 |         if (sl == 0) {
    0x00033fec beq 0x340dc                                       |             goto label_12;
                                                                 |         }
    0x00033fee ldr.w r1, [sl, 4]                                 |         r1 = *((sl + 4));
    0x00033ff2 cmp r1, 0                                         |         
                                                                 |         if (r1 == 0) {
    0x00033ff4 beq 0x34076                                       |             goto label_13;
                                                                 |         }
    0x00033ff6 ldr r3, [pc, 0x134]                               |         r3 = *(0x3412e);
    0x00033ff8 movs r2, 0                                        |         r2 = 0;
    0x00033ffa mov r0, sl                                        |         r0 = sl;
    0x00033ffc ldr.w r3, [sb, r3]                                |         r3 = *((sb + r3));
    0x00034000 mov r1, r3                                        |         r1 = r3;
    0x00034002 str r3, [sp, 8]                                   |         var_8h_2 = r3;
    0x00034004 blx 0x20e5c                                       |         ctype_b_loc ();
    0x00034006 vmin.s32 q2, q5, q0                               |         __asm ("vmin.s32 q2, q5, q0");
    0x0003400a blx 0x20060                                       |         fcn_00020060 ();
    0x0003400e movs r3, 0                                        |         r3 = 0;
    0x00034010 str r3, [sp, 0x1c]                                |         var_1ch_2 = r3;
                                                                 |     }
    0x00034012 ldr r2, [sp]                                      |     r2 = *(sp);
    0x00034014 mov r0, r5                                        |     r0 = r5;
    0x00034016 ldr r1, [sp, 0xc]                                 |     r1 = var_ch;
    0x00034018 str r6, [sp, 0x40]                                |     var_40h = r6;
    0x0003401a bl 0x624f0                                        |     gst_structure_foreach ();
    0x0003401c invalid                                           |     
                                                                 |     if (r3 == 0) {
    0x00034020 beq 0x33f82                                       |         goto label_1;
                                                                 |     }
    0x00034022 add.w sl, sp, 0x28                                |     sl += var_28h;
    0x00034026 mov r0, sl                                        |     r0 = sl;
    0x00034028 blx 0x215c0                                       |     r0 = fcn_000215c0 ();
    0x0003402c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0003402e beq 0x340aa                                       |         goto label_14;
                                                                 |     }
    0x00034030 mov r0, r5                                        |     r0 = r5;
    0x00034032 bl 0x62460                                        |     gst_structure_n_fields ();
    0x00034036 str r0, [sp, 8]                                   |     var_8h_2 = r0;
    0x00034038 mov r0, r6                                        |     r0 = r6;
    0x0003403a bl 0x62460                                        |     gst_structure_n_fields ();
    0x0003403e ldr r3, [sp, 8]                                   |     r3 = var_8h_2;
    0x00034040 cmp r3, r0                                        |     
                                                                 |     if (r3 == r0) {
    0x00034042 beq 0x340f6                                       |         goto label_15;
                                                                 |     }
    0x00034044 mov r0, sl                                        |     r0 = sl;
    0x00034046 blx 0x1fefc                                       |     g_source_set_priority ();
    0x0003404a subs r4, 1                                        |     r4--;
                                                                 |     if (r4 >= 1) {
    0x0003404c bhs 0x33f86                                       |         goto label_2;
                                                                 |     }
                                                                 | label_11:
    0x0003404e ldr.w fp, [sp, 0x14]                              |     fp = var_14h;
    0x00034052 mov r6, r8                                        |     r6 = r8;
                                                                 | label_6:
    0x00034054 subs r7, 1                                        |     r7--;
                                                                 |     if (r7 >= 1) {
    0x00034056 bhs.w 0x33f1e                                     |         goto label_3;
                                                                 |     }
    0x00034058 add r7, sp, 0x188                                 |     r7 = sp + 0x188;
                                                                 | label_7:
    0x0003405a mov r0, r6                                        |     r0 = r6;
    0x0003405c add sp, 0x4c                                      |     
    0x0003405e pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_10:
    0x00034062 ldr r0, [sp, 4]                                   |     r0 = var_4h_2;
    0x00034064 mov r1, r4                                        |     r1 = r4;
    0x00034066 bl 0x35724                                        |     r0 = gst_caps_features_is_equal ();
    0x0003406a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0003406c beq 0x33f76                                       |         goto label_4;
                                                                 |     }
    0x0003406e cmp.w fp, 0                                       |     
                                                                 |     if (fp >= 0) {
    0x00034072 bge 0x33f78                                       |         goto label_5;
                                                                 |     }
    0x00034074 b 0x34054                                         |     goto label_6;
                                                                 | label_13:
    0x00034076 ldr.w r6, [sl]                                    |     r6 = *(sl);
    0x0003407a mov r0, sl                                        |     r0 = sl;
    0x0003407c str r1, [sp, 8]                                   |     var_8h_2 = r1;
    0x0003407e blx 0x20060                                       |     fcn_00020060 ();
    0x00034082 ldr r1, [sp, 8]                                   |     r1 = var_8h_2;
                                                                 |     if (r6 == 0) {
    0x00034084 cbz r6, 0x340dc                                   |         goto label_12;
                                                                 |     }
    0x00034086 mov r0, r5                                        |     r0 = r5;
    0x00034088 bl 0x61624                                        |     gst_structure_set_parent_refcount ();
    0x0003408c mov r0, r5                                        |     r0 = r5;
    0x0003408e mov r5, r6                                        |     r5 = r6;
    0x00034090 bl 0x60df4                                        |     gst_structure_free ();
    0x00034094 add.w r1, r8, 4                                   |     r1 = r8 + 4;
    0x00034098 mov r0, r6                                        |     r0 = r6;
    0x0003409a bl 0x61624                                        |     gst_structure_set_parent_refcount ();
    0x0003409e ldr.w r3, [r8, 0x24]                              |     r3 = *((r8 + 0x24));
    0x000340a0 adds r0, 0x24                                     |     r0 += 0x24;
    0x000340a2 ldr r2, [sp, 0x10]                                |     r2 = var_10h;
    0x000340a4 ldr r3, [r3]                                      |     r3 = *(r3);
    0x000340a6 str r6, [r3, r2]                                  |     *((r3 + r2)) = r6;
    0x000340a8 b 0x33f82                                         |     goto label_1;
                                                                 | label_14:
    0x000340aa mov r0, r5                                        |     r0 = r5;
    0x000340ac bl 0x62460                                        |     r0 = gst_structure_n_fields ();
    0x000340b0 mov sl, r0                                        |     sl = r0;
    0x000340b2 mov r0, r6                                        |     r0 = r6;
    0x000340b4 bl 0x62460                                        |     r0 = gst_structure_n_fields ();
    0x000340b8 cmp sl, r0                                        |     
                                                                 |     if (sl <= r0) {
    0x000340ba ble.w 0x33f82                                     |         goto label_1;
                                                                 |     }
    0x000340be mov r0, r5                                        |     r0 = r5;
    0x000340c0 bl 0x6349c                                        |     gst_structure_to_string ();
    0x000340c2 vld3.16 {d20[2], d21[2], d22[2]}, [ip], r2        |     __asm ("vld3.16 {d20[2], d21[2], d22[2]}, [ip], r2");
    0x000340c6 mov r0, r6                                        |     r0 = r6;
    0x000340c8 bl 0x6349c                                        |     r0 = gst_structure_to_string ();
    0x000340cc mov r6, r0                                        |     r6 = r0;
    0x000340ce mov r0, sl                                        |     r0 = sl;
    0x000340d0 blx 0x1fe70                                       |     fcn_0001fe70 ();
    0x000340d4 mov r0, r6                                        |     r0 = r6;
    0x000340d6 blx 0x1fe70                                       |     fcn_0001fe70 ();
    0x000340da b 0x33f82                                         |     goto label_1;
                                                                 | label_12:
    0x000340dc ldr.w fp, [sp, 0x14]                              |     fp = var_14h;
    0x000340e0 mov r6, r8                                        |     r6 = r8;
                                                                 | label_8:
    0x000340e2 mov r1, r7                                        |     r1 = r7;
    0x000340e4 mov r0, r6                                        |     r0 = r6;
    0x000340e6 bl 0x32e04                                        |     gst_caps_remove_structure ();
    0x000340ea subs r7, 1                                        |     r7--;
    0x000340ec add.w fp, fp, -1                                  |     
                                                                 |     if (r7 >= 1) {
    0x000340f0 bhs.w 0x33f1e                                     |         goto label_3;
                                                                 |     }
    0x000340f4 b 0x3405a                                         |     goto label_7;
                                                                 | label_15:
    0x000340f6 mov r3, r8                                        |     r3 = r8;
    0x000340f8 mov r8, r6                                        |     r8 = r6;
    0x000340fa ldr r1, [sp, 0x20]                                |     r1 = var_20h;
    0x000340fc mov r2, sl                                        |     r2 = sl;
    0x000340fe mov r0, r8                                        |     r0 = r8;
    0x00034100 ldr.w fp, [sp, 0x14]                              |     fp = var_14h;
    0x00034104 mov r6, r3                                        |     r6 = r3;
    0x00034106 bl 0x61af4                                        |     gst_structure_id_take_value ();
    0x0003410a b 0x340e2                                         |     goto label_8;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libgstreamer-1.0.so.0.2202.0 @ 0x34c10 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.gst_caps_subtract ()                             | void gst_caps_subtract (int16_t arg_24h, uint32_t arg1, uint32_t arg2) {
                                                                 |     int16_t var_0h_2;
                                                                 |     int16_t var_4h_3;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_14h_2;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h_2;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_30h;
                                                                 |     int16_t var_34h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00034c10 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00034c14 sub sp, 0x3c                                      |     
    0x00034c16 ldr r4, [pc, 0x2ec]                               |     
    0x00034c18 add r4, pc                                        |     r4 = 0x69b22;
    0x00034c1a cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00034c1c beq 0x34cfe                                       |         
    0x00034c1e mov r7, r1                                        |         r7 = r1;
    0x00034c20 cmp r1, 0                                         |         
                                                                 |         if (r1 == 0) {
    0x00034c22 beq 0x34d1e                                       |             goto label_9;
                                                                 |         }
    0x00034c24 ldr r3, [r0, 0xc]                                 |         r3 = *((r0 + 0xc));
    0x00034c26 ands r3, r3, 0x10                                 |         r3 &= 0x10;
                                                                 |         if (r3 == r3) {
    0x00034c2a bne 0x34c38                                       |             
    0x00034c2c ldr r2, [r0, 0x24]                                |             r2 = *((r0 + 0x24));
    0x00034c2e cmp r2, 0                                         |             
                                                                 |             if (r2 == 0) {
    0x00034c30 beq 0x34cf4                                       |                 goto label_10;
                                                                 |             }
    0x00034c32 ldr r2, [r2, 4]                                   |             r2 = *((r2 + 4));
    0x00034c34 cmp r2, 0                                         |             
                                                                 |             if (r2 == 0) {
    0x00034c36 beq 0x34cf4                                       |                 goto label_10;
                                                                 |             }
                                                                 |         }
    0x00034c38 ldr r2, [r7, 0xc]                                 |         r2 = *((r7 + 0xc));
    0x00034c3a lsls r2, r2, 0x1b                                 |         r2 <<= 0x1b;
                                                                 |         if (r2 >= r2) {
    0x00034c3c bmi 0x34cf4                                       |             
    0x00034c3e ldr r2, [r7, 0x24]                                |             r2 = *((r7 + 0x24));
    0x00034c40 cmp r2, 0                                         |             
                                                                 |             if (r2 == 0) {
    0x00034c42 beq.w 0x34e2c                                     |                 goto label_11;
                                                                 |             }
    0x00034c46 ldr r6, [r2, 4]                                   |             r6 = *((r2 + 4));
    0x00034c48 cmp r6, 0                                         |             
                                                                 |             if (r6 == 0) {
    0x00034c4a beq.w 0x34e2c                                     |                 goto label_11;
                                                                 |             }
    0x00034c4e cmp r3, 0                                         |             
                                                                 |             if (r3 != 0) {
    0x00034c50 bne 0x34d34                                       |                 goto label_12;
                                                                 |             }
    0x00034c52 mov r8, r3                                        |             r8 = r3;
    0x00034c54 mov r5, r7                                        |             r5 = r7;
    0x00034c56 bl 0x32ae0                                        |             fcn_00032ae0 (r0);
    0x00034c5a mov sl, r8                                        |             sl = r8;
    0x00034c5c mov fp, r0                                        |             
    0x00034c5e mov r7, r8                                        |             r7 = r8;
    0x00034c60 add r3, sp, 0x30                                  |             r3 += var_30h;
    0x00034c62 str r3, [sp, 0xc]                                 |             var_0h = r3;
    0x00034c64 str r6, [sp, 0x1c]                                |             var_1ch = r6;
                                                                 | label_4:
    0x00034c66 ldr r3, [r5, 0x24]                                |             r3 = *((r5 + 0x24));
    0x00034c68 ldr r3, [r3]                                      |             r3 = *(r3);
    0x00034c6a ldr.w r2, [r3, r7, lsl 3]                         |             offset_0 = r7 << 3;
                                                                 |             r2 = *((r3 + offset_0));
    0x00034c6e add.w r3, r3, r7, lsl 3                           |             r3 += (r7 << 3);
    0x00034c72 str r2, [sp]                                      |             *(sp) = r2;
    0x00034c74 dmb ish                                           |             __asm ("dmb ish");
    0x00034c78 ldr r3, [r3, 4]                                   |             r3 = *((r3 + 4));
    0x00034c7a dmb ish                                           |             __asm ("dmb ish");
                                                                 |             if (r3 == 0) {
    0x00034c7e cbnz r3, 0x34c86                                  |                 
    0x00034c80 ldr r3, [pc, 0x284]                               |                 
    0x00034c82 ldr r3, [r4, r3]                                  |                 r3 = *((r4 + r3));
    0x00034c84 ldr r3, [r3]                                      |                 r3 = *(0x34f08);
                                                                 |             }
    0x00034c86 str r3, [sp, 8]                                   |             var_8h = r3;
    0x00034c88 cmp.w sl, 0                                       |             
                                                                 |             if (sl != 0) {
    0x00034c8c beq 0x34c96                                       |                 
    0x00034c8e mov r0, fp                                        |                 r0 = fp;
    0x00034c90 mov fp, sl                                        |                 
    0x00034c92 bl 0x349b8                                        |                 gst_caps_unref ();
                                                                 |             }
    0x00034c96 bl 0x326e0                                        |             gst_caps_new_empty ();
    0x00034c9a ldr.w r3, [fp, 0x24]                              |             r3 = *(arg_24h);
    0x00034c9e mov sl, r0                                        |             sl = r0;
    0x00034ca0 ldr.w sb, [r3, 4]                                 |             sb = *((r3 + 4));
    0x00034ca2 str r0, [sp, 0x10]                                |             *((sp + 0x10)) = r0;
    0x00034ca4 cmp.w sb, 0                                       |             
                                                                 |             if (sb == 0) {
    0x00034ca8 beq.w 0x34e3e                                     |                 goto label_13;
                                                                 |             }
    0x00034cac adds r2, r0, 4                                    |             r2 = r0 + 4;
    0x00034cae movs r6, 0                                        |             r6 = 0;
    0x00034cb0 mov sl, r2                                        |             sl = r2;
    0x00034cb2 str r7, [sp, 0x10]                                |             var_4h = r7;
    0x00034cb4 str r0, [sp, 4]                                   |             var_4h_3 = r0;
    0x00034cb6 str r5, [sp, 0x14]                                |             var_14h_2 = r5;
                                                                 | label_1:
    0x00034cb8 ldr r3, [r3]                                      |             r3 = *(r3);
    0x00034cba ldr.w r7, [r3, r6, lsl 3]                         |             offset_1 = r6 << 3;
                                                                 |             r7 = *((r3 + offset_1));
    0x00034cbe dmb ish                                           |             __asm ("dmb ish");
    0x00034cc2 add.w r3, r3, r6, lsl 3                           |             r3 += (r6 << 3);
    0x00034cc6 ldr r5, [r3, 4]                                   |             r5 = *((r3 + 4));
    0x00034cc8 dmb ish                                           |             __asm ("dmb ish");
                                                                 |             if (r5 == 0) {
    0x00034ccc cbnz r5, 0x34cd4                                  |                 
    0x00034cce ldr r3, [pc, 0x238]                               |                 r3 = *(0x34f0a);
    0x00034cd0 ldr r3, [r4, r3]                                  |                 r3 = *((r4 + r3));
    0x00034cd2 ldr r5, [r3]                                      |                 r5 = *(0x34f0a);
                                                                 |             }
    0x00034cd4 mov r0, r5                                        |             r0 = r5;
    0x00034cd6 bl 0x35804                                        |             r0 = gst_caps_features_is_any ();
    0x00034cda cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x00034cdc beq 0x34d4a                                       |                 goto label_14;
                                                                 |             }
    0x00034cde ldr r1, [pc, 0x22c]                               |             
    0x00034ce0 ldr r2, [pc, 0x22c]                               |             
    0x00034ce2 ldr r0, [pc, 0x230]                               |             
    0x00034ce4 add r1, pc                                        |             
    0x00034ce6 add r2, pc                                        |             r2 = 0x69bfa;
    0x00034ce8 add.w r1, r1, 0x398                               |             r1 = 0x69f8e;
    0x00034cec add r0, pc                                        |             r0 = 0x69c06;
    0x00034cee blx 0x20b70                                       |             fcn_00020b70 ();
    0x00034cf2 b 0x34d12                                         |             goto label_0;
                                                                 |         }
                                                                 | label_10:
    0x00034cf4 add sp, 0x3c                                      |         
    0x00034cf6 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}        |         
    0x00034cfa b.w 0x326e0                                       |         void (*0x326e0)() ();
                                                                 |     }
    0x00034cfe ldr r1, [pc, 0x218]                               |     
    0x00034d00 ldr r2, [pc, 0x218]                               |     
    0x00034d02 ldr r0, [pc, 0x21c]                               |     
    0x00034d04 add r1, pc                                        |     
    0x00034d06 add r2, pc                                        |     r2 = 0x69c26;
    0x00034d08 add.w r1, r1, 0x398                               |     r1 = 0x69fba;
    0x00034d0a strb r6, [r4, 5]                                  |     *((r4 + 5)) = r6;
    0x00034d0c add r0, pc                                        |     r0 = 0x69c32;
    0x00034d0e blx 0x20b70                                       |     fcn_00020b70 ();
                                                                 |     do {
                                                                 | label_0:
    0x00034d12 mov.w sb, 0                                       |         sb = 0;
                                                                 | label_8:
    0x00034d16 mov r0, sb                                        |         r0 = sb;
    0x00034d18 add sp, 0x3c                                      |         
    0x00034d1a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_9:
    0x00034d1e ldr r1, [pc, 0x204]                               |         
    0x00034d20 ldr r2, [pc, 0x204]                               |         
    0x00034d22 ldr r0, [pc, 0x208]                               |         
    0x00034d24 add r1, pc                                        |         
    0x00034d26 add r2, pc                                        |         r2 = 0x69c52;
    0x00034d28 add.w r1, r1, 0x398                               |         r1 = 0x69fe6;
    0x00034d2c add r0, pc                                        |         r0 = 0x69c5e;
    0x00034d2e blx 0x20b70                                       |         fcn_00020b70 ();
    0x00034d32 b 0x34d12                                         |         
                                                                 |     } while (1);
                                                                 | label_12:
    0x00034d34 ldr r1, [pc, 0x1f8]                               |     
    0x00034d36 ldr r2, [pc, 0x1fc]                               |     
    0x00034d38 ldr r0, [pc, 0x1fc]                               |     
    0x00034d3a add r1, pc                                        |     
    0x00034d3c add r2, pc                                        |     r2 = 0x69c76;
    0x00034d3e add.w r1, r1, 0x398                               |     r1 = 0x6a006;
    0x00034d40 strb r6, [r4, 5]                                  |     *((r4 + 5)) = r6;
    0x00034d42 add r0, pc                                        |     r0 = 0x69c7e;
    0x00034d44 blx 0x20b70                                       |     fcn_00020b70 ();
    0x00034d48 b 0x34d12                                         |     goto label_0;
                                                                 | label_14:
    0x00034d4a mov r0, r7                                        |     r0 = r7;
    0x00034d4c bl 0x61888                                        |     r0 = gst_structure_get_name_id ();
    0x00034d50 mov r8, r0                                        |     r8 = r0;
    0x00034d52 ldr r0, [sp]                                      |     r0 = *(sp);
    0x00034d54 bl 0x61888                                        |     r0 = gst_structure_get_name_id ();
    0x00034d58 cmp r8, r0                                        |     
                                                                 |     if (r8 == r0) {
    0x00034d5a beq 0x34dbc                                       |         goto label_15;
                                                                 |     }
                                                                 | label_2:
    0x00034d5c mov r0, r7                                        |     r0 = r7;
    0x00034d5e bl 0x6169c                                        |     gst_structure_copy ();
    0x00034d62 str r0, [sp, 0x30]                                |     var_30h = r0;
                                                                 |     if (r5 == 0) {
    0x00034d64 cbz r5, 0x34d82                                   |         goto label_16;
                                                                 |     }
    0x00034d66 mov r0, r5                                        |     r0 = r5;
    0x00034d68 bl 0x35804                                        |     r0 = gst_caps_features_is_any ();
    0x00034d6c mov r7, r0                                        |     r7 = r0;
                                                                 |     if (r0 != 0) {
    0x00034d6e cbnz r0, 0x34db0                                  |         goto label_17;
                                                                 |     }
    0x00034d70 ldr r3, [pc, 0x194]                               |     r3 = *(0x34f08);
    0x00034d72 mov r0, r5                                        |     r0 = r5;
    0x00034d74 ldr r3, [r4, r3]                                  |     r3 = *((r4 + r3));
    0x00034d76 ldr r1, [r3]                                      |     r1 = *(0x34f08);
    0x00034d78 bl 0x35724                                        |     r0 = gst_caps_features_is_equal ();
                                                                 |     if (r0 == 0) {
    0x00034d7c cbz r0, 0x34db0                                   |         goto label_17;
                                                                 |     }
    0x00034d7e ldr r0, [sp, 0x30]                                |     r0 = var_30h;
    0x00034d80 mov r5, r7                                        |     r5 = r7;
                                                                 |     do {
                                                                 | label_16:
    0x00034d82 mov r1, sl                                        |         r1 = sl;
    0x00034d84 str r5, [sp, 0x34]                                |         var_34h = r5;
    0x00034d86 bl 0x61624                                        |         r0 = gst_structure_set_parent_refcount ();
                                                                 |         if (r0 != 0) {
    0x00034d8a cbz r0, 0x34da4                                   |             
    0x00034d8c ldr r0, [sp, 0x34]                                |             r0 = var_34h;
                                                                 |             if (r0 != 0) {
    0x00034d8e cbz r0, 0x34d98                                   |                 
    0x00034d90 mov r1, sl                                        |                 r1 = sl;
    0x00034d92 bl 0x353a4                                        |                 r0 = gst_caps_features_set_parent_refcount ();
                                                                 |                 if (r0 == 0) {
    0x00034d96 cbz r0, 0x34da4                                   |                     goto label_3;
                                                                 |                 }
                                                                 |             }
    0x00034d98 ldr r3, [sp, 4]                                   |             r3 = var_4h_3;
    0x00034d9a movs r2, 1                                        |             r2 = 1;
    0x00034d9c ldr r1, [sp, 0xc]                                 |             r1 = var_0h;
    0x00034d9e ldr r0, [r3, 0x24]                                |             r0 = *((r3 + 0x24));
    0x00034da0 blx 0x216ec                                       |             fcn_000216ec ();
                                                                 |         }
                                                                 | label_3:
    0x00034da4 adds r6, 1                                        |         r6++;
    0x00034da6 cmp sb, r6                                        |         
                                                                 |         if (sb == r6) {
    0x00034da8 beq 0x34e36                                       |             goto label_18;
                                                                 |         }
    0x00034daa ldr.w r3, [fp, 0x24]                              |         r3 = *(arg_24h);
    0x00034dae b 0x34cb8                                         |         goto label_1;
                                                                 | label_17:
    0x00034db0 mov r0, r5                                        |         r0 = r5;
    0x00034db2 bl 0x35aa0                                        |         r0 = gst_caps_features_copy ();
    0x00034db6 mov r5, r0                                        |         r5 = r0;
    0x00034db8 ldr r0, [sp, 0x30]                                |         r0 = var_30h;
    0x00034dba b 0x34d82                                         |         
                                                                 |     } while (1);
                                                                 | label_15:
    0x00034dbc ldr r1, [sp, 8]                                   |     r1 = var_8h;
    0x00034dbe mov r0, r5                                        |     r0 = r5;
    0x00034dc0 bl 0x35724                                        |     r0 = gst_caps_features_is_equal ();
    0x00034dc4 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00034dc6 beq 0x34d5c                                       |         goto label_2;
                                                                 |     }
    0x00034dc8 ldr r2, [sp]                                      |     r2 = *(sp);
    0x00034dca mov r1, r7                                        |     r1 = r7;
    0x00034dcc add r0, sp, 0x2c                                  |     r0 += var_2ch;
    0x00034dce bl 0x32274                                        |     r0 = fcn_00032274 (r0, r1, r2);
    0x00034dd2 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00034dd4 bne 0x34e68                                       |         goto label_19;
                                                                 |     }
    0x00034dd6 mov r0, r7                                        |     r0 = r7;
    0x00034dd8 bl 0x6169c                                        |     gst_structure_copy ();
    0x00034ddc str r0, [sp, 0x30]                                |     var_30h = r0;
                                                                 |     if (r5 != 0) {
    0x00034dde cbz r5, 0x34e00                                   |         
    0x00034de0 mov r0, r5                                        |         r0 = r5;
    0x00034de2 bl 0x35804                                        |         r0 = gst_caps_features_is_any ();
    0x00034de6 mov r7, r0                                        |         r7 = r0;
    0x00034de8 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00034dea bne 0x34eec                                       |             goto label_20;
                                                                 |         }
    0x00034dec ldr r3, [pc, 0x118]                               |         r3 = *(0x34f08);
    0x00034dee mov r0, r5                                        |         r0 = r5;
    0x00034df0 ldr r3, [r4, r3]                                  |         r3 = *((r4 + r3));
    0x00034df2 ldr r1, [r3]                                      |         r1 = *(0x34f08);
    0x00034df4 bl 0x35724                                        |         r0 = gst_caps_features_is_equal ();
    0x00034df8 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00034dfa beq 0x34eec                                       |             goto label_20;
                                                                 |         }
    0x00034dfc ldr r0, [sp, 0x30]                                |         r0 = var_30h;
    0x00034dfe mov r5, r7                                        |         r5 = r7;
                                                                 |     }
                                                                 | label_7:
    0x00034e00 ldr r3, [sp, 4]                                   |     r3 = var_4h_3;
    0x00034e02 str r5, [sp, 0x34]                                |     var_34h = r5;
    0x00034e04 adds r5, r3, 4                                    |     r5 = r3 + 4;
    0x00034e06 mov r1, r5                                        |     r1 = r5;
    0x00034e08 bl 0x61624                                        |     r0 = gst_structure_set_parent_refcount ();
    0x00034e0c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00034e0e beq 0x34da4                                       |         goto label_3;
                                                                 |     }
    0x00034e10 ldr r0, [sp, 0x34]                                |     r0 = var_34h;
                                                                 |     if (r0 == 0) {
    0x00034e12 cbz r0, 0x34e1e                                   |         goto label_21;
                                                                 |     }
    0x00034e14 mov r1, r5                                        |     r1 = r5;
    0x00034e16 bl 0x353a4                                        |     r0 = gst_caps_features_set_parent_refcount ();
    0x00034e1a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00034e1c beq 0x34da4                                       |         goto label_3;
                                                                 |     }
                                                                 | label_21:
    0x00034e1e ldr r3, [sp, 4]                                   |     r3 = var_4h_3;
    0x00034e20 movs r2, 1                                        |     r2 = 1;
    0x00034e22 add r1, sp, 0x30                                  |     r1 += var_30h;
    0x00034e24 ldr r0, [r3, 0x24]                                |     r0 = *((r3 + 0x24));
    0x00034e26 blx 0x216ec                                       |     fcn_000216ec ();
    0x00034e2a b 0x34da4                                         |     goto label_3;
                                                                 | label_11:
    0x00034e2c add sp, 0x3c                                      |     
    0x00034e2e pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}        |     
    0x00034e32 b.w 0x34618                                       |     void (*0x34618)() ();
                                                                 | label_18:
    0x00034e36 ldr r7, [sp, 0x10]                                |     r7 = var_4h;
    0x00034e38 ldr.w sl, [sp, 4]                                 |     sl = var_4h_3;
    0x00034e3c ldr r5, [sp, 0x14]                                |     r5 = var_14h_2;
                                                                 | label_13:
    0x00034e3e ldr.w r3, [sl, 0x24]                              |     r3 = *((sl + 0x24));
    0x00034e42 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00034e44 beq 0x34ef8                                       |         goto label_22;
                                                                 |     }
    0x00034e46 ldr r3, [r3, 4]                                   |     r3 = *((r3 + 4));
    0x00034e48 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00034e4a beq 0x34ef8                                       |         goto label_22;
                                                                 |     }
    0x00034e4c ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x00034e4e adds r7, 1                                        |     r7++;
    0x00034e50 cmp r3, r7                                        |     
                                                                 |     if (r3 != r7) {
    0x00034e52 bne.w 0x34c66                                     |         goto label_4;
                                                                 |     }
    0x00034e54 add r7, sp, 0x20                                  |     r7 = sp + 0x20;
    0x00034e56 mov r0, fp                                        |     r0 = fp;
    0x00034e58 bl 0x349b8                                        |     gst_caps_unref ();
    0x00034e5c mov r0, sl                                        |     r0 = sl;
    0x00034e5e add sp, 0x3c                                      |     
    0x00034e60 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}        |     
    0x00034e64 b.w 0x33eb4                                       |     void (*0x33eb4)() ();
                                                                 | label_19:
    0x00034e68 ldr r2, [sp, 0x2c]                                |     r2 = var_2ch;
    0x00034e6a cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00034e6c beq 0x34ee4                                       |         goto label_23;
                                                                 |     }
    0x00034e6e ldr r3, [sp, 4]                                   |     r3 = var_4h_3;
    0x00034e70 mov r7, r2                                        |     r7 = r2;
    0x00034e72 str.w fp, [sp, 0x20]                              |     __asm ("str.w fp, [var_20h_2]");
    0x00034e76 mov fp, r2                                        |     
    0x00034e78 str r6, [sp, 0x24]                                |     var_24h = r6;
    0x00034e7a add.w r8, r3, 4                                   |     r8 = r3 + 4;
    0x00034e7e add r3, sp, 0x30                                  |     r3 += var_30h;
    0x00034e80 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x00034e82 b 0x34ebc                                         |     goto label_24;
                                                                 | label_5:
    0x00034e84 ldr r2, [pc, 0x80]                                |     r2 = *(0x34f08);
    0x00034e86 mov r0, r5                                        |     r0 = r5;
    0x00034e88 ldr r2, [r4, r2]                                  |     r2 = *((r4 + r2));
    0x00034e8a ldr r1, [r2]                                      |     r1 = *(0x34f08);
    0x00034e8c bl 0x35724                                        |     r0 = gst_caps_features_is_equal ();
                                                                 |     if (r0 == 0) {
    0x00034e90 cbz r0, 0x34ed2                                   |         goto label_25;
                                                                 |     }
    0x00034e92 ldr r0, [sp, 0x30]                                |     r0 = var_30h;
    0x00034e94 mov r3, r6                                        |     r3 = r6;
                                                                 |     do {
                                                                 | label_6:
    0x00034e96 mov r1, r8                                        |         r1 = r8;
    0x00034e98 str r3, [sp, 0x34]                                |         var_34h = r3;
    0x00034e9a bl 0x61624                                        |         r0 = gst_structure_set_parent_refcount ();
                                                                 |         if (r0 != 0) {
    0x00034e9e cbz r0, 0x34eb8                                   |             
    0x00034ea0 ldr r0, [sp, 0x34]                                |             r0 = var_34h;
                                                                 |             if (r0 != 0) {
    0x00034ea2 cbz r0, 0x34eac                                   |                 
    0x00034ea4 mov r1, r8                                        |                 r1 = r8;
    0x00034ea6 bl 0x353a4                                        |                 r0 = gst_caps_features_set_parent_refcount ();
                                                                 |                 if (r0 == 0) {
    0x00034eaa cbz r0, 0x34eb8                                   |                     goto label_26;
                                                                 |                 }
                                                                 |             }
    0x00034eac ldr r3, [sp, 4]                                   |             r3 = var_4h_3;
    0x00034eae movs r2, 1                                        |             r2 = 1;
    0x00034eb0 ldr r1, [sp, 0x18]                                |             r1 = var_18h;
    0x00034eb2 ldr r0, [r3, 0x24]                                |             r0 = *((r3 + 0x24));
    0x00034eb4 blx 0x216ec                                       |             fcn_000216ec ();
                                                                 |         }
                                                                 | label_26:
    0x00034eb8 ldr r7, [r7, 4]                                   |         r7 = *((r7 + 4));
                                                                 |         if (r7 == 0) {
    0x00034eba cbz r7, 0x34ede                                   |             goto label_27;
                                                                 |         }
                                                                 | label_24:
    0x00034ebc ldr r0, [r7]                                      |         r0 = *(r7);
    0x00034ebe mov r3, r5                                        |         r3 = r5;
    0x00034ec0 str r0, [sp, 0x30]                                |         var_30h = r0;
    0x00034ec2 cmp r5, 0                                         |         
    0x00034ec4 beq 0x34e96                                       |         
                                                                 |     } while (r5 == 0);
    0x00034ec6 mov r0, r5                                        |     r0 = r5;
    0x00034ec8 bl 0x35804                                        |     r0 = gst_caps_features_is_any ();
    0x00034ecc mov r6, r0                                        |     r6 = r0;
    0x00034ece cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00034ed0 beq 0x34e84                                       |         goto label_5;
                                                                 |     }
                                                                 | label_25:
    0x00034ed2 mov r0, r5                                        |     r0 = r5;
    0x00034ed4 bl 0x35aa0                                        |     r0 = gst_caps_features_copy ();
    0x00034ed8 mov r3, r0                                        |     r3 = r0;
    0x00034eda ldr r0, [sp, 0x30]                                |     r0 = var_30h;
    0x00034edc b 0x34e96                                         |     goto label_6;
                                                                 | label_27:
    0x00034ede mov r2, fp                                        |     r2 = fp;
    0x00034ee0 ldrd fp, r6, [sp, 0x20]                           |     __asm ("ldrd fp, r6, [var_20h_2]");
                                                                 | label_23:
    0x00034ee4 mov r0, r2                                        |     r0 = r2;
    0x00034ee6 blx 0x20060                                       |     fcn_00020060 ();
    0x00034eea b 0x34da4                                         |     goto label_3;
                                                                 | label_20:
    0x00034eec mov r0, r5                                        |     r0 = r5;
    0x00034eee bl 0x35aa0                                        |     r0 = gst_caps_features_copy ();
    0x00034ef2 mov r5, r0                                        |     r5 = r0;
    0x00034ef4 ldr r0, [sp, 0x30]                                |     r0 = var_30h;
    0x00034ef6 b 0x34e00                                         |     goto label_7;
                                                                 | label_22:
    0x00034ef8 mov r0, fp                                        |     r0 = fp;
    0x00034efa mov sb, sl                                        |     sb = sl;
    0x00034efc bl 0x349b8                                        |     gst_caps_unref ();
    0x00034f00 b 0x34d16                                         |     goto label_8;
                                                                 | }

[*] Function system used 1 times libgstreamer-1.0.so.0.2202.0