[*] Binary protection state of iwpriv

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


[*] Function sprintf tear down of iwpriv

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/bin/iwpriv @ 0x404bcc */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.iw_ether_ntop ()             | void iw_ether_ntop () {
    0x00404bcc lui gp, 2                     |     
    0x00404bd0 addiu gp, gp, -0x589c         |     
    0x00404bd4 addu gp, gp, t9               |     gp += t9;
    0x00404bd8 addiu sp, sp, -0x30           |     
    0x00404bdc sw ra, 0x2c(sp)               |     *(var_2ch) = ra;
    0x00404be0 sw gp, 0x20(sp)               |     *(var_20h) = gp;
    0x00404be4 lbu v0, 2(a0)                 |     v0 = *((a0 + 2));
    0x00404be8 lbu a2, (a0)                  |     a2 = *(a0);
    0x00404bec lbu a3, 1(a0)                 |     a3 = *((a0 + 1));
    0x00404bf0 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x00404bf4 lbu v0, 3(a0)                 |     v0 = *((a0 + 3));
    0x00404bf8 lw t9, -0x7f3c(gp)            |     t9 = sym.imp.sprintf
    0x00404bfc sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x00404c00 lbu v0, 4(a0)                 |     v0 = *((a0 + 4));
    0x00404c04 sw v0, 0x18(sp)               |     *(var_18h) = v0;
    0x00404c08 lbu v0, 5(a0)                 |     v0 = *((a0 + 5));
    0x00404c0c move a0, a1                   |     a0 = a1;
    0x00404c10 lw a1, -0x7fdc(gp)            |     a1 = *(gp);
    0x00404c14 sw v0, 0x1c(sp)               |     *(var_1ch) = v0;
                                             |     /* str._02X:_02X:_02X:_02X:_02X:_02X */
    0x00404c18 addiu a1, a1, 0x67f4          |     a1 += 0x67f4;
    0x00404c1c jalr t9                       |     t9 ();
    0x00404c20 lw ra, 0x2c(sp)               |     ra = *(var_2ch);
    0x00404c24 addiu sp, sp, 0x30            |     
    0x00404c28 jr ra                         |     return v0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/bin/iwpriv @ 0x404af0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.iw_mac_ntop ()               | void iw_mac_ntop () {
    0x00404af0 lui gp, 2                     |     
    0x00404af4 addiu gp, gp, -0x57c0         |     
    0x00404af8 addu gp, gp, t9               |     gp += t9;
    0x00404afc addiu v0, zero, 3             |     v0 = 3;
    0x00404b00 mul v0, a1, v0                |     __asm ("mul v0, a1, v0");
    0x00404b04 addiu sp, sp, -0x38           |     
    0x00404b08 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x00404b0c sw ra, 0x34(sp)               |     *(var_34h) = ra;
    0x00404b10 sw s5, 0x30(sp)               |     *(var_30h) = s5;
    0x00404b14 sw s4, 0x2c(sp)               |     *(var_2ch) = s4;
    0x00404b18 sw s3, 0x28(sp)               |     *(var_28h) = s3;
    0x00404b1c sw s2, 0x24(sp)               |     *(var_24h) = s2;
    0x00404b20 sw s1, 0x20(sp)               |     *(var_20h) = s1;
    0x00404b24 sw s0, 0x1c(sp)               |     *(var_1ch) = s0;
    0x00404b28 slt a3, a3, v0                |     a3 = (a3 < v0) ? 1 : 0;
    0x00404b2c move s4, a0                   |     s4 = a0;
                                             |     if (a3 != 0) {
    0x00404b30 bnez a3, 0x404ba0             |         goto label_0;
                                             |     }
    0x00404b34 move s3, a1                   |     s3 = a1;
    0x00404b38 lw a1, -0x7fdc(gp)            |     a1 = *(gp);
    0x00404b3c lw t9, -0x7f3c(gp)            |     t9 = sym.imp.sprintf
    0x00404b40 move s0, a2                   |     s0 = a2;
    0x00404b44 move a0, a2                   |     a0 = a2;
    0x00404b48 lbu a2, (s4)                  |     a2 = *(s4);
                                             |     /* str._02X */
    0x00404b4c addiu a1, a1, 0x67ec          |     a1 += 0x67ec;
    0x00404b50 addiu s2, s0, 2               |     s2 = s0 + 2;
    0x00404b54 jalr t9                       |     t9 ();
    0x00404b58 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x00404b5c addiu s1, zero, 1             |     s1 = 1;
    0x00404b60 lw s5, -0x7fdc(gp)            |     s5 = *(gp);
                                             |     /* esilref: ':&X' */
    0x00404b64 addiu s5, s5, 0x680c          |     s5 += 0x680c;
    0x00404b68 b 0x404b8c                    |     
                                             |     while (v0 != 0) {
    0x00404b6c lw t9, -0x7f3c(gp)            |         t9 = sym.imp.sprintf
    0x00404b70 lbu a2, (v0)                  |         a2 = *(v0);
    0x00404b74 move a0, s2                   |         a0 = s2;
    0x00404b78 move a1, s5                   |         a1 = s5;
    0x00404b7c jalr t9                       |         t9 ();
    0x00404b80 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00404b84 addiu s1, s1, 1               |         s1++;
    0x00404b88 addiu s2, s2, 3               |         s2 += 3;
    0x00404b8c slt v0, s1, s3                |         v0 = (s1 < s3) ? 1 : 0;
    0x00404b90 addu v0, s4, s1               |         v0 = s4 + s1;
    0x00404b94 bnez v0, 0x404b6c             |         
                                             |     }
    0x00404b98 lw ra, 0x34(sp)               |     ra = *(var_34h);
    0x00404b9c b 0x404ba8                    |     goto label_1;
                                             | label_0:
    0x00404ba0 move s0, zero                 |     s0 = 0;
    0x00404ba4 lw ra, 0x34(sp)               |     ra = *(var_34h);
                                             | label_1:
    0x00404ba8 move v0, s0                   |     v0 = s0;
    0x00404bac lw s5, 0x30(sp)               |     s5 = *(var_30h);
    0x00404bb0 lw s4, 0x2c(sp)               |     s4 = *(var_2ch);
    0x00404bb4 lw s3, 0x28(sp)               |     s3 = *(var_28h);
    0x00404bb8 lw s2, 0x24(sp)               |     s2 = *(var_24h);
    0x00404bbc lw s1, 0x20(sp)               |     s1 = *(var_20h);
    0x00404bc0 lw s0, 0x1c(sp)               |     s0 = *(var_1ch);
    0x00404bc4 addiu sp, sp, 0x38            |     
    0x00404bc8 jr ra                         |     return v0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/bin/iwpriv @ 0x403e40 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.iw_print_key ()              | void iw_print_key () {
    0x00403e40 lui gp, 2                     |     
    0x00403e44 addiu gp, gp, -0x4b10         |     
    0x00403e48 addu gp, gp, t9               |     gp += t9;
    0x00403e4c addiu v1, zero, 3             |     v1 = 3;
    0x00403e50 mul v1, a3, v1                |     __asm ("mul v1, a3, v1");
    0x00403e54 addiu sp, sp, -0x38           |     
    0x00403e58 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x00403e5c sw ra, 0x34(sp)               |     *(var_34h) = ra;
    0x00403e60 sw s6, 0x30(sp)               |     *(var_30h) = s6;
    0x00403e64 sw s5, 0x2c(sp)               |     *(var_2ch) = s5;
    0x00403e68 sw s4, 0x28(sp)               |     *(var_28h) = s4;
    0x00403e6c sw s3, 0x24(sp)               |     *(var_24h) = s3;
    0x00403e70 sw s2, 0x20(sp)               |     *(var_20h) = s2;
    0x00403e74 sw s1, 0x1c(sp)               |     *(var_1ch) = s1;
    0x00403e78 sw s0, 0x18(sp)               |     *(var_18h) = s0;
    0x00403e7c slt v1, a1, v1                |     v1 = (a1 < v1) ? 1 : 0;
    0x00403e80 lw v0, 0x48(sp)               |     v0 = *(arg_48h);
                                             |     if (v1 != 0) {
    0x00403e84 beqz v1, 0x403ebc             |         
    0x00403e88 lw a2, -0x7fdc(gp)            |         a2 = *(gp);
    0x00403e8c lw ra, 0x34(sp)               |         ra = *(var_34h);
    0x00403e90 lw s6, 0x30(sp)               |         s6 = *(var_30h);
    0x00403e94 lw s5, 0x2c(sp)               |         s5 = *(var_2ch);
    0x00403e98 lw s4, 0x28(sp)               |         s4 = *(var_28h);
    0x00403e9c lw s3, 0x24(sp)               |         s3 = *(var_24h);
    0x00403ea0 lw s2, 0x20(sp)               |         s2 = *(var_20h);
    0x00403ea4 lw s1, 0x1c(sp)               |         s1 = *(var_1ch);
    0x00403ea8 lw s0, 0x18(sp)               |         s0 = *(var_18h);
    0x00403eac lw t9, -0x7eec(gp)            |         t9 = sym.imp.snprintf;
                                             |         /* str._too_big_ */
    0x00403eb0 addiu a2, a2, 0x65f4          |         a2 += 0x65f4;
    0x00403eb4 addiu sp, sp, 0x38            |         
    0x00403eb8 jr t9                         |         t9 ();
                                             |     }
    0x00403ebc andi v0, v0, 0x800            |     v0 &= 0x800;
    0x00403ec0 move s0, a0                   |     s0 = a0;
    0x00403ec4 move s2, a3                   |     s2 = a3;
                                             |     if (v0 == 0) {
    0x00403ec8 beqz v0, 0x403f78             |         goto label_0;
                                             |     }
    0x00403ecc lw t9, -0x7ee8(gp)            |     t9 = sym._MIPS_STUBS_;
                                             |     if (a3 <= 0) {
    0x00403ed0 bgtz a3, 0x403f04             |         
    0x00403ed4 lw a1, -0x7fdc(gp)            |         a1 = *(gp);
    0x00403ed8 lw ra, 0x34(sp)               |         ra = *(var_34h);
    0x00403edc lw s6, 0x30(sp)               |         s6 = *(var_30h);
    0x00403ee0 lw s5, 0x2c(sp)               |         s5 = *(var_2ch);
    0x00403ee4 lw s4, 0x28(sp)               |         s4 = *(var_28h);
    0x00403ee8 lw s3, 0x24(sp)               |         s3 = *(var_24h);
    0x00403eec lw s2, 0x20(sp)               |         s2 = *(var_20h);
    0x00403ef0 lw s1, 0x1c(sp)               |         s1 = *(var_1ch);
    0x00403ef4 lw s0, 0x18(sp)               |         s0 = *(var_18h);
                                             |         /* esilref: 'on' */
    0x00403ef8 addiu a1, a1, 0x6600          |         a1 += 0x6600;
    0x00403efc addiu sp, sp, 0x38            |         
    0x00403f00 jr t9                         |         t9 ();
                                             |     }
    0x00403f04 lw s3, -0x7fdc(gp)            |     s3 = *(gp);
    0x00403f08 addiu s0, s0, 2               |     s0 += 2;
    0x00403f0c addiu s1, zero, 1             |     s1 = 1;
                                             |     /* esilref: '**' */
    0x00403f10 addiu a1, s3, 0x6604          |     a1 = s3 + 0x6604;
    0x00403f14 jalr t9                       |     t9 ();
    0x00403f18 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     /* esilref: '**' */
    0x00403f1c addiu s3, s3, 0x6604          |     s3 += 0x6604;
    0x00403f20 lw s4, -0x7fdc(gp)            |     s4 = *(gp);
    0x00403f24 addiu s4, s4, 0x6608          |     s4 += 0x6608;
    0x00403f28 b 0x403f68                    |     
                                             |     while (s1 != s2) {
    0x00403f2c lw t9, -0x7ee8(gp)            |         t9 = sym._MIPS_STUBS_;
                                             |         if (v0 == 0) {
    0x00403f30 bnez v0, 0x403f50             |             
    0x00403f34 move a0, s0                   |             a0 = s0;
    0x00403f38 move a1, s4                   |             a1 = s4;
    0x00403f3c jalr t9                       |             t9 ();
    0x00403f40 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x00403f44 addiu s5, s0, 1               |             s5 = s0 + 1;
    0x00403f48 move s0, s5                   |             s0 = s5;
    0x00403f4c lw t9, -0x7ee8(gp)            |             t9 = sym._MIPS_STUBS_;
                                             |         }
    0x00403f50 move a0, s0                   |         a0 = s0;
    0x00403f54 move a1, s3                   |         a1 = s3;
    0x00403f58 jalr t9                       |         t9 ();
    0x00403f5c lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00403f60 addiu s0, s0, 2               |         s0 += 2;
    0x00403f64 addiu s1, s1, 1               |         s1++;
    0x00403f68 andi v0, s1, 1                |         v0 = s1 & 1;
    0x00403f6c bne s1, s2, 0x403f2c          |         
                                             |     }
    0x00403f70 lw ra, 0x34(sp)               |     ra = *(var_34h);
    0x00403f74 b 0x404004                    |     goto label_1;
                                             | label_0:
    0x00403f78 lw s4, -0x7fdc(gp)            |     s4 = *(gp);
    0x00403f7c lw t9, -0x7f3c(gp)            |     t9 = sym.imp.sprintf
    0x00403f80 move s3, a2                   |     s3 = a2;
    0x00403f84 lbu a2, (a2)                  |     a2 = *(a2);
                                             |     /* str._.2X */
    0x00403f88 addiu a1, s4, 0x660c          |     a1 = s4 + 0x660c;
    0x00403f8c addiu s0, s0, 2               |     s0 += 2;
    0x00403f90 jalr t9                       |     t9 ();
    0x00403f94 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x00403f98 addiu s1, zero, 1             |     s1 = 1;
                                             |     /* str._.2X */
    0x00403f9c addiu s4, s4, 0x660c          |     s4 += 0x660c;
    0x00403fa0 lw s5, -0x7fdc(gp)            |     s5 = *(gp);
    0x00403fa4 addiu s5, s5, 0x6608          |     s5 += 0x6608;
    0x00403fa8 b 0x403ff4                    |     
                                             |     while (v0 != 0) {
    0x00403fac addu v0, s3, s1               |         v0 = s3 + s1;
                                             |         if (v0 == 0) {
    0x00403fb0 bnez v0, 0x403fd4             |             
    0x00403fb4 lw t9, -0x7ee8(gp)            |             t9 = sym._MIPS_STUBS_;
    0x00403fb8 move a0, s0                   |             a0 = s0;
    0x00403fbc move a1, s5                   |             a1 = s5;
    0x00403fc0 jalr t9                       |             t9 ();
    0x00403fc4 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x00403fc8 addiu s6, s0, 1               |             s6 = s0 + 1;
    0x00403fcc move s0, s6                   |             s0 = s6;
    0x00403fd0 addu v0, s3, s1               |             v0 = s3 + s1;
                                             |         }
    0x00403fd4 lw t9, -0x7f3c(gp)            |         t9 = sym.imp.sprintf
    0x00403fd8 lbu a2, (v0)                  |         a2 = *(v0);
    0x00403fdc move a0, s0                   |         a0 = s0;
    0x00403fe0 move a1, s4                   |         a1 = s4;
    0x00403fe4 jalr t9                       |         t9 ();
    0x00403fe8 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00403fec addiu s0, s0, 2               |         s0 += 2;
    0x00403ff0 addiu s1, s1, 1               |         s1++;
    0x00403ff4 slt v0, s1, s2                |         v0 = (s1 < s2) ? 1 : 0;
    0x00403ff8 andi v0, s1, 1                |         v0 = s1 & 1;
    0x00403ffc bnez v0, 0x403fac             |         
                                             |     }
    0x00404000 lw ra, 0x34(sp)               |     ra = *(var_34h);
                                             | label_1:
    0x00404004 lw s6, 0x30(sp)               |     s6 = *(var_30h);
    0x00404008 lw s5, 0x2c(sp)               |     s5 = *(var_2ch);
    0x0040400c lw s4, 0x28(sp)               |     s4 = *(var_28h);
    0x00404010 lw s3, 0x24(sp)               |     s3 = *(var_24h);
    0x00404014 lw s2, 0x20(sp)               |     s2 = *(var_20h);
    0x00404018 lw s1, 0x1c(sp)               |     s1 = *(var_1ch);
    0x0040401c lw s0, 0x18(sp)               |     s0 = *(var_18h);
    0x00404020 addiu sp, sp, 0x38            |     
    0x00404024 jr ra                         |     return v0;
                                             | }

[*] Function sprintf used 6 times iwpriv