// File: /workspace/github_c_makefile_star2_O0/wahern[P]cqueues/src/lib/dns.c
// Function: dns_hints_root
struct dns_hints *dns_hints_root(struct dns_resolv_conf *resconf, int *error_) {
	static const struct {
		int af;
		char addr[INET6_ADDRSTRLEN];
	} root_hints[] = {
		{ AF_INET,	"198.41.0.4"		},	/* A.ROOT-SERVERS.NET. */
		{ AF_INET6,	"2001:503:ba3e::2:30"	},	/* A.ROOT-SERVERS.NET. */
		{ AF_INET,	"192.228.79.201"	},	/* B.ROOT-SERVERS.NET. */
		{ AF_INET6,	"2001:500:84::b"	},	/* B.ROOT-SERVERS.NET. */
		{ AF_INET,	"192.33.4.12"		},	/* C.ROOT-SERVERS.NET. */
		{ AF_INET6,	"2001:500:2::c"		},	/* C.ROOT-SERVERS.NET. */
		{ AF_INET,	"199.7.91.13"		},	/* D.ROOT-SERVERS.NET. */
		{ AF_INET6,	"2001:500:2d::d"	},	/* D.ROOT-SERVERS.NET. */
		{ AF_INET,	"192.203.230.10"	},	/* E.ROOT-SERVERS.NET. */
		{ AF_INET,	"192.5.5.241"		},	/* F.ROOT-SERVERS.NET. */
		{ AF_INET6,	"2001:500:2f::f"	},	/* F.ROOT-SERVERS.NET. */
		{ AF_INET,	"192.112.36.4"		},	/* G.ROOT-SERVERS.NET. */
		{ AF_INET,	"128.63.2.53"		},	/* H.ROOT-SERVERS.NET. */
		{ AF_INET6,	"2001:500:1::803f:235"	},	/* H.ROOT-SERVERS.NET. */
		{ AF_INET,	"192.36.148.17"		},	/* I.ROOT-SERVERS.NET. */
		{ AF_INET6,	"2001:7FE::53"		},	/* I.ROOT-SERVERS.NET. */
		{ AF_INET,	"192.58.128.30"		},	/* J.ROOT-SERVERS.NET. */
		{ AF_INET6,	"2001:503:c27::2:30"	},	/* J.ROOT-SERVERS.NET. */
		{ AF_INET,	"193.0.14.129"		},	/* K.ROOT-SERVERS.NET. */
		{ AF_INET6,	"2001:7FD::1"		},	/* K.ROOT-SERVERS.NET. */
		{ AF_INET,	"199.7.83.42"		},	/* L.ROOT-SERVERS.NET. */
		{ AF_INET6,	"2001:500:3::42"	},	/* L.ROOT-SERVERS.NET. */
		{ AF_INET,	"202.12.27.33"		},	/* M.ROOT-SERVERS.NET. */
		{ AF_INET6,	"2001:DC3::35"		},	/* M.ROOT-SERVERS.NET. */
	};
	struct dns_hints *hints		= 0;
	struct sockaddr_storage ss;
	unsigned i;
	int error, af;

	if (!(hints = dns_hints_open(resconf, &error)))
		goto error;

	for (i = 0; i < lengthof(root_hints); i++) {
		af	= root_hints[i].af;

		if ((error = dns_pton(af, root_hints[i].addr, dns_sa_addr(af, &ss, NULL))))
			goto error;

		*dns_sa_port(af, &ss)	= htons(53);
		ss.ss_family		= af;

		if ((error = dns_hints_insert(hints, ".", (struct sockaddr *)&ss, 1)))
			goto error;
	}

	return hints;
error:
	*error_	= error;

	dns_hints_close(hints);

	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
movq -0x10(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0xf030
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
jne 0x3c3ba
jmp 0x3c4dd
movl $0x0, -0xa4(%rbp)
movl -0xa4(%rbp), %eax
cmpq $0x18, %rax
jae 0x3c4d3
movl -0xa4(%rbp), %eax
movl %eax, %ecx
leaq 0xe5ed(%rip), %rax      # 0x4a9d0
imulq $0x34, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %eax
movl %eax, -0xac(%rbp)
movl -0xac(%rbp), %eax
movl %eax, -0xbc(%rbp)
movl -0xa4(%rbp), %eax
movl %eax, %ecx
leaq 0xe5c3(%rip), %rax      # 0x4a9d0
imulq $0x34, %rcx, %rcx
addq %rcx, %rax
addq $0x4, %rax
movq %rax, -0xb8(%rbp)
movl -0xac(%rbp), %edi
leaq -0xa0(%rbp), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x3a110
movl -0xbc(%rbp), %edi
movq -0xb8(%rbp), %rsi
movq %rax, %rdx
callq 0x3a0b0
movl %eax, -0xa8(%rbp)
cmpl $0x0, %eax
je 0x3c45a
jmp 0x3c4dd
movl $0x35, %edi
callq 0xf0e0
movw %ax, -0xbe(%rbp)
movl -0xac(%rbp), %edi
leaq -0xa0(%rbp), %rsi
callq 0x3a1b0
movw -0xbe(%rbp), %cx
movw %cx, (%rax)
movl -0xac(%rbp), %eax
movw %ax, -0xa0(%rbp)
movq -0x20(%rbp), %rdi
leaq 0x10fd4(%rip), %rsi     # 0x4d473
leaq -0xa0(%rbp), %rdx
movl $0x1, %ecx
callq 0xf9c0
movl %eax, -0xa8(%rbp)
cmpl $0x0, %eax
je 0x3c4bd
jmp 0x3c4dd
jmp 0x3c4bf
movl -0xa4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xa4(%rbp)
jmp 0x3c3c4
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x3c4fa
movl -0xa8(%rbp), %ecx
movq -0x18(%rbp), %rax
movl %ecx, (%rax)
movq -0x20(%rbp), %rdi
callq 0xfc90
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0xc0, %rsp
popq %rbp
retq
nopw (%rax,%rax)