Function at 0x423c20
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47b156
mov eax, dword fs:[0]
push eax
sub esp, 0x44
mov eax, dword [0x4964e0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x48], edi
mov dword [edi], 0
mov dword [ebp - 4], 0
mov dword [edi + 4], 0xffffffff
mov dword [edi + 8], 0xffffffff
push 0x10
mov byte [ebp - 4], 2
call fcn.00447ed3
mov esi, eax
add esp, 4
test esi, esi
je 0x423ca4
lea eax, [esi + 4]
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 8], 0
and dword [eax], 1
mov dword [eax + 4], eax
mov dword [eax + 8], eax
and dword [eax], 0xfffffffe
mov dword [esi], 0
jmp 0x423ca6
xor esi, esi
mov eax, esi
mov dword [ebp - 0x2c], 0xf
shr eax, 2
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x40], 0
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 4
call fcn.004238d0
push 0x13
push str.bipc_gmap_sem_lock_
lea ecx, [ebp - 0x28]
call fcn.00407ea0
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x28]
call fcn.00407bc0
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
cmp dword [edi], 0
jne 0x423d21
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
test eax, eax
mov dword [edi], eax
setne bl
jmp 0x423d23
xor bl, bl
push 0x14
push str.bipc_gmap_sem_count_
lea ecx, [ebp - 0x28]
call fcn.00407ea0
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x28]
call fcn.00407bc0
mov ecx, dword [edi]
mov dword [ebp - 0x50], edi
call fcn.00423b40
mov byte [ebp - 0x4c], 1
mov byte [ebp - 4], 5
test bl, bl
je 0x423d91
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
cmp dword [edi + 8], 0xffffffff
jne 0x423d91
push eax
push 0x7fffffff
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
mov dword [edi + 8], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [edi + 8], 0xffffffff
setne al
test al, al
je 0x423d91
mov bl, 1
jmp 0x423d93
xor bl, bl
push 0x12
push str.bipc_gmap_sem_map_
lea ecx, [ebp - 0x28]
call fcn.00407ea0
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x28]
call fcn.00407bc0
test bl, bl
je 0x423e7f
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
cmp dword [edi + 4], 0xffffffff
jne 0x423e7f
push eax
push dword [ebp - 0x44]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
mov dword [edi + 4], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
setne cl
cmp dword [edi + 4], 0xffffffff
setne al
test al, al
je 0x423e7f
test cl, cl
jne 0x423e16
test esi, esi
je 0x423e16
push esi
mov ecx, esi
call fcn.0042a160
push esi
call fcn.00447e2b
add esp, 4
lea eax, [ebp - 0x48]
push eax
push 1
push dword [edi + 8]
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
lea ecx, [ebp - 0x50]
call fcn.00428550
cmp dword [ebp - 0x14], 0x10
jb 0x423e3e
push dword [ebp - 0x28]
call fcn.00447e2b
add esp, 4
cmp dword [ebp - 0x2c], 0x10
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
jb 0x423e61
push dword [ebp - 0x40]
call fcn.00447e2b
add esp, 4
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004472f1
mov esp, ebp
pop ebp
ret
test esi, esi
je 0x423e94
push esi
mov ecx, esi
call fcn.0042a160
push esi
call fcn.00447e2b
add esp, 4
push 0x4939e0
lea eax, [ebp - 0x44]
mov dword [ebp - 0x44], 0
push eax
call fcn.0044a4ab
int3