Function at 0x10017e10
Capabilities:
Get local ipv4 addresses
Get socket information
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1004744b
mov eax, dword fs:[0]
push eax
sub esp, 0x25c
mov eax, dword [0x1005e068]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov esi, dword [sym.imp.WS2_32.dll_getsockname]
lea eax, [ebp - 0x250]
push eax
lea eax, [ebp - 0x248]
mov dword [ebp - 0x250], 0x10
push eax
push dword [edi + 8]
call esi
push dword [ebp - 0x244]
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
lea ecx, [ebp - 0x238]
call fcn.10003570
lea eax, [ebp - 0x24c]
mov dword [ebp - 4], 0
push eax
lea eax, [ebp - 0x220]
mov dword [ebp - 0x24c], 0x10
push eax
push dword [edi + 8]
call esi
push dword [ebp - 0x21e]
call dword [sym.imp.WS2_32.dll_ntohs]
cmp byte [edi + 0x29], 0
movzx eax, ax
mov dword [ebp - 0x24c], eax
je 0x100180b6
lea ecx, [edi + 0x30]
call fcn.10003420
mov ebx, dword [sym.imp.WS2_32.dll_inet_addr]
push eax
call ebx
mov dword [ebp - 0x21c], eax
mov eax, 2
mov word [ebp - 0x220], ax
movzx eax, word [edi + 0x2c]
push eax
call dword [sym.imp.WS2_32.dll_htons]
push 0
push 6
lea ecx, [edi + 0x98]
mov word [ebp - 0x21e], ax
call fcn.100066e0
test al, al
je 0x100180b2
lea eax, [ebp - 0x220]
push eax
lea ecx, [edi + 0x98]
call fcn.10006740
test al, al
je 0x100180b2
cmp byte [edi + 0x2a], 5
jne 0x100180b2
mov ecx, edi
call fcn.10018330
test al, al
je 0x100180b2
lea ecx, [ebp - 0x238]
call fcn.10003420
push eax
mov dword [ebp - 0x210], 0x1000305
call ebx
push dword [ebp - 0x24c]
mov dword [ebp - 0x20c], eax
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp - 0x208], ax
mov eax, dword [edi + 0xa0]
cmp eax, 0xffffffff
je 0x100180a4
push 0
push 0xa
lea ecx, [ebp - 0x210]
push ecx
push eax
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
js 0x100180a4
mov eax, dword [edi + 0xa0]
cmp eax, 0xffffffff
je 0x10018096
push 0
push 0x200
lea ecx, [ebp - 0x210]
push ecx
push eax
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x10018096
cmp eax, 0xa
jge 0x10017fd9
xor bl, bl
mov dword [edi + 0x78], 0xf00
mov byte [edi + 0x28], bl
jmp 0x100180b8
cmp byte [ebp - 0x210], 5
jne 0x10018088
cmp byte [ebp - 0x20e], 0
jne 0x10018088
cmp byte [ebp - 0x20f], 0
jne 0x100180ab
mov al, byte [ebp - 0x20d]
mov byte [edi + 0x7d], al
cmp al, 3
jne 0x10018049
movzx esi, byte [ebp - 0x20c]
lea eax, [ebp - 0x20b]
push esi
push eax
lea ecx, [ebp - 0x268]
call fcn.1000de40
push eax
lea ecx, [edi + 0x80]
call fcn.10007bf0
lea ecx, [ebp - 0x268]
call fcn.100034a0
movzx eax, word [ebp + esi - 0x20b]
push eax
jmp 0x10018072
cmp al, 1
jne 0x10018081
push dword [ebp - 0x20c]
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
lea ecx, [edi + 0x80]
call fcn.10007bd0
mov ax, word [ebp - 0x208]
push dword [ebp - 0x208]
mov word [edi + 0x7e], ax
mov eax, dword [sym.imp.WS2_32.dll_ntohs]
call eax
mov word [edi + 0x7e], ax
mov bl, 1
mov byte [edi + 0x28], bl
jmp 0x100180b8
xor bl, bl
mov dword [edi + 0x78], 0x1000
mov byte [edi + 0x28], bl
jmp 0x100180b8
add dword [edi + 0x78], 0x1b00
xor bl, bl
mov byte [edi + 0x28], bl
jmp 0x100180b8
add dword [edi + 0x78], 0x1a00
xor bl, bl
mov byte [edi + 0x28], bl
jmp 0x100180b8
xor bl, bl
jmp 0x100180b8
mov bl, 1
lea ecx, [ebp - 0x238]
call fcn.100034a0
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10019772
mov esp, ebp
pop ebp
ret