Function at 0x1009cc30
Capabilities:
Connect socket
Set socket configuration

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x448
mov r15d, r9d
mov r14, r8
mov rsi, rdx
mov rdi, rcx
mov dword [rsp + 0x38], 1
mov rbx, qword [rcx]
lea r8, [rsp + 0x38]
mov rcx, rbx
mov edx, 0x8004667e
call sub.ws2_32.dll_ioctlsocket
cmp eax, 0xffffffff
je 0x1009cc91
cmp word [rsi], 0
je 0x1009cca5
mov eax, dword [rsi + 4]
movzx ecx, word [rsi + 0xc]
rol cx, 8
mov edx, dword [rsi + 8]
movups xmm0, xmmword [rsi + 0xe]
mov r8d, 0x1c
mov bp, 0x17
jmp 0x1009ccc8
call sub.ws2_32.dll_WSAGetLastError
mov edi, eax
shl rdi, 0x20
or rdi, 2
jmp 0x1009ceea
mov ecx, dword [rsi + 2]
movzx eax, word [rsi + 6]
shl rax, 0x20
or rax, rcx
rol cx, 8
shr rax, 0x10
xorps xmm0, xmm0
mov r8d, 0x10
mov bp, 2
mov word [rsp + 0x38], bp
mov word [rsp + 0x3a], cx
mov dword [rsp + 0x3c], eax
movups xmmword [rsp + 0x40], xmm0
mov dword [rsp + 0x50], edx
lea rdx, [rsp + 0x38]
mov rcx, rbx
call sub.ws2_32.dll_connect
cmp eax, 0xffffffff
je 0x1009ccf5
xor esi, esi
jmp 0x1009cd04
call sub.ws2_32.dll_WSAGetLastError
mov esi, eax
shl rsi, 0x20
or rsi, 2
mov dword [rsp + 0x38], 0
lea r8, [rsp + 0x38]
mov rcx, rbx
mov edx, 0x8004667e
call sub.ws2_32.dll_ioctlsocket
cmp eax, 0xffffffff
je 0x1009cd4d
test rsi, rsi
je 0x1009cd66
mov ebp, esi
and ebp, 3
lea rax, [0x1009cf4c]
movsxd rcx, dword [rax + rbp*4]
add rcx, rax
jmp rcx
movzx eax, byte [rsi + 0x10]
cmp al, 0xd
je 0x1009cd95
mov rdi, rsi
jmp 0x1009ceea
call sub.ws2_32.dll_WSAGetLastError
mov edi, eax
shl rdi, 0x20
or rdi, 2
mov ebp, esi
and ebp, 3
jmp 0x1009cea2
xor edi, edi
jmp 0x1009ceea
movzx eax, byte [rsi + 0xf]
cmp al, 0xd
jne 0x1009cd45
jmp 0x1009cd95
test r14, r14
jne 0x1009cdab
test r15d, r15d
jne 0x1009cdab
lea rdi, str.cannot_set_a_0_duration_timeout
jmp 0x1009cea2
mov eax, r15d
imul rax, rax, 0x10624dd3
shr rax, 0x26
cmp r15d, 0x3e8
mov ecx, 1
mov edx, eax
cmovb edx, ecx
mov dword [rsp + 0x30], r14d
test r14d, r14d
cmovne edx, eax
mov dword [rsp + 0x34], edx
mov qword [rsp + 0x240], 1
mov qword [rsp + 0x248], rbx
lea rcx, [rsp + 0x250]
mov r8d, 0x1f8
xor edx, edx
call sub.msvcrt.dll_memset
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], rbx
lea rcx, [rsp + 0x48]
mov r8d, 0x1f8
xor edx, edx
call sub.msvcrt.dll_memset
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x240]
lea r9, [rsp + 0x38]
mov ecx, 1
xor edx, edx
call sub.ws2_32.dll_select
test eax, eax
je 0x1009ce5f
cmp eax, 0xffffffff
jne 0x1009ce68
call sub.ws2_32.dll_WSAGetLastError
mov edi, eax
shl rdi, 0x20
or rdi, 2
jmp 0x1009cea2
lea rdi, str.connection_timed_out
jmp 0x1009ce74
cmp dword [rsp + 0x240], 1
jne 0x1009ce8d
xor edi, edi
cmp ebp, 1
jne 0x1009ceea
lea rbx, [rsi - 1]
lea rbp, [rsi + 7]
mov rcx, qword [rsi - 1]
mov rax, qword [rsi + 7]
call qword [rax]
jmp 0x1009cebe
mov rcx, rdi
call fcn.100890a0
mov rdi, rdx
test rax, rax
jne 0x1009cea2
test rdi, rdi
je 0x1009cefd
test rsi, rsi
je 0x1009ceea
cmp ebp, 1
jne 0x1009ceea
lea rbx, [rsi - 1]
lea rbp, [rsi + 7]
mov rcx, qword [rsi - 1]
mov rax, qword [rsi + 7]
call qword [rax]
mov rax, qword [rbp]
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x1009ced7
mov r8, qword [rax + 0x10]
mov rcx, qword [rbx]
call fcn.100028e0
mov edx, 0x18
mov r8d, 8
mov rcx, rbx
call fcn.100028e0
mov rax, rdi
add rsp, 0x448
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
xor edi, edi
xor ecx, ecx
call fcn.1005cd30
jmp 0x1009ce74