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

Disassembly:
push 0x7c
push 0x4bd0c0
call fcn.0046e760
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.0044153c
xor esi, esi
mov ebx, esi
cmp dword [edi + 4], esi
jne 0x43c159
mov esi, 0xbb8
jmp 0x43c3a1
mov byte [ebp - 0x31], 1
cmp byte [0x4c1008], bl
je 0x43c2f6
cmp byte [edi + 0x2c], bl
je 0x43c2f6
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 0x43c1d7
lea ecx, [ebp - 0x4c]
call fcn.0043fdec
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.0042c09a
add esp, 0x10
mov ecx, eax
call fcn.0043fdec
push eax
push str.Locking_mutex_failed__WAIT_FAILED__lastErr___u__name:___s_
call fcn.00441458
add esp, 0x10
lea ecx, [ebp - 0x58]
call fcn.0044156c
mov eax, 0x102
cmp ebx, eax
sete byte [ebp - 0x31]
cmp ebx, eax
jne 0x43c2f6
call sub.KERNEL32.DLL_GetTickCount
sub eax, dword [ebp - 0x40]
mov ecx, dword [0x4c1004]
add ecx, 0xfa0
cmp eax, ecx
jae 0x43c2f6
mov esi, dword [edi + 8]
lea ecx, [edi + 0xc]
call fcn.0043fdec
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.00404c99
add esp, 0x1c
lea ecx, [ebp - 0x30]
call fcn.00438b2f
push dword [edi + 0x20]
push str.Locked_from:_0x_X:
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.0043a4d2
add esp, 0x10
lea ecx, [ebp - 0x78]
call fcn.0043645f
lea ecx, [ebp - 0x30]
call fcn.0043fdec
push eax
push 0x4a4714
push esi
push esi
push 2
call fcn.00404c99
push str.Current_thread_context:
push esi
push esi
push 6
call fcn.00404c99
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 0x43c309
push 0xffffffffffffffff
push dword [edi + 4]
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x43c34e
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.0042c09a
add esp, 0x10
mov ecx, eax
call fcn.0043fdec
push eax
push str.Locking_mutex___s__failed__lastErr___d
call fcn.00441458
add esp, 0x10
lea ecx, [ebp - 0x64]
call fcn.0044156c
test ebx, ebx
je 0x43c372
cmp ebx, 0x80
je 0x43c36b
cmp ebx, 0xffffffff
mov esi, 0x7d1
jne 0x43c3a1
mov esi, 0xbbb
jmp 0x43c3a1
mov esi, 0xbbd
jmp 0x43c39a
lea esi, [edi + 0xc]
push esi
call fcn.0042c1ad
pop ecx
test al, al
jne 0x43c38c
push 0x4a3dbc
mov ecx, esi
call fcn.0041597d
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.0044156c
mov eax, esi
call fcn.0046e7a8
ret