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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x27c
mov eax, dword [0x4a3300]
xor eax, esp
mov dword [esp + 0x278], eax
push ebx
push esi
push edi
push 0x3f
lea eax, [esp + 0x245]
mov byte [esp + 0x244], 0
push 0
push eax
mov edi, ecx
call fcn.00453200
xorps xmm0, xmm0
mov dword [esp + 0x240], 0
add esp, 0xc
movq qword [esp + 0x238], xmm0
xor esi, esi
mov edx, 0xfff0
mov ecx, edi
call fcn.004017a0
mov dword [esp + esi*4 + 0x234], eax
inc esi
cmp esi, 3
jl 0x404944
mov esi, dword [esp + 0x234]
mov ebx, dword [esp + 0x23c]
mov edi, dword [esp + 0x238]
test esi, esi
jne 0x404982
test edi, edi
jne 0x404982
test ebx, ebx
je 0x404b3e
call fcn.00409e10
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
call fcn.00409e10
sub eax, dword [esp + 0x10]
sbb edx, dword [esp + 0x14]
test edx, edx
jg 0x404b3e
jl 0x4049b1
cmp eax, 0xbb8
ja 0x404b3e
test esi, esi
jne 0x4049c1
test edi, edi
jne 0x4049c1
test ebx, ebx
je 0x404b3e
push 0x100
lea eax, [esp + 0x28]
push 0
push eax
call fcn.00453200
add esp, 0xc
lea eax, [esp + 0x12c]
xor esi, esi
mov dword [esp + 0x20], esi
push 0x100
push esi
push eax
call fcn.00453200
xor edx, edx
add esp, 0xc
mov dword [esp + 0x1c], edx
xor edi, edi
mov dword [esp + 0x128], edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], 0x64
lea esp, [esp]
mov ecx, dword [esp + edi*4 + 0x234]
test ecx, ecx
je 0x404a7d
xor eax, eax
test esi, esi
je 0x404a2c
cmp dword [esp + eax*4 + 0x24], ecx
je 0x404a2c
inc eax
cmp eax, esi
jb 0x404a21
cmp eax, esi
jne 0x404a42
cmp esi, 0x40
jae 0x404a42
mov dword [esp + eax*4 + 0x24], ecx
mov esi, dword [esp + 0x20]
inc esi
mov dword [esp + 0x20], esi
xor eax, eax
test edx, edx
je 0x404a5e
jmp 0x404a50
cmp dword [esp + eax*4 + 0x12c], ecx
je 0x404a5e
inc eax
cmp eax, edx
jb 0x404a50
cmp eax, edx
jne 0x404a7d
cmp edx, 0x40
jae 0x404a7d
mov dword [esp + eax*4 + 0x12c], ecx
mov edx, dword [esp + 0x128]
inc edx
mov dword [esp + 0x128], edx
inc edi
cmp edi, 3
jl 0x404a10
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x12c]
push eax
push 0
lea eax, [esp + 0x2c]
push eax
push 0
call dword [sym.imp.WS2_32.dll_select]
xor edi, edi
mov esi, dword [esp + edi*4 + 0x234]
test esi, esi
je 0x404af7
push 0
push 0x40
lea eax, [esp + 0x248]
push eax
push esi
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
je 0x404ae5
cmp eax, 0x10
je 0x404b31
cmp eax, 0xffffffff
jne 0x404af7
mov ebx, dword [sym.imp.WS2_32.dll_WSAGetLastError]
call ebx
cmp eax, 0x2733
je 0x404af7
call ebx
cmp eax, 0x2749
je 0x404af7
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
mov dword [esp + edi*4 + 0x234], 0
inc edi
cmp edi, 3
jl 0x404aa1
call fcn.00409e10
sub eax, dword [esp + 0x10]
sbb edx, dword [esp + 0x14]
test edx, edx
jg 0x404b3e
jl 0x404b17
cmp eax, 0xbb8
ja 0x404b3e
mov ebx, dword [esp + 0x23c]
mov edi, dword [esp + 0x238]
mov esi, dword [esp + 0x234]
jmp 0x4049b1
call fcn.00409e10
mov ebx, eax
sub ebx, dword [esp + 0x10]
jmp 0x404b41
or ebx, 0xffffffff
xor esi, esi
mov eax, dword [esp + esi*4 + 0x234]
test eax, eax
je 0x404b60
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
mov dword [esp + esi*4 + 0x234], 0
inc esi
cmp esi, 3
jl 0x404b43
mov ecx, dword [esp + 0x284]
mov eax, ebx
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004524fc
mov esp, ebp
pop ebp
ret