Function at 0x87bdb0
Capabilities:
Check for time delay via gettickcount
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0xb11a60
push 0xa847a0
mov eax, dword fs:[0]
push eax
sub esp, 0x470
mov eax, dword [0xb196ec]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x1c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x464], eax
mov esi, ecx
mov dword [ebp - 0x44c], esi
mov ebx, edx
mov dword [ebp - 0x460], ebx
xor edi, edi
mov dword [ebp - 4], edi
mov dword [ebp - 0x474], edi
mov dword [ebp - 0x46c], edi
mov byte [ebp - 0x3c], 0
mov byte [ebp - 0x2c], 0
mov dword [ebp - 0x450], edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x45c], eax
xor eax, eax
mov dword [ebp - 0x444], eax
cmp dword [0xbe69fc], edi
jne 0x87be68
mov dword [0xbe69fc], 1
lea ecx, [ebp - 0x444]
push ecx
push str.ExtendedDebug
mov ecx, str.SoftwareMicroWorld
mov edx, 0x80000002
call fcn.0094c0d0
mov eax, dword [ebp - 0x444]
cmp ebx, edi
je 0x87be6f
mov byte [ebx], 0
mov dword [esi], edi
lea edx, [ebp - 0x445]
mov dword [ebp - 0x478], edx
mov dword [ebp - 0x47c], 1
cmp eax, edi
mov edi, dword [ebp + 8]
je 0x87bea5
push edi
push eax
push str._EXT__u__IsSockRead__Soc_u_
push 0
call fcn.0096a780
add esp, 0x10
mov eax, dword [ebp - 0x444]
xor ecx, ecx
jne 0x87c1f7
mov ecx, dword [ebp + 0x14]
cmp dword [ecx], 0
jne 0x87c1f7
mov ecx, 0x800
mov esi, dword [ebp - 0x450]
cmp esi, ecx
jge 0x87c1f7
push edi
call fcn.0087bc50
add esp, 4
cmp eax, 0xffffffff
jne 0x87bf04
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, dword [ebp - 0x44c]
mov dword [edx], eax
test ebx, ebx
je 0x87c1f1
push 0x400
mov esi, ebx
call fcn.00960b00
add esp, 4
jmp 0x87c1f1
test eax, eax
jne 0x87bf5c
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x45c]
mov ecx, dword [ebp + 0x10]
cmp eax, ecx
jbe 0x87bf4d
mov eax, dword [ebp - 0x44c]
mov dword [eax], 1
test ebx, ebx
je 0x87c1f1
mov eax, 0x10624dd3
mul ecx
shr edx, 6
push edx
push str.connection_timed_out___d_secs__waiting_for_response
push ebx
call fcn.00a78f30
add esp, 0xc
jmp 0x87c1f1
mov esi, 0xa
call fcn.0094d160
jmp 0x87be9f
mov eax, dword [ebp - 0x444]
cmp dword [0xb587cc], 0
jne 0x87c1f7
test eax, eax
je 0x87bf84
push esi
push eax
push str._EXT__u__cn___d__WSAIoctl
push 0
call fcn.0096a780
add esp, 0x10
xor eax, eax
mov dword [ebp - 0x468], eax
mov dword [ebp - 0x454], eax
push eax
push eax
lea ecx, [ebp - 0x468]
push ecx
push 4
lea edx, [ebp - 0x454]
push edx
push eax
push eax
push 0x4004667f
push edi
call dword [sym.imp.WS2_32.dll_WSAIoctl]
mov esi, eax
mov dword [ebp - 0x470], esi
mov eax, dword [ebp - 0x444]
test eax, eax
je 0x87bfe9
push esi
mov ecx, dword [ebp - 0x468]
push ecx
mov edx, dword [ebp - 0x454]
push edx
push eax
push str._EXT__u__WSAIoctl:_NoOfBytesThatCanBeRead:_d__BytesReturned:_d__RetVal:_d
push 0
call fcn.0096a780
add esp, 0x18
mov eax, dword [ebp - 0x444]
mov dword [ebp - 0x458], 0
test eax, eax
je 0x87c00e
mov ecx, dword [ebp - 0x450]
push ecx
push eax
push str._EXT__u__cn___d__WSARecv
push 0
call fcn.0096a780
add esp, 0x10
push 0
push 0
lea edx, [ebp - 0x474]
push edx
lea eax, [ebp - 0x46c]
push eax
push 1
lea ecx, [ebp - 0x47c]
push ecx
push edi
call dword [sym.imp.WS2_32.dll_WSARecv]
mov edi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebx, eax
mov eax, dword [ebp - 0x444]
test eax, eax
je 0x87c0b4
mov cl, byte [ebp - 0x445]
push ebx
cmp cl, 0xd
jne 0x87c065
push 0xd
push edi
push eax
push str._EXT__u__iors___d__CharNum___d__Char___cr___WSALastErr___d
push 0
call fcn.0096a780
add esp, 0x18
jmp 0x87c0ae
cmp cl, 0xa
jne 0x87c07f
push 0xa
push edi
push eax
push str._EXT__u__iors___d__CharNum___d__Char___lf___WSALastErr___d
push 0
call fcn.0096a780
add esp, 0x18
jmp 0x87c0ae
test cl, cl
jne 0x87c098
push 0
push edi
push eax
push str._EXT__u__iors___d__CharNum___d__Char___null___WSALastErr___d
push 0
call fcn.0096a780
add esp, 0x18
jmp 0x87c0ae
movsx ecx, cl
push ecx
push ecx
push edi
push eax
push str._EXT__u__iors___d__CharNum___d__Char___c__WSALastErr___d
push 0
call fcn.0096a780
add esp, 0x1c
mov eax, dword [ebp - 0x444]
xor ecx, ecx
je 0x87c0cc
lea esi, [ecx + 2]
call fcn.0094d160
mov eax, dword [ebp - 0x444]
mov esi, dword [ebp - 0x470]
test edi, edi
jne 0x87c193
cmp dword [ebp - 0x46c], edi
jne 0x87c0ed
mov edx, dword [ebp - 0x44c]
mov dword [edx], 2
jmp 0x87c1f7
mov cl, byte [ebp - 0x445]
cmp cl, 0xa
jne 0x87c109
mov ecx, dword [ebp - 0x44c]
mov dword [ecx], 0x12
jmp 0x87c1f7
test cl, cl
je 0x87c123
mov edi, dword [ebp - 0x464]
mov edx, dword [ebp - 0x450]
mov byte [edi + edx], cl
inc edx
mov dword [ebp - 0x450], edx
test esi, esi
jne 0x87c179
cmp dword [ebp - 0x454], esi
jbe 0x87c140
mov ecx, 1
add dword [ebp - 0x458], ecx
sub dword [ebp - 0x454], ecx
test esi, esi
jne 0x87c179
cmp dword [ebp - 0x454], esi
jbe 0x87c179
cmp dword [ebp - 0x458], 0x100
jae 0x87c179
mov ecx, 0x800
cmp dword [ebp - 0x450], ecx
jge 0x87c179
cmp dword [0xb587cc], esi
jne 0x87c1f7
mov edi, dword [ebp + 8]
jmp 0x87bff3
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x45c], eax
mov edi, dword [ebp + 8]
mov ebx, dword [ebp - 0x460]
jmp 0x87be9f
mov edx, dword [ebp - 0x44c]
mov dword [edx], ebx
mov esi, dword [ebp - 0x460]
test esi, esi
je 0x87c1b8
push 0x400
call fcn.00960b00
add esp, 4
mov eax, dword [ebp - 0x444]
test eax, eax
je 0x87c1f7
push 0x400
lea esi, [ebp - 0x440]
call fcn.00960b00
add esp, 4
mov eax, dword [ebp - 0x44c]
mov ecx, dword [eax]
push ecx
mov edx, esi
push edx
mov eax, dword [ebp - 0x444]
push eax
push str._EXT__u__Error:_s__err_d_
push 0
call fcn.0096a780
add esp, 0x14
mov eax, dword [ebp - 0x444]
mov esi, dword [ebp - 0x44c]
cmp dword [esi], 0
jne 0x87c208
mov dword [esi], 0x58
mov edx, dword [ebp - 0x464]
mov ecx, dword [ebp - 0x450]
mov byte [edx + ecx], 0
test eax, eax
je 0x87c234
push edx
push ecx
push eax
push str._EXT__u__buf__u__s
push 0
call fcn.0096a780
add esp, 0x14
mov eax, dword [ebp - 0x444]
mov ecx, dword [ebp + 0x14]
cmp dword [ecx], 0
jne 0x87c27f
cmp dword [0xb587cc], 0
jne 0x87c27f
mov ecx, dword [esi]
cmp ecx, 0x12
je 0x87c25d
cmp ecx, 0x58
je 0x87c25d
test eax, eax
je 0x87c2a7
push eax
push str._EXT__u__Return_FALSE__B
jmp 0x87c29d
test eax, eax
je 0x87c271
push eax
push str._EXT__u__Return_TRUE_
push 0
call fcn.0096a780
add esp, 0xc
mov dword [ebp - 4], 0xfffffffe
mov eax, 1
jmp 0x87c2b0
test eax, eax
je 0x87c2a7
push eax
push str._EXT__u__Return_FALSE__A
jmp 0x87c29d
push 0
call fcn.0096a780
add esp, 0xc
mov dword [ebp - 4], 0xfffffffe
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.00a78f21
mov esp, ebp
pop ebp
ret