[*] Binary protection state of libgstnet-1.0.so.0.1803.0
Full RELRO No Canary found NX enabled DSO RPATH No RUNPATH No Symbols
[*] Function system tear down of libgstnet-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/libgstnet-1.0.so.0.1803.0 @ 0x7ffc */
| #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;
0x00007ffc mvnsmi lr, sp, lsr 18 | __asm ("mvnsmi lr, sp, lsr 18");
0x00008000 movs r6, 0 | r6 = 0;
0x00008002 ldr r5, [pc, 0x320] |
0x00008004 sub sp, 0x30 |
0x00008006 mov r7, r0 | r7 = r0;
0x00008008 mov r8, r1 | r8 = r1;
0x0000800a mov r4, r2 | r4 = r2;
0x0000800c str r6, [sp, 0x2c] | var_2ch = r6;
0x0000800e add r5, pc | r5 = 0x10338;
0x00008010 add.w r0, r5, 0x14 | r0 = r5 + 0x14;
0x00008014 blx 0x3280 | r0 = fcn_00003280 ();
0x00008016 ldmdb r4!, {r0, r1, r6, r7, r8, sb, fp, lr} | __asm ("ldmdb r4!, {r0, r1, r6, r7, r8, sb, fp, lr}");
0x0000801a add r3, pc | r3 += pc;
0x0000801c ldr r0, [r3, 0x10] | r0 = *((r3 + 0x10));
0x0000801e cmp r0, 0 |
| if (r0 == 0) {
0x00008020 beq.w 0x8212 | goto label_8;
| }
0x00008024 ldr r3, [r5, 0x1c] | r3 = *((r5 + 0x1c));
0x00008026 cmp r3, 0 |
| if (r3 != 0) {
0x00008028 bne.w 0x81f0 | goto label_9;
| }
0x0000802c ldr r2, [r5, 0x64] | r2 = *((r5 + 0x64));
0x0000802e cmp r2, 0 |
| if (r2 != 0) {
0x00008030 bne.w 0x82f8 | goto label_10;
| }
0x00008034 ldr r3, [r5, 0x68] | r3 = *((r5 + 0x68));
0x00008036 cmp r3, 0 |
| if (r3 == 0) {
0x00008038 beq.w 0x82bc | goto label_11;
| }
| label_1:
0x0000803c cmp.w r8, -1 |
0x00008040 it eq |
| if (r8 == -1) {
0x00008042 cmpeq r7, -1 | __asm ("cmpeq r7, -1");
| }
0x00008046 ite ne |
| if (r8 == -1) {
0x00008048 movne r5, 3 | r5 = 3;
| }
| if (r8 != -1) {
0x0000804a moveq r5, 1 | r5 = 1;
| }
0x0000804c mov r0, r5 | r0 = r5;
| if (r4 != 0) {
0x0000804e cbz r4, 0x805a |
0x00008050 mov r0, r4 | r0 = r4;
0x00008052 blx 0x2eac | r0 = fcn_00002eac ();
0x00008056 add.w r0, r5, r0, lsl 1 | r0 = r5 + (r0 << 1);
| }
0x0000805a adds r0, 2 | r0 += 2;
0x0000805c movs r1, 4 | r1 = 4;
0x0000805e blx 0x2ef4 | r0 = fcn_00002ef4 ();
0x00008062 mov r6, r0 | r6 = r0;
0x00008064 ldr r0, [pc, 0x2c4] |
0x00008066 add r0, pc | r0 = 0x10396;
0x00008068 blx 0x30d8 | r0 = g_list_delete_link ();
0x0000806c cmp r0, 0 |
| if (r0 == 0) {
0x0000806e beq.w 0x830e | goto label_12;
| }
| label_6:
0x00008072 ldrb r3, [r0] | r3 = *(r0);
| if (r3 == 0) {
0x00008074 cbnz r3, 0x807a |
| label_5:
0x00008076 ldr r0, [pc, 0x2b8] |
0x00008078 add r0, pc | r0 = 0x103ae;
| }
0x0000807a blx 0x2d9c | g_clear_error ();
0x0000807e cmp.w r8, -1 |
0x00008082 it eq |
| if (r8 == -1) {
0x00008084 cmpeq r7, -1 | __asm ("cmpeq r7, -1");
| }
0x00008088 str r0, [r6] | *(r6) = r0;
| if (r8 != -1) {
0x0000808a bne.w 0x82a2 | goto label_13;
| }
| if (r4 == 0) {
| label_0:
0x0000808e cbz r4, 0x80ba | goto label_14;
| }
0x00008090 ldr r3, [r4] | r3 = *(r4);
| if (r3 == 0) {
0x00008092 cbz r3, 0x80ba | goto label_14;
| }
0x00008094 ldr r7, [pc, 0x29c] |
0x00008096 add.w r5, r6, r5, lsl 2 | r5 = r6 + (r5 << 2);
0x0000809a add r7, pc | r7 = 0x103d2;
| do {
0x0000809c adds r5, 8 | r5 += 8;
0x0000809e mov r0, r7 | r0 = r7;
0x000080a0 blx 0x2d9c | g_clear_error ();
0x000080a4 str r0, [r5, -0x8] | *((r5 - 0x8)) = r0;
0x000080a8 ldr r0, [r4] | r0 = *(r4);
0x000080aa blx 0x2d9c | g_clear_error ();
0x000080ae ldr r3, [r4, 4]! | r3 = *((r4 += 4));
0x000080b2 str r0, [r5, -0x4] | *((r5 - 0x4)) = r0;
0x000080b6 cmp r3, 0 |
0x000080b8 bne 0x809c |
| } while (r3 != 0);
| label_14:
0x000080ba ldr r4, [pc, 0x27c] |
0x000080bc add.w r8, sp, 0x2c | r8 += var_2ch;
0x000080c0 blx 0x2f80 | fcn_00002f80 ();
0x000080c4 movs r1, 0 | r1 = 0;
0x000080c6 add r4, pc | r4 = 0x10404;
0x000080c8 str r0, [r4, 0xc] | *((r4 + 0xc)) = r0;
0x000080ca blx 0x2e88 | fcn_00002e88 ();
0x000080ce ldr r1, [pc, 0x26c] |
0x000080d0 mov r3, r8 | r3 = r8;
0x000080d2 str r0, [r4, 0x10] | *((r4 + 0x10)) = r0;
0x000080d4 movs r2, 0 | r2 = 0;
0x000080d6 ldr r0, [pc, 0x268] |
0x000080d8 add r1, pc | r1 = 0x1041a;
0x000080da add r0, pc | r0 = 0x10420;
0x000080dc blx 0x34e0 | g_cancellable_is_cancelled ();
0x000080e0 str r0, [r4, 0x6c] | *((r4 + 0x6c)) = r0;
0x000080e2 cmp r0, 0 |
| if (r0 == 0) {
0x000080e4 beq.w 0x820a | goto label_15;
| }
0x000080e8 add r3, sp, 0x24 | r3 += var_24h;
0x000080ea movs r5, 0 | r5 = 0;
0x000080ec str r3, [sp, 0x10] | var_10h = r3;
0x000080ee add r3, sp, 0x28 | r3 += var_28h;
0x000080f0 str r3, [sp, 0xc] | var_ch = r3;
0x000080f2 add.w r3, r4, 0x64 | r3 = r4 + 0x64;
0x000080f6 str r3, [sp, 8] | var_8h = r3;
0x000080f8 mov r2, r5 | r2 = r5;
0x000080fa mov r3, r5 | r3 = r5;
0x000080fc mov r1, r6 | r1 = r6;
0x000080fe mov r0, r5 | r0 = r5;
0x00008100 strd r5, r8, [sp, 0x14] | __asm ("strd r5, r8, [var_14h]");
0x00008104 strd r5, r5, [sp] | __asm ("strd r5, r5, [sp]");
0x00008108 blx 0x2e54 | r0 = fcn_00002e54 ();
0x0000810c mov r7, r0 | r7 = r0;
0x0000810e cmp r0, 0 |
| if (r0 == 0) {
0x00008110 beq.w 0x82cc | goto label_16;
| }
0x00008114 ldr r0, [sp, 0x24] | r0 = var_24h;
0x00008116 blx 0x2cdc | gst_system_clock_obtain ()
0x0000811a mov r2, r5 | r2 = r5;
0x0000811c mov r1, r5 | r1 = r5;
0x0000811e str r0, [r4, 0x70] | *((r4 + 0x70)) = r0;
0x00008120 blx 0x2ca0 | g_value_dup_string ();
0x00008124 mov r1, r5 | r1 = r5;
0x00008126 ldr r0, [r4, 0x70] | r0 = *((r4 + 0x70));
0x00008128 blx 0x2f18 | fcn_00002f18 ();
0x0000812c ldr r0, [r4, 0x70] | r0 = *((r4 + 0x70));
0x0000812e movs r1, 1 | r1 = 1;
0x00008130 blx 0x33d0 | fcn_000033d0 ();
0x00008134 movs r1, 0x13 | r1 = 0x13;
0x00008136 ldr r0, [r4, 0x70] | r0 = *((r4 + 0x70));
0x00008138 blx 0x3174 | g_timeout_source_new ();
0x0000813c mov r1, r5 | r1 = r5;
0x0000813e mov r7, r0 | r7 = r0;
0x00008140 blx 0x2c30 | fcn_00002c30 ();
0x00008144 ldr r1, [pc, 0x1fc] |
0x00008146 mov r3, r5 | r3 = r5;
0x00008148 mov r2, r5 | r2 = r5;
0x0000814a mov r0, r7 | r0 = r7;
0x0000814c add r1, pc | r1 = 0x10494;
0x0000814e blx 0x2d60 | g_type_add_instance_private ();
0x00008152 ldr r1, [r4, 0xc] | r1 = *((r4 + 0xc));
0x00008154 mov r0, r7 | r0 = r7;
0x00008156 blx 0x3360 | g_error_free ();
0x0000815a mov r0, r7 | r0 = r7;
0x0000815c blx 0x3324 | g_source_attach ();
0x00008160 ldr r0, [sp, 0x28] | r0 = var_28h;
0x00008162 blx 0x2cdc | gst_system_clock_obtain ()
0x00008166 mov r2, r5 | r2 = r5;
0x00008168 mov r1, r5 | r1 = r5;
0x0000816a str r0, [r4, 0x58] | *((r4 + 0x58)) = r0;
0x0000816c blx 0x2ca0 | g_value_dup_string ();
0x00008170 ldr r0, [r4, 0x58] | r0 = *((r4 + 0x58));
0x00008172 movs r1, 1 | r1 = 1;
0x00008174 blx 0x33d0 | fcn_000033d0 ();
0x00008178 mov r1, r5 | r1 = r5;
0x0000817a ldr r0, [r4, 0x58] | r0 = *((r4 + 0x58));
0x0000817c blx 0x2f18 | fcn_00002f18 ();
0x00008180 blx 0x3348 | g_inet_socket_address_get_address ();
0x00008184 str r0, [r4, 8] | *((r4 + 8)) = r0;
0x00008186 blx 0x2d3c | g_resolver_free_addresses ();
0x0000818a ldr r2, [pc, 0x1bc] |
0x0000818c mov r3, r5 | r3 = r5;
0x0000818e ldr r1, [pc, 0x1bc] |
0x00008190 ldr r5, [pc, 0x1bc] |
0x00008192 add r2, pc | r2 = 0x104e0;
0x00008194 add r1, pc | r1 = 0x104e6;
0x00008196 blx 0x2f00 | fcn_00002f00 ();
0x0000819a add r5, pc | r5 = 0x104ee;
0x0000819c str r0, [r4, 4] | *((r4 + 4)) = r0;
0x0000819e blx 0x2c84 | fcn_00002c84 ();
0x000081a2 ldrd r1, r2, [r5] | __asm ("ldrd r1, r2, [r5]");
0x000081a6 movs r3, 1 | r3 = 1;
0x000081a8 str r3, [r4, 0x1c] | *((r4 + 0x1c)) = r3;
0x000081aa cmp.w r2, -1 |
0x000081ae it eq |
| if (r2 == -1) {
0x000081b0 cmpeq r1, -1 | __asm ("cmpeq r1, -1");
| }
| if (r2 != -1) {
0x000081b4 bne.w 0x831e | goto label_17;
| }
0x000081b8 add.w r7, r4, 0x14 | r7 = r4 + 0x14;
0x000081bc b 0x81c6 |
| while (r3 == -1) {
0x000081be ldr r3, [r4, 0x1c] | r3 = *((r4 + 0x1c));
0x000081c0 cmp r3, 0 |
| if (r3 == 0) {
0x000081c2 beq.w 0x82fa | goto label_18;
| }
0x000081c6 mov r1, r7 | r1 = r7;
0x000081c8 add.w r0, r4, 0x20 | r0 = r4 + 0x20;
0x000081cc blx 0x308c | fcn_0000308c ();
0x000081d0 ldrd r2, r3, [r5] | __asm ("ldrd r2, r3, [r5]");
0x000081d4 cmp.w r3, -1 |
0x000081d8 it eq |
| if (r3 == -1) {
0x000081da cmpeq r2, -1 | __asm ("cmpeq r2, -1");
| }
0x000081de beq 0x81be |
| }
0x000081e0 ldr r4, [r4, 0x1c] | r4 = *((r4 + 0x1c));
0x000081e2 cmp r4, 0 |
| if (r4 == 0) {
0x000081e4 beq.w 0x82fa | goto label_18;
| }
| label_7:
0x000081e8 mov r0, r6 | r0 = r6;
0x000081ea blx 0x33b8 | fcn_000033b8 ();
0x000081ee b 0x81f8 | goto label_19;
| label_9:
0x000081f0 mov r0, r6 | r0 = r6;
0x000081f2 movs r4, 1 | r4 = 1;
0x000081f4 blx 0x33b8 | fcn_000033b8 ();
| do {
| label_19:
0x000081f8 ldr r0, [pc, 0x158] |
0x000081fa add r0, pc | r0 = 0x10552;
0x000081fc adds r0, 0x14 | r0 += 0x14;
0x000081fe blx 0x2fc0 | fcn_00002fc0 ();
0x00008202 mov r0, r4 | r0 = r4;
0x00008204 add sp, 0x30 |
0x00008206 pop.w {r4, r5, r6, r7, r8, pc} |
| label_15:
0x0000820a mov r0, r8 | r0 = r8;
0x0000820c blx 0x2da8 | g_value_set_boolean ();
0x00008210 mov r0, r6 | r0 = r6;
| label_8:
0x00008212 blx 0x33b8 | fcn_000033b8 ();
| label_2:
0x00008216 ldr r4, [pc, 0x140] |
0x00008218 add r4, pc | r4 = 0x10576;
0x0000821a ldr r0, [r4, 0x64] | r0 = *(0x105da);
0x0000821c cmp r0, 0 |
| if (r0 != 0) {
0x0000821e bne 0x82e0 | goto label_20;
| }
| label_3:
0x00008220 ldr r3, [pc, 0x138] |
0x00008222 movs r2, 0 | r2 = 0;
0x00008224 add r3, pc | r3 = 0x10584;
0x00008226 ldr r0, [r3, 0x70] | r0 = *(0x105f4);
0x00008228 str r2, [r3, 0x64] | *((r3 + 0x64)) = r2;
| if (r0 != 0) {
0x0000822a cbz r0, 0x8230 |
0x0000822c blx 0x32c8 | fcn_000032c8 ();
| }
0x00008230 ldr r3, [pc, 0x12c] |
0x00008232 movs r2, 0 | r2 = 0;
0x00008234 add r3, pc | r3 = 0x10598;
0x00008236 ldr r0, [r3, 0x58] | r0 = *(0x105f0);
0x00008238 str r2, [r3, 0x70] | *((r3 + 0x70)) = r2;
| if (r0 != 0) {
0x0000823a cbz r0, 0x8240 |
0x0000823c blx 0x32c8 | fcn_000032c8 ();
| }
0x00008240 ldr r4, [pc, 0x120] |
0x00008242 movs r5, 0 | r5 = 0;
0x00008244 add r4, pc | r4 = 0x105ac;
0x00008246 ldr r0, [r4, 0x10] | r0 = *(0x105bc);
0x00008248 str r5, [r4, 0x58] | *((r4 + 0x58)) = r5;
0x0000824a cmp r0, 0 |
| if (r0 == 0) {
0x0000824c beq 0x830a | goto label_21;
| }
0x0000824e ldr r3, [r4, 0x6c] | r3 = *((r4 + 0x6c));
| if (r3 != 0) {
0x00008250 cbz r3, 0x8262 |
0x00008252 blx 0x2cd0 | g_io_channel_unix_new ();
0x00008256 ldr r0, [r4, 0x6c] | r0 = *((r4 + 0x6c));
0x00008258 blx 0x34f8 | g_inet_socket_address_get_port ();
0x0000825c ldr r0, [r4, 0x10] | r0 = *((r4 + 0x10));
0x0000825e str r5, [r4, 0x6c] | *((r4 + 0x6c)) = r5;
| if (r0 == 0) {
0x00008260 cbz r0, 0x8266 | goto label_4;
| }
| }
0x00008262 blx 0x328c | fcn_0000328c ();
| label_4:
0x00008266 ldr r3, [pc, 0x100] |
0x00008268 movs r2, 0 | r2 = 0;
0x0000826a add r3, pc | r3 = 0x105d8;
0x0000826c ldr r0, [r3, 0xc] | r0 = *(0x105e4);
0x0000826e str r2, [r3, 0x10] | *((r3 + 0x10)) = r2;
| if (r0 != 0) {
0x00008270 cbz r0, 0x8276 |
0x00008272 blx 0x31ec | g_cond_signal ();
| }
0x00008276 ldr r3, [pc, 0xf4] |
0x00008278 movs r2, 0 | r2 = 0;
0x0000827a add r3, pc | r3 = 0x105ec;
0x0000827c ldr r0, [r3, 8] | r0 = *(0x105f4);
0x0000827e str r2, [r3, 0xc] | *((r3 + 0xc)) = r2;
| if (r0 != 0) {
0x00008280 cbz r0, 0x8286 |
0x00008282 blx 0x3204 | g_queue_get_length ();
| }
0x00008286 ldr r3, [pc, 0xe8] |
0x00008288 movs r2, 0 | r2 = 0;
0x0000828a add r3, pc | r3 = 0x10600;
0x0000828c ldr r0, [r3, 4] | r0 = *(0x10604);
0x0000828e str r2, [r3, 8] | *((r3 + 8)) = r2;
| if (r0 != 0) {
0x00008290 cbz r0, 0x8296 |
0x00008292 blx 0x2c94 | g_io_channel_set_encoding ();
| }
0x00008296 ldr r3, [pc, 0xdc] |
0x00008298 movs r2, 0 | r2 = 0;
0x0000829a mov r4, r2 | r4 = r2;
0x0000829c add r3, pc | r3 = 0x10616;
0x0000829e str r2, [r3, 4] | *((r3 + 4)) = r2;
0x000082a0 b 0x81f8 |
| } while (1);
| label_13:
0x000082a2 ldr r0, [pc, 0xd4] |
0x000082a4 add r0, pc | r0 = 0x10622;
0x000082a6 blx 0x2d9c | g_clear_error ();
0x000082aa str r0, [r6, 4] | *((r6 + 4)) = r0;
0x000082ac mov r2, r7 | r2 = r7;
0x000082ae ldr r0, [pc, 0xcc] |
0x000082b0 mov r3, r8 | r3 = r8;
0x000082b2 add r0, pc | r0 = 0x10634;
0x000082b4 blx 0x2f58 | g_main_context_new ();
0x000082b8 str r0, [r6, 8] | *((r6 + 8)) = r0;
0x000082ba b 0x808e | goto label_0;
| label_11:
0x000082bc movs r1, 0x20 | r1 = 0x20;
0x000082be add.w r0, r5, 0x3c | r0 = r5 + 0x3c;
0x000082c2 blx 0x2d30 | gst_system_clock_get_type ()
0x000082c6 movs r3, 1 | r3 = 1;
0x000082c8 str r3, [r5, 0x68] | *((r5 + 0x68)) = r3;
0x000082ca b 0x803c | goto label_1;
| label_16:
0x000082cc mov r0, r8 | r0 = r8;
0x000082ce blx 0x2da8 | g_value_set_boolean ();
0x000082d2 ldr r3, [pc, 0xac] |
0x000082d4 mov r0, r6 | r0 = r6;
0x000082d6 add r3, pc | r3 = 0x1065c;
0x000082d8 str r7, [r3, 0x10] | *((r3 + 0x10)) = r7;
0x000082da blx 0x33b8 | fcn_000033b8 ();
0x000082de b 0x8216 | goto label_2;
| label_20:
0x000082e0 movs r1, 9 | r1 = 9;
0x000082e2 blx 0x340c | fcn_0000340c ();
0x000082e6 movs r2, 0 | r2 = 0;
0x000082e8 ldr r0, [r4, 0x64] | r0 = *((r4 + 0x64));
0x000082ea mov r1, r2 | r1 = r2;
0x000082ec blx 0x3080 | fcn_00003080 ();
0x000082f0 ldr r0, [r4, 0x64] | r0 = *((r4 + 0x64));
0x000082f2 blx 0x2e7c | fcn_00002e7c ();
0x000082f6 b 0x8220 | goto label_3;
| label_10:
0x000082f8 mov r6, r3 | r6 = r3;
| label_18:
0x000082fa ldr r3, [pc, 0x88] |
0x000082fc movs r2, 0 | r2 = 0;
0x000082fe mov r0, r6 | r0 = r6;
0x00008300 add r3, pc | r3 = 0x1068a;
0x00008302 str r2, [r3, 0x10] | *((r3 + 0x10)) = r2;
0x00008304 blx 0x33b8 | fcn_000033b8 ();
0x00008308 b 0x8216 | goto label_2;
| label_21:
0x0000830a str r0, [r4, 0x6c] | *((r4 + 0x6c)) = r0;
0x0000830c b 0x8266 | goto label_4;
| label_12:
0x0000830e ldr r0, [pc, 0x78] |
0x00008310 add r0, pc | r0 = 0x1069e;
0x00008312 blx 0x30d8 | r0 = g_list_delete_link ();
0x00008316 cmp r0, 0 |
| if (r0 == 0) {
0x00008318 beq.w 0x8076 | goto label_5;
| }
0x0000831c b 0x8072 | goto label_6;
| label_17:
0x0000831e mov r4, r3 | r4 = r3;
0x00008320 b 0x81e8 | goto label_7;
| }
[*] Function system used 4 times libgstnet-1.0.so.0.1803.0