Function at 0x4bf2d0
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 edi
push esi
push ebx
sub esp, 0x1b0
mov ebx, dword [esp + 0x1c0]
test ebx, ebx
je 0x4bf9df
mov esi, dword [ebx + 4]
test esi, esi
je 0x4bf9df
mov eax, dword [0x737f24]
test eax, eax
je 0x4bf7a0
mov edi, dword [0x737f18]
test edi, edi
je 0x4bf4b0
lea esi, [ebx + 0x18]
mov dword [ebx + 0x18], 0
test eax, eax
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
je 0x4bf7a8
mov dword [esp], eax
call sub.ws2_32.dll_gethostbyname
test eax, eax
push ecx
je 0x4bfa42
movsx edx, word [eax + 0xa]
cmp dx, 4
ja 0x4bf940
mov eax, dword [eax + 0xc]
lea ecx, [ebx + 0x1c]
mov word [ebx + 0x18], 2
and edi, 0xffff
mov eax, dword [eax]
mov dword [esp + 8], edx
mov dword [esp], ecx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
mov dword [esp], edi
call sub.ws2_32.dll_htons
push edx
mov word [ebx + 0x1a], ax
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], 2
call sub.ws2_32.dll_socket
sub esp, 0xc
mov dword [ebx + 0x2c], eax
mov dword [esp + 8], 0x10
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.ws2_32.dll_connect
sub esp, 0xc
test eax, eax
js 0x4bf9e7
mov eax, ebx
call fcn.004be7f0
cmp eax, 2
jne 0x4bf48b
mov eax, dword [0x737f24]
lea esi, [esp + 0x20]
test eax, eax
je 0x4bf7cc
mov eax, dword [0x737f1c]
test eax, eax
je 0x4bf556
lea esi, [esp + 0x20]
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.USER__s_r_n
mov dword [esp + 4], 0x190
mov dword [esp], esi
call sub.msvcrt.dll__snprintf
mov byte [esp + 0x1af], 0
mov edx, esi
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
xor ecx, 0xffffffff
and eax, ecx
and eax, 0x80808080
je 0x4bf41e
test eax, 0x8080
je 0x4bf790
add al, al
mov dword [esp + 0xc], 0
sbb edx, 3
mov dword [esp + 4], esi
sub edx, esi
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 0x4bf6b5
mov eax, ebx
call fcn.004be7f0
cmp eax, 2
je 0x4bf7b0
cmp eax, 3
je 0x4bf4c0
dec eax
je 0x4bf556
mov eax, dword [ebx + 0x2c]
or edi, 0xffffffff
mov dword [esp], eax
call sub.ws2_32.dll_closesocket
push eax
mov dword [ebx + 0x2c], 0xffffffff
add esp, 0x1b0
mov eax, edi
pop ebx
pop esi
pop edi
ret
mov di, 0x15
jmp 0x4bf30e
mov eax, dword [0x737f20]
test eax, eax
je 0x4bf990
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.PASS__s_r_n
mov dword [esp + 4], 0x190
mov dword [esp], esi
call sub.msvcrt.dll__snprintf
mov byte [esp + 0x1af], 0
mov edx, esi
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
xor ecx, 0xffffffff
and eax, ecx
and eax, 0x80808080
je 0x4bf4f3
test eax, 0x8080
jne 0x4bf517
shr eax, 0x10
add edx, 2
add al, al
mov dword [esp + 0xc], 0
sbb edx, 3
mov dword [esp + 4], esi
sub edx, esi
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 0x4bf6b5
mov eax, ebx
call fcn.004be7f0
cmp eax, 3
jg 0x4bf48b
mov eax, dword [0x737f28]
test eax, eax
js 0x4bf48b
cmp eax, 1
jle 0x4bf6f0
lea esi, [esp + 0x20]
cmp eax, 2
jne 0x4bf48b
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x4bf964
mov edx, dword [ebx + 4]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 8], str.USER__s__s_r_n
mov dword [esp + 4], 0x190
mov dword [esp], esi
call sub.msvcrt.dll__snprintf
mov byte [esp + 0x1af], 0
mov edx, esi
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
xor ecx, 0xffffffff
and eax, ecx
and eax, 0x80808080
je 0x4bf5b1
test eax, 0x8080
jne 0x4bf5d5
shr eax, 0x10
add edx, 2
add al, al
mov dword [esp + 0xc], 0
sbb edx, 3
mov dword [esp + 4], esi
sub edx, esi
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 0x4bf6b5
mov eax, ebx
call fcn.004be7f0
dec eax
cmp eax, 1
jbe 0x4bf6a4
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x4bf9c2
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.PASS__s_r_n
mov dword [esp + 4], 0x190
mov dword [esp], esi
call sub.msvcrt.dll__snprintf
mov byte [esp + 0x1af], 0
mov edx, esi
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
xor ecx, 0xffffffff
and eax, ecx
and eax, 0x80808080
je 0x4bf646
test eax, 0x8080
je 0x4bf930
add al, al
mov dword [esp + 0xc], 0
sbb edx, 3
mov dword [esp + 4], esi
sub edx, esi
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 0x4bf6b5
mov eax, ebx
call fcn.004be7f0
dec eax
cmp eax, 1
ja 0x4bf48b
mov dword [0x737f28], 2
xor edi, edi
jmp 0x4bf4a1
mov dword [esp + 8], str.send_failed
mov dword [esp + 4], 0
mov dword [esp], 9
call fcn.00441df0
mov eax, dword [ebx + 0x2c]
mov dword [esp], eax
call sub.ws2_32.dll_closesocket
push eax
mov dword [ebx + 0x2c], 0xffffffff
add esp, 0x1b0
mov eax, edi
pop ebx
pop esi
pop edi
ret
mov eax, dword [ebx + 4]
lea esi, [esp + 0x20]
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.SITE__s_r_n
mov dword [esp + 4], 0x190
mov dword [esp], esi
call sub.msvcrt.dll__snprintf
mov byte [esp + 0x1af], 0
mov edx, esi
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
xor ecx, 0xffffffff
and eax, ecx
and eax, 0x80808080
je 0x4bf71d
test eax, 0x8080
je 0x4bf923
add al, al
mov dword [esp + 0xc], 0
sbb edx, 3
mov dword [esp + 4], esi
sub edx, esi
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 0x4bf6b5
mov eax, ebx
call fcn.004be7f0
cmp eax, 2
je 0x4bf7c2
cmp dword [0x737f28], 1
jne 0x4bf579
jmp 0x4bf48b
shr eax, 0x10
add edx, 2
jmp 0x4bf440
mov edi, dword [ebx + 8]
jmp 0x4bf306
mov eax, dword [ebx + 4]
jmp 0x4bf335
mov eax, dword [0x737f20]
test eax, eax
jne 0x4bf4cd
jmp 0x4bf556
mov dword [0x737f28], 1
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x4bfa08
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.USER__s_r_n
mov dword [esp + 4], 0xc8
mov dword [esp], esi
call sub.msvcrt.dll__snprintf
mov byte [esp + 0xe7], 0
mov edx, esi
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
xor ecx, 0xffffffff
and eax, ecx
and eax, 0x80808080
je 0x4bf7fd
test eax, 0x8080
jne 0x4bf821
shr eax, 0x10
add edx, 2
add al, al
mov dword [esp + 0xc], 0
sbb edx, 3
mov dword [esp + 4], esi
sub edx, esi
mov dword [esp + 8], edx
mov eax, dword [ebx + 0x2c]
mov dword [esp], eax
call sub.ws2_32.dll_send
sub esp, 0x10
test eax, eax
js 0x4bf9ad
mov eax, ebx
call fcn.004be7f0
cmp eax, 2
je 0x4bf988
cmp eax, 3
jne 0x4bf48b
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x4bfa25
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.PASS__s_r_n
mov dword [esp + 4], 0xc8
mov dword [esp], esi
call sub.msvcrt.dll__snprintf
mov byte [esp + 0xe7], 0
mov edx, esi
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
xor ecx, 0xffffffff
and eax, ecx
and eax, 0x80808080
je 0x4bf898
test eax, 0x8080
jne 0x4bf8bc
shr eax, 0x10
add edx, 2
add al, al
mov dword [esp + 0xc], 0
sbb edx, 3
mov dword [esp + 4], esi
sub edx, esi
mov dword [esp + 8], edx
mov eax, dword [ebx + 0x2c]
mov dword [esp], eax
call sub.ws2_32.dll_send
sub esp, 0x10
test eax, eax
js 0x4bf9ad
mov eax, ebx
call fcn.004be7f0
cmp eax, 2
je 0x4bf988
cmp eax, 3
jne 0x4bf48b
mov dword [esp + 8], str.FTP_server_asking_for_ACCNT_on_anonymous_n
mov dword [esp + 4], 0x7d2
mov dword [esp], 9
call fcn.00441df0
jmp 0x4bf48b
shr eax, 0x10
add edx, 2
jmp 0x4bf73f
shr eax, 0x10
add edx, 2
jmp 0x4bf668
mov dword [esp + 8], str.gethostbyname_address_mismatch
mov dword [esp + 4], 0
mov dword [esp], 9
or edi, 0xffffffff
call fcn.00441df0
jmp 0x4bf4a1
mov eax, dword [ebx + 4]
mov dword [esp + 8], str.USER_anonymous__s_r_n
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0x190
mov dword [esp], esi
call sub.msvcrt.dll__snprintf
jmp 0x4bf5a7
xor edi, edi
jmp 0x4bf4a1
mov dword [esp + 8], str.PASS_anonymous__r_n
mov dword [esp + 4], 0x190
mov dword [esp], esi
call sub.msvcrt.dll__snprintf
jmp 0x4bf4e9
mov dword [esp + 8], str.send_failed
mov dword [esp + 4], 0
jmp 0x4bf912
mov dword [esp + 8], str.PASS_anonymous__r_n
mov dword [esp + 4], 0x190
mov dword [esp], esi
call sub.msvcrt.dll__snprintf
jmp 0x4bf63c
or edi, 0xffffffff
jmp 0x4bf4a1
mov dword [esp + 8], str.Failed_to_create_a_connection
mov dword [esp + 4], 0
mov dword [esp], 9
call fcn.00441df0
jmp 0x4bf48b
mov dword [esp + 8], str.USER_anonymous_r_n
mov dword [esp + 4], 0xc8
mov dword [esp], esi
call sub.msvcrt.dll__snprintf
jmp 0x4bf7f3
mov dword [esp + 8], str.PASS_anonymous__r_n
mov dword [esp + 4], 0xc8
mov dword [esp], esi
call sub.msvcrt.dll__snprintf
jmp 0x4bf88e
mov dword [esp + 8], str.gethostbyname_failed
mov dword [esp + 4], 0
mov dword [esp], 9
or edi, 0xffffffff
call fcn.00441df0
jmp 0x4bf4a1