Function at 0x472791
Capabilities:
Get socket status

Disassembly:
push ecx
push esi
mov esi, ecx
mov eax, dword [esi + 0x19152]
test eax, eax
je 0x472b04
mov ecx, dword [esi + 0x19156]
sub ecx, eax
sar ecx, 2
je 0x472b04
test eax, eax
je 0x4727c4
mov edx, dword [esi + 0x19156]
sub edx, eax
sar edx, 2
jne 0x4727c9
call fcn.004c000c
mov eax, dword [esi + 0x19152]
mov ecx, dword [eax]
cmp byte [ecx + 0x1d], 0
jne 0x472b04
push ebx
push ebp
xor ebx, ebx
push edi
lea edi, [ebx + 0x2c]
lea ebp, [ebx + 1]
mov eax, dword [esi + 0x19152]
test eax, eax
je 0x4727fd
mov edx, dword [esi + 0x19156]
sub edx, eax
sar edx, 2
jne 0x472802
call fcn.004c000c
mov eax, dword [esi + 0x19152]
mov ecx, dword [eax]
cmp ebx, dword [ecx + 0x28]
jae 0x47283f
test eax, eax
je 0x472820
mov edx, dword [esi + 0x19156]
sub edx, eax
sar edx, 2
jne 0x472825
call fcn.004c000c
mov eax, dword [esi + 0x19152]
mov ecx, dword [eax]
mov edx, dword [esi + 0x68]
mov eax, dword [edi + ecx]
cmp eax, dword [edx + 0x10]
je 0x47283f
add ebx, ebp
add edi, 4
jmp 0x4727e6
mov eax, dword [esi + 0x19152]
test eax, eax
je 0x472856
mov ecx, dword [esi + 0x19156]
sub ecx, eax
sar ecx, 2
jne 0x47285b
call fcn.004c000c
mov edx, dword [esi + 0x19152]
mov eax, dword [edx]
cmp ebx, dword [eax + 0x28]
jne 0x4728de
mov eax, edx
test eax, eax
je 0x47287b
mov ecx, dword [esi + 0x19156]
sub ecx, eax
sar ecx, 2
jne 0x472880
call fcn.004c000c
mov edx, dword [esi + 0x19152]
mov eax, dword [edx]
cmp dword [eax + 0x28], ebp
jae 0x4728de
mov edi, dword [esi + 0x68]
mov eax, edx
test eax, eax
je 0x4728a3
mov ecx, dword [esi + 0x19156]
sub ecx, eax
sar ecx, 2
jne 0x4728a8
call fcn.004c000c
mov edx, dword [esi + 0x19152]
mov eax, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [eax + ebx*4 + 0x2c], ecx
mov eax, dword [esi + 0x19152]
test eax, eax
je 0x4728ce
mov edx, dword [esi + 0x19156]
sub edx, eax
sar edx, 2
jne 0x4728d3
call fcn.004c000c
mov eax, dword [esi + 0x19152]
mov eax, dword [eax]
add dword [eax + 0x28], ebp
xor ebx, ebx
lea edi, [ebx + 0x3c]
mov eax, dword [esi + 0x19152]
test eax, eax
je 0x4728fa
mov ecx, dword [esi + 0x19156]
sub ecx, eax
sar ecx, 2
jne 0x4728ff
call fcn.004c000c
mov edx, dword [esi + 0x19152]
mov eax, dword [edx]
cmp ebx, dword [eax + 0x38]
jae 0x47293e
mov eax, edx
test eax, eax
je 0x47291f
mov ecx, dword [esi + 0x19156]
sub ecx, eax
sar ecx, 2
jne 0x472924
call fcn.004c000c
mov edx, dword [esi + 0x19152]
mov eax, dword [edx]
mov ecx, dword [esi + 0x68]
mov edx, dword [edi + eax]
cmp edx, dword [ecx + 0x10]
je 0x47293e
add ebx, ebp
add edi, 4
jmp 0x4728e3
mov eax, dword [esi + 0x19152]
test eax, eax
je 0x472955
mov ecx, dword [esi + 0x19156]
sub ecx, eax
sar ecx, 2
jne 0x47295a
call fcn.004c000c
mov edx, dword [esi + 0x19152]
mov eax, dword [edx]
cmp ebx, dword [eax + 0x38]
jne 0x4729dd
mov eax, edx
test eax, eax
je 0x47297a
mov ecx, dword [esi + 0x19156]
sub ecx, eax
sar ecx, 2
jne 0x47297f
call fcn.004c000c
mov edx, dword [esi + 0x19152]
mov eax, dword [edx]
cmp dword [eax + 0x38], ebp
jae 0x4729dd
mov edi, dword [esi + 0x68]
mov eax, edx
test eax, eax
je 0x4729a2
mov ecx, dword [esi + 0x19156]
sub ecx, eax
sar ecx, 2
jne 0x4729a7
call fcn.004c000c
mov edx, dword [esi + 0x19152]
mov eax, dword [edx]
mov ecx, dword [edi + 0x10]
mov dword [eax + ebx*4 + 0x3c], ecx
mov eax, dword [esi + 0x19152]
test eax, eax
je 0x4729cd
mov edx, dword [esi + 0x19156]
sub edx, eax
sar edx, 2
jne 0x4729d2
call fcn.004c000c
mov eax, dword [esi + 0x19152]
mov eax, dword [eax]
add dword [eax + 0x38], ebp
mov eax, dword [esi + 0x19152]
test eax, eax
je 0x4729f4
mov ecx, dword [esi + 0x19156]
sub ecx, eax
sar ecx, 2
jne 0x4729f9
call fcn.004c000c
mov edi, dword [esi + 0x19152]
mov eax, edi
test eax, eax
je 0x472a12
mov edx, dword [esi + 0x19156]
sub edx, eax
sar edx, 2
jne 0x472a17
call fcn.004c000c
mov edx, dword [edi]
mov eax, dword [esi + 0x19152]
mov eax, dword [eax]
lea ecx, [esi + 0x80]
push ecx
add edx, 0x38
push edx
push 0
add eax, 0x28
push eax
push ebp
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
je 0x472b01
cmp eax, 0xffffffff
mov eax, dword [esi + 0x19152]
jne 0x472a8d
test eax, eax
je 0x472a5d
mov ecx, dword [esi + 0x19156]
sub ecx, eax
sar ecx, 2
jne 0x472a62
call fcn.004c000c
mov ecx, esi
call sub.WS2_32.dll_WSAGetLastError
push eax
push 0x500cd4
mov ecx, esi
call fcn.004726b0
push 0x522f88
lea edx, [esp + 0x20]
push edx
mov dword [esp + 0x24], 0
call fcn.004c0c8a
test eax, eax
je 0x472a9e
mov ecx, dword [esi + 0x19156]
sub ecx, eax
sar ecx, 2
jne 0x472aa3
call fcn.004c000c
mov eax, dword [esi + 0x19152]
mov edx, dword [eax]
push edx
mov ecx, esi
call fcn.004506c0
cmp eax, 3
jne 0x472aec
mov eax, dword [esi + 0x19152]
test eax, eax
je 0x472acf
mov ecx, dword [esi + 0x19156]
sub ecx, eax
sar ecx, 2
jne 0x472ad4
call fcn.004c000c
mov edx, dword [esi + 0x19152]
mov eax, dword [edx]
push eax
mov ecx, esi
call fcn.00450660
pop edi
pop ebp
pop ebx
pop esi
pop ecx
ret 8
cmp eax, ebp
jne 0x472b01
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
push ecx
push edx
mov ecx, esi
call fcn.00451da0
pop edi
pop ebp
pop ebx
pop esi
pop ecx
ret 8