Function at 0x414570
Capabilities:
Check mutex on windows

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
mov ecx, dword [0x42bd18]
push 0x425389
push eax
movsx eax, byte [0x42bcdb]
mov dword fs:[0], esp
sub esp, 0x14
push ebp
push eax
push ecx
call fcn.0040e580
mov byte [0x42bcd9], al
mov eax, dword [0x42bd00]
xor ebp, ebp
add esp, 8
cmp eax, ebp
je 0x4145c2
cmp word [0x42bcec], bp
mov word [0x42bcee], 1
jne 0x4145c9
mov word [0x42bcee], bp
movsx edx, byte [0x42bcdb]
push 0xe659ffff
push edx
call fcn.0040e4c0
mov byte [0x42bcde], al
push 0xcba9ffff
movsx eax, word [0x42bce4]
push eax
call fcn.0040e540
mov cl, byte [esp + 0x17]
mov dword [0x42bd10], eax
mov byte [esp + 0x18], cl
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
lea edx, [esp + 0x18]
mov dword [esp + 0x30], ebp
push edx
push 0xe
call fcn.0040e6f0
mov cl, byte [0x42bcdc]
add esp, 0x18
xor eax, eax
mov word [0x42bcf2], bp
test cl, cl
setne al
push ebp
mov dword [0x42bcf8], eax
call dword [sym.imp.KERNEL32.DLL_SetLastError]
movsx ecx, word [0x42bcee]
push ecx
push 0x41d7ffff
call fcn.0040e580
mov edx, dword [0x42bcf8]
mov word [0x42bce4], ax
mov eax, dword [0x42bd04]
push 0x27f9ffff
add eax, edx
push 0x652bffff
mov dword [0x42bd0c], eax
call fcn.0040e540
mov byte [0x42bcd8], al
mov eax, dword [esp + 0x1c]
add esp, 0x10
cmp eax, ebp
jne 0x41468c
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push eax
push ebp
push ebp
call dword [sym.imp.KERNEL32.DLL_CreateMutexA]
push 0x16d9ffff
push 0xf419ffff
mov dword [0x42c1e4], eax
call fcn.0040e5d0
add esp, 8
mov byte [0x42bcd9], al
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, 0xb7
jne 0x414795
movsx ecx, word [0x42bce4]
movsx edx, word [0x42bcf0]
push ecx
push edx
call fcn.0040e670
mov word [0x42bcf2], ax
movsx eax, word [0x42bcf0]
push eax
push 0x2c19ffff
call fcn.0040e670
movsx ecx, word [0x42bce6]
mov byte [0x42bce0], al
mov eax, ecx
shl eax, 7
sub eax, ecx
add esp, 0x10
neg eax
shl eax, 2
sub eax, ecx
lea edx, [eax + eax*8]
mov eax, dword [0x42c1e4]
shl edx, 0x12
sub edx, ecx
push eax
mov dword [0x42bd00], edx
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
movsx cx, byte [0x42bcd8]
mov dx, word [0x42bce6]
sub dx, cx
mov ecx, dword [0x42bd0c]
cmp ecx, ebp
mov ecx, dword [esp + 0xc]
setne al
cmp ecx, ebp
mov word [0x42bcf0], dx
mov byte [0x42bcdb], al
je 0x414783
mov al, byte [ecx - 1]
test al, al
je 0x414779
cmp al, 0xff
je 0x414779
dec al
pop ebp
mov byte [ecx - 1], al
xor al, al
mov ecx, dword [esp + 0x14]
mov dword fs:[0], ecx
add esp, 0x20
ret
dec ecx
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
xor al, al
pop ebp
mov ecx, dword [esp + 0x14]
mov dword fs:[0], ecx
add esp, 0x20
ret
push esi
push edi
push 0xc315ffff
push 0xb13fffff
call fcn.0040e580
mov cl, byte [0x42bd04]
lea edx, [esp + 0x18]
or cl, al
push edx
push 0xa
mov byte [0x42bcde], al
mov byte [0x42bcd9], cl
call fcn.0040e6f0
movsx eax, word [0x42bce4]
movsx ecx, byte [0x42bcdf]
inc eax
push ecx
push 0xde39ffff
mov byte [0x42bcdb], 1
mov dword [0x42bcfc], eax
call fcn.0040e500
mov esi, dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov edi, dword [sym.imp.KERNEL32.DLL_Sleep]
add esp, 0x18
mov word [0x42bcf2], ax
mov word [0x42bcee], 1
movsx edx, word [0x42bcee]
mov eax, dword [0x42bd14]
or edx, 0x809bffff
push eax
push 0x62b5ffff
mov dword [0x42bd00], edx
call fcn.0040e4c0
push 0xacf7ffff
push 0x6dafffff
mov word [0x42bcf2], ax
call fcn.0040e620
mov cl, byte [0x42bd14]
add esp, 0x10
mov byte [0x42bcd8], al
mov byte [0x42bcde], cl
push ebp
call dword [sym.imp.KERNEL32.DLL_SetLastError]
mov al, byte [0x42bcdf]
test al, al
je 0x414875
mov eax, dword [0x42bd10]
mov byte [0x42bcd8], 1
cmp eax, ebp
jne 0x41487c
mov byte [0x42bcd8], 0
mov edx, dword [0x42bcfc]
push 0x30e7ffff
push edx
call fcn.0040e580
mov byte [0x42bcda], al
push 0x3603ffff
movsx eax, word [0x42bcea]
push eax
call fcn.0040e4c0
movsx ecx, word [0x42bcee]
movsx edx, word [0x42bce4]
push ecx
push edx
mov byte [0x42bcd8], al
call fcn.0040e4c0
mov dword [0x42bd0c], eax
mov eax, dword [esp + 0x2c]
add esp, 0x18
cmp eax, ebp
jne 0x4148d3
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push eax
push ebp
push ebp
call dword [sym.imp.KERNEL32.DLL_CreateMutexA]
movsx ecx, word [0x42bcee]
mov dword [0x42c1e8], eax
sub ecx, 0x62780001
movsx ax, byte [0x42bcdd]
neg eax
push 0x6c7bffff
push 0x4027ffff
mov word [0x42bce8], ax
mov dword [0x42bd10], 0x3ffff
mov dword [0x42bd14], ecx
call fcn.0040e620
add esp, 8
mov dword [0x42bd0c], eax
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, 0xb7
jne 0x414ac1
mov edx, dword [0x42bd14]
push edx
push 0x67a7ffff
call fcn.0040e500
push 0xd1e9ffff
push 0xff01ffff
mov word [0x42bce6], ax
call fcn.0040e580
movsx ecx, word [0x42bcf2]
mov dword [0x42bd0c], eax
movsx eax, word [0x42bcea]
or eax, ecx
mov dword [0x42bd00], eax
call fcn.0041ff00
movsx edx, byte [0x42bcda]
push 0xf7dfffff
push edx
call fcn.0040e4c0
movsx ecx, byte [0x42bcda]
mov dword [0x42bd04], eax
movsx eax, byte [0x42bcde]
push eax
push ecx
call fcn.0040e620
add esp, 0x20
mov byte [0x42bcda], al
push 0x493e0
call edi
movsx edx, word [0x42bcec]
push 0x47e1ffff
push edx
call fcn.0040e500
movsx ecx, word [0x42bce6]
mov byte [0x42bcdd], al
movsx eax, word [0x42bce2]
push eax
push ecx
call fcn.0040e670
movsx edx, byte [0x42bcde]
mov word [0x42bce8], ax
mov eax, dword [0x42bd10]
push edx
push eax
call fcn.0040e540
mov ecx, dword [0x42bd08]
mov byte [0x42bcd8], al
push ecx
push 0xa4bfffff
call fcn.0040e5d0
push 0xf131ffff
push 0x965fffff
mov word [0x42bce8], ax
call fcn.0040e620
mov word [0x42bce8], ax
mov eax, dword [0x42bd00]
push eax
push eax
call fcn.0040e500
movsx ecx, word [0x42bcea]
mov byte [0x42bcda], al
add esp, 0x30
lea eax, [ecx*8]
mov byte [0x42bcd8], 0xff
sub eax, ecx
shl eax, 7
sub eax, ecx
neg eax
lea edx, [eax + eax*2]
mov eax, dword [0x42c1e8]
shl edx, 0x12
sub edx, ecx
push eax
mov dword [0x42bcfc], edx
call esi
movsx ecx, byte [0x42bcdf]
push 0xa395ffff
push ecx
call fcn.0040e620
push 0xcf8dffff
mov byte [0x42bcd9], al
push 0x73ddffff
call fcn.0040e580
movsx edx, word [0x42bcea]
mov word [0x42bcf2], ax
mov eax, dword [0x42bd14]
push edx
push eax
call fcn.0040e580
add esp, 0x18
mov word [0x42bcec], ax
jmp 0x414809
movsx ecx, byte [0x42bcdf]
push 0xd52fffff
push ecx
call fcn.0040e480
mov ecx, dword [esp + 0x1c]
add esp, 8
cmp ecx, ebp
mov word [0x42bce2], ax
pop edi
pop esi
je 0x414b12
mov al, byte [ecx - 1]
test al, al
je 0x414b08
cmp al, 0xff
je 0x414b08
dec al
pop ebp
mov byte [ecx - 1], al
mov al, 1
mov ecx, dword [esp + 0x14]
mov dword fs:[0], ecx
add esp, 0x20
ret
dec ecx
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov ecx, dword [esp + 0x18]
mov al, 1
pop ebp
mov dword fs:[0], ecx
add esp, 0x20
ret