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

Disassembly:
mov eax, dword [0x21152c98]
sub esp, 0xe0
push ebx
push ebp
mov ebp, dword [esp + 0xf0]
xor ebx, ebx
cmp eax, ebx
push esi
push edi
je 0x21128f68
cmp dword [eax + 0x38], ebp
jne 0x21128f61
mov ecx, dword [esp + 0xf4]
cmp dword [eax + 0x3c], ecx
je 0x211291e9
mov eax, dword [eax + 0x44]
cmp eax, ebx
jne 0x21128f4c
push 0x48
call sym.mss32.dll__AIL_mem_alloc_lock_4
mov esi, eax
cmp esi, ebx
jne 0x21128f8e
push str.Out_of_memory
call sym.mss32.dll__AIL_set_error_4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xe0
ret 8
xor eax, eax
mov ecx, 0x12
mov edi, esi
rep stosd dword es:[edi], eax
lea edx, [esi + 4]
mov dword [esp + 0x78], edx
lea edx, [esi + 0x10]
mov dword [esp + 0xa8], edx
lea eax, [esi + 8]
mov dword [esp + 0x88], eax
lea edx, [esi + 0x20]
mov dword [esp + 0xe8], edx
lea eax, [esi + 0x18]
mov dword [esp + 0xc8], eax
lea edx, [esi + 0x2c]
lea ecx, [esi + 0xc]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x38], edx
lea eax, [esi + 0x24]
lea edx, [esp + 0x60]
push edx
lea ecx, [esi + 0x1c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0xdc], ecx
lea eax, [esi + 0x30]
push 9
lea ecx, [esi + 0x28]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x30], ecx
push str.MSS_pipeline_filter
lea ecx, [esi + 0x34]
lea edi, [esi + 0x14]
push eax
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], str.PROVIDER_query_attribute
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], str.FLT_startup
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], str.FLT_error
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], str.FLT_shutdown
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], str.FLT_set_provider_preference
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], str.FLT_open_driver
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], str.FLT_close_driver
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], ebx
mov dword [esp + 0xe4], str.FLT_premix_process
mov dword [esp + 0xec], ebx
mov dword [esp + 0xf0], ebx
mov dword [esp + 0xf4], str.FLT_postmix_process
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], str.FLTSMP_open_sample
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], str.FLTSMP_close_sample
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], str.FLTSMP_sample_process
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], str.FLTSMP_sample_attribute
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], str.FLTSMP_set_sample_preference
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], ebx
call sym.mss32.dll_RIB_request_interface
test eax, eax
je 0x2112916b
push str.Not_a_filter_provider
call sym.mss32.dll__AIL_set_error_4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xe0
ret 8
mov edx, dword [esp + 0xf4]
lea ecx, [esp + 0x10]
push ecx
push 5
push str.Pipeline_filter_sample_services
push edx
call sym.mss32.dll_RIB_request_interface
cmp dword [0x2114e89c], ebx
je 0x21129198
mov eax, dword [0x2114fa38]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov ecx, dword [ebp + 0x3c]
mov edx, dword [ebp + 0x40]
push ecx
push edx
push ebp
call dword [edi]
mov dword [esi + 0x40], eax
cmp dword [0x2114e89c], ebx
je 0x211291d4
mov eax, dword [0x2114fa38]
cmp eax, ebx
jne 0x211291cb
mov edi, dword [sym.imp.KERNEL32.dll_CreateMutexA]
push ebx
push ebx
push ebx
call edi
cmp eax, ebx
mov dword [0x2114fa38], eax
je 0x211291bd
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp dword [esi + 0x40], ebx
jne 0x211291f8
push esi
call sym.mss32.dll__AIL_mem_free_lock_4
push 0x21142ed4
call sym.mss32.dll__AIL_set_error_4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xe0
ret 8
mov eax, dword [esp + 0xf4]
mov dword [esi + 0x38], ebp
mov dword [esi + 0x3c], eax
mov ecx, dword [0x21152c98]
pop edi
mov dword [esi + 0x44], ecx
mov dword [0x21152c98], esi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret 8