// File: /workspace/github_c_makefile_star2_O1/stetre[P]moongl/src/main.c
// Function: luaopen_moongl
int luaopen_moongl(lua_State *L)
/* Lua calls this function to load the module */
    {
    moongl_L = L;
    atexit(AtExit);

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

    /* add gl functions: */
    moongl_open_init(L);
    moongl_open_object(L);
    moongl_open_enums(L);
    moongl_open_nongl(L);

    moongl_open_hint(L);
    moongl_open_capabilities(L);
    moongl_open_whole_framebuffer(L);
    moongl_open_buffer(L);
    moongl_open_vertex_array(L);
    moongl_open_getvertex(L);
    moongl_open_texture(L);
    moongl_open_teximage(L);
    moongl_open_shader(L);
    moongl_open_subroutine(L);
    moongl_open_program(L);
    moongl_open_proginterface(L);
    moongl_open_uniform(L);
    moongl_open_getuniform(L);
    moongl_open_pipeline(L);
    moongl_open_framebuffer(L);
    moongl_open_query(L);
    moongl_open_renderbuffer(L);
    moongl_open_sampler(L);
    moongl_open_draw(L);
    moongl_open_transform(L);
    moongl_open_raster(L);
    moongl_open_get(L);
    moongl_open_getstring(L);
    moongl_open_getintformat(L);
    moongl_open_perfragment(L);
    moongl_open_pixel(L);
    moongl_open_debug(L);
    moongl_open_sync(L);

    /* Add functions implemented in Lua */
    lua_pushvalue(L, -1); lua_setglobal(L, "moongl");
    if(luaL_dostring(L, "require('moongl.make')") != 0) lua_error(L);
    if(luaL_dostring(L, "require('moongl.nongl')") != 0) lua_error(L);
    if(luaL_dostring(L, "require('moongl.wrappers')") != 0) lua_error(L);
    lua_pushnil(L);  lua_setglobal(L, "moongl");

    return 1;
    }

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq %rdi, 0x27a61(%rip)     # 0x57960
leaq 0x1f5(%rip), %rdi       # 0x300fb
callq 0x3e1a0
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x11330
movq %rbx, %rdi
callq 0x111a0
movq %rbx, %rdi
callq 0x11a20
movq %rbx, %rdi
callq 0x117e0
movq %rbx, %rdi
callq 0x11870
movq %rbx, %rdi
callq 0x11560
movq %rbx, %rdi
callq 0x110d0
movq %rbx, %rdi
callq 0x114e0
movq %rbx, %rdi
callq 0x118c0
movq %rbx, %rdi
callq 0x117b0
movq %rbx, %rdi
callq 0x11050
movq %rbx, %rdi
callq 0x11030
movq %rbx, %rdi
callq 0x11540
movq %rbx, %rdi
callq 0x11630
movq %rbx, %rdi
callq 0x11770
movq %rbx, %rdi
callq 0x11ad0
movq %rbx, %rdi
callq 0x110f0
movq %rbx, %rdi
callq 0x11350
movq %rbx, %rdi
callq 0x11a00
movq %rbx, %rdi
callq 0x112a0
movq %rbx, %rdi
callq 0x11750
movq %rbx, %rdi
callq 0x11620
movq %rbx, %rdi
callq 0x11b80
movq %rbx, %rdi
callq 0x11470
movq %rbx, %rdi
callq 0x11810
movq %rbx, %rdi
callq 0x11300
movq %rbx, %rdi
callq 0x11910
movq %rbx, %rdi
callq 0x111c0
movq %rbx, %rdi
callq 0x11830
movq %rbx, %rdi
callq 0x11140
movq %rbx, %rdi
callq 0x11110
movq %rbx, %rdi
callq 0x11590
movq %rbx, %rdi
callq 0x11310
movq %rbx, %rdi
callq 0x112c0
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x11730
leaq 0x1a755(%rip), %rsi     # 0x4a788
movq %rbx, %rdi
callq 0x11340
leaq 0x1a74d(%rip), %rsi     # 0x4a78f
movq %rbx, %rdi
callq 0x11670
testl %eax, %eax
jne 0x30069
movq %rbx, %rdi
xorl %esi, %esi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x113b0
testl %eax, %eax
je 0x30071
movq %rbx, %rdi
callq 0x11640
leaq 0x1a72e(%rip), %rsi     # 0x4a7a6
movq %rbx, %rdi
callq 0x11670
testl %eax, %eax
jne 0x3009f
movq %rbx, %rdi
xorl %esi, %esi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x113b0
testl %eax, %eax
je 0x300a7
movq %rbx, %rdi
callq 0x11640
leaq 0x1a710(%rip), %rsi     # 0x4a7be
movq %rbx, %rdi
callq 0x11670
testl %eax, %eax
jne 0x300d5
movq %rbx, %rdi
xorl %esi, %esi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x113b0
testl %eax, %eax
je 0x300dd
movq %rbx, %rdi
callq 0x11640
movq %rbx, %rdi
callq 0x11b40
leaq 0x1a69c(%rip), %rsi     # 0x4a788
movq %rbx, %rdi
callq 0x11340
movl $0x1, %eax
popq %rbx
retq