Function at 0x48de5e
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 ebp
or eax, 0xffffffff
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x11c
mov ebx, dword [ebp + 8]
test ebx, ebx
je 0x48e10e
cld
xor eax, eax
lea edi, [ebp - 0x11c]
mov ecx, 4
rep stosd dword es:[edi], eax
push 6
push 1
push 2
call sub.WS2_32.DLL_socket
mov word [ebp - 0x11c], 2
mov dword [ebx + 0x30], eax
mov dword [ebp - 0x120], 0x10
cmp dword [ebx + 0x28], 0
je 0x48dff8
lea esi, [ebp - 0xdc]
push str.PASV_r_n
push 0xc8
push esi
call sub.msvcrt.dll__snprintf
mov edi, esi
cld
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
push 0
lea eax, [ecx - 1]
push eax
push esi
push dword [ebx + 0x2c]
call sub.WS2_32.DLL_send
add esp, 0xc
mov edi, eax
test eax, eax
js 0x48e0c8
mov eax, ebx
call fcn.0048d4f2
cmp eax, 2
je 0x48df1c
cmp eax, 5
je 0x48e0f7
push dword [ebx + 0x30]
call sub.WS2_32.DLL_closesocket
mov dword [ebx + 0x30], 0xffffffff
mov dword [ebx + 0x28], 0
mov eax, ebx
add eax, dword [ebx + 0x448]
lea edi, [eax + 0x3c]
mov dl, byte [eax + 0x3c]
lea eax, [edx - 0x30]
cmp al, 9
seta cl
xor eax, eax
test dl, dl
setne al
test eax, ecx
je 0x48df42
inc edi
mov dl, byte [edi]
jmp 0x48df2a
lea eax, [ebp - 0xf8]
lea edx, [ebp - 0x10c]
push eax
lea eax, [ebp - 0xfc]
push eax
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x108]
push eax
push edx
push str._u__u__u__u__u__u
push edi
call sub.msvcrt.dll_sscanf
add esp, 0x20
xor edx, edx
cmp eax, 6
je 0x48dfa7
push str.Invalid_answer_to_PASV_n
push 0x7d0
push 9
call fcn.0043155c
mov eax, dword [ebx + 0x30]
add esp, 0xc
cmp eax, 0xffffffff
je 0x48e106
push eax
jmp 0x48e0fa
mov eax, dword [ebp + edx*4 - 0x10c]
mov byte [edx + ebp - 0xec], al
inc edx
cmp edx, 5
jle 0x48dfa7
mov eax, dword [ebp - 0xec]
push dword [ebp - 0x120]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0xe8]
mov word [ebp - 0x11a], ax
lea eax, [ebp - 0x11c]
push eax
push dword [ebx + 0x30]
call sub.WS2_32.DLL_connect
test eax, eax
jns 0x48e10b
push str.Failed_to_create_a_data_connection
jmp 0x48e02d
lea edi, [ebp - 0x11c]
lea esi, [ebp - 0x120]
push esi
push edi
push eax
call sub.WS2_32.DLL_getsockname
mov word [ebp - 0x11a], 0
push dword [ebp - 0x120]
push edi
push dword [ebx + 0x30]
call sub.WS2_32.DLL_bind
test eax, eax
jns 0x48e03b
push str.bind_failed
push 0
push 9
call fcn.0043155c
jmp 0x48e0f7
push esi
push edi
push dword [ebx + 0x30]
call sub.WS2_32.DLL_getsockname
push 1
push dword [ebx + 0x30]
call sub.WS2_32.DLL_listen
test eax, eax
jns 0x48e05a
push str.listen_failed
jmp 0x48e02d
movzx eax, byte [ebp - 0x119]
push eax
lea esi, [ebp - 0xdc]
movzx eax, byte [ebp - 0x11a]
push eax
mov edi, esi
movzx eax, byte [ebp - 0x115]
push eax
movzx eax, byte [ebp - 0x116]
push eax
movzx eax, byte [ebp - 0x117]
push eax
movzx eax, byte [ebp - 0x118]
push eax
push str.PORT__d__d__d__d__d__d_r_n
push 0xc8
push esi
call sub.msvcrt.dll__snprintf
mov byte [ebp - 0x15], 0
cld
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
add esp, 0x24
lea eax, [ecx - 1]
push 0
push eax
push esi
push dword [ebx + 0x2c]
call sub.WS2_32.DLL_send
mov edi, eax
test eax, eax
jns 0x48e0e9
push str.send_failed
push 0
push 9
call fcn.0043155c
push dword [ebx + 0x30]
call sub.WS2_32.DLL_closesocket
mov eax, edi
mov dword [ebx + 0x30], 0xffffffff
jmp 0x48e10e
push ebx
call fcn.0048d6f5
mov edi, eax
pop eax
cmp edi, 2
je 0x48e10b
push dword [ebx + 0x30]
call sub.WS2_32.DLL_closesocket
mov dword [ebx + 0x30], 0xffffffff
or eax, 0xffffffff
jmp 0x48e10e
mov eax, dword [ebx + 0x30]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret