[*] 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