// File: attractivechaos[P]udb2/unordered_dense/./unordered_dense.h
// Function: std::pair<__gnu_cxx::__normal_iterator<std::pair<unsigned int, unsigned int>*, std::vector<std::pair<unsigned int, unsigned int>, std::allocator<std::pair<unsigned int, unsigned int>>>>, bool> ankerl::unordered_dense::v4_1_2::detail::table<unsigned int, unsigned int, Hash32, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int, unsigned int>>, ankerl::unordered_dense::v4_1_2::bucket_type::standard, false>::do_try_emplace<unsigned int>(unsigned int&&)
auto do_try_emplace(K&& key, Args&&... args) -> std::pair<iterator, bool> {
        if (ANKERL_UNORDERED_DENSE_UNLIKELY(is_full())) {
            increase_size();
        }

        auto hash = mixed_hash(key);
        auto dist_and_fingerprint = dist_and_fingerprint_from_hash(hash);
        auto bucket_idx = bucket_idx_from_hash(hash);

        while (true) {
            auto* bucket = &at(m_buckets, bucket_idx);
            if (dist_and_fingerprint == bucket->m_dist_and_fingerprint) {
                if (m_equal(key, get_key(m_values[bucket->m_value_idx]))) {
                    return {begin() + static_cast<difference_type>(bucket->m_value_idx), false};
                }
            } else if (dist_and_fingerprint > bucket->m_dist_and_fingerprint) {
                return do_place_element(dist_and_fingerprint, bucket_idx, std::forward<K>(key), std::forward<Args>(args)...);
            }
            dist_and_fingerprint = dist_inc(dist_and_fingerprint);
            bucket_idx = next(bucket_idx);
        }
    }

// Assembly:
subq $0x78, %rsp
movq %rdi, 0x60(%rsp)
movq %rsi, 0x58(%rsp)
movq 0x60(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0x2f30
testb $0x1, %al
jne 0x2db3
jmp 0x2dbd
movq 0x10(%rsp), %rdi
callq 0x2f60
movq 0x10(%rsp), %rdi
movq 0x58(%rsp), %rsi
callq 0x2a30
movq 0x10(%rsp), %rdi
movq %rax, 0x50(%rsp)
movq 0x50(%rsp), %rsi
callq 0x2a60
movq 0x10(%rsp), %rdi
movl %eax, 0x4c(%rsp)
movq 0x50(%rsp), %rsi
callq 0x2a80
movl %eax, 0x48(%rsp)
movq 0x10(%rsp), %rax
movq 0x18(%rax), %rdi
movl 0x48(%rsp), %eax
movl %eax, %esi
callq 0x2aa0
movq %rax, 0x40(%rsp)
movl 0x4c(%rsp), %eax
movq 0x40(%rsp), %rcx
cmpl (%rcx), %eax
jne 0x2eae
movq 0x10(%rsp), %rdi
movq %rdi, %rax
addq $0x35, %rax
movq %rax, (%rsp)
movq 0x58(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x40(%rsp), %rax
movl 0x4(%rax), %eax
movl %eax, %esi
callq 0x28b0
movq %rax, %rdi
callq 0x28a0
movq (%rsp), %rdi
movq 0x8(%rsp), %rsi
movq %rax, %rdx
callq 0x2fc0
testb $0x1, %al
jne 0x2e69
jmp 0x2eac
movq 0x10(%rsp), %rdi
callq 0x2ff0
movq %rax, 0x30(%rsp)
movq 0x40(%rsp), %rax
movl 0x4(%rax), %eax
movl %eax, %esi
leaq 0x30(%rsp), %rdi
callq 0x3020
movq %rax, 0x38(%rsp)
movb $0x0, 0x2f(%rsp)
leaq 0x68(%rsp), %rdi
leaq 0x38(%rsp), %rsi
leaq 0x2f(%rsp), %rdx
callq 0x3060
jmp 0x2f15
jmp 0x2ef1
movl 0x4c(%rsp), %eax
movq 0x40(%rsp), %rcx
cmpl (%rcx), %eax
jbe 0x2eef
movq 0x10(%rsp), %rdi
movl 0x4c(%rsp), %esi
movl 0x48(%rsp), %edx
movq 0x58(%rsp), %rcx
callq 0x3090
movb %dl, 0x20(%rsp)
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x68(%rsp)
movb 0x20(%rsp), %al
movb %al, 0x70(%rsp)
jmp 0x2f15
jmp 0x2ef1
movl 0x4c(%rsp), %edi
callq 0x2ac0
movq 0x10(%rsp), %rdi
movl %eax, 0x4c(%rsp)
movl 0x48(%rsp), %esi
callq 0x2ad0
movl %eax, 0x48(%rsp)
jmp 0x2df7
movq 0x68(%rsp), %rax
movb 0x70(%rsp), %dl
addq $0x78, %rsp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)