Function at 0x180024c00
Capabilities:
Connect socket
Get socket status
Set socket configuration

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r15
lea rbp, [rsp - 0x5b0]
sub rsp, 0x6b0
mov rax, qword [0x1800df010]
xor rax, rsp
mov qword [rbp + 0x580], rax
mov rdi, rdx
mov dword [rsp + 0x38], 1
mov rbx, r8
mov rsi, rcx
mov rcx, rdi
lea r8, [rsp + 0x38]
mov edx, 0x8004667e
mov r15, r9
call qword [sym.imp.WS2_32.dll_ioctlsocket]
mov r8d, dword [rbx + 0x10]
mov rcx, rdi
mov rdx, qword [rbx + 0x20]
call qword [sym.imp.WS2_32.dll_connect]
test eax, eax
jns 0x180024f36
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x180024c86
mov rax, qword [rsi + 8]
mov ecx, 2
mov dword [rax], ecx
xor al, al
jmp 0x180024ffe
mov rax, qword [rsi + 0x18]
lea rdx, [rbp + 0x160]
mov qword [rsp + 0x698], r14
mov ecx, 4
mov qword [rsp + 0x58], rdi
mov dword [rsp + 0x50], 1
mov r8, qword [rax]
mov rax, qword [rsi + 0x10]
mov r9, qword [rax]
lea rax, [rsp + 0x50]
nop word [rax + rax]
lea rdx, [rdx + 0x80]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
lea rax, [rax + 0x80]
movups xmmword [rdx - 0x80], xmm0
movups xmm0, xmmword [rax - 0x60]
movups xmmword [rdx - 0x70], xmm1
movups xmm1, xmmword [rax - 0x50]
movups xmmword [rdx - 0x60], xmm0
movups xmm0, xmmword [rax - 0x40]
movups xmmword [rdx - 0x50], xmm1
movups xmm1, xmmword [rax - 0x30]
movups xmmword [rdx - 0x40], xmm0
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rdx - 0x30], xmm1
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rdx - 0x20], xmm0
movups xmmword [rdx - 0x10], xmm1
sub rcx, 1
jne 0x180024cc0
mov rcx, qword [rax]
lea rax, [rsp + 0x50]
mov qword [rdx], rcx
lea rcx, [rbp + 0x370]
mov edx, 4
nop word [rax + rax]
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
lea rax, [rax + 0x80]
movups xmmword [rcx - 0x80], xmm0
movups xmm0, xmmword [rax - 0x60]
movups xmmword [rcx - 0x70], xmm1
movups xmm1, xmmword [rax - 0x50]
movups xmmword [rcx - 0x60], xmm0
movups xmm0, xmmword [rax - 0x40]
movups xmmword [rcx - 0x50], xmm1
movups xmm1, xmmword [rax - 0x30]
movups xmmword [rcx - 0x40], xmm0
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rcx - 0x30], xmm1
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x10], xmm1
sub rdx, 1
jne 0x180024d30
mov rax, qword [rax]
lea rdx, [rsp + 0x50]
mov qword [rcx], rax
lea rax, [rsp + 0x40]
mov dword [rsp + 0x40], r9d
lea ecx, [rdi + 1]
mov dword [rsp + 0x44], r8d
lea r9, [rbp + 0x370]
mov qword [rsp + 0x6a8], r12
lea r8, [rbp + 0x160]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x6a0], r13
call qword [sym.imp.WS2_32.dll_select]
movsxd rcx, eax
test eax, eax
jns 0x180024e85
movabs r13, 0x7ffffffffffffc17
movabs r12, 0x7fffffffffffffff
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
cmp dword [rax], 4
jne 0x180024ef9
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x180024e15
imul rax, rax, 0x64
jmp 0x180024e33
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
cmp rax, r13
jge 0x180024e45
add rax, 0x3e8
mov qword [rsp + 0x30], rax
jmp 0x180024e4a
mov qword [rsp + 0x30], r12
lea rcx, [rsp + 0x30]
call fcn.180012e20
lea rax, [rsp + 0x40]
lea r9, [rbp + 0x370]
mov qword [rsp + 0x20], rax
lea r8, [rbp + 0x160]
lea rdx, [rsp + 0x50]
lea ecx, [rdi + 1]
call qword [sym.imp.WS2_32.dll_select]
movsxd rcx, eax
test eax, eax
js 0x180024de8
test rcx, rcx
jne 0x180024e91
mov ecx, recv
jmp 0x180024efe
lea rdx, [rsp + 0x50]
mov rcx, rdi
call qword [sym.imp.WS2_32.dll___WSAFDIsSet]
test eax, eax
jne 0x180024eb7
lea rdx, [rbp + 0x160]
mov rcx, rdi
call qword [sym.imp.WS2_32.dll___WSAFDIsSet]
test eax, eax
je 0x180024ef9
lea rax, [rsp + 0x30]
mov dword [rsp + 0x38], 0
lea r9, [rsp + 0x38]
mov qword [rsp + 0x20], rax
mov edx, 0xffff
mov dword [rsp + 0x30], 4
mov r8d, 0x1007
mov rcx, rdi
call qword [sym.imp.WS2_32.dll_getsockopt]
test eax, eax
js 0x180024ef9
cmp dword [rsp + 0x38], 0
jne 0x180024ef9
xor ecx, ecx
jmp 0x180024efe
mov ecx, 2
mov rax, qword [rsi + 8]
mov r14, qword [rsp + 0x698]
mov r13, qword [rsp + 0x6a0]
mov r12, qword [rsp + 0x6a8]
mov dword [rax], ecx
mov rax, qword [rsi + 8]
mov ecx, dword [rax]
test ecx, ecx
je 0x180024f36
cmp ecx, 0xe
jne 0x180024f2f
mov byte [r15], 1
xor al, al
jmp 0x180024ffe
lea r8, [rsp + 0x30]
mov dword [rsp + 0x30], 0
mov edx, 0x8004667e
mov rcx, rdi
call qword [sym.imp.WS2_32.dll_ioctlsocket]
mov rax, qword [rsi + 0x28]
lea r9, [rsp + 0x30]
movabs rbx, 0x20c49ba5e353f7cf
mov dword [rsp + 0x20], 4
mov rcx, qword [rax]
mov rax, rbx
imul rcx
sar rdx, 7
mov rcx, rdx
shr rcx, 0x3f
add rdx, rcx
mov rcx, qword [rsi + 0x20]
imul r8d, dword [rcx], 0x3e8
mov rcx, rdi
add edx, r8d
mov r8d, 0x1006
mov dword [rsp + 0x30], edx
mov edx, 0xffff
call qword [sym.imp.WS2_32.dll_setsockopt]
mov rcx, qword [rsi + 0x38]
lea r9, [rsp + 0x30]
mov rax, rbx
mov dword [rsp + 0x20], 4
mov r8d, 0x1005
imul qword [rcx]
sar rdx, 7
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov rax, qword [rsi + 0x30]
imul ecx, dword [rax], 0x3e8
add edx, ecx
mov rcx, rdi
mov dword [rsp + 0x30], edx
mov edx, 0xffff
call qword [sym.imp.WS2_32.dll_setsockopt]
mov rax, qword [rsi + 8]
mov dword [rax], 0
mov al, 1
mov rcx, qword [rbp + 0x580]
xor rcx, rsp
call fcn.18009ce50
add rsp, 0x6b0
pop r15
pop rdi
pop rsi
pop rbx
pop rbp
ret