Function at 0x21113d30
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
mov esi, dword [ebp + 8]
test esi, esi
push edi
je 0x21113f9f
mov eax, dword [0x2114e8b4]
test eax, eax
je 0x21113f9f
mov ecx, esi
call fcn.2111e6f0
lock inc dword [0x2114faf4]
mov edi, 1
cmp dword [0x2114faf4], edi
je 0x21113d78
push edi
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [0x2114faf4], edi
jne 0x21113d69
mov eax, dword [0x2114e89c]
test eax, eax
je 0x21113da8
mov eax, dword [0x2114fa38]
test eax, eax
jne 0x21113d9f
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
test eax, eax
mov dword [0x2114fa38], eax
je 0x21113d8a
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lock inc dword [0x2114faf0]
mov eax, dword [esi + 0xc4]
test eax, eax
mov dword [esi + 0x2cc], edi
jne 0x21113dc6
mov ecx, esi
call fcn.21112ef0
mov eax, dword [esi + 0x38]
xor ebx, ebx
test eax, eax
jle 0x21113df3
xor edi, edi
mov eax, dword [esi + 0x34]
mov ecx, dword [eax + edi + 8]
add eax, edi
cmp ecx, 1
je 0x21113de5
push eax
call sym.mss32.dll__AIL_release_sample_handle_4
mov eax, dword [esi + 0x38]
inc ebx
add edi, 0x28c
cmp ebx, eax
jl 0x21113dd1
mov ecx, esi
call fcn.21128e10
mov ecx, dword [esi + 4]
push ecx
call sym.mss32.dll__AIL_release_timer_handle_4
mov ecx, dword [0x2114e8b4]
cmp esi, ecx
jne 0x21113e2c
mov eax, dword [esi + 0xcc]
test eax, eax
mov dword [0x2114e8b4], eax
jne 0x21113e56
mov edx, dword [esi + 0xc8]
push edx
push eax
call dword [sym.imp.USER32.dll_KillTimer]
jmp 0x21113e56
mov eax, dword [ecx + 0xcc]
cmp eax, esi
je 0x21113e4a
test eax, eax
je 0x21113fa6
mov ecx, eax
mov eax, dword [eax + 0xcc]
cmp eax, esi
jne 0x21113e36
mov eax, dword [eax + 0xcc]
mov dword [ecx + 0xcc], eax
mov eax, dword [0x2114e89c]
test eax, eax
je 0x21113e6c
mov ecx, dword [0x2114fa38]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [esi + 0xc4]
test eax, eax
jne 0x21113e80
mov edx, dword [esi + 0x68]
mov ecx, esi
call fcn.21112070
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x2114e89c]
test eax, eax
je 0x21113eb8
mov eax, dword [0x2114fa38]
test eax, eax
jne 0x21113eaf
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
test eax, eax
mov dword [0x2114fa38], eax
je 0x21113e9a
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [0x2114e828]
test eax, eax
je 0x21113f13
mov eax, dword [esi + 0x78]
test eax, eax
mov edi, dword [esi + 0x74]
mov dword [ebp + 8], 0
jle 0x21113f13
mov eax, dword [esi + 0xc4]
test eax, eax
jne 0x21113ee9
mov edx, dword [esi + 0x68]
push 0x20
push edi
mov ecx, esi
call fcn.21111b50
mov edx, dword [edi]
push edx
call sym.mss32.dll__AIL_mem_free_lock_4
mov eax, dword [edi + 0xc]
mov ebx, dword [eax + 4]
push eax
call sym.mss32.dll__AIL_mem_free_lock_4
push edi
call sym.mss32.dll__AIL_mem_free_lock_4
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 0x78]
inc eax
cmp eax, ecx
mov edi, ebx
mov dword [ebp + 8], eax
jl 0x21113ed2
mov eax, dword [esi + 0xc4]
test eax, eax
jne 0x21113f27
mov edx, dword [esi + 0x68]
mov ecx, esi
call fcn.21112030
mov eax, dword [0x2114e828]
test eax, eax
je 0x21113f39
mov eax, dword [esi + 0x7c]
push eax
call sym.mss32.dll__AIL_mem_free_lock_4
mov ecx, dword [esi + 0x34]
push ecx
call sym.mss32.dll__AIL_mem_free_lock_4
mov edx, dword [esi + 0x40]
push edx
call sym.mss32.dll__AIL_mem_free_lock_4
mov eax, dword [esi + 0x108]
push eax
call sym.mss32.dll__AIL_mem_free_lock_4
mov eax, dword [esi + 0x2c4]
test eax, eax
je 0x21113f6d
mov ecx, dword [esi + 0x2c0]
push ecx
call sym.mss32.dll__AIL_mem_free_lock_4
lock dec dword [0x2114faf4]
lock dec dword [0x2114faf0]
mov eax, dword [0x2114e89c]
test eax, eax
je 0x21113f91
mov edx, dword [0x2114fa38]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
push esi
call sym.mss32.dll__AIL_mem_free_lock_4
pop edi
pop esi
pop ebx
pop ebp
ret 4
lock dec dword [0x2114faf0]
pop edi
pop esi
pop ebx
pop ebp
ret 4