Function at 0x1401abf30
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 0x1401abf90
test esi, 1
je 0x1401abf73
test al, 0x10
je 0x1401abf87
test esi, 2
je 0x1401abf7f
test al, 0x20
je 0x1401abf87
test al, 0x30
jne 0x1401ac715
mov byte [rbx + 0x12ab], 0
jmp 0x1401abfc5
mov edx, eax
or rcx, 0xffffffffffffffff
and edx, 0x15
dec edx
jne 0x1401abfa4
mov rcx, qword [r13 + 0x2d0]
and eax, 0x2a
or r8, 0xffffffffffffffff
cmp eax, 2
jne 0x1401abfb7
mov r8, qword [r13 + 0x2d8]
xor r9d, r9d
or rdx, 0xffffffffffffffff
call sym.Curl_socket_check
mov esi, eax
cmp esi, 4
jne 0x1401abfe3
lea rdx, str.select_poll_returned_error
mov rcx, rbx
call sym.Curl_failf
mov eax, 0x37
jmp 0x1401ac91f
mov ebp, dword [rbx + 0x144]
and ebp, 1
je 0x1401ac168
mov ebp, esi
and ebp, 1
je 0x1401ac168
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 0x1401ac03e
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 0x1401ac083
mov rax, qword [rbx + 0x308]
test rax, rax
je 0x1401ac909
mov rcx, qword [rsp + 0x68]
sub rax, rcx
test rax, rax
jle 0x1401ac0f9
cmp r9, rax
cmova r9, rax
jmp 0x1401ac909
test dil, dil
jne 0x1401ac82f
test byte [rbx + 0x1bc], 1
jne 0x1401ac812
mov rax, qword [rbx + 0xf0]
cmp rax, 0xffffffffffffffff
je 0x1401ac812
sub rax, qword [rbx + 0x100]
test rax, rax
jle 0x1401ac82f
cmp rax, r9
jge 0x1401ac812
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 0x1401ac81c
cmp eax, 0x51
jne 0x1401ac91f
mov ebp, r15d
test r14d, r14d
jne 0x1401ac11d
mov eax, dword [rbx + 0x144]
mov byte [rbx + 0x12ab], 1
and eax, 0x2a
cmp eax, 2
jne 0x1401ac11d
mov byte [rbx + 0x12ab], 3
mov eax, dword [rbx + 0x144]
and eax, 3
cmp eax, 2
jne 0x1401ac15d
mov rax, qword [rsp + 0x58]
test byte [rax + 0x2a8], 0x40
jne 0x1401ac13e
test dil, dil
je 0x1401ac15d
test byte [rbx + 0xa0e], 0x20
je 0x1401ac156
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 0x1401ac715
lea r14, [rbx + 0xf0]
test byte [rbx + 0x144], 2
je 0x1401ac5f4
and esi, 2
je 0x1401ac5f4
mov r15, qword [rbx + 0x188]
test r15, r15
je 0x1401ac1d0
mov eax, dword [rbx + 0x698]
shr eax, 5
cmp r15, rax
jge 0x1401ac3e6
test word [rbx + 0x1bc], 0x210
jne 0x1401ac3e6
mov rax, qword [rbx + 0x108]
add rax, r15
sub rax, qword [rbx + 0x110]
cmp rax, qword [rbx + 0x10d8]
je 0x1401ac3e6
mov rcx, rbx
call sym.Curl_get_upload_buffer
test eax, eax
jne 0x1401ac91f
test r15, r15
je 0x1401ac200
mov rcx, qword [rbx + 0xc18]
mov rdx, qword [rbx + 0x190]
cmp rdx, rcx
je 0x1401ac200
mov r8, r15
call sub.msvcrt.dll_memmove
mov rax, qword [rbx + 0xc18]
mov qword [rbx + 0x190], rax
test byte [rbx + 0x1bc], 0x10
je 0x1401ac229
test byte [rbx + 0x144], 0x20
jne 0x1401ac5f1
jmp 0x1401ac5e2
cmp dword [rbx + 0x158], 2
mov rdx, qword [rbx + 0x198]
jne 0x1401ac281
cmp dword [rdx + 0x38], 2
jne 0x1401ac281
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 0x1401ac5f4
mov rcx, qword [r13 + 0x2b0]
xor esi, esi
test dword [rcx + 0x84], 0x40003
je 0x1401ac29e
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 0x1401ac91f
mov rdx, qword [rsp + 0xb0]
add rdx, r15
test rdx, rdx
je 0x1401ac217
jle 0x1401ac5e2
mov qword [rbx + 0x188], rdx
test sil, sil
jne 0x1401ac3e6
test byte [rbx + 0xa0c], 0x10
je 0x1401ac3e6
cmp qword [rbx + 0xcd0], 0
jne 0x1401ac352
mov eax, dword [rbx + 0x698]
mov qword [rsp + 0x58], rdx
lea ecx, [rax + rax]
mov rax, qword [0x140297bb0]
call qword [rax]
mov rdx, qword [rsp + 0x58]
test rax, rax
mov qword [rbx + 0xcd0], rax
jne 0x1401ac352
lea rdx, str.Failed_to_alloc_scratch_buffer
mov rcx, rbx
call sym.Curl_failf
mov eax, 0x1b
jmp 0x1401ac91f
test r15, r15
je 0x1401ac36a
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 0x1401ac3cc
mov rcx, qword [rbx + 0x190]
mov r8b, byte [rcx + rax]
mov rcx, qword [rbx + 0xcd0]
add rcx, r15
cmp r8b, 0xa
jne 0x1401ac3c1
mov byte [rcx], 0xd
mov rcx, qword [rbx + 0xcd0]
inc r15
mov byte [rcx + r15], 0xa
test byte [rbx + 0xa0c], 0x10
jne 0x1401ac3c4
mov rcx, qword [rbx + 0x10d8]
cmp rcx, 0xffffffffffffffff
je 0x1401ac3c4
inc rcx
mov qword [rbx + 0x10d8], rcx
jmp 0x1401ac3c4
mov byte [rcx], r8b
inc rax
inc r15
jmp 0x1401ac36d
cmp rdx, r15
je 0x1401ac3e6
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 0x1401ac91f
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 0x1401ac4cb
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 0x1401ac4c4
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 0x1401ac50f
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 0x1401ac54f
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 0x1401ac58b
mov rax, qword [rbx + 0x10d8]
cmp qword [rbx + 0x108], rax
jne 0x1401ac58b
or byte [rbx + 0x1bc], 0x10
test byte [rbx + 0xa0e], 0x20
je 0x1401ac58b
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 0x1401ac5b2
sub rax, rdx
add qword [rbx + 0x190], rdx
mov qword [rbx + 0x188], rax
jmp 0x1401ac5f1
mov rcx, rbx
call sym.Curl_get_upload_buffer
test eax, eax
jne 0x1401ac91f
mov rax, qword [rbx + 0xc18]
xor edx, edx
mov qword [rbx + 0x188], rdx
mov qword [rbx + 0x190], rax
test byte [rbx + 0x1bc], 0x10
je 0x1401ac5f1
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 0x1401ac62a
mov rcx, rbx
call sym.Curl_pgrsUpdate
test eax, eax
jne 0x1401ac6e7
jmp 0x1401ac6a2
cmp dword [rbx + 0x158], 1
jne 0x1401ac68d
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 0x1401ac68d
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 0x1401ac68d
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 0x1401ac618
jmp 0x1401ac91f
movups xmm4, xmmword [rsp + 0xb0]
mov rdx, rsi
mov rcx, rbx
movups xmmword [rsp + 0x90], xmm4
call sym.Curl_speedcheck
test eax, eax
jne 0x1401ac91f
cmp dword [rbx + 0x144], 0
jne 0x1401ac6f1
test byte [rbx + 0x1bd], 0x10
je 0x1401ac7c7
mov rcx, rbx
call sym.Curl_pgrsUpdate
test eax, eax
je 0x1401ac709
mov eax, 0x2a
jmp 0x1401ac91f
xor r8d, r8d
lea rdx, [rsp + 0xb0]
mov rcx, rbx
call sym.Curl_timeleft
test rax, rax
js 0x1401ac71c
test byte [rbx + 0x144], 0x3f
sete byte [r12]
xor eax, eax
jmp 0x1401ac91f
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 0x1401ac7a1
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 0x1401ac7bd
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 0x1401ac91f
mov r8, qword [rbx + 0xf0]
cmp r8, 0xffffffffffffffff
je 0x1401ac6db
mov rax, qword [rbx + 0x100]
cmp r8, rax
je 0x1401ac6db
cmp qword [rbx + 0x180], 0
jne 0x1401ac6db
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 0x1401ac91f
test r9, r9
je 0x1401ac82f
jmp 0x1401ac0c6
mov r10, qword [rsp + 0xb0]
test r10, r10
js 0x1401ac917
jne 0x1401ac850
test byte [rbx + 0x1bc], 8
je 0x1401ac858
xor r8d, r8d
mov dword [rbx + 0x144], r8d
test r14d, r14d
jne 0x1401ac15d
jmp 0x1401ac101
mov r15, r10
xor r9d, r9d
jmp 0x1401ac861
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 0x1401ac91f
cmp byte [r12], 0
jne 0x1401ac15d
test dil, dil
mov r10, qword [rsp + 0x78]
jne 0x1401ac8a5
test byte [rbx + 0x1bc], 4
jne 0x1401ac8aa
test r10, r10
jne 0x1401ac8b1
and dword [rbx + 0x144], 0xfffffffe
mov eax, dword [rbx + 0x144]
and eax, 0x11
dec eax
jne 0x1401ac0fc
sub r14d, 1
jb 0x1401ac101
mov rax, qword [rbx + 0x20]
mov edx, 1
mov rax, qword [rax + 0x2b0]
mov eax, dword [rax + 0x84]
test al, 0xc
jne 0x1401ac8ec
test al, 0x30
jne 0x1401ac8fc
xor edx, edx
mov rcx, rbx
call sym.Curl_conn_data_pending
test al, al
je 0x1401ac0fc
add qword [rsp + 0x68], r15
mov r15d, ebp
jmp 0x1401ac02b
test dil, dil
jne 0x1401ac0c6
jmp 0x1401ac08c
mov ebp, r15d
jmp 0x1401ac15d
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