Function at 0x43c010
Capabilities:
Check for time delay via gettickcount

Disassembly:
push 0x7c
push 0x4bd070
call fcn.0046e650
mov edi, ecx
mov dword [ebp - 0x3c], edi
lea eax, [edi + 0x28]
push eax
call dword [sym.imp.KERNEL32.DLL_InterlockedIncrement]
push dword [edi + 8]
lea ecx, [ebp - 0x4c]
call fcn.0044142c
xor esi, esi
mov ebx, esi
cmp dword [edi + 4], esi
jne 0x43c049
mov esi, 0xbb8
jmp 0x43c291
mov byte [ebp - 0x31], 1
cmp byte [0x4c1008], bl
je 0x43c1e6
cmp byte [edi + 0x2c], bl
je 0x43c1e6
call sub.KERNEL32.DLL_GetTickCount
mov dword [ebp - 0x40], eax
push dword [0x4c1004]
push dword [edi + 4]
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
mov ebx, eax
mov dword [ebp - 0x38], ebx
cmp ebx, 0xffffffff
jne 0x43c0c7
lea ecx, [ebp - 0x4c]
call fcn.0043fcdc
push eax
call dword [sym.imp.KERNEL32.DLL_GetLastError]
push eax
push 0xa8
push str.......SharedThreadsWin32ECMutex.cpp
push esi
lea eax, [ebp - 0x58]
push eax
call fcn.0042bf8e
add esp, 0x10
mov ecx, eax
call fcn.0043fcdc
push eax
push str.Locking_mutex_failed__WAIT_FAILED__lastErr___u__name:___s_
call fcn.00441348
add esp, 0x10
lea ecx, [ebp - 0x58]
call fcn.0044145c
mov eax, 0x102
cmp ebx, eax
sete byte [ebp - 0x31]
cmp ebx, eax
jne 0x43c1e6
call sub.KERNEL32.DLL_GetTickCount
sub eax, dword [ebp - 0x40]
mov ecx, dword [0x4c1004]
add ecx, 0xfa0
cmp eax, ecx
jae 0x43c1e6
mov esi, dword [edi + 8]
lea ecx, [edi + 0xc]
call fcn.0043fcdc
push eax
push dword [edi + 0x18]
push esi
push str.Deadlock_detected_while_trying_to_lock_mutex__s__owned_by_thread__d__s_.
xor esi, esi
push esi
push esi
push 6
call fcn.00404b89
add esp, 0x1c
lea ecx, [ebp - 0x30]
call fcn.00438a1f
push dword [edi + 0x20]
push str.Locked_from:_0x_X:
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.0043a3c2
add esp, 0x10
lea ecx, [ebp - 0x78]
call fcn.0043634f
lea ecx, [ebp - 0x30]
call fcn.0043fcdc
push eax
push 0x4a46fc
push esi
push esi
push 2
call fcn.00404b89
push str.Current_thread_context:
push esi
push esi
push 6
call fcn.00404b89
add esp, 0x24
mov dword [ebp - 4], esi
push esi
push esi
push esi
push 0xe0000002
call dword [sym.imp.KERNEL32.DLL_RaiseException]
cmp byte [ebp - 0x31], 0
je 0x43c1f9
push 0xffffffffffffffff
push dword [edi + 4]
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x43c23e
mov esi, dword [edi + 8]
call dword [sym.imp.KERNEL32.DLL_GetLastError]
push eax
push esi
push 0xf6
push str.......SharedThreadsWin32ECMutex.cpp
push 0
lea eax, [ebp - 0x64]
push eax
call fcn.0042bf8e
add esp, 0x10
mov ecx, eax
call fcn.0043fcdc
push eax
push str.Locking_mutex___s__failed__lastErr___d
call fcn.00441348
add esp, 0x10
lea ecx, [ebp - 0x64]
call fcn.0044145c
test ebx, ebx
je 0x43c262
cmp ebx, 0x80
je 0x43c25b
cmp ebx, 0xffffffff
mov esi, 0x7d1
jne 0x43c291
mov esi, 0xbbb
jmp 0x43c291
mov esi, 0xbbd
jmp 0x43c28a
lea esi, [edi + 0xc]
push esi
call fcn.0042c0a1
pop ecx
test al, al
jne 0x43c27c
push 0x4a3da4
mov ecx, esi
call fcn.0041586b
call dword [sym.imp.KERNEL32.DLL_GetCurrentThreadId]
mov dword [edi + 0x18], eax
mov esi, 0x7d0
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 4]
lea ecx, [ebp - 0x4c]
call fcn.0044145c
mov eax, esi
call fcn.0046e698
ret