Function at 0x14000a294
Capabilities:
Check mutex on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
lea rdi, [rcx + 0xa0]
mov rsi, rcx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop dword [rax + rax]
mov r15, qword [rsi + 0x10]
mov rcx, rdi
mov r12d, dword [rsi]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop dword [rax + rax]
mov rdx, qword [rsi + 0x248]
mov rcx, r15
call qword [sym.imp.USER32.dll_KillTimer]
nop dword [rax + rax]
mov rdx, qword [rsi + 0x250]
mov rcx, r15
call qword [sym.imp.USER32.dll_KillTimer]
nop dword [rax + rax]
mov rdx, qword [rsi + 0x258]
mov rcx, r15
call qword [sym.imp.USER32.dll_KillTimer]
nop dword [rax + rax]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop dword [rax + rax]
mov r14, qword [rsi + 0x10]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop dword [rax + rax]
lea r8, str.Microsoft.Windows.Setup.FirstUXRefCount
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexW]
nop dword [rax + rax]
xor r13d, r13d
mov rbx, rax
test rax, rax
je 0x14000a377
or edx, 0xffffffff
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
nop dword [rax + rax]
lea rdx, str.FirstUXWndRefCount
mov rcx, r14
call qword [sym.imp.USER32.dll_GetPropW]
nop dword [rax + rax]
lea rdx, str.FirstUXWndRefCount
mov rcx, r14
lea rbp, [rax - 1]
mov r8, rbp
call qword [sym.imp.USER32.dll_SetPropW]
nop dword [rax + rax]
test rbx, rbx
je 0x14000a3cd
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
nop dword [rax + rax]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop dword [rax + rax]
test rbp, rbp
jle 0x14000a3df
cmp dword [rsi + 0xd0], r13d
je 0x14000a509
xor r9d, r9d
xor r8d, r8d
mov edx, 0x8002
mov rcx, r15
call qword [sym.imp.USER32.dll_SendMessageW]
nop dword [rax + rax]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop dword [rax + rax]
mov rcx, qword [rsi + 0x70]
test rcx, rcx
je 0x14000a421
call qword [sym.imp.GDI32.dll_DeleteObject]
nop dword [rax + rax]
mov qword [rsi + 0x70], r13
mov rcx, qword [rsi + 0xe0]
test rcx, rcx
je 0x14000a440
call qword [sym.imp.GDI32.dll_DeleteObject]
nop dword [rax + rax]
mov qword [rsi + 0xe0], r13
mov rcx, qword [rsi + 0xe8]
test rcx, rcx
je 0x14000a45f
call qword [sym.imp.GDI32.dll_DeleteObject]
nop dword [rax + rax]
mov qword [rsi + 0xe8], r13
mov rcx, qword [rsi + 0xf0]
test rcx, rcx
je 0x14000a47e
call qword [sym.imp.GDI32.dll_DeleteObject]
nop dword [rax + rax]
mov qword [rsi + 0xf0], r13
mov rcx, qword [rsi + 0xf8]
test rcx, rcx
je 0x14000a49d
call qword [sym.imp.GDI32.dll_DeleteObject]
nop dword [rax + rax]
mov qword [rsi + 0xf8], r13
mov rcx, qword [rsi + 0x100]
test rcx, rcx
je 0x14000a4bc
call qword [sym.imp.GDI32.dll_DeleteObject]
nop dword [rax + rax]
mov qword [rsi + 0x100], r13
mov rcx, qword [rsi + 0x108]
test rcx, rcx
je 0x14000a4db
call qword [sym.imp.GDI32.dll_DeleteObject]
nop dword [rax + rax]
mov qword [rsi + 0x108], r13
mov rcx, qword [rsi + 0x1c0]
test rcx, rcx
je 0x14000a4fa
call qword [sym.imp.GDI32.dll_DeleteObject]
nop dword [rax + rax]
mov qword [rsi + 0x1c0], r13
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop dword [rax + rax]
mov rcx, qword [rsi + 0xc8]
test rcx, rcx
je 0x14000a53e
or edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
nop dword [rax + rax]
mov rcx, qword [rsi + 0xc8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop dword [rax + rax]
mov qword [rsi + 0xc8], r13
test r12d, r12d
je 0x14000a7fc
mov rdx, qword [rsi + 0x78]
mov rcx, qword [rsi + 0x80]
call qword [sym.imp.GDI32.dll_SelectObject]
nop dword [rax + rax]
mov rcx, rax
call qword [sym.imp.GDI32.dll_DeleteObject]
nop dword [rax + rax]
mov rcx, qword [rsi + 0x80]
call qword [sym.imp.GDI32.dll_DeleteDC]
nop dword [rax + rax]
mov rbp, qword [rsi + 0x238]
test rbp, rbp
je 0x14000a5de
lea rbx, [rbp + 0x28]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop dword [rax + rax]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop dword [rax + rax]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
nop dword [rax + rax]
mov rcx, qword [rbp + 0x10]
test rcx, rcx
je 0x14000a5d6
call qword [sym.imp.GDI32.dll_DeleteObject]
nop dword [rax + rax]
mov qword [rbp + 0x10], r13
mov rcx, rbp
call fcn.140024370
mov rbp, qword [rsi + 0x1a0]
test rbp, rbp
je 0x14000a654
lea rbx, [rbp + 0x20]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop dword [rax + rax]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop dword [rax + rax]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
nop dword [rax + rax]
mov rbx, qword [rbp + 0x70]
test rbx, rbx
je 0x14000a64c
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
test eax, eax
je 0x14000a64c
mov qword [rbp + 0x70], r13
mov rcx, rbp
call fcn.140024370
mov rbx, qword [rsi + 0x198]
test rbx, rbx
je 0x14000a6a0
xor edx, edx
lea rcx, [rbx + 8]
call fcn.140013074
mov r14, qword [rbx + 0x10]
test r14, r14
je 0x14000a698
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]
mov qword [rbx + 0x10], r13
mov rcx, rbx
call fcn.140024370
mov rbp, qword [rsi + 0x28]
test rbp, rbp
je 0x14000a6fb
lea rbx, [rbp + 0x38]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop dword [rax + rax]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop dword [rax + rax]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
nop dword [rax + rax]
mov rcx, qword [rbp + 0x10]
test rcx, rcx
je 0x14000a6f3
call qword [sym.imp.GDI32.dll_DeleteObject]
nop dword [rax + rax]
mov qword [rbp + 0x10], r13
mov rcx, rbp
call fcn.140024370
mov rbp, qword [rsi + 0x20]
test rbp, rbp
je 0x14000a756
lea rbx, [rbp + 0x28]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop dword [rax + rax]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop dword [rax + rax]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
nop dword [rax + rax]
mov rcx, qword [rbp + 0x10]
test rcx, rcx
je 0x14000a74e
call qword [sym.imp.GDI32.dll_DeleteObject]
nop dword [rax + rax]
mov qword [rbp + 0x10], r13
mov rcx, rbp
call fcn.140024370
mov rbp, qword [rsi + 0x18]
test rbp, rbp
je 0x14000a7fc
lea rbx, [rbp + 0x118]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop dword [rax + rax]
mov rcx, qword [rbp + 0x110]
test rcx, rcx
je 0x14000a798
call qword [sym.imp.GDI32.dll_RemoveFontMemResourceEx]
nop dword [rax + rax]
mov qword [rbp + 0x110], r13
mov rcx, qword [rbp + 0x90]
test rcx, rcx
je 0x14000a7b7
call qword [sym.imp.GDI32.dll_RemoveFontMemResourceEx]
nop dword [rax + rax]
mov qword [rbp + 0x90], r13
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop dword [rax + rax]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
nop dword [rax + rax]
mov rcx, qword [rbp + 0x108]
test rcx, rcx
je 0x14000a7f4
call qword [sym.imp.GDI32.dll_DeleteObject]
nop dword [rax + rax]
mov qword [rbp + 0x108], r13
mov rcx, rbp
call fcn.140024370
mov ebp, 6
lea rbx, [rsi + 0x158]
mov r14d, ebp
mov r15, qword [rbx]
test r15, r15
je 0x14000a83a
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, r15
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
test eax, eax
je 0x14000a83a
mov qword [rbx], r13
add rbx, 8
sub r14, 1
jne 0x14000a80b
lea rbx, [rsi + 0x200]
mov r14, qword [rbx]
test r14, r14
je 0x14000a87a
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]
test eax, eax
je 0x14000a87a
mov qword [rbx], r13
add rbx, 8
sub rbp, 1
jne 0x14000a84b
mov rcx, qword [rsi + 8]
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x14000a89e
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop dword [rax + rax]
mov rbx, qword [rsi + 0x58]
test rbx, rbx
je 0x14000a8cf
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
test eax, eax
je 0x14000a8cf
mov qword [rsi + 0x58], r13
mov rbx, qword [rsi + 0x60]
test rbx, rbx
je 0x14000a900
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
test eax, eax
je 0x14000a900
mov qword [rsi + 0x60], r13
mov rbx, qword [rsi + 0x1b0]
test rbx, rbx
je 0x14000a937
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
test eax, eax
je 0x14000a937
mov qword [rsi + 0x1b0], r13
mov rbx, qword [rsi + 0x1a8]
test rbx, rbx
je 0x14000a96e
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
test eax, eax
je 0x14000a96e
mov qword [rsi + 0x1a8], r13
mov rbx, qword [rsi + 0x1b8]
test rbx, rbx
je 0x14000a9a5
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
test eax, eax
je 0x14000a9a5
mov qword [rsi + 0x1b8], r13
mov rbx, qword [rsi + 0x30]
test rbx, rbx
je 0x14000a9d6
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
test eax, eax
je 0x14000a9d6
mov qword [rsi + 0x30], r13
mov rcx, qword [rsi + 0xd8]
test rcx, rcx
je 0x14000a9f5
call qword [sym.imp.GDI32.dll_RemoveFontMemResourceEx]
nop dword [rax + rax]
mov qword [rsi + 0xd8], r13
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop dword [rax + rax]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop dword [rax + rax]
mov rcx, rdi
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
jmp qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]