Function at 0x4771e0
Capabilities:
Get socket status

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x670
mov eax, dword [0x4b6018]
xor eax, ebp
mov dword [ebp - 0x238], eax
mov dword [ebp - 0x670], ecx
mov dword [ebp - 8], 0
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x120], 0
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x118], ecx
mov dword [ebp - 0x114], 0
mov edx, dword [ebp - 0x670]
cmp dword [edx + 0x148], 0
jne 0x477265
mov dword [ebp - 0x644], 0x19a
mov eax, dword [ebp - 0x644]
mov dword [ebp - 0x640], eax
push 0x4aec94
lea ecx, [ebp - 0x640]
push ecx
call sub.MSVCR90.dll__CxxThrowException
mov byte [ebp - 1], 0
movzx edx, byte [ebp - 1]
test edx, edx
jne 0x477629
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x22c], 0
jmp 0x4772a4
mov eax, dword [ebp - 0x22c]
add eax, 1
mov dword [ebp - 0x22c], eax
mov ecx, dword [ebp - 0x22c]
cmp ecx, dword [ebp - 0x110]
jae 0x4772d1
mov edx, dword [ebp - 0x22c]
mov eax, dword [ebp - 0x670]
mov ecx, dword [ebp + edx*4 - 0x10c]
cmp ecx, dword [eax + 0x14c]
jne 0x4772cf
jmp 0x4772d1
jmp 0x477295
mov edx, dword [ebp - 0x22c]
cmp edx, dword [ebp - 0x110]
jne 0x477310
cmp dword [ebp - 0x110], 0x40
jae 0x477310
mov eax, dword [ebp - 0x22c]
mov ecx, dword [ebp - 0x670]
mov edx, dword [ecx + 0x14c]
mov dword [ebp + eax*4 - 0x10c], edx
mov eax, dword [ebp - 0x110]
add eax, 1
mov dword [ebp - 0x110], eax
xor ecx, ecx
jne 0x477289
cmp dword [ebp - 0x120], 0
je 0x4773b4
mov dword [ebp - 0x230], 0
jmp 0x477340
mov edx, dword [ebp - 0x230]
add edx, 1
mov dword [ebp - 0x230], edx
mov eax, dword [ebp - 0x230]
cmp eax, dword [ebp - 0x228]
jae 0x47736d
mov ecx, dword [ebp - 0x230]
mov edx, dword [ebp - 0x670]
mov eax, dword [ebp + ecx*4 - 0x224]
cmp eax, dword [edx + 0x14c]
jne 0x47736b
jmp 0x47736d
jmp 0x477331
mov ecx, dword [ebp - 0x230]
cmp ecx, dword [ebp - 0x228]
jne 0x4773ac
cmp dword [ebp - 0x228], 0x40
jae 0x4773ac
mov edx, dword [ebp - 0x230]
mov eax, dword [ebp - 0x670]
mov ecx, dword [eax + 0x14c]
mov dword [ebp + edx*4 - 0x224], ecx
mov edx, dword [ebp - 0x228]
add edx, 1
mov dword [ebp - 0x228], edx
xor eax, eax
jne 0x477325
lea ecx, [ebp - 0x118]
push ecx
push 0
lea edx, [ebp - 0x228]
push edx
lea eax, [ebp - 0x110]
push eax
mov ecx, dword [ebp - 0x670]
mov edx, dword [ecx + 0x14c]
add edx, 1
push edx
call dword [sym.imp.WS2_32.dll_select]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0xffffffff
jne 0x477425
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x64c], 0x6d
mov eax, dword [ebp - 0x64c]
mov dword [ebp - 0x648], eax
push 0x4aec94
lea ecx, [ebp - 0x648]
push ecx
call sub.MSVCR90.dll__CxxThrowException
cmp dword [ebp - 8], 0
jne 0x477466
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x654], 0x192
mov edx, dword [ebp - 0x654]
mov dword [ebp - 0x650], edx
push 0x4aec94
lea eax, [ebp - 0x650]
push eax
call sub.MSVCR90.dll__CxxThrowException
lea ecx, [ebp - 0x110]
push ecx
mov edx, dword [ebp - 0x670]
mov eax, dword [edx + 0x14c]
push eax
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
jne 0x4774b1
cmp dword [ebp - 0x120], 0
je 0x477624
lea ecx, [ebp - 0x228]
push ecx
mov edx, dword [ebp - 0x670]
mov eax, dword [edx + 0x14c]
push eax
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x477624
mov ecx, 1
test ecx, ecx
je 0x477624
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x63c], 0x400
push 0x400
lea edx, [ebp - 0x638]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00409f80
add esp, 0xc
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0040b460
add esp, 8
mov dword [ebp - 0x234], eax
cmp dword [ebp - 0x234], 0
jne 0x4775af
mov eax, dword [ebp - 0x11c]
add eax, dword [ebp - 8]
cmp eax, 0x27ff
jle 0x47755b
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x65c], 0x198
mov ecx, dword [ebp - 0x65c]
mov dword [ebp - 0x658], ecx
push 0x4aec94
lea edx, [ebp - 0x658]
push edx
call sub.MSVCR90.dll__CxxThrowException
mov eax, dword [ebp - 8]
push eax
lea ecx, [ebp - 0x638]
push ecx
mov edx, dword [ebp - 0x670]
mov eax, dword [edx + 0x148]
add eax, dword [ebp - 0x11c]
push eax
call sub.MSVCR90.dll_memcpy
add esp, 0xc
mov ecx, dword [ebp - 0x11c]
add ecx, dword [ebp - 8]
mov dword [ebp - 0x11c], ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00409f60
add esp, 4
test eax, eax
je 0x4775a7
jmp 0x4774b1
mov byte [ebp - 1], 1
jmp 0x477624
cmp dword [ebp - 0x234], 6
jne 0x4775c0
mov byte [ebp - 1], 1
jmp 0x477624
cmp dword [ebp - 0x234], 2
jne 0x4775cd
jmp 0x477624
cmp dword [ebp - 0x234], 3
jne 0x4775e4
mov dword [ebp - 0x120], 1
jmp 0x477624
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x664], 0x19e
mov eax, dword [ebp - 0x664]
mov dword [ebp - 0x660], eax
push 0x4aec94
lea ecx, [ebp - 0x660]
push ecx
call sub.MSVCR90.dll__CxxThrowException
jmp 0x4774b1
jmp 0x477269
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x228], 0
mov edx, dword [ebp - 0x670]
mov eax, dword [edx + 0x148]
mov ecx, dword [ebp - 0x11c]
mov byte [eax + ecx], 0
cmp dword [ebp - 0x11c], 0
jne 0x477683
mov dword [ebp - 0x66c], 0x190
mov edx, dword [ebp - 0x66c]
mov dword [ebp - 0x668], edx
push 0x4aec94
lea eax, [ebp - 0x668]
push eax
call sub.MSVCR90.dll__CxxThrowException
mov ecx, dword [ebp - 0x238]
xor ecx, ebp
call fcn.00408de6
mov esp, ebp
pop ebp
ret 8