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