// 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_at(std::pair<unsigned int const, unsigned int> const&, unsigned long)
iterator insert_at(const_reference obj, size_type pos) {
    if (size() >= max_size()) {
      throw std::length_error("insert overflow");
    }
    if ( test_deleted(pos) ) {      // just replace if it's been del.
      // shrug: shouldn't need to be const.
      const_iterator delpos(this, table + pos, table + num_buckets, false);
      clear_deleted(delpos);
      assert( num_deleted > 0);
      --num_deleted;                // used to be, now it isn't
    } else {
      ++num_elements;               // replacing an empty bucket
    }
    set_value(&table[pos], obj);
    return iterator(this, table + pos, table + num_buckets, false);
  }

// Assembly:
subq $0x68, %rsp
movq %rdi, 0x8(%rsp)
movq %rdi, 0x10(%rsp)
movq %rsi, 0x60(%rsp)
movq %rdx, 0x58(%rsp)
movq %rcx, 0x50(%rsp)
movq 0x60(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x2b00
movq 0x18(%rsp), %rdi
movq %rax, 0x20(%rsp)
callq 0x4730
movq %rax, %rcx
movq 0x20(%rsp), %rax
cmpq %rcx, %rax
jb 0x3f0d
movl $0x10, %edi
callq 0x1070
movq %rax, %rdi
movq %rdi, %rax
movq %rax, (%rsp)
leaq 0x4db2(%rip), %rsi      # 0x8c85
callq 0x10b0
jmp 0x3eda
movq (%rsp), %rdi
movq 0x80fb(%rip), %rsi      # 0xbfe0
movq 0x80e4(%rip), %rdx      # 0xbfd0
callq 0x1150
movq (%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x48(%rsp)
movl %eax, 0x44(%rsp)
callq 0x10a0
jmp 0x4010
movq 0x18(%rsp), %rdi
movq 0x50(%rsp), %rsi
callq 0x4050
testb $0x1, %al
jne 0x3f25
jmp 0x3fa5
movq 0x18(%rsp), %rsi
movq 0x48(%rsi), %rdx
movq 0x50(%rsp), %rax
shlq $0x3, %rax
addq %rax, %rdx
movq 0x48(%rsi), %rcx
movq 0x38(%rsi), %rax
shlq $0x3, %rax
addq %rax, %rcx
leaq 0x28(%rsp), %rdi
xorl %r8d, %r8d
callq 0x3150
movq 0x18(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x4750
movq 0x18(%rsp), %rax
cmpq $0x0, 0x28(%rax)
jbe 0x3f73
jmp 0x3f92
leaq 0x2cb9(%rip), %rdi      # 0x6c33
leaq 0x1197(%rip), %rsi      # 0x5118
movl $0x39a, %edx            # imm = 0x39A
leaq 0x4d08(%rip), %rcx      # 0x8c95
callq 0x1090
movq 0x18(%rsp), %rax
movq 0x28(%rax), %rcx
addq $-0x1, %rcx
movq %rcx, 0x28(%rax)
jmp 0x3fb6
movq 0x18(%rsp), %rax
movq 0x30(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x30(%rax)
movq 0x18(%rsp), %rdi
movq 0x48(%rdi), %rsi
movq 0x50(%rsp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq 0x58(%rsp), %rdx
callq 0x23f0
movq 0x8(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x48(%rsi), %rdx
movq 0x50(%rsp), %rax
shlq $0x3, %rax
addq %rax, %rdx
movq 0x48(%rsi), %rcx
movq 0x38(%rsi), %rax
shlq $0x3, %rax
addq %rax, %rcx
xorl %r8d, %r8d
callq 0x4440
movq 0x10(%rsp), %rax
addq $0x68, %rsp
retq
movq 0x48(%rsp), %rdi
callq 0x1160
nopw (%rax,%rax)