// File: /workspace/github_cpp_makefile_star2_O1/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>>>::set_empty_key(std::pair<unsigned int const, unsigned int> const&)
void set_empty_key(const_reference val) {
    // Once you set the empty key, you can't change it
    assert(!settings.use_empty() && "Calling set_empty_key multiple times");
    // The deleted indicator (if specified) and the empty indicator
    // must be different.
    assert((!settings.use_deleted() || !equals(get_key(val), key_info.delkey))
           && "Setting the empty key the same as the deleted key");
    settings.set_use_empty(true);
    set_value(&val_info.emptyval, val);

    assert(!table);                  // must set before first use
    // num_buckets was set in constructor even though table was NULL
    table = val_info.allocate(num_buckets);
    assert(table);
    fill_range_with_empty(table, table + num_buckets);
  }

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
cmpb $0x1, 0x19(%rdi)
je 0x1940
movq %rdi, %rbx
cmpb $0x1, 0x1a(%rdi)
jne 0x185d
movl (%rsi), %eax
cmpl 0x20(%rbx), %eax
je 0x199d
movb $0x1, 0x19(%rbx)
movq (%rsi), %r14
movq %r14, 0x40(%rbx)
cmpq $0x0, 0x48(%rbx)
jne 0x195f
movq 0x38(%rbx), %r15
leaq (,%r15,8), %rdi
callq 0x10d0
movq %rax, 0x48(%rbx)
testq %rax, %rax
je 0x197e
testq %r15, %r15
je 0x193a
movabsq $0x1fffffffffffffff, %rdx # imm = 0x1FFFFFFFFFFFFFFF
addq %rdx, %r15
andq %r15, %rdx
andl $0x1, %r15d
negq %r15
leaq (%rdx,%r15), %rcx
addq $0x2, %rcx
movq %rdx, %xmm0
pshufd $0x44, %xmm0, %xmm0     # xmm0 = xmm0[0,1,0,1]
xorl %edx, %edx
movdqa 0x1763(%rip), %xmm1     # 0x3030
movdqa 0x176b(%rip), %xmm2     # 0x3040
pxor %xmm2, %xmm0
pcmpeqd %xmm3, %xmm3
movq %rdx, %xmm4
pshufd $0x44, %xmm4, %xmm4     # xmm4 = xmm4[0,1,0,1]
por %xmm1, %xmm4
pxor %xmm2, %xmm4
movdqa %xmm4, %xmm5
pcmpgtd %xmm0, %xmm5
pcmpeqd %xmm0, %xmm4
pshufd $0xf5, %xmm4, %xmm6     # xmm6 = xmm4[1,1,3,3]
pand %xmm5, %xmm6
pshufd $0xf5, %xmm5, %xmm4     # xmm4 = xmm5[1,1,3,3]
por %xmm6, %xmm4
movd %xmm4, %esi
notl %esi
testb $0x1, %sil
je 0x191d
movq %r14, (%rax,%rdx,8)
pxor %xmm3, %xmm4
pextrw $0x4, %xmm4, %esi
testb $0x1, %sil
je 0x1931
movq %r14, 0x8(%rax,%rdx,8)
addq $0x2, %rdx
cmpq %rdx, %rcx
jne 0x18dd
popq %rbx
popq %r14
popq %r15
retq
leaq 0x1794(%rip), %rdi      # 0x30db
leaq 0x17cd(%rip), %rsi      # 0x311b
leaq 0x17ed(%rip), %rcx      # 0x3142
movl $0x1f2, %edx            # imm = 0x1F2
callq 0x1070
leaq 0x1b50(%rip), %rdi      # 0x34b6
leaq 0x17ae(%rip), %rsi      # 0x311b
leaq 0x17ce(%rip), %rcx      # 0x3142
movl $0x1fa, %edx            # imm = 0x1FA
callq 0x1070
leaq 0x1b32(%rip), %rdi      # 0x34b7
leaq 0x178f(%rip), %rsi      # 0x311b
leaq 0x17af(%rip), %rcx      # 0x3142
movl $0x1fd, %edx            # imm = 0x1FD
callq 0x1070
leaq 0x1a97(%rip), %rdi      # 0x343b
leaq 0x1770(%rip), %rsi      # 0x311b
leaq 0x1790(%rip), %rcx      # 0x3142
movl $0x1f6, %edx            # imm = 0x1F6
callq 0x1070