[*] Binary protection state of libgstriff-1.0.so.0.2202.0

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


[*] Function printf tear down of libgstriff-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/libgstriff-1.0.so.0.2202.0 @ 0x4080 */
                                                             | #include <stdint.h>
                                                             |  
                                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                             |  
    ; (fcn) sym.gst_riff_create_audio_caps ()                | void gst_riff_create_audio_caps (int16_t arg_98h, int16_t arg_9ch, int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
                                                             |     int16_t var_0h;
                                                             |     int16_t var_4h;
                                                             |     int16_t var_8h;
                                                             |     int16_t var_ch;
                                                             |     int16_t var_10h;
                                                             |     int16_t var_14h;
                                                             |     int16_t var_18h;
                                                             |     int16_t var_1ch;
                                                             |     int16_t var_20h;
                                                             |     int16_t var_24h;
                                                             |     void * s1;
                                                             |     int16_t var_2ch;
                                                             |     int16_t var_30h;
                                                             |     int16_t var_34h;
                                                             |     int16_t var_3ch;
                                                             |     int16_t var_44h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x00004080 svcmi 0xf0e92d                                |     __asm ("svcmi 0xf0e92d");
    0x00004084 sub sp, 0x74                                  |     
    0x00004086 ldrd r6, fp, [sp, 0x9c]                       |     __asm ("ldrd r6, fp, [arg_9ch]");
    0x0000408a mov sl, r0                                    |     sl = r0;
    0x0000408c mov r7, r1                                    |     r7 = r1;
    0x0000408e mov r4, r2                                    |     r4 = r2;
    0x00004090 ldr.w r8, [pc, 0xb80]                         |     
    0x00004094 mov r5, r3                                    |     r5 = r3;
    0x00004096 ldr.w sb, [sp, 0x98]                          |     sb = *(arg_98h);
    0x0000409a add r8, pc                                    |     r8 = 0x8cb2;
    0x0000409c cmp.w fp, 0                                   |     
                                                             |     if (fp != 0) {
    0x000040a0 beq 0x40ac                                    |         
    0x000040a2 movs r2, 0x48                                 |         r2 = 0x48;
    0x000040a4 movs r1, 0xff                                 |         r1 = 0xff;
    0x000040a6 mov r0, fp                                    |         r0 = fp;
    0x000040a8 blx 0x100c                                    |         memset (r0, r1, r2);
                                                             |     }
    0x000040ac cmp.w sl, 0x81                                |     
                                                             |     if (sl <= 0x81) {
    0x000040b0 bhi.w 0x41cc                                  |         
    0x000040b4 cmp.w sl, 0                                   |         
                                                             |         if (sl == 0) {
    0x000040b8 beq.w 0x43d8                                  |             goto label_4;
                                                             |         }
    0x000040bc add.w r3, sl, -1                              |         r3 = sl + -1;
    0x000040c0 cmp r3, 0x80                                  |         
                                                             |         if (r3 > 0x80) {
    0x000040c2 bhi.w 0x43d8                                  |             goto label_4;
                                                             |         }
                                                             |         /* switch table (130 cases) at 0x40ca */
    0x000040c6 tbh [pc, r3, lsl 1]                           |         __asm ("tbh [pc, r3, lsl 1]");
                                                             |     }
    0x000041cc cmp.w sl, 0x2000                              |     
                                                             |     if (sl == 0x2000) {
    0x000041d0 beq.w 0x4a56                                  |         goto label_29;
                                                             |     }
                                                             |     if (sl < 0x2000) {
    0x000041d4 bls.w 0x4388                                  |         goto label_30;
                                                             |     }
    0x000041d8 movw r3, 0x6771                               |     r3 = 0x6771;
    0x000041dc cmp sl, r3                                    |     
                                                             |     if (sl > r3) {
    0x000041de bhi 0x427e                                    |         goto label_31;
                                                             |     }
    0x000041e0 movw r3, 0x676e                               |     r3 = 0x676e;
    0x000041e4 cmp sl, r3                                    |     
                                                             |     if (sl <= r3) {
    0x000041e6 bhi 0x420c                                    |         
    0x000041e8 movw r3, 0x2001                               |         r3 = 0x2001;
    0x000041ec cmp sl, r3                                    |         
                                                             |         if (sl == r3) {
    0x000041ee beq.w 0x44ba                                  |             goto label_32;
                                                             |         }
    0x000041f0 strh r4, [r4, 0xa]                            |         *((r4 + 0xa)) = r4;
    0x000041f2 movw r3, 0x4143                               |         r3 = 0x4143;
    0x000041f6 cmp sl, r3                                    |         
                                                             |         if (sl == r3) {
    0x000041f8 beq.w 0x4a26                                  |             goto label_33;
                                                             |         }
    0x000041fc sub.w sl, sl, 0x6700                          |         sl -= 0x6700;
    0x00004200 sub.w sl, sl, 0x4f                            |         sl -= 0x4f;
    0x00004204 cmp.w sl, 2                                   |         
                                                             |         if (sl > 2) {
    0x00004208 bhi.w 0x43d8                                  |             goto label_4;
                                                             |         }
                                                             |     }
    0x0000420c ldr.w r0, [pc, 0xa08]                         |     
    0x00004210 add r0, pc                                    |     r0 = 0x8e2c;
    0x00004212 blx 0x1100                                    |     r0 = fcn_00001100 ();
    0x00004216 mov r7, r0                                    |     r7 = r0;
    0x00004218 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x0000421a beq.w 0x44b2                                  |         goto label_2;
                                                             |     }
    0x0000421e ldr.w r0, [pc, 0x9fc]                         |     
    0x00004222 add r0, pc                                    |     r0 = 0x8e44;
    0x00004224 blx 0xfe8                                     |     g_strdup ();
    0x00004228 str r0, [r6]                                  |     *(r6) = r0;
    0x0000422a cbz r4, 0x424e                                |     
                                                             |     while (r4 != 0) {
                                                             | label_1:
    0x0000422c ldrh r3, [r4, 2]                              |         r3 = *((r4 + 2));
    0x0000422e movs r1, 0                                    |         r1 = 0;
    0x00004230 ldr.w r2, [pc, 0x9ec]                         |         
    0x00004234 mov r0, r7                                    |         r0 = r7;
    0x00004236 str r3, [sp, 8]                               |         var_8h = r3;
    0x00004238 ldr r3, [r4, 4]                               |         r3 = *((r4 + 4));
    0x0000423a add r2, pc                                    |         r2 = 0x8e5e;
    0x0000423c str r1, [sp, 0xc]                             |         var_ch = r1;
    0x0000423e ldr.w r1, [pc, 0x9e4]                         |         
    0x00004242 str r2, [sp]                                  |         *(sp) = r2;
    0x00004244 movs r2, 0x18                                 |         r2 = 0x18;
    0x00004246 str r2, [sp, 4]                               |         var_4h = r2;
    0x00004248 add r1, pc                                    |         r1 = 0x8e72;
    0x0000424a blx 0xfb8                                     |         gst_caps_set_simple ();
                                                             | label_0:
    0x0000424e orrs.w r3, r5, sb                             |         r3 = r5 | sb;
                                                             |         if (r3 != r5) {
    0x00004252 beq 0x4276                                    |             
    0x00004254 ldr.w r3, [pc, 0x9d0]                         |             r3 = *(0x4c28);
    0x00004258 cmp r5, 0                                     |             
    0x0000425a it eq                                         |             
                                                             |             if (r5 != 0) {
    0x0000425c moveq r5, sb                                  |                 r5 = sb;
                                                             |             }
    0x0000425e ldr.w r3, [r8, r3]                            |             r3 = *((r8 + r3));
    0x00004262 ldr r2, [r3]                                  |             r2 = *(0x4c28);
                                                             | label_21:
    0x00004264 ldr.w r1, [pc, 0x9c4]                         |             
    0x00004268 movs r0, 0                                    |             r0 = 0;
    0x0000426a str r0, [sp]                                  |             *(sp) = r0;
    0x0000426c mov r3, r5                                    |             r3 = r5;
    0x0000426e mov r0, r7                                    |             r0 = r7;
    0x00004270 add r1, pc                                    |             r1 = 0x8ea0;
    0x00004272 blx 0xfb8                                     |             gst_caps_set_simple ();
                                                             |         }
                                                             | label_22:
    0x00004276 mov r0, r7                                    |         r0 = r7;
    0x00004278 add sp, 0x74                                  |         
    0x0000427a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}    |         
                                                             | label_31:
    0x0000427e movw r3, 0x706d                               |         r3 = 0x706d;
    0x00004282 cmp sl, r3                                    |         
                                                             |         if (sl == r3) {
    0x00004284 beq.w 0x4a26                                  |             goto label_33;
                                                             |         }
    0x00004288 movw r3, 0xfffe                               |         r3 = 0xfffe;
    0x0000428c cmp sl, r3                                    |         
                                                             |         if (sl != r3) {
    0x0000428e bne.w 0x43d8                                  |             goto label_4;
                                                             |         }
    0x00004292 cmp r5, 0                                     |         
                                                             |         if (r5 == 0) {
    0x00004294 beq.w 0x43d8                                  |             goto label_4;
                                                             |         }
    0x00004298 mov r0, r5                                    |         r0 = r5;
    0x0000429a blx 0x103c                                    |         gst_buffer_get_size ();
    0x0000429c mrc p8, 6, r2, c0, c5, 0                      |         __asm ("mrc p8, 6, r2, c0, c5, 0");
    0x0000429e cmp r0, 0x15                                  |         
                                                             |         if (r0 < 0x15) {
    0x000042a0 bls.w 0x43d8                                  |             goto label_4;
                                                             |         }
    0x000042a2 strh r2, [r3, 4]                              |         *((r3 + 4)) = r2;
    0x000042a4 add.w sl, sp, 0x3c                            |         sl += var_3ch;
    0x000042a8 movs r2, 1                                    |         r2 = 1;
    0x000042aa mov r1, sl                                    |         r1 = sl;
    0x000042ac mov r0, r5                                    |         r0 = r5;
    0x000042ae blx 0x10ac                                    |         fcn_000010ac ();
    0x000042b2 ldr.w ip, [sp, 0x44]                          |         ip = var_44h;
    0x000042b6 mov r1, sl                                    |         r1 = sl;
    0x000042b8 mov r0, r5                                    |         r0 = r5;
    0x000042ba ldr.w r2, [ip, 0xe]                           |         r2 = *((ip + 0xe));
    0x000042be ldr.w r3, [ip, 0xa]                           |         r3 = *((ip + 0xa));
    0x000042c2 ldr.w lr, [ip, 6]                             |         
    0x000042c6 str r2, [sp, 0x30]                            |         var_30h = r2;
    0x000042c8 ldr.w r2, [ip, 0x12]                          |         r2 = *((ip + 0x12));
    0x000042cc str r3, [sp, 0x28]                            |         s1 = r3;
    0x000042ce str.w lr, [sp, 0x34]                          |         __asm ("str.w lr, [var_34h]");
    0x000042d0 b 0x433c                                      |         goto label_34;
    0x000042d2 str r2, [sp, 0x2c]                            |         var_2ch = r2;
    0x000042d4 ldr.w sl, [ip, 2]                             |         sl = *((ip + 2));
    0x000042d8 blx 0xfdc                                     |         gst_buffer_unmap ();
    0x000042dc ldr r3, [sp, 0x28]                            |         r3 = s1;
    0x000042de ldrd r2, lr, [sp, 0x30]                       |         __asm ("ldrd r2, lr, [var_30h]");
    0x000042e2 cmp.w r3, 0x100000                            |         
                                                             |         if (r3 == 0x100000) {
    0x000042e6 beq.w 0x4e52                                  |             goto label_35;
                                                             |         }
    0x000042ea ldr r3, [sp, 0x28]                            |         r3 = s1;
    0x000042ec movw r0, 0x3f83                               |         
    0x000042f0 movw r1, 0x7966                               |         
    0x000042f4 movt r0, 0x4178                               |         r0 = 0x41783f83;
    0x000042f8 movt r1, 0x6ba4                               |         r1 = 0x6ba47966;
    0x000042fc cmp r3, r0                                    |         
    0x000042fe it eq                                         |         
                                                             |         if (r3 == r0) {
    0x00004300 cmpeq lr, r1                                  |             __asm ("cmpeq lr, r1");
                                                             |         }
    0x00004302 movw r1, 0x6596                               |         
    0x00004306 ite eq                                        |         
                                                             |         if (r3 != r0) {
    0x00004308 moveq r3, 1                                   |             r3 = 1;
                                                             |         }
                                                             |         if (r3 == r0) {
    0x0000430a movne r3, 0                                   |             r3 = 0;
                                                             |         }
    0x0000430c movt r1, 0xf000                               |         r1 = 0xf0006596;
    0x00004310 cmp r2, r1                                    |         
    0x00004312 ite ne                                        |         
                                                             |         if (r2 == r1) {
    0x00004314 movne r3, 0                                   |             r3 = 0;
                                                             |         }
                                                             |         if (r2 != r1) {
    0x00004316 andeq r3, r3, 1                               |             r3 &= 1;
                                                             |         }
    0x0000431a ldr r1, [sp, 0x2c]                            |         r1 = var_2ch;
    0x0000431c movw r2, 0x62bf                               |         
    0x00004320 movt r2, 0xe592                               |         r2 = 0xe59262bf;
    0x00004324 cmp r1, r2                                    |         
    0x00004326 ite ne                                        |         
                                                             |         if (r1 == r2) {
    0x00004328 movne r3, 0                                   |             r3 = 0;
                                                             |         }
                                                             |         if (r1 != r2) {
    0x0000432a andeq r3, r3, 1                               |             r3 &= 1;
                                                             |         }
    0x0000432e cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00004330 beq 0x43d8                                    |             goto label_4;
                                                             |         }
    0x00004332 ldr.w r0, [pc, 0x8fc]                         |         
    0x00004336 add r0, pc                                    |         r0 = 0x8f6c;
    0x00004338 blx 0x1100                                    |         r0 = fcn_00001100 ();
                                                             | label_34:
    0x0000433c mov r7, r0                                    |         r7 = r0;
                                                             |         if (r6 != 0) {
    0x0000433e cbz r6, 0x434c                                |             
    0x00004340 ldr.w r0, [pc, 0x8f0]                         |             
    0x00004344 add r0, pc                                    |             r0 = 0x8f7c;
    0x00004346 blx 0xfe8                                     |             g_strdup ();
    0x0000434a str r0, [r6]                                  |             *(r6) = r0;
                                                             |         }
                                                             | label_17:
    0x0000434c cmp r7, 0                                     |         
                                                             |         if (r7 == 0) {
    0x0000434e beq 0x43d8                                    |             goto label_4;
                                                             |         }
    0x00004350 cmp r4, 0                                     |         
                                                             |         if (r4 == 0) {
    0x00004352 beq.w 0x504c                                  |             goto label_36;
                                                             |         }
                                                             | label_26:
    0x00004356 ldrh r3, [r4, 2]                              |         r3 = *((r4 + 2));
    0x00004358 str r3, [sp, 0x30]                            |         var_30h = r3;
    0x0000435a cmp.w sl, 0                                   |         
                                                             |         if (sl != 0) {
    0x0000435e bne.w 0x503a                                  |             goto label_37;
                                                             |         }
    0x00004362 cmp r3, 1                                     |         
                                                             |         if (r3 < 1) {
    0x00004364 bls.w 0x504c                                  |             goto label_36;
                                                             |         }
    0x00004368 subs r2, r3, 2                                |         r2 = r3 - 2;
    0x0000436a cmp r2, 9                                     |         
                                                             |         if (r2 > 9) {
    0x0000436c bhi.w 0x503a                                  |             goto label_37;
                                                             |         }
                                                             |         /* switch table (11 cases) at 0x4374 */
    0x00004370 tbh [pc, r2, lsl 1]                           |         __asm ("tbh [pc, r2, lsl 1]");
                                                             | label_30:
    0x00004388 cmp.w sl, 0x270                               |         
                                                             |         if (sl == 0x270) {
    0x0000438c beq.w 0x4a04                                  |             goto label_38;
                                                             |         }
                                                             |         if (sl < 0x270) {
    0x00004390 bls 0x43c8                                    |             goto label_39;
                                                             |         }
    0x00004392 movw r3, 0x28e                                |         r3 = 0x28e;
    0x00004396 cmp sl, r3                                    |         
                                                             |         if (sl == r3) {
    0x00004398 beq.w 0x49e8                                  |             goto label_40;
                                                             |         }
    0x0000439c movw r3, 0x28f                                |         r3 = 0x28f;
    0x000043a0 cmp sl, r3                                    |         
                                                             |         if (sl != r3) {
    0x000043a2 bne 0x43d8                                    |             goto label_4;
                                                             |         }
    0x000043a4 ldr.w r0, [pc, 0x890]                         |         
    0x000043a8 add r0, pc                                    |         r0 = 0x8fe4;
    0x000043aa blx 0x1100                                    |         r0 = fcn_00001100 ();
    0x000043ae mov r7, r0                                    |         r7 = r0;
    0x000043b0 cmp r6, 0                                     |         
                                                             |         if (r6 == 0) {
    0x000043b2 beq 0x44b2                                    |             goto label_2;
                                                             |         }
    0x000043b4 ldr.w r0, [pc, 0x884]                         |         
    0x000043b8 add r0, pc                                    |         r0 = 0x8ff8;
    0x000043ba blx 0xfe8                                     |         g_strdup ();
    0x000043be str r0, [r6]                                  |         *(r6) = r0;
    0x000043c0 cmp r4, 0                                     |         
    0x000043c2 bne.w 0x422c                                  |         
                                                             |     }
    0x000043c6 b 0x424e                                      |     goto label_0;
                                                             | label_39:
    0x000043c8 cmp.w sl, 0xff                                |     
                                                             |     if (sl == 0xff) {
    0x000043cc beq.w 0x4a26                                  |         goto label_33;
                                                             |     }
    0x000043ce strh r3, [r5, 0x18]                           |     *((r5 + 0x18)) = r3;
    0x000043d0 sub.w r3, sl, 0x160                           |     r3 = sl - 0x160;
    0x000043d4 cmp r3, 3                                     |     
                                                             |     if (r3 >= 3) {
    0x000043d6 bls 0x43e2                                    |         
                                                             | label_4:
    0x000043d8 movs r7, 0                                    |         r7 = 0;
    0x000043da mov r0, r7                                    |         r0 = r7;
    0x000043dc add sp, 0x74                                  |         
    0x000043de pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}    |         
                                                             |     }
    0x000043e2 ldr.w r1, [pc, 0x85c]                         |     
    0x000043e6 movs r3, 0                                    |     r3 = 0;
    0x000043e8 ldr.w r0, [pc, 0x858]                         |     
    0x000043ec mvn ip, 0x15e                                 |     
    0x000043f0 str r3, [sp]                                  |     *(sp) = r3;
    0x000043f2 movs r2, 0x18                                 |     r2 = 0x18;
    0x000043f4 add r1, pc                                    |     r1 = 0x903a;
    0x000043f6 add.w r3, sl, ip                              |     r3 = sl + ip;
    0x000043fa add r0, pc                                    |     r0 = 0x9042;
    0x000043fc blx 0x106c                                    |     r0 = gst_caps_new_simple ();
    0x00004400 mov r7, r0                                    |     r7 = r0;
                                                             |     if (r6 != 0) {
    0x00004402 cbz r6, 0x4422                                |         
    0x00004404 movw r3, 0x163                                |         r3 = 0x163;
    0x00004408 cmp sl, r3                                    |         
                                                             |         if (sl == r3) {
    0x0000440a beq.w 0x49c8                                  |             goto label_41;
                                                             |         }
    0x0000440e mvn r0, 0x158                                 |         r0 = ~0x158;
    0x00004412 add.w r1, sl, r0                              |         r1 = sl + r0;
    0x00004414 lsls r0, r0, 4                                |         r0 <<= 4;
    0x00004416 ldr.w r0, [pc, 0x830]                         |         
    0x0000441a add r0, pc                                    |         r0 = 0x9068;
    0x0000441c blx 0x1054                                    |         g_strdup_printf ()
    0x00004420 str r0, [r6]                                  |         *(r6) = r0;
                                                             |     }
                                                             | label_5:
    0x00004422 cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x00004424 beq.w 0x4bcc                                  |         goto label_42;
                                                             |     }
    0x00004428 ldrh r2, [r4, 0xe]                            |     r2 = *((r4 + 0xe));
    0x0000442a movs r1, 0                                    |     r1 = 0;
    0x0000442c ldr r3, [r4, 8]                               |     r3 = *((r4 + 8));
    0x0000442e mov r0, r7                                    |     r0 = r7;
    0x00004430 str r1, [sp, 0xc]                             |     var_ch = r1;
    0x00004432 str r2, [sp, 8]                               |     var_8h = r2;
    0x00004434 ldr.w r2, [pc, 0x814]                         |     
    0x00004438 ldr.w r1, [pc, 0x814]                         |     
    0x0000443c lsls r3, r3, 3                                |     r3 <<= 3;
    0x0000443e add r2, pc                                    |     r2 = 0x908e;
    0x00004440 str r2, [sp]                                  |     *(sp) = r2;
    0x00004442 movs r2, 0x18                                 |     r2 = 0x18;
    0x00004444 add r1, pc                                    |     r1 = 0x9098;
    0x00004446 str r2, [sp, 4]                               |     var_4h = r2;
    0x00004448 blx 0xfb8                                     |     gst_caps_set_simple ();
    0x0000444a invalid                                       |     
                                                             | label_3:
    0x0000444c ldrh r3, [r4, 2]                              |     r3 = *((r4 + 2));
    0x0000444e movs r6, 0x18                                 |     r6 = 0x18;
    0x00004450 ldr.w r1, [pc, 0x800]                         |     
    0x00004454 mov.w sl, 0                                   |     sl = 0;
    0x00004458 mov r2, r6                                    |     r2 = r6;
    0x0000445a mov r0, r7                                    |     r0 = r7;
    0x0000445c str r3, [sp, 8]                               |     var_8h = r3;
    0x0000445e ldr.w r3, [pc, 0x7f8]                         |     
    0x00004462 add r1, pc                                    |     r1 = 0x90ba;
    0x00004464 str r6, [sp, 4]                               |     var_4h = r6;
    0x00004466 str.w sl, [sp, 0xc]                           |     __asm ("str.w sl, [var_ch]");
    0x0000446a add r3, pc                                    |     r3 = 0x90c8;
    0x0000446c str r3, [sp]                                  |     *(sp) = r3;
    0x0000446e ldr r3, [r4, 4]                               |     r3 = *((r4 + 4));
    0x00004470 blx 0xfb8                                     |     gst_caps_set_simple ();
    0x00004474 ldr.w r1, [pc, 0x7e4]                         |     
    0x00004478 mov r2, r6                                    |     r2 = r6;
    0x0000447a str.w sl, [sp]                                |     __asm ("str.w sl, [sp]");
    0x0000447e mov r0, r7                                    |     r0 = r7;
    0x00004480 ldrh r3, [r4, 0xc]                            |     r3 = *((r4 + 0xc));
    0x00004482 add r1, pc                                    |     r1 = 0x90e2;
    0x00004484 blx 0xfb8                                     |     gst_caps_set_simple ();
    0x00004488 b 0x424e                                      |     goto label_0;
    0x0000448a ldr.w r1, [pc, 0x7d4]                         |     
    0x0000448e movs r2, 0                                    |     r2 = 0;
    0x00004490 ldr.w r0, [pc, 0x7d0]                         |     
    0x00004494 mov r3, sl                                    |     r3 = sl;
    0x00004496 str r2, [sp]                                  |     *(sp) = r2;
    0x00004498 movs r2, 0x18                                 |     r2 = 0x18;
    0x0000449a add r1, pc                                    |     r1 = 0x9100;
    0x0000449c add r0, pc                                    |     r0 = 0x9104;
    0x0000449e blx 0x106c                                    |     r0 = gst_caps_new_simple ();
    0x000044a2 mov r7, r0                                    |     r7 = r0;
                                                             |     if (r6 != 0) {
    0x000044a4 cbz r6, 0x44b2                                |         
    0x000044a6 ldr.w r0, [pc, 0x7c0]                         |         
    0x000044aa add r0, pc                                    |         r0 = 0x9118;
    0x000044ac blx 0xfe8                                     |         g_strdup ();
    0x000044b0 str r0, [r6]                                  |         *(r6) = r0;
                                                             |     }
                                                             | label_2:
    0x000044b2 cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x000044b4 bne.w 0x422c                                  |         goto label_1;
                                                             |     }
    0x000044b8 b 0x424e                                      |     goto label_0;
                                                             | label_32:
    0x000044ba ldr.w r0, [pc, 0x7b0]                         |     
    0x000044be add r0, pc                                    |     r0 = 0x9130;
    0x000044c0 blx 0x1100                                    |     r0 = fcn_00001100 ();
    0x000044c4 mov r7, r0                                    |     r7 = r0;
    0x000044c6 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x000044c8 beq.w 0x424e                                  |         goto label_0;
                                                             |     }
    0x000044cc ldr.w r0, [pc, 0x7a0]                         |     
    0x000044d0 add r0, pc                                    |     r0 = 0x9144;
    0x000044d2 blx 0xfe8                                     |     g_strdup ();
    0x000044d6 str r0, [r6]                                  |     *(r6) = r0;
    0x000044d8 b 0x424e                                      |     goto label_0;
    0x000044da ldr.w r0, [pc, 0x798]                         |     
    0x000044de add r0, pc                                    |     r0 = 0x9158;
    0x000044e0 blx 0x1100                                    |     r0 = fcn_00001100 ();
    0x000044e4 mov r7, r0                                    |     r7 = r0;
    0x000044e6 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x000044e8 beq 0x44b2                                    |         goto label_2;
                                                             |     }
    0x000044ea ldr.w r0, [pc, 0x78c]                         |     
    0x000044ee add r0, pc                                    |     r0 = 0x916c;
    0x000044f0 blx 0xfe8                                     |     g_strdup ();
    0x000044f4 str r0, [r6]                                  |     *(r6) = r0;
    0x000044f6 cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x000044f8 bne.w 0x422c                                  |         goto label_1;
                                                             |     }
    0x000044fc b 0x424e                                      |     goto label_0;
    0x000044fe ldr.w r0, [pc, 0x77c]                         |     
    0x00004502 add r0, pc                                    |     r0 = 0x9184;
    0x00004504 blx 0x1100                                    |     r0 = fcn_00001100 ();
    0x00004508 mov r7, r0                                    |     r7 = r0;
    0x0000450a cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x0000450c beq 0x44b2                                    |         goto label_2;
                                                             |     }
    0x0000450e ldr.w r0, [pc, 0x770]                         |     
    0x00004512 add r0, pc                                    |     r0 = 0x9198;
    0x00004514 blx 0xfe8                                     |     g_strdup ();
    0x00004518 str r0, [r6]                                  |     *(r6) = r0;
    0x0000451a cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x0000451c bne.w 0x422c                                  |         goto label_1;
                                                             |     }
    0x00004520 b 0x424e                                      |     goto label_0;
    0x00004522 ldr.w r0, [pc, 0x760]                         |     
    0x00004526 add r0, pc                                    |     r0 = 0x91b0;
    0x00004528 blx 0x1100                                    |     fcn_00001100 ();
    0x0000452a stcl p6, c4, [sl, 0x1c]!                      |     __asm ("stcl p6, c4, [sl, 0x1c]!");
    0x0000452e cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x00004530 beq 0x44b2                                    |         goto label_2;
                                                             |     }
    0x00004532 ldr.w r0, [pc, 0x754]                         |     
    0x00004536 add r0, pc                                    |     r0 = 0x91c4;
    0x00004538 blx 0xfe8                                     |     g_strdup ();
    0x0000453c str r0, [r6]                                  |     *(r6) = r0;
    0x0000453e cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x00004540 bne.w 0x422c                                  |         goto label_1;
                                                             |     }
    0x00004544 b 0x424e                                      |     goto label_0;
    0x00004546 ldr.w r0, [pc, 0x744]                         |     
    0x0000454a add r0, pc                                    |     r0 = 0x91dc;
    0x0000454c blx 0x1100                                    |     r0 = fcn_00001100 ();
    0x00004550 mov r7, r0                                    |     r7 = r0;
    0x00004552 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x00004554 beq 0x44b2                                    |         goto label_2;
                                                             |     }
    0x00004556 ldr.w r0, [pc, 0x738]                         |     
    0x0000455a add r0, pc                                    |     r0 = 0x91f0;
    0x0000455c blx 0xfe8                                     |     g_strdup ();
    0x00004560 str r0, [r6]                                  |     *(r6) = r0;
    0x00004562 cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x00004564 bne.w 0x422c                                  |         goto label_1;
                                                             |     }
    0x00004568 b 0x424e                                      |     goto label_0;
    0x0000456a cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x0000456c beq.w 0x4ba2                                  |         goto label_43;
                                                             |     }
    0x00004570 ldrh r3, [r4, 2]                              |     r3 = *((r4 + 2));
    0x00004572 movs r1, 0                                    |     r1 = 0;
    0x00004574 str r1, [r4, 8]                               |     *((r4 + 8)) = r1;
                                                             |     if (r3 != 0) {
    0x00004576 cbz r3, 0x4584                                |         
    0x00004578 ldr r0, [r4, 4]                               |         r0 = *((r4 + 4));
                                                             |         if (r0 == 0) {
    0x0000457a cbz r0, 0x4584                                |             goto label_15;
                                                             |         }
    0x0000457c ldrh r2, [r4, 0xc]                            |         r2 = *((r4 + 0xc));
    0x0000457e cmp r2, 0                                     |         
                                                             |         if (r2 != 0) {
    0x00004580 bne.w 0x4e98                                  |             goto label_44;
                                                             |         }
                                                             |     }
                                                             | label_15:
    0x00004584 movs r3, 0                                    |     r3 = 0;
    0x00004586 ldr.w r1, [pc, 0x70c]                         |     
    0x0000458a str r3, [sp]                                  |     *(sp) = r3;
    0x0000458c movs r2, 0x40                                 |     r2 = 0x40;
    0x0000458e ldr.w r3, [pc, 0x708]                         |     
    0x00004592 ldr.w r0, [pc, 0x708]                         |     
    0x00004596 add r1, pc                                    |     r1 = 0x9230;
    0x00004598 add r3, pc                                    |     r3 = 0x9236;
    0x0000459a add r0, pc                                    |     r0 = 0x923c;
    0x0000459c blx 0x106c                                    |     r0 = gst_caps_new_simple ();
    0x000045a0 mov r7, r0                                    |     r7 = r0;
    0x000045a2 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x000045a4 beq.w 0x444c                                  |         goto label_3;
                                                             |     }
    0x000045a8 ldr.w r0, [pc, 0x6f4]                         |     
    0x000045ac add r0, pc                                    |     r0 = 0x9250;
    0x000045ae blx 0xfe8                                     |     g_strdup ();
    0x000045b2 str r0, [r6]                                  |     *(r6) = r0;
    0x000045b4 b 0x444c                                      |     goto label_3;
    0x000045b6 ldr.w r0, [pc, 0x6ec]                         |     
    0x000045ba add r0, pc                                    |     r0 = 0x9264;
    0x000045bc blx 0x1100                                    |     r0 = fcn_00001100 ();
    0x000045c0 mov r7, r0                                    |     r7 = r0;
    0x000045c2 cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x000045c4 beq.w 0x4b12                                  |         goto label_45;
                                                             |     }
    0x000045c8 ldrh r2, [r4, 0xe]                            |     r2 = *((r4 + 0xe));
    0x000045ca movs r1, 0                                    |     r1 = 0;
    0x000045cc ldr r3, [r4, 8]                               |     r3 = *((r4 + 8));
    0x000045ce str r1, [sp, 0x18]                            |     var_18h = r1;
    0x000045d0 str r2, [sp, 0x14]                            |     var_14h = r2;
    0x000045d2 str r2, [sp, 8]                               |     var_8h = r2;
    0x000045d4 ldr.w r2, [pc, 0x6d0]                         |     
    0x000045d8 lsls r3, r3, 3                                |     r3 <<= 3;
    0x000045da ldr.w r1, [pc, 0x6d0]                         |     
    0x000045de add r2, pc                                    |     r2 = 0x928a;
    0x000045e0 str r2, [sp, 0xc]                             |     var_ch = r2;
    0x000045e2 add r1, pc                                    |     r1 = 0x9294;
    0x000045e4 ldr.w r2, [pc, 0x6c8]                         |     
    0x000045e8 add r2, pc                                    |     r2 = 0x929c;
    0x000045ea str r2, [sp]                                  |     *(sp) = r2;
    0x000045ec movs r2, 0x18                                 |     r2 = 0x18;
    0x000045ee str r2, [sp, 0x10]                            |     var_10h = r2;
    0x000045f0 str r2, [sp, 4]                               |     var_4h = r2;
    0x000045f2 blx 0xfb8                                     |     gst_caps_set_simple ();
    0x000045f6 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x000045f8 beq.w 0x444c                                  |         goto label_3;
                                                             |     }
    0x000045fc ldr.w r0, [pc, 0x6b4]                         |     
    0x00004600 add r0, pc                                    |     r0 = 0x92b8;
    0x00004602 blx 0xfe8                                     |     g_strdup ();
    0x00004606 str r0, [r6]                                  |     *(r6) = r0;
    0x00004608 b 0x444c                                      |     goto label_3;
    0x0000460a cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x0000460c beq.w 0x4af4                                  |         goto label_46;
                                                             |     }
    0x00004610 ldrh r3, [r4, 0xe]                            |     r3 = *((r4 + 0xe));
    0x00004612 cmp r3, 8                                     |     
    0x00004614 ittet ne                                      |     
                                                             |     if (r3 != 8) {
    0x00004616 ldrhne r3, [r4, 2]                            |         __asm ("ldrhne r3, [r4, 2]");
                                                             |     }
                                                             |     if (r3 == 8) {
    0x00004618 ldrne r2, [r4, 4]                             |         r2 = *((r4 + 4));
                                                             |     }
                                                             |     if (r3 != 8) {
    0x0000461a ldreq r3, [r4, 8]                             |         r3 = *((r4 + 8));
                                                             |     }
                                                             |     if (r3 != 8) {
    0x0000461c strhne r3, [r4, 0xc]                          |         __asm ("strhne r3, [r4, 0xc]");
                                                             |     }
    0x0000461e itttt ne                                      |     
                                                             |     if (r3 == 8) {
    0x00004620 mulne r3, r2, r3                              |         r3 = r2 * r3;
                                                             |     }
                                                             |     if (r3 == 8) {
    0x00004622 movne r2, 8                                   |         r2 = 8;
                                                             |     }
                                                             |     if (r3 != 8) {
    0x00004624 strhne r2, [r4, 0xe]                          |         __asm ("strhne r2, [r4, 0xe]");
                                                             |     }
                                                             |     if (r3 == 8) {
    0x00004626 strne r3, [r4, 8]                             |         *((r4 + 8)) = r3;
                                                             |     }
    0x00004628 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0000462a beq.w 0x4aac                                  |         goto label_47;
                                                             |     }
    0x0000462c strh r7, [r7, 0x10]                           |     *((r7 + 0x10)) = r7;
    0x0000462e ldrh r3, [r4, 0xc]                            |     r3 = *((r4 + 0xc));
    0x00004630 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00004632 beq.w 0x4aac                                  |         goto label_47;
                                                             |     }
    0x00004636 ldr.w r0, [pc, 0x680]                         |     
    0x0000463a add r0, pc                                    |     r0 = 0x92f8;
    0x0000463c blx 0x1100                                    |     r0 = fcn_00001100 ();
    0x00004640 mov r7, r0                                    |     r7 = r0;
    0x00004642 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x00004644 beq.w 0x422c                                  |         goto label_1;
                                                             |     }
    0x00004646 add r5, sp, 0x3c8                             |     r5 = sp + 0x3c8;
                                                             | label_9:
    0x00004648 ldr.w r0, [pc, 0x670]                         |     
    0x0000464c add r0, pc                                    |     r0 = 0x930c;
    0x0000464e blx 0xfe8                                     |     g_strdup ();
    0x00004652 str r0, [r6]                                  |     *(r6) = r0;
    0x00004654 b 0x422c                                      |     goto label_1;
    0x00004656 movs r3, 0                                    |     r3 = 0;
    0x00004658 ldr.w r1, [pc, 0x664]                         |     
    0x0000465a asrs r4, r4, 0x19                             |     r4 >>= 0x19;
    0x0000465c str r3, [sp]                                  |     *(sp) = r3;
    0x0000465e movs r2, 0x40                                 |     r2 = 0x40;
    0x00004660 ldr.w r3, [pc, 0x660]                         |     
    0x00004664 ldr.w r0, [pc, 0x660]                         |     
    0x00004668 add r1, pc                                    |     r1 = 0x932c;
    0x0000466a add r3, pc                                    |     r3 = 0x9332;
    0x0000466c add r0, pc                                    |     r0 = 0x9338;
    0x0000466e blx 0x106c                                    |     r0 = gst_caps_new_simple ();
    0x00004672 mov r7, r0                                    |     r7 = r0;
    0x00004674 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x00004676 beq.w 0x44b2                                  |         goto label_2;
                                                             |     }
    0x0000467a ldr.w r0, [pc, 0x650]                         |     
    0x0000467e add r0, pc                                    |     r0 = 0x9350;
    0x00004680 blx 0xfe8                                     |     g_strdup ();
    0x00004684 str r0, [r6]                                  |     *(r6) = r0;
    0x00004686 cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x00004688 bne.w 0x422c                                  |         goto label_1;
                                                             |     }
    0x0000468c b 0x424e                                      |     goto label_0;
    0x0000468e cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x00004690 beq.w 0x4e22                                  |         goto label_48;
                                                             |     }
    0x00004694 ldr r3, [r4, 8]                               |     r3 = *((r4 + 8));
    0x00004696 movw r2, 0xbb8                                |     r2 = 0xbb8;
    0x0000469a movw r1, 0x1388                               |     r1 = 0x1388;
    0x0000469e cmp r3, r2                                    |     
    0x000046a0 it ne                                         |     
                                                             |     if (r3 != r2) {
    0x000046a2 cmpne r3, 0x7d0                               |         __asm ("cmpne r3, 0x7d0");
                                                             |     }
    0x000046a6 ite eq                                        |     
                                                             |     if (r3 != r2) {
    0x000046a8 moveq r2, 1                                   |         r2 = 1;
                                                             |     }
                                                             |     if (r3 == r2) {
    0x000046aa movne r2, 0                                   |         r2 = 0;
                                                             |     }
    0x000046ac cmp.w r3, 0xfa0                               |     
    0x000046b0 it eq                                         |     
                                                             |     if (r3 != sym.imp.g_free) {
    0x000046b2 orreq r2, r2, 1                               |         r2 |= 1;
                                                             |     }
    0x000046b6 cmp r3, r1                                    |     
    0x000046b8 it eq                                         |     
                                                             |     if (r3 != r1) {
    0x000046ba orreq r2, r2, 1                               |         r2 |= 1;
                                                             |     }
    0x000046be cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x000046c0 beq.w 0x4c00                                  |         goto label_49;
                                                             |     }
    0x000046c4 movw r2, 0x4dd3                               |     
                                                             |     /* if there is a right shift of 4, then it's a division by 1/250 */
    0x000046c8 movt r2, 0x1062                               |     r2 = 0x10624dd3;
    0x000046cc umull r1, r2, r2, r3                          |     r1:r2 = r2 * r3;
    0x000046d0 lsls r3, r3, 3                                |     r3 <<= 3;
    0x000046d2 lsrs r2, r2, 6                                |     r2 >>= 6;
    0x000046d4 strh r2, [r4, 0xc]                            |     *((r4 + 0xc)) = r2;
                                                             | label_12:
    0x000046d6 str r3, [sp, 8]                               |     var_8h = r3;
    0x000046d8 movs r2, 0x40                                 |     r2 = 0x40;
    0x000046da ldr.w r3, [pc, 0x5f4]                         |     
    0x000046de ldr.w r1, [pc, 0x5f4]                         |     
    0x000046e2 ldr.w r0, [pc, 0x5f4]                         |     
    0x000046e6 add r3, pc                                    |     r3 = 0x93bc;
    0x000046e8 str r3, [sp]                                  |     *(sp) = r3;
    0x000046ea movs r3, 0                                    |     r3 = 0;
    0x000046ec str r3, [sp, 0xc]                             |     var_ch = r3;
    0x000046ee movs r3, 0x18                                 |     r3 = 0x18;
    0x000046f0 str r3, [sp, 4]                               |     var_4h = r3;
    0x000046f2 add r1, pc                                    |     r1 = 0x93cc;
    0x000046f4 ldr.w r3, [pc, 0x5e4]                         |     
    0x000046f8 add r0, pc                                    |     r0 = 0x93d6;
    0x000046fa add r3, pc                                    |     r3 = 0x93da;
    0x000046fc blx 0x106c                                    |     r0 = gst_caps_new_simple ();
    0x00004700 mov r7, r0                                    |     r7 = r0;
                                                             | label_13:
    0x00004702 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x00004704 beq.w 0x444c                                  |         goto label_3;
                                                             |     }
    0x00004708 ldr.w r0, [pc, 0x5d4]                         |     
    0x0000470c add r0, pc                                    |     r0 = 0x93f0;
    0x0000470e blx 0xfe8                                     |     g_strdup ();
    0x00004712 str r0, [r6]                                  |     *(r6) = r0;
    0x00004714 b 0x444c                                      |     goto label_3;
    0x00004716 cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x00004718 beq.w 0x4ad6                                  |         goto label_50;
                                                             |     }
    0x0000471c ldrh r3, [r4, 0xe]                            |     r3 = *((r4 + 0xe));
    0x0000471e cmp r3, 8                                     |     
    0x00004720 ittet ne                                      |     
                                                             |     if (r3 != 8) {
    0x00004722 ldrhne r3, [r4, 2]                            |         __asm ("ldrhne r3, [r4, 2]");
                                                             |     }
                                                             |     if (r3 == 8) {
    0x00004724 ldrne r2, [r4, 4]                             |         r2 = *((r4 + 4));
                                                             |     }
                                                             |     if (r3 != 8) {
    0x00004726 ldreq r3, [r4, 8]                             |         r3 = *((r4 + 8));
                                                             |     }
                                                             |     if (r3 != 8) {
    0x00004728 strhne r3, [r4, 0xc]                          |         __asm ("strhne r3, [r4, 0xc]");
                                                             |     }
    0x0000472a itttt ne                                      |     
                                                             |     if (r3 == 8) {
    0x0000472c mulne r3, r2, r3                              |         r3 = r2 * r3;
                                                             |     }
                                                             |     if (r3 == 8) {
    0x0000472e movne r2, 8                                   |         r2 = 8;
                                                             |     }
                                                             |     if (r3 != 8) {
    0x00004730 strhne r2, [r4, 0xe]                          |         __asm ("strhne r2, [r4, 0xe]");
                                                             |     }
                                                             |     if (r3 == 8) {
    0x00004732 strne r3, [r4, 8]                             |         *((r4 + 8)) = r3;
                                                             |     }
    0x00004734 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00004736 beq.w 0x4a82                                  |         goto label_51;
                                                             |     }
    0x0000473a ldrh r3, [r4, 0xc]                            |     r3 = *((r4 + 0xc));
    0x0000473c cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0000473e beq.w 0x4a82                                  |         goto label_51;
                                                             |     }
    0x00004742 ldr.w r0, [pc, 0x5a0]                         |     
    0x00004746 add r0, pc                                    |     r0 = 0x9430;
    0x00004748 blx 0x1100                                    |     r0 = fcn_00001100 ();
    0x0000474c mov r7, r0                                    |     r7 = r0;
    0x0000474e cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x00004750 beq.w 0x422c                                  |         goto label_1;
                                                             |     }
                                                             | label_8:
    0x00004754 ldr.w r0, [pc, 0x590]                         |     
    0x00004758 add r0, pc                                    |     r0 = 0x9444;
    0x0000475a blx 0xfe8                                     |     g_strdup ();
    0x0000475e str r0, [r6]                                  |     *(r6) = r0;
    0x00004760 b 0x422c                                      |     goto label_1;
    0x00004762 cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x00004764 beq.w 0x4b78                                  |         goto label_52;
                                                             |     }
    0x00004768 ldrh r3, [r4, 2]                              |     r3 = *((r4 + 2));
    0x0000476a movs r1, 0                                    |     r1 = 0;
    0x0000476c str r1, [r4, 8]                               |     *((r4 + 8)) = r1;
                                                             |     if (r3 != 0) {
    0x0000476e cbz r3, 0x477c                                |         
    0x00004770 ldr r0, [r4, 4]                               |         r0 = *((r4 + 4));
                                                             |         if (r0 == 0) {
    0x00004772 cbz r0, 0x477c                                |             goto label_16;
                                                             |         }
    0x00004774 ldrh r2, [r4, 0xc]                            |         r2 = *((r4 + 0xc));
    0x00004776 cmp r2, 0                                     |         
                                                             |         if (r2 != 0) {
    0x00004778 bne.w 0x4eae                                  |             goto label_53;
                                                             |         }
                                                             |     }
                                                             | label_16:
    0x0000477c movs r3, 0                                    |     r3 = 0;
    0x0000477e ldr.w r1, [pc, 0x56c]                         |     
    0x00004782 str r3, [sp]                                  |     *(sp) = r3;
    0x00004784 movs r2, 0x40                                 |     r2 = 0x40;
    0x00004786 ldr.w r3, [pc, 0x568]                         |     
    0x0000478a ldr.w r0, [pc, 0x568]                         |     
    0x0000478e add r1, pc                                    |     r1 = 0x9480;
    0x00004790 add r3, pc                                    |     r3 = 0x9486;
    0x00004792 add r0, pc                                    |     r0 = 0x948c;
    0x00004794 blx 0x106c                                    |     r0 = gst_caps_new_simple ();
    0x00004798 mov r7, r0                                    |     r7 = r0;
    0x0000479a cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x0000479c beq.w 0x444c                                  |         goto label_3;
                                                             |     }
    0x000047a0 ldr.w r0, [pc, 0x554]                         |     
    0x000047a4 add r0, pc                                    |     r0 = 0x94a0;
    0x000047a6 blx 0xfe8                                     |     g_strdup ();
    0x000047aa str r0, [r6]                                  |     *(r6) = r0;
    0x000047ac b 0x444c                                      |     goto label_3;
    0x000047ae cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x000047b0 beq.w 0x4bf2                                  |         goto label_54;
                                                             |     }
    0x000047b4 ldrh r0, [r4, 0xc]                            |     r0 = *((r4 + 0xc));
    0x000047b6 ldrh.w sl, [r4, 2]                            |     sl = *((r4 + 2));
    0x000047ba ldrh r7, [r4, 0xe]                            |     r7 = *((r4 + 0xe));
    0x000047bc cmp.w r0, sl, lsl 2                           |     
    0x000047be lsrs r2, r1, 0x1e                             |     r2 = r1 >> 0x1e;
                                                             |     if (r2 > r1) {
    0x000047c0 bgt.w 0x4a7a                                  |         goto label_55;
                                                             |     }
    0x000047c4 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000047c6 beq.w 0x4a7a                                  |         goto label_55;
                                                             |     }
    0x000047ca lsls r0, r0, 3                                |     r0 <<= 3;
    0x000047cc mov r1, sl                                    |     r1 = sl;
    0x000047ce bl 0x6078                                     |     r0 = fcn_00006078 (r0, r1);
    0x000047d2 mov r3, r0                                    |     r3 = r0;
                                                             | label_7:
    0x000047d4 cmp r7, 0x20                                  |     
    0x000047d6 mov r2, r3                                    |     r2 = r3;
    0x000047d8 it hi                                         |     
                                                             |     if (r7 > 0x20) {
    0x000047da strhhi r3, [r4, 0xe]                          |         __asm ("strhhi r3, [r4, 0xe]");
                                                             |     }
    0x000047dc subs.w r0, r3, 8                              |     r0 = r3 - 8;
    0x000047e0 it ne                                         |     
                                                             |     if (r0 == r3) {
    0x000047e2 movne r0, 1                                   |         r0 = 1;
                                                             |     }
    0x000047e4 movw r1, 0x4d2                                |     r1 = 0x4d2;
    0x000047e8 blx 0x10e8                                    |     r0 = fcn_000010e8 ();
    0x000047ec cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000047ee beq.w 0x43d8                                  |         goto label_4;
                                                             |     }
    0x000047f2 blx 0xff4                                     |     gst_audio_format_to_string ();
    0x000047f6 ldr.w r2, [pc, 0x504]                         |     
    0x000047fa movs r1, 0                                    |     r1 = 0;
    0x000047fc str r1, [sp, 0x18]                            |     var_18h = r1;
    0x000047fe movs r1, 0x18                                 |     r1 = 0x18;
    0x00004800 mov r3, r0                                    |     r3 = r0;
    0x00004802 str r1, [sp, 0x10]                            |     var_10h = r1;
    0x00004804 add r2, pc                                    |     r2 = 0x9506;
    0x00004806 ldr.w r1, [pc, 0x4f8]                         |     
    0x0000480a str r2, [sp, 0xc]                             |     var_ch = r2;
    0x0000480c ldr.w r2, [pc, 0x4f4]                         |     
    0x00004810 ldr.w r0, [pc, 0x4f4]                         |     
    0x00004814 add r1, pc                                    |     r1 = 0x951a;
    0x00004816 str.w sl, [sp, 0x14]                          |     __asm ("str.w sl, [var_14h]");
    0x0000481a add r2, pc                                    |     r2 = 0x9522;
    0x0000481c str r2, [sp, 8]                               |     var_8h = r2;
    0x0000481e add r0, pc                                    |     r0 = 0x952a;
    0x00004820 ldr.w r2, [pc, 0x4e8]                         |     
    0x00004824 add r2, pc                                    |     r2 = 0x9534;
    0x00004826 str r2, [sp]                                  |     *(sp) = r2;
    0x00004828 movs r2, 0x40                                 |     r2 = 0x40;
    0x0000482a str r2, [sp, 4]                               |     var_4h = r2;
    0x0000482c blx 0x106c                                    |     gst_caps_new_simple ();
    0x00004830 cmp.w sl, 8                                   |     
    0x00004834 mov r7, r0                                    |     r7 = r0;
                                                             |     if (sl <= 8) {
    0x00004836 ble.w 0x49d4                                  |         goto label_56;
                                                             |     }
                                                             | label_6:
    0x0000483a cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x0000483c beq.w 0x422c                                  |         goto label_1;
                                                             |     }
    0x00004840 ldr.w r0, [pc, 0x4cc]                         |     
    0x00004844 ldrh r1, [r4, 0xe]                            |     r1 = *((r4 + 0xe));
    0x00004846 add r0, pc                                    |     r0 = 0x955a;
    0x00004848 blx 0x1054                                    |     g_strdup_printf ()
    0x0000484c str r0, [r6]                                  |     *(r6) = r0;
    0x0000484e b 0x422c                                      |     goto label_1;
    0x00004850 ldr.w r3, [pc, 0x4c0]                         |     
    0x00004854 movs r2, 0x18                                 |     r2 = 0x18;
    0x00004856 ldr.w r1, [pc, 0x4c0]                         |     
    0x0000485a movs r7, 0                                    |     r7 = 0;
    0x0000485c ldr.w r0, [pc, 0x4bc]                         |     
    0x00004860 add r3, pc                                    |     r3 = 0x9578;
    0x00004862 str r2, [sp, 4]                               |     var_4h = r2;
    0x00004864 str r3, [sp]                                  |     *(sp) = r3;
    0x00004866 movs r3, 3                                    |     r3 = 3;
    0x00004868 strd r3, r7, [sp, 8]                          |     __asm ("strd r3, r7, [sp, 8]");
    0x0000486c add r1, pc                                    |     r1 = 0x958a;
    0x0000486e add r0, pc                                    |     r0 = 0x958e;
    0x00004870 movs r3, 1                                    |     r3 = 1;
    0x00004872 blx 0x106c                                    |     r0 = gst_caps_new_simple ();
    0x00004876 mov r7, r0                                    |     r7 = r0;
    0x00004878 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x0000487a beq.w 0x44b2                                  |         goto label_2;
                                                             |     }
    0x0000487e ldr.w r0, [pc, 0x4a0]                         |     
    0x00004882 add r0, pc                                    |     r0 = 0x95a8;
    0x00004884 blx 0xfe8                                     |     g_strdup ();
    0x00004888 str r0, [r6]                                  |     *(r6) = r0;
    0x0000488a cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x0000488c bne.w 0x422c                                  |         goto label_1;
                                                             |     }
    0x00004890 b 0x424e                                      |     goto label_0;
    0x00004892 ldr.w r3, [pc, 0x490]                         |     
    0x00004896 movs r2, 0x18                                 |     r2 = 0x18;
    0x00004898 ldr.w r1, [pc, 0x48c]                         |     
    0x0000489c mov.w ip, 0                                   |     
    0x000048a0 ldr.w r0, [pc, 0x488]                         |     
    0x000048a4 add r3, pc                                    |     r3 = 0x95ce;
    0x000048a6 str r2, [sp, 4]                               |     var_4h = r2;
    0x000048a8 str r3, [sp]                                  |     *(sp) = r3;
    0x000048aa movs r3, 2                                    |     r3 = 2;
    0x000048ac strd r3, ip, [sp, 8]                          |     __asm ("strd r3, ip, [sp, 8]");
    0x000048b0 add r1, pc                                    |     r1 = 0x95dc;
    0x000048b2 add r0, pc                                    |     r0 = 0x95e2;
    0x000048b4 movs r3, 1                                    |     r3 = 1;
    0x000048b6 blx 0x106c                                    |     r0 = gst_caps_new_simple ();
    0x000048ba mov r7, r0                                    |     r7 = r0;
    0x000048bc cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x000048be beq.w 0x44b2                                  |         goto label_2;
                                                             |     }
    0x000048c2 ldr.w r0, [pc, 0x46c]                         |     
    0x000048c6 add r0, pc                                    |     r0 = 0x95fc;
    0x000048c8 blx 0xfe8                                     |     g_strdup ();
    0x000048cc str r0, [r6]                                  |     *(r6) = r0;
    0x000048ce cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x000048d0 bne.w 0x422c                                  |         goto label_1;
                                                             |     }
    0x000048d4 b 0x424e                                      |     goto label_0;
    0x000048d6 movs r3, 0                                    |     r3 = 0;
    0x000048d8 ldr.w r1, [pc, 0x458]                         |     
    0x000048dc str r3, [sp]                                  |     *(sp) = r3;
    0x000048de movs r2, 0x40                                 |     r2 = 0x40;
    0x000048e0 ldr.w r3, [pc, 0x454]                         |     
    0x000048e4 ldr.w r0, [pc, 0x454]                         |     
    0x000048e8 add r1, pc                                    |     r1 = 0x9620;
    0x000048ea add r3, pc                                    |     r3 = 0x9626;
    0x000048ec add r0, pc                                    |     r0 = 0x962c;
    0x000048ee blx 0x106c                                    |     gst_caps_new_simple ();
    0x000048f0 subs.w r6, lr, r7, lsl 16                     |     r6 = lr - (r7 << 16);
    0x000048f4 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x000048f6 beq.w 0x44b2                                  |         goto label_2;
                                                             |     }
    0x000048fa ldr.w r0, [pc, 0x444]                         |     
    0x000048fe add r0, pc                                    |     r0 = 0x9644;
    0x00004900 blx 0xfe8                                     |     g_strdup ();
    0x00004904 str r0, [r6]                                  |     *(r6) = r0;
    0x00004906 cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x00004908 bne.w 0x422c                                  |         goto label_1;
                                                             |     }
    0x0000490c b 0x424e                                      |     goto label_0;
    0x0000490e movs r3, 0                                    |     r3 = 0;
    0x00004910 ldr.w r1, [pc, 0x430]                         |     
    0x00004914 str r3, [sp]                                  |     *(sp) = r3;
    0x00004916 movs r2, 0x40                                 |     r2 = 0x40;
    0x00004918 ldr.w r3, [pc, 0x42c]                         |     
    0x0000491a adds r4, 0x2c                                 |     r4 += 0x2c;
    0x0000491c ldr.w r0, [pc, 0x42c]                         |     
    0x00004920 add r1, pc                                    |     r1 = 0x9668;
    0x00004922 add r3, pc                                    |     r3 = 0x966e;
    0x00004924 add r0, pc                                    |     r0 = 0x9674;
    0x00004926 blx 0x106c                                    |     gst_caps_new_simple ();
    0x00004928 sub.w r6, r2, r7, lsl 16                      |     r6 = r2 - (r7 << 16);
    0x0000492c cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x0000492e beq.w 0x44b2                                  |         goto label_2;
                                                             |     }
    0x00004932 ldr.w r0, [pc, 0x41c]                         |     
    0x00004936 add r0, pc                                    |     r0 = 0x968c;
    0x00004938 blx 0xfe8                                     |     g_strdup ();
    0x0000493c str r0, [r6]                                  |     *(r6) = r0;
    0x0000493e cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x00004940 bne.w 0x422c                                  |         goto label_1;
                                                             |     }
    0x00004944 b 0x424e                                      |     goto label_0;
    0x00004946 cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x00004948 beq.w 0x4e12                                  |         goto label_57;
                                                             |     }
    0x0000494c ldrh r0, [r4, 0xc]                            |     r0 = *((r4 + 0xc));
    0x0000494e ldrh.w sl, [r4, 2]                            |     sl = *((r4 + 2));
    0x00004952 cmp r0, 0                                     |     
    0x00004954 it ne                                         |     
                                                             |     if (r0 == 0) {
    0x00004956 cmpne sl, 0                                   |         __asm ("cmpne sl, 0");
                                                             |         goto label_58;
                                                             |     }
                                                             |     if (r0 == 0) {
                                                             | label_58:
    0x0000495a beq.w 0x43d8                                  |         goto label_4;
                                                             |     }
    0x0000495e cmp.w r0, sl, lsl 3                           |     
                                                             |     if (r0 == sl) {
    0x00004962 beq 0x496c                                    |         goto label_59;
                                                             |     }
    0x00004964 cmp.w r0, sl, lsl 2                           |     
                                                             |     if (r0 != sl) {
    0x00004968 bne.w 0x43d8                                  |         goto label_4;
                                                             |     }
                                                             | label_59:
    0x0000496c lsls r0, r0, 3                                |     r0 <<= 3;
    0x0000496e mov r1, sl                                    |     r1 = sl;
    0x00004970 bl 0x6078                                     |     r0 = fcn_00006078 (r0, r1);
    0x00004974 cmp r0, 0x40                                  |     
                                                             |     if (r0 == 0x40) {
    0x00004976 beq.w 0x4bec                                  |         goto label_60;
                                                             |     }
    0x0000497a ldr r3, [pc, 0x3d8]                           |     
    0x0000497c add r3, pc                                    |     r3 = 0x96d6;
                                                             | label_11:
    0x0000497e ldr r2, [pc, 0x3d8]                           |     
    0x00004980 movs r1, 0                                    |     r1 = 0;
    0x00004982 str r1, [sp, 0x18]                            |     var_18h = r1;
    0x00004984 movs r1, 0x18                                 |     r1 = 0x18;
    0x00004986 str r1, [sp, 0x10]                            |     var_10h = r1;
    0x00004988 add r2, pc                                    |     r2 = 0x96e6;
    0x0000498a ldr r1, [pc, 0x3d0]                           |     
    0x0000498c str r2, [sp, 0xc]                             |     var_ch = r2;
    0x0000498e ldr r2, [pc, 0x3d0]                           |     
    0x00004990 ldr r0, [pc, 0x3d0]                           |     
    0x00004992 add r1, pc                                    |     r1 = 0x96f4;
    0x00004994 str.w sl, [sp, 0x14]                          |     __asm ("str.w sl, [var_14h]");
    0x00004998 add r2, pc                                    |     r2 = 0x96fe;
    0x0000499a str r2, [sp, 8]                               |     var_8h = r2;
    0x0000499c add r0, pc                                    |     r0 = 0x9704;
    0x0000499e ldr r2, [pc, 0x3c8]                           |     
    0x000049a0 add r2, pc                                    |     r2 = 0x970e;
    0x000049a2 str r2, [sp]                                  |     *(sp) = r2;
    0x000049a4 movs r2, 0x40                                 |     r2 = 0x40;
    0x000049a6 str r2, [sp, 4]                               |     var_4h = r2;
    0x000049a8 blx 0x106c                                    |     gst_caps_new_simple ();
    0x000049ac cmp.w sl, 8                                   |     
    0x000049b0 mov r7, r0                                    |     r7 = r0;
    0x000049b2 ble 0x49de                                    |     
                                                             |     while (1) {
    0x000049b4 cmp r6, 0                                     |         
                                                             |         if (r6 == 0) {
    0x000049b6 beq.w 0x4b58                                  |             goto label_61;
                                                             |         }
    0x000049ba ldr r0, [pc, 0x3b0]                           |         
    0x000049bc ldrh r1, [r4, 0xe]                            |         r1 = *((r4 + 0xe));
    0x000049be add r0, pc                                    |         r0 = 0x9730;
    0x000049c0 blx 0x1054                                    |         g_strdup_printf ()
    0x000049c4 str r0, [r6]                                  |         *(r6) = r0;
    0x000049c6 b 0x422c                                      |         goto label_1;
                                                             | label_41:
    0x000049c8 ldr r0, [pc, 0x3a4]                           |         
    0x000049ca add r0, pc                                    |         r0 = 0x973e;
    0x000049cc blx 0xfe8                                     |         g_strdup ();
    0x000049d0 str r0, [r6]                                  |         *(r6) = r0;
    0x000049d2 b 0x4422                                      |         goto label_5;
                                                             | label_56:
    0x000049d4 mov r2, fp                                    |         r2 = fp;
    0x000049d6 mov r1, sl                                    |         r1 = sl;
    0x000049d8 bl 0x1274                                     |         fcn_00001274 (r0, r1, r2);
    0x000049dc b 0x483a                                      |         goto label_6;
    0x000049de mov r2, fp                                    |         r2 = fp;
    0x000049e0 mov r1, sl                                    |         r1 = sl;
    0x000049e2 bl 0x1274                                     |         fcn_00001274 (r0, r1, r2);
    0x000049e6 b 0x49b4                                      |         
                                                             |     }
                                                             | label_40:
    0x000049e8 ldr r0, [pc, 0x388]                           |     
    0x000049ea add r0, pc                                    |     r0 = 0x9762;
    0x000049ec blx 0x1100                                    |     r0 = fcn_00001100 ();
    0x000049f0 mov r7, r0                                    |     r7 = r0;
    0x000049f2 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x000049f4 beq.w 0x424e                                  |         goto label_0;
                                                             |     }
    0x000049f8 ldr r0, [pc, 0x37c]                           |     
    0x000049fa add r0, pc                                    |     r0 = 0x9776;
    0x000049fc blx 0xfe8                                     |     g_strdup ();
    0x00004a00 str r0, [r6]                                  |     *(r6) = r0;
    0x00004a02 b 0x424e                                      |     goto label_0;
                                                             | label_38:
    0x00004a04 ldr r0, [pc, 0x374]                           |     
    0x00004a06 add r0, pc                                    |     r0 = 0x9786;
    0x00004a08 blx 0x1100                                    |     r0 = fcn_00001100 ();
    0x00004a0c mov r7, r0                                    |     r7 = r0;
    0x00004a0e cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x00004a10 beq.w 0x44b2                                  |         goto label_2;
                                                             |     }
    0x00004a14 ldr r0, [pc, 0x368]                           |     
    0x00004a16 add r0, pc                                    |     r0 = 0x979a;
    0x00004a18 blx 0xfe8                                     |     g_strdup ();
    0x00004a1c str r0, [r6]                                  |     *(r6) = r0;
    0x00004a1e cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x00004a20 bne.w 0x422c                                  |         goto label_1;
                                                             |     }
    0x00004a24 b 0x424e                                      |     goto label_0;
                                                             | label_33:
    0x00004a26 ldr r1, [pc, 0x35c]                           |     
    0x00004a28 movs r3, 0                                    |     r3 = 0;
    0x00004a2a ldr r0, [pc, 0x35c]                           |     
    0x00004a2c movs r2, 0x18                                 |     r2 = 0x18;
    0x00004a2e str r3, [sp]                                  |     *(sp) = r3;
    0x00004a30 movs r3, 4                                    |     r3 = 4;
    0x00004a32 add r1, pc                                    |     r1 = 0x97bc;
    0x00004a34 add r0, pc                                    |     r0 = 0x97c2;
    0x00004a36 blx 0x106c                                    |     r0 = gst_caps_new_simple ();
    0x00004a3a mov r7, r0                                    |     r7 = r0;
    0x00004a3c cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x00004a3e beq.w 0x44b2                                  |         goto label_2;
                                                             |     }
    0x00004a42 ldr r0, [pc, 0x348]                           |     
    0x00004a44 add r0, pc                                    |     r0 = 0x97d6;
    0x00004a46 blx 0xfe8                                     |     g_strdup ();
    0x00004a4a str r0, [r6]                                  |     *(r6) = r0;
    0x00004a4c cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x00004a4e bne.w 0x422c                                  |         goto label_1;
                                                             |     }
    0x00004a50 add r3, sp, 0x3b4                             |     r3 = sp + 0x3b4;
    0x00004a52 b.w 0x424e                                    |     goto label_0;
                                                             | label_29:
    0x00004a56 ldr r0, [pc, 0x338]                           |     
    0x00004a58 add r0, pc                                    |     r0 = 0x97ee;
    0x00004a5a blx 0x1100                                    |     r0 = fcn_00001100 ();
    0x00004a5e mov r7, r0                                    |     r7 = r0;
    0x00004a60 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x00004a62 beq.w 0x44b2                                  |         goto label_2;
                                                             |     }
    0x00004a66 ldr r0, [pc, 0x32c]                           |     
    0x00004a68 add r0, pc                                    |     r0 = 0x9802;
    0x00004a6a blx 0xfe8                                     |     g_strdup ();
    0x00004a6e str r0, [r6]                                  |     *(r6) = r0;
    0x00004a70 cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x00004a72 bne.w 0x422c                                  |         goto label_1;
                                                             |     }
    0x00004a76 b.w 0x424e                                    |     goto label_0;
                                                             | label_55:
    0x00004a7a adds r3, r7, 7                                |     r3 = r7 + 7;
    0x00004a7c bic r3, r3, 7                                 |     r3 = BIT_MASK (r3, 7);
    0x00004a80 b 0x47d4                                      |     goto label_7;
                                                             | label_51:
    0x00004a82 ldrh r2, [r4, 2]                              |     r2 = *((r4 + 2));
    0x00004a84 ldrh r3, [r4, 0xe]                            |     r3 = *((r4 + 0xe));
    0x00004a86 ldr r0, [pc, 0x310]                           |     
    0x00004a88 mul r3, r2, r3                                |     r3 = r2 * r3;
    0x00004a8c ldr r2, [r4, 4]                               |     r2 = *((r4 + 4));
    0x00004a8e add r0, pc                                    |     r0 = 0x982c;
    0x00004a90 asrs r3, r3, 3                                |     r3 >>= 3;
    0x00004a92 strh r3, [r4, 0xc]                            |     *((r4 + 0xc)) = r3;
    0x00004a94 uxth r3, r3                                   |     r3 = (int16_t) r3;
    0x00004a96 mul r3, r2, r3                                |     r3 = r2 * r3;
    0x00004a98 invalid                                       |     
    0x00004a9c blx 0x1100                                    |     r0 = fcn_00001100 ();
    0x00004aa0 mov r7, r0                                    |     r7 = r0;
    0x00004aa2 cmp r6, 0                                     |     
                                                             |     if (r6 != 0) {
    0x00004aa4 bne.w 0x4754                                  |         goto label_8;
                                                             |     }
    0x00004aa8 b.w 0x422c                                    |     goto label_1;
                                                             | label_47:
    0x00004aac ldrh r2, [r4, 2]                              |     r2 = *((r4 + 2));
    0x00004aae ldrh r3, [r4, 0xe]                            |     r3 = *((r4 + 0xe));
    0x00004ab0 ldr r0, [pc, 0x2e8]                           |     
    0x00004ab2 mul r3, r2, r3                                |     r3 = r2 * r3;
    0x00004ab6 ldr r2, [r4, 4]                               |     r2 = *((r4 + 4));
    0x00004ab8 add r0, pc                                    |     r0 = 0x9858;
    0x00004aba asrs r3, r3, 3                                |     r3 >>= 3;
    0x00004abc strh r3, [r4, 0xc]                            |     *((r4 + 0xc)) = r3;
    0x00004abe uxth r3, r3                                   |     r3 = (int16_t) r3;
    0x00004ac0 mul r3, r2, r3                                |     r3 = r2 * r3;
    0x00004ac4 str r3, [r4, 8]                               |     *((r4 + 8)) = r3;
    0x00004ac6 blx 0x1100                                    |     r0 = fcn_00001100 ();
    0x00004aca mov r7, r0                                    |     r7 = r0;
    0x00004acc cmp r6, 0                                     |     
                                                             |     if (r6 != 0) {
    0x00004ace bne.w 0x4648                                  |         goto label_9;
                                                             |     }
    0x00004ad0 add r5, sp, 0x2ec                             |     r5 = sp + 0x2ec;
    0x00004ad2 b.w 0x422c                                    |     goto label_1;
                                                             | label_50:
    0x00004ad6 ldr r0, [pc, 0x2c8]                           |     
    0x00004ad8 add r0, pc                                    |     r0 = 0x987e;
    0x00004ada blx 0x1100                                    |     fcn_00001100 ();
    0x00004adc adds.w r6, r2, r7, lsl 16                     |     r6 = r2 + (r7 << 16);
    0x00004ade mov r7, r0                                    |     r7 = r0;
    0x00004ae0 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x00004ae2 beq.w 0x424e                                  |         goto label_0;
                                                             |     }
    0x00004ae6 ldr r0, [pc, 0x2bc]                           |     
    0x00004ae8 add r0, pc                                    |     r0 = 0x9892;
    0x00004aea blx 0xfe8                                     |     g_strdup ();
    0x00004aee str r0, [r6]                                  |     *(r6) = r0;
    0x00004af0 b.w 0x424e                                    |     goto label_0;
                                                             | label_46:
    0x00004af4 ldr r0, [pc, 0x2b0]                           |     
    0x00004af6 add r0, pc                                    |     r0 = 0x98a2;
    0x00004af8 blx 0x1100                                    |     r0 = fcn_00001100 ();
    0x00004afc mov r7, r0                                    |     r7 = r0;
    0x00004afe cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x00004b00 beq.w 0x424e                                  |         goto label_0;
                                                             |     }
    0x00004b04 ldr r0, [pc, 0x2a4]                           |     
    0x00004b06 add r0, pc                                    |     r0 = 0x98b6;
    0x00004b08 blx 0xfe8                                     |     g_strdup ();
    0x00004b0c str r0, [r6]                                  |     *(r6) = r0;
    0x00004b0e b.w 0x424e                                    |     goto label_0;
                                                             | label_45:
    0x00004b12 ldr r3, [pc, 0x29c]                           |     r3 = *(0x4db2);
    0x00004b14 mvn ip, 0x80000000                            |     
    0x00004b18 ldr r1, [pc, 0x298]                           |     
    0x00004b1a ldr.w sl, [r8, r3]                            |     sl = *((r8 + r3));
    0x00004b1e mov r3, r4                                    |     r3 = r4;
    0x00004b20 add r1, pc                                    |     r1 = 0x98d8;
    0x00004b22 ldr.w r2, [sl]                                |     r2 = *(sl);
    0x00004b26 strd ip, r4, [sp]                             |     __asm ("strd ip, r4, [sp]");
    0x00004b2a blx 0xfb8                                     |     gst_caps_set_simple ();
                                                             |     if (r6 == 0) {
    0x00004b2e cbz r6, 0x4b3a                                |         goto label_10;
                                                             |     }
    0x00004b30 ldr r0, [pc, 0x284]                           |     
    0x00004b32 add r0, pc                                    |     r0 = 0x98ee;
    0x00004b34 blx 0xfe8                                     |     g_strdup ();
    0x00004b38 str r0, [r6]                                  |     *(r6) = r0;
                                                             |     do {
                                                             | label_10:
    0x00004b3a mvn r3, 0x80000000                            |         r3 = ~0x80000000;
    0x00004b3e movs r1, 0                                    |         r1 = 0;
    0x00004b40 ldr.w r2, [sl]                                |         r2 = *(sl);
    0x00004b44 mov r0, r7                                    |         r0 = r7;
    0x00004b46 strd r3, r1, [sp]                             |         __asm ("strd r3, r1, [sp]");
    0x00004b4a movs r3, 1                                    |         r3 = 1;
    0x00004b4c ldr r1, [pc, 0x26c]                           |         
    0x00004b4e add r1, pc                                    |         r1 = 0x990e;
    0x00004b50 blx 0xfb8                                     |         gst_caps_set_simple ();
    0x00004b52 bics.w r7, r2, pc, ror 31                     |         __asm ("bics.w r7, r2, pc, ror 31");
                                                             |         if (r3 != 0) {
    0x00004b56 cbnz r3, 0x4bb8                               |             goto label_62;
                                                             |         }
                                                             | label_61:
    0x00004b58 ldr r2, [pc, 0x264]                           |         
    0x00004b5a mov r0, r7                                    |         r0 = r7;
    0x00004b5c str r6, [sp, 0xc]                             |         var_ch = r6;
    0x00004b5e ldrh r3, [r4, 2]                              |         r3 = *((r4 + 2));
    0x00004b60 ldr r1, [pc, 0x260]                           |         
    0x00004b62 add r2, pc                                    |         r2 = 0x9926;
    0x00004b64 str r3, [sp, 8]                               |         var_8h = r3;
    0x00004b66 ldr r3, [r4, 4]                               |         r3 = *((r4 + 4));
    0x00004b68 add r1, pc                                    |         r1 = 0x9930;
    0x00004b6a str r2, [sp]                                  |         *(sp) = r2;
    0x00004b6c movs r2, 0x18                                 |         r2 = 0x18;
    0x00004b6e str r2, [sp, 4]                               |         var_4h = r2;
    0x00004b70 blx 0xfb8                                     |         gst_caps_set_simple ();
    0x00004b74 b.w 0x424e                                    |         goto label_0;
                                                             | label_52:
    0x00004b78 ldr r3, [pc, 0x24c]                           |         
    0x00004b7a movs r2, 0x40                                 |         r2 = 0x40;
    0x00004b7c ldr r1, [pc, 0x24c]                           |         
    0x00004b7e ldr r0, [pc, 0x250]                           |         
    0x00004b80 add r3, pc                                    |         r3 = 0x994c;
    0x00004b82 str r4, [sp]                                  |         *(sp) = r4;
    0x00004b84 add r1, pc                                    |         r1 = 0x9954;
    0x00004b86 add r0, pc                                    |         r0 = 0x995c;
    0x00004b88 blx 0x106c                                    |         r0 = gst_caps_new_simple ();
    0x00004b8c mov r7, r0                                    |         r7 = r0;
                                                             |         if (r6 == 0) {
    0x00004b8e cbz r6, 0x4bc4                                |             goto label_14;
                                                             |         }
    0x00004b90 ldr r0, [pc, 0x240]                           |         
    0x00004b92 add r0, pc                                    |         r0 = 0x996a;
    0x00004b94 blx 0xfe8                                     |         g_strdup ();
    0x00004b98 ldr r3, [pc, 0x214]                           |         r3 = *(0x4db0);
    0x00004b9a str r0, [r6]                                  |         *(r6) = r0;
    0x00004b9c ldr.w sl, [r8, r3]                            |         sl = *((r8 + r3));
    0x00004ba0 b 0x4b3a                                      |         
                                                             |     } while (1);
                                                             | label_43:
    0x00004ba2 ldr r3, [pc, 0x234]                           |     
    0x00004ba4 movs r2, 0x40                                 |     r2 = 0x40;
    0x00004ba6 ldr r1, [pc, 0x234]                           |     
    0x00004ba8 ldr r0, [pc, 0x234]                           |     
    0x00004baa add r3, pc                                    |     r3 = 0x9988;
    0x00004bac str r4, [sp]                                  |     *(sp) = r4;
    0x00004bae add r1, pc                                    |     r1 = 0x9990;
    0x00004bb0 add r0, pc                                    |     r0 = 0x9994;
    0x00004bb2 blx 0x106c                                    |     r0 = gst_caps_new_simple ();
    0x00004bb6 mov r7, r0                                    |     r7 = r0;
                                                             |     if (r6 == 0) {
                                                             | label_62:
    0x00004bb8 cbz r6, 0x4bc4                                |         goto label_14;
                                                             |     }
    0x00004bba ldr r0, [pc, 0x228]                           |     
    0x00004bbc add r0, pc                                    |     r0 = 0x99a6;
    0x00004bbe blx 0xfe8                                     |     g_strdup ();
    0x00004bc2 str r0, [r6]                                  |     *(r6) = r0;
                                                             |     do {
                                                             | label_14:
    0x00004bc4 ldr r3, [pc, 0x1e8]                           |         r3 = *(0x4db0);
    0x00004bc6 ldr.w sl, [r8, r3]                            |         sl = *((r8 + r3));
    0x00004bca b 0x4b3a                                      |         goto label_10;
                                                             | label_42:
    0x00004bcc ldr r3, [pc, 0x1e0]                           |         r3 = *(0x4db0);
    0x00004bce mvn r6, 0x80000000                            |         r6 = ~0x80000000;
    0x00004bd2 ldr r1, [pc, 0x214]                           |         
    0x00004bd4 mov r0, r7                                    |         r0 = r7;
    0x00004bd6 ldr.w sl, [r8, r3]                            |         sl = *((r8 + r3));
    0x00004bd8 adr r0, 0xc                                   |         r0 = 0xc;
    0x00004bda mov r3, r4                                    |         r3 = r4;
    0x00004bdc add r1, pc                                    |         r1 = 0x99ca;
    0x00004bde ldr.w r2, [sl]                                |         r2 = *(sl);
    0x00004be2 strd r6, r4, [sp]                             |         __asm ("strd r6, r4, [sp]");
    0x00004be6 blx 0xfb8                                     |         gst_caps_set_simple ();
    0x00004bea b 0x4b3a                                      |         goto label_10;
                                                             | label_60:
    0x00004bec ldr r3, [pc, 0x1fc]                           |         
    0x00004bee add r3, pc                                    |         r3 = 0x99de;
    0x00004bf0 b 0x497e                                      |         goto label_11;
                                                             | label_54:
    0x00004bf2 ldr r0, [pc, 0x1fc]                           |         
    0x00004bf4 add r0, pc                                    |         r0 = 0x99ea;
    0x00004bf6 blx 0x1130                                    |         r0 = fcn_00001130 ();
    0x00004bfa mov r7, r0                                    |         r7 = r0;
    0x00004bfc b.w 0x424e                                    |         goto label_0;
                                                             | label_49:
    0x00004c00 ldrh r3, [r4, 0xc]                            |         r3 = *((r4 + 0xc));
    0x00004c02 subs r1, r3, 2                                |         r1 = r3 - 2;
    0x00004c04 cmp r1, 3                                     |         
                                                             |         if (r1 <= 3) {
    0x00004c06 bhi.w 0x4df4                                  |             
    0x00004c08 strh r5, [r6, 6]                              |             *((r6 + 6)) = r5;
    0x00004c0a mov.w r2, 0x1f40                              |             r2 = 0x1f40;
    0x00004c0e mul r3, r2, r3                                |             r3 = r2 * r3;
    0x00004c12 b 0x46d6                                      |             goto label_12;
                                                             |         }
    0x00004df4 ldr.w r3, [pc, 0x450]                         |         
    0x00004df8 ldr.w r1, [pc, 0x450]                         |         
    0x00004dfc ldr.w r0, [pc, 0x450]                         |         
    0x00004e00 str r2, [sp]                                  |         *(sp) = r2;
    0x00004e02 add r3, pc                                    |         r3 = 0xa04e;
    0x00004e04 add r1, pc                                    |         r1 = 0xa054;
    0x00004e06 movs r2, 0x40                                 |         r2 = 0x40;
    0x00004e08 add r0, pc                                    |         r0 = 0xa05c;
    0x00004e0a blx 0x106c                                    |         r0 = gst_caps_new_simple ();
    0x00004e0e mov r7, r0                                    |         r7 = r0;
    0x00004e10 b 0x4702                                      |         goto label_13;
                                                             | label_57:
    0x00004e12 ldr.w r0, [pc, 0x440]                         |         
    0x00004e16 add r0, pc                                    |         r0 = 0xa070;
    0x00004e18 blx 0x1130                                    |         r0 = fcn_00001130 ();
    0x00004e1c mov r7, r0                                    |         r7 = r0;
    0x00004e1e b.w 0x424e                                    |         goto label_0;
                                                             | label_48:
    0x00004e22 ldr.w r3, [pc, 0x434]                         |         
    0x00004e26 movs r2, 0x40                                 |         r2 = 0x40;
    0x00004e28 ldr.w r1, [pc, 0x430]                         |         
    0x00004e2c ldr.w r0, [pc, 0x430]                         |         
    0x00004e30 add r3, pc                                    |         r3 = 0xa08e;
    0x00004e32 str r4, [sp]                                  |         *(sp) = r4;
    0x00004e34 add r1, pc                                    |         r1 = 0xa094;
    0x00004e36 add r0, pc                                    |         r0 = 0xa09a;
    0x00004e38 blx 0x106c                                    |         r0 = gst_caps_new_simple ();
    0x00004e3c mov r7, r0                                    |         r7 = r0;
    0x00004e3e cmp r6, 0                                     |         
    0x00004e40 beq.w 0x4bc4                                  |         
                                                             |     } while (r6 == 0);
    0x00004e44 ldr.w r0, [pc, 0x41c]                         |     
    0x00004e48 add r0, pc                                    |     r0 = 0xa0b0;
    0x00004e4a blx 0xfe8                                     |     g_strdup ();
    0x00004e4e str r0, [r6]                                  |     *(r6) = r0;
    0x00004e50 b 0x4bc4                                      |     goto label_14;
                                                             | label_35:
    0x00004e52 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x00004e54 mov.w r0, 0x3800                              |     r0 = 0x3800;
    0x00004e58 movs r1, 0x80                                 |     r1 = 0x80;
    0x00004e5a movt r0, 0x719b                               |     r0 = (r0 & 0xFFFF) | 0x719b0000;
    0x00004e5e movt r1, 0xaa00                               |     r1 = (r1 & 0xFFFF) | 0xaa000000;
    0x00004e62 cmp r3, r0                                    |     
    0x00004e64 it eq                                         |     
                                                             |     if (r3 != r0) {
    0x00004e66 cmpeq r2, r1                                  |         __asm ("cmpeq r2, r1");
                                                             |         goto label_63;
                                                             |     }
                                                             |     if (r3 != r0) {
                                                             | label_63:
    0x00004e68 bne.w 0x43d8                                  |         goto label_4;
                                                             |     }
    0x00004e6c cmp.w lr, 7                                   |     
                                                             |     if (lr > 7) {
    0x00004e70 bhi.w 0x50f2                                  |         goto label_64;
                                                             |     }
    0x00004e72 strh r7, [r7, 8]                              |     *((r7 + 8)) = r7;
    0x00004e74 cmp.w lr, 0                                   |     
                                                             |     if (lr == 0) {
    0x00004e78 beq.w 0x50b2                                  |         goto label_65;
                                                             |     }
    0x00004e7c add.w r2, lr, -1                              |     r2 = lr + -1;
    0x00004e80 cmp r2, 6                                     |     
                                                             |     if (r2 > 6) {
    0x00004e82 bhi.w 0x50a4                                  |         goto label_23;
                                                             |     }
                                                             |     /* switch table (8 cases) at 0x4e8a */
    0x00004e86 tbh [pc, r2, lsl 1]                           |     __asm ("tbh [pc, r2, lsl 1]");
                                                             | label_44:
    0x00004e98 sub.w r3, r2, r3, lsl 2                       |     r3 = r2 - (r3 << 2);
    0x00004e9c add.w r3, r3, r3, lsr 31                      |     r3 += (r3 >> 31);
    0x00004ea0 bic r3, r3, 1                                 |     r3 = BIT_MASK (r3, 1);
    0x00004ea4 blx 0x113c                                    |     fcn_0000113c ();
    0x00004ea8 str r0, [r4, 8]                               |     *((r4 + 8)) = r0;
    0x00004eaa b.w 0x4584                                    |     goto label_15;
                                                             | label_53:
    0x00004eae sub.w r3, r3, r3, lsl 3                       |     r3 -= (r3 << 3);
    0x00004eb2 add r3, r2                                    |     r3 += r2;
    0x00004eb4 add.w r3, r3, r3, lsr 31                      |     r3 += (r3 >> 31);
    0x00004eb8 bic r3, r3, 1                                 |     r3 = BIT_MASK (r3, 1);
    0x00004ebc blx 0x113c                                    |     fcn_0000113c ();
    0x00004ec0 str r0, [r4, 8]                               |     *((r4 + 8)) = r0;
    0x00004ec2 b 0x477c                                      |     goto label_16;
                                                             |     if (r4 != 0) {
    0x00004ec4 cbz r4, 0x4eea                                |         
    0x00004ec6 ldrh r3, [r4, 0xe]                            |         r3 = *((r4 + 0xe));
    0x00004ec8 cmp r3, 8                                     |         
                                                             |         if (r3 == 8) {
    0x00004eca beq.w 0x511e                                  |             goto label_66;
                                                             |         }
    0x00004ece ldrh r3, [r4, 2]                              |         r3 = *((r4 + 2));
    0x00004ed0 lsls r3, r3, 3                                |         r3 <<= 3;
    0x00004ed2 strh r3, [r4, 0xc]                            |         *((r4 + 0xc)) = r3;
    0x00004ed4 movs r3, 8                                    |         r3 = 8;
    0x00004ed6 strh r3, [r4, 0xe]                            |         *((r4 + 0xe)) = r3;
    0x00004ed8 str r3, [r4, 8]                               |         *((r4 + 8)) = r3;
                                                             | label_25:
    0x00004eda ldrh r3, [r4, 0xc]                            |         r3 = *((r4 + 0xc));
                                                             |         if (r3 != 0) {
    0x00004edc cbnz r3, 0x4eea                               |             goto label_67;
                                                             |         }
    0x00004ede ldrh r3, [r4, 0xe]                            |         r3 = *((r4 + 0xe));
                                                             | label_24:
    0x00004ee0 ldrh r2, [r4, 2]                              |         r2 = *((r4 + 2));
    0x00004ee2 str r3, [r4, 8]                               |         *((r4 + 8)) = r3;
    0x00004ee4 smulbb r3, r2, r3                             |         __asm ("smulbb r3, r2, r3");
    0x00004ee8 strh r3, [r4, 0xc]                            |         *((r4 + 0xc)) = r3;
                                                             |     }
                                                             | label_67:
    0x00004eea ldr r0, [pc, 0x37c]                           |     
    0x00004eec add r0, pc                                    |     r0 = 0xa15a;
    0x00004eee blx 0x1100                                    |     r0 = fcn_00001100 ();
    0x00004ef2 mov r7, r0                                    |     r7 = r0;
    0x00004ef4 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x00004ef6 beq.w 0x434c                                  |         goto label_17;
                                                             |     }
    0x00004efa ldr r0, [pc, 0x370]                           |     
    0x00004efc add r0, pc                                    |     r0 = 0xa16e;
    0x00004efe blx 0xfe8                                     |     g_strdup ();
    0x00004f02 str r0, [r6]                                  |     *(r6) = r0;
    0x00004f04 b.w 0x434c                                    |     goto label_17;
    0x00004f08 movw sl, 0x1ff                                |     sl = 0x1ff;
    0x00004f0c movs r4, 9                                    |     r4 = 9;
                                                             | label_20:
    0x00004f0e ldr.w sb, [sp, 0x30]                          |     sb = var_30h;
    0x00004f12 movs r1, 4                                    |     r1 = 4;
    0x00004f14 mov r0, sb                                    |     r0 = sb;
    0x00004f16 blx 0x1154                                    |     fcn_00001154 ();
    0x00004f1a movs r1, 4                                    |     r1 = 4;
    0x00004f1c mov r6, r0                                    |     r6 = r0;
    0x00004f1e mov r0, sb                                    |     r0 = sb;
    0x00004f20 mov.w sb, 0                                   |     sb = 0;
    0x00004f24 blx 0x1154                                    |     fcn_00001154 ();
    0x00004f28 ldr r2, [pc, 0x344]                           |     
    0x00004f2a str r0, [sp, 0x28]                            |     s1 = r0;
    0x00004f2c mov r0, sb                                    |     r0 = sb;
    0x00004f2e str.w sb, [sp, 0x2c]                          |     __asm ("str.w sb, [var_2ch]");
    0x00004f32 add r2, pc                                    |     
    0x00004f34 add.w r1, r2, 0x160                           |     r1 = r2 + 0x160;
    0x00004f38 add.w r2, r2, 0x1f0                           |     r2 = 0xa396;
    0x00004f3c str r2, [sp, 0x34]                            |     var_34h = r2;
                                                             |     do {
    0x00004f3e ldr r2, [r1]                                  |         r2 = *(r1);
    0x00004f40 tst.w sl, r2                                  |         
                                                             |         if ((sl & r2) != 0) {
    0x00004f44 beq 0x4f7c                                    |             
    0x00004f46 cmp r0, r4                                    |             
                                                             |             if (r0 >= r4) {
    0x00004f48 bge.w 0x5070                                  |                 goto label_68;
                                                             |             }
    0x00004f4c ldr r2, [r1, 4]                               |             r2 = *((r1 + 4));
    0x00004f4e movs r3, 1                                    |             r3 = 1;
    0x00004f50 sub.w ip, r2, 0x20                            |             
    0x00004f54 rsb.w lr, r2, 0x20                            |             lr = 0x20 - r2;
    0x00004f56 lsrs r0, r4, 0x18                             |             r0 = r4 >> 0x18;
    0x00004f58 lsl.w ip, r3, ip                              |             
    0x00004f5c lsr.w lr, r3, lr                              |             lr = r3 >> lr;
    0x00004f60 ldr r3, [sp, 0x2c]                            |             r3 = var_2ch;
    0x00004f62 orr.w ip, ip, lr                              |             
    0x00004f66 str.w r2, [r6, r0, lsl 2]                     |             __asm ("str.w r2, [r6, r0, lsl 2]");
    0x00004f6a adds r0, 1                                    |             r0++;
    0x00004f6c orr.w r3, ip, r3                              |             r3 = ip | r3;
    0x00004f70 str r3, [sp, 0x2c]                            |             var_2ch = r3;
    0x00004f72 movs r3, 1                                    |             r3 = 1;
    0x00004f74 lsl.w r2, r3, r2                              |             r2 = r3 << r2;
    0x00004f78 orr.w sb, r2, sb                              |             sb = r2 | sb;
                                                             |         }
    0x00004f7c ldr r3, [sp, 0x34]                            |         r3 = var_34h;
    0x00004f7e adds r1, 8                                    |         r1 += 8;
    0x00004f80 cmp r1, r3                                    |         
    0x00004f82 bne 0x4f3e                                    |         
                                                             |     } while (r1 != r3);
    0x00004f84 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x00004f86 orrs.w r2, sb, r3                             |     r2 = sb | r3;
                                                             |     if (r2 == sb) {
    0x00004f8a beq 0x5078                                    |         goto label_69;
                                                             |     }
    0x00004f8c cmp.w fp, 0                                   |     
                                                             |     if (fp == 0) {
    0x00004f90 beq 0x5078                                    |         goto label_69;
                                                             |     }
    0x00004f92 cmp r4, r0                                    |     
                                                             |     if (r4 != r0) {
    0x00004f94 beq 0x4fa8                                    |         
                                                             |         if (r4 <= r0) {
    0x00004f96 ble 0x4fa8                                    |             goto label_70;
                                                             |         }
    0x00004f98 ldr r3, [sp, 0x30]                            |         r3 = var_30h;
    0x00004f9a movs r1, 0xff                                 |         r1 = 0xff;
    0x00004f9c subs r2, r3, r0                               |         r2 = r3 - r0;
    0x00004f9e add.w r0, r6, r0, lsl 2                       |         r0 = r6 + (r0 << 2);
    0x00004fa2 lsls r2, r2, 2                                |         r2 <<= 2;
    0x00004fa4 blx 0x100c                                    |         memset (r0, r1, r2);
                                                             |     }
                                                             | label_70:
    0x00004fa8 ldr r3, [sp, 0x30]                            |     r3 = var_30h;
    0x00004faa mov r1, r6                                    |     r1 = r6;
    0x00004fac ldr.w sl, [sp, 0x28]                          |     sl = s1;
    0x00004fb0 lsls r2, r3, 2                                |     r2 = r3 << 2;
    0x00004fb2 mov r0, sl                                    |     r0 = sl;
    0x00004fb4 blx 0x1090                                    |     memcpy (r0, r1, r2);
    0x00004fb8 mov r1, r4                                    |     r1 = r4;
    0x00004fba mov r0, sl                                    |     r0 = sl;
    0x00004fbc blx 0x1078                                    |     r0 = gst_audio_channel_positions_to_valid_order ();
                                                             |     if (r0 != 0) {
    0x00004fc0 cbz r0, 0x4fd2                                |         
    0x00004fc2 ldr r2, [sp, 0x28]                            |         r2 = s1;
    0x00004fc4 mov r3, fp                                    |         r3 = fp;
    0x00004fc6 mov r0, r4                                    |         r0 = r4;
    0x00004fc8 mov r1, r6                                    |         r1 = r6;
    0x00004fca blx 0x1018                                    |         r0 = gst_audio_get_channel_reorder_map ();
    0x00004fce cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00004fd0 bne 0x5078                                    |             goto label_69;
                                                             |         }
                                                             |     }
    0x00004fd2 mov r0, r6                                    |     r0 = r6;
    0x00004fd4 blx 0xfa0                                     |     g_free ();
    0x00004fd8 ldr r0, [sp, 0x28]                            |     r0 = s1;
    0x00004fda blx 0xfa0                                     |     g_free ();
    0x00004fde b 0x5044                                      |     goto label_71;
                                                             |     if (r4 != 0) {
    0x00004fe0 cbz r4, 0x5004                                |         
    0x00004fe2 ldrh r3, [r4, 0xe]                            |         r3 = *((r4 + 0xe));
    0x00004fe4 cmp r3, 8                                     |         
                                                             |         if (r3 == 8) {
    0x00004fe6 beq 0x5022                                    |             goto label_72;
                                                             |         }
    0x00004fe8 ldrh r3, [r4, 2]                              |         r3 = *((r4 + 2));
    0x00004fea lsls r3, r3, 3                                |         r3 <<= 3;
    0x00004fec strh r3, [r4, 0xc]                            |         *((r4 + 0xc)) = r3;
    0x00004fee movs r3, 8                                    |         r3 = 8;
    0x00004ff0 strh r3, [r4, 0xe]                            |         *((r4 + 0xe)) = r3;
    0x00004ff2 str r3, [r4, 8]                               |         *((r4 + 8)) = r3;
                                                             | label_19:
    0x00004ff4 ldrh r3, [r4, 0xc]                            |         r3 = *((r4 + 0xc));
                                                             |         if (r3 != 0) {
    0x00004ff6 cbnz r3, 0x5004                               |             goto label_73;
                                                             |         }
    0x00004ff8 ldrh r3, [r4, 0xe]                            |         r3 = *((r4 + 0xe));
                                                             | label_18:
    0x00004ffa ldrh r2, [r4, 2]                              |         r2 = *((r4 + 2));
    0x00004ffc str r3, [r4, 8]                               |         *((r4 + 8)) = r3;
    0x00004ffe smulbb r3, r2, r3                             |         __asm ("smulbb r3, r2, r3");
    0x00005002 strh r3, [r4, 0xc]                            |         *((r4 + 0xc)) = r3;
                                                             |     }
                                                             | label_73:
    0x00005004 ldr r0, [pc, 0x26c]                           |     
    0x00005006 add r0, pc                                    |     r0 = 0xa27e;
    0x00005008 blx 0x1100                                    |     r0 = fcn_00001100 ();
    0x0000500c mov r7, r0                                    |     r7 = r0;
    0x0000500e cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x00005010 beq.w 0x434c                                  |         goto label_17;
                                                             |     }
    0x00005014 ldr r0, [pc, 0x260]                           |     
    0x00005016 add r0, pc                                    |     r0 = 0xa292;
    0x00005018 blx 0xfe8                                     |     g_strdup ();
    0x0000501c str r0, [r6]                                  |     *(r6) = r0;
    0x0000501e b.w 0x434c                                    |     goto label_17;
                                                             | label_72:
    0x00005022 ldr r2, [r4, 8]                               |     r2 = *((r4 + 8));
    0x00005024 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x00005026 beq 0x4ffa                                    |         goto label_18;
                                                             |     }
    0x00005028 b 0x4ff4                                      |     goto label_19;
    0x0000502a mov.w sl, 7                                   |     sl = 7;
    0x0000502e movs r4, 3                                    |     r4 = 3;
    0x00005030 b 0x4f0e                                      |     goto label_20;
    0x00005032 mov.w sl, 3                                   |     sl = 3;
    0x00005036 movs r4, 2                                    |     r4 = 2;
    0x00005038 b 0x4f0e                                      |     goto label_20;
                                                             | label_37:
    0x0000503a ldr r3, [sp, 0x30]                            |     r3 = var_30h;
    0x0000503c mov r4, r3                                    |     r4 = r3;
    0x0000503e cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00005040 bne.w 0x4f0e                                  |         goto label_20;
                                                             |     }
                                                             | label_71:
    0x00005044 mov r0, r7                                    |     r0 = r7;
    0x00005046 movs r7, 0                                    |     r7 = 0;
    0x00005048 blx 0x1084                                    |     gst_mini_object_unref ();
                                                             |     do {
                                                             | label_36:
    0x0000504c ldr r3, [pc, 0x22c]                           |         r3 = *(0x527c);
    0x0000504e ldr.w r3, [r8, r3]                            |         r3 = *((r8 + r3));
    0x00005052 ldr r2, [r3]                                  |         r2 = *(0x527c);
    0x00005054 b.w 0x4264                                    |         goto label_21;
    0x00005058 mov.w sl, 0x3f                                |         sl = 0x3f;
    0x0000505c movs r4, 6                                    |         r4 = 6;
    0x0000505e b 0x4f0e                                      |         goto label_20;
    0x00005060 mov.w sl, 0xf                                 |         sl = 0xf;
    0x00005064 movs r4, 4                                    |         r4 = 4;
    0x00005066 b 0x4f0e                                      |         goto label_20;
    0x00005068 mov.w sl, 0xff                                |         sl = 0xff;
    0x0000506c movs r4, 8                                    |         r4 = 8;
    0x0000506e b 0x4f0e                                      |         goto label_20;
                                                             | label_68:
    0x00005070 mov.w sb, 0                                   |         sb = 0;
    0x00005074 str.w sb, [sp, 0x2c]                          |         __asm ("str.w sb, [var_2ch]");
                                                             | label_69:
    0x00005078 ldr r3, [pc, 0x204]                           |         r3 = *(0x5280);
    0x0000507a mov r0, r7                                    |         r0 = r7;
    0x0000507c ldr r2, [sp, 0x2c]                            |         r2 = var_2ch;
    0x0000507e ldr r1, [pc, 0x204]                           |         
    0x00005080 ldr.w r3, [r8, r3]                            |         r3 = *((r8 + r3));
    0x00005084 str.w sb, [sp]                                |         __asm ("str.w sb, [sp]");
    0x00005088 str r2, [sp, 4]                               |         var_4h = r2;
    0x0000508a add r1, pc                                    |         r1 = 0xa314;
    0x0000508c ldr r2, [r3]                                  |         r2 = *(0x5280);
    0x0000508e movs r3, 0                                    |         r3 = 0;
    0x00005090 str r3, [sp, 8]                               |         var_8h = r3;
    0x00005092 blx 0xfb8                                     |         gst_caps_set_simple ();
    0x00005096 mov r0, r6                                    |         r0 = r6;
    0x00005098 blx 0xfa0                                     |         g_free ();
    0x0000509c ldr r0, [sp, 0x28]                            |         r0 = s1;
    0x0000509e blx 0xfa0                                     |         g_free ();
    0x000050a2 b 0x504c                                      |         
                                                             |     } while (1);
                                                             | label_23:
    0x000050a4 uxth.w r1, lr                                 |     r1 = (int16_t) lr;
    0x000050a8 movw r2, 0xfffe                               |     r2 = 0xfffe;
    0x000050ac cmp r1, r2                                    |     
                                                             |     if (r1 == r2) {
    0x000050ae beq.w 0x43d8                                  |         goto label_4;
                                                             |     }
                                                             | label_65:
    0x000050b2 mov r1, r7                                    |     r1 = r7;
    0x000050b4 uxth.w r0, lr                                 |     r0 = (int16_t) lr;
    0x000050b8 mov r3, r5                                    |     r3 = r5;
    0x000050ba str.w fp, [sp, 8]                             |     __asm ("str.w fp, [var_8h]");
    0x000050be mov r2, r4                                    |     r2 = r4;
    0x000050c0 str.w sb, [sp]                                |     __asm ("str.w sb, [sp]");
    0x000050c4 str r6, [sp, 4]                               |     var_4h = r6;
    0x000050c6 bl 0x4080                                     |     r0 = gst_riff_create_audio_caps ();
    0x000050ca mov r7, r0                                    |     r7 = r0;
    0x000050cc cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000050ce beq.w 0x43d8                                  |         goto label_4;
                                                             |     }
    0x000050d2 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x000050d4 beq.w 0x4276                                  |         goto label_22;
                                                             |     }
    0x000050d8 ldr r4, [r6]                                  |     r4 = *(r6);
    0x000050da movs r2, 0                                    |     r2 = 0;
    0x000050dc ldr r0, [pc, 0x1a8]                           |     
    0x000050de mov r1, r4                                    |     r1 = r4;
    0x000050e0 add r0, pc                                    |     r0 = 0xa36c;
    0x000050e2 blx 0x1184                                    |     fcn_00001184 ();
    0x000050e6 str r0, [r6]                                  |     *(r6) = r0;
    0x000050e8 mov r0, r4                                    |     r0 = r4;
    0x000050ea blx 0xfa0                                     |     g_free ();
    0x000050ee b.w 0x4276                                    |     goto label_22;
                                                             | label_64:
    0x000050f2 cmp.w lr, 0x92                                |     
                                                             |     if (lr != 0x92) {
    0x000050f6 bne 0x50a4                                    |         goto label_23;
                                                             |     }
    0x000050f8 ldr r0, [pc, 0x190]                           |     
    0x000050fa add r0, pc                                    |     r0 = 0xa38a;
    0x000050fc blx 0x1100                                    |     r0 = fcn_00001100 ();
    0x00005100 mov r7, r0                                    |     r7 = r0;
    0x00005102 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x00005104 beq.w 0x434c                                  |         goto label_17;
                                                             |     }
    0x00005108 ldr r0, [pc, 0x184]                           |     
    0x0000510a add r0, pc                                    |     r0 = 0xa39e;
    0x0000510c blx 0xfe8                                     |     g_strdup ();
    0x00005110 str r0, [r6]                                  |     *(r6) = r0;
    0x00005112 b.w 0x434c                                    |     goto label_17;
    0x00005116 movw sl, 0x7ff                                |     sl = 0x7ff;
    0x0000511a movs r4, 0xb                                  |     r4 = 0xb;
    0x0000511c b 0x4f0e                                      |     goto label_20;
                                                             | label_66:
    0x0000511e ldr r2, [r4, 8]                               |     r2 = *((r4 + 8));
    0x00005120 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x00005122 beq.w 0x4ee0                                  |         goto label_24;
                                                             |     }
    0x00005126 b 0x4eda                                      |     goto label_25;
    0x00005128 cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x0000512a beq.w 0x43d8                                  |         goto label_4;
                                                             |     }
    0x0000512e ldrh r0, [r4, 0xc]                            |     r0 = *((r4 + 0xc));
    0x00005130 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00005132 beq.w 0x43d8                                  |         goto label_4;
                                                             |     }
    0x00005136 ldrh r7, [r4, 2]                              |     r7 = *((r4 + 2));
    0x00005138 cmp r7, 0                                     |     
                                                             |     if (r7 == 0) {
    0x0000513a beq.w 0x43d8                                  |         goto label_4;
                                                             |     }
    0x0000513e ldr.w sb, [r4, 4]                             |     sb = *((r4 + 4));
    0x00005142 cmp.w sb, 0                                   |     
                                                             |     if (sb == 0) {
    0x00005146 beq.w 0x43d8                                  |         goto label_4;
                                                             |     }
    0x0000514a mov r1, r7                                    |     r1 = r7;
    0x0000514c lsls r0, r0, 3                                |     r0 <<= 3;
    0x0000514e bl 0x6078                                     |     r0 = fcn_00006078 (r0, r1);
    0x00005152 mov r3, r0                                    |     r3 = r0;
    0x00005154 mov r2, r0                                    |     r2 = r0;
    0x00005156 subs r0, 8                                    |     r0 -= 8;
    0x00005158 movw r1, 0x4d2                                |     r1 = 0x4d2;
    0x0000515c it ne                                         |     
                                                             |     if (r0 == 8) {
    0x0000515e movne r0, 1                                   |         r0 = 1;
                                                             |     }
    0x00005160 blx 0x10e8                                    |     fcn_000010e8 ();
    0x00005164 blx 0xff4                                     |     gst_audio_format_to_string ();
    0x00005168 ldr r2, [pc, 0x128]                           |     
    0x0000516a movs r1, 0                                    |     r1 = 0;
    0x0000516c mov r3, r0                                    |     r3 = r0;
    0x0000516e str r1, [sp, 0x24]                            |     var_24h = r1;
    0x00005170 ldr r0, [pc, 0x124]                           |     
    0x00005172 add r2, pc                                    |     r2 = 0xa40a;
    0x00005174 ldr r1, [pc, 0x124]                           |     
    0x00005176 str r2, [sp, 0x18]                            |     var_18h = r2;
    0x00005178 ldr r2, [pc, 0x124]                           |     
    0x0000517a add r0, pc                                    |     r0 = 0xa416;
    0x0000517c str r7, [sp, 0x14]                            |     var_14h = r7;
    0x0000517e add r1, pc                                    |     r1 = 0xa41e;
    0x00005180 str.w sb, [sp, 0x20]                          |     __asm ("str.w sb, [var_20h]");
    0x00005184 add r2, pc                                    |     r2 = 0xa428;
    0x00005186 str r2, [sp, 0xc]                             |     var_ch = r2;
    0x00005188 ldr r2, [pc, 0x118]                           |     
    0x0000518a add r2, pc                                    |     r2 = 0xa432;
    0x0000518c str r2, [sp, 8]                               |     var_8h = r2;
    0x0000518e ldr r2, [pc, 0x118]                           |     
    0x00005190 add r2, pc                                    |     r2 = 0xa43e;
    0x00005192 str r2, [sp]                                  |     *(sp) = r2;
    0x00005194 movs r2, 0x18                                 |     r2 = 0x18;
    0x00005196 str r2, [sp, 0x1c]                            |     var_1ch = r2;
    0x00005198 str r2, [sp, 0x10]                            |     var_10h = r2;
    0x0000519a movs r2, 0x40                                 |     r2 = 0x40;
    0x0000519c str r2, [sp, 4]                               |     var_4h = r2;
    0x0000519e blx 0x106c                                    |     r0 = gst_caps_new_simple ();
    0x000051a2 mov r7, r0                                    |     r7 = r0;
                                                             |     if (r6 != 0) {
    0x000051a4 cbz r6, 0x51b2                                |         
    0x000051a6 ldr r0, [pc, 0x104]                           |         
    0x000051a8 ldrh r1, [r4, 0xe]                            |         r1 = *((r4 + 0xe));
    0x000051aa add r0, pc                                    |         r0 = 0xa45c;
    0x000051ac blx 0x1054                                    |         g_strdup_printf ()
    0x000051b0 str r0, [r6]                                  |         *(r6) = r0;
                                                             |     }
                                                             | label_27:
    0x000051b2 cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x000051b4 bne.w 0x4356                                  |         goto label_26;
                                                             |     }
    0x000051b8 b.w 0x43d8                                    |     goto label_4;
    0x000051bc cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x000051be beq.w 0x43d8                                  |         goto label_4;
                                                             |     }
    0x000051c2 ldrh r0, [r4, 0xc]                            |     r0 = *((r4 + 0xc));
    0x000051c4 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000051c6 beq.w 0x43d8                                  |         goto label_4;
                                                             |     }
    0x000051ca ldrh r7, [r4, 2]                              |     r7 = *((r4 + 2));
    0x000051cc cmp r7, 0                                     |     
                                                             |     if (r7 == 0) {
    0x000051ce beq.w 0x43d8                                  |         goto label_4;
                                                             |     }
    0x000051d2 ldr.w sb, [r4, 4]                             |     sb = *((r4 + 4));
    0x000051d6 cmp.w sb, 0                                   |     
                                                             |     if (sb == 0) {
    0x000051da beq.w 0x43d8                                  |         goto label_4;
                                                             |     }
    0x000051dc add r0, sp, 0x3f4                             |     r0 = sp + 0x3f4;
    0x000051de lsls r0, r0, 3                                |     r0 <<= 3;
    0x000051e0 mov r1, r7                                    |     r1 = r7;
    0x000051e2 bl 0x6078                                     |     r0 = fcn_00006078 (r0, r1);
    0x000051e6 cmp r0, 0x20                                  |     
                                                             |     if (r0 == 0x20) {
    0x000051e8 beq 0x5242                                    |         goto label_74;
                                                             |     }
    0x000051ea ldr r3, [pc, 0xc4]                            |     
    0x000051ec add r3, pc                                    |     r3 = 0xa4a2;
                                                             | label_28:
    0x000051ee ldr r2, [pc, 0xc4]                            |     
    0x000051f0 movs r1, 0                                    |     r1 = 0;
    0x000051f2 str r1, [sp, 0x24]                            |     var_24h = r1;
    0x000051f4 ldr r0, [pc, 0xc0]                            |     
    0x000051f6 add r2, pc                                    |     r2 = 0xa4b0;
    0x000051f8 ldr r1, [pc, 0xc0]                            |     
    0x000051fa str r2, [sp, 0x18]                            |     var_18h = r2;
    0x000051fc ldr r2, [pc, 0xc0]                            |     
    0x000051fe add r0, pc                                    |     r0 = 0xa4ba;
    0x00005200 str r7, [sp, 0x14]                            |     var_14h = r7;
    0x00005202 add r1, pc                                    |     r1 = 0xa4c2;
    0x00005204 str.w sb, [sp, 0x20]                          |     __asm ("str.w sb, [var_20h]");
    0x00005208 add r2, pc                                    |     r2 = 0xa4cc;
    0x0000520a str r2, [sp, 0xc]                             |     var_ch = r2;
    0x0000520c ldr r2, [pc, 0xb4]                            |     
    0x0000520e add r2, pc                                    |     r2 = 0xa4d6;
    0x00005210 str r2, [sp, 8]                               |     var_8h = r2;
    0x00005212 ldr r2, [pc, 0xb4]                            |     
    0x00005214 add r2, pc                                    |     r2 = 0xa4e2;
    0x00005216 str r2, [sp]                                  |     *(sp) = r2;
    0x00005218 movs r2, 0x18                                 |     r2 = 0x18;
    0x0000521a str r2, [sp, 0x1c]                            |     var_1ch = r2;
    0x0000521c str r2, [sp, 0x10]                            |     var_10h = r2;
    0x0000521e movs r2, 0x40                                 |     r2 = 0x40;
    0x00005220 str r2, [sp, 4]                               |     var_4h = r2;
    0x00005222 blx 0x106c                                    |     r0 = gst_caps_new_simple ();
    0x00005226 mov r7, r0                                    |     r7 = r0;
    0x00005228 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x0000522a beq 0x51b2                                    |         goto label_27;
                                                             |     }
    0x0000522c ldr r0, [pc, 0x9c]                            |     
    0x0000522e ldrh r1, [r4, 0xe]                            |     r1 = *((r4 + 0xe));
    0x00005230 add r0, pc                                    |     r0 = 0xa500;
    0x00005232 blx 0x1054                                    |     g_strdup_printf ()
    0x00005236 str r0, [r6]                                  |     *(r6) = r0;
    0x00005238 cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x0000523a bne.w 0x4356                                  |         goto label_26;
                                                             |     }
    0x0000523e b.w 0x43d8                                    |     goto label_4;
                                                             | label_74:
    0x00005242 ldr r3, [pc, 0x8c]                            |     
    0x00005244 add r3, pc                                    |     r3 = 0xa51a;
    0x00005246 b 0x51ee                                      |     goto label_28;
                                                             | }


r2dec has crashed (info: /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libgstriff-1.0.so.0.2202.0 @ 0x12fc).
Please report the bug at https://github.com/radareorg/r2dec-js/issues
Use the option '--issue' or the command 'pddi' to generate 
the needed data for the issue.

[*] Function printf used 6 times libgstriff-1.0.so.0.2202.0