Function at 0x18002e9f8
Capabilities:
Set socket configuration

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov rsi, rcx
mov rcx, qword [rcx]
mov r15, rdx
or edx, 0xffffffff
movsxd r14, r9d
mov rbp, r8
xor edi, edi
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test rbp, rbp
lea r13d, [rdi + 1]
je 0x18002eab0
lea r9, [rsi + 0xbe0]
mov r8, qword [r9]
jmp 0x18002ea5c
mov ecx, dword [r8 + 0x94]
mov edx, dword [r8 + 0x14]
mov eax, dword [rbp + 4]
and edx, ecx
and eax, ecx
cmp edx, eax
je 0x18002eaab
mov r8, qword [r8]
cmp r8, r9
jne 0x18002ea43
mov al, byte [rbp + 6]
mov cl, byte [rbp + 7]
xor ecx, eax
mov al, byte [rbp + 5]
xor ecx, eax
mov al, byte [rbp + 4]
xor ecx, eax
and ecx, 0x7f
movsxd r12, ecx
add r12, 0x3e
shl r12, 4
add r12, rsi
mov rbx, qword [r12]
cmp rbx, r12
je 0x18002eab0
cmp r14d, dword [rbx + 0x90]
jne 0x18002eaa6
lea rdx, [rbx + 0x10]
mov rcx, rbp
call fcn.1800257e8
test eax, eax
jne 0x18002eaab
mov rbx, qword [rbx]
jmp 0x18002ea88
mov ebx, r13d
jmp 0x18002eab2
xor ebx, ebx
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
test ebx, ebx
je 0x18002eac9
mov ebx, 5
jmp 0x18002ec9d
lea r8, [rsp + 0x70]
mov edx, 0x8004667e
mov rcx, r15
mov dword [rsp + 0x70], r13d
call qword [sym.imp.WS2_32.dll_ioctlsocket]
test eax, eax
jns 0x18002eaf2
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x18002ec89
mov r9d, r13d
mov r8d, r14d
mov rdx, rbp
mov rcx, rsi
call fcn.18002de90
test rax, rax
mov rdi, rax
jne 0x18002eb13
lea ebx, [rax + 8]
jmp 0x18002ec8d
mov rcx, qword [0x180052eb0]
movzx r13d, word [rbp]
xor edx, edx
mov r8d, 0xc0
xor ebx, ebx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
mov r12, rax
jne 0x18002eb3f
lea ebx, [rax + 8]
jmp 0x18002ebc1
xor edx, edx
mov r8d, 0xc0
mov rcx, rax
call sub.ntdll.dll_memset
lea r8, [rsp + 0x20]
mov edx, 0x8004667e
mov rcx, r15
mov dword [rsp + 0x20], 1
call qword [sym.imp.WS2_32.dll_ioctlsocket]
xor eax, eax
cmp r13d, 2
sete al
and qword [r12 + 0x98], rbx
and dword [r12 + 0xa0], ebx
and dword [r12 + 0xa4], ebx
mov dword [r12 + 0x94], eax
lea rax, [0x18002e540]
mov qword [r12 + 0xb0], rax
mov qword [r12], r15
mov qword [r12 + 0xb8], rdi
mov dword [r12 + 0xa8], 1
mov qword [rdi + 0xa0], r12
test ebx, ebx
jne 0x18002ec8d
lock add dword [rdi + 0x60], 1
mov rcx, qword [rsi]
or r12d, 0xffffffff
mov edx, r12d
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rax, qword [rdi + 0xa0]
mov dword [rdi + 0x234], 1
mov byte [rdi + 0x248], 1
mov dword [rax + 0xac], 1
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov rbx, qword [rdi + 0xa0]
xor eax, eax
cmp word [rbp], 2
lea rcx, [rbx + 0x10]
mov r8, r14
sete al
mov rdx, rbp
mov dword [rbx + 0x94], eax
call sub.ntdll.dll_memcpy
mov rdx, rbx
mov rcx, rsi
mov dword [rbx + 0x90], r14d
call fcn.1800356e8
test eax, eax
mov ebx, eax
je 0x18002ec9d
mov rcx, qword [rsi]
mov edx, r12d
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov r11, qword [rdi + 0xa0]
test r11, r11
je 0x18002ec67
and dword [r11 + 0xac], 0
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
lock add dword [rdi + 0x60], 0xffffffff
jne 0x18002ec89
mov rcx, qword [0x180052eb0]
mov r8, rdi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
test ebx, ebx
je 0x18002ec9d
test rdi, rdi
je 0x18002ec9d
mov rdx, rdi
mov rcx, rsi
call fcn.18002e148
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x78]
mov eax, ebx
mov rbx, qword [rsp + 0x60]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
ret