Function at 0x10003eb0
Capabilities:
Get socket status
Print debug messages
Send data
Send data on socket
Set socket configuration

Disassembly:
sub esp, 0x650
mov eax, dword [0x10027400]
xor eax, esp
mov dword [esp + 0x64c], eax
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push ebp
mov ebp, dword [esp + 0x65c]
push esi
push edi
mov edi, dword [esp + 0x668]
push str.IPInterface::transmit______n
mov esi, ecx
mov dword [esp + 0x20], edi
call ebx
xor ecx, ecx
cmp dword [esi + 0x18], ecx
jne 0x10003efa
mov eax, 0xffffffe0
jmp 0x1000400a
cmp edi, ecx
je 0x10004005
cmp ebp, ecx
je 0x10004005
mov eax, dword [esi + 0x14]
cmp eax, ecx
mov dword [esp + 0x20], ecx
je 0x10003f53
mov edi, 1
cmp dword [eax], edi
jb 0x10003f53
mov ebx, dword [sym.imp.WSOCK32.dll_setsockopt]
mov edx, dword [eax + edi*4]
push 4
lea ecx, [esp + 0x24]
push ecx
push 0x20
push 0xffff
push edx
call ebx
cmp eax, 0xffffffff
je 0x10004025
mov eax, dword [esi + 0x14]
add edi, 1
cmp edi, dword [eax]
jbe 0x10003f24
mov ebx, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor ecx, ecx
mov eax, dword [esi + 0xc]
mov dword [esp + 0x18], eax
xor eax, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov eax, dword [0x10028714]
cmp eax, ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], 2
mov dword [esp + 0x38], 0x11
mov dword [esp + 0x254], 0x313631
jne 0x10003fb7
push ecx
call fcn.10003720
mov dword [0x10028714], eax
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x30]
push edx
lea ecx, [esp + 0x25c]
push ecx
push ebp
call eax
mov edi, eax
push edi
call dword [sym.imp.WSOCK32.dll_WSASetLastError]
cmp edi, 0x2afc
jne 0x1000402c
lea edx, [esp + 0x254]
push edx
push ebp
lea eax, [esp + 0x264]
push str.getaddrinfo__s___s_...__failed__WSANO_DATA__n
push eax
call fcn.1000e4d5
add esp, 0x10
lea ecx, [esp + 0x25c]
push ecx
call ebx
mov eax, 0xffffffd8
mov ecx, dword [esp + 0x65c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1000e6bf
add esp, 0x650
ret 0xc
mov eax, 0xffffffd6
jmp 0x1000400a
test edi, edi
je 0x1000405f
mov eax, dword [esp + 0x10]
test eax, eax
je 0x1000403e
push eax
call fcn.10003960
push edi
lea edx, [esp + 0x258]
push edx
push ebp
lea eax, [esp + 0x268]
push str.getaddrinfo__s___s_...__failed__rc___d_n
push eax
call fcn.1000e4d5
add esp, 0x14
jmp 0x10003ffb
mov edx, dword [esi + 0x14]
mov edx, dword [edx]
mov ebx, dword [esp + 0x10]
xor eax, eax
test edx, edx
jbe 0x10004082
mov edi, dword [ebx + 4]
lea ecx, [esi + 0x20]
cmp edi, dword [ecx]
je 0x10004082
add eax, 1
add ecx, 4
cmp eax, edx
jb 0x10004074
cmp eax, edx
jne 0x10004096
push str.No_matching_interface_found____n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x10004005
mov edi, dword [esp + 0x18]
test edi, edi
jl 0x10004164
mov ebx, dword [sym.imp.WSOCK32.dll_select]
mov edx, dword [esi + 0x14]
xor ecx, ecx
cmp edx, ecx
je 0x100040f1
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x150], ecx
mov eax, edx
mov ebp, dword [eax]
mov dword [esp + 0x4c], ebp
mov eax, dword [eax]
mov dword [esp + 0x150], eax
xor eax, eax
cmp dword [edx], ecx
jbe 0x100040f1
mov ecx, edx
add ecx, 4
mov ebp, dword [ecx]
mov dword [esp + eax*4 + 0x50], ebp
mov ebp, dword [ecx]
mov dword [esp + eax*4 + 0x154], ebp
add eax, 1
add ecx, 4
cmp eax, dword [edx]
jb 0x100040d8
mov ecx, dword [esi + 8]
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x154]
push eax
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x54]
push ecx
push 0
push 0
mov dword [esp + 0x3c], 0
call ebx
cmp eax, 0xffffffff
jne 0x10004135
push str.select___returned_error____n
mov dword [esp + 0x18], 0xffffffd7
sub edi, 1
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x10004158
cmp eax, 1
jge 0x10004152
push str.select___timed_out_n
mov dword [esp + 0x18], 0xffffffd5
sub edi, 1
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x10004158
cmp dword [esi + 0x14], 0
jne 0x1000419e
test edi, edi
jge 0x100040a8
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x1000418a
mov eax, dword [0x1002871c]
test eax, eax
mov esi, ebx
jne 0x1000417f
push 2
call fcn.10003720
mov dword [0x1002871c], eax
push esi
call eax
mov dword [esp + 0x10], 0
push str.___IPInterface::transmit___n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [esp + 0x14]
jmp 0x1000400a
mov eax, dword [esi + 0x14]
mov edi, 1
cmp dword [eax], edi
mov dword [esp + 0x18], 0
jb 0x100042b1
mov ebx, dword [esp + 0x66c]
mov ebp, dword [sym.imp.WSOCK32.dll_sendto]
lea edx, [esi + 0x20]
mov dword [esp + 0x14], edx
lea ebx, [ebx]
mov edx, dword [eax + edi*4]
lea ecx, [esp + 0x4c]
push ecx
push edx
call sub.WSOCK32.dll___WSAFDIsSet
test eax, eax
je 0x1000429e
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 4], eax
jne 0x1000429e
mov edx, dword [esi + 0x14]
mov ecx, dword [edx + edi*4]
push ecx
push eax
lea edx, [esp + 0x264]
push str.sending_on_family___d___sockid___d_..._n
push edx
call fcn.1000e4d5
add esp, 0x10
lea eax, [esp + 0x25c]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x18]
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, dword [esi + 0x14]
push edx
mov edx, dword [ecx + edi*4]
push 0
push ebx
push eax
push edx
call ebp
cmp eax, 0xffffffff
jne 0x10004272
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
push eax
lea eax, [esp + 0x260]
push str.sendto___returned_error:__d_n
push eax
call fcn.1000e4d5
add esp, 0xc
lea ecx, [esp + 0x25c]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x1000429e
push eax
lea edx, [esp + 0x260]
push str.sendto___succeeded._returned:__d_n
push edx
call fcn.1000e4d5
add esp, 0xc
lea eax, [esp + 0x25c]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov dword [esp + 0x18], 1
mov eax, dword [esi + 0x14]
add dword [esp + 0x14], 4
add edi, 1
cmp edi, dword [eax]
jbe 0x100041d0
mov esi, dword [esp + 0x10]
test esi, esi
je 0x100042d1
mov eax, dword [0x1002871c]
test eax, eax
jne 0x100042ce
push 2
call fcn.10003720
mov dword [0x1002871c], eax
push esi
call eax
mov eax, dword [esp + 0x18]
sub eax, 1
neg eax
sbb eax, eax
and eax, 0xffffffd5
jmp 0x1000400a