// File: /workspace/github_cpp_makefile_star2_O3/stetre[P]moonvulkan/src/main.c
// Function: luaopen_moonvulkan
int luaopen_moonvulkan(lua_State *L)
/* Lua calls this function to load the module */
    {
    moonvulkan_L = L;

    moonvulkan_utils_init(L);
    atexit(AtExit);

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

    /* add vk functions: */
    moonvulkan_open_getproc(L);
    moonvulkan_open_versions(L);
    moonvulkan_open_tracing(L);
    moonvulkan_open_datahandling(L);
    moonvulkan_open_enums(L);
    moonvulkan_open_flags(L);
    moonvulkan_open_instance(L);
    moonvulkan_open_physical_device(L);
    moonvulkan_open_layers(L);
    moonvulkan_open_device(L);
    moonvulkan_open_queue(L);
    moonvulkan_open_command_pool(L);
    moonvulkan_open_command_buffer(L);
    moonvulkan_open_semaphore(L);
    moonvulkan_open_fence(L);
    moonvulkan_open_buffer(L);
    moonvulkan_open_device_memory(L);
    moonvulkan_open_image(L);
    moonvulkan_open_event(L);
    moonvulkan_open_buffer_view(L);
    moonvulkan_open_image_view(L);
    moonvulkan_open_shader_module(L);
    moonvulkan_open_sampler(L);
    moonvulkan_open_render_pass(L);
    moonvulkan_open_framebuffer(L);
    moonvulkan_open_descriptor_set_layout(L);
    moonvulkan_open_descriptor_pool(L);
    moonvulkan_open_pipeline_layout(L);
    moonvulkan_open_pipeline_cache(L);
    moonvulkan_open_query_pool(L);
    moonvulkan_open_descriptor_set(L);
    moonvulkan_open_pipeline(L);
    moonvulkan_open_cmd(L);
    moonvulkan_open_surface(L);
    moonvulkan_open_swapchain(L);
    moonvulkan_open_debug_report_callback(L);
    moonvulkan_open_display(L);
    moonvulkan_open_display_mode(L);
    moonvulkan_open_descriptor_update_template(L);
    moonvulkan_open_validation_cache(L);
    moonvulkan_open_sampler_ycbcr_conversion(L);
    moonvulkan_open_debug_utils_messenger(L);

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

    return 1;
    }

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x79ad9(%rip), %rax     # 0xbffd0
movq %rdi, (%rax)
callq 0x18d80
leaq 0x1d1(%rip), %rdi       # 0x466d7
callq 0x8b200
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x187d0
movq %rbx, %rdi
callq 0x19290
movq %rbx, %rdi
callq 0x19bc0
movq %rbx, %rdi
callq 0x19980
movq %rbx, %rdi
callq 0x18060
movq %rbx, %rdi
callq 0x19f50
movq %rbx, %rdi
callq 0x18090
movq %rbx, %rdi
callq 0x18940
movq %rbx, %rdi
callq 0x19940
movq %rbx, %rdi
callq 0x18810
movq %rbx, %rdi
callq 0x19370
movq %rbx, %rdi
callq 0x1a210
movq %rbx, %rdi
callq 0x1a410
movq %rbx, %rdi
callq 0x1a470
movq %rbx, %rdi
callq 0x18950
movq %rbx, %rdi
callq 0x1a290
movq %rbx, %rdi
callq 0x18f10
movq %rbx, %rdi
callq 0x19820
movq %rbx, %rdi
callq 0x189a0
movq %rbx, %rdi
callq 0x182b0
movq %rbx, %rdi
callq 0x18a70
movq %rbx, %rdi
callq 0x193e0
movq %rbx, %rdi
callq 0x182f0
movq %rbx, %rdi
callq 0x1a540
movq %rbx, %rdi
callq 0x18d00
movq %rbx, %rdi
callq 0x19580
movq %rbx, %rdi
callq 0x198f0
movq %rbx, %rdi
callq 0x18400
movq %rbx, %rdi
callq 0x19cd0
movq %rbx, %rdi
callq 0x19890
movq %rbx, %rdi
callq 0x19540
movq %rbx, %rdi
callq 0x1a500
movq %rbx, %rdi
callq 0x18be0
movq %rbx, %rdi
callq 0x18780
movq %rbx, %rdi
callq 0x19620
movq %rbx, %rdi
callq 0x18450
movq %rbx, %rdi
callq 0x198a0
movq %rbx, %rdi
callq 0x18f70
movq %rbx, %rdi
callq 0x18830
movq %rbx, %rdi
callq 0x189e0
movq %rbx, %rdi
callq 0x19c60
movq %rbx, %rdi
callq 0x19280
movq %rbx, %rdi
callq 0x19e40
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x18e90
leaq 0x58f52(%rip), %rsi     # 0x9f5cd
movq %rbx, %rdi
callq 0x18f80
leaq 0x58f4e(%rip), %rsi     # 0x9f5d8
movq %rbx, %rdi
callq 0x19d50
testl %eax, %eax
jne 0x466b1
movq %rbx, %rdi
xorl %esi, %esi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x1a4a0
testl %eax, %eax
je 0x466b9
movq %rbx, %rdi
callq 0x199a0
movq %rbx, %rdi
callq 0x19ce0
leaq 0x58f05(%rip), %rsi     # 0x9f5cd
movq %rbx, %rdi
callq 0x18f80
movl $0x1, %eax
popq %rbx
retq