Function at 0x18000aeec
Capabilities:
Check mutex and terminate process on windows
Check mutex on windows
Terminate process

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0xb0
mov rax, qword [0x1801563c0]
xor rax, rsp
mov qword [rsp + 0xa0], rax
xor ebp, ebp
lea r8, str.SBWTCHSINGLE
xor ecx, ecx
lea esi, [rbp + 1]
mov edi, ebp
mov edx, esi
call qword [sym.imp.KERNEL32.dll_CreateMutexW]
mov qword [0x18015f560], rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rbx, [0x18015f578]
mov rcx, rbx
cmp eax, 0xb7
jne 0x18000af62
mov r8d, dword [section..shared]
lea rdx, str._CMainMgr_:_SINGLETON_MUTEX_DETECTED_ON_OTHER_PROCESS_:_PROCESS_ID__d
call fcn.1800098e8
mov edi, esi
jmp 0x18000af97
lea rdx, str._CMainMgr_:_NO_SINGLETON_MUTEX_DETECTED
call fcn.1800098e8
mov rcx, qword [0x18015f560]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov rcx, qword [0x18015f560]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rdx, str._CMainMgr_:_MUTEX_RELEASED
mov rcx, rbx
call fcn.1800098e8
mov rcx, rbp
lea rax, str.GlobalSBWPROCEXIT
movzx eax, word [rcx + rax]
add rcx, 2
mov word [rsp + rcx + 0x1e], ax
cmp ax, bp
jne 0x18000af9a
lea r8, [rsp + 0x20]
xor edx, edx
mov ecx, 0x1f0003
call qword [sym.imp.KERNEL32.dll_OpenEventW]
mov rsi, rax
cmp rax, rbp
je 0x18000affd
lea rdx, str._CMainMgr_:_EVENT_OPENED_ON_OTHER_PROCESS
mov rcx, rbx
call fcn.1800098e8
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rdx, str._CMainMgr_:_EVENT_SET_AND_CLOSED
mov rcx, rbx
call fcn.1800098e8
cmp edi, ebp
je 0x18000b11a
lea rdx, str.CMainMgr_:_WAITING_FOR_OTHER_PROCESS_TO_EXIT
mov rcx, rbx
call fcn.1800098e8
mov rcx, qword [0x18015f560]
mov edx, 0xfa0
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov esi, 0x102
cmp eax, esi
jne 0x18000b102
lea r9, str._CMainMgr_:__SINGLETON_TIMEOUT_REACHED._KILLING_STALLED_PROCESS..._
lea r8d, [rsi + 0x3a]
lea rdx, str..MainMgr.cpp
mov rcx, rbx
call fcn.18000b1e8
mov r8d, dword [section..shared]
cmp r8d, ebp
je 0x18000b088
xor edx, edx
mov ecx, 0x100001
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rdi, rax
cmp rax, rbp
je 0x18000b088
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [section..shared], ebp
mov rcx, qword [0x18015f560]
mov edx, 0x2710
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, esi
jne 0x18000b102
lea r9, str._CMainMgr:__CANNOT_KILL_STALLED_PROCESS._Exiting.._
lea rdx, str..MainMgr.cpp
mov r8d, 0x140
mov rcx, rbx
call fcn.18000b1e8
mov rcx, qword [0x18015f560]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [0x18015f550]
cmp rcx, rbp
je 0x18000b0d9
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [0x18015f548]
mov qword [0x18015f550], rbp
cmp rcx, rbp
je 0x18000b0f2
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor ecx, ecx
mov qword [0x18015f548], rbp
call qword [sym.imp.KERNEL32.dll_ExitProcess]
mov rcx, qword [0x18015f560]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, 0x12c
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
call fcn.1800d12b0
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret