// File: /workspace/github_cpp_makefile_star2_O1/oknenavin[P]cxon/test/../src/cxon/lang/common/node-value.hxx
// Function: std::enable_if<!std::is_void<std::map<cxon::cbor::basic_node<cxon::cbor::node_traits<std::allocator<char>>>, cxon::cbor::basic_node<cxon::cbor::node_traits<std::allocator<char>>>, std::less<cxon::cbor::basic_node<cxon::cbor::node_traits<std::allocator<char>>>>, std::allocator<std::pair<cxon::cbor::basic_node<cxon::cbor::node_traits<std::allocator<char>>> const, cxon::cbor::basic_node<cxon::cbor::node_traits<std::allocator<char>>>>>>>::value && !std::is_void<std::vector<cxon::cbor::basic_node<cxon::cbor::node_traits<std::allocator<char>>>, std::allocator<cxon::cbor::basic_node<cxon::cbor::node_traits<std::allocator<char>>>>>>::value && !std::integral_constant<bool, false>::value, void>::type cxon::value::controller<cxon::cbor::basic_node<cxon::cbor::node_traits<std::allocator<char>>>>::ndes_<std::map<cxon::cbor::basic_node<cxon::cbor::node_traits<std::allocator<char>>>, cxon::cbor::basic_node<cxon::cbor::node_traits<std::allocator<char>>>, std::less<cxon::cbor::basic_node<cxon::cbor::node_traits<std::allocator<char>>>>, std::allocator<std::pair<cxon::cbor::basic_node<cxon::cbor::node_traits<std::allocator<char>>> const, cxon::cbor::basic_node<cxon::cbor::node_traits<std::allocator<char>>>>>>, std::vector<cxon::cbor::basic_node<cxon::cbor::node_traits<std::allocator<char>>>, std::allocator<cxon::cbor::basic_node<cxon::cbor::node_traits<std::allocator<char>>>>>>::swap<std::map<cxon::cbor::basic_node<cxon::cbor::node_traits<std::allocator<char>>>, cxon::cbor::basic_node<cxon::cbor::node_traits<std::allocator<char>>>, std::less<cxon::cbor::basic_node<cxon::cbor::node_traits<std::allocator<char>>>>, std::allocator<std::pair<cxon::cbor::basic_node<cxon::cbor::node_traits<std::allocator<char>>> const, cxon::cbor::basic_node<cxon::cbor::node_traits<std::allocator<char>>>>>>, std::vector<cxon::cbor::basic_node<cxon::cbor::node_traits<std::allocator<char>>>, std::allocator<cxon::cbor::basic_node<cxon::cbor::node_traits<std::allocator<char>>>>>>(cxon::cbor::basic_node<cxon::cbor::node_traits<std::allocator<char>>>&, cxon::cbor::basic_node<cxon::cbor::node_traits<std::allocator<char>>>&)
static auto swap(N& f, N& s) -> enable_if_t<!std::is_void<U>::value && !std::is_void<V>::value && !propagate_on_container_swap::value> {
                                    auto t = std::move(get<U>(f));
                                    destruct<U>(f); construct<V>(f, std::move(get<V>(s)));
                                    destruct<V>(s); construct<U>(s, std::move(t));
                                    swap_(f.kind_, s.kind_);
                                }

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rsi, %rbx
movq %rdi, %r14
movq (%rdi), %rax
leaq 0x10(%rsp), %r15
movq 0x10(%rax), %rcx
testq %rcx, %rcx
je 0x3f6fb
leaq 0x8(%rax), %rdx
movl 0x8(%rax), %esi
movl %esi, 0x10(%rsp)
movq %rcx, 0x18(%rsp)
movq 0x18(%rax), %rsi
movq %rsi, 0x20(%rsp)
movq 0x20(%rax), %rsi
movq %rsi, 0x28(%rsp)
movq %r15, 0x8(%rcx)
leaq 0x28(%rax), %rcx
movq 0x28(%rax), %rsi
movq %rsi, 0x30(%rsp)
movq $0x0, 0x10(%rax)
movq %rdx, 0x18(%rax)
movq %rdx, 0x20(%rax)
jmp 0x3f717
leaq 0x30(%rsp), %rcx
movl $0x0, -0x20(%rcx)
movq $0x0, -0x18(%rcx)
movq %r15, -0x10(%rcx)
movq %r15, -0x8(%rcx)
movq $0x0, (%rcx)
movq (%r14), %rdi
callq 0x3637c
movq (%r14), %rdi
callq 0x4220
movq (%rbx), %r12
movl $0x18, %edi
callq 0x4230
movq %rax, (%r14)
movq (%r12), %rcx
movq %rcx, (%rax)
movq 0x8(%r12), %rcx
movq %rcx, 0x8(%rax)
movq 0x10(%r12), %rcx
movq %rcx, 0x10(%rax)
xorps %xmm0, %xmm0
movups %xmm0, (%r12)
movq $0x0, 0x10(%r12)
movq (%rbx), %rdi
callq 0x35428
movq (%rbx), %rdi
callq 0x4220
movl $0x30, %edi
callq 0x4230
movq %rax, (%rbx)
leaq 0x8(%rax), %rdx
movq 0x18(%rsp), %rsi
testq %rsi, %rsi
je 0x3f7cf
leaq 0x30(%rsp), %rcx
movl -0x20(%rcx), %edi
movl %edi, 0x8(%rax)
movq %rsi, 0x10(%rax)
movq -0x10(%rcx), %rdi
movq %rdi, 0x18(%rax)
movq -0x8(%rcx), %rdi
movq %rdi, 0x20(%rax)
movq %rdx, 0x8(%rsi)
movq (%rcx), %rdx
movq %rdx, 0x28(%rax)
movq $0x0, -0x18(%rcx)
movq %r15, -0x10(%rcx)
movq %r15, -0x8(%rcx)
jmp 0x3f7ed
movl $0x0, 0x8(%rax)
movq $0x0, 0x10(%rax)
movq %rdx, 0x18(%rax)
movq %rdx, 0x20(%rax)
addq $0x28, %rax
movq %rax, %rcx
movq $0x0, (%rcx)
movl 0x20(%r14), %eax
movl 0x20(%rbx), %ecx
movl %ecx, 0x20(%r14)
movl %eax, 0x20(%rbx)
leaq 0x8(%rsp), %rdi
callq 0x3637c
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x3637c
movq %rbx, %rdi
callq 0x43b0
nop