Function at 0x1401d51a0
Capabilities:
Set socket configuration

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xd8
movups xmmword [rsp + 0xc0], xmm6
movzx esi, byte [rcx + 0x12ab]
mov r13, qword [rcx + 0x20]
mov eax, dword [rcx + 0x144]
mov rbx, rcx
mov r12, rdx
test sil, sil
je 0x1401d5200
test esi, 1
je 0x1401d51e3
test al, 0x10
je 0x1401d51f7
test esi, 2
je 0x1401d51ef
test al, 0x20
je 0x1401d51f7
test al, 0x30
jne 0x1401d5985
mov byte [rbx + 0x12ab], 0
jmp 0x1401d5235
mov edx, eax
or rcx, 0xffffffffffffffff
and edx, 0x15
dec edx
jne 0x1401d5214
mov rcx, qword [r13 + 0x2d0]
and eax, 0x2a
or r8, 0xffffffffffffffff
cmp eax, 2
jne 0x1401d5227
mov r8, qword [r13 + 0x2d8]
xor r9d, r9d
or rdx, 0xffffffffffffffff
call sym.Curl_socket_check
mov esi, eax
cmp esi, 4
jne 0x1401d5253
lea rdx, str.select_poll_returned_error
mov rcx, rbx
call sym.Curl_failf
mov eax, 0x37
jmp 0x1401d5b8f
mov ebp, dword [rbx + 0x144]
and ebp, 1
je 0x1401d53d8
mov ebp, esi
and ebp, 1
je 0x1401d53d8
mov rax, qword [rbx + 0x20]
xor r9d, r9d
mov byte [r12], 0
xor r15d, r15d
mov qword [rsp + 0x68], r9
xor edi, edi
mov r14d, 0xa
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x70], rax
test dil, dil
jne 0x1401d52ae
mov rcx, qword [rsp + 0x58]
xor edx, edx
call sym.Curl_conn_is_multiplex
mov edi, eax
mov rax, qword [rbx + 0xc10]
mov r9d, dword [rbx + 0x694]
mov qword [rsp + 0x60], rax
test r9, r9
je 0x1401d52f3
mov rax, qword [rbx + 0x308]
test rax, rax
je 0x1401d5b79
mov rcx, qword [rsp + 0x68]
sub rax, rcx
test rax, rax
jle 0x1401d5369
cmp r9, rax
cmova r9, rax
jmp 0x1401d5b79
test dil, dil
jne 0x1401d5a9f
test byte [rbx + 0x1bc], 1
jne 0x1401d5a82
mov rax, qword [rbx + 0xf0]
cmp rax, 0xffffffffffffffff
je 0x1401d5a82
sub rax, qword [rbx + 0x100]
test rax, rax
jle 0x1401d5a9f
cmp rax, r9
jge 0x1401d5a82
mov r9, rax
mov rax, qword [rbx + 0x20]
mov r8, qword [rsp + 0x60]
mov rcx, rbx
mov rdx, qword [rax + 0x2d0]
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x20], rax
call sym.Curl_read
test eax, eax
je 0x1401d5a8c
cmp eax, 0x51
jne 0x1401d5b8f
mov ebp, r15d
test r14d, r14d
jne 0x1401d538d
mov eax, dword [rbx + 0x144]
mov byte [rbx + 0x12ab], 1
and eax, 0x2a
cmp eax, 2
jne 0x1401d538d
mov byte [rbx + 0x12ab], 3
mov eax, dword [rbx + 0x144]
and eax, 3
cmp eax, 2
jne 0x1401d53cd
mov rax, qword [rsp + 0x58]
test byte [rax + 0x2a8], 0x40
jne 0x1401d53ae
test dil, dil
je 0x1401d53cd
test byte [rbx + 0xa0e], 0x20
je 0x1401d53c6
lea rdx, str.we_are_done_reading_and_this_is_set_to_close__stop_send
mov rcx, rbx
call sym.Curl_infof
and dword [rbx + 0x144], 0xffffffdd
cmp byte [r12], 0
jne 0x1401d5985
lea r14, [rbx + 0xf0]
test byte [rbx + 0x144], 2
je 0x1401d5864
and esi, 2
je 0x1401d5864
mov r15, qword [rbx + 0x188]
test r15, r15
je 0x1401d5440
mov eax, dword [rbx + 0x698]
shr eax, 5
cmp r15, rax
jge 0x1401d5656
test word [rbx + 0x1bc], 0x210
jne 0x1401d5656
mov rax, qword [rbx + 0x108]
add rax, r15
sub rax, qword [rbx + 0x110]
cmp rax, qword [rbx + 0x10d8]
je 0x1401d5656
mov rcx, rbx
call sym.Curl_get_upload_buffer
test eax, eax
jne 0x1401d5b8f
test r15, r15
je 0x1401d5470
mov rcx, qword [rbx + 0xc18]
mov rdx, qword [rbx + 0x190]
cmp rdx, rcx
je 0x1401d5470
mov r8, r15
call sub.msvcrt.dll_memmove
mov rax, qword [rbx + 0xc18]
mov qword [rbx + 0x190], rax
test byte [rbx + 0x1bc], 0x10
je 0x1401d5499
test byte [rbx + 0x144], 0x20
jne 0x1401d5861
jmp 0x1401d5852
cmp dword [rbx + 0x158], 2
mov rdx, qword [rbx + 0x198]
jne 0x1401d54f1
cmp dword [rdx + 0x38], 2
jne 0x1401d54f1
and dword [rbx + 0x144], 0xfffffffd
lea rcx, [rsp + 0x90]
mov dword [rbx + 0x158], 1
call sym.Curl_now
movups xmm0, xmmword [rsp + 0x90]
xor r8d, r8d
mov rcx, rbx
movsxd rdx, dword [rbx + 0x9a0]
movups xmmword [r14 + 0x58], xmm0
call sym.Curl_expire
jmp 0x1401d5864
mov rcx, qword [r13 + 0x2b0]
xor esi, esi
test dword [rcx + 0x84], 0x40003
je 0x1401d550e
cmp dword [rdx + 0x38], 1
sete sil
add rax, r15
mov edx, dword [rbx + 0x698]
lea r8, [rsp + 0xb0]
mov rcx, rbx
mov qword [rbx + 0x190], rax
sub rdx, r15
call sym.Curl_fillreadbuffer
sub qword [rbx + 0x190], r15
test eax, eax
jne 0x1401d5b8f
mov rdx, qword [rsp + 0xb0]
add rdx, r15
test rdx, rdx
je 0x1401d5487
jle 0x1401d5852
mov qword [rbx + 0x188], rdx
test sil, sil
jne 0x1401d5656
test byte [rbx + 0xa0c], 0x10
je 0x1401d5656
cmp qword [rbx + 0xcd0], 0
jne 0x1401d55c2
mov eax, dword [rbx + 0x698]
mov qword [rsp + 0x58], rdx
lea ecx, [rax + rax]
mov rax, qword [0x1402c1ab0]
call qword [rax]
mov rdx, qword [rsp + 0x58]
test rax, rax
mov qword [rbx + 0xcd0], rax
jne 0x1401d55c2
lea rdx, str.Failed_to_alloc_scratch_buffer
mov rcx, rbx
call sym.Curl_failf
mov eax, 0x1b
jmp 0x1401d5b8f
test r15, r15
je 0x1401d55da
mov rsi, qword [rbx + 0x190]
mov rdi, qword [rbx + 0xcd0]
mov rcx, r15
rep movsb byte [rdi], byte [rsi]
mov rax, r15
cmp rdx, rax
jle 0x1401d563c
mov rcx, qword [rbx + 0x190]
mov r8b, byte [rcx + rax]
mov rcx, qword [rbx + 0xcd0]
add rcx, r15
cmp r8b, 0xa
jne 0x1401d5631
mov byte [rcx], 0xd
mov rcx, qword [rbx + 0xcd0]
inc r15
mov byte [rcx + r15], 0xa
test byte [rbx + 0xa0c], 0x10
jne 0x1401d5634
mov rcx, qword [rbx + 0x10d8]
cmp rcx, 0xffffffffffffffff
je 0x1401d5634
inc rcx
mov qword [rbx + 0x10d8], rcx
jmp 0x1401d5634
mov byte [rcx], r8b
inc rax
inc r15
jmp 0x1401d55dd
cmp rdx, r15
je 0x1401d5656
mov rax, qword [rbx + 0xcd0]
mov qword [rbx + 0x188], r15
mov qword [rbx + 0x190], rax
lea rax, [rsp + 0xb0]
mov rdx, qword [r13 + 0x2d8]
mov rcx, rbx
mov qword [rsp + 0x20], rax
mov r9, qword [rbx + 0x188]
mov r8, qword [rbx + 0x190]
call sym.Curl_write
test eax, eax
jne 0x1401d5b8f
lea rsi, [rsp + 0x90]
mov rcx, rsi
call sym.Curl_now
movups xmm1, xmmword [r14 + 0xb8]
mov rcx, rsi
lea rdx, [rsp + 0x80]
movups xmm6, xmmword [rsp + 0x90]
movups xmmword [rsp + 0x80], xmm1
call sym.Curl_timediff
cmp rax, 0x3e8
jle 0x1401d573b
mov rsi, qword [r13 + 0x2d8]
xor ecx, ecx
xor r9d, r9d
xor r8d, r8d
lea rax, [rsp + 0xac]
mov qword [rsp + 0x40], rcx
lea rdi, [rsp + 0xa8]
mov edx, 0x4004747b
mov qword [rsp + 0x38], rcx
mov rcx, rsi
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 4
mov qword [rsp + 0x20], rdi
call qword [sym.imp.WS2_32.dll_WSAIoctl]
test eax, eax
jne 0x1401d5734
mov dword [rsp + 0x20], 4
mov r9, rdi
mov edx, 0xffff
mov rcx, rsi
mov r8d, 0x1001
call qword [sym.imp.WS2_32.dll_setsockopt]
movups xmmword [rbx + 0x1a8], xmm6
mov rdi, qword [rbx + 0x110]
mov rsi, qword [rsp + 0xb0]
test rdi, rdi
je 0x1401d577f
cmp rsi, rdi
mov r8, qword [rbx + 0x190]
mov edx, 2
mov rcx, rbx
cmovle rdi, rsi
mov r9, rdi
call sym.Curl_debug
sub qword [rbx + 0x110], rdi
mov rsi, qword [rsp + 0xb0]
sub rsi, rdi
test rsi, rsi
je 0x1401d57bf
mov r8, qword [rsp + 0xb0]
mov r9, rsi
mov edx, 4
mov rcx, rbx
sub r8, rsi
add r8, qword [rbx + 0x190]
call sym.Curl_debug
add rsi, qword [rbx + 0x108]
mov rcx, rbx
mov qword [rbx + 0x108], rsi
mov rdx, rsi
call sym.Curl_pgrsSetUploadCounter
mov al, byte [rbx + 0x1bd]
and eax, 0xa
cmp al, 2
je 0x1401d57fb
mov rax, qword [rbx + 0x10d8]
cmp qword [rbx + 0x108], rax
jne 0x1401d57fb
or byte [rbx + 0x1bc], 0x10
test byte [rbx + 0xa0e], 0x20
je 0x1401d57fb
lea rdx, str.We_are_completely_uploaded_and_fine
mov rcx, rbx
call sym.Curl_infof
mov rax, qword [rbx + 0x188]
mov rdx, qword [rsp + 0xb0]
cmp rax, rdx
je 0x1401d5822
sub rax, rdx
add qword [rbx + 0x190], rdx
mov qword [rbx + 0x188], rax
jmp 0x1401d5861
mov rcx, rbx
call sym.Curl_get_upload_buffer
test eax, eax
jne 0x1401d5b8f
mov rax, qword [rbx + 0xc18]
xor edx, edx
mov qword [rbx + 0x188], rdx
mov qword [rbx + 0x190], rax
test byte [rbx + 0x1bc], 0x10
je 0x1401d5861
and dword [rbx + 0x144], 0xfffffffd
mov rcx, rbx
call sym.Curl_conn_ev_data_done_send
or ebp, 2
lea rsi, [rsp + 0x90]
mov rcx, rsi
call sym.Curl_now
movups xmm2, xmmword [rsp + 0x90]
movups xmmword [rsp + 0xb0], xmm2
test ebp, ebp
je 0x1401d589a
mov rcx, rbx
call sym.Curl_pgrsUpdate
test eax, eax
jne 0x1401d5957
jmp 0x1401d5912
cmp dword [rbx + 0x158], 1
jne 0x1401d58fd
movups xmm3, xmmword [r14 + 0x58]
lea rdx, [rsp + 0x80]
mov rcx, rsi
movups xmmword [rsp + 0x80], xmm3
call sym.Curl_timediff
movsxd rdx, dword [rbx + 0x9a0]
cmp rdx, rax
jg 0x1401d58fd
xor eax, eax
or dword [rbx + 0x144], 2
xor edx, edx
mov rcx, rbx
mov dword [rbx + 0x158], eax
call sym.Curl_expire_done
test byte [rbx + 0xa0e], 0x20
je 0x1401d58fd
lea rdx, str.Done_waiting_for_100_continue
mov rcx, rbx
call sym.Curl_infof
mov rcx, rbx
call sym.Curl_conn_ev_data_idle
test eax, eax
je 0x1401d5888
jmp 0x1401d5b8f
movups xmm4, xmmword [rsp + 0xb0]
mov rdx, rsi
mov rcx, rbx
movups xmmword [rsp + 0x90], xmm4
call sym.Curl_speedcheck
test eax, eax
jne 0x1401d5b8f
cmp dword [rbx + 0x144], 0
jne 0x1401d5961
test byte [rbx + 0x1bd], 0x10
je 0x1401d5a37
mov rcx, rbx
call sym.Curl_pgrsUpdate
test eax, eax
je 0x1401d5979
mov eax, 0x2a
jmp 0x1401d5b8f
xor r8d, r8d
lea rdx, [rsp + 0xb0]
mov rcx, rbx
call sym.Curl_timeleft
test rax, rax
js 0x1401d598c
test byte [rbx + 0x144], 0x3f
sete byte [r12]
xor eax, eax
jmp 0x1401d5b8f
mov rdi, qword [rbx + 0xf0]
mov r9, qword [rbx + 0x100]
lea rdx, [rsp + 0x80]
mov rcx, rsi
mov r10, qword [rbx + 0xac8]
mov r11, qword [rbx + 0xad0]
mov r12, qword [rsp + 0xb0]
cmp rdi, 0xffffffffffffffff
mov qword [rsp + 0x58], r9
mov r13, qword [rsp + 0xb8]
mov qword [rsp + 0x80], r10
mov qword [rsp + 0x90], r12
mov qword [rsp + 0x98], r13
mov qword [rsp + 0x88], r11
je 0x1401d5a11
call sym.Curl_timediff
mov qword [rsp + 0x20], rdi
mov r9, qword [rsp + 0x58]
mov rcx, rbx
mov r8, rax
lea rdx, str.Operation_timed_out_after__lld_milliseconds_with__lld_out_of__lld_bytes_received
call sym.Curl_failf
jmp 0x1401d5a2d
call sym.Curl_timediff
mov r9, qword [rsp + 0x58]
lea rdx, str.Operation_timed_out_after__lld_milliseconds_with__lld_bytes_received
mov rcx, rbx
mov r8, rax
call sym.Curl_failf
mov eax, 0x1c
jmp 0x1401d5b8f
mov r8, qword [rbx + 0xf0]
cmp r8, 0xffffffffffffffff
je 0x1401d594b
mov rax, qword [rbx + 0x100]
cmp r8, rax
je 0x1401d594b
cmp qword [rbx + 0x180], 0
jne 0x1401d594b
sub r8, rax
lea rdx, str.transfer_closed_with__lld_bytes_remaining_to_read
mov rcx, rbx
call sym.Curl_failf
mov eax, 0x12
jmp 0x1401d5b8f
test r9, r9
je 0x1401d5a9f
jmp 0x1401d5336
mov r10, qword [rsp + 0xb0]
test r10, r10
js 0x1401d5b87
jne 0x1401d5ac0
test byte [rbx + 0x1bc], 8
je 0x1401d5ac8
xor r8d, r8d
mov dword [rbx + 0x144], r8d
test r14d, r14d
jne 0x1401d53cd
jmp 0x1401d5371
mov r15, r10
xor r9d, r9d
jmp 0x1401d5ad1
xor r10d, r10d
mov r9b, 1
xor r15d, r15d
mov qword [rsp + 0x20], r12
mov rdx, qword [rsp + 0x60]
mov r8, r15
mov rcx, rbx
and r9d, 1
mov qword [rsp + 0x78], r10
call sym.Curl_xfer_write_resp
test eax, eax
jne 0x1401d5b8f
cmp byte [r12], 0
jne 0x1401d53cd
test dil, dil
mov r10, qword [rsp + 0x78]
jne 0x1401d5b15
test byte [rbx + 0x1bc], 4
jne 0x1401d5b1a
test r10, r10
jne 0x1401d5b21
and dword [rbx + 0x144], 0xfffffffe
mov eax, dword [rbx + 0x144]
and eax, 0x11
dec eax
jne 0x1401d536c
sub r14d, 1
jb 0x1401d5371
mov rax, qword [rbx + 0x20]
mov edx, 1
mov rax, qword [rax + 0x2b0]
mov eax, dword [rax + 0x84]
test al, 0xc
jne 0x1401d5b5c
test al, 0x30
jne 0x1401d5b6c
xor edx, edx
mov rcx, rbx
call sym.Curl_conn_data_pending
test al, al
je 0x1401d536c
add qword [rsp + 0x68], r15
mov r15d, ebp
jmp 0x1401d529b
test dil, dil
jne 0x1401d5336
jmp 0x1401d52fc
mov ebp, r15d
jmp 0x1401d53cd
movups xmm6, xmmword [rsp + 0xc0]
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret