Function at 0x4320b0
Capabilities:
Connect socket
Connect udp socket
Create udp socket

Disassembly:
push ebp
mov eax, 0x56fe18
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x5c
mov esi, dword [ebp + 0xc]
call dbg._fh_alloc
test eax, eax
mov ebx, eax
je 0x4325b6
mov edx, dword [0x5a416c]
test edx, edx
je 0x4322d0
mov eax, 2
mov dword [ebp - 0x28], 0
mov word [ebp - 0x28], ax
movzx eax, word [ebp + 8]
mov dword [ebp - 0x24], 0
mov dword [addr.sin_family], 0
mov dword [addr.sin_addr], 0
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_htons]
sub esp, 4
mov word [ebp - 0x26], ax
mov dword [esp], 0x7f000001
call dword [sym.imp.WS2_32.dll_htonl]
sub esp, 4
mov dword [ebp - 0x24], eax
mov eax, esi
call dbg.GetSocketProtocolFromSocketType
mov dword [esp + 4], esi
mov dword [esp], 2
mov dword [esp + 8], eax
call dword [sym.imp.WS2_32.dll_socket]
sub esp, 0xc
cmp eax, 0xffffffff
je 0x4322da
lea edx, [ebp - 0x28]
mov dword [ebx + 0xc], eax
mov dword [esp + 8], 0x10
mov dword [esp + 4], edx
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_connect]
sub esp, 0xc
cmp eax, 0xffffffff
je 0x432430
mov eax, dword [ebx + 4]
mov edi, 0xffffffff
test eax, eax
je 0x4321b0
cmp ebx, 0x5a4180
jb 0x4321b0
cmp ebx, 0x5bc180
jae 0x4321b0
mov edx, ebx
sub edx, 0x5a4180
sar edx, 4
imul edx, edx, 0xaaaaaaab
lea edi, [edx + 0x800]
lea esi, [esi]
cmp esi, 1
mov ecx, 0x56eeca
mov eax, str.udp:
cmove eax, ecx
mov ecx, dword [ebp + 8]
add ebx, 0x10
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edi
mov dword [esp + 8], str._d_lo_client:_s_d_
mov dword [esp + 0x14], ecx
mov dword [esp + 4], 0x20
mov dword [esp], ebx
call dbg.snprintf
test byte [0x5a4058], 0x80
jne 0x432200
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
call dbg.android::base::GetMinimumLogSeverity()
cmp eax, 1
jg 0x4321f3
mov eax, dword [sym.imp.msvcrt.dll__errno]
lea ebx, [ebp - 0x30]
mov dword [ebp - 0x3c], eax
call eax
sub esi, 1
mov esi, dword [ebp + 8]
mov ecx, 0x56eec1
mov edx, dword [eax]
mov eax, 0x56eebd
cmove eax, ecx
lea ecx, [ebp - 0x2c]
mov dword [esp + 0xc], eax
mov dword [esp + 8], esi
mov dword [esp], ecx
mov dword [esp + 0x10], edi
mov dword [esp + 4], str.port__d_type__s___fd__d
mov dword [ebp - 0x40], edx
call dbg.android::base::StringPrintf(char const*, ::)
mov ecx, ebx
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0x2e4
mov dword [esp], str.system_core_adb_sysdeps_win32.cpp
call dbg.android::base::LogMessage::LogMessage(char const*, unsigned int, android::base::LogId, android::base::LogSeverity, char const*, int)
mov ecx, ebx
sub esp, 0x18
call dbg.android::base::LogMessage::stream()
mov ecx, dword [ebp - 0x2c]
mov esi, dword [ecx - 0xc]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], esi
call dbg.std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, int)
mov ecx, ebx
call dbg.android::base::LogMessage::~LogMessage()
mov ecx, dword [ebp - 0x2c]
mov dword [esp], ebx
sub ecx, 0xc
call dbg.std::string::_Rep::_M_dispose(std::allocator<char> const&)
push eax
mov eax, dword [ebp - 0x3c]
call eax
mov edx, dword [ebp - 0x40]
mov dword [eax], edx
jmp 0x4321f3
call sym._init_winsock____clone_.part.130_
jmp 0x4320de
lea esi, [esi]
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
lea edi, [ebp - 0x2c]
mov esi, eax
lea eax, [ebp - 0x30]
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [ebp - 0x40], eax
call dbg.android::base::SystemErrorCodeToString(int)
mov eax, dword [ebp - 0x30]
mov dword [esp + 4], str.cannot_create_socket:__s
mov dword [esp], edi
mov dword [esp + 8], eax
call dbg.android::base::StringPrintf(char const*, ::)
mov ecx, dword [ebp + 0x10]
mov dword [esp], edi
call dbg.std::string::swap(std::string&)
mov eax, dword [ebp - 0x2c]
lea ecx, [eax - 0xc]
sub esp, 4
cmp ecx, 0x566310
jne 0x432649
mov eax, dword [ebp - 0x30]
lea ecx, [eax - 0xc]
cmp ecx, 0x566310
jne 0x43262b
test byte [0x5a4058], 0x80
jne 0x43237a
mov eax, dword [sym.imp.msvcrt.dll__errno]
mov dword [ebp - 0x3c], eax
mov eax, esi
call dbg._socket_set_errno
mov edi, dword [ebp - 0x3c]
call edi
mov esi, dword [eax]
mov eax, ebx
call dbg._fh_close
call edi
mov edi, 0xffffffff
mov dword [eax], esi
jmp 0x4321f3
call dbg.android::base::GetMinimumLogSeverity()
mov edx, dword [sym.imp.msvcrt.dll__errno]
mov dword [ebp - 0x3c], edx
cmp eax, 1
jg 0x432357
call edx
mov ecx, dword [ebp + 0x10]
mov edx, dword [eax]
mov eax, dword [ecx]
mov dword [esp], edi
mov dword [esp + 4], 0x56ef9a
mov dword [ebp - 0x44], edx
mov dword [esp + 8], eax
call dbg.android::base::StringPrintf(char const*, ::)
mov edi, dword [ebp - 0x40]
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 1
mov ecx, edi
mov dword [esp + 8], 0
mov dword [esp + 4], 0x2cf
mov dword [esp], str.system_core_adb_sysdeps_win32.cpp
call dbg.android::base::LogMessage::LogMessage(char const*, unsigned int, android::base::LogId, android::base::LogSeverity, char const*, int)
mov ecx, edi
sub esp, 0x18
call dbg.android::base::LogMessage::stream()
mov edx, dword [ebp - 0x2c]
mov ecx, dword [edx - 0xc]
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 8], ecx
call dbg.std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, int)
mov ecx, edi
call dbg.android::base::LogMessage::~LogMessage()
mov ecx, dword [ebp - 0x2c]
mov dword [esp], edi
sub ecx, 0xc
call dbg.std::string::_Rep::_M_dispose(std::allocator<char> const&)
mov eax, dword [ebp - 0x3c]
push ecx
call eax
mov edx, dword [ebp - 0x44]
mov dword [eax], edx
jmp 0x432357
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
lea edx, [ebp - 0x30]
mov dword [esp], edx
lea edi, [ebp - 0x2c]
mov dword [ebp - 0x40], edx
mov dword [esp + 4], eax
mov dword [ebp - 0x44], eax
call dbg.android::base::SystemErrorCodeToString(int)
mov edx, dword [ebp - 0x30]
movzx eax, word [ebp - 0x26]
mov dword [ebp - 0x48], edx
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_ntohs]
mov word [ebp - 0x3c], ax
mov eax, dword [ebp - 0x24]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_inet_ntoa]
mov edx, dword [ebp - 0x48]
sub esp, 4
mov dword [esp + 0x10], edx
movzx edx, word [ebp - 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 4], str.cannot_connect_to__s:_u:__s
mov dword [esp], edi
mov dword [esp + 0xc], edx
call dbg.android::base::StringPrintf(char const*, ::)
mov ecx, dword [ebp + 0x10]
mov dword [esp], edi
call dbg.std::string::swap(std::string&)
mov eax, dword [ebp - 0x2c]
lea ecx, [eax - 0xc]
sub esp, 4
cmp ecx, 0x566310
jne 0x43260a
mov eax, dword [ebp - 0x30]
lea ecx, [eax - 0xc]
cmp ecx, 0x566310
jne 0x4325ec
test byte [0x5a4058], 0x80
jne 0x4324ea
mov eax, dword [sym.imp.msvcrt.dll__errno]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x44]
call dbg._socket_set_errno
jmp 0x43235e
call dbg.android::base::GetMinimumLogSeverity()
mov edx, dword [sym.imp.msvcrt.dll__errno]
mov dword [ebp - 0x3c], edx
cmp eax, 1
jg 0x4324dd
call edx
sub esi, 1
mov ecx, 0x56eec1
mov edx, dword [eax]
mov eax, 0x56eebd
cmove eax, ecx
mov dword [ebp - 0x48], edx
mov edx, dword [ebp + 0x10]
mov edx, dword [edx]
mov dword [esp + 8], eax
mov dword [esp], edi
mov dword [esp + 4], str.could_not_connect_to__s:_d:__s
mov dword [esp + 0x10], edx
mov edx, dword [ebp + 8]
mov dword [esp + 0xc], edx
call dbg.android::base::StringPrintf(char const*, ::)
mov edi, dword [ebp - 0x40]
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 1
mov ecx, edi
mov dword [esp + 8], 0
mov dword [esp + 4], 0x2dc
mov dword [esp], str.system_core_adb_sysdeps_win32.cpp
call dbg.android::base::LogMessage::LogMessage(char const*, unsigned int, android::base::LogId, android::base::LogSeverity, char const*, int)
mov ecx, edi
sub esp, 0x18
call dbg.android::base::LogMessage::stream()
mov ecx, dword [ebp - 0x2c]
mov esi, dword [ecx - 0xc]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], esi
call dbg.std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, int)
mov ecx, edi
call dbg.android::base::LogMessage::~LogMessage()
mov edx, dword [ebp - 0x2c]
mov dword [esp], edi
lea ecx, [edx - 0xc]
call dbg.std::string::_Rep::_M_dispose(std::allocator<char> const&)
mov eax, dword [ebp - 0x3c]
push edx
call eax
mov edx, dword [ebp - 0x48]
mov dword [eax], edx
jmp 0x4324dd
call dword [sym.imp.msvcrt.dll__errno]
mov edi, 0xffffffff
mov eax, dword [eax]
mov dword [esp], eax
call dbg.adb_strerror(int)
mov dword [esp], eax
mov ebx, eax
call sym._strlen
mov ecx, dword [ebp + 0x10]
mov dword [esp], ebx
mov dword [esp + 4], eax
call dbg.std::string::assign(char const*, unsigned int)
sub esp, 8
jmp 0x4321f3
or edx, 0xffffffff
lock xadd dword [eax - 4], edx
test edx, edx
jg 0x4324cc
mov dword [esp], edi
call dbg.std::string::_Rep::_M_destroy(std::allocator<char> const&)
push eax
jmp 0x4324cc
or edx, 0xffffffff
lock xadd dword [eax - 4], edx
test edx, edx
jg 0x4324ba
lea eax, [ebp - 0x31]
mov dword [esp], eax
call dbg.std::string::_Rep::_M_destroy(std::allocator<char> const&)
push eax
jmp 0x4324ba
or edx, 0xffffffff
lock xadd dword [eax - 4], edx
test edx, edx
jg 0x432346
mov dword [esp], edi
call dbg.std::string::_Rep::_M_destroy(std::allocator<char> const&)
push eax
jmp 0x432346
or edx, 0xffffffff
lock xadd dword [eax - 4], edx
test edx, edx
jg 0x432334
lea eax, [ebp - 0x31]
mov dword [esp], eax
call dbg.std::string::_Rep::_M_destroy(std::allocator<char> const&)
push eax
jmp 0x432334