// File: nurseiit[P]cpp-server/./include/asio/detail/reactive_socket_service_base.hpp
// Function: void asio::detail::reactive_socket_service_base::async_send<asio::const_buffers_1, asio::detail::write_op<asio::basic_stream_socket<asio::ip::tcp, asio::executor>, asio::const_buffers_1, asio::const_buffer const*, asio::detail::transfer_all_t, Session::read_next_line(std::shared_ptr<Session>)::'lambda'(std::error_code const&, unsigned long)::operator()(std::error_code const&, unsigned long) const::'lambda'(std::error_code const&, unsigned long)>, asio::detail::io_object_executor<asio::executor>>(asio::detail::reactive_socket_service_base::base_implementation_type&, asio::const_buffers_1 const&, int, asio::detail::write_op<asio::basic_stream_socket<asio::ip::tcp, asio::executor>, asio::const_buffers_1, asio::const_buffer const*, asio::detail::transfer_all_t, Session::read_next_line(std::shared_ptr<Session>)::'lambda'(std::error_code const&, unsigned long)::operator()(std::error_code const&, unsigned long) const::'lambda'(std::error_code const&, unsigned long)>&, asio::detail::io_object_executor<asio::executor> const&)
void async_send(base_implementation_type& impl,
      const ConstBufferSequence& buffers, socket_base::message_flags flags,
      Handler& handler, const IoExecutor& io_ex)
  {
    bool is_continuation =
      asio_handler_cont_helpers::is_continuation(handler);

    // Allocate and construct an operation to wrap the handler.
    typedef reactive_socket_send_op<
        ConstBufferSequence, Handler, IoExecutor> op;
    typename op::ptr p = { asio::detail::addressof(handler),
      op::ptr::allocate(handler), 0 };
    p.p = new (p.v) op(impl.socket_, impl.state_,
        buffers, flags, handler, io_ex);

    ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "socket",
          &impl, impl.socket_, "async_send"));

    start_op(impl, reactor::write_op, p.p, is_continuation, true,
        ((impl.state_ & socket_ops::stream_oriented)
          && buffer_sequence_adapter<asio::const_buffer,
            ConstBufferSequence>::all_empty(buffers)));
    p.v = p.p = 0;
  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movq %r8, -0x28(%rbp)
movq %r9, -0x30(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x28(%rbp), %rdi
callq 0x1d4f0
movb %al, -0x31(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x28(%rbp), %rdi
callq 0x1d510
movq %rax, -0x48(%rbp)
movq $0x0, -0x40(%rbp)
movq -0x48(%rbp), %rdi
movq %rdi, -0x68(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %esi
movzbl 0x4(%rax), %edx
movq -0x18(%rbp), %rcx
movl -0x1c(%rbp), %r8d
movq -0x28(%rbp), %r9
movq -0x30(%rbp), %r10
movq %rsp, %rax
movq %r10, (%rax)
callq 0x1d560
jmp 0x1d422
movq -0x68(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x88(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x80(%rbp)
movb -0x31(%rbp), %al
movb %al, -0x72(%rbp)
movq -0x10(%rbp), %rax
movzbl 0x4(%rax), %ecx
andl $0x10, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x71(%rbp)
je 0x1d474
movq -0x18(%rbp), %rdi
callq 0x1d610
movb %al, -0x89(%rbp)
jmp 0x1d469
movb -0x89(%rbp), %al
movb %al, -0x71(%rbp)
jmp 0x1d474
movq -0x80(%rbp), %rcx
movq -0x88(%rbp), %rsi
movq -0x70(%rbp), %rdi
movb -0x72(%rbp), %al
movb -0x71(%rbp), %dl
movzbl %dl, %r8d
andl $0x1, %r8d
movq %rsp, %rdx
movl %r8d, (%rdx)
movzbl %al, %r8d
andl $0x1, %r8d
movl $0x1, %r9d
movl %r9d, %edx
callq 0x15b60
jmp 0x1d4af
movq $0x0, -0x40(%rbp)
movq $0x0, -0x48(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x1d640
addq $0xa0, %rsp
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x1d640
movq -0x58(%rbp), %rdi
callq 0x6700
nop