Function at 0x4b8724
Capabilities:
Check mutex on windows

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x2b8
mov qword [rsp + 0x130], 0xfffffffffffffffe
mov rax, qword [0x006443a8]
xor rax, rsp
mov qword [rsp + 0x2a0], rax
mov r12, rdx
mov rsi, rcx
xor r15d, r15d
mov qword [rcx], r15
mov qword [rcx + 8], r15
mov qword [rcx + 0x10], r15
mov dword [rcx + 0x18], 0xffffffff
cmp qword [rdx + 0x18], r15
sete bpl
mov cl, bpl
call fcn.004b742c
mov r14, rax
lea rbx, str.Debug::SharedDebug::SharedDebug
cmp qword [rax], r15
je 0x4b87bb
call fcn.00473e00
mov r10, qword [rax]
lea rcx, str.srp__mem__NULL__shared_memory_already_allocated_
mov qword [rsp + 0x20], rcx
mov r9, rbx
mov r8d, 0x86
lea rdx, str..SharedDebug.cpp
mov rcx, rax
call qword [r10 + reloc.OLEAUT32.dll_VariantClear]
mov qword [rsp + 0xe0], r15
mov qword [rsp + 0xe8], r15
mov qword [rsp + 0xf0], r15
mov qword [rsp + 0xf8], r15
mov qword [rsp + 0x100], r15
mov qword [rsp + 0x108], r15
lea rdx, [rsp + 0x138]
lea rcx, [rsp + 0x110]
call fcn.00502b00
cmp eax, r15d
jne 0x4b9282
lea rcx, [rsp + 0x30]
call fcn.004b7678
nop
lea r8, str.Lock
mov rdx, rax
lea rcx, [rsp + 0x278]
call fcn.0047996c
nop
cmp qword [rsp + 0x50], 0x10
jb 0x4b883e
mov rcx, qword [rsp + 0x38]
call fcn.00568830
mov ebx, reloc.OLEAUT32.dll_SafeArrayDestroy
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x48], r15
mov byte [rsp + 0x38], r15b
lea r8, [rsp + 0x280]
cmp qword [rsp + 0x298], 0x10
cmovae r8, qword [rsp + 0x280]
lea edx, [rbx - 0xe]
lea rcx, [rsp + 0x110]
call qword [sym.imp.KERNEL32.dll_CreateMutexA]
mov r13, rax
mov qword [rsp + 0xf0], rax
cmp rax, r15
jne 0x4b88c2
cmp qword [rsp + 0x298], 0x10
jb 0x4b88a5
mov rcx, qword [rsp + 0x280]
call fcn.00568830
mov qword [rsp + 0x298], rbx
mov qword [rsp + 0x290], r15
mov byte [rsp + 0x280], r15b
jmp 0x4b9282
mov r8, rax
mov rdx, qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, [rsp + 0x80]
call fcn.004e5450
nop
mov dil, 1
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4b88fb
mov dil, r15b
mov edx, 0xffffffff
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea rcx, [rsp + 0x58]
call fcn.004b7678
nop
lea r8, str.Done
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.0047996c
nop
cmp qword [rax + 0x20], 0x10
jb 0x4b8928
mov r9, qword [rax + 8]
jmp 0x4b892c
lea r9, [rax + 8]
xor edx, edx
lea r8d, [rdx + 1]
lea rcx, [rsp + 0x110]
call qword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
mov rbx, rax
mov qword [rsp + 0xf8], rax
cmp qword [rsp + 0x50], 0x10
jb 0x4b895d
mov rcx, qword [rsp + 0x38]
call fcn.00568830
mov qword [rsp + 0x50], reloc.OLEAUT32.dll_SafeArrayDestroy
mov qword [rsp + 0x48], r15
mov byte [rsp + 0x38], r15b
cmp qword [rsp + 0x78], 0x10
jb 0x4b8982
mov rcx, qword [rsp + 0x60]
call fcn.00568830
mov qword [rsp + 0x78], reloc.OLEAUT32.dll_SafeArrayDestroy
mov qword [rsp + 0x70], r15
mov byte [rsp + 0x60], r15b
cmp rbx, r15
jne 0x4b89e1
lea rcx, [rsp + 0x80]
call fcn.004e53d0
nop
cmp qword [rsp + 0x298], 0x10
jb 0x4b89c0
mov rcx, qword [rsp + 0x280]
call fcn.00568830
mov qword [rsp + 0x298], reloc.OLEAUT32.dll_SafeArrayDestroy
mov qword [rsp + 0x290], r15
mov byte [rsp + 0x280], r15b
jmp 0x4b9282
mov r8, rbx
mov rdx, qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, [rsp + 0x98]
call fcn.004e5450
nop
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rbx, str.GetLastError____ERROR_ALREADY_EXISTS__bCreator
cmp eax, 0xb7
je 0x4b8a3a
cmp dil, r15b
jne 0x4b8a3a
call fcn.00473e00
mov r10, qword [rax]
mov qword [rsp + 0x20], rbx
lea r9, str.Debug::SharedDebug::SharedDebug
mov r8d, reloc.OLEAUT32.dll_LoadRegTypeLib
lea rdx, str..SharedDebug.cpp
mov rcx, rax
call qword [r10 + reloc.OLEAUT32.dll_VariantClear]
lea rcx, [rsp + 0x30]
call fcn.004b7678
nop
lea r8, [0x005cae08]
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.0047996c
nop
cmp qword [rax + 0x20], 0x10
jb 0x4b8a67
mov rax, qword [rax + 8]
jmp 0x4b8a6b
add rax, 8
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x730
xor r9d, r9d
lea r8d, [r9 + 4]
lea rdx, [rsp + 0x110]
lea rcx, [r9 - 1]
call qword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov rbx, rax
mov qword [rsp + 0xe8], rax
cmp qword [rsp + 0x78], 0x10
jb 0x4b8aae
mov rcx, qword [rsp + 0x60]
call fcn.00568830
mov qword [rsp + 0x78], reloc.OLEAUT32.dll_SafeArrayDestroy
mov qword [rsp + 0x70], r15
mov byte [rsp + 0x60], r15b
cmp qword [rsp + 0x50], 0x10
jb 0x4b8ad3
mov rcx, qword [rsp + 0x38]
call fcn.00568830
mov qword [rsp + 0x50], reloc.OLEAUT32.dll_SafeArrayDestroy
mov qword [rsp + 0x48], r15
mov byte [rsp + 0x38], r15b
cmp rbx, r15
jne 0x4b8b40
lea rcx, [rsp + 0x98]
call fcn.004e53d0
nop
lea rcx, [rsp + 0x80]
call fcn.004e53d0
nop
cmp qword [rsp + 0x298], 0x10
jb 0x4b8b1f
mov rcx, qword [rsp + 0x280]
call fcn.00568830
mov qword [rsp + 0x298], reloc.OLEAUT32.dll_SafeArrayDestroy
mov qword [rsp + 0x290], r15
mov byte [rsp + 0x280], r15b
jmp 0x4b9282
mov r8, rbx
mov rdx, qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, [rsp + 0xb0]
call fcn.004e5450
nop
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x4b8b99
cmp dil, r15b
jne 0x4b8b99
call fcn.00473e00
mov r10, qword [rax]
lea rcx, str.GetLastError____ERROR_ALREADY_EXISTS__bCreator
mov qword [rsp + 0x20], rcx
lea r9, str.Debug::SharedDebug::SharedDebug
mov r8d, 0xa7
lea rdx, str..SharedDebug.cpp
mov rcx, rax
call qword [r10 + reloc.OLEAUT32.dll_VariantClear]
mov qword [rsp + 0x20], 0x730
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 2]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov rbx, rax
mov qword [rsp + 0xe0], rax
cmp rax, r15
jne 0x4b8c28
lea rcx, [rsp + 0xb0]
call fcn.004e53d0
nop
lea rcx, [rsp + 0x98]
call fcn.004e53d0
nop
lea rcx, [rsp + 0x80]
call fcn.004e53d0
nop
cmp qword [rsp + 0x298], 0x10
jb 0x4b8c07
mov rcx, qword [rsp + 0x280]
call fcn.00568830
mov qword [rsp + 0x298], reloc.OLEAUT32.dll_SafeArrayDestroy
mov qword [rsp + 0x290], r15
mov byte [rsp + 0x280], r15b
jmp 0x4b9282
mov r8, rax
mov rdx, qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
lea rcx, [rsp + 0xc8]
call fcn.004ed110
nop
cmp dil, r15b
je 0x4b8c70
mov edi, 0x730
mov r8, rdi
xor edx, edx
mov rcx, rbx
call fcn.0056a100
mov dword [rbx], 0x76543210
mov dword [rbx + 8], 2
mov dword [rbx + 0xc], 2
mov dword [rbx + 4], edi
jmp 0x4b8c93
cmp dword [rbx], 0x76543210
jne 0x4b9216
cmp dword [rbx + 0xc], 2
ja 0x4b9216
cmp dword [rbx + 4], 0x730
jb 0x4b9216
cmp bpl, r15b
je 0x4b8e2c
lea rcx, [rsp + 0x30]
call fcn.004b7678
nop
lea r8, str.Dumper
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.0047996c
nop
cmp qword [rax + 0x20], 0x10
jb 0x4b8cc9
mov r8, qword [rax + 8]
jmp 0x4b8ccd
lea r8, [rax + 8]
mov edx, 1
lea rcx, [rsp + 0x110]
call qword [sym.imp.KERNEL32.dll_CreateMutexA]
mov rbx, rax
mov qword [rsp + 0x100], rax
cmp qword [rsp + 0x78], 0x10
jb 0x4b8cfd
mov rcx, qword [rsp + 0x60]
call fcn.00568830
mov edi, reloc.OLEAUT32.dll_SafeArrayDestroy
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x70], r15
mov byte [rsp + 0x60], r15b
cmp qword [rsp + 0x50], 0x10
jb 0x4b8d23
mov rcx, qword [rsp + 0x38]
call fcn.00568830
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x48], r15
mov byte [rsp + 0x38], r15b
cmp rbx, r15
jne 0x4b8da4
lea rcx, [rsp + 0xc8]
call fcn.004ebae4
nop
lea rcx, [rsp + 0xb0]
call fcn.004e53d0
nop
lea rcx, [rsp + 0x98]
call fcn.004e53d0
nop
lea rcx, [rsp + 0x80]
call fcn.004e53d0
nop
cmp qword [rsp + 0x298], 0x10
jb 0x4b8d87
mov rcx, qword [rsp + 0x280]
call fcn.00568830
mov qword [rsp + 0x298], rdi
mov qword [rsp + 0x290], r15
mov byte [rsp + 0x280], r15b
jmp 0x4b9282
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4b9159
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
lea rcx, [rsp + 0xc8]
call fcn.004ebae4
nop
lea rcx, [rsp + 0xb0]
call fcn.004e53d0
nop
lea rcx, [rsp + 0x98]
call fcn.004e53d0
nop
lea rcx, [rsp + 0x80]
call fcn.004e53d0
nop
cmp qword [rsp + 0x298], 0x10
jb 0x4b8e0f
mov rcx, qword [rsp + 0x280]
call fcn.00568830
mov qword [rsp + 0x298], rdi
mov qword [rsp + 0x290], r15
mov byte [rsp + 0x280], r15b
jmp 0x4b9282
mov eax, r15d
lea rdi, [rbx + 0x238]
mov rcx, rdi
cmp dword [rcx], r15d
je 0x4b8e4c
add eax, 1
add rcx, 0x40
cmp eax, 0x14
jb 0x4b8e39
jmp 0x4b8e4f
mov dword [rsi + 0x18], eax
mov eax, dword [rsi + 0x18]
mov ebp, 0xffffffff
cmp eax, ebp
jne 0x4b8f6a
lea rdx, [rbx + 0x230]
lea rcx, [rsp + 0xe0]
call fcn.004b85bc
cmp al, r15b
je 0x4b8e91
mov eax, r15d
cmp dword [rdi], r15d
je 0x4b8e8e
add eax, 1
add rdi, 0x40
cmp eax, 0x14
jb 0x4b8e7b
jmp 0x4b8e91
mov dword [rsi + 0x18], eax
mov eax, dword [rsi + 0x18]
cmp eax, ebp
jne 0x4b8f6a
mov eax, dword [0x00646620]
shr eax, 3
test al, 1
je 0x4b8ef9
lea rax, str.Debug::SharedDebug::SharedDebug
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0xd9
lea r9, str..SharedDebug.cpp
mov edx, reloc.OLEAUT32.dll_SafeArrayGetElement
lea r8d, [rdx - 0x10]
lea rcx, [rsp + 0x160]
call fcn.00475e14
nop
lea rdx, str.Unable_to_find_free_process_entry_for_Debug_Dump_Thread
mov rcx, rax
call fcn.00475a24
nop
lea rcx, [rsp + 0x160]
call fcn.0047591c
nop
lea rcx, [rsp + 0xc8]
call fcn.004ebae4
nop
lea rcx, [rsp + 0xb0]
call fcn.004e53d0
nop
lea rcx, [rsp + 0x98]
call fcn.004e53d0
nop
lea rcx, [rsp + 0x80]
call fcn.004e53d0
nop
cmp qword [rsp + 0x298], 0x10
jb 0x4b8f49
mov rcx, qword [rsp + 0x280]
call fcn.00568830
mov qword [rsp + 0x298], reloc.OLEAUT32.dll_SafeArrayDestroy
mov qword [rsp + 0x290], r15
mov byte [rsp + 0x280], r15b
jmp 0x4b9282
mov edi, eax
shl rdi, 6
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [rdi + rbx + 0x238], eax
lea rcx, [rsp + 0x128]
call fcn.004a03b0
mov rcx, qword [rax]
mov qword [rdi + rbx + 0x230], rcx
cmp qword [r12 + 0x20], 0x10
jb 0x4b8fa4
mov r8, qword [r12 + 8]
jmp 0x4b8fa9
lea r8, [r12 + 8]
lea rcx, [rdi + rbx + 0x23c]
mov edx, 0x30
lea r9d, [rdx - 1]
call fcn.0056ef40
mov byte [rdi + rbx + 0x26b], r15b
lea rcx, [rsp + 0x30]
call fcn.004b7678
nop
mov r9d, dword [rsi + 0x18]
mov r8d, dword [rdi + rbx + 0x238]
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.004b833c
nop
cmp qword [rax + 0x20], 0x10
jb 0x4b8ff9
mov r9, qword [rax + 8]
jmp 0x4b8ffd
lea r9, [rax + 8]
xor edx, edx
lea r8d, [rdx + 1]
lea rcx, [rsp + 0x110]
call qword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
mov rbx, rax
mov qword [rsp + 0x108], rax
cmp qword [rsp + 0x78], 0x10
jb 0x4b902e
mov rcx, qword [rsp + 0x60]
call fcn.00568830
mov edi, reloc.OLEAUT32.dll_SafeArrayDestroy
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x70], r15
mov byte [rsp + 0x60], r15b
cmp qword [rsp + 0x50], 0x10
jb 0x4b9054
mov rcx, qword [rsp + 0x38]
call fcn.00568830
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x48], r15
mov byte [rsp + 0x38], r15b
cmp rbx, r15
jne 0x4b90d5
lea rcx, [rsp + 0xc8]
call fcn.004ebae4
nop
lea rcx, [rsp + 0xb0]
call fcn.004e53d0
nop
lea rcx, [rsp + 0x98]
call fcn.004e53d0
nop
lea rcx, [rsp + 0x80]
call fcn.004e53d0
nop
cmp qword [rsp + 0x298], 0x10
jb 0x4b90b8
mov rcx, qword [rsp + 0x280]
call fcn.00568830
mov qword [rsp + 0x298], rdi
mov qword [rsp + 0x290], r15
mov byte [rsp + 0x280], r15b
jmp 0x4b9282
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4b9159
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
lea rcx, [rsp + 0xc8]
call fcn.004ebae4
nop
lea rcx, [rsp + 0xb0]
call fcn.004e53d0
nop
lea rcx, [rsp + 0x98]
call fcn.004e53d0
nop
lea rcx, [rsp + 0x80]
call fcn.004e53d0
nop
cmp qword [rsp + 0x298], 0x10
jb 0x4b913c
mov rcx, qword [rsp + 0x280]
call fcn.00568830
mov qword [rsp + 0x298], rdi
mov qword [rsp + 0x290], r15
mov byte [rsp + 0x280], r15b
jmp 0x4b9282
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov byte [rsp + 0x80], 1
mov byte [rsp + 0x98], 1
mov byte [rsp + 0xb0], 1
mov byte [rsp + 0xc8], 1
mov rcx, r14
lea rdx, [rsp + 0xe0]
mov r8d, 0x30
call fcn.0056a7f0
mov qword [rsi], r14
mov rax, qword [r14]
mov qword [rsi + 8], rax
add rax, 0x230
mov qword [rsi + 0x10], rax
lea rcx, [rsp + 0xc8]
call fcn.004ebae4
nop
lea rcx, [rsp + 0xb0]
call fcn.004e53d0
nop
lea rcx, [rsp + 0x98]
call fcn.004e53d0
nop
lea rcx, [rsp + 0x80]
call fcn.004e53d0
nop
cmp qword [rsp + 0x298], 0x10
jb 0x4b91fc
mov rcx, qword [rsp + 0x280]
call fcn.00568830
mov qword [rsp + 0x298], rdi
mov qword [rsp + 0x290], r15
mov byte [rsp + 0x280], r15b
jmp 0x4b9282
lea rcx, [rsp + 0xc8]
call fcn.004ebae4
nop
lea rcx, [rsp + 0xb0]
call fcn.004e53d0
nop
lea rcx, [rsp + 0x98]
call fcn.004e53d0
nop
lea rcx, [rsp + 0x80]
call fcn.004e53d0
nop
cmp qword [rsp + 0x298], 0x10
jb 0x4b9266
mov rcx, qword [rsp + 0x280]
call fcn.00568830
mov qword [rsp + 0x298], reloc.OLEAUT32.dll_SafeArrayDestroy
mov qword [rsp + 0x290], r15
mov byte [rsp + 0x280], r15b
mov rax, rsi
mov rcx, qword [rsp + 0x2a0]
xor rcx, rsp
call fcn.00568fb0
add rsp, 0x2b8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret