[*] Binary protection state of netd_migrate
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function system tear down of netd_migrate
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/libexec/netd_migrate @ 0x5304 */
| #include <stdint.h>
|
; (fcn) fcn.00005304 () | void fcn_00005304 () {
0x00005304 lui gp, 2 |
0x00005308 addiu gp, gp, 0xa5c |
0x0000530c addu gp, gp, t9 | gp += t9;
| if (a0 == 0) {
0x00005310 beqz a0, 0x547c | goto label_1;
| }
0x00005314 nop |
0x00005318 addiu sp, sp, -0x40 |
0x0000531c sw s4, 0x2c(sp) | *(var_2ch) = s4;
0x00005320 sw s2, 0x24(sp) | *(var_24h_2) = s2;
0x00005324 sw s1, 0x20(sp) | *(var_20h) = s1;
0x00005328 lw s2, -0x7fd0(gp) | s2 = *((gp - 8180));
0x0000532c lw s1, -0x7fd0(gp) | s1 = *((gp - 8180));
0x00005330 lw s4, -0x7fd0(gp) | s4 = *((gp - 8180));
0x00005334 sw gp, 0x10(sp) | *(var_10h_2) = gp;
0x00005338 sw s6, 0x34(sp) | *(var_34h) = s6;
0x0000533c sw s3, 0x28(sp) | *(var_28h) = s3;
0x00005340 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x00005344 sw s7, 0x38(sp) | *(var_38h) = s7;
0x00005348 sw s5, 0x30(sp) | *(var_30h) = s5;
0x0000534c sw s0, 0x1c(sp) | *(var_1ch) = s0;
0x00005350 move s6, a0 | s6 = a0;
0x00005354 addiu s2, s2, -0x4c2c | s2 += -0x4c2c;
0x00005358 addiu s1, s1, -0x4c28 | s1 += -0x4c28;
0x0000535c addiu s3, zero, 2 | s3 = 2;
0x00005360 addiu s4, s4, -0x4c08 | s4 += -0x4c08;
0x00005364 b 0x5370 |
| while (s5 == 0) {
0x00005368 lw ra, 0x3c(sp) | ra = *(var_3ch);
| if (s6 == 0) {
0x0000536c beqz s6, 0x5418 | goto label_2;
| }
| label_0:
0x00005370 lw s0, (s6) | s0 = *(s6);
0x00005374 lw t9, -0x7e60(gp) | t9 = sym.imp.g_strdup_printf;
0x00005378 move a1, s0 | a1 = s0;
0x0000537c move a0, s2 | a0 = s2;
0x00005380 jalr t9 | t9 ();
0x00005384 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x00005388 move a2, s0 | a2 = s0;
0x0000538c move a1, s1 | a1 = s1;
0x00005390 lw t9, -0x7fcc(gp) | t9 = sym.netd_log_esc;
0x00005394 addiu a0, zero, 1 | a0 = 1;
0x00005398 move s7, v0 | s7 = v0;
0x0000539c bal 0x5f90 | sym_netd_log_esc ();
0x000053a0 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x000053a4 lw t9, -0x7e54(gp) | t9 = sym.imp.system
0x000053a8 move a0, s7 | a0 = s7;
0x000053ac jalr t9 | t9 ();
0x000053b0 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x000053b4 move s5, v0 | s5 = v0;
0x000053b8 lw t9, -0x7de0(gp) | t9 = *((gp - 8056));
0x000053bc move a0, s7 | a0 = s7;
0x000053c0 jalr t9 | t9 ();
0x000053c4 andi v1, s5, 0x7f | v1 = s5 & 0x7f;
0x000053c8 addiu v1, v1, 1 | v1++;
0x000053cc seb v1, v1 | __asm ("seb v1, v1");
0x000053d0 sra v1, v1, 1 | v1 >>= 1;
0x000053d4 lw gp, 0x10(sp) | gp = *(var_10h_2);
0x000053d8 andi v0, s5, 0x7e | v0 = s5 & 0x7e;
| if (v1 > 0) {
0x000053dc blez v1, 0x53e8 |
0x000053e0 lw a1, -0x7fd0(gp) | a1 = *((gp - 8180));
| if (v0 == s3) {
0x000053e4 beq v0, s3, 0x5440 | goto label_3;
| }
| }
0x000053e8 beql s5, zero, 0x5368 |
| }
0x000053ec lw s6, 4(s6) | s6 = *((s6 + 1));
0x000053f0 lw t9, -0x7fcc(gp) | t9 = sym.netd_log_esc;
0x000053f4 move a3, s5 | a3 = s5;
0x000053f8 move a2, s0 | a2 = s0;
0x000053fc move a1, s4 | a1 = s4;
0x00005400 addiu a0, zero, 3 | a0 = 3;
0x00005404 bal 0x5f90 | sym_netd_log_esc ();
0x00005408 lw s6, 4(s6) | s6 = *((s6 + 1));
0x0000540c lw gp, 0x10(sp) | gp = *(var_10h_2);
| if (s6 != 0) {
0x00005410 bnez s6, 0x5370 | goto label_0;
| }
0x00005414 lw ra, 0x3c(sp) | ra = *(var_3ch);
| label_2:
0x00005418 lw s7, 0x38(sp) | s7 = *(var_38h);
0x0000541c lw s6, 0x34(sp) | s6 = *(var_34h);
0x00005420 lw s5, 0x30(sp) | s5 = *(var_30h);
0x00005424 lw s4, 0x2c(sp) | s4 = *(var_2ch);
0x00005428 lw s3, 0x28(sp) | s3 = *(var_28h);
0x0000542c lw s2, 0x24(sp) | s2 = *(var_24h_2);
0x00005430 lw s1, 0x20(sp) | s1 = *(var_20h);
0x00005434 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x00005438 addiu sp, sp, 0x40 |
0x0000543c jr ra | return v0;
| label_3:
0x00005440 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x00005444 lw s7, 0x38(sp) | s7 = *(var_38h);
0x00005448 lw s6, 0x34(sp) | s6 = *(var_34h);
0x0000544c lw s5, 0x30(sp) | s5 = *(var_30h);
0x00005450 lw s4, 0x2c(sp) | s4 = *(var_2ch);
0x00005454 lw s3, 0x28(sp) | s3 = *(var_28h);
0x00005458 lw s2, 0x24(sp) | s2 = *(var_24h_2);
0x0000545c lw s1, 0x20(sp) | s1 = *(var_20h);
0x00005460 move a2, s0 | a2 = s0;
0x00005464 lw t9, -0x7fcc(gp) | t9 = sym.netd_log_esc;
0x00005468 lw s0, 0x1c(sp) | s0 = *(var_1ch);
0x0000546c addiu a1, a1, -0x4c24 | a1 += -0x4c24;
0x00005470 addiu a0, zero, 2 | a0 = 2;
0x00005474 addiu sp, sp, 0x40 |
0x00005478 b 0x5f90 | void (*0x5f90)() ();
| label_1:
0x0000547c jr ra | return v0;
0x00005480 nop |
| }
[*] Function system used 2 times netd_migrate