// File: /workspace/github_cpp_makefile_star2_O3/attractivechaos[P]udb2/sparsehash/./sparsehash/internal/densehashtable.h
// Function: google::dense_hashtable<std::pair<unsigned int const, unsigned int>, unsigned int, Hash32, google::dense_hash_map<unsigned int, unsigned int, Hash32, std::equal_to<unsigned int>, google::libc_allocator_with_realloc<std::pair<unsigned int const, unsigned int>>>::SelectKey, google::dense_hash_map<unsigned int, unsigned int, Hash32, std::equal_to<unsigned int>, google::libc_allocator_with_realloc<std::pair<unsigned int const, unsigned int>>>::SetKey, std::equal_to<unsigned int>, google::libc_allocator_with_realloc<std::pair<unsigned int const, unsigned int>>>::dense_hashtable(google::dense_hashtable<std::pair<unsigned int const, unsigned int>, unsigned int, Hash32, google::dense_hash_map<unsigned int, unsigned int, Hash32, std::equal_to<unsigned int>, google::libc_allocator_with_realloc<std::pair<unsigned int const, unsigned int>>>::SelectKey, google::dense_hash_map<unsigned int, unsigned int, Hash32, std::equal_to<unsigned int>, google::libc_allocator_with_realloc<std::pair<unsigned int const, unsigned int>>>::SetKey, std::equal_to<unsigned int>, google::libc_allocator_with_realloc<std::pair<unsigned int const, unsigned int>>> const&, unsigned long)
dense_hashtable(const dense_hashtable& ht,
                  size_type min_buckets_wanted = HT_DEFAULT_STARTING_BUCKETS)
      : settings(ht.settings),
        key_info(ht.key_info),
        num_deleted(0),
        num_elements(0),
        num_buckets(0),
        val_info(ht.val_info),
        table(NULL) {
    if (!ht.settings.use_empty()) {
      // If use_empty isn't set, copy_from will crash, so we do our own copying.
      assert(ht.empty());
      num_buckets = settings.min_buckets(ht.size(), min_buckets_wanted);
      settings.reset_thresholds(bucket_count());
      return;
    }
    settings.reset_thresholds(bucket_count());
    copy_from(ht, min_buckets_wanted);   // copy_from() ignores deleted entries
  }

// Assembly:
pushq %rbx
movq %rdi, %rbx
movups (%rsi), %xmm0
movups 0x10(%rsi), %xmm1
movups %xmm1, 0x10(%rdi)
movups %xmm0, (%rdi)
movl 0x20(%rsi), %eax
movl %eax, 0x20(%rdi)
xorl %eax, %eax
movq %rax, 0x38(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rdi)
movq 0x40(%rsi), %rcx
movq %rcx, 0x40(%rdi)
movq %rax, 0x48(%rdi)
cmpb $0x0, 0x19(%rsi)
je 0x1b24
xorps %xmm0, %xmm0
movss 0x10(%rbx), %xmm1
mulss %xmm0, %xmm1
cvttss2si %xmm1, %rax
movq %rax, %rcx
movss 0x1573(%rip), %xmm2     # 0x3050
subss %xmm2, %xmm1
cvttss2si %xmm1, %rdi
sarq $0x3f, %rcx
andq %rcx, %rdi
orq %rax, %rdi
movq %rdi, (%rbx)
mulss 0x14(%rbx), %xmm0
cvttss2si %xmm0, %rax
movq %rax, %rcx
subss %xmm2, %xmm0
cvttss2si %xmm0, %rdi
sarq $0x3f, %rcx
andq %rcx, %rdi
orq %rax, %rdi
movq %rdi, 0x8(%rbx)
movb $0x0, 0x18(%rbx)
movq %rbx, %rdi
popq %rbx
jmp 0x1d6a
movq 0x30(%rsi), %rax
cmpq 0x28(%rsi), %rax
jne 0x1bc0
movq %rbx, %rdi
xorl %esi, %esi
callq 0x176e
movq %rax, 0x38(%rbx)
testq %rax, %rax
js 0x1b4f
xorps %xmm0, %xmm0
cvtsi2ss %rax, %xmm0
jmp 0x1b67
movq %rax, %rcx
shrq %rcx
andl $0x1, %eax
orq %rcx, %rax
xorps %xmm0, %xmm0
cvtsi2ss %rax, %xmm0
addss %xmm0, %xmm0
movss 0x10(%rbx), %xmm1
mulss %xmm0, %xmm1
cvttss2si %xmm1, %rax
movq %rax, %rcx
sarq $0x3f, %rcx
movss 0x14cc(%rip), %xmm2     # 0x3050
subss %xmm2, %xmm1
cvttss2si %xmm1, %rdx
andq %rcx, %rdx
orq %rax, %rdx
movq %rdx, (%rbx)
mulss 0x14(%rbx), %xmm0
cvttss2si %xmm0, %rax
movq %rax, %rcx
sarq $0x3f, %rcx
subss %xmm2, %xmm0
cvttss2si %xmm0, %rdx
andq %rcx, %rdx
orq %rax, %rdx
movq %rdx, 0x8(%rbx)
movb $0x0, 0x18(%rbx)
popq %rbx
retq
leaq 0x1f4e(%rip), %rdi      # 0x3b15
leaq 0x154d(%rip), %rsi      # 0x311b
leaq 0x1f4b(%rip), %rcx      # 0x3b20
movl $0x2d3, %edx            # imm = 0x2D3
callq 0x1070
nop