Function at 0x40c0f3
Capabilities:
Check mutex on windows

Disassembly:
mov eax, 0x41c0ec
call fcn.00418d60
sub esp, 0x20
push ebx
push esi
push edi
mov esi, ecx
call fcn.004154a0
mov dword [esi + 0x10], eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0040cbba
pop ecx
xor ebx, ebx
mov dword [ebp - 4], ebx
lea edi, [esi + 0x14]
push eax
mov ecx, edi
call dword [0x41e204]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
push 0x2e
mov ecx, edi
call dword [sym.imp.MSVCP71.dll_public:_wchar_t_const____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::c_str_void_const]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0040f7be
add esp, 0xc
mov dword [ebp - 4], 1
push eax
lea ecx, [esi + 0x30]
call dword [0x41e204]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea eax, [ebp - 0x2c]
push edi
push eax
call fcn.004101c0
pop ecx
pop ecx
mov dword [ebp - 4], 2
mov ecx, eax
call dword [sym.imp.MSVCP71.dll_public:_wchar_t_const____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::c_str_void_const]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [esi + 0x5c], eax
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
cmp dword [esi + 0x5c], ebx
jne 0x40c1e0
push str.create_tp_keep_alive_mutex_failed
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov dword [ebp - 4], 3
push 0xcc
push str.._tp_handler.cpp
lea eax, [ebp - 0x2c]
push eax
push str.false
call fcn.00412ed0
add esp, 0x10
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
push dword [esi + 0x5c]
jne 0x40c1fe
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0x5c], ebx
jmp 0x40c2b1
call fcn.0040f8d0
pop ecx
lea edi, [esi + 0xa4]
push ebx
mov ecx, edi
call fcn.0040ce88
mov ecx, esi
call fcn.0040b082
test al, al
mov ecx, esi
jne 0x40c230
call fcn.0040a9ec
mov ecx, edi
call fcn.0040ce1e
jmp 0x40c2b1
call fcn.0040a541
mov ecx, esi
call fcn.0040a2fe
push dword [esi + 0x68]
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov edi, 0xbb8
push edi
push dword [esi + 0x60]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, ebx
mov dword [ebp - 0x10], eax
jne 0x40c262
mov ecx, esi
call fcn.0040c067
cmp byte [esi + 0x4c], bl
jne 0x40c24a
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [ebp - 0x10], 0x102
je 0x40c282
mov ecx, dword [esi + 0x88]
add ecx, edi
cmp ecx, eax
jae 0x40c24a
mov ecx, esi
mov dword [esi + 0x88], eax
call fcn.0040b26b
cmp dword [esi + 0x58], ebx
jne 0x40c24a
mov ecx, esi
call fcn.0040aa73
test al, al
je 0x40c24a
lea ecx, [esi + 0xa4]
call fcn.0040ce1e
mov ecx, esi
call fcn.0040a4a8
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret