Function at 0x14015ff00
Capabilities:
Set socket configuration

Disassembly:
mov rax, rsp
push rbx
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x3a8
mov qword [rax - 0x188], 0xfffffffffffffffe
mov rdi, rcx
xor r14d, r14d
mov dword [rax + 8], r14d
movdqa xmm0, xmmword [0x1403eaa30]
movdqu xmmword [rax - 0x348], xmm0
mov byte [rax - 0x358], r14b
mov rdx, rcx
lea rcx, [rax - 0xb8]
call fcn.14012bd50
lea rdx, [rsp + 0x80]
mov rcx, rax
call fcn.140162010
cmp byte [rdi + 0x49], r14b
je 0x14016098f
mov qword [rsp + 0x68], r14
lea rcx, [rsp + 0x70]
call fcn.14012bfa0
nop
call fcn.1401eeed0
call fcn.1401ab750
mov rcx, rax
call fcn.1401a7400
mov qword [rsp + 0x68], rax
test rax, rax
jne 0x14015fffd
call fcn.14012d710
mov r15, rax
call fcn.1401ef050
mov esi, eax
mov dword [rsp + 0x100], eax
mov rax, qword [r15 + 8]
movabs r12, 0x8fafd21e25c5e09b
movabs rbx, 0xb2ab117a257edf0d
cmp rax, r12
je 0x14015ffda
cmp rax, rbx
je 0x14015ffda
mov r8, qword [r15]
mov edx, esi
mov rcx, r15
call qword [r8 + gethostbyaddr]
jmp 0x14015ffdf
test esi, esi
setne al
mov byte [rsp + 0x104], al
mov qword [rsp + 0x108], r15
test esi, esi
jne 0x140160a91
mov rax, qword [rsp + 0x68]
jmp 0x140160011
movabs rbx, 0xb2ab117a257edf0d
movabs r12, 0x8fafd21e25c5e09b
mov edx, 0x20000
mov rcx, rax
call fcn.1401a7b10
nop
cmp qword [rdi + 0x38], 0
jne 0x14016011a
lea rdx, str.ROOT
xor ecx, ecx
call qword [sym.imp.CRYPT32.dll_CertOpenSystemStoreA]
mov r15, rax
test rax, rax
je 0x1401600bf
call fcn.1401f4380
mov r12, rax
xor edx, edx
mov rcx, r15
call qword [sym.imp.CRYPT32.dll_CertEnumCertificatesInStore]
mov rbx, rax
test rax, rax
je 0x14016009e
nop dword [rax]
lea rdx, [rbx + 8]
mov r8d, dword [rbx + 0x10]
xor ecx, ecx
call fcn.1401f9870
mov rsi, rax
test rax, rax
je 0x14016008a
mov rdx, rax
mov rcx, r12
call fcn.1401f3ff0
mov rcx, rsi
call fcn.1401f9700
mov rdx, rbx
mov rcx, r15
call qword [sym.imp.CRYPT32.dll_CertEnumCertificatesInStore]
mov rbx, rax
test rax, rax
jne 0x140160060
mov rcx, rbx
call qword [sym.imp.CRYPT32.dll_CertFreeCertificateContext]
xor edx, edx
mov rcx, r15
call qword [sym.imp.CRYPT32.dll_CertCloseStore]
mov rdx, r12
mov rcx, qword [rsp + 0x68]
call fcn.1401a79b0
lea rsi, [0x1403ea628]
mov ecx, 0x190
call fcn.14038b598
mov rbx, rax
mov qword [rsp + 0x3e0], rax
test rax, rax
je 0x1401601ea
lea rcx, [rax + 8]
mov qword [rsp + 0x3e8], rcx
lea rdx, [rdi + 0x80]
xor r8d, r8d
call fcn.1401577b0
nop
mov rcx, qword [rbx + 0x70]
test rcx, rcx
je 0x1401601b4
mov rax, qword [rcx]
call qword [rax]
mov r15, rax
jmp 0x1401601b7
call fcn.1401eeed0
lea rdx, [rdi + 0x28]
cmp qword [rdx + 0x18], 0x10
jb 0x14016012d
mov rdx, qword [rdx]
xor r8d, r8d
mov rcx, qword [rsp + 0x68]
call fcn.1401a7390
cmp eax, 1
je 0x140160183
call fcn.14012d710
mov rsi, rax
call fcn.1401ef050
mov dword [rsp + 0x40], eax
mov rcx, qword [rsi + 8]
cmp rcx, r12
je 0x14016016c
cmp rcx, rbx
je 0x14016016c
mov r8, qword [rsi]
mov edx, eax
mov rcx, rsi
call qword [r8 + gethostbyaddr]
jmp 0x140160171
test eax, eax
setne al
mov byte [rsp + 0x44], al
mov qword [rsp + 0x48], rsi
lea rsi, [0x1403ea628]
jmp 0x140160199
mov dword [rsp + 0x40], r14d
mov byte [rsp + 0x44], 0
lea rsi, [0x1403ea628]
mov qword [rsp + 0x48], rsi
movaps xmm0, xmmword [rsp + 0x40]
movdqa xmmword [rsp + 0x30], xmm0
cmp dword [rsp + 0x30], 0
jne 0x140160aa6
jmp 0x1401600c6
mov r15, r14
mov qword [rsp + 0xf0], r15
lea rcx, [rbx + 0x80]
lea r8, [rsp + 0xf0]
mov rdx, qword [rsp + 0x68]
call fcn.140157570
nop
test r15, r15
je 0x1401601e8
mov rax, qword [r15]
mov rcx, r15
call qword [rax + reloc.WS2_32.dll_htonl]
nop
jmp 0x1401601ed
mov rbx, r14
mov r15, qword [rdi + 0x98]
mov qword [rdi + 0x98], rbx
test r15, r15
je 0x140160222
lea rcx, [r15 + 0x80]
call fcn.14015d640
lea rcx, [r15 + 8]
call fcn.14015cfa0
mov edx, 0x190
mov rcx, r15
call fcn.14038b5d4
lea r15, [rdi + 0x80]
lea rax, [rsp + 0x110]
mov qword [rsp + 0x3e0], rax
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x170], xmm0
xor edx, edx
lea rcx, [rsp + 0x170]
call fcn.1401594d0
mov r9, r15
lea r8, [0x1401587a0]
lea rdx, [rsp + 0x170]
mov rcx, qword [r15]
call fcn.140161c90
mov qword [rsp + 0x110], rax
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x118], xmm0
mov ecx, 0x28
call fcn.14038b598
mov rbx, rax
mov byte [rax + 8], 0
lea rax, vtable.boost::asio::executor::impl_class_boost::asio::io_context::executor_type__class_std::allocator_void__.0
mov qword [rbx], rax
mov dword [rbx + 0x10], 1
mov qword [rbx + 0x18], r15
mov rcx, rbx
call qword [rax]
mov qword [rsp + 0x128], rax
mov byte [rsp + 0x130], 1
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
movzx r8d, byte [rsp + 0x3e0]
xor edx, edx
lea rcx, [rsp + 0x118]
call fcn.140159fd0
nop
movzx r8d, word [rdi + 0x20]
lea r9, [rsp + 0x1cd]
nop dword [rax]
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x1401602f0
movdqa xmm0, xmmword [0x1403eaa30]
movdqu xmmword [rsp + 0x160], xmm0
mov byte [rsp + 0x150], dl
lea rax, [rsp + 0x1cd]
cmp r9, rax
je 0x14016035a
lea r8, [rsp + 0x1cd]
sub r8, r9
mov rdx, r9
lea rcx, [rsp + 0x150]
call fcn.14012d2b0
mov dword [rsp + 0x3e0], 3
xor eax, eax
mov qword [rsp + 0x1d0], rax
mov qword [rsp + 0x1d8], rax
mov qword [rsp + 0x1e0], rax
mov qword [rsp + 0x1e8], rax
mov qword [rsp + 0x1f0], rax
mov qword [rsp + 0x1f8], rax
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0x200]
call fcn.14012bd50
nop
lea rdx, [rsp + 0x150]
lea rcx, [rsp + 0x220]
call fcn.14012bd50
movdqa xmm0, xmmword [0x1403f1960]
movdqa xmmword [rsp + 0x1d0], xmm0
mov qword [rsp + 0x1e0], r14
mov qword [rsp + 0x1e8], r14
xorps xmm0, xmm0
movdqa xmmword [rsp + 0x1f0], xmm0
mov rdx, qword [rsp + 0x168]
cmp rdx, 0x10
jb 0x140160433
inc rdx
mov rcx, qword [rsp + 0x150]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14016042d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140160ab8
call fcn.14038b5d4
nop
mov dword [rsp + 0xa0], r14d
mov byte [rsp + 0xa4], 0
mov qword [rsp + 0xa8], rsi
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x1d0]
lea r8, [rsp + 0x118]
lea rdx, [rsp + 0x2c8]
mov rcx, qword [rsp + 0x110]
call fcn.1401641f0
mov dword [rsp + 0x3e0], 7
cmp dword [rsp + 0xa0], 0
jne 0x140160abe
mov rdx, qword [rdi + 0x98]
mov dword [rsp + 0xb0], r14d
mov byte [rsp + 0xb4], 0
mov qword [rsp + 0xb8], rsi
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x180], xmm0
mov qword [rsp + 0x190], r14
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x1401604da
lock inc dword [rcx + 8]
mov rcx, qword [rax + 8]
mov rax, qword [rax]
mov qword [rsp + 0x138], rax
mov qword [rsp + 0x140], rcx
mov qword [rsp + 0x148], r14
add rdx, 8
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x28], rax
movzx eax, byte [rsp + 0x3e0]
mov byte [rsp + 0x20], al
lea r9, [rsp + 0x180]
lea r8, [rsp + 0x138]
lea rcx, [rsp + 0x2b0]
call fcn.1401580f0
mov rbx, qword [rax + 8]
mov r15d, 0xffffffff
test rbx, rbx
je 0x140160569
mov eax, r15d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x140160569
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, r15d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140160569
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
cmp dword [rsp + 0xb0], 0
jne 0x140160ad2
mov rbx, qword [rsp + 0x2d0]
test rbx, rbx
je 0x1401605ae
mov eax, r15d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x1401605ae
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], r15d
cmp r15d, 1
jne 0x1401605ae
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov rax, qword [rdi + 0x98]
mov rbx, qword [rax + 0x10]
mov dword [rsp + 0x3e8], 0xea60
mov dword [rsp + 0x3f0], 1
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x3f0]
mov edx, 0xffff
mov r8d, 8
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_setsockopt]
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x3e8]
mov edx, 0xffff
mov r8d, 0x1006
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_setsockopt]
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x3e8]
mov edx, 0xffff
mov r8d, 0x1005
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_setsockopt]
mov dword [rsp + 0x3f8], 1
mov rax, qword [rdi + 0x98]
mov rbx, qword [rax + 0x10]
cmp rbx, 0xffffffffffffffff
jne 0x140160666
mov dword [rsp + 0x30], 0x2719
mov byte [rsp + 0x34], 1
jmp 0x1401606c3
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x3f8]
mov edx, 6
lea r8d, [rdx - 5]
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_setsockopt]
mov ebx, eax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [rsp + 0x30], eax
test eax, eax
setne byte [rsp + 0x34]
mov qword [rsp + 0x38], rsi
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0xe0], xmm0
test ebx, ebx
jne 0x1401606d6
mov dword [rsp + 0x30], r14d
mov byte [rsp + 0x34], bl
mov qword [rsp + 0x38], rsi
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0xe0], xmm0
cmp dword [rsp + 0xe0], 0
jne 0x140160ae7
mov dword [rsp + 0x50], 1
mov rax, qword [rdi + 0x98]
mov rbx, qword [rax + 0x10]
cmp rbx, 0xffffffffffffffff
jne 0x14016070c
mov dword [rsp + 0x30], 0x2719
mov byte [rsp + 0x34], 1
jmp 0x140160765
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x50]
mov edx, 0xffff
mov r8d, 8
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_setsockopt]
mov ebx, eax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [rsp + 0x30], eax
test eax, eax
setne byte [rsp + 0x34]
mov qword [rsp + 0x38], rsi
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x40], xmm0
test ebx, ebx
jne 0x140160775
mov dword [rsp + 0x30], r14d
mov byte [rsp + 0x34], bl
mov qword [rsp + 0x38], rsi
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x40], xmm0
cmp dword [rsp + 0x40], 0
jne 0x140160afb
mov rbx, qword [rdi + 0x98]
mov rcx, qword [rbx + 0x80]
cmp byte [rdi + 0x4a], 0
jne 0x1401607e3
call fcn.1401a8be0
mov r8, rax
mov edx, 1
mov rcx, qword [rbx + 0x80]
call fcn.1401a9830
lea r9, [rsp + 0x80]
cmp qword [rsp + 0x98], 0x10
cmovae r9, qword [rsp + 0x80]
mov rax, qword [rdi + 0x98]
xor r8d, r8d
lea edx, [r8 + 0x37]
mov rcx, qword [rax + 0x80]
call fcn.1401a7e50
jmp 0x1401607f9
call fcn.1401a8be0
mov r8, rax
xor edx, edx
mov rcx, qword [rbx + 0x80]
call fcn.1401a9830
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0x198]
call fcn.14012bd50
lea rax, [rsp + 0x198]
mov qword [rsp + 0x3e0], rax
mov rbx, qword [rdi + 0x98]
mov dword [rsp + 0xc0], r14d
mov byte [rsp + 0xc4], 0
mov qword [rsp + 0xc8], rsi
lea rdx, [rsp + 0x198]
lea rcx, [rsp + 0x290]
call fcn.14012bd50
lea r9, [rsp + 0xc0]
lea r8, [rsp + 0x290]
lea rdx, [rsp + 0x310]
mov rcx, rbx
call fcn.14015a270
cmp dword [rsp + 0xc0], 0
jne 0x140160b0d
lea rcx, [rsp + 0x198]
call fcn.14012c790
mov rcx, qword [rdi + 0x98]
mov dword [rsp + 0xd0], r14d
mov byte [rsp + 0xd4], 0
mov qword [rsp + 0xd8], rsi
mov dword [rsp + 0x54], r14d
lea rdx, [rcx + 0x80]
add rcx, 8
lea r9, [rsp + 0xd0]
lea r8, [rsp + 0x54]
call fcn.140159c70
cmp dword [rsp + 0xd0], 0
jne 0x140160b22
mov byte [rdi + 0x48], 1
lea rcx, [rsp + 0x220]
call fcn.14012c790
lea rcx, [rsp + 0x200]
call fcn.14012c790
nop
lea rcx, [rsp + 0x110]
call fcn.14015cf00
nop
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x140160980
call fcn.1401a7350
test rax, rax
je 0x140160937
mov r8, qword [rax]
mov edx, 1
mov rcx, rax
call qword [r8]
xor edx, edx
mov rcx, qword [rsp + 0x68]
call fcn.1401a7ad0
xor edx, edx
mov rcx, qword [rsp + 0x68]
call fcn.1401a7360
test rax, rax
je 0x140160976
xor edx, edx
mov rcx, qword [rsp + 0x68]
call fcn.1401a7360
test rax, rax
je 0x140160967
mov r8, qword [rax]
mov edx, 1
mov rcx, rax
call qword [r8]
xor r8d, r8d
xor edx, edx
mov rcx, qword [rsp + 0x68]
call fcn.1401a7ae0
mov rcx, qword [rsp + 0x68]
call fcn.1401a6fc0
lea rcx, [rsp + 0x70]
call fcn.140132e60
jmp 0x140160a5a
mov rdx, qword [rdi + 0x50]
lea rcx, [rsp + 0xf8]
call fcn.14016afd0
nop
lea r8, [rsp + 0x80]
lea rdx, [rsp + 0x58]
mov rcx, rax
call fcn.14016b450
nop
lea rcx, [rsp + 0xf8]
call fcn.14012d210
mov rdx, qword [rdi + 0x50]
lea rcx, [rsp + 0x258]
call fcn.140167f40
nop
movzx r9d, word [rdi + 0x20]
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x360]
mov rcx, rax
call fcn.14016b760
nop
mov rdx, rax
lea rcx, [rdi + 0x58]
call fcn.14016a3b0
nop
lea rcx, [rsp + 0x360]
call fcn.14016a390
nop
lea rcx, [rsp + 0x258]
call fcn.14012d210
mov ecx, 0x1470
call fcn.14038b598
mov qword [rsp + 0x3e0], rax
test rax, rax
je 0x140160a3f
lea rdx, [rdi + 0x58]
mov rcx, rax
call fcn.14016abf0
mov r14, rax
mov rcx, qword [rdi + 0x78]
mov qword [rdi + 0x78], r14
test rcx, rcx
je 0x140160a56
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov byte [rdi + 0x48], 1
mov r8, qword [rsp + 0x98]
cmp r8, 0x10
jb 0x140160a80
inc r8
mov rdx, qword [rsp + 0x80]
lea rcx, [rsp + 0x80]
call fcn.14014dc10
add rsp, 0x3a8
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
ret
lea rdx, str.context
lea rcx, [rsp + 0x100]
call fcn.14012d5f0
nop
lea rdx, str.load_verify_file
lea rcx, [rsp + 0x30]
call fcn.14012d5f0
nop
call fcn.1403ac924
nop
lea rdx, str.resolve
lea rcx, [rsp + 0xa0]
call fcn.14012d5f0
lea rdx, str.connect
lea rcx, [rsp + 0xb0]
call fcn.14012d5f0
nop
lea rdx, str.set_option
lea rcx, [rsp + 0xe0]
call fcn.14012d5f0
lea rdx, str.set_option
lea rcx, [rsp + 0x40]
call fcn.14012d5f0
nop
lea rdx, str.set_verify_callback
lea rcx, [rsp + 0xc0]
call fcn.14012d5f0
nop
lea rdx, str.handshake
lea rcx, [rsp + 0xd0]
call fcn.14012d5f0
int3