Function at 0x48fb40
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Create tcp 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, 0x12c
mov ebx, dword [ebp + 8]
test ebx, ebx
je 0x48fcad
cld
lea esi, [ebp - 0x128]
xor eax, eax
mov ecx, 4
mov edi, esi
rep stosd dword es:[edi], eax
push eax
push 6
push 1
push 2
call sub.ws2_32.dll_socket
mov word [ebp - 0x128], 2
cmp eax, 0xffffffff
mov dword [ebx + 0x30], eax
mov dword [ebp - 0x12c], 0x10
pop edi
je 0x48fe65
mov edx, dword [ebx + 0x28]
test edx, edx
jne 0x48fcb5
lea edi, [ebp - 0x12c]
push edx
push edi
push esi
push eax
call sub.ws2_32.dll_getsockname
mov eax, dword [ebp - 0x12c]
mov word [ebp - 0x126], 0
push eax
push esi
mov ecx, dword [ebx + 0x30]
push ecx
call sub.ws2_32.dll_bind
pop edx
test eax, eax
js 0x48fe7c
push eax
push edi
push esi
mov eax, dword [ebx + 0x30]
push eax
call sub.ws2_32.dll_getsockname
push eax
push 1
mov edi, dword [ebx + 0x30]
push edi
call sub.ws2_32.dll_listen
pop ecx
test eax, eax
pop esi
js 0x48fe87
sub esp, 0xc
xor eax, eax
mov al, byte [ebp - 0x125]
lea edi, [ebp - 0xe8]
push eax
xor eax, eax
mov al, byte [ebp - 0x126]
push eax
xor eax, eax
mov al, byte [ebp - 0x121]
push eax
xor eax, eax
mov al, byte [ebp - 0x122]
push eax
xor eax, eax
mov al, byte [ebp - 0x123]
push eax
xor eax, eax
mov al, byte [ebp - 0x124]
push eax
push str.PORT__d__d__d__d__d__d_r_n
push 0xc8
push edi
call sub.msvcrt.dll__snprintf
mov byte [ebp - 0x21], 0
mov ecx, edi
lea esi, [esi]
mov eax, dword [ecx]
add ecx, 4
lea edx, [eax - 0x1010101]
xor eax, 0xffffffff
and edx, eax
and edx, 0x80808080
je 0x48fc50
test edx, 0x8080
jne 0x48fc76
shr edx, 0x10
add ecx, 2
add dl, dl
sbb ecx, 3
add esp, 0x30
sub ecx, edi
push 0
push ecx
push edi
mov eax, dword [ebx + 0x2c]
push eax
call sub.ws2_32.dll_send
test eax, eax
js 0x48fe5d
sub esp, 0xc
push ebx
call fcn.0048f090
add esp, 0x10
cmp eax, 2
jne 0x48fe0a
mov eax, dword [ebx + 0x30]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
lea edi, [ebp - 0xe8]
push eax
push str.PASV_r_n
push 0xc8
push edi
call sub.msvcrt.dll__snprintf
mov ecx, edi
mov esi, esi
mov eax, dword [ecx]
add ecx, 4
lea edx, [eax - 0x1010101]
xor eax, 0xffffffff
and edx, eax
and edx, 0x80808080
je 0x48fcd0
test edx, 0x8080
jne 0x48fcf6
shr edx, 0x10
add ecx, 2
add dl, dl
push 0
sbb ecx, 3
sub ecx, edi
push ecx
push edi
mov eax, dword [ebx + 0x2c]
push eax
call sub.ws2_32.dll_send
add esp, 0x10
test eax, eax
js 0x48fe5d
mov eax, ebx
call fcn.0048ee50
cmp eax, 2
je 0x48fd47
cmp eax, 5
je 0x48fe0a
sub esp, 0xc
mov eax, dword [ebx + 0x30]
push eax
call sub.ws2_32.dll_closesocket
mov dword [ebx + 0x30], 0xffffffff
mov dword [ebx + 0x28], 0
add esp, 0xc
mov eax, dword [ebx + 0x448]
add eax, ebx
lea edi, [eax + 0x3c]
mov dl, byte [eax + 0x3c]
jmp 0x48fd5a
inc edi
mov dl, byte [edi]
lea eax, [edx - 0x30]
cmp al, 9
seta cl
test dl, dl
setne al
and eax, 0xff
test ecx, eax
jne 0x48fd57
lea eax, [ebp - 0x104]
lea edx, [ebp - 0x118]
push eax
lea eax, [ebp - 0x108]
push eax
lea eax, [ebp - 0x10c]
push eax
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x114]
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
jne 0x48fe25
nop
mov eax, dword [ebp + edx*4 - 0x118]
mov byte [edx + ebp - 0xf8], al
inc edx
cmp edx, 5
jle 0x48fdb0
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0x124], eax
mov eax, dword [ebp - 0xf4]
mov word [ebp - 0x126], ax
push eax
mov eax, dword [ebp - 0x12c]
push eax
push esi
mov edi, dword [ebx + 0x30]
push edi
call sub.ws2_32.dll_connect
pop esi
test eax, eax
jns 0x48fcaa
push ecx
push str.Failed_to_create_a_data_connection
push 0
push 9
call fcn.0041e020
pop eax
jmp 0x48fe0d
sub esp, 0xc
mov eax, dword [ebx + 0x30]
push eax
call sub.ws2_32.dll_closesocket
mov dword [ebx + 0x30], 0xffffffff
or eax, 0xffffffff
jmp 0x48fcad
push eax
push str.Invalid_answer_to_PASV_n
push 0x7d0
push 9
call fcn.0041e020
mov eax, dword [ebx + 0x30]
add esp, 0x10
cmp eax, 0xffffffff
je 0x48fe1d
sub esp, 0xc
push eax
call sub.ws2_32.dll_closesocket
or eax, 0xffffffff
add esp, 0xc
mov dword [ebx + 0x30], 0xffffffff
jmp 0x48fcad
push eax
push str.send_failed
jmp 0x48fdfe
push ecx
push str.socket_failed
push 0
push 9
call fcn.0041e020
or eax, 0xffffffff
jmp 0x48fcad
push eax
push str.bind_failed
jmp 0x48fdfe
push edx
push str.listen_failed
jmp 0x48fdfe