[*] Binary protection state of opkg

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


[*] Function fprintf tear down of opkg

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/opkg @ 0xe10 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) main ()                      | int32_t main () {
                                         |     /* [13] -r-x section size 4944 named .text */
    0x00000e10 lui gp, 2                 |     
    0x00000e14 addiu gp, gp, -0x3a70     |     
    0x00000e18 addu gp, gp, t9           |     gp += t9;
    0x00000e1c lw v0, -0x7f88(gp)        |     v0 = *((gp - 8162));
    0x00000e20 addiu sp, sp, -0x68       |     
    0x00000e24 lw t9, -0x7f6c(gp)        |     t9 = sym.imp.opkg_conf_init;
    0x00000e28 sw v0, 0x30(sp)           |     *(var_30h) = v0;
    0x00000e2c lw v0, (v0)               |     v0 = *(v0);
    0x00000e30 sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x00000e34 sw s5, 0x54(sp)           |     *(var_54h) = s5;
    0x00000e38 sw s4, 0x50(sp)           |     *(var_50h) = s4;
    0x00000e3c sw ra, 0x64(sp)           |     *(var_64h) = ra;
    0x00000e40 sw fp, 0x60(sp)           |     *(var_60h) = fp;
    0x00000e44 sw s7, 0x5c(sp)           |     *(var_5ch) = s7;
    0x00000e48 sw s6, 0x58(sp)           |     *(var_58h) = s6;
    0x00000e4c sw s3, 0x4c(sp)           |     *(var_4ch) = s3;
    0x00000e50 sw s2, 0x48(sp)           |     *(var_48h) = s2;
    0x00000e54 sw s1, 0x44(sp)           |     *(var_44h) = s1;
    0x00000e58 sw s0, 0x40(sp)           |     *(var_40h) = s0;
    0x00000e5c sw v0, 0x3c(sp)           |     *(var_3ch) = v0;
    0x00000e60 move s5, a0               |     s5 = a0;
    0x00000e64 move s4, a1               |     s4 = a1;
    0x00000e68 jalr t9                   |     t9 ();
    0x00000e6c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00000e70 bnez v0, 0x1600           |         goto label_9;
                                         |     }
    0x00000e74 lw s6, -0x7f50(gp)        |     s6 = *((gp - 8148));
    0x00000e78 move s3, v0               |     s3 = v0;
    0x00000e7c lw v1, -0x7fd8(gp)        |     v1 = *((gp - 8182));
    0x00000e80 lw v0, (s6)               |     v0 = *(s6);
    0x00000e84 addiu a0, zero, 1         |     a0 = 1;
    0x00000e88 lw s2, -0x7fdc(gp)        |     s2 = *((gp - 8183));
    0x00000e8c sw v1, 0x28(sp)           |     *(var_28h) = v1;
    0x00000e90 sw a0, 0xd8(v0)           |     *((v0 + 54)) = a0;
    0x00000e94 lw v1, -0x7fdc(gp)        |     v1 = *((gp - 8183));
    0x00000e98 addiu v0, sp, 0x38        |     v0 = sp + 0x38;
    0x00000e9c lw s1, -0x7fdc(gp)        |     s1 = *((gp - 8183));
    0x00000ea0 sw v0, 0x24(sp)           |     *(var_24h) = v0;
    0x00000ea4 addiu v0, s2, 0x3990      |     v0 = s2 + str.Confusion:_getopt_long_returned__d_n;
    0x00000ea8 sw v1, 0x20(sp)           |     *(var_20h) = v1;
    0x00000eac sw zero, 0x38(sp)         |     *(var_38h) = 0;
    0x00000eb0 addiu s1, s1, 0x3eb0      |     s1 += 0x3eb0;
    0x00000eb4 sw v0, 0x2c(sp)           |     *(var_2ch) = v0;
                                         |     do {
                                         | label_0:
    0x00000eb8 lw v0, 0x28(sp)           |         v0 = *(var_28h);
    0x00000ebc addiu s2, zero, -1        |         s2 = -1;
    0x00000ec0 addiu fp, v0, 0x5010      |         fp = v0 + 0x5010;
    0x00000ec4 lw v0, 0x20(sp)           |         v0 = *(var_20h);
    0x00000ec8 addiu s7, v0, 0x394c      |         s7 = v0 + str.Ad:f:no:p:l:t:vV::;
    0x00000ecc lw v0, 0x24(sp)           |         v0 = *(var_24h);
    0x00000ed0 lw t9, -0x7f68(gp)        |         t9 = sym.imp.getopt_long;
    0x00000ed4 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x00000ed8 move a3, fp               |         a3 = fp;
    0x00000edc move a2, s7               |         a2 = s7;
    0x00000ee0 move a1, s4               |         a1 = s4;
    0x00000ee4 move a0, s5               |         a0 = s5;
    0x00000ee8 jalr t9                   |         t9 ();
    0x00000eec move s0, v0               |         s0 = v0;
    0x00000ef0 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 == s2) {
    0x00000ef4 beq v0, s2, 0x12ec        |             goto label_10;
                                         |         }
    0x00000ef8 addiu v0, v0, -0x3a       |         v0 += -0x3a;
    0x00000efc sltiu a0, v0, 0x64        |         a0 = (v0 < 0x64) ? 1 : 0;
    0x00000f00 sll v0, v0, 2             |         v0 <<= 2;
                                         |         if (a0 == 0) {
    0x00000f04 beqz a0, 0x12d0           |             goto label_11;
                                         |         }
    0x00000f08 lwx v0, v0(s1)            |         __asm ("lwx v0, v0(s1)");
    0x00000f0c addu v0, v0, gp           |         v0 += gp;
    0x00000f10 jr v0                     |         v0 ();
    0x00000f14 nop                       |         
                                         | label_6:
    0x0000107c lw t9, -0x7f70(gp)        |         t9 = sym.imp.nv_pair_list_append;
    0x00001080 move a1, a3               |         a1 = a3;
    0x00001084 sw a3, 0x34(sp)           |         *(var_34h) = a3;
    0x00001088 addiu a2, v0, 1           |         a2 = v0 + 1;
    0x0000108c jalr t9                   |         t9 ();
    0x00001090 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001094 lw a3, 0x34(sp)           |         a3 = *(var_34h);
    0x00001098 lw t9, -0x7f5c(gp)        |         t9 = sym.imp.free;
    0x0000109c move a0, a3               |         a0 = a3;
    0x000010a0 jalr t9                   |         t9 ();
    0x000010a4 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000010a8 b 0xeb8                   |         
                                         |     } while (1);
                                         | label_11:
    0x000012d0 lw t9, -0x7f34(gp)        |     t9 = sym.imp.__printf_chk;
    0x000012d4 lw a1, 0x2c(sp)           |     a1 = *(var_2ch);
    0x000012d8 move a2, s0               |     a2 = s0;
    0x000012dc addiu a0, zero, 1         |     a0 = 1;
    0x000012e0 jalr t9                   |     t9 ();
    0x000012e4 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000012e8 b 0xeb8                   |     goto label_0;
                                         | label_10:
    0x000012ec lw v0, -0x7f60(gp)        |     v0 = *((gp - 8152));
                                         |     if (s3 == 0) {
    0x000012f0 beqz s3, 0x1328           |         goto label_12;
                                         |     }
                                         | label_1:
    0x000012f4 lw v0, -0x7f78(gp)        |     v0 = *((gp - 8158));
                                         |     do {
    0x000012f8 lw a0, -0x7fdc(gp)        |         a0 = *((gp - 8183));
    0x000012fc lw t9, -0x7f90(gp)        |         t9 = sym.imp.fwrite;
    0x00001300 lw a3, (v0)               |         a3 = *(v0);
    0x00001304 addiu a2, zero, 0x28      |         a2 = 0x28;
    0x00001308 addiu a1, zero, 1         |         a1 = 1;
    0x0000130c addiu a0, a0, 0x39b4      |         a0 += str.opkg_must_have_one_sub_command_argument_n;
    0x00001310 jalr t9                   |         t9 ();
    0x00001314 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001318 lw t9, -0x7fdc(gp)        |         t9 = *((gp - 8183));
    0x0000131c addiu t9, t9, 0x1960      |         t9 += fcn.00001960;
    0x00001320 bal 0x1960                |         fcn_00001960 ();
    0x00001324 nop                       |         
                                         | label_12:
    0x00001328 lw s2, (v0)               |         s2 = *(v0);
    0x0000132c beql s5, s2, 0x12f8       |         
                                         |     } while (s5 == s2);
    0x00001330 lw v0, -0x7f78(gp)        |     v0 = *((gp - 8158));
    0x00001334 sll s3, s2, 2             |     s3 = s2 << 2;
                                         |     if (s2 < 0) {
    0x00001338 bltz s2, 0x12f4           |         goto label_1;
                                         |     }
    0x0000133c lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x00001340 lwx s1, s3(s4)            |     __asm ("lwx s1, s3(s4)");
    0x00001344 lw t9, -0x7fac(gp)        |     t9 = sym.imp.strcmp;
    0x00001348 addiu a1, a1, 0x39e0      |     a1 += 0x39e0;
    0x0000134c move a0, s1               |     a0 = s1;
    0x00001350 jalr t9                   |     t9 ();
    0x00001354 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001358 move a0, s1               |     a0 = s1;
    0x0000135c move fp, v0               |     fp = v0;
    0x00001360 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x00001364 lw t9, -0x7fac(gp)        |     t9 = sym.imp.strcmp;
    0x00001368 addiu a1, a1, 0x39f4      |     a1 += 0x39f4;
    0x0000136c jalr t9                   |     t9 ();
    0x00001370 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001374 move a0, s1               |     a0 = s1;
    0x00001378 move s7, v0               |     s7 = v0;
    0x0000137c lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x00001380 lw t9, -0x7fac(gp)        |     t9 = sym.imp.strcmp;
    0x00001384 addiu a1, a1, 0x3a08      |     a1 += str.flag;
    0x00001388 jalr t9                   |     t9 ();
    0x0000138c addiu s2, s2, 1           |     s2++;
    0x00001390 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00001394 move a2, v0               |     a2 = v0;
                                         |     if (fp != 0) {
    0x00001398 beqz fp, 0x1488           |         
    0x0000139c lw a1, -0x7fdc(gp)        |         a1 = *((gp - 8183));
    0x000013a0 lw t9, -0x7fac(gp)        |         t9 = sym.imp.strcmp;
    0x000013a4 sw v0, 0x20(sp)           |         *(var_20h) = v0;
    0x000013a8 addiu a1, a1, 0x3a10      |         a1 += str.print_architecture;
    0x000013ac move a0, s1               |         a0 = s1;
    0x000013b0 jalr t9                   |         t9 ();
    0x000013b4 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000013b8 lw a2, 0x20(sp)           |         a2 = *(var_20h);
                                         |         if (v0 == 0) {
    0x000013bc beqz v0, 0x1488           |             goto label_13;
                                         |         }
    0x000013c0 lw a1, -0x7fdc(gp)        |         a1 = *((gp - 8183));
    0x000013c4 lw t9, -0x7fac(gp)        |         t9 = sym.imp.strcmp;
    0x000013c8 addiu a1, a1, 0x3a24      |         a1 += 0x3a24;
    0x000013cc move a0, s1               |         a0 = s1;
    0x000013d0 jalr t9                   |         t9 ();
    0x000013d4 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000013d8 lw a2, 0x20(sp)           |         a2 = *(var_20h);
                                         |         if (v0 == 0) {
    0x000013dc beqz v0, 0x1488           |             goto label_13;
                                         |         }
    0x000013e0 lw a1, -0x7fdc(gp)        |         a1 = *((gp - 8183));
    0x000013e4 lw t9, -0x7fac(gp)        |         t9 = sym.imp.strcmp;
    0x000013e8 addiu a1, a1, 0x3a44      |         a1 += str.print_installation_architecture;
    0x000013ec move a0, s1               |         a0 = s1;
    0x000013f0 jalr t9                   |         t9 ();
    0x000013f4 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000013f8 lw a2, 0x20(sp)           |         a2 = *(var_20h);
                                         |         if (v0 == 0) {
    0x000013fc beqz v0, 0x1488           |             goto label_13;
                                         |         }
    0x00001400 lw a3, -0x7fdc(gp)        |         a3 = *((gp - 8183));
                                         |         if (s7 == 0) {
    0x00001404 beqz s7, 0x1770           |             goto label_14;
                                         |         }
    0x00001408 lw t9, -0x7fac(gp)        |         t9 = sym.imp.strcmp;
    0x0000140c sw a2, 0x24(sp)           |         *(var_24h) = a2;
    0x00001410 addiu a1, a3, 0x3a64      |         a1 = a3 + str.compare_versions;
    0x00001414 sw a3, 0x20(sp)           |         *(var_20h) = a3;
    0x00001418 move a0, s1               |         a0 = s1;
    0x0000141c jalr t9                   |         t9 ();
    0x00001420 lw a2, 0x24(sp)           |         a2 = *(var_24h);
    0x00001424 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001428 sltiu fp, v0, 1           |         fp = (v0 < 1) ? 1 : 0;
    0x0000142c lw a3, 0x20(sp)           |         a3 = *(var_20h);
                                         |         if (a2 != 0) {
    0x00001430 beqz a2, 0x147c           |             
    0x00001434 lw a1, -0x7fdc(gp)        |             a1 = *((gp - 8183));
    0x00001438 lw t9, -0x7fac(gp)        |             t9 = sym.imp.strcmp;
    0x0000143c sw a3, 0x20(sp)           |             *(var_20h) = a3;
    0x00001440 addiu a1, a1, 0x3a78      |             a1 += str.configure;
    0x00001444 move a0, s1               |             a0 = s1;
    0x00001448 jalr t9                   |             t9 ();
    0x0000144c lw gp, 0x18(sp)           |             gp = *(var_18h);
    0x00001450 lw a3, 0x20(sp)           |             a3 = *(var_20h);
                                         |             if (v0 == 0) {
    0x00001454 beqz v0, 0x147c           |                 goto label_15;
                                         |             }
    0x00001458 lw a1, -0x7fdc(gp)        |             a1 = *((gp - 8183));
    0x0000145c lw t9, -0x7fac(gp)        |             t9 = sym.imp.strcmp;
    0x00001460 sw a3, 0x20(sp)           |             *(var_20h) = a3;
    0x00001464 addiu a1, a1, 0x3b50      |             a1 += 0x3b50;
    0x00001468 move a0, s1               |             a0 = s1;
    0x0000146c jalr t9                   |             t9 ();
    0x00001470 lw gp, 0x18(sp)           |             gp = *(var_18h);
    0x00001474 lw a3, 0x20(sp)           |             a3 = *(var_20h);
                                         |             if (v0 != 0) {
    0x00001478 bnez v0, 0x1640           |                 goto label_16;
                                         |             }
                                         |         }
                                         | label_15:
    0x0000147c addiu v0, zero, 1         |         v0 = 1;
    0x00001480 sw v0, 0x20(sp)           |         *(var_20h) = v0;
    0x00001484 b 0x15b4                  |         goto label_17;
                                         |     }
                                         | label_13:
    0x00001488 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
                                         |     if (a2 != 0) {
    0x0000148c bnez a2, 0x1608           |         goto label_18;
                                         |     }
                                         | label_4:
    0x00001490 addiu v0, zero, 1         |     v0 = 1;
    0x00001494 addiu fp, zero, 1         |     fp = 1;
    0x00001498 sw v0, 0x20(sp)           |     *(var_20h) = v0;
                                         | label_5:
    0x0000149c lw a3, -0x7fdc(gp)        |     a3 = *((gp - 8183));
    0x000014a0 bnez s7, 0x15b4           |     
                                         |     while (v0 == 0) {
                                         | label_7:
    0x000014a4 lw t9, -0x7fb4(gp)        |         t9 = sym.imp.opkg_cmd_find;
    0x000014a8 move a0, s1               |         a0 = s1;
    0x000014ac jalr t9                   |         t9 ();
    0x000014b0 move s7, v0               |         s7 = v0;
    0x000014b4 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 == 0) {
    0x000014b8 beqz v0, 0x1730           |             goto label_19;
                                         |         }
    0x000014bc lw v0, (s6)               |         v0 = *(s6);
    0x000014c0 lw v1, 0xc(s7)            |         v1 = *((s7 + 3));
    0x000014c4 sw v1, 0x68(v0)           |         *((v0 + 26)) = v1;
                                         | label_2:
    0x000014c8 lw v0, 4(s7)              |         v0 = *((s7 + 1));
                                         |         if (fp != 0) {
    0x000014cc bnel fp, zero, 0x1508     |             
    0x000014d0 lw v0, 0x20(sp)           |             v0 = *(var_20h);
    0x000014d4 lw t9, -0x7fa8(gp)        |             t9 = sym.imp.pkg_hash_load_status_files;
                                         |             if (v0 == 0) {
    0x000014d8 bnez v0, 0x14f4           |                 
    0x000014dc lw t9, -0x7f2c(gp)        |                 t9 = sym.imp.pkg_hash_load_feeds;
    0x000014e0 jalr t9                   |                 t9 ();
    0x000014e4 nop                       |                 
    0x000014e8 lw gp, 0x18(sp)           |                 gp = *(var_18h);
                                         |                 if (v0 != 0) {
    0x000014ec bnez v0, 0x1540           |                     goto label_20;
                                         |                 }
    0x000014f0 lw t9, -0x7fa8(gp)        |                 t9 = sym.imp.pkg_hash_load_status_files;
                                         |             }
    0x000014f4 jalr t9                   |             t9 ();
    0x000014f8 nop                       |             
    0x000014fc lw gp, 0x18(sp)           |             gp = *(var_18h);
                                         |             if (v0 != 0) {
    0x00001500 bnez v0, 0x1540           |                 goto label_20;
                                         |             }
    0x00001504 lw v0, 4(s7)              |             v0 = *((s7 + 1));
                                         |         }
    0x00001508 lw t9, -0x7f94(gp)        |         t9 = sym.imp.opkg_cmd_exec;
                                         |         if (v0 != 0) {
    0x0000150c beqz v0, 0x1518           |             
                                         |             if (s5 == s2) {
    0x00001510 beql s5, s2, 0x17d4       |                 goto label_21;
                                         |             }
    0x00001514 lw v0, -0x7f78(gp)        |             v0 = *((gp - 8158));
                                         |         }
    0x00001518 addiu a2, s3, 4           |         a2 = s3 + 4;
    0x0000151c addu a2, s4, a2           |         a2 = s4 + a2;
    0x00001520 subu a1, s5, s2           |         __asm ("subu a1, s5, s2");
    0x00001524 move a0, s7               |         a0 = s7;
    0x00001528 jalr t9                   |         t9 ();
    0x0000152c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001530 lw t9, -0x7f48(gp)        |         t9 = sym.imp.opkg_download_cleanup;
    0x00001534 move s0, v0               |         s0 = v0;
    0x00001538 jalr t9                   |         t9 ();
    0x0000153c lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         | label_20:
    0x00001540 lw t9, -0x7f40(gp)        |         t9 = sym.imp.opkg_conf_deinit;
    0x00001544 jalr t9                   |         t9 ();
    0x00001548 nop                       |         
    0x0000154c lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         | label_3:
    0x00001550 lw t9, -0x7f8c(gp)        |         t9 = sym.imp.print_error_list;
    0x00001554 jalr t9                   |         t9 ();
    0x00001558 nop                       |         
    0x0000155c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001560 lw t9, -0x7f4c(gp)        |         t9 = sym.imp.free_error_list;
    0x00001564 jalr t9                   |         t9 ();
    0x00001568 nop                       |         
    0x0000156c lw v0, 0x30(sp)           |         v0 = *(var_30h);
    0x00001570 lw a0, 0x3c(sp)           |         a0 = *(var_3ch);
    0x00001574 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001578 lw v1, (v0)               |         v1 = *(v0);
    0x0000157c move v0, s0               |         v0 = s0;
                                         |         if (a0 != v1) {
    0x00001580 bne a0, v1, 0x17c8        |             goto label_22;
                                         |         }
    0x00001584 lw ra, 0x64(sp)           |         ra = *(var_64h);
    0x00001588 lw fp, 0x60(sp)           |         fp = *(var_60h);
    0x0000158c lw s7, 0x5c(sp)           |         s7 = *(var_5ch);
    0x00001590 lw s6, 0x58(sp)           |         s6 = *(var_58h);
    0x00001594 lw s5, 0x54(sp)           |         s5 = *(var_54h);
    0x00001598 lw s4, 0x50(sp)           |         s4 = *(var_50h);
    0x0000159c lw s3, 0x4c(sp)           |         s3 = *(var_4ch);
    0x000015a0 lw s2, 0x48(sp)           |         s2 = *(var_48h);
    0x000015a4 lw s1, 0x44(sp)           |         s1 = *(var_44h);
    0x000015a8 lw s0, 0x40(sp)           |         s0 = *(var_40h);
    0x000015ac addiu sp, sp, 0x68        |         
    0x000015b0 jr ra                     |         return v0;
                                         | label_17:
    0x000015b4 lw t9, -0x7fac(gp)        |         t9 = sym.imp.strcmp;
    0x000015b8 addiu a1, a3, 0x3a64      |         a1 = a3 + str.compare_versions;
    0x000015bc move a0, s1               |         a0 = s1;
    0x000015c0 jalr t9                   |         t9 ();
    0x000015c4 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000015c8 beqz v0, 0x14a4           |         
                                         |     }
    0x000015cc lw t9, -0x7fb4(gp)        |     t9 = sym.imp.opkg_cmd_find;
    0x000015d0 move a0, s1               |     a0 = s1;
    0x000015d4 jalr t9                   |     t9 ();
    0x000015d8 move s7, v0               |     s7 = v0;
    0x000015dc lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x000015e0 beqz v0, 0x1730           |         goto label_19;
                                         |     }
    0x000015e4 lw v0, (s6)               |     v0 = *(s6);
    0x000015e8 lw v1, 0xc(s7)            |     v1 = *((s7 + 3));
    0x000015ec lw t9, -0x7f80(gp)        |     t9 = sym.imp.opkg_conf_load;
    0x000015f0 sw v1, 0x68(v0)           |     *((v0 + 26)) = v1;
    0x000015f4 jalr t9                   |     t9 ();
    0x000015f8 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x000015fc beqz v0, 0x14c8           |         goto label_2;
                                         |     }
                                         | label_9:
    0x00001600 addiu s0, zero, -1        |     s0 = -1;
    0x00001604 b 0x1550                  |     goto label_3;
                                         | label_18:
    0x00001608 lw t9, -0x7fac(gp)        |     t9 = sym.imp.strcmp;
    0x0000160c addiu a1, a1, 0x3a78      |     a1 += str.configure;
    0x00001610 move a0, s1               |     a0 = s1;
    0x00001614 jalr t9                   |     t9 ();
    0x00001618 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x0000161c beqz v0, 0x1490           |         goto label_4;
                                         |     }
    0x00001620 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x00001624 lw t9, -0x7fac(gp)        |     t9 = sym.imp.strcmp;
    0x00001628 addiu a1, a1, 0x3b50      |     a1 += 0x3b50;
    0x0000162c move a0, s1               |     a0 = s1;
    0x00001630 jalr t9                   |     t9 ();
    0x00001634 addiu fp, zero, 1         |     fp = 1;
    0x00001638 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x0000163c beqz v0, 0x1724           |     
                                         |     while (1) {
                                         | label_16:
    0x00001640 lw a1, -0x7fdc(gp)        |         a1 = *((gp - 8183));
    0x00001644 lw t9, -0x7fac(gp)        |         t9 = sym.imp.strcmp;
    0x00001648 addiu a1, a1, 0x3a84      |         a1 += str.files;
    0x0000164c move a0, s1               |         a0 = s1;
    0x00001650 jalr t9                   |         t9 ();
    0x00001654 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 != 0) {
    0x00001658 beqz v0, 0x1724           |             
    0x0000165c lw a1, -0x7fdc(gp)        |             a1 = *((gp - 8183));
    0x00001660 lw t9, -0x7fac(gp)        |             t9 = sym.imp.strcmp;
    0x00001664 addiu a1, a1, 0x3a8c      |             a1 += str.search;
    0x00001668 move a0, s1               |             a0 = s1;
    0x0000166c jalr t9                   |             t9 ();
    0x00001670 lw gp, 0x18(sp)           |             gp = *(var_18h);
                                         |             if (v0 == 0) {
    0x00001674 beqz v0, 0x1724           |                 goto label_23;
                                         |             }
    0x00001678 lw a1, -0x7fdc(gp)        |             a1 = *((gp - 8183));
    0x0000167c lw t9, -0x7fac(gp)        |             t9 = sym.imp.strcmp;
    0x00001680 addiu a1, a1, 0x3a94      |             a1 += 0x3a94;
    0x00001684 move a0, s1               |             a0 = s1;
    0x00001688 jalr t9                   |             t9 ();
    0x0000168c lw gp, 0x18(sp)           |             gp = *(var_18h);
                                         |             if (v0 == 0) {
    0x00001690 beqz v0, 0x1724           |                 goto label_23;
                                         |             }
    0x00001694 lw a1, -0x7fdc(gp)        |             a1 = *((gp - 8183));
    0x00001698 lw t9, -0x7fac(gp)        |             t9 = sym.imp.strcmp;
    0x0000169c addiu a1, a1, 0x3aa4      |             a1 += str.list_installed;
    0x000016a0 move a0, s1               |             a0 = s1;
    0x000016a4 jalr t9                   |             t9 ();
    0x000016a8 lw gp, 0x18(sp)           |             gp = *(var_18h);
                                         |             if (v0 == 0) {
    0x000016ac beqz v0, 0x1724           |                 goto label_23;
                                         |             }
    0x000016b0 lw a1, -0x7fdc(gp)        |             a1 = *((gp - 8183));
    0x000016b4 lw t9, -0x7fac(gp)        |             t9 = sym.imp.strcmp;
    0x000016b8 addiu a1, a1, 0x3ab4      |             a1 += 0x3ab4;
    0x000016bc move a0, s1               |             a0 = s1;
    0x000016c0 jalr t9                   |             t9 ();
    0x000016c4 lw gp, 0x18(sp)           |             gp = *(var_18h);
                                         |             if (v0 == 0) {
    0x000016c8 beqz v0, 0x1724           |                 goto label_23;
                                         |             }
    0x000016cc lw a1, -0x7fdc(gp)        |             a1 = *((gp - 8183));
    0x000016d0 lw t9, -0x7fac(gp)        |             t9 = sym.imp.strcmp;
    0x000016d4 addiu a1, a1, 0x3acc      |             a1 += str.list_changed_conffiles;
    0x000016d8 move a0, s1               |             a0 = s1;
    0x000016dc jalr t9                   |             t9 ();
    0x000016e0 lw gp, 0x18(sp)           |             gp = *(var_18h);
                                         |             if (v0 == 0) {
    0x000016e4 beqz v0, 0x1724           |                 goto label_23;
                                         |             }
    0x000016e8 lw a1, -0x7fdc(gp)        |             a1 = *((gp - 8183));
    0x000016ec lw t9, -0x7fac(gp)        |             t9 = sym.imp.strcmp;
    0x000016f0 addiu a1, a1, 0x3ae4      |             a1 += str.status;
    0x000016f4 move a0, s1               |             a0 = s1;
    0x000016f8 jalr t9                   |             t9 ();
    0x000016fc sltiu v0, v0, 1           |             v0 = (v0 < 1) ? 1 : 0;
    0x00001700 lw gp, 0x18(sp)           |             gp = *(var_18h);
    0x00001704 sw v0, 0x20(sp)           |             *(var_20h) = v0;
    0x00001708 b 0x149c                  |             goto label_5;
                                         |         }
                                         | label_23:
    0x00001724 addiu v0, zero, 1         |         v0 = 1;
    0x00001728 sw v0, 0x20(sp)           |         *(var_20h) = v0;
    0x0000172c b 0x149c                  |         goto label_5;
                                         | label_19:
    0x00001730 lw v0, -0x7f78(gp)        |         v0 = *((gp - 8158));
    0x00001734 lw a2, -0x7fdc(gp)        |         a2 = *((gp - 8183));
    0x00001738 lw t9, -0x7f28(gp)        |         t9 = sym.imp.__fprintf_chk
    0x0000173c lw a3, (s4)               |         a3 = *(s4);
    0x00001740 lw a0, (v0)               |         a0 = *(v0);
    0x00001744 addiu a2, a2, 0x3aec      |         a2 += str._s:_unknown_sub_command__s_n;
    0x00001748 sw s1, 0x10(sp)           |         *(var_10h) = s1;
                                         | label_8:
    0x0000174c addiu a1, zero, 1         |         a1 = 1;
    0x00001750 jalr t9                   |         t9 ();
    0x00001754 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00001758 lw t9, -0x7fdc(gp)        |         t9 = *((gp - 8183));
    0x0000175c addiu t9, t9, 0x1960      |         t9 += fcn.00001960;
    0x00001760 bal 0x1960                |         fcn_00001960 ();
    0x00001764 nop                       |         
    0x00001768 addiu a0, a0, 0x20        |         a0 += 0x20;
    0x0000176c b 0x107c                  |         goto label_6;
                                         | label_14:
    0x00001770 addiu v0, zero, 1         |         v0 = 1;
                                         |         if (a2 == 0) {
    0x00001774 beqz a2, 0x17bc           |             goto label_24;
                                         |         }
    0x00001778 lw a1, -0x7fdc(gp)        |         a1 = *((gp - 8183));
    0x0000177c lw t9, -0x7fac(gp)        |         t9 = sym.imp.strcmp;
    0x00001780 addiu a1, a1, 0x3a78      |         a1 += str.configure;
    0x00001784 move a0, s1               |         a0 = s1;
    0x00001788 jalr t9                   |         t9 ();
    0x0000178c lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 == 0) {
    0x00001790 beqz v0, 0x17b8           |             goto label_25;
                                         |         }
    0x00001794 lw a1, -0x7fdc(gp)        |         a1 = *((gp - 8183));
    0x00001798 lw t9, -0x7fac(gp)        |         t9 = sym.imp.strcmp;
    0x0000179c addiu a1, a1, 0x3b50      |         a1 += 0x3b50;
    0x000017a0 move a0, s1               |         a0 = s1;
    0x000017a4 jalr t9                   |         t9 ();
    0x000017a8 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (v0 == 0) {
    0x000017ac beqz v0, 0x17b8           |             goto label_25;
                                         |         }
    0x000017b0 addiu fp, zero, 1         |         fp = 1;
    0x000017b4 b 0x1640                  |         
                                         |     }
                                         | label_25:
    0x000017b8 addiu v0, zero, 1         |     v0 = 1;
                                         | label_24:
    0x000017bc sw v0, 0x20(sp)           |     *(var_20h) = v0;
    0x000017c0 addiu fp, zero, 1         |     fp = 1;
    0x000017c4 b 0x14a4                  |     goto label_7;
                                         | label_22:
    0x000017c8 lw t9, -0x7f98(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x000017cc jalr t9                   |     t9 ();
    0x000017d0 nop                       |     
                                         | label_21:
    0x000017d4 lw a2, -0x7fdc(gp)        |     a2 = *((gp - 8183));
    0x000017d8 lw a3, (s4)               |     a3 = *(s4);
    0x000017dc lw a0, (v0)               |     a0 = *(v0);
    0x000017e0 lw t9, -0x7f28(gp)        |     t9 = sym.imp.__fprintf_chk
    0x000017e4 sw s1, 0x10(sp)           |     *(var_10h) = s1;
    0x000017e8 addiu a2, a2, 0x3b08      |     a2 += str._s:_the____s_command_requires_at_least_one_argument_n;
    0x000017ec b 0x174c                  |     goto label_8;
                                         | }

[*] Function fprintf used 3 times opkg