[*] Binary protection state of mDNSResponderPosix

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


[*] Function fprintf tear down of mDNSResponderPosix

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/mDNSResponderPosix @ 0x5538 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00005538 ()              | void fcn_00005538 () {
    0x00005538 lui gp, 6                 |     
    0x0000553c addiu gp, gp, -0x34a8     |     
    0x00005540 addu gp, gp, t9           |     gp += t9;
    0x00005544 addiu sp, sp, -0x23d8     |     
    0x00005548 sw s0, 0x23b0(sp)         |     *(arg_23b0h) = s0;
    0x0000554c lw s0, -0x7a4c(gp)        |     s0 = *((gp - 7827));
    0x00005550 sw s7, 0x23cc(sp)         |     *(arg_23cch) = s7;
    0x00005554 sw s6, 0x23c8(sp)         |     *(arg_23c8h) = s6;
    0x00005558 sw s3, 0x23bc(sp)         |     *(arg_23bch) = s3;
    0x0000555c sw gp, 0x20(sp)           |     *(arg_20h) = gp;
    0x00005560 sw ra, 0x23d4(sp)         |     *(arg_23d4h) = ra;
    0x00005564 sw fp, 0x23d0(sp)         |     *(arg_23d0h) = fp;
    0x00005568 sw s5, 0x23c4(sp)         |     *(arg_23c4h) = s5;
    0x0000556c sw s4, 0x23c0(sp)         |     *(arg_23c0h) = s4;
    0x00005570 sw s2, 0x23b8(sp)         |     *(arg_23b8h) = s2;
    0x00005574 sw s1, 0x23b4(sp)         |     *(arg_23b4h) = s1;
    0x00005578 lw v0, (s0)               |     v0 = *(s0);
    0x0000557c move s3, a0               |     s3 = a0;
    0x00005580 move s7, a1               |     s7 = a1;
    0x00005584 move a0, a2               |     a0 = a2;
    0x00005588 sw v0, 0x23ac(sp)         |     *(arg_23ach) = v0;
    0x0000558c move s6, zero             |     s6 = 0;
                                         |     if (a1 != 0) {
    0x00005590 beqz a1, 0x5598           |         
    0x00005594 lw s6, 0x19a0(a1)         |         s6 = *((a1 + 1640));
                                         |     }
    0x00005598 lw a3, -0x7fc0(gp)        |     a3 = *(gp);
                                         |     if (s3 != 0) {
    0x0000559c bnez s3, 0x55c4           |         goto label_1;
                                         |     }
    0x000055a0 lw a1, -0x7fc0(gp)        |     a1 = *(gp);
    0x000055a4 lw a0, -0x7fc0(gp)        |     a0 = *(gp);
                                         |     /* str.SocketDataReady */
    0x000055a8 addiu a3, a3, -0x29a0     |     a3 += -0x29a0;
    0x000055ac addiu a2, zero, 0xf6      |     a2 = 0xf6;
                                         |     /* str.mDNSPosix.c */
    0x000055b0 addiu a1, a1, -0x2e1c     |     a1 += -0x2e1c;
                                         |     /* str.m___NULL */
    0x000055b4 addiu a0, a0, -0x2e10     |     a0 += -0x2e10;
                                         |     do {
    0x000055b8 lw t9, -0x7b44(gp)        |         t9 = sym.imp.__assert_fail;
    0x000055bc jalr t9                   |         t9 ();
    0x000055c0 nop                       |         
                                         | label_1:
    0x000055c4 addiu v0, zero, 0x1c      |         v0 = 0x1c;
                                         |         if (a0 >= 0) {
    0x000055c8 bgez a0, 0x55ec           |             goto label_2;
                                         |         }
    0x000055cc lw a3, -0x7fc0(gp)        |         a3 = *(gp);
    0x000055d0 lw a1, -0x7fc0(gp)        |         a1 = *(gp);
    0x000055d4 lw a0, -0x7fc0(gp)        |         a0 = *(gp);
                                         |         /* str.SocketDataReady */
    0x000055d8 addiu a3, a3, -0x29a0     |         a3 += -0x29a0;
    0x000055dc addiu a2, zero, 0xf7      |         a2 = 0xf7;
                                         |         /* str.mDNSPosix.c */
    0x000055e0 addiu a1, a1, -0x2e1c     |         a1 += -0x2e1c;
                                         |         /* str.skt___0 */
    0x000055e4 addiu a0, a0, -0x2e04     |         a0 += -0x2e04;
    0x000055e8 b 0x55b8                  |         
                                         |     } while (1);
                                         | label_2:
    0x000055ec sw v0, 0x34(sp)           |     *(arg_34h) = v0;
    0x000055f0 addiu v0, sp, 0x33        |     v0 = sp + 0x33;
    0x000055f4 lw t9, -0x7f8c(gp)        |     t9 = sym.recvfrom_flags;
    0x000055f8 sw v0, 0x1c(sp)           |     *(arg_1ch) = v0;
    0x000055fc addiu s1, sp, 0xb4        |     s1 = sp + 0xb4;
    0x00005600 addiu v0, sp, 0x34        |     v0 = sp + 0x34;
    0x00005604 addiu fp, sp, 0x84        |     fp = sp + 0x84;
    0x00005608 addiu s2, sp, 0x68        |     s2 = sp + 0x68;
    0x0000560c sw zero, 0x38(sp)         |     *(arg_38h) = 0;
    0x00005610 sw fp, 0x18(sp)           |     *(arg_18h) = fp;
    0x00005614 sw v0, 0x14(sp)           |     *(arg_14h) = v0;
    0x00005618 sw s2, 0x10(sp)           |     *(arg_10h) = s2;
    0x0000561c addiu a3, sp, 0x38        |     a3 = sp + 0x38;
    0x00005620 addiu a2, zero, 0x22f8    |     a2 = 0x22f8;
    0x00005624 move a1, s1               |     a1 = s1;
    0x00005628 bal 0x8e64                |     sym_recvfrom_flags ();
    0x0000562c move s4, v0               |     s4 = v0;
    0x00005630 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (v0 < 0) {
    0x00005634 bltz v0, 0x575c           |         goto label_3;
                                         |     }
    0x00005638 lw t9, -0x7f90(gp)        |     t9 = *((gp - 8164));
    0x0000563c addiu s5, sp, 0x40        |     s5 = sp + 0x40;
    0x00005640 addiu t9, t9, 0x5480      |     t9 += fcn.00005480;
    0x00005644 move a0, s2               |     a0 = s2;
    0x00005648 addiu a2, sp, 0x3c        |     a2 = sp + 0x3c;
    0x0000564c move a1, s5               |     a1 = s5;
    0x00005650 sw t9, 0x2c(sp)           |     *(arg_2ch) = t9;
    0x00005654 bal 0x5480                |     fcn_00005480 ();
    0x00005658 addiu s2, sp, 0x54        |     s2 = sp + 0x54;
    0x0000565c lw t9, 0x2c(sp)           |     t9 = *(arg_2ch);
    0x00005660 move a2, zero             |     a2 = 0;
    0x00005664 move a1, s2               |     a1 = s2;
    0x00005668 move a0, fp               |     a0 = fp;
    0x0000566c jalr t9                   |     t9 ();
    0x00005670 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     if (s7 == 0) {
    0x00005674 bnez s7, 0x56c8           |         
    0x00005678 lw t9, -0x7f88(gp)        |         t9 = sym.mDNSAddrIsDNSMulticast;
    0x0000567c move a0, s2               |         a0 = s2;
    0x00005680 bal 0xc4b4                |         sym_mDNSAddrIsDNSMulticast ();
    0x00005684 lw gp, 0x20(sp)           |         gp = *(arg_20h);
                                         |         if (v0 != 0) {
    0x00005688 bnez v0, 0x575c           |             goto label_3;
                                         |         }
                                         | label_0:
    0x0000568c lw v0, -0x7f84(gp)        |         v0 = *(gp);
    0x00005690 lw t9, -0x7f80(gp)        |         t9 = sym.mDNSCoreReceive;
    0x00005694 sw s6, 0x1c(sp)           |         *(arg_1ch) = s6;
    0x00005698 lhu v0, (v0)              |         v0 = *(v0);
    0x0000569c sw s2, 0x14(sp)           |         *(arg_14h) = s2;
    0x000056a0 sh v0, 0x18(sp)           |         *(arg_18h) = v0;
    0x000056a4 lhu v0, 0x3c(sp)          |         v0 = *(arg_3ch);
    0x000056a8 move a3, s5               |         a3 = s5;
    0x000056ac sh v0, 0x10(sp)           |         *(arg_10h) = v0;
    0x000056b0 addu a2, s1, s4           |         a2 = s1 + s4;
    0x000056b4 move a1, s1               |         a1 = s1;
    0x000056b8 move a0, s3               |         a0 = s3;
    0x000056bc jalr t9                   |         t9 ();
    0x000056c0 lw gp, 0x20(sp)           |         gp = *(arg_20h);
    0x000056c4 b 0x575c                  |         goto label_3;
                                         |     }
    0x000056c8 lb v0, 0xa4(sp)           |     v0 = *(arg_a4h);
    0x000056cc lw fp, -0x7fdc(gp)        |     fp = *((gp - 8183));
                                         |     if (v0 == 0) {
    0x000056d0 beqz v0, 0x5778           |         goto label_4;
                                         |     }
    0x000056d4 lw t9, -0x7a1c(gp)        |     t9 = sym.imp.strcmp;
    0x000056d8 lw a1, 0x1a20(s7)         |     a1 = *((s7 + 1672));
    0x000056dc addiu a0, sp, 0xa4        |     a0 = sp + 0xa4;
    0x000056e0 jalr t9                   |     t9 ();
    0x000056e4 lw gp, 0x20(sp)           |     gp = *(arg_20h);
                                         |     do {
    0x000056e8 sltu v0, zero, v0         |         v0 = (0 < v0) ? 1 : 0;
    0x000056ec lw v0, -0x5954(fp)        |         v0 = *(var_5954h);
                                         |         if (v0 == 0) {
    0x000056f0 beqz v0, 0x5794           |             goto label_5;
                                         |         }
    0x000056f4 lw v0, -0x7fdc(gp)        |         v0 = *((gp - 8183));
    0x000056f8 lw a3, -0x5954(fp)        |         a3 = *(var_5954h);
    0x000056fc lw s1, -0x7fdc(gp)        |         s1 = *((gp - 8183));
    0x00005700 lw v0, -0x5950(v0)        |         v0 = *((v0 - 5716));
    0x00005704 addiu a0, a3, 1           |         a0 = a3 + 1;
    0x00005708 addiu v0, v0, 1           |         v0++;
    0x0000570c mul v0, v0, a0            |         __asm ("mul v0, v0, a0");
    0x00005710 lw v1, -0x5958(s1)        |         v1 = *((s1 - 5718));
    0x00005714 addiu v1, v1, 1           |         v1++;
    0x00005718 sll v0, v0, 1             |         v0 <<= 1;
    0x0000571c slt v0, v0, v1            |         v0 = (v0 < v1) ? 1 : 0;
    0x00005720 sw v1, -0x5958(s1)        |         *((s1 - 5718)) = v1;
                                         |         if (v0 != 0) {
    0x00005724 beqz v0, 0x575c           |             
    0x00005728 lw v0, -0x7a34(gp)        |             v0 = *((gp - 7821));
    0x0000572c sw a3, 0x10(sp)           |             *(arg_10h) = a3;
    0x00005730 lw a2, -0x7fc0(gp)        |             a2 = *(gp);
    0x00005734 sw v1, 0x14(sp)           |             *(arg_14h) = v1;
    0x00005738 lw t9, -0x7b1c(gp)        |             t9 = sym.imp.__fprintf_chk
    0x0000573c lw a0, (v0)               |             a0 = *(v0);
    0x00005740 addu a3, v1, a3           |             a3 = v1 + a3;
                                         |             /* str._WARNING:_Received__d_packets__Accepted__d_packets__Rejected__d_packets_because_of_interface_mismatch_n */
    0x00005744 addiu a2, a2, -0x2df8     |             a2 += -0x2df8;
    0x00005748 addiu a1, zero, 1         |             a1 = 1;
    0x0000574c jalr t9                   |             t9 ();
    0x00005750 lw gp, 0x20(sp)           |             gp = *(arg_20h);
    0x00005754 sw zero, -0x5954(fp)      |             *((fp - 5717)) = 0;
    0x00005758 sw zero, -0x5958(s1)      |             *((s1 - 5718)) = 0;
                                         |         }
                                         | label_3:
    0x0000575c lw v1, 0x23ac(sp)         |         v1 = *(arg_23ach);
    0x00005760 lw v0, (s0)               |         v0 = *(s0);
    0x00005764 lw ra, 0x23d4(sp)         |         ra = *(arg_23d4h);
                                         |         if (v1 == v0) {
    0x00005768 beq v1, v0, 0x57a0        |             goto label_6;
                                         |         }
    0x0000576c lw t9, -0x7a70(gp)        |         t9 = sym.imp.__stack_chk_fail;
    0x00005770 jalr t9                   |         t9 ();
    0x00005774 nop                       |         
                                         | label_4:
    0x00005778 lw v1, 0xa0(sp)           |         v1 = *(arg_a0h);
    0x0000577c addiu v0, zero, -1        |         v0 = -1;
                                         |         if (v1 == v0) {
    0x00005780 beql v1, v0, 0x5794       |             goto label_5;
                                         |         }
    0x00005784 lw v0, -0x5954(fp)        |         v0 = *(var_5954h);
    0x00005788 lw v0, 0x1a28(s7)         |         v0 = *((s7 + 1674));
    0x0000578c xor v0, v0, v1            |         v0 ^= v1;
    0x00005790 b 0x56e8                  |         
                                         |     } while (1);
                                         | label_5:
    0x00005794 addiu v0, v0, 1           |     v0++;
    0x00005798 sw v0, -0x5954(fp)        |     *((fp - 5717)) = v0;
    0x0000579c b 0x568c                  |     goto label_0;
                                         | label_6:
    0x000057a0 lw fp, 0x23d0(sp)         |     fp = *(arg_23d0h);
    0x000057a4 lw s7, 0x23cc(sp)         |     s7 = *(arg_23cch);
    0x000057a8 lw s6, 0x23c8(sp)         |     s6 = *(arg_23c8h);
    0x000057ac lw s5, 0x23c4(sp)         |     s5 = *(arg_23c4h);
    0x000057b0 lw s4, 0x23c0(sp)         |     s4 = *(arg_23c0h);
    0x000057b4 lw s3, 0x23bc(sp)         |     s3 = *(arg_23bch);
    0x000057b8 lw s2, 0x23b8(sp)         |     s2 = *(arg_23b8h);
    0x000057bc lw s1, 0x23b4(sp)         |     s1 = *(arg_23b4h);
    0x000057c0 lw s0, 0x23b0(sp)         |     s0 = *(arg_23b0h);
    0x000057c4 addiu sp, sp, 0x23d8      |     
    0x000057c8 jr ra                     |     return v0;
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/mDNSResponderPosix @ 0x6aa8 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.00006aa8 ()                  | void fcn_00006aa8 () {
    0x00006aa8 lui gp, 6                     |     
    0x00006aac addiu gp, gp, -0x4a18         |     
    0x00006ab0 addu gp, gp, t9               |     gp += t9;
    0x00006ab4 addiu sp, sp, -0x38           |     
    0x00006ab8 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x00006abc sw s5, 0x2c(sp)               |     *(var_2ch) = s5;
    0x00006ac0 sw ra, 0x34(sp)               |     *(var_34h) = ra;
    0x00006ac4 sw s6, 0x30(sp)               |     *(var_30h) = s6;
    0x00006ac8 sw s4, 0x28(sp)               |     *(var_28h) = s4;
    0x00006acc sw s3, 0x24(sp)               |     *(var_24h) = s3;
    0x00006ad0 sw s2, 0x20(sp)               |     *(var_20h) = s2;
    0x00006ad4 sw s1, 0x1c(sp)               |     *(var_1ch) = s1;
    0x00006ad8 sw s0, 0x18(sp)               |     *(var_18h) = s0;
    0x00006adc lw s5, 0x48(sp)               |     s5 = *(arg_48h);
                                             |     if (a0 != 0) {
    0x00006ae0 bnez a0, 0x6b0c               |         goto label_3;
                                             |     }
    0x00006ae4 lw a3, -0x7fc0(gp)            |     a3 = *(gp);
    0x00006ae8 lw a1, -0x7fc0(gp)            |     a1 = *(gp);
    0x00006aec lw a0, -0x7fc0(gp)            |     a0 = *(gp);
                                             |     /* str.SetupOneInterface */
    0x00006af0 addiu a3, a3, -0x2934         |     a3 += -0x2934;
    0x00006af4 addiu a2, zero, 0x379         |     a2 = 0x379;
                                             |     /* str.mDNSPosix.c */
    0x00006af8 addiu a1, a1, -0x2e1c         |     a1 += -0x2e1c;
                                             |     /* str.m___NULL */
    0x00006afc addiu a0, a0, -0x2e10         |     a0 += -0x2e10;
                                             |     do {
                                             | label_0:
    0x00006b00 lw t9, -0x7b44(gp)            |         t9 = sym.imp.__assert_fail;
    0x00006b04 jalr t9                       |         t9 ();
    0x00006b08 nop                           |         
                                             | label_3:
    0x00006b0c move s3, a1                   |         s3 = a1;
                                             |         if (a1 != 0) {
    0x00006b10 bnez a1, 0x6b34               |             goto label_4;
                                             |         }
    0x00006b14 lw a3, -0x7fc0(gp)            |         a3 = *(gp);
    0x00006b18 lw a1, -0x7fc0(gp)            |         a1 = *(gp);
    0x00006b1c lw a0, -0x7fc0(gp)            |         a0 = *(gp);
                                             |         /* str.SetupOneInterface */
    0x00006b20 addiu a3, a3, -0x2934         |         a3 += -0x2934;
    0x00006b24 addiu a2, zero, 0x37a         |         a2 = 0x37a;
                                             |         /* str.mDNSPosix.c */
    0x00006b28 addiu a1, a1, -0x2e1c         |         a1 += -0x2e1c;
                                             |         /* str.intfAddr___NULL */
    0x00006b2c addiu a0, a0, -0x2c60         |         a0 += -0x2c60;
    0x00006b30 b 0x6b00                      |         
                                             |     } while (1);
                                             | label_4:
    0x00006b34 move s6, a2                   |     s6 = a2;
                                             |     if (a2 == 0) {
    0x00006b38 bnez a2, 0x6b5c               |         
    0x00006b3c lw a3, -0x7fc0(gp)            |         a3 = *(gp);
    0x00006b40 lw a1, -0x7fc0(gp)            |         a1 = *(gp);
    0x00006b44 lw a0, -0x7fc0(gp)            |         a0 = *(gp);
                                             |         /* str.SetupOneInterface */
    0x00006b48 addiu a3, a3, -0x2934         |         a3 += -0x2934;
    0x00006b4c addiu a2, zero, 0x37c         |         a2 = 0x37c;
                                             |         /* str.mDNSPosix.c */
    0x00006b50 addiu a1, a1, -0x2e1c         |         a1 += -0x2e1c;
                                             |         /* str.intfMask___NULL */
    0x00006b54 addiu a0, a0, -0x2a64         |         a0 += -0x2a64;
    0x00006b58 b 0x6b00                      |         goto label_0;
                                             |     }
    0x00006b5c lw t9, -0x7b48(gp)            |     t9 = sym.imp.calloc;
    0x00006b60 move s4, a0                   |     s4 = a0;
    0x00006b64 addiu a1, zero, 0x1a34        |     a1 = 0x1a34;
    0x00006b68 addiu a0, zero, 1             |     a0 = 1;
    0x00006b6c move s2, a3                   |     s2 = a3;
    0x00006b70 jalr t9                       |     t9 ();
    0x00006b74 move s0, v0                   |     s0 = v0;
    0x00006b78 lw gp, 0x10(sp)               |     gp = *(var_10h);
                                             |     if (v0 != 0) {
    0x00006b7c bnez v0, 0x6ba0               |         goto label_5;
                                             |     }
    0x00006b80 lw a3, -0x7fc0(gp)            |     a3 = *(gp);
    0x00006b84 addiu a2, zero, 0x380         |     a2 = 0x380;
                                             |     /* str.SetupOneInterface */
    0x00006b88 addiu a3, a3, -0x2934         |     a3 += -0x2934;
                                             |     do {
    0x00006b8c lw a1, -0x7fc0(gp)            |         a1 = *(gp);
    0x00006b90 lw a0, -0x7fc0(gp)            |         a0 = *(gp);
                                             |         /* str.mDNSPosix.c */
    0x00006b94 addiu a1, a1, -0x2e1c         |         a1 += -0x2e1c;
                                             |         /* esilref: '' */
    0x00006b98 addiu a0, a0, -0x2810         |         a0 += -aav.0x00002810;
    0x00006b9c b 0x6b00                      |         goto label_0;
                                             | label_5:
    0x00006ba0 lw t9, -0x7a40(gp)            |         t9 = sym.imp.strdup;
    0x00006ba4 move a0, s2                   |         a0 = s2;
    0x00006ba8 jalr t9                       |         t9 ();
    0x00006bac sw v0, 0x1a20(s0)             |         *((s0 + 1672)) = v0;
    0x00006bb0 lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |         if (v0 != 0) {
    0x00006bb4 bnez v0, 0x6bc8               |             goto label_6;
                                             |         }
    0x00006bb8 lw a3, -0x7fc0(gp)            |         a3 = *(gp);
    0x00006bbc addiu a2, zero, 0x386         |         a2 = 0x386;
                                             |         /* str.SetupOneInterface */
    0x00006bc0 addiu a3, a3, -0x2934         |         a3 += -0x2934;
    0x00006bc4 b 0x6b8c                      |         
                                             |     } while (1);
                                             | label_6:
    0x00006bc8 lw s1, -0x7f90(gp)            |     s1 = *((gp - 8164));
    0x00006bcc move a2, zero                 |     a2 = 0;
    0x00006bd0 addiu s1, s1, 0x5480          |     s1 += fcn.00005480;
    0x00006bd4 addiu a1, s0, 0x19a4          |     a1 = s0 + 0x19a4;
    0x00006bd8 move t9, s1                   |     t9 = s1;
    0x00006bdc move a0, s3                   |     a0 = s3;
    0x00006be0 bal 0x5480                    |     fcn_00005480 ();
    0x00006be4 move a2, zero                 |     a2 = 0;
    0x00006be8 addiu a1, s0, 0x19b8          |     a1 = s0 + 0x19b8;
    0x00006bec move t9, s1                   |     t9 = s1;
    0x00006bf0 move a0, s6                   |     a0 = s6;
    0x00006bf4 bal 0x5480                    |     fcn_00005480 ();
    0x00006bf8 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x00006bfc move a1, s2                   |     a1 = s2;
    0x00006c00 addiu a2, zero, 0x40          |     a2 = 0x40;
    0x00006c04 lw t9, -0x7ae0(gp)            |     t9 = sym.imp.strncpy;
    0x00006c08 addiu a0, s0, 0x19d2          |     a0 = s0 + 0x19d2;
    0x00006c0c jalr t9                       |     t9 ();
    0x00006c10 lbu v0, 9(s4)                 |     v0 = *((s4 + 9));
    0x00006c14 lw s2, 0x1a20(s0)             |     s2 = *((s0 + 1672));
    0x00006c18 sb v0, 0x1a12(s0)             |     *((s0 + 6674)) = v0;
    0x00006c1c addiu v0, zero, 1             |     v0 = 1;
    0x00006c20 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x00006c24 sb zero, 0x1a11(s0)           |     *((s0 + 6673)) = 0;
    0x00006c28 sb v0, 0x1a13(s0)             |     *((s0 + 6675)) = v0;
                                             |     if (s2 == 0) {
    0x00006c2c bnez s2, 0x6c50               |         
    0x00006c30 lw a3, -0x7fc0(gp)            |         a3 = *(gp);
    0x00006c34 lw a1, -0x7fc0(gp)            |         a1 = *(gp);
    0x00006c38 lw a0, -0x7fc0(gp)            |         a0 = *(gp);
                                             |         /* str.SetupOneInterface */
    0x00006c3c addiu a3, a3, -0x2934         |         a3 += -0x2934;
    0x00006c40 addiu a2, zero, 0x396         |         a2 = 0x396;
                                             |         /* str.mDNSPosix.c */
    0x00006c44 addiu a1, a1, -0x2e1c         |         a1 += -0x2e1c;
                                             |         /* str.intf__intfName___NULL */
    0x00006c48 addiu a0, a0, -0x2a50         |         a0 += -0x2a50;
    0x00006c4c b 0x6b00                      |         goto label_0;
                                             |     }
    0x00006c50 addiu v0, zero, -1            |     v0 = -1;
    0x00006c54 lw s1, 0x216c(s4)             |     s1 = *((s4 + 2139));
    0x00006c58 sw s5, 0x1a28(s0)             |     *((s0 + 1674)) = s5;
    0x00006c5c sw v0, 0x1a2c(s0)             |     *((s0 + 1675)) = v0;
    0x00006c60 sw v0, 0x1a30(s0)             |     *((s0 + 1676)) = v0;
                                             |     do {
    0x00006c64 lw t9, -0x7a1c(gp)            |         t9 = sym.imp.strcmp;
                                             |         if (s1 == 0) {
    0x00006c68 beqz s1, 0x6d8c               |             goto label_7;
                                             |         }
    0x00006c6c lw a0, 0x1a20(s1)             |         a0 = *((s1 + 1672));
    0x00006c70 move a1, s2                   |         a1 = s2;
    0x00006c74 jalr t9                       |         t9 ();
    0x00006c78 lw gp, 0x10(sp)               |         gp = *(var_10h);
                                             |         if (v0 == 0) {
    0x00006c7c bnez v0, 0x6d84               |             
                                             | label_1:
    0x00006c80 sw s1, 0x19a0(s0)             |             *((s0 + 1640)) = s1;
    0x00006c84 lw v1, 0x1a2c(s1)             |             v1 = *((s1 + 1675));
    0x00006c88 addiu v0, zero, -1            |             v0 = -1;
    0x00006c8c lw v1, 0x1a30(s1)             |             v1 = *((s1 + 1676));
                                             |             if (v1 != v0) {
    0x00006c90 bnel v1, v0, 0x6cac           |                 
    0x00006c94 lhu v1, (s3)                  |                 v1 = *(s3);
    0x00006c98 addiu v0, zero, 2             |                 v0 = 2;
    0x00006c9c addiu a3, s1, 0x1a2c          |                 a3 = s1 + 0x1a2c;
                                             |                 if (v1 == v0) {
    0x00006ca0 beq v1, v0, 0x6cc8            |                     goto label_8;
                                             |                 }
    0x00006ca4 lw v1, 0x1a30(s1)             |                 v1 = *((s1 + 1676));
    0x00006ca8 addiu v0, zero, -1            |                 v0 = -1;
                                             |             }
    0x00006cac move s2, zero                 |             s2 = 0;
                                             |             if (v1 == v0) {
    0x00006cb0 bne v1, v0, 0x6cec            |                 
    0x00006cb4 lhu v1, (s3)                  |                 v1 = *(s3);
    0x00006cb8 addiu v0, zero, 0xa           |                 v0 = 0xa;
    0x00006cbc addiu v0, zero, 0x100         |                 v0 = aav.0x00000100;
                                             |                 if (v1 != v0) {
    0x00006cc0 bne v1, v0, 0x6cf0            |                     goto label_9;
                                             |                 }
    0x00006cc4 addiu a3, s1, 0x1a30          |                 a3 = s1 + 0x1a30;
                                             | label_8:
    0x00006cc8 lw v0, -0x7f84(gp)            |                 v0 = *(gp);
    0x00006ccc lw t9, -0x7f90(gp)            |                 t9 = *((gp - 8164));
    0x00006cd0 move a2, s5                   |                 a2 = s5;
    0x00006cd4 lhu a1, (v0)                  |                 a1 = *(v0);
    0x00006cd8 addiu t9, t9, 0x5f40          |                 t9 += fcn.00005f40;
    0x00006cdc move a0, s3                   |                 a0 = s3;
    0x00006ce0 bal 0x5f40                    |                 fcn_00005f40 ();
    0x00006ce4 lw gp, 0x10(sp)               |                 gp = *(var_10h);
    0x00006ce8 move s2, v0                   |                 s2 = v0;
                                             |             }
    0x00006cec addiu v0, zero, 0x100         |             v0 = aav.0x00000100;
                                             | label_9:
    0x00006cf0 sh v0, 0x1a18(s0)             |             *((s0 + 3340)) = v0;
                                             |             if (s2 != 0) {
    0x00006cf4 bnez s2, 0x6d94               |                 goto label_10;
                                             |             }
    0x00006cf8 lw t9, -0x7f5c(gp)            |             t9 = sym.mDNS_RegisterInterface;
    0x00006cfc addiu a2, zero, 1             |             a2 = 1;
    0x00006d00 move a1, s0                   |             a1 = s0;
    0x00006d04 move a0, s4                   |             a0 = s4;
    0x00006d08 jalr t9                       |             t9 ();
    0x00006d0c move s2, v0                   |             s2 = v0;
    0x00006d10 lw gp, 0x10(sp)               |             gp = *(var_10h);
                                             |             if (v0 != 0) {
    0x00006d14 bnez v0, 0x6d94               |                 goto label_10;
                                             |             }
    0x00006d18 lw v1, -0x7fdc(gp)            |             v1 = *((gp - 8183));
    0x00006d1c lw v0, -0x5950(v1)            |             v0 = *((v1 - 5716));
    0x00006d20 addiu v0, v0, 1               |             v0++;
    0x00006d24 sw v0, -0x5950(v1)            |             *((v1 - 5716)) = v0;
    0x00006d28 lw v0, -0x7fd4(gp)            |             v0 = *(gp);
    0x00006d2c lw v0, (v0)                   |             v0 = *(v0);
    0x00006d30 lw ra, 0x34(sp)               |             ra = *(var_34h);
                                             |             if (v0 > 0) {
    0x00006d34 blez v0, 0x6d5c               |                 
    0x00006d38 lw v0, -0x7a34(gp)            |                 v0 = *((gp - 7821));
    0x00006d3c lw a2, -0x7fc0(gp)            |                 a2 = *(gp);
    0x00006d40 lw a3, 0x1a20(s0)             |                 a3 = *((s0 + 1672));
    0x00006d44 lw a0, (v0)                   |                 a0 = *(v0);
    0x00006d48 lw t9, -0x7b1c(gp)            |                 t9 = sym.imp.__fprintf_chk
                                             |                 /* str.Registered_interface__s_n */
    0x00006d4c addiu a2, a2, -0x2a38         |                 a2 += -0x2a38;
    0x00006d50 addiu a1, zero, 1             |                 a1 = 1;
    0x00006d54 jalr t9                       |                 t9 ();
                                             | label_2:
    0x00006d58 lw ra, 0x34(sp)               |                 ra = *(var_34h);
                                             |             }
    0x00006d5c move v0, s2                   |             v0 = s2;
    0x00006d60 lw s6, 0x30(sp)               |             s6 = *(var_30h);
    0x00006d64 lw s5, 0x2c(sp)               |             s5 = *(var_2ch);
    0x00006d68 lw s4, 0x28(sp)               |             s4 = *(var_28h);
    0x00006d6c lw s3, 0x24(sp)               |             s3 = *(var_24h);
    0x00006d70 lw s2, 0x20(sp)               |             s2 = *(var_20h);
    0x00006d74 lw s1, 0x1c(sp)               |             s1 = *(var_1ch);
    0x00006d78 lw s0, 0x18(sp)               |             s0 = *(var_18h);
    0x00006d7c addiu sp, sp, 0x38            |             
    0x00006d80 jr ra                         |             return v0;
                                             |         }
    0x00006d84 lw s1, (s1)                   |         s1 = *(s1);
    0x00006d88 b 0x6c64                      |         
                                             |     } while (1);
                                             | label_7:
    0x00006d8c move s1, s0                   |     s1 = s0;
    0x00006d90 b 0x6c80                      |     goto label_1;
                                             | label_10:
    0x00006d94 lw t9, -0x7f90(gp)            |     t9 = *((gp - 8164));
    0x00006d98 addiu t9, t9, 0x699c          |     t9 += fcn.0000699c;
    0x00006d9c move a0, s0                   |     a0 = s0;
    0x00006da0 bal 0x699c                    |     fcn_0000699c ();
    0x00006da4 b 0x6d58                      |     goto label_2;
    0x00006da8 nop                           |     
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/mDNSResponderPosix @ 0x6dac */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00006dac ()              | void fcn_00006dac () {
    0x00006dac lui gp, 6                 |     
    0x00006db0 addiu gp, gp, -0x4d1c     |     
    0x00006db4 addu gp, gp, t9           |     gp += t9;
    0x00006db8 addiu sp, sp, -0x30       |     
    0x00006dbc sw gp, 0x10(sp)           |     *(var_10h) = gp;
    0x00006dc0 sw ra, 0x2c(sp)           |     *(var_2ch) = ra;
    0x00006dc4 sw s4, 0x28(sp)           |     *(var_28h) = s4;
    0x00006dc8 sw s3, 0x24(sp)           |     *(var_24h) = s3;
    0x00006dcc sw s2, 0x20(sp)           |     *(var_20h) = s2;
    0x00006dd0 sw s1, 0x1c(sp)           |     *(var_1ch) = s1;
    0x00006dd4 sw s0, 0x18(sp)           |     *(var_18h) = s0;
    0x00006dd8 lw s2, -0x7fc0(gp)        |     s2 = *(gp);
                                         |     if (a0 == 0) {
    0x00006ddc beqz a0, 0x6e38           |         goto label_0;
                                         |     }
    0x00006de0 lw s3, -0x7f90(gp)        |     s3 = *((gp - 8164));
    0x00006de4 lw s4, -0x7fd4(gp)        |     s4 = *(gp);
    0x00006de8 move s1, a0               |     s1 = a0;
                                         |     /* str.Deregistered_interface__s_n */
    0x00006dec addiu s2, s2, -0x2a1c     |     s2 += -0x2a1c;
    0x00006df0 addiu s3, s3, 0x699c      |     s3 += fcn.0000699c;
                                         |     do {
    0x00006df4 lw s0, 0x216c(s1)         |         s0 = *((s1 + 2139));
    0x00006df8 lw t9, -0x7f58(gp)        |         t9 = sym.mDNS_DeregisterInterface;
                                         |         if (s0 == 0) {
    0x00006dfc bnez s0, 0x6e5c           |             
    0x00006e00 lw v0, -0x7fdc(gp)        |             v0 = *((gp - 8183));
    0x00006e04 lw ra, 0x2c(sp)           |             ra = *(var_2ch);
    0x00006e08 lw s4, 0x28(sp)           |             s4 = *(var_28h);
    0x00006e0c sw zero, -0x5950(v0)      |             *((v0 - 5716)) = 0;
    0x00006e10 lw v0, -0x7fdc(gp)        |             v0 = *((gp - 8183));
    0x00006e14 lw s3, 0x24(sp)           |             s3 = *(var_24h);
    0x00006e18 lw s2, 0x20(sp)           |             s2 = *(var_20h);
    0x00006e1c sw zero, -0x5954(v0)      |             *((v0 - 5717)) = 0;
    0x00006e20 lw v0, -0x7fdc(gp)        |             v0 = *((gp - 8183));
    0x00006e24 lw s1, 0x1c(sp)           |             s1 = *(var_1ch);
    0x00006e28 lw s0, 0x18(sp)           |             s0 = *(var_18h);
    0x00006e2c sw zero, -0x5958(v0)      |             *((v0 - 5718)) = 0;
    0x00006e30 addiu sp, sp, 0x30        |             
    0x00006e34 jr ra                     |             return v0;
                                         | label_0:
    0x00006e38 lw a3, -0x7fc0(gp)        |             a3 = *(gp);
    0x00006e3c lw a1, -0x7fc0(gp)        |             a1 = *(gp);
    0x00006e40 lw a0, -0x7fc0(gp)        |             a0 = *(gp);
    0x00006e44 lw t9, -0x7b44(gp)        |             t9 = sym.imp.__assert_fail;
                                         |             /* str.ClearInterfaceList */
    0x00006e48 addiu a3, a3, -0x2978     |             a3 += -0x2978;
    0x00006e4c addiu a2, zero, 0x267     |             a2 = 0x267;
                                         |             /* str.mDNSPosix.c */
    0x00006e50 addiu a1, a1, -0x2e1c     |             a1 += -0x2e1c;
                                         |             /* str.m___NULL */
    0x00006e54 addiu a0, a0, -0x2e10     |             a0 += -0x2e10;
    0x00006e58 jalr t9                   |             t9 ();
                                         |         }
    0x00006e5c addiu a2, zero, 1         |         a2 = 1;
    0x00006e60 move a1, s0               |         a1 = s0;
    0x00006e64 move a0, s1               |         a0 = s1;
    0x00006e68 jalr t9                   |         t9 ();
    0x00006e6c lw v0, (s4)               |         v0 = *(s4);
    0x00006e70 lw gp, 0x10(sp)           |         gp = *(var_10h);
                                         |         if (v0 > 0) {
    0x00006e74 blez v0, 0x6e94           |             
    0x00006e78 lw v0, -0x7a34(gp)        |             v0 = *((gp - 7821));
    0x00006e7c lw t9, -0x7b1c(gp)        |             t9 = sym.imp.__fprintf_chk
    0x00006e80 lw a3, 0x1a20(s0)         |             a3 = *((s0 + 1672));
    0x00006e84 lw a0, (v0)               |             a0 = *(v0);
    0x00006e88 move a2, s2               |             a2 = s2;
    0x00006e8c addiu a1, zero, 1         |             a1 = 1;
    0x00006e90 jalr t9                   |             t9 ();
                                         |         }
    0x00006e94 move t9, s3               |         t9 = s3;
    0x00006e98 move a0, s0               |         a0 = s0;
    0x00006e9c bal 0x699c                |         fcn_0000699c ();
    0x00006ea0 lw gp, 0x10(sp)           |         gp = *(var_10h);
    0x00006ea4 b 0x6df4                  |         
                                         |     } while (1);
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/mDNSResponderPosix @ 0x3bda8 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0003bda8 ()                  | void fcn_0003bda8 () {
    0x0003bda8 lui gp, 2                     |     
    0x0003bdac addiu gp, gp, 0x62e8          |     
    0x0003bdb0 addu gp, gp, t9               |     gp += t9;
    0x0003bdb4 addiu sp, sp, -0x20           |     
    0x0003bdb8 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
    0x0003bdbc sw s0, 0x18(sp)               |     *(var_18h) = s0;
    0x0003bdc0 lw s0, -0x7a34(gp)            |     s0 = *((gp - 7821));
    0x0003bdc4 sw ra, 0x1c(sp)               |     *(var_1ch) = ra;
    0x0003bdc8 sw gp, 0x10(sp)               |     *(var_10h) = gp;
    0x0003bdcc lw a2, -0x7fd8(gp)            |     a2 = *((gp - 8182));
    0x0003bdd0 lw a3, -0x5f7c(v0)            |     a3 = *((v0 - 6111));
    0x0003bdd4 lw t9, -0x7b1c(gp)            |     t9 = sym.imp.__fprintf_chk
    0x0003bdd8 lw a0, (s0)                   |     a0 = *(s0);
                                             |     /* str.Usage:__s___v_level_____r____n_name____t_type____d_domain____p_port____f_file____b____P_pidfile____x_nameval_...__n */
    0x0003bddc addiu a2, a2, -0x7180         |     a2 += -0x7180;
    0x0003bde0 addiu a1, zero, 1             |     a1 = 1;
    0x0003bde4 jalr t9                       |     t9 ();
    0x0003bde8 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003bdec lw a1, (s0)                   |     a1 = *(s0);
    0x0003bdf0 lw a0, -0x7fd8(gp)            |     a0 = *((gp - 8182));
    0x0003bdf4 lw t9, -0x7b38(gp)            |     t9 = sym.imp.fputs;
                                             |     /* str.___________v_verbose_mode__level_is_a_number_from_0_to_2_n */
    0x0003bdf8 addiu a0, a0, -0x710c         |     a0 += -0x710c;
    0x0003bdfc jalr t9                       |     t9 ();
    0x0003be00 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003be04 lw a1, (s0)                   |     a1 = *(s0);
    0x0003be08 lw a0, -0x7fd8(gp)            |     a0 = *((gp - 8182));
    0x0003be0c lw t9, -0x7b38(gp)            |     t9 = sym.imp.fputs;
                                             |     /* str._____________0__no_debugging_info__default__n */
    0x0003be10 addiu a0, a0, -0x70d0         |     a0 += -0x70d0;
    0x0003be14 jalr t9                       |     t9 ();
    0x0003be18 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003be1c lw a1, (s0)                   |     a1 = *(s0);
    0x0003be20 lw a0, -0x7fd8(gp)            |     a0 = *((gp - 8182));
    0x0003be24 lw t9, -0x7b38(gp)            |     t9 = sym.imp.fputs;
                                             |     /* str._____________1__standard_debugging_info_n */
    0x0003be28 addiu a0, a0, -0x70a0         |     a0 += -0x70a0;
    0x0003be2c jalr t9                       |     t9 ();
    0x0003be30 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003be34 lw a1, (s0)                   |     a1 = *(s0);
    0x0003be38 lw a0, -0x7fd8(gp)            |     a0 = *((gp - 8182));
    0x0003be3c lw t9, -0x7b38(gp)            |     t9 = sym.imp.fputs;
                                             |     /* str._____________2__intense_debugging_info_n */
    0x0003be40 addiu a0, a0, -0x7074         |     a0 += -0x7074;
    0x0003be44 jalr t9                       |     t9 ();
    0x0003be48 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003be4c lw a1, (s0)                   |     a1 = *(s0);
    0x0003be50 lw a0, -0x7fd8(gp)            |     a0 = *((gp - 8182));
    0x0003be54 lw t9, -0x7b38(gp)            |     t9 = sym.imp.fputs;
                                             |     /* str._____________can_be_cycled_kill__USR1_n */
    0x0003be58 addiu a0, a0, -0x7048         |     a0 += -0x7048;
    0x0003be5c jalr t9                       |     t9 ();
    0x0003be60 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003be64 lw a1, (s0)                   |     a1 = *(s0);
    0x0003be68 lw a0, -0x7fd8(gp)            |     a0 = *((gp - 8182));
    0x0003be6c lw t9, -0x7b38(gp)            |     t9 = sym.imp.fputs;
                                             |     /* str.___________r_also_bind_to_port_53__port_5353_is_always_bound__n */
    0x0003be70 addiu a0, a0, -0x7020         |     a0 += -0x7020;
    0x0003be74 jalr t9                       |     t9 ();
    0x0003be78 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003be7c lw a1, (s0)                   |     a1 = *(s0);
    0x0003be80 lw a0, -0x7fd8(gp)            |     a0 = *((gp - 8182));
    0x0003be84 lw t9, -0x7b38(gp)            |     t9 = sym.imp.fputs;
                                             |     /* str.___________n_uses_name_as_the_service_name__required__n */
    0x0003be88 addiu a0, a0, -0x6fe0         |     a0 += -0x6fe0;
    0x0003be8c jalr t9                       |     t9 ();
    0x0003be90 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003be94 lw a0, (s0)                   |     a0 = *(s0);
    0x0003be98 addiu a1, zero, 1             |     a1 = 1;
    0x0003be9c lw a3, -0x7fd8(gp)            |     a3 = *((gp - 8182));
    0x0003bea0 lw a2, -0x7fd8(gp)            |     a2 = *((gp - 8182));
    0x0003bea4 lw t9, -0x7b1c(gp)            |     t9 = sym.imp.__fprintf_chk
                                             |     /* str._afpovertcp._tcp. */
    0x0003bea8 addiu a3, a3, -0x67c0         |     a3 += -0x67c0;
                                             |     /* str.___________t_uses_type_as_the_service_type__default_is__s__n */
    0x0003beac addiu a2, a2, -0x6fa4         |     a2 += -0x6fa4;
    0x0003beb0 jalr t9                       |     t9 ();
    0x0003beb4 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003beb8 lw a0, (s0)                   |     a0 = *(s0);
    0x0003bebc addiu a1, zero, 1             |     a1 = 1;
    0x0003bec0 lw a3, -0x7fd8(gp)            |     a3 = *((gp - 8182));
    0x0003bec4 lw a2, -0x7fd8(gp)            |     a2 = *((gp - 8182));
    0x0003bec8 lw t9, -0x7b1c(gp)            |     t9 = sym.imp.__fprintf_chk
                                             |     /* str.local. */
    0x0003becc addiu a3, a3, -0x67c8         |     a3 += -0x67c8;
                                             |     /* str.___________d_uses_domain_as_the_service_domain__default_is__s__n */
    0x0003bed0 addiu a2, a2, -0x6f64         |     a2 += -0x6f64;
    0x0003bed4 jalr t9                       |     t9 ();
    0x0003bed8 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003bedc lw a0, (s0)                   |     a0 = *(s0);
    0x0003bee0 addiu a3, zero, 0x224         |     a3 = 0x224;
    0x0003bee4 lw a2, -0x7fd8(gp)            |     a2 = *((gp - 8182));
    0x0003bee8 lw t9, -0x7b1c(gp)            |     t9 = sym.imp.__fprintf_chk
                                             |     /* str.___________p_uses_port_as_the_port_number__default_is__d__n */
    0x0003beec addiu a2, a2, -0x6f20         |     a2 += -0x6f20;
    0x0003bef0 addiu a1, zero, 1             |     a1 = 1;
    0x0003bef4 jalr t9                       |     t9 ();
    0x0003bef8 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003befc lw a1, (s0)                   |     a1 = *(s0);
    0x0003bf00 lw a0, -0x7fd8(gp)            |     a0 = *((gp - 8182));
    0x0003bf04 lw t9, -0x7b38(gp)            |     t9 = sym.imp.fputs;
                                             |     /* str.___________f_reads_a_service_list_from_file_n */
    0x0003bf08 addiu a0, a0, -0x6ee0         |     a0 += -0x6ee0;
    0x0003bf0c jalr t9                       |     t9 ();
    0x0003bf10 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003bf14 lw a1, (s0)                   |     a1 = *(s0);
    0x0003bf18 lw a0, -0x7fd8(gp)            |     a0 = *((gp - 8182));
    0x0003bf1c lw t9, -0x7b38(gp)            |     t9 = sym.imp.fputs;
                                             |     /* str.___________b_forces_daemon__background__mode_n */
    0x0003bf20 addiu a0, a0, -0x6eb0         |     a0 += -0x6eb0;
    0x0003bf24 jalr t9                       |     t9 ();
    0x0003bf28 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003bf2c lw a1, (s0)                   |     a1 = *(s0);
    0x0003bf30 lw a0, -0x7fd8(gp)            |     a0 = *((gp - 8182));
    0x0003bf34 lw t9, -0x7b38(gp)            |     t9 = sym.imp.fputs;
                                             |     /* str.___________P_uses_pidfile_as_the_PID_file_n */
    0x0003bf38 addiu a0, a0, -0x6e80         |     a0 += -0x6e80;
    0x0003bf3c jalr t9                       |     t9 ();
    0x0003bf40 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003bf44 lw a0, (s0)                   |     a0 = *(s0);
    0x0003bf48 addiu a1, zero, 1             |     a1 = 1;
    0x0003bf4c lw a3, -0x7fd8(gp)            |     a3 = *((gp - 8182));
    0x0003bf50 lw a2, -0x7fd8(gp)            |     a2 = *((gp - 8182));
    0x0003bf54 lw t9, -0x7b1c(gp)            |     t9 = sym.imp.__fprintf_chk
                                             |     /* str._var_run_bonjour_mDNSResponder.pid */
    0x0003bf58 addiu a3, a3, -0x67ac         |     a3 += -0x67ac;
                                             |     /* str.______________default_is__s__n */
    0x0003bf5c addiu a2, a2, -0x6e50         |     a2 += -0x6e50;
    0x0003bf60 jalr t9                       |     t9 ();
    0x0003bf64 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003bf68 lw a1, (s0)                   |     a1 = *(s0);
    0x0003bf6c lw a0, -0x7fd8(gp)            |     a0 = *((gp - 8182));
    0x0003bf70 lw t9, -0x7b38(gp)            |     t9 = sym.imp.fputs;
                                             |     /* str._____________only_meaningful_if__b_also_specified_n */
    0x0003bf74 addiu a0, a0, -0x6e30         |     a0 += -0x6e30;
    0x0003bf78 jalr t9                       |     t9 ();
    0x0003bf7c lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003bf80 lw a1, (s0)                   |     a1 = *(s0);
    0x0003bf84 lw a0, -0x7fd8(gp)            |     a0 = *((gp - 8182));
    0x0003bf88 lw t9, -0x7b38(gp)            |     t9 = sym.imp.fputs;
                                             |     /* str.___________x_stores_nameval_in_TXT_record__default_is_empty_._n */
    0x0003bf8c addiu a0, a0, -0x6dfc         |     a0 += -0x6dfc;
    0x0003bf90 jalr t9                       |     t9 ();
    0x0003bf94 lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003bf98 lw a1, (s0)                   |     a1 = *(s0);
    0x0003bf9c lw a0, -0x7fd8(gp)            |     a0 = *((gp - 8182));
    0x0003bfa0 lw t9, -0x7b38(gp)            |     t9 = sym.imp.fputs;
                                             |     /* str._____________MUST_be_the_last_command_line_argument__n */
    0x0003bfa4 addiu a0, a0, -0x6dbc         |     a0 += -0x6dbc;
    0x0003bfa8 jalr t9                       |     t9 ();
    0x0003bfac lw gp, 0x10(sp)               |     gp = *(var_10h);
    0x0003bfb0 lw a1, (s0)                   |     a1 = *(s0);
    0x0003bfb4 lw ra, 0x1c(sp)               |     ra = *(var_1ch);
    0x0003bfb8 lw a0, -0x7fd8(gp)            |     a0 = *((gp - 8182));
    0x0003bfbc lw s0, 0x18(sp)               |     s0 = *(var_18h);
    0x0003bfc0 lw t9, -0x7b38(gp)            |     t9 = sym.imp.fputs;
                                             |     /* str._____________all_subsequent_arguments_after__x_are_treated_as_nameval_pairs._n */
    0x0003bfc4 addiu a0, a0, -0x6d84         |     a0 += -0x6d84;
    0x0003bfc8 addiu sp, sp, 0x20            |     
    0x0003bfcc jr t9                         |     return t9 ();
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/mDNSResponderPosix @ 0x3c074 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0003c074 ()                  | void fcn_0003c074 () {
    0x0003c074 lui gp, 2                     |     
    0x0003c078 addiu gp, gp, 0x601c          |     
    0x0003c07c addu gp, gp, t9               |     gp += t9;
    0x0003c080 addiu sp, sp, -0x2b8          |     
    0x0003c084 lw t9, -0x7b48(gp)            |     t9 = sym.imp.calloc;
    0x0003c088 sw s2, 0x298(sp)              |     *(var_298h) = s2;
    0x0003c08c lw s2, -0x7a4c(gp)            |     s2 = *((gp - 7827));
    0x0003c090 sw gp, 0x40(sp)               |     *(var_40h) = gp;
    0x0003c094 sw fp, 0x2b0(sp)              |     *(var_2b0h) = fp;
    0x0003c098 sw s6, 0x2a8(sp)              |     *(var_2a8h) = s6;
    0x0003c09c sw s5, 0x2a4(sp)              |     *(var_2a4h) = s5;
    0x0003c0a0 sw s4, 0x2a0(sp)              |     *(var_2a0h) = s4;
    0x0003c0a4 sw ra, 0x2b4(sp)              |     *(var_2b4h) = ra;
    0x0003c0a8 sw s7, 0x2ac(sp)              |     *(var_2ach) = s7;
    0x0003c0ac sw s3, 0x29c(sp)              |     *(var_29ch) = s3;
    0x0003c0b0 sw s1, 0x294(sp)              |     *(var_294h) = s1;
    0x0003c0b4 sw s0, 0x290(sp)              |     *(var_290h) = s0;
    0x0003c0b8 lw v0, (s2)                   |     v0 = *(s2);
    0x0003c0bc move s4, a0                   |     s4 = a0;
    0x0003c0c0 move s5, a1                   |     s5 = a1;
    0x0003c0c4 sw v0, 0x28c(sp)              |     *(var_28ch) = v0;
    0x0003c0c8 addiu a1, zero, 0xe38         |     a1 = 0xe38;
    0x0003c0cc addiu a0, zero, 1             |     a0 = 1;
    0x0003c0d0 move s6, a2                   |     s6 = a2;
    0x0003c0d4 move fp, a3                   |     fp = a3;
    0x0003c0d8 jalr t9                       |     t9 ();
    0x0003c0dc lw gp, 0x40(sp)               |     gp = *(var_40h);
                                             |     if (v0 == 0) {
    0x0003c0e0 beqz v0, 0x3c21c              |         goto label_0;
                                             |     }
    0x0003c0e4 lw t9, -0x7fc8(gp)            |     t9 = sym.MakeDomainLabelFromLiteralString;
    0x0003c0e8 addiu s1, sp, 0x4c            |     s1 = sp + 0x4c;
    0x0003c0ec move a0, s1                   |     a0 = s1;
    0x0003c0f0 move a1, s4                   |     a1 = s4;
    0x0003c0f4 move s0, v0                   |     s0 = v0;
    0x0003c0f8 jalr t9                       |     t9 ();
    0x0003c0fc lw gp, 0x40(sp)               |     gp = *(var_40h);
    0x0003c100 addiu s3, sp, 0x8c            |     s3 = sp + 0x8c;
    0x0003c104 move a1, s5                   |     a1 = s5;
    0x0003c108 lw t9, -0x7fc4(gp)            |     t9 = sym.MakeDomainNameFromDNSNameString;
    0x0003c10c move a0, s3                   |     a0 = s3;
    0x0003c110 jalr t9                       |     t9 ();
    0x0003c114 lw gp, 0x40(sp)               |     gp = *(var_40h);
    0x0003c118 addiu s7, sp, 0x18c           |     s7 = sp + 0x18c;
    0x0003c11c move a1, s6                   |     a1 = s6;
    0x0003c120 lw t9, -0x7fc4(gp)            |     t9 = sym.MakeDomainNameFromDNSNameString;
    0x0003c124 move a0, s7                   |     a0 = s7;
    0x0003c128 jalr t9                       |     t9 ();
    0x0003c12c lw gp, 0x40(sp)               |     gp = *(var_40h);
    0x0003c130 lw v0, 0x2cc(sp)              |     v0 = *(arg_2cch);
    0x0003c134 move a2, s1                   |     a2 = s1;
    0x0003c138 wsbh a0, v0                   |     __asm ("wsbh a0, v0");
    0x0003c13c lw v0, -0x7fc0(gp)            |     v0 = *(gp);
    0x0003c140 sh a0, 0x18(sp)               |     *(var_18h) = a0;
    0x0003c144 addiu v0, v0, -0x3b4c         |     v0 += -0x3b4c;
    0x0003c148 sw v0, 0x34(sp)               |     *(var_34h) = v0;
    0x0003c14c lw v0, -0x7fbc(gp)            |     v0 = *(gp);
    0x0003c150 lw a0, -0x7fdc(gp)            |     a0 = *((gp - 8183));
    0x0003c154 lw t9, -0x7fb8(gp)            |     t9 = sym.mDNS_RegisterService;
    0x0003c158 lw v0, (v0)                   |     v0 = *(v0);
    0x0003c15c sw zero, 0x3c(sp)             |     *(var_3ch) = 0;
    0x0003c160 sw v0, 0x30(sp)               |     *(var_30h) = v0;
    0x0003c164 lhu v0, 0x2c8(sp)             |     v0 = *(arg_2c8h);
    0x0003c168 sw s0, 0x38(sp)               |     *(var_38h) = s0;
    0x0003c16c sw zero, 0x2c(sp)             |     *(var_2ch) = 0;
    0x0003c170 sw zero, 0x28(sp)             |     *(var_28h) = 0;
    0x0003c174 sw v0, 0x24(sp)               |     *(var_24h) = v0;
    0x0003c178 sw fp, 0x20(sp)               |     *(var_20h) = fp;
    0x0003c17c sw zero, 0x1c(sp)             |     *(var_1ch) = 0;
    0x0003c180 sw zero, 0x14(sp)             |     *(var_14h) = 0;
    0x0003c184 sw s7, 0x10(sp)               |     *(var_10h) = s7;
    0x0003c188 move a3, s3                   |     a3 = s3;
    0x0003c18c move a1, s0                   |     a1 = s0;
    0x0003c190 addiu a0, a0, -0x5600         |     a0 += -0x5600;
    0x0003c194 bal 0x33104                   |     sym_mDNS_RegisterService ();
    0x0003c198 move s1, v0                   |     s1 = v0;
    0x0003c19c lw gp, 0x40(sp)               |     gp = *(var_40h);
                                             |     if (v0 != 0) {
    0x0003c1a0 bnez v0, 0x3c240              |         goto label_1;
                                             |     }
    0x0003c1a4 lw v1, -0x7fdc(gp)            |     v1 = *((gp - 8183));
    0x0003c1a8 lw v0, -0x5720(v1)            |     v0 = *((v1 - 5576));
    0x0003c1ac addiu a0, v0, 1               |     a0 = v0 + 1;
    0x0003c1b0 sw a0, -0x5720(v1)            |     *((v1 - 5576)) = a0;
    0x0003c1b4 lw v1, -0x7fdc(gp)            |     v1 = *((gp - 8183));
    0x0003c1b8 sw v0, 0xe34(s0)              |     *((s0 + 909)) = v0;
    0x0003c1bc lw a0, -0x571c(v1)            |     a0 = *((v1 - 5575));
    0x0003c1c0 sw s0, -0x571c(v1)            |     *((v1 - 5575)) = s0;
    0x0003c1c4 lw v1, -0x7fd4(gp)            |     v1 = *(gp);
    0x0003c1c8 sw a0, 0xe30(s0)              |     *((s0 + 908)) = a0;
    0x0003c1cc lw v1, (v1)                   |     v1 = *(v1);
    0x0003c1d0 lw a2, -0x7fd8(gp)            |     a2 = *((gp - 8182));
                                             |     if (v1 <= 0) {
    0x0003c1d4 blez v1, 0x3c224              |         goto label_2;
                                             |     }
    0x0003c1d8 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0003c1dc lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
    0x0003c1e0 lw v1, 0x2cc(sp)              |     v1 = *(arg_2cch);
    0x0003c1e4 lw a3, -0x5f7c(v0)            |     a3 = *((v0 - 6111));
    0x0003c1e8 lw v0, -0x7a34(gp)            |     v0 = *((gp - 7821));
    0x0003c1ec sw v1, 0x20(sp)               |     *(var_20h) = v1;
    0x0003c1f0 sw s6, 0x1c(sp)               |     *(var_1ch) = s6;
    0x0003c1f4 sw s5, 0x18(sp)               |     *(var_18h) = s5;
    0x0003c1f8 sw s4, 0x14(sp)               |     *(var_14h) = s4;
    0x0003c1fc lw t9, -0x7b1c(gp)            |     t9 = sym.imp.__fprintf_chk
    0x0003c200 lw a0, (v0)                   |     a0 = *(v0);
                                             |     /* str._s:_Registered_service__d__name___s___type___s___domain___s____port__ld_n */
    0x0003c204 addiu a2, a2, -0x6d04         |     a2 += -0x6d04;
    0x0003c208 addiu a1, zero, 1             |     a1 = 1;
    0x0003c20c jalr t9                       |     t9 ();
    0x0003c210 lw gp, 0x40(sp)               |     gp = *(var_40h);
                                             |     do {
    0x0003c214 b 0x3c224                     |         goto label_2;
    0x0003c218 nop                           |         
                                             | label_0:
    0x0003c21c lui s1, 0xfffe                |         s1 = 0xfffefffd;
    0x0003c220 ori s1, s1, 0xfffd            |         
                                             | label_2:
    0x0003c224 lw a0, 0x28c(sp)              |         a0 = *(var_28ch);
    0x0003c228 lw v1, (s2)                   |         v1 = *(s2);
    0x0003c22c move v0, s1                   |         v0 = s1;
                                             |         if (a0 == v1) {
    0x0003c230 beq a0, v1, 0x3c254           |             goto label_3;
                                             |         }
    0x0003c234 lw t9, -0x7a70(gp)            |         t9 = sym.imp.__stack_chk_fail;
    0x0003c238 jalr t9                       |         t9 ();
    0x0003c23c nop                           |         
                                             | label_1:
    0x0003c240 lw t9, -0x7a3c(gp)            |         t9 = sym.imp.free;
    0x0003c244 move a0, s0                   |         a0 = s0;
    0x0003c248 jalr t9                       |         t9 ();
    0x0003c24c lw gp, 0x40(sp)               |         gp = *(var_40h);
    0x0003c250 b 0x3c214                     |         
                                             |     } while (1);
                                             | label_3:
    0x0003c254 lw ra, 0x2b4(sp)              |     ra = *(var_2b4h);
    0x0003c258 lw fp, 0x2b0(sp)              |     fp = *(var_2b0h);
    0x0003c25c lw s7, 0x2ac(sp)              |     s7 = *(var_2ach);
    0x0003c260 lw s6, 0x2a8(sp)              |     s6 = *(var_2a8h);
    0x0003c264 lw s5, 0x2a4(sp)              |     s5 = *(var_2a4h);
    0x0003c268 lw s4, 0x2a0(sp)              |     s4 = *(var_2a0h);
    0x0003c26c lw s3, 0x29c(sp)              |     s3 = *(var_29ch);
    0x0003c270 lw s2, 0x298(sp)              |     s2 = *(var_298h);
    0x0003c274 lw s1, 0x294(sp)              |     s1 = *(var_294h);
    0x0003c278 lw s0, 0x290(sp)              |     s0 = *(var_290h);
    0x0003c27c addiu sp, sp, 0x2b8           |     
    0x0003c280 jr ra                         |     return v0;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/mDNSResponderPosix @ 0x3c284 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0003c284 ()                  | void fcn_0003c284 () {
    0x0003c284 lui gp, 2                     |     
    0x0003c288 addiu gp, gp, 0x5e0c          |     
    0x0003c28c addu gp, gp, t9               |     gp += t9;
    0x0003c290 addiu sp, sp, -0x38           |     
    0x0003c294 sw s2, 0x28(sp)               |     *(var_28h) = s2;
    0x0003c298 sw s1, 0x24(sp)               |     *(var_24h) = s1;
    0x0003c29c lw s2, -0x7fd8(gp)            |     s2 = *((gp - 8182));
    0x0003c2a0 lw s1, -0x7fdc(gp)            |     s1 = *((gp - 8183));
    0x0003c2a4 sw s3, 0x2c(sp)               |     *(var_2ch) = s3;
    0x0003c2a8 lw s3, -0x7fdc(gp)            |     s3 = *((gp - 8183));
    0x0003c2ac sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x0003c2b0 sw ra, 0x34(sp)               |     *(var_34h) = ra;
    0x0003c2b4 sw s4, 0x30(sp)               |     *(var_30h) = s4;
    0x0003c2b8 sw s0, 0x20(sp)               |     *(var_20h) = s0;
    0x0003c2bc addiu s1, s1, -0x5600         |     s1 += -0x5600;
                                             |     /* str._s:_Deregistered_service__d_n */
    0x0003c2c0 addiu s2, s2, -0x6cb8         |     s2 += -0x6cb8;
                                             | label_0:
    0x0003c2c4 lw s4, -0x7fd4(gp)            |     s4 = *(gp);
                                             |     do {
    0x0003c2c8 lw s0, -0x571c(s3)            |         s0 = *((s3 - 5575));
    0x0003c2cc lw v0, 0xe30(s0)              |         v0 = *((s0 + 908));
                                             |         if (s0 != 0) {
    0x0003c2d0 bnel s0, zero, 0x3c2f4        |             
    0x0003c2d4 lw ra, 0x34(sp)               |             ra = *(var_34h);
    0x0003c2d8 lw s4, 0x30(sp)               |             s4 = *(var_30h);
    0x0003c2dc lw s3, 0x2c(sp)               |             s3 = *(var_2ch);
    0x0003c2e0 lw s2, 0x28(sp)               |             s2 = *(var_28h);
    0x0003c2e4 lw s1, 0x24(sp)               |             s1 = *(var_24h);
    0x0003c2e8 lw s0, 0x20(sp)               |             s0 = *(var_20h);
    0x0003c2ec addiu sp, sp, 0x38            |             
    0x0003c2f0 jr ra                         |             return v0;
                                             |         }
    0x0003c2f4 lw t9, -0x7fb4(gp)            |         t9 = sym.mDNS_DeregisterService_drt;
    0x0003c2f8 sw v0, -0x571c(s3)            |         *((s3 - 5575)) = v0;
    0x0003c2fc move a2, zero                 |         a2 = 0;
    0x0003c300 move a1, s0                   |         a1 = s0;
    0x0003c304 move a0, s1                   |         a0 = s1;
    0x0003c308 bal 0x32b4c                   |         sym_mDNS_DeregisterService_drt ();
    0x0003c30c lw v0, (s4)                   |         v0 = *(s4);
    0x0003c310 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x0003c314 blez v0, 0x3c2c8              |         
                                             |     } while (v0 <= 0);
    0x0003c318 lw v0, 0xe34(s0)              |     v0 = *((s0 + 909));
    0x0003c31c lw t9, -0x7b1c(gp)            |     t9 = sym.imp.__fprintf_chk
    0x0003c320 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x0003c324 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
    0x0003c328 move a2, s2                   |     a2 = s2;
    0x0003c32c addiu a1, zero, 1             |     a1 = 1;
    0x0003c330 lw a3, -0x5f7c(v0)            |     a3 = *((v0 - 6111));
    0x0003c334 lw v0, -0x7a34(gp)            |     v0 = *((gp - 7821));
    0x0003c338 lw a0, (v0)                   |     a0 = *(v0);
    0x0003c33c jalr t9                       |     t9 ();
    0x0003c340 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x0003c344 b 0x3c2c4                     |     goto label_0;
                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/mDNSResponderPosix @ 0x47d0 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) main ()                      | int32_t main () {
                                         |     /* [13] -r-x section size 230768 named .text */
    0x000047d0 lui gp, 6                 |     
    0x000047d4 addiu gp, gp, -0x2740     |     
    0x000047d8 addu gp, gp, t9           |     gp += t9;
    0x000047dc addiu sp, sp, -0xe8       |     
    0x000047e0 lw t9, -0x7af4(gp)        |     t9 = sym.imp.strrchr;
    0x000047e4 sw s3, 0xcc(sp)           |     *(var_cch) = s3;
    0x000047e8 lw s3, -0x7a4c(gp)        |     s3 = *((gp - 7827));
    0x000047ec sw gp, 0x20(sp)           |     *(var_20h) = gp;
    0x000047f0 sw s4, 0xd0(sp)           |     *(var_d0h) = s4;
    0x000047f4 sw s2, 0xc8(sp)           |     *(var_c8h) = s2;
    0x000047f8 sw ra, 0xe4(sp)           |     *(var_e4h) = ra;
    0x000047fc sw fp, 0xe0(sp)           |     *(var_e0h) = fp;
    0x00004800 sw s7, 0xdc(sp)           |     *(var_dch) = s7;
    0x00004804 sw s6, 0xd8(sp)           |     *(var_d8h) = s6;
    0x00004808 sw s5, 0xd4(sp)           |     *(var_d4h) = s5;
    0x0000480c sw s1, 0xc4(sp)           |     *(var_c4h) = s1;
    0x00004810 sw s0, 0xc0(sp)           |     *(var_c0h) = s0;
    0x00004814 lw s1, (a1)               |     s1 = *(a1);
    0x00004818 lw v0, (s3)               |     v0 = *(s3);
    0x0000481c move s4, a0               |     s4 = a0;
    0x00004820 move s2, a1               |     s2 = a1;
    0x00004824 sw v0, 0xbc(sp)           |     *(var_bch) = v0;
    0x00004828 addiu a1, zero, 0x2f      |     a1 = 0x2f;
    0x0000482c move a0, s1               |     a0 = s1;
    0x00004830 jalr t9                   |     t9 ();
    0x00004834 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 != 0) {
    0x00004838 beqz v0, 0x4840           |         
    0x0000483c addiu s1, v0, 1           |         s1 = v0 + 1;
                                         |     }
    0x00004840 lw s0, -0x7fdc(gp)        |     s0 = *((gp - 8183));
    0x00004844 lw s5, -0x7fc0(gp)        |     s5 = *(gp);
    0x00004848 lw s6, -0x7fc0(gp)        |     s6 = *(gp);
    0x0000484c addiu v0, s5, -0x39fc     |     v0 = s5 + -0x39fc;
    0x00004850 sw s1, -0x5f7c(s0)        |     *((s0 - 6111)) = s1;
    0x00004854 lw s1, -0x7fd8(gp)        |     s1 = *((gp - 8182));
    0x00004858 sw v0, 0x28(sp)           |     *(var_28h) = v0;
    0x0000485c addiu v0, s6, -0x3a88     |     v0 = s6 + -0x3a88;
                                         |     /* str.v:rn:t:d:p:f:dP:bx */
    0x00004860 addiu s1, s1, -0x69b4     |     s1 += -0x69b4;
    0x00004864 sw v0, 0x2c(sp)           |     *(var_2ch) = v0;
                                         | label_0:
    0x00004868 addiu s7, zero, -1        |     s7 = -1;
                                         | label_3:
    0x0000486c addiu fp, zero, 0x6e      |     fp = 0x6e;
    0x00004870 addiu s5, zero, 0x74      |     s5 = 0x74;
    0x00004874 addiu s6, zero, 0x70      |     s6 = 0x70;
    0x00004878 lw t9, -0x7ac0(gp)        |     t9 = sym.imp.getopt;
                                         | label_1:
    0x0000487c move a2, s1               |     a2 = s1;
    0x00004880 move a1, s2               |     a1 = s2;
    0x00004884 move a0, s4               |     a0 = s4;
    0x00004888 jalr t9                   |     t9 ();
    0x0000488c lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 == s7) {
    0x00004890 beq v0, s7, 0x4950        |         goto label_10;
                                         |     }
    0x00004894 slti v1, v0, 0x6f         |     v1 = (v0 < 0x6f) ? 1 : 0;
                                         |     if (v0 == fp) {
    0x00004898 beq v0, fp, 0x4a00        |         goto label_11;
                                         |     }
    0x0000489c addiu v1, zero, 0x62      |     v1 = 0x62;
                                         |     if (v1 == 0) {
    0x000048a0 beqz v1, 0x48f8           |         goto label_12;
                                         |     }
    0x000048a4 slti a0, v0, 0x63         |     a0 = (v0 < 0x63) ? 1 : 0;
                                         |     if (v0 == v1) {
    0x000048a8 beq v0, v1, 0x4a9c        |         goto label_13;
                                         |     }
    0x000048ac lw v1, -0x7b34(gp)        |     v1 = *((gp - 7885));
                                         |     if (a0 == 0) {
    0x000048b0 beqz a0, 0x48d8           |         goto label_14;
                                         |     }
    0x000048b4 addiu a0, zero, 0x50      |     a0 = 0x50;
    0x000048b8 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
                                         |     if (v0 == a0) {
    0x000048bc beq v0, a0, 0x4aac        |         goto label_15;
                                         |     }
                                         |     do {
    0x000048c0 lw t9, -0x7fc0(gp)        |         t9 = *(gp);
                                         |         /* fcn.0003bda8 */
                                         | label_2:
    0x000048c4 addiu t9, t9, -0x4258     |         t9 += -0x4258;
    0x000048c8 jalr t9                   |         t9 ();
    0x000048cc nop                       |         
    0x000048d0 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x000048d4 b 0x49f8                  |         goto label_16;
                                         | label_14:
    0x000048d8 addiu a0, zero, 0x64      |         a0 = 0x64;
    0x000048dc addiu a0, zero, 0x66      |         a0 = 0x66;
                                         |         if (v0 == a0) {
    0x000048e0 beq v0, a0, 0x4a4c        |             goto label_17;
                                         |         }
    0x000048e4 lw v0, -0x7fdc(gp)        |         v0 = *((gp - 8183));
    0x000048e8 bne v0, a0, 0x48c0        |         
                                         |     } while (v0 != a0);
    0x000048ec lw v1, (v1)               |     v1 = *(v1);
    0x000048f0 sw v1, -0x5f8c(v0)        |     *((v0 - 6115)) = v1;
    0x000048f4 b 0x4868                  |     goto label_0;
                                         | label_12:
    0x000048f8 slti v1, v0, 0x75         |     v1 = (v0 < 0x75) ? 1 : 0;
                                         |     if (v0 == s5) {
    0x000048fc beq v0, s5, 0x4a34        |         goto label_18;
                                         |     }
    0x00004900 addiu v1, zero, 0x76      |     v1 = 0x76;
                                         |     if (v1 == 0) {
    0x00004904 beqz v1, 0x4920           |         goto label_19;
                                         |     }
    0x00004908 addiu v1, zero, 0x72      |     v1 = 0x72;
                                         |     if (v0 == s6) {
    0x0000490c beq v0, s6, 0x4a5c        |         goto label_20;
                                         |     }
                                         |     if (v0 == v1) {
    0x00004910 beql v0, v1, 0x487c       |         goto label_1;
                                         |     }
    0x00004914 lw t9, -0x7ac0(gp)        |     t9 = sym.imp.getopt;
    0x00004918 lw t9, -0x7fc0(gp)        |     t9 = *(gp);
    0x0000491c b 0x48c4                  |     goto label_2;
                                         | label_19:
    0x00004920 addiu v1, zero, 0x78      |     v1 = 0x78;
                                         |     if (v0 == v1) {
    0x00004924 beq v0, v1, 0x49ac        |         goto label_21;
                                         |     }
    0x00004928 invalid                   |     
                                         |     if (v0 != v1) {
    0x0000492c bne v0, v1, 0x48c4        |         goto label_2;
                                         |     }
    0x00004930 lw ra, -1(ra)             |     ra = *((ra - 0.25));
    0x00004934 lw s6, -0x7a6c(gp)        |     s6 = *((gp - 7835));
    0x00004938 lw s7, -0x7fdc(gp)        |     s7 = *((gp - 8183));
    0x0000493c addiu s5, s5, -0x5714     |     s5 += -0x5714;
                                         | label_6:
    0x00004940 lw s1, (s6)               |     s1 = *(s6);
    0x00004944 slt v0, s1, s4            |     v0 = (s1 < s4) ? 1 : 0;
    0x00004948 sll s1, s1, 2             |     s1 <<= 2;
                                         |     if (v0 != 0) {
    0x0000494c bnez v0, 0x4ab8           |         goto label_22;
                                         |     }
                                         | label_10:
    0x00004950 lw s1, -0x7a6c(gp)        |     s1 = *((gp - 7835));
    0x00004954 lw v0, (s1)               |     v0 = *(s1);
    0x00004958 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
                                         |     if (s4 == v0) {
    0x0000495c beq s4, v0, 0x4b18        |         goto label_23;
                                         |     }
    0x00004960 lw t9, -0x7fc0(gp)        |     t9 = *(gp);
                                         |     /* fcn.0003bda8 */
    0x00004964 addiu t9, t9, -0x4258     |     t9 += -0x4258;
    0x00004968 jalr t9                   |     t9 ();
    0x0000496c nop                       |     
    0x00004970 lw v0, (s1)               |     v0 = *(s1);
    0x00004974 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00004978 sll v0, v0, 2             |     v0 <<= 2;
    0x0000497c lw a3, -0x5f7c(s0)        |     a3 = *((s0 - 6111));
    0x00004980 lwx s2, v0(s2)            |     __asm ("lwx s2, v0(s2)");
    0x00004984 lw v0, -0x7a34(gp)        |     v0 = *((gp - 7821));
    0x00004988 lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x0000498c sw s2, 0x10(sp)           |     *(var_10h) = s2;
    0x00004990 lw t9, -0x7b1c(gp)        |     t9 = sym.imp.__fprintf_chk
    0x00004994 lw a0, (v0)               |     a0 = *(v0);
                                         |     /* str._s:_Unexpected_argument__s_n */
    0x00004998 addiu a2, a2, -0x6974     |     a2 += -0x6974;
    0x0000499c addiu a1, zero, 1         |     a1 = 1;
    0x000049a0 jalr t9                   |     t9 ();
    0x000049a4 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x000049a8 b 0x49f8                  |     goto label_16;
                                         | label_21:
    0x000049ac lw v0, -0x7b34(gp)        |     v0 = *((gp - 7885));
    0x000049b0 lw t9, -0x7b0c(gp)        |     t9 = sym.imp.atoi;
    0x000049b4 lw a0, (v0)               |     a0 = *(v0);
    0x000049b8 jalr t9                   |     t9 ();
    0x000049bc lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x000049c0 lw v1, -0x7fd4(gp)        |     v1 = *(gp);
    0x000049c4 sw v0, (v1)               |     *(v1) = v0;
    0x000049c8 sltiu v0, v0, 3           |     v0 = (v0 < 3) ? 1 : 0;
    0x000049cc addiu s7, zero, -1        |     s7 = -1;
                                         |     if (v0 != 0) {
    0x000049d0 bnez v0, 0x486c           |         goto label_3;
                                         |     }
    0x000049d4 lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x000049d8 lw a3, -0x5f7c(s0)        |     a3 = *((s0 - 6111));
                                         |     /* str._s:_Verbose_mode_must_be_in_the_range_0..2_n */
    0x000049dc addiu a2, a2, -0x69a0     |     a2 += -0x69a0;
                                         | label_5:
    0x000049e0 lw v0, -0x7a34(gp)        |     v0 = *((gp - 7821));
    0x000049e4 lw t9, -0x7b1c(gp)        |     t9 = sym.imp.__fprintf_chk
    0x000049e8 addiu a1, zero, 1         |     a1 = 1;
    0x000049ec lw a0, (v0)               |     a0 = *(v0);
    0x000049f0 jalr t9                   |     t9 ();
    0x000049f4 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         | label_16:
    0x000049f8 addiu a0, zero, 1         |     a0 = 1;
    0x000049fc b 0x4a28                  |     goto label_7;
                                         | label_11:
    0x00004a00 lw v0, -0x7b34(gp)        |     v0 = *((gp - 7885));
    0x00004a04 lw t9, 0x28(sp)           |     t9 = *(var_28h);
    0x00004a08 lw a0, (v0)               |     a0 = *(v0);
    0x00004a0c lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00004a10 sw a0, -0x5f80(v0)        |     *((v0 - 6112)) = a0;
                                         | label_4:
    0x00004a14 jalr t9                   |     t9 ();
    0x00004a18 nop                       |     
    0x00004a1c lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 != 0) {
    0x00004a20 bnez v0, 0x4868           |         goto label_0;
                                         |     }
    0x00004a24 addiu a0, zero, 1         |     a0 = 1;
                                         | label_7:
    0x00004a28 lw t9, -0x7aa4(gp)        |     t9 = sym.imp.exit;
    0x00004a2c jalr t9                   |     t9 ();
    0x00004a30 nop                       |     
                                         | label_18:
    0x00004a34 lw v0, -0x7b34(gp)        |     v0 = *((gp - 7885));
    0x00004a38 lw t9, 0x2c(sp)           |     t9 = *(var_2ch);
    0x00004a3c lw a0, (v0)               |     a0 = *(v0);
    0x00004a40 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00004a44 sw a0, -0x5f84(v0)        |     *((v0 - 6113)) = a0;
    0x00004a48 b 0x4a14                  |     goto label_4;
                                         | label_17:
    0x00004a4c lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00004a50 lw v1, (v1)               |     v1 = *(v1);
    0x00004a54 sw v1, -0x5f88(v0)        |     *((v0 - 6114)) = v1;
    0x00004a58 b 0x4868                  |     goto label_0;
                                         | label_20:
    0x00004a5c lw v0, -0x7b34(gp)        |     v0 = *((gp - 7885));
    0x00004a60 lw t9, -0x7ac8(gp)        |     t9 = sym.imp.atol;
    0x00004a64 lw a0, (v0)               |     a0 = *(v0);
    0x00004a68 jalr t9                   |     t9 ();
    0x00004a6c lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00004a70 lw v1, -0x7fdc(gp)        |     v1 = *((gp - 8183));
    0x00004a74 sw v0, -0x5fa0(v1)        |     *((v1 - 6120)) = v0;
    0x00004a78 addiu v0, v0, -1          |     v0 += -1;
    0x00004a7c ori v1, zero, 0xffff      |     v1 = 0xffff;
    0x00004a80 sltu v0, v0, v1           |     v0 = (v0 < v1) ? 1 : 0;
    0x00004a84 addiu s7, zero, -1        |     s7 = -1;
                                         |     if (v0 != 0) {
    0x00004a88 bnez v0, 0x486c           |         goto label_3;
                                         |     }
    0x00004a8c lw a2, -0x7fd8(gp)        |     a2 = *((gp - 8182));
    0x00004a90 lw a3, -0x5f7c(s0)        |     a3 = *((s0 - 6111));
                                         |     /* str._s:_Port_number_specified_by__p_must_be_in_range_1..65535_n */
    0x00004a94 addiu a2, a2, -0x6ab4     |     a2 += -0x6ab4;
    0x00004a98 b 0x49e0                  |     goto label_5;
                                         | label_13:
    0x00004a9c lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00004aa0 addiu v1, zero, 1         |     v1 = 1;
    0x00004aa4 sb v1, -0x5718(v0)        |     *((v0 - 22296)) = v1;
    0x00004aa8 b 0x4868                  |     goto label_0;
                                         | label_15:
    0x00004aac lw v1, (v1)               |     v1 = *(v1);
    0x00004ab0 sw v1, -0x5f90(v0)        |     *((v0 - 6116)) = v1;
    0x00004ab4 b 0x4868                  |     goto label_0;
                                         | label_22:
    0x00004ab8 addu s1, s2, s1           |     s1 = s2 + s1;
    0x00004abc lw t9, -0x7ab4(gp)        |     t9 = sym.imp.strlen;
    0x00004ac0 lw a0, (s1)               |     a0 = *(s1);
    0x00004ac4 jalr t9                   |     t9 ();
    0x00004ac8 lhu a0, -0x5716(s7)       |     a0 = *((s7 - 11147));
    0x00004acc lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00004ad0 addu v1, a0, s5           |     v1 = a0 + s5;
    0x00004ad4 addiu a0, a0, 1           |     a0++;
    0x00004ad8 sb v0, (v1)               |     *(v1) = v0;
    0x00004adc lw t9, -0x7fac(gp)        |     t9 = sym.mDNSPlatformMemCopy;
    0x00004ae0 lw a1, (s1)               |     a1 = *(s1);
    0x00004ae4 andi a2, v0, 0xff         |     a2 = v0 & 0xff;
    0x00004ae8 addu a0, s5, a0           |     a0 = s5 + a0;
    0x00004aec bal 0x5a9c                |     sym_mDNSPlatformMemCopy ();
    0x00004af0 lhu v0, -0x5716(s7)       |     v0 = *((s7 - 11147));
    0x00004af4 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00004af8 lbux v1, v0(s5)           |     __asm ("lbux v1, v0(s5)");
    0x00004afc addu v0, v0, v1           |     v0 += v1;
    0x00004b00 addiu v0, v0, 1           |     v0++;
    0x00004b04 sh v0, -0x5716(s7)        |     *((s7 - 11147)) = v0;
    0x00004b08 lw v0, (s6)               |     v0 = *(s6);
    0x00004b0c addiu v0, v0, 1           |     v0++;
    0x00004b10 sw v0, (s6)               |     *(s6) = v0;
    0x00004b14 b 0x4940                  |     goto label_6;
                                         | label_23:
    0x00004b18 lw v0, -0x5f80(v0)        |     v0 = *((v0 - 6112));
    0x00004b1c lb v0, (v0)               |     v0 = *(v0);
    0x00004b20 lw v1, -0x7fdc(gp)        |     v1 = *((gp - 8183));
                                         |     if (v0 == 0) {
    0x00004b24 bnez v0, 0x4b60           |         
    0x00004b28 lw v0, -0x7fdc(gp)        |         v0 = *((gp - 8183));
    0x00004b2c lw v0, -0x5f8c(v0)        |         v0 = *((v0 - 6115));
    0x00004b30 lb v0, (v0)               |         v0 = *(v0);
    0x00004b34 lw s2, -0x7fd4(gp)        |         s2 = *(gp);
                                         |         if (v0 == 0) {
    0x00004b38 bnel v0, zero, 0x4b64     |             goto label_24;
                                         |         }
    0x00004b3c lw t9, -0x7fc0(gp)        |         t9 = *(gp);
    0x00004b40 addiu t9, t9, -0x4258     |         t9 += -0x4258;
    0x00004b44 jalr t9                   |         t9 ();
    0x00004b48 nop                       |         
    0x00004b4c lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00004b50 lw a3, -0x5f7c(s0)        |         a3 = *((s0 - 6111));
    0x00004b54 lw a2, -0x7fd8(gp)        |         a2 = *((gp - 8182));
                                         |         /* str._s:_You_must_specify_a_service_name_to_register___n__or_a_service_file___f_._n */
    0x00004b58 addiu a2, a2, -0x6954     |         a2 += -0x6954;
    0x00004b5c b 0x49e0                  |         goto label_5;
                                         |     }
    0x00004b60 lw s2, -0x7fd4(gp)        |     s2 = *(gp);
                                         | label_24:
    0x00004b64 lbu v1, -0x5718(v1)       |     v1 = *((v1 - 22296));
    0x00004b68 lw v0, (s2)               |     v0 = *(s2);
                                         |     if (v1 != 0) {
    0x00004b6c beqz v1, 0x4c70           |         
    0x00004b70 lw t9, -0x7a90(gp)        |         t9 = sym.imp.daemon;
                                         |         if (v0 > 0) {
    0x00004b74 blez v0, 0x4ba0           |             
    0x00004b78 lw v0, -0x7a34(gp)        |             v0 = *((gp - 7821));
    0x00004b7c lw a2, -0x7fd8(gp)        |             a2 = *((gp - 8182));
    0x00004b80 lw t9, -0x7b1c(gp)        |             t9 = sym.imp.__fprintf_chk
    0x00004b84 lw a3, -0x5f7c(s0)        |             a3 = *((s0 - 6111));
    0x00004b88 lw a0, (v0)               |             a0 = *(v0);
                                         |             /* str._s:_Starting_in_daemon_mode_n */
    0x00004b8c addiu a2, a2, -0x6904     |             a2 += -0x6904;
    0x00004b90 addiu a1, zero, 1         |             a1 = 1;
    0x00004b94 jalr t9                   |             t9 ();
    0x00004b98 lw gp, 0x20(sp)           |             gp = *(var_20h);
    0x00004b9c lw t9, -0x7a90(gp)        |             t9 = sym.imp.daemon;
                                         |         }
    0x00004ba0 move a1, zero             |         a1 = 0;
    0x00004ba4 move a0, zero             |         a0 = 0;
    0x00004ba8 jalr t9                   |         t9 ();
    0x00004bac move s1, v0               |         s1 = v0;
    0x00004bb0 lw gp, 0x20(sp)           |         gp = *(var_20h);
                                         |         if (v0 == 0) {
    0x00004bb4 bnez v0, 0x4c44           |             
    0x00004bb8 lw v0, -0x7fdc(gp)        |             v0 = *((gp - 8183));
    0x00004bbc lw a1, -0x7fc0(gp)        |             a1 = *(gp);
    0x00004bc0 lw t9, -0x7a30(gp)        |             t9 = sym.imp.fopen;
    0x00004bc4 lw a0, -0x5f90(v0)        |             a0 = *((v0 - 6116));
    0x00004bc8 addiu a1, a1, 0x630c      |             a1 += 0x630c;
    0x00004bcc jalr t9                   |             t9 ();
    0x00004bd0 move s1, v0               |             s1 = v0;
    0x00004bd4 lw gp, 0x20(sp)           |             gp = *(var_20h);
                                         |             if (v0 == 0) {
    0x00004bd8 beqz v0, 0x4cb4           |                 goto label_25;
                                         |             }
    0x00004bdc lw t9, -0x7a88(gp)        |             t9 = sym.imp.getpid;
    0x00004be0 jalr t9                   |             t9 ();
    0x00004be4 nop                       |             
    0x00004be8 lw gp, 0x20(sp)           |             gp = *(var_20h);
    0x00004bec move a3, v0               |             a3 = v0;
    0x00004bf0 addiu a1, zero, 1         |             a1 = 1;
    0x00004bf4 lw a2, -0x7fd8(gp)        |             a2 = *((gp - 8182));
    0x00004bf8 lw t9, -0x7b1c(gp)        |             t9 = sym.imp.__fprintf_chk
                                         |             /* esilref: '&ld
' */
    0x00004bfc addiu a2, a2, -0x6cc0     |             a2 += -0x6cc0;
    0x00004c00 move a0, s1               |             a0 = s1;
    0x00004c04 jalr t9                   |             t9 ();
    0x00004c08 lw gp, 0x20(sp)           |             gp = *(var_20h);
    0x00004c0c lw t9, -0x7b00(gp)        |             t9 = sym.imp.fclose;
    0x00004c10 move a0, s1               |             a0 = s1;
    0x00004c14 jalr t9                   |             t9 ();
    0x00004c18 lw gp, 0x20(sp)           |             gp = *(var_20h);
                                         |             if (v0 == 0) {
    0x00004c1c beqz v0, 0x4cb4           |                 goto label_25;
                                         |             }
    0x00004c20 lw a3, -0x7fd8(gp)        |             a3 = *((gp - 8182));
    0x00004c24 lw a1, -0x7fd8(gp)        |             a1 = *((gp - 8182));
    0x00004c28 lw a0, -0x7fc0(gp)        |             a0 = *(gp);
    0x00004c2c lw t9, -0x7b44(gp)        |             t9 = sym.imp.__assert_fail;
                                         |             /* str.main */
    0x00004c30 addiu a3, a3, -0x67d0     |             a3 += -0x67d0;
    0x00004c34 addiu a2, zero, 0x2ab     |             a2 = 0x2ab;
                                         |             /* str.Responder.c */
    0x00004c38 addiu a1, a1, -0x6d34     |             a1 += -0x6d34;
                                         |             /* str.junk__0 */
    0x00004c3c addiu a0, a0, -0x2818     |             a0 += -0x2818;
    0x00004c40 jalr t9                   |             t9 ();
                                         |         }
    0x00004c44 lw v0, -0x7a34(gp)        |         v0 = *((gp - 7821));
    0x00004c48 lw a2, -0x7fd8(gp)        |         a2 = *((gp - 8182));
    0x00004c4c lw t9, -0x7b1c(gp)        |         t9 = sym.imp.__fprintf_chk
    0x00004c50 lw a0, (v0)               |         a0 = *(v0);
    0x00004c54 lw a3, -0x5f7c(s0)        |         a3 = *((s0 - 6111));
                                         |         /* str._s:_Could_not_run_as_daemon___exiting_n */
    0x00004c58 addiu a2, a2, -0x68e4     |         a2 += -0x68e4;
    0x00004c5c addiu a1, zero, 1         |         a1 = 1;
    0x00004c60 jalr t9                   |         t9 ();
    0x00004c64 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00004c68 move a0, s1               |         a0 = s1;
    0x00004c6c b 0x4a28                  |         goto label_7;
                                         |     }
    0x00004c70 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
                                         |     if (v0 > 0) {
    0x00004c74 blez v0, 0x4cb8           |         
    0x00004c78 lw v0, -0x7a34(gp)        |         v0 = *((gp - 7821));
    0x00004c7c lw t9, -0x7a88(gp)        |         t9 = sym.imp.getpid;
    0x00004c80 lw s4, -0x5f7c(s0)        |         s4 = *((s0 - 6111));
    0x00004c84 lw s1, (v0)               |         s1 = *(v0);
    0x00004c88 jalr t9                   |         t9 ();
    0x00004c8c lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00004c90 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x00004c94 move a3, s4               |         a3 = s4;
    0x00004c98 lw a2, -0x7fd8(gp)        |         a2 = *((gp - 8182));
    0x00004c9c lw t9, -0x7b1c(gp)        |         t9 = sym.imp.__fprintf_chk
                                         |         /* str._s:_Starting_in_foreground_mode__PID__ld_n */
    0x00004ca0 addiu a2, a2, -0x68bc     |         a2 += -0x68bc;
    0x00004ca4 addiu a1, zero, 1         |         a1 = 1;
    0x00004ca8 move a0, s1               |         a0 = s1;
    0x00004cac jalr t9                   |         t9 ();
    0x00004cb0 lw gp, 0x20(sp)           |         gp = *(var_20h);
                                         | label_25:
    0x00004cb4 lw a1, -0x7fdc(gp)        |         a1 = *((gp - 8183));
                                         |     }
    0x00004cb8 lw s1, -0x7fdc(gp)        |     s1 = *((gp - 8183));
    0x00004cbc lw t9, -0x7fa8(gp)        |     t9 = sym.mDNS_Init;
    0x00004cc0 addiu v0, zero, 1         |     v0 = 1;
    0x00004cc4 sw zero, 0x18(sp)         |     *(var_18h) = 0;
    0x00004cc8 sw zero, 0x14(sp)         |     *(var_14h) = 0;
    0x00004ccc sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x00004cd0 move a3, zero             |     a3 = 0;
    0x00004cd4 move a2, zero             |     a2 = 0;
    0x00004cd8 addiu a1, a1, -0x5608     |     a1 += -0x5608;
    0x00004cdc addiu a0, s1, -0x5600     |     a0 = s1 + -0x5600;
    0x00004ce0 jalr t9                   |     t9 ();
    0x00004ce4 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00004ce8 beqz v0, 0x4d0c           |     
                                         |     while (v0 != 0) {
    0x00004cec addiu s1, zero, 2         |         s1 = 2;
                                         | label_9:
    0x00004cf0 lw a0, 0xbc(sp)           |         a0 = *(var_bch);
    0x00004cf4 lw v1, (s3)               |         v1 = *(s3);
    0x00004cf8 move v0, s1               |         v0 = s1;
                                         |         if (a0 == v1) {
    0x00004cfc beq a0, v1, 0x4fdc        |             goto label_26;
                                         |         }
    0x00004d00 lw t9, -0x7a70(gp)        |         t9 = sym.imp.__stack_chk_fail;
    0x00004d04 jalr t9                   |         t9 ();
    0x00004d08 nop                       |         
    0x00004d0c lw s5, -0x7fc0(gp)        |         s5 = *(gp);
    0x00004d10 addiu s5, s5, -0x341c     |         s5 += -0x341c;
    0x00004d14 move t9, s5               |         t9 = s5;
    0x00004d18 jalr t9                   |         t9 ();
    0x00004d1c nop                       |         
    0x00004d20 move s4, v0               |         s4 = v0;
    0x00004d24 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00004d28 bnez v0, 0x4cec           |         
                                         |     }
    0x00004d2c lw a1, -0x7fc0(gp)        |     a1 = *(gp);
    0x00004d30 lw t9, -0x7a58(gp)        |     t9 = sym.imp.signal;
    0x00004d34 addiu a1, a1, -0x3ba8     |     a1 += -0x3ba8;
    0x00004d38 addiu a0, zero, 1         |     a0 = 1;
    0x00004d3c jalr t9                   |     t9 ();
    0x00004d40 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00004d44 addiu a0, zero, 2         |     a0 = 2;
    0x00004d48 lw s6, -0x7fc0(gp)        |     s6 = *(gp);
    0x00004d4c lw t9, -0x7a58(gp)        |     t9 = sym.imp.signal;
    0x00004d50 addiu a1, s6, -0x3c5c     |     a1 = s6 + -0x3c5c;
    0x00004d54 jalr t9                   |     t9 ();
    0x00004d58 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00004d5c addiu a1, s6, -0x3c5c     |     a1 = s6 + -0x3c5c;
    0x00004d60 lw t9, -0x7a58(gp)        |     t9 = sym.imp.signal;
    0x00004d64 addiu a0, zero, 0xf       |     a0 = 0xf;
    0x00004d68 jalr t9                   |     t9 ();
    0x00004d6c lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00004d70 addiu a0, zero, 3         |     a0 = 3;
    0x00004d74 lw a1, -0x7fc0(gp)        |     a1 = *(gp);
    0x00004d78 lw t9, -0x7a58(gp)        |     t9 = sym.imp.signal;
    0x00004d7c addiu a1, a1, -0x4030     |     a1 += -0x4030;
    0x00004d80 jalr t9                   |     t9 ();
    0x00004d84 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00004d88 addiu a0, zero, 0x10      |     a0 = 0x10;
    0x00004d8c lw a1, -0x7fc0(gp)        |     a1 = *(gp);
    0x00004d90 lw t9, -0x7a58(gp)        |     t9 = sym.imp.signal;
    0x00004d94 addiu a1, a1, -0x3cb8     |     a1 += -0x3cb8;
    0x00004d98 jalr t9                   |     t9 ();
    0x00004d9c lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00004da0 lw s6, -0x7fc0(gp)        |     s6 = *(gp);
    0x00004da4 lw s7, -0x7fd8(gp)        |     s7 = *((gp - 8182));
    0x00004da8 addiu v0, s6, -0x3d7c     |     v0 = s6 + -0x3d7c;
    0x00004dac lw fp, -0x7fdc(gp)        |     fp = *((gp - 8183));
    0x00004db0 sw v0, 0x28(sp)           |     *(var_28h) = v0;
                                         |     /* str._nSIGHUP_n */
    0x00004db4 addiu s7, s7, -0x687c     |     s7 += -0x687c;
                                         | label_8:
    0x00004db8 lbu v0, -0x560c(fp)       |     v0 = *(var_560ch);
    0x00004dbc andi v0, v0, 0xff         |     v0 &= 0xff;
    0x00004dc0 addiu v0, sp, 0x3c        |     v0 = sp + 0x3c;
                                         |     if (v0 != 0) {
    0x00004dc4 bnez v0, 0x4f44           |         goto label_27;
                                         |     }
    0x00004dc8 sw zero, 0x30(sp)         |     *(var_30h) = 0;
    0x00004dcc addiu a0, sp, 0xbc        |     a0 = sp + 0xbc;
    0x00004dd0 move s6, v0               |     s6 = v0;
    0x00004dd4 sw zero, (v0)             |     *(v0) = 0;
                                         |     do {
    0x00004dd8 addiu v0, v0, 4           |         v0 += 4;
    0x00004ddc sw zero, (v0)             |         *(v0) = 0;
    0x00004de0 bnel v0, a0, 0x4dd8       |         
                                         |     } while (v0 == a0);
    0x00004de4 lui v0, 0x3800            |     v0 = 0x38000000;
    0x00004de8 lw t9, -0x7fa4(gp)        |     t9 = sym.mDNSPosixGetFDSet;
    0x00004dec sw v0, 0x34(sp)           |     *(var_34h) = v0;
    0x00004df0 addiu v0, sp, 0x34        |     v0 = sp + 0x34;
    0x00004df4 move a3, v0               |     a3 = v0;
    0x00004df8 sw v0, 0x2c(sp)           |     *(var_2ch) = v0;
    0x00004dfc move a2, s6               |     a2 = s6;
    0x00004e00 addiu a1, sp, 0x30        |     a1 = sp + 0x30;
    0x00004e04 addiu a0, s1, -0x5600     |     a0 = s1 + -0x5600;
    0x00004e08 sw zero, 0x38(sp)         |     *(var_38h) = 0;
    0x00004e0c bal 0x7498                |     sym_mDNSPosixGetFDSet ();
    0x00004e10 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00004e14 lw v0, 0x2c(sp)           |     v0 = *(var_2ch);
    0x00004e18 lw a0, 0x30(sp)           |     a0 = *(var_30h);
    0x00004e1c lw t9, -0x7a68(gp)        |     t9 = sym.imp.select;
    0x00004e20 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x00004e24 move a3, zero             |     a3 = 0;
    0x00004e28 move a2, zero             |     a2 = 0;
    0x00004e2c move a1, s6               |     a1 = s6;
    0x00004e30 jalr t9                   |     t9 ();
    0x00004e34 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 >= 0) {
    0x00004e38 bgez v0, 0x4fbc           |         goto label_28;
                                         |     }
    0x00004e3c lw t9, -0x7adc(gp)        |     t9 = sym.imp.__errno_location;
    0x00004e40 jalr t9                   |     t9 ();
    0x00004e44 nop                       |     
    0x00004e48 lw v1, (v0)               |     v1 = *(v0);
    0x00004e4c addiu v0, zero, 4         |     v0 = 4;
    0x00004e50 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v1 != v0) {
    0x00004e54 beq v1, v0, 0x4e68        |         
    0x00004e58 addiu v0, zero, 1         |         v0 = 1;
    0x00004e5c sb v0, -0x560c(fp)        |         *((fp - 22028)) = v0;
    0x00004e60 b 0x4db8                  |         goto label_8;
    0x00004e64 nop                       |         
                                         |     }
    0x00004e68 lw v1, -0x7fdc(gp)        |     v1 = *((gp - 8183));
    0x00004e6c lbu v0, -0x560a(v1)       |     v0 = *((v1 - 22026));
    0x00004e70 andi v0, v0, 0xff         |     v0 &= 0xff;
    0x00004e74 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
                                         |     if (v0 != 0) {
    0x00004e78 beqz v0, 0x4ec0           |         
    0x00004e7c lw a3, (s2)               |         a3 = *(s2);
    0x00004e80 sb zero, -0x560a(v1)      |         *((v1 - 22026)) = 0;
    0x00004e84 addiu v0, a3, 1           |         v0 = a3 + 1;
    0x00004e88 slti a3, v0, 3            |         a3 = (v0 < 3) ? 1 : 0;
                                         |         if (a3 != 0) {
    0x00004e8c movz v0, zero, a3         |             v0 = 0;
                                         |         }
    0x00004e90 move a3, v0               |         a3 = v0;
    0x00004e94 sw v0, (s2)               |         *(s2) = v0;
                                         |         if (v0 > 0) {
    0x00004e98 blez v0, 0x4ebc           |             
    0x00004e9c lw v0, -0x7a34(gp)        |             v0 = *((gp - 7821));
    0x00004ea0 lw a2, -0x7fd8(gp)        |             a2 = *((gp - 8182));
    0x00004ea4 lw t9, -0x7b1c(gp)        |             t9 = sym.imp.__fprintf_chk
    0x00004ea8 lw a0, (v0)               |             a0 = *(v0);
                                         |             /* str._nVerbose_level__d_n */
    0x00004eac addiu a2, a2, -0x6890     |             a2 += -0x6890;
    0x00004eb0 addiu a1, zero, 1         |             a1 = 1;
    0x00004eb4 jalr t9                   |             t9 ();
    0x00004eb8 lw gp, 0x20(sp)           |             gp = *(var_20h);
                                         |         }
    0x00004ebc lw v0, -0x7fdc(gp)        |         v0 = *((gp - 8183));
                                         |     }
    0x00004ec0 move s6, v0               |     s6 = v0;
    0x00004ec4 lbu a0, -0x560b(v0)       |     a0 = *((v0 - 22027));
    0x00004ec8 andi a0, a0, 0xff         |     a0 &= 0xff;
                                         |     if (a0 == 0) {
    0x00004ecc beqz a0, 0x4db8           |         goto label_8;
                                         |     }
    0x00004ed0 nop                       |     
    0x00004ed4 lw v0, (s2)               |     v0 = *(s2);
    0x00004ed8 lw t9, 0x28(sp)           |     t9 = *(var_28h);
                                         |     if (v0 > 0) {
    0x00004edc blez v0, 0x4ef8           |         
    0x00004ee0 lw v0, -0x7a34(gp)        |         v0 = *((gp - 7821));
    0x00004ee4 lw t9, -0x7b38(gp)        |         t9 = sym.imp.fputs;
    0x00004ee8 move a0, s7               |         a0 = s7;
    0x00004eec lw a1, (v0)               |         a1 = *(v0);
    0x00004ef0 jalr t9                   |         t9 ();
    0x00004ef4 lw t9, 0x28(sp)           |         t9 = *(var_28h);
                                         |     }
    0x00004ef8 sb zero, -0x560b(s6)      |     *((s6 - 22027)) = 0;
    0x00004efc jalr t9                   |     t9 ();
    0x00004f00 nop                       |     
    0x00004f04 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00004f08 lw t9, -0x7a64(gp)        |     t9 = sym.imp.sleep;
    0x00004f0c addiu a0, zero, 1         |     a0 = 1;
    0x00004f10 jalr t9                   |     t9 ();
    0x00004f14 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00004f18 lw t9, -0x7fa0(gp)        |     t9 = sym.mDNSPlatformPosixRefreshInterfaceList;
    0x00004f1c addiu a0, s1, -0x5600     |     a0 = s1 + -0x5600;
    0x00004f20 bal 0x7274                |     sym_mDNSPlatformPosixRefreshInterfaceList ();
    0x00004f24 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 != 0) {
    0x00004f28 bnez v0, 0x4f40           |         goto label_29;
                                         |     }
    0x00004f2c move t9, s5               |     t9 = s5;
    0x00004f30 jalr t9                   |     t9 ();
    0x00004f34 nop                       |     
    0x00004f38 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 == 0) {
    0x00004f3c beqz v0, 0x4db8           |         goto label_8;
                                         |     }
                                         | label_29:
    0x00004f40 move s4, v0               |     s4 = v0;
                                         | label_27:
    0x00004f44 lw t9, -0x7fc0(gp)        |     t9 = *(gp);
    0x00004f48 addiu t9, t9, -0x3d7c     |     t9 += -0x3d7c;
    0x00004f4c jalr t9                   |     t9 ();
    0x00004f50 nop                       |     
    0x00004f54 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00004f58 lw t9, -0x7fd0(gp)        |     t9 = sym.mDNS_StartExit;
    0x00004f5c addiu a0, s1, -0x5600     |     a0 = s1 + -0x5600;
    0x00004f60 jalr t9                   |     t9 ();
    0x00004f64 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00004f68 lw t9, -0x7fcc(gp)        |     t9 = sym.mDNS_FinalExit;
    0x00004f6c addiu a0, s1, -0x5600     |     a0 = s1 + -0x5600;
    0x00004f70 jalr t9                   |     t9 ();
    0x00004f74 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (s4 != 0) {
    0x00004f78 bnez s4, 0x4fd4           |         goto label_30;
                                         |     }
    0x00004f7c lw v0, (s2)               |     v0 = *(s2);
    0x00004f80 move s1, zero             |     s1 = 0;
                                         |     if (v0 <= 0) {
    0x00004f84 blez v0, 0x4cf0           |         goto label_9;
                                         |     }
    0x00004f88 move s1, s4               |     s1 = s4;
                                         |     do {
    0x00004f8c lw v0, -0x7a34(gp)        |         v0 = *((gp - 7821));
    0x00004f90 lw a2, -0x7fd8(gp)        |         a2 = *((gp - 8182));
    0x00004f94 sw s1, 0x14(sp)           |         *(var_14h) = s1;
    0x00004f98 sw s4, 0x10(sp)           |         *(var_10h) = s4;
    0x00004f9c lw t9, -0x7b1c(gp)        |         t9 = sym.imp.__fprintf_chk
    0x00004fa0 lw a3, -0x5f7c(s0)        |         a3 = *((s0 - 6111));
    0x00004fa4 lw a0, (v0)               |         a0 = *(v0);
                                         |         /* str._s:_Finished_with_status__d__result__d_n */
    0x00004fa8 addiu a2, a2, -0x6870     |         a2 += -0x6870;
    0x00004fac addiu a1, zero, 1         |         a1 = 1;
    0x00004fb0 jalr t9                   |         t9 ();
    0x00004fb4 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00004fb8 b 0x4cf0                  |         goto label_9;
                                         | label_28:
    0x00004fbc lw t9, -0x7f9c(gp)        |         t9 = sym.mDNSPosixProcessFDSet;
    0x00004fc0 move a1, s6               |         a1 = s6;
    0x00004fc4 addiu a0, s1, -0x5600     |         a0 = s1 + -0x5600;
    0x00004fc8 bal 0x7628                |         sym_mDNSPosixProcessFDSet ();
    0x00004fcc lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00004fd0 b 0x4db8                  |         goto label_8;
                                         | label_30:
    0x00004fd4 addiu s1, zero, 2         |         s1 = 2;
    0x00004fd8 b 0x4f8c                  |         
                                         |     } while (1);
                                         | label_26:
    0x00004fdc lw ra, 0xe4(sp)           |     ra = *(var_e4h);
    0x00004fe0 lw fp, 0xe0(sp)           |     fp = *(var_e0h);
    0x00004fe4 lw s7, 0xdc(sp)           |     s7 = *(var_dch);
    0x00004fe8 lw s6, 0xd8(sp)           |     s6 = *(var_d8h);
    0x00004fec lw s5, 0xd4(sp)           |     s5 = *(var_d4h);
    0x00004ff0 lw s4, 0xd0(sp)           |     s4 = *(var_d0h);
    0x00004ff4 lw s3, 0xcc(sp)           |     s3 = *(var_cch);
    0x00004ff8 lw s2, 0xc8(sp)           |     s2 = *(var_c8h);
    0x00004ffc lw s1, 0xc4(sp)           |     s1 = *(var_c4h);
    0x00005000 lw s0, 0xc0(sp)           |     s0 = *(var_c0h);
    0x00005004 addiu sp, sp, 0xe8        |     
    0x00005008 jr ra                     |     return v0;
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/mDNSResponderPosix @ 0x7a8c */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.mDNSPlatformInit ()          | void mDNSPlatformInit () {
    0x00007a8c lui gp, 6                     |     
    0x00007a90 addiu gp, gp, -0x59fc         |     
    0x00007a94 addu gp, gp, t9               |     gp += t9;
    0x00007a98 addiu sp, sp, -0x60           |     
    0x00007a9c sw s2, 0x4c(sp)               |     *(var_4ch) = s2;
    0x00007aa0 lw s2, -0x7a4c(gp)            |     s2 = *((gp - 7827));
    0x00007aa4 sw gp, 0x18(sp)               |     *(var_18h) = gp;
    0x00007aa8 sw ra, 0x5c(sp)               |     *(var_5ch) = ra;
    0x00007aac sw s5, 0x58(sp)               |     *(var_58h) = s5;
    0x00007ab0 sw s4, 0x54(sp)               |     *(var_54h) = s4;
    0x00007ab4 sw s3, 0x50(sp)               |     *(var_50h) = s3;
    0x00007ab8 sw s1, 0x48(sp)               |     *(var_48h) = s1;
    0x00007abc sw s0, 0x44(sp)               |     *(var_44h) = s0;
    0x00007ac0 lw v0, (s2)                   |     v0 = *(s2);
    0x00007ac4 sw v0, 0x3c(sp)               |     *(var_3ch) = v0;
    0x00007ac8 lw t9, -0x7b14(gp)            |     t9 = sym.imp.socket;
                                             |     if (a0 == 0) {
    0x00007acc bnez a0, 0x7af4               |         
    0x00007ad0 lw a3, -0x7fc0(gp)            |         a3 = *(gp);
    0x00007ad4 lw a1, -0x7fc0(gp)            |         a1 = *(gp);
    0x00007ad8 lw a0, -0x7fc0(gp)            |         a0 = *(gp);
    0x00007adc lw t9, -0x7b44(gp)            |         t9 = sym.imp.__assert_fail;
                                             |         /* str.mDNSPlatformInit */
    0x00007ae0 addiu a3, a3, -0x28f8         |         a3 += -0x28f8;
    0x00007ae4 addiu a2, zero, 0x51f         |         a2 = 0x51f;
                                             |         /* str.mDNSPosix.c */
    0x00007ae8 addiu a1, a1, -0x2e1c         |         a1 += -0x2e1c;
                                             |         /* str.m___NULL */
    0x00007aec addiu a0, a0, -0x2e10         |         a0 += -0x2e10;
    0x00007af0 jalr t9                       |         t9 ();
                                             |     }
    0x00007af4 addiu a2, zero, 0x11          |     a2 = 0x11;
    0x00007af8 addiu a1, zero, 1             |     a1 = 1;
    0x00007afc move s0, a0                   |     s0 = a0;
    0x00007b00 addiu a0, zero, 2             |     a0 = 2;
    0x00007b04 jalr t9                       |     t9 ();
    0x00007b08 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x00007b0c move s1, v0                   |     s1 = v0;
    0x00007b10 addiu v0, zero, 2             |     v0 = 2;
    0x00007b14 sh v0, 0x2c(sp)               |     *(var_2ch) = v0;
    0x00007b18 lw v0, -0x7f84(gp)            |     v0 = *(gp);
    0x00007b1c addiu s3, sp, 0x2c            |     s3 = sp + 0x2c;
    0x00007b20 lw t9, -0x7ad4(gp)            |     t9 = sym.imp.bind;
    0x00007b24 lhu v0, (v0)                  |     v0 = *(v0);
    0x00007b28 addiu a2, zero, 0x10          |     a2 = 0x10;
    0x00007b2c move a1, s3                   |     a1 = s3;
    0x00007b30 move a0, s1                   |     a0 = s1;
    0x00007b34 sh v0, 0x2e(sp)               |     *(var_2eh) = v0;
    0x00007b38 sw zero, 0x30(sp)             |     *(var_30h) = 0;
    0x00007b3c jalr t9                       |     t9 ();
    0x00007b40 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x00007b44 move s4, v0                   |     s4 = v0;
    0x00007b48 lw t9, -0x7b40(gp)            |     t9 = sym.imp.close;
    0x00007b4c move a0, s1                   |     a0 = s1;
    0x00007b50 jalr t9                       |     t9 ();
    0x00007b54 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (s4 == 0) {
    0x00007b58 bnez s4, 0x7b64               |         
    0x00007b5c addiu v0, zero, 1             |         v0 = 1;
    0x00007b60 sb v0, 8(s0)                  |         *((s0 + 8)) = v0;
                                             |     }
    0x00007b64 lw s1, -0x7f90(gp)            |     s1 = *((gp - 8164));
    0x00007b68 addiu s4, s0, 0x1a54          |     s4 = s0 + 0x1a54;
    0x00007b6c addiu s1, s1, 0x51d4          |     s1 += fcn.000051d4;
    0x00007b70 sb zero, 0x1a54(s0)           |     *((s0 + 6740)) = 0;
    0x00007b74 move t9, s1                   |     t9 = s1;
    0x00007b78 move a0, s4                   |     a0 = s4;
    0x00007b7c bal 0x51d4                    |     fcn_000051d4 ();
    0x00007b80 lbu v0, 0x1a54(s0)            |     v0 = *((s0 + 6740));
    0x00007b84 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 == 0) {
    0x00007b88 bnez v0, 0x7ba0               |         
    0x00007b8c lw a1, -0x7fc0(gp)            |         a1 = *(gp);
    0x00007b90 lw t9, -0x7fc8(gp)            |         t9 = sym.MakeDomainLabelFromLiteralString;
                                             |         /* str.Computer */
    0x00007b94 addiu a1, a1, -0x29f0         |         a1 += -0x29f0;
    0x00007b98 move a0, s4                   |         a0 = s4;
    0x00007b9c bal 0xcc80                    |         sym_MakeDomainLabelFromLiteralString ();
                                             |     }
    0x00007ba0 addiu s4, s0, 0x1a94          |     s4 = s0 + 0x1a94;
    0x00007ba4 sb zero, 0x1a94(s0)           |     *((s0 + 6804)) = 0;
    0x00007ba8 move t9, s1                   |     t9 = s1;
    0x00007bac move a0, s4                   |     a0 = s4;
    0x00007bb0 bal 0x51d4                    |     fcn_000051d4 ();
    0x00007bb4 lbu v0, 0x1a94(s0)            |     v0 = *((s0 + 6804));
    0x00007bb8 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 == 0) {
    0x00007bbc bnez v0, 0x7bd8               |         
    0x00007bc0 lw a1, -0x7fc0(gp)            |         a1 = *(gp);
    0x00007bc4 lw t9, -0x7fc8(gp)            |         t9 = sym.MakeDomainLabelFromLiteralString;
                                             |         /* str.Computer */
    0x00007bc8 addiu a1, a1, -0x29f0         |         a1 += -0x29f0;
    0x00007bcc move a0, s4                   |         a0 = s4;
    0x00007bd0 bal 0xcc80                    |         sym_MakeDomainLabelFromLiteralString ();
    0x00007bd4 lw gp, 0x18(sp)               |         gp = *(var_18h);
                                             |     }
    0x00007bd8 lw t9, -0x7f3c(gp)            |     t9 = sym.mDNS_SetFQDN;
    0x00007bdc move a0, s0                   |     a0 = s0;
    0x00007be0 jalr t9                       |     t9 ();
    0x00007be4 addiu v0, zero, 2             |     v0 = 2;
    0x00007be8 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x00007bec sh v0, 0x2c(sp)               |     *(var_2ch) = v0;
    0x00007bf0 lw v0, (s0)                   |     v0 = *(s0);
    0x00007bf4 addiu s5, zero, -1            |     s5 = -1;
    0x00007bf8 lw s1, -0x7f90(gp)            |     s1 = *((gp - 8164));
    0x00007bfc sw s5, (v0)                   |     *(v0) = s5;
    0x00007c00 lw v0, -0x7f38(gp)            |     v0 = *(gp);
    0x00007c04 lw a3, (s0)                   |     a3 = *(s0);
    0x00007c08 addiu s1, s1, 0x5f40          |     s1 += fcn.00005f40;
    0x00007c0c lhu s4, (v0)                  |     s4 = *(v0);
    0x00007c10 move a2, zero                 |     a2 = 0;
    0x00007c14 move a1, s4                   |     a1 = s4;
    0x00007c18 move t9, s1                   |     t9 = s1;
    0x00007c1c move a0, s3                   |     a0 = s3;
    0x00007c20 bal 0x5f40                    |     fcn_00005f40 ();
    0x00007c24 addiu v1, zero, 0xa           |     v1 = 0xa;
    0x00007c28 sh v1, 0x2c(sp)               |     *(var_2ch) = v1;
    0x00007c2c lw v1, (s0)                   |     v1 = *(s0);
    0x00007c30 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x00007c34 sw s5, 4(v1)                  |     *((v1 + 1)) = s5;
    0x00007c38 beqz v0, 0x7c60               |     
                                             |     while (v0 != 0) {
                                             | label_0:
    0x00007c3c lui v0, 0xfffe                |         v0 = 0xfffeffff;
    0x00007c40 ori v0, v0, 0xffff            |         
                                             | label_2:
    0x00007c44 lw a0, 0x3c(sp)               |         a0 = *(var_3ch);
    0x00007c48 lw v1, (s2)                   |         v1 = *(s2);
    0x00007c4c lw ra, 0x5c(sp)               |         ra = *(var_5ch);
                                             |         if (a0 == v1) {
    0x00007c50 beq a0, v1, 0x7dd8            |             goto label_3;
                                             |         }
    0x00007c54 lw t9, -0x7a70(gp)            |         t9 = sym.imp.__stack_chk_fail;
    0x00007c58 jalr t9                       |         t9 ();
    0x00007c5c nop                           |         
    0x00007c60 lw a3, (s0)                   |         a3 = *(s0);
    0x00007c64 move a2, zero                 |         a2 = 0;
    0x00007c68 addiu a3, a3, 4               |         a3 += 4;
    0x00007c6c move a1, s4                   |         a1 = s4;
    0x00007c70 move t9, s1                   |         t9 = s1;
    0x00007c74 move a0, s3                   |         a0 = s3;
    0x00007c78 bal 0x5f40                    |         fcn_00005f40 ();
    0x00007c7c lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x00007c80 bnez v0, 0x7c3c               |         
                                             |     }
    0x00007c84 lw t9, -0x7f90(gp)            |     t9 = *((gp - 8164));
    0x00007c88 addiu t9, t9, 0x6f90          |     t9 += fcn.00006f90;
    0x00007c8c move a0, s0                   |     a0 = s0;
    0x00007c90 bal 0x6f90                    |     fcn_00006f90 ();
    0x00007c94 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 != 0) {
    0x00007c98 bnez v0, 0x7c3c               |         goto label_0;
                                             |     }
    0x00007c9c lw t9, -0x7a94(gp)            |     t9 = sym.imp.malloc;
    0x00007ca0 addiu a0, zero, 8             |     a0 = 8;
    0x00007ca4 jalr t9                       |     t9 ();
    0x00007ca8 move s3, v0                   |     s3 = v0;
    0x00007cac lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 == 0) {
    0x00007cb0 beqz v0, 0x7dcc               |         goto label_4;
                                             |     }
    0x00007cb4 lw t9, -0x7b14(gp)            |     t9 = sym.imp.socket;
    0x00007cb8 sw s0, 4(v0)                  |     *((v0 + 1)) = s0;
    0x00007cbc move a2, zero                 |     a2 = 0;
    0x00007cc0 addiu a1, zero, 3             |     a1 = 3;
    0x00007cc4 addiu a0, zero, 0x10          |     a0 = 0x10;
    0x00007cc8 jalr t9                       |     t9 ();
    0x00007ccc move s1, v0                   |     s1 = v0;
    0x00007cd0 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x00007cd4 bgez v0, 0x7d2c               |     
                                             |     while (v0 != 0) {
    0x00007cd8 lw t9, -0x7adc(gp)            |         t9 = sym.imp.__errno_location;
    0x00007cdc jalr t9                       |         t9 ();
    0x00007ce0 nop                           |         
    0x00007ce4 lw s1, (v0)                   |         s1 = *(v0);
    0x00007ce8 lw gp, 0x18(sp)               |         gp = *(var_18h);
                                             |         if (s1 == 0) {
    0x00007cec beqz s1, 0x7d8c               |             goto label_5;
                                             |         }
                                             | label_1:
    0x00007cf0 lw v0, -0x7a34(gp)            |         v0 = *((gp - 7821));
    0x00007cf4 lw t9, -0x7a88(gp)            |         t9 = sym.imp.getpid;
    0x00007cf8 lw s3, (v0)                   |         s3 = *(v0);
    0x00007cfc jalr t9                       |         t9 ();
    0x00007d00 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x00007d04 sw s1, 0x10(sp)               |         *(var_10h) = s1;
    0x00007d08 move a3, v0                   |         a3 = v0;
    0x00007d0c lw a2, -0x7fc0(gp)            |         a2 = *(gp);
    0x00007d10 lw t9, -0x7b1c(gp)            |         t9 = sym.imp.__fprintf_chk
                                             |         /* str.mDNS__d__WARNING:_Unable_to_detect_interface_changes___d_._n */
    0x00007d14 addiu a2, a2, -0x29e4         |         a2 += -0x29e4;
    0x00007d18 addiu a1, zero, 1             |         a1 = 1;
    0x00007d1c move a0, s3                   |         a0 = s3;
    0x00007d20 jalr t9                       |         t9 ();
    0x00007d24 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x00007d28 b 0x7db0                      |         goto label_6;
    0x00007d2c lw t9, -0x7acc(gp)            |         t9 = sym.imp.fcntl;
    0x00007d30 addiu a2, zero, 0x80          |         a2 = 0x80;
    0x00007d34 addiu a1, zero, 4             |         a1 = 4;
    0x00007d38 move a0, v0                   |         a0 = v0;
    0x00007d3c jalr t9                       |         t9 ();
    0x00007d40 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x00007d44 addiu s4, sp, 0x20            |         s4 = sp + 0x20;
    0x00007d48 addiu a1, zero, 0xc           |         a1 = 0xc;
    0x00007d4c lw t9, -0x7f6c(gp)            |         t9 = sym.mDNSPlatformMemZero;
    0x00007d50 move a0, s4                   |         a0 = s4;
    0x00007d54 bal 0x5b48                    |         sym_mDNSPlatformMemZero ();
    0x00007d58 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x00007d5c addiu v0, zero, 0x10          |         v0 = 0x10;
    0x00007d60 sh v0, 0x20(sp)               |         *(var_20h) = v0;
    0x00007d64 lw t9, -0x7ad4(gp)            |         t9 = sym.imp.bind;
    0x00007d68 addiu v0, zero, 0x11          |         v0 = 0x11;
    0x00007d6c sw v0, 0x28(sp)               |         *(var_28h) = v0;
    0x00007d70 addiu a2, zero, 0xc           |         a2 = 0xc;
    0x00007d74 move a1, s4                   |         a1 = s4;
    0x00007d78 move a0, s1                   |         a0 = s1;
    0x00007d7c jalr t9                       |         t9 ();
    0x00007d80 lw gp, 0x18(sp)               |         gp = *(var_18h);
    0x00007d84 bnez v0, 0x7cd8               |         
                                             |     }
    0x00007d88 sw s1, (s3)                   |     *(s3) = s1;
                                             | label_5:
    0x00007d8c lw a1, -0x7f90(gp)            |     a1 = *((gp - 8164));
    0x00007d90 lw t9, -0x7f34(gp)            |     t9 = sym.mDNSPosixAddFDToEventLoop;
    0x00007d94 lw a0, (s3)                   |     a0 = *(s3);
    0x00007d98 move a2, s3                   |     a2 = s3;
    0x00007d9c addiu a1, a1, 0x72d8          |     a1 += 0x72d8;
    0x00007da0 bal 0x7970                    |     sym_mDNSPosixAddFDToEventLoop ();
    0x00007da4 move s1, v0                   |     s1 = v0;
    0x00007da8 lw gp, 0x18(sp)               |     gp = *(var_18h);
                                             |     if (v0 != 0) {
    0x00007dac bnez v0, 0x7cf0               |         goto label_1;
                                             |     }
                                             | label_6:
    0x00007db0 lw t9, -0x7f30(gp)            |     t9 = sym.mDNSCoreInitComplete;
    0x00007db4 move a1, zero                 |     a1 = 0;
    0x00007db8 move a0, s0                   |     a0 = s0;
    0x00007dbc jalr t9                       |     t9 ();
    0x00007dc0 lw gp, 0x18(sp)               |     gp = *(var_18h);
    0x00007dc4 move v0, zero                 |     v0 = 0;
    0x00007dc8 b 0x7c44                      |     goto label_2;
                                             | label_4:
    0x00007dcc lui s1, 0xfffe                |     s1 = 0xfffefffd;
    0x00007dd0 ori s1, s1, 0xfffd            |     
    0x00007dd4 b 0x7cf0                      |     goto label_1;
                                             | label_3:
    0x00007dd8 lw s5, 0x58(sp)               |     s5 = *(var_58h);
    0x00007ddc lw s4, 0x54(sp)               |     s4 = *(var_54h);
    0x00007de0 lw s3, 0x50(sp)               |     s3 = *(var_50h);
    0x00007de4 lw s2, 0x4c(sp)               |     s2 = *(var_4ch);
    0x00007de8 lw s1, 0x48(sp)               |     s1 = *(var_48h);
    0x00007dec lw s0, 0x44(sp)               |     s0 = *(var_44h);
    0x00007df0 addiu sp, sp, 0x60            |     
    0x00007df4 jr ra                         |     return v0;
                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/mDNSResponderPosix @ 0x162c4 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.mDNSPlatformWriteLogMsg ()       | void mDNSPlatformWriteLogMsg () {
    0x000162c4 lui gp, 5                         |     
    0x000162c8 addiu gp, gp, -0x4234             |     
    0x000162cc addu gp, gp, t9                   |     gp += t9;
    0x000162d0 addiu sp, sp, -0x30               |     
    0x000162d4 lw v0, -0x7ddc(gp)                |     v0 = *(gp);
    0x000162d8 sw s2, 0x24(sp)                   |     *(var_24h) = s2;
    0x000162dc sw gp, 0x10(sp)                   |     *(var_10h) = gp;
    0x000162e0 sw ra, 0x2c(sp)                   |     *(var_2ch) = ra;
    0x000162e4 sw s3, 0x28(sp)                   |     *(var_28h) = s3;
    0x000162e8 sw s1, 0x20(sp)                   |     *(var_20h) = s1;
    0x000162ec sw s0, 0x1c(sp)                   |     *(var_1ch) = s0;
    0x000162f0 lw v0, (v0)                       |     v0 = *(v0);
    0x000162f4 move s2, a1                       |     s2 = a1;
                                                 |     if (v0 != 0) {
    0x000162f8 beqz v0, 0x16344                  |         
    0x000162fc lw s0, -0x7a34(gp)                |         s0 = *((gp - 7821));
    0x00016300 lw a2, -0x7fd8(gp)                |         a2 = *((gp - 8182));
    0x00016304 lw t9, -0x7b1c(gp)                |         t9 = sym.imp.__fprintf_chk
    0x00016308 lw a0, (s0)                       |         a0 = *(s0);
    0x0001630c move a3, a1                       |         a3 = a1;
                                                 |         /* esilref: '&s
' */
    0x00016310 addiu a2, a2, -0x6a28             |         a2 += -0x6a28;
    0x00016314 addiu a1, zero, 1                 |         a1 = 1;
    0x00016318 jalr t9                           |         t9 ();
    0x0001631c lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x00016320 lw a0, (s0)                       |         a0 = *(s0);
    0x00016324 lw ra, 0x2c(sp)                   |         ra = *(var_2ch);
    0x00016328 lw s3, 0x28(sp)                   |         s3 = *(var_28h);
    0x0001632c lw s2, 0x24(sp)                   |         s2 = *(var_24h);
    0x00016330 lw s1, 0x20(sp)                   |         s1 = *(var_20h);
    0x00016334 lw s0, 0x1c(sp)                   |         s0 = *(var_1ch);
    0x00016338 lw t9, -0x7a2c(gp)                |         t9 = sym.imp.fflush;
    0x0001633c addiu sp, sp, 0x30                |         
    0x00016340 jr t9                             |         t9 ();
                                                 |     }
    0x00016344 sltiu v0, a2, 5                   |     v0 = (a2 < 5) ? 1 : 0;
    0x00016348 move s3, a0                       |     s3 = a0;
    0x0001634c move a3, a2                       |     a3 = a2;
                                                 |     if (v0 == 0) {
    0x00016350 beqz v0, 0x163cc                  |         goto label_0;
                                                 |     }
    0x00016354 lw a2, -0x7fc0(gp)                |     a2 = *(gp);
    0x00016358 addiu a2, a2, -0x340              |     a2 += -0x340;
    0x0001635c addu a3, a3, a2                   |     a3 += a2;
    0x00016360 lb s1, (a3)                       |     s1 = *(a3);
                                                 |     do {
    0x00016364 lw s0, -0x7fdc(gp)                |         s0 = *((gp - 8183));
    0x00016368 lw v0, -0x5740(s0)                |         v0 = *((s0 - 5584));
    0x0001636c lw a2, -0x7fc0(gp)                |         a2 = *(gp);
                                                 |         if (v0 == 0) {
    0x00016370 bnez v0, 0x1639c                  |             
    0x00016374 lw t9, -0x7afc(gp)                |             t9 = sym.imp.openlog;
    0x00016378 addiu a2, zero, 0x18              |             a2 = 0x18;
    0x0001637c addiu a1, zero, 2                 |             a1 = 2;
    0x00016380 move a0, s3                       |             a0 = s3;
    0x00016384 jalr t9                           |             t9 ();
    0x00016388 lw v0, -0x5740(s0)                |             v0 = *((s0 - 5584));
    0x0001638c lw gp, 0x10(sp)                   |             gp = *(var_10h);
    0x00016390 addiu v0, v0, 1                   |             v0++;
    0x00016394 sw v0, -0x5740(s0)                |             *((s0 - 5584)) = v0;
    0x00016398 lw a2, -0x7fc0(gp)                |             a2 = *(gp);
                                                 |         }
    0x0001639c lw ra, 0x2c(sp)                   |         ra = *(var_2ch);
    0x000163a0 lw s3, 0x28(sp)                   |         s3 = *(var_28h);
    0x000163a4 lw s0, 0x1c(sp)                   |         s0 = *(var_1ch);
    0x000163a8 move a3, s2                       |         a3 = s2;
    0x000163ac move a0, s1                       |         a0 = s1;
    0x000163b0 lw s2, 0x24(sp)                   |         s2 = *(var_24h);
    0x000163b4 lw s1, 0x20(sp)                   |         s1 = *(var_20h);
    0x000163b8 lw t9, -0x7ae8(gp)                |         t9 = sym.imp.__syslog_chk;
                                                 |         /* esilref: '&s' */
    0x000163bc addiu a2, a2, 0x69ac              |         a2 += 0x69ac;
    0x000163c0 addiu a1, zero, 1                 |         a1 = 1;
    0x000163c4 addiu sp, sp, 0x30                |         
    0x000163c8 jr t9                             |         t9 ();
                                                 | label_0:
    0x000163cc lw s0, -0x7a34(gp)                |         s0 = *((gp - 7821));
    0x000163d0 lw a2, -0x7fc0(gp)                |         a2 = *(gp);
    0x000163d4 lw t9, -0x7b1c(gp)                |         t9 = sym.imp.__fprintf_chk
    0x000163d8 lw a0, (s0)                       |         a0 = *(s0);
                                                 |         /* str.Unknown_loglevel__d__assuming_LOG_ERR_n */
    0x000163dc addiu a2, a2, -0x36c              |         a2 += -aav.0x0000036c;
    0x000163e0 addiu a1, zero, 1                 |         a1 = 1;
    0x000163e4 jalr t9                           |         t9 ();
    0x000163e8 lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x000163ec lw a0, (s0)                       |         a0 = *(s0);
    0x000163f0 lw t9, -0x7a2c(gp)                |         t9 = sym.imp.fflush;
    0x000163f4 addiu s1, zero, 3                 |         s1 = 3;
    0x000163f8 jalr t9                           |         t9 ();
    0x000163fc lw gp, 0x10(sp)                   |         gp = *(var_10h);
    0x00016400 b 0x16364                         |         
                                                 |     } while (1);
                                                 | }

[*] Function fprintf used 22 times mDNSResponderPosix