Function at 0x4bfcf0
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Get local ipv4 addresses
Get socket information
Send data
Send data on socket

Disassembly:
push edi
push esi
push ebx
sub esp, 0x130
mov ebx, dword [esp + 0x140]
test ebx, ebx
je 0x4c0038
mov dword [esp + 8], 6
mov dword [esp + 4], 1
mov dword [esp], 2
lea esi, [esp + 0x40]
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
call sub.ws2_32.dll_socket
mov edi, dword [ebx + 0x28]
sub esp, 0xc
mov dword [ebx + 0x30], eax
test edi, edi
mov word [esp + 0x40], 2
mov dword [esp + 0x34], 0x10
jne 0x4bfeb0
lea edi, [esp + 0x34]
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov dword [esp], eax
call sub.ws2_32.dll_getsockname
sub esp, 0xc
mov eax, dword [esp + 0x34]
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov word [esp + 0x42], 0
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
call sub.ws2_32.dll_bind
sub esp, 0xc
test eax, eax
js 0x4c0107
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
call sub.ws2_32.dll_getsockname
sub esp, 0xc
mov dword [esp + 4], 1
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
call sub.ws2_32.dll_listen
test eax, eax
push edx
push edx
js 0x4c00e9
xor eax, eax
lea edi, [esp + 0x68]
mov al, byte [esp + 0x43]
mov dword [esp + 8], str.PORT__d__d__d__d__d__d_r_n
mov dword [esp + 0x20], eax
xor eax, eax
mov al, byte [esp + 0x42]
mov dword [esp + 4], 0xc8
mov dword [esp + 0x1c], eax
xor eax, eax
mov al, byte [esp + 0x47]
mov dword [esp], edi
mov dword [esp + 0x18], eax
xor eax, eax
mov al, byte [esp + 0x46]
mov dword [esp + 0x14], eax
xor eax, eax
mov al, byte [esp + 0x45]
mov dword [esp + 0x10], eax
xor eax, eax
mov al, byte [esp + 0x44]
mov dword [esp + 0xc], eax
call sub.msvcrt.dll__snprintf
mov byte [esp + 0x12f], 0
mov edx, edi
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
xor ecx, 0xffffffff
and eax, ecx
and eax, 0x80808080
je 0x4bfe3d
test eax, 0x8080
je 0x4c0020
add al, al
mov dword [esp + 4], edi
sbb edx, 3
mov dword [esp + 0xc], 0
sub edx, edi
mov dword [esp + 8], edx
mov eax, dword [ebx + 0x2c]
mov dword [esp], eax
call sub.ws2_32.dll_send
sub esp, 0x10
mov edi, eax
test eax, eax
js 0x4c0047
mov eax, ebx
call fcn.004be7f0
cmp eax, 2
jne 0x4c00e1
mov edi, dword [ebx + 0x30]
add esp, 0x130
mov eax, edi
pop ebx
pop esi
pop edi
ret
lea edi, [esp + 0x68]
mov dword [esp + 8], str.PASV_r_n
mov dword [esp + 4], 0xc8
mov dword [esp], edi
call sub.msvcrt.dll__snprintf
mov edx, edi
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
xor ecx, 0xffffffff
and eax, ecx
and eax, 0x80808080
je 0x4bfece
test eax, 0x8080
je 0x4c0010
add al, al
mov dword [esp + 4], edi
sbb edx, 3
mov dword [esp + 0xc], 0
sub edx, edi
mov dword [esp + 8], edx
mov eax, dword [ebx + 0x2c]
mov dword [esp], eax
call sub.ws2_32.dll_send
sub esp, 0x10
mov edi, eax
test eax, eax
js 0x4c0047
mov eax, ebx
call fcn.004be7f0
cmp eax, 2
je 0x4bff4e
cmp eax, 5
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
je 0x4c002b
call sub.ws2_32.dll_closesocket
push ecx
mov dword [ebx + 0x30], 0xffffffff
mov dword [ebx + 0x28], 0
mov eax, dword [ebx + 0x448]
lea edx, [ebx + eax + 0x3c]
mov al, byte [ebx + eax + 0x3c]
lea ecx, [eax - 0x30]
cmp cl, 9
jbe 0x4bff7e
test al, al
jne 0x4bff74
jmp 0x4bff7e
test cl, cl
je 0x4bff7e
inc edx
mov cl, byte [edx]
lea eax, [ecx - 0x30]
cmp al, 9
ja 0x4bff70
lea eax, [esp + 0x64]
lea edi, [esp + 0x50]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x60]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x5c]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x58]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x54]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
mov dword [esp + 4], str._u__u__u__u__u__u
mov dword [esp], edx
call sub.msvcrt.dll_sscanf
cmp eax, 6
je 0x4c0082
mov dword [esp + 8], str.Invalid_answer_to_PASV_n
mov dword [esp + 4], 0x7d0
mov dword [esp], 9
call fcn.00441df0
mov eax, dword [ebx + 0x30]
cmp eax, 0xffffffff
je 0x4c0038
mov dword [esp], eax
call sub.ws2_32.dll_closesocket
push edi
mov dword [ebx + 0x30], 0xffffffff
add esp, 0x130
or edi, 0xffffffff
mov eax, edi
pop ebx
pop esi
pop edi
ret
shr eax, 0x10
add edx, 2
jmp 0x4bfef0
shr eax, 0x10
add edx, 2
jmp 0x4bfe5f
call sub.ws2_32.dll_closesocket
push esi
mov dword [ebx + 0x30], 0xffffffff
add esp, 0x130
or edi, 0xffffffff
mov eax, edi
pop ebx
pop esi
pop edi
ret
mov dword [esp + 8], str.send_failed
mov dword [esp + 4], 0
mov dword [esp], 9
call fcn.00441df0
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
call sub.ws2_32.dll_closesocket
push eax
mov dword [ebx + 0x30], 0xffffffff
add esp, 0x130
mov eax, edi
pop ebx
pop esi
pop edi
ret
xor eax, eax
mov edx, dword [edi + eax*4]
mov byte [esp + eax + 0x3a], dl
inc eax
cmp eax, 6
jne 0x4c0084
mov eax, dword [esp + 0x3a]
mov dword [esp + 4], esi
mov dword [esp + 0x44], eax
mov ax, word [esp + 0x3e]
mov word [esp + 0x42], ax
mov eax, dword [esp + 0x34]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
call sub.ws2_32.dll_connect
sub esp, 0xc
test eax, eax
jns 0x4bfe9e
mov dword [esp + 8], str.Failed_to_create_a_data_connection
mov dword [esp + 4], 0
mov dword [esp], 9
call fcn.00441df0
mov eax, dword [ebx + 0x30]
jmp 0x4bffeb
mov dword [esp + 8], str.listen_failed
mov dword [esp + 4], 0
mov dword [esp], 9
call fcn.00441df0
jmp 0x4c00e1
mov dword [esp + 8], str.bind_failed
mov dword [esp + 4], 0
mov dword [esp], 9
call fcn.00441df0
jmp 0x4c00e1