// File: /workspace/github_c_makefile_star2_O3/wahern[P]cqueues/src/socket.c
// Function: luaopen__cqueues_socket
lso_nargs_t luaopen__cqueues_socket(lua_State *L) {
	static const struct cqs_macro macros[] = {
		{ "AF_UNSPEC",      AF_UNSPEC },
		{ "AF_INET",        AF_INET },
		{ "AF_INET6",       AF_INET6 },
		{ "AF_UNIX",        AF_UNIX },
		{ "SOCK_STREAM",    SOCK_STREAM },
		{ "SOCK_SEQPACKET", SOCK_SEQPACKET },
		{ "SOCK_DGRAM",     SOCK_DGRAM },
	};

	cqs_pushnils(L, LSO_UPVALUES); /* initial upvalues */
	cqs_newmetatable(L, LSO_CLASS, lso_methods, lso_metamethods, LSO_UPVALUES);
	lua_pushvalue(L, -1); /* push self as replacement upvalue */
	cqs_setmetaupvalue(L, -2, LSO_INDEX); /* insert self as upvalue */

	luaL_newlibtable(L, lso_globals);
	cqs_pushnils(L, LSO_UPVALUES); /* initial upvalues */
	luaL_setfuncs(L, lso_globals, LSO_UPVALUES);
	lua_pushvalue(L, -2); /* push metatable */
	cqs_setfuncsupvalue(L, -2, LSO_INDEX);

	cqs_setmacros(L, -1, macros, countof(macros), 0);

	return 1;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0x1f0a1(%rip), %rdx     # 0x3515f
movl $0x1, %esi
callq 0xfca0
movq %rbx, %rdi
callq 0xf980
leaq 0x1efc8(%rip), %rsi     # 0x3509f
movq %rbx, %rdi
callq 0x10180
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0xf9c0
leaq 0x31f0d(%rip), %rsi     # 0x48000
movq %rbx, %rdi
movl $0x1, %edx
callq 0x10240
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
leaq 0x31c8c(%rip), %rax     # 0x47d98
incl %edx
cmpq $0x0, (%rax)
leaq 0x10(%rax), %rax
jne 0x1610c
movq %rbx, %rdi
xorl %esi, %esi
callq 0x101e0
movq %rbx, %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0xf9c0
leaq 0x31c5a(%rip), %rsi     # 0x47d90
movq %rbx, %rdi
movl $0x1, %edx
callq 0x10240
leaq 0x1efdd(%rip), %r14     # 0x35127
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
movq %r14, %rdx
callq 0xf530
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0xf0e0
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x10640
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xf9c0
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0xf280
movl %eax, %ebp
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xf9c0
movq %rbx, %rdi
movl %ebp, %esi
callq 0x1629f
movq %rbx, %rdi
movl %ebp, %esi
movq %r14, %rdx
callq 0xf1e0
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0xf9c0
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x1629f
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x10640
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x10640
movq %rbx, %rdi
xorl %esi, %esi
movl $0xe, %edx
callq 0x101e0
leaq 0x1ef5c(%rip), %rdx     # 0x3515f
movq %rbx, %rdi
movl $0x1, %esi
callq 0xfca0
movq %rbx, %rdi
callq 0xf980
leaq 0x31e01(%rip), %rsi     # 0x48020
movq %rbx, %rdi
movl $0x1, %edx
callq 0x10240
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0xf9c0
movq %rbx, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x1629f
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xf280
movl %eax, %ebp
movl $0x8, %r14d
leaq 0x2df7e(%rip), %r15     # 0x441e0
movq -0x8(%r14,%r15), %rsi
movq %rbx, %rdi
callq 0xfbd0
movslq (%r14,%r15), %rsi
movq %rbx, %rdi
callq 0xf910
movq %rbx, %rdi
movl %ebp, %esi
callq 0xfa10
addq $0x10, %r14
cmpq $0x78, %r14
jne 0x16262
movl $0x1, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq