Function at 0x1400ae540
Capabilities:
Check mutex on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x78
mov rdi, qword [0x1402840b0]
lea rbx, [rsp + 0x50]
mov ebp, edx
lea rdx, str.one_instance
mov r12, r8
mov r8d, 0x20
mov r15, rcx
mov r9, rbx
mov rax, qword [rdi]
mov qword [rsp + 0x68], rax
xor eax, eax
call sym.libvlccore.dll_var_Inherit
test eax, eax
jne 0x1400ae640
cmp byte [rsp + 0x50], 0
je 0x1400ae640
lea rax, str.one_instance_mode_ENABLED
mov r8, qword [str.main]
lea r14, str.system_Configure
lea r9, str._builds_videolan_vlc_extras_package_win32_.._.._.._src_win32_specific.c
xor edx, edx
mov rcx, r15
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], 0x60
call sym.libvlccore.dll_vlc_Log
xor ecx, ecx
lea r8, str.VLC_ipc_3.0.18
mov edx, 1
call qword [sym.imp.KERNEL32.dll_CreateMutexW]
test rax, rax
mov rsi, rax
je 0x1400ae700
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x1400ae690
lea rdx, str.win_msg_none
mov rcx, r15
call sym.libvlccore.dll_libvlc_InternalAddIntf
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov rax, qword [rsp + 0x68]
xor rax, qword [rdi]
jne 0x1400ae739
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rdx, str.one_instance_when_started_from_file
mov r9, rbx
mov r8d, 0x20
mov rcx, r15
call sym.libvlccore.dll_var_Inherit
test eax, eax
jne 0x1400ae617
cmp byte [rsp + 0x50], 0
je 0x1400ae617
lea rdx, str.started_from_file
mov r9, rbx
mov r8d, 0x20
mov rcx, r15
call sym.libvlccore.dll_var_Inherit
test eax, eax
jne 0x1400ae617
cmp byte [rsp + 0x50], 0
jne 0x1400ae596
jmp 0x1400ae617
mov edx, 0xffffffff
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
xor ecx, ecx
lea rdx, str.VLC_ipc_3.0.18
call qword [sym.imp.USER32.dll_FindWindowW]
test rax, rax
mov r13, rax
jne 0x1400ae73e
lea rbp, str.one_instance_mode_DISABLED__couldnt_find_1st_instance_of_program_
mov r8, qword [str.main]
lea r9, str._builds_videolan_vlc_extras_package_win32_.._.._.._src_win32_specific.c
mov rcx, r15
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], 0x81
mov qword [rsp + 0x30], rbp
mov edx, 1
call sym.libvlccore.dll_vlc_Log
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
jmp 0x1400ae617
lea r12, str.one_instance_mode_DISABLED__mutex_couldnt_be_created_
mov r8, qword [str.main]
lea r9, str._builds_videolan_vlc_extras_package_win32_.._.._.._src_win32_specific.c
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], 0x68
mov edx, 1
mov qword [rsp + 0x30], r12
mov rcx, r15
call sym.libvlccore.dll_vlc_Log
jmp 0x1400ae617
call fcn.1400c4db0
test ebp, ebp
jle 0x1400ae81b
xor edx, edx
mov r8d, 8
or r9, 0xffffffffffffffff
xor eax, eax
mov rdi, qword [r12 + rdx*8]
mov rcx, r9
add rdx, 1
repne scasb al, byte [rdi]
cmp ebp, edx
not rcx
lea r8, [r8 + rcx + 8]
jg 0x1400ae754
mov rcx, r8
call sub.msvcrt.dll_malloc
lea rdx, str.playlist_enqueue
mov dword [rax], ebp
mov r9, rbx
mov r8d, 0x20
mov rcx, r15
mov r14, rax
call sym.libvlccore.dll_var_Inherit
test eax, eax
je 0x1400ae79b
mov byte [rsp + 0x50], 0
movzx r10d, byte [rsp + 0x50]
xor r15d, r15d
xor r8d, r8d
mov dword [r14 + 4], r10d
mov r11, qword [r12 + r15*8]
xor eax, eax
or rcx, 0xffffffffffffffff
lea r9, [r8 + 8]
add r15, 1
mov rdi, r11
mov rdx, r11
repne scasb al, byte [rdi]
mov qword [rsp + 0x48], r9
mov rdi, rcx
lea rcx, [r14 + r8 + 0x10]
not rdi
mov qword [r14 + r8 + 8], rdi
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov rdx, qword [rsp + 0x48]
cmp ebp, r15d
lea r8, [rdi + rdx]
jg 0x1400ae7ab
add r8, 8
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x60], r14
mov dword [rsp + 0x58], r8d
mov r9, rbx
xor r8d, r8d
mov edx, 0x4a
mov rcx, r13
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
call qword [sym.imp.WS2_32.dll_WSACleanup]
xor ecx, ecx
call sub.msvcrt.dll_exit
nop
nop dword [rax]
nop word cs:[rax + rax]