// File: RipcordSoftware[P]lazyflatset/test/lazyflatset/./../../lazyflatset.hpp
// Function: rs::LazyFlatSet<unsigned int, std::less<unsigned int>, std::equal_to<unsigned int>, rs::LazyFlatSetQuickSort<unsigned int, std::less<unsigned int>>, std::allocator<unsigned int>, false>::merge(std::vector<unsigned int, std::allocator<unsigned int>>&, std::vector<unsigned int, std::allocator<unsigned int>>&) const
void merge(base_collection& source, base_collection& target) const {
        if (source.size() > 0) {
            Less less;
            if (target.size() == 0 || less(target.back(), source.front())) {
                target.insert(target.end(), source.cbegin(), source.cend());
            } else if (less(source.back(), target.front())) {
                target.insert(target.begin(), source.cbegin(), source.cend());
            } else {
                target.insert(target.end(), source.cbegin(), source.cend());
                std::inplace_merge(target.begin(), target.end() - source.size(), target.end(), less);
            }
        }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rdi
callq 0x7200
cmpq $0x0, %rax
jbe 0xabc4
movq -0x18(%rbp), %rdi
callq 0x7200
cmpq $0x0, %rax
je 0xa9fb
movq -0x18(%rbp), %rdi
callq 0xbbf0
movq %rax, -0xc8(%rbp)
movq -0x10(%rbp), %rdi
callq 0xbc30
movq -0xc8(%rbp), %rsi
movq %rax, %rdx
leaq -0x19(%rbp), %rdi
callq 0x7fa0
testb $0x1, %al
jne 0xa9fb
jmp 0xaa5b
movq -0x18(%rbp), %rax
movq %rax, -0xd0(%rbp)
movq -0x18(%rbp), %rdi
callq 0x4160
movq %rax, -0x30(%rbp)
leaq -0x28(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x40c0
movq -0x10(%rbp), %rdi
callq 0x5fe0
movq %rax, -0x38(%rbp)
movq -0x10(%rbp), %rdi
callq 0xbd10
movq -0xd0(%rbp), %rdi
movq %rax, -0x40(%rbp)
movq -0x28(%rbp), %rsi
movq -0x38(%rbp), %rdx
movq -0x40(%rbp), %rcx
callq 0xbc60
movq %rax, -0x48(%rbp)
jmp 0xabc2
movq -0x10(%rbp), %rdi
callq 0xbbf0
movq %rax, -0xd8(%rbp)
movq -0x18(%rbp), %rdi
callq 0xbc30
movq -0xd8(%rbp), %rsi
movq %rax, %rdx
leaq -0x19(%rbp), %rdi
callq 0x7fa0
testb $0x1, %al
jne 0xaa8d
jmp 0xaaed
movq -0x18(%rbp), %rax
movq %rax, -0xe0(%rbp)
movq -0x18(%rbp), %rdi
callq 0x4090
movq %rax, -0x58(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x40c0
movq -0x10(%rbp), %rdi
callq 0x5fe0
movq %rax, -0x60(%rbp)
movq -0x10(%rbp), %rdi
callq 0xbd10
movq -0xe0(%rbp), %rdi
movq %rax, -0x68(%rbp)
movq -0x50(%rbp), %rsi
movq -0x60(%rbp), %rdx
movq -0x68(%rbp), %rcx
callq 0xbc60
movq %rax, -0x70(%rbp)
jmp 0xabc0
movq -0x18(%rbp), %rax
movq %rax, -0xe8(%rbp)
movq -0x18(%rbp), %rdi
callq 0x4160
movq %rax, -0x80(%rbp)
leaq -0x78(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x40c0
movq -0x10(%rbp), %rdi
callq 0x5fe0
movq %rax, -0x88(%rbp)
movq -0x10(%rbp), %rdi
callq 0xbd10
movq -0xe8(%rbp), %rdi
movq %rax, -0x90(%rbp)
movq -0x78(%rbp), %rsi
movq -0x88(%rbp), %rdx
movq -0x90(%rbp), %rcx
callq 0xbc60
movq %rax, -0x98(%rbp)
movq -0x18(%rbp), %rdi
callq 0x4090
movq %rax, -0xa0(%rbp)
movq -0x18(%rbp), %rdi
callq 0x4160
movq %rax, -0xb0(%rbp)
movq -0x10(%rbp), %rdi
callq 0x7200
movq %rax, %rsi
leaq -0xb0(%rbp), %rdi
callq 0x95d0
movq %rax, -0xa8(%rbp)
movq -0x18(%rbp), %rdi
callq 0x4160
movq %rax, -0xb8(%rbp)
movq -0xa0(%rbp), %rdi
movq -0xa8(%rbp), %rsi
movq -0xb8(%rbp), %rdx
callq 0xbd40
jmp 0xabc2
jmp 0xabc4
addq $0xf0, %rsp
popq %rbp
retq
nopl (%rax)