Function at 0x104c9e60
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xb4c
mov eax, dword [0x10a78b80]
xor eax, esp
mov dword [esp + 0xb48], eax
push ebx
push ebp
push esi
push edi
xor esi, esi
lea eax, [esp + 0x18c]
cmp dword [0x10ac31d4], esi
mov ebp, ecx
push 0x20
sete dl
mov dword [esp + 0x44], ebp
push esi
push eax
mov byte [esp + 0x23], dl
mov dword [esp + 0x44], esi
call fcn.1050a0a0
push 0x10
lea eax, [esp + 0x18c]
push esi
push eax
call fcn.1050a0a0
mov eax, 0xffff
push 0x800
mov word [ebp + 0x215f64], ax
lea eax, [ebp + 0x1eb7a8]
push esi
push eax
call fcn.1050a0a0
push 0x14
lea eax, [ebp + 0x1f5f20]
push esi
push eax
call fcn.1050a0a0
mov edi, dword [esp + 0xb90]
add esp, 0x30
mov dword [ebp + 0x1908], 0xffffffff
cmp byte [edi + 0x10], 0
jne 0x104c9efe
cmp byte [edi + 0x11], 0
je 0x104c9f09
call fcn.104cfa40
mov dword [ebp + 0x93a0], eax
cmp dword [ebp + 0x93a0], esi
lea ecx, [esp + 0x490]
push str.vulkan_1.dll
setne byte [0x10ac2fcc]
call fcn.105085f0
lea eax, [esp + 0x490]
push eax
call fcn.105097b0
add esp, 4
mov dword [ebp + 0x93a4], eax
test eax, eax
je 0x104cc2f8
push closesocket
push str.vkCreateInstance
mov dword [esp + 0x28], 1
call fcn.1050b4f0
mov dword [esp + 0xb50], eax
lea eax, [esp + 0xb4c]
push eax
push dword [ebp + 0x93a4]
mov dword [esp + 0xb54], 0x10a444fc
mov byte [esp + 0xb5c], 1
call fcn.105097c0
test eax, eax
mov dword [0x10ac2c4c], eax
push closesocket
push str.vkGetInstanceProcAddr
setne bl
call fcn.1050b4f0
mov dword [esp + 0xb60], eax
lea eax, [esp + 0xb5c]
push eax
push dword [ebp + 0x93a4]
mov dword [esp + 0xb64], 0x10a44510
mov byte [esp + 0xb6c], 1
call fcn.105097c0
mov esi, eax
push closesocket
push str.vkGetDeviceProcAddr
mov dword [0x10ac2c50], esi
call fcn.1050b4f0
mov dword [esp + 0xb70], eax
lea eax, [esp + 0xb6c]
push eax
push dword [ebp + 0x93a4]
mov dword [esp + 0xb74], 0x10a44528
mov byte [esp + 0xb7c], 1
call fcn.105097c0
test esi, esi
mov dword [0x10ac2c54], eax
push closesocket
setne cl
and cl, bl
neg eax
push str.vkEnumerateInstanceExtensionProperties
sbb al, al
and al, cl
mov dword [esp + 0x5c], eax
call fcn.1050b4f0
mov dword [esp + 0xb80], eax
lea eax, [esp + 0xb7c]
push eax
push dword [ebp + 0x93a4]
mov dword [esp + 0xb84], 0x10a4453c
mov byte [esp + 0xb8c], 1
call fcn.105097c0
add esp, 0x40
mov esi, eax
mov dword [0x10ac2c58], esi
push closesocket
push str.vkEnumerateInstanceLayerProperties
call fcn.1050b4f0
mov dword [esp + 0xb50], eax
lea eax, [esp + 0xb4c]
push eax
push dword [ebp + 0x93a4]
mov dword [esp + 0xb54], 0x10a44564
mov byte [esp + 0xb5c], 1
call fcn.105097c0
mov ebx, eax
push closesocket
push str.vkEnumerateInstanceVersion
mov dword [0x10ac2c5c], ebx
call fcn.1050b4f0
mov dword [esp + 0xb60], eax
lea eax, [esp + 0xb5c]
push eax
push dword [ebp + 0x93a4]
mov dword [esp + 0xb64], 0x10a44588
mov byte [esp + 0xb6c], 1
call fcn.105097c0
add esp, 0x20
mov dword [0x10ac2c60], eax
test esi, esi
setne al
and al, byte [esp + 0x24]
neg ebx
sbb bl, bl
and bl, al
mov dword [esp + 0x2c], ebx
je 0x104cc2f3
mov al, byte [edi + 0x10]
mov byte [0x10a7809b], al
mov al, byte [edi + 0x10]
mov byte [0x10a78099], al
mov al, byte [edi + 0x10]
mov byte [0x10a7808f], al
mov al, byte [edi + 0x10]
mov byte [0x10a7808d], al
mov al, byte [edi + 0x10]
mov byte [0x10a780d2], al
mov eax, dword [edi + 8]
and eax, 0x20000000
or eax, 0
je 0x104ca14a
mov al, 1
jmp 0x104ca14c
xor al, al
mov byte [0x10a78112], al
mov eax, dword [edi + 8]
and eax, 8
or eax, 0
je 0x104ca160
mov al, 1
jmp 0x104ca162
xor al, al
mov byte [0x10a780b2], al
mov eax, dword [edi + 8]
and eax, 0x40000000
or eax, 0
je 0x104ca178
mov al, 1
jmp 0x104ca17a
xor al, al
push 0x10a780a8
push 0
mov byte [0x10a78122], al
call fcn.104b6750
mov al, byte [0x10a7808c]
add esp, 8
cmp byte [0x10a7808e], 0
jne 0x104ca1a8
test al, al
jne 0x104ca1a8
mov cl, byte [0x10a78098]
jmp 0x104ca1b7
xor cl, cl
mov byte [0x10a7809a], 0
mov byte [0x10a78098], cl
xor ebx, ebx
test al, al
je 0x104ca1d6
cmp byte [0x10a7808d], bl
je 0x104ca1d6
mov eax, dword [str.VK_LAYER_KHRONOS_validation]
mov ebx, 1
mov dword [esp + 0xb44], eax
test cl, cl
je 0x104ca1f0
cmp byte [0x10a78099], 0
je 0x104ca1f0
mov eax, dword [str.VK_LAYER_LUNARG_standard_validation]
mov dword [esp + ebx*4 + 0xb44], eax
inc ebx
mov al, byte [esp + 0x17]
test al, al
jne 0x104ca20e
mov dword [esp + 0x8d4], str.VK_KHR_surface
mov dword [esp + 0x8d8], 0x10a445b4
movzx esi, al
mov ecx, 0x10a780b1
xor esi, 1
mov edi, 9
add esi, esi
mov eax, dword [ecx + 3]
lea edx, [eax + eax*2]
cmp eax, 2
je 0x104ca243
cmp byte [edx*4 + 0x10a7808c], 0
je 0x104ca23f
cmp byte [edx*4 + 0x10a7808d], 0
jne 0x104ca243
xor al, al
jmp 0x104ca245
mov al, 1
cmp byte [ecx], 0
je 0x104ca265
cmp byte [ecx + 1], 0
je 0x104ca265
cmp byte [ecx - 1], 0
je 0x104ca265
test al, al
je 0x104ca265
mov eax, dword [ecx - 9]
mov dword [esp + esi*4 + 0x8d4], eax
inc esi
add ecx, 0x10
sub edi, 1
jne 0x104ca220
mov eax, dword [0x10ac2c60]
test eax, eax
je 0x104ca28b
lea ecx, [esp + 0x18]
push ecx
call eax
test eax, eax
jne 0x104cc2e6
mov eax, dword [esp + 0x18]
jmp 0x104ca294
mov eax, 0x400000
mov dword [esp + 0x18], eax
mov dword [esp + 0x8a8], eax
lea ecx, [esp + 0x8ac]
lea eax, [esp + 0x890]
mov dword [esp + 0x8c4], esi
mov dword [esp + 0x8b8], eax
lea esi, [ebp + 0x10]
lea eax, [esp + 0xb44]
mov dword [esp + 0x890], 0
push esi
push dword [ebp + 4]
mov dword [esp + 0x8c8], eax
lea eax, [esp + 0x8dc]
mov dword [esp + 0x8d0], eax
mov eax, dword [0x10ac2c4c]
push ecx
mov dword [esp + 0x8a0], 0
mov dword [esp + 0x8a4], 0x10a445cc
mov dword [esp + 0x8a8], 0x7f
mov dword [esp + 0x8ac], 0x10a445cc
mov dword [esp + 0x8b0], 0x7f
mov dword [esp + 0x8b8], 1
mov dword [esp + 0x8bc], 0
mov dword [esp + 0x8c0], 0
mov dword [esp + 0x8c8], ebx
mov dword [esp + 0x1c], esi
call eax
test eax, eax
jne 0x104cc2e6
mov eax, dword [esp + 0x18]
push str.vkDestroyInstance
push dword [esi]
mov dword [ebp + 0x18], eax
mov dword [esp + 0x28], 2
call dword [0x10ac2c50]
push str.vkEnumeratePhysicalDevices
mov dword [0x10ac2c64], eax
push dword [esi]
mov dword [esp + 0x2c], eax
call dword [0x10ac2c50]
push str.vkEnumerateDeviceExtensionProperties
mov dword [0x10ac2c68], eax
push dword [esi]
mov dword [esp + 0x30], eax
call dword [0x10ac2c50]
push str.vkEnumerateDeviceLayerProperties
mov dword [0x10ac2c6c], eax
push dword [esi]
mov dword [esp + 0x38], eax
call dword [0x10ac2c50]
push str.vkGetPhysicalDeviceProperties
mov dword [0x10ac2c70], eax
push dword [esi]
mov dword [esp + 0x44], eax
call dword [0x10ac2c50]
push str.vkGetPhysicalDeviceFormatProperties
mov dword [0x10ac2c74], eax
push dword [esi]
mov dword [esp + 0x24], eax
call dword [0x10ac2c50]
push str.vkGetPhysicalDeviceFeatures
mov dword [0x10ac2c78], eax
push dword [esi]
mov dword [esp + 0x20], eax
call dword [0x10ac2c50]
mov ebp, eax
push str.vkGetPhysicalDeviceImageFormatProperties
mov dword [0x10ac2c7c], ebp
push dword [esi]
call dword [0x10ac2c50]
push str.vkGetPhysicalDeviceMemoryProperties
mov dword [0x10ac2c80], eax
push dword [esi]
mov dword [esp + 0x3c], eax
call dword [0x10ac2c50]
mov edi, eax
push str.vkGetPhysicalDeviceQueueFamilyProperties
mov dword [0x10ac2c84], edi
push dword [esi]
call dword [0x10ac2c50]
mov ebx, eax
push str.vkCreateDevice
mov dword [0x10ac2c88], ebx
push dword [esi]
call dword [0x10ac2c50]
mov esi, eax
mov eax, dword [esp + 0x10]
push str.vkDestroyDevice
mov dword [0x10ac2c8c], esi
push dword [eax]
call dword [0x10ac2c50]
mov ecx, eax
mov eax, dword [esp + 0x10]
mov dword [0x10ac2c90], ecx
push str.vkGetPhysicalDeviceSurfaceCapabilitiesKHR
mov dword [esp + 0x48], ecx
push dword [eax]
mov ecx, dword [0x10ac2c50]
call ecx
mov ecx, dword [0x10ac2c50]
mov dword [0x10ac2c94], eax
mov eax, dword [esp + 0x10]
push str.vkGetPhysicalDeviceSurfaceFormatsKHR
push dword [eax]
call ecx
mov ecx, dword [esp + 0x10]
mov dword [0x10ac2c98], eax
mov eax, dword [0x10ac2c50]
push str.vkGetPhysicalDeviceSurfacePresentModesKHR
push dword [ecx]
call eax
mov ecx, dword [esp + 0x10]
mov dword [0x10ac2c9c], eax
mov eax, dword [0x10ac2c50]
push str.vkGetPhysicalDeviceSurfaceSupportKHR
push dword [ecx]
call eax
mov ecx, dword [esp + 0x10]
mov dword [0x10ac2ca0], eax
mov eax, dword [0x10ac2c50]
push str.vkDestroySurfaceKHR
push dword [ecx]
call eax
mov ecx, dword [esp + 0x10]
mov dword [0x10ac2ca4], eax
mov eax, dword [0x10ac2c50]
push str.vkGetPhysicalDeviceFeatures2KHR
push dword [ecx]
call eax
mov ecx, dword [esp + 0x10]
mov dword [0x10ac2ca8], eax
mov eax, dword [0x10ac2c50]
push str.vkGetPhysicalDeviceMemoryProperties2KHR
push dword [ecx]
call eax
mov ecx, dword [esp + 0x10]
mov dword [0x10ac2cac], eax
mov eax, dword [0x10ac2c50]
push str.vkCreateDebugReportCallbackEXT
push dword [ecx]
call eax
mov ecx, dword [esp + 0x10]
mov dword [0x10ac2cb0], eax
mov eax, dword [0x10ac2c50]
push str.vkDestroyDebugReportCallbackEXT
push dword [ecx]
call eax
mov ecx, dword [esp + 0x10]
mov dword [0x10ac2cb4], eax
mov eax, dword [0x10ac2c50]
push str.vkCreateWin32SurfaceKHR
push dword [ecx]
call eax
mov ecx, dword [esp + 0x10]
mov dword [0x10ac2cb8], eax
mov eax, dword [0x10ac2c50]
push str.vkGetPhysicalDeviceWin32PresentationSupportKHR
push dword [ecx]
call eax
cmp dword [esp + 0x24], 0
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov dword [0x10ac2cbc], eax
setne al
and al, byte [esp + 0x2c]
neg edx
sbb dl, dl
and dl, al
cmp dword [esp + 0x30], 0
setne al
and dl, al
neg ecx
sbb cl, cl
and cl, dl
cmp dword [esp + 0x1c], 0
mov edx, dword [esp + 0x18]
setne al
and cl, al
neg edx
sbb dl, dl
and dl, cl
mov ecx, dword [esp + 0x34]
test ebp, ebp
setne al
and dl, al
neg ecx
sbb cl, cl
and cl, dl
test edi, edi
setne al
and cl, al
mov ebp, dword [esp + 0x40]
neg ebx
sbb bl, bl
and bl, cl
test esi, esi
setne al
and bl, al
mov eax, dword [esp + 0x44]
neg eax
sbb al, al
and al, bl
mov dword [esp + 0x44], eax
je 0x104cc2d8
lea eax, [ebp + 8]
mov dword [eax], 0
mov dword [eax + 4], 0
cmp byte [0x10a780d1], 0
je 0x104ca651
push eax
push dword [ebp + 4]
lea eax, [esp + 0xb4c]
mov dword [esp + 0xb4c], 0x3b9af4f8
push eax
push dword [ebp + 0x10]
mov dword [esp + 0xb58], 0
mov dword [esp + 0xb60], 0x104b3ed0
mov dword [esp + 0xb64], 0
mov dword [esp + 0xb5c], 0xa
call dword [0x10ac2cb0]
mov eax, dword [0x10ac2c68]
lea ecx, [esp + 0x18]
push 0
push ecx
push dword [ebp + 0x10]
call eax
test eax, eax
jne 0x104cc2e6
mov eax, dword [0x10ac2c68]
mov ecx, 4
cmp dword [esp + 0x18], ecx
cmovb ecx, dword [esp + 0x18]
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x890]
push ecx
lea ecx, [esp + 0x1c]
push ecx
push dword [ebp + 0x10]
call eax
test eax, eax
jne 0x104cc2e6
or eax, 0xffffffff
xor ebx, ebx
mov dword [esp + 0x10], eax
cmp dword [esp + 0x18], ebx
jbe 0x104ca815
lea esi, [esp + 0x904]
or ebp, 0xffffffff
mov dword [esp + 0x1c], esi
lea edi, [ebx + 1]
nop
lea eax, [esp + 0x490]
push eax
push dword [esp + ebx*4 + 0x894]
call dword [0x10ac2c74]
mov ecx, dword [esp + 0x4a0]
cmp ecx, 4
mov edx, dword [esp + 0x498]
cmove edx, edi
mov dword [esp + 0x34], 0
mov edi, dword [esp + 0x49c]
mov word [ebx*4 + 0x10ac2e98], dx
mov word [ebx*4 + 0x10ac2e9a], di
mov ax, word [0x10ac2e90]
inc byte [0x10ac2e96]
mov dword [esp + 0x498], edx
cmp word [esp + 0x34], ax
jne 0x104ca73f
mov ax, word [0x10ac2e92]
xor edx, edx
cmp dx, ax
jne 0x104ca753
cmp ebp, 0xffffffff
jne 0x104ca772
cmp ecx, 1
jne 0x104ca76c
mov dword [esp + 0x10], ebx
jmp 0x104ca772
movzx eax, ax
cmp edx, eax
jne 0x104ca72f
mov ax, word [0x10ac2e92]
xor edx, edx
cmp dx, ax
je 0x104ca75a
movzx eax, ax
cmp edi, eax
jne 0x104ca72f
cmp ecx, 2
je 0x104ca764
cmp ecx, 1
jne 0x104ca768
mov dword [esp + 0x10], ebx
mov ebp, ebx
jmp 0x104ca772
cmp ecx, 2
cmove ebp, ebx
lea eax, [esp + 0x288]
push eax
push dword [esp + ebx*4 + 0x894]
call dword [0x10ac2c84]
xor edi, edi
cmp dword [esp + 0x38c], edi
jbe 0x104ca7ca
lea esi, [esp + 0x390]
nop dword [eax]
push 1
push dword [esi + 4]
lea eax, [esp + 0xb4c]
push dword [esi]
push 0x10
push eax
call fcn.1050ab30
inc edi
lea esi, [esi + 0x10]
add esp, 0x14
cmp edi, dword [esp + 0x38c]
jb 0x104ca7a0
mov esi, dword [esp + 0x1c]
push 0x90
push 0x10a780a8
push esi
call fcn.1050a090
push esi
push dword [esp + ebx*4 + 0x8a0]
call fcn.104b6750
inc ebx
add esi, 0x90
add esp, 0x14
mov dword [esp + 0x1c], esi
mov edi, 1
cmp ebx, dword [esp + 0x18]
jb 0x104ca6c0
mov dword [esp + 0x1c], ebp
cmp ebp, 0xffffffff
mov ebp, dword [esp + 0x40]
jne 0x104ca821
mov eax, dword [esp + 0x10]
xor edx, edx
mov ecx, eax
cmp eax, 0xffffffff
cmove ecx, edx
jmp 0x104ca825
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + ecx*4 + 0x890]
mov dword [ebp + 0x14], eax
lea eax, [ecx + ecx*8]
shl eax, 4
lea ecx, [esp + 0x904]
push 0x90
add eax, ecx
push eax
push 0x10a780a8
call fcn.1050a090
add esp, 0xc
lea eax, [ebp + 0x20]
push eax
push dword [ebp + 0x14]
call dword [0x10ac2c74]
cmp byte [0x10a78131], 0
movzx eax, word [ebp + 0x28]
mov word [0x10ac2e90], ax
movzx eax, word [ebp + 0x2c]
mov word [0x10ac2e92], ax
je 0x104ca92c
xor ebx, ebx
mov dword [esp + 0x288], 0x3b9bb078
lea eax, [esp + 0x288]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x28c], ebx
cmp byte [0x10a780f1], bl
je 0x104ca8d0
lea ebx, [esp + 0x18c]
mov dword [esp + 0x18c], 0x3b9ebdb8
mov dword [esp + 0x38], ebx
mov eax, ebx
mov dword [esp + 0x28c], ebx
mov dword [esp + 0x190], 0
cmp byte [0x10a780c1], 0
je 0x104ca904
lea ecx, [esp + 0x17c]
mov dword [esp + 0x17c], 0x3b9f2b1a
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x28c]
mov dword [esp + 0x180], 0
mov dword [esp + 0x38], eax
lea eax, [esp + 0x288]
push eax
push dword [ebp + 0x14]
call dword [0x10ac2ca8]
mov ecx, 0x37
lea esi, [esp + 0x290]
lea edi, [esp + 0x1ac]
rep movsd dword es:[edi], dword [esi]
jmp 0x104ca93d
lea eax, [esp + 0x1ac]
push eax
push dword [ebp + 0x14]
call dword [0x10ac2c7c]
push 0xdc
lea eax, [ebp + 0x558]
push 0
push eax
call fcn.1050a0a0
mov eax, dword [esp + 0x1bc]
add esp, 0xc
cmp dword [esp + 0x1b4], 0
mov ecx, dword [esp + 0xb60]
mov dword [ebp + 0x55c], eax
je 0x104ca985
mov eax, dword [ecx + 8]
and eax, 0x400000
or eax, 0
je 0x104ca985
mov edi, 1
jmp 0x104ca987
xor edi, edi
cmp dword [esp + 0x1b8], 0
mov dword [ebp + 0x560], edi
je 0x104ca9a9
mov eax, dword [ecx + 8]
and eax, 2
or eax, 0
je 0x104ca9a9
mov esi, 1
jmp 0x104ca9ab
xor esi, esi
cmp dword [esp + 0x1d0], 0
mov dword [ebp + 0x564], esi
je 0x104ca9cd
mov eax, dword [ecx + 8]
and eax, 0x10
or eax, 0
je 0x104ca9cd
mov edx, 1
jmp 0x104ca9cf
xor edx, edx
cmp dword [esp + 0x1d4], 0
mov dword [ebp + 0x57c], edx
je 0x104ca9f1
mov eax, dword [ecx + 8]
and eax, 0x10
or eax, 0
je 0x104ca9f1
mov ecx, 1
jmp 0x104ca9f3
xor ecx, ecx
mov eax, dword [esp + 0x1d8]
mov dword [ebp + 0x584], eax
mov eax, dword [esp + 0x1e0]
mov dword [ebp + 0x58c], eax
mov eax, dword [esp + 0x1ec]
mov dword [ebp + 0x598], eax
mov eax, dword [esp + 0x1f8]
mov dword [ebp + 0x5a4], eax
mov eax, dword [esp + 0x1fc]
mov dword [ebp + 0x5a8], eax
mov eax, dword [esp + 0x204]
mov dword [ebp + 0x5b0], eax
mov eax, dword [esp + 0x210]
mov dword [ebp + 0x5bc], eax
mov eax, dword [esp + 0x214]
mov dword [ebp + 0x5c0], eax
mov eax, dword [esp + 0x21c]
mov dword [ebp + 0x5c8], eax
mov eax, dword [esp + 0x220]
mov dword [ebp + 0x5cc], eax
mov eax, dword [esp + 0x240]
mov dword [ebp + 0x5ec], eax
mov eax, dword [esp + 0x244]
mov dword [ebp + 0x5f0], eax
mov eax, dword [esp + 0x258]
mov dword [ebp + 0x604], eax
mov eax, dword [esp + 0x1bc]
mov dword [ebp + 0x580], ecx
mov dword [ebp + 0x568], eax
cmp byte [0x10a780f1], 0
je 0x104caac6
cmp dword [esp + 0x19c], 0
je 0x104caac6
mov al, 1
jmp 0x104caac8
xor al, al
mov byte [ebp + 0x634], al
cmp byte [0x10a780c1], 0
je 0x104caae5
cmp dword [esp + 0x184], 0
je 0x104caae5
mov al, 1
jmp 0x104caae7
xor al, al
cmp dword [ebp + 0x2e4], 0
mov byte [ebp + 0x635], al
setne al
mov byte [ebp + 0x636], al
test edx, edx
je 0x104cab09
test ecx, ecx
je 0x104cab09
mov bl, 1
jmp 0x104cab0b
xor bl, bl
xor ecx, ecx
mov eax, 0xf373427
test esi, esi
jne 0x104cab1b
mov eax, 0xf373425
test bl, bl
je 0x104cab31
mov dword [esp + 0x2c], 0x10
mov dword [esp + 0x24], 0
jmp 0x104cab53
xorps xmm0, xmm0
movlpd qword [esp + 0xb44], xmm0
mov edx, dword [esp + 0xb48]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0xb44]
mov dword [esp + 0x2c], edx
cmp dword [esp + 0x1b0], 0
je 0x104cab6f
mov dword [esp + 0x30], 0x800
mov dword [esp + 0x28], 0
jmp 0x104cab91
xorps xmm0, xmm0
movlpd qword [esp + 0xb44], xmm0
mov edx, dword [esp + 0xb48]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0xb44]
mov dword [esp + 0x30], edx
cmp byte [esp + 0x17], 0
jne 0x104cabaa
mov dword [esp + 0x10], 0x8000
mov dword [esp + 0x3c], 0
jmp 0x104cabcc
xorps xmm0, xmm0
movlpd qword [esp + 0xb44], xmm0
mov edx, dword [esp + 0xb48]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0xb44]
mov dword [esp + 0x10], edx
test edi, edi
je 0x104cabdf
mov edi, 0x400000
mov dword [esp + 0x1c], 0
jmp 0x104cabfd
xorps xmm0, xmm0
movlpd qword [esp + 0xb44], xmm0
mov edx, dword [esp + 0xb48]
mov edi, dword [esp + 0xb44]
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x1bc], 0
je 0x104cac10
mov edx, 0x10000000
xor esi, esi
jmp 0x104cac2a
xorps xmm0, xmm0
movlpd qword [esp + 0xb44], xmm0
mov esi, dword [esp + 0xb48]
mov edx, dword [esp + 0xb44]
or eax, edx
or ecx, esi
or ecx, dword [esp + 0x1c]
or eax, edi
or eax, dword [esp + 0x10]
or ecx, dword [esp + 0x3c]
or eax, dword [esp + 0x30]
or ecx, dword [esp + 0x28]
or eax, dword [esp + 0x2c]
or ecx, dword [esp + 0x24]
mov edx, dword [0x10ac2e88]
mov esi, dword [0x10ac2e8c]
or edx, eax
or esi, ecx
cmp byte [0x10a780b1], 0
je 0x104cac77
mov dword [esp + 0x2c], 8
mov dword [esp + 0x28], 0
jmp 0x104cac99
xorps xmm0, xmm0
movlpd qword [esp + 0xb44], xmm0
mov eax, dword [esp + 0xb48]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xb44]
mov dword [esp + 0x2c], eax
cmp byte [0x10a78111], 0
je 0x104cacb1
mov edi, 0x20000000
mov dword [esp + 0x24], 0
jmp 0x104caccf
xorps xmm0, xmm0
movlpd qword [esp + 0xb44], xmm0
mov eax, dword [esp + 0xb48]
mov edi, dword [esp + 0xb44]
mov dword [esp + 0x24], eax
cmp byte [0x10a78121], 0
je 0x104cace5
test bl, bl
je 0x104cace5
mov eax, 0x40000000
xor ecx, ecx
jmp 0x104cacff
xorps xmm0, xmm0
movlpd qword [esp + 0xb44], xmm0
mov ecx, dword [esp + 0xb48]
mov eax, dword [esp + 0xb44]
or ecx, dword [esp + 0x24]
or eax, edi
or eax, dword [esp + 0x2c]
or ecx, dword [esp + 0x28]
or edx, eax
or esi, ecx
mov dword [0x10ac2e88], edx
mov dword [0x10ac2e8c], esi
mov edx, 0x10
mov eax, dword [ebp + 0x2c8]
mov ecx, dword [ebp + 0x214]
cmp ecx, eax
cmovae ecx, eax
mov eax, dword [ebp + 0x14c]
mov dword [0x10ac2eb0], eax
mov eax, dword [ebp + 0x158]
mov dword [0x10ac2eb4], eax
mov eax, 8
cmp ecx, eax
cmovb eax, ecx
mov ecx, edx
mov dword [0x10ac2ec0], eax
mov eax, dword [ebp + 0x1a4]
cmp eax, edx
cmovb ecx, eax
mov dword [0x10ac2ed0], ecx
mov ecx, 4
mov eax, dword [ebp + 0x1a4]
cmp eax, edx
cmovb edx, eax
mov dword [0x10ac2ed4], edx
mov edx, 0x10a7805c
mov eax, dword [ebp + 0x1cc]
cmp eax, 4
cmovb ecx, eax
xor esi, esi
mov dword [0x10ac2edc], ecx
mov ebx, dword [ebp + 0x2bc]
and ebx, dword [ebp + 0x2b8]
xor edi, edi
test dword [edx + 4], ebx
je 0x104cadb2
movzx edi, si
jmp 0x104cadc8
movzx ecx, di
mov eax, dword [ecx*8 + 0x10a7805c]
mov ecx, dword [ecx*8 + 0x10a78060]
mov dword [edx], eax
mov dword [edx + 4], ecx
inc esi
add edx, 8
cmp si, 5
jb 0x104cada8
xor ecx, ecx
mov esi, 0x10a382e8
mov dword [esp + 0x28], ecx
mov dword [esp + 0x30], esi
push ecx
mov dword [esp + 0x14], 0
call fcn.104fddc0
add esp, 4
lea ecx, [esi + 8]
test al, al
movzx eax, al
cmove ecx, esi
xor eax, 1
add eax, 1
mov dword [esp + 0x2c], eax
mov ecx, dword [ecx]
mov dword [esp + 0x24], ecx
je 0x104caed1
mov ebx, 0xc
mov dword [esp + 0x1c], ebx
nop dword [eax]
test ecx, ecx
je 0x104caeb6
mov esi, 0x10a38eec
mov edi, 7
mov eax, dword [0x10ac2c80]
lea edx, [esp + 0x8ac]
push edx
push dword [esi + 4]
push dword [esi]
push 0
push dword [esi - 4]
push ecx
push dword [ebp + 0x14]
call eax
test eax, eax
jne 0x104caea2
mov ax, word [ebx + esi - 4]
or word [esp + 0x10], ax
cmp dword [esp + 0x8c0], 1
mov ebx, dword [esi]
mov ecx, dword [esp + 0x10]
seta al
movzx edx, al
mov eax, edx
test bl, 4
je 0x104cae88
shl eax, 0xe
or eax, 0x200
or ecx, eax
mov eax, edx
mov dword [esp + 0x10], ecx
test bl, 0x30
movzx eax, ax
mov ebx, dword [esp + 0x1c]
je 0x104caea2
shl eax, 0xd
or eax, 0x8000
or ecx, eax
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x24]
add esi, 0x14
sub edi, 1
jne 0x104cae32
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
mov ecx, dword [esi + 0xc]
add ebx, 4
sub eax, 1
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x2c], eax
jne 0x104cae20
mov ecx, dword [esp + 0x28]
add esi, 0x20
mov ax, word [esp + 0x10]
mov dword [esp + 0x30], esi
mov word [ecx*2 + 0x10ac2f08], ax
inc ecx
mov dword [esp + 0x28], ecx
cmp ecx, 0x60
jb 0x104cade1
lea eax, [ebp + 0x350]
push eax
push dword [ebp + 0x14]
call dword [0x10ac2c84]
push 0
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0
push eax
push dword [ebp + 0x14]
call dword [0x10ac2c88]
push 0x6c2
lea eax, [esp + 0xb48]
push str.F:_vcpkg_2024.05.24_buildtrees_bgfx_src_bgfx_296104bfea.clean_bgfx_src_renderer_vk.cpp
push eax
call fcn.105096b0
mov ecx, dword [esp + 0x24]
push eax
push 0
lea ecx, [ecx + ecx*2]
shl ecx, 3
push ecx
push dword [0x10ac2e7c]
call fcn.104a1fb0
add esp, 0x1c
mov ebx, eax
lea eax, [esp + 0x18]
push ebx
push eax
push dword [ebp + 0x14]
call dword [0x10ac2c88]
mov edi, dword [esp + 0x18]
xor ecx, ecx
test edi, edi
je 0x104caf93
mov esi, dword [ebp + 0x1908]
mov edx, ebx
cmp esi, 0xffffffff
jne 0x104caf8b
mov eax, dword [edx]
and eax, 3
cmp al, 3
jne 0x104caf8b
mov esi, ecx
mov dword [ebp + 0x1908], ecx
inc ecx
add edx, 0x18
cmp ecx, edi
jb 0x104caf75
push 0x6e0
lea eax, [esp + 0x894]
push str.F:_vcpkg_2024.05.24_buildtrees_bgfx_src_bgfx_296104bfea.clean_bgfx_src_renderer_vk.cpp
push eax
call fcn.105096b0
push eax
push 0
push ebx
push dword [0x10ac2e7c]
call fcn.104ba140
add esp, 0x1c
cmp dword [ebp + 0x1908], 0xffffffff
je 0x104cc2e6
xor edi, edi
cmp byte [0x10a7808e], 0
je 0x104cafee
cmp byte [0x10a7808f], 0
je 0x104cafee
mov eax, dword [str.VK_LAYER_KHRONOS_validation]
mov edi, 1
mov dword [esp + 0xb44], eax
cmp byte [0x10a7809a], 0
je 0x104cb00d
cmp byte [0x10a7809b], 0
je 0x104cb00d
mov eax, dword [str.VK_LAYER_LUNARG_standard_validation]
mov dword [esp + edi*4 + 0xb44], eax
inc edi
mov al, byte [esp + 0x17]
mov dword [esp + 0x8d4], 0x10a448d8
test al, al
jne 0x104cb02b
mov dword [esp + 0x8d8], str.VK_KHR_swapchain
movzx edx, al
mov ecx, 0x10a780b1
xor edx, 1
mov esi, 9
inc edx
nop dword [eax]
mov eax, dword [ecx + 3]
cmp eax, 2
je 0x104cb064
lea eax, [eax + eax*2]
shl eax, 2
cmp byte [eax + 0x10a7808e], 0
je 0x104cb060
cmp byte [eax + 0x10a7808f], 0
jne 0x104cb064
xor al, al
jmp 0x104cb066
mov al, 1
cmp byte [ecx], 0
je 0x104cb086
cmp byte [ecx + 1], 0
je 0x104cb086
cmp byte [ecx - 1], 0
jne 0x104cb086
test al, al
je 0x104cb086
mov eax, dword [ecx - 9]
mov dword [esp + edx*4 + 0x8d4], eax
inc edx
add ecx, 0x10
sub esi, 1
jne 0x104cb040
mov eax, dword [ebp + 0x1908]
lea ebx, [ebp + 0x1904]
mov dword [esp + 0x89c], eax
lea ecx, [esp + 0x8ac]
lea eax, [esp + 0x34]
mov dword [esp + 0x34], esi
mov dword [esp + 0x8a4], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x8b0], eax
lea eax, [esp + 0x890]
mov dword [esp + 0x8bc], eax
lea eax, [esp + 0xb44]
push ebx
push dword [ebp + 4]
mov dword [esp + 0x8cc], eax
lea eax, [esp + 0x8dc]
mov dword [esp + 0x8d4], eax
lea eax, [ebp + 0x558]
push ecx
push dword [ebp + 0x14]
mov dword [esp + 0x8e0], eax
mov eax, dword [0x10ac2c8c]
mov dword [esp + 0x8a0], 2
mov dword [esp + 0x8a4], esi
mov dword [esp + 0x8a8], esi
mov dword [esp + 0x8b0], 1
mov dword [esp + 0x8bc], 3
mov dword [esp + 0x8c4], esi
mov dword [esp + 0x8c8], 1
mov dword [esp + 0x8d0], edi
mov dword [esp + 0x8d8], edx
mov dword [esp + 0x20], ebx
call eax
test eax, eax
jne 0x104cc2e6
push str.vkGetDeviceQueue
push dword [ebx]
mov dword [esp + 0x28], 3
call dword [0x10ac2c54]
push str.vkCreateFence
mov dword [0x10ac2cc0], eax
push dword [ebx]
mov dword [esp + 0x3c], eax
call dword [0x10ac2c54]
push str.vkDestroyFence
mov dword [0x10ac2cc4], eax
push dword [ebx]
mov dword [esp + 0x2c], eax
call dword [0x10ac2c54]
push str.vkCreateSemaphore
mov dword [0x10ac2cc8], eax
push dword [ebx]
mov dword [esp + 0x34], eax
call dword [0x10ac2c54]
push str.vkDestroySemaphore
mov dword [0x10ac2ccc], eax
push dword [ebx]
mov dword [esp + 0x30], eax
call dword [0x10ac2c54]
push str.vkResetFences
mov dword [0x10ac2cd0], eax
push dword [ebx]
mov dword [esp + 0x38], eax
call dword [0x10ac2c54]
push str.vkCreateCommandPool
mov dword [0x10ac2cd4], eax
push dword [ebx]
mov dword [esp + 0x44], eax
call dword [0x10ac2c54]
push str.vkDestroyCommandPool
mov dword [0x10ac2cd8], eax
push dword [ebx]
mov dword [esp + 0x24], eax
call dword [0x10ac2c54]
push str.vkResetCommandPool
mov dword [0x10ac2cdc], eax
push dword [ebx]
mov dword [esp + 0x40], eax
call dword [0x10ac2c54]
push str.vkAllocateCommandBuffers
mov dword [0x10ac2ce0], eax
push dword [ebx]
mov dword [esp + 0x20], eax
call dword [0x10ac2c54]
push str.vkFreeCommandBuffers
mov dword [0x10ac2ce4], eax
push dword [ebx]
mov dword [esp + 0x50], eax
call dword [0x10ac2c54]
push str.vkGetBufferMemoryRequirements
mov dword [0x10ac2ce8], eax
push dword [ebx]
mov dword [esp + 0x54], eax
call dword [0x10ac2c54]
push str.vkGetImageMemoryRequirements
mov dword [0x10ac2cec], eax
push dword [ebx]
mov dword [esp + 0x58], eax
call dword [0x10ac2c54]
push str.vkGetImageSubresourceLayout
mov dword [0x10ac2cf0], eax
push dword [ebx]
mov dword [esp + 0x5c], eax
call dword [0x10ac2c54]
push str.vkAllocateMemory
mov dword [0x10ac2cf4], eax
push dword [ebx]
mov dword [esp + 0x60], eax
call dword [0x10ac2c54]
push str.vkFreeMemory
mov dword [0x10ac2cf8], eax
push dword [ebx]
mov dword [esp + 0x64], eax
call dword [0x10ac2c54]
mov dword [esp + 0x60], eax
mov dword [0x10ac2cfc], eax
push str.vkCreateImage
push dword [ebx]
call dword [0x10ac2c54]
push str.vkDestroyImage
mov dword [0x10ac2d00], eax
push dword [ebx]
mov dword [esp + 0x6c], eax
call dword [0x10ac2c54]
push str.vkCreateImageView
mov dword [0x10ac2d04], eax
push dword [ebx]
mov dword [esp + 0x70], eax
call dword [0x10ac2c54]
push str.vkDestroyImageView
mov dword [0x10ac2d08], eax
push dword [ebx]
mov dword [esp + 0x74], eax
call dword [0x10ac2c54]
push str.vkCreateBuffer
mov dword [0x10ac2d0c], eax
push dword [ebx]
mov dword [esp + 0x78], eax
call dword [0x10ac2c54]
push str.vkDestroyBuffer
mov dword [0x10ac2d10], eax
push dword [ebx]
mov dword [esp + 0x7c], eax
call dword [0x10ac2c54]
push str.vkCreateFramebuffer
mov dword [0x10ac2d14], eax
push dword [ebx]
mov dword [esp + 0x80], eax
call dword [0x10ac2c54]
push str.vkDestroyFramebuffer
mov dword [0x10ac2d18], eax
push dword [ebx]
mov dword [esp + 0x84], eax
call dword [0x10ac2c54]
push str.vkCreateRenderPass
mov dword [0x10ac2d1c], eax
push dword [ebx]
mov dword [esp + 0x88], eax
call dword [0x10ac2c54]
push str.vkDestroyRenderPass
mov dword [0x10ac2d20], eax
push dword [ebx]
mov dword [esp + 0x8c], eax
call dword [0x10ac2c54]
push str.vkCreateShaderModule
mov dword [0x10ac2d24], eax
push dword [ebx]
mov dword [esp + 0x90], eax
call dword [0x10ac2c54]
push str.vkDestroyShaderModule
mov dword [0x10ac2d28], eax
push dword [ebx]
mov dword [esp + 0x94], eax
call dword [0x10ac2c54]
push str.vkCreatePipelineCache
mov dword [0x10ac2d2c], eax
push dword [ebx]
mov dword [esp + 0x98], eax
call dword [0x10ac2c54]
push str.vkDestroyPipelineCache
mov dword [0x10ac2d30], eax
push dword [ebx]
mov dword [esp + 0x9c], eax
call dword [0x10ac2c54]
push str.vkGetPipelineCacheData
mov dword [0x10ac2d34], eax
push dword [ebx]
mov dword [esp + 0xa0], eax
call dword [0x10ac2c54]
push str.vkMergePipelineCaches
mov dword [0x10ac2d38], eax
push dword [ebx]
mov dword [esp + 0xa4], eax
call dword [0x10ac2c54]
mov dword [esp + 0xa0], eax
mov dword [0x10ac2d3c], eax
push str.vkCreateGraphicsPipelines
push dword [ebx]
call dword [0x10ac2c54]
push str.vkCreateComputePipelines
mov dword [0x10ac2d40], eax
push dword [ebx]
mov dword [esp + 0xac], eax
call dword [0x10ac2c54]
push str.vkDestroyPipeline
mov dword [0x10ac2d44], eax
push dword [ebx]
mov dword [esp + 0xb0], eax
call dword [0x10ac2c54]
push str.vkCreatePipelineLayout
mov dword [0x10ac2d48], eax
push dword [ebx]
mov dword [esp + 0xb4], eax
call dword [0x10ac2c54]
push str.vkDestroyPipelineLayout
mov dword [0x10ac2d4c], eax
push dword [ebx]
mov dword [esp + 0xb8], eax
call dword [0x10ac2c54]
push str.vkCreateSampler
mov dword [0x10ac2d50], eax
push dword [ebx]
mov dword [esp + 0xbc], eax
call dword [0x10ac2c54]
push str.vkDestroySampler
mov dword [0x10ac2d54], eax
push dword [ebx]
mov dword [esp + 0xc0], eax
call dword [0x10ac2c54]
push str.vkCreateDescriptorSetLayout
mov dword [0x10ac2d58], eax
push dword [ebx]
mov dword [esp + 0xc4], eax
call dword [0x10ac2c54]
push str.vkDestroyDescriptorSetLayout
mov dword [0x10ac2d5c], eax
push dword [ebx]
mov dword [esp + 0xc8], eax
call dword [0x10ac2c54]
push str.vkCreateDescriptorPool
mov dword [0x10ac2d60], eax
push dword [ebx]
mov dword [esp + 0xcc], eax
call dword [0x10ac2c54]
push str.vkDestroyDescriptorPool
mov dword [0x10ac2d64], eax
push dword [ebx]
mov dword [esp + 0xd0], eax
call dword [0x10ac2c54]
push str.vkResetDescriptorPool
mov dword [0x10ac2d68], eax
push dword [ebx]
mov dword [esp + 0xd4], eax
call dword [0x10ac2c54]
push str.vkAllocateDescriptorSets
mov dword [0x10ac2d6c], eax
push dword [ebx]
mov dword [esp + 0xd8], eax
call dword [0x10ac2c54]
push str.vkFreeDescriptorSets
mov dword [0x10ac2d70], eax
push dword [ebx]
mov dword [esp + 0xdc], eax
call dword [0x10ac2c54]
push str.vkUpdateDescriptorSets
mov dword [0x10ac2d74], eax
push dword [ebx]
mov dword [esp + 0xe0], eax
call dword [0x10ac2c54]
push str.vkCreateQueryPool
mov dword [0x10ac2d78], eax
push dword [ebx]
mov dword [esp + 0xe4], eax
call dword [0x10ac2c54]
push str.vkDestroyQueryPool
mov dword [0x10ac2d7c], eax
push dword [ebx]
mov dword [esp + 0xe8], eax
call dword [0x10ac2c54]
push str.vkQueueSubmit
mov dword [0x10ac2d80], eax
push dword [ebx]
mov dword [esp + 0xec], eax
call dword [0x10ac2c54]
push str.vkQueueWaitIdle
mov dword [0x10ac2d84], eax
push dword [ebx]
mov dword [esp + 0xf0], eax
call dword [0x10ac2c54]
push str.vkDeviceWaitIdle
mov dword [0x10ac2d88], eax
push dword [ebx]
mov dword [esp + 0xf4], eax
call dword [0x10ac2c54]
push str.vkWaitForFences
mov dword [0x10ac2d8c], eax
push dword [ebx]
mov dword [esp + 0xf8], eax
call dword [0x10ac2c54]
push str.vkBeginCommandBuffer
mov dword [0x10ac2d90], eax
push dword [ebx]
mov dword [esp + 0xfc], eax
call dword [0x10ac2c54]
push str.vkEndCommandBuffer
mov dword [0x10ac2d94], eax
push dword [ebx]
mov dword [esp + 0x100], eax
call dword [0x10ac2c54]
push str.vkCmdPipelineBarrier
mov dword [0x10ac2d98], eax
push dword [ebx]
mov dword [esp + 0x104], eax
call dword [0x10ac2c54]
push str.vkCmdBeginRenderPass
mov dword [0x10ac2d9c], eax
push dword [ebx]
mov dword [esp + 0x108], eax
call dword [0x10ac2c54]
push str.vkCmdEndRenderPass
mov dword [0x10ac2da0], eax
push dword [ebx]
mov dword [esp + 0x10c], eax
call dword [0x10ac2c54]
push str.vkCmdSetViewport
mov dword [0x10ac2da4], eax
push dword [ebx]
mov dword [esp + 0x110], eax
call dword [0x10ac2c54]
push str.vkCmdDraw
mov dword [0x10ac2da8], eax
push dword [ebx]
mov dword [esp + 0x114], eax
call dword [0x10ac2c54]
push str.vkCmdDrawIndexed
mov dword [0x10ac2dac], eax
push dword [ebx]
mov dword [esp + 0x118], eax
call dword [0x10ac2c54]
push str.vkCmdDrawIndirect
mov dword [0x10ac2db0], eax
push dword [ebx]
mov dword [esp + 0x11c], eax
call dword [0x10ac2c54]
push str.vkCmdDrawIndexedIndirect
mov dword [0x10ac2db4], eax
push dword [ebx]
mov dword [esp + 0x120], eax
call dword [0x10ac2c54]
push str.vkCmdDispatch
mov dword [0x10ac2db8], eax
push dword [ebx]
mov dword [esp + 0x124], eax
call dword [0x10ac2c54]
push str.vkCmdDispatchIndirect
mov dword [0x10ac2dbc], eax
push dword [ebx]
mov dword [esp + 0x128], eax
call dword [0x10ac2c54]
push str.vkCmdBindPipeline
mov dword [0x10ac2dc0], eax
push dword [ebx]
mov dword [esp + 0x12c], eax
call dword [0x10ac2c54]
push str.vkCmdSetStencilReference
mov dword [0x10ac2dc4], eax
push dword [ebx]
mov dword [esp + 0x130], eax
call dword [0x10ac2c54]
push str.vkCmdSetBlendConstants
mov dword [0x10ac2dc8], eax
push dword [ebx]
mov dword [esp + 0x134], eax
call dword [0x10ac2c54]
push str.vkCmdSetScissor
mov dword [0x10ac2dcc], eax
push dword [ebx]
mov dword [esp + 0x138], eax
call dword [0x10ac2c54]
push str.vkCmdBindDescriptorSets
mov dword [0x10ac2dd0], eax
push dword [ebx]
mov dword [esp + 0x13c], eax
call dword [0x10ac2c54]
push str.vkCmdBindIndexBuffer
mov dword [0x10ac2dd4], eax
push dword [ebx]
mov dword [esp + 0x140], eax
call dword [0x10ac2c54]
push str.vkCmdBindVertexBuffers
mov dword [0x10ac2dd8], eax
push dword [ebx]
mov dword [esp + 0x144], eax
call dword [0x10ac2c54]
push str.vkCmdClearColorImage
mov dword [0x10ac2ddc], eax
push dword [ebx]
mov dword [esp + 0x148], eax
call dword [0x10ac2c54]
push str.vkCmdClearDepthStencilImage
mov dword [0x10ac2de0], eax
push dword [ebx]
mov dword [esp + 0x14c], eax
call dword [0x10ac2c54]
push str.vkCmdClearAttachments
mov dword [0x10ac2de4], eax
push dword [ebx]
mov dword [esp + 0x150], eax
call dword [0x10ac2c54]
push str.vkCmdResolveImage
mov dword [0x10ac2de8], eax
push dword [ebx]
mov dword [esp + 0x154], eax
call dword [0x10ac2c54]
push str.vkCmdCopyBuffer
mov dword [0x10ac2dec], eax
push dword [ebx]
mov dword [esp + 0x158], eax
call dword [0x10ac2c54]
push str.vkCmdCopyBufferToImage
mov dword [0x10ac2df0], eax
push dword [ebx]
mov dword [esp + 0x15c], eax
call dword [0x10ac2c54]
push str.vkCmdCopyImage
mov dword [0x10ac2df4], eax
push dword [ebx]
mov dword [esp + 0x160], eax
call dword [0x10ac2c54]
push str.vkCmdCopyImageToBuffer
mov dword [0x10ac2df8], eax
push dword [ebx]
mov dword [esp + 0x164], eax
call dword [0x10ac2c54]
push str.vkCmdBlitImage
mov dword [0x10ac2dfc], eax
push dword [ebx]
mov dword [esp + 0x168], eax
call dword [0x10ac2c54]
mov dword [esp + 0x164], eax
push str.vkCmdResetQueryPool
mov dword [0x10ac2e00], eax
push dword [ebx]
call dword [0x10ac2c54]
push str.vkCmdWriteTimestamp
mov dword [0x10ac2e04], eax
push dword [ebx]
mov dword [esp + 0x170], eax
call dword [0x10ac2c54]
push str.vkCmdBeginQuery
mov dword [0x10ac2e08], eax
push dword [ebx]
mov dword [esp + 0x174], eax
call dword [0x10ac2c54]
push str.vkCmdEndQuery
mov dword [0x10ac2e0c], eax
push dword [ebx]
mov dword [esp + 0x178], eax
call dword [0x10ac2c54]
push str.vkCmdCopyQueryPoolResults
mov dword [0x10ac2e10], eax
push dword [ebx]
mov dword [esp + 0x17c], eax
call dword [0x10ac2c54]
push str.vkMapMemory
mov dword [0x10ac2e14], eax
push dword [ebx]
mov dword [esp + 0x180], eax
call dword [0x10ac2c54]
mov ebp, eax
push str.vkUnmapMemory
mov dword [0x10ac2e18], ebp
push dword [ebx]
call dword [0x10ac2c54]
push str.vkFlushMappedMemoryRanges
mov dword [0x10ac2e1c], eax
push dword [ebx]
mov dword [esp + 0x898], eax
call dword [0x10ac2c54]
mov edi, eax
push str.vkInvalidateMappedMemoryRanges
mov dword [0x10ac2e20], edi
push dword [ebx]
call dword [0x10ac2c54]
push str.vkBindBufferMemory
mov dword [0x10ac2e24], eax
push dword [ebx]
mov dword [esp + 0xb4c], eax
call dword [0x10ac2c54]
mov esi, eax
push str.vkBindImageMemory
mov dword [0x10ac2e28], esi
push dword [ebx]
call dword [0x10ac2c54]
mov ecx, dword [0x10ac2c54]
mov ebx, eax
mov eax, dword [esp + 0x10]
push str.vkCreateSwapchainKHR
mov dword [0x10ac2e2c], ebx
push dword [eax]
call ecx
mov ecx, dword [0x10ac2c54]
mov dword [0x10ac2e30], eax
mov eax, dword [esp + 0x10]
push str.vkDestroySwapchainKHR
push dword [eax]
call ecx
mov ecx, dword [esp + 0x10]
mov dword [0x10ac2e34], eax
mov eax, dword [0x10ac2c54]
push str.vkGetSwapchainImagesKHR
push dword [ecx]
call eax
mov ecx, dword [esp + 0x10]
mov dword [0x10ac2e38], eax
mov eax, dword [0x10ac2c54]
push str.vkAcquireNextImageKHR
push dword [ecx]
call eax
mov dword [0x10ac2e3c], eax
mov eax, dword [0x10ac2c54]
mov ecx, dword [esp + 0x10]
push str.vkQueuePresentKHR
push dword [ecx]
call eax
mov ecx, dword [esp + 0x10]
mov dword [0x10ac2e40], eax
mov eax, dword [0x10ac2c54]
push str.vkSetDebugUtilsObjectNameEXT
push dword [ecx]
call eax
mov ecx, dword [esp + 0x10]
mov dword [0x10ac2e44], eax
mov eax, dword [0x10ac2c54]
push str.vkCmdBeginDebugUtilsLabelEXT
push dword [ecx]
call eax
mov ecx, dword [esp + 0x10]
mov dword [0x10ac2e48], eax
mov eax, dword [0x10ac2c54]
push str.vkCmdEndDebugUtilsLabelEXT
push dword [ecx]
call eax
mov ecx, dword [esp + 0x10]
mov dword [0x10ac2e4c], eax
mov eax, dword [0x10ac2c54]
push str.vkCmdInsertDebugUtilsLabelEXT
push dword [ecx]
call eax
mov ecx, dword [esp + 0x10]
mov dword [0x10ac2e50], eax
mov eax, dword [0x10ac2c54]
push str.vkCmdDrawIndirectCountKHR
push dword [ecx]
call eax
mov ecx, dword [esp + 0x10]
mov dword [0x10ac2e54], eax
mov eax, dword [0x10ac2c54]
push str.vkCmdDrawIndexedIndirectCountKHR
push dword [ecx]
call eax
cmp dword [esp + 0x34], 0
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x28]
mov dword [0x10ac2e58], eax
setne al
and al, cl
mov ecx, dword [esp + 0x24]
neg ecx
sbb cl, cl
and cl, al
cmp dword [esp + 0x2c], 0
setne al
and cl, al
neg edx
sbb dl, dl
and dl, cl
cmp dword [esp + 0x30], 0
mov ecx, dword [esp + 0x3c]
setne al
and dl, al
neg ecx
sbb cl, cl
and cl, dl
cmp dword [esp + 0x1c], 0
mov edx, dword [esp + 0x38]
setne al
and cl, al
neg edx
sbb dl, dl
and dl, cl
cmp dword [esp + 0x18], 0
mov ecx, dword [esp + 0x48]
setne al
and dl, al
neg ecx
sbb cl, cl
and cl, dl
cmp dword [esp + 0x4c], 0
mov edx, dword [esp + 0x50]
setne al
and cl, al
neg edx
sbb dl, dl
and dl, cl
cmp dword [esp + 0x54], 0
mov ecx, dword [esp + 0x58]
setne al
and dl, al
neg ecx
sbb cl, cl
and cl, dl
cmp dword [esp + 0x5c], 0
mov edx, dword [esp + 0x60]
setne al
and cl, al
neg edx
sbb dl, dl
and dl, cl
cmp dword [esp + 0x64], 0
mov ecx, dword [esp + 0x68]
setne al
and dl, al
neg ecx
sbb cl, cl
and cl, dl
cmp dword [esp + 0x6c], 0
mov edx, dword [esp + 0x70]
setne al
and cl, al
neg edx
sbb dl, dl
and dl, cl
cmp dword [esp + 0x74], 0
mov ecx, dword [esp + 0x78]
setne al
and dl, al
neg ecx
sbb cl, cl
and cl, dl
cmp dword [esp + 0x7c], 0
mov edx, dword [esp + 0x80]
setne al
and cl, al
neg edx
sbb dl, dl
and dl, cl
cmp dword [esp + 0x84], 0
mov ecx, dword [esp + 0x88]
setne al
and dl, al
neg ecx
sbb cl, cl
and cl, dl
cmp dword [esp + 0x8c], 0
mov edx, dword [esp + 0x90]
setne al
and cl, al
neg edx
sbb dl, dl
and dl, cl
cmp dword [esp + 0x94], 0
mov ecx, dword [esp + 0x98]
setne al
and dl, al
neg ecx
sbb cl, cl
and cl, dl
cmp dword [esp + 0x9c], 0
mov edx, dword [esp + 0xa0]
setne al
and cl, al
neg edx
sbb dl, dl
and dl, cl
cmp dword [esp + 0xa4], 0
mov ecx, dword [esp + 0xa8]
setne al
and dl, al
neg ecx
sbb cl, cl
and cl, dl
cmp dword [esp + 0xac], 0
setne al
mov edx, dword [esp + 0xb0]
and cl, al
neg edx
sbb dl, dl
and dl, cl
cmp dword [esp + 0xb4], 0
mov ecx, dword [esp + 0xb8]
setne al
and dl, al
neg ecx
sbb cl, cl
and cl, dl
cmp dword [esp + 0xbc], 0
mov edx, dword [esp + 0xc0]
setne al
and cl, al
neg edx
sbb dl, dl
and dl, cl
cmp dword [esp + 0xc4], 0
mov ecx, dword [esp + 0xc8]
setne al
and dl, al
neg ecx
sbb cl, cl
and cl, dl
cmp dword [esp + 0xcc], 0
mov edx, dword [esp + 0xd0]
setne al
and cl, al
neg edx
sbb dl, dl
and dl, cl
cmp dword [esp + 0xd4], 0
mov ecx, dword [esp + 0xd8]
setne al
and dl, al
neg ecx
sbb cl, cl
and cl, dl
cmp dword [esp + 0xdc], 0
mov edx, dword [esp + 0xe0]
setne al
and cl, al
neg edx
sbb dl, dl
and dl, cl
cmp dword [esp + 0xe4], 0
mov ecx, dword [esp + 0xe8]
setne al
and dl, al
neg ecx
sbb cl, cl
and cl, dl
cmp dword [esp + 0xec], 0
mov edx, dword [esp + 0xf0]
setne al
and cl, al
neg edx
sbb dl, dl
and dl, cl
cmp dword [esp + 0xf4], 0
mov ecx, dword [esp + 0xf8]
setne al
and dl, al
neg ecx
sbb cl, cl
and cl, dl
cmp dword [esp + 0xfc], 0
mov edx, dword [esp + 0x100]
setne al
and cl, al
neg edx
sbb dl, dl
and dl, cl
cmp dword [esp + 0x104], 0
mov ecx, dword [esp + 0x108]
setne al
and dl, al
neg ecx
sbb cl, cl
and cl, dl
cmp dword [esp + 0x10c], 0
mov edx, dword [esp + 0x110]
setne al
and cl, al
neg edx
sbb dl, dl
and dl, cl
cmp dword [esp + 0x114], 0
mov ecx, dword [esp + 0x118]
setne al
and dl, al
neg ecx
sbb cl, cl
and cl, dl
cmp dword [esp + 0x11c], 0
mov edx, dword [esp + 0x120]
setne al
and cl, al
neg edx
sbb dl, dl
and dl, cl
cmp dword [esp + 0x124], 0
mov ecx, dword [esp + 0x128]
setne al
and dl, al
neg ecx
sbb cl, cl
and cl, dl
cmp dword [esp + 0x12c], 0
mov edx, dword [esp + 0x130]
setne al
and cl, al
neg edx
sbb dl, dl
and dl, cl
cmp dword [esp + 0x134], 0
mov ecx, dword [esp + 0x138]
setne al
and dl, al
neg ecx
sbb cl, cl
and cl, dl
cmp dword [esp + 0x13c], 0
mov edx, dword [esp + 0x140]
setne al
and cl, al
neg edx
sbb dl, dl
and dl, cl
cmp dword [esp + 0x144], 0
mov ecx, dword [esp + 0x148]
setne al
and dl, al
neg ecx
sbb cl, cl
and cl, dl
cmp dword [esp + 0x14c], 0
mov edx, dword [esp + 0x150]
setne al
and cl, al
neg edx
sbb dl, dl
and dl, cl
cmp dword [esp + 0x154], 0
mov ecx, dword [esp + 0x158]
setne al
and dl, al
neg ecx
sbb cl, cl
and cl, dl
cmp dword [esp + 0x15c], 0
mov edx, dword [esp + 0x160]
setne al
and cl, al
neg edx
sbb dl, dl
and dl, cl
cmp dword [esp + 0x164], 0
setne al
mov ecx, dword [esp + 0x168]
and dl, al
neg ecx
sbb cl, cl
and cl, dl
cmp dword [esp + 0x16c], 0
mov edx, dword [esp + 0x170]
setne al
and cl, al
neg edx
sbb dl, dl
and dl, cl
cmp dword [esp + 0x174], 0
mov ecx, dword [esp + 0x178]
setne al
and dl, al
neg ecx
sbb cl, cl
and cl, dl
mov edx, dword [esp + 0x890]
test ebp, ebp
mov ebp, dword [esp + 0x40]
setne al
and cl, al
neg edx
sbb dl, dl
and dl, cl
mov ecx, dword [esp + 0xb44]
test edi, edi
setne al
and dl, al
neg ecx
sbb cl, cl
and cl, dl
test esi, esi
setne al
and cl, al
neg ebx
sbb bl, bl
test cl, bl
je 0x104cc2d1
lea edi, [ebp + 0x190c]
push edi
push 0
push dword [ebp + 0x1908]
push dword [ebp + 0x1904]
call dword [0x10ac2cc0]
mov ebx, dword [esp + 0xb60]
mov al, byte [ebx + 0x3d]
test al, al
jne 0x104cbfa3
mov eax, 3
jmp 0x104cbfa6
movzx eax, al
push eax
push dword [edi]
lea ecx, [ebp + 0xe50]
mov dword [ebp + 0xe48], eax
push dword [ebp + 0x1908]
call fcn.104c54f0
test eax, eax
jne 0x104cc2e6
lea eax, [ebp + 0x1900]
push eax
lea ecx, [ebp + 0xe50]
call fcn.104a1c80
test eax, eax
jne 0x104cc2e6
mov dword [ebp + 0xde0], eax
mov dword [ebp + 0xde4], eax
movups xmm0, xmmword [ebx + 0x2c]
mov dword [esp + 0x20], 4
movups xmmword [ebp + 0x1f5f20], xmm0
mov eax, dword [ebx + 0x3c]
mov dword [ebp + 0x1f5f30], eax
xor eax, eax
and dword [ebp + 0x1f5f2c], 0x7fffffff
mov word [ebp + 0xcd8], ax
cmp byte [esp + 0x17], al
jne 0x104cc0b7
push dword [ebx + 0x34]
lea ecx, [ebp + 0x1f5f54]
push dword [ebx + 0x30]
push eax
call fcn.104d7430
mov eax, dword [ebp + 0x1f5f58]
add eax, eax
push eax
push 0
push dword [ebp + 0x1f5f54]
call fcn.1050a0a0
add esp, 0xc
lea ecx, [ebp + 0xb58]
xor eax, eax
mov edx, 0x60
nop
mov dword [ecx], eax
lea ecx, [ecx + 4]
inc eax
sub edx, 1
jne 0x104cc060
push 0x60
push dword [ebp + 0x1f5f20]
lea ecx, [ebp + 0x638]
push dword [ebp + 0x1f5f28]
push dword [ebp + 0x1f5f24]
push dword [0x10ac31d4]
push 0xffff
call fcn.104a89c0
test eax, eax
jne 0x104cc2e6
mov eax, 0xffff
mov ecx, ebp
mov word [ebp + 0xcda], ax
inc word [ebp + 0xcd8]
call fcn.104d1fa0
mov ecx, dword [0x10ac2d64]
lea eax, [esp + 0x8ac]
mov dword [esp + 0x8a4], eax
lea eax, [ebp + 0x1910]
push eax
push dword [ebp + 4]
lea eax, [esp + 0x898]
mov dword [esp + 0x28], 5
push eax
push dword [ebp + 0x1904]
mov dword [esp + 0x8bc], 2
mov dword [esp + 0x8c0], 0xc000
mov dword [esp + 0x8c4], 0
mov dword [esp + 0x8c8], 0xc000
mov dword [esp + 0x8cc], 8
mov dword [esp + 0x8d0], 0x1800
mov dword [esp + 0x8d4], 7
mov dword [esp + 0x8d8], 0xc000
mov dword [esp + 0x8dc], 3
mov dword [esp + 0x8e0], 0xc000
mov dword [esp + 0x8a0], 0x21
mov dword [esp + 0x8a4], 0
mov dword [esp + 0x8a8], 1
mov dword [esp + 0x8ac], 0xc00
mov dword [esp + 0x8b0], 5
call ecx
test eax, eax
jne 0x104cc2ec
mov ecx, dword [0x10ac2d30]
mov dword [esp + 0xb48], eax
mov dword [esp + 0xb4c], eax
mov dword [esp + 0xb50], eax
mov dword [esp + 0xb54], eax
lea eax, [ebp + 0x1918]
push eax
push dword [ebp + 4]
lea eax, [esp + 0xb4c]
mov dword [esp + 0xb4c], 0x11
push eax
push dword [ebp + 0x1904]
call ecx
test eax, eax
jne 0x104cc2e6
xor esi, esi
cmp dword [ebp + 0xe48], esi
jbe 0x104cc21d
lea edi, [ebp + 0xde8]
nop dword [eax]
push 0xffff
push 0x80
mov ecx, edi
call fcn.104a9d40
inc esi
add edi, 0x20
cmp esi, dword [ebp + 0xe48]
jb 0x104cc200
cmp dword [0x10ac2e44], 0
mov dword [esp + 0x20], 6
jne 0x104cc238
mov dword [0x10ac2e44], method.bgfx::CallbackStub.virtual_24
cmp dword [0x10ac2e48], 0
je 0x104cc24a
cmp dword [0x10ac2e4c], 0
jne 0x104cc25e
mov dword [0x10ac2e48], method.bgfx::CallbackStub.virtual_48
mov dword [0x10ac2e4c], 0x104a45a0
cmp dword [0x10ac2e50], 0
jne 0x104cc271
mov dword [0x10ac2e50], method.bgfx::CallbackStub.virtual_48
xor esi, esi
mov edi, 0x10b13318
push esi
push str._3d
push 7
push edi
call fcn.1050b090
inc esi
add esp, 0x10
add edi, 0x100
cmp esi, 0x100
jb 0x104cc278
cmp byte [ebp + 0x636], 0
je 0x104cc2b0
lea ecx, [ebp + 0x1920]
call fcn.104ccde0
test eax, eax
jne 0x104cc2e6
lea ecx, [ebp + 0x9170]
call fcn.104c6350
test eax, eax
jne 0x104cc2df
mov eax, dword [ebp + 0x1904]
mov dword [0x10ac2e70], eax
mov al, 1
jmp 0x104cc3cc
mov esi, 3
jmp 0x104cc2f8
mov esi, 2
jmp 0x104cc2f8
mov esi, 7
jmp 0x104cc2f8
mov esi, dword [esp + 0x20]
jmp 0x104cc2f8
mov esi, 5
jmp 0x104cc2f8
mov esi, 1
lea eax, [esi - 1]
cmp eax, 6
ja case.default.0x104cc304
jmp dword [eax*4 + 0x104cc3e8]
cmp byte [ebp + 0x636], 0
je case.0x104cc304.6
lea ecx, [ebp + 0x1920]
call fcn.104de7c0
xor esi, esi
cmp dword [ebp + 0xe48], esi
jbe 0x104cc343
lea edi, [ebp + 0xde8]
nop
mov ecx, edi
call fcn.104b4a80
inc esi
add edi, 0x20
cmp esi, dword [ebp + 0xe48]
jb 0x104cc330
lea eax, [ebp + 0x1918]
push eax
call fcn.104eec80
lea eax, [ebp + 0x1910]
push eax
call fcn.104eec40
add esp, 8
lea ecx, [ebp + 0x638]
call fcn.104b4920
lea ecx, [ebp + 0xe50]
call fcn.104dd350
push dword [ebp + 4]
push dword [ebp + 0x1904]
call dword [0x10ac2c90]
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
test ecx, ecx
jne 0x104cc391
test eax, eax
je 0x104cc39f
push dword [ebp + 4]
push eax
push ecx
push dword [ebp + 0x10]
call dword [0x10ac2cb4]
push dword [ebp + 4]
push dword [ebp + 0x10]
call dword [0x10ac2c64]
push dword [ebp + 0x93a4]
call fcn.105097a0
add esp, 4
mov dword [ebp + 0x93a4], 0
mov dword [ebp + 4], 0
xor al, al
mov ecx, dword [esp + 0xb58]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.105116c0
add esp, 0xb4c
ret 4