// File: attractivechaos[P]udb2/sparsehash/./sparsehash/internal/sparsehashtable.h
// Function: google::sparse_hashtable<std::pair<unsigned int const, unsigned int>, unsigned int, Hash32, google::sparse_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::sparse_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
    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.get_iter(pos.first),
                                               table.nonempty_end()),
                                      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 $0x168, %rsp            # imm = 0x168
movq %rdi, 0x50(%rsp)
movq %rdi, 0x58(%rsp)
movq %rsi, 0x160(%rsp)
movq %rdx, 0x158(%rsp)
movq 0x160(%rsp), %rdi
movq %rdi, 0x60(%rsp)
callq 0x5ca0
testb $0x1, %al
jne 0x6bc9
jmp 0x6bfc
movq 0x60(%rsp), %rdi
movq 0x158(%rsp), %rsi
callq 0x4ab0
movq 0x60(%rsp), %rdi
movq %rax, %rsi
movq %rdi, %rdx
addq $0x20, %rdx
callq 0x5d10
movb %al, %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, 0x4f(%rsp)
jne 0x6c04
movb $0x1, %al
movb %al, 0x4f(%rsp)
jmp 0x6c04
movb 0x4f(%rsp), %al
testb $0x1, %al
jne 0x6c0e
jmp 0x6c10
jmp 0x6c2f
leaq 0x3e87(%rip), %rdi      # 0xaa9e
leaq 0x14e3(%rip), %rsi      # 0x8101
movl $0x3af, %edx            # imm = 0x3AF
leaq 0x3ed7(%rip), %rcx      # 0xab01
callq 0x10b0
movq 0x60(%rsp), %rdi
movq 0x158(%rsp), %rsi
callq 0x4ab0
movq 0x60(%rsp), %rdi
movq %rax, %rsi
callq 0x6590
movq %rax, 0x148(%rsp)
movq %rdx, 0x150(%rsp)
cmpq $-0x1, 0x148(%rsp)
je 0x6d2c
movq 0x60(%rsp), %rsi
addq $0x30, %rsi
movq 0x148(%rsp), %rdx
leaq 0xe0(%rsp), %rdi
callq 0x6750
movq 0x60(%rsp), %rsi
addq $0x30, %rsi
leaq 0xc0(%rsp), %rdi
callq 0x76b0
movq 0x60(%rsp), %rsi
leaq 0x100(%rsp), %rdi
leaq 0xe0(%rsp), %rcx
leaq 0xc0(%rsp), %rax
movq (%rcx), %rdx
movq %rdx, (%rsp)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rsp)
movq 0x10(%rcx), %rdx
movq %rdx, 0x10(%rsp)
movq 0x18(%rcx), %rcx
movq %rcx, 0x18(%rsp)
movq (%rax), %rcx
movq %rcx, 0x20(%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x28(%rsp)
movq 0x10(%rax), %rcx
movq %rcx, 0x30(%rsp)
movq 0x18(%rax), %rax
movq %rax, 0x38(%rsp)
callq 0x7720
movq 0x50(%rsp), %rdi
movb $0x0, 0xbf(%rsp)
leaq 0x100(%rsp), %rsi
leaq 0xbf(%rsp), %rdx
callq 0x7790
jmp 0x6d64
movq 0x60(%rsp), %rsi
movq 0x158(%rsp), %rdx
movq 0x150(%rsp), %rcx
leaq 0x70(%rsp), %rdi
callq 0x6df0
movq 0x50(%rsp), %rdi
movb $0x1, 0x6f(%rsp)
leaq 0x70(%rsp), %rsi
leaq 0x6f(%rsp), %rdx
callq 0x7790
movq 0x58(%rsp), %rax
addq $0x168, %rsp            # imm = 0x168
retq
nopw %cs:(%rax,%rax)
nopl (%rax,%rax)