// File: /workspace/github_c_makefile_star2_O3/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 %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
callq 0xf920
movl %eax, %ebp
leaq 0x17ab3(%rip), %rsi     # 0x36283
movq %rbx, %rdi
callq 0x10180
leaq 0x27141(%rip), %rsi     # 0x45920
xorl %r13d, %r13d
movq %rbx, %rdi
xorl %edx, %edx
callq 0x10240
movq %rbx, %rdi
xorl %esi, %esi
movl $0x6, %edx
callq 0x101e0
leaq 0x270ae(%rip), %rsi     # 0x458b0
movq %rbx, %rdi
xorl %edx, %edx
callq 0x10240
leaq 0x16914(%rip), %r14     # 0x35127
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
movq %r14, %rdx
callq 0xf530
leaq 0x17a64(%rip), %rsi     # 0x3628e
movq %rbx, %rdi
callq 0x10180
leaq 0x27177(%rip), %rsi     # 0x459b0
movq %rbx, %rdi
xorl %edx, %edx
callq 0x10240
movq %rbx, %rdi
xorl %esi, %esi
movl $0x6, %edx
callq 0x101e0
leaq 0x270e7(%rip), %rsi     # 0x45940
movq %rbx, %rdi
xorl %edx, %edx
callq 0x10240
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
movq %r14, %rdx
callq 0xf530
leaq 0x17a1d(%rip), %rsi     # 0x36297
movq %rbx, %rdi
callq 0x10180
leaq 0x271b7(%rip), %r15     # 0x45a40
movq %rbx, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x10240
movq %rbx, %rdi
xorl %esi, %esi
movl $0x6, %edx
callq 0x101e0
leaq 0x27124(%rip), %r12     # 0x459d0
movq %rbx, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x10240
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
movq %r14, %rdx
callq 0xf530
leaq 0x179d1(%rip), %rsi     # 0x362a1
movq %rbx, %rdi
callq 0x10180
movq %rbx, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x10240
movq %rbx, %rdi
xorl %esi, %esi
movl $0x6, %edx
callq 0x101e0
movq %rbx, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x10240
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
movq %r14, %rdx
callq 0xf530
leaq 0x17996(%rip), %rsi     # 0x362ae
movq %rbx, %rdi
callq 0x10180
leaq 0x27209(%rip), %rsi     # 0x45b30
movq %rbx, %rdi
xorl %edx, %edx
callq 0x10240
movq %rbx, %rdi
xorl %esi, %esi
movl $0xc, %edx
callq 0x101e0
leaq 0x27119(%rip), %rsi     # 0x45a60
movq %rbx, %rdi
xorl %edx, %edx
callq 0x10240
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
movq %r14, %rdx
callq 0xf530
leaq 0x17951(%rip), %rsi     # 0x362b9
movq %rbx, %rdi
callq 0x10180
movq %rbx, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x10240
movq %rbx, %rdi
xorl %esi, %esi
movl $0x6, %edx
callq 0x101e0
movq %rbx, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x10240
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
movq %r14, %rdx
callq 0xf530
leaq 0x17914(%rip), %rsi     # 0x362c4
movq %rbx, %rdi
callq 0x10180
leaq 0x27211(%rip), %rsi     # 0x45bd0
movq %rbx, %rdi
xorl %edx, %edx
callq 0x10240
movq %rbx, %rdi
xorl %esi, %esi
movl $0x7, %edx
callq 0x101e0
leaq 0x27171(%rip), %rsi     # 0x45b50
movq %rbx, %rdi
xorl %edx, %edx
callq 0x10240
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
movq %r14, %rdx
callq 0xf530
leaq 0x178ce(%rip), %rsi     # 0x362ce
movq %rbx, %rdi
callq 0x10180
leaq 0x27251(%rip), %rsi     # 0x45c60
movq %rbx, %rdi
xorl %edx, %edx
callq 0x10240
movq %rbx, %rdi
xorl %esi, %esi
movl $0x6, %edx
callq 0x101e0
leaq 0x271c1(%rip), %rsi     # 0x45bf0
movq %rbx, %rdi
xorl %edx, %edx
callq 0x10240
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
movq %r14, %rdx
callq 0xf530
leaq 0x17889(%rip), %rsi     # 0x362d9
movq %rbx, %rdi
callq 0x10180
leaq 0x27291(%rip), %rsi     # 0x45cf0
movq %rbx, %rdi
xorl %edx, %edx
callq 0x10240
movq %rbx, %rdi
xorl %esi, %esi
movl $0x6, %edx
callq 0x101e0
leaq 0x27201(%rip), %rsi     # 0x45c80
movq %rbx, %rdi
xorl %edx, %edx
callq 0x10240
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
movq %r14, %rdx
callq 0xf530
leaq 0x17845(%rip), %rsi     # 0x362e5
movq %rbx, %rdi
callq 0x10180
leaq 0x27301(%rip), %rsi     # 0x45db0
movq %rbx, %rdi
xorl %edx, %edx
callq 0x10240
movq %rbx, %rdi
xorl %esi, %esi
movl $0x9, %edx
callq 0x101e0
leaq 0x27241(%rip), %rsi     # 0x45d10
movq %rbx, %rdi
xorl %edx, %edx
callq 0x10240
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
movq %r14, %rdx
callq 0xf530
leaq 0x17800(%rip), %rsi     # 0x362f0
movq %rbx, %rdi
callq 0x10180
leaq 0x27361(%rip), %rsi     # 0x45e60
movq %rbx, %rdi
xorl %edx, %edx
callq 0x10240
movq %rbx, %rdi
xorl %esi, %esi
movl $0x8, %edx
callq 0x101e0
leaq 0x272b1(%rip), %rsi     # 0x45dd0
movq %rbx, %rdi
xorl %edx, %edx
callq 0x10240
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
movq %r14, %rdx
callq 0xf530
leaq 0x177bb(%rip), %rsi     # 0x362fb
movq %rbx, %rdi
callq 0x10180
leaq 0x273b1(%rip), %rsi     # 0x45f00
movq %rbx, %rdi
xorl %edx, %edx
callq 0x10240
movq %rbx, %rdi
xorl %esi, %esi
movl $0x7, %edx
callq 0x101e0
leaq 0x27311(%rip), %rsi     # 0x45e80
movq %rbx, %rdi
xorl %edx, %edx
callq 0x10240
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
movq %r14, %rdx
callq 0xf530
leaq 0x17778(%rip), %rsi     # 0x36308
movq %rbx, %rdi
callq 0x10180
leaq 0x27401(%rip), %rsi     # 0x45fa0
movq %rbx, %rdi
xorl %edx, %edx
callq 0x10240
movq %rbx, %rdi
xorl %esi, %esi
movl $0x7, %edx
callq 0x101e0
leaq 0x27361(%rip), %rsi     # 0x45f20
movq %rbx, %rdi
xorl %edx, %edx
callq 0x10240
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
movq %r14, %rdx
callq 0xf530
movq %rbx, %rdi
movl %ebp, %esi
callq 0x10640
movsd 0x16415(%rip), %xmm0    # 0x35000
movl $0x88, %esi
movq %rbx, %rdi
callq 0x10530
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x101e0
leaq 0x17955(%rip), %rsi     # 0x36560
movq %rbx, %rdi
xorl %edx, %edx
callq 0x10240
movq %rbx, %rdi
xorl %esi, %esi
movl $0x2, %edx
callq 0x101e0
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xf280
movl %eax, %ebp
leaq 0x264e6(%rip), %r14     # 0x45120
movq (%r13,%r14), %rsi
movq %rbx, %rdi
callq 0xfbd0
movslq 0x8(%r13,%r14), %rsi
movq %rbx, %rdi
callq 0xf910
movq %rbx, %rdi
movl %ebp, %esi
callq 0xfa10
addq $0x10, %r13
cmpq $0x20, %r13
jne 0x1ec3a
xorl %r15d, %r15d
movslq 0x8(%r15,%r14), %rsi
movq %rbx, %rdi
callq 0xf910
movq (%r15,%r14), %rsi
movq %rbx, %rdi
callq 0xfbd0
movq %rbx, %rdi
movl %ebp, %esi
callq 0xfa10
addq $0x10, %r15
cmpq $0x20, %r15
jne 0x1ec6b
leaq 0x1746a(%rip), %rdx     # 0x36109
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0xf530
movq %rbx, %rdi
xorl %esi, %esi
movl $0xd, %edx
callq 0x101e0
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xf280
movl %eax, %ebp
movl $0x8, %r15d
leaq 0x26469(%rip), %r14     # 0x45140
movq -0x8(%r15,%r14), %rsi
movq %rbx, %rdi
callq 0xfbd0
movslq (%r15,%r14), %rsi
movq %rbx, %rdi
callq 0xf910
movq %rbx, %rdi
movl %ebp, %esi
callq 0xfa10
addq $0x10, %r15
cmpq $0xd8, %r15
jne 0x1ecd7
movl $0x8, %r15d
movslq (%r15,%r14), %rsi
movq %rbx, %rdi
callq 0xf910
movq -0x8(%r15,%r14), %rsi
movq %rbx, %rdi
callq 0xfbd0
movq %rbx, %rdi
movl %ebp, %esi
callq 0xfa10
addq $0x10, %r15
cmpq $0xd8, %r15
jne 0x1ed0d
movq %rbx, %rdi
xorl %esi, %esi
movl $0x1, %edx
callq 0x101e0
leaq 0xf2(%rip), %rsi        # 0x1ee45
movq %rbx, %rdi
xorl %edx, %edx
callq 0x109f0
leaq 0x163d9(%rip), %rdx     # 0x3513d
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0xf530
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x10910
leaq 0x1a049(%rip), %rdx     # 0x38dce
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0xf530
movq %rbx, %rdi
xorl %esi, %esi
movl $0x3, %edx
callq 0x101e0
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xf280
movl %eax, %ebp
movl $0x8, %r15d
leaq 0x26453(%rip), %r14     # 0x45210
movq -0x8(%r15,%r14), %rsi
movq %rbx, %rdi
callq 0xfbd0
movslq (%r15,%r14), %rsi
movq %rbx, %rdi
callq 0xf910
movq %rbx, %rdi
movl %ebp, %esi
callq 0xfa10
addq $0x10, %r15
cmpq $0x38, %r15
jne 0x1edbd
movl $0x8, %r15d
movslq (%r15,%r14), %rsi
movq %rbx, %rdi
callq 0xf910
movq -0x8(%r15,%r14), %rsi
movq %rbx, %rdi
callq 0xfbd0
movq %rbx, %rdi
movl %ebp, %esi
callq 0xfa10
addq $0x10, %r15
cmpq $0x38, %r15
jne 0x1edf0
leaq 0x172eb(%rip), %rdx     # 0x3610f
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0xf530
movl $0x1, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq