[*] 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 strcat 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 strcat used 1 times libgstrtsp-1.0.so.0.1803.0