Function at 0x7ff64956e120
Capabilities:
Check mutex on windows
Create thread

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x30
mov rax, qword [0x7ff6495d1a88]
xor edi, edi
mov ebp, edx
mov r14, rcx
test rax, rax
jne 0x7ff64956e15c
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.DLL_CreateMutexW]
mov qword [0x7ff6495d1a88], rax
mov edx, 0xffffffff
mov rcx, rax
call qword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
mov ecx, dword [0x7ff6495d1a6c]
test ecx, ecx
jne 0x7ff64956e33b
cmp qword [0x7ff6495d1a60], rdi
mov qword [rsp + 0x40], rsi
jne 0x7ff64956e19a
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.DLL_CreateMutexW]
mov qword [0x7ff6495d1a60], rax
mov rax, qword [0x7ff6495d2aa0]
test rax, rax
jne 0x7ff64956e1ba
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.DLL_CreateMutexW]
mov qword [0x7ff6495d2aa0], rax
cmp qword [0x7ff6495d1a70], rdi
jne 0x7ff64956e1e1
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.DLL_CreateEventW]
mov qword [0x7ff6495d1a70], rax
mov rax, qword [0x7ff6495d2aa0]
mov edx, 0xffffffff
mov rcx, rax
call qword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
mov rsi, qword [0x7ff6495d1890]
mov rbx, qword [rsi + 8]
cmp byte [rbx + 0x19], dil
jne 0x7ff64956e22d
mov r8, qword [rbx + 0x10]
lea rdx, [0x7ff6495d1890]
lea rcx, [0x7ff6495d1890]
call fcn.7ff64956f5a0
mov rcx, rbx
mov edx, 0x30
mov rbx, qword [rbx]
call fcn.7ff649578b74
cmp byte [rbx + 0x19], dil
je 0x7ff64956e200
mov rcx, qword [0x7ff6495d2aa0]
mov qword [rsi + 8], rsi
mov qword [rsi], rsi
mov qword [rsi + 0x10], rsi
mov qword [0x7ff6495d1898], rdi
call qword [sym.imp.KERNEL32.DLL_ReleaseMutex]
cmp qword [0x7ff6495d1a78], rdi
mov rax, qword [r14]
mov rsi, qword [rsp + 0x40]
mov qword [0x7ff6495d1a80], rax
mov rax, qword [r14 + 8]
mov qword [0x7ff6495d2a98], rax
mov rax, qword [r14 + 0x10]
mov qword [0x7ff6495d2aa8], rax
mov eax, dword [r14 + 0x18]
mov dword [0x7ff6495d1a68], eax
mov dword [0x7ff6495d2a90], eax
jne 0x7ff64956e2b0
mov qword [rsp + 0x28], rdi
lea r8, [0x7ff64956df80]
xor r9d, r9d
mov dword [rsp + 0x20], edi
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.DLL_CreateThread]
mov qword [0x7ff6495d1a78], rax
jmp 0x7ff64956e2bd
mov rcx, qword [0x7ff6495d1a70]
call qword [sym.imp.KERNEL32.DLL_SetEvent]
mov rcx, qword [0x7ff6495d1a88]
mov ebx, edi
call qword [sym.imp.KERNEL32.DLL_ReleaseMutex]
test ebp, ebp
je 0x7ff64956e2d7
call fcn.7ff64956e380
mov ebx, eax
mov rax, qword [0x7ff6495d1a88]
test rax, rax
jne 0x7ff64956e2f7
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.DLL_CreateMutexW]
mov qword [0x7ff6495d1a88], rax
mov edx, 0xffffffff
mov rcx, rax
call qword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
test ebx, ebx
jne 0x7ff64956e316
mov edi, 1
mov dword [0x7ff6495d1a6c], edi
jmp 0x7ff64956e354
mov rcx, qword [0x7ff6495d1a70]
call qword [sym.imp.KERNEL32.DLL_ResetEvent]
mov ecx, 0xf0001001
mov dword [0x7ff6495d1a68], edi
call fcn.7ff64956ddc0
mov dword [0x7ff6495d1a6c], edi
jmp 0x7ff64956e354
cmp ecx, 1
jne 0x7ff64956e347
mov ebx, 0xf000100b
jmp 0x7ff64956e354
cmp ecx, 2
mov ebx, edi
mov eax, 0xf0001001
cmove ebx, eax
mov rcx, qword [0x7ff6495d1a88]
call qword [sym.imp.KERNEL32.DLL_ReleaseMutex]
mov rbp, qword [rsp + 0x50]
mov eax, ebx
mov rbx, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x58]
add rsp, 0x30
pop r14
ret