Function at 0x180029508
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]
lea r13d, [rdi + 1]
test rbp, rbp
je 0x1800295c4
lea r9, [rsi + 0xbe0]
mov r8, qword [r9]
jmp 0x18002956c
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 0x1800295bf
mov r8, qword [r8]
cmp r8, r9
jne 0x180029553
movzx eax, byte [rbp + 6]
movzx ecx, byte [rbp + 7]
xor ecx, eax
movzx eax, byte [rbp + 5]
xor ecx, eax
movzx eax, 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 0x1800295c4
cmp r14d, dword [rbx + 0x90]
jne 0x1800295ba
lea rdx, [rbx + 0x10]
mov rcx, rbp
call fcn.18002a65c
test eax, eax
jne 0x1800295bf
mov rbx, qword [rbx]
jmp 0x18002959c
mov ebx, r13d
jmp 0x1800295c6
xor ebx, ebx
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
test ebx, ebx
je 0x1800295dd
mov ebx, 5
jmp 0x1800297b8
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 0x180029606
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x1800297a4
mov r9d, r13d
mov r8d, r14d
mov rdx, rbp
mov rcx, rsi
call fcn.180028908
mov rdi, rax
test rax, rax
jne 0x180029627
lea ebx, [rax + 8]
jmp 0x1800297a8
mov rcx, qword [0x180059270]
movzx r13d, word [rbp]
xor edx, edx
mov r8d, 0xc0
xor ebx, ebx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov r12, rax
test rax, rax
jne 0x180029657
lea ebx, [rax + 8]
lea r15d, [rax + 2]
jmp 0x1800296dc
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
mov qword [r12], r15
lea r15d, [rax + 2]
mov qword [r12 + 0xb8], rdi
mov dword [r12 + 0xa8], 1
cmp r13d, r15d
sete al
and qword [r12 + 0x98], rbx
and dword [r12 + 0xa0], ebx
and dword [r12 + 0xa4], ebx
mov dword [r12 + 0x94], eax
lea rax, [0x18002904c]
mov qword [r12 + 0xb0], rax
mov qword [rdi + 0xa0], r12
test ebx, ebx
jne 0x1800297a8
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], r15w
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.180033d5c
mov ebx, eax
test eax, eax
je 0x1800297b8
mov rcx, qword [rsi]
mov edx, r12d
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov r11, qword [rdi + 0xa0]
test r11, r11
je 0x180029782
and dword [r11 + 0xac], 0
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
lock add dword [rdi + 0x60], 0xffffffff
jne 0x1800297a4
mov rcx, qword [0x180059270]
mov r8, rdi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
test ebx, ebx
je 0x1800297b8
test rdi, rdi
je 0x1800297b8
mov rdx, rdi
mov rcx, rsi
call fcn.180028bc0
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