// File: /workspace/github_cpp_makefile_star2_O1/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 0x7c825(%rip), %rax     # 0xc2fd0
movq %rdi, (%rax)
callq 0x18d90
leaq 0x1d1(%rip), %rdi       # 0x4698b
callq 0x8e9c0
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x187e0
movq %rbx, %rdi
callq 0x192a0
movq %rbx, %rdi
callq 0x19c00
movq %rbx, %rdi
callq 0x199c0
movq %rbx, %rdi
callq 0x18060
movq %rbx, %rdi
callq 0x19f90
movq %rbx, %rdi
callq 0x18090
movq %rbx, %rdi
callq 0x18950
movq %rbx, %rdi
callq 0x19980
movq %rbx, %rdi
callq 0x18820
movq %rbx, %rdi
callq 0x19390
movq %rbx, %rdi
callq 0x1a250
movq %rbx, %rdi
callq 0x1a450
movq %rbx, %rdi
callq 0x1a4b0
movq %rbx, %rdi
callq 0x18960
movq %rbx, %rdi
callq 0x1a2d0
movq %rbx, %rdi
callq 0x18f20
movq %rbx, %rdi
callq 0x19850
movq %rbx, %rdi
callq 0x189b0
movq %rbx, %rdi
callq 0x182c0
movq %rbx, %rdi
callq 0x18a80
movq %rbx, %rdi
callq 0x19400
movq %rbx, %rdi
callq 0x18300
movq %rbx, %rdi
callq 0x1a580
movq %rbx, %rdi
callq 0x18d10
movq %rbx, %rdi
callq 0x195b0
movq %rbx, %rdi
callq 0x19930
movq %rbx, %rdi
callq 0x18410
movq %rbx, %rdi
callq 0x19d10
movq %rbx, %rdi
callq 0x198d0
movq %rbx, %rdi
callq 0x19570
movq %rbx, %rdi
callq 0x1a540
movq %rbx, %rdi
callq 0x18bf0
movq %rbx, %rdi
callq 0x18790
movq %rbx, %rdi
callq 0x19650
movq %rbx, %rdi
callq 0x18460
movq %rbx, %rdi
callq 0x198e0
movq %rbx, %rdi
callq 0x18f80
movq %rbx, %rdi
callq 0x18840
movq %rbx, %rdi
callq 0x189f0
movq %rbx, %rdi
callq 0x19ca0
movq %rbx, %rdi
callq 0x19290
movq %rbx, %rdi
callq 0x19e80
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x18ea0
leaq 0x5bc7b(%rip), %rsi     # 0xa25aa
movq %rbx, %rdi
callq 0x18f90
leaq 0x5bc77(%rip), %rsi     # 0xa25b5
movq %rbx, %rdi
callq 0x19d90
testl %eax, %eax
jne 0x46965
movq %rbx, %rdi
xorl %esi, %esi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x1a4e0
testl %eax, %eax
je 0x4696d
movq %rbx, %rdi
callq 0x199e0
movq %rbx, %rdi
callq 0x19d20
leaq 0x5bc2e(%rip), %rsi     # 0xa25aa
movq %rbx, %rdi
callq 0x18f90
movl $0x1, %eax
popq %rbx
retq