Function at 0x1400057ac
Capabilities:
Set socket configuration

Disassembly:
mov qword [rsp + 0x10], rbx
mov dword [rsp + 0x20], r9d
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov eax, r9d
mov r15, r8
mov rsi, rdx
xor ebx, ebx
lea edi, [rbx + 1]
cmp qword [r8], 0xffffffffffffffff
je 0x14000584c
mov dword [rbp - 0x2c], ebx
movabs rdx, 0x4d54ee85da812030
mov rcx, qword [0x140074e18]
add rcx, rdx
lea rbx, [0x140074e10]
cmp rcx, rdi
jbe 0x140005815
mov edx, edi
mov rcx, rbx
mov rax, qword [0x140074e10]
call qword [rax + 0x30]
jmp 0x140005818
mov al, dil
movzx eax, al
add rax, 2
mov qword [rbp - 0x20], rax
mov dword [rbp - 0x30], edi
mov qword [rbp - 0x28], rbx
mov rax, qword [rbp + 0x70]
movups xmm1, xmmword [rbp - 0x30]
movups xmmword [rax], xmm1
movsd xmm0, qword [rbp - 0x20]
movsd qword [rax + 0x10], xmm0
movups xmmword [rsi], xmm1
movsd qword [rsi + 0x10], xmm0
jmp 0x140005a77
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], ebx
xor r9d, r9d
mov r8d, dword [rbp + 0x68]
mov r13d, dword [rbp + 0x60]
mov edx, r13d
mov ecx, eax
call qword [sym.imp.WS2_32.dll_WSASocketW]
mov r12, rax
cmp rax, 0xffffffffffffffff
sete dl
mov r14, qword [rbp + 0x70]
mov rcx, r14
call fcn.140005260
cmp r12, 0xffffffffffffffff
jne 0x14000588b
or r12, r12
jmp 0x1400058b3
cmp dword [rbp + 0x58], 0x17
jne 0x1400058b3
mov dword [rbp + 0x50], ebx
mov dword [rsp + 0x20], 4
lea r9, [rbp + 0x50]
mov edx, 0x29
lea r8d, [rdx - 0xe]
mov rcx, r12
call qword [sym.imp.WS2_32.dll_setsockopt]
nop
cmp r12, 0xffffffffffffffff
jne 0x1400058d0
movups xmm0, xmmword [r14]
movups xmmword [rsi], xmm0
movsd xmm1, qword [r14 + 0x10]
movsd qword [rsi + 0x10], xmm1
jmp 0x140005a77
mov rdx, qword [rbp + 0x40]
mov rdx, qword [rdx + 8]
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [rdx + 0x28]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CreateIoCompletionPort]
test rax, rax
jne 0x14000595e
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rbp - 0x40], eax
mov dword [rbp - 0x2c], ebx
movabs rdx, 0x4d54ee85da812030
add rdx, qword [0x140074e88]
lea rcx, [0x140074e80]
cmp rdx, rdi
jbe 0x14000592f
mov edx, eax
mov r8, qword [0x140074e80]
call qword [r8 + 0x30]
lea rcx, [0x140074e80]
jmp 0x140005934
test eax, eax
setne al
movzx eax, al
add rax, 2
mov qword [rbp - 0x20], rax
mov eax, dword [rbp - 0x40]
mov dword [rbp - 0x30], eax
mov qword [rbp - 0x28], rcx
movups xmm0, xmmword [rbp - 0x30]
movups xmmword [r14], xmm0
movsd xmm1, qword [rbp - 0x20]
movsd qword [r14 + 0x10], xmm1
jmp 0x140005978
xorps xmm0, xmm0
movups xmmword [rbp - 0x30], xmm0
mov qword [rbp - 0x20], rbx
movups xmmword [r14], xmm0
movsd xmm0, qword [rbp - 0x20]
movsd qword [r14 + 0x10], xmm0
movups xmm0, xmmword [r14]
movups xmmword [rbp - 0x18], xmm0
movsd xmm1, qword [r14 + 0x10]
movsd qword [rbp - 8], xmm1
test byte [rbp - 8], dil
je 0x1400059cf
cmp qword [rbp - 8], rdi
jne 0x1400059a1
cmp dword [rbp - 0x18], ebx
setne al
test al, al
je 0x1400059cf
movups xmmword [rsi], xmm0
movsd qword [rsi + 0x10], xmm1
xorps xmm0, xmm0
movups xmmword [rbp - 0x18], xmm0
mov qword [rbp - 8], rbx
mov byte [rbp + 0x50], bl
lea r9, [rbp - 0x18]
mov r8b, dil
lea rdx, [rbp + 0x50]
mov rcx, r12
call fcn.14000530c
jmp 0x140005a77
or qword [rbp - 0x40], 0xffffffffffffffff
mov qword [r15], r12
sub r13d, 1
je 0x1400059f0
cmp r13d, 1
je 0x1400059e9
mov byte [r15 + 8], bl
jmp 0x1400059f5
mov byte [r15 + 8], 0x20
jmp 0x1400059f5
mov byte [r15 + 8], select
mov ecx, 0x18
call fcn.140029d98
mov qword [rbp - 0x38], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], edi
mov dword [rax + 0xc], edi
lea rcx, vtable.std::_Ref_count_resource_void____ptr64__struct_boost::asio::detail::socket_ops::noop_deleter_.0
mov qword [rax], rcx
mov qword [rax + 0x10], rbx
mov qword [r15 + 0x10], rbx
mov rdi, qword [r15 + 0x18]
mov qword [r15 + 0x18], rax
test rdi, rdi
je 0x140005a59
or eax, 0xffffffff
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x140005a59
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
or eax, 0xffffffff
lock xadd dword [rdi + 0xc], eax
cmp eax, 1
jne 0x140005a59
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + ioctlsocket]
xorps xmm1, xmm1
mov qword [rbp - 8], rbx
movups xmmword [r14], xmm1
movsd xmm0, qword [rbp - 8]
movsd qword [r14 + 0x10], xmm0
movups xmmword [rsi], xmm1
movsd qword [rsi + 0x10], xmm0
mov rax, rsi
mov rbx, qword [rsp + 0xb8]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret