Function at 0x180057660
Capabilities:
Check mutex on windows

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xa0
mov qword [rbp - 0x29], 0xfffffffffffffffe
mov qword [rsp + 0xe0], rbx
mov rax, qword [0x180201020]
xor rax, rsp
mov qword [rbp + 0x1f], rax
mov r15, r9
mov rsi, r8
mov rdi, rdx
mov r12, qword [r9]
mov r13d, dword [r9 + 8]
xor r14d, r14d
lea ebx, [r14 + 2]
test r12, r12
je 0x180057812
xor edx, edx
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov r14d, eax
cmp eax, 0x102
jne 0x1800576d3
lea eax, [rbx + 1]
jmp 0x180057c7e
mov rcx, qword [r15]
test rcx, rcx
je 0x1800576e1
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov qword [r15], rax
mov dword [r15 + 8], eax
cmp qword [0x180207cd0], rax
je 0x18005780f
lea rcx, [0x180207cd0]
call fcn.1800b2590
mov rax, qword [0x180207cd0]
cmp byte [rax + 0x78], 0
je 0x18005780f
cmp dword [rax + 0x80], ebx
jb 0x18005780f
movzx eax, byte [rax + 0x84]
mov byte [rbp - 0x39], al
xorps xmm0, xmm0
movdqu xmmword [rbp + 0xf], xmm0
movdqa xmm1, xmmword [0x1801a9390]
movdqu xmmword [rbp + 0xf], xmm1
xor eax, eax
mov word [rbp - 1], ax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8, rdi
cmp qword [rdi + 0x18], 8
jb 0x180057758
mov r8, qword [rdi]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r14d
mov r9d, r13d
lea rdx, str._s___d__maybe_is_died__ret__d__err__d
lea rcx, [rbp - 1]
call fcn.1800b3700
mov dword [rsp + 0x28], 0xd1
lea rax, str.RC::RCProtectProcKeeper::UpdateProcessState
mov qword [rsp + 0x20], rax
lea r9, str.d:_rhinoprotect_rtpsystem_srclibrtglobalutils_sdkclientcon_rcprotectprockeeper.cpp
lea r8, [rbp - 1]
mov edx, ebx
lea rcx, [0x180207cd0]
call fcn.1800b3220
cmp byte [rbp - 0x39], 0
je 0x1800577b8
lea rdx, [rbp - 1]
lea rcx, [0x180207cd0]
call fcn.1800b35c0
nop
mov rdx, qword [rbp + 0x17]
cmp rdx, 8
jb 0x1800577f8
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 1]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800577f3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180057cab
call fcn.180116bc4
movdqa xmm0, xmmword [0x1801a9390]
movdqu xmmword [rbp + 0xf], xmm0
xor r14d, r14d
mov word [rbp - 1], r14w
jmp 0x180057812
xor r14d, r14d
cmp qword [rsi + 0x18], 8
jb 0x18005781c
mov rsi, qword [rsi]
mov r8, rsi
xor edx, edx
mov ecx, 0x100000
call qword [sym.imp.KERNEL32.dll_OpenMutexW]
test rax, rax
je 0x180057b62
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov qword [rbp - 1], rax
mov qword [rbp + 7], rax
mov qword [rbp + 0xf], rax
mov qword [rbp - 1], r14
xorps xmm0, xmm0
movdqu xmmword [rbp + 7], xmm0
lea rdx, [rbp - 1]
mov rcx, rdi
call fcn.18007c9f0
mov rsi, qword [rbp - 1]
cmp rsi, qword [rbp + 7]
jne 0x18005799e
cmp qword [0x180207cd0], 0
je 0x18005798b
lea rcx, [0x180207cd0]
call fcn.1800b2590
mov rax, qword [0x180207cd0]
cmp byte [rax + 0x78], 0
je 0x18005798b
cmp dword [rax + 0x80], 2
jb 0x18005798b
movzx r14d, byte [rax + 0x84]
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x11], xmm0
movdqa xmm1, xmmword [0x1801a9390]
movdqu xmmword [rbp - 0x11], xmm1
xor eax, eax
mov word [rbp - 0x21], ax
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp qword [rdi + 0x18], 8
jb 0x1800578dd
mov rdi, qword [rdi]
mov r9d, eax
mov r8, rdi
lea rdx, str._s__mutex_can_open__but_get_pid_failed___d
lea rcx, [rbp - 0x21]
call fcn.1800b3700
mov dword [rsp + 0x28], 0xf4
lea rax, str.RC::RCProtectProcKeeper::UpdateProcessState
mov qword [rsp + 0x20], rax
lea r9, str.d:_rhinoprotect_rtpsystem_srclibrtglobalutils_sdkclientcon_rcprotectprockeeper.cpp
lea r8, [rbp - 0x21]
mov edx, ebx
lea rcx, [0x180207cd0]
call fcn.1800b3220
test r14b, r14b
je 0x180057936
lea rdx, [rbp - 0x21]
lea rcx, [0x180207cd0]
call fcn.1800b35c0
nop
mov rdx, qword [rbp - 9]
cmp rdx, 8
jb 0x180057976
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x21]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180057971
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180057cb1
call fcn.180116bc4
movdqa xmm0, xmmword [0x1801a9390]
movdqu xmmword [rbp - 0x11], xmm0
xor r14d, r14d
mov word [rbp - 0x21], r14w
mov ebx, 4
test r12, r12
cmovne ebx, r14d
xor edi, edi
jmp 0x180057b12
mov r14d, dword [rsi]
mov r8d, r14d
xor edx, edx
mov ecx, 0x100000
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov r12, rax
mov eax, ebx
mov ecx, 5
test r12, r12
cmovne eax, ecx
mov dword [rbp - 0x35], eax
mov edx, eax
lea rcx, [0x180207cd0]
call fcn.1800b31d0
mov dword [rbp - 0x31], eax
test eax, eax
je 0x180057ac6
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x11], xmm0
movdqa xmm1, xmmword [0x1801a9390]
movdqu xmmword [rbp - 0x11], xmm1
xor eax, eax
mov word [rbp - 0x21], ax
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp qword [rdi + 0x18], 8
jb 0x180057a08
mov rdi, qword [rdi]
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], r12
mov dword [rsp + 0x20], r14d
mov r9d, r13d
mov r8, rdi
lea rdx, str._s__old_pid_is__d__open_proc__d__handle__d__lasteror__d
lea rcx, [rbp - 0x21]
call fcn.1800b3700
mov dword [rsp + 0x28], 0x102
lea rax, str.RC::RCProtectProcKeeper::UpdateProcessState
mov qword [rsp + 0x20], rax
lea r9, str.d:_rhinoprotect_rtpsystem_srclibrtglobalutils_sdkclientcon_rcprotectprockeeper.cpp
lea r8, [rbp - 0x21]
mov edx, dword [rbp - 0x35]
lea rcx, [0x180207cd0]
call fcn.1800b3220
cmp dword [rbp - 0x31], 1
jbe 0x180057a71
lea rdx, [rbp - 0x21]
lea rcx, [0x180207cd0]
call fcn.1800b35c0
nop
mov rdx, qword [rbp - 9]
cmp rdx, 8
jb 0x180057ab1
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x21]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180057aac
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180057cb7
call fcn.180116bc4
movdqa xmm0, xmmword [0x1801a9390]
movdqu xmmword [rbp - 0x11], xmm0
xor edi, edi
mov word [rbp - 0x21], di
jmp 0x180057ac8
xor edi, edi
test r12, r12
cmove r14d, edi
mov rcx, qword [r15]
test rcx, rcx
je 0x180057add
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [r15], r12
mov dword [r15 + 8], r14d
cmp r14d, r13d
jne 0x180057af5
test r13d, r13d
je 0x180057b0d
mov ebx, 3
jmp 0x180057b12
test r13d, r13d
je 0x180057b03
test r14d, r14d
jne 0x180057b12
mov ebx, edi
jmp 0x180057b12
test r14d, r14d
mov ebx, 1
jne 0x180057b12
mov ebx, 4
test rsi, rsi
je 0x180057b5b
mov rdx, qword [rbp + 0xf]
sub rdx, rsi
and rdx, 0xfffffffffffffffc
mov rax, rsi
cmp rdx, 0x1000
jb 0x180057b47
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180057cbd
mov rcx, rsi
call fcn.180116bc4
xorps xmm0, xmm0
movdqu xmmword [rbp - 1], xmm0
mov qword [rbp + 0xf], rdi
mov eax, ebx
jmp 0x180057c7e
test r12, r12
je 0x180057c79
cmp qword [0x180207cd0], 0
je 0x180057c75
lea rcx, [0x180207cd0]
call fcn.1800b2590
mov rax, qword [0x180207cd0]
cmp byte [rax + 0x78], 0
je 0x180057c75
cmp dword [rax + 0x80], 2
jb 0x180057c75
movzx esi, byte [rax + 0x84]
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x11], xmm0
movdqa xmm1, xmmword [0x1801a9390]
movdqu xmmword [rbp - 0x11], xmm1
mov word [rbp - 0x21], r14w
cmp qword [rdi + 0x18], 8
jb 0x180057bce
mov rdi, qword [rdi]
mov r9d, r13d
mov r8, rdi
lea rdx, str._s___d__is_stop_running__cannot_open_the_mutex
lea rcx, [rbp - 0x21]
call fcn.1800b3700
mov dword [rsp + 0x28], 0xe2
lea rax, str.RC::RCProtectProcKeeper::UpdateProcessState
mov qword [rsp + 0x20], rax
lea r9, str.d:_rhinoprotect_rtpsystem_srclibrtglobalutils_sdkclientcon_rcprotectprockeeper.cpp
lea r8, [rbp - 0x21]
mov edx, ebx
lea rcx, [0x180207cd0]
call fcn.1800b3220
test sil, sil
je 0x180057c27
lea rdx, [rbp - 0x21]
lea rcx, [0x180207cd0]
call fcn.1800b35c0
nop
mov rdx, qword [rbp - 9]
cmp rdx, 8
jb 0x180057c63
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x21]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180057c5e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180057ca5
call fcn.180116bc4
movdqa xmm0, xmmword [0x1801a9390]
movdqu xmmword [rbp - 0x11], xmm0
mov word [rbp - 0x21], r14w
xor eax, eax
jmp 0x180057c7e
mov eax, 4
mov rcx, qword [rbp + 0x1f]
xor rcx, rsp
call fcn.180116780
mov rbx, qword [rsp + 0xe0]
add rsp, 0xa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.18013ed94
int3
call fcn.18013ed94
nop
call fcn.18013ed94
nop
call fcn.18013ed94
nop
call fcn.18013ed94
int3