Function at 0x401aa0
Capabilities:
Get socket status
Send data
Send data on socket
Set socket configuration

Disassembly:
mov eax, 0x292c
call fcn.00408e10
push ebx
push ebp
mov ebp, ecx
push esi
lea eax, [esp + 0x2a4c]
push edi
lea ecx, [esp + 0x2a30]
push eax
lea edx, [esp + 0x29c4]
push ecx
lea eax, [esp + 0x29d8]
push edx
lea ecx, [esp + 0x296c]
push eax
lea edx, [esp + 0x2a00]
push ecx
push edx
push 0x40d2ac
call dword [sym.imp.MSVCRT.dll_printf]
mov ecx, 0x9c3
xor eax, eax
lea edi, [esp + 0x249]
mov byte [esp + 0x248], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x45]
mov byte [esp + 0x44], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
add esp, 0x1c
mov dword [esp + 0x10], eax
mov word [esp + 0x10], 2
mov dword [esp + 0x14], eax
push 0x1f42
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
call dword [sym.imp.WSOCK32.dll_htons]
push 0x40d0a4
mov word [esp + 0x16], ax
call dword [sym.imp.WSOCK32.dll_inet_addr]
mov dword [esp + 0x14], eax
lea edi, [esp + 0x2960]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x401bb1
lea edi, [esp + 0x29d0]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x401bb1
lea edi, [esp + 0x29c0]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x401bb1
lea edi, [esp + 0x2980]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x401bb1
lea edi, [esp + 0x29a0]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x401e88
lea edi, [esp + 0x2960]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x401bf7
lea edi, [esp + 0x29d0]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x401bf7
lea edi, [esp + 0x2980]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x401bf7
lea edi, [esp + 0x29a0]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x401c1d
mov edi, 0x40d2a0
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x28]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x2960]
or ecx, 0xffffffff
xor eax, eax
mov esi, dword [sym.imp.MSVCRT.dll_sprintf]
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x401c59
lea ecx, [esp + 0x2960]
lea edi, [esp + 0x28]
push ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0x40d294
lea edx, [esp + ecx + 0x30]
push edx
call esi
add esp, 0xc
lea edi, [esp + 0x2980]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x401c91
lea eax, [esp + 0x2980]
lea edi, [esp + 0x28]
push eax
or ecx, 0xffffffff
xor eax, eax
push 0x40d284
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea ecx, [esp + ecx + 0x30]
push ecx
call esi
add esp, 0xc
lea edi, [esp + 0x29a0]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x401cc7
lea edi, [esp + 0x28]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edx, [esp + 0x29a0]
push edx
push 0x40d274
lea eax, [esp + ecx + 0x30]
push eax
call esi
add esp, 0xc
lea edi, [esp + 0x29d0]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x401cfd
lea ecx, [esp + 0x29d0]
lea edi, [esp + 0x28]
push ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0x40d268
lea edx, [esp + ecx + 0x30]
push edx
call esi
add esp, 0xc
lea edi, [esp + 0x29c0]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x401d35
lea eax, [esp + 0x29c0]
lea edi, [esp + 0x28]
push eax
or ecx, 0xffffffff
xor eax, eax
push 0x40d24c
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea ecx, [esp + ecx + 0x30]
push ecx
call esi
add esp, 0xc
lea edi, [esp + 0x28]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x28]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push edx
push ecx
lea eax, [esp + 0x29f8]
lea ecx, [esp + 0x2a58]
push eax
lea edx, [esp + 0x2a3c]
push ecx
xor esi, esi
push edx
push esi
push 0x40d1ac
lea eax, [esp + 0x248]
push 0x2710
push eax
call dword [sym.imp.MSVCRT.dll__snprintf]
mov ebx, dword [ebp + 0x60]
add esp, 0x24
xor ecx, ecx
cmp ebx, esi
mov dword [esp + 0x128], ecx
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], 0x14
jle 0x401de4
xor eax, eax
test ecx, ecx
jbe 0x401dba
mov edx, dword [ebp + 4]
mov edi, dword [edx + esi*4]
lea edx, [esp + 0x12c]
cmp dword [edx], edi
je 0x401dba
inc eax
add edx, 4
cmp eax, ecx
jb 0x401dae
cmp eax, ecx
jne 0x401ddf
cmp ecx, 0x40
jae 0x401ddf
mov ecx, dword [ebp + 4]
mov edx, dword [ecx + esi*4]
mov dword [esp + eax*4 + 0x12c], edx
mov ecx, dword [esp + 0x128]
inc ecx
mov dword [esp + 0x128], ecx
inc esi
cmp esi, ebx
jl 0x401d9b
lea eax, [esp + 0x20]
lea ecx, [esp + 0x128]
push eax
push 0
push ecx
push 0
push 0
call dword [sym.imp.WSOCK32.dll_select]
test eax, eax
jne 0x401e11
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x292c
ret 0x130
cmp eax, 0xffffffff
jne 0x401e25
pop edi
pop esi
pop ebp
or eax, eax
pop ebx
add esp, 0x292c
ret 0x130
mov eax, dword [ebp + 0x60]
xor esi, esi
test eax, eax
jle 0x401e80
mov ebx, dword [sym.imp.WSOCK32.dll_sendto]
mov eax, dword [ebp + 4]
lea edx, [esp + 0x128]
push edx
mov ecx, dword [eax + esi*4]
push ecx
call sub.WSOCK32.dll___WSAFDIsSet
test eax, eax
je 0x401e78
lea edi, [esp + 0x22c]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
push 0x10
push edx
dec ecx
push 0
push ecx
mov ecx, dword [ebp + 4]
lea eax, [esp + 0x23c]
mov edx, dword [ecx + esi*4]
push eax
push edx
call ebx
mov eax, dword [ebp + 0x60]
inc esi
cmp esi, eax
jl 0x401e34
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x292c
ret 0x130