Function at 0x555811c
Capabilities:
Get socket status

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x354
mov eax, dword [0x53f40dc]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 8]
xorps xmm0, xmm0
mov ecx, dword [ebp + 0x10]
push ebx
xor ebx, ebx
mov dword [ebp - 0x320], ecx
mov dword [ebp - 0x324], edx
movlpd qword [ebp - 0x344], xmm0
mov dword [ebp - 0x33c], ebx
mov dword [ebp - 0x328], ebx
push esi
push edi
test edx, edx
je 0x5558175
mov esi, dword [ebp + 0xc]
mov eax, ebx
test esi, esi
je 0x5558175
cmp dword [edx + eax*8], 0xffffffff
jne 0x555818b
inc eax
cmp eax, esi
jb 0x555816a
push ecx
call fcn.055588a9
pop ecx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0557c24c
leave
ret
test ecx, ecx
jle 0x55581b4
lea eax, [ebp - 0x354]
mov dword [ebp - 0x328], ecx
push eax
call fcn.0555b2d4
mov edx, dword [ebp - 0x324]
lea edi, [ebp - 0x344]
mov esi, eax
pop ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
or dword [ebp - 0x31c], 0xffffffff
mov esi, ebx
mov edi, ebx
mov dword [ebp - 0x108], esi
mov ecx, ebx
mov dword [ebp - 0x20c], edi
mov eax, ebx
mov dword [ebp - 0x310], ecx
mov dword [ebp - 0x314], eax
jmp 0x55581e3
mov edx, dword [ebp - 0x324]
xor ebx, ebx
mov word [edx + eax*8 + 6], bx
mov edx, dword [edx + eax*8]
cmp edx, 0xffffffff
je 0x55582f4
mov ebx, dword [ebp - 0x324]
push 0
movzx ebx, word [ebx + eax*8 + 4]
mov dword [ebp - 0x318], ebx
test ebx, 0x710
pop ebx
je 0x55582f4
cmp edx, dword [ebp - 0x31c]
mov eax, edx
cmovbe eax, dword [ebp - 0x31c]
mov dword [ebp - 0x31c], eax
mov eax, dword [ebp - 0x318]
test eax, 0x300
je 0x555826f
mov eax, ebx
test esi, esi
je 0x555824c
cmp dword [ebp + eax*4 - 0x104], edx
je 0x555824c
inc eax
cmp eax, esi
jb 0x555823e
cmp eax, esi
jne 0x5558269
cmp esi, 0x40
jae 0x5558269
mov dword [ebp + eax*4 - 0x104], edx
mov esi, dword [ebp - 0x108]
inc esi
mov dword [ebp - 0x108], esi
mov eax, dword [ebp - 0x318]
test al, 0x10
je 0x55582aa
mov eax, ebx
test edi, edi
je 0x5558287
cmp dword [ebp + eax*4 - 0x208], edx
je 0x5558287
inc eax
cmp eax, edi
jb 0x5558279
cmp eax, edi
jne 0x55582a4
cmp edi, 0x40
jae 0x55582a4
mov dword [ebp + eax*4 - 0x208], edx
mov edi, dword [ebp - 0x20c]
inc edi
mov dword [ebp - 0x20c], edi
mov eax, dword [ebp - 0x318]
test eax, 0x600
je 0x55582ee
mov eax, ebx
test ecx, ecx
je 0x55582c5
cmp dword [ebp + eax*4 - 0x30c], edx
je 0x55582c5
inc eax
cmp eax, ecx
jb 0x55582b7
cmp eax, ecx
jne 0x55582e2
cmp ecx, 0x40
jae 0x55582e2
mov dword [ebp + eax*4 - 0x30c], edx
mov ecx, dword [ebp - 0x310]
inc ecx
mov dword [ebp - 0x310], ecx
mov eax, dword [ebp - 0x31c]
mov dword [ebp - 0x31c], eax
mov eax, dword [ebp - 0x314]
inc eax
mov dword [ebp - 0x314], eax
cmp eax, dword [ebp + 0xc]
jb 0x55581dd
test esi, esi
jne 0x555831b
test edi, edi
jne 0x555831b
test ecx, ecx
jne 0x555831b
push dword [ebp - 0x320]
jmp 0x5558176
and dword [ebp - 0x314], 0
lea edx, [ebp - 0x330]
mov eax, dword [ebp - 0x320]
test eax, eax
cmovs edx, dword [ebp - 0x314]
mov dword [ebp - 0x334], edx
mov edx, dword [ebp - 0x31c]
inc edx
mov dword [ebp - 0x314], edx
test eax, eax
jle 0x555837f
mov eax, dword [ebp - 0x328]
cdq
mov dword [ebp - 0x318], 0x3e8
idiv dword [ebp - 0x318]
mov dword [ebp - 0x330], eax
imul eax, edx, 0x3e8
mov edx, dword [ebp - 0x314]
mov dword [ebp - 0x32c], eax
jmp 0x555838d
jne 0x555838d
mov dword [ebp - 0x330], ebx
mov dword [ebp - 0x32c], ebx
and dword [ebp - 0x318], 0
lea eax, [ebp - 0x310]
push dword [ebp - 0x334]
test ecx, ecx
cmove eax, dword [ebp - 0x318]
xor ecx, ecx
push eax
test edi, edi
lea eax, [ebp - 0x20c]
cmove eax, ecx
test esi, esi
push eax
lea eax, [ebp - 0x108]
cmove eax, ecx
push eax
push edx
call dword [sym.imp.WS2_32.dll_select]
cmp eax, 0xffffffff
jne 0x555845d
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
test eax, eax
je 0x55583ee
cmp dword [0x552b44c], 0
jne 0x5558461
cmp eax, 0x2714
jne 0x5558461
mov eax, dword [ebp - 0x320]
test eax, eax
jle 0x555843e
lea eax, [ebp - 0x354]
push eax
call fcn.0555b2d4
sub esp, 0xc
lea esi, [ebp - 0x344]
mov edi, esp
sub esp, 0x10
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, eax
mov edi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0555b364
mov ecx, dword [ebp - 0x320]
add esp, 0x20
sub ecx, eax
mov dword [ebp - 0x328], ecx
test ecx, ecx
jle 0x555845b
mov eax, dword [ebp - 0x320]
mov esi, dword [ebp - 0x108]
mov edi, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x310]
mov edx, dword [ebp - 0x314]
jmp 0x555834a
mov eax, ebx
test eax, eax
jns 0x5558469
or eax, 0xffffffff
jmp 0x555817c
jne 0x5558472
xor eax, eax
jmp 0x555817c
mov esi, dword [ebp - 0x324]
mov eax, dword [ebp + 0xc]
add esi, 6
xor ecx, ecx
cmp dword [esi - 6], 0xffffffff
mov word [esi], cx
je 0x55584ea
lea eax, [ebp - 0x108]
push eax
push dword [esi - 6]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x55584a4
mov eax, 0x300
or word [esi], ax
lea eax, [ebp - 0x20c]
push eax
push dword [esi - 6]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x55584bb
or word [esi], 0x10
lea eax, [ebp - 0x310]
push eax
push dword [esi - 6]
call sub.WS2_32.dll___WSAFDIsSet
movzx ecx, word [esi]
test eax, eax
je 0x55584df
or ecx, 0x400
mov word [esi], cx
movzx eax, cx
jmp 0x55584e1
mov eax, ecx
test ax, ax
mov eax, dword [ebp + 0xc]
je 0x55584ea
inc ebx
add esi, 8
sub eax, 1
mov dword [ebp + 0xc], eax
jne 0x555847e
mov eax, ebx
jmp 0x555817c