[*] Binary protection state of libgstnet-1.0.so.0.2202.0
Full RELRO No Canary found NX enabled DSO No RPATH No RUNPATH No Symbols
[*] Function system tear down of libgstnet-1.0.so.0.2202.0
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/lib/libgstnet-1.0.so.0.2202.0 @ 0x822c */
| #include <stdint.h>
|
; (fcn) sym.gst_ptp_init () | void gst_ptp_init (int16_t arg1, int16_t arg2, int16_t arg3) {
| int32_t var_0h;
| int32_t var_0h_2;
| int16_t var_8h;
| int16_t var_ch;
| int16_t var_10h;
| int32_t var_14h;
| int32_t var_14h_2;
| int16_t var_24h;
| int16_t var_28h;
| int16_t var_2ch;
| r0 = arg1;
| r1 = arg2;
| r2 = arg3;
0x0000822c mvnsmi lr, sp, lsr 18 | __asm ("mvnsmi lr, sp, lsr 18");
0x00008230 movs r6, 0 | r6 = 0;
0x00008232 ldr r4, [pc, 0x33c] |
0x00008234 sub sp, 0x30 |
0x00008236 mov r8, r0 | r8 = r0;
0x00008238 mov r5, r2 | r5 = r2;
0x0000823a mov r7, r1 | r7 = r1;
0x0000823c str r6, [sp, 0x2c] | var_2ch = r6;
0x0000823e add r4, pc | r4 = 0x107b4;
0x00008240 add.w r0, r4, 0x14 | r0 = r4 + 0x14;
0x00008244 blx 0x3308 | fcn_00003308 ();
0x00008248 ldr r2, [pc, 0x328] |
0x0000824a add r2, pc | r2 = 0x107c2;
0x0000824c ldr r0, [r2, 0x10] | r0 = *(0x107d2);
0x0000824e cmp r0, 0 |
| if (r0 == 0) {
0x00008250 beq.w 0x844e | goto label_10;
| }
0x00008254 ldr r3, [r4, 0x1c] | r3 = *((r4 + 0x1c));
0x00008256 cmp r3, 0 |
| if (r3 != 0) {
0x00008258 bne.w 0x842c | goto label_11;
| }
0x0000825c ldr r1, [r4, 0x64] | r1 = *((r4 + 0x64));
0x0000825e cmp r1, 0 |
| if (r1 != 0) {
0x00008260 bne.w 0x8548 | goto label_12;
| }
0x00008264 ldr r3, [r4, 0x68] | r3 = *((r4 + 0x68));
0x00008266 cmp r3, 0 |
| if (r3 == 0) {
0x00008268 beq.w 0x84f8 | goto label_13;
| }
| label_1:
0x0000826c cmp.w r7, -1 |
0x00008270 it eq |
| if (r7 == -1) {
0x00008272 cmpeq r8, -1 | __asm ("cmpeq r8, -1");
| }
0x00008276 ite ne |
| if (r7 == -1) {
0x00008278 movne r4, 3 | r4 = 3;
| }
| if (r7 != -1) {
0x0000827a moveq r4, 1 | r4 = 1;
| }
0x0000827c mov r0, r4 | r0 = r4;
| if (r5 != 0) {
0x0000827e cbz r5, 0x828a |
0x00008280 mov r0, r5 | r0 = r5;
0x00008282 blx 0x2f34 | r0 = fcn_00002f34 ();
0x00008286 add.w r0, r4, r0, lsl 1 | r0 = r4 + (r0 << 1);
| }
0x0000828a adds r0, 2 | r0 += 2;
0x0000828c movs r1, 4 | r1 = 4;
0x0000828e blx 0x2f7c | r0 = fcn_00002f7c ();
0x00008292 mov r6, r0 | r6 = r0;
0x00008294 ldr r0, [pc, 0x2e0] |
0x00008296 add r0, pc | r0 = 0x10812;
0x00008298 blx 0x3160 | r0 = g_list_delete_link ();
0x0000829c cmp r0, 0 |
| if (r0 == 0) {
0x0000829e beq.w 0x855e | goto label_14;
| }
| label_8:
0x000082a2 ldrb r3, [r0] | r3 = *(r0);
| if (r3 == 0) {
0x000082a4 cbnz r3, 0x82aa |
| label_9:
0x000082a6 ldr r0, [pc, 0x2d4] |
0x000082a8 add r0, pc | r0 = 0x1082a;
| }
0x000082aa blx 0x2e24 | g_clear_error ();
0x000082ae cmp.w r7, -1 |
0x000082b2 it eq |
| if (r7 == -1) {
0x000082b4 cmpeq r8, -1 | __asm ("cmpeq r8, -1");
| }
0x000082b8 str r0, [r6] | *(r6) = r0;
| if (r7 != -1) {
0x000082ba bne.w 0x84de | goto label_15;
| }
| if (r5 == 0) {
| label_0:
0x000082be cbz r5, 0x82ea | goto label_16;
| }
0x000082c0 ldr r3, [r5] | r3 = *(r5);
| if (r3 == 0) {
0x000082c2 cbz r3, 0x82ea | goto label_16;
| }
0x000082c4 ldr r7, [pc, 0x2b8] |
0x000082c6 add.w r4, r6, r4, lsl 2 | r4 = r6 + (r4 << 2);
0x000082ca add r7, pc | r7 = 0x1084e;
| do {
0x000082cc adds r4, 8 | r4 += 8;
0x000082ce mov r0, r7 | r0 = r7;
0x000082d0 blx 0x2e24 | g_clear_error ();
0x000082d4 str r0, [r4, -0x8] | *((r4 - 0x8)) = r0;
0x000082d8 ldr r0, [r5] | r0 = *(r5);
0x000082da blx 0x2e24 | g_clear_error ();
0x000082de ldr r3, [r5, 4]! | r3 = *((r5 += 4));
0x000082e2 str r0, [r4, -0x4] | *((r4 - 0x4)) = r0;
0x000082e6 cmp r3, 0 |
0x000082e8 bne 0x82cc |
| } while (r3 != 0);
| label_16:
0x000082ea ldr r5, [pc, 0x298] |
0x000082ec add.w r8, sp, 0x2c | r8 += var_2ch;
0x000082f0 blx 0x3008 | fcn_00003008 ();
0x000082f4 movs r1, 0 | r1 = 0;
0x000082f6 add r5, pc | r5 = 0x10880;
0x000082f8 str r0, [r5, 0xc] | *((r5 + 0xc)) = r0;
0x000082fa blx 0x2f10 | fcn_00002f10 ();
0x000082fe ldr r1, [pc, 0x288] |
0x00008300 mov r3, r8 | r3 = r8;
0x00008302 str r0, [r5, 0x10] | *((r5 + 0x10)) = r0;
0x00008304 movs r2, 0 | r2 = 0;
0x00008306 ldr r0, [pc, 0x284] |
0x00008308 add r1, pc | r1 = 0x10896;
0x0000830a add r0, pc | r0 = 0x1089c;
0x0000830c blx 0x3568 | g_cancellable_is_cancelled ();
0x00008310 str r0, [r5, 0x6c] | *((r5 + 0x6c)) = r0;
0x00008312 cmp r0, 0 |
| if (r0 == 0) {
0x00008314 beq.w 0x8446 | goto label_17;
| }
0x00008316 strh r7, [r2, 4] | *((r2 + 4)) = r7;
0x00008318 add r3, sp, 0x24 | r3 += var_24h;
0x0000831a movs r4, 0 | r4 = 0;
0x0000831c str r3, [sp, 0x10] | var_10h = r3;
0x0000831e add r3, sp, 0x28 | r3 += var_28h;
0x00008320 str r3, [sp, 0xc] | var_ch = r3;
0x00008322 add.w r3, r5, 0x64 | r3 = r5 + 0x64;
0x00008326 str r3, [sp, 8] | var_8h = r3;
0x00008328 mov r2, r4 | r2 = r4;
0x0000832a mov r3, r4 | r3 = r4;
0x0000832c mov r1, r6 | r1 = r6;
0x0000832e mov r0, r4 | r0 = r4;
0x00008330 strd r4, r8, [sp, 0x14] | __asm ("strd r4, r8, [var_14h]");
0x00008334 strd r4, r4, [sp] | __asm ("strd r4, r4, [sp]");
0x00008338 blx 0x2edc | r0 = fcn_00002edc ();
0x0000833c mov r7, r0 | r7 = r0;
0x0000833e cmp r0, 0 |
| if (r0 == 0) {
0x00008340 beq.w 0x8508 | goto label_18;
| }
0x00008344 ldr r0, [sp, 0x24] | r0 = var_24h;
0x00008346 blx 0x2d64 | gst_system_clock_obtain ()
0x0000834a mov r2, r4 | r2 = r4;
0x0000834c mov r1, r4 | r1 = r4;
0x0000834e str r0, [r5, 0x70] | *((r5 + 0x70)) = r0;
0x00008350 blx 0x2d28 | g_value_dup_string ();
0x00008354 mov r1, r4 | r1 = r4;
0x00008356 ldr r0, [r5, 0x70] | r0 = *((r5 + 0x70));
0x00008358 blx 0x2fa0 | fcn_00002fa0 ();
0x0000835c ldr r0, [r5, 0x70] | r0 = *((r5 + 0x70));
0x0000835e movs r1, 1 | r1 = 1;
0x00008360 blx 0x3458 | fcn_00003458 ();
0x00008364 movs r1, 0x13 | r1 = 0x13;
0x00008366 ldr r0, [r5, 0x70] | r0 = *((r5 + 0x70));
0x00008368 blx 0x31fc | g_timeout_source_new ();
0x0000836c mov r1, r4 | r1 = r4;
0x0000836e mov r7, r0 | r7 = r0;
0x00008370 blx 0x2cb8 | fcn_00002cb8 ();
0x00008374 ldr r1, [pc, 0x218] |
0x00008376 mov r3, r4 | r3 = r4;
0x00008378 mov r2, r4 | r2 = r4;
0x0000837a mov r0, r7 | r0 = r7;
0x0000837c add r1, pc | r1 = 0x10910;
0x0000837e blx 0x2de8 | g_type_add_instance_private ();
0x00008382 ldr r1, [r5, 0xc] | r1 = *((r5 + 0xc));
0x00008384 mov r0, r7 | r0 = r7;
0x00008386 blx 0x33e8 | g_error_free ();
0x0000838a mov r0, r7 | r0 = r7;
0x0000838c blx 0x33ac | g_source_attach ();
0x00008390 ldr r0, [sp, 0x28] | r0 = var_28h;
0x00008392 blx 0x2d64 | gst_system_clock_obtain ()
0x00008396 mov r2, r4 | r2 = r4;
0x00008398 mov r1, r4 | r1 = r4;
0x0000839a str r0, [r5, 0x58] | *((r5 + 0x58)) = r0;
0x0000839c blx 0x2d28 | g_value_dup_string ();
0x000083a0 ldr r0, [r5, 0x58] | r0 = *((r5 + 0x58));
0x000083a2 movs r1, 1 | r1 = 1;
0x000083a4 blx 0x3458 | fcn_00003458 ();
0x000083a8 mov r1, r4 | r1 = r4;
0x000083aa ldr r0, [r5, 0x58] | r0 = *((r5 + 0x58));
0x000083ac blx 0x2fa0 | fcn_00002fa0 ();
0x000083b0 blx 0x33d0 | g_inet_socket_address_get_address ();
0x000083b4 str r0, [r5, 8] | *((r5 + 8)) = r0;
0x000083b6 blx 0x2dc4 | g_resolver_free_addresses ();
0x000083ba ldr r2, [pc, 0x1d8] |
0x000083bc mov r3, r4 | r3 = r4;
0x000083be ldr r1, [pc, 0x1d8] |
0x000083c0 add r2, pc | r2 = 0x1095a;
0x000083c2 add r1, pc | r1 = 0x10960;
0x000083c4 blx 0x2f88 | fcn_00002f88 ();
0x000083c8 str r0, [r5, 4] | *((r5 + 4)) = r0;
0x000083ca blx 0x2d0c | fcn_00002d0c ();
0x000083ce ldr r2, [pc, 0x1cc] |
0x000083d0 movs r3, 1 | r3 = 1;
0x000083d2 str r3, [r5, 0x1c] | *((r5 + 0x1c)) = r3;
0x000083d4 add r2, pc | r2 = 0x10976;
0x000083d6 ldrd r1, r2, [r2] | __asm ("ldrd r1, r2, [r2]");
0x000083da cmp.w r2, -1 |
0x000083de it eq |
| if (r2 == -1) {
0x000083e0 cmpeq r1, -1 | __asm ("cmpeq r1, -1");
| }
0x000083e4 it ne |
| if (r2 == -1) {
0x000083e6 movne r4, r3 | r4 = r3;
| }
| if (r2 != -1) {
0x000083e8 bne.w 0x853c | goto label_19;
| }
| label_7:
0x000083ec ldr r4, [pc, 0x1b0] |
0x000083ee ldr r5, [pc, 0x1b4] |
0x000083f0 add r4, pc | r4 = 0x10994;
0x000083f2 add r5, pc | r5 = 0x1099c;
0x000083f4 add.w r7, r4, 0x14 | r7 = r4 + 0x14;
0x000083f8 b 0x8412 |
| while (r3 != 0) {
0x000083fa blx 0x3114 | fcn_00003114 ();
0x000083fe ldrd r2, r3, [r5] | __asm ("ldrd r2, r3, [r5]");
0x00008400 movs r3, 0 | r3 = 0;
0x00008402 cmp.w r3, -1 |
0x00008406 it eq |
| if (r3 == -1) {
0x00008408 cmpeq r2, -1 | __asm ("cmpeq r2, -1");
| }
| if (r3 != -1) {
0x0000840c bne.w 0x8534 | goto label_20;
| }
0x00008410 ldr r3, [r4, 0x1c] | r3 = *((r4 + 0x1c));
0x00008412 mov r1, r7 | r1 = r7;
0x00008414 add.w r0, r4, 0x20 | r0 = r4 + 0x20;
0x00008416 movs r0, r4 | r0 = r4;
0x00008418 cmp r3, 0 |
0x0000841a bne 0x83fa |
| }
| label_4:
0x0000841c ldr r3, [pc, 0x188] |
0x0000841e movs r2, 0 | r2 = 0;
0x00008420 mov r0, r6 | r0 = r6;
0x00008422 add r3, pc | r3 = 0x109ce;
0x00008424 str r2, [r3, 0x10] | *((r3 + 0x10)) = r2;
0x00008426 blx 0x3440 | fcn_00003440 ();
0x0000842a b 0x8452 | goto label_2;
| label_11:
0x0000842c mov r0, r6 | r0 = r6;
0x0000842e movs r4, 1 | r4 = 1;
0x00008430 blx 0x3440 | fcn_00003440 ();
| do {
| label_5:
0x00008434 ldr r0, [pc, 0x174] |
0x00008436 add r0, pc | r0 = 0x109e6;
0x00008438 adds r0, 0x14 | r0 += 0x14;
0x0000843a blx 0x3048 | fcn_00003048 ();
0x0000843e mov r0, r4 | r0 = r4;
0x00008440 add sp, 0x30 |
0x00008442 pop.w {r4, r5, r6, r7, r8, pc} |
| label_17:
0x00008446 mov r0, r8 | r0 = r8;
0x00008448 blx 0x2e30 | g_value_set_boolean ();
0x0000844c mov r0, r6 | r0 = r6;
| label_10:
0x0000844e blx 0x3440 | fcn_00003440 ();
| label_2:
0x00008452 ldr r4, [pc, 0x15c] |
0x00008454 add r4, pc | r4 = 0x10a0a;
0x00008456 ldr r0, [r4, 0x64] | r0 = *(0x10a6e);
0x00008458 cmp r0, 0 |
| if (r0 != 0) {
0x0000845a bne 0x851c | goto label_21;
| }
| label_3:
0x0000845c ldr r3, [pc, 0x154] |
0x0000845e movs r2, 0 | r2 = 0;
0x00008460 add r3, pc | r3 = 0x10a18;
0x00008462 ldr r0, [r3, 0x70] | r0 = *(0x10a88);
0x00008464 str r2, [r3, 0x64] | *((r3 + 0x64)) = r2;
| if (r0 != 0) {
0x00008466 cbz r0, 0x846c |
0x00008468 blx 0x3350 | fcn_00003350 ();
| }
0x0000846c ldr r3, [pc, 0x148] |
0x0000846e movs r2, 0 | r2 = 0;
0x00008470 add r3, pc | r3 = 0x10a2c;
0x00008472 ldr r0, [r3, 0x58] | r0 = *(0x10a84);
0x00008474 str r2, [r3, 0x70] | *((r3 + 0x70)) = r2;
| if (r0 != 0) {
0x00008476 cbz r0, 0x847c |
0x00008478 blx 0x3350 | fcn_00003350 ();
| }
0x0000847c ldr r4, [pc, 0x13c] |
0x0000847e movs r5, 0 | r5 = 0;
0x00008480 add r4, pc | r4 = 0x10a40;
0x00008482 ldr r0, [r4, 0x10] | r0 = *(0x10a50);
0x00008484 str r5, [r4, 0x58] | *((r4 + 0x58)) = r5;
0x00008486 cmp r0, 0 |
| if (r0 == 0) {
0x00008488 beq 0x8544 | goto label_22;
| }
0x0000848a ldr r3, [r4, 0x6c] | r3 = *((r4 + 0x6c));
| if (r3 != 0) {
0x0000848c cbz r3, 0x849e |
0x0000848e blx 0x2d58 | g_io_channel_unix_new ();
0x00008492 ldr r0, [r4, 0x6c] | r0 = *((r4 + 0x6c));
0x00008494 blx 0x358c | fcn_0000358c ();
0x00008498 ldr r0, [r4, 0x10] | r0 = *((r4 + 0x10));
0x0000849a str r5, [r4, 0x6c] | *((r4 + 0x6c)) = r5;
| if (r0 == 0) {
0x0000849c cbz r0, 0x84a2 | goto label_6;
| }
| }
0x0000849e blx 0x3314 | fcn_00003314 ();
| label_6:
0x000084a2 ldr r3, [pc, 0x11c] |
0x000084a4 movs r2, 0 | r2 = 0;
0x000084a6 add r3, pc | r3 = 0x10a6c;
0x000084a8 ldr r0, [r3, 0xc] | r0 = *(0x10a78);
0x000084aa str r2, [r3, 0x10] | *((r3 + 0x10)) = r2;
| if (r0 != 0) {
0x000084ac cbz r0, 0x84b2 |
0x000084ae blx 0x3274 | g_cond_signal ();
| }
0x000084b2 ldr r3, [pc, 0x110] |
0x000084b4 movs r2, 0 | r2 = 0;
0x000084b6 add r3, pc | r3 = 0x10a80;
0x000084b8 ldr r0, [r3, 8] | r0 = *(0x10a88);
0x000084ba str r2, [r3, 0xc] | *((r3 + 0xc)) = r2;
| if (r0 != 0) {
0x000084bc cbz r0, 0x84c2 |
0x000084be blx 0x328c | g_queue_get_length ();
| }
0x000084c2 ldr r3, [pc, 0x104] |
0x000084c4 movs r2, 0 | r2 = 0;
0x000084c6 add r3, pc | r3 = 0x10a94;
0x000084c8 ldr r0, [r3, 4] | r0 = *(0x10a98);
0x000084ca str r2, [r3, 8] | *((r3 + 8)) = r2;
| if (r0 != 0) {
0x000084cc cbz r0, 0x84d2 |
0x000084ce blx 0x2d1c | g_io_channel_set_encoding ();
| }
0x000084d2 ldr r3, [pc, 0xf8] |
0x000084d4 movs r2, 0 | r2 = 0;
0x000084d6 mov r4, r2 | r4 = r2;
0x000084d8 add r3, pc | r3 = 0x10aaa;
0x000084da str r2, [r3, 4] | *((r3 + 4)) = r2;
0x000084dc b 0x8434 |
| } while (1);
| label_15:
0x000084de ldr r0, [pc, 0xf0] |
0x000084e0 add r0, pc | r0 = 0x10ab6;
0x000084e2 blx 0x2e24 | g_clear_error ();
0x000084e6 str r0, [r6, 4] | *((r6 + 4)) = r0;
0x000084e8 mov r2, r8 | r2 = r8;
0x000084ea ldr r0, [pc, 0xe8] |
0x000084ec mov r3, r7 | r3 = r7;
0x000084ee add r0, pc | r0 = 0x10ac8;
0x000084f0 blx 0x2fe0 | g_main_context_new ();
0x000084f4 str r0, [r6, 8] | *((r6 + 8)) = r0;
0x000084f6 b 0x82be | goto label_0;
| label_13:
0x000084f8 movs r1, 0x20 | r1 = 0x20;
0x000084fa add.w r0, r4, 0x3c | r0 = r4 + 0x3c;
0x000084fe blx 0x2db8 | gst_system_clock_get_type ()
0x00008502 movs r3, 1 | r3 = 1;
0x00008504 str r3, [r4, 0x68] | *((r4 + 0x68)) = r3;
0x00008506 b 0x826c | goto label_1;
| label_18:
0x00008508 mov r0, r8 | r0 = r8;
0x0000850a blx 0x2e30 | g_value_set_boolean ();
0x0000850e ldr r3, [pc, 0xc8] |
0x00008510 mov r0, r6 | r0 = r6;
0x00008512 add r3, pc | r3 = 0x10af0;
0x00008514 str r7, [r3, 0x10] | *((r3 + 0x10)) = r7;
0x00008516 blx 0x3440 | fcn_00003440 ();
0x0000851a b 0x8452 | goto label_2;
| label_21:
0x0000851c movs r1, 9 | r1 = 9;
0x0000851e blx 0x3494 | fcn_00003494 ();
0x00008522 movs r2, 0 | r2 = 0;
0x00008524 ldr r0, [r4, 0x64] | r0 = *((r4 + 0x64));
0x00008526 mov r1, r2 | r1 = r2;
0x00008528 blx 0x3108 | fcn_00003108 ();
0x0000852c ldr r0, [r4, 0x64] | r0 = *((r4 + 0x64));
0x0000852e blx 0x2f04 | fcn_00002f04 ();
0x00008532 b 0x845c | goto label_3;
| label_20:
0x00008534 ldr r4, [r4, 0x1c] | r4 = *((r4 + 0x1c));
0x00008536 cmp r4, 0 |
| if (r4 == 0) {
0x00008538 beq.w 0x841c | goto label_4;
| }
| label_19:
0x0000853c mov r0, r6 | r0 = r6;
0x0000853e blx 0x3440 | fcn_00003440 ();
0x00008542 b 0x8434 | goto label_5;
| label_22:
0x00008544 str r0, [r4, 0x6c] | *((r4 + 0x6c)) = r0;
0x00008546 b 0x84a2 | goto label_6;
| label_12:
0x00008548 ldrd r1, r2, [r2] | __asm ("ldrd r1, r2, [r2]");
0x0000854c mov r6, r3 | r6 = r3;
0x0000854e cmp.w r2, -1 |
0x00008552 it eq |
| if (r2 != -1) {
0x00008554 cmpeq r1, -1 | __asm ("cmpeq r1, -1");
| goto label_23;
| }
| if (r2 == -1) {
| label_23:
0x00008558 beq.w 0x83ec | goto label_7;
| }
0x0000855c b 0x841c | goto label_4;
| label_14:
0x0000855e ldr r0, [pc, 0x7c] |
0x00008560 add r0, pc | r0 = 0x10b42;
0x00008562 blx 0x3160 | r0 = g_list_delete_link ();
0x00008566 cmp r0, 0 |
| if (r0 != 0) {
0x00008568 bne.w 0x82a2 | goto label_8;
| }
0x0000856c b 0x82a6 | goto label_9;
| }
[*] Function system used 4 times libgstnet-1.0.so.0.2202.0