Function at 0x180001410
Capabilities:
Link many functions at runtime

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rdi
sub rsp, 0x1d0
mov rax, qword [0x180065480]
xor rax, rsp
mov qword [rsp + 0x1c0], rax
lea rcx, str.ws2_32.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea rdx, str.WSAStartup
mov rcx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.WSACleanup
mov rcx, rbx
mov qword [0x18006bb60], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.gethostbyname
mov rcx, rbx
mov qword [0x18006bb68], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.inet_ntoa
mov rcx, rbx
mov qword [0x18006bb70], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.__WSAFDIsSet
mov rcx, rbx
mov qword [0x18006bb78], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.select
mov rcx, rbx
mov qword [0x18006bb80], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.WSAGetLastError
mov rcx, rbx
mov qword [0x18006bb88], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.connect
mov rcx, rbx
mov qword [0x18006bb90], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.inet_addr
mov rcx, rbx
mov qword [0x18006bb98], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.htons
mov rcx, rbx
mov qword [0x18006bba0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.ioctlsocket
mov rcx, rbx
mov qword [0x18006bba8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.socket
mov rcx, rbx
mov qword [0x18006bbb0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.send
mov rcx, rbx
mov qword [0x18006bbb8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.closesocket
mov rcx, rbx
mov qword [0x18006bbc0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.recv
mov rcx, rbx
mov qword [0x18006bbc8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [rsp + 0x20]
mov ecx, 0x202
mov qword [0x18006bbd0], rax
call qword [0x18006bb60]
xor ebx, ebx
lea ebp, [rbx + 4]
test eax, eax
je 0x18000162a
lea rdx, str.Init_WinSock_Failed_
lea rcx, [0x180066920]
mov qword [rsp + 0x1e0], rsi
call fcn.180001f20
mov dl, 0xa
mov rcx, rax
mov rsi, rax
call fcn.1800017a0
mov rcx, qword [rsi]
mov edi, ebx
movsxd rcx, dword [rcx + 4]
test byte [rcx + rsi + 0x10], 6
jne 0x1800015ff
mov rcx, qword [rcx + rsi + 0x48]
mov rdx, qword [rcx]
call qword [rdx + 0x60]
cmp eax, 0xffffffff
cmove edi, ebp
mov rax, qword [rsi]
movsxd rcx, dword [rax + 4]
add rcx, rsi
mov rsi, qword [rsp + 0x1e0]
test edi, edi
je 0x18000162a
mov edx, dword [rcx + 0x10]
or edx, edi
cmp qword [rcx + 0x48], rbx
jne 0x180001622
or edx, ebp
xor r8d, r8d
call fcn.180001130
movzx eax, word [rsp + 0x20]
cmp al, 2
jne 0x18000163b
shr ax, 8
cmp al, 2
je 0x1800016a4
lea rdx, str.Init_WinSock_Failed_
lea rcx, [0x180066920]
call fcn.180001f20
mov dl, 0xa
mov rcx, rax
mov rdi, rax
call fcn.1800017a0
mov rcx, qword [rdi]
movsxd rcx, dword [rcx + 4]
test byte [rcx + rdi + 0x10], 6
jne 0x18000167a
mov rcx, qword [rcx + rdi + 0x48]
mov rdx, qword [rcx]
call qword [rdx + 0x60]
cmp eax, 0xffffffff
cmove ebx, ebp
mov rax, qword [rdi]
movsxd rcx, dword [rax + 4]
add rcx, rdi
test ebx, ebx
je 0x18000169e
mov edx, dword [rcx + 0x10]
or edx, ebx
cmp qword [rcx + 0x48], 0
jne 0x180001696
or edx, ebp
xor r8d, r8d
call fcn.180001130
call qword [0x18006bb68]
lea rax, [0x1800d4828]
mov rcx, qword [rsp + 0x1c0]
xor rcx, rsp
call fcn.18002bd00
lea r11, [rsp + 0x1d0]
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret