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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x230
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x14], 0x1003cc30
mov edx, dword [ebp + 0xc]
lea eax, [ebp - 0x18]
mov edi, dword [ebp + 8]
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
lea eax, [ebp - 0x138]
mov dword [ebp - 0x138], 1
mov ebx, dword [edx]
push eax
push 0x8004667e
push ebx
call dword [sym.imp.WS2_32.dll_ioctlsocket]
cmp eax, 0xffffffff
je 0x1002cb8c
mov eax, dword [ebp + 0x10]
cmp word [eax], 0
je 0x1002cabf
movups xmm0, xmmword [eax + 4]
mov esi, dword [eax + 0x18]
lea ecx, [eax + 0x14]
add eax, 0x1c
mov edx, 0x1c
mov di, 0x17
jmp 0x1002cad1
lea ecx, [eax + 2]
add eax, 6
mov edx, 0x10
mov di, 2
xorps xmm0, xmm0
movzx eax, word [eax]
mov ecx, dword [ecx]
mov word [ebp - 0x138], di
rol ax, 8
mov word [ebp - 0x136], ax
mov dword [ebp - 0x134], ecx
movups xmmword [ebp - 0x130], xmm0
mov dword [ebp - 0x120], esi
push edx
lea esi, [ebp - 0x138]
push esi
push ebx
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
je 0x1002cb35
mov dword [ebp - 0x138], 0
push esi
push 0x8004667e
push ebx
call dword [sym.imp.WS2_32.dll_ioctlsocket]
mov edi, dword [ebp + 8]
cmp eax, 0xffffffff
je 0x1002cb8c
mov ecx, 4
jmp 0x1002cbae
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x138], 0
push esi
push 0x8004667e
push ebx
call dword [sym.imp.WS2_32.dll_ioctlsocket]
mov edi, dword [ebp + 8]
cmp eax, 0xffffffff
je 0x1002cb8c
mov esi, dword [ebp - 0x20]
mov ecx, esi
call fcn.100379e0
xor ecx, ecx
cmp al, 0xd
jne 0x1002cbae
mov esi, dword [ebp + 0x14]
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
mov edx, esi
or edx, eax
jne 0x1002cbc9
test ecx, ecx
jne 0x1002cbc9
mov byte [edi], 2
mov dword [edi + 4], 0x10081b40
jmp 0x1002cbb3
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
mov edx, eax
shr eax, 0x18
mov byte [edi], 0
shl edx, 0x18
shr ecx, 8
mov dword [edi + 1], edx
mov word [edi + 5], cx
mov byte [edi + 7], al
jmp 0x1002cbb3
mov dword [edi], ecx
mov dword [edi + 4], esi
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, edi
add esp, 0x230
pop esi
pop edi
pop ebx
pop ebp
ret
cmp esi, 0x7fffffff
mov edx, closesocket
cmovae esi, edx
test eax, eax
mov eax, ecx
cmovne esi, edx
mov edx, 0x10624dd3
mul edx
mov eax, 1
mov dword [ebp - 0x28], esi
shr edx, 6
test esi, esi
cmovne eax, edx
cmp ecx, 0x3e8
cmovae eax, edx
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x130]
push 0xfc
push 0
push eax
call fcn.1006fd10
add esp, 0xc
lea eax, [ebp - 0x234]
mov dword [ebp - 0x23c], 1
mov dword [ebp - 0x238], ebx
push 0xfc
push 0
push eax
call fcn.1006fd10
add esp, 0xc
lea eax, [ebp - 0x28]
mov dword [ebp - 0x138], 1
mov dword [ebp - 0x134], ebx
lea ecx, [ebp - 0x23c]
push eax
lea eax, [ebp - 0x138]
push eax
push ecx
push 0
push 1
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
je 0x1002cc8d
cmp eax, 0xffffffff
jne 0x1002cc99
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov byte [edi], 0
mov byte [edi + 3], 0
mov word [edi + 1], 0
mov dword [edi + 4], eax
jmp 0x1002cbb3
mov byte [edi], 2
mov dword [edi + 4], 0x10081b60
jmp 0x1002ccdf
cmp dword [ebp - 0x23c], 1
je 0x1002ccd5
lea eax, [ebp - 0x34]
push dword [ebp + 0xc]
push eax
call sym.kso.dll_std::net::tcp::TcpListener::take_error::h2f850e562d7c9eeb
add esp, 8
cmp dword [ebp - 0x34], 0
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
jne 0x1002ccee
cmp al, 4
jne 0x1002ccee
mov ecx, 4
mov dword [ebp - 0x10], 0
call fcn.100047d0
mov edi, dword [ebp + 8]
mov byte [edi], 4
mov dword [ebp - 0x10], 0xffffffff
mov edx, dword [ebp - 0x20]
xor ecx, ecx
call fcn.100047d0
jmp 0x1002cbb3
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x1002cbb3