// File: attractivechaos[P]udb2/tsl_hopscotch_map/./hopscotch_hash.h
// Function: std::pair<tsl::detail_hopscotch_hash::hopscotch_hash<std::pair<unsigned int const, unsigned int>, tsl::bhopscotch_map<unsigned int, unsigned int, Hash32, std::equal_to<unsigned int>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, unsigned int>>, 62u, false, tsl::hh::power_of_two_growth_policy<2ul>>::KeySelect, tsl::bhopscotch_map<unsigned int, unsigned int, Hash32, std::equal_to<unsigned int>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, unsigned int>>, 62u, false, tsl::hh::power_of_two_growth_policy<2ul>>::ValueSelect, Hash32, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, unsigned int>>, 62u, false, tsl::hh::power_of_two_growth_policy<2ul>, std::map<unsigned int, unsigned int, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, unsigned int>>>>::hopscotch_iterator<false>, bool> tsl::detail_hopscotch_hash::hopscotch_hash<std::pair<unsigned int const, unsigned int>, tsl::bhopscotch_map<unsigned int, unsigned int, Hash32, std::equal_to<unsigned int>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, unsigned int>>, 62u, false, tsl::hh::power_of_two_growth_policy<2ul>>::KeySelect, tsl::bhopscotch_map<unsigned int, unsigned int, Hash32, std::equal_to<unsigned int>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, unsigned int>>, 62u, false, tsl::hh::power_of_two_growth_policy<2ul>>::ValueSelect, Hash32, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int const, unsigned int>>, 62u, false, tsl::hh::power_of_two_growth_policy<2ul>, std::map<unsigned int, unsigned int, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, unsigned int>>>>::insert_impl<std::pair<unsigned int const, unsigned int>>(std::pair<unsigned int const, unsigned int>&&)
std::pair<iterator, bool> insert_impl(P&& value) {
        const std::size_t hash = hash_key(KeySelect()(value));
        const std::size_t ibucket_for_hash = bucket_for_hash(hash);
        
        // Check if already presents
        auto it_find = find_impl(KeySelect()(value), hash, m_buckets + ibucket_for_hash);
        if(it_find != end()) {
            return std::make_pair(it_find, false);
        }
        
        
        return insert_value(ibucket_for_hash, hash, std::forward<P>(value));
    }

// Assembly:
subq $0x88, %rsp
movq %rdi, 0x8(%rsp)
movq %rdi, 0x10(%rsp)
movq %rsi, 0x80(%rsp)
movq %rdx, 0x78(%rsp)
movq 0x80(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x78(%rsp), %rsi
leaq 0x6f(%rsp), %rdi
callq 0x4790
movq 0x18(%rsp), %rdi
movq %rax, %rsi
callq 0x4760
movq 0x18(%rsp), %rdi
movq %rax, 0x70(%rsp)
movq 0x70(%rsp), %rsi
callq 0x47a0
movq %rax, 0x60(%rsp)
movq 0x78(%rsp), %rsi
leaq 0x47(%rsp), %rdi
callq 0x4790
movq 0x18(%rsp), %rsi
movq %rax, %rdx
movq 0x70(%rsp), %rcx
movq 0x50(%rsi), %r8
movq 0x60(%rsp), %rax
shlq $0x4, %rax
addq %rax, %r8
leaq 0x48(%rsp), %rdi
callq 0x47d0
movq 0x18(%rsp), %rsi
leaq 0x28(%rsp), %rdi
callq 0x4950
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x4920
testb $0x1, %al
jne 0x46ea
jmp 0x4705
movq 0x8(%rsp), %rdi
movb $0x0, 0x27(%rsp)
leaq 0x48(%rsp), %rsi
leaq 0x27(%rsp), %rdx
callq 0x49d0
jmp 0x4723
movq 0x18(%rsp), %rsi
movq 0x8(%rsp), %rdi
movq 0x60(%rsp), %rdx
movq 0x70(%rsp), %rcx
movq 0x78(%rsp), %r8
callq 0x4a00
movq 0x10(%rsp), %rax
addq $0x88, %rsp
retq