Function at 0x40ec10
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 [0x5e8e00]
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 0x40ed0c
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
mov dword [ebp - 0x1c4], eax
cmp dword [ebp - 0x1c4], 0x2740
jne 0x40ed0c
push 0
call fcn.0055930c
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 0x5bc294
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.0055ca00
add esp, 0xc
push str.Juan
mov ecx, dword [ebp - 0x1c8]
add ecx, 0xc
push ecx
call fcn.00411df0
add esp, 8
mov dword [ebp - 8], 4
jmp 0x40edca
mov edx, dword [ebp - 8]
add edx, 1
mov dword [ebp - 8], edx
cmp dword [ebp - 8], 0x20
jge 0x40ee0b
call fcn.00559068
cdq
mov ecx, 0x1a
idiv ecx
mov ebx, edx
call fcn.00559068
and eax, 0x80000001
jns 0x40edf0
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 0x40edc1
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.005562bb
mov esp, ebp
pop ebp
ret 8