// File: /workspace/github_cpp_makefile_star2_O3/soccin[P]BIC-RNAseq/tools/MergeFusion/Merger.cpp
// Function: Merger::sortBy(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void Merger::sortBy(string sorting_criteria)
{
    if(sorting_criteria == "CALLER")
    {
        sort(fusion_vec.begin(), fusion_vec.end(), sortByCaller);
    }
    else if(sorting_criteria == "GENOMIC")
    {
        sort(fusion_vec.begin(), fusion_vec.end(), sortByGenomicPos);
    }
    else if(sorting_criteria == "GENE")
    {
        sort(fusion_vec.begin(), fusion_vec.end(), sortByGeneSymbol);
    }
    else if(sorting_criteria == "BREAKPOINT_COVERAGE")
    {
        sort(fusion_vec.begin(), fusion_vec.end(), sortByBreakpointCoverage);
    }
    else
    {
        cerr << "[ERROR]: unrecognized sorting criteria '" << sorting_criteria << "', output won't be sorted" << endl;
        
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x7911(%rip), %rsi      # 0xc41c
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0x4bd2
leaq 0x7520(%rip), %rsi      # 0xc042
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0x4c13
leaq 0x78ea(%rip), %rsi      # 0xc423
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0x4c51
leaq 0x78d8(%rip), %rsi      # 0xc428
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0x4c8f
movq 0xc489(%rip), %r14      # 0x10ff0
leaq 0x7a55(%rip), %rsi      # 0xc5c3
movl $0x28, %edx
movq %r14, %rdi
callq 0x3250
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq %r14, %rdi
callq 0x3250
movq %rax, %rbx
leaq 0x7a58(%rip), %rsi      # 0xc5ec
movl $0x19, %edx
movq %rax, %rdi
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x31d0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x3150
movq (%r14), %rbx
movq 0x8(%r14), %r14
cmpq %r14, %rbx
je 0x4ced
movq %r14, %rax
subq %rbx, %rax
sarq $0x4, %rax
movabsq $-0x30c30c30c30c30c3, %rcx # imm = 0xCF3CF3CF3CF3CF3D
imulq %rax, %rcx
bsrq %rcx, %rdx
xorl $0x3f, %edx
addl %edx, %edx
xorq $0x7e, %rdx
leaq 0x65b9(%rip), %r15      # 0xb1c7
jmp 0x4cc7
movq (%r14), %rbx
movq 0x8(%r14), %r14
cmpq %r14, %rbx
je 0x4ced
movq %r14, %rax
subq %rbx, %rax
sarq $0x4, %rax
movabsq $-0x30c30c30c30c30c3, %rcx # imm = 0xCF3CF3CF3CF3CF3D
imulq %rax, %rcx
bsrq %rcx, %rdx
xorl $0x3f, %edx
addl %edx, %edx
xorq $0x7e, %rdx
leaq 0x6585(%rip), %r15      # 0xb1d4
jmp 0x4cc7
movq (%r14), %rbx
movq 0x8(%r14), %r14
cmpq %r14, %rbx
je 0x4ced
movq %r14, %rax
subq %rbx, %rax
sarq $0x4, %rax
movabsq $-0x30c30c30c30c30c3, %rcx # imm = 0xCF3CF3CF3CF3CF3D
imulq %rax, %rcx
bsrq %rcx, %rdx
xorl $0x3f, %edx
addl %edx, %edx
xorq $0x7e, %rdx
leaq 0x663b(%rip), %r15      # 0xb2c8
jmp 0x4cc7
movq (%r14), %rbx
movq 0x8(%r14), %r14
cmpq %r14, %rbx
je 0x4ced
movq %r14, %rax
subq %rbx, %rax
sarq $0x4, %rax
movabsq $-0x30c30c30c30c30c3, %rcx # imm = 0xCF3CF3CF3CF3CF3D
imulq %rax, %rcx
bsrq %rcx, %rdx
xorl $0x3f, %edx
addl %edx, %edx
xorq $0x7e, %rdx
leaq 0x64eb(%rip), %r15      # 0xb1b2
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rcx
callq 0x699b
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x6b11
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq