[*] Binary protection state of pidstat

  
  	Full RELRO     Canary found      NX disabled  PIE enabled  No RPATH     No RUNPATH   No Symbols


[*] Function strcpy tear down of pidstat

    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/pidstat @ 0xd9ac */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.get_persistent_names ()          | void get_persistent_names () {
                                                 | label_2:
    0x0000d9ac lui gp, 2                         |     
    0x0000d9b0 addiu gp, gp, -0x38fc             |     
    0x0000d9b4 addu gp, gp, t9                   |     gp += t9;
    0x0000d9b8 lw v0, -0x7cd8(gp)                |     v0 = *((gp - 7990));
    0x0000d9bc addiu sp, sp, -0x58               |     
    0x0000d9c0 lw a0, -0x7e44(gp)                |     a0 = *(gp);
    0x0000d9c4 sw v0, 0x20(sp)                   |     *(var_20h) = v0;
    0x0000d9c8 lw v0, (v0)                       |     v0 = *(v0);
    0x0000d9cc lw t9, -0x7e48(gp)                |     t9 = sym.get_persistent_type_dir;
    0x0000d9d0 sw gp, 0x10(sp)                   |     *(var_10h) = gp;
    0x0000d9d4 sw ra, 0x54(sp)                   |     *(var_54h) = ra;
    0x0000d9d8 sw fp, 0x50(sp)                   |     *(var_50h) = fp;
    0x0000d9dc sw s7, 0x4c(sp)                   |     *(var_4ch) = s7;
    0x0000d9e0 sw s6, 0x48(sp)                   |     *(var_48h) = s6;
    0x0000d9e4 sw s5, 0x44(sp)                   |     *(var_44h) = s5;
    0x0000d9e8 sw s4, 0x40(sp)                   |     *(var_40h) = s4;
    0x0000d9ec sw s3, 0x3c(sp)                   |     *(var_3ch) = s3;
    0x0000d9f0 sw s2, 0x38(sp)                   |     *(var_38h) = s2;
    0x0000d9f4 sw s1, 0x34(sp)                   |     *(var_34h) = s1;
    0x0000d9f8 sw s0, 0x30(sp)                   |     *(var_30h) = s0;
    0x0000d9fc sw v0, 0x2c(sp)                   |     *(var_2ch) = v0;
    0x0000da00 bal 0xd870                        |     sym_get_persistent_type_dir ();
    0x0000da04 nop                               |     
    0x0000da08 lw gp, 0x10(sp)                   |     gp = *(var_10h);
                                                 |     if (v0 == 0) {
    0x0000da0c beqz v0, 0xdba8                   |         goto label_4;
                                                 |     }
    0x0000da10 lw t9, -0x7d78(gp)                |     t9 = sym.imp.scandir;
    0x0000da14 lw a3, -0x7dac(gp)                |     a3 = *((gp - 8043));
    0x0000da18 move a2, zero                     |     a2 = 0;
    0x0000da1c addiu a1, sp, 0x28                |     a1 = sp + 0x28;
    0x0000da20 move a0, v0                       |     a0 = v0;
    0x0000da24 jalr t9                           |     t9 ();
    0x0000da28 move s1, v0                       |     s1 = v0;
    0x0000da2c lw gp, 0x10(sp)                   |     gp = *(var_10h);
                                                 |     if (v0 < 0) {
    0x0000da30 bltz v0, 0xdba8                   |         goto label_4;
                                                 |     }
    0x0000da34 slti v0, v0, 3                    |     v0 = (v0 < 3) ? 1 : 0;
    0x0000da38 lw fp, 0x28(sp)                   |     fp = *(var_28h_2);
                                                 |     if (v0 == 0) {
    0x0000da3c beqz v0, 0xdac4                   |         goto label_5;
                                                 |     }
    0x0000da40 move s3, zero                     |     s3 = 0;
                                                 |     if (s1 == 0) {
    0x0000da44 beqz s1, 0xda70                   |         goto label_6;
                                                 |     }
                                                 | label_0:
    0x0000da48 move s0, zero                     |     s0 = 0;
                                                 |     do {
    0x0000da4c sll a0, s0, 2                     |         a0 = s0 << 2;
    0x0000da50 lw t9, -0x7cd0(gp)                |         t9 = sym.imp.free;
    0x0000da54 lwx a0, a0(fp)                    |         __asm ("lwx a0, a0(fp)");
    0x0000da58 addiu s0, s0, 1                   |         s0++;
    0x0000da5c jalr t9                           |         t9 ();
    0x0000da60 slt v0, s0, s1                    |         v0 = (s0 < s1) ? 1 : 0;
    0x0000da64 lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x0000da68 lw fp, 0x28(sp)                   |         fp = *(var_28h_2);
    0x0000da6c bnez v0, 0xda4c                   |         
                                                 |     } while (v0 != 0);
                                                 | label_6:
    0x0000da70 lw t9, -0x7cd0(gp)                |     t9 = sym.imp.free;
    0x0000da74 move a0, fp                       |     a0 = fp;
    0x0000da78 jalr t9                           |     t9 ();
    0x0000da7c lw gp, 0x10(sp)                   |     gp = *(var_10h);
                                                 | label_1:
    0x0000da80 lw v0, 0x20(sp)                   |     v0 = *(var_20h);
    0x0000da84 lw a0, 0x2c(sp)                   |     a0 = *(var_2ch);
    0x0000da88 lw v1, (v0)                       |     v1 = *(v0);
    0x0000da8c move v0, s3                       |     v0 = s3;
                                                 |     if (a0 != v1) {
    0x0000da90 bne a0, v1, 0xdbb0                |         goto label_7;
                                                 |     }
    0x0000da94 lw ra, 0x54(sp)                   |     ra = *(var_54h);
    0x0000da98 lw fp, 0x50(sp)                   |     fp = *(var_50h);
    0x0000da9c lw s7, 0x4c(sp)                   |     s7 = *(var_4ch);
    0x0000daa0 lw s6, 0x48(sp)                   |     s6 = *(var_48h);
    0x0000daa4 lw s5, 0x44(sp)                   |     s5 = *(var_44h);
    0x0000daa8 lw s4, 0x40(sp)                   |     s4 = *(var_40h);
    0x0000daac lw s3, 0x3c(sp)                   |     s3 = *(var_3ch);
    0x0000dab0 lw s2, 0x38(sp)                   |     s2 = *(var_38h);
    0x0000dab4 lw s1, 0x34(sp)                   |     s1 = *(var_34h);
    0x0000dab8 lw s0, 0x30(sp)                   |     s0 = *(var_30h);
    0x0000dabc addiu sp, sp, 0x58                |     
    0x0000dac0 jr ra                             |     return v0;
                                                 | label_5:
    0x0000dac4 lw t9, -0x7de0(gp)                |     t9 = sym.imp.calloc;
    0x0000dac8 addiu a1, zero, 4                 |     a1 = 4;
    0x0000dacc addiu a0, s1, -1                  |     a0 = s1 + -1;
    0x0000dad0 jalr t9                           |     t9 ();
    0x0000dad4 move s3, v0                       |     s3 = v0;
    0x0000dad8 lw gp, 0x10(sp)                   |     gp = *(var_10h);
                                                 |     if (v0 == 0) {
    0x0000dadc beqz v0, 0xda48                   |         goto label_0;
                                                 |     }
    0x0000dae0 lw v0, -0x7fd4(gp)                |     v0 = *(gp);
    0x0000dae4 sll s5, s1, 2                     |     s5 = s1 << 2;
                                                 |     /* esilref: '(' */
    0x0000dae8 addiu v0, v0, 0x1814              |     v0 += 0x1814;
    0x0000daec sw v0, 0x1c(sp)                   |     *(var_1ch_3) = v0;
    0x0000daf0 lw v0, -0x7fd4(gp)                |     v0 = *(gp);
    0x0000daf4 move s7, fp                       |     s7 = fp;
                                                 |     /* esilref: '..' */
    0x0000daf8 addiu v0, v0, 0x1818              |     v0 += 0x1818;
    0x0000dafc addu s5, s5, fp                   |     s5 += fp;
    0x0000db00 move s6, zero                     |     s6 = 0;
    0x0000db04 sw v0, 0x24(sp)                   |     *(var_24h_2) = v0;
    0x0000db08 lw s0, (s7)                       |     s0 = *(s7);
                                                 |     do {
    0x0000db0c lw t9, -0x7cac(gp)                |         t9 = sym.imp.strcmp;
    0x0000db10 addiu s0, s0, 0xb                 |         s0 += 0xb;
    0x0000db14 lw a0, 0x1c(sp)                   |         a0 = *(var_1ch_3);
    0x0000db18 move a1, s0                       |         a1 = s0;
    0x0000db1c jalr t9                           |         t9 ();
    0x0000db20 sll s2, s6, 2                     |         s2 = s6 << 2;
    0x0000db24 lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x0000db28 addu s4, s3, s2                   |         s4 = s3 + s2;
                                                 |         if (v0 != 0) {
    0x0000db2c beqz v0, 0xdb94                   |             
    0x0000db30 lw t9, -0x7cac(gp)                |             t9 = sym.imp.strcmp;
    0x0000db34 lw a0, 0x24(sp)                   |             a0 = *(var_24h_2);
    0x0000db38 move a1, s0                       |             a1 = s0;
    0x0000db3c jalr t9                           |             t9 ();
    0x0000db40 lw gp, 0x10(sp)                   |             gp = *(var_10h);
                                                 |             if (v0 == 0) {
    0x0000db44 beqz v0, 0xdb94                   |                 goto label_8;
                                                 |             }
    0x0000db48 lw t9, -0x7d54(gp)                |             t9 = sym.imp.strlen;
    0x0000db4c move a0, s0                       |             a0 = s0;
    0x0000db50 jalr t9                           |             t9 ();
    0x0000db54 lw gp, 0x10(sp)                   |             gp = *(var_10h);
    0x0000db58 addiu a1, zero, 1                 |             a1 = 1;
    0x0000db5c lw t9, -0x7de0(gp)                |             t9 = sym.imp.calloc;
    0x0000db60 addiu a0, v0, 1                   |             a0 = v0 + 1;
    0x0000db64 jalr t9                           |             t9 ();
    0x0000db68 lw gp, 0x10(sp)                   |             gp = *(var_10h);
    0x0000db6c sw v0, (s4)                       |             *(s4) = v0;
                                                 |             if (v0 == 0) {
    0x0000db70 beqz v0, 0xdb94                   |                 goto label_8;
                                                 |             }
    0x0000db74 lw t9, -0x7d20(gp)                |             t9 = sym.imp.strcpy
    0x0000db78 move a1, s0                       |             a1 = s0;
    0x0000db7c move a0, v0                       |             a0 = v0;
    0x0000db80 jalr t9                           |             t9 ();
    0x0000db84 addiu s2, s2, 4                   |             s2 += 4;
    0x0000db88 lw gp, 0x10(sp)                   |             gp = *(var_10h);
    0x0000db8c addiu s6, s6, 1                   |             s6++;
    0x0000db90 addu s4, s3, s2                   |             s4 = s3 + s2;
                                                 |         }
                                                 | label_8:
    0x0000db94 addiu s7, s7, 4                   |         s7 += 4;
    0x0000db98 lw s0, (s7)                       |         s0 = *(s7);
    0x0000db9c bnel s5, s7, 0xdb0c               |         
                                                 |     } while (s5 == s7);
    0x0000dba0 sw zero, (s4)                     |     *(s4) = 0;
    0x0000dba4 b 0xda48                          |     goto label_0;
                                                 | label_4:
    0x0000dba8 move s3, zero                     |     s3 = 0;
    0x0000dbac b 0xda80                          |     goto label_1;
                                                 | label_7:
    0x0000dbb0 lw t9, -0x7cf0(gp)                |     t9 = sym.imp.__stack_chk_fail;
    0x0000dbb4 jalr t9                           |     t9 ();
    0x0000dbb8 nop                               |     
    0x0000dbbc lui gp, 2                         |     
    0x0000dbc0 addiu gp, gp, -0x3b0c             |     
    0x0000dbc4 addu gp, gp, t9                   |     gp += t9;
    0x0000dbc8 addiu sp, sp, -0x1040             |     
    0x0000dbcc lw t9, -0x7e40(gp)                |     t9 = sym.get_persistent_names;
    0x0000dbd0 sw s5, 0x1034(sp)                 |     *(var_1034h) = s5;
    0x0000dbd4 lw s5, -0x7cd8(gp)                |     s5 = *((gp - 7990));
    0x0000dbd8 sw s2, 0x1028(sp)                 |     *(var_1028h) = s2;
    0x0000dbdc lw s2, -0x7fa8(gp)                |     s2 = *((gp - 8170));
    0x0000dbe0 lw v0, (s5)                       |     v0 = *(s5);
    0x0000dbe4 sw gp, 0x10(sp)                   |     *(var_10h_2) = gp;
    0x0000dbe8 sw s4, 0x1030(sp)                 |     *(var_1030h) = s4;
    0x0000dbec sw ra, 0x103c(sp)                 |     *(var_103ch) = ra;
    0x0000dbf0 sw s6, 0x1038(sp)                 |     *(var_1038h) = s6;
    0x0000dbf4 sw s3, 0x102c(sp)                 |     *(var_102ch) = s3;
    0x0000dbf8 sw s1, 0x1024(sp)                 |     *(var_1024h) = s1;
    0x0000dbfc sw s0, 0x1020(sp)                 |     *(var_1020h) = s0;
    0x0000dc00 sw v0, 0x101c(sp)                 |     *(var_101ch) = v0;
    0x0000dc04 sb zero, 0x2cb0(s2)               |     *((s2 + 11440)) = 0;
    0x0000dc08 move s4, a0                       |     s4 = a0;
    0x0000dc0c bal 0xd9ac                        |     sym_get_persistent_names ();
                                                 |     goto label_2;
    0x0000dc10 lw gp, 0x10(sp)                   |     gp = *(var_10h_2);
                                                 |     if (v0 == 0) {
    0x0000dc14 beqz v0, 0xdd30                   |         goto label_9;
                                                 |     }
    0x0000dc18 move s0, v0                       |     s0 = v0;
    0x0000dc1c move s3, v0                       |     s3 = v0;
    0x0000dc20 lw a0, (s0)                       |     a0 = *(s0);
    0x0000dc24 lw s1, -0x7e3c(gp)                |     s1 = sym.get_persistent_name_path;
    0x0000dc28 addiu s6, sp, 0x1c                |     s6 = sp + 0x1c;
                                                 |     if (a0 == 0) {
    0x0000dc2c beqz a0, 0xdcbc                   |         goto label_3;
                                                 |     }
    0x0000dc30 move t9, s1                       |     t9 = s1;
                                                 |     do {
    0x0000dc34 bal 0xd900                        |         sym_get_persistent_name_path ();
    0x0000dc38 nop                               |         
    0x0000dc3c lw gp, 0x10(sp)                   |         gp = *(var_10h_2);
                                                 |         if (v0 != 0) {
    0x0000dc40 beqz v0, 0xdcac                   |             
    0x0000dc44 lw t9, -0x7d00(gp)                |             t9 = sym.imp.readlink;
    0x0000dc48 addiu a2, zero, 0x1000            |             a2 = aav.0x00001000;
    0x0000dc4c move a1, s6                       |             a1 = s6;
    0x0000dc50 move a0, v0                       |             a0 = v0;
    0x0000dc54 jalr t9                           |             t9 ();
    0x0000dc58 addiu v1, v0, -1                  |             v1 = v0 + -1;
    0x0000dc5c sltiu v1, v1, 0xfff               |             v1 = (v1 < 0xfff) ? 1 : 0;
    0x0000dc60 lw gp, 0x10(sp)                   |             gp = *(var_10h_2);
                                                 |             if (v1 == 0) {
    0x0000dc64 beqz v1, 0xdcac                   |                 goto label_10;
                                                 |             }
    0x0000dc68 addiu v1, sp, 0x1020              |             v1 = sp + 0x1020;
    0x0000dc6c addu v0, v1, v0                   |             v0 = v1 + v0;
    0x0000dc70 lw t9, -0x7d7c(gp)                |             t9 = sym.imp.__xpg_basename;
    0x0000dc74 move a0, s6                       |             a0 = s6;
    0x0000dc78 sb zero, -0x1004(v0)              |             *((v0 - 4100)) = 0;
    0x0000dc7c jalr t9                           |             t9 ();
    0x0000dc80 lw gp, 0x10(sp)                   |             gp = *(var_10h_2);
                                                 |             if (v0 == 0) {
    0x0000dc84 beqz v0, 0xdcac                   |                 goto label_10;
                                                 |             }
    0x0000dc88 lb v1, (v0)                       |             v1 = *(v0);
    0x0000dc8c lw t9, -0x7dbc(gp)                |             t9 = sym.imp.strncmp;
                                                 |             if (v1 == 0) {
    0x0000dc90 beqz v1, 0xdcac                   |                 goto label_10;
                                                 |             }
    0x0000dc94 addiu a2, zero, 0x1000            |             a2 = aav.0x00001000;
    0x0000dc98 move a1, s4                       |             a1 = s4;
    0x0000dc9c move a0, v0                       |             a0 = v0;
    0x0000dca0 jalr t9                           |             t9 ();
    0x0000dca4 lw gp, 0x10(sp)                   |             gp = *(var_10h_2);
                                                 |             if (v0 == 0) {
    0x0000dca8 beqz v0, 0xdd38                   |                 goto label_11;
                                                 |             }
                                                 |         }
                                                 | label_10:
    0x0000dcac addiu s0, s0, 4                   |         s0 += 4;
    0x0000dcb0 lw a0, (s0)                       |         a0 = *(s0);
    0x0000dcb4 move t9, s1                       |         t9 = s1;
    0x0000dcb8 bnez a0, 0xdc34                   |         
                                                 |     } while (a0 != 0);
                                                 | label_3:
    0x0000dcbc lw a0, (s3)                       |     a0 = *(s3);
    0x0000dcc0 addiu s0, s3, 4                   |     s0 = s3 + 4;
                                                 |     if (a0 == 0) {
    0x0000dcc4 beqz a0, 0xdce0                   |         goto label_12;
                                                 |     }
                                                 |     do {
    0x0000dcc8 lw t9, -0x7cd0(gp)                |         t9 = sym.imp.free;
    0x0000dccc addiu s0, s0, 4                   |         s0 += 4;
    0x0000dcd0 jalr t9                           |         t9 ();
    0x0000dcd4 lw a0, -4(s0)                     |         a0 = *((s0 - 1));
    0x0000dcd8 lw gp, 0x10(sp)                   |         gp = *(var_10h_2);
    0x0000dcdc bnez a0, 0xdcc8                   |         
                                                 |     } while (a0 != 0);
                                                 | label_12:
    0x0000dce0 lw t9, -0x7cd0(gp)                |     t9 = sym.imp.free;
    0x0000dce4 move a0, s3                       |     a0 = s3;
    0x0000dce8 jalr t9                           |     t9 ();
    0x0000dcec lb v0, 0x2cb0(s2)                 |     v0 = *((s2 + 11440));
    0x0000dcf0 lw gp, 0x10(sp)                   |     gp = *(var_10h_2);
                                                 |     if (v0 == 0) {
    0x0000dcf4 beqz v0, 0xdd30                   |         goto label_9;
                                                 |     }
    0x0000dcf8 addiu v0, s2, 0x2cb0              |     v0 = s2 + 0x2cb0;
                                                 |     do {
    0x0000dcfc lw a0, 0x101c(sp)                 |         a0 = *(var_101ch);
    0x0000dd00 lw v1, (s5)                       |         v1 = *(s5);
    0x0000dd04 lw ra, 0x103c(sp)                 |         ra = *(var_103ch);
                                                 |         if (a0 != v1) {
    0x0000dd08 bne a0, v1, 0xdd5c                |             goto label_13;
                                                 |         }
    0x0000dd0c lw s6, 0x1038(sp)                 |         s6 = *(var_1038h);
    0x0000dd10 lw s5, 0x1034(sp)                 |         s5 = *(var_1034h);
    0x0000dd14 lw s4, 0x1030(sp)                 |         s4 = *(var_1030h);
    0x0000dd18 lw s3, 0x102c(sp)                 |         s3 = *(var_102ch);
    0x0000dd1c lw s2, 0x1028(sp)                 |         s2 = *(var_1028h);
    0x0000dd20 lw s1, 0x1024(sp)                 |         s1 = *(var_1024h);
    0x0000dd24 lw s0, 0x1020(sp)                 |         s0 = *(var_1020h);
    0x0000dd28 addiu sp, sp, 0x1040              |         
    0x0000dd2c jr ra                             |         return v0;
                                                 | label_9:
    0x0000dd30 move v0, zero                     |         v0 = 0;
    0x0000dd34 b 0xdcfc                          |         
                                                 |     } while (1);
                                                 | label_11:
    0x0000dd38 lw t9, -0x7d70(gp)                |     t9 = sym.imp.strncpy;
    0x0000dd3c lw a1, (s0)                       |     a1 = *(s0);
    0x0000dd40 addiu a2, zero, 0x1000            |     a2 = aav.0x00001000;
    0x0000dd44 addiu a0, s2, 0x2cb0              |     a0 = s2 + 0x2cb0;
    0x0000dd48 jalr t9                           |     t9 ();
    0x0000dd4c addiu v0, s2, 0x2cb0              |     v0 = s2 + 0x2cb0;
    0x0000dd50 lw gp, 0x10(sp)                   |     gp = *(var_10h_2);
    0x0000dd54 sb zero, 0xfff(v0)                |     *((v0 + 4095)) = 0;
    0x0000dd58 b 0xdcbc                          |     goto label_3;
                                                 | label_13:
    0x0000dd5c lw t9, -0x7cf0(gp)                |     t9 = sym.imp.__stack_chk_fail;
    0x0000dd60 jalr t9                           |     t9 ();
    0x0000dd64 nop                               |     
    0x0000dd68 lui gp, 2                         |     
    0x0000dd6c addiu gp, gp, -0x3cb8             |     
    0x0000dd70 addu gp, gp, t9                   |     gp += t9;
    0x0000dd74 addiu sp, sp, -0x1030             |     
    0x0000dd78 lw t9, -0x7e3c(gp)                |     t9 = sym.get_persistent_name_path;
    0x0000dd7c sw s0, 0x1024(sp)                 |     *(var_1024h_2) = s0;
    0x0000dd80 lw s0, -0x7cd8(gp)                |     s0 = *((gp - 7990));
    0x0000dd84 sw gp, 0x10(sp)                   |     *(var_10h_3) = gp;
    0x0000dd88 sw ra, 0x102c(sp)                 |     *(var_102ch_2) = ra;
    0x0000dd8c lw v0, (s0)                       |     v0 = *(s0);
    0x0000dd90 sw s1, 0x1028(sp)                 |     *(var_1028h_2) = s1;
    0x0000dd94 sw v0, 0x101c(sp)                 |     *(var_101ch_2) = v0;
    0x0000dd98 bal 0xd900                        |     sym_get_persistent_name_path ();
    0x0000dd9c nop                               |     
    0x0000dda0 lw gp, 0x10(sp)                   |     gp = *(var_10h_3);
                                                 |     if (v0 == 0) {
    0x0000dda4 beqz v0, 0xde1c                   |         goto label_14;
                                                 |     }
    0x0000dda8 lw t9, -0x7d00(gp)                |     t9 = sym.imp.readlink;
    0x0000ddac addiu s1, sp, 0x1c                |     s1 = sp + 0x1c;
    0x0000ddb0 addiu a2, zero, 0x1000            |     a2 = aav.0x00001000;
    0x0000ddb4 move a1, s1                       |     a1 = s1;
    0x0000ddb8 move a0, v0                       |     a0 = v0;
    0x0000ddbc jalr t9                           |     t9 ();
    0x0000ddc0 addiu v1, v0, -1                  |     v1 = v0 + -1;
    0x0000ddc4 sltiu v1, v1, 0xfff               |     v1 = (v1 < 0xfff) ? 1 : 0;
    0x0000ddc8 lw gp, 0x10(sp)                   |     gp = *(var_10h_3);
                                                 |     if (v1 == 0) {
    0x0000ddcc beqz v1, 0xde1c                   |         goto label_14;
                                                 |     }
    0x0000ddd0 addiu v1, sp, 0x1020              |     v1 = sp + 0x1020;
    0x0000ddd4 addu v0, v1, v0                   |     v0 = v1 + v0;
    0x0000ddd8 lw t9, -0x7d7c(gp)                |     t9 = sym.imp.__xpg_basename;
    0x0000dddc move a0, s1                       |     a0 = s1;
    0x0000dde0 sb zero, -0x1004(v0)              |     *((v0 - 4100)) = 0;
    0x0000dde4 jalr t9                           |     t9 ();
    0x0000dde8 lw gp, 0x10(sp)                   |     gp = *(var_10h_3);
                                                 |     if (v0 == 0) {
    0x0000ddec beqz v0, 0xde1c                   |         goto label_14;
                                                 |     }
    0x0000ddf0 lb v1, (v0)                       |     v1 = *(v0);
                                                 |     if (v1 == 0) {
    0x0000ddf4 beql v1, zero, 0xddfc             |         goto label_15;
                                                 |     }
    0x0000ddf8 move v0, zero                     |     v0 = 0;
                                                 |     do {
                                                 | label_15:
    0x0000ddfc lw a0, 0x101c(sp)                 |         a0 = *(var_101ch_2);
    0x0000de00 lw v1, (s0)                       |         v1 = *(s0);
    0x0000de04 lw ra, 0x102c(sp)                 |         ra = *(var_102ch_2);
                                                 |         if (a0 != v1) {
    0x0000de08 bne a0, v1, 0xde24                |             goto label_16;
                                                 |         }
    0x0000de0c lw s1, 0x1028(sp)                 |         s1 = *(var_1028h_2);
    0x0000de10 lw s0, 0x1024(sp)                 |         s0 = *(var_1024h_2);
    0x0000de14 addiu sp, sp, 0x1030              |         
    0x0000de18 jr ra                             |         return v0;
                                                 | label_14:
    0x0000de1c move v0, zero                     |         v0 = 0;
    0x0000de20 b 0xddfc                          |         
                                                 |     } while (1);
                                                 | label_16:
    0x0000de24 lw t9, -0x7cf0(gp)                |     t9 = sym.imp.__stack_chk_fail;
    0x0000de28 jalr t9                           |     t9 ();
    0x0000de2c nop                               |     
                                                 | }

[*] Function strcpy used 2 times pidstat