// File: 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>>>::insert_noresize(std::pair<unsigned int const, unsigned int> const&)
std::pair<iterator, bool> insert_noresize(const_reference obj) {
    // First, double-check we're not inserting delkey or emptyval
    assert((!settings.use_empty() || !equals(get_key(obj),
                                             get_key(val_info.emptyval)))
           && "Inserting the empty key");
    assert((!settings.use_deleted() || !equals(get_key(obj), key_info.delkey))
           && "Inserting the deleted key");
    const std::pair<size_type,size_type> pos = find_position(get_key(obj));
    if ( pos.first != ILLEGAL_BUCKET) {      // object was already there
      return std::pair<iterator,bool>(iterator(this, table + pos.first,
                                          table + num_buckets, false),
                                 false);          // false: we didn't insert
    } else {                                 // pos.second says where to put it
      return std::pair<iterator,bool>(insert_at(obj, pos.second), true);
    }
  }

// Assembly:
subq $0x98, %rsp
movq %rdi, 0x20(%rsp)
movq %rdi, 0x28(%rsp)
movq %rsi, 0x90(%rsp)
movq %rdx, 0x88(%rsp)
movq 0x90(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0x2350
testb $0x1, %al
jne 0x3c59
jmp 0x3ca0
movq 0x30(%rsp), %rdi
movq 0x88(%rsp), %rsi
callq 0x23a0
movq 0x30(%rsp), %rdi
movq %rax, 0x10(%rsp)
movq %rdi, %rsi
addq $0x40, %rsi
callq 0x23a0
movq 0x30(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq %rax, %rdx
callq 0x2370
movb %al, %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, 0x1f(%rsp)
jne 0x3ca8
movb $0x1, %al
movb %al, 0x1f(%rsp)
jmp 0x3ca8
movb 0x1f(%rsp), %al
testb $0x1, %al
jne 0x3cb2
jmp 0x3cb4
jmp 0x3cd3
leaq 0x45f1(%rip), %rdi      # 0x82ac
leaq 0x1456(%rip), %rsi      # 0x5118
movl $0x3a8, %edx            # imm = 0x3A8
leaq 0x4648(%rip), %rcx      # 0x8316
callq 0x1090
movq 0x30(%rsp), %rdi
callq 0x2360
testb $0x1, %al
jne 0x3ce3
jmp 0x3d16
movq 0x30(%rsp), %rdi
movq 0x88(%rsp), %rsi
callq 0x23a0
movq 0x30(%rsp), %rdi
movq %rax, %rsi
movq %rdi, %rdx
addq $0x20, %rdx
callq 0x2370
movb %al, %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, 0xf(%rsp)
jne 0x3d1e
movb $0x1, %al
movb %al, 0xf(%rsp)
jmp 0x3d1e
movb 0xf(%rsp), %al
testb $0x1, %al
jne 0x3d28
jmp 0x3d2a
jmp 0x3d49
leaq 0x48f5(%rip), %rdi      # 0x8626
leaq 0x13e0(%rip), %rsi      # 0x5118
movl $0x3aa, %edx            # imm = 0x3AA
leaq 0x45d2(%rip), %rcx      # 0x8316
callq 0x1090
movq 0x30(%rsp), %rdi
movq 0x88(%rsp), %rsi
callq 0x23a0
movq 0x30(%rsp), %rdi
movq %rax, %rsi
callq 0x3770
movq %rax, 0x78(%rsp)
movq %rdx, 0x80(%rsp)
cmpq $-0x1, 0x78(%rsp)
je 0x3dc9
movq 0x30(%rsp), %rsi
movq 0x48(%rsi), %rdx
movq 0x78(%rsp), %rax
shlq $0x3, %rax
addq %rax, %rdx
movq 0x48(%rsi), %rcx
movq 0x38(%rsi), %rax
shlq $0x3, %rax
addq %rax, %rcx
leaq 0x60(%rsp), %rdi
xorl %r8d, %r8d
callq 0x4440
movq 0x20(%rsp), %rdi
movb $0x0, 0x5f(%rsp)
leaq 0x60(%rsp), %rsi
leaq 0x5f(%rsp), %rdx
callq 0x44a0
jmp 0x3e01
movq 0x30(%rsp), %rsi
movq 0x88(%rsp), %rdx
movq 0x80(%rsp), %rcx
leaq 0x40(%rsp), %rdi
callq 0x3e70
movq 0x20(%rsp), %rdi
movb $0x1, 0x3f(%rsp)
leaq 0x40(%rsp), %rsi
leaq 0x3f(%rsp), %rdx
callq 0x44a0
movq 0x28(%rsp), %rax
addq $0x98, %rsp
retq
nop