// File: /workspace/github_c_makefile_star2_O2/wahern[P]cqueues/src/dns.c
// Function: luaopen__cqueues_dns_record
int luaopen__cqueues_dns_record(lua_State *L) {
	static const struct cqs_macro classes[] = {
		{ "IN", DNS_C_IN }, { "ANY", DNS_C_ANY },
	};
	static const struct cqs_macro types[] = {
		{ "A",     DNS_T_A },     { "NS",   DNS_T_NS },
		{ "CNAME", DNS_T_CNAME }, { "SOA",  DNS_T_SOA },
		{ "PTR",   DNS_T_PTR },   { "MX",   DNS_T_MX },
		{ "TXT",   DNS_T_TXT },   { "AAAA", DNS_T_AAAA },
		{ "SRV",   DNS_T_SRV },   { "OPT",  DNS_T_OPT },
		{ "SSHFP", DNS_T_SSHFP }, { "SPF",  DNS_T_SPF },
		{ "ALL",   DNS_T_ALL },
	};
	static const struct cqs_macro sshfp[] = {
		{ "RSA",  DNS_SSHFP_RSA }, { "DSA", DNS_SSHFP_DSA },
		{ "SHA1", DNS_SSHFP_SHA1 },
	};

	rr_loadall(L);

	luaL_newlib(L, rr_globals);

	lua_createtable(L, 0, countof(classes));
	cqs_setmacros(L, -1, classes, countof(classes), 1);
	lua_setfield(L, -2, "class");

	lua_createtable(L, 0, countof(types));
	cqs_setmacros(L, -1, types, countof(types), 1);
	lua_createtable(L, 0, 1);
	lua_pushcfunction(L, &rr_type);
	lua_setfield(L, -2, "__call");
	lua_setmetatable(L, -2);
	lua_setfield(L, -2, "type");

	lua_createtable(L, 0, countof(sshfp));
	cqs_setmacros(L, -1, sshfp, countof(sshfp), 1);
	lua_setfield(L, -2, "sshfp");

	return 1;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
callq 0xf970
movl %eax, %ebp
leaq 0x149db(%rip), %rsi     # 0x31283
leaq 0x27001(%rip), %rdx     # 0x438b0
leaq 0x2706a(%rip), %rcx     # 0x43920
movq %rbx, %rdi
callq 0x1cd93
leaq 0x149c9(%rip), %rsi     # 0x3128e
leaq 0x27074(%rip), %rdx     # 0x43940
leaq 0x270dd(%rip), %rcx     # 0x439b0
movq %rbx, %rdi
callq 0x1cd93
leaq 0x149b5(%rip), %rsi     # 0x31297
leaq 0x270e7(%rip), %r14     # 0x439d0
leaq 0x27150(%rip), %r15     # 0x43a40
movq %rbx, %rdi
movq %r14, %rdx
movq %r15, %rcx
callq 0x1cd93
leaq 0x1499c(%rip), %rsi     # 0x312a1
movq %rbx, %rdi
movq %r14, %rdx
movq %r15, %rcx
callq 0x1cd93
leaq 0x14994(%rip), %rsi     # 0x312ae
leaq 0x2713f(%rip), %rdx     # 0x43a60
leaq 0x27208(%rip), %rcx     # 0x43b30
movq %rbx, %rdi
callq 0x1cd93
leaq 0x14982(%rip), %rsi     # 0x312b9
movq %rbx, %rdi
movq %r14, %rdx
movq %r15, %rcx
callq 0x1cd93
leaq 0x14978(%rip), %rsi     # 0x312c4
leaq 0x271fd(%rip), %rdx     # 0x43b50
leaq 0x27276(%rip), %rcx     # 0x43bd0
movq %rbx, %rdi
callq 0x1cd93
leaq 0x14965(%rip), %rsi     # 0x312ce
leaq 0x27280(%rip), %rdx     # 0x43bf0
leaq 0x272e9(%rip), %rcx     # 0x43c60
movq %rbx, %rdi
callq 0x1cd93
leaq 0x14953(%rip), %rsi     # 0x312d9
leaq 0x272f3(%rip), %rdx     # 0x43c80
leaq 0x2735c(%rip), %rcx     # 0x43cf0
movq %rbx, %rdi
callq 0x1cd93
leaq 0x14942(%rip), %rsi     # 0x312e5
leaq 0x27366(%rip), %rdx     # 0x43d10
leaq 0x273ff(%rip), %rcx     # 0x43db0
movq %rbx, %rdi
callq 0x1cd93
leaq 0x14930(%rip), %rsi     # 0x312f0
leaq 0x27409(%rip), %rdx     # 0x43dd0
leaq 0x27492(%rip), %rcx     # 0x43e60
movq %rbx, %rdi
callq 0x1cd93
leaq 0x1491e(%rip), %rsi     # 0x312fb
leaq 0x2749c(%rip), %rdx     # 0x43e80
leaq 0x27515(%rip), %rcx     # 0x43f00
movq %rbx, %rdi
callq 0x1cd93
leaq 0x1490e(%rip), %rsi     # 0x31308
leaq 0x2751f(%rip), %rdx     # 0x43f20
leaq 0x27598(%rip), %rcx     # 0x43fa0
movq %rbx, %rdi
callq 0x1cd93
movq %rbx, %rdi
movl %ebp, %esi
callq 0x106f0
movsd 0x135de(%rip), %xmm0    # 0x30000
movl $0x88, %esi
movq %rbx, %rdi
callq 0x105e0
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x10270
leaq 0x14b1e(%rip), %rsi     # 0x31560
movq %rbx, %rdi
xorl %edx, %edx
callq 0x102d0
pushq $0x2
popq %rdx
movq %rbx, %rdi
xorl %esi, %esi
callq 0x10270
leaq 0x266b0(%rip), %rsi     # 0x43110
pushq $0x2
popq %rdx
pushq $0x1
popq %rbp
movq %rbx, %rdi
movl %ebp, %ecx
callq 0x1cb33
leaq 0x14692(%rip), %rdx     # 0x31109
pushq $-0x2
popq %r14
movq %rbx, %rdi
movl %r14d, %esi
callq 0xf550
pushq $0xd
popq %rdx
movq %rbx, %rdi
xorl %esi, %esi
callq 0x10270
leaq 0x26696(%rip), %rsi     # 0x43130
pushq $0xd
popq %rdx
movq %rbx, %rdi
movl %ebp, %ecx
callq 0x1cb33
movq %rbx, %rdi
xorl %esi, %esi
movl %ebp, %edx
callq 0x10270
leaq 0x122(%rip), %rsi       # 0x1cbdc
movq %rbx, %rdi
xorl %edx, %edx
callq 0x10ad0
leaq 0x13672(%rip), %rdx     # 0x3013d
movq %rbx, %rdi
movl %r14d, %esi
callq 0xf550
movq %rbx, %rdi
movl %r14d, %esi
callq 0x109f0
leaq 0x172d6(%rip), %rdx     # 0x33dbe
movq %rbx, %rdi
movl %r14d, %esi
callq 0xf550
pushq $0x3
popq %rdx
movq %rbx, %rdi
xorl %esi, %esi
callq 0x10270
leaq 0x266f9(%rip), %rsi     # 0x43200
pushq $0x3
popq %rdx
movq %rbx, %rdi
movl %ebp, %ecx
callq 0x1cb33
leaq 0x145f4(%rip), %rdx     # 0x3110f
movq %rbx, %rdi
movl %r14d, %esi
callq 0xf550
movl %ebp, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq