[*] Binary protection state of wifiAutoReconnect
Full RELRO Canary found NX disabled No PIE No RPATH No RUNPATH No Symbols
[*] Function fprintf tear down of wifiAutoReconnect
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/wifiAutoReconnect @ 0x402ed0 */
| #include <stdint.h>
|
; (fcn) sym.sendCmd_char_const__unsigned_int__unsigned_int__unsigned_int_ () | void sendCmd_char_const_unsigned_int_unsigned_int_unsigned_int_ () {
| /* sendCmd(char const*, unsigned int, unsigned int, unsigned int) */
0x00402ed0 lui gp, 2 |
0x00402ed4 addiu gp, gp, 0x2160 |
0x00402ed8 addu gp, gp, t9 | gp += t9;
0x00402edc addiu sp, sp, -0xf0 |
0x00402ee0 sw ra, 0xec(sp) | *(var_ech) = ra;
0x00402ee4 sw fp, 0xe8(sp) | *(var_e8h) = fp;
0x00402ee8 sw s0, 0xe4(sp) | *(var_e4h) = s0;
0x00402eec move fp, sp | fp = sp;
0x00402ef0 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00402ef4 sw a0, 0x2c(fp) | *(arg_2ch) = a0;
0x00402ef8 sw a1, 0x28(fp) | *(arg_28h) = a1;
0x00402efc sw a2, 0x24(fp) | *(arg_24h) = a2;
0x00402f00 sw a3, 0x20(fp) | *(arg_20h) = a3;
0x00402f04 lw t8, -0x7dd0(gp) | t8 = *((gp - 8052));
0x00402f08 lw t8, (t8) | t8 = *(t8);
0x00402f0c sw t8, 0xdc(fp) | *(arg_dch) = t8;
0x00402f10 addiu t8, fp, 0x38 | t8 = fp + 0x38;
0x00402f14 move a0, t8 | a0 = t8;
0x00402f18 lw t8, -0x7f98(gp) | t8 = *(gp);
0x00402f1c move t9, t8 | t9 = t8;
0x00402f20 jalr t9 | t9 ();
0x00402f24 nop |
0x00402f28 lw gp, 0x18(fp) | gp = *(arg_18h);
0x00402f2c lw t8, 0x28(fp) | t8 = *(arg_28h);
0x00402f30 sw t8, 0x44(fp) | *(arg_44h) = t8;
0x00402f34 lw t8, 0x24(fp) | t8 = *(arg_24h);
0x00402f38 sw t8, 0x48(fp) | *(arg_48h) = t8;
0x00402f3c lw t8, 0x20(fp) | t8 = *(arg_20h);
0x00402f40 sw t8, 0x4c(fp) | *(arg_4ch) = t8;
0x00402f44 addiu v0, fp, 0x38 | v0 = fp + 0x38;
0x00402f48 addiu t8, fp, 0x44 | t8 = fp + 0x44;
0x00402f4c addiu v1, fp, 0x50 | v1 = fp + 0x50;
0x00402f50 sw v1, 0x10(sp) | *(var_10h) = v1;
0x00402f54 addiu v1, zero, 0x8c | v1 = 0x8c;
0x00402f58 sw v1, 0x14(sp) | *(var_14h) = v1;
0x00402f5c move a0, v0 | a0 = v0;
0x00402f60 lw a1, 0x2c(fp) | a1 = *(arg_2ch);
0x00402f64 move a2, t8 | a2 = t8;
0x00402f68 addiu a3, zero, 0xc | a3 = 0xc;
0x00402f6c lw t8, -0x7e3c(gp) | t8 = *(gp);
0x00402f70 move t9, t8 | t9 = t8;
0x00402f74 jalr t9 | t9 ();
0x00402f78 nop |
0x00402f7c lw gp, 0x18(fp) | gp = *(arg_18h);
0x00402f80 move t8, v0 | t8 = v0;
0x00402f84 sw t8, 0x34(fp) | *(arg_34h) = t8;
0x00402f88 lw t8, 0x34(fp) | t8 = *(arg_34h);
| if (t8 < 0) {
0x00402f8c bgez t8, 0x402fcc |
0x00402f90 nop |
0x00402f94 lw t8, -0x7e6c(gp) | t8 = *((gp - 8091));
0x00402f98 lw t8, (t8) | t8 = *(t8);
0x00402f9c move a0, t8 | a0 = t8;
0x00402fa0 lw t8, -0x7fd4(gp) | t8 = *((gp - 8181));
| /* str.OOPS___sendCmd_return__d_n */
0x00402fa4 addiu a1, t8, -0x5528 | a1 = t8 + -0x5528;
0x00402fa8 lw a2, 0x34(fp) | a2 = *(arg_34h);
0x00402fac lw t8, -0x7eb8(gp) | t8 = sym.imp.fprintf
0x00402fb0 move t9, t8 | t9 = t8;
0x00402fb4 jalr t9 | t9 ();
0x00402fb8 nop |
0x00402fbc lw gp, 0x18(fp) | gp = *(arg_18h);
0x00402fc0 lw s0, 0x34(fp) | s0 = *(arg_34h);
0x00402fc4 b 0x40303c | goto label_0;
0x00402fc8 nop |
| }
0x00402fcc lw t8, 0x50(fp) | t8 = *(arg_50h);
| if (t8 != 0) {
0x00402fd0 beqz t8, 0x403014 |
0x00402fd4 nop |
0x00402fd8 lw t8, -0x7e6c(gp) | t8 = *((gp - 8091));
0x00402fdc lw v0, (t8) | v0 = *(t8);
0x00402fe0 lw t8, 0x50(fp) | t8 = *(arg_50h);
0x00402fe4 move a0, v0 | a0 = v0;
0x00402fe8 lw v0, -0x7fd4(gp) | v0 = *((gp - 8181));
| /* str.OOPS___sendCmd_result__d_n */
0x00402fec addiu a1, v0, -0x550c | a1 = v0 + -0x550c;
0x00402ff0 move a2, t8 | a2 = t8;
0x00402ff4 lw t8, -0x7eb8(gp) | t8 = sym.imp.fprintf
0x00402ff8 move t9, t8 | t9 = t8;
0x00402ffc jalr t9 | t9 ();
0x00403000 nop |
0x00403004 lw gp, 0x18(fp) | gp = *(arg_18h);
0x00403008 addiu s0, zero, -1 | s0 = -1;
0x0040300c b 0x40303c | goto label_0;
0x00403010 nop |
| }
0x00403014 lw t8, 0x54(fp) | t8 = *(arg_54h);
0x00403018 lw v0, -0x7fd4(gp) | v0 = *((gp - 8181));
| /* str.sendCmd_:__d_n */
0x0040301c addiu a0, v0, -0x54f0 | a0 = v0 + -0x54f0;
0x00403020 move a1, t8 | a1 = t8;
0x00403024 lw t8, -0x7f08(gp) | t8 = sym.imp.printf;
0x00403028 move t9, t8 | t9 = t8;
0x0040302c jalr t9 | t9 ();
0x00403030 nop |
0x00403034 lw gp, 0x18(fp) | gp = *(arg_18h);
0x00403038 lw s0, 0x34(fp) | s0 = *(arg_34h);
| label_0:
0x0040303c addiu t8, fp, 0x38 | t8 = fp + 0x38;
0x00403040 move a0, t8 | a0 = t8;
0x00403044 lw t8, -0x7f94(gp) | t8 = *(gp);
0x00403048 move t9, t8 | t9 = t8;
0x0040304c jalr t9 | t9 ();
0x00403050 nop |
0x00403054 lw gp, 0x18(fp) | gp = *(arg_18h);
0x00403058 move t8, s0 | t8 = s0;
0x0040305c move v0, t8 | v0 = t8;
0x00403060 lw t8, -0x7dd0(gp) | t8 = *((gp - 8052));
0x00403064 lw v1, 0xdc(fp) | v1 = *(arg_dch);
0x00403068 lw t8, (t8) | t8 = *(t8);
| if (v1 != t8) {
0x0040306c beq v1, t8, 0x4030c8 |
0x00403070 nop |
0x00403074 b 0x4030b8 | goto label_1;
0x00403078 nop |
| label_1:
0x004030b8 lw t8, -0x7e60(gp) | t8 = sym.imp.__stack_chk_fail;
0x004030bc move t9, t8 | t9 = t8;
0x004030c0 jalr t9 | t9 ();
0x004030c4 nop |
| }
0x004030c8 move sp, fp |
0x004030cc lw ra, 0xec(sp) | ra = *(var_ech);
0x004030d0 lw fp, 0xe8(sp) | fp = *(var_e8h);
0x004030d4 lw s0, 0xe4(sp) | s0 = *(var_e4h);
0x004030d8 addiu sp, sp, 0xf0 |
0x004030dc jr ra | return v1;
0x004030e0 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/sbin/wifiAutoReconnect @ 0x403c14 */
| #include <stdint.h>
|
; (fcn) sym.wext_event_thread_void_ () | void wext_event_thread_void_ () {
| /* wext_event_thread(void*) */
0x00403c14 lui gp, 2 |
0x00403c18 addiu gp, gp, 0x141c |
0x00403c1c addu gp, gp, t9 | gp += t9;
0x00403c20 addiu sp, sp, -0x138 |
0x00403c24 sw ra, 0x134(sp) | *(var_134h) = ra;
0x00403c28 sw fp, 0x130(sp) | *(var_130h) = fp;
0x00403c2c move fp, sp | fp = sp;
0x00403c30 sw gp, 0x20(sp) | *(var_20h) = gp;
0x00403c34 sw a0, 0x2c(fp) | *(arg_2ch) = a0;
0x00403c38 lw t8, -0x7dd0(gp) | t8 = *((gp - 8052));
0x00403c3c lw t8, (t8) | t8 = *(t8);
0x00403c40 sw t8, 0x12c(fp) | *(arg_12ch) = t8;
0x00403c44 sw zero, 0x38(fp) | *(arg_38h) = 0;
0x00403c48 addiu t8, fp, 0xdc | t8 = fp + 0xdc;
0x00403c4c lw v0, -0x7fd4(gp) | v0 = *((gp - 8181));
0x00403c50 lw a2, -0x531c(v0) | a2 = *((v0 - 5319));
| /* str._var_tmp_watchdog */
0x00403c54 addiu v1, v0, -0x531c | v1 = v0 + -0x531c;
0x00403c58 lw a1, 4(v1) | a1 = *((v1 + 1));
| /* str._var_tmp_watchdog */
0x00403c5c addiu v1, v0, -0x531c | v1 = v0 + -0x531c;
0x00403c60 lw a0, 8(v1) | a0 = *((v1 + 2));
| /* str._var_tmp_watchdog */
0x00403c64 addiu v1, v0, -0x531c | v1 = v0 + -0x531c;
0x00403c68 lw v1, 0xc(v1) | v1 = *((v1 + 3));
0x00403c6c sw a2, (t8) | *(t8) = a2;
0x00403c70 sw a1, 4(t8) | *((t8 + 4)) = a1;
0x00403c74 sw a0, 8(t8) | *((t8 + 8)) = a0;
0x00403c78 sw v1, 0xc(t8) | *((t8 + 12)) = v1;
| /* str._var_tmp_watchdog */
0x00403c7c addiu v0, v0, -0x531c | v0 += -0x531c;
0x00403c80 lhu v0, 0x10(v0) | v0 = *((v0 + 8));
0x00403c84 sh v0, 0x10(t8) | *((t8 + 16)) = v0;
0x00403c88 addiu t8, fp, 0xd4 | t8 = fp + 0xd4;
0x00403c8c lw v0, -0x7fd4(gp) | v0 = *((gp - 8181));
| /* str.wlan1 */
0x00403c90 addiu a0, v0, -0x5308 | a0 = v0 + -0x5308;
0x00403c94 move a1, t8 | a1 = t8;
0x00403c98 lw t8, -0x7f8c(gp) | t8 = sym.GetIfHwAddr_char_const__unsigned_char_;
0x00403c9c move t9, t8 | t9 = t8;
0x00403ca0 jalr t9 | t9 ();
0x00403ca4 nop |
0x00403ca8 lw gp, 0x20(fp) | gp = *(arg_20h);
0x00403cac move t8, v0 | t8 = v0;
0x00403cb0 srl t8, t8, 0x1f | t8 >>= 0x1f;
0x00403cb4 andi t8, t8, 0xff | t8 &= 0xff;
| if (t8 != 0) {
0x00403cb8 beqz t8, 0x403ce8 |
0x00403cbc nop |
0x00403cc0 lw a0, -0x7f9c(gp) | a0 = *(gp);
0x00403cc4 lw t8, -0x7fd4(gp) | t8 = *((gp - 8181));
| /* str.Get_MAC_address_of_wlan1_fail_n */
0x00403cc8 addiu a1, t8, -0x5300 | a1 = t8 + -0x5300;
0x00403ccc lw t8, -0x7e38(gp) | t8 = *(gp);
0x00403cd0 move t9, t8 | t9 = t8;
0x00403cd4 jalr t9 | t9 ();
0x00403cd8 nop |
0x00403cdc lw gp, 0x20(fp) | gp = *(arg_20h);
0x00403ce0 b 0x404444 | goto label_1;
0x00403ce4 nop |
| }
0x00403ce8 lbu t8, 0xd4(fp) | t8 = *(arg_d4h);
0x00403cec move v0, t8 | v0 = t8;
0x00403cf0 lbu t8, 0xd5(fp) | t8 = *(arg_d5h);
0x00403cf4 lbu v1, 0xd6(fp) | v1 = *(arg_d6h);
0x00403cf8 move a2, v1 | a2 = v1;
0x00403cfc lbu v1, 0xd7(fp) | v1 = *(arg_d7h);
0x00403d00 move a1, v1 | a1 = v1;
0x00403d04 lbu v1, 0xd8(fp) | v1 = *(arg_d8h);
0x00403d08 move a0, v1 | a0 = v1;
0x00403d0c lbu v1, 0xd9(fp) | v1 = *(arg_d9h);
0x00403d10 sw a2, 0x10(sp) | *(var_10h) = a2;
0x00403d14 sw a1, 0x14(sp) | *(var_14h) = a1;
0x00403d18 sw a0, 0x18(sp) | *(var_18h) = a0;
0x00403d1c sw v1, 0x1c(sp) | *(var_1ch) = v1;
0x00403d20 lw a0, -0x7f9c(gp) | a0 = *(gp);
0x00403d24 lw v1, -0x7fd4(gp) | v1 = *((gp - 8181));
| /* str.wlan1_MAC___02x:_02x:_02x:_02x:_02x:_02x__n */
0x00403d28 addiu a1, v1, -0x52e0 | a1 = v1 + -0x52e0;
0x00403d2c move a2, v0 | a2 = v0;
0x00403d30 move a3, t8 | a3 = t8;
0x00403d34 lw t8, -0x7e38(gp) | t8 = *(gp);
0x00403d38 move t9, t8 | t9 = t8;
0x00403d3c jalr t9 | t9 ();
0x00403d40 nop |
0x00403d44 lw gp, 0x20(fp) | gp = *(arg_20h);
0x00403d48 addiu a0, zero, 0x10 | a0 = 0x10;
0x00403d4c addiu a1, zero, 3 | a1 = 3;
0x00403d50 move a2, zero | a2 = 0;
0x00403d54 lw t8, -0x7ed0(gp) | t8 = sym.imp.socket;
0x00403d58 move t9, t8 | t9 = t8;
0x00403d5c jalr t9 | t9 ();
0x00403d60 nop |
0x00403d64 lw gp, 0x20(fp) | gp = *(arg_20h);
0x00403d68 sw v0, 0x38(fp) | *(arg_38h) = v0;
0x00403d6c lw t8, 0x38(fp) | t8 = *(arg_38h);
| if (t8 < 0) {
0x00403d70 bgez t8, 0x403d9c |
0x00403d74 nop |
0x00403d78 lw t8, -0x7fd4(gp) | t8 = *((gp - 8181));
| /* str.Cannot_open_netlink_socket */
0x00403d7c addiu a0, t8, -0x52b4 | a0 = t8 + -0x52b4;
0x00403d80 lw t8, -0x7ea8(gp) | t8 = sym.imp.perror;
0x00403d84 move t9, t8 | t9 = t8;
0x00403d88 jalr t9 | t9 ();
0x00403d8c nop |
0x00403d90 lw gp, 0x20(fp) | gp = *(arg_20h);
0x00403d94 b 0x404444 | goto label_1;
0x00403d98 nop |
| }
0x00403d9c addiu t8, fp, 0x48 | t8 = fp + 0x48;
0x00403da0 move a0, t8 | a0 = t8;
0x00403da4 move a1, zero | a1 = 0;
0x00403da8 addiu a2, zero, 0xc | a2 = 0xc;
0x00403dac lw t8, -0x7ea4(gp) | t8 = sym.imp.memset;
0x00403db0 move t9, t8 | t9 = t8;
0x00403db4 jalr t9 | t9 ();
0x00403db8 nop |
0x00403dbc lw gp, 0x20(fp) | gp = *(arg_20h);
0x00403dc0 addiu t8, zero, 0x10 | t8 = 0x10;
0x00403dc4 sh t8, 0x48(fp) | *(arg_48h) = t8;
0x00403dc8 addiu t8, zero, 1 | t8 = 1;
0x00403dcc sw t8, 0x50(fp) | *(arg_50h) = t8;
0x00403dd0 addiu t8, fp, 0x48 | t8 = fp + 0x48;
0x00403dd4 lw a0, 0x38(fp) | a0 = *(arg_38h);
0x00403dd8 move a1, t8 | a1 = t8;
0x00403ddc addiu a2, zero, 0xc | a2 = 0xc;
0x00403de0 lw t8, -0x7dc4(gp) | t8 = sym.imp.bind;
0x00403de4 move t9, t8 | t9 = t8;
0x00403de8 jalr t9 | t9 ();
0x00403dec nop |
0x00403df0 lw gp, 0x20(fp) | gp = *(arg_20h);
0x00403df4 move t8, v0 | t8 = v0;
0x00403df8 srl t8, t8, 0x1f | t8 >>= 0x1f;
0x00403dfc andi t8, t8, 0xff | t8 &= 0xff;
| if (t8 != 0) {
0x00403e00 beqz t8, 0x403e2c |
0x00403e04 nop |
0x00403e08 lw t8, -0x7fd4(gp) | t8 = *((gp - 8181));
| /* str.Cannot_bind_netlink_socket */
0x00403e0c addiu a0, t8, -0x5298 | a0 = t8 + -0x5298;
0x00403e10 lw t8, -0x7ea8(gp) | t8 = sym.imp.perror;
0x00403e14 move t9, t8 | t9 = t8;
0x00403e18 jalr t9 | t9 ();
0x00403e1c nop |
0x00403e20 lw gp, 0x20(fp) | gp = *(arg_20h);
0x00403e24 b 0x404444 | goto label_1;
0x00403e28 nop |
| }
0x00403e2c addiu t8, zero, 0xc | t8 = 0xc;
0x00403e30 sw t8, 0x30(fp) | *(arg_30h) = t8;
0x00403e34 addiu v0, fp, 0x48 | v0 = fp + 0x48;
0x00403e38 addiu t8, fp, 0x30 | t8 = fp + 0x30;
0x00403e3c lw a0, 0x38(fp) | a0 = *(arg_38h);
0x00403e40 move a1, v0 | a1 = v0;
0x00403e44 move a2, t8 | a2 = t8;
0x00403e48 lw t8, -0x7df4(gp) | t8 = sym.imp.getsockname;
0x00403e4c move t9, t8 | t9 = t8;
0x00403e50 jalr t9 | t9 ();
0x00403e54 nop |
0x00403e58 lw gp, 0x20(fp) | gp = *(arg_20h);
0x00403e5c move t8, v0 | t8 = v0;
0x00403e60 srl t8, t8, 0x1f | t8 >>= 0x1f;
0x00403e64 andi t8, t8, 0xff | t8 &= 0xff;
| if (t8 != 0) {
0x00403e68 beqz t8, 0x403e94 |
0x00403e6c nop |
0x00403e70 lw t8, -0x7fd4(gp) | t8 = *((gp - 8181));
| /* str.Cannot_getsockname */
0x00403e74 addiu a0, t8, -0x527c | a0 = t8 + -0x527c;
0x00403e78 lw t8, -0x7ea8(gp) | t8 = sym.imp.perror;
0x00403e7c move t9, t8 | t9 = t8;
0x00403e80 jalr t9 | t9 ();
0x00403e84 nop |
0x00403e88 lw gp, 0x20(fp) | gp = *(arg_20h);
0x00403e8c b 0x404444 | goto label_1;
0x00403e90 nop |
| }
0x00403e94 lw t8, 0x30(fp) | t8 = *(arg_30h);
0x00403e98 move v0, t8 | v0 = t8;
0x00403e9c addiu t8, zero, 0xc | t8 = 0xc;
| if (v0 != t8) {
0x00403ea0 beq v0, t8, 0x403ed8 |
0x00403ea4 nop |
0x00403ea8 lw t8, 0x30(fp) | t8 = *(arg_30h);
0x00403eac lw a0, -0x7f9c(gp) | a0 = *(gp);
0x00403eb0 lw v0, -0x7fd4(gp) | v0 = *((gp - 8181));
| /* str.Wrong_address_length__d_n */
0x00403eb4 addiu a1, v0, -0x5268 | a1 = v0 + -0x5268;
0x00403eb8 move a2, t8 | a2 = t8;
0x00403ebc lw t8, -0x7e38(gp) | t8 = *(gp);
0x00403ec0 move t9, t8 | t9 = t8;
0x00403ec4 jalr t9 | t9 ();
0x00403ec8 nop |
0x00403ecc lw gp, 0x20(fp) | gp = *(arg_20h);
0x00403ed0 b 0x404444 | goto label_1;
0x00403ed4 nop |
| }
0x00403ed8 lhu v0, 0x48(fp) | v0 = *(arg_48h);
0x00403edc addiu t8, zero, 0x10 | t8 = 0x10;
| if (v0 != t8) {
0x00403ee0 beq v0, t8, 0x403f18 |
0x00403ee4 nop |
0x00403ee8 lhu t8, 0x48(fp) | t8 = *(arg_48h);
0x00403eec lw a0, -0x7f9c(gp) | a0 = *(gp);
0x00403ef0 lw v0, -0x7fd4(gp) | v0 = *((gp - 8181));
| /* str.Wrong_address_family__d_n */
0x00403ef4 addiu a1, v0, -0x524c | a1 = v0 + -0x524c;
0x00403ef8 move a2, t8 | a2 = t8;
0x00403efc lw t8, -0x7e38(gp) | t8 = *(gp);
0x00403f00 move t9, t8 | t9 = t8;
0x00403f04 jalr t9 | t9 ();
0x00403f08 nop |
0x00403f0c lw gp, 0x20(fp) | gp = *(arg_20h);
0x00403f10 b 0x404444 | goto label_1;
0x00403f14 nop |
| }
0x00403f18 b 0x404410 | goto label_2;
0x00403f1c nop |
| label_0:
0x00403f20 addiu t8, fp, 0x54 | t8 = fp + 0x54;
0x00403f24 sw t8, 0x3c(fp) | *(arg_3ch) = t8;
0x00403f28 sw zero, 0x34(fp) | *(arg_34h) = 0;
0x00403f2c b 0x403f54 | goto label_3;
0x00403f30 nop |
| do {
0x00403f34 lw v0, 0x3c(fp) | v0 = *(arg_3ch);
0x00403f38 lw t8, 0x34(fp) | t8 = *(arg_34h);
0x00403f3c sll t8, t8, 2 | t8 <<= 2;
0x00403f40 addu t8, v0, t8 | t8 = v0 + t8;
0x00403f44 sw zero, (t8) | *(t8) = 0;
0x00403f48 lw t8, 0x34(fp) | t8 = *(arg_34h);
0x00403f4c addiu t8, t8, 1 | t8++;
0x00403f50 sw t8, 0x34(fp) | *(arg_34h) = t8;
| label_3:
0x00403f54 addiu v0, zero, 0x20 | v0 = 0x20;
0x00403f58 lw t8, 0x34(fp) | t8 = *(arg_34h);
0x00403f5c sltu t8, t8, v0 | t8 = (t8 < v0) ? 1 : 0;
0x00403f60 bnez t8, 0x403f34 |
| } while (t8 != 0);
0x00403f64 nop |
0x00403f68 lw v0, 0x38(fp) | v0 = *(arg_38h);
0x00403f6c addiu t8, zero, 0x20 | t8 = 0x20;
0x00403f70 divu zero, v0, t8 | __asm ("divu zero, v0, t8");
| if (t8 == 0) {
0x00403f74 bnez t8, 0x403f7c |
0x00403f78 break 7 | __asm ("break 7");
| }
0x00403f7c mfhi t8 | __asm ("mfhi t8");
0x00403f80 mflo v0 | __asm ("mflo v0");
0x00403f84 sll t8, v0, 2 | t8 = v0 << 2;
0x00403f88 addiu v1, fp, 0x130 | v1 = fp + 0x130;
0x00403f8c addu t8, v1, t8 | t8 = v1 + t8;
0x00403f90 lw v1, -0xdc(t8) | v1 = *((t8 - 55));
0x00403f94 lw a0, 0x38(fp) | a0 = *(arg_38h);
0x00403f98 addiu t8, zero, 0x20 | t8 = 0x20;
0x00403f9c divu zero, a0, t8 | __asm ("divu zero, a0, t8");
| if (t8 == 0) {
0x00403fa0 bnez t8, 0x403fa8 |
0x00403fa4 break 7 | __asm ("break 7");
| }
0x00403fa8 mfhi t8 | __asm ("mfhi t8");
0x00403fac addiu a0, zero, 1 | a0 = 1;
0x00403fb0 sllv t8, a0, t8 | t8 = a0 << t8;
0x00403fb4 or v1, v1, t8 | v1 |= t8;
0x00403fb8 sll t8, v0, 2 | t8 = v0 << 2;
0x00403fbc addiu t9, fp, 0x130 | t9 = fp + 0x130;
0x00403fc0 addu t8, t9, t8 | t8 = t9 + t8;
0x00403fc4 sw v1, -0xdc(t8) | *((t8 - 220)) = v1;
0x00403fc8 sw zero, 0x40(fp) | *(arg_40h) = 0;
0x00403fcc lui t8, 3 | t8 = 0x3d090;
0x00403fd0 ori t8, t8, 0xd090 |
0x00403fd4 sw t8, 0x44(fp) | *(arg_44h) = t8;
0x00403fd8 lw t8, 0x38(fp) | t8 = *(arg_38h);
0x00403fdc addiu v0, t8, 1 | v0 = t8 + 1;
0x00403fe0 addiu t8, fp, 0x54 | t8 = fp + 0x54;
0x00403fe4 addiu v1, fp, 0x40 | v1 = fp + 0x40;
0x00403fe8 sw v1, 0x10(sp) | *(var_10h) = v1;
0x00403fec move a0, v0 | a0 = v0;
0x00403ff0 move a1, t8 | a1 = t8;
0x00403ff4 move a2, zero | a2 = 0;
0x00403ff8 move a3, zero | a3 = 0;
0x00403ffc lw t8, -0x7e44(gp) | t8 = sym.imp.select;
0x00404000 move t9, t8 | t9 = t8;
0x00404004 jalr t9 | t9 ();
0x00404008 nop |
0x0040400c lw gp, 0x20(fp) | gp = *(arg_20h);
0x00404010 lw v0, 0x38(fp) | v0 = *(arg_38h);
0x00404014 addiu t8, zero, 0x20 | t8 = 0x20;
0x00404018 divu zero, v0, t8 | __asm ("divu zero, v0, t8");
| if (t8 == 0) {
0x0040401c bnez t8, 0x404024 |
0x00404020 break 7 | __asm ("break 7");
| }
0x00404024 mfhi t8 | __asm ("mfhi t8");
0x00404028 mflo t8 | __asm ("mflo t8");
0x0040402c sll t8, t8, 2 | t8 <<= 2;
0x00404030 addiu v0, fp, 0x130 | v0 = fp + 0x130;
0x00404034 addu t8, v0, t8 | t8 = v0 + t8;
0x00404038 lw v0, -0xdc(t8) | v0 = *((t8 - 55));
0x0040403c lw v1, 0x38(fp) | v1 = *(arg_38h);
0x00404040 addiu t8, zero, 0x20 | t8 = 0x20;
0x00404044 divu zero, v1, t8 | __asm ("divu zero, v1, t8");
| if (t8 == 0) {
0x00404048 bnez t8, 0x404050 |
0x0040404c break 7 | __asm ("break 7");
| }
0x00404050 mfhi t8 | __asm ("mfhi t8");
0x00404054 srav t8, v0, t8 | __asm ("srav t8, v0, t8");
0x00404058 andi t8, t8, 1 | t8 &= 1;
| if (t8 != 0) {
0x0040405c beqz t8, 0x404084 |
0x00404060 nop |
0x00404064 addiu t8, fp, 0xd4 | t8 = fp + 0xd4;
0x00404068 lw a0, 0x38(fp) | a0 = *(arg_38h);
0x0040406c move a1, t8 | a1 = t8;
0x00404070 lw t8, -0x7f88(gp) | t8 = sym.wext_handle_msg_int__unsigned_char_;
0x00404074 move t9, t8 | t9 = t8;
0x00404078 jalr t9 | t9 ();
0x0040407c nop |
0x00404080 lw gp, 0x20(fp) | gp = *(arg_20h);
| }
0x00404084 lw t8, -0x7fdc(gp) | t8 = *((gp - 8183));
0x00404088 lw v0, -0x2880(t8) | v0 = *((t8 - 2592));
0x0040408c addiu t8, zero, 1 | t8 = 1;
| if (v0 == t8) {
0x00404090 bne v0, t8, 0x404174 |
0x00404094 nop |
0x00404098 lw t8, -0x7fdc(gp) | t8 = *((gp - 8183));
0x0040409c lw t8, -0x287c(t8) | t8 = *((t8 - 2591));
| if (t8 == 0) {
0x004040a0 bnez t8, 0x404104 |
0x004040a4 nop |
0x004040a8 move a0, zero | a0 = 0;
0x004040ac lw t8, -0x7e68(gp) | t8 = sym.imp.time;
0x004040b0 move t9, t8 | t9 = t8;
0x004040b4 jalr t9 | t9 ();
0x004040b8 nop |
0x004040bc lw gp, 0x20(fp) | gp = *(arg_20h);
0x004040c0 lw t8, -0x7fdc(gp) | t8 = *((gp - 8183));
0x004040c4 lw t8, -0x2874(t8) | t8 = *((t8 - 2589));
0x004040c8 subu t8, v0, t8 | __asm ("subu t8, v0, t8");
0x004040cc slti t8, t8, 6 | t8 = (t8 < 6) ? 1 : 0;
| if (t8 != 0) {
0x004040d0 beqz t8, 0x4040f8 |
0x004040d4 nop |
0x004040d8 lw t8, -0x7fdc(gp) | t8 = *((gp - 8183));
0x004040dc lw v0, -0x2874(t8) | v0 = *((t8 - 2589));
0x004040e0 lw t8, -0x7fdc(gp) | t8 = *((gp - 8183));
0x004040e4 lw t8, -0x2878(t8) | t8 = *((t8 - 2590));
0x004040e8 subu t8, v0, t8 | __asm ("subu t8, v0, t8");
0x004040ec slti t8, t8, 5 | t8 = (t8 < 5) ? 1 : 0;
| if (t8 == 0) {
0x004040f0 beqz t8, 0x404104 | goto label_4;
| }
0x004040f4 nop |
| }
0x004040f8 addiu t8, zero, 1 | t8 = 1;
0x004040fc b 0x404108 | goto label_5;
0x00404100 nop |
| }
| label_4:
0x00404104 move t8, zero | t8 = 0;
| if (t8 == 0) {
| label_5:
0x00404108 beqz t8, 0x404410 | goto label_2;
| }
0x0040410c nop |
0x00404110 lw t8, -0x7fdc(gp) | t8 = *((gp - 8183));
0x00404114 sw zero, -0x2880(t8) | *((t8 - 10368)) = 0;
0x00404118 lw t8, -0x7fdc(gp) | t8 = *((gp - 8183));
0x0040411c lw t8, -0x2880(t8) | t8 = *((t8 - 2592));
0x00404120 sw t8, 0x10(sp) | *(var_10h) = t8;
0x00404124 lw a0, -0x7f9c(gp) | a0 = *(gp);
0x00404128 lw t8, -0x7fd4(gp) | t8 = *((gp - 8181));
| /* str._s__d__wext_link_status___d_n */
0x0040412c addiu a1, t8, -0x5230 | a1 = t8 + -0x5230;
0x00404130 lw t8, -0x7fd4(gp) | t8 = *((gp - 8181));
| /* esilref: 'wext_event_thread' */
0x00404134 addiu a2, t8, -0x4adc | a2 = t8 + -0x4adc;
0x00404138 addiu a3, zero, 0x204 | a3 = 0x204;
0x0040413c lw t8, -0x7e38(gp) | t8 = *(gp);
0x00404140 move t9, t8 | t9 = t8;
0x00404144 jalr t9 | t9 ();
0x00404148 nop |
0x0040414c lw gp, 0x20(fp) | gp = *(arg_20h);
0x00404150 lw t8, -0x7fd4(gp) | t8 = *((gp - 8181));
| /* str._tmp_wifiConnected */
0x00404154 addiu a0, t8, -0x5210 | a0 = t8 + -0x5210;
0x00404158 lw t8, -0x7e9c(gp) | t8 = sym.imp.unlink;
0x0040415c move t9, t8 | t9 = t8;
0x00404160 jalr t9 | t9 ();
0x00404164 nop |
0x00404168 lw gp, 0x20(fp) | gp = *(arg_20h);
0x0040416c b 0x404410 | goto label_2;
0x00404170 nop |
| }
0x00404174 lw t8, -0x7fdc(gp) | t8 = *((gp - 8183));
0x00404178 lw t8, -0x2884(t8) | t8 = *((t8 - 2593));
| if (t8 == 0) {
0x0040417c bnez t8, 0x4041d4 |
0x00404180 nop |
0x00404184 lw t8, -0x7fdc(gp) | t8 = *((gp - 8183));
0x00404188 lw v0, -0x287c(t8) | v0 = *((t8 - 2591));
0x0040418c addiu t8, zero, 1 | t8 = 1;
| if (v0 != t8) {
0x00404190 bne v0, t8, 0x4041d4 | goto label_6;
| }
0x00404194 nop |
0x00404198 move a0, zero | a0 = 0;
0x0040419c lw t8, -0x7e68(gp) | t8 = sym.imp.time;
0x004041a0 move t9, t8 | t9 = t8;
0x004041a4 jalr t9 | t9 ();
0x004041a8 nop |
0x004041ac lw gp, 0x20(fp) | gp = *(arg_20h);
0x004041b0 lw t8, -0x7fdc(gp) | t8 = *((gp - 8183));
0x004041b4 lw t8, -0x2878(t8) | t8 = *((t8 - 2590));
0x004041b8 subu t8, v0, t8 | __asm ("subu t8, v0, t8");
0x004041bc slti t8, t8, 0xc | t8 = (t8 < 0xc) ? 1 : 0;
| if (t8 != 0) {
0x004041c0 bnez t8, 0x4041d4 | goto label_6;
| }
0x004041c4 nop |
0x004041c8 addiu t8, zero, 1 | t8 = 1;
0x004041cc b 0x4041d8 | goto label_7;
0x004041d0 nop |
| }
| label_6:
0x004041d4 move t8, zero | t8 = 0;
| if (t8 != 0) {
| label_7:
0x004041d8 beqz t8, 0x404210 |
0x004041dc nop |
0x004041e0 lw t8, -0x7fdc(gp) | t8 = *((gp - 8183));
0x004041e4 addiu v0, zero, 1 | v0 = 1;
0x004041e8 sw v0, -0x2884(t8) | *((t8 - 10372)) = v0;
0x004041ec lw t8, -0x7fd4(gp) | t8 = *((gp - 8181));
| /* str._tmp_wifiErrorCode */
0x004041f0 addiu a0, t8, -0x51fc | a0 = t8 + -0x51fc;
0x004041f4 lw t8, -0x7fd4(gp) | t8 = *((gp - 8181));
0x004041f8 addiu a1, t8, -0x51e8 | a1 = t8 + -0x51e8;
0x004041fc lw t8, -0x7f84(gp) | t8 = sym.echo_data_char_const__char_const_;
0x00404200 move t9, t8 | t9 = t8;
0x00404204 jalr t9 | t9 ();
0x00404208 nop |
0x0040420c lw gp, 0x20(fp) | gp = *(arg_20h);
| }
0x00404210 lw t8, -0x7fdc(gp) | t8 = *((gp - 8183));
0x00404214 lw v0, -0x2884(t8) | v0 = *((t8 - 2593));
0x00404218 addiu t8, zero, 1 | t8 = 1;
| if (v0 != t8) {
0x0040421c beq v0, t8, 0x404238 |
0x00404220 nop |
0x00404224 lw t8, -0x7fdc(gp) | t8 = *((gp - 8183));
0x00404228 lw v0, -0x2884(t8) | v0 = *((t8 - 2593));
0x0040422c addiu t8, zero, 2 | t8 = 2;
| if (v0 != t8) {
0x00404230 bne v0, t8, 0x4042a4 | goto label_8;
| }
0x00404234 nop |
| }
0x00404238 lw t8, -0x7fdc(gp) | t8 = *((gp - 8183));
0x0040423c lw t8, -0x287c(t8) | t8 = *((t8 - 2591));
| if (t8 == 0) {
0x00404240 bnez t8, 0x4042a4 |
0x00404244 nop |
0x00404248 move a0, zero | a0 = 0;
0x0040424c lw t8, -0x7e68(gp) | t8 = sym.imp.time;
0x00404250 move t9, t8 | t9 = t8;
0x00404254 jalr t9 | t9 ();
0x00404258 nop |
0x0040425c lw gp, 0x20(fp) | gp = *(arg_20h);
0x00404260 lw t8, -0x7fdc(gp) | t8 = *((gp - 8183));
0x00404264 lw t8, -0x2874(t8) | t8 = *((t8 - 2589));
0x00404268 subu t8, v0, t8 | __asm ("subu t8, v0, t8");
0x0040426c slti t8, t8, 6 | t8 = (t8 < 6) ? 1 : 0;
| if (t8 != 0) {
0x00404270 beqz t8, 0x404298 |
0x00404274 nop |
0x00404278 lw t8, -0x7fdc(gp) | t8 = *((gp - 8183));
0x0040427c lw v0, -0x2874(t8) | v0 = *((t8 - 2589));
0x00404280 lw t8, -0x7fdc(gp) | t8 = *((gp - 8183));
0x00404284 lw t8, -0x2878(t8) | t8 = *((t8 - 2590));
0x00404288 subu t8, v0, t8 | __asm ("subu t8, v0, t8");
0x0040428c slti t8, t8, 5 | t8 = (t8 < 5) ? 1 : 0;
| if (t8 == 0) {
0x00404290 beqz t8, 0x4042a4 | goto label_8;
| }
0x00404294 nop |
| }
0x00404298 addiu t8, zero, 1 | t8 = 1;
0x0040429c b 0x4042a8 | goto label_9;
0x004042a0 nop |
| }
| label_8:
0x004042a4 move t8, zero | t8 = 0;
| if (t8 != 0) {
| label_9:
0x004042a8 beqz t8, 0x4042dc |
0x004042ac nop |
0x004042b0 lw t8, -0x7fdc(gp) | t8 = *((gp - 8183));
0x004042b4 sw zero, -0x2884(t8) | *((t8 - 10372)) = 0;
0x004042b8 lw t8, -0x7fd4(gp) | t8 = *((gp - 8181));
| /* str._tmp_wifiErrorCode */
0x004042bc addiu a0, t8, -0x51fc | a0 = t8 + -0x51fc;
0x004042c0 lw t8, -0x7fd4(gp) | t8 = *((gp - 8181));
0x004042c4 addiu a1, t8, -0x51e4 | a1 = t8 + -0x51e4;
0x004042c8 lw t8, -0x7f84(gp) | t8 = sym.echo_data_char_const__char_const_;
0x004042cc move t9, t8 | t9 = t8;
0x004042d0 jalr t9 | t9 ();
0x004042d4 nop |
0x004042d8 lw gp, 0x20(fp) | gp = *(arg_20h);
| }
0x004042dc lw t8, -0x7fb4(gp) | t8 = *(gp);
0x004042e0 lw t8, (t8) | t8 = *(t8);
| if (t8 == 0) {
0x004042e4 bnez t8, 0x40433c |
0x004042e8 nop |
0x004042ec lw t8, -0x7fdc(gp) | t8 = *((gp - 8183));
0x004042f0 lw v0, -0x287c(t8) | v0 = *((t8 - 2591));
0x004042f4 addiu t8, zero, 1 | t8 = 1;
| if (v0 != t8) {
0x004042f8 bne v0, t8, 0x40433c | goto label_10;
| }
0x004042fc nop |
0x00404300 move a0, zero | a0 = 0;
0x00404304 lw t8, -0x7e68(gp) | t8 = sym.imp.time;
0x00404308 move t9, t8 | t9 = t8;
0x0040430c jalr t9 | t9 ();
0x00404310 nop |
0x00404314 lw gp, 0x20(fp) | gp = *(arg_20h);
0x00404318 lw t8, -0x7fdc(gp) | t8 = *((gp - 8183));
0x0040431c lw t8, -0x2878(t8) | t8 = *((t8 - 2590));
0x00404320 subu t8, v0, t8 | __asm ("subu t8, v0, t8");
0x00404324 slti t8, t8, 0xc | t8 = (t8 < 0xc) ? 1 : 0;
| if (t8 != 0) {
0x00404328 bnez t8, 0x40433c | goto label_10;
| }
0x0040432c nop |
0x00404330 addiu t8, zero, 1 | t8 = 1;
0x00404334 b 0x404340 | goto label_11;
0x00404338 nop |
| }
| label_10:
0x0040433c move t8, zero | t8 = 0;
| if (t8 != 0) {
| label_11:
0x00404340 beqz t8, 0x404410 |
0x00404344 nop |
0x00404348 lw t8, -0x7fdc(gp) | t8 = *((gp - 8183));
0x0040434c addiu v0, zero, 1 | v0 = 1;
0x00404350 sw v0, -0x2880(t8) | *((t8 - 10368)) = v0;
0x00404354 lw t8, -0x7fdc(gp) | t8 = *((gp - 8183));
0x00404358 lw t8, -0x2880(t8) | t8 = *((t8 - 2592));
0x0040435c sw t8, 0x10(sp) | *(var_10h) = t8;
0x00404360 lw a0, -0x7f9c(gp) | a0 = *(gp);
0x00404364 lw t8, -0x7fd4(gp) | t8 = *((gp - 8181));
| /* str._s__d__wext_link_status___d_n */
0x00404368 addiu a1, t8, -0x5230 | a1 = t8 + -0x5230;
0x0040436c lw t8, -0x7fd4(gp) | t8 = *((gp - 8181));
| /* esilref: 'wext_event_thread' */
0x00404370 addiu a2, t8, -0x4adc | a2 = t8 + -0x4adc;
0x00404374 addiu a3, zero, 0x214 | a3 = 0x214;
0x00404378 lw t8, -0x7e38(gp) | t8 = *(gp);
0x0040437c move t9, t8 | t9 = t8;
0x00404380 jalr t9 | t9 ();
0x00404384 nop |
0x00404388 lw gp, 0x20(fp) | gp = *(arg_20h);
0x0040438c lw t8, -0x7fd4(gp) | t8 = *((gp - 8181));
| /* str._tmp_wifiConnected */
0x00404390 addiu a0, t8, -0x5210 | a0 = t8 + -0x5210;
0x00404394 lw t8, -0x7eec(gp) | t8 = sym.imp.touch_char_const_;
0x00404398 move t9, t8 | t9 = t8;
0x0040439c jalr t9 | t9 ();
0x004043a0 nop |
0x004043a4 lw gp, 0x20(fp) | gp = *(arg_20h);
0x004043a8 lw t8, -0x7fd4(gp) | t8 = *((gp - 8181));
| /* esilref: '/tmp/wifiLinkStatus' */
0x004043ac addiu a0, t8, -0x51e0 | a0 = t8 + -0x51e0;
0x004043b0 lw t8, -0x7fd4(gp) | t8 = *((gp - 8181));
0x004043b4 addiu a1, t8, -0x51e8 | a1 = t8 + -0x51e8;
0x004043b8 lw t8, -0x7f84(gp) | t8 = sym.echo_data_char_const__char_const_;
0x004043bc move t9, t8 | t9 = t8;
0x004043c0 jalr t9 | t9 ();
0x004043c4 nop |
0x004043c8 lw gp, 0x20(fp) | gp = *(arg_20h);
0x004043cc lw t8, -0x7fd4(gp) | t8 = *((gp - 8181));
| /* str._tmp_wifiConnected */
0x004043d0 addiu a0, t8, -0x5210 | a0 = t8 + -0x5210;
0x004043d4 lw t8, -0x7eec(gp) | t8 = sym.imp.touch_char_const_;
0x004043d8 move t9, t8 | t9 = t8;
0x004043dc jalr t9 | t9 ();
0x004043e0 nop |
0x004043e4 lw gp, 0x20(fp) | gp = *(arg_20h);
0x004043e8 addiu t8, fp, 0xdc | t8 = fp + 0xdc;
0x004043ec move a0, t8 | a0 = t8;
0x004043f0 addiu a1, zero, 0x27c | a1 = 0x27c;
0x004043f4 move a2, zero | a2 = 0;
0x004043f8 move a3, zero | a3 = 0;
0x004043fc lw t8, -0x7f80(gp) | t8 = sym.sendCmd_char_const__unsigned_int__unsigned_int__unsigned_int_;
0x00404400 move t9, t8 | t9 = t8;
0x00404404 jalr t9 | t9 ();
0x00404408 nop |
0x0040440c lw gp, 0x20(fp) | gp = *(arg_20h);
| }
| label_2:
0x00404410 lw t8, -0x7fc8(gp) | t8 = *(gp);
0x00404414 lw t8, (t8) | t8 = *(t8);
| if (t8 != 0) {
0x00404418 bnez t8, 0x403f20 | goto label_0;
| }
0x0040441c nop |
0x00404420 lw t8, 0x38(fp) | t8 = *(arg_38h);
| if (t8 >= 0) {
0x00404424 bltz t8, 0x404444 |
0x00404428 nop |
0x0040442c lw a0, 0x38(fp) | a0 = *(arg_38h);
0x00404430 lw t8, -0x7e88(gp) | t8 = sym.imp.close;
0x00404434 move t9, t8 | t9 = t8;
0x00404438 jalr t9 | t9 ();
0x0040443c nop |
0x00404440 lw gp, 0x20(fp) | gp = *(arg_20h);
| }
| label_1:
0x00404444 lw t8, -0x7e6c(gp) | t8 = *((gp - 8091));
0x00404448 lw t8, (t8) | t8 = *(t8);
0x0040444c move a0, t8 | a0 = t8;
0x00404450 lw t8, -0x7fd4(gp) | t8 = *((gp - 8181));
| /* str._s_done._n */
0x00404454 addiu a1, t8, -0x51cc | a1 = t8 + -0x51cc;
0x00404458 lw t8, -0x7fd4(gp) | t8 = *((gp - 8181));
| /* str.wext_event_thread */
0x0040445c addiu a2, t8, -0x4ac8 | a2 = t8 + -0x4ac8;
0x00404460 lw t8, -0x7eb8(gp) | t8 = sym.imp.fprintf
0x00404464 move t9, t8 | t9 = t8;
0x00404468 jalr t9 | t9 ();
0x0040446c nop |
0x00404470 lw gp, 0x20(fp) | gp = *(arg_20h);
0x00404474 move a0, zero | a0 = 0;
0x00404478 lw t8, -0x7ecc(gp) | t8 = sym.imp.pthread_exit;
0x0040447c move t9, t8 | t9 = t8;
0x00404480 jalr t9 | t9 ();
0x00404484 nop |
| }
[*] Function fprintf used 4 times wifiAutoReconnect