// File: /workspace/github_cpp_makefile_star2_O2/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 0x191f0
movq %rax, %rbx
leaq 0x4e03a(%rip), %rsi     # 0x8cf41
movq %r14, %rdi
callq *0x7d450(%rip)          # 0xbc360
movq %rax, (%rbx)
testq %rax, %rax
je 0x3f793
leaq 0x4e03c(%rip), %rsi     # 0x8cf5f
movq %r14, %rdi
callq *0x7d434(%rip)          # 0xbc360
movq %rax, 0x8(%rbx)
testq %rax, %rax
je 0x3f79c
leaq 0x4e046(%rip), %rsi     # 0x8cf86
movq %r14, %rdi
callq *0x7d417(%rip)          # 0xbc360
movq %rax, 0x10(%rbx)
testq %rax, %rax
je 0x3f7a5
leaq 0x4e056(%rip), %rsi     # 0x8cfb3
movq %r14, %rdi
callq *0x7d3fa(%rip)          # 0xbc360
movq %rax, 0x18(%rbx)
testq %rax, %rax
je 0x3f7ae
leaq 0x4e06a(%rip), %rsi     # 0x8cfe4
movq %r14, %rdi
callq *0x7d3dd(%rip)          # 0xbc360
movq %rax, 0x20(%rbx)
testq %rax, %rax
je 0x3f7b7
leaq 0x4e075(%rip), %rsi     # 0x8d00c
movq %r14, %rdi
callq *0x7d3c0(%rip)          # 0xbc360
movq %rax, 0x28(%rbx)
testq %rax, %rax
je 0x3f7c0
leaq 0x4e088(%rip), %rsi     # 0x8d03c
movq %r14, %rdi
callq *0x7d3a3(%rip)          # 0xbc360
movq %rax, 0x30(%rbx)
testq %rax, %rax
je 0x3f7c9
leaq 0x4e0a0(%rip), %rsi     # 0x8d071
movq %r14, %rdi
callq *0x7d386(%rip)          # 0xbc360
movq %rax, 0x38(%rbx)
testq %rax, %rax
je 0x3f7d2
leaq 0x4e0ad(%rip), %rsi     # 0x8d09b
movq %r14, %rdi
callq *0x7d369(%rip)          # 0xbc360
movq %rax, 0x40(%rbx)
testq %rax, %rax
je 0x3f7db
leaq 0x4e0c5(%rip), %rsi     # 0x8d0d0
movq %r14, %rdi
callq *0x7d34c(%rip)          # 0xbc360
movq %rax, 0x48(%rbx)
testq %rax, %rax
je 0x3f7e4
leaq 0x4e0d8(%rip), %rsi     # 0x8d100
movq %r14, %rdi
callq *0x7d32f(%rip)          # 0xbc360
movq %rax, 0x50(%rbx)
testq %rax, %rax
je 0x3f7ed
leaq 0x4e0d6(%rip), %rsi     # 0x8d11b
movq %r14, %rdi
callq *0x7d312(%rip)          # 0xbc360
movq %rax, 0x58(%rbx)
testq %rax, %rax
je 0x3f7f6
leaq 0x4e0e8(%rip), %rsi     # 0x8d14a
movq %r14, %rdi
callq *0x7d2f5(%rip)          # 0xbc360
movq %rax, 0x98(%rbx)
leaq 0x4e0f9(%rip), %rsi     # 0x8d172
movq %r14, %rdi
callq *0x7d2de(%rip)          # 0xbc360
movq %rax, 0xa0(%rbx)
leaq 0x4e10f(%rip), %rsi     # 0x8d19f
movq %r14, %rdi
callq *0x7d2c7(%rip)          # 0xbc360
movq %rax, 0xa8(%rbx)
leaq 0x4e11e(%rip), %rsi     # 0x8d1c5
movq %r14, %rdi
callq *0x7d2b0(%rip)          # 0xbc360
movq %rax, 0xb0(%rbx)
leaq 0x4e125(%rip), %rsi     # 0x8d1e3
movq %r14, %rdi
callq *0x7d299(%rip)          # 0xbc360
movq %rax, 0xb8(%rbx)
leaq 0x4e125(%rip), %rsi     # 0x8d1fa
movq %r14, %rdi
callq *0x7d282(%rip)          # 0xbc360
movq %rax, 0xc0(%rbx)
leaq 0x4e12f(%rip), %rsi     # 0x8d21b
movq %r14, %rdi
callq *0x7d26b(%rip)          # 0xbc360
movq %rax, 0xc8(%rbx)
leaq 0x4e137(%rip), %rsi     # 0x8d23a
movq %r14, %rdi
callq *0x7d254(%rip)          # 0xbc360
movq %rax, 0x130(%rbx)
testq %rax, %rax
jne 0x3f14b
leaq 0x4e146(%rip), %rsi     # 0x8d265
movq %r14, %rdi
callq *0x7d238(%rip)          # 0xbc360
movq %rax, 0x130(%rbx)
testq %rax, %rax
jne 0x3f14b
leaq 0x4e158(%rip), %rsi     # 0x8d293
movq %r14, %rdi
callq *0x7d21c(%rip)          # 0xbc360
movq %rax, 0x130(%rbx)
leaq 0x4e16f(%rip), %rsi     # 0x8d2c1
movq %r14, %rdi
callq *0x7d205(%rip)          # 0xbc360
movq %rax, 0x120(%rbx)
testq %rax, %rax
jne 0x3f19a
leaq 0x4e17f(%rip), %rsi     # 0x8d2ed
movq %r14, %rdi
callq *0x7d1e9(%rip)          # 0xbc360
movq %rax, 0x120(%rbx)
testq %rax, %rax
jne 0x3f19a
leaq 0x4e192(%rip), %rsi     # 0x8d31c
movq %r14, %rdi
callq *0x7d1cd(%rip)          # 0xbc360
movq %rax, 0x120(%rbx)
leaq 0x4e1aa(%rip), %rsi     # 0x8d34b
movq %r14, %rdi
callq *0x7d1b6(%rip)          # 0xbc360
movq %rax, 0x128(%rbx)
testq %rax, %rax
jne 0x3f1e9
leaq 0x4e1bd(%rip), %rsi     # 0x8d37a
movq %r14, %rdi
callq *0x7d19a(%rip)          # 0xbc360
movq %rax, 0x128(%rbx)
testq %rax, %rax
jne 0x3f1e9
leaq 0x4e1d3(%rip), %rsi     # 0x8d3ac
movq %r14, %rdi
callq *0x7d17e(%rip)          # 0xbc360
movq %rax, 0x128(%rbx)
leaq 0x4e1ee(%rip), %rsi     # 0x8d3de
movq %r14, %rdi
callq *0x7d167(%rip)          # 0xbc360
movq %rax, 0xe8(%rbx)
testq %rax, %rax
jne 0x3f238
leaq 0x4e1ef(%rip), %rsi     # 0x8d3fb
movq %r14, %rdi
callq *0x7d14b(%rip)          # 0xbc360
movq %rax, 0xe8(%rbx)
testq %rax, %rax
jne 0x3f238
leaq 0x4e1f3(%rip), %rsi     # 0x8d41b
movq %r14, %rdi
callq *0x7d12f(%rip)          # 0xbc360
movq %rax, 0xe8(%rbx)
leaq 0x4e1fc(%rip), %rsi     # 0x8d43b
movq %r14, %rdi
callq *0x7d118(%rip)          # 0xbc360
movq %rax, 0xf0(%rbx)
testq %rax, %rax
jne 0x3f287
leaq 0x4e1ff(%rip), %rsi     # 0x8d45a
movq %r14, %rdi
callq *0x7d0fc(%rip)          # 0xbc360
movq %rax, 0xf0(%rbx)
testq %rax, %rax
jne 0x3f287
leaq 0x4e205(%rip), %rsi     # 0x8d47c
movq %r14, %rdi
callq *0x7d0e0(%rip)          # 0xbc360
movq %rax, 0xf0(%rbx)
leaq 0x4e210(%rip), %rsi     # 0x8d49e
movq %r14, %rdi
callq *0x7d0c9(%rip)          # 0xbc360
movq %rax, 0xf8(%rbx)
testq %rax, %rax
jne 0x3f2d6
leaq 0x4e219(%rip), %rsi     # 0x8d4c3
movq %r14, %rdi
callq *0x7d0ad(%rip)          # 0xbc360
movq %rax, 0xf8(%rbx)
testq %rax, %rax
jne 0x3f2d6
leaq 0x4e225(%rip), %rsi     # 0x8d4eb
movq %r14, %rdi
callq *0x7d091(%rip)          # 0xbc360
movq %rax, 0xf8(%rbx)
leaq 0x4e236(%rip), %rsi     # 0x8d513
movq %r14, %rdi
callq *0x7d07a(%rip)          # 0xbc360
movq %rax, 0x100(%rbx)
testq %rax, %rax
jne 0x3f325
leaq 0x4e244(%rip), %rsi     # 0x8d53d
movq %r14, %rdi
callq *0x7d05e(%rip)          # 0xbc360
movq %rax, 0x100(%rbx)
testq %rax, %rax
jne 0x3f325
leaq 0x4e255(%rip), %rsi     # 0x8d56a
movq %r14, %rdi
callq *0x7d042(%rip)          # 0xbc360
movq %rax, 0x100(%rbx)
leaq 0x4e26b(%rip), %rsi     # 0x8d597
movq %r14, %rdi
callq *0x7d02b(%rip)          # 0xbc360
movq %rax, 0x108(%rbx)
testq %rax, %rax
jne 0x3f374
leaq 0x4e279(%rip), %rsi     # 0x8d5c1
movq %r14, %rdi
callq *0x7d00f(%rip)          # 0xbc360
movq %rax, 0x108(%rbx)
testq %rax, %rax
jne 0x3f374
leaq 0x4e28a(%rip), %rsi     # 0x8d5ee
movq %r14, %rdi
callq *0x7cff3(%rip)          # 0xbc360
movq %rax, 0x108(%rbx)
leaq 0x4e2a0(%rip), %rsi     # 0x8d61b
movq %r14, %rdi
callq *0x7cfdc(%rip)          # 0xbc360
movq %rax, 0x110(%rbx)
testq %rax, %rax
jne 0x3f3c3
leaq 0x4e2a9(%rip), %rsi     # 0x8d640
movq %r14, %rdi
callq *0x7cfc0(%rip)          # 0xbc360
movq %rax, 0x110(%rbx)
testq %rax, %rax
jne 0x3f3c3
leaq 0x4e2b5(%rip), %rsi     # 0x8d668
movq %r14, %rdi
callq *0x7cfa4(%rip)          # 0xbc360
movq %rax, 0x110(%rbx)
leaq 0x4e2c6(%rip), %rsi     # 0x8d690
movq %r14, %rdi
callq *0x7cf8d(%rip)          # 0xbc360
movq %rax, 0x118(%rbx)
testq %rax, %rax
jne 0x3f412
leaq 0x4e2da(%rip), %rsi     # 0x8d6c0
movq %r14, %rdi
callq *0x7cf71(%rip)          # 0xbc360
movq %rax, 0x118(%rbx)
testq %rax, %rax
jne 0x3f412
leaq 0x4e2f1(%rip), %rsi     # 0x8d6f3
movq %r14, %rdi
callq *0x7cf55(%rip)          # 0xbc360
movq %rax, 0x118(%rbx)
leaq 0x4e30d(%rip), %rsi     # 0x8d726
movq %r14, %rdi
callq *0x7cf3e(%rip)          # 0xbc360
movq %rax, 0x78(%rbx)
leaq 0x4e324(%rip), %rsi     # 0x8d751
movq %r14, %rdi
callq *0x7cf2a(%rip)          # 0xbc360
movq %rax, 0x88(%rbx)
leaq 0x4e333(%rip), %rsi     # 0x8d777
movq %r14, %rdi
callq *0x7cf13(%rip)          # 0xbc360
movq %rax, 0x60(%rbx)
leaq 0x4e333(%rip), %rsi     # 0x8d78b
movq %r14, %rdi
callq *0x7ceff(%rip)          # 0xbc360
movq %rax, 0x68(%rbx)
leaq 0x4e344(%rip), %rsi     # 0x8d7b0
movq %r14, %rdi
callq *0x7ceeb(%rip)          # 0xbc360
movq %rax, 0x70(%rbx)
leaq 0x4e35a(%rip), %rsi     # 0x8d7da
movq %r14, %rdi
callq *0x7ced7(%rip)          # 0xbc360
movq %rax, 0x80(%rbx)
leaq 0x4e368(%rip), %rsi     # 0x8d7ff
movq %r14, %rdi
callq *0x7cec0(%rip)          # 0xbc360
movq %rax, 0x90(%rbx)
leaq 0x4e37b(%rip), %rsi     # 0x8d829
movq %r14, %rdi
callq *0x7cea9(%rip)          # 0xbc360
movq %rax, 0xd0(%rbx)
leaq 0x4e383(%rip), %rsi     # 0x8d848
movq %r14, %rdi
callq *0x7ce92(%rip)          # 0xbc360
movq %rax, 0xd8(%rbx)
leaq 0x4e38c(%rip), %rsi     # 0x8d868
movq %r14, %rdi
callq *0x7ce7b(%rip)          # 0xbc360
movq %rax, 0xe0(%rbx)
leaq 0x4e38d(%rip), %rsi     # 0x8d880
movq %r14, %rdi
callq *0x7ce64(%rip)          # 0xbc360
movq %rax, 0x138(%rbx)
leaq 0x4e38a(%rip), %rsi     # 0x8d894
movq %r14, %rdi
callq *0x7ce4d(%rip)          # 0xbc360
movq %rax, 0x140(%rbx)
leaq 0x4e39e(%rip), %rsi     # 0x8d8bf
movq %r14, %rdi
callq *0x7ce36(%rip)          # 0xbc360
movq %rax, 0x148(%rbx)
leaq 0x4e3a4(%rip), %rsi     # 0x8d8dc
movq %r14, %rdi
callq *0x7ce1f(%rip)          # 0xbc360
movq %rax, 0x150(%rbx)
leaq 0x4e3a9(%rip), %rsi     # 0x8d8f8
movq %r14, %rdi
callq *0x7ce08(%rip)          # 0xbc360
movq %rax, 0x158(%rbx)
leaq 0x4e3b1(%rip), %rsi     # 0x8d917
movq %r14, %rdi
callq *0x7cdf1(%rip)          # 0xbc360
movq %rax, 0x160(%rbx)
leaq 0x4e3b7(%rip), %rsi     # 0x8d934
movq %r14, %rdi
callq *0x7cdda(%rip)          # 0xbc360
movq %rax, 0x168(%rbx)
leaq 0x4e3c0(%rip), %rsi     # 0x8d954
movq %r14, %rdi
callq *0x7cdc3(%rip)          # 0xbc360
movq %rax, 0x170(%rbx)
leaq 0x4e3c6(%rip), %rsi     # 0x8d971
movq %r14, %rdi
callq *0x7cdac(%rip)          # 0xbc360
movq %rax, 0x178(%rbx)
leaq 0x4e3ca(%rip), %rsi     # 0x8d98c
movq %r14, %rdi
callq *0x7cd95(%rip)          # 0xbc360
movq %rax, 0x180(%rbx)
leaq 0x4e3d1(%rip), %rsi     # 0x8d9aa
movq %r14, %rdi
callq *0x7cd7e(%rip)          # 0xbc360
movq %rax, 0x188(%rbx)
leaq 0x4e3d9(%rip), %rsi     # 0x8d9c9
movq %r14, %rdi
callq *0x7cd67(%rip)          # 0xbc360
movq %rax, 0x190(%rbx)
leaq 0x4e3e2(%rip), %rsi     # 0x8d9e9
movq %r14, %rdi
callq *0x7cd50(%rip)          # 0xbc360
movq %rax, 0x198(%rbx)
leaq 0x4e3e8(%rip), %rsi     # 0x8da06
movq %r14, %rdi
callq *0x7cd39(%rip)          # 0xbc360
movq %rax, 0x1a0(%rbx)
leaq 0x4e3fa(%rip), %rsi     # 0x8da2f
movq %r14, %rdi
callq *0x7cd22(%rip)          # 0xbc360
movq %rax, 0x1a8(%rbx)
leaq 0x4e411(%rip), %rsi     # 0x8da5d
movq %r14, %rdi
callq *0x7cd0b(%rip)          # 0xbc360
movq %rax, 0x1b0(%rbx)
leaq 0x4e419(%rip), %rsi     # 0x8da7c
movq %r14, %rdi
callq *0x7ccf4(%rip)          # 0xbc360
movq %rax, 0x1b8(%rbx)
leaq 0x4e424(%rip), %rsi     # 0x8da9e
movq %r14, %rdi
callq *0x7ccdd(%rip)          # 0xbc360
movq %rax, 0x1c0(%rbx)
testq %rax, %rax
jne 0x3f6c2
leaq 0x4e428(%rip), %rsi     # 0x8dabe
movq %r14, %rdi
callq *0x7ccc1(%rip)          # 0xbc360
movq %rax, 0x1c0(%rbx)
testq %rax, %rax
jne 0x3f6c2
leaq 0x4e42f(%rip), %rsi     # 0x8dae1
movq %r14, %rdi
callq *0x7cca5(%rip)          # 0xbc360
movq %rax, 0x1c0(%rbx)
leaq 0x4e43b(%rip), %rsi     # 0x8db04
movq %r14, %rdi
callq *0x7cc8e(%rip)          # 0xbc360
movq %rax, 0x1c8(%rbx)
leaq 0x4e453(%rip), %rsi     # 0x8db33
movq %r14, %rdi
callq *0x7cc77(%rip)          # 0xbc360
movq %rax, 0x1d0(%rbx)
leaq 0x4e468(%rip), %rsi     # 0x8db5f
movq %r14, %rdi
callq *0x7cc60(%rip)          # 0xbc360
movq %rax, 0x1d8(%rbx)
leaq 0x4e491(%rip), %rsi     # 0x8db9f
movq %r14, %rdi
callq *0x7cc49(%rip)          # 0xbc360
movq %rax, 0x1e0(%rbx)
leaq 0x4e4b2(%rip), %rsi     # 0x8dbd7
movq %r14, %rdi
callq *0x7cc32(%rip)          # 0xbc360
movq %rax, 0x1e8(%rbx)
leaq 0x4e4c6(%rip), %rsi     # 0x8dc02
movq %r14, %rdi
callq *0x7cc1b(%rip)          # 0xbc360
movq %rax, 0x1f0(%rbx)
leaq 0x4e4d4(%rip), %rsi     # 0x8dc27
movq %r14, %rdi
callq *0x7cc04(%rip)          # 0xbc360
movq %rax, 0x1f8(%rbx)
leaq 0x4e4d4(%rip), %rsi     # 0x8dc3e
movq %r14, %rdi
callq *0x7cbed(%rip)          # 0xbc360
movq %rax, 0x200(%rbx)
leaq 0x4e4d0(%rip), %rsi     # 0x8dc51
movq %r14, %rdi
callq *0x7cbd6(%rip)          # 0xbc360
movq %rax, 0x208(%rbx)
jmp 0x3f807
leaq 0x4d79b(%rip), %rsi     # 0x8cf35
jmp 0x3f7fd
leaq 0x4d7b0(%rip), %rsi     # 0x8cf53
jmp 0x3f7fd
leaq 0x4d7ce(%rip), %rsi     # 0x8cf7a
jmp 0x3f7fd
leaq 0x4d7f2(%rip), %rsi     # 0x8cfa7
jmp 0x3f7fd
leaq 0x4d81a(%rip), %rsi     # 0x8cfd8
jmp 0x3f7fd
leaq 0x4d839(%rip), %rsi     # 0x8d000
jmp 0x3f7fd
leaq 0x4d860(%rip), %rsi     # 0x8d030
jmp 0x3f7fd
leaq 0x4d88c(%rip), %rsi     # 0x8d065
jmp 0x3f7fd
leaq 0x4d8ad(%rip), %rsi     # 0x8d08f
jmp 0x3f7fd
leaq 0x4d8d9(%rip), %rsi     # 0x8d0c4
jmp 0x3f7fd
leaq 0x4d900(%rip), %rsi     # 0x8d0f4
jmp 0x3f7fd
leaq 0x4d912(%rip), %rsi     # 0x8d10f
movq %r15, %rdi
xorl %eax, %eax
callq 0x19bc0
movq %rbx, %rax
popq %rbx
popq %r14
popq %r15
retq