Function at 0x12802b40
Capabilities:
Check mutex on windows

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov r15d, r8d
mov r14d, edx
call qword [sym.imp.KERNEL32.dll_GetLastError]
test r14d, r14d
jne 0x12802b76
or eax, 0xffffffff
jmp 0x12802dbe
lea r8, str.GlobalHopedotVOS_DBWIN_MUTEX
xor edx, edx
mov ecx, 0x1f0001
call qword [sym.imp.KERNEL32.dll_OpenMutexW]
mov rsi, rax
mov qword [rsp + 0x48], rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x30], eax
test rsi, rsi
jne 0x12802bb0
xchg dword [0x129ab094], eax
mov eax, dword [rsp + 0x30]
jmp 0x12802dbe
xor eax, eax
mov rbx, rax
mov qword [rsp + 0x38], rax
mov rdi, rax
mov qword [rsp + 0x40], rax
mov edx, 0x2710
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov r12d, eax
mov dword [rsp + 0xb8], eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x30], eax
cmp r12d, 0xffffffff
je 0x12802d60
cmp r12d, 0x102
je 0x12802d60
lea r8, str.GlobalHopedotVOS_DBWIN_WRITE_READY
xor edx, edx
mov ecx, 0x1f0003
call qword [sym.imp.KERNEL32.dll_OpenEventW]
mov rbx, rax
mov qword [rsp + 0x38], rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x30], eax
test rbx, rbx
je 0x12802d60
lea r8, str.GlobalHopedotVOS_DBWIN_READ_READY
xor edx, edx
mov ecx, 0x1f0003
call qword [sym.imp.KERNEL32.dll_OpenEventW]
mov rdi, rax
mov qword [rsp + 0x40], rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x30], eax
test rdi, rdi
je 0x12802d60
lea r8, str.GlobalHopedotVOS_DBWIN_BUFFER
xor edx, edx
lea ecx, [rdx + 2]
call qword [sym.imp.KERNEL32.dll_OpenFileMappingW]
mov r12, rax
mov qword [rsp + 0x58], rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x30], eax
test r12, r12
je 0x12802d60
mov edx, 0x2710
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov r13d, eax
mov dword [rsp + 0xb8], eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x30], eax
cmp r13d, 0xffffffff
je 0x12802d56
cmp r13d, 0x102
je 0x12802d56
mov qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 2]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov r13, rax
mov qword [rsp + 0x60], rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x30], eax
test r13, r13
je 0x12802d4d
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [r13], eax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [r13 + 4], eax
mov dword [r13 + 8], r15d
lea ecx, [r14 + r14 + 2]
mov eax, 0x1ff4
cmp ecx, eax
cmova ecx, eax
mov dword [rsp + 0xc8], ecx
mov r8d, ecx
lea rcx, [r13 + 0xc]
mov rdx, qword [rsp + 0xb0]
call fcn.12959240
xor r14d, r14d
mov word [r13 + 0x1ffe], r14w
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov dword [rsp + 0x30], r14d
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
jmp 0x12802d82
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test rbx, rbx
je 0x12802da2
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test rdi, rdi
je 0x12802db0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [rsp + 0x30]
xchg dword [0x129ab094], eax
mov eax, dword [rsp + 0x30]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret