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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x20
cmp dword [0x4eb1c0], 0
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x14], ecx
je 0x427998
mov ebx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 0x4eb1c8
call ebx
mov eax, dword [0x4eb1bc]
mov eax, dword [eax]
mov esi, 0x4eb1b8
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], eax
jmp 0x427774
mov ecx, 0x4eb1b8
call fcn.0042a9a0
jmp 0x427770
mov esi, dword [esp + 0x20]
test esi, esi
mov edi, dword [0x4eb1bc]
je 0x427786
cmp esi, 0x4eb1b8
je 0x42778b
call fcn.004309cc
mov ebp, dword [esp + 0x24]
cmp ebp, edi
je 0x42782f
test esi, esi
jne 0x4277a0
call fcn.004309cc
cmp ebp, dword [esi + 4]
jne 0x4277aa
call fcn.004309cc
mov esi, dword [ebp + 0x14]
lea ecx, [esp + 0x20]
call fcn.004269a0
cmp byte [esi + 0x60], 0
je 0x4277ed
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi + 0x64]
cmp eax, 0x7d0
jbe 0x427770
push 5
push str.infant_socket__delete
mov ecx, esi
call fcn.00428120
mov ecx, dword [esi + 0xc0]
mov edx, dword [esi + 0xbc]
push ecx
push edx
jmp 0x427761
cmp dword [esi + 0xb8], 2
jne 0x427770
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi + 0x68]
cmp eax, 0x7d0
jbe 0x427770
push 5
push str.infant_half_connected_socket__delete
mov ecx, esi
call fcn.00428120
mov eax, dword [esi + 0xc0]
mov ecx, dword [esi + 0xbc]
push eax
push ecx
jmp 0x427761
push 0x4eb1c8
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp dword [0x4eb1c0], 0
je 0x427998
cmp dword [0x4eb1a8], 0
jne 0x42785d
cmp dword [0x4ea15c], 0
je 0x427998
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x10]
push 0x32
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp dword [0x4eb1a8], 0
jne 0x427883
cmp dword [0x4ea15c], 0
je 0x427998
cmp eax, 0xffffffff
jne 0x427893
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x427983
cmp eax, 0x102
je 0x42798b
push 0x4eb1c8
xor ebp, ebp
call ebx
mov ecx, dword [0x4eb1bc]
mov edi, dword [ecx]
mov esi, 0x4eb1b8
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], esi
jmp 0x4278c8
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
test esi, esi
mov ebx, dword [0x4eb1bc]
je 0x4278da
cmp esi, 0x4eb1b8
je 0x4278df
call fcn.004309cc
cmp edi, ebx
je 0x427974
test esi, esi
jne 0x4278f0
call fcn.004309cc
cmp edi, dword [esi + 4]
jne 0x4278fa
call fcn.004309cc
mov esi, dword [edi + 0x14]
lea ecx, [esp + 0x28]
call fcn.004269a0
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedExchange]
push 0
lea edx, [esi + 0x6c]
push edx
call edi
test eax, eax
push 0
lea eax, [esi + 0x70]
setg bl
push eax
mov byte [esp + 0x24], bl
call edi
push 0
lea ecx, [esi + 0x74]
test eax, eax
push ecx
setg byte [esp + 0x18]
call edi
test eax, eax
setg al
test bl, bl
mov byte [esp + 0x18], al
jne 0x427955
cmp byte [esp + 0x10], bl
jne 0x427955
test al, al
jne 0x427955
cmp dword [esi + 0x5c], 0
jne 0x4278c0
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
push edx
push eax
push ecx
lea ecx, [esi + 0x58]
add ebp, 1
call fcn.00427540
jmp 0x4278c0
push 0x4eb1c8
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test ebp, ebp
jne 0x42798b
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [0x4eb1c0], 0
jne 0x42773e
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret