[*] Binary protection state of start_wps

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


[*] Function fprintf tear down of start_wps

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/start_wps @ 0x4027f4 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) aav.0x004027f4 ()                | void aav_0x004027f4 () {
    0x004027f4 lui gp, 2                     |     
    0x004027f8 addiu gp, gp, 0x182c          |     
    0x004027fc addu gp, gp, t9               |     gp += t9;
    0x00402800 addiu sp, sp, -0x70           |     
    0x00402804 sw ra, 0x6c(sp)               |     *(var_6ch) = ra;
    0x00402808 sw fp, 0x68(sp)               |     *(var_68h) = fp;
    0x0040280c move fp, sp                   |     fp = sp;
    0x00402810 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x00402814 sw a0, 0x24(fp)               |     *(arg_24h) = a0;
    0x00402818 lw t8, -0x7e18(gp)            |     t8 = *((gp - 8070));
    0x0040281c lw t8, (t8)                   |     t8 = *(t8);
    0x00402820 sw t8, 0x64(fp)               |     *(arg_64h) = t8;
    0x00402824 addiu a0, zero, 0x400         |     a0 = 0x400;
    0x00402828 lw t8, -0x7e48(gp)            |     t8 = sym.imp.malloc;
    0x0040282c move t9, t8                   |     t9 = t8;
    0x00402830 jalr t9                       |     t9 ();
    0x00402834 nop                           |     
    0x00402838 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040283c move t8, v0                   |     t8 = v0;
    0x00402840 sw t8, 0x30(fp)               |     *(arg_30h) = t8;
    0x00402844 lw t8, 0x30(fp)               |     t8 = *(arg_30h);
    0x00402848 sltiu t8, t8, 1               |     t8 = (t8 < 1) ? 1 : 0;
    0x0040284c andi t8, t8, 0xff             |     t8 &= 0xff;
                                             |     if (t8 != 0) {
    0x00402850 beqz t8, 0x402898             |         
    0x00402854 nop                           |         
    0x00402858 lw t8, -0x7e94(gp)            |         t8 = *((gp - 8101));
    0x0040285c lw t8, (t8)                   |         t8 = *(t8);
    0x00402860 move a0, t8                   |         a0 = t8;
    0x00402864 lw t8, -0x7fdc(gp)            |         t8 = *((gp - 8183));
                                             |         /* str._s__d__Out_of_memory._n */
    0x00402868 addiu a1, t8, -0x6f8c         |         a1 = t8 + -0x6f8c;
    0x0040286c lw t8, -0x7fdc(gp)            |         t8 = *((gp - 8183));
                                             |         /* str.wps_go_read_wlan_config_by_wpa_cli */
    0x00402870 addiu a2, t8, -0x5860         |         a2 = t8 + -0x5860;
    0x00402874 addiu a3, zero, 0xc9          |         a3 = 0xc9;
    0x00402878 lw t8, -0x7ef0(gp)            |         t8 = sym.imp.fprintf
    0x0040287c move t9, t8                   |         t9 = t8;
    0x00402880 jalr t9                       |         t9 ();
    0x00402884 nop                           |         
    0x00402888 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040288c addiu t8, zero, -1            |         t8 = -1;
    0x00402890 b 0x4031d0                    |         goto label_0;
    0x00402894 nop                           |         
                                             |     }
    0x00402898 addiu a0, zero, 0x400         |     a0 = 0x400;
    0x0040289c lw t8, -0x7e48(gp)            |     t8 = sym.imp.malloc;
    0x004028a0 move t9, t8                   |     t9 = t8;
    0x004028a4 jalr t9                       |     t9 ();
    0x004028a8 nop                           |     
    0x004028ac lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x004028b0 move t8, v0                   |     t8 = v0;
    0x004028b4 sw t8, 0x34(fp)               |     *(arg_34h) = t8;
    0x004028b8 lw t8, 0x34(fp)               |     t8 = *(arg_34h);
    0x004028bc sltiu t8, t8, 1               |     t8 = (t8 < 1) ? 1 : 0;
    0x004028c0 andi t8, t8, 0xff             |     t8 &= 0xff;
                                             |     if (t8 != 0) {
    0x004028c4 beqz t8, 0x40290c             |         
    0x004028c8 nop                           |         
    0x004028cc lw t8, -0x7e94(gp)            |         t8 = *((gp - 8101));
    0x004028d0 lw t8, (t8)                   |         t8 = *(t8);
    0x004028d4 move a0, t8                   |         a0 = t8;
    0x004028d8 lw t8, -0x7fdc(gp)            |         t8 = *((gp - 8183));
                                             |         /* str._s__d__Out_of_memory._n */
    0x004028dc addiu a1, t8, -0x6f8c         |         a1 = t8 + -0x6f8c;
    0x004028e0 lw t8, -0x7fdc(gp)            |         t8 = *((gp - 8183));
                                             |         /* str.wps_go_read_wlan_config_by_wpa_cli */
    0x004028e4 addiu a2, t8, -0x5860         |         a2 = t8 + -0x5860;
    0x004028e8 addiu a3, zero, 0xcd          |         a3 = 0xcd;
    0x004028ec lw t8, -0x7ef0(gp)            |         t8 = sym.imp.fprintf
    0x004028f0 move t9, t8                   |         t9 = t8;
    0x004028f4 jalr t9                       |         t9 ();
    0x004028f8 nop                           |         
    0x004028fc lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00402900 addiu t8, zero, -1            |         t8 = -1;
    0x00402904 b 0x4031d0                    |         goto label_0;
    0x00402908 nop                           |         
                                             |     }
    0x0040290c lw a0, 0x30(fp)               |     a0 = *(arg_30h);
    0x00402910 addiu a1, zero, 0x400         |     a1 = 0x400;
    0x00402914 lw t8, -0x7eec(gp)            |     t8 = sym.imp.bzero;
    0x00402918 move t9, t8                   |     t9 = t8;
    0x0040291c jalr t9                       |     t9 ();
    0x00402920 nop                           |     
    0x00402924 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00402928 lw t8, -0x7fdc(gp)            |     t8 = *((gp - 8183));
                                             |     /* str.wpa_cli__i_wlan0_status */
    0x0040292c addiu a0, t8, -0x6f74         |     a0 = t8 + -0x6f74;
    0x00402930 lw t8, -0x7fdc(gp)            |     t8 = *((gp - 8183));
                                             |     /* section..rodata */
    0x00402934 addiu a1, t8, -0x7130         |     a1 = t8 + -0x7130;
    0x00402938 lw t8, -0x7f34(gp)            |     t8 = sym.imp.popen;
    0x0040293c move t9, t8                   |     t9 = t8;
    0x00402940 jalr t9                       |     t9 ();
    0x00402944 nop                           |     
    0x00402948 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040294c move t8, v0                   |     t8 = v0;
    0x00402950 sw t8, 0x38(fp)               |     *(arg_38h) = t8;
    0x00402954 lw t8, 0x38(fp)               |     t8 = *(arg_38h);
    0x00402958 sltiu t8, t8, 1               |     t8 = (t8 < 1) ? 1 : 0;
    0x0040295c andi t8, t8, 0xff             |     t8 &= 0xff;
                                             |     if (t8 != 0) {
    0x00402960 beqz t8, 0x402974             |         
    0x00402964 nop                           |         
    0x00402968 addiu t8, zero, -1            |         t8 = -1;
    0x0040296c b 0x4031d0                    |         goto label_0;
    0x00402970 nop                           |         
                                             |     }
    0x00402974 lw a0, 0x30(fp)               |     a0 = *(arg_30h);
    0x00402978 addiu a1, zero, 1             |     a1 = 1;
    0x0040297c addiu a2, zero, 0x400         |     a2 = 0x400;
    0x00402980 lw a3, 0x38(fp)               |     a3 = *(arg_38h);
    0x00402984 lw t8, -0x7ea4(gp)            |     t8 = sym.imp.fread;
    0x00402988 move t9, t8                   |     t9 = t8;
    0x0040298c jalr t9                       |     t9 ();
    0x00402990 nop                           |     
    0x00402994 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00402998 lw a0, 0x38(fp)               |     a0 = *(arg_38h);
    0x0040299c lw t8, -0x7e9c(gp)            |     t8 = sym.imp.pclose;
    0x004029a0 move t9, t8                   |     t9 = t8;
    0x004029a4 jalr t9                       |     t9 ();
    0x004029a8 nop                           |     
    0x004029ac lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x004029b0 lw t8, -0x7e94(gp)            |     t8 = *((gp - 8101));
    0x004029b4 lw t8, (t8)                   |     t8 = *(t8);
    0x004029b8 move a0, t8                   |     a0 = t8;
    0x004029bc lw t8, -0x7fdc(gp)            |     t8 = *((gp - 8183));
                                             |     /* str.buf:__s__n */
    0x004029c0 addiu a1, t8, -0x6f5c         |     a1 = t8 + -0x6f5c;
    0x004029c4 lw a2, 0x30(fp)               |     a2 = *(arg_30h);
    0x004029c8 lw t8, -0x7ef0(gp)            |     t8 = sym.imp.fprintf
    0x004029cc move t9, t8                   |     t9 = t8;
    0x004029d0 jalr t9                       |     t9 ();
    0x004029d4 nop                           |     
    0x004029d8 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x004029dc lw a0, 0x24(fp)               |     a0 = *(arg_24h);
    0x004029e0 addiu a1, zero, 0x194         |     a1 = 0x194;
    0x004029e4 lw t8, -0x7eec(gp)            |     t8 = sym.imp.bzero;
    0x004029e8 move t9, t8                   |     t9 = t8;
    0x004029ec jalr t9                       |     t9 ();
    0x004029f0 nop                           |     
    0x004029f4 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x004029f8 lw t8, 0x30(fp)               |     t8 = *(arg_30h);
    0x004029fc sw t8, 0x3c(fp)               |     *(arg_3ch) = t8;
    0x00402a00 lw t8, -0x7fdc(gp)            |     t8 = *((gp - 8183));
                                             |     /* str.bssid */
    0x00402a04 addiu t8, t8, -0x6f48         |     t8 += -0x6f48;
    0x00402a08 sw t8, 0x10(sp)               |     *(var_10h) = t8;
    0x00402a0c lw a0, 0x30(fp)               |     a0 = *(arg_30h);
    0x00402a10 lw t8, -0x7fdc(gp)            |     t8 = *((gp - 8183));
                                             |     /* str.ssid */
    0x00402a14 addiu a1, t8, -0x6f50         |     a1 = t8 + -0x6f50;
    0x00402a18 lw a2, 0x34(fp)               |     a2 = *(arg_34h);
    0x00402a1c addiu a3, zero, 0x400         |     a3 = 0x400;
    0x00402a20 lw t8, -0x7fd8(gp)            |     t8 = sym.wps_go_get_key_parameter_from_memory_char_const__char_const__char__int__char_const_;
    0x00402a24 move t9, t8                   |     t9 = t8;
    0x00402a28 jalr t9                       |     t9 ();
    0x00402a2c nop                           |     
    0x00402a30 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00402a34 move t8, v0                   |     t8 = v0;
    0x00402a38 sw t8, 0x3c(fp)               |     *(arg_3ch) = t8;
    0x00402a3c lw t8, 0x3c(fp)               |     t8 = *(arg_3ch);
    0x00402a40 sltu t8, zero, t8             |     t8 = (0 < t8) ? 1 : 0;
    0x00402a44 andi t8, t8, 0xff             |     t8 &= 0xff;
                                             |     if (t8 != 0) {
    0x00402a48 beqz t8, 0x402aa8             |         
    0x00402a4c nop                           |         
    0x00402a50 lw t8, 0x24(fp)               |         t8 = *(arg_24h);
    0x00402a54 addiu t8, t8, 8               |         t8 += 8;
    0x00402a58 move a0, t8                   |         a0 = t8;
    0x00402a5c lw a1, 0x3c(fp)               |         a1 = *(arg_3ch);
    0x00402a60 lw t8, -0x7f48(gp)            |         t8 = sym.imp.strcpy;
    0x00402a64 move t9, t8                   |         t9 = t8;
    0x00402a68 jalr t9                       |         t9 ();
    0x00402a6c nop                           |         
    0x00402a70 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00402a74 lw t8, -0x7e94(gp)            |         t8 = *((gp - 8101));
    0x00402a78 lw v0, (t8)                   |         v0 = *(t8);
    0x00402a7c lw t8, 0x24(fp)               |         t8 = *(arg_24h);
    0x00402a80 addiu t8, t8, 8               |         t8 += 8;
    0x00402a84 move a0, v0                   |         a0 = v0;
    0x00402a88 lw v0, -0x7fdc(gp)            |         v0 = *((gp - 8183));
                                             |         /* str.wlan_config__ESSID:__s__n */
    0x00402a8c addiu a1, v0, -0x6f40         |         a1 = v0 + -0x6f40;
    0x00402a90 move a2, t8                   |         a2 = t8;
    0x00402a94 lw t8, -0x7ef0(gp)            |         t8 = sym.imp.fprintf
    0x00402a98 move t9, t8                   |         t9 = t8;
    0x00402a9c jalr t9                       |         t9 ();
    0x00402aa0 nop                           |         
    0x00402aa4 lw gp, 0x18(fp)               |         gp = *(arg_18h);
                                             |     }
    0x00402aa8 lw t8, -0x7e94(gp)            |     t8 = *((gp - 8101));
    0x00402aac lw t8, (t8)                   |     t8 = *(t8);
    0x00402ab0 move a0, t8                   |     a0 = t8;
    0x00402ab4 lw t8, -0x7fdc(gp)            |     t8 = *((gp - 8183));
                                             |     /* str._s__d__n */
    0x00402ab8 addiu a1, t8, -0x6f24         |     a1 = t8 + -0x6f24;
    0x00402abc lw t8, -0x7fdc(gp)            |     t8 = *((gp - 8183));
                                             |     /* str.wps_go_read_wlan_config_by_wpa_cli */
    0x00402ac0 addiu a2, t8, -0x5860         |     a2 = t8 + -0x5860;
    0x00402ac4 addiu a3, zero, 0xe1          |     a3 = 0xe1;
    0x00402ac8 lw t8, -0x7ef0(gp)            |     t8 = sym.imp.fprintf
    0x00402acc move t9, t8                   |     t9 = t8;
    0x00402ad0 jalr t9                       |     t9 ();
    0x00402ad4 nop                           |     
    0x00402ad8 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00402adc sw zero, 0x10(sp)             |     *(var_10h) = 0;
    0x00402ae0 lw a0, 0x30(fp)               |     a0 = *(arg_30h);
    0x00402ae4 lw t8, -0x7fdc(gp)            |     t8 = *((gp - 8183));
                                             |     /* str.passphrase */
    0x00402ae8 addiu a1, t8, -0x6f1c         |     a1 = t8 + -0x6f1c;
    0x00402aec lw a2, 0x34(fp)               |     a2 = *(arg_34h);
    0x00402af0 addiu a3, zero, 0x400         |     a3 = 0x400;
    0x00402af4 lw t8, -0x7fd8(gp)            |     t8 = sym.wps_go_get_key_parameter_from_memory_char_const__char_const__char__int__char_const_;
    0x00402af8 move t9, t8                   |     t9 = t8;
    0x00402afc jalr t9                       |     t9 ();
    0x00402b00 nop                           |     
    0x00402b04 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00402b08 move t8, v0                   |     t8 = v0;
    0x00402b0c sw t8, 0x3c(fp)               |     *(arg_3ch) = t8;
    0x00402b10 lw t8, 0x3c(fp)               |     t8 = *(arg_3ch);
    0x00402b14 sltu t8, zero, t8             |     t8 = (0 < t8) ? 1 : 0;
    0x00402b18 andi t8, t8, 0xff             |     t8 &= 0xff;
                                             |     if (t8 != 0) {
    0x00402b1c beqz t8, 0x402b84             |         
    0x00402b20 nop                           |         
    0x00402b24 lw t8, 0x24(fp)               |         t8 = *(arg_24h);
    0x00402b28 addiu t8, t8, 0x14c           |         t8 += 0x14c;
    0x00402b2c move a0, t8                   |         a0 = t8;
    0x00402b30 lw a1, 0x3c(fp)               |         a1 = *(arg_3ch);
    0x00402b34 lw t8, -0x7f48(gp)            |         t8 = sym.imp.strcpy;
    0x00402b38 move t9, t8                   |         t9 = t8;
    0x00402b3c jalr t9                       |         t9 ();
    0x00402b40 nop                           |         
    0x00402b44 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00402b48 lw t8, -0x7e94(gp)            |         t8 = *((gp - 8101));
    0x00402b4c lw v0, (t8)                   |         v0 = *(t8);
    0x00402b50 lw t8, 0x24(fp)               |         t8 = *(arg_24h);
    0x00402b54 addiu t8, t8, 0x14c           |         t8 += 0x14c;
    0x00402b58 move a0, v0                   |         a0 = v0;
    0x00402b5c lw v0, -0x7fdc(gp)            |         v0 = *((gp - 8183));
                                             |         /* str.wlan_config__Password:__s__n */
    0x00402b60 addiu a1, v0, -0x6f10         |         a1 = v0 + -0x6f10;
    0x00402b64 move a2, t8                   |         a2 = t8;
    0x00402b68 lw t8, -0x7ef0(gp)            |         t8 = sym.imp.fprintf
    0x00402b6c move t9, t8                   |         t9 = t8;
    0x00402b70 jalr t9                       |         t9 ();
    0x00402b74 nop                           |         
    0x00402b78 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00402b7c b 0x402d54                    |         goto label_1;
    0x00402b80 nop                           |         
                                             |     }
    0x00402b84 lw t8, -0x7fdc(gp)            |     t8 = *((gp - 8183));
                                             |     /* str._tmp_wpa_supplicant.conf */
    0x00402b88 addiu a0, t8, -0x6ef4         |     a0 = t8 + -0x6ef4;
    0x00402b8c lw t8, -0x7fdc(gp)            |     t8 = *((gp - 8183));
                                             |     /* section..rodata */
    0x00402b90 addiu a1, t8, -0x7130         |     a1 = t8 + -0x7130;
    0x00402b94 lw t8, -0x7e54(gp)            |     t8 = sym.imp.fopen64;
    0x00402b98 move t9, t8                   |     t9 = t8;
    0x00402b9c jalr t9                       |     t9 ();
    0x00402ba0 nop                           |     
    0x00402ba4 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00402ba8 move t8, v0                   |     t8 = v0;
    0x00402bac sw t8, 0x38(fp)               |     *(arg_38h) = t8;
    0x00402bb0 lw t8, 0x38(fp)               |     t8 = *(arg_38h);
    0x00402bb4 sltu t8, zero, t8             |     t8 = (0 < t8) ? 1 : 0;
    0x00402bb8 andi t8, t8, 0xff             |     t8 &= 0xff;
                                             |     if (t8 == 0) {
    0x00402bbc beqz t8, 0x402d54             |         goto label_1;
                                             |     }
    0x00402bc0 nop                           |     
    0x00402bc4 sw zero, 0x2c(fp)             |     *(arg_2ch) = 0;
    0x00402bc8 b 0x402d08                    |     goto label_2;
    0x00402bcc nop                           |     
                                             |     do {
    0x00402bd0 lw a0, 0x34(fp)               |         a0 = *(arg_34h);
    0x00402bd4 lw t8, -0x7fdc(gp)            |         t8 = *((gp - 8183));
                                             |         /* str.psk */
    0x00402bd8 addiu a1, t8, -0x6ed8         |         a1 = t8 + -0x6ed8;
    0x00402bdc lw t8, -0x7f10(gp)            |         t8 = sym.imp.strstr;
    0x00402be0 move t9, t8                   |         t9 = t8;
    0x00402be4 jalr t9                       |         t9 ();
    0x00402be8 nop                           |         
    0x00402bec lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00402bf0 sw v0, 0x40(fp)               |         *(arg_40h) = v0;
    0x00402bf4 lw t8, 0x40(fp)               |         t8 = *(arg_40h);
                                             |         if (t8 != 0) {
    0x00402bf8 beqz t8, 0x402c1c             |             
    0x00402bfc nop                           |             
    0x00402c00 lw v0, 0x2c(fp)               |             v0 = *(arg_2ch);
    0x00402c04 addiu t8, zero, 1             |             t8 = 1;
                                             |             if (v0 != t8) {
    0x00402c08 bne v0, t8, 0x402c1c          |                 goto label_3;
                                             |             }
    0x00402c0c nop                           |             
    0x00402c10 addiu t8, zero, 1             |             t8 = 1;
    0x00402c14 b 0x402c20                    |             goto label_4;
    0x00402c18 nop                           |             
                                             |         }
                                             | label_3:
    0x00402c1c move t8, zero                 |         t8 = 0;
                                             |         if (t8 != 0) {
                                             | label_4:
    0x00402c20 beqz t8, 0x402cd4             |             
    0x00402c24 nop                           |             
    0x00402c28 lw t8, 0x24(fp)               |             t8 = *(arg_24h);
    0x00402c2c addiu v0, t8, 0x14c           |             v0 = t8 + 0x14c;
    0x00402c30 lw t8, 0x40(fp)               |             t8 = *(arg_40h);
    0x00402c34 addiu t8, t8, 5               |             t8 += 5;
    0x00402c38 move a0, v0                   |             a0 = v0;
    0x00402c3c move a1, t8                   |             a1 = t8;
    0x00402c40 lw t8, -0x7f48(gp)            |             t8 = sym.imp.strcpy;
    0x00402c44 move t9, t8                   |             t9 = t8;
    0x00402c48 jalr t9                       |             t9 ();
    0x00402c4c nop                           |             
    0x00402c50 lw gp, 0x18(fp)               |             gp = *(arg_18h);
    0x00402c54 lw t8, 0x24(fp)               |             t8 = *(arg_24h);
    0x00402c58 addiu t8, t8, 0x14c           |             t8 += 0x14c;
    0x00402c5c move a0, t8                   |             a0 = t8;
    0x00402c60 lw t8, -0x7e5c(gp)            |             t8 = sym.imp.strlen;
    0x00402c64 move t9, t8                   |             t9 = t8;
    0x00402c68 jalr t9                       |             t9 ();
    0x00402c6c nop                           |             
    0x00402c70 lw gp, 0x18(fp)               |             gp = *(arg_18h);
    0x00402c74 move t8, v0                   |             t8 = v0;
    0x00402c78 addiu t8, t8, -2              |             t8 += -2;
    0x00402c7c addiu t8, t8, 0x148           |             t8 += 0x148;
    0x00402c80 lw v0, 0x24(fp)               |             v0 = *(arg_24h);
    0x00402c84 addu t8, v0, t8               |             t8 = v0 + t8;
    0x00402c88 addiu t8, t8, 4               |             t8 += 4;
    0x00402c8c sw t8, 0x40(fp)               |             *(arg_40h) = t8;
    0x00402c90 lw t8, 0x40(fp)               |             t8 = *(arg_40h);
    0x00402c94 sb zero, (t8)                 |             *(t8) = 0;
    0x00402c98 lw t8, -0x7e94(gp)            |             t8 = *((gp - 8101));
    0x00402c9c lw v0, (t8)                   |             v0 = *(t8);
    0x00402ca0 lw t8, 0x24(fp)               |             t8 = *(arg_24h);
    0x00402ca4 addiu t8, t8, 0x14c           |             t8 += 0x14c;
    0x00402ca8 move a0, v0                   |             a0 = v0;
    0x00402cac lw v0, -0x7fdc(gp)            |             v0 = *((gp - 8183));
                                             |             /* str.wlan_config__Password:__s__n */
    0x00402cb0 addiu a1, v0, -0x6f10         |             a1 = v0 + -0x6f10;
    0x00402cb4 move a2, t8                   |             a2 = t8;
    0x00402cb8 lw t8, -0x7ef0(gp)            |             t8 = sym.imp.fprintf
    0x00402cbc move t9, t8                   |             t9 = t8;
    0x00402cc0 jalr t9                       |             t9 ();
    0x00402cc4 nop                           |             
    0x00402cc8 lw gp, 0x18(fp)               |             gp = *(arg_18h);
    0x00402ccc b 0x402d3c                    |             goto label_5;
    0x00402cd0 nop                           |             
                                             |         }
    0x00402cd4 lw a0, 0x34(fp)               |         a0 = *(arg_34h);
    0x00402cd8 lw t8, -0x7fdc(gp)            |         t8 = *((gp - 8183));
                                             |         /* str.ssid */
    0x00402cdc addiu a1, t8, -0x6f50         |         a1 = t8 + -0x6f50;
    0x00402ce0 lw t8, -0x7f10(gp)            |         t8 = sym.imp.strstr;
    0x00402ce4 move t9, t8                   |         t9 = t8;
    0x00402ce8 jalr t9                       |         t9 ();
    0x00402cec nop                           |         
    0x00402cf0 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00402cf4 move t8, v0                   |         t8 = v0;
                                             |         if (t8 != 0) {
    0x00402cf8 beqz t8, 0x402d08             |             
    0x00402cfc nop                           |             
    0x00402d00 addiu t8, zero, 1             |             t8 = 1;
    0x00402d04 sw t8, 0x2c(fp)               |             *(arg_2ch) = t8;
                                             |         }
                                             | label_2:
    0x00402d08 lw a0, 0x34(fp)               |         a0 = *(arg_34h);
    0x00402d0c addiu a1, zero, 0x400         |         a1 = 0x400;
    0x00402d10 lw a2, 0x38(fp)               |         a2 = *(arg_38h);
    0x00402d14 lw t8, -0x7ed0(gp)            |         t8 = sym.imp.fgets;
    0x00402d18 move t9, t8                   |         t9 = t8;
    0x00402d1c jalr t9                       |         t9 ();
    0x00402d20 nop                           |         
    0x00402d24 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00402d28 move t8, v0                   |         t8 = v0;
    0x00402d2c sltu t8, zero, t8             |         t8 = (0 < t8) ? 1 : 0;
    0x00402d30 andi t8, t8, 0xff             |         t8 &= 0xff;
    0x00402d34 bnez t8, 0x402bd0             |         
                                             |     } while (t8 != 0);
    0x00402d38 nop                           |     
                                             | label_5:
    0x00402d3c lw a0, 0x38(fp)               |     a0 = *(arg_38h);
    0x00402d40 lw t8, -0x7ea0(gp)            |     t8 = sym.imp.fclose;
    0x00402d44 move t9, t8                   |     t9 = t8;
    0x00402d48 jalr t9                       |     t9 ();
    0x00402d4c nop                           |     
    0x00402d50 lw gp, 0x18(fp)               |     gp = *(arg_18h);
                                             | label_1:
    0x00402d54 lw t8, -0x7e94(gp)            |     t8 = *((gp - 8101));
    0x00402d58 lw t8, (t8)                   |     t8 = *(t8);
    0x00402d5c move a0, t8                   |     a0 = t8;
    0x00402d60 lw t8, -0x7fdc(gp)            |     t8 = *((gp - 8183));
                                             |     /* str._s__d__n */
    0x00402d64 addiu a1, t8, -0x6f24         |     a1 = t8 + -0x6f24;
    0x00402d68 lw t8, -0x7fdc(gp)            |     t8 = *((gp - 8183));
                                             |     /* str.wps_go_read_wlan_config_by_wpa_cli */
    0x00402d6c addiu a2, t8, -0x5860         |     a2 = t8 + -0x5860;
    0x00402d70 addiu a3, zero, 0xf8          |     a3 = 0xf8;
    0x00402d74 lw t8, -0x7ef0(gp)            |     t8 = sym.imp.fprintf
    0x00402d78 move t9, t8                   |     t9 = t8;
    0x00402d7c jalr t9                       |     t9 ();
    0x00402d80 nop                           |     
    0x00402d84 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00402d88 sw zero, 0x10(sp)             |     *(var_10h) = 0;
    0x00402d8c lw a0, 0x30(fp)               |     a0 = *(arg_30h);
    0x00402d90 lw t8, -0x7fdc(gp)            |     t8 = *((gp - 8183));
                                             |     /* str.key_mgmt */
    0x00402d94 addiu a1, t8, -0x6ed0         |     a1 = t8 + -0x6ed0;
    0x00402d98 lw a2, 0x34(fp)               |     a2 = *(arg_34h);
    0x00402d9c addiu a3, zero, 0x400         |     a3 = 0x400;
    0x00402da0 lw t8, -0x7fd8(gp)            |     t8 = sym.wps_go_get_key_parameter_from_memory_char_const__char_const__char__int__char_const_;
    0x00402da4 move t9, t8                   |     t9 = t8;
    0x00402da8 jalr t9                       |     t9 ();
    0x00402dac nop                           |     
    0x00402db0 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00402db4 move t8, v0                   |     t8 = v0;
    0x00402db8 sw t8, 0x3c(fp)               |     *(arg_3ch) = t8;
    0x00402dbc lw t8, 0x3c(fp)               |     t8 = *(arg_3ch);
    0x00402dc0 sltu t8, zero, t8             |     t8 = (0 < t8) ? 1 : 0;
    0x00402dc4 andi t8, t8, 0xff             |     t8 &= 0xff;
                                             |     if (t8 != 0) {
    0x00402dc8 beqz t8, 0x402ecc             |         
    0x00402dcc nop                           |         
    0x00402dd0 lw a0, 0x3c(fp)               |         a0 = *(arg_3ch);
    0x00402dd4 lw t8, -0x7fdc(gp)            |         t8 = *((gp - 8183));
                                             |         /* str.NONE */
    0x00402dd8 addiu a1, t8, -0x6ec4         |         a1 = t8 + -0x6ec4;
    0x00402ddc lw t8, -0x7f18(gp)            |         t8 = sym.imp.strcmp;
    0x00402de0 move t9, t8                   |         t9 = t8;
    0x00402de4 jalr t9                       |         t9 ();
    0x00402de8 nop                           |         
    0x00402dec lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00402df0 move t8, v0                   |         t8 = v0;
                                             |         if (t8 == 0) {
    0x00402df4 bnez t8, 0x402e0c             |             
    0x00402df8 nop                           |             
    0x00402dfc lw t8, 0x24(fp)               |             t8 = *(arg_24h);
    0x00402e00 sw zero, 0x30(t8)             |             *((t8 + 48)) = 0;
    0x00402e04 b 0x402e98                    |             goto label_6;
    0x00402e08 nop                           |             
                                             |         }
    0x00402e0c lw a0, 0x3c(fp)               |         a0 = *(arg_3ch);
    0x00402e10 lw t8, -0x7fdc(gp)            |         t8 = *((gp - 8183));
                                             |         /* str.WPA_PSK */
    0x00402e14 addiu a1, t8, -0x6ebc         |         a1 = t8 + -0x6ebc;
    0x00402e18 lw t8, -0x7f18(gp)            |         t8 = sym.imp.strcmp;
    0x00402e1c move t9, t8                   |         t9 = t8;
    0x00402e20 jalr t9                       |         t9 ();
    0x00402e24 nop                           |         
    0x00402e28 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00402e2c move t8, v0                   |         t8 = v0;
                                             |         if (t8 == 0) {
    0x00402e30 bnez t8, 0x402e4c             |             
    0x00402e34 nop                           |             
    0x00402e38 lw t8, 0x24(fp)               |             t8 = *(arg_24h);
    0x00402e3c addiu v0, zero, 2             |             v0 = 2;
    0x00402e40 sw v0, 0x30(t8)               |             *((t8 + 48)) = v0;
    0x00402e44 b 0x402e98                    |             goto label_6;
    0x00402e48 nop                           |             
                                             |         }
    0x00402e4c lw a0, 0x3c(fp)               |         a0 = *(arg_3ch);
    0x00402e50 lw t8, -0x7fdc(gp)            |         t8 = *((gp - 8183));
                                             |         /* str.WPA2_PSK */
    0x00402e54 addiu a1, t8, -0x6eb4         |         a1 = t8 + -0x6eb4;
    0x00402e58 lw t8, -0x7f18(gp)            |         t8 = sym.imp.strcmp;
    0x00402e5c move t9, t8                   |         t9 = t8;
    0x00402e60 jalr t9                       |         t9 ();
    0x00402e64 nop                           |         
    0x00402e68 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x00402e6c move t8, v0                   |         t8 = v0;
                                             |         if (t8 == 0) {
    0x00402e70 bnez t8, 0x402e8c             |             
    0x00402e74 nop                           |             
    0x00402e78 lw t8, 0x24(fp)               |             t8 = *(arg_24h);
    0x00402e7c addiu v0, zero, 5             |             v0 = 5;
    0x00402e80 sw v0, 0x30(t8)               |             *((t8 + 48)) = v0;
    0x00402e84 b 0x402e98                    |             goto label_6;
    0x00402e88 nop                           |             
                                             |         }
    0x00402e8c lw t8, 0x24(fp)               |         t8 = *(arg_24h);
    0x00402e90 addiu v0, zero, 1             |         v0 = 1;
    0x00402e94 sw v0, 0x30(t8)               |         *((t8 + 48)) = v0;
                                             | label_6:
    0x00402e98 lw t8, -0x7e94(gp)            |         t8 = *((gp - 8101));
    0x00402e9c lw v0, (t8)                   |         v0 = *(t8);
    0x00402ea0 lw t8, 0x24(fp)               |         t8 = *(arg_24h);
    0x00402ea4 lw t8, 0x30(t8)               |         t8 = *((t8 + 12));
    0x00402ea8 move a0, v0                   |         a0 = v0;
    0x00402eac lw v0, -0x7fdc(gp)            |         v0 = *((gp - 8183));
                                             |         /* str.wlan_config__Authmode:__d__n */
    0x00402eb0 addiu a1, v0, -0x6ea8         |         a1 = v0 + -0x6ea8;
    0x00402eb4 move a2, t8                   |         a2 = t8;
    0x00402eb8 lw t8, -0x7ef0(gp)            |         t8 = sym.imp.fprintf
    0x00402ebc move t9, t8                   |         t9 = t8;
    0x00402ec0 jalr t9                       |         t9 ();
    0x00402ec4 nop                           |         
    0x00402ec8 lw gp, 0x18(fp)               |         gp = *(arg_18h);
                                             |     }
    0x00402ecc lw t8, -0x7e94(gp)            |     t8 = *((gp - 8101));
    0x00402ed0 lw t8, (t8)                   |     t8 = *(t8);
    0x00402ed4 move a0, t8                   |     a0 = t8;
    0x00402ed8 lw t8, -0x7fdc(gp)            |     t8 = *((gp - 8183));
                                             |     /* str._s__d__n */
    0x00402edc addiu a1, t8, -0x6f24         |     a1 = t8 + -0x6f24;
    0x00402ee0 lw t8, -0x7fdc(gp)            |     t8 = *((gp - 8183));
                                             |     /* str.wps_go_read_wlan_config_by_wpa_cli */
    0x00402ee4 addiu a2, t8, -0x5860         |     a2 = t8 + -0x5860;
    0x00402ee8 addiu a3, zero, 0x107         |     a3 = 0x107;
    0x00402eec lw t8, -0x7ef0(gp)            |     t8 = sym.imp.fprintf
    0x00402ef0 move t9, t8                   |     t9 = t8;
    0x00402ef4 jalr t9                       |     t9 ();
    0x00402ef8 nop                           |     
    0x00402efc lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00402f00 sw zero, 0x10(sp)             |     *(var_10h) = 0;
    0x00402f04 lw a0, 0x30(fp)               |     a0 = *(arg_30h);
    0x00402f08 lw t8, -0x7fdc(gp)            |     t8 = *((gp - 8183));
                                             |     /* str.pairwise_cipher */
    0x00402f0c addiu a1, t8, -0x6e8c         |     a1 = t8 + -0x6e8c;
    0x00402f10 lw a2, 0x34(fp)               |     a2 = *(arg_34h);
    0x00402f14 addiu a3, zero, 0x400         |     a3 = 0x400;
    0x00402f18 lw t8, -0x7fd8(gp)            |     t8 = sym.wps_go_get_key_parameter_from_memory_char_const__char_const__char__int__char_const_;
    0x00402f1c move t9, t8                   |     t9 = t8;
    0x00402f20 jalr t9                       |     t9 ();
    0x00402f24 nop                           |     
    0x00402f28 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00402f2c move t8, v0                   |     t8 = v0;
    0x00402f30 sw t8, 0x3c(fp)               |     *(arg_3ch) = t8;
    0x00402f34 addiu t8, fp, 0x44            |     t8 = fp + 0x44;
    0x00402f38 move a0, t8                   |     a0 = t8;
    0x00402f3c lw a1, 0x3c(fp)               |     a1 = *(arg_3ch);
    0x00402f40 addiu a2, zero, 0x10          |     a2 = 0x10;
    0x00402f44 lw t8, -0x7ed4(gp)            |     t8 = sym.imp.strncpy;
    0x00402f48 move t9, t8                   |     t9 = t8;
    0x00402f4c jalr t9                       |     t9 ();
    0x00402f50 nop                           |     
    0x00402f54 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00402f58 sw zero, 0x10(sp)             |     *(var_10h) = 0;
    0x00402f5c lw a0, 0x30(fp)               |     a0 = *(arg_30h);
    0x00402f60 lw t8, -0x7fdc(gp)            |     t8 = *((gp - 8183));
                                             |     /* str.group_cipher */
    0x00402f64 addiu a1, t8, -0x6e78         |     a1 = t8 + -0x6e78;
    0x00402f68 lw a2, 0x34(fp)               |     a2 = *(arg_34h);
    0x00402f6c addiu a3, zero, 0x400         |     a3 = 0x400;
    0x00402f70 lw t8, -0x7fd8(gp)            |     t8 = sym.wps_go_get_key_parameter_from_memory_char_const__char_const__char__int__char_const_;
    0x00402f74 move t9, t8                   |     t9 = t8;
    0x00402f78 jalr t9                       |     t9 ();
    0x00402f7c nop                           |     
    0x00402f80 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00402f84 move t8, v0                   |     t8 = v0;
    0x00402f88 sw t8, 0x3c(fp)               |     *(arg_3ch) = t8;
    0x00402f8c addiu t8, fp, 0x54            |     t8 = fp + 0x54;
    0x00402f90 move a0, t8                   |     a0 = t8;
    0x00402f94 lw a1, 0x3c(fp)               |     a1 = *(arg_3ch);
    0x00402f98 addiu a2, zero, 0x10          |     a2 = 0x10;
    0x00402f9c lw t8, -0x7ed4(gp)            |     t8 = sym.imp.strncpy;
    0x00402fa0 move t9, t8                   |     t9 = t8;
    0x00402fa4 jalr t9                       |     t9 ();
    0x00402fa8 nop                           |     
    0x00402fac lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00402fb0 lw t8, -0x7e94(gp)            |     t8 = *((gp - 8101));
    0x00402fb4 lw v1, (t8)                   |     v1 = *(t8);
    0x00402fb8 addiu v0, fp, 0x44            |     v0 = fp + 0x44;
    0x00402fbc addiu t8, fp, 0x54            |     t8 = fp + 0x54;
    0x00402fc0 move a0, v1                   |     a0 = v1;
    0x00402fc4 lw v1, -0x7fdc(gp)            |     v1 = *((gp - 8183));
                                             |     /* str.pairwise_s_ngroup_s_n */
    0x00402fc8 addiu a1, v1, -0x6e68         |     a1 = v1 + -0x6e68;
    0x00402fcc move a2, v0                   |     a2 = v0;
    0x00402fd0 move a3, t8                   |     a3 = t8;
    0x00402fd4 lw t8, -0x7ef0(gp)            |     t8 = sym.imp.fprintf
    0x00402fd8 move t9, t8                   |     t9 = t8;
    0x00402fdc jalr t9                       |     t9 ();
    0x00402fe0 nop                           |     
    0x00402fe4 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00402fe8 addiu t8, fp, 0x44            |     t8 = fp + 0x44;
    0x00402fec move a0, t8                   |     a0 = t8;
    0x00402ff0 lw t8, -0x7fdc(gp)            |     t8 = *((gp - 8183));
                                             |     /* str.CCMP */
    0x00402ff4 addiu a1, t8, -0x6e50         |     a1 = t8 + -0x6e50;
    0x00402ff8 lw t8, -0x7f18(gp)            |     t8 = sym.imp.strcmp;
    0x00402ffc move t9, t8                   |     t9 = t8;
    0x00403000 jalr t9                       |     t9 ();
    0x00403004 nop                           |     
    0x00403008 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040300c move t8, v0                   |     t8 = v0;
                                             |     if (t8 == 0) {
    0x00403010 bnez t8, 0x40305c             |         
    0x00403014 nop                           |         
    0x00403018 addiu t8, fp, 0x54            |         t8 = fp + 0x54;
    0x0040301c move a0, t8                   |         a0 = t8;
    0x00403020 lw t8, -0x7fdc(gp)            |         t8 = *((gp - 8183));
                                             |         /* str.CCMP */
    0x00403024 addiu a1, t8, -0x6e50         |         a1 = t8 + -0x6e50;
    0x00403028 lw t8, -0x7f18(gp)            |         t8 = sym.imp.strcmp;
    0x0040302c move t9, t8                   |         t9 = t8;
    0x00403030 jalr t9                       |         t9 ();
    0x00403034 nop                           |         
    0x00403038 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040303c move t8, v0                   |         t8 = v0;
                                             |         if (t8 != 0) {
    0x00403040 bnez t8, 0x40305c             |             goto label_7;
                                             |         }
    0x00403044 nop                           |         
    0x00403048 lw t8, 0x24(fp)               |         t8 = *(arg_24h);
    0x0040304c addiu v0, zero, 3             |         v0 = 3;
    0x00403050 sw v0, 0x34(t8)               |         *((t8 + 52)) = v0;
    0x00403054 b 0x4030c8                    |         goto label_8;
    0x00403058 nop                           |         
                                             |     }
                                             | label_7:
    0x0040305c addiu t8, fp, 0x44            |     t8 = fp + 0x44;
    0x00403060 move a0, t8                   |     a0 = t8;
    0x00403064 lw t8, -0x7fdc(gp)            |     t8 = *((gp - 8183));
                                             |     /* str.TKIP */
    0x00403068 addiu a1, t8, -0x6e48         |     a1 = t8 + -0x6e48;
    0x0040306c lw t8, -0x7f18(gp)            |     t8 = sym.imp.strcmp;
    0x00403070 move t9, t8                   |     t9 = t8;
    0x00403074 jalr t9                       |     t9 ();
    0x00403078 nop                           |     
    0x0040307c lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403080 move t8, v0                   |     t8 = v0;
                                             |     if (t8 == 0) {
    0x00403084 bnez t8, 0x4030c8             |         
    0x00403088 nop                           |         
    0x0040308c addiu t8, fp, 0x54            |         t8 = fp + 0x54;
    0x00403090 move a0, t8                   |         a0 = t8;
    0x00403094 lw t8, -0x7fdc(gp)            |         t8 = *((gp - 8183));
                                             |         /* str.TKIP */
    0x00403098 addiu a1, t8, -0x6e48         |         a1 = t8 + -0x6e48;
    0x0040309c lw t8, -0x7f18(gp)            |         t8 = sym.imp.strcmp;
    0x004030a0 move t9, t8                   |         t9 = t8;
    0x004030a4 jalr t9                       |         t9 ();
    0x004030a8 nop                           |         
    0x004030ac lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x004030b0 move t8, v0                   |         t8 = v0;
                                             |         if (t8 != 0) {
    0x004030b4 bnez t8, 0x4030c8             |             goto label_8;
                                             |         }
    0x004030b8 nop                           |         
    0x004030bc lw t8, 0x24(fp)               |         t8 = *(arg_24h);
    0x004030c0 addiu v0, zero, 2             |         v0 = 2;
    0x004030c4 sw v0, 0x34(t8)               |         *((t8 + 52)) = v0;
                                             |     }
                                             | label_8:
    0x004030c8 addiu t8, fp, 0x44            |     t8 = fp + 0x44;
    0x004030cc move a0, t8                   |     a0 = t8;
    0x004030d0 lw t8, -0x7fdc(gp)            |     t8 = *((gp - 8183));
                                             |     /* str.CCMP */
    0x004030d4 addiu a1, t8, -0x6e50         |     a1 = t8 + -0x6e50;
    0x004030d8 lw t8, -0x7f18(gp)            |     t8 = sym.imp.strcmp;
    0x004030dc move t9, t8                   |     t9 = t8;
    0x004030e0 jalr t9                       |     t9 ();
    0x004030e4 nop                           |     
    0x004030e8 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x004030ec move t8, v0                   |     t8 = v0;
                                             |     if (t8 == 0) {
    0x004030f0 bnez t8, 0x403134             |         
    0x004030f4 nop                           |         
    0x004030f8 addiu t8, fp, 0x54            |         t8 = fp + 0x54;
    0x004030fc move a0, t8                   |         a0 = t8;
    0x00403100 lw t8, -0x7fdc(gp)            |         t8 = *((gp - 8183));
                                             |         /* str.TKIP */
    0x00403104 addiu a1, t8, -0x6e48         |         a1 = t8 + -0x6e48;
    0x00403108 lw t8, -0x7f18(gp)            |         t8 = sym.imp.strcmp;
    0x0040310c move t9, t8                   |         t9 = t8;
    0x00403110 jalr t9                       |         t9 ();
    0x00403114 nop                           |         
    0x00403118 lw gp, 0x18(fp)               |         gp = *(arg_18h);
    0x0040311c move t8, v0                   |         t8 = v0;
                                             |         if (t8 != 0) {
    0x00403120 bnez t8, 0x403134             |             goto label_9;
                                             |         }
    0x00403124 nop                           |         
    0x00403128 lw t8, 0x24(fp)               |         t8 = *(arg_24h);
    0x0040312c addiu v0, zero, 3             |         v0 = 3;
    0x00403130 sw v0, 0x34(t8)               |         *((t8 + 52)) = v0;
                                             |     }
                                             | label_9:
    0x00403134 lw t8, -0x7e94(gp)            |     t8 = *((gp - 8101));
    0x00403138 lw v0, (t8)                   |     v0 = *(t8);
    0x0040313c lw t8, 0x24(fp)               |     t8 = *(arg_24h);
    0x00403140 lw t8, 0x34(t8)               |     t8 = *((t8 + 13));
    0x00403144 move a0, v0                   |     a0 = v0;
    0x00403148 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
                                             |     /* str.wlan_config__SecMethod:__d__n */
    0x0040314c addiu a1, v0, -0x6e40         |     a1 = v0 + -0x6e40;
    0x00403150 move a2, t8                   |     a2 = t8;
    0x00403154 lw t8, -0x7ef0(gp)            |     t8 = sym.imp.fprintf
    0x00403158 move t9, t8                   |     t9 = t8;
    0x0040315c jalr t9                       |     t9 ();
    0x00403160 nop                           |     
    0x00403164 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x00403168 lw t8, -0x7e94(gp)            |     t8 = *((gp - 8101));
    0x0040316c lw t8, (t8)                   |     t8 = *(t8);
    0x00403170 move a0, t8                   |     a0 = t8;
    0x00403174 lw t8, -0x7fdc(gp)            |     t8 = *((gp - 8183));
                                             |     /* str._s__d__n */
    0x00403178 addiu a1, t8, -0x6f24         |     a1 = t8 + -0x6f24;
    0x0040317c lw t8, -0x7fdc(gp)            |     t8 = *((gp - 8183));
                                             |     /* str.wps_go_read_wlan_config_by_wpa_cli */
    0x00403180 addiu a2, t8, -0x5860         |     a2 = t8 + -0x5860;
    0x00403184 addiu a3, zero, 0x11c         |     a3 = 0x11c;
    0x00403188 lw t8, -0x7ef0(gp)            |     t8 = sym.imp.fprintf
    0x0040318c move t9, t8                   |     t9 = t8;
    0x00403190 jalr t9                       |     t9 ();
    0x00403194 nop                           |     
    0x00403198 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x0040319c lw a0, 0x30(fp)               |     a0 = *(arg_30h);
    0x004031a0 lw t8, -0x7f24(gp)            |     t8 = sym.imp.free;
    0x004031a4 move t9, t8                   |     t9 = t8;
    0x004031a8 jalr t9                       |     t9 ();
    0x004031ac nop                           |     
    0x004031b0 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x004031b4 lw a0, 0x34(fp)               |     a0 = *(arg_34h);
    0x004031b8 lw t8, -0x7f24(gp)            |     t8 = sym.imp.free;
    0x004031bc move t9, t8                   |     t9 = t8;
    0x004031c0 jalr t9                       |     t9 ();
    0x004031c4 nop                           |     
    0x004031c8 lw gp, 0x18(fp)               |     gp = *(arg_18h);
    0x004031cc move t8, zero                 |     t8 = 0;
                                             | label_0:
    0x004031d0 move v0, t8                   |     v0 = t8;
    0x004031d4 lw t8, -0x7e18(gp)            |     t8 = *((gp - 8070));
    0x004031d8 lw v1, 0x64(fp)               |     v1 = *(arg_64h);
    0x004031dc lw t8, (t8)                   |     t8 = *(t8);
                                             |     if (v1 != t8) {
    0x004031e0 beq v1, t8, 0x4031f8          |         
    0x004031e4 nop                           |         
    0x004031e8 lw t8, -0x7ea8(gp)            |         t8 = sym.imp.__stack_chk_fail;
    0x004031ec move t9, t8                   |         t9 = t8;
    0x004031f0 jalr t9                       |         t9 ();
    0x004031f4 nop                           |         
                                             |     }
    0x004031f8 move sp, fp                   |     
    0x004031fc lw ra, 0x6c(sp)               |     ra = *(var_6ch);
    0x00403200 lw fp, 0x68(sp)               |     fp = *(var_68h);
    0x00403204 addiu sp, sp, 0x70            |     
    0x00403208 jr ra                         |     return v1;
    0x0040320c nop                           |     
                                             | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/start_wps @ 0x403a1c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) sym.wps_create_wpa_supplicant_config__ ()        | void wps_create_wpa_supplicant_config_ () {
                                                             |     /* wps_create_wpa_supplicant_config() */
    0x00403a1c lui gp, 2                                     |     
    0x00403a20 addiu gp, gp, 0x604                           |     
    0x00403a24 addu gp, gp, t9                               |     gp += t9;
    0x00403a28 addiu sp, sp, -0x1058                         |     
    0x00403a2c sw ra, 0x1054(sp)                             |     *(var_1054h) = ra;
    0x00403a30 sw fp, 0x1050(sp)                             |     *(var_1050h) = fp;
    0x00403a34 sw s0, 0x104c(sp)                             |     *(var_104ch) = s0;
    0x00403a38 move fp, sp                                   |     fp = sp;
    0x00403a3c sw gp, 0x10(sp)                               |     *(var_10h) = gp;
    0x00403a40 lw t8, -0x7e18(gp)                            |     t8 = *((gp - 8070));
    0x00403a44 lw t8, (t8)                                   |     t8 = *(t8);
    0x00403a48 sw t8, 0x1044(fp)                             |     *(arg_1044h) = t8;
    0x00403a4c addiu t8, fp, 0x2c                            |     t8 = fp + 0x2c;
    0x00403a50 move a0, t8                                   |     a0 = t8;
    0x00403a54 lw t8, -0x7fd4(gp)                            |     t8 = *(gp);
    0x00403a58 move t9, t8                                   |     t9 = t8;
    0x00403a5c jalr t9                                       |     t9 ();
    0x00403a60 nop                                           |     
    0x00403a64 lw gp, 0x10(fp)                               |     gp = *(arg_10h);
    0x00403a68 lw t8, -0x7fdc(gp)                            |     t8 = *((gp - 8183));
                                                             |     /* str._tmp_wpa_supplicant.conf */
    0x00403a6c addiu a0, t8, -0x6ef4                         |     a0 = t8 + -0x6ef4;
    0x00403a70 lw t8, -0x7fdc(gp)                            |     t8 = *((gp - 8183));
                                                             |     /* esilref: 'w+' */
    0x00403a74 addiu a1, t8, -0x6d78                         |     a1 = t8 + -0x6d78;
    0x00403a78 lw t8, -0x7e54(gp)                            |     t8 = sym.imp.fopen64;
    0x00403a7c move t9, t8                                   |     t9 = t8;
    0x00403a80 jalr t9                                       |     t9 ();
    0x00403a84 nop                                           |     
    0x00403a88 lw gp, 0x10(fp)                               |     gp = *(arg_10h);
    0x00403a8c move t8, v0                                   |     t8 = v0;
    0x00403a90 sw t8, 0x28(fp)                               |     *(arg_28h) = t8;
    0x00403a94 lw t8, 0x28(fp)                               |     t8 = *(arg_28h);
                                                             |     if (t8 == 0) {
    0x00403a98 bnez t8, 0x403aac                             |         
    0x00403a9c nop                                           |         
    0x00403aa0 addiu s0, zero, -1                            |         s0 = -1;
    0x00403aa4 b 0x403c90                                    |         goto label_0;
    0x00403aa8 nop                                           |         
                                                             |     }
    0x00403aac addiu t8, fp, 0x2c                            |     t8 = fp + 0x2c;
    0x00403ab0 move a0, t8                                   |     a0 = t8;
    0x00403ab4 lw t8, -0x7fdc(gp)                            |     t8 = *((gp - 8183));
                                                             |     /* str.System */
    0x00403ab8 addiu a1, t8, -0x6d74                         |     a1 = t8 + -0x6d74;
    0x00403abc move a2, zero                                 |     a2 = 0;
    0x00403ac0 lw t8, -0x7f08(gp)                            |     t8 = *(gp);
    0x00403ac4 move t9, t8                                   |     t9 = t8;
    0x00403ac8 jalr t9                                       |     t9 ();
    0x00403acc nop                                           |     
    0x00403ad0 lw gp, 0x10(fp)                               |     gp = *(arg_10h);
    0x00403ad4 lw t8, -0x7fdc(gp)                            |     t8 = *((gp - 8183));
                                                             |     /* str.ctrl_interface_var_run_wpa_supplicant_n */
    0x00403ad8 addiu a0, t8, -0x6d6c                         |     a0 = t8 + -0x6d6c;
    0x00403adc addiu a1, zero, 1                             |     a1 = 1;
    0x00403ae0 addiu a2, zero, 0x27                          |     a2 = 0x27;
    0x00403ae4 lw a3, 0x28(fp)                               |     a3 = *(arg_28h);
    0x00403ae8 lw t8, -0x7e20(gp)                            |     t8 = sym.imp.fwrite;
    0x00403aec move t9, t8                                   |     t9 = t8;
    0x00403af0 jalr t9                                       |     t9 ();
    0x00403af4 nop                                           |     
    0x00403af8 lw gp, 0x10(fp)                               |     gp = *(arg_10h);
    0x00403afc lw t8, -0x7fdc(gp)                            |     t8 = *((gp - 8183));
                                                             |     /* str.device_type4_0050F204_3_n */
    0x00403b00 addiu a0, t8, -0x6d44                         |     a0 = t8 + -0x6d44;
    0x00403b04 addiu a1, zero, 1                             |     a1 = 1;
    0x00403b08 addiu a2, zero, 0x19                          |     a2 = 0x19;
    0x00403b0c lw a3, 0x28(fp)                               |     a3 = *(arg_28h);
    0x00403b10 lw t8, -0x7e20(gp)                            |     t8 = sym.imp.fwrite;
    0x00403b14 move t9, t8                                   |     t9 = t8;
    0x00403b18 jalr t9                                       |     t9 ();
    0x00403b1c nop                                           |     
    0x00403b20 lw gp, 0x10(fp)                               |     gp = *(arg_10h);
    0x00403b24 lw t8, -0x7fdc(gp)                            |     t8 = *((gp - 8183));
                                                             |     /* str.update_config1_n */
    0x00403b28 addiu a0, t8, -0x6d28                         |     a0 = t8 + -0x6d28;
    0x00403b2c addiu a1, zero, 1                             |     a1 = 1;
    0x00403b30 addiu a2, zero, 0x10                          |     a2 = 0x10;
    0x00403b34 lw a3, 0x28(fp)                               |     a3 = *(arg_28h);
    0x00403b38 lw t8, -0x7e20(gp)                            |     t8 = sym.imp.fwrite;
    0x00403b3c move t9, t8                                   |     t9 = t8;
    0x00403b40 jalr t9                                       |     t9 ();
    0x00403b44 nop                                           |     
    0x00403b48 lw gp, 0x10(fp)                               |     gp = *(arg_10h);
    0x00403b4c addiu t8, fp, 0x1c                            |     t8 = fp + 0x1c;
    0x00403b50 move a0, t8                                   |     a0 = t8;
    0x00403b54 lw t8, -0x7f2c(gp)                            |     t8 = *(gp);
    0x00403b58 move t9, t8                                   |     t9 = t8;
    0x00403b5c jalr t9                                       |     t9 ();
    0x00403b60 nop                                           |     
    0x00403b64 lw gp, 0x10(fp)                               |     gp = *(arg_10h);
    0x00403b68 addiu v0, fp, 0x20                            |     v0 = fp + 0x20;
    0x00403b6c addiu t8, fp, 0x1c                            |     t8 = fp + 0x1c;
    0x00403b70 move a0, v0                                   |     a0 = v0;
    0x00403b74 lw v0, -0x7fdc(gp)                            |     v0 = *((gp - 8183));
                                                             |     /* str.Model */
    0x00403b78 addiu a1, v0, -0x6d14                         |     a1 = v0 + -0x6d14;
    0x00403b7c move a2, t8                                   |     a2 = t8;
    0x00403b80 lw t8, -0x7ec0(gp)                            |     t8 = *(gp);
    0x00403b84 move t9, t8                                   |     t9 = t8;
    0x00403b88 jalr t9                                       |     t9 ();
    0x00403b8c nop                                           |     
    0x00403b90 lw gp, 0x10(fp)                               |     gp = *(arg_10h);
    0x00403b94 addiu v1, fp, 0x24                            |     v1 = fp + 0x24;
    0x00403b98 addiu v0, fp, 0x2c                            |     v0 = fp + 0x2c;
    0x00403b9c addiu t8, fp, 0x20                            |     t8 = fp + 0x20;
    0x00403ba0 move a0, v1                                   |     a0 = v1;
    0x00403ba4 move a1, v0                                   |     a1 = v0;
    0x00403ba8 move a2, t8                                   |     a2 = t8;
    0x00403bac lw t8, -0x7eb8(gp)                            |     t8 = *(gp);
    0x00403bb0 move t9, t8                                   |     t9 = t8;
    0x00403bb4 jalr t9                                       |     t9 ();
    0x00403bb8 nop                                           |     
    0x00403bbc lw gp, 0x10(fp)                               |     gp = *(arg_10h);
    0x00403bc0 addiu t8, fp, 0x24                            |     t8 = fp + 0x24;
    0x00403bc4 move a0, t8                                   |     a0 = t8;
    0x00403bc8 lw t8, -0x7e30(gp)                            |     t8 = *(gp);
    0x00403bcc move t9, t8                                   |     t9 = t8;
    0x00403bd0 jalr t9                                       |     t9 ();
    0x00403bd4 nop                                           |     
    0x00403bd8 lw gp, 0x10(fp)                               |     gp = *(arg_10h);
    0x00403bdc move t8, v0                                   |     t8 = v0;
    0x00403be0 lw a0, 0x28(fp)                               |     a0 = *(arg_28h);
    0x00403be4 lw v0, -0x7fdc(gp)                            |     v0 = *((gp - 8183));
                                                             |     /* str.model_name_s_n */
    0x00403be8 addiu a1, v0, -0x6d0c                         |     a1 = v0 + -0x6d0c;
    0x00403bec move a2, t8                                   |     a2 = t8;
    0x00403bf0 lw t8, -0x7ef0(gp)                            |     t8 = sym.imp.fprintf
    0x00403bf4 move t9, t8                                   |     t9 = t8;
    0x00403bf8 jalr t9                                       |     t9 ();
    0x00403bfc nop                                           |     
    0x00403c00 lw gp, 0x10(fp)                               |     gp = *(arg_10h);
    0x00403c04 addiu t8, fp, 0x24                            |     t8 = fp + 0x24;
    0x00403c08 move a0, t8                                   |     a0 = t8;
    0x00403c0c lw t8, -0x7e80(gp)                            |     t8 = *(gp);
    0x00403c10 move t9, t8                                   |     t9 = t8;
    0x00403c14 jalr t9                                       |     t9 ();
    0x00403c18 nop                                           |     
    0x00403c1c lw gp, 0x10(fp)                               |     gp = *(arg_10h);
    0x00403c20 addiu t8, fp, 0x20                            |     t8 = fp + 0x20;
    0x00403c24 move a0, t8                                   |     a0 = t8;
    0x00403c28 lw t8, -0x7e80(gp)                            |     t8 = *(gp);
    0x00403c2c move t9, t8                                   |     t9 = t8;
    0x00403c30 jalr t9                                       |     t9 ();
    0x00403c34 nop                                           |     
    0x00403c38 lw gp, 0x10(fp)                               |     gp = *(arg_10h);
    0x00403c3c addiu t8, fp, 0x1c                            |     t8 = fp + 0x1c;
    0x00403c40 move a0, t8                                   |     a0 = t8;
    0x00403c44 lw t8, -0x7ef4(gp)                            |     t8 = *(gp);
    0x00403c48 move t9, t8                                   |     t9 = t8;
    0x00403c4c jalr t9                                       |     t9 ();
    0x00403c50 nop                                           |     
    0x00403c54 lw gp, 0x10(fp)                               |     gp = *(arg_10h);
    0x00403c58 addiu t8, fp, 0x2c                            |     t8 = fp + 0x2c;
    0x00403c5c move a0, t8                                   |     a0 = t8;
    0x00403c60 lw t8, -0x7e0c(gp)                            |     t8 = *(gp);
    0x00403c64 move t9, t8                                   |     t9 = t8;
    0x00403c68 jalr t9                                       |     t9 ();
    0x00403c6c nop                                           |     
    0x00403c70 lw gp, 0x10(fp)                               |     gp = *(arg_10h);
    0x00403c74 lw a0, 0x28(fp)                               |     a0 = *(arg_28h);
    0x00403c78 lw t8, -0x7ea0(gp)                            |     t8 = sym.imp.fclose;
    0x00403c7c move t9, t8                                   |     t9 = t8;
    0x00403c80 jalr t9                                       |     t9 ();
    0x00403c84 nop                                           |     
    0x00403c88 lw gp, 0x10(fp)                               |     gp = *(arg_10h);
    0x00403c8c move s0, zero                                 |     s0 = 0;
                                                             | label_0:
    0x00403c90 addiu t8, fp, 0x2c                            |     t8 = fp + 0x2c;
    0x00403c94 move a0, t8                                   |     a0 = t8;
    0x00403c98 lw t8, -0x7ee8(gp)                            |     t8 = sym.imp.TinyDB::TinyDB__;
    0x00403c9c move t9, t8                                   |     t9 = t8;
    0x00403ca0 jalr t9                                       |     t9 ();
    0x00403ca4 nop                                           |     
    0x00403ca8 lw gp, 0x10(fp)                               |     gp = *(arg_10h);
    0x00403cac move t8, s0                                   |     t8 = s0;
    0x00403cb0 move v0, t8                                   |     v0 = t8;
    0x00403cb4 lw t8, -0x7e18(gp)                            |     t8 = *((gp - 8070));
    0x00403cb8 lw v1, 0x1044(fp)                             |     v1 = *(arg_1044h);
    0x00403cbc lw t8, (t8)                                   |     t8 = *(t8);
                                                             |     if (v1 != t8) {
    0x00403cc0 beq v1, t8, 0x403da0                          |         
    0x00403cc4 nop                                           |         
    0x00403cc8 b 0x403d90                                    |         goto label_1;
    0x00403ccc nop                                           |         
                                                             | label_1:
    0x00403d90 lw t8, -0x7ea8(gp)                            |         t8 = sym.imp.__stack_chk_fail;
    0x00403d94 move t9, t8                                   |         t9 = t8;
    0x00403d98 jalr t9                                       |         t9 ();
    0x00403d9c nop                                           |         
                                                             |     }
    0x00403da0 move sp, fp                                   |     
    0x00403da4 lw ra, 0x1054(sp)                             |     ra = *(var_1054h);
    0x00403da8 lw fp, 0x1050(sp)                             |     fp = *(var_1050h);
    0x00403dac lw s0, 0x104c(sp)                             |     s0 = *(var_104ch);
    0x00403db0 addiu sp, sp, 0x1058                          |     
    0x00403db4 jr ra                                         |     return v1;
    0x00403db8 nop                                           |     
                                                             | }
    ; assembly                                                                                               | /* r2dec pseudo code output */
                                                                                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/start_wps @ 0x402494 */
                                                                                                             | #include <stdint.h>
                                                                                                             |  
    ; (fcn) sym.wps_go_get_key_parameter_from_memory_char_const__char_const__char__int__char_const_ ()       | void wps_go_get_key_parameter_from_memory_char_const_char_const_char_int_char_const_ () {
                                                                                                             |     /* wps_go_get_key_parameter_from_memory(char const*, char const*, char*, int, char const*) */
    0x00402494 lui gp, 2                                                                                     |     
    0x00402498 addiu gp, gp, 0x1b8c                                                                          |     
    0x0040249c addu gp, gp, t9                                                                               |     gp += t9;
    0x004024a0 addiu sp, sp, -0x58                                                                           |     
    0x004024a4 sw ra, 0x54(sp)                                                                               |     *(var_54h) = ra;
    0x004024a8 sw fp, 0x50(sp)                                                                               |     *(var_50h) = fp;
    0x004024ac sw s1, 0x4c(sp)                                                                               |     *(var_4ch) = s1;
    0x004024b0 sw s0, 0x48(sp)                                                                               |     *(var_48h) = s0;
    0x004024b4 move fp, sp                                                                                   |     fp = sp;
    0x004024b8 sw gp, 0x18(sp)                                                                               |     *(var_18h) = gp;
    0x004024bc sw a0, 0x34(fp)                                                                               |     *(arg_34h) = a0;
    0x004024c0 sw a1, 0x30(fp)                                                                               |     *(arg_30h) = a1;
    0x004024c4 sw a2, 0x2c(fp)                                                                               |     *(arg_2ch) = a2;
    0x004024c8 sw a3, 0x28(fp)                                                                               |     *(arg_28h) = a3;
    0x004024cc lw t8, 0x68(fp)                                                                               |     t8 = *(arg_68h);
    0x004024d0 sw t8, 0x24(fp)                                                                               |     *(arg_24h) = t8;
    0x004024d4 lw t8, -0x7e18(gp)                                                                            |     t8 = *((gp - 8070));
    0x004024d8 lw t8, (t8)                                                                                   |     t8 = *(t8);
    0x004024dc sw t8, 0x44(fp)                                                                               |     *(arg_44h) = t8;
    0x004024e0 lw t8, -0x7e94(gp)                                                                            |     t8 = *((gp - 8101));
    0x004024e4 lw t8, (t8)                                                                                   |     t8 = *(t8);
    0x004024e8 lw v0, 0x30(fp)                                                                               |     v0 = *(arg_30h);
    0x004024ec sw v0, 0x10(sp)                                                                               |     *(var_10h) = v0;
    0x004024f0 move a0, t8                                                                                   |     a0 = t8;
    0x004024f4 lw t8, -0x7fdc(gp)                                                                            |     t8 = *((gp - 8183));
                                                                                                             |     /* str._s__d__key__s__n */
    0x004024f8 addiu a1, t8, -0x6fe4                                                                         |     a1 = t8 + -0x6fe4;
    0x004024fc lw t8, -0x7fdc(gp)                                                                            |     t8 = *((gp - 8183));
                                                                                                             |     /* str.wps_go_get_key_parameter_from_memory */
    0x00402500 addiu a2, t8, -0x5888                                                                         |     a2 = t8 + -0x5888;
    0x00402504 addiu a3, zero, 0xa8                                                                          |     a3 = 0xa8;
    0x00402508 lw t8, -0x7ef0(gp)                                                                            |     t8 = sym.imp.fprintf
    0x0040250c move t9, t8                                                                                   |     t9 = t8;
    0x00402510 jalr t9                                                                                       |     t9 ();
    0x00402514 nop                                                                                           |     
    0x00402518 lw gp, 0x18(fp)                                                                               |     gp = *(arg_18h);
    0x0040251c lw a0, 0x34(fp)                                                                               |     a0 = *(arg_34h);
    0x00402520 lw a1, 0x30(fp)                                                                               |     a1 = *(arg_30h);
    0x00402524 lw t8, -0x7f10(gp)                                                                            |     t8 = sym.imp.strstr;
    0x00402528 move t9, t8                                                                                   |     t9 = t8;
    0x0040252c jalr t9                                                                                       |     t9 ();
    0x00402530 nop                                                                                           |     
    0x00402534 lw gp, 0x18(fp)                                                                               |     gp = *(arg_18h);
    0x00402538 sw v0, 0x3c(fp)                                                                               |     *(arg_3ch) = v0;
    0x0040253c lw t8, 0x3c(fp)                                                                               |     t8 = *(arg_3ch);
    0x00402540 sltiu t8, t8, 1                                                                               |     t8 = (t8 < 1) ? 1 : 0;
    0x00402544 andi t8, t8, 0xff                                                                             |     t8 &= 0xff;
                                                                                                             |     if (t8 != 0) {
    0x00402548 beqz t8, 0x40255c                                                                             |         
    0x0040254c nop                                                                                           |         
    0x00402550 move t8, zero                                                                                 |         t8 = 0;
    0x00402554 b 0x4027ac                                                                                    |         goto label_0;
    0x00402558 nop                                                                                           |         
                                                                                                             |     }
    0x0040255c lw t8, 0x24(fp)                                                                               |     t8 = *(arg_24h);
                                                                                                             |     if (t8 != 0) {
    0x00402560 beqz t8, 0x40263c                                                                             |         
    0x00402564 nop                                                                                           |         
    0x00402568 lw a0, 0x30(fp)                                                                               |         a0 = *(arg_30h);
    0x0040256c lw t8, -0x7e5c(gp)                                                                            |         t8 = sym.imp.strlen;
    0x00402570 move t9, t8                                                                                   |         t9 = t8;
    0x00402574 jalr t9                                                                                       |         t9 ();
    0x00402578 nop                                                                                           |         
    0x0040257c lw gp, 0x18(fp)                                                                               |         gp = *(arg_18h);
    0x00402580 move s0, v0                                                                                   |         s0 = v0;
    0x00402584 lw a0, 0x24(fp)                                                                               |         a0 = *(arg_24h);
    0x00402588 lw t8, -0x7e5c(gp)                                                                            |         t8 = sym.imp.strlen;
    0x0040258c move t9, t8                                                                                   |         t9 = t8;
    0x00402590 jalr t9                                                                                       |         t9 ();
    0x00402594 nop                                                                                           |         
    0x00402598 lw gp, 0x18(fp)                                                                               |         gp = *(arg_18h);
    0x0040259c move t8, v0                                                                                   |         t8 = v0;
    0x004025a0 subu t8, s0, t8                                                                               |         __asm ("subu t8, s0, t8");
    0x004025a4 lw v0, 0x3c(fp)                                                                               |         v0 = *(arg_3ch);
    0x004025a8 addu s0, v0, t8                                                                               |         s0 = v0 + t8;
    0x004025ac lw a0, 0x24(fp)                                                                               |         a0 = *(arg_24h);
    0x004025b0 lw t8, -0x7e5c(gp)                                                                            |         t8 = sym.imp.strlen;
    0x004025b4 move t9, t8                                                                                   |         t9 = t8;
    0x004025b8 jalr t9                                                                                       |         t9 ();
    0x004025bc nop                                                                                           |         
    0x004025c0 lw gp, 0x18(fp)                                                                               |         gp = *(arg_18h);
    0x004025c4 move t8, v0                                                                                   |         t8 = v0;
    0x004025c8 lw a0, 0x24(fp)                                                                               |         a0 = *(arg_24h);
    0x004025cc move a1, s0                                                                                   |         a1 = s0;
    0x004025d0 move a2, t8                                                                                   |         a2 = t8;
    0x004025d4 lw t8, -0x7e4c(gp)                                                                            |         t8 = sym.imp.strncmp;
    0x004025d8 move t9, t8                                                                                   |         t9 = t8;
    0x004025dc jalr t9                                                                                       |         t9 ();
    0x004025e0 nop                                                                                           |         
    0x004025e4 lw gp, 0x18(fp)                                                                               |         gp = *(arg_18h);
    0x004025e8 move t8, v0                                                                                   |         t8 = v0;
                                                                                                             |         if (t8 != 0) {
    0x004025ec bnez t8, 0x40263c                                                                             |             goto label_1;
                                                                                                             |         }
    0x004025f0 nop                                                                                           |         
    0x004025f4 lw t8, 0x3c(fp)                                                                               |         t8 = *(arg_3ch);
    0x004025f8 addiu t8, t8, 1                                                                               |         t8++;
    0x004025fc move a0, t8                                                                                   |         a0 = t8;
    0x00402600 lw a1, 0x30(fp)                                                                               |         a1 = *(arg_30h);
    0x00402604 lw t8, -0x7f10(gp)                                                                            |         t8 = sym.imp.strstr;
    0x00402608 move t9, t8                                                                                   |         t9 = t8;
    0x0040260c jalr t9                                                                                       |         t9 ();
    0x00402610 nop                                                                                           |         
    0x00402614 lw gp, 0x18(fp)                                                                               |         gp = *(arg_18h);
    0x00402618 sw v0, 0x3c(fp)                                                                               |         *(arg_3ch) = v0;
    0x0040261c lw t8, 0x3c(fp)                                                                               |         t8 = *(arg_3ch);
    0x00402620 sltiu t8, t8, 1                                                                               |         t8 = (t8 < 1) ? 1 : 0;
    0x00402624 andi t8, t8, 0xff                                                                             |         t8 &= 0xff;
                                                                                                             |         if (t8 == 0) {
    0x00402628 beqz t8, 0x40263c                                                                             |             goto label_1;
                                                                                                             |         }
    0x0040262c nop                                                                                           |         
    0x00402630 move t8, zero                                                                                 |         t8 = 0;
    0x00402634 b 0x4027ac                                                                                    |         goto label_0;
    0x00402638 nop                                                                                           |         
                                                                                                             |     }
                                                                                                             | label_1:
    0x0040263c lw t8, 0x3c(fp)                                                                               |     t8 = *(arg_3ch);
    0x00402640 sw t8, 0x40(fp)                                                                               |     *(arg_40h) = t8;
    0x00402644 b 0x402658                                                                                    |     goto label_2;
    0x00402648 nop                                                                                           |     
                                                                                                             |     do {
    0x0040264c lw t8, 0x40(fp)                                                                               |         t8 = *(arg_40h);
    0x00402650 addiu t8, t8, 1                                                                               |         t8++;
    0x00402654 sw t8, 0x40(fp)                                                                               |         *(arg_40h) = t8;
                                                                                                             | label_2:
    0x00402658 lw t8, 0x40(fp)                                                                               |         t8 = *(arg_40h);
    0x0040265c lb v0, (t8)                                                                                   |         v0 = *(t8);
    0x00402660 addiu t8, zero, 0xa                                                                           |         t8 = 0xa;
                                                                                                             |         if (v0 == t8) {
    0x00402664 beq v0, t8, 0x402680                                                                          |             goto label_3;
                                                                                                             |         }
    0x00402668 nop                                                                                           |         
    0x0040266c lw t8, 0x40(fp)                                                                               |         t8 = *(arg_40h);
    0x00402670 lb v0, (t8)                                                                                   |         v0 = *(t8);
    0x00402674 addiu t8, zero, 0xd                                                                           |         t8 = 0xd;
    0x00402678 bne v0, t8, 0x40264c                                                                          |         
                                                                                                             |     } while (v0 != t8);
    0x0040267c nop                                                                                           |     
                                                                                                             | label_3:
    0x00402680 lw v0, 0x40(fp)                                                                               |     v0 = *(arg_40h);
    0x00402684 lw t8, 0x3c(fp)                                                                               |     t8 = *(arg_3ch);
    0x00402688 subu v0, v0, t8                                                                               |     __asm ("subu v0, v0, t8");
    0x0040268c lw t8, 0x28(fp)                                                                               |     t8 = *(arg_28h);
    0x00402690 slt t8, t8, v0                                                                                |     t8 = (t8 < v0) ? 1 : 0;
                                                                                                             |     if (t8 != 0) {
    0x00402694 beqz t8, 0x4026d8                                                                             |         
    0x00402698 nop                                                                                           |         
    0x0040269c lw t8, -0x7e94(gp)                                                                            |         t8 = *((gp - 8101));
    0x004026a0 lw t8, (t8)                                                                                   |         t8 = *(t8);
    0x004026a4 lw v0, -0x7fdc(gp)                                                                            |         v0 = *((gp - 8183));
                                                                                                             |         /* str.buffer_is_not_enough_to_save_the_result_n */
    0x004026a8 addiu a0, v0, -0x6fd0                                                                         |         a0 = v0 + -0x6fd0;
    0x004026ac addiu a1, zero, 1                                                                             |         a1 = 1;
    0x004026b0 addiu a2, zero, 0x28                                                                          |         a2 = 0x28;
    0x004026b4 move a3, t8                                                                                   |         a3 = t8;
    0x004026b8 lw t8, -0x7e20(gp)                                                                            |         t8 = sym.imp.fwrite;
    0x004026bc move t9, t8                                                                                   |         t9 = t8;
    0x004026c0 jalr t9                                                                                       |         t9 ();
    0x004026c4 nop                                                                                           |         
    0x004026c8 lw gp, 0x18(fp)                                                                               |         gp = *(arg_18h);
    0x004026cc move t8, zero                                                                                 |         t8 = 0;
    0x004026d0 b 0x4027ac                                                                                    |         goto label_0;
    0x004026d4 nop                                                                                           |         
                                                                                                             |     }
    0x004026d8 lw t8, 0x28(fp)                                                                               |     t8 = *(arg_28h);
    0x004026dc lw a0, 0x2c(fp)                                                                               |     a0 = *(arg_2ch);
    0x004026e0 move a1, t8                                                                                   |     a1 = t8;
    0x004026e4 lw t8, -0x7eec(gp)                                                                            |     t8 = sym.imp.bzero;
    0x004026e8 move t9, t8                                                                                   |     t9 = t8;
    0x004026ec jalr t9                                                                                       |     t9 ();
    0x004026f0 nop                                                                                           |     
    0x004026f4 lw gp, 0x18(fp)                                                                               |     gp = *(arg_18h);
    0x004026f8 lw a0, 0x30(fp)                                                                               |     a0 = *(arg_30h);
    0x004026fc lw t8, -0x7e5c(gp)                                                                            |     t8 = sym.imp.strlen;
    0x00402700 move t9, t8                                                                                   |     t9 = t8;
    0x00402704 jalr t9                                                                                       |     t9 ();
    0x00402708 nop                                                                                           |     
    0x0040270c lw gp, 0x18(fp)                                                                               |     gp = *(arg_18h);
    0x00402710 move t8, v0                                                                                   |     t8 = v0;
    0x00402714 lw v0, 0x3c(fp)                                                                               |     v0 = *(arg_3ch);
    0x00402718 addu s0, v0, t8                                                                               |     s0 = v0 + t8;
    0x0040271c lw v0, 0x40(fp)                                                                               |     v0 = *(arg_40h);
    0x00402720 lw t8, 0x3c(fp)                                                                               |     t8 = *(arg_3ch);
    0x00402724 subu t8, v0, t8                                                                               |     __asm ("subu t8, v0, t8");
    0x00402728 move s1, t8                                                                                   |     s1 = t8;
    0x0040272c lw a0, 0x30(fp)                                                                               |     a0 = *(arg_30h);
    0x00402730 lw t8, -0x7e5c(gp)                                                                            |     t8 = sym.imp.strlen;
    0x00402734 move t9, t8                                                                                   |     t9 = t8;
    0x00402738 jalr t9                                                                                       |     t9 ();
    0x0040273c nop                                                                                           |     
    0x00402740 lw gp, 0x18(fp)                                                                               |     gp = *(arg_18h);
    0x00402744 move t8, v0                                                                                   |     t8 = v0;
    0x00402748 subu t8, s1, t8                                                                               |     __asm ("subu t8, s1, t8");
    0x0040274c lw a0, 0x2c(fp)                                                                               |     a0 = *(arg_2ch);
    0x00402750 move a1, s0                                                                                   |     a1 = s0;
    0x00402754 move a2, t8                                                                                   |     a2 = t8;
    0x00402758 lw t8, -0x7ed4(gp)                                                                            |     t8 = sym.imp.strncpy;
    0x0040275c move t9, t8                                                                                   |     t9 = t8;
    0x00402760 jalr t9                                                                                       |     t9 ();
    0x00402764 nop                                                                                           |     
    0x00402768 lw gp, 0x18(fp)                                                                               |     gp = *(arg_18h);
    0x0040276c lw t8, -0x7e94(gp)                                                                            |     t8 = *((gp - 8101));
    0x00402770 lw t8, (t8)                                                                                   |     t8 = *(t8);
    0x00402774 lw v0, 0x2c(fp)                                                                               |     v0 = *(arg_2ch);
    0x00402778 sw v0, 0x10(sp)                                                                               |     *(var_10h) = v0;
    0x0040277c move a0, t8                                                                                   |     a0 = t8;
    0x00402780 lw t8, -0x7fdc(gp)                                                                            |     t8 = *((gp - 8183));
                                                                                                             |     /* str._s__d__ret_buf__s__n */
    0x00402784 addiu a1, t8, -0x6fa4                                                                         |     a1 = t8 + -0x6fa4;
    0x00402788 lw t8, -0x7fdc(gp)                                                                            |     t8 = *((gp - 8183));
                                                                                                             |     /* str.wps_go_get_key_parameter_from_memory */
    0x0040278c addiu a2, t8, -0x5888                                                                         |     a2 = t8 + -0x5888;
    0x00402790 addiu a3, zero, 0xb9                                                                          |     a3 = 0xb9;
    0x00402794 lw t8, -0x7ef0(gp)                                                                            |     t8 = sym.imp.fprintf
    0x00402798 move t9, t8                                                                                   |     t9 = t8;
    0x0040279c jalr t9                                                                                       |     t9 ();
    0x004027a0 nop                                                                                           |     
    0x004027a4 lw gp, 0x18(fp)                                                                               |     gp = *(arg_18h);
    0x004027a8 lw t8, 0x2c(fp)                                                                               |     t8 = *(arg_2ch);
                                                                                                             | label_0:
    0x004027ac move v0, t8                                                                                   |     v0 = t8;
    0x004027b0 lw t8, -0x7e18(gp)                                                                            |     t8 = *((gp - 8070));
    0x004027b4 lw v1, 0x44(fp)                                                                               |     v1 = *(arg_44h);
    0x004027b8 lw t8, (t8)                                                                                   |     t8 = *(t8);
                                                                                                             |     if (v1 != t8) {
    0x004027bc beq v1, t8, 0x4027d4                                                                          |         
    0x004027c0 nop                                                                                           |         
    0x004027c4 lw t8, -0x7ea8(gp)                                                                            |         t8 = sym.imp.__stack_chk_fail;
    0x004027c8 move t9, t8                                                                                   |         t9 = t8;
    0x004027cc jalr t9                                                                                       |         t9 ();
    0x004027d0 nop                                                                                           |         
                                                                                                             |     }
    0x004027d4 move sp, fp                                                                                   |     
    0x004027d8 lw ra, 0x54(sp)                                                                               |     ra = *(var_54h);
    0x004027dc lw fp, 0x50(sp)                                                                               |     fp = *(var_50h);
    0x004027e0 lw s1, 0x4c(sp)                                                                               |     s1 = *(var_4ch);
    0x004027e4 lw s0, 0x48(sp)                                                                               |     s0 = *(var_48h);
    0x004027e8 addiu sp, sp, 0x58                                                                            |     
    0x004027ec jr ra                                                                                         |     return v1;
    0x004027f0 nop                                                                                           |     
                                                                                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/start_wps @ 0x402150 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.wps_go_get_wps_status__ ()       | void wps_go_get_wps_status_ () {
                                                 |     /* wps_go_get_wps_status() */
    0x00402150 lui gp, 2                         |     
    0x00402154 addiu gp, gp, 0x1ed0              |     
    0x00402158 addu gp, gp, t9                   |     gp += t9;
    0x0040215c addiu sp, sp, -0x438              |     
    0x00402160 sw ra, 0x434(sp)                  |     *(var_434h) = ra;
    0x00402164 sw fp, 0x430(sp)                  |     *(var_430h) = fp;
    0x00402168 move fp, sp                       |     fp = sp;
    0x0040216c sw gp, 0x10(sp)                   |     *(var_10h) = gp;
    0x00402170 lw t8, -0x7e18(gp)                |     t8 = *((gp - 8070));
    0x00402174 lw t8, (t8)                       |     t8 = *(t8);
    0x00402178 sw t8, 0x42c(fp)                  |     *(arg_42ch) = t8;
    0x0040217c addiu t8, fp, 0x2c                |     t8 = fp + 0x2c;
    0x00402180 move a0, t8                       |     a0 = t8;
    0x00402184 move a1, zero                     |     a1 = 0;
    0x00402188 addiu a2, zero, 0x400             |     a2 = 0x400;
    0x0040218c lw t8, -0x7ee0(gp)                |     t8 = sym.imp.memset;
    0x00402190 move t9, t8                       |     t9 = t8;
    0x00402194 jalr t9                           |     t9 ();
    0x00402198 nop                               |     
    0x0040219c lw gp, 0x10(fp)                   |     gp = *(arg_10h);
    0x004021a0 lw t8, -0x7fdc(gp)                |     t8 = *((gp - 8183));
                                                 |     /* str.wpa_cli__i_wlan0_status____tmp_wps_status.log */
    0x004021a4 addiu a0, t8, -0x70f4             |     a0 = t8 + -0x70f4;
    0x004021a8 lw t8, -0x7e28(gp)                |     t8 = sym.imp.system;
    0x004021ac move t9, t8                       |     t9 = t8;
    0x004021b0 jalr t9                           |     t9 ();
    0x004021b4 nop                               |     
    0x004021b8 lw gp, 0x10(fp)                   |     gp = *(arg_10h);
    0x004021bc lw t8, -0x7fdc(gp)                |     t8 = *((gp - 8183));
                                                 |     /* str._tmp_wps_status.log */
    0x004021c0 addiu a0, t8, -0x70c4             |     a0 = t8 + -0x70c4;
    0x004021c4 lw t8, -0x7fdc(gp)                |     t8 = *((gp - 8183));
                                                 |     /* section..rodata */
    0x004021c8 addiu a1, t8, -0x7130             |     a1 = t8 + -0x7130;
    0x004021cc lw t8, -0x7e54(gp)                |     t8 = sym.imp.fopen64;
    0x004021d0 move t9, t8                       |     t9 = t8;
    0x004021d4 jalr t9                           |     t9 ();
    0x004021d8 nop                               |     
    0x004021dc lw gp, 0x10(fp)                   |     gp = *(arg_10h);
    0x004021e0 move t8, v0                       |     t8 = v0;
    0x004021e4 sw t8, 0x24(fp)                   |     *(arg_24h) = t8;
    0x004021e8 lw t8, 0x24(fp)                   |     t8 = *(arg_24h);
    0x004021ec sltiu t8, t8, 1                   |     t8 = (t8 < 1) ? 1 : 0;
    0x004021f0 andi t8, t8, 0xff                 |     t8 &= 0xff;
                                                 |     if (t8 != 0) {
    0x004021f4 beqz t8, 0x402238                 |         
    0x004021f8 nop                               |         
    0x004021fc lw t8, -0x7eb4(gp)                |         t8 = *((gp - 8109));
    0x00402200 lw t8, (t8)                       |         t8 = *(t8);
    0x00402204 lw v0, -0x7fdc(gp)                |         v0 = *((gp - 8183));
                                                 |         /* str.Fail_to_open__tmp_wps_status.log_n */
    0x00402208 addiu a0, v0, -0x70b0             |         a0 = v0 + -0x70b0;
    0x0040220c addiu a1, zero, 1                 |         a1 = 1;
    0x00402210 addiu a2, zero, 0x21              |         a2 = 0x21;
    0x00402214 move a3, t8                       |         a3 = t8;
    0x00402218 lw t8, -0x7e20(gp)                |         t8 = sym.imp.fwrite;
    0x0040221c move t9, t8                       |         t9 = t8;
    0x00402220 jalr t9                           |         t9 ();
    0x00402224 nop                               |         
    0x00402228 lw gp, 0x10(fp)                   |         gp = *(arg_10h);
    0x0040222c addiu t8, zero, -1                |         t8 = -1;
    0x00402230 b 0x402454                        |         goto label_0;
    0x00402234 nop                               |         
                                                 |     }
    0x00402238 addiu t8, fp, 0x2c                |     t8 = fp + 0x2c;
    0x0040223c move a0, t8                       |     a0 = t8;
    0x00402240 addiu a1, zero, 1                 |     a1 = 1;
    0x00402244 addiu a2, zero, 0x400             |     a2 = 0x400;
    0x00402248 lw a3, 0x24(fp)                   |     a3 = *(arg_24h);
    0x0040224c lw t8, -0x7ea4(gp)                |     t8 = sym.imp.fread;
    0x00402250 move t9, t8                       |     t9 = t8;
    0x00402254 jalr t9                           |     t9 ();
    0x00402258 nop                               |     
    0x0040225c lw gp, 0x10(fp)                   |     gp = *(arg_10h);
    0x00402260 lw a0, 0x24(fp)                   |     a0 = *(arg_24h);
    0x00402264 lw t8, -0x7ea0(gp)                |     t8 = sym.imp.fclose;
    0x00402268 move t9, t8                       |     t9 = t8;
    0x0040226c jalr t9                           |     t9 ();
    0x00402270 nop                               |     
    0x00402274 lw gp, 0x10(fp)                   |     gp = *(arg_10h);
    0x00402278 addiu t8, fp, 0x2c                |     t8 = fp + 0x2c;
    0x0040227c sw t8, 0x28(fp)                   |     *(arg_28h) = t8;
    0x00402280 lw a0, 0x28(fp)                   |     a0 = *(arg_28h);
    0x00402284 lw t8, -0x7fdc(gp)                |     t8 = *((gp - 8183));
                                                 |     /* str.wpa_stateCOMPLETED */
    0x00402288 addiu a1, t8, -0x708c             |     a1 = t8 + -0x708c;
    0x0040228c lw t8, -0x7f10(gp)                |     t8 = sym.imp.strstr;
    0x00402290 move t9, t8                       |     t9 = t8;
    0x00402294 jalr t9                           |     t9 ();
    0x00402298 nop                               |     
    0x0040229c lw gp, 0x10(fp)                   |     gp = *(arg_10h);
    0x004022a0 sw v0, 0x1c(fp)                   |     *(arg_1ch) = v0;
    0x004022a4 lw t8, 0x1c(fp)                   |     t8 = *(arg_1ch);
    0x004022a8 sltu t8, zero, t8                 |     t8 = (0 < t8) ? 1 : 0;
    0x004022ac andi t8, t8, 0xff                 |     t8 &= 0xff;
                                                 |     if (t8 != 0) {
    0x004022b0 beqz t8, 0x4022e4                 |         
    0x004022b4 nop                               |         
    0x004022b8 addiu t8, zero, 5                 |         t8 = 5;
    0x004022bc sw t8, 0x20(fp)                   |         *(arg_20h) = t8;
    0x004022c0 lw t8, -0x7fdc(gp)                |         t8 = *((gp - 8183));
                                                 |         /* str.wpa_cli__i_wlan0_save_config */
    0x004022c4 addiu a0, t8, -0x7078             |         a0 = t8 + -0x7078;
    0x004022c8 lw t8, -0x7e28(gp)                |         t8 = sym.imp.system;
    0x004022cc move t9, t8                       |         t9 = t8;
    0x004022d0 jalr t9                           |         t9 ();
    0x004022d4 nop                               |         
    0x004022d8 lw gp, 0x10(fp)                   |         gp = *(arg_10h);
    0x004022dc b 0x402414                        |         goto label_1;
    0x004022e0 nop                               |         
                                                 |     }
    0x004022e4 lw a0, 0x28(fp)                   |     a0 = *(arg_28h);
    0x004022e8 lw t8, -0x7fdc(gp)                |     t8 = *((gp - 8183));
                                                 |     /* str.wpa_stateSCANNING */
    0x004022ec addiu a1, t8, -0x7058             |     a1 = t8 + -0x7058;
    0x004022f0 lw t8, -0x7f10(gp)                |     t8 = sym.imp.strstr;
    0x004022f4 move t9, t8                       |     t9 = t8;
    0x004022f8 jalr t9                           |     t9 ();
    0x004022fc nop                               |     
    0x00402300 lw gp, 0x10(fp)                   |     gp = *(arg_10h);
    0x00402304 sw v0, 0x1c(fp)                   |     *(arg_1ch) = v0;
    0x00402308 lw t8, 0x1c(fp)                   |     t8 = *(arg_1ch);
    0x0040230c sltu t8, zero, t8                 |     t8 = (0 < t8) ? 1 : 0;
    0x00402310 andi t8, t8, 0xff                 |     t8 &= 0xff;
                                                 |     if (t8 != 0) {
    0x00402314 beqz t8, 0x40232c                 |         
    0x00402318 nop                               |         
    0x0040231c addiu t8, zero, 3                 |         t8 = 3;
    0x00402320 sw t8, 0x20(fp)                   |         *(arg_20h) = t8;
    0x00402324 b 0x402414                        |         goto label_1;
    0x00402328 nop                               |         
                                                 |     }
    0x0040232c lw a0, 0x28(fp)                   |     a0 = *(arg_28h);
    0x00402330 lw t8, -0x7fdc(gp)                |     t8 = *((gp - 8183));
                                                 |     /* str.wpa_stateINACTIVE */
    0x00402334 addiu a1, t8, -0x7044             |     a1 = t8 + -0x7044;
    0x00402338 lw t8, -0x7f10(gp)                |     t8 = sym.imp.strstr;
    0x0040233c move t9, t8                       |     t9 = t8;
    0x00402340 jalr t9                           |     t9 ();
    0x00402344 nop                               |     
    0x00402348 lw gp, 0x10(fp)                   |     gp = *(arg_10h);
    0x0040234c sw v0, 0x1c(fp)                   |     *(arg_1ch) = v0;
    0x00402350 lw t8, 0x1c(fp)                   |     t8 = *(arg_1ch);
    0x00402354 sltu t8, zero, t8                 |     t8 = (0 < t8) ? 1 : 0;
    0x00402358 andi t8, t8, 0xff                 |     t8 &= 0xff;
                                                 |     if (t8 != 0) {
    0x0040235c beqz t8, 0x402374                 |         
    0x00402360 nop                               |         
    0x00402364 addiu t8, zero, 4                 |         t8 = 4;
    0x00402368 sw t8, 0x20(fp)                   |         *(arg_20h) = t8;
    0x0040236c b 0x402414                        |         goto label_1;
    0x00402370 nop                               |         
                                                 |     }
    0x00402374 lw a0, 0x28(fp)                   |     a0 = *(arg_28h);
    0x00402378 lw t8, -0x7fdc(gp)                |     t8 = *((gp - 8183));
                                                 |     /* str.wpa_stateUNKNOWN */
    0x0040237c addiu a1, t8, -0x7030             |     a1 = t8 + -0x7030;
    0x00402380 lw t8, -0x7f10(gp)                |     t8 = sym.imp.strstr;
    0x00402384 move t9, t8                       |     t9 = t8;
    0x00402388 jalr t9                           |     t9 ();
    0x0040238c nop                               |     
    0x00402390 lw gp, 0x10(fp)                   |     gp = *(arg_10h);
    0x00402394 sw v0, 0x1c(fp)                   |     *(arg_1ch) = v0;
    0x00402398 lw t8, 0x1c(fp)                   |     t8 = *(arg_1ch);
    0x0040239c sltu t8, zero, t8                 |     t8 = (0 < t8) ? 1 : 0;
    0x004023a0 andi t8, t8, 0xff                 |     t8 &= 0xff;
                                                 |     if (t8 != 0) {
    0x004023a4 beqz t8, 0x4023e8                 |         
    0x004023a8 nop                               |         
    0x004023ac lw t8, -0x7eb4(gp)                |         t8 = *((gp - 8109));
    0x004023b0 lw t8, (t8)                       |         t8 = *(t8);
    0x004023b4 lw v0, -0x7fdc(gp)                |         v0 = *((gp - 8183));
                                                 |         /* str.wps_status_unknown__n */
    0x004023b8 addiu a0, v0, -0x701c             |         a0 = v0 + -0x701c;
    0x004023bc addiu a1, zero, 1                 |         a1 = 1;
    0x004023c0 addiu a2, zero, 0x14              |         a2 = 0x14;
    0x004023c4 move a3, t8                       |         a3 = t8;
    0x004023c8 lw t8, -0x7e20(gp)                |         t8 = sym.imp.fwrite;
    0x004023cc move t9, t8                       |         t9 = t8;
    0x004023d0 jalr t9                           |         t9 ();
    0x004023d4 nop                               |         
    0x004023d8 lw gp, 0x10(fp)                   |         gp = *(arg_10h);
    0x004023dc addiu t8, zero, -1                |         t8 = -1;
    0x004023e0 b 0x402454                        |         goto label_0;
    0x004023e4 nop                               |         
                                                 |     }
    0x004023e8 lw a0, 0x28(fp)                   |     a0 = *(arg_28h);
    0x004023ec lw t8, -0x7fdc(gp)                |     t8 = *((gp - 8183));
                                                 |     /* str.wpa_state */
    0x004023f0 addiu a1, t8, -0x7004             |     a1 = t8 + -0x7004;
    0x004023f4 lw t8, -0x7f10(gp)                |     t8 = sym.imp.strstr;
    0x004023f8 move t9, t8                       |     t9 = t8;
    0x004023fc jalr t9                           |     t9 ();
    0x00402400 nop                               |     
    0x00402404 lw gp, 0x10(fp)                   |     gp = *(arg_10h);
    0x00402408 sw v0, 0x1c(fp)                   |     *(arg_1ch) = v0;
    0x0040240c addiu t8, zero, 1                 |     t8 = 1;
    0x00402410 sw t8, 0x20(fp)                   |     *(arg_20h) = t8;
                                                 | label_1:
    0x00402414 lw t8, 0x1c(fp)                   |     t8 = *(arg_1ch);
    0x00402418 addiu t8, t8, 0xa                 |     t8 += 0xa;
    0x0040241c sw t8, 0x1c(fp)                   |     *(arg_1ch) = t8;
    0x00402420 lw t8, -0x7e94(gp)                |     t8 = *((gp - 8101));
    0x00402424 lw t8, (t8)                       |     t8 = *(t8);
    0x00402428 move a0, t8                       |     a0 = t8;
    0x0040242c lw t8, -0x7fdc(gp)                |     t8 = *((gp - 8183));
                                                 |     /* str.wps_status:__d__s_n */
    0x00402430 addiu a1, t8, -0x6ff8             |     a1 = t8 + -0x6ff8;
    0x00402434 lw a2, 0x20(fp)                   |     a2 = *(arg_20h);
    0x00402438 lw a3, 0x1c(fp)                   |     a3 = *(arg_1ch);
    0x0040243c lw t8, -0x7ef0(gp)                |     t8 = sym.imp.fprintf
    0x00402440 move t9, t8                       |     t9 = t8;
    0x00402444 jalr t9                           |     t9 ();
    0x00402448 nop                               |     
    0x0040244c lw gp, 0x10(fp)                   |     gp = *(arg_10h);
    0x00402450 lw t8, 0x20(fp)                   |     t8 = *(arg_20h);
                                                 | label_0:
    0x00402454 move v0, t8                       |     v0 = t8;
    0x00402458 lw t8, -0x7e18(gp)                |     t8 = *((gp - 8070));
    0x0040245c lw v1, 0x42c(fp)                  |     v1 = *(arg_42ch);
    0x00402460 lw t8, (t8)                       |     t8 = *(t8);
                                                 |     if (v1 != t8) {
    0x00402464 beq v1, t8, 0x40247c              |         
    0x00402468 nop                               |         
    0x0040246c lw t8, -0x7ea8(gp)                |         t8 = sym.imp.__stack_chk_fail;
    0x00402470 move t9, t8                       |         t9 = t8;
    0x00402474 jalr t9                           |         t9 ();
    0x00402478 nop                               |         
                                                 |     }
    0x0040247c move sp, fp                       |     
    0x00402480 lw ra, 0x434(sp)                  |     ra = *(var_434h);
    0x00402484 lw fp, 0x430(sp)                  |     fp = *(var_430h);
    0x00402488 addiu sp, sp, 0x438               |     
    0x0040248c jr ra                             |     return v1;
    0x00402490 nop                               |     
                                                 | }
    ; assembly                                                                   | /* r2dec pseudo code output */
                                                                                 | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/start_wps @ 0x405180 */
                                                                                 | #include <stdint.h>
                                                                                 |  
    ; (fcn) sym.wps_mtk_apclient_get_config_int__char_const__wlan_info_ ()       | void wps_mtk_apclient_get_config_int_char_const_wlan_info_ () {
                                                                                 |     /* wps_mtk_apclient_get_config(int, char const*, wlan_info*) */
    0x00405180 lui gp, 2                                                         |     
    0x00405184 addiu gp, gp, -0x1160                                             |     
    0x00405188 addu gp, gp, t9                                                   |     gp += t9;
    0x0040518c addiu sp, sp, -0x1068                                             |     
    0x00405190 sw ra, 0x1064(sp)                                                 |     *(var_1064h) = ra;
    0x00405194 sw fp, 0x1060(sp)                                                 |     *(var_1060h) = fp;
    0x00405198 move fp, sp                                                       |     fp = sp;
    0x0040519c sw gp, 0x10(sp)                                                   |     *(var_10h) = gp;
    0x004051a0 sw a0, 0x24(fp)                                                   |     *(arg_24h) = a0;
    0x004051a4 sw a1, 0x20(fp)                                                   |     *(arg_20h) = a1;
    0x004051a8 sw a2, 0x1c(fp)                                                   |     *(arg_1ch) = a2;
    0x004051ac lw t8, -0x7e18(gp)                                                |     t8 = *((gp - 8070));
    0x004051b0 lw t8, (t8)                                                       |     t8 = *(t8);
    0x004051b4 sw t8, 0x105c(fp)                                                 |     *(arg_105ch) = t8;
    0x004051b8 addiu v0, fp, 0x5c                                                |     v0 = fp + 0x5c;
    0x004051bc addiu t8, zero, 0x1000                                            |     t8 = 0x1000;
    0x004051c0 move a0, v0                                                       |     a0 = v0;
    0x004051c4 move a1, zero                                                     |     a1 = 0;
    0x004051c8 move a2, t8                                                       |     a2 = t8;
    0x004051cc lw t8, -0x7ee0(gp)                                                |     t8 = sym.imp.memset;
    0x004051d0 move t9, t8                                                       |     t9 = t8;
    0x004051d4 jalr t9                                                           |     t9 ();
    0x004051d8 nop                                                               |     
    0x004051dc lw gp, 0x10(fp)                                                   |     gp = *(arg_10h);
    0x004051e0 lw a0, 0x1c(fp)                                                   |     a0 = *(arg_1ch);
    0x004051e4 addiu a1, zero, 0x194                                             |     a1 = 0x194;
    0x004051e8 lw t8, -0x7eec(gp)                                                |     t8 = sym.imp.bzero;
    0x004051ec move t9, t8                                                       |     t9 = t8;
    0x004051f0 jalr t9                                                           |     t9 ();
    0x004051f4 nop                                                               |     
    0x004051f8 lw gp, 0x10(fp)                                                   |     gp = *(arg_10h);
    0x004051fc addiu t8, fp, 0x3c                                                |     t8 = fp + 0x3c;
    0x00405200 move a0, t8                                                       |     a0 = t8;
    0x00405204 lw a1, 0x20(fp)                                                   |     a1 = *(arg_20h);
    0x00405208 addiu a2, zero, 0x10                                              |     a2 = 0x10;
    0x0040520c lw t8, -0x7ed4(gp)                                                |     t8 = sym.imp.strncpy;
    0x00405210 move t9, t8                                                       |     t9 = t8;
    0x00405214 jalr t9                                                           |     t9 ();
    0x00405218 nop                                                               |     
    0x0040521c lw gp, 0x10(fp)                                                   |     gp = *(arg_10h);
    0x00405220 addiu t8, fp, 0x5c                                                |     t8 = fp + 0x5c;
    0x00405224 sw t8, 0x4c(fp)                                                   |     *(arg_4ch) = t8;
    0x00405228 addiu t8, zero, 0x1000                                            |     t8 = 0x1000;
    0x0040522c sh t8, 0x50(fp)                                                   |     *(arg_50h) = t8;
    0x00405230 sh zero, 0x52(fp)                                                 |     *(arg_52h) = 0;
    0x00405234 addiu t8, fp, 0x3c                                                |     t8 = fp + 0x3c;
    0x00405238 lw a0, 0x24(fp)                                                   |     a0 = *(arg_24h);
    0x0040523c ori a1, zero, 0x8be9                                              |     a1 = 0x8be9;
    0x00405240 move a2, t8                                                       |     a2 = t8;
    0x00405244 lw t8, -0x7e58(gp)                                                |     t8 = sym.imp.ioctl;
    0x00405248 move t9, t8                                                       |     t9 = t8;
    0x0040524c jalr t9                                                           |     t9 ();
    0x00405250 nop                                                               |     
    0x00405254 lw gp, 0x10(fp)                                                   |     gp = *(arg_10h);
    0x00405258 move t8, v0                                                       |     t8 = v0;
    0x0040525c sltu t8, zero, t8                                                 |     t8 = (0 < t8) ? 1 : 0;
    0x00405260 andi t8, t8, 0xff                                                 |     t8 &= 0xff;
                                                                                 |     if (t8 != 0) {
    0x00405264 beqz t8, 0x4052c4                                                 |         
    0x00405268 nop                                                               |         
    0x0040526c lw t8, -0x7fdc(gp)                                                |         t8 = *((gp - 8183));
                                                                                 |         /* str.RTPRIV_IOCTL_STATISTICS */
    0x00405270 addiu a0, t8, -0x6ac4                                             |         a0 = t8 + -0x6ac4;
    0x00405274 lw t8, -0x7ee4(gp)                                                |         t8 = sym.imp.perror;
    0x00405278 move t9, t8                                                       |         t9 = t8;
    0x0040527c jalr t9                                                           |         t9 ();
    0x00405280 nop                                                               |         
    0x00405284 lw gp, 0x10(fp)                                                   |         gp = *(arg_10h);
    0x00405288 lw t8, -0x7eb4(gp)                                                |         t8 = *((gp - 8109));
    0x0040528c lw t8, (t8)                                                       |         t8 = *(t8);
    0x00405290 move a0, t8                                                       |         a0 = t8;
    0x00405294 lw t8, -0x7fdc(gp)                                                |         t8 = *((gp - 8183));
                                                                                 |         /* str.ioctl_failed:__s_n */
    0x00405298 addiu a1, t8, -0x6aac                                             |         a1 = t8 + -0x6aac;
    0x0040529c lw t8, -0x7fdc(gp)                                                |         t8 = *((gp - 8183));
                                                                                 |         /* str.wps_mtk_apclient_get_config */
    0x004052a0 addiu a2, t8, -0x580c                                             |         a2 = t8 + -0x580c;
    0x004052a4 lw t8, -0x7ef0(gp)                                                |         t8 = sym.imp.fprintf
    0x004052a8 move t9, t8                                                       |         t9 = t8;
    0x004052ac jalr t9                                                           |         t9 ();
    0x004052b0 nop                                                               |         
    0x004052b4 lw gp, 0x10(fp)                                                   |         gp = *(arg_10h);
    0x004052b8 addiu t8, zero, -1                                                |         t8 = -1;
    0x004052bc b 0x405804                                                        |         goto label_0;
    0x004052c0 nop                                                               |         
                                                                                 |     }
    0x004052c4 addiu t8, fp, 0x5c                                                |     t8 = fp + 0x5c;
    0x004052c8 move a0, t8                                                       |     a0 = t8;
    0x004052cc lw t8, -0x7fdc(gp)                                                |     t8 = *((gp - 8183));
                                                                                 |     /* str.SSID */
    0x004052d0 addiu a1, t8, -0x6a04                                             |     a1 = t8 + -0x6a04;
    0x004052d4 lw t8, -0x7f10(gp)                                                |     t8 = sym.imp.strstr;
    0x004052d8 move t9, t8                                                       |     t9 = t8;
    0x004052dc jalr t9                                                           |     t9 ();
    0x004052e0 nop                                                               |     
    0x004052e4 lw gp, 0x10(fp)                                                   |     gp = *(arg_10h);
    0x004052e8 sw v0, 0x2c(fp)                                                   |     *(arg_2ch) = v0;
    0x004052ec lw a0, 0x2c(fp)                                                   |     a0 = *(arg_2ch);
    0x004052f0 addiu a1, zero, 0x3d                                              |     a1 = 0x3d;
    0x004052f4 lw t8, -0x7f28(gp)                                                |     t8 = sym.imp.strchr;
    0x004052f8 move t9, t8                                                       |     t9 = t8;
    0x004052fc jalr t9                                                           |     t9 ();
    0x00405300 nop                                                               |     
    0x00405304 lw gp, 0x10(fp)                                                   |     gp = *(arg_10h);
    0x00405308 move t8, v0                                                       |     t8 = v0;
    0x0040530c addiu t8, t8, 1                                                   |     t8++;
    0x00405310 sw t8, 0x2c(fp)                                                   |     *(arg_2ch) = t8;
    0x00405314 addiu t8, fp, 0x5c                                                |     t8 = fp + 0x5c;
    0x00405318 move a0, t8                                                       |     a0 = t8;
    0x0040531c lw t8, -0x7fdc(gp)                                                |     t8 = *((gp - 8183));
                                                                                 |     /* str.AuthMode */
    0x00405320 addiu a1, t8, -0x69fc                                             |     a1 = t8 + -0x69fc;
    0x00405324 lw t8, -0x7f10(gp)                                                |     t8 = sym.imp.strstr;
    0x00405328 move t9, t8                                                       |     t9 = t8;
    0x0040532c jalr t9                                                           |     t9 ();
    0x00405330 nop                                                               |     
    0x00405334 lw gp, 0x10(fp)                                                   |     gp = *(arg_10h);
    0x00405338 sw v0, 0x30(fp)                                                   |     *(arg_30h) = v0;
    0x0040533c lw a0, 0x30(fp)                                                   |     a0 = *(arg_30h);
    0x00405340 addiu a1, zero, 0x3d                                              |     a1 = 0x3d;
    0x00405344 lw t8, -0x7f28(gp)                                                |     t8 = sym.imp.strchr;
    0x00405348 move t9, t8                                                       |     t9 = t8;
    0x0040534c jalr t9                                                           |     t9 ();
    0x00405350 nop                                                               |     
    0x00405354 lw gp, 0x10(fp)                                                   |     gp = *(arg_10h);
    0x00405358 move t8, v0                                                       |     t8 = v0;
    0x0040535c addiu t8, t8, 1                                                   |     t8++;
    0x00405360 sw t8, 0x30(fp)                                                   |     *(arg_30h) = t8;
    0x00405364 addiu t8, fp, 0x5c                                                |     t8 = fp + 0x5c;
    0x00405368 move a0, t8                                                       |     a0 = t8;
    0x0040536c lw t8, -0x7fdc(gp)                                                |     t8 = *((gp - 8183));
                                                                                 |     /* str.EncrypType */
    0x00405370 addiu a1, t8, -0x69f0                                             |     a1 = t8 + -0x69f0;
    0x00405374 lw t8, -0x7f10(gp)                                                |     t8 = sym.imp.strstr;
    0x00405378 move t9, t8                                                       |     t9 = t8;
    0x0040537c jalr t9                                                           |     t9 ();
    0x00405380 nop                                                               |     
    0x00405384 lw gp, 0x10(fp)                                                   |     gp = *(arg_10h);
    0x00405388 sw v0, 0x34(fp)                                                   |     *(arg_34h) = v0;
    0x0040538c lw a0, 0x34(fp)                                                   |     a0 = *(arg_34h);
    0x00405390 addiu a1, zero, 0x3d                                              |     a1 = 0x3d;
    0x00405394 lw t8, -0x7f28(gp)                                                |     t8 = sym.imp.strchr;
    0x00405398 move t9, t8                                                       |     t9 = t8;
    0x0040539c jalr t9                                                           |     t9 ();
    0x004053a0 nop                                                               |     
    0x004053a4 lw gp, 0x10(fp)                                                   |     gp = *(arg_10h);
    0x004053a8 move t8, v0                                                       |     t8 = v0;
    0x004053ac addiu t8, t8, 1                                                   |     t8++;
    0x004053b0 sw t8, 0x34(fp)                                                   |     *(arg_34h) = t8;
    0x004053b4 addiu t8, fp, 0x5c                                                |     t8 = fp + 0x5c;
    0x004053b8 move a0, t8                                                       |     a0 = t8;
    0x004053bc lw t8, -0x7fdc(gp)                                                |     t8 = *((gp - 8183));
                                                                                 |     /* str.Key */
    0x004053c0 addiu a1, t8, -0x69e4                                             |     a1 = t8 + -0x69e4;
    0x004053c4 lw t8, -0x7f10(gp)                                                |     t8 = sym.imp.strstr;
    0x004053c8 move t9, t8                                                       |     t9 = t8;
    0x004053cc jalr t9                                                           |     t9 ();
    0x004053d0 nop                                                               |     
    0x004053d4 lw gp, 0x10(fp)                                                   |     gp = *(arg_10h);
    0x004053d8 sw v0, 0x28(fp)                                                   |     *(arg_28h) = v0;
    0x004053dc lw t8, 0x28(fp)                                                   |     t8 = *(arg_28h);
                                                                                 |     if (t8 != 0) {
    0x004053e0 beqz t8, 0x405410                                                 |         
    0x004053e4 nop                                                               |         
    0x004053e8 lw a0, 0x28(fp)                                                   |         a0 = *(arg_28h);
    0x004053ec addiu a1, zero, 0x3d                                              |         a1 = 0x3d;
    0x004053f0 lw t8, -0x7f28(gp)                                                |         t8 = sym.imp.strchr;
    0x004053f4 move t9, t8                                                       |         t9 = t8;
    0x004053f8 jalr t9                                                           |         t9 ();
    0x004053fc nop                                                               |         
    0x00405400 lw gp, 0x10(fp)                                                   |         gp = *(arg_10h);
    0x00405404 move t8, v0                                                       |         t8 = v0;
    0x00405408 addiu t8, t8, 1                                                   |         t8++;
    0x0040540c sw t8, 0x28(fp)                                                   |         *(arg_28h) = t8;
                                                                                 |     }
    0x00405410 lw a0, 0x2c(fp)                                                   |     a0 = *(arg_2ch);
    0x00405414 addiu a1, zero, 0xa                                               |     a1 = 0xa;
    0x00405418 lw t8, -0x7f28(gp)                                                |     t8 = sym.imp.strchr;
    0x0040541c move t9, t8                                                       |     t9 = t8;
    0x00405420 jalr t9                                                           |     t9 ();
    0x00405424 nop                                                               |     
    0x00405428 lw gp, 0x10(fp)                                                   |     gp = *(arg_10h);
    0x0040542c sw v0, 0x38(fp)                                                   |     *(arg_38h) = v0;
    0x00405430 lw t8, 0x38(fp)                                                   |     t8 = *(arg_38h);
    0x00405434 sb zero, (t8)                                                     |     *(t8) = 0;
    0x00405438 lw a0, 0x30(fp)                                                   |     a0 = *(arg_30h);
    0x0040543c addiu a1, zero, 0xa                                               |     a1 = 0xa;
    0x00405440 lw t8, -0x7f28(gp)                                                |     t8 = sym.imp.strchr;
    0x00405444 move t9, t8                                                       |     t9 = t8;
    0x00405448 jalr t9                                                           |     t9 ();
    0x0040544c nop                                                               |     
    0x00405450 lw gp, 0x10(fp)                                                   |     gp = *(arg_10h);
    0x00405454 sw v0, 0x38(fp)                                                   |     *(arg_38h) = v0;
    0x00405458 lw t8, 0x38(fp)                                                   |     t8 = *(arg_38h);
    0x0040545c sb zero, (t8)                                                     |     *(t8) = 0;
    0x00405460 lw a0, 0x34(fp)                                                   |     a0 = *(arg_34h);
    0x00405464 addiu a1, zero, 0xa                                               |     a1 = 0xa;
    0x00405468 lw t8, -0x7f28(gp)                                                |     t8 = sym.imp.strchr;
    0x0040546c move t9, t8                                                       |     t9 = t8;
    0x00405470 jalr t9                                                           |     t9 ();
    0x00405474 nop                                                               |     
    0x00405478 lw gp, 0x10(fp)                                                   |     gp = *(arg_10h);
    0x0040547c sw v0, 0x38(fp)                                                   |     *(arg_38h) = v0;
    0x00405480 lw t8, 0x38(fp)                                                   |     t8 = *(arg_38h);
    0x00405484 sb zero, (t8)                                                     |     *(t8) = 0;
    0x00405488 lw t8, 0x28(fp)                                                   |     t8 = *(arg_28h);
                                                                                 |     if (t8 != 0) {
    0x0040548c beqz t8, 0x4054bc                                                 |         
    0x00405490 nop                                                               |         
    0x00405494 lw a0, 0x28(fp)                                                   |         a0 = *(arg_28h);
    0x00405498 addiu a1, zero, 0xa                                               |         a1 = 0xa;
    0x0040549c lw t8, -0x7f28(gp)                                                |         t8 = sym.imp.strchr;
    0x004054a0 move t9, t8                                                       |         t9 = t8;
    0x004054a4 jalr t9                                                           |         t9 ();
    0x004054a8 nop                                                               |         
    0x004054ac lw gp, 0x10(fp)                                                   |         gp = *(arg_10h);
    0x004054b0 sw v0, 0x38(fp)                                                   |         *(arg_38h) = v0;
    0x004054b4 lw t8, 0x38(fp)                                                   |         t8 = *(arg_38h);
    0x004054b8 sb zero, (t8)                                                     |         *(t8) = 0;
                                                                                 |     }
    0x004054bc lw t8, 0x1c(fp)                                                   |     t8 = *(arg_1ch);
    0x004054c0 addiu t8, t8, 8                                                   |     t8 += 8;
    0x004054c4 move a0, t8                                                       |     a0 = t8;
    0x004054c8 lw a1, 0x2c(fp)                                                   |     a1 = *(arg_2ch);
    0x004054cc addiu a2, zero, 0x20                                              |     a2 = 0x20;
    0x004054d0 lw t8, -0x7ed4(gp)                                                |     t8 = sym.imp.strncpy;
    0x004054d4 move t9, t8                                                       |     t9 = t8;
    0x004054d8 jalr t9                                                           |     t9 ();
    0x004054dc nop                                                               |     
    0x004054e0 lw gp, 0x10(fp)                                                   |     gp = *(arg_10h);
    0x004054e4 lw a0, 0x30(fp)                                                   |     a0 = *(arg_30h);
    0x004054e8 lw t8, -0x7fdc(gp)                                                |     t8 = *((gp - 8183));
                                                                                 |     /* str.OPEN */
    0x004054ec addiu a1, t8, -0x6a68                                             |     a1 = t8 + -0x6a68;
    0x004054f0 lw t8, -0x7f18(gp)                                                |     t8 = sym.imp.strcmp;
    0x004054f4 move t9, t8                                                       |     t9 = t8;
    0x004054f8 jalr t9                                                           |     t9 ();
    0x004054fc nop                                                               |     
    0x00405500 lw gp, 0x10(fp)                                                   |     gp = *(arg_10h);
    0x00405504 move t8, v0                                                       |     t8 = v0;
                                                                                 |     if (t8 == 0) {
    0x00405508 bnez t8, 0x405520                                                 |         
    0x0040550c nop                                                               |         
    0x00405510 lw t8, 0x1c(fp)                                                   |         t8 = *(arg_1ch);
    0x00405514 sw zero, 0x30(t8)                                                 |         *((t8 + 48)) = 0;
    0x00405518 b 0x405698                                                        |         goto label_1;
    0x0040551c nop                                                               |         
                                                                                 |     }
    0x00405520 lw a0, 0x30(fp)                                                   |     a0 = *(arg_30h);
    0x00405524 lw t8, -0x7fdc(gp)                                                |     t8 = *((gp - 8183));
                                                                                 |     /* str.SHARED */
    0x00405528 addiu a1, t8, -0x6a60                                             |     a1 = t8 + -0x6a60;
    0x0040552c lw t8, -0x7f18(gp)                                                |     t8 = sym.imp.strcmp;
    0x00405530 move t9, t8                                                       |     t9 = t8;
    0x00405534 jalr t9                                                           |     t9 ();
    0x00405538 nop                                                               |     
    0x0040553c lw gp, 0x10(fp)                                                   |     gp = *(arg_10h);
    0x00405540 move t8, v0                                                       |     t8 = v0;
                                                                                 |     if (t8 == 0) {
    0x00405544 bnez t8, 0x405560                                                 |         
    0x00405548 nop                                                               |         
    0x0040554c lw t8, 0x1c(fp)                                                   |         t8 = *(arg_1ch);
    0x00405550 addiu v0, zero, 1                                                 |         v0 = 1;
    0x00405554 sw v0, 0x30(t8)                                                   |         *((t8 + 48)) = v0;
    0x00405558 b 0x405698                                                        |         goto label_1;
    0x0040555c nop                                                               |         
                                                                                 |     }
    0x00405560 lw a0, 0x30(fp)                                                   |     a0 = *(arg_30h);
    0x00405564 lw t8, -0x7fdc(gp)                                                |     t8 = *((gp - 8183));
                                                                                 |     /* str.WPAPSK */
    0x00405568 addiu a1, t8, -0x6a58                                             |     a1 = t8 + -0x6a58;
    0x0040556c lw t8, -0x7f18(gp)                                                |     t8 = sym.imp.strcmp;
    0x00405570 move t9, t8                                                       |     t9 = t8;
    0x00405574 jalr t9                                                           |     t9 ();
    0x00405578 nop                                                               |     
    0x0040557c lw gp, 0x10(fp)                                                   |     gp = *(arg_10h);
    0x00405580 move t8, v0                                                       |     t8 = v0;
                                                                                 |     if (t8 == 0) {
    0x00405584 bnez t8, 0x4055a0                                                 |         
    0x00405588 nop                                                               |         
    0x0040558c lw t8, 0x1c(fp)                                                   |         t8 = *(arg_1ch);
    0x00405590 addiu v0, zero, 2                                                 |         v0 = 2;
    0x00405594 sw v0, 0x30(t8)                                                   |         *((t8 + 48)) = v0;
    0x00405598 b 0x405698                                                        |         goto label_1;
    0x0040559c nop                                                               |         
                                                                                 |     }
    0x004055a0 lw a0, 0x30(fp)                                                   |     a0 = *(arg_30h);
    0x004055a4 lw t8, -0x7fdc(gp)                                                |     t8 = *((gp - 8183));
                                                                                 |     /* esilref: 'WPA' */
    0x004055a8 addiu a1, t8, -0x6a50                                             |     a1 = t8 + -0x6a50;
    0x004055ac lw t8, -0x7f18(gp)                                                |     t8 = sym.imp.strcmp;
    0x004055b0 move t9, t8                                                       |     t9 = t8;
    0x004055b4 jalr t9                                                           |     t9 ();
    0x004055b8 nop                                                               |     
    0x004055bc lw gp, 0x10(fp)                                                   |     gp = *(arg_10h);
    0x004055c0 move t8, v0                                                       |     t8 = v0;
                                                                                 |     if (t8 == 0) {
    0x004055c4 bnez t8, 0x4055e0                                                 |         
    0x004055c8 nop                                                               |         
    0x004055cc lw t8, 0x1c(fp)                                                   |         t8 = *(arg_1ch);
    0x004055d0 addiu v0, zero, 2                                                 |         v0 = 2;
    0x004055d4 sw v0, 0x30(t8)                                                   |         *((t8 + 48)) = v0;
    0x004055d8 b 0x405698                                                        |         goto label_1;
    0x004055dc nop                                                               |         
                                                                                 |     }
    0x004055e0 lw a0, 0x30(fp)                                                   |     a0 = *(arg_30h);
    0x004055e4 lw t8, -0x7fdc(gp)                                                |     t8 = *((gp - 8183));
                                                                                 |     /* str.WPA2PSK */
    0x004055e8 addiu a1, t8, -0x6a4c                                             |     a1 = t8 + -0x6a4c;
    0x004055ec lw t8, -0x7f18(gp)                                                |     t8 = sym.imp.strcmp;
    0x004055f0 move t9, t8                                                       |     t9 = t8;
    0x004055f4 jalr t9                                                           |     t9 ();
    0x004055f8 nop                                                               |     
    0x004055fc lw gp, 0x10(fp)                                                   |     gp = *(arg_10h);
    0x00405600 move t8, v0                                                       |     t8 = v0;
                                                                                 |     if (t8 == 0) {
    0x00405604 bnez t8, 0x405620                                                 |         
    0x00405608 nop                                                               |         
    0x0040560c lw t8, 0x1c(fp)                                                   |         t8 = *(arg_1ch);
    0x00405610 addiu v0, zero, 5                                                 |         v0 = 5;
    0x00405614 sw v0, 0x30(t8)                                                   |         *((t8 + 48)) = v0;
    0x00405618 b 0x405698                                                        |         goto label_1;
    0x0040561c nop                                                               |         
                                                                                 |     }
    0x00405620 lw a0, 0x30(fp)                                                   |     a0 = *(arg_30h);
    0x00405624 lw t8, -0x7fdc(gp)                                                |     t8 = *((gp - 8183));
                                                                                 |     /* str.WPA2 */
    0x00405628 addiu a1, t8, -0x6a44                                             |     a1 = t8 + -0x6a44;
    0x0040562c lw t8, -0x7f18(gp)                                                |     t8 = sym.imp.strcmp;
    0x00405630 move t9, t8                                                       |     t9 = t8;
    0x00405634 jalr t9                                                           |     t9 ();
    0x00405638 nop                                                               |     
    0x0040563c lw gp, 0x10(fp)                                                   |     gp = *(arg_10h);
    0x00405640 move t8, v0                                                       |     t8 = v0;
                                                                                 |     if (t8 == 0) {
    0x00405644 bnez t8, 0x405660                                                 |         
    0x00405648 nop                                                               |         
    0x0040564c lw t8, 0x1c(fp)                                                   |         t8 = *(arg_1ch);
    0x00405650 addiu v0, zero, 5                                                 |         v0 = 5;
    0x00405654 sw v0, 0x30(t8)                                                   |         *((t8 + 48)) = v0;
    0x00405658 b 0x405698                                                        |         goto label_1;
    0x0040565c nop                                                               |         
                                                                                 |     }
    0x00405660 lw t8, -0x7eb4(gp)                                                |     t8 = *((gp - 8109));
    0x00405664 lw t8, (t8)                                                       |     t8 = *(t8);
    0x00405668 move a0, t8                                                       |     a0 = t8;
    0x0040566c lw t8, -0x7fdc(gp)                                                |     t8 = *((gp - 8183));
                                                                                 |     /* str.parse_auth_fail___s__n */
    0x00405670 addiu a1, t8, -0x6a3c                                             |     a1 = t8 + -0x6a3c;
    0x00405674 lw a2, 0x30(fp)                                                   |     a2 = *(arg_30h);
    0x00405678 lw t8, -0x7ef0(gp)                                                |     t8 = sym.imp.fprintf
    0x0040567c move t9, t8                                                       |     t9 = t8;
    0x00405680 jalr t9                                                           |     t9 ();
    0x00405684 nop                                                               |     
    0x00405688 lw gp, 0x10(fp)                                                   |     gp = *(arg_10h);
    0x0040568c addiu t8, zero, -1                                                |     t8 = -1;
    0x00405690 b 0x405804                                                        |     goto label_0;
    0x00405694 nop                                                               |     
                                                                                 | label_1:
    0x00405698 lw a0, 0x34(fp)                                                   |     a0 = *(arg_34h);
    0x0040569c lw t8, -0x7fdc(gp)                                                |     t8 = *((gp - 8183));
                                                                                 |     /* str.NONE */
    0x004056a0 addiu a1, t8, -0x6ec4                                             |     a1 = t8 + -0x6ec4;
    0x004056a4 lw t8, -0x7f18(gp)                                                |     t8 = sym.imp.strcmp;
    0x004056a8 move t9, t8                                                       |     t9 = t8;
    0x004056ac jalr t9                                                           |     t9 ();
    0x004056b0 nop                                                               |     
    0x004056b4 lw gp, 0x10(fp)                                                   |     gp = *(arg_10h);
    0x004056b8 move t8, v0                                                       |     t8 = v0;
                                                                                 |     if (t8 == 0) {
    0x004056bc bnez t8, 0x4056d4                                                 |         
    0x004056c0 nop                                                               |         
    0x004056c4 lw t8, 0x1c(fp)                                                   |         t8 = *(arg_1ch);
    0x004056c8 sw zero, 0x34(t8)                                                 |         *((t8 + 52)) = 0;
    0x004056cc b 0x4057cc                                                        |         goto label_2;
    0x004056d0 nop                                                               |         
                                                                                 |     }
    0x004056d4 lw a0, 0x34(fp)                                                   |     a0 = *(arg_34h);
    0x004056d8 lw t8, -0x7fdc(gp)                                                |     t8 = *((gp - 8183));
                                                                                 |     /* esilref: 'WEP' */
    0x004056dc addiu a1, t8, -0x6a24                                             |     a1 = t8 + -0x6a24;
    0x004056e0 lw t8, -0x7f18(gp)                                                |     t8 = sym.imp.strcmp;
    0x004056e4 move t9, t8                                                       |     t9 = t8;
    0x004056e8 jalr t9                                                           |     t9 ();
    0x004056ec nop                                                               |     
    0x004056f0 lw gp, 0x10(fp)                                                   |     gp = *(arg_10h);
    0x004056f4 move t8, v0                                                       |     t8 = v0;
                                                                                 |     if (t8 == 0) {
    0x004056f8 bnez t8, 0x405714                                                 |         
    0x004056fc nop                                                               |         
    0x00405700 lw t8, 0x1c(fp)                                                   |         t8 = *(arg_1ch);
    0x00405704 addiu v0, zero, 1                                                 |         v0 = 1;
    0x00405708 sw v0, 0x34(t8)                                                   |         *((t8 + 52)) = v0;
    0x0040570c b 0x4057cc                                                        |         goto label_2;
    0x00405710 nop                                                               |         
                                                                                 |     }
    0x00405714 lw a0, 0x34(fp)                                                   |     a0 = *(arg_34h);
    0x00405718 lw t8, -0x7fdc(gp)                                                |     t8 = *((gp - 8183));
                                                                                 |     /* str.TKIP */
    0x0040571c addiu a1, t8, -0x6e48                                             |     a1 = t8 + -0x6e48;
    0x00405720 lw t8, -0x7f18(gp)                                                |     t8 = sym.imp.strcmp;
    0x00405724 move t9, t8                                                       |     t9 = t8;
    0x00405728 jalr t9                                                           |     t9 ();
    0x0040572c nop                                                               |     
    0x00405730 lw gp, 0x10(fp)                                                   |     gp = *(arg_10h);
    0x00405734 move t8, v0                                                       |     t8 = v0;
                                                                                 |     if (t8 == 0) {
    0x00405738 bnez t8, 0x405754                                                 |         
    0x0040573c nop                                                               |         
    0x00405740 lw t8, 0x1c(fp)                                                   |         t8 = *(arg_1ch);
    0x00405744 addiu v0, zero, 2                                                 |         v0 = 2;
    0x00405748 sw v0, 0x34(t8)                                                   |         *((t8 + 52)) = v0;
    0x0040574c b 0x4057cc                                                        |         goto label_2;
    0x00405750 nop                                                               |         
                                                                                 |     }
    0x00405754 lw a0, 0x34(fp)                                                   |     a0 = *(arg_34h);
    0x00405758 lw t8, -0x7fdc(gp)                                                |     t8 = *((gp - 8183));
                                                                                 |     /* esilref: 'AES' */
    0x0040575c addiu a1, t8, -0x6a20                                             |     a1 = t8 + -0x6a20;
    0x00405760 lw t8, -0x7f18(gp)                                                |     t8 = sym.imp.strcmp;
    0x00405764 move t9, t8                                                       |     t9 = t8;
    0x00405768 jalr t9                                                           |     t9 ();
    0x0040576c nop                                                               |     
    0x00405770 lw gp, 0x10(fp)                                                   |     gp = *(arg_10h);
    0x00405774 move t8, v0                                                       |     t8 = v0;
                                                                                 |     if (t8 == 0) {
    0x00405778 bnez t8, 0x405794                                                 |         
    0x0040577c nop                                                               |         
    0x00405780 lw t8, 0x1c(fp)                                                   |         t8 = *(arg_1ch);
    0x00405784 addiu v0, zero, 3                                                 |         v0 = 3;
    0x00405788 sw v0, 0x34(t8)                                                   |         *((t8 + 52)) = v0;
    0x0040578c b 0x4057cc                                                        |         goto label_2;
    0x00405790 nop                                                               |         
                                                                                 |     }
    0x00405794 lw t8, -0x7eb4(gp)                                                |     t8 = *((gp - 8109));
    0x00405798 lw t8, (t8)                                                       |     t8 = *(t8);
    0x0040579c move a0, t8                                                       |     a0 = t8;
    0x004057a0 lw t8, -0x7fdc(gp)                                                |     t8 = *((gp - 8183));
                                                                                 |     /* str.parse_enc_fail___s__n */
    0x004057a4 addiu a1, t8, -0x6a1c                                             |     a1 = t8 + -0x6a1c;
    0x004057a8 lw a2, 0x34(fp)                                                   |     a2 = *(arg_34h);
    0x004057ac lw t8, -0x7ef0(gp)                                                |     t8 = sym.imp.fprintf
    0x004057b0 move t9, t8                                                       |     t9 = t8;
    0x004057b4 jalr t9                                                           |     t9 ();
    0x004057b8 nop                                                               |     
    0x004057bc lw gp, 0x10(fp)                                                   |     gp = *(arg_10h);
    0x004057c0 addiu t8, zero, -1                                                |     t8 = -1;
    0x004057c4 b 0x405804                                                        |     goto label_0;
    0x004057c8 nop                                                               |     
                                                                                 | label_2:
    0x004057cc lw t8, 0x28(fp)                                                   |     t8 = *(arg_28h);
                                                                                 |     if (t8 != 0) {
    0x004057d0 beqz t8, 0x405800                                                 |         
    0x004057d4 nop                                                               |         
    0x004057d8 lw t8, 0x1c(fp)                                                   |         t8 = *(arg_1ch);
    0x004057dc addiu t8, t8, 0x14c                                               |         t8 += 0x14c;
    0x004057e0 move a0, t8                                                       |         a0 = t8;
    0x004057e4 lw a1, 0x28(fp)                                                   |         a1 = *(arg_28h);
    0x004057e8 addiu a2, zero, 0x41                                              |         a2 = 0x41;
    0x004057ec lw t8, -0x7ed4(gp)                                                |         t8 = sym.imp.strncpy;
    0x004057f0 move t9, t8                                                       |         t9 = t8;
    0x004057f4 jalr t9                                                           |         t9 ();
    0x004057f8 nop                                                               |         
    0x004057fc lw gp, 0x10(fp)                                                   |         gp = *(arg_10h);
                                                                                 |     }
    0x00405800 move t8, zero                                                     |     t8 = 0;
                                                                                 | label_0:
    0x00405804 move v0, t8                                                       |     v0 = t8;
    0x00405808 lw t8, -0x7e18(gp)                                                |     t8 = *((gp - 8070));
    0x0040580c lw v1, 0x105c(fp)                                                 |     v1 = *(arg_105ch);
    0x00405810 lw t8, (t8)                                                       |     t8 = *(t8);
                                                                                 |     if (v1 != t8) {
    0x00405814 beq v1, t8, 0x40582c                                              |         
    0x00405818 nop                                                               |         
    0x0040581c lw t8, -0x7ea8(gp)                                                |         t8 = sym.imp.__stack_chk_fail;
    0x00405820 move t9, t8                                                       |         t9 = t8;
    0x00405824 jalr t9                                                           |         t9 ();
    0x00405828 nop                                                               |         
                                                                                 |     }
    0x0040582c move sp, fp                                                       |     
    0x00405830 lw ra, 0x1064(sp)                                                 |     ra = *(var_1064h);
    0x00405834 lw fp, 0x1060(sp)                                                 |     fp = *(var_1060h);
    0x00405838 addiu sp, sp, 0x1068                                              |     
    0x0040583c jr ra                                                             |     return v1;
    0x00405840 nop                                                               |     
                                                                                 | }
    ; assembly                                                               | /* r2dec pseudo code output */
                                                                             | /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/start_wps @ 0x404ad4 */
                                                                             | #include <stdint.h>
                                                                             |  
    ; (fcn) sym.wps_mtk_sta_get_config_int__char_const__wlan_info_ ()        | void wps_mtk_sta_get_config_int_char_const_wlan_info_ () {
                                                                             |     /* wps_mtk_sta_get_config(int, char const*, wlan_info*) */
    0x00404ad4 lui gp, 2                                                     |     
    0x00404ad8 addiu gp, gp, -0xab4                                          |     
    0x00404adc addu gp, gp, t9                                               |     gp += t9;
    0x00404ae0 addiu sp, sp, -0x1068                                         |     
    0x00404ae4 sw ra, 0x1064(sp)                                             |     *(var_1064h) = ra;
    0x00404ae8 sw fp, 0x1060(sp)                                             |     *(var_1060h) = fp;
    0x00404aec move fp, sp                                                   |     fp = sp;
    0x00404af0 sw gp, 0x10(sp)                                               |     *(var_10h) = gp;
    0x00404af4 sw a0, 0x24(fp)                                               |     *(arg_24h) = a0;
    0x00404af8 sw a1, 0x20(fp)                                               |     *(arg_20h) = a1;
    0x00404afc sw a2, 0x1c(fp)                                               |     *(arg_1ch) = a2;
    0x00404b00 lw t8, -0x7e18(gp)                                            |     t8 = *((gp - 8070));
    0x00404b04 lw t8, (t8)                                                   |     t8 = *(t8);
    0x00404b08 sw t8, 0x105c(fp)                                             |     *(arg_105ch) = t8;
    0x00404b0c addiu v0, fp, 0x5c                                            |     v0 = fp + 0x5c;
    0x00404b10 addiu t8, zero, 0x1000                                        |     t8 = 0x1000;
    0x00404b14 move a0, v0                                                   |     a0 = v0;
    0x00404b18 move a1, zero                                                 |     a1 = 0;
    0x00404b1c move a2, t8                                                   |     a2 = t8;
    0x00404b20 lw t8, -0x7ee0(gp)                                            |     t8 = sym.imp.memset;
    0x00404b24 move t9, t8                                                   |     t9 = t8;
    0x00404b28 jalr t9                                                       |     t9 ();
    0x00404b2c nop                                                           |     
    0x00404b30 lw gp, 0x10(fp)                                               |     gp = *(arg_10h);
    0x00404b34 lw a0, 0x1c(fp)                                               |     a0 = *(arg_1ch);
    0x00404b38 addiu a1, zero, 0x194                                         |     a1 = 0x194;
    0x00404b3c lw t8, -0x7eec(gp)                                            |     t8 = sym.imp.bzero;
    0x00404b40 move t9, t8                                                   |     t9 = t8;
    0x00404b44 jalr t9                                                       |     t9 ();
    0x00404b48 nop                                                           |     
    0x00404b4c lw gp, 0x10(fp)                                               |     gp = *(arg_10h);
    0x00404b50 addiu t8, fp, 0x3c                                            |     t8 = fp + 0x3c;
    0x00404b54 move a0, t8                                                   |     a0 = t8;
    0x00404b58 lw a1, 0x20(fp)                                               |     a1 = *(arg_20h);
    0x00404b5c addiu a2, zero, 0x10                                          |     a2 = 0x10;
    0x00404b60 lw t8, -0x7ed4(gp)                                            |     t8 = sym.imp.strncpy;
    0x00404b64 move t9, t8                                                   |     t9 = t8;
    0x00404b68 jalr t9                                                       |     t9 ();
    0x00404b6c nop                                                           |     
    0x00404b70 lw gp, 0x10(fp)                                               |     gp = *(arg_10h);
    0x00404b74 addiu t8, fp, 0x5c                                            |     t8 = fp + 0x5c;
    0x00404b78 sw t8, 0x4c(fp)                                               |     *(arg_4ch) = t8;
    0x00404b7c addiu t8, zero, 0x1000                                        |     t8 = 0x1000;
    0x00404b80 sh t8, 0x50(fp)                                               |     *(arg_50h) = t8;
    0x00404b84 sh zero, 0x52(fp)                                             |     *(arg_52h) = 0;
    0x00404b88 addiu t8, fp, 0x3c                                            |     t8 = fp + 0x3c;
    0x00404b8c lw a0, 0x24(fp)                                               |     a0 = *(arg_24h);
    0x00404b90 ori a1, zero, 0x8be9                                          |     a1 = 0x8be9;
    0x00404b94 move a2, t8                                                   |     a2 = t8;
    0x00404b98 lw t8, -0x7e58(gp)                                            |     t8 = sym.imp.ioctl;
    0x00404b9c move t9, t8                                                   |     t9 = t8;
    0x00404ba0 jalr t9                                                       |     t9 ();
    0x00404ba4 nop                                                           |     
    0x00404ba8 lw gp, 0x10(fp)                                               |     gp = *(arg_10h);
    0x00404bac move t8, v0                                                   |     t8 = v0;
    0x00404bb0 sltu t8, zero, t8                                             |     t8 = (0 < t8) ? 1 : 0;
    0x00404bb4 andi t8, t8, 0xff                                             |     t8 &= 0xff;
                                                                             |     if (t8 != 0) {
    0x00404bb8 beqz t8, 0x404c18                                             |         
    0x00404bbc nop                                                           |         
    0x00404bc0 lw t8, -0x7fdc(gp)                                            |         t8 = *((gp - 8183));
                                                                             |         /* str.RTPRIV_IOCTL_STATISTICS */
    0x00404bc4 addiu a0, t8, -0x6ac4                                         |         a0 = t8 + -0x6ac4;
    0x00404bc8 lw t8, -0x7ee4(gp)                                            |         t8 = sym.imp.perror;
    0x00404bcc move t9, t8                                                   |         t9 = t8;
    0x00404bd0 jalr t9                                                       |         t9 ();
    0x00404bd4 nop                                                           |         
    0x00404bd8 lw gp, 0x10(fp)                                               |         gp = *(arg_10h);
    0x00404bdc lw t8, -0x7eb4(gp)                                            |         t8 = *((gp - 8109));
    0x00404be0 lw t8, (t8)                                                   |         t8 = *(t8);
    0x00404be4 move a0, t8                                                   |         a0 = t8;
    0x00404be8 lw t8, -0x7fdc(gp)                                            |         t8 = *((gp - 8183));
                                                                             |         /* str.ioctl_failed:__s_n */
    0x00404bec addiu a1, t8, -0x6aac                                         |         a1 = t8 + -0x6aac;
    0x00404bf0 lw t8, -0x7fdc(gp)                                            |         t8 = *((gp - 8183));
                                                                             |         /* str.wps_mtk_sta_get_config */
    0x00404bf4 addiu a2, t8, -0x5824                                         |         a2 = t8 + -0x5824;
    0x00404bf8 lw t8, -0x7ef0(gp)                                            |         t8 = sym.imp.fprintf
    0x00404bfc move t9, t8                                                   |         t9 = t8;
    0x00404c00 jalr t9                                                       |         t9 ();
    0x00404c04 nop                                                           |         
    0x00404c08 lw gp, 0x10(fp)                                               |         gp = *(arg_10h);
    0x00404c0c addiu t8, zero, -1                                            |         t8 = -1;
    0x00404c10 b 0x405140                                                    |         goto label_0;
    0x00404c14 nop                                                           |         
                                                                             |     }
    0x00404c18 addiu t8, fp, 0x5c                                            |     t8 = fp + 0x5c;
    0x00404c1c move a0, t8                                                   |     a0 = t8;
    0x00404c20 lw t8, -0x7fdc(gp)                                            |     t8 = *((gp - 8183));
                                                                             |     /* str.SSID_____ */
    0x00404c24 addiu a1, t8, -0x6a98                                         |     a1 = t8 + -0x6a98;
    0x00404c28 lw t8, -0x7f10(gp)                                            |     t8 = sym.imp.strstr;
    0x00404c2c move t9, t8                                                   |     t9 = t8;
    0x00404c30 jalr t9                                                       |     t9 ();
    0x00404c34 nop                                                           |     
    0x00404c38 lw gp, 0x10(fp)                                               |     gp = *(arg_10h);
    0x00404c3c sw v0, 0x28(fp)                                               |     *(arg_28h) = v0;
    0x00404c40 lw a0, 0x28(fp)                                               |     a0 = *(arg_28h);
    0x00404c44 addiu a1, zero, 0x3d                                          |     a1 = 0x3d;
    0x00404c48 lw t8, -0x7f28(gp)                                            |     t8 = sym.imp.strchr;
    0x00404c4c move t9, t8                                                   |     t9 = t8;
    0x00404c50 jalr t9                                                       |     t9 ();
    0x00404c54 nop                                                           |     
    0x00404c58 lw gp, 0x10(fp)                                               |     gp = *(arg_10h);
    0x00404c5c move t8, v0                                                   |     t8 = v0;
    0x00404c60 addiu t8, t8, 2                                               |     t8 += 2;
    0x00404c64 sw t8, 0x28(fp)                                               |     *(arg_28h) = t8;
    0x00404c68 addiu t8, fp, 0x5c                                            |     t8 = fp + 0x5c;
    0x00404c6c move a0, t8                                                   |     a0 = t8;
    0x00404c70 lw t8, -0x7fdc(gp)                                            |     t8 = *((gp - 8183));
                                                                             |     /* str.AuthType_ */
    0x00404c74 addiu a1, t8, -0x6a8c                                         |     a1 = t8 + -0x6a8c;
    0x00404c78 lw t8, -0x7f10(gp)                                            |     t8 = sym.imp.strstr;
    0x00404c7c move t9, t8                                                   |     t9 = t8;
    0x00404c80 jalr t9                                                       |     t9 ();
    0x00404c84 nop                                                           |     
    0x00404c88 lw gp, 0x10(fp)                                               |     gp = *(arg_10h);
    0x00404c8c sw v0, 0x2c(fp)                                               |     *(arg_2ch) = v0;
    0x00404c90 lw a0, 0x2c(fp)                                               |     a0 = *(arg_2ch);
    0x00404c94 addiu a1, zero, 0x3d                                          |     a1 = 0x3d;
    0x00404c98 lw t8, -0x7f28(gp)                                            |     t8 = sym.imp.strchr;
    0x00404c9c move t9, t8                                                   |     t9 = t8;
    0x00404ca0 jalr t9                                                       |     t9 ();
    0x00404ca4 nop                                                           |     
    0x00404ca8 lw gp, 0x10(fp)                                               |     gp = *(arg_10h);
    0x00404cac move t8, v0                                                   |     t8 = v0;
    0x00404cb0 addiu t8, t8, 2                                               |     t8 += 2;
    0x00404cb4 sw t8, 0x2c(fp)                                               |     *(arg_2ch) = t8;
    0x00404cb8 addiu t8, fp, 0x5c                                            |     t8 = fp + 0x5c;
    0x00404cbc move a0, t8                                                   |     a0 = t8;
    0x00404cc0 lw t8, -0x7fdc(gp)                                            |     t8 = *((gp - 8183));
                                                                             |     /* esilref: 'EncrypType' */
    0x00404cc4 addiu a1, t8, -0x6a80                                         |     a1 = t8 + -0x6a80;
    0x00404cc8 lw t8, -0x7f10(gp)                                            |     t8 = sym.imp.strstr;
    0x00404ccc move t9, t8                                                   |     t9 = t8;
    0x00404cd0 jalr t9                                                       |     t9 ();
    0x00404cd4 nop                                                           |     
    0x00404cd8 lw gp, 0x10(fp)                                               |     gp = *(arg_10h);
    0x00404cdc sw v0, 0x30(fp)                                               |     *(arg_30h) = v0;
    0x00404ce0 lw a0, 0x30(fp)                                               |     a0 = *(arg_30h);
    0x00404ce4 addiu a1, zero, 0x3d                                          |     a1 = 0x3d;
    0x00404ce8 lw t8, -0x7f28(gp)                                            |     t8 = sym.imp.strchr;
    0x00404cec move t9, t8                                                   |     t9 = t8;
    0x00404cf0 jalr t9                                                       |     t9 ();
    0x00404cf4 nop                                                           |     
    0x00404cf8 lw gp, 0x10(fp)                                               |     gp = *(arg_10h);
    0x00404cfc move t8, v0                                                   |     t8 = v0;
    0x00404d00 addiu t8, t8, 2                                               |     t8 += 2;
    0x00404d04 sw t8, 0x30(fp)                                               |     *(arg_30h) = t8;
    0x00404d08 addiu t8, fp, 0x5c                                            |     t8 = fp + 0x5c;
    0x00404d0c move a0, t8                                                   |     a0 = t8;
    0x00404d10 lw t8, -0x7fdc(gp)                                            |     t8 = *((gp - 8183));
                                                                             |     /* str.Key_______ */
    0x00404d14 addiu a1, t8, -0x6a74                                         |     a1 = t8 + -0x6a74;
    0x00404d18 lw t8, -0x7f10(gp)                                            |     t8 = sym.imp.strstr;
    0x00404d1c move t9, t8                                                   |     t9 = t8;
    0x00404d20 jalr t9                                                       |     t9 ();
    0x00404d24 nop                                                           |     
    0x00404d28 lw gp, 0x10(fp)                                               |     gp = *(arg_10h);
    0x00404d2c sw v0, 0x34(fp)                                               |     *(arg_34h) = v0;
    0x00404d30 lw a0, 0x34(fp)                                               |     a0 = *(arg_34h);
    0x00404d34 addiu a1, zero, 0x3d                                          |     a1 = 0x3d;
    0x00404d38 lw t8, -0x7f28(gp)                                            |     t8 = sym.imp.strchr;
    0x00404d3c move t9, t8                                                   |     t9 = t8;
    0x00404d40 jalr t9                                                       |     t9 ();
    0x00404d44 nop                                                           |     
    0x00404d48 lw gp, 0x10(fp)                                               |     gp = *(arg_10h);
    0x00404d4c move t8, v0                                                   |     t8 = v0;
    0x00404d50 addiu t8, t8, 2                                               |     t8 += 2;
    0x00404d54 sw t8, 0x34(fp)                                               |     *(arg_34h) = t8;
    0x00404d58 lw a0, 0x28(fp)                                               |     a0 = *(arg_28h);
    0x00404d5c addiu a1, zero, 0xa                                           |     a1 = 0xa;
    0x00404d60 lw t8, -0x7f28(gp)                                            |     t8 = sym.imp.strchr;
    0x00404d64 move t9, t8                                                   |     t9 = t8;
    0x00404d68 jalr t9                                                       |     t9 ();
    0x00404d6c nop                                                           |     
    0x00404d70 lw gp, 0x10(fp)                                               |     gp = *(arg_10h);
    0x00404d74 sw v0, 0x38(fp)                                               |     *(arg_38h) = v0;
    0x00404d78 lw t8, 0x38(fp)                                               |     t8 = *(arg_38h);
    0x00404d7c sb zero, (t8)                                                 |     *(t8) = 0;
    0x00404d80 lw a0, 0x2c(fp)                                               |     a0 = *(arg_2ch);
    0x00404d84 addiu a1, zero, 0xa                                           |     a1 = 0xa;
    0x00404d88 lw t8, -0x7f28(gp)                                            |     t8 = sym.imp.strchr;
    0x00404d8c move t9, t8                                                   |     t9 = t8;
    0x00404d90 jalr t9                                                       |     t9 ();
    0x00404d94 nop                                                           |     
    0x00404d98 lw gp, 0x10(fp)                                               |     gp = *(arg_10h);
    0x00404d9c sw v0, 0x38(fp)                                               |     *(arg_38h) = v0;
    0x00404da0 lw t8, 0x38(fp)                                               |     t8 = *(arg_38h);
    0x00404da4 sb zero, (t8)                                                 |     *(t8) = 0;
    0x00404da8 lw a0, 0x30(fp)                                               |     a0 = *(arg_30h);
    0x00404dac addiu a1, zero, 0xa                                           |     a1 = 0xa;
    0x00404db0 lw t8, -0x7f28(gp)                                            |     t8 = sym.imp.strchr;
    0x00404db4 move t9, t8                                                   |     t9 = t8;
    0x00404db8 jalr t9                                                       |     t9 ();
    0x00404dbc nop                                                           |     
    0x00404dc0 lw gp, 0x10(fp)                                               |     gp = *(arg_10h);
    0x00404dc4 sw v0, 0x38(fp)                                               |     *(arg_38h) = v0;
    0x00404dc8 lw t8, 0x38(fp)                                               |     t8 = *(arg_38h);
    0x00404dcc sb zero, (t8)                                                 |     *(t8) = 0;
    0x00404dd0 lw a0, 0x34(fp)                                               |     a0 = *(arg_34h);
    0x00404dd4 addiu a1, zero, 0xa                                           |     a1 = 0xa;
    0x00404dd8 lw t8, -0x7f28(gp)                                            |     t8 = sym.imp.strchr;
    0x00404ddc move t9, t8                                                   |     t9 = t8;
    0x00404de0 jalr t9                                                       |     t9 ();
    0x00404de4 nop                                                           |     
    0x00404de8 lw gp, 0x10(fp)                                               |     gp = *(arg_10h);
    0x00404dec sw v0, 0x38(fp)                                               |     *(arg_38h) = v0;
    0x00404df0 lw t8, 0x38(fp)                                               |     t8 = *(arg_38h);
    0x00404df4 sb zero, (t8)                                                 |     *(t8) = 0;
    0x00404df8 lw t8, 0x1c(fp)                                               |     t8 = *(arg_1ch);
    0x00404dfc addiu t8, t8, 8                                               |     t8 += 8;
    0x00404e00 move a0, t8                                                   |     a0 = t8;
    0x00404e04 lw a1, 0x28(fp)                                               |     a1 = *(arg_28h);
    0x00404e08 addiu a2, zero, 0x20                                          |     a2 = 0x20;
    0x00404e0c lw t8, -0x7ed4(gp)                                            |     t8 = sym.imp.strncpy;
    0x00404e10 move t9, t8                                                   |     t9 = t8;
    0x00404e14 jalr t9                                                       |     t9 ();
    0x00404e18 nop                                                           |     
    0x00404e1c lw gp, 0x10(fp)                                               |     gp = *(arg_10h);
    0x00404e20 lw a0, 0x2c(fp)                                               |     a0 = *(arg_2ch);
    0x00404e24 lw t8, -0x7fdc(gp)                                            |     t8 = *((gp - 8183));
                                                                             |     /* str.OPEN */
    0x00404e28 addiu a1, t8, -0x6a68                                         |     a1 = t8 + -0x6a68;
    0x00404e2c lw t8, -0x7f18(gp)                                            |     t8 = sym.imp.strcmp;
    0x00404e30 move t9, t8                                                   |     t9 = t8;
    0x00404e34 jalr t9                                                       |     t9 ();
    0x00404e38 nop                                                           |     
    0x00404e3c lw gp, 0x10(fp)                                               |     gp = *(arg_10h);
    0x00404e40 move t8, v0                                                   |     t8 = v0;
                                                                             |     if (t8 == 0) {
    0x00404e44 bnez t8, 0x404e5c                                             |         
    0x00404e48 nop                                                           |         
    0x00404e4c lw t8, 0x1c(fp)                                               |         t8 = *(arg_1ch);
    0x00404e50 sw zero, 0x30(t8)                                             |         *((t8 + 48)) = 0;
    0x00404e54 b 0x404fd4                                                    |         goto label_1;
    0x00404e58 nop                                                           |         
                                                                             |     }
    0x00404e5c lw a0, 0x2c(fp)                                               |     a0 = *(arg_2ch);
    0x00404e60 lw t8, -0x7fdc(gp)                                            |     t8 = *((gp - 8183));
                                                                             |     /* str.SHARED */
    0x00404e64 addiu a1, t8, -0x6a60                                         |     a1 = t8 + -0x6a60;
    0x00404e68 lw t8, -0x7f18(gp)                                            |     t8 = sym.imp.strcmp;
    0x00404e6c move t9, t8                                                   |     t9 = t8;
    0x00404e70 jalr t9                                                       |     t9 ();
    0x00404e74 nop                                                           |     
    0x00404e78 lw gp, 0x10(fp)                                               |     gp = *(arg_10h);
    0x00404e7c move t8, v0                                                   |     t8 = v0;
                                                                             |     if (t8 == 0) {
    0x00404e80 bnez t8, 0x404e9c                                             |         
    0x00404e84 nop                                                           |         
    0x00404e88 lw t8, 0x1c(fp)                                               |         t8 = *(arg_1ch);
    0x00404e8c addiu v0, zero, 1                                             |         v0 = 1;
    0x00404e90 sw v0, 0x30(t8)                                               |         *((t8 + 48)) = v0;
    0x00404e94 b 0x404fd4                                                    |         goto label_1;
    0x00404e98 nop                                                           |         
                                                                             |     }
    0x00404e9c lw a0, 0x2c(fp)                                               |     a0 = *(arg_2ch);
    0x00404ea0 lw t8, -0x7fdc(gp)                                            |     t8 = *((gp - 8183));
                                                                             |     /* str.WPAPSK */
    0x00404ea4 addiu a1, t8, -0x6a58                                         |     a1 = t8 + -0x6a58;
    0x00404ea8 lw t8, -0x7f18(gp)                                            |     t8 = sym.imp.strcmp;
    0x00404eac move t9, t8                                                   |     t9 = t8;
    0x00404eb0 jalr t9                                                       |     t9 ();
    0x00404eb4 nop                                                           |     
    0x00404eb8 lw gp, 0x10(fp)                                               |     gp = *(arg_10h);
    0x00404ebc move t8, v0                                                   |     t8 = v0;
                                                                             |     if (t8 == 0) {
    0x00404ec0 bnez t8, 0x404edc                                             |         
    0x00404ec4 nop                                                           |         
    0x00404ec8 lw t8, 0x1c(fp)                                               |         t8 = *(arg_1ch);
    0x00404ecc addiu v0, zero, 2                                             |         v0 = 2;
    0x00404ed0 sw v0, 0x30(t8)                                               |         *((t8 + 48)) = v0;
    0x00404ed4 b 0x404fd4                                                    |         goto label_1;
    0x00404ed8 nop                                                           |         
                                                                             |     }
    0x00404edc lw a0, 0x2c(fp)                                               |     a0 = *(arg_2ch);
    0x00404ee0 lw t8, -0x7fdc(gp)                                            |     t8 = *((gp - 8183));
                                                                             |     /* esilref: 'WPA' */
    0x00404ee4 addiu a1, t8, -0x6a50                                         |     a1 = t8 + -0x6a50;
    0x00404ee8 lw t8, -0x7f18(gp)                                            |     t8 = sym.imp.strcmp;
    0x00404eec move t9, t8                                                   |     t9 = t8;
    0x00404ef0 jalr t9                                                       |     t9 ();
    0x00404ef4 nop                                                           |     
    0x00404ef8 lw gp, 0x10(fp)                                               |     gp = *(arg_10h);
    0x00404efc move t8, v0                                                   |     t8 = v0;
                                                                             |     if (t8 == 0) {
    0x00404f00 bnez t8, 0x404f1c                                             |         
    0x00404f04 nop                                                           |         
    0x00404f08 lw t8, 0x1c(fp)                                               |         t8 = *(arg_1ch);
    0x00404f0c addiu v0, zero, 2                                             |         v0 = 2;
    0x00404f10 sw v0, 0x30(t8)                                               |         *((t8 + 48)) = v0;
    0x00404f14 b 0x404fd4                                                    |         goto label_1;
    0x00404f18 nop                                                           |         
                                                                             |     }
    0x00404f1c lw a0, 0x2c(fp)                                               |     a0 = *(arg_2ch);
    0x00404f20 lw t8, -0x7fdc(gp)                                            |     t8 = *((gp - 8183));
                                                                             |     /* str.WPA2PSK */
    0x00404f24 addiu a1, t8, -0x6a4c                                         |     a1 = t8 + -0x6a4c;
    0x00404f28 lw t8, -0x7f18(gp)                                            |     t8 = sym.imp.strcmp;
    0x00404f2c move t9, t8                                                   |     t9 = t8;
    0x00404f30 jalr t9                                                       |     t9 ();
    0x00404f34 nop                                                           |     
    0x00404f38 lw gp, 0x10(fp)                                               |     gp = *(arg_10h);
    0x00404f3c move t8, v0                                                   |     t8 = v0;
                                                                             |     if (t8 == 0) {
    0x00404f40 bnez t8, 0x404f5c                                             |         
    0x00404f44 nop                                                           |         
    0x00404f48 lw t8, 0x1c(fp)                                               |         t8 = *(arg_1ch);
    0x00404f4c addiu v0, zero, 5                                             |         v0 = 5;
    0x00404f50 sw v0, 0x30(t8)                                               |         *((t8 + 48)) = v0;
    0x00404f54 b 0x404fd4                                                    |         goto label_1;
    0x00404f58 nop                                                           |         
                                                                             |     }
    0x00404f5c lw a0, 0x2c(fp)                                               |     a0 = *(arg_2ch);
    0x00404f60 lw t8, -0x7fdc(gp)                                            |     t8 = *((gp - 8183));
                                                                             |     /* str.WPA2 */
    0x00404f64 addiu a1, t8, -0x6a44                                         |     a1 = t8 + -0x6a44;
    0x00404f68 lw t8, -0x7f18(gp)                                            |     t8 = sym.imp.strcmp;
    0x00404f6c move t9, t8                                                   |     t9 = t8;
    0x00404f70 jalr t9                                                       |     t9 ();
    0x00404f74 nop                                                           |     
    0x00404f78 lw gp, 0x10(fp)                                               |     gp = *(arg_10h);
    0x00404f7c move t8, v0                                                   |     t8 = v0;
                                                                             |     if (t8 == 0) {
    0x00404f80 bnez t8, 0x404f9c                                             |         
    0x00404f84 nop                                                           |         
    0x00404f88 lw t8, 0x1c(fp)                                               |         t8 = *(arg_1ch);
    0x00404f8c addiu v0, zero, 5                                             |         v0 = 5;
    0x00404f90 sw v0, 0x30(t8)                                               |         *((t8 + 48)) = v0;
    0x00404f94 b 0x404fd4                                                    |         goto label_1;
    0x00404f98 nop                                                           |         
                                                                             |     }
    0x00404f9c lw t8, -0x7eb4(gp)                                            |     t8 = *((gp - 8109));
    0x00404fa0 lw t8, (t8)                                                   |     t8 = *(t8);
    0x00404fa4 move a0, t8                                                   |     a0 = t8;
    0x00404fa8 lw t8, -0x7fdc(gp)                                            |     t8 = *((gp - 8183));
                                                                             |     /* str.parse_auth_fail___s__n */
    0x00404fac addiu a1, t8, -0x6a3c                                         |     a1 = t8 + -0x6a3c;
    0x00404fb0 lw a2, 0x2c(fp)                                               |     a2 = *(arg_2ch);
    0x00404fb4 lw t8, -0x7ef0(gp)                                            |     t8 = sym.imp.fprintf
    0x00404fb8 move t9, t8                                                   |     t9 = t8;
    0x00404fbc jalr t9                                                       |     t9 ();
    0x00404fc0 nop                                                           |     
    0x00404fc4 lw gp, 0x10(fp)                                               |     gp = *(arg_10h);
    0x00404fc8 addiu t8, zero, -1                                            |     t8 = -1;
    0x00404fcc b 0x405140                                                    |     goto label_0;
    0x00404fd0 nop                                                           |     
                                                                             | label_1:
    0x00404fd4 lw a0, 0x30(fp)                                               |     a0 = *(arg_30h);
    0x00404fd8 lw t8, -0x7fdc(gp)                                            |     t8 = *((gp - 8183));
                                                                             |     /* str.NONE */
    0x00404fdc addiu a1, t8, -0x6ec4                                         |     a1 = t8 + -0x6ec4;
    0x00404fe0 lw t8, -0x7f18(gp)                                            |     t8 = sym.imp.strcmp;
    0x00404fe4 move t9, t8                                                   |     t9 = t8;
    0x00404fe8 jalr t9                                                       |     t9 ();
    0x00404fec nop                                                           |     
    0x00404ff0 lw gp, 0x10(fp)                                               |     gp = *(arg_10h);
    0x00404ff4 move t8, v0                                                   |     t8 = v0;
                                                                             |     if (t8 == 0) {
    0x00404ff8 bnez t8, 0x405010                                             |         
    0x00404ffc nop                                                           |         
    0x00405000 lw t8, 0x1c(fp)                                               |         t8 = *(arg_1ch);
    0x00405004 sw zero, 0x34(t8)                                             |         *((t8 + 52)) = 0;
    0x00405008 b 0x405108                                                    |         goto label_2;
    0x0040500c nop                                                           |         
                                                                             |     }
    0x00405010 lw a0, 0x30(fp)                                               |     a0 = *(arg_30h);
    0x00405014 lw t8, -0x7fdc(gp)                                            |     t8 = *((gp - 8183));
                                                                             |     /* esilref: 'WEP' */
    0x00405018 addiu a1, t8, -0x6a24                                         |     a1 = t8 + -0x6a24;
    0x0040501c lw t8, -0x7f18(gp)                                            |     t8 = sym.imp.strcmp;
    0x00405020 move t9, t8                                                   |     t9 = t8;
    0x00405024 jalr t9                                                       |     t9 ();
    0x00405028 nop                                                           |     
    0x0040502c lw gp, 0x10(fp)                                               |     gp = *(arg_10h);
    0x00405030 move t8, v0                                                   |     t8 = v0;
                                                                             |     if (t8 == 0) {
    0x00405034 bnez t8, 0x405050                                             |         
    0x00405038 nop                                                           |         
    0x0040503c lw t8, 0x1c(fp)                                               |         t8 = *(arg_1ch);
    0x00405040 addiu v0, zero, 1                                             |         v0 = 1;
    0x00405044 sw v0, 0x34(t8)                                               |         *((t8 + 52)) = v0;
    0x00405048 b 0x405108                                                    |         goto label_2;
    0x0040504c nop                                                           |         
                                                                             |     }
    0x00405050 lw a0, 0x30(fp)                                               |     a0 = *(arg_30h);
    0x00405054 lw t8, -0x7fdc(gp)                                            |     t8 = *((gp - 8183));
                                                                             |     /* str.TKIP */
    0x00405058 addiu a1, t8, -0x6e48                                         |     a1 = t8 + -0x6e48;
    0x0040505c lw t8, -0x7f18(gp)                                            |     t8 = sym.imp.strcmp;
    0x00405060 move t9, t8                                                   |     t9 = t8;
    0x00405064 jalr t9                                                       |     t9 ();
    0x00405068 nop                                                           |     
    0x0040506c lw gp, 0x10(fp)                                               |     gp = *(arg_10h);
    0x00405070 move t8, v0                                                   |     t8 = v0;
                                                                             |     if (t8 == 0) {
    0x00405074 bnez t8, 0x405090                                             |         
    0x00405078 nop                                                           |         
    0x0040507c lw t8, 0x1c(fp)                                               |         t8 = *(arg_1ch);
    0x00405080 addiu v0, zero, 2                                             |         v0 = 2;
    0x00405084 sw v0, 0x34(t8)                                               |         *((t8 + 52)) = v0;
    0x00405088 b 0x405108                                                    |         goto label_2;
    0x0040508c nop                                                           |         
                                                                             |     }
    0x00405090 lw a0, 0x30(fp)                                               |     a0 = *(arg_30h);
    0x00405094 lw t8, -0x7fdc(gp)                                            |     t8 = *((gp - 8183));
                                                                             |     /* esilref: 'AES' */
    0x00405098 addiu a1, t8, -0x6a20                                         |     a1 = t8 + -0x6a20;
    0x0040509c lw t8, -0x7f18(gp)                                            |     t8 = sym.imp.strcmp;
    0x004050a0 move t9, t8                                                   |     t9 = t8;
    0x004050a4 jalr t9                                                       |     t9 ();
    0x004050a8 nop                                                           |     
    0x004050ac lw gp, 0x10(fp)                                               |     gp = *(arg_10h);
    0x004050b0 move t8, v0                                                   |     t8 = v0;
                                                                             |     if (t8 == 0) {
    0x004050b4 bnez t8, 0x4050d0                                             |         
    0x004050b8 nop                                                           |         
    0x004050bc lw t8, 0x1c(fp)                                               |         t8 = *(arg_1ch);
    0x004050c0 addiu v0, zero, 3                                             |         v0 = 3;
    0x004050c4 sw v0, 0x34(t8)                                               |         *((t8 + 52)) = v0;
    0x004050c8 b 0x405108                                                    |         goto label_2;
    0x004050cc nop                                                           |         
                                                                             |     }
    0x004050d0 lw t8, -0x7eb4(gp)                                            |     t8 = *((gp - 8109));
    0x004050d4 lw t8, (t8)                                                   |     t8 = *(t8);
    0x004050d8 move a0, t8                                                   |     a0 = t8;
    0x004050dc lw t8, -0x7fdc(gp)                                            |     t8 = *((gp - 8183));
                                                                             |     /* str.parse_enc_fail___s__n */
    0x004050e0 addiu a1, t8, -0x6a1c                                         |     a1 = t8 + -0x6a1c;
    0x004050e4 lw a2, 0x30(fp)                                               |     a2 = *(arg_30h);
    0x004050e8 lw t8, -0x7ef0(gp)                                            |     t8 = sym.imp.fprintf
    0x004050ec move t9, t8                                                   |     t9 = t8;
    0x004050f0 jalr t9                                                       |     t9 ();
    0x004050f4 nop                                                           |     
    0x004050f8 lw gp, 0x10(fp)                                               |     gp = *(arg_10h);
    0x004050fc addiu t8, zero, -1                                            |     t8 = -1;
    0x00405100 b 0x405140                                                    |     goto label_0;
    0x00405104 nop                                                           |     
                                                                             | label_2:
    0x00405108 lw t8, 0x34(fp)                                               |     t8 = *(arg_34h);
                                                                             |     if (t8 != 0) {
    0x0040510c beqz t8, 0x40513c                                             |         
    0x00405110 nop                                                           |         
    0x00405114 lw t8, 0x1c(fp)                                               |         t8 = *(arg_1ch);
    0x00405118 addiu t8, t8, 0x14c                                           |         t8 += 0x14c;
    0x0040511c move a0, t8                                                   |         a0 = t8;
    0x00405120 lw a1, 0x34(fp)                                               |         a1 = *(arg_34h);
    0x00405124 addiu a2, zero, 0x41                                          |         a2 = 0x41;
    0x00405128 lw t8, -0x7ed4(gp)                                            |         t8 = sym.imp.strncpy;
    0x0040512c move t9, t8                                                   |         t9 = t8;
    0x00405130 jalr t9                                                       |         t9 ();
    0x00405134 nop                                                           |         
    0x00405138 lw gp, 0x10(fp)                                               |         gp = *(arg_10h);
                                                                             |     }
    0x0040513c move t8, zero                                                 |     t8 = 0;
                                                                             | label_0:
    0x00405140 move v0, t8                                                   |     v0 = t8;
    0x00405144 lw t8, -0x7e18(gp)                                            |     t8 = *((gp - 8070));
    0x00405148 lw v1, 0x105c(fp)                                             |     v1 = *(arg_105ch);
    0x0040514c lw t8, (t8)                                                   |     t8 = *(t8);
                                                                             |     if (v1 != t8) {
    0x00405150 beq v1, t8, 0x405168                                          |         
    0x00405154 nop                                                           |         
    0x00405158 lw t8, -0x7ea8(gp)                                            |         t8 = sym.imp.__stack_chk_fail;
    0x0040515c move t9, t8                                                   |         t9 = t8;
    0x00405160 jalr t9                                                       |         t9 ();
    0x00405164 nop                                                           |         
                                                                             |     }
    0x00405168 move sp, fp                                                   |     
    0x0040516c lw ra, 0x1064(sp)                                             |     ra = *(var_1064h);
    0x00405170 lw fp, 0x1060(sp)                                             |     fp = *(var_1060h);
    0x00405174 addiu sp, sp, 0x1068                                          |     
    0x00405178 jr ra                                                         |     return v1;
    0x0040517c nop                                                           |     
                                                                             | }

[*] Function fprintf used 24 times start_wps