Function at 0x101343b0
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:
sub esp, 0x100
mov eax, dword [0x10438fc0]
xor eax, esp
mov dword [esp + 0xfc], eax
push esi
mov esi, dword [esp + 0x108]
test esi, esi
jne 0x101343e9
or eax, 0xffffffff
pop esi
mov ecx, dword [esp + 0xfc]
xor ecx, esp
call fcn.10148524
add esp, 0x100
ret
push ebp
push edi
push 6
xor eax, eax
push 1
push 2
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
call dword [sym.imp.WSOCK32.dll_socket]
cmp dword [esi + 0x28], 0
mov ecx, 2
mov dword [esi + 0x30], eax
mov word [esp + 0x28], cx
mov dword [esp + 0xc], 0x10
je 0x101345d0
push str.PASV_r_n
lea edx, [esp + 0x44]
push 0xc8
push edx
call dword [sym.imp.MSVCR100.dll__snprintf]
lea eax, [esp + 0x4c]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10134447
mov ecx, dword [esi + 0x2c]
push 0
sub eax, edx
push eax
lea eax, [esp + 0x48]
push eax
push ecx
call dword [sym.imp.WSOCK32.dll_send]
mov edi, eax
test edi, edi
jge 0x101344a4
push str.send_failed
push 0
push 9
call fcn.100e31a0
mov edx, dword [esi + 0x30]
add esp, 0xc
push edx
call dword [sym.imp.WSOCK32.dll_closesocket]
mov eax, edi
pop edi
pop ebp
mov dword [esi + 0x30], 0xffffffff
pop esi
mov ecx, dword [esp + 0xfc]
xor ecx, esp
call fcn.10148524
add esp, 0x100
ret
mov eax, esi
call fcn.10133b40
mov ebp, dword [sym.imp.WSOCK32.dll_closesocket]
or edi, 0xffffffff
cmp eax, 2
je 0x101344d2
cmp eax, 5
je 0x10134613
mov ecx, dword [esi + 0x30]
push ecx
call ebp
mov dword [esi + 0x30], edi
mov dword [esi + 0x28], 0
mov edx, dword [esi + 0x448]
lea ecx, [edx + esi + 0x3c]
lea esp, [esp]
mov al, byte [ecx]
cmp al, 0x30
jl 0x101344ea
cmp al, 0x39
jle 0x101344f1
test al, al
je 0x101344f1
inc ecx
jmp 0x101344e0
lea eax, [esp + 0x24]
push eax
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x24]
push eax
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x24]
push eax
lea edx, [esp + 0x24]
push edx
push str._u__u__u__u__u__u
push ecx
call dword [sym.imp.MSVCR100.dll_sscanf]
add esp, 0x20
cmp eax, 6
je 0x1013455e
push str.Invalid_answer_to_PASV_n
push 0x7d0
push 9
call fcn.100e31a0
mov eax, dword [esi + 0x30]
add esp, 0xc
cmp eax, edi
je 0x10134544
push eax
call ebp
mov dword [esi + 0x30], edi
mov eax, edi
pop edi
pop ebp
pop esi
mov ecx, dword [esp + 0xfc]
xor ecx, esp
call fcn.10148524
add esp, 0x100
ret
xor eax, eax
mov cl, byte [esp + eax*4 + 0x10]
mov byte [esp + eax + 0x38], cl
inc eax
cmp eax, 6
jl 0x10134560
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0xc]
mov ax, word [esp + 0x3c]
mov dword [esp + 0x2c], edx
push ecx
lea edx, [esp + 0x2c]
mov word [esp + 0x2e], ax
mov eax, dword [esi + 0x30]
push edx
push eax
call dword [sym.imp.WSOCK32.dll_connect]
test eax, eax
jge 0x10134776
push str.Failed_to_create_a_data_connection
push 0
push 9
call fcn.100e31a0
mov ecx, dword [esi + 0x30]
add esp, 0xc
push ecx
call ebp
mov dword [esi + 0x30], edi
mov eax, edi
pop edi
pop ebp
pop esi
mov ecx, dword [esp + 0xfc]
xor ecx, esp
call fcn.10148524
add esp, 0x100
ret
mov edi, dword [sym.imp.WSOCK32.dll_getsockname]
lea edx, [esp + 0xc]
push edx
lea ecx, [esp + 0x2c]
push ecx
push eax
call edi
mov eax, dword [esp + 0xc]
xor edx, edx
push eax
lea ecx, [esp + 0x2c]
mov word [esp + 0x2e], dx
mov edx, dword [esi + 0x30]
push ecx
push edx
call dword [sym.imp.WSOCK32.dll_bind]
test eax, eax
jge 0x1013463d
push str.bind_failed
push 0
push 9
call fcn.100e31a0
add esp, 0xc
mov eax, dword [esi + 0x30]
push eax
call dword [sym.imp.WSOCK32.dll_closesocket]
or edi, 0xffffffff
mov dword [esi + 0x30], edi
mov eax, edi
pop edi
pop ebp
pop esi
mov ecx, dword [esp + 0xfc]
xor ecx, esp
call fcn.10148524
add esp, 0x100
ret
mov eax, dword [esi + 0x30]
lea ecx, [esp + 0xc]
push ecx
lea edx, [esp + 0x2c]
push edx
push eax
call edi
mov ecx, dword [esi + 0x30]
push 1
push ecx
call dword [sym.imp.WSOCK32.dll_listen]
test eax, eax
jge 0x10134698
push str.listen_failed
push 0
push 9
call fcn.100e31a0
mov edx, dword [esi + 0x30]
add esp, 0xc
push edx
call dword [sym.imp.WSOCK32.dll_closesocket]
or edi, 0xffffffff
mov dword [esi + 0x30], edi
mov eax, edi
pop edi
pop ebp
pop esi
mov ecx, dword [esp + 0xfc]
xor ecx, esp
call fcn.10148524
add esp, 0x100
ret
movzx eax, byte [esp + 0x2b]
movzx ecx, byte [esp + 0x2a]
movzx edx, byte [esp + 0x2f]
push eax
movzx eax, byte [esp + 0x32]
push ecx
movzx ecx, byte [esp + 0x35]
push edx
movzx edx, byte [esp + 0x38]
push eax
push ecx
push edx
push str.PORT__d__d__d__d__d__d_r_n
lea eax, [esp + 0x5c]
push 0xc8
push eax
call dword [sym.imp.MSVCR100.dll__snprintf]
lea eax, [esp + 0x64]
add esp, 0x24
mov byte [esp + 0x107], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x101346e3
push 0
sub eax, edx
mov edx, dword [esi + 0x2c]
push eax
lea ecx, [esp + 0x48]
push ecx
push edx
call dword [sym.imp.WSOCK32.dll_send]
mov edi, eax
test edi, edi
jge 0x10134740
push str.send_failed
push 0
push 9
call fcn.100e31a0
mov eax, dword [esi + 0x30]
add esp, 0xc
push eax
call dword [sym.imp.WSOCK32.dll_closesocket]
mov eax, edi
pop edi
pop ebp
mov dword [esi + 0x30], 0xffffffff
pop esi
mov ecx, dword [esp + 0xfc]
xor ecx, esp
call fcn.10148524
add esp, 0x100
ret
mov eax, esi
call fcn.10133b40
cmp eax, 2
je 0x10134776
mov ecx, dword [esi + 0x30]
push ecx
call dword [sym.imp.WSOCK32.dll_closesocket]
or edi, 0xffffffff
mov dword [esi + 0x30], edi
mov eax, edi
pop edi
pop ebp
pop esi
mov ecx, dword [esp + 0xfc]
xor ecx, esp
call fcn.10148524
add esp, 0x100
ret
mov eax, dword [esi + 0x30]
mov ecx, dword [esp + 0x108]
pop edi
pop ebp
pop esi
xor ecx, esp
call fcn.10148524
add esp, 0x100
ret