[*] Binary protection state of mdnsd

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


[*] Function fprintf tear down of mdnsd

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/mdnsd @ 0x5fc8 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00005fc8 ()              | void fcn_00005fc8 () {
    0x00005fc8 lui gp, 7                 |     
    0x00005fcc addiu gp, gp, -0xf58      |     
    0x00005fd0 addu gp, gp, t9           |     gp += t9;
    0x00005fd4 addiu sp, sp, -0x23d8     |     
    0x00005fd8 sw s0, 0x23b0(sp)         |     *(arg_23b0h) = s0;
    0x00005fdc lw s0, -0x794c(gp)        |     s0 = *((gp - 7763));
    0x00005fe0 sw s7, 0x23cc(sp)         |     *(arg_23cch) = s7;
    0x00005fe4 sw s6, 0x23c8(sp)         |     *(arg_23c8h) = s6;
    0x00005fe8 sw s3, 0x23bc(sp)         |     *(arg_23bch) = s3;
    0x00005fec sw gp, 0x20(sp)           |     *(arg_20h) = gp;
    0x00005ff0 sw ra, 0x23d4(sp)         |     *(arg_23d4h) = ra;
    0x00005ff4 sw fp, 0x23d0(sp)         |     *(arg_23d0h) = fp;
    0x00005ff8 sw s5, 0x23c4(sp)         |     *(arg_23c4h) = s5;
    0x00005ffc sw s4, 0x23c0(sp)         |     *(arg_23c0h) = s4;
    0x00006000 sw s2, 0x23b8(sp)         |     *(arg_23b8h) = s2;
    0x00006004 sw s1, 0x23b4(sp)         |     *(arg_23b4h) = s1;
    0x00006008 lw v0, (s0)               |     v0 = *(s0);
    0x0000600c move s3, a0               |     s3 = a0;
    0x00006010 move s7, a1               |     s7 = a1;
    0x00006014 move a0, a2               |     a0 = a2;
    0x00006018 sw v0, 0x23ac(sp)         |     *(arg_23ach) = v0;
    0x0000601c move s6, zero             |     s6 = 0;
                                         |     if (a1 != 0) {
    0x00006020 beqz a1, 0x6028           |         
    0x00006024 lw s6, 0x19a0(a1)         |         s6 = *((a1 + 1640));
                                         |     }
    0x00006028 lw a3, -0x7fc4(gp)        |     a3 = *(gp);
                                         |     if (s3 != 0) {
    0x0000602c bnez s3, 0x6054           |         goto label_1;
                                         |     }
    0x00006030 lw a1, -0x7fc4(gp)        |     a1 = *(gp);
    0x00006034 lw a0, -0x7fc4(gp)        |     a0 = *(gp);
                                         |     /* str.SocketDataReady */
    0x00006038 addiu a3, a3, -0x4650     |     a3 += -0x4650;
    0x0000603c addiu a2, zero, 0xf6      |     a2 = 0xf6;
                                         |     /* str.mDNSPosix.c */
    0x00006040 addiu a1, a1, -0x4ad0     |     a1 += -0x4ad0;
                                         |     /* str.m___NULL */
    0x00006044 addiu a0, a0, -0x4ac4     |     a0 += -0x4ac4;
                                         |     do {
    0x00006048 lw t9, -0x7a4c(gp)        |         t9 = sym.imp.__assert_fail;
    0x0000604c jalr t9                   |         t9 ();
    0x00006050 nop                       |         
                                         | label_1:
    0x00006054 addiu v0, zero, 0x1c      |         v0 = 0x1c;
                                         |         if (a0 >= 0) {
    0x00006058 bgez a0, 0x607c           |             goto label_2;
                                         |         }
    0x0000605c lw a3, -0x7fc4(gp)        |         a3 = *(gp);
    0x00006060 lw a1, -0x7fc4(gp)        |         a1 = *(gp);
    0x00006064 lw a0, -0x7fc4(gp)        |         a0 = *(gp);
                                         |         /* str.SocketDataReady */
    0x00006068 addiu a3, a3, -0x4650     |         a3 += -0x4650;
    0x0000606c addiu a2, zero, 0xf7      |         a2 = 0xf7;
                                         |         /* str.mDNSPosix.c */
    0x00006070 addiu a1, a1, -0x4ad0     |         a1 += -0x4ad0;
                                         |         /* str.skt___0 */
    0x00006074 addiu a0, a0, -0x4ab8     |         a0 += -0x4ab8;
    0x00006078 b 0x6048                  |         
                                         |     } while (1);
                                         | label_2:
    0x0000607c sw v0, 0x34(sp)           |     *(arg_34h) = v0;
    0x00006080 addiu v0, sp, 0x33        |     v0 = sp + 0x33;
    0x00006084 lw t9, -0x7f5c(gp)        |     t9 = sym.recvfrom_flags;
    0x00006088 sw v0, 0x1c(sp)           |     *(arg_1ch) = v0;
    0x0000608c addiu s1, sp, 0xb4        |     s1 = sp + 0xb4;
    0x00006090 addiu v0, sp, 0x34        |     v0 = sp + 0x34;
    0x00006094 addiu fp, sp, 0x84        |     fp = sp + 0x84;
    0x00006098 addiu s2, sp, 0x68        |     s2 = sp + 0x68;
    0x0000609c sw zero, 0x38(sp)         |     *(arg_38h) = 0;
    0x000060a0 sw fp, 0x18(sp)           |     *(arg_18h) = fp;
    0x000060a4 sw v0, 0x14(sp)           |     *(arg_14h) = v0;
    0x000060a8 sw s2, 0x10(sp)           |     *(arg_10h) = s2;
    0x000060ac addiu a3, sp, 0x38        |     a3 = sp + 0x38;
    0x000060b0 addiu a2, zero, 0x22f8    |     a2 = 0x22f8;
    0x000060b4 move a1, s1               |     a1 = s1;
    0x000060b8 bal 0x98f4                |     sym_recvfrom_flags ();
    0x000060bc move s4, v0               |     s4 = v0;
    0x000060c0 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 < 0) {
    0x000060c4 bltz v0, 0x61ec           |         goto label_3;
                                         |     }
    0x000060c8 lw t9, -0x7f9c(gp)        |     t9 = *((gp - 8167));
    0x000060cc addiu s5, sp, 0x40        |     s5 = sp + 0x40;
    0x000060d0 addiu t9, t9, 0x5f10      |     t9 += fcn.00005f10;
    0x000060d4 move a0, s2               |     a0 = s2;
    0x000060d8 addiu a2, sp, 0x3c        |     a2 = sp + 0x3c;
    0x000060dc move a1, s5               |     a1 = s5;
    0x000060e0 sw t9, 0x2c(sp)           |     *(arg_2ch) = t9;
    0x000060e4 bal 0x5f10                |     fcn_00005f10 ();
    0x000060e8 addiu s2, sp, 0x54        |     s2 = sp + 0x54;
    0x000060ec lw t9, 0x2c(sp)           |     t9 = *(arg_2ch);
    0x000060f0 move a2, zero             |     a2 = 0;
    0x000060f4 move a1, s2               |     a1 = s2;
    0x000060f8 move a0, fp               |     a0 = fp;
    0x000060fc jalr t9                   |     t9 ();
    0x00006100 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (s7 == 0) {
    0x00006104 bnez s7, 0x6158           |         
    0x00006108 lw t9, -0x7f58(gp)        |         t9 = sym.mDNSAddrIsDNSMulticast;
    0x0000610c move a0, s2               |         a0 = s2;
    0x00006110 jalr t9                   |         t9 ();
    0x00006114 lw gp, 0x20(sp)           |         gp = *(arg_20h);
                                         |         if (v0 != 0) {
    0x00006118 bnez v0, 0x61ec           |             goto label_3;
                                         |         }
                                         | label_0:
    0x0000611c lw v0, -0x7f54(gp)        |         v0 = *((gp - 8149));
    0x00006120 lw t9, -0x7f50(gp)        |         t9 = sym.mDNSCoreReceive;
    0x00006124 sw s6, 0x1c(sp)           |         *(arg_1ch) = s6;
    0x00006128 lhu v0, (v0)              |         v0 = *(v0);
    0x0000612c sw s2, 0x14(sp)           |         *(arg_14h) = s2;
    0x00006130 sh v0, 0x18(sp)           |         *(arg_18h) = v0;
    0x00006134 lhu v0, 0x3c(sp)          |         v0 = *(arg_3ch);
    0x00006138 move a3, s5               |         a3 = s5;
    0x0000613c sh v0, 0x10(sp)           |         *(arg_10h) = v0;
    0x00006140 addu a2, s1, s4           |         a2 = s1 + s4;
    0x00006144 move a1, s1               |         a1 = s1;
    0x00006148 move a0, s3               |         a0 = s3;
    0x0000614c bal 0x211f8               |         sym_mDNSCoreReceive ();
    0x00006150 lw gp, 0x20(sp)           |         gp = *(arg_20h);
    0x00006154 b 0x61ec                  |         goto label_3;
                                         |     }
    0x00006158 lb v0, 0xa4(sp)           |     v0 = *(arg_a4h);
    0x0000615c lw fp, -0x7fc8(gp)        |     fp = *((gp - 8178));
                                         |     if (v0 == 0) {
    0x00006160 beqz v0, 0x6208           |         goto label_4;
                                         |     }
    0x00006164 lw t9, -0x791c(gp)        |     t9 = sym.imp.strcmp;
    0x00006168 lw a1, 0x1a20(s7)         |     a1 = *((s7 + 1672));
    0x0000616c addiu a0, sp, 0xa4        |     a0 = sp + 0xa4;
    0x00006170 jalr t9                   |     t9 ();
    0x00006174 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     do {
    0x00006178 sltu v0, zero, v0         |         v0 = (0 < v0) ? 1 : 0;
    0x0000617c lw v0, 0x392c(fp)         |         v0 = *(arg_392ch);
                                         |         if (v0 == 0) {
    0x00006180 beqz v0, 0x6224           |             goto label_5;
                                         |         }
    0x00006184 lw v0, -0x7fc8(gp)        |         v0 = *((gp - 8178));
    0x00006188 lw a3, 0x392c(fp)         |         a3 = *(arg_392ch);
    0x0000618c lw s1, -0x7fc8(gp)        |         s1 = *((gp - 8178));
    0x00006190 lw v0, 0x3930(v0)         |         v0 = *((v0 + 3660));
    0x00006194 addiu a0, a3, 1           |         a0 = a3 + 1;
    0x00006198 addiu v0, v0, 1           |         v0++;
    0x0000619c mul v0, v0, a0            |         __asm ("mul v0, v0, a0");
    0x000061a0 lw v1, 0x3928(s1)         |         v1 = *((s1 + 3658));
    0x000061a4 addiu v1, v1, 1           |         v1++;
    0x000061a8 sll v0, v0, 1             |         v0 <<= 1;
    0x000061ac slt v0, v0, v1            |         v0 = (v0 < v1) ? 1 : 0;
    0x000061b0 sw v1, 0x3928(s1)         |         *((s1 + 3658)) = v1;
                                         |         if (v0 != 0) {
    0x000061b4 beqz v0, 0x61ec           |             
    0x000061b8 lw v0, -0x7934(gp)        |             v0 = *((gp - 7757));
    0x000061bc sw a3, 0x10(sp)           |             *(arg_10h) = a3;
    0x000061c0 lw a2, -0x7fc4(gp)        |             a2 = *(gp);
    0x000061c4 sw v1, 0x14(sp)           |             *(arg_14h) = v1;
    0x000061c8 lw t9, -0x7a20(gp)        |             t9 = *(gp);
    0x000061cc lw a0, (v0)               |             a0 = *(v0);
    0x000061d0 addu a3, v1, a3           |             a3 = v1 + a3;
                                         |             /* str._WARNING:_Received__d_packets__Accepted__d_packets__Rejected__d_packets_because_of_interface_mismatch_n */
    0x000061d4 addiu a2, a2, -0x4aac     |             a2 += -0x4aac;
    0x000061d8 addiu a1, zero, 1         |             a1 = 1;
    0x000061dc jalr t9                   |             t9 ();
    0x000061e0 lw gp, 0x20(sp)           |             gp = *(arg_20h);
    0x000061e4 sw zero, 0x392c(fp)       |             *(arg_392ch) = 0;
    0x000061e8 sw zero, 0x3928(s1)       |             *((s1 + 3658)) = 0;
                                         |         }
                                         | label_3:
    0x000061ec lw v1, 0x23ac(sp)         |         v1 = *(arg_23ach);
    0x000061f0 lw v0, (s0)               |         v0 = *(s0);
    0x000061f4 lw ra, 0x23d4(sp)         |         ra = *(arg_23d4h);
                                         |         if (v1 == v0) {
    0x000061f8 beq v1, v0, 0x6230        |             goto label_6;
                                         |         }
    0x000061fc lw t9, -0x7964(gp)        |         t9 = *(gp);
    0x00006200 jalr t9                   |         t9 ();
    0x00006204 nop                       |         
                                         | label_4:
    0x00006208 lw v1, 0xa0(sp)           |         v1 = *(arg_a0h);
    0x0000620c addiu v0, zero, -1        |         v0 = -1;
                                         |         if (v1 == v0) {
    0x00006210 beql v1, v0, 0x6224       |             goto label_5;
                                         |         }
    0x00006214 lw v0, 0x392c(fp)         |         v0 = *(arg_392ch);
    0x00006218 lw v0, 0x1a28(s7)         |         v0 = *((s7 + 1674));
    0x0000621c xor v0, v0, v1            |         v0 ^= v1;
    0x00006220 b 0x6178                  |         
                                         |     } while (1);
                                         | label_5:
    0x00006224 addiu v0, v0, 1           |     v0++;
    0x00006228 sw v0, 0x392c(fp)         |     *(arg_392ch) = v0;
    0x0000622c b 0x611c                  |     goto label_0;
                                         | label_6:
    0x00006230 lw fp, 0x23d0(sp)         |     fp = *(arg_23d0h);
    0x00006234 lw s7, 0x23cc(sp)         |     s7 = *(arg_23cch);
    0x00006238 lw s6, 0x23c8(sp)         |     s6 = *(arg_23c8h);
    0x0000623c lw s5, 0x23c4(sp)         |     s5 = *(arg_23c4h);
    0x00006240 lw s4, 0x23c0(sp)         |     s4 = *(arg_23c0h);
    0x00006244 lw s3, 0x23bc(sp)         |     s3 = *(arg_23bch);
    0x00006248 lw s2, 0x23b8(sp)         |     s2 = *(arg_23b8h);
    0x0000624c lw s1, 0x23b4(sp)         |     s1 = *(arg_23b4h);
    0x00006250 lw s0, 0x23b0(sp)         |     s0 = *(arg_23b0h);
    0x00006254 addiu sp, sp, 0x23d8      |     
    0x00006258 jr ra                     |     return v0;
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/mdnsd @ 0x7538 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00007538 ()              | void fcn_00007538 () {
    0x00007538 lui gp, 7                 |     
    0x0000753c addiu gp, gp, -0x24c8     |     
    0x00007540 addu gp, gp, t9           |     gp += t9;
    0x00007544 addiu sp, sp, -0x38       |     
    0x00007548 sw gp, 0x10(sp)           |     *(var_10h) = gp;
    0x0000754c sw s5, 0x2c(sp)           |     *(var_2ch) = s5;
    0x00007550 sw ra, 0x34(sp)           |     *(var_34h) = ra;
    0x00007554 sw s6, 0x30(sp)           |     *(var_30h) = s6;
    0x00007558 sw s4, 0x28(sp)           |     *(var_28h) = s4;
    0x0000755c sw s3, 0x24(sp)           |     *(var_24h) = s3;
    0x00007560 sw s2, 0x20(sp)           |     *(var_20h) = s2;
    0x00007564 sw s1, 0x1c(sp)           |     *(var_1ch) = s1;
    0x00007568 sw s0, 0x18(sp)           |     *(var_18h) = s0;
    0x0000756c lw s5, 0x48(sp)           |     s5 = *(arg_48h);
                                         |     if (a0 != 0) {
    0x00007570 bnez a0, 0x759c           |         goto label_3;
                                         |     }
    0x00007574 lw a3, -0x7fc4(gp)        |     a3 = *(gp);
    0x00007578 lw a1, -0x7fc4(gp)        |     a1 = *(gp);
    0x0000757c lw a0, -0x7fc4(gp)        |     a0 = *(gp);
                                         |     /* str.SetupOneInterface */
    0x00007580 addiu a3, a3, -0x45e4     |     a3 += -0x45e4;
    0x00007584 addiu a2, zero, 0x379     |     a2 = 0x379;
                                         |     /* str.mDNSPosix.c */
    0x00007588 addiu a1, a1, -0x4ad0     |     a1 += -0x4ad0;
                                         |     /* str.m___NULL */
    0x0000758c addiu a0, a0, -0x4ac4     |     a0 += -0x4ac4;
                                         |     do {
                                         | label_0:
    0x00007590 lw t9, -0x7a4c(gp)        |         t9 = sym.imp.__assert_fail;
    0x00007594 jalr t9                   |         t9 ();
    0x00007598 nop                       |         
                                         | label_3:
    0x0000759c move s3, a1               |         s3 = a1;
                                         |         if (a1 != 0) {
    0x000075a0 bnez a1, 0x75c4           |             goto label_4;
                                         |         }
    0x000075a4 lw a3, -0x7fc4(gp)        |         a3 = *(gp);
    0x000075a8 lw a1, -0x7fc4(gp)        |         a1 = *(gp);
    0x000075ac lw a0, -0x7fc4(gp)        |         a0 = *(gp);
                                         |         /* str.SetupOneInterface */
    0x000075b0 addiu a3, a3, -0x45e4     |         a3 += -0x45e4;
    0x000075b4 addiu a2, zero, 0x37a     |         a2 = 0x37a;
                                         |         /* str.mDNSPosix.c */
    0x000075b8 addiu a1, a1, -0x4ad0     |         a1 += -0x4ad0;
                                         |         /* str.intfAddr___NULL */
    0x000075bc addiu a0, a0, -0x4914     |         a0 += -0x4914;
    0x000075c0 b 0x7590                  |         
                                         |     } while (1);
                                         | label_4:
    0x000075c4 move s6, a2               |     s6 = a2;
                                         |     if (a2 == 0) {
    0x000075c8 bnez a2, 0x75ec           |         
    0x000075cc lw a3, -0x7fc4(gp)        |         a3 = *(gp);
    0x000075d0 lw a1, -0x7fc4(gp)        |         a1 = *(gp);
    0x000075d4 lw a0, -0x7fc4(gp)        |         a0 = *(gp);
                                         |         /* str.SetupOneInterface */
    0x000075d8 addiu a3, a3, -0x45e4     |         a3 += -0x45e4;
    0x000075dc addiu a2, zero, 0x37c     |         a2 = 0x37c;
                                         |         /* str.mDNSPosix.c */
    0x000075e0 addiu a1, a1, -0x4ad0     |         a1 += -0x4ad0;
                                         |         /* str.intfMask___NULL */
    0x000075e4 addiu a0, a0, -0x4718     |         a0 += -0x4718;
    0x000075e8 b 0x7590                  |         goto label_0;
                                         |     }
    0x000075ec lw t9, -0x7a54(gp)        |     t9 = sym.imp.calloc;
    0x000075f0 move s4, a0               |     s4 = a0;
    0x000075f4 addiu a1, zero, 0x1a34    |     a1 = 0x1a34;
    0x000075f8 addiu a0, zero, 1         |     a0 = 1;
    0x000075fc move s2, a3               |     s2 = a3;
    0x00007600 jalr t9                   |     t9 ();
    0x00007604 move s0, v0               |     s0 = v0;
    0x00007608 lw gp, 0x10(sp)           |     gp = *(var_10h);
                                         |     if (v0 != 0) {
    0x0000760c bnez v0, 0x7630           |         goto label_5;
                                         |     }
    0x00007610 lw a3, -0x7fc4(gp)        |     a3 = *(gp);
    0x00007614 addiu a2, zero, 0x380     |     a2 = 0x380;
                                         |     /* str.SetupOneInterface */
    0x00007618 addiu a3, a3, -0x45e4     |     a3 += -0x45e4;
                                         |     do {
    0x0000761c lw a1, -0x7fc4(gp)        |         a1 = *(gp);
    0x00007620 lw a0, -0x7fc4(gp)        |         a0 = *(gp);
                                         |         /* str.mDNSPosix.c */
    0x00007624 addiu a1, a1, -0x4ad0     |         a1 += -0x4ad0;
                                         |         /* esilref: ' ' */
    0x00007628 addiu a0, a0, -0x44c0     |         a0 += -0x44c0;
    0x0000762c b 0x7590                  |         goto label_0;
                                         | label_5:
    0x00007630 lw t9, -0x7940(gp)        |         t9 = sym.imp.strdup;
    0x00007634 move a0, s2               |         a0 = s2;
    0x00007638 jalr t9                   |         t9 ();
    0x0000763c sw v0, 0x1a20(s0)         |         *((s0 + 1672)) = v0;
    0x00007640 lw gp, 0x10(sp)           |         gp = *(var_10h);
                                         |         if (v0 != 0) {
    0x00007644 bnez v0, 0x7658           |             goto label_6;
                                         |         }
    0x00007648 lw a3, -0x7fc4(gp)        |         a3 = *(gp);
    0x0000764c addiu a2, zero, 0x386     |         a2 = 0x386;
                                         |         /* str.SetupOneInterface */
    0x00007650 addiu a3, a3, -0x45e4     |         a3 += -0x45e4;
    0x00007654 b 0x761c                  |         
                                         |     } while (1);
                                         | label_6:
    0x00007658 lw s1, -0x7f9c(gp)        |     s1 = *((gp - 8167));
    0x0000765c move a2, zero             |     a2 = 0;
    0x00007660 addiu s1, s1, 0x5f10      |     s1 += fcn.00005f10;
    0x00007664 addiu a1, s0, 0x19a4      |     a1 = s0 + 0x19a4;
    0x00007668 move t9, s1               |     t9 = s1;
    0x0000766c move a0, s3               |     a0 = s3;
    0x00007670 bal 0x5f10                |     fcn_00005f10 ();
    0x00007674 move a2, zero             |     a2 = 0;
    0x00007678 addiu a1, s0, 0x19b8      |     a1 = s0 + 0x19b8;
    0x0000767c move t9, s1               |     t9 = s1;
    0x00007680 move a0, s6               |     a0 = s6;
    0x00007684 bal 0x5f10                |     fcn_00005f10 ();
    0x00007688 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x0000768c move a1, s2               |     a1 = s2;
    0x00007690 addiu a2, zero, 0x40      |     a2 = 0x40;
    0x00007694 lw t9, -0x79dc(gp)        |     t9 = sym.imp.strncpy;
    0x00007698 addiu a0, s0, 0x19d2      |     a0 = s0 + 0x19d2;
    0x0000769c jalr t9                   |     t9 ();
    0x000076a0 lbu v0, 9(s4)             |     v0 = *((s4 + 9));
    0x000076a4 lw s2, 0x1a20(s0)         |     s2 = *((s0 + 1672));
    0x000076a8 sb v0, 0x1a12(s0)         |     *((s0 + 6674)) = v0;
    0x000076ac addiu v0, zero, 1         |     v0 = 1;
    0x000076b0 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x000076b4 sb zero, 0x1a11(s0)       |     *((s0 + 6673)) = 0;
    0x000076b8 sb v0, 0x1a13(s0)         |     *((s0 + 6675)) = v0;
                                         |     if (s2 == 0) {
    0x000076bc bnez s2, 0x76e0           |         
    0x000076c0 lw a3, -0x7fc4(gp)        |         a3 = *(gp);
    0x000076c4 lw a1, -0x7fc4(gp)        |         a1 = *(gp);
    0x000076c8 lw a0, -0x7fc4(gp)        |         a0 = *(gp);
                                         |         /* str.SetupOneInterface */
    0x000076cc addiu a3, a3, -0x45e4     |         a3 += -0x45e4;
    0x000076d0 addiu a2, zero, 0x396     |         a2 = 0x396;
                                         |         /* str.mDNSPosix.c */
    0x000076d4 addiu a1, a1, -0x4ad0     |         a1 += -0x4ad0;
                                         |         /* str.intf__intfName___NULL */
    0x000076d8 addiu a0, a0, -0x4704     |         a0 += -0x4704;
    0x000076dc b 0x7590                  |         goto label_0;
                                         |     }
    0x000076e0 addiu v0, zero, -1        |     v0 = -1;
    0x000076e4 lw s1, 0x216c(s4)         |     s1 = *((s4 + 2139));
    0x000076e8 sw s5, 0x1a28(s0)         |     *((s0 + 1674)) = s5;
    0x000076ec sw v0, 0x1a2c(s0)         |     *((s0 + 1675)) = v0;
    0x000076f0 sw v0, 0x1a30(s0)         |     *((s0 + 1676)) = v0;
                                         |     do {
    0x000076f4 lw t9, -0x791c(gp)        |         t9 = sym.imp.strcmp;
                                         |         if (s1 == 0) {
    0x000076f8 beqz s1, 0x781c           |             goto label_7;
                                         |         }
    0x000076fc lw a0, 0x1a20(s1)         |         a0 = *((s1 + 1672));
    0x00007700 move a1, s2               |         a1 = s2;
    0x00007704 jalr t9                   |         t9 ();
    0x00007708 lw gp, 0x10(sp)           |         gp = *(var_10h);
                                         |         if (v0 == 0) {
    0x0000770c bnez v0, 0x7814           |             
                                         | label_1:
    0x00007710 sw s1, 0x19a0(s0)         |             *((s0 + 1640)) = s1;
    0x00007714 lw v1, 0x1a2c(s1)         |             v1 = *((s1 + 1675));
    0x00007718 addiu v0, zero, -1        |             v0 = -1;
    0x0000771c lw v1, 0x1a30(s1)         |             v1 = *((s1 + 1676));
                                         |             if (v1 != v0) {
    0x00007720 bnel v1, v0, 0x773c       |                 
    0x00007724 lhu v1, (s3)              |                 v1 = *(s3);
    0x00007728 addiu v0, zero, 2         |                 v0 = 2;
    0x0000772c addiu a3, s1, 0x1a2c      |                 a3 = s1 + 0x1a2c;
                                         |                 if (v1 == v0) {
    0x00007730 beq v1, v0, 0x7758        |                     goto label_8;
                                         |                 }
    0x00007734 lw v1, 0x1a30(s1)         |                 v1 = *((s1 + 1676));
    0x00007738 addiu v0, zero, -1        |                 v0 = -1;
                                         |             }
    0x0000773c move s2, zero             |             s2 = 0;
                                         |             if (v1 == v0) {
    0x00007740 bne v1, v0, 0x777c        |                 
    0x00007744 lhu v1, (s3)              |                 v1 = *(s3);
    0x00007748 addiu v0, zero, 0xa       |                 v0 = 0xa;
    0x0000774c addiu v0, zero, 0x100     |                 v0 = aav.0x00000100;
                                         |                 if (v1 != v0) {
    0x00007750 bne v1, v0, 0x7780        |                     goto label_9;
                                         |                 }
    0x00007754 addiu a3, s1, 0x1a30      |                 a3 = s1 + 0x1a30;
                                         | label_8:
    0x00007758 lw v0, -0x7f54(gp)        |                 v0 = *((gp - 8149));
    0x0000775c lw t9, -0x7f9c(gp)        |                 t9 = *((gp - 8167));
    0x00007760 move a2, s5               |                 a2 = s5;
    0x00007764 lhu a1, (v0)              |                 a1 = *(v0);
    0x00007768 addiu t9, t9, 0x69d0      |                 t9 += fcn.000069d0;
    0x0000776c move a0, s3               |                 a0 = s3;
    0x00007770 bal 0x69d0                |                 fcn_000069d0 ();
    0x00007774 lw gp, 0x10(sp)           |                 gp = *(var_10h);
    0x00007778 move s2, v0               |                 s2 = v0;
                                         |             }
    0x0000777c addiu v0, zero, 0x100     |             v0 = aav.0x00000100;
                                         | label_9:
    0x00007780 sh v0, 0x1a18(s0)         |             *((s0 + 3340)) = v0;
                                         |             if (s2 != 0) {
    0x00007784 bnez s2, 0x7824           |                 goto label_10;
                                         |             }
    0x00007788 lw t9, -0x7f30(gp)        |             t9 = sym.mDNS_RegisterInterface;
    0x0000778c addiu a2, zero, 1         |             a2 = 1;
    0x00007790 move a1, s0               |             a1 = s0;
    0x00007794 move a0, s4               |             a0 = s4;
    0x00007798 bal 0x240d0               |             sym_mDNS_RegisterInterface ();
    0x0000779c move s2, v0               |             s2 = v0;
    0x000077a0 lw gp, 0x10(sp)           |             gp = *(var_10h);
                                         |             if (v0 != 0) {
    0x000077a4 bnez v0, 0x7824           |                 goto label_10;
                                         |             }
    0x000077a8 lw v1, -0x7fc8(gp)        |             v1 = *((gp - 8178));
    0x000077ac lw v0, 0x3930(v1)         |             v0 = *((v1 + 3660));
    0x000077b0 addiu v0, v0, 1           |             v0++;
    0x000077b4 sw v0, 0x3930(v1)         |             *((v1 + 3660)) = v0;
    0x000077b8 lw v0, -0x7f2c(gp)        |             v0 = *(gp);
    0x000077bc lw v0, (v0)               |             v0 = *(v0);
    0x000077c0 lw ra, 0x34(sp)           |             ra = *(var_34h);
                                         |             if (v0 > 0) {
    0x000077c4 blez v0, 0x77ec           |                 
    0x000077c8 lw v0, -0x7934(gp)        |                 v0 = *((gp - 7757));
    0x000077cc lw a2, -0x7fc4(gp)        |                 a2 = *(gp);
    0x000077d0 lw a3, 0x1a20(s0)         |                 a3 = *((s0 + 1672));
    0x000077d4 lw a0, (v0)               |                 a0 = *(v0);
    0x000077d8 lw t9, -0x7a20(gp)        |                 t9 = *(gp);
                                         |                 /* str.Registered_interface__s_n */
    0x000077dc addiu a2, a2, -0x46ec     |                 a2 += -0x46ec;
    0x000077e0 addiu a1, zero, 1         |                 a1 = 1;
    0x000077e4 jalr t9                   |                 t9 ();
                                         | label_2:
    0x000077e8 lw ra, 0x34(sp)           |                 ra = *(var_34h);
                                         |             }
    0x000077ec move v0, s2               |             v0 = s2;
    0x000077f0 lw s6, 0x30(sp)           |             s6 = *(var_30h);
    0x000077f4 lw s5, 0x2c(sp)           |             s5 = *(var_2ch);
    0x000077f8 lw s4, 0x28(sp)           |             s4 = *(var_28h);
    0x000077fc lw s3, 0x24(sp)           |             s3 = *(var_24h);
    0x00007800 lw s2, 0x20(sp)           |             s2 = *(var_20h);
    0x00007804 lw s1, 0x1c(sp)           |             s1 = *(var_1ch);
    0x00007808 lw s0, 0x18(sp)           |             s0 = *(var_18h);
    0x0000780c addiu sp, sp, 0x38        |             
    0x00007810 jr ra                     |             return v0;
                                         |         }
    0x00007814 lw s1, (s1)               |         s1 = *(s1);
    0x00007818 b 0x76f4                  |         
                                         |     } while (1);
                                         | label_7:
    0x0000781c move s1, s0               |     s1 = s0;
    0x00007820 b 0x7710                  |     goto label_1;
                                         | label_10:
    0x00007824 lw t9, -0x7f9c(gp)        |     t9 = *((gp - 8167));
    0x00007828 addiu t9, t9, 0x742c      |     t9 += fcn.0000742c;
    0x0000782c move a0, s0               |     a0 = s0;
    0x00007830 bal 0x742c                |     fcn_0000742c ();
    0x00007834 b 0x77e8                  |     goto label_2;
    0x00007838 nop                       |     
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/mdnsd @ 0x783c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0000783c ()                  | void fcn_0000783c () {
    0x0000783c lui gp, 7                     |     
    0x00007840 addiu gp, gp, -0x27cc         |     
    0x00007844 addu gp, gp, t9               |     gp += t9;
    0x00007848 addiu sp, sp, -0x30           |     
    0x0000784c sw gp, 0x10(sp)               |     *(var_10h) = gp;
                                             |     if (a1 == ra) {
    0x00007850 beql a1, ra, 0x7904           |         goto label_0;
                                             |     }
                                             |     if (0 == 0) {
    0x00007854 beql zero, zero, 0xf858       |         void (*0xf858)() ();
                                             |     }
                                             |     if (0 == 0) {
    0x00007858 beql zero, zero, 0xf85c       |         void (*0xf85c)() ();
                                             |     }
    0x0000785c sw zero, 0x2000(t8)           |     *((t8 + 8192)) = 0;
    0x00007860 sw s1, 0x1c(sp)               |     *(var_1ch) = s1;
    0x00007864 sw s0, 0x18(sp)               |     *(var_18h) = s0;
    0x00007868 lw s2, -0x7fc4(gp)            |     s2 = *(gp);
                                             |     if (a0 == 0) {
    0x0000786c beqz a0, 0x78c8               |         goto label_1;
                                             |     }
    0x00007870 lw s3, -0x7f9c(gp)            |     s3 = *((gp - 8167));
    0x00007874 lw s4, -0x7f2c(gp)            |     s4 = *(gp);
    0x00007878 move s1, a0                   |     s1 = a0;
                                             |     /* str.Deregistered_interface__s_n */
    0x0000787c addiu s2, s2, -0x46d0         |     s2 += -0x46d0;
    0x00007880 addiu s3, s3, 0x742c          |     s3 += fcn.0000742c;
                                             |     do {
    0x00007884 lw s0, 0x216c(s1)             |         s0 = *((s1 + 2139));
    0x00007888 lw t9, -0x7f28(gp)            |         t9 = sym.mDNSPosixGetFDSet;
                                             |         if (s0 == 0) {
    0x0000788c bnez s0, 0x78ec               |             
    0x00007890 lw v0, -0x7fc8(gp)            |             v0 = *((gp - 8178));
    0x00007894 lw ra, 0x2c(sp)               |             ra = *(var_2ch);
    0x00007898 lw s4, 0x28(sp)               |             s4 = *(var_28h);
    0x0000789c sw zero, 0x3930(v0)           |             *((v0 + 3660)) = 0;
    0x000078a0 lw v0, -0x7fc8(gp)            |             v0 = *((gp - 8178));
    0x000078a4 lw s3, 0x24(sp)               |             s3 = *(var_24h);
    0x000078a8 lw s2, 0x20(sp)               |             s2 = *(var_20h);
    0x000078ac sw zero, 0x392c(v0)           |             *((v0 + 3659)) = 0;
    0x000078b0 lw v0, -0x7fc8(gp)            |             v0 = *((gp - 8178));
    0x000078b4 lw s1, 0x1c(sp)               |             s1 = *(var_1ch);
    0x000078b8 lw s0, 0x18(sp)               |             s0 = *(var_18h);
    0x000078bc sw zero, 0x3928(v0)           |             *((v0 + 3658)) = 0;
    0x000078c0 addiu sp, sp, 0x30            |             
    0x000078c4 jr ra                         |             return v0;
                                             | label_1:
    0x000078c8 lw a3, -0x7fc4(gp)            |             a3 = *(gp);
    0x000078cc lw a1, -0x7fc4(gp)            |             a1 = *(gp);
    0x000078d0 lw a0, -0x7fc4(gp)            |             a0 = *(gp);
    0x000078d4 lw t9, -0x7a4c(gp)            |             t9 = sym.imp.__assert_fail;
                                             |             /* str.ClearInterfaceList */
    0x000078d8 addiu a3, a3, -0x4628         |             a3 += -0x4628;
    0x000078dc addiu a2, zero, 0x267         |             a2 = 0x267;
                                             |             /* str.mDNSPosix.c */
    0x000078e0 addiu a1, a1, -0x4ad0         |             a1 += -0x4ad0;
                                             |             /* str.m___NULL */
    0x000078e4 addiu a0, a0, -0x4ac4         |             a0 += -0x4ac4;
    0x000078e8 jalr t9                       |             t9 ();
                                             |         }
    0x000078ec addiu a2, zero, 1             |         a2 = 1;
    0x000078f0 move a1, s0                   |         a1 = s0;
    0x000078f4 move a0, s1                   |         a0 = s1;
    0x000078f8 bal 0x24748                   |         sym_mDNS_DeregisterInterface ();
    0x000078fc lw v0, (s4)                   |         v0 = *(s4);
    0x00007900 lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |         if (v0 > 0) {
                                             | label_0:
    0x00007904 blez v0, 0x7924               |             
    0x00007908 lw v0, -0x7934(gp)            |             v0 = *((gp - 7757));
    0x0000790c lw t9, -0x7a20(gp)            |             t9 = *(gp);
    0x00007910 lw a3, 0x1a20(s0)             |             a3 = *((s0 + 1672));
    0x00007914 lw a0, (v0)                   |             a0 = *(v0);
    0x00007918 move a2, s2                   |             a2 = s2;
    0x0000791c addiu a1, zero, 1             |             a1 = 1;
    0x00007920 jalr t9                       |             t9 ();
                                             |         }
    0x00007924 move t9, s3                   |         t9 = s3;
    0x00007928 move a0, s0                   |         a0 = s0;
    0x0000792c bal 0x742c                    |         fcn_0000742c ();
    0x00007930 lw gp, 0x10(sp)               |         gp = *(var_10h);
    0x00007934 b 0x7884                      |         
                                             |     } while (1);
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/mdnsd @ 0x851c */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.mDNSPlatformInit ()      | void mDNSPlatformInit () {
    0x0000851c lui gp, 7                 |     
    0x00008520 addiu gp, gp, -0x34ac     |     
    0x00008524 addu gp, gp, t9           |     gp += t9;
    0x00008528 addiu sp, sp, -0x60       |     
    0x0000852c sw s2, 0x4c(sp)           |     *(var_4ch) = s2;
    0x00008530 lw s2, -0x794c(gp)        |     s2 = *((gp - 7763));
    0x00008534 sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x00008538 sw ra, 0x5c(sp)           |     *(var_5ch) = ra;
    0x0000853c sw s5, 0x58(sp)           |     *(var_58h) = s5;
    0x00008540 sw s4, 0x54(sp)           |     *(var_54h) = s4;
    0x00008544 sw s3, 0x50(sp)           |     *(var_50h) = s3;
    0x00008548 sw s1, 0x48(sp)           |     *(var_48h) = s1;
    0x0000854c sw s0, 0x44(sp)           |     *(var_44h) = s0;
    0x00008550 lw v0, (s2)               |     v0 = *(s2);
    0x00008554 sw v0, 0x3c(sp)           |     *(var_3ch) = v0;
    0x00008558 lw t9, -0x7a18(gp)        |     t9 = sym.imp.socket;
                                         |     if (a0 == 0) {
    0x0000855c bnez a0, 0x8584           |         
    0x00008560 lw a3, -0x7fc4(gp)        |         a3 = *(gp);
    0x00008564 lw a1, -0x7fc4(gp)        |         a1 = *(gp);
    0x00008568 lw a0, -0x7fc4(gp)        |         a0 = *(gp);
    0x0000856c lw t9, -0x7a4c(gp)        |         t9 = sym.imp.__assert_fail;
                                         |         /* str.mDNSPlatformInit */
    0x00008570 addiu a3, a3, -0x45a8     |         a3 += -0x45a8;
    0x00008574 addiu a2, zero, 0x51f     |         a2 = 0x51f;
                                         |         /* str.mDNSPosix.c */
    0x00008578 addiu a1, a1, -0x4ad0     |         a1 += -0x4ad0;
                                         |         /* str.m___NULL */
    0x0000857c addiu a0, a0, -0x4ac4     |         a0 += -0x4ac4;
    0x00008580 jalr t9                   |         t9 ();
                                         |     }
    0x00008584 addiu a2, zero, 0x11      |     a2 = 0x11;
    0x00008588 addiu a1, zero, 1         |     a1 = 1;
    0x0000858c move s0, a0               |     s0 = a0;
    0x00008590 addiu a0, zero, 2         |     a0 = 2;
    0x00008594 jalr t9                   |     t9 ();
    0x00008598 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x0000859c move s1, v0               |     s1 = v0;
    0x000085a0 addiu v0, zero, 2         |     v0 = 2;
    0x000085a4 sh v0, 0x2c(sp)           |     *(var_2ch) = v0;
    0x000085a8 lw v0, -0x7f54(gp)        |     v0 = *((gp - 8149));
    0x000085ac addiu s3, sp, 0x2c        |     s3 = sp + 0x2c;
    0x000085b0 lw t9, -0x79d0(gp)        |     t9 = sym.imp.bind;
    0x000085b4 lhu v0, (v0)              |     v0 = *(v0);
    0x000085b8 addiu a2, zero, 0x10      |     a2 = 0x10;
    0x000085bc move a1, s3               |     a1 = s3;
    0x000085c0 move a0, s1               |     a0 = s1;
    0x000085c4 sh v0, 0x2e(sp)           |     *(var_2eh) = v0;
    0x000085c8 sw zero, 0x30(sp)         |     *(var_30h) = 0;
    0x000085cc jalr t9                   |     t9 ();
    0x000085d0 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000085d4 move s4, v0               |     s4 = v0;
    0x000085d8 lw t9, -0x7a48(gp)        |     t9 = sym.imp.close;
    0x000085dc move a0, s1               |     a0 = s1;
    0x000085e0 jalr t9                   |     t9 ();
    0x000085e4 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (s4 == 0) {
    0x000085e8 bnez s4, 0x85f4           |         
    0x000085ec addiu v0, zero, 1         |         v0 = 1;
    0x000085f0 sb v0, 8(s0)              |         *((s0 + 8)) = v0;
                                         |     }
    0x000085f4 lw s1, -0x7f9c(gp)        |     s1 = *((gp - 8167));
    0x000085f8 addiu s4, s0, 0x1a54      |     s4 = s0 + 0x1a54;
    0x000085fc addiu s1, s1, 0x5c64      |     s1 += fcn.00005c64;
    0x00008600 sb zero, 0x1a54(s0)       |     *((s0 + 6740)) = 0;
    0x00008604 move t9, s1               |     t9 = s1;
    0x00008608 move a0, s4               |     a0 = s4;
    0x0000860c bal 0x5c64                |     fcn_00005c64 ();
    0x00008610 lbu v0, 0x1a54(s0)        |     v0 = *((s0 + 6740));
    0x00008614 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00008618 bnez v0, 0x8630           |         
    0x0000861c lw a1, -0x7fc4(gp)        |         a1 = *(gp);
    0x00008620 lw t9, -0x7f10(gp)        |         t9 = sym.mDNSPlatformInterfaceIsD2D;
                                         |         /* str.Computer */
    0x00008624 addiu a1, a1, -0x46a4     |         a1 += -0x46a4;
    0x00008628 move a0, s4               |         a0 = s4;
    0x0000862c jalr t9                   |         t9 ();
                                         |     }
    0x00008630 addiu s4, s0, 0x1a94      |     s4 = s0 + 0x1a94;
    0x00008634 sb zero, 0x1a94(s0)       |     *((s0 + 6804)) = 0;
    0x00008638 move t9, s1               |     t9 = s1;
    0x0000863c move a0, s4               |     a0 = s4;
    0x00008640 bal 0x5c64                |     fcn_00005c64 ();
    0x00008644 lbu v0, 0x1a94(s0)        |     v0 = *((s0 + 6804));
    0x00008648 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x0000864c bnez v0, 0x8668           |         
    0x00008650 lw a1, -0x7fc4(gp)        |         a1 = *(gp);
    0x00008654 lw t9, -0x7f10(gp)        |         t9 = sym.mDNSPlatformInterfaceIsD2D;
                                         |         /* str.Computer */
    0x00008658 addiu a1, a1, -0x46a4     |         a1 += -0x46a4;
    0x0000865c move a0, s4               |         a0 = s4;
    0x00008660 jalr t9                   |         t9 ();
    0x00008664 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |     }
    0x00008668 lw t9, -0x7f0c(gp)        |     t9 = sym.mDNS_SetFQDN;
    0x0000866c move a0, s0               |     a0 = s0;
    0x00008670 bal 0x23a3c               |     sym_mDNS_SetFQDN ();
    0x00008674 addiu v0, zero, 2         |     v0 = 2;
    0x00008678 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x0000867c sh v0, 0x2c(sp)           |     *(var_2ch) = v0;
    0x00008680 lw v0, (s0)               |     v0 = *(s0);
    0x00008684 addiu s5, zero, -1        |     s5 = -1;
    0x00008688 lw s1, -0x7f9c(gp)        |     s1 = *((gp - 8167));
    0x0000868c sw s5, (v0)               |     *(v0) = s5;
    0x00008690 lw v0, -0x7f08(gp)        |     v0 = sym.mDNSPlatformGetUDPPort;
    0x00008694 lw a3, (s0)               |     a3 = *(s0);
    0x00008698 addiu s1, s1, 0x69d0      |     s1 += fcn.000069d0;
    0x0000869c lhu s4, (v0)              |     s4 = *(v0);
    0x000086a0 move a2, zero             |     a2 = 0;
    0x000086a4 move a1, s4               |     a1 = s4;
    0x000086a8 move t9, s1               |     t9 = s1;
    0x000086ac move a0, s3               |     a0 = s3;
    0x000086b0 bal 0x69d0                |     fcn_000069d0 ();
    0x000086b4 addiu v1, zero, 0xa       |     v1 = 0xa;
    0x000086b8 sh v1, 0x2c(sp)           |     *(var_2ch) = v1;
    0x000086bc lw v1, (s0)               |     v1 = *(s0);
    0x000086c0 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000086c4 sw s5, 4(v1)              |     *((v1 + 1)) = s5;
    0x000086c8 beqz v0, 0x86f0           |     
                                         |     while (v0 != 0) {
                                         | label_0:
    0x000086cc lui v0, 0xfffe            |         v0 = 0xfffeffff;
    0x000086d0 ori v0, v0, 0xffff        |         
                                         | label_2:
    0x000086d4 lw a0, 0x3c(sp)           |         a0 = *(var_3ch);
    0x000086d8 lw v1, (s2)               |         v1 = *(s2);
    0x000086dc lw ra, 0x5c(sp)           |         ra = *(var_5ch);
                                         |         if (a0 == v1) {
    0x000086e0 beq a0, v1, 0x8868        |             goto label_3;
                                         |         }
    0x000086e4 lw t9, -0x7964(gp)        |         t9 = *(gp);
    0x000086e8 jalr t9                   |         t9 ();
    0x000086ec nop                       |         
    0x000086f0 lw a3, (s0)               |         a3 = *(s0);
    0x000086f4 move a2, zero             |         a2 = 0;
    0x000086f8 addiu a3, a3, 4           |         a3 += 4;
    0x000086fc move a1, s4               |         a1 = s4;
    0x00008700 move t9, s1               |         t9 = s1;
    0x00008704 move a0, s3               |         a0 = s3;
    0x00008708 bal 0x69d0                |         fcn_000069d0 ();
    0x0000870c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008710 bnez v0, 0x86cc           |         
                                         |     }
    0x00008714 lw t9, -0x7f9c(gp)        |     t9 = *((gp - 8167));
    0x00008718 addiu t9, t9, 0x7a20      |     t9 += fcn.00007a20;
    0x0000871c move a0, s0               |     a0 = s0;
    0x00008720 bal 0x7a20                |     fcn_00007a20 ();
    0x00008724 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x00008728 bnez v0, 0x86cc           |         goto label_0;
                                         |     }
    0x0000872c lw t9, -0x799c(gp)        |     t9 = sym.imp.malloc;
    0x00008730 addiu a0, zero, 8         |     a0 = 8;
    0x00008734 jalr t9                   |     t9 ();
    0x00008738 move s3, v0               |     s3 = v0;
    0x0000873c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 == 0) {
    0x00008740 beqz v0, 0x885c           |         goto label_4;
                                         |     }
    0x00008744 lw t9, -0x7a18(gp)        |     t9 = sym.imp.socket;
    0x00008748 sw s0, 4(v0)              |     *((v0 + 1)) = s0;
    0x0000874c move a2, zero             |     a2 = 0;
    0x00008750 addiu a1, zero, 3         |     a1 = 3;
    0x00008754 addiu a0, zero, 0x10      |     a0 = 0x10;
    0x00008758 jalr t9                   |     t9 ();
    0x0000875c move s1, v0               |     s1 = v0;
    0x00008760 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008764 bgez v0, 0x87bc           |     
                                         |     while (v0 != 0) {
    0x00008768 lw t9, -0x79d8(gp)        |         t9 = sym.imp.__errno_location;
    0x0000876c jalr t9                   |         t9 ();
    0x00008770 nop                       |         
    0x00008774 lw s1, (v0)               |         s1 = *(v0);
    0x00008778 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (s1 == 0) {
    0x0000877c beqz s1, 0x881c           |             goto label_5;
                                         |         }
                                         | label_1:
    0x00008780 lw v0, -0x7934(gp)        |         v0 = *((gp - 7757));
    0x00008784 lw t9, -0x7990(gp)        |         t9 = sym.imp.getpid;
    0x00008788 lw s3, (v0)               |         s3 = *(v0);
    0x0000878c jalr t9                   |         t9 ();
    0x00008790 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008794 sw s1, 0x10(sp)           |         *(var_10h) = s1;
    0x00008798 move a3, v0               |         a3 = v0;
    0x0000879c lw a2, -0x7fc4(gp)        |         a2 = *(gp);
    0x000087a0 lw t9, -0x7a20(gp)        |         t9 = *(gp);
                                         |         /* str.mDNS__d__WARNING:_Unable_to_detect_interface_changes___d_._n */
    0x000087a4 addiu a2, a2, -0x4698     |         a2 += -0x4698;
    0x000087a8 addiu a1, zero, 1         |         a1 = 1;
    0x000087ac move a0, s3               |         a0 = s3;
    0x000087b0 jalr t9                   |         t9 ();
    0x000087b4 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000087b8 b 0x8840                  |         goto label_6;
    0x000087bc lw t9, -0x79c8(gp)        |         t9 = sym.imp.fcntl;
    0x000087c0 addiu a2, zero, 0x80      |         a2 = 0x80;
    0x000087c4 addiu a1, zero, 4         |         a1 = 4;
    0x000087c8 move a0, v0               |         a0 = v0;
    0x000087cc jalr t9                   |         t9 ();
    0x000087d0 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000087d4 addiu s4, sp, 0x20        |         s4 = sp + 0x20;
    0x000087d8 addiu a1, zero, 0xc       |         a1 = 0xc;
    0x000087dc lw t9, -0x7f3c(gp)        |         t9 = sym.mDNSPlatformMemZero;
    0x000087e0 move a0, s4               |         a0 = s4;
    0x000087e4 bal 0x65d8                |         sym_mDNSPlatformMemZero ();
    0x000087e8 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x000087ec addiu v0, zero, 0x10      |         v0 = 0x10;
    0x000087f0 sh v0, 0x20(sp)           |         *(var_20h) = v0;
    0x000087f4 lw t9, -0x79d0(gp)        |         t9 = sym.imp.bind;
    0x000087f8 addiu v0, zero, 0x11      |         v0 = 0x11;
    0x000087fc sw v0, 0x28(sp)           |         *(var_28h) = v0;
    0x00008800 addiu a2, zero, 0xc       |         a2 = 0xc;
    0x00008804 move a1, s4               |         a1 = s4;
    0x00008808 move a0, s1               |         a0 = s1;
    0x0000880c jalr t9                   |         t9 ();
    0x00008810 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008814 bnez v0, 0x8768           |         
                                         |     }
    0x00008818 sw s1, (s3)               |     *(s3) = s1;
                                         | label_5:
    0x0000881c lw a1, -0x7f9c(gp)        |     a1 = *((gp - 8167));
    0x00008820 lw t9, -0x7fb4(gp)        |     t9 = sym.mDNSPosixAddFDToEventLoop;
    0x00008824 lw a0, (s3)               |     a0 = *(s3);
    0x00008828 move a2, s3               |     a2 = s3;
    0x0000882c addiu a1, a1, 0x7d68      |     a1 += 0x7d68;
    0x00008830 bal 0x8400                |     sym_mDNSPosixAddFDToEventLoop ();
    0x00008834 move s1, v0               |     s1 = v0;
    0x00008838 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v0 != 0) {
    0x0000883c bnez v0, 0x8780           |         goto label_1;
                                         |     }
                                         | label_6:
    0x00008840 lw t9, -0x7f04(gp)        |     t9 = sym.mDNSCoreInitComplete;
    0x00008844 move a1, zero             |     a1 = 0;
    0x00008848 move a0, s0               |     a0 = s0;
    0x0000884c jalr t9                   |     t9 ();
    0x00008850 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008854 move v0, zero             |     v0 = 0;
    0x00008858 b 0x86d4                  |     goto label_2;
                                         | label_4:
    0x0000885c lui s1, 0xfffe            |     s1 = 0xfffefffd;
    0x00008860 ori s1, s1, 0xfffd        |     
    0x00008864 b 0x8780                  |     goto label_1;
                                         | label_3:
    0x00008868 lw s5, 0x58(sp)           |     s5 = *(var_58h);
    0x0000886c lw s4, 0x54(sp)           |     s4 = *(var_54h);
    0x00008870 lw s3, 0x50(sp)           |     s3 = *(var_50h);
    0x00008874 lw s2, 0x4c(sp)           |     s2 = *(var_4ch);
    0x00008878 lw s1, 0x48(sp)           |     s1 = *(var_48h);
    0x0000887c lw s0, 0x44(sp)           |     s0 = *(var_44h);
    0x00008880 addiu sp, sp, 0x60        |     
    0x00008884 jr ra                     |     return v0;
                                         | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/mdnsd @ 0x49924 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.mDNSPlatformWriteLogMsg ()       | void mDNSPlatformWriteLogMsg () {
    0x00049924 lui gp, 3                         |     
    0x00049928 addiu gp, gp, -0x48b4             |     
    0x0004992c addu gp, gp, t9                   |     gp += t9;
    0x00049930 addiu sp, sp, -0x30               |     
    0x00049934 lw v0, -0x7fac(gp)                |     v0 = *(gp);
    0x00049938 sw s2, 0x24(sp)                   |     *(var_24h) = s2;
    0x0004993c sw gp, 0x10(sp)                   |     *(var_10h) = gp;
    0x00049940 sw ra, 0x2c(sp)                   |     *(var_2ch) = ra;
    0x00049944 sw s3, 0x28(sp)                   |     *(var_28h) = s3;
    0x00049948 sw s1, 0x20(sp)                   |     *(var_20h) = s1;
    0x0004994c sw s0, 0x1c(sp)                   |     *(var_1ch) = s0;
    0x00049950 lw v0, (v0)                       |     v0 = *(v0);
    0x00049954 move s2, a1                       |     s2 = a1;
                                                 |     if (v0 != 0) {
    0x00049958 beqz v0, 0x499a4                  |         
    0x0004995c lw s0, -0x7934(gp)                |         s0 = *((gp - 7757));
    0x00049960 lw a2, -0x7b74(gp)                |         a2 = *((gp - 7901));
    0x00049964 lw t9, -0x7a20(gp)                |         t9 = *(gp);
    0x00049968 lw a0, (s0)                       |         a0 = *(s0);
    0x0004996c move a3, a1                       |         a3 = a1;
                                                 |         /* esilref: '&s
' */
    0x00049970 addiu a2, a2, -0x4204             |         a2 += -0x4204;
    0x00049974 addiu a1, zero, 1                 |         a1 = 1;
    0x00049978 jalr t9                           |         t9 ();
    0x0004997c lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x00049980 lw a0, (s0)                       |         a0 = *(s0);
    0x00049984 lw ra, 0x2c(sp)                   |         ra = *(var_2ch);
    0x00049988 lw s3, 0x28(sp)                   |         s3 = *(var_28h);
    0x0004998c lw s2, 0x24(sp)                   |         s2 = *(var_24h);
    0x00049990 lw s1, 0x20(sp)                   |         s1 = *(var_20h);
    0x00049994 lw s0, 0x1c(sp)                   |         s0 = *(var_1ch);
    0x00049998 lw t9, -0x792c(gp)                |         t9 = sym.imp.fflush;
    0x0004999c addiu sp, sp, 0x30                |         
    0x000499a0 jr t9                             |         t9 ();
                                                 |     }
    0x000499a4 sltiu v0, a2, 5                   |     v0 = (a2 < 5) ? 1 : 0;
    0x000499a8 move s3, a0                       |     s3 = a0;
    0x000499ac move a3, a2                       |     a3 = a2;
                                                 |     if (v0 == 0) {
    0x000499b0 beqz v0, 0x49a2c                  |         goto label_0;
                                                 |     }
    0x000499b4 lw a2, -0x7b74(gp)                |     a2 = *((gp - 7901));
    0x000499b8 addiu a2, a2, -0x41d0             |     a2 += -0x41d0;
    0x000499bc addu a3, a3, a2                   |     a3 += a2;
    0x000499c0 lb s1, (a3)                       |     s1 = *(a3);
                                                 |     do {
    0x000499c4 lw s0, -0x7fc8(gp)                |         s0 = *((gp - 8178));
    0x000499c8 lw v0, 0x3b80(s0)                 |         v0 = *((s0 + 3808));
    0x000499cc lw a2, -0x7fc4(gp)                |         a2 = *(gp);
                                                 |         if (v0 == 0) {
    0x000499d0 bnez v0, 0x499fc                  |             
    0x000499d4 lw t9, -0x7a04(gp)                |             t9 = sym.imp.openlog;
    0x000499d8 addiu a2, zero, 0x18              |             a2 = 0x18;
    0x000499dc addiu a1, zero, 2                 |             a1 = 2;
    0x000499e0 move a0, s3                       |             a0 = s3;
    0x000499e4 jalr t9                           |             t9 ();
    0x000499e8 lw v0, 0x3b80(s0)                 |             v0 = *((s0 + 3808));
    0x000499ec lw gp, 0x10(sp)                   |             gp = *(var_10h);
    0x000499f0 addiu v0, v0, 1                   |             v0++;
    0x000499f4 sw v0, 0x3b80(s0)                 |             *((s0 + 3808)) = v0;
    0x000499f8 lw a2, -0x7fc4(gp)                |             a2 = *(gp);
                                                 |         }
    0x000499fc lw ra, 0x2c(sp)                   |         ra = *(var_2ch);
    0x00049a00 lw s3, 0x28(sp)                   |         s3 = *(var_28h);
    0x00049a04 lw s0, 0x1c(sp)                   |         s0 = *(var_1ch);
    0x00049a08 move a3, s2                       |         a3 = s2;
    0x00049a0c move a0, s1                       |         a0 = s1;
    0x00049a10 lw s2, 0x24(sp)                   |         s2 = *(var_24h);
    0x00049a14 lw s1, 0x20(sp)                   |         s1 = *(var_20h);
    0x00049a18 lw t9, -0x79e8(gp)                |         t9 = sym.imp.__syslog_chk;
                                                 |         /* esilref: '&s' */
    0x00049a1c addiu a2, a2, 0x24cc              |         a2 += 0x24cc;
    0x00049a20 addiu a1, zero, 1                 |         a1 = 1;
    0x00049a24 addiu sp, sp, 0x30                |         
    0x00049a28 jr t9                             |         t9 ();
                                                 | label_0:
    0x00049a2c lw s0, -0x7934(gp)                |         s0 = *((gp - 7757));
    0x00049a30 lw a2, -0x7b74(gp)                |         a2 = *((gp - 7901));
    0x00049a34 lw t9, -0x7a20(gp)                |         t9 = *(gp);
    0x00049a38 lw a0, (s0)                       |         a0 = *(s0);
                                                 |         /* str.Unknown_loglevel__d__assuming_LOG_ERR_n */
    0x00049a3c addiu a2, a2, -0x4200             |         a2 += -0x4200;
    0x00049a40 addiu a1, zero, 1                 |         a1 = 1;
    0x00049a44 jalr t9                           |         t9 ();
    0x00049a48 lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x00049a4c lw a0, (s0)                       |         a0 = *(s0);
    0x00049a50 lw t9, -0x792c(gp)                |         t9 = sym.imp.fflush;
    0x00049a54 addiu s1, zero, 3                 |         s1 = 3;
    0x00049a58 jalr t9                           |         t9 ();
    0x00049a5c lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x00049a60 b 0x499c4                         |         
                                                 |     } while (1);
                                                 | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/mdnsd @ 0x46250 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.udsserver_init ()            | void udsserver_init () {
    0x00046250 lui gp, 3                     |     
    0x00046254 addiu gp, gp, -0x11e0         |     
    0x00046258 addu gp, gp, t9               |     gp += t9;
    0x0004625c addiu sp, sp, -0xc8           |     
    0x00046260 sw s1, 0xb4(sp)               |     *(var_b4h) = s1;
    0x00046264 lw s1, -0x794c(gp)            |     s1 = *((gp - 7763));
    0x00046268 sw s4, 0xc0(sp)               |     *(var_c0h) = s4;
    0x0004626c sw s3, 0xbc(sp)               |     *(var_bch) = s3;
    0x00046270 sw gp, 0x20(sp)               |     *(var_20h) = gp;
    0x00046274 sw ra, 0xc4(sp)               |     *(var_c4h) = ra;
    0x00046278 sw s2, 0xb8(sp)               |     *(var_b8h) = s2;
    0x0004627c sw s0, 0xb0(sp)               |     *(var_b0h) = s0;
    0x00046280 lw v0, (s1)                   |     v0 = *(s1);
    0x00046284 move s3, a0                   |     s3 = a0;
    0x00046288 sw v0, 0xac(sp)               |     *(var_ach) = v0;
    0x0004628c lw v0, -0x7fa8(gp)            |     v0 = *(gp);
    0x00046290 lw v0, (v0)                   |     v0 = *(v0);
    0x00046294 move s4, a1                   |     s4 = a1;
                                             |     if (v0 != 0) {
    0x00046298 beqz v0, 0x462c4              |         
    0x0004629c lw v0, -0x7fd0(gp)            |         v0 = *(gp);
    0x000462a0 lw a1, -0x7b74(gp)            |         a1 = *((gp - 7901));
    0x000462a4 lw t9, -0x7fa0(gp)            |         t9 = sym.LogMsgWithLevel;
    0x000462a8 lw a3, 0x217c(v0)             |         a3 = *((v0 + 2143));
    0x000462ac lui a2, 0x86                  |         a2 = 0x865e71;
    0x000462b0 addiu a2, a2, 0x5e71          |         
                                             |         /* str.udsserver_init:__d__d */
    0x000462b4 addiu a1, a1, -0x59e0         |         a1 += -0x59e0;
    0x000462b8 addiu a0, zero, 3             |         a0 = 3;
    0x000462bc bal 0x48aac                   |         sym_LogMsgWithLevel ();
    0x000462c0 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |     }
    0x000462c4 lw a1, -0x7fc4(gp)            |     a1 = *(gp);
    0x000462c8 lw a0, -0x7b74(gp)            |     a0 = *((gp - 7901));
    0x000462cc lw t9, -0x7930(gp)            |     t9 = sym.imp.fopen;
    0x000462d0 addiu a1, a1, 0x1e2c          |     a1 += 0x1e2c;
                                             |     /* str._var_run_mdnsd_mdnsd.pid */
    0x000462d4 addiu a0, a0, -0x59c8         |     a0 += -0x59c8;
    0x000462d8 jalr t9                       |     t9 ();
    0x000462dc move s0, v0                   |     s0 = v0;
    0x000462e0 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 != 0) {
    0x000462e4 beqz v0, 0x46328              |         
    0x000462e8 lw t9, -0x7990(gp)            |         t9 = sym.imp.getpid;
    0x000462ec jalr t9                       |         t9 ();
    0x000462f0 nop                           |         
    0x000462f4 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x000462f8 move a3, v0                   |         a3 = v0;
    0x000462fc addiu a1, zero, 1             |         a1 = 1;
    0x00046300 lw a2, -0x7b74(gp)            |         a2 = *((gp - 7901));
    0x00046304 lw t9, -0x7a20(gp)            |         t9 = *(gp);
                                             |         /* esilref: '&d
' */
    0x00046308 addiu a2, a2, -0x59ac         |         a2 += -0x59ac;
    0x0004630c move a0, s0                   |         a0 = s0;
    0x00046310 jalr t9                       |         t9 ();
    0x00046314 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x00046318 lw t9, -0x7a08(gp)            |         t9 = sym.imp.fclose;
    0x0004631c move a0, s0                   |         a0 = s0;
    0x00046320 jalr t9                       |         t9 ();
    0x00046324 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |     }
    0x00046328 move s0, zero                 |     s0 = 0;
                                             |     if (s3 == 0) {
    0x0004632c beqz s3, 0x463dc              |         goto label_7;
                                             |     }
    0x00046330 lw s2, -0x7b64(gp)            |     s2 = *(gp);
                                             |     /* fcn.0003ddf8 */
    0x00046334 addiu s2, s2, -0x2208         |     s2 += -0x2208;
                                             |     do {
    0x00046338 sll a0, s0, 2                 |         a0 = s0 << 2;
                                             |         if (s0 == s4) {
    0x0004633c bne s0, s4, 0x46398           |             
                                             | label_3:
    0x00046340 lw t9, -0x7968(gp)            |             t9 = sym.imp.getrlimit;
    0x00046344 addiu s0, sp, 0x2c            |             s0 = sp + 0x2c;
    0x00046348 move a1, s0                   |             a1 = s0;
    0x0004634c addiu a0, zero, 5             |             a0 = 5;
    0x00046350 jalr t9                       |             t9 ();
    0x00046354 lw gp, 0x20(sp)               |             gp = *(var_20h);
                                             |             if (v0 >= 0) {
    0x00046358 bgez v0, 0x464e0              |                 goto label_8;
                                             |             }
                                             | label_5:
    0x0004635c lw a0, -0x7b74(gp)            |             a0 = *((gp - 7901));
    0x00046360 lw t9, -0x7b64(gp)            |             t9 = *(gp);
                                             |             /* str.ERROR:_Unable_to_get_file_descriptor_limit */
    0x00046364 addiu a0, a0, -0x5914         |             a0 += -entry.fini0;
                                             |             /* fcn.0003b220 */
    0x00046368 addiu t9, t9, -0x4de0         |             t9 += -0x4de0;
                                             | label_6:
    0x0004636c jalr t9                       |             t9 ();
    0x00046370 nop                           |             
    0x00046374 lw gp, 0x20(sp)               |             gp = *(var_20h);
    0x00046378 move v0, zero                 |             v0 = 0;
                                             | label_1:
    0x0004637c lw a0, 0xac(sp)               |             a0 = *(var_ach);
    0x00046380 lw v1, (s1)                   |             v1 = *(s1);
    0x00046384 lw ra, 0xc4(sp)               |             ra = *(var_c4h);
                                             |             if (a0 == v1) {
    0x00046388 beq a0, v1, 0x46644           |                 goto label_9;
                                             |             }
    0x0004638c lw t9, -0x7964(gp)            |             t9 = *(gp);
    0x00046390 jalr t9                       |             t9 ();
    0x00046394 nop                           |             
                                             |         }
    0x00046398 lwx a0, a0(s3)                |         __asm ("lwx a0, a0(s3)");
    0x0004639c move t9, s2                   |         t9 = s2;
                                             |         if (a0 >= 0) {
    0x000463a0 bgez a0, 0x463ac              |             goto label_10;
                                             |         }
                                             | label_0:
    0x000463a4 addiu s0, s0, 1               |         s0++;
    0x000463a8 b 0x46338                     |         
                                             |     } while (1);
                                             | label_10:
    0x000463ac bal 0x3ddf8                   |     fcn_0003ddf8 ();
    0x000463b0 nop                           |     
    0x000463b4 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 != 0) {
    0x000463b8 bnez v0, 0x463a4              |         goto label_0;
                                             |     }
                                             |     do {
    0x000463bc lw a0, -0x7b74(gp)            |         a0 = *((gp - 7901));
                                             | label_4:
    0x000463c0 lw t9, -0x7b64(gp)            |         t9 = *(gp);
                                             |         /* fcn.0003b220 */
    0x000463c4 addiu t9, t9, -0x4de0         |         t9 += -0x4de0;
                                             |         /* str.ERROR:_udsserver_init */
    0x000463c8 addiu a0, a0, -0x58b4         |         a0 += -0x58b4;
    0x000463cc bal 0x3b220                   |         fcn_0003b220 ();
    0x000463d0 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x000463d4 addiu v0, zero, -1            |         v0 = -1;
    0x000463d8 b 0x4637c                     |         goto label_1;
                                             | label_7:
    0x000463dc lw t9, -0x7a18(gp)            |         t9 = sym.imp.socket;
    0x000463e0 move a2, zero                 |         a2 = 0;
    0x000463e4 addiu a1, zero, 2             |         a1 = 2;
    0x000463e8 addiu a0, zero, 1             |         a0 = 1;
    0x000463ec jalr t9                       |         t9 ();
    0x000463f0 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x000463f4 lw s2, -0x7f94(gp)            |         s2 = *((gp - 8165));
    0x000463f8 sw v0, -0x2fa0(s2)            |         *((s2 - 3048)) = v0;
                                             |         if (v0 >= 0) {
    0x000463fc bgez v0, 0x46420              |             goto label_11;
                                             |         }
    0x00046400 lw a0, -0x7b74(gp)            |         a0 = *((gp - 7901));
                                             |         /* str.ERROR:_socket_AF_DNSSD__SOCK_STREAM__0___failed */
    0x00046404 addiu a0, a0, -0x59a8         |         a0 += -0x59a8;
                                             | label_2:
    0x00046408 lw t9, -0x7b64(gp)            |         t9 = *(gp);
                                             |         /* fcn.0003b220 */
    0x0004640c addiu t9, t9, -0x4de0         |         t9 += -0x4de0;
    0x00046410 bal 0x3b220                   |         fcn_0003b220 ();
    0x00046414 nop                           |         
    0x00046418 lw gp, 0x20(sp)               |         gp = *(var_20h);
    0x0004641c b 0x463bc                     |         
                                             |     } while (1);
                                             | label_11:
    0x00046420 lw t9, -0x7f3c(gp)            |     t9 = sym.mDNSPlatformMemZero;
    0x00046424 addiu s0, sp, 0x3c            |     s0 = sp + 0x3c;
    0x00046428 addiu a1, zero, 0x6e          |     a1 = 0x6e;
    0x0004642c move a0, s0                   |     a0 = s0;
    0x00046430 jalr t9                       |     t9 ();
    0x00046434 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00046438 lw t9, -0x7a3c(gp)            |     t9 = sym.imp.umask;
    0x0004643c move a0, zero                 |     a0 = 0;
    0x00046440 jalr t9                       |     t9 ();
    0x00046444 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00046448 move s4, v0                   |     s4 = v0;
    0x0004644c lw s3, -0x7b74(gp)            |     s3 = *((gp - 7901));
    0x00046450 lw t9, -0x7970(gp)            |     t9 = sym.imp.unlink;
                                             |     /* str._var_run_mdnsd_mdnsd */
    0x00046454 addiu a0, s3, -0x5978         |     a0 = s3 + -0x5978;
    0x00046458 jalr t9                       |     t9 ();
    0x0004645c lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00046460 addiu v0, zero, 1             |     v0 = 1;
    0x00046464 addiu a2, zero, 0x6c          |     a2 = 0x6c;
    0x00046468 lw t9, -0x7b34(gp)            |     t9 = sym.mDNSPlatformStrLCopy;
                                             |     /* str._var_run_mdnsd_mdnsd */
    0x0004646c addiu a1, s3, -0x5978         |     a1 = s3 + -0x5978;
    0x00046470 addiu a0, sp, 0x3e            |     a0 = sp + 0x3e;
    0x00046474 sh v0, 0x3c(sp)               |     *(var_3ch) = v0;
    0x00046478 jalr t9                       |     t9 ();
    0x0004647c lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00046480 lw s2, -0x2fa0(s2)            |     s2 = *((s2 - 3048));
    0x00046484 move a1, s0                   |     a1 = s0;
    0x00046488 lw t9, -0x79d0(gp)            |     t9 = sym.imp.bind;
    0x0004648c addiu a2, zero, 0x6e          |     a2 = 0x6e;
    0x00046490 move a0, s2                   |     a0 = s2;
    0x00046494 jalr t9                       |     t9 ();
    0x00046498 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x0004649c move s0, v0                   |     s0 = v0;
    0x000464a0 lw t9, -0x7a3c(gp)            |     t9 = sym.imp.umask;
    0x000464a4 move a0, s4                   |     a0 = s4;
    0x000464a8 jalr t9                       |     t9 ();
    0x000464ac lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (s0 < 0) {
    0x000464b0 bgez s0, 0x464c0              |         
    0x000464b4 lw a0, -0x7b74(gp)            |         a0 = *((gp - 7901));
                                             |         /* str.ERROR:_bind_listenfd___struct_sockaddr___laddr__sizeof_laddr____failed */
    0x000464b8 addiu a0, a0, -0x5960         |         a0 += -0x5960;
    0x000464bc b 0x46408                     |         goto label_2;
                                             |     }
    0x000464c0 lw t9, -0x7b64(gp)            |     t9 = *(gp);
                                             |     /* fcn.0003ddf8 */
    0x000464c4 addiu t9, t9, -0x2208         |     t9 += -0x2208;
    0x000464c8 move a0, s2                   |     a0 = s2;
    0x000464cc bal 0x3ddf8                   |     fcn_0003ddf8 ();
    0x000464d0 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 != 0) {
    0x000464d4 bnez v0, 0x46340              |         goto label_3;
                                             |     }
    0x000464d8 lw a0, -0x7b74(gp)            |     a0 = *((gp - 7901));
    0x000464dc b 0x463c0                     |     goto label_4;
                                             | label_8:
    0x000464e0 lw t9, -0x79f0(gp)            |     t9 = sym.imp.setrlimit;
    0x000464e4 move a1, s0                   |     a1 = s0;
    0x000464e8 addiu a0, zero, 5             |     a0 = 5;
    0x000464ec jalr t9                       |     t9 ();
    0x000464f0 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 < 0) {
    0x000464f4 bgez v0, 0x46510              |         
    0x000464f8 lw a0, -0x7b74(gp)            |         a0 = *((gp - 7901));
    0x000464fc lw t9, -0x7b64(gp)            |         t9 = *(gp);
                                             |         /* fcn.0003b220 */
    0x00046500 addiu t9, t9, -0x4de0         |         t9 += -0x4de0;
                                             |         /* str.ERROR:_Unable_to_set_maximum_file_descriptor_limit */
    0x00046504 addiu a0, a0, -0x58e8         |         a0 += -0x58e8;
    0x00046508 bal 0x3b220                   |         fcn_0003b220 ();
    0x0004650c lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |     }
    0x00046510 lw t9, -0x7968(gp)            |     t9 = sym.imp.getrlimit;
    0x00046514 move a1, s0                   |     a1 = s0;
    0x00046518 addiu a0, zero, 5             |     a0 = 5;
    0x0004651c jalr t9                       |     t9 ();
    0x00046520 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 < 0) {
    0x00046524 bltz v0, 0x4635c              |         goto label_5;
                                             |     }
    0x00046528 lw v1, 0x30(sp)               |     v1 = *(var_30h);
    0x0004652c addiu a1, zero, 0x2800        |     a1 = 0x2800;
    0x00046530 sltiu v0, v1, 0x2800          |     v0 = (v1 < 0x2800) ? 1 : 0;
    0x00046534 move a0, a1                   |     a0 = a1;
                                             |     if (v0 != 0) {
    0x00046538 movz a0, v1, v0               |         a0 = v1;
                                             |     }
    0x0004653c lw v0, 0x2c(sp)               |     v0 = *(var_2ch);
    0x00046540 sw a0, 0x38(sp)               |     *(var_38h) = a0;
    0x00046544 sltiu a0, v0, 0x2800          |     a0 = (v0 < 0x2800) ? 1 : 0;
                                             |     if (a0 != 0) {
    0x00046548 movz a1, v0, a0               |         a1 = v0;
                                             |     }
    0x0004654c sltiu v1, v1, 0x2800          |     v1 = (v1 < 0x2800) ? 1 : 0;
    0x00046550 sw a1, 0x34(sp)               |     *(var_34h) = a1;
                                             |     if (v1 == 0) {
    0x00046554 bnez v1, 0x46564              |         
    0x00046558 sltiu v0, v0, 0x2800          |         v0 = (v0 < 0x2800) ? 1 : 0;
    0x0004655c lw t9, -0x7968(gp)            |         t9 = sym.imp.getrlimit;
                                             |         if (v0 == 0) {
    0x00046560 beqz v0, 0x46598              |             goto label_12;
                                             |         }
                                             |     }
    0x00046564 lw t9, -0x79f0(gp)            |     t9 = sym.imp.setrlimit;
    0x00046568 addiu a1, sp, 0x34            |     a1 = sp + 0x34;
    0x0004656c addiu a0, zero, 5             |     a0 = 5;
    0x00046570 jalr t9                       |     t9 ();
    0x00046574 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 < 0) {
    0x00046578 bgez v0, 0x46594              |         
    0x0004657c lw a0, -0x7b74(gp)            |         a0 = *((gp - 7901));
    0x00046580 lw t9, -0x7b64(gp)            |         t9 = *(gp);
                                             |         /* fcn.0003b220 */
    0x00046584 addiu t9, t9, -0x4de0         |         t9 += -0x4de0;
                                             |         /* str.ERROR:_Unable_to_set_maximum_file_descriptor_limit */
    0x00046588 addiu a0, a0, -0x58e8         |         a0 += -0x58e8;
    0x0004658c bal 0x3b220                   |         fcn_0003b220 ();
    0x00046590 lw gp, 0x20(sp)               |         gp = *(var_20h);
                                             |     }
    0x00046594 lw t9, -0x7968(gp)            |     t9 = sym.imp.getrlimit;
                                             | label_12:
    0x00046598 move a1, s0                   |     a1 = s0;
    0x0004659c addiu a0, zero, 5             |     a0 = 5;
    0x000465a0 jalr t9                       |     t9 ();
    0x000465a4 lw gp, 0x20(sp)               |     gp = *(var_20h);
                                             |     if (v0 < 0) {
    0x000465a8 bltz v0, 0x4635c              |         goto label_5;
                                             |     }
    0x000465ac lw v0, -0x7b64(gp)            |     v0 = *(gp);
    0x000465b0 lw s0, -0x7fd0(gp)            |     s0 = *(gp);
    0x000465b4 addiu v0, v0, 0xec0           |     v0 += 0xec0;
    0x000465b8 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x000465bc lw v0, -0x7f4c(gp)            |     v0 = *(gp);
    0x000465c0 lw t9, -0x7ab8(gp)            |     t9 = sym.mDNS_GetDomains;
    0x000465c4 move a3, zero                 |     a3 = 0;
    0x000465c8 lw v0, (v0)                   |     v0 = *(v0);
    0x000465cc addiu a2, zero, 2             |     a2 = 2;
    0x000465d0 addiu a1, s0, 0x2580          |     a1 = s0 + 0x2580;
    0x000465d4 move a0, s0                   |     a0 = s0;
    0x000465d8 sw zero, 0x18(sp)             |     *(var_18h) = 0;
    0x000465dc sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x000465e0 jalr t9                       |     t9 ();
    0x000465e4 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x000465e8 addiu a2, zero, 3             |     a2 = 3;
    0x000465ec move a0, s0                   |     a0 = s0;
    0x000465f0 lw s2, -0x7b64(gp)            |     s2 = *(gp);
    0x000465f4 lw s3, -0x7fc4(gp)            |     s3 = *(gp);
                                             |     /* fcn.0003b4d8 */
    0x000465f8 addiu s2, s2, -0x4b28         |     s2 += -0x4b28;
    0x000465fc move t9, s2                   |     t9 = s2;
    0x00046600 addiu a1, s3, 0xf14           |     a1 = s3 + 0xf14;
    0x00046604 bal 0x3b4d8                   |     fcn_0003b4d8 ();
    0x00046608 move a2, zero                 |     a2 = 0;
    0x0004660c addiu a1, s3, 0xf14           |     a1 = s3 + 0xf14;
    0x00046610 move t9, s2                   |     t9 = s2;
    0x00046614 move a0, s0                   |     a0 = s0;
    0x00046618 bal 0x3b4d8                   |     fcn_0003b4d8 ();
    0x0004661c lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00046620 move a0, zero                 |     a0 = 0;
    0x00046624 lw t9, -0x7b64(gp)            |     t9 = *(gp);
                                             |     /* fcn.00040c20 */
    0x00046628 addiu t9, t9, 0xc20           |     t9 += aav.0x00000c20;
    0x0004662c addiu a1, s3, 0xf14           |     a1 = s3 + 0xf14;
    0x00046630 bal 0x40c20                   |     fcn_00040c20 ();
    0x00046634 lw gp, 0x20(sp)               |     gp = *(var_20h);
    0x00046638 move a0, s0                   |     a0 = s0;
    0x0004663c lw t9, -0x7fdc(gp)            |     t9 = sym.udsserver_handle_configchange;
    0x00046640 b 0x4636c                     |     goto label_6;
                                             | label_9:
    0x00046644 lw s4, 0xc0(sp)               |     s4 = *(var_c0h);
    0x00046648 lw s3, 0xbc(sp)               |     s3 = *(var_bch);
    0x0004664c lw s2, 0xb8(sp)               |     s2 = *(var_b8h);
    0x00046650 lw s1, 0xb4(sp)               |     s1 = *(var_b4h);
    0x00046654 lw s0, 0xb0(sp)               |     s0 = *(var_b0h);
    0x00046658 addiu sp, sp, 0xc8            |     
    0x0004665c jr ra                         |     return v0;
                                             | }

[*] Function fprintf used 1 times mdnsd