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

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


[*] Function sprintf tear down of libgstrtsp-1.0.so.0.1803.0

    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libgstrtsp-1.0.so.0.1803.0 @ 0xc048 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) sym.gst_rtsp_connection_send_messages_usec ()        | void gst_rtsp_connection_send_messages_usec (int16_t arg_1ch, int16_t arg_4ch, uint32_t arg1, uint32_t arg2, int16_t arg3) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int32_t var_18h_2;
                                                                 |     int32_t var_14h_2;
                                                                 |     int32_t var_ch;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_14h;
                                                                 |     int32_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int32_t var_20h;
                                                                 |     int32_t var_24h;
                                                                 |     int32_t var_28h;
                                                                 |     int32_t var_2ch;
                                                                 |     int32_t var_30h;
                                                                 |     int32_t var_34h;
                                                                 |     int32_t var_3ch;
                                                                 |     int16_t var_40h;
                                                                 |     int16_t var_44h;
                                                                 |     int32_t var_4ch;
                                                                 |     int32_t var_50h;
                                                                 |     int16_t var_0h_2;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
    0x0000c048 svcmi 0xf0e92d                                    |     __asm ("svcmi aav.0x000000ff");
    0x0000c04c sub sp, 0x84                                      |     
    0x0000c04e add r7, sp, 8                                     |     r7 += var_8h;
    0x0000c050 ldr.w r3, [r7, 0xa0]                              |     r3 = *((r7 + 0xa0));
    0x0000c054 str r2, [r7, 0x34]                                |     var_34h = r2;
    0x0000c056 str r3, [r7, 0x14]                                |     var_14h = r3;
    0x0000c058 ldr.w r3, [r7, 0xa4]                              |     r3 = *((r7 + 0xa4));
    0x0000c05c str r3, [r7, 0x10]                                |     var_10h = r3;
    0x0000c05e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000c060 beq.w 0xc370                                      |         goto label_13;
                                                                 |     }
    0x0000c064 mov fp, r0                                        |     
    0x0000c066 clz r0, r2                                        |     r0 &= r2;
    0x0000c06a lsrs r0, r0, 5                                    |     r0 >>= 5;
    0x0000c06c mov r8, r1                                        |     r8 = r1;
    0x0000c06e cmp r1, 0                                         |     
    0x0000c070 it ne                                             |     
                                                                 |     if (r1 == 0) {
    0x0000c072 orrne r0, r0, 1                                   |         r0 |= 1;
                                                                 |     }
    0x0000c076 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000c078 beq.w 0xc34c                                      |         goto label_14;
                                                                 |     }
    0x0000c07c ldr r4, [r7, 0x34]                                |     r4 = var_34h;
    0x0000c07e movs r2, 0x2c                                     |     r2 = 0x2c;
    0x0000c080 movs r1, 0                                        |     r1 = 0;
    0x0000c082 mul r2, r4, r2                                    |     r2 = r4 * r2;
    0x0000c086 adds r3, r2, 7                                    |     r3 = r2 + 7;
    0x0000c088 bic r3, r3, 7                                     |     r3 = BIT_MASK (r3, 7);
    0x0000c08c sub.w sp, sp, r3                                  |     
    0x0000c090 add r3, sp, 8                                     |     r3 += var_8h;
    0x0000c092 mov r0, r3                                        |     r0 = r3;
    0x0000c094 mov r6, r3                                        |     r6 = r3;
    0x0000c096 mov r5, r3                                        |     r5 = r3;
    0x0000c098 str r3, [r7, 0x20]                                |     var_20h = r3;
    0x0000c09a blx 0x6178                                        |     fcn_00006178 ();
    0x0000c09e cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x0000c0a0 beq.w 0xc4d4                                      |         goto label_15;
                                                                 |     }
    0x0000c0a4 add.w sl, r6, 0x1c                                |     sl += var_1ch;
    0x0000c0a8 movs r3, 0                                        |     r3 = 0;
    0x0000c0aa movw r2, 0xaaab                                   |     
    0x0000c0ae mov r6, sl                                        |     r6 = sl;
    0x0000c0b0 str.w sl, [r7, 0xc]                               |     __asm ("str.w sl, [var_ch]");
    0x0000c0b4 mov sl, fp                                        |     sl = fp;
    0x0000c0b6 mov fp, r8                                        |     
                                                                 |     /* if there is a right shift of 1, then it's a division by 1/3 */
    0x0000c0b8 movt r2, 0xaaaa                                   |     r2 = 0xaaaaaaab;
    0x0000c0bc mov sb, r3                                        |     sb = r3;
    0x0000c0be str r3, [r7, 0x30]                                |     var_30h = r3;
    0x0000c0c0 str r3, [r7, 0x18]                                |     var_18h = r3;
    0x0000c0c2 add.w r3, r7, 0x40                                |     r3 += var_40h;
    0x0000c0c6 str r2, [r7, 0x1c]                                |     var_1ch = r2;
    0x0000c0c8 str r3, [r7, 0x2c]                                |     var_2ch = r3;
                                                                 | label_1:
    0x0000c0ca sub.w r8, r6, 0x1c                                |     r8 -= var_8h;
    0x0000c0ce mov r1, fp                                        |     r1 = fp;
    0x0000c0d0 mov r2, r8                                        |     r2 = r8;
    0x0000c0d2 mov r0, sl                                        |     r0 = sl;
    0x0000c0d4 bl 0xaae4                                         |     r0 = fcn_0000aae4 (r0, r1, r2);
    0x0000c0d8 mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r0 != 0) {
    0x0000c0da cbnz r0, 0xc138                                   |         goto label_16;
                                                                 |     }
    0x0000c0dc ldr r5, [r7, 0x20]                                |     r5 = var_20h;
    0x0000c0de ldr.w r8, [r7, 0x34]                              |     r8 = var_34h;
    0x0000c0e2 adds r5, 0x18                                     |     r5 += 0x18;
    0x0000c0e4 b 0xc0f4                                          |     
                                                                 |     while (r6 != 0) {
    0x0000c0e6 ldr r0, [r5, -0x14]                               |         r0 = *((r5 - 0x14));
    0x0000c0ea adds r5, 0x2c                                     |         r5 += 0x2c;
    0x0000c0ec blx 0x5f5c                                        |         fcn_00005f5c ();
    0x0000c0f0 cmp r4, r8                                        |         
                                                                 |         if (r4 == r8) {
    0x0000c0f2 beq 0xc11c                                        |             goto label_17;
                                                                 |         }
                                                                 | label_0:
    0x0000c0f4 ldr r6, [r5, -0x18]                               |         r6 = *((r5 - 0x18));
    0x0000c0f8 adds r4, 1                                        |         r4++;
    0x0000c0fa cmp r6, 0                                         |         
    0x0000c0fc bne 0xc0e6                                        |         
                                                                 |     }
    0x0000c0fe ldr r0, [r5, -0x8]                                |     r0 = *((r5 - 0x8));
    0x0000c102 blx 0x5f5c                                        |     fcn_00005f5c ();
    0x0000c106 mov r1, r6                                        |     r1 = r6;
    0x0000c108 mov r0, r5                                        |     r0 = r5;
    0x0000c10a blx 0x6538                                        |     fcn_00006538 ();
    0x0000c10e ldr r0, [r5, -0x14]                               |     r0 = *((r5 - 0x14));
    0x0000c112 adds r5, 0x2c                                     |     r5 += 0x2c;
    0x0000c114 blx 0x5f5c                                        |     fcn_00005f5c ();
    0x0000c116 vrshl.s32 q2, q2, q1                              |     __asm ("vrshl.s32 q2, q2, q1");
                                                                 |     if (r5 != 0x2c) {
    0x0000c11a bne 0xc0f4                                        |         goto label_0;
                                                                 |     }
                                                                 | label_17:
    0x0000c11c ldr.w r2, [pc, 0x430]                             |     
    0x0000c120 movs r1, 0x10                                     |     r1 = 0x10;
    0x0000c122 movs r0, 0                                        |     r0 = 0;
    0x0000c124 mvn fp, 1                                         |     
    0x0000c128 add r2, pc                                        |     r2 = 0x1867c;
    0x0000c12a blx 0x6818                                        |     fcn_00006818 ();
                                                                 | label_12:
    0x0000c12e mov r0, fp                                        |     r0 = fp;
    0x0000c130 adds r7, 0x7c                                     |     r7 += 0x7c;
    0x0000c132 mov sp, r7                                        |     
    0x0000c134 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_16:
    0x0000c138 ldr.w r2, [sl, 0x68]                              |     r2 = *((sl + 0x68));
    0x0000c13c add.w r1, sb, 1                                   |     r1 = sb + 1;
    0x0000c140 ldr r3, [r6, -0xc]                                |     r3 = var_10h;
    0x0000c144 str r1, [r7, 0x28]                                |     var_28h = r1;
    0x0000c146 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0000c148 beq.w 0xc29a                                      |         goto label_18;
                                                                 |     }
    0x0000c14c movs r2, 0                                        |     r2 = 0;
    0x0000c14e ldr r4, [r6, -0x14]                               |     r4 = var_14h_2;
    0x0000c152 strd r2, r2, [r7, 0x3c]                           |     __asm ("strd r2, r2, [var_40h]");
    0x0000c156 cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000c158 beq.w 0xc33a                                      |         goto label_19;
                                                                 |     }
    0x0000c15c ldr r3, [r6, -0x8]                                |     r3 = *((r6 - 0x8));
    0x0000c160 add r4, r3                                        |     r4 += r3;
                                                                 | label_6:
    0x0000c162 ldr r3, [r7, 0x1c]                                |     r3 = var_1ch;
    0x0000c164 umull r3, r0, r3, r4                              |     r3:r0 = r3 * r4;
    0x0000c168 lsrs r0, r0, 1                                    |     r0 >>= 1;
    0x0000c16a lsls r0, r0, 2                                    |     r0 <<= 2;
    0x0000c16c adds r0, 9                                        |     r0 += 9;
    0x0000c16e blx 0x6620                                        |     fcn_00006620 ();
    0x0000c172 ldr r3, [r6, -0x10]                               |     r3 = var_ch;
    0x0000c176 str r0, [r7, 0x24]                                |     var_24h = r0;
    0x0000c178 mov r0, r6                                        |     r0 = r6;
                                                                 |     if (r3 == 0) {
    0x0000c17a cbnz r3, 0xc180                                   |         
    0x0000c17c ldr r0, [r6, -0x18]                               |         r0 = var_18h_2;
                                                                 |     }
    0x0000c180 ldr r3, [r7, 0x2c]                                |     r3 = var_2ch;
    0x0000c182 add.w sb, r7, 0x3c                                |     sb += var_3ch;
    0x0000c186 ldr r1, [r6, -0x14]                               |     r1 = var_14h_2;
    0x0000c18a movs r2, 0                                        |     r2 = 0;
    0x0000c18c str.w sb, [sp]                                    |     __asm ("str.w sb, [sp]");
    0x0000c190 str r3, [sp, 4]                                   |     var_4h = r3;
    0x0000c192 ldr r4, [r7, 0x24]                                |     r4 = var_24h;
    0x0000c194 mov r3, r4                                        |     r3 = r4;
    0x0000c196 blx 0x64b4                                        |     fcn_000064b4 ();
    0x0000c19a ldr r5, [r6, -0xc]                                |     r5 = var_10h;
    0x0000c19e add r4, r0                                        |     r4 += r0;
    0x0000c1a0 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x0000c1a2 beq.w 0xc2c4                                      |         goto label_20;
                                                                 |     }
    0x0000c1a6 ldr r3, [r7, 0x2c]                                |     r3 = var_2ch;
    0x0000c1a8 mov r0, r5                                        |     r0 = r5;
    0x0000c1aa ldr r1, [r6, -0x8]                                |     r1 = *((r6 - 0x8));
    0x0000c1ae movs r2, 0                                        |     r2 = 0;
    0x0000c1b0 strd sb, r3, [sp]                                 |     __asm ("strd sb, r3, [sp]");
    0x0000c1b4 mov r3, r4                                        |     r3 = r4;
    0x0000c1b6 blx 0x64b4                                        |     r0 = fcn_000064b4 ();
    0x0000c1ba add r4, r0                                        |     r4 += r0;
                                                                 | label_4:
    0x0000c1bc mov r1, r4                                        |     r1 = r4;
    0x0000c1be ldr r3, [r7, 0x2c]                                |     r3 = var_2ch;
    0x0000c1c0 mov r2, sb                                        |     r2 = sb;
    0x0000c1c2 movs r0, 0                                        |     r0 = 0;
    0x0000c1c4 blx 0x643c                                        |     fcn_0000643c ();
    0x0000c1c8 ldr r5, [r6, -0x1c]                               |     r5 = var_8h;
    0x0000c1cc add r4, r0                                        |     r4 += r0;
    0x0000c1ce cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x0000c1d0 beq.w 0xc328                                      |         goto label_21;
                                                                 |     }
                                                                 | label_5:
    0x0000c1d4 ldr r0, [r6, -0x18]                               |     r0 = var_18h_2;
    0x0000c1d8 ldr.w sb, [r7, 0x28]                              |     sb = var_28h;
    0x0000c1dc blx 0x5f5c                                        |     fcn_00005f5c ();
    0x0000c1e0 mov r0, r8                                        |     r0 = r8;
    0x0000c1e2 movs r2, 0x2c                                     |     r2 = 0x2c;
    0x0000c1e4 movs r1, 0                                        |     r1 = 0;
    0x0000c1e6 blx 0x6178                                        |     fcn_00006178 ();
    0x0000c1ea ldr r3, [r7, 0x24]                                |     r3 = var_24h;
    0x0000c1ec subs r4, r4, r3                                   |     r4 -= r3;
    0x0000c1ee strd r3, r4, [r6, -0x18]                          |     __asm ("strd r3, r4, [var_8h]");
                                                                 | label_3:
    0x0000c1f2 ldr r3, [r7, 0x30]                                |     r3 = var_30h;
    0x0000c1f4 add.w fp, fp, 0x2c                                |     
    0x0000c1f8 ldr r2, [r7, 0x34]                                |     r2 = var_34h;
    0x0000c1fa adds r6, 0x2c                                     |     r6 += 0x2c;
    0x0000c1fc adds r3, 1                                        |     r3++;
    0x0000c1fe cmp r3, r2                                        |     
    0x0000c200 str r3, [r7, 0x30]                                |     var_30h = r3;
                                                                 |     if (r3 != r2) {
    0x0000c202 bne.w 0xc0ca                                      |         goto label_1;
                                                                 |     }
    0x0000c206 mov r3, sp                                        |     r3 = sp;
    0x0000c208 ldr r2, [r7, 0x18]                                |     r2 = var_18h;
    0x0000c20a sub.w r3, r3, sb, lsl 3                           |     r3 -= (sb << 3);
    0x0000c20e mov fp, sl                                        |     
    0x0000c210 ldr.w sl, [r7, 0xc]                               |     sl = var_ch;
    0x0000c214 mov sp, r3                                        |     
    0x0000c216 add r3, sp, 8                                     |     r3 += var_8h;
    0x0000c218 str r3, [r7, 0x24]                                |     var_24h = r3;
    0x0000c21a cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0000c21c beq.w 0xc38e                                      |         goto label_22;
                                                                 |     }
    0x0000c220 movs r3, 0x34                                     |     r3 = 0x34;
    0x0000c222 mul r2, r3, r2                                    |     r2 = r3 * r2;
    0x0000c226 mov r3, r2                                        |     r3 = r2;
    0x0000c228 adds r3, 7                                        |     r3 += 7;
    0x0000c22a bic r3, r3, 7                                     |     r3 = BIT_MASK (r3, 7);
    0x0000c22e sub.w sp, sp, r3                                  |     
    0x0000c232 add r3, sp, 8                                     |     r3 += var_8h;
    0x0000c234 str r3, [r7, 0x2c]                                |     var_2ch = r3;
                                                                 | label_7:
    0x0000c236 movs r3, 0                                        |     r3 = 0;
    0x0000c238 str.w sb, [r7, 0x1c]                              |     __asm ("str.w sb, [var_1ch]");
    0x0000c23c str.w fp, [r7, 0x18]                              |     __asm ("str.w fp, [var_18h]");
    0x0000c240 mov r4, r3                                        |     r4 = r3;
    0x0000c242 ldr.w sb, [r7, 0x24]                              |     sb = var_24h;
    0x0000c246 mov fp, r3                                        |     
    0x0000c248 str r3, [r7, 0x28]                                |     var_28h = r3;
    0x0000c24a b 0xc28e                                          |     
                                                                 |     while (r2 == 0) {
    0x0000c24c ldr r2, [sl, -0x18]                               |         r2 = *((sl - 0x18));
                                                                 | label_2:
    0x0000c250 ldr r5, [sl, -0xc]                                |         r5 = *((sl - 0xc));
    0x0000c254 lsls r1, r4, 3                                    |         r1 = r4 << 3;
    0x0000c256 str.w r2, [sb, r4, lsl 3]                         |         __asm ("str.w r2, [sb, r4, lsl 3]");
    0x0000c25a adds r3, r4, 1                                    |         r3 = r4 + 1;
    0x0000c25c ldr r2, [sl, -0x14]                               |         r2 = *((sl - 0x14));
    0x0000c260 add.w r6, sb, r1                                  |         r6 = sb + r1;
    0x0000c264 str r3, [r7, 0x30]                                |         var_30h = r3;
    0x0000c266 str r2, [r6, 4]                                   |         *((r6 + 4)) = r2;
    0x0000c268 cmp r5, 0                                         |         
                                                                 |         if (r5 == 0) {
    0x0000c26a beq.w 0xc394                                      |             goto label_23;
                                                                 |         }
    0x0000c26e ldr r2, [sl, -0x8]                                |         r2 = *((sl - 0x8));
    0x0000c272 adds r1, 8                                        |         r1 += 8;
    0x0000c274 adds r4, 2                                        |         r4 += 2;
    0x0000c276 str.w r5, [sb, r1]                                |         __asm ("str.w r5, [sb, r1]");
    0x0000c27a add r1, sb                                        |         r1 += sb;
    0x0000c27c str r2, [r1, 4]                                   |         *((r1 + 4)) = r2;
                                                                 | label_11:
    0x0000c27e ldr r3, [r7, 0x34]                                |         r3 = var_34h;
    0x0000c280 add.w fp, fp, 1                                   |         
    0x0000c284 add.w sl, sl, 0x2c                                |         sl += 0x2c;
    0x0000c288 cmp fp, r3                                        |         
                                                                 |         if (fp == r3) {
    0x0000c28a beq.w 0xc3ae                                      |             goto label_24;
                                                                 |         }
                                                                 | label_8:
    0x0000c28e ldr r2, [sl, -0x10]                               |         r2 = *((sl - 0x10));
    0x0000c292 cmp r2, 0                                         |         
    0x0000c294 beq 0xc24c                                        |         
                                                                 |     }
    0x0000c296 mov r2, sl                                        |     r2 = sl;
    0x0000c298 b 0xc250                                          |     goto label_2;
                                                                 | label_18:
    0x0000c29a add.w sb, sb, 2                                   |     sb += 2;
    0x0000c29e cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0000c2a0 bne 0xc1f2                                        |         goto label_3;
                                                                 |     }
    0x0000c2a2 ldr r0, [r6, -0x4]                                |     r0 = *((r6 - 0x4));
    0x0000c2a6 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000c2a8 beq 0xc36a                                        |         goto label_25;
                                                                 |     }
    0x0000c2aa blx 0x5fd4                                        |     fcn_00005fd4 ();
    0x0000c2ae ldr r3, [r7, 0x28]                                |     r3 = var_28h;
    0x0000c2b0 add r3, r0                                        |     r3 += r0;
    0x0000c2b2 ldr r0, [r6, -0x4]                                |     r0 = *((r6 - 0x4));
    0x0000c2b6 mov sb, r3                                        |     sb = r3;
    0x0000c2b8 blx 0x5fd4                                        |     fcn_00005fd4 ();
    0x0000c2bc ldr r3, [r7, 0x18]                                |     r3 = var_18h;
    0x0000c2be add r3, r0                                        |     r3 += r0;
    0x0000c2c0 str r3, [r7, 0x18]                                |     var_18h = r3;
    0x0000c2c2 b 0xc1f2                                          |     goto label_3;
                                                                 | label_20:
    0x0000c2c4 ldr r0, [r6, -0x4]                                |     r0 = *((r6 - 0x4));
    0x0000c2c8 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000c2ca beq.w 0xc1bc                                      |         goto label_4;
                                                                 |     }
    0x0000c2ce blx 0x5fd4                                        |     r0 = fcn_00005fd4 ();
    0x0000c2d2 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000c2d4 beq.w 0xc1bc                                      |         goto label_4;
                                                                 |     }
    0x0000c2d8 add.w r2, r7, 0x44                                |     r2 += var_44h;
    0x0000c2dc str.w fp, [r7, 8]                                 |     __asm ("str.w fp, [var_14h_2]");
    0x0000c2e0 strd sl, r8, [r7]                                 |     __asm ("strd sl, r8, [r7]");
    0x0000c2e4 mov fp, r0                                        |     
    0x0000c2e6 mov sl, r2                                        |     sl = r2;
                                                                 |     do {
    0x0000c2e8 mov r1, r5                                        |         r1 = r5;
    0x0000c2ea ldr r0, [r6, -0x4]                                |         r0 = *((r6 - 0x4));
    0x0000c2ee blx 0x62a0                                        |         g_string_free ();
    0x0000c2f2 movs r2, 1                                        |         r2 = 1;
    0x0000c2f4 mov r1, sl                                        |         r1 = sl;
    0x0000c2f6 mov r8, r0                                        |         r8 = r0;
    0x0000c2f8 adds r5, 1                                        |         r5++;
    0x0000c2fa blx 0x5fe0                                        |         fcn_00005fe0 ();
    0x0000c2fe ldr r3, [r7, 0x2c]                                |         r3 = var_2ch;
    0x0000c300 movs r2, 0                                        |         r2 = 0;
    0x0000c302 strd sb, r3, [sp]                                 |         __asm ("strd sb, r3, [sp]");
    0x0000c306 mov r3, r4                                        |         r3 = r4;
    0x0000c308 ldr r1, [r7, 0x50]                                |         r1 = var_50h;
    0x0000c30a ldr r0, [r7, 0x4c]                                |         r0 = var_4ch;
    0x0000c30c blx 0x64b4                                        |         fcn_000064b4 ();
    0x0000c310 mov r1, sl                                        |         r1 = sl;
    0x0000c312 add r4, r0                                        |         r4 += r0;
    0x0000c314 mov r0, r8                                        |         r0 = r8;
    0x0000c316 blx 0x6104                                        |         fcn_00006104 ();
    0x0000c31a cmp fp, r5                                        |         
    0x0000c31c bne 0xc2e8                                        |         
                                                                 |     } while (fp != r5);
    0x0000c31e ldrd r8, fp, [r7, 4]                              |     __asm ("ldrd r8, fp, [var_14h_2]");
    0x0000c322 ldr.w sl, [r7]                                    |     sl = *(r7);
    0x0000c326 b 0xc1bc                                          |     goto label_4;
                                                                 | label_21:
    0x0000c328 ldr r0, [r6, -0xc]                                |     r0 = var_10h;
    0x0000c32c blx 0x5f5c                                        |     fcn_00005f5c ();
    0x0000c330 mov r1, r5                                        |     r1 = r5;
    0x0000c332 subs r0, r6, 4                                    |     r0 -= var_18h;
    0x0000c334 blx 0x6538                                        |     fcn_00006538 ();
    0x0000c338 b 0xc1d4                                          |     goto label_5;
                                                                 | label_19:
    0x0000c33a ldr r0, [r6, -0x4]                                |     r0 = *((r6 - 0x4));
    0x0000c33e cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0000c340 beq.w 0xc162                                      |         goto label_6;
                                                                 |     }
    0x0000c344 blx 0x6214                                        |     r0 = fcn_00006214 ();
    0x0000c348 add r4, r0                                        |     r4 += r0;
    0x0000c34a b 0xc162                                          |     goto label_6;
                                                                 | label_14:
    0x0000c34c ldr r1, [pc, 0x204]                               |     
    0x0000c34e mvn fp, 1                                         |     
    0x0000c352 ldr r2, [pc, 0x204]                               |     
    0x0000c354 add r1, pc                                        |     
    0x0000c356 add r2, pc                                        |     r2 = 0x188b4;
    0x0000c358 add.w r1, r1, 0x20c                               |     r1 = 0x18ab8;
    0x0000c35c blx 0x63ac                                        |     fcn_000063ac ();
    0x0000c360 mov r0, fp                                        |     r0 = fp;
    0x0000c362 adds r7, 0x7c                                     |     r7 += 0x7c;
    0x0000c364 mov sp, r7                                        |     
    0x0000c366 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_25:
    0x0000c36a ldr.w sb, [r7, 0x28]                              |     sb = var_28h;
    0x0000c36e b 0xc1f2                                          |     goto label_3;
                                                                 | label_13:
    0x0000c370 ldr r1, [pc, 0x1e8]                               |     
    0x0000c372 mvn fp, 1                                         |     
    0x0000c376 ldr r2, [pc, 0x1e8]                               |     
    0x0000c378 add r1, pc                                        |     
    0x0000c37a add r2, pc                                        |     r2 = 0x188e0;
    0x0000c37c add.w r1, r1, 0x20c                               |     r1 = 0x18ae4;
    0x0000c380 blx 0x63ac                                        |     fcn_000063ac ();
    0x0000c384 mov r0, fp                                        |     r0 = fp;
    0x0000c386 adds r7, 0x7c                                     |     r7 += 0x7c;
    0x0000c388 mov sp, r7                                        |     
    0x0000c38a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_22:
    0x0000c38e ldr r3, [r7, 0x18]                                |     r3 = var_18h;
    0x0000c390 str r3, [r7, 0x2c]                                |     var_2ch = r3;
    0x0000c392 b 0xc236                                          |     goto label_7;
                                                                 | label_23:
    0x0000c394 ldr r0, [sl, -0x4]                                |     r0 = *((sl - 0x4));
    0x0000c398 cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0000c39a bne 0xc488                                        |         goto label_26;
                                                                 |     }
                                                                 | label_10:
    0x0000c39c ldr r3, [r7, 0x34]                                |     r3 = var_34h;
    0x0000c39e add.w fp, fp, 1                                   |     
    0x0000c3a2 ldr r4, [r7, 0x30]                                |     r4 = var_30h;
    0x0000c3a4 add.w sl, sl, 0x2c                                |     sl += 0x2c;
    0x0000c3a8 cmp fp, r3                                        |     
                                                                 |     if (fp != r3) {
    0x0000c3aa bne.w 0xc28e                                      |         goto label_8;
                                                                 |     }
                                                                 | label_24:
    0x0000c3ae ldr r2, [r7, 0x10]                                |     r2 = var_10h;
    0x0000c3b0 movs r6, 0                                        |     r6 = 0;
    0x0000c3b2 ldr r3, [r7, 0x14]                                |     r3 = var_14h;
    0x0000c3b4 mov r5, r6                                        |     r5 = r6;
    0x0000c3b6 ldrd fp, sb, [r7, 0x18]                           |     __asm ("ldrd fp, sb, [var_1ch]");
    0x0000c3ba ldr r4, [r7, 0x20]                                |     r4 = var_20h;
    0x0000c3bc lsls r1, r2, 5                                    |     r1 = r2 << 5;
    0x0000c3be lsls r0, r3, 5                                    |     r0 = r3 << 5;
    0x0000c3c0 orr.w r1, r1, r3, lsr 27                          |     r1 |= (r3 >> 27);
    0x0000c3c4 subs r0, r0, r3                                   |     r0 -= r3;
    0x0000c3c6 sbc.w r1, r1, r2                                  |     __asm ("sbc.w r1, r1, r2");
    0x0000c3ca lsls r1, r1, 2                                    |     r1 <<= 2;
    0x0000c3cc orr.w r1, r1, r0, lsr 30                          |     r1 |= (r0 >> 30);
    0x0000c3d0 lsls r0, r0, 2                                    |     r0 <<= 2;
    0x0000c3d2 adds r0, r0, r3                                   |     r0 += r3;
    0x0000c3d4 movw r3, 0xc9ff                                   |     
    0x0000c3d8 adc.w r1, r2, r1                                  |     __asm ("adc.w r1, r2, r1");
    0x0000c3dc movt r3, 0x3b9a                                   |     r3 = 0x3b9ac9ff;
    0x0000c3e0 lsls r1, r1, 3                                    |     r1 <<= 3;
    0x0000c3e2 orr.w r1, r1, r0, lsr 29                          |     r1 |= (r0 >> 29);
    0x0000c3e6 lsls r0, r0, 3                                    |     r0 <<= 3;
    0x0000c3e8 adds r0, r0, r3                                   |     r0 += r3;
    0x0000c3ea adr r3, 0x15c                                     |     r3 = 0x15c;
    0x0000c3ec ldrd r2, r3, [r3]                                 |     __asm ("ldrd r2, r3, [r3]");
    0x0000c3f0 adc r1, r1, 0                                     |     __asm ("adc r1, r1, 0");
    0x0000c3f4 bl 0xfe34                                         |     r0 = fcn_0000fe34 (r0, r1, r2, r3);
    0x0000c3f8 mov r2, r0                                        |     r2 = r0;
    0x0000c3fa mov r3, r1                                        |     r3 = r1;
    0x0000c3fc mov r0, fp                                        |     r0 = fp;
    0x0000c3fe bl 0xa26c                                         |     fcn_0000a26c (r0, r1, r2);
    0x0000c402 ldr.w r3, [fp, 0x4c]                              |     r3 = *(arg_4ch);
    0x0000c406 mov r2, sb                                        |     r2 = sb;
    0x0000c408 ldr r1, [r7, 0x24]                                |     r1 = var_24h;
    0x0000c40a str r3, [sp, 4]                                   |     var_4h = r3;
    0x0000c40c movs r3, 1                                        |     r3 = 1;
    0x0000c40e str r3, [sp]                                      |     *(sp) = r3;
    0x0000c410 add.w r3, r7, 0x44                                |     r3 += var_44h;
    0x0000c414 ldr.w r0, [fp, 0x1c]                              |     r0 = *(arg_1ch);
    0x0000c416 movs r4, r3                                       |     r4 = r3;
    0x0000c418 bl 0x9b28                                         |     r0 = fcn_00009b28 (r0, r1, r2, r3, r4, r5);
    0x0000c41c mov r3, r0                                        |     r3 = r0;
    0x0000c41e mov r0, fp                                        |     r0 = fp;
    0x0000c420 mov fp, r3                                        |     
    0x0000c422 bl 0xad6c                                         |     fcn_0000ad6c (r0);
    0x0000c426 ldr.w sl, [r7, 0x34]                              |     sl = var_34h;
    0x0000c42a str.w fp, [r7, 0x30]                              |     __asm ("str.w fp, [var_30h]");
    0x0000c42e b 0xc440                                          |     
                                                                 |     while (r0 == 0) {
                                                                 | label_9:
    0x0000c430 ldr r0, [r4, 4]                                   |         r0 = *((r4 + 4));
    0x0000c432 adds r5, 1                                        |         r5++;
    0x0000c434 blx 0x5f5c                                        |         fcn_00005f5c ();
    0x0000c438 cmp r5, sl                                        |         
    0x0000c43a add.w r4, r4, 0x2c                                |         r4 += 0x2c;
                                                                 |         if (r5 == sl) {
    0x0000c43e beq 0xc47a                                        |             goto label_27;
                                                                 |         }
    0x0000c440 ldr r0, [r4, 0x18]                                |         r0 = *((r4 + 0x18));
    0x0000c442 cmp r0, 0                                         |         
    0x0000c444 beq 0xc430                                        |         
                                                                 |     }
    0x0000c446 blx 0x5fd4                                        |     r0 = fcn_00005fd4 ();
    0x0000c44a subs.w sb, r0, 0                                  |     sb = r0 - 0;
                                                                 |     if (sb <= r0) {
    0x0000c44e ble 0xc430                                        |         goto label_9;
                                                                 |     }
    0x0000c450 ldr r3, [r7, 0x2c]                                |     r3 = var_2ch;
    0x0000c452 movs r2, 0x34                                     |     r2 = 0x34;
    0x0000c454 mov.w fp, 0                                       |     
    0x0000c458 mla r8, r2, r6, r3                                |     __asm ("mla r8, r2, r6, r3");
                                                                 |     do {
    0x0000c45c ldr r0, [r4, 0x18]                                |         r0 = *((r4 + 0x18));
    0x0000c45e mov r1, fp                                        |         r1 = fp;
    0x0000c460 blx 0x62a0                                        |         g_string_free ();
    0x0000c464 add.w fp, fp, 1                                   |         
    0x0000c468 mov r1, r8                                        |         r1 = r8;
    0x0000c46a blx 0x6104                                        |         fcn_00006104 ();
    0x0000c46e cmp sb, fp                                        |         
    0x0000c470 add.w r8, r8, 0x34                                |         r8 += 0x34;
    0x0000c474 bne 0xc45c                                        |         
                                                                 |     } while (sb != fp);
    0x0000c476 add r6, sb                                        |     r6 += sb;
    0x0000c478 b 0xc430                                          |     goto label_9;
                                                                 | label_27:
    0x0000c47a ldr.w fp, [r7, 0x30]                              |     fp = var_30h;
    0x0000c47e adds r7, 0x7c                                     |     r7 += 0x7c;
    0x0000c480 mov r0, fp                                        |     r0 = fp;
    0x0000c482 mov sp, r7                                        |     
    0x0000c484 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |     
                                                                 | label_26:
    0x0000c488 blx 0x5fd4                                        |     r0 = fcn_00005fd4 ();
    0x0000c48c subs r4, r0, 0                                    |     r4 = r0 - 0;
                                                                 |     if (r4 <= r0) {
    0x0000c48e ble 0xc39c                                        |         goto label_10;
                                                                 |     }
    0x0000c490 ldrd r2, r3, [r7, 0x28]                           |     __asm ("ldrd r2, r3, [var_2ch]");
    0x0000c494 movs r1, 0x34                                     |     r1 = 0x34;
    0x0000c496 mla r8, r1, r2, r3                                |     __asm ("mla r8, r1, r2, r3");
                                                                 |     do {
    0x0000c49a ldr r0, [sl, -0x4]                                |         r0 = *((sl - 0x4));
    0x0000c49e mov r1, r5                                        |         r1 = r5;
    0x0000c4a0 blx 0x62a0                                        |         g_string_free ();
    0x0000c4a4 mov r1, r8                                        |         r1 = r8;
    0x0000c4a6 movs r2, 1                                        |         r2 = 1;
    0x0000c4a8 blx 0x5fe0                                        |         fcn_00005fe0 ();
    0x0000c4ac ldr.w r3, [r8, 8]                                 |         r3 = *((r8 + 8));
    0x0000c4b0 adds r5, 1                                        |         r5++;
    0x0000c4b2 cmp r4, r5                                        |         
    0x0000c4b4 add.w r8, r8, 0x34                                |         r8 += 0x34;
    0x0000c4b8 add.w r6, r6, 8                                   |         r6 += 8;
    0x0000c4bc str r3, [r6]                                      |         *(r6) = r3;
    0x0000c4be ldr r3, [r8, -0x28]                               |         r3 = *((r8 - 0x28));
    0x0000c4c2 str r3, [r6, 4]                                   |         *((r6 + 4)) = r3;
    0x0000c4c4 bne 0xc49a                                        |         
                                                                 |     } while (r4 != r5);
    0x0000c4c6 ldr r3, [r7, 0x28]                                |     r3 = var_28h;
    0x0000c4c8 add r3, r4                                        |     r3 += r4;
    0x0000c4ca str r3, [r7, 0x28]                                |     var_28h = r3;
    0x0000c4cc ldr r3, [r7, 0x30]                                |     r3 = var_30h;
    0x0000c4ce add r3, r4                                        |     r3 += r4;
    0x0000c4d0 mov r4, r3                                        |     r4 = r3;
    0x0000c4d2 b 0xc27e                                          |     goto label_11;
                                                                 | label_15:
    0x0000c4d4 ldr r0, [r7, 0x10]                                |     r0 = var_10h;
    0x0000c4d6 movs r6, 1                                        |     r6 = 1;
    0x0000c4d8 ldr r1, [r7, 0x14]                                |     r1 = var_14h;
    0x0000c4da lsls r3, r0, 5                                    |     r3 = r0 << 5;
    0x0000c4dc lsls r2, r1, 5                                    |     r2 = r1 << 5;
    0x0000c4de orr.w r3, r3, r1, lsr 27                          |     r3 |= (r1 >> 27);
    0x0000c4e2 subs r2, r2, r1                                   |     r2 -= r1;
    0x0000c4e4 sbc.w r3, r3, r0                                  |     __asm ("sbc.w r3, r3, r0");
    0x0000c4e8 lsls r3, r3, 2                                    |     r3 <<= 2;
    0x0000c4ea orr.w r3, r3, r2, lsr 30                          |     r3 |= (r2 >> 30);
    0x0000c4ee lsls r2, r2, 2                                    |     r2 <<= 2;
    0x0000c4f0 adds r2, r2, r1                                   |     r2 += r1;
    0x0000c4f2 adc.w r3, r0, r3                                  |     __asm ("adc.w r3, r0, r3");
    0x0000c4f6 lsls r0, r2, 3                                    |     r0 = r2 << 3;
    0x0000c4f8 lsls r1, r3, 3                                    |     r1 = r3 << 3;
    0x0000c4fa movw r3, 0xc9ff                                   |     
    0x0000c4fe movt r3, 0x3b9a                                   |     r3 = 0x3b9ac9ff;
    0x0000c502 orr.w r1, r1, r2, lsr 29                          |     r1 |= (r2 >> 29);
    0x0000c506 adds r0, r0, r3                                   |     r0 += r3;
    0x0000c508 adr r3, 0x3c                                      |     r3 = 0x3c;
    0x0000c50a ldrd r2, r3, [r3]                                 |     __asm ("ldrd r2, r3, [r3]");
    0x0000c50e adc r1, r1, 0                                     |     __asm ("adc r1, r1, 0");
    0x0000c512 bl 0xfe34                                         |     r0 = fcn_0000fe34 (r0, r1, r2, r3);
    0x0000c516 mov r2, r0                                        |     r2 = r0;
    0x0000c518 mov r3, r1                                        |     r3 = r1;
    0x0000c51a mov r0, fp                                        |     r0 = fp;
    0x0000c51c bl 0xa26c                                         |     fcn_0000a26c (r0, r1, r2);
    0x0000c520 ldr.w r4, [fp, 0x4c]                              |     r4 = *(arg_4ch);
    0x0000c524 add.w r3, r7, 0x44                                |     r3 += var_44h;
    0x0000c528 ldr.w r0, [fp, 0x1c]                              |     r0 = *(arg_1ch);
    0x0000c52c mov r1, r5                                        |     r1 = r5;
    0x0000c52e ldr r2, [r7, 0x34]                                |     r2 = var_34h;
    0x0000c530 strd r6, r4, [sp]                                 |     __asm ("strd r6, r4, [sp]");
    0x0000c534 bl 0x9b28                                         |     r0 = fcn_00009b28 (r0, r1, r2, r3, r4, r5);
    0x0000c538 mov r3, r0                                        |     r3 = r0;
    0x0000c53a mov r0, fp                                        |     r0 = fp;
    0x0000c53c mov fp, r3                                        |     
    0x0000c53e bl 0xad6c                                         |     fcn_0000ad6c (r0);
    0x0000c542 b 0xc12e                                          |     goto label_12;
                                                                 | }

[*] Function sprintf used 1 times libgstrtsp-1.0.so.0.1803.0