// File: nurseiit[P]cpp-server/./include/asio/ip/basic_resolver_results.hpp
// Function: asio::ip::basic_resolver_results<asio::ip::tcp>::create(addrinfo*, 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&)
static basic_resolver_results create(
      asio::detail::addrinfo_type* address_info,
      const std::string& host_name, const std::string& service_name)
  {
    basic_resolver_results results;
    if (!address_info)
      return results;

    std::string actual_host_name = host_name;
    if (address_info->ai_canonname)
      actual_host_name = address_info->ai_canonname;

    results.values_.reset(new values_type);

    while (address_info)
    {
      if (address_info->ai_family == ASIO_OS_DEF(AF_INET)
          || address_info->ai_family == ASIO_OS_DEF(AF_INET6))
      {
        using namespace std; // For memcpy.
        typename InternetProtocol::endpoint endpoint;
        endpoint.resize(static_cast<std::size_t>(address_info->ai_addrlen));
        memcpy(endpoint.data(), address_info->ai_addr,
            address_info->ai_addrlen);
        results.values_->push_back(
            basic_resolver_entry<InternetProtocol>(endpoint,
              actual_host_name, service_name));
      }
      address_info = address_info->ai_next;
    }

    return results;
  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x110, %rsp            # imm = 0x110
movq %rdi, -0xe0(%rbp)
movq %rdi, %rax
movq %rax, -0xd8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movb $0x0, -0x21(%rbp)
callq 0xfa20
cmpq $0x0, -0x10(%rbp)
jne 0xfa8c
movb $0x1, -0x21(%rbp)
movl $0x1, -0x28(%rbp)
jmp 0xfc2f
movq -0x18(%rbp), %rsi
leaq -0x48(%rbp), %rdi
callq 0x51c0
jmp 0xfa9b
movq -0x10(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0xfadd
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rsi
leaq -0x48(%rbp), %rdi
callq 0x54b0
jmp 0xfab9
jmp 0xfadd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xfc51
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0xfc24
movq -0xe0(%rbp), %rax
movq %rax, -0xf0(%rbp)
movl $0x18, %edi
callq 0x5390
movq %rax, -0xe8(%rbp)
jmp 0xfafe
movq -0xe8(%rbp), %rdi
callq 0x10020
movq -0xf0(%rbp), %rdi
movq -0xe8(%rbp), %rsi
callq 0xffd0
jmp 0xfb1f
jmp 0xfb21
cmpq $0x0, -0x10(%rbp)
je 0xfc0e
movq -0x10(%rbp), %rax
cmpl $0x2, 0x4(%rax)
je 0xfb44
movq -0x10(%rbp), %rax
cmpl $0xa, 0x4(%rax)
jne 0xfbfd
leaq -0x70(%rbp), %rdi
movq %rdi, -0xf8(%rbp)
callq 0xf760
movq -0xf8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x10(%rax), %eax
movl %eax, %esi
callq 0x10040
jmp 0xfb6b
leaq -0x70(%rbp), %rdi
movq %rdi, -0x108(%rbp)
callq 0x10070
movq %rax, %rdi
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rsi
movl 0x10(%rax), %eax
movl %eax, %edx
callq 0x5310
movq -0xe0(%rbp), %rdi
callq 0x10090
movq -0x108(%rbp), %rsi
movq %rax, -0x100(%rbp)
movq -0x20(%rbp), %rcx
leaq -0xd0(%rbp), %rdi
leaq -0x48(%rbp), %rdx
callq 0x100e0
jmp 0xfbc0
movq -0x100(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x100b0
jmp 0xfbd5
leaq -0xd0(%rbp), %rdi
callq 0x10160
jmp 0xfbfd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x10160
jmp 0xfc24
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x10(%rbp)
jmp 0xfb21
movb $0x1, -0x21(%rbp)
movl $0x1, -0x28(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x5270
jmp 0xfc2f
leaq -0x48(%rbp), %rdi
callq 0x5270
jmp 0xfc51
testb $0x1, -0x21(%rbp)
jne 0xfc41
movq -0xe0(%rbp), %rdi
callq 0x7150
movq -0xd8(%rbp), %rax
addq $0x110, %rsp            # imm = 0x110
popq %rbp
retq
movq -0xe0(%rbp), %rdi
callq 0x7150
movq -0x50(%rbp), %rdi
callq 0x5660
nopw %cs:(%rax,%rax)