// File: /workspace/github_c_makefile_star2_O2/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:
pushq %rbx
movq %rdi, %rbx
movq %rdi, 0x1232d(%rip)     # 0x1f788
callq 0x8c40
leaq 0x244(%rip), %rdi       # 0xd6ab
callq 0x15e00
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x8320
leaq 0x90ec(%rip), %rsi      # 0x1656b
movq %rbx, %rdi
callq 0x8db0
leaq 0x90e6(%rip), %rsi      # 0x16574
movq %rbx, %rdi
callq 0x8db0
pushq $-0x3
popq %rsi
movq %rbx, %rdi
callq 0x8870
movq %rbx, %rdi
callq 0x89e0
movq %rbx, %rdi
callq 0x8b20
movq %rbx, %rdi
callq 0x8930
movq %rbx, %rdi
callq 0x8860
movq %rbx, %rdi
callq 0x88f0
movq %rbx, %rdi
callq 0x8c90
movq %rbx, %rdi
callq 0x8470
movq %rbx, %rdi
callq 0x8e80
movq %rbx, %rdi
callq 0x8940
movq %rbx, %rdi
callq 0x8810
movq %rbx, %rdi
callq 0x8490
movq %rbx, %rdi
callq 0x89f0
movq %rbx, %rdi
callq 0x85b0
pushq $-0x1
popq %rsi
movq %rbx, %rdi
callq 0x8650
leaq 0x8f69(%rip), %rsi      # 0x16484
movq %rbx, %rdi
callq 0x86c0
leaq 0x8f65(%rip), %rsi      # 0x1648f
movq %rbx, %rdi
callq 0x8ba0
testl %eax, %eax
jne 0xd54f
pushq $-0x1
popq %rdx
movq %rbx, %rdi
xorl %esi, %esi
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x8e90
testl %eax, %eax
je 0xd557
movq %rbx, %rdi
callq 0x8a30
leaq 0x8f50(%rip), %rsi      # 0x164ae
movq %rbx, %rdi
callq 0x8ba0
testl %eax, %eax
jne 0xd583
pushq $-0x1
popq %rdx
movq %rbx, %rdi
xorl %esi, %esi
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x8e90
testl %eax, %eax
je 0xd58b
movq %rbx, %rdi
callq 0x8a30
leaq 0x8f3b(%rip), %rsi      # 0x164cd
movq %rbx, %rdi
callq 0x8ba0
testl %eax, %eax
jne 0xd5b7
pushq $-0x1
popq %rdx
movq %rbx, %rdi
xorl %esi, %esi
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x8e90
testl %eax, %eax
je 0xd5bf
movq %rbx, %rdi
callq 0x8a30
leaq 0x8f27(%rip), %rsi      # 0x164ed
movq %rbx, %rdi
callq 0x8ba0
testl %eax, %eax
jne 0xd5eb
pushq $-0x1
popq %rdx
movq %rbx, %rdi
xorl %esi, %esi
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x8e90
testl %eax, %eax
je 0xd5f3
movq %rbx, %rdi
callq 0x8a30
leaq 0x8f12(%rip), %rsi      # 0x1650c
movq %rbx, %rdi
callq 0x8ba0
testl %eax, %eax
jne 0xd61f
pushq $-0x1
popq %rdx
movq %rbx, %rdi
xorl %esi, %esi
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x8e90
testl %eax, %eax
je 0xd627
movq %rbx, %rdi
callq 0x8a30
leaq 0x8efe(%rip), %rsi      # 0x1652c
movq %rbx, %rdi
callq 0x8ba0
testl %eax, %eax
jne 0xd653
pushq $-0x1
popq %rdx
movq %rbx, %rdi
xorl %esi, %esi
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x8e90
testl %eax, %eax
je 0xd65b
movq %rbx, %rdi
callq 0x8a30
leaq 0x8eed(%rip), %rsi      # 0x1654f
movq %rbx, %rdi
callq 0x8ba0
testl %eax, %eax
jne 0xd687
pushq $-0x1
popq %rdx
movq %rbx, %rdi
xorl %esi, %esi
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x8e90
testl %eax, %eax
je 0xd68f
movq %rbx, %rdi
callq 0x8a30
movq %rbx, %rdi
callq 0x8b80
leaq 0x8de6(%rip), %rsi      # 0x16484
movq %rbx, %rdi
callq 0x86c0
pushq $0x1
popq %rax
popq %rbx
retq