// File: attractivechaos[P]udb2/robin_hood/./robin_hood.h
// Function: std::pair<robin_hood::detail::Table<true, 80ul, unsigned int, unsigned int, Hash32, std::equal_to<unsigned int>>::Iter<false>, bool> robin_hood::detail::Table<true, 80ul, unsigned int, unsigned int, Hash32, std::equal_to<unsigned int>>::try_emplace_impl<unsigned int, unsigned int&>(unsigned int&&, unsigned int&)
std::pair<iterator, bool> try_emplace_impl(OtherKey&& key, Args&&... args) {
        ROBIN_HOOD_TRACE(this)
        auto idxAndState = insertKeyPrepareEmptySpot(key);
        switch (idxAndState.second) {
        case InsertionState::key_found:
            break;

        case InsertionState::new_node:
            ::new (static_cast<void*>(&mKeyVals[idxAndState.first])) Node(
                *this, std::piecewise_construct, std::forward_as_tuple(std::forward<OtherKey>(key)),
                std::forward_as_tuple(std::forward<Args>(args)...));
            break;

        case InsertionState::overwrite_node:
            mKeyVals[idxAndState.first] = Node(*this, std::piecewise_construct,
                                               std::forward_as_tuple(std::forward<OtherKey>(key)),
                                               std::forward_as_tuple(std::forward<Args>(args)...));
            break;

        case InsertionState::overflow_error:
            throwOverflowError();
            break;
        }

        return std::make_pair(iterator(mKeyVals + idxAndState.first, mInfo + idxAndState.first),
                              InsertionState::key_found != idxAndState.second);
    }

// Assembly:
subq $0xa8, %rsp
movq %rdi, 0x10(%rsp)
movq %rdi, 0x18(%rsp)
movq %rsi, 0xa0(%rsp)
movq %rdx, 0x98(%rsp)
movq %rcx, 0x90(%rsp)
movq 0xa0(%rsp), %rdi
movq %rdi, 0x20(%rsp)
movq 0x98(%rsp), %rsi
callq 0x1bd0
movl %edx, 0x78(%rsp)
movq %rax, 0x70(%rsp)
movl 0x78(%rsp), %eax
movl %eax, 0x88(%rsp)
movq 0x70(%rsp), %rax
movq %rax, 0x80(%rsp)
movl 0x88(%rsp), %eax
movq %rax, 0x28(%rsp)
subq $0x3, %rax
ja 0x1b61
movq 0x28(%rsp), %rax
leaq 0x259a(%rip), %rcx      # 0x4020
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
jmp 0x1b61
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x80(%rsp), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, 0x8(%rsp)
movq 0x98(%rsp), %rsi
leaq 0x68(%rsp), %rdi
callq 0x1f10
movq 0x90(%rsp), %rsi
leaq 0x60(%rsp), %rdi
callq 0x1f40
movq 0x8(%rsp), %rdi
movq 0x20(%rsp), %rsi
leaq 0x25da(%rip), %rdx      # 0x40c0
leaq 0x68(%rsp), %rcx
leaq 0x60(%rsp), %r8
callq 0x1f70
jmp 0x1b61
movq 0x98(%rsp), %rsi
leaq 0x50(%rsp), %rdi
callq 0x1f10
movq 0x90(%rsp), %rsi
leaq 0x48(%rsp), %rdi
callq 0x1f40
movq 0x20(%rsp), %rsi
leaq 0x58(%rsp), %rdi
leaq 0x2594(%rip), %rdx      # 0x40c0
leaq 0x50(%rsp), %rcx
leaq 0x48(%rsp), %r8
callq 0x1f70
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x80(%rsp), %rcx
movq 0x58(%rsp), %rdx
movq %rdx, (%rax,%rcx,8)
jmp 0x1b61
movq 0x20(%rsp), %rdi
callq 0x1fd0
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rsi
movq 0x80(%rsp), %rcx
shlq $0x3, %rcx
addq %rcx, %rsi
movq 0x10(%rax), %rdx
addq 0x80(%rsp), %rdx
leaq 0x38(%rsp), %rdi
callq 0x2070
movq 0x10(%rsp), %rdi
movl $0x1, %eax
cmpl 0x88(%rsp), %eax
setne %al
andb $0x1, %al
movb %al, 0x37(%rsp)
leaq 0x38(%rsp), %rsi
leaq 0x37(%rsp), %rdx
callq 0x2040
movq 0x18(%rsp), %rax
addq $0xa8, %rsp
retq
nopw %cs:(%rax,%rax)
nop