Function at 0x2110f3c0
Capabilities:
Link many functions at runtime

Disassembly:
push ebx
push ebp
mov ebp, dword [esp + 0x10]
push esi
mov esi, eax
test esi, esi
jne 0x2110f44a
xor ebx, ebx
push 0x58
call sym.mss32.dll__AIL_mem_alloc_lock_4
mov esi, eax
test esi, esi
je 0x2110f480
push edi
push 0x58
push 0
push esi
call fcn.21136810
mov ecx, dword [esp + 0x20]
add esp, 0xc
test ebx, ebx
mov dword [esi + 0x48], ecx
mov dword [esi + 0x4c], ebp
mov dword [esi + 0x54], ebx
jne 0x2110f488
mov dword [esi + 8], sym.mss32.dll_DLSMSSOpen
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], sym.mss32.dll_DLSClose
mov dword [esi + 0x14], sym.mss32.dll_DLSLoadFile
mov dword [esi + 0x18], sym.mss32.dll_DLSLoadMemFile
mov dword [esi + 0x1c], sym.mss32.dll_DLSUnloadFile
mov dword [esi + 0x20], sym.mss32.dll_DLSUnloadAll
mov dword [esi + 0x24], sym.mss32.dll_DLSGetInfo
mov dword [esi + 0x28], sym.mss32.dll_DLSCompactMemory
mov dword [esi + 0x2c], sym.mss32.dll_DLSSetAttribute
jmp 0x2110f4fc
cmp dword [0x21165710], 0
je 0x2110f45f
mov eax, dword [0x2118b20c]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push esi
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ebx, eax
call fcn.21101090
cmp ebx, 0x20
ja 0x2110f3cf
push str.Error_loading_DLS_library.
call sym.mss32.dll__AIL_set_error_4
pop esi
pop ebp
xor eax, eax
pop ebx
ret 0x14
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x21154984
push ebx
call edi
push str.DLSOpen
push ebx
mov dword [esi + 8], eax
call edi
push 0x21154998
push ebx
mov dword [esi + 0xc], eax
call edi
push 0x211549a4
push ebx
mov dword [esi + 0x10], eax
call edi
push 0x211549b0
push ebx
mov dword [esi + 0x14], eax
call edi
push 0x211549c0
push ebx
mov dword [esi + 0x18], eax
call edi
push 0x211549d0
push ebx
mov dword [esi + 0x1c], eax
call edi
push 0x211549e0
push ebx
mov dword [esi + 0x20], eax
call edi
push 0x211549ec
push ebx
mov dword [esi + 0x24], eax
call edi
push 0x21154a00
push ebx
mov dword [esi + 0x28], eax
call edi
mov dword [esi + 0x2c], eax
cmp dword [esi + 8], 0
je 0x2110f60e
cmp dword [esp + 0x14], 0
je 0x2110f607
test ebp, ebp
je 0x2110f607
mov edi, dword [esp + 0x1c]
xor eax, eax
cmp dword [esp + 0x20], 0x10
sete al
xor edx, edx
cmp dword [esp + 0x24], 2
setne dl
sub edx, 1
and edx, 2
or eax, edx
push eax
push edi
push ebp
mov dword [esi + 0x34], eax
call sym.mss32.dll__AIL_minimum_sample_buffer_size_12
push eax
mov dword [esi + 0x38], eax
call sym.mss32.dll__AIL_mem_alloc_lock_4
test eax, eax
mov dword [esi + 0x3c], eax
je 0x2110f632
mov eax, dword [esi + 0x38]
push eax
call sym.mss32.dll__AIL_mem_alloc_lock_4
test eax, eax
mov dword [esi + 0x40], eax
jne 0x2110f576
mov ecx, dword [esi + 0x3c]
push ecx
call sym.mss32.dll__AIL_mem_free_lock_4
jmp 0x2110f632
push ebp
call sym.mss32.dll__AIL_allocate_sample_handle_4
test eax, eax
mov dword [esi + 0x44], eax
jne 0x2110f58a
push str.Unable_to_allocate_a_sample_handle.
jmp 0x2110f5e0
mov ecx, dword [esi + 0x34]
mov edx, ecx
and edx, 1
push edx
push ecx
push eax
call sym.mss32.dll__AIL_init_sample_12
mov eax, dword [esi + 0x44]
push edi
push eax
call sym.mss32.dll__AIL_set_sample_playback_rate_8
call sym.mss32.dll__AIL_unlock_mutex_0
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x34]
mov eax, dword [esp + 0x14]
push 0x2110f390
push 0x2110f380
push 0x2110f370
push esi
push ecx
push edi
push edx
mov edx, dword [esi + 8]
push eax
push 0
lea ecx, [esi + 0x30]
push ecx
call edx
test eax, eax
je 0x2110f5f9
call fcn.21101090
push str.DLSMSSOpen_call_failed.
call sym.mss32.dll__AIL_set_error_4
mov eax, dword [esi + 0x3c]
push eax
call sym.mss32.dll__AIL_mem_free_lock_4
mov ecx, dword [esi + 0x40]
push ecx
call sym.mss32.dll__AIL_mem_free_lock_4
jmp 0x2110f632
call fcn.21101090
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
ret 0x14
push str.Trying_to_use_the_MSS_DLS_library_with_a_null_driver.
jmp 0x2110f62d
mov eax, dword [esi + 0xc]
test eax, eax
je 0x2110f628
push 0
lea edx, [esi + 0x30]
push edx
call eax
test eax, eax
je 0x2110f5fe
push str.DLSOpen_call_failed.
jmp 0x2110f62d
push str.DLS_library_functions_not_found___probably_not_a_DLS_DLL.
call sym.mss32.dll__AIL_set_error_4
test ebx, ebx
je 0x2110f63d
push ebx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push esi
call sym.mss32.dll__AIL_mem_free_lock_4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret 0x14