Function at 0x1000aa50
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, dword [ebp + 8]
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 0x20], edx
xor esi, esi
mov dword [ebp - 8], ecx
push edi
cmp dword [eax + 0x10], ebx
jbe 0x1000aca8
nop
mov eax, dword [eax + 0x14]
push dword [eax + esi*8 + 4]
push dword [eax + esi*8]
call fcn.100097a0
mov edi, eax
add esp, 8
test edi, edi
je 0x1000aa8f
mov ebx, dword [edi + 0x1c]
test ebx, ebx
jne 0x1000aaae
mov ecx, dword [ebp + 8]
inc esi
mov eax, ebx
cmp esi, dword [ecx + 0x10]
jae 0x1000aaa2
mov ecx, dword [ebp - 8]
mov eax, dword [ebp + 8]
jmp 0x1000aa70
xor edi, edi
mov ebx, eax
test eax, eax
je 0x1000aca8
cmp byte [0x10034401], 0
je 0x1000ab46
call fcn.10007950
mov dword [ebp - 0x18], eax
mov ecx, edx
sub eax, dword [0x10034bf8]
mov dword [ebp - 0x14], ecx
sbb ecx, dword [0x10034bfc]
mov byte [ebp - 1], 1
cmp ecx, 1
jb 0x1000ab19
ja 0x1000aae6
cmp eax, 0x2a05f200
jbe 0x1000ab19
push 0x10034420
push 0
push 0x100000
call dword [sym.imp.KERNEL32.dll_OpenMutexW]
test eax, eax
setne byte [ebp - 1]
test eax, eax
je 0x1000ab09
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x18]
mov dword [0x10034bf8], eax
mov eax, dword [ebp - 0x14]
mov dword [0x10034bfc], eax
push 0
push dword [0x100344a4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x1000ab31
cmp byte [ebp - 1], 0
jne 0x1000ab39
mov ecx, dword [ebp - 8]
call fcn.100098f0
cmp byte [0x10034401], 0
jne 0x1000abe3
push 0
push dword [0x100344ac]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x1000abe3
push 0x10034420
push eax
push 0x100000
call dword [sym.imp.KERNEL32.dll_OpenMutexW]
test eax, eax
setne cl
mov byte [ebp - 1], cl
test eax, eax
je 0x1000ab83
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov cl, byte [ebp - 1]
test cl, cl
je 0x1000abe3
mov eax, dword [0x100344a0]
test eax, eax
je 0x1000ab95
cmp eax, 0xffffffff
jne 0x1000ab9a
call fcn.10007190
cmp dword [edi + 0x10], 0
mov ecx, esi
mov eax, edi
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x18], eax
je 0x1000abe3
cmp dword [edi + 0x14], 0
je 0x1000abe3
mov edx, ebx
mov ebx, dword [ebp - 8]
push eax
mov ecx, ebx
call fcn.1000a080
add esp, 4
test al, al
jne 0x1000abe6
mov ecx, ebx
call fcn.100098f0
push str.vk_capture
push str._s:_vk_shtex_init_failed
mov byte [ebx + 0x14], 0
call fcn.10007830
add esp, 8
jmp 0x1000abe6
mov ebx, dword [ebp - 8]
cmp byte [0x10034401], 0
je 0x1000ac9e
mov eax, dword [0x100344a8]
mov ecx, dword [eax + 0x38]
mov edx, dword [eax + 0x3c]
mov eax, ecx
or eax, edx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x14], edx
je 0x1000ac75
call fcn.10007950
mov ecx, eax
sub eax, dword [0x10034c00]
mov dword [ebp - 0x18], eax
mov eax, edx
sbb eax, dword [0x10034c04]
mov dword [ebp - 0x1c], eax
cmp eax, dword [ebp - 0x14]
jb 0x1000ac9e
mov eax, dword [ebp - 0x10]
ja 0x1000ac34
cmp dword [ebp - 0x18], eax
jb 0x1000ac9e
mov dword [ebp - 0xc], eax
mov ebx, eax
mov eax, dword [ebp - 0x14]
shld eax, ebx, 1
add ebx, ebx
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 8]
cmp dword [ebp - 0x1c], eax
jb 0x1000ac57
ja 0x1000ac69
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0xc]
ja 0x1000ac69
mov ecx, dword [0x10034c00]
add ecx, dword [ebp - 0x10]
mov edx, dword [0x10034c04]
adc edx, dword [ebp - 0x14]
mov dword [0x10034c00], ecx
mov dword [0x10034c04], edx
mov ecx, ebx
cmp edi, dword [ebx + 0xb0]
je 0x1000ac8b
call fcn.100098f0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [ebp + 8]
lea edx, [ebx + 0x18]
push dword [ebp - 0x20]
push esi
push edi
call fcn.1000a610
add esp, 0x10
mov ecx, str.vulkan
call fcn.10007110
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret