[*] Binary protection state of monolith

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


[*] Function printf tear down of monolith

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x11cd0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00011cd0 ()                  | void fcn_00011cd0 (int16_t arg_0h, int16_t arg_8h, int16_t arg_ch, int16_t arg1, int16_t arg2) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x00011cd0 push {r4, r5, r6, lr}         |     
    0x00011cd2 mov r4, r0                    |     r4 = r0;
    0x00011cd4 ldr r5, [r0]                  |     r5 = *(r0);
    0x00011cd6 sub sp, 0x10                  |     
    0x00011cd8 mov r6, r1                    |     r6 = r1;
    0x00011cda sub.w r3, r5, 0x10            |     r3 = r5 - 0x10;
    0x00011cde cmp r3, 0x44                  |     
                                             |     if (r3 <= 0x44) {
    0x00011ce0 bhi 0x11d2c                   |         
                                             |         /* switch table (69 cases) at 0x11ce6 */
    0x00011ce2 tbb [pc, r3]                  |         __asm ("tbb aav.0x000000ff");
                                             |     }
    0x00011d2c blx 0xfa38                    |     r0 = fcn_0000fa38 ();
    0x00011d30 cmp r5, r0                    |     
                                             |     if (r5 == r0) {
    0x00011d32 beq.w 0x11e5a                 |         goto label_5;
                                             |     }
    0x00011d36 mov r0, r5                    |     r0 = r5;
    0x00011d38 blx 0xe364                    |     fcn_0000e364 ();
    0x00011d3c ldr r2, [pc, 0x17c]           |     
    0x00011d3e mov r3, r0                    |     r3 = r0;
    0x00011d40 movs r1, 8                    |     r1 = 8;
    0x00011d42 movs r0, 0                    |     r0 = 0;
    0x00011d44 add r2, pc                    |     r2 = 0x23c04;
    0x00011d46 blx 0xe318                    |     gst_element_error_printf ()
                                             |     do {
                                             | label_0:
    0x00011d4a movs r0, 0                    |         r0 = 0;
                                             | label_2:
    0x00011d4c add sp, 0x10                  |         
    0x00011d4e pop {r4, r5, r6, pc}          |         
    0x00011d50 blx 0xe8e4                    |         r0 = fcn_0000e8e4 ();
    0x00011d54 mov r4, r0                    |         r4 = r0;
    0x00011d56 mov r0, r6                    |         r0 = r6;
    0x00011d58 blx 0xe8e4                    |         r0 = fcn_0000e8e4 ();
    0x00011d5c subs r0, r4, r0               |         r0 = r4 - r0;
    0x00011d5e clz r0, r0                    |         r0 &= r0;
    0x00011d62 lsrs r0, r0, 5                |         r0 >>= 5;
    0x00011d64 add sp, 0x10                  |         
    0x00011d66 pop {r4, r5, r6, pc}          |         
    0x00011d68 blx 0xec9c                    |         r0 = snd_device_name_free_hint ();
    0x00011d6c mov r4, r0                    |         r4 = r0;
    0x00011d6e mov r0, r6                    |         r0 = r6;
    0x00011d70 blx 0xec9c                    |         r0 = snd_device_name_free_hint ();
    0x00011d74 subs r0, r4, r0               |         r0 = r4 - r0;
    0x00011d76 clz r0, r0                    |         r0 &= r0;
    0x00011d7a lsrs r0, r0, 5                |         r0 >>= 5;
    0x00011d7c add sp, 0x10                  |         
    0x00011d7e pop {r4, r5, r6, pc}          |         
    0x00011d80 blx 0xde78                    |         r0 = fcn_0000de78 ();
    0x00011d84 mov r4, r0                    |         r4 = r0;
    0x00011d86 mov r0, r6                    |         r0 = r6;
    0x00011d88 blx 0xde78                    |         r0 = fcn_0000de78 ();
    0x00011d8c subs r0, r4, r0               |         r0 = r4 - r0;
    0x00011d8e clz r0, r0                    |         r0 &= r0;
    0x00011d92 lsrs r0, r0, 5                |         r0 >>= 5;
    0x00011d94 add sp, 0x10                  |         
    0x00011d96 pop {r4, r5, r6, pc}          |         
    0x00011d98 blx 0xf83c                    |         r0 = gst_element_add_pad ();
    0x00011d9c mov r4, r0                    |         r4 = r0;
    0x00011d9e mov r0, r6                    |         r0 = r6;
    0x00011da0 blx 0xf83c                    |         r0 = gst_element_add_pad ();
    0x00011da4 subs r0, r4, r0               |         r0 = r4 - r0;
    0x00011da6 clz r0, r0                    |         r0 &= r0;
    0x00011daa lsrs r0, r0, 5                |         r0 >>= 5;
    0x00011dac add sp, 0x10                  |         
    0x00011dae pop {r4, r5, r6, pc}          |         
    0x00011db0 blx 0xf084                    |         r0 = fcn_0000f084 ();
    0x00011db4 mov r5, r0                    |         r5 = r0;
    0x00011db6 mov r4, r1                    |         r4 = r1;
    0x00011db8 mov r0, r6                    |         r0 = r6;
    0x00011dba blx 0xf084                    |         fcn_0000f084 ();
    0x00011dbe cmp r4, r1                    |         
    0x00011dc0 it eq                         |         
                                             |         if (r4 == r1) {
    0x00011dc2 cmpeq r5, r0                  |             __asm ("cmpeq r5, r0");
                                             |         }
    0x00011dc4 ite eq                        |         
                                             |         if (r4 != r1) {
    0x00011dc6 moveq r0, 1                   |             r0 = 1;
                                             |         }
                                             |         if (r4 == r1) {
    0x00011dc8 movne r0, 0                   |             r0 = 0;
                                             |         }
    0x00011dca add sp, 0x10                  |         
    0x00011dcc pop {r4, r5, r6, pc}          |         
    0x00011dce blx 0xfb48                    |         r0 = accept (r0, r1, r2);
    0x00011dd2 mov r5, r0                    |         r5 = r0;
    0x00011dd4 mov r4, r1                    |         r4 = r1;
    0x00011dd6 mov r0, r6                    |         r0 = r6;
    0x00011dd8 blx 0xfb48                    |         accept (r0, r1, r2);
    0x00011ddc cmp r4, r1                    |         
    0x00011dde it eq                         |         
                                             |         if (r4 == r1) {
    0x00011de0 cmpeq r5, r0                  |             __asm ("cmpeq r5, r0");
                                             |         }
    0x00011de2 ite eq                        |         
                                             |         if (r4 != r1) {
    0x00011de4 moveq r0, 1                   |             r0 = 1;
                                             |         }
                                             |         if (r4 == r1) {
    0x00011de6 movne r0, 0                   |             r0 = 0;
                                             |         }
    0x00011de8 add sp, 0x10                  |         
    0x00011dea pop {r4, r5, r6, pc}          |         
    0x00011dec blx 0xe010                    |         fcn_0000e010 ();
    0x00011df0 mov r0, r6                    |         r0 = r6;
    0x00011df2 vstr d0, [sp]                 |         __asm ("vstr d0, [sp]");
    0x00011df6 blx 0xe010                    |         fcn_0000e010 ();
    0x00011dfa vstr d0, [sp, 8]              |         __asm ("vstr d0, [sp, 8]");
    0x00011dfe mov r0, sp                    |         r0 = sp;
    0x00011e00 ldr r2, [sp]                  |         r2 = *(sp);
    0x00011e02 ldr r3, [sp, 8]               |         r3 = *(arg_8h);
    0x00011e04 cmp r2, r3                    |         
                                             |         if (r2 == r3) {
    0x00011e06 beq 0x11eae                   |             goto label_6;
                                             |         }
                                             | label_3:
    0x00011e08 movs r0, 1                    |         r0 = 1;
                                             | label_4:
    0x00011e0a eor r0, r0, 1                 |         r0 ^= 1;
    0x00011e0e add sp, 0x10                  |         
    0x00011e10 pop {r4, r5, r6, pc}          |         
    0x00011e12 blx 0xdd6c                    |         r0 = g_hash_table_ref ();
    0x00011e16 mov r4, r0                    |         r4 = r0;
    0x00011e18 mov r0, r6                    |         r0 = r6;
    0x00011e1a blx 0xdd6c                    |         r0 = g_hash_table_ref ();
    0x00011e1e mov r1, r0                    |         r1 = r0;
    0x00011e20 mov r0, r4                    |         r0 = r4;
    0x00011e22 blx 0x1061c                   |         r0 = fcn_0001061c ();
    0x00011e26 clz r0, r0                    |         r0 &= r0;
    0x00011e2a lsrs r0, r0, 5                |         r0 >>= 5;
    0x00011e2c add sp, 0x10                  |         
    0x00011e2e pop {r4, r5, r6, pc}          |         
    0x00011e30 blx 0xf024                    |         r0 = fcn_0000f024 ();
    0x00011e34 mov r4, r0                    |         r4 = r0;
    0x00011e36 mov r0, r6                    |         r0 = r6;
    0x00011e38 blx 0xf024                    |         r0 = fcn_0000f024 ();
    0x00011e3c orrs.w r3, r4, r0             |         r3 = r4 | r0;
                                             |         if (r3 == r4) {
    0x00011e40 beq 0x11eaa                   |             goto label_7;
                                             |         }
    0x00011e42 cmp r0, 0                     |         
    0x00011e44 it ne                         |         
                                             |         if (r0 != 0) {
    0x00011e46 cmpne r4, 0                   |             __asm ("cmpne r4, 0");
                                             |         }
    0x00011e48 beq.w 0x11d4a                 |         
                                             |     } while (r0 == 0);
    0x00011e4c mov r1, r0                    |     r1 = r0;
    0x00011e4e mov r0, r4                    |     r0 = r4;
    0x00011e50 add sp, 0x10                  |     
    0x00011e52 pop.w {r4, r5, r6, lr}        |     
    0x00011e56 b.w 0xf148                    |     void (*0xf148)() ();
                                             | label_5:
    0x00011e5a mov r0, r4                    |     r0 = r4;
    0x00011e5c blx 0x103f8                   |     r0 = fcn_000103f8 ();
    0x00011e60 mov r5, r0                    |     r5 = r0;
    0x00011e62 mov r0, r6                    |     r0 = r6;
    0x00011e64 blx 0x103f8                   |     r0 = fcn_000103f8 ();
    0x00011e68 orrs.w r3, r5, r0             |     r3 = r5 | r0;
    0x00011e6c mov r4, r0                    |     r4 = r0;
                                             |     if (r3 == r5) {
    0x00011e6e beq 0x11eaa                   |         goto label_7;
                                             |     }
    0x00011e70 cmp r0, 0                     |     
    0x00011e72 it ne                         |     
                                             |     if (r0 == 0) {
    0x00011e74 cmpne r5, 0                   |         __asm ("cmpne r5, 0");
                                             |         goto label_8;
                                             |     }
                                             |     if (r0 == 0) {
                                             | label_8:
    0x00011e76 beq.w 0x11d4a                 |         goto label_0;
                                             |     }
    0x00011e7a mov r0, r5                    |     r0 = r5;
    0x00011e7c blx 0xf200                    |     r0 = g_list_free_full ();
    0x00011e80 mov r6, r0                    |     r6 = r0;
    0x00011e82 mov r0, r4                    |     r0 = r4;
    0x00011e84 blx 0xf200                    |     r0 = g_list_free_full ();
    0x00011e88 cmp r6, r0                    |     
                                             |     if (r6 != r0) {
    0x00011e8a bne.w 0x11d4a                 |         goto label_0;
                                             |     }
    0x00011e8e ldr r0, [r5]                  |     r0 = *(r5);
                                             |     if (r0 == 0) {
    0x00011e90 cbz r0, 0x11eaa               |         goto label_7;
                                             |     }
    0x00011e92 subs r4, 4                    |     r4 -= 4;
                                             | label_1:
    0x00011e94 ldr r1, [r4, 4]!              |     r1 = *((r4 += 4));
    0x00011e98 blx 0x1061c                   |     r0 = fcn_0001061c ();
    0x00011e9c cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x00011e9e bne.w 0x11d4a                 |         goto label_0;
                                             |     }
    0x00011ea2 ldr r0, [r5, 4]!              |     r0 = *((r5 += 4));
    0x00011ea6 cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x00011ea8 bne 0x11e94                   |         goto label_1;
                                             |     }
                                             | label_7:
    0x00011eaa movs r0, 1                    |     r0 = 1;
    0x00011eac b 0x11d4c                     |     goto label_2;
                                             | label_6:
    0x00011eae ldr r2, [r0, 4]               |     r2 = *((r0 + 4));
    0x00011eb0 ldr r3, [sp, 0xc]             |     r3 = *(arg_ch);
    0x00011eb2 cmp r2, r3                    |     
    0x00011eb4 it eq                         |     
                                             |     if (r2 == r3) {
    0x00011eb6 moveq r0, 0                   |         r0 = 0;
                                             |         goto label_9;
                                             |     }
                                             |     if (r2 != r3) {
                                             | label_9:
    0x00011eb8 bne 0x11e08                   |         goto label_3;
                                             |     }
    0x00011eba b 0x11e0a                     |     goto label_4;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x137ac */
                                             | #include <stdint.h>
                                             |  
                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                             |  
    ; (fcn) fcn.000137ac ()                  | void fcn_000137ac (int16_t arg_0h, int16_t arg_8h, int16_t arg_ch, int16_t arg1, int16_t arg2) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x000137ac push {r4, r5, r6, lr}         |     
    0x000137ae mov r4, r0                    |     r4 = r0;
    0x000137b0 ldr r5, [r0]                  |     r5 = *(r0);
    0x000137b2 sub sp, 0x10                  |     
    0x000137b4 mov r6, r1                    |     r6 = r1;
    0x000137b6 sub.w r3, r5, 0x10            |     r3 = r5 - 0x10;
    0x000137ba cmp r3, 0x44                  |     
                                             |     if (r3 <= 0x44) {
    0x000137bc bhi 0x13808                   |         
                                             |         /* switch table (69 cases) at 0x137c2 */
    0x000137be tbb [pc, r3]                  |         __asm ("tbb aav.0x000000ff");
                                             |     }
    0x00013808 blx 0xfa38                    |     r0 = fcn_0000fa38 ();
    0x0001380c cmp r5, r0                    |     
                                             |     if (r5 == r0) {
    0x0001380e beq.w 0x13936                 |         goto label_5;
                                             |     }
    0x00013812 mov r0, r5                    |     r0 = r5;
    0x00013814 blx 0xe364                    |     fcn_0000e364 ();
    0x00013816 invalid                       |     
    0x0001381a mov r3, r0                    |     r3 = r0;
    0x0001381c movs r1, 8                    |     r1 = 8;
    0x0001381e movs r0, 0                    |     r0 = 0;
    0x00013820 add r2, pc                    |     r2 += pc;
    0x00013822 blx 0xe318                    |     gst_element_error_printf ()
                                             |     do {
                                             | label_0:
    0x00013826 movs r0, 0                    |         r0 = 0;
                                             | label_2:
    0x00013828 add sp, 0x10                  |         
    0x0001382a pop {r4, r5, r6, pc}          |         
    0x0001382c blx 0xe8e4                    |         r0 = fcn_0000e8e4 ();
    0x00013830 mov r4, r0                    |         r4 = r0;
    0x00013832 mov r0, r6                    |         r0 = r6;
    0x00013834 blx 0xe8e4                    |         r0 = fcn_0000e8e4 ();
    0x00013838 subs r0, r4, r0               |         r0 = r4 - r0;
    0x0001383a clz r0, r0                    |         r0 &= r0;
    0x0001383e lsrs r0, r0, 5                |         r0 >>= 5;
    0x00013840 add sp, 0x10                  |         
    0x00013842 pop {r4, r5, r6, pc}          |         
    0x00013844 blx 0xec9c                    |         r0 = snd_device_name_free_hint ();
    0x00013848 mov r4, r0                    |         r4 = r0;
    0x0001384a mov r0, r6                    |         r0 = r6;
    0x0001384c blx 0xec9c                    |         r0 = snd_device_name_free_hint ();
    0x0001384e bic.w sl, r6, r0, asr 4       |         sl = BIT_MASK (r6, r0);
    0x00013852 clz r0, r0                    |         r0 &= r0;
    0x00013856 lsrs r0, r0, 5                |         r0 >>= 5;
    0x00013858 add sp, 0x10                  |         
    0x0001385a pop {r4, r5, r6, pc}          |         
    0x0001385c blx 0xde78                    |         r0 = fcn_0000de78 ();
    0x00013860 mov r4, r0                    |         r4 = r0;
    0x00013862 mov r0, r6                    |         r0 = r6;
    0x00013864 blx 0xde78                    |         r0 = fcn_0000de78 ();
    0x00013868 subs r0, r4, r0               |         r0 = r4 - r0;
    0x0001386a clz r0, r0                    |         r0 &= r0;
    0x0001386e lsrs r0, r0, 5                |         r0 >>= 5;
    0x00013870 add sp, 0x10                  |         
    0x00013872 pop {r4, r5, r6, pc}          |         
    0x00013874 blx 0xf83c                    |         r0 = gst_element_add_pad ();
    0x00013878 mov r4, r0                    |         r4 = r0;
    0x0001387a mov r0, r6                    |         r0 = r6;
    0x0001387c blx 0xf83c                    |         r0 = gst_element_add_pad ();
    0x00013880 subs r0, r4, r0               |         r0 = r4 - r0;
    0x00013882 clz r0, r0                    |         r0 &= r0;
    0x00013886 lsrs r0, r0, 5                |         r0 >>= 5;
    0x00013888 add sp, 0x10                  |         
    0x0001388a pop {r4, r5, r6, pc}          |         
    0x0001388c blx 0xf084                    |         r0 = fcn_0000f084 ();
    0x00013890 mov r5, r0                    |         r5 = r0;
    0x00013892 mov r4, r1                    |         r4 = r1;
    0x00013894 mov r0, r6                    |         r0 = r6;
    0x00013896 blx 0xf084                    |         fcn_0000f084 ();
    0x0001389a cmp r4, r1                    |         
    0x0001389c it eq                         |         
                                             |         if (r4 == r1) {
    0x0001389e cmpeq r5, r0                  |             __asm ("cmpeq r5, r0");
                                             |         }
    0x000138a0 ite eq                        |         
                                             |         if (r4 != r1) {
    0x000138a2 moveq r0, 1                   |             r0 = 1;
                                             |         }
                                             |         if (r4 == r1) {
    0x000138a4 movne r0, 0                   |             r0 = 0;
                                             |         }
    0x000138a6 add sp, 0x10                  |         
    0x000138a8 pop {r4, r5, r6, pc}          |         
    0x000138aa blx 0xfb48                    |         r0 = accept (r0, r1, r2);
    0x000138ae mov r5, r0                    |         r5 = r0;
    0x000138b0 mov r4, r1                    |         r4 = r1;
    0x000138b2 mov r0, r6                    |         r0 = r6;
    0x000138b4 blx 0xfb48                    |         accept (r0, r1, r2);
    0x000138b8 cmp r4, r1                    |         
    0x000138ba it eq                         |         
                                             |         if (r4 == r1) {
    0x000138bc cmpeq r5, r0                  |             __asm ("cmpeq r5, r0");
                                             |         }
    0x000138be ite eq                        |         
                                             |         if (r4 != r1) {
    0x000138c0 moveq r0, 1                   |             r0 = 1;
                                             |         }
                                             |         if (r4 == r1) {
    0x000138c2 movne r0, 0                   |             r0 = 0;
                                             |         }
    0x000138c4 add sp, 0x10                  |         
    0x000138c6 pop {r4, r5, r6, pc}          |         
    0x000138c8 blx 0xe010                    |         fcn_0000e010 ();
    0x000138cc mov r0, r6                    |         r0 = r6;
    0x000138ce vstr d0, [sp]                 |         __asm ("vstr d0, [sp]");
    0x000138d2 blx 0xe010                    |         fcn_0000e010 ();
    0x000138d6 vstr d0, [sp, 8]              |         __asm ("vstr d0, [sp, 8]");
    0x000138da mov r0, sp                    |         r0 = sp;
    0x000138dc ldr r2, [sp]                  |         r2 = *(sp);
    0x000138de ldr r3, [sp, 8]               |         r3 = *(arg_8h);
    0x000138e0 cmp r2, r3                    |         
                                             |         if (r2 == r3) {
    0x000138e2 beq 0x1398a                   |             goto label_6;
                                             |         }
                                             | label_3:
    0x000138e4 movs r0, 1                    |         r0 = 1;
                                             | label_4:
    0x000138e6 eor r0, r0, 1                 |         r0 ^= 1;
    0x000138ea add sp, 0x10                  |         
    0x000138ec pop {r4, r5, r6, pc}          |         
    0x000138ee blx 0xdd6c                    |         r0 = g_hash_table_ref ();
    0x000138f2 mov r4, r0                    |         r4 = r0;
    0x000138f4 mov r0, r6                    |         r0 = r6;
    0x000138f6 blx 0xdd6c                    |         r0 = g_hash_table_ref ();
    0x000138fa mov r1, r0                    |         r1 = r0;
    0x000138fc mov r0, r4                    |         r0 = r4;
    0x000138fe blx 0x1061c                   |         r0 = fcn_0001061c ();
    0x00013902 clz r0, r0                    |         r0 &= r0;
    0x00013906 lsrs r0, r0, 5                |         r0 >>= 5;
    0x00013908 add sp, 0x10                  |         
    0x0001390a pop {r4, r5, r6, pc}          |         
    0x0001390c blx 0xf024                    |         r0 = fcn_0000f024 ();
    0x00013910 mov r4, r0                    |         r4 = r0;
    0x00013912 mov r0, r6                    |         r0 = r6;
    0x00013914 blx 0xf024                    |         fcn_0000f024 ();
    0x00013916 invalid                       |         
    0x0001391a lsls r0, r0, 0xc              |         r0 <<= 0xc;
                                             |         if (r0 == r0) {
    0x0001391c beq 0x13986                   |             goto label_7;
                                             |         }
    0x0001391e cmp r0, 0                     |         
    0x00013920 it ne                         |         
                                             |         if (r0 != 0) {
    0x00013922 cmpne r4, 0                   |             __asm ("cmpne r4, 0");
                                             |         }
    0x00013924 beq.w 0x13826                 |         
                                             |     } while (r0 == 0);
    0x00013928 mov r1, r0                    |     r1 = r0;
    0x0001392a mov r0, r4                    |     r0 = r4;
    0x0001392c add sp, 0x10                  |     
    0x0001392e pop.w {r4, r5, r6, lr}        |     
    0x00013932 b.w 0xf148                    |     void (*0xf148)() ();
                                             | label_5:
    0x00013936 mov r0, r4                    |     r0 = r4;
    0x00013938 blx 0x103f8                   |     r0 = fcn_000103f8 ();
    0x0001393c mov r5, r0                    |     r5 = r0;
    0x0001393e mov r0, r6                    |     r0 = r6;
    0x00013940 blx 0x103f8                   |     r0 = fcn_000103f8 ();
    0x00013944 orrs.w r3, r5, r0             |     r3 = r5 | r0;
    0x00013948 mov r4, r0                    |     r4 = r0;
                                             |     if (r3 == r5) {
    0x0001394a beq 0x13986                   |         goto label_7;
                                             |     }
    0x0001394c cmp r0, 0                     |     
    0x0001394e it ne                         |     
                                             |     if (r0 == 0) {
    0x00013950 cmpne r5, 0                   |         __asm ("cmpne r5, 0");
                                             |         goto label_8;
                                             |     }
                                             |     if (r0 == 0) {
                                             | label_8:
    0x00013952 beq.w 0x13826                 |         goto label_0;
                                             |     }
    0x00013956 mov r0, r5                    |     r0 = r5;
    0x00013958 blx 0xf200                    |     r0 = g_list_free_full ();
    0x0001395c mov r6, r0                    |     r6 = r0;
    0x0001395e mov r0, r4                    |     r0 = r4;
    0x00013960 blx 0xf200                    |     r0 = g_list_free_full ();
    0x00013964 cmp r6, r0                    |     
                                             |     if (r6 != r0) {
    0x00013966 bne.w 0x13826                 |         goto label_0;
                                             |     }
    0x0001396a ldr r0, [r5]                  |     r0 = *(r5);
                                             |     if (r0 == 0) {
    0x0001396c cbz r0, 0x13986               |         goto label_7;
                                             |     }
    0x0001396e subs r4, 4                    |     r4 -= 4;
                                             | label_1:
    0x00013970 ldr r1, [r4, 4]!              |     r1 = *((r4 += 4));
    0x00013974 blx 0x1061c                   |     fcn_0001061c ();
    0x00013976 cdp p8, 5, c2, c2, c0, 0      |     __asm ("cdp p8, 5, c2, c2, c0, 0");
                                             |     if (r4 != 4) {
    0x0001397a bne.w 0x13826                 |         goto label_0;
                                             |     }
    0x0001397e ldr r0, [r5, 4]!              |     r0 = *((r5 += 4));
    0x00013982 cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x00013984 bne 0x13970                   |         goto label_1;
                                             |     }
                                             | label_7:
    0x00013986 movs r0, 1                    |     r0 = 1;
    0x00013988 b 0x13828                     |     goto label_2;
                                             | label_6:
    0x0001398a ldr r2, [r0, 4]               |     r2 = *((r0 + 4));
    0x0001398c ldr r3, [sp, 0xc]             |     r3 = *(arg_ch);
    0x0001398e cmp r2, r3                    |     
    0x00013990 it eq                         |     
                                             |     if (r2 == r3) {
    0x00013992 moveq r0, 0                   |         r0 = 0;
                                             |         goto label_9;
                                             |     }
                                             |     if (r2 != r3) {
                                             | label_9:
    0x00013994 bne 0x138e4                   |         goto label_3;
                                             |     }
    0x00013996 b 0x138e6                     |     goto label_4;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x14eb4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00014eb4 ()                  | void fcn_00014eb4 (int16_t arg_0h, int16_t arg_8h, int16_t arg_ch, int16_t arg1, int16_t arg2) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x00014eb4 push {r4, r5, r6, lr}         |     
    0x00014eb6 mov r4, r0                    |     r4 = r0;
    0x00014eb8 ldr r5, [r0]                  |     r5 = *(r0);
    0x00014eba sub sp, 0x10                  |     
    0x00014ebc mov r6, r1                    |     r6 = r1;
    0x00014ebe sub.w r3, r5, 0x10            |     r3 = r5 - 0x10;
    0x00014ec2 cmp r3, 0x44                  |     
                                             |     if (r3 <= 0x44) {
    0x00014ec4 bhi 0x14f10                   |         
                                             |         /* switch table (69 cases) at 0x14eca */
    0x00014ec6 tbb [pc, r3]                  |         __asm ("tbb aav.0x000000ff");
                                             |     }
    0x00014f10 blx 0xfa38                    |     r0 = fcn_0000fa38 ();
    0x00014f14 cmp r5, r0                    |     
                                             |     if (r5 == r0) {
    0x00014f16 beq.w 0x1503e                 |         goto label_5;
                                             |     }
    0x00014f1a mov r0, r5                    |     r0 = r5;
    0x00014f1c blx 0xe364                    |     fcn_0000e364 ();
    0x00014f20 ldr r2, [pc, 0x17c]           |     
    0x00014f22 mov r3, r0                    |     r3 = r0;
    0x00014f24 movs r1, 8                    |     r1 = 8;
    0x00014f26 movs r0, 0                    |     r0 = 0;
    0x00014f28 add r2, pc                    |     r2 = 0x29fcc;
    0x00014f2a blx 0xe318                    |     gst_element_error_printf ()
                                             |     do {
                                             | label_0:
    0x00014f2e movs r0, 0                    |         r0 = 0;
                                             | label_2:
    0x00014f30 add sp, 0x10                  |         
    0x00014f32 pop {r4, r5, r6, pc}          |         
    0x00014f34 blx 0xe8e4                    |         r0 = fcn_0000e8e4 ();
    0x00014f38 mov r4, r0                    |         r4 = r0;
    0x00014f3a mov r0, r6                    |         r0 = r6;
    0x00014f3c blx 0xe8e4                    |         r0 = fcn_0000e8e4 ();
    0x00014f40 subs r0, r4, r0               |         r0 = r4 - r0;
    0x00014f42 clz r0, r0                    |         r0 &= r0;
    0x00014f46 lsrs r0, r0, 5                |         r0 >>= 5;
    0x00014f48 add sp, 0x10                  |         
    0x00014f4a pop {r4, r5, r6, pc}          |         
    0x00014f4c blx 0xec9c                    |         r0 = snd_device_name_free_hint ();
    0x00014f50 mov r4, r0                    |         r4 = r0;
    0x00014f52 mov r0, r6                    |         r0 = r6;
    0x00014f54 blx 0xec9c                    |         snd_device_name_free_hint ();
    0x00014f56 vfma.f32 s2, s4, s1           |         __asm ("vfma.f32 s2, s4, s1");
    0x00014f5a clz r0, r0                    |         r0 &= r0;
    0x00014f5e lsrs r0, r0, 5                |         r0 >>= 5;
    0x00014f60 add sp, 0x10                  |         
    0x00014f62 pop {r4, r5, r6, pc}          |         
    0x00014f64 blx 0xde78                    |         r0 = fcn_0000de78 ();
    0x00014f68 mov r4, r0                    |         r4 = r0;
    0x00014f6a mov r0, r6                    |         r0 = r6;
    0x00014f6c blx 0xde78                    |         r0 = fcn_0000de78 ();
    0x00014f70 subs r0, r4, r0               |         r0 = r4 - r0;
    0x00014f72 clz r0, r0                    |         r0 &= r0;
    0x00014f76 lsrs r0, r0, 5                |         r0 >>= 5;
    0x00014f78 add sp, 0x10                  |         
    0x00014f7a pop {r4, r5, r6, pc}          |         
    0x00014f7c blx 0xf83c                    |         r0 = gst_element_add_pad ();
    0x00014f80 mov r4, r0                    |         r4 = r0;
    0x00014f82 mov r0, r6                    |         r0 = r6;
    0x00014f84 blx 0xf83c                    |         r0 = gst_element_add_pad ();
    0x00014f88 subs r0, r4, r0               |         r0 = r4 - r0;
    0x00014f8a clz r0, r0                    |         r0 &= r0;
    0x00014f8e lsrs r0, r0, 5                |         r0 >>= 5;
    0x00014f90 add sp, 0x10                  |         
    0x00014f92 pop {r4, r5, r6, pc}          |         
    0x00014f94 blx 0xf084                    |         r0 = fcn_0000f084 ();
    0x00014f98 mov r5, r0                    |         r5 = r0;
    0x00014f9a mov r4, r1                    |         r4 = r1;
    0x00014f9c mov r0, r6                    |         r0 = r6;
    0x00014f9e blx 0xf084                    |         fcn_0000f084 ();
    0x00014fa2 cmp r4, r1                    |         
    0x00014fa4 it eq                         |         
                                             |         if (r4 == r1) {
    0x00014fa6 cmpeq r5, r0                  |             __asm ("cmpeq r5, r0");
                                             |         }
    0x00014fa8 ite eq                        |         
                                             |         if (r4 != r1) {
    0x00014faa moveq r0, 1                   |             r0 = 1;
                                             |         }
                                             |         if (r4 == r1) {
    0x00014fac movne r0, 0                   |             r0 = 0;
                                             |         }
    0x00014fae add sp, 0x10                  |         
    0x00014fb0 pop {r4, r5, r6, pc}          |         
    0x00014fb2 blx 0xfb48                    |         r0 = accept (r0, r1, r2);
    0x00014fb6 mov r5, r0                    |         r5 = r0;
    0x00014fb8 mov r4, r1                    |         r4 = r1;
    0x00014fba mov r0, r6                    |         r0 = r6;
    0x00014fbc blx 0xfb48                    |         accept (r0, r1, r2);
    0x00014fc0 cmp r4, r1                    |         
    0x00014fc2 it eq                         |         
                                             |         if (r4 == r1) {
    0x00014fc4 cmpeq r5, r0                  |             __asm ("cmpeq r5, r0");
                                             |         }
    0x00014fc6 ite eq                        |         
                                             |         if (r4 != r1) {
    0x00014fc8 moveq r0, 1                   |             r0 = 1;
                                             |         }
                                             |         if (r4 == r1) {
    0x00014fca movne r0, 0                   |             r0 = 0;
                                             |         }
    0x00014fcc add sp, 0x10                  |         
    0x00014fce pop {r4, r5, r6, pc}          |         
    0x00014fd0 blx 0xe010                    |         fcn_0000e010 ();
    0x00014fd4 mov r0, r6                    |         r0 = r6;
    0x00014fd6 vstr d0, [sp]                 |         __asm ("vstr d0, [sp]");
    0x00014fda blx 0xe010                    |         fcn_0000e010 ();
    0x00014fde vstr d0, [sp, 8]              |         __asm ("vstr d0, [sp, 8]");
    0x00014fe2 mov r0, sp                    |         r0 = sp;
    0x00014fe4 ldr r2, [sp]                  |         r2 = *(sp);
    0x00014fe6 ldr r3, [sp, 8]               |         r3 = *(arg_8h);
    0x00014fe8 cmp r2, r3                    |         
                                             |         if (r2 == r3) {
    0x00014fea beq 0x15092                   |             goto label_6;
                                             |         }
                                             | label_3:
    0x00014fec movs r0, 1                    |         r0 = 1;
                                             | label_4:
    0x00014fee eor r0, r0, 1                 |         r0 ^= 1;
    0x00014ff2 add sp, 0x10                  |         
    0x00014ff4 pop {r4, r5, r6, pc}          |         
    0x00014ff6 blx 0xdd6c                    |         r0 = g_hash_table_ref ();
    0x00014ffa mov r4, r0                    |         r4 = r0;
    0x00014ffc mov r0, r6                    |         r0 = r6;
    0x00014ffe blx 0xdd6c                    |         r0 = g_hash_table_ref ();
    0x00015002 mov r1, r0                    |         r1 = r0;
    0x00015004 mov r0, r4                    |         r0 = r4;
    0x00015006 blx 0x1061c                   |         r0 = fcn_0001061c ();
    0x0001500a clz r0, r0                    |         r0 &= r0;
    0x0001500c eor sb, r0, 0x40              |         sb = r0 ^ 0x40;
    0x00015010 add sp, 0x10                  |         
    0x00015012 pop {r4, r5, r6, pc}          |         
    0x00015014 blx 0xf024                    |         r0 = fcn_0000f024 ();
    0x00015018 mov r4, r0                    |         r4 = r0;
    0x0001501a mov r0, r6                    |         r0 = r6;
    0x0001501c blx 0xf024                    |         r0 = fcn_0000f024 ();
    0x00015020 orrs.w r3, r4, r0             |         r3 = r4 | r0;
                                             |         if (r3 == r4) {
    0x00015024 beq 0x1508e                   |             goto label_7;
                                             |         }
    0x00015026 cmp r0, 0                     |         
    0x00015028 it ne                         |         
                                             |         if (r0 != 0) {
    0x0001502a cmpne r4, 0                   |             __asm ("cmpne r4, 0");
                                             |         }
    0x0001502c beq.w 0x14f2e                 |         
                                             |     } while (r0 == 0);
    0x00015030 mov r1, r0                    |     r1 = r0;
    0x00015032 mov r0, r4                    |     r0 = r4;
    0x00015034 add sp, 0x10                  |     
    0x00015036 pop.w {r4, r5, r6, lr}        |     
    0x0001503a b.w 0xf148                    |     void (*0xf148)() ();
                                             | label_5:
    0x0001503e mov r0, r4                    |     r0 = r4;
    0x00015040 blx 0x103f8                   |     r0 = fcn_000103f8 ();
    0x00015044 mov r5, r0                    |     r5 = r0;
    0x00015046 mov r0, r6                    |     r0 = r6;
    0x00015048 blx 0x103f8                   |     r0 = fcn_000103f8 ();
    0x0001504c orrs.w r3, r5, r0             |     r3 = r5 | r0;
    0x00015050 mov r4, r0                    |     r4 = r0;
                                             |     if (r3 == r5) {
    0x00015052 beq 0x1508e                   |         goto label_7;
                                             |     }
    0x00015054 cmp r0, 0                     |     
    0x00015056 it ne                         |     
                                             |     if (r0 == 0) {
    0x00015058 cmpne r5, 0                   |         __asm ("cmpne r5, 0");
                                             |         goto label_8;
                                             |     }
                                             |     if (r0 == 0) {
                                             | label_8:
    0x0001505a beq.w 0x14f2e                 |         goto label_0;
                                             |     }
    0x0001505e mov r0, r5                    |     r0 = r5;
    0x00015060 blx 0xf200                    |     r0 = g_list_free_full ();
    0x00015064 mov r6, r0                    |     r6 = r0;
    0x00015066 mov r0, r4                    |     r0 = r4;
    0x00015068 blx 0xf200                    |     r0 = g_list_free_full ();
    0x0001506c cmp r6, r0                    |     
                                             |     if (r6 != r0) {
    0x0001506e bne.w 0x14f2e                 |         goto label_0;
                                             |     }
    0x00015072 ldr r0, [r5]                  |     r0 = *(r5);
                                             |     if (r0 == 0) {
    0x00015074 cbz r0, 0x1508e               |         goto label_7;
                                             |     }
    0x00015076 subs r4, 4                    |     r4 -= 4;
                                             | label_1:
    0x00015078 ldr r1, [r4, 4]!              |     r1 = *((r4 += 4));
    0x0001507c blx 0x1061c                   |     r0 = fcn_0001061c ();
    0x00015080 cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x00015082 bne.w 0x14f2e                 |         goto label_0;
                                             |     }
    0x00015086 ldr r0, [r5, 4]!              |     r0 = *((r5 += 4));
    0x0001508a cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x0001508c bne 0x15078                   |         goto label_1;
                                             |     }
                                             | label_7:
    0x0001508e movs r0, 1                    |     r0 = 1;
    0x00015090 b 0x14f30                     |     goto label_2;
                                             | label_6:
    0x00015092 ldr r2, [r0, 4]               |     r2 = *((r0 + 4));
    0x00015094 ldr r3, [sp, 0xc]             |     r3 = *(arg_ch);
    0x00015096 cmp r2, r3                    |     
    0x00015098 it eq                         |     
                                             |     if (r2 == r3) {
    0x0001509a moveq r0, 0                   |         r0 = 0;
                                             |         goto label_9;
                                             |     }
                                             |     if (r2 != r3) {
                                             | label_9:
    0x0001509c bne 0x14fec                   |         goto label_3;
                                             |     }
    0x0001509e b 0x14fee                     |     goto label_4;
                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x188cc */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.000188cc ()                      | void fcn_000188cc (int16_t arg_0h, int16_t arg_8h, int16_t arg_ch, int16_t arg1, int16_t arg2) {
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x000188cc push {r4, r5, r6, lr}             |     
    0x000188ce mov r4, r0                        |     r4 = r0;
    0x000188d0 ldr r5, [r0]                      |     r5 = *(r0);
    0x000188d2 sub sp, 0x10                      |     
    0x000188d4 mov r6, r1                        |     r6 = r1;
    0x000188d6 sub.w r3, r5, 0x10                |     r3 = r5 - 0x10;
    0x000188da cmp r3, 0x44                      |     
                                                 |     if (r3 <= 0x44) {
    0x000188dc bhi 0x18928                       |         
                                                 |         /* switch table (69 cases) at 0x188e2 */
    0x000188de tbb [pc, r3]                      |         __asm ("tbb aav.0x000000ff");
                                                 |     }
    0x00018928 blx 0xfa38                        |     r0 = fcn_0000fa38 ();
    0x0001892c cmp r5, r0                        |     
                                                 |     if (r5 == r0) {
    0x0001892e beq.w 0x18a56                     |         goto label_5;
                                                 |     }
    0x00018932 mov r0, r5                        |     r0 = r5;
    0x00018934 blx 0xe364                        |     fcn_0000e364 ();
    0x00018938 ldr r2, [pc, 0x17c]               |     
    0x0001893a mov r3, r0                        |     r3 = r0;
    0x0001893c movs r1, 8                        |     r1 = 8;
    0x0001893e movs r0, 0                        |     r0 = 0;
    0x00018940 add r2, pc                        |     r2 = 0x313fc;
    0x00018942 blx 0xe318                        |     gst_element_error_printf ()
                                                 |     do {
                                                 | label_0:
    0x00018946 movs r0, 0                        |         r0 = 0;
                                                 | label_2:
    0x00018948 add sp, 0x10                      |         
    0x0001894a pop {r4, r5, r6, pc}              |         
    0x0001894c blx 0xe8e4                        |         r0 = fcn_0000e8e4 ();
    0x00018950 mov r4, r0                        |         r4 = r0;
    0x00018952 mov r0, r6                        |         r0 = r6;
    0x00018954 blx 0xe8e4                        |         r0 = fcn_0000e8e4 ();
    0x00018958 subs r0, r4, r0                   |         r0 = r4 - r0;
    0x0001895a clz r0, r0                        |         r0 &= r0;
    0x0001895e lsrs r0, r0, 5                    |         r0 >>= 5;
    0x00018960 add sp, 0x10                      |         
    0x00018962 pop {r4, r5, r6, pc}              |         
    0x00018964 blx 0xec9c                        |         r0 = snd_device_name_free_hint ();
    0x00018968 mov r4, r0                        |         r4 = r0;
    0x0001896a mov r0, r6                        |         r0 = r6;
    0x0001896c blx 0xec9c                        |         r0 = snd_device_name_free_hint ();
    0x00018970 subs r0, r4, r0                   |         r0 = r4 - r0;
    0x00018972 clz r0, r0                        |         r0 &= r0;
    0x00018976 lsrs r0, r0, 5                    |         r0 >>= 5;
    0x00018978 add sp, 0x10                      |         
    0x0001897a pop {r4, r5, r6, pc}              |         
    0x0001897c blx 0xde78                        |         r0 = fcn_0000de78 ();
    0x00018980 mov r4, r0                        |         r4 = r0;
    0x00018982 mov r0, r6                        |         r0 = r6;
    0x00018984 blx 0xde78                        |         r0 = fcn_0000de78 ();
    0x00018988 subs r0, r4, r0                   |         r0 = r4 - r0;
    0x0001898a clz r0, r0                        |         r0 &= r0;
    0x0001898e lsrs r0, r0, 5                    |         r0 >>= 5;
    0x00018990 add sp, 0x10                      |         
    0x00018992 pop {r4, r5, r6, pc}              |         
    0x00018994 blx 0xf83c                        |         r0 = gst_element_add_pad ();
    0x00018998 mov r4, r0                        |         r4 = r0;
    0x0001899a mov r0, r6                        |         r0 = r6;
    0x0001899c blx 0xf83c                        |         r0 = gst_element_add_pad ();
    0x000189a0 subs r0, r4, r0                   |         r0 = r4 - r0;
    0x000189a2 clz r0, r0                        |         r0 &= r0;
    0x000189a6 lsrs r0, r0, 5                    |         r0 >>= 5;
    0x000189a8 add sp, 0x10                      |         
    0x000189aa pop {r4, r5, r6, pc}              |         
    0x000189ac blx 0xf084                        |         r0 = fcn_0000f084 ();
    0x000189b0 mov r5, r0                        |         r5 = r0;
    0x000189b2 mov r4, r1                        |         r4 = r1;
    0x000189b4 mov r0, r6                        |         r0 = r6;
    0x000189b6 blx 0xf084                        |         fcn_0000f084 ();
    0x000189ba cmp r4, r1                        |         
    0x000189bc it eq                             |         
                                                 |         if (r4 == r1) {
    0x000189be cmpeq r5, r0                      |             __asm ("cmpeq r5, r0");
                                                 |         }
    0x000189c0 ite eq                            |         
                                                 |         if (r4 != r1) {
    0x000189c2 moveq r0, 1                       |             r0 = 1;
                                                 |         }
                                                 |         if (r4 == r1) {
    0x000189c4 movne r0, 0                       |             r0 = 0;
                                                 |         }
    0x000189c6 add sp, 0x10                      |         
    0x000189c8 pop {r4, r5, r6, pc}              |         
    0x000189ca blx 0xfb48                        |         r0 = accept (r0, r1, r2);
    0x000189ce mov r5, r0                        |         r5 = r0;
    0x000189d0 mov r4, r1                        |         r4 = r1;
    0x000189d2 mov r0, r6                        |         r0 = r6;
    0x000189d4 blx 0xfb48                        |         accept (r0, r1, r2);
    0x000189d8 cmp r4, r1                        |         
    0x000189da it eq                             |         
                                                 |         if (r4 == r1) {
    0x000189dc cmpeq r5, r0                      |             __asm ("cmpeq r5, r0");
                                                 |         }
    0x000189de ite eq                            |         
                                                 |         if (r4 != r1) {
    0x000189e0 moveq r0, 1                       |             r0 = 1;
                                                 |         }
                                                 |         if (r4 == r1) {
    0x000189e2 movne r0, 0                       |             r0 = 0;
                                                 |         }
    0x000189e4 add sp, 0x10                      |         
    0x000189e6 pop {r4, r5, r6, pc}              |         
    0x000189e8 blx 0xe010                        |         fcn_0000e010 ();
    0x000189ec mov r0, r6                        |         r0 = r6;
    0x000189ee vstr d0, [sp]                     |         __asm ("vstr d0, [sp]");
    0x000189f2 blx 0xe010                        |         fcn_0000e010 ();
    0x000189f4 add.w sp, lr, sp, lsl 26          |         
    0x000189f8 lsrs r2, r0, 0xc                  |         r2 = r0 >> 0xc;
    0x000189fa mov r0, sp                        |         r0 = sp;
    0x000189fc ldr r2, [sp]                      |         r2 = *(sp);
    0x000189fe ldr r3, [sp, 8]                   |         r3 = *(arg_8h);
    0x00018a00 cmp r2, r3                        |         
                                                 |         if (r2 == r3) {
    0x00018a02 beq 0x18aaa                       |             goto label_6;
                                                 |         }
                                                 | label_3:
    0x00018a04 movs r0, 1                        |         r0 = 1;
                                                 | label_4:
    0x00018a06 eor r0, r0, 1                     |         r0 ^= 1;
    0x00018a0a add sp, 0x10                      |         
    0x00018a0c pop {r4, r5, r6, pc}              |         
    0x00018a0e blx 0xdd6c                        |         r0 = g_hash_table_ref ();
    0x00018a12 mov r4, r0                        |         r4 = r0;
    0x00018a14 mov r0, r6                        |         r0 = r6;
    0x00018a16 blx 0xdd6c                        |         r0 = g_hash_table_ref ();
    0x00018a1a mov r1, r0                        |         r1 = r0;
    0x00018a1c mov r0, r4                        |         r0 = r4;
    0x00018a1e blx 0x1061c                       |         r0 = fcn_0001061c ();
    0x00018a22 clz r0, r0                        |         r0 &= r0;
    0x00018a26 lsrs r0, r0, 5                    |         r0 >>= 5;
    0x00018a28 add sp, 0x10                      |         
    0x00018a2a pop {r4, r5, r6, pc}              |         
    0x00018a2c blx 0xf024                        |         r0 = fcn_0000f024 ();
    0x00018a30 mov r4, r0                        |         r4 = r0;
    0x00018a32 mov r0, r6                        |         r0 = r6;
    0x00018a34 blx 0xf024                        |         r0 = fcn_0000f024 ();
    0x00018a38 orrs.w r3, r4, r0                 |         r3 = r4 | r0;
                                                 |         if (r3 == r4) {
    0x00018a3c beq 0x18aa6                       |             goto label_7;
                                                 |         }
    0x00018a3e cmp r0, 0                         |         
    0x00018a40 it ne                             |         
                                                 |         if (r0 != 0) {
    0x00018a42 cmpne r4, 0                       |             __asm ("cmpne r4, 0");
                                                 |         }
    0x00018a44 beq.w 0x18946                     |         
                                                 |     } while (r0 == 0);
    0x00018a48 mov r1, r0                        |     r1 = r0;
    0x00018a4a mov r0, r4                        |     r0 = r4;
    0x00018a4c add sp, 0x10                      |     
    0x00018a4e pop.w {r4, r5, r6, lr}            |     
    0x00018a52 b.w 0xf148                        |     void (*0xf148)() ();
                                                 | label_5:
    0x00018a56 mov r0, r4                        |     r0 = r4;
    0x00018a58 blx 0x103f8                       |     r0 = fcn_000103f8 ();
    0x00018a5c mov r5, r0                        |     r5 = r0;
    0x00018a5e mov r0, r6                        |     r0 = r6;
    0x00018a60 blx 0x103f8                       |     fcn_000103f8 ();
    0x00018a62 vstmia sl, {s29, s30, s31}        |     __asm ("vstmia sl, {s29, s30, s31}");
    0x00018a66 lsls r0, r0, 0xc                  |     r0 <<= 0xc;
    0x00018a68 mov r4, r0                        |     r4 = r0;
                                                 |     if (r0 == r0) {
    0x00018a6a beq 0x18aa6                       |         goto label_7;
                                                 |     }
    0x00018a6c cmp r0, 0                         |     
    0x00018a6e it ne                             |     
                                                 |     if (r0 == 0) {
    0x00018a70 cmpne r5, 0                       |         __asm ("cmpne r5, 0");
                                                 |         goto label_8;
                                                 |     }
                                                 |     if (r0 == 0) {
                                                 | label_8:
    0x00018a72 beq.w 0x18946                     |         goto label_0;
                                                 |     }
    0x00018a76 mov r0, r5                        |     r0 = r5;
    0x00018a78 blx 0xf200                        |     r0 = g_list_free_full ();
    0x00018a7c mov r6, r0                        |     r6 = r0;
    0x00018a7e mov r0, r4                        |     r0 = r4;
    0x00018a80 blx 0xf200                        |     r0 = g_list_free_full ();
    0x00018a84 cmp r6, r0                        |     
                                                 |     if (r6 != r0) {
    0x00018a86 bne.w 0x18946                     |         goto label_0;
                                                 |     }
    0x00018a8a ldr r0, [r5]                      |     r0 = *(r5);
                                                 |     if (r0 == 0) {
    0x00018a8c cbz r0, 0x18aa6                   |         goto label_7;
                                                 |     }
    0x00018a8e subs r4, 4                        |     r4 -= 4;
                                                 | label_1:
    0x00018a90 ldr r1, [r4, 4]!                  |     r1 = *((r4 += 4));
    0x00018a94 blx 0x1061c                       |     r0 = fcn_0001061c ();
    0x00018a98 cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x00018a9a bne.w 0x18946                     |         goto label_0;
                                                 |     }
    0x00018a9e ldr r0, [r5, 4]!                  |     r0 = *((r5 += 4));
    0x00018aa2 cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x00018aa4 bne 0x18a90                       |         goto label_1;
                                                 |     }
                                                 | label_7:
    0x00018aa6 movs r0, 1                        |     r0 = 1;
    0x00018aa8 b 0x18948                         |     goto label_2;
                                                 | label_6:
    0x00018aaa ldr r2, [r0, 4]                   |     r2 = *((r0 + 4));
    0x00018aac ldr r3, [sp, 0xc]                 |     r3 = *(arg_ch);
    0x00018aae cmp r2, r3                        |     
    0x00018ab0 it eq                             |     
                                                 |     if (r2 == r3) {
    0x00018ab2 moveq r0, 0                       |         r0 = 0;
                                                 |         goto label_9;
                                                 |     }
                                                 |     if (r2 != r3) {
                                                 | label_9:
    0x00018ab4 bne 0x18a04                       |         goto label_3;
                                                 |     }
    0x00018ab6 b 0x18a06                         |     goto label_4;
                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x1b248 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0001b248 ()                  | void fcn_0001b248 (int16_t arg_0h, int16_t arg_8h, int16_t arg_ch, int16_t arg1, int16_t arg2) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x0001b248 push {r4, r5, r6, lr}         |     
    0x0001b24a mov r4, r0                    |     r4 = r0;
    0x0001b24c ldr r5, [r0]                  |     r5 = *(r0);
    0x0001b24e sub sp, 0x10                  |     
    0x0001b250 mov r6, r1                    |     r6 = r1;
    0x0001b252 sub.w r3, r5, 0x10            |     r3 = r5 - 0x10;
    0x0001b256 cmp r3, 0x44                  |     
                                             |     if (r3 <= 0x44) {
    0x0001b258 bhi 0x1b2a4                   |         
                                             |         /* switch table (69 cases) at 0x1b25e */
    0x0001b25a tbb [pc, r3]                  |         __asm ("tbb aav.0x000000ff");
                                             |     }
    0x0001b2a4 blx 0xfa38                    |     r0 = fcn_0000fa38 ();
    0x0001b2a8 cmp r5, r0                    |     
                                             |     if (r5 == r0) {
    0x0001b2aa beq.w 0x1b3d2                 |         goto label_5;
                                             |     }
    0x0001b2ac strh r2, [r2, 4]              |     *((r2 + 4)) = r2;
    0x0001b2ae mov r0, r5                    |     r0 = r5;
    0x0001b2b0 blx 0xe364                    |     fcn_0000e364 ();
    0x0001b2b4 ldr r2, [pc, 0x17c]           |     
    0x0001b2b6 mov r3, r0                    |     r3 = r0;
    0x0001b2b8 movs r1, 8                    |     r1 = 8;
    0x0001b2ba movs r0, 0                    |     r0 = 0;
    0x0001b2bc add r2, pc                    |     r2 = 0x366f4;
    0x0001b2be blx 0xe318                    |     gst_element_error_printf ()
                                             |     do {
                                             | label_0:
    0x0001b2c2 movs r0, 0                    |         r0 = 0;
                                             | label_2:
    0x0001b2c4 add sp, 0x10                  |         
    0x0001b2c6 pop {r4, r5, r6, pc}          |         
    0x0001b2c8 blx 0xe8e4                    |         r0 = fcn_0000e8e4 ();
    0x0001b2cc mov r4, r0                    |         r4 = r0;
    0x0001b2ce mov r0, r6                    |         r0 = r6;
    0x0001b2d0 blx 0xe8e4                    |         r0 = fcn_0000e8e4 ();
    0x0001b2d4 subs r0, r4, r0               |         r0 = r4 - r0;
    0x0001b2d6 clz r0, r0                    |         r0 &= r0;
    0x0001b2d8 eor sb, r0, 0x40              |         sb = r0 ^ 0x40;
    0x0001b2dc add sp, 0x10                  |         
    0x0001b2de pop {r4, r5, r6, pc}          |         
    0x0001b2e0 blx 0xec9c                    |         r0 = snd_device_name_free_hint ();
    0x0001b2e4 mov r4, r0                    |         r4 = r0;
    0x0001b2e6 mov r0, r6                    |         r0 = r6;
    0x0001b2e8 blx 0xec9c                    |         r0 = snd_device_name_free_hint ();
    0x0001b2ec subs r0, r4, r0               |         r0 = r4 - r0;
    0x0001b2ee clz r0, r0                    |         r0 &= r0;
    0x0001b2f2 lsrs r0, r0, 5                |         r0 >>= 5;
    0x0001b2f4 add sp, 0x10                  |         
    0x0001b2f6 pop {r4, r5, r6, pc}          |         
    0x0001b2f8 blx 0xde78                    |         r0 = fcn_0000de78 ();
    0x0001b2fc mov r4, r0                    |         r4 = r0;
    0x0001b2fe mov r0, r6                    |         r0 = r6;
    0x0001b300 blx 0xde78                    |         r0 = fcn_0000de78 ();
    0x0001b304 subs r0, r4, r0               |         r0 = r4 - r0;
    0x0001b306 clz r0, r0                    |         r0 &= r0;
    0x0001b308 eor sb, r0, 0x40              |         sb = r0 ^ 0x40;
    0x0001b30c add sp, 0x10                  |         
    0x0001b30e pop {r4, r5, r6, pc}          |         
    0x0001b310 blx 0xf83c                    |         r0 = gst_element_add_pad ();
    0x0001b314 mov r4, r0                    |         r4 = r0;
    0x0001b316 mov r0, r6                    |         r0 = r6;
    0x0001b318 blx 0xf83c                    |         r0 = gst_element_add_pad ();
    0x0001b31c subs r0, r4, r0               |         r0 = r4 - r0;
    0x0001b31e clz r0, r0                    |         r0 &= r0;
    0x0001b322 lsrs r0, r0, 5                |         r0 >>= 5;
    0x0001b324 add sp, 0x10                  |         
    0x0001b326 pop {r4, r5, r6, pc}          |         
    0x0001b328 blx 0xf084                    |         r0 = fcn_0000f084 ();
    0x0001b32c mov r5, r0                    |         r5 = r0;
    0x0001b32e mov r4, r1                    |         r4 = r1;
    0x0001b330 mov r0, r6                    |         r0 = r6;
    0x0001b332 blx 0xf084                    |         fcn_0000f084 ();
    0x0001b336 cmp r4, r1                    |         
    0x0001b338 it eq                         |         
                                             |         if (r4 == r1) {
    0x0001b33a cmpeq r5, r0                  |             __asm ("cmpeq r5, r0");
                                             |         }
    0x0001b33c ite eq                        |         
                                             |         if (r4 != r1) {
    0x0001b33e moveq r0, 1                   |             r0 = 1;
                                             |         }
                                             |         if (r4 == r1) {
    0x0001b340 movne r0, 0                   |             r0 = 0;
                                             |         }
    0x0001b342 add sp, 0x10                  |         
    0x0001b344 pop {r4, r5, r6, pc}          |         
    0x0001b346 blx 0xfb48                    |         r0 = accept (r0, r1, r2);
    0x0001b34a mov r5, r0                    |         r5 = r0;
    0x0001b34c mov r4, r1                    |         r4 = r1;
    0x0001b34e mov r0, r6                    |         r0 = r6;
    0x0001b350 blx 0xfb48                    |         accept (r0, r1, r2);
    0x0001b354 cmp r4, r1                    |         
    0x0001b356 it eq                         |         
                                             |         if (r4 == r1) {
    0x0001b358 cmpeq r5, r0                  |             __asm ("cmpeq r5, r0");
                                             |         }
    0x0001b35a ite eq                        |         
                                             |         if (r4 != r1) {
    0x0001b35c moveq r0, 1                   |             r0 = 1;
                                             |         }
                                             |         if (r4 == r1) {
    0x0001b35e movne r0, 0                   |             r0 = 0;
                                             |         }
    0x0001b360 add sp, 0x10                  |         
    0x0001b362 pop {r4, r5, r6, pc}          |         
    0x0001b364 blx 0xe010                    |         fcn_0000e010 ();
    0x0001b368 mov r0, r6                    |         r0 = r6;
    0x0001b36a vstr d0, [sp]                 |         __asm ("vstr d0, [sp]");
    0x0001b36c lsrs r0, r0, 0xc              |         r0 >>= 0xc;
    0x0001b36e blx 0xe010                    |         fcn_0000e010 ();
    0x0001b372 vstr d0, [sp, 8]              |         __asm ("vstr d0, [sp, 8]");
    0x0001b376 mov r0, sp                    |         r0 = sp;
    0x0001b378 ldr r2, [sp]                  |         r2 = *(sp);
    0x0001b37a ldr r3, [sp, 8]               |         r3 = *(arg_8h);
    0x0001b37c cmp r2, r3                    |         
                                             |         if (r2 == r3) {
    0x0001b37e beq 0x1b426                   |             goto label_6;
                                             |         }
                                             | label_3:
    0x0001b380 movs r0, 1                    |         r0 = 1;
                                             | label_4:
    0x0001b382 eor r0, r0, 1                 |         r0 ^= 1;
    0x0001b386 add sp, 0x10                  |         
    0x0001b388 pop {r4, r5, r6, pc}          |         
    0x0001b38a blx 0xdd6c                    |         r0 = g_hash_table_ref ();
    0x0001b38e mov r4, r0                    |         r4 = r0;
    0x0001b390 mov r0, r6                    |         r0 = r6;
    0x0001b392 blx 0xdd6c                    |         r0 = g_hash_table_ref ();
    0x0001b396 mov r1, r0                    |         r1 = r0;
    0x0001b398 mov r0, r4                    |         r0 = r4;
    0x0001b39a blx 0x1061c                   |         r0 = fcn_0001061c ();
    0x0001b39e clz r0, r0                    |         r0 &= r0;
    0x0001b3a2 lsrs r0, r0, 5                |         r0 >>= 5;
    0x0001b3a4 add sp, 0x10                  |         
    0x0001b3a6 pop {r4, r5, r6, pc}          |         
    0x0001b3a8 blx 0xf024                    |         r0 = fcn_0000f024 ();
    0x0001b3ac mov r4, r0                    |         r4 = r0;
    0x0001b3ae mov r0, r6                    |         r0 = r6;
    0x0001b3b0 blx 0xf024                    |         r0 = fcn_0000f024 ();
    0x0001b3b4 orrs.w r3, r4, r0             |         r3 = r4 | r0;
                                             |         if (r3 == r4) {
    0x0001b3b8 beq 0x1b422                   |             goto label_7;
                                             |         }
    0x0001b3ba cmp r0, 0                     |         
    0x0001b3bc it ne                         |         
                                             |         if (r0 != 0) {
    0x0001b3be cmpne r4, 0                   |             __asm ("cmpne r4, 0");
                                             |         }
    0x0001b3c0 beq.w 0x1b2c2                 |         
                                             |     } while (r0 == 0);
    0x0001b3c4 mov r1, r0                    |     r1 = r0;
    0x0001b3c6 mov r0, r4                    |     r0 = r4;
    0x0001b3c8 add sp, 0x10                  |     
    0x0001b3ca pop.w {r4, r5, r6, lr}        |     
    0x0001b3ce b.w 0xf148                    |     void (*0xf148)() ();
                                             | label_5:
    0x0001b3d2 mov r0, r4                    |     r0 = r4;
    0x0001b3d4 blx 0x103f8                   |     r0 = fcn_000103f8 ();
    0x0001b3d8 mov r5, r0                    |     r5 = r0;
    0x0001b3da mov r0, r6                    |     r0 = r6;
    0x0001b3dc blx 0x103f8                   |     r0 = fcn_000103f8 ();
    0x0001b3e0 orrs.w r3, r5, r0             |     r3 = r5 | r0;
    0x0001b3e4 mov r4, r0                    |     r4 = r0;
                                             |     if (r3 == r5) {
    0x0001b3e6 beq 0x1b422                   |         goto label_7;
                                             |     }
    0x0001b3e8 cmp r0, 0                     |     
    0x0001b3ea it ne                         |     
                                             |     if (r0 == 0) {
    0x0001b3ec cmpne r5, 0                   |         __asm ("cmpne r5, 0");
                                             |         goto label_8;
                                             |     }
                                             |     if (r0 == 0) {
                                             | label_8:
    0x0001b3ee beq.w 0x1b2c2                 |         goto label_0;
                                             |     }
    0x0001b3f2 mov r0, r5                    |     r0 = r5;
    0x0001b3f4 blx 0xf200                    |     r0 = g_list_free_full ();
    0x0001b3f8 mov r6, r0                    |     r6 = r0;
    0x0001b3fa mov r0, r4                    |     r0 = r4;
    0x0001b3fc blx 0xf200                    |     r0 = g_list_free_full ();
    0x0001b400 cmp r6, r0                    |     
                                             |     if (r6 != r0) {
    0x0001b402 bne.w 0x1b2c2                 |         goto label_0;
                                             |     }
    0x0001b406 ldr r0, [r5]                  |     r0 = *(r5);
                                             |     if (r0 == 0) {
    0x0001b408 cbz r0, 0x1b422               |         goto label_7;
                                             |     }
    0x0001b40a subs r4, 4                    |     r4 -= 4;
                                             | label_1:
    0x0001b40c ldr r1, [r4, 4]!              |     r1 = *((r4 += 4));
    0x0001b410 blx 0x1061c                   |     r0 = fcn_0001061c ();
    0x0001b414 cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x0001b416 bne.w 0x1b2c2                 |         goto label_0;
                                             |     }
    0x0001b41a ldr r0, [r5, 4]!              |     r0 = *((r5 += 4));
    0x0001b41e cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x0001b420 bne 0x1b40c                   |         goto label_1;
                                             |     }
                                             | label_7:
    0x0001b422 movs r0, 1                    |     r0 = 1;
    0x0001b424 b 0x1b2c4                     |     goto label_2;
                                             | label_6:
    0x0001b426 ldr r2, [r0, 4]               |     r2 = *((r0 + 4));
    0x0001b428 ldr r3, [sp, 0xc]             |     r3 = *(arg_ch);
    0x0001b42a cmp r2, r3                    |     
    0x0001b42c it eq                         |     
                                             |     if (r2 == r3) {
    0x0001b42e moveq r0, 0                   |         r0 = 0;
                                             |         goto label_9;
                                             |     }
                                             |     if (r2 != r3) {
                                             | label_9:
    0x0001b430 bne 0x1b380                   |         goto label_3;
                                             |     }
    0x0001b432 b 0x1b382                     |     goto label_4;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x1d604 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0001d604 ()                  | void fcn_0001d604 (int16_t arg_0h, int16_t arg_8h, int16_t arg_ch, int16_t arg1, int16_t arg2) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x0001d604 push {r4, r5, r6, lr}         |     
    0x0001d606 mov r4, r0                    |     r4 = r0;
    0x0001d608 ldr r5, [r0]                  |     r5 = *(r0);
    0x0001d60a sub sp, 0x10                  |     
    0x0001d60c mov r6, r1                    |     r6 = r1;
    0x0001d60e sub.w r3, r5, 0x10            |     r3 = r5 - 0x10;
    0x0001d612 cmp r3, 0x44                  |     
                                             |     if (r3 <= 0x44) {
    0x0001d614 bhi 0x1d660                   |         
                                             |         /* switch table (69 cases) at 0x1d61a */
    0x0001d616 tbb [pc, r3]                  |         __asm ("tbb aav.0x000000ff");
                                             |     }
    0x0001d660 blx 0xfa38                    |     r0 = fcn_0000fa38 ();
    0x0001d664 cmp r5, r0                    |     
                                             |     if (r5 == r0) {
    0x0001d666 beq.w 0x1d78e                 |         goto label_5;
                                             |     }
    0x0001d66a mov r0, r5                    |     r0 = r5;
    0x0001d66c blx 0xe364                    |     fcn_0000e364 ();
    0x0001d670 ldr r2, [pc, 0x17c]           |     
    0x0001d672 mov r3, r0                    |     r3 = r0;
    0x0001d674 movs r1, 8                    |     r1 = 8;
    0x0001d676 movs r0, 0                    |     r0 = 0;
    0x0001d678 add r2, pc                    |     r2 = 0x3ae6c;
    0x0001d67a blx 0xe318                    |     gst_element_error_printf ()
                                             |     do {
                                             | label_0:
    0x0001d67e movs r0, 0                    |         r0 = 0;
                                             | label_2:
    0x0001d680 add sp, 0x10                  |         
    0x0001d682 pop {r4, r5, r6, pc}          |         
    0x0001d684 blx 0xe8e4                    |         r0 = fcn_0000e8e4 ();
    0x0001d688 mov r4, r0                    |         r4 = r0;
    0x0001d68a mov r0, r6                    |         r0 = r6;
    0x0001d68c blx 0xe8e4                    |         r0 = fcn_0000e8e4 ();
    0x0001d690 subs r0, r4, r0               |         r0 = r4 - r0;
    0x0001d692 clz r0, r0                    |         r0 &= r0;
    0x0001d696 lsrs r0, r0, 5                |         r0 >>= 5;
    0x0001d698 add sp, 0x10                  |         
    0x0001d69a pop {r4, r5, r6, pc}          |         
    0x0001d69c blx 0xec9c                    |         r0 = snd_device_name_free_hint ();
    0x0001d6a0 mov r4, r0                    |         r4 = r0;
    0x0001d6a2 mov r0, r6                    |         r0 = r6;
    0x0001d6a4 blx 0xec9c                    |         r0 = snd_device_name_free_hint ();
    0x0001d6a8 subs r0, r4, r0               |         r0 = r4 - r0;
    0x0001d6aa clz r0, r0                    |         r0 &= r0;
    0x0001d6ae lsrs r0, r0, 5                |         r0 >>= 5;
    0x0001d6b0 add sp, 0x10                  |         
    0x0001d6b2 pop {r4, r5, r6, pc}          |         
    0x0001d6b4 blx 0xde78                    |         r0 = fcn_0000de78 ();
    0x0001d6b8 mov r4, r0                    |         r4 = r0;
    0x0001d6ba mov r0, r6                    |         r0 = r6;
    0x0001d6bc blx 0xde78                    |         r0 = fcn_0000de78 ();
    0x0001d6c0 subs r0, r4, r0               |         r0 = r4 - r0;
    0x0001d6c2 clz r0, r0                    |         r0 &= r0;
    0x0001d6c6 lsrs r0, r0, 5                |         r0 >>= 5;
    0x0001d6c8 add sp, 0x10                  |         
    0x0001d6ca pop {r4, r5, r6, pc}          |         
    0x0001d6cc blx 0xf83c                    |         r0 = gst_element_add_pad ();
    0x0001d6d0 mov r4, r0                    |         r4 = r0;
    0x0001d6d2 mov r0, r6                    |         r0 = r6;
    0x0001d6d4 blx 0xf83c                    |         r0 = gst_element_add_pad ();
    0x0001d6d8 subs r0, r4, r0               |         r0 = r4 - r0;
    0x0001d6da clz r0, r0                    |         r0 &= r0;
    0x0001d6de lsrs r0, r0, 5                |         r0 >>= 5;
    0x0001d6e0 add sp, 0x10                  |         
    0x0001d6e2 pop {r4, r5, r6, pc}          |         
    0x0001d6e4 blx 0xf084                    |         r0 = fcn_0000f084 ();
    0x0001d6e8 mov r5, r0                    |         r5 = r0;
    0x0001d6ea mov r4, r1                    |         r4 = r1;
    0x0001d6ec mov r0, r6                    |         r0 = r6;
    0x0001d6ee blx 0xf084                    |         fcn_0000f084 ();
    0x0001d6f2 cmp r4, r1                    |         
    0x0001d6f4 it eq                         |         
                                             |         if (r4 == r1) {
    0x0001d6f6 cmpeq r5, r0                  |             __asm ("cmpeq r5, r0");
                                             |         }
    0x0001d6f8 ite eq                        |         
                                             |         if (r4 != r1) {
    0x0001d6fa moveq r0, 1                   |             r0 = 1;
                                             |         }
                                             |         if (r4 == r1) {
    0x0001d6fc movne r0, 0                   |             r0 = 0;
                                             |         }
    0x0001d6fe add sp, 0x10                  |         
    0x0001d700 pop {r4, r5, r6, pc}          |         
    0x0001d702 blx 0xfb48                    |         r0 = accept (r0, r1, r2);
    0x0001d706 mov r5, r0                    |         r5 = r0;
    0x0001d708 mov r4, r1                    |         r4 = r1;
    0x0001d70a mov r0, r6                    |         r0 = r6;
    0x0001d70c blx 0xfb48                    |         accept (r0, r1, r2);
    0x0001d710 cmp r4, r1                    |         
    0x0001d712 it eq                         |         
                                             |         if (r4 == r1) {
    0x0001d714 cmpeq r5, r0                  |             __asm ("cmpeq r5, r0");
                                             |         }
    0x0001d716 ite eq                        |         
                                             |         if (r4 != r1) {
    0x0001d718 moveq r0, 1                   |             r0 = 1;
                                             |         }
                                             |         if (r4 == r1) {
    0x0001d71a movne r0, 0                   |             r0 = 0;
                                             |         }
    0x0001d71c add sp, 0x10                  |         
    0x0001d71e pop {r4, r5, r6, pc}          |         
    0x0001d720 blx 0xe010                    |         fcn_0000e010 ();
    0x0001d724 mov r0, r6                    |         r0 = r6;
    0x0001d726 vstr d0, [sp]                 |         __asm ("vstr d0, [sp]");
    0x0001d72a blx 0xe010                    |         fcn_0000e010 ();
    0x0001d72e vstr d0, [sp, 8]              |         __asm ("vstr d0, [sp, 8]");
    0x0001d732 mov r0, sp                    |         r0 = sp;
    0x0001d734 ldr r2, [sp]                  |         r2 = *(sp);
    0x0001d736 ldr r3, [sp, 8]               |         r3 = *(arg_8h);
    0x0001d738 cmp r2, r3                    |         
                                             |         if (r2 == r3) {
    0x0001d73a beq 0x1d7e2                   |             goto label_6;
                                             |         }
                                             | label_3:
    0x0001d73c movs r0, 1                    |         r0 = 1;
                                             | label_4:
    0x0001d73e eor r0, r0, 1                 |         r0 ^= 1;
    0x0001d742 add sp, 0x10                  |         
    0x0001d744 pop {r4, r5, r6, pc}          |         
    0x0001d746 blx 0xdd6c                    |         r0 = g_hash_table_ref ();
    0x0001d74a mov r4, r0                    |         r4 = r0;
    0x0001d74c mov r0, r6                    |         r0 = r6;
    0x0001d74e blx 0xdd6c                    |         r0 = g_hash_table_ref ();
    0x0001d752 mov r1, r0                    |         r1 = r0;
    0x0001d754 mov r0, r4                    |         r0 = r4;
    0x0001d756 blx 0x1061c                   |         r0 = fcn_0001061c ();
    0x0001d75a clz r0, r0                    |         r0 &= r0;
    0x0001d75e lsrs r0, r0, 5                |         r0 >>= 5;
    0x0001d760 add sp, 0x10                  |         
    0x0001d762 pop {r4, r5, r6, pc}          |         
    0x0001d764 blx 0xf024                    |         r0 = fcn_0000f024 ();
    0x0001d768 mov r4, r0                    |         r4 = r0;
    0x0001d76a mov r0, r6                    |         r0 = r6;
    0x0001d76c blx 0xf024                    |         r0 = fcn_0000f024 ();
    0x0001d770 orrs.w r3, r4, r0             |         r3 = r4 | r0;
                                             |         if (r3 == r4) {
    0x0001d774 beq 0x1d7de                   |             goto label_7;
                                             |         }
    0x0001d776 cmp r0, 0                     |         
    0x0001d778 it ne                         |         
                                             |         if (r0 != 0) {
    0x0001d77a cmpne r4, 0                   |             __asm ("cmpne r4, 0");
                                             |         }
    0x0001d77c beq.w 0x1d67e                 |         
                                             |     } while (r0 == 0);
    0x0001d780 mov r1, r0                    |     r1 = r0;
    0x0001d782 mov r0, r4                    |     r0 = r4;
    0x0001d784 add sp, 0x10                  |     
    0x0001d786 pop.w {r4, r5, r6, lr}        |     
    0x0001d78a b.w 0xf148                    |     void (*0xf148)() ();
                                             | label_5:
    0x0001d78e mov r0, r4                    |     r0 = r4;
    0x0001d790 blx 0x103f8                   |     r0 = fcn_000103f8 ();
    0x0001d794 mov r5, r0                    |     r5 = r0;
    0x0001d796 mov r0, r6                    |     r0 = r6;
    0x0001d798 blx 0x103f8                   |     r0 = fcn_000103f8 ();
    0x0001d79c orrs.w r3, r5, r0             |     r3 = r5 | r0;
    0x0001d7a0 mov r4, r0                    |     r4 = r0;
                                             |     if (r3 == r5) {
    0x0001d7a2 beq 0x1d7de                   |         goto label_7;
                                             |     }
    0x0001d7a4 cmp r0, 0                     |     
    0x0001d7a6 it ne                         |     
                                             |     if (r0 == 0) {
    0x0001d7a8 cmpne r5, 0                   |         __asm ("cmpne r5, 0");
                                             |         goto label_8;
                                             |     }
                                             |     if (r0 == 0) {
                                             | label_8:
    0x0001d7aa beq.w 0x1d67e                 |         goto label_0;
                                             |     }
    0x0001d7ae mov r0, r5                    |     r0 = r5;
    0x0001d7b0 blx 0xf200                    |     r0 = g_list_free_full ();
    0x0001d7b4 mov r6, r0                    |     r6 = r0;
    0x0001d7b6 mov r0, r4                    |     r0 = r4;
    0x0001d7b8 blx 0xf200                    |     r0 = g_list_free_full ();
    0x0001d7bc cmp r6, r0                    |     
                                             |     if (r6 != r0) {
    0x0001d7be bne.w 0x1d67e                 |         goto label_0;
                                             |     }
    0x0001d7c2 ldr r0, [r5]                  |     r0 = *(r5);
                                             |     if (r0 == 0) {
    0x0001d7c4 cbz r0, 0x1d7de               |         goto label_7;
                                             |     }
    0x0001d7c6 subs r4, 4                    |     r4 -= 4;
                                             | label_1:
    0x0001d7c8 ldr r1, [r4, 4]!              |     r1 = *((r4 += 4));
    0x0001d7cc blx 0x1061c                   |     r0 = fcn_0001061c ();
    0x0001d7d0 cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x0001d7d2 bne.w 0x1d67e                 |         goto label_0;
                                             |     }
    0x0001d7d6 ldr r0, [r5, 4]!              |     r0 = *((r5 += 4));
    0x0001d7da cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x0001d7dc bne 0x1d7c8                   |         goto label_1;
                                             |     }
                                             | label_7:
    0x0001d7de movs r0, 1                    |     r0 = 1;
    0x0001d7e0 b 0x1d680                     |     goto label_2;
                                             | label_6:
    0x0001d7e2 ldr r2, [r0, 4]               |     r2 = *((r0 + 4));
    0x0001d7e4 ldr r3, [sp, 0xc]             |     r3 = *(arg_ch);
    0x0001d7e6 cmp r2, r3                    |     
    0x0001d7e8 it eq                         |     
                                             |     if (r2 == r3) {
    0x0001d7ea moveq r0, 0                   |         r0 = 0;
                                             |         goto label_9;
                                             |     }
                                             |     if (r2 != r3) {
                                             | label_9:
    0x0001d7ec bne 0x1d73c                   |         goto label_3;
                                             |     }
    0x0001d7ee b 0x1d73e                     |     goto label_4;
                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x1eb80 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0001eb80 ()                      | void fcn_0001eb80 (int16_t arg_0h, int16_t arg_8h, int16_t arg1, int16_t arg2) {
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x0001eb80 push {r4, r5, r6, lr}             |     
    0x0001eb82 mov r4, r0                        |     r4 = r0;
    0x0001eb84 ldr r5, [r0]                      |     r5 = *(r0);
    0x0001eb86 sub sp, 0x10                      |     
    0x0001eb88 mov r6, r1                        |     r6 = r1;
    0x0001eb8a sub.w r3, r5, 0x10                |     r3 = r5 - 0x10;
    0x0001eb8e cmp r3, 0x44                      |     
                                                 |     if (r3 <= 0x44) {
    0x0001eb90 bhi 0x1ebdc                       |         
                                                 |         /* switch table (69 cases) at 0x1eb96 */
    0x0001eb92 tbb [pc, r3]                      |         __asm ("tbb aav.0x000000ff");
                                                 |     }
    0x0001ebdc blx 0xfa38                        |     r0 = fcn_0000fa38 ();
    0x0001ebe0 cmp r5, r0                        |     
                                                 |     if (r5 == r0) {
    0x0001ebe2 beq.w 0x1ed0a                     |         goto label_3;
                                                 |     }
    0x0001ebe6 mov r0, r5                        |     r0 = r5;
    0x0001ebe8 blx 0xe364                        |     fcn_0000e364 ();
    0x0001ebec ldr r2, [pc, 0x17c]               |     
    0x0001ebee mov r3, r0                        |     r3 = r0;
    0x0001ebf0 movs r1, 8                        |     r1 = 8;
    0x0001ebf2 movs r0, 0                        |     r0 = 0;
    0x0001ebf4 add r2, pc                        |     r2 = 0x3d964;
    0x0001ebf6 blx 0xe318                        |     gst_element_error_printf ()
                                                 | label_0:
    0x0001ebfa movs r0, 0                        |     r0 = 0;
                                                 | label_2:
    0x0001ebfc add sp, 0x10                      |     
    0x0001ebfe pop {r4, r5, r6, pc}              |     
    0x0001ec00 blx 0xe8e4                        |     r0 = fcn_0000e8e4 ();
    0x0001ec04 mov r4, r0                        |     r4 = r0;
    0x0001ec06 mov r0, r6                        |     r0 = r6;
    0x0001ec08 blx 0xe8e4                        |     r0 = fcn_0000e8e4 ();
    0x0001ec0c subs r0, r4, r0                   |     r0 = r4 - r0;
    0x0001ec0e clz r0, r0                        |     r0 &= r0;
    0x0001ec10 eor sb, r0, 0x40                  |     sb = r0 ^ 0x40;
    0x0001ec14 add sp, 0x10                      |     
    0x0001ec16 pop {r4, r5, r6, pc}              |     
    0x0001ec18 blx 0xec9c                        |     r0 = snd_device_name_free_hint ();
    0x0001ec1c mov r4, r0                        |     r4 = r0;
    0x0001ec1e mov r0, r6                        |     r0 = r6;
    0x0001ec20 blx 0xec9c                        |     r0 = snd_device_name_free_hint ();
    0x0001ec24 subs r0, r4, r0                   |     r0 = r4 - r0;
    0x0001ec26 clz r0, r0                        |     r0 &= r0;
    0x0001ec2a lsrs r0, r0, 5                    |     r0 >>= 5;
    0x0001ec2c add sp, 0x10                      |     
    0x0001ec2e pop {r4, r5, r6, pc}              |     
    0x0001ec30 blx 0xde78                        |     r0 = fcn_0000de78 ();
    0x0001ec34 mov r4, r0                        |     r4 = r0;
    0x0001ec36 mov r0, r6                        |     r0 = r6;
    0x0001ec38 blx 0xde78                        |     r0 = fcn_0000de78 ();
    0x0001ec3c subs r0, r4, r0                   |     r0 = r4 - r0;
    0x0001ec3e clz r0, r0                        |     r0 &= r0;
    0x0001ec42 lsrs r0, r0, 5                    |     r0 >>= 5;
    0x0001ec44 add sp, 0x10                      |     
    0x0001ec46 pop {r4, r5, r6, pc}              |     
    0x0001ec48 blx 0xf83c                        |     r0 = gst_element_add_pad ();
    0x0001ec4c mov r4, r0                        |     r4 = r0;
    0x0001ec4e mov r0, r6                        |     r0 = r6;
    0x0001ec50 blx 0xf83c                        |     r0 = gst_element_add_pad ();
    0x0001ec54 subs r0, r4, r0                   |     r0 = r4 - r0;
    0x0001ec56 clz r0, r0                        |     r0 &= r0;
    0x0001ec5a lsrs r0, r0, 5                    |     r0 >>= 5;
    0x0001ec5c add sp, 0x10                      |     
    0x0001ec5e pop {r4, r5, r6, pc}              |     
    0x0001ec60 blx 0xf084                        |     r0 = fcn_0000f084 ();
    0x0001ec64 mov r5, r0                        |     r5 = r0;
    0x0001ec66 mov r4, r1                        |     r4 = r1;
    0x0001ec68 mov r0, r6                        |     r0 = r6;
    0x0001ec6a blx 0xf084                        |     fcn_0000f084 ();
    0x0001ec6e cmp r4, r1                        |     
    0x0001ec70 it eq                             |     
                                                 |     if (r4 == r1) {
    0x0001ec72 cmpeq r5, r0                      |         __asm ("cmpeq r5, r0");
                                                 |     }
    0x0001ec74 ite eq                            |     
                                                 |     if (r4 != r1) {
    0x0001ec76 moveq r0, 1                       |         r0 = 1;
                                                 |     }
                                                 |     if (r4 == r1) {
    0x0001ec78 movne r0, 0                       |         r0 = 0;
                                                 |     }
    0x0001ec7a add sp, 0x10                      |     
    0x0001ec7c pop {r4, r5, r6, pc}              |     
    0x0001ec7e blx 0xfb48                        |     r0 = accept (r0, r1, r2);
    0x0001ec82 mov r5, r0                        |     r5 = r0;
    0x0001ec84 mov r4, r1                        |     r4 = r1;
    0x0001ec86 mov r0, r6                        |     r0 = r6;
    0x0001ec88 blx 0xfb48                        |     accept (r0, r1, r2);
    0x0001ec8c cmp r4, r1                        |     
    0x0001ec8e it eq                             |     
                                                 |     if (r4 == r1) {
    0x0001ec90 cmpeq r5, r0                      |         __asm ("cmpeq r5, r0");
                                                 |     }
    0x0001ec92 ite eq                            |     
                                                 |     if (r4 != r1) {
    0x0001ec94 moveq r0, 1                       |         r0 = 1;
                                                 |     }
                                                 |     if (r4 == r1) {
    0x0001ec96 movne r0, 0                       |         r0 = 0;
                                                 |     }
    0x0001ec98 add sp, 0x10                      |     
    0x0001ec9a pop {r4, r5, r6, pc}              |     
    0x0001ec9c blx 0xe010                        |     fcn_0000e010 ();
    0x0001eca0 mov r0, r6                        |     r0 = r6;
    0x0001eca2 vstr d0, [sp]                     |     __asm ("vstr d0, [sp]");
    0x0001eca6 blx 0xe010                        |     fcn_0000e010 ();
    0x0001ecaa vstr d0, [sp, 8]                  |     __asm ("vstr d0, [sp, 8]");
    0x0001ecae mov r0, sp                        |     r0 = sp;
    0x0001ecb0 ldr r2, [sp]                      |     r2 = *(sp);
    0x0001ecb2 ldr r3, [sp, 8]                   |     r3 = *(arg_8h);
    0x0001ecb4 cmp r2, r3                        |     
                                                 |     if (r2 == r3) {
    0x0001ecb6 beq 0x1ed5e                       |         void (*0x1ed5e)() ();
                                                 |     }
    0x0001ecc2 blx 0xdd6c                        |     r0 = g_hash_table_ref ();
    0x0001ecc6 mov r4, r0                        |     r4 = r0;
    0x0001ecc8 mov r0, r6                        |     r0 = r6;
    0x0001ecca blx 0xdd6c                        |     r0 = g_hash_table_ref ();
    0x0001ecce mov r1, r0                        |     r1 = r0;
    0x0001ecd0 mov r0, r4                        |     r0 = r4;
    0x0001ecd2 blx 0x1061c                       |     r0 = fcn_0001061c ();
    0x0001ecd6 clz r0, r0                        |     r0 &= r0;
    0x0001ecda lsrs r0, r0, 5                    |     r0 >>= 5;
    0x0001ecdc add sp, 0x10                      |     
    0x0001ecde pop {r4, r5, r6, pc}              |     
    0x0001ece0 blx 0xf024                        |     r0 = fcn_0000f024 ();
    0x0001ece4 mov r4, r0                        |     r4 = r0;
    0x0001ece6 mov r0, r6                        |     r0 = r6;
    0x0001ece8 blx 0xf024                        |     r0 = fcn_0000f024 ();
    0x0001ecec orrs.w r3, r4, r0                 |     r3 = r4 | r0;
                                                 |     if (r3 == r4) {
    0x0001ecf0 beq 0x1ed5a                       |         goto label_4;
                                                 |     }
    0x0001ecf2 cmp r0, 0                         |     
    0x0001ecf4 it ne                             |     
                                                 |     if (r0 == 0) {
    0x0001ecf6 cmpne r4, 0                       |         __asm ("cmpne r4, 0");
                                                 |         goto label_5;
                                                 |     }
                                                 |     if (r0 == 0) {
                                                 | label_5:
    0x0001ecf8 beq.w 0x1ebfa                     |         goto label_0;
                                                 |     }
    0x0001ecfc mov r1, r0                        |     r1 = r0;
    0x0001ecfe mov r0, r4                        |     r0 = r4;
    0x0001ed00 add sp, 0x10                      |     
    0x0001ed02 pop.w {r4, r5, r6, lr}            |     
    0x0001ed06 b.w 0xf148                        |     void (*0xf148)() ();
                                                 | label_3:
    0x0001ed0a mov r0, r4                        |     r0 = r4;
    0x0001ed0c blx 0x103f8                       |     fcn_000103f8 ();
    0x0001ed0e sbcs.w r6, r4, r5, lsl 16         |     __asm ("sbcs.w r6, r4, r5, lsl 16");
    0x0001ed12 mov r0, r6                        |     r0 = r6;
    0x0001ed14 blx 0x103f8                       |     r0 = fcn_000103f8 ();
    0x0001ed16 sbcs.w sl, r0, r5, lsr 25         |     __asm ("sbcs.w sl, r0, r5, lsr 25");
    0x0001ed1a lsls r0, r0, 0xc                  |     r0 <<= 0xc;
    0x0001ed1c mov r4, r0                        |     r4 = r0;
                                                 |     if (r0 == r0) {
    0x0001ed1e beq 0x1ed5a                       |         goto label_4;
                                                 |     }
    0x0001ed20 cmp r0, 0                         |     
    0x0001ed22 it ne                             |     
                                                 |     if (r0 == 0) {
    0x0001ed24 cmpne r5, 0                       |         __asm ("cmpne r5, 0");
                                                 |         goto label_6;
                                                 |     }
                                                 |     if (r0 == 0) {
                                                 | label_6:
    0x0001ed26 beq.w 0x1ebfa                     |         goto label_0;
                                                 |     }
    0x0001ed28 add r7, sp, 0x1a0                 |     r7 = sp + 0x1a0;
    0x0001ed2a mov r0, r5                        |     r0 = r5;
    0x0001ed2c blx 0xf200                        |     r0 = g_list_free_full ();
    0x0001ed30 mov r6, r0                        |     r6 = r0;
    0x0001ed32 mov r0, r4                        |     r0 = r4;
    0x0001ed34 blx 0xf200                        |     r0 = g_list_free_full ();
    0x0001ed38 cmp r6, r0                        |     
                                                 |     if (r6 != r0) {
    0x0001ed3a bne.w 0x1ebfa                     |         goto label_0;
                                                 |     }
    0x0001ed3c add r7, sp, 0x178                 |     r7 = sp + 0x178;
    0x0001ed3e ldr r0, [r5]                      |     r0 = *(r5);
                                                 |     if (r0 == 0) {
    0x0001ed40 cbz r0, 0x1ed5a                   |         goto label_4;
                                                 |     }
    0x0001ed42 subs r4, 4                        |     r4 -= 4;
                                                 | label_1:
    0x0001ed44 ldr r1, [r4, 4]!                  |     r1 = *((r4 += 4));
    0x0001ed48 blx 0x1061c                       |     r0 = fcn_0001061c ();
    0x0001ed4c cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x0001ed4e bne.w 0x1ebfa                     |         goto label_0;
                                                 |     }
    0x0001ed52 ldr r0, [r5, 4]!                  |     r0 = *((r5 += 4));
    0x0001ed56 cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x0001ed58 bne 0x1ed44                       |         goto label_1;
                                                 |     }
                                                 | label_4:
    0x0001ed5a movs r0, 1                        |     r0 = 1;
    0x0001ed5c b 0x1ebfc                         |     goto label_2;
                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x20248 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00020248 ()                      | void fcn_00020248 (int16_t arg_0h, int16_t arg_8h, int16_t arg_ch, int16_t arg1, int16_t arg2) {
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00020248 push {r4, r5, r6, lr}             |     
    0x0002024a mov r4, r0                        |     r4 = r0;
    0x0002024c ldr r5, [r0]                      |     r5 = *(r0);
    0x0002024e sub sp, 0x10                      |     
    0x00020250 mov r6, r1                        |     r6 = r1;
    0x00020252 sub.w r3, r5, 0x10                |     r3 = r5 - 0x10;
    0x00020256 cmp r3, 0x44                      |     
                                                 |     if (r3 <= 0x44) {
    0x00020258 bhi 0x202a4                       |         
                                                 |         /* switch table (69 cases) at 0x2025e */
    0x0002025a tbb [pc, r3]                      |         __asm ("tbb aav.0x000000ff");
                                                 |     }
    0x000202a4 blx 0xfa38                        |     r0 = fcn_0000fa38 ();
    0x000202a8 cmp r5, r0                        |     
                                                 |     if (r5 == r0) {
    0x000202aa beq.w 0x203d2                     |         goto label_5;
                                                 |     }
    0x000202ae mov r0, r5                        |     r0 = r5;
    0x000202b0 blx 0xe364                        |     fcn_0000e364 ();
    0x000202b4 ldr r2, [pc, 0x17c]               |     
    0x000202b6 mov r3, r0                        |     r3 = r0;
    0x000202b8 movs r1, 8                        |     r1 = 8;
    0x000202ba movs r0, 0                        |     r0 = 0;
    0x000202bc add r2, pc                        |     r2 = 0x406f4;
    0x000202be blx 0xe318                        |     gst_element_error_printf ()
                                                 |     do {
                                                 | label_0:
    0x000202c2 movs r0, 0                        |         r0 = 0;
                                                 | label_2:
    0x000202c4 add sp, 0x10                      |         
    0x000202c6 pop {r4, r5, r6, pc}              |         
    0x000202c8 blx 0xe8e4                        |         r0 = fcn_0000e8e4 ();
    0x000202cc mov r4, r0                        |         r4 = r0;
    0x000202ce mov r0, r6                        |         r0 = r6;
    0x000202d0 blx 0xe8e4                        |         r0 = fcn_0000e8e4 ();
    0x000202d4 subs r0, r4, r0                   |         r0 = r4 - r0;
    0x000202d6 clz r0, r0                        |         r0 &= r0;
    0x000202da lsrs r0, r0, 5                    |         r0 >>= 5;
    0x000202dc add sp, 0x10                      |         
    0x000202de pop {r4, r5, r6, pc}              |         
    0x000202e0 blx 0xec9c                        |         r0 = snd_device_name_free_hint ();
    0x000202e4 mov r4, r0                        |         r4 = r0;
    0x000202e6 mov r0, r6                        |         r0 = r6;
    0x000202e8 blx 0xec9c                        |         r0 = snd_device_name_free_hint ();
    0x000202ec subs r0, r4, r0                   |         r0 = r4 - r0;
    0x000202ee clz r0, r0                        |         r0 &= r0;
    0x000202f2 lsrs r0, r0, 5                    |         r0 >>= 5;
    0x000202f4 add sp, 0x10                      |         
    0x000202f6 pop {r4, r5, r6, pc}              |         
    0x000202f8 blx 0xde78                        |         r0 = fcn_0000de78 ();
    0x000202fc mov r4, r0                        |         r4 = r0;
    0x000202fe mov r0, r6                        |         r0 = r6;
    0x00020300 blx 0xde78                        |         r0 = fcn_0000de78 ();
    0x00020304 subs r0, r4, r0                   |         r0 = r4 - r0;
    0x00020306 clz r0, r0                        |         r0 &= r0;
    0x0002030a lsrs r0, r0, 5                    |         r0 >>= 5;
    0x0002030c add sp, 0x10                      |         
    0x0002030e pop {r4, r5, r6, pc}              |         
    0x00020310 blx 0xf83c                        |         r0 = gst_element_add_pad ();
    0x00020314 mov r4, r0                        |         r4 = r0;
    0x00020316 mov r0, r6                        |         r0 = r6;
    0x00020318 blx 0xf83c                        |         r0 = gst_element_add_pad ();
    0x0002031c subs r0, r4, r0                   |         r0 = r4 - r0;
    0x0002031e clz r0, r0                        |         r0 &= r0;
    0x00020322 lsrs r0, r0, 5                    |         r0 >>= 5;
    0x00020324 add sp, 0x10                      |         
    0x00020326 pop {r4, r5, r6, pc}              |         
    0x00020328 blx 0xf084                        |         r0 = fcn_0000f084 ();
    0x0002032c mov r5, r0                        |         r5 = r0;
    0x0002032e mov r4, r1                        |         r4 = r1;
    0x00020330 mov r0, r6                        |         r0 = r6;
    0x00020332 blx 0xf084                        |         fcn_0000f084 ();
    0x00020334 cdp p2, 0xa, c4, c8, c12, 4       |         __asm ("cdp p2, 0xa, c4, c8, c12, 4");
    0x00020338 it eq                             |         
                                                 |         if (r0 == r0) {
    0x0002033a cmpeq r5, r0                      |             __asm ("cmpeq r5, r0");
                                                 |         }
    0x0002033c ite eq                            |         
                                                 |         if (r0 != r0) {
    0x0002033e moveq r0, 1                       |             r0 = 1;
                                                 |         }
                                                 |         if (r0 == r0) {
    0x00020340 movne r0, 0                       |             r0 = 0;
                                                 |         }
    0x00020342 add sp, 0x10                      |         
    0x00020344 pop {r4, r5, r6, pc}              |         
    0x00020346 blx 0xfb48                        |         r0 = accept (r0, r1, r2);
    0x0002034a mov r5, r0                        |         r5 = r0;
    0x0002034c mov r4, r1                        |         r4 = r1;
    0x0002034e mov r0, r6                        |         r0 = r6;
    0x00020350 blx 0xfb48                        |         accept (r0, r1, r2);
    0x00020354 cmp r4, r1                        |         
    0x00020356 it eq                             |         
                                                 |         if (r4 == r1) {
    0x00020358 cmpeq r5, r0                      |             __asm ("cmpeq r5, r0");
                                                 |         }
    0x0002035a ite eq                            |         
                                                 |         if (r4 != r1) {
    0x0002035c moveq r0, 1                       |             r0 = 1;
                                                 |         }
                                                 |         if (r4 == r1) {
    0x0002035e movne r0, 0                       |             r0 = 0;
                                                 |         }
    0x00020360 add sp, 0x10                      |         
    0x00020362 pop {r4, r5, r6, pc}              |         
    0x00020364 blx 0xe010                        |         fcn_0000e010 ();
    0x00020368 mov r0, r6                        |         r0 = r6;
    0x0002036a vstr d0, [sp]                     |         __asm ("vstr d0, [sp]");
    0x0002036e blx 0xe010                        |         fcn_0000e010 ();
    0x00020372 vstr d0, [sp, 8]                  |         __asm ("vstr d0, [sp, 8]");
    0x00020374 lsrs r2, r0, 0xc                  |         r2 = r0 >> 0xc;
    0x00020376 mov r0, sp                        |         r0 = sp;
    0x00020378 ldr r2, [sp]                      |         r2 = *(sp);
    0x0002037a ldr r3, [sp, 8]                   |         r3 = *(arg_8h);
    0x0002037c cmp r2, r3                        |         
                                                 |         if (r2 == r3) {
    0x0002037e beq 0x20426                       |             goto label_6;
                                                 |         }
                                                 | label_3:
    0x00020380 movs r0, 1                        |         r0 = 1;
                                                 | label_4:
    0x00020382 eor r0, r0, 1                     |         r0 ^= 1;
    0x00020386 add sp, 0x10                      |         
    0x00020388 pop {r4, r5, r6, pc}              |         
    0x0002038a blx 0xdd6c                        |         r0 = g_hash_table_ref ();
    0x0002038e mov r4, r0                        |         r4 = r0;
    0x00020390 mov r0, r6                        |         r0 = r6;
    0x00020392 blx 0xdd6c                        |         g_hash_table_ref ();
    0x00020394 stcl p6, c4, [ip], 4              |         __asm ("stcl p6, c4, [ip], 4");
    0x00020398 mov r0, r4                        |         r0 = r4;
    0x0002039a blx 0x1061c                       |         r0 = fcn_0001061c ();
    0x0002039e clz r0, r0                        |         r0 &= r0;
    0x000203a2 lsrs r0, r0, 5                    |         r0 >>= 5;
    0x000203a4 add sp, 0x10                      |         
    0x000203a6 pop {r4, r5, r6, pc}              |         
    0x000203a8 blx 0xf024                        |         r0 = fcn_0000f024 ();
    0x000203ac mov r4, r0                        |         r4 = r0;
    0x000203ae mov r0, r6                        |         r0 = r6;
    0x000203b0 blx 0xf024                        |         r0 = fcn_0000f024 ();
    0x000203b4 orrs.w r3, r4, r0                 |         r3 = r4 | r0;
                                                 |         if (r3 == r4) {
    0x000203b8 beq 0x20422                       |             goto label_7;
                                                 |         }
    0x000203ba cmp r0, 0                         |         
    0x000203bc it ne                             |         
                                                 |         if (r0 != 0) {
    0x000203be cmpne r4, 0                       |             __asm ("cmpne r4, 0");
                                                 |         }
    0x000203c0 beq.w 0x202c2                     |         
                                                 |     } while (r0 == 0);
    0x000203c4 mov r1, r0                        |     r1 = r0;
    0x000203c6 mov r0, r4                        |     r0 = r4;
    0x000203c8 add sp, 0x10                      |     
    0x000203ca pop.w {r4, r5, r6, lr}            |     
    0x000203cc eors r0, r6                       |     r0 ^= r6;
    0x000203ce b.w 0xf148                        |     void (*0xf148)() ();
                                                 | label_5:
    0x000203d2 mov r0, r4                        |     r0 = r4;
    0x000203d4 blx 0x103f8                       |     r0 = fcn_000103f8 ();
    0x000203d8 mov r5, r0                        |     r5 = r0;
    0x000203da mov r0, r6                        |     r0 = r6;
    0x000203dc blx 0x103f8                       |     r0 = fcn_000103f8 ();
    0x000203e0 orrs.w r3, r5, r0                 |     r3 = r5 | r0;
    0x000203e4 mov r4, r0                        |     r4 = r0;
                                                 |     if (r3 == r5) {
    0x000203e6 beq 0x20422                       |         goto label_7;
                                                 |     }
    0x000203e8 cmp r0, 0                         |     
    0x000203ea it ne                             |     
                                                 |     if (r0 == 0) {
    0x000203ec cmpne r5, 0                       |         __asm ("cmpne r5, 0");
                                                 |         goto label_8;
                                                 |     }
                                                 |     if (r0 == 0) {
                                                 | label_8:
    0x000203ee beq.w 0x202c2                     |         goto label_0;
                                                 |     }
    0x000203f2 mov r0, r5                        |     r0 = r5;
    0x000203f4 blx 0xf200                        |     r0 = g_list_free_full ();
    0x000203f8 mov r6, r0                        |     r6 = r0;
    0x000203fa mov r0, r4                        |     r0 = r4;
    0x000203fc blx 0xf200                        |     r0 = g_list_free_full ();
    0x00020400 cmp r6, r0                        |     
                                                 |     if (r6 != r0) {
    0x00020402 bne.w 0x202c2                     |         goto label_0;
                                                 |     }
    0x00020406 ldr r0, [r5]                      |     r0 = *(r5);
                                                 |     if (r0 == 0) {
    0x00020408 cbz r0, 0x20422                   |         goto label_7;
                                                 |     }
    0x0002040a subs r4, 4                        |     r4 -= 4;
                                                 | label_1:
    0x0002040c ldr r1, [r4, 4]!                  |     r1 = *((r4 += 4));
    0x00020410 blx 0x1061c                       |     r0 = fcn_0001061c ();
    0x00020414 cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x00020416 bne.w 0x202c2                     |         goto label_0;
                                                 |     }
    0x0002041a ldr r0, [r5, 4]!                  |     r0 = *((r5 += 4));
    0x0002041e cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x00020420 bne 0x2040c                       |         goto label_1;
                                                 |     }
                                                 | label_7:
    0x00020422 movs r0, 1                        |     r0 = 1;
    0x00020424 b 0x202c4                         |     goto label_2;
                                                 | label_6:
    0x00020426 ldr r2, [r0, 4]                   |     r2 = *((r0 + 4));
    0x00020428 ldr r3, [sp, 0xc]                 |     r3 = *(arg_ch);
    0x0002042a cmp r2, r3                        |     
    0x0002042c it eq                             |     
                                                 |     if (r2 == r3) {
    0x0002042e moveq r0, 0                       |         r0 = 0;
                                                 |         goto label_9;
                                                 |     }
                                                 |     if (r2 != r3) {
                                                 | label_9:
    0x00020430 bne 0x20380                       |         goto label_3;
                                                 |     }
    0x00020432 b 0x20382                         |     goto label_4;
                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x21d1c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00021d1c ()                  | void fcn_00021d1c (int16_t arg_0h, int16_t arg_8h, int16_t arg_ch, int16_t arg1, int16_t arg2) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x00021d1c push {r4, r5, r6, lr}         |     
    0x00021d1e mov r4, r0                    |     r4 = r0;
    0x00021d20 ldr r5, [r0]                  |     r5 = *(r0);
    0x00021d22 sub sp, 0x10                  |     
    0x00021d24 mov r6, r1                    |     r6 = r1;
    0x00021d26 sub.w r3, r5, 0x10            |     r3 = r5 - 0x10;
    0x00021d2a cmp r3, 0x44                  |     
                                             |     if (r3 <= 0x44) {
    0x00021d2c bhi 0x21d78                   |         
                                             |         /* switch table (69 cases) at 0x21d32 */
    0x00021d2e tbb [pc, r3]                  |         __asm ("tbb aav.0x000000ff");
                                             |     }
    0x00021d78 blx 0xfa38                    |     r0 = fcn_0000fa38 ();
    0x00021d7c cmp r5, r0                    |     
                                             |     if (r5 == r0) {
    0x00021d7e beq.w 0x21ea6                 |         goto label_5;
                                             |     }
    0x00021d82 mov r0, r5                    |     r0 = r5;
    0x00021d84 blx 0xe364                    |     fcn_0000e364 ();
    0x00021d86 invalid                       |     
    0x00021d8a mov r3, r0                    |     r3 = r0;
    0x00021d8c movs r1, 8                    |     r1 = 8;
    0x00021d8e movs r0, 0                    |     r0 = 0;
    0x00021d90 add r2, pc                    |     r2 += pc;
    0x00021d92 blx 0xe318                    |     gst_element_error_printf ()
                                             |     do {
                                             | label_0:
    0x00021d96 movs r0, 0                    |         r0 = 0;
                                             | label_2:
    0x00021d98 add sp, 0x10                  |         
    0x00021d9a pop {r4, r5, r6, pc}          |         
    0x00021d9c blx 0xe8e4                    |         r0 = fcn_0000e8e4 ();
    0x00021da0 mov r4, r0                    |         r4 = r0;
    0x00021da2 mov r0, r6                    |         r0 = r6;
    0x00021da4 blx 0xe8e4                    |         r0 = fcn_0000e8e4 ();
    0x00021da8 subs r0, r4, r0               |         r0 = r4 - r0;
    0x00021daa clz r0, r0                    |         r0 &= r0;
    0x00021dae lsrs r0, r0, 5                |         r0 >>= 5;
    0x00021db0 add sp, 0x10                  |         
    0x00021db2 pop {r4, r5, r6, pc}          |         
    0x00021db4 blx 0xec9c                    |         r0 = snd_device_name_free_hint ();
    0x00021db8 mov r4, r0                    |         r4 = r0;
    0x00021dba mov r0, r6                    |         r0 = r6;
    0x00021dbc blx 0xec9c                    |         r0 = snd_device_name_free_hint ();
    0x00021dc0 subs r0, r4, r0               |         r0 = r4 - r0;
    0x00021dc2 clz r0, r0                    |         r0 &= r0;
    0x00021dc6 lsrs r0, r0, 5                |         r0 >>= 5;
    0x00021dc8 add sp, 0x10                  |         
    0x00021dca pop {r4, r5, r6, pc}          |         
    0x00021dcc blx 0xde78                    |         r0 = fcn_0000de78 ();
    0x00021dd0 mov r4, r0                    |         r4 = r0;
    0x00021dd2 mov r0, r6                    |         r0 = r6;
    0x00021dd4 blx 0xde78                    |         r0 = fcn_0000de78 ();
    0x00021dd8 subs r0, r4, r0               |         r0 = r4 - r0;
    0x00021dda clz r0, r0                    |         r0 &= r0;
    0x00021dde lsrs r0, r0, 5                |         r0 >>= 5;
    0x00021de0 add sp, 0x10                  |         
    0x00021de2 pop {r4, r5, r6, pc}          |         
    0x00021de4 blx 0xf83c                    |         r0 = gst_element_add_pad ();
    0x00021de8 mov r4, r0                    |         r4 = r0;
    0x00021dea mov r0, r6                    |         r0 = r6;
    0x00021dec blx 0xf83c                    |         r0 = gst_element_add_pad ();
    0x00021df0 subs r0, r4, r0               |         r0 = r4 - r0;
    0x00021df2 clz r0, r0                    |         r0 &= r0;
    0x00021df6 lsrs r0, r0, 5                |         r0 >>= 5;
    0x00021df8 add sp, 0x10                  |         
    0x00021dfa pop {r4, r5, r6, pc}          |         
    0x00021dfc blx 0xf084                    |         r0 = fcn_0000f084 ();
    0x00021e00 mov r5, r0                    |         r5 = r0;
    0x00021e02 mov r4, r1                    |         r4 = r1;
    0x00021e04 mov r0, r6                    |         r0 = r6;
    0x00021e06 blx 0xf084                    |         fcn_0000f084 ();
    0x00021e0a cmp r4, r1                    |         
    0x00021e0c it eq                         |         
                                             |         if (r4 == r1) {
    0x00021e0e cmpeq r5, r0                  |             __asm ("cmpeq r5, r0");
                                             |         }
    0x00021e10 ite eq                        |         
                                             |         if (r4 != r1) {
    0x00021e12 moveq r0, 1                   |             r0 = 1;
                                             |         }
                                             |         if (r4 == r1) {
    0x00021e14 movne r0, 0                   |             r0 = 0;
                                             |         }
    0x00021e16 add sp, 0x10                  |         
    0x00021e18 pop {r4, r5, r6, pc}          |         
    0x00021e1a blx 0xfb48                    |         r0 = accept (r0, r1, r2);
    0x00021e1e mov r5, r0                    |         r5 = r0;
    0x00021e20 mov r4, r1                    |         r4 = r1;
    0x00021e22 mov r0, r6                    |         r0 = r6;
    0x00021e24 blx 0xfb48                    |         accept (r0, r1, r2);
    0x00021e28 cmp r4, r1                    |         
    0x00021e2a it eq                         |         
                                             |         if (r4 == r1) {
    0x00021e2c cmpeq r5, r0                  |             __asm ("cmpeq r5, r0");
                                             |         }
    0x00021e2e ite eq                        |         
                                             |         if (r4 != r1) {
    0x00021e30 moveq r0, 1                   |             r0 = 1;
                                             |         }
                                             |         if (r4 == r1) {
    0x00021e32 movne r0, 0                   |             r0 = 0;
                                             |         }
    0x00021e34 add sp, 0x10                  |         
    0x00021e36 pop {r4, r5, r6, pc}          |         
    0x00021e38 blx 0xe010                    |         fcn_0000e010 ();
    0x00021e3c mov r0, r6                    |         r0 = r6;
    0x00021e3e vstr d0, [sp]                 |         __asm ("vstr d0, [sp]");
    0x00021e42 blx 0xe010                    |         fcn_0000e010 ();
    0x00021e46 vstr d0, [sp, 8]              |         __asm ("vstr d0, [sp, 8]");
    0x00021e4a mov r0, sp                    |         r0 = sp;
    0x00021e4c ldr r2, [sp]                  |         r2 = *(sp);
    0x00021e4e ldr r3, [sp, 8]               |         r3 = *(arg_8h);
    0x00021e50 cmp r2, r3                    |         
                                             |         if (r2 == r3) {
    0x00021e52 beq 0x21efa                   |             goto label_6;
                                             |         }
                                             | label_3:
    0x00021e54 movs r0, 1                    |         r0 = 1;
                                             | label_4:
    0x00021e56 eor r0, r0, 1                 |         r0 ^= 1;
    0x00021e5a add sp, 0x10                  |         
    0x00021e5c pop {r4, r5, r6, pc}          |         
    0x00021e5e blx 0xdd6c                    |         r0 = g_hash_table_ref ();
    0x00021e62 mov r4, r0                    |         r4 = r0;
    0x00021e64 mov r0, r6                    |         r0 = r6;
    0x00021e66 blx 0xdd6c                    |         r0 = g_hash_table_ref ();
    0x00021e6a mov r1, r0                    |         r1 = r0;
    0x00021e6c mov r0, r4                    |         r0 = r4;
    0x00021e6e blx 0x1061c                   |         r0 = fcn_0001061c ();
    0x00021e72 clz r0, r0                    |         r0 &= r0;
    0x00021e76 lsrs r0, r0, 5                |         r0 >>= 5;
    0x00021e78 add sp, 0x10                  |         
    0x00021e7a pop {r4, r5, r6, pc}          |         
    0x00021e7c blx 0xf024                    |         r0 = fcn_0000f024 ();
    0x00021e80 mov r4, r0                    |         r4 = r0;
    0x00021e82 mov r0, r6                    |         r0 = r6;
    0x00021e84 blx 0xf024                    |         r0 = fcn_0000f024 ();
    0x00021e88 orrs.w r3, r4, r0             |         r3 = r4 | r0;
                                             |         if (r3 == r4) {
    0x00021e8c beq 0x21ef6                   |             goto label_7;
                                             |         }
    0x00021e8e cmp r0, 0                     |         
    0x00021e90 it ne                         |         
                                             |         if (r0 != 0) {
    0x00021e92 cmpne r4, 0                   |             __asm ("cmpne r4, 0");
                                             |         }
    0x00021e94 beq.w 0x21d96                 |         
                                             |     } while (r0 == 0);
    0x00021e98 mov r1, r0                    |     r1 = r0;
    0x00021e9a mov r0, r4                    |     r0 = r4;
    0x00021e9c add sp, 0x10                  |     
    0x00021e9e pop.w {r4, r5, r6, lr}        |     
    0x00021ea2 b.w 0xf148                    |     void (*0xf148)() ();
                                             | label_5:
    0x00021ea6 mov r0, r4                    |     r0 = r4;
    0x00021ea8 blx 0x103f8                   |     r0 = fcn_000103f8 ();
    0x00021eac mov r5, r0                    |     r5 = r0;
    0x00021eae mov r0, r6                    |     r0 = r6;
    0x00021eb0 blx 0x103f8                   |     r0 = fcn_000103f8 ();
    0x00021eb4 orrs.w r3, r5, r0             |     r3 = r5 | r0;
    0x00021eb8 mov r4, r0                    |     r4 = r0;
                                             |     if (r3 == r5) {
    0x00021eba beq 0x21ef6                   |         goto label_7;
                                             |     }
    0x00021ebc cmp r0, 0                     |     
    0x00021ebe it ne                         |     
                                             |     if (r0 == 0) {
    0x00021ec0 cmpne r5, 0                   |         __asm ("cmpne r5, 0");
                                             |         goto label_8;
                                             |     }
                                             |     if (r0 == 0) {
                                             | label_8:
    0x00021ec2 beq.w 0x21d96                 |         goto label_0;
                                             |     }
    0x00021ec6 mov r0, r5                    |     r0 = r5;
    0x00021ec8 blx 0xf200                    |     r0 = g_list_free_full ();
    0x00021ecc mov r6, r0                    |     r6 = r0;
    0x00021ece mov r0, r4                    |     r0 = r4;
    0x00021ed0 blx 0xf200                    |     r0 = g_list_free_full ();
    0x00021ed4 cmp r6, r0                    |     
                                             |     if (r6 != r0) {
    0x00021ed6 bne.w 0x21d96                 |         goto label_0;
                                             |     }
    0x00021eda ldr r0, [r5]                  |     r0 = *(r5);
                                             |     if (r0 == 0) {
    0x00021edc cbz r0, 0x21ef6               |         goto label_7;
                                             |     }
    0x00021ede subs r4, 4                    |     r4 -= 4;
                                             | label_1:
    0x00021ee0 ldr r1, [r4, 4]!              |     r1 = *((r4 += 4));
    0x00021ee4 blx 0x1061c                   |     r0 = fcn_0001061c ();
    0x00021ee8 cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x00021eea bne.w 0x21d96                 |         goto label_0;
                                             |     }
    0x00021eee ldr r0, [r5, 4]!              |     r0 = *((r5 += 4));
    0x00021ef2 cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x00021ef4 bne 0x21ee0                   |         goto label_1;
                                             |     }
                                             | label_7:
    0x00021ef6 movs r0, 1                    |     r0 = 1;
    0x00021ef8 b 0x21d98                     |     goto label_2;
                                             | label_6:
    0x00021efa ldr r2, [r0, 4]               |     r2 = *((r0 + 4));
    0x00021efc ldr r3, [sp, 0xc]             |     r3 = *(arg_ch);
    0x00021efe cmp r2, r3                    |     
    0x00021f00 it eq                         |     
                                             |     if (r2 == r3) {
    0x00021f02 moveq r0, 0                   |         r0 = 0;
                                             |         goto label_9;
                                             |     }
                                             |     if (r2 != r3) {
                                             | label_9:
    0x00021f04 bne 0x21e54                   |         goto label_3;
                                             |     }
    0x00021f06 b 0x21e56                     |     goto label_4;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x24868 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00024868 ()                  | void fcn_00024868 (int16_t arg_0h, int16_t arg_8h, int16_t arg_ch, int16_t arg1, int16_t arg2) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x00024868 push {r4, r5, r6, lr}         |     
    0x0002486a mov r4, r0                    |     r4 = r0;
    0x0002486c ldr r5, [r0]                  |     r5 = *(r0);
    0x0002486e sub sp, 0x10                  |     
    0x00024870 mov r6, r1                    |     r6 = r1;
    0x00024872 sub.w r3, r5, 0x10            |     r3 = r5 - 0x10;
    0x00024876 cmp r3, 0x44                  |     
                                             |     if (r3 <= 0x44) {
    0x00024878 bhi 0x248c4                   |         
                                             |         /* switch table (69 cases) at 0x2487e */
    0x0002487a tbb [pc, r3]                  |         __asm ("tbb aav.0x000000ff");
                                             |     }
    0x000248c4 blx 0xfa38                    |     r0 = fcn_0000fa38 ();
    0x000248c8 cmp r5, r0                    |     
                                             |     if (r5 == r0) {
    0x000248ca beq.w 0x249f2                 |         goto label_5;
                                             |     }
    0x000248ce mov r0, r5                    |     r0 = r5;
    0x000248d0 blx 0xe364                    |     fcn_0000e364 ();
    0x000248d4 ldr r2, [pc, 0x17c]           |     
    0x000248d6 mov r3, r0                    |     r3 = r0;
    0x000248d8 movs r1, 8                    |     r1 = 8;
    0x000248da movs r0, 0                    |     r0 = 0;
    0x000248dc add r2, pc                    |     r2 = 0x49334;
    0x000248de blx 0xe318                    |     gst_element_error_printf ()
                                             |     do {
                                             | label_0:
    0x000248e2 movs r0, 0                    |         r0 = 0;
                                             | label_2:
    0x000248e4 add sp, 0x10                  |         
    0x000248e6 pop {r4, r5, r6, pc}          |         
    0x000248e8 blx 0xe8e4                    |         r0 = fcn_0000e8e4 ();
    0x000248ec mov r4, r0                    |         r4 = r0;
    0x000248ee mov r0, r6                    |         r0 = r6;
    0x000248f0 blx 0xe8e4                    |         r0 = fcn_0000e8e4 ();
    0x000248f4 subs r0, r4, r0               |         r0 = r4 - r0;
    0x000248f6 clz r0, r0                    |         r0 &= r0;
    0x000248fa lsrs r0, r0, 5                |         r0 >>= 5;
    0x000248fc add sp, 0x10                  |         
    0x000248fe pop {r4, r5, r6, pc}          |         
    0x00024900 blx 0xec9c                    |         r0 = snd_device_name_free_hint ();
    0x00024904 mov r4, r0                    |         r4 = r0;
    0x00024906 mov r0, r6                    |         r0 = r6;
    0x00024908 blx 0xec9c                    |         r0 = snd_device_name_free_hint ();
    0x0002490c subs r0, r4, r0               |         r0 = r4 - r0;
    0x0002490e clz r0, r0                    |         r0 &= r0;
    0x00024912 lsrs r0, r0, 5                |         r0 >>= 5;
    0x00024914 add sp, 0x10                  |         
    0x00024916 pop {r4, r5, r6, pc}          |         
    0x00024918 blx 0xde78                    |         r0 = fcn_0000de78 ();
    0x0002491c mov r4, r0                    |         r4 = r0;
    0x0002491e mov r0, r6                    |         r0 = r6;
    0x00024920 blx 0xde78                    |         r0 = fcn_0000de78 ();
    0x00024924 subs r0, r4, r0               |         r0 = r4 - r0;
    0x00024926 clz r0, r0                    |         r0 &= r0;
    0x0002492a lsrs r0, r0, 5                |         r0 >>= 5;
    0x0002492c add sp, 0x10                  |         
    0x0002492e pop {r4, r5, r6, pc}          |         
    0x00024930 blx 0xf83c                    |         r0 = gst_element_add_pad ();
    0x00024934 mov r4, r0                    |         r4 = r0;
    0x00024936 mov r0, r6                    |         r0 = r6;
    0x00024938 blx 0xf83c                    |         r0 = gst_element_add_pad ();
    0x0002493c subs r0, r4, r0               |         r0 = r4 - r0;
    0x0002493e clz r0, r0                    |         r0 &= r0;
    0x00024942 lsrs r0, r0, 5                |         r0 >>= 5;
    0x00024944 add sp, 0x10                  |         
    0x00024946 pop {r4, r5, r6, pc}          |         
    0x00024948 blx 0xf084                    |         r0 = fcn_0000f084 ();
    0x0002494c mov r5, r0                    |         r5 = r0;
    0x0002494e mov r4, r1                    |         r4 = r1;
    0x00024950 mov r0, r6                    |         r0 = r6;
    0x00024952 blx 0xf084                    |         fcn_0000f084 ();
    0x00024956 cmp r4, r1                    |         
    0x00024958 it eq                         |         
                                             |         if (r4 == r1) {
    0x0002495a cmpeq r5, r0                  |             __asm ("cmpeq r5, r0");
                                             |         }
    0x0002495c ite eq                        |         
                                             |         if (r4 != r1) {
    0x0002495e moveq r0, 1                   |             r0 = 1;
                                             |         }
                                             |         if (r4 == r1) {
    0x00024960 movne r0, 0                   |             r0 = 0;
                                             |         }
    0x00024962 add sp, 0x10                  |         
    0x00024964 pop {r4, r5, r6, pc}          |         
    0x00024966 blx 0xfb48                    |         r0 = accept (r0, r1, r2);
    0x0002496a mov r5, r0                    |         r5 = r0;
    0x0002496c mov r4, r1                    |         r4 = r1;
    0x0002496e mov r0, r6                    |         r0 = r6;
    0x00024970 blx 0xfb48                    |         accept (r0, r1, r2);
    0x00024974 cmp r4, r1                    |         
    0x00024976 it eq                         |         
                                             |         if (r4 == r1) {
    0x00024978 cmpeq r5, r0                  |             __asm ("cmpeq r5, r0");
                                             |         }
    0x0002497a ite eq                        |         
                                             |         if (r4 != r1) {
    0x0002497c moveq r0, 1                   |             r0 = 1;
                                             |         }
                                             |         if (r4 == r1) {
    0x0002497e movne r0, 0                   |             r0 = 0;
                                             |         }
    0x00024980 add sp, 0x10                  |         
    0x00024982 pop {r4, r5, r6, pc}          |         
    0x00024984 blx 0xe010                    |         fcn_0000e010 ();
    0x00024988 mov r0, r6                    |         r0 = r6;
    0x0002498a vstr d0, [sp]                 |         __asm ("vstr d0, [sp]");
    0x0002498e blx 0xe010                    |         fcn_0000e010 ();
    0x00024992 vstr d0, [sp, 8]              |         __asm ("vstr d0, [sp, 8]");
    0x00024996 mov r0, sp                    |         r0 = sp;
    0x00024998 ldr r2, [sp]                  |         r2 = *(sp);
    0x0002499a ldr r3, [sp, 8]               |         r3 = *(arg_8h);
    0x0002499c cmp r2, r3                    |         
                                             |         if (r2 == r3) {
    0x0002499e beq 0x24a46                   |             goto label_6;
                                             |         }
                                             | label_3:
    0x000249a0 movs r0, 1                    |         r0 = 1;
                                             | label_4:
    0x000249a2 eor r0, r0, 1                 |         r0 ^= 1;
    0x000249a6 add sp, 0x10                  |         
    0x000249a8 pop {r4, r5, r6, pc}          |         
    0x000249aa blx 0xdd6c                    |         r0 = g_hash_table_ref ();
    0x000249ae mov r4, r0                    |         r4 = r0;
    0x000249b0 mov r0, r6                    |         r0 = r6;
    0x000249b2 blx 0xdd6c                    |         r0 = g_hash_table_ref ();
    0x000249b6 mov r1, r0                    |         r1 = r0;
    0x000249b8 mov r0, r4                    |         r0 = r4;
    0x000249ba blx 0x1061c                   |         r0 = fcn_0001061c ();
    0x000249be clz r0, r0                    |         r0 &= r0;
    0x000249c2 lsrs r0, r0, 5                |         r0 >>= 5;
    0x000249c4 add sp, 0x10                  |         
    0x000249c6 pop {r4, r5, r6, pc}          |         
    0x000249c8 blx 0xf024                    |         r0 = fcn_0000f024 ();
    0x000249cc mov r4, r0                    |         r4 = r0;
    0x000249ce mov r0, r6                    |         r0 = r6;
    0x000249d0 blx 0xf024                    |         r0 = fcn_0000f024 ();
    0x000249d4 orrs.w r3, r4, r0             |         r3 = r4 | r0;
                                             |         if (r3 == r4) {
    0x000249d8 beq 0x24a42                   |             goto label_7;
                                             |         }
    0x000249da cmp r0, 0                     |         
    0x000249dc it ne                         |         
                                             |         if (r0 != 0) {
    0x000249de cmpne r4, 0                   |             __asm ("cmpne r4, 0");
                                             |         }
    0x000249e0 beq.w 0x248e2                 |         
                                             |     } while (r0 == 0);
    0x000249e4 mov r1, r0                    |     r1 = r0;
    0x000249e6 mov r0, r4                    |     r0 = r4;
    0x000249e8 add sp, 0x10                  |     
    0x000249ea pop.w {r4, r5, r6, lr}        |     
    0x000249ee b.w 0xf148                    |     void (*0xf148)() ();
                                             | label_5:
    0x000249f2 mov r0, r4                    |     r0 = r4;
    0x000249f4 blx 0x103f8                   |     r0 = fcn_000103f8 ();
    0x000249f8 mov r5, r0                    |     r5 = r0;
    0x000249fa mov r0, r6                    |     r0 = r6;
    0x000249fc blx 0x103f8                   |     r0 = fcn_000103f8 ();
    0x00024a00 orrs.w r3, r5, r0             |     r3 = r5 | r0;
    0x00024a04 mov r4, r0                    |     r4 = r0;
                                             |     if (r3 == r5) {
    0x00024a06 beq 0x24a42                   |         goto label_7;
                                             |     }
    0x00024a08 cmp r0, 0                     |     
    0x00024a0a it ne                         |     
                                             |     if (r0 == 0) {
    0x00024a0c cmpne r5, 0                   |         __asm ("cmpne r5, 0");
                                             |         goto label_8;
                                             |     }
                                             |     if (r0 == 0) {
                                             | label_8:
    0x00024a0e beq.w 0x248e2                 |         goto label_0;
                                             |     }
    0x00024a12 mov r0, r5                    |     r0 = r5;
    0x00024a14 blx 0xf200                    |     g_list_free_full ();
    0x00024a16 invalid                       |     
    0x00024a1a mov r0, r4                    |     r0 = r4;
    0x00024a1c blx 0xf200                    |     g_list_free_full ();
    0x00024a1e invalid                       |     
                                             |     if (r0 != 0) {
    0x00024a22 bne.w 0x248e2                 |         goto label_0;
                                             |     }
    0x00024a26 ldr r0, [r5]                  |     r0 = *(r5);
                                             |     if (r0 == 0) {
    0x00024a28 cbz r0, 0x24a42               |         goto label_7;
                                             |     }
    0x00024a2a subs r4, 4                    |     r4 -= 4;
                                             | label_1:
    0x00024a2c ldr r1, [r4, 4]!              |     r1 = *((r4 += 4));
    0x00024a30 blx 0x1061c                   |     r0 = fcn_0001061c ();
    0x00024a34 cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x00024a36 bne.w 0x248e2                 |         goto label_0;
                                             |     }
    0x00024a3a ldr r0, [r5, 4]!              |     r0 = *((r5 += 4));
    0x00024a3e cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x00024a40 bne 0x24a2c                   |         goto label_1;
                                             |     }
                                             | label_7:
    0x00024a42 movs r0, 1                    |     r0 = 1;
    0x00024a44 b 0x248e4                     |     goto label_2;
                                             | label_6:
    0x00024a46 ldr r2, [r0, 4]               |     r2 = *((r0 + 4));
    0x00024a48 ldr r3, [sp, 0xc]             |     r3 = *(arg_ch);
    0x00024a4a cmp r2, r3                    |     
    0x00024a4c it eq                         |     
                                             |     if (r2 == r3) {
    0x00024a4e moveq r0, 0                   |         r0 = 0;
                                             |         goto label_9;
                                             |     }
                                             |     if (r2 != r3) {
                                             | label_9:
    0x00024a50 bne 0x249a0                   |         goto label_3;
                                             |     }
    0x00024a52 b 0x249a2                     |     goto label_4;
                                             | }
    ; assembly                                                                                                                                                                   | /* r2dec pseudo code output */
                                                                                                                                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x26e28 */
                                                                                                                                                                                 | #include <stdint.h>
                                                                                                                                                                                 |  
    ; (fcn) fcn.00026e28 ()                                                                                                                                                      | void fcn_00026e28 (int16_t arg_0h, int16_t arg_8h, int16_t arg_ch, int16_t arg1, int16_t arg2) {
                                                                                                                                                                                 |     r0 = arg1;
                                                                                                                                                                                 |     r1 = arg2;
    0x00026e28 push {r4, r5, r6, lr}                                                                                                                                             |     
    0x00026e2a mov r4, r0                                                                                                                                                        |     r4 = r0;
    0x00026e2c ldr r5, [r0]                                                                                                                                                      |     r5 = *(r0);
    0x00026e2e sub sp, 0x10                                                                                                                                                      |     
    0x00026e30 mov r6, r1                                                                                                                                                        |     r6 = r1;
    0x00026e32 sub.w r3, r5, 0x10                                                                                                                                                |     r3 = r5 - 0x10;
    0x00026e36 cmp r3, 0x44                                                                                                                                                      |     
                                                                                                                                                                                 |     if (r3 <= 0x44) {
    0x00026e38 bhi 0x26e84                                                                                                                                                       |         
                                                                                                                                                                                 |         /* switch table (69 cases) at 0x26e3e */
    0x00026e3a tbb [pc, r3]                                                                                                                                                      |         __asm ("tbb aav.0x000000ff");
                                                                                                                                                                                 |     }
    0x00026e84 blx 0xfa38                                                                                                                                                        |     r0 = fcn_0000fa38 ();
    0x00026e88 cmp r5, r0                                                                                                                                                        |     
                                                                                                                                                                                 |     if (r5 == r0) {
    0x00026e8a beq.w 0x26fb2                                                                                                                                                     |         goto label_5;
                                                                                                                                                                                 |     }
    0x00026e8e mov r0, r5                                                                                                                                                        |     r0 = r5;
    0x00026e90 blx 0xe364                                                                                                                                                        |     fcn_0000e364 ();
    0x00026e94 ldr r2, [pc, 0x17c]                                                                                                                                               |     
    0x00026e96 mov r3, r0                                                                                                                                                        |     r3 = r0;
    0x00026e98 movs r1, 8                                                                                                                                                        |     r1 = 8;
    0x00026e9a movs r0, 0                                                                                                                                                        |     r0 = 0;
    0x00026e9c add r2, pc                                                                                                                                                        |     r2 = 0x4deb4;
    0x00026e9e blx 0xe318                                                                                                                                                        |     gst_element_error_printf ()
                                                                                                                                                                                 |     do {
                                                                                                                                                                                 | label_0:
    0x00026ea2 movs r0, 0                                                                                                                                                        |         r0 = 0;
                                                                                                                                                                                 | label_2:
    0x00026ea4 add sp, 0x10                                                                                                                                                      |         
    0x00026ea6 pop {r4, r5, r6, pc}                                                                                                                                              |         
    0x00026ea8 blx 0xe8e4                                                                                                                                                        |         r0 = fcn_0000e8e4 ();
    0x00026eac mov r4, r0                                                                                                                                                        |         r4 = r0;
    0x00026eae mov r0, r6                                                                                                                                                        |         r0 = r6;
    0x00026eb0 blx 0xe8e4                                                                                                                                                        |         r0 = fcn_0000e8e4 ();
    0x00026eb4 subs r0, r4, r0                                                                                                                                                   |         r0 = r4 - r0;
    0x00026eb6 clz r0, r0                                                                                                                                                        |         r0 &= r0;
    0x00026eba lsrs r0, r0, 5                                                                                                                                                    |         r0 >>= 5;
    0x00026ebc add sp, 0x10                                                                                                                                                      |         
    0x00026ebe pop {r4, r5, r6, pc}                                                                                                                                              |         
    0x00026ec0 blx 0xec9c                                                                                                                                                        |         r0 = snd_device_name_free_hint ();
    0x00026ec4 mov r4, r0                                                                                                                                                        |         r4 = r0;
    0x00026ec6 mov r0, r6                                                                                                                                                        |         r0 = r6;
    0x00026ec8 blx 0xec9c                                                                                                                                                        |         r0 = snd_device_name_free_hint ();
    0x00026ecc subs r0, r4, r0                                                                                                                                                   |         r0 = r4 - r0;
    0x00026ece clz r0, r0                                                                                                                                                        |         r0 &= r0;
    0x00026ed2 lsrs r0, r0, 5                                                                                                                                                    |         r0 >>= 5;
    0x00026ed4 add sp, 0x10                                                                                                                                                      |         
    0x00026ed6 pop {r4, r5, r6, pc}                                                                                                                                              |         
    0x00026ed8 blx 0xde78                                                                                                                                                        |         r0 = fcn_0000de78 ();
    0x00026edc mov r4, r0                                                                                                                                                        |         r4 = r0;
    0x00026ede mov r0, r6                                                                                                                                                        |         r0 = r6;
    0x00026ee0 blx 0xde78                                                                                                                                                        |         r0 = fcn_0000de78 ();
    0x00026ee4 subs r0, r4, r0                                                                                                                                                   |         r0 = r4 - r0;
    0x00026ee6 clz r0, r0                                                                                                                                                        |         r0 &= r0;
    0x00026eea lsrs r0, r0, 5                                                                                                                                                    |         r0 >>= 5;
    0x00026eec add sp, 0x10                                                                                                                                                      |         
    0x00026eee pop {r4, r5, r6, pc}                                                                                                                                              |         
    0x00026ef0 blx 0xf83c                                                                                                                                                        |         r0 = gst_element_add_pad ();
    0x00026ef4 mov r4, r0                                                                                                                                                        |         r4 = r0;
    0x00026ef6 mov r0, r6                                                                                                                                                        |         r0 = r6;
    0x00026ef8 blx 0xf83c                                                                                                                                                        |         gst_element_add_pad ();
    0x00026efa vstmia r0!, {s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18, s19, s20, s21, s22, s23, s24, s25, s26, s27, s28, s29, s30, s31}        |         __asm ("vstmia r0!, {s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18, s19, s20, s21, s22, s23, s24, s25, s26, s27, s28, s29, s30, s31}");
    0x00026efe clz r0, r0                                                                                                                                                        |         r0 &= r0;
    0x00026f00 eor sb, r0, 0x40                                                                                                                                                  |         sb = r0 ^ 0x40;
    0x00026f04 add sp, 0x10                                                                                                                                                      |         
    0x00026f06 pop {r4, r5, r6, pc}                                                                                                                                              |         
    0x00026f08 blx 0xf084                                                                                                                                                        |         r0 = fcn_0000f084 ();
    0x00026f0c mov r5, r0                                                                                                                                                        |         r5 = r0;
    0x00026f0e mov r4, r1                                                                                                                                                        |         r4 = r1;
    0x00026f10 mov r0, r6                                                                                                                                                        |         r0 = r6;
    0x00026f12 blx 0xf084                                                                                                                                                        |         fcn_0000f084 ();
    0x00026f16 cmp r4, r1                                                                                                                                                        |         
    0x00026f18 it eq                                                                                                                                                             |         
                                                                                                                                                                                 |         if (r4 == r1) {
    0x00026f1a cmpeq r5, r0                                                                                                                                                      |             __asm ("cmpeq r5, r0");
                                                                                                                                                                                 |         }
    0x00026f1c ite eq                                                                                                                                                            |         
                                                                                                                                                                                 |         if (r4 != r1) {
    0x00026f1e moveq r0, 1                                                                                                                                                       |             r0 = 1;
                                                                                                                                                                                 |         }
                                                                                                                                                                                 |         if (r4 == r1) {
    0x00026f20 movne r0, 0                                                                                                                                                       |             r0 = 0;
                                                                                                                                                                                 |         }
    0x00026f22 add sp, 0x10                                                                                                                                                      |         
    0x00026f24 pop {r4, r5, r6, pc}                                                                                                                                              |         
    0x00026f26 blx 0xfb48                                                                                                                                                        |         r0 = accept (r0, r1, r2);
    0x00026f2a mov r5, r0                                                                                                                                                        |         r5 = r0;
    0x00026f2c mov r4, r1                                                                                                                                                        |         r4 = r1;
    0x00026f2e mov r0, r6                                                                                                                                                        |         r0 = r6;
    0x00026f30 blx 0xfb48                                                                                                                                                        |         accept (r0, r1, r2);
    0x00026f34 cmp r4, r1                                                                                                                                                        |         
    0x00026f36 it eq                                                                                                                                                             |         
                                                                                                                                                                                 |         if (r4 == r1) {
    0x00026f38 cmpeq r5, r0                                                                                                                                                      |             __asm ("cmpeq r5, r0");
                                                                                                                                                                                 |         }
    0x00026f3a ite eq                                                                                                                                                            |         
                                                                                                                                                                                 |         if (r4 != r1) {
    0x00026f3c moveq r0, 1                                                                                                                                                       |             r0 = 1;
                                                                                                                                                                                 |         }
                                                                                                                                                                                 |         if (r4 == r1) {
    0x00026f3e movne r0, 0                                                                                                                                                       |             r0 = 0;
                                                                                                                                                                                 |         }
    0x00026f40 add sp, 0x10                                                                                                                                                      |         
    0x00026f42 pop {r4, r5, r6, pc}                                                                                                                                              |         
    0x00026f44 blx 0xe010                                                                                                                                                        |         fcn_0000e010 ();
    0x00026f48 mov r0, r6                                                                                                                                                        |         r0 = r6;
    0x00026f4a vstr d0, [sp]                                                                                                                                                     |         __asm ("vstr d0, [sp]");
    0x00026f4e blx 0xe010                                                                                                                                                        |         fcn_0000e010 ();
    0x00026f52 vstr d0, [sp, 8]                                                                                                                                                  |         __asm ("vstr d0, [sp, 8]");
    0x00026f56 mov r0, sp                                                                                                                                                        |         r0 = sp;
    0x00026f58 ldr r2, [sp]                                                                                                                                                      |         r2 = *(sp);
    0x00026f5a ldr r3, [sp, 8]                                                                                                                                                   |         r3 = *(arg_8h);
    0x00026f5c cmp r2, r3                                                                                                                                                        |         
                                                                                                                                                                                 |         if (r2 == r3) {
    0x00026f5e beq 0x27006                                                                                                                                                       |             goto label_6;
                                                                                                                                                                                 |         }
                                                                                                                                                                                 | label_3:
    0x00026f60 movs r0, 1                                                                                                                                                        |         r0 = 1;
                                                                                                                                                                                 | label_4:
    0x00026f62 eor r0, r0, 1                                                                                                                                                     |         r0 ^= 1;
    0x00026f66 add sp, 0x10                                                                                                                                                      |         
    0x00026f68 pop {r4, r5, r6, pc}                                                                                                                                              |         
    0x00026f6a blx 0xdd6c                                                                                                                                                        |         r0 = g_hash_table_ref ();
    0x00026f6e mov r4, r0                                                                                                                                                        |         r4 = r0;
    0x00026f70 mov r0, r6                                                                                                                                                        |         r0 = r6;
    0x00026f72 blx 0xdd6c                                                                                                                                                        |         r0 = g_hash_table_ref ();
    0x00026f76 mov r1, r0                                                                                                                                                        |         r1 = r0;
    0x00026f78 mov r0, r4                                                                                                                                                        |         r0 = r4;
    0x00026f7a blx 0x1061c                                                                                                                                                       |         r0 = fcn_0001061c ();
    0x00026f7e clz r0, r0                                                                                                                                                        |         r0 &= r0;
    0x00026f82 lsrs r0, r0, 5                                                                                                                                                    |         r0 >>= 5;
    0x00026f84 add sp, 0x10                                                                                                                                                      |         
    0x00026f86 pop {r4, r5, r6, pc}                                                                                                                                              |         
    0x00026f88 blx 0xf024                                                                                                                                                        |         r0 = fcn_0000f024 ();
    0x00026f8c mov r4, r0                                                                                                                                                        |         r4 = r0;
    0x00026f8e mov r0, r6                                                                                                                                                        |         r0 = r6;
    0x00026f90 blx 0xf024                                                                                                                                                        |         r0 = fcn_0000f024 ();
    0x00026f94 orrs.w r3, r4, r0                                                                                                                                                 |         r3 = r4 | r0;
                                                                                                                                                                                 |         if (r3 == r4) {
    0x00026f98 beq 0x27002                                                                                                                                                       |             goto label_7;
                                                                                                                                                                                 |         }
    0x00026f9a cmp r0, 0                                                                                                                                                         |         
    0x00026f9c it ne                                                                                                                                                             |         
                                                                                                                                                                                 |         if (r0 != 0) {
    0x00026f9e cmpne r4, 0                                                                                                                                                       |             __asm ("cmpne r4, 0");
                                                                                                                                                                                 |         }
    0x00026fa0 beq.w 0x26ea2                                                                                                                                                     |         
                                                                                                                                                                                 |     } while (r0 == 0);
    0x00026fa4 mov r1, r0                                                                                                                                                        |     r1 = r0;
    0x00026fa6 mov r0, r4                                                                                                                                                        |     r0 = r4;
    0x00026fa8 add sp, 0x10                                                                                                                                                      |     
    0x00026faa pop.w {r4, r5, r6, lr}                                                                                                                                            |     
    0x00026fae b.w 0xf148                                                                                                                                                        |     void (*0xf148)() ();
                                                                                                                                                                                 | label_5:
    0x00026fb2 mov r0, r4                                                                                                                                                        |     r0 = r4;
    0x00026fb4 blx 0x103f8                                                                                                                                                       |     r0 = fcn_000103f8 ();
    0x00026fb8 mov r5, r0                                                                                                                                                        |     r5 = r0;
    0x00026fba mov r0, r6                                                                                                                                                        |     r0 = r6;
    0x00026fbc blx 0x103f8                                                                                                                                                       |     r0 = fcn_000103f8 ();
    0x00026fc0 orrs.w r3, r5, r0                                                                                                                                                 |     r3 = r5 | r0;
    0x00026fc4 mov r4, r0                                                                                                                                                        |     r4 = r0;
                                                                                                                                                                                 |     if (r3 == r5) {
    0x00026fc6 beq 0x27002                                                                                                                                                       |         goto label_7;
                                                                                                                                                                                 |     }
    0x00026fc8 cmp r0, 0                                                                                                                                                         |     
    0x00026fca it ne                                                                                                                                                             |     
                                                                                                                                                                                 |     if (r0 == 0) {
    0x00026fcc cmpne r5, 0                                                                                                                                                       |         __asm ("cmpne r5, 0");
                                                                                                                                                                                 |         goto label_8;
                                                                                                                                                                                 |     }
                                                                                                                                                                                 |     if (r0 == 0) {
                                                                                                                                                                                 | label_8:
    0x00026fce beq.w 0x26ea2                                                                                                                                                     |         goto label_0;
                                                                                                                                                                                 |     }
    0x00026fd2 mov r0, r5                                                                                                                                                        |     r0 = r5;
    0x00026fd4 blx 0xf200                                                                                                                                                        |     r0 = g_list_free_full ();
    0x00026fd8 mov r6, r0                                                                                                                                                        |     r6 = r0;
    0x00026fda mov r0, r4                                                                                                                                                        |     r0 = r4;
    0x00026fdc blx 0xf200                                                                                                                                                        |     r0 = g_list_free_full ();
    0x00026fe0 cmp r6, r0                                                                                                                                                        |     
                                                                                                                                                                                 |     if (r6 != r0) {
    0x00026fe2 bne.w 0x26ea2                                                                                                                                                     |         goto label_0;
                                                                                                                                                                                 |     }
    0x00026fe6 ldr r0, [r5]                                                                                                                                                      |     r0 = *(r5);
                                                                                                                                                                                 |     if (r0 == 0) {
    0x00026fe8 cbz r0, 0x27002                                                                                                                                                   |         goto label_7;
                                                                                                                                                                                 |     }
    0x00026fea subs r4, 4                                                                                                                                                        |     r4 -= 4;
                                                                                                                                                                                 | label_1:
    0x00026fec ldr r1, [r4, 4]!                                                                                                                                                  |     r1 = *((r4 += 4));
    0x00026ff0 blx 0x1061c                                                                                                                                                       |     r0 = fcn_0001061c ();
    0x00026ff4 cmp r0, 0                                                                                                                                                         |     
                                                                                                                                                                                 |     if (r0 != 0) {
    0x00026ff6 bne.w 0x26ea2                                                                                                                                                     |         goto label_0;
                                                                                                                                                                                 |     }
    0x00026ffa ldr r0, [r5, 4]!                                                                                                                                                  |     r0 = *((r5 += 4));
    0x00026ffe cmp r0, 0                                                                                                                                                         |     
                                                                                                                                                                                 |     if (r0 != 0) {
    0x00027000 bne 0x26fec                                                                                                                                                       |         goto label_1;
                                                                                                                                                                                 |     }
                                                                                                                                                                                 | label_7:
    0x00027002 movs r0, 1                                                                                                                                                        |     r0 = 1;
    0x00027004 b 0x26ea4                                                                                                                                                         |     goto label_2;
                                                                                                                                                                                 | label_6:
    0x00027006 ldr r2, [r0, 4]                                                                                                                                                   |     r2 = *((r0 + 4));
    0x00027008 ldr r3, [sp, 0xc]                                                                                                                                                 |     r3 = *(arg_ch);
    0x0002700a cmp r2, r3                                                                                                                                                        |     
    0x0002700c it eq                                                                                                                                                             |     
                                                                                                                                                                                 |     if (r2 == r3) {
    0x0002700e moveq r0, 0                                                                                                                                                       |         r0 = 0;
                                                                                                                                                                                 |         goto label_9;
                                                                                                                                                                                 |     }
                                                                                                                                                                                 |     if (r2 != r3) {
                                                                                                                                                                                 | label_9:
    0x00027010 bne 0x26f60                                                                                                                                                       |         goto label_3;
                                                                                                                                                                                 |     }
    0x00027012 b 0x26f62                                                                                                                                                         |     goto label_4;
                                                                                                                                                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x287f4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000287f4 ()                  | void fcn_000287f4 (int16_t arg_0h, int16_t arg_8h, int16_t arg_ch, int16_t arg1, int16_t arg2) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x000287f4 push {r4, r5, r6, lr}         |     
    0x000287f6 mov r4, r0                    |     r4 = r0;
    0x000287f8 ldr r5, [r0]                  |     r5 = *(r0);
    0x000287fa sub sp, 0x10                  |     
    0x000287fc mov r6, r1                    |     r6 = r1;
    0x000287fe sub.w r3, r5, 0x10            |     r3 = r5 - 0x10;
    0x00028802 cmp r3, 0x44                  |     
                                             |     if (r3 <= 0x44) {
    0x00028804 bhi 0x28850                   |         
                                             |         /* switch table (69 cases) at 0x2880a */
    0x00028806 tbb [pc, r3]                  |         __asm ("tbb aav.0x000000ff");
                                             |     }
    0x00028850 blx 0xfa38                    |     r0 = fcn_0000fa38 ();
    0x00028854 cmp r5, r0                    |     
                                             |     if (r5 == r0) {
    0x00028856 beq.w 0x2897e                 |         goto label_5;
                                             |     }
    0x0002885a mov r0, r5                    |     r0 = r5;
    0x0002885c blx 0xe364                    |     fcn_0000e364 ();
    0x0002885e vstr s8, [r2, 0x17c]          |     __asm ("vstr s8, aav.0x000000ff");
    0x00028862 mov r3, r0                    |     r3 = r0;
    0x00028864 movs r1, 8                    |     r1 = 8;
    0x00028866 movs r0, 0                    |     r0 = 0;
    0x00028868 add r2, pc                    |     r2 += pc;
    0x0002886a blx 0xe318                    |     gst_element_error_printf ()
                                             |     do {
                                             | label_0:
    0x0002886e movs r0, 0                    |         r0 = 0;
                                             | label_2:
    0x00028870 add sp, 0x10                  |         
    0x00028872 pop {r4, r5, r6, pc}          |         
    0x00028874 blx 0xe8e4                    |         r0 = fcn_0000e8e4 ();
    0x00028878 mov r4, r0                    |         r4 = r0;
    0x0002887a mov r0, r6                    |         r0 = r6;
    0x0002887c blx 0xe8e4                    |         r0 = fcn_0000e8e4 ();
    0x00028880 subs r0, r4, r0               |         r0 = r4 - r0;
    0x00028882 clz r0, r0                    |         r0 &= r0;
    0x00028886 lsrs r0, r0, 5                |         r0 >>= 5;
    0x00028888 add sp, 0x10                  |         
    0x0002888a pop {r4, r5, r6, pc}          |         
    0x0002888c blx 0xec9c                    |         r0 = snd_device_name_free_hint ();
    0x00028890 mov r4, r0                    |         r4 = r0;
    0x00028892 mov r0, r6                    |         r0 = r6;
    0x00028894 blx 0xec9c                    |         r0 = snd_device_name_free_hint ();
    0x00028898 subs r0, r4, r0               |         r0 = r4 - r0;
    0x0002889a clz r0, r0                    |         r0 &= r0;
    0x0002889e lsrs r0, r0, 5                |         r0 >>= 5;
    0x000288a0 add sp, 0x10                  |         
    0x000288a2 pop {r4, r5, r6, pc}          |         
    0x000288a4 blx 0xde78                    |         r0 = fcn_0000de78 ();
    0x000288a8 mov r4, r0                    |         r4 = r0;
    0x000288aa mov r0, r6                    |         r0 = r6;
    0x000288ac blx 0xde78                    |         r0 = fcn_0000de78 ();
    0x000288b0 subs r0, r4, r0               |         r0 = r4 - r0;
    0x000288b2 clz r0, r0                    |         r0 &= r0;
    0x000288b6 lsrs r0, r0, 5                |         r0 >>= 5;
    0x000288b8 add sp, 0x10                  |         
    0x000288ba pop {r4, r5, r6, pc}          |         
    0x000288bc blx 0xf83c                    |         r0 = gst_element_add_pad ();
    0x000288c0 mov r4, r0                    |         r4 = r0;
    0x000288c2 mov r0, r6                    |         r0 = r6;
    0x000288c4 blx 0xf83c                    |         r0 = gst_element_add_pad ();
    0x000288c8 subs r0, r4, r0               |         r0 = r4 - r0;
    0x000288ca clz r0, r0                    |         r0 &= r0;
    0x000288ce lsrs r0, r0, 5                |         r0 >>= 5;
    0x000288d0 add sp, 0x10                  |         
    0x000288d2 pop {r4, r5, r6, pc}          |         
    0x000288d4 blx 0xf084                    |         r0 = fcn_0000f084 ();
    0x000288d8 mov r5, r0                    |         r5 = r0;
    0x000288da mov r4, r1                    |         r4 = r1;
    0x000288dc mov r0, r6                    |         r0 = r6;
    0x000288de blx 0xf084                    |         fcn_0000f084 ();
    0x000288e2 cmp r4, r1                    |         
    0x000288e4 it eq                         |         
                                             |         if (r4 == r1) {
    0x000288e6 cmpeq r5, r0                  |             __asm ("cmpeq r5, r0");
                                             |         }
    0x000288e8 ite eq                        |         
                                             |         if (r4 != r1) {
    0x000288ea moveq r0, 1                   |             r0 = 1;
                                             |         }
                                             |         if (r4 == r1) {
    0x000288ec movne r0, 0                   |             r0 = 0;
                                             |         }
    0x000288ee add sp, 0x10                  |         
    0x000288f0 pop {r4, r5, r6, pc}          |         
    0x000288f2 blx 0xfb48                    |         r0 = accept (r0, r1, r2);
    0x000288f6 mov r5, r0                    |         r5 = r0;
    0x000288f8 mov r4, r1                    |         r4 = r1;
    0x000288fa mov r0, r6                    |         r0 = r6;
    0x000288fc blx 0xfb48                    |         accept (r0, r1, r2);
    0x00028900 cmp r4, r1                    |         
    0x00028902 it eq                         |         
                                             |         if (r4 == r1) {
    0x00028904 cmpeq r5, r0                  |             __asm ("cmpeq r5, r0");
                                             |         }
    0x00028906 ite eq                        |         
                                             |         if (r4 != r1) {
    0x00028908 moveq r0, 1                   |             r0 = 1;
                                             |         }
                                             |         if (r4 == r1) {
    0x0002890a movne r0, 0                   |             r0 = 0;
                                             |         }
    0x0002890c add sp, 0x10                  |         
    0x0002890e pop {r4, r5, r6, pc}          |         
    0x00028910 blx 0xe010                    |         fcn_0000e010 ();
    0x00028914 mov r0, r6                    |         r0 = r6;
    0x00028916 vstr d0, [sp]                 |         __asm ("vstr d0, [sp]");
    0x0002891a blx 0xe010                    |         fcn_0000e010 ();
    0x0002891e vstr d0, [sp, 8]              |         __asm ("vstr d0, [sp, 8]");
    0x00028922 mov r0, sp                    |         r0 = sp;
    0x00028924 ldr r2, [sp]                  |         r2 = *(sp);
    0x00028926 ldr r3, [sp, 8]               |         r3 = *(arg_8h);
    0x00028928 cmp r2, r3                    |         
                                             |         if (r2 == r3) {
    0x0002892a beq 0x289d2                   |             goto label_6;
                                             |         }
                                             | label_3:
    0x0002892c movs r0, 1                    |         r0 = 1;
                                             | label_4:
    0x0002892e eor r0, r0, 1                 |         r0 ^= 1;
    0x00028932 add sp, 0x10                  |         
    0x00028934 pop {r4, r5, r6, pc}          |         
    0x00028936 blx 0xdd6c                    |         r0 = g_hash_table_ref ();
    0x0002893a mov r4, r0                    |         r4 = r0;
    0x0002893c mov r0, r6                    |         r0 = r6;
    0x0002893e blx 0xdd6c                    |         r0 = g_hash_table_ref ();
    0x00028942 mov r1, r0                    |         r1 = r0;
    0x00028944 mov r0, r4                    |         r0 = r4;
    0x00028946 blx 0x1061c                   |         r0 = fcn_0001061c ();
    0x0002894a clz r0, r0                    |         r0 &= r0;
    0x0002894e lsrs r0, r0, 5                |         r0 >>= 5;
    0x00028950 add sp, 0x10                  |         
    0x00028952 pop {r4, r5, r6, pc}          |         
    0x00028954 blx 0xf024                    |         r0 = fcn_0000f024 ();
    0x00028958 mov r4, r0                    |         r4 = r0;
    0x0002895a mov r0, r6                    |         r0 = r6;
    0x0002895c blx 0xf024                    |         r0 = fcn_0000f024 ();
    0x00028960 orrs.w r3, r4, r0             |         r3 = r4 | r0;
                                             |         if (r3 == r4) {
    0x00028964 beq 0x289ce                   |             goto label_7;
                                             |         }
    0x00028966 cmp r0, 0                     |         
    0x00028968 it ne                         |         
                                             |         if (r0 != 0) {
    0x0002896a cmpne r4, 0                   |             __asm ("cmpne r4, 0");
                                             |         }
    0x0002896c beq.w 0x2886e                 |         
                                             |     } while (r0 == 0);
    0x00028970 mov r1, r0                    |     r1 = r0;
    0x00028972 mov r0, r4                    |     r0 = r4;
    0x00028974 add sp, 0x10                  |     
    0x00028976 pop.w {r4, r5, r6, lr}        |     
    0x00028978 eors r0, r6                   |     r0 ^= r6;
    0x0002897a b.w 0xf148                    |     void (*0xf148)() ();
                                             |     if (r5 != 0) {
    0x0002897c cbnz r5, 0x289f8              |         void (*0x289f8)() ();
                                             |     }
                                             | label_5:
    0x0002897e mov r0, r4                    |     r0 = r4;
    0x00028980 blx 0x103f8                   |     r0 = fcn_000103f8 ();
    0x00028984 mov r5, r0                    |     r5 = r0;
    0x00028986 mov r0, r6                    |     r0 = r6;
    0x00028988 blx 0x103f8                   |     r0 = fcn_000103f8 ();
    0x0002898c orrs.w r3, r5, r0             |     r3 = r5 | r0;
    0x00028990 mov r4, r0                    |     r4 = r0;
                                             |     if (r3 == r5) {
    0x00028992 beq 0x289ce                   |         goto label_7;
                                             |     }
    0x00028994 cmp r0, 0                     |     
    0x00028996 it ne                         |     
                                             |     if (r0 == 0) {
    0x00028998 cmpne r5, 0                   |         __asm ("cmpne r5, 0");
                                             |         goto label_8;
                                             |     }
                                             |     if (r0 == 0) {
                                             | label_8:
    0x0002899a beq.w 0x2886e                 |         goto label_0;
                                             |     }
    0x0002899e mov r0, r5                    |     r0 = r5;
    0x000289a0 blx 0xf200                    |     r0 = g_list_free_full ();
    0x000289a4 mov r6, r0                    |     r6 = r0;
    0x000289a6 mov r0, r4                    |     r0 = r4;
    0x000289a8 blx 0xf200                    |     r0 = g_list_free_full ();
    0x000289ac cmp r6, r0                    |     
                                             |     if (r6 != r0) {
    0x000289ae bne.w 0x2886e                 |         goto label_0;
                                             |     }
    0x000289b2 ldr r0, [r5]                  |     r0 = *(r5);
                                             |     if (r0 == 0) {
    0x000289b4 cbz r0, 0x289ce               |         goto label_7;
                                             |     }
    0x000289b6 subs r4, 4                    |     r4 -= 4;
                                             | label_1:
    0x000289b8 ldr r1, [r4, 4]!              |     r1 = *((r4 += 4));
    0x000289bc blx 0x1061c                   |     r0 = fcn_0001061c ();
    0x000289c0 cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x000289c2 bne.w 0x2886e                 |         goto label_0;
                                             |     }
    0x000289c6 ldr r0, [r5, 4]!              |     r0 = *((r5 += 4));
    0x000289ca cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x000289cc bne 0x289b8                   |         goto label_1;
                                             |     }
                                             | label_7:
    0x000289ce movs r0, 1                    |     r0 = 1;
    0x000289d0 b 0x28870                     |     goto label_2;
                                             | label_6:
    0x000289d2 ldr r2, [r0, 4]               |     r2 = *((r0 + 4));
    0x000289d4 ldr r3, [sp, 0xc]             |     r3 = *(arg_ch);
    0x000289d6 cmp r2, r3                    |     
    0x000289d8 it eq                         |     
                                             |     if (r2 == r3) {
    0x000289da moveq r0, 0                   |         r0 = 0;
                                             |         goto label_9;
                                             |     }
                                             |     if (r2 != r3) {
                                             | label_9:
    0x000289dc bne 0x2892c                   |         goto label_3;
                                             |     }
    0x000289de b 0x2892e                     |     goto label_4;
                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x29fc8 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00029fc8 ()                      | void fcn_00029fc8 (int16_t arg_0h, int16_t arg_8h, int16_t arg_ch, int16_t arg1, int16_t arg2) {
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00029fc8 push {r4, r5, r6, lr}             |     
    0x00029fca mov r4, r0                        |     r4 = r0;
    0x00029fcc ldr r5, [r0]                      |     r5 = *(r0);
    0x00029fce sub sp, 0x10                      |     
    0x00029fd0 mov r6, r1                        |     r6 = r1;
    0x00029fd2 sub.w r3, r5, 0x10                |     r3 = r5 - 0x10;
    0x00029fd6 cmp r3, 0x44                      |     
                                                 |     if (r3 <= 0x44) {
    0x00029fd8 bhi 0x2a024                       |         
                                                 |         /* switch table (69 cases) at 0x29fde */
    0x00029fda tbb [pc, r3]                      |         __asm ("tbb aav.0x000000ff");
                                                 |     }
    0x0002a024 blx 0xfa38                        |     r0 = fcn_0000fa38 ();
    0x0002a028 cmp r5, r0                        |     
                                                 |     if (r5 == r0) {
    0x0002a02a beq.w 0x2a152                     |         goto label_5;
                                                 |     }
    0x0002a02e mov r0, r5                        |     r0 = r5;
    0x0002a030 blx 0xe364                        |     fcn_0000e364 ();
    0x0002a032 invalid                           |     
    0x0002a036 mov r3, r0                        |     r3 = r0;
    0x0002a038 movs r1, 8                        |     r1 = 8;
    0x0002a03a movs r0, 0                        |     r0 = 0;
    0x0002a03c add r2, pc                        |     r2 += pc;
    0x0002a03e blx 0xe318                        |     gst_element_error_printf ()
                                                 |     do {
                                                 | label_0:
    0x0002a042 movs r0, 0                        |         r0 = 0;
                                                 | label_2:
    0x0002a044 add sp, 0x10                      |         
    0x0002a046 pop {r4, r5, r6, pc}              |         
    0x0002a048 blx 0xe8e4                        |         r0 = fcn_0000e8e4 ();
    0x0002a04c mov r4, r0                        |         r4 = r0;
    0x0002a04e mov r0, r6                        |         r0 = r6;
    0x0002a050 blx 0xe8e4                        |         r0 = fcn_0000e8e4 ();
    0x0002a054 subs r0, r4, r0                   |         r0 = r4 - r0;
    0x0002a056 clz r0, r0                        |         r0 &= r0;
    0x0002a05a lsrs r0, r0, 5                    |         r0 >>= 5;
    0x0002a05c add sp, 0x10                      |         
    0x0002a05e pop {r4, r5, r6, pc}              |         
    0x0002a060 blx 0xec9c                        |         r0 = snd_device_name_free_hint ();
    0x0002a064 mov r4, r0                        |         r4 = r0;
    0x0002a066 mov r0, r6                        |         r0 = r6;
    0x0002a068 blx 0xec9c                        |         r0 = snd_device_name_free_hint ();
    0x0002a06c subs r0, r4, r0                   |         r0 = r4 - r0;
    0x0002a06e clz r0, r0                        |         r0 &= r0;
    0x0002a072 lsrs r0, r0, 5                    |         r0 >>= 5;
    0x0002a074 add sp, 0x10                      |         
    0x0002a076 pop {r4, r5, r6, pc}              |         
    0x0002a078 blx 0xde78                        |         r0 = fcn_0000de78 ();
    0x0002a07c mov r4, r0                        |         r4 = r0;
    0x0002a07e mov r0, r6                        |         r0 = r6;
    0x0002a080 blx 0xde78                        |         fcn_0000de78 ();
    0x0002a082 invalid                           |         
    0x0002a086 clz r0, r0                        |         r0 &= r0;
    0x0002a08a lsrs r0, r0, 5                    |         r0 >>= 5;
    0x0002a08c add sp, 0x10                      |         
    0x0002a08e pop {r4, r5, r6, pc}              |         
    0x0002a090 blx 0xf83c                        |         r0 = gst_element_add_pad ();
    0x0002a094 mov r4, r0                        |         r4 = r0;
    0x0002a096 mov r0, r6                        |         r0 = r6;
    0x0002a098 blx 0xf83c                        |         r0 = gst_element_add_pad ();
    0x0002a09c subs r0, r4, r0                   |         r0 = r4 - r0;
    0x0002a09e clz r0, r0                        |         r0 &= r0;
    0x0002a0a2 lsrs r0, r0, 5                    |         r0 >>= 5;
    0x0002a0a4 add sp, 0x10                      |         
    0x0002a0a6 pop {r4, r5, r6, pc}              |         
    0x0002a0a8 blx 0xf084                        |         r0 = fcn_0000f084 ();
    0x0002a0ac mov r5, r0                        |         r5 = r0;
    0x0002a0ae mov r4, r1                        |         r4 = r1;
    0x0002a0b0 mov r0, r6                        |         r0 = r6;
    0x0002a0b2 blx 0xf084                        |         fcn_0000f084 ();
    0x0002a0b6 cmp r4, r1                        |         
    0x0002a0b8 it eq                             |         
                                                 |         if (r4 == r1) {
    0x0002a0ba cmpeq r5, r0                      |             __asm ("cmpeq r5, r0");
                                                 |         }
    0x0002a0bc ite eq                            |         
                                                 |         if (r4 != r1) {
    0x0002a0be moveq r0, 1                       |             r0 = 1;
                                                 |         }
                                                 |         if (r4 == r1) {
    0x0002a0c0 movne r0, 0                       |             r0 = 0;
                                                 |         }
    0x0002a0c2 add sp, 0x10                      |         
    0x0002a0c4 pop {r4, r5, r6, pc}              |         
    0x0002a0c6 blx 0xfb48                        |         r0 = accept (r0, r1, r2);
    0x0002a0ca mov r5, r0                        |         r5 = r0;
    0x0002a0cc mov r4, r1                        |         r4 = r1;
    0x0002a0ce mov r0, r6                        |         r0 = r6;
    0x0002a0d0 blx 0xfb48                        |         accept (r0, r1, r2);
    0x0002a0d4 cmp r4, r1                        |         
    0x0002a0d6 it eq                             |         
                                                 |         if (r4 == r1) {
    0x0002a0d8 cmpeq r5, r0                      |             __asm ("cmpeq r5, r0");
                                                 |         }
    0x0002a0da ite eq                            |         
                                                 |         if (r4 != r1) {
    0x0002a0dc moveq r0, 1                       |             r0 = 1;
                                                 |         }
                                                 |         if (r4 == r1) {
    0x0002a0de movne r0, 0                       |             r0 = 0;
                                                 |         }
    0x0002a0e0 add sp, 0x10                      |         
    0x0002a0e2 pop {r4, r5, r6, pc}              |         
    0x0002a0e4 blx 0xe010                        |         fcn_0000e010 ();
    0x0002a0e8 mov r0, r6                        |         r0 = r6;
    0x0002a0ea vstr d0, [sp]                     |         __asm ("vstr d0, [sp]");
    0x0002a0ee blx 0xe010                        |         fcn_0000e010 ();
    0x0002a0f2 vstr d0, [sp, 8]                  |         __asm ("vstr d0, [sp, 8]");
    0x0002a0f6 mov r0, sp                        |         r0 = sp;
    0x0002a0f8 ldr r2, [sp]                      |         r2 = *(sp);
    0x0002a0fa ldr r3, [sp, 8]                   |         r3 = *(arg_8h);
    0x0002a0fc cmp r2, r3                        |         
                                                 |         if (r2 == r3) {
    0x0002a0fe beq 0x2a1a6                       |             goto label_6;
                                                 |         }
                                                 | label_3:
    0x0002a100 movs r0, 1                        |         r0 = 1;
                                                 | label_4:
    0x0002a102 eor r0, r0, 1                     |         r0 ^= 1;
    0x0002a106 add sp, 0x10                      |         
    0x0002a108 pop {r4, r5, r6, pc}              |         
    0x0002a10a blx 0xdd6c                        |         r0 = g_hash_table_ref ();
    0x0002a10e mov r4, r0                        |         r4 = r0;
    0x0002a110 mov r0, r6                        |         r0 = r6;
    0x0002a112 blx 0xdd6c                        |         r0 = g_hash_table_ref ();
    0x0002a116 mov r1, r0                        |         r1 = r0;
    0x0002a118 mov r0, r4                        |         r0 = r4;
    0x0002a11a blx 0x1061c                       |         r0 = fcn_0001061c ();
    0x0002a11e clz r0, r0                        |         r0 &= r0;
    0x0002a122 lsrs r0, r0, 5                    |         r0 >>= 5;
    0x0002a124 add sp, 0x10                      |         
    0x0002a126 pop {r4, r5, r6, pc}              |         
    0x0002a128 blx 0xf024                        |         r0 = fcn_0000f024 ();
    0x0002a12c mov r4, r0                        |         r4 = r0;
    0x0002a12e mov r0, r6                        |         r0 = r6;
    0x0002a130 blx 0xf024                        |         r0 = fcn_0000f024 ();
    0x0002a134 orrs.w r3, r4, r0                 |         r3 = r4 | r0;
                                                 |         if (r3 == r4) {
    0x0002a138 beq 0x2a1a2                       |             goto label_7;
                                                 |         }
    0x0002a13a cmp r0, 0                         |         
    0x0002a13c it ne                             |         
                                                 |         if (r0 != 0) {
    0x0002a13e cmpne r4, 0                       |             __asm ("cmpne r4, 0");
                                                 |         }
    0x0002a140 beq.w 0x2a042                     |         
                                                 |     } while (r0 == 0);
    0x0002a144 mov r1, r0                        |     r1 = r0;
    0x0002a146 mov r0, r4                        |     r0 = r4;
    0x0002a148 add sp, 0x10                      |     
    0x0002a14a pop.w {r4, r5, r6, lr}            |     
    0x0002a14e b.w 0xf148                        |     void (*0xf148)() ();
                                                 | label_5:
    0x0002a152 mov r0, r4                        |     r0 = r4;
    0x0002a154 blx 0x103f8                       |     fcn_000103f8 ();
    0x0002a156 ldrd r4, r6, [r0, -0x14]          |     __asm ("ldrd r4, r6, [r0, -0x14]");
    0x0002a15a mov r0, r6                        |     r0 = r6;
    0x0002a15c blx 0x103f8                       |     r0 = fcn_000103f8 ();
    0x0002a160 orrs.w r3, r5, r0                 |     r3 = r5 | r0;
    0x0002a164 mov r4, r0                        |     r4 = r0;
                                                 |     if (r3 == r5) {
    0x0002a166 beq 0x2a1a2                       |         goto label_7;
                                                 |     }
    0x0002a168 cmp r0, 0                         |     
    0x0002a16a it ne                             |     
                                                 |     if (r0 == 0) {
    0x0002a16c cmpne r5, 0                       |         __asm ("cmpne r5, 0");
                                                 |         goto label_8;
                                                 |     }
                                                 |     if (r0 == 0) {
                                                 | label_8:
    0x0002a16e beq.w 0x2a042                     |         goto label_0;
                                                 |     }
    0x0002a172 mov r0, r5                        |     r0 = r5;
    0x0002a174 blx 0xf200                        |     r0 = g_list_free_full ();
    0x0002a178 mov r6, r0                        |     r6 = r0;
    0x0002a17a mov r0, r4                        |     r0 = r4;
    0x0002a17c blx 0xf200                        |     r0 = g_list_free_full ();
    0x0002a180 cmp r6, r0                        |     
                                                 |     if (r6 != r0) {
    0x0002a182 bne.w 0x2a042                     |         goto label_0;
                                                 |     }
    0x0002a186 ldr r0, [r5]                      |     r0 = *(r5);
                                                 |     if (r0 == 0) {
    0x0002a188 cbz r0, 0x2a1a2                   |         goto label_7;
                                                 |     }
    0x0002a18a subs r4, 4                        |     r4 -= 4;
                                                 | label_1:
    0x0002a18c ldr r1, [r4, 4]!                  |     r1 = *((r4 += 4));
    0x0002a190 blx 0x1061c                       |     r0 = fcn_0001061c ();
    0x0002a194 cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x0002a196 bne.w 0x2a042                     |         goto label_0;
                                                 |     }
    0x0002a19a ldr r0, [r5, 4]!                  |     r0 = *((r5 += 4));
    0x0002a19e cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x0002a1a0 bne 0x2a18c                       |         goto label_1;
                                                 |     }
                                                 | label_7:
    0x0002a1a2 movs r0, 1                        |     r0 = 1;
    0x0002a1a4 b 0x2a044                         |     goto label_2;
                                                 | label_6:
    0x0002a1a6 ldr r2, [r0, 4]                   |     r2 = *((r0 + 4));
    0x0002a1a8 ldr r3, [sp, 0xc]                 |     r3 = *(arg_ch);
    0x0002a1aa cmp r2, r3                        |     
    0x0002a1ac it eq                             |     
                                                 |     if (r2 == r3) {
    0x0002a1ae moveq r0, 0                       |         r0 = 0;
                                                 |         goto label_9;
                                                 |     }
                                                 |     if (r2 != r3) {
                                                 | label_9:
    0x0002a1b0 bne 0x2a100                       |         goto label_3;
                                                 |     }
    0x0002a1b2 b 0x2a102                         |     goto label_4;
                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x2dde0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0002dde0 ()                  | void fcn_0002dde0 (int16_t arg_0h, int16_t arg_8h, int16_t arg_ch, int16_t arg1, int16_t arg2) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x0002dde0 push {r4, r5, r6, lr}         |     
    0x0002dde2 mov r4, r0                    |     r4 = r0;
    0x0002dde4 ldr r5, [r0]                  |     r5 = *(r0);
    0x0002dde6 sub sp, 0x10                  |     
    0x0002dde8 mov r6, r1                    |     r6 = r1;
    0x0002ddea sub.w r3, r5, 0x10            |     r3 = r5 - 0x10;
    0x0002ddee cmp r3, 0x44                  |     
                                             |     if (r3 <= 0x44) {
    0x0002ddf0 bhi 0x2de3c                   |         
                                             |         /* switch table (69 cases) at 0x2ddf6 */
    0x0002ddf2 tbb [pc, r3]                  |         __asm ("tbb aav.0x000000ff");
                                             |     }
    0x0002de3c blx 0xfa38                    |     r0 = fcn_0000fa38 ();
    0x0002de40 cmp r5, r0                    |     
                                             |     if (r5 == r0) {
    0x0002de42 beq.w 0x2df6a                 |         goto label_5;
                                             |     }
    0x0002de46 mov r0, r5                    |     r0 = r5;
    0x0002de48 blx 0xe364                    |     fcn_0000e364 ();
    0x0002de4c ldr r2, [pc, 0x17c]           |     
    0x0002de4e mov r3, r0                    |     r3 = r0;
    0x0002de50 movs r1, 8                    |     r1 = 8;
    0x0002de52 movs r0, 0                    |     r0 = 0;
    0x0002de54 add r2, pc                    |     r2 = 0x5be24;
    0x0002de56 blx 0xe318                    |     gst_element_error_printf ()
                                             |     do {
                                             | label_0:
    0x0002de5a movs r0, 0                    |         r0 = 0;
                                             | label_2:
    0x0002de5c add sp, 0x10                  |         
    0x0002de5e pop {r4, r5, r6, pc}          |         
    0x0002de60 blx 0xe8e4                    |         r0 = fcn_0000e8e4 ();
    0x0002de64 mov r4, r0                    |         r4 = r0;
    0x0002de66 mov r0, r6                    |         r0 = r6;
    0x0002de68 blx 0xe8e4                    |         r0 = fcn_0000e8e4 ();
    0x0002de6c subs r0, r4, r0               |         r0 = r4 - r0;
    0x0002de6e clz r0, r0                    |         r0 &= r0;
    0x0002de72 lsrs r0, r0, 5                |         r0 >>= 5;
    0x0002de74 add sp, 0x10                  |         
    0x0002de76 pop {r4, r5, r6, pc}          |         
    0x0002de78 blx 0xec9c                    |         r0 = snd_device_name_free_hint ();
    0x0002de7c mov r4, r0                    |         r4 = r0;
    0x0002de7e mov r0, r6                    |         r0 = r6;
    0x0002de80 blx 0xec9c                    |         r0 = snd_device_name_free_hint ();
    0x0002de84 subs r0, r4, r0               |         r0 = r4 - r0;
    0x0002de86 clz r0, r0                    |         r0 &= r0;
    0x0002de8a lsrs r0, r0, 5                |         r0 >>= 5;
    0x0002de8c add sp, 0x10                  |         
    0x0002de8e pop {r4, r5, r6, pc}          |         
    0x0002de90 blx 0xde78                    |         r0 = fcn_0000de78 ();
    0x0002de94 mov r4, r0                    |         r4 = r0;
    0x0002de96 mov r0, r6                    |         r0 = r6;
    0x0002de98 blx 0xde78                    |         r0 = fcn_0000de78 ();
    0x0002de9c subs r0, r4, r0               |         r0 = r4 - r0;
    0x0002de9e clz r0, r0                    |         r0 &= r0;
    0x0002dea2 lsrs r0, r0, 5                |         r0 >>= 5;
    0x0002dea4 add sp, 0x10                  |         
    0x0002dea6 pop {r4, r5, r6, pc}          |         
    0x0002dea8 blx 0xf83c                    |         r0 = gst_element_add_pad ();
    0x0002deac mov r4, r0                    |         r4 = r0;
    0x0002deae mov r0, r6                    |         r0 = r6;
    0x0002deb0 blx 0xf83c                    |         r0 = gst_element_add_pad ();
    0x0002deb4 subs r0, r4, r0               |         r0 = r4 - r0;
    0x0002deb6 clz r0, r0                    |         r0 &= r0;
    0x0002deba lsrs r0, r0, 5                |         r0 >>= 5;
    0x0002debc add sp, 0x10                  |         
    0x0002debe pop {r4, r5, r6, pc}          |         
    0x0002dec0 blx 0xf084                    |         r0 = fcn_0000f084 ();
    0x0002dec4 mov r5, r0                    |         r5 = r0;
    0x0002dec6 mov r4, r1                    |         r4 = r1;
    0x0002dec8 mov r0, r6                    |         r0 = r6;
    0x0002deca blx 0xf084                    |         fcn_0000f084 ();
    0x0002dece cmp r4, r1                    |         
    0x0002ded0 it eq                         |         
                                             |         if (r4 == r1) {
    0x0002ded2 cmpeq r5, r0                  |             __asm ("cmpeq r5, r0");
                                             |         }
    0x0002ded4 ite eq                        |         
                                             |         if (r4 != r1) {
    0x0002ded6 moveq r0, 1                   |             r0 = 1;
                                             |         }
                                             |         if (r4 == r1) {
    0x0002ded8 movne r0, 0                   |             r0 = 0;
                                             |         }
    0x0002deda add sp, 0x10                  |         
    0x0002dedc pop {r4, r5, r6, pc}          |         
    0x0002dede blx 0xfb48                    |         r0 = accept (r0, r1, r2);
    0x0002dee2 mov r5, r0                    |         r5 = r0;
    0x0002dee4 mov r4, r1                    |         r4 = r1;
    0x0002dee6 mov r0, r6                    |         r0 = r6;
    0x0002dee8 blx 0xfb48                    |         accept (r0, r1, r2);
    0x0002deec cmp r4, r1                    |         
    0x0002deee it eq                         |         
                                             |         if (r4 == r1) {
    0x0002def0 cmpeq r5, r0                  |             __asm ("cmpeq r5, r0");
                                             |         }
    0x0002def2 ite eq                        |         
                                             |         if (r4 != r1) {
    0x0002def4 moveq r0, 1                   |             r0 = 1;
                                             |         }
                                             |         if (r4 == r1) {
    0x0002def6 movne r0, 0                   |             r0 = 0;
                                             |         }
    0x0002def8 add sp, 0x10                  |         
    0x0002defa pop {r4, r5, r6, pc}          |         
    0x0002defc blx 0xe010                    |         fcn_0000e010 ();
    0x0002df00 mov r0, r6                    |         r0 = r6;
    0x0002df02 vstr d0, [sp]                 |         __asm ("vstr d0, [sp]");
    0x0002df06 blx 0xe010                    |         fcn_0000e010 ();
    0x0002df0a vstr d0, [sp, 8]              |         __asm ("vstr d0, [sp, 8]");
    0x0002df0e mov r0, sp                    |         r0 = sp;
    0x0002df10 ldr r2, [sp]                  |         r2 = *(sp);
    0x0002df12 ldr r3, [sp, 8]               |         r3 = *(arg_8h);
    0x0002df14 cmp r2, r3                    |         
                                             |         if (r2 == r3) {
    0x0002df16 beq 0x2dfbe                   |             goto label_6;
                                             |         }
                                             | label_3:
    0x0002df18 movs r0, 1                    |         r0 = 1;
                                             | label_4:
    0x0002df1a eor r0, r0, 1                 |         r0 ^= 1;
    0x0002df1e add sp, 0x10                  |         
    0x0002df20 pop {r4, r5, r6, pc}          |         
    0x0002df22 blx 0xdd6c                    |         r0 = g_hash_table_ref ();
    0x0002df26 mov r4, r0                    |         r4 = r0;
    0x0002df28 mov r0, r6                    |         r0 = r6;
    0x0002df2a blx 0xdd6c                    |         r0 = g_hash_table_ref ();
    0x0002df2e mov r1, r0                    |         r1 = r0;
    0x0002df30 mov r0, r4                    |         r0 = r4;
    0x0002df32 blx 0x1061c                   |         r0 = fcn_0001061c ();
    0x0002df36 clz r0, r0                    |         r0 &= r0;
    0x0002df3a lsrs r0, r0, 5                |         r0 >>= 5;
    0x0002df3c add sp, 0x10                  |         
    0x0002df3e pop {r4, r5, r6, pc}          |         
    0x0002df40 blx 0xf024                    |         r0 = fcn_0000f024 ();
    0x0002df44 mov r4, r0                    |         r4 = r0;
    0x0002df46 mov r0, r6                    |         r0 = r6;
    0x0002df48 blx 0xf024                    |         r0 = fcn_0000f024 ();
    0x0002df4c orrs.w r3, r4, r0             |         r3 = r4 | r0;
                                             |         if (r3 == r4) {
    0x0002df50 beq 0x2dfba                   |             goto label_7;
                                             |         }
    0x0002df52 cmp r0, 0                     |         
    0x0002df54 it ne                         |         
                                             |         if (r0 != 0) {
    0x0002df56 cmpne r4, 0                   |             __asm ("cmpne r4, 0");
                                             |         }
    0x0002df58 beq.w 0x2de5a                 |         
                                             |     } while (r0 == 0);
    0x0002df5c mov r1, r0                    |     r1 = r0;
    0x0002df5e mov r0, r4                    |     r0 = r4;
    0x0002df60 add sp, 0x10                  |     
    0x0002df62 pop.w {r4, r5, r6, lr}        |     
    0x0002df66 b.w 0xf148                    |     void (*0xf148)() ();
                                             | label_5:
    0x0002df6a mov r0, r4                    |     r0 = r4;
    0x0002df6c blx 0x103f8                   |     r0 = fcn_000103f8 ();
    0x0002df70 mov r5, r0                    |     r5 = r0;
    0x0002df72 mov r0, r6                    |     r0 = r6;
    0x0002df74 blx 0x103f8                   |     r0 = fcn_000103f8 ();
    0x0002df78 orrs.w r3, r5, r0             |     r3 = r5 | r0;
    0x0002df7c mov r4, r0                    |     r4 = r0;
                                             |     if (r3 == r5) {
    0x0002df7e beq 0x2dfba                   |         goto label_7;
                                             |     }
    0x0002df80 cmp r0, 0                     |     
    0x0002df82 it ne                         |     
                                             |     if (r0 == 0) {
    0x0002df84 cmpne r5, 0                   |         __asm ("cmpne r5, 0");
                                             |         goto label_8;
                                             |     }
                                             |     if (r0 == 0) {
                                             | label_8:
    0x0002df86 beq.w 0x2de5a                 |         goto label_0;
                                             |     }
    0x0002df8a mov r0, r5                    |     r0 = r5;
    0x0002df8c blx 0xf200                    |     r0 = g_list_free_full ();
    0x0002df90 mov r6, r0                    |     r6 = r0;
    0x0002df92 mov r0, r4                    |     r0 = r4;
    0x0002df94 blx 0xf200                    |     r0 = g_list_free_full ();
    0x0002df98 cmp r6, r0                    |     
                                             |     if (r6 != r0) {
    0x0002df9a bne.w 0x2de5a                 |         goto label_0;
                                             |     }
    0x0002df9e ldr r0, [r5]                  |     r0 = *(r5);
                                             |     if (r0 == 0) {
    0x0002dfa0 cbz r0, 0x2dfba               |         goto label_7;
                                             |     }
    0x0002dfa2 subs r4, 4                    |     r4 -= 4;
                                             | label_1:
    0x0002dfa4 ldr r1, [r4, 4]!              |     r1 = *((r4 += 4));
    0x0002dfa8 blx 0x1061c                   |     fcn_0001061c ();
    0x0002dfaa invalid                       |     
                                             |     if (r4 != 4) {
    0x0002dfae bne.w 0x2de5a                 |         goto label_0;
                                             |     }
    0x0002dfb2 ldr r0, [r5, 4]!              |     r0 = *((r5 += 4));
    0x0002dfb6 cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x0002dfb8 bne 0x2dfa4                   |         goto label_1;
                                             |     }
                                             | label_7:
    0x0002dfba movs r0, 1                    |     r0 = 1;
    0x0002dfbc b 0x2de5c                     |     goto label_2;
                                             | label_6:
    0x0002dfbe ldr r2, [r0, 4]               |     r2 = *((r0 + 4));
    0x0002dfc0 ldr r3, [sp, 0xc]             |     r3 = *(arg_ch);
    0x0002dfc2 cmp r2, r3                    |     
    0x0002dfc4 it eq                         |     
                                             |     if (r2 == r3) {
    0x0002dfc6 moveq r0, 0                   |         r0 = 0;
                                             |         goto label_9;
                                             |     }
                                             |     if (r2 != r3) {
                                             | label_9:
    0x0002dfc8 bne 0x2df18                   |         goto label_3;
                                             |     }
    0x0002dfca b 0x2df1a                     |     goto label_4;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x2f398 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0002f398 ()                  | void fcn_0002f398 (int16_t arg_0h, int16_t arg_8h, int16_t arg_ch, int16_t arg1, int16_t arg2) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x0002f398 push {r4, r5, r6, lr}         |     
    0x0002f39a mov r4, r0                    |     r4 = r0;
    0x0002f39c ldr r5, [r0]                  |     r5 = *(r0);
    0x0002f39e sub sp, 0x10                  |     
    0x0002f3a0 mov r6, r1                    |     r6 = r1;
    0x0002f3a2 sub.w r3, r5, 0x10            |     r3 = r5 - 0x10;
    0x0002f3a6 cmp r3, 0x44                  |     
                                             |     if (r3 <= 0x44) {
    0x0002f3a8 bhi 0x2f3f4                   |         
                                             |         /* switch table (69 cases) at 0x2f3ae */
    0x0002f3aa tbb [pc, r3]                  |         __asm ("tbb aav.0x000000ff");
                                             |     }
    0x0002f3f4 blx 0xfa38                    |     r0 = fcn_0000fa38 ();
    0x0002f3f8 cmp r5, r0                    |     
                                             |     if (r5 == r0) {
    0x0002f3fa beq.w 0x2f522                 |         goto label_5;
                                             |     }
    0x0002f3fe mov r0, r5                    |     r0 = r5;
    0x0002f400 blx 0xe364                    |     fcn_0000e364 ();
    0x0002f404 ldr r2, [pc, 0x17c]           |     
    0x0002f406 mov r3, r0                    |     r3 = r0;
    0x0002f408 movs r1, 8                    |     r1 = 8;
    0x0002f40a movs r0, 0                    |     r0 = 0;
    0x0002f40c add r2, pc                    |     r2 = 0x5e994;
    0x0002f40e blx 0xe318                    |     gst_element_error_printf ()
                                             |     do {
                                             | label_0:
    0x0002f412 movs r0, 0                    |         r0 = 0;
                                             | label_2:
    0x0002f414 add sp, 0x10                  |         
    0x0002f416 pop {r4, r5, r6, pc}          |         
    0x0002f418 blx 0xe8e4                    |         r0 = fcn_0000e8e4 ();
    0x0002f41c mov r4, r0                    |         r4 = r0;
    0x0002f41e mov r0, r6                    |         r0 = r6;
    0x0002f420 blx 0xe8e4                    |         r0 = fcn_0000e8e4 ();
    0x0002f424 subs r0, r4, r0               |         r0 = r4 - r0;
    0x0002f426 clz r0, r0                    |         r0 &= r0;
    0x0002f42a lsrs r0, r0, 5                |         r0 >>= 5;
    0x0002f42c add sp, 0x10                  |         
    0x0002f42e pop {r4, r5, r6, pc}          |         
    0x0002f430 blx 0xec9c                    |         r0 = snd_device_name_free_hint ();
    0x0002f434 mov r4, r0                    |         r4 = r0;
    0x0002f436 mov r0, r6                    |         r0 = r6;
    0x0002f438 blx 0xec9c                    |         r0 = snd_device_name_free_hint ();
    0x0002f43c subs r0, r4, r0               |         r0 = r4 - r0;
    0x0002f43e clz r0, r0                    |         r0 &= r0;
    0x0002f442 lsrs r0, r0, 5                |         r0 >>= 5;
    0x0002f444 add sp, 0x10                  |         
    0x0002f446 pop {r4, r5, r6, pc}          |         
    0x0002f448 blx 0xde78                    |         r0 = fcn_0000de78 ();
    0x0002f44c mov r4, r0                    |         r4 = r0;
    0x0002f44e mov r0, r6                    |         r0 = r6;
    0x0002f450 blx 0xde78                    |         r0 = fcn_0000de78 ();
    0x0002f454 subs r0, r4, r0               |         r0 = r4 - r0;
    0x0002f456 clz r0, r0                    |         r0 &= r0;
    0x0002f45a lsrs r0, r0, 5                |         r0 >>= 5;
    0x0002f45c add sp, 0x10                  |         
    0x0002f45e pop {r4, r5, r6, pc}          |         
    0x0002f460 blx 0xf83c                    |         r0 = gst_element_add_pad ();
    0x0002f464 mov r4, r0                    |         r4 = r0;
    0x0002f466 mov r0, r6                    |         r0 = r6;
    0x0002f468 blx 0xf83c                    |         r0 = gst_element_add_pad ();
    0x0002f46c subs r0, r4, r0               |         r0 = r4 - r0;
    0x0002f46e clz r0, r0                    |         r0 &= r0;
    0x0002f472 lsrs r0, r0, 5                |         r0 >>= 5;
    0x0002f474 add sp, 0x10                  |         
    0x0002f476 pop {r4, r5, r6, pc}          |         
    0x0002f478 blx 0xf084                    |         r0 = fcn_0000f084 ();
    0x0002f47c mov r5, r0                    |         r5 = r0;
    0x0002f47e mov r4, r1                    |         r4 = r1;
    0x0002f480 mov r0, r6                    |         r0 = r6;
    0x0002f482 blx 0xf084                    |         fcn_0000f084 ();
    0x0002f486 cmp r4, r1                    |         
    0x0002f488 it eq                         |         
                                             |         if (r4 == r1) {
    0x0002f48a cmpeq r5, r0                  |             __asm ("cmpeq r5, r0");
                                             |         }
    0x0002f48c ite eq                        |         
                                             |         if (r4 != r1) {
    0x0002f48e moveq r0, 1                   |             r0 = 1;
                                             |         }
                                             |         if (r4 == r1) {
    0x0002f490 movne r0, 0                   |             r0 = 0;
                                             |         }
    0x0002f492 add sp, 0x10                  |         
    0x0002f494 pop {r4, r5, r6, pc}          |         
    0x0002f496 blx 0xfb48                    |         r0 = accept (r0, r1, r2);
    0x0002f49a mov r5, r0                    |         r5 = r0;
    0x0002f49c mov r4, r1                    |         r4 = r1;
    0x0002f49e mov r0, r6                    |         r0 = r6;
    0x0002f4a0 blx 0xfb48                    |         accept (r0, r1, r2);
    0x0002f4a4 cmp r4, r1                    |         
    0x0002f4a6 it eq                         |         
                                             |         if (r4 == r1) {
    0x0002f4a8 cmpeq r5, r0                  |             __asm ("cmpeq r5, r0");
                                             |         }
    0x0002f4aa ite eq                        |         
                                             |         if (r4 != r1) {
    0x0002f4ac moveq r0, 1                   |             r0 = 1;
                                             |         }
                                             |         if (r4 == r1) {
    0x0002f4ae movne r0, 0                   |             r0 = 0;
                                             |         }
    0x0002f4b0 add sp, 0x10                  |         
    0x0002f4b2 pop {r4, r5, r6, pc}          |         
    0x0002f4b4 blx 0xe010                    |         fcn_0000e010 ();
    0x0002f4b8 mov r0, r6                    |         r0 = r6;
    0x0002f4ba vstr d0, [sp]                 |         __asm ("vstr d0, [sp]");
    0x0002f4be blx 0xe010                    |         fcn_0000e010 ();
    0x0002f4c2 vstr d0, [sp, 8]              |         __asm ("vstr d0, [sp, 8]");
    0x0002f4c6 mov r0, sp                    |         r0 = sp;
    0x0002f4c8 ldr r2, [sp]                  |         r2 = *(sp);
    0x0002f4ca ldr r3, [sp, 8]               |         r3 = *(arg_8h);
    0x0002f4cc cmp r2, r3                    |         
                                             |         if (r2 == r3) {
    0x0002f4ce beq 0x2f576                   |             goto label_6;
                                             |         }
                                             | label_3:
    0x0002f4d0 movs r0, 1                    |         r0 = 1;
                                             | label_4:
    0x0002f4d2 eor r0, r0, 1                 |         r0 ^= 1;
    0x0002f4d6 add sp, 0x10                  |         
    0x0002f4d8 pop {r4, r5, r6, pc}          |         
    0x0002f4da blx 0xdd6c                    |         r0 = g_hash_table_ref ();
    0x0002f4de mov r4, r0                    |         r4 = r0;
    0x0002f4e0 mov r0, r6                    |         r0 = r6;
    0x0002f4e2 blx 0xdd6c                    |         r0 = g_hash_table_ref ();
    0x0002f4e6 mov r1, r0                    |         r1 = r0;
    0x0002f4e8 mov r0, r4                    |         r0 = r4;
    0x0002f4ea blx 0x1061c                   |         r0 = fcn_0001061c ();
    0x0002f4ee clz r0, r0                    |         r0 &= r0;
    0x0002f4f2 lsrs r0, r0, 5                |         r0 >>= 5;
    0x0002f4f4 add sp, 0x10                  |         
    0x0002f4f6 pop {r4, r5, r6, pc}          |         
    0x0002f4f8 blx 0xf024                    |         r0 = fcn_0000f024 ();
    0x0002f4fc mov r4, r0                    |         r4 = r0;
    0x0002f4fe mov r0, r6                    |         r0 = r6;
    0x0002f500 blx 0xf024                    |         r0 = fcn_0000f024 ();
    0x0002f504 orrs.w r3, r4, r0             |         r3 = r4 | r0;
                                             |         if (r3 == r4) {
    0x0002f508 beq 0x2f572                   |             goto label_7;
                                             |         }
    0x0002f50a cmp r0, 0                     |         
    0x0002f50c it ne                         |         
                                             |         if (r0 != 0) {
    0x0002f50e cmpne r4, 0                   |             __asm ("cmpne r4, 0");
                                             |         }
    0x0002f510 beq.w 0x2f412                 |         
                                             |     } while (r0 == 0);
    0x0002f514 mov r1, r0                    |     r1 = r0;
    0x0002f516 mov r0, r4                    |     r0 = r4;
    0x0002f518 add sp, 0x10                  |     
    0x0002f51a pop.w {r4, r5, r6, lr}        |     
    0x0002f51e b.w 0xf148                    |     void (*0xf148)() ();
                                             | label_5:
    0x0002f522 mov r0, r4                    |     r0 = r4;
    0x0002f524 blx 0x103f8                   |     r0 = fcn_000103f8 ();
    0x0002f528 mov r5, r0                    |     r5 = r0;
    0x0002f52a mov r0, r6                    |     r0 = r6;
    0x0002f52c blx 0x103f8                   |     r0 = fcn_000103f8 ();
    0x0002f530 orrs.w r3, r5, r0             |     r3 = r5 | r0;
    0x0002f534 mov r4, r0                    |     r4 = r0;
                                             |     if (r3 == r5) {
    0x0002f536 beq 0x2f572                   |         goto label_7;
                                             |     }
    0x0002f538 cmp r0, 0                     |     
    0x0002f53a it ne                         |     
                                             |     if (r0 == 0) {
    0x0002f53c cmpne r5, 0                   |         __asm ("cmpne r5, 0");
                                             |         goto label_8;
                                             |     }
                                             |     if (r0 == 0) {
                                             | label_8:
    0x0002f53e beq.w 0x2f412                 |         goto label_0;
                                             |     }
    0x0002f542 mov r0, r5                    |     r0 = r5;
    0x0002f544 blx 0xf200                    |     r0 = g_list_free_full ();
    0x0002f548 mov r6, r0                    |     r6 = r0;
    0x0002f54a mov r0, r4                    |     r0 = r4;
    0x0002f54c blx 0xf200                    |     r0 = g_list_free_full ();
    0x0002f550 cmp r6, r0                    |     
                                             |     if (r6 != r0) {
    0x0002f552 bne.w 0x2f412                 |         goto label_0;
                                             |     }
    0x0002f556 ldr r0, [r5]                  |     r0 = *(r5);
                                             |     if (r0 == 0) {
    0x0002f558 cbz r0, 0x2f572               |         goto label_7;
                                             |     }
    0x0002f55a subs r4, 4                    |     r4 -= 4;
                                             | label_1:
    0x0002f55c ldr r1, [r4, 4]!              |     r1 = *((r4 += 4));
    0x0002f560 blx 0x1061c                   |     r0 = fcn_0001061c ();
    0x0002f564 cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x0002f566 bne.w 0x2f412                 |         goto label_0;
                                             |     }
    0x0002f56a ldr r0, [r5, 4]!              |     r0 = *((r5 += 4));
    0x0002f56e cmp r0, 0                     |     
                                             |     if (r0 != 0) {
    0x0002f570 bne 0x2f55c                   |         goto label_1;
                                             |     }
                                             | label_7:
    0x0002f572 movs r0, 1                    |     r0 = 1;
    0x0002f574 b 0x2f414                     |     goto label_2;
                                             | label_6:
    0x0002f576 ldr r2, [r0, 4]               |     r2 = *((r0 + 4));
    0x0002f578 ldr r3, [sp, 0xc]             |     r3 = *(arg_ch);
    0x0002f57a cmp r2, r3                    |     
    0x0002f57c it eq                         |     
                                             |     if (r2 == r3) {
    0x0002f57e moveq r0, 0                   |         r0 = 0;
                                             |         goto label_9;
                                             |     }
                                             |     if (r2 != r3) {
                                             | label_9:
    0x0002f580 bne 0x2f4d0                   |         goto label_3;
                                             |     }
    0x0002f582 b 0x2f4d2                     |     goto label_4;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x31e98 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00031e98 ()                  | void fcn_00031e98 (int16_t arg1, int16_t arg3) {
                                             |     r0 = arg1;
                                             |     r2 = arg3;
    0x00031e98 push {r4, lr}                 |     
    0x00031e9a mov r4, r2                    |     r4 = r2;
    0x00031e9c ldr r0, [r0, 0x1c]            |     r0 = *((r0 + 0x1c));
    0x00031e9e bl 0x38cc4                    |     fcn_00038cc4 (r0);
    0x00031ea2 subs r0, 1                    |     r0--;
    0x00031ea4 cmp r0, 9                     |     
                                             |     if (r0 <= 9) {
    0x00031ea6 bhi.w 0x32106                 |         
                                             |         /* switch table (11 cases) at 0x31eae */
    0x00031eaa tbh [pc, r0, lsl 1]           |         __asm ("tbh [pc, r0, lsl 1]");
    0x00031ec2 ldr r1, [pc, 0x248]           |         
    0x00031ec4 add r1, pc                    |         r1 = 0x63fd6;
    0x00031ec6 ldr r3, [r1, 0x1c]            |         r3 = *(0x63ff2);
                                             |         if (r3 == 0) {
    0x00031ec8 cbnz r3, 0x31eda              |             
    0x00031eca ldr r2, [pc, 0x244]           |             
    0x00031ecc movs r3, 3                    |             r3 = 3;
    0x00031ece ldr r0, [pc, 0x244]           |             
    0x00031ed0 adds r1, 0x1c                 |             r1 += 0x1c;
    0x00031ed2 add r2, pc                    |             r2 = 0x63fe8;
    0x00031ed4 add r0, pc                    |             r0 = 0x63fee;
    0x00031ed6 blx 0xdaa0                    |             fcn_0000daa0 ();
                                             |         }
    0x00031eda ldr r1, [pc, 0x23c]           |         
    0x00031edc mov r0, r4                    |         r0 = r4;
    0x00031ede ldr r3, [pc, 0x23c]           |         
    0x00031ee0 movs r2, 1                    |         r2 = 1;
    0x00031ee2 add r1, pc                    |         
    0x00031ee4 add r3, pc                    |         r3 = 0x64006;
    0x00031ee6 ldr r1, [r1, 0x1c]            |         r1 = *(0x6401c);
    0x00031ee8 blx 0x10398                   |         fcn_00010398 ();
    0x00031eec ldr r2, [pc, 0x230]           |         
    0x00031eee movs r1, 0x20                 |         r1 = 0x20;
    0x00031ef0 movs r0, 0                    |         r0 = 0;
    0x00031ef2 add r2, pc                    |         r2 = 0x64016;
    0x00031ef4 blx 0xe318                    |         gst_element_error_printf ()
    0x00031ef8 movs r0, 0                    |         r0 = 0;
    0x00031efa pop {r4, pc}                  |         
    0x00031efc ldr r1, [pc, 0x224]           |         
    0x00031efe add r1, pc                    |         r1 = 0x64026;
    0x00031f00 ldr r3, [r1, 0x1c]            |         r3 = *(0x64042);
                                             |         if (r3 == 0) {
    0x00031f02 cbnz r3, 0x31f14              |             
    0x00031f04 ldr r2, [pc, 0x220]           |             
    0x00031f06 movs r3, 3                    |             r3 = 3;
    0x00031f08 ldr r0, [pc, 0x220]           |             
    0x00031f0a adds r1, 0x1c                 |             r1 += 0x1c;
    0x00031f0c add r2, pc                    |             r2 = 0x64038;
    0x00031f0e add r0, pc                    |             r0 = 0x6403e;
    0x00031f10 blx 0xdaa0                    |             fcn_0000daa0 ();
                                             |         }
    0x00031f14 ldr r1, [pc, 0x218]           |         
    0x00031f16 mov r0, r4                    |         r0 = r4;
    0x00031f18 ldr r3, [pc, 0x218]           |         
    0x00031f1a movs r2, 0                    |         r2 = 0;
    0x00031f1c add r1, pc                    |         
    0x00031f1e add r3, pc                    |         r3 = 0x64056;
    0x00031f20 ldr r1, [r1, 0x1c]            |         r1 = *(0x6406c);
    0x00031f22 blx 0x10398                   |         fcn_00010398 ();
    0x00031f26 ldr r2, [pc, 0x210]           |         
    0x00031f28 movs r1, 0x20                 |         r1 = 0x20;
    0x00031f2a movs r0, 0                    |         r0 = 0;
    0x00031f2c add r2, pc                    |         r2 = 0x6406a;
    0x00031f2e blx 0xe318                    |         gst_element_error_printf ()
    0x00031f32 movs r0, 0                    |         r0 = 0;
    0x00031f34 pop {r4, pc}                  |         
    0x00031f36 ldr r1, [pc, 0x204]           |         
    0x00031f38 add r1, pc                    |         r1 = 0x6407a;
    0x00031f3a ldr r3, [r1, 0x1c]            |         r3 = *(0x64096);
                                             |         if (r3 == 0) {
    0x00031f3c cbnz r3, 0x31f4e              |             
    0x00031f3e ldr r2, [pc, 0x200]           |             
    0x00031f40 movs r3, 3                    |             r3 = 3;
    0x00031f42 ldr r0, [pc, 0x200]           |             
    0x00031f44 adds r1, 0x1c                 |             r1 += 0x1c;
    0x00031f46 add r2, pc                    |             r2 = 0x6408c;
    0x00031f48 add r0, pc                    |             r0 = 0x64092;
    0x00031f4a blx 0xdaa0                    |             fcn_0000daa0 ();
                                             |         }
    0x00031f4e ldr r1, [pc, 0x1f8]           |         
    0x00031f50 mov r0, r4                    |         r0 = r4;
    0x00031f52 ldr r3, [pc, 0x1f8]           |         
    0x00031f54 movs r2, 0                    |         r2 = 0;
    0x00031f56 add r1, pc                    |         
    0x00031f58 add r3, pc                    |         r3 = 0x640aa;
    0x00031f5a ldr r1, [r1, 0x1c]            |         r1 = *(0x640c0);
    0x00031f5c blx 0x10398                   |         fcn_00010398 ();
    0x00031f60 ldr r2, [pc, 0x1ec]           |         
    0x00031f62 movs r1, 0x20                 |         r1 = 0x20;
    0x00031f64 movs r0, 0                    |         r0 = 0;
    0x00031f66 add r2, pc                    |         r2 = 0x640ba;
    0x00031f68 blx 0xe318                    |         gst_element_error_printf ()
    0x00031f6c movs r0, 0                    |         r0 = 0;
    0x00031f6e pop {r4, pc}                  |         
    0x00031f70 ldr r1, [pc, 0x1e0]           |         
    0x00031f72 add r1, pc                    |         r1 = 0x640ca;
    0x00031f74 ldr r3, [r1, 0x1c]            |         r3 = *(0x640e6);
                                             |         if (r3 == 0) {
    0x00031f76 cbnz r3, 0x31f88              |             
    0x00031f78 ldr r2, [pc, 0x1dc]           |             
    0x00031f7a movs r3, 3                    |             r3 = 3;
    0x00031f7c ldr r0, [pc, 0x1dc]           |             
    0x00031f7e adds r1, 0x1c                 |             r1 += 0x1c;
    0x00031f80 add r2, pc                    |             r2 = 0x640dc;
    0x00031f82 add r0, pc                    |             r0 = 0x640e2;
    0x00031f84 blx 0xdaa0                    |             fcn_0000daa0 ();
                                             |         }
    0x00031f88 ldr r1, [pc, 0x1d4]           |         
    0x00031f8a mov r0, r4                    |         r0 = r4;
    0x00031f8c ldr r3, [pc, 0x1d4]           |         
    0x00031f8e movs r2, 1                    |         r2 = 1;
    0x00031f90 add r1, pc                    |         
    0x00031f92 add r3, pc                    |         r3 = 0x640fa;
    0x00031f94 ldr r1, [r1, 0x1c]            |         r1 = *(0x64110);
    0x00031f96 blx 0x10398                   |         r0 = fcn_00010398 ();
    0x00031f98 and.w sl, r0, r3, ror 17      |         sl = r0 & (r3 >>> 17);
    0x00031f9c movs r1, 0x20                 |         r1 = 0x20;
    0x00031f9e movs r0, 0                    |         r0 = 0;
    0x00031fa0 add r2, pc                    |         r2 += pc;
    0x00031fa2 blx 0xe318                    |         gst_element_error_printf ()
    0x00031fa6 movs r0, 0                    |         r0 = 0;
    0x00031fa8 pop {r4, pc}                  |         
    0x00031faa ldr r1, [pc, 0x1c0]           |         
    0x00031fac add r1, pc                    |         r1 = 0x6411e;
    0x00031fae ldr r3, [r1, 0x1c]            |         r3 = *(0x6413a);
                                             |         if (r3 == 0) {
    0x00031fb0 cbnz r3, 0x31fc2              |             
    0x00031fb2 ldr r2, [pc, 0x1bc]           |             
    0x00031fb4 movs r3, 3                    |             r3 = 3;
    0x00031fb6 ldr r0, [pc, 0x1bc]           |             
    0x00031fb8 adds r1, 0x1c                 |             r1 += 0x1c;
    0x00031fba add r2, pc                    |             r2 = 0x64130;
    0x00031fbc add r0, pc                    |             r0 = 0x64136;
    0x00031fbe blx 0xdaa0                    |             fcn_0000daa0 ();
                                             |         }
    0x00031fc2 ldr r1, [pc, 0x1b4]           |         
    0x00031fc4 mov r0, r4                    |         r0 = r4;
    0x00031fc6 ldr r3, [pc, 0x1b4]           |         
    0x00031fc8 movs r2, 0                    |         r2 = 0;
    0x00031fca add r1, pc                    |         
    0x00031fcc add r3, pc                    |         r3 = 0x6414e;
    0x00031fce ldr r1, [r1, 0x1c]            |         r1 = *(0x64164);
    0x00031fd0 blx 0x10398                   |         fcn_00010398 ();
    0x00031fd4 ldr r2, [pc, 0x1a8]           |         
    0x00031fd6 movs r1, 0x20                 |         r1 = 0x20;
    0x00031fd8 movs r0, 0                    |         r0 = 0;
    0x00031fda add r2, pc                    |         r2 = 0x6415e;
    0x00031fdc blx 0xe318                    |         gst_element_error_printf ()
    0x00031fe0 movs r0, 0                    |         r0 = 0;
    0x00031fe2 pop {r4, pc}                  |         
    0x00031fe4 ldr r1, [pc, 0x19c]           |         
    0x00031fe6 add r1, pc                    |         r1 = 0x6416e;
    0x00031fe8 ldr r3, [r1, 0x1c]            |         r3 = *(0x6418a);
                                             |         if (r3 == 0) {
    0x00031fea cbnz r3, 0x31ffc              |             
    0x00031fec ldr r2, [pc, 0x198]           |             
    0x00031fee movs r3, 3                    |             r3 = 3;
    0x00031ff0 ldr r0, [pc, 0x198]           |             
    0x00031ff2 adds r1, 0x1c                 |             r1 += 0x1c;
    0x00031ff4 add r2, pc                    |             r2 = 0x64180;
    0x00031ff6 add r0, pc                    |             r0 = 0x64186;
    0x00031ff8 blx 0xdaa0                    |             fcn_0000daa0 ();
                                             |         }
    0x00031ffc ldr r1, [pc, 0x190]           |         
    0x00031ffe mov r0, r4                    |         r0 = r4;
    0x00032000 ldr r3, [pc, 0x190]           |         
    0x00032002 movs r2, 1                    |         r2 = 1;
    0x00032004 add r1, pc                    |         
    0x00032006 add r3, pc                    |         r3 = 0x6419e;
    0x00032008 ldr r1, [r1, 0x1c]            |         r1 = *(0x641b4);
    0x0003200a blx 0x10398                   |         fcn_00010398 ();
    0x0003200e ldr r2, [pc, 0x188]           |         
    0x00032010 movs r1, 0x20                 |         r1 = 0x20;
    0x00032012 movs r0, 0                    |         r0 = 0;
    0x00032014 add r2, pc                    |         r2 = 0x641b2;
    0x00032016 blx 0xe318                    |         gst_element_error_printf ()
    0x0003201a movs r0, 0                    |         r0 = 0;
    0x0003201c pop {r4, pc}                  |         
    0x0003201e ldr r1, [pc, 0x17c]           |         
    0x00032020 add r1, pc                    |         r1 = 0x641c2;
    0x00032022 ldr r3, [r1, 0x1c]            |         r3 = *(0x641de);
                                             |         if (r3 == 0) {
    0x00032024 cbnz r3, 0x32036              |             
    0x00032026 ldr r2, [pc, 0x178]           |             
    0x00032028 movs r3, 3                    |             r3 = 3;
    0x0003202a ldr r0, [pc, 0x178]           |             
    0x0003202c adds r1, 0x1c                 |             r1 += 0x1c;
    0x0003202e add r2, pc                    |             r2 = 0x641d4;
    0x00032030 add r0, pc                    |             r0 = 0x641da;
    0x00032032 blx 0xdaa0                    |             fcn_0000daa0 ();
    0x00032034 invalid                       |             
                                             |         }
    0x00032036 ldr r1, [pc, 0x170]           |         
    0x00032038 mov r0, r4                    |         r0 = r4;
    0x0003203a ldr r3, [pc, 0x170]           |         
    0x0003203c movs r2, 0                    |         r2 = 0;
    0x0003203e add r1, pc                    |         
    0x00032040 add r3, pc                    |         r3 = 0x641f2;
    0x00032042 ldr r1, [r1, 0x1c]            |         r1 = *(0x64208);
    0x00032044 blx 0x10398                   |         fcn_00010398 ();
    0x00032048 ldr r2, [pc, 0x164]           |         
    0x0003204a movs r1, 0x20                 |         r1 = 0x20;
    0x0003204c movs r0, 0                    |         r0 = 0;
    0x0003204e add r2, pc                    |         r2 = 0x64202;
    0x00032050 blx 0xe318                    |         gst_element_error_printf ()
    0x00032054 movs r0, 0                    |         r0 = 0;
    0x00032056 pop {r4, pc}                  |         
    0x00032058 ldr r1, [pc, 0x158]           |         
    0x0003205a add r1, pc                    |         r1 = 0x64212;
    0x0003205c ldr r3, [r1, 0x1c]            |         r3 = *(0x6422e);
                                             |         if (r3 == 0) {
    0x0003205e cbnz r3, 0x32070              |             
    0x00032060 ldr r2, [pc, 0x154]           |             
    0x00032062 movs r3, 3                    |             r3 = 3;
    0x00032064 ldr r0, [pc, 0x154]           |             
    0x00032066 adds r1, 0x1c                 |             r1 += 0x1c;
    0x00032068 add r2, pc                    |             r2 = 0x64224;
    0x0003206a add r0, pc                    |             r0 = 0x6422a;
    0x0003206c blx 0xdaa0                    |             fcn_0000daa0 ();
                                             |         }
    0x00032070 ldr r1, [pc, 0x14c]           |         
    0x00032072 mov r0, r4                    |         r0 = r4;
    0x00032074 ldr r3, [pc, 0x14c]           |         
    0x00032076 movs r2, 1                    |         r2 = 1;
    0x00032078 add r1, pc                    |         
    0x0003207a add r3, pc                    |         r3 = 0x64242;
    0x0003207c ldr r1, [r1, 0x1c]            |         r1 = *(0x64258);
    0x0003207e blx 0x10398                   |         fcn_00010398 ();
    0x00032082 ldr r2, [pc, 0x144]           |         
    0x00032084 movs r1, 0x20                 |         r1 = 0x20;
    0x00032086 movs r0, 0                    |         r0 = 0;
    0x00032088 add r2, pc                    |         r2 = 0x64256;
    0x0003208a blx 0xe318                    |         gst_element_error_printf ()
    0x0003208e movs r0, 0                    |         r0 = 0;
    0x00032090 pop {r4, pc}                  |         
    0x00032092 ldr r1, [pc, 0x138]           |         
    0x00032094 add r1, pc                    |         r1 = 0x64266;
    0x00032096 ldr r3, [r1, 0x1c]            |         r3 = *(0x64282);
                                             |         if (r3 == 0) {
    0x00032098 cbnz r3, 0x320aa              |             
    0x0003209a ldr r2, [pc, 0x134]           |             
    0x0003209c movs r3, 3                    |             r3 = 3;
    0x0003209e ldr r0, [pc, 0x134]           |             
    0x000320a0 adds r1, 0x1c                 |             r1 += 0x1c;
    0x000320a2 add r2, pc                    |             r2 = 0x64278;
    0x000320a4 add r0, pc                    |             r0 = 0x6427e;
    0x000320a6 blx 0xdaa0                    |             fcn_0000daa0 ();
                                             |         }
    0x000320aa ldr r1, [pc, 0x12c]           |         
    0x000320ac mov r0, r4                    |         r0 = r4;
    0x000320ae ldr r3, [pc, 0x12c]           |         
    0x000320b0 movs r2, 0                    |         r2 = 0;
    0x000320b2 add r1, pc                    |         
    0x000320b4 add r3, pc                    |         r3 = 0x64296;
    0x000320b6 ldr r1, [r1, 0x1c]            |         r1 = *(0x642ac);
    0x000320b8 blx 0x10398                   |         fcn_00010398 ();
    0x000320bc ldr r2, [pc, 0x120]           |         
    0x000320be movs r1, 0x20                 |         r1 = 0x20;
    0x000320c0 movs r0, 0                    |         r0 = 0;
    0x000320c2 add r2, pc                    |         r2 = 0x642a6;
    0x000320c4 blx 0xe318                    |         gst_element_error_printf ()
    0x000320c8 movs r0, 0                    |         r0 = 0;
    0x000320ca pop {r4, pc}                  |         
    0x000320cc ldr r1, [pc, 0x114]           |         
    0x000320ce add r1, pc                    |         r1 = 0x642b6;
    0x000320d0 ldr r3, [r1, 0x1c]            |         r3 = *(0x642d2);
                                             |         if (r3 == 0) {
    0x000320d2 cbnz r3, 0x320e4              |             
    0x000320d4 ldr r2, [pc, 0x110]           |             
    0x000320d6 movs r3, 3                    |             r3 = 3;
    0x000320d8 ldr r0, [pc, 0x110]           |             
    0x000320da adds r1, 0x1c                 |             r1 += 0x1c;
    0x000320dc add r2, pc                    |             r2 = 0x642c8;
    0x000320de add r0, pc                    |             r0 = 0x642ce;
    0x000320e0 blx 0xdaa0                    |             fcn_0000daa0 ();
                                             |         }
    0x000320e4 ldr r1, [pc, 0x108]           |         
    0x000320e6 mov r0, r4                    |         r0 = r4;
    0x000320e8 ldr r3, [pc, 0x108]           |         
    0x000320ea movs r2, 1                    |         r2 = 1;
    0x000320ec add r1, pc                    |         
    0x000320ee add r3, pc                    |         r3 = 0x642e6;
    0x000320f0 ldr r1, [r1, 0x1c]            |         r1 = *(0x642fc);
    0x000320f2 blx 0x10398                   |         fcn_00010398 ();
    0x000320f6 ldr r2, [pc, 0x100]           |         
    0x000320f8 movs r1, 0x20                 |         r1 = 0x20;
    0x000320fa movs r0, 0                    |         r0 = 0;
    0x000320fc add r2, pc                    |         r2 = 0x642fa;
    0x000320fe blx 0xe318                    |         gst_element_error_printf ()
    0x00032102 movs r0, 0                    |         r0 = 0;
    0x00032104 pop {r4, pc}                  |         
                                             |     }
    0x00032106 movs r0, 1                    |     r0 = 1;
    0x00032108 pop {r4, pc}                  |     
    0x0003b1d2 invalid                       |     
                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x352f0 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.000352f0 ()                                      | void fcn_000352f0 (int16_t arg1, int16_t domain) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     r0 = arg1;
                                                                 |     r2 = domain;
    0x000352f0 svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x000352f4 add.w r7, r2, 0xc                                 |     r7 = r2 + 0xc;
    0x000352f8 sub sp, 0x1c                                      |     
    0x000352fa mov r4, r0                                        |     r4 = r0;
    0x000352fc mov r0, r7                                        |     r0 = r7;
    0x000352fe mov r5, r2                                        |     r5 = r2;
    0x00035300 blx 0xf26c                                        |     socket (r0, r1, r2);
    0x00035304 movs r3, 0                                        |     r3 = 0;
    0x00035306 ldr r1, [pc, 0x210]                               |     
    0x00035308 str r3, [sp, 4]                                   |     var_4h = r3;
    0x0003530a add r3, sp, 0xc                                   |     r3 += var_ch;
    0x0003530c str r3, [sp]                                      |     *(sp) = r3;
    0x0003530e add r2, sp, 8                                     |     r2 += var_8h;
    0x00035310 ldr r3, [pc, 0x208]                               |     
    0x00035312 add r1, pc                                        |     r1 = 0x6a830;
    0x00035314 mov r0, r4                                        |     r0 = r4;
    0x00035316 add r3, pc                                        |     r3 = 0x6a836;
    0x00035318 blx 0xf584                                        |     gst_sdp_media_get_media ();
    0x0003531c ldr r3, [sp, 0xc]                                 |     r3 = var_ch;
                                                                 |     if (r3 != 0) {
    0x0003531e cbz r3, 0x3533c                                   |         
    0x00035320 ldr r6, [sp, 8]                                   |         r6 = var_8h;
    0x00035322 ldr r0, [r5, 0x20]                                |         r0 = *((r5 + 0x20));
                                                                 |         if (r6 == 0) {
    0x00035324 cbz r6, 0x35348                                   |             goto label_5;
                                                                 |         }
    0x00035326 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00035328 beq.w 0x354f6                                     |             goto label_6;
                                                                 |         }
                                                                 | label_4:
    0x0003532c ldr r3, [r5, 0x24]                                |         r3 = *((r5 + 0x24));
    0x0003532e ldr.w r8, [r4, 0x18]                              |         r8 = *((r4 + 0x18));
    0x00035332 ldr r3, [r3]                                      |         r3 = *(r3);
    0x00035334 ldr.w r6, [r3, r8, lsl 2]                         |         offset_0 = r8 << 2;
                                                                 |         r6 = *((r3 + offset_0));
    0x00035338 cmp r6, 0                                         |         
                                                                 |         if (r6 == 0) {
    0x0003533a beq 0x353c4                                       |             goto label_7;
                                                                 |         }
                                                                 |     }
                                                                 | label_0:
    0x0003533c mov r0, r7                                        |     r0 = r7;
    0x0003533e blx 0xf548                                        |     gst_mini_object_unref ();
    0x00035342 add sp, 0x1c                                      |     
    0x00035344 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_5:
    0x00035348 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0003534a beq.w 0x354a0                                     |         goto label_8;
                                                                 |     }
    0x0003534e ldr r3, [r5, 0x24]                                |     r3 = *((r5 + 0x24));
    0x00035350 ldr r4, [r4, 0x18]                                |     r4 = *((r4 + 0x18));
    0x00035352 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00035354 ldr.w r1, [r3, r4, lsl 2]                         |     offset_1 = r4 << 2;
                                                                 |     r1 = *((r3 + offset_1));
    0x00035358 cmp r1, 0                                         |     
                                                                 |     if (r1 != 0) {
    0x0003535a bne.w 0x354ac                                     |         goto label_9;
                                                                 |     }
    0x0003535e ldr r1, [r5, 0x14]                                |     r1 = *((r5 + 0x14));
    0x00035360 ldr r3, [r1, 4]                                   |     r3 = *((r1 + 4));
                                                                 |     if (r3 == 0) {
    0x00035362 cbz r3, 0x353ba                                   |         goto label_10;
                                                                 |     }
                                                                 | label_1:
    0x00035364 ldr.w r8, [pc, 0x1b8]                             |     
    0x00035368 add.w sl, sp, 0x14                                |     sl += var_14h;
    0x0003536c ldr.w fp, [pc, 0x1b4]                             |     
    0x00035370 mov r3, sl                                        |     r3 = sl;
    0x00035372 movs r4, 0                                        |     r4 = 0;
    0x00035374 mov sl, r7                                        |     sl = r7;
    0x00035376 add r8, pc                                        |     r8 = 0x6a89a;
    0x00035378 add.w sb, sp, 0x10                                |     sb += var_10h;
    0x0003537c add fp, pc                                        |     fp = 0x6a8a4;
    0x0003537e mov r7, r3                                        |     r7 = r3;
                                                                 |     do {
    0x00035380 ldr r1, [r1]                                      |         r1 = *(r1);
    0x00035382 mov r3, r8                                        |         r3 = r8;
    0x00035384 mov r2, sb                                        |         r2 = sb;
    0x00035386 ldr.w r0, [r1, r4, lsl 2]                         |         offset_2 = r4 << 2;
                                                                 |         r0 = *((r1 + offset_2));
    0x0003538a movs r1, 0                                        |         r1 = 0;
    0x0003538c strd r7, r1, [sp]                                 |         __asm ("strd r7, r1, [sp]");
    0x0003538e strb r0, [r0, 4]                                  |         *((r0 + 4)) = r0;
    0x00035390 mov r1, fp                                        |         r1 = fp;
    0x00035392 adds r4, 1                                        |         r4++;
    0x00035394 blx 0xf584                                        |         gst_sdp_media_get_media ();
                                                                 |         if (r6 == 0) {
    0x00035398 cbnz r6, 0x353a6                                  |             
    0x0003539a ldr r6, [sp, 0x10]                                |             r6 = var_10h;
                                                                 |             if (r6 == 0) {
    0x0003539c cbz r6, 0x353a6                                   |                 goto label_11;
                                                                 |             }
    0x0003539e ldr r6, [sp, 0x14]                                |             r6 = var_14h;
    0x000353a0 subs r6, 0                                        |             
    0x000353a2 it ne                                             |             
                                                                 |             if (r6 != 0) {
    0x000353a4 movne r6, 1                                       |                 r6 = 1;
                                                                 |                 goto label_11;
                                                                 |             }
                                                                 |         }
                                                                 | label_11:
    0x000353a6 ldr r1, [r5, 0x14]                                |         r1 = *((r5 + 0x14));
    0x000353a8 ldr r0, [r1, 4]                                   |         r0 = *((r1 + 4));
    0x000353aa cmp r0, r4                                        |         
    0x000353ac bhi 0x35380                                       |         
                                                                 |     } while (r0 > r4);
    0x000353ae mov r7, sl                                        |     r7 = sl;
    0x000353b0 cmp r6, 0                                         |     
                                                                 |     if (r6 != 0) {
    0x000353b2 bne 0x3533c                                       |         goto label_0;
                                                                 |     }
                                                                 | label_2:
    0x000353b4 ldr r0, [r5, 0x20]                                |     r0 = *((r5 + 0x20));
    0x000353b6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000353b8 beq 0x3533c                                       |         goto label_0;
                                                                 |     }
                                                                 | label_10:
    0x000353ba blx 0xffc0                                        |     fcn_0000ffc0 ();
    0x000353be movs r3, 0                                        |     r3 = 0;
    0x000353c0 str r3, [r5, 0x20]                                |     *((r5 + 0x20)) = r3;
    0x000353c2 b 0x3533c                                         |     goto label_0;
                                                                 | label_7:
    0x000353c4 add.w r3, r8, 1                                   |     r3 = r8 + 1;
    0x000353c8 mov r0, r6                                        |     r0 = r6;
    0x000353ca ldr.w fp, [pc, 0x15c]                             |     
    0x000353ce str r3, [sp, 0x14]                                |     var_14h = r3;
    0x000353d0 blx 0xda64                                        |     fcn_0000da64 ();
    0x000353d4 ldr r2, [pc, 0x154]                               |     
    0x000353d6 add fp, pc                                        |     fp = 0x6a904;
    0x000353d8 movs r3, 4                                        |     r3 = 4;
    0x000353da mov r1, fp                                        |     r1 = fp;
    0x000353dc mov r4, r0                                        |     r4 = r0;
    0x000353de ldr.w sb, [pc, 0x150]                             |     
    0x000353e2 add r2, pc                                        |     r2 = 0x6a912;
    0x000353e4 ldr.w sl, [pc, 0x14c]                             |     
    0x000353e8 blx 0xe884                                        |     fcn_0000e884 ();
    0x000353ec ldr r2, [pc, 0x148]                               |     
    0x000353ee mov r1, fp                                        |     r1 = fp;
    0x000353f0 mov r0, r4                                        |     r0 = r4;
    0x000353f2 add sb, pc                                        |     sb = 0x6a928;
    0x000353f4 add sl, pc                                        |     sl = 0x6a92c;
    0x000353f6 add r2, pc                                        |     r2 = 0x6a932;
    0x000353f8 blx 0x10328                                       |     g_source_destroy ();
    0x000353fc ldr r2, [pc, 0x13c]                               |     
    0x000353fe movs r3, 4                                        |     r3 = 4;
    0x00035400 mov r1, sb                                        |     r1 = sb;
    0x00035402 mov r0, r4                                        |     r0 = r4;
    0x00035404 add r2, pc                                        |     r2 = "notify::audio-support";
    0x00035406 blx 0xe884                                        |     fcn_0000e884 ();
    0x0003540a ldr r2, [pc, 0x134]                               |     
    0x0003540c mov r1, sb                                        |     r1 = sb;
    0x0003540e mov r0, r4                                        |     r0 = r4;
    0x00035410 add r2, pc                                        |     r2 = 0x6a956;
    0x00035412 blx 0x10328                                       |     g_source_destroy ();
    0x00035416 ldr r3, [pc, 0x12c]                               |     
    0x00035418 mov r1, sb                                        |     r1 = sb;
    0x0003541a mov r2, r6                                        |     r2 = r6;
    0x0003541c mov r0, r4                                        |     r0 = r4;
    0x0003541e ldr.w sb, [pc, 0x128]                             |     
    0x00035422 add r3, pc                                        |     r3 = 0x6a96c;
    0x00035424 blx 0xf078                                        |     fcn_0000f078 ();
    0x00035428 add r2, sp, 0x14                                  |     r2 += var_14h;
    0x0003542a mov r1, sl                                        |     r1 = sl;
    0x0003542c movs r3, 1                                        |     r3 = 1;
    0x0003542e mov r0, r4                                        |     r0 = r4;
    0x00035430 blx 0xe884                                        |     fcn_0000e884 ();
    0x00035434 ldr r2, [pc, 0x114]                               |     
    0x00035436 add sb, pc                                        |     sb = 0x6a984;
    0x00035438 mov r3, r6                                        |     r3 = r6;
    0x0003543a mov r1, sl                                        |     r1 = sl;
    0x0003543c mov r0, r4                                        |     r0 = r4;
    0x0003543e add r2, pc                                        |     r2 = 0x6a98e;
    0x00035440 blx 0xf078                                        |     fcn_0000f078 ();
    0x00035444 movs r2, 2                                        |     r2 = 2;
    0x00035446 mov r1, sb                                        |     r1 = sb;
    0x00035448 mov r0, r4                                        |     r0 = r4;
    0x0003544a blx 0x1055c                                       |     fcn_0001055c ();
    0x0003544e ldr r2, [pc, 0x100]                               |     
    0x00035450 mov r3, r6                                        |     r3 = r6;
    0x00035452 mov r1, sb                                        |     r1 = sb;
    0x00035454 mov r0, r4                                        |     r0 = r4;
    0x00035456 add r2, pc                                        |     r2 = "Set/Get Timeout";
    0x00035458 blx 0xf078                                        |     fcn_0000f078 ();
    0x0003545c ldr r2, [pc, 0xf4]                                |     
    0x0003545e mov r1, sl                                        |     r1 = sl;
    0x00035460 mov r0, r4                                        |     r0 = r4;
    0x00035462 add r2, pc                                        |     r2 = 0x6a9ba;
    0x00035464 blx 0xea74                                        |     g_main_loop_new ();
    0x00035468 ldr r2, [pc, 0xec]                                |     
    0x0003546a mov r1, sb                                        |     r1 = sb;
    0x0003546c mov r0, r4                                        |     r0 = r4;
    0x0003546e add r2, pc                                        |     r2 = 0x6a9ca;
    0x00035470 blx 0xea74                                        |     g_main_loop_new ();
    0x00035474 ldr r2, [pc, 0xe4]                                |     
    0x00035476 mov r3, r5                                        |     r3 = r5;
    0x00035478 mov r1, sb                                        |     r1 = sb;
    0x0003547a mov r0, r4                                        |     r0 = r4;
    0x0003547c add r2, pc                                        |     r2 = "monolith-audioplayer-player";
    0x0003547e blx 0xf0cc                                        |     fcn_0000f0cc ();
    0x00035482 ldr r0, [r5, 0x20]                                |     r0 = *((r5 + 0x20));
    0x00035484 mov r1, r4                                        |     r1 = r4;
    0x00035486 blx 0xfce8                                        |     r0 = fcn_0000fce8 ();
    0x0003548a mov r6, r0                                        |     r6 = r0;
    0x0003548c cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0003548e beq 0x35508                                       |         goto label_12;
                                                                 |     }
    0x00035490 ldr r3, [r5, 0x24]                                |     r3 = *((r5 + 0x24));
    0x00035492 mov r0, r4                                        |     r0 = r4;
    0x00035494 ldr r3, [r3]                                      |     r3 = *(r3);
    0x00035496 str.w r6, [r3, r8, lsl 2]                         |     __asm ("str.w r6, [r3, r8, lsl 2]");
    0x0003549a blx 0xf0f0                                        |     fcn_0000f0f0 ();
    0x0003549e b 0x3533c                                         |     goto label_0;
                                                                 | label_8:
    0x000354a0 ldr r1, [r5, 0x14]                                |     r1 = *((r5 + 0x14));
    0x000354a2 ldr r3, [r1, 4]                                   |     r3 = *((r1 + 4));
    0x000354a4 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x000354a6 bne.w 0x35364                                     |         goto label_1;
                                                                 |     }
    0x000354aa b 0x3533c                                         |     goto label_0;
                                                                 | label_9:
    0x000354ac ldr r3, [r5, 0x18]                                |     r3 = *((r5 + 0x18));
    0x000354ae ldr.w r8, [r3]                                    |     r8 = *(r3);
    0x000354b2 ldr.w r3, [r8, r4, lsl 2]                         |     offset_3 = r4 << 2;
                                                                 |     r3 = *((r8 + offset_3));
                                                                 |     if (r3 != 0) {
    0x000354b6 cbz r3, 0x354cc                                   |         
    0x000354b8 mov r0, r3                                        |         r0 = r3;
    0x000354ba bl 0x3ff38                                        |         fcn_0003ff38 (r0);
    0x000354be ldr r3, [r5, 0x24]                                |         r3 = *((r5 + 0x24));
    0x000354c0 ldr r0, [r5, 0x20]                                |         r0 = *((r5 + 0x20));
    0x000354c2 str.w r6, [r8, r4, lsl 2]                         |         __asm ("str.w r6, [r8, r4, lsl 2]");
    0x000354c6 ldr r3, [r3]                                      |         r3 = *(r3);
    0x000354c8 ldr.w r1, [r3, r4, lsl 2]                         |         offset_4 = r4 << 2;
                                                                 |         r1 = *((r3 + offset_4));
                                                                 |     }
    0x000354cc blx 0xef10                                        |     r0 = fcn_0000ef10 ();
                                                                 |     if (r0 == 0) {
    0x000354d0 cbz r0, 0x354e8                                   |         goto label_13;
                                                                 |     }
                                                                 | label_3:
    0x000354d2 ldr r3, [r5, 0x24]                                |     r3 = *((r5 + 0x24));
    0x000354d4 movs r2, 0                                        |     r2 = 0;
    0x000354d6 ldr r1, [r5, 0x14]                                |     r1 = *((r5 + 0x14));
    0x000354d8 ldr r3, [r3]                                      |     r3 = *(r3);
    0x000354da str.w r2, [r3, r4, lsl 2]                         |     __asm ("str.w r2, [r3, r4, lsl 2]");
    0x000354de ldr r3, [r1, 4]                                   |     r3 = *((r1 + 4));
    0x000354e0 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x000354e2 bne.w 0x35364                                     |         goto label_1;
                                                                 |     }
    0x000354e6 b 0x353b4                                         |     goto label_2;
                                                                 | label_13:
    0x000354e8 ldr r2, [pc, 0x74]                                |     
    0x000354ea mov r3, r4                                        |     r3 = r4;
    0x000354ec movs r1, 0x20                                     |     r1 = 0x20;
    0x000354ee add r2, pc                                        |     r2 = 0x6aa52;
    0x000354f0 blx 0xe318                                        |     gst_element_error_printf ()
    0x000354f4 b 0x354d2                                         |     goto label_3;
                                                                 | label_6:
    0x000354f6 ldr r1, [pc, 0x6c]                                |     
    0x000354f8 mov r2, r5                                        |     r2 = r5;
    0x000354fa ldr r0, [pc, 0x6c]                                |     
    0x000354fc add r1, pc                                        |     r1 = 0x6aa66;
    0x000354fe add r0, pc                                        |     r0 = "signed";
    0x00035500 blx 0x103a4                                       |     fcn_000103a4 ();
    0x00035502 vhsub.s16 d22, d0, d24                            |     __asm ("vhsub.s16 d22, d0, d24");
    0x00035506 b 0x3532c                                         |     goto label_4;
                                                                 | label_12:
    0x00035508 ldr r2, [pc, 0x60]                                |     
    0x0003550a mov r3, r8                                        |     r3 = r8;
    0x0003550c movs r1, 0x20                                     |     r1 = 0x20;
    0x0003550e add r2, pc                                        |     r2 = 0x6aa7e;
    0x00035510 blx 0xe318                                        |     gst_element_error_printf ()
    0x00035512 vaba.s8 d14, d18, d28                             |     __asm ("vaba.s8 d14, d18, d28");
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x36278 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00036278 ()                                      | void fcn_00036278 (int16_t arg_90h, int16_t arg_94h, int16_t arg_98h, 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;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_30h;
                                                                 |     int16_t var_34h;
                                                                 |     int16_t var_38h;
                                                                 |     int16_t var_3ch;
                                                                 |     int16_t var_40h;
                                                                 |     int16_t var_44h;
                                                                 |     int16_t var_48h;
                                                                 |     int16_t var_4ch;
                                                                 |     int16_t var_50h;
                                                                 |     int16_t var_54h;
                                                                 |     int16_t var_58h;
                                                                 |     int16_t var_5ch;
                                                                 |     int16_t var_60h;
                                                                 |     int16_t var_64h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00036278 svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x0003627c sub sp, 0x6c                                      |     
    0x0003627e str r3, [sp, 0x64]                                |     var_64h = r3;
    0x00036280 movw sb, 0x4d2                                    |     sb = 0x4d2;
    0x00036284 mov.w r5, 0x1f40                                  |     r5 = 0x1f40;
    0x00036288 movs r7, 1                                        |     r7 = 1;
    0x0003628a ldr.w r3, [pc, 0x554]                             |     
    0x0003628e mov.w fp, 0x14                                    |     
    0x00036292 ldr.w r4, [pc, 0x550]                             |     
    0x00036296 str r2, [sp, 0x44]                                |     var_44h = r2;
    0x00036298 ldr.w r6, [pc, 0x54c]                             |     
    0x0003629c add r3, pc                                        |     r3 = 0x6ca82;
    0x0003629e ldr.w r2, [pc, 0x54c]                             |     
    0x000362a2 add r4, pc                                        |     r4 = 0x6ca8c;
    0x000362a4 ldr.w r8, [pc, 0x548]                             |     
    0x000362a8 strd r0, r1, [sp, 0x5c]                           |     __asm ("strd r0, r1, [var_60h]");
    0x000362ac add r6, pc                                        |     r6 = 0x6ca98;
    0x000362ae ldr.w sl, [pc, 0x544]                             |     
    0x000362b2 add r2, pc                                        |     r2 = 0x6caa4;
    0x000362b4 ldr.w r1, [pc, 0x540]                             |     
    0x000362b8 add r8, pc                                        |     r8 = 0x6caac;
    0x000362ba str r3, [sp, 0x40]                                |     var_40h = r3;
    0x000362bc mov r0, r6                                        |     r0 = r6;
    0x000362be str r3, [sp, 0x30]                                |     var_30h = r3;
    0x000362c0 movs r3, 0x10                                     |     r3 = 0x10;
    0x000362c2 str r4, [sp, 0x4c]                                |     var_4ch = r4;
    0x000362c4 add sl, pc                                        |     sl = 0x6cabe;
    0x000362c6 str r4, [sp]                                      |     *(sp) = r4;
    0x000362c8 movs r4, 0x18                                     |     r4 = 0x18;
    0x000362ca add r1, pc                                        |     r1 = 0x6cac6;
    0x000362cc str r2, [sp, 0x48]                                |     var_48h = r2;
    0x000362ce str r2, [sp, 0x18]                                |     var_18h = r2;
    0x000362d0 mov r2, r4                                        |     r2 = r4;
    0x000362d2 str.w r8, [sp, 0xc]                               |     __asm ("str.w r8, [var_ch]");
    0x000362d6 str r3, [sp, 8]                                   |     var_8h = r3;
    0x000362d8 str r5, [sp, 0x2c]                                |     var_2ch = r5;
    0x000362da movs r5, 0                                        |     r5 = 0;
    0x000362dc str.w sb, [sp, 0x14]                              |     __asm ("str.w sb, [var_14h]");
    0x000362e0 str r4, [sp, 0x10]                                |     var_10h = r4;
    0x000362e2 str r4, [sp, 4]                                   |     var_4h = r4;
    0x000362e4 str.w fp, [sp, 0x1c]                              |     __asm ("str.w fp, [var_1ch]");
    0x000362e8 str r1, [sp, 0x50]                                |     var_50h = r1;
    0x000362ea str.w sl, [sp, 0x24]                              |     __asm ("str.w sl, [var_24h]");
    0x000362ee str r4, [sp, 0x28]                                |     var_28h = r4;
    0x000362f0 str r4, [sp, 0x34]                                |     var_34h = r4;
    0x000362f2 str r7, [sp, 0x20]                                |     var_20h = r7;
    0x000362f4 str r7, [sp, 0x38]                                |     var_38h = r7;
    0x000362f6 str r5, [sp, 0x3c]                                |     var_3ch = r5;
    0x000362f8 blx 0xefd0                                        |     r0 = fcn_0000efd0 ();
    0x000362fc mov r2, r0                                        |     r2 = r0;
    0x000362fe ldr r0, [sp, 0x48]                                |     r0 = var_48h;
    0x00036300 ldr r3, [sp, 0x40]                                |     r3 = var_40h;
    0x00036302 ldr r1, [sp, 0x50]                                |     r1 = var_50h;
    0x00036304 strd sb, r0, [sp, 0x14]                           |     __asm ("strd sb, r0, [var_18h]");
    0x00036308 ldr r0, [sp, 0x4c]                                |     r0 = var_4ch;
    0x0003630a str r3, [sp, 0x30]                                |     var_30h = r3;
    0x0003630c movs r3, 0x10                                     |     r3 = 0x10;
    0x0003630e str r2, [sp, 0x4c]                                |     var_4ch = r2;
    0x00036310 mov.w r2, 0x3e80                                  |     r2 = 0x3e80;
    0x00036312 strh r2, [r7, r1]                                 |     *((r7 + r1)) = r2;
    0x00036314 str.w fp, [sp, 0x1c]                              |     __asm ("str.w fp, [var_1ch]");
    0x00036316 add sp, 0x70                                      |     
    0x00036318 str.w r8, [sp, 0xc]                               |     __asm ("str.w r8, [var_ch]");
    0x0003631c mov.w r8, 0x40                                    |     r8 = 0x40;
    0x00036320 str r0, [sp]                                      |     *(sp) = r0;
    0x00036322 mov r0, r6                                        |     r0 = r6;
    0x00036324 strd r4, r3, [sp, 4]                              |     __asm ("strd r4, r3, [var_8h]");
    0x00036326 orrs r1, r0                                       |     r1 |= r0;
    0x00036328 str r2, [sp, 0x2c]                                |     var_2ch = r2;
    0x0003632a mov r2, r4                                        |     r2 = r4;
    0x0003632c strd sl, r4, [sp, 0x24]                           |     __asm ("strd sl, r4, [var_24h]");
    0x00036330 str r7, [sp, 0x20]                                |     var_20h = r7;
    0x00036332 str r4, [sp, 0x10]                                |     var_10h = r4;
    0x00036334 ldr.w fp, [pc, 0x4c4]                             |     
    0x00036336 push {r2, r6, r7}                                 |     
    0x00036338 ldr.w r6, [pc, 0x4c4]                             |     
    0x0003633c ldr.w sb, [pc, 0x4c4]                             |     
    0x00036340 strd r7, r5, [sp, 0x38]                           |     __asm ("strd r7, r5, [var_38h]");
    0x00036344 add fp, pc                                        |     fp = "Refusing to start after halt.";
    0x00036346 str r4, [sp, 0x34]                                |     var_34h = r4;
    0x00036348 add r6, pc                                        |     r6 = 0x6cb4c;
    0x0003634a blx 0xefd0                                        |     fcn_0000efd0 ();
    0x0003634e ldr r3, [sp, 0x40]                                |     r3 = var_40h;
    0x00036350 add sb, pc                                        |     sb = 0x6cb58;
    0x00036352 ldr.w r2, [pc, 0x4b4]                             |     
    0x00036356 mov r1, sl                                        |     r1 = sl;
    0x00036358 str r0, [sp, 0x58]                                |     var_58h = r0;
    0x0003635a mov r0, sb                                        |     r0 = sb;
    0x0003635c str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0003635e movw r3, 0x5dc0                                   |     r3 = 0x5dc0;
    0x00036362 add r2, pc                                        |     r2 = 0x6cb70;
    0x00036364 str.w r8, [sp, 0x1c]                              |     __asm ("str.w r8, [var_1ch]");
    0x00036368 str r2, [sp, 0x48]                                |     var_48h = r2;
    0x0003636a str r2, [sp]                                      |     *(sp) = r2;
    0x0003636c mov r2, r4                                        |     r2 = r4;
    0x0003636e str r3, [sp, 8]                                   |     var_8h = r3;
    0x00036370 mov.w r3, 0x1f40                                  |     r3 = 0x1f40;
    0x00036374 str r5, [sp, 0x24]                                |     var_24h = r5;
    0x00036376 str.w fp, [sp, 0x20]                              |     __asm ("str.w fp, [var_20h]");
    0x00036378 add sp, 0x80                                      |     
    0x0003637a strd r7, r6, [sp, 0x14]                           |     __asm ("strd r7, r6, [var_18h]");
    0x0003637e str r4, [sp, 0x10]                                |     var_10h = r4;
    0x00036380 str r4, [sp, 4]                                   |     var_4h = r4;
    0x00036382 blx 0xefd0                                        |     fcn_0000efd0 ();
    0x00036386 ldr r1, [sp, 0x40]                                |     r1 = var_40h;
    0x00036388 mov r2, r0                                        |     r2 = r0;
    0x0003638a ldr r0, [sp, 0x48]                                |     r0 = var_48h;
    0x0003638c mov.w r3, 0x1f40                                  |     r3 = 0x1f40;
    0x00036390 str r2, [sp, 0x54]                                |     var_54h = r2;
    0x00036392 mov.w r2, 0x7d00                                  |     r2 = 0x7d00;
    0x00036394 cmn r2, r7                                        |     
    0x00036396 strd r6, r8, [sp, 0x18]                           |     __asm ("strd r6, r8, [var_18h]");
    0x0003639a str r0, [sp]                                      |     *(sp) = r0;
    0x0003639c mov r0, sb                                        |     r0 = sb;
    0x0003639e str r1, [sp, 0xc]                                 |     var_ch = r1;
    0x000363a0 mov r1, sl                                        |     r1 = sl;
    0x000363a2 str r2, [sp, 8]                                   |     var_8h = r2;
    0x000363a4 mov r2, r4                                        |     r2 = r4;
    0x000363a6 str.w fp, [sp, 0x20]                              |     __asm ("str.w fp, [var_20h]");
    0x000363aa str r5, [sp, 0x24]                                |     var_24h = r5;
    0x000363ac strd r4, r7, [sp, 0x10]                           |     __asm ("strd r4, r7, [var_14h]");
    0x000363b0 str r4, [sp, 4]                                   |     var_4h = r4;
    0x000363b2 blx 0xefd0                                        |     fcn_0000efd0 ();
    0x000363b6 ldr r3, [sp, 0x90]                                |     r3 = *(arg_90h);
    0x000363b8 mov r2, r8                                        |     r2 = r8;
    0x000363ba ldr r1, [sp, 0x40]                                |     r1 = var_40h;
    0x000363bc str r0, [sp, 0x50]                                |     var_50h = r0;
    0x000363be str r3, [sp, 8]                                   |     var_8h = r3;
    0x000363c0 ldr.w r3, [pc, 0x448]                             |     
    0x000363c2 adds r4, 0x48                                     |     r4 += 0x48;
    0x000363c4 str r1, [sp, 0xc]                                 |     var_ch = r1;
    0x000363c6 ldr.w r0, [pc, 0x448]                             |     
    0x000363ca add r3, pc                                        |     r3 = 0x6cbda;
    0x000363cc ldr.w r1, [pc, 0x444]                             |     
    0x000363d0 str r3, [sp, 0x20]                                |     var_20h = r3;
    0x000363d2 ldr.w r3, [pc, 0x444]                             |     
    0x000363d6 add r0, pc                                        |     r0 = 0x6cbec;
    0x000363d8 add r1, pc                                        |     r1 = "Refusing to reset after stop.";
    0x000363da str.w r8, [sp, 0x1c]                              |     __asm ("str.w r8, [var_1ch]");
    0x000363dc strh r4, [r3]                                     |     *(r3) = r4;
    0x000363de str r6, [sp, 0x18]                                |     var_18h = r6;
    0x000363e0 add r3, pc                                        |     r3 = 0x6cbfe;
    0x000363e2 str.w sl, [sp]                                    |     __asm ("str.w sl, [sp]");
    0x000363e6 str r5, [sp, 0x24]                                |     var_24h = r5;
    0x000363e8 strd r4, r7, [sp, 0x10]                           |     __asm ("strd r4, r7, [var_14h]");
    0x000363ea bx r0                                             |     return uint32_t (*r0)() ();
    0x000363ec str r4, [sp, 4]                                   |     var_4h = r4;
    0x000363ee blx 0xefd0                                        |     r0 = fcn_0000efd0 ();
    0x000363f2 mov r8, r0                                        |     r8 = r0;
    0x000363f4 ldr.w r0, [pc, 0x424]                             |     
    0x000363f8 add r0, pc                                        |     r0 = 0x6cc18;
    0x000363fa blx 0xecf0                                        |     g_variant_ref_sink ();
    0x000363fe str r0, [sp, 0x40]                                |     var_40h = r0;
    0x00036400 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00036402 beq.w 0x3671e                                     |         goto label_9;
                                                                 |     }
    0x00036406 ldr.w r0, [pc, 0x418]                             |     
    0x0003640a mov r1, r5                                        |     r1 = r5;
    0x0003640c add r0, pc                                        |     r0 = 0x6cc32;
    0x0003640e blx 0x100a4                                       |     r0 = fcn_000100a4 ();
    0x00036412 mov r4, r0                                        |     r4 = r0;
    0x00036414 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00036416 beq.w 0x3673c                                     |         goto label_10;
                                                                 |     }
    0x0003641a movs r1, 0x50                                     |     r1 = 0x50;
    0x0003641c blx 0xe18c                                        |     cert_set_init ();
    0x00036420 ldr r3, [sp, 0x60]                                |     r3 = var_60h;
    0x00036422 str r5, [sp, 0x10]                                |     var_10h = r5;
    0x00036424 str r3, [sp]                                      |     *(sp) = r3;
    0x00036426 ldr r3, [sp, 0x5c]                                |     r3 = var_5ch;
    0x00036428 ldrd r6, r2, [r3, 0x30]                           |     __asm ("ldrd r6, r2, [r3, 0x30]");
    0x0003642c ldr r3, [pc, 0x3f4]                               |     
    0x0003642e lsls r1, r2, 5                                    |     r1 = r2 << 5;
    0x00036430 add r3, pc                                        |     r3 = 0x6cc58;
    0x00036432 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00036434 lsls r3, r6, 5                                    |     r3 = r6 << 5;
    0x00036436 orr.w r1, r1, r6, lsr 27                          |     r1 |= (r6 >> 27);
    0x0003643a subs r3, r3, r6                                   |     r3 -= r6;
    0x0003643c sbc.w r1, r1, r2                                  |     __asm ("sbc.w r1, r1, r2");
    0x00036440 lsls r1, r1, 2                                    |     r1 <<= 2;
    0x00036442 orr.w r1, r1, r3, lsr 30                          |     r1 |= (r3 >> 30);
    0x00036444 strb r3, [r2, 6]                                  |     *((r2 + 6)) = r3;
    0x00036446 lsls r3, r3, 2                                    |     r3 <<= 2;
    0x00036448 adds r3, r3, r6                                   |     r3 += r6;
    0x0003644a adc.w r2, r2, r1                                  |     __asm ("adc.w r2, r2, r1");
    0x0003644e ldr r1, [pc, 0x3d8]                               |     
    0x00036450 lsls r2, r2, 3                                    |     r2 <<= 3;
    0x00036452 orr.w r2, r2, r3, lsr 29                          |     r2 |= (r3 >> 29);
    0x00036456 lsls r3, r3, 3                                    |     r3 <<= 3;
    0x00036458 str r3, [sp, 8]                                   |     var_8h = r3;
    0x0003645a add r1, pc                                        |     r1 = "PLAY";
    0x0003645c ldr r3, [pc, 0x3cc]                               |     
    0x0003645e str r2, [sp, 0xc]                                 |     var_ch = r2;
    0x00036460 mov.w r2, 0x1000                                  |     r2 = 0x1000;
    0x00036464 add r3, pc                                        |     r3 = 0x6cc94;
    0x00036466 blx 0xf4fc                                        |     fcn_0000f4fc ();
    0x00036468 strex r7, pc, [sl, 0x360]                         |     __asm ("strex r7, pc, aav.0x000000ff");
    0x0003646c ldrd r4, r6, [sl, 4]                              |     __asm ("ldrd r4, r6, [sl, 4]");
    0x00036470 mov r0, r4                                        |     r0 = r4;
    0x00036472 blx 0xe18c                                        |     cert_set_init ();
    0x00036476 mov r1, r7                                        |     r1 = r7;
    0x00036478 blx 0xf708                                        |     fcn_0000f708 ();
    0x0003647c ldr r0, [pc, 0x3b0]                               |     
    0x0003647e mov r1, r5                                        |     r1 = r5;
    0x00036480 add r0, pc                                        |     r0 = 0x6ccb4;
    0x00036482 blx 0x100a4                                       |     r0 = fcn_000100a4 ();
    0x00036486 mov r6, r0                                        |     r6 = r0;
    0x00036488 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0003648a beq.w 0x3672a                                     |         goto label_11;
                                                                 |     }
    0x0003648e ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x00036490 cmp r3, 3                                         |     
                                                                 |     if (r3 == 3) {
    0x00036492 beq.w 0x366d8                                     |         goto label_12;
                                                                 |     }
    0x00036496 ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x00036498 cmp r3, 4                                         |     
                                                                 |     if (r3 == 4) {
    0x0003649a beq.w 0x366b0                                     |         goto label_13;
                                                                 |     }
    0x0003649e ldr r0, [pc, 0x394]                               |     
    0x000364a0 mov r1, r5                                        |     r1 = r5;
    0x000364a2 add r0, pc                                        |     r0 = 0x6ccdc;
    0x000364a4 blx 0x100a4                                       |     fcn_000100a4 ();
    0x000364a6 ldcl p6, c4, [lr, 0x204]!                         |     __asm ("ldcl p6, c4, aav.0x000000ff!");
    0x000364aa cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000364ac beq.w 0x367a2                                     |         goto label_14;
                                                                 |     }
    0x000364b0 ldr r3, [sp, 0x64]                                |     r3 = var_64h;
    0x000364b2 movs r1, 0x50                                     |     r1 = 0x50;
    0x000364b4 mov r0, r6                                        |     r0 = r6;
    0x000364b6 cmp.w r3, 0x3e80                                  |     
                                                                 |     if (r3 == 0x3e80) {
    0x000364ba beq.w 0x36700                                     |         goto label_15;
                                                                 |     }
    0x000364be blx 0xe18c                                        |     cert_set_init ();
    0x000364c2 ldr r1, [pc, 0x374]                               |     
    0x000364c4 mov r3, r5                                        |     r3 = r5;
    0x000364c6 ldr r2, [sp, 0x4c]                                |     r2 = var_4ch;
    0x000364c8 add r1, pc                                        |     r1 = 0x6cd06;
    0x000364ca blx 0xf4fc                                        |     fcn_0000f4fc ();
    0x000364ce ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x000364d0 cmp r3, 1                                         |     
                                                                 |     if (r3 != 1) {
    0x000364d2 bne.w 0x36718                                     |         goto label_16;
                                                                 |     }
                                                                 | label_3:
    0x000364d6 ldr r0, [pc, 0x364]                               |     
    0x000364d8 movs r1, 0                                        |     r1 = 0;
    0x000364da add r0, pc                                        |     r0 = 0x6cd1c;
    0x000364dc blx 0x100a4                                       |     r0 = fcn_000100a4 ();
    0x000364e0 mov fp, r0                                        |     
    0x000364e2 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000364e4 beq.w 0x367ae                                     |         goto label_17;
                                                                 |     }
    0x000364e8 movs r1, 0x50                                     |     r1 = 0x50;
    0x000364ea blx 0xe18c                                        |     cert_set_init ();
    0x000364ee ldr r3, [sp, 0x64]                                |     r3 = var_64h;
    0x000364f0 ldr r1, [pc, 0x34c]                               |     
    0x000364f2 str r3, [sp]                                      |     *(sp) = r3;
    0x000364f4 ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x000364f6 add r1, pc                                        |     r1 = 0x6cd3a;
    0x000364f8 mov r2, r3                                        |     r2 = r3;
    0x000364fa str r3, [sp, 8]                                   |     var_8h = r3;
    0x000364fc ldr r3, [pc, 0x344]                               |     
    0x000364fe add r3, pc                                        |     r3 = 0x6cd46;
    0x00036500 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00036502 movs r3, 0                                        |     r3 = 0;
    0x00036504 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x00036506 ldr r3, [pc, 0x340]                               |     
    0x00036508 add r3, pc                                        |     r3 = 0x6cd56;
    0x0003650a blx 0xf4fc                                        |     fcn_0000f4fc ();
                                                                 | label_2:
    0x0003650e ldr r0, [pc, 0x33c]                               |     
    0x00036510 movs r1, 0                                        |     r1 = 0;
    0x00036512 add r0, pc                                        |     r0 = 0x6cd64;
    0x00036514 blx 0x100a4                                       |     fcn_000100a4 ();
    0x00036516 stcl p0, c9, [r6, 0x44]                           |     __asm ("stcl p0, c9, [r6, 0x44]");
    0x0003651a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0003651c beq.w 0x36748                                     |         goto label_18;
                                                                 |     }
    0x00036520 movs r1, 0x50                                     |     r1 = 0x50;
    0x00036522 blx 0xe18c                                        |     cert_set_init ();
    0x00036526 ldr r1, [pc, 0x328]                               |     
    0x00036528 movs r3, 0                                        |     r3 = 0;
    0x0003652a mov r2, r8                                        |     r2 = r8;
    0x0003652c add r1, pc                                        |     r1 = 0x6cd82;
    0x0003652e blx 0xf4fc                                        |     fcn_0000f4fc ();
    0x00036532 ldr r0, [pc, 0x320]                               |     
    0x00036534 movs r1, 0                                        |     r1 = 0;
    0x00036536 add r0, pc                                        |     r0 = 0x6cd90;
    0x00036538 blx 0x100a4                                       |     fcn_000100a4 ();
    0x0003653c str r0, [sp, 0x48]                                |     var_48h = r0;
    0x0003653e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00036540 beq.w 0x3676c                                     |         goto label_19;
                                                                 |     }
    0x00036544 movs r1, 0x50                                     |     r1 = 0x50;
    0x00036546 mov.w sl, 0                                       |     sl = 0;
    0x0003654a blx 0xe18c                                        |     cert_set_init ();
    0x0003654e movs r3, 1                                        |     r3 = 1;
    0x00036550 ldr r1, [pc, 0x304]                               |     
    0x00036552 strd r3, sl, [sp]                                 |     __asm ("strd r3, sl, [sp]");
    0x00036556 mov r2, sl                                        |     r2 = sl;
    0x00036558 ldr r3, [pc, 0x300]                               |     
    0x0003655a add r1, pc                                        |     r1 = 0x6cdb6;
    0x0003655c add r3, pc                                        |     r3 = 0x6cdbc;
    0x0003655e blx 0xf4fc                                        |     fcn_0000f4fc ();
    0x00036562 ldr r0, [pc, 0x2fc]                               |     
    0x00036564 mov r1, sl                                        |     r1 = sl;
    0x00036566 add r0, pc                                        |     r0 = "basebuffer-unique-id";
    0x00036568 blx 0x100a4                                       |     r0 = fcn_000100a4 ();
    0x0003656c mov r7, r0                                        |     r7 = r0;
    0x0003656e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00036570 beq.w 0x3677e                                     |         goto label_20;
                                                                 |     }
    0x00036574 ldr r1, [pc, 0x2ec]                               |     
    0x00036576 ldr r0, [pc, 0x2f0]                               |     
    0x00036578 add r1, pc                                        |     r1 = 0x6cde0;
    0x0003657a add r0, pc                                        |     r0 = 0x6cde8;
    0x0003657c blx 0x100a4                                       |     r0 = fcn_000100a4 ();
    0x00036580 mov r5, r0                                        |     r5 = r0;
    0x00036582 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00036584 beq.w 0x36790                                     |         goto label_21;
                                                                 |     }
    0x00036588 movs r1, 0x50                                     |     r1 = 0x50;
    0x0003658a blx 0xe18c                                        |     cert_set_init ();
    0x0003658e ldr r1, [pc, 0x2dc]                               |     
    0x00036590 mov r3, sl                                        |     r3 = sl;
    0x00036592 ldr r2, [sp, 0x94]                                |     r2 = *(arg_94h);
    0x00036594 add r1, pc                                        |     r1 = 0x6ce06;
    0x00036596 blx 0xf4fc                                        |     fcn_0000f4fc ();
    0x0003659a ldr r3, [sp, 0x98]                                |     r3 = *(arg_98h);
    0x0003659c movs r1, 0x50                                     |     r1 = 0x50;
    0x0003659e mov r0, r5                                        |     r0 = r5;
    0x000365a0 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000365a2 beq 0x36626                                       |         goto label_22;
                                                                 |     }
    0x000365a4 blx 0xe18c                                        |     cert_set_init ();
    0x000365a8 ldr r1, [pc, 0x2c4]                               |     
    0x000365aa mov r3, sl                                        |     r3 = sl;
    0x000365ac mov r2, sl                                        |     r2 = sl;
    0x000365ae add r1, pc                                        |     r1 = 0x6ce22;
    0x000365b0 blx 0xf4fc                                        |     fcn_0000f4fc ();
    0x000365b4 cmp.w fp, 0                                       |     
                                                                 |     if (fp == 0) {
    0x000365b8 beq 0x36642                                       |         goto label_23;
                                                                 |     }
                                                                 |     do {
    0x000365ba mov r0, r6                                        |         r0 = r6;
    0x000365bc movs r6, 0                                        |         r6 = 0;
    0x000365be blx 0xdff8                                        |         fcn_0000dff8 ();
    0x000365c2 blx 0xf4a4                                        |         r0 = fcn_0000f4a4 ();
    0x000365c6 mov r1, r0                                        |         r1 = r0;
    0x000365c8 ldr r0, [sp, 0x40]                                |         r0 = var_40h;
    0x000365ca blx 0xe18c                                        |         cert_set_init ();
    0x000365ce ldr r3, [sp, 0x44]                                |         r3 = var_44h;
    0x000365d0 mov r2, fp                                        |         r2 = fp;
    0x000365d2 ldr r1, [sp, 0x48]                                |         r1 = var_48h;
    0x000365d4 strd r5, r6, [sp, 0xc]                            |         __asm ("strd r5, r6, [var_ch]");
    0x000365d8 str r3, [sp, 4]                                   |         var_4h = r3;
    0x000365da mov r3, sb                                        |         r3 = sb;
    0x000365dc str r1, [sp]                                      |         *(sp) = r1;
    0x000365de mov r1, r4                                        |         r1 = r4;
    0x000365e0 str r7, [sp, 8]                                   |         var_8h = r7;
    0x000365e2 blx 0xfb30                                        |         g_date_time_unref ();
    0x000365e6 ldr r2, [sp, 0x44]                                |         r2 = var_44h;
    0x000365e8 mov r1, fp                                        |         r1 = fp;
    0x000365ea ldr r3, [sp, 0x48]                                |         r3 = var_48h;
    0x000365ec mov r0, r4                                        |         r0 = r4;
    0x000365ee strd r5, r6, [sp, 8]                              |         __asm ("strd r5, r6, [var_ch]");
    0x000365f2 str r2, [sp]                                      |         *(sp) = r2;
    0x000365f4 mov r2, sb                                        |         r2 = sb;
    0x000365f6 str r7, [sp, 4]                                   |         var_4h = r7;
    0x000365f8 blx 0xdac8                                        |         r0 = fcn_0000dac8 ();
    0x000365fc cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000365fe beq 0x36680                                       |             goto label_24;
                                                                 |         }
                                                                 | label_0:
    0x00036600 ldr r0, [sp, 0x4c]                                |         r0 = var_4ch;
    0x00036602 blx 0xf5ec                                        |         fcn_0000f5ec ();
    0x00036606 ldr r0, [sp, 0x58]                                |         r0 = var_58h;
    0x00036608 blx 0xf5ec                                        |         fcn_0000f5ec ();
    0x0003660c ldr r0, [sp, 0x54]                                |         r0 = var_54h;
    0x0003660e blx 0xf5ec                                        |         fcn_0000f5ec ();
    0x00036612 ldr r0, [sp, 0x50]                                |         r0 = var_50h;
    0x00036614 blx 0xf5ec                                        |         fcn_0000f5ec ();
    0x00036616 vmlsl.s32 q10, d10, d0[0]                         |         __asm ("vmlsl.s32 q10, d10, d0[0]");
    0x0003661a blx 0xf5ec                                        |         fcn_0000f5ec ();
                                                                 | label_1:
    0x0003661e ldr r0, [sp, 0x40]                                |         r0 = var_40h;
    0x00036620 add sp, 0x6c                                      |         
    0x00036622 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_22:
    0x00036626 blx 0xe18c                                        |         cert_set_init ();
    0x0003662a ldr r3, [sp, 0x98]                                |         r3 = *(arg_98h);
    0x0003662c ldr r1, [pc, 0x244]                               |         
    0x0003662e str r3, [sp]                                      |         *(sp) = r3;
    0x00036630 add r1, pc                                        |         r1 = 0x6cea8;
    0x00036632 adr r3, 0x1a4                                     |         r3 = 0x1a4;
    0x00036634 ldrd r2, r3, [r3]                                 |         __asm ("ldrd r2, r3, [r3]");
    0x00036638 blx 0xf4fc                                        |         fcn_0000f4fc ();
    0x0003663c cmp.w fp, 0                                       |         
    0x00036640 bne 0x365ba                                       |         
                                                                 |     } while (fp != 0);
                                                                 | label_23:
    0x00036642 blx 0xf4a4                                        |     r0 = fcn_0000f4a4 ();
    0x00036646 mov r1, r0                                        |     r1 = r0;
    0x00036648 ldr r0, [sp, 0x40]                                |     r0 = var_40h;
    0x0003664a blx 0xe18c                                        |     cert_set_init ();
    0x0003664e ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x00036650 mov r2, r6                                        |     r2 = r6;
    0x00036652 ldr r1, [sp, 0x48]                                |     r1 = var_48h;
    0x00036654 strd r5, fp, [sp, 0xc]                            |     __asm ("strd r5, fp, [var_0hxc]");
    0x00036658 str r3, [sp, 4]                                   |     var_4h = r3;
    0x0003665a mov r3, sb                                        |     r3 = sb;
    0x0003665c str r1, [sp]                                      |     *(sp) = r1;
    0x0003665e mov r1, r4                                        |     r1 = r4;
    0x00036660 str r7, [sp, 8]                                   |     var_8h = r7;
    0x00036662 blx 0xfb30                                        |     g_date_time_unref ();
    0x00036666 ldr r2, [sp, 0x44]                                |     r2 = var_44h;
    0x00036668 mov r1, r6                                        |     r1 = r6;
    0x0003666a ldr r3, [sp, 0x48]                                |     r3 = var_48h;
    0x0003666c mov r0, r4                                        |     r0 = r4;
    0x0003666e strd r5, fp, [sp, 8]                              |     __asm ("strd r5, fp, [var_ch]");
    0x00036672 str r2, [sp]                                      |     *(sp) = r2;
    0x00036674 mov r2, sb                                        |     r2 = sb;
    0x00036676 str r7, [sp, 4]                                   |     var_4h = r7;
    0x00036678 blx 0xdac8                                        |     r0 = fcn_0000dac8 ();
    0x0003667c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0003667e bne 0x36600                                       |         goto label_0;
                                                                 |     }
                                                                 | label_24:
    0x00036680 ldr r2, [pc, 0x1f4]                               |     
    0x00036682 movs r1, 0x20                                     |     r1 = 0x20;
    0x00036684 movs r0, 0                                        |     r0 = 0;
    0x00036686 add r2, pc                                        |     r2 = 0x6cf02;
    0x00036688 blx 0xe318                                        |     gst_element_error_printf ()
                                                                 | label_4:
    0x0003668c ldr r0, [sp, 0x4c]                                |     r0 = var_4ch;
    0x0003668e blx 0xf5ec                                        |     fcn_0000f5ec ();
    0x00036692 ldr r0, [sp, 0x58]                                |     r0 = var_58h;
    0x00036694 blx 0xf5ec                                        |     fcn_0000f5ec ();
    0x00036698 ldr r0, [sp, 0x54]                                |     r0 = var_54h;
    0x0003669a blx 0xf5ec                                        |     fcn_0000f5ec ();
    0x0003669c vshrn.i64 d9, q2, 0x18                            |     __asm ("vshrn.i64 d9, q2, 0x18");
    0x000366a0 blx 0xf5ec                                        |     fcn_0000f5ec ();
    0x000366a4 ldr r0, [sp, 0x40]                                |     r0 = var_40h;
    0x000366a6 movs r3, 0                                        |     r3 = 0;
    0x000366a8 str r3, [sp, 0x40]                                |     var_40h = r3;
    0x000366aa blx 0xdff8                                        |     fcn_0000dff8 ();
    0x000366ae b 0x3661e                                         |     goto label_1;
                                                                 | label_13:
    0x000366b0 ldr r0, [pc, 0x1c8]                               |     
    0x000366b2 mov r1, r5                                        |     r1 = r5;
    0x000366b4 add r0, pc                                        |     r0 = 0x6cf34;
    0x000366b6 blx 0x100a4                                       |     r0 = fcn_000100a4 ();
    0x000366ba mov sb, r0                                        |     sb = r0;
    0x000366bc cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000366be beq 0x367ba                                       |         goto label_25;
                                                                 |     }
    0x000366c0 movs r1, 0x50                                     |     r1 = 0x50;
    0x000366c2 mov r0, r6                                        |     r0 = r6;
    0x000366c4 blx 0xe18c                                        |     cert_set_init ();
    0x000366c8 ldr r1, [pc, 0x1b4]                               |     
    0x000366ca mov r3, r5                                        |     r3 = r5;
    0x000366cc ldr r2, [sp, 0x50]                                |     r2 = var_50h;
    0x000366ce mov fp, r5                                        |     
    0x000366d0 add r1, pc                                        |     r1 = 0x6cf54;
    0x000366d2 blx 0xf4fc                                        |     fcn_0000f4fc ();
    0x000366d6 b 0x3650e                                         |     goto label_2;
                                                                 | label_12:
    0x000366d8 ldr r0, [pc, 0x1a8]                               |     
    0x000366da mov r1, r5                                        |     r1 = r5;
    0x000366dc add r0, pc                                        |     r0 = 0x6cf64;
    0x000366de blx 0x100a4                                       |     r0 = fcn_000100a4 ();
    0x000366e2 mov sb, r0                                        |     sb = r0;
    0x000366e4 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000366e6 beq 0x367c6                                       |         goto label_26;
                                                                 |     }
    0x000366e8 movs r1, 0x50                                     |     r1 = 0x50;
    0x000366ea mov r0, r6                                        |     r0 = r6;
    0x000366ec blx 0xe18c                                        |     cert_set_init ();
    0x000366f0 ldr r1, [pc, 0x194]                               |     
    0x000366f2 mov r3, r5                                        |     r3 = r5;
    0x000366f4 ldr r2, [sp, 0x54]                                |     r2 = var_54h;
    0x000366f6 mov fp, r5                                        |     
    0x000366f8 add r1, pc                                        |     r1 = 0x6cf84;
    0x000366fa blx 0xf4fc                                        |     fcn_0000f4fc ();
    0x000366fe b 0x3650e                                         |     goto label_2;
                                                                 | label_15:
    0x00036700 blx 0xe18c                                        |     cert_set_init ();
    0x00036704 ldr r1, [pc, 0x184]                               |     
    0x00036706 mov r3, r5                                        |     r3 = r5;
    0x00036708 ldr r2, [sp, 0x58]                                |     r2 = var_58h;
    0x0003670a add r1, pc                                        |     r1 = 0x6cf9a;
    0x0003670c blx 0xf4fc                                        |     fcn_0000f4fc ();
    0x00036710 ldr r3, [sp, 0x44]                                |     r3 = var_44h;
    0x00036712 cmp r3, 1                                         |     
                                                                 |     if (r3 == 1) {
    0x00036714 beq.w 0x364d6                                     |         goto label_3;
                                                                 |     }
    0x00036716 add r6, sp, 0x37c                                 |     r6 = sp + 0x37c;
                                                                 | label_16:
    0x00036718 mov.w fp, 0                                       |     
    0x0003671c b 0x3650e                                         |     goto label_2;
                                                                 | label_9:
    0x0003671e ldr r2, [pc, 0x170]                               |     
    0x00036720 movs r1, 0x20                                     |     r1 = 0x20;
    0x00036722 add r2, pc                                        |     r2 = "Could not add h264sei to pipeline.";
    0x00036724 blx 0xe318                                        |     gst_element_error_printf ()
    0x00036728 b 0x3668c                                         |     goto label_4;
                                                                 | label_11:
    0x0003672a ldr r2, [pc, 0x168]                               |     
    0x0003672c movs r1, 0x20                                     |     r1 = 0x20;
    0x0003672e add r2, pc                                        |     r2 = 0x6cfc8;
    0x00036730 blx 0xe318                                        |     gst_element_error_printf ()
                                                                 |     do {
    0x00036734 mov r0, r4                                        |         r0 = r4;
    0x00036736 blx 0xdff8                                        |         fcn_0000dff8 ();
    0x0003673a b 0x3668c                                         |         goto label_4;
                                                                 | label_10:
    0x0003673c ldr r2, [pc, 0x158]                               |         
    0x0003673e movs r1, 0x20                                     |         r1 = 0x20;
    0x00036740 add r2, pc                                        |         r2 = "HardwareID";
    0x00036742 blx 0xe318                                        |         gst_element_error_printf ()
    0x00036746 b 0x3668c                                         |         goto label_4;
                                                                 | label_18:
    0x00036748 ldr r2, [pc, 0x150]                               |         
    0x0003674a movs r1, 0x20                                     |         r1 = 0x20;
    0x0003674c add r2, pc                                        |         r2 = 0x6cfec;
    0x0003674e blx 0xe318                                        |         gst_element_error_printf ()
                                                                 | label_5:
    0x00036752 cmp.w fp, 0                                       |         
                                                                 |         if (fp != 0) {
    0x00036756 beq 0x3675e                                       |             
    0x00036758 mov r0, fp                                        |             r0 = fp;
    0x0003675a blx 0xdff8                                        |             fcn_0000dff8 ();
                                                                 |         }
                                                                 | label_8:
    0x0003675e mov r0, sb                                        |         r0 = sb;
    0x00036760 blx 0xdff8                                        |         fcn_0000dff8 ();
                                                                 | label_7:
    0x00036764 mov r0, r6                                        |         r0 = r6;
    0x00036766 blx 0xdff8                                        |         fcn_0000dff8 ();
    0x0003676a b 0x36734                                         |         
                                                                 |     } while (1);
                                                                 | label_19:
    0x0003676c ldr r2, [pc, 0x130]                               |     
    0x0003676e movs r1, 0x20                                     |     r1 = 0x20;
    0x00036770 add r2, pc                                        |     r2 = 0x6d014;
    0x00036772 blx 0xe318                                        |     gst_element_error_printf ()
                                                                 |     do {
    0x00036776 ldr r0, [sp, 0x44]                                |         r0 = var_44h;
    0x00036778 blx 0xdff8                                        |         fcn_0000dff8 ();
    0x0003677c b 0x36752                                         |         goto label_5;
                                                                 | label_20:
    0x0003677e ldr r2, [pc, 0x124]                               |         
    0x00036780 movs r1, 0x20                                     |         r1 = 0x20;
    0x00036782 add r2, pc                                        |         r2 = "<4>No Serial number was available.";
    0x00036784 blx 0xe318                                        |         gst_element_error_printf ()
                                                                 | label_6:
    0x00036788 ldr r0, [sp, 0x48]                                |         r0 = var_48h;
    0x0003678a blx 0xdff8                                        |         fcn_0000dff8 ();
    0x0003678e b 0x36776                                         |         
                                                                 |     } while (1);
                                                                 | label_21:
    0x00036790 ldr r2, [pc, 0x114]                               |     
    0x00036792 movs r1, 0x20                                     |     r1 = 0x20;
    0x00036794 add r2, pc                                        |     r2 = 0x6d040;
    0x00036796 blx 0xe318                                        |     gst_element_error_printf ()
    0x0003679a mov r0, r7                                        |     r0 = r7;
    0x0003679c blx 0xdff8                                        |     fcn_0000dff8 ();
    0x000367a0 b 0x36788                                         |     goto label_6;
                                                                 | label_14:
    0x000367a2 ldr r2, [pc, 0x108]                               |     
    0x000367a4 movs r1, 0x20                                     |     r1 = 0x20;
    0x000367a6 add r2, pc                                        |     r2 = 0x6d058;
    0x000367a8 blx 0xe318                                        |     gst_element_error_printf ()
    0x000367ac b 0x36764                                         |     goto label_7;
                                                                 | label_17:
    0x000367ae ldr r2, [pc, 0x100]                               |     
    0x000367b0 movs r1, 0x20                                     |     r1 = 0x20;
    0x000367b2 add r2, pc                                        |     r2 = 0x6d068;
    0x000367b4 blx 0xe318                                        |     gst_element_error_printf ()
    0x000367b8 b 0x3675e                                         |     goto label_8;
                                                                 | label_25:
    0x000367ba ldr r2, [pc, 0xf8]                                |     
    0x000367bc movs r1, 0x20                                     |     r1 = 0x20;
    0x000367be add r2, pc                                        |     r2 = "firmware-version";
    0x000367c0 blx 0xe318                                        |     gst_element_error_printf ()
    0x000367c4 b 0x36764                                         |     goto label_7;
                                                                 | label_26:
    0x000367c6 ldr r2, [pc, 0xf0]                                |     
    0x000367c8 movs r1, 0x20                                     |     r1 = 0x20;
    0x000367ca add r2, pc                                        |     r2 = 0x6d088;
    0x000367cc blx 0xe318                                        |     gst_element_error_printf ()
    0x000367d0 b 0x36764                                         |     goto label_7;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x38cc4 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define SWAP32(n) ((uint32_t) (((n & 0x000000ff) << 24) | \
                                                                 |                                ((n & 0x0000ff00) <<  8) | \
                                                                 |                                ((n & 0x00ff0000) >>  8) | \
                                                                 |                                ((n & 0xff000000) >> 24)))
                                                                 |  
    ; (fcn) fcn.00038cc4 ()                                      | void fcn_00038cc4 (int16_t arg1) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_0h_2;
                                                                 |     int16_t var_8h;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_10h_2;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_30h;
                                                                 |     int16_t var_34h;
                                                                 |     int16_t var_38h;
                                                                 |     int16_t var_3ch;
                                                                 |     int32_t var_3ch_2;
                                                                 |     int16_t var_44h;
                                                                 |     int16_t var_48h;
                                                                 |     int16_t var_4ch;
                                                                 |     r0 = arg1;
    0x00038cc4 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00038cc8 movs r2, 0                                        |     r2 = 0;
    0x00038cca sub sp, 0x54                                      |     
    0x00038ccc mov r4, r0                                        |     r4 = r0;
    0x00038cce add r3, sp, 0x30                                  |     r3 += var_30h;
    0x00038cd0 mov r0, r2                                        |     r0 = r2;
    0x00038cd2 bl 0x64e8c                                        |     fcn_00064e8c (r0, r1, r2, r3, r4);
    0x00038cd6 ldr r0, [sp, 0x30]                                |     r0 = var_30h;
    0x00038cd8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00038cda beq.w 0x38f0e                                     |         goto label_9;
                                                                 |     }
    0x00038cde ldr r1, [pc, 0x31c]                               |     
    0x00038ce0 add r1, pc                                        |     r1 = 0x71ce2;
    0x00038ce2 blx 0xefb8                                        |     r0 = fcn_0000efb8 ();
    0x00038ce6 mov r6, r0                                        |     r6 = r0;
    0x00038ce8 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00038cea beq.w 0x38efe                                     |         
    0x00038cee ldr r0, [pc, 0x310]                               |         
    0x00038cf0 mov r3, r4                                        |         r3 = r4;
    0x00038cf2 ldr r1, [sp, 0x30]                                |         r1 = var_30h;
    0x00038cf4 movs r2, 0                                        |         r2 = 0;
    0x00038cf6 add r0, pc                                        |         r0 = 0x71cfc;
    0x00038cf8 bl 0x387d0                                        |         fcn_000387d0 (r0, r1, r2, r3);
    0x00038cfa stc2l p6, c4, [sl, -0x14]!                        |         __asm ("stc2l p6, c4, [sl, -0x14]!");
    0x00038cfe cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00038d00 beq.w 0x38f42                                     |             goto label_10;
                                                                 |         }
    0x00038d04 ldr r0, [r0]                                      |         r0 = *(r0);
    0x00038d06 bl 0x48da0                                        |         fcn_00048da0 (r0);
    0x00038d0a movs r1, 0                                        |         r1 = 0;
    0x00038d0c blx 0xfbb8                                        |         fcn_0000fbb8 ();
    0x00038d10 ldr r1, [pc, 0x2f0]                               |         
    0x00038d12 add r2, sp, 0x34                                  |         r2 += var_34h;
    0x00038d14 add r1, pc                                        |         r1 = 0x71d1c;
    0x00038d16 blx 0xeb58                                        |         g_regex_get_pattern ();
    0x00038d1a ldr r0, [r5]                                      |         r0 = *(r5);
    0x00038d1c bl 0x48c0c                                        |         r0 = fcn_00048c0c (r0);
    0x00038d20 blx 0xe5f4                                        |         g_int_hash ();
    0x00038d24 ldr r1, [pc, 0x2e0]                               |         
    0x00038d26 mov r7, r0                                        |         r7 = r0;
    0x00038d28 add r1, pc                                        |         r1 = 0x71d34;
    0x00038d2a blx 0xfcc4                                        |         r0 = fcn_0000fcc4 ();
    0x00038d2e cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00038d30 beq.w 0x38f3e                                     |             goto label_11;
                                                                 |         }
    0x00038d34 ldr r1, [pc, 0x2d4]                               |         
    0x00038d36 mov r0, r7                                        |         r0 = r7;
    0x00038d38 add r1, pc                                        |         r1 = 0x71d48;
    0x00038d3a blx 0xfcc4                                        |         r0 = fcn_0000fcc4 ();
    0x00038d3e mov sl, r0                                        |         sl = r0;
    0x00038d40 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00038d42 bne.w 0x38f18                                     |             goto label_12;
                                                                 |         }
    0x00038d46 ldr r0, [pc, 0x2c8]                               |         
    0x00038d48 mov r1, r6                                        |         r1 = r6;
    0x00038d4a add r0, pc                                        |         r0 = 0x71d60;
    0x00038d4c blx 0xe9b4                                        |         r0 = gst_rtsp_message_append_headers ();
    0x00038d50 mov r8, r0                                        |         r8 = r0;
    0x00038d52 blx 0xe8f0                                        |         fcn_0000e8f0 ();
    0x00038d56 mov.w r1, 0x1b0                                   |         r1 = 0x1b0;
    0x00038d5a mov r0, r8                                        |         r0 = r8;
    0x00038d5c blx 0xfb3c                                        |         r0 = gst_app_sink_set_callbacks ();
    0x00038d60 mov r7, r0                                        |         r7 = r0;
    0x00038d62 mov r0, r8                                        |         r0 = r8;
    0x00038d64 blx 0xf3e8                                        |         fcn_0000f3e8 ();
    0x00038d68 cmp r7, 0                                         |         
                                                                 |         if (r7 < 0) {
    0x00038d6a blt.w 0x38fbe                                     |             goto label_13;
                                                                 |         }
    0x00038d6e ldr r0, [pc, 0x2a4]                               |         
    0x00038d70 add r0, pc                                        |         r0 = 0x71d8a;
    0x00038d72 blx 0xecf0                                        |         r0 = g_variant_ref_sink ();
    0x00038d76 mov r8, r0                                        |         r8 = r0;
    0x00038d78 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00038d7a beq.w 0x38ff6                                     |             goto label_14;
                                                                 |         }
    0x00038d7e ldr r0, [pc, 0x298]                               |         
    0x00038d80 mov r1, sl                                        |         r1 = sl;
    0x00038d82 add r0, pc                                        |         r0 = "ChangeFileStart";
    0x00038d84 blx 0x100a4                                       |         r0 = fcn_000100a4 ();
    0x00038d88 mov sb, r0                                        |         sb = r0;
    0x00038d8a cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00038d8c beq.w 0x38ff2                                     |             goto label_15;
                                                                 |         }
    0x00038d90 ldr r0, [r5]                                      |         r0 = *(r5);
    0x00038d92 mov r1, sl                                        |         r1 = sl;
    0x00038d94 bl 0x40668                                        |         fcn_00040668 (r0, r1);
    0x00038d98 str r0, [sp, 0x18]                                |         var_18h = r0;
    0x00038d9a cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00038d9c beq.w 0x38fce                                     |             goto label_16;
                                                                 |         }
    0x00038da0 movs r1, 0x50                                     |         r1 = 0x50;
    0x00038da2 mov r0, sb                                        |         r0 = sb;
    0x00038da4 blx 0xe18c                                        |         cert_set_init ();
    0x00038da8 ldr r2, [sp, 0x18]                                |         r2 = var_18h;
    0x00038daa mov r3, sl                                        |         r3 = sl;
    0x00038dac ldr r1, [pc, 0x26c]                               |         
    0x00038dae ldr r2, [r2, 4]                                   |         r2 = *((r2 + 4));
    0x00038db0 add r1, pc                                        |         r1 = "../git/src/recordingbuffer.c";
    0x00038db2 blx 0xf4fc                                        |         fcn_0000f4fc ();
    0x00038db6 ldr r0, [pc, 0x268]                               |         
    0x00038db8 mov r1, sl                                        |         r1 = sl;
    0x00038dba add r0, pc                                        |         r0 = 0x71de0;
    0x00038dbc blx 0x100a4                                       |         r0 = fcn_000100a4 ();
    0x00038dc0 mov fp, r0                                        |         
    0x00038dc2 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00038dc4 beq.w 0x38fee                                     |             goto label_17;
                                                                 |         }
    0x00038dc8 movs r1, 0x50                                     |         r1 = 0x50;
    0x00038dca blx 0xe18c                                        |         cert_set_init ();
    0x00038dce ldr r1, [pc, 0x254]                               |         
    0x00038dd0 movs r3, 0                                        |         r3 = 0;
    0x00038dd2 mov r2, r7                                        |         r2 = r7;
    0x00038dd4 add r1, pc                                        |         r1 = 0x71dfe;
    0x00038dd6 blx 0xf4fc                                        |         fcn_0000f4fc ();
    0x00038dda blx 0xf4a4                                        |         r0 = fcn_0000f4a4 ();
    0x00038dde mov r1, r0                                        |         r1 = r0;
    0x00038de0 mov r0, r8                                        |         r0 = r8;
    0x00038de2 blx 0xe18c                                        |         cert_set_init ();
    0x00038de6 movs r3, 0                                        |         r3 = 0;
    0x00038de8 mov r2, fp                                        |         r2 = fp;
    0x00038dea mov r1, sb                                        |         r1 = sb;
    0x00038dec blx 0xfb30                                        |         g_date_time_unref ();
    0x00038df0 mov r1, fp                                        |         r1 = fp;
    0x00038df2 mov r0, sb                                        |         r0 = sb;
    0x00038df4 blx 0xdca0                                        |         g_signal_lookup ();
    0x00038df8 movs r0, 0x10                                     |         r0 = 0x10;
    0x00038dfa blx 0xea2c                                        |         r0 = gst_rtsp_range_convert_units ();
    0x00038dfe mov sl, r0                                        |         sl = r0;
    0x00038e00 mov r0, r6                                        |         r0 = r6;
    0x00038e02 ldr r6, [sp, 0x18]                                |         r6 = var_18h;
    0x00038e04 str.w r8, [sl]                                    |         __asm ("str.w r8, [sl]");
    0x00038e08 strd r6, r7, [sl, 4]                              |         __asm ("strd r6, r7, [sl, 4]");
    0x00038e0c blx 0xe798                                        |         gst_query_new_custom ();
    0x00038e10 str.w r0, [sl, 0xc]                               |         __asm ("str.w r0, [sl, 0xc]");
    0x00038e14 blx 0xe088                                        |         r0 = fcn_0000e088 ();
    0x00038e16 ldmdb r8!, {r0, sb, sl, lr}                       |         __asm ("ldmdb r8!, {r0, sb, sl, lr}");
    0x00038e1a mov r0, r8                                        |         r0 = r8;
    0x00038e1c blx 0xe18c                                        |         cert_set_init ();
    0x00038e20 blx 0xdf48                                        |         fcn_0000df48 ();
    0x00038e24 ldr r3, [r4]                                      |         r3 = *(r4);
    0x00038e26 mov r2, sl                                        |         r2 = sl;
    0x00038e28 mov r4, r0                                        |         r4 = r0;
    0x00038e2a ldr r1, [r3, 0x44]                                |         r1 = *((r3 + 0x44));
    0x00038e2c blx 0xfc64                                        |         r0 = fcn_0000fc64 ();
    0x00038e30 mov r3, r0                                        |         r3 = r0;
    0x00038e32 mov r0, r4                                        |         r0 = r4;
    0x00038e34 str r3, [sp, 0x28]                                |         var_28h = r3;
    0x00038e36 blx 0xdff8                                        |         fcn_0000dff8 ();
    0x00038e3a mov r0, r6                                        |         r0 = r6;
    0x00038e3c bl 0x3ffb8                                        |         fcn_0003ffb8 (r0);
    0x00038e40 movs r1, 3                                        |         r1 = 3;
    0x00038e42 mov r0, r8                                        |         r0 = r8;
    0x00038e44 blx 0xe0ac                                        |         fcn_0000e0ac ();
    0x00038e48 ldrd r4, r3, [r5, 0x30]                           |         __asm ("ldrd r4, r3, [r5, 0x30]");
    0x00038e4c ldrd r2, r1, [r5, 0x28]                           |         __asm ("ldrd r2, r1, [r5, 0x28]");
    0x00038e50 vldr d0, [r5, 0x38]                               |         __asm ("vldr d0, [r5, 0x38]");
    0x00038e54 mov r0, r3                                        |         r0 = r3;
    0x00038e56 str r3, [sp, 0x1c]                                |         var_1ch = r3;
    0x00038e58 and.w ip, r2, r1                                  |         
    0x00038e5a lsrs r1, r0, 0x10                                 |         r1 = r0 >> 0x10;
    0x00038e5c orrs r0, r4                                       |         r0 |= r4;
    0x00038e5e cmp r0, 0                                         |         
    0x00038e60 it eq                                             |         
                                                                 |         if (r0 == 0) {
    0x00038e62 cmpeq ip, -1                                      |             __asm ("cmpeq ip, -1");
                                                                 |         }
    0x00038e66 ldrd r6, r3, [r5, 0x20]                           |         __asm ("ldrd r6, r3, [r5, 0x20]");
                                                                 |         if (r0 == 0) {
    0x00038e6a beq 0x38f46                                       |             goto label_18;
                                                                 |         }
    0x00038e6c cmp.w r1, -1                                      |         
    0x00038e70 it eq                                             |         
                                                                 |         if (r1 == -1) {
    0x00038e72 cmpeq r2, -1                                      |             __asm ("cmpeq r2, -1");
                                                                 |         }
                                                                 |         if (r1 == -1) {
    0x00038e76 beq 0x38f52                                       |             goto label_19;
                                                                 |         }
    0x00038e78 adds r4, r2, r4                                   |         r4 = r2 + r4;
    0x00038e7a ldr r2, [sp, 0x1c]                                |         r2 = var_1ch;
    0x00038e7c adc.w r1, r1, r2                                  |         __asm ("adc.w r1, r1, r2");
                                                                 | label_2:
    0x00038e80 cmp.w r3, -1                                      |         
    0x00038e84 it eq                                             |         
                                                                 |         if (r3 == -1) {
    0x00038e86 cmpeq r6, -1                                      |             __asm ("cmpeq r6, -1");
                                                                 |         }
                                                                 |         if (r3 != -1) {
    0x00038e8a beq 0x38e92                                       |             
    0x00038e8c adds r6, r6, r4                                   |             r6 += r4;
    0x00038e8e adc.w r3, r3, r1                                  |             __asm ("adc.w r3, r3, r1");
                                                                 |         }
    0x00038e92 strd r6, r3, [sp, 0x10]                           |         __asm ("strd r6, r3, [var_10h]");
    0x00038e96 movs r3, 1                                        |         r3 = 1;
    0x00038e98 strd r4, r1, [sp]                                 |         __asm ("strd r4, r1, [sp]");
    0x00038e9c movs r2, 7                                        |         r2 = 7;
    0x00038e9e movs r1, 3                                        |         r1 = 3;
    0x00038ea0 mov r0, sb                                        |         r0 = sb;
    0x00038ea2 str r3, [sp, 8]                                   |         var_8h = r3;
    0x00038ea4 blx 0xe238                                        |         r0 = fcn_0000e238 ();
    0x00038ea8 mov r4, r0                                        |         r4 = r0;
    0x00038eaa cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00038eac beq 0x38f80                                       |             goto label_20;
                                                                 |         }
                                                                 | label_1:
    0x00038eae ldr r3, [sp, 0x34]                                |         r3 = var_34h;
    0x00038eb0 mov.w r2, 0x18000000                              |         r2 = 0x18000000;
    0x00038eb4 add r1, sp, 0x38                                  |         r1 += var_38h;
    0x00038eb6 mov r0, r7                                        |         r0 = r7;
    0x00038eb8 rev r3, r3                                        |         r3 = SWAP32 (r3);
    0x00038eba str r3, [sp, 0x48]                                |         var_48h = r3;
    0x00038ebc movw r3, 0x732e                                   |         
    0x00038ec0 movt r3, 0x646e                                   |         r3 = 0x646e732e;
    0x00038ec4 str r3, [sp, 0x38]                                |         var_38h = r3;
    0x00038ec6 mov.w r3, 0x1000000                               |         r3 = 0x1000000;
    0x00038eca str r3, [sp, 0x44]                                |         var_44h = r3;
    0x00038ecc str r3, [sp, 0x4c]                                |         var_4ch = r3;
    0x00038ece mov.w r3, -1                                      |         r3 = -1;
    0x00038ed2 strd r2, r3, [sp, 0x3c]                           |         __asm ("strd r2, r3, [var_3ch]");
    0x00038ed6 movs r2, 0x18                                     |         r2 = 0x18;
    0x00038ed8 bl 0x65e54                                        |         r0 = fcn_00065e54 (r0, r1, r2);
    0x00038edc cmp r0, 0x18                                      |         
                                                                 |         if (r0 != 0x18) {
    0x00038ede bne 0x38fe0                                       |             goto label_21;
                                                                 |         }
                                                                 | label_5:
    0x00038ee0 movs r1, 4                                        |         r1 = 4;
    0x00038ee2 mov r0, r8                                        |         r0 = r8;
    0x00038ee4 movs r4, 0xa                                      |         r4 = 0xa;
    0x00038ee6 blx 0xe0ac                                        |         r0 = fcn_0000e0ac ();
    0x00038eea cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00038eec beq 0x38f80                                       |             goto label_20;
                                                                 |         }
    0x00038eee ldr r0, [sp, 0x30]                                |         r0 = var_30h;
    0x00038ef0 movs r4, 0                                        |         r4 = 0;
    0x00038ef2 blx 0xff78                                        |         fcn_0000ff78 ();
    0x00038ef6 mov r0, r5                                        |         r0 = r5;
    0x00038ef8 bl 0x651d4                                        |         fcn_000651d4 (r0);
    0x00038efc b 0x38f06                                         |         goto label_22;
                                                                 |     }
    0x00038efe movs r4, 2                                        |     r4 = 2;
                                                                 |     do {
                                                                 | label_0:
    0x00038f00 ldr r0, [sp, 0x30]                                |         r0 = var_30h;
    0x00038f02 blx 0xff78                                        |         fcn_0000ff78 ();
                                                                 | label_22:
    0x00038f06 mov r0, r4                                        |         r0 = r4;
    0x00038f08 add sp, 0x54                                      |         
    0x00038f0a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_9:
    0x00038f0e movs r4, 1                                        |         r4 = 1;
    0x00038f10 mov r0, r4                                        |         r0 = r4;
    0x00038f12 add sp, 0x54                                      |         
    0x00038f14 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
    0x00038f16 ldrh r0, [r6, 0x3e]                               |         r0 = *((r6 + 0x3e));
                                                                 | label_12:
    0x00038f18 ldr r1, [pc, 0x10c]                               |         
    0x00038f1a mov r0, r7                                        |         r0 = r7;
    0x00038f1c add r1, pc                                        |         r1 = 0x71f48;
    0x00038f1e blx 0xfcc4                                        |         r0 = fcn_0000fcc4 ();
                                                                 |         if (r0 == 0) {
    0x00038f22 cbz r0, 0x38f3e                                   |             goto label_11;
                                                                 |         }
    0x00038f24 ldr r1, [pc, 0x104]                               |         
    0x00038f26 mov r0, r7                                        |         r0 = r7;
    0x00038f28 add r1, pc                                        |         r1 = 0x71f58;
    0x00038f2a blx 0xfcc4                                        |         r0 = fcn_0000fcc4 ();
                                                                 |         if (r0 == 0) {
    0x00038f2e cbz r0, 0x38f3e                                   |             goto label_11;
                                                                 |         }
    0x00038f30 ldr r1, [pc, 0xfc]                                |         
    0x00038f32 mov r0, r7                                        |         r0 = r7;
    0x00038f34 movs r4, 4                                        |         r4 = 4;
    0x00038f36 add r1, pc                                        |         r1 = 0x71f6a;
    0x00038f38 blx 0xfcc4                                        |         fcn_0000fcc4 ();
    0x00038f3c b 0x38f00                                         |         
                                                                 |     } while (1);
                                                                 | label_11:
    0x00038f3e movs r4, 4                                        |     r4 = 4;
    0x00038f40 b 0x38f00                                         |     goto label_0;
                                                                 | label_10:
    0x00038f42 movs r4, 3                                        |     r4 = 3;
    0x00038f44 b 0x38f00                                         |     goto label_0;
                                                                 | label_18:
    0x00038f46 cmp.w r3, -1                                      |     
    0x00038f4a it eq                                             |     
                                                                 |     if (r3 != -1) {
    0x00038f4c cmpeq r6, -1                                      |         __asm ("cmpeq r6, -1");
                                                                 |         goto label_23;
                                                                 |     }
                                                                 |     if (r3 == -1) {
                                                                 | label_23:
    0x00038f50 beq 0x38eae                                       |         goto label_1;
                                                                 |     }
                                                                 | label_19:
    0x00038f52 str r3, [sp, 0x2c]                                |     var_2ch = r3;
    0x00038f54 vstr d0, [sp, 0x20]                               |     __asm ("vstr d0, [sp, 0x20]");
    0x00038f58 blx 0xdd84                                        |     r0 = getsockopt ();
    0x00038f5c mov r1, r0                                        |     r1 = r0;
    0x00038f5e mov r0, sb                                        |     r0 = sb;
    0x00038f60 blx 0xe18c                                        |     cert_set_init ();
    0x00038f64 add r2, sp, 0x38                                  |     r2 += var_38h;
    0x00038f66 movs r1, 3                                        |     r1 = 3;
    0x00038f68 blx 0xe554                                        |     fcn_0000e554 ();
    0x00038f6c ldr r2, [sp, 0x38]                                |     r2 = var_38h;
    0x00038f6e ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x00038f70 vldr d0, [sp, 0x20]                               |     __asm ("vldr d0, [sp, 0x20]");
    0x00038f74 adds r4, r4, r2                                   |     r4 += r2;
    0x00038f76 ldr r2, [sp, 0x3c]                                |     r2 = var_3ch;
    0x00038f78 adc.w r1, r3, r2                                  |     __asm ("adc.w r1, r3, r2");
    0x00038f7c ldr r3, [sp, 0x2c]                                |     r3 = var_2ch;
    0x00038f7e b 0x38e80                                         |     goto label_2;
                                                                 | label_20:
    0x00038f80 ldr r0, [sp, 0x28]                                |     r0 = var_28h;
    0x00038f82 blx 0x105a4                                       |     fcn_000105a4 ();
    0x00038f86 ldr.w r0, [sl, 0xc]                               |     r0 = *((sl + 0xc));
    0x00038f8a blx 0xf3e8                                        |     fcn_0000f3e8 ();
    0x00038f8e mov r0, sl                                        |     r0 = sl;
    0x00038f90 blx 0xf3e8                                        |     fcn_0000f3e8 ();
    0x00038f94 mov r0, fp                                        |     r0 = fp;
    0x00038f96 blx 0xdff8                                        |     fcn_0000dff8 ();
                                                                 | label_6:
    0x00038f9a ldr r0, [sp, 0x18]                                |     r0 = var_18h;
    0x00038f9c bl 0x3ff38                                        |     fcn_0003ff38 (r0);
                                                                 | label_3:
    0x00038fa0 mov r0, sb                                        |     r0 = sb;
    0x00038fa2 blx 0xdff8                                        |     fcn_0000dff8 ();
                                                                 | label_7:
    0x00038fa6 mov r0, r8                                        |     r0 = r8;
    0x00038fa8 blx 0xdff8                                        |     fcn_0000dff8 ();
                                                                 | label_8:
    0x00038fac mov r0, r7                                        |     r0 = r7;
    0x00038fae blx 0xea08                                        |     r0 = gst_rtsp_session_media_get_media ();
    0x00038fb2 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x00038fb4 blt 0x38fd2                                       |         goto label_24;
                                                                 |     }
                                                                 |     do {
                                                                 | label_4:
    0x00038fb6 mov r0, r5                                        |         r0 = r5;
    0x00038fb8 bl 0x651d4                                        |         fcn_000651d4 (r0);
    0x00038fbc b 0x38f00                                         |         goto label_0;
                                                                 | label_13:
    0x00038fbe ldr r2, [pc, 0x74]                                |         
    0x00038fc0 movs r1, 0x20                                     |         r1 = 0x20;
    0x00038fc2 mov r0, sl                                        |         r0 = sl;
    0x00038fc4 movs r4, 5                                        |         r4 = 5;
    0x00038fc6 add r2, pc                                        |         r2 = 0x72000;
    0x00038fc8 blx 0xe318                                        |         gst_element_error_printf ()
    0x00038fcc b 0x38fb6                                         |         
                                                                 |     } while (1);
                                                                 | label_16:
    0x00038fce movs r4, 8                                        |     r4 = 8;
    0x00038fd0 b 0x38fa0                                         |     goto label_3;
                                                                 | label_24:
    0x00038fd2 ldr r2, [pc, 0x64]                                |     
    0x00038fd4 movs r1, 0x20                                     |     r1 = 0x20;
    0x00038fd6 movs r0, 0                                        |     r0 = 0;
    0x00038fd8 add r2, pc                                        |     r2 = 0x72016;
    0x00038fda blx 0xe318                                        |     gst_element_error_printf ()
    0x00038fde b 0x38fb6                                         |     goto label_4;
                                                                 | label_21:
    0x00038fe0 ldr r2, [pc, 0x58]                                |     
    0x00038fe2 movs r1, 0x20                                     |     r1 = 0x20;
    0x00038fe4 movs r0, 0                                        |     r0 = 0;
    0x00038fe6 add r2, pc                                        |     r2 = 0x72026;
    0x00038fe8 blx 0xe318                                        |     gst_element_error_printf ()
    0x00038fec b 0x38ee0                                         |     goto label_5;
                                                                 | label_17:
    0x00038fee movs r4, 9                                        |     r4 = 9;
    0x00038ff0 b 0x38f9a                                         |     goto label_6;
                                                                 | label_15:
    0x00038ff2 movs r4, 7                                        |     r4 = 7;
    0x00038ff4 b 0x38fa6                                         |     goto label_7;
                                                                 | label_14:
    0x00038ff6 movs r4, 6                                        |     r4 = 6;
    0x00038ff8 b 0x38fac                                         |     goto label_8;
                                                                 | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x3a710 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0003a710 ()                                          | void fcn_0003a710 (int16_t arg1, int16_t arg2, int16_t arg3) {
                                                                     |     int16_t var_0h;
                                                                     |     int32_t var_0h_2;
                                                                     |     int16_t var_8h;
                                                                     |     int32_t var_ch;
                                                                     |     int32_t var_ch_2;
                                                                     |     int16_t var_1ch;
                                                                     |     int16_t var_20h;
                                                                     |     int16_t var_24h;
                                                                     |     int16_t var_2ch;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
    0x0003a710 ldr r3, [r0, 0x5c]                                    |     r3 = *((r0 + 0x5c));
    0x0003a712 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0003a716 sub sp, 0x34                                          |     
    0x0003a718 strd r2, r1, [sp, 0x1c]                               |     __asm ("strd r2, r1, [var_20h]");
    0x0003a71c mov r8, r0                                            |     r8 = r0;
    0x0003a71e ldr r2, [r3, 4]                                       |     r2 = *((r3 + 4));
    0x0003a720 cmp r2, 0                                             |     
                                                                     |     if (r2 == 0) {
    0x0003a722 beq 0x3a7e2                                           |         goto label_7;
                                                                     |     }
    0x0003a724 ldr.w fp, [pc, 0x3b0]                                 |     
    0x0003a728 movs r7, 0                                            |     r7 = 0;
    0x0003a72a ldr.w sl, [pc, 0x3b0]                                 |     sl = *(0x0003aadc);
    0x0003a72e add fp, pc                                            |     fp = 0x7520a;
    0x0003a730 add sl, pc                                            |     sl += pc;
    0x0003a732 b 0x3a748                                             |     
                                                                     |     while (r4 != 0) {
    0x0003a734 blx 0xdff8                                            |         fcn_0000dff8 ();
    0x0003a738 mov r0, r6                                            |         r0 = r6;
    0x0003a73a blx 0xf3e8                                            |         fcn_0000f3e8 ();
    0x0003a73e ldr.w r3, [r8, 0x5c]                                  |         r3 = *((r8 + 0x5c));
    0x0003a742 ldr r2, [r3, 4]                                       |         r2 = *((r3 + 4));
    0x0003a744 cmp r2, r7                                            |         
                                                                     |         if (r2 < r7) {
    0x0003a746 bls 0x3a7e2                                           |             goto label_7;
                                                                     |         }
    0x0003a748 ldr r3, [r3]                                          |         r3 = *(r3);
    0x0003a74a mov r1, fp                                            |         r1 = fp;
    0x0003a74c movs r4, 0                                            |         r4 = 0;
    0x0003a74e ldr.w sb, [r3, r7, lsl 2]                             |         offset_0 = r7 << 2;
                                                                     |         sb = *((r3 + offset_0));
    0x0003a752 movs r3, 0                                            |         r3 = 0;
    0x0003a754 adds r7, 1                                            |         r7++;
    0x0003a756 str.w r3, [sb, 0x20]                                  |         __asm ("str.w r3, [sb, 0x20]");
    0x0003a75a ldr.w r0, [sb, 0x10]                                  |         r0 = *((sb + 0x10));
    0x0003a75e blx 0x100e4                                           |         r0 = fcn_000100e4 ();
    0x0003a762 mov r5, r0                                            |         r5 = r0;
    0x0003a764 blx 0xdea8                                            |         fcn_0000dea8 ();
    0x0003a768 str r4, [sp]                                          |         *(sp) = r4;
    0x0003a76a mov r6, r0                                            |         r6 = r0;
    0x0003a76c mov r3, sb                                            |         r3 = sb;
    0x0003a76e mov r2, sl                                            |         r2 = sl;
    0x0003a770 movs r1, 0x72                                         |         r1 = 0x72;
    0x0003a772 mov r0, r5                                            |         r0 = r5;
    0x0003a774 blx 0xffe4                                            |         r0 = fcn_0000ffe4 ();
    0x0003a778 mov r4, r0                                            |         r4 = r0;
    0x0003a77a mov r0, r5                                            |         r0 = r5;
    0x0003a77c str.w r4, [sb, 0x38]                                  |         __asm ("str.w r4, [sb, 0x38]");
    0x0003a780 cmp r4, 0                                             |         
    0x0003a782 bne 0x3a734                                           |         
                                                                     |     }
    0x0003a784 ldr r1, [pc, 0x358]                                   |     
    0x0003a786 add r1, pc                                            |     r1 = 0x7526a;
    0x0003a788 ldr r3, [r1, 0x10]                                    |     r3 = *(0x7527a);
                                                                     |     if (r3 == 0) {
    0x0003a78a cbnz r3, 0x3a79c                                      |         
    0x0003a78c ldr r2, [pc, 0x354]                                   |         
    0x0003a78e movs r3, 8                                            |         r3 = 8;
    0x0003a790 ldr r0, [pc, 0x354]                                   |         
    0x0003a792 adds r1, 0x10                                         |         r1 += 0x10;
    0x0003a794 add r2, pc                                            |         r2 = 0x7527c;
    0x0003a796 add r0, pc                                            |         r0 = 0x75282;
    0x0003a798 blx 0xdaa0                                            |         fcn_0000daa0 ();
                                                                     |     }
    0x0003a79c ldr r1, [pc, 0x34c]                                   |     
    0x0003a79e movs r2, 1                                            |     r2 = 1;
    0x0003a7a0 ldr r3, [pc, 0x34c]                                   |     
    0x0003a7a2 ldr r0, [sp, 0x1c]                                    |     r0 = var_1ch;
    0x0003a7a4 add r1, pc                                            |     
    0x0003a7a6 add r3, pc                                            |     r3 = 0x7529a;
    0x0003a7a8 ldr r1, [r1, 0x10]                                    |     r1 = *(0x752a4);
    0x0003a7aa blx 0x10398                                           |     fcn_00010398 ();
    0x0003a7ae mov r0, r5                                            |     r0 = r5;
    0x0003a7b0 blx 0xdff8                                            |     fcn_0000dff8 ();
    0x0003a7b4 mov r0, r6                                            |     r0 = r6;
    0x0003a7b6 blx 0xf3e8                                            |     fcn_0000f3e8 ();
    0x0003a7ba ldr.w r0, [r8, 0x5c]                                  |     r0 = *((r8 + 0x5c));
    0x0003a7be ldr r3, [r0, 4]                                       |     r3 = *((r0 + 4));
                                                                     |     if (r3 == 0) {
    0x0003a7c0 cbz r3, 0x3a7d4                                       |         goto label_1;
                                                                     |     }
                                                                     |     do {
    0x0003a7c2 mov r1, r4                                            |         r1 = r4;
    0x0003a7c4 adds r4, 1                                            |         r4++;
    0x0003a7c6 bl 0x39e0c                                            |         fcn_00039e0c (r0);
    0x0003a7ca ldr.w r0, [r8, 0x5c]                                  |         r0 = *((r8 + 0x5c));
    0x0003a7ce ldr r3, [r0, 4]                                       |         r3 = *((r0 + 4));
    0x0003a7d0 cmp r3, r4                                            |         
    0x0003a7d2 bhi 0x3a7c2                                           |         
                                                                     |     } while (r3 > r4);
                                                                     | label_1:
    0x0003a7d4 movs r3, 7                                            |     r3 = 7;
    0x0003a7d6 movs r0, 0                                            |     r0 = 0;
    0x0003a7d8 str.w r3, [r8, 0x40]                                  |     __asm ("str.w r3, [r8, 0x40]");
    0x0003a7dc add sp, 0x34                                          |     
    0x0003a7de pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                     | label_7:
    0x0003a7e2 ldr r2, [sp, 0x20]                                    |     r2 = var_20h;
    0x0003a7e4 cmp r2, 0                                             |     
                                                                     |     if (r2 == 0) {
    0x0003a7e6 beq 0x3a8e2                                           |         goto label_8;
                                                                     |     }
                                                                     | label_6:
    0x0003a7e8 ldr r2, [r3, 4]                                       |     r2 = *((r3 + 4));
                                                                     |     if (r2 == 0) {
    0x0003a7ea cbz r2, 0x3a840                                       |         goto label_9;
                                                                     |     }
    0x0003a7ec ldr.w sb, [pc, 0x304]                                 |     
    0x0003a7f0 movs r5, 0                                            |     r5 = 0;
    0x0003a7f2 ldr r7, [pc, 0x304]                                   |     
    0x0003a7f4 ldr r6, [pc, 0x304]                                   |     
    0x0003a7f6 ldr.w sl, [sp, 0x20]                                  |     sl = var_20h;
    0x0003a7fa add sb, pc                                            |     sb = 0x752f2;
    0x0003a7fc add r7, pc                                            |     r7 = 0x752fa;
    0x0003a7fe add r6, pc                                            |     r6 = 0x752fe;
    0x0003a800 str r6, [sp, 0x24]                                    |     var_24h = r6;
                                                                     | label_0:
    0x0003a802 ldr r3, [r3]                                          |     r3 = *(r3);
    0x0003a804 cmp.w sl, 1                                           |     
    0x0003a808 ldr.w r4, [r3, r5, lsl 2]                             |     offset_1 = r5 << 2;
                                                                     |     r4 = *((r3 + offset_1));
                                                                     |     if (sl == 1) {
    0x0003a80c beq 0x3a874                                           |         goto label_10;
                                                                     |     }
                                                                     | label_2:
    0x0003a80e add.w r6, r4, 0x24                                    |     r6 = r4 + 0x24;
    0x0003a812 add.w fp, r4, 0x2c                                    |     
    0x0003a816 mov r0, r6                                            |     r0 = r6;
    0x0003a818 blx 0xf26c                                            |     socket (r0, r1, r2);
    0x0003a81c ldr r3, [r4, 0x20]                                    |     r3 = *((r4 + 0x20));
                                                                     |     if (r3 != 0) {
    0x0003a81e cbnz r3, 0x3a82e                                      |         goto label_11;
                                                                     |     }
                                                                     |     do {
    0x0003a820 mov r1, r6                                            |         r1 = r6;
    0x0003a822 mov r0, fp                                            |         r0 = fp;
    0x0003a824 blx 0x10540                                           |         fcn_00010540 ();
    0x0003a828 ldr r3, [r4, 0x20]                                    |         r3 = *((r4 + 0x20));
    0x0003a82a cmp r3, 0                                             |         
    0x0003a82c beq 0x3a820                                           |         
                                                                     |     } while (r3 == 0);
                                                                     | label_11:
    0x0003a82e mov r0, r6                                            |     r0 = r6;
    0x0003a830 adds r5, 1                                            |     r5++;
    0x0003a832 blx 0xf548                                            |     gst_mini_object_unref ();
    0x0003a836 ldr.w r3, [r8, 0x5c]                                  |     r3 = *((r8 + 0x5c));
    0x0003a83a ldr r2, [r3, 4]                                       |     r2 = *((r3 + 4));
    0x0003a83c cmp r2, r5                                            |     
                                                                     |     if (r2 > r5) {
    0x0003a83e bhi 0x3a802                                           |         goto label_0;
                                                                     |     }
                                                                     | label_9:
    0x0003a840 ldr r3, [sp, 0x20]                                    |     r3 = var_20h;
    0x0003a842 cmp r3, 1                                             |     
                                                                     |     if (r3 != 1) {
    0x0003a844 bne 0x3a898                                           |         goto label_12;
                                                                     |     }
    0x0003a846 ldr r1, [sp, 0x1c]                                    |     r1 = var_1ch;
    0x0003a848 mov r0, r8                                            |     r0 = r8;
    0x0003a84a bl 0x3a4bc                                            |     r0 = fcn_0003a4bc (r0, r1);
    0x0003a84e cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0003a850 bne.w 0x3a988                                         |         goto label_13;
                                                                     |     }
                                                                     | label_3:
    0x0003a854 ldr.w r0, [r8, 0x5c]                                  |     r0 = *((r8 + 0x5c));
    0x0003a858 movs r4, 0                                            |     r4 = 0;
    0x0003a85a ldr r3, [r0, 4]                                       |     r3 = *((r0 + 4));
    0x0003a85c cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0003a85e beq 0x3a7d4                                           |         goto label_1;
                                                                     |     }
                                                                     |     do {
    0x0003a860 mov r1, r4                                            |         r1 = r4;
    0x0003a862 adds r4, 1                                            |         r4++;
    0x0003a864 bl 0x39e0c                                            |         fcn_00039e0c (r0);
    0x0003a868 ldr.w r0, [r8, 0x5c]                                  |         r0 = *((r8 + 0x5c));
    0x0003a86c ldr r3, [r0, 4]                                       |         r3 = *((r0 + 4));
    0x0003a86e cmp r3, r4                                            |         
    0x0003a870 bhi 0x3a860                                           |         
                                                                     |     } while (r3 > r4);
    0x0003a872 b 0x3a7d4                                             |     goto label_1;
                                                                     | label_10:
    0x0003a874 ldr r0, [r4, 0x10]                                    |     r0 = *((r4 + 0x10));
    0x0003a876 movs r1, 0x50                                         |     r1 = 0x50;
    0x0003a878 blx 0xe18c                                            |     cert_set_init ();
    0x0003a87c ldr r3, [sp, 0x24]                                    |     r3 = var_24h;
    0x0003a87e movs r2, 0                                            |     r2 = 0;
    0x0003a880 vmov.i32 d16, 0                                       |     __asm ("vmov.i32 d16, 0");
    0x0003a884 mov r1, r7                                            |     r1 = r7;
    0x0003a886 strd r2, r2, [sp, 0xc]                                |     __asm ("strd r2, r2, [var_ch]");
    0x0003a88a str r3, [sp, 8]                                       |     var_8h = r3;
    0x0003a88c mov r3, sb                                            |     r3 = sb;
    0x0003a88e vstr d16, [sp]                                        |     __asm ("vstr d16, [sp]");
    0x0003a892 blx 0xf4fc                                            |     fcn_0000f4fc ();
    0x0003a896 b 0x3a80e                                             |     goto label_2;
                                                                     | label_12:
    0x0003a898 ldr.w r3, [r8]                                        |     r3 = *(r8);
    0x0003a89c ldr r3, [r3, 0x60]                                    |     r3 = *((r3 + 0x60));
    0x0003a89e cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0003a8a0 beq.w 0x3aa74                                         |         goto label_14;
                                                                     |     }
    0x0003a8a4 ldr r1, [sp, 0x1c]                                    |     r1 = var_1ch;
    0x0003a8a6 mov r0, r8                                            |     r0 = r8;
    0x0003a8a8 blx r3                                                |     r0 = uint32_t (*r3)(uint32_t, uint32_t) (r0, r1);
    0x0003a8aa cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0003a8ac beq 0x3a854                                           |         goto label_3;
                                                                     |     }
    0x0003a8ae ldr r2, [pc, 0x250]                                   |     
    0x0003a8b0 movs r1, 0x20                                         |     r1 = 0x20;
    0x0003a8b2 ldr.w r3, [r8, 0x28]                                  |     r3 = *((r8 + 0x28));
    0x0003a8b6 movs r0, 0                                            |     r0 = 0;
    0x0003a8b8 add r2, pc                                            |     r2 = 0x753be;
    0x0003a8ba blx 0xe318                                            |     gst_element_error_printf ()
                                                                     | label_4:
    0x0003a8be ldr.w r0, [r8, 0x5c]                                  |     r0 = *((r8 + 0x5c));
    0x0003a8c2 movs r4, 0                                            |     r4 = 0;
    0x0003a8c4 ldr r3, [r0, 4]                                       |     r3 = *((r0 + 4));
                                                                     |     if (r3 == 0) {
    0x0003a8c6 cbz r3, 0x3a8da                                       |         goto label_15;
                                                                     |     }
                                                                     |     do {
    0x0003a8c8 mov r1, r4                                            |         r1 = r4;
    0x0003a8ca adds r4, 1                                            |         r4++;
    0x0003a8cc bl 0x39e0c                                            |         fcn_00039e0c (r0);
    0x0003a8d0 ldr.w r0, [r8, 0x5c]                                  |         r0 = *((r8 + 0x5c));
    0x0003a8d4 ldr r3, [r0, 4]                                       |         r3 = *((r0 + 4));
    0x0003a8d6 cmp r3, r4                                            |         
    0x0003a8d8 bhi 0x3a8c8                                           |         
                                                                     |     } while (r3 > r4);
                                                                     | label_15:
    0x0003a8da movs r0, 1                                            |     r0 = 1;
    0x0003a8dc add sp, 0x34                                          |     
    0x0003a8de pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                     | label_8:
    0x0003a8e2 movs r4, 1                                            |     r4 = 1;
    0x0003a8e4 ldr r1, [sp, 0x1c]                                    |     r1 = var_1ch;
    0x0003a8e6 mov r0, r8                                            |     r0 = r8;
    0x0003a8e8 str r4, [sp, 0x2c]                                    |     var_2ch = r4;
    0x0003a8ea bl 0x3a33c                                            |     r0 = fcn_0003a33c (r0, r1);
    0x0003a8ee cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0003a8f0 beq 0x3a854                                           |         goto label_3;
                                                                     |     }
    0x0003a8f2 ldr.w r3, [r8, 0x38]                                  |     r3 = *((r8 + 0x38));
    0x0003a8f6 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0003a8f8 beq.w 0x3aa00                                         |         goto label_16;
                                                                     |     }
    0x0003a8fc ldr r1, [sp, 0x20]                                    |     r1 = var_20h;
    0x0003a8fe mov.w r5, -1                                          |     r5 = -1;
    0x0003a902 mov r6, r5                                            |     r6 = r5;
    0x0003a904 adr r3, 0x1c8                                         |     r3 = 0x1c8;
    0x0003a906 ldrd r2, r3, [r3]                                     |     __asm ("ldrd r2, r3, [r3]");
    0x0003a90a mov r0, r8                                            |     r0 = r8;
    0x0003a90c str r1, [sp]                                          |     *(sp) = r1;
    0x0003a90e bl 0x39ea0                                            |     fcn_00039ea0 (r0, r1, r2, r3);
                                                                     | label_5:
    0x0003a912 add r1, sp, 0x2c                                      |     r1 += var_2ch;
    0x0003a914 strd r5, r6, [sp]                                     |     __asm ("strd r5, r6, [sp]");
    0x0003a916 ldrsb r0, [r0, r0]                                    |     r0 = *((r0 + r0));
    0x0003a918 str r1, [sp, 8]                                       |     var_8h = r1;
    0x0003a91a mov.w r2, -1                                          |     r2 = -1;
    0x0003a91e ldr r1, [pc, 0x1e4]                                   |     
    0x0003a920 mov.w r3, -1                                          |     r3 = -1;
    0x0003a924 ldr.w r0, [r8, 0x60]                                  |     r0 = *((r8 + 0x60));
    0x0003a928 add r1, pc                                            |     r1 = 0x75432;
    0x0003a92a blx 0x1051c                                           |     fcn_0001051c ();
    0x0003a92e ldr r4, [sp, 0x1c]                                    |     r4 = var_1ch;
    0x0003a930 mov r0, r8                                            |     r0 = r8;
    0x0003a932 mov r1, r4                                            |     r1 = r4;
    0x0003a934 bl 0x3a5c0                                            |     r0 = fcn_0003a5c0 (r0, r1);
    0x0003a938 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0003a93a beq 0x3a854                                           |         goto label_3;
                                                                     |     }
    0x0003a93c ldr.w r3, [r8]                                        |     r3 = *(r8);
    0x0003a940 ldr r3, [r3, 0x58]                                    |     r3 = *((r3 + 0x58));
                                                                     |     if (r3 == 0) {
    0x0003a942 cbz r3, 0x3a94e                                       |         goto label_17;
                                                                     |     }
    0x0003a944 mov r1, r4                                            |     r1 = r4;
    0x0003a946 mov r0, r8                                            |     r0 = r8;
    0x0003a948 blx r3                                                |     r0 = uint32_t (*r3)(uint32_t, uint32_t) (r0, r1);
    0x0003a94a cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0003a94c beq 0x3a854                                           |         goto label_3;
                                                                     |     }
                                                                     | label_17:
    0x0003a94e ldr.w r0, [r8, 0x44]                                  |     r0 = *((r8 + 0x44));
    0x0003a952 movs r1, 4                                            |     r1 = 4;
    0x0003a954 blx 0xe0ac                                            |     r0 = fcn_0000e0ac ();
    0x0003a958 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0003a95a bne 0x3aa42                                           |         goto label_18;
                                                                     |     }
    0x0003a95c ldr r1, [pc, 0x1a8]                                   |     
    0x0003a95e add r1, pc                                            |     r1 = 0x7546a;
    0x0003a960 ldr r3, [r1, 0x10]                                    |     r3 = *(0x7547a);
                                                                     |     if (r3 == 0) {
    0x0003a962 cbnz r3, 0x3a974                                      |         
    0x0003a964 ldr r2, [pc, 0x1a4]                                   |         
    0x0003a966 movs r3, 8                                            |         r3 = 8;
    0x0003a968 ldr r0, [pc, 0x1a4]                                   |         
    0x0003a96a adds r1, 0x10                                         |         r1 += 0x10;
    0x0003a96c add r2, pc                                            |         r2 = 0x7547c;
    0x0003a96e add r0, pc                                            |         r0 = 0x75482;
    0x0003a970 blx 0xdaa0                                            |         fcn_0000daa0 ();
                                                                     |     }
    0x0003a974 ldr r1, [pc, 0x19c]                                   |     
    0x0003a976 movs r2, 1                                            |     r2 = 1;
    0x0003a978 ldr r3, [pc, 0x19c]                                   |     
    0x0003a97a ldr r0, [sp, 0x1c]                                    |     r0 = var_1ch;
    0x0003a97c add r1, pc                                            |     
    0x0003a97e ldr r1, [r1, 0x10]                                    |     r1 = *(0x754a4);
    0x0003a980 add r3, pc                                            |     r3 = "rtsp_media_factory_add_backchannel_element";
    0x0003a982 blx 0x10398                                           |     fcn_00010398 ();
    0x0003a986 b 0x3a854                                             |     goto label_3;
                                                                     | label_13:
    0x0003a988 ldr.w r3, [r8]                                        |     r3 = *(r8);
    0x0003a98c ldr r3, [r3, 0x60]                                    |     r3 = *((r3 + 0x60));
    0x0003a98e cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0003a990 beq.w 0x3aaa0                                         |         goto label_19;
                                                                     |     }
    0x0003a994 ldr r1, [sp, 0x1c]                                    |     r1 = var_1ch;
    0x0003a996 mov r0, r8                                            |     r0 = r8;
    0x0003a998 blx r3                                                |     r0 = uint32_t (*r3)(uint32_t, uint32_t) (r0, r1);
    0x0003a99a cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0003a99c beq.w 0x3a854                                         |         goto label_3;
                                                                     |     }
    0x0003a9a0 ldrd r1, r2, [r8, 0x2c]                               |     __asm ("ldrd r1, r2, [r8, 0x2c]");
    0x0003a9a4 ldr.w r3, [r8, 0x50]                                  |     r3 = *((r8 + 0x50));
    0x0003a9a8 ldr.w r0, [r8, 0x54]                                  |     r0 = *((r8 + 0x54));
    0x0003a9ac add r2, r1                                            |     r2 += r1;
    0x0003a9ae ldr.w r1, [r8, 0x38]                                  |     r1 = *((r8 + 0x38));
    0x0003a9b2 cmp r1, 0                                             |     
                                                                     |     if (r1 != 0) {
    0x0003a9b4 bne 0x3aa48                                           |         goto label_20;
                                                                     |     }
    0x0003a9b6 ldr.w r1, [r8, 0x34]                                  |     r1 = *((r8 + 0x34));
    0x0003a9ba movw r4, 0x4240                                       |     
    0x0003a9be movt r4, 0xf                                          |     r4 = 0xf4240;
    0x0003a9c2 add r1, r2                                            |     r1 += r2;
    0x0003a9c4 mov r2, r3                                            |     r2 = r3;
    0x0003a9c6 mov r3, r0                                            |     r3 = r0;
    0x0003a9c8 umlal r2, r3, r1, r4                                  |     __asm ("umlal r2, r3, r1, r4");
    0x0003a9cc mov.w r1, 0xf200                                      |     
    0x0003a9d0 movt r1, 0x2a05                                       |     r1 = 0xNaN;
    0x0003a9d4 cmp r2, r1                                            |     
    0x0003a9d6 sbcs r0, r3, 1                                        |     __asm ("sbcs r0, r3, 1");
    0x0003a9da mov r0, r8                                            |     r0 = r8;
    0x0003a9dc it lo                                                 |     
                                                                     |     if (r2 >= r1) {
    0x0003a9de movlo r2, r1                                          |         r2 = r1;
                                                                     |     }
    0x0003a9e0 mov.w r1, 0                                           |     r1 = 0;
    0x0003a9e4 it lo                                                 |     
                                                                     |     if (r2 >= r1) {
    0x0003a9e6 ldrlo r3, [sp, 0x20]                                  |         r3 = var_20h;
                                                                     |     }
    0x0003a9e8 str r1, [sp]                                          |     *(sp) = r1;
    0x0003a9ea bl 0x39ea0                                            |     fcn_00039ea0 (r0, r1, r2, r3);
                                                                     |     do {
    0x0003a9ee ldr r2, [pc, 0x12c]                                   |         
    0x0003a9f0 movs r1, 0x20                                         |         r1 = 0x20;
    0x0003a9f2 ldr.w r3, [r8, 0x28]                                  |         r3 = *((r8 + 0x28));
    0x0003a9f6 movs r0, 0                                            |         r0 = 0;
    0x0003a9f8 add r2, pc                                            |         r2 = 0x7551a;
    0x0003a9fa blx 0xe318                                            |         gst_element_error_printf ()
    0x0003a9fe b 0x3a8be                                             |         goto label_4;
                                                                     | label_16:
    0x0003aa00 bl 0x485cc                                            |         fcn_000485cc ();
    0x0003aa04 ldr.w r2, [r8, 0x34]                                  |         r2 = *((r8 + 0x34));
    0x0003aa08 movw r3, 0x4240                                       |         
    0x0003aa0c movt r3, 0xf                                          |         r3 = 0xf4240;
    0x0003aa10 mov.w r7, 0xf200                                      |         
    0x0003aa14 movt r7, 0x2a05                                       |         r7 = 0xNaN;
    0x0003aa16 movs r7, 5                                            |         r7 = 5;
    0x0003aa18 umull r2, r3, r2, r3                                  |         r2:r3 = r2 * r3;
    0x0003aa1c adds r5, r2, 1                                        |         r5 = r2 + 1;
    0x0003aa1e adc r6, r3, 0                                         |         __asm ("adc r6, r3, 0");
    0x0003aa22 adds r5, r5, r0                                       |         r5 += r0;
    0x0003aa24 adc.w r6, r6, r1                                      |         __asm ("adc.w r6, r6, r1");
    0x0003aa28 cmp r2, r7                                            |         
    0x0003aa2a sbcs r1, r3, 1                                        |         __asm ("sbcs r1, r3, 1");
    0x0003aa2e mov.w r1, 0                                           |         r1 = 0;
    0x0003aa32 itt lt                                                |         
                                                                     |         if (r2 >= r7) {
    0x0003aa34 movlt r2, r7                                          |             r2 = r7;
                                                                     |         }
                                                                     |         if (r2 >= r7) {
    0x0003aa36 movlt r3, r4                                          |             r3 = r4;
                                                                     |         }
    0x0003aa38 mov r0, r8                                            |         r0 = r8;
    0x0003aa3a str r1, [sp]                                          |         *(sp) = r1;
    0x0003aa3c bl 0x39ea0                                            |         fcn_00039ea0 (r0, r1, r2, r3);
    0x0003aa40 b 0x3a912                                             |         goto label_5;
                                                                     | label_18:
    0x0003aa42 ldr.w r3, [r8, 0x5c]                                  |         r3 = *((r8 + 0x5c));
    0x0003aa46 b 0x3a7e8                                             |         goto label_6;
                                                                     | label_20:
    0x0003aa48 mov.w r1, 0xf200                                      |         
    0x0003aa4c movt r1, 0x2a05                                       |         r1 = 0xNaN;
    0x0003aa50 adds r3, r3, r1                                       |         r3 += r1;
    0x0003aa52 movw r1, 0x4240                                       |         
    0x0003aa56 adc r0, r0, 1                                         |         __asm ("adc r0, r0, 1");
    0x0003aa5a movt r1, 0xf                                          |         r1 = 0xf4240;
    0x0003aa5e mov r4, r3                                            |         r4 = r3;
    0x0003aa60 mov r3, r0                                            |         r3 = r0;
    0x0003aa62 umlal r4, r3, r2, r1                                  |         __asm ("umlal r4, r3, r2, r1");
    0x0003aa66 movs r1, 0                                            |         r1 = 0;
    0x0003aa68 mov r0, r8                                            |         r0 = r8;
    0x0003aa6a str r1, [sp]                                          |         *(sp) = r1;
    0x0003aa6c mov r2, r4                                            |         r2 = r4;
    0x0003aa6e bl 0x39ea0                                            |         fcn_00039ea0 (r0, r1, r2, r3);
    0x0003aa72 b 0x3a9ee                                             |         
                                                                     |     } while (1);
                                                                     | label_14:
    0x0003aa74 ldr r1, [pc, 0xa8]                                    |     
    0x0003aa76 add r1, pc                                            |     r1 = 0x7559a;
    0x0003aa78 ldr r3, [r1, 0x10]                                    |     r3 = *(0x755aa);
                                                                     |     if (r3 == 0) {
    0x0003aa7a cbnz r3, 0x3aa8c                                      |         
    0x0003aa7c ldr r2, [pc, 0xa4]                                    |         
    0x0003aa7e movs r3, 8                                            |         r3 = 8;
    0x0003aa80 ldr r0, [pc, 0xa4]                                    |         
    0x0003aa82 adds r1, 0x10                                         |         r1 += 0x10;
    0x0003aa84 add r2, pc                                            |         r2 = "rtponviftimestamp";
    0x0003aa86 add r0, pc                                            |         r0 = 0x755b2;
    0x0003aa88 blx 0xdaa0                                            |         fcn_0000daa0 ();
                                                                     |     }
    0x0003aa8c ldr r1, [pc, 0x9c]                                    |     
    0x0003aa8e movs r2, 1                                            |     r2 = 1;
    0x0003aa90 ldr r3, [pc, 0x9c]                                    |     
    0x0003aa92 ldr r0, [sp, 0x1c]                                    |     r0 = var_1ch;
    0x0003aa94 add r1, pc                                            |     
    0x0003aa96 ldr r1, [r1, 0x10]                                    |     r1 = *(0x755d4);
    0x0003aa98 add r3, pc                                            |     r3 = 0x755cc;
    0x0003aa9a blx 0x10398                                           |     fcn_00010398 ();
    0x0003aa9e b 0x3a854                                             |     goto label_3;
                                                                     | label_19:
    0x0003aaa0 ldr r1, [pc, 0x90]                                    |     
    0x0003aaa2 add r1, pc                                            |     r1 = 0x755da;
    0x0003aaa4 ldr r3, [r1, 0x10]                                    |     r3 = *(0x755ea);
                                                                     |     if (r3 == 0) {
    0x0003aaa6 cbnz r3, 0x3aab8                                      |         
    0x0003aaa8 ldr r2, [pc, 0x8c]                                    |         
    0x0003aaaa movs r3, 8                                            |         r3 = 8;
    0x0003aaac ldr r0, [pc, 0x8c]                                    |         
    0x0003aaae adds r1, 0x10                                         |         r1 += 0x10;
    0x0003aab0 add r2, pc                                            |         r2 = 0x755ec;
    0x0003aab2 add r0, pc                                            |         r0 = 0x755f2;
    0x0003aab4 blx 0xdaa0                                            |         fcn_0000daa0 ();
                                                                     |     }
    0x0003aab8 ldr r1, [pc, 0x84]                                    |     
    0x0003aaba movs r2, 1                                            |     r2 = 1;
    0x0003aabc ldr r3, [pc, 0x84]                                    |     
    0x0003aabe ldr r0, [sp, 0x1c]                                    |     r0 = var_1ch;
    0x0003aac0 add r1, pc                                            |     
    0x0003aac2 ldr r1, [r1, 0x10]                                    |     r1 = *(0x75614);
    0x0003aac4 add r3, pc                                            |     r3 = 0x7560c;
    0x0003aac6 blx 0x10398                                           |     fcn_00010398 ();
    0x0003aac8 stcl p6, c14, [r8], -0x30c                            |     __asm ("stcl p6, c14, [r8], -aav.0x000000ff");
                                                                     | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x3af3c */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.0003af3c ()                              | void fcn_0003af3c (int16_t arg_58h, int16_t arg_5ch, int16_t arg1, int16_t arg4, int16_t protocol) {
                                                         |     int32_t var_0h;
                                                         |     int32_t var_0h_2;
                                                         |     int16_t var_8h;
                                                         |     int16_t var_1ch;
                                                         |     r0 = arg1;
                                                         |     r3 = arg4;
                                                         |     r1 = protocol;
    0x0003af3c mvnsmi lr, 0xb4000                        |     __asm ("mvnsmi lr, aav.0x000000ff");
    0x0003af40 mov r4, r0                                |     r4 = r0;
    0x0003af42 ldr r6, [r0, 0x40]                        |     r6 = *((r0 + 0x40));
    0x0003af44 mov r5, r1                                |     r5 = r1;
    0x0003af46 vpush {d8, d9, d10}                       |     __asm ("vpush {d8, d9, d10}");
    0x0003af4a sub sp, 0x24                              |     
    0x0003af4c ldr.w ip, [sp, 0x58]                      |     ip = *(arg_58h);
    0x0003af50 ldrd lr, r7, [sp, 0x5c]                   |     __asm ("ldrd lr, r7, [arg_5ch]");
    0x0003af54 str r1, [r0, 0x40]                        |     *((r0 + 0x40)) = r1;
    0x0003af56 cmp r6, 7                                 |     
                                                         |     if (r6 > 7) {
    0x0003af58 bhi 0x3af78                               |         goto label_4;
                                                         |     }
                                                         |     /* switch table (8 cases) at 0x3af5e */
    0x0003af5a tbb [pc, r6]                              |     __asm ("tbb aav.0x000000ff");
    0x0003af66 cmp r5, 0                                 |     
                                                         |     if (r5 == 0) {
    0x0003af68 beq.w 0x3b7ea                             |         goto label_5;
                                                         |     }
    0x0003af6a strh r7, [r7, 0x20]                       |     *((r7 + 0x20)) = r7;
                                                         |     do {
                                                         | label_0:
    0x0003af6c invalid                                   |         
                                                         | label_2:
    0x0003af6e add sp, 0x24                              |         
    0x0003af70 vpop {d8, d9, d10}                        |         __asm ("vpop {d8, d9, d10}");
    0x0003af74 pop.w {r4, r5, r6, r7, r8, sb, pc}        |         
                                                         | label_4:
    0x0003af78 cmp r5, 0                                 |         
                                                         |         if (r5 == 0) {
    0x0003af7a beq.w 0x3b784                             |             goto label_6;
                                                         |         }
    0x0003af7e subs r5, 6                                |         r5 -= 6;
    0x0003af80 cmp r5, 1                                 |         
    0x0003af82 bls 0x3af6c                               |         
                                                         |     } while (r5 < 1);
    0x0003af84 ldr.w r1, [pc, 0x50c]                     |     
    0x0003af88 add r1, pc                                |     r1 = 0x76420;
    0x0003af8a ldr r3, [r1, 0x10]                        |     r3 = "max-ptime";
                                                         |     if (r3 == 0) {
    0x0003af8c cbnz r3, 0x3afa2                          |         
    0x0003af8e ldr.w r2, [pc, 0x508]                     |         
    0x0003af92 movs r3, 8                                |         r3 = 8;
    0x0003af94 ldr.w r0, [pc, 0x504]                     |         
    0x0003af98 adds r1, 0x10                             |         r1 += 0x10;
    0x0003af9a add r2, pc                                |         r2 = 0x76438;
    0x0003af9c add r0, pc                                |         r0 = "scale-rtptime";
    0x0003af9e blx 0xdaa0                                |         fcn_0000daa0 ();
                                                         |     }
    0x0003afa2 ldr.w r1, [pc, 0x4fc]                     |     
    0x0003afa6 movs r2, 2                                |     r2 = 2;
    0x0003afa8 ldr.w r3, [pc, 0x4f8]                     |     
    0x0003afac mov r0, r7                                |     r0 = r7;
    0x0003afae add r1, pc                                |     
    0x0003afb0 ldr r1, [r1, 0x10]                        |     r1 = *(0x76464);
    0x0003afb2 add r3, pc                                |     r3 = 0x7645a;
    0x0003afb4 blx 0x10398                               |     fcn_00010398 ();
                                                         | label_1:
    0x0003afb8 movs r3, 7                                |     r3 = 7;
    0x0003afba movs r0, 0                                |     r0 = 0;
    0x0003afbc str r3, [r4, 0x40]                        |     *((r4 + 0x40)) = r3;
    0x0003afbe add sp, 0x24                              |     
    0x0003afc0 vpop {d8, d9, d10}                        |     __asm ("vpop {d8, d9, d10}");
    0x0003afc4 pop.w {r4, r5, r6, r7, r8, sb, pc}        |     
    0x0003afc8 cmp r5, 7                                 |     
                                                         |     if (r5 > 7) {
    0x0003afca bhi 0x3af6c                               |         goto label_0;
                                                         |     }
    0x0003afcc adr r3, 8                                 |     r3 = 8;
    0x0003afce ldr.w r5, [r3, r5, lsl 2]                 |     offset_0 = r5 << 2;
                                                         |     r5 = *((r3 + offset_0));
    0x0003afd2 add r3, r5                                |     r3 += r5;
                                                         |     /* switch table (8 cases) at 0x3afd8 */
    0x0003afd4 bx r3                                     |     return uint32_t (*r3)() ();
    0x0003aff8 cmp r5, 7                                 |     
                                                         |     if (r5 > 7) {
    0x0003affa bhi.w 0x3bb04                             |         goto label_7;
                                                         |     }
    0x0003affe adr r1, 8                                 |     r1 = 8;
    0x0003b000 ldr.w r5, [r1, r5, lsl 2]                 |     offset_1 = r5 << 2;
                                                         |     r5 = *((r1 + offset_1));
    0x0003b004 add r1, r5                                |     r1 += r5;
                                                         |     /* switch table (8 cases) at 0x3b008 */
    0x0003b006 bx r1                                     |     return uint32_t (*r1)() ();
    0x0003b028 cmp r5, 7                                 |     
                                                         |     if (r5 > 7) {
    0x0003b02a bhi.w 0x3bb04                             |         goto label_7;
                                                         |     }
    0x0003b02e adr r3, 8                                 |     r3 = 8;
    0x0003b030 ldr.w r5, [r3, r5, lsl 2]                 |     offset_2 = r5 << 2;
                                                         |     r5 = *((r3 + offset_2));
    0x0003b034 add r3, r5                                |     r3 += r5;
                                                         |     /* switch table (8 cases) at 0x3b038 */
    0x0003b036 bx r3                                     |     return uint32_t (*r3)() ();
    0x0003b058 cmp r5, 7                                 |     
                                                         |     if (r5 > 7) {
    0x0003b05a bhi.w 0x3bb04                             |         goto label_7;
                                                         |     }
    0x0003b05e adr r3, 8                                 |     r3 = 8;
    0x0003b060 ldr.w r5, [r3, r5, lsl 2]                 |     offset_3 = r5 << 2;
                                                         |     r5 = *((r3 + offset_3));
    0x0003b064 add r3, r5                                |     r3 += r5;
                                                         |     /* switch table (8 cases) at 0x3b068 */
    0x0003b066 bx r3                                     |     return uint32_t (*r3)() ();
    0x0003b088 cmp r5, 5                                 |     
                                                         |     if (r5 == 5) {
    0x0003b08a beq.w 0x3b776                             |         goto label_8;
                                                         |     }
                                                         |     if (r5 > 5) {
    0x0003b08e bhi.w 0x3af6c                             |         goto label_0;
                                                         |     }
    0x0003b092 ldr r0, [r4, 0x44]                        |     r0 = *((r4 + 0x44));
    0x0003b094 movs r1, 1                                |     r1 = 1;
    0x0003b096 blx 0xe0ac                                |     r0 = fcn_0000e0ac ();
    0x0003b09a cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0003b09c beq.w 0x3b39a                             |         goto label_9;
                                                         |     }
    0x0003b0a0 ldr.w r2, [pc, 0x404]                     |     
    0x0003b0a4 movs r1, 0x20                             |     r1 = 0x20;
    0x0003b0a6 ldr r3, [r4, 0x28]                        |     r3 = *((r4 + 0x28));
    0x0003b0a8 movs r0, 0                                |     r0 = 0;
    0x0003b0aa movs r5, 0                                |     r5 = 0;
    0x0003b0ac add r2, pc                                |     r2 = "Could not create signed-video element.";
    0x0003b0ae mov r8, r5                                |     r8 = r5;
    0x0003b0b0 blx 0xe318                                |     gst_element_error_printf ()
    0x0003b0b4 ldr r3, [r4, 0x5c]                        |     r3 = *((r4 + 0x5c));
    0x0003b0b6 ldr r2, [r3, 4]                           |     r2 = *((r3 + 4));
                                                         |     if (r2 == 0) {
    0x0003b0b8 cbz r2, 0x3b0f4                           |         goto label_3;
                                                         |     }
                                                         |     do {
    0x0003b0ba ldr r2, [r3]                              |         r2 = *(r3);
    0x0003b0bc ldr.w r6, [r2, r5, lsl 2]                 |         offset_4 = r5 << 2;
                                                         |         r6 = *((r2 + offset_4));
    0x0003b0c0 ldr r0, [r6, 4]                           |         r0 = *((r6 + 4));
                                                         |         if (r0 != 0) {
    0x0003b0c2 cbz r0, 0x3b0ce                           |             
    0x0003b0c4 bl 0x3ff38                                |             fcn_0003ff38 (r0);
    0x0003b0c8 ldr r3, [r4, 0x5c]                        |             r3 = *((r4 + 0x5c));
    0x0003b0ca str.w r8, [r6, 4]                         |             __asm ("str.w r8, [r6, 4]");
    0x0003b0cc strh r4, [r0]                             |             *(r0) = r4;
                                                         |         }
    0x0003b0ce ldr r1, [r3, 4]                           |         r1 = *((r3 + 4));
    0x0003b0d0 adds r5, 1                                |         r5++;
    0x0003b0d2 mov r2, r3                                |         r2 = r3;
    0x0003b0d4 cmp r1, r5                                |         
    0x0003b0d6 bhi 0x3b0ba                               |         
                                                         |     } while (r1 > r5);
                                                         |     if (r1 == 0) {
    0x0003b0d8 cbz r1, 0x3b0f4                           |         goto label_3;
                                                         |     }
    0x0003b0da movs r5, 0                                |     r5 = 0;
                                                         |     do {
    0x0003b0dc ldr r3, [r2]                              |         r3 = *(r2);
    0x0003b0de ldr r1, [r4, 0x60]                        |         r1 = *((r4 + 0x60));
    0x0003b0e0 ldr.w r3, [r3, r5, lsl 2]                 |         offset_5 = r5 << 2;
                                                         |         r3 = *((r3 + offset_5));
    0x0003b0e2 adds r0, 0x25                             |         r0 += 0x25;
    0x0003b0e4 adds r5, 1                                |         r5++;
    0x0003b0e6 ldr r0, [r3, 0x10]                        |         r0 = *((r3 + 0x10));
    0x0003b0e8 blx 0xf000                                |         fcn_0000f000 ();
    0x0003b0ec ldr r2, [r4, 0x5c]                        |         r2 = *((r4 + 0x5c));
    0x0003b0ee ldr r3, [r2, 4]                           |         r3 = *((r2 + 4));
    0x0003b0f0 cmp r3, r5                                |         
    0x0003b0f2 bhi 0x3b0dc                               |         
                                                         |     } while (r3 > r5);
                                                         | label_3:
    0x0003b0f4 mov r1, r7                                |     r1 = r7;
    0x0003b0f6 mov r0, r4                                |     r0 = r4;
    0x0003b0f8 bl 0x39c70                                |     r0 = fcn_00039c70 (r0);
    0x0003b0fc cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x0003b0fe bne.w 0x3af6c                             |         goto label_0;
                                                         |     }
    0x0003b102 b 0x3afb8                                 |     goto label_1;
                                                         | label_9:
    0x0003b39a ldr r1, [pc, 0x13c]                       |     
    0x0003b39c add r1, pc                                |     r1 = 0x7687a;
    0x0003b39e ldr r3, [r1, 0x10]                        |     r3 = *(0x7688a);
                                                         |     if (r3 == 0) {
    0x0003b3a0 cbnz r3, 0x3b3b2                          |         
    0x0003b3a2 ldr r2, [pc, 0x138]                       |         
    0x0003b3a4 movs r3, 8                                |         r3 = 8;
    0x0003b3a6 ldr r0, [pc, 0x138]                       |         
    0x0003b3a8 adds r1, 0x10                             |         r1 += 0x10;
    0x0003b3aa add r2, pc                                |         r2 = 0x7688c;
    0x0003b3ac add r0, pc                                |         r0 = 0x76892;
    0x0003b3ae blx 0xdaa0                                |         fcn_0000daa0 ();
                                                         |     }
    0x0003b3b2 ldr r1, [pc, 0x130]                       |     
    0x0003b3b4 movs r2, 1                                |     r2 = 1;
    0x0003b3b6 ldr r3, [pc, 0x130]                       |     
    0x0003b3b8 mov r0, r7                                |     r0 = r7;
    0x0003b3ba add r1, pc                                |     
    0x0003b3bc ldr r1, [r1, 0x10]                        |     r1 = *(0x768b4);
    0x0003b3be add r3, pc                                |     r3 = 0x768ac;
    0x0003b3c0 blx 0x10398                               |     fcn_00010398 ();
    0x0003b3c4 b 0x3afb8                                 |     goto label_1;
                                                         |     do {
    0x0003b3d2 mov.w r2, -1                              |         r2 = -1;
    0x0003b3d6 mov.w r3, -1                              |         r3 = -1;
    0x0003b3d8 adds r3, 0xff                             |         r3 += 0xff;
    0x0003b3da strd ip, lr, [sp]                         |         __asm ("strd ip, lr, [sp]");
    0x0003b3de str r5, [sp, 0x1c]                        |         var_1ch = r5;
    0x0003b3e0 blx 0x1051c                               |         fcn_0001051c ();
    0x0003b3e4 mov r0, r5                                |         r0 = r5;
    0x0003b3e6 b 0x3af6e                                 |         goto label_2;
                                                         | label_8:
    0x0003b776 ldr r1, [pc, 0x3f0]                       |         
    0x0003b778 add r3, sp, 0x1c                          |         r3 += var_1ch;
    0x0003b77a ldr r0, [r4, 0x60]                        |         r0 = *((r4 + 0x60));
    0x0003b77c movs r5, 1                                |         r5 = 1;
    0x0003b77e str r3, [sp, 8]                           |         var_8h = r3;
    0x0003b780 add r1, pc                                |         r1 = 0x772ee;
    0x0003b782 b 0x3b3d2                                 |         
                                                         |     } while (1);
                                                         | label_6:
    0x0003b784 ldr r0, [r4, 0x44]                        |     r0 = *((r4 + 0x44));
    0x0003b786 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0003b788 beq.w 0x3af6c                             |         goto label_0;
                                                         |     }
    0x0003b78c movs r1, 1                                |     r1 = 1;
    0x0003b78e blx 0xe0ac                                |     r0 = fcn_0000e0ac ();
    0x0003b792 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0003b794 beq.w 0x3b9d6                             |         goto label_10;
                                                         |     }
    0x0003b798 ldr r3, [r4, 0x5c]                        |     r3 = *((r4 + 0x5c));
    0x0003b79a mov r8, r5                                |     r8 = r5;
    0x0003b79c ldr r2, [r3, 4]                           |     r2 = *((r3 + 4));
                                                         |     if (r2 == 0) {
    0x0003b79e cbz r2, 0x3b7da                           |         goto label_11;
                                                         |     }
                                                         |     do {
    0x0003b7a0 ldr r2, [r3]                              |         r2 = *(r3);
    0x0003b7a2 ldr.w r6, [r2, r5, lsl 2]                 |         offset_6 = r5 << 2;
                                                         |         r6 = *((r2 + offset_6));
    0x0003b7a6 ldr r0, [r6, 4]                           |         r0 = *((r6 + 4));
                                                         |         if (r0 != 0) {
    0x0003b7a8 cbz r0, 0x3b7b4                           |             
    0x0003b7aa bl 0x3ff38                                |             fcn_0003ff38 (r0);
    0x0003b7ae ldr r3, [r4, 0x5c]                        |             r3 = *((r4 + 0x5c));
    0x0003b7b0 str.w r8, [r6, 4]                         |             __asm ("str.w r8, [r6, 4]");
                                                         |         }
    0x0003b7b4 ldr r1, [r3, 4]                           |         r1 = *((r3 + 4));
    0x0003b7b6 adds r5, 1                                |         r5++;
    0x0003b7b8 mov r2, r3                                |         r2 = r3;
    0x0003b7ba cmp r1, r5                                |         
    0x0003b7bc bhi 0x3b7a0                               |         
                                                         |     } while (r1 > r5);
                                                         |     if (r1 == 0) {
    0x0003b7be cbz r1, 0x3b7da                           |         goto label_11;
                                                         |     }
    0x0003b7c0 movs r5, 0                                |     r5 = 0;
                                                         |     do {
    0x0003b7c2 ldr r3, [r2]                              |         r3 = *(r2);
    0x0003b7c4 ldr r1, [r4, 0x60]                        |         r1 = *((r4 + 0x60));
    0x0003b7c6 ldr.w r3, [r3, r5, lsl 2]                 |         offset_7 = r5 << 2;
                                                         |         r3 = *((r3 + offset_7));
    0x0003b7ca adds r5, 1                                |         r5++;
    0x0003b7cc ldr r0, [r3, 0x10]                        |         r0 = *((r3 + 0x10));
    0x0003b7ce blx 0xf000                                |         fcn_0000f000 ();
    0x0003b7d2 ldr r2, [r4, 0x5c]                        |         r2 = *((r4 + 0x5c));
    0x0003b7d4 ldr r3, [r2, 4]                           |         r3 = *((r2 + 4));
    0x0003b7d6 cmp r3, r5                                |         
    0x0003b7d8 bhi 0x3b7c2                               |         
                                                         |     } while (r3 > r5);
                                                         | label_11:
    0x0003b7da mov r1, r7                                |     r1 = r7;
    0x0003b7dc mov r0, r4                                |     r0 = r4;
    0x0003b7de bl 0x3a4bc                                |     r0 = fcn_0003a4bc (r0, r1);
    0x0003b7e2 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0003b7e4 beq.w 0x3afb8                             |         goto label_1;
                                                         |     }
    0x0003b7e8 b 0x3b0f4                                 |     goto label_3;
                                                         | label_5:
    0x0003b7ea ldr r0, [r4, 0x44]                        |     r0 = *((r4 + 0x44));
    0x0003b7ec movs r1, 1                                |     r1 = 1;
    0x0003b7ee blx 0xe0ac                                |     r0 = fcn_0000e0ac ();
                                                         |     if (r0 == 0) {
    0x0003b7f2 cbnz r0, 0x3b822                          |         
    0x0003b7f4 ldr r1, [pc, 0x374]                       |         
    0x0003b7f6 add r1, pc                                |         r1 = 0x77366;
    0x0003b7f8 ldr r3, [r1, 0x10]                        |         r3 = *(0x77376);
                                                         |         if (r3 == 0) {
    0x0003b7fa cbnz r3, 0x3b80c                          |             
    0x0003b7fc ldr r2, [pc, 0x370]                       |             
    0x0003b7fe movs r3, 8                                |             r3 = 8;
    0x0003b800 ldr r0, [pc, 0x370]                       |             
    0x0003b802 adds r1, 0x10                             |             r1 += 0x10;
    0x0003b804 add r2, pc                                |             r2 = 0x77378;
    0x0003b806 add r0, pc                                |             r0 = 0x7737e;
    0x0003b808 blx 0xdaa0                                |             fcn_0000daa0 ();
                                                         |         }
    0x0003b80c ldr r1, [pc, 0x368]                       |         
    0x0003b80e movs r2, 1                                |         r2 = 1;
    0x0003b810 ldr r3, [pc, 0x368]                       |         
    0x0003b812 mov r0, r7                                |         r0 = r7;
    0x0003b814 add r1, pc                                |         
    0x0003b816 ldr r1, [r1, 0x10]                        |         r1 = imp.g_direct_hash;
    0x0003b818 add r3, pc                                |         r3 = "pop-user";
    0x0003b81a blx 0x10398                               |         fcn_00010398 ();
    0x0003b81e b.w 0x3afb8                               |         goto label_1;
                                                         |     }
    0x0003b822 ldr r2, [pc, 0x35c]                       |     
    0x0003b824 movs r1, 0x20                             |     r1 = 0x20;
    0x0003b826 ldr r3, [r4, 0x28]                        |     r3 = *((r4 + 0x28));
    0x0003b828 mov r0, r5                                |     r0 = r5;
    0x0003b82a mov r8, r5                                |     r8 = r5;
    0x0003b82c add r2, pc                                |     r2 = 0x773b2;
    0x0003b82e blx 0xe318                                |     gst_element_error_printf ()
    0x0003b832 ldr r3, [r4, 0x5c]                        |     r3 = *((r4 + 0x5c));
    0x0003b834 ldr r2, [r3, 4]                           |     r2 = *((r3 + 4));
    0x0003b836 cmp r2, 0                                 |     
                                                         |     if (r2 == 0) {
    0x0003b838 beq.w 0x3b0f4                             |         goto label_3;
                                                         |     }
                                                         |     do {
    0x0003b83c ldr r2, [r3]                              |         r2 = *(r3);
    0x0003b83e ldr.w r6, [r2, r5, lsl 2]                 |         offset_8 = r5 << 2;
                                                         |         r6 = *((r2 + offset_8));
    0x0003b842 ldr r0, [r6, 4]                           |         r0 = *((r6 + 4));
                                                         |         if (r0 != 0) {
    0x0003b844 cbz r0, 0x3b850                           |             
    0x0003b846 bl 0x3ff38                                |             fcn_0003ff38 (r0);
    0x0003b84a ldr r3, [r4, 0x5c]                        |             r3 = *((r4 + 0x5c));
    0x0003b84c str.w r8, [r6, 4]                         |             __asm ("str.w r8, [r6, 4]");
                                                         |         }
    0x0003b850 ldr r1, [r3, 4]                           |         r1 = *((r3 + 4));
    0x0003b852 adds r5, 1                                |         r5++;
    0x0003b854 mov r2, r3                                |         r2 = r3;
    0x0003b856 cmp r1, r5                                |         
    0x0003b858 bhi 0x3b83c                               |         
                                                         |     } while (r1 > r5);
    0x0003b85a cmp r1, 0                                 |     
                                                         |     if (r1 == 0) {
    0x0003b85c beq.w 0x3b0f4                             |         goto label_3;
                                                         |     }
    0x0003b860 movs r5, 0                                |     r5 = 0;
                                                         |     do {
    0x0003b862 ldr r3, [r2]                              |         r3 = *(r2);
    0x0003b864 ldr r1, [r4, 0x60]                        |         r1 = *((r4 + 0x60));
    0x0003b866 ldr.w r3, [r3, r5, lsl 2]                 |         offset_9 = r5 << 2;
                                                         |         r3 = *((r3 + offset_9));
    0x0003b86a adds r5, 1                                |         r5++;
    0x0003b86c ldr r0, [r3, 0x10]                        |         r0 = *((r3 + 0x10));
    0x0003b86e blx 0xf000                                |         fcn_0000f000 ();
    0x0003b872 ldr r2, [r4, 0x5c]                        |         r2 = *((r4 + 0x5c));
    0x0003b874 ldr r3, [r2, 4]                           |         r3 = *((r2 + 4));
    0x0003b876 cmp r3, r5                                |         
    0x0003b878 bhi 0x3b862                               |         
                                                         |     } while (r3 > r5);
    0x0003b87a b 0x3b0f4                                 |     goto label_3;
                                                         | label_10:
    0x0003b9d6 ldr r1, [pc, 0x1d8]                       |     
    0x0003b9d8 add r1, pc                                |     r1 = 0x7758e;
    0x0003b9da ldr r3, [r1, 0x10]                        |     r3 = *(0x7759e);
                                                         |     if (r3 == 0) {
    0x0003b9dc cbnz r3, 0x3b9ee                          |         
    0x0003b9de ldr r2, [pc, 0x1d4]                       |         
    0x0003b9e0 movs r3, 8                                |         r3 = 8;
    0x0003b9e2 ldr r0, [pc, 0x1d4]                       |         
    0x0003b9e4 adds r1, 0x10                             |         r1 += 0x10;
    0x0003b9e6 add r2, pc                                |         r2 = 0x775a0;
    0x0003b9e8 add r0, pc                                |         r0 = 0x775a6;
    0x0003b9ea blx 0xdaa0                                |         fcn_0000daa0 ();
                                                         |     }
    0x0003b9ee ldr r1, [pc, 0x1cc]                       |     
    0x0003b9f0 movs r2, 1                                |     r2 = 1;
    0x0003b9f2 ldr r3, [pc, 0x1cc]                       |     
    0x0003b9f4 mov r0, r7                                |     r0 = r7;
    0x0003b9f6 add r1, pc                                |     
    0x0003b9f8 ldr r1, [r1, 0x10]                        |     r1 = imp.g_direct_hash;
    0x0003b9fa add r3, pc                                |     r3 = 0x775c0;
    0x0003b9fc blx 0x10398                               |     fcn_00010398 ();
    0x0003ba00 b.w 0x3afb8                               |     goto label_1;
                                                         | label_7:
    0x0003bb04 movs r0, 0xaa                             |     r0 = 0xaa;
    0x0003bb06 movs r5, r0                               |     r5 = r0;
    0x0003bb08 lsls r4, r3, 0x1e                         |     r4 = r3 << 0x1e;
    0x0003bb0a movs r5, r0                               |     r5 = r0;
    0x0003bb0c asrs r2, r4, 8                            |     r2 = r4 >> 8;
    0x0003bb0e movs r3, r0                               |     r3 = r0;
    0x0003bb10 movs r0, 0x84                             |     r0 = 0x84;
    0x0003bb12 movs r5, r0                               |     r5 = r0;
    0x0003bb14 asrs r0, r2, 0x12                         |     r0 = r2 >> 0x12;
    0x0003bb16 movs r3, r0                               |     r3 = r0;
    0x0003bb18 asrs r6, r0, 0xd                          |     r6 = r0 >> 0xd;
    0x0003bb1a movs r3, r0                               |     r3 = r0;
    0x0003bb1c asrs r6, r0, 0xc                          |     r6 = r0 >> 0xc;
    0x0003bb1e movs r3, r0                               |     r3 = r0;
    0x0003bb20 movs r0, 0x10                             |     r0 = 0x10;
    0x0003bb22 movs r5, r0                               |     r5 = r0;
    0x0003bb24 lsls r2, r0, 0x1c                         |     r2 = r0 << 0x1c;
    0x0003bb26 movs r5, r0                               |     r5 = r0;
    0x0003bb28 asrs r0, r1, 6                            |     r0 = r1 >> 6;
    0x0003bb2a movs r3, r0                               |     r3 = r0;
    0x0003bb2c subs r2, r5, 7                            |     r2 = r5 - 7;
    0x0003bb2e movs r5, r0                               |     r5 = r0;
    0x0003bb30 asrs r6, r6, 0xf                          |     r6 >>= 0xf;
    0x0003bb32 movs r3, r0                               |     r3 = r0;
    0x0003bb34 asrs r0, r6, 9                            |     r0 = r6 >> 9;
    0x0003bb36 movs r3, r0                               |     r3 = r0;
    0x0003bb38 subs r6, r7, 5                            |     r6 = r7 - 5;
    0x0003bb3a movs r5, r0                               |     r5 = r0;
    0x0003bb3c lsls r0, r6, 0x19                         |     r0 = r6 << 0x19;
    0x0003bb3e movs r5, r0                               |     r5 = r0;
    0x0003bb40 asrs r6, r6, 3                            |     r6 >>= 3;
    0x0003bb42 movs r3, r0                               |     r3 = r0;
    0x0003bb44 subs r0, r3, 5                            |     r0 = r3 - 5;
    0x0003bb46 movs r5, r0                               |     r5 = r0;
    0x0003bb48 asrs r0, r2, 0xf                          |     r0 = r2 >> 0xf;
    0x0003bb4a movs r3, r0                               |     r3 = r0;
    0x0003bb4c asrs r6, r0, 0xe                          |     r6 = r0 >> 0xe;
    0x0003bb4e movs r3, r0                               |     r3 = r0;
    0x0003bb50 asrs r6, r1, 7                            |     r6 = r1 >> 7;
    0x0003bb52 movs r3, r0                               |     r3 = r0;
    0x0003bb54 subs r0, r0, 2                            |     r0 -= 2;
    0x0003bb56 movs r5, r0                               |     r5 = r0;
    0x0003bb58 lsls r2, r6, 0x15                         |     r2 = r6 << 0x15;
    0x0003bb5a movs r5, r0                               |     r5 = r0;
    0x0003bb5c lsrs r0, r7, 0x1f                         |     r0 = r7 >> 0x1f;
    0x0003bb5e movs r3, r0                               |     r3 = r0;
    0x0003bb60 subs r6, r3, 1                            |     r6 = r3 - 1;
    0x0003bb62 movs r5, r0                               |     r5 = r0;
    0x0003bb64 asrs r2, r1, 5                            |     r2 = r1 >> 5;
    0x0003bb66 movs r3, r0                               |     r3 = r0;
    0x0003bb68 asrs r0, r5, 4                            |     r0 = r5 >> 4;
    0x0003bb6a movs r3, r0                               |     r3 = r0;
    0x0003bb6c adds r2, r2, 7                            |     r2 += 7;
    0x0003bb6e movs r5, r0                               |     r5 = r0;
    0x0003bb70 lsls r0, r1, 0x13                         |     r0 = r1 << 0x13;
    0x0003bb72 movs r5, r0                               |     r5 = r0;
    0x0003bb74 lsrs r6, r1, 0x1d                         |     r6 = r1 >> 0x1d;
    0x0003bb76 movs r3, r0                               |     r3 = r0;
    0x0003bb78 adds r4, r6, 6                            |     r4 = r6 + 6;
    0x0003bb7a movs r5, r0                               |     r5 = r0;
    0x0003bb7c asrs r0, r0, 7                            |     r0 >>= 7;
    0x0003bb7e movs r3, r0                               |     r3 = r0;
    0x0003bb80 asrs r0, r1, 7                            |     r0 = r1 >> 7;
    0x0003bb82 movs r3, r0                               |     r3 = r0;
    0x0003bb84 adds r0, r3, 4                            |     r0 = r3 + 4;
    0x0003bb86 movs r3, r0                               |     r3 = r0;
    0x0003bb88 lsrs r2, r5, 0x1c                         |     r2 = r5 >> 0x1c;
    0x0003bb8a movs r3, r0                               |     r3 = r0;
    0x0003bb8c asrs r2, r2, 5                            |     r2 >>= 5;
    0x0003bb8e movs r3, r0                               |     r3 = r0;
    0x0003bb90 asrs r2, r2, 4                            |     r2 >>= 4;
    0x0003bb92 movs r3, r0                               |     r3 = r0;
    0x0003bb94 adds r0, r2, 2                            |     r0 = r2 + 2;
    0x0003bb96 movs r5, r0                               |     r5 = r0;
    0x0003bb98 lsls r6, r0, 0xe                          |     r6 = r0 << 0xe;
    0x0003bb9a movs r5, r0                               |     r5 = r0;
    0x0003bb9c lsrs r4, r1, 0x18                         |     r4 = r1 >> 0x18;
    0x0003bb9e movs r3, r0                               |     r3 = r0;
    0x0003bba0 adds r2, r6, 1                            |     r2 = r6 + 1;
    0x0003bba2 movs r5, r0                               |     r5 = r0;
    0x0003bba4 asrs r6, r7, 1                            |     r6 = r7 >> 1;
    0x0003bba6 movs r3, r0                               |     r3 = r0;
    0x0003bba8 asrs r0, r1, 2                            |     r0 = r1 >> 2;
    0x0003bbaa movs r3, r0                               |     r3 = r0;
    0x0003bbac lsrs r6, r2, 0x1b                         |     r6 = r2 >> 0x1b;
    0x0003bbae movs r3, r0                               |     r3 = r0;
    0x0003bbb0 subs r0, r6, r7                           |     r0 = r6 - r7;
    0x0003bbb2 movs r5, r0                               |     r5 = r0;
    0x0003bbb4 lsls r6, r4, 0xb                          |     r6 = r4 << 0xb;
    0x0003bbb6 movs r5, r0                               |     r5 = r0;
    0x0003bbb8 lsrs r4, r5, 0x15                         |     r4 = r5 >> 0x15;
    0x0003bbba movs r3, r0                               |     r3 = r0;
    0x0003bbbc subs r2, r2, r7                           |     r2 -= r7;
    0x0003bbbe movs r5, r0                               |     r5 = r0;
    0x0003bbc0 lsrs r6, r3, 0x1f                         |     r6 = r3 >> 0x1f;
    0x0003bbc2 movs r3, r0                               |     r3 = r0;
    0x0003bbc4 lsrs r0, r4, 0x19                         |     r0 = r4 >> 0x19;
    0x0003bbc6 movs r3, r0                               |     r3 = r0;
    0x0003bbc8 lsrs r6, r1, 0x19                         |     r6 = r1 >> 0x19;
    0x0003bbca movs r3, r0                               |     r3 = r0;
    0x0003bbcc push {r4, r5, r6, lr}                     |     
    0x0003bbce add.w r5, r0, 0x24                        |     r5 = r0 + 0x24;
    0x0003bbd2 mov r4, r0                                |     r4 = r0;
    0x0003bbd4 mov r0, r5                                |     r0 = r5;
    0x0003bbd6 add.w r6, r4, 0x2c                        |     r6 = r4 + 0x2c;
    0x0003bbda blx 0xf26c                                |     socket (r0, r1, r2);
    0x0003bbde ldr r3, [r4, 0x20]                        |     r3 = *((r4 + 0x20));
                                                         |     if (r3 != 0) {
    0x0003bbe0 cbnz r3, 0x3bbf0                          |         goto label_12;
                                                         |     }
                                                         |     do {
    0x0003bbe2 mov r1, r5                                |         r1 = r5;
    0x0003bbe4 mov r0, r6                                |         r0 = r6;
    0x0003bbe6 blx 0x10540                               |         fcn_00010540 ();
    0x0003bbea ldr r3, [r4, 0x20]                        |         r3 = *((r4 + 0x20));
    0x0003bbec cmp r3, 0                                 |         
    0x0003bbee beq 0x3bbe2                               |         
                                                         |     } while (r3 == 0);
                                                         | label_12:
    0x0003bbf0 mov r0, r5                                |     r0 = r5;
    0x0003bbf2 pop.w {r4, r5, r6, lr}                    |     
    0x0003bbf6 b.w 0xf544                                |     return void (*0xf544)() ();
                                                         | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x3c4d8 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0003c4d8 ()                                          | void fcn_0003c4d8 (int16_t arg_10h, int16_t arg1, int16_t arg2, int16_t arg3) {
                                                                     |     int16_t var_0h;
                                                                     |     int16_t var_4h;
                                                                     |     int16_t var_8h;
                                                                     |     int16_t var_ch;
                                                                     |     int16_t var_10h;
                                                                     |     int16_t var_18h;
                                                                     |     int16_t var_1ch;
                                                                     |     int16_t var_20h;
                                                                     |     int16_t var_24h;
                                                                     |     int16_t var_28h;
                                                                     |     int16_t var_2ch;
                                                                     |     int16_t var_30h;
                                                                     |     int16_t var_34h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
    0x0003c4d8 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0003c4dc mov r5, r0                                            |     r5 = r0;
    0x0003c4de ldr r3, [r0, 0x30]                                    |     r3 = *((r0 + 0x30));
    0x0003c4e0 mov r7, r1                                            |     r7 = r1;
    0x0003c4e2 mov r6, r2                                            |     r6 = r2;
    0x0003c4e4 ldr r0, [pc, 0xe4]                                    |     
    0x0003c4e6 vpush {d8}                                            |     __asm ("vpush {d8}");
    0x0003c4ea sub sp, 0x3c                                          |     
    0x0003c4ec add r0, pc                                            |     r0 = 0x78abc;
    0x0003c4ee str r0, [sp, 0x1c]                                    |     var_1ch = r0;
                                                                     |     if (r3 == 0) {
    0x0003c4f0 cbnz r3, 0x3c4fa                                      |         
    0x0003c4f2 ldr r3, [r5, 0x34]                                    |         r3 = *((r5 + 0x34));
    0x0003c4f4 cmp r3, 0                                             |         
                                                                     |         if (r3 == 0) {
    0x0003c4f6 beq.w 0x3cac6                                         |             goto label_11;
                                                                     |         }
                                                                     |     }
                                                                     | label_1:
    0x0003c4fa cmp r7, 0                                             |     
                                                                     |     if (r7 == 0) {
    0x0003c4fc beq 0x3c57c                                           |         goto label_12;
                                                                     |     }
    0x0003c4fe ldr r3, [r7, 4]                                       |     r3 = *((r7 + 4));
    0x0003c500 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0003c502 beq 0x3c57c                                           |         goto label_12;
                                                                     |     }
    0x0003c504 ldr.w sb, [pc, 0xc8]                                  |     
    0x0003c508 movs r4, 0                                            |     r4 = 0;
    0x0003c50a ldr.w fp, [pc, 0xc8]                                  |     
    0x0003c50e add sb, pc                                            |     sb = 0x78ae2;
    0x0003c510 add fp, pc                                            |     fp = 0x78aea;
    0x0003c512 add.w sl, sb, 0x10                                    |     sl = sb + 0x10;
    0x0003c516 b 0x3c51e                                             |     
                                                                     |     while (r0 != 0) {
    0x0003c518 ldr r3, [r7, 4]                                       |         r3 = *((r7 + 4));
    0x0003c51a cmp r3, r4                                            |         
                                                                     |         if (r3 < r4) {
    0x0003c51c bls 0x3c57c                                           |             goto label_12;
                                                                     |         }
                                                                     | label_0:
    0x0003c51e ldr r3, [r7]                                          |         r3 = *(r7);
    0x0003c520 mov r2, r6                                            |         r2 = r6;
    0x0003c522 mov r0, r5                                            |         r0 = r5;
    0x0003c524 ldr.w r1, [r3, r4, lsl 2]                             |         offset_0 = r4 << 2;
                                                                     |         r1 = *((r3 + offset_0));
    0x0003c528 adds r4, 1                                            |         r4++;
    0x0003c52a bl 0x3c0cc                                            |         r0 = fcn_0003c0cc (r0, r1, r2);
    0x0003c52e cmp r0, 0                                             |         
    0x0003c530 bne 0x3c518                                           |         
                                                                     |     }
    0x0003c532 ldr r2, [pc, 0xa4]                                    |     
    0x0003c534 movs r3, 8                                            |     r3 = 8;
    0x0003c536 ldr r0, [pc, 0xa4]                                    |     
    0x0003c538 mov r1, sl                                            |     r1 = sl;
    0x0003c53a ldr.w ip, [sb, 0x10]                                  |     ip = *((sb + 0x10));
    0x0003c53e ldr.w r8, [r6]                                        |     r8 = *(r6);
    0x0003c542 add r2, pc                                            |     r2 = 0x78b20;
    0x0003c544 add r0, pc                                            |     r0 = 0x78b26;
    0x0003c546 cmp.w ip, 0                                           |     
                                                                     |     if (ip == 0) {
    0x0003c54a bne 0x3c550                                           |         
    0x0003c54c blx 0xdaa0                                            |         fcn_0000daa0 ();
                                                                     |     }
    0x0003c550 ldr.w r1, [fp, 0x10]                                  |     r1 = *(arg_10h);
    0x0003c554 movs r2, 5                                            |     r2 = 5;
    0x0003c556 mov r0, r8                                            |     r0 = r8;
    0x0003c558 blx 0xee4c                                            |     g_signal_handler_disconnect ();
    0x0003c55c ldr r2, [pc, 0x80]                                    |     
    0x0003c55e mov r3, r0                                            |     r3 = r0;
    0x0003c560 movs r1, 0x20                                         |     r1 = 0x20;
    0x0003c562 movs r0, 0                                            |     r0 = 0;
    0x0003c564 add r2, pc                                            |     r2 = 0x78b48;
                                                                     |     if (r3 == 0) {
    0x0003c566 cbz r3, 0x3c5a6                                       |         goto label_2;
                                                                     |     }
    0x0003c568 ldr r3, [r6]                                          |     r3 = *(r6);
    0x0003c56a ldr r3, [r3, 8]                                       |     r3 = *((r3 + 8));
    0x0003c56c blx 0xe318                                            |     gst_element_error_printf ()
    0x0003c570 mov r0, r6                                            |     r0 = r6;
    0x0003c572 blx 0xf95c                                            |     gst_mini_object_replace ();
    0x0003c576 ldr r3, [r7, 4]                                       |     r3 = *((r7 + 4));
    0x0003c578 cmp r3, r4                                            |     
                                                                     |     if (r3 > r4) {
    0x0003c57a bhi 0x3c51e                                           |         goto label_0;
                                                                     |     }
                                                                     | label_12:
    0x0003c57c ldr r3, [r5, 0x5c]                                    |     r3 = *((r5 + 0x5c));
    0x0003c57e ldr r3, [r3, 4]                                       |     r3 = *((r3 + 4));
    0x0003c580 cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0003c582 beq.w 0x3cb04                                         |         goto label_13;
                                                                     |     }
    0x0003c586 mov.w r2, -1                                          |     r2 = -1;
    0x0003c58a mov.w r3, -1                                          |     r3 = -1;
    0x0003c58e movs r1, 0                                            |     r1 = 0;
    0x0003c590 mov r0, r5                                            |     r0 = r5;
    0x0003c592 str r6, [sp, 8]                                       |     var_8h = r6;
    0x0003c594 strd r2, r3, [sp]                                     |     __asm ("strd r2, r3, [sp]");
    0x0003c598 bl 0x3af3c                                            |     r0 = fcn_0003af3c (r0, r1, r2, r3, r4);
                                                                     |     if (r0 == 0) {
    0x0003c59c cbnz r0, 0x3c5e4                                      |         
                                                                     | label_3:
    0x0003c59e ldr r0, [r5, 0x5c]                                    |         r0 = *((r5 + 0x5c));
    0x0003c5a0 movs r1, 0                                            |         r1 = 0;
    0x0003c5a2 blx 0xf108                                            |         fcn_0000f108 ();
                                                                     | label_2:
    0x0003c5a6 mov.w r8, -1                                          |         r8 = -1;
    0x0003c5aa mov.w sb, -1                                          |         sb = -1;
    0x0003c5ae mov r0, r5                                            |         r0 = r5;
    0x0003c5b0 mov r2, r8                                            |         r2 = r8;
    0x0003c5b2 mov r3, sb                                            |         r3 = sb;
    0x0003c5b4 movs r1, 7                                            |         r1 = 7;
    0x0003c5b6 str r6, [sp, 8]                                       |         var_8h = r6;
    0x0003c5b8 strd r8, sb, [sp]                                     |         __asm ("strd r8, sb, [sp]");
    0x0003c5bc bl 0x3af3c                                            |         fcn_0003af3c (r0, r1, r2, r3, r4);
    0x0003c5c0 movs r0, 0                                            |         r0 = 0;
    0x0003c5c2 add sp, 0x3c                                          |         
    0x0003c5c4 vpop {d8}                                             |         __asm ("vpop {d8}");
    0x0003c5c8 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     |     }
    0x0003c5e4 mov r0, r5                                            |     r0 = r5;
    0x0003c5e6 blx 0xdabc                                            |     fcn_0000dabc ();
    0x0003c5ea blx 0xf554                                            |     gst_event_new_eos ();
    0x0003c5ee movs r1, 1                                            |     r1 = 1;
    0x0003c5f0 str r0, [r5, 0x14]                                    |     *((r5 + 0x14)) = r0;
    0x0003c5f2 blx 0xead4                                            |     rec_indexer_get_recording_block_filename ();
    0x0003c5f6 str r0, [r5, 0x18]                                    |     *((r5 + 0x18)) = r0;
    0x0003c5f8 blx 0xfde8                                            |     g_dbus_interface_skeleton_get_connections ();
    0x0003c5fc ldr r1, [pc, 0x3a0]                                   |     
    0x0003c5fe mov r2, r5                                            |     r2 = r5;
    0x0003c600 ldr r0, [pc, 0x3a0]                                   |     
    0x0003c602 add r1, pc                                            |     r1 = 0x78fa6;
    0x0003c604 add r0, pc                                            |     r0 = 0x78fac;
    0x0003c606 blx 0xe424                                            |     fcn_0000e424 ();
    0x0003c60a str r0, [r5, 0x1c]                                    |     *((r5 + 0x1c)) = r0;
    0x0003c60c movs r2, 0                                            |     r2 = 0;
    0x0003c60e ldr r0, [pc, 0x398]                                   |     
    0x0003c610 ldr r1, [r5, 0x28]                                    |     r1 = *((r5 + 0x28));
    0x0003c612 add r0, pc                                            |     r0 = 0x78fc0;
    0x0003c614 blx 0xf980                                            |     r0 = g_value_copy ();
    0x0003c618 mov r4, r0                                            |     r4 = r0;
    0x0003c61a blx 0xecf0                                            |     r0 = g_variant_ref_sink ();
    0x0003c61e mov r3, r0                                            |     r3 = r0;
    0x0003c620 mov r0, r4                                            |     r0 = r4;
    0x0003c622 str r3, [r5, 0x44]                                    |     *((r5 + 0x44)) = r3;
    0x0003c624 blx 0xf3e8                                            |     fcn_0000f3e8 ();
    0x0003c628 ldr r3, [r5, 0x44]                                    |     r3 = *((r5 + 0x44));
    0x0003c62a cmp r3, 0                                             |     
                                                                     |     if (r3 == 0) {
    0x0003c62c beq.w 0x3cb3a                                         |         goto label_14;
                                                                     |     }
    0x0003c630 ldr r0, [pc, 0x378]                                   |     
    0x0003c632 movs r1, 0                                            |     r1 = 0;
    0x0003c634 add r0, pc                                            |     r0 = 0x78fe4;
    0x0003c636 blx 0x100a4                                           |     fcn_000100a4 ();
    0x0003c63a str r0, [r5, 0x60]                                    |     *((r5 + 0x60)) = r0;
    0x0003c63c cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0003c63e beq.w 0x3ceec                                         |         goto label_15;
                                                                     |     }
    0x0003c642 movs r1, 0x50                                         |     r1 = 0x50;
    0x0003c644 blx 0xe18c                                            |     cert_set_init ();
    0x0003c648 ldr r1, [pc, 0x364]                                   |     
    0x0003c64a movs r3, 0                                            |     r3 = 0;
    0x0003c64c movs r2, 1                                            |     r2 = 1;
    0x0003c64e add r1, pc                                            |     r1 = 0x79002;
    0x0003c650 blx 0xf4fc                                            |     fcn_0000f4fc ();
    0x0003c654 ldr r4, [r5, 0x44]                                    |     r4 = *((r5 + 0x44));
    0x0003c656 blx 0xf4a4                                            |     r0 = fcn_0000f4a4 ();
    0x0003c65a mov r1, r0                                            |     r1 = r0;
    0x0003c65c mov r0, r4                                            |     r0 = r4;
    0x0003c65e blx 0xe18c                                            |     cert_set_init ();
    0x0003c662 ldr r1, [r5, 0x60]                                    |     r1 = *((r5 + 0x60));
    0x0003c664 blx 0xdcf4                                            |     r0 = gst_caps_new_full ();
    0x0003c668 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0003c66a beq.w 0x3cdba                                         |         goto label_16;
                                                                     |     }
    0x0003c66e ldr r3, [r5, 0x5c]                                    |     r3 = *((r5 + 0x5c));
    0x0003c670 ldr r2, [r3, 4]                                       |     r2 = *((r3 + 4));
    0x0003c672 cmp r2, 0                                             |     
                                                                     |     if (r2 == 0) {
    0x0003c674 beq.w 0x3ca6c                                         |         goto label_17;
                                                                     |     }
    0x0003c678 ldr r2, [pc, 0x338]                                   |     
    0x0003c67a mov.w fp, 0                                           |     
    0x0003c67e vldr d8, [pc, 0x318]                                  |     __asm ("vldr d8, aav.0x000000ff");
    0x0003c682 ldr.w sb, [sp, 0x1c]                                  |     sb = var_1ch;
    0x0003c686 add r2, pc                                            |     r2 = 0x7903e;
    0x0003c688 str r6, [sp, 0x28]                                    |     var_28h = r6;
    0x0003c68a str r2, [sp, 0x20]                                    |     var_20h = r2;
    0x0003c68c ldr r2, [pc, 0x328]                                   |     
    0x0003c68e add r2, pc                                            |     r2 = 0x7904a;
    0x0003c690 str r2, [sp, 0x24]                                    |     var_24h = r2;
                                                                     |     do {
    0x0003c692 ldr r3, [r3]                                          |         r3 = *(r3);
    0x0003c694 mov.w sl, 0                                           |         sl = 0;
    0x0003c698 str.w sl, [sp, 0x30]                                  |         __asm ("str.w sl, [var_30h]");
    0x0003c69c mov r1, sl                                            |         r1 = sl;
    0x0003c69e ldr r0, [sp, 0x20]                                    |         r0 = var_20h;
    0x0003c6a0 ldr.w r4, [r3, fp, lsl 2]                             |         offset_1 = fp << 2;
                                                                     |         r4 = *((r3 + offset_1));
    0x0003c6a4 ldr r3, [r5, 0x44]                                    |         r3 = *((r5 + 0x44));
    0x0003c6a6 str r3, [sp, 0x18]                                    |         var_18h = r3;
    0x0003c6a8 blx 0x100a4                                           |         fcn_000100a4 ();
    0x0003c6ac str r0, [r4, 8]                                       |         *((r4 + 8)) = r0;
    0x0003c6ae cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0003c6b0 beq.w 0x3cd5e                                         |             goto label_18;
                                                                     |         }
    0x0003c6b4 ldr r1, [sp, 0x24]                                    |         r1 = var_24h;
    0x0003c6b6 blx 0x100e4                                           |         fcn_000100e4 ();
    0x0003c6ba ldr r2, [pc, 0x300]                                   |         
    0x0003c6bc mov r3, sl                                            |         r3 = sl;
    0x0003c6be ldr r7, [pc, 0x300]                                   |         
    0x0003c6c0 mov r6, r0                                            |         r6 = r0;
    0x0003c6c2 mov.w r1, 0x200                                       |         r1 = 0x200;
    0x0003c6c6 str.w sl, [sp]                                        |         __asm ("str.w sl, [sp]");
    0x0003c6ca add r2, pc                                            |         r2 = 0x7908c;
    0x0003c6cc ldr.w r8, [pc, 0x2f4]                                 |         
    0x0003c6d0 blx 0xffe4                                            |         fcn_0000ffe4 ();
    0x0003c6d4 mov r0, r6                                            |         r0 = r6;
    0x0003c6d6 add r7, pc                                            |         r7 = 0x7909c;
    0x0003c6d8 blx 0xdff8                                            |         fcn_0000dff8 ();
    0x0003c6dc movs r1, 0x50                                         |         r1 = 0x50;
    0x0003c6de ldr r0, [r4, 8]                                       |         r0 = *((r4 + 8));
    0x0003c6e0 blx 0xe18c                                            |         cert_set_init ();
    0x0003c6e4 mov r3, sl                                            |         r3 = sl;
    0x0003c6e6 mov r1, r7                                            |         r1 = r7;
    0x0003c6e8 add r2, sp, 0x34                                      |         r2 += var_34h;
    0x0003c6ea add r8, pc                                            |         r8 = 0x790b2;
    0x0003c6ec blx 0xf584                                            |         gst_sdp_media_get_media ();
    0x0003c6ee vmul.i8 d20, d26, d21                                 |         __asm ("vmul.i8 d20, d26, d21");
    0x0003c6f2 mov r2, sl                                            |         r2 = sl;
    0x0003c6f4 ldr r0, [sp, 0x34]                                    |         r0 = var_34h;
    0x0003c6f6 add r1, pc                                            |         r1 += pc;
    0x0003c6f8 blx 0xf980                                            |         g_value_copy ();
    0x0003c6fa strd r4, r6, [r2, -0x18]                              |         __asm ("strd r4, r6, [r2, -0x18]");
    0x0003c6fe ldr r0, [sp, 0x34]                                    |         r0 = var_34h;
    0x0003c700 blx 0xf3e8                                            |         fcn_0000f3e8 ();
    0x0003c704 movs r1, 0x50                                         |         r1 = 0x50;
    0x0003c706 ldr r0, [r4, 8]                                       |         r0 = *((r4 + 8));
    0x0003c708 blx 0xe18c                                            |         cert_set_init ();
    0x0003c70c mov r1, r8                                            |         r1 = r8;
    0x0003c70e mov r3, sl                                            |         r3 = sl;
    0x0003c710 movs r2, 2                                            |         r2 = 2;
    0x0003c712 blx 0xf4fc                                            |         fcn_0000f4fc ();
    0x0003c716 ldr r3, [r4]                                          |         r3 = *(r4);
    0x0003c718 ldr r0, [r3, 8]                                       |         r0 = *((r3 + 8));
    0x0003c71a blx 0xe5f4                                            |         g_int_hash ();
    0x0003c71e ldr r1, [pc, 0x2ac]                                   |         
    0x0003c720 add r1, pc                                            |         r1 = 0x790f2;
    0x0003c722 blx 0xed48                                            |         r0 = fcn_0000ed48 ();
    0x0003c726 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0003c728 beq.w 0x3cb66                                         |             goto label_19;
                                                                     |         }
    0x0003c72c movs r1, 0x50                                         |         r1 = 0x50;
    0x0003c72e ldr r0, [r4, 8]                                       |         r0 = *((r4 + 8));
    0x0003c730 blx 0xe18c                                            |         cert_set_init ();
    0x0003c734 ldr r2, [pc, 0x298]                                   |         
    0x0003c736 mov r3, r8                                            |         r3 = r8;
    0x0003c738 mov r1, r7                                            |         r1 = r7;
    0x0003c73a str.w sl, [sp, 0x10]                                  |         __asm ("str.w sl, [var_10h]");
    0x0003c73e vstr d8, [sp, 8]                                      |         __asm ("vstr d8, [sp, 8]");
    0x0003c742 add r2, pc                                            |         r2 = 0x79116;
    0x0003c744 str r2, [sp, 4]                                       |         var_4h = r2;
    0x0003c746 movs r2, 2                                            |         r2 = 2;
    0x0003c748 str r2, [sp]                                          |         *(sp) = r2;
    0x0003c74a mov r2, r6                                            |         r2 = r6;
    0x0003c74c blx 0xf4fc                                            |         fcn_0000f4fc ();
                                                                     | label_4:
    0x0003c750 mov r0, r6                                            |         r0 = r6;
    0x0003c752 blx 0xf3e8                                            |         fcn_0000f3e8 ();
    0x0003c756 blx 0xf4a4                                            |         r0 = fcn_0000f4a4 ();
    0x0003c75a mov r1, r0                                            |         r1 = r0;
    0x0003c75c ldr r0, [sp, 0x18]                                    |         r0 = var_18h;
    0x0003c75e blx 0xe18c                                            |         cert_set_init ();
    0x0003c762 ldr r1, [r4, 8]                                       |         r1 = *((r4 + 8));
    0x0003c764 blx 0xdcf4                                            |         r0 = gst_caps_new_full ();
    0x0003c768 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0003c76a beq.w 0x3ccf2                                         |             goto label_20;
                                                                     |         }
    0x0003c76e ldr r3, [r4, 0x40]                                    |         r3 = *((r4 + 0x40));
    0x0003c770 ldr r6, [r5, 0x44]                                    |         r6 = *((r5 + 0x44));
    0x0003c772 cmp r3, 0                                             |         
                                                                     |         if (r3 != 0) {
    0x0003c774 beq.w 0x3c896                                         |             
    0x0003c778 ldr r0, [pc, 0x258]                                   |             
    0x0003c77a movs r1, 0                                            |             r1 = 0;
    0x0003c77c add r0, pc                                            |             r0 = 0x79154;
    0x0003c77e blx 0x100a4                                           |             r0 = fcn_000100a4 ();
    0x0003c782 mov r7, r0                                            |             r7 = r0;
    0x0003c784 cmp r0, 0                                             |             
                                                                     |             if (r0 == 0) {
    0x0003c786 beq.w 0x3cdfc                                         |                 goto label_21;
                                                                     |             }
    0x0003c78a movs r1, 0x50                                         |             r1 = 0x50;
    0x0003c78c blx 0xe18c                                            |             cert_set_init ();
    0x0003c790 ldr r1, [pc, 0x244]                                   |             
    0x0003c792 movs r3, 0                                            |             r3 = 0;
    0x0003c794 ldr r2, [r4, 0x44]                                    |             r2 = *((r4 + 0x44));
    0x0003c796 add r1, pc                                            |             r1 = 0x79172;
    0x0003c798 blx 0xf4fc                                            |             fcn_0000f4fc ();
    0x0003c79c movs r1, 0x50                                         |             r1 = 0x50;
    0x0003c79e mov r0, r7                                            |             r0 = r7;
    0x0003c7a0 blx 0xe18c                                            |             cert_set_init ();
    0x0003c7a4 ldr r1, [pc, 0x234]                                   |             
    0x0003c7a6 movs r3, 0                                            |             r3 = 0;
    0x0003c7a8 mov r2, r3                                            |             r2 = r3;
    0x0003c7aa add r1, pc                                            |             r1 = 0x7918a;
    0x0003c7ac blx 0xf4fc                                            |             fcn_0000f4fc ();
    0x0003c7b0 blx 0xf4a4                                            |             r0 = fcn_0000f4a4 ();
    0x0003c7b4 mov r1, r0                                            |             r1 = r0;
    0x0003c7b6 mov r0, r6                                            |             r0 = r6;
    0x0003c7b8 blx 0xe18c                                            |             cert_set_init ();
    0x0003c7bc mov r1, r7                                            |             r1 = r7;
    0x0003c7be blx 0xdcf4                                            |             r0 = gst_caps_new_full ();
    0x0003c7c2 cmp r0, 0                                             |             
                                                                     |             if (r0 == 0) {
    0x0003c7c4 beq.w 0x3cd2a                                         |                 goto label_22;
                                                                     |             }
    0x0003c7c8 ldr r6, [pc, 0x214]                                   |             
    0x0003c7ca ldr r1, [pc, 0x218]                                   |             
    0x0003c7cc add r6, pc                                            |             r6 = 0x791b0;
    0x0003c7ce add r1, pc                                            |             r1 = 0x791b8;
    0x0003c7d0 mov r0, r6                                            |             r0 = r6;
    0x0003c7d2 bl 0x5d040                                            |             fcn_0005d040 (r0, r1);
    0x0003c7d6 ldr r1, [pc, 0x210]                                   |             
    0x0003c7d8 mov sl, r0                                            |             sl = r0;
    0x0003c7da mov r0, r6                                            |             r0 = r6;
    0x0003c7dc add r1, pc                                            |             r1 = 0x791ca;
    0x0003c7de bl 0x5d040                                            |             fcn_0005d040 (r0, r1);
    0x0003c7e2 ldr r1, [pc, 0x208]                                   |             
    0x0003c7e4 mov r8, r0                                            |             r8 = r0;
    0x0003c7e6 mov r0, r6                                            |             r0 = r6;
    0x0003c7e8 add r1, pc                                            |             r1 = 0x791da;
    0x0003c7ea bl 0x5d040                                            |             r0 = fcn_0005d040 (r0, r1);
    0x0003c7ee mov r6, r0                                            |             r6 = r0;
    0x0003c7f0 cmp.w sl, 0                                           |             
                                                                     |             if (sl != 0) {
    0x0003c7f4 beq 0x3c7fc                                           |                 
    0x0003c7f6 ldrb.w r3, [sl]                                       |                 r3 = *(sl);
                                                                     |                 if (r3 != 0) {
    0x0003c7fa cbnz r3, 0x3c808                                      |                     goto label_23;
                                                                     |                 }
                                                                     |             }
    0x0003c7fc ldr r2, [pc, 0x1f0]                                   |             
    0x0003c7fe movs r1, 0x20                                         |             r1 = 0x20;
    0x0003c800 movs r0, 0                                            |             r0 = 0;
    0x0003c802 add r2, pc                                            |             r2 = 0x791f6;
    0x0003c804 blx 0xe318                                            |             gst_element_error_printf ()
                                                                     | label_23:
    0x0003c808 cmp.w r8, 0                                           |             
                                                                     |             if (r8 != 0) {
    0x0003c80c beq 0x3c814                                           |                 
    0x0003c80e ldrb.w r3, [r8]                                       |                 r3 = *(r8);
                                                                     |                 if (r3 != 0) {
    0x0003c812 cbnz r3, 0x3c820                                      |                     goto label_24;
                                                                     |                 }
                                                                     |             }
    0x0003c814 ldr r2, [pc, 0x1dc]                                   |             
    0x0003c816 movs r1, 0x20                                         |             r1 = 0x20;
    0x0003c818 movs r0, 0                                            |             r0 = 0;
    0x0003c81a add r2, pc                                            |             r2 = 0x79212;
    0x0003c81c blx 0xe318                                            |             gst_element_error_printf ()
                                                                     |             if (r6 != 0) {
                                                                     | label_24:
    0x0003c820 cbz r6, 0x3c826                                       |                 
    0x0003c822 ldrb r3, [r6]                                         |                 r3 = *(r6);
                                                                     |                 if (r3 != 0) {
    0x0003c824 cbnz r3, 0x3c832                                      |                     goto label_25;
                                                                     |                 }
                                                                     |             }
    0x0003c826 ldr r2, [pc, 0x1d0]                                   |             
    0x0003c828 movs r1, 0x20                                         |             r1 = 0x20;
    0x0003c82a movs r0, 0                                            |             r0 = 0;
    0x0003c82c add r2, pc                                            |             r2 = 0x7922a;
    0x0003c82e blx 0xe318                                            |             gst_element_error_printf ()
                                                                     | label_25:
    0x0003c832 ldr r3, [pc, 0x1c8]                                   |             
    0x0003c834 mov r2, r6                                            |             r2 = r6;
    0x0003c836 ldr r1, [pc, 0x1c8]                                   |             
    0x0003c838 mov r0, r7                                            |             r0 = r7;
    0x0003c83a str.w r8, [sp, 8]                                     |             __asm ("str.w r8, [var_8h]");
    0x0003c83e add r3, pc                                            |             r3 = "UserData";
    0x0003c840 str.w sl, [sp]                                        |             __asm ("str.w sl, [sp]");
    0x0003c844 str r3, [sp, 4]                                       |             var_4h = r3;
    0x0003c846 movs r3, 0                                            |             r3 = 0;
    0x0003c848 str r3, [sp, 0xc]                                     |             var_ch = r3;
    0x0003c84a add r1, pc                                            |             r1 = 0x79250;
    0x0003c84c ldr r3, [pc, 0x1b4]                                   |             
    0x0003c84e add r3, pc                                            |             r3 = 0x79256;
    0x0003c850 blx 0xf4fc                                            |             fcn_0000f4fc ();
    0x0003c854 mov r0, sl                                            |             r0 = sl;
    0x0003c856 blx 0xf3e8                                            |             fcn_0000f3e8 ();
    0x0003c85a mov r0, r8                                            |             r0 = r8;
    0x0003c85c blx 0xf3e8                                            |             fcn_0000f3e8 ();
    0x0003c860 mov r0, r6                                            |             r0 = r6;
    0x0003c862 blx 0xf3e8                                            |             fcn_0000f3e8 ();
    0x0003c866 mov r0, r7                                            |             r0 = r7;
    0x0003c868 str r7, [r4, 0xc]                                     |             *((r4 + 0xc)) = r7;
    0x0003c86a ldr r6, [r4, 0x48]                                    |             r6 = *((r4 + 0x48));
    0x0003c86c blx 0xf8f0                                            |             snd_pcm_hw_params_get_sbits ();
    0x0003c870 ldr r2, [pc, 0x194]                                   |             r2 = *(0x3ca08);
    0x0003c872 movs r1, 1                                            |             r1 = 1;
    0x0003c874 str r1, [sp, 4]                                       |             var_4h = r1;
    0x0003c876 mov r3, r0                                            |             r3 = r0;
    0x0003c878 ldr r1, [pc, 0x190]                                   |             
    0x0003c87a mov r0, r6                                            |             r0 = r6;
    0x0003c87c ldr.w r2, [sb, r2]                                    |             r2 = *((sb + r2));
    0x0003c880 add r1, pc                                            |             r1 = 0x79290;
    0x0003c882 str r2, [sp]                                          |             *(sp) = r2;
    0x0003c884 ldr r2, [pc, 0x188]                                   |             
    0x0003c886 add r2, pc                                            |             r2 = 0x7929a;
    0x0003c888 blx 0xede0                                            |             gst_sdp_message_set_session_name ();
    0x0003c88c str r0, [r4, 0x4c]                                    |             *((r4 + 0x4c)) = r0;
    0x0003c88e cmp r0, 0                                             |             
                                                                     |             if (r0 == 0) {
    0x0003c890 beq.w 0x3ce2a                                         |                 goto label_26;
                                                                     |             }
    0x0003c894 ldr r6, [r5, 0x44]                                    |             r6 = *((r5 + 0x44));
                                                                     |         }
    0x0003c896 ldr r0, [pc, 0x17c]                                   |         
    0x0003c898 movs r1, 0                                            |         r1 = 0;
    0x0003c89a add r0, pc                                            |         r0 = "vinfo->refcount > 0";
    0x0003c89c blx 0x100a4                                           |         fcn_000100a4 ();
    0x0003c8a0 str r0, [r4, 0x10]                                    |         *((r4 + 0x10)) = r0;
    0x0003c8a2 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0003c8a4 beq.w 0x3cd8c                                         |             goto label_27;
                                                                     |         }
    0x0003c8a8 blx 0xf4a4                                            |         r0 = fcn_0000f4a4 ();
    0x0003c8ac mov r1, r0                                            |         r1 = r0;
    0x0003c8ae mov r0, r6                                            |         r0 = r6;
    0x0003c8b0 blx 0xe18c                                            |         cert_set_init ();
    0x0003c8b4 ldr r1, [r4, 0x10]                                    |         r1 = *((r4 + 0x10));
    0x0003c8b6 blx 0xdcf4                                            |         r0 = gst_caps_new_full ();
    0x0003c8ba cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0003c8bc beq.w 0x3cbb8                                         |             goto label_28;
                                                                     |         }
    0x0003c8c0 movs r1, 0x50                                         |         r1 = 0x50;
    0x0003c8c2 ldr r0, [r4, 0x10]                                    |         r0 = *((r4 + 0x10));
    0x0003c8c4 blx 0xe18c                                            |         r0 = cert_set_init ();
    0x0003c8c8 mov r6, r0                                            |         r6 = r0;
    0x0003c8ca ldr r0, [r5, 0x28]                                    |         r0 = *((r5 + 0x28));
    0x0003c8cc blx 0xe798                                            |         gst_query_new_custom ();
    0x0003c8d0 ldr r3, [pc, 0x144]                                   |         r3 = *(0x3ca18);
    0x0003c8d2 mov r2, r0                                            |         r2 = r0;
    0x0003c8d4 ldr r1, [pc, 0x144]                                   |         
    0x0003c8d6 mov r0, r6                                            |         r0 = r6;
    0x0003c8d8 movs r6, 0                                            |         r6 = 0;
    0x0003c8da ldr.w r8, [sb, r3]                                    |         r8 = *((sb + r3));
    0x0003c8de add r1, pc                                            |         r1 = 0x792fe;
    0x0003c8e0 mov r3, r8                                            |         r3 = r8;
    0x0003c8e2 blx 0xdc64                                            |         g_mkdir_with_parents ();
    0x0003c8e6 movs r1, 0x50                                         |         r1 = 0x50;
    0x0003c8e8 ldr r0, [r4, 0x10]                                    |         r0 = *((r4 + 0x10));
    0x0003c8ea blx 0xe18c                                            |         r0 = cert_set_init ();
    0x0003c8ee mov r7, r0                                            |         r7 = r0;
    0x0003c8f0 ldr r0, [pc, 0x12c]                                   |         
    0x0003c8f2 mov r1, fp                                            |         r1 = fp;
    0x0003c8f4 add r0, pc                                            |         r0 = 0x79318;
    0x0003c8f6 blx 0xe9b4                                            |         gst_rtsp_message_append_headers ();
    0x0003c8fa ldr r1, [pc, 0x128]                                   |         
    0x0003c8fc mov r2, r0                                            |         r2 = r0;
    0x0003c8fe mov r3, r8                                            |         r3 = r8;
    0x0003c900 mov r0, r7                                            |         r0 = r7;
    0x0003c902 add r1, pc                                            |         r1 = 0x7932c;
    0x0003c904 blx 0xdc64                                            |         g_mkdir_with_parents ();
    0x0003c908 movs r0, 8                                            |         r0 = 8;
    0x0003c90a blx 0xea2c                                            |         r0 = gst_rtsp_range_convert_units ();
    0x0003c90e mov r7, r0                                            |         r7 = r0;
    0x0003c910 blx 0xe704                                            |         fcn_0000e704 ();
    0x0003c914 movs r1, 0x50                                         |         r1 = 0x50;
    0x0003c916 ldr r0, [r4, 0x10]                                    |         r0 = *((r4 + 0x10));
    0x0003c918 blx 0xe18c                                            |         cert_set_init ();
    0x0003c91c ldr r3, [pc, 0x108]                                   |         
    0x0003c91e mov r2, r7                                            |         r2 = r7;
    0x0003c920 ldr r1, [pc, 0x108]                                   |         
    0x0003c922 add r3, pc                                            |         r3 = 0x7934e;
    0x0003c924 add r1, pc                                            |         r1 = 0x79354;
    0x0003c926 blx 0xdc64                                            |         g_mkdir_with_parents ();
    0x0003c92a movs r1, 0x50                                         |         r1 = 0x50;
    0x0003c92c ldr r0, [r4, 8]                                       |         r0 = *((r4 + 8));
    0x0003c92e blx 0xe18c                                            |         cert_set_init ();
    0x0003c932 ldr r1, [pc, 0xfc]                                    |         
    0x0003c934 mov r3, r6                                            |         r3 = r6;
    0x0003c936 add r2, sp, 0x30                                      |         r2 += var_30h;
    0x0003c938 add r1, pc                                            |         r1 = 0x7936e;
    0x0003c93a blx 0xf584                                            |         gst_sdp_media_get_media ();
    0x0003c93e ldr r0, [r4, 0x10]                                    |         r0 = *((r4 + 0x10));
    0x0003c940 ldr r7, [sp, 0x30]                                    |         r7 = var_30h;
    0x0003c942 blx 0xf8f0                                            |         snd_pcm_hw_params_get_sbits ();
    0x0003c946 ldr r2, [pc, 0xc0]                                    |         r2 = *(0x3ca0a);
    0x0003c948 mov r3, r0                                            |         r3 = r0;
    0x0003c94a str r6, [sp, 4]                                       |         var_4h = r6;
    0x0003c94c mov r0, r7                                            |         r0 = r7;
    0x0003c94e ldr r1, [pc, 0xe4]                                    |         
    0x0003c950 ldr.w r2, [sb, r2]                                    |         r2 = *((sb + r2));
    0x0003c954 add r1, pc                                            |         r1 = 0x7938e;
    0x0003c956 str r2, [sp]                                          |         *(sp) = r2;
    0x0003c958 ldr r2, [pc, 0xdc]                                    |         
    0x0003c95a add r2, pc                                            |         r2 = 0x79396;
    0x0003c95c blx 0xede0                                            |         gst_sdp_message_set_session_name ();
    0x0003c960 str r0, [r4, 0x1c]                                    |         *((r4 + 0x1c)) = r0;
    0x0003c962 ldr r0, [sp, 0x30]                                    |         r0 = var_30h;
    0x0003c964 blx 0xfba0                                            |         fcn_0000fba0 ();
    0x0003c968 ldr r0, [pc, 0xd0]                                    |         
    0x0003c96a mov r1, r6                                            |         r1 = r6;
    0x0003c96c str r6, [sp, 0x30]                                    |         var_30h = r6;
    0x0003c96e add r0, pc                                            |         r0 = 0x793ae;
    0x0003c970 blx 0x100a4                                           |         fcn_000100a4 ();
    0x0003c974 str r0, [r4, 0x14]                                    |         *((r4 + 0x14)) = r0;
    0x0003c976 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0003c978 beq.w 0x3cebe                                         |             goto label_29;
                                                                     |         }
    0x0003c97c blx 0xf714                                            |         fcn_0000f714 ();
    0x0003c980 movs r1, 0x50                                         |         r1 = 0x50;
    0x0003c982 ldr r0, [r4, 0x14]                                    |         r0 = *((r4 + 0x14));
    0x0003c984 blx 0xe18c                                            |         cert_set_init ();
    0x0003c988 ldr r1, [pc, 0xb4]                                    |         
    0x0003c98a mov r3, r6                                            |         r3 = r6;
    0x0003c98c mov r2, r6                                            |         r2 = r6;
    0x0003c98e add r1, pc                                            |         r1 = 0x793d2;
    0x0003c990 blx 0xf4fc                                            |         fcn_0000f4fc ();
    0x0003c994 ldr r3, [r4, 0x40]                                    |         r3 = *((r4 + 0x40));
    0x0003c996 b 0x3ca44                                             |         
    0x0003ca44 cmp r3, 0                                             |         
                                                                     |         if (r3 == 0) {
    0x0003ca46 beq.w 0x3cb7c                                         |             goto label_30;
                                                                     |         }
    0x0003ca4a ldrd r1, r2, [r4, 0xc]                                |         __asm ("ldrd r1, r2, [r4, 0xc]");
    0x0003ca4e mov r3, r6                                            |         r3 = r6;
    0x0003ca50 ldr r0, [r4, 8]                                       |         r0 = *((r4 + 8));
    0x0003ca52 blx 0xdac8                                            |         r0 = fcn_0000dac8 ();
    0x0003ca56 cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0003ca58 beq.w 0x3ce58                                         |             goto label_31;
                                                                     |         }
                                                                     | label_5:
    0x0003ca5c ldr r3, [r5, 0x5c]                                    |         r3 = *((r5 + 0x5c));
    0x0003ca5e add.w fp, fp, 1                                       |         
    0x0003ca62 ldr r2, [r3, 4]                                       |         r2 = *((r3 + 4));
    0x0003ca64 cmp r2, fp                                            |         
    0x0003ca66 bhi.w 0x3c692                                         |         
                                                                     |     } while (r2 > fp);
    0x0003ca6a ldr r6, [sp, 0x28]                                    |     r6 = var_28h;
                                                                     | label_17:
    0x0003ca6c ldr r4, [r5, 0x44]                                    |     r4 = *((r5 + 0x44));
    0x0003ca6e blx 0xe088                                            |     r0 = fcn_0000e088 ();
    0x0003ca72 mov r1, r0                                            |     r1 = r0;
    0x0003ca74 mov r0, r4                                            |     r0 = r4;
    0x0003ca76 blx 0xe18c                                            |     cert_set_init ();
    0x0003ca7a blx 0xdf48                                            |     r0 = fcn_0000df48 ();
    0x0003ca7e mov r4, r0                                            |     r4 = r0;
    0x0003ca80 mov r0, r5                                            |     r0 = r5;
    0x0003ca82 blx 0xdabc                                            |     fcn_0000dabc ();
    0x0003ca86 mov r0, r4                                            |     r0 = r4;
    0x0003ca88 blx 0xdc7c                                            |     g_date_time_to_unix ();
    0x0003ca8c str r0, [r5, 0x48]                                    |     *((r5 + 0x48)) = r0;
    0x0003ca8e cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0003ca90 beq.w 0x3ce86                                         |         goto label_32;
                                                                     |     }
    0x0003ca94 ldr r2, [sp, 0x1c]                                    |     r2 = var_1ch;
    0x0003ca96 ldr.w r3, [pc, 0x468]                                 |     r3 = *(0x3cf02);
    0x0003ca9a ldr.w r1, [pc, 0x468]                                 |     r1 = *(0x0003cf04);
    0x0003ca9e ldr r3, [r2, r3]                                      |     r3 = *((r2 + r3));
    0x0003caa0 mov r2, r5                                            |     r2 = r5;
    0x0003caa2 add r1, pc                                            |     r1 += pc;
    0x0003caa4 blx 0xfbdc                                            |     fcn_0000fbdc ();
    0x0003caa8 ldr r1, [r5, 0x14]                                    |     r1 = *((r5 + 0x14));
    0x0003caaa ldr r0, [r5, 0x48]                                    |     r0 = *((r5 + 0x48));
    0x0003caac blx 0xee70                                            |     gst_codec_utils_caps_get_mime_codec ();
    0x0003cab0 mov r0, r4                                            |     r0 = r4;
    0x0003cab2 blx 0xdff8                                            |     fcn_0000dff8 ();
    0x0003cab6 movs r3, 1                                            |     r3 = 1;
    0x0003cab8 mov r0, r3                                            |     r0 = r3;
    0x0003caba str r3, [r5, 0x58]                                    |     *((r5 + 0x58)) = r3;
    0x0003cabc add sp, 0x3c                                          |     
    0x0003cabe vpop {d8}                                             |     __asm ("vpop {d8}");
    0x0003cac2 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                     | label_11:
    0x0003cac6 ldr r3, [r5, 0x38]                                    |     r3 = *((r5 + 0x38));
    0x0003cac8 cmp r3, 0                                             |     
                                                                     |     if (r3 != 0) {
    0x0003caca bne.w 0x3c4fa                                         |         goto label_1;
                                                                     |     }
    0x0003cace ldr.w r1, [pc, 0x438]                                 |     
    0x0003cad2 add r1, pc                                            |     r1 = 0x799e0;
    0x0003cad4 ldr r3, [r1, 0x10]                                    |     r3 = *(0x799f0);
                                                                     |     if (r3 == 0) {
    0x0003cad6 cbnz r3, 0x3caec                                      |         
    0x0003cad8 ldr.w r2, [pc, 0x430]                                 |         
    0x0003cadc movs r3, 8                                            |         r3 = 8;
    0x0003cade ldr.w r0, [pc, 0x430]                                 |         
    0x0003cae2 adds r1, 0x10                                         |         r1 += 0x10;
    0x0003cae4 add r2, pc                                            |         r2 = 0x799f4;
    0x0003cae6 add r0, pc                                            |         r0 = 0x799fc;
    0x0003cae8 blx 0xdaa0                                            |         fcn_0000daa0 ();
                                                                     |     }
    0x0003caec ldr.w r1, [pc, 0x424]                                 |     
    0x0003caf0 movs r2, 6                                            |     r2 = 6;
    0x0003caf2 ldr.w r3, [pc, 0x424]                                 |     
    0x0003caf6 mov r0, r6                                            |     r0 = r6;
    0x0003caf8 add r1, pc                                            |     
    0x0003cafa ldr r1, [r1, 0x10]                                    |     r1 = *(0x79a20);
    0x0003cafc add r3, pc                                            |     r3 = 0x79a1a;
    0x0003cafe blx 0x10398                                           |     fcn_00010398 ();
    0x0003cb02 b 0x3c5a6                                             |     goto label_2;
                                                                     | label_13:
    0x0003cb04 ldr.w r1, [pc, 0x414]                                 |     
    0x0003cb08 add r1, pc                                            |     r1 = 0x79a28;
    0x0003cb0a ldr r3, [r1, 0x10]                                    |     r3 = *(0x79a38);
                                                                     |     if (r3 == 0) {
    0x0003cb0c cbnz r3, 0x3cb22                                      |         
    0x0003cb0e ldr.w r2, [pc, 0x410]                                 |         
    0x0003cb12 movs r3, 8                                            |         r3 = 8;
    0x0003cb14 ldr.w r0, [pc, 0x40c]                                 |         
    0x0003cb18 adds r1, 0x10                                         |         r1 += 0x10;
    0x0003cb1a add r2, pc                                            |         r2 = 0x79a40;
    0x0003cb1c add r0, pc                                            |         r0 = 0x79a44;
    0x0003cb1e blx 0xdaa0                                            |         fcn_0000daa0 ();
                                                                     |     }
    0x0003cb22 ldr.w r1, [pc, 0x404]                                 |     
    0x0003cb26 movs r2, 6                                            |     r2 = 6;
    0x0003cb28 ldr.w r3, [pc, 0x400]                                 |     
    0x0003cb2c mov r0, r6                                            |     r0 = r6;
    0x0003cb2e add r1, pc                                            |     
    0x0003cb30 ldr r1, [r1, 0x10]                                    |     r1 = *(0x79a6c);
    0x0003cb32 add r3, pc                                            |     r3 = 0x79a62;
    0x0003cb34 blx 0x10398                                           |     fcn_00010398 ();
    0x0003cb38 b 0x3c5a6                                             |     goto label_2;
                                                                     | label_14:
    0x0003cb3a ldr r1, [pc, 0x3f4]                                   |     
    0x0003cb3c add r1, pc                                            |     r1 = 0x79a72;
    0x0003cb3e ldr r3, [r1, 0x10]                                    |     r3 = *(0x79a82);
                                                                     |     if (r3 == 0) {
    0x0003cb40 cbnz r3, 0x3cb52                                      |         
    0x0003cb42 ldr r2, [pc, 0x3f0]                                   |         
    0x0003cb44 movs r3, 8                                            |         r3 = 8;
    0x0003cb46 ldr r0, [pc, 0x3f0]                                   |         
    0x0003cb48 adds r1, 0x10                                         |         r1 += 0x10;
    0x0003cb4a add r2, pc                                            |         r2 = 0x79a84;
    0x0003cb4c add r0, pc                                            |         r0 = 0x79a8a;
    0x0003cb4e blx 0xdaa0                                            |         fcn_0000daa0 ();
                                                                     |     }
    0x0003cb52 ldr r1, [pc, 0x3e8]                                   |     
    0x0003cb54 movs r2, 1                                            |     r2 = 1;
    0x0003cb56 ldr r3, [pc, 0x3e8]                                   |     
    0x0003cb58 mov r0, r6                                            |     r0 = r6;
    0x0003cb5a add r1, pc                                            |     
    0x0003cb5c ldr r1, [r1, 0x10]                                    |     r1 = *(0x79aac);
    0x0003cb5e add r3, pc                                            |     r3 = 0x79aa4;
    0x0003cb60 blx 0x10398                                           |     fcn_00010398 ();
    0x0003cb64 b 0x3c59e                                             |     goto label_3;
                                                                     | label_19:
    0x0003cb66 str r0, [sp, 0x2c]                                    |     var_2ch = r0;
    0x0003cb68 movs r1, 0x50                                         |     r1 = 0x50;
    0x0003cb6a ldr r0, [r4, 8]                                       |     r0 = *((r4 + 8));
    0x0003cb6c blx 0xe18c                                            |     cert_set_init ();
    0x0003cb70 ldr r3, [sp, 0x2c]                                    |     r3 = var_2ch;
    0x0003cb72 mov r2, r6                                            |     r2 = r6;
    0x0003cb74 mov r1, r7                                            |     r1 = r7;
    0x0003cb76 blx 0xf4fc                                            |     fcn_0000f4fc ();
    0x0003cb7a b 0x3c750                                             |     goto label_4;
                                                                     | label_30:
    0x0003cb7c ldr r1, [r4, 0x10]                                    |     r1 = *((r4 + 0x10));
    0x0003cb7e ldr r0, [r4, 8]                                       |     r0 = *((r4 + 8));
    0x0003cb80 blx 0xdca0                                            |     r0 = g_signal_lookup ();
    0x0003cb84 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0003cb86 bne.w 0x3ca5c                                         |         goto label_5;
                                                                     |     }
    0x0003cb8a ldr r1, [pc, 0x3b8]                                   |     
    0x0003cb8c ldr r6, [sp, 0x28]                                    |     r6 = var_28h;
    0x0003cb8e add r1, pc                                            |     r1 = 0x79ad8;
    0x0003cb90 ldr r3, [r1, 0x10]                                    |     r3 = *(0x79ae8);
                                                                     |     if (r3 == 0) {
    0x0003cb92 cbnz r3, 0x3cba4                                      |         
    0x0003cb94 ldr r2, [pc, 0x3b0]                                   |         
    0x0003cb96 movs r3, 8                                            |         r3 = 8;
    0x0003cb98 ldr r0, [pc, 0x3b0]                                   |         
    0x0003cb9a adds r1, 0x10                                         |         r1 += 0x10;
    0x0003cb9c add r2, pc                                            |         r2 = 0x79ae8;
    0x0003cb9e add r0, pc                                            |         r0 = 0x79aee;
    0x0003cba0 blx 0xdaa0                                            |         fcn_0000daa0 ();
                                                                     |     }
    0x0003cba4 ldr r1, [pc, 0x3a8]                                   |     
    0x0003cba6 movs r2, 1                                            |     r2 = 1;
    0x0003cba8 ldr r3, [pc, 0x3a8]                                   |     
    0x0003cbaa mov r0, r6                                            |     r0 = r6;
    0x0003cbac add r1, pc                                            |     
    0x0003cbae ldr r1, [r1, 0x10]                                    |     r1 = *(0x79b10);
    0x0003cbb0 add r3, pc                                            |     r3 = 0x79b08;
    0x0003cbb2 blx 0x10398                                           |     fcn_00010398 ();
    0x0003cbb6 b 0x3cbee                                             |     goto label_8;
                                                                     | label_28:
    0x0003cbb8 ldr r1, [pc, 0x39c]                                   |     
    0x0003cbba ldr r6, [sp, 0x28]                                    |     r6 = var_28h;
    0x0003cbbc add r1, pc                                            |     r1 = 0x79b18;
    0x0003cbbe ldr r3, [r1, 0x10]                                    |     r3 = *(0x79b28);
                                                                     |     if (r3 == 0) {
    0x0003cbc0 cbnz r3, 0x3cbd2                                      |         
    0x0003cbc2 ldr r2, [pc, 0x398]                                   |         
    0x0003cbc4 movs r3, 8                                            |         r3 = 8;
    0x0003cbc6 ldr r0, [pc, 0x398]                                   |         
    0x0003cbc8 adds r1, 0x10                                         |         r1 += 0x10;
    0x0003cbca add r2, pc                                            |         r2 = 0x79b2c;
    0x0003cbcc add r0, pc                                            |         r0 = 0x79b32;
    0x0003cbce blx 0xdaa0                                            |         fcn_0000daa0 ();
                                                                     |     }
    0x0003cbd2 ldr r2, [pc, 0x390]                                   |     
    0x0003cbd4 mov r0, r6                                            |     r0 = r6;
    0x0003cbd6 ldr r3, [pc, 0x390]                                   |     
    0x0003cbd8 add r2, pc                                            |     r2 = 0x79b42;
    0x0003cbda ldr r1, [r2, 0x10]                                    |     r1 = *(0x79b52);
    0x0003cbdc add r3, pc                                            |     r3 = 0x79b4a;
    0x0003cbde movs r2, 1                                            |     r2 = 1;
    0x0003cbe0 blx 0x10398                                           |     fcn_00010398 ();
    0x0003cbe4 ldr r0, [r4, 0x10]                                    |     r0 = *((r4 + 0x10));
    0x0003cbe6 blx 0xdff8                                            |     fcn_0000dff8 ();
    0x0003cbea movs r3, 0                                            |     r3 = 0;
    0x0003cbec str r3, [r4, 0x10]                                    |     *((r4 + 0x10)) = r3;
                                                                     | label_8:
    0x0003cbee ldr r3, [r5, 0x5c]                                    |     r3 = *((r5 + 0x5c));
    0x0003cbf0 ldr r2, [r3, 4]                                       |     r2 = *((r3 + 4));
    0x0003cbf2 cmp r2, 0                                             |     
                                                                     |     if (r2 == 0) {
    0x0003cbf4 beq 0x3ccc0                                           |         goto label_33;
                                                                     |     }
                                                                     | label_9:
    0x0003cbf6 ldr.w r8, [pc, 0x374]                                 |     
    0x0003cbfa movs r7, 0                                            |     r7 = 0;
    0x0003cbfc add.w sb, sp, 0x34                                    |     sb += var_34h;
    0x0003cc00 add r8, pc                                            |     r8 = 0x79b72;
    0x0003cc02 b 0x3cc7a                                             |     
                                                                     |     while (r3 == 0) {
                                                                     | label_6:
    0x0003cc04 ldr r3, [r4, 8]                                       |         r3 = *((r4 + 8));
                                                                     |         if (r3 != 0) {
    0x0003cc06 cbz r3, 0x3cc22                                       |             
    0x0003cc08 ldr.w sl, [r5, 0x44]                                  |             sl = *((r5 + 0x44));
    0x0003cc0c blx 0xf4a4                                            |             r0 = fcn_0000f4a4 ();
    0x0003cc10 mov r1, r0                                            |             r1 = r0;
    0x0003cc12 mov r0, sl                                            |             r0 = sl;
    0x0003cc14 blx 0xe18c                                            |             cert_set_init ();
    0x0003cc18 ldr r1, [r4, 8]                                       |             r1 = *((r4 + 8));
    0x0003cc1a blx 0xfc7c                                            |             fcn_0000fc7c ();
    0x0003cc1e movs r3, 0                                            |             r3 = 0;
    0x0003cc20 str r3, [r4, 8]                                       |             *((r4 + 8)) = r3;
                                                                     |         }
    0x0003cc22 ldr r3, [r4, 0xc]                                     |         r3 = *((r4 + 0xc));
                                                                     |         if (r3 != 0) {
    0x0003cc24 cbz r3, 0x3cc40                                       |             
    0x0003cc26 ldr.w sl, [r5, 0x44]                                  |             sl = *((r5 + 0x44));
    0x0003cc2a blx 0xf4a4                                            |             r0 = fcn_0000f4a4 ();
    0x0003cc2e mov r1, r0                                            |             r1 = r0;
    0x0003cc30 mov r0, sl                                            |             r0 = sl;
    0x0003cc32 blx 0xe18c                                            |             cert_set_init ();
    0x0003cc36 ldr r1, [r4, 0xc]                                     |             r1 = *((r4 + 0xc));
    0x0003cc38 blx 0xfc7c                                            |             fcn_0000fc7c ();
    0x0003cc3c movs r3, 0                                            |             r3 = 0;
    0x0003cc3e str r3, [r4, 0xc]                                     |             *((r4 + 0xc)) = r3;
                                                                     |         }
    0x0003cc40 ldr r1, [r4, 0x4c]                                    |         r1 = *((r4 + 0x4c));
    0x0003cc42 cmp r1, 0                                             |         
                                                                     |         if (r1 != 0) {
    0x0003cc44 bne 0x3ccb4                                           |             goto label_34;
                                                                     |         }
                                                                     | label_7:
    0x0003cc46 ldr r3, [r4, 0x10]                                    |         r3 = *((r4 + 0x10));
                                                                     |         if (r3 != 0) {
    0x0003cc48 cbz r3, 0x3cc64                                       |             
    0x0003cc4a ldr.w sl, [r5, 0x44]                                  |             sl = *((r5 + 0x44));
    0x0003cc4e blx 0xf4a4                                            |             r0 = fcn_0000f4a4 ();
    0x0003cc52 mov r1, r0                                            |             r1 = r0;
    0x0003cc54 mov r0, sl                                            |             r0 = sl;
    0x0003cc56 blx 0xe18c                                            |             cert_set_init ();
    0x0003cc5a ldr r1, [r4, 0x10]                                    |             r1 = *((r4 + 0x10));
    0x0003cc5c blx 0xfc7c                                            |             fcn_0000fc7c ();
    0x0003cc60 movs r3, 0                                            |             r3 = 0;
    0x0003cc62 str r3, [r4, 0x10]                                    |             *((r4 + 0x10)) = r3;
                                                                     |         }
    0x0003cc64 ldr r0, [r4, 0x14]                                    |         r0 = *((r4 + 0x14));
                                                                     |         if (r0 != 0) {
    0x0003cc66 cbz r0, 0x3cc70                                       |             
    0x0003cc68 blx 0xdff8                                            |             fcn_0000dff8 ();
    0x0003cc6c movs r3, 0                                            |             r3 = 0;
    0x0003cc6e str r3, [r4, 0x14]                                    |             *((r4 + 0x14)) = r3;
                                                                     |         }
    0x0003cc70 ldr r3, [r5, 0x5c]                                    |         r3 = *((r5 + 0x5c));
    0x0003cc72 adds r7, 1                                            |         r7++;
    0x0003cc74 ldr r2, [r3, 4]                                       |         r2 = *((r3 + 4));
    0x0003cc76 cmp r2, r7                                            |         
                                                                     |         if (r2 < r7) {
    0x0003cc78 bls 0x3ccc0                                           |             goto label_33;
                                                                     |         }
    0x0003cc7a ldr r3, [r3]                                          |         r3 = *(r3);
    0x0003cc7c ldr.w r4, [r3, r7, lsl 2]                             |         offset_2 = r7 << 2;
                                                                     |         r4 = *((r3 + offset_2));
    0x0003cc80 ldr r3, [r4, 0x1c]                                    |         r3 = *((r4 + 0x1c));
    0x0003cc82 cmp r3, 0                                             |         
    0x0003cc84 beq 0x3cc04                                           |         
                                                                     |     }
    0x0003cc86 movs r1, 0x50                                         |     r1 = 0x50;
    0x0003cc88 ldr r0, [r4, 8]                                       |     r0 = *((r4 + 8));
    0x0003cc8a blx 0xe18c                                            |     cert_set_init ();
    0x0003cc8e movs r3, 0                                            |     r3 = 0;
    0x0003cc90 mov r2, sb                                            |     r2 = sb;
    0x0003cc92 mov r1, r8                                            |     r1 = r8;
    0x0003cc94 mov.w sl, 0                                           |     sl = 0;
    0x0003cc98 blx 0xf584                                            |     gst_sdp_media_get_media ();
    0x0003cc9c ldr r1, [r4, 0x1c]                                    |     r1 = *((r4 + 0x1c));
    0x0003cc9e ldr r0, [sp, 0x34]                                    |     r0 = var_34h;
    0x0003cca0 blx 0xeec4                                            |     g_array_new ();
    0x0003cca4 ldr r0, [sp, 0x34]                                    |     r0 = var_34h;
    0x0003cca6 str.w sl, [r4, 0x1c]                                  |     __asm ("str.w sl, [r4, 0x1c]");
    0x0003ccaa blx 0xfba0                                            |     fcn_0000fba0 ();
    0x0003ccae str.w sl, [sp, 0x34]                                  |     __asm ("str.w sl, [var_34h]");
    0x0003ccb2 b 0x3cc04                                             |     goto label_6;
                                                                     | label_34:
    0x0003ccb4 ldr r0, [r4, 0x48]                                    |     r0 = *((r4 + 0x48));
    0x0003ccb6 blx 0xeec4                                            |     g_array_new ();
    0x0003ccba movs r3, 0                                            |     r3 = 0;
    0x0003ccbc str r3, [r4, 0x4c]                                    |     *((r4 + 0x4c)) = r3;
    0x0003ccbe b 0x3cc46                                             |     goto label_7;
                                                                     | label_33:
    0x0003ccc0 ldr r3, [r5, 0x60]                                    |     r3 = *((r5 + 0x60));
    0x0003ccc2 ldr r4, [r5, 0x44]                                    |     r4 = *((r5 + 0x44));
                                                                     |     if (r3 != 0) {
    0x0003ccc4 cbz r3, 0x3ccde                                       |         
    0x0003ccc6 blx 0xf4a4                                            |         r0 = fcn_0000f4a4 ();
    0x0003ccca mov r1, r0                                            |         r1 = r0;
    0x0003cccc mov r0, r4                                            |         r0 = r4;
    0x0003ccce blx 0xe18c                                            |         cert_set_init ();
    0x0003ccd2 ldr r1, [r5, 0x60]                                    |         r1 = *((r5 + 0x60));
    0x0003ccd4 blx 0xfc7c                                            |         fcn_0000fc7c ();
    0x0003ccd8 ldr r4, [r5, 0x44]                                    |         r4 = *((r5 + 0x44));
    0x0003ccda movs r3, 0                                            |         r3 = 0;
    0x0003ccdc str r3, [r5, 0x60]                                    |         *((r5 + 0x60)) = r3;
                                                                     |     }
                                                                     | label_10:
    0x0003ccde mov r0, r4                                            |     r0 = r4;
    0x0003cce0 blx 0xdff8                                            |     fcn_0000dff8 ();
    0x0003cce4 movs r3, 0                                            |     r3 = 0;
    0x0003cce6 ldr r0, [r5, 0x5c]                                    |     r0 = *((r5 + 0x5c));
    0x0003cce8 movs r1, 0                                            |     r1 = 0;
    0x0003ccea str r3, [r5, 0x44]                                    |     *((r5 + 0x44)) = r3;
    0x0003ccec blx 0xf108                                            |     fcn_0000f108 ();
    0x0003ccf0 b 0x3c5a6                                             |     goto label_2;
                                                                     | label_20:
    0x0003ccf2 ldr r1, [pc, 0x27c]                                   |     
    0x0003ccf4 ldr r6, [sp, 0x28]                                    |     r6 = var_28h;
    0x0003ccf6 add r1, pc                                            |     r1 = 0x79c6c;
    0x0003ccf8 ldr r3, [r1, 0x10]                                    |     r3 = *(0x79c7c);
                                                                     |     if (r3 == 0) {
    0x0003ccfa cbnz r3, 0x3cd0c                                      |         
    0x0003ccfc ldr r2, [pc, 0x274]                                   |         
    0x0003ccfe movs r3, 8                                            |         r3 = 8;
    0x0003cd00 ldr r0, [pc, 0x274]                                   |         
    0x0003cd02 adds r1, 0x10                                         |         r1 += 0x10;
    0x0003cd04 add r2, pc                                            |         r2 = 0x79c7c;
    0x0003cd06 add r0, pc                                            |         r0 = 0x79c82;
    0x0003cd08 blx 0xdaa0                                            |         fcn_0000daa0 ();
                                                                     |     }
    0x0003cd0c ldr r2, [pc, 0x26c]                                   |     
    0x0003cd0e mov r0, r6                                            |     r0 = r6;
    0x0003cd10 ldr r3, [pc, 0x26c]                                   |     
    0x0003cd12 add r2, pc                                            |     r2 = 0x79c92;
    0x0003cd14 ldr r1, [r2, 0x10]                                    |     r1 = *(0x79ca2);
    0x0003cd16 add r3, pc                                            |     r3 = 0x79c9a;
    0x0003cd18 movs r2, 1                                            |     r2 = 1;
    0x0003cd1a blx 0x10398                                           |     fcn_00010398 ();
    0x0003cd1e ldr r0, [r4, 8]                                       |     r0 = *((r4 + 8));
    0x0003cd20 blx 0xdff8                                            |     fcn_0000dff8 ();
    0x0003cd24 movs r3, 0                                            |     r3 = 0;
    0x0003cd26 str r3, [r4, 8]                                       |     *((r4 + 8)) = r3;
    0x0003cd28 b 0x3cbee                                             |     goto label_8;
                                                                     | label_22:
    0x0003cd2a ldr r1, [pc, 0x258]                                   |     
    0x0003cd2c ldr r6, [sp, 0x28]                                    |     r6 = var_28h;
    0x0003cd2e add r1, pc                                            |     r1 = 0x79cb8;
    0x0003cd30 ldr r3, [r1, 0x10]                                    |     r3 = *(0x79cc8);
                                                                     |     if (r3 == 0) {
    0x0003cd32 cbnz r3, 0x3cd44                                      |         
    0x0003cd34 ldr r2, [pc, 0x250]                                   |         
    0x0003cd36 movs r3, 8                                            |         r3 = 8;
    0x0003cd38 ldr r0, [pc, 0x250]                                   |         
    0x0003cd3a adds r1, 0x10                                         |         r1 += 0x10;
    0x0003cd3c add r2, pc                                            |         r2 = 0x79cc8;
    0x0003cd3e add r0, pc                                            |         r0 = 0x79cce;
    0x0003cd40 blx 0xdaa0                                            |         fcn_0000daa0 ();
                                                                     |     }
    0x0003cd44 ldr r2, [pc, 0x248]                                   |     
    0x0003cd46 mov r0, r6                                            |     r0 = r6;
    0x0003cd48 ldr r3, [pc, 0x248]                                   |     
    0x0003cd4a add r2, pc                                            |     r2 = 0x79cde;
    0x0003cd4c ldr r1, [r2, 0x10]                                    |     r1 = *(0x79cee);
    0x0003cd4e add r3, pc                                            |     r3 = 0x79ce6;
    0x0003cd50 movs r2, 1                                            |     r2 = 1;
    0x0003cd52 blx 0x10398                                           |     fcn_00010398 ();
    0x0003cd56 mov r0, r7                                            |     r0 = r7;
    0x0003cd58 blx 0xdff8                                            |     fcn_0000dff8 ();
    0x0003cd5c b 0x3cbee                                             |     goto label_8;
                                                                     | label_18:
    0x0003cd5e ldr r1, [pc, 0x238]                                   |     
    0x0003cd60 ldr r6, [sp, 0x28]                                    |     r6 = var_28h;
    0x0003cd62 add r1, pc                                            |     r1 = 0x79d00;
    0x0003cd64 ldr r3, [r1, 0x10]                                    |     r3 = *(0x79d10);
                                                                     |     if (r3 == 0) {
    0x0003cd66 cbnz r3, 0x3cd78                                      |         
    0x0003cd68 ldr r2, [pc, 0x230]                                   |         
    0x0003cd6a movs r3, 8                                            |         r3 = 8;
    0x0003cd6c ldr r0, [pc, 0x230]                                   |         
    0x0003cd6e adds r1, 0x10                                         |         r1 += 0x10;
    0x0003cd70 add r2, pc                                            |         r2 = 0x79d10;
    0x0003cd72 add r0, pc                                            |         r0 = 0x79d16;
    0x0003cd74 blx 0xdaa0                                            |         fcn_0000daa0 ();
                                                                     |     }
    0x0003cd78 ldr r1, [pc, 0x228]                                   |     
    0x0003cd7a movs r2, 1                                            |     r2 = 1;
    0x0003cd7c ldr r3, [pc, 0x228]                                   |     
    0x0003cd7e mov r0, r6                                            |     r0 = r6;
    0x0003cd80 add r1, pc                                            |     
    0x0003cd82 ldr r1, [r1, 0x10]                                    |     r1 = *(0x79d38);
    0x0003cd84 add r3, pc                                            |     r3 = 0x79d30;
    0x0003cd86 blx 0x10398                                           |     fcn_00010398 ();
    0x0003cd8a b 0x3cbee                                             |     goto label_8;
                                                                     | label_27:
    0x0003cd8c ldr r1, [pc, 0x21c]                                   |     
    0x0003cd8e ldr r6, [sp, 0x28]                                    |     r6 = var_28h;
    0x0003cd90 add r1, pc                                            |     r1 = 0x79d40;
    0x0003cd92 ldr r3, [r1, 0x10]                                    |     r3 = *(0x79d50);
                                                                     |     if (r3 == 0) {
    0x0003cd94 cbnz r3, 0x3cda6                                      |         
    0x0003cd96 ldr r2, [pc, 0x218]                                   |         
    0x0003cd98 movs r3, 8                                            |         r3 = 8;
    0x0003cd9a ldr r0, [pc, 0x218]                                   |         
    0x0003cd9c adds r1, 0x10                                         |         r1 += 0x10;
    0x0003cd9e add r2, pc                                            |         r2 = 0x79d54;
    0x0003cda0 add r0, pc                                            |         r0 = 0x79d5a;
    0x0003cda2 blx 0xdaa0                                            |         fcn_0000daa0 ();
                                                                     |     }
    0x0003cda6 ldr r1, [pc, 0x210]                                   |     
    0x0003cda8 movs r2, 1                                            |     r2 = 1;
    0x0003cdaa ldr r3, [pc, 0x210]                                   |     
    0x0003cdac mov r0, r6                                            |     r0 = r6;
    0x0003cdae add r1, pc                                            |     
    0x0003cdb0 ldr r1, [r1, 0x10]                                    |     r1 = *(0x79d7c);
    0x0003cdb2 add r3, pc                                            |     r3 = 0x79d74;
    0x0003cdb4 blx 0x10398                                           |     fcn_00010398 ();
    0x0003cdb8 b 0x3cbee                                             |     goto label_8;
                                                                     | label_16:
    0x0003cdba ldr r1, [pc, 0x204]                                   |     
    0x0003cdbc add r1, pc                                            |     r1 = 0x79d82;
    0x0003cdbe ldr r3, [r1, 0x10]                                    |     r3 = *(0x79d92);
                                                                     |     if (r3 == 0) {
    0x0003cdc0 cbnz r3, 0x3cdd2                                      |         
    0x0003cdc2 ldr r2, [pc, 0x200]                                   |         
    0x0003cdc4 movs r3, 8                                            |         r3 = 8;
    0x0003cdc6 ldr r0, [pc, 0x200]                                   |         
    0x0003cdc8 adds r1, 0x10                                         |         r1 += 0x10;
    0x0003cdca add r2, pc                                            |         r2 = 0x79d94;
    0x0003cdcc add r0, pc                                            |         r0 = 0x79d9a;
    0x0003cdce blx 0xdaa0                                            |         fcn_0000daa0 ();
                                                                     |     }
    0x0003cdd2 ldr r1, [pc, 0x1f8]                                   |     
    0x0003cdd4 movs r2, 1                                            |     r2 = 1;
    0x0003cdd6 ldr r3, [pc, 0x1f8]                                   |     
    0x0003cdd8 mov r0, r6                                            |     r0 = r6;
    0x0003cdda add r1, pc                                            |     
    0x0003cddc add r3, pc                                            |     r3 = 0x79db2;
    0x0003cdde ldr r1, [r1, 0x10]                                    |     r1 = *(0x79dbc);
    0x0003cde0 blx 0x10398                                           |     fcn_00010398 ();
    0x0003cde4 ldr r0, [r5, 0x60]                                    |     r0 = *((r5 + 0x60));
    0x0003cde6 blx 0xdff8                                            |     fcn_0000dff8 ();
    0x0003cdea ldr r3, [r5, 0x5c]                                    |     r3 = *((r5 + 0x5c));
    0x0003cdec movs r2, 0                                            |     r2 = 0;
    0x0003cdee str r2, [r5, 0x60]                                    |     *((r5 + 0x60)) = r2;
    0x0003cdf0 ldr r2, [r3, 4]                                       |     r2 = *(0x79db6);
    0x0003cdf2 cmp r2, 0                                             |     
                                                                     |     if (r2 != 0) {
    0x0003cdf4 bne.w 0x3cbf6                                         |         goto label_9;
                                                                     |     }
    0x0003cdf8 ldr r4, [r5, 0x44]                                    |     r4 = *((r5 + 0x44));
    0x0003cdfa b 0x3ccde                                             |     goto label_10;
                                                                     | label_21:
    0x0003cdfc ldr r1, [pc, 0x1d4]                                   |     
    0x0003cdfe ldr r6, [sp, 0x28]                                    |     r6 = var_28h;
    0x0003ce00 add r1, pc                                            |     r1 = 0x79dd8;
    0x0003ce02 ldr r3, [r1, 0x10]                                    |     r3 = *(0x79de8);
                                                                     |     if (r3 == 0) {
    0x0003ce04 cbnz r3, 0x3ce16                                      |         
    0x0003ce06 ldr r2, [pc, 0x1d0]                                   |         
    0x0003ce08 movs r3, 8                                            |         r3 = 8;
    0x0003ce0a ldr r0, [pc, 0x1d0]                                   |         
    0x0003ce0c adds r1, 0x10                                         |         r1 += 0x10;
    0x0003ce0e add r2, pc                                            |         r2 = 0x79dec;
    0x0003ce10 add r0, pc                                            |         r0 = 0x79df2;
    0x0003ce12 blx 0xdaa0                                            |         fcn_0000daa0 ();
                                                                     |     }
    0x0003ce16 ldr r1, [pc, 0x1c8]                                   |     
    0x0003ce18 movs r2, 1                                            |     r2 = 1;
    0x0003ce1a ldr r3, [pc, 0x1c8]                                   |     
    0x0003ce1c mov r0, r6                                            |     r0 = r6;
    0x0003ce1e add r1, pc                                            |     
    0x0003ce20 ldr r1, [r1, 0x10]                                    |     r1 = *(0x79e14);
    0x0003ce22 add r3, pc                                            |     r3 = 0x79e0c;
    0x0003ce24 blx 0x10398                                           |     fcn_00010398 ();
    0x0003ce28 b 0x3cbee                                             |     goto label_8;
                                                                     | label_26:
    0x0003ce2a ldr r1, [pc, 0x1bc]                                   |     
    0x0003ce2c ldr r6, [sp, 0x28]                                    |     r6 = var_28h;
    0x0003ce2e add r1, pc                                            |     r1 = 0x79e1c;
    0x0003ce30 ldr r3, [r1, 0x10]                                    |     r3 = *(0x79e2c);
                                                                     |     if (r3 == 0) {
    0x0003ce32 cbnz r3, 0x3ce44                                      |         
    0x0003ce34 ldr r2, [pc, 0x1b4]                                   |         
    0x0003ce36 movs r3, 8                                            |         r3 = 8;
    0x0003ce38 ldr r0, [pc, 0x1b4]                                   |         
    0x0003ce3a adds r1, 0x10                                         |         r1 += 0x10;
    0x0003ce3c add r2, pc                                            |         r2 = 0x79e2c;
    0x0003ce3e add r0, pc                                            |         r0 = 0x79e32;
    0x0003ce40 blx 0xdaa0                                            |         fcn_0000daa0 ();
                                                                     |     }
    0x0003ce44 ldr r1, [pc, 0x1ac]                                   |     
    0x0003ce46 movs r2, 1                                            |     r2 = 1;
    0x0003ce48 ldr r3, [pc, 0x1ac]                                   |     
    0x0003ce4a mov r0, r6                                            |     r0 = r6;
    0x0003ce4c add r1, pc                                            |     
    0x0003ce4e ldr r1, [r1, 0x10]                                    |     r1 = *(0x79e54);
    0x0003ce50 add r3, pc                                            |     r3 = 0x79e4c;
    0x0003ce52 blx 0x10398                                           |     fcn_00010398 ();
    0x0003ce56 b 0x3cbee                                             |     goto label_8;
                                                                     | label_31:
    0x0003ce58 ldr r1, [pc, 0x1a0]                                   |     
    0x0003ce5a ldr r6, [sp, 0x28]                                    |     r6 = var_28h;
    0x0003ce5c add r1, pc                                            |     r1 = 0x79e5c;
    0x0003ce5e ldr r3, [r1, 0x10]                                    |     r3 = *(0x79e6c);
                                                                     |     if (r3 == 0) {
    0x0003ce60 cbnz r3, 0x3ce72                                      |         
    0x0003ce62 ldr r2, [pc, 0x19c]                                   |         
    0x0003ce64 movs r3, 8                                            |         r3 = 8;
    0x0003ce66 ldr r0, [pc, 0x19c]                                   |         
    0x0003ce68 adds r1, 0x10                                         |         r1 += 0x10;
    0x0003ce6a add r2, pc                                            |         r2 = 0x79e70;
    0x0003ce6c add r0, pc                                            |         r0 = 0x79e76;
    0x0003ce6e blx 0xdaa0                                            |         fcn_0000daa0 ();
                                                                     |     }
    0x0003ce72 ldr r1, [pc, 0x194]                                   |     
    0x0003ce74 movs r2, 1                                            |     r2 = 1;
    0x0003ce76 ldr r3, [pc, 0x194]                                   |     
    0x0003ce78 mov r0, r6                                            |     r0 = r6;
    0x0003ce7a add r1, pc                                            |     
    0x0003ce7c ldr r1, [r1, 0x10]                                    |     r1 = *(0x79e98);
    0x0003ce7e add r3, pc                                            |     r3 = 0x79e90;
    0x0003ce80 blx 0x10398                                           |     fcn_00010398 ();
    0x0003ce84 b 0x3cbee                                             |     goto label_8;
                                                                     | label_32:
    0x0003ce86 ldr r1, [pc, 0x188]                                   |     
    0x0003ce88 add r1, pc                                            |     r1 = 0x79e9e;
    0x0003ce8a ldr r3, [r1, 0x10]                                    |     r3 = *(0x79eae);
                                                                     |     if (r3 == 0) {
    0x0003ce8c cbnz r3, 0x3ce9e                                      |         
    0x0003ce8e ldr r2, [pc, 0x184]                                   |         
    0x0003ce90 movs r3, 8                                            |         r3 = 8;
    0x0003ce92 ldr r0, [pc, 0x184]                                   |         
    0x0003ce94 adds r1, 0x10                                         |         r1 += 0x10;
    0x0003ce96 add r2, pc                                            |         r2 = 0x79eb0;
    0x0003ce98 add r0, pc                                            |         r0 = 0x79eb6;
    0x0003ce9a blx 0xdaa0                                            |         fcn_0000daa0 ();
                                                                     |     }
    0x0003ce9e ldr r2, [pc, 0x17c]                                   |     
    0x0003cea0 mov r0, r6                                            |     r0 = r6;
    0x0003cea2 ldr r3, [pc, 0x17c]                                   |     
    0x0003cea4 add r2, pc                                            |     r2 = 0x79ec6;
    0x0003cea6 ldr r1, [r2, 0x10]                                    |     r1 = *(0x79ed6);
    0x0003cea8 add r3, pc                                            |     r3 = 0x79ece;
    0x0003ceaa movs r2, 1                                            |     r2 = 1;
    0x0003ceac blx 0x10398                                           |     fcn_00010398 ();
    0x0003ceb0 mov r0, r5                                            |     r0 = r5;
    0x0003ceb2 blx 0xfba0                                            |     fcn_0000fba0 ();
    0x0003ceb6 mov r0, r4                                            |     r0 = r4;
    0x0003ceb8 blx 0xdff8                                            |     fcn_0000dff8 ();
    0x0003cebc b 0x3cbee                                             |     goto label_8;
                                                                     | label_29:
    0x0003cebe ldr r1, [pc, 0x164]                                   |     
    0x0003cec0 ldr r6, [sp, 0x28]                                    |     r6 = var_28h;
    0x0003cec2 add r1, pc                                            |     r1 = 0x79eec;
    0x0003cec4 ldr r3, [r1, 0x10]                                    |     r3 = *(0x79efc);
                                                                     |     if (r3 == 0) {
    0x0003cec6 cbnz r3, 0x3ced8                                      |         
    0x0003cec8 ldr r2, [pc, 0x15c]                                   |         
    0x0003ceca movs r3, 8                                            |         r3 = 8;
    0x0003cecc ldr r0, [pc, 0x15c]                                   |         
    0x0003cece adds r1, 0x10                                         |         r1 += 0x10;
    0x0003ced0 add r2, pc                                            |         r2 = 0x79efc;
    0x0003ced2 add r0, pc                                            |         r0 = 0x79f02;
    0x0003ced4 blx 0xdaa0                                            |         fcn_0000daa0 ();
                                                                     |     }
    0x0003ced8 ldr r1, [pc, 0x154]                                   |     
    0x0003ceda movs r2, 1                                            |     r2 = 1;
    0x0003cedc ldr r3, [pc, 0x154]                                   |     
    0x0003cede mov r0, r6                                            |     r0 = r6;
    0x0003cee0 add r1, pc                                            |     
    0x0003cee2 ldr r1, [r1, 0x10]                                    |     r1 = *(0x79f24);
    0x0003cee4 add r3, pc                                            |     r3 = 0x79f1c;
    0x0003cee6 blx 0x10398                                           |     fcn_00010398 ();
    0x0003ceea b 0x3cbee                                             |     goto label_8;
                                                                     | label_15:
    0x0003ceec bl 0x3af08                                            |     fcn_0003af08 ();
    0x0003cef0 ldr r3, [pc, 0x144]                                   |     
    0x0003cef2 mov r1, r0                                            |     r1 = r0;
    0x0003cef4 movs r2, 1                                            |     r2 = 1;
    0x0003cef6 mov r0, r6                                            |     r0 = r6;
    0x0003cef8 add r3, pc                                            |     r3 = 0x79f34;
    0x0003cefa blx 0x10398                                           |     fcn_00010398 ();
    0x0003cefe b 0x3cbee                                             |     goto label_8;
                                                                     | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x3d1e0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0003d1e0 ()                  | void fcn_0003d1e0 (int16_t arg2, int16_t domain) {
                                             |     int32_t var_0h;
                                             |     int32_t var_0h_2;
                                             |     int16_t var_8h;
                                             |     int16_t var_14h;
                                             |     r1 = arg2;
                                             |     r0 = domain;
    0x0003d1e0 push {r4, r5, r6, lr}         |     
    0x0003d1e2 add.w r5, r0, 0xc             |     r5 = r0 + 0xc;
    0x0003d1e6 sub sp, 0x18                  |     
    0x0003d1e8 mov r4, r0                    |     r4 = r0;
    0x0003d1ea movs r3, 0                    |     r3 = 0;
    0x0003d1ec mov r0, r5                    |     r0 = r5;
    0x0003d1ee mov r6, r1                    |     r6 = r1;
    0x0003d1f0 str r3, [sp, 0x14]            |     var_14h = r3;
    0x0003d1f2 blx 0xf26c                    |     socket (r0, r1, r2);
    0x0003d1f6 ldr r1, [r4, 0x40]            |     r1 = *((r4 + 0x40));
    0x0003d1f8 cmp r1, 6                     |     
                                             |     if (r1 == 6) {
    0x0003d1fa beq 0x3d274                   |         goto label_1;
                                             |     }
    0x0003d1fc subs r3, r1, 3                |     r3 = r1 - 3;
    0x0003d1fe cmp r3, 2                     |     
                                             |     if (r3 < 2) {
    0x0003d200 bls 0x3d26c                   |         goto label_2;
                                             |     }
                                             | label_0:
    0x0003d202 mov.w r2, -1                  |     r2 = -1;
    0x0003d206 mov.w r3, -1                  |     r3 = -1;
    0x0003d20a add r6, sp, 0x14              |     r6 += var_14h;
    0x0003d20c movs r1, 0                    |     r1 = 0;
    0x0003d20e mov r0, r4                    |     r0 = r4;
    0x0003d210 str r6, [sp, 8]               |     var_8h = r6;
    0x0003d212 strd r2, r3, [sp]             |     __asm ("strd r2, r3, [sp]");
    0x0003d216 bl 0x3af3c                    |     r0 = fcn_0003af3c (r0, r1, r2, r3, r4);
    0x0003d21a cbz r0, 0x3d25a               |     
                                             |     while (1) {
    0x0003d21c mov r0, r4                    |         r0 = r4;
    0x0003d21e bl 0x39fe4                    |         fcn_00039fe4 (r0);
    0x0003d222 mov.w r2, -1                  |         r2 = -1;
    0x0003d226 mov.w r3, -1                  |         r3 = -1;
    0x0003d22a movs r1, 6                    |         r1 = 6;
    0x0003d22c mov r0, r4                    |         r0 = r4;
    0x0003d22e str r6, [sp, 8]               |         var_8h = r6;
    0x0003d230 strd r2, r3, [sp]             |         __asm ("strd r2, r3, [sp]");
    0x0003d234 bl 0x3af3c                    |         fcn_0003af3c (r0, r1, r2, r3, r4);
    0x0003d238 ldr r0, [r4, 0x24]            |         r0 = *((r4 + 0x24));
                                             |         if (r0 != 0) {
    0x0003d23a cbz r0, 0x3d24e               |             
    0x0003d23c ldr r1, [r4, 0x20]            |             r1 = *((r4 + 0x20));
    0x0003d23e blx 0xe6a8                    |             gst_static_caps_get ();
    0x0003d242 ldr r0, [r4, 0x24]            |             r0 = *((r4 + 0x24));
    0x0003d244 movs r3, 0                    |             r3 = 0;
    0x0003d246 str r3, [r4, 0x24]            |             *((r4 + 0x24)) = r3;
                                             |             if (r0 == 0) {
    0x0003d248 cbz r0, 0x3d24e               |                 goto label_3;
                                             |             }
    0x0003d24a blx 0xfba0                    |             fcn_0000fba0 ();
                                             |         }
                                             | label_3:
    0x0003d24e mov r0, r5                    |         r0 = r5;
    0x0003d250 blx 0xf548                    |         gst_mini_object_unref ();
    0x0003d254 movs r0, 1                    |         r0 = 1;
    0x0003d256 add sp, 0x18                  |         
    0x0003d258 pop {r4, r5, r6, pc}          |         
    0x0003d25a ldr r2, [pc, 0x58]            |         
    0x0003d25c movs r1, 0x20                 |         r1 = 0x20;
    0x0003d25e add r2, pc                    |         r2 = 0x7a518;
    0x0003d260 blx 0xe318                    |         gst_element_error_printf ()
    0x0003d264 mov r0, r6                    |         r0 = r6;
    0x0003d266 blx 0xf95c                    |         gst_mini_object_replace ();
    0x0003d26a b 0x3d21c                     |         
                                             |     }
                                             | label_2:
    0x0003d26c mov r0, r4                    |     r0 = r4;
    0x0003d26e bl 0x3d148                    |     fcn_0003d148 (r0, r1);
    0x0003d272 b 0x3d202                     |     goto label_0;
                                             | label_1:
    0x0003d274 ldr r1, [pc, 0x40]            |     
    0x0003d276 add r1, pc                    |     r1 = 0x7a532;
    0x0003d278 ldr r3, [r1, 0x10]            |     r3 = *(0x7a542);
                                             |     if (r3 == 0) {
    0x0003d27a cbnz r3, 0x3d28c              |         
    0x0003d27c ldr r2, [pc, 0x3c]            |         
    0x0003d27e movs r3, 8                    |         r3 = 8;
    0x0003d280 ldr r0, [pc, 0x3c]            |         
    0x0003d282 adds r1, 0x10                 |         r1 += 0x10;
    0x0003d284 add r2, pc                    |         r2 = 0x7a544;
    0x0003d286 add r0, pc                    |         r0 = 0x7a54a;
    0x0003d288 blx 0xdaa0                    |         fcn_0000daa0 ();
                                             |     }
    0x0003d28c ldr r1, [pc, 0x34]            |     
    0x0003d28e movs r2, 2                    |     r2 = 2;
    0x0003d290 ldr r3, [pc, 0x34]            |     
    0x0003d292 add r0, sp, 0x14              |     r0 += var_14h;
    0x0003d294 add r1, pc                    |     
    0x0003d296 add r3, pc                    |     r3 = 0x7a562;
    0x0003d298 ldr r1, [r1, 0x10]            |     r1 = *(0x7a56c);
    0x0003d29a blx 0x10398                   |     fcn_00010398 ();
    0x0003d29e mov r0, r5                    |     r0 = r5;
    0x0003d2a0 blx 0xf548                    |     gst_mini_object_unref ();
    0x0003d2a4 mov r0, r6                    |     r0 = r6;
    0x0003d2a6 ldr r1, [sp, 0x14]            |     r1 = var_14h;
    0x0003d2a8 blx 0xdfd0                    |     gst_buffer_new_wrapped ();
    0x0003d2ac movs r0, 0                    |     r0 = 0;
    0x0003d2ae add sp, 0x18                  |     
    0x0003d2b0 pop {r4, r5, r6, pc}          |     
                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x3e498 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0003e498 ()                      | void fcn_0003e498 (uint32_t arg1, int16_t arg2) {
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x0003e498 invalid                           |     
    0x0003e49c cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x0003e49e beq 0x3e518                       |         
    0x0003e4a0 mov r6, r1                        |         r6 = r1;
    0x0003e4a2 bl 0x3ab48                        |         r0 = fcn_0003ab48 ();
    0x0003e4a6 mov r1, r0                        |         r1 = r0;
    0x0003e4a8 mov r0, r6                        |         r0 = r6;
    0x0003e4aa blx 0xdbac                        |         r0 = fcn_0000dbac ();
    0x0003e4ae mov r5, r0                        |         r5 = r0;
                                                 |         if (r0 != 0) {
    0x0003e4b0 cbz r0, 0x3e508                   |             
    0x0003e4b2 ldr r7, [pc, 0x78]                |             
    0x0003e4b4 add r7, pc                        |             r7 = 0x7c9e6;
    0x0003e4b6 ldr r0, [r7, 4]                   |             r0 = *(0x7c9ea);
    0x0003e4b8 adds r0, 0x48                     |             r0 += 0x48;
    0x0003e4ba blx 0xf26c                        |             socket (r0, r1, r2);
    0x0003e4be ldr r3, [r7, 4]                   |             r3 = *(0x7c9ea);
    0x0003e4c0 mov r1, r4                        |             r1 = r4;
    0x0003e4c2 ldr r0, [r3, 0x50]                |             r0 = *(0x7ca3a);
    0x0003e4c4 blx 0xefb8                        |             r0 = fcn_0000efb8 ();
                                                 |             if (r0 != 0) {
    0x0003e4c8 cbz r0, 0x3e4e6                   |                 
    0x0003e4ca ldr r2, [pc, 0x64]                |                 
    0x0003e4cc mov r3, r4                        |                 r3 = r4;
    0x0003e4ce movs r1, 0x20                     |                 r1 = 0x20;
    0x0003e4d0 movs r0, 0                        |                 r0 = 0;
    0x0003e4d2 movs r5, 0                        |                 r5 = 0;
    0x0003e4d4 add r2, pc                        |                 r2 = 0x7ca0a;
    0x0003e4d6 blx 0xe318                        |                 gst_element_error_printf ()
    0x0003e4da ldr r0, [r7, 4]                   |                 r0 = *((r7 + 4));
    0x0003e4dc adds r0, 0x48                     |                 r0 += 0x48;
    0x0003e4de blx 0xf548                        |                 gst_mini_object_unref ();
    0x0003e4e2 mov r0, r5                        |                 r0 = r5;
    0x0003e4e4 pop {r3, r4, r5, r6, r7, pc}      |                 
                                                 |             }
    0x0003e4e6 ldr r3, [r7, 4]                   |             r3 = *((r7 + 4));
    0x0003e4e8 mov r0, r4                        |             r0 = r4;
    0x0003e4ea movs r5, 1                        |             r5 = 1;
    0x0003e4ec ldr r4, [r3, 0x50]                |             r4 = *((r3 + 0x50));
    0x0003e4ee blx 0xe798                        |             gst_query_new_custom ();
    0x0003e4f2 mov r2, r6                        |             r2 = r6;
    0x0003e4f4 mov r1, r0                        |             r1 = r0;
    0x0003e4f6 mov r0, r4                        |             r0 = r4;
    0x0003e4f8 blx 0xe83c                        |             fcn_0000e83c ();
    0x0003e4fc ldr r0, [r7, 4]                   |             r0 = *((r7 + 4));
    0x0003e4fe adds r0, 0x48                     |             r0 += 0x48;
    0x0003e500 blx 0xf548                        |             gst_mini_object_unref ();
    0x0003e504 mov r0, r5                        |             r0 = r5;
    0x0003e506 pop {r3, r4, r5, r6, r7, pc}      |             
                                                 |         }
    0x0003e508 ldr r2, [pc, 0x28]                |         
    0x0003e50a mov r3, r4                        |         r3 = r4;
    0x0003e50c movs r1, 0x20                     |         r1 = 0x20;
    0x0003e50e add r2, pc                        |         r2 = 0x7ca46;
    0x0003e510 blx 0xe318                        |         gst_element_error_printf ()
    0x0003e514 mov r0, r5                        |         r0 = r5;
    0x0003e516 pop {r3, r4, r5, r6, r7, pc}      |         
                                                 |     }
    0x0003e518 ldr r2, [pc, 0x1c]                |     
    0x0003e51a mov r5, r0                        |     r5 = r0;
    0x0003e51c ldr r1, [pc, 0x1c]                |     
    0x0003e51e add r2, pc                        |     r2 = 0x7ca5a;
    0x0003e520 add r1, pc                        |     r1 = 0x7ca60;
    0x0003e522 blx 0xdc4c                        |     g_ascii_string_to_unsigned ();
    0x0003e526 mov r0, r5                        |     r0 = r5;
    0x0003e528 pop {r3, r4, r5, r6, r7, pc}      |     
                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x3e540 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) fcn.0003e540 ()                                      | void fcn_0003e540 (uint32_t arg1) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     uint32_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_8ch;
                                                                 |     int16_t var_90h;
                                                                 |     int16_t var_4h;
                                                                 |     r0 = arg1;
    0x0003e540 push {r1, r2, r3, sl, ip, sp, pc}                 |     
    0x0003e544 ldr r7, [pc, 0x3c0]                               |     r7 = *(0x3e908);
    0x0003e546 sub sp, 0x68                                      |     
    0x0003e548 ldr r5, [pc, 0x220]                               |     
    0x0003e54a str r0, [sp, 0x14]                                |     var_14h = r0;
    0x0003e54c ldr.w r8, [sp, 0x8c]                              |     r8 = var_8ch;
    0x0003e550 add r5, pc                                        |     r5 = 0x7ccc0;
    0x0003e552 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0003e554 beq.w 0x3e708                                     |         goto label_6;
                                                                 |     }
    0x0003e558 ldr r4, [pc, 0x214]                               |     
    0x0003e55a mov r6, r0                                        |     r6 = r0;
    0x0003e55c add r4, pc                                        |     r4 = 0x7ccd0;
    0x0003e55e ldr r0, [r4, 4]                                   |     r0 = *(0x7ccd4);
    0x0003e560 adds r0, 0x48                                     |     r0 += 0x48;
    0x0003e562 blx 0xf26c                                        |     socket (r0, r1, r2);
    0x0003e566 ldr r3, [r4, 4]                                   |     r3 = *(0x7ccd4);
    0x0003e568 mov r1, r6                                        |     r1 = r6;
    0x0003e56a ldr r0, [r3, 0x50]                                |     r0 = *(0x7cd24);
    0x0003e56c blx 0xefb8                                        |     fcn_0000efb8 ();
    0x0003e570 ldr r3, [r4, 4]                                   |     r3 = *(0x7ccd4);
    0x0003e572 mov r4, r0                                        |     r4 = r0;
    0x0003e574 str r0, [sp, 0x10]                                |     var_10h = r0;
    0x0003e576 mov r6, r4                                        |     r6 = r4;
    0x0003e578 add.w r0, r3, 0x48                                |     r0 = r3 + 0x48;
    0x0003e57c blx 0xf548                                        |     gst_mini_object_unref ();
    0x0003e580 cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x0003e582 beq.w 0x3e748                                     |         goto label_7;
                                                                 |     }
    0x0003e586 ldr r0, [sp, 0x10]                                |     r0 = var_10h;
    0x0003e588 add r4, sp, 0x90                                  |     r4 += var_90h;
    0x0003e58a str r4, [sp, 0x18]                                |     var_18h = r4;
    0x0003e58c blx 0xfd64                                        |     g_strchug ();
    0x0003e590 ldr r3, [pc, 0x1e0]                               |     r3 = *(0x3e774);
    0x0003e592 mov fp, r0                                        |     
    0x0003e594 ldr r2, [r5, r3]                                  |     r2 = *((r5 + r3));
    0x0003e596 ldr r3, [pc, 0x1e0]                               |     r3 = *(0x3e77a);
    0x0003e598 ldr r1, [r5, r3]                                  |     r1 = *((r5 + r3));
    0x0003e59a ldr r3, [pc, 0x1e0]                               |     r3 = *(0x3e77e);
    0x0003e59c ldr r0, [r5, r3]                                  |     r0 = *((r5 + r3));
    0x0003e59e ldr r3, [pc, 0x1e0]                               |     
    0x0003e5a0 add r3, pc                                        |     r3 = 0x7cd26;
    0x0003e5a2 blx 0xe74c                                        |     r0 = fcn_0000e74c ();
    0x0003e5a6 mov sl, r0                                        |     sl = r0;
    0x0003e5a8 cmp.w r8, 0                                       |     
                                                                 |     if (r8 == 0) {
    0x0003e5ac beq 0x3e650                                       |         goto label_8;
                                                                 |     }
    0x0003e5ae add.w sb, sp, 0x28                                |     sb += var_28h;
    0x0003e5b2 mov r5, r8                                        |     r5 = r8;
    0x0003e5b4 str r0, [sp, 0xc]                                 |     var_ch = r0;
                                                                 | label_0:
    0x0003e5b6 mov r1, r5                                        |     r1 = r5;
    0x0003e5b8 mov r0, fp                                        |     r0 = fp;
    0x0003e5ba blx 0xf7c4                                        |     r0 = gst_format_get_by_nick ();
    0x0003e5be mov sl, r0                                        |     sl = r0;
    0x0003e5c0 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0003e5c2 beq.w 0x3e722                                     |         goto label_9;
                                                                 |     }
    0x0003e5c6 movs r0, 0x18                                     |     r0 = 0x18;
    0x0003e5c8 blx 0xff9c                                        |     r0 = fcn_0000ff9c ();
    0x0003e5cc mov r7, r0                                        |     r7 = r0;
    0x0003e5ce ldr.w r0, [sl, 0xc]                               |     r0 = *((sl + 0xc));
    0x0003e5d2 blx 0xfd70                                        |     g_key_file_unref ();
    0x0003e5d6 movs r2, 0x40                                     |     r2 = 0x40;
    0x0003e5d8 ldr r6, [r0, 0x10]                                |     r6 = *((r0 + 0x10));
    0x0003e5da mov r8, r0                                        |     r8 = r0;
    0x0003e5dc movs r1, 0                                        |     r1 = 0;
    0x0003e5de mov r0, sb                                        |     r0 = sb;
    0x0003e5e0 blx 0xe854                                        |     fcn_0000e854 ();
    0x0003e5e4 ldr.w r3, [sl, 0xc]                               |     r3 = *((sl + 0xc));
    0x0003e5e8 str r3, [r7]                                      |     *(r7) = r3;
    0x0003e5ea ldrb r3, [r6]                                     |     r3 = *(r6);
    0x0003e5ec cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0003e5ee beq.w 0x3e704                                     |         goto label_10;
                                                                 |     }
    0x0003e5f2 mov r2, r6                                        |     r2 = r6;
    0x0003e5f4 mov r0, sb                                        |     r0 = sb;
    0x0003e5f6 rsb.w r6, r6, 1                                   |     r6 = 1 - r6;
                                                                 |     do {
    0x0003e5fa subs r3, 0x64                                     |         r3 -= 0x64;
    0x0003e5fc adds r1, r6, r2                                   |         r1 = r6 + r2;
    0x0003e5fe cmp r3, 0xd                                       |         
                                                                 |         if (r3 > 0xd) {
    0x0003e600 bhi 0x3e6f4                                       |             goto label_11;
                                                                 |         }
                                                                 |         /* switch table (13 cases) at 0x3e606 */
    0x0003e602 tbb [pc, r3]                                      |         __asm ("tbb aav.0x000000ff");
    0x0003e614 ldr r3, [r4], 4                                   |         r3 = *(r4);
                                                                 |         r4 += 4;
    0x0003e618 str r3, [r0]                                      |         *(r0) = r3;
                                                                 | label_1:
    0x0003e61a ldrb r3, [r2, 1]!                                 |         r3 = *((r2 += 1));
    0x0003e61e adds r0, 8                                        |         r0 += 8;
    0x0003e620 cmp r3, 0                                         |         
    0x0003e622 bne 0x3e5fa                                       |         
                                                                 |     } while (r3 != 0);
                                                                 | label_2:
    0x0003e624 ldr.w r6, [r8, 0x14]                              |     r6 = *((r8 + 0x14));
    0x0003e628 movs r3, 0                                        |     r3 = 0;
    0x0003e62a mov r2, sb                                        |     r2 = sb;
    0x0003e62c mov r0, r7                                        |     r0 = r7;
    0x0003e62e blx r6                                            |     r0 = uint32_t (*r6)(uint32_t, uint32_t, uint32_t) (r0, r2, r3);
    0x0003e630 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0003e632 bne 0x3e730                                       |         goto label_12;
                                                                 |     }
    0x0003e634 mov r0, r5                                        |     r0 = r5;
    0x0003e636 blx 0xe798                                        |     gst_query_new_custom ();
    0x0003e63a mov r2, r7                                        |     r2 = r7;
    0x0003e63c mov r1, r0                                        |     r1 = r0;
    0x0003e63e ldr r0, [sp, 0xc]                                 |     r0 = var_ch;
    0x0003e640 blx 0xe83c                                        |     fcn_0000e83c ();
    0x0003e644 ldr r5, [r4], 4                                   |     r5 = *(r4);
                                                                 |     r4 += 4;
    0x0003e648 cmp r5, 0                                         |     
                                                                 |     if (r5 != 0) {
    0x0003e64a bne 0x3e5b6                                       |         goto label_0;
                                                                 |     }
    0x0003e64c ldr.w sl, [sp, 0xc]                               |     sl = var_ch;
                                                                 | label_8:
    0x0003e650 mov r0, fp                                        |     r0 = fp;
    0x0003e652 blx 0xf260                                        |     g_list_prepend ();
    0x0003e656 cmp.w sl, 0                                       |     
                                                                 |     if (sl == 0) {
    0x0003e65a beq.w 0x3e766                                     |         goto label_13;
                                                                 |     }
    0x0003e65e movs r3, 0                                        |     r3 = 0;
    0x0003e660 ldr r0, [sp, 0x10]                                |     r0 = var_10h;
    0x0003e662 add r2, sp, 0x28                                  |     r2 += var_28h;
    0x0003e664 mov r1, sl                                        |     r1 = sl;
    0x0003e666 str r3, [sp, 0x28]                                |     var_28h = r3;
    0x0003e668 bl 0x3bd94                                        |     r0 = fcn_0003bd94 (r0, r1);
    0x0003e66c mov r6, r0                                        |     r6 = r0;
    0x0003e66e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0003e670 beq 0x3e71a                                       |         goto label_14;
                                                                 |     }
    0x0003e672 ldr r4, [sp, 0x10]                                |     r4 = var_10h;
    0x0003e674 add r2, sp, 0x24                                  |     r2 += var_24h;
    0x0003e676 str r2, [sp]                                      |     *(sp) = r2;
    0x0003e678 add r3, sp, 0x20                                  |     r3 += var_20h;
    0x0003e67a add r2, sp, 0x1c                                  |     r2 += var_1ch;
    0x0003e67c mov r1, sl                                        |     r1 = sl;
    0x0003e67e mov r0, r4                                        |     r0 = r4;
    0x0003e680 bl 0x3df7c                                        |     fcn_0003df7c (r0, r1, r2, r3);
    0x0003e682 ldc2l p6, c4, [ip], -0x18                         |     __asm ("ldc2l p6, c4, [ip], -0x18");
                                                                 |     if (r0 == 0) {
    0x0003e686 cbz r0, 0x3e6d2                                   |         goto label_3;
                                                                 |     }
    0x0003e688 ldrd r7, r8, [sp, 0x1c]                           |     __asm ("ldrd r7, r8, [var_20h]");
    0x0003e68c mov r0, r4                                        |     r0 = r4;
    0x0003e68e ldr.w sb, [sp, 0x24]                              |     sb = var_24h;
    0x0003e692 mov r2, r8                                        |     r2 = r8;
    0x0003e694 mov r1, r7                                        |     r1 = r7;
    0x0003e696 mov r3, sb                                        |     r3 = sb;
    0x0003e698 blx 0xf6f0                                        |     r0 = fcn_0000f6f0 ();
    0x0003e69c mov r6, r0                                        |     r6 = r0;
    0x0003e69e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0003e6a0 beq 0x3e758                                       |         goto label_15;
                                                                 |     }
    0x0003e6a2 bl 0x3ab48                                        |     r0 = fcn_0003ab48 ();
    0x0003e6a6 mov r1, r0                                        |     r1 = r0;
    0x0003e6a8 mov r0, r6                                        |     r0 = r6;
    0x0003e6aa blx 0xe18c                                        |     r0 = cert_set_init ();
    0x0003e6ae mov r6, r0                                        |     r6 = r0;
                                                                 |     if (r7 == 0) {
                                                                 | label_5:
    0x0003e6b0 cbz r7, 0x3e6c6                                   |         goto label_16;
                                                                 |     }
    0x0003e6b2 mov r5, sb                                        |     r5 = sb;
    0x0003e6b4 movs r4, 0                                        |     r4 = 0;
                                                                 |     do {
    0x0003e6b6 mov r0, r5                                        |         r0 = r5;
    0x0003e6b8 adds r4, 1                                        |         r4++;
    0x0003e6ba blx 0x1035c                                       |         fcn_0001035c ();
    0x0003e6be cmp r7, r4                                        |         
    0x0003e6c0 add.w r5, r5, 0x18                                |         r5 += 0x18;
    0x0003e6c4 bne 0x3e6b6                                       |         
                                                                 |     } while (r7 != r4);
                                                                 | label_16:
    0x0003e6c6 mov r0, r8                                        |     r0 = r8;
    0x0003e6c8 blx 0xf3e8                                        |     fcn_0000f3e8 ();
    0x0003e6cc mov r0, sb                                        |     r0 = sb;
    0x0003e6ce blx 0xf3e8                                        |     fcn_0000f3e8 ();
                                                                 | label_3:
    0x0003e6d2 mov r0, sl                                        |     r0 = sl;
    0x0003e6d4 blx 0xf498                                        |     fcn_0000f498 ();
                                                                 |     do {
                                                                 | label_4:
    0x0003e6d8 mov r0, r6                                        |         r0 = r6;
    0x0003e6da add sp, 0x68                                      |         
    0x0003e6dc pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}        |         
    0x0003e6e0 add sp, 0xc                                       |         
    0x0003e6e2 bx lr                                             |         return;
    0x0003e6e4 adds r4, 7                                        |         r4 += 7;
    0x0003e6e6 bic r4, r4, 7                                     |         r4 = BIT_MASK (var_4h, );
    0x0003e6e8 lsls r7, r0, 0x10                                 |         r7 = r0 << 0x10;
    0x0003e6ea vldmia r4!, {d16}                                 |         __asm ("vldmia r4!, {d16}");
    0x0003e6ee vstr d16, [r0]                                    |         __asm ("vstr d16, [r0]");
    0x0003e6f2 b 0x3e61a                                         |         goto label_1;
                                                                 | label_11:
    0x0003e6f4 adds r4, 7                                        |         r4 += 7;
    0x0003e6f6 bic r4, r4, 7                                     |         r4 = BIT_MASK (var_4h, );
    0x0003e6fa vldmia r4!, {d16}                                 |         __asm ("vldmia r4!, {d16}");
    0x0003e6fe vstr d16, [r0]                                    |         __asm ("vstr d16, [r0]");
    0x0003e702 b 0x3e61a                                         |         goto label_1;
                                                                 | label_10:
    0x0003e704 mov r1, r3                                        |         r1 = r3;
    0x0003e706 b 0x3e624                                         |         goto label_2;
                                                                 | label_6:
    0x0003e708 ldr r1, [pc, 0x78]                                |         
    0x0003e70a ldr r2, [pc, 0x7c]                                |         
    0x0003e70c ldr r6, [sp, 0x14]                                |         r6 = var_14h;
    0x0003e70e add r1, pc                                        |         r1 = 0x7ce96;
    0x0003e710 add r2, pc                                        |         r2 = 0x7ce9e;
    0x0003e712 adds r1, 0x18                                     |         r1 += 0x18;
    0x0003e714 blx 0xdc4c                                        |         g_ascii_string_to_unsigned ();
    0x0003e718 b 0x3e6d8                                         |         
                                                                 |     } while (1);
                                                                 | label_14:
    0x0003e71a ldr r0, [sp, 0x28]                                |     r0 = var_28h;
    0x0003e71c blx 0xdec0                                        |     fcn_0000dec0 ();
    0x0003e720 b 0x3e6d2                                         |     goto label_3;
                                                                 | label_9:
    0x0003e722 ldr.w sl, [sp, 0xc]                               |     sl = var_ch;
    0x0003e726 mov r6, r0                                        |     r6 = r0;
    0x0003e728 mov r0, sl                                        |     r0 = sl;
    0x0003e72a blx 0xf498                                        |     fcn_0000f498 ();
    0x0003e72e b 0x3e6d8                                         |     goto label_4;
                                                                 | label_12:
    0x0003e730 ldr.w sl, [sp, 0xc]                               |     sl = var_ch;
    0x0003e734 movs r6, 0                                        |     r6 = 0;
    0x0003e736 blx 0xf3e8                                        |     fcn_0000f3e8 ();
    0x0003e73a mov r0, r7                                        |     r0 = r7;
    0x0003e73c blx 0xf3e8                                        |     fcn_0000f3e8 ();
    0x0003e740 mov r0, sl                                        |     r0 = sl;
    0x0003e742 blx 0xf498                                        |     fcn_0000f498 ();
    0x0003e746 b 0x3e6d8                                         |     goto label_4;
                                                                 | label_7:
    0x0003e748 ldr r2, [pc, 0x40]                                |     
    0x0003e74a movs r1, 0x20                                     |     r1 = 0x20;
    0x0003e74c ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0003e74e mov r0, r4                                        |     r0 = r4;
    0x0003e750 add r2, pc                                        |     r2 = 0x7cee0;
    0x0003e752 blx 0xe318                                        |     gst_element_error_printf ()
    0x0003e756 b 0x3e6d8                                         |     goto label_4;
                                                                 | label_15:
    0x0003e758 ldr r2, [pc, 0x34]                                |     
    0x0003e75a movs r1, 0x20                                     |     r1 = 0x20;
    0x0003e75c ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0003e75e add r2, pc                                        |     r2 = 0x7cef2;
    0x0003e760 blx 0xe318                                        |     gst_element_error_printf ()
    0x0003e764 b 0x3e6b0                                         |     goto label_5;
                                                                 | label_13:
    0x0003e766 mov r6, sl                                        |     r6 = sl;
    0x0003e768 b 0x3e6d8                                         |     goto label_4;
                                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x3e794 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0003e794 ()                                  | void fcn_0003e794 (int16_t arg2, uint32_t arg3, int16_t arg4) {
                                                             |     int16_t var_0h;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x0003e794 push.w {r4, r5, r6, r7, r8, sb, sl, lr}       |     
    0x0003e798 mov r7, r3                                    |     r7 = r3;
    0x0003e79a sub sp, 8                                     |     
    0x0003e79c cmp r2, 0                                     |     
                                                             |     if (r2 != 0) {
    0x0003e79e beq 0x3e84e                                   |         
    0x0003e7a0 mov r0, r2                                    |         r0 = r2;
    0x0003e7a2 mov r6, r1                                    |         r6 = r1;
    0x0003e7a4 mov r4, r2                                    |         r4 = r2;
    0x0003e7a6 blx 0xfda0                                    |         r0 = g_hash_table_contains ();
    0x0003e7aa cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x0003e7ac beq 0x3e84e                                   |             goto label_1;
                                                             |         }
    0x0003e7ae cmp r6, 0                                     |         
                                                             |         if (r6 == 0) {
    0x0003e7b0 beq 0x3e88e                                   |             goto label_2;
                                                             |         }
    0x0003e7b2 ldr r1, [pc, 0x154]                           |         
    0x0003e7b4 mov r0, r4                                    |         r0 = r4;
    0x0003e7b6 ldr.w sb, [pc, 0x154]                         |         
    0x0003e7ba add r1, pc                                    |         r1 = 0x7d0c8;
    0x0003e7bc blx 0xefb8                                    |         fcn_0000efb8 ();
    0x0003e7c0 blx 0xe798                                    |         gst_query_new_custom ();
    0x0003e7c4 add sb, pc                                    |         sb = 0x7d0d6;
    0x0003e7c6 mov r8, r0                                    |         r8 = r0;
                                                             |         if (r0 != 0) {
    0x0003e7c8 cbz r0, 0x3e7cc                               |             
    0x0003e7ca mov sb, r0                                    |             sb = r0;
                                                             |         }
    0x0003e7cc ldr.w sl, [pc, 0x140]                         |         
    0x0003e7d0 mov r0, r4                                    |         r0 = r4;
    0x0003e7d2 ldr r1, [pc, 0x140]                           |         
    0x0003e7d4 add sl, pc                                    |         sl = 0x7d0e8;
    0x0003e7d6 add r1, pc                                    |         r1 = 0x7d0f0;
    0x0003e7d8 blx 0xf9f8                                    |         memcpy (r0, r1, r2);
    0x0003e7dc ldr.w r0, [sl, 4]                             |         r0 = *(0x7d0ec);
    0x0003e7e0 adds r0, 0x48                                 |         r0 += 0x48;
    0x0003e7e2 blx 0xf26c                                    |         socket (r0, r1, r2);
    0x0003e7e6 ldr.w r3, [sl, 4]                             |         r3 = *(0x7d0ec);
    0x0003e7ea mov r1, r6                                    |         r1 = r6;
    0x0003e7ec ldr r0, [r3, 0x50]                            |         r0 = *(0x7d13c);
    0x0003e7ee blx 0xefb8                                    |         r0 = fcn_0000efb8 ();
    0x0003e7f2 mov r5, r0                                    |         r5 = r0;
    0x0003e7f4 ldr.w r0, [sl, 4]                             |         r0 = *(0x7d0ec);
    0x0003e7f8 adds r0, 0x48                                 |         r0 += 0x48;
    0x0003e7fa blx 0xf548                                    |         gst_mini_object_unref ();
    0x0003e7fe cmp r5, 0                                     |         
                                                             |         if (r5 == 0) {
    0x0003e800 beq 0x3e8c8                                   |             goto label_3;
                                                             |         }
    0x0003e802 mov r1, r4                                    |         r1 = r4;
    0x0003e804 mov r0, r5                                    |         r0 = r5;
    0x0003e806 bl 0x3e06c                                    |         r0 = fcn_0003e06c (r0);
    0x0003e80a mov r6, r0                                    |         r6 = r0;
    0x0003e80c mov r4, r0                                    |         r4 = r0;
                                                             |         if (r0 != 0) {
    0x0003e80e cbz r0, 0x3e840                               |             
    0x0003e810 mov r2, r7                                    |             r2 = r7;
    0x0003e812 mov r1, r6                                    |             r1 = r6;
    0x0003e814 mov r0, r5                                    |             r0 = r5;
    0x0003e816 bl 0x3bd94                                    |             fcn_0003bd94 (r0, r1);
    0x0003e81a ldr r1, [pc, 0xfc]                            |             
    0x0003e81c mov r4, r0                                    |             r4 = r0;
    0x0003e81e mov r3, r7                                    |             r3 = r7;
    0x0003e820 mov r2, sb                                    |             r2 = sb;
    0x0003e822 movs r0, 0                                    |             r0 = 0;
    0x0003e824 and r4, r4, 1                                 |             r4 &= 1;
    0x0003e828 add r1, pc                                    |             r1 = 0x7d146;
    0x0003e82a bl 0x6593c                                    |             r0 = fcn_0006593c (r0, r1, r2);
    0x0003e82e cmp r0, 0                                     |             
    0x0003e830 it eq                                         |             
                                                             |             if (r0 != 0) {
    0x0003e832 moveq r4, 0                                   |                 r4 = 0;
                                                             |             }
                                                             |             if (r0 != 0) {
    0x0003e834 beq 0x3e83a                                   |                 
    0x0003e836 blx 0xff14                                    |                 cert_set_get_path ();
                                                             |             }
    0x0003e83a mov r0, r6                                    |             r0 = r6;
    0x0003e83c blx 0xf498                                    |             fcn_0000f498 ();
                                                             |         }
                                                             | label_0:
    0x0003e840 mov r0, r8                                    |         r0 = r8;
    0x0003e842 blx 0xf3e8                                    |         fcn_0000f3e8 ();
    0x0003e846 mov r0, r4                                    |         r0 = r4;
    0x0003e848 add sp, 8                                     |         
    0x0003e84a pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
                                                             |     }
                                                             | label_1:
    0x0003e84e ldr r1, [pc, 0xcc]                            |     
    0x0003e850 add r1, pc                                    |     r1 = 0x7d172;
    0x0003e852 ldr r3, [r1, 0xc]                             |     r3 = *(0x7d17e);
                                                             |     if (r3 == 0) {
    0x0003e854 cbnz r3, 0x3e866                              |         
    0x0003e856 ldr r2, [pc, 0xc8]                            |         
    0x0003e858 movs r3, 1                                    |         r3 = 1;
    0x0003e85a ldr r0, [pc, 0xc8]                            |         
    0x0003e85c adds r1, 0xc                                  |         r1 += 0xc;
    0x0003e85e add r2, pc                                    |         r2 = 0x7d184;
    0x0003e860 add r0, pc                                    |         r0 = 0x7d18a;
    0x0003e862 blx 0xdaa0                                    |         fcn_0000daa0 ();
                                                             |     }
    0x0003e866 ldr r1, [pc, 0xc0]                            |     
    0x0003e868 movs r2, 0                                    |     r2 = 0;
    0x0003e86a ldr r3, [pc, 0xc0]                            |     
    0x0003e86c mov r0, r7                                    |     r0 = r7;
    0x0003e86e mov r4, r2                                    |     r4 = r2;
    0x0003e870 add r1, pc                                    |     
    0x0003e872 ldr r1, [r1, 0xc]                             |     r1 = *(0x7d1aa);
    0x0003e874 add r3, pc                                    |     r3 = 0x7d1a6;
    0x0003e876 blx 0x10398                                   |     fcn_00010398 ();
    0x0003e87a ldr r2, [pc, 0xb4]                            |     
    0x0003e87c movs r1, 0x20                                 |     r1 = 0x20;
    0x0003e87e mov r0, r4                                    |     r0 = r4;
    0x0003e880 add r2, pc                                    |     r2 = 0x7d1b6;
    0x0003e882 blx 0xe318                                    |     gst_element_error_printf ()
                                                             |     do {
    0x0003e886 mov r0, r4                                    |         r0 = r4;
    0x0003e888 add sp, 8                                     |         
    0x0003e88a pop.w {r4, r5, r6, r7, r8, sb, sl, pc}        |         
                                                             | label_2:
    0x0003e88e ldr r1, [pc, 0xa4]                            |         
    0x0003e890 add r1, pc                                    |         r1 = 0x7d1ca;
    0x0003e892 ldr r3, [r1, 0xc]                             |         r3 = *(0x7d1d6);
                                                             |         if (r3 == 0) {
    0x0003e894 cbnz r3, 0x3e8a6                              |             
    0x0003e896 ldr r2, [pc, 0xa0]                            |             
    0x0003e898 movs r3, 1                                    |             r3 = 1;
    0x0003e89a ldr r0, [pc, 0xa0]                            |             
    0x0003e89c adds r1, 0xc                                  |             r1 += 0xc;
    0x0003e89e add r2, pc                                    |             r2 = 0x7d1dc;
    0x0003e8a0 add r0, pc                                    |             r0 = 0x7d1e2;
    0x0003e8a2 blx 0xdaa0                                    |             fcn_0000daa0 ();
                                                             |         }
    0x0003e8a6 ldr r1, [pc, 0x98]                            |         
    0x0003e8a8 movs r2, 0                                    |         r2 = 0;
    0x0003e8aa ldr r3, [pc, 0x98]                            |         
    0x0003e8ac mov r0, r7                                    |         r0 = r7;
    0x0003e8ae mov r4, r2                                    |         r4 = r2;
    0x0003e8b0 add r1, pc                                    |         
    0x0003e8b2 ldr r1, [r1, 0xc]                             |         r1 = *(0x7d202);
    0x0003e8b4 add r3, pc                                    |         r3 = 0x7d1fe;
    0x0003e8b6 blx 0x10398                                   |         fcn_00010398 ();
    0x0003e8ba ldr r2, [pc, 0x8c]                            |         
    0x0003e8bc movs r1, 0x20                                 |         r1 = 0x20;
    0x0003e8be mov r0, r4                                    |         r0 = r4;
    0x0003e8c0 add r2, pc                                    |         r2 = 0x7d20e;
    0x0003e8c2 blx 0xe318                                    |         gst_element_error_printf ()
    0x0003e8c6 b 0x3e886                                     |         
                                                             |     } while (1);
                                                             | label_3:
    0x0003e8c8 ldr.w r3, [sl, 0xc]                           |     r3 = *((sl + 0xc));
                                                             |     if (r3 == 0) {
    0x0003e8cc cbnz r3, 0x3e8e0                              |         
    0x0003e8ce ldr r2, [pc, 0x7c]                            |         
    0x0003e8d0 movs r3, 1                                    |         r3 = 1;
    0x0003e8d2 ldr r0, [pc, 0x7c]                            |         
    0x0003e8d4 add.w r1, sl, 0xc                             |         r1 = sl + 0xc;
    0x0003e8d8 add r2, pc                                    |         r2 = 0x7d22a;
    0x0003e8da add r0, pc                                    |         r0 = 0x7d230;
    0x0003e8dc blx 0xdaa0                                    |         fcn_0000daa0 ();
                                                             |     }
    0x0003e8e0 ldr r2, [pc, 0x70]                            |     
    0x0003e8e2 mov r0, r7                                    |     r0 = r7;
    0x0003e8e4 ldr r3, [pc, 0x70]                            |     
    0x0003e8e6 movs r4, 0                                    |     r4 = 0;
    0x0003e8e8 str r6, [sp]                                  |     *(sp) = r6;
    0x0003e8ea add r2, pc                                    |     r2 = 0x7d242;
    0x0003e8ec ldr r1, [r2, 0xc]                             |     r1 = *(0x7d24e);
    0x0003e8ee add r3, pc                                    |     r3 = 0x7d24a;
    0x0003e8f0 movs r2, 0                                    |     r2 = 0;
    0x0003e8f2 blx 0x10398                                   |     fcn_00010398 ();
    0x0003e8f6 ldr r2, [pc, 0x64]                            |     
    0x0003e8f8 mov r3, r6                                    |     r3 = r6;
    0x0003e8fa movs r1, 0x20                                 |     r1 = 0x20;
    0x0003e8fc movs r0, 0                                    |     r0 = 0;
    0x0003e8fe add r2, pc                                    |     r2 = 0x7d260;
    0x0003e900 blx 0xe318                                    |     gst_element_error_printf ()
    0x0003e904 b 0x3e840                                     |     goto label_0;
                                                             | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x3ea34 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0003ea34 ()                                          | void fcn_0003ea34 (uint32_t arg1, int16_t arg2, uint32_t arg3, int16_t arg4) {
                                                                     |     int16_t var_0h;
                                                                     |     int32_t var_0h_2;
                                                                     |     int16_t var_ch;
                                                                     |     int16_t var_10h;
                                                                     |     int16_t var_14h;
                                                                     |     int16_t var_18h;
                                                                     |     int16_t var_1ch;
                                                                     |     int16_t var_24h;
                                                                     |     int16_t var_28h;
                                                                     |     int16_t var_2ch;
                                                                     |     int16_t var_30h;
                                                                     |     int16_t var_34h;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
                                                                     |     r3 = arg4;
    0x0003ea34 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0003ea38 mov r6, r3                                            |     r6 = r3;
    0x0003ea3a ldr r3, [pc, 0x3c4]                                   |     
    0x0003ea3c sub sp, 0x3c                                          |     
    0x0003ea3e add r3, pc                                            |     r3 = 0x7d844;
    0x0003ea40 str r3, [sp, 0xc]                                     |     var_ch = r3;
    0x0003ea42 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0003ea44 beq.w 0x3ec72                                         |         goto label_6;
                                                                     |     }
    0x0003ea48 mov r4, r2                                            |     r4 = r2;
    0x0003ea4a cmp r2, 0                                             |     
                                                                     |     if (r2 == 0) {
    0x0003ea4c beq.w 0x3ec8a                                         |         goto label_7;
                                                                     |     }
    0x0003ea50 mov r0, r2                                            |     r0 = r2;
    0x0003ea52 mov r5, r1                                            |     r5 = r1;
    0x0003ea54 blx 0xfda0                                            |     r0 = g_hash_table_contains ();
    0x0003ea58 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0003ea5a beq.w 0x3ec8a                                         |         goto label_7;
                                                                     |     }
    0x0003ea5e cmp r5, 0                                             |     
                                                                     |     if (r5 == 0) {
    0x0003ea60 beq.w 0x3ecf8                                         |         goto label_8;
                                                                     |     }
    0x0003ea64 ldr r1, [pc, 0x39c]                                   |     
    0x0003ea66 mov r0, r4                                            |     r0 = r4;
    0x0003ea68 ldr.w fp, [pc, 0x39c]                                 |     
    0x0003ea6c add r1, pc                                            |     r1 = 0x7d874;
    0x0003ea6e blx 0xefb8                                            |     fcn_0000efb8 ();
    0x0003ea72 blx 0xe798                                            |     gst_query_new_custom ();
    0x0003ea76 add fp, pc                                            |     fp = 0x7d882;
    0x0003ea78 mov r7, r0                                            |     r7 = r0;
                                                                     |     if (r0 != 0) {
    0x0003ea7a cbz r0, 0x3ea7e                                       |         
    0x0003ea7c mov fp, r0                                            |         
                                                                     |     }
    0x0003ea7e ldr.w r8, [pc, 0x38c]                                 |     
    0x0003ea82 mov r0, r4                                            |     r0 = r4;
    0x0003ea84 ldr r1, [pc, 0x388]                                   |     
    0x0003ea86 add r8, pc                                            |     r8 = 0x7d898;
    0x0003ea88 add r1, pc                                            |     r1 = 0x7d89c;
    0x0003ea8a blx 0xf9f8                                            |     memcpy (r0, r1, r2);
    0x0003ea8c invalid                                               |     
    0x0003ea90 movs r4, r0                                           |     r4 = r0;
    0x0003ea92 adds r0, 0x48                                         |     r0 += 0x48;
    0x0003ea94 blx 0xf26c                                            |     socket (r0, r1, r2);
    0x0003ea98 ldr.w r3, [r8, 4]                                     |     r3 = *(0x7d89c);
    0x0003ea9c mov r1, r5                                            |     r1 = r5;
    0x0003ea9e ldr r0, [r3, 0x50]                                    |     r0 = *(0x7d8ec);
    0x0003eaa0 blx 0xefb8                                            |     r0 = fcn_0000efb8 ();
    0x0003eaa4 mov sb, r0                                            |     sb = r0;
    0x0003eaa6 ldr.w r0, [r8, 4]                                     |     r0 = *(0x7d89c);
    0x0003eaaa adds r0, 0x48                                         |     r0 += 0x48;
    0x0003eaac blx 0xf548                                            |     gst_mini_object_unref ();
    0x0003eab0 cmp.w sb, 0                                           |     
                                                                     |     if (sb == 0) {
    0x0003eab4 beq.w 0x3ed32                                         |         goto label_9;
                                                                     |     }
    0x0003eab8 ldr r1, [pc, 0x358]                                   |     
    0x0003eaba mov r0, r5                                            |     r0 = r5;
    0x0003eabc add r1, pc                                            |     r1 = 0x7d8d4;
    0x0003eabe blx 0xed48                                            |     r0 = fcn_0000ed48 ();
    0x0003eac2 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0003eac4 bne.w 0x3ecca                                         |         goto label_10;
                                                                     |     }
    0x0003eac8 mov r1, r4                                            |     r1 = r4;
    0x0003eaca mov r0, sb                                            |     r0 = sb;
    0x0003eacc bl 0x3e06c                                            |     r0 = fcn_0003e06c (r0);
    0x0003ead0 mov r8, r0                                            |     r8 = r0;
    0x0003ead2 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0003ead4 beq.w 0x3ec62                                         |         goto label_1;
                                                                     |     }
                                                                     | label_0:
    0x0003ead8 mov r1, r0                                            |     r1 = r0;
    0x0003eada mov r2, r6                                            |     r2 = r6;
    0x0003eadc mov r0, sb                                            |     r0 = sb;
    0x0003eade bl 0x3bd94                                            |     r0 = fcn_0003bd94 (r0, r1);
    0x0003eae2 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0003eae4 beq.w 0x3ec5c                                         |         goto label_11;
                                                                     |     }
    0x0003eae8 add r3, sp, 0x2c                                      |     r3 += var_2ch;
    0x0003eaea add r2, sp, 0x24                                      |     r2 += var_24h;
    0x0003eaec str r3, [sp]                                          |     *(sp) = r3;
    0x0003eaee mov r1, r8                                            |     r1 = r8;
    0x0003eaf0 add r3, sp, 0x28                                      |     r3 += var_28h;
    0x0003eaf2 mov r0, sb                                            |     r0 = sb;
    0x0003eaf4 bl 0x3df7c                                            |     r0 = fcn_0003df7c (r0, r1, r2, r3);
    0x0003eaf8 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0003eafa beq.w 0x3ec5c                                         |         goto label_11;
                                                                     |     }
    0x0003eafe ldr.w sl, [sp, 0x2c]                                  |     sl = var_2ch;
    0x0003eb02 mov r0, sb                                            |     r0 = sb;
    0x0003eb04 ldrd sb, r3, [sp, 0x24]                               |     __asm ("ldrd sb, r3, [var_24h]");
    0x0003eb08 mov r2, r3                                            |     r2 = r3;
    0x0003eb0a mov r1, sb                                            |     r1 = sb;
    0x0003eb0c str r3, [sp, 0x10]                                    |     var_10h = r3;
    0x0003eb0e mov r3, sl                                            |     r3 = sl;
    0x0003eb10 blx 0xf6f0                                            |     r0 = fcn_0000f6f0 ();
    0x0003eb14 mov r4, r0                                            |     r4 = r0;
    0x0003eb16 bl 0x3ab48                                            |     r0 = fcn_0003ab48 ();
    0x0003eb1a mov r1, r0                                            |     r1 = r0;
    0x0003eb1c mov r0, r4                                            |     r0 = r4;
    0x0003eb1e blx 0xe18c                                            |     r0 = cert_set_init ();
    0x0003eb22 mov r4, r0                                            |     r4 = r0;
    0x0003eb24 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0003eb26 beq.w 0x3ed6e                                         |         goto label_12;
                                                                     |     }
    0x0003eb2a ldr r1, [pc, 0x2ec]                                   |     
    0x0003eb2c mov r2, fp                                            |     r2 = fp;
    0x0003eb2e mov r3, r6                                            |     r3 = r6;
    0x0003eb30 movs r0, 0                                            |     r0 = 0;
    0x0003eb32 add r1, pc                                            |     r1 = 0x7d950;
    0x0003eb34 bl 0x6593c                                            |     r0 = fcn_0006593c (r0, r1, r2);
    0x0003eb38 mov r5, r0                                            |     r5 = r0;
    0x0003eb3a cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x0003eb3c beq 0x3ec28                                           |         goto label_13;
                                                                     |     }
    0x0003eb3e ldr r3, [r0, 4]                                       |     r3 = *((r0 + 4));
    0x0003eb40 cmp r3, 1                                             |     
                                                                     |     if (r3 >= 1) {
    0x0003eb42 bls 0x3ebd6                                           |         
    0x0003eb44 ldr r3, [r0]                                          |         r3 = *(r0);
    0x0003eb46 ldr r3, [r3]                                          |         r3 = *(r3);
    0x0003eb48 ldr r0, [r3]                                          |         r0 = *(r3);
    0x0003eb4a str r3, [sp, 0x14]                                    |         var_14h = r3;
    0x0003eb4c bl 0x48c0c                                            |         fcn_00048c0c (r0);
    0x0003eb50 str r0, [sp, 0x18]                                    |         var_18h = r0;
    0x0003eb52 blx 0xe5f4                                            |         g_int_hash ();
    0x0003eb56 ldr r1, [pc, 0x2c4]                                   |         
    0x0003eb58 mov fp, r0                                            |         
    0x0003eb5a add r1, pc                                            |         r1 = 0x7d97c;
    0x0003eb5c blx 0x1061c                                           |         r0 = fcn_0001061c ();
                                                                     |         if (r0 != 0) {
    0x0003eb60 cbz r0, 0x3eb7a                                       |             
    0x0003eb62 ldr r1, [pc, 0x2bc]                                   |             
    0x0003eb64 mov r0, fp                                            |             r0 = fp;
    0x0003eb66 add r1, pc                                            |             r1 = 0x7d98c;
    0x0003eb68 blx 0x1061c                                           |             r0 = fcn_0001061c ();
                                                                     |             if (r0 == 0) {
    0x0003eb6c cbz r0, 0x3eb7a                                       |                 goto label_14;
                                                                     |             }
    0x0003eb6e ldr r1, [pc, 0x2b4]                                   |             
    0x0003eb70 mov r0, fp                                            |             r0 = fp;
    0x0003eb72 add r1, pc                                            |             r1 = 0x7d99c;
    0x0003eb74 blx 0x1061c                                           |             fcn_0001061c ();
    0x0003eb76 vldr d27, [r2, -0x1a0]                                |             __asm ("vldr d27, aav.0x000000ff");
                                                                     |         }
                                                                     | label_14:
    0x0003eb7a ldr r3, [sp, 0x14]                                    |         r3 = var_14h;
    0x0003eb7c ldr r0, [r3]                                          |         r0 = *(r3);
    0x0003eb7e bl 0x48da0                                            |         fcn_00048da0 (r0);
    0x0003eb82 movs r1, 0                                            |         r1 = 0;
    0x0003eb84 str r0, [sp, 0x1c]                                    |         var_1ch = r0;
    0x0003eb86 blx 0xfbb8                                            |         r0 = fcn_0000fbb8 ();
    0x0003eb8a cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x0003eb8c beq.w 0x3edaa                                         |             goto label_15;
                                                                     |         }
    0x0003eb90 ldr.w fp, [pc, 0x294]                                 |         
    0x0003eb94 add r3, sp, 0x34                                      |         r3 += var_34h;
    0x0003eb96 add r2, sp, 0x30                                      |         r2 += var_30h;
    0x0003eb98 add fp, pc                                            |         fp = 0x7d9c4;
    0x0003eb9a mov r1, fp                                            |         r1 = fp;
    0x0003eb9c blx 0xd9c4                                            |         r0 = gst_structure_get_fraction ();
                                                                     |         if (r0 == 0) {
    0x0003eba0 cbz r0, 0x3ebd6                                       |             goto label_4;
                                                                     |         }
    0x0003eba2 ldr r3, [sp, 0x34]                                    |         r3 = var_34h;
    0x0003eba4 cmp r3, 0                                             |         
                                                                     |         if (r3 <= 0) {
    0x0003eba6 ble 0x3ebd6                                           |             goto label_4;
                                                                     |         }
    0x0003eba8 ldr r2, [sp, 0x30]                                    |         r2 = var_30h;
    0x0003ebaa cmp r2, 0                                             |         
                                                                     |         if (r2 <= 0) {
    0x0003ebac ble 0x3ebd6                                           |             goto label_4;
                                                                     |         }
    0x0003ebae cmp r3, r2                                            |         
                                                                     |         if (r3 > r2) {
    0x0003ebb0 bgt.w 0x3edb6                                         |             goto label_16;
                                                                     |         }
                                                                     | label_5:
    0x0003ebb4 ldr r3, [sp, 0x14]                                    |         r3 = var_14h;
    0x0003ebb6 ldr r0, [r3]                                          |         r0 = *(r3);
    0x0003ebb8 bl 0x48c84                                            |         fcn_00048c84 (r0);
    0x0003ebbc ldr r1, [pc, 0x26c]                                   |         
    0x0003ebbe mov fp, r0                                            |         
    0x0003ebc0 ldr r0, [pc, 0x26c]                                   |         
    0x0003ebc2 movs r2, 0                                            |         r2 = 0;
    0x0003ebc4 add r1, pc                                            |         r1 = 0x7d9f4;
    0x0003ebc6 add r0, pc                                            |         r0 = 0x7d9fa;
    0x0003ebc8 blx 0xf980                                            |         g_value_copy ();
    0x0003ebcc blx 0xf3e8                                            |         fcn_0000f3e8 ();
    0x0003ebd0 mov r0, fp                                            |         r0 = fp;
    0x0003ebd2 blx 0xf3e8                                            |         fcn_0000f3e8 ();
                                                                     |     }
                                                                     | label_4:
    0x0003ebd6 mov r2, r6                                            |     r2 = r6;
    0x0003ebd8 mov r1, r5                                            |     r1 = r5;
    0x0003ebda mov r0, r4                                            |     r0 = r4;
    0x0003ebdc bl 0x3bbfc                                            |     r0 = fcn_0003bbfc (r0, r1, r2);
                                                                     |     if (r0 == 0) {
    0x0003ebe0 cbz r0, 0x3ec22                                       |         goto label_17;
                                                                     |     }
    0x0003ebe2 mov fp, sl                                            |     
    0x0003ebe4 movs r6, 0                                            |     r6 = 0;
    0x0003ebe6 cmp.w sb, 0                                           |     
                                                                     |     if (sb == 0) {
    0x0003ebea beq 0x3ebfc                                           |         goto label_18;
                                                                     |     }
                                                                     |     do {
    0x0003ebec mov r0, fp                                            |         r0 = fp;
    0x0003ebee adds r6, 1                                            |         r6++;
    0x0003ebf0 blx 0x1035c                                           |         fcn_0001035c ();
    0x0003ebf4 cmp sb, r6                                            |         
    0x0003ebf6 add.w fp, fp, 0x18                                    |         
    0x0003ebfa bne 0x3ebec                                           |         
                                                                     |     } while (sb != r6);
                                                                     | label_18:
    0x0003ebfc ldr r0, [sp, 0x10]                                    |     r0 = var_10h;
    0x0003ebfe blx 0xf3e8                                            |     fcn_0000f3e8 ();
    0x0003ec00 invalid                                               |     
    0x0003ec04 blx 0xf3e8                                            |     fcn_0000f3e8 ();
    0x0003ec08 mov r0, r8                                            |     r0 = r8;
    0x0003ec0a blx 0xf498                                            |     fcn_0000f498 ();
    0x0003ec0e mov r0, r5                                            |     r0 = r5;
    0x0003ec10 blx 0xff14                                            |     cert_set_get_path ();
    0x0003ec14 mov r0, r7                                            |     r0 = r7;
    0x0003ec16 blx 0xf3e8                                            |     fcn_0000f3e8 ();
    0x0003ec1a mov r0, r4                                            |     r0 = r4;
    0x0003ec1c add sp, 0x3c                                          |     
    0x0003ec1e pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                     | label_17:
    0x0003ec22 mov r0, r5                                            |     r0 = r5;
    0x0003ec24 blx 0xff14                                            |     cert_set_get_path ();
                                                                     | label_13:
    0x0003ec28 mov r1, r6                                            |     r1 = r6;
    0x0003ec2a mov r0, r4                                            |     r0 = r4;
    0x0003ec2c bl 0x3d1e0                                            |     fcn_0003d1e0 (r0, r1);
    0x0003ec30 mov r0, r4                                            |     r0 = r4;
    0x0003ec32 blx 0xfba0                                            |     fcn_0000fba0 ();
                                                                     | label_3:
    0x0003ec36 mov r5, sl                                            |     r5 = sl;
    0x0003ec38 movs r4, 0                                            |     r4 = 0;
    0x0003ec3a cmp.w sb, 0                                           |     
                                                                     |     if (sb == 0) {
    0x0003ec3e beq 0x3ec50                                           |         goto label_19;
                                                                     |     }
                                                                     |     do {
    0x0003ec40 mov r0, r5                                            |         r0 = r5;
    0x0003ec42 adds r4, 1                                            |         r4++;
    0x0003ec44 blx 0x1035c                                           |         fcn_0001035c ();
    0x0003ec48 cmp sb, r4                                            |         
    0x0003ec4a add.w r5, r5, 0x18                                    |         r5 += 0x18;
    0x0003ec4e bne 0x3ec40                                           |         
                                                                     |     } while (sb != r4);
                                                                     | label_19:
    0x0003ec50 ldr r0, [sp, 0x10]                                    |     r0 = var_10h;
    0x0003ec52 blx 0xf3e8                                            |     fcn_0000f3e8 ();
    0x0003ec56 mov r0, sl                                            |     r0 = sl;
    0x0003ec58 blx 0xf3e8                                            |     fcn_0000f3e8 ();
                                                                     | label_11:
    0x0003ec5c mov r0, r8                                            |     r0 = r8;
    0x0003ec5e blx 0xf498                                            |     fcn_0000f498 ();
                                                                     | label_1:
    0x0003ec62 mov r0, r7                                            |     r0 = r7;
    0x0003ec64 movs r4, 0                                            |     r4 = 0;
    0x0003ec66 blx 0xf3e8                                            |     fcn_0000f3e8 ();
                                                                     | label_2:
    0x0003ec6a mov r0, r4                                            |     r0 = r4;
    0x0003ec6c add sp, 0x3c                                          |     
    0x0003ec6e pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                     | label_6:
    0x0003ec72 ldr r1, [pc, 0x1c0]                                   |     
    0x0003ec74 mov r4, r0                                            |     r4 = r0;
    0x0003ec76 ldr r2, [pc, 0x1c0]                                   |     
    0x0003ec78 add r1, pc                                            |     r1 = 0x7dab2;
    0x0003ec7a add r2, pc                                            |     r2 = 0x7dab8;
    0x0003ec7c adds r1, 0x2c                                         |     r1 += 0x2c;
    0x0003ec7e blx 0xdc4c                                            |     g_ascii_string_to_unsigned ();
    0x0003ec82 mov r0, r4                                            |     r0 = r4;
    0x0003ec84 add sp, 0x3c                                          |     
    0x0003ec86 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                     | label_7:
    0x0003ec8a ldr r1, [pc, 0x1b0]                                   |     
    0x0003ec8c add r1, pc                                            |     r1 = 0x7dace;
    0x0003ec8e ldr r3, [r1, 0xc]                                     |     r3 = *(0x7dada);
                                                                     |     if (r3 == 0) {
    0x0003ec90 cbnz r3, 0x3eca2                                      |         
    0x0003ec92 ldr r2, [pc, 0x1ac]                                   |         
    0x0003ec94 movs r3, 1                                            |         r3 = 1;
    0x0003ec96 ldr r0, [pc, 0x1ac]                                   |         
    0x0003ec98 adds r1, 0xc                                          |         r1 += 0xc;
    0x0003ec9a add r2, pc                                            |         r2 = 0x7dae0;
    0x0003ec9c add r0, pc                                            |         r0 = 0x7dae6;
    0x0003ec9e blx 0xdaa0                                            |         fcn_0000daa0 ();
                                                                     |     }
    0x0003eca2 ldr r1, [pc, 0x1a4]                                   |     
    0x0003eca4 movs r2, 0                                            |     r2 = 0;
    0x0003eca6 ldr r3, [pc, 0x1a4]                                   |     
    0x0003eca8 mov r0, r6                                            |     r0 = r6;
    0x0003ecaa mov r4, r2                                            |     r4 = r2;
    0x0003ecac add r1, pc                                            |     
    0x0003ecae add r3, pc                                            |     r3 = 0x7db00;
    0x0003ecb0 ldr r1, [r1, 0xc]                                     |     r1 = *(0x7db06);
    0x0003ecb2 blx 0x10398                                           |     fcn_00010398 ();
    0x0003ecb4 sbcs.w sl, r2, r6, asr 17                             |     __asm ("sbcs.w sl, r2, r6, asr 17");
    0x0003ecb8 mov r0, r4                                            |     r0 = r4;
    0x0003ecba movs r1, 0x20                                         |     r1 = 0x20;
    0x0003ecbc add r2, pc                                            |     r2 += pc;
    0x0003ecbe blx 0xe318                                            |     gst_element_error_printf ()
    0x0003ecc2 mov r0, r4                                            |     r0 = r4;
    0x0003ecc4 add sp, 0x3c                                          |     
    0x0003ecc6 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
    0x0003ecc8 ldrh r0, [r6, 0x3e]                                   |     r0 = *((r6 + 0x3e));
                                                                     | label_10:
    0x0003ecca ldr r0, [pc, 0x188]                                   |     
    0x0003eccc add r0, pc                                            |     r0 = 0x7db26;
    0x0003ecce blx 0xe798                                            |     r0 = gst_query_new_custom ();
    0x0003ecd2 mov r8, r0                                            |     r8 = r0;
    0x0003ecd4 ldr r0, [pc, 0x180]                                   |     
    0x0003ecd6 add r0, pc                                            |     r0 = 0x7db32;
    0x0003ecd8 blx 0xe798                                            |     gst_query_new_custom ();
    0x0003ecdc mov r1, r8                                            |     r1 = r8;
    0x0003ecde mov r2, r0                                            |     r2 = r0;
    0x0003ece0 mov r0, r4                                            |     r0 = r4;
    0x0003ece2 blx 0xe83c                                            |     fcn_0000e83c ();
    0x0003ece6 mov r1, r4                                            |     r1 = r4;
    0x0003ece8 mov r0, sb                                            |     r0 = sb;
    0x0003ecea bl 0x3e06c                                            |     r0 = fcn_0003e06c (r0);
    0x0003ecee mov r8, r0                                            |     r8 = r0;
    0x0003ecf0 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x0003ecf2 bne.w 0x3ead8                                         |         goto label_0;
                                                                     |     }
    0x0003ecf6 b 0x3ec62                                             |     goto label_1;
                                                                     | label_8:
    0x0003ecf8 ldr r1, [pc, 0x160]                                   |     
    0x0003ecfa add r1, pc                                            |     r1 = 0x7db5a;
    0x0003ecfc ldr r3, [r1, 0xc]                                     |     r3 = *(0x7db66);
                                                                     |     if (r3 == 0) {
    0x0003ecfe cbnz r3, 0x3ed10                                      |         
    0x0003ed00 ldr r2, [pc, 0x15c]                                   |         
    0x0003ed02 movs r3, 1                                            |         r3 = 1;
    0x0003ed04 ldr r0, [pc, 0x15c]                                   |         
    0x0003ed06 adds r1, 0xc                                          |         r1 += 0xc;
    0x0003ed08 add r2, pc                                            |         r2 = 0x7db6c;
    0x0003ed0a add r0, pc                                            |         r0 = 0x7db72;
    0x0003ed0c blx 0xdaa0                                            |         fcn_0000daa0 ();
                                                                     |     }
    0x0003ed10 ldr r1, [pc, 0x154]                                   |     
    0x0003ed12 movs r2, 0                                            |     r2 = 0;
    0x0003ed14 ldr r3, [pc, 0x154]                                   |     
    0x0003ed16 mov r0, r6                                            |     r0 = r6;
    0x0003ed18 mov r4, r2                                            |     r4 = r2;
    0x0003ed1a add r1, pc                                            |     
    0x0003ed1c ldr r1, [r1, 0xc]                                     |     r1 = *(0x7db92);
    0x0003ed1e add r3, pc                                            |     r3 = 0x7db8e;
    0x0003ed20 blx 0x10398                                           |     fcn_00010398 ();
    0x0003ed24 ldr r2, [pc, 0x148]                                   |     
    0x0003ed26 movs r1, 0x20                                         |     r1 = 0x20;
    0x0003ed28 mov r0, r4                                            |     r0 = r4;
    0x0003ed2a add r2, pc                                            |     r2 = 0x7db9e;
    0x0003ed2c blx 0xe318                                            |     gst_element_error_printf ()
    0x0003ed30 b 0x3ec6a                                             |     goto label_2;
                                                                     | label_9:
    0x0003ed32 ldr.w r3, [r8, 0xc]                                   |     r3 = *((r8 + 0xc));
                                                                     |     if (r3 == 0) {
    0x0003ed36 cbnz r3, 0x3ed4a                                      |         
    0x0003ed38 ldr r2, [pc, 0x138]                                   |         
    0x0003ed3a movs r3, 1                                            |         r3 = 1;
    0x0003ed3c ldr r0, [pc, 0x138]                                   |         
    0x0003ed3e add.w r1, r8, 0xc                                     |         r1 = r8 + 0xc;
    0x0003ed42 add r2, pc                                            |         r2 = 0x7dbba;
    0x0003ed44 add r0, pc                                            |         r0 = 0x7dbc0;
    0x0003ed46 blx 0xdaa0                                            |         fcn_0000daa0 ();
                                                                     |     }
    0x0003ed4a ldr r2, [pc, 0x130]                                   |     
    0x0003ed4c mov r0, r6                                            |     r0 = r6;
    0x0003ed4e ldr r3, [pc, 0x130]                                   |     
    0x0003ed50 str r5, [sp]                                          |     *(sp) = r5;
    0x0003ed52 add r2, pc                                            |     r2 = 0x7dbd4;
    0x0003ed54 ldr r1, [r2, 0xc]                                     |     r1 = *(0x7dbe0);
    0x0003ed56 add r3, pc                                            |     r3 = 0x7dbdc;
    0x0003ed58 movs r2, 0                                            |     r2 = 0;
    0x0003ed5a blx 0x10398                                           |     fcn_00010398 ();
    0x0003ed5e ldr r2, [pc, 0x124]                                   |     
    0x0003ed60 mov r3, r5                                            |     r3 = r5;
    0x0003ed62 movs r1, 0x20                                         |     r1 = 0x20;
    0x0003ed64 movs r0, 0                                            |     r0 = 0;
    0x0003ed66 add r2, pc                                            |     r2 = 0x7dbf0;
    0x0003ed68 blx 0xe318                                            |     gst_element_error_printf ()
    0x0003ed6c b 0x3ec62                                             |     goto label_1;
                                                                     | label_12:
    0x0003ed6e ldr r1, [pc, 0x118]                                   |     
    0x0003ed70 add r1, pc                                            |     r1 = 0x7dbfe;
    0x0003ed72 ldr r3, [r1, 0xc]                                     |     r3 = *(0x7dc0a);
                                                                     |     if (r3 == 0) {
    0x0003ed74 cbnz r3, 0x3ed86                                      |         
    0x0003ed76 ldr r2, [pc, 0x114]                                   |         
    0x0003ed78 adds r1, 0xc                                          |         r1 += 0xc;
    0x0003ed7a ldr r0, [pc, 0x114]                                   |         
    0x0003ed7c movs r3, 1                                            |         r3 = 1;
    0x0003ed7e add r2, pc                                            |         r2 = 0x7dc10;
    0x0003ed80 add r0, pc                                            |         r0 = 0x7dc16;
    0x0003ed82 blx 0xdaa0                                            |         fcn_0000daa0 ();
                                                                     |     }
    0x0003ed86 ldr r3, [pc, 0x10c]                                   |     
    0x0003ed88 mov r0, r6                                            |     r0 = r6;
    0x0003ed8a str r5, [sp]                                          |     *(sp) = r5;
    0x0003ed8c movs r2, 0                                            |     r2 = 0;
    0x0003ed8e add r3, pc                                            |     r3 = 0x7dc28;
    0x0003ed90 ldr r1, [r3, 0xc]                                     |     r1 = *(0x7dc34);
    0x0003ed92 ldr r3, [pc, 0x104]                                   |     
    0x0003ed94 add r3, pc                                            |     r3 = 0x7dc32;
    0x0003ed96 blx 0x10398                                           |     fcn_00010398 ();
    0x0003ed9a ldr r2, [pc, 0x100]                                   |     
    0x0003ed9c mov r3, r5                                            |     r3 = r5;
    0x0003ed9e movs r1, 0x20                                         |     r1 = 0x20;
    0x0003eda0 movs r0, 0                                            |     r0 = 0;
    0x0003eda2 add r2, pc                                            |     r2 = 0x7dc44;
    0x0003eda4 blx 0xe318                                            |     gst_element_error_printf ()
    0x0003eda8 b 0x3ec36                                             |     goto label_3;
                                                                     | label_15:
    0x0003edaa ldr r2, [pc, 0xf4]                                    |     
    0x0003edac movs r1, 0x20                                         |     r1 = 0x20;
    0x0003edae add r2, pc                                            |     r2 = 0x7dc54;
    0x0003edb0 blx 0xe318                                            |     gst_element_error_printf ()
    0x0003edb4 b 0x3ebd6                                             |     goto label_4;
                                                                     | label_16:
    0x0003edb6 ldr r0, [sp, 0x1c]                                    |     r0 = var_1ch;
    0x0003edb8 blx 0xe478                                            |     fcn_0000e478 ();
    0x0003edbc movs r1, 0                                            |     r1 = 0;
    0x0003edbe str r0, [sp, 0x1c]                                    |     var_1ch = r0;
    0x0003edc0 blx 0xfbb8                                            |     fcn_0000fbb8 ();
    0x0003edc4 ldr r2, [sp, 0xc]                                     |     r2 = var_ch;
    0x0003edc6 mov r1, fp                                            |     r1 = fp;
    0x0003edc8 ldr r3, [pc, 0xd8]                                    |     r3 = *(0x3eea4);
    0x0003edca mov.w fp, 0                                           |     
    0x0003edce ldr r3, [r2, r3]                                      |     r3 = *((r2 + r3));
    0x0003edd0 ldr r2, [r3]                                          |     r2 = *(0x3eea4);
    0x0003edd2 movs r3, 1                                            |     r3 = 1;
    0x0003edd4 strd r3, fp, [sp]                                     |     __asm ("strd r3, fp, [sp]");
    0x0003edd8 blx 0xd9f8                                            |     fcn_0000d9f8 ();
    0x0003edda vmla.f32 s18, s28, s6                                 |     __asm ("vmla.f32 s18, s28, s6");
    0x0003edde ldr r3, [pc, 0xc8]                                    |     r3 = *(0x3eeaa);
    0x0003ede0 ldr r1, [pc, 0xc8]                                    |     
    0x0003ede2 ldr r0, [sp, 0x18]                                    |     r0 = var_18h;
    0x0003ede4 ldr r3, [r2, r3]                                      |     r3 = *(0x3eea4);
    0x0003ede6 str.w fp, [sp]                                        |     __asm ("str.w fp, [sp]");
    0x0003edea add r1, pc                                            |     r1 = 0x7dc9a;
    0x0003edec ldr.w fp, [sp, 0x1c]                                  |     fp = var_1ch;
    0x0003edf0 ldr r2, [r3]                                          |     r2 = *(0x3eea4);
    0x0003edf2 mov r3, fp                                            |     r3 = fp;
    0x0003edf4 blx 0xd9f8                                            |     fcn_0000d9f8 ();
    0x0003edf8 mov r0, fp                                            |     r0 = fp;
    0x0003edfa blx 0xf5ec                                            |     fcn_0000f5ec ();
    0x0003edfe b 0x3ebb4                                             |     goto label_5;
                                                                     | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x3f174 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0003f174 ()                  | void fcn_0003f174 (int16_t arg1) {
                                             |     int16_t var_ch;
                                             |     r0 = arg1;
    0x0003f174 push {r4, r5, lr}             |     
    0x0003f176 mov r4, r0                    |     r4 = r0;
    0x0003f178 ldr r5, [pc, 0xe4]            |     
    0x0003f17a sub sp, 0x14                  |     
    0x0003f17c add r5, pc                    |     r5 = 0x7e3e0;
    0x0003f17e add.w r0, r5, 0x18            |     r0 = r5 + 0x18;
    0x0003f182 blx 0x1008c                   |     fcn_0001008c ();
    0x0003f186 dmb ish                       |     __asm ("dmb ish");
    0x0003f18a add.w r3, r4, 0x10            |     r3 = r4 + 0x10;
                                             |     do {
    0x0003f18e ldrex r2, [r3]                |         __asm ("ldrex r2, [r3]");
    0x0003f192 subs r1, r2, 1                |         r1 = r2 - 1;
    0x0003f194 strex r0, r1, [r3]            |         __asm ("strex r0, r1, [r3]");
    0x0003f198 cmp r0, 0                     |         
    0x0003f19a bne 0x3f18e                   |         
                                             |     } while (r0 != 0);
    0x0003f19c cmp r2, 1                     |     
    0x0003f19e dmb ish                       |     __asm ("dmb ish");
    0x0003f1a0 ldrh r3, [r3, 0x3a]           |     r3 = *((r3 + 0x3a));
    0x0003f1a2 beq 0x3f1b4                   |     
                                             |     while (1) {
    0x0003f1a4 ldr r0, [pc, 0xbc]            |         
    0x0003f1a6 add r0, pc                    |         r0 = 0x7e40e;
    0x0003f1a8 adds r0, 0x18                 |         r0 += 0x18;
    0x0003f1aa add sp, 0x14                  |         
    0x0003f1ac pop.w {r4, r5, lr}            |         
    0x0003f1b0 b.w 0x101b4                   |         void (*0x101b4)() ();
    0x0003f1b4 ldr r0, [r5, 0x24]            |         r0 = *((r5 + 0x24));
    0x0003f1b6 ldr r1, [r4, 4]               |         r1 = *((r4 + 4));
    0x0003f1b8 blx 0xf9f8                    |         memcpy (r0, r1, r2);
    0x0003f1bc ldr r5, [r4]                  |         r5 = *(r4);
    0x0003f1be cmp r5, 0                     |         
                                             |         if (r5 != 0) {
    0x0003f1c0 beq 0x3f226                   |             
    0x0003f1c2 blx 0xe088                    |             fcn_0000e088 ();
    0x0003f1c6 ldr r3, [r5]                  |             r3 = *(r5);
    0x0003f1c8 mov r1, r0                    |             r1 = r0;
                                             |             if (r3 != 0) {
    0x0003f1ca cbz r3, 0x3f1d2               |                 
    0x0003f1cc ldr r3, [r3]                  |                 r3 = *(r3);
    0x0003f1ce cmp r3, r0                    |                 
                                             |                 if (r3 == r0) {
    0x0003f1d0 beq 0x3f1da                   |                     goto label_1;
                                             |                 }
                                             |             }
    0x0003f1d2 mov r0, r5                    |             r0 = r5;
    0x0003f1d4 blx 0xf79c                    |             r0 = fcn_0000f79c ();
                                             |             if (r0 != 0) {
    0x0003f1d8 cbz r0, 0x3f1ee               |                 
                                             | label_1:
    0x0003f1da ldr r0, [r4]                  |                 r0 = *(r4);
    0x0003f1dc movs r1, 1                    |                 r1 = 1;
    0x0003f1de blx 0xe0ac                    |                 r0 = fcn_0000e0ac ();
                                             |                 if (r0 != 0) {
    0x0003f1e2 cbnz r0, 0x3f23c              |                     goto label_2;
                                             |                 }
    0x0003f1e4 ldr r2, [pc, 0x80]            |                 
    0x0003f1e6 movs r1, 0x20                 |                 r1 = 0x20;
    0x0003f1e8 add r2, pc                    |                 r2 = 0x7e454;
    0x0003f1ea blx 0xe318                    |                 gst_element_error_printf ()
                                             |             }
                                             | label_0:
    0x0003f1ee ldr r0, [r4]                  |             r0 = *(r4);
    0x0003f1f0 blx 0xdff8                    |             fcn_0000dff8 ();
    0x0003f1f4 ldr r0, [r4, 4]               |             r0 = *((r4 + 4));
    0x0003f1f6 bl 0x48c0c                    |             r0 = fcn_00048c0c (r0);
    0x0003f1fa blx 0xe5f4                    |             g_int_hash ();
    0x0003f1fe ldr r3, [pc, 0x6c]            |             
    0x0003f200 mov r1, r0                    |             r1 = r0;
    0x0003f202 add r3, pc                    |             r3 = 0x7e474;
    0x0003f204 ldr r0, [r3, 0x28]            |             r0 = *(0x7e49c);
    0x0003f206 blx 0xefb8                    |             r0 = fcn_0000efb8 ();
    0x0003f20a ldr r3, [r0]                  |             r3 = *(0x7e49c);
                                             |             if (r3 == 0) {
    0x0003f20c cbnz r3, 0x3f21e              |                 
    0x0003f20e ldr r3, [r0, 8]               |                 r3 = *((r0 + 8));
    0x0003f210 ldr r0, [r4, 4]               |                 r0 = *((r4 + 4));
                                             |                 if (r3 == 0) {
    0x0003f212 cbz r3, 0x3f228               |                     goto label_3;
                                             |                 }
    0x0003f214 mov r1, r0                    |                 r1 = r0;
    0x0003f216 ldr r0, [r4, 8]               |                 r0 = *((r4 + 8));
    0x0003f218 blx r3                        |                 uint32_t (*r3)(uint32_t, uint32_t) (r0, r1);
    0x0003f21a ldr r0, [r4, 4]               |                 r0 = *((r4 + 4));
    0x0003f21c b 0x3f228                     |                 goto label_3;
                                             |             }
    0x0003f21e ldr r3, [r0, 8]               |             r3 = *((r0 + 8));
                                             |             if (r3 == 0) {
    0x0003f220 cbz r3, 0x3f226               |                 goto label_4;
                                             |             }
    0x0003f222 ldr r0, [r4, 0xc]             |             r0 = *((r4 + 0xc));
    0x0003f224 blx r3                        |             uint32_t (*r3)(uint32_t) (r0);
                                             |         }
                                             | label_4:
    0x0003f226 ldr r0, [r4, 4]               |         r0 = *((r4 + 4));
                                             | label_3:
    0x0003f228 bl 0x48a0c                    |         fcn_00048a0c (r0);
    0x0003f22c add.w r0, r4, 0x14            |         r0 = r4 + 0x14;
    0x0003f22e movs r4, r2                   |         r4 = r2;
    0x0003f230 blx 0xdc94                    |         gst_element_link ();
    0x0003f234 mov r0, r4                    |         r0 = r4;
    0x0003f236 blx 0xf3e8                    |         fcn_0000f3e8 ();
    0x0003f23a b 0x3f1a4                     |         
                                             |     }
                                             | label_2:
    0x0003f23c vmov.i8 d16, 0xff             |     __asm ("vmov.i8 d16, 0xff");
    0x0003f240 movs r2, 0                    |     r2 = 0;
    0x0003f242 ldr r0, [r4]                  |     r0 = *(r4);
    0x0003f244 add r1, sp, 0xc               |     r1 += var_ch;
    0x0003f246 vstr d16, [sp]                |     __asm ("vstr d16, [sp]");
    0x0003f24a blx 0xe058                    |     r0 = fcn_0000e058 ();
    0x0003f24e cmp r0, 1                     |     
                                             |     if (r0 == 1) {
    0x0003f250 beq 0x3f1ee                   |         goto label_0;
                                             |     }
    0x0003f252 ldr r2, [pc, 0x1c]            |     
    0x0003f254 movs r1, 0x20                 |     r1 = 0x20;
    0x0003f256 movs r0, 0                    |     r0 = 0;
    0x0003f258 add r2, pc                    |     r2 = 0x7e4ce;
    0x0003f25a blx 0xe318                    |     gst_element_error_printf ()
    0x0003f25e b 0x3f1ee                     |     goto label_0;
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x41bf4 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00041bf4 ()              | void fcn_00041bf4 (int16_t arg1) {
                                         |     int16_t var_4h;
                                         |     r0 = arg1;
    0x00041bf4 push {r4, r5, lr}         |     
    0x00041bf6 sub sp, 0xc               |     
    0x00041bf8 add r5, sp, 4             |     r5 += var_4h;
    0x00041bfa movs r1, 0                |     r1 = 0;
    0x00041bfc mov r2, r5                |     r2 = r5;
    0x00041bfe movs r4, 1                |     r4 = 1;
    0x00041c00 str r1, [sp, 4]           |     var_4h = r1;
    0x00041c02 bl 0x3bbfc                |     r0 = fcn_0003bbfc (r0, r1, r2);
                                         |     if (r0 != 0) {
    0x00041c06 cbz r0, 0x41c0e           |         
    0x00041c08 mov r0, r4                |         r0 = r4;
    0x00041c0a add sp, 0xc               |         
    0x00041c0c pop {r4, r5, pc}          |         
                                         |     }
    0x00041c0e ldr r3, [sp, 4]           |     r3 = var_4h;
    0x00041c10 movs r1, 0x20             |     r1 = 0x20;
    0x00041c12 ldr r2, [pc, 0x18]        |     
    0x00041c14 mov r4, r0                |     r4 = r0;
    0x00041c16 ldr r3, [r3, 8]           |     r3 = *((r3 + 8));
    0x00041c18 add r2, pc                |     r2 = 0x8384a;
    0x00041c1a blx 0xe318                |     gst_element_error_printf ()
    0x00041c1e mov r0, r5                |     r0 = r5;
    0x00041c20 blx 0xf95c                |     gst_mini_object_replace ();
    0x00041c24 mov r0, r4                |     r0 = r4;
    0x00041c26 add sp, 0xc               |     
    0x00041c28 pop {r4, r5, pc}          |     
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x41c30 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00041c30 ()                  | void fcn_00041c30 (int16_t arg1) {
                                             |     int16_t var_4h;
                                             |     r0 = arg1;
    0x00041c30 bmi 0x7948a8                  |     
    0x00041c34 ldr r1, [pc, 0x74]            |     r1 = *(0x41cac);
    0x00041c36 push {r4, r5, r6, lr}         |     
    0x00041c38 add r3, pc                    |     r3 += pc;
    0x00041c3a sub sp, 8                     |     
    0x00041c3c movs r4, 0                    |     r4 = 0;
    0x00041c3e mov r5, r0                    |     r5 = r0;
    0x00041c40 add r6, sp, 4                 |     r6 += var_4h;
    0x00041c42 str r4, [sp, 4]               |     var_4h = r4;
    0x00041c44 ldr r1, [r3, r1]              |     r1 = *((r3 + r1));
    0x00041c46 ldr r0, [r3, r2]              |     r0 = *((r3 + r2));
    0x00041c48 blx 0x10628                   |     fcn_00010628 ();
    0x00041c4c ldr r2, [pc, 0x60]            |     
    0x00041c4e mov r4, r0                    |     r4 = r0;
    0x00041c50 ldr r1, [pc, 0x60]            |     
    0x00041c52 add r2, pc                    |     r2 = 0x83906;
    0x00041c54 add r1, pc                    |     r1 = 0x8390c;
    0x00041c56 blx 0xe83c                    |     fcn_0000e83c ();
    0x00041c5a ldr r2, [pc, 0x5c]            |     
    0x00041c5c mov r0, r4                    |     r0 = r4;
    0x00041c5e ldr r1, [pc, 0x5c]            |     
    0x00041c60 add r2, pc                    |     r2 = 0x8391e;
    0x00041c62 add r1, pc                    |     r1 = 0x83924;
    0x00041c64 blx 0xe83c                    |     fcn_0000e83c ();
    0x00041c68 mov r2, r6                    |     r2 = r6;
    0x00041c6a mov r1, r4                    |     r1 = r4;
    0x00041c6c mov r0, r5                    |     r0 = r5;
    0x00041c6e bl 0x3d76c                    |     r0 = fcn_0003d76c (r0, r1, r2);
                                             |     if (r0 != 0) {
    0x00041c72 cbz r0, 0x41c82               |         
    0x00041c74 mov r0, r4                    |         r0 = r4;
    0x00041c76 movs r5, 1                    |         r5 = 1;
    0x00041c78 blx 0xf498                    |         fcn_0000f498 ();
    0x00041c7c mov r0, r5                    |         r0 = r5;
    0x00041c7e add sp, 8                     |         
    0x00041c80 pop {r4, r5, r6, pc}          |         
                                             |     }
    0x00041c82 ldr r3, [sp, 4]               |     r3 = var_4h;
    0x00041c84 movs r1, 0x20                 |     r1 = 0x20;
    0x00041c86 ldr r2, [pc, 0x38]            |     
    0x00041c88 mov r5, r0                    |     r5 = r0;
    0x00041c8a ldr r3, [r3, 8]               |     r3 = *((r3 + 8));
    0x00041c8c add r2, pc                    |     r2 = 0x83952;
    0x00041c8e blx 0xe318                    |     gst_element_error_printf ()
    0x00041c92 mov r0, r6                    |     r0 = r6;
    0x00041c94 blx 0xf95c                    |     gst_mini_object_replace ();
    0x00041c98 mov r0, r4                    |     r0 = r4;
    0x00041c9a blx 0xf498                    |     fcn_0000f498 ();
    0x00041c9e mov r0, r5                    |     r0 = r5;
    0x00041ca0 add sp, 8                     |     
    0x00041ca2 pop {r4, r5, r6, pc}          |     
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x41cc4 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00041cc4 ()              | void fcn_00041cc4 (int16_t arg1) {
                                         |     int16_t var_4h;
                                         |     r0 = arg1;
    0x00041cc4 movwhs fp, 0x510          |     __asm ("movwhs fp, aav.0x000000ff");
    0x00041cc8 sub sp, 8                 |     
    0x00041cca str r3, [sp, 4]           |     var_4h = r3;
                                         |     if (r0 == 0) {
    0x00041ccc cbz r0, 0x41ce2           |         goto label_0;
                                         |     }
    0x00041cce add r1, sp, 4             |     r1 += var_4h;
    0x00041cd0 mov r4, r0                |     r4 = r0;
    0x00041cd2 bl 0x3d1e0                |     r0 = fcn_0003d1e0 (r0, r1);
    0x00041cd6 cbz r0, 0x41cf2           |     
                                         |     while (1) {
    0x00041cd8 mov r0, r4                |         r0 = r4;
    0x00041cda blx 0xfba0                |         fcn_0000fba0 ();
    0x00041cde add sp, 8                 |         
    0x00041ce0 pop {r4, pc}              |         
                                         | label_0:
    0x00041ce2 ldr r2, [pc, 0x24]        |         
    0x00041ce4 ldr r1, [pc, 0x24]        |         
    0x00041ce6 add r2, pc                |         r2 = 0x839f4;
    0x00041ce8 add r1, pc                |         r1 = 0x839f8;
    0x00041cea blx 0xdc4c                |         g_ascii_string_to_unsigned ();
    0x00041cee add sp, 8                 |         
    0x00041cf0 pop {r4, pc}              |         
    0x00041cf2 ldr r3, [sp, 4]           |         r3 = var_4h;
    0x00041cf4 movs r1, 0x20             |         r1 = 0x20;
    0x00041cf6 ldr r2, [pc, 0x18]        |         
    0x00041cf8 ldr r3, [r3, 8]           |         r3 = *((r3 + 8));
    0x00041cfa add r2, pc                |         r2 = 0x83a10;
    0x00041cfc blx 0xe318                |         gst_element_error_printf ()
    0x00041d00 ldr r0, [sp, 4]           |         r0 = var_4h;
    0x00041d02 blx 0xdec0                |         fcn_0000dec0 ();
    0x00041d06 b 0x41cd8                 |         
                                         |     }
                                         | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x42f54 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.00042f54 ()                          | void fcn_00042f54 (int16_t arg_30h, int16_t arg_34h, int16_t arg_38h, int16_t arg_3ch, int16_t arg_40h, int16_t arg_44h, 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;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
                                                     |     r2 = arg3;
                                                     |     r3 = arg4;
    0x00042f54 push.w {r4, r5, r6, r7, r8, lr}       |     
    0x00042f58 sub sp, 0x18                          |     
    0x00042f5a ldr r4, [sp, 0x30]                    |     r4 = *(arg_30h);
    0x00042f5c mov r5, r1                            |     r5 = r1;
    0x00042f5e mov r1, r2                            |     r1 = r2;
    0x00042f60 mov r2, r3                            |     r2 = r3;
    0x00042f62 mov r7, r0                            |     r7 = r0;
    0x00042f64 mov r0, r5                            |     r0 = r5;
    0x00042f66 mov r3, r4                            |     r3 = r4;
    0x00042f68 str r4, [sp]                          |     *(sp) = r4;
    0x00042f6a ldr r4, [sp, 0x34]                    |     r4 = *(arg_34h);
    0x00042f6c ldr r5, [sp, 0x40]                    |     r5 = *(arg_40h);
    0x00042f6e str r4, [sp, 4]                       |     var_4h = r4;
    0x00042f70 ldr r4, [sp, 0x38]                    |     r4 = *(arg_38h);
    0x00042f72 str r4, [sp, 8]                       |     var_8h = r4;
    0x00042f74 ldr r4, [sp, 0x3c]                    |     r4 = *(arg_3ch);
    0x00042f76 str r4, [sp, 0xc]                     |     var_ch = r4;
    0x00042f78 movs r4, 0                            |     r4 = 0;
    0x00042f7a str r4, [sp, 0x10]                    |     var_10h = r4;
    0x00042f7c bl 0x45078                            |     r0 = fcn_00045078 (r0, r1, r2, r3, r4, r5, r6);
    0x00042f80 mov r4, r0                            |     r4 = r0;
    0x00042f82 cmp r0, 0                             |     
                                                     |     if (r0 == 0) {
    0x00042f84 beq 0x43012                           |         goto label_1;
                                                     |     }
                                                     |     if (r5 != 0) {
    0x00042f86 cbz r5, 0x42f9c                       |         
    0x00042f88 bl 0x62b2c                            |         r0 = fcn_00062b2c ();
    0x00042f8c mov r1, r0                            |         r1 = r0;
    0x00042f8e mov r0, r4                            |         r0 = r4;
    0x00042f90 blx 0xe18c                            |         cert_set_init ();
    0x00042f94 ldr r2, [sp, 0x44]                    |         r2 = *(arg_44h);
    0x00042f96 mov r1, r5                            |         r1 = r5;
    0x00042f98 bl 0x632dc                            |         fcn_000632dc (r0, r1, r2);
                                                     |     }
    0x00042f9c ldr r6, [pc, 0x80]                    |     
    0x00042f9e add r6, pc                            |     r6 = 0x85fc2;
    0x00042fa0 ldr r3, [r6, 0x10]                    |     r3 = *(0x85fd2);
                                                     |     if (r3 == 0) {
    0x00042fa2 cbz r3, 0x42fb8                       |         goto label_0;
                                                     |     }
    0x00042fa4 add.w r8, sp, 0x10                    |     r8 += var_10h;
    0x00042fa8 mov r0, r4                            |     r0 = r4;
    0x00042faa mov r1, r8                            |     r1 = r8;
    0x00042fac bl 0x4546c                            |     r0 = fcn_0004546c (r0);
    0x00042fb0 mov r5, r0                            |     r5 = r0;
                                                     |     if (r0 == 0) {
    0x00042fb2 cbz r0, 0x43002                       |         goto label_2;
                                                     |     }
    0x00042fb4 ldr r3, [r7, 0x14]                    |     r3 = *((r7 + 0x14));
    0x00042fb6 cbnz r3, 0x42fc0                      |     
                                                     |     while (r0 == 0) {
                                                     | label_0:
    0x00042fb8 mov r0, r4                            |         r0 = r4;
    0x00042fba add sp, 0x18                          |         
    0x00042fbc pop.w {r4, r5, r6, r7, r8, pc}        |         
    0x00042fc0 movs r7, 0                            |         r7 = 0;
    0x00042fc2 mov r0, r4                            |         r0 = r4;
    0x00042fc4 str r7, [sp, 0x14]                    |         var_14h = r7;
    0x00042fc6 bl 0x456a0                            |         r0 = fcn_000456a0 (r0);
    0x00042fca mov r1, r0                            |         r1 = r0;
    0x00042fcc ldr r0, [pc, 0x54]                    |         
    0x00042fce add r0, pc                            |         r0 = 0x85ff6;
    0x00042fd0 blx 0xe678                            |         gst_rtsp_server_set_service ();
    0x00042fd2 adcs.w sb, r2, r6, ror 24             |         __asm ("adcs.w sb, r2, r6, ror 24");
    0x00042fd6 mov r5, r0                            |         r5 = r0;
    0x00042fd8 bl 0x19f28                            |         fcn_00019f28 ();
    0x00042fdc ldr r2, [pc, 0x48]                    |         
    0x00042fde mov r1, r7                            |         r1 = r7;
    0x00042fe0 ldr r3, [r0, 4]                       |         r3 = *(0x85ffa);
    0x00042fe2 mov r0, r6                            |         r0 = r6;
    0x00042fe4 str r5, [sp, 4]                       |         var_4h = r5;
    0x00042fe6 add r5, sp, 0x14                      |         r5 += var_14h;
    0x00042fe8 add r2, pc                            |         r2 = 0x86014;
    0x00042fea str r5, [sp, 8]                       |         var_8h = r5;
    0x00042fec str r2, [sp]                          |         *(sp) = r2;
    0x00042fee ldr r2, [pc, 0x3c]                    |         
    0x00042ff0 add r2, pc                            |         r2 = 0x86022;
    0x00042ff2 blx 0xf254                            |         g_dbus_interface_skeleton_get_object_path ();
    0x00042ff6 ldr r0, [sp, 0x14]                    |         r0 = var_14h;
    0x00042ff8 cmp r0, 0                             |         
    0x00042ffa beq 0x42fb8                           |         
                                                     |     }
    0x00042ffc blx 0xdec0                            |     fcn_0000dec0 ();
    0x00043000 b 0x42fb8                             |     goto label_0;
                                                     | label_2:
    0x00043002 mov r0, r8                            |     r0 = r8;
    0x00043004 blx 0xf95c                            |     gst_mini_object_replace ();
    0x00043008 mov r0, r4                            |     r0 = r4;
    0x0004300a mov r4, r5                            |     r4 = r5;
    0x0004300c blx 0xfba0                            |     fcn_0000fba0 ();
    0x00043010 b 0x42fb8                             |     goto label_0;
                                                     | label_1:
    0x00043012 ldr r2, [pc, 0x1c]                    |     
    0x00043014 movs r1, 0x20                         |     r1 = 0x20;
    0x00043016 add r2, pc                            |     r2 = 0x8604c;
    0x00043018 blx 0xe318                            |     gst_element_error_printf ()
    0x0004301c b 0x42fb8                             |     goto label_0;
                                                     | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x432ec */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.000432ec ()              | void fcn_000432ec (int16_t arg1, int16_t arg2) {
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x000432ec push {r3, r4, r5, lr}     |     
    0x000432ee mov r4, r0                |     r4 = r0;
    0x000432f0 mov r5, r1                |     r5 = r1;
    0x000432f2 mov r0, r1                |     r0 = r1;
    0x000432f4 blx 0xfbac                |     fcn_0000fbac ();
    0x000432f8 mov r1, r5                |     r1 = r5;
    0x000432fa mov r2, r0                |     r2 = r0;
    0x000432fc mov r0, r4                |     r0 = r4;
    0x000432fe bl 0x65e54                |     r0 = fcn_00065e54 (r0, r1, r2);
    0x00043302 mov r3, r0                |     r3 = r0;
    0x00043304 mov r0, r4                |     r0 = r4;
    0x00043306 mov r4, r3                |     r4 = r3;
    0x00043308 blx 0xea08                |     r0 = gst_rtsp_session_media_get_media ();
    0x0004330c cmp r0, 0                 |     
                                         |     if (r0 >= 0) {
    0x0004330e blt 0x4331a               |         
    0x00043310 cmp r4, 0                 |         
    0x00043312 ite le                    |         
                                         |         if (r4 > 0) {
    0x00043314 movle r0, 0               |             r0 = 0;
                                         |         }
                                         |         if (r4 <= 0) {
    0x00043316 movgt r0, 1               |             r0 = 1;
                                         |         }
    0x00043318 pop {r3, r4, r5, pc}      |         
                                         |     }
    0x0004331a ldr r2, [pc, 0x10]        |     
    0x0004331c movs r1, 0x20             |     r1 = 0x20;
    0x0004331e movs r0, 0                |     r0 = 0;
    0x00043320 add r2, pc                |     r2 = 0x86652;
    0x00043322 blx 0xe318                |     gst_element_error_printf ()
    0x00043326 movs r0, 0                |     r0 = 0;
    0x00043328 pop {r3, r4, r5, pc}      |     
                                         | }


r2dec has crashed (info: /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x43458).
Please report the bug at https://github.com/radareorg/r2dec-js/issues
Use the option '--issue' or the command 'pddi' to generate 
the needed data for the issue.
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x45f2c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00045f2c ()                                      | void fcn_00045f2c (int16_t arg_70h, int16_t arg1, int16_t arg2, uint32_t arg3, uint32_t arg4) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_2ch;
                                                                 |     int32_t var_2ch_2;
                                                                 |     int16_t var_34h;
                                                                 |     int32_t var_34h_2;
                                                                 |     int32_t var_3ch;
                                                                 |     int32_t var_3ch_2;
                                                                 |     int16_t var_44h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00045f2c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00045f30 sub sp, 0x4c                                      |     
    0x00045f32 ldr.w r8, [sp, 0x70]                              |     r8 = *(arg_70h);
    0x00045f36 mov r5, r2                                        |     r5 = r2;
    0x00045f38 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00045f3a beq.w 0x4632a                                     |         goto label_14;
                                                                 |     }
    0x00045f3e mov r6, r3                                        |     r6 = r3;
    0x00045f40 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x00045f42 beq.w 0x46344                                     |         goto label_15;
                                                                 |     }
    0x00045f46 mov sb, r1                                        |     sb = r1;
    0x00045f48 mov r7, r0                                        |     r7 = r0;
    0x00045f4a movs r0, 0x34                                     |     r0 = 0x34;
    0x00045f4c blx 0xf92c                                        |     r0 = gst_rtsp_session_get_sessionid ();
    0x00045f50 str.w sb, [r0]                                    |     __asm ("str.w sb, [r0]");
    0x00045f54 mov r4, r0                                        |     r4 = r0;
    0x00045f56 str r7, [r0, 0x14]                                |     *((r0 + 0x14)) = r7;
    0x00045f58 add r0, sp, 0x24                                  |     r0 += var_24h;
    0x00045f5a blx 0x105b0                                       |     r0 = fcn_000105b0 ();
    0x00045f5e cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x00045f60 blt.w 0x46486                                     |         goto label_16;
                                                                 |     }
    0x00045f64 ldr r3, [sp, 0x28]                                |     r3 = var_28h;
    0x00045f66 mov r0, r5                                        |     r0 = r5;
    0x00045f68 str r3, [r4, 0x30]                                |     *((r4 + 0x30)) = r3;
    0x00045f6a ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x00045f6c str r3, [r4, 0x20]                                |     *((r4 + 0x20)) = r3;
    0x00045f6e ldr r3, [r4]                                      |     r3 = *(r4);
    0x00045f70 str r3, [r4, 0x28]                                |     *((r4 + 0x28)) = r3;
    0x00045f72 movs r3, 0                                        |     r3 = 0;
    0x00045f74 str r3, [r4, 0x1c]                                |     *((r4 + 0x1c)) = r3;
    0x00045f76 strd r3, r3, [sp, 0x2c]                           |     __asm ("strd r3, r3, [var_2ch]");
    0x00045f7a strd r3, r3, [sp, 0x34]                           |     __asm ("strd r3, r3, [var_34h]");
    0x00045f7e strd r3, r3, [sp, 0x3c]                           |     __asm ("strd r3, r3, [var_3ch]");
    0x00045f82 str r3, [sp, 0x44]                                |     var_44h = r3;
    0x00045f84 movs r3, 0x29                                     |     r3 = 0x29;
    0x00045f86 strh r3, [r4, 0x24]                               |     *((r4 + 0x24)) = r3;
    0x00045f88 movs r3, 0x38                                     |     r3 = 0x38;
    0x00045f8a strh r3, [r4, 0x2c]                               |     *((r4 + 0x2c)) = r3;
    0x00045f8c blx 0xfbac                                        |     r0 = fcn_0000fbac ();
    0x00045f90 cmp r0, 0x14                                      |     
    0x00045f92 add r3, sp, 0x2c                                  |     r3 += var_2ch;
    0x00045f94 str r3, [sp, 0x14]                                |     var_14h = r3;
                                                                 |     if (r0 > 0x14) {
    0x00045f96 bhi.w 0x4639e                                     |         goto label_17;
                                                                 |     }
    0x00045f9a ldr.w r1, [pc, 0x42c]                             |     
    0x00045f9e mov r0, r5                                        |     r0 = r5;
    0x00045fa0 add r1, pc                                        |     r1 = 0x8c36e;
    0x00045fa2 blx 0x10008                                       |     r0 = fcn_00010008 ();
                                                                 |     if (r0 != 0) {
    0x00045fa6 cbz r0, 0x45fba                                   |         
    0x00045fa8 ldr.w r1, [pc, 0x420]                             |         
    0x00045fac mov r0, r5                                        |         r0 = r5;
    0x00045fae add r1, pc                                        |         r1 = 0x8c37e;
    0x00045fb0 blx 0x10008                                       |         r0 = fcn_00010008 ();
    0x00045fb4 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00045fb6 bne.w 0x464a8                                     |             goto label_18;
                                                                 |         }
                                                                 |     }
    0x00045fba ldr.w r0, [pc, 0x414]                             |     
    0x00045fbe add r0, pc                                        |     r0 = 0x8c394;
    0x00045fc0 blx 0xecf0                                        |     r0 = g_variant_ref_sink ();
    0x00045fc4 mov sb, r0                                        |     sb = r0;
    0x00045fc6 str r0, [r4, 4]                                   |     *((r4 + 4)) = r0;
    0x00045fc8 blx 0xe088                                        |     r0 = fcn_0000e088 ();
    0x00045fcc mov r1, r0                                        |     r1 = r0;
    0x00045fce mov r0, sb                                        |     r0 = sb;
    0x00045fd0 blx 0xe18c                                        |     cert_set_init ();
    0x00045fd4 blx 0xdf48                                        |     fcn_0000df48 ();
    0x00045fd8 ldr r1, [pc, 0x3f8]                               |     
    0x00045fda mov sb, r0                                        |     sb = r0;
    0x00045fdc mov r2, r4                                        |     r2 = r4;
    0x00045fde add r1, pc                                        |     r1 = 0x8c3b6;
    0x00045fe0 blx 0xfc64                                        |     fcn_0000fc64 ();
    0x00045fe4 str r0, [r4, 0x10]                                |     *((r4 + 0x10)) = r0;
    0x00045fe6 mov r0, sb                                        |     r0 = sb;
    0x00045fe8 blx 0xdff8                                        |     fcn_0000dff8 ();
    0x00045fec mov r3, r8                                        |     r3 = r8;
    0x00045fee mov r2, r6                                        |     r2 = r6;
    0x00045ff0 mov r1, r5                                        |     r1 = r5;
    0x00045ff2 movs r0, 0                                        |     r0 = 0;
    0x00045ff4 bl 0x65988                                        |     r0 = fcn_00065988 (r0, r1, r2, r3);
    0x00045ff8 mov sb, r0                                        |     sb = r0;
    0x00045ffa cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00045ffc beq.w 0x464ca                                     |         goto label_19;
                                                                 |     }
    0x00046000 ldr r0, [r0]                                      |     r0 = *(r0);
    0x00046002 bl 0x48c0c                                        |     r0 = fcn_00048c0c (r0);
    0x00046006 blx 0xe5f4                                        |     g_int_hash ();
    0x0004600a ldr r1, [pc, 0x3cc]                               |     
    0x0004600c add r1, pc                                        |     r1 = 0x8c3ea;
    0x0004600e blx 0xfcc4                                        |     r0 = fcn_0000fcc4 ();
    0x00046012 mov sl, r0                                        |     sl = r0;
    0x00046014 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00046016 beq.w 0x4646c                                     |         goto label_20;
                                                                 |     }
                                                                 | label_3:
    0x0004601a mov r1, r8                                        |     r1 = r8;
    0x0004601c ldr.w r0, [sb]                                    |     r0 = *(sb);
    0x00046020 bl 0x40674                                        |     r0 = fcn_00040674 (r0);
    0x00046024 mov sl, r0                                        |     sl = r0;
    0x00046026 mov r0, sb                                        |     r0 = sb;
    0x00046028 bl 0x651d4                                        |     fcn_000651d4 (r0);
    0x0004602c str.w sl, [r4, 0xc]                               |     __asm ("str.w sl, [r4, 0xc]");
    0x00046030 cmp.w sl, 0                                       |     
                                                                 |     if (sl == 0) {
    0x00046034 beq.w 0x462ee                                     |         goto label_4;
                                                                 |     }
    0x00046038 mov r0, r5                                        |     r0 = r5;
    0x0004603a ldr.w fp, [pc, 0x3a0]                             |     
    0x0004603e blx 0xe798                                        |     gst_query_new_custom ();
    0x00046042 ldr r1, [pc, 0x39c]                               |     
    0x00046044 movs r2, 0x2d                                     |     r2 = 0x2d;
    0x00046046 mov sl, r0                                        |     sl = r0;
    0x00046048 add fp, pc                                        |     fp = 0x8c42a;
    0x0004604a add r1, pc                                        |     r1 = 0x8c430;
    0x0004604c blx 0xe01c                                        |     fcn_0000e01c ();
    0x00046050 ldr r3, [r4, 0xc]                                 |     r3 = *((r4 + 0xc));
    0x00046052 movs r1, 0                                        |     r1 = 0;
    0x00046054 mov r0, fp                                        |     r0 = fp;
    0x00046056 ldr r3, [r3, 4]                                   |     r3 = *((r3 + 4));
    0x00046058 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x0004605a blx 0x100a4                                       |     r0 = fcn_000100a4 ();
    0x0004605e mov sb, r0                                        |     sb = r0;
    0x00046060 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00046062 beq.w 0x465f6                                     |         goto label_21;
                                                                 |     }
    0x00046066 ldr.w fp, [pc, 0x37c]                             |     
    0x0004606a movs r1, 0x50                                     |     r1 = 0x50;
    0x0004606c blx 0xe18c                                        |     cert_set_init ();
    0x00046070 movs r3, 0                                        |     r3 = 0;
    0x00046072 add r2, sp, 0x20                                  |     r2 += var_20h;
    0x00046074 add fp, pc                                        |     fp = 0x8c45e;
    0x00046076 mov r1, fp                                        |     r1 = fp;
    0x00046078 blx 0xf584                                        |     gst_sdp_media_get_media ();
    0x0004607c movs r2, 0                                        |     r2 = 0;
    0x0004607e mov r1, sl                                        |     r1 = sl;
    0x00046080 ldr r0, [sp, 0x20]                                |     r0 = var_20h;
    0x00046082 blx 0xf980                                        |     g_value_copy ();
    0x00046086 str r0, [sp, 0x1c]                                |     var_1ch = r0;
    0x00046088 ldr r0, [sp, 0x20]                                |     r0 = var_20h;
    0x0004608a blx 0xf3e8                                        |     fcn_0000f3e8 ();
    0x0004608e movs r1, 0x50                                     |     r1 = 0x50;
    0x00046090 mov r0, sb                                        |     r0 = sb;
    0x00046092 blx 0xe18c                                        |     cert_set_init ();
    0x00046096 ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x00046098 mov r1, fp                                        |     r1 = fp;
    0x0004609a ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x0004609c str r3, [sp]                                      |     *(sp) = r3;
    0x0004609e movs r3, 0                                        |     r3 = 0;
    0x000460a0 str r3, [sp, 4]                                   |     var_4h = r3;
    0x000460a2 ldr r3, [pc, 0x344]                               |     
    0x000460a4 str r2, [sp, 0x18]                                |     var_18h = r2;
    0x000460a6 add r3, pc                                        |     r3 = 0x8c494;
    0x000460a8 blx 0xf4fc                                        |     fcn_0000f4fc ();
    0x000460ac ldr r2, [sp, 0x18]                                |     r2 = var_18h;
    0x000460ae mov r0, r2                                        |     r0 = r2;
    0x000460b0 blx 0xf3e8                                        |     fcn_0000f3e8 ();
                                                                 | label_10:
    0x000460b4 mov r0, sb                                        |     r0 = sb;
    0x000460b6 movs r1, 0x50                                     |     r1 = 0x50;
    0x000460b8 str.w sb, [r4, 8]                                 |     __asm ("str.w sb, [r4, 8]");
    0x000460bc mov.w sb, 0                                       |     sb = 0;
    0x000460c0 blx 0xe18c                                        |     cert_set_init ();
    0x000460c4 vldr d16, [pc, 0x2f8]                             |     __asm ("vldr d16, aav.0x000000ff");
    0x000460c8 movs r2, 2                                        |     r2 = 2;
    0x000460ca ldr r3, [pc, 0x320]                               |     
    0x000460cc ldr r1, [pc, 0x320]                               |     
    0x000460ce vstr d16, [sp]                                    |     __asm ("vstr d16, [sp]");
    0x000460d2 add r3, pc                                        |     r3 = 0x8c4c4;
    0x000460d4 str.w sb, [sp, 8]                                 |     __asm ("str.w sb, [var_8h]");
    0x000460d8 add r1, pc                                        |     r1 = 0x8c4cc;
    0x000460da blx 0xf4fc                                        |     fcn_0000f4fc ();
    0x000460de mov r0, sl                                        |     r0 = sl;
    0x000460e0 blx 0xf3e8                                        |     fcn_0000f3e8 ();
    0x000460e4 ldr r3, [r4, 8]                                   |     r3 = *((r4 + 8));
    0x000460e6 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x000460e8 beq.w 0x462e8                                     |         goto label_8;
                                                                 |     }
    0x000460ec ldr r0, [pc, 0x304]                               |     
    0x000460ee mov r1, sb                                        |     r1 = sb;
    0x000460f0 add r0, pc                                        |     r0 = 0x8c4e8;
    0x000460f2 blx 0x100a4                                       |     r0 = fcn_000100a4 ();
    0x000460f6 mov sl, r0                                        |     sl = r0;
    0x000460f8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000460fa beq.w 0x4660e                                     |         goto label_22;
                                                                 |     }
    0x000460fe ldr r1, [pc, 0x2f8]                               |     
    0x00046100 mov r2, sb                                        |     r2 = sb;
    0x00046102 mov r3, sb                                        |     r3 = sb;
    0x00046104 add r1, pc                                        |     r1 = 0x8c502;
    0x00046106 blx 0xf4fc                                        |     fcn_0000f4fc ();
    0x0004610a ldr r3, [pc, 0x2f0]                               |     
    0x0004610c add r3, pc                                        |     r3 = 0x8c50e;
    0x0004610e str r3, [sp, 0x34]                                |     var_34h = r3;
    0x00046110 blx 0xfa74                                        |     r0 = fcn_0000fa74 ();
    0x00046114 mov r1, r0                                        |     r1 = r0;
    0x00046116 mov r0, sl                                        |     r0 = sl;
    0x00046118 blx 0xe18c                                        |     cert_set_init ();
    0x0004611c ldr r1, [sp, 0x14]                                |     r1 = var_14h;
    0x0004611e mov r3, sb                                        |     r3 = sb;
    0x00046120 mov r2, r4                                        |     r2 = r4;
    0x00046122 blx 0xfc0c                                        |     fcn_0000fc0c ();
    0x00046126 ldr r0, [pc, 0x2d8]                               |     
    0x00046128 mov r1, sb                                        |     r1 = sb;
    0x0004612a add r0, pc                                        |     r0 = 0x8c530;
    0x0004612c blx 0x100a4                                       |     r0 = fcn_000100a4 ();
    0x00046130 mov fp, r0                                        |     
    0x00046132 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00046134 beq.w 0x465e2                                     |         goto label_23;
                                                                 |     }
    0x00046138 mov r3, r8                                        |     r3 = r8;
    0x0004613a mov r1, r5                                        |     r1 = r5;
    0x0004613c mov r2, r6                                        |     r2 = r6;
    0x0004613e mov r0, sb                                        |     r0 = sb;
    0x00046140 bl 0x65988                                        |     fcn_00065988 (r0, r1, r2, r3);
    0x00046142 stc2 p6, c4, [r2], -0xc                           |     __asm ("stc2 p6, c4, [r2], -0xc");
    0x00046146 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00046148 beq.w 0x4635e                                     |         goto label_24;
                                                                 |     }
    0x0004614c ldr r2, [r3, 0x54]                                |     r2 = *((r3 + 0x54));
    0x0004614e ldr r0, [r0]                                      |     r0 = *(r0);
    0x00046150 str r3, [sp, 0x14]                                |     var_14h = r3;
    0x00046152 str r2, [sp, 0x1c]                                |     var_1ch = r2;
    0x00046154 bl 0x48c0c                                        |     r0 = fcn_00048c0c (r0);
    0x00046158 blx 0xe5f4                                        |     g_int_hash ();
    0x0004615c ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0004615e mov r5, r0                                        |     r5 = r0;
    0x00046160 mov r0, r3                                        |     r0 = r3;
    0x00046162 bl 0x651d4                                        |     fcn_000651d4 (r0);
    0x00046166 ldr r1, [pc, 0x29c]                               |     
    0x00046168 mov r0, r5                                        |     r0 = r5;
    0x0004616a add r1, pc                                        |     r1 = 0x8c574;
    0x0004616c blx 0x1061c                                       |     r0 = fcn_0001061c ();
    0x00046170 mov r3, r0                                        |     r3 = r0;
    0x00046172 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00046174 bne.w 0x464f0                                     |         goto label_25;
                                                                 |     }
    0x00046178 ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x0004617a cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0004617c beq.w 0x4636c                                     |         goto label_26;
                                                                 |     }
    0x00046180 ldr r0, [pc, 0x284]                               |     
    0x00046182 mov r1, r3                                        |     r1 = r3;
    0x00046184 str r3, [sp, 0x14]                                |     var_14h = r3;
    0x00046186 add r0, pc                                        |     r0 = 0x8c592;
    0x00046188 blx 0x100a4                                       |     fcn_000100a4 ();
    0x0004618c ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x0004618e str r0, [sp, 0x18]                                |     var_18h = r0;
    0x00046190 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00046192 beq.w 0x46636                                     |         goto label_27;
                                                                 |     }
    0x00046194 strh r0, [r2, 0x12]                               |     *((r2 + 0x12)) = r0;
    0x00046196 ldr r1, [pc, 0x274]                               |     
    0x00046198 mov.w r2, -1                                      |     r2 = -1;
    0x0004619c add r1, pc                                        |     r1 = 0x8c5ae;
    0x0004619e blx 0xf4fc                                        |     fcn_0000f4fc ();
                                                                 | label_6:
    0x000461a2 ldr r1, [pc, 0x26c]                               |     
    0x000461a4 mov r0, r6                                        |     r0 = r6;
    0x000461a6 add r1, pc                                        |     r1 = 0x8c5bc;
    0x000461a8 blx 0xf158                                        |     r0 = g_strstr_len ();
    0x000461ac mov r6, r0                                        |     r6 = r0;
    0x000461ae cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000461b0 beq.w 0x46572                                     |         goto label_28;
                                                                 |     }
                                                                 |     do {
    0x000461b4 ldr r0, [pc, 0x25c]                               |         
    0x000461b6 movs r1, 0                                        |         r1 = 0;
    0x000461b8 ldr r3, [r4, 0xc]                                 |         r3 = *((r4 + 0xc));
    0x000461ba ldr r5, [r4, 8]                                   |         r5 = *((r4 + 8));
    0x000461bc add r0, pc                                        |         r0 = 0x8c5d4;
    0x000461be ldr r6, [r3]                                      |         r6 = *(r3);
    0x000461c0 blx 0x100a4                                       |         r0 = fcn_000100a4 ();
    0x000461c4 mov sb, r0                                        |         sb = r0;
    0x000461c6 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000461c8 beq.w 0x46622                                     |             goto label_29;
                                                                 |         }
    0x000461cc ldr r2, [r4, 4]                                   |         r2 = *((r4 + 4));
    0x000461ce str r2, [sp, 0x14]                                |         var_14h = r2;
    0x000461d0 blx 0xf4a4                                        |         fcn_0000f4a4 ();
    0x000461d4 ldr r2, [sp, 0x14]                                |         r2 = var_14h;
    0x000461d6 mov r1, r0                                        |         r1 = r0;
    0x000461d8 mov r0, r2                                        |         r0 = r2;
    0x000461da blx 0xe18c                                        |         cert_set_init ();
    0x000461de movs r2, 0                                        |         r2 = 0;
    0x000461e0 mov r1, r5                                        |         r1 = r5;
    0x000461e2 mov r3, sb                                        |         r3 = sb;
    0x000461e4 str r2, [sp, 4]                                   |         var_4h = r2;
    0x000461e6 str.w sl, [sp]                                    |         __asm ("str.w sl, [sp]");
    0x000461ea mov r2, fp                                        |         r2 = fp;
    0x000461ec blx 0xfb30                                        |         g_date_time_unref ();
    0x000461f0 mov r0, r6                                        |         r0 = r6;
    0x000461f2 bl 0x48da0                                        |         r0 = fcn_00048da0 (r0);
    0x000461f6 blx 0xe478                                        |         fcn_0000e478 ();
    0x000461fa mov r1, sb                                        |         r1 = sb;
    0x000461fc mov r2, r0                                        |         r2 = r0;
    0x000461fe mov r0, r5                                        |         r0 = r5;
    0x00046200 mov r5, r2                                        |         r5 = r2;
    0x00046202 blx 0xdca0                                        |         r0 = g_signal_lookup ();
    0x00046206 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x00046208 beq 0x4628a                                       |             
    0x0004620a mov r0, sb                                        |             r0 = sb;
    0x0004620c mov r2, r5                                        |             r2 = r5;
    0x0004620e mov r1, fp                                        |             r1 = fp;
    0x00046210 blx 0xe98c                                        |             r0 = fcn_0000e98c ();
    0x00046212 subs.w r8, ip, r0, lsl 8                          |             r8 = ip - (r0 << 8);
                                                                 |             if (r8 == ip) {
    0x00046216 beq.w 0x46550                                     |                 goto label_30;
                                                                 |             }
    0x0004621a mov r1, sl                                        |             r1 = sl;
    0x0004621c mov r0, fp                                        |             r0 = fp;
    0x0004621e blx 0xdca0                                        |             g_signal_lookup ();
    0x00046220 stcl p8, c2, [r0, -0]                             |             __asm ("stcl p8, c2, [r0, -0]");
                                                                 |             if (r8 == ip) {
    0x00046224 beq.w 0x464ce                                     |                 goto label_31;
                                                                 |             }
    0x00046228 mov r0, r5                                        |             r0 = r5;
    0x0004622a blx 0xf5ec                                        |             fcn_0000f5ec ();
                                                                 | label_7:
    0x0004622e add.w r5, r7, 0xc                                 |             r5 = r7 + 0xc;
    0x00046232 mov r0, r5                                        |             r0 = r5;
    0x00046234 blx 0xf26c                                        |             socket (r0, r1, r2);
    0x00046238 mov r1, r4                                        |             r1 = r4;
    0x0004623a mov r2, r4                                        |             r2 = r4;
    0x0004623c ldr r0, [r7, 0x18]                                |             r0 = *((r7 + 0x18));
    0x0004623e blx 0xe83c                                        |             fcn_0000e83c ();
    0x00046242 mov r0, r5                                        |             r0 = r5;
    0x00046244 blx 0xf548                                        |             gst_mini_object_unref ();
    0x00046248 ldr r0, [r4, 4]                                   |             r0 = *((r4 + 4));
    0x0004624a movs r1, 4                                        |             r1 = 4;
    0x0004624c blx 0xe0ac                                        |             r0 = fcn_0000e0ac ();
    0x00046250 cmp r0, 0                                         |             
                                                                 |             if (r0 != 0) {
    0x00046252 bne 0x46322                                       |                 goto label_32;
                                                                 |             }
    0x00046254 ldr r6, [pc, 0x1c0]                               |             
    0x00046256 add r6, pc                                        |             r6 = 0x8c672;
    0x00046258 ldr r1, [r6]                                      |             r1 = *(0x8c672);
                                                                 |             if (r1 == 0) {
    0x0004625a cbnz r1, 0x46268                                  |                 
    0x0004625c ldr r0, [pc, 0x1bc]                               |                 
    0x0004625e add r0, pc                                        |                 r0 = 0x8c67e;
    0x00046260 blx 0xf8c0                                        |                 r0 = g_strconcat ();
    0x00046264 mov r1, r0                                        |                 r1 = r0;
    0x00046266 str r0, [r6]                                      |                 *(r6) = r0;
                                                                 |             }
    0x00046268 ldr r3, [pc, 0x1b4]                               |             
    0x0004626a movs r2, 0                                        |             r2 = 0;
    0x0004626c mov r0, r8                                        |             r0 = r8;
    0x0004626e add r3, pc                                        |             r3 = 0x8c692;
    0x00046270 blx 0x10398                                       |             fcn_00010398 ();
    0x00046274 mov r0, r5                                        |             r0 = r5;
    0x00046276 blx 0xf26c                                        |             socket (r0, r1, r2);
    0x0004627a ldr r0, [r7, 0x18]                                |             r0 = *((r7 + 0x18));
    0x0004627c mov r1, r4                                        |             r1 = r4;
    0x0004627e blx 0xf9f8                                        |             memcpy (r0, r1, r2);
    0x00046282 mov r0, r5                                        |             r0 = r5;
    0x00046284 blx 0xf548                                        |             gst_mini_object_unref ();
    0x00046288 b 0x462fe                                         |             
                                                                 |         } else {
    0x0004628a ldr r6, [pc, 0x198]                               |             
    0x0004628c add r6, pc                                        |             r6 = 0x8c6b6;
    0x0004628e ldr r1, [r6]                                      |             r1 = *(0x8c6b6);
                                                                 |             if (r1 == 0) {
    0x00046290 cbnz r1, 0x4629e                                  |                 
    0x00046292 ldr r0, [pc, 0x194]                               |                 
    0x00046294 add r0, pc                                        |                 r0 = 0x8c6c2;
    0x00046296 blx 0xf8c0                                        |                 r0 = g_strconcat ();
    0x0004629a mov r1, r0                                        |                 r1 = r0;
    0x0004629c str r0, [r6]                                      |                 *(r6) = r0;
                                                                 |             }
    0x0004629e ldr r3, [pc, 0x18c]                               |             
    0x000462a0 movs r2, 0                                        |             r2 = 0;
    0x000462a2 mov r0, r8                                        |             r0 = r8;
    0x000462a4 add r3, pc                                        |             r3 = 0x8c6d6;
    0x000462a6 blx 0x10398                                       |             fcn_00010398 ();
                                                                 | label_5:
    0x000462aa mov r0, r5                                        |             r0 = r5;
    0x000462ac blx 0xf5ec                                        |             fcn_0000f5ec ();
                                                                 | label_12:
    0x000462b0 ldr r5, [pc, 0x17c]                               |             
    0x000462b2 add r5, pc                                        |             r5 = 0x8c6e6;
    0x000462b4 ldr r1, [r5]                                      |             r1 = *(0x8c6e6);
                                                                 |             if (r1 == 0) {
    0x000462b6 cbnz r1, 0x462c4                                  |                 
    0x000462b8 ldr r0, [pc, 0x178]                               |                 
    0x000462ba add r0, pc                                        |                 r0 = 0x8c6f2;
    0x000462bc blx 0xf8c0                                        |                 r0 = g_strconcat ();
    0x000462be add.w r6, r0, r1, lsl 16                          |                 r6 = r0 + (r1 << 16);
    0x000462c2 str r0, [r5]                                      |                 *(r5) = r0;
                                                                 |             }
    0x000462c4 ldr r3, [pc, 0x170]                               |             
    0x000462c6 mov r0, r8                                        |             r0 = r8;
    0x000462c8 movs r2, 0                                        |             r2 = 0;
    0x000462ca add r3, pc                                        |             r3 = 0x8c706;
    0x000462cc blx 0x10398                                       |             fcn_00010398 ();
    0x000462d0 ldr r0, [sp, 0x18]                                |             r0 = var_18h;
    0x000462d2 blx 0xdff8                                        |             fcn_0000dff8 ();
                                                                 | label_13:
    0x000462d6 mov r0, fp                                        |             r0 = fp;
    0x000462d8 blx 0xdff8                                        |             fcn_0000dff8 ();
    0x000462dc mov r0, sl                                        |             r0 = sl;
    0x000462de blx 0xdff8                                        |             fcn_0000dff8 ();
                                                                 | label_11:
    0x000462e2 ldr r0, [r4, 8]                                   |             r0 = *((r4 + 8));
    0x000462e4 blx 0xdff8                                        |             fcn_0000dff8 ();
                                                                 | label_8:
    0x000462e8 ldr r0, [r4, 0xc]                                 |             r0 = *((r4 + 0xc));
    0x000462ea bl 0x3ff38                                        |             fcn_0003ff38 (r0);
                                                                 | label_4:
    0x000462ee ldr r0, [r4, 0x10]                                |             r0 = *((r4 + 0x10));
    0x000462f0 blx 0x105a4                                       |             fcn_000105a4 ();
    0x000462f4 movs r3, 0                                        |             r3 = 0;
    0x000462f6 ldr r0, [r4, 4]                                   |             r0 = *((r4 + 4));
    0x000462f8 str r3, [r4, 0x10]                                |             *((r4 + 0x10)) = r3;
    0x000462fa blx 0xdff8                                        |             fcn_0000dff8 ();
                                                                 |         }
                                                                 | label_2:
    0x000462fe ldr r0, [sp, 0x28]                                |         r0 = var_28h;
    0x00046300 blx 0xea08                                        |         r0 = gst_rtsp_session_media_get_media ();
    0x00046304 cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x00046306 blt 0x46390                                       |             goto label_33;
                                                                 |         }
                                                                 | label_1:
    0x00046308 ldr r0, [sp, 0x24]                                |         r0 = var_24h;
    0x0004630a blx 0xea08                                        |         r0 = gst_rtsp_session_media_get_media ();
    0x0004630e cmp r0, 0                                         |         
                                                                 |         if (r0 < 0) {
    0x00046310 blt 0x46382                                       |             goto label_34;
                                                                 |         }
                                                                 | label_0:
    0x00046312 mov.w r3, -1                                      |         r3 = -1;
    0x00046316 mov r1, r4                                        |         r1 = r4;
    0x00046318 str r3, [r4]                                      |         *(r4) = r3;
    0x0004631a movs r0, 0x34                                     |         r0 = 0x34;
    0x0004631c movs r4, 0                                        |         r4 = 0;
    0x0004631e blx 0x10338                                       |         fcn_00010338 ();
                                                                 | label_32:
    0x00046322 mov r0, r4                                        |         r0 = r4;
    0x00046324 add sp, 0x4c                                      |         
    0x00046326 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_14:
    0x0004632a ldr r1, [pc, 0x110]                               |         
    0x0004632c mov r0, r5                                        |         r0 = r5;
    0x0004632e ldr r2, [pc, 0x110]                               |         
    0x00046330 mov r4, r5                                        |         r4 = r5;
    0x00046332 add r1, pc                                        |         r1 = 0x8c774;
    0x00046334 add r2, pc                                        |         r2 = 0x8c77a;
    0x00046336 adds r1, 0x1c                                     |         r1 += 0x1c;
    0x00046338 blx 0xdc4c                                        |         g_ascii_string_to_unsigned ();
    0x0004633c mov r0, r4                                        |         r0 = r4;
    0x0004633e add sp, 0x4c                                      |         
    0x00046340 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_15:
    0x00046344 ldr r1, [pc, 0xfc]                                |         
    0x00046346 mov r0, r3                                        |         r0 = r3;
    0x00046348 ldr r2, [pc, 0xfc]                                |         
    0x0004634a mov r4, r3                                        |         r4 = r3;
    0x0004634c add r1, pc                                        |         r1 = 0x8c794;
    0x0004634e add r2, pc                                        |         r2 = 0x8c79a;
    0x00046350 adds r1, 0x1c                                     |         r1 += 0x1c;
    0x00046352 blx 0xdc4c                                        |         g_ascii_string_to_unsigned ();
    0x00046356 mov r0, r4                                        |         r0 = r4;
    0x00046358 add sp, 0x4c                                      |         
    0x0004635a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_24:
    0x0004635e ldr r5, [pc, 0xec]                                |         
    0x00046360 ldr r1, [pc, 0xec]                                |         
    0x00046362 add r5, pc                                        |         r5 = 0x8c7b4;
    0x00046364 add r1, pc                                        |         r1 = 0x8c7b8;
    0x00046366 mov r0, r5                                        |         r0 = r5;
    0x00046368 blx 0x1061c                                       |         fcn_0001061c ();
                                                                 | label_26:
    0x0004636c ldr r1, [pc, 0xe4]                                |         
    0x0004636e mov r0, r6                                        |         r0 = r6;
    0x00046370 add r1, pc                                        |         r1 = 0x8c7c8;
    0x00046372 blx 0xf158                                        |         r0 = g_strstr_len ();
    0x00046376 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00046378 beq.w 0x464f6                                     |             goto label_35;
                                                                 |         }
    0x0004637c movs r3, 0                                        |         r3 = 0;
    0x0004637e str r3, [sp, 0x18]                                |         var_18h = r3;
    0x00046380 b 0x461b4                                         |         
                                                                 |     } while (1);
                                                                 | label_34:
    0x00046382 ldr r2, [pc, 0xd4]                                |     
    0x00046384 movs r1, 0x20                                     |     r1 = 0x20;
    0x00046386 movs r0, 0                                        |     r0 = 0;
    0x00046388 add r2, pc                                        |     r2 = 0x8c7e6;
    0x0004638a blx 0xe318                                        |     gst_element_error_printf ()
    0x0004638e b 0x46312                                         |     goto label_0;
                                                                 | label_33:
    0x00046390 ldr r2, [pc, 0xc8]                                |     
    0x00046392 movs r1, 0x20                                     |     r1 = 0x20;
    0x00046394 movs r0, 0                                        |     r0 = 0;
    0x00046396 add r2, pc                                        |     r2 = 0x8c7f6;
    0x00046398 blx 0xe318                                        |     gst_element_error_printf ()
    0x0004639c b 0x46308                                         |     goto label_1;
                                                                 | label_17:
    0x0004639e ldr r5, [pc, 0xc0]                                |     
    0x000463a0 add r5, pc                                        |     r5 = 0x8c806;
    0x000463a2 ldr r1, [r5]                                      |     r1 = *(0x8c806);
                                                                 |     if (r1 == 0) {
    0x000463a4 cbnz r1, 0x463b2                                  |         
    0x000463a6 ldr r0, [pc, 0xbc]                                |         
    0x000463a8 add r0, pc                                        |         r0 = 0x8c812;
    0x000463aa blx 0xf8c0                                        |         r0 = g_strconcat ();
    0x000463ae mov r1, r0                                        |         r1 = r0;
    0x000463b0 str r0, [r5]                                      |         *(r5) = r0;
                                                                 |     }
    0x000463b2 ldr r3, [pc, 0xb4]                                |     
    0x000463b4 movs r2, 0                                        |     r2 = 0;
    0x000463b6 mov r0, r8                                        |     r0 = r8;
    0x000463b8 add r3, pc                                        |     r3 = 0x8c826;
    0x000463ba blx 0x10398                                       |     fcn_00010398 ();
    0x000463be b 0x462fe                                         |     goto label_2;
                                                                 | label_20:
    0x0004646c ldr.w r0, [sb]                                    |     r0 = *(sb);
    0x00046470 bl 0x48c0c                                        |     fcn_00048c0c (r0);
    0x00046474 ldr r1, [pc, 0x1d4]                               |     
    0x00046476 mov r3, sl                                        |     r3 = sl;
    0x00046478 movs r2, 0x14                                     |     r2 = 0x14;
    0x0004647a str.w sl, [sp]                                    |     __asm ("str.w sl, [sp]");
    0x0004647e add r1, pc                                        |     r1 = 0x8cace;
    0x00046480 blx 0xd9f8                                        |     fcn_0000d9f8 ();
    0x00046484 b 0x4601a                                         |     goto label_3;
                                                                 | label_16:
    0x00046486 ldr r5, [pc, 0x1c8]                               |     
    0x00046488 add r5, pc                                        |     r5 = 0x8cade;
    0x0004648a ldr r1, [r5]                                      |     r1 = *(0x8cade);
                                                                 |     if (r1 == 0) {
    0x0004648c cbnz r1, 0x4649a                                  |         
    0x0004648e ldr r0, [pc, 0x1c4]                               |         
    0x00046490 add r0, pc                                        |         r0 = 0x8caea;
    0x00046492 blx 0xf8c0                                        |         r0 = g_strconcat ();
    0x00046496 mov r1, r0                                        |         r1 = r0;
    0x00046498 str r0, [r5]                                      |         *(r5) = r0;
                                                                 |     }
    0x0004649a ldr r3, [pc, 0x1bc]                               |     
    0x0004649c movs r2, 0                                        |     r2 = 0;
    0x0004649e mov r0, r8                                        |     r0 = r8;
    0x000464a0 add r3, pc                                        |     r3 = 0x8cafe;
    0x000464a2 blx 0x10398                                       |     fcn_00010398 ();
    0x000464a6 b 0x46312                                         |     goto label_0;
                                                                 | label_18:
    0x000464a8 ldr r5, [pc, 0x1b0]                               |     
    0x000464aa add r5, pc                                        |     r5 = 0x8cb0a;
    0x000464ac ldr r1, [r5]                                      |     r1 = *(0x8cb0a);
                                                                 |     if (r1 == 0) {
    0x000464ae cbnz r1, 0x464bc                                  |         
    0x000464b0 ldr r0, [pc, 0x1ac]                               |         
    0x000464b2 add r0, pc                                        |         r0 = 0x8cb16;
    0x000464b4 blx 0xf8c0                                        |         r0 = g_strconcat ();
    0x000464b8 mov r1, r0                                        |         r1 = r0;
    0x000464ba str r0, [r5]                                      |         *(r5) = r0;
                                                                 |     }
    0x000464bc ldr r3, [pc, 0x1a4]                               |     
    0x000464be movs r2, 0                                        |     r2 = 0;
    0x000464c0 mov r0, r8                                        |     r0 = r8;
    0x000464c2 add r3, pc                                        |     r3 = 0x8cb2a;
    0x000464c4 blx 0x10398                                       |     fcn_00010398 ();
    0x000464c8 b 0x462fe                                         |     goto label_2;
                                                                 | label_19:
    0x000464ca str r0, [r4, 0xc]                                 |     *((r4 + 0xc)) = r0;
    0x000464cc b 0x462ee                                         |     goto label_4;
                                                                 | label_31:
    0x000464ce ldr r6, [pc, 0x198]                               |     
    0x000464d0 add r6, pc                                        |     r6 = 0x8cb3e;
    0x000464d2 ldr r1, [r6]                                      |     r1 = *(0x8cb3e);
                                                                 |     if (r1 == 0) {
    0x000464d4 cbnz r1, 0x464e2                                  |         
    0x000464d6 ldr r0, [pc, 0x194]                               |         
    0x000464d8 add r0, pc                                        |         r0 = 0x8cb4a;
    0x000464da blx 0xf8c0                                        |         r0 = g_strconcat ();
    0x000464de mov r1, r0                                        |         r1 = r0;
    0x000464e0 str r0, [r6]                                      |         *(r6) = r0;
                                                                 |     }
    0x000464e2 ldr r3, [pc, 0x18c]                               |     
    0x000464e4 movs r2, 0                                        |     r2 = 0;
    0x000464e6 mov r0, r8                                        |     r0 = r8;
    0x000464e8 add r3, pc                                        |     r3 = 0x8cb5e;
    0x000464ea blx 0x10398                                       |     fcn_00010398 ();
    0x000464ee b 0x462aa                                         |     goto label_5;
                                                                 | label_25:
    0x000464f0 str.w sb, [sp, 0x18]                              |     __asm ("str.w sb, [var_18h]");
    0x000464f4 b 0x461a2                                         |     goto label_6;
                                                                 | label_35:
    0x000464f6 ldr r1, [pc, 0x17c]                               |     
    0x000464f8 mov r0, r5                                        |     r0 = r5;
    0x000464fa add r1, pc                                        |     r1 = 0x8cb74;
    0x000464fc blx 0x1061c                                       |     fcn_0001061c ();
                                                                 | label_9:
    0x00046500 ldr r6, [r4, 4]                                   |     r6 = *((r4 + 4));
    0x00046502 movs r5, 0                                        |     r5 = 0;
    0x00046504 blx 0xf4a4                                        |     r0 = fcn_0000f4a4 ();
    0x00046508 mov r1, r0                                        |     r1 = r0;
    0x0004650a mov r0, r6                                        |     r0 = r6;
    0x0004650c blx 0xe18c                                        |     cert_set_init ();
    0x00046510 ldr r1, [r4, 8]                                   |     r1 = *((r4 + 8));
    0x00046512 mov r3, sl                                        |     r3 = sl;
    0x00046514 mov r2, fp                                        |     r2 = fp;
    0x00046516 str r5, [sp]                                      |     *(sp) = r5;
    0x00046518 blx 0xfb30                                        |     g_date_time_unref ();
    0x0004651c ldr r0, [r4, 8]                                   |     r0 = *((r4 + 8));
    0x0004651e mov r3, r5                                        |     r3 = r5;
    0x00046520 mov r2, sl                                        |     r2 = sl;
    0x00046522 mov r1, fp                                        |     r1 = fp;
    0x00046524 blx 0xdac8                                        |     r0 = fcn_0000dac8 ();
    0x00046528 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0004652a bne.w 0x4622e                                     |         goto label_7;
                                                                 |     }
    0x0004652e ldr r5, [pc, 0x148]                               |     
    0x00046530 add r5, pc                                        |     r5 = 0x8cbae;
    0x00046532 ldr r1, [r5]                                      |     r1 = *(0x8cbae);
                                                                 |     if (r1 == 0) {
    0x00046534 cbnz r1, 0x46542                                  |         
    0x00046536 ldr r0, [pc, 0x144]                               |         
    0x00046538 add r0, pc                                        |         r0 = 0x8cbba;
    0x0004653a blx 0xf8c0                                        |         r0 = g_strconcat ();
    0x0004653e mov r1, r0                                        |         r1 = r0;
    0x00046540 str r0, [r5]                                      |         *(r5) = r0;
                                                                 |     }
    0x00046542 ldr r3, [pc, 0x13c]                               |     
    0x00046544 movs r2, 0                                        |     r2 = 0;
    0x00046546 mov r0, r8                                        |     r0 = r8;
    0x00046548 add r3, pc                                        |     r3 = 0x8cbce;
    0x0004654a blx 0x10398                                       |     fcn_00010398 ();
    0x0004654e b 0x462e8                                         |     goto label_8;
                                                                 | label_30:
    0x00046550 ldr r6, [pc, 0x130]                               |     
    0x00046552 add r6, pc                                        |     r6 = 0x8cbda;
    0x00046554 ldr r1, [r6]                                      |     r1 = *(0x8cbda);
                                                                 |     if (r1 == 0) {
    0x00046556 cbnz r1, 0x46564                                  |         
    0x00046558 ldr r0, [pc, 0x12c]                               |         
    0x0004655a add r0, pc                                        |         r0 = 0x8cbe6;
    0x0004655c blx 0xf8c0                                        |         r0 = g_strconcat ();
    0x00046560 mov r1, r0                                        |         r1 = r0;
    0x00046562 str r0, [r6]                                      |         *(r6) = r0;
                                                                 |     }
    0x00046564 ldr r3, [pc, 0x124]                               |     
    0x00046566 movs r2, 0                                        |     r2 = 0;
    0x00046568 mov r0, r8                                        |     r0 = r8;
    0x0004656a add r3, pc                                        |     r3 = 0x8cbfa;
    0x0004656c blx 0x10398                                       |     fcn_00010398 ();
    0x00046570 b 0x462aa                                         |     goto label_5;
                                                                 | label_28:
    0x00046572 ldr r1, [pc, 0x11c]                               |     
    0x00046574 mov r0, r5                                        |     r0 = r5;
    0x00046576 add r1, pc                                        |     r1 = 0x8cc0c;
    0x00046578 blx 0x1061c                                       |     fcn_0001061c ();
    0x0004657c ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x0004657e clz r0, r0                                        |     r0 &= r0;
    0x00046582 lsrs r0, r0, 5                                    |     r0 >>= 5;
    0x00046584 cmp r3, 0                                         |     
    0x00046586 it eq                                             |     
                                                                 |     if (r3 != 0) {
    0x00046588 moveq r0, 0                                       |         r0 = 0;
                                                                 |     }
    0x0004658a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0004658c beq 0x46500                                       |         goto label_9;
                                                                 |     }
    0x0004658e ldr r5, [r4, 4]                                   |     r5 = *((r4 + 4));
    0x00046590 blx 0xf4a4                                        |     r0 = fcn_0000f4a4 ();
    0x00046594 mov r1, r0                                        |     r1 = r0;
    0x00046596 mov r0, r5                                        |     r0 = r5;
    0x00046598 blx 0xe18c                                        |     cert_set_init ();
    0x0004659c ldr r5, [sp, 0x18]                                |     r5 = var_18h;
    0x0004659e mov r3, fp                                        |     r3 = fp;
    0x000465a0 ldr r1, [r4, 8]                                   |     r1 = *((r4 + 8));
    0x000465a2 strd sl, r6, [sp]                                 |     __asm ("strd sl, r6, [sp]");
    0x000465a6 mov r2, r5                                        |     r2 = r5;
    0x000465a8 blx 0xfb30                                        |     g_date_time_unref ();
    0x000465ac ldr r0, [r4, 8]                                   |     r0 = *((r4 + 8));
    0x000465ae mov r3, sl                                        |     r3 = sl;
    0x000465b0 mov r2, fp                                        |     r2 = fp;
    0x000465b2 mov r1, r5                                        |     r1 = r5;
    0x000465b4 str r6, [sp]                                      |     *(sp) = r6;
    0x000465b6 blx 0xdac8                                        |     r0 = fcn_0000dac8 ();
    0x000465ba cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000465bc bne.w 0x4622e                                     |         goto label_7;
                                                                 |     }
    0x000465c0 ldr r5, [pc, 0xd0]                                |     
    0x000465c2 add r5, pc                                        |     r5 = 0x8cc5a;
    0x000465c4 ldr r1, [r5]                                      |     r1 = *(0x8cc5a);
                                                                 |     if (r1 == 0) {
    0x000465c6 cbnz r1, 0x465d4                                  |         
    0x000465c8 ldr r0, [pc, 0xcc]                                |         
    0x000465ca add r0, pc                                        |         r0 = 0x8cc66;
    0x000465cc blx 0xf8c0                                        |         r0 = g_strconcat ();
    0x000465d0 mov r1, r0                                        |         r1 = r0;
    0x000465d2 str r0, [r5]                                      |         *(r5) = r0;
                                                                 |     }
    0x000465d4 ldr r3, [pc, 0xc4]                                |     
    0x000465d6 movs r2, 0                                        |     r2 = 0;
    0x000465d8 mov r0, r8                                        |     r0 = r8;
    0x000465da add r3, pc                                        |     r3 = 0x8cc7a;
    0x000465dc blx 0x10398                                       |     fcn_00010398 ();
    0x000465e0 b 0x462e8                                         |     goto label_8;
                                                                 | label_23:
    0x000465e2 bl 0x45a68                                        |     fcn_00045a68 ();
    0x000465e6 ldr r3, [pc, 0xb8]                                |     
    0x000465e8 mov r1, r0                                        |     r1 = r0;
    0x000465ea mov r2, fp                                        |     r2 = fp;
    0x000465ec mov r0, r8                                        |     r0 = r8;
    0x000465ee add r3, pc                                        |     r3 = 0x8cc94;
    0x000465f0 blx 0x10398                                       |     fcn_00010398 ();
    0x000465f2 mrc p6, 6, lr, c2, c2, 3                          |     __asm ("mrc p6, 6, lr, c2, c2, 3");
                                                                 | label_21:
    0x000465f6 bl 0x45a68                                        |     fcn_00045a68 ();
    0x000465fa ldr r3, [pc, 0xa8]                                |     
    0x000465fc mov r1, r0                                        |     r1 = r0;
    0x000465fe mov r2, sb                                        |     r2 = sb;
    0x00046600 mov r0, r8                                        |     r0 = r8;
    0x00046602 str.w fp, [sp]                                    |     __asm ("str.w fp, [sp]");
    0x00046606 add r3, pc                                        |     r3 = 0x8ccb0;
    0x00046608 blx 0x10398                                       |     fcn_00010398 ();
    0x0004660c b 0x460b4                                         |     goto label_10;
                                                                 | label_22:
    0x0004660e bl 0x45a68                                        |     fcn_00045a68 ();
    0x00046612 ldr r3, [pc, 0x94]                                |     
    0x00046614 mov r1, r0                                        |     r1 = r0;
    0x00046616 mov r2, sl                                        |     r2 = sl;
    0x00046618 mov r0, r8                                        |     r0 = r8;
    0x0004661a add r3, pc                                        |     r3 = 0x8ccc8;
    0x0004661c blx 0x10398                                       |     fcn_00010398 ();
    0x00046620 b 0x462e2                                         |     goto label_11;
                                                                 | label_29:
    0x00046622 bl 0x45a68                                        |     fcn_00045a68 ();
    0x00046626 ldr r3, [pc, 0x84]                                |     
    0x00046628 mov r1, r0                                        |     r1 = r0;
    0x0004662a mov r2, sb                                        |     r2 = sb;
    0x0004662c mov r0, r8                                        |     r0 = r8;
    0x0004662e add r3, pc                                        |     r3 = 0x8cce0;
    0x00046630 blx 0x10398                                       |     fcn_00010398 ();
    0x00046634 b 0x462b0                                         |     goto label_12;
                                                                 | label_27:
    0x00046636 bl 0x45a68                                        |     fcn_00045a68 ();
    0x0004663a ldr r3, [pc, 0x74]                                |     
    0x0004663c mov r1, r0                                        |     r1 = r0;
    0x0004663e ldr r2, [sp, 0x18]                                |     r2 = var_18h;
    0x00046640 mov r0, r8                                        |     r0 = r8;
    0x00046642 add r3, pc                                        |     r3 = 0x8ccf8;
    0x00046644 blx 0x10398                                       |     fcn_00010398 ();
    0x00046648 b 0x462d6                                         |     goto label_13;
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x47598 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00047598 ()                                      | void fcn_00047598 (int16_t arg_ch, int16_t arg1, int16_t arg2) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     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;
                                                                 |     int16_t var_1h;
                                                                 |     int16_t var_12dh;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00047598 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x0004759c mov r6, r0                                        |     r6 = r0;
    0x0004759e ldr r0, [pc, 0x3bc]                               |     
    0x000475a0 sub sp, 0x134                                     |     
    0x000475a2 movs r3, 0                                        |     r3 = 0;
    0x000475a4 mov sb, r1                                        |     sb = r1;
    0x000475a6 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x000475a8 add r7, sp, 0x10                                  |     r7 += var_10h;
    0x000475aa add r0, pc                                        |     r0 = 0x8ef0c;
    0x000475ac add r5, sp, 0xc                                   |     r5 += var_ch;
    0x000475ae blx 0xe07c                                        |     r0 = fcn_0000e07c ();
    0x000475b2 mov r4, r0                                        |     r4 = r0;
    0x000475b4 mov r0, r6                                        |     r0 = r6;
    0x000475b6 bl 0x48c0c                                        |     fcn_00048c0c (r0);
    0x000475ba ldr r1, [pc, 0x3a4]                               |     
    0x000475bc mov r2, r7                                        |     r2 = r7;
    0x000475be mov r6, r0                                        |     r6 = r0;
    0x000475c0 add r1, pc                                        |     r1 = 0x8ef26;
    0x000475c2 blx 0xeb58                                        |     r0 = g_regex_get_pattern ();
    0x000475c6 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000475c8 bne.w 0x47802                                     |         goto label_7;
                                                                 |     }
                                                                 | label_0:
    0x000475cc ldr r1, [pc, 0x394]                               |     
    0x000475ce add r7, sp, 0x14                                  |     r7 += var_14h;
    0x000475d0 mov r2, r7                                        |     r2 = r7;
    0x000475d2 mov r0, r6                                        |     r0 = r6;
    0x000475d4 add r1, pc                                        |     r1 = 0x8ef3c;
    0x000475d6 blx 0xeb58                                        |     r0 = g_regex_get_pattern ();
    0x000475da cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x000475dc bne.w 0x4781e                                     |         goto label_8;
                                                                 |     }
    0x000475de strh r7, [r3, 8]                                  |     *((r3 + 8)) = r7;
                                                                 | label_2:
    0x000475e0 ldr r1, [pc, 0x384]                               |     
    0x000475e2 mov r0, r6                                        |     r0 = r6;
    0x000475e4 add r1, pc                                        |     r1 = 0x8ef50;
    0x000475e6 blx 0x10304                                       |     r0 = g_value_get_boxed ();
                                                                 |     if (r0 != 0) {
    0x000475ea cbz r0, 0x47614                                   |         
    0x000475ec movs r1, 0                                        |         r1 = 0;
    0x000475ee blx 0xddf4                                        |         fcn_0000ddf4 ();
    0x000475f2 ldr r1, [pc, 0x378]                               |         
    0x000475f4 mov r7, r0                                        |         r7 = r0;
    0x000475f6 mov r0, r4                                        |         r0 = r4;
    0x000475f8 add r1, pc                                        |         r1 = 0x8ef6a;
    0x000475fa blx 0x101d4                                       |         fcn_000101d4 ();
    0x000475fe mov r1, r7                                        |         r1 = r7;
    0x00047600 blx 0x101d4                                       |         fcn_000101d4 ();
    0x00047604 ldr r1, [pc, 0x368]                               |         
    0x00047606 add r1, pc                                        |         r1 = 0x8ef7a;
    0x00047608 blx 0x101d4                                       |         r0 = fcn_000101d4 ();
    0x0004760c mov r4, r0                                        |         r4 = r0;
    0x0004760e mov r0, r7                                        |         r0 = r7;
    0x00047610 blx 0xf3e8                                        |         fcn_0000f3e8 ();
                                                                 |     }
    0x00047614 ldr r1, [pc, 0x35c]                               |     
    0x00047616 mov r0, r6                                        |     r0 = r6;
    0x00047618 add r1, pc                                        |     r1 = 0x8ef90;
    0x0004761a blx 0x10304                                       |     r0 = g_value_get_boxed ();
                                                                 |     if (r0 != 0) {
    0x0004761e cbz r0, 0x47648                                   |         
    0x00047620 movs r1, 0                                        |         r1 = 0;
    0x00047622 blx 0xddf4                                        |         fcn_0000ddf4 ();
    0x00047626 ldr r1, [pc, 0x350]                               |         
    0x00047628 mov r7, r0                                        |         r7 = r0;
    0x0004762a mov r0, r4                                        |         r0 = r4;
    0x0004762c add r1, pc                                        |         r1 = 0x8efaa;
    0x0004762e blx 0x101d4                                       |         fcn_000101d4 ();
    0x00047632 mov r1, r7                                        |         r1 = r7;
    0x00047634 blx 0x101d4                                       |         fcn_000101d4 ();
    0x00047638 ldr r1, [pc, 0x340]                               |         
    0x0004763a add r1, pc                                        |         r1 = 0x8efba;
    0x0004763c blx 0x101d4                                       |         r0 = fcn_000101d4 ();
    0x00047640 mov r4, r0                                        |         r4 = r0;
    0x00047642 mov r0, r7                                        |         r0 = r7;
    0x00047644 blx 0xf3e8                                        |         fcn_0000f3e8 ();
                                                                 |     }
    0x00047648 ldr r1, [pc, 0x334]                               |     
    0x0004764a add r7, sp, 0x18                                  |     r7 += var_18h;
    0x0004764c mov r2, r7                                        |     r2 = r7;
    0x0004764e mov r0, r6                                        |     r0 = r6;
    0x00047650 add r1, pc                                        |     r1 = 0x8efd4;
    0x00047652 blx 0xeb58                                        |     r0 = g_regex_get_pattern ();
    0x00047656 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00047658 bne.w 0x47810                                     |         goto label_9;
                                                                 |     }
                                                                 | label_1:
    0x0004765c ldr r1, [pc, 0x324]                               |     
    0x0004765e add r7, sp, 0x1c                                  |     r7 += var_1ch;
    0x00047660 mov r2, r7                                        |     r2 = r7;
    0x00047662 mov r0, r6                                        |     r0 = r6;
    0x00047664 add r1, pc                                        |     r1 = 0x8efec;
    0x00047666 blx 0xeb58                                        |     r0 = g_regex_get_pattern ();
    0x0004766a cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0004766c bne.w 0x4784a                                     |         goto label_10;
                                                                 |     }
                                                                 | label_5:
    0x00047670 ldr r1, [pc, 0x314]                               |     
    0x00047672 add r7, sp, 0x20                                  |     r7 += var_20h;
    0x00047674 mov r2, r7                                        |     r2 = r7;
    0x00047676 mov r0, r6                                        |     r0 = r6;
    0x00047678 add r1, pc                                        |     r1 = 0x8f004;
    0x0004767a blx 0xeb58                                        |     r0 = g_regex_get_pattern ();
    0x0004767e cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00047680 bne.w 0x4783c                                     |         goto label_11;
                                                                 |     }
                                                                 | label_4:
    0x00047684 ldr r1, [pc, 0x304]                               |     
    0x00047686 add.w r8, sp, 0x24                                |     r8 += var_24h;
    0x0004768a mov r0, r6                                        |     r0 = r6;
    0x0004768c mov r2, r8                                        |     r2 = r8;
    0x0004768e add r1, pc                                        |     r1 = 0x8f01e;
    0x00047690 blx 0x101f8                                       |     r0 = fcn_000101f8 ();
    0x00047694 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00047696 bne.w 0x4782c                                     |         goto label_12;
                                                                 |     }
                                                                 | label_3:
    0x0004769a ldr r1, [pc, 0x2f4]                               |     
    0x0004769c mov r0, r4                                        |     r0 = r4;
    0x0004769e add r1, pc                                        |     r1 = 0x8f034;
    0x000476a0 blx 0x101d4                                       |     fcn_000101d4 ();
    0x000476a4 movs r1, 0                                        |     r1 = 0;
    0x000476a6 blx 0xfa2c                                        |     fcn_0000fa2c ();
    0x000476a8 strd r2, r1, [r2, 4]                              |     __asm ("strd r2, r1, [r2, 4]");
    0x000476ac mov r3, r5                                        |     r3 = r5;
    0x000476ae mov sl, r0                                        |     sl = r0;
    0x000476b0 movs r2, 0                                        |     r2 = 0;
    0x000476b2 mov r0, r1                                        |     r0 = r1;
    0x000476b4 blx 0xe710                                        |     r0 = fcn_0000e710 ();
    0x000476b8 mov r6, r0                                        |     r6 = r0;
    0x000476ba cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000476bc beq.w 0x47908                                     |         goto label_13;
                                                                 |     }
    0x000476c0 ldr.w fp, [pc, 0x2d0]                             |     
    0x000476c4 add fp, pc                                        |     fp = 0x8f05c;
    0x000476c6 ldr.w r0, [fp, 0xc]                               |     r0 = *(arg_ch);
    0x000476ca blx 0xfb18                                        |     g_once_init_leave ();
    0x000476ce mov r3, r5                                        |     r3 = r5;
    0x000476d0 mov r1, r0                                        |     r1 = r0;
    0x000476d2 mov r4, r0                                        |     r4 = r0;
    0x000476d4 movs r2, 0                                        |     r2 = 0;
    0x000476d6 mov r0, r6                                        |     r0 = r6;
    0x000476d8 blx 0xe530                                        |     r0 = fcn_0000e530 ();
    0x000476dc mov r7, r0                                        |     r7 = r0;
    0x000476de cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000476e0 beq.w 0x47858                                     |         goto label_14;
                                                                 |     }
    0x000476e4 mov r0, r4                                        |     r0 = r4;
    0x000476e6 movs r4, 0                                        |     r4 = 0;
    0x000476e8 blx 0xfba0                                        |     fcn_0000fba0 ();
    0x000476ec mov r0, sl                                        |     r0 = sl;
    0x000476ee blx 0xfbac                                        |     fcn_0000fbac ();
    0x000476f0 orrs.w r6, lr, r7, lsl 16                         |     r6 = lr | (r7 << 16);
    0x000476f4 b 0x476fa                                         |     
                                                                 |     while (r0 >= 0) {
    0x000476f6 cmp r7, r4                                        |         
                                                                 |         if (r7 < r4) {
    0x000476f8 bls 0x47766                                       |             goto label_15;
                                                                 |         }
    0x000476fa subs r2, r7, r4                                   |         r2 = r7 - r4;
    0x000476fc add.w r1, sl, r4                                  |         r1 = sl + r4;
    0x00047700 movs r3, 0                                        |         r3 = 0;
    0x00047702 mov r0, r6                                        |         r0 = r6;
    0x00047704 str r5, [sp]                                      |         *(sp) = r5;
    0x00047706 blx 0xf054                                        |         r0 = fcn_0000f054 ();
    0x0004770a cmp r0, 0                                         |         
    0x0004770c add r4, r0                                        |         r4 += r0;
    0x0004770e bge 0x476f6                                       |         
                                                                 |     }
    0x00047710 bl 0x65d6c                                        |     fcn_00065d6c ();
    0x00047714 ldr r3, [r5]                                      |     r3 = *(r5);
    0x00047716 mov r1, r0                                        |     r1 = r0;
    0x00047718 ldr.w r8, [pc, 0x27c]                             |     
    0x0004771a strh r4, [r7, 0x12]                               |     *((r7 + 0x12)) = r4;
    0x0004771c mov r0, sb                                        |     r0 = sb;
    0x0004771e movs r2, 0                                        |     r2 = 0;
    0x00047720 ldr r3, [r3, 8]                                   |     r3 = *((r3 + 8));
    0x00047722 mov r7, r2                                        |     r7 = r2;
    0x00047724 add r8, pc                                        |     r8 = 0x8f0c0;
    0x00047726 str r3, [sp, 4]                                   |     var_4h = r3;
    0x00047728 ldr r3, [pc, 0x270]                               |     
    0x0004772a ldr.w r4, [r8, 0xc]                               |     r4 = imp.g_direct_hash;
    0x0004772e add r3, pc                                        |     r3 = 0x8f0ce;
    0x00047730 str r4, [sp]                                      |     *(sp) = r4;
    0x00047732 blx 0x10398                                       |     fcn_00010398 ();
    0x00047736 ldr r2, [r5]                                      |     r2 = *(r5);
    0x00047738 movs r1, 0x20                                     |     r1 = 0x20;
    0x0004773a ldr.w r3, [r8, 0xc]                               |     r3 = imp.g_direct_hash;
    0x0004773e mov r0, r7                                        |     r0 = r7;
    0x00047740 ldr r2, [r2, 8]                                   |     r2 = *((r2 + 8));
    0x00047742 str r2, [sp]                                      |     *(sp) = r2;
    0x00047744 ldr r2, [pc, 0x258]                               |     
    0x00047746 add r2, pc                                        |     r2 = 0x8f0ea;
    0x00047748 blx 0xe318                                        |     gst_element_error_printf ()
    0x0004774c mov r0, r5                                        |     r0 = r5;
    0x0004774e blx 0xf95c                                        |     gst_mini_object_replace ();
    0x00047752 mov r0, r6                                        |     r0 = r6;
    0x00047754 blx 0xfba0                                        |     fcn_0000fba0 ();
    0x00047758 mov r0, sl                                        |     r0 = sl;
    0x0004775a blx 0xf3e8                                        |     fcn_0000f3e8 ();
    0x0004775e mov r0, r7                                        |     r0 = r7;
    0x00047760 add sp, 0x134                                     |     
    0x00047762 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_15:
    0x00047766 mov r0, sl                                        |     r0 = sl;
    0x00047768 mov r7, r8                                        |     r7 = r8;
    0x0004776a addw sl, sp, 0x12d                                |     __asm ("addw sl, var_12dh");
    0x0004776e blx 0xf3e8                                        |     fcn_0000f3e8 ();
    0x00047772 b 0x47782                                         |     
                                                                 |     while (fp >= r0) {
    0x00047774 ldrb r4, [r4]                                     |         r4 = *(r4);
    0x00047776 cmp r4, 0                                         |         
                                                                 |         if (r4 == 0) {
    0x00047778 beq.w 0x478ac                                     |             goto label_16;
                                                                 |         }
    0x0004777c cmp r7, sl                                        |         
                                                                 |         if (r7 == sl) {
    0x0004777e beq.w 0x47946                                     |             goto label_17;
                                                                 |         }
    0x00047782 mov r1, r7                                        |         r1 = r7;
    0x00047784 movs r3, 0                                        |         r3 = 0;
    0x00047786 movs r2, 1                                        |         r2 = 1;
    0x00047788 mov r0, r6                                        |         r0 = r6;
    0x0004778a str r5, [sp]                                      |         *(sp) = r5;
    0x0004778c mov r4, r7                                        |         r4 = r7;
    0x0004778e blx 0xf8e4                                        |         r0 = g_variant_n_children ();
    0x00047792 subs.w fp, r0, 0                                  |         
    0x00047796 add.w r7, r7, 1                                   |         r7 += var_1h;
                                                                 |         if (fp == r0) {
    0x0004779a beq 0x477a0                                       |             goto label_18;
                                                                 |         }
    0x0004779c bge 0x47774                                       |         
                                                                 |     }
    0x0004779e b 0x477b2                                         |     goto label_6;
                                                                 | label_18:
    0x000477a0 blx 0xdcc4                                        |     gst_buffer_list_get ();
    0x000477a4 ldr r3, [pc, 0x1fc]                               |     
    0x000477a6 mov r1, r0                                        |     r1 = r0;
    0x000477a8 mov r2, fp                                        |     r2 = fp;
    0x000477aa mov r0, r5                                        |     r0 = r5;
    0x000477ac add r3, pc                                        |     r3 = 0x8f154;
    0x000477ae blx 0xe53c                                        |     fcn_0000e53c ();
                                                                 | label_6:
    0x000477b2 bl 0x65d6c                                        |     fcn_00065d6c ();
    0x000477b6 ldr r3, [r5]                                      |     r3 = *(r5);
    0x000477b8 mov r1, r0                                        |     r1 = r0;
    0x000477ba ldr.w r8, [pc, 0x1ec]                             |     
    0x000477be movs r2, 0                                        |     r2 = 0;
    0x000477c0 mov r0, sb                                        |     r0 = sb;
    0x000477c2 mov r7, r2                                        |     r7 = r2;
    0x000477c4 ldr r3, [r3, 8]                                   |     r3 = *((r3 + 8));
    0x000477c6 add r8, pc                                        |     r8 = 0x8f174;
    0x000477c8 str r3, [sp, 4]                                   |     var_4h = r3;
    0x000477ca ldr r3, [pc, 0x1e0]                               |     
    0x000477cc ldr.w r4, [r8, 0xc]                               |     r4 = imp.g_direct_hash;
    0x000477d0 add r3, pc                                        |     r3 = 0x8f182;
    0x000477d2 str r4, [sp]                                      |     *(sp) = r4;
    0x000477d4 blx 0x10398                                       |     fcn_00010398 ();
    0x000477d8 ldr r2, [r5]                                      |     r2 = *(r5);
    0x000477da movs r1, 0x20                                     |     r1 = 0x20;
    0x000477dc ldr.w r3, [r8, 0xc]                               |     r3 = imp.g_direct_hash;
    0x000477e0 mov r0, r7                                        |     r0 = r7;
    0x000477e2 ldr r2, [r2, 8]                                   |     r2 = *((r2 + 8));
    0x000477e4 str r2, [sp]                                      |     *(sp) = r2;
    0x000477e6 ldr r2, [pc, 0x1c8]                               |     
    0x000477e8 add r2, pc                                        |     r2 = 0x8f19e;
    0x000477ea blx 0xe318                                        |     gst_element_error_printf ()
    0x000477ee mov r0, r5                                        |     r0 = r5;
    0x000477f0 blx 0xf95c                                        |     gst_mini_object_replace ();
    0x000477f4 mov r0, r6                                        |     r0 = r6;
    0x000477f6 blx 0xfba0                                        |     fcn_0000fba0 ();
                                                                 |     do {
    0x000477fa mov r0, r7                                        |         r0 = r7;
    0x000477fc add sp, 0x134                                     |         
    0x000477fe pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_7:
    0x00047802 ldr r1, [pc, 0x1b0]                               |         
    0x00047804 mov r0, r4                                        |         r0 = r4;
    0x00047806 ldr r2, [sp, 0x10]                                |         r2 = var_10h;
    0x00047808 add r1, pc                                        |         r1 = 0x8f1c2;
    0x0004780a blx 0x1038c                                       |         fcn_0001038c ();
    0x0004780e b 0x475cc                                         |         goto label_0;
                                                                 | label_9:
    0x00047810 ldr r1, [pc, 0x1a4]                               |         
    0x00047812 mov r0, r4                                        |         r0 = r4;
    0x00047814 ldr r2, [sp, 0x18]                                |         r2 = var_18h;
    0x00047816 add r1, pc                                        |         r1 = 0x8f1d2;
    0x00047818 blx 0x1038c                                       |         fcn_0001038c ();
    0x0004781c b 0x4765c                                         |         goto label_1;
                                                                 | label_8:
    0x0004781e ldr r1, [pc, 0x19c]                               |         
    0x00047820 mov r0, r4                                        |         r0 = r4;
    0x00047822 ldr r2, [sp, 0x14]                                |         r2 = var_14h;
    0x00047824 add r1, pc                                        |         r1 = 0x8f1e6;
    0x00047826 blx 0x1038c                                       |         fcn_0001038c ();
    0x0004782a b 0x475e0                                         |         goto label_2;
                                                                 | label_12:
    0x0004782c ldr r1, [pc, 0x190]                               |         
    0x0004782e mov r0, r4                                        |         r0 = r4;
    0x00047830 ldr.w r2, [r8]                                    |         r2 = *(r8);
    0x00047834 add r1, pc                                        |         r1 = 0x8f1f8;
    0x00047836 blx 0x1038c                                       |         fcn_0001038c ();
    0x0004783a b 0x4769a                                         |         goto label_3;
                                                                 | label_11:
    0x0004783c ldr r1, [pc, 0x184]                               |         
    0x0004783e mov r0, r4                                        |         r0 = r4;
    0x00047840 ldr r2, [sp, 0x20]                                |         r2 = var_20h;
    0x00047842 add r1, pc                                        |         r1 = 0x8f20a;
    0x00047844 blx 0x1038c                                       |         fcn_0001038c ();
    0x00047848 b 0x47684                                         |         goto label_4;
                                                                 | label_10:
    0x0004784a ldr r1, [pc, 0x17c]                               |         
    0x0004784c mov r0, r4                                        |         r0 = r4;
    0x0004784e ldr r2, [sp, 0x1c]                                |         r2 = var_1ch;
    0x00047850 add r1, pc                                        |         r1 = 0x8f21e;
    0x00047852 blx 0x1038c                                       |         fcn_0001038c ();
    0x00047856 b 0x47670                                         |         goto label_5;
                                                                 | label_14:
    0x00047858 bl 0x65d6c                                        |         fcn_00065d6c ();
    0x0004785c ldr r3, [r5]                                      |         r3 = *(r5);
    0x0004785e mov r1, r0                                        |         r1 = r0;
    0x00047860 mov r2, r7                                        |         r2 = r7;
    0x00047862 mov r0, sb                                        |         r0 = sb;
    0x00047864 ldr r3, [r3, 8]                                   |         r3 = *((r3 + 8));
    0x00047866 str r3, [sp, 4]                                   |         var_4h = r3;
    0x00047868 ldr.w r3, [fp, 0xc]                               |         r3 = *(arg_ch);
    0x0004786a adds r0, 0xc                                      |         r0 += 0xc;
    0x0004786c str r3, [sp]                                      |         *(sp) = r3;
    0x0004786e ldr r3, [pc, 0x15c]                               |         
    0x00047870 add r3, pc                                        |         r3 = 0x8f242;
    0x00047872 blx 0x10398                                       |         fcn_00010398 ();
    0x00047876 ldr r2, [r5]                                      |         r2 = *(r5);
    0x00047878 movs r1, 0x20                                     |         r1 = 0x20;
    0x0004787a ldr.w r3, [fp, 0xc]                               |         r3 = *(arg_ch);
    0x0004787e mov r0, r7                                        |         r0 = r7;
    0x00047880 ldr r2, [r2, 8]                                   |         r2 = *((r2 + 8));
    0x00047882 str r2, [sp]                                      |         *(sp) = r2;
    0x00047884 ldr r2, [pc, 0x148]                               |         
    0x00047886 add r2, pc                                        |         r2 = 0x8f25a;
    0x00047888 blx 0xe318                                        |         gst_element_error_printf ()
    0x0004788c mov r0, r5                                        |         r0 = r5;
    0x0004788e blx 0xf95c                                        |         gst_mini_object_replace ();
    0x00047892 mov r0, r4                                        |         r0 = r4;
    0x00047894 blx 0xfba0                                        |         fcn_0000fba0 ();
    0x00047898 mov r0, r6                                        |         r0 = r6;
    0x0004789a blx 0xfba0                                        |         fcn_0000fba0 ();
    0x0004789e mov r0, sl                                        |         r0 = sl;
    0x000478a0 blx 0xf3e8                                        |         fcn_0000f3e8 ();
    0x000478a4 mov r0, r7                                        |         r0 = r7;
    0x000478a6 add sp, 0x134                                     |         
    0x000478a8 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_16:
    0x000478ac ldr r1, [pc, 0x124]                               |         
    0x000478ae mov r0, r8                                        |         r0 = r8;
    0x000478b0 add r1, pc                                        |         r1 = 0x8f288;
    0x000478b2 blx 0x1061c                                       |         r0 = fcn_0001061c ();
                                                                 |         if (r0 == 0) {
    0x000478b6 cbnz r0, 0x478c8                                  |             
    0x000478b8 mov r0, r6                                        |             r0 = r6;
    0x000478ba movs r7, 1                                        |             r7 = 1;
    0x000478bc blx 0xfba0                                        |             fcn_0000fba0 ();
    0x000478c0 mov r0, r7                                        |             r0 = r7;
    0x000478c2 add sp, 0x134                                     |             
    0x000478c4 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |             
                                                                 |         }
    0x000478c8 bl 0x65d6c                                        |         r0 = fcn_00065d6c ();
    0x000478cc mov r1, r0                                        |         r1 = r0;
    0x000478ce mov r0, sb                                        |         r0 = sb;
    0x000478d0 ldr.w sb, [pc, 0x104]                             |         
    0x000478d4 mov r2, r4                                        |         r2 = r4;
    0x000478d6 str.w r8, [sp, 4]                                 |         __asm ("str.w r8, [var_4h]");
    0x000478da mov r7, r4                                        |         r7 = r4;
    0x000478dc ldr r3, [pc, 0xfc]                                |         
    0x000478de add sb, pc                                        |         sb = 0x8f2ba;
    0x000478e0 ldr.w r5, [sb, 0xc]                               |         r5 = imp.g_direct_hash;
    0x000478e4 add r3, pc                                        |         r3 = 0x8f2c4;
    0x000478e6 str r5, [sp]                                      |         *(sp) = r5;
    0x000478e8 blx 0x10398                                       |         fcn_00010398 ();
    0x000478ec ldr r2, [pc, 0xf0]                                |         
    0x000478ee mov r0, r4                                        |         r0 = r4;
    0x000478f0 ldr.w r3, [sb, 0xc]                               |         r3 = imp.g_direct_hash;
    0x000478f4 movs r1, 0x20                                     |         r1 = 0x20;
    0x000478f6 str.w r8, [sp]                                    |         __asm ("str.w r8, [sp]");
    0x000478fa add r2, pc                                        |         r2 = 0x8f2de;
    0x000478fc blx 0xe318                                        |         gst_element_error_printf ()
    0x00047900 mov r0, r6                                        |         r0 = r6;
    0x00047902 blx 0xfba0                                        |         fcn_0000fba0 ();
    0x00047906 b 0x477fa                                         |         
                                                                 |     } while (1);
                                                                 | label_13:
    0x00047908 bl 0x65d6c                                        |     fcn_00065d6c ();
    0x0004790c ldr r3, [r5]                                      |     r3 = *(r5);
    0x0004790e mov r1, r0                                        |     r1 = r0;
    0x00047910 mov r2, r6                                        |     r2 = r6;
    0x00047912 mov r0, sb                                        |     r0 = sb;
    0x00047914 mov r7, r6                                        |     r7 = r6;
    0x00047916 ldr r3, [r3, 8]                                   |     r3 = *((r3 + 8));
    0x00047918 str r3, [sp]                                      |     *(sp) = r3;
    0x0004791a ldr r3, [pc, 0xc8]                                |     
    0x0004791c add r3, pc                                        |     
    0x0004791e blx 0x10398                                       |     fcn_00010398 ();
    0x00047922 ldr r3, [r5]                                      |     r3 = *(r5);
    0x00047924 movs r1, 0x20                                     |     r1 = 0x20;
    0x00047926 ldr r2, [pc, 0xc0]                                |     
    0x00047928 mov r0, r6                                        |     r0 = r6;
    0x0004792a ldr r3, [r3, 8]                                   |     r3 = imp.g_direct_hash;
    0x0004792c add r2, pc                                        |     r2 = 0x8f31a;
    0x0004792e blx 0xe318                                        |     gst_element_error_printf ()
    0x00047932 mov r0, r5                                        |     r0 = r5;
    0x00047934 blx 0xf95c                                        |     gst_mini_object_replace ();
    0x00047938 mov r0, sl                                        |     r0 = sl;
    0x0004793a blx 0xf3e8                                        |     fcn_0000f3e8 ();
    0x0004793e mov r0, r7                                        |     r0 = r7;
    0x00047940 add sp, 0x134                                     |     
    0x00047942 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_17:
    0x00047946 blx 0xdcc4                                        |     gst_buffer_list_get ();
    0x0004794a ldr r3, [pc, 0xa0]                                |     
    0x0004794c mov r1, r0                                        |     r1 = r0;
    0x0004794e movs r2, 0                                        |     r2 = 0;
    0x00047950 mov r0, r5                                        |     r0 = r5;
    0x00047952 add r3, pc                                        |     r3 = 0x8f344;
    0x00047954 blx 0xe53c                                        |     fcn_0000e53c ();
    0x00047958 b 0x477b2                                         |     goto label_6;
                                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x4bcf0 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.0004bcf0 ()                              | void fcn_0004bcf0 (int16_t arg_38h, int16_t arg_3ch, int16_t arg_40h, int16_t arg_44h, int16_t arg_48h, int16_t arg_4ch, int16_t arg_50h, 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_1ch;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
                                                         |     r2 = arg3;
                                                         |     r3 = arg4;
    0x0004bcf0 push.w {r4, r5, r6, r7, r8, lr}           |     
    0x0004bcf4 sub sp, 0x20                              |     
    0x0004bcf6 ldr r7, [sp, 0x40]                        |     r7 = *(arg_40h);
    0x0004bcf8 cmp r7, 0                                 |     
                                                         |     if (r7 == 0) {
    0x0004bcfa beq 0x4bd7c                               |         goto label_1;
                                                         |     }
    0x0004bcfc mov r8, r0                                |     r8 = r0;
    0x0004bcfe mov r0, r7                                |     r0 = r7;
    0x0004bd00 mov r5, r2                                |     r5 = r2;
    0x0004bd02 mov r6, r3                                |     r6 = r3;
    0x0004bd04 mov r4, r1                                |     r4 = r1;
    0x0004bd06 blx 0xfc3c                                |     fcn_0000fc3c ();
    0x0004bd0a ldr r2, [sp, 0x4c]                        |     r2 = *(arg_4ch);
    0x0004bd0c mov r3, r0                                |     r3 = r0;
                                                         |     if (r2 == 0) {
    0x0004bd0e cbz r2, 0x4bd5a                           |         goto label_2;
                                                         |     }
    0x0004bd10 str r0, [sp, 4]                           |     var_4h = r0;
    0x0004bd12 mov r0, r4                                |     r0 = r4;
    0x0004bd14 ldr r4, [sp, 0x48]                        |     r4 = *(arg_48h);
    0x0004bd16 mov r2, r6                                |     r2 = r6;
    0x0004bd18 ldr r3, [sp, 0x38]                        |     r3 = *(arg_38h);
    0x0004bd1a mov r1, r5                                |     r1 = r5;
    0x0004bd1c str r4, [sp, 0xc]                         |     var_ch = r4;
    0x0004bd1e ldr r4, [sp, 0x44]                        |     r4 = *(arg_44h);
    0x0004bd20 str r4, [sp, 8]                           |     var_8h = r4;
    0x0004bd22 ldr r4, [sp, 0x3c]                        |     r4 = *(arg_3ch);
    0x0004bd24 str r4, [sp]                              |     *(sp) = r4;
    0x0004bd26 ldr r4, [pc, 0xf8]                        |     
    0x0004bd28 add r4, pc                                |     r4 = 0x97b4e;
    0x0004bd2a str r4, [sp, 0x10]                        |     var_10h = r4;
    0x0004bd2c bl 0x4ee2c                                |     r0 = fcn_0004ee2c (r0, r1, r2, r3, r4, r5, r6);
    0x0004bd30 mov r4, r0                                |     r4 = r0;
                                                         |     do {
    0x0004bd32 cmp r4, 0                                 |         
                                                         |         if (r4 == 0) {
    0x0004bd34 beq 0x4bde6                               |             goto label_3;
                                                         |         }
    0x0004bd36 ldr r5, [pc, 0xec]                        |         
    0x0004bd38 add r5, pc                                |         r5 = 0x97b62;
    0x0004bd3a ldr r3, [r5, 0x18]                        |         r3 = *(0x97b7a);
                                                         |         if (r3 != 0) {
    0x0004bd3c cbz r3, 0x4bd52                           |             
    0x0004bd3e ldr r1, [sp, 0x50]                        |             r1 = *(arg_50h);
    0x0004bd40 mov r0, r4                                |             r0 = r4;
    0x0004bd42 bl 0x4f41c                                |             r0 = fcn_0004f41c (r0);
    0x0004bd46 mov r3, r0                                |             r3 = r0;
    0x0004bd48 cmp r0, 0                                 |             
                                                         |             if (r0 == 0) {
    0x0004bd4a beq 0x4bddc                               |                 goto label_4;
                                                         |             }
    0x0004bd4c ldr.w r3, [r8, 0x28]                      |             r3 = *((r8 + 0x28));
                                                         |             if (r3 != 0) {
    0x0004bd50 cbnz r3, 0x4bd96                          |                 goto label_5;
                                                         |             }
                                                         |         }
                                                         | label_0:
    0x0004bd52 mov r0, r4                                |         r0 = r4;
    0x0004bd54 add sp, 0x20                              |         
    0x0004bd56 pop.w {r4, r5, r6, r7, r8, pc}            |         
                                                         | label_2:
    0x0004bd5a mov r0, r4                                |         r0 = r4;
    0x0004bd5c ldr r4, [sp, 0x48]                        |         r4 = *(arg_48h);
    0x0004bd5e ldr r2, [sp, 0x4c]                        |         r2 = *(arg_4ch);
    0x0004bd60 mov r1, r5                                |         r1 = r5;
    0x0004bd62 str r4, [sp, 0xc]                         |         var_ch = r4;
    0x0004bd64 ldr r4, [sp, 0x44]                        |         r4 = *(arg_44h);
    0x0004bd66 str r2, [sp, 0x10]                        |         var_10h = r2;
    0x0004bd68 mov r2, r6                                |         r2 = r6;
    0x0004bd6a strd r3, r4, [sp, 4]                      |         __asm ("strd r3, r4, [var_4h]");
    0x0004bd6e ldrd r3, r4, [sp, 0x38]                   |         __asm ("ldrd r3, r4, [arg_38h]");
    0x0004bd72 str r4, [sp]                              |         *(sp) = r4;
    0x0004bd74 bl 0x4ee2c                                |         r0 = fcn_0004ee2c (r0, r1, r2, r3, r4, r5, r6);
    0x0004bd78 mov r4, r0                                |         r4 = r0;
    0x0004bd7a b 0x4bd32                                 |         
                                                         |     } while (1);
                                                         | label_1:
    0x0004bd7c ldr r1, [pc, 0xa8]                        |     
    0x0004bd7e mov r0, r7                                |     r0 = r7;
    0x0004bd80 ldr r2, [pc, 0xa8]                        |     
    0x0004bd82 mov r4, r7                                |     r4 = r7;
    0x0004bd84 add r1, pc                                |     r1 = 0x97bb0;
    0x0004bd86 add r2, pc                                |     r2 = 0x97bb6;
    0x0004bd88 adds r1, 0x30                             |     r1 += 0x30;
    0x0004bd8a blx 0xdc4c                                |     g_ascii_string_to_unsigned ();
    0x0004bd8e mov r0, r4                                |     r0 = r4;
    0x0004bd90 add sp, 0x20                              |     
    0x0004bd92 pop.w {r4, r5, r6, r7, r8, pc}            |     
                                                         | label_5:
    0x0004bd96 mov r0, r4                                |     r0 = r4;
    0x0004bd98 movs r7, 0                                |     r7 = 0;
    0x0004bd9a bl 0x4f698                                |     r0 = fcn_0004f698 (r0);
    0x0004bd9e mov r1, r0                                |     r1 = r0;
    0x0004bda0 ldr r0, [pc, 0x8c]                        |     
    0x0004bda2 add r0, pc                                |     r0 = 0x97bd6;
    0x0004bda4 blx 0xe678                                |     gst_rtsp_server_set_service ();
    0x0004bda8 ldr r6, [r5, 0x18]                        |     r6 = *((r5 + 0x18));
    0x0004bdaa mov r5, r0                                |     r5 = r0;
    0x0004bdac str r7, [sp, 0x1c]                        |     var_1ch = r7;
    0x0004bdae cmp r6, 0                                 |     
                                                         |     if (r6 == 0) {
    0x0004bdb0 beq 0x4bd52                               |         goto label_0;
                                                         |     }
    0x0004bdb2 bl 0x2058c                                |     fcn_0002058c ();
    0x0004bdb6 ldr r2, [pc, 0x7c]                        |     
    0x0004bdb8 mov r1, r7                                |     r1 = r7;
    0x0004bdba ldr r3, [r0, 4]                           |     r3 = *((r0 + 4));
    0x0004bdbc mov r0, r6                                |     r0 = r6;
    0x0004bdbe str r5, [sp, 4]                           |     var_4h = r5;
    0x0004bdc0 add r5, sp, 0x1c                          |     r5 += var_1ch;
    0x0004bdc2 add r2, pc                                |     r2 = 0x97bfc;
    0x0004bdc4 str r5, [sp, 8]                           |     var_8h = r5;
    0x0004bdc6 str r2, [sp]                              |     *(sp) = r2;
    0x0004bdc8 ldr r2, [pc, 0x6c]                        |     
    0x0004bdca add r2, pc                                |     r2 = 0x97c06;
    0x0004bdcc blx 0xf254                                |     g_dbus_interface_skeleton_get_object_path ();
    0x0004bdd0 ldr r0, [sp, 0x1c]                        |     r0 = var_1ch;
    0x0004bdd2 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x0004bdd4 beq 0x4bd52                               |         goto label_0;
                                                         |     }
    0x0004bdd6 blx 0xdec0                                |     fcn_0000dec0 ();
    0x0004bdda b 0x4bd52                                 |     goto label_0;
                                                         | label_4:
    0x0004bddc mov r0, r4                                |     r0 = r4;
    0x0004bdde mov r4, r3                                |     r4 = r3;
    0x0004bde0 blx 0xfba0                                |     fcn_0000fba0 ();
    0x0004bde4 b 0x4bd52                                 |     goto label_0;
                                                         | label_3:
    0x0004bde6 ldr r1, [pc, 0x54]                        |     
    0x0004bde8 add r1, pc                                |     r1 = 0x97c2a;
    0x0004bdea ldr r3, [r1, 0x10]                        |     r3 = *(0x97c3a);
                                                         |     if (r3 == 0) {
    0x0004bdec cbnz r3, 0x4bdfe                          |         
    0x0004bdee ldr r2, [pc, 0x50]                        |         
    0x0004bdf0 movs r3, 1                                |         r3 = 1;
    0x0004bdf2 ldr r0, [pc, 0x50]                        |         
    0x0004bdf4 adds r1, 0x10                             |         r1 += 0x10;
    0x0004bdf6 add r2, pc                                |         r2 = 0x97c3c;
    0x0004bdf8 add r0, pc                                |         r0 = 0x97c42;
    0x0004bdfa blx 0xdaa0                                |         fcn_0000daa0 ();
                                                         |     }
    0x0004bdfe ldr r1, [pc, 0x48]                        |     
    0x0004be00 movs r2, 0                                |     r2 = 0;
    0x0004be02 ldr r3, [pc, 0x48]                        |     
    0x0004be04 ldr r0, [sp, 0x50]                        |     r0 = *(arg_50h);
    0x0004be06 add r1, pc                                |     
    0x0004be08 ldr r1, [r1, 0x10]                        |     r1 = *(0x97c64);
    0x0004be0a add r3, pc                                |     r3 = 0x97c5c;
    0x0004be0c blx 0x10398                               |     fcn_00010398 ();
    0x0004be10 ldr r2, [pc, 0x3c]                        |     
    0x0004be12 movs r1, 0x20                             |     r1 = 0x20;
    0x0004be14 movs r0, 0                                |     r0 = 0;
    0x0004be16 add r2, pc                                |     r2 = 0x97c6a;
    0x0004be18 blx 0xe318                                |     gst_element_error_printf ()
    0x0004be1c b 0x4bd52                                 |     goto label_0;
                                                         | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x4be54 */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.0004be54 ()                                          | void fcn_0004be54 (int16_t arg_68h, int16_t arg_6ch, int16_t arg_70h, int16_t arg_74h, int16_t arg1, uint32_t arg2, uint32_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_24h;
                                                                     |     int16_t var_28h;
                                                                     |     int16_t var_2ch;
                                                                     |     int16_t var_30h;
                                                                     |     int16_t var_34h;
                                                                     |     int16_t var_38h;
                                                                     |     int16_t var_3ch;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
                                                                     |     r2 = arg3;
                                                                     |     r3 = arg4;
    0x0004be54 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x0004be58 sub sp, 0x44                                          |     
    0x0004be5a mov r5, r3                                            |     r5 = r3;
    0x0004be5c ldr r3, [sp, 0x70]                                    |     r3 = *(arg_70h);
    0x0004be5e movs r4, 0                                            |     r4 = 0;
    0x0004be60 mov.w sl, 1                                           |     sl = 1;
    0x0004be64 mov r6, r1                                            |     r6 = r1;
    0x0004be66 str.w sl, [sp, 0x30]                                  |     __asm ("str.w sl, [var_30h]");
    0x0004be6a str r4, [r3]                                          |     *(r3) = r4;
    0x0004be6c ldr r3, [pc, 0x38c]                                   |     
    0x0004be6e add r3, pc                                            |     r3 = 0x9806e;
    0x0004be70 str r3, [sp, 0x24]                                    |     var_24h = r3;
    0x0004be72 cmp r1, 0                                             |     
                                                                     |     if (r1 == 0) {
    0x0004be74 beq.w 0x4c12a                                         |         goto label_4;
                                                                     |     }
    0x0004be78 mov r7, r2                                            |     r7 = r2;
    0x0004be7a cmp r2, 0                                             |     
                                                                     |     if (r2 == 0) {
    0x0004be7c beq.w 0x4c142                                         |         goto label_5;
                                                                     |     }
    0x0004be80 cmp r5, 0                                             |     
                                                                     |     if (r5 == 0) {
    0x0004be82 beq.w 0x4c156                                         |         goto label_6;
                                                                     |     }
    0x0004be86 ldr r3, [sp, 0x68]                                    |     r3 = *(arg_68h);
    0x0004be88 subs r2, r3, 1                                        |     r2 = r3 - 1;
    0x0004be8a movw r3, 0xfffe                                       |     r3 = 0xfffe;
    0x0004be8e cmp r2, r3                                            |     
                                                                     |     if (r2 < r3) {
    0x0004be90 bls 0x4beaa                                           |         goto label_7;
                                                                     |     }
    0x0004be92 ldr r1, [pc, 0x36c]                                   |     
    0x0004be94 mov r0, r4                                            |     r0 = r4;
    0x0004be96 ldr r2, [pc, 0x36c]                                   |     
    0x0004be98 add r1, pc                                            |     r1 = 0x9809e;
    0x0004be9a add r2, pc                                            |     r2 = 0x980a4;
    0x0004be9c adds r1, 0x50                                         |     r1 += 0x50;
    0x0004be9e blx 0xdc4c                                            |     g_ascii_string_to_unsigned ();
    0x0004bea2 mov r0, r4                                            |     r0 = r4;
                                                                     |     do {
                                                                     | label_0:
    0x0004bea4 add sp, 0x44                                          |         
    0x0004bea6 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_7:
    0x0004beaa ldr r3, [sp, 0x6c]                                    |         r3 = *(arg_6ch);
    0x0004beac cmp r3, 0xff                                          |         
                                                                     |         if (r3 <= 0xff) {
    0x0004beae bhi.w 0x4c0b4                                         |             
    0x0004beb2 mov r8, r0                                            |             r8 = r0;
    0x0004beb4 add r1, sp, 0x34                                      |             r1 += var_34h;
    0x0004beb6 mov r0, r5                                            |             r0 = r5;
    0x0004beb8 bl 0x4d078                                            |             r0 = fcn_0004d078 (r0);
    0x0004bebc cmp r0, 0                                             |             
                                                                     |             if (r0 == 0) {
    0x0004bebe beq.w 0x4c172                                         |                 goto label_8;
                                                                     |             }
    0x0004bec2 ldr r3, [sp, 0x34]                                    |             r3 = var_34h;
    0x0004bec4 mov r2, r7                                            |             r2 = r7;
    0x0004bec6 mov r1, r6                                            |             r1 = r6;
    0x0004bec8 mov r0, r4                                            |             r0 = r4;
    0x0004beca cmp r3, 0                                             |             
    0x0004becc ldr r3, [sp, 0x6c]                                    |             r3 = *(arg_6ch);
    0x0004bece it eq                                                 |             
                                                                     |             if (r3 != 0) {
    0x0004bed0 moveq r3, 0                                           |                 r3 = 0;
                                                                     |             }
    0x0004bed2 str r3, [sp, 0x6c]                                    |             *(arg_6ch) = r3;
    0x0004bed4 ldr r3, [sp, 0x74]                                    |             r3 = *(arg_74h);
    0x0004bed6 bl 0x65988                                            |             r0 = fcn_00065988 (r0, r1, r2, r3);
    0x0004beda mov sb, r0                                            |             sb = r0;
    0x0004bedc cmp r0, 0                                             |             
                                                                     |             if (r0 == 0) {
    0x0004bede beq.w 0x4c114                                         |                 goto label_2;
                                                                     |             }
    0x0004bee2 ldr r0, [r0]                                          |             r0 = *(r0);
    0x0004bee4 add.w fp, r8, 0xc                                     |             
    0x0004bee8 bl 0x48c0c                                            |             fcn_00048c0c (r0);
    0x0004beec ldr r1, [pc, 0x318]                                   |             
    0x0004beee add r2, sp, 0x30                                      |             r2 += var_30h;
    0x0004bef0 add r1, pc                                            |             r1 = 0x980fc;
    0x0004bef2 blx 0xeb58                                            |             g_regex_get_pattern ();
    0x0004bef6 mov r0, fp                                            |             r0 = fp;
    0x0004bef8 blx 0x1008c                                           |             fcn_0001008c ();
    0x0004befc ldr.w r0, [sb]                                        |             r0 = *(sb);
    0x0004bf00 bl 0x48c84                                            |             fcn_00048c84 (r0);
    0x0004bf04 ldr r3, [sp, 0x6c]                                    |             r3 = *(arg_6ch);
    0x0004bf06 mov r1, r0                                            |             r1 = r0;
    0x0004bf08 str r0, [sp, 0x2c]                                    |             var_2ch = r0;
    0x0004bf0a mov r2, r5                                            |             r2 = r5;
    0x0004bf0c ldr r0, [pc, 0x2fc]                                   |             
    0x0004bf0e str r3, [sp]                                          |             *(sp) = r3;
    0x0004bf10 ldr r3, [sp, 0x68]                                    |             r3 = *(arg_68h);
    0x0004bf12 add r0, pc                                            |             r0 = 0x98122;
    0x0004bf14 blx 0xe9b4                                            |             gst_rtsp_message_append_headers ();
    0x0004bf18 str r0, [sp, 0x28]                                    |             var_28h = r0;
    0x0004bf1a blx 0xf330                                            |             fcn_0000f330 ();
    0x0004bf1e ldr r3, [sp, 0x28]                                    |             r3 = var_28h;
    0x0004bf20 mov r2, r0                                            |             r2 = r0;
    0x0004bf22 str r2, [sp, 0x28]                                    |             var_28h = r2;
    0x0004bf24 mov r0, r3                                            |             r0 = r3;
    0x0004bf26 blx 0xf3e8                                            |             fcn_0000f3e8 ();
    0x0004bf2a ldr r1, [sp, 0x2c]                                    |             r1 = var_2ch;
    0x0004bf2c mov r0, r1                                            |             r0 = r1;
    0x0004bf2e blx 0xf3e8                                            |             fcn_0000f3e8 ();
    0x0004bf32 ldr r1, [pc, 0x2dc]                                   |             
    0x0004bf34 ldr r0, [pc, 0x2dc]                                   |             
    0x0004bf36 ldr r2, [sp, 0x28]                                    |             r2 = var_28h;
    0x0004bf38 add r1, pc                                            |             r1 = 0x9814e;
    0x0004bf3a add r0, pc                                            |             r0 = 0x98152;
    0x0004bf3c blx 0xe9b4                                            |             gst_rtsp_message_append_headers ();
    0x0004bf40 ldr r3, [sp, 0x70]                                    |             r3 = *(arg_70h);
    0x0004bf42 str r0, [r3]                                          |             *(r3) = r0;
    0x0004bf44 ldr.w r0, [sb]                                        |             r0 = *(sb);
    0x0004bf48 bl 0x48ad0                                            |             fcn_00048ad0 (r0);
    0x0004bf4c ldr r3, [sp, 0x6c]                                    |             r3 = *(arg_6ch);
    0x0004bf4e mov r2, r5                                            |             r2 = r5;
    0x0004bf50 str r0, [sp, 4]                                       |             var_4h = r0;
    0x0004bf52 mov r0, r6                                            |             r0 = r6;
    0x0004bf54 str r3, [sp]                                          |             *(sp) = r3;
    0x0004bf56 ldr.w r1, [r8, 0x38]                                  |             r1 = *((r8 + 0x38));
    0x0004bf5a ldr r3, [sp, 0x68]                                    |             r3 = *(arg_68h);
    0x0004bf5c str r1, [sp, 8]                                       |             var_8h = r1;
    0x0004bf5e mov r1, r7                                            |             r1 = r7;
    0x0004bf60 bl 0x4e14c                                            |             r0 = fcn_0004e14c (r0, r1, r2, r3, r4, r5, r6);
    0x0004bf64 mov r5, r0                                            |             r5 = r0;
    0x0004bf66 cmp r0, 0                                             |             
                                                                     |             if (r0 == 0) {
    0x0004bf68 beq.w 0x4c1b6                                         |                 goto label_9;
                                                                     |             }
    0x0004bf6c ldr r0, [r0, 0x14]                                    |             r0 = *((r0 + 0x14));
    0x0004bf6e blx 0x104a4                                           |             fcn_000104a4 ();
    0x0004bf70 eors.w r8, sl, r5, lsr 31                             |             r8 = sl ^ (r5 >> 31);
    0x0004bf74 adr r0, 0x50                                          |             r0 = 0x50;
    0x0004bf76 bl 0x5596c                                            |             r0 = fcn_0005596c ();
    0x0004bf7a mov r1, r0                                            |             r1 = r0;
    0x0004bf7c mov r0, sl                                            |             r0 = sl;
    0x0004bf7e blx 0xe18c                                            |             cert_set_init ();
    0x0004bf82 mov r1, r4                                            |             r1 = r4;
    0x0004bf84 bl 0x55cc8                                            |             fcn_00055cc8 (r0, r1);
    0x0004bf88 mov r1, r4                                            |             r1 = r4;
    0x0004bf8a mov sl, r0                                            |             sl = r0;
    0x0004bf8c ldr r0, [r5, 0x14]                                    |             r0 = *((r5 + 0x14));
    0x0004bf8e blx 0xeb04                                            |             g_value_set_uint64 ();
    0x0004bf92 mov r2, r7                                            |             r2 = r7;
    0x0004bf94 mov r7, r0                                            |             r7 = r0;
    0x0004bf96 ldr r0, [pc, 0x280]                                   |             
    0x0004bf98 ldr r1, [r5, 0x38]                                    |             r1 = *((r5 + 0x38));
    0x0004bf9a add r0, pc                                            |             r0 = 0x981b8;
    0x0004bf9c blx 0xe9b4                                            |             gst_rtsp_message_append_headers ();
    0x0004bfa0 ldr r3, [r5, 0xc]                                     |             r3 = *((r5 + 0xc));
    0x0004bfa2 mov r4, r0                                            |             r4 = r0;
    0x0004bfa4 add r2, sp, 0x3c                                      |             r2 += var_3ch;
    0x0004bfa6 add r1, sp, 0x38                                      |             r1 += var_38h;
    0x0004bfa8 cmp r3, 0                                             |             
                                                                     |             if (r3 == 0) {
    0x0004bfaa beq.w 0x4c16a                                         |                 goto label_10;
                                                                     |             }
    0x0004bfae movs r0, 2                                            |             r0 = 2;
    0x0004bfb0 bl 0x4b260                                            |             r0 = fcn_0004b260 (r0, r1, r2);
                                                                     | label_1:
    0x0004bfb4 cmp r0, 0                                             |             
                                                                     |             if (r0 == 0) {
    0x0004bfb6 beq.w 0x4c0cc                                         |                 goto label_11;
                                                                     |             }
    0x0004bfba mov r0, r7                                            |             r0 = r7;
    0x0004bfbc ldr r1, [sp, 0x3c]                                    |             r1 = var_3ch;
    0x0004bfbe bl 0x50e68                                            |             fcn_00050e68 (r0, r1);
    0x0004bfc2 ldr r3, [sp, 0x74]                                    |             r3 = *(arg_74h);
    0x0004bfc4 mov r2, r7                                            |             r2 = r7;
    0x0004bfc6 movs r7, 0                                            |             r7 = 0;
    0x0004bfc8 mov r1, sl                                            |             r1 = sl;
    0x0004bfca str r7, [sp, 0x14]                                    |             var_14h = r7;
    0x0004bfcc str r3, [sp, 0x18]                                    |             var_18h = r3;
    0x0004bfce ldr r3, [pc, 0x24c]                                   |             
    0x0004bfd0 add r3, pc                                            |             
    0x0004bfd2 str r3, [sp, 0x10]                                    |             var_10h = r3;
    0x0004bfd4 movs r3, 2                                            |             r3 = 2;
    0x0004bfd6 str r3, [sp, 0xc]                                     |             var_ch = r3;
    0x0004bfd8 ldr r3, [r5, 0x20]                                    |             r3 = *((r5 + 0x20));
    0x0004bfda ldr r3, [r3]                                          |             
    0x0004bfdc ldr r3, [r3]                                          |             r3 = *(0x981f2);
    0x0004bfde strd r6, r3, [sp, 4]                                  |             __asm ("strd r6, r3, [var_4h]");
    0x0004bfe2 ldr r3, [pc, 0x23c]                                   |             
    0x0004bfe4 ldr r6, [sp, 0x38]                                    |             r6 = var_38h;
    0x0004bfe6 add r3, pc                                            |             r3 = 0x9820c;
    0x0004bfe8 ldr r0, [r3]                                          |             r0 = *(0x9820c);
    0x0004bfea mov r3, r4                                            |             r3 = r4;
    0x0004bfec str r6, [sp]                                          |             *(sp) = r6;
    0x0004bfee bl 0x4bcf0                                            |             r0 = fcn_0004bcf0 (r0, r1, r2, r3, r4, r5, r6);
    0x0004bff2 mov r3, r0                                            |             r3 = r0;
    0x0004bff4 mov r0, r4                                            |             r0 = r4;
    0x0004bff6 mov r4, r3                                            |             r4 = r3;
    0x0004bff8 blx 0xf3e8                                            |             fcn_0000f3e8 ();
    0x0004bffc mov r0, r6                                            |             r0 = r6;
    0x0004bffe blx 0xf3e8                                            |             fcn_0000f3e8 ();
    0x0004c002 mov r0, sb                                            |             r0 = sb;
    0x0004c004 bl 0x651d4                                            |             fcn_000651d4 (r0);
    0x0004c008 ldrd r3, r2, [sp, 0x70]                               |             __asm ("ldrd r3, r2, [arg_70h]");
    0x0004c00c mov r0, r5                                            |             r0 = r5;
    0x0004c00e ldr r1, [r3]                                          |             r1 = *(r3);
    0x0004c010 bl 0x4eb40                                            |             r0 = fcn_0004eb40 (r0, r1, r2);
    0x0004c014 cmp r0, 0                                             |             
                                                                     |             if (r0 == 0) {
    0x0004c016 beq.w 0x4c1ae                                         |                 goto label_12;
                                                                     |             }
    0x0004c018 strh r2, [r1, 6]                                      |             *((r1 + 6)) = r2;
                                                                     |             if (r4 != 0) {
    0x0004c01a cbz r4, 0x4c070                                       |                 
    0x0004c01c mov r0, r4                                            |                 r0 = r4;
    0x0004c01e blx 0xdabc                                            |                 fcn_0000dabc ();
    0x0004c022 ldr r1, [sp, 0x24]                                    |                 r1 = var_24h;
    0x0004c024 mov r3, r0                                            |                 r3 = r0;
    0x0004c026 ldr r2, [pc, 0x1fc]                                   |                 r2 = *(0x4c226);
    0x0004c028 mov r0, r5                                            |                 r0 = r5;
    0x0004c02a str r7, [sp, 4]                                       |                 var_4h = r7;
    0x0004c02c ldr r6, [r1, r2]                                      |                 r6 = *((r1 + r2));
    0x0004c02e ldr r2, [pc, 0x1f8]                                   |                 
    0x0004c030 ldr r1, [pc, 0x1f8]                                   |                 
    0x0004c032 str r6, [sp]                                          |                 *(sp) = r6;
    0x0004c034 add r2, pc                                            |                 r2 = 0x98262;
    0x0004c036 add r1, pc                                            |                 r1 = 0x98266;
    0x0004c038 blx 0xede0                                            |                 gst_sdp_message_set_session_name ();
    0x0004c03c mov r0, r4                                            |                 r0 = r4;
    0x0004c03e blx 0xdabc                                            |                 fcn_0000dabc ();
    0x0004c042 ldr r2, [pc, 0x1ec]                                   |                 
    0x0004c044 mov r3, r0                                            |                 r3 = r0;
    0x0004c046 ldr r1, [pc, 0x1ec]                                   |                 
    0x0004c048 mov r0, r5                                            |                 r0 = r5;
    0x0004c04a strd r6, r7, [sp]                                     |                 __asm ("strd r6, r7, [sp]");
    0x0004c04e add r2, pc                                            |                 r2 = 0x98284;
    0x0004c050 add r1, pc                                            |                 r1 = 0x9828a;
    0x0004c052 blx 0xede0                                            |                 gst_sdp_message_set_session_name ();
    0x0004c056 mov r0, r4                                            |                 r0 = r4;
    0x0004c058 blx 0xdabc                                            |                 fcn_0000dabc ();
    0x0004c05c ldr r2, [pc, 0x1d8]                                   |                 
    0x0004c05e mov r3, r0                                            |                 r3 = r0;
    0x0004c060 ldr r1, [pc, 0x1d8]                                   |                 
    0x0004c062 mov r0, r5                                            |                 r0 = r5;
    0x0004c064 strd r6, r7, [sp]                                     |                 __asm ("strd r6, r7, [sp]");
    0x0004c068 add r2, pc                                            |                 r2 = 0x982a4;
    0x0004c06a add r1, pc                                            |                 r1 = 0x982aa;
    0x0004c06c blx 0xede0                                            |                 gst_sdp_message_set_session_name ();
                                                                     |             }
    0x0004c070 mov r1, r5                                            |             r1 = r5;
    0x0004c072 ldr.w r0, [r8, 0x24]                                  |             r0 = *((r8 + 0x24));
    0x0004c076 blx 0xdf9c                                            |             fcn_0000df9c ();
    0x0004c07a str.w r0, [r8, 0x24]                                  |             __asm ("str.w r0, [r8, 0x24]");
    0x0004c07e movs r0, 8                                            |             r0 = 8;
    0x0004c080 blx 0xea2c                                            |             r0 = gst_rtsp_range_convert_units ();
    0x0004c084 mov r4, r0                                            |             r4 = r0;
    0x0004c086 mov r0, r8                                            |             r0 = r8;
    0x0004c088 blx 0xdabc                                            |             r0 = fcn_0000dabc ();
    0x0004c08c mov r3, r0                                            |             r3 = r0;
    0x0004c08e movs r1, 0x50                                         |             r1 = 0x50;
    0x0004c090 str r3, [r4]                                          |             *(r4) = r3;
    0x0004c092 movs r3, 0                                            |             r3 = 0;
    0x0004c094 str r3, [r4, 4]                                       |             *((r4 + 4)) = r3;
    0x0004c096 mov r0, r5                                            |             r0 = r5;
    0x0004c098 blx 0xe18c                                            |             cert_set_init ();
    0x0004c09c ldr r1, [pc, 0x1a0]                                   |             
    0x0004c09e mov r2, r4                                            |             r2 = r4;
    0x0004c0a0 add r1, pc                                            |             r1 = 0x982e4;
    0x0004c0a2 blx 0xf7a8                                            |             fcn_0000f7a8 ();
    0x0004c0a4 invalid                                               |             
    0x0004c0a6 mov r0, fp                                            |             r0 = fp;
    0x0004c0a8 blx 0x101b8                                           |             fcn_000101b8 ();
    0x0004c0ac movs r0, 1                                            |             r0 = 1;
    0x0004c0ae add sp, 0x44                                          |             
    0x0004c0b0 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |             
                                                                     |         }
    0x0004c0b4 ldr r1, [pc, 0x18c]                                   |         
    0x0004c0b6 mov r0, r4                                            |         r0 = r4;
    0x0004c0b8 ldr r2, [pc, 0x18c]                                   |         
    0x0004c0ba add r1, pc                                            |         r1 = 0x98302;
    0x0004c0bc add r2, pc                                            |         r2 = 0x98308;
    0x0004c0be adds r1, 0x50                                         |         r1 += 0x50;
    0x0004c0c0 blx 0xdc4c                                            |         g_ascii_string_to_unsigned ();
    0x0004c0c4 mov r0, r4                                            |         r0 = r4;
    0x0004c0c6 add sp, 0x44                                          |         
    0x0004c0c8 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_11:
    0x0004c0cc ldr r1, [pc, 0x17c]                                   |         
    0x0004c0ce add r1, pc                                            |         r1 = 0x9831e;
    0x0004c0d0 ldr r3, [r1, 0x10]                                    |         r3 = *(0x9832e);
                                                                     |         if (r3 == 0) {
    0x0004c0d2 cbnz r3, 0x4c0e4                                      |             
    0x0004c0d4 ldr r2, [pc, 0x178]                                   |             
    0x0004c0d6 adds r1, 0x10                                         |             r1 += 0x10;
    0x0004c0d8 ldr r0, [pc, 0x178]                                   |             
    0x0004c0da movs r3, 1                                            |             r3 = 1;
    0x0004c0dc add r2, pc                                            |             r2 = 0x98330;
    0x0004c0de add r0, pc                                            |             r0 = 0x98336;
    0x0004c0e0 blx 0xdaa0                                            |             fcn_0000daa0 ();
    0x0004c0e2 invalid                                               |             
                                                                     |         }
    0x0004c0e4 ldr r3, [pc, 0x170]                                   |         
    0x0004c0e6 movs r2, 0                                            |         r2 = 0;
    0x0004c0e8 ldr r0, [sp, 0x74]                                    |         r0 = *(arg_74h);
    0x0004c0ea add r3, pc                                            |         r3 = 0x98346;
    0x0004c0ec ldr r1, [r3, 0x10]                                    |         r1 = *(0x98356);
    0x0004c0ee ldr r3, [pc, 0x16c]                                   |         
    0x0004c0f0 add r3, pc                                            |         r3 = 0x98352;
    0x0004c0f2 blx 0x10398                                           |         fcn_00010398 ();
    0x0004c0f6 ldr r2, [pc, 0x168]                                   |         
    0x0004c0f8 movs r1, 0x20                                         |         r1 = 0x20;
    0x0004c0fa movs r0, 0                                            |         r0 = 0;
    0x0004c0fc add r2, pc                                            |         r2 = 0x98362;
    0x0004c0fe blx 0xe318                                            |         gst_element_error_printf ()
    0x0004c102 mov r0, fp                                            |         r0 = fp;
    0x0004c104 blx 0x101b8                                           |         fcn_000101b8 ();
    0x0004c108 mov r0, sb                                            |         r0 = sb;
    0x0004c10a bl 0x651d4                                            |         fcn_000651d4 (r0);
                                                                     | label_3:
    0x0004c10e mov r0, r5                                            |         r0 = r5;
    0x0004c110 blx 0xfba0                                            |         fcn_0000fba0 ();
                                                                     | label_2:
    0x0004c114 ldr r3, [sp, 0x70]                                    |         r3 = *(arg_70h);
    0x0004c116 ldr r0, [r3]                                          |         r0 = *(r3);
    0x0004c118 blx 0xf3e8                                            |         fcn_0000f3e8 ();
    0x0004c11c ldr r2, [sp, 0x70]                                    |         r2 = *(arg_70h);
    0x0004c11e movs r3, 0                                            |         r3 = 0;
    0x0004c120 mov r0, r3                                            |         r0 = r3;
    0x0004c122 str r3, [r2]                                          |         *(r2) = r3;
    0x0004c124 add sp, 0x44                                          |         
    0x0004c126 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_4:
    0x0004c12a ldr r1, [pc, 0x138]                                   |         
    0x0004c12c mov r0, r6                                            |         r0 = r6;
    0x0004c12e ldr r2, [pc, 0x138]                                   |         
    0x0004c130 add r1, pc                                            |         r1 = 0x9839a;
    0x0004c132 add r2, pc                                            |         r2 = 0x983a0;
    0x0004c134 adds r1, 0x50                                         |         r1 += 0x50;
    0x0004c136 blx 0xdc4c                                            |         g_ascii_string_to_unsigned ();
    0x0004c13a mov r0, r6                                            |         r0 = r6;
    0x0004c13c add sp, 0x44                                          |         
    0x0004c13e pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |         
                                                                     | label_5:
    0x0004c142 ldr r1, [pc, 0x128]                                   |         
    0x0004c144 mov r0, r7                                            |         r0 = r7;
    0x0004c146 ldr r2, [pc, 0x128]                                   |         
    0x0004c148 add r1, pc                                            |         r1 = 0x983ba;
    0x0004c14a add r2, pc                                            |         r2 = 0x983c0;
    0x0004c14c adds r1, 0x50                                         |         r1 += 0x50;
    0x0004c14e blx 0xdc4c                                            |         g_ascii_string_to_unsigned ();
    0x0004c152 mov r0, r7                                            |         r0 = r7;
    0x0004c154 b 0x4bea4                                             |         
                                                                     |     } while (1);
                                                                     | label_6:
    0x0004c156 ldr r1, [pc, 0x11c]                                   |     
    0x0004c158 mov r0, r5                                            |     r0 = r5;
    0x0004c15a ldr r2, [pc, 0x11c]                                   |     
    0x0004c15c add r1, pc                                            |     r1 = 0x983d6;
    0x0004c15e add r2, pc                                            |     r2 = 0x983dc;
    0x0004c160 adds r1, 0x50                                         |     r1 += 0x50;
    0x0004c162 blx 0xdc4c                                            |     g_ascii_string_to_unsigned ();
    0x0004c166 mov r0, r5                                            |     r0 = r5;
    0x0004c168 b 0x4bea4                                             |     goto label_0;
                                                                     | label_10:
    0x0004c16a movs r0, 0xa                                          |     r0 = 0xa;
    0x0004c16c bl 0x4b260                                            |     fcn_0004b260 (r0, r1, r2);
    0x0004c170 b 0x4bfb4                                             |     goto label_1;
                                                                     | label_8:
    0x0004c172 ldr r1, [pc, 0x108]                                   |     
    0x0004c174 add r1, pc                                            |     r1 = 0x983f6;
    0x0004c176 ldr r3, [r1, 0x10]                                    |     r3 = *(0x98406);
                                                                     |     if (r3 == 0) {
    0x0004c178 cbnz r3, 0x4c18a                                      |         
    0x0004c17a ldr r2, [pc, 0x104]                                   |         
    0x0004c17c mov r3, sl                                            |         r3 = sl;
    0x0004c17e ldr r0, [pc, 0x104]                                   |         
    0x0004c180 adds r1, 0x10                                         |         r1 += 0x10;
    0x0004c182 add r2, pc                                            |         r2 = 0x98408;
    0x0004c184 add r0, pc                                            |         r0 = 0x9840e;
    0x0004c186 blx 0xdaa0                                            |         fcn_0000daa0 ();
                                                                     |     }
    0x0004c18a ldr r1, [pc, 0xfc]                                    |     
    0x0004c18c movs r2, 0                                            |     r2 = 0;
    0x0004c18e ldr r3, [pc, 0xfc]                                    |     
    0x0004c190 ldr r0, [sp, 0x74]                                    |     r0 = *(arg_74h);
    0x0004c192 add r1, pc                                            |     
    0x0004c194 str r5, [sp]                                          |     *(sp) = r5;
    0x0004c196 add r3, pc                                            |     r3 = 0x98428;
    0x0004c198 ldr r1, [r1, 0x10]                                    |     r1 = *(0x98430);
    0x0004c19a blx 0x10398                                           |     fcn_00010398 ();
    0x0004c19c ldrd r4, sl, [lr], 0xf0                               |     __asm ("ldrd r4, sl, [lr], 0xf0");
    0x0004c1a0 mov r3, r5                                            |     r3 = r5;
    0x0004c1a2 movs r1, 0x20                                         |     r1 = 0x20;
    0x0004c1a4 movs r0, 0                                            |     r0 = 0;
    0x0004c1a6 add r2, pc                                            |     r2 += pc;
    0x0004c1a8 blx 0xe318                                            |     gst_element_error_printf ()
    0x0004c1ac b 0x4c114                                             |     goto label_2;
                                                                     | label_12:
    0x0004c1ae mov r0, fp                                            |     r0 = fp;
    0x0004c1b0 blx 0x101b8                                           |     fcn_000101b8 ();
    0x0004c1b4 b 0x4c10e                                             |     goto label_3;
                                                                     | label_9:
    0x0004c1b6 ldr r1, [pc, 0xdc]                                    |     
    0x0004c1b8 add r1, pc                                            |     r1 = 0x98452;
    0x0004c1ba ldr r3, [r1, 0x10]                                    |     r3 = *(0x98462);
                                                                     |     if (r3 == 0) {
    0x0004c1bc cbnz r3, 0x4c1ce                                      |         
    0x0004c1be ldr r2, [pc, 0xd8]                                    |         
    0x0004c1c0 mov r3, sl                                            |         r3 = sl;
    0x0004c1c2 ldr r0, [pc, 0xd8]                                    |         
    0x0004c1c4 adds r1, 0x10                                         |         r1 += 0x10;
    0x0004c1c6 add r2, pc                                            |         r2 = 0x98464;
    0x0004c1c8 add r0, pc                                            |         r0 = 0x9846a;
    0x0004c1ca blx 0xdaa0                                            |         fcn_0000daa0 ();
    0x0004c1cc invalid                                               |         
                                                                     |     }
    0x0004c1ce ldr r2, [pc, 0xd0]                                    |     
    0x0004c1d0 ldr r3, [pc, 0xd0]                                    |     
    0x0004c1d2 ldr r0, [sp, 0x74]                                    |     r0 = *(arg_74h);
    0x0004c1d4 add r2, pc                                            |     r2 = 0x9847a;
    0x0004c1d6 add r3, pc                                            |     r3 = 0x9847e;
    0x0004c1d8 ldr r1, [r2, 0x10]                                    |     r1 = *(0x9848a);
    0x0004c1da movs r2, 0                                            |     r2 = 0;
    0x0004c1dc blx 0x10398                                           |     fcn_00010398 ();
    0x0004c1e0 ldr r2, [pc, 0xc4]                                    |     
    0x0004c1e2 movs r1, 0x20                                         |     r1 = 0x20;
    0x0004c1e4 movs r0, 0                                            |     r0 = 0;
    0x0004c1e6 add r2, pc                                            |     r2 = 0x98492;
    0x0004c1e8 blx 0xe318                                            |     gst_element_error_printf ()
    0x0004c1ec mov r0, fp                                            |     r0 = fp;
    0x0004c1ee blx 0x101b8                                           |     fcn_000101b8 ();
    0x0004c1f2 mov r0, sb                                            |     r0 = sb;
    0x0004c1f4 bl 0x651d4                                            |     fcn_000651d4 (r0);
    0x0004c1f8 b 0x4c114                                             |     goto label_2;
                                                                     | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x4cb40 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0004cb40 ()                      | void fcn_0004cb40 (int16_t arg1) {
                                                 |     int16_t var_0h;
                                                 |     int16_t var_4h;
                                                 |     r0 = arg1;
                                                 |     do {
    0x0000e314 bx pc                             |         return void (*pc)() ();
    0x0004cb40 push {r4, r5, r6, lr}             |         
    0x0004cb42 mov r4, r0                        |         r4 = r0;
    0x0004cb44 sub sp, 8                         |         
    0x0004cb46 ldr r0, [r0, 0x1c]                |         r0 = *((r0 + 0x1c));
    0x0004cb48 blx 0xde54                        |         r0 = fcn_0000de54 ();
    0x0004cb4c cmp r0, 0                         |         
                                                 |         if (r0 != 0) {
    0x0004cb4e beq 0x4cbc2                       |             
    0x0004cb50 mov r5, r0                        |             r5 = r0;
    0x0004cb52 blx 0xfb90                        |             r0 = gst_bus_add_watch ();
    0x0004cb56 mov r6, r0                        |             r6 = r0;
    0x0004cb58 mov r0, r5                        |             r0 = r5;
    0x0004cb5a blx 0xfba0                        |             fcn_0000fba0 ();
    0x0004cb5e cmp r6, 0                         |             
                                                 |             if (r6 == 0) {
    0x0004cb60 beq 0x4cbc2                       |                 goto label_1;
                                                 |             }
    0x0004cb62 ldr r0, [r4, 0x38]                |             r0 = *((r4 + 0x38));
                                                 |             if (r0 != 0) {
    0x0004cb64 cbz r0, 0x4cb6a                   |                 
    0x0004cb66 blx 0xfba0                        |                 fcn_0000fba0 ();
                                                 |             }
    0x0004cb6a blx 0xe770                        |             fcn_0000e770 ();
    0x0004cb6e ldr r5, [r4, 0x20]                |             r5 = *((r4 + 0x20));
    0x0004cb70 str r0, [r4, 0x38]                |             *((r4 + 0x38)) = r0;
    0x0004cb72 adds r6, r5, 1                    |             r6 = r5 + 1;
                                                 |             if (r5 == 0) {
    0x0004cb74 cbnz r5, 0x4cb7a                  |                 
    0x0004cb76 ldrd r5, r6, [r4, 0x30]           |                 __asm ("ldrd r5, r6, [r4, 0x30]");
                                                 |             }
    0x0004cb7a ldrb.w r3, [r4, 0x2c]             |             r3 = *((r4 + 0x2c));
    0x0004cb7e ldr r2, [r4, 0x1c]                |             r2 = *((r4 + 0x1c));
    0x0004cb80 str r3, [sp, 4]                   |             var_4h = r3;
    0x0004cb82 uxth r3, r6                       |             r3 = (int16_t) r6;
    0x0004cb84 mov r1, r2                        |             r1 = r2;
    0x0004cb86 str r3, [sp]                      |             *(sp) = r3;
    0x0004cb88 uxth r3, r5                       |             r3 = (int16_t) r5;
    0x0004cb8a blx 0xfb24                        |             g_strcompress ();
    0x0004cb8c vrsra.s8 d27, d0, 4               |             __asm ("vrsra.s8 d27, d0, 4");
    0x0004cb90 ldr r2, [pc, 0x80]                |             
    0x0004cb92 movs r5, 0                        |             r5 = 0;
    0x0004cb94 ldrh r1, [r4, 0x34]               |             r1 = *((r4 + 0x34));
    0x0004cb96 ldrh r3, [r4, 0x30]               |             r3 = *((r4 + 0x30));
    0x0004cb98 add r2, pc                        |             r2 = 0x997b0;
    0x0004cb9a strd r1, r5, [sp]                 |             __asm ("strd r1, r5, [sp]");
    0x0004cb9e mov r1, r2                        |             r1 = r2;
    0x0004cba0 ldr r0, [r4, 0x38]                |             r0 = *((r4 + 0x38));
    0x0004cba2 blx 0xfb24                        |             r0 = g_strcompress ();
                                                 |             if (r0 == 0) {
    0x0004cba6 cbz r0, 0x4cbec                   |                 goto label_2;
                                                 |             }
    0x0004cba8 ldr r2, [pc, 0x6c]                |             
    0x0004cbaa ldrh r1, [r4, 0x34]               |             r1 = *((r4 + 0x34));
    0x0004cbac ldrh r3, [r4, 0x30]               |             r3 = *((r4 + 0x30));
    0x0004cbae add r2, pc                        |             r2 = 0x997ca;
    0x0004cbb0 strd r1, r5, [sp]                 |             __asm ("strd r1, r5, [sp]");
    0x0004cbb4 mov r1, r2                        |             r1 = r2;
    0x0004cbb6 ldr r0, [r4, 0x38]                |             r0 = *((r4 + 0x38));
    0x0004cbb8 blx 0xfb24                        |             r0 = g_strcompress ();
                                                 |             if (r0 == 0) {
    0x0004cbbc cbz r0, 0x4cc00                   |                 goto label_3;
                                                 |             }
                                                 | label_0:
    0x0004cbbe add sp, 8                         |             
    0x0004cbc0 pop {r4, r5, r6, pc}              |             
                                                 |         }
                                                 | label_1:
    0x0004cbc2 ldr r2, [pc, 0x58]                |         
    0x0004cbc4 movs r1, 0x20                     |         r1 = 0x20;
    0x0004cbc6 ldr r3, [r4, 0x1c]                |         r3 = *((r4 + 0x1c));
    0x0004cbc8 movs r0, 0                        |         r0 = 0;
    0x0004cbca add r2, pc                        |         r2 = 0x997ec;
    0x0004cbcc add sp, 8                         |         
    0x0004cbce pop.w {r4, r5, r6, lr}            |         
    0x0004cbd2 b.w 0xe314                        |         
                                                 |     } while (1);
    0x0004cbd6 ldr r1, [r4, 0x1c]                |     r1 = *((r4 + 0x1c));
    0x0004cbd8 mov r3, r5                        |     r3 = r5;
    0x0004cbda ldr r2, [pc, 0x44]                |     
    0x0004cbdc strd r6, r1, [sp]                 |     __asm ("strd r6, r1, [sp]");
    0x0004cbe0 movs r1, 0x20                     |     r1 = 0x20;
    0x0004cbe2 add r2, pc                        |     r2 = 0x99808;
    0x0004cbe4 blx 0xe318                        |     gst_element_error_printf ()
    0x0004cbe8 add sp, 8                         |     
    0x0004cbea pop {r4, r5, r6, pc}              |     
                                                 | label_2:
    0x0004cbec ldrd r3, r5, [r4, 0x30]           |     __asm ("ldrd r3, r5, [r4, 0x30]");
    0x0004cbf0 movs r1, 0x20                     |     r1 = 0x20;
    0x0004cbf2 ldr r2, [pc, 0x30]                |     
    0x0004cbf4 str r5, [sp]                      |     *(sp) = r5;
    0x0004cbf6 add r2, pc                        |     r2 = 0x99820;
    0x0004cbf8 blx 0xe318                        |     gst_element_error_printf ()
    0x0004cbfc add sp, 8                         |     
    0x0004cbfe pop {r4, r5, r6, pc}              |     
                                                 | label_3:
    0x0004cc00 ldrd r3, r5, [r4, 0x30]           |     __asm ("ldrd r3, r5, [r4, 0x30]");
    0x0004cc04 movs r1, 0x20                     |     r1 = 0x20;
    0x0004cc06 ldr r2, [pc, 0x20]                |     
    0x0004cc08 str r5, [sp]                      |     *(sp) = r5;
    0x0004cc0a add r2, pc                        |     r2 = 0x99838;
    0x0004cc0c blx 0xe318                        |     gst_element_error_printf ()
    0x0004cc10 b 0x4cbbe                         |     goto label_0;
                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x4cc2c */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.0004cc2c ()                      | void fcn_0004cc2c (int16_t arg1) {
                                                 |     int16_t var_0h;
                                                 |     int16_t var_4h;
                                                 |     r0 = arg1;
    0x0004cc2c push {r4, r5, r6, lr}             |     
    0x0004cc2e mov r4, r0                        |     r4 = r0;
    0x0004cc30 sub sp, 8                         |     
    0x0004cc32 ldr r0, [r0, 0x24]                |     r0 = *((r0 + 0x24));
    0x0004cc34 blx 0xde54                        |     r0 = fcn_0000de54 ();
    0x0004cc38 cmp r0, 0                         |     
                                                 |     if (r0 == 0) {
    0x0004cc3a beq 0x4ccae                       |         goto label_0;
                                                 |     }
    0x0004cc3c mov r5, r0                        |     r5 = r0;
    0x0004cc3e blx 0xfb90                        |     r0 = gst_bus_add_watch ();
    0x0004cc42 mov r6, r0                        |     r6 = r0;
    0x0004cc44 mov r0, r5                        |     r0 = r5;
    0x0004cc46 blx 0xfba0                        |     fcn_0000fba0 ();
    0x0004cc4a cmp r6, 0                         |     
                                                 |     if (r6 == 0) {
    0x0004cc4c beq 0x4ccae                       |         goto label_0;
                                                 |     }
    0x0004cc4e ldr r0, [r4, 0x3c]                |     r0 = *((r4 + 0x3c));
                                                 |     if (r0 != 0) {
    0x0004cc50 cbz r0, 0x4cc56                   |         
    0x0004cc52 blx 0xfba0                        |         fcn_0000fba0 ();
                                                 |     }
    0x0004cc56 blx 0xe770                        |     fcn_0000e770 ();
    0x0004cc5a ldr r5, [r4, 0x28]                |     r5 = *((r4 + 0x28));
    0x0004cc5c str r0, [r4, 0x3c]                |     *((r4 + 0x3c)) = r0;
    0x0004cc5e adds r6, r5, 1                    |     r6 = r5 + 1;
                                                 |     if (r5 == 0) {
    0x0004cc60 cbnz r5, 0x4cc66                  |         
    0x0004cc62 ldrd r5, r6, [r4, 0x30]           |         __asm ("ldrd r5, r6, [r4, 0x30]");
                                                 |     }
    0x0004cc66 ldrb.w r3, [r4, 0x2c]             |     r3 = *((r4 + 0x2c));
    0x0004cc6a ldr r2, [r4, 0x24]                |     r2 = *((r4 + 0x24));
    0x0004cc6c str r3, [sp, 4]                   |     var_4h = r3;
    0x0004cc6e uxth r3, r6                       |     r3 = (int16_t) r6;
    0x0004cc70 mov r1, r2                        |     r1 = r2;
    0x0004cc72 str r3, [sp]                      |     *(sp) = r3;
    0x0004cc74 uxth r3, r5                       |     r3 = (int16_t) r5;
    0x0004cc76 blx 0xfb24                        |     r0 = g_strcompress ();
                                                 |     if (r0 == 0) {
    0x0004cc7a cbz r0, 0x4ccc2                   |         goto label_1;
                                                 |     }
    0x0004cc7c ldr r2, [pc, 0x80]                |     
    0x0004cc7e movs r5, 0                        |     r5 = 0;
    0x0004cc80 ldrh r1, [r4, 0x34]               |     r1 = *((r4 + 0x34));
    0x0004cc82 ldrh r3, [r4, 0x30]               |     r3 = *((r4 + 0x30));
    0x0004cc84 add r2, pc                        |     r2 = 0x99988;
    0x0004cc86 strd r1, r5, [sp]                 |     __asm ("strd r1, r5, [sp]");
    0x0004cc8a mov r1, r2                        |     r1 = r2;
    0x0004cc8c ldr r0, [r4, 0x3c]                |     r0 = *((r4 + 0x3c));
    0x0004cc8e blx 0xfb24                        |     r0 = g_strcompress ();
                                                 |     if (r0 == 0) {
    0x0004cc92 cbz r0, 0x4ccd8                   |         goto label_2;
                                                 |     }
    0x0004cc94 ldr r2, [pc, 0x6c]                |     
    0x0004cc96 ldrh r1, [r4, 0x34]               |     r1 = *((r4 + 0x34));
    0x0004cc98 ldrh r3, [r4, 0x30]               |     r3 = *((r4 + 0x30));
    0x0004cc9a add r2, pc                        |     r2 = 0x999a2;
    0x0004cc9c strd r1, r5, [sp]                 |     __asm ("strd r1, r5, [sp]");
    0x0004cca0 mov r1, r2                        |     r1 = r2;
    0x0004cca2 ldr r0, [r4, 0x3c]                |     r0 = *((r4 + 0x3c));
    0x0004cca4 blx 0xfb24                        |     r0 = g_strcompress ();
    0x0004cca8 cbz r0, 0x4ccec                   |     
                                                 |     while (1) {
    0x0004ccaa add sp, 8                         |         
    0x0004ccac pop {r4, r5, r6, pc}              |         
                                                 | label_0:
    0x0004ccae ldr r2, [pc, 0x58]                |         
    0x0004ccb0 movs r1, 0x20                     |         r1 = 0x20;
    0x0004ccb2 ldr r3, [r4, 0x24]                |         r3 = *((r4 + 0x24));
    0x0004ccb4 movs r0, 0                        |         r0 = 0;
    0x0004ccb6 add r2, pc                        |         r2 = 0x999c4;
    0x0004ccb8 add sp, 8                         |         
    0x0004ccba pop.w {r4, r5, r6, lr}            |         
    0x0004ccbe b.w 0xe314                        |         void (*0xe314)() ();
                                                 | label_1:
    0x0004ccc2 ldr r1, [r4, 0x24]                |         r1 = *((r4 + 0x24));
    0x0004ccc4 mov r3, r5                        |         r3 = r5;
    0x0004ccc6 ldr r2, [pc, 0x44]                |         
    0x0004ccc8 strd r6, r1, [sp]                 |         __asm ("strd r6, r1, [sp]");
    0x0004cccc movs r1, 0x20                     |         r1 = 0x20;
    0x0004ccce add r2, pc                        |         r2 = 0x999e0;
    0x0004ccd0 blx 0xe318                        |         gst_element_error_printf ()
    0x0004ccd4 add sp, 8                         |         
    0x0004ccd6 pop {r4, r5, r6, pc}              |         
                                                 | label_2:
    0x0004ccd8 ldrd r3, r5, [r4, 0x30]           |         __asm ("ldrd r3, r5, [r4, 0x30]");
    0x0004ccdc movs r1, 0x20                     |         r1 = 0x20;
    0x0004ccde ldr r2, [pc, 0x30]                |         
    0x0004cce0 str r5, [sp]                      |         *(sp) = r5;
    0x0004cce2 add r2, pc                        |         r2 = 0x999f8;
    0x0004cce4 blx 0xe318                        |         gst_element_error_printf ()
    0x0004cce8 add sp, 8                         |         
    0x0004ccea pop {r4, r5, r6, pc}              |         
    0x0004ccec ldrd r3, r5, [r4, 0x30]           |         __asm ("ldrd r3, r5, [r4, 0x30]");
    0x0004ccf0 movs r1, 0x20                     |         r1 = 0x20;
    0x0004ccf2 ldr r2, [pc, 0x20]                |         
    0x0004ccf4 str r5, [sp]                      |         *(sp) = r5;
    0x0004ccf6 add r2, pc                        |         r2 = 0x99a10;
    0x0004ccf8 blx 0xe318                        |         gst_element_error_printf ()
    0x0004ccfc b 0x4ccaa                         |         
                                                 |     }
                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x4d60c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0004d60c ()                  | void fcn_0004d60c (int16_t arg1, int16_t arg2) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
                                             |     do {
    0x0000e788 bx pc                         |         return void (*pc)() ();
    0x0004d60c push {r4, r5, r6, lr}         |         
    0x0004d60e mov r4, r0                    |         r4 = r0;
    0x0004d610 ldr r0, [r0, 0x14]            |         r0 = *((r0 + 0x14));
                                             |         if (r0 != 0) {
    0x0004d612 cbz r0, 0x4d64a               |             
    0x0004d614 ldr r2, [r4, 0x20]            |             r2 = *((r4 + 0x20));
    0x0004d616 mov r5, r1                    |             r5 = r1;
    0x0004d618 movs r1, 1                    |             r1 = 1;
    0x0004d61a ldr r3, [r2]                  |             r3 = *(r2);
    0x0004d61c ldr r6, [r3]                  |             r6 = *(r3);
    0x0004d61e blx 0xdbe8                    |             r0 = fcn_0000dbe8 ();
    0x0004d622 clz r0, r0                    |             r0 &= r0;
    0x0004d626 cmp r5, 0                     |             
    0x0004d628 lsr.w r0, r0, 5               |             r0 >>= 5;
    0x0004d62c it eq                         |             
                                             |             if (r5 != 0) {
    0x0004d62e moveq r0, 0                   |                 r0 = 0;
                                             |             }
                                             |             if (r0 != 0) {
    0x0004d630 cbnz r0, 0x4d65c              |                 goto label_1;
                                             |             }
                                             | label_0:
    0x0004d632 ldr r0, [r4, 0x14]            |             r0 = *((r4 + 0x14));
    0x0004d634 movs r5, 0                    |             r5 = 0;
    0x0004d636 blx 0xfba0                    |             fcn_0000fba0 ();
    0x0004d63a ldr r0, [r4, 0x20]            |             r0 = *((r4 + 0x20));
    0x0004d63c str r5, [r4, 0x14]            |             *((r4 + 0x14)) = r5;
    0x0004d63e blx 0xff14                    |             cert_set_get_path ();
    0x0004d642 mov r0, r6                    |             r0 = r6;
    0x0004d644 str r5, [r4, 0x20]            |             *((r4 + 0x20)) = r5;
    0x0004d646 blx 0xfba0                    |             fcn_0000fba0 ();
                                             |         }
    0x0004d64a ldr r3, [pc, 0x48]            |         
    0x0004d64c mov r0, r4                    |         r0 = r4;
    0x0004d64e movs r2, 0                    |         r2 = 0;
    0x0004d650 pop.w {r4, r5, r6, lr}        |         
    0x0004d654 add r3, pc                    |         r3 = 0x9acee;
    0x0004d656 ldr r1, [r3, 0x10]            |         r1 = *(0x9acfe);
    0x0004d658 b.w 0xe788                    |         
                                             |     } while (1);
                                             | label_1:
    0x0004d65c ldr r1, [pc, 0x38]            |     
    0x0004d65e add r1, pc                    |     r1 = 0x9acfa;
    0x0004d660 ldr r3, [r1, 0x14]            |     r3 = *(0x9ad0e);
                                             |     if (r3 == 0) {
    0x0004d662 cbnz r3, 0x4d674              |         
    0x0004d664 ldr r2, [pc, 0x34]            |         
    0x0004d666 movs r3, 1                    |         r3 = 1;
    0x0004d668 ldr r0, [pc, 0x34]            |         
    0x0004d66a adds r1, 0x14                 |         r1 += 0x14;
    0x0004d66c add r2, pc                    |         r2 = 0x9ad0c;
    0x0004d66e add r0, pc                    |         r0 = 0x9ad12;
    0x0004d670 blx 0xdaa0                    |         fcn_0000daa0 ();
                                             |     }
    0x0004d674 ldr r2, [pc, 0x2c]            |     
    0x0004d676 mov r0, r5                    |     r0 = r5;
    0x0004d678 ldr r3, [pc, 0x2c]            |     
    0x0004d67a add r2, pc                    |     r2 = 0x9ad22;
    0x0004d67c ldr r1, [r2, 0x14]            |     r1 = *(0x9ad36);
    0x0004d67e add r3, pc                    |     r3 = 0x9ad2a;
    0x0004d680 movs r2, 0                    |     r2 = 0;
    0x0004d682 blx 0x10398                   |     fcn_00010398 ();
    0x0004d686 ldr r2, [pc, 0x24]            |     
    0x0004d688 movs r1, 0x20                 |     r1 = 0x20;
    0x0004d68a movs r0, 0                    |     r0 = 0;
    0x0004d68c add r2, pc                    |     r2 = 0x9ad3e;
    0x0004d68e blx 0xe318                    |     gst_element_error_printf ()
    0x0004d692 b 0x4d632                     |     goto label_0;
                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x4d9e8 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0004d9e8 ()                                  | void fcn_0004d9e8 (int16_t arg2, int16_t arg3, uint32_t domain) {
                                                             |     int16_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_4h_2;
                                                             |     int16_t var_14h;
                                                             |     int16_t var_18h;
                                                             |     int16_t var_1ch;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r0 = domain;
    0x0004d9e8 push.w {r4, r5, r6, r7, r8, sb, lr}           |     
    0x0004d9ec mov r4, r0                                    |     r4 = r0;
    0x0004d9ee sub sp, 0x24                                  |     
    0x0004d9f0 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0004d9f2 beq.w 0x4db78                                 |         goto label_0;
                                                             |     }
    0x0004d9f6 add.w r8, r0, 0x18                            |     r8 = r0 + 0x18;
    0x0004d9fa mov r6, r1                                    |     r6 = r1;
    0x0004d9fc mov r0, r8                                    |     r0 = r8;
    0x0004d9fe mov r7, r2                                    |     r7 = r2;
    0x0004da00 blx 0xf26c                                    |     socket (r0, r1, r2);
    0x0004da04 ldr r3, [r4, 0x24]                            |     r3 = *((r4 + 0x24));
    0x0004da06 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x0004da08 bne.w 0x4db44                                 |         goto label_1;
                                                             |     }
    0x0004da0c add r0, sp, 0x14                              |     r0 += var_14h;
    0x0004da0e ldr r5, [r4, 0xc]                             |     r5 = *((r4 + 0xc));
    0x0004da10 ldr.w sb, [r4, 0x14]                          |     sb = *((r4 + 0x14));
    0x0004da14 str r3, [sp, 0x14]                            |     var_14h = r3;
    0x0004da16 str r3, [sp, 0x1c]                            |     var_1ch = r3;
    0x0004da18 blx 0xe1a4                                    |     g_option_context_new ();
    0x0004da1c ldr r1, [pc, 0x180]                           |     
    0x0004da1e ldr r0, [sp, 0x14]                            |     r0 = var_14h;
    0x0004da20 add r1, pc                                    |     r1 = 0x9b5c4;
    0x0004da22 blx 0xed20                                    |     gst_rtsp_media_prepare ();
    0x0004da26 cmp r5, 0                                     |     
                                                             |     if (r5 != 0) {
    0x0004da28 bne 0x4daf0                                   |         goto label_2;
                                                             |     }
    0x0004da2a bl 0x4bc2c                                    |     r0 = fcn_0004bc2c ();
    0x0004da2e mov r4, r0                                    |     r4 = r0;
    0x0004da30 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x0004da32 beq 0x4dafe                                   |         goto label_3;
                                                             |     }
    0x0004da34 ldr r3, [pc, 0x16c]                           |     
    0x0004da36 add r3, pc                                    |     r3 = 0x9b5de;
                                                             |     do {
    0x0004da38 strd r3, r4, [sp, 4]                          |         __asm ("strd r3, r4, [var_4h]");
    0x0004da3c clz r5, r5                                    |         r5 &= r5;
    0x0004da40 ldr r3, [pc, 0x164]                           |         
    0x0004da42 lsrs r5, r5, 5                                |         r5 >>= 5;
    0x0004da44 ldr r2, [pc, 0x164]                           |         
    0x0004da46 ldr r1, [pc, 0x168]                           |         
    0x0004da48 add r3, pc                                    |         r3 = 0x9b5f4;
    0x0004da4a ldr r0, [sp, 0x14]                            |         r0 = var_14h;
    0x0004da4c str r3, [sp]                                  |         *(sp) = r3;
    0x0004da4e add r2, pc                                    |         r2 = 0x9b5fe;
    0x0004da50 ldr r3, [pc, 0x160]                           |         
    0x0004da52 add r1, pc                                    |         r1 = 0x9b608;
    0x0004da54 add r3, pc                                    |         r3 = 0x9b60c;
    0x0004da56 blx 0xfa50                                    |         fcn_0000fa50 ();
    0x0004da5a ldr r1, [pc, 0x15c]                           |         
    0x0004da5c ldr r0, [sp, 0x14]                            |         r0 = var_14h;
    0x0004da5e add r1, pc                                    |         r1 = 0x9b61c;
    0x0004da60 blx 0xee58                                    |         gst_rtsp_thread_pool_get_thread ();
    0x0004da64 ldr r1, [pc, 0x154]                           |         
    0x0004da66 ldr r0, [sp, 0x14]                            |         r0 = var_14h;
    0x0004da68 add r1, pc                                    |         r1 = 0x9b628;
    0x0004da6a blx 0xde0c                                    |         fcn_0000de0c ();
    0x0004da6e ldr r2, [pc, 0x150]                           |         
    0x0004da70 movs r3, 0                                    |         r3 = 0;
    0x0004da72 ldr r0, [sp, 0x14]                            |         r0 = var_14h;
    0x0004da74 add r2, pc                                    |         r2 = 0x9b63a;
    0x0004da76 mov r1, r2                                    |         r1 = r2;
    0x0004da78 blx 0xfe24                                    |         gst_pad_query_caps ();
    0x0004da7c ldr r2, [pc, 0x144]                           |         
    0x0004da7e ldr r1, [pc, 0x148]                           |         
    0x0004da80 ldr r0, [sp, 0x14]                            |         r0 = var_14h;
    0x0004da82 add r2, pc                                    |         r2 = 0x9b64a;
    0x0004da84 add r1, pc                                    |         r1 = 0x9b652;
    0x0004da86 blx 0xeb28                                    |         g_dir_close ();
    0x0004da8a ldr r2, [pc, 0x140]                           |         
    0x0004da8c ldr r1, [pc, 0x140]                           |         
    0x0004da8e ldr r0, [sp, 0x14]                            |         r0 = var_14h;
    0x0004da90 add r2, pc                                    |         r2 = 0x9b662;
    0x0004da92 add r1, pc                                    |         r1 = 0x9b666;
    0x0004da94 blx 0xeb28                                    |         g_dir_close ();
    0x0004da98 ldr r2, [pc, 0x138]                           |         
    0x0004da9a ldr r1, [pc, 0x13c]                           |         
    0x0004da9c ldr r0, [sp, 0x14]                            |         r0 = var_14h;
    0x0004da9e add r2, pc                                    |         r2 = 0x9b676;
    0x0004daa0 add r1, pc                                    |         r1 = 0x9b67e;
    0x0004daa2 blx 0xeb28                                    |         g_dir_close ();
    0x0004daa6 ldr r0, [sp, 0x14]                            |         r0 = var_14h;
    0x0004daa8 mov r2, sb                                    |         r2 = sb;
    0x0004daaa add r1, sp, 0x18                              |         r1 += var_18h;
    0x0004daac strd r5, r4, [sp, 0x18]                       |         __asm ("strd r5, r4, [var_1ch]");
    0x0004dab0 blx 0x10124                                   |         r0 = g_slist_append ();
                                                             |         if (r0 == 0) {
    0x0004dab4 cbz r0, 0x4db00                               |             goto label_4;
                                                             |         }
    0x0004dab6 bl 0x5596c                                    |         r0 = fcn_0005596c ();
    0x0004daba mov r1, r0                                    |         r1 = r0;
    0x0004dabc mov r0, sb                                    |         r0 = sb;
    0x0004dabe blx 0xe18c                                    |         cert_set_init ();
    0x0004dac2 ldr r1, [sp, 0x14]                            |         r1 = var_14h;
    0x0004dac4 bl 0x564e8                                    |         r0 = fcn_000564e8 (r0, r1);
                                                             |         if (r0 == 0) {
    0x0004dac8 cbz r0, 0x4db00                               |             goto label_4;
                                                             |         }
    0x0004daca mov r0, r4                                    |         r0 = r4;
    0x0004dacc blx 0xf3e8                                    |         fcn_0000f3e8 ();
    0x0004dad0 ldr r4, [sp, 0x14]                            |         r4 = var_14h;
                                                             |         if (r4 == 0) {
    0x0004dad2 cbz r4, 0x4db0c                               |             goto label_5;
                                                             |         }
    0x0004dad4 mov r0, r4                                    |         r0 = r4;
    0x0004dad6 blx 0xfaa4                                    |         fcn_0000faa4 ();
    0x0004dada str r0, [r6]                                  |         *(r6) = r0;
    0x0004dadc mov r0, r4                                    |         r0 = r4;
    0x0004dade blx 0xfe54                                    |         gst_resource_error_quark ();
    0x0004dae2 mov r0, r8                                    |         r0 = r8;
    0x0004dae4 blx 0xf548                                    |         gst_mini_object_unref ();
    0x0004dae8 movs r0, 1                                    |         r0 = 1;
    0x0004daea add sp, 0x24                                  |         
    0x0004daec pop.w {r4, r5, r6, r7, r8, sb, pc}            |         
                                                             | label_2:
    0x0004daf0 bl 0x4bc14                                    |         fcn_0004bc14 ();
    0x0004daf4 ldr r3, [pc, 0xe4]                            |         
    0x0004daf6 mov r4, r0                                    |         r4 = r0;
    0x0004daf8 add r3, pc                                    |         r3 = 0x9b6d8;
    0x0004dafa cmp r0, 0                                     |         
    0x0004dafc bne 0x4da38                                   |         
                                                             |     } while (r0 != 0);
                                                             | label_3:
    0x0004dafe movs r4, 0                                    |     r4 = 0;
                                                             | label_4:
    0x0004db00 ldr r0, [sp, 0x14]                            |     r0 = var_14h;
    0x0004db02 blx 0xfe54                                    |     gst_resource_error_quark ();
    0x0004db06 mov r0, r4                                    |     r0 = r4;
    0x0004db08 blx 0xf3e8                                    |     fcn_0000f3e8 ();
                                                             | label_5:
    0x0004db0c ldr r1, [pc, 0xd0]                            |     
    0x0004db0e add r1, pc                                    |     r1 = 0x9b6f2;
    0x0004db10 ldr r3, [r1, 0x14]                            |     r3 = *(0x9b706);
                                                             |     if (r3 == 0) {
    0x0004db12 cbnz r3, 0x4db24                              |         
    0x0004db14 ldr r2, [pc, 0xcc]                            |         
    0x0004db16 movs r3, 1                                    |         r3 = 1;
    0x0004db18 ldr r0, [pc, 0xcc]                            |         
    0x0004db1a adds r1, 0x14                                 |         r1 += 0x14;
    0x0004db1c add r2, pc                                    |         r2 = 0x9b704;
    0x0004db1e add r0, pc                                    |         r0 = 0x9b70a;
    0x0004db20 blx 0xdaa0                                    |         fcn_0000daa0 ();
                                                             |     }
    0x0004db24 ldr r1, [pc, 0xc4]                            |     
    0x0004db26 mov r0, r7                                    |     r0 = r7;
    0x0004db28 ldr r3, [pc, 0xc4]                            |     
    0x0004db2a movs r2, 0                                    |     r2 = 0;
    0x0004db2c add r1, pc                                    |     
    0x0004db2e ldr r1, [r1, 0x14]                            |     r1 = *(0x9b730);
    0x0004db30 add r3, pc                                    |     r3 = 0x9b724;
    0x0004db32 blx 0x10398                                   |     fcn_00010398 ();
    0x0004db36 ldr r2, [pc, 0xbc]                            |     
    0x0004db38 movs r1, 0x20                                 |     r1 = 0x20;
    0x0004db3a movs r0, 0                                    |     r0 = 0;
    0x0004db3c add r2, pc                                    |     r2 = 0x9b736;
    0x0004db3e blx 0xe318                                    |     gst_element_error_printf ()
    0x0004db42 b 0x4db6a                                     |     goto label_6;
                                                             | label_1:
    0x0004db44 ldr r1, [pc, 0xb0]                            |     
    0x0004db46 add r1, pc                                    |     r1 = 0x9b742;
    0x0004db48 ldr r3, [r1, 0x14]                            |     r3 = *(0x9b756);
    0x0004db4a cbz r3, 0x4db8c                               |     
                                                             |     while (1) {
    0x0004db4c ldr r1, [pc, 0xac]                            |         
    0x0004db4e mov r0, r7                                    |         r0 = r7;
    0x0004db50 ldr r3, [pc, 0xac]                            |         
    0x0004db52 movs r2, 0                                    |         r2 = 0;
    0x0004db54 add r1, pc                                    |         
    0x0004db56 ldr r1, [r1, 0x14]                            |         r1 = *(0x9b768);
    0x0004db58 add r3, pc                                    |         r3 = 0x9b75c;
    0x0004db5a blx 0x10398                                   |         fcn_00010398 ();
    0x0004db5e ldr r2, [pc, 0xa4]                            |         
    0x0004db60 movs r1, 0x20                                 |         r1 = 0x20;
    0x0004db62 movs r0, 0                                    |         r0 = 0;
    0x0004db64 add r2, pc                                    |         r2 = 0x9b76e;
    0x0004db66 blx 0xe318                                    |         gst_element_error_printf ()
    0x0004db68 invalid                                       |         
                                                             | label_6:
    0x0004db6a mov r0, r8                                    |         r0 = r8;
    0x0004db6c blx 0xf548                                    |         gst_mini_object_unref ();
    0x0004db70 movs r0, 0                                    |         r0 = 0;
    0x0004db72 add sp, 0x24                                  |         
    0x0004db74 pop.w {r4, r5, r6, r7, r8, sb, pc}            |         
    0x0004db76 strh r0, [r6, 0x1e]                           |         *((r6 + 0x1e)) = r0;
                                                             | label_0:
    0x0004db78 ldr r2, [pc, 0x8c]                            |         
    0x0004db7a ldr r1, [pc, 0x90]                            |         
    0x0004db7c add r2, pc                                    |         r2 = 0x9b788;
    0x0004db7e add r1, pc                                    |         r1 = 0x9b790;
    0x0004db80 blx 0xdc4c                                    |         g_ascii_string_to_unsigned ();
    0x0004db84 mov r0, r4                                    |         r0 = r4;
    0x0004db86 add sp, 0x24                                  |         
    0x0004db88 pop.w {r4, r5, r6, r7, r8, sb, pc}            |         
    0x0004db8c ldr r2, [pc, 0x80]                            |         
    0x0004db8e movs r3, 1                                    |         r3 = 1;
    0x0004db90 ldr r0, [pc, 0x80]                            |         
    0x0004db92 adds r1, 0x14                                 |         r1 += 0x14;
    0x0004db94 add r2, pc                                    |         r2 = 0x9b7a8;
    0x0004db96 add r0, pc                                    |         r0 = 0x9b7ae;
    0x0004db98 blx 0xdaa0                                    |         fcn_0000daa0 ();
    0x0004db9c b 0x4db4c                                     |         
                                                             |     }
                                                             | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x4dc4c */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0004dc4c ()                          | void fcn_0004dc4c (int16_t arg2, int16_t domain) {
                                                     |     r1 = arg2;
                                                     |     r0 = domain;
    0x0004dc4c push {r3, r4, r5, r6, r7, lr}         |     
    0x0004dc4e add.w r6, r0, 0x18                    |     r6 = r0 + 0x18;
    0x0004dc52 mov r4, r0                            |     r4 = r0;
    0x0004dc54 mov r0, r6                            |     r0 = r6;
    0x0004dc56 mov r5, r1                            |     r5 = r1;
    0x0004dc58 blx 0xf26c                            |     socket (r0, r1, r2);
    0x0004dc5c ldr r2, [r4, 0x24]                    |     r2 = *((r4 + 0x24));
                                                     |     if (r2 != 0) {
    0x0004dc5e cbnz r2, 0x4dcae                      |         goto label_1;
                                                     |     }
    0x0004dc60 ldr r7, [pc, 0x98]                    |     
    0x0004dc62 mov r0, r4                            |     r0 = r4;
    0x0004dc64 add r7, pc                            |     r7 = 0x9b964;
    0x0004dc66 ldr r1, [r7, 8]                       |     r1 = *(0x9b96c);
    0x0004dc68 blx 0xe78c                            |     gst_rtsp_server_attach ();
    0x0004dc6c ldr r2, [r4, 0x20]                    |     r2 = *((r4 + 0x20));
    0x0004dc6e movs r1, 4                            |     r1 = 4;
    0x0004dc70 ldr r0, [r4, 0x14]                    |     r0 = *((r4 + 0x14));
    0x0004dc72 blx 0xdbe8                            |     r0 = fcn_0000dbe8 ();
                                                     |     if (r0 != 0) {
    0x0004dc76 cbz r0, 0x4dc82                       |         
    0x0004dc78 mov r0, r6                            |         r0 = r6;
    0x0004dc7a blx 0xf548                            |         gst_mini_object_unref ();
    0x0004dc7e movs r0, 1                            |         r0 = 1;
    0x0004dc80 pop {r3, r4, r5, r6, r7, pc}          |         
                                                     |     }
    0x0004dc82 ldr r3, [r7, 0x14]                    |     r3 = *((r7 + 0x14));
                                                     |     if (r3 == 0) {
    0x0004dc84 cbz r3, 0x4dce6                       |         goto label_2;
                                                     |     }
                                                     | label_0:
    0x0004dc86 ldr r1, [pc, 0x78]                    |     
    0x0004dc88 mov r0, r5                            |     r0 = r5;
    0x0004dc8a ldr r3, [pc, 0x78]                    |     
    0x0004dc8c movs r2, 0                            |     r2 = 0;
    0x0004dc8e add r1, pc                            |     
    0x0004dc90 ldr r1, [r1, 0x14]                    |     r1 = *(0x9b9a8);
    0x0004dc92 add r3, pc                            |     r3 = 0x9b99c;
    0x0004dc94 blx 0x10398                           |     fcn_00010398 ();
    0x0004dc96 invalid                               |     
    0x0004dc9a movs r1, 0x20                         |     r1 = 0x20;
    0x0004dc9c movs r0, 0                            |     r0 = 0;
    0x0004dc9e add r2, pc                            |     r2 += pc;
    0x0004dca0 blx 0xe318                            |     gst_element_error_printf ()
                                                     |     do {
    0x0004dca4 mov r0, r6                            |         r0 = r6;
    0x0004dca6 blx 0xf548                            |         gst_mini_object_unref ();
    0x0004dcaa movs r0, 0                            |         r0 = 0;
    0x0004dcac pop {r3, r4, r5, r6, r7, pc}          |         
                                                     | label_1:
    0x0004dcae ldr r1, [pc, 0x5c]                    |         
    0x0004dcb0 add r1, pc                            |         r1 = 0x9b9c2;
    0x0004dcb2 ldr r3, [r1, 0x14]                    |         r3 = *(0x9b9d6);
                                                     |         if (r3 == 0) {
    0x0004dcb4 cbnz r3, 0x4dcc6                      |             
    0x0004dcb6 ldr r2, [pc, 0x58]                    |             
    0x0004dcb8 movs r3, 1                            |             r3 = 1;
    0x0004dcba ldr r0, [pc, 0x58]                    |             
    0x0004dcbc adds r1, 0x14                         |             r1 += 0x14;
    0x0004dcbe add r2, pc                            |             r2 = 0x9b9d4;
    0x0004dcc0 add r0, pc                            |             r0 = 0x9b9da;
    0x0004dcc2 blx 0xdaa0                            |             fcn_0000daa0 ();
                                                     |         }
    0x0004dcc6 ldr r1, [pc, 0x50]                    |         
    0x0004dcc8 mov r0, r5                            |         r0 = r5;
    0x0004dcca ldr r3, [pc, 0x50]                    |         
    0x0004dccc movs r2, 0                            |         r2 = 0;
    0x0004dcce add r1, pc                            |         
    0x0004dcd0 ldr r1, [r1, 0x14]                    |         r1 = *(0x9ba00);
    0x0004dcd2 add r3, pc                            |         r3 = 0x9b9f4;
    0x0004dcd4 blx 0x10398                           |         fcn_00010398 ();
    0x0004dcd8 ldr r2, [pc, 0x44]                    |         
    0x0004dcda movs r1, 0x20                         |         r1 = 0x20;
    0x0004dcdc movs r0, 0                            |         r0 = 0;
    0x0004dcde add r2, pc                            |         r2 = 0x9ba02;
    0x0004dce0 blx 0xe318                            |         gst_element_error_printf ()
    0x0004dce4 b 0x4dca4                             |         
                                                     |     } while (1);
                                                     | label_2:
    0x0004dce6 ldr r2, [pc, 0x3c]                    |     
    0x0004dce8 movs r3, 1                            |     r3 = 1;
    0x0004dcea ldr r0, [pc, 0x3c]                    |     
    0x0004dcec add.w r1, r7, 0x14                    |     r1 = r7 + 0x14;
    0x0004dcf0 add r2, pc                            |     r2 = 0x9ba1a;
    0x0004dcf2 add r0, pc                            |     r0 = 0x9ba20;
    0x0004dcf4 blx 0xdaa0                            |     fcn_0000daa0 ();
    0x0004dcf8 b 0x4dc86                             |     goto label_0;
                                                     | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x4dd54 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0004dd54 ()                          | void fcn_0004dd54 (int16_t arg2, int16_t domain) {
                                                     |     r1 = arg2;
                                                     |     r0 = domain;
    0x0004dd54 push {r3, r4, r5, r6, r7, lr}         |     
    0x0004dd56 mov r4, r0                            |     r4 = r0;
                                                     |     if (r0 != 0) {
    0x0004dd58 cbz r0, 0x4dd94                       |         
    0x0004dd5a add.w r7, r0, 0x18                    |         r7 = r0 + 0x18;
    0x0004dd5e mov r6, r1                            |         r6 = r1;
    0x0004dd60 mov r0, r7                            |         r0 = r7;
    0x0004dd62 blx 0xf26c                            |         socket (r0, r1, r2);
    0x0004dd66 ldr r5, [r4, 0x24]                    |         r5 = *((r4 + 0x24));
    0x0004dd68 cmp r5, 0                             |         
                                                     |         if (r5 != 0) {
    0x0004dd6a bne 0x4dde6                           |             goto label_1;
                                                     |         }
    0x0004dd6c ldr r0, [r4, 0x14]                    |         r0 = *((r4 + 0x14));
    0x0004dd6e cmp r0, 0                             |         
                                                     |         if (r0 == 0) {
    0x0004dd70 beq 0x4de1e                           |             goto label_2;
                                                     |         }
    0x0004dd72 ldr r2, [r4, 0x20]                    |         r2 = *((r4 + 0x20));
    0x0004dd74 movs r1, 3                            |         r1 = 3;
    0x0004dd76 blx 0xdbe8                            |         r0 = fcn_0000dbe8 ();
                                                     |         if (r0 == 0) {
    0x0004dd7a cbz r0, 0x4dda6                       |             goto label_3;
                                                     |         }
    0x0004dd7c ldr r3, [pc, 0xd8]                    |         
    0x0004dd7e mov r2, r5                            |         r2 = r5;
    0x0004dd80 mov r0, r4                            |         r0 = r4;
    0x0004dd82 add r3, pc                            |         r3 = 0x9bbde;
    0x0004dd84 ldr r1, [r3, 0xc]                     |         r1 = *(0x9bbea);
    0x0004dd86 blx 0xe78c                            |         gst_rtsp_server_attach ();
    0x0004dd8a mov r0, r7                            |         r0 = r7;
    0x0004dd8c blx 0xf548                            |         gst_mini_object_unref ();
    0x0004dd90 movs r0, 1                            |         r0 = 1;
    0x0004dd92 pop {r3, r4, r5, r6, r7, pc}          |         
                                                     |     }
    0x0004dd94 ldr r1, [pc, 0xc4]                    |     
    0x0004dd96 ldr r2, [pc, 0xc8]                    |     
    0x0004dd98 add r1, pc                            |     r1 = 0x9bbf8;
    0x0004dd9a add r2, pc                            |     r2 = 0x9bc00;
    0x0004dd9c adds r1, 0x18                         |     r1 += 0x18;
    0x0004dd9e blx 0xdc4c                            |     g_ascii_string_to_unsigned ();
    0x0004dda2 mov r0, r4                            |     r0 = r4;
    0x0004dda4 pop {r3, r4, r5, r6, r7, pc}          |     
                                                     | label_3:
    0x0004dda6 ldr r1, [pc, 0xbc]                    |     
    0x0004dda8 add r1, pc                            |     r1 = 0x9bc12;
    0x0004ddaa ldr r3, [r1, 0x14]                    |     r3 = *(0x9bc26);
                                                     |     if (r3 == 0) {
    0x0004ddac cbnz r3, 0x4ddbe                      |         
    0x0004ddae ldr r2, [pc, 0xb8]                    |         
    0x0004ddb0 movs r3, 1                            |         r3 = 1;
    0x0004ddb2 ldr r0, [pc, 0xb8]                    |         
    0x0004ddb4 adds r1, 0x14                         |         r1 += 0x14;
    0x0004ddb6 add r2, pc                            |         r2 = 0x9bc24;
    0x0004ddb8 add r0, pc                            |         r0 = 0x9bc2a;
    0x0004ddba blx 0xdaa0                            |         fcn_0000daa0 ();
                                                     |     }
    0x0004ddbe ldr r1, [pc, 0xb0]                    |     
    0x0004ddc0 mov r0, r6                            |     r0 = r6;
    0x0004ddc2 ldr r3, [pc, 0xb0]                    |     
    0x0004ddc4 movs r2, 0                            |     r2 = 0;
    0x0004ddc6 add r1, pc                            |     
    0x0004ddc8 ldr r1, [r1, 0x14]                    |     r1 = *(0x9bc50);
    0x0004ddca add r3, pc                            |     r3 = 0x9bc44;
    0x0004ddcc blx 0x10398                           |     fcn_00010398 ();
    0x0004ddd0 ldr r2, [pc, 0xa4]                    |     
    0x0004ddd2 movs r1, 0x20                         |     r1 = 0x20;
    0x0004ddd4 movs r0, 0                            |     r0 = 0;
    0x0004ddd6 add r2, pc                            |     r2 = 0x9bc52;
    0x0004ddd8 blx 0xe318                            |     gst_element_error_printf ()
                                                     |     do {
                                                     | label_0:
    0x0004dddc mov r0, r7                            |         r0 = r7;
    0x0004ddde blx 0xf548                            |         gst_mini_object_unref ();
    0x0004dde2 movs r0, 0                            |         r0 = 0;
    0x0004dde4 pop {r3, r4, r5, r6, r7, pc}          |         
                                                     | label_1:
    0x0004dde6 ldr r1, [pc, 0x94]                    |         
    0x0004dde8 add r1, pc                            |         r1 = 0x9bc6a;
    0x0004ddea ldr r3, [r1, 0x14]                    |         r3 = *(0x9bc7e);
                                                     |         if (r3 == 0) {
    0x0004ddec cbnz r3, 0x4ddfe                      |             
    0x0004ddee ldr r2, [pc, 0x90]                    |             
    0x0004ddf0 movs r3, 1                            |             r3 = 1;
    0x0004ddf2 ldr r0, [pc, 0x90]                    |             
    0x0004ddf4 adds r1, 0x14                         |             r1 += 0x14;
    0x0004ddf6 add r2, pc                            |             r2 = 0x9bc7c;
    0x0004ddf8 add r0, pc                            |             r0 = 0x9bc82;
    0x0004ddfa blx 0xdaa0                            |             fcn_0000daa0 ();
                                                     |         }
    0x0004ddfe ldr r1, [pc, 0x88]                    |         
    0x0004de00 mov r0, r6                            |         r0 = r6;
    0x0004de02 ldr r3, [pc, 0x88]                    |         
    0x0004de04 movs r2, 0                            |         r2 = 0;
    0x0004de06 add r1, pc                            |         
    0x0004de08 ldr r1, [r1, 0x14]                    |         r1 = *(0x9bca8);
    0x0004de0a add r3, pc                            |         r3 = 0x9bc9c;
    0x0004de0c blx 0x10398                           |         fcn_00010398 ();
    0x0004de10 ldr r2, [pc, 0x7c]                    |         
    0x0004de12 movs r1, 0x20                         |         r1 = 0x20;
    0x0004de14 movs r0, 0                            |         r0 = 0;
    0x0004de16 add r2, pc                            |         r2 = 0x9bcaa;
    0x0004de18 blx 0xe318                            |         gst_element_error_printf ()
    0x0004de1c b 0x4dddc                             |         
                                                     |     } while (1);
                                                     | label_2:
    0x0004de1e ldr r1, [pc, 0x74]                    |     
    0x0004de20 add r1, pc                            |     r1 = 0x9bcba;
    0x0004de22 ldr r3, [r1, 0x14]                    |     r3 = *(0x9bcce);
                                                     |     if (r3 == 0) {
    0x0004de24 cbnz r3, 0x4de36                      |         
    0x0004de26 ldr r2, [pc, 0x70]                    |         
    0x0004de28 movs r3, 1                            |         r3 = 1;
    0x0004de2a ldr r0, [pc, 0x70]                    |         
    0x0004de2c adds r1, 0x14                         |         r1 += 0x14;
    0x0004de2e add r2, pc                            |         r2 = 0x9bccc;
    0x0004de30 add r0, pc                            |         r0 = 0x9bcd2;
    0x0004de32 blx 0xdaa0                            |         fcn_0000daa0 ();
                                                     |     }
    0x0004de36 ldr r1, [pc, 0x68]                    |     
    0x0004de38 mov r0, r6                            |     r0 = r6;
    0x0004de3a ldr r3, [pc, 0x68]                    |     
    0x0004de3c movs r2, 0                            |     r2 = 0;
    0x0004de3e add r1, pc                            |     
    0x0004de40 ldr r1, [r1, 0x14]                    |     r1 = *(0x9bcf8);
    0x0004de42 add r3, pc                            |     r3 = 0x9bcec;
    0x0004de44 blx 0x10398                           |     fcn_00010398 ();
    0x0004de48 ldr r2, [pc, 0x5c]                    |     
    0x0004de4a movs r1, 0x20                         |     r1 = 0x20;
    0x0004de4c movs r0, 0                            |     r0 = 0;
    0x0004de4e add r2, pc                            |     r2 = 0x9bcfa;
    0x0004de50 blx 0xe318                            |     gst_element_error_printf ()
    0x0004de54 b 0x4dddc                             |     goto label_0;
                                                     | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x4ded4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0004ded4 ()                  | void fcn_0004ded4 (int16_t arg2, int16_t domain) {
                                             |     r1 = arg2;
                                             |     r0 = domain;
    0x0004ded4 push {r4, r5, r6, lr}         |     
    0x0004ded6 mov r4, r0                    |     r4 = r0;
                                             |     if (r0 != 0) {
    0x0004ded8 cbz r0, 0x4df0e               |         
    0x0004deda add.w r5, r0, 0x18            |         r5 = r0 + 0x18;
    0x0004dede mov r6, r1                    |         r6 = r1;
    0x0004dee0 mov r0, r5                    |         r0 = r5;
    0x0004dee2 blx 0xf26c                    |         socket (r0, r1, r2);
    0x0004dee6 ldr r3, [r4, 0x24]            |         r3 = *((r4 + 0x24));
    0x0004dee8 cmp r3, 0                     |         
                                             |         if (r3 != 0) {
    0x0004deea bne 0x4df60                   |             goto label_0;
                                             |         }
    0x0004deec ldr r4, [r4, 0x14]            |         r4 = *((r4 + 0x14));
    0x0004deee cmp r4, 0                     |         
                                             |         if (r4 == 0) {
    0x0004def0 beq 0x4df98                   |             goto label_1;
                                             |         }
    0x0004def2 bl 0x5596c                    |         r0 = fcn_0005596c ();
    0x0004def6 mov r1, r0                    |         r1 = r0;
    0x0004def8 mov r0, r4                    |         r0 = r4;
    0x0004defa blx 0xe18c                    |         cert_set_init ();
    0x0004defe bl 0x565e4                    |         r0 = fcn_000565e4 (r0);
                                             |         if (r0 == 0) {
    0x0004df02 cbz r0, 0x4df20               |             goto label_2;
                                             |         }
    0x0004df04 mov r0, r5                    |         r0 = r5;
    0x0004df06 blx 0xf548                    |         gst_mini_object_unref ();
    0x0004df0a movs r0, 1                    |         r0 = 1;
    0x0004df0c pop {r4, r5, r6, pc}          |         
                                             |     }
    0x0004df0e ldr r1, [pc, 0xc0]            |     
    0x0004df10 ldr r2, [pc, 0xc0]            |     
    0x0004df12 add r1, pc                    |     r1 = 0x9bee8;
    0x0004df14 add r2, pc                    |     r2 = 0x9beec;
    0x0004df16 adds r1, 0x30                 |     r1 += 0x30;
    0x0004df18 blx 0xdc4c                    |     g_ascii_string_to_unsigned ();
    0x0004df1c mov r0, r4                    |     r0 = r4;
    0x0004df1e pop {r4, r5, r6, pc}          |     
                                             | label_2:
    0x0004df20 ldr r1, [pc, 0xb4]            |     
    0x0004df22 add r1, pc                    |     r1 = 0x9befe;
    0x0004df24 ldr r3, [r1, 0x14]            |     r3 = *(0x9bf12);
                                             |     if (r3 == 0) {
    0x0004df26 cbnz r3, 0x4df38              |         
    0x0004df28 ldr r2, [pc, 0xb0]            |         
    0x0004df2a movs r3, 1                    |         r3 = 1;
    0x0004df2c ldr r0, [pc, 0xb0]            |         
    0x0004df2e adds r1, 0x14                 |         r1 += 0x14;
    0x0004df30 add r2, pc                    |         r2 = 0x9bf10;
    0x0004df32 add r0, pc                    |         r0 = 0x9bf16;
    0x0004df34 blx 0xdaa0                    |         fcn_0000daa0 ();
                                             |     }
    0x0004df38 ldr r1, [pc, 0xa8]            |     
    0x0004df3a mov r0, r6                    |     r0 = r6;
    0x0004df3c ldr r3, [pc, 0xa8]            |     
    0x0004df3e movs r2, 0                    |     r2 = 0;
    0x0004df40 add r1, pc                    |     
    0x0004df42 ldr r1, [r1, 0x14]            |     r1 = *(0x9bf3c);
    0x0004df44 add r3, pc                    |     r3 = 0x9bf30;
    0x0004df46 blx 0x10398                   |     fcn_00010398 ();
    0x0004df4a ldr r2, [pc, 0xa0]            |     
    0x0004df4c movs r1, 0x20                 |     r1 = 0x20;
    0x0004df4e movs r0, 0                    |     r0 = 0;
    0x0004df50 add r2, pc                    |     r2 = 0x9bf42;
    0x0004df52 blx 0xe318                    |     gst_element_error_printf ()
                                             |     do {
    0x0004df56 mov r0, r5                    |         r0 = r5;
    0x0004df58 blx 0xf548                    |         gst_mini_object_unref ();
    0x0004df5c movs r0, 0                    |         r0 = 0;
    0x0004df5e pop {r4, r5, r6, pc}          |         
                                             | label_0:
    0x0004df60 ldr r1, [pc, 0x8c]            |         
    0x0004df62 add r1, pc                    |         r1 = 0x9bf56;
    0x0004df64 ldr r3, [r1, 0x14]            |         r3 = *(0x9bf6a);
                                             |         if (r3 == 0) {
    0x0004df66 cbnz r3, 0x4df78              |             
    0x0004df68 ldr r2, [pc, 0x88]            |             
    0x0004df6a movs r3, 1                    |             r3 = 1;
    0x0004df6c ldr r0, [pc, 0x88]            |             
    0x0004df6e adds r1, 0x14                 |             r1 += 0x14;
    0x0004df70 add r2, pc                    |             r2 = 0x9bf68;
    0x0004df72 add r0, pc                    |             r0 = 0x9bf6e;
    0x0004df74 blx 0xdaa0                    |             fcn_0000daa0 ();
                                             |         }
    0x0004df78 ldr r1, [pc, 0x80]            |         
    0x0004df7a mov r0, r6                    |         r0 = r6;
    0x0004df7c ldr r3, [pc, 0x80]            |         
    0x0004df7e movs r2, 0                    |         r2 = 0;
    0x0004df80 add r1, pc                    |         
    0x0004df82 ldr r1, [r1, 0x14]            |         r1 = *(0x9bf94);
    0x0004df84 add r3, pc                    |         r3 = 0x9bf88;
    0x0004df86 blx 0x10398                   |         fcn_00010398 ();
    0x0004df8a ldr r2, [pc, 0x78]            |         
    0x0004df8c movs r1, 0x20                 |         r1 = 0x20;
    0x0004df8e movs r0, 0                    |         r0 = 0;
    0x0004df90 add r2, pc                    |         r2 = 0x9bf9a;
    0x0004df92 blx 0xe318                    |         gst_element_error_printf ()
    0x0004df96 b 0x4df56                     |         
                                             |     } while (1);
                                             | label_1:
    0x0004df98 ldr r1, [pc, 0x6c]            |     
    0x0004df9a add r1, pc                    |     r1 = 0x9bfa6;
    0x0004df9c ldr r3, [r1, 0x14]            |     r3 = *(0x9bfba);
                                             |     if (r3 == 0) {
    0x0004df9e cbnz r3, 0x4dfb0              |         
    0x0004dfa0 ldr r2, [pc, 0x68]            |         
    0x0004dfa2 movs r3, 1                    |         r3 = 1;
    0x0004dfa4 ldr r0, [pc, 0x68]            |         
    0x0004dfa6 adds r1, 0x14                 |         r1 += 0x14;
    0x0004dfa8 add r2, pc                    |         r2 = 0x9bfb8;
    0x0004dfaa add r0, pc                    |         r0 = 0x9bfbe;
    0x0004dfac blx 0xdaa0                    |         fcn_0000daa0 ();
                                             |     }
    0x0004dfb0 ldr r1, [pc, 0x60]            |     
    0x0004dfb2 mov r0, r6                    |     r0 = r6;
    0x0004dfb4 ldr r3, [pc, 0x60]            |     
    0x0004dfb6 movs r2, 0                    |     r2 = 0;
    0x0004dfb8 add r1, pc                    |     
    0x0004dfba ldr r1, [r1, 0x14]            |     r1 = *(0x9bfe4);
    0x0004dfbc add r3, pc                    |     r3 = 0x9bfd8;
    0x0004dfbe blx 0x10398                   |     fcn_00010398 ();
    0x0004dfc2 ldr r2, [pc, 0x58]            |     
    0x0004dfc4 movs r1, 0x20                 |     r1 = 0x20;
    0x0004dfc6 movs r0, 0                    |     r0 = 0;
    0x0004dfc8 add r2, pc                    |     r2 = 0x9bfea;
    0x0004dfca blx 0xe318                    |     gst_element_error_printf ()
    0x0004dfcc invalid                       |     
                                             | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x4e048 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0004e048 ()                          | void fcn_0004e048 (int16_t arg2, int16_t domain) {
                                                     |     r1 = arg2;
                                                     |     r0 = domain;
    0x0004e048 mvnsmi lr, sp, lsr 18                 |     __asm ("mvnsmi lr, sp, lsr 18");
    0x0004e04c mov r4, r0                            |     r4 = r0;
                                                     |     if (r0 == 0) {
    0x0004e04e cbz r0, 0x4e096                       |         goto label_1;
                                                     |     }
    0x0004e050 add.w r7, r0, 0x18                    |     r7 = r0 + 0x18;
    0x0004e054 mov r5, r1                            |     r5 = r1;
    0x0004e056 mov r0, r7                            |     r0 = r7;
    0x0004e058 blx 0xf26c                            |     socket (r0, r1, r2);
    0x0004e05a invalid                               |     
                                                     |     if (r3 != 0) {
    0x0004e05e cbnz r3, 0x4e088                      |         goto label_2;
                                                     |     }
    0x0004e060 mov.w r8, 1                           |     r8 = 1;
    0x0004e064 mov r1, r5                            |     r1 = r5;
    0x0004e066 mov r0, r4                            |     r0 = r4;
    0x0004e068 str.w r8, [r4, 0x24]                  |     __asm ("str.w r8, [r4, 0x24]");
    0x0004e06c bl 0x4d60c                            |     fcn_0004d60c (r0, r1);
    0x0004e070 ldr r1, [r4, 0x28]                    |     r1 = *((r4 + 0x28));
    0x0004e072 mov r6, r8                            |     r6 = r8;
    0x0004e074 cbnz r1, 0x4e0ac                      |     
                                                     |     while (1) {
    0x0004e076 mov r0, r7                            |         r0 = r7;
    0x0004e078 blx 0xf548                            |         r0 = gst_mini_object_unref ();
    0x0004e07a orn r6, r6, r0, asr 16                |         r6 |= r0;
                                                     |         r6 = ~r6;
    0x0004e07e blx 0xfba0                            |         fcn_0000fba0 ();
    0x0004e082 mov r0, r6                            |         r0 = r6;
    0x0004e084 pop.w {r4, r5, r6, r7, r8, pc}        |         
                                                     | label_2:
    0x0004e088 mov r0, r7                            |         r0 = r7;
    0x0004e08a movs r6, 1                            |         r6 = 1;
    0x0004e08c blx 0xf548                            |         gst_mini_object_unref ();
    0x0004e090 mov r0, r6                            |         r0 = r6;
    0x0004e092 pop.w {r4, r5, r6, r7, r8, pc}        |         
                                                     | label_1:
    0x0004e096 ldr r1, [pc, 0x6c]                    |         
    0x0004e098 mov r6, r0                            |         r6 = r0;
    0x0004e09a ldr r2, [pc, 0x6c]                    |         
    0x0004e09c add r1, pc                            |         r1 = 0x9c1a6;
    0x0004e09e add r2, pc                            |         r2 = 0x9c1ac;
    0x0004e0a0 adds r1, 0x48                         |         r1 += 0x48;
    0x0004e0a2 blx 0xdc4c                            |         g_ascii_string_to_unsigned ();
    0x0004e0a6 mov r0, r6                            |         r0 = r6;
    0x0004e0a8 pop.w {r4, r5, r6, r7, r8, pc}        |         
    0x0004e0ac ldr r0, [r4, 0x2c]                    |         r0 = *((r4 + 0x2c));
    0x0004e0ae blx 0xe6a8                            |         r0 = gst_static_caps_get ();
    0x0004e0b2 mov r6, r0                            |         r6 = r0;
                                                     |         if (r0 == 0) {
    0x0004e0b4 cbz r0, 0x4e0ca                       |             goto label_3;
                                                     |         }
    0x0004e0b6 mov r6, r8                            |         r6 = r8;
                                                     | label_0:
    0x0004e0b8 ldr r0, [r4, 0x2c]                    |         r0 = *((r4 + 0x2c));
    0x0004e0ba movs r3, 0                            |         r3 = 0;
    0x0004e0bc str r3, [r4, 0x2c]                    |         *((r4 + 0x2c)) = r3;
                                                     |         if (r0 != 0) {
    0x0004e0be cbz r0, 0x4e0c4                       |             
    0x0004e0c0 blx 0xfba0                            |             fcn_0000fba0 ();
                                                     |         }
    0x0004e0c4 movs r3, 0                            |         r3 = 0;
    0x0004e0c6 str r3, [r4, 0x28]                    |         *((r4 + 0x28)) = r3;
    0x0004e0c8 b 0x4e076                             |         
                                                     |     }
                                                     | label_3:
    0x0004e0ca ldr r1, [pc, 0x40]                    |     
    0x0004e0cc add r1, pc                            |     r1 = 0x9c1de;
    0x0004e0ce ldr r3, [r1, 0x14]                    |     r3 = *(0x9c1f2);
                                                     |     if (r3 == 0) {
    0x0004e0d0 cbnz r3, 0x4e0e2                      |         
    0x0004e0d2 ldr r2, [pc, 0x3c]                    |         
    0x0004e0d4 mov r3, r8                            |         r3 = r8;
    0x0004e0d6 ldr r0, [pc, 0x3c]                    |         
    0x0004e0d8 adds r1, 0x14                         |         r1 += 0x14;
    0x0004e0da add r2, pc                            |         r2 = 0x9c1f0;
    0x0004e0dc add r0, pc                            |         r0 = 0x9c1f6;
    0x0004e0de blx 0xdaa0                            |         fcn_0000daa0 ();
                                                     |     }
    0x0004e0e2 ldr r3, [pc, 0x34]                    |     
    0x0004e0e4 mov r0, r5                            |     r0 = r5;
    0x0004e0e6 movs r2, 0                            |     r2 = 0;
    0x0004e0e8 add r3, pc                            |     r3 = 0x9c206;
    0x0004e0ea ldr r1, [r3, 0x14]                    |     r1 = *(0x9c21a);
    0x0004e0ec ldr r3, [pc, 0x2c]                    |     
    0x0004e0ee add r3, pc                            |     r3 = 0x9c20e;
    0x0004e0f0 blx 0x10398                           |     fcn_00010398 ();
    0x0004e0f4 ldr r2, [pc, 0x28]                    |     
    0x0004e0f6 movs r1, 0x20                         |     r1 = 0x20;
    0x0004e0f8 movs r0, 0                            |     r0 = 0;
    0x0004e0fa add r2, pc                            |     r2 = 0x9c21e;
    0x0004e0fc blx 0xe318                            |     gst_element_error_printf ()
    0x0004e100 b 0x4e0b8                             |     goto label_0;
                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x4e14c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0004e14c ()                                      | void fcn_0004e14c (int16_t arg_20h, int16_t arg_c8h, int16_t arg_cch, int16_t arg_d0h, 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;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_30h;
                                                                 |     int16_t var_34h;
                                                                 |     int16_t var_38h;
                                                                 |     int16_t var_3ch;
                                                                 |     int16_t var_40h;
                                                                 |     int16_t var_44h;
                                                                 |     int16_t var_48h;
                                                                 |     int16_t var_4ch;
                                                                 |     int16_t var_50h;
                                                                 |     int16_t var_54h;
                                                                 |     int16_t var_58h;
                                                                 |     int16_t var_64h;
                                                                 |     int16_t var_68h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x0004e14c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x0004e150 movs r4, 0                                        |     r4 = 0;
    0x0004e152 sub sp, 0xa4                                      |     
    0x0004e154 mov r5, r1                                        |     r5 = r1;
    0x0004e156 mov r6, r2                                        |     r6 = r2;
    0x0004e158 mov r7, r3                                        |     r7 = r3;
    0x0004e15a mov r8, r0                                        |     r8 = r0;
    0x0004e15c str r4, [sp, 0x48]                                |     var_48h = r4;
    0x0004e15e bl 0x4d6b0                                        |     fcn_0004d6b0 ();
    0x0004e162 ldr r3, [sp, 0xc8]                                |     r3 = *(arg_c8h);
    0x0004e164 mov r2, r8                                        |     r2 = r8;
    0x0004e166 ldr.w r1, [pc, 0x7b8]                             |     
    0x0004e16a add.w sl, sp, 0x58                                |     sl += var_58h;
    0x0004e16c lsrs r0, r3, 9                                    |     r0 = r3 >> 9;
    0x0004e16e str r7, [sp, 0x10]                                |     var_10h = r7;
    0x0004e170 str r3, [sp, 0x18]                                |     var_18h = r3;
    0x0004e172 ldr r3, [sp, 0xcc]                                |     r3 = *(arg_cch);
    0x0004e174 add r1, pc                                        |     r1 = 0x9ca9a;
    0x0004e176 str r1, [sp, 0x24]                                |     var_24h = r1;
    0x0004e178 ldr.w r1, [pc, 0x7a8]                             |     
    0x0004e17c str r3, [sp, 0x20]                                |     var_20h = r3;
    0x0004e17e ldr r3, [sp, 0xd0]                                |     r3 = *(arg_d0h);
    0x0004e180 add r1, pc                                        |     r1 = 0x9caa8;
    0x0004e182 str r6, [sp, 8]                                   |     var_8h = r6;
    0x0004e184 str r1, [sp, 0x14]                                |     var_14h = r1;
    0x0004e186 str r3, [sp, 0x28]                                |     var_28h = r3;
    0x0004e188 ldr.w r3, [pc, 0x79c]                             |     
    0x0004e18c ldr.w r1, [pc, 0x79c]                             |     
    0x0004e190 str r5, [sp]                                      |     *(sp) = r5;
    0x0004e192 add r3, pc                                        |     r3 = 0x9cabe;
    0x0004e194 str r4, [sp, 0x2c]                                |     var_2ch = r4;
    0x0004e196 str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x0004e198 add r1, pc                                        |     r1 = 0x9cac8;
    0x0004e19a ldr.w r3, [pc, 0x794]                             |     
    0x0004e19e str r1, [sp, 4]                                   |     var_4h = r1;
    0x0004e1a0 ldr.w r1, [pc, 0x790]                             |     
    0x0004e1a4 add r3, pc                                        |     r3 = 0x9cada;
    0x0004e1a6 ldr.w fp, [pc, 0x790]                             |     
    0x0004e1a8 invalid                                           |     
    0x0004e1aa str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x0004e1ac ldr.w r3, [pc, 0x78c]                             |     
    0x0004e1b0 add r1, pc                                        |     r1 = 0x9cae8;
    0x0004e1b2 add fp, pc                                        |     fp = 0x9caf0;
    0x0004e1b4 add r3, pc                                        |     r3 = 0x9caf4;
    0x0004e1b6 blx 0xd9e0                                        |     fcn_0000d9e0 ();
    0x0004e1ba ldr r3, [r0, 0x30]                                |     r3 = *((r0 + 0x30));
    0x0004e1bc mov r5, r0                                        |     r5 = r0;
    0x0004e1be mov r1, r4                                        |     r1 = r4;
    0x0004e1c0 movs r2, 0x48                                     |     r2 = 0x48;
    0x0004e1c2 ldrd r7, r6, [r0, 0x34]                           |     __asm ("ldrd r7, r6, [r0, 0x34]");
    0x0004e1c6 mov r0, sl                                        |     r0 = sl;
    0x0004e1c8 str r3, [sp, 0x34]                                |     var_34h = r3;
    0x0004e1ca ldr r3, [r5, 0x10]                                |     r3 = *((r5 + 0x10));
    0x0004e1cc str r4, [sp, 0x4c]                                |     var_4ch = r4;
    0x0004e1ce str r4, [sp, 0x50]                                |     var_50h = r4;
    0x0004e1d0 str r3, [sp, 0x38]                                |     var_38h = r3;
    0x0004e1d2 ldr r3, [r5, 0x48]                                |     r3 = *((r5 + 0x48));
    0x0004e1d4 ldr.w r8, [r5, 0x3c]                              |     r8 = *((r5 + 0x3c));
    0x0004e1d8 ldrb.w sb, [r5, 0x44]                             |     sb = *((r5 + 0x44));
    0x0004e1dc str r3, [sp, 0x3c]                                |     var_3ch = r3;
    0x0004e1de blx 0xe854                                        |     fcn_0000e854 ();
    0x0004e1e2 ldr.w r3, [fp, 0x20]                              |     r3 = *(arg_20h);
    0x0004e1e6 ldr r0, [r3, 0x18]                                |     r0 = *(0x9cb0c);
    0x0004e1e8 blx 0xe86c                                        |     fcn_0000e86c ();
    0x0004e1ec ldr.w r3, [fp, 0x20]                              |     r3 = *(arg_20h);
    0x0004e1f0 mov r4, r0                                        |     r4 = r0;
    0x0004e1f2 ldr r0, [r3, 0x18]                                |     r0 = *(0x9cb0c);
    0x0004e1f4 blx 0x10634                                       |     fcn_00010634 ();
    0x0004e1f8 str r0, [sp, 0x30]                                |     var_30h = r0;
    0x0004e1fa cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x0004e1fc beq.w 0x4e43a                                     |         goto label_13;
                                                                 |     }
    0x0004e200 ldr.w r1, [pc, 0x73c]                             |     
    0x0004e204 mov r3, r7                                        |     r3 = r7;
    0x0004e206 ldr.w r0, [pc, 0x73c]                             |     
    0x0004e20a mov r2, r6                                        |     r2 = r6;
    0x0004e20c add r1, pc                                        |     r1 = 0x9cb50;
    0x0004e20e add r0, pc                                        |     r0 = 0x9cb58;
    0x0004e210 blx 0xe9b4                                        |     r0 = gst_rtsp_message_append_headers ();
    0x0004e214 mov fp, r0                                        |     
                                                                 | label_2:
    0x0004e216 add r0, sp, 0x64                                  |     r0 += var_64h;
    0x0004e218 blx 0xde3c                                        |     fcn_0000de3c ();
    0x0004e21c mov r0, sl                                        |     r0 = sl;
    0x0004e21e blx 0xe134                                        |     fcn_0000e134 ();
    0x0004e222 add r1, sp, 0x4c                                  |     r1 += var_4ch;
    0x0004e224 mov r0, fp                                        |     r0 = fp;
    0x0004e226 blx 0xe040                                        |     r0 = fcn_0000e040 ();
    0x0004e22a mov r7, r0                                        |     r7 = r0;
    0x0004e22c cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0004e22e bne.w 0x4e3e8                                     |         goto label_14;
                                                                 |     }
    0x0004e232 mov r0, fp                                        |     r0 = fp;
    0x0004e234 blx 0xf3e8                                        |     fcn_0000f3e8 ();
    0x0004e238 ldr r3, [sp, 0x4c]                                |     r3 = var_4ch;
    0x0004e23a mov r2, r7                                        |     r2 = r7;
    0x0004e23c mov r1, r6                                        |     r1 = r6;
    0x0004e23e mov r0, r4                                        |     r0 = r4;
    0x0004e240 str r3, [sp, 0x68]                                |     var_68h = r3;
    0x0004e242 blx 0xde48                                        |     r0 = fcn_0000de48 ();
    0x0004e246 mov fp, r0                                        |     
    0x0004e248 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0004e24a beq.w 0x4e524                                     |         goto label_15;
                                                                 |     }
    0x0004e24e mov r0, r4                                        |     r0 = r4;
    0x0004e250 blx 0xfba0                                        |     fcn_0000fba0 ();
    0x0004e254 ldr r1, [sp, 0x4c]                                |     r1 = var_4ch;
    0x0004e256 mov r0, fp                                        |     r0 = fp;
    0x0004e258 blx 0xdd24                                        |     r0 = g_type_register_static_simple ();
    0x0004e25c mov r6, r0                                        |     r6 = r0;
    0x0004e25e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0004e260 beq.w 0x4e470                                     |         goto label_16;
                                                                 |     }
    0x0004e264 mov r4, r7                                        |     r4 = r7;
    0x0004e266 str.w fp, [sp, 0x40]                              |     __asm ("str.w fp, [var_40h]");
    0x0004e26a mov r7, sb                                        |     r7 = sb;
    0x0004e26c mov fp, r5                                        |     
    0x0004e26e mov sb, r4                                        |     sb = r4;
    0x0004e270 mov r5, r8                                        |     r5 = r8;
    0x0004e272 str.w sl, [sp, 0x44]                              |     __asm ("str.w sl, [var_44h]");
    0x0004e276 ldr.w r8, [sp, 0x38]                              |     r8 = var_38h;
    0x0004e27a b 0x4e280                                         |     
                                                                 |     while (r2 != 0) {
                                                                 | label_0:
    0x0004e27c ldr.w sb, [sl, 4]                                 |         sb = *((sl + 4));
    0x0004e280 mov r0, r6                                        |         r0 = r6;
    0x0004e282 blx 0x104a4                                       |         r0 = fcn_000104a4 ();
    0x0004e286 cmp r4, r0                                        |         
                                                                 |         if (r4 >= r0) {
    0x0004e288 bhs 0x4e2c0                                       |             goto label_17;
                                                                 |         }
    0x0004e28a bl 0x5596c                                        |         r0 = fcn_0005596c ();
    0x0004e28e mov r1, r0                                        |         r1 = r0;
    0x0004e290 mov r0, r6                                        |         r0 = r6;
    0x0004e292 blx 0xe18c                                        |         cert_set_init ();
    0x0004e296 mov r1, r4                                        |         r1 = r4;
    0x0004e298 adds r4, 1                                        |         r4++;
    0x0004e29a bl 0x55cc8                                        |         r0 = fcn_00055cc8 (r0, r1);
    0x0004e29e ldr.w sb, [r0]                                    |         sb = *(r0);
    0x0004e2a2 mov sl, r0                                        |         sl = r0;
    0x0004e2a4 ldr.w r2, [sb, 0x78]                              |         r2 = *((sb + 0x78));
    0x0004e2a8 str.w r8, [sb, 0x74]                              |         __asm ("str.w r8, [sb, 0x74]");
    0x0004e2ac strd r5, r7, [sb, 0x7c]                           |         __asm ("strd r5, r7, [sb, 0x7c]");
    0x0004e2b0 cmp r2, 0                                         |         
    0x0004e2b2 bne 0x4e27c                                       |         
                                                                 |     }
    0x0004e2b4 ldr r0, [sp, 0x34]                                |     r0 = var_34h;
    0x0004e2b6 blx 0xe798                                        |     gst_query_new_custom ();
    0x0004e2ba str.w r0, [sb, 0x78]                              |     __asm ("str.w r0, [sb, 0x78]");
    0x0004e2bc lsls r0, r7, 1                                    |     r0 = r7 << 1;
    0x0004e2be b 0x4e27c                                         |     goto label_0;
                                                                 | label_17:
    0x0004e2c0 mov r8, r5                                        |     r8 = r5;
    0x0004e2c2 mov r5, fp                                        |     r5 = fp;
    0x0004e2c4 ldrd fp, sl, [sp, 0x40]                           |     __asm ("ldrd fp, sl, [var_40h]");
    0x0004e2c8 mov r3, sb                                        |     r3 = sb;
    0x0004e2ca mov sb, r7                                        |     sb = r7;
    0x0004e2cc mov r7, r3                                        |     r7 = r3;
    0x0004e2ce mov r0, fp                                        |     r0 = fp;
    0x0004e2d0 blx 0xfba0                                        |     fcn_0000fba0 ();
    0x0004e2d4 ldr.w fp, [sp, 0x30]                              |     fp = var_30h;
    0x0004e2d8 mov r2, sl                                        |     r2 = sl;
    0x0004e2da movs r1, 1                                        |     r1 = 1;
    0x0004e2dc mov r0, fp                                        |     r0 = fp;
    0x0004e2de blx 0xeed0                                        |     r0 = gst_object_set_name ();
    0x0004e2e2 mov r4, r0                                        |     r4 = r0;
    0x0004e2e4 mov r0, fp                                        |     r0 = fp;
    0x0004e2e6 blx 0xfba0                                        |     fcn_0000fba0 ();
    0x0004e2ea cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x0004e2ec beq.w 0x4e56e                                     |         goto label_18;
                                                                 |     }
    0x0004e2f0 mov r1, r4                                        |     r1 = r4;
    0x0004e2f2 mov r0, r6                                        |     r0 = r6;
    0x0004e2f4 blx 0xed98                                        |     r0 = g_value_set_double ();
    0x0004e2f8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0004e2fa beq.w 0x4e4de                                     |         goto label_19;
                                                                 |     }
    0x0004e2fe movs r1, 0                                        |     r1 = 0;
    0x0004e300 mov r0, r6                                        |     r0 = r6;
    0x0004e302 blx 0xeb04                                        |     r0 = g_value_set_uint64 ();
    0x0004e306 mov r4, r0                                        |     r4 = r0;
    0x0004e308 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0004e30a beq.w 0x4e78e                                     |         goto label_20;
                                                                 |     }
    0x0004e30e mov r1, r7                                        |     r1 = r7;
    0x0004e310 blx 0x1010c                                       |     gst_structure_get_uint ();
    0x0004e314 add r0, sp, 0x50                                  |     r0 += var_50h;
    0x0004e316 blx 0xf870                                        |     fcn_0000f870 ();
    0x0004e31a ldr r0, [sp, 0x50]                                |     r0 = var_50h;
    0x0004e31c blx 0xf520                                        |     fcn_0000f520 ();
    0x0004e320 ldr r1, [sp, 0x38]                                |     r1 = var_38h;
    0x0004e322 movs r3, 1                                        |     r3 = 1;
    0x0004e324 ldr r7, [sp, 0x50]                                |     r7 = var_50h;
    0x0004e326 add.w r2, r8, r3                                  |     r2 = r8 + r3;
    0x0004e32a strd r3, r3, [r7]                                 |     __asm ("strd r3, r3, [r7]");
    0x0004e32e cmp r1, 0                                         |     
                                                                 |     if (r1 != 0) {
    0x0004e330 bne.w 0x4e466                                     |         goto label_21;
                                                                 |     }
    0x0004e334 str r3, [r7, 8]                                   |     *((r7 + 8)) = r3;
    0x0004e336 strd r8, r2, [r7, 0x38]                           |     __asm ("strd r8, r2, [r7, 0x38]");
                                                                 | label_4:
    0x0004e33a ldr.w r8, [sp, 0x34]                              |     r8 = var_34h;
    0x0004e33e mov r0, r8                                        |     r0 = r8;
    0x0004e340 blx 0xe798                                        |     gst_query_new_custom ();
    0x0004e344 ldr r3, [sp, 0x50]                                |     r3 = var_50h;
    0x0004e346 str r0, [r7, 0xc]                                 |     *((r7 + 0xc)) = r0;
    0x0004e348 mov r0, r8                                        |     r0 = r8;
    0x0004e34a str.w sb, [r3, 0x2c]                              |     __asm ("str.w sb, [r3, 0x2c]");
    0x0004e34e blx 0xde54                                        |     r0 = fcn_0000de54 ();
    0x0004e352 mov r8, r0                                        |     r8 = r0;
    0x0004e354 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0004e356 bne.w 0x4e5b4                                     |         goto label_22;
                                                                 |     }
                                                                 | label_7:
    0x0004e35a ldr.w r1, [pc, 0x5ec]                             |     
    0x0004e35e add r1, pc                                        |     r1 = 0x9ccac;
    0x0004e360 ldr r3, [r1, 0x14]                                |     r3 = *(0x9ccc0);
                                                                 |     if (r3 == 0) {
    0x0004e362 cbnz r3, 0x4e378                                  |         
    0x0004e364 ldr.w r2, [pc, 0x5e4]                             |         
    0x0004e368 movs r3, 1                                        |         r3 = 1;
    0x0004e36a ldr.w r0, [pc, 0x5e4]                             |         
    0x0004e36e adds r1, 0x14                                     |         r1 += 0x14;
    0x0004e370 add r2, pc                                        |         r2 = 0x9ccc0;
    0x0004e372 add r0, pc                                        |         r0 = 0x9ccc8;
    0x0004e374 blx 0xdaa0                                        |         fcn_0000daa0 ();
                                                                 |     }
    0x0004e378 ldr.w r3, [pc, 0x5d8]                             |     
    0x0004e37c add r7, sp, 0x48                                  |     r7 += var_48h;
    0x0004e37e mov r0, r7                                        |     r0 = r7;
    0x0004e380 movs r2, 0                                        |     r2 = 0;
    0x0004e382 add r3, pc                                        |     r3 = 0x9ccda;
    0x0004e384 ldr r1, [r3, 0x14]                                |     r1 = *(0x9ccee);
    0x0004e386 ldr.w r3, [pc, 0x5d0]                             |     
    0x0004e38a add r3, pc                                        |     r3 = 0x9cce8;
    0x0004e38c blx 0x10398                                       |     fcn_00010398 ();
    0x0004e390 ldr.w r2, [pc, 0x5c8]                             |     
    0x0004e394 movs r1, 0x20                                     |     r1 = 0x20;
    0x0004e396 movs r0, 0                                        |     r0 = 0;
    0x0004e398 add r2, pc                                        |     r2 = 0x9ccf8;
    0x0004e39a blx 0xe318                                        |     gst_element_error_printf ()
                                                                 | label_8:
    0x0004e39e mov r0, r6                                        |     r0 = r6;
    0x0004e3a0 blx 0x105bc                                       |     fcn_000105bc ();
    0x0004e3a2 invalid                                           |     
                                                                 |     if (r0 != 0) {
    0x0004e3a6 cbz r0, 0x4e3ac                                   |         
    0x0004e3a8 blx 0x10410                                       |         fcn_00010410 ();
                                                                 |     }
                                                                 | label_6:
    0x0004e3ac mov r0, r6                                        |     r0 = r6;
    0x0004e3ae blx 0xfba0                                        |     fcn_0000fba0 ();
                                                                 |     do {
                                                                 | label_1:
    0x0004e3b2 ldr r0, [sp, 0x4c]                                |         r0 = var_4ch;
                                                                 |         if (r0 != 0) {
    0x0004e3b4 cbz r0, 0x4e3ba                                   |             
    0x0004e3b6 blx 0xf4ec                                        |             fcn_0000f4ec ();
                                                                 |         }
    0x0004e3ba mov r0, sl                                        |         r0 = sl;
    0x0004e3bc blx 0xfe30                                        |         g_date_time_new_from_iso8601 ();
    0x0004e3c0 ldr r0, [sp, 0x64]                                |         r0 = var_64h;
    0x0004e3c2 blx 0xeaf8                                        |         gst_structure_get_int ();
    0x0004e3c6 mov r0, r5                                        |         r0 = r5;
    0x0004e3c8 movs r5, 0                                        |         r5 = 0;
    0x0004e3ca blx 0xfba0                                        |         fcn_0000fba0 ();
    0x0004e3ce mov r0, r7                                        |         r0 = r7;
    0x0004e3d0 blx 0xf95c                                        |         gst_mini_object_replace ();
                                                                 | label_9:
    0x0004e3d4 ldr.w r6, [pc, 0x588]                             |         
    0x0004e3d8 add r6, pc                                        |         r6 = 0x9cd3c;
    0x0004e3da ldr r4, [r6, 0x1c]                                |         r4 = *(0x9cd58);
    0x0004e3dc cmp r4, 0                                         |         
                                                                 |         if (r4 == 0) {
    0x0004e3de beq 0x4e4b8                                       |             goto label_23;
                                                                 |         }
                                                                 | label_5:
    0x0004e3e0 mov r0, r5                                        |         r0 = r5;
    0x0004e3e2 add sp, 0xa4                                      |         
    0x0004e3e4 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_14:
    0x0004e3e8 ldr.w r1, [pc, 0x578]                             |         
    0x0004e3ec add r1, pc                                        |         r1 = 0x9cd54;
    0x0004e3ee ldr r3, [r1, 0x14]                                |         r3 = *(0x9cd68);
                                                                 |         if (r3 == 0) {
    0x0004e3f0 cbz r3, 0x4e450                                   |             goto label_24;
                                                                 |         }
                                                                 | label_3:
    0x0004e3f2 ldr.w r3, [pc, 0x574]                             |         
    0x0004e3f6 add r7, sp, 0x48                                  |         r7 += var_48h;
    0x0004e3f8 str.w fp, [sp]                                    |         __asm ("str.w fp, [sp]");
    0x0004e3fa add sp, 0                                         |         
    0x0004e3fc mov r0, r7                                        |         r0 = r7;
    0x0004e3fe movs r2, 0                                        |         r2 = 0;
    0x0004e400 add r3, pc                                        |         r3 = 0x9cd6e;
    0x0004e402 ldr r1, [r3, 0x14]                                |         r1 = *(0x9cd82);
    0x0004e404 ldr.w r3, [pc, 0x564]                             |         
    0x0004e408 add r3, pc                                        |         r3 = 0x9cd78;
    0x0004e40a blx 0x10398                                       |         fcn_00010398 ();
    0x0004e40e ldr.w r2, [pc, 0x560]                             |         
    0x0004e412 movs r0, 0                                        |         r0 = 0;
    0x0004e414 mov r3, fp                                        |         r3 = fp;
    0x0004e416 movs r1, 0x20                                     |         r1 = 0x20;
    0x0004e418 add r2, pc                                        |         r2 = 0x9cd8e;
    0x0004e41a blx 0xe318                                        |         gst_element_error_printf ()
    0x0004e41e mov r0, fp                                        |         r0 = fp;
    0x0004e420 blx 0xf3e8                                        |         fcn_0000f3e8 ();
    0x0004e424 ldr r3, [sp, 0x30]                                |         r3 = var_30h;
                                                                 |         if (r3 != 0) {
    0x0004e426 cbz r3, 0x4e42e                                   |             
    0x0004e428 mov r0, r3                                        |             r0 = r3;
    0x0004e42a blx 0xfba0                                        |             fcn_0000fba0 ();
                                                                 |         }
    0x0004e42e cmp r4, 0                                         |         
    0x0004e430 beq 0x4e3b2                                       |         
                                                                 |     } while (r4 == 0);
    0x0004e432 mov r0, r4                                        |     r0 = r4;
    0x0004e434 blx 0xfba0                                        |     fcn_0000fba0 ();
    0x0004e438 b 0x4e3b2                                         |     goto label_1;
                                                                 | label_13:
    0x0004e43a ldr.w r1, [pc, 0x538]                             |     
    0x0004e43e mov r2, r6                                        |     r2 = r6;
    0x0004e440 ldr.w r0, [pc, 0x534]                             |     
    0x0004e444 add r1, pc                                        |     r1 = 0x9cdbe;
    0x0004e446 add r0, pc                                        |     r0 = 0x9cdc2;
    0x0004e448 blx 0xe9b4                                        |     r0 = gst_rtsp_message_append_headers ();
    0x0004e44c mov fp, r0                                        |     
    0x0004e44e b 0x4e216                                         |     goto label_2;
                                                                 | label_24:
    0x0004e450 ldr.w r2, [pc, 0x528]                             |     
    0x0004e454 adds r1, 0x14                                     |     r1 += 0x14;
    0x0004e456 ldr.w r0, [pc, 0x528]                             |     
    0x0004e45a movs r3, 1                                        |     r3 = 1;
    0x0004e45c add r2, pc                                        |     r2 = 0x9cddc;
    0x0004e45e add r0, pc                                        |     r0 = 0x9cde4;
    0x0004e460 blx 0xdaa0                                        |     fcn_0000daa0 ();
    0x0004e464 b 0x4e3f2                                         |     goto label_3;
                                                                 | label_21:
    0x0004e466 movs r3, 2                                        |     r3 = 2;
    0x0004e468 strd r8, r2, [r7, 0x30]                           |     __asm ("strd r8, r2, [r7, 0x30]");
    0x0004e46c str r3, [r7, 8]                                   |     *((r7 + 8)) = r3;
    0x0004e46e b 0x4e33a                                         |     goto label_4;
                                                                 | label_16:
    0x0004e470 ldr.w r1, [pc, 0x510]                             |     
    0x0004e474 add r1, pc                                        |     r1 = 0x9cdfc;
    0x0004e476 ldr r3, [r1, 0x14]                                |     r3 = *(0x9ce10);
    0x0004e478 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0004e47a beq.w 0x4e742                                     |         goto label_25;
                                                                 |     }
                                                                 | label_10:
    0x0004e47e ldr.w r3, [pc, 0x508]                             |     
    0x0004e482 add r7, sp, 0x48                                  |     r7 += var_48h;
    0x0004e484 movs r2, 0                                        |     r2 = 0;
    0x0004e486 mov r0, r7                                        |     r0 = r7;
    0x0004e488 add r3, pc                                        |     r3 = 0x9ce16;
    0x0004e48a ldr r1, [r3, 0x14]                                |     r1 = *(0x9ce2a);
    0x0004e48c ldr.w r3, [pc, 0x4fc]                             |     
    0x0004e490 add r3, pc                                        |     r3 = 0x9ce20;
    0x0004e492 blx 0x10398                                       |     fcn_00010398 ();
    0x0004e496 ldr.w r2, [pc, 0x4f8]                             |     
    0x0004e49a movs r1, 0x20                                     |     r1 = 0x20;
    0x0004e49c movs r0, 0                                        |     r0 = 0;
    0x0004e49e add r2, pc                                        |     r2 = 0x9ce34;
    0x0004e4a0 blx 0xe318                                        |     gst_element_error_printf ()
    0x0004e4a4 mov r0, fp                                        |     r0 = fp;
    0x0004e4a6 blx 0xfba0                                        |     fcn_0000fba0 ();
    0x0004e4aa ldr r3, [sp, 0x30]                                |     r3 = var_30h;
    0x0004e4ac cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0004e4ae beq 0x4e3b2                                       |         goto label_1;
                                                                 |     }
    0x0004e4b0 mov r0, r3                                        |     r0 = r3;
    0x0004e4b2 blx 0xfba0                                        |     fcn_0000fba0 ();
    0x0004e4b6 b 0x4e3b2                                         |     goto label_1;
                                                                 | label_23:
    0x0004e4b8 ldr.w r0, [pc, 0x4d8]                             |     r0 = *(0x0004e994);
    0x0004e4bc add r7, sp, 0x48                                  |     r7 += var_48h;
    0x0004e4be mov r3, r4                                        |     r3 = r4;
    0x0004e4c0 movs r2, 3                                        |     r2 = 3;
    0x0004e4c2 mov r1, r4                                        |     r1 = r4;
    0x0004e4c4 str r7, [sp]                                      |     *(sp) = r7;
    0x0004e4c6 add r0, pc                                        |     r0 += pc;
    0x0004e4c8 blx 0xe77c                                        |     fcn_0000e77c ();
    0x0004e4cc ldr r3, [sp, 0x48]                                |     r3 = var_48h;
    0x0004e4ce str r0, [r6, 0x1c]                                |     *((r6 + 0x1c)) = r0;
    0x0004e4d0 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0004e4d2 beq 0x4e3e0                                       |         goto label_5;
                                                                 |     }
    0x0004e4d4 mov r0, r7                                        |     r0 = r7;
    0x0004e4d6 mov r5, r4                                        |     r5 = r4;
    0x0004e4d8 blx 0xf95c                                        |     gst_mini_object_replace ();
    0x0004e4dc b 0x4e3e0                                         |     goto label_5;
                                                                 | label_19:
    0x0004e4de ldr.w r1, [pc, 0x4b8]                             |     
    0x0004e4e2 add r1, pc                                        |     r1 = 0x9ce80;
    0x0004e4e4 ldr r3, [r1, 0x14]                                |     r3 = *(0x9ce94);
                                                                 |     if (r3 == 0) {
    0x0004e4e6 cbnz r3, 0x4e4fc                                  |         
    0x0004e4e8 ldr.w r2, [pc, 0x4b0]                             |         
    0x0004e4ec movs r3, 1                                        |         r3 = 1;
    0x0004e4ee ldr.w r0, [pc, 0x4b0]                             |         
    0x0004e4f2 adds r1, 0x14                                     |         r1 += 0x14;
    0x0004e4f4 add r2, pc                                        |         r2 = 0x9ce94;
    0x0004e4f6 add r0, pc                                        |         r0 = 0x9ce9c;
    0x0004e4f8 blx 0xdaa0                                        |         fcn_0000daa0 ();
                                                                 |     }
    0x0004e4fc ldr.w r3, [pc, 0x4a4]                             |     
    0x0004e500 add r7, sp, 0x48                                  |     r7 += var_48h;
    0x0004e502 mov r0, r7                                        |     r0 = r7;
    0x0004e504 movs r2, 0                                        |     r2 = 0;
    0x0004e506 add r3, pc                                        |     r3 = 0x9ceae;
    0x0004e508 ldr r1, [r3, 0x14]                                |     r1 = *(0x9cec2);
    0x0004e50a ldr.w r3, [pc, 0x49c]                             |     
    0x0004e50e add r3, pc                                        |     r3 = 0x9cebc;
    0x0004e510 blx 0x10398                                       |     fcn_00010398 ();
    0x0004e514 ldr.w r2, [pc, 0x494]                             |     
    0x0004e518 movs r1, 0x20                                     |     r1 = 0x20;
    0x0004e51a movs r0, 0                                        |     r0 = 0;
    0x0004e51c add r2, pc                                        |     r2 = 0x9cecc;
    0x0004e51e blx 0xe318                                        |     gst_element_error_printf ()
    0x0004e522 b 0x4e3ac                                         |     goto label_6;
                                                                 | label_15:
    0x0004e524 ldr.w r1, [pc, 0x488]                             |     
    0x0004e528 add r1, pc                                        |     r1 = 0x9cedc;
    0x0004e52a ldr r3, [r1, 0x14]                                |     r3 = *(0x9cef0);
                                                                 |     if (r3 == 0) {
    0x0004e52c cbnz r3, 0x4e542                                  |         
    0x0004e52e ldr.w r2, [pc, 0x484]                             |         
    0x0004e532 adds r1, 0x14                                     |         r1 += 0x14;
    0x0004e534 ldr.w r0, [pc, 0x480]                             |         
    0x0004e538 movs r3, 1                                        |         r3 = 1;
    0x0004e53a add r2, pc                                        |         r2 = 0x9cef4;
    0x0004e53c add r0, pc                                        |         r0 = 0x9cef8;
    0x0004e53e blx 0xdaa0                                        |         fcn_0000daa0 ();
    0x0004e540 invalid                                           |         
                                                                 |     }
    0x0004e542 ldr.w r3, [pc, 0x478]                             |     
    0x0004e546 add r7, sp, 0x48                                  |     r7 += var_48h;
    0x0004e548 str r6, [sp]                                      |     *(sp) = r6;
    0x0004e54a mov r0, r7                                        |     r0 = r7;
    0x0004e54c movs r2, 0                                        |     r2 = 0;
    0x0004e54e add r3, pc                                        |     r3 = 0x9cf10;
    0x0004e550 ldr r1, [r3, 0x14]                                |     r1 = *(0x9cf24);
    0x0004e552 ldr.w r3, [pc, 0x46c]                             |     
    0x0004e556 add r3, pc                                        |     r3 = 0x9cf1c;
    0x0004e558 blx 0x10398                                       |     fcn_00010398 ();
    0x0004e55c ldr.w r2, [pc, 0x464]                             |     
    0x0004e560 mov r3, r6                                        |     r3 = r6;
    0x0004e562 movs r1, 0x20                                     |     r1 = 0x20;
    0x0004e564 movs r0, 0                                        |     r0 = 0;
    0x0004e566 add r2, pc                                        |     r2 = 0x9cf2e;
    0x0004e568 blx 0xe318                                        |     gst_element_error_printf ()
    0x0004e56a mrc p7, 6, lr, c6, c10, 2                         |     __asm ("mrc p7, 6, lr, c6, c10, 2");
                                                                 | label_18:
    0x0004e56e ldr.w r1, [pc, 0x458]                             |     
    0x0004e572 add r1, pc                                        |     r1 = 0x9cf40;
    0x0004e574 ldr r3, [r1, 0x14]                                |     r3 = *(0x9cf54);
                                                                 |     if (r3 == 0) {
    0x0004e576 cbnz r3, 0x4e58c                                  |         
    0x0004e578 ldr.w r2, [pc, 0x450]                             |         
    0x0004e57c movs r3, 1                                        |         r3 = 1;
    0x0004e57e ldr.w r0, [pc, 0x450]                             |         
    0x0004e582 adds r1, 0x14                                     |         r1 += 0x14;
    0x0004e584 add r2, pc                                        |         r2 = 0x9cf54;
    0x0004e586 add r0, pc                                        |         r0 = 0x9cf5c;
    0x0004e588 blx 0xdaa0                                        |         fcn_0000daa0 ();
                                                                 |     }
    0x0004e58c ldr.w r3, [pc, 0x444]                             |     
    0x0004e590 add r7, sp, 0x48                                  |     r7 += var_48h;
    0x0004e592 mov r0, r7                                        |     r0 = r7;
    0x0004e594 movs r2, 0                                        |     r2 = 0;
    0x0004e596 add r3, pc                                        |     r3 = 0x9cf6e;
    0x0004e598 ldr r1, [r3, 0x14]                                |     r1 = *(0x9cf82);
    0x0004e59a ldr.w r3, [pc, 0x43c]                             |     
    0x0004e59e add r3, pc                                        |     r3 = 0x9cf7c;
    0x0004e5a0 blx 0x10398                                       |     fcn_00010398 ();
    0x0004e5a4 ldr.w r2, [pc, 0x434]                             |     
    0x0004e5a8 movs r1, 0x20                                     |     r1 = 0x20;
    0x0004e5aa movs r0, 0                                        |     r0 = 0;
    0x0004e5ac add r2, pc                                        |     r2 = 0x9cf8c;
    0x0004e5ae blx 0xe318                                        |     gst_element_error_printf ()
    0x0004e5b2 b 0x4e3ac                                         |     goto label_6;
                                                                 | label_22:
    0x0004e5b4 blx 0xf720                                        |     r0 = fcn_0000f720 ();
    0x0004e5b8 mov r7, r0                                        |     r7 = r0;
    0x0004e5ba mov r0, r8                                        |     r0 = r8;
    0x0004e5bc blx 0xfba0                                        |     fcn_0000fba0 ();
    0x0004e5c0 cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x0004e5c2 beq.w 0x4e35a                                     |         goto label_7;
                                                                 |     }
    0x0004e5c6 movs r3, 1                                        |     r3 = 1;
    0x0004e5c8 ldr r2, [sp, 0x50]                                |     r2 = var_50h;
    0x0004e5ca mov r1, r7                                        |     r1 = r7;
    0x0004e5cc mov r0, r4                                        |     r0 = r4;
    0x0004e5ce blx 0xfdf4                                        |     g_type_class_peek_parent ();
    0x0004e5d2 ldr r3, [sp, 0x38]                                |     r3 = var_38h;
                                                                 |     if (r0 == 0) {
    0x0004e5d4 cbnz r0, 0x4e628                                  |         
    0x0004e5d6 cmp r3, 0                                         |         
                                                                 |         if (r3 == 0) {
    0x0004e5d8 beq.w 0x4e754                                     |             goto label_26;
                                                                 |         }
    0x0004e5dc mov r3, r0                                        |         r3 = r0;
    0x0004e5de ldr r2, [sp, 0x50]                                |         r2 = var_50h;
    0x0004e5e0 mov r1, r7                                        |         r1 = r7;
    0x0004e5e2 mov r0, r4                                        |         r0 = r4;
    0x0004e5e4 blx 0xfdf4                                        |         r0 = g_type_class_peek_parent ();
    0x0004e5e8 cmp r0, 0                                         |         
                                                                 |         if (r0 != 0) {
    0x0004e5ea bne.w 0x4e6f4                                     |             goto label_27;
                                                                 |         }
    0x0004e5ee ldr r1, [pc, 0x3f0]                               |         
    0x0004e5f0 add r1, pc                                        |         r1 = 0x9cfd6;
    0x0004e5f2 ldr r3, [r1, 0x14]                                |         r3 = *(0x9cfea);
                                                                 |         if (r3 == 0) {
    0x0004e5f4 cbnz r3, 0x4e606                                  |             
    0x0004e5f6 ldr r2, [pc, 0x3ec]                               |             
    0x0004e5f8 movs r3, 1                                        |             r3 = 1;
    0x0004e5fa ldr r0, [pc, 0x3ec]                               |             
    0x0004e5fc adds r1, 0x14                                     |             r1 += 0x14;
    0x0004e5fe add r2, pc                                        |             r2 = 0x9cfe8;
    0x0004e600 add r0, pc                                        |             r0 = 0x9cfee;
    0x0004e602 blx 0xdaa0                                        |             fcn_0000daa0 ();
                                                                 |         }
    0x0004e606 ldr r3, [pc, 0x3e4]                               |         
    0x0004e608 add r7, sp, 0x48                                  |         r7 += var_48h;
    0x0004e60a mov r0, r7                                        |         r0 = r7;
    0x0004e60c movs r2, 0                                        |         r2 = 0;
    0x0004e60e add r3, pc                                        |         r3 = 0x9d000;
    0x0004e610 ldr r1, [r3, 0x14]                                |         r1 = *(0x9d014);
    0x0004e612 ldr r3, [pc, 0x3dc]                               |         
    0x0004e614 add r3, pc                                        |         r3 = 0x9d00a;
    0x0004e616 blx 0x10398                                       |         fcn_00010398 ();
    0x0004e61a ldr r2, [pc, 0x3d8]                               |         
    0x0004e61c movs r1, 0x20                                     |         r1 = 0x20;
    0x0004e61e movs r0, 0                                        |         r0 = 0;
    0x0004e620 add r2, pc                                        |         r2 = 0x9d01a;
    0x0004e622 blx 0xe318                                        |         gst_element_error_printf ()
    0x0004e626 b 0x4e39e                                         |         goto label_8;
                                                                 |     }
    0x0004e628 cmp r3, 0                                         |     
    0x0004e62a bne 0x4e6f4                                       |     
                                                                 |     while (r0 != 0) {
    0x0004e62c ldr r1, [sp, 0x50]                                |         r1 = var_50h;
    0x0004e62e mov r0, r4                                        |         r0 = r4;
    0x0004e630 blx 0xf3f4                                        |         r0 = fcn_0000f3f4 ();
    0x0004e634 mov r8, r0                                        |         r8 = r0;
    0x0004e636 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0004e638 beq.w 0x4e7c8                                     |             goto label_28;
                                                                 |         }
    0x0004e63c mov.w fp, 0                                       |         
    0x0004e640 str.w fp, [sp, 0x50]                              |         __asm ("str.w fp, [var_50h]");
    0x0004e644 blx 0xfc3c                                        |         r0 = fcn_0000fc3c ();
    0x0004e648 mov r1, r0                                        |         r1 = r0;
    0x0004e64a cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0004e64c beq.w 0x4e802                                     |             goto label_29;
                                                                 |         }
    0x0004e650 mov r0, r4                                        |         r0 = r4;
    0x0004e652 blx 0xdc0c                                        |         r0 = fcn_0000dc0c ();
    0x0004e656 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0004e658 beq.w 0x4e850                                     |             goto label_30;
                                                                 |         }
    0x0004e65c ldrd r2, r3, [sp, 0x38]                           |         __asm ("ldrd r2, r3, [var_38h]");
    0x0004e660 cmp r2, 0                                         |         
    0x0004e662 it ne                                             |         
                                                                 |         if (r2 != 0) {
    0x0004e664 cmpne r3, -1                                      |             __asm ("cmpne r3, -1");
                                                                 |         }
                                                                 |         if (r2 != 0) {
    0x0004e668 beq 0x4e6d2                                       |             
    0x0004e66a mov r1, r7                                        |             r1 = r7;
    0x0004e66c mov r0, r4                                        |             r0 = r4;
    0x0004e66e blx 0x10474                                       |             fcn_00010474 ();
    0x0004e672 str r0, [sp, 0x30]                                |             var_30h = r0;
    0x0004e674 cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x0004e676 beq.w 0x4e89a                                     |                 goto label_31;
                                                                 |             }
    0x0004e67a blx 0x10368                                       |             fcn_00010368 ();
    0x0004e67e ldr r3, [sp, 0x3c]                                |             r3 = var_3ch;
    0x0004e680 add.w sb, sp, 0x54                                |             sb += var_54h;
    0x0004e684 movs r2, 0x24                                     |             r2 = 0x24;
    0x0004e686 movs r1, 1                                        |             r1 = 1;
    0x0004e688 str r3, [sp, 0x54]                                |             var_54h = r3;
    0x0004e68a movs r3, 4                                        |             r3 = 4;
    0x0004e68c str r3, [sp]                                      |             *(sp) = r3;
    0x0004e68e mov r3, sb                                        |             r3 = sb;
    0x0004e690 blx 0xf69c                                        |             fcn_0000f69c ();
    0x0004e692 invalid                                           |             
                                                                 |             if (r3 < 4) {
    0x0004e696 blt.w 0x4e88a                                     |                 goto label_32;
                                                                 |             }
    0x0004e69a ldr r0, [sp, 0x30]                                |             r0 = var_30h;
    0x0004e69c blx 0xfba0                                        |             fcn_0000fba0 ();
    0x0004e6a0 mov r0, r4                                        |             r0 = r4;
    0x0004e6a2 mov r1, r7                                        |             r1 = r7;
    0x0004e6a4 blx 0x10574                                       |             r0 = fcn_00010574 ();
    0x0004e6a8 mov r4, r0                                        |             r4 = r0;
    0x0004e6aa cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x0004e6ac beq.w 0x4e8e4                                     |                 goto label_33;
                                                                 |             }
    0x0004e6b0 blx 0x10368                                       |             fcn_00010368 ();
    0x0004e6b4 ldr r3, [sp, 0x3c]                                |             r3 = var_3ch;
    0x0004e6b6 movs r2, 4                                        |             r2 = 4;
    0x0004e6b8 str r2, [sp]                                      |             *(sp) = r2;
    0x0004e6ba movs r1, 1                                        |             r1 = 1;
    0x0004e6bc movs r2, 0x24                                     |             r2 = 0x24;
    0x0004e6be str r3, [sp, 0x54]                                |             var_54h = r3;
    0x0004e6c0 mov r3, sb                                        |             r3 = sb;
    0x0004e6c2 blx 0xf69c                                        |             r0 = fcn_0000f69c ();
    0x0004e6c6 cmp r0, 0                                         |             
                                                                 |             if (r0 < 0) {
    0x0004e6c8 blt.w 0x4e8d4                                     |                 goto label_34;
                                                                 |             }
                                                                 | label_12:
    0x0004e6cc mov r0, r4                                        |             r0 = r4;
    0x0004e6ce blx 0xfba0                                        |             fcn_0000fba0 ();
                                                                 |         }
    0x0004e6d2 blx 0xf560                                        |         g_variant_get_uint32 ();
    0x0004e6d6 mov r1, r8                                        |         r1 = r8;
    0x0004e6d8 str r0, [r5, 0x20]                                |         *((r5 + 0x20)) = r0;
    0x0004e6da blx 0x1002c                                       |         fcn_0001002c ();
    0x0004e6de mov r0, sl                                        |         r0 = sl;
    0x0004e6e0 str r6, [r5, 0x14]                                |         *((r5 + 0x14)) = r6;
    0x0004e6e2 blx 0xfe30                                        |         g_date_time_new_from_iso8601 ();
    0x0004e6e6 ldr r0, [sp, 0x64]                                |         r0 = var_64h;
    0x0004e6e8 blx 0xeaf8                                        |         gst_structure_get_int ();
    0x0004e6ec ldr r0, [sp, 0x4c]                                |         r0 = var_4ch;
    0x0004e6ee blx 0xf4ec                                        |         fcn_0000f4ec ();
    0x0004e6f2 b 0x4e3d4                                         |         goto label_9;
                                                                 | label_27:
    0x0004e6f4 ldr r1, [sp, 0x50]                                |         r1 = var_50h;
    0x0004e6f6 mov r0, r4                                        |         r0 = r4;
    0x0004e6f8 ldrd r2, r3, [r1, 0x30]                           |         __asm ("ldrd r2, r3, [r1, 0x30]");
    0x0004e6fc ldr r1, [r1, 0xc]                                 |         r1 = *((r1 + 0xc));
    0x0004e6fe str r7, [sp]                                      |         *(sp) = r7;
    0x0004e700 blx 0xde6c                                        |         r0 = fcn_0000de6c ();
    0x0004e704 cmp r0, 0                                         |         
    0x0004e706 bne 0x4e62c                                       |         
                                                                 |     }
    0x0004e708 ldr r1, [pc, 0x2ec]                               |     
    0x0004e70a add r1, pc                                        |     r1 = 0x9d106;
    0x0004e70c ldr r3, [r1, 0x14]                                |     r3 = *(0x9d11a);
                                                                 |     if (r3 == 0) {
    0x0004e70e cbnz r3, 0x4e720                                  |         
    0x0004e710 ldr r2, [pc, 0x2e8]                               |         
    0x0004e712 movs r3, 1                                        |         r3 = 1;
    0x0004e714 ldr r0, [pc, 0x2e8]                               |         
    0x0004e716 adds r1, 0x14                                     |         r1 += 0x14;
    0x0004e718 add r2, pc                                        |         r2 = 0x9d118;
    0x0004e71a add r0, pc                                        |         r0 = 0x9d11e;
    0x0004e71c blx 0xdaa0                                        |         fcn_0000daa0 ();
                                                                 |     }
    0x0004e720 ldr r3, [pc, 0x2e0]                               |     
    0x0004e722 add r7, sp, 0x48                                  |     r7 += var_48h;
    0x0004e724 mov r0, r7                                        |     r0 = r7;
    0x0004e726 movs r2, 0                                        |     r2 = 0;
    0x0004e728 add r3, pc                                        |     r3 = 0x9d130;
    0x0004e72a ldr r1, [r3, 0x14]                                |     r1 = *(0x9d144);
    0x0004e72c ldr r3, [pc, 0x2d8]                               |     
    0x0004e72e add r3, pc                                        |     r3 = 0x9d13a;
    0x0004e730 blx 0x10398                                       |     fcn_00010398 ();
    0x0004e734 ldr r2, [pc, 0x2d4]                               |     
    0x0004e736 movs r1, 0x20                                     |     r1 = 0x20;
    0x0004e738 movs r0, 0                                        |     r0 = 0;
    0x0004e73a add r2, pc                                        |     r2 = 0x9d14a;
    0x0004e73c blx 0xe318                                        |     gst_element_error_printf ()
    0x0004e740 b 0x4e39e                                         |     goto label_8;
                                                                 | label_25:
    0x0004e742 ldr r2, [pc, 0x2cc]                               |     
    0x0004e744 adds r1, 0x14                                     |     r1 += 0x14;
    0x0004e746 ldr r0, [pc, 0x2cc]                               |     
    0x0004e748 movs r3, 1                                        |     r3 = 1;
    0x0004e74a add r2, pc                                        |     r2 = 0x9d160;
    0x0004e74c add r0, pc                                        |     r0 = 0x9d166;
    0x0004e74e blx 0xdaa0                                        |     fcn_0000daa0 ();
    0x0004e752 b 0x4e47e                                         |     goto label_10;
                                                                 | label_26:
    0x0004e754 ldr r1, [pc, 0x2c0]                               |     
    0x0004e756 add r1, pc                                        |     r1 = 0x9d172;
    0x0004e758 ldr r3, [r1, 0x14]                                |     r3 = *(0x9d186);
                                                                 |     if (r3 == 0) {
    0x0004e75a cbnz r3, 0x4e76c                                  |         
    0x0004e75c ldr r2, [pc, 0x2bc]                               |         
    0x0004e75e movs r3, 1                                        |         r3 = 1;
    0x0004e760 ldr r0, [pc, 0x2bc]                               |         
    0x0004e762 adds r1, 0x14                                     |         r1 += 0x14;
    0x0004e764 add r2, pc                                        |         r2 = 0x9d184;
    0x0004e766 add r0, pc                                        |         r0 = 0x9d18a;
    0x0004e768 blx 0xdaa0                                        |         fcn_0000daa0 ();
                                                                 |     }
    0x0004e76c ldr r3, [pc, 0x2b4]                               |     
    0x0004e76e add r7, sp, 0x48                                  |     r7 += var_48h;
    0x0004e770 mov r0, r7                                        |     r0 = r7;
    0x0004e772 movs r2, 0                                        |     r2 = 0;
    0x0004e774 add r3, pc                                        |     r3 = 0x9d19c;
    0x0004e776 ldr r1, [r3, 0x14]                                |     r1 = *(0x9d1b0);
    0x0004e778 ldr r3, [pc, 0x2ac]                               |     
    0x0004e77a add r3, pc                                        |     r3 = 0x9d1a6;
    0x0004e77c blx 0x10398                                       |     fcn_00010398 ();
    0x0004e780 ldr r2, [pc, 0x2a8]                               |     
    0x0004e782 movs r1, 0x20                                     |     r1 = 0x20;
    0x0004e784 movs r0, 0                                        |     r0 = 0;
    0x0004e786 add r2, pc                                        |     r2 = 0x9d1b6;
    0x0004e788 blx 0xe318                                        |     gst_element_error_printf ()
    0x0004e78c b 0x4e39e                                         |     goto label_8;
                                                                 | label_20:
    0x0004e78e ldr r1, [pc, 0x2a0]                               |     
    0x0004e790 add r1, pc                                        |     r1 = 0x9d1c6;
    0x0004e792 ldr r3, [r1, 0x14]                                |     r3 = *(0x9d1da);
                                                                 |     if (r3 == 0) {
    0x0004e794 cbnz r3, 0x4e7a6                                  |         
    0x0004e796 ldr r2, [pc, 0x29c]                               |         
    0x0004e798 movs r3, 1                                        |         r3 = 1;
    0x0004e79a ldr r0, [pc, 0x29c]                               |         
    0x0004e79c adds r1, 0x14                                     |         r1 += 0x14;
    0x0004e79e add r2, pc                                        |         r2 = 0x9d1d8;
    0x0004e7a0 add r0, pc                                        |         r0 = 0x9d1de;
    0x0004e7a2 blx 0xdaa0                                        |         fcn_0000daa0 ();
    0x0004e7a4 invalid                                           |         
                                                                 |     }
    0x0004e7a6 ldr r3, [pc, 0x294]                               |     
    0x0004e7a8 add r7, sp, 0x48                                  |     r7 += var_48h;
    0x0004e7aa mov r0, r7                                        |     r0 = r7;
    0x0004e7ac movs r2, 0                                        |     r2 = 0;
    0x0004e7ae add r3, pc                                        |     r3 = 0x9d1f0;
    0x0004e7b0 ldr r1, [r3, 0x14]                                |     r1 = *(0x9d204);
    0x0004e7b2 ldr r3, [pc, 0x28c]                               |     
    0x0004e7b4 add r3, pc                                        |     r3 = 0x9d1fa;
    0x0004e7b6 blx 0x10398                                       |     fcn_00010398 ();
    0x0004e7ba ldr r2, [pc, 0x288]                               |     
    0x0004e7bc movs r1, 0x20                                     |     r1 = 0x20;
    0x0004e7be movs r0, 0                                        |     r0 = 0;
    0x0004e7c0 add r2, pc                                        |     r2 = 0x9d20a;
    0x0004e7c2 blx 0xe318                                        |     gst_element_error_printf ()
    0x0004e7c6 b 0x4e39e                                         |     goto label_8;
                                                                 | label_28:
    0x0004e7c8 ldr r1, [pc, 0x27c]                               |     
    0x0004e7ca add r1, pc                                        |     r1 = 0x9d216;
    0x0004e7cc ldr r3, [r1, 0x14]                                |     r3 = *(0x9d22a);
                                                                 |     if (r3 == 0) {
    0x0004e7ce cbnz r3, 0x4e7e0                                  |         
    0x0004e7d0 ldr r2, [pc, 0x278]                               |         
    0x0004e7d2 movs r3, 1                                        |         r3 = 1;
    0x0004e7d4 ldr r0, [pc, 0x278]                               |         
    0x0004e7d6 adds r1, 0x14                                     |         r1 += 0x14;
    0x0004e7d8 add r2, pc                                        |         r2 = 0x9d228;
    0x0004e7da add r0, pc                                        |         r0 = 0x9d22e;
    0x0004e7dc blx 0xdaa0                                        |         fcn_0000daa0 ();
                                                                 |     }
    0x0004e7e0 ldr r3, [pc, 0x270]                               |     
    0x0004e7e2 add r7, sp, 0x48                                  |     r7 += var_48h;
    0x0004e7e4 mov r0, r7                                        |     r0 = r7;
    0x0004e7e6 movs r2, 0                                        |     r2 = 0;
    0x0004e7e8 add r3, pc                                        |     r3 = 0x9d240;
    0x0004e7ea ldr r1, [r3, 0x14]                                |     r1 = *(0x9d254);
    0x0004e7ec ldr r3, [pc, 0x268]                               |     
    0x0004e7ee add r3, pc                                        |     r3 = 0x9d24a;
    0x0004e7f0 blx 0x10398                                       |     fcn_00010398 ();
    0x0004e7f4 ldr r2, [pc, 0x264]                               |     
    0x0004e7f6 movs r1, 0x20                                     |     r1 = 0x20;
    0x0004e7f8 movs r0, 0                                        |     r0 = 0;
    0x0004e7fa add r2, pc                                        |     r2 = 0x9d25a;
    0x0004e7fc blx 0xe318                                        |     gst_element_error_printf ()
    0x0004e800 b 0x4e39e                                         |     goto label_8;
                                                                 | label_29:
    0x0004e802 ldr r1, [pc, 0x25c]                               |     
    0x0004e804 add r1, pc                                        |     r1 = 0x9d26a;
    0x0004e806 ldr r3, [r1, 0x14]                                |     r3 = *(0x9d27e);
                                                                 |     if (r3 == 0) {
    0x0004e808 cbnz r3, 0x4e81a                                  |         
    0x0004e80a ldr r2, [pc, 0x258]                               |         
    0x0004e80c adds r1, 0x14                                     |         r1 += 0x14;
    0x0004e80e ldr r0, [pc, 0x258]                               |         
    0x0004e810 movs r3, 1                                        |         r3 = 1;
    0x0004e812 add r2, pc                                        |         r2 = 0x9d27c;
    0x0004e814 add r0, pc                                        |         r0 = 0x9d282;
    0x0004e816 blx 0xdaa0                                        |         fcn_0000daa0 ();
                                                                 |     }
    0x0004e81a ldr r3, [pc, 0x250]                               |     
    0x0004e81c add r7, sp, 0x48                                  |     r7 += var_48h;
    0x0004e81e mov r0, r7                                        |     r0 = r7;
    0x0004e820 movs r2, 0                                        |     r2 = 0;
    0x0004e822 add r3, pc                                        |     r3 = 0x9d294;
    0x0004e824 ldr r1, [r3, 0x14]                                |     r1 = *(0x9d2a8);
    0x0004e826 ldr r3, [pc, 0x248]                               |     
    0x0004e828 add r3, pc                                        |     r3 = 0x9d29e;
    0x0004e82a blx 0x10398                                       |     fcn_00010398 ();
    0x0004e82e ldr r2, [pc, 0x244]                               |     
    0x0004e830 movs r1, 0x20                                     |     r1 = 0x20;
    0x0004e832 movs r0, 0                                        |     r0 = 0;
    0x0004e834 add r2, pc                                        |     r2 = 0x9d2ae;
    0x0004e836 blx 0xe318                                        |     gst_element_error_printf ()
                                                                 |     do {
                                                                 | label_11:
    0x0004e83a mov r0, r6                                        |         r0 = r6;
    0x0004e83c blx 0x105bc                                       |         fcn_000105bc ();
    0x0004e840 ldr r0, [sp, 0x50]                                |         r0 = var_50h;
                                                                 |         if (r0 != 0) {
    0x0004e842 cbz r0, 0x4e848                                   |             
    0x0004e844 blx 0x10410                                       |             fcn_00010410 ();
                                                                 |         }
    0x0004e848 mov r0, r8                                        |         r0 = r8;
    0x0004e84a blx 0xfba0                                        |         fcn_0000fba0 ();
    0x0004e84e b 0x4e3ac                                         |         goto label_6;
                                                                 | label_30:
    0x0004e850 ldr r1, [pc, 0x224]                               |         
    0x0004e852 add r1, pc                                        |         r1 = 0x9d2ce;
    0x0004e854 ldr r3, [r1, 0x14]                                |         r3 = *(0x9d2e2);
                                                                 |         if (r3 == 0) {
    0x0004e856 cbnz r3, 0x4e868                                  |             
    0x0004e858 ldr r2, [pc, 0x220]                               |             
    0x0004e85a adds r1, 0x14                                     |             r1 += 0x14;
    0x0004e85c ldr r0, [pc, 0x220]                               |             
    0x0004e85e movs r3, 1                                        |             r3 = 1;
    0x0004e860 add r2, pc                                        |             r2 = 0x9d2e0;
    0x0004e862 add r0, pc                                        |             r0 = 0x9d2e6;
    0x0004e864 blx 0xdaa0                                        |             fcn_0000daa0 ();
                                                                 |         }
    0x0004e868 ldr r3, [pc, 0x218]                               |         
    0x0004e86a add r7, sp, 0x48                                  |         r7 += var_48h;
    0x0004e86c mov r0, r7                                        |         r0 = r7;
    0x0004e86e movs r2, 0                                        |         r2 = 0;
    0x0004e870 add r3, pc                                        |         r3 = 0x9d2f8;
    0x0004e872 ldr r1, [r3, 0x14]                                |         r1 = *(0x9d30c);
    0x0004e874 ldr r3, [pc, 0x210]                               |         
    0x0004e876 add r3, pc                                        |         r3 = 0x9d302;
    0x0004e878 blx 0x10398                                       |         fcn_00010398 ();
    0x0004e87c ldr r2, [pc, 0x20c]                               |         
    0x0004e87e movs r1, 0x20                                     |         r1 = 0x20;
    0x0004e880 movs r0, 0                                        |         r0 = 0;
    0x0004e882 add r2, pc                                        |         r2 = 0x9d312;
    0x0004e884 blx 0xe318                                        |         gst_element_error_printf ()
    0x0004e888 b 0x4e83a                                         |         
                                                                 |     } while (1);
                                                                 | label_32:
    0x0004e88a ldr r2, [pc, 0x204]                               |     
    0x0004e88c mov r0, fp                                        |     r0 = fp;
    0x0004e88e ldr r3, [sp, 0x54]                                |     r3 = var_54h;
    0x0004e890 movs r1, 0x20                                     |     r1 = 0x20;
    0x0004e892 add r2, pc                                        |     r2 = 0x9d328;
    0x0004e894 blx 0xe318                                        |     gst_element_error_printf ()
    0x0004e896 stcl p6, c14, [r0, -0x3fc]                        |     __asm ("stcl p6, c14, aav.0x000000ff");
                                                                 | label_31:
    0x0004e89a ldr r1, [pc, 0x1f8]                               |     
    0x0004e89c add r1, pc                                        |     r1 = 0x9d336;
    0x0004e89e ldr r3, [r1, 0x14]                                |     r3 = *(0x9d34a);
                                                                 |     if (r3 == 0) {
    0x0004e8a0 cbnz r3, 0x4e8b2                                  |         
    0x0004e8a2 ldr r2, [pc, 0x1f4]                               |         
    0x0004e8a4 adds r1, 0x14                                     |         r1 += 0x14;
    0x0004e8a6 ldr r0, [pc, 0x1f4]                               |         
    0x0004e8a8 movs r3, 1                                        |         r3 = 1;
    0x0004e8aa add r2, pc                                        |         r2 = 0x9d348;
    0x0004e8ac add r0, pc                                        |         r0 = 0x9d34e;
    0x0004e8ae blx 0xdaa0                                        |         fcn_0000daa0 ();
                                                                 |     }
    0x0004e8b2 ldr r3, [pc, 0x1ec]                               |     
    0x0004e8b4 add r7, sp, 0x48                                  |     r7 += var_48h;
    0x0004e8b6 mov r0, r7                                        |     r0 = r7;
    0x0004e8b8 movs r2, 0                                        |     r2 = 0;
    0x0004e8ba add r3, pc                                        |     r3 = 0x9d360;
    0x0004e8bc ldr r1, [r3, 0x14]                                |     r1 = *(0x9d374);
    0x0004e8be ldr r3, [pc, 0x1e4]                               |     
    0x0004e8c0 add r3, pc                                        |     r3 = 0x9d36a;
    0x0004e8c2 blx 0x10398                                       |     fcn_00010398 ();
    0x0004e8c6 ldr r2, [pc, 0x1e0]                               |     
    0x0004e8c8 movs r1, 0x20                                     |     r1 = 0x20;
    0x0004e8ca movs r0, 0                                        |     r0 = 0;
    0x0004e8cc add r2, pc                                        |     r2 = 0x9d37a;
    0x0004e8ce blx 0xe318                                        |     gst_element_error_printf ()
    0x0004e8d2 b 0x4e83a                                         |     goto label_11;
                                                                 | label_34:
    0x0004e8d4 ldr r2, [pc, 0x1d4]                               |     
    0x0004e8d6 movs r1, 0x20                                     |     r1 = 0x20;
    0x0004e8d8 ldr r3, [sp, 0x54]                                |     r3 = var_54h;
    0x0004e8da movs r0, 0                                        |     r0 = 0;
    0x0004e8dc add r2, pc                                        |     r2 = 0x9d38c;
    0x0004e8de blx 0xe318                                        |     gst_element_error_printf ()
    0x0004e8e2 b 0x4e6cc                                         |     goto label_12;
                                                                 | label_33:
    0x0004e8e4 ldr r1, [pc, 0x1c8]                               |     
    0x0004e8e6 add r1, pc                                        |     r1 = 0x9d39a;
    0x0004e8e8 ldr r3, [r1, 0x14]                                |     r3 = *(0x9d3ae);
                                                                 |     if (r3 == 0) {
    0x0004e8ea cbnz r3, 0x4e8fc                                  |         
    0x0004e8ec ldr r2, [pc, 0x1c4]                               |         
    0x0004e8ee adds r1, 0x14                                     |         r1 += 0x14;
    0x0004e8f0 ldr r0, [pc, 0x1c4]                               |         
    0x0004e8f2 movs r3, 1                                        |         r3 = 1;
    0x0004e8f4 add r2, pc                                        |         r2 = 0x9d3ac;
    0x0004e8f6 add r0, pc                                        |         r0 = 0x9d3b2;
    0x0004e8f8 blx 0xdaa0                                        |         fcn_0000daa0 ();
                                                                 |     }
    0x0004e8fc ldr r3, [pc, 0x1bc]                               |     
    0x0004e8fe add r7, sp, 0x48                                  |     r7 += var_48h;
    0x0004e900 mov r0, r7                                        |     r0 = r7;
    0x0004e902 movs r2, 0                                        |     r2 = 0;
    0x0004e904 add r3, pc                                        |     r3 = 0x9d3c4;
    0x0004e906 ldr r1, [r3, 0x14]                                |     r1 = *(0x9d3d8);
    0x0004e908 ldr r3, [pc, 0x1b4]                               |     
    0x0004e90a add r3, pc                                        |     r3 = 0x9d3ce;
    0x0004e90c blx 0x10398                                       |     fcn_00010398 ();
    0x0004e910 ldr r2, [pc, 0x1b0]                               |     
    0x0004e912 movs r1, 0x20                                     |     r1 = 0x20;
    0x0004e914 movs r0, 0                                        |     r0 = 0;
    0x0004e916 add r2, pc                                        |     r2 = 0x9d3de;
    0x0004e918 blx 0xe318                                        |     gst_element_error_printf ()
    0x0004e91c b 0x4e83a                                         |     goto label_11;
                                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x50ddc */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00050ddc ()                  | void fcn_00050ddc (int16_t arg1) {
                                             |     int16_t var_0h;
                                             |     int16_t var_10h;
                                             |     r0 = arg1;
    0x00050ddc push {r4, r5, lr}             |     
    0x00050dde sub sp, 0x24                  |     
                                             |     if (r0 == 0) {
    0x00050de0 cbz r0, 0x50e2a               |         goto label_0;
                                             |     }
    0x00050de2 movs r1, 2                    |     r1 = 2;
    0x00050de4 mov r5, r0                    |     r5 = r0;
    0x00050de6 movs r2, 0                    |     r2 = 0;
    0x00050de8 mov r0, r1                    |     r0 = r1;
    0x00050dea blx 0xf2f4                    |     fcn_0000f2f4 ();
    0x00050dec eor.w lr, r4, r4, lsl 4       |     lr = r4 ^ (r4 << 4);
                                             |     if (r2 < 0) {
    0x00050df0 blt 0x50e54                   |         goto label_1;
                                             |     }
    0x00050df2 mov r1, r5                    |     r1 = r5;
    0x00050df4 mov r5, sp                    |     r5 = sp;
    0x00050df6 movs r3, 2                    |     r3 = 2;
    0x00050df8 mov r0, r5                    |     r0 = r5;
    0x00050dfa movs r2, 0x10                 |     r2 = 0x10;
    0x00050dfc strh.w r3, [sp, 0x10]         |     var_10h = r3;
    0x00050e00 blx 0xe8b4                    |     fcn_0000e8b4 ();
    0x00050e04 mov r2, r5                    |     r2 = r5;
    0x00050e06 movw r1, 0x8921               |     r1 = 0x8921;
    0x00050e0a mov r0, r4                    |     r0 = r4;
    0x00050e0c blx 0xed54                    |     r0 = fcn_0000ed54 ();
    0x00050e10 cmp r0, 0                     |     
    0x00050e12 mov r0, r4                    |     r0 = r4;
    0x00050e14 ite ge                        |     
                                             |     if (r0 < 0) {
    0x00050e16 ldrge r5, [sp, 0x10]          |         r5 = var_10h;
                                             |     }
                                             |     if (r0 >= 0) {
    0x00050e18 movlt r5, -1                  |         r5 = -1;
                                             |     }
    0x00050e1c blx 0xea08                    |     r0 = gst_rtsp_session_media_get_media ();
    0x00050e20 cmp r0, 0                     |     
    0x00050e22 blt 0x50e42                   |     
                                             |     while (1) {
    0x00050e24 mov r0, r5                    |         r0 = r5;
    0x00050e26 add sp, 0x24                  |         
    0x00050e28 pop {r4, r5, pc}              |         
                                             | label_0:
    0x00050e2a ldr r1, [pc, 0x30]            |         
    0x00050e2c mov.w r5, -1                  |         r5 = -1;
    0x00050e30 ldr r2, [pc, 0x2c]            |         
    0x00050e32 add r1, pc                    |         r1 = 0xa1c94;
    0x00050e34 add r2, pc                    |         r2 = 0xa1c98;
    0x00050e36 adds r1, 0xbc                 |         r1 += 0xbc;
    0x00050e38 blx 0xdc4c                    |         g_ascii_string_to_unsigned ();
    0x00050e3c mov r0, r5                    |         r0 = r5;
    0x00050e3e add sp, 0x24                  |         
    0x00050e40 pop {r4, r5, pc}              |         
    0x00050e42 ldr r2, [pc, 0x20]            |         
    0x00050e44 movs r1, 0x20                 |         r1 = 0x20;
    0x00050e46 movs r0, 0                    |         r0 = 0;
    0x00050e48 add r2, pc                    |         r2 = 0xa1cb2;
    0x00050e4a blx 0xe318                    |         gst_element_error_printf ()
    0x00050e4e mov r0, r5                    |         r0 = r5;
    0x00050e50 add sp, 0x24                  |         
    0x00050e52 pop {r4, r5, pc}              |         
                                             | label_1:
    0x00050e54 mov.w r5, -1                  |         r5 = -1;
    0x00050e58 b 0x50e24                     |         
                                             |     }
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x50e68 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00050e68 ()                  | void fcn_00050e68 (int16_t arg1, int16_t arg2) {
                                             |     int16_t var_0h;
                                             |     r0 = arg1;
                                             |     r1 = arg2;
                                             | label_0:
    0x0000dfb4 bx pc                         |     return void (*pc)() ();
                                             |     if (r0 == 0) {
    0x00050e68 cbz r0, 0x50e82               |         goto label_1;
                                             |     }
    0x00050e6a push {r4, r5, r6, lr}         |     
    0x00050e6c mov r5, r1                    |     r5 = r1;
    0x00050e6e sub sp, 8                     |     
    0x00050e70 mov r4, r0                    |     r4 = r0;
    0x00050e72 blx 0xfd28                    |     r0 = g_base64_decode ();
    0x00050e76 cmp r0, 0                     |     
    0x00050e78 it ne                         |     
                                             |     if (r0 != 0) {
    0x00050e7a cmpne r5, 0xa7                |         __asm ("cmpne r5, 0xa7");
                                             |     }
    0x00050e7c bgt 0x50e90                   |     
                                             |     while (r0 < r6) {
    0x00050e7e add sp, 8                     |         
    0x00050e80 pop {r4, r5, r6, pc}          |         
                                             | label_1:
    0x00050e82 ldr r1, [pc, 0x38]            |         
    0x00050e84 ldr r2, [pc, 0x38]            |         
    0x00050e86 add r1, pc                    |         r1 = 0xa1d48;
    0x00050e88 add r2, pc                    |         r2 = 0xa1d4c;
    0x00050e8a adds r1, 0xcc                 |         r1 += 0xcc;
    0x00050e8c b.w 0xdc48                    |         void (*0xdc48)() ();
    0x00050e90 mov r0, r4                    |         r0 = r4;
    0x00050e92 sub.w r6, r5, 0x64            |         r6 = r5 - 0x64;
    0x00050e96 blx 0xfb78                    |         r0 = http_auth_init_server ();
    0x00050e9a cmp r0, r6                    |         
    0x00050e9c bls 0x50e7e                   |         
                                             |     }
    0x00050e9e ldr r2, [pc, 0x24]            |     
    0x00050ea0 mov r3, r6                    |     r3 = r6;
    0x00050ea2 movs r1, 0x20                 |     r1 = 0x20;
    0x00050ea4 movs r0, 0                    |     r0 = 0;
    0x00050ea6 str r5, [sp]                  |     *(sp) = r5;
    0x00050ea8 add r2, pc                    |     r2 = 0xa1d72;
    0x00050eaa blx 0xe318                    |     gst_element_error_printf ()
    0x00050eae mov r1, r6                    |     r1 = r6;
    0x00050eb0 mov r0, r4                    |     r0 = r4;
    0x00050eb2 add sp, 8                     |     
    0x00050eb4 pop.w {r4, r5, r6, lr}        |     
    0x00050eb8 b.w 0xdfb4                    |     goto label_0;
                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x52774 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00052774 ()                                      | void fcn_00052774 (uint32_t arg1) {
                                                                 |     uint32_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     r0 = arg1;
    0x00052774 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00052778 sub sp, 0x14                                      |     
    0x0005277a mov r4, r0                                        |     r4 = r0;
    0x0005277c str r0, [sp, 4]                                   |     var_4h = r0;
    0x0005277e ldr r0, [r0, 0x28]                                |     r0 = *((r0 + 0x28));
    0x00052780 ldr.w sb, [pc, 0x140]                             |     
    0x00052784 add sb, pc                                        |     sb = 0xa504c;
    0x00052786 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00052788 beq.w 0x528be                                     |         goto label_4;
                                                                 |     }
    0x0005278c ldr r1, [pc, 0x138]                               |     
    0x0005278e add r1, pc                                        |     r1 = 0xa505a;
    0x00052790 blx 0x1019c                                       |     gst_element_class_get_metadata ();
    0x00052794 str r0, [sp, 8]                                   |     var_8h = r0;
    0x00052796 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00052798 beq.w 0x528be                                     |         goto label_4;
                                                                 |     }
    0x0005279c add.w r3, r4, 0x20                                |     r3 = r4 + 0x20;
    0x000527a0 mov r0, r3                                        |     r0 = r3;
    0x000527a2 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x000527a4 blx 0xf26c                                        |     socket (r0, r1, r2);
    0x000527a8 ldr r0, [r4, 0x2c]                                |     r0 = *((r4 + 0x2c));
    0x000527aa blx 0xe6cc                                        |     r0 = gst_rtsp_media_get_status ();
    0x000527ae mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r0 == 0) {
    0x000527b0 cbz r0, 0x527c4                                   |         goto label_5;
                                                                 |     }
    0x000527b2 movs r6, 0                                        |     r6 = 0;
                                                                 |     do {
    0x000527b4 ldr r5, [r4]                                      |         r5 = *(r4);
    0x000527b6 ldr r0, [r5, 0xc]                                 |         r0 = *((r5 + 0xc));
    0x000527b8 blx 0xe69c                                        |         syslog ();
    0x000527bc ldr r4, [r4, 4]                                   |         r4 = *((r4 + 4));
    0x000527be str r6, [r5, 0xc]                                 |         *((r5 + 0xc)) = r6;
    0x000527c0 cmp r4, 0                                         |         
    0x000527c2 bne 0x527b4                                       |         
                                                                 |     } while (r4 != 0);
                                                                 | label_5:
    0x000527c4 ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x000527c6 ldr r1, [pc, 0x104]                               |     
    0x000527c8 ldr r0, [r3, 0x30]                                |     r0 = *((r3 + 0x30));
    0x000527ca add r1, pc                                        |     r1 = 0xa509c;
    0x000527cc blx 0xf288                                        |     fcn_0000f288 ();
    0x000527d0 movs r0, 0                                        |     r0 = 0;
                                                                 | label_2:
    0x000527d2 ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x000527d4 str r0, [r3, 0x30]                                |     *((r3 + 0x30)) = r0;
                                                                 |     do {
                                                                 | label_1:
    0x000527d6 ldr r0, [sp, 8]                                   |         r0 = var_8h;
    0x000527d8 blx 0xda4c                                        |         r0 = fcn_0000da4c ();
    0x000527dc mov r6, r0                                        |         r6 = r0;
    0x000527de cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x000527e0 beq 0x52888                                       |             goto label_6;
                                                                 |         }
    0x000527e2 ldr r3, [sp, 4]                                   |         r3 = var_4h;
    0x000527e4 ldr r0, [r3, 0x2c]                                |         r0 = *((r3 + 0x2c));
    0x000527e6 blx 0xe6cc                                        |         r0 = gst_rtsp_media_get_status ();
    0x000527ea mov sl, r0                                        |         sl = r0;
    0x000527ec cmp r0, 0                                         |         
    0x000527ee beq 0x527d6                                       |         
                                                                 |     } while (r0 == 0);
    0x000527f0 movs r5, 0                                        |     r5 = 0;
                                                                 | label_0:
    0x000527f2 ldr.w r8, [sl]                                    |     r8 = *(sl);
    0x000527f6 ldr.w r4, [r8, 8]                                 |     r4 = *((r8 + 8));
                                                                 |     if (r4 == 0) {
    0x000527fa cbz r4, 0x5281e                                   |         goto label_7;
                                                                 |     }
                                                                 |     do {
    0x000527fc ldr r1, [r6]                                      |         r1 = *(r6);
    0x000527fe ldr r0, [r4]                                      |         r0 = *(r4);
    0x00052800 blx 0x1061c                                       |         r0 = fcn_0001061c ();
    0x00052804 mov r7, r0                                        |         r7 = r0;
                                                                 |         if (r0 == 0) {
    0x00052806 cbnz r0, 0x52818                                  |             
                                                                 |             if (r5 == 0) {
    0x00052808 cbz r5, 0x52838                                   |                 goto label_8;
                                                                 |             }
                                                                 | label_3:
    0x0005280a ldr.w r0, [r8, 0xc]                               |             r0 = *((r8 + 0xc));
    0x0005280e mov r1, r5                                        |             r1 = r5;
    0x00052810 blx 0xe3dc                                        |             fcn_0000e3dc ();
    0x00052814 str.w r0, [r8, 0xc]                               |             __asm ("str.w r0, [r8, 0xc]");
                                                                 |         }
    0x00052818 ldr r4, [r4, 4]                                   |         r4 = *((r4 + 4));
    0x0005281a cmp r4, 0                                         |         
    0x0005281c bne 0x527fc                                       |         
                                                                 |     } while (r4 != 0);
                                                                 | label_7:
    0x0005281e ldr.w sl, [sl, 4]                                 |     sl = *((sl + 4));
    0x00052822 cmp.w sl, 0                                       |     
                                                                 |     if (sl != 0) {
    0x00052826 bne 0x527f2                                       |         goto label_0;
                                                                 |     }
    0x00052828 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x0005282a beq 0x527d6                                       |         goto label_1;
                                                                 |     }
    0x0005282c ldr r3, [sp, 4]                                   |     r3 = var_4h;
    0x0005282e mov r1, r5                                        |     r1 = r5;
    0x00052830 ldr r0, [r3, 0x30]                                |     r0 = *((r3 + 0x30));
    0x00052832 blx 0xe3dc                                        |     fcn_0000e3dc ();
    0x00052836 b 0x527d2                                         |     goto label_2;
                                                                 | label_8:
    0x00052838 ldr.w fp, [r6]                                    |     fp = *(r6);
    0x0005283c movs r0, 8                                        |     r0 = 8;
    0x0005283e blx 0xff9c                                        |     r0 = fcn_0000ff9c ();
    0x00052842 mov r5, r0                                        |     r5 = r0;
    0x00052844 mov r0, fp                                        |     r0 = fp;
    0x00052846 blx 0xe798                                        |     gst_query_new_custom ();
    0x0005284a ldr r2, [pc, 0x84]                                |     r2 = *(0x528d2);
    0x0005284c mov r3, r7                                        |     r3 = r7;
    0x0005284e str r0, [r5]                                      |     *(r5) = r0;
    0x00052850 ldr r1, [pc, 0x80]                                |     r1 = *(0x528d4);
    0x00052852 ldr r0, [pc, 0x84]                                |     r0 = *(0x528da);
    0x00052854 ldr.w r2, [sb, r2]                                |     r2 = *((sb + r2));
    0x00052858 ldr.w r1, [sb, r1]                                |     r1 = *((sb + r1));
    0x0005285c ldr.w r0, [sb, r0]                                |     r0 = *((sb + r0));
    0x00052860 blx 0xe74c                                        |     fcn_0000e74c ();
    0x00052862 invalid                                           |     
    0x00052866 str r0, [r5, 4]                                   |     *((r5 + 4)) = r0;
    0x00052868 ldr r0, [r3]                                      |     r0 = *(r3);
    0x0005286a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0005286c beq 0x5280a                                       |         goto label_3;
                                                                 |     }
    0x0005286e movs r7, 4                                        |     r7 = 4;
                                                                 |     do {
    0x00052870 blx 0xe798                                        |         r0 = gst_query_new_custom ();
    0x00052874 mov r1, r0                                        |         r1 = r0;
    0x00052876 ldr r0, [r5, 4]                                   |         r0 = *((r5 + 4));
    0x00052878 blx 0xf9e0                                        |         gst_sdp_message_as_text ();
    0x0005287c ldr r3, [r6, 0xc]                                 |         r3 = *((r6 + 0xc));
    0x0005287e ldr r0, [r3, r7]                                  |         r0 = *((r3 + r7));
    0x00052880 adds r7, 4                                        |         r7 += 4;
    0x00052882 cmp r0, 0                                         |         
    0x00052884 bne 0x52870                                       |         
                                                                 |     } while (r0 != 0);
    0x00052886 b 0x5280a                                         |     goto label_3;
                                                                 | label_6:
    0x00052888 ldr r0, [sp, 0xc]                                 |     r0 = var_ch;
    0x0005288a blx 0xf548                                        |     gst_mini_object_unref ();
    0x0005288e ldr r0, [sp, 8]                                   |     r0 = var_8h;
    0x00052890 blx 0xfc94                                        |     r0 = fcn_0000fc94 ();
                                                                 |     if (r0 == 0) {
    0x00052894 cbnz r0, 0x528a4                                  |         
    0x00052896 blx 0xe22c                                        |         fcn_0000e22c ();
    0x0005289a add sp, 0x14                                      |         
    0x0005289c pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}        |         
    0x000528a0 b.w 0xe7bc                                        |         void (*0xe7bc)() ();
                                                                 |     }
    0x000528a4 ldr r2, [pc, 0x34]                                |     
    0x000528a6 movs r1, 0x20                                     |     r1 = 0x20;
    0x000528a8 mov r0, r6                                        |     r0 = r6;
    0x000528aa add r2, pc                                        |     r2 = 0xa518a;
    0x000528ac blx 0xe318                                        |     gst_element_error_printf ()
    0x000528b0 blx 0xe22c                                        |     fcn_0000e22c ();
    0x000528b4 add sp, 0x14                                      |     
    0x000528b6 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}        |     
    0x000528ba b.w 0xe7bc                                        |     void (*0xe7bc)() ();
                                                                 | label_4:
    0x000528be add sp, 0x14                                      |     
    0x000528c0 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x56850 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00056850 ()                                      | void fcn_00056850 (uint32_t arg1, uint32_t arg2) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_28h;
                                                                 |     int32_t var_4h_2;
                                                                 |     int32_t var_4h_3;
                                                                 |     int32_t var_ch_2;
                                                                 |     int32_t var_ch_3;
                                                                 |     int32_t var_14h_2;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00056850 movwhs r4, 0xa75                                  |     __asm ("movwhs r4, aav.0x0003587a");
    0x00056854 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00056858 sub sp, 0x44                                      |     
    0x0005685a add r4, sp, 0x28                                  |     r4 += var_28h;
    0x0005685c mov r5, r0                                        |     r5 = r0;
    0x0005685e add r2, pc                                        |     r2 += pc;
    0x00056860 str r2, [sp, 8]                                   |     var_8h = r2;
    0x00056862 str r3, [sp, 0x28]                                |     var_28h = r3;
    0x00056864 strd r3, r3, [r4, 4]                              |     __asm ("strd r3, r3, [var_4h_2]");
    0x00056868 strd r3, r3, [r4, 0xc]                            |     __asm ("strd r3, r3, [var_ch_2]");
    0x0005686c str r3, [r4, 0x14]                                |     var_14h_2 = r3;
    0x0005686e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00056870 beq.w 0x5697e                                     |         goto label_4;
                                                                 |     }
    0x00056874 mov r8, r1                                        |     r8 = r1;
    0x00056876 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x00056878 beq.w 0x56996                                     |         goto label_5;
                                                                 |     }
    0x0005687c ldr r6, [pc, 0x1ac]                               |     
    0x0005687e mov r0, r1                                        |     r0 = r1;
    0x00056880 add r6, pc                                        |     r6 = 0xad2b0;
    0x00056882 mov r1, r6                                        |     r1 = r6;
    0x00056884 blx 0xe100                                        |     r0 = fcn_0000e100 ();
    0x00056888 mov r7, r0                                        |     r7 = r0;
    0x0005688a cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0005688c bne 0x56966                                       |         goto label_6;
                                                                 |     }
                                                                 | label_1:
    0x0005688e mov r0, r5                                        |     r0 = r5;
    0x00056890 movs r1, 0x50                                     |     r1 = 0x50;
    0x00056892 blx 0xe18c                                        |     cert_set_init ();
    0x00056896 ldr r1, [pc, 0x198]                               |     
    0x00056898 movs r3, 0                                        |     r3 = 0;
    0x0005689a add r2, sp, 0x20                                  |     r2 += var_20h;
    0x0005689c add r1, pc                                        |     r1 = 0xad2d2;
    0x0005689e blx 0xf584                                        |     gst_sdp_media_get_media ();
    0x000568a2 ldr r5, [sp, 0x20]                                |     r5 = var_20h;
    0x000568a4 blx 0xf4a4                                        |     r0 = fcn_0000f4a4 ();
    0x000568a8 mov r1, r0                                        |     r1 = r0;
    0x000568aa mov r0, r5                                        |     r0 = r5;
    0x000568ac blx 0xe18c                                        |     cert_set_init ();
    0x000568ae stcl p9, c4, [lr], -0x180                         |     __asm ("stcl p9, c4, [lr], -aav.0x000000ff");
    0x000568b2 add r1, pc                                        |     r1 += pc;
    0x000568b4 blx 0xefc4                                        |     r0 = fcn_0000efc4 ();
    0x000568b8 mov sb, r0                                        |     sb = r0;
    0x000568ba cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x000568bc beq.w 0x56a1c                                     |         goto label_7;
                                                                 |     }
    0x000568c0 ldr r0, [sp, 0x20]                                |     r0 = var_20h;
    0x000568c2 movw fp, 0xe01                                    |     
    0x000568c6 blx 0xec90                                        |     gst_sdp_message_attributes_len ();
    0x000568ca ldr r3, [pc, 0x16c]                               |     
    0x000568cc mov r6, r0                                        |     r6 = r0;
    0x000568ce movt fp, 1                                        |     fp = 0x10e01;
    0x000568d2 movs r5, 0                                        |     r5 = 0;
    0x000568d4 add r3, pc                                        |     r3 = 0xad312;
    0x000568d6 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x000568d8 ldr r3, [pc, 0x160]                               |     
    0x000568da add r3, pc                                        |     r3 = 0xad31a;
    0x000568dc str r3, [sp, 0x10]                                |     var_10h = r3;
                                                                 |     do {
                                                                 | label_0:
    0x000568de mov r1, r4                                        |         r1 = r4;
    0x000568e0 mov r0, r6                                        |         r0 = r6;
    0x000568e2 blx 0xec28                                        |         r0 = fcn_0000ec28 ();
    0x000568e6 cmp r0, 3                                         |         
    0x000568e8 bhi 0x568de                                       |         
                                                                 |     } while (r0 > 3);
                                                                 |     /* switch table (3 cases) at 0x568ee */
    0x000568ea tbb [pc, r0]                                      |     __asm ("tbb aav.0x000000ff");
    0x000568f2 cmp r5, 0                                         |     
    0x000568f4 ite eq                                            |     
                                                                 |     if (r5 != 0) {
    0x000568f6 moveq r7, 0                                       |         r7 = 0;
                                                                 |     }
                                                                 |     if (r5 == 0) {
    0x000568f8 andne r7, r7, 1                                   |         r7 &= 1;
                                                                 |     }
    0x000568fc cmp r7, 0                                         |     
                                                                 |     if (r7 != 0) {
    0x000568fe bne 0x569b2                                       |         goto label_8;
                                                                 |     }
                                                                 | label_2:
    0x00056900 mov r0, sb                                        |     r0 = sb;
    0x00056902 blx 0xdff8                                        |     fcn_0000dff8 ();
    0x00056906 ldr r0, [sp, 0x20]                                |     r0 = var_20h;
    0x00056908 blx 0xdff8                                        |     fcn_0000dff8 ();
    0x0005690c mov r0, r6                                        |     r0 = r6;
    0x0005690e blx 0xeb94                                        |     snd_pcm_hw_params ();
    0x00056912 mov r0, r5                                        |     r0 = r5;
    0x00056914 add sp, 0x44                                      |     
    0x00056916 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
    0x0005691a mov r0, r6                                        |     r0 = r6;
    0x0005691c blx 0xf17c                                        |     g_strv_length ();
    0x00056920 b 0x568de                                         |     goto label_0;
    0x00056922 mov r0, r4                                        |     r0 = r4;
    0x00056924 blx 0xe7fc                                        |     r0 = fcn_0000e7fc ();
    0x00056928 mov sl, r0                                        |     sl = r0;
    0x0005692a blx 0xdbf4                                        |     r0 = fcn_0000dbf4 ();
    0x0005692e mov r1, r0                                        |     r1 = r0;
    0x00056930 mov r0, sl                                        |     r0 = sl;
    0x00056932 blx 0xe18c                                        |     cert_set_init ();
    0x00056936 str r0, [sp, 0x14]                                |     var_14h = r0;
    0x00056938 blx 0xdeb4                                        |     r0 = fcn_0000deb4 ();
    0x0005693c mov sl, r0                                        |     sl = r0;
                                                                 |     if (r0 != 0) {
    0x0005693e cbz r0, 0x5695e                                   |         
    0x00056940 movs r1, 0                                        |         r1 = 0;
    0x00056942 blx 0xfbb8                                        |         r0 = fcn_0000fbb8 ();
                                                                 |         if (r0 != 0) {
    0x00056946 cbz r0, 0x56958                                   |             
    0x00056948 ldr r1, [sp, 0xc]                                 |             r1 = var_ch;
    0x0005694a blx 0x10304                                       |             g_value_get_boxed ();
    0x0005694e ldr r1, [sp, 0x10]                                |             r1 = var_10h;
    0x00056950 blx 0x1061c                                       |             r0 = fcn_0001061c ();
    0x00056954 cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x00056956 beq 0x56a02                                       |                 goto label_9;
                                                                 |             }
                                                                 |         }
                                                                 | label_3:
    0x00056958 mov r0, sl                                        |         r0 = sl;
    0x0005695a blx 0xf5ec                                        |         fcn_0000f5ec ();
                                                                 |     }
    0x0005695e mov r0, r4                                        |     r0 = r4;
    0x00056960 blx 0xeedc                                        |     gst_rtsp_transport_parse ();
    0x00056964 b 0x568de                                         |     goto label_0;
                                                                 | label_6:
    0x00056966 mov r1, r6                                        |     r1 = r6;
    0x00056968 add r3, sp, 0x1c                                  |     r3 += var_1ch;
    0x0005696a add r2, sp, 0x18                                  |     r2 += var_18h;
    0x0005696c mov r0, r8                                        |     r0 = r8;
    0x0005696e movs r7, 1                                        |     r7 = 1;
    0x00056970 blx 0xd9c4                                        |     r0 = gst_structure_get_fraction ();
    0x00056974 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x00056976 bne 0x5688e                                       |         goto label_1;
                                                                 |     }
    0x00056978 mov r0, r8                                        |     r0 = r8;
    0x0005697a blx 0xfd88                                        |     gst_rtsp_auth_set_tls_certificate ();
                                                                 | label_4:
    0x0005697e ldr r1, [pc, 0xc0]                                |     
    0x00056980 ldr r2, [pc, 0xc0]                                |     
    0x00056982 add r1, pc                                        |     
    0x00056984 add r2, pc                                        |     r2 = 0xad3cc;
    0x00056986 add.w r1, r1, 0x154                               |     r1 = 0xad51c;
    0x0005698a blx 0xdc4c                                        |     g_ascii_string_to_unsigned ();
    0x0005698e mov r0, r5                                        |     r0 = r5;
    0x00056990 add sp, 0x44                                      |     
    0x00056992 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_5:
    0x00056996 ldr r1, [pc, 0xb0]                                |     
    0x00056998 mov r0, r8                                        |     r0 = r8;
    0x0005699a ldr r2, [pc, 0xb0]                                |     
    0x0005699c mov r5, r8                                        |     r5 = r8;
    0x0005699e add r1, pc                                        |     
    0x000569a0 add r2, pc                                        |     r2 = 0xad3f2;
    0x000569a2 add.w r1, r1, 0x154                               |     r1 = 0xad540;
    0x000569a6 blx 0xdc4c                                        |     g_ascii_string_to_unsigned ();
    0x000569aa mov r0, r5                                        |     r0 = r5;
    0x000569ac add sp, 0x44                                      |     
    0x000569ae pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_8:
    0x000569b2 ldr r7, [pc, 0x9c]                                |     
    0x000569b4 movs r3, 0                                        |     r3 = 0;
    0x000569b6 add r2, sp, 0x24                                  |     r2 += var_24h;
    0x000569b8 mov r0, sb                                        |     r0 = sb;
    0x000569ba mov r8, r3                                        |     r8 = r3;
    0x000569bc add r7, pc                                        |     r7 = 0xad412;
    0x000569be mov r1, r7                                        |     r1 = r7;
    0x000569c0 blx 0xf584                                        |     gst_sdp_media_get_media ();
    0x000569c4 ldr r0, [sp, 0x24]                                |     r0 = var_24h;
    0x000569c6 blx 0xe478                                        |     r0 = fcn_0000e478 ();
    0x000569ca mov r4, r0                                        |     r4 = r0;
    0x000569cc ldr r0, [sp, 0x24]                                |     r0 = var_24h;
    0x000569ce blx 0xf5ec                                        |     fcn_0000f5ec ();
    0x000569d2 ldr r2, [sp, 8]                                   |     r2 = var_8h;
    0x000569d4 mov r0, r4                                        |     r0 = r4;
    0x000569d6 ldr r3, [pc, 0x7c]                                |     r3 = *(0x56a56);
    0x000569d8 ldr r1, [pc, 0x7c]                                |     
    0x000569da ldr r3, [r2, r3]                                  |     r3 = *((r2 + r3));
    0x000569dc str.w r8, [sp, 4]                                 |     __asm ("str.w r8, [var_4h]");
    0x000569e0 add r1, pc                                        |     r1 = 0xad43c;
    0x000569e2 ldr r2, [r3]                                      |     r2 = *(0x56a56);
    0x000569e4 ldr r3, [sp, 0x1c]                                |     r3 = var_1ch;
    0x000569e6 str r3, [sp]                                      |     *(sp) = r3;
    0x000569e8 ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x000569ea blx 0x105d4                                       |     fcn_000105d4 ();
    0x000569ee mov r0, sb                                        |     r0 = sb;
    0x000569f0 mov r3, r8                                        |     r3 = r8;
    0x000569f2 mov r2, r4                                        |     r2 = r4;
    0x000569f4 mov r1, r7                                        |     r1 = r7;
    0x000569f6 blx 0xf4fc                                        |     fcn_0000f4fc ();
    0x000569fa mov r0, r4                                        |     r0 = r4;
    0x000569fc blx 0xf5ec                                        |     fcn_0000f5ec ();
    0x00056a00 b 0x56900                                         |     goto label_2;
                                                                 | label_9:
    0x00056a02 mov r0, r8                                        |     r0 = r8;
    0x00056a04 blx 0x10580                                       |     r0 = fcn_00010580 ();
    0x00056a08 mov r1, r0                                        |     r1 = r0;
    0x00056a0a mov r0, fp                                        |     r0 = fp;
    0x00056a0c blx 0xf7f4                                        |     r0 = g_key_file_get_string ();
    0x00056a10 mov r1, r0                                        |     r1 = r0;
    0x00056a12 ldr r0, [sp, 0x14]                                |     r0 = var_14h;
    0x00056a14 blx 0xdd60                                        |     r0 = g_value_get_string ();
    0x00056a18 mov r5, r0                                        |     r5 = r0;
    0x00056a1a b 0x56958                                         |     goto label_3;
                                                                 | label_7:
    0x00056a1c mov r0, r8                                        |     r0 = r8;
    0x00056a1e blx 0xfd88                                        |     gst_rtsp_auth_set_tls_certificate ();
    0x00056a22 ldr r0, [sp, 0x20]                                |     r0 = var_20h;
    0x00056a24 blx 0xfba0                                        |     fcn_0000fba0 ();
    0x00056a28 ldr r2, [r7, r1]                                  |     r2 = *((r7 + r1));
    0x00056a2a movs r3, r0                                       |     r3 = r0;
    0x00056a2c b 0x56c88                                         |     
                                                                 |     while (r4 != 0) {
    0x00056c82 ldr r6, [r4]                                      |         r6 = *(r4);
    0x00056c84 bl 0x55024                                        |         r0 = fcn_00055024 ();
    0x00056c88 mov r1, r0                                        |         r1 = r0;
    0x00056c8a mov r0, r6                                        |         r0 = r6;
    0x00056c8c blx 0xe18c                                        |         cert_set_init ();
    0x00056c90 mov r1, r7                                        |         r1 = r7;
    0x00056c92 bl 0x551b0                                        |         r0 = fcn_000551b0 (r0, r1);
                                                                 |         if (r0 != 0) {
    0x00056c96 cbz r0, 0x56caa                                   |             
                                                                 |             if (r5 != 0) {
    0x00056c98 cbnz r5, 0x56cb8                                  |                 goto label_10;
                                                                 |             }
    0x00056c9a ldr r5, [r4]                                      |             r5 = *(r4);
    0x00056c9c bl 0x55024                                        |             r0 = fcn_00055024 ();
    0x00056ca0 mov r1, r0                                        |             r1 = r0;
    0x00056ca2 mov r0, r5                                        |             r0 = r5;
    0x00056ca4 blx 0xe18c                                        |             r0 = cert_set_init ();
    0x00056ca8 mov r5, r0                                        |             r5 = r0;
                                                                 |         }
    0x00056caa ldr r4, [r4, 4]                                   |         r4 = var_4h_2;
    0x00056cac cmp r4, 0                                         |         
    0x00056cae bne 0x56c82                                       |         
                                                                 |     }
    0x00056cb0 cbz r5, 0x56ce2                                   |     
                                                                 |     while (1) {
    0x00056cb2 mov r0, r5                                        |         r0 = r5;
    0x00056cb4 pop.w {r4, r5, r6, r7, r8, pc}                    |         
                                                                 | label_10:
    0x00056cb8 ldr r0, [pc, 0x4c]                                |         
    0x00056cba movs r5, 0                                        |         r5 = 0;
    0x00056cbc add r0, pc                                        |         r0 = 0xad9c8;
    0x00056cbe blx 0xf8c0                                        |         g_strconcat ();
    0x00056cc2 ldr r3, [pc, 0x48]                                |         
    0x00056cc4 mov r1, r0                                        |         r1 = r0;
    0x00056cc6 mov r2, r5                                        |         r2 = r5;
    0x00056cc8 mov r0, r8                                        |         r0 = r8;
    0x00056cca add r3, pc                                        |         r3 = 0xad9dc;
    0x00056ccc blx 0x10398                                       |         fcn_00010398 ();
    0x00056cd0 ldr r2, [pc, 0x3c]                                |         
    0x00056cd2 mov r0, r5                                        |         r0 = r5;
    0x00056cd4 movs r1, 0x20                                     |         r1 = 0x20;
    0x00056cd6 add r2, pc                                        |         r2 = 0xad9ea;
    0x00056cd8 blx 0xe318                                        |         gst_element_error_printf ()
    0x00056cdc mov r0, r5                                        |         r0 = r5;
    0x00056cde pop.w {r4, r5, r6, r7, r8, pc}                    |         
    0x00056ce2 ldr r0, [pc, 0x30]                                |         
    0x00056ce4 movs r5, 0                                        |         r5 = 0;
    0x00056ce6 add r0, pc                                        |         r0 = 0xada00;
    0x00056ce8 blx 0xf8c0                                        |         g_strconcat ();
    0x00056cec ldr r3, [pc, 0x28]                                |         
    0x00056cee mov r1, r0                                        |         r1 = r0;
    0x00056cf0 mov r2, r5                                        |         r2 = r5;
    0x00056cf2 mov r0, r8                                        |         r0 = r8;
    0x00056cf4 add r3, pc                                        |         r3 = 0xada10;
    0x00056cf6 blx 0x10398                                       |         r0 = fcn_00010398 ();
    0x00056cf8 adcs.w sl, r0, r8, lsl 16                         |         __asm ("adcs.w sl, r0, r8, lsl 16");
    0x00056cfc movs r1, 0x20                                     |         r1 = 0x20;
    0x00056cfe mov r0, r5                                        |         r0 = r5;
    0x00056d00 add r2, pc                                        |         r2 += pc;
    0x00056d02 blx 0xe318                                        |         gst_element_error_printf ()
    0x00056d06 b 0x56cb2                                         |         
                                                                 |     }
                                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x59450 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00059450 ()                  | void fcn_00059450 (int16_t arg1, int16_t arg2) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x00059450 push {r3, r4, r5, lr}         |     
    0x00059452 mov r5, r0                    |     r5 = r0;
    0x00059454 mov r4, r1                    |     r4 = r1;
    0x00059456 bl 0x5068c                    |     r0 = fcn_0005068c ();
    0x0005945a mov r1, r0                    |     r1 = r0;
    0x0005945c mov r0, r5                    |     r0 = r5;
    0x0005945e blx 0xe18c                    |     cert_set_init ();
    0x00059462 ldr r0, [r0, 0x18]            |     r0 = *((r0 + 0x18));
    0x00059464 blx 0xf0c0                    |     fcn_0000f0c0 ();
    0x00059468 mov r1, r4                    |     r1 = r4;
    0x0005946a mov r5, r0                    |     r5 = r0;
    0x0005946c blx 0xfe60                    |     g_enum_get_value_by_name ();
                                             |     if (r4 != 0) {
    0x00059470 cbz r4, 0x5947c               |         
    0x00059472 mov r0, r5                    |         r0 = r5;
    0x00059474 pop.w {r3, r4, r5, lr}        |         
    0x00059478 b.w 0xfb9c                    |         void (*0xfb9c)() ();
                                             |     }
    0x0005947c ldr r2, [pc, 0x14]            |     
    0x0005947e mov r0, r4                    |     r0 = r4;
    0x00059480 movs r1, 0x20                 |     r1 = 0x20;
    0x00059482 add r2, pc                    |     r2 = 0xb291a;
    0x00059484 blx 0xe318                    |     gst_element_error_printf ()
    0x00059488 mov r0, r5                    |     r0 = r5;
    0x0005948a pop.w {r3, r4, r5, lr}        |     
    0x0005948e b.w 0xfb9c                    |     return void (*0xfb9c)() ();
                                             | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x59498 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.00059498 ()                          | void fcn_00059498 (int16_t arg1) {
                                                     |     int16_t var_0h;
                                                     |     int16_t var_ch;
                                                     |     r0 = arg1;
                                                     |     if (? < ?) {
    0x00059498 andhs r4, r0, 0x10800                 |         r4 = r0 & 0x10800;
                                                     |     }
    0x0005949c push.w {r4, r5, r6, r7, r8, lr}       |     
    0x000594a0 mov r5, r0                            |     r5 = r0;
    0x000594a2 sub sp, 0x10                          |     
    0x000594a4 add r3, pc                            |     r3 += pc;
    0x000594a6 ldr r4, [r3]                          |     r4 = *(r3);
    0x000594a8 str r2, [sp, 0xc]                     |     var_ch = r2;
    0x000594aa add r4, r0                            |     r4 += r0;
    0x000594ac ldrd r0, r1, [r4, 0xc]                |     __asm ("ldrd r0, r1, [r4, 0xc]");
                                                     |     if (r1 != 0) {
    0x000594b0 cbz r1, 0x594ba                       |         
    0x000594b2 blx 0x1061c                           |         r0 = fcn_0001061c ();
                                                     |         if (r0 == 0) {
    0x000594b6 cbz r0, 0x594e4                       |             goto label_2;
                                                     |         }
    0x000594b8 ldr r0, [r4, 0xc]                     |         r0 = *((r4 + 0xc));
                                                     |     }
    0x000594ba ldr r1, [pc, 0xec]                    |     
    0x000594bc add r1, pc                            |     r1 = 0xb2a6a;
    0x000594be blx 0x1061c                           |     r0 = fcn_0001061c ();
                                                     |     if (r0 != 0) {
    0x000594c2 cbz r0, 0x594d0                       |         
    0x000594c4 ldr r1, [pc, 0xe4]                    |         
    0x000594c6 ldr r0, [r4, 0xc]                     |         r0 = *((r4 + 0xc));
    0x000594c8 add r1, pc                            |         r1 = 0xb2a78;
    0x000594ca blx 0x1061c                           |         r0 = fcn_0001061c ();
                                                     |         if (r0 != 0) {
    0x000594ce cbnz r0, 0x594ec                      |             goto label_3;
                                                     |         }
                                                     |     }
    0x000594d0 mov r0, r5                            |     r0 = r5;
    0x000594d2 movs r1, 0                            |     r1 = 0;
    0x000594d4 bl 0x59450                            |     fcn_00059450 (r0, r1);
    0x000594d8 ldr r0, [r4, 0x10]                    |     r0 = *((r4 + 0x10));
    0x000594da movs r3, 0                            |     r3 = 0;
    0x000594dc str r3, [r4, 0x10]                    |     *((r4 + 0x10)) = r3;
    0x000594de cbz r0, 0x594e4                       |     
                                                     |     while (1) {
    0x000594e0 blx 0xf3e8                            |         fcn_0000f3e8 ();
                                                     | label_2:
    0x000594e4 movs r0, 1                            |         r0 = 1;
    0x000594e6 add sp, 0x10                          |         
    0x000594e8 pop.w {r4, r5, r6, r7, r8, pc}        |         
                                                     | label_3:
    0x000594ec blx 0xe1b0                            |         r0 = formatname_set_max_sequence_number ();
    0x000594f0 mov r7, r0                            |         r7 = r0;
                                                     |         if (r0 != 0) {
    0x000594f2 cbz r0, 0x5950a                       |             
    0x000594f4 add r0, sp, 0xc                       |             r0 += var_ch;
    0x000594f6 movs r6, 0                            |             r6 = 0;
    0x000594f8 blx 0xf95c                            |             gst_mini_object_replace ();
    0x000594fa invalid                               |             
                                                     | label_1:
    0x000594fc mov r0, r6                            |             r0 = r6;
    0x000594fe blx 0xf3e8                            |             fcn_0000f3e8 ();
    0x00059502 movs r0, 0                            |             r0 = 0;
    0x00059504 add sp, 0x10                          |             
    0x00059506 pop.w {r4, r5, r6, r7, r8, pc}        |             
                                                     |         }
    0x0005950a ldr r0, [r4, 8]                       |         r0 = *((r4 + 8));
    0x0005950c blx 0xee40                            |         r0 = g_regex_new ();
    0x00059510 mov r6, r0                            |         r6 = r0;
    0x00059512 cmp r0, 0                             |         
                                                     |         if (r0 == 0) {
    0x00059514 beq 0x5958e                           |             goto label_4;
                                                     |         }
    0x00059516 blx 0xe59c                            |         r0 = fcn_0000e59c ();
    0x0005951a mov r1, r0                            |         r1 = r0;
    0x0005951c mov r0, r6                            |         r0 = r6;
    0x0005951e mov r6, r1                            |         r6 = r1;
    0x00059520 add.w r8, sp, 0xc                     |         r8 += var_ch;
    0x00059524 blx 0xfff0                            |         fcn_0000fff0 ();
    0x00059528 ldr r3, [pc, 0x84]                    |         
    0x0005952a mov r2, r0                            |         r2 = r0;
    0x0005952c ldr r0, [pc, 0x84]                    |         
    0x0005952e mov r1, r6                            |         r1 = r6;
    0x00059530 str r7, [sp]                          |         *(sp) = r7;
    0x00059532 add r3, pc                            |         r3 = 0xb2ae6;
    0x00059534 add r0, pc                            |         r0 = 0xb2aec;
    0x00059536 blx 0xfe18                            |         gst_rtsp_media_factory_set_permissions ();
    0x0005953a mov r1, r8                            |         r1 = r8;
    0x0005953c mov r6, r0                            |         r6 = r0;
    0x0005953e blx 0xfab0                            |         r0 = fcn_0000fab0 ();
    0x00059542 mov r7, r0                            |         r7 = r0;
                                                     |         if (r0 == 0) {
    0x00059544 cbz r0, 0x5959a                       |             goto label_5;
                                                     |         }
    0x00059546 ldrd r0, r3, [r4, 0xc]                |         __asm ("ldrd r0, r3, [r4, 0xc]");
                                                     |         if (r3 == 0) {
    0x0005954a cbz r3, 0x59588                       |             goto label_6;
                                                     |         }
    0x0005954c mov r1, r0                            |         r1 = r0;
    0x0005954e mov r0, r3                            |         r0 = r3;
    0x00059550 blx 0x1061c                           |         r0 = fcn_0001061c ();
                                                     |         if (r0 != 0) {
    0x00059554 cbz r0, 0x59578                       |             
    0x00059556 ldrd r0, r3, [r4, 0xc]                |             __asm ("ldrd r0, r3, [r4, 0xc]");
                                                     |             if (r3 == 0) {
    0x0005955a cbz r3, 0x59588                       |                 goto label_6;
                                                     |             }
                                                     | label_0:
    0x0005955c ldr r2, [pc, 0x58]                    |             
    0x0005955e movs r1, 0x20                         |             r1 = 0x20;
    0x00059560 str r0, [sp]                          |             *(sp) = r0;
    0x00059562 movs r0, 0                            |             r0 = 0;
    0x00059564 add r2, pc                            |             r2 = 0xb2b20;
    0x00059566 blx 0xe318                            |             gst_element_error_printf ()
    0x0005956a ldr r0, [r4, 0x10]                    |             r0 = *((r4 + 0x10));
    0x0005956c blx 0xf3e8                            |             fcn_0000f3e8 ();
    0x00059570 ldr r0, [r4, 0xc]                     |             r0 = *((r4 + 0xc));
    0x00059572 blx 0xe798                            |             gst_query_new_custom ();
    0x00059576 str r0, [r4, 0x10]                    |             *((r4 + 0x10)) = r0;
                                                     |         }
    0x00059578 mov r0, r5                            |         r0 = r5;
    0x0005957a mov r1, r7                            |         r1 = r7;
    0x0005957c bl 0x59450                            |         r0 = fcn_00059450 (r0, r1);
    0x00059580 blx 0xf744                            |         fcn_0000f744 ();
    0x00059584 mov r0, r6                            |         r0 = r6;
    0x00059586 b 0x594e0                             |         
                                                     |     }
                                                     | label_6:
    0x00059588 ldr r3, [pc, 0x30]                    |     
    0x0005958a add r3, pc                            |     r3 = 0xb2b4a;
    0x0005958c b 0x5955c                             |     goto label_0;
                                                     | label_4:
    0x0005958e add r0, sp, 0xc                       |     r0 += var_ch;
    0x00059590 blx 0xf95c                            |     gst_mini_object_replace ();
                                                     |     do {
    0x00059594 blx 0xf744                            |         fcn_0000f744 ();
    0x00059598 b 0x594fc                             |         goto label_1;
                                                     | label_5:
    0x0005959a mov r0, r8                            |         r0 = r8;
    0x0005959c blx 0xf95c                            |         gst_mini_object_replace ();
    0x000595a0 b 0x59594                             |         
                                                     |     } while (1);
                                                     | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x5dbfc */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0005dbfc ()                                  | void fcn_0005dbfc (int16_t arg1, int16_t arg2, int16_t arg3, uint32_t arg4) {
                                                             |     int16_t var_0h;
                                                             |     int16_t var_8h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
                                                             |     r2 = arg3;
                                                             |     r3 = arg4;
    0x0005dbfc cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0005dbfe beq 0x5dca4                                   |         goto label_1;
                                                             |     }
    0x0005dc00 push.w {r4, r5, r6, r7, r8, sb, lr}           |     
    0x0005dc04 mov r8, r0                                    |     r8 = r0;
    0x0005dc06 ldr r6, [r1]                                  |     r6 = *(r1);
    0x0005dc08 sub sp, 0x14                                  |     
    0x0005dc0a mov r4, r1                                    |     r4 = r1;
    0x0005dc0c mov r7, r2                                    |     r7 = r2;
    0x0005dc0e mov r5, r3                                    |     r5 = r3;
                                                             |     if (r6 == 0) {
    0x0005dc10 cbz r6, 0x5dc74                               |         goto label_2;
                                                             |     }
                                                             | label_0:
    0x0005dc12 mov r0, r5                                    |     r0 = r5;
    0x0005dc14 add.w sb, sp, 8                               |     sb += var_8h;
    0x0005dc18 blx 0xe798                                    |     r0 = gst_query_new_custom ();
    0x0005dc1c mov r6, r0                                    |     r6 = r0;
    0x0005dc1e movs r0, 0xc8                                 |     r0 = 0xc8;
    0x0005dc20 blx 0xea2c                                    |     gst_rtsp_range_convert_units ();
    0x0005dc24 movs r1, 0                                    |     r1 = 0;
    0x0005dc26 mov r5, r0                                    |     r5 = r0;
    0x0005dc28 mov r0, sb                                    |     r0 = sb;
    0x0005dc2a blx 0xdc18                                    |     fcn_0000dc18 ();
    0x0005dc2e str.w sb, [sp]                                |     __asm ("str.w sb, [sp]");
    0x0005dc32 mov r2, r6                                    |     r2 = r6;
    0x0005dc34 ldr r3, [r4]                                  |     r3 = *(r4);
    0x0005dc36 movs r1, 0xc8                                 |     r1 = 0xc8;
    0x0005dc38 mov r0, r5                                    |     r0 = r5;
    0x0005dc3a blx 0xf0b4                                    |     r0 = fcn_0000f0b4 ();
                                                             |     if (r0 == 0) {
    0x0005dc3e cbz r0, 0x5dc66                               |         goto label_3;
                                                             |     }
    0x0005dc40 ldr.w r0, [r8, 0xc0]                          |     r0 = *((r8 + 0xc0));
    0x0005dc44 mov r1, r7                                    |     r1 = r7;
    0x0005dc46 movs r3, 0                                    |     r3 = 0;
    0x0005dc48 mov r2, r5                                    |     r2 = r5;
    0x0005dc4a blx 0xf4fc                                    |     fcn_0000f4fc ();
    0x0005dc4e ldr r0, [r4]                                  |     r0 = *(r4);
    0x0005dc50 blx 0xfc70                                    |     fcn_0000fc70 ();
                                                             |     do {
    0x0005dc54 mov r0, r5                                    |         r0 = r5;
    0x0005dc56 blx 0xf3e8                                    |         fcn_0000f3e8 ();
    0x0005dc5a mov r0, r6                                    |         r0 = r6;
    0x0005dc5c blx 0xf3e8                                    |         fcn_0000f3e8 ();
    0x0005dc60 add sp, 0x14                                  |         
    0x0005dc62 pop.w {r4, r5, r6, r7, r8, sb, pc}            |         
                                                             | label_3:
    0x0005dc66 ldr r2, [pc, 0x40]                            |         
    0x0005dc68 mov r3, r7                                    |         r3 = r7;
    0x0005dc6a movs r1, 0x20                                 |         r1 = 0x20;
    0x0005dc6c add r2, pc                                    |         r2 = 0xbb91a;
    0x0005dc6e blx 0xe318                                    |         gst_element_error_printf ()
    0x0005dc72 b 0x5dc54                                     |         
                                                             |     } while (1);
                                                             | label_2:
    0x0005dc74 bl 0x3ab48                                    |     r0 = fcn_0003ab48 ();
    0x0005dc78 mov r1, r0                                    |     r1 = r0;
    0x0005dc7a mov r0, r8                                    |     r0 = r8;
    0x0005dc7c blx 0xe18c                                    |     cert_set_init ();
    0x0005dc80 mov r3, r6                                    |     r3 = r6;
    0x0005dc82 ldr r0, [r0, 0x28]                            |     r0 = *((r0 + 0x28));
    0x0005dc84 mov r2, r6                                    |     r2 = r6;
    0x0005dc86 mov r1, r6                                    |     r1 = r6;
    0x0005dc88 blx 0xfdb8                                    |     g_param_spec_double ();
    0x0005dc8c str r0, [r4]                                  |     *(r4) = r0;
    0x0005dc8e cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0005dc90 bne 0x5dc12                                   |         goto label_0;
                                                             |     }
    0x0005dc92 ldr r2, [pc, 0x18]                            |     
    0x0005dc94 mov r3, r7                                    |     r3 = r7;
    0x0005dc96 movs r1, 0x20                                 |     r1 = 0x20;
    0x0005dc98 add r2, pc                                    |     r2 = 0xbb94a;
    0x0005dc9a add sp, 0x14                                  |     
    0x0005dc9c pop.w {r4, r5, r6, r7, r8, sb, lr}            |     
    0x0005dca0 b.w 0xe314                                    |     void (*0xe314)() ();
                                                             | label_1:
    0x0005dca4 bx lr                                         |     return;
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x5eb30 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.0005eb30 ()                                      | void fcn_0005eb30 (uint32_t arg1, uint32_t arg2) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0005eb30 push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x0005eb34 sub sp, 0x18                                      |     
    0x0005eb36 ldr r6, [pc, 0x194]                               |     
    0x0005eb38 add r6, pc                                        |     r6 = 0xbd80a;
    0x0005eb3a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0005eb3c beq 0x5ebca                                       |         goto label_1;
                                                                 |     }
    0x0005eb3e mov r3, r1                                        |     r3 = r1;
    0x0005eb40 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x0005eb42 beq 0x5ebe0                                       |         goto label_2;
                                                                 |     }
    0x0005eb44 movs r1, 0                                        |     r1 = 0;
    0x0005eb46 mov r4, r0                                        |     r4 = r0;
    0x0005eb48 mov r0, r3                                        |     r0 = r3;
    0x0005eb4a blx 0xfbb8                                        |     fcn_0000fbb8 ();
    0x0005eb4e ldr r1, [pc, 0x180]                               |     
    0x0005eb50 add r2, sp, 0xc                                   |     r2 += var_ch;
    0x0005eb52 mov r5, r0                                        |     r5 = r0;
    0x0005eb54 add r1, pc                                        |     r1 = 0xbd82a;
    0x0005eb56 blx 0x101f8                                       |     r0 = fcn_000101f8 ();
    0x0005eb5a cbnz r0, 0x5eb66                                  |     
                                                                 |     while (r0 == 0) {
                                                                 | label_0:
    0x0005eb5c movw r0, 0x1c3                                    |         r0 = 0x1c3;
    0x0005eb66 ldr r1, [pc, 0x16c]                               |         
    0x0005eb68 add r2, sp, 0x10                                  |         r2 += var_10h;
    0x0005eb6a mov r0, r5                                        |         r0 = r5;
    0x0005eb6c add r1, pc                                        |         r1 = 0xbd846;
    0x0005eb6e blx 0x101f8                                       |         r0 = fcn_000101f8 ();
    0x0005eb72 cmp r0, 0                                         |         
    0x0005eb74 beq 0x5eb5c                                       |         
                                                                 |     }
    0x0005eb76 ldr r1, [pc, 0x160]                               |     
    0x0005eb78 mov r0, r5                                        |     r0 = r5;
    0x0005eb7a add r1, pc                                        |     r1 = 0xbd858;
    0x0005eb7c blx 0xe7a4                                        |     r0 = g_value_get_object ();
    0x0005eb80 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0005eb82 beq 0x5eb5c                                       |         goto label_0;
                                                                 |     }
    0x0005eb84 blx 0x103f8                                       |     r0 = fcn_000103f8 ();
    0x0005eb88 mov r8, r0                                        |     r8 = r0;
    0x0005eb8a cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0005eb8c beq 0x5eb5c                                       |         goto label_0;
                                                                 |     }
    0x0005eb8e movs r5, 0                                        |     r5 = 0;
    0x0005eb90 add r7, sp, 0x14                                  |     r7 += var_14h;
    0x0005eb92 b 0x5ebaa                                         |     
                                                                 |     while (ip > r5) {
    0x0005eb94 blx 0xeb04                                        |         g_value_set_uint64 ();
    0x0005eb98 mov r1, r7                                        |         r1 = r7;
    0x0005eb9a mov sb, r0                                        |         sb = r0;
    0x0005eb9c blx 0xfe84                                        |         g_snprintf ()
    0x0005eba0 ldrd r3, r1, [sp, 0x10]                           |         __asm ("ldrd r3, r1, [var_10h]");
    0x0005eba4 cmp r3, r1                                        |         
                                                                 |         if (r3 == r1) {
    0x0005eba6 beq 0x5ebf8                                       |             goto label_3;
                                                                 |         }
    0x0005eba8 adds r5, 1                                        |         r5++;
    0x0005ebaa mov r0, r4                                        |         r0 = r4;
    0x0005ebac blx 0x104a4                                       |         r0 = fcn_000104a4 ();
    0x0005ebb0 mov ip, r0                                        |         
    0x0005ebb2 mov r1, r5                                        |         r1 = r5;
    0x0005ebb4 cmp ip, r5                                        |         
    0x0005ebb6 mov r0, r4                                        |         r0 = r4;
    0x0005ebb8 bhi 0x5eb94                                       |         
                                                                 |     }
    0x0005ebba ldr r2, [pc, 0x120]                               |     
    0x0005ebbc movs r1, 0x20                                     |     r1 = 0x20;
    0x0005ebbe ldr r3, [sp, 0x10]                                |     r3 = var_10h;
    0x0005ebc0 movs r0, 0                                        |     r0 = 0;
    0x0005ebc2 add r2, pc                                        |     r2 = 0xbd8a4;
    0x0005ebc4 blx 0xe318                                        |     gst_element_error_printf ()
    0x0005ebc8 b 0x5eb5c                                         |     goto label_0;
                                                                 | label_1:
    0x0005ebca ldr r2, [pc, 0x114]                               |     
    0x0005ebcc ldr r1, [pc, 0x114]                               |     
    0x0005ebce add r2, pc                                        |     r2 = 0xbd8b4;
    0x0005ebd0 add r1, pc                                        |     r1 = 0xbd8b8;
    0x0005ebd2 blx 0xdc4c                                        |     g_ascii_string_to_unsigned ();
    0x0005ebd6 movw r0, 0x1c3                                    |     r0 = 0x1c3;
    0x0005ebda add sp, 0x18                                      |     
    0x0005ebdc pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |     
                                                                 | label_2:
    0x0005ebe0 ldr r2, [pc, 0x104]                               |     
    0x0005ebe2 mov r0, r3                                        |     r0 = r3;
    0x0005ebe4 ldr r1, [pc, 0x104]                               |     
    0x0005ebe6 add r2, pc                                        |     r2 = 0xbd8d2;
    0x0005ebe8 add r1, pc                                        |     r1 = 0xbd8d8;
    0x0005ebea blx 0xdc4c                                        |     g_ascii_string_to_unsigned ();
    0x0005ebee movw r0, 0x1c3                                    |     r0 = 0x1c3;
    0x0005ebf0 asrs r3, r0, 3                                    |     r3 = r0 >> 3;
    0x0005ebf2 add sp, 0x18                                      |     
    0x0005ebf4 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |     
                                                                 | label_3:
    0x0005ebf8 bl 0x5596c                                        |     r0 = fcn_0005596c ();
    0x0005ebfc mov r1, r0                                        |     r1 = r0;
    0x0005ebfe mov r0, r4                                        |     r0 = r4;
    0x0005ec00 blx 0xe18c                                        |     cert_set_init ();
    0x0005ec04 mov r1, r5                                        |     r1 = r5;
    0x0005ec06 bl 0x55cc8                                        |     fcn_00055cc8 (r0, r1);
    0x0005ec0a movs r1, 0                                        |     r1 = 0;
    0x0005ec0c mov r4, r0                                        |     r4 = r0;
    0x0005ec0e ldr r0, [r0, 0x14]                                |     r0 = *((r0 + 0x14));
    0x0005ec10 blx 0xfbb8                                        |     fcn_0000fbb8 ();
    0x0005ec14 ldr r3, [r4, 0x14]                                |     r3 = *((r4 + 0x14));
    0x0005ec16 mov r5, r0                                        |     r5 = r0;
    0x0005ec18 cmp r3, 0                                         |     
    0x0005ec1a it ne                                             |     
                                                                 |     if (r3 != 0) {
    0x0005ec1c cmpne r0, 0                                       |         __asm ("cmpne r0, 0");
                                                                 |     }
    0x0005ec1e ite ne                                            |     
                                                                 |     if (r3 == 0) {
    0x0005ec20 movne r3, 1                                       |         r3 = 1;
                                                                 |     }
                                                                 |     if (r3 != 0) {
    0x0005ec22 moveq r3, 0                                       |         r3 = 0;
                                                                 |     }
                                                                 |     if (r3 != 0) {
    0x0005ec24 bne 0x5ec5e                                       |         goto label_4;
                                                                 |     }
    0x0005ec26 ldr r2, [pc, 0xc8]                                |     
    0x0005ec28 movs r1, 0x20                                     |     r1 = 0x20;
    0x0005ec2a mov r0, r3                                        |     r0 = r3;
    0x0005ec2c add r2, pc                                        |     r2 = 0xbd922;
    0x0005ec2e blx 0xe318                                        |     gst_element_error_printf ()
                                                                 |     do {
    0x0005ec32 movs r1, 0x50                                     |         r1 = 0x50;
    0x0005ec34 ldr r0, [r4, 0xc]                                 |         r0 = *((r4 + 0xc));
    0x0005ec36 blx 0xe18c                                        |         cert_set_init ();
    0x0005ec38 invalid                                           |         
    0x0005ec3c movs r3, 0                                        |         r3 = 0;
    0x0005ec3e ldr r2, [sp, 0xc]                                 |         r2 = var_ch;
    0x0005ec40 add r1, pc                                        |         r1 += pc;
    0x0005ec42 blx 0xf4fc                                        |         fcn_0000f4fc ();
    0x0005ec46 movs r1, 0x50                                     |         r1 = 0x50;
    0x0005ec48 ldr r0, [r4, 0xc]                                 |         r0 = *((r4 + 0xc));
    0x0005ec4a blx 0xe18c                                        |         cert_set_init ();
    0x0005ec4c invalid                                           |         
    0x0005ec50 movs r3, 0                                        |         r3 = 0;
                                                                 | label_4:
    0x0005ec5e ldr r1, [pc, 0x9c]                                |         
    0x0005ec60 mov.w sl, 0                                       |         sl = 0;
    0x0005ec64 ldr r3, [sp, 0xc]                                 |         r3 = var_ch;
    0x0005ec66 movs r2, 0x1c                                     |         r2 = 0x1c;
    0x0005ec68 str.w sl, [sp]                                    |         __asm ("str.w sl, [sp]");
    0x0005ec6a adr r0, 0                                         |         r0 = 0;
    0x0005ec6c add r1, pc                                        |         r1 = 0xbd96e;
    0x0005ec6e str.w sl, [sp, 0x14]                              |         __asm ("str.w sl, [var_14h]");
    0x0005ec72 blx 0xd9f8                                        |         fcn_0000d9f8 ();
    0x0005ec76 ldr r3, [pc, 0x88]                                |         r3 = *(0x5ed02);
    0x0005ec78 mov r0, r5                                        |         r0 = r5;
    0x0005ec7a ldr r1, [pc, 0x88]                                |         
    0x0005ec7c ldr r3, [r6, r3]                                  |         r3 = *((r6 + r3));
    0x0005ec7e add r1, pc                                        |         r1 = 0xbd988;
    0x0005ec80 str.w sl, [sp]                                    |         __asm ("str.w sl, [sp]");
    0x0005ec84 ldr r2, [r3]                                      |         r2 = *(0x5ed02);
    0x0005ec86 mov r3, r8                                        |         r3 = r8;
    0x0005ec88 blx 0xd9f8                                        |         fcn_0000d9f8 ();
    0x0005ec8a cdp p6, 0xb, c4, c6, c8, 1                        |         __asm ("cdp p6, 0xb, c4, c6, c8, 1");
    0x0005ec8e blx 0x10580                                       |         fcn_00010580 ();
    0x0005ec92 mov r1, sl                                        |         r1 = sl;
    0x0005ec94 blx 0xdd00                                        |         gst_sdp_media_replace_attribute ();
    0x0005ec98 ldr r1, [pc, 0x6c]                                |         
    0x0005ec9a mov r6, r0                                        |         r6 = r0;
    0x0005ec9c mov r2, r7                                        |         r2 = r7;
    0x0005ec9e mov r0, r5                                        |         r0 = r5;
    0x0005eca0 add r1, pc                                        |         r1 = 0xbd9ac;
    0x0005eca2 blx 0x101f8                                       |         fcn_000101f8 ();
    0x0005eca6 mov r2, r6                                        |         r2 = r6;
    0x0005eca8 ldr r1, [sp, 0x14]                                |         r1 = var_14h;
    0x0005ecaa mov r0, sb                                        |         r0 = sb;
    0x0005ecac blx 0xebd0                                        |         gst_rtsp_message_get_header_by_name ();
    0x0005ecb0 mov r0, r6                                        |         r0 = r6;
    0x0005ecb2 blx 0xf5ec                                        |         fcn_0000f5ec ();
    0x0005ecb6 ldr r0, [r4, 0x10]                                |         r0 = *((r4 + 0x10));
    0x0005ecb8 movs r1, 0x50                                     |         r1 = 0x50;
    0x0005ecba blx 0xe18c                                        |         cert_set_init ();
    0x0005ecbe ldr r1, [pc, 0x4c]                                |         
    0x0005ecc0 ldr r2, [sp, 0x14]                                |         r2 = var_14h;
    0x0005ecc2 add r1, pc                                        |         r1 = 0xbd9d4;
    0x0005ecc4 blx 0x1051c                                       |         fcn_0001051c ();
    0x0005ecc8 b 0x5ec32                                         |         
                                                                 |     } while (1);
                                                                 | }
    ; assembly                                           | /* r2dec pseudo code output */
                                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x5f7a8 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.0005f7a8 ()                              | void fcn_0005f7a8 (int16_t arg1) {
                                                         |     int16_t var_0h;
                                                         |     int16_t var_4h;
                                                         |     int32_t var_8h;
                                                         |     int32_t var_8h_2;
                                                         |     int16_t var_14h;
                                                         |     r0 = arg1;
    0x0005f7a8 push.w {r4, r5, r6, r7, r8, lr}           |     
    0x0005f7ac sub sp, 0x18                              |     
    0x0005f7ae ldr r5, [r0, 0x18]                        |     r5 = *((r0 + 0x18));
    0x0005f7b0 cbz r5, 0x5f7b8                           |     
                                                         |     while (1) {
    0x0005f7b2 add sp, 0x18                              |         
    0x0005f7b4 pop.w {r4, r5, r6, r7, r8, pc}            |         
    0x0005f7b8 ldr r3, [r0, 0x20]                        |         r3 = *((r0 + 0x20));
    0x0005f7ba mov r4, r0                                |         r4 = r0;
    0x0005f7bc subs r2, r3, 1                            |         r2 = r3 - 1;
    0x0005f7be cmp.w r2, 0x258                           |         
                                                         |         if (r2 >= 0x258) {
    0x0005f7c2 bhs 0x5f85a                               |             goto label_0;
                                                         |         }
    0x0005f7c4 ldr r1, [r0, 0x1c]                        |         r1 = *((r0 + 0x1c));
    0x0005f7c6 mov.w r2, 0x3e8                           |         r2 = 0x3e8;
    0x0005f7ca ldr r0, [pc, 0xac]                        |         
    0x0005f7cc mul r6, r2, r3                            |         r6 = r2 * r3;
    0x0005f7d0 add r0, pc                                |         r0 = 0xbf04e;
    0x0005f7d2 blx 0xe9b4                                |         gst_rtsp_message_append_headers ();
    0x0005f7d6 ldr r1, [pc, 0xa4]                        |         
    0x0005f7d8 mov r3, r5                                |         r3 = r5;
    0x0005f7da ldr r2, [r4, 0x24]                        |         r2 = *((r4 + 0x24));
    0x0005f7dc mov r8, r0                                |         r8 = r0;
    0x0005f7de mov r0, r5                                |         r0 = r5;
    0x0005f7e0 add r1, pc                                |         r1 = 0xbf062;
    0x0005f7e2 bl 0x6593c                                |         r0 = fcn_0006593c (r0, r1, r2);
    0x0005f7e6 mov r7, r0                                |         r7 = r0;
    0x0005f7e8 cmp r0, 0                                 |         
                                                         |         if (r0 == 0) {
    0x0005f7ea beq 0x5f86c                               |             goto label_1;
                                                         |         }
    0x0005f7ec str r5, [sp, 0x14]                        |         var_14h = r5;
    0x0005f7ee bl 0x3ab48                                |         fcn_0003ab48 ();
    0x0005f7f2 ldr r3, [pc, 0x8c]                        |         
    0x0005f7f4 mov r2, r6                                |         r2 = r6;
    0x0005f7f6 ldr r1, [pc, 0x8c]                        |         
    0x0005f7f8 strd r5, r5, [sp, 8]                      |         __asm ("strd r5, r5, [var_8h]");
    0x0005f7fc add r3, pc                                |         r3 = 0xbf082;
    0x0005f7fe str.w r8, [sp]                            |         __asm ("str.w r8, [sp]");
    0x0005f802 str r3, [sp, 4]                           |         var_4h = r3;
    0x0005f804 add r1, pc                                |         r1 = 0xbf08e;
    0x0005f806 ldr r3, [pc, 0x80]                        |         
    0x0005f808 add r3, pc                                |         r3 = 0xbf096;
    0x0005f80a blx 0xd9e0                                |         fcn_0000d9e0 ();
    0x0005f80e add r2, sp, 0x14                          |         r2 += var_14h;
    0x0005f810 mov r1, r7                                |         r1 = r7;
    0x0005f812 str r0, [r4, 0x18]                        |         *((r4 + 0x18)) = r0;
    0x0005f814 bl 0x3bbfc                                |         r0 = fcn_0003bbfc (r0, r1, r2);
    0x0005f818 mov r5, r0                                |         r5 = r0;
                                                         |         if (r0 != 0) {
    0x0005f81a cbz r0, 0x5f82e                           |             
    0x0005f81c mov r0, r7                                |             r0 = r7;
    0x0005f81e blx 0xff14                                |             cert_set_get_path ();
    0x0005f822 mov r0, r8                                |             r0 = r8;
    0x0005f824 blx 0xf3e8                                |             fcn_0000f3e8 ();
    0x0005f828 add sp, 0x18                              |             
    0x0005f82a pop.w {r4, r5, r6, r7, r8, pc}            |             
                                                         |         }
    0x0005f82e ldr r0, [r4, 0x18]                        |         r0 = *((r4 + 0x18));
    0x0005f830 blx 0xfba0                                |         fcn_0000fba0 ();
    0x0005f834 mov r0, r7                                |         r0 = r7;
    0x0005f836 str r5, [r4, 0x18]                        |         *((r4 + 0x18)) = r5;
    0x0005f838 blx 0xff14                                |         cert_set_get_path ();
    0x0005f83c mov r0, r8                                |         r0 = r8;
    0x0005f83e blx 0xf3e8                                |         fcn_0000f3e8 ();
    0x0005f842 ldr r3, [sp, 0x14]                        |         r3 = var_14h;
    0x0005f844 mov r0, r5                                |         r0 = r5;
    0x0005f846 ldr r2, [pc, 0x44]                        |         
    0x0005f848 movs r1, 0x20                             |         r1 = 0x20;
    0x0005f84a ldr r3, [r3, 8]                           |         r3 = *((r3 + 8));
    0x0005f84c add r2, pc                                |         r2 = 0xbf0de;
    0x0005f84e blx 0xe318                                |         gst_element_error_printf ()
    0x0005f852 ldr r0, [sp, 0x14]                        |         r0 = var_14h;
    0x0005f854 blx 0xdec0                                |         fcn_0000dec0 ();
    0x0005f858 b 0x5f7b2                                 |         
                                                         |     }
                                                         | label_0:
    0x0005f85a ldr r2, [pc, 0x34]                        |     
    0x0005f85c movs r1, 0x20                             |     r1 = 0x20;
    0x0005f85e mov r0, r5                                |     r0 = r5;
    0x0005f860 add r2, pc                                |     r2 = 0xbf0f6;
    0x0005f862 add sp, 0x18                              |     
    0x0005f864 pop.w {r4, r5, r6, r7, r8, lr}            |     
    0x0005f868 b.w 0xe314                                |     void (*0xe314)() ();
                                                         | label_1:
    0x0005f86c mov r0, r8                                |     r0 = r8;
    0x0005f86e add sp, 0x18                              |     
    0x0005f870 pop.w {r4, r5, r6, r7, r8, lr}            |     
    0x0005f874 b.w 0xf3e4                                |     return void (*0xf3e4)() ();
                                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x60dcc */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00060dcc ()                  | void fcn_00060dcc (int16_t domain) {
                                             |     r0 = domain;
    0x00060dcc push {r4, r5, r6, lr}         |     
    0x00060dce add.w r5, r0, 0xc             |     r5 = r0 + 0xc;
    0x00060dd2 mov r4, r0                    |     r4 = r0;
    0x00060dd4 mov r0, r5                    |     r0 = r5;
    0x00060dd6 blx 0xf26c                    |     socket (r0, r1, r2);
    0x00060dda ldr r6, [r4, 0x20]            |     r6 = *((r4 + 0x20));
                                             |     if (r6 != 0) {
    0x00060ddc cbnz r6, 0x60e12              |         goto label_2;
                                             |     }
    0x00060dde ldr r1, [pc, 0x74]            |     
    0x00060de0 movs r2, 1                    |     r2 = 1;
    0x00060de2 ldr r0, [r4, 0x1c]            |     r0 = *((r4 + 0x1c));
    0x00060de4 str r2, [r4, 0x20]            |     *((r4 + 0x20)) = r2;
    0x00060de6 add r1, pc                    |     r1 = 0xc1c40;
    0x00060de8 blx 0xfca0                    |     r0 = fcn_0000fca0 ();
    0x00060dec cmp r0, 0                     |     
    0x00060dee blt 0x60e2c                   |     
                                             |     while (1) {
    0x00060df0 mov r0, r5                    |         r0 = r5;
    0x00060df2 blx 0xf548                    |         gst_mini_object_unref ();
    0x00060df6 ldr r0, [r4, 0x14]            |         r0 = *((r4 + 0x14));
    0x00060df8 blx 0x10450                   |         fcn_00010450 ();
    0x00060dfc ldr r0, [r4, 0x18]            |         r0 = *((r4 + 0x18));
    0x00060dfe blx 0xea08                    |         r0 = gst_rtsp_session_media_get_media ();
    0x00060e02 cmp r0, 0                     |         
                                             |         if (r0 < 0) {
    0x00060e04 blt 0x60e3a                   |             goto label_3;
                                             |         }
    0x00060e06 ldr r0, [r4, 0x1c]            |         r0 = *((r4 + 0x1c));
    0x00060e08 blx 0xea08                    |         r0 = gst_rtsp_session_media_get_media ();
    0x00060e0c cmp r0, 0                     |         
                                             |         if (r0 >= 0) {
    0x00060e0e blt 0x60e1c                   |             
                                             | label_0:
    0x00060e10 pop {r4, r5, r6, pc}          |             
                                             | label_2:
    0x00060e12 mov r0, r5                    |             r0 = r5;
    0x00060e14 pop.w {r4, r5, r6, lr}        |             
    0x00060e18 b.w 0xf544                    |             void (*0xf544)() ();
                                             |         }
                                             | label_1:
    0x00060e1c ldr r2, [pc, 0x38]            |         
    0x00060e1e movs r1, 0x20                 |         r1 = 0x20;
    0x00060e20 pop.w {r4, r5, r6, lr}        |         
    0x00060e24 movs r0, 0                    |         r0 = 0;
    0x00060e26 add r2, pc                    |         r2 = 0xc1c82;
    0x00060e28 b.w 0xe314                    |         void (*0xe314)() ();
    0x00060e2c ldr r2, [pc, 0x2c]            |         
    0x00060e2e movs r1, 0x20                 |         r1 = 0x20;
    0x00060e30 mov r0, r6                    |         r0 = r6;
    0x00060e32 add r2, pc                    |         r2 = 0xc1c92;
    0x00060e34 blx 0xe318                    |         gst_element_error_printf ()
    0x00060e38 b 0x60df0                     |         
                                             |     }
                                             | label_3:
    0x00060e3a ldr r2, [pc, 0x24]            |     
    0x00060e3c movs r1, 0x20                 |     r1 = 0x20;
    0x00060e3e movs r0, 0                    |     r0 = 0;
    0x00060e40 add r2, pc                    |     r2 = 0xc1ca6;
    0x00060e42 blx 0xe318                    |     gst_element_error_printf ()
    0x00060e46 ldr r0, [r4, 0x1c]            |     r0 = *((r4 + 0x1c));
    0x00060e48 blx 0xea08                    |     r0 = gst_rtsp_session_media_get_media ();
    0x00060e4c cmp r0, 0                     |     
                                             |     if (r0 >= 0) {
    0x00060e4e bge 0x60e10                   |         goto label_0;
                                             |     }
    0x00060e50 b 0x60e1c                     |     goto label_1;
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x615a4 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.000615a4 ()              | void fcn_000615a4 (int16_t arg1, int16_t arg2) {
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x000615a4 push {r4, r5, r6, lr}     |     
    0x000615a6 movs r2, 1                |     r2 = 1;
    0x000615a8 mov r5, r0                |     r5 = r0;
    0x000615aa bl 0x60b70                |     r0 = fcn_00060b70 (r0, r1, r2);
    0x000615ae mov r4, r0                |     r4 = r0;
                                         |     if (r0 == 0) {
    0x000615b0 cbnz r0, 0x615b6          |         
    0x000615b2 mov r0, r4                |         r0 = r4;
    0x000615b4 pop {r4, r5, r6, pc}      |         
                                         |     }
    0x000615b6 add.w r6, r5, 0xc         |     r6 = r5 + 0xc;
    0x000615ba mov r0, r6                |     r0 = r6;
    0x000615bc blx 0xf26c                |     socket (r0, r1, r2);
    0x000615c0 ldr r2, [r5, 0x24]        |     r2 = *((r5 + 0x24));
    0x000615c2 adds r2, 1                |     r2++;
    0x000615c4 cmp r2, 1                 |     
    0x000615c6 str r2, [r5, 0x24]        |     *((r5 + 0x24)) = r2;
    0x000615c8 beq 0x615d4               |     
                                         |     while (r0 >= 0) {
                                         | label_0:
    0x000615ca mov r0, r6                |         r0 = r6;
    0x000615cc blx 0xf548                |         gst_mini_object_unref ();
    0x000615d0 mov r0, r4                |         r0 = r4;
    0x000615d2 pop {r4, r5, r6, pc}      |         
    0x000615d4 ldr r1, [pc, 0x18]        |         
    0x000615d6 ldr r0, [r5, 0x1c]        |         r0 = *((r5 + 0x1c));
    0x000615d8 add r1, pc                |         r1 = 0xc2bcc;
    0x000615da blx 0xfca0                |         r0 = fcn_0000fca0 ();
    0x000615de cmp r0, 0                 |         
    0x000615e0 bge 0x615ca               |         
                                         |     }
    0x000615e2 ldr r2, [pc, 0x10]        |     
    0x000615e4 movs r1, 0x20             |     r1 = 0x20;
    0x000615e6 movs r0, 0                |     r0 = 0;
    0x000615e8 add r2, pc                |     r2 = 0xc2be2;
    0x000615ea blx 0xe318                |     gst_element_error_printf ()
    0x000615ee b 0x615ca                 |     goto label_0;
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x615f8 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.000615f8 ()                  | void fcn_000615f8 (int16_t arg1) {
                                             |     r0 = arg1;
    0x000615f8 push {r4, r5, r6, lr}         |     
    0x000615fa mov.w r2, -1                  |     r2 = -1;
    0x000615fe mov r4, r0                    |     r4 = r0;
    0x00061600 bl 0x60b70                    |     r0 = fcn_00060b70 (r0, r1, r2);
                                             |     if (r0 == 0) {
    0x00061604 cbnz r0, 0x61608              |         
    0x00061606 pop {r4, r5, r6, pc}          |         
                                             |     }
    0x00061608 add.w r6, r4, 0xc             |     r6 = r4 + 0xc;
    0x0006160c mov r0, r6                    |     r0 = r6;
    0x0006160e blx 0xf26c                    |     socket (r0, r1, r2);
    0x00061612 ldr r5, [r4, 0x24]            |     r5 = *((r4 + 0x24));
    0x00061614 subs r5, 1                    |     r5--;
    0x00061616 str r5, [r4, 0x24]            |     *((r4 + 0x24)) = r5;
    0x00061618 cbz r5, 0x61624               |     
                                             |     while (r0 >= 0) {
                                             | label_0:
    0x0006161a mov r0, r6                    |         r0 = r6;
    0x0006161c pop.w {r4, r5, r6, lr}        |         
    0x00061620 b.w 0xf544                    |         void (*0xf544)() ();
    0x00061624 ldr r1, [pc, 0x1c]            |         
    0x00061626 movs r2, 1                    |         r2 = 1;
    0x00061628 ldr r0, [r4, 0x1c]            |         r0 = *((r4 + 0x1c));
    0x0006162a add r1, pc                    |         r1 = 0xc2c72;
    0x0006162c blx 0xfca0                    |         r0 = fcn_0000fca0 ();
    0x00061630 cmp r0, 0                     |         
    0x00061632 bge 0x6161a                   |         
                                             |     }
    0x00061634 ldr r2, [pc, 0x10]            |     
    0x00061636 movs r1, 0x20                 |     r1 = 0x20;
    0x00061638 mov r0, r5                    |     r0 = r5;
    0x0006163a add r2, pc                    |     r2 = 0xc2c86;
    0x0006163c blx 0xe318                    |     gst_element_error_printf ()
    0x00061640 b 0x6161a                     |     goto label_0;
                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x61e84 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00061e84 ()                                      | void fcn_00061e84 () {
                                                                 |     int16_t var_0h;
                                                                 |     int32_t var_0h_2;
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
    0x00061e84 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00061e88 movs r3, 0                                        |     r3 = 0;
    0x00061e8a sub sp, 0x3c                                      |     
    0x00061e8c ldr.w fp, [pc, 0xcc]                              |     
    0x00061e90 add r6, sp, 0x20                                  |     r6 += var_20h;
    0x00061e92 add.w r8, sp, 0x18                                |     r8 += var_18h;
    0x00061e96 str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x00061e98 add r7, sp, 0x14                                  |     r7 += var_14h;
    0x00061e9a blx 0xfa10                                        |     umask (r0);
    0x00061e9e ldr r3, [pc, 0xc0]                                |     
    0x00061ea0 mov r5, r0                                        |     r5 = r0;
    0x00061ea2 mov r0, r6                                        |     r0 = r6;
    0x00061ea4 ldr.w sl, [pc, 0xbc]                              |     
    0x00061ea8 add fp, pc                                        |     fp = 0xc3e08;
    0x00061eaa add r3, pc                                        |     r3 = 0xc3e10;
    0x00061eac ldr r1, [r3, 0x18]                                |     r1 = *(0xc3e28);
    0x00061eae add sl, pc                                        |     sl = 0xc3e16;
    0x00061eb0 blx 0xeae0                                        |     poll ();
    0x00061eb4 ldr r3, [pc, 0xb0]                                |     
    0x00061eb6 add r3, pc                                        |     r3 = 0xc3e22;
    0x00061eb8 str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x00061eba b 0x61ef4                                         |     
                                                                 |     while (r0 != 0) {
    0x00061ebc ldr r4, [sp, 0x18]                                |         r4 = var_18h;
    0x00061ebe bl 0x61ccc                                        |         r0 = fcn_00061ccc ();
    0x00061ec2 mov r1, r0                                        |         r1 = r0;
    0x00061ec4 mov r0, r4                                        |         r0 = r4;
    0x00061ec6 blx 0xe18c                                        |         r0 = cert_set_init ();
    0x00061eca mov r4, r0                                        |         r4 = r0;
    0x00061ecc mov r0, fp                                        |         r0 = fp;
    0x00061ece ldr r1, [r4, 0xc]                                 |         r1 = *((r4 + 0xc));
    0x00061ed0 blx 0xe9b4                                        |         gst_rtsp_message_append_headers ();
    0x00061ed4 ldr r3, [r4, 0x10]                                |         r3 = *((r4 + 0x10));
    0x00061ed6 mov sb, r0                                        |         sb = r0;
    0x00061ed8 mov r1, r0                                        |         r1 = r0;
    0x00061eda mov r2, sl                                        |         r2 = sl;
    0x00061edc mov r0, r5                                        |         r0 = r5;
    0x00061ede blx 0xf66c                                        |         fcn_0000f66c ();
    0x00061ee2 mov r0, r5                                        |         r0 = r5;
    0x00061ee4 ldr r3, [r4, 0x14]                                |         r3 = *((r4 + 0x14));
    0x00061ee6 ldr r2, [sp, 0xc]                                 |         r2 = var_ch;
    0x00061ee8 mov r1, sb                                        |         r1 = sb;
    0x00061eea blx 0xf66c                                        |         fcn_0000f66c ();
    0x00061eee mov r0, sb                                        |         r0 = sb;
    0x00061ef0 blx 0xf3e8                                        |         fcn_0000f3e8 ();
    0x00061ef4 mov r2, r8                                        |         r2 = r8;
    0x00061ef6 mov r1, r7                                        |         r1 = r7;
    0x00061ef8 mov r0, r6                                        |         r0 = r6;
    0x00061efa blx 0xf0a8                                        |         r0 = fcn_0000f0a8 ();
    0x00061efe cmp r0, 0                                         |         
    0x00061f00 bne 0x61ebc                                       |         
                                                                 |     }
    0x00061f02 ldr r6, [pc, 0x68]                                |     
    0x00061f04 mov r2, r0                                        |     r2 = r0;
    0x00061f06 mov r1, r0                                        |     r1 = r0;
    0x00061f08 mov r0, r5                                        |     r0 = r5;
    0x00061f0a blx 0xf894                                        |     fcn_0000f894 ();
    0x00061f0e add r6, pc                                        |     r6 = 0xc3e80;
    0x00061f10 mov.w r2, 0x1a0                                   |     r2 = 0x1a0;
    0x00061f14 add r4, sp, 0x1c                                  |     r4 += var_1ch;
    0x00061f16 mov r1, r0                                        |     r1 = r0;
    0x00061f18 movs r3, 3                                        |     r3 = 3;
    0x00061f1a ldr r0, [r6, 0x20]                                |     r0 = *(0xc3ea0);
    0x00061f1c strd r2, r4, [sp]                                 |     __asm ("strd r2, r4, [sp]");
    0x00061f20 mov.w r2, -1                                      |     r2 = -1;
    0x00061f24 blx 0xe2d8                                        |     r0 = fcn_0000e2d8 ();
                                                                 |     if (r0 != 0) {
    0x00061f28 cbz r0, 0x61f36                                   |         
    0x00061f2a mov r0, r5                                        |         r0 = r5;
    0x00061f2c blx 0xfdd0                                        |         g_convert ();
    0x00061f30 add sp, 0x3c                                      |         
    0x00061f32 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 |     }
    0x00061f36 ldr r2, [sp, 0x1c]                                |     r2 = var_1ch;
    0x00061f38 movs r1, 0x20                                     |     r1 = 0x20;
    0x00061f3a ldr r3, [r6, 0x20]                                |     r3 = *((r6 + 0x20));
    0x00061f3c ldr r2, [r2, 8]                                   |     r2 = *((r2 + 8));
    0x00061f3e str r2, [sp]                                      |     *(sp) = r2;
    0x00061f40 ldr r2, [pc, 0x2c]                                |     
    0x00061f42 add r2, pc                                        |     r2 = 0xc3eb6;
    0x00061f44 blx 0xe318                                        |     gst_element_error_printf ()
    0x00061f48 mov r0, r4                                        |     r0 = r4;
    0x00061f4a blx 0xf95c                                        |     gst_mini_object_replace ();
    0x00061f4e mov r0, r5                                        |     r0 = r5;
    0x00061f50 blx 0xfdd0                                        |     g_convert ();
    0x00061f54 add sp, 0x3c                                      |     
    0x00061f56 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x62128 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00062128 ()                                      | void fcn_00062128 (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_14h;
                                                                 |     int16_t var_1ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 |     r3 = arg4;
    0x00062128 svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x0006212c sub sp, 0x24                                      |     
    0x0006212e mov r5, r1                                        |     r5 = r1;
    0x00062130 mov r4, r2                                        |     r4 = r2;
    0x00062132 mov r7, r0                                        |     r7 = r0;
    0x00062134 mov sb, r3                                        |     sb = r3;
    0x00062136 bl 0x61ccc                                        |     fcn_00061ccc ();
    0x0006213a ldr r3, [pc, 0x14c]                               |     
    0x0006213c mov r2, r7                                        |     r2 = r7;
    0x0006213e ldr.w r8, [pc, 0x14c]                             |     
    0x00062142 ldr r1, [pc, 0x14c]                               |     
    0x00062144 add r3, pc                                        |     r3 = 0xc43d2;
    0x00062146 ldr.w sl, [pc, 0x14c]                             |     
    0x0006214a str r3, [sp, 4]                                   |     var_4h = r3;
    0x0006214c movs r3, 0                                        |     r3 = 0;
    0x0006214e str r3, [sp, 0xc]                                 |     var_ch = r3;
    0x00062150 add r1, pc                                        |     r1 = 0xc43e6;
    0x00062152 ldr r3, [pc, 0x144]                               |     
    0x00062154 add r8, pc                                        |     r8 = 0xc43e6;
    0x00062156 str r4, [sp, 8]                                   |     var_8h = r4;
    0x00062158 add sl, pc                                        |     sl = 0xc43f2;
    0x0006215a str r5, [sp]                                      |     *(sp) = r5;
    0x0006215c add r3, pc                                        |     r3 = 0xc43fa;
    0x0006215e blx 0xd9e0                                        |     fcn_0000d9e0 ();
    0x00062162 mov r1, r5                                        |     r1 = r5;
    0x00062164 mov r6, r0                                        |     r6 = r0;
    0x00062166 ldr.w r0, [r8, 0x18]                              |     r0 = *(0xc43fe);
    0x0006216a blx 0xfe78                                        |     r0 = g_dbus_object_manager_server_export ();
    0x0006216e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00062170 bne 0x621ec                                       |         
    0x00062172 ldr.w r3, [r8, 8]                                 |         r3 = *((r8 + 8));
    0x00062176 mov r4, r0                                        |         r4 = r0;
    0x00062178 str r0, [sp, 0x1c]                                |         var_1ch = r0;
                                                                 |         if (r3 != 0) {
    0x0006217a cbz r3, 0x621cc                                   |             
    0x0006217c ldr r0, [pc, 0x11c]                               |             
    0x0006217e mov r1, r7                                        |             r1 = r7;
    0x00062180 add r0, pc                                        |             r0 = 0xc4420;
    0x00062182 blx 0xe9b4                                        |             gst_rtsp_message_append_headers ();
    0x00062186 ldr.w r3, [r8, 8]                                 |             r3 = *((r8 + 8));
    0x0006218a mov r7, r0                                        |             r7 = r0;
    0x0006218c str r3, [sp, 0x14]                                |             var_14h = r3;
    0x0006218e bl 0x301f0                                        |             r0 = fcn_000301f0 ();
    0x00062192 mov fp, r0                                        |             
    0x00062194 ldr r0, [r6, 0x10]                                |             r0 = *((r6 + 0x10));
    0x00062196 blx 0xe798                                        |             gst_query_new_custom ();
    0x0006219a ldr r3, [sp, 0x14]                                |             r3 = var_14h;
    0x0006219c mov r1, r0                                        |             r1 = r0;
    0x0006219e mov r2, fp                                        |             r2 = fp;
    0x000621a0 add.w fp, sp, 0x1c                                |             
    0x000621a4 str.w fp, [sp, 8]                                 |             __asm ("str.w fp, [var_8h]");
    0x000621a8 mov r0, r3                                        |             r0 = r3;
    0x000621aa ldr r3, [pc, 0xf4]                                |             r3 = *(0x622a2);
    0x000621ac ldr.w r3, [sl, r3]                                |             r3 = *((sl + r3));
    0x000621b0 strd r1, r3, [sp]                                 |             __asm ("strd r1, r3, [sp]");
    0x000621b4 mov r1, r7                                        |             r1 = r7;
    0x000621b6 ldr r3, [pc, 0xec]                                |             
    0x000621b8 add r3, pc                                        |             r3 = 0xc4462;
    0x000621ba blx 0xda58                                        |             r0 = fcn_0000da58 ();
    0x000621be mov r3, r0                                        |             r3 = r0;
    0x000621c0 cmp r0, 0                                         |             
                                                                 |             if (r0 == 0) {
    0x000621c2 beq 0x62236                                       |                 goto label_0;
                                                                 |             }
    0x000621c4 mov r0, r7                                        |             r0 = r7;
    0x000621c6 str r3, [r6, 0x18]                                |             *((r6 + 0x18)) = r3;
    0x000621c8 blx 0xf3e8                                        |             fcn_0000f3e8 ();
                                                                 |         }
    0x000621cc ldr r3, [pc, 0xd8]                                |         
    0x000621ce mov r0, r5                                        |         r0 = r5;
    0x000621d0 movs r4, 1                                        |         r4 = 1;
    0x000621d2 add r3, pc                                        |         r3 = 0xc447e;
    0x000621d4 ldr r5, [r3, 0x18]                                |         r5 = *(0xc4496);
    0x000621d6 blx 0xe798                                        |         gst_query_new_custom ();
    0x000621da mov r2, r6                                        |         r2 = r6;
    0x000621dc mov r1, r0                                        |         r1 = r0;
    0x000621de mov r0, r5                                        |         r0 = r5;
    0x000621e0 blx 0xe83c                                        |         fcn_0000e83c ();
    0x000621e4 mov r0, r4                                        |         r0 = r4;
    0x000621e6 add sp, 0x24                                      |         
    0x000621e8 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 |     }
    0x000621ec mov r0, r6                                        |     r0 = r6;
    0x000621ee blx 0xfba0                                        |     fcn_0000fba0 ();
    0x000621f2 ldr.w r3, [r8, 0x24]                              |     r3 = *((r8 + 0x24));
                                                                 |     if (r3 == 0) {
    0x000621f6 cbnz r3, 0x6220a                                  |         
    0x000621f8 ldr r2, [pc, 0xb0]                                |         
    0x000621fa movs r3, 1                                        |         r3 = 1;
    0x000621fc ldr r0, [pc, 0xb0]                                |         
    0x000621fe add.w r1, r8, 0x24                                |         r1 = r8 + 0x24;
    0x00062202 add r2, pc                                        |         r2 = 0xc44b2;
    0x00062204 add r0, pc                                        |         r0 = 0xc44b8;
    0x00062206 blx 0xdaa0                                        |         fcn_0000daa0 ();
                                                                 |     }
    0x0006220a ldr r1, [pc, 0xa8]                                |     
    0x0006220c mov r0, sb                                        |     r0 = sb;
    0x0006220e ldr r3, [pc, 0xa8]                                |     
    0x00062210 movs r2, 0                                        |     r2 = 0;
    0x00062212 str r5, [sp]                                      |     *(sp) = r5;
    0x00062214 add r1, pc                                        |     
    0x00062216 ldr r1, [r1, 0x24]                                |     r1 = *(0xc44f2);
    0x00062218 add r3, pc                                        |     r3 = 0xc44d6;
    0x0006221a blx 0x10398                                       |     fcn_00010398 ();
    0x0006221e ldr r2, [pc, 0x9c]                                |     
    0x00062220 movs r0, 0                                        |     r0 = 0;
    0x00062222 mov r4, r0                                        |     r4 = r0;
    0x00062224 mov r3, r5                                        |     r3 = r5;
    0x00062226 movs r1, 0x20                                     |     r1 = 0x20;
    0x00062228 add r2, pc                                        |     r2 = 0xc44ea;
    0x0006222a blx 0xe318                                        |     gst_element_error_printf ()
    0x0006222e mov r0, r4                                        |     r0 = r4;
    0x00062230 add sp, 0x24                                      |     
    0x00062232 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_0:
    0x00062236 mov r0, fp                                        |     r0 = fp;
    0x00062238 blx 0xf95c                                        |     gst_mini_object_replace ();
    0x0006223c mov r0, r7                                        |     r0 = r7;
    0x0006223e blx 0xf3e8                                        |     fcn_0000f3e8 ();
    0x00062242 mov r0, r6                                        |     r0 = r6;
    0x00062244 blx 0xfba0                                        |     fcn_0000fba0 ();
    0x00062248 ldr.w r3, [r8, 0x24]                              |     r3 = *((r8 + 0x24));
                                                                 |     if (r3 == 0) {
    0x0006224c cbnz r3, 0x62260                                  |         
    0x0006224e ldr r2, [pc, 0x70]                                |         
    0x00062250 movs r3, 1                                        |         r3 = 1;
    0x00062252 ldr r0, [pc, 0x70]                                |         
    0x00062254 add.w r1, r8, 0x24                                |         r1 = r8 + 0x24;
    0x00062258 add r2, pc                                        |         r2 = 0xc451e;
    0x0006225a add r0, pc                                        |         r0 = 0xc4524;
    0x0006225c blx 0xdaa0                                        |         fcn_0000daa0 ();
                                                                 |     }
    0x00062260 ldr r1, [pc, 0x64]                                |     
    0x00062262 mov r0, sb                                        |     r0 = sb;
    0x00062264 ldr r3, [pc, 0x64]                                |     
    0x00062266 movs r2, 0                                        |     r2 = 0;
    0x00062268 add r1, pc                                        |     
    0x0006226a add r3, pc                                        |     r3 = 0xc453a;
    0x0006226c ldr r1, [r1, 0x24]                                |     r1 = *(0xc4558);
    0x0006226e blx 0x10398                                       |     fcn_00010398 ();
    0x00062272 ldr r2, [pc, 0x5c]                                |     
    0x00062274 movs r1, 0x20                                     |     r1 = 0x20;
    0x00062276 movs r0, 0                                        |     r0 = 0;
    0x00062278 add r2, pc                                        |     r2 = 0xc454e;
    0x0006227a blx 0xe318                                        |     gst_element_error_printf ()
    0x0006227e mov r0, r4                                        |     r0 = r4;
    0x00062280 add sp, 0x24                                      |     
    0x00062282 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | }
    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x63d0a */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.00063d0a ()                          | void fcn_00063d0a (int16_t arg_0h, int16_t arg_14h) {
    0x00063d0c strtmi r4, [r0], -r1, lsl 12          |     __asm ("strtmi r4, [r0], -r1, lsl 12");
    0x00063d10 blx 0xe18c                            |     cert_set_init ();
    0x00063d14 adds r0, 0xc                          |     r0 += 0xc;
    0x00063d16 blx 0xf26c                            |     socket (r0, r1, r2);
    0x00063d1a subs r1, r5, 1                        |     r1 = r5 - 1;
    0x00063d1c cmp r1, 0xb                           |     
                                                     |     if (r1 > 0xb) {
    0x00063d1e bhi 0x63df6                           |         goto label_1;
                                                     |     }
                                                     |     /* switch table (12 cases) at 0x63d24 */
    0x00063d20 tbb [pc, r1]                          |     __asm ("tbb aav.0x000000ff");
    0x00063d30 mov r0, r7                            |     r0 = r7;
    0x00063d32 blx 0xf83c                            |     gst_element_add_pad ();
    0x00063d36 str.w r0, [r4, 0xa0]                  |     __asm ("str.w r0, [r4, 0xa0]");
                                                     |     do {
                                                     | label_0:
    0x00063d3a bl 0x3ab48                            |         r0 = fcn_0003ab48 ();
    0x00063d3e mov r1, r0                            |         r1 = r0;
    0x00063d40 mov r0, r4                            |         r0 = r4;
    0x00063d42 blx 0xe18c                            |         cert_set_init ();
    0x00063d46 adds r0, 0xc                          |         r0 += 0xc;
    0x00063d48 add sp, 0x18                          |         
    0x00063d4a pop.w {r4, r5, r6, r7, r8, lr}        |         
    0x00063d4e b.w 0xf544                            |         void (*0xf544)() ();
    0x00063d52 mov r0, r7                            |         r0 = r7;
    0x00063d54 blx 0xf83c                            |         gst_element_add_pad ();
    0x00063d58 str.w r0, [r4, 0xa4]                  |         __asm ("str.w r0, [r4, 0xa4]");
    0x00063d5c b 0x63d3a                             |         
                                                     |     } while (1);
    0x00063d5e mov r0, r7                            |     r0 = r7;
    0x00063d60 blx 0xec9c                            |     snd_device_name_free_hint ();
    0x00063d64 str r0, [r4, 0x70]                    |     *((r4 + 0x70)) = r0;
    0x00063d66 b 0x63d3a                             |     goto label_0;
    0x00063d68 ldr r0, [r4, 0x7c]                    |     r0 = *((r4 + 0x7c));
    0x00063d6a blx 0xf3e8                            |     fcn_0000f3e8 ();
    0x00063d6e mov r0, r7                            |     r0 = r7;
    0x00063d70 blx 0xe17c                            |     fcn_0000e17c ();
    0x00063d74 str r0, [r4, 0x7c]                    |     *((r4 + 0x7c)) = r0;
    0x00063d76 b 0x63d3a                             |     goto label_0;
    0x00063d78 ldr.w r0, [r4, 0x80]                  |     r0 = *((r4 + 0x80));
    0x00063d7c blx 0xf3e8                            |     fcn_0000f3e8 ();
    0x00063d80 mov r0, r7                            |     r0 = r7;
    0x00063d82 blx 0xe17c                            |     fcn_0000e17c ();
    0x00063d86 str.w r0, [r4, 0x80]                  |     __asm ("str.w r0, [r4, 0x80]");
    0x00063d8a b 0x63d3a                             |     goto label_0;
    0x00063d8c ldr.w r0, [r4, 0x84]                  |     r0 = *((r4 + 0x84));
    0x00063d90 blx 0xf3e8                            |     fcn_0000f3e8 ();
    0x00063d94 mov r0, r7                            |     r0 = r7;
    0x00063d96 blx 0xe17c                            |     fcn_0000e17c ();
    0x00063d9a str.w r0, [r4, 0x84]                  |     __asm ("str.w r0, [r4, 0x84]");
    0x00063d9e b 0x63d3a                             |     goto label_0;
    0x00063da0 ldr.w r0, [r4, 0x88]                  |     r0 = *((r4 + 0x88));
    0x00063da4 blx 0xf3e8                            |     fcn_0000f3e8 ();
    0x00063da8 mov r0, r7                            |     r0 = r7;
    0x00063daa blx 0xe17c                            |     fcn_0000e17c ();
    0x00063dae str.w r0, [r4, 0x88]                  |     __asm ("str.w r0, [r4, 0x88]");
    0x00063db2 b 0x63d3a                             |     goto label_0;
    0x00063db4 mov r0, r7                            |     r0 = r7;
    0x00063db6 blx 0xde78                            |     fcn_0000de78 ();
    0x00063dba str.w r0, [r4, 0x8c]                  |     __asm ("str.w r0, [r4, 0x8c]");
    0x00063dbe b 0x63d3a                             |     goto label_0;
    0x00063dc0 mov r0, r7                            |     r0 = r7;
    0x00063dc2 blx 0xde78                            |     fcn_0000de78 ();
    0x00063dc6 str.w r0, [r4, 0x90]                  |     __asm ("str.w r0, [r4, 0x90]");
    0x00063dca b 0x63d3a                             |     goto label_0;
    0x00063dcc ldr.w r0, [r4, 0x94]                  |     r0 = *((r4 + 0x94));
    0x00063dd0 blx 0xf3e8                            |     fcn_0000f3e8 ();
    0x00063dd4 mov r0, r7                            |     r0 = r7;
    0x00063dd6 blx 0xe17c                            |     fcn_0000e17c ();
    0x00063dda str.w r0, [r4, 0x94]                  |     __asm ("str.w r0, [r4, 0x94]");
    0x00063dde b 0x63d3a                             |     goto label_0;
    0x00063de0 mov r0, r7                            |     r0 = r7;
    0x00063de2 blx 0xf83c                            |     gst_element_add_pad ();
    0x00063de6 str r0, [r4, 0x78]                    |     *((r4 + 0x78)) = r0;
    0x00063de8 b 0x63d3a                             |     goto label_0;
    0x00063dea mov r0, r7                            |     r0 = r7;
    0x00063dec blx 0xf83c                            |     gst_element_add_pad ();
    0x00063df0 str.w r0, [r4, 0x9c]                  |     __asm ("str.w r0, [r4, 0x9c]");
    0x00063df4 b 0x63d3a                             |     goto label_0;
                                                     | label_1:
    0x00063df6 ldrd r3, r7, [r8]                     |     __asm ("ldrd r3, r7, [r8]");
    0x00063dfa ldr r0, [r3]                          |     r0 = *(r3);
    0x00063dfc blx 0xe364                            |     fcn_0000e364 ();
    0x00063e00 ldr r3, [r6]                          |     r3 = *(r6);
    0x00063e02 mov r6, r0                            |     r6 = r0;
    0x00063e04 ldr r0, [r3]                          |     r0 = *(r3);
    0x00063e06 blx 0xe364                            |     fcn_0000e364 ();
    0x00063e0a ldr r2, [pc, 0x24]                    |     
    0x00063e0c movs r1, 0x10                         |     r1 = 0x10;
    0x00063e0e ldr r3, [pc, 0x24]                    |     
    0x00063e10 str r0, [sp, 0x14]                    |     *(arg_14h) = r0;
    0x00063e12 movw r0, 0x49f                        |     r0 = 0x49f;
    0x00063e16 add r2, pc                            |     r2 = 0xc7c4c;
    0x00063e18 str r0, [sp]                          |     *(sp) = r0;
    0x00063e1a strd r2, r5, [sp, 4]                  |     __asm ("strd r2, r5, [sp, 4]");
    0x00063e1e add r3, pc                            |     r3 = 0xc7c58;
    0x00063e20 ldr r2, [pc, 0x14]                    |     
    0x00063e22 movs r0, 0                            |     r0 = 0;
    0x00063e24 strd r7, r6, [sp, 0xc]                |     __asm ("strd r7, r6, [sp, 0xc]");
    0x00063e28 add r2, pc                            |     r2 = 0xc7c64;
    0x00063e2a blx 0xe318                            |     gst_element_error_printf ()
    0x00063e2e b 0x63d3a                             |     goto label_0;
                                                     | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/bin/monolith @ 0x65e54 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00065e54 ()                                      | void fcn_00065e54 (int16_t arg1, int16_t arg2, uint32_t arg3) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_6h;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 | label_4:
    0x00065d78 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00065d7c mov fp, r2                                        |     
    0x00065d7e sub sp, 0xc                                       |     
    0x00065d80 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00065d82 beq 0x65e22                                       |         goto label_5;
                                                                 |     }
    0x00065d84 mov sb, r0                                        |     sb = r0;
    0x00065d86 mov sl, r1                                        |     sl = r1;
    0x00065d88 mov r7, r3                                        |     r7 = r3;
    0x00065d8a movs r6, 0                                        |     r6 = 0;
    0x00065d8c mov r5, sp                                        |     r5 = sp;
                                                                 | label_0:
    0x00065d8e mov.w r3, 0x1c                                    |     r3 = 0x1c;
    0x00065d92 str.w sb, [sp]                                    |     __asm ("str.w sb, [sp]");
    0x00065d96 strh.w r3, [sp, 4]                                |     var_4h = r3;
    0x00065d9a b 0x65da6                                         |     
                                                                 |     while (r4 < r0) {
    0x00065d9c blx 0x10100                                       |         r0 = command_source_register_mainloop_thread ();
    0x00065da0 ldr r3, [r0]                                      |         r3 = *(r0);
    0x00065da2 cmp r3, 4                                         |         
                                                                 |         if (r3 != 4) {
    0x00065da4 bne 0x65e38                                       |             goto label_6;
                                                                 |         }
    0x00065da6 movw r2, 0x7530                                   |         r2 = 0x7530;
    0x00065daa movs r1, 1                                        |         r1 = 1;
    0x00065dac mov r0, r5                                        |         r0 = r5;
    0x00065dae blx 0xeb40                                        |         r0 = g_variant_get_int32 ();
    0x00065db2 subs r4, r0, 0                                    |         r4 = r0 - 0;
    0x00065db4 blt 0x65d9c                                       |         
                                                                 |     }
                                                                 |     if (r4 == r0) {
    0x00065db6 beq 0x65e2c                                       |         goto label_7;
                                                                 |     }
    0x00065db8 ldrh.w r4, [sp, 6]                                |     r4 = var_6h;
    0x00065dbc lsls r3, r4, 0x1b                                 |     r3 = r4 << 0x1b;
                                                                 |     if (r3 < r4) {
    0x00065dbe bmi 0x65e22                                       |         goto label_5;
                                                                 |     }
    0x00065dc0 ands r4, r4, 8                                    |     r4 &= 8;
                                                                 |     if (r4 != r4) {
    0x00065dc4 bne 0x65e16                                       |         goto label_8;
                                                                 |     }
    0x00065dc6 sub.w r8, fp, r6                                  |     r8 = fp - r6;
                                                                 |     do {
    0x00065dca adds r1, r4, r6                                   |         r1 = r4 + r6;
    0x00065dcc mov r0, sb                                        |         r0 = sb;
    0x00065dce mov r3, r7                                        |         r3 = r7;
    0x00065dd0 sub.w r2, r8, r4                                  |         r2 = r8 - r4;
    0x00065dd4 add r1, sl                                        |         r1 += sl;
                                                                 |         if (r7 == 0) {
    0x00065dd6 cbz r7, 0x65dfc                                   |             goto label_9;
                                                                 |         }
    0x00065dd8 blx 0x10118                                       |         r0 = gst_rtsp_server_get_session_pool ();
    0x00065ddc cmp r0, 0                                         |         
    0x00065dde it ge                                             |         
                                                                 |         if (r0 < 0) {
    0x00065de0 addge r4, r4, r0                                  |             r4 += r0;
                                                                 |         }
                                                                 |         if (r0 < 0) {
    0x00065de2 blt 0x65e08                                       |             goto label_10;
                                                                 |         }
                                                                 | label_1:
    0x00065de4 cmp r8, r4                                        |         
    0x00065de6 bhi 0x65dca                                       |         
                                                                 |     } while (r8 > r4);
                                                                 | label_2:
    0x00065de8 cmp r4, 0                                         |     
                                                                 |     if (r4 < 0) {
    0x00065dea blt 0x65e1a                                       |         goto label_3;
                                                                 |     }
    0x00065dec add r6, r4                                        |     r6 += r4;
    0x00065dee cmp fp, r6                                        |     
                                                                 |     if (fp > r6) {
    0x00065df0 bhi 0x65d8e                                       |         goto label_0;
                                                                 |     }
    0x00065df2 mov r4, r6                                        |     r4 = r6;
    0x00065df4 mov r0, r4                                        |     r0 = r4;
    0x00065df6 add sp, 0xc                                       |     
    0x00065df8 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_9:
    0x00065dfc blx 0xfca0                                        |     r0 = fcn_0000fca0 ();
    0x00065e00 cmp r0, 0                                         |     
    0x00065e02 it ge                                             |     
                                                                 |     if (r0 >= 0) {
    0x00065e04 addge r4, r4, r0                                  |         r4 += r0;
                                                                 |         goto label_11;
                                                                 |     }
                                                                 |     if (r0 >= 0) {
                                                                 | label_11:
    0x00065e06 bge 0x65de4                                       |         goto label_1;
                                                                 |     }
                                                                 | label_10:
    0x00065e08 blx 0x10100                                       |     r0 = command_source_register_mainloop_thread ();
    0x00065e0c ldr r3, [r0]                                      |     r3 = *(r0);
    0x00065e0e cmp r3, 4                                         |     
                                                                 |     if (r3 == 4) {
    0x00065e10 beq 0x65de4                                       |         goto label_1;
                                                                 |     }
    0x00065e12 cmp r3, 0xb                                       |     
                                                                 |     if (r3 == 0xb) {
    0x00065e14 beq 0x65de8                                       |         goto label_2;
                                                                 |     }
                                                                 | label_8:
    0x00065e16 mov.w r4, -1                                      |     r4 = -1;
                                                                 |     do {
                                                                 | label_3:
    0x00065e1a mov r0, r4                                        |         r0 = r4;
    0x00065e1c add sp, 0xc                                       |         
    0x00065e1e pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_5:
    0x00065e22 movs r4, 0                                        |         r4 = 0;
    0x00065e24 mov r0, r4                                        |         r0 = r4;
    0x00065e26 add sp, 0xc                                       |         
    0x00065e28 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_7:
    0x00065e2c ldr r2, [pc, 0x1c]                                |         
    0x00065e2e movs r1, 0x20                                     |         r1 = 0x20;
    0x00065e30 add r2, pc                                        |         r2 = 0xcbc80;
    0x00065e32 blx 0xe318                                        |         gst_element_error_printf ()
    0x00065e36 b 0x65e1a                                         |         
                                                                 |     } while (1);
                                                                 | label_6:
    0x00065e38 ldr r2, [pc, 0x14]                                |     
    0x00065e3a movs r1, 0x20                                     |     r1 = 0x20;
    0x00065e3c movs r0, 0                                        |     r0 = 0;
    0x00065e3e mov.w r4, -1                                      |     r4 = -1;
    0x00065e42 add r2, pc                                        |     r2 = 0xcbc96;
    0x00065e44 blx 0xe318                                        |     gst_element_error_printf ()
    0x00065e48 b 0x65e1a                                         |     goto label_3;
    0x00065e54 movs r3, 0                                        |     r3 = 0;
    0x00065e56 b 0x65d78                                         |     goto label_4;
                                                                 | }

[*] Function printf used 139 times monolith