// File: attractivechaos[P]udb2/tsl_hopscotch_map/./hopscotch_hash.h
// Function: 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::value_type const* 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>>>>::find_value_impl<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>>::ValueSelect, (void*)0>(unsigned int const&, unsigned long, tsl::detail_hopscotch_hash::hopscotch_bucket<std::pair<unsigned int const, unsigned int>, 62u, false> const*) const
const typename U::value_type* find_value_impl(const K& key, std::size_t hash, 
                                                  const hopscotch_bucket* bucket_for_hash) const 
    {
        const hopscotch_bucket* bucket_found = find_in_buckets(key, hash, bucket_for_hash);
        if(bucket_found != nullptr) {
            return std::addressof(ValueSelect()(bucket_found->value()));
        }
        
        if(bucket_for_hash->has_overflow()) {
            auto it_overflow = find_in_overflow(key);
            if(it_overflow != m_overflow_elements.end()) {
                return std::addressof(ValueSelect()(*it_overflow));
            }
        }
        
        return nullptr;
    }

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x48(%rsp)
movq %rsi, 0x40(%rsp)
movq %rdx, 0x38(%rsp)
movq %rcx, 0x30(%rsp)
movq 0x48(%rsp), %rdi
movq %rdi, (%rsp)
movq 0x40(%rsp), %rsi
movq 0x38(%rsp), %rdx
movq 0x30(%rsp), %rcx
callq 0x3b60
movq %rax, 0x28(%rsp)
cmpq $0x0, 0x28(%rsp)
je 0x3ae0
movq 0x28(%rsp), %rdi
callq 0x3c40
movq %rax, %rsi
leaq 0x27(%rsp), %rdi
callq 0x3c20
movq %rax, 0x50(%rsp)
jmp 0x3b53
movq 0x30(%rsp), %rdi
callq 0x3c50
testb $0x1, %al
jne 0x3af0
jmp 0x3b4a
movq (%rsp), %rdi
movq 0x40(%rsp), %rsi
callq 0x3c70
movq (%rsp), %rdi
movq %rax, 0x18(%rsp)
addq $0x20, %rdi
callq 0x3cc0
movq %rax, 0x10(%rsp)
leaq 0x18(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x3ca0
testb $0x1, %al
jne 0x3b2a
jmp 0x3b48
leaq 0x18(%rsp), %rdi
callq 0x3cf0
movq %rax, %rsi
leaq 0xf(%rsp), %rdi
callq 0x3c20
movq %rax, 0x50(%rsp)
jmp 0x3b53
jmp 0x3b4a
movq $0x0, 0x50(%rsp)
movq 0x50(%rsp), %rax
addq $0x58, %rsp
retq
nopl (%rax)