Function at 0x42c243
Capabilities:
Print debug messages

Disassembly:
mov eax, 0x436b90
call fcn.00435748
push ebx
push esi
mov esi, ecx
xor eax, eax
push edi
cmp dword [esi + 0x14], eax
je 0x42c419
cmp dword [esi + 8], eax
je 0x42c419
mov ecx, dword [esi + 0xc]
cmp ecx, eax
je 0x42c419
cmp dword [esi + 0x10], eax
je 0x42c419
mov edx, dword [esi + 0x1c]
mov ebx, dword [ebp + 0xc]
cmp ebx, dword [edx + 4]
jg 0x42c3fc
cmp ebx, eax
jle 0x42c3fc
mov edi, dword [ebp + 0x14]
mov eax, dword [ecx]
push edi
call dword [eax + 0x14]
test eax, eax
jne 0x42c2fc
cmp edi, 0xffffffff
jne 0x42c2dc
lea ecx, [ebp + 0xc]
call sub.MFC42.DLL_CString::CString
and dword [ebp - 4], 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
lea eax, [ebp + 0xc]
push str.m_pCSemaphoreWrite__Lock_0x_x__fail__errno_d_n
push eax
call sub.MFC42.DLL_CString::Format
add esp, 0x10
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
or dword [ebp - 4], edi
lea ecx, [ebp + 0xc]
call fcn.00434f9a
mov eax, dword [0x45479c]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
lea edi, [eax + 4]
mov dword [edi], 0xfa3
jmp 0x42c434
mov ecx, dword [esi + 0x10]
push edi
mov eax, dword [ecx]
call dword [eax + 0x14]
test eax, eax
jne 0x42c384
push 1
cmp edi, 0xffffffff
pop ebx
jne 0x42c349
lea ecx, [ebp + 0x14]
call sub.MFC42.DLL_CString::CString
mov dword [ebp - 4], ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
lea eax, [ebp + 0x14]
push str.m_pCSemaphoreExclusive__Lock_0x_x__fail__errno_d_n
push eax
call sub.MFC42.DLL_CString::Format
add esp, 0x10
push dword [ebp + 0x14]
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
or dword [ebp - 4], edi
lea ecx, [ebp + 0x14]
call fcn.00434f9a
mov eax, dword [0x45479c]
mov ecx, dword fs:[0x2c]
push 0
push ebx
mov edi, dword [ecx + eax*4]
lea edi, [edi + 4]
mov dword [edi], 0xfa4
mov esi, dword [esi + 0xc]
mov ecx, esi
mov eax, dword [esi]
call dword [eax + 0x18]
test eax, eax
jne 0x42c434
mov dword [edi], 0xfa6
jmp 0x42c434
mov eax, dword [0x45479c]
mov ecx, dword fs:[0x2c]
push ebx
mov ebx, dword [ebp + 8]
mov eax, dword [ecx + eax*4]
push ebx
and dword [eax + 4], 0
lea edi, [eax + 4]
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax + 8]
imul ecx, dword [eax + 4]
add ecx, dword [esi + 0x18]
push ecx
call sub.MSVCRT.dll_memcpy
mov ecx, dword [esi + 0x1c]
add esp, 0xc
mov eax, dword [ecx + 8]
push 0
inc eax
push 1
cdq
idiv dword [ecx]
mov dword [ecx + 8], edx
mov eax, dword [esi + 0x1c]
mov ecx, dword [ebx]
pop ebx
add dword [eax + 0x10], ecx
mov ecx, dword [esi + 8]
push ebx
mov eax, dword [ecx]
call dword [eax + 0x18]
test eax, eax
jne 0x42c3ed
mov ecx, dword [esi + 0xc]
push 0
push ebx
mov eax, dword [ecx]
call dword [eax + 0x18]
mov esi, dword [esi + 0x10]
push 0
push ebx
mov ecx, esi
mov eax, dword [esi]
call dword [eax + 0x18]
jmp 0x42c434
mov eax, dword [0x45479c]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
lea edi, [eax + 4]
mov dword [edi], 0xfa8
jmp 0x42c434
mov eax, dword [0x45479c]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
lea edi, [eax + 4]
mov dword [edi], 0xfa1
mov eax, dword [edi]
mov ecx, dword [ebp - 0xc]
neg eax
pop edi
pop esi
sbb eax, eax
pop ebx
mov dword fs:[0], ecx
leave
ret 0x10