Function at 0x492b9c
Capabilities:
Get socket status
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
mov edi, edx
mov ebx, eax
xor eax, eax
push ebp
push 0x492eb2
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebx + 0x540], 0xffffffff
jne 0x492bed
cmp dword [ebx + 0x544], 0
jne 0x492bed
mov ecx, 0x492ec8
mov dl, 1
mov eax, dword [0x490e14]
call fcn.0040eff4
call fcn.004046c4
cmp byte [ebx + 0x54c], 0
je 0x492c0c
mov ecx, 0x492ef0
mov dl, 1
mov eax, dword [0x490e14]
call fcn.0040eff4
call fcn.004046c4
mov esi, edi
cmp esi, 0xffffffff
je 0x492c1b
cmp esi, 0x2ee
jle 0x492c20
mov esi, 0x2ee
cmp byte [ebx + 0x532], 0
jne 0x492e8a
cmp byte [ebx + 0x54d], 0
je 0x492e31
mov eax, 0x104
call fcn.00402a38
mov edi, eax
mov dword [edi], 1
mov eax, dword [ebx + 0x540]
mov dword [edi + 4], eax
cmp dword [ebx + 0x550], 0
jl 0x492c78
mov eax, 8
call fcn.00402a38
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov edx, dword [ebx + 0x550]
mov dword [eax], edx
jmp 0x492c7d
xor eax, eax
mov dword [ebp - 8], eax
cmp byte [ebx + 0x54f], 0
je 0x492dfd
mov eax, dword [ebp - 8]
push eax
push 0
push 0
push edi
mov eax, dword [ebx + 0x540]
push eax
call sub.wsock32.dll_select
test eax, eax
jle 0x492dfd
mov ecx, 0x492f28
mov dl, 4
mov eax, ebx
call fcn.00491c84
push 0
push esi
lea eax, [ebx + 0x244]
push eax
mov eax, dword [ebx + 0x540]
push eax
call sub.wsock32.dll_recv
mov esi, eax
cmp esi, 0xffffffff
jne 0x492d92
call sub.wsock32.dll_WSAGetLastError
mov esi, eax
mov eax, dword [ebp - 4]
call fcn.00404dac
lea eax, [ebx + 0x544]
call fcn.00404dac
mov edx, 0x104
mov eax, edi
call fcn.00402a58
mov edx, 8
mov eax, dword [ebp - 8]
call fcn.00402a58
mov ecx, 0x492f48
mov dl, 7
mov eax, ebx
call fcn.00491c84
mov eax, esi
sub eax, 0x2710
sub eax, 4
je 0x492d62
add eax, 0xffffffe1
sub eax, 2
jb 0x492d62
sub eax, 3
je 0x492d62
sub eax, 5
je 0x492d62
mov ecx, 0x492f68
mov dl, 2
mov eax, ebx
call fcn.00491c84
mov eax, ebx
call fcn.00492868
cmp word [ebx + 0x56a], 0
je 0x492d62
mov edx, ebx
mov eax, dword [ebx + 0x56c]
call dword [ebx + 0x568]
lea edx, [ebp - 0x14]
mov eax, esi
call fcn.00493648
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
mov edx, 0x492f98
call fcn.004050cc
mov ecx, dword [ebp - 0x10]
mov dl, 1
mov eax, dword [0x490e14]
call fcn.0040eff4
call fcn.004046c4
jmp 0x492dfd
test esi, esi
jle 0x492dcc
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x1c]
lea edx, [ebx + 0x244]
mov ecx, 0x2ee
call fcn.00404e9c
mov eax, dword [ebp - 0x1c]
mov ecx, esi
mov edx, 1
call fcn.004052d8
mov edx, dword [ebp - 0x18]
lea eax, [ebx + 0x544]
call fcn.00405088
jmp 0x492dfd
test esi, esi
jne 0x492dfd
mov ecx, 0x492fb8
mov dl, 2
mov eax, ebx
call fcn.00491c84
mov eax, ebx
call fcn.00492868
cmp word [ebx + 0x56a], 0
je 0x492dfd
mov edx, ebx
mov eax, dword [ebx + 0x56c]
call dword [ebx + 0x568]
mov eax, dword [ebp - 4]
mov edx, dword [ebx + 0x544]
call fcn.00404e00
lea eax, [ebx + 0x544]
call fcn.00404dac
mov edx, 0x104
mov eax, edi
call fcn.00402a58
mov edx, 8
mov eax, dword [ebp - 8]
call fcn.00402a58
jmp 0x492e97
cmp edi, 0xffffffff
je 0x492e6f
mov eax, dword [ebx + 0x544]
call fcn.00405080
cmp edi, eax
jge 0x492e6f
mov eax, dword [ebp - 4]
push eax
mov ecx, edi
mov edx, 1
mov eax, dword [ebx + 0x544]
call fcn.004052d8
lea eax, [ebx + 0x544]
mov ecx, edi
mov edx, 1
call fcn.00405318
jmp 0x492e97
mov eax, dword [ebp - 4]
mov edx, dword [ebx + 0x544]
call fcn.00404e00
lea eax, [ebx + 0x544]
call fcn.00404dac
jmp 0x492e97
mov ecx, dword [ebp - 4]
lea edx, [ebp - 0xc]
mov eax, ebx
call fcn.00493120
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x492eb9
lea eax, [ebp - 0x1c]
mov edx, 5
call fcn.00404dd0
ret