Function at 0x14002ef40
Capabilities:
Check mutex on windows

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
sub rsp, 0xf0
mov rax, qword [0x14008e010]
xor rax, rsp
mov qword [rsp + 0xe0], rax
xor eax, eax
xorps xmm0, xmm0
mov qword [rsp + 0x60], rax
mov rdi, rcx
mov rax, qword [0x140091a88]
movups xmmword [rsp + 0x30], xmm0
movups xmmword [rsp + 0x40], xmm0
movups xmmword [rsp + 0x50], xmm0
test rax, rax
jne 0x14002ef9b
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.DLL_CreateMutexW]
mov qword [0x140091a88], rax
mov edx, 0xffffffff
mov rcx, rax
call qword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
mov rcx, qword [0x140091a88]
xor ebx, ebx
cmp dword [0x140091a6c], 1
sete bl
call qword [sym.imp.KERNEL32.DLL_ReleaseMutex]
test ebx, ebx
jne 0x14002efd0
mov eax, 0xf0001000
jmp 0x14002f1a5
test rdi, rdi
jne 0x14002efdf
mov eax, 0xf0001005
jmp 0x14002f1a5
mov rcx, rdi
call fcn.14002d550
mov rbx, rax
test rax, rax
jne 0x14002eff9
mov eax, 0xf000100c
jmp 0x14002f1a5
mov dword [rsp + 0x80], shutdown
lea rdx, [rsp + 0x30]
mov rax, qword [rax + 0x18]
lea rcx, str.Beihai_ForceCloseSession__x_n
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x108], rsi
call fcn.14002d530
mov rcx, qword [0x14008ec48]
mov edx, 0xffffffff
mov qword [rsp + 0x68], rcx
inc rcx
mov qword [0x14008ec48], rcx
mov rcx, qword [0x140092aa0]
call qword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
lea rdx, [rsp + 0x68]
call fcn.14002f1d0
lea rcx, [rsp + 0x30]
lea r8, [rsp + 0x30]
mov qword [rax], rcx
lea rcx, str.rrmap_add__llx__x_n
mov rdx, qword [rsp + 0x68]
call fcn.14002d530
mov rcx, qword [0x140092aa0]
call qword [sym.imp.KERNEL32.DLL_ReleaseMutex]
mov rax, qword [rsp + 0x68]
lea rcx, [rsp + 0x70]
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
lea edx, [r9 + 0x20]
call fcn.14002dba0
mov r8d, dword [rsp + 0x3c]
lea rdx, [rsp + 0x30]
test eax, eax
lea rcx, str.Beihai_ForceCloseSession__x_ret__x_n
mov esi, eax
cmove esi, r8d
call fcn.14002d530
mov rax, qword [0x140091850]
mov rcx, qword [rsp + 0x50]
test rax, rax
je 0x14002f0e8
mov r8d, 0x56b
lea rdx, str.D:_buildagent_cd_8811workspace11934_thirdparty_bhplugin1Beihai_toolsjhi_libBeihaiPlugin.cpp
call qword [0x140069610]
jmp 0x14002f0ed
call fcn.140044cd0
mov rcx, qword [0x140092aa0]
mov edx, 0xffffffff
mov qword [rsp + 0x68], rdi
call qword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
sub dword [rbx + 8], 1
jne 0x14002f187
lea rdx, [rsp + 0x68]
call fcn.14002f2d0
mov rdx, rbx
lea rcx, str.destroy_session__x_n
call fcn.14002d530
mov rcx, qword [rbx + 0x28]
test rcx, rcx
je 0x14002f132
call qword [sym.imp.KERNEL32.DLL_CloseHandle]
mov rax, qword [0x140091850]
mov rcx, qword [rbx + 0x20]
test rax, rax
je 0x14002f157
mov r8d, 0x18b
lea rdx, str.D:_buildagent_cd_8811workspace11934_thirdparty_bhplugin1Beihai_toolsjhi_libBeihaiPlugin.cpp
call qword [0x140069610]
jmp 0x14002f15c
call fcn.140044cd0
mov rax, qword [0x140091850]
mov rcx, rbx
test rax, rax
je 0x14002f180
mov r8d, 0x18c
lea rdx, str.D:_buildagent_cd_8811workspace11934_thirdparty_bhplugin1Beihai_toolsjhi_libBeihaiPlugin.cpp
call qword [0x140069610]
jmp 0x14002f18e
call fcn.140044cd0
jmp 0x14002f18e
mov dword [rbx + 0x34], 1
mov rcx, qword [0x140092aa0]
call qword [sym.imp.KERNEL32.DLL_ReleaseMutex]
mov eax, esi
mov rsi, qword [rsp + 0x108]
mov rcx, qword [rsp + 0xe0]
xor rcx, rsp
call fcn.140038b50
mov rbx, qword [rsp + 0x110]
add rsp, 0xf0
pop rdi
ret