[*] Binary protection state of iwgetid

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


[*] Function fprintf tear down of iwgetid

    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/bin/iwgetid @ 0x4045c4 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.iw_check_if_addr_type ()         | void iw_check_if_addr_type () {
    0x004045c4 lui gp, 2                         |     
    0x004045c8 addiu gp, gp, -0x5444             |     
    0x004045cc addu gp, gp, t9                   |     gp += t9;
    0x004045d0 lw t9, -0x7fe8(gp)                |     t9 = *(gp);
    0x004045d4 addiu sp, sp, -0x48               |     
    0x004045d8 addiu a2, zero, 0x10              |     a2 = 0x10;
    0x004045dc sw gp, 0x10(sp)                   |     *(var_10h) = gp;
    0x004045e0 sw ra, 0x44(sp)                   |     *(var_44h) = ra;
    0x004045e4 sw s1, 0x40(sp)                   |     *(var_40h) = s1;
    0x004045e8 sw s0, 0x3c(sp)                   |     *(var_3ch) = s0;
    0x004045ec move s1, a0                       |     s1 = a0;
    0x004045f0 addiu a0, sp, 0x18                |     a0 = sp + 0x18;
    0x004045f4 move s0, a1                       |     s0 = a1;
    0x004045f8 jalr t9                           |     t9 ();
    0x004045fc lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00404600 move a0, s1                       |     a0 = s1;
    0x00404604 ori a1, zero, 0x8915              |     a1 = 0x8915;
    0x00404608 lw t9, -0x7fe4(gp)                |     t9 = *(gp);
    0x0040460c addiu a2, sp, 0x18                |     a2 = sp + 0x18;
    0x00404610 jalr t9                           |     t9 ();
    0x00404614 lw gp, 0x10(sp)                   |     gp = *(var_10h);
                                                 |     if (v0 >= 0) {
    0x00404618 bltz v0, 0x40462c                 |         
    0x0040461c lhu a0, 0x28(sp)                  |         a0 = *(var_28h);
    0x00404620 addiu v1, zero, 2                 |         v1 = 2;
    0x00404624 move v0, zero                     |         v0 = 0;
                                                 |         if (a0 == v1) {
    0x00404628 beq a0, v1, 0x40464c              |             goto label_0;
                                                 |         }
                                                 |     }
    0x0040462c lw v0, -0x7fdc(gp)                |     v0 = *(gp);
    0x00404630 lw a1, -0x7fd8(gp)                |     a1 = *(gp);
    0x00404634 lw t9, -0x7f14(gp)                |     t9 = sym.imp.fprintf
    0x00404638 lw a0, (v0)                       |     a0 = *(v0);
                                                 |     /* str.Interface__s_doesnt_support_IP_addresses_n */
    0x0040463c addiu a1, a1, 0x64a0              |     a1 += 0x64a0;
    0x00404640 move a2, s0                       |     a2 = s0;
    0x00404644 jalr t9                           |     t9 ();
    0x00404648 addiu v0, zero, -1                |     v0 = -1;
                                                 | label_0:
    0x0040464c lw ra, 0x44(sp)                   |     ra = *(var_44h);
    0x00404650 lw s1, 0x40(sp)                   |     s1 = *(var_40h);
    0x00404654 lw s0, 0x3c(sp)                   |     s0 = *(var_3ch);
    0x00404658 addiu sp, sp, 0x48                |     
    0x0040465c jr ra                             |     return v0;
                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/bin/iwgetid @ 0x404518 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.iw_check_mac_addr_type ()        | void iw_check_mac_addr_type () {
    0x00404518 lui gp, 2                         |     
    0x0040451c addiu gp, gp, -0x5398             |     
    0x00404520 addu gp, gp, t9                   |     gp += t9;
    0x00404524 lw t9, -0x7fe8(gp)                |     t9 = *(gp);
    0x00404528 addiu sp, sp, -0x48               |     
    0x0040452c addiu a2, zero, 0x10              |     a2 = 0x10;
    0x00404530 sw gp, 0x10(sp)                   |     *(var_10h) = gp;
    0x00404534 sw ra, 0x44(sp)                   |     *(var_44h) = ra;
    0x00404538 sw s1, 0x40(sp)                   |     *(var_40h) = s1;
    0x0040453c sw s0, 0x3c(sp)                   |     *(var_3ch) = s0;
    0x00404540 move s1, a0                       |     s1 = a0;
    0x00404544 addiu a0, sp, 0x18                |     a0 = sp + 0x18;
    0x00404548 move s0, a1                       |     s0 = a1;
    0x0040454c jalr t9                           |     t9 ();
    0x00404550 lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00404554 move a0, s1                       |     a0 = s1;
    0x00404558 ori a1, zero, 0x8927              |     a1 = 0x8927;
    0x0040455c lw t9, -0x7fe4(gp)                |     t9 = *(gp);
    0x00404560 addiu a2, sp, 0x18                |     a2 = sp + 0x18;
    0x00404564 jalr t9                           |     t9 ();
    0x00404568 lw gp, 0x10(sp)                   |     gp = *(var_10h);
                                                 |     if (v0 >= 0) {
    0x0040456c bltz v0, 0x404588                 |         
    0x00404570 lhu v1, 0x28(sp)                  |         v1 = *(var_28h);
    0x00404574 addiu v0, zero, 1                 |         v0 = 1;
    0x00404578 addiu a0, zero, 0x321             |         a0 = 0x321;
                                                 |         if (v1 == v0) {
    0x0040457c beq v1, v0, 0x4045ac              |             goto label_0;
                                                 |         }
    0x00404580 move v0, zero                     |         v0 = 0;
                                                 |         if (v1 == a0) {
    0x00404584 beq v1, a0, 0x4045b0              |             goto label_1;
                                                 |         }
                                                 |     }
    0x00404588 lw v0, -0x7fdc(gp)                |     v0 = *(gp);
    0x0040458c lw a1, -0x7fd8(gp)                |     a1 = *(gp);
    0x00404590 lw t9, -0x7f14(gp)                |     t9 = sym.imp.fprintf
    0x00404594 lw a0, (v0)                       |     a0 = *(v0);
                                                 |     /* str.Interface__s_doesnt_support_MAC_addresses_n */
    0x00404598 addiu a1, a1, 0x6474              |     a1 += 0x6474;
    0x0040459c move a2, s0                       |     a2 = s0;
    0x004045a0 jalr t9                           |     t9 ();
    0x004045a4 addiu v0, zero, -1                |     v0 = -1;
    0x004045a8 b 0x4045b0                        |     goto label_1;
                                                 | label_0:
    0x004045ac move v0, zero                     |     v0 = 0;
                                                 | label_1:
    0x004045b0 lw ra, 0x44(sp)                   |     ra = *(var_44h);
    0x004045b4 lw s1, 0x40(sp)                   |     s1 = *(var_40h);
    0x004045b8 lw s0, 0x3c(sp)                   |     s0 = *(var_3ch);
    0x004045bc addiu sp, sp, 0x48                |     
    0x004045c0 jr ra                             |     return v0;
                                                 | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/bin/iwgetid @ 0x401a10 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.iw_enum_devices ()               | void iw_enum_devices () {
    0x00401a10 lui gp, 2                         |     
    0x00401a14 addiu gp, gp, -0x2890             |     
    0x00401a18 addu gp, gp, t9                   |     gp += t9;
    0x00401a1c addiu sp, sp, -0x460              |     
    0x00401a20 sw s3, 0x444(sp)                  |     *(var_444h) = s3;
    0x00401a24 sw s1, 0x43c(sp)                  |     *(var_43ch) = s1;
    0x00401a28 move s3, a1                       |     s3 = a1;
    0x00401a2c move s1, a0                       |     s1 = a0;
    0x00401a30 lw a1, -0x7fd8(gp)                |     a1 = *(gp);
    0x00401a34 lw a0, -0x7fd8(gp)                |     a0 = *(gp);
    0x00401a38 lw t9, -0x7f38(gp)                |     t9 = sym.imp.fopen;
    0x00401a3c sw gp, 0x10(sp)                   |     *(var_10h) = gp;
    0x00401a40 sw s5, 0x44c(sp)                  |     *(var_44ch) = s5;
    0x00401a44 sw s4, 0x448(sp)                  |     *(var_448h) = s4;
    0x00401a48 sw s2, 0x440(sp)                  |     *(var_440h) = s2;
    0x00401a4c sw ra, 0x45c(sp)                  |     *(var_45ch) = ra;
    0x00401a50 sw fp, 0x458(sp)                  |     *(var_458h) = fp;
    0x00401a54 sw s7, 0x454(sp)                  |     *(var_454h) = s7;
    0x00401a58 sw s6, 0x450(sp)                  |     *(var_450h) = s6;
    0x00401a5c sw s0, 0x438(sp)                  |     *(var_438h) = s0;
                                                 |     /* str._proc_net_dev */
    0x00401a60 addiu a0, a0, 0x5de0              |     a0 += 0x5de0;
    0x00401a64 addiu a1, a1, 0x5df0              |     a1 += 0x5df0;
    0x00401a68 move s4, a2                       |     s4 = a2;
    0x00401a6c move s5, a3                       |     s5 = a3;
    0x00401a70 jalr t9                           |     t9 ();
    0x00401a74 addiu s2, sp, 0x18                |     s2 = sp + 0x18;
    0x00401a78 lw gp, 0x10(sp)                   |     gp = *(var_10h);
                                                 |     if (v0 == 0) {
    0x00401a7c beqz v0, 0x401ba8                 |         goto label_2;
                                                 |     }
    0x00401a80 lw t9, -0x7f00(gp)                |     t9 = sym.imp.fgets;
    0x00401a84 move a0, s2                       |     a0 = s2;
    0x00401a88 addiu a1, zero, 0x400             |     a1 = 0x400;
    0x00401a8c move a2, v0                       |     a2 = v0;
    0x00401a90 move s0, v0                       |     s0 = v0;
    0x00401a94 jalr t9                           |     t9 ();
    0x00401a98 lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00401a9c move a0, s2                       |     a0 = s2;
    0x00401aa0 addiu a1, zero, 0x400             |     a1 = 0x400;
    0x00401aa4 lw t9, -0x7f00(gp)                |     t9 = sym.imp.fgets;
    0x00401aa8 move a2, s0                       |     a2 = s0;
    0x00401aac jalr t9                           |     t9 ();
    0x00401ab0 lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00401ab4 lw s7, -0x7fd8(gp)                |     s7 = *(gp);
    0x00401ab8 lw fp, -0x7fd0(gp)                |     fp = *(gp);
    0x00401abc lw s6, -0x7fdc(gp)                |     s6 = *(gp);
                                                 |     /* str.Cannot_parse__proc_net_dev_n */
    0x00401ac0 addiu s7, s7, 0x5e08              |     s7 += 0x5e08;
    0x00401ac4 b 0x401b78                        |     goto label_1;
                                                 | label_0:
    0x00401ac8 lb v0, 0x18(sp)                   |     v0 = *(var_18h);
    0x00401acc lw t9, -0x7f00(gp)                |     t9 = sym.imp.fgets;
                                                 |     if (v0 == 0) {
    0x00401ad0 beqz v0, 0x401b7c                 |         goto label_3;
                                                 |     }
    0x00401ad4 lb v0, 0x19(sp)                   |     v0 = *(var_19h);
                                                 |     if (v0 == 0) {
    0x00401ad8 beql v0, zero, 0x401b80           |         goto label_4;
                                                 |     }
    0x00401adc move a0, s2                       |     a0 = s2;
    0x00401ae0 lw a0, (fp)                       |     a0 = *(fp);
    0x00401ae4 move v1, s2                       |     v1 = s2;
                                                 |     do {
    0x00401ae8 lb v0, (v1)                       |         v0 = *(v1);
    0x00401aec sll v0, v0, 1                     |         v0 <<= 1;
    0x00401af0 addu v0, a0, v0                   |         v0 = a0 + v0;
    0x00401af4 lhu v0, (v0)                      |         v0 = *(v0);
    0x00401af8 andi v0, v0, 0x20                 |         v0 &= 0x20;
    0x00401afc andi v0, v0, 0xffff               |         v0 &= 0xffff;
    0x00401b00 addiu v1, v1, 1                   |         v1++;
    0x00401b04 bnel v0, zero, 0x401ae8           |         
                                                 |     } while (v0 == 0);
    0x00401b08 lw t9, -0x7f10(gp)                |     t9 = sym.imp.strrchr;
    0x00401b0c move a0, v1                       |     a0 = v1;
    0x00401b10 sw v1, 0x430(sp)                  |     *(var_430h) = v1;
    0x00401b14 addiu a1, zero, 0x3a              |     a1 = 0x3a;
    0x00401b18 jalr t9                           |     t9 ();
    0x00401b1c lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00401b20 lw v1, 0x430(sp)                  |     v1 = *(var_430h);
                                                 |     if (v0 == 0) {
    0x00401b24 beqz v0, 0x401c50                 |         goto label_5;
                                                 |     }
    0x00401b28 subu a3, v0, v1                   |     __asm ("subu a3, v0, v1");
    0x00401b2c slti v0, a3, 0x11                 |     v0 = (a3 < 0x11) ? 1 : 0;
    0x00401b30 lw t9, -0x7fcc(gp)                |     t9 = *(gp);
                                                 |     if (v0 == 0) {
    0x00401b34 beqz v0, 0x401c54                 |         goto label_6;
                                                 |     }
    0x00401b38 lw t9, -0x7f04(gp)                |     t9 = sym.imp.memcpy;
    0x00401b3c move a1, v1                       |     a1 = v1;
    0x00401b40 move a2, a3                       |     a2 = a3;
    0x00401b44 addiu a0, sp, 0x418               |     a0 = sp + 0x418;
    0x00401b48 sw a3, 0x430(sp)                  |     *(var_430h) = a3;
    0x00401b4c jalr t9                           |     t9 ();
    0x00401b50 lw a3, 0x430(sp)                  |     a3 = *(var_430h);
    0x00401b54 move a0, s1                       |     a0 = s1;
    0x00401b58 addiu a1, sp, 0x418               |     a1 = sp + 0x418;
    0x00401b5c addu a3, s2, a3                   |     a3 = s2 + a3;
    0x00401b60 sb zero, 0x400(a3)                |     *(var_418h) = 0;
    0x00401b64 move a2, s4                       |     a2 = s4;
    0x00401b68 move t9, s3                       |     t9 = s3;
    0x00401b6c move a3, s5                       |     a3 = s5;
    0x00401b70 jalr t9                           |     t9 ();
    0x00401b74 lw gp, 0x10(sp)                   |     gp = *(var_10h);
                                                 | label_1:
    0x00401b78 lw t9, -0x7f00(gp)                |     t9 = sym.imp.fgets;
                                                 | label_3:
    0x00401b7c move a0, s2                       |     a0 = s2;
                                                 | label_4:
    0x00401b80 addiu a1, zero, 0x400             |     a1 = 0x400;
    0x00401b84 move a2, s0                       |     a2 = s0;
    0x00401b88 jalr t9                           |     t9 ();
    0x00401b8c lw gp, 0x10(sp)                   |     gp = *(var_10h);
                                                 |     if (v0 != 0) {
    0x00401b90 bnez v0, 0x401ac8                 |         goto label_0;
                                                 |     }
    0x00401b94 lw t9, -0x7f3c(gp)                |     t9 = sym.imp.fclose;
    0x00401b98 move a0, s0                       |     a0 = s0;
    0x00401b9c jalr t9                           |     t9 ();
    0x00401ba0 b 0x401c0c                        |     goto label_7;
    0x00401ba4 nop                               |     
                                                 | label_2:
    0x00401ba8 lw t9, -0x7fe4(gp)                |     t9 = *(gp);
    0x00401bac addiu v0, zero, 0x400             |     v0 = 0x400;
    0x00401bb0 sw v0, 0x418(sp)                  |     *(var_418h) = v0;
    0x00401bb4 sw s2, 0x41c(sp)                  |     *(var_41ch) = s2;
    0x00401bb8 move a0, s1                       |     a0 = s1;
    0x00401bbc ori a1, zero, 0x8912              |     a1 = 0x8912;
    0x00401bc0 addiu a2, sp, 0x418               |     a2 = sp + 0x418;
    0x00401bc4 jalr t9                           |     t9 ();
    0x00401bc8 lw gp, 0x10(sp)                   |     gp = *(var_10h);
                                                 |     if (v0 < 0) {
    0x00401bcc bgez v0, 0x401c14                 |         
    0x00401bd0 lw t9, -0x7f58(gp)                |         t9 = sym.imp.__errno_location;
    0x00401bd4 lw v0, -0x7fdc(gp)                |         v0 = *(gp);
    0x00401bd8 lw s0, (v0)                       |         s0 = *(v0);
    0x00401bdc jalr t9                           |         t9 ();
    0x00401be0 lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x00401be4 lw t9, -0x7eec(gp)                |         t9 = sym.imp.strerror;
    0x00401be8 lw a0, (v0)                       |         a0 = *(v0);
    0x00401bec jalr t9                           |         t9 ();
    0x00401bf0 lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x00401bf4 move a0, s0                       |         a0 = s0;
    0x00401bf8 move a2, v0                       |         a2 = v0;
    0x00401bfc lw a1, -0x7fd8(gp)                |         a1 = *(gp);
    0x00401c00 lw t9, -0x7f14(gp)                |         t9 = sym.imp.fprintf
                                                 |         /* str.SIOCGIFCONF:__s_n */
    0x00401c04 addiu a1, a1, 0x5df4              |         a1 += 0x5df4;
    0x00401c08 jalr t9                           |         t9 ();
                                                 | label_7:
    0x00401c0c lw ra, 0x45c(sp)                  |         ra = *(var_45ch);
    0x00401c10 b 0x401c68                        |         goto label_8;
                                                 |     }
    0x00401c14 lw s0, 0x418(sp)                  |     s0 = *(var_418h);
    0x00401c18 lw s2, 0x41c(sp)                  |     s2 = *(var_41ch);
    0x00401c1c srl s0, s0, 5                     |     s0 >>= 5;
    0x00401c20 b 0x401c3c                        |     
                                                 |     while (s0 >= 0) {
    0x00401c24 move a0, s1                       |         a0 = s1;
    0x00401c28 move a2, s4                       |         a2 = s4;
    0x00401c2c move a3, s5                       |         a3 = s5;
    0x00401c30 move t9, s3                       |         t9 = s3;
    0x00401c34 addiu s2, s2, 0x20                |         s2 += 0x20;
    0x00401c38 jalr t9                           |         t9 ();
    0x00401c3c addiu s0, s0, -1                  |         s0 += -1;
    0x00401c40 move a1, s2                       |         a1 = s2;
    0x00401c44 bgez s0, 0x401c24                 |         
                                                 |     }
    0x00401c48 lw ra, 0x45c(sp)                  |     ra = *(var_45ch);
    0x00401c4c b 0x401c68                        |     goto label_8;
                                                 | label_5:
    0x00401c50 lw t9, -0x7fcc(gp)                |     t9 = *(gp);
                                                 | label_6:
    0x00401c54 lw a1, (s6)                       |     a1 = *(s6);
    0x00401c58 move a0, s7                       |     a0 = s7;
    0x00401c5c jalr t9                           |     t9 ();
    0x00401c60 lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00401c64 b 0x401b78                        |     goto label_1;
                                                 | label_8:
    0x00401c68 lw fp, 0x458(sp)                  |     fp = *(var_458h);
    0x00401c6c lw s7, 0x454(sp)                  |     s7 = *(var_454h);
    0x00401c70 lw s6, 0x450(sp)                  |     s6 = *(var_450h);
    0x00401c74 lw s5, 0x44c(sp)                  |     s5 = *(var_44ch);
    0x00401c78 lw s4, 0x448(sp)                  |     s4 = *(var_448h);
    0x00401c7c lw s3, 0x444(sp)                  |     s3 = *(var_444h);
    0x00401c80 lw s2, 0x440(sp)                  |     s2 = *(var_440h);
    0x00401c84 lw s1, 0x43c(sp)                  |     s1 = *(var_43ch);
    0x00401c88 lw s0, 0x438(sp)                  |     s0 = *(var_438h);
    0x00401c8c addiu sp, sp, 0x460               |     
    0x00401c90 jr ra                             |     return v0;
                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/bin/iwgetid @ 0x402210 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.iw_get_priv_info ()          | void iw_get_priv_info () {
    0x00402210 lui gp, 2                     |     
    0x00402214 addiu gp, gp, -0x3090         |     
    0x00402218 addu gp, gp, t9               |     gp += t9;
    0x0040221c addiu sp, sp, -0x60           |     
    0x00402220 sw s7, 0x58(sp)               |     *(var_58h) = s7;
    0x00402224 sw s6, 0x54(sp)               |     *(var_54h) = s6;
    0x00402228 sw s5, 0x50(sp)               |     *(var_50h) = s5;
    0x0040222c sw s4, 0x4c(sp)               |     *(var_4ch) = s4;
    0x00402230 sw s3, 0x48(sp)               |     *(var_48h) = s3;
    0x00402234 sw s1, 0x40(sp)               |     *(var_40h) = s1;
    0x00402238 sw s0, 0x3c(sp)               |     *(var_3ch) = s0;
    0x0040223c sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x00402240 sw ra, 0x5c(sp)               |     *(var_5ch) = ra;
    0x00402244 sw s2, 0x44(sp)               |     *(var_44h) = s2;
    0x00402248 move s4, a0                   |     s4 = a0;
    0x0040224c move s5, a1                   |     s5 = a1;
    0x00402250 move s3, a2                   |     s3 = a2;
    0x00402254 addiu s0, zero, 0x10          |     s0 = 0x10;
    0x00402258 move s1, zero                 |     s1 = 0;
    0x0040225c addiu s6, zero, 0x18          |     s6 = 0x18;
    0x00402260 addiu s7, zero, 7             |     s7 = 7;
                                             |     do {
    0x00402264 mul a1, s0, s6                |         __asm ("mul a1, s0, s6");
    0x00402268 lw t9, -0x7f28(gp)            |         t9 = sym.imp.realloc;
    0x0040226c move a0, s1                   |         a0 = s1;
    0x00402270 jalr t9                       |         t9 ();
    0x00402274 move s2, v0                   |         s2 = v0;
    0x00402278 lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |         if (v0 == 0) {
    0x0040227c bnez v0, 0x4022b0             |             
    0x00402280 lw v0, -0x7fdc(gp)            |             v0 = *(gp);
    0x00402284 lw a1, -0x7fd8(gp)            |             a1 = *(gp);
    0x00402288 lw a2, -0x7fd8(gp)            |             a2 = *(gp);
    0x0040228c lw t9, -0x7f14(gp)            |             t9 = sym.imp.fprintf
    0x00402290 lw a0, (v0)                   |             a0 = *(v0);
                                             |             /* str._s:_Allocation_failed_n */
    0x00402294 addiu a1, a1, 0x6120          |             a1 += 0x6120;
                                             |             /* obj.__FUNCTION__.5072 */
    0x00402298 addiu a2, a2, 0x6980          |             a2 += 0x6980;
    0x0040229c jalr t9                       |             t9 ();
    0x004022a0 lw gp, 0x10(sp)               |             gp = *(var_10h);
                                             |             if (s1 == 0) {
    0x004022a4 beqz s1, 0x402348             |                 goto label_0;
                                             |             }
    0x004022a8 lw t9, -0x7f60(gp)            |             t9 = sym.imp.free;
    0x004022ac b 0x402340                    |             goto label_1;
                                             |         }
    0x004022b0 lw t9, -0x7fe8(gp)            |         t9 = *(gp);
    0x004022b4 addiu a0, sp, 0x18            |         a0 = sp + 0x18;
    0x004022b8 move a1, s5                   |         a1 = s5;
    0x004022bc addiu a2, zero, 0x10          |         a2 = 0x10;
    0x004022c0 sw v0, 0x28(sp)               |         *(var_28h) = v0;
    0x004022c4 sh s0, 0x2c(sp)               |         *(var_2ch) = s0;
    0x004022c8 sh zero, 0x2e(sp)             |         *(var_2eh) = 0;
    0x004022cc jalr t9                       |         t9 ();
    0x004022d0 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x004022d4 move a0, s4                   |         a0 = s4;
    0x004022d8 ori a1, zero, 0x8b0d          |         a1 = 0x8b0d;
    0x004022dc lw t9, -0x7fe4(gp)            |         t9 = *(gp);
    0x004022e0 addiu a2, sp, 0x18            |         a2 = sp + 0x18;
    0x004022e4 jalr t9                       |         t9 ();
    0x004022e8 lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |         if (v0 >= 0) {
    0x004022ec bltz v0, 0x4022fc             |             
    0x004022f0 sw s2, (s3)                   |             *(s3) = s2;
    0x004022f4 lhu v0, 0x2c(sp)              |             v0 = *(var_2ch);
    0x004022f8 b 0x402350                    |             goto label_2;
                                             |         }
    0x004022fc lw t9, -0x7f58(gp)            |         t9 = sym.imp.__errno_location;
    0x00402300 jalr t9                       |         t9 ();
    0x00402304 nop                           |         
    0x00402308 lw v0, (v0)                   |         v0 = *(v0);
    0x0040230c lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |         if (v0 != s7) {
    0x00402310 bne v0, s7, 0x402338          |             goto label_3;
                                             |         }
    0x00402314 lhu v0, 0x2c(sp)              |         v0 = *(var_2ch);
    0x00402318 slt v1, s0, v0                |         v1 = (s0 < v0) ? 1 : 0;
    0x0040231c sll s0, s0, 1                 |         s0 <<= 1;
                                             |         if (v1 == 0) {
    0x00402320 movn s0, v0, v1               |             s0 = v0;
                                             |         }
    0x00402324 slti v0, s0, 0x3e8            |         v0 = (s0 < 0x3e8) ? 1 : 0;
    0x00402328 move s1, s2                   |         s1 = s2;
    0x0040232c bnez v0, 0x402264             |         
                                             |     } while (v0 != 0);
    0x00402330 lw t9, -0x7f60(gp)            |     t9 = sym.imp.free;
    0x00402334 b 0x402340                    |     goto label_1;
                                             | label_3:
    0x00402338 move s1, s2                   |     s1 = s2;
    0x0040233c lw t9, -0x7f60(gp)            |     t9 = sym.imp.free;
                                             | label_1:
    0x00402340 move a0, s1                   |     a0 = s1;
    0x00402344 jalr t9                       |     t9 ();
                                             | label_0:
    0x00402348 sw zero, (s3)                 |     *(s3) = 0;
    0x0040234c addiu v0, zero, -1            |     v0 = -1;
                                             | label_2:
    0x00402350 lw ra, 0x5c(sp)               |     ra = *(var_5ch);
    0x00402354 lw s7, 0x58(sp)               |     s7 = *(var_58h);
    0x00402358 lw s6, 0x54(sp)               |     s6 = *(var_54h);
    0x0040235c lw s5, 0x50(sp)               |     s5 = *(var_50h);
    0x00402360 lw s4, 0x4c(sp)               |     s4 = *(var_4ch);
    0x00402364 lw s3, 0x48(sp)               |     s3 = *(var_48h);
    0x00402368 lw s2, 0x44(sp)               |     s2 = *(var_44h);
    0x0040236c lw s1, 0x40(sp)               |     s1 = *(var_40h);
    0x00402370 lw s0, 0x3c(sp)               |     s0 = *(var_3ch);
    0x00402374 addiu sp, sp, 0x60            |     
    0x00402378 jr ra                         |     return v0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/bin/iwgetid @ 0x401ef4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.iw_get_range_info ()         | void iw_get_range_info () {
    0x00401ef4 lui gp, 2                     |     
    0x00401ef8 addiu gp, gp, -0x2d74         |     
    0x00401efc addu gp, gp, t9               |     gp += t9;
    0x00401f00 addiu sp, sp, -0x4e8          |     
    0x00401f04 lw t9, -0x7fe0(gp)            |     t9 = *(gp);
    0x00401f08 sw s2, 0x4dc(sp)              |     *(var_4dch) = s2;
    0x00401f0c addiu s2, sp, 0x18            |     s2 = sp + 0x18;
    0x00401f10 sw ra, 0x4e4(sp)              |     *(var_4e4h) = ra;
    0x00401f14 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x00401f18 sw s3, 0x4e0(sp)              |     *(var_4e0h) = s3;
    0x00401f1c sw s1, 0x4d8(sp)              |     *(var_4d8h) = s1;
    0x00401f20 sw s0, 0x4d4(sp)              |     *(var_4d4h) = s0;
    0x00401f24 move s3, a0                   |     s3 = a0;
    0x00401f28 move s1, a1                   |     s1 = a1;
    0x00401f2c move a0, s2                   |     a0 = s2;
    0x00401f30 move a1, zero                 |     a1 = 0;
    0x00401f34 move s0, a2                   |     s0 = a2;
    0x00401f38 addiu a2, zero, 0x498         |     a2 = 0x498;
    0x00401f3c jalr t9                       |     t9 ();
    0x00401f40 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x00401f44 addiu v0, zero, 0x498         |     v0 = 0x498;
    0x00401f48 addiu a0, sp, 0x4b0           |     a0 = sp + 0x4b0;
    0x00401f4c lw t9, -0x7fe8(gp)            |     t9 = *(gp);
    0x00401f50 move a1, s1                   |     a1 = s1;
    0x00401f54 addiu a2, zero, 0x10          |     a2 = 0x10;
    0x00401f58 sw s2, 0x4c0(sp)              |     *(var_4c0h) = s2;
    0x00401f5c sh v0, 0x4c4(sp)              |     *(var_4c4h) = v0;
    0x00401f60 sh zero, 0x4c6(sp)            |     *(var_4c6h) = 0;
    0x00401f64 jalr t9                       |     t9 ();
    0x00401f68 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x00401f6c move a0, s3                   |     a0 = s3;
    0x00401f70 ori a1, zero, 0x8b0b          |     a1 = 0x8b0b;
    0x00401f74 lw t9, -0x7fe4(gp)            |     t9 = *(gp);
    0x00401f78 addiu a2, sp, 0x4b0           |     a2 = sp + 0x4b0;
    0x00401f7c jalr t9                       |     t9 ();
    0x00401f80 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 >= 0) {
    0x00401f84 bltz v0, 0x4021f0             |         
    0x00401f88 lhu v0, 0x4c4(sp)             |         v0 = *(var_4c4h);
    0x00401f8c sltiu v0, v0, 0x12c           |         v0 = (v0 < 0x12c) ? 1 : 0;
    0x00401f90 lbu v0, 0x130(sp)             |         v0 = *(var_130h);
                                             |         if (v0 != 0) {
    0x00401f94 beqz v0, 0x401fa4             |             
    0x00401f98 addiu v0, zero, 9             |             v0 = 9;
    0x00401f9c sb v0, 0x130(sp)              |             *(var_130h) = v0;
    0x00401fa0 lbu v0, 0x130(sp)             |             v0 = *(var_130h);
                                             |         }
    0x00401fa4 sltiu v0, v0, 0x10            |         v0 = (v0 < 0x10) ? 1 : 0;
    0x00401fa8 move a0, s0                   |         a0 = s0;
                                             |         if (v0 == 0) {
    0x00401fac bnez v0, 0x401fbc             |             
    0x00401fb0 addiu a1, sp, 0x18            |             a1 = sp + 0x18;
    0x00401fb4 addiu a2, zero, 0x24c         |             a2 = 0x24c;
    0x00401fb8 b 0x402084                    |             
                                             |         } else {
    0x00401fbc lw t9, -0x7fe0(gp)            |             t9 = *(gp);
    0x00401fc0 move a1, zero                 |             a1 = 0;
    0x00401fc4 addiu a2, zero, 0x24c         |             a2 = 0x24c;
    0x00401fc8 jalr t9                       |             t9 ();
    0x00401fcc lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x00401fd0 move a0, s0                   |             a0 = s0;
    0x00401fd4 addiu a1, sp, 0x18            |             a1 = sp + 0x18;
    0x00401fd8 lw t9, -0x7f04(gp)            |             t9 = sym.imp.memcpy;
    0x00401fdc addiu a2, zero, 0xc           |             a2 = 0xc;
    0x00401fe0 jalr t9                       |             t9 ();
    0x00401fe4 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x00401fe8 addiu a0, s0, 0x130           |             a0 = s0 + 0x130;
    0x00401fec addiu a1, sp, 0x24            |             a1 = sp + 0x24;
    0x00401ff0 lw t9, -0x7f04(gp)            |             t9 = sym.imp.memcpy;
    0x00401ff4 addiu a2, zero, 0x84          |             a2 = 0x84;
    0x00401ff8 jalr t9                       |             t9 ();
    0x00401ffc lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x00402000 addiu a0, s0, 0x28            |             a0 = s0 + 0x28;
    0x00402004 addiu a1, sp, 0xa8            |             a1 = sp + 0xa8;
    0x00402008 lw t9, -0x7f04(gp)            |             t9 = sym.imp.memcpy;
    0x0040200c addiu a2, zero, 8             |             a2 = 8;
    0x00402010 jalr t9                       |             t9 ();
    0x00402014 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x00402018 addiu a0, s0, 0x34            |             a0 = s0 + 0x34;
    0x0040201c addiu a1, sp, 0xb0            |             a1 = sp + 0xb0;
    0x00402020 lw t9, -0x7f04(gp)            |             t9 = sym.imp.memcpy;
    0x00402024 addiu a2, zero, 0x24          |             a2 = 0x24;
    0x00402028 jalr t9                       |             t9 ();
    0x0040202c lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x00402030 addiu a0, s0, 0xb8            |             a0 = s0 + 0xb8;
    0x00402034 addiu a1, sp, 0xd4            |             a1 = sp + 0xd4;
    0x00402038 lw t9, -0x7f04(gp)            |             t9 = sym.imp.memcpy;
    0x0040203c addiu a2, zero, 0x38          |             a2 = 0x38;
    0x00402040 jalr t9                       |             t9 ();
    0x00402044 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x00402048 addiu a0, s0, 0xf2            |             a0 = s0 + 0xf2;
    0x0040204c addiu a1, sp, 0x10c           |             a1 = sp + 0x10c;
    0x00402050 lw t9, -0x7f04(gp)            |             t9 = sym.imp.memcpy;
    0x00402054 addiu a2, zero, 4             |             a2 = 4;
    0x00402058 jalr t9                       |             t9 ();
    0x0040205c lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x00402060 addiu a0, s0, 0xf8            |             a0 = s0 + 0xf8;
    0x00402064 addiu a1, sp, 0x110           |             a1 = sp + 0x110;
    0x00402068 lw t9, -0x7f04(gp)            |             t9 = sym.imp.memcpy;
    0x0040206c addiu a2, zero, 0x38          |             a2 = 0x38;
    0x00402070 jalr t9                       |             t9 ();
    0x00402074 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x00402078 addiu a0, s0, 0x30            |             a0 = s0 + 0x30;
    0x0040207c addiu a1, sp, 0x148           |             a1 = sp + 0x148;
    0x00402080 addiu a2, zero, 4             |             a2 = 4;
                                             |         }
    0x00402084 lw t9, -0x7f04(gp)            |         t9 = sym.imp.memcpy;
    0x00402088 jalr t9                       |         t9 ();
    0x0040208c nop                           |         
    0x00402090 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00402094 lw v0, -0x7fb4(gp)            |         v0 = *(gp);
    0x00402098 lw v0, (v0)                   |         v0 = *(v0);
    0x0040209c lw v0, -0x7fb4(gp)            |         v0 = *(gp);
                                             |         if (v0 == 0) {
    0x004020a0 bnez v0, 0x4021e0             |             
    0x004020a4 lbu v0, 0x118(s0)             |             v0 = *((s0 + 280));
    0x004020a8 sltiu v0, v0, 0xb             |             v0 = (v0 < 0xb) ? 1 : 0;
                                             |             if (v0 != 0) {
    0x004020ac beql v0, zero, 0x402108       |                 
    0x004020b0 lbu a3, 0x118(s0)             |                 a3 = *((s0 + 280));
    0x004020b4 lw s2, -0x7fdc(gp)            |                 s2 = *(gp);
    0x004020b8 lw a1, -0x7fd8(gp)            |                 a1 = *(gp);
    0x004020bc lw t9, -0x7f14(gp)            |                 t9 = sym.imp.fprintf
    0x004020c0 lw a0, (s2)                   |                 a0 = *(s2);
    0x004020c4 move a2, s1                   |                 a2 = s1;
                                             |                 /* str.Warning:_Driver_for_device__s_has_been_compiled_with_an_ancient_version_n */
    0x004020c8 addiu a1, a1, 0x5f2c          |                 a1 += 0x5f2c;
    0x004020cc jalr t9                       |                 t9 ();
    0x004020d0 lw gp, 0x10(sp)               |                 gp = *(var_10h);
    0x004020d4 lw a1, (s2)                   |                 a1 = *(s2);
    0x004020d8 lw a0, -0x7fd8(gp)            |                 a0 = *(gp);
    0x004020dc lw t9, -0x7fcc(gp)            |                 t9 = *(gp);
                                             |                 /* str.of_Wireless_Extension__while_this_program_support_version_11_and_later._n */
    0x004020e0 addiu a0, a0, 0x5f78          |                 a0 += 0x5f78;
    0x004020e4 jalr t9                       |                 t9 ();
    0x004020e8 lw gp, 0x10(sp)               |                 gp = *(var_10h);
    0x004020ec lw a1, (s2)                   |                 a1 = *(s2);
    0x004020f0 lw a0, -0x7fd8(gp)            |                 a0 = *(gp);
    0x004020f4 lw t9, -0x7fcc(gp)            |                 t9 = *(gp);
                                             |                 /* str.Some_things_may_be_broken..._n_n */
    0x004020f8 addiu a0, a0, 0x5fc4          |                 a0 += 0x5fc4;
    0x004020fc jalr t9                       |                 t9 ();
    0x00402100 lw gp, 0x10(sp)               |                 gp = *(var_10h);
    0x00402104 lbu a3, 0x118(s0)             |                 a3 = *((s0 + 280));
                                             |             }
    0x00402108 sltiu v0, a3, 0x17            |             v0 = (a3 < 0x17) ? 1 : 0;
    0x0040210c lbu v0, 0x118(s0)             |             v0 = *((s0 + 280));
                                             |             if (v0 != 0) {
    0x00402110 bnel v0, zero, 0x40216c       |                 
    0x00402114 lw s2, -0x7fdc(gp)            |                 s2 = *(gp);
    0x00402118 lw a1, -0x7fd8(gp)            |                 a1 = *(gp);
    0x0040211c lw t9, -0x7f14(gp)            |                 t9 = sym.imp.fprintf
    0x00402120 lw a0, (s2)                   |                 a0 = *(s2);
                                             |                 /* str.Warning:_Driver_for_device__s_has_been_compiled_with_version__d_n */
    0x00402124 addiu a1, a1, 0x5fe4          |                 a1 += 0x5fe4;
    0x00402128 move a2, s1                   |                 a2 = s1;
    0x0040212c jalr t9                       |                 t9 ();
    0x00402130 lw gp, 0x10(sp)               |                 gp = *(var_10h);
    0x00402134 lw a0, (s2)                   |                 a0 = *(s2);
    0x00402138 addiu a2, zero, 0x16          |                 a2 = 0x16;
    0x0040213c lw a1, -0x7fd8(gp)            |                 a1 = *(gp);
    0x00402140 lw t9, -0x7f14(gp)            |                 t9 = sym.imp.fprintf
                                             |                 /* str.of_Wireless_Extension__while_this_program_supports_up_to_version__d._n */
    0x00402144 addiu a1, a1, 0x6028          |                 a1 += 0x6028;
    0x00402148 jalr t9                       |                 t9 ();
    0x0040214c lw gp, 0x10(sp)               |                 gp = *(var_10h);
    0x00402150 lw a1, (s2)                   |                 a1 = *(s2);
    0x00402154 lw a0, -0x7fd8(gp)            |                 a0 = *(gp);
    0x00402158 lw t9, -0x7fcc(gp)            |                 t9 = *(gp);
                                             |                 /* str.Some_things_may_be_broken..._n_n */
    0x0040215c addiu a0, a0, 0x5fc4          |                 a0 += 0x5fc4;
    0x00402160 jalr t9                       |                 t9 ();
    0x00402164 lw gp, 0x10(sp)               |                 gp = *(var_10h);
    0x00402168 lbu v0, 0x118(s0)             |                 v0 = *((s0 + 280));
                                             |             }
    0x0040216c sltiu v1, v0, 0xb             |             v1 = (v0 < 0xb) ? 1 : 0;
    0x00402170 lw v0, -0x7fb4(gp)            |             v0 = *(gp);
                                             |             if (v1 == 0) {
    0x00402174 bnel v1, zero, 0x4021e0       |                 goto label_0;
                                             |             }
    0x00402178 lbu a3, 0x119(s0)             |             a3 = *((s0 + 281));
    0x0040217c sltu v0, v0, a3               |             v0 = (v0 < a3) ? 1 : 0;
                                             |             if (v0 == 0) {
    0x00402180 beql v0, zero, 0x4021e0       |                 goto label_0;
                                             |             }
    0x00402184 lw v0, -0x7fb4(gp)            |             v0 = *(gp);
    0x00402188 lw s2, -0x7fdc(gp)            |             s2 = *(gp);
    0x0040218c lw a1, -0x7fd8(gp)            |             a1 = *(gp);
    0x00402190 lw t9, -0x7f14(gp)            |             t9 = sym.imp.fprintf
    0x00402194 lw a0, (s2)                   |             a0 = *(s2);
                                             |             /* str.Warning:_Driver_for_device__s_recommend_version__d_of_Wireless_Extension__n */
    0x00402198 addiu a1, a1, 0x6070          |             a1 += 0x6070;
    0x0040219c move a2, s1                   |             a2 = s1;
    0x004021a0 jalr t9                       |             t9 ();
    0x004021a4 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x004021a8 lw a0, (s2)                   |             a0 = *(s2);
    0x004021ac lbu a2, 0x118(s0)             |             a2 = *((s0 + 280));
    0x004021b0 lw a1, -0x7fd8(gp)            |             a1 = *(gp);
    0x004021b4 lw t9, -0x7f14(gp)            |             t9 = sym.imp.fprintf
                                             |             /* str.but_has_been_compiled_with_version__d__therefore_some_driver_features_n */
    0x004021b8 addiu a1, a1, 0x60bc          |             a1 += 0x60bc;
    0x004021bc jalr t9                       |             t9 ();
    0x004021c0 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x004021c4 lw a1, (s2)                   |             a1 = *(s2);
    0x004021c8 lw a0, -0x7fd8(gp)            |             a0 = *(gp);
    0x004021cc lw t9, -0x7fcc(gp)            |             t9 = *(gp);
                                             |             /* str.may_not_be_available..._n_n */
    0x004021d0 addiu a0, a0, 0x6104          |             a0 += 0x6104;
    0x004021d4 jalr t9                       |             t9 ();
    0x004021d8 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x004021dc lw v0, -0x7fb4(gp)            |             v0 = *(gp);
                                             |         }
                                             | label_0:
    0x004021e0 addiu v1, zero, 1             |         v1 = 1;
    0x004021e4 sw v1, (v0)                   |         *(v0) = v1;
    0x004021e8 move v0, zero                 |         v0 = 0;
    0x004021ec b 0x4021f4                    |         
                                             |     } else {
    0x004021f0 addiu v0, zero, -1            |         v0 = -1;
                                             |     }
    0x004021f4 lw ra, 0x4e4(sp)              |     ra = *(var_4e4h);
    0x004021f8 lw s3, 0x4e0(sp)              |     s3 = *(var_4e0h);
    0x004021fc lw s2, 0x4dc(sp)              |     s2 = *(var_4dch);
    0x00402200 lw s1, 0x4d8(sp)              |     s1 = *(var_4d8h);
    0x00402204 lw s0, 0x4d4(sp)              |     s0 = *(var_4d4h);
    0x00402208 addiu sp, sp, 0x4e8           |     
    0x0040220c jr ra                         |     return v0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/bin/iwgetid @ 0x404b70 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.iw_in_addr ()                | void iw_in_addr () {
    0x00404b70 lui gp, 2                     |     
    0x00404b74 addiu gp, gp, -0x59f0         |     
    0x00404b78 addu gp, gp, t9               |     gp += t9;
    0x00404b7c lw t9, -0x7f5c(gp)            |     t9 = sym.imp.strchr;
    0x00404b80 addiu sp, sp, -0x90           |     
    0x00404b84 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x00404b88 sw s3, 0x88(sp)               |     *(var_88h) = s3;
    0x00404b8c sw s2, 0x84(sp)               |     *(var_84h) = s2;
    0x00404b90 sw s1, 0x80(sp)               |     *(var_80h) = s1;
    0x00404b94 sw s0, 0x7c(sp)               |     *(var_7ch) = s0;
    0x00404b98 move s3, a0                   |     s3 = a0;
    0x00404b9c move s1, a1                   |     s1 = a1;
    0x00404ba0 move a0, a2                   |     a0 = a2;
    0x00404ba4 addiu a1, zero, 0x3a          |     a1 = 0x3a;
    0x00404ba8 sw ra, 0x8c(sp)               |     *(var_8ch) = ra;
    0x00404bac move s0, a2                   |     s0 = a2;
    0x00404bb0 move s2, a3                   |     s2 = a3;
    0x00404bb4 jalr t9                       |     t9 ();
    0x00404bb8 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x00404bbc move a0, s3                   |     a0 = s3;
    0x00404bc0 move a1, s1                   |     a1 = s1;
                                             |     if (v0 == 0) {
    0x00404bc4 bnez v0, 0x404cd8             |         
    0x00404bc8 lw t9, -0x7f8c(gp)            |         t9 = sym.iw_check_if_addr_type;
    0x00404bcc bal 0x4045c4                  |         sym_iw_check_if_addr_type ();
    0x00404bd0 nop                           |         
    0x00404bd4 lw gp, 0x18(sp)               |         gp = *(var_18h);
                                             |         if (v0 < 0) {
    0x00404bd8 bgez v0, 0x404bf0             |             
    0x00404bdc lw v0, -0x7fdc(gp)            |             v0 = *(gp);
    0x00404be0 lw a1, -0x7fd8(gp)            |             a1 = *(gp);
    0x00404be4 lw a0, (v0)                   |             a0 = *(v0);
                                             |             /* str.__8.16s__Interface_doesnt_support_IP_addresses_n */
    0x00404be8 addiu a1, a1, 0x651c          |             a1 += 0x651c;
    0x00404bec b 0x404cfc                    |             
                                             |         } else {
    0x00404bf0 lw t9, -0x7f88(gp)            |             t9 = sym.iw_in_inet;
    0x00404bf4 move a0, s0                   |             a0 = s0;
    0x00404bf8 addiu a1, sp, 0x64            |             a1 = sp + 0x64;
    0x00404bfc bal 0x404a34                  |             sym_iw_in_inet ();
    0x00404c00 lw gp, 0x18(sp)               |             gp = *(var_18h);
                                             |             if (v0 < 0) {
    0x00404c04 bgez v0, 0x404c1c             |                 
    0x00404c08 lw v0, -0x7fdc(gp)            |                 v0 = *(gp);
    0x00404c0c lw a1, -0x7fd8(gp)            |                 a1 = *(gp);
    0x00404c10 lw a0, (v0)                   |                 a0 = *(v0);
                                             |                 /* str.Invalid_interface_address__s_n */
    0x00404c14 addiu a1, a1, 0x6550          |                 a1 += 0x6550;
    0x00404c18 b 0x404d38                    |                 goto label_0;
                                             |             }
    0x00404c1c lw t9, -0x7f04(gp)            |             t9 = sym.imp.memcpy;
    0x00404c20 addiu a0, sp, 0x20            |             a0 = sp + 0x20;
    0x00404c24 addiu a1, sp, 0x64            |             a1 = sp + 0x64;
    0x00404c28 addiu a2, zero, 0x10          |             a2 = 0x10;
    0x00404c2c jalr t9                       |             t9 ();
    0x00404c30 lw gp, 0x18(sp)               |             gp = *(var_18h);
    0x00404c34 addiu a0, sp, 0x54            |             a0 = sp + 0x54;
    0x00404c38 move a1, s1                   |             a1 = s1;
    0x00404c3c lw t9, -0x7fe8(gp)            |             t9 = *(gp);
    0x00404c40 addiu a2, zero, 0x10          |             a2 = 0x10;
    0x00404c44 sh zero, 0x30(sp)             |             *(var_30h) = 0;
    0x00404c48 sw zero, 0x40(sp)             |             *(var_40h) = 0;
    0x00404c4c jalr t9                       |             t9 ();
    0x00404c50 lw gp, 0x18(sp)               |             gp = *(var_18h);
    0x00404c54 move a0, s3                   |             a0 = s3;
    0x00404c58 ori a1, zero, 0x8954          |             a1 = 0x8954;
    0x00404c5c lw t9, -0x7fe4(gp)            |             t9 = *(gp);
    0x00404c60 addiu a2, sp, 0x20            |             a2 = sp + 0x20;
    0x00404c64 jalr t9                       |             t9 ();
    0x00404c68 lw gp, 0x18(sp)               |             gp = *(var_18h);
                                             |             if (v0 >= 0) {
    0x00404c6c bltz v0, 0x404c80             |                 
    0x00404c70 lw v0, 0x40(sp)               |                 v0 = *(var_40h);
    0x00404c74 andi v0, v0, 2                |                 v0 &= 2;
    0x00404c78 lw t9, -0x7f04(gp)            |                 t9 = sym.imp.memcpy;
                                             |                 if (v0 != 0) {
    0x00404c7c bnez v0, 0x404cc0             |                     goto label_1;
                                             |                 }
                                             |             }
    0x00404c80 lw t9, -0x7f58(gp)            |             t9 = sym.imp.__errno_location;
    0x00404c84 lw v0, -0x7fdc(gp)            |             v0 = *(gp);
    0x00404c88 lw s2, (v0)                   |             s2 = *(v0);
    0x00404c8c jalr t9                       |             t9 ();
    0x00404c90 lw gp, 0x18(sp)               |             gp = *(var_18h);
    0x00404c94 lw v0, (v0)                   |             v0 = *(v0);
    0x00404c98 move a0, s2                   |             a0 = s2;
    0x00404c9c lw a1, -0x7fd8(gp)            |             a1 = *(gp);
    0x00404ca0 lw t9, -0x7f14(gp)            |             t9 = sym.imp.fprintf
    0x00404ca4 sw v0, 0x10(sp)               |             *(var_10h) = v0;
                                             |             /* str.Arp_failed_for__s_on__s...___d__nTry_to_ping_the_address_before_setting_it._n */
    0x00404ca8 addiu a1, a1, 0x6570          |             a1 += 0x6570;
    0x00404cac move a2, s0                   |             a2 = s0;
    0x00404cb0 move a3, s1                   |             a3 = s1;
    0x00404cb4 jalr t9                       |             t9 ();
    0x00404cb8 addiu v1, zero, -1            |             v1 = -1;
    0x00404cbc b 0x404d4c                    |             goto label_2;
                                             | label_1:
    0x00404cc0 move a0, s2                   |             a0 = s2;
    0x00404cc4 addiu a1, sp, 0x30            |             a1 = sp + 0x30;
    0x00404cc8 addiu a2, zero, 0x10          |             a2 = 0x10;
    0x00404ccc jalr t9                       |             t9 ();
    0x00404cd0 move v1, zero                 |             v1 = 0;
    0x00404cd4 b 0x404d4c                    |             
                                             |         } else {
    0x00404cd8 lw t9, -0x7f84(gp)            |             t9 = sym.iw_check_mac_addr_type;
    0x00404cdc bal 0x404518                  |             sym_iw_check_mac_addr_type ();
    0x00404ce0 nop                           |             
    0x00404ce4 lw gp, 0x18(sp)               |             gp = *(var_18h);
                                             |             if (v0 >= 0) {
    0x00404ce8 bgez v0, 0x404d04             |                 goto label_3;
                                             |             }
    0x00404cec lw v0, -0x7fdc(gp)            |             v0 = *(gp);
    0x00404cf0 lw a1, -0x7fd8(gp)            |             a1 = *(gp);
    0x00404cf4 lw a0, (v0)                   |             a0 = *(v0);
                                             |             /* str.__8.16s__Interface_doesnt_support_MAC_addresses_n */
    0x00404cf8 addiu a1, a1, 0x65bc          |             a1 += 0x65bc;
                                             |         }
    0x00404cfc move a2, s1                   |         a2 = s1;
    0x00404d00 b 0x404d3c                    |         goto label_4;
                                             | label_3:
    0x00404d04 lw t9, -0x7f80(gp)            |         t9 = sym.iw_ether_aton;
    0x00404d08 addiu v0, zero, 1             |         v0 = 1;
    0x00404d0c sh v0, (s2)                   |         *(s2) = v0;
    0x00404d10 move a0, s0                   |         a0 = s0;
    0x00404d14 addiu a1, s2, 2               |         a1 = s2 + 2;
    0x00404d18 bal 0x4049dc                  |         sym_iw_ether_aton ();
    0x00404d1c lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x00404d20 move v1, zero                 |         v1 = 0;
                                             |         if (v0 != 0) {
    0x00404d24 bnez v0, 0x404d4c             |             goto label_2;
                                             |         }
    0x00404d28 lw v0, -0x7fdc(gp)            |         v0 = *(gp);
    0x00404d2c lw a1, -0x7fd8(gp)            |         a1 = *(gp);
    0x00404d30 lw a0, (v0)                   |         a0 = *(v0);
                                             |         /* str.Invalid_hardware_address__s_n */
    0x00404d34 addiu a1, a1, 0x65f0          |         a1 += 0x65f0;
                                             | label_0:
    0x00404d38 move a2, s0                   |         a2 = s0;
                                             | label_4:
    0x00404d3c lw t9, -0x7f14(gp)            |         t9 = sym.imp.fprintf
    0x00404d40 jalr t9                       |         t9 ();
    0x00404d44 nop                           |         
    0x00404d48 addiu v1, zero, -1            |         v1 = -1;
                                             |     }
                                             | label_2:
    0x00404d4c lw ra, 0x8c(sp)               |     ra = *(var_8ch);
    0x00404d50 lw s3, 0x88(sp)               |     s3 = *(var_88h);
    0x00404d54 lw s2, 0x84(sp)               |     s2 = *(var_84h);
    0x00404d58 lw s1, 0x80(sp)               |     s1 = *(var_80h);
    0x00404d5c lw s0, 0x7c(sp)               |     s0 = *(var_7ch);
    0x00404d60 move v0, v1                   |     v0 = v1;
    0x00404d64 addiu sp, sp, 0x90            |     
    0x00404d68 jr ra                         |     return v0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/bin/iwgetid @ 0x4025bc */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.iw_set_basic_config ()       | void iw_set_basic_config () {
    0x004025bc lui gp, 2                     |     
    0x004025c0 addiu gp, gp, -0x343c         |     
    0x004025c4 addu gp, gp, t9               |     gp += t9;
    0x004025c8 lw t9, -0x7fe8(gp)            |     t9 = *(gp);
    0x004025cc addiu sp, sp, -0x58           |     
    0x004025d0 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x004025d4 sw ra, 0x54(sp)               |     *(var_54h) = ra;
    0x004025d8 sw s3, 0x48(sp)               |     *(var_48h) = s3;
    0x004025dc sw s2, 0x44(sp)               |     *(var_44h) = s2;
    0x004025e0 sw s0, 0x3c(sp)               |     *(var_3ch) = s0;
    0x004025e4 move s2, a0                   |     s2 = a0;
    0x004025e8 sw s5, 0x50(sp)               |     *(var_50h) = s5;
    0x004025ec addiu a0, sp, 0x18            |     a0 = sp + 0x18;
    0x004025f0 sw s4, 0x4c(sp)               |     *(var_4ch) = s4;
    0x004025f4 sw s1, 0x40(sp)               |     *(var_40h) = s1;
    0x004025f8 move s0, a2                   |     s0 = a2;
    0x004025fc addiu a2, zero, 0x10          |     a2 = 0x10;
    0x00402600 move s3, a1                   |     s3 = a1;
    0x00402604 jalr t9                       |     t9 ();
    0x00402608 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0040260c move a0, s2                   |     a0 = s2;
    0x00402610 ori a1, zero, 0x8b01          |     a1 = 0x8b01;
    0x00402614 lw t9, -0x7fe4(gp)            |     t9 = *(gp);
    0x00402618 addiu a2, sp, 0x18            |     a2 = sp + 0x18;
    0x0040261c jalr t9                       |     t9 ();
    0x00402620 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 < 0) {
    0x00402624 bltz v0, 0x402a24             |         goto label_0;
                                             |     }
    0x00402628 lw v0, 0xac(s0)               |     v0 = *((s0 + 43));
    0x0040262c lw t9, -0x7fe8(gp)            |     t9 = *(gp);
    0x00402630 bnez v0, 0x40263c             |     
                                             |     while (v0 >= 0) {
    0x00402634 move s1, zero                 |         s1 = 0;
    0x00402638 b 0x4026d0                    |         goto label_1;
    0x0040263c addiu a0, sp, 0x18            |         a0 = sp + 0x18;
    0x00402640 move a1, s3                   |         a1 = s3;
    0x00402644 addiu a2, zero, 0x10          |         a2 = 0x10;
    0x00402648 jalr t9                       |         t9 ();
    0x0040264c lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00402650 lw v0, 0xb0(s0)               |         v0 = *((s0 + 44));
    0x00402654 addiu a0, sp, 0x18            |         a0 = sp + 0x18;
    0x00402658 lw t9, -0x7fe8(gp)            |         t9 = *(gp);
    0x0040265c move a1, s3                   |         a1 = s3;
    0x00402660 addiu a2, zero, 0x10          |         a2 = 0x10;
    0x00402664 sw v0, 0x28(sp)               |         *(var_28h) = v0;
    0x00402668 jalr t9                       |         t9 ();
    0x0040266c lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00402670 move a0, s2                   |         a0 = s2;
    0x00402674 ori a1, zero, 0x8b06          |         a1 = 0x8b06;
    0x00402678 lw t9, -0x7fe4(gp)            |         t9 = *(gp);
    0x0040267c addiu a2, sp, 0x18            |         a2 = sp + 0x18;
    0x00402680 jalr t9                       |         t9 ();
    0x00402684 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00402688 bgez v0, 0x402634             |         
                                             |     }
    0x0040268c lw t9, -0x7f58(gp)            |     t9 = sym.imp.__errno_location;
    0x00402690 lw v0, -0x7fdc(gp)            |     v0 = *(gp);
    0x00402694 lw s1, (v0)                   |     s1 = *(v0);
    0x00402698 jalr t9                       |     t9 ();
    0x0040269c lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x004026a0 lw t9, -0x7eec(gp)            |     t9 = sym.imp.strerror;
    0x004026a4 lw a0, (v0)                   |     a0 = *(v0);
    0x004026a8 jalr t9                       |     t9 ();
    0x004026ac lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x004026b0 move a0, s1                   |     a0 = s1;
    0x004026b4 move a2, v0                   |     a2 = v0;
    0x004026b8 lw a1, -0x7fd8(gp)            |     a1 = *(gp);
    0x004026bc lw t9, -0x7f14(gp)            |     t9 = sym.imp.fprintf
    0x004026c0 addiu s1, zero, -1            |     s1 = -1;
                                             |     /* str.SIOCSIWMODE:__s_n */
    0x004026c4 addiu a1, a1, 0x6148          |     a1 += 0x6148;
    0x004026c8 jalr t9                       |     t9 ();
    0x004026cc lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             | label_1:
    0x004026d0 lw v0, 0x20(s0)               |     v0 = *((s0 + 8));
                                             |     if (v0 != 0) {
    0x004026d4 beql v0, zero, 0x40276c       |         
    0x004026d8 lw v0, 0x34(s0)               |         v0 = *((s0 + 13));
    0x004026dc lw t9, -0x7fb0(gp)            |         t9 = sym.iw_float2freq;
    0x004026e0 ldc1 f12, 0x28(s0)            |         __asm ("ldc1 f12, 0x28(s0)");
    0x004026e4 addiu a2, sp, 0x28            |         a2 = sp + 0x28;
    0x004026e8 bal 0x4024f0                  |         sym_iw_float2freq ();
    0x004026ec lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x004026f0 addiu a0, sp, 0x18            |         a0 = sp + 0x18;
    0x004026f4 move a1, s3                   |         a1 = s3;
    0x004026f8 lw t9, -0x7fe8(gp)            |         t9 = *(gp);
    0x004026fc addiu a2, zero, 0x10          |         a2 = 0x10;
    0x00402700 jalr t9                       |         t9 ();
    0x00402704 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00402708 move a0, s2                   |         a0 = s2;
    0x0040270c ori a1, zero, 0x8b04          |         a1 = 0x8b04;
    0x00402710 lw t9, -0x7fe4(gp)            |         t9 = *(gp);
    0x00402714 addiu a2, sp, 0x18            |         a2 = sp + 0x18;
    0x00402718 jalr t9                       |         t9 ();
    0x0040271c lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |         if (v0 < 0) {
    0x00402720 bgez v0, 0x402768             |             
    0x00402724 lw t9, -0x7f58(gp)            |             t9 = sym.imp.__errno_location;
    0x00402728 lw v0, -0x7fdc(gp)            |             v0 = *(gp);
    0x0040272c lw s1, (v0)                   |             s1 = *(v0);
    0x00402730 jalr t9                       |             t9 ();
    0x00402734 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x00402738 lw t9, -0x7eec(gp)            |             t9 = sym.imp.strerror;
    0x0040273c lw a0, (v0)                   |             a0 = *(v0);
    0x00402740 jalr t9                       |             t9 ();
    0x00402744 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x00402748 move a0, s1                   |             a0 = s1;
    0x0040274c move a2, v0                   |             a2 = v0;
    0x00402750 lw a1, -0x7fd8(gp)            |             a1 = *(gp);
    0x00402754 lw t9, -0x7f14(gp)            |             t9 = sym.imp.fprintf
    0x00402758 addiu s1, zero, -1            |             s1 = -1;
                                             |             /* str.SIOCSIWFREQ:__s_n */
    0x0040275c addiu a1, a1, 0x615c          |             a1 += 0x615c;
    0x00402760 jalr t9                       |             t9 ();
    0x00402764 lw gp, 0x10(sp)               |             gp = *(var_10h);
                                             |         }
    0x00402768 lw v0, 0x34(s0)               |         v0 = *((s0 + 13));
                                             |     }
                                             |     if (v0 != 0) {
    0x0040276c beql v0, zero, 0x4028bc       |         
    0x00402770 lw v0, 0x14(s0)               |         v0 = *((s0 + 5));
    0x00402774 lw s4, 0x7c(s0)               |         s4 = *((s0 + 31));
    0x00402778 andi v0, s4, 0xff             |         v0 = s4 & 0xff;
    0x0040277c lw t9, -0x7fe8(gp)            |         t9 = *(gp);
                                             |         if (v0 != 0) {
    0x00402780 beqz v0, 0x402810             |             
    0x00402784 ori v0, v0, 0x800             |             v0 |= 0x800;
    0x00402788 addiu a0, sp, 0x18            |             a0 = sp + 0x18;
    0x0040278c move a1, s3                   |             a1 = s3;
    0x00402790 addiu a2, zero, 0x10          |             a2 = 0x10;
    0x00402794 sw zero, 0x28(sp)             |             *(var_28h) = 0;
    0x00402798 sh v0, 0x2e(sp)               |             *(var_2eh) = v0;
    0x0040279c sh zero, 0x2c(sp)             |             *(var_2ch) = 0;
    0x004027a0 jalr t9                       |             t9 ();
    0x004027a4 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x004027a8 move a0, s2                   |             a0 = s2;
    0x004027ac ori a1, zero, 0x8b2a          |             a1 = 0x8b2a;
    0x004027b0 lw t9, -0x7fe4(gp)            |             t9 = *(gp);
    0x004027b4 addiu a2, sp, 0x18            |             a2 = sp + 0x18;
    0x004027b8 jalr t9                       |             t9 ();
    0x004027bc lw gp, 0x10(sp)               |             gp = *(var_10h);
                                             |             if (v0 >= 0) {
    0x004027c0 bgez v0, 0x402810             |                 goto label_2;
                                             |             }
    0x004027c4 lw t9, -0x7f58(gp)            |             t9 = sym.imp.__errno_location;
    0x004027c8 lw v0, -0x7fdc(gp)            |             v0 = *(gp);
    0x004027cc lw s5, (v0)                   |             s5 = *(v0);
    0x004027d0 jalr t9                       |             t9 ();
    0x004027d4 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x004027d8 lw s1, (v0)                   |             s1 = *(v0);
    0x004027dc lw t9, -0x7eec(gp)            |             t9 = sym.imp.strerror;
    0x004027e0 move a0, s1                   |             a0 = s1;
    0x004027e4 jalr t9                       |             t9 ();
    0x004027e8 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x004027ec move a2, s1                   |             a2 = s1;
    0x004027f0 move a0, s5                   |             a0 = s5;
    0x004027f4 lw a1, -0x7fd8(gp)            |             a1 = *(gp);
    0x004027f8 lw t9, -0x7f14(gp)            |             t9 = sym.imp.fprintf
    0x004027fc move a3, v0                   |             a3 = v0;
                                             |             /* str.SIOCSIWENCODE__d_:__s_n */
    0x00402800 addiu a1, a1, 0x6170          |             a1 += 0x6170;
    0x00402804 jalr t9                       |             t9 ();
    0x00402808 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x0040280c addiu s1, zero, -1            |             s1 = -1;
                                             |         }
                                             | label_2:
    0x00402810 addiu v0, s0, 0x38            |         v0 = s0 + 0x38;
    0x00402814 sw v0, 0x28(sp)               |         *(var_28h) = v0;
    0x00402818 lw v0, 0x78(s0)               |         v0 = *((s0 + 30));
    0x0040281c sh v0, 0x2c(sp)               |         *(var_2ch) = v0;
    0x00402820 addiu v0, zero, -0x100        |         v0 = -0x100;
    0x00402824 and v0, s4, v0                |         v0 = s4 & v0;
    0x00402828 andi s4, s4, 0x800            |         s4 &= 0x800;
    0x0040282c sh v0, 0x2e(sp)               |         *(var_2eh) = v0;
                                             |         if (s4 != 0) {
    0x00402830 beqz s4, 0x402838             |             
    0x00402834 sw zero, 0x28(sp)             |             *(var_28h) = 0;
                                             |         }
    0x00402838 lw t9, -0x7fe8(gp)            |         t9 = *(gp);
    0x0040283c addiu a0, sp, 0x18            |         a0 = sp + 0x18;
    0x00402840 move a1, s3                   |         a1 = s3;
    0x00402844 addiu a2, zero, 0x10          |         a2 = 0x10;
    0x00402848 jalr t9                       |         t9 ();
    0x0040284c lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00402850 move a0, s2                   |         a0 = s2;
    0x00402854 ori a1, zero, 0x8b2a          |         a1 = 0x8b2a;
    0x00402858 lw t9, -0x7fe4(gp)            |         t9 = *(gp);
    0x0040285c addiu a2, sp, 0x18            |         a2 = sp + 0x18;
    0x00402860 jalr t9                       |         t9 ();
    0x00402864 lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |         if (v0 < 0) {
    0x00402868 bgez v0, 0x4028b8             |             
    0x0040286c lw t9, -0x7f58(gp)            |             t9 = sym.imp.__errno_location;
    0x00402870 lw v0, -0x7fdc(gp)            |             v0 = *(gp);
    0x00402874 lw s4, (v0)                   |             s4 = *(v0);
    0x00402878 jalr t9                       |             t9 ();
    0x0040287c lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x00402880 lw s1, (v0)                   |             s1 = *(v0);
    0x00402884 lw t9, -0x7eec(gp)            |             t9 = sym.imp.strerror;
    0x00402888 move a0, s1                   |             a0 = s1;
    0x0040288c jalr t9                       |             t9 ();
    0x00402890 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x00402894 move a2, s1                   |             a2 = s1;
    0x00402898 move a0, s4                   |             a0 = s4;
    0x0040289c lw a1, -0x7fd8(gp)            |             a1 = *(gp);
    0x004028a0 lw t9, -0x7f14(gp)            |             t9 = sym.imp.fprintf
    0x004028a4 move a3, v0                   |             a3 = v0;
                                             |             /* str.SIOCSIWENCODE__d_:__s_n */
    0x004028a8 addiu a1, a1, 0x6170          |             a1 += 0x6170;
    0x004028ac jalr t9                       |             t9 ();
    0x004028b0 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x004028b4 addiu s1, zero, -1            |             s1 = -1;
                                             |         }
    0x004028b8 lw v0, 0x14(s0)               |         v0 = *((s0 + 5));
                                             |     }
                                             |     if (v0 != 0) {
    0x004028bc beql v0, zero, 0x402958       |         
    0x004028c0 lw v0, 0x80(s0)               |         v0 = *((s0 + 32));
    0x004028c4 lw v0, 0x18(s0)               |         v0 = *((s0 + 6));
    0x004028c8 lw t9, -0x7fe8(gp)            |         t9 = *(gp);
    0x004028cc addiu a0, sp, 0x18            |         a0 = sp + 0x18;
    0x004028d0 sw v0, 0x28(sp)               |         *(var_28h) = v0;
    0x004028d4 lw v0, 0x1c(s0)               |         v0 = *((s0 + 7));
    0x004028d8 move a1, s3                   |         a1 = s3;
    0x004028dc addiu a2, zero, 0x10          |         a2 = 0x10;
    0x004028e0 sw v0, 0x2c(sp)               |         *(var_2ch) = v0;
    0x004028e4 addiu v0, zero, 1             |         v0 = 1;
    0x004028e8 sb v0, 0x2c(sp)               |         *(var_2ch) = v0;
    0x004028ec jalr t9                       |         t9 ();
    0x004028f0 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x004028f4 move a0, s2                   |         a0 = s2;
    0x004028f8 ori a1, zero, 0x8b02          |         a1 = 0x8b02;
    0x004028fc lw t9, -0x7fe4(gp)            |         t9 = *(gp);
    0x00402900 addiu a2, sp, 0x18            |         a2 = sp + 0x18;
    0x00402904 jalr t9                       |         t9 ();
    0x00402908 lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |         if (v0 < 0) {
    0x0040290c bgez v0, 0x402954             |             
    0x00402910 lw t9, -0x7f58(gp)            |             t9 = sym.imp.__errno_location;
    0x00402914 lw v0, -0x7fdc(gp)            |             v0 = *(gp);
    0x00402918 lw s1, (v0)                   |             s1 = *(v0);
    0x0040291c jalr t9                       |             t9 ();
    0x00402920 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x00402924 lw t9, -0x7eec(gp)            |             t9 = sym.imp.strerror;
    0x00402928 lw a0, (v0)                   |             a0 = *(v0);
    0x0040292c jalr t9                       |             t9 ();
    0x00402930 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x00402934 move a0, s1                   |             a0 = s1;
    0x00402938 move a2, v0                   |             a2 = v0;
    0x0040293c lw a1, -0x7fd8(gp)            |             a1 = *(gp);
    0x00402940 lw t9, -0x7f14(gp)            |             t9 = sym.imp.fprintf
    0x00402944 addiu s1, zero, -1            |             s1 = -1;
                                             |             /* str.SIOCSIWNWID:__s_n */
    0x00402948 addiu a1, a1, 0x6188          |             a1 += 0x6188;
    0x0040294c jalr t9                       |             t9 ();
    0x00402950 lw gp, 0x10(sp)               |             gp = *(var_10h);
                                             |         }
    0x00402954 lw v0, 0x80(s0)               |         v0 = *((s0 + 32));
                                             |     }
    0x00402958 lw ra, 0x54(sp)               |     ra = *(var_54h);
                                             |     if (v0 != 0) {
    0x0040295c beqz v0, 0x402a2c             |         
    0x00402960 lw t9, -0x7fc0(gp)            |         t9 = sym.iw_get_kernel_we_version;
    0x00402964 bal 0x401c94                  |         sym_iw_get_kernel_we_version ();
    0x00402968 nop                           |         
    0x0040296c lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00402970 addiu a0, s0, 0x88            |         a0 = s0 + 0x88;
    0x00402974 sw a0, 0x28(sp)               |         *(var_28h) = a0;
    0x00402978 lw t9, -0x7fac(gp)            |         t9 = *(gp);
    0x0040297c move s4, v0                   |         s4 = v0;
    0x00402980 slti s4, s4, 0x15             |         s4 = (s4 < 0x15) ? 1 : 0;
    0x00402984 jalr t9                       |         t9 ();
    0x00402988 andi v1, v0, 0xffff           |         v1 = v0 & 0xffff;
    0x0040298c lw v0, 0x84(s0)               |         v0 = *((s0 + 33));
    0x00402990 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00402994 sh v1, 0x2c(sp)               |         *(var_2ch) = v1;
    0x00402998 sh v0, 0x2e(sp)               |         *(var_2eh) = v0;
                                             |         if (s4 != 0) {
    0x0040299c beqz s4, 0x4029a8             |             
    0x004029a0 addiu v1, v1, 1               |             v1++;
    0x004029a4 sh v1, 0x2c(sp)               |             *(var_2ch) = v1;
                                             |         }
    0x004029a8 lw t9, -0x7fe8(gp)            |         t9 = *(gp);
    0x004029ac addiu a0, sp, 0x18            |         a0 = sp + 0x18;
    0x004029b0 move a1, s3                   |         a1 = s3;
    0x004029b4 addiu a2, zero, 0x10          |         a2 = 0x10;
    0x004029b8 jalr t9                       |         t9 ();
    0x004029bc lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x004029c0 move a0, s2                   |         a0 = s2;
    0x004029c4 ori a1, zero, 0x8b1a          |         a1 = 0x8b1a;
    0x004029c8 lw t9, -0x7fe4(gp)            |         t9 = *(gp);
    0x004029cc addiu a2, sp, 0x18            |         a2 = sp + 0x18;
    0x004029d0 jalr t9                       |         t9 ();
    0x004029d4 lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |         if (v0 < 0) {
    0x004029d8 bgez v0, 0x402a28             |             
    0x004029dc lw t9, -0x7f58(gp)            |             t9 = sym.imp.__errno_location;
    0x004029e0 lw v0, -0x7fdc(gp)            |             v0 = *(gp);
    0x004029e4 addiu s1, zero, -1            |             s1 = -1;
    0x004029e8 lw s0, (v0)                   |             s0 = *(v0);
    0x004029ec jalr t9                       |             t9 ();
    0x004029f0 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x004029f4 lw t9, -0x7eec(gp)            |             t9 = sym.imp.strerror;
    0x004029f8 lw a0, (v0)                   |             a0 = *(v0);
    0x004029fc jalr t9                       |             t9 ();
    0x00402a00 lw gp, 0x10(sp)               |             gp = *(var_10h);
    0x00402a04 move a0, s0                   |             a0 = s0;
    0x00402a08 move a2, v0                   |             a2 = v0;
    0x00402a0c lw a1, -0x7fd8(gp)            |             a1 = *(gp);
    0x00402a10 lw t9, -0x7f14(gp)            |             t9 = sym.imp.fprintf
                                             |             /* str.SIOCSIWESSID:__s_n */
    0x00402a14 addiu a1, a1, 0x619c          |             a1 += 0x619c;
    0x00402a18 jalr t9                       |             t9 ();
    0x00402a1c lw ra, 0x54(sp)               |             ra = *(var_54h);
    0x00402a20 b 0x402a2c                    |             goto label_3;
                                             | label_0:
    0x00402a24 addiu s1, zero, -2            |             s1 = -2;
                                             |         }
    0x00402a28 lw ra, 0x54(sp)               |         ra = *(var_54h);
                                             |     }
                                             | label_3:
    0x00402a2c move v0, s1                   |     v0 = s1;
    0x00402a30 lw s5, 0x50(sp)               |     s5 = *(var_50h);
    0x00402a34 lw s4, 0x4c(sp)               |     s4 = *(var_4ch);
    0x00402a38 lw s3, 0x48(sp)               |     s3 = *(var_48h);
    0x00402a3c lw s2, 0x44(sp)               |     s2 = *(var_44h);
    0x00402a40 lw s1, 0x40(sp)               |     s1 = *(var_40h);
    0x00402a44 lw s0, 0x3c(sp)               |     s0 = *(var_3ch);
    0x00402a48 addiu sp, sp, 0x58            |     
    0x00402a4c jr ra                         |     return v0;
                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/bin/iwgetid @ 0x401850 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.print_iface_version_info ()      | void print_iface_version_info () {
    0x00401850 lui gp, 2                         |     
    0x00401854 addiu gp, gp, -0x26d0             |     
    0x00401858 addu gp, gp, t9                   |     gp += t9;
    0x0040185c lw t9, -0x7fe8(gp)                |     t9 = *(gp);
    0x00401860 addiu sp, sp, -0x4e0              |     
    0x00401864 addiu a2, zero, 0x10              |     a2 = 0x10;
    0x00401868 sw gp, 0x10(sp)                   |     *(var_10h) = gp;
    0x0040186c sw ra, 0x4dc(sp)                  |     *(var_4dch) = ra;
    0x00401870 sw s1, 0x4d4(sp)                  |     *(var_4d4h) = s1;
    0x00401874 sw s0, 0x4d0(sp)                  |     *(var_4d0h) = s0;
    0x00401878 move s1, a0                       |     s1 = a0;
    0x0040187c sw s2, 0x4d8(sp)                  |     *(var_4d8h) = s2;
    0x00401880 addiu a0, sp, 0x4b0               |     a0 = sp + 0x4b0;
    0x00401884 move s0, a1                       |     s0 = a1;
    0x00401888 jalr t9                           |     t9 ();
    0x0040188c lw gp, 0x10(sp)                   |     gp = *(var_10h);
    0x00401890 move a0, s1                       |     a0 = s1;
    0x00401894 ori a1, zero, 0x8b01              |     a1 = 0x8b01;
    0x00401898 lw t9, -0x7fe4(gp)                |     t9 = *(gp);
    0x0040189c addiu a2, sp, 0x4b0               |     a2 = sp + 0x4b0;
    0x004018a0 jalr t9                           |     t9 ();
    0x004018a4 lw gp, 0x10(sp)                   |     gp = *(var_10h);
                                                 |     if (v0 >= 0) {
    0x004018a8 bltz v0, 0x401988                 |         
    0x004018ac lw t9, -0x7fe0(gp)                |         t9 = *(gp);
    0x004018b0 addiu s2, sp, 0x18                |         s2 = sp + 0x18;
    0x004018b4 move a0, s2                       |         a0 = s2;
    0x004018b8 move a1, zero                     |         a1 = 0;
    0x004018bc addiu a2, zero, 0x498             |         a2 = 0x498;
    0x004018c0 jalr t9                           |         t9 ();
    0x004018c4 lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x004018c8 addiu v0, zero, 0x498             |         v0 = 0x498;
    0x004018cc addiu a0, sp, 0x4b0               |         a0 = sp + 0x4b0;
    0x004018d0 lw t9, -0x7fe8(gp)                |         t9 = *(gp);
    0x004018d4 move a1, s0                       |         a1 = s0;
    0x004018d8 addiu a2, zero, 0x10              |         a2 = 0x10;
    0x004018dc sw s2, 0x4c0(sp)                  |         *(var_4c0h) = s2;
    0x004018e0 sh v0, 0x4c4(sp)                  |         *(var_4c4h) = v0;
    0x004018e4 sh zero, 0x4c6(sp)                |         *(var_4c6h) = 0;
    0x004018e8 jalr t9                           |         t9 ();
    0x004018ec lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x004018f0 move a0, s1                       |         a0 = s1;
    0x004018f4 ori a1, zero, 0x8b0b              |         a1 = 0x8b0b;
    0x004018f8 lw t9, -0x7fe4(gp)                |         t9 = *(gp);
    0x004018fc addiu a2, sp, 0x4b0               |         a2 = sp + 0x4b0;
    0x00401900 jalr t9                           |         t9 ();
    0x00401904 lw gp, 0x10(sp)                   |         gp = *(var_10h);
                                                 |         if (v0 < 0) {
    0x00401908 bgez v0, 0x401920                 |             
    0x0040190c lw v0, -0x7fdc(gp)                |             v0 = *(gp);
    0x00401910 lw a1, -0x7fd8(gp)                |             a1 = *(gp);
    0x00401914 lw a0, (v0)                       |             a0 = *(v0);
                                                 |             /* esilref: '&-8.16s  Driver has no Wireless Extension version information.

' */
    0x00401918 addiu a1, a1, 0x5cf8              |             a1 += 0x5cf8;
    0x0040191c b 0x401974                        |             
                                                 |         } else {
    0x00401920 lhu v0, 0x4c4(sp)                 |             v0 = *(var_4c4h);
    0x00401924 sltiu v0, v0, 0x12c               |             v0 = (v0 < 0x12c) ? 1 : 0;
    0x00401928 lw v0, -0x7fdc(gp)                |             v0 = *(gp);
                                                 |             if (v0 != 0) {
    0x0040192c bnel v0, zero, 0x401968           |                 
    0x00401930 lw a0, -0x7fd8(gp)                |                 a0 = *(gp);
    0x00401934 lw t9, -0x7fd4(gp)                |                 t9 = *(gp);
    0x00401938 lbu a2, 0x131(sp)                 |                 a2 = *(var_131h);
    0x0040193c move a1, s0                       |                 a1 = s0;
                                                 |                 /* str.__8.16s__Recommend_Wireless_Extension_v_d_or_later__n */
    0x00401940 addiu a0, a0, 0x5d3c              |                 a0 += 0x5d3c;
    0x00401944 jalr t9                           |                 t9 ();
    0x00401948 lw gp, 0x10(sp)                   |                 gp = *(var_10h);
    0x0040194c lbu a1, 0x130(sp)                 |                 a1 = *(var_130h);
    0x00401950 lw a0, -0x7fd8(gp)                |                 a0 = *(gp);
    0x00401954 lw t9, -0x7fd4(gp)                |                 t9 = *(gp);
                                                 |                 /* str.__________Currently_compiled_with_Wireless_Extension_v_d._n_n */
    0x00401958 addiu a0, a0, 0x5d74              |                 a0 += 0x5d74;
    0x0040195c jalr t9                           |                 t9 ();
    0x00401960 b 0x401980                        |                 goto label_0;
    0x00401964 nop                               |                 
                                                 |             }
    0x00401968 lw a1, -0x7fd8(gp)                |             a1 = *(gp);
    0x0040196c lw a0, (v0)                       |             a0 = *(v0);
                                                 |             /* str.__8.16s__Wireless_Extension_version_too_old._n_n */
    0x00401970 addiu a1, a1, 0x5db0              |             a1 += 0x5db0;
                                                 |         }
    0x00401974 lw t9, -0x7f14(gp)                |         t9 = sym.imp.fprintf
    0x00401978 move a2, s0                       |         a2 = s0;
    0x0040197c jalr t9                           |         t9 ();
                                                 | label_0:
    0x00401980 move v0, zero                     |         v0 = 0;
    0x00401984 b 0x40198c                        |         
                                                 |     } else {
    0x00401988 addiu v0, zero, -1                |         v0 = -1;
                                                 |     }
    0x0040198c lw ra, 0x4dc(sp)                  |     ra = *(var_4dch);
    0x00401990 lw s2, 0x4d8(sp)                  |     s2 = *(var_4d8h);
    0x00401994 lw s1, 0x4d4(sp)                  |     s1 = *(var_4d4h);
    0x00401998 lw s0, 0x4d0(sp)                  |     s0 = *(var_4d0h);
    0x0040199c addiu sp, sp, 0x4e0               |     
    0x004019a0 jr ra                             |     return v0;
                                                 | }

[*] Function fprintf used 19 times iwgetid