Function at 0x14002908c
Capabilities:
Check mutex on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
xor r15d, r15d
mov r13, rcx
xor edx, edx
mov qword [rbp + 0x30], r15
lea rcx, [rbp - 0x50]
mov esi, r15d
mov r14d, r15d
mov edi, r15d
lea r8d, [r15 + 0x48]
mov r12d, r15d
call sub.msvcrt.dll_memset
test dword [r13 + 0x34], 0x80000
je 0x14002913a
lea rcx, [rbp - 0x50]
lea r15, str.GlobalSetupLog
call fcn.14002a538
mov ebx, eax
test eax, eax
js 0x140029268
mov r8, r15
lea rcx, [rbp - 0x50]
xor edx, edx
lea r12, [rbp - 0x50]
call qword [sym.imp.KERNEL32.dll_CreateMutexW]
nop dword [rax + rax]
mov rdi, rax
test rax, rax
jne 0x140029268
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
cmp eax, 5
jne 0x1400291b7
lea r15, str.SetupLog
jmp 0x1400291b7
call fcn.1400964dc
mov r14, rax
test rax, rax
jne 0x14002918b
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
test ecx, ecx
jns 0x140029210
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
test ebx, ebx
js 0x14002926b
mov eax, dword [r13 + 0x2c]
lea rdx, str.GlobalWIMGAPI_LOGFILE__s__08x_08x
mov r9d, dword [r13 + 0x28]
lea rcx, [rbp + 0x30]
mov r8, r14
mov dword [rsp + 0x20], eax
call fcn.14000ca00
mov rsi, qword [rbp + 0x30]
mov ebx, eax
test eax, eax
js 0x14002921c
mov r15, rsi
mov r8, r15
xor edx, edx
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CreateMutexW]
nop dword [rax + rax]
xor r15d, r15d
mov rdi, rax
test rax, rax
jne 0x14002921c
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ecx, ax
mov r12d, 0x80070000
or ecx, r12d
test eax, eax
cmovle ecx, eax
test ecx, ecx
jns 0x140029217
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
or ebx, r12d
test eax, eax
cmovle ebx, eax
jmp 0x14002921c
mov ebx, 0x80004005
jmp 0x14002926b
mov ebx, 0x80004005
test rsi, rsi
je 0x140029241
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, rsi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
test r14, r14
je 0x14002926b
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, r14
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
jmp 0x14002926b
xor r15d, r15d
cmp qword [rbp - 0x10], r15
je 0x1400292a0
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, qword [rbp - 0x10]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
mov rcx, qword [rbp - 0x10]
test eax, eax
cmovne rcx, r15
mov qword [rbp - 0x10], rcx
test ebx, ebx
jns 0x1400292bb
test rdi, rdi
je 0x1400292bb
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop dword [rax + rax]
mov rdi, r15
lea r11, [rsp + 0x80]
mov qword [r13 + 0x20], rdi
mov rsi, qword [r11 + 0x40]
mov eax, ebx
mov rbx, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret