Function at 0x14006d950
Capabilities:
Set socket configuration

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xa8
movzx ebx, byte [rcx + 0x11fb]
mov rdx, qword [rcx + 0x20]
mov eax, dword [rcx + 0x140]
mov r15, rcx
test bl, bl
je 0x14006dad0
test bl, 1
jne 0x14006d9b0
test bl, 2
je 0x14006d98d
test al, 0x20
je 0x14006d9b4
test al, 0x30
je 0x14006d9b4
xor eax, eax
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test al, 0x10
jne 0x14006d984
mov byte [r15 + 0x11fb], 0
cmp ebx, 4
je 0x14006de40
mov eax, dword [r15 + 0x140]
mov esi, eax
and esi, 1
je 0x14006d9de
mov esi, ebx
and esi, 1
jne 0x14006dbd0
test al, 2
je 0x14006d9e7
and ebx, 2
jne 0x14006d9eb
test al, 0x40
je 0x14006d9ff
test al, 0x20
jne 0x14006d9ff
mov rcx, r15
call sym.Curl_req_done_sending
test al, al
je 0x14006db30
lea rbx, [rsp + 0x70]
mov rcx, rbx
call sym.Curl_now
movdqu xmm0, xmmword [rsp + 0x70]
movups xmmword [rsp + 0x90], xmm0
test esi, esi
jne 0x14006da2e
mov rcx, r15
call sym.Curl_conn_ev_data_idle
test eax, eax
jne 0x14006d993
mov rcx, r15
call sym.Curl_pgrsUpdate
test eax, eax
jne 0x14006db20
movdqu xmm1, xmmword [rsp + 0x90]
mov rdx, rbx
mov rcx, r15
movups xmmword [rsp + 0x70], xmm1
call sym.Curl_speedcheck
test eax, eax
jne 0x14006d993
mov eax, dword [r15 + 0x140]
test eax, eax
jne 0x14006ded0
cmp byte [r15 + 0x1d5], 0
js 0x14006dba0
mov r8, qword [r15 + 0xf0]
cmp r8, 0xffffffffffffffff
je 0x14006dba0
mov rax, qword [r15 + 0x100]
cmp r8, rax
je 0x14006dba0
cmp qword [r15 + 0x1b8], 0
jne 0x14006dba0
sub r8, rax
lea rdx, str.transfer_closed_with__lld_bytes_remaining_to_read
mov rcx, r15
call sym.Curl_failf
mov eax, 0x12
jmp 0x14006d993
mov r8d, eax
mov rcx, 0xffffffffffffffff
and r8d, 0x15
cmp r8d, 1
jne 0x14006daeb
mov rcx, qword [rdx + 0x368]
and eax, 0x2a
mov r8, 0xffffffffffffffff
cmp eax, 2
jne 0x14006db01
mov r8, qword [rdx + 0x370]
xor r9d, r9d
mov rdx, 0xffffffffffffffff
call sym.Curl_socket_check
mov ebx, eax
jmp 0x14006d9bc
mov eax, 0x2a
jmp 0x14006d993
mov rcx, r15
call sym.Curl_req_send_more
test eax, eax
jne 0x14006d993
lea rbx, [rsp + 0x70]
mov rcx, rbx
call sym.Curl_now
mov rax, qword [r15 + 0x20]
lea rdx, [rsp + 0x60]
mov rcx, rbx
mov rsi, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
movdqu xmm2, xmmword [rax + 0x400]
movups xmmword [rsp + 0x60], xmm2
call sym.Curl_timediff
cmp rax, 0x3e8
jg 0x14006dfb0
mov rcx, rbx
call sym.Curl_now
movdqu xmm3, xmmword [rsp + 0x70]
movups xmmword [rsp + 0x90], xmm3
jmp 0x14006da2e
mov rcx, r15
call sym.Curl_pgrsUpdate
test eax, eax
jne 0x14006db20
test byte [r15 + 0x140], 0x3f
jne 0x14006d991
or byte [r15 + 0x1d4], 2
xor eax, eax
jmp 0x14006d993
lea rdx, [rsp + 0x80]
lea r8, [rsp + 0x88]
mov rcx, r15
mov r14, qword [r15 + 0x20]
call sym.Curl_multi_xfer_buf_borrow
test eax, eax
jne 0x14006de60
lea rax, [rsp + 0x90]
xor ebp, ebp
xor r13d, r13d
xor r12d, r12d
mov qword [rsp + 0x58], rax
mov edi, 0xa
test bpl, bpl
je 0x14006dd15
mov r8, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x80]
test r8, r8
je 0x14006dda0
mov rax, qword [r15 + 0x320]
test rax, rax
je 0x14006dc4c
test r12, r12
jne 0x14006df70
cmp r8, rax
cmova r8, rax
mov r9, qword [rsp + 0x58]
mov rcx, r15
mov qword [rsp + 0x50], rdx
call sym.Curl_xfer_recv
mov rdx, qword [rsp + 0x50]
test eax, eax
jne 0x14006e0a1
mov rax, qword [rsp + 0x90]
test rax, rax
js 0x14006e01e
mov r13, rax
mov r9d, 0
je 0x14006dda0
mov r8, r13
mov rcx, r15
call sym.Curl_xfer_write_resp
test eax, eax
jne 0x14006de60
movzx eax, byte [r15 + 0x1d4]
test al, 2
jne 0x14006e028
test bpl, bpl
jne 0x14006dd90
test al, 8
je 0x14006dd90
and dword [r15 + 0x140], 0xfffffffe
mov eax, dword [r15 + 0x140]
mov edx, eax
and edx, 0x11
cmp edx, 1
jne 0x14006ddd2
sub edi, 1
jb 0x14006df80
mov rax, qword [r15 + 0x20]
mov rax, qword [rax + 0x348]
mov eax, dword [rax + 0x84]
test al, 0xc
jne 0x14006de20
test al, 0x30
je 0x14006ddc0
add r12, r13
mov r13d, esi
test bpl, bpl
jne 0x14006dc17
xor edx, edx
mov rcx, r14
call sym.Curl_conn_is_multiplex
mov r8, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x80]
test r8, r8
je 0x14006df58
mov rcx, qword [r15 + 0x320]
test rcx, rcx
jne 0x14006de80
test al, al
jne 0x14006de98
movzx ecx, byte [r15 + 0x1d4]
test cl, 1
jne 0x14006dc4c
mov rax, qword [r15 + 0xf0]
cmp rax, 0xffffffffffffffff
je 0x14006dc4c
sub rax, qword [r15 + 0x100]
cmp r8, rax
cmovg r8, rax
test rax, rax
jg 0x14006dc4c
jmp 0x14006dda8
test r13, r13
jne 0x14006dcc7
jmp 0x14006dcbf
movzx ecx, byte [r15 + 0x1d4]
and ecx, 0x10
jne 0x14006e03d
mov r9d, esi
xor r13d, r13d
jmp 0x14006dc8b
xor edx, edx
mov rcx, r15
call sym.Curl_conn_data_pending
test al, al
jne 0x14006dd06
mov rdx, qword [rsp + 0x80]
mov eax, dword [r15 + 0x140]
mov ecx, eax
and ecx, 3
test edi, edi
je 0x14006df8d
cmp ecx, 2
je 0x14006dea0
mov rcx, r15
call sym.Curl_multi_xfer_buf_release
test byte [r15 + 0x1d4], 2
jne 0x14006d991
mov eax, dword [r15 + 0x140]
jmp 0x14006d9de
mov edx, 1
mov rcx, r15
call sym.Curl_conn_data_pending
test al, al
jne 0x14006dd06
jmp 0x14006ddd2
lea rdx, str.select_poll_returned_error
mov rcx, r15
call sym.Curl_failf
mov eax, 0x37
jmp 0x14006d993
mov rdx, qword [rsp + 0x80]
mov rcx, r15
mov dword [rsp + 0x50], eax
call sym.Curl_multi_xfer_buf_release
mov eax, dword [rsp + 0x50]
jmp 0x14006d993
test r12, r12
jne 0x14006e0b2
cmp r8, rcx
cmova r8, rcx
test al, al
je 0x14006dd50
mov ebp, eax
jmp 0x14006dc4c
test byte [r14 + 0x340], 0x40
jne 0x14006deb3
test bpl, bpl
je 0x14006ddf7
and eax, 0xffffffdd
mov rcx, r15
mov dword [r15 + 0x140], eax
call sym.Curl_multi_xfer_buf_release
jmp 0x14006ddff
xor r8d, r8d
lea rdx, [rsp + 0x90]
mov rcx, r15
call sym.Curl_timeleft
test rax, rax
jns 0x14006dbb0
mov rsi, qword [r15 + 0xf0]
mov rdi, qword [r15 + 0x100]
lea rdx, [rsp + 0x60]
mov rcx, rbx
movdqu xmm4, xmmword [rsp + 0x90]
movups xmmword [rsp + 0x70], xmm4
movdqu xmm5, xmmword [r15 + 0xac0]
movups xmmword [rsp + 0x60], xmm5
cmp rsi, 0xffffffffffffffff
je 0x14006e082
call sym.Curl_timediff
mov qword [rsp + 0x20], rsi
mov r9, rdi
mov rcx, r15
mov r8, rax
lea rdx, str.Operation_timed_out_after__lld_milliseconds_with__lld_out_of__lld_bytes_received
call sym.Curl_failf
mov eax, 0x1c
jmp 0x14006d993
test al, al
movzx ecx, byte [r15 + 0x1d4]
cmovne ebp, eax
jmp 0x14006dda8
mov esi, r13d
jmp 0x14006ddda
mov ecx, eax
mov rdx, qword [rsp + 0x80]
and ecx, 3
mov r8d, eax
and r8d, 0x2a
cmp r8d, 2
sete r8b
lea r8d, [r8 + r8 + 1]
mov byte [r15 + 0x11fb], r8b
jmp 0x14006ddee
mov rax, qword [r15 + 0x20]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x4004747b
lea r12, [rsp + 0x88]
mov rbp, qword [rax + 0x370]
lea rax, [rsp + 0x90]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], rax
mov rcx, rbp
mov dword [rsp + 0x28], 4
mov qword [rsp + 0x20], r12
call qword [sym.imp.WS2_32.dll_WSAIoctl]
test eax, eax
je 0x14006e061
mov rax, qword [r15 + 0x20]
mov qword [rax + 0x400], rsi
mov qword [rax + 0x408], rdi
jmp 0x14006db81
mov esi, r13d
nop dword [rax]
mov rdx, qword [rsp + 0x80]
mov rcx, r15
call sym.Curl_multi_xfer_buf_release
jmp 0x14006ddff
mov dword [r15 + 0x140], 0
test edi, edi
jne 0x14006e054
mov byte [r15 + 0x11fb], 1
mov rdx, qword [rsp + 0x80]
jmp 0x14006ddf7
mov dword [rsp + 0x20], 4
mov r9, r12
mov edx, 0xffff
mov rcx, rbp
mov r8d, 0x1001
call qword [sym.imp.WS2_32.dll_setsockopt]
jmp 0x14006e007
call sym.Curl_timediff
mov r9, rdi
lea rdx, str.Operation_timed_out_after__lld_milliseconds_with__lld_bytes_received
mov rcx, r15
mov r8, rax
call sym.Curl_failf
jmp 0x14006df47
cmp eax, 0x51
jne 0x14006de60
mov esi, r13d
jmp 0x14006ddd2
mov ebp, eax
mov esi, r13d
jmp 0x14006ddda