[*] Binary protection state of iwlist
No RELRO No Canary found NX disabled No PIE No RPATH No RUNPATH Symbols
[*] Function strcpy tear down of iwlist
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/bin/iwlist @ 0x4073b4 */
| #include <stdint.h>
|
; (fcn) sym.iw_in_inet () | void iw_in_inet () {
0x004073b4 lui gp, 2 |
0x004073b8 addiu gp, gp, -0x4654 |
0x004073bc addu gp, gp, t9 | gp += t9;
0x004073c0 addiu sp, sp, -0x28 |
0x004073c4 addiu v0, zero, 2 | v0 = 2;
0x004073c8 sw gp, 0x10(sp) | *(var_10h) = gp;
0x004073cc sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x004073d0 sw s0, 0x18(sp) | *(var_18h) = s0;
0x004073d4 sw ra, 0x24(sp) | *(var_24h) = ra;
0x004073d8 sw s2, 0x20(sp) | *(var_20h) = s2;
0x004073dc move s0, a1 | s0 = a1;
0x004073e0 sh v0, (a1) | *(a1) = v0;
0x004073e4 sh zero, 2(a1) | *((a1 + 1)) = 0;
0x004073e8 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x004073ec lw t9, -0x7f6c(gp) | t9 = *(gp);
0x004073f0 move s1, a0 | s1 = a0;
| /* str.default */
0x004073f4 addiu a1, a1, -0x5e34 | a1 += -0x5e34;
0x004073f8 jalr t9 | t9 ();
0x004073fc lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00407400 bnez v0, 0x40740c |
0x00407404 sw zero, 4(s0) | *((s0 + 1)) = 0;
0x00407408 b 0x40745c |
| } else {
0x0040740c lw t9, -0x7f3c(gp) | t9 = sym.imp.getnetbyname;
0x00407410 move a0, s1 | a0 = s1;
0x00407414 jalr t9 | t9 ();
0x00407418 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0040741c beqz v0, 0x407464 | goto label_0;
| }
0x00407420 lw v1, 0xc(v0) | v1 = *((v0 + 3));
0x00407424 lw t9, -0x7ee8(gp) | t9 = sym._MIPS_STUBS_;
0x00407428 sll a1, v1, 0x18 | a1 = v1 << 0x18;
0x0040742c srl a0, v1, 0x18 | a0 = v1 >> 0x18;
0x00407430 or a0, a1, a0 | a0 = a1 | a0;
0x00407434 srl a1, v1, 8 | a1 = v1 >> 8;
0x00407438 andi a1, a1, 0xff00 | a1 &= 0xff00;
0x0040743c andi v1, v1, 0xff00 | v1 &= 0xff00;
0x00407440 or a0, a0, a1 | a0 |= a1;
0x00407444 sll v1, v1, 8 | v1 <<= 8;
0x00407448 lw a1, (v0) | a1 = *(v0);
0x0040744c or v1, a0, v1 | v1 = a0 | v1;
0x00407450 sw v1, 4(s0) | *((s0 + 1)) = v1;
0x00407454 move a0, s1 | a0 = s1;
0x00407458 jalr t9 | t9 ();
| }
0x0040745c addiu v0, zero, 1 | v0 = 1;
0x00407460 b 0x4074d8 | goto label_1;
| label_0:
0x00407464 lw t9, -0x7f30(gp) | t9 = sym.imp.gethostbyname;
0x00407468 move a0, s1 | a0 = s1;
0x0040746c jalr t9 | t9 ();
0x00407470 move s2, v0 | s2 = v0;
0x00407474 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00407478 bnez v0, 0x4074a8 |
0x0040747c lw t9, -0x7fc4(gp) | t9 = *(gp);
0x00407480 jalr t9 | t9 ();
0x00407484 nop |
0x00407488 lw gp, 0x10(sp) | gp = *(var_10h);
0x0040748c lw t9, -0x7f2c(gp) | t9 = sym.imp.__h_errno_location;
0x00407490 move s0, v0 | s0 = v0;
0x00407494 jalr t9 | t9 ();
0x00407498 lw v0, (v0) | v0 = *(v0);
0x0040749c sw v0, (s0) | *(s0) = v0;
0x004074a0 addiu v0, zero, -1 | v0 = -1;
0x004074a4 b 0x4074d8 |
| } else {
0x004074a8 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x004074ac lw t9, -0x7fc8(gp) | t9 = *(gp);
0x004074b0 lw a2, 0xc(s2) | a2 = *((s2 + 3));
0x004074b4 lw a1, (v0) | a1 = *(v0);
0x004074b8 addiu a0, s0, 4 | a0 = s0 + 4;
0x004074bc jalr t9 | t9 ();
0x004074c0 lw gp, 0x10(sp) | gp = *(var_10h);
0x004074c4 lw a1, (s2) | a1 = *(s2);
0x004074c8 lw t9, -0x7ee8(gp) | t9 = sym._MIPS_STUBS_;
0x004074cc move a0, s1 | a0 = s1;
0x004074d0 jalr t9 | t9 ();
0x004074d4 move v0, zero | v0 = 0;
| }
| label_1:
0x004074d8 lw ra, 0x24(sp) | ra = *(var_24h);
0x004074dc lw s2, 0x20(sp) | s2 = *(var_20h);
0x004074e0 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x004074e4 lw s0, 0x18(sp) | s0 = *(var_18h);
0x004074e8 addiu sp, sp, 0x28 |
0x004074ec jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/bin/iwlist @ 0x406330 */
| #include <stdint.h>
|
; (fcn) sym.iw_print_key () | void iw_print_key () {
0x00406330 lui gp, 2 |
0x00406334 addiu gp, gp, -0x35d0 |
0x00406338 addu gp, gp, t9 | gp += t9;
0x0040633c addiu v1, zero, 3 | v1 = 3;
0x00406340 mul v1, a3, v1 | __asm ("mul v1, a3, v1");
0x00406344 addiu sp, sp, -0x38 |
0x00406348 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0040634c sw ra, 0x34(sp) | *(var_34h) = ra;
0x00406350 sw s6, 0x30(sp) | *(var_30h) = s6;
0x00406354 sw s5, 0x2c(sp) | *(var_2ch) = s5;
0x00406358 sw s4, 0x28(sp) | *(var_28h) = s4;
0x0040635c sw s3, 0x24(sp) | *(var_24h) = s3;
0x00406360 sw s2, 0x20(sp) | *(var_20h) = s2;
0x00406364 sw s1, 0x1c(sp) | *(var_1ch) = s1;
0x00406368 sw s0, 0x18(sp) | *(var_18h) = s0;
0x0040636c slt v1, a1, v1 | v1 = (a1 < v1) ? 1 : 0;
0x00406370 lw v0, 0x48(sp) | v0 = *(arg_48h);
| if (v1 != 0) {
0x00406374 beqz v1, 0x4063ac |
0x00406378 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x0040637c lw ra, 0x34(sp) | ra = *(var_34h);
0x00406380 lw s6, 0x30(sp) | s6 = *(var_30h);
0x00406384 lw s5, 0x2c(sp) | s5 = *(var_2ch);
0x00406388 lw s4, 0x28(sp) | s4 = *(var_28h);
0x0040638c lw s3, 0x24(sp) | s3 = *(var_24h);
0x00406390 lw s2, 0x20(sp) | s2 = *(var_20h);
0x00406394 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x00406398 lw s0, 0x18(sp) | s0 = *(var_18h);
0x0040639c lw t9, -0x7eec(gp) | t9 = sym.imp.snprintf;
| /* str._too_big_ */
0x004063a0 addiu a2, a2, -0x6064 | a2 += -0x6064;
0x004063a4 addiu sp, sp, 0x38 |
0x004063a8 jr t9 | t9 ();
| }
0x004063ac andi v0, v0, 0x800 | v0 &= 0x800;
0x004063b0 move s0, a0 | s0 = a0;
0x004063b4 move s2, a3 | s2 = a3;
| if (v0 == 0) {
0x004063b8 beqz v0, 0x406468 | goto label_0;
| }
0x004063bc lw t9, -0x7ee8(gp) | t9 = sym._MIPS_STUBS_;
| if (a3 <= 0) {
0x004063c0 bgtz a3, 0x4063f4 |
0x004063c4 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x004063c8 lw ra, 0x34(sp) | ra = *(var_34h);
0x004063cc lw s6, 0x30(sp) | s6 = *(var_30h);
0x004063d0 lw s5, 0x2c(sp) | s5 = *(var_2ch);
0x004063d4 lw s4, 0x28(sp) | s4 = *(var_28h);
0x004063d8 lw s3, 0x24(sp) | s3 = *(var_24h);
0x004063dc lw s2, 0x20(sp) | s2 = *(var_20h);
0x004063e0 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x004063e4 lw s0, 0x18(sp) | s0 = *(var_18h);
| /* esilref: 'on' */
0x004063e8 addiu a1, a1, -0x6c44 | a1 += -0x6c44;
0x004063ec addiu sp, sp, 0x38 |
0x004063f0 jr t9 | t9 ();
| }
0x004063f4 lw s3, -0x7fd8(gp) | s3 = *((gp - 8182));
0x004063f8 addiu s0, s0, 2 | s0 += 2;
0x004063fc addiu s1, zero, 1 | s1 = 1;
| /* esilref: '**' */
0x00406400 addiu a1, s3, -0x6058 | a1 = s3 + -0x6058;
0x00406404 jalr t9 | t9 ();
0x00406408 lw gp, 0x10(sp) | gp = *(var_10h);
| /* esilref: '**' */
0x0040640c addiu s3, s3, -0x6058 | s3 += -0x6058;
0x00406410 lw s4, -0x7fd8(gp) | s4 = *((gp - 8182));
0x00406414 addiu s4, s4, -0x6054 | s4 += -0x6054;
0x00406418 b 0x406458 |
| while (s1 != s2) {
0x0040641c lw t9, -0x7ee8(gp) | t9 = sym._MIPS_STUBS_;
| if (v0 == 0) {
0x00406420 bnez v0, 0x406440 |
0x00406424 move a0, s0 | a0 = s0;
0x00406428 move a1, s4 | a1 = s4;
0x0040642c jalr t9 | t9 ();
0x00406430 lw gp, 0x10(sp) | gp = *(var_10h);
0x00406434 addiu s5, s0, 1 | s5 = s0 + 1;
0x00406438 move s0, s5 | s0 = s5;
0x0040643c lw t9, -0x7ee8(gp) | t9 = sym._MIPS_STUBS_;
| }
0x00406440 move a0, s0 | a0 = s0;
0x00406444 move a1, s3 | a1 = s3;
0x00406448 jalr t9 | t9 ();
0x0040644c lw gp, 0x10(sp) | gp = *(var_10h);
0x00406450 addiu s0, s0, 2 | s0 += 2;
0x00406454 addiu s1, s1, 1 | s1++;
0x00406458 andi v0, s1, 1 | v0 = s1 & 1;
0x0040645c bne s1, s2, 0x40641c |
| }
0x00406460 lw ra, 0x34(sp) | ra = *(var_34h);
0x00406464 b 0x4064f4 | goto label_1;
| label_0:
0x00406468 lw s4, -0x7fd8(gp) | s4 = *((gp - 8182));
0x0040646c lw t9, -0x7f34(gp) | t9 = sym.imp.sprintf;
0x00406470 move s3, a2 | s3 = a2;
0x00406474 lbu a2, (a2) | a2 = *(a2);
| /* str._.2X */
0x00406478 addiu a1, s4, -0x6050 | a1 = s4 + -0x6050;
0x0040647c addiu s0, s0, 2 | s0 += 2;
0x00406480 jalr t9 | t9 ();
0x00406484 lw gp, 0x10(sp) | gp = *(var_10h);
0x00406488 addiu s1, zero, 1 | s1 = 1;
| /* str._.2X */
0x0040648c addiu s4, s4, -0x6050 | s4 += -0x6050;
0x00406490 lw s5, -0x7fd8(gp) | s5 = *((gp - 8182));
0x00406494 addiu s5, s5, -0x6054 | s5 += -0x6054;
0x00406498 b 0x4064e4 |
| while (v0 != 0) {
0x0040649c addu v0, s3, s1 | v0 = s3 + s1;
| if (v0 == 0) {
0x004064a0 bnez v0, 0x4064c4 |
0x004064a4 lw t9, -0x7ee8(gp) | t9 = sym._MIPS_STUBS_;
0x004064a8 move a0, s0 | a0 = s0;
0x004064ac move a1, s5 | a1 = s5;
0x004064b0 jalr t9 | t9 ();
0x004064b4 lw gp, 0x10(sp) | gp = *(var_10h);
0x004064b8 addiu s6, s0, 1 | s6 = s0 + 1;
0x004064bc move s0, s6 | s0 = s6;
0x004064c0 addu v0, s3, s1 | v0 = s3 + s1;
| }
0x004064c4 lw t9, -0x7f34(gp) | t9 = sym.imp.sprintf;
0x004064c8 lbu a2, (v0) | a2 = *(v0);
0x004064cc move a0, s0 | a0 = s0;
0x004064d0 move a1, s4 | a1 = s4;
0x004064d4 jalr t9 | t9 ();
0x004064d8 lw gp, 0x10(sp) | gp = *(var_10h);
0x004064dc addiu s0, s0, 2 | s0 += 2;
0x004064e0 addiu s1, s1, 1 | s1++;
0x004064e4 slt v0, s1, s2 | v0 = (s1 < s2) ? 1 : 0;
0x004064e8 andi v0, s1, 1 | v0 = s1 & 1;
0x004064ec bnez v0, 0x40649c |
| }
0x004064f0 lw ra, 0x34(sp) | ra = *(var_34h);
| label_1:
0x004064f4 lw s6, 0x30(sp) | s6 = *(var_30h);
0x004064f8 lw s5, 0x2c(sp) | s5 = *(var_2ch);
0x004064fc lw s4, 0x28(sp) | s4 = *(var_28h);
0x00406500 lw s3, 0x24(sp) | s3 = *(var_24h);
0x00406504 lw s2, 0x20(sp) | s2 = *(var_20h);
0x00406508 lw s1, 0x1c(sp) | s1 = *(var_1ch);
0x0040650c lw s0, 0x18(sp) | s0 = *(var_18h);
0x00406510 addiu sp, sp, 0x38 |
0x00406514 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/bin/iwlist @ 0x4068d4 */
| #include <stdint.h>
|
; (fcn) sym.iw_print_pm_value () | void iw_print_pm_value () {
0x004068d4 lui gp, 2 |
0x004068d8 addiu gp, gp, -0x3b74 |
0x004068dc addu gp, gp, t9 | gp += t9;
0x004068e0 addiu sp, sp, -0x38 |
0x004068e4 slti v0, a1, 0x19 | v0 = (a1 < 0x19) ? 1 : 0;
0x004068e8 sw gp, 0x18(sp) | *(var_18h) = gp;
0x004068ec sw s4, 0x30(sp) | *(var_30h) = s4;
0x004068f0 sw ra, 0x34(sp) | *(var_34h) = ra;
0x004068f4 sw s3, 0x2c(sp) | *(var_2ch) = s3;
0x004068f8 sw s2, 0x28(sp) | *(var_28h) = s2;
0x004068fc sw s1, 0x24(sp) | *(var_24h) = s1;
0x00406900 sw s0, 0x20(sp) | *(var_20h) = s0;
0x00406904 lw s4, 0x48(sp) | s4 = *(arg_48h);
| if (v0 != 0) {
0x00406908 beqz v0, 0x406938 |
0x0040690c lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x00406910 lw ra, 0x34(sp) | ra = *(var_34h);
0x00406914 lw s4, 0x30(sp) | s4 = *(var_30h);
0x00406918 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x0040691c lw s2, 0x28(sp) | s2 = *(var_28h);
0x00406920 lw s1, 0x24(sp) | s1 = *(var_24h);
0x00406924 lw s0, 0x20(sp) | s0 = *(var_20h);
0x00406928 lw t9, -0x7eec(gp) | t9 = sym.imp.snprintf;
| /* str._too_big_ */
0x0040692c addiu a2, a2, -0x6064 | a2 += -0x6064;
0x00406930 addiu sp, sp, 0x38 |
0x00406934 jr t9 | t9 ();
| }
0x00406938 andi v0, a3, 1 | v0 = a3 & 1;
0x0040693c move s1, a0 | s1 = a0;
0x00406940 move s2, a2 | s2 = a2;
0x00406944 move s3, a3 | s3 = a3;
0x00406948 addiu s0, a1, -0x19 | s0 = a1 + -0x19;
| if (v0 != 0) {
0x0040694c beqz v0, 0x406968 |
0x00406950 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00406954 lw t9, -0x7ee8(gp) | t9 = sym._MIPS_STUBS_;
0x00406958 addiu s1, s1, 4 | s1 += 4;
| /* str._min */
0x0040695c addiu a1, a1, -0x5fd4 | a1 += -0x5fd4;
0x00406960 jalr t9 | t9 ();
0x00406964 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00406968 andi v0, s3, 2 | v0 = s3 & 2;
0x0040696c andi v0, s3, 0x2000 | v0 = s3 & 0x2000;
| if (v0 != 0) {
0x00406970 beqz v0, 0x406994 |
0x00406974 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00406978 lw t9, -0x7ee8(gp) | t9 = sym._MIPS_STUBS_;
0x0040697c move a0, s1 | a0 = s1;
| /* str._max */
0x00406980 addiu a1, a1, -0x5fcc | a1 += -0x5fcc;
0x00406984 jalr t9 | t9 ();
0x00406988 lw gp, 0x18(sp) | gp = *(var_18h);
0x0040698c addiu s1, s1, 4 | s1 += 4;
0x00406990 andi v0, s3, 0x2000 | v0 = s3 & 0x2000;
| }
0x00406994 lw t9, -0x7ee8(gp) | t9 = sym._MIPS_STUBS_;
| if (v0 != 0) {
0x00406998 beqz v0, 0x4069b8 |
0x0040699c lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x004069a0 move a0, s1 | a0 = s1;
| /* str._timeout: */
0x004069a4 addiu a1, a1, -0x5fc4 | a1 += -0x5fc4;
0x004069a8 jalr t9 | t9 ();
0x004069ac lw gp, 0x18(sp) | gp = *(var_18h);
0x004069b0 addiu a0, s1, 9 | a0 = s1 + 9;
0x004069b4 b 0x4069e8 |
| } else {
0x004069b8 andi v0, s3, 0x4000 | v0 = s3 & 0x4000;
0x004069bc move a0, s1 | a0 = s1;
| if (v0 != 0) {
0x004069c0 beqz v0, 0x4069d0 |
0x004069c4 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
| /* str._saving: */
0x004069c8 addiu a1, a1, -0x5fb8 | a1 += -0x5fb8;
0x004069cc b 0x4069d8 |
| } else {
0x004069d0 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
| /* str._period: */
0x004069d4 addiu a1, a1, -0x5fac | a1 += -0x5fac;
| }
0x004069d8 jalr t9 | t9 ();
0x004069dc nop |
0x004069e0 lw gp, 0x18(sp) | gp = *(var_18h);
0x004069e4 addiu a0, s1, 8 | a0 = s1 + 8;
| }
0x004069e8 andi s3, s3, 4 | s3 &= 4;
0x004069ec lui v0, 0xf | v0 = 0xf0000;
| if (s3 != 0) {
0x004069f0 beqz s3, 0x406a28 |
0x004069f4 slti s4, s4, 0x15 | s4 = (s4 < 0x15) ? 1 : 0;
0x004069f8 lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
| if (s4 != 0) {
0x004069fc beqz s4, 0x406a18 |
0x00406a00 mtc1 s2, f2 | __asm ("mtc1 s2, f2");
0x00406a04 cvt.d.w f0, f2 | __asm ("cvt.d.w f0, f2");
0x00406a08 ldc1 f2, -0x5648(v0) | __asm ("ldc1 f2, -0x5648(v0)");
0x00406a0c div.d f0, f0, f2 | __asm ("div.d f0, f0, f2");
0x00406a10 trunc.w.d f2, f0 | __asm ("trunc.w.d f2, f0");
0x00406a14 mfc1 s2, f2 | __asm ("mfc1 s2, f2");
| }
0x00406a18 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x00406a1c move a1, s0 | a1 = s0;
| /* esilref: '&d' */
0x00406a20 addiu a2, a2, -0x6094 | a2 += -0x6094;
0x00406a24 b 0x406aa8 |
| } else {
0x00406a28 addiu v0, v0, 0x4240 | v0 += 0x4240;
0x00406a2c slt v0, s2, v0 | v0 = (s2 < v0) ? 1 : 0;
0x00406a30 slti v0, s2, 0x3e8 | v0 = (s2 < 0x3e8) ? 1 : 0;
| if (v0 == 0) {
0x00406a34 bnez v0, 0x406a60 |
0x00406a38 lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x00406a3c mtc1 s2, f2 | __asm ("mtc1 s2, f2");
0x00406a40 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x00406a44 cvt.d.w f0, f2 | __asm ("cvt.d.w f0, f2");
0x00406a48 ldc1 f2, -0x5648(v0) | __asm ("ldc1 f2, -0x5648(v0)");
0x00406a4c move a1, s0 | a1 = s0;
| /* esilref: '&gs' */
0x00406a50 addiu a2, a2, -0x5fa0 | a2 += -0x5fa0;
0x00406a54 div.d f0, f0, f2 | __asm ("div.d f0, f0, f2");
0x00406a58 sdc1 f0, 0x10(sp) | __asm ("sdc1 f0, 0x10(sp)");
0x00406a5c b 0x406a8c |
| } else {
0x00406a60 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
| if (v0 != 0) {
0x00406a64 bnez v0, 0x406aa0 | goto label_0;
| }
0x00406a68 lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x00406a6c mtc1 s2, f2 | __asm ("mtc1 s2, f2");
0x00406a70 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x00406a74 cvt.d.w f0, f2 | __asm ("cvt.d.w f0, f2");
0x00406a78 ldc1 f2, -0x5658(v0) | __asm ("ldc1 f2, -0x5658(v0)");
0x00406a7c move a1, s0 | a1 = s0;
| /* str._gms */
0x00406a80 addiu a2, a2, -0x5f9c | a2 += -0x5f9c;
0x00406a84 div.d f0, f0, f2 | __asm ("div.d f0, f0, f2");
0x00406a88 sdc1 f0, 0x10(sp) | __asm ("sdc1 f0, 0x10(sp)");
| }
0x00406a8c lw t9, -0x7eec(gp) | t9 = sym.imp.snprintf;
0x00406a90 jalr t9 | t9 ();
0x00406a94 nop |
0x00406a98 lw ra, 0x34(sp) | ra = *(var_34h);
0x00406a9c b 0x406ad0 | goto label_1;
| label_0:
0x00406aa0 move a1, s0 | a1 = s0;
| /* str._dus */
0x00406aa4 addiu a2, a2, -0x5f94 | a2 += -0x5f94;
| }
0x00406aa8 lw ra, 0x34(sp) | ra = *(var_34h);
0x00406aac lw s4, 0x30(sp) | s4 = *(var_30h);
0x00406ab0 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x00406ab4 lw s1, 0x24(sp) | s1 = *(var_24h);
0x00406ab8 lw s0, 0x20(sp) | s0 = *(var_20h);
0x00406abc move a3, s2 | a3 = s2;
0x00406ac0 lw t9, -0x7eec(gp) | t9 = sym.imp.snprintf;
0x00406ac4 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00406ac8 addiu sp, sp, 0x38 |
0x00406acc jr t9 | t9 ();
| label_1:
0x00406ad0 lw s4, 0x30(sp) | s4 = *(var_30h);
0x00406ad4 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x00406ad8 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00406adc lw s1, 0x24(sp) | s1 = *(var_24h);
0x00406ae0 lw s0, 0x20(sp) | s0 = *(var_20h);
0x00406ae4 addiu sp, sp, 0x38 |
0x00406ae8 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/bin/iwlist @ 0x406bb0 */
| #include <stdint.h>
|
; (fcn) sym.iw_print_retry_value () | void iw_print_retry_value () {
0x00406bb0 lui gp, 2 |
0x00406bb4 addiu gp, gp, -0x3e50 |
0x00406bb8 addu gp, gp, t9 | gp += t9;
0x00406bbc addiu sp, sp, -0x38 |
0x00406bc0 slti v0, a1, 0x14 | v0 = (a1 < 0x14) ? 1 : 0;
0x00406bc4 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00406bc8 sw s4, 0x30(sp) | *(var_30h) = s4;
0x00406bcc sw ra, 0x34(sp) | *(var_34h) = ra;
0x00406bd0 sw s3, 0x2c(sp) | *(var_2ch) = s3;
0x00406bd4 sw s2, 0x28(sp) | *(var_28h) = s2;
0x00406bd8 sw s1, 0x24(sp) | *(var_24h) = s1;
0x00406bdc sw s0, 0x20(sp) | *(var_20h) = s0;
0x00406be0 lw s4, 0x48(sp) | s4 = *(arg_48h);
| if (v0 != 0) {
0x00406be4 beqz v0, 0x406c14 |
0x00406be8 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x00406bec lw ra, 0x34(sp) | ra = *(var_34h);
0x00406bf0 lw s4, 0x30(sp) | s4 = *(var_30h);
0x00406bf4 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x00406bf8 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00406bfc lw s1, 0x24(sp) | s1 = *(var_24h);
0x00406c00 lw s0, 0x20(sp) | s0 = *(var_20h);
0x00406c04 lw t9, -0x7eec(gp) | t9 = sym.imp.snprintf;
| /* str._too_big_ */
0x00406c08 addiu a2, a2, -0x6064 | a2 += -0x6064;
0x00406c0c addiu sp, sp, 0x38 |
0x00406c10 jr t9 | t9 ();
| }
0x00406c14 andi v0, a3, 1 | v0 = a3 & 1;
0x00406c18 move s1, a0 | s1 = a0;
0x00406c1c move s2, a2 | s2 = a2;
0x00406c20 move s3, a3 | s3 = a3;
0x00406c24 addiu s0, a1, -0x14 | s0 = a1 + -0x14;
| if (v0 != 0) {
0x00406c28 beqz v0, 0x406c44 |
0x00406c2c lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00406c30 lw t9, -0x7ee8(gp) | t9 = sym._MIPS_STUBS_;
0x00406c34 addiu s1, s1, 4 | s1 += 4;
| /* str._min */
0x00406c38 addiu a1, a1, -0x5fd4 | a1 += -0x5fd4;
0x00406c3c jalr t9 | t9 ();
0x00406c40 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x00406c44 andi v0, s3, 2 | v0 = s3 & 2;
0x00406c48 andi v0, s3, 0x10 | v0 = s3 & 0x10;
| if (v0 != 0) {
0x00406c4c beqz v0, 0x406c70 |
0x00406c50 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00406c54 lw t9, -0x7ee8(gp) | t9 = sym._MIPS_STUBS_;
0x00406c58 move a0, s1 | a0 = s1;
| /* str._max */
0x00406c5c addiu a1, a1, -0x5fcc | a1 += -0x5fcc;
0x00406c60 jalr t9 | t9 ();
0x00406c64 lw gp, 0x18(sp) | gp = *(var_18h);
0x00406c68 addiu s1, s1, 4 | s1 += 4;
0x00406c6c andi v0, s3, 0x10 | v0 = s3 & 0x10;
| }
0x00406c70 andi v0, s3, 0x20 | v0 = s3 & 0x20;
| if (v0 != 0) {
0x00406c74 beqz v0, 0x406c98 |
0x00406c78 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00406c7c lw t9, -0x7ee8(gp) | t9 = sym._MIPS_STUBS_;
0x00406c80 move a0, s1 | a0 = s1;
| /* str._short */
0x00406c84 addiu a1, a1, -0x5f08 | a1 += -0x5f08;
0x00406c88 jalr t9 | t9 ();
0x00406c8c lw gp, 0x18(sp) | gp = *(var_18h);
0x00406c90 addiu s1, s1, 6 | s1 += 6;
0x00406c94 andi v0, s3, 0x20 | v0 = s3 & 0x20;
| }
0x00406c98 andi v0, s3, 0x2000 | v0 = s3 & 0x2000;
| if (v0 != 0) {
0x00406c9c beqz v0, 0x406cc0 |
0x00406ca0 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00406ca4 lw t9, -0x7ee8(gp) | t9 = sym._MIPS_STUBS_;
0x00406ca8 move a0, s1 | a0 = s1;
| /* str.__long */
0x00406cac addiu a1, a1, -0x5f00 | a1 += -0x5f00;
0x00406cb0 jalr t9 | t9 ();
0x00406cb4 lw gp, 0x18(sp) | gp = *(var_18h);
0x00406cb8 addiu s1, s1, 6 | s1 += 6;
0x00406cbc andi v0, s3, 0x2000 | v0 = s3 & 0x2000;
| }
0x00406cc0 move a0, s1 | a0 = s1;
| if (v0 != 0) {
0x00406cc4 beqz v0, 0x406da4 |
0x00406cc8 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00406ccc lw t9, -0x7ee8(gp) | t9 = sym._MIPS_STUBS_;
0x00406cd0 andi s3, s3, 4 | s3 &= 4;
| /* str._lifetime: */
0x00406cd4 addiu a1, a1, -0x5ef8 | a1 += -0x5ef8;
0x00406cd8 jalr t9 | t9 ();
0x00406cdc lw gp, 0x18(sp) | gp = *(var_18h);
0x00406ce0 addiu a0, s1, 0xa | a0 = s1 + 0xa;
| if (s3 != 0) {
0x00406ce4 beqz s3, 0x406d1c |
0x00406ce8 slti s4, s4, 0x15 | s4 = (s4 < 0x15) ? 1 : 0;
0x00406cec lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
| if (s4 != 0) {
0x00406cf0 beqz s4, 0x406d0c |
0x00406cf4 mtc1 s2, f2 | __asm ("mtc1 s2, f2");
0x00406cf8 cvt.d.w f0, f2 | __asm ("cvt.d.w f0, f2");
0x00406cfc ldc1 f2, -0x5648(v0) | __asm ("ldc1 f2, -0x5648(v0)");
0x00406d00 div.d f0, f0, f2 | __asm ("div.d f0, f0, f2");
0x00406d04 trunc.w.d f2, f0 | __asm ("trunc.w.d f2, f0");
0x00406d08 mfc1 s2, f2 | __asm ("mfc1 s2, f2");
| }
0x00406d0c lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x00406d10 move a1, s0 | a1 = s0;
| /* esilref: '&d' */
0x00406d14 addiu a2, a2, -0x6094 | a2 += -0x6094;
0x00406d18 b 0x406db0 |
0x00406d1c lui v0, 0xf | v0 = 0xf4240;
0x00406d20 addiu v0, v0, 0x4240 |
0x00406d24 slt v0, s2, v0 | v0 = (s2 < v0) ? 1 : 0;
0x00406d28 slti v0, s2, 0x3e8 | v0 = (s2 < 0x3e8) ? 1 : 0;
| } else {
| } else {
| }
| }
| if (v0 == 0) {
0x00406d2c bnez v0, 0x406d58 |
0x00406d30 lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x00406d34 mtc1 s2, f2 | __asm ("mtc1 s2, f2");
0x00406d38 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x00406d3c cvt.d.w f0, f2 | __asm ("cvt.d.w f0, f2");
0x00406d40 ldc1 f2, -0x5648(v0) | __asm ("ldc1 f2, -0x5648(v0)");
0x00406d44 move a1, s0 | a1 = s0;
| /* esilref: '&gs' */
0x00406d48 addiu a2, a2, -0x5fa0 | a2 += -0x5fa0;
0x00406d4c div.d f0, f0, f2 | __asm ("div.d f0, f0, f2");
0x00406d50 sdc1 f0, 0x10(sp) | __asm ("sdc1 f0, 0x10(sp)");
0x00406d54 b 0x406d84 |
| } else {
0x00406d58 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
| if (v0 != 0) {
0x00406d5c bnez v0, 0x406d98 | goto label_0;
| }
0x00406d60 lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x00406d64 mtc1 s2, f2 | __asm ("mtc1 s2, f2");
0x00406d68 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x00406d6c cvt.d.w f0, f2 | __asm ("cvt.d.w f0, f2");
0x00406d70 ldc1 f2, -0x5658(v0) | __asm ("ldc1 f2, -0x5658(v0)");
0x00406d74 move a1, s0 | a1 = s0;
| /* str._gms */
0x00406d78 addiu a2, a2, -0x5f9c | a2 += -0x5f9c;
0x00406d7c div.d f0, f0, f2 | __asm ("div.d f0, f0, f2");
0x00406d80 sdc1 f0, 0x10(sp) | __asm ("sdc1 f0, 0x10(sp)");
| }
0x00406d84 lw t9, -0x7eec(gp) | t9 = sym.imp.snprintf;
0x00406d88 jalr t9 | t9 ();
0x00406d8c nop |
0x00406d90 lw ra, 0x34(sp) | ra = *(var_34h);
0x00406d94 b 0x406dd8 | goto label_1;
| label_0:
0x00406d98 move a1, s0 | a1 = s0;
| /* str._dus */
0x00406d9c addiu a2, a2, -0x5f94 | a2 += -0x5f94;
0x00406da0 b 0x406db0 |
0x00406da4 lw a2, -0x7fd8(gp) | a2 = *((gp - 8182));
0x00406da8 move a1, s0 | a1 = s0;
| /* str._limit:_d */
0x00406dac addiu a2, a2, -0x5eec | a2 += -0x5eec;
0x00406db0 lw ra, 0x34(sp) | ra = *(var_34h);
0x00406db4 lw s4, 0x30(sp) | s4 = *(var_30h);
0x00406db8 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x00406dbc lw s1, 0x24(sp) | s1 = *(var_24h);
0x00406dc0 lw s0, 0x20(sp) | s0 = *(var_20h);
0x00406dc4 move a3, s2 | a3 = s2;
0x00406dc8 lw t9, -0x7eec(gp) | t9 = sym.imp.snprintf;
0x00406dcc lw s2, 0x28(sp) | s2 = *(var_28h);
0x00406dd0 addiu sp, sp, 0x38 |
0x00406dd4 jr t9 | t9 ();
| label_1:
0x00406dd8 lw s4, 0x30(sp) | s4 = *(var_30h);
0x00406ddc lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x00406de0 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00406de4 lw s1, 0x24(sp) | s1 = *(var_24h);
0x00406de8 lw s0, 0x20(sp) | s0 = *(var_20h);
0x00406dec addiu sp, sp, 0x38 |
0x00406df0 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/bin/iwlist @ 0x40711c */
| #include <stdint.h>
|
; (fcn) sym.iw_sawap_ntop () | void iw_sawap_ntop () {
0x0040711c lui gp, 2 |
0x00407120 addiu gp, gp, -0x43bc |
0x00407124 addu gp, gp, t9 | gp += t9;
0x00407128 addiu sp, sp, -0x40 |
0x0040712c sw s0, 0x34(sp) | *(var_34h) = s0;
0x00407130 move s0, a1 | s0 = a1;
0x00407134 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00407138 lw t9, -0x7fc8(gp) | t9 = *(gp);
0x0040713c sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x00407140 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00407144 sw s1, 0x38(sp) | *(var_38h) = s1;
0x00407148 addiu a1, a1, -0x59f0 | a1 += -0x59f0;
0x0040714c move s1, a0 | s1 = a0;
0x00407150 addiu a2, zero, 6 | a2 = 6;
0x00407154 sb zero, 0x28(sp) | *(var_28h) = 0;
0x00407158 sb zero, 0x29(sp) | *(var_29h) = 0;
0x0040715c sb zero, 0x2a(sp) | *(var_2ah) = 0;
0x00407160 sb zero, 0x2b(sp) | *(var_2bh) = 0;
0x00407164 sb zero, 0x2c(sp) | *(var_2ch) = 0;
0x00407168 sb zero, 0x2d(sp) | *(var_2dh) = 0;
0x0040716c addiu a0, sp, 0x20 | a0 = sp + 0x20;
0x00407170 jalr t9 | t9 ();
0x00407174 lw gp, 0x10(sp) | gp = *(var_10h);
0x00407178 addiu a0, sp, 0x18 | a0 = sp + 0x18;
0x0040717c addiu a2, zero, 6 | a2 = 6;
0x00407180 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00407184 lw t9, -0x7fc8(gp) | t9 = *(gp);
0x00407188 addiu s1, s1, 2 | s1 += 2;
| /* str.DDDDDD */
0x0040718c addiu a1, a1, -0x59e8 | a1 += -0x59e8;
0x00407190 jalr t9 | t9 ();
0x00407194 lw gp, 0x10(sp) | gp = *(var_10h);
0x00407198 move a0, s1 | a0 = s1;
0x0040719c addiu a1, sp, 0x28 | a1 = sp + 0x28;
0x004071a0 lw t9, -0x7f78(gp) | t9 = *(gp);
0x004071a4 addiu a2, zero, 6 | a2 = 6;
0x004071a8 jalr t9 | t9 ();
0x004071ac lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x004071b0 bnez v0, 0x4071c4 |
0x004071b4 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x004071b8 move a0, s0 | a0 = s0;
| /* str.Not_Associated */
0x004071bc addiu a1, a1, -0x5e54 | a1 += -0x5e54;
0x004071c0 b 0x407218 |
| } else {
0x004071c4 lw t9, -0x7f78(gp) | t9 = *(gp);
0x004071c8 move a0, s1 | a0 = s1;
0x004071cc addiu a1, sp, 0x20 | a1 = sp + 0x20;
0x004071d0 addiu a2, zero, 6 | a2 = 6;
0x004071d4 jalr t9 | t9 ();
0x004071d8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x004071dc bnez v0, 0x4071f0 |
0x004071e0 lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x004071e4 move a0, s0 | a0 = s0;
| /* str.Invalid */
0x004071e8 addiu a1, a1, -0x5e44 | a1 += -0x5e44;
0x004071ec b 0x407218 |
| } else {
0x004071f0 lw t9, -0x7f78(gp) | t9 = *(gp);
0x004071f4 move a0, s1 | a0 = s1;
0x004071f8 addiu a1, sp, 0x18 | a1 = sp + 0x18;
0x004071fc addiu a2, zero, 6 | a2 = 6;
0x00407200 jalr t9 | t9 ();
0x00407204 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00407208 bnez v0, 0x40722c | goto label_0;
| }
0x0040720c lw a1, -0x7fd8(gp) | a1 = *((gp - 8182));
0x00407210 move a0, s0 | a0 = s0;
| /* str.None */
0x00407214 addiu a1, a1, -0x5e3c | a1 += -0x5e3c;
| }
| }
0x00407218 lw t9, -0x7ee8(gp) | t9 = sym._MIPS_STUBS_;
0x0040721c jalr t9 | t9 ();
0x00407220 nop |
0x00407224 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x00407228 b 0x407240 | goto label_1;
| label_0:
0x0040722c lw t9, -0x7f74(gp) | t9 = sym.iw_ether_ntop;
0x00407230 move a0, s1 | a0 = s1;
0x00407234 move a1, s0 | a1 = s0;
0x00407238 bal 0x4070bc | sym_iw_ether_ntop ();
0x0040723c lw ra, 0x3c(sp) | ra = *(var_3ch);
| label_1:
0x00407240 move v0, s0 | v0 = s0;
0x00407244 lw s1, 0x38(sp) | s1 = *(var_38h);
0x00407248 lw s0, 0x34(sp) | s0 = *(var_34h);
0x0040724c addiu sp, sp, 0x40 |
0x00407250 jr ra | return v0;
| }
[*] Function strcpy used 1 times iwlist