[*] 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