Function at 0x4cf704
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff50
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0xac], ebx
mov dword [ebp - 0xa0], ebx
mov dword [ebp - 0x9c], ebx
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x94], ebx
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], ebx
mov edi, ecx
mov ebx, edx
mov esi, eax
mov eax, dword [ebp + 8]
test eax, eax
je 0x4cf753
xor edx, edx
mov dword [eax], edx
xor eax, eax
push ebp
push 0x4cfb8b
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 1], 0
mov eax, dword [ebp + 8]
call fcn.00404a2c
lea eax, [ebp - 0x90]
push eax
mov eax, dword [ebx]
mov ecx, 2
mov edx, 1
call fcn.00404f4c
mov eax, dword [ebp - 0x90]
mov edx, 0x4cfba8
call fcn.00404e38
jne 0x4cf7a8
mov eax, ebx
mov ecx, 2
mov edx, 1
call fcn.00404f8c
lea edx, [ebp - 0x94]
mov eax, dword [ebx]
call fcn.00408ec4
mov edx, dword [ebp - 0x94]
mov eax, ebx
call fcn.00404a80
lea edx, [ebp - 0x98]
mov eax, dword [edi]
call fcn.00408ec4
mov edx, dword [ebp - 0x98]
mov eax, edi
call fcn.00404a80
cmp dword [ebx], 0
jne 0x4cf80c
mov edx, ebx
mov eax, dword [esi]
call fcn.004d0df4
test al, al
je 0x4cfb50
lea edx, [ebp - 0x9c]
mov eax, dword [ebx]
call fcn.00408ec4
mov edx, dword [ebp - 0x9c]
mov eax, ebx
call fcn.00404a80
cmp dword [esi], 0
je 0x4cf821
mov eax, dword [esi]
call fcn.00404eec
call fcn.004c21e0
test al, al
jne 0x4cf837
mov eax, dword [ebx]
call fcn.00404eec
mov edx, esi
call fcn.004c2638
test al, al
je 0x4cfb50
push 0x4cfba8
push dword [ebx]
push 0x4cfbb4
push dword [edi]
mov eax, edi
mov edx, 4
call fcn.00404dac
mov dword [ebp - 0xc], 1
xor eax, eax
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x28]
xor ecx, ecx
mov edx, 0x10
call fcn.00403254
mov eax, dword [esi]
call fcn.00404eec
push eax
call sub.wsock32.dll_inet_addr
mov ebx, eax
mov dword [ebp - 0x24], ebx
inc ebx
jne 0x4cf8db
lea ecx, [ebp - 0x18]
mov edx, 0x4cfbc0
mov eax, 0x4cfbd0
call fcn.00510c34
lea eax, [ebp - 0xa0]
push eax
mov eax, dword [esi]
mov dword [ebp - 0xa8], eax
mov byte [ebp - 0xa4], 0xb
lea edx, [ebp - 0xa8]
xor ecx, ecx
mov eax, dword [ebp - 0x18]
call fcn.0040a674
mov edx, dword [ebp - 0xa0]
lea eax, [ebp - 0x18]
call fcn.00404ac4
mov ecx, dword [ebp - 0x18]
mov dl, 1
mov eax, dword [0x408150]
call fcn.0040e078
call fcn.004043e4
mov word [ebp - 0x28], 2
push 0x8b
call sub.wsock32.dll_htons
mov word [ebp - 0x26], ax
push 0
push 1
push 2
call sub.wsock32.dll_socket
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x4cfb2a
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp - 8], 0xffffffff
jne 0x4cf91b
call fcn.00404490
jmp 0x4cfb50
push 0x10
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebp - 8]
push eax
call sub.wsock32.dll_connect
inc eax
jne 0x4cf937
call fcn.00404490
jmp 0x4cfb50
mov edx, dword [edi]
mov eax, dword [ebp - 8]
call fcn.004cf064
cmp eax, 0xffffff82
xor ecx, ecx
mov edx, 0x4cfbe0
mov eax, dword [ebp - 8]
call fcn.004cf2c0
test eax, eax
je 0x4cf961
call fcn.00404490
jmp 0x4cfb50
lea eax, [ebp - 0x8c]
mov edx, 0x64
call fcn.00407af4
lea eax, [ebp - 0x14]
call fcn.00404a2c
xor eax, eax
push ebp
push 0x4cfaf9
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp - 0x10], 0
jne 0x4cfaef
xor esi, esi
mov ebx, 0x543ed8
mov al, byte [ebx]
mov edx, dword [ebp - 0xc]
mov byte [ebp + edx - 0x8d], al
lea edx, [ebp - 0x8c]
mov eax, dword [edi]
mov ecx, 0x63
call fcn.004cf4ec
push 0
mov eax, dword [edi]
call fcn.00404cec
push eax
lea eax, [ebp - 0xac]
lea edx, [ebp - 0x8c]
mov ecx, 0x64
call fcn.00404c9c
mov eax, dword [ebp - 0xac]
call fcn.00404cec
pop edx
add edx, eax
jno 0x4cf9eb
call fcn.00403b58
add edx, 0x33
jno 0x4cf9f5
call fcn.00403b58
push edx
push 0x54613c
mov eax, dword [ebp - 8]
push eax
call sub.wsock32.dll_send
inc eax
jne 0x4cfa19
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
call fcn.00404490
jmp 0x4cfb50
mov eax, 0x54633c
mov edx, 0x2000
call fcn.00407af4
push 0
push 0x2000
push 0x54633c
mov eax, dword [ebp - 8]
push eax
call sub.wsock32.dll_recv
inc eax
jne 0x4cfa52
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
call fcn.00404490
jmp 0x4cfb50
cmp byte [0x546345], 0
jne 0x4cfaa1
lea edx, [ebp - 0xb0]
mov eax, esi
call fcn.00409508
mov edx, dword [ebp - 0xb0]
lea eax, [ebp - 0x14]
call fcn.00404cf4
mov eax, dword [ebp - 0x14]
call fcn.00404cec
cmp eax, 0x32
jle 0x4cfada
mov eax, dword [ebp - 0x14]
call fcn.00409644
test eax, eax
jne 0x4cfada
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
call fcn.00404490
jmp 0x4cfb50
cmp esi, 0xa3
jne 0x4cfacc
cmp dword [ebp - 0xc], 1
je 0x4cfab8
mov dword [ebp - 0x10], 1
jmp 0x4cfabf
mov dword [ebp - 0x10], 2
mov eax, dword [ebp - 0xc]
mov byte [ebp + eax - 0x8d], 0
jmp 0x4cfada
inc esi
inc ebx
cmp esi, 0xa4
jne 0x4cf998
add dword [ebp - 0xc], 1
jno 0x4cfae5
call fcn.00403b58
cmp dword [ebp - 0x10], 0
je 0x4cf991
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4cfb13
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4cfb31
mov eax, dword [ebp - 8]
push eax
call sub.wsock32.dll_closesocket
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4cfb92
lea eax, [ebp - 0xb0]
mov edx, 2
call fcn.00404a50
lea eax, [ebp - 0xa0]
mov edx, 5
call fcn.00404a50
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.00404a50
ret