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

Disassembly:
sub esp, 0x650
mov eax, dword [0x5a4aa8]
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 + 0x28], edi
call ebx
xor ecx, ecx
cmp dword [esi + 0x1c], ecx
jne 0x4d7faa
mov eax, 0xffffffe0
jmp 0x4d80ba
cmp edi, ecx
je 0x4d80b5
cmp ebp, ecx
je 0x4d80b5
mov eax, dword [esi + 0x18]
cmp eax, ecx
mov dword [esp + 0x28], ecx
je 0x4d7fa0
mov edi, 1
cmp dword [eax], edi
jb 0x4d8003
mov ebx, dword [sym.imp.WS2_32.dll_setsockopt]
mov edx, dword [eax + edi*4]
push 4
lea ecx, [esp + 0x2c]
push ecx
push 0x20
push 0xffff
push edx
call ebx
cmp eax, 0xffffffff
je 0x4d80d5
mov eax, dword [esi + 0x18]
add edi, 1
cmp edi, dword [eax]
jbe 0x4d7fd4
mov ebx, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor ecx, ecx
mov eax, dword [esi + 0x10]
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 [0x5a74c4]
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 0x4d8067
push ecx
call fcn.004ce3c0
mov dword [0x5a74c4], 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.WS2_32.dll_WSASetLastError]
cmp edi, 0x2afc
jne 0x4d80dc
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.004fc0ed
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.004fa103
add esp, 0x650
ret 0xc
mov eax, 0xffffffd6
jmp 0x4d80ba
xor ecx, ecx
cmp edi, ecx
je 0x4d8111
mov eax, dword [esp + 0x10]
cmp eax, ecx
je 0x4d80f0
push eax
call fcn.004ce600
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.004fc0ed
add esp, 0x14
jmp 0x4d80ab
mov edx, dword [esi + 0x18]
mov edx, dword [edx]
mov ebx, dword [esp + 0x10]
xor eax, eax
cmp edx, ecx
jbe 0x4d8136
mov edi, dword [ebx + 4]
lea ecx, [esi + 0x24]
cmp edi, dword [ecx]
je 0x4d8134
add eax, 1
add ecx, 4
cmp eax, edx
jb 0x4d8126
xor ecx, ecx
cmp eax, edx
jne 0x4d814a
push str.No_matching_interface_found____n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x4d80b5
mov edi, dword [esp + 0x18]
cmp edi, ecx
jl 0x4d8233
mov ebx, dword [sym.imp.WS2_32.dll_select]
lea esp, [esp]
mov edx, dword [esi + 0x18]
cmp edx, ecx
je 0x4d81ab
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 0x4d81ab
mov ecx, edx
add ecx, 4
mov edi, edi
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 0x4d8190
xor ecx, ecx
cmp dword [esi + 0xc], 1
jne 0x4d81c4
mov edx, dword [esi + 8]
imul edx, edx, 0x3e8
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
jmp 0x4d81cf
mov eax, dword [esi + 8]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x154]
push eax
lea edx, [esp + 0x54]
push edx
push ecx
push ecx
call ebx
cmp eax, 0xffffffff
jne 0x4d8202
push str.select___returned_error____n
mov dword [esp + 0x18], 0xffffffd7
sub edi, 1
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x4d8225
cmp eax, 1
jge 0x4d821f
push str.select___timed_out_n
mov dword [esp + 0x18], 0xffffffd5
sub edi, 1
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x4d8225
cmp dword [esi + 0x18], 0
jne 0x4d826d
xor ecx, ecx
test edi, edi
jge 0x4d8160
mov ebx, dword [esp + 0x10]
cmp ebx, ecx
je 0x4d8259
mov eax, dword [0x5a74cc]
cmp eax, ecx
mov esi, ebx
jne 0x4d824e
push 2
call fcn.004ce3c0
mov dword [0x5a74cc], 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 0x4d80ba
mov eax, dword [esi + 0x18]
mov edi, 1
cmp dword [eax], edi
mov dword [esp + 0x18], 0
jb 0x4d8381
mov ebx, dword [esp + 0x66c]
mov ebp, dword [sym.imp.WS2_32.dll_sendto]
lea ecx, [esi + 0x24]
mov dword [esp + 0x14], ecx
lea esp, [esp]
mov eax, dword [eax + edi*4]
lea edx, [esp + 0x4c]
push edx
push eax
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x4d836e
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov edx, dword [esp + 0x10]
cmp dword [edx + 4], eax
jne 0x4d836e
mov ecx, dword [esi + 0x18]
mov edx, dword [ecx + edi*4]
push edx
push eax
lea eax, [esp + 0x264]
push str.sending_on_family___d___sockid___d_..._n
push eax
call fcn.004fc0ed
add esp, 0x10
lea ecx, [esp + 0x25c]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 0x18]
mov ecx, dword [esp + 0x24]
push edx
mov edx, dword [esi + 0x18]
push eax
mov eax, dword [edx + edi*4]
push 0
push ebx
push ecx
push eax
call ebp
cmp eax, 0xffffffff
jne 0x4d8342
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
lea ecx, [esp + 0x260]
push str.sendto___returned_error:__d_n
push ecx
call fcn.004fc0ed
add esp, 0xc
lea edx, [esp + 0x25c]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x4d836e
push eax
lea eax, [esp + 0x260]
push str.sendto___succeeded._returned:__d_n
push eax
call fcn.004fc0ed
add esp, 0xc
lea ecx, [esp + 0x25c]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov dword [esp + 0x18], 1
mov eax, dword [esi + 0x18]
add dword [esp + 0x14], 4
add edi, 1
cmp edi, dword [eax]
jbe 0x4d82a0
mov esi, dword [esp + 0x10]
test esi, esi
je 0x4d83a1
mov eax, dword [0x5a74cc]
test eax, eax
jne 0x4d839e
push 2
call fcn.004ce3c0
mov dword [0x5a74cc], eax
push esi
call eax
mov eax, dword [esp + 0x18]
sub eax, 1
neg eax
sbb eax, eax
and eax, 0xffffffd5
jmp 0x4d80ba