Function at 0x40ed00
Capabilities:
Create tcp socket
Create udp socket
Initialize winsock library
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c8
mov eax, dword [0x5e6e00]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
mov dword [ebp - 0x1c8], ecx
mov dword [ebp - 0x1bc], 0
lea eax, [ebp - 0x1b8]
push eax
push 0x202
call dword [sym.imp.WSOCK32.dll_WSAStartup]
mov dword [ebp - 0x1bc], eax
push 0x15
push 0
push 0
push 0
push 2
push 2
call dword [sym.imp.WS2_32.dll_WSASocketA]
mov ecx, dword [ebp - 0x1c8]
mov edx, dword [ecx + 4]
mov dword [edx], eax
xor eax, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov ecx, 2
mov word [ebp - 0x20], cx
push 0x1f42
call dword [sym.imp.WSOCK32.dll_htons]
mov word [ebp - 0x1e], ax
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.WSOCK32.dll_inet_addr]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xc], 1
push 4
lea eax, [ebp - 0xc]
push eax
push 4
push 0xffff
mov ecx, dword [ebp - 0x1c8]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 0xc]
mov ecx, dword [edx + eax*4]
push ecx
call dword [sym.imp.WSOCK32.dll_setsockopt]
push 0x10
lea edx, [ebp - 0x20]
push edx
mov eax, dword [ebp - 0x1c8]
mov ecx, dword [eax + 4]
mov edx, dword [ecx]
push edx
call dword [sym.imp.WSOCK32.dll_bind]
mov dword [ebp - 0x1bc], eax
cmp dword [ebp - 0x1bc], 0xffffffff
jne 0x40edfc
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
mov dword [ebp - 0x1c4], eax
cmp dword [ebp - 0x1c4], 0x2740
jne 0x40edfc
push 0
call fcn.0055718c
mov dword [ebp - 4], 0
push 4
lea eax, [ebp - 4]
push eax
push 0xb
push 0
mov ecx, dword [ebp - 0x1c8]
mov edx, dword [ecx + 4]
mov eax, dword [edx]
push eax
call dword [sym.imp.WSOCK32.dll_setsockopt]
mov dword [ebp - 0x1bc], eax
push 0x5ba1c0
call dword [sym.imp.WSOCK32.dll_inet_addr]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.WSOCK32.dll_inet_addr]
mov dword [ebp - 0x24], eax
push 8
lea edx, [ebp - 0x28]
push edx
push 0xc
push 0
mov eax, dword [ebp - 0x1c8]
mov ecx, dword [eax + 4]
mov edx, dword [ecx]
push edx
call dword [sym.imp.WSOCK32.dll_setsockopt]
mov dword [ebp - 0x1bc], eax
mov eax, dword [ebp - 0x1c8]
mov ecx, dword [ebp - 0x1c8]
mov edx, dword [ecx + 4]
mov dword [eax + 8], edx
mov dword [ebp - 8], 0
push 0x40
push 0
mov eax, dword [ebp - 0x1c8]
add eax, 0xc
push eax
call fcn.0055a880
add esp, 0xc
push str.Juan
mov ecx, dword [ebp - 0x1c8]
add ecx, 0xc
push ecx
call fcn.00410af0
add esp, 8
mov dword [ebp - 8], 4
jmp 0x40eeba
mov edx, dword [ebp - 8]
add edx, 1
mov dword [ebp - 8], edx
cmp dword [ebp - 8], 0x20
jge 0x40eefb
call fcn.00556ee8
cdq
mov ecx, 0x1a
idiv ecx
mov ebx, edx
call fcn.00556ee8
and eax, 0x80000001
jns 0x40eee0
dec eax
or eax, 0xfffffffe
inc eax
neg eax
sbb al, al
and al, 0x20
add al, 0x41
movsx edx, al
add ebx, edx
mov eax, dword [ebp - 0x1c8]
add eax, dword [ebp - 8]
mov byte [eax + 0xc], bl
jmp 0x40eeb1
mov dword [ebp - 0x1c0], 4
push 4
lea ecx, [ebp - 0x1c0]
push ecx
push 0x1006
push 0xffff
mov edx, dword [ebp - 0x1c8]
mov eax, dword [edx + 8]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.WSOCK32.dll_setsockopt]
mov dword [ebp - 0x1bc], eax
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0055413f
mov esp, ebp
pop ebp
ret 8