Function at 0x10051f90
Capabilities:
Connect socket
Get socket status
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x228
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x130], 1
mov ecx, dword [eax]
lea eax, [ebp - 0x130]
push eax
push 0x8004667e
mov dword [ebp - 0x10], ecx
push ecx
call sub.ws2_32.dll_ioctlsocket
cmp eax, 0xffffffff
je 0x100520c7
mov eax, dword [ebp + 0x10]
cmp word [eax], 0
je 0x10051fef
movups xmm0, xmmword [eax + 4]
mov edx, dword [eax + 0x18]
lea ecx, [eax + 0x14]
mov bx, 0x17
mov esi, 0x1c
mov edi, 0x1c
jmp 0x10052003
lea ecx, [eax + 2]
xorps xmm0, xmm0
mov edi, 0x10
mov bx, 2
mov esi, 6
movzx eax, word [eax + esi]
mov ecx, dword [ecx]
mov word [ebp - 0x130], bx
rol ax, 8
mov word [ebp - 0x12e], ax
mov dword [ebp - 0x12c], ecx
movups xmmword [ebp - 0x128], xmm0
mov dword [ebp - 0x118], edx
push edi
lea ebx, [ebp - 0x130]
push ebx
mov esi, dword [ebp - 0x10]
push esi
call sub.ws2_32.dll_connect
cmp eax, 0xffffffff
je 0x10052068
mov byte [ebp - 0x18], 4
mov dword [ebp - 0x130], 0
push ebx
push 0x8004667e
push esi
call sub.ws2_32.dll_ioctlsocket
mov esi, dword [ebp + 8]
cmp eax, 0xffffffff
jne 0x100520d7
jmp 0x100520c7
call sub.ws2_32.dll_WSAGetLastError
mov edi, eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x130], 0
push ebx
push 0x8004667e
push esi
call sub.ws2_32.dll_ioctlsocket
mov esi, dword [ebp + 8]
cmp eax, 0xffffffff
je 0x100520c7
mov ecx, edi
call sym.std::sys::pal::windows::decode_error_kind::h7329ed9b84dd3c75
cmp al, 0xd
jne 0x100520d7
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
mov edx, edi
or edx, eax
jne 0x100520ed
test ecx, ecx
jne 0x100520ed
mov eax, dword [0x1012c7e8]
mov ecx, dword [0x1012c7ec]
mov dword [esi + 4], ecx
mov dword [esi], eax
jmp 0x100520e0
call sub.ws2_32.dll_WSAGetLastError
mov dword [esi + 4], eax
mov dword [esi], 0
jmp 0x100520e0
movsd xmm0, qword [ebp - 0x18]
movsd qword [esi], xmm0
mov eax, esi
add esp, 0x228
pop esi
pop edi
pop ebx
pop ebp
ret
cmp edi, 0x7fffffff
mov edx, 0x7fffffff
cmovae edi, edx
test eax, eax
mov eax, ecx
cmovne edi, edx
mov edx, 0x10624dd3
mul edx
mov eax, 1
mov dword [ebp - 0x20], edi
shr edx, 6
test edi, edi
cmovne eax, edx
cmp ecx, 0x3e8
cmovae eax, edx
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x128]
push 0xfc
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov edi, dword [ebp - 0x10]
lea eax, [ebp - 0x22c]
mov dword [ebp - 0x234], 1
mov dword [ebp - 0x230], edi
push 0xfc
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0x20]
mov dword [ebp - 0x130], 1
mov dword [ebp - 0x12c], edi
lea ecx, [ebp - 0x234]
push eax
push ebx
push ecx
push 0
push 1
call sub.ws2_32.dll_select
test eax, eax
je 0x100521ac
cmp eax, 0xffffffff
jne 0x100521b8
call sub.ws2_32.dll_WSAGetLastError
mov byte [esi], 0
mov byte [esi + 3], 0
mov word [esi + 1], 0
mov dword [esi + 4], eax
jmp 0x100520e0
mov byte [esi], 2
mov dword [esi + 4], 0x1012c804
jmp 0x100521e3
cmp dword [ebp - 0x234], 1
je 0x100521e0
lea eax, [ebp - 0x2c]
push dword [ebp + 0xc]
push eax
call sym.std::sys::pal::windows::net::Socket::take_error::h7ff2bdce0203c8c1
add esp, 8
cmp dword [ebp - 0x2c], 0
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
jne 0x100521f4
cmp al, 4
jne 0x100521f4
mov byte [esi], 4
lea eax, [ebp - 0x18]
push eax
call sym.core::ptr::drop_in_place_LT_std..io..error..Error_GT_::h2821df8af45b4312
add esp, 4
jmp 0x100520e0
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x100520e0