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

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x4f8
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x460], xmm6
mov qword [rbp + 0x458], 0xfffffffffffffffe
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
lea r15, [rcx + 0x150]
mov rax, qword [rcx + 0x160]
test al, 1
jne 0x140017013
mov rax, qword [0x1401090d0]
shr rax, 1
movabs rcx, 0x595588bd12bf6fe8
cmp rax, rcx
je 0x140016fd0
mov rax, qword [0x1401090c8]
lea rcx, [0x1401090c8]
mov edx, 3
call qword [rax + 0x30]
mov ecx, 2
test al, al
je 0x140016fd5
mov ecx, 3
mov qword [rsi + 0x150], 3
lea rax, [0x1401090c8]
mov qword [rsi + 0x158], rax
mov qword [rsi + 0x160], rcx
xorps xmm0, xmm0
movaps xmmword [rbp + 0x430], xmm0
mov rax, qword [rbx + 8]
test rax, rax
je 0x14001702c
lock add dword [rax + 8], 1
mov rax, qword [rbx + 8]
jmp 0x14001702e
cmp rax, 1
jne 0x1400179d3
cmp dword [r15], 0
jne 0x1400179d3
jmp 0x140016f98
xor eax, eax
mov rdx, qword [rbx]
mov qword [rbp + 0x430], rdx
mov qword [rbp + 0x438], rax
mov qword [rbp + 0x428], rbx
mov rbx, qword [rbx + 0x10]
mov qword [rbp + 0x440], rbx
mov rax, qword [rdi]
mov rcx, rdx
or rcx, rax
je 0x1400179a1
lea rcx, [rsi + 0xb0]
mov qword [rbp + 0x3f8], rcx
lea rcx, [rsi + 0xb8]
mov qword [rbp + 0x400], rcx
lea rcx, [rsi + 0x100]
mov qword [rbp + 0x408], rcx
xorps xmm6, xmm6
lea r12, [0x140109178]
mov qword [rbp + 0x450], rdi
jmp 0x1400170c3
mov qword [rbp + 0x440], 0
mov rdx, qword [rbp + 0x430]
xor ebx, ebx
mov rax, qword [rdi]
mov rcx, rdx
or rcx, rax
je 0x1400179a1
cmp rdx, rax
jne 0x1400170d2
cmp rbx, qword [rdi + 0x10]
je 0x1400179a1
mov qword [rbp + 0x420], rbx
mov qword [rbp + 0x418], rdx
call fcn.1400a1dd0
mov r13, rax
call fcn.1400a1db4
cmp r13, 0x989680
jne 0x140017100
imul rax, rax, 0x64
jmp 0x140017141
mov rcx, rax
or rcx, r13
shr rcx, 0x20
je 0x140017113
cqo
idiv r13
jmp 0x140017118
xor edx, edx
div r13d
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
mov rdx, r13
or rdx, rax
shr rdx, 0x20
je 0x140017139
cqo
idiv r13
jmp 0x14001713e
xor edx, edx
div r13d
add rax, rcx
movabs r13, 0x595588bd12bf6fe8
cmp qword [rsi + 0x168], rax
jl 0x14001793d
mov rax, qword [rbp + 0x418]
mov rax, qword [rax]
mov rcx, qword [rbp + 0x420]
lea rcx, [rcx + rcx*2]
shl rcx, 5
movups xmm0, xmmword [rax + rcx]
movups xmm1, xmmword [rax + rcx + 0xc]
movups xmmword [rbp + 0x3dc], xmm1
movaps xmmword [rbp + 0x3d0], xmm0
mov rdi, qword [rbp + 0x3f8]
mov rcx, rdi
lea r14, [rbp + 0x1c8]
mov rdx, r14
mov r8, r15
call fcn.140017af0
cmp word [rbp + 0x3d0], 2
mov ebx, 0x17
mov eax, 2
cmove ebx, eax
mov rcx, qword [rdi]
add rcx, 0x28
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], 6
mov dword [rsp + 0x20], 1
mov rdx, r14
mov r8, qword [rbp + 0x400]
mov r9d, ebx
call fcn.140017bb0
mov rax, qword [rbp + 0x1d8]
test al, 1
jne 0x140017230
mov rdi, qword [rbp + 0x450]
mov dword [rsi + 0xf0], ebx
mov byte [rsi + 0xf4], 0
mov rax, qword [rbp + 0x408]
movups xmmword [rax], xmm6
mov dword [rax + 0x10], 0
mov qword [rsi + 0xf8], 2
jmp 0x140017250
cmp rax, 1
mov rdi, qword [rbp + 0x450]
jne 0x140017250
cmp dword [rbp + 0x1c8], 0
je 0x1400171f9
nop word cs:[rax + rax]
mov rcx, qword [rsi + 0x160]
mov edx, ecx
and edx, 1
mov rax, rdx
lea rbx, str.C:Users_ntoskrnlDesktop_boost_1_85_0_boost_asio_detail_win_iocp_socket_service.hpp
or rax, rbx
cmp rcx, 2
cmovb rax, rcx
mov qword [rsi + 0x160], rax
test rdx, rdx
je 0x140017291
cmp rax, 1
jne 0x1400178b0
cmp dword [r15], 0
jne 0x1400178b0
test byte [rsi + 0xc0], 2
jne 0x140017380
mov rcx, qword [rsi + 0xb8]
cmp rcx, 0xffffffffffffffff
je 0x1400172e3
mov dword [rbp + 0x1c8], 1
mov edx, 0x8004667e
lea r8, [rbp + 0x1c8]
call qword [sym.imp.WS2_32.dll_ioctlsocket]
test eax, eax
js 0x14001732d
movups xmmword [r15], xmm6
mov qword [r15 + 0x10], 0
or byte [rsi + 0xc0], 2
jmp 0x140017380
mov rax, qword [0x140109180]
shr rax, 1
cmp rax, r13
je 0x14001730d
mov rax, qword [0x140109178]
mov rcx, r12
mov edx, 0x2719
call qword [rax + 0x30]
mov ecx, 2
test al, al
je 0x140017312
mov ecx, 3
mov qword [rsi + 0x150], 0x2719
mov qword [rsi + 0x158], r12
mov qword [rsi + 0x160], rcx
jmp 0x140017380
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebx, eax
mov rax, qword [0x140109180]
shr rax, 1
cmp rax, r13
jne 0x14001734b
test ebx, ebx
setne al
jmp 0x14001735a
mov rax, qword [0x140109178]
mov rcx, r12
mov edx, ebx
call qword [rax + 0x30]
movzx eax, al
or rax, 2
mov dword [rsi + 0x150], ebx
mov dword [rsi + 0x154], 0
mov qword [rsi + 0x158], r12
mov qword [rsi + 0x160], rax
nop
mov rcx, qword [rsi + 0xb8]
cmp rcx, 0xffffffffffffffff
je 0x1400173e0
cmp word [rbp + 0x3d0], 2
mov r8d, 0x1c
mov eax, select
cmove r8d, eax
lea rdx, [rbp + 0x3d0]
call qword [sym.imp.WS2_32.dll_connect]
test eax, eax
je 0x140017992
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebx, eax
mov rax, qword [0x140109180]
shr rax, 1
cmp rax, r13
jne 0x140017420
test ebx, ebx
setne al
jmp 0x14001742f
mov rax, qword [0x140109180]
shr rax, 1
cmp rax, r13
je 0x14001740a
mov rax, qword [0x140109178]
mov rcx, r12
mov edx, 0x2719
call qword [rax + 0x30]
mov ecx, 2
test al, al
je 0x14001740f
mov ecx, 3
mov qword [r15], 0x2719
jmp 0x140017441
mov rax, qword [0x140109178]
mov rcx, r12
mov edx, ebx
call qword [rax + 0x30]
movzx ecx, al
or rcx, 2
mov dword [r15], ebx
mov dword [r15 + 4], 0
mov qword [rsi + 0x158], r12
mov qword [rsi + 0x160], rcx
test cl, 1
je 0x1400179a1
mov rax, qword [0x140109180]
shr rax, 1
cmp rax, r13
je 0x140017479
mov rax, qword [0x140109178]
mov rcx, r12
mov edx, 0x2734
call qword [rax + 0x30]
mov rax, qword [rsi + 0x160]
cmp rax, 1
je 0x1400174d0
cmp dword [rsi + 0x150], 0x2734
jne 0x1400174d0
mov rcx, r12
test rax, rax
je 0x1400174a1
mov rcx, qword [rsi + 0x158]
mov rax, qword [0x140109180]
xor edx, edx
cmp rcx, r12
setne dl
xor ebx, ebx
cmp qword [rcx + 8], rax
setne bl
test rax, rax
cmove ebx, edx
cmp bl, 1
je 0x1400174d7
jmp 0x140017547
mov rax, qword [0x140109180]
shr rax, 1
cmp rax, r13
je 0x1400174f1
mov rax, qword [0x140109178]
mov rcx, r12
mov edx, 0x2733
call qword [rax + 0x30]
mov rcx, qword [rsi + 0x160]
cmp rcx, 1
je 0x1400178b0
cmp dword [rsi + 0x150], 0x2733
jne 0x1400178b0
mov rax, r12
test rcx, rcx
je 0x140017521
mov rax, qword [rsi + 0x158]
mov rcx, qword [0x140109180]
xor edx, edx
cmp rax, r12
setne dl
xor ebx, ebx
cmp qword [rax + 8], rcx
setne bl
test rcx, rcx
cmove ebx, edx
test bl, bl
jne 0x1400178b0
call fcn.1400a1dd0
mov rbx, rax
call fcn.1400a1db4
cmp rbx, 0x989680
jne 0x140017563
imul rax, rax, 0x64
jmp 0x1400175a2
mov rcx, rax
or rcx, rbx
shr rcx, 0x20
je 0x140017576
cqo
idiv rbx
jmp 0x14001757a
xor edx, edx
div ebx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
mov rdx, rbx
or rdx, rax
shr rdx, 0x20
je 0x14001759b
cqo
idiv rbx
jmp 0x14001759f
xor edx, edx
div ebx
add rax, rcx
mov rcx, qword [rsi + 0x168]
test rcx, rcx
js 0x1400175ec
test rax, rax
jns 0x140017618
mov edx, 0x7fffffff
movabs rbx, 0x8000000000000000
cmp rax, rbx
je 0x140017660
mov rbx, rax
neg rbx
movabs rdi, 0x7fffffffffffffff
sub rdi, rcx
cmp rdi, rbx
mov rdi, qword [rbp + 0x450]
jge 0x140017618
jmp 0x140017660
test rax, rax
js 0x140017618
movabs rdx, 0x8000000000000000
cmp rcx, rdx
je 0x140017648
mov rdx, rcx
neg rdx
movabs rbx, 0x7fffffffffffffff
sub rbx, rax
cmp rbx, rdx
jl 0x140017648
sub rcx, rax
mov edx, 0x7fffffff
movabs rax, 0x7a11fffffffff
cmp rcx, rax
jg 0x140017660
mov rax, rcx
movabs rdx, 0x431bde82d7b634db
imul rdx
cmp rcx, 0xfffffffffff0bdc0
jg 0x14001764c
xor edx, edx
jmp 0x140017660
mov rax, rdx
shr rax, 0x3f
sar rdx, 0x12
add rdx, rax
nop word [rax + rax]
mov rcx, qword [rsi + 0xb8]
cmp rcx, 0xffffffffffffffff
je 0x1400176bd
mov qword [rbp + 0x1d0], rcx
mov dword [rbp + 0x1c8], 1
mov qword [rbp - 0x38], rcx
mov dword [rbp - 0x40], 1
test edx, edx
js 0x14001770a
mov eax, edx
imul rax, rax, 0x10624dd3
shr rax, 0x26
mov dword [rbp + 0x410], eax
imul eax, eax, 0x3e8
sub edx, eax
imul eax, edx, 0x3e8
mov dword [rbp + 0x414], eax
lea rax, [rbp + 0x410]
jmp 0x14001770c
mov rax, qword [0x140109180]
shr rax, 1
cmp rax, r13
je 0x1400176e7
mov rax, qword [0x140109178]
mov rcx, r12
mov edx, 0x2719
call qword [rax + 0x30]
mov ecx, 2
test al, al
je 0x1400176ec
mov ecx, 3
mov qword [rsi + 0x150], 0x2719
mov qword [rsi + 0x158], r12
mov qword [rsi + 0x160], rcx
jmp 0x1400178b0
xor eax, eax
add ecx, 1
mov qword [rsp + 0x20], rax
xor edx, edx
lea r8, [rbp + 0x1c8]
lea r9, [rbp - 0x40]
call qword [sym.imp.WS2_32.dll_select]
test eax, eax
js 0x1400177a3
movups xmmword [r15], xmm6
mov qword [r15 + 0x10], 0
mov dword [rbp - 0x40], 0
mov rcx, qword [rsi + 0xb8]
cmp rcx, 0xffffffffffffffff
je 0x140017a3e
mov dword [rbp + 0x1c8], 4
lea rax, [rbp + 0x1c8]
mov qword [rsp + 0x20], rax
mov edx, 0xffff
mov r8d, 0x1007
lea r9, [rbp - 0x40]
call qword [sym.imp.WS2_32.dll_getsockopt]
test eax, eax
je 0x1400177c8
mov ebx, eax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov rcx, r13
mov r13d, eax
mov rax, qword [0x140109180]
shr rax, 1
cmp rax, rcx
jne 0x1400177d6
test r13d, r13d
setne al
jmp 0x1400177e6
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebx, eax
mov rax, qword [0x140109180]
shr rax, 1
cmp rax, r13
jne 0x140017875
test ebx, ebx
setne al
jmp 0x140017884
movups xmmword [r15], xmm6
mov qword [r15 + 0x10], 0
jmp 0x14001781f
mov rax, qword [0x140109178]
mov rcx, r12
mov edx, r13d
call qword [rax + 0x30]
movzx eax, al
or rax, 2
mov dword [rsi + 0x150], r13d
mov dword [rsi + 0x154], 0
mov qword [rsi + 0x158], r12
mov qword [rsi + 0x160], rax
cmp ebx, 0xffffffff
movabs r13, 0x595588bd12bf6fe8
je 0x1400179a1
mov ebx, dword [rbp - 0x40]
mov rax, qword [0x140109180]
shr rax, 1
cmp rax, r13
jne 0x140017838
test ebx, ebx
setne al
jmp 0x140017847
mov rax, qword [0x140109178]
mov rcx, r12
mov edx, ebx
call qword [rax + 0x30]
movzx eax, al
or rax, 2
mov dword [rsi + 0x150], ebx
mov dword [rsi + 0x154], 0
mov qword [rsi + 0x158], r12
mov qword [rsi + 0x160], rax
test al, 1
jne 0x1400178b0
jmp 0x1400179a1
mov rax, qword [0x140109178]
mov rcx, r12
mov edx, ebx
call qword [rax + 0x30]
movzx eax, al
or rax, 2
mov dword [rsi + 0x150], ebx
mov dword [rsi + 0x154], 0
mov qword [rsi + 0x158], r12
mov qword [rsi + 0x160], rax
nop dword [rax]
mov rbx, qword [rbp + 0x420]
add rbx, 1
mov qword [rbp + 0x440], rbx
mov rdx, qword [rbp + 0x418]
mov rax, qword [rdx + 8]
sub rax, qword [rdx]
sar rax, 5
movabs rcx, 0xaaaaaaaaaaaaaaab
imul rax, rcx
cmp rbx, rax
jne 0x1400170b4
mov qword [rbp + 0x430], 0
mov rbx, qword [rbp + 0x438]
mov qword [rbp + 0x438], 0
test rbx, rbx
je 0x1400170a0
lock sub dword [rbx + 8], 1
jne 0x1400170a0
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock sub dword [rbx + 0xc], 1
jne 0x1400170a0
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + VariantCopy]
jmp 0x1400170a0
mov rax, qword [0x140109180]
shr rax, 1
cmp rax, r13
je 0x14001796b
mov rax, qword [0x140109178]
lea rcx, [0x140109178]
mov edx, 0x274c
call qword [rax + 0x30]
mov ecx, 2
test al, al
je 0x140017970
mov ecx, 3
mov qword [rsi + 0x150], 0x274c
lea rax, [0x140109178]
mov qword [rsi + 0x158], rax
mov qword [rsi + 0x160], rcx
jmp 0x1400179a1
xorps xmm0, xmm0
movups xmmword [r15], xmm0
mov qword [r15 + 0x10], 0
mov rsi, qword [rbp + 0x438]
test rsi, rsi
je 0x1400179cc
lock sub dword [rsi + 8], 1
jne 0x1400179cc
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax]
lock sub dword [rsi + 0xc], 1
jne 0x1400179cc
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + VariantCopy]
mov rbx, qword [rbp + 0x428]
mov rsi, qword [rbx + 8]
test rsi, rsi
je 0x1400179fb
lock sub dword [rsi + 8], 1
jne 0x1400179fb
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax]
lock sub dword [rsi + 0xc], 1
jne 0x1400179fb
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + VariantCopy]
mov rsi, qword [rdi + 8]
test rsi, rsi
je 0x140017a23
lock sub dword [rsi + 8], 1
jne 0x140017a23
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax]
lock sub dword [rsi + 0xc], 1
jne 0x140017a23
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + VariantCopy]
movaps xmm6, xmmword [rbp + 0x460]
add rsp, 0x4f8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rax, qword [0x140109180]
shr rax, 1
cmp rax, r13
je 0x140017a6c
mov rax, qword [0x140109178]
lea rcx, [0x140109178]
mov edx, 0x2719
call qword [rax + 0x30]
mov ecx, 2
test al, al
je 0x140017a71
mov ecx, 3
mov qword [rsi + 0x150], 0x2719
jmp 0x14001797b