// File: /workspace/github_c_makefile_star2_O3/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, 0x279b9(%rip)     # 0x57960
leaq 0x1f5(%rip), %rdi       # 0x301a3
callq 0x3e2f0
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x11320
movq %rbx, %rdi
callq 0x11190
movq %rbx, %rdi
callq 0x11a20
movq %rbx, %rdi
callq 0x117d0
movq %rbx, %rdi
callq 0x11860
movq %rbx, %rdi
callq 0x11550
movq %rbx, %rdi
callq 0x110d0
movq %rbx, %rdi
callq 0x114d0
movq %rbx, %rdi
callq 0x118b0
movq %rbx, %rdi
callq 0x117a0
movq %rbx, %rdi
callq 0x11050
movq %rbx, %rdi
callq 0x11030
movq %rbx, %rdi
callq 0x11530
movq %rbx, %rdi
callq 0x11620
movq %rbx, %rdi
callq 0x11760
movq %rbx, %rdi
callq 0x11ad0
movq %rbx, %rdi
callq 0x110e0
movq %rbx, %rdi
callq 0x11340
movq %rbx, %rdi
callq 0x11a00
movq %rbx, %rdi
callq 0x11290
movq %rbx, %rdi
callq 0x11740
movq %rbx, %rdi
callq 0x11610
movq %rbx, %rdi
callq 0x11b80
movq %rbx, %rdi
callq 0x11460
movq %rbx, %rdi
callq 0x11800
movq %rbx, %rdi
callq 0x112f0
movq %rbx, %rdi
callq 0x11900
movq %rbx, %rdi
callq 0x111b0
movq %rbx, %rdi
callq 0x11820
movq %rbx, %rdi
callq 0x11130
movq %rbx, %rdi
callq 0x11100
movq %rbx, %rdi
callq 0x11580
movq %rbx, %rdi
callq 0x11300
movq %rbx, %rdi
callq 0x112b0
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x11720
leaq 0x1a6ad(%rip), %rsi     # 0x4a788
movq %rbx, %rdi
callq 0x11330
leaq 0x1a6a5(%rip), %rsi     # 0x4a78f
movq %rbx, %rdi
callq 0x11660
testl %eax, %eax
jne 0x30111
movq %rbx, %rdi
xorl %esi, %esi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x113a0
testl %eax, %eax
je 0x30119
movq %rbx, %rdi
callq 0x11630
leaq 0x1a686(%rip), %rsi     # 0x4a7a6
movq %rbx, %rdi
callq 0x11660
testl %eax, %eax
jne 0x30147
movq %rbx, %rdi
xorl %esi, %esi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x113a0
testl %eax, %eax
je 0x3014f
movq %rbx, %rdi
callq 0x11630
leaq 0x1a668(%rip), %rsi     # 0x4a7be
movq %rbx, %rdi
callq 0x11660
testl %eax, %eax
jne 0x3017d
movq %rbx, %rdi
xorl %esi, %esi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x113a0
testl %eax, %eax
je 0x30185
movq %rbx, %rdi
callq 0x11630
movq %rbx, %rdi
callq 0x11b40
leaq 0x1a5f4(%rip), %rsi     # 0x4a788
movq %rbx, %rdi
callq 0x11330
movl $0x1, %eax
popq %rbx
retq