// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x2f3bb(%rip)     # 0x68970
leaq 0x2b4(%rip), %rdi       # 0x39870
callq 0x51ba0
movq 0x10(%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x11330
movq 0x10(%rsp), %rdi
callq 0x111a0
movq 0x10(%rsp), %rdi
callq 0x11a20
movq 0x10(%rsp), %rdi
callq 0x117e0
movq 0x10(%rsp), %rdi
callq 0x11870
movq 0x10(%rsp), %rdi
callq 0x11560
movq 0x10(%rsp), %rdi
callq 0x110d0
movq 0x10(%rsp), %rdi
callq 0x114e0
movq 0x10(%rsp), %rdi
callq 0x118c0
movq 0x10(%rsp), %rdi
callq 0x117b0
movq 0x10(%rsp), %rdi
callq 0x11050
movq 0x10(%rsp), %rdi
callq 0x11030
movq 0x10(%rsp), %rdi
callq 0x11540
movq 0x10(%rsp), %rdi
callq 0x11630
movq 0x10(%rsp), %rdi
callq 0x11770
movq 0x10(%rsp), %rdi
callq 0x11ad0
movq 0x10(%rsp), %rdi
callq 0x110f0
movq 0x10(%rsp), %rdi
callq 0x11350
movq 0x10(%rsp), %rdi
callq 0x11a00
movq 0x10(%rsp), %rdi
callq 0x112a0
movq 0x10(%rsp), %rdi
callq 0x11750
movq 0x10(%rsp), %rdi
callq 0x11620
movq 0x10(%rsp), %rdi
callq 0x11b80
movq 0x10(%rsp), %rdi
callq 0x11470
movq 0x10(%rsp), %rdi
callq 0x11810
movq 0x10(%rsp), %rdi
callq 0x11300
movq 0x10(%rsp), %rdi
callq 0x11910
movq 0x10(%rsp), %rdi
callq 0x111c0
movq 0x10(%rsp), %rdi
callq 0x11830
movq 0x10(%rsp), %rdi
callq 0x11140
movq 0x10(%rsp), %rdi
callq 0x11110
movq 0x10(%rsp), %rdi
callq 0x11590
movq 0x10(%rsp), %rdi
callq 0x11310
movq 0x10(%rsp), %rdi
callq 0x112c0
movq 0x10(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x11730
movq 0x10(%rsp), %rdi
leaq 0x236dc(%rip), %rsi     # 0x5ce10
callq 0x11340
movq 0x10(%rsp), %rdi
leaq 0x236d2(%rip), %rsi     # 0x5ce17
callq 0x11670
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, 0xf(%rsp)
jne 0x3977c
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 0x113b0
cmpl $0x0, %eax
setne %al
movb %al, 0xf(%rsp)
movb 0xf(%rsp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
je 0x39794
movq 0x10(%rsp), %rdi
callq 0x11640
movq 0x10(%rsp), %rdi
leaq 0x2368e(%rip), %rsi     # 0x5ce2e
callq 0x11670
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, 0xe(%rsp)
jne 0x397d7
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 0x113b0
cmpl $0x0, %eax
setne %al
movb %al, 0xe(%rsp)
movb 0xe(%rsp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
je 0x397ef
movq 0x10(%rsp), %rdi
callq 0x11640
movq 0x10(%rsp), %rdi
leaq 0x2364b(%rip), %rsi     # 0x5ce46
callq 0x11670
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, 0xd(%rsp)
jne 0x39832
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 0x113b0
cmpl $0x0, %eax
setne %al
movb %al, 0xd(%rsp)
movb 0xd(%rsp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
je 0x3984a
movq 0x10(%rsp), %rdi
callq 0x11640
movq 0x10(%rsp), %rdi
callq 0x11b40
movq 0x10(%rsp), %rdi
leaq 0x235b0(%rip), %rsi     # 0x5ce10
callq 0x11340
movl $0x1, %eax
addq $0x18, %rsp
retq
nop