Function at 0x4a13c0
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
mov ebp, esp
sub esp, 0x100
mov eax, dword [0x535b70]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 8]
push edi
test esi, esi
je 0x4a1554
push 6
push 1
xorps xmm0, xmm0
push 2
movups xmmword [ebp - 0xfc], xmm0
call dword [sym.imp.WS2_32.dll_socket]
mov dword [esi + 0x30], eax
mov ecx, 2
mov word [ebp - 0xfc], cx
mov dword [ebp - 0x100], 0x10
cmp eax, 0xffffffff
jne 0x4a1438
push str.socket_failed
push 0
push 9
call fcn.0048b8c0
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a55ed
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x28], 0
je 0x4a15ee
push str.PASV_r_n
lea eax, [ebp - 0xd4]
push 0xc8
push eax
call fcn.0044ad40
lea ecx, [ebp - 0xd4]
add esp, 0xc
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a1464
push 0
sub ecx, edx
lea eax, [ebp - 0xd4]
push ecx
push eax
push dword [esi + 0x2c]
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jns 0x4a14a3
push str.send_failed
push 0
push 9
call fcn.0048b8c0
add esp, 0xc
push dword [esi + 0x30]
call dword [sym.imp.WS2_32.dll_closesocket]
jmp 0x4a154d
push esi
call fcn.004a1aa0
mov edi, dword [sym.imp.WS2_32.dll_closesocket]
add esp, 4
cmp eax, 2
je 0x4a14d0
mov ecx, dword [esi + 0x30]
push ecx
cmp eax, 5
je 0x4a1498
call edi
mov dword [esi + 0x30], 0xffffffff
mov dword [esi + 0x28], 0
lea ecx, [esi + 0x3c]
add ecx, dword [esi + 0x448]
nop dword [eax]
mov al, byte [ecx]
cmp al, 0x30
jl 0x4a14ea
cmp al, 0x39
jle 0x4a14f1
test al, al
je 0x4a14f1
inc ecx
jmp 0x4a14e0
lea eax, [ebp - 0xd8]
push eax
lea eax, [ebp - 0xdc]
push eax
lea eax, [ebp - 0xe0]
push eax
lea eax, [ebp - 0xe4]
push eax
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0xec]
push eax
push str._u__u__u__u__u__u
push ecx
call fcn.0048daf0
add esp, 0x20
cmp eax, 6
je 0x4a1567
push str.Invalid_answer_to_PASV_n
push 0x7d0
push 9
call fcn.0048b8c0
mov eax, dword [esi + 0x30]
add esp, 0xc
cmp eax, 0xffffffff
je 0x4a1554
push eax
call edi
mov dword [esi + 0x30], 0xffffffff
pop edi
or eax, 0xffffffff
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a55ed
mov esp, ebp
pop ebp
ret
movzx eax, byte [ebp - 0xec]
push dword [ebp - 0x100]
mov byte [ebp - 0xc], al
movzx eax, byte [ebp - 0xe8]
mov byte [ebp - 0xb], al
movzx eax, byte [ebp - 0xe4]
mov byte [ebp - 0xa], al
movzx eax, byte [ebp - 0xe0]
mov byte [ebp - 9], al
movzx eax, byte [ebp - 0xdc]
mov byte [ebp - 8], al
movzx eax, byte [ebp - 0xd8]
mov byte [ebp - 7], al
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xf8], eax
mov ax, word [ebp - 8]
mov word [ebp - 0xfa], ax
lea eax, [ebp - 0xfc]
push eax
push dword [esi + 0x30]
call dword [sym.imp.WS2_32.dll_connect]
test eax, eax
jns 0x4a16ea
push str.Failed_to_create_a_data_connection
push 0
push 9
call fcn.0048b8c0
add esp, 0xc
push dword [esi + 0x30]
jmp 0x4a154b
mov edi, dword [sym.imp.WS2_32.dll_getsockname]
lea ecx, [ebp - 0x100]
push ecx
lea ecx, [ebp - 0xfc]
push ecx
push eax
call edi
push dword [ebp - 0x100]
xor eax, eax
mov word [ebp - 0xfa], ax
lea eax, [ebp - 0xfc]
push eax
push dword [esi + 0x30]
call dword [sym.imp.WS2_32.dll_bind]
test eax, eax
jns 0x4a1632
push str.bind_failed
jmp 0x4a1489
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0xfc]
push eax
push dword [esi + 0x30]
call edi
push 1
push dword [esi + 0x30]
call dword [sym.imp.WS2_32.dll_listen]
test eax, eax
jns 0x4a165e
push str.listen_failed
jmp 0x4a1489
movzx eax, byte [ebp - 0xf9]
push eax
movzx eax, byte [ebp - 0xfa]
push eax
movzx eax, byte [ebp - 0xf5]
push eax
movzx eax, byte [ebp - 0xf6]
push eax
movzx eax, byte [ebp - 0xf7]
push eax
movzx eax, byte [ebp - 0xf8]
push eax
push str.PORT__d__d__d__d__d__d_r_n
lea eax, [ebp - 0xd4]
push 0xc8
push eax
call fcn.0044ad40
lea ecx, [ebp - 0xd4]
mov byte [ebp - 0xd], 0
add esp, 0x24
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a16b4
push 0
sub ecx, edx
lea eax, [ebp - 0xd4]
push ecx
push eax
push dword [esi + 0x2c]
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
js 0x4a1484
push esi
call fcn.004a1aa0
add esp, 4
cmp eax, 2
jne 0x4a1495
mov ecx, dword [ebp - 4]
mov eax, dword [esi + 0x30]
xor ecx, ebp
pop edi
pop esi
call fcn.004a55ed
mov esp, ebp
pop ebp
ret