// File: /workspace/github_cpp_makefile_star2_O3/stetre[P]moonvulkan/src/getproc.c
// Function: moonvulkan_getproc_instance
instance_dt_t * getproc_instance(lua_State *L, VkInstance instance, VkInstanceCreateInfo *createinfo)
    {
    instance_dt_t *dt = (instance_dt_t*)Malloc(L, sizeof(instance_dt_t));
    (void)createinfo;

    /* Core 1.0 functions ---------------------------- */
#define GET(fn) do {                                                \
    dt->fn = (PFN_vk##fn)GetInstanceProcAddr(instance, "vk"#fn);    \
    if(!dt->fn) { luaL_error(L, "cannot find vk"#fn); return dt; }\
} while(0)
    GET(DestroyInstance);
    GET(EnumeratePhysicalDevices);
    GET(EnumerateDeviceLayerProperties);
    GET(EnumerateDeviceExtensionProperties);
    GET(GetPhysicalDeviceFeatures);
    GET(GetPhysicalDeviceFormatProperties);
    GET(GetPhysicalDeviceImageFormatProperties);
    GET(GetPhysicalDeviceProperties);
    GET(GetPhysicalDeviceQueueFamilyProperties);
    GET(GetPhysicalDeviceMemoryProperties);
    GET(CreateDevice);
    GET(GetPhysicalDeviceSparseImageFormatProperties);
#undef GET

    /* Extensions and core > 1.0 ----------------------- */
#define GET(fn) do { \
    dt->fn = (PFN_vk##fn)GetInstanceProcAddr(instance, "vk"#fn); \
    /* printf(""#fn" %p\n", (void*)(dt->fn)); */                 \
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rsi, %r14
movq %rdi, %r15
movl $0x210, %esi            # imm = 0x210
callq 0x19200
movq %rax, %rbx
leaq 0x5a4be(%rip), %rsi     # 0x9bf41
movq %r14, %rdi
callq *0x7f8c4(%rip)          # 0xc1350
movq %rax, (%rbx)
testq %rax, %rax
je 0x4230f
leaq 0x5a4c0(%rip), %rsi     # 0x9bf5f
movq %r14, %rdi
callq *0x7f8a8(%rip)          # 0xc1350
movq %rax, 0x8(%rbx)
testq %rax, %rax
je 0x42318
leaq 0x5a4ca(%rip), %rsi     # 0x9bf86
movq %r14, %rdi
callq *0x7f88b(%rip)          # 0xc1350
movq %rax, 0x10(%rbx)
testq %rax, %rax
je 0x42321
leaq 0x5a4da(%rip), %rsi     # 0x9bfb3
movq %r14, %rdi
callq *0x7f86e(%rip)          # 0xc1350
movq %rax, 0x18(%rbx)
testq %rax, %rax
je 0x4232a
leaq 0x5a4ee(%rip), %rsi     # 0x9bfe4
movq %r14, %rdi
callq *0x7f851(%rip)          # 0xc1350
movq %rax, 0x20(%rbx)
testq %rax, %rax
je 0x42333
leaq 0x5a4f9(%rip), %rsi     # 0x9c00c
movq %r14, %rdi
callq *0x7f834(%rip)          # 0xc1350
movq %rax, 0x28(%rbx)
testq %rax, %rax
je 0x4233c
leaq 0x5a50c(%rip), %rsi     # 0x9c03c
movq %r14, %rdi
callq *0x7f817(%rip)          # 0xc1350
movq %rax, 0x30(%rbx)
testq %rax, %rax
je 0x42345
leaq 0x5a524(%rip), %rsi     # 0x9c071
movq %r14, %rdi
callq *0x7f7fa(%rip)          # 0xc1350
movq %rax, 0x38(%rbx)
testq %rax, %rax
je 0x4234e
leaq 0x5a531(%rip), %rsi     # 0x9c09b
movq %r14, %rdi
callq *0x7f7dd(%rip)          # 0xc1350
movq %rax, 0x40(%rbx)
testq %rax, %rax
je 0x42357
leaq 0x5a549(%rip), %rsi     # 0x9c0d0
movq %r14, %rdi
callq *0x7f7c0(%rip)          # 0xc1350
movq %rax, 0x48(%rbx)
testq %rax, %rax
je 0x42360
leaq 0x5a55c(%rip), %rsi     # 0x9c100
movq %r14, %rdi
callq *0x7f7a3(%rip)          # 0xc1350
movq %rax, 0x50(%rbx)
testq %rax, %rax
je 0x42369
leaq 0x5a55a(%rip), %rsi     # 0x9c11b
movq %r14, %rdi
callq *0x7f786(%rip)          # 0xc1350
movq %rax, 0x58(%rbx)
testq %rax, %rax
je 0x42372
leaq 0x5a56c(%rip), %rsi     # 0x9c14a
movq %r14, %rdi
callq *0x7f769(%rip)          # 0xc1350
movq %rax, 0x98(%rbx)
leaq 0x5a57d(%rip), %rsi     # 0x9c172
movq %r14, %rdi
callq *0x7f752(%rip)          # 0xc1350
movq %rax, 0xa0(%rbx)
leaq 0x5a593(%rip), %rsi     # 0x9c19f
movq %r14, %rdi
callq *0x7f73b(%rip)          # 0xc1350
movq %rax, 0xa8(%rbx)
leaq 0x5a5a2(%rip), %rsi     # 0x9c1c5
movq %r14, %rdi
callq *0x7f724(%rip)          # 0xc1350
movq %rax, 0xb0(%rbx)
leaq 0x5a5a9(%rip), %rsi     # 0x9c1e3
movq %r14, %rdi
callq *0x7f70d(%rip)          # 0xc1350
movq %rax, 0xb8(%rbx)
leaq 0x5a5a9(%rip), %rsi     # 0x9c1fa
movq %r14, %rdi
callq *0x7f6f6(%rip)          # 0xc1350
movq %rax, 0xc0(%rbx)
leaq 0x5a5b3(%rip), %rsi     # 0x9c21b
movq %r14, %rdi
callq *0x7f6df(%rip)          # 0xc1350
movq %rax, 0xc8(%rbx)
leaq 0x5a5bb(%rip), %rsi     # 0x9c23a
movq %r14, %rdi
callq *0x7f6c8(%rip)          # 0xc1350
movq %rax, 0x130(%rbx)
testq %rax, %rax
jne 0x41cc7
leaq 0x5a5ca(%rip), %rsi     # 0x9c265
movq %r14, %rdi
callq *0x7f6ac(%rip)          # 0xc1350
movq %rax, 0x130(%rbx)
testq %rax, %rax
jne 0x41cc7
leaq 0x5a5dc(%rip), %rsi     # 0x9c293
movq %r14, %rdi
callq *0x7f690(%rip)          # 0xc1350
movq %rax, 0x130(%rbx)
leaq 0x5a5f3(%rip), %rsi     # 0x9c2c1
movq %r14, %rdi
callq *0x7f679(%rip)          # 0xc1350
movq %rax, 0x120(%rbx)
testq %rax, %rax
jne 0x41d16
leaq 0x5a603(%rip), %rsi     # 0x9c2ed
movq %r14, %rdi
callq *0x7f65d(%rip)          # 0xc1350
movq %rax, 0x120(%rbx)
testq %rax, %rax
jne 0x41d16
leaq 0x5a616(%rip), %rsi     # 0x9c31c
movq %r14, %rdi
callq *0x7f641(%rip)          # 0xc1350
movq %rax, 0x120(%rbx)
leaq 0x5a62e(%rip), %rsi     # 0x9c34b
movq %r14, %rdi
callq *0x7f62a(%rip)          # 0xc1350
movq %rax, 0x128(%rbx)
testq %rax, %rax
jne 0x41d65
leaq 0x5a641(%rip), %rsi     # 0x9c37a
movq %r14, %rdi
callq *0x7f60e(%rip)          # 0xc1350
movq %rax, 0x128(%rbx)
testq %rax, %rax
jne 0x41d65
leaq 0x5a657(%rip), %rsi     # 0x9c3ac
movq %r14, %rdi
callq *0x7f5f2(%rip)          # 0xc1350
movq %rax, 0x128(%rbx)
leaq 0x5a672(%rip), %rsi     # 0x9c3de
movq %r14, %rdi
callq *0x7f5db(%rip)          # 0xc1350
movq %rax, 0xe8(%rbx)
testq %rax, %rax
jne 0x41db4
leaq 0x5a673(%rip), %rsi     # 0x9c3fb
movq %r14, %rdi
callq *0x7f5bf(%rip)          # 0xc1350
movq %rax, 0xe8(%rbx)
testq %rax, %rax
jne 0x41db4
leaq 0x5a677(%rip), %rsi     # 0x9c41b
movq %r14, %rdi
callq *0x7f5a3(%rip)          # 0xc1350
movq %rax, 0xe8(%rbx)
leaq 0x5a680(%rip), %rsi     # 0x9c43b
movq %r14, %rdi
callq *0x7f58c(%rip)          # 0xc1350
movq %rax, 0xf0(%rbx)
testq %rax, %rax
jne 0x41e03
leaq 0x5a683(%rip), %rsi     # 0x9c45a
movq %r14, %rdi
callq *0x7f570(%rip)          # 0xc1350
movq %rax, 0xf0(%rbx)
testq %rax, %rax
jne 0x41e03
leaq 0x5a689(%rip), %rsi     # 0x9c47c
movq %r14, %rdi
callq *0x7f554(%rip)          # 0xc1350
movq %rax, 0xf0(%rbx)
leaq 0x5a694(%rip), %rsi     # 0x9c49e
movq %r14, %rdi
callq *0x7f53d(%rip)          # 0xc1350
movq %rax, 0xf8(%rbx)
testq %rax, %rax
jne 0x41e52
leaq 0x5a69d(%rip), %rsi     # 0x9c4c3
movq %r14, %rdi
callq *0x7f521(%rip)          # 0xc1350
movq %rax, 0xf8(%rbx)
testq %rax, %rax
jne 0x41e52
leaq 0x5a6a9(%rip), %rsi     # 0x9c4eb
movq %r14, %rdi
callq *0x7f505(%rip)          # 0xc1350
movq %rax, 0xf8(%rbx)
leaq 0x5a6ba(%rip), %rsi     # 0x9c513
movq %r14, %rdi
callq *0x7f4ee(%rip)          # 0xc1350
movq %rax, 0x100(%rbx)
testq %rax, %rax
jne 0x41ea1
leaq 0x5a6c8(%rip), %rsi     # 0x9c53d
movq %r14, %rdi
callq *0x7f4d2(%rip)          # 0xc1350
movq %rax, 0x100(%rbx)
testq %rax, %rax
jne 0x41ea1
leaq 0x5a6d9(%rip), %rsi     # 0x9c56a
movq %r14, %rdi
callq *0x7f4b6(%rip)          # 0xc1350
movq %rax, 0x100(%rbx)
leaq 0x5a6ef(%rip), %rsi     # 0x9c597
movq %r14, %rdi
callq *0x7f49f(%rip)          # 0xc1350
movq %rax, 0x108(%rbx)
testq %rax, %rax
jne 0x41ef0
leaq 0x5a6fd(%rip), %rsi     # 0x9c5c1
movq %r14, %rdi
callq *0x7f483(%rip)          # 0xc1350
movq %rax, 0x108(%rbx)
testq %rax, %rax
jne 0x41ef0
leaq 0x5a70e(%rip), %rsi     # 0x9c5ee
movq %r14, %rdi
callq *0x7f467(%rip)          # 0xc1350
movq %rax, 0x108(%rbx)
leaq 0x5a724(%rip), %rsi     # 0x9c61b
movq %r14, %rdi
callq *0x7f450(%rip)          # 0xc1350
movq %rax, 0x110(%rbx)
testq %rax, %rax
jne 0x41f3f
leaq 0x5a72d(%rip), %rsi     # 0x9c640
movq %r14, %rdi
callq *0x7f434(%rip)          # 0xc1350
movq %rax, 0x110(%rbx)
testq %rax, %rax
jne 0x41f3f
leaq 0x5a739(%rip), %rsi     # 0x9c668
movq %r14, %rdi
callq *0x7f418(%rip)          # 0xc1350
movq %rax, 0x110(%rbx)
leaq 0x5a74a(%rip), %rsi     # 0x9c690
movq %r14, %rdi
callq *0x7f401(%rip)          # 0xc1350
movq %rax, 0x118(%rbx)
testq %rax, %rax
jne 0x41f8e
leaq 0x5a75e(%rip), %rsi     # 0x9c6c0
movq %r14, %rdi
callq *0x7f3e5(%rip)          # 0xc1350
movq %rax, 0x118(%rbx)
testq %rax, %rax
jne 0x41f8e
leaq 0x5a775(%rip), %rsi     # 0x9c6f3
movq %r14, %rdi
callq *0x7f3c9(%rip)          # 0xc1350
movq %rax, 0x118(%rbx)
leaq 0x5a791(%rip), %rsi     # 0x9c726
movq %r14, %rdi
callq *0x7f3b2(%rip)          # 0xc1350
movq %rax, 0x78(%rbx)
leaq 0x5a7a8(%rip), %rsi     # 0x9c751
movq %r14, %rdi
callq *0x7f39e(%rip)          # 0xc1350
movq %rax, 0x88(%rbx)
leaq 0x5a7b7(%rip), %rsi     # 0x9c777
movq %r14, %rdi
callq *0x7f387(%rip)          # 0xc1350
movq %rax, 0x60(%rbx)
leaq 0x5a7b7(%rip), %rsi     # 0x9c78b
movq %r14, %rdi
callq *0x7f373(%rip)          # 0xc1350
movq %rax, 0x68(%rbx)
leaq 0x5a7c8(%rip), %rsi     # 0x9c7b0
movq %r14, %rdi
callq *0x7f35f(%rip)          # 0xc1350
movq %rax, 0x70(%rbx)
leaq 0x5a7de(%rip), %rsi     # 0x9c7da
movq %r14, %rdi
callq *0x7f34b(%rip)          # 0xc1350
movq %rax, 0x80(%rbx)
leaq 0x5a7ec(%rip), %rsi     # 0x9c7ff
movq %r14, %rdi
callq *0x7f334(%rip)          # 0xc1350
movq %rax, 0x90(%rbx)
leaq 0x5a7ff(%rip), %rsi     # 0x9c829
movq %r14, %rdi
callq *0x7f31d(%rip)          # 0xc1350
movq %rax, 0xd0(%rbx)
leaq 0x5a807(%rip), %rsi     # 0x9c848
movq %r14, %rdi
callq *0x7f306(%rip)          # 0xc1350
movq %rax, 0xd8(%rbx)
leaq 0x5a810(%rip), %rsi     # 0x9c868
movq %r14, %rdi
callq *0x7f2ef(%rip)          # 0xc1350
movq %rax, 0xe0(%rbx)
leaq 0x5a811(%rip), %rsi     # 0x9c880
movq %r14, %rdi
callq *0x7f2d8(%rip)          # 0xc1350
movq %rax, 0x138(%rbx)
leaq 0x5a80e(%rip), %rsi     # 0x9c894
movq %r14, %rdi
callq *0x7f2c1(%rip)          # 0xc1350
movq %rax, 0x140(%rbx)
leaq 0x5a822(%rip), %rsi     # 0x9c8bf
movq %r14, %rdi
callq *0x7f2aa(%rip)          # 0xc1350
movq %rax, 0x148(%rbx)
leaq 0x5a828(%rip), %rsi     # 0x9c8dc
movq %r14, %rdi
callq *0x7f293(%rip)          # 0xc1350
movq %rax, 0x150(%rbx)
leaq 0x5a82d(%rip), %rsi     # 0x9c8f8
movq %r14, %rdi
callq *0x7f27c(%rip)          # 0xc1350
movq %rax, 0x158(%rbx)
leaq 0x5a835(%rip), %rsi     # 0x9c917
movq %r14, %rdi
callq *0x7f265(%rip)          # 0xc1350
movq %rax, 0x160(%rbx)
leaq 0x5a83b(%rip), %rsi     # 0x9c934
movq %r14, %rdi
callq *0x7f24e(%rip)          # 0xc1350
movq %rax, 0x168(%rbx)
leaq 0x5a844(%rip), %rsi     # 0x9c954
movq %r14, %rdi
callq *0x7f237(%rip)          # 0xc1350
movq %rax, 0x170(%rbx)
leaq 0x5a84a(%rip), %rsi     # 0x9c971
movq %r14, %rdi
callq *0x7f220(%rip)          # 0xc1350
movq %rax, 0x178(%rbx)
leaq 0x5a84e(%rip), %rsi     # 0x9c98c
movq %r14, %rdi
callq *0x7f209(%rip)          # 0xc1350
movq %rax, 0x180(%rbx)
leaq 0x5a855(%rip), %rsi     # 0x9c9aa
movq %r14, %rdi
callq *0x7f1f2(%rip)          # 0xc1350
movq %rax, 0x188(%rbx)
leaq 0x5a85d(%rip), %rsi     # 0x9c9c9
movq %r14, %rdi
callq *0x7f1db(%rip)          # 0xc1350
movq %rax, 0x190(%rbx)
leaq 0x5a866(%rip), %rsi     # 0x9c9e9
movq %r14, %rdi
callq *0x7f1c4(%rip)          # 0xc1350
movq %rax, 0x198(%rbx)
leaq 0x5a86c(%rip), %rsi     # 0x9ca06
movq %r14, %rdi
callq *0x7f1ad(%rip)          # 0xc1350
movq %rax, 0x1a0(%rbx)
leaq 0x5a87e(%rip), %rsi     # 0x9ca2f
movq %r14, %rdi
callq *0x7f196(%rip)          # 0xc1350
movq %rax, 0x1a8(%rbx)
leaq 0x5a895(%rip), %rsi     # 0x9ca5d
movq %r14, %rdi
callq *0x7f17f(%rip)          # 0xc1350
movq %rax, 0x1b0(%rbx)
leaq 0x5a89d(%rip), %rsi     # 0x9ca7c
movq %r14, %rdi
callq *0x7f168(%rip)          # 0xc1350
movq %rax, 0x1b8(%rbx)
leaq 0x5a8a8(%rip), %rsi     # 0x9ca9e
movq %r14, %rdi
callq *0x7f151(%rip)          # 0xc1350
movq %rax, 0x1c0(%rbx)
testq %rax, %rax
jne 0x4223e
leaq 0x5a8ac(%rip), %rsi     # 0x9cabe
movq %r14, %rdi
callq *0x7f135(%rip)          # 0xc1350
movq %rax, 0x1c0(%rbx)
testq %rax, %rax
jne 0x4223e
leaq 0x5a8b3(%rip), %rsi     # 0x9cae1
movq %r14, %rdi
callq *0x7f119(%rip)          # 0xc1350
movq %rax, 0x1c0(%rbx)
leaq 0x5a8bf(%rip), %rsi     # 0x9cb04
movq %r14, %rdi
callq *0x7f102(%rip)          # 0xc1350
movq %rax, 0x1c8(%rbx)
leaq 0x5a8d7(%rip), %rsi     # 0x9cb33
movq %r14, %rdi
callq *0x7f0eb(%rip)          # 0xc1350
movq %rax, 0x1d0(%rbx)
leaq 0x5a8ec(%rip), %rsi     # 0x9cb5f
movq %r14, %rdi
callq *0x7f0d4(%rip)          # 0xc1350
movq %rax, 0x1d8(%rbx)
leaq 0x5a915(%rip), %rsi     # 0x9cb9f
movq %r14, %rdi
callq *0x7f0bd(%rip)          # 0xc1350
movq %rax, 0x1e0(%rbx)
leaq 0x5a936(%rip), %rsi     # 0x9cbd7
movq %r14, %rdi
callq *0x7f0a6(%rip)          # 0xc1350
movq %rax, 0x1e8(%rbx)
leaq 0x5a94a(%rip), %rsi     # 0x9cc02
movq %r14, %rdi
callq *0x7f08f(%rip)          # 0xc1350
movq %rax, 0x1f0(%rbx)
leaq 0x5a958(%rip), %rsi     # 0x9cc27
movq %r14, %rdi
callq *0x7f078(%rip)          # 0xc1350
movq %rax, 0x1f8(%rbx)
leaq 0x5a958(%rip), %rsi     # 0x9cc3e
movq %r14, %rdi
callq *0x7f061(%rip)          # 0xc1350
movq %rax, 0x200(%rbx)
leaq 0x5a954(%rip), %rsi     # 0x9cc51
movq %r14, %rdi
callq *0x7f04a(%rip)          # 0xc1350
movq %rax, 0x208(%rbx)
jmp 0x42383
leaq 0x59c1f(%rip), %rsi     # 0x9bf35
jmp 0x42379
leaq 0x59c34(%rip), %rsi     # 0x9bf53
jmp 0x42379
leaq 0x59c52(%rip), %rsi     # 0x9bf7a
jmp 0x42379
leaq 0x59c76(%rip), %rsi     # 0x9bfa7
jmp 0x42379
leaq 0x59c9e(%rip), %rsi     # 0x9bfd8
jmp 0x42379
leaq 0x59cbd(%rip), %rsi     # 0x9c000
jmp 0x42379
leaq 0x59ce4(%rip), %rsi     # 0x9c030
jmp 0x42379
leaq 0x59d10(%rip), %rsi     # 0x9c065
jmp 0x42379
leaq 0x59d31(%rip), %rsi     # 0x9c08f
jmp 0x42379
leaq 0x59d5d(%rip), %rsi     # 0x9c0c4
jmp 0x42379
leaq 0x59d84(%rip), %rsi     # 0x9c0f4
jmp 0x42379
leaq 0x59d96(%rip), %rsi     # 0x9c10f
movq %r15, %rdi
xorl %eax, %eax
callq 0x19ba0
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq