// File: /workspace/github_cpp_makefile_star2_O3/ncbi[P]amr/curl_easy.cpp
// Function: CURL_sp::Curl::process(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
void Curl::process (const string &url,
                    const string &error_msg_action)
{
  QC_ASSERT (! url. empty ());  

  char err [CURL_ERROR_SIZE + 1] = "";
  curl_easy_setopt (eh, CURLOPT_ERRORBUFFER, err);
  
  curl_easy_setopt (eh, CURLOPT_URL, url. c_str ());
  if (isLeft (url, "ftp://"))
    curl_easy_setopt (eh, CURLOPT_FTP_USE_EPSV, 0);

  const CURLcode cc = curl_easy_perform (eh);
  if (cc)
  {
    const SoftwareVersion ver (CURL_sp::getLibVersion ());
    throw runtime_error ("CURL: Cannot " + error_msg_action
                         + "\n  from " + url 
                         + "\n  code=" + to_string ((int) cc) 
                         + "\n  error: " + err
                         + "\n  version: " + ver. str ()
                         );
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x288, %rsp            # imm = 0x288
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %rbx
callq 0x9930
movl $0x0, (%rax)
cmpq $0x0, 0x8(%r14)
je 0x59e8c
leaq 0x180(%rsp), %r12
movl $0x101, %edx            # imm = 0x101
movq %r12, %rdi
xorl %esi, %esi
callq 0x9260
movq (%rbx), %rdi
movl $0x271a, %esi           # imm = 0x271A
movq %r12, %rdx
xorl %eax, %eax
callq 0x97c0
movq (%rbx), %rdi
movq (%r14), %rdx
movl $0x2712, %esi           # imm = 0x2712
xorl %eax, %eax
callq 0x97c0
leaq 0x18(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x59e1(%rip), %rsi      # 0x5f7a8
leaq 0x59e0(%rip), %rdx      # 0x5f7ae
leaq 0x8(%rsp), %rdi
callq 0x10cc8
movq 0x10(%rsp), %rcx
leaq 0x28(%rsp), %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x9900
movq 0x30(%rsp), %rdx
cmpq 0x10(%rsp), %rdx
jne 0x59e17
movq 0x28(%rsp), %r12
testq %rdx, %rdx
je 0x59e20
movq 0x8(%rsp), %rsi
movq %r12, %rdi
callq 0x9630
testl %eax, %eax
sete %bpl
jmp 0x59e23
movq 0x28(%rsp), %r12
xorl %ebp, %ebp
jmp 0x59e23
movb $0x1, %bpl
leaq 0x38(%rsp), %rax
cmpq %rax, %r12
je 0x59e3d
movq 0x38(%rsp), %rsi
incq %rsi
movq %r12, %rdi
callq 0x9100
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x59e54
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x9100
testb %bpl, %bpl
je 0x59e6a
movq (%rbx), %rdi
movl $0x55, %esi
xorl %edx, %edx
xorl %eax, %eax
callq 0x97c0
movq (%rbx), %rdi
callq 0x9600
testl %eax, %eax
jne 0x59f22
addq $0x288, %rsp            # imm = 0x288
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x9750
testl %eax, %eax
jne 0x59f47
leaq 0x78(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x583f(%rip), %rsi      # 0x5f6e8
leaq 0x584e(%rip), %rdx      # 0x5f6fe
leaq 0x68(%rsp), %rdi
callq 0x10cc8
leaq 0xe0(%rsp), %rdi
movl $0x8d, %esi
callq 0x11784
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0xe0(%rsp), %rdx
callq 0x11481
leaq 0x1601(%rip), %rsi      # 0x5b4ee
leaq 0x88(%rsp), %rdi
callq 0x95e0
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x5a0f0
movups (%rcx), %xmm0
movups %xmm0, (%r15)
jmp 0x5a0fd
movl %eax, %ebp
movl $0x9, %edi
callq 0x98d0
testq %rax, %rax
jne 0x59f51
movq $0x0, 0xd8(%rsp)
xorl %eax, %eax
xorl %edx, %edx
xorl %ecx, %ecx
jmp 0x59f69
movl $0x1, %edi
callq 0x95f0
movl 0x10(%rax), %ecx
movl %ecx, %eax
shrl $0x10, %eax
movl $0xff, %esi
andl %esi, %eax
movl %ecx, %edx
shrl $0x8, %edx
andl %esi, %edx
andl %esi, %ecx
leaq 0x1aa68(%rip), %rsi     # 0x749d8
movq %rsi, 0xc8(%rsp)
movl %eax, 0xd0(%rsp)
movl %edx, 0xd4(%rsp)
movl %ecx, 0xd8(%rsp)
movl $0x10, %edi
callq 0x9320
movq %rax, %rbx
leaq 0x580e(%rip), %rsi      # 0x5f7af
leaq 0x100(%rsp), %rdi
movq %r15, %rdx
callq 0x1162c
leaq 0x5805(%rip), %rsi      # 0x5f7bd
leaq 0x100(%rsp), %rdi
callq 0x95e0
leaq 0x130(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x59fe9
movups (%rcx), %xmm0
movups %xmm0, (%r15)
jmp 0x59ffc
movq %rdx, 0x120(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x130(%rsp)
movq 0x8(%rax), %rdx
leaq 0x120(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xa8(%rsp), %rdi
movq %r14, %rdx
callq 0x45601
leaq 0x5794(%rip), %rsi      # 0x5f7c6
leaq 0xa8(%rsp), %rdi
callq 0x95e0
leaq 0x58(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x5a062
movups (%rcx), %xmm0
movups %xmm0, (%r12)
jmp 0x5a06f
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x50(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x160(%rsp), %rdi
movl %ebp, %esi
callq 0x11784
leaq 0xe0(%rsp), %rdi
leaq 0x48(%rsp), %rsi
leaq 0x160(%rsp), %rdx
callq 0x11481
leaq 0x5718(%rip), %rsi      # 0x5f7cf
leaq 0xe0(%rsp), %rdi
callq 0x95e0
leaq 0x78(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x5a1e7
movups (%rcx), %xmm0
leaq 0x78(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x5a1f4
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xb8(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x5633(%rip), %rsi      # 0x5f75c
leaq 0x5667(%rip), %rdx      # 0x5f797
leaq 0xa8(%rsp), %rdi
callq 0x10cc8
leaq 0x1e5d(%rip), %rsi      # 0x5bfa1
leaq 0xa8(%rsp), %rdi
callq 0x95e0
leaq 0x58(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x5a173
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x5a180
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
movq 0x8(%rax), %rsi
leaq 0x48(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x11481
leaq 0x55e6(%rip), %rsi      # 0x5f798
leaq 0x28(%rsp), %rdi
callq 0x95e0
leaq 0x190(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x5a2a4
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x5a2b7
movq %rdx, 0x68(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x78(%rsp)
movq 0x8(%rax), %rdx
leaq 0x68(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x180(%rsp), %rsi
callq 0x95e0
leaq 0x98(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x5a248
movups (%rcx), %xmm0
leaq 0x98(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x5a25b
movq %rdx, 0x88(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x98(%rsp)
movq 0x8(%rax), %rdx
leaq 0x88(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x5559(%rip), %rsi      # 0x5f7da
callq 0x95e0
movq %r13, 0x8(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x5a2db
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x5a2e8
movq %rdx, 0x180(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x190(%rsp)
movq 0x8(%rax), %rdx
leaq 0x180(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x16026
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x140(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x13282
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
leaq 0x140(%rsp), %rdx
callq 0x11481
movb $0x1, %bpl
leaq 0x28(%rsp), %rsi
movq %rbx, %rdi
callq 0x9220
xorl %ebp, %ebp
movq 0x1bc6b(%rip), %rsi     # 0x75fb0
movq 0x1bc3c(%rip), %rdx     # 0x75f88
movq %rbx, %rdi
callq 0x9570
movq %rax, %r14
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x5a37b
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x9100
jmp 0x5a37b
movq %rax, %r14
movb $0x1, %bpl
leaq 0x150(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5a3a4
movq 0x150(%rsp), %rsi
incq %rsi
callq 0x9100
jmp 0x5a3a4
movq %rax, %r14
movb $0x1, %bpl
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x5a3c3
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x9100
jmp 0x5a3c3
movq %rax, %r14
movb $0x1, %bpl
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x5a432
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x9100
jmp 0x5a432
movq %rax, %r14
movq 0x180(%rsp), %rdi
cmpq %rbp, %rdi
je 0x5a40f
movq 0x190(%rsp), %rsi
incq %rsi
callq 0x9100
jmp 0x5a40f
movq %rax, %r14
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5a453
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x9100
jmp 0x5a453
movq %rax, %r14
movb $0x1, %bpl
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x5a472
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x9100
jmp 0x5a472
movq %rax, %r14
movq 0x48(%rsp), %rdi
cmpq %r13, %rdi
je 0x5a498
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x9100
jmp 0x5a498
movq %rax, %r14
movb $0x1, %bpl
leaq 0xf0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5a4bd
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x9100
jmp 0x5a4bd
movq %rax, %r14
movq 0xa8(%rsp), %rdi
cmpq %r12, %rdi
je 0x5a4e3
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x9100
jmp 0x5a4e3
movq %rax, %r14
movb $0x1, %bpl
leaq 0x170(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5a502
movq 0x170(%rsp), %rsi
incq %rsi
callq 0x9100
jmp 0x5a502
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x5a51e
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x9100
jmp 0x5a51e
movq %rax, %r14
movb $0x1, %bpl
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x5a547
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x9100
jmp 0x5a547
movq %rax, %r14
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5a56d
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x9100
jmp 0x5a56d
movq %rax, %r14
movb $0x1, %bpl
leaq 0xb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5a596
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x9100
jmp 0x5a596
movq %rax, %r14
leaq 0xf0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5a5de
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x9100
jmp 0x5a5de
movq %rax, %r14
movb $0x1, %bpl
movq 0x120(%rsp), %rdi
cmpq %r15, %rdi
je 0x5a5b3
movq 0x130(%rsp), %rsi
incq %rsi
callq 0x9100
leaq 0x110(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5a5d4
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x9100
testb %bpl, %bpl
jne 0x5a61a
jmp 0x5a643
movq %rax, %r14
movq 0x68(%rsp), %rdi
cmpq %rbx, %rdi
je 0x5a643
movq 0x78(%rsp), %rsi
jmp 0x5a636
movq %rax, %r14
leaq 0x110(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5a61a
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x9100
jmp 0x5a61a
jmp 0x5a640
movq %rax, %r14
movq %rbx, %rdi
callq 0x97f0
jmp 0x5a643
movq %rax, %r14
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x5a643
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x9100
jmp 0x5a643
movq %rax, %r14
movq %r14, %rdi
callq 0x95b0
nop