Function at 0x40e1b0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
push ebx
push esi
mov ebx, ecx
xor ecx, ecx
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0xc], ebx
mov dword [ebp - 8], ecx
test edi, edi
je 0x40e662
mov edi, edi
mov eax, dword [edi]
cmp eax, 0x3b9dd359
jg 0x40ebf1
je 0x40eaab
cmp eax, 0x3b9c930b
jg 0x40e720
je 0x40e66d
cmp eax, 0x3b9c4cb9
jg 0x40e490
je 0x40e41e
cmp eax, 0x3b9b3762
je 0x40e40c
cmp eax, 0x3b9b75e2
je 0x40e2c0
cmp eax, 0x3b9b9908
jne 0x40f4dc
cmp dword [ebx + 0x464], 0
je case.0x40f352.1
mov edi, dword [edi + 8]
xor esi, esi
test edi, edi
je 0x40e278
mov ecx, dword [ebx + 0xae8]
mov edx, 1
shl edx, cl
cmp ecx, 0x20
sbb eax, eax
and eax, edx
dec eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0xc]
lea ebx, [ebx]
mov eax, dword [edx]
and eax, dword [ebp - 0x10]
cmp eax, dword [edx]
jne case.0x40f352.1
inc esi
add edx, 4
cmp esi, edi
jb 0x40e260
mov ecx, dword [ebp - 8]
mov eax, dword [ebp + 8]
xor esi, esi
mov edi, dword [eax + 0x18]
test edi, edi
je 0x40f4be
mov ecx, dword [ebx + 0xae8]
mov edx, 1
shl edx, cl
cmp ecx, 0x20
sbb eax, eax
and eax, edx
dec eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x1c]
mov eax, dword [edx]
and eax, dword [ebp - 0x10]
cmp eax, dword [edx]
jne case.0x40f352.1
inc esi
add edx, 4
cmp esi, edi
jb 0x40e2a6
jmp 0x40e64e
push 0x18
push str.VK_KHR_dynamic_rendering
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0xf
call fcn.004019c0
mov esi, dword [ebp - 8]
lea eax, [ebp - 0x60]
push eax
mov ecx, ebx
or esi, 0x20
call fcn.00404eb0
test eax, eax
je 0x40e306
cmp dword [ebx + 0x610], 0
mov byte [ebp + 0xb], 0
jne 0x40e30a
mov byte [ebp + 0xb], 1
mov edx, dword [ebp - 0x4c]
and esi, 0xffffffdf
mov dword [ebp - 8], esi
cmp edx, 0x10
jb 0x40e344
mov ecx, dword [ebp - 0x60]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e33a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f50c
push edx
push ecx
call fcn.004e5ccb
add esp, 8
cmp byte [ebp + 0xb], 0
jne case.0x40f352.1
xor esi, esi
cmp dword [edi + 0xc], esi
jbe 0x40e381
mov eax, dword [edi + 0x10]
mov edx, dword [eax + esi*4]
test edx, edx
je 0x40e37b
mov ecx, dword [ebx + 0x20]
test ecx, ecx
je 0x40e37b
mov eax, dword [ecx]
push 0x80
push edx
mov eax, dword [eax + 4]
call eax
test al, al
je case.0x40f352.1
inc esi
cmp esi, dword [edi + 0xc]
jb 0x40e355
mov edx, dword [edi + 0x14]
test edx, edx
je 0x40e3a4
mov ecx, dword [ebx + 0x20]
test ecx, ecx
je 0x40e3a4
mov eax, dword [ecx]
push 0x200
push edx
mov eax, dword [eax + 4]
call eax
test al, al
je case.0x40f352.1
mov edx, dword [edi + 0x18]
test edx, edx
je 0x40e3c7
mov ecx, dword [ebx + 0x20]
test ecx, ecx
je 0x40e3c7
mov eax, dword [ecx]
push 0x200
push edx
mov eax, dword [eax + 4]
call eax
test al, al
je case.0x40f352.1
mov ecx, dword [edi + 0x14]
test ecx, ecx
je 0x40e3dd
mov eax, dword [edi + 0x18]
test eax, eax
je 0x40e3dd
cmp ecx, eax
jne case.0x40f352.1
mov esi, dword [edi + 8]
test esi, esi
je 0x40e651
mov ecx, dword [ebx + 0xae8]
mov edx, 1
shl edx, cl
cmp ecx, 0x20
sbb eax, eax
and eax, edx
dec eax
and eax, esi
cmp eax, esi
jne case.0x40f352.1
jmp 0x40e651
cmp dword [ebx + 0x638], 0
je case.0x40f352.1
jmp 0x40e654
push 0x19
push str.VK_EXT_discard_rectangles
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0xf
call fcn.004019c0
lea eax, [ebp - 0x60]
mov ecx, ebx
push eax
call fcn.00404eb0
mov edx, dword [ebp - 0x4c]
mov esi, eax
cmp edx, 0x10
jb 0x40e483
mov ecx, dword [ebp - 0x60]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e479
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f50c
push edx
push ecx
call fcn.004e5ccb
add esp, 8
test esi, esi
je case.0x40f352.1
jmp 0x40e651
cmp eax, 0x3b9c5489
je 0x40e5d7
cmp eax, 0x3b9c5871
je 0x40e51f
cmp eax, 0x3b9c9309
jne 0x40f4dc
push 0x13
push str.VK_KHR_maintenance2
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0xf
call fcn.004019c0
lea eax, [ebp - 0x60]
mov ecx, ebx
push eax
call fcn.00404eb0
mov edx, dword [ebp - 0x4c]
mov esi, eax
cmp edx, 0x10
jb 0x40e512
mov ecx, dword [ebp - 0x60]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e508
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f50c
push edx
push ecx
call fcn.004e5ccb
add esp, 8
test esi, esi
je case.0x40f352.1
jmp 0x40e651
push 0x20
lea ecx, [ebp - 0x60]
call fcn.00401960
mov ecx, dword [str.VK_EXT_depth_clip_enable]
mov edi, eax
mov dword [ebp - 0x50], 0x18
mov edx, 0x811c9dc5
mov dword [ebp - 0x4c], 0x1f
mov dword [ebp - 0x60], edi
mov dword [edi], ecx
mov ecx, dword [0x518de4]
mov dword [edi + 4], ecx
mov ecx, dword [0x518de8]
mov dword [edi + 8], ecx
xor ecx, ecx
mov eax, dword [0x518dec]
mov dword [edi + 0xc], eax
mov eax, dword [0x518df0]
mov dword [edi + 0x10], eax
mov eax, dword [0x518df4]
mov dword [edi + 0x14], eax
mov byte [edi + 0x18], 0
lea esp, [esp]
movzx eax, byte [ecx + edi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, 0x18
jb 0x40e580
push edx
lea eax, [ebp - 0x60]
mov ecx, ebx
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.00404910
push 0x20
push edi
mov esi, dword [eax + 4]
call fcn.004e5ccb
add esp, 8
test esi, esi
je case.0x40f352.1
mov edi, dword [ebp + 8]
cmp dword [edi + 0xc], 0
je 0x40e651
cmp dword [ebx + 0x644], 0
je case.0x40f352.1
jmp 0x40e651
push 0x30
lea ecx, [ebp - 0x60]
call fcn.00401960
mov ebx, eax
mov dword [ebp - 0x50], 0x21
mov ecx, 8
mov dword [ebp - 0x10], ebx
mov esi, str.VK_EXT_conservative_rasterization
mov dword [ebp - 0x4c], 0x2f
mov edi, ebx
mov dword [ebp - 0x60], ebx
rep movsd dword es:[edi], dword [esi]
mov edx, 0x811c9dc5
xor ecx, ecx
movsb byte es:[edi], byte [esi]
mov byte [ebx + 0x21], 0
movzx eax, byte [ecx + ebx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, 0x21
jb 0x40e611
mov ebx, dword [ebp - 0xc]
lea eax, [ebp - 0x60]
push edx
push eax
lea eax, [ebp - 0x20]
mov ecx, ebx
push eax
call fcn.00404910
push 0x30
push dword [ebp - 0x10]
mov esi, dword [eax + 4]
call fcn.004e5ccb
add esp, 8
test esi, esi
je case.0x40f352.1
mov edi, dword [ebp + 8]
mov ecx, dword [ebp - 8]
mov edi, dword [edi + 4]
mov dword [ebp + 8], edi
test edi, edi
jne 0x40e1d0
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x20
lea ecx, [ebp - 0x60]
call fcn.00401960
mov ecx, dword [str.VK_KHR_maintenance2]
mov esi, eax
mov dword [ebp - 0x50], 0x13
mov edx, 0x811c9dc5
mov dword [ebp - 0x4c], 0x1f
mov dword [ebp - 0x60], esi
mov dword [esi], ecx
mov ecx, dword [0x5192d8]
mov dword [esi + 4], ecx
mov ecx, dword [0x5192dc]
mov dword [esi + 8], ecx
mov eax, dword [0x5192e0]
mov dword [esi + 0xc], eax
mov ax, word [0x5192e4]
mov word [esi + 0x10], ax
mov al, byte [0x5192e6]
mov byte [esi + 0x12], al
mov eax, dword [ebp - 8]
or eax, 1
mov byte [esi + 0x13], 0
mov dword [ebp - 8], eax
xor ecx, ecx
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, 0x13
jb 0x40e6d2
push edx
lea eax, [ebp - 0x60]
mov ecx, ebx
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00404910
cmp dword [eax + 4], 0
jne 0x40e707
cmp dword [ebx + 0x24], section..text
jb 0x40f4c6
push 0x20
push esi
call fcn.004e5ccb
mov ecx, dword [ebp - 8]
add esp, 8
and ecx, 0xfffffffe
mov dword [ebp - 8], ecx
jmp 0x40e654
cmp eax, 0x3b9d2b60
jg 0x40e885
je 0x40e9f5
cmp eax, 0x3b9cc5d1
je 0x40e813
cmp eax, 0x3b9cf89a
je 0x40e760
cmp eax, 0x3b9d0c22
jne 0x40f4dc
cmp dword [ebx + 0x660], 0
je case.0x40f352.1
jmp 0x40e654
push 0x17
push str.VK_EXT_sample_locations
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0xf
call fcn.004019c0
lea eax, [ebp - 0x60]
mov ecx, ebx
push eax
call fcn.00404eb0
mov edx, dword [ebp - 0x4c]
mov esi, eax
cmp edx, 0x10
jb 0x40e7c5
mov ecx, dword [ebp - 0x60]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e7bb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f50c
push edx
push ecx
call fcn.004e5ccb
add esp, 8
test esi, esi
je case.0x40f352.1
cmp dword [edi + 8], 0
je 0x40e651
cmp dword [edi + 0x20], 0
je 0x40e651
mov eax, dword [edi + 0x18]
cmp eax, dword [ebx + 0xb68]
ja case.0x40f352.1
mov eax, dword [edi + 0x1c]
cmp eax, dword [ebx + 0xb6c]
ja case.0x40f352.1
mov eax, dword [ebx + 0xb64]
test dword [edi + 0x14], eax
je case.0x40f352.1
jmp 0x40e651
push 0x1c
push str.VK_EXT_sampler_filter_minmax
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0xf
call fcn.004019c0
lea eax, [ebp - 0x60]
mov ecx, ebx
push eax
call fcn.00404eb0
mov edx, dword [ebp - 0x4c]
mov esi, eax
cmp edx, 0x10
jb 0x40e878
mov ecx, dword [ebp - 0x60]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e86e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f50c
push edx
push ecx
call fcn.004e5ccb
add esp, 8
test esi, esi
je case.0x40f352.1
jmp 0x40e651
cmp eax, 0x3b9d2b61
je 0x40e9f5
cmp eax, 0x3b9d3ee8
je 0x40e99d
cmp eax, 0x3b9db031
jne 0x40f4dc
push 0x20
lea ecx, [ebp - 0x60]
call fcn.00401960
mov ebx, eax
mov dword [ebp - 0x50], 0x1f
mov ecx, 7
mov dword [ebp - 0x10], ebx
mov esi, str.VK_EXT_vertex_attribute_divisor
mov dword [ebp - 0x4c], 0x1f
mov edi, ebx
mov dword [ebp - 0x60], ebx
rep movsd dword es:[edi], dword [esi]
mov edx, 0x811c9dc5
xor ecx, ecx
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov byte [ebx + 0x1f], 0
movzx eax, byte [ecx + ebx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, 0x1f
jb 0x40e8e2
mov ebx, dword [ebp - 0xc]
lea eax, [ebp - 0x60]
push edx
push eax
lea eax, [ebp - 0x30]
mov ecx, ebx
push eax
call fcn.00404910
push 0x20
push dword [ebp - 0x10]
mov esi, dword [eax + 4]
call fcn.004e5ccb
add esp, 8
test esi, esi
je case.0x40f352.1
mov esi, dword [ebp + 8]
xor dl, dl
xor al, al
mov byte [ebp - 2], dl
xor ecx, ecx
mov byte [ebp - 1], al
xor edi, edi
mov esi, dword [esi + 8]
test esi, esi
je 0x40e96c
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0xc]
add edx, 4
mov eax, dword [edx]
cmp eax, 1
je 0x40e957
mov byte [ebp - 1], 1
test eax, eax
jne 0x40e957
mov byte [ebp - 2], 1
mov byte [ebp - 1], 1
cmp ecx, eax
cmovb ecx, eax
add edx, 8
mov edi, ecx
sub esi, 1
jne 0x40e940
mov al, byte [ebp - 1]
mov dl, byte [ebp - 2]
cmp edi, dword [ebx + 0xa6c]
ja case.0x40f352.1
test dl, dl
je 0x40e989
cmp dword [ebx + 0x670], 0
je case.0x40f352.1
test al, al
je 0x40e64e
cmp dword [ebx + 0x66c], 0
jmp 0x40e648
mov edx, dword [edi + 8]
xor eax, eax
test edx, edx
je 0x40e654
mov ecx, dword [edi + 0xc]
lea ecx, [ecx]
or eax, dword [ecx]
lea ecx, [ecx + 4]
sub edx, 1
jne 0x40e9b0
test al, 2
je 0x40e9ca
cmp dword [ebx + 0x514], edx
je case.0x40f352.1
test al, 4
je 0x40e9db
cmp dword [ebx + 0x518], 0
je case.0x40f352.1
test al, 8
je 0x40e651
cmp dword [ebx + 0x51c], 0
je case.0x40f352.1
jmp 0x40e651
cmp dword [ebx + 0x24], section..text
jae 0x40ea43
push 0x1f
push str.VK_KHR_sampler_ycbcr_conversion
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0xf
call fcn.004019c0
mov eax, dword [ebp - 8]
mov ecx, ebx
or eax, 0x200
mov dword [ebp - 8], eax
lea eax, [ebp - 0x60]
push eax
call fcn.00404eb0
mov ecx, dword [ebp - 8]
mov byte [ebp + 0xb], 0
test eax, eax
je 0x40ea47
mov byte [ebp + 0xb], 1
test ecx, 0x200
je 0x40ea8f
mov edx, dword [ebp - 0x4c]
and ecx, 0xfffffdff
mov dword [ebp - 8], ecx
cmp edx, 0x10
jb 0x40ea8f
mov ecx, dword [ebp - 0x60]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40ea82
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f50c
push edx
push ecx
call fcn.004e5ccb
mov ecx, dword [ebp - 8]
add esp, 8
cmp byte [ebp + 0xb], 0
je case.0x40f352.1
cmp dword [ebx + 0x488], 0
je case.0x40f352.1
jmp 0x40e654
cmp dword [ebx + 0x24], 0x402000
jae 0x40eb1e
push 0x20
lea ecx, [ebp - 0x60]
call fcn.00401960
mov edi, eax
mov dword [ebp - 0x10], eax
mov ecx, 7
mov dword [ebp - 0x50], 0x1c
mov esi, str.VK_KHR_depth_stencil_resolve
mov dword [ebp - 0x4c], 0x1f
rep movsd dword es:[edi], dword [esi]
mov esi, eax
mov eax, dword [ebp - 8]
push 0x1c
or eax, 8
mov dword [ebp - 0x60], esi
push esi
push 0x811c9dc5
mov byte [esi + 0x1c], 0
mov dword [ebp - 8], eax
call fcn.00405b20
add esp, 0xc
mov ecx, ebx
push eax
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.00404910
mov ecx, dword [ebp - 8]
cmp dword [eax + 4], 0
jne 0x40eb21
mov byte [ebp - 2], 1
jmp 0x40eb25
mov esi, dword [ebp - 0x60]
mov byte [ebp - 2], 0
test cl, 8
je 0x40eb64
and ecx, 0xfffffff7
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 0x4c]
cmp ecx, 0x10
jb 0x40eb61
inc ecx
mov eax, esi
cmp ecx, 0x1000
jb 0x40eb57
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f50c
push ecx
push esi
call fcn.004e5ccb
add esp, 8
mov ecx, dword [ebp - 8]
cmp byte [ebp - 2], 0
jne case.0x40f352.1
mov edi, dword [ebp + 8]
mov esi, dword [edi + 0x10]
test esi, esi
je 0x40e654
push dword [esi + 4]
mov ecx, ebx
call fcn.0040e1b0
test al, al
je case.0x40f352.1
push dword [esi + 0xc]
mov ecx, ebx
call fcn.0040c3a0
test al, al
je case.0x40f352.1
mov eax, dword [edi + 8]
test eax, eax
je 0x40ebb3
test dword [ebx + 0xad0], eax
je case.0x40f352.1
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x40ebc6
test dword [ebx + 0xad4], ecx
je case.0x40f352.1
cmp eax, ecx
je 0x40e651
test eax, eax
je 0x40ebde
test ecx, ecx
je 0x40ebde
mov eax, dword [ebx + 0xadc]
jmp 0x40ebe4
mov eax, dword [ebx + 0xad8]
test eax, eax
je case.0x40f352.1
jmp 0x40e651
cmp eax, 0x3b9f2b18
jg 0x40f19b
je 0x40f112
cmp eax, 0x3b9e7769
jg 0x40eee4
je 0x40edf8
mov esi, eax
sub eax, 0x3b9e38e9
je 0x40e654
sub eax, 0x3e7
je 0x40eccd
sub eax, 1
jne 0x40f4de
push 0x1c
push str.VK_KHR_fragment_shading_rate
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], 0xf
call fcn.004019c0
mov eax, dword [ebp - 8]
mov ecx, ebx
or eax, 0x100
mov dword [ebp - 8], eax
lea eax, [ebp - 0x60]
push eax
call fcn.00404eb0
test eax, eax
je 0x40ec77
cmp dword [ebx + 0x588], 0
mov byte [ebp + 0xb], 0
jne 0x40ec7b
mov byte [ebp + 0xb], 1
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x4c]
and ecx, 0xfffffeff
mov dword [ebp - 8], ecx
cmp edx, 0x10
jb 0x40ecbe
mov ecx, dword [ebp - 0x60]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40ecb1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f50c
push edx
push ecx
call fcn.004e5ccb
mov ecx, dword [ebp - 8]
add esp, 8
cmp byte [ebp + 0xb], 0
jne case.0x40f352.1
jmp 0x40e654
push 0x1c
push str.VK_KHR_fragment_shading_rate
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0xf
call fcn.004019c0
mov eax, dword [ebp - 8]
mov ecx, ebx
or eax, 0x10
mov dword [ebp - 8], eax
lea eax, [ebp - 0x60]
push eax
call fcn.00404eb0
test eax, eax
je 0x40ed16
cmp dword [ebx + 0x590], 0
mov byte [ebp + 0xb], 0
jne 0x40ed1a
mov byte [ebp + 0xb], 1
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x4c]
and ecx, 0xffffffef
mov dword [ebp - 8], ecx
cmp edx, 0x10
jb 0x40ed5a
mov ecx, dword [ebp - 0x60]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40ed4d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f50c
push edx
push ecx
call fcn.004e5ccb
mov ecx, dword [ebp - 8]
add esp, 8
cmp byte [ebp + 0xb], 0
jne case.0x40f352.1
mov esi, dword [edi + 8]
test esi, esi
je 0x40e654
push dword [esi + 4]
mov ecx, ebx
call fcn.0040e1b0
test al, al
je case.0x40f352.1
push dword [esi + 0xc]
mov ecx, ebx
call fcn.0040c3a0
test al, al
je case.0x40f352.1
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 0x10]
test eax, eax
je case.0x40f352.1
test edx, edx
je case.0x40f352.1
cmp eax, dword [ebx + 0xa78]
jb case.0x40f352.1
cmp eax, dword [ebx + 0xa80]
ja case.0x40f352.1
cmp edx, dword [ebx + 0xa7c]
jb case.0x40f352.1
cmp edx, dword [ebx + 0xa84]
ja case.0x40f352.1
cmp edx, eax
mov ecx, eax
cmovb ecx, edx
cmova eax, edx
xor edx, edx
div ecx
cmp eax, dword [ebx + 0xa88]
ja case.0x40f352.1
jmp 0x40e651
cmp dword [ebx + 0x24], 0x402000
jae 0x40ee6e
push 0x30
lea ecx, [ebp - 0x60]
call fcn.00401960
mov edi, eax
mov dword [ebp - 0x10], eax
mov ecx, 9
mov dword [ebp - 0x50], 0x25
mov esi, str.VK_KHR_separate_depth_stencil_layouts
mov dword [ebp - 0x4c], 0x2f
rep movsd dword es:[edi], dword [esi]
mov edx, 0x811c9dc5
movsb byte es:[edi], byte [esi]
mov esi, eax
mov eax, dword [ebp - 8]
or eax, 4
mov dword [ebp - 0x60], esi
mov dword [ebp - 8], eax
xor ecx, ecx
mov byte [esi + 0x25], 0
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, 0x25
jb 0x40ee44
push edx
lea eax, [ebp - 0x60]
mov ecx, ebx
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00404910
cmp dword [eax + 4], 0
je 0x40ee7e
jmp 0x40ee71
mov esi, dword [ebp - 0x60]
cmp dword [ebx + 0x558], 0
mov byte [ebp - 2], 0
jne 0x40ee82
mov byte [ebp - 2], 1
mov eax, dword [ebp - 8]
test al, 4
je 0x40eec0
mov ecx, dword [ebp - 0x4c]
and eax, 0xfffffffb
mov dword [ebp - 8], eax
cmp ecx, 0x10
jb 0x40eec0
inc ecx
mov eax, esi
cmp ecx, 0x1000
jb 0x40eeb6
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f50c
push ecx
push esi
call fcn.004e5ccb
add esp, 8
cmp byte [ebp - 2], 0
jne case.0x40f352.1
mov edi, dword [ebp + 8]
mov ecx, ebx
push dword [edi + 8]
call fcn.0040c3a0
test al, al
je case.0x40f352.1
jmp 0x40e651
cmp eax, 0x3b9e776a
je 0x40f012
cmp eax, 0x3b9eaa31
je 0x40ef89
cmp eax, 0x3b9ebdb9
jne 0x40f4dc
mov eax, dword [edi + 8]
cmp eax, 1
jne 0x40ef16
cmp dword [ebx + 0x6c4], 0
jmp 0x40ef30
cmp eax, 2
jne 0x40ef24
cmp dword [ebx + 0x6c8], 0
jmp 0x40ef30
cmp eax, 3
jne 0x40ef36
cmp dword [ebx + 0x6cc], 0
je case.0x40f352.1
cmp dword [edi + 0xc], 1
jne 0x40e654
cmp eax, 1
jne 0x40ef57
cmp dword [ebx + 0x6d0], 0
je case.0x40f352.1
jmp 0x40e654
cmp eax, 2
jne 0x40ef6e
cmp dword [ebx + 0x6d4], 0
je case.0x40f352.1
jmp 0x40e654
cmp eax, 3
jne 0x40e654
cmp dword [ebx + 0x6d8], 0
je case.0x40f352.1
jmp 0x40e654
push 0x17
push str.VK_EXT_provoking_vertex
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0xf
call fcn.004019c0
lea eax, [ebp - 0x60]
mov ecx, ebx
push eax
call fcn.00404eb0
mov edx, dword [ebp - 0x4c]
mov esi, eax
cmp edx, 0x10
jb 0x40efee
mov ecx, dword [ebp - 0x60]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40efe4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f50c
push edx
push ecx
call fcn.004e5ccb
add esp, 8
test esi, esi
je case.0x40f352.1
cmp dword [edi + 8], 1
jne 0x40e651
cmp dword [ebx + 0x830], 0
je case.0x40f352.1
jmp 0x40e651
cmp dword [ebx + 0x24], 0x402000
jae 0x40f08a
push 0x30
lea ecx, [ebp - 0x60]
call fcn.00401960
mov edi, eax
mov dword [ebp - 0x10], eax
mov ecx, 9
mov dword [ebp - 0x50], 0x25
mov esi, str.VK_KHR_separate_depth_stencil_layouts
mov dword [ebp - 0x4c], 0x2f
rep movsd dword es:[edi], dword [esi]
mov edx, 0x811c9dc5
movsb byte es:[edi], byte [esi]
mov esi, eax
mov eax, dword [ebp - 8]
or eax, 2
mov dword [ebp - 0x60], esi
mov dword [ebp - 8], eax
xor ecx, ecx
mov byte [esi + 0x25], 0
mov edi, edi
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, 0x25
jb 0x40f060
push edx
lea eax, [ebp - 0x60]
mov ecx, ebx
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.00404910
cmp dword [eax + 4], 0
je 0x40f09a
jmp 0x40f08d
mov esi, dword [ebp - 0x60]
cmp dword [ebx + 0x558], 0
mov byte [ebp - 2], 0
jne 0x40f09e
mov byte [ebp - 2], 1
mov eax, dword [ebp - 8]
test al, 2
je 0x40f0dc
mov ecx, dword [ebp - 0x4c]
and eax, 0xfffffffd
mov dword [ebp - 8], eax
cmp ecx, 0x10
jb 0x40f0dc
inc ecx
mov eax, esi
cmp ecx, 0x1000
jb 0x40f0d2
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f50c
push ecx
push esi
call fcn.004e5ccb
add esp, 8
cmp byte [ebp - 2], 0
jne case.0x40f352.1
mov edi, dword [ebp + 8]
mov ecx, ebx
push dword [edi + 8]
call fcn.0040c3a0
test al, al
je case.0x40f352.1
push dword [edi + 0xc]
mov ecx, ebx
call fcn.0040c3a0
test al, al
je case.0x40f352.1
jmp 0x40e651
push 0x1a
push str.VK_EXT_custom_border_color
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0xf
call fcn.004019c0
lea eax, [ebp - 0x60]
mov ecx, ebx
push eax
call fcn.00404eb0
mov edx, dword [ebp - 0x4c]
mov esi, eax
cmp edx, 0x10
jb 0x40f177
mov ecx, dword [ebp - 0x60]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40f16d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f50c
push edx
push ecx
call fcn.004e5ccb
add esp, 8
test esi, esi
je case.0x40f352.1
cmp dword [edi + 0x18], 0
jne 0x40e651
cmp dword [ebx + 0x844], 0
je case.0x40f352.1
jmp 0x40e651
cmp eax, 0x3ba0251a
jg 0x40f371
je 0x40f30b
cmp eax, 0x3b9f36d0
je 0x40f1c9
cmp eax, 0x3b9f9490
je 0x40f26a
cmp eax, 0x3b9fac02
jne 0x40f4dc
push 0x17
push str.VK_KHR_pipeline_library
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0xf
call fcn.004019c0
mov eax, dword [ebp - 8]
mov ecx, ebx
or eax, 0x400
mov dword [ebp - 8], eax
lea eax, [ebp - 0x60]
push eax
call fcn.00404eb0
test eax, eax
je 0x40f214
cmp dword [ebx + 0x8dc], 0
mov byte [ebp + 0xb], 0
jne 0x40f218
mov byte [ebp + 0xb], 1
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x4c]
and ecx, 0xfffffbff
mov dword [ebp - 8], ecx
cmp edx, 0x10
jb 0x40f25b
mov ecx, dword [ebp - 0x60]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40f24e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f50c
push edx
push ecx
call fcn.004e5ccb
mov ecx, dword [ebp - 8]
add esp, 8
cmp byte [ebp + 0xb], 0
jne case.0x40f352.1
jmp 0x40e654
push 0x17
push str.VK_KHR_synchronization2
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0xf
call fcn.004019c0
mov eax, dword [ebp - 8]
mov ecx, ebx
or eax, 0x80
mov dword [ebp - 8], eax
lea eax, [ebp - 0x60]
push eax
call fcn.00404eb0
test eax, eax
je 0x40f2b5
cmp dword [ebx + 0x604], 0
mov byte [ebp + 0xb], 0
jne 0x40f2b9
mov byte [ebp + 0xb], 1
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x4c]
and ecx, 0xffffff7f
mov dword [ebp - 8], ecx
cmp edx, 0x10
jb 0x40f2fc
mov ecx, dword [ebp - 0x60]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40f2ef
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f50c
push edx
push ecx
call fcn.004e5ccb
mov ecx, dword [ebp - 8]
add esp, 8
cmp byte [ebp + 0xb], 0
jne case.0x40f352.1
jmp 0x40e654
cmp dword [ebx + 0x8b0], 0
je case.0x40f352.1
mov ecx, dword [ebp + 8]
xor edi, edi
mov eax, dword [ecx + 8]
mov dword [ebp - 0x10], eax
test eax, eax
je 0x40e64e
mov edx, dword [ecx + 0xc]
mov edi, edi
xor esi, esi
cmp dword [edx], esi
jbe 0x40f364
mov ecx, dword [edx + 4]
lea esp, [esp]
mov eax, dword [ecx]
cmp eax, 7
ja case.0x40f352.1
movzx eax, byte [eax + 0x40f51c]
jmp dword [eax*4 + 0x40f514]
inc esi
add ecx, 4
cmp esi, dword [edx]
jb 0x40f340
mov eax, dword [ebp - 0x10]
inc edi
add edx, 8
cmp edi, eax
jb 0x40f330
jmp 0x40e64e
cmp eax, 0x3ba034b9
je 0x40f425
mov esi, eax
cmp eax, 0x3ba09a49
jne 0x40f4de
push 0x19
push str.VK_EXT_color_write_enable
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0xf
call fcn.004019c0
mov eax, dword [ebp - 8]
mov ecx, ebx
or eax, 0x40
mov dword [ebp - 8], eax
lea eax, [ebp - 0x60]
push eax
call fcn.00404eb0
test eax, eax
je 0x40f3d2
cmp dword [ebx + 0x7a4], 0
mov byte [ebp + 0xb], 0
jne 0x40f3d6
mov byte [ebp + 0xb], 1
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x4c]
and ecx, 0xffffffbf
mov dword [ebp - 8], ecx
cmp edx, 0x10
jb 0x40f416
mov ecx, dword [ebp - 0x60]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40f409
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f50c
push edx
push ecx
call fcn.004e5ccb
mov ecx, dword [ebp - 8]
add esp, 8
cmp byte [ebp + 0xb], 0
jne case.0x40f352.1
jmp 0x40e654
push 0x19
push str.VK_EXT_depth_clip_control
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0xf
call fcn.004019c0
mov eax, dword [ebp - 8]
mov ecx, ebx
or eax, 0x800
mov dword [ebp - 8], eax
lea eax, [ebp - 0x60]
push eax
call fcn.00404eb0
test eax, eax
je 0x40f470
cmp dword [ebx + 0x8fc], 0
mov byte [ebp + 0xb], 0
jne 0x40f474
mov byte [ebp + 0xb], 1
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x4c]
and ecx, 0xfffff7ff
mov dword [ebp - 8], ecx
cmp edx, 0x10
jb 0x40f4b3
mov ecx, dword [ebp - 0x60]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40f4a6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40f50c
push edx
push ecx
call fcn.004e5ccb
mov ecx, dword [ebp - 8]
add esp, 8
cmp byte [ebp + 0xb], 0
jne case.0x40f352.1
jmp 0x40e654
mov edi, dword [ebp + 8]
jmp 0x40e654
push 0x20
push esi
call fcn.004e5ccb
add esp, 8
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov esi, eax
push 2
call fcn.004ee433
push esi
push str.Fossilize_ERROR:_Unrecognized_pNext_sType:__u._Treating_as_unsupported._n
push eax
call fcn.00401df0
push 2
call fcn.004ee433
push eax
call fcn.004ee7f0
add esp, 0x18
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 4
call fcn.004ea5cf
lea ecx, [ecx]
pop ecx
inc eax
add byte [ecx], al
cmc
inc eax
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add ah, cl
int3