joyce8/EMBER2024-capa huggingface dataset:
Function at 0x21115d80
Capabilities:
Check mutex on windows

Disassembly:
inc word [0x2115929c]
cmp word [0x21159294], 0
push ebx
mov ebx, dword [esp + 0x14]
push ebp
mov ebp, dword [esp + 0x14]
push esi
mov esi, dword [esp + 0x14]
je 0x21115de2
cmp word [0x2115929c], 1
je 0x21115db4
cmp word [0x21159298], 0
je 0x21115de2
mov eax, dword [0x21159308]
test eax, eax
jne 0x21115de2
call fcn.21112300
test eax, eax
je 0x21115de2
mov eax, dword [esp + 0x10]
mov ecx, dword [0x2115c0bc]
push ebx
push ebp
push esi
push eax
push str.AIL_load_sample_buffer_0x_lX__ld_0x_lX__lu__r_n
push ecx
call fcn.211306e2
add esp, 0x18
mov eax, dword [0x211566c0]
test eax, eax
je 0x21115e1b
mov eax, dword [0x211592a0]
test eax, eax
jne 0x21115e12
push edi
mov edi, dword [sym.imp.KERNEL32.dll_CreateMutexA]
jmp 0x21115e00
push 0
push 0
push 0
call edi
test eax, eax
mov dword [0x211592a0], eax
je 0x21115e00
pop edi
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, esi
mov esi, dword [esp + 0x10]
push ebp
mov ecx, ebx
call fcn.2112b940
mov eax, dword [0x211566c0]
test eax, eax
pop esi
pop ebp
pop ebx
je 0x21115e42
mov edx, dword [0x211592a0]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
dec word [0x2115929c]
ret 0x10

Function at 0x21115ff0
Capabilities:
Check mutex on windows

Disassembly:
inc word [0x2115929c]
cmp word [0x21159294], 0
push ebx
mov ebx, dword [esp + 0xc]
push esi
mov esi, dword [esp + 0xc]
je 0x21116046
cmp word [0x2115929c], 1
je 0x2111601f
cmp word [0x21159298], 0
je 0x21116046
mov eax, dword [0x21159308]
test eax, eax
jne 0x21116046
call fcn.21112300
test eax, eax
je 0x21116046
mov eax, dword [0x2115c0bc]
push ebx
push esi
push str.AIL_set_sample_position_0x_lX__lu__r_n
push eax
call fcn.211306e2
add esp, 0x10
mov eax, dword [0x211566c0]
test eax, eax
je 0x2111607b
mov eax, dword [0x211592a0]
test eax, eax
jne 0x21116072
push edi
mov edi, dword [sym.imp.KERNEL32.dll_CreateMutexA]
nop
push 0
push 0
push 0
call edi
test eax, eax
mov dword [0x211592a0], eax
je 0x21116060
pop edi
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push ebx
call fcn.2112a9b0
mov eax, dword [0x211566c0]
test eax, eax
pop esi
pop ebx
je 0x21116099
mov ecx, dword [0x211592a0]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
dec word [0x2115929c]
ret 8
Function at 0x21116150
Capabilities:
Check mutex on windows

Disassembly:
inc word [0x2115929c]
cmp word [0x21159294], 0
push ebx
mov ebx, dword [esp + 0xc]
push esi
push edi
mov edi, dword [esp + 0x10]
je 0x211161a7
cmp word [0x2115929c], 1
je 0x21116180
cmp word [0x21159298], 0
je 0x211161a7
mov eax, dword [0x21159308]
test eax, eax
jne 0x211161a7
call fcn.21112300
test eax, eax
je 0x211161a7
mov eax, dword [0x2115c0bc]
push ebx
push edi
push str.AIL_register_SOB_callback_0x_lX_0x_lX__r_n
push eax
call fcn.211306e2
add esp, 0x10
mov eax, dword [0x211566c0]
test eax, eax
je 0x211161da
mov eax, dword [0x211592a0]
test eax, eax
jne 0x211161d1
mov esi, dword [sym.imp.KERNEL32.dll_CreateMutexA]
nop
push 0
push 0
push 0
call esi
test eax, eax
mov dword [0x211592a0], eax
je 0x211161c0
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test edi, edi
jne 0x211161e2
xor esi, esi
jmp 0x211161ee
mov esi, dword [edi + 0xb4]
mov dword [edi + 0xb4], ebx
mov eax, dword [0x211566c0]
test eax, eax
je 0x21116204
mov ecx, dword [0x211592a0]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp word [0x21159294], 0
je 0x21116234
cmp word [0x2115929c], 1
je 0x21116222
cmp word [0x21159298], 0
je 0x21116234
mov eax, dword [0x21159308]
test eax, eax
jne 0x21116234
push esi
call fcn.211120a0
add esp, 4
dec word [0x2115929c]
pop edi
mov eax, esi
pop esi
pop ebx
ret 8

Function at 0x21116250
Capabilities:
Check mutex on windows

Disassembly:
inc word [0x2115929c]
cmp word [0x21159294], 0
push ebx
mov ebx, dword [esp + 0xc]
push esi
push edi
mov edi, dword [esp + 0x10]
je 0x211162a7
cmp word [0x2115929c], 1
je 0x21116280
cmp word [0x21159298], 0
je 0x211162a7
mov eax, dword [0x21159308]
test eax, eax
jne 0x211162a7
call fcn.21112300
test eax, eax
je 0x211162a7
mov eax, dword [0x2115c0bc]
push ebx
push edi
push str.AIL_register_EOB_callback_0x_lX_0x_lX__r_n
push eax
call fcn.211306e2
add esp, 0x10
mov eax, dword [0x211566c0]
test eax, eax
je 0x211162da
mov eax, dword [0x211592a0]
test eax, eax
jne 0x211162d1
mov esi, dword [sym.imp.KERNEL32.dll_CreateMutexA]
nop
push 0
push 0
push 0
call esi
test eax, eax
mov dword [0x211592a0], eax
je 0x211162c0
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test edi, edi
jne 0x211162e2
xor esi, esi
jmp 0x211162ee
mov esi, dword [edi + 0xb8]
mov dword [edi + 0xb8], ebx
mov eax, dword [0x211566c0]
test eax, eax
je 0x21116304
mov ecx, dword [0x211592a0]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp word [0x21159294], 0
je 0x21116334
cmp word [0x2115929c], 1
je 0x21116322
cmp word [0x21159298], 0
je 0x21116334
mov eax, dword [0x21159308]
test eax, eax
jne 0x21116334
push esi
call fcn.211120a0
add esp, 4
dec word [0x2115929c]
pop edi
mov eax, esi
pop esi
pop ebx
ret 8
Function at 0x21116350
Capabilities:
Check mutex on windows

Disassembly:
inc word [0x2115929c]
cmp word [0x21159294], 0
push ebx
mov ebx, dword [esp + 0xc]
push esi
push edi
mov edi, dword [esp + 0x10]
je 0x211163a7
cmp word [0x2115929c], 1
je 0x21116380
cmp word [0x21159298], 0
je 0x211163a7
mov eax, dword [0x21159308]
test eax, eax
jne 0x211163a7
call fcn.21112300
test eax, eax
je 0x211163a7
mov eax, dword [0x2115c0bc]
push ebx
push edi
push str.AIL_register_EOS_callback_0x_lX_0x_lX__r_n
push eax
call fcn.211306e2
add esp, 0x10
mov eax, dword [0x211566c0]
test eax, eax
je 0x211163da
mov eax, dword [0x211592a0]
test eax, eax
jne 0x211163d1
mov esi, dword [sym.imp.KERNEL32.dll_CreateMutexA]
nop
push 0
push 0
push 0
call esi
test eax, eax
mov dword [0x211592a0], eax
je 0x211163c0
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test edi, edi
jne 0x211163e2
xor esi, esi
jmp 0x211163ee
mov esi, dword [edi + 0xbc]
mov dword [edi + 0xbc], ebx
mov eax, dword [0x211566c0]
test eax, eax
je 0x21116404
mov ecx, dword [0x211592a0]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp word [0x21159294], 0
je 0x21116434
cmp word [0x2115929c], 1
je 0x21116422
cmp word [0x21159298], 0
je 0x21116434
mov eax, dword [0x21159308]
test eax, eax
jne 0x21116434
push esi
call fcn.211120a0
add esp, 4
dec word [0x2115929c]
pop edi
mov eax, esi
pop esi
pop ebx
ret 8

Function at 0x21116450
Capabilities:
Check mutex on windows

Disassembly:
inc word [0x2115929c]
cmp word [0x21159294], 0
push ebx
mov ebx, dword [esp + 0xc]
push esi
push edi
mov edi, dword [esp + 0x10]
je 0x211164a7
cmp word [0x2115929c], 1
je 0x21116480
cmp word [0x21159298], 0
je 0x211164a7
mov eax, dword [0x21159308]
test eax, eax
jne 0x211164a7
call fcn.21112300
test eax, eax
je 0x211164a7
mov eax, dword [0x2115c0bc]
push ebx
push edi
push str.AIL_register_EOF_callback_0x_lX_0x_lX__r_n
push eax
call fcn.211306e2
add esp, 0x10
mov eax, dword [0x211566c0]
test eax, eax
je 0x211164da
mov eax, dword [0x211592a0]
test eax, eax
jne 0x211164d1
mov esi, dword [sym.imp.KERNEL32.dll_CreateMutexA]
nop
push 0
push 0
push 0
call esi
test eax, eax
mov dword [0x211592a0], eax
je 0x211164c0
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test edi, edi
jne 0x211164e2
xor esi, esi
jmp 0x211164ee
mov esi, dword [edi + 0xe0]
mov dword [edi + 0xe0], ebx
mov eax, dword [0x211566c0]
test eax, eax
je 0x21116504
mov ecx, dword [0x211592a0]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp word [0x21159294], 0
je 0x21116534
cmp word [0x2115929c], 1
je 0x21116522
cmp word [0x21159298], 0
je 0x21116534
mov eax, dword [0x21159308]
test eax, eax
jne 0x21116534
push esi
call fcn.211120a0
add esp, 4
dec word [0x2115929c]
pop edi
mov eax, esi
pop esi
pop ebx
ret 8
Function at 0x21116670
Capabilities:
Check mutex on windows

Disassembly:
inc word [0x2115929c]
cmp word [0x21159294], 0
push esi
push edi
mov edi, dword [esp + 0xc]
je 0x211166c1
cmp word [0x2115929c], 1
je 0x2111669b
cmp word [0x21159298], 0
je 0x211166c1
mov eax, dword [0x21159308]
test eax, eax
jne 0x211166c1
call fcn.21112300
test eax, eax
je 0x211166c1
mov eax, dword [0x2115c0bc]
push edi
push str.AIL_active_sample_count_0x_lX__r_n
push eax
call fcn.211306e2
add esp, 0xc
mov eax, dword [0x211566c0]
test eax, eax
je 0x211166fa
mov eax, dword [0x211592a0]
test eax, eax
jne 0x211166f1
mov esi, dword [sym.imp.KERNEL32.dll_CreateMutexA]
lea esp, [esp]
push 0
push 0
push 0
call esi
test eax, eax
mov dword [0x211592a0], eax
je 0x211166e0
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
xor esi, esi
test edi, edi
je 0x21116725
mov ecx, dword [edi + 0x38]
test ecx, ecx
jle 0x21116725
mov eax, dword [edi + 0x34]
add eax, 8
mov edx, ecx
nop
mov ecx, dword [eax]
cmp ecx, 4
je 0x2111671c
cmp ecx, 0x10
jne 0x2111671d
inc esi
add eax, 0x2ac
dec edx
jne 0x21116710
mov eax, dword [0x211566c0]
test eax, eax
je 0x2111673b
mov ecx, dword [0x211592a0]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp word [0x21159294], 0
je 0x2111676b
cmp word [0x2115929c], 1
je 0x21116759
cmp word [0x21159298], 0
je 0x2111676b
mov eax, dword [0x21159308]
test eax, eax
jne 0x2111676b
push esi
call fcn.21112060
add esp, 4
dec word [0x2115929c]
pop edi
mov eax, esi
pop esi
ret 4

Function at 0x21116780
Capabilities:
Check mutex on windows

Disassembly:
inc word [0x2115929c]
cmp word [0x21159294], 0
push ebx
mov ebx, dword [esp + 0x10]
push ebp
mov ebp, dword [esp + 0x10]
push edi
mov edi, dword [esp + 0x1c]
je 0x211167e2
cmp word [0x2115929c], 1
je 0x211167b4
cmp word [0x21159298], 0
je 0x211167e2
mov eax, dword [0x21159308]
test eax, eax
jne 0x211167e2
call fcn.21112300
test eax, eax
je 0x211167e2
mov eax, dword [esp + 0x10]
mov ecx, dword [0x2115c0bc]
push edi
push ebx
push ebp
push eax
push str.AIL_digital_configuration_0x_lX_0x_lX_0x_lX_0xlX__r_n
push ecx
call fcn.211306e2
add esp, 0x18
mov eax, dword [0x211566c0]
test eax, eax
je 0x2111681b
mov eax, dword [0x211592a0]
test eax, eax
jne 0x21116812
push esi
mov esi, dword [sym.imp.KERNEL32.dll_CreateMutexA]
jmp 0x21116800
push 0
push 0
push 0
call esi
test eax, eax
mov dword [0x211592a0], eax
je 0x21116800
pop esi
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edx, dword [esp + 0x10]
mov ecx, ebx
mov eax, ebp
call fcn.2112f9f0
mov eax, dword [0x211566c0]
test eax, eax
pop edi
pop ebp
pop ebx
je 0x21116841
mov edx, dword [0x211592a0]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
dec word [0x2115929c]
ret 0x10
Function at 0x21116850
Capabilities:
Check mutex on windows

Disassembly:
inc word [0x2115929c]
cmp word [0x21159294], 0
push ebx
mov ebx, dword [esp + 0xc]
push ebp
mov ebp, dword [esp + 0xc]
push esi
mov esi, dword [esp + 0x18]
je 0x211168ac
cmp word [0x2115929c], 1
je 0x21116884
cmp word [0x21159298], 0
je 0x211168ac
mov eax, dword [0x21159308]
test eax, eax
jne 0x211168ac
call fcn.21112300
test eax, eax
je 0x211168ac
mov eax, dword [0x2115c0bc]
push esi
push ebx
push ebp
push str.AIL_get_DirectSound_info_0x_lX_0x_lX_0x_lX__r_n
push eax
call fcn.211306e2
add esp, 0x14
mov eax, dword [0x211566c0]
test eax, eax
je 0x211168e0
mov eax, dword [0x211592a0]
test eax, eax
jne 0x211168d7
push edi
mov edi, dword [sym.imp.KERNEL32.dll_CreateMutexA]
push 0
push 0
push 0
call edi
test eax, eax
mov dword [0x211592a0], eax
je 0x211168c5
pop edi
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [0x2115664c]
test eax, eax
jne 0x211168f2
mov ecx, ebx
mov eax, ebp
call fcn.2112d700
mov eax, dword [0x211566c0]
test eax, eax
pop esi
pop ebp
pop ebx
je 0x2111690b
mov ecx, dword [0x211592a0]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
dec word [0x2115929c]
ret 0xc

Function at 0x21116920
Capabilities:
Check mutex on windows

Disassembly:
push ebx
push ebp
mov ebp, dword [esp + 0xc]
xor ebx, ebx
inc word [0x2115929c]
cmp word [0x21159294], bx
push edi
mov edi, dword [esp + 0x14]
je 0x21116977
cmp word [0x2115929c], 1
je 0x21116950
cmp word [0x21159298], bx
je 0x21116977
mov eax, dword [0x21159308]
test eax, eax
jne 0x21116977
call fcn.21112300
test eax, eax
je 0x21116977
mov eax, dword [0x2115c0bc]
push edi
push ebp
push str.AIL_set_DirectSound_HWND_0x_lX__0x_lX__r_n
push eax
call fcn.211306e2
add esp, 0x10
mov eax, dword [0x211566c0]
test eax, eax
je 0x211169ab
mov eax, dword [0x211592a0]
test eax, eax
jne 0x211169a2
push esi
mov esi, dword [sym.imp.KERNEL32.dll_CreateMutexA]
push 0
push 0
push 0
call esi
test eax, eax
mov dword [0x211592a0], eax
je 0x21116990
pop esi
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [0x2115664c]
test eax, eax
jne 0x211169bd
mov eax, ebp
call fcn.2112d620
mov ebx, eax
mov eax, dword [0x211566c0]
test eax, eax
je 0x211169d3
mov ecx, dword [0x211592a0]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp word [0x21159294], 0
je 0x21116a03
cmp word [0x2115929c], 1
je 0x211169f1
cmp word [0x21159298], 0
je 0x21116a03
mov eax, dword [0x21159308]
test eax, eax
jne 0x21116a03
push ebx
call fcn.211120a0
add esp, 4
dec word [0x2115929c]
pop edi
pop ebp
mov eax, ebx
pop ebx
ret 8
Function at 0x21116a20
Capabilities:
Check mutex on windows

Disassembly:
inc word [0x2115929c]
cmp word [0x21159294], 0
push edi
mov edi, dword [esp + 8]
je 0x21116a70
cmp word [0x2115929c], 1
je 0x21116a4a
cmp word [0x21159298], 0
je 0x21116a70
mov eax, dword [0x21159308]
test eax, eax
jne 0x21116a70
call fcn.21112300
test eax, eax
je 0x21116a70
mov eax, dword [0x2115c0bc]
push edi
push str.AIL_open_XMIDI_driver_0x_lX__r_n
push eax
call fcn.211306e2
add esp, 0xc
mov eax, dword [0x211566c0]
test eax, eax
je 0x21116aab
mov eax, dword [0x211592a0]
test eax, eax
jne 0x21116aa2
push esi
mov esi, dword [sym.imp.KERNEL32.dll_CreateMutexA]
lea esp, [esp]
push 0
push 0
push 0
call esi
test eax, eax
mov dword [0x211592a0], eax
je 0x21116a90
pop esi
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
not edi
or edi, 0xfffffffe
push edi
push 0
lea ecx, [esp + 0x10]
push ecx
call sym.mss32.dll__AIL_midiOutOpen_12
test eax, eax
pop edi
je 0x21116aca
xor eax, eax
mov dword [esp + 4], eax
jmp 0x21116ace
mov eax, dword [esp + 4]
mov ecx, dword [0x211566c0]
test ecx, ecx
je 0x21116ae9
mov edx, dword [0x211592a0]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [esp + 4]
cmp word [0x21159294], 0
je 0x21116b1e
cmp word [0x2115929c], 1
je 0x21116b07
cmp word [0x21159298], 0
je 0x21116b1e
mov ecx, dword [0x21159308]
test ecx, ecx
jne 0x21116b1e
push eax
call fcn.211120a0
mov eax, dword [esp + 8]
add esp, 4
dec word [0x2115929c]
ret 4

Function at 0x21116b30
Capabilities:
Check mutex on windows

Disassembly:
inc word [0x2115929c]
cmp word [0x21159294], 0
push esi
mov esi, dword [esp + 8]
je 0x21116b80
cmp word [0x2115929c], 1
je 0x21116b5a
cmp word [0x21159298], 0
je 0x21116b80
mov eax, dword [0x21159308]
test eax, eax
jne 0x21116b80
call fcn.21112300
test eax, eax
je 0x21116b80
mov eax, dword [0x2115c0bc]
push esi
push str.AIL_close_XMIDI_driver_0x_lX__r_n
push eax
call fcn.211306e2
add esp, 0xc
mov eax, dword [0x211566c0]
test eax, eax
je 0x21116bbb
mov eax, dword [0x211592a0]
test eax, eax
jne 0x21116bb2
push edi
mov edi, dword [sym.imp.KERNEL32.dll_CreateMutexA]
lea esp, [esp]
push 0
push 0
push 0
call edi
test eax, eax
mov dword [0x211592a0], eax
je 0x21116ba0
pop edi
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
call fcn.211246e0
mov eax, dword [0x211566c0]
test eax, eax
pop esi
je 0x21116bd7
mov ecx, dword [0x211592a0]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
dec word [0x2115929c]
ret 4
Function at 0x21116bf0
Capabilities:
Check mutex on windows

Disassembly:
inc word [0x2115929c]
cmp word [0x21159294], 0
push ebx
mov ebx, dword [esp + 0xc]
push ebp
mov ebp, dword [esp + 0xc]
push esi
push edi
mov edi, dword [esp + 0x1c]
je 0x21116c4d
cmp word [0x2115929c], 1
je 0x21116c25
cmp word [0x21159298], 0
je 0x21116c4d
mov eax, dword [0x21159308]
test eax, eax
jne 0x21116c4d
call fcn.21112300
test eax, eax
je 0x21116c4d
mov eax, dword [0x2115c0bc]
push edi
push ebx
push ebp
push str.AIL_midiOutOpen_0x_lX__0x_lX___d__r_n
push eax
call fcn.211306e2
add esp, 0x14
mov eax, dword [0x211566c0]
test eax, eax
je 0x21116c7f
mov eax, dword [0x211592a0]
test eax, eax
jne 0x21116c76
mov esi, dword [sym.imp.KERNEL32.dll_CreateMutexA]
push 0
push 0
push 0
call esi
test eax, eax
mov dword [0x211592a0], eax
je 0x21116c65
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push ebx
push ebp
mov eax, edi
call fcn.21124b20
mov esi, eax
mov eax, dword [0x211566c0]
test eax, eax
je 0x21116ca0
mov ecx, dword [0x211592a0]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp word [0x21159294], 0
je 0x21116cd0
cmp word [0x2115929c], 1
je 0x21116cbe
cmp word [0x21159298], 0
je 0x21116cd0
mov eax, dword [0x21159308]
test eax, eax
jne 0x21116cd0
push esi
call fcn.211120a0
add esp, 4
dec word [0x2115929c]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
ret 0xc

Function at 0x21116ce0
Capabilities:
Check mutex on windows

Disassembly:
inc word [0x2115929c]
cmp word [0x21159294], 0
push esi
mov esi, dword [esp + 8]
je 0x21116d30
cmp word [0x2115929c], 1
je 0x21116d0a
cmp word [0x21159298], 0
je 0x21116d30
mov eax, dword [0x21159308]
test eax, eax
jne 0x21116d30
call fcn.21112300
test eax, eax
je 0x21116d30
mov eax, dword [0x2115c0bc]
push esi
push str.AIL_midiOutClose_0x_lX__r_n
push eax
call fcn.211306e2
add esp, 0xc
mov eax, dword [0x211566c0]
test eax, eax
je 0x21116d6b
mov eax, dword [0x211592a0]
test eax, eax
jne 0x21116d62
push edi
mov edi, dword [sym.imp.KERNEL32.dll_CreateMutexA]
lea esp, [esp]
push 0
push 0
push 0
call edi
test eax, eax
mov dword [0x211592a0], eax
je 0x21116d50
pop edi
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
call fcn.211246e0
mov eax, dword [0x211566c0]
test eax, eax
pop esi
je 0x21116d87
mov ecx, dword [0x211592a0]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
dec word [0x2115929c]
ret 4
Function at 0x21116da0
Capabilities:
Check mutex on windows

Disassembly:
inc word [0x2115929c]
cmp word [0x21159294], 0
push esi
mov esi, dword [esp + 8]
je 0x21116df0
cmp word [0x2115929c], 1
je 0x21116dca
cmp word [0x21159298], 0
je 0x21116df0
mov eax, dword [0x21159308]
test eax, eax
jne 0x21116df0
call fcn.21112300
test eax, eax
je 0x21116df0
mov eax, dword [0x2115c0bc]
push esi
push str.AIL_MIDI_handle_release_0x_lX__r_n
push eax
call fcn.211306e2
add esp, 0xc
mov eax, dword [0x211566c0]
test eax, eax
je 0x21116e2b
mov eax, dword [0x211592a0]
test eax, eax
jne 0x21116e22
push edi
mov edi, dword [sym.imp.KERNEL32.dll_CreateMutexA]
lea esp, [esp]
push 0
push 0
push 0
call edi
test eax, eax
mov dword [0x211592a0], eax
je 0x21116e10
pop edi
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
call fcn.21124910
mov esi, eax
mov eax, dword [0x211566c0]
test eax, eax
je 0x21116e48
mov ecx, dword [0x211592a0]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp word [0x21159294], 0
je 0x21116e78
cmp word [0x2115929c], 1
je 0x21116e66
cmp word [0x21159298], 0
je 0x21116e78
mov eax, dword [0x21159308]
test eax, eax
jne 0x21116e78
push esi
call fcn.21112060
add esp, 4
dec word [0x2115929c]
mov eax, esi
pop esi
ret 4

Function at 0x21116e90
Capabilities:
Check mutex on windows

Disassembly:
inc word [0x2115929c]
cmp word [0x21159294], 0
push esi
mov esi, dword [esp + 8]
je 0x21116ee0
cmp word [0x2115929c], 1
je 0x21116eba
cmp word [0x21159298], 0
je 0x21116ee0
mov eax, dword [0x21159308]
test eax, eax
jne 0x21116ee0
call fcn.21112300
test eax, eax
je 0x21116ee0
mov eax, dword [0x2115c0bc]
push esi
push str.AIL_MIDI_handle_reacquire_0x_lX__r_n
push eax
call fcn.211306e2
add esp, 0xc
mov eax, dword [0x211566c0]
test eax, eax
je 0x21116f1b
mov eax, dword [0x211592a0]
test eax, eax
jne 0x21116f12
push edi
mov edi, dword [sym.imp.KERNEL32.dll_CreateMutexA]
lea esp, [esp]
push 0
push 0
push 0
call edi
test eax, eax
mov dword [0x211592a0], eax
je 0x21116f00
pop edi
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
call fcn.21124a00
mov esi, eax
mov eax, dword [0x211566c0]
test eax, eax
je 0x21116f38
mov ecx, dword [0x211592a0]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp word [0x21159294], 0
je 0x21116f98
mov ax, word [0x2115929c]
cmp ax, 1
je 0x21116f58
cmp word [0x21159298], 0
je 0x21116fa5
mov ecx, dword [0x21159308]
test ecx, ecx
jne 0x21116fa5
mov ecx, dword [0x2115c0bc]
movzx edx, ax
mov eax, 0x21155a09
sub eax, edx
push eax
push 0x211559d8
push str._s_s
push ecx
call fcn.211306e2
mov edx, dword [0x2115c0bc]
push esi
push str.Result___lu_r_n
push edx
call fcn.211306e2
add esp, 0x1c
dec word [0x2115929c]
mov eax, esi
pop esi
ret 4
dec ax
mov word [0x2115929c], ax
mov eax, esi
pop esi
ret 4
Function at 0x21116fc0
Capabilities:
Check mutex on windows

Disassembly:
inc word [0x2115929c]
cmp word [0x21159294], 0
push esi
mov esi, dword [esp + 8]
je 0x21117010
cmp word [0x2115929c], 1
je 0x21116fea
cmp word [0x21159298], 0
je 0x21117010
mov eax, dword [0x21159308]
test eax, eax
jne 0x21117010
call fcn.21112300
test eax, eax
je 0x21117010
mov eax, dword [0x2115c0bc]
push esi
push str.AIL_allocate_sequence_handle_0x_lX__r_n
push eax
call fcn.211306e2
add esp, 0xc
mov eax, dword [0x211566c0]
test eax, eax
je 0x2111704b
mov eax, dword [0x211592a0]
test eax, eax
jne 0x21117042
push edi
mov edi, dword [sym.imp.KERNEL32.dll_CreateMutexA]
lea esp, [esp]
push 0
push 0
push 0
call edi
test eax, eax
mov dword [0x211592a0], eax
je 0x21117030
pop edi
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
call fcn.21124ec0
mov esi, eax
mov eax, dword [0x211566c0]
test eax, eax
je 0x21117068
mov ecx, dword [0x211592a0]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp word [0x21159294], 0
je 0x21117098
cmp word [0x2115929c], 1
je 0x21117086
cmp word [0x21159298], 0
je 0x21117098
mov eax, dword [0x21159308]
test eax, eax
jne 0x21117098
push esi
call fcn.211120a0
add esp, 4
dec word [0x2115929c]
mov eax, esi
pop esi
ret 4

Function at 0x211170b0
Capabilities:
Check mutex on windows

Disassembly:
inc word [0x2115929c]
cmp word [0x21159294], 0
push edi
mov edi, dword [esp + 8]
je 0x21117100
cmp word [0x2115929c], 1
je 0x211170da
cmp word [0x21159298], 0
je 0x21117100
mov eax, dword [0x21159308]
test eax, eax
jne 0x21117100
call fcn.21112300
test eax, eax
je 0x21117100
mov eax, dword [0x2115c0bc]
push edi
push str.AIL_release_sequence_handle_0x_lX__r_n
push eax
call fcn.211306e2
add esp, 0xc
mov eax, dword [0x211566c0]
test eax, eax
je 0x2111713b
mov eax, dword [0x211592a0]
test eax, eax
jne 0x21117132
push esi
mov esi, dword [sym.imp.KERNEL32.dll_CreateMutexA]
lea esp, [esp]
push 0
push 0
push 0
call esi
test eax, eax
mov dword [0x211592a0], eax
je 0x21117120
pop esi
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test edi, edi
je 0x2111714c
push edi
call sym.mss32.dll__AIL_stop_sequence_4
mov dword [edi + 8], 1
mov eax, dword [0x211566c0]
test eax, eax
pop edi
je 0x21117163
mov ecx, dword [0x211592a0]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
dec word [0x2115929c]
ret 4