Function at 0x211294b0
Capabilities:
Check mutex on windows
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x194
push ebx
push ebp
push esi
mov ebx, eax
push edi
xor edi, edi
cmp ebx, 4
mov ebp, ebx
jne 0x211294d0
xor ebp, ebp
jmp 0x211294d0
mov ecx, dword [esp + 0x1a8]
mov eax, ebp
imul eax, eax, 0x68
lea esi, [eax + ecx + 0x174]
cmp dword [esi], edi
mov dword [esp + 0x10], esi
je 0x2112959d
mov eax, ebp
sub eax, edi
je 0x21129550
dec eax
jne 0x2112959b
cmp dword [0x211566c0], edi
je 0x21129511
mov edx, dword [0x211592a0]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 8]
push ecx
call dword [eax + 0x28]
cmp dword [0x211566c0], edi
je 0x2112954b
mov eax, dword [0x211592a0]
cmp eax, edi
jne 0x21129542
lea esp, [esp]
push edi
push edi
push edi
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
cmp eax, edi
mov dword [0x211592a0], eax
je 0x21129530
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [esi + 0xc], edi
jmp 0x2112959b
cmp dword [0x211566c0], edi
je 0x21129565
mov edx, dword [0x211592a0]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [esi + 0x64]
push eax
call dword [esi + 0x14]
cmp dword [0x211566c0], edi
je 0x2112959b
mov eax, dword [0x211592a0]
cmp eax, edi
jne 0x21129592
lea ecx, [ecx]
push edi
push edi
push edi
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
cmp eax, edi
mov dword [0x211592a0], eax
je 0x21129580
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [esi], edi
cmp ebx, 4
jne 0x211295ac
inc ebp
cmp ebp, 3
jl 0x211294d0
mov ecx, dword [esp + 0x1ac]
cmp ecx, edi
mov ebx, dword [esi + 4]
mov dword [esp + 0x14], ebx
mov dword [esi + 4], ecx
je 0x21129aac
mov eax, ebp
sub eax, edi
je 0x2112966c
dec eax
je 0x21129617
dec eax
jne 0x21129aac
lea eax, [esp + 0x24]
push eax
push 1
push str.MSS_mixer_services
lea edx, [esi + 0xc]
push ecx
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], str.MIXER_merge
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], edi
call sym.mss32.dll_RIB_request_interface
pop edi
mov dword [esi], 1
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x194
ret 8
mov edx, dword [esp + 0x1a8]
mov eax, dword [edx + 4]
push eax
push ecx
call sym.mss32.dll__AIL_open_filter_8
mov ebp, dword [esp + 0x1a8]
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x1ac]
call fcn.211045b0
cmp eax, edi
mov dword [esi + 8], eax
mov dword [esi + 0xc], edi
je 0x2112965d
mov ecx, dword [eax + 0x24]
cmp ecx, edi
je 0x2112965d
mov edx, dword [eax + 0x40]
push ebp
push edx
call ecx
cmp eax, edi
mov dword [esi + 0xc], eax
jne 0x21129602
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x194
ret 8
add esi, 8
lea edx, [esi + 0xc]
mov dword [esp + 0x6c], edx
lea edx, [esi + 0x18]
mov dword [esp + 0x9c], edx
lea edx, [esi + 0x1c]
mov dword [esp + 0xac], edx
lea edx, [esi + 0x20]
mov dword [esp + 0xbc], edx
lea edx, [esi + 0x24]
mov dword [esp + 0xcc], edx
lea edx, [esi + 0x28]
mov dword [esp + 0xdc], edx
lea edx, [esi + 0x2c]
mov dword [esp + 0xec], edx
lea edx, [esi + 0x30]
mov dword [esp + 0xfc], edx
lea eax, [esi + 8]
lea edx, [esi + 0x34]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x10c], edx
lea eax, [esi + 4]
lea edx, [esi + 0x38]
mov dword [esp + 0x7c], eax
mov eax, 1
mov dword [esp + 0x11c], edx
lea ebx, [esi + 0x10]
lea ebp, [esi + 0x14]
lea edx, [esi + 0x3c]
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], str.ASI_stream_attribute
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], str.ASI_stream_open
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], str.ASI_stream_seek
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], str.ASI_stream_close
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], str.ASI_stream_process
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], str.ASI_stream_set_preference
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], str.Input_bit_rate
mov dword [esp + 0xa0], edi
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], str.Input_sample_rate
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], str.Input_sample_width
mov dword [esp + 0xc0], edi
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], str.Input_channels
mov dword [esp + 0xd0], edi
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], str.Output_bit_rate
mov dword [esp + 0xe0], edi
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], str.Output_sample_rate
mov dword [esp + 0xf0], edi
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], str.Output_sample_width
mov dword [esp + 0x100], edi
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], str.Output_channels
mov dword [esp + 0x110], edi
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], str.Position
mov dword [esp + 0x120], edi
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], str.Percent_done
mov dword [esp + 0x12c], edx
mov dword [esp + 0x130], edi
mov dword [esp + 0x134], eax
lea eax, [esi + 0x40]
mov dword [esp + 0x13c], eax
mov eax, 2
mov dword [esp + 0x144], eax
lea edx, [esi + 0x44]
mov dword [esp + 0x14c], edx
mov dword [esp + 0x154], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x174], eax
mov dword [esp + 0x184], eax
mov dword [esp + 0x194], eax
lea eax, [esi + 0x58]
lea edx, [esi + 0x48]
mov dword [esp + 0x15c], edx
mov dword [esp + 0x19c], eax
lea eax, [esp + 0x34]
push eax
lea edx, [esi + 0x4c]
mov dword [esp + 0x170], edx
push 0x17
lea edx, [esi + 0x50]
mov dword [esp + 0x184], edx
push str.ASI_stream
lea edx, [esi + 0x54]
push ecx
mov dword [esp + 0x148], str.Minimum_input_block_size
mov dword [esp + 0x150], edi
mov dword [esp + 0x158], str.Raw_source_sample_rate
mov dword [esp + 0x160], edi
mov dword [esp + 0x168], str.Raw_source_sample_width
mov dword [esp + 0x170], edi
mov dword [esp + 0x178], str.Raw_source_channels
mov dword [esp + 0x180], edi
mov dword [esp + 0x188], str.Requested_sample_rate
mov dword [esp + 0x190], edi
mov dword [esp + 0x198], str.Requested_sample_width
mov dword [esp + 0x19c], edx
mov dword [esp + 0x1a0], edi
mov dword [esp + 0x1a8], str.Requested_channels
mov dword [esp + 0x1b0], edi
call sym.mss32.dll_RIB_request_interface
cmp dword [0x211566c0], edi
je 0x21129989
mov ecx, dword [0x211592a0]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [esp + 0x1a8]
mov edx, dword [eax + 0x14]
push edx
push 0x2112bbc0
push eax
call dword [esi]
mov dword [esi + 0x5c], eax
cmp dword [0x211566c0], edi
je 0x211299cb
mov eax, dword [0x211592a0]
cmp eax, edi
jne 0x211299c2
push edi
push edi
push edi
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
cmp eax, edi
mov dword [0x211592a0], eax
je 0x211299b0
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [esi + 0x5c]
cmp eax, edi
jne 0x211299ea
mov eax, dword [esp + 0x10]
mov dword [eax + 4], edi
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x194
ret 8
mov edi, dword [esp + 0x1a8]
mov ecx, dword [edi + 4]
mov edx, dword [esi + 0x50]
add ecx, 0x14
push ecx
push edx
push eax
call dword [ebp]
mov eax, dword [edi + 4]
mov ecx, dword [eax + 0x18]
mov eax, dword [esi + 0x58]
shr ecx, 1
and ecx, 1
inc ecx
lea edx, [esp + 0x20]
push edx
mov dword [esp + 0x24], ecx
mov ecx, dword [esi + 0x5c]
push eax
push ecx
call dword [ebp]
mov edx, dword [edi + 4]
mov eax, dword [edx + 0x18]
and eax, 1
lea ecx, [eax*8 + 8]
mov eax, dword [esi + 0x54]
lea edx, [esp + 0x18]
push edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esi + 0x5c]
push eax
push ecx
call dword [ebp]
mov edx, dword [esi + 0x34]
mov eax, dword [esi + 0x5c]
push edx
push eax
call dword [ebx]
mov ecx, dword [esi + 0x2c]
mov edx, dword [esi + 0x5c]
push ecx
push edx
mov ebp, eax
call dword [ebx]
mov ecx, dword [esi + 0x5c]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x30]
push eax
push ecx
call dword [ebx]
mov edx, dword [esp + 0x1c]
push edx
push edi
mov esi, eax
call sym.mss32.dll__AIL_set_sample_playback_rate_8
xor eax, eax
cmp ebp, 2
jne 0x21129a90
cmp esi, 0x10
sete al
xor ecx, ecx
cmp esi, 0x10
sete cl
push eax
add ecx, ebp
push ecx
jmp 0x21129a98
cmp esi, 0x10
sete al
push eax
push eax
push edi
call sym.mss32.dll__AIL_set_sample_type_12
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov dword [edx], 1
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x194
ret 8