Function at 0x100094eb
Capabilities:
Connect socket
Get local ipv4 addresses
Get socket information
Get socket status
Set socket configuration

Disassembly:
push ebp
lea ebp, [esp - 0x1d4]
sub esp, 0x254
mov eax, dword [0x100120b4]
xor eax, ebp
mov dword [ebp + 0x1d0], eax
mov eax, dword [ebp + 0x1e4]
push ebx
mov ebx, dword [ebp + 0x1e0]
push esi
mov esi, dword [ebp + 0x1dc]
push edi
push dword [0x1001258c]
mov dword [ebp - 0x70], eax
mov eax, dword [esi]
push ebx
push esi
mov dword [ebp - 0x74], ebx
call dword [eax + 0x190]
or dword [ebp - 0x5c], 0xffffffff
mov dword [ebp - 0x68], eax
call sym.net.dll__ipv6_available_0
push dword [0x10012588]
mov dword [ebp - 0x64], eax
mov eax, dword [esi]
push ebx
push esi
call dword [eax + 0x17c]
push dword [0x1001257c]
mov dword [ebp - 0x6c], eax
mov eax, dword [esi]
push ebx
push esi
call dword [eax + 0x17c]
push 0x1c
mov dword [ebp - 0x60], eax
lea eax, [ebp + 0x1b4]
push 0
push eax
call sub.msvcr100.dll_memset
add esp, 0xc
cmp dword [ebp - 0x6c], 0
je 0x10009595
push dword [0x10012218]
mov eax, dword [esi]
push dword [ebp - 0x6c]
push esi
call dword [eax + 0x190]
mov edi, eax
jmp 0x10009598
mov edi, dword [ebp - 0x68]
cmp dword [ebp - 0x64], 0
je 0x100095b9
cmp dword [ebp - 0x60], 0
je 0x100095b9
push dword [0x10012218]
mov eax, dword [esi]
push dword [ebp - 0x60]
push esi
call dword [eax + 0x190]
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x70], 0
jne 0x100095cf
push str.inet_address_argument_is_null.
push esi
call sub.java.dll__JNU_ThrowNullPointerException_8
jmp 0x1000991d
push 0
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp + 0x1b4]
push eax
push dword [ebp + 0x1e8]
push dword [ebp - 0x70]
push esi
call sym.net.dll__NET_BindV6_8
test eax, eax
jne 0x1000991d
cmp word [ebp + 0x1b4], 0x17
jne 0x1000965a
cmp dword [ebp - 0x64], eax
jne 0x10009617
push str.Protocol_family_not_supported
push str.java_net_SocketException
push esi
call sub.java.dll__JNU_ThrowByName_12
jmp 0x1000991d
cmp dword [ebp - 0x5c], 0xffffffff
jne 0x10009624
push str.Destination_unreachable
jmp 0x10009607
push dword [ebp - 0x60]
mov eax, dword [esi]
push dword [0x10012588]
push ebx
push esi
call dword [eax + 0x1a0]
mov eax, dword [esi]
push 0
push dword [0x1001257c]
push ebx
push esi
call dword [eax + 0x1a0]
push edi
call sym.net.dll__NET_BindV6_8
mov eax, dword [ebp - 0x60]
mov edi, dword [ebp - 0x5c]
mov dword [ebp - 0x6c], eax
jmp 0x10009681
cmp dword [ebp - 0x5c], 0xffffffff
je 0x1000967c
mov eax, dword [esi]
push 0xffffffffffffffff
push dword [0x10012218]
push dword [ebp - 0x60]
push esi
call dword [eax + 0x1b4]
push dword [ebp - 0x5c]
call sym.net.dll__NET_BindV6_8
cmp edi, 0xffffffff
je 0x1000961d
mov eax, dword [esi]
push 0
push dword [0x1001257c]
push ebx
push esi
call dword [eax + 0x1a0]
cmp dword [ebp + 0x1ec], 0
jg 0x100096d6
xor eax, eax
cmp word [ebp + 0x1b4], 0x17
setne al
dec eax
and eax, 0xc
add eax, 0x10
push eax
lea eax, [ebp + 0x1b4]
push eax
push edi
call dword [sym.imp.ws2_32.dll_connect]
mov dword [ebp - 0x58], eax
cmp eax, 0xffffffff
jne 0x1000974c
call dword [sym.imp.ws2_32.dll_WSAGetLastError]
mov dword [ebp - 0x58], eax
jmp 0x1000974c
lea eax, [ebp - 0x5c]
push eax
xor ebx, ebx
push 0x8004667e
inc ebx
push edi
mov dword [ebp - 0x64], 4
mov dword [ebp - 0x5c], ebx
call dword [sym.imp.ws2_32.dll_ioctlsocket]
xor eax, eax
cmp word [ebp + 0x1b4], 0x17
setne al
dec eax
and eax, 0xc
add eax, 0x10
push eax
lea eax, [ebp + 0x1b4]
push eax
push edi
call dword [sym.imp.ws2_32.dll_connect]
mov dword [ebp - 0x58], eax
cmp eax, 0xffffffff
jne 0x10009734
call dword [sym.imp.ws2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x10009772
call dword [sym.imp.ws2_32.dll_WSAGetLastError]
mov dword [ebp - 0x58], eax
xor ebx, ebx
lea eax, [ebp - 0x5c]
push eax
push 0x8004667e
push edi
mov dword [ebp - 0x5c], ebx
call dword [sym.imp.ws2_32.dll_ioctlsocket]
mov ebx, dword [ebp - 0x74]
cmp dword [ebp - 0x58], 0
je 0x10009865
cmp dword [ebp - 0x58], 0x2741
jne 0x10009852
push str.connect:_Address_is_invalid_on_local_machine__or_port_is_not_valid_on_remote_machine
push str.java_net_ConnectException
jmp 0x1000960c
mov eax, dword [ebp + 0x1ec]
cdq
mov ecx, 0x3e8
idiv ecx
mov dword [ebp - 0x54], ebx
mov dword [ebp + 0xb0], ebx
xor ebx, ebx
mov dword [ebp - 0x50], edi
mov dword [ebp + 0xb4], edi
mov dword [ebp - 0x7c], eax
imul edx, edx, 0x3e8
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp + 0xb0]
push eax
lea eax, [ebp - 0x54]
push eax
push ebx
lea eax, [edi + 1]
push eax
mov dword [ebp - 0x78], edx
call dword [sym.imp.ws2_32.dll_select]
mov dword [ebp - 0x58], eax
cmp eax, ebx
jne 0x100097f2
push str.connect_timed_out
push str.java_net_SocketTimeoutException
push esi
call sub.java.dll__JNU_ThrowByName_12
push 2
push edi
call dword [sym.imp.ws2_32.dll_shutdown]
lea eax, [ebp - 0x5c]
push eax
push 0x8004667e
push edi
mov dword [ebp - 0x5c], ebx
call dword [sym.imp.ws2_32.dll_ioctlsocket]
jmp 0x1000991d
lea eax, [ebp + 0xb0]
push eax
push edi
call sub.ws2_32.dll___WSAFDIsSet
test eax, eax
jne 0x1000980b
mov dword [ebp - 0x58], ebx
jmp 0x10009736
mov dword [ebp - 0x60], ebx
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x58]
push eax
push 0x1007
push 0xffff
push edi
call sym.net.dll__NET_BindV6_8
cmp dword [ebp - 0x58], ebx
jne 0x10009736
push ebx
call dword [sym.imp.kernel32.dll_Sleep]
inc dword [ebp - 0x60]
cmp dword [ebp - 0x60], 3
jl 0x1000980e
cmp dword [ebp - 0x58], ebx
jne 0x10009736
push str.Unable_to_establish_connection
jmp 0x10009607
push str.connect
push dword [ebp - 0x58]
push esi
call sym.net.dll__NET_BindV6_8
jmp 0x1000991d
mov eax, dword [esi]
push edi
push dword [0x10012218]
push dword [ebp - 0x6c]
push esi
call dword [eax + 0x1b4]
push dword [ebp - 0x70]
mov eax, dword [esi]
push dword [0x10012574]
push ebx
push esi
call dword [eax + 0x1a0]
push dword [ebp + 0x1e8]
mov eax, dword [esi]
push dword [0x10012584]
push ebx
push esi
call dword [eax + 0x1b4]
cmp dword [ebp - 0x68], 0
jne 0x1000991d
xor eax, eax
cmp word [ebp + 0x1b4], 0x17
setne al
dec eax
and eax, 0xc
add eax, 0x10
mov dword [ebp - 0x68], eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp + 0x1b4]
push eax
push edi
call dword [sym.imp.ws2_32.dll_getsockname]
cmp eax, 0xffffffff
jne 0x100098fb
call dword [sym.imp.ws2_32.dll_WSAGetLastError]
cmp eax, 0x2736
jne 0x100098ec
push str.Socket_closed
jmp 0x10009607
push str.getsockname_failed
push esi
call fcn.1000afaa
pop ecx
pop ecx
jmp 0x1000991d
movzx eax, word [ebp + 0x1b6]
push eax
call dword [sym.imp.ws2_32.dll_ntohs]
mov ecx, dword [esi]
movzx eax, ax
push eax
push dword [0x1001258c]
push ebx
push esi
call dword [ecx + 0x1b4]
mov ecx, dword [ebp + 0x1d0]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1000c212
add ebp, 0x1d4
leave
ret 0x14