// File: /workspace/github_c_makefile_star2_O0/stetre[P]moonglmath/src/main.c
// Function: luaopen_moonglmath
int luaopen_moonglmath(lua_State *L)
/* Lua calls this function to load the module */
    {
    moonglmath_L = L;
    moonglmath_utils_init(L);
    atexit(AtExit);

    lua_newtable(L); /* the gl table */
    AddVersions(L);

    /* add glmath functions: */
    moonglmath_open_enums(L);
    moonglmath_open_datahandling(L);
    moonglmath_open_tracing(L);
    moonglmath_open_vec(L);
    moonglmath_open_box(L);
    moonglmath_open_rect(L);
    moonglmath_open_mat(L);
    moonglmath_open_quat(L);
    moonglmath_open_complex(L);
    moonglmath_open_funcs(L);
    moonglmath_open_transform(L);
    moonglmath_open_viewing(L);
    moonglmath_open_hostmem(L);

    /* Add functions implemented in Lua */
    lua_pushvalue(L, -1); lua_setglobal(L, "moonglmath");
    if(luaL_dostring(L, "require('moonglmath.vecsugar')") != 0) lua_error(L);
    if(luaL_dostring(L, "require('moonglmath.boxsugar')") != 0) lua_error(L);
    if(luaL_dostring(L, "require('moonglmath.rectsugar')") != 0) lua_error(L);
    if(luaL_dostring(L, "require('moonglmath.matsugar')") != 0) lua_error(L);
    if(luaL_dostring(L, "require('moonglmath.quatsugar')") != 0) lua_error(L);
    if(luaL_dostring(L, "require('moonglmath.complexsugar')") != 0) lua_error(L);
    if(luaL_dostring(L, "require('moonglmath.utils')") != 0) lua_error(L);
    lua_pushnil(L);  lua_setglobal(L, "moonglmath");

    return 1;
    }

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x18dbb(%rip)     # 0x2a7a0
movq 0x10(%rsp), %rdi
callq 0x8c70
leaq 0x36a(%rip), %rdi       # 0x11d60
callq 0x22270
movq 0x10(%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x8320
movq 0x10(%rsp), %rdi
callq 0x11d90
movq 0x10(%rsp), %rdi
callq 0x8a10
movq 0x10(%rsp), %rdi
callq 0x8b50
movq 0x10(%rsp), %rdi
callq 0x8940
movq 0x10(%rsp), %rdi
callq 0x8860
movq 0x10(%rsp), %rdi
callq 0x8900
movq 0x10(%rsp), %rdi
callq 0x8cc0
movq 0x10(%rsp), %rdi
callq 0x8470
movq 0x10(%rsp), %rdi
callq 0x8eb0
movq 0x10(%rsp), %rdi
callq 0x8950
movq 0x10(%rsp), %rdi
callq 0x8810
movq 0x10(%rsp), %rdi
callq 0x8490
movq 0x10(%rsp), %rdi
callq 0x8a20
movq 0x10(%rsp), %rdi
callq 0x85b0
movq 0x10(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x8650
movq 0x10(%rsp), %rdi
leaq 0x11994(%rip), %rsi     # 0x23444
callq 0x86c0
movq 0x10(%rsp), %rdi
leaq 0x1198e(%rip), %rsi     # 0x2344f
callq 0x8bd0
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, 0xf(%rsp)
jne 0x11af8
movq 0x10(%rsp), %rdi
xorl %ecx, %ecx
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
xorl %eax, %eax
movl %eax, %r9d
movl %ecx, %esi
movq %r9, %r8
callq 0x8ec0
cmpl $0x0, %eax
setne %al
movb %al, 0xf(%rsp)
movb 0xf(%rsp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
je 0x11b10
movq 0x10(%rsp), %rdi
callq 0x8a60
movq 0x10(%rsp), %rdi
leaq 0x11952(%rip), %rsi     # 0x2346e
callq 0x8bd0
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, 0xe(%rsp)
jne 0x11b53
movq 0x10(%rsp), %rdi
xorl %ecx, %ecx
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
xorl %eax, %eax
movl %eax, %r9d
movl %ecx, %esi
movq %r9, %r8
callq 0x8ec0
cmpl $0x0, %eax
setne %al
movb %al, 0xe(%rsp)
movb 0xe(%rsp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
je 0x11b6b
movq 0x10(%rsp), %rdi
callq 0x8a60
movq 0x10(%rsp), %rdi
leaq 0x11916(%rip), %rsi     # 0x2348d
callq 0x8bd0
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, 0xd(%rsp)
jne 0x11bae
movq 0x10(%rsp), %rdi
xorl %ecx, %ecx
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
xorl %eax, %eax
movl %eax, %r9d
movl %ecx, %esi
movq %r9, %r8
callq 0x8ec0
cmpl $0x0, %eax
setne %al
movb %al, 0xd(%rsp)
movb 0xd(%rsp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
je 0x11bc6
movq 0x10(%rsp), %rdi
callq 0x8a60
movq 0x10(%rsp), %rdi
leaq 0x118db(%rip), %rsi     # 0x234ad
callq 0x8bd0
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, 0xc(%rsp)
jne 0x11c09
movq 0x10(%rsp), %rdi
xorl %ecx, %ecx
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
xorl %eax, %eax
movl %eax, %r9d
movl %ecx, %esi
movq %r9, %r8
callq 0x8ec0
cmpl $0x0, %eax
setne %al
movb %al, 0xc(%rsp)
movb 0xc(%rsp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
je 0x11c21
movq 0x10(%rsp), %rdi
callq 0x8a60
movq 0x10(%rsp), %rdi
leaq 0x1189f(%rip), %rsi     # 0x234cc
callq 0x8bd0
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, 0xb(%rsp)
jne 0x11c64
movq 0x10(%rsp), %rdi
xorl %ecx, %ecx
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
xorl %eax, %eax
movl %eax, %r9d
movl %ecx, %esi
movq %r9, %r8
callq 0x8ec0
cmpl $0x0, %eax
setne %al
movb %al, 0xb(%rsp)
movb 0xb(%rsp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
je 0x11c7c
movq 0x10(%rsp), %rdi
callq 0x8a60
movq 0x10(%rsp), %rdi
leaq 0x11864(%rip), %rsi     # 0x234ec
callq 0x8bd0
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, 0xa(%rsp)
jne 0x11cbf
movq 0x10(%rsp), %rdi
xorl %ecx, %ecx
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
xorl %eax, %eax
movl %eax, %r9d
movl %ecx, %esi
movq %r9, %r8
callq 0x8ec0
cmpl $0x0, %eax
setne %al
movb %al, 0xa(%rsp)
movb 0xa(%rsp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
je 0x11cd7
movq 0x10(%rsp), %rdi
callq 0x8a60
movq 0x10(%rsp), %rdi
leaq 0x1182c(%rip), %rsi     # 0x2350f
callq 0x8bd0
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, 0x9(%rsp)
jne 0x11d1a
movq 0x10(%rsp), %rdi
xorl %ecx, %ecx
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
xorl %eax, %eax
movl %eax, %r9d
movl %ecx, %esi
movq %r9, %r8
callq 0x8ec0
cmpl $0x0, %eax
setne %al
movb %al, 0x9(%rsp)
movb 0x9(%rsp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
je 0x11d32
movq 0x10(%rsp), %rdi
callq 0x8a60
movq 0x10(%rsp), %rdi
callq 0x8bb0
movq 0x10(%rsp), %rdi
leaq 0x116fc(%rip), %rsi     # 0x23444
callq 0x86c0
movl $0x1, %eax
addq $0x18, %rsp
retq
nopw (%rax,%rax)