[*] Binary protection state of libresolv-2.27.so

  
  	Partial RELRO  No Canary found   NX enabled   DSO          No RPATH     No RUNPATH   No Symbols


[*] Function popen tear down of libresolv-2.27.so

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/lib/libresolv-2.27.so @ 0xbd28 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0000bd28 ()                  | void fcn_0000bd28 () {
    0x0000bd28 lui gp, 2                     |     
    0x0000bd2c addiu gp, gp, -0x1ce8         |     
    0x0000bd30 addu gp, gp, t9               |     gp += t9;
    0x0000bd34 addiu sp, sp, -0x28           |     
    0x0000bd38 lw v0, (a3)                   |     v0 = *(a3);
    0x0000bd3c sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x0000bd40 sltu v0, a1, v0               |     v0 = (a1 < v0) ? 1 : 0;
    0x0000bd44 sw ra, 0x24(sp)               |     *(var_24h) = ra;
    0x0000bd48 sw s2, 0x20(sp)               |     *(var_20h) = s2;
    0x0000bd4c sw s1, 0x1c(sp)               |     *(var_1ch) = s1;
    0x0000bd50 sw s0, 0x18(sp)               |     *(var_18h) = s0;
    0x0000bd54 lw t9, -0x7e30(gp)            |     t9 = *((gp - 8076));
                                             |     if (v0 == 0) {
    0x0000bd58 beqz v0, 0xbdc0               |         goto label_0;
                                             |     }
    0x0000bd5c move v0, a0                   |     v0 = a0;
    0x0000bd60 move s2, a3                   |     s2 = a3;
    0x0000bd64 lw a0, (a2)                   |     a0 = *(a2);
    0x0000bd68 move s0, a1                   |     s0 = a1;
    0x0000bd6c move s1, a2                   |     s1 = a2;
    0x0000bd70 move a2, a1                   |     a2 = a1;
    0x0000bd74 move a1, v0                   |     a1 = v0;
    0x0000bd78 jalr t9                       |     t9 ();
    0x0000bd7c lw v0, (s2)                   |     v0 = *(s2);
    0x0000bd80 sltu v1, v0, s0               |     v1 = (v0 < s0) ? 1 : 0;
    0x0000bd84 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v1 != 0) {
    0x0000bd88 bnez v1, 0xbddc               |         goto label_1;
                                             |     }
    0x0000bd8c lw a1, (s1)                   |     a1 = *(s1);
    0x0000bd90 subu v1, v0, s0               |     __asm ("subu v1, v0, s0");
    0x0000bd94 addu s0, a1, s0               |     s0 = a1 + s0;
    0x0000bd98 sw s0, (s1)                   |     *(s1) = s0;
    0x0000bd9c move v0, zero                 |     v0 = 0;
    0x0000bda0 sw v1, (s2)                   |     *(s2) = v1;
    0x0000bda4 sb zero, (s0)                 |     *(s0) = 0;
                                             |     do {
    0x0000bda8 lw ra, 0x24(sp)               |         ra = *(var_24h);
    0x0000bdac lw s2, 0x20(sp)               |         s2 = *(var_20h);
    0x0000bdb0 lw s1, 0x1c(sp)               |         s1 = *(var_1ch);
    0x0000bdb4 lw s0, 0x18(sp)               |         s0 = *(var_18h);
    0x0000bdb8 addiu sp, sp, 0x28            |         
    0x0000bdbc jr ra                         |         return v0;
                                             | label_0:
    0x0000bdc0 lw v0, -0x7e04(gp)            |         v0 = *((gp - 8065));
    0x0000bdc4 rdhwr v1, 29                  |         __asm ("rdhwr v1, 29");
    0x0000bdc8 addu v0, v0, v1               |         v0 += v1;
    0x0000bdcc addiu v1, zero, 0x1c          |         v1 = 0x1c;
    0x0000bdd0 sw v1, (v0)                   |         *(v0) = v1;
    0x0000bdd4 addiu v0, zero, -1            |         v0 = -1;
    0x0000bdd8 b 0xbda8                      |         
                                             |     } while (1);
                                             | label_1:
    0x0000bddc lw t9, -0x7fdc(gp)            |     t9 = *((gp - 8183));
    0x0000bde0 addiu t9, t9, 0x24f0          |     t9 += entry0;
    0x0000bde4 bal 0x24f0                    |     entry0 ();
    0x0000bde8 nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/lib/libresolv-2.27.so @ 0xbfc0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0000bfc0 ()                  | void fcn_0000bfc0 () {
    0x0000bfc0 lui gp, 2                     |     
    0x0000bfc4 addiu gp, gp, -0x1f80         |     
    0x0000bfc8 addu gp, gp, t9               |     gp += t9;
    0x0000bfcc addiu sp, sp, -0x40           |     
    0x0000bfd0 lw t9, -0x7fd0(gp)            |     t9 = *((gp - 8180));
    0x0000bfd4 sw s1, 0x24(sp)               |     *(var_24h) = s1;
    0x0000bfd8 sw s0, 0x20(sp)               |     *(var_20h) = s0;
    0x0000bfdc lw s1, 0x54(sp)               |     s1 = *(arg_54h);
    0x0000bfe0 lw s0, 0x50(sp)               |     s0 = *(arg_50h);
    0x0000bfe4 sw s5, 0x34(sp)               |     *(var_34h) = s5;
    0x0000bfe8 sw s4, 0x30(sp)               |     *(var_30h) = s4;
    0x0000bfec lw s5, (s0)                   |     s5 = *(s0);
    0x0000bff0 lw s4, (s1)                   |     s4 = *(s1);
    0x0000bff4 sw s2, 0x28(sp)               |     *(var_28h) = s2;
    0x0000bff8 move s2, a2                   |     s2 = a2;
    0x0000bffc lw a2, (a2)                   |     a2 = *(a2);
    0x0000c000 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0000c004 sw s6, 0x38(sp)               |     *(var_38h) = s6;
    0x0000c008 sw ra, 0x3c(sp)               |     *(var_3ch) = ra;
    0x0000c00c sw s3, 0x2c(sp)               |     *(var_2ch) = s3;
    0x0000c010 move s6, a3                   |     s6 = a3;
    0x0000c014 sw s4, 0x10(sp)               |     *(var_10h) = s4;
    0x0000c018 move a3, s5                   |     a3 = s5;
    0x0000c01c addu a1, a0, a1               |     a1 = a0 + a1;
    0x0000c020 bal 0x2674                    |     sym_dn_expand ();
    0x0000c024 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 < 0) {
    0x0000c028 bltz v0, 0xc160               |         goto label_4;
                                             |     }
    0x0000c02c lw t9, -0x7fd8(gp)            |     t9 = *((gp - 8182));
    0x0000c030 lw a0, (s0)                   |     a0 = *(s0);
    0x0000c034 move a1, s6                   |     a1 = s6;
    0x0000c038 addiu t9, t9, -0x4400         |     t9 += -0x4400;
    0x0000c03c move s3, v0                   |     s3 = v0;
    0x0000c040 bal 0xbc00                    |     fcn_0000bc00 ();
    0x0000c044 lw a0, (s0)                   |     a0 = *(s0);
    0x0000c048 lb v1, (a0)                   |     v1 = *(a0);
    0x0000c04c lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v1 == 0) {
    0x0000c050 beqz v1, 0xc0d4               |         goto label_5;
                                             |     }
    0x0000c054 lw v1, (s1)                   |     v1 = *(s1);
                                             |     if (v0 != 0) {
    0x0000c058 bnez v0, 0xc108               |         goto label_6;
                                             |     }
    0x0000c05c sltiu v1, v1, 2               |     v1 = (v1 < 2) ? 1 : 0;
    0x0000c060 lw v0, -0x7e04(gp)            |     v0 = *((gp - 8065));
                                             |     if (v1 != 0) {
    0x0000c064 bnez v1, 0xc164               |         goto label_7;
                                             |     }
    0x0000c068 addiu v0, zero, 0x40          |     v0 = 0x40;
    0x0000c06c sb v0, (a0)                   |     *(a0) = v0;
    0x0000c070 lw v1, (s0)                   |     v1 = *(s0);
    0x0000c074 addiu v0, zero, 1             |     v0 = 1;
    0x0000c078 sb zero, 1(v1)                |     *((v1 + 1)) = 0;
    0x0000c07c lw v1, (s1)                   |     v1 = *(s1);
                                             |     do {
                                             | label_0:
    0x0000c080 lw a1, (s2)                   |         a1 = *(s2);
                                             | label_2:
    0x0000c084 sltu a0, v1, v0               |         a0 = (v1 < v0) ? 1 : 0;
    0x0000c088 addu s3, a1, s3               |         s3 = a1 + s3;
    0x0000c08c sw s3, (s2)                   |         *(s2) = s3;
                                             |         if (a0 != 0) {
    0x0000c090 bnez a0, 0xc184               |             goto label_8;
                                             |         }
    0x0000c094 lw a0, (s0)                   |         a0 = *(s0);
    0x0000c098 subu v1, v1, v0               |         __asm ("subu v1, v1, v0");
    0x0000c09c addu a0, a0, v0               |         a0 += v0;
    0x0000c0a0 sw a0, (s0)                   |         *(s0) = a0;
    0x0000c0a4 sw v1, (s1)                   |         *(s1) = v1;
    0x0000c0a8 sb zero, (a0)                 |         *(a0) = 0;
                                             | label_3:
    0x0000c0ac lw ra, 0x3c(sp)               |         ra = *(var_3ch);
    0x0000c0b0 lw s6, 0x38(sp)               |         s6 = *(var_38h);
    0x0000c0b4 lw s5, 0x34(sp)               |         s5 = *(var_34h);
    0x0000c0b8 lw s4, 0x30(sp)               |         s4 = *(var_30h);
    0x0000c0bc lw s3, 0x2c(sp)               |         s3 = *(var_2ch);
    0x0000c0c0 lw s2, 0x28(sp)               |         s2 = *(var_28h);
    0x0000c0c4 lw s1, 0x24(sp)               |         s1 = *(var_24h);
    0x0000c0c8 lw s0, 0x20(sp)               |         s0 = *(var_20h);
    0x0000c0cc addiu sp, sp, 0x40            |         
    0x0000c0d0 jr ra                         |         return v0;
                                             | label_5:
    0x0000c0d4 lw v1, (s1)                   |         v1 = *(s1);
                                             | label_1:
    0x0000c0d8 addiu a1, v0, 2               |         a1 = v0 + 2;
    0x0000c0dc sltu v1, v1, a1               |         v1 = (v1 < a1) ? 1 : 0;
    0x0000c0e0 addu a0, a0, v0               |         a0 += v0;
                                             |         if (v1 != 0) {
    0x0000c0e4 bnez v1, 0xc160               |             goto label_4;
                                             |         }
    0x0000c0e8 addiu v1, zero, 0x2e          |         v1 = 0x2e;
    0x0000c0ec sb v1, (a0)                   |         *(a0) = v1;
    0x0000c0f0 lw v1, (s0)                   |         v1 = *(s0);
    0x0000c0f4 addiu v0, v0, 1               |         v0++;
    0x0000c0f8 addu v1, v1, v0               |         v1 += v0;
    0x0000c0fc sb zero, (v1)                 |         *(v1) = 0;
    0x0000c100 lw v1, (s1)                   |         v1 = *(s1);
    0x0000c104 b 0xc080                      |         
                                             |     } while (1);
                                             | label_6:
    0x0000c108 addu a1, a0, v0               |     a1 = a0 + v0;
                                             |     if (s6 == 0) {
    0x0000c10c beqz s6, 0xc148               |         goto label_9;
                                             |     }
    0x0000c110 lb a1, (s6)                   |     a1 = *(s6);
    0x0000c114 addiu a2, zero, 0x2e          |     a2 = 0x2e;
                                             |     if (a1 == 0) {
    0x0000c118 beqz a1, 0xc144               |         goto label_10;
                                             |     }
                                             |     if (a1 == a2) {
    0x0000c11c beq a1, a2, 0xc080            |         goto label_0;
                                             |     }
    0x0000c120 nop                           |     
    0x0000c124 lb a1, 1(s6)                  |     a1 = *((s6 + 1));
    0x0000c128 addu a1, a0, v0               |     a1 = a0 + v0;
                                             |     if (a1 == 0) {
    0x0000c12c beqz a1, 0xc080               |         goto label_0;
                                             |     }
    0x0000c130 lb a2, (a1)                   |     a2 = *(a1);
                                             |     if (a2 != 0) {
    0x0000c134 bnez a2, 0xc080               |         goto label_0;
                                             |     }
    0x0000c138 nop                           |     
    0x0000c13c lb a2, -1(a1)                 |     a2 = *((a1 - 1));
    0x0000c140 b 0xc14c                      |     goto label_11;
                                             | label_10:
    0x0000c144 addu a1, a0, v0               |     a1 = a0 + v0;
                                             | label_9:
    0x0000c148 lb a2, -1(a1)                 |     a2 = *((a1 - 1));
                                             | label_11:
    0x0000c14c addiu a1, zero, 0x2e          |     a1 = 0x2e;
                                             |     if (a2 != a1) {
    0x0000c150 bne a2, a1, 0xc0d8            |         goto label_1;
                                             |     }
    0x0000c154 nop                           |     
    0x0000c158 lw a1, (s2)                   |     a1 = *(s2);
    0x0000c15c b 0xc084                      |     goto label_2;
                                             | label_4:
    0x0000c160 lw v0, -0x7e04(gp)            |     v0 = *((gp - 8065));
                                             | label_7:
    0x0000c164 rdhwr v1, 29                  |     __asm ("rdhwr v1, 29");
    0x0000c168 addu v0, v0, v1               |     v0 += v1;
    0x0000c16c addiu v1, zero, 0x1c          |     v1 = 0x1c;
    0x0000c170 sw v1, (v0)                   |     *(v0) = v1;
    0x0000c174 sw s5, (s0)                   |     *(s0) = s5;
    0x0000c178 addiu v0, zero, -1            |     v0 = -1;
    0x0000c17c sw s4, (s1)                   |     *(s1) = s4;
    0x0000c180 b 0xc0ac                      |     goto label_3;
                                             | label_8:
    0x0000c184 lw t9, -0x7fdc(gp)            |     t9 = *((gp - 8183));
    0x0000c188 addiu t9, t9, 0x24f0          |     t9 += entry0;
    0x0000c18c bal 0x24f0                    |     entry0 ();
    0x0000c190 nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/lib/libresolv-2.27.so @ 0xc2fc */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.ns_sprintrrf ()              | void ns_sprintrrf () {
    0x0000c2fc lui gp, 2                     |     
    0x0000c300 addiu gp, gp, -0x22bc         |     
    0x0000c304 addu gp, gp, t9               |     gp += t9;
    0x0000c308 addiu sp, sp, -0x20f0         |     
    0x0000c30c lw v1, 0x2118(sp)             |     v1 = *(arg_2118h);
    0x0000c310 sw a0, 0x20f0(sp)             |     *(arg_20f0h) = a0;
    0x0000c314 sw v1, 0x20c4(sp)             |     *(arg_20c4h) = v1;
    0x0000c318 lw a0, 0x210c(sp)             |     a0 = *(arg_210ch);
    0x0000c31c lw v1, 0x2108(sp)             |     v1 = *(arg_2108h);
    0x0000c320 lw v0, 0x2110(sp)             |     v0 = *(arg_2110h);
    0x0000c324 sw gp, 0x18(sp)               |     *(arg_18h) = gp;
    0x0000c328 addu v1, v1, a0               |     v1 += a0;
    0x0000c32c sw s5, 0x20dc(sp)             |     *(arg_20dch) = s5;
    0x0000c330 sw s3, 0x20d4(sp)             |     *(arg_20d4h) = s3;
    0x0000c334 sw s0, 0x20c8(sp)             |     *(arg_20c8h) = s0;
    0x0000c338 sw ra, 0x20ec(sp)             |     *(arg_20ech) = ra;
    0x0000c33c sw fp, 0x20e8(sp)             |     *(arg_20e8h) = fp;
    0x0000c340 sw s7, 0x20e4(sp)             |     *(arg_20e4h) = s7;
    0x0000c344 sw s6, 0x20e0(sp)             |     *(arg_20e0h) = s6;
    0x0000c348 sw s4, 0x20d8(sp)             |     *(arg_20d8h) = s4;
    0x0000c34c sw s2, 0x20d0(sp)             |     *(arg_20d0h) = s2;
    0x0000c350 sw s1, 0x20cc(sp)             |     *(arg_20cch) = s1;
    0x0000c354 sw a1, 0x20f4(sp)             |     *(arg_20f4h) = a1;
    0x0000c358 move s0, a2                   |     s0 = a2;
    0x0000c35c move s3, a3                   |     s3 = a3;
    0x0000c360 lw s5, 0x2100(sp)             |     s5 = *(arg_2100h);
    0x0000c364 sw v1, 0x20b4(sp)             |     *(arg_20b4h) = v1;
                                             |     if (v0 != 0) {
    0x0000c368 beqz v0, 0xc388               |         
    0x0000c36c lw t9, -0x7fd4(gp)            |         t9 = *((gp - 8181));
    0x0000c370 move a1, a2                   |         a1 = a2;
    0x0000c374 move a0, v0                   |         a0 = v0;
    0x0000c378 bal 0xdf58                    |         sym_ns_samename ();
    0x0000c37c addiu v1, zero, 1             |         v1 = 1;
    0x0000c380 lw gp, 0x18(sp)               |         gp = *(arg_18h);
                                             |         if (v0 == v1) {
    0x0000c384 beq v0, v1, 0xc970            |             goto label_14;
                                             |         }
                                             |     }
    0x0000c388 lw t9, -0x7fd8(gp)            |     t9 = *((gp - 8182));
    0x0000c38c lw a1, 0x2114(sp)             |     a1 = *(arg_2114h);
    0x0000c390 addiu t9, t9, -0x4400         |     t9 += -0x4400;
    0x0000c394 move a0, s0                   |     a0 = s0;
    0x0000c398 bal 0xbc00                    |     fcn_0000bc00 ();
    0x0000c39c lw gp, 0x18(sp)               |     gp = *(arg_18h);
    0x0000c3a0 lb v1, (s0)                   |     v1 = *(s0);
    0x0000c3a4 move s1, v0                   |     s1 = v0;
    0x0000c3a8 move s2, v0                   |     s2 = v0;
    0x0000c3ac lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
    0x0000c3b0 addiu fp, sp, 0x211c          |     fp = sp + 0x211c;
    0x0000c3b4 addiu s7, sp, 0x2118          |     s7 = sp + 0x2118;
                                             |     if (v1 == 0) {
    0x0000c3b8 beqz v1, 0xc610               |         goto label_15;
                                             |     }
    0x0000c3bc move a3, fp                   |     a3 = fp;
    0x0000c3c0 move a2, s7                   |     a2 = s7;
                                             |     if (s1 == 0) {
    0x0000c3c4 bnez s1, 0xc4ec               |         
    0x0000c3c8 lw a0, -0x7fd8(gp)            |         a0 = *((gp - 8182));
    0x0000c3cc addiu a1, zero, 4             |         a1 = 4;
    0x0000c3d0 addiu a0, a0, 0x1514          |         a0 += 0x1514;
                                             | label_6:
    0x0000c3d4 addiu t9, v0, -0x42d8         |         t9 = v0 + -0x42d8;
    0x0000c3d8 sw t9, 0x20b0(sp)             |         *(arg_20b0h) = t9;
    0x0000c3dc bal 0xbd28                    |         fcn_0000bd28 ();
    0x0000c3e0 lw gp, 0x18(sp)               |         gp = *(arg_18h);
                                             |         if (v0 < 0) {
    0x0000c3e4 bltz v0, 0xc5dc               |             goto label_7;
                                             |         }
    0x0000c3e8 move s2, zero                 |         s2 = 0;
                                             | label_0:
    0x0000c3ec lw s6, -0x7fcc(gp)            |         s6 = *((gp - 8179));
    0x0000c3f0 lw a2, 0x211c(sp)             |         a2 = *(arg_211ch);
    0x0000c3f4 lw a1, 0x2118(sp)             |         a1 = *(arg_2118h);
    0x0000c3f8 move t9, s6                   |         t9 = s6;
    0x0000c3fc lw a0, 0x2104(sp)             |         a0 = *(arg_2104h);
    0x0000c400 bal 0xb748                    |         sym_ns_format_ttl ();
    0x0000c404 move s0, v0                   |         s0 = v0;
    0x0000c408 lw gp, 0x18(sp)               |         gp = *(arg_18h);
                                             |         if (v0 < 0) {
    0x0000c40c bltz v0, 0xc5dc               |             goto label_7;
                                             |         }
    0x0000c410 lw v0, 0x211c(sp)             |         v0 = *(arg_211ch);
    0x0000c414 sltu v1, v0, s0               |         v1 = (v0 < s0) ? 1 : 0;
    0x0000c418 lw v1, 0x2118(sp)             |         v1 = *(arg_2118h);
                                             |         if (v1 != 0) {
    0x0000c41c bnez v1, 0xdb30               |             goto label_16;
                                             |         }
    0x0000c420 lw t9, -0x7fc8(gp)            |         t9 = *((gp - 8178));
    0x0000c424 addu v1, v1, s0               |         v1 += s0;
    0x0000c428 subu v0, v0, s0               |         __asm ("subu v0, v0, s0");
    0x0000c42c sw v1, 0x2118(sp)             |         *(arg_2118h) = v1;
    0x0000c430 move a0, s3                   |         a0 = s3;
    0x0000c434 sw v0, 0x211c(sp)             |         *(arg_211ch) = v0;
    0x0000c438 bal 0x4328                    |         sym_p_class ();
    0x0000c43c lw gp, 0x18(sp)               |         gp = *(arg_18h);
    0x0000c440 move a0, s5                   |         a0 = s5;
    0x0000c444 move s1, v0                   |         s1 = v0;
    0x0000c448 lw t9, -0x7fc4(gp)            |         t9 = *((gp - 8177));
    0x0000c44c addiu s4, sp, 0x2020          |         s4 = sp + aav.0x00002020;
    0x0000c450 bal 0x42a0                    |         sym_p_type ();
    0x0000c454 lw gp, 0x18(sp)               |         gp = *(arg_18h);
    0x0000c458 move a2, s1                   |         a2 = s1;
    0x0000c45c move a0, s4                   |         a0 = s4;
    0x0000c460 lw a1, -0x7fd8(gp)            |         a1 = *((gp - 8182));
    0x0000c464 lw t9, -0x7ecc(gp)            |         t9 = *((gp - 8115));
    0x0000c468 move a3, v0                   |         a3 = v0;
    0x0000c46c addiu a1, a1, 0x151c          |         a1 += 0x151c;
    0x0000c470 jalr t9                       |         t9 ();
    0x0000c474 lw t9, 0x20b0(sp)             |         t9 = *(arg_20b0h);
    0x0000c478 move a3, fp                   |         a3 = fp;
    0x0000c47c move a2, s7                   |         a2 = s7;
    0x0000c480 move a1, v0                   |         a1 = v0;
    0x0000c484 move a0, s4                   |         a0 = s4;
    0x0000c488 move s1, v0                   |         s1 = v0;
    0x0000c48c jalr t9                       |         t9 ();
    0x0000c490 lw gp, 0x18(sp)               |         gp = *(arg_18h);
                                             |         if (v0 < 0) {
    0x0000c494 bltz v0, 0xc5dc               |             goto label_7;
                                             |         }
    0x0000c498 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
    0x0000c49c sw fp, 0x10(sp)               |         *(arg_10h) = fp;
    0x0000c4a0 addiu t9, v0, -0x3e6c         |         t9 = v0 + -0x3e6c;
    0x0000c4a4 move a3, s7                   |         a3 = s7;
    0x0000c4a8 move a2, s2                   |         a2 = s2;
    0x0000c4ac addiu a1, zero, 0x10          |         a1 = 0x10;
    0x0000c4b0 addu a0, s0, s1               |         a0 = s0 + s1;
    0x0000c4b4 sw t9, 0x20bc(sp)             |         *(arg_20bch) = t9;
    0x0000c4b8 bal 0xc194                    |         fcn_0000c194 ();
    0x0000c4bc lw gp, 0x18(sp)               |         gp = *(arg_18h);
                                             |         if (v0 < 0) {
    0x0000c4c0 bltz v0, 0xc5dc               |             goto label_7;
                                             |         }
    0x0000c4c4 sltiu v0, s5, 0xfb            |         v0 = (s5 < 0xfb) ? 1 : 0;
    0x0000c4c8 sll v1, s5, 2                 |         v1 = s5 << 2;
                                             |         if (v0 == 0) {
    0x0000c4cc beqz v0, 0xd460               |             goto label_17;
                                             |         }
    0x0000c4d0 lw v0, -0x7fd8(gp)            |         v0 = *((gp - 8182));
    0x0000c4d4 addiu v0, v0, 0x1610          |         v0 += 0x1610;
    0x0000c4d8 addu v0, v0, v1               |         v0 += v1;
    0x0000c4dc lw v0, (v0)                   |         v0 = *(v0);
    0x0000c4e0 addu v0, v0, gp               |         v0 += gp;
    0x0000c4e4 jr v0                         |         v0 ();
    0x0000c4e8 nop                           |         
                                             |     }
    0x0000c4ec addiu t9, v0, -0x42d8         |     t9 = v0 + -0x42d8;
    0x0000c4f0 move a1, s1                   |     a1 = s1;
    0x0000c4f4 move a0, s0                   |     a0 = s0;
    0x0000c4f8 sw t9, 0x20b0(sp)             |     *(arg_20b0h) = t9;
    0x0000c4fc bal 0xbd28                    |     fcn_0000bd28 ();
    0x0000c500 lw gp, 0x18(sp)               |     gp = *(arg_18h);
                                             |     if (v0 < 0) {
    0x0000c504 bltz v0, 0xc5dc               |         goto label_7;
                                             |     }
    0x0000c508 lw v0, 0x2114(sp)             |     v0 = *(arg_2114h);
                                             |     if (v0 != 0) {
    0x0000c50c beqz v0, 0xc520               |         
    0x0000c510 nop                           |         
    0x0000c514 lb v0, (v0)                   |         v0 = *(v0);
    0x0000c518 addiu v1, zero, 0x2e          |         v1 = 0x2e;
                                             |         if (v0 != 0) {
    0x0000c51c bnez v0, 0xc674               |             goto label_18;
                                             |         }
                                             |     }
    0x0000c520 addu s0, s0, s1               |     s0 += s1;
    0x0000c524 lb v1, -1(s0)                 |     v1 = *((s0 - 1));
                                             | label_5:
    0x0000c528 addiu v0, zero, 0x2e          |     v0 = 0x2e;
    0x0000c52c lw a0, -0x7fd8(gp)            |     a0 = *((gp - 8182));
                                             |     if (v1 != v0) {
    0x0000c530 bne v1, v0, 0xc61c            |         goto label_19;
                                             |     }
    0x0000c534 lw t9, -0x7fd8(gp)            |     t9 = *((gp - 8182));
    0x0000c538 b 0xc644                      |     goto label_3;
                                             |     do {
                                             | label_7:
    0x0000c5dc lw ra, 0x20ec(sp)             |         ra = *(arg_20ech);
                                             | label_1:
    0x0000c5e0 lw fp, 0x20e8(sp)             |         fp = *(arg_20e8h);
    0x0000c5e4 lw s7, 0x20e4(sp)             |         s7 = *(arg_20e4h);
    0x0000c5e8 lw s6, 0x20e0(sp)             |         s6 = *(arg_20e0h);
    0x0000c5ec lw s5, 0x20dc(sp)             |         s5 = *(arg_20dch);
    0x0000c5f0 lw s4, 0x20d8(sp)             |         s4 = *(arg_20d8h);
    0x0000c5f4 lw s3, 0x20d4(sp)             |         s3 = *(arg_20d4h);
    0x0000c5f8 lw s2, 0x20d0(sp)             |         s2 = *(arg_20d0h);
    0x0000c5fc lw s1, 0x20cc(sp)             |         s1 = *(arg_20cch);
    0x0000c600 lw s0, 0x20c8(sp)             |         s0 = *(arg_20c8h);
    0x0000c604 addiu v0, zero, -1            |         v0 = -1;
    0x0000c608 addiu sp, sp, 0x20f0          |         
    0x0000c60c jr ra                         |         return v0;
                                             | label_15:
    0x0000c610 addiu v0, v0, -0x42d8         |         v0 += -0x42d8;
    0x0000c614 sw v0, 0x20b0(sp)             |         *(arg_20b0h) = v0;
    0x0000c618 lw a0, -0x7fd8(gp)            |         a0 = *((gp - 8182));
                                             | label_19:
    0x0000c61c lw t9, 0x20b0(sp)             |         t9 = *(arg_20b0h);
    0x0000c620 move a3, fp                   |         a3 = fp;
    0x0000c624 move a2, s7                   |         a2 = s7;
    0x0000c628 addiu a1, zero, 1             |         a1 = 1;
    0x0000c62c addiu a0, a0, 0x6bc           |         a0 += 0x6bc;
    0x0000c630 jalr t9                       |         t9 ();
    0x0000c634 addiu s2, s1, 1               |         s2 = s1 + 1;
    0x0000c638 lw gp, 0x18(sp)               |         gp = *(arg_18h);
    0x0000c63c bltz v0, 0xc5dc               |         
                                             |     } while (v0 < 0);
                                             | label_2:
    0x0000c640 lw t9, -0x7fd8(gp)            |     t9 = *((gp - 8182));
                                             | label_3:
    0x0000c644 move a0, s2                   |     a0 = s2;
                                             | label_4:
    0x0000c648 sw fp, 0x10(sp)               |     *(arg_10h) = fp;
    0x0000c64c move a3, s7                   |     a3 = s7;
    0x0000c650 move a2, zero                 |     a2 = 0;
    0x0000c654 addiu t9, t9, -0x3e6c         |     t9 += -0x3e6c;
    0x0000c658 addiu a1, zero, 0x18          |     a1 = 0x18;
    0x0000c65c bal 0xc194                    |     fcn_0000c194 ();
    0x0000c660 move s2, v0                   |     s2 = v0;
    0x0000c664 lw gp, 0x18(sp)               |     gp = *(arg_18h);
                                             |     if (v0 >= 0) {
    0x0000c668 bgez v0, 0xc3ec               |         goto label_0;
                                             |     }
    0x0000c66c lw ra, 0x20ec(sp)             |     ra = *(arg_20ech);
    0x0000c670 b 0xc5e0                      |     goto label_1;
                                             | label_18:
    0x0000c674 lw v0, 0x2114(sp)             |     v0 = *(arg_2114h);
                                             |     if (v0 == v1) {
    0x0000c678 beq v0, v1, 0xc640            |         goto label_2;
                                             |     }
    0x0000c67c lb v0, 1(v0)                  |     v0 = *((v0 + 1));
    0x0000c680 lw t9, -0x7fd8(gp)            |     t9 = *((gp - 8182));
                                             |     if (v0 == 0) {
    0x0000c684 beqz v0, 0xc644               |         goto label_3;
                                             |     }
    0x0000c688 addu s0, s0, s1               |     s0 += s1;
    0x0000c68c lb v0, (s0)                   |     v0 = *(s0);
    0x0000c690 move a0, s2                   |     a0 = s2;
                                             |     if (v0 != 0) {
    0x0000c694 bnez v0, 0xc648               |         goto label_4;
                                             |     }
    0x0000c698 lb v1, -1(s0)                 |     v1 = *((s0 - 1));
    0x0000c69c b 0xc528                      |     goto label_5;
                                             | label_14:
    0x0000c970 lw a0, -0x7fd8(gp)            |     a0 = *((gp - 8182));
    0x0000c974 addiu fp, sp, 0x211c          |     fp = sp + 0x211c;
    0x0000c978 addiu s7, sp, 0x2118          |     s7 = sp + 0x2118;
    0x0000c97c lw v0, -0x7fd8(gp)            |     v0 = *((gp - 8182));
    0x0000c980 move a3, fp                   |     a3 = fp;
    0x0000c984 move a2, s7                   |     a2 = s7;
    0x0000c988 addiu a1, zero, 3             |     a1 = 3;
    0x0000c98c addiu a0, a0, 0x1510          |     a0 += 0x1510;
    0x0000c990 b 0xc3d4                      |     goto label_6;
                                             | label_11:
    0x0000c9b4 lw v1, 0x210c(sp)             |     v1 = *(arg_210ch);
    0x0000c9b8 lw a3, -0x7fd8(gp)            |     a3 = *((gp - 8182));
                                             |     if (v1 == 0) {
    0x0000c9bc beqz v1, 0xcdd8               |         goto label_20;
                                             |     }
    0x0000c9c0 lw a3, -0x7fd8(gp)            |     a3 = *((gp - 8182));
    0x0000c9c4 addiu a3, a3, 0x150c          |     a3 += 0x150c;
                                             | label_10:
    0x0000c9c8 lw a1, -0x7fd8(gp)            |     a1 = *((gp - 8182));
    0x0000c9cc lw t9, -0x7ecc(gp)            |     t9 = *((gp - 8115));
    0x0000c9d0 move a0, s4                   |     a0 = s4;
    0x0000c9d4 addiu a1, a1, 0x15f0          |     a1 += 0x15f0;
    0x0000c9d8 sw v0, 0x10(sp)               |     *(arg_10h) = v0;
    0x0000c9dc jalr t9                       |     t9 ();
    0x0000c9e0 lw t9, 0x20b0(sp)             |     t9 = *(arg_20b0h);
    0x0000c9e4 move a1, v0                   |     a1 = v0;
    0x0000c9e8 move a3, fp                   |     a3 = fp;
    0x0000c9ec move a2, s7                   |     a2 = s7;
    0x0000c9f0 move a0, s4                   |     a0 = s4;
    0x0000c9f4 jalr t9                       |     t9 ();
    0x0000c9f8 lw gp, 0x18(sp)               |     gp = *(arg_18h);
                                             |     if (v0 < 0) {
    0x0000c9fc bltz v0, 0xc5dc               |         goto label_7;
                                             |     }
    0x0000ca00 lw v0, 0x2108(sp)             |     v0 = *(arg_2108h);
    0x0000ca04 lw v1, 0x20b4(sp)             |     v1 = *(arg_20b4h);
    0x0000ca08 sltu v1, v0, v1               |     v1 = (v0 < v1) ? 1 : 0;
    0x0000ca0c move s3, v0                   |     s3 = v0;
                                             |     if (v1 == 0) {
    0x0000ca10 beqz v1, 0xcbd4               |         goto label_21;
                                             |     }
    0x0000ca14 addiu v1, sp, 0x2022          |     v1 = sp + 0x2022;
    0x0000ca18 sw v1, 0x20b8(sp)             |     *(arg_20b8h) = v1;
    0x0000ca1c lw v1, -0x7fd8(gp)            |     v1 = *((gp - 8182));
    0x0000ca20 lw s6, -0x7fd8(gp)            |     s6 = *((gp - 8182));
    0x0000ca24 addiu v1, v1, 0xdc4           |     v1 += 0xdc4;
    0x0000ca28 addiu s6, s6, 0x1600          |     s6 += 0x1600;
    0x0000ca2c sw v1, 0x20c0(sp)             |     *(arg_20c0h) = v1;
                                             | label_9:
    0x0000ca30 lw v1, 0x20b4(sp)             |     v1 = *(arg_20b4h);
    0x0000ca34 sb zero, 2(s4)                |     *((s4 + 2)) = 0;
    0x0000ca38 subu s2, v1, s3               |     __asm ("subu s2, v1, s3");
    0x0000ca3c addiu v1, zero, 0x90a         |     v1 = 0x90a;
    0x0000ca40 slti s3, s2, 0x11             |     s3 = (s2 < 0x11) ? 1 : 0;
    0x0000ca44 sh v1, (s4)                   |     *(s4) = v1;
    0x0000ca48 addiu v1, zero, 0x10          |     v1 = 0x10;
                                             |     if (s3 == 0) {
    0x0000ca4c movn v1, s2, s3               |         v1 = s2;
                                             |     }
    0x0000ca50 move s3, v1                   |     s3 = v1;
    0x0000ca54 lw s1, 0x20b8(sp)             |     s1 = *(arg_20b8h);
                                             |     if (s2 <= 0) {
    0x0000ca58 blez s2, 0xca94               |         goto label_22;
                                             |     }
    0x0000ca5c move s0, zero                 |     s0 = 0;
    0x0000ca60 b 0xca68                      |     
                                             |     while (v0 != 0) {
    0x0000ca64 lw v0, 0x2108(sp)             |         v0 = *(arg_2108h);
    0x0000ca68 addu v0, v0, s0               |         v0 += s0;
    0x0000ca6c lw t9, -0x7ecc(gp)            |         t9 = *((gp - 8115));
    0x0000ca70 lbu a2, (v0)                  |         a2 = *(v0);
    0x0000ca74 move a0, s1                   |         a0 = s1;
    0x0000ca78 move a1, s6                   |         a1 = s6;
    0x0000ca7c addiu s0, s0, 1               |         s0++;
    0x0000ca80 jalr t9                       |         t9 ();
    0x0000ca84 slt v0, s0, s3                |         v0 = (s0 < s3) ? 1 : 0;
    0x0000ca88 lw gp, 0x18(sp)               |         gp = *(arg_18h);
    0x0000ca8c addiu s1, s1, 3               |         s1 += 3;
    0x0000ca90 bnez v0, 0xca64               |         
                                             |     }
                                             | label_22:
    0x0000ca94 subu s1, s1, s4               |     __asm ("subu s1, s1, s4");
    0x0000ca98 lw t9, 0x20b0(sp)             |     t9 = *(arg_20b0h);
    0x0000ca9c move a3, fp                   |     a3 = fp;
    0x0000caa0 move a2, s7                   |     a2 = s7;
    0x0000caa4 move a1, s1                   |     a1 = s1;
    0x0000caa8 move a0, s4                   |     a0 = s4;
    0x0000caac jalr t9                       |     t9 ();
    0x0000cab0 lw gp, 0x18(sp)               |     gp = *(arg_18h);
                                             |     if (v0 < 0) {
    0x0000cab4 bltz v0, 0xc5dc               |         goto label_7;
                                             |     }
    0x0000cab8 slti v0, s2, 0x10             |     v0 = (s2 < 0x10) ? 1 : 0;
    0x0000cabc addiu v0, zero, 0x203b        |     v0 = 0x203b;
                                             |     if (v0 == 0) {
    0x0000cac0 beqz v0, 0xd498               |         goto label_23;
                                             |     }
    0x0000cac4 lw a0, 0x20c0(sp)             |     a0 = *(arg_20c0h);
    0x0000cac8 lw t9, 0x20b0(sp)             |     t9 = *(arg_20b0h);
    0x0000cacc move a3, fp                   |     a3 = fp;
    0x0000cad0 move a2, s7                   |     a2 = s7;
    0x0000cad4 addiu a1, zero, 1             |     a1 = 1;
    0x0000cad8 jalr t9                       |     t9 ();
    0x0000cadc lw t9, 0x20bc(sp)             |     t9 = *(arg_20bch);
                                             |     if (v0 < 0) {
    0x0000cae0 bltz v0, 0xc5dc               |         goto label_7;
                                             |     }
    0x0000cae4 sw fp, 0x10(sp)               |     *(arg_10h) = fp;
    0x0000cae8 move a3, s7                   |     a3 = s7;
    0x0000caec move a2, zero                 |     a2 = 0;
    0x0000caf0 addiu a1, zero, 0x30          |     a1 = 0x30;
    0x0000caf4 addiu a0, s1, 1               |     a0 = s1 + 1;
    0x0000caf8 jalr t9                       |     t9 ();
    0x0000cafc lw gp, 0x18(sp)               |     gp = *(arg_18h);
                                             |     if (v0 < 0) {
    0x0000cb00 bltz v0, 0xc5dc               |         goto label_7;
                                             |     }
    0x0000cb04 addiu v0, zero, 0x203b        |     v0 = 0x203b;
    0x0000cb08 sh v0, (s4)                   |     *(s4) = v0;
    0x0000cb0c sb zero, 2(s4)                |     *((s4 + 2)) = 0;
                                             |     if (s2 <= 0) {
    0x0000cb10 blez s2, 0xd4a4               |         goto label_24;
                                             |     }
                                             | label_12:
    0x0000cb14 lw s2, 0x2108(sp)             |     s2 = *(arg_2108h);
    0x0000cb18 lw s1, 0x20b8(sp)             |     s1 = *(arg_20b8h);
    0x0000cb1c addiu s5, zero, -0x80         |     s5 = -0x80;
    0x0000cb20 b 0xcb68                      |     
                                             |     while (v0 == 0) {
    0x0000cb24 jalr t9                       |         t9 ();
    0x0000cb28 nop                           |         
    0x0000cb2c lw v0, (v0)                   |         v0 = *(v0);
    0x0000cb30 sll v1, s0, 1                 |         v1 = s0 << 1;
    0x0000cb34 addu v0, v0, v1               |         v0 += v1;
    0x0000cb38 lhu v0, (v0)                  |         v0 = *(v0);
    0x0000cb3c andi v0, v0, 0x4000           |         v0 &= 0x4000;
    0x0000cb40 lw gp, 0x18(sp)               |         gp = *(arg_18h);
                                             |         if (v0 == 0) {
    0x0000cb44 beqz v0, 0xcb78               |             goto label_25;
                                             |         }
    0x0000cb48 addiu s1, s1, 1               |         s1++;
    0x0000cb4c subu v0, s1, s4               |         __asm ("subu v0, s1, s4");
    0x0000cb50 addiu v0, v0, -2              |         v0 += -2;
    0x0000cb54 seb s0, s0                    |         __asm ("seb s0, s0");
    0x0000cb58 slt v0, v0, s3                |         v0 = (v0 < s3) ? 1 : 0;
    0x0000cb5c sb s0, -1(s1)                 |         *((s1 - 1)) = s0;
    0x0000cb60 addiu s2, s2, 1               |         s2++;
                                             |         if (v0 == 0) {
    0x0000cb64 beqz v0, 0xcb98               |             goto label_13;
                                             |         }
                                             | label_8:
    0x0000cb68 lbu s0, (s2)                  |         s0 = *(s2);
    0x0000cb6c and v0, s0, s5                |         v0 = s0 & s5;
    0x0000cb70 lw t9, -0x7ef4(gp)            |         t9 = *((gp - 8125));
    0x0000cb74 beqz v0, 0xcb24               |         
                                             |     }
                                             | label_25:
    0x0000cb78 addiu s1, s1, 1               |     s1++;
    0x0000cb7c subu v0, s1, s4               |     __asm ("subu v0, s1, s4");
    0x0000cb80 addiu v0, v0, -2              |     v0 += -2;
    0x0000cb84 addiu s0, zero, 0x2e          |     s0 = 0x2e;
    0x0000cb88 slt v0, v0, s3                |     v0 = (v0 < s3) ? 1 : 0;
    0x0000cb8c sb s0, -1(s1)                 |     *((s1 - 1)) = s0;
    0x0000cb90 addiu s2, s2, 1               |     s2++;
                                             |     if (v0 != 0) {
    0x0000cb94 bnez v0, 0xcb68               |         goto label_8;
                                             |     }
                                             | label_13:
    0x0000cb98 lw t9, 0x20b0(sp)             |     t9 = *(arg_20b0h);
    0x0000cb9c move a3, fp                   |     a3 = fp;
    0x0000cba0 move a2, s7                   |     a2 = s7;
    0x0000cba4 subu a1, s1, s4               |     __asm ("subu a1, s1, s4");
    0x0000cba8 move a0, s4                   |     a0 = s4;
    0x0000cbac jalr t9                       |     t9 ();
    0x0000cbb0 lw gp, 0x18(sp)               |     gp = *(arg_18h);
                                             |     if (v0 < 0) {
    0x0000cbb4 bltz v0, 0xc5dc               |         goto label_7;
                                             |     }
    0x0000cbb8 lw v0, 0x2108(sp)             |     v0 = *(arg_2108h);
    0x0000cbbc addu s3, v0, s3               |     s3 = v0 + s3;
    0x0000cbc0 lw v0, 0x20b4(sp)             |     v0 = *(arg_20b4h);
    0x0000cbc4 sw s3, 0x2108(sp)             |     *(arg_2108h) = s3;
    0x0000cbc8 sltu v1, s3, v0               |     v1 = (s3 < v0) ? 1 : 0;
    0x0000cbcc move v0, s3                   |     v0 = s3;
                                             |     if (v1 != 0) {
    0x0000cbd0 bnez v1, 0xca30               |         goto label_9;
                                             |     }
                                             | label_21:
    0x0000cbd4 lw v0, 0x2118(sp)             |     v0 = *(arg_2118h);
    0x0000cbd8 lw v1, 0x20c4(sp)             |     v1 = *(arg_20c4h);
    0x0000cbdc lw ra, 0x20ec(sp)             |     ra = *(arg_20ech);
    0x0000cbe0 lw fp, 0x20e8(sp)             |     fp = *(arg_20e8h);
    0x0000cbe4 lw s7, 0x20e4(sp)             |     s7 = *(arg_20e4h);
    0x0000cbe8 lw s6, 0x20e0(sp)             |     s6 = *(arg_20e0h);
    0x0000cbec lw s5, 0x20dc(sp)             |     s5 = *(arg_20dch);
    0x0000cbf0 lw s4, 0x20d8(sp)             |     s4 = *(arg_20d8h);
    0x0000cbf4 lw s3, 0x20d4(sp)             |     s3 = *(arg_20d4h);
    0x0000cbf8 lw s2, 0x20d0(sp)             |     s2 = *(arg_20d0h);
    0x0000cbfc lw s1, 0x20cc(sp)             |     s1 = *(arg_20cch);
    0x0000cc00 lw s0, 0x20c8(sp)             |     s0 = *(arg_20c8h);
    0x0000cc04 subu v0, v0, v1               |     __asm ("subu v0, v0, v1");
    0x0000cc08 addiu sp, sp, 0x20f0          |     
    0x0000cc0c jr ra                         |     return v0;
                                             | label_20:
    0x0000cdd8 addiu a3, a3, 0x1518          |     a3 += 0x1518;
    0x0000cddc b 0xc9c8                      |     goto label_10;
                                             | label_17:
    0x0000d460 lw a2, -0x7fd8(gp)            |     a2 = *((gp - 8182));
    0x0000d464 lw t9, -0x7e9c(gp)            |     t9 = *((gp - 8103));
    0x0000d468 addiu s0, sp, 0x20            |     s0 = sp + 0x20;
    0x0000d46c addiu a2, a2, 0x15dc          |     a2 += 0x15dc;
    0x0000d470 move a3, s5                   |     a3 = s5;
    0x0000d474 addiu a1, zero, 0x28          |     a1 = 0x28;
    0x0000d478 move a0, s0                   |     a0 = s0;
    0x0000d47c jalr t9                       |     t9 ();
    0x0000d480 lw a2, 0x2108(sp)             |     a2 = *(arg_2108h);
    0x0000d484 lw v1, 0x20b4(sp)             |     v1 = *(arg_20b4h);
    0x0000d488 lw gp, 0x18(sp)               |     gp = *(arg_18h);
    0x0000d48c move v0, s0                   |     v0 = s0;
    0x0000d490 subu a2, v1, a2               |     __asm ("subu a2, v1, a2");
    0x0000d494 b 0xc9b4                      |     goto label_11;
                                             | label_23:
    0x0000d498 sh v0, (s4)                   |     *(s4) = v0;
    0x0000d49c sb zero, 2(s4)                |     *((s4 + 2)) = 0;
    0x0000d4a0 b 0xcb14                      |     goto label_12;
                                             | label_24:
    0x0000d4a4 lw s1, 0x20b8(sp)             |     s1 = *(arg_20b8h);
    0x0000d4a8 b 0xcb98                      |     goto label_13;
                                             | label_16:
    0x0000db30 lw t9, -0x7fdc(gp)            |     t9 = *((gp - 8183));
    0x0000db34 addiu t9, t9, 0x24f0          |     t9 += entry0;
    0x0000db38 bal 0x24f0                    |     entry0 ();
    0x0000db3c nop                           |     
                                             | }

[*] Function popen used 1 times libresolv-2.27.so