Function at 0x14006c3d0
Capabilities:
Check mutex on windows

Disassembly:
mov rax, rsp
push rbp
push rdi
push r12
lea rbp, [rax - 0x788]
sub rsp, 0x870
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov rax, qword [0x14017c430]
xor rax, rsp
mov qword [rbp + 0x760], rax
mov rdi, rcx
xor esi, esi
mov qword [rsp + 0x20], rsi
lea r8, str.Local_
mov edx, 0x400
lea rcx, [rsp + 0x60]
call fcn.1400d7f70
lea r8, [0x140132464]
mov edx, 0x400
lea rcx, [rsp + 0x60]
call fcn.1400d9a0c
lea r8, str.CloseServerMutex
mov edx, 0x400
lea rcx, [rsp + 0x60]
call fcn.1400d9a0c
lea r8, [rsp + 0x60]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexW]
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], rsi
je 0x14006c7bc
call qword [sym.imp.USER32.dll_InSendMessage]
mov edx, esi
mov ebx, 0x2710
test eax, eax
cmovne edx, ebx
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, esi
cmp eax, 0x102
setne cl
test ecx, ecx
je 0x14006c7bc
lea r12, vtable.CLockMgr_class_CMutexWrapper_.0
mov qword [rsp + 0x30], r12
lea rax, [rsp + 0x20]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x40], 1
cmp qword [rsp + 0x20], rsi
je 0x14006c4e0
call qword [sym.imp.USER32.dll_InSendMessage]
or edx, 0xffffffff
test eax, eax
cmovne edx, ebx
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
nop
cmp byte [rdi + 0x168], 0
jne 0x14006c5dc
cmp dword [reloc.WS2_32.dll_accept], 0
jne 0x14006c4fb
call fcn.140019670
call fcn.14008f6b0
mov rbx, rax
mov rcx, qword [rax + 0x2a8]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov ecx, 0x32
call qword [sym.imp.KERNEL32.dll_Sleep]
mov r11, qword [rbx]
mov edx, 1
mov rcx, rbx
call qword [r11]
mov rbx, qword [0x140183810]
test rbx, rbx
jne 0x14006c560
mov ecx, 0x220
call fcn.1400d5224
mov qword [rsp + 0x28], rax
test rax, rax
je 0x14006c556
mov rcx, rax
call fcn.140097f80
mov rbx, rax
jmp 0x14006c559
mov rbx, rsi
mov qword [0x140183810], rbx
mov rcx, qword [rbx + 0x210]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rcx, qword [rbx + 0x1f8]
test rcx, rcx
je 0x14006c584
mov edx, 0x3e8
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, 0x32
call qword [sym.imp.KERNEL32.dll_Sleep]
mov r11, qword [rbx]
mov edx, 1
mov rcx, rbx
call qword [r11]
mov rcx, qword [rdi + 0x1a0]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rcx, qword [rdi + 0x170]
test rcx, rcx
je 0x14006c6b7
or edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [rdi + 0x170]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rdi + 0x170], rsi
jmp 0x14006c6b7
mov rbx, qword [rdi + 0x26a8]
test rbx, rbx
je 0x14006c638
mov rcx, qword [rbx + 0x98]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rax, qword [rbx + 0xa0]
mov qword [rsp + 0x28], rax
or r9d, 0xffffffff
mov r8d, 1
lea rdx, [rsp + 0x28]
mov ecx, r8d
call qword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov rcx, qword [rbx + 0xa0]
test rcx, rcx
je 0x14006c638
cmp rcx, 0xffffffffffffffff
je 0x14006c638
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbx + 0xa0], rsi
mov rcx, qword [0x140183608]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov qword [0x140183610], rsi
mov rbx, qword [0x1401835e8]
test rbx, rbx
jne 0x14006c683
mov ecx, 0x2e70
call fcn.1400d5224
mov qword [rsp + 0x50], rax
test rax, rax
je 0x14006c679
mov rcx, rax
call fcn.14003d200
mov rbx, rax
jmp 0x14006c67c
mov rbx, rsi
mov qword [0x1401835e8], rbx
mov eax, esi
xchg dword [rbx + 0x2d98], eax
mov dl, 1
mov rcx, rbx
call fcn.14003d7d0
test rbx, rbx
je 0x14006c6aa
mov rcx, rbx
call fcn.14003d050
mov rcx, rbx
call fcn.1400d4d78
mov rcx, qword [rdi + 0x1a0]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rcx, qword [rdi + 0x128]
test rcx, rcx
je 0x14006c6e0
or edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [rdi + 0x128]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rdi + 0x128], rsi
mov rcx, qword [rdi + 0x150]
test rcx, rcx
je 0x14006c709
or edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [rdi + 0x150]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rdi + 0x150], rsi
mov rcx, qword [rdi + 0x130]
test rcx, rcx
je 0x14006c732
or edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [rdi + 0x130]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rdi + 0x130], rsi
mov rcx, qword [rdi + 0x138]
test rcx, rcx
je 0x14006c75b
or edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [rdi + 0x138]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rdi + 0x138], rsi
mov rcx, qword [rdi + 0x158]
test rcx, rcx
je 0x14006c784
or edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [rdi + 0x158]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rdi + 0x158], rsi
mov rcx, qword [rdi + 8]
call qword [sym.imp.WS2_32.dll_closesocket]
mov qword [rdi + 8], 0xffffffffffffffff
mov rcx, qword [rdi + 0x1a0]
call qword [sym.imp.KERNEL32.dll_ResetEvent]
nop
mov qword [rsp + 0x30], r12
mov rcx, qword [rsp + 0x20]
test rcx, rcx
je 0x14006c7ba
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
nop
jmp 0x14006c7bc
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rsp + 0x20], rsi
mov rcx, qword [rbp + 0x760]
xor rcx, rsp
call fcn.1400d4d90
lea r11, [rsp + 0x870]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r12
pop rdi
pop rbp
ret