Function at 0x48d7ed
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Resolve dns
Send data
Send data on socket

Disassembly:
push ebp
or eax, 0xffffffff
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x344
mov ebx, dword [ebp + 8]
test ebx, ebx
je 0x48dcd8
cmp dword [ebx + 4], 0
je 0x48dcd8
cmp dword [0x6222d8], 0
je 0x48d822
mov esi, dword [0x6222c8]
jmp 0x48d825
mov esi, dword [ebx + 8]
test esi, esi
jne 0x48d82d
mov si, 0x15
cld
xor eax, eax
lea edi, [ebx + 0x18]
mov ecx, 4
rep stosd dword es:[edi], eax
mov eax, dword [0x6222d8]
test eax, eax
je 0x48d846
push eax
jmp 0x48d849
push dword [ebx + 4]
call sub.WS2_32.DLL_gethostbyname
mov edx, eax
test eax, eax
jne 0x48d85b
push str.gethostbyname_failed
jmp 0x48d867
cmp word [eax + 0xa], 4
jbe 0x48d875
push str.gethostbyname_address_mismatch
push 0
push 9
call fcn.0043155c
jmp 0x48dcd5
mov word [ebx + 0x18], 2
mov edx, dword [edx + 0xc]
movsx eax, word [eax + 0xa]
push eax
lea ecx, [ebx + 0x1c]
push dword [edx]
push ecx
call fcn.0052ef10
movzx eax, si
push eax
call sub.WS2_32.DLL_htons
mov word [ebx + 0x1a], ax
push 0
push 1
push 2
call sub.WS2_32.DLL_socket
lea edx, [ebx + 0x18]
add esp, 0xc
mov dword [ebx + 0x2c], eax
push 0x10
push edx
push eax
call sub.WS2_32.DLL_connect
test eax, eax
jns 0x48d8cf
push str.Failed_to_create_a_connection
push 0
push 9
call fcn.0043155c
jmp 0x48dcc6
push ebx
call fcn.0048d6f5
mov edi, eax
pop eax
cmp edi, 2
jne 0x48dcc6
cmp dword [0x6222d8], 0
je 0x48db86
mov eax, dword [0x6222b8]
test eax, eax
je 0x48d9e6
lea esi, [ebp - 0x19c]
push eax
push str.USER__s_r_n
push 0x190
push esi
call sub.msvcrt.dll__snprintf
cld
mov byte [ebp - 0xd], 0
xor eax, eax
or ecx, 0xffffffff
mov edi, esi
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, 0x10
mov edi, eax
test eax, eax
js 0x48db3e
push ebx
call fcn.0048d6f5
mov edi, eax
pop eax
cmp edi, 2
je 0x48d964
jg 0x48d95a
dec edi
je 0x48d9e6
jmp 0x48dcc6
cmp edi, 3
je 0x48d96d
jmp 0x48dcc6
cmp dword [0x6222a8], 0
je 0x48d9e6
mov eax, dword [0x6222a8]
lea edx, [ebp - 0x19c]
test eax, eax
je 0x48d992
push eax
push str.PASS__s_r_n
push 0x190
push edx
call sub.msvcrt.dll__snprintf
add esp, 0x10
jmp 0x48d9a5
push str.PASS_anonymous__r_n
push 0x190
push edx
call sub.msvcrt.dll__snprintf
add esp, 0xc
lea edx, [ebp - 0x19c]
mov byte [ebp - 0xd], 0
cld
xor eax, eax
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
push 0
lea eax, [ecx - 1]
push eax
push edx
push dword [ebx + 0x2c]
call sub.WS2_32.DLL_send
mov edi, eax
test eax, eax
js 0x48db3e
push ebx
call fcn.0048d6f5
mov edi, eax
pop eax
cmp edi, 3
jg 0x48dcc6
mov eax, dword [0x622298]
test eax, eax
js 0x48dcc6
cmp eax, 1
jle 0x48da02
cmp eax, 2
je 0x48da6f
jmp 0x48dcc6
push dword [ebx + 4]
lea esi, [ebp - 0x19c]
push str.SITE__s_r_n
push 0x190
push esi
call sub.msvcrt.dll__snprintf
mov edi, esi
cld
mov byte [ebp - 0xd], 0
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, 0x10
mov edi, eax
test eax, eax
js 0x48db3e
push ebx
call fcn.0048d6f5
pop esi
cmp eax, 2
jne 0x48da62
mov dword [0x622298], 1
jmp 0x48db86
cmp dword [0x622298], 1
je 0x48dcc6
mov eax, dword [ebx + 0x10]
lea edx, [ebp - 0x19c]
test eax, eax
jne 0x48da94
push dword [ebx + 4]
push str.USER_anonymous__s_r_n
push 0x190
push edx
call sub.msvcrt.dll__snprintf
add esp, 0x10
jmp 0x48daab
push dword [ebx + 4]
push eax
push str.USER__s__s_r_n
push 0x190
push edx
call sub.msvcrt.dll__snprintf
add esp, 0x14
lea esi, [ebp - 0x19c]
mov byte [ebp - 0xd], 0
cld
xor eax, eax
or ecx, 0xffffffff
mov edi, esi
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
mov edi, eax
test eax, eax
js 0x48db3e
push ebx
call fcn.0048d6f5
pop ecx
lea eax, [eax - 1]
cmp eax, 1
jbe 0x48db75
mov eax, dword [ebx + 0x14]
test eax, eax
jne 0x48db05
push str.PASS_anonymous__r_n
push 0x190
push esi
call sub.msvcrt.dll__snprintf
add esp, 0xc
jmp 0x48db19
push eax
push str.PASS__s_r_n
push 0x190
push esi
call sub.msvcrt.dll__snprintf
add esp, 0x10
cld
mov byte [ebp - 0xd], 0
xor eax, eax
or ecx, 0xffffffff
mov edi, esi
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
mov edi, eax
test eax, eax
jns 0x48db62
push str.send_failed
push 0
push 9
call fcn.0043155c
push dword [ebx + 0x2c]
call sub.WS2_32.DLL_closesocket
mov eax, edi
mov dword [ebx + 0x2c], 0xffffffff
jmp 0x48dcd8
push ebx
call fcn.0048d6f5
pop edx
lea eax, [eax - 1]
cmp eax, 1
ja 0x48dcc6
xor eax, eax
mov dword [0x622298], 2
jmp 0x48dcd8
mov eax, dword [ebx + 0x10]
lea edx, [ebp - 0x26c]
test eax, eax
jne 0x48dba8
push str.USER_anonymous_r_n
push 0xc8
push edx
call sub.msvcrt.dll__snprintf
add esp, 0xc
jmp 0x48dbbc
push eax
push str.USER__s_r_n
push 0xc8
push edx
call sub.msvcrt.dll__snprintf
add esp, 0x10
lea edx, [ebp - 0x26c]
mov byte [ebp - 0x1a5], 0
cld
xor eax, eax
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0
push ecx
push edx
push dword [ebx + 0x2c]
call sub.WS2_32.DLL_send
mov edi, eax
xor eax, eax
test edi, edi
jns 0x48dbfd
push str.send_failed
push 0
push 9
call fcn.0043155c
add esp, 0xc
mov eax, edi
test eax, eax
js 0x48dcc6
push ebx
call fcn.0048d6f5
mov edi, eax
pop eax
xor eax, eax
cmp edi, 2
je 0x48dcd8
cmp edi, 3
jne 0x48dcc6
mov eax, dword [ebx + 0x14]
lea edx, [ebp - 0x33c]
test eax, eax
jne 0x48dc44
push str.PASS_anonymous__r_n
push 0xc8
push edx
call sub.msvcrt.dll__snprintf
add esp, 0xc
jmp 0x48dc58
push eax
push str.PASS__s_r_n
push 0xc8
push edx
call sub.msvcrt.dll__snprintf
add esp, 0x10
lea edx, [ebp - 0x33c]
mov byte [ebp - 0x275], 0
cld
xor eax, eax
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0
push ecx
push edx
push dword [ebx + 0x2c]
call sub.WS2_32.DLL_send
mov edi, eax
xor eax, eax
test edi, edi
jns 0x48dc99
push str.send_failed
push 0
push 9
call fcn.0043155c
add esp, 0xc
mov eax, edi
test eax, eax
js 0x48dcc6
push ebx
call fcn.0048d6f5
mov edi, eax
pop eax
xor eax, eax
cmp edi, 2
je 0x48dcd8
cmp edi, 3
jne 0x48dcc6
push str.FTP_server_asking_for_ACCNT_on_anonymous_n
push 0x7d2
push 9
call fcn.0043155c
add esp, 0xc
push dword [ebx + 0x2c]
call sub.WS2_32.DLL_closesocket
mov dword [ebx + 0x2c], 0xffffffff
or eax, 0xffffffff
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret