// File: soccin[P]BIC-RNAseq/tools/MergeFusion/StandardFusion.cpp
// Function: operator<<(std::ostream&, StandardFusion const&)
ostream& operator<<(ostream &output, const StandardFusion& my_fusion)
{
    output << CALLER_TYPE_STRING[my_fusion.caller_id] << "\t" \
    << my_fusion.gene1 << "\t" \
    << my_fusion.gene2 << "\t" \
    << my_fusion.chr1 << "\t" \
    << my_fusion.strand1 << "\t" \
    << my_fusion.breakpoint1 << "\t" \
    << my_fusion.chr2 << "\t" \
    << my_fusion.strand2 << "\t" \
    << my_fusion.breakpoint2 << "\t";
    if(my_fusion.breakpoint_coverage >= 0)
        output << my_fusion.breakpoint_coverage << "\t";
    else
        output << "NA" << "\t";
    if(my_fusion.spanning_coverage >= 0)
        output << my_fusion.spanning_coverage << "\t";
    else
        output << "NA" << "\t";
    if(my_fusion.total_coverage >= 0)
        output << my_fusion.total_coverage << "\t";
    else
        output << "NA" << "\t";
    if(my_fusion.start1 >= 0)
        output << my_fusion.start1 << "\t";
    else
        output << "NA" << "\t";
    if(my_fusion.end1 >= 0)
        output << my_fusion.end1 << "\t";
    else
        output << "NA" << "\t";
    if(my_fusion.start2 >= 0)
        output << my_fusion.start2 << "\t";
    else
        output << "NA" << "\t";
    if(my_fusion.end2 >= 0)
        output << my_fusion.end2 << "\t";
    else
        output << "NA" << "\t";
    output << my_fusion.transcript1 << "\t" \
    << my_fusion.transcript2 << "\t" \
    << my_fusion.info;
    return output;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, %ecx
leaq 0xb68d(%rip), %rax      # 0x1e3f0
movq (%rax,%rcx,8), %rsi
callq 0x3270
movq %rax, %rdi
leaq 0x2896(%rip), %rsi      # 0x1560c
callq 0x3270
movq %rax, %rdi
movq -0x10(%rbp), %rsi
addq $0xb0, %rsi
callq 0x3260
movq %rax, %rdi
leaq 0x2874(%rip), %rsi      # 0x1560c
callq 0x3270
movq %rax, %rdi
movq -0x10(%rbp), %rsi
addq $0xd0, %rsi
callq 0x3260
movq %rax, %rdi
leaq 0x2852(%rip), %rsi      # 0x1560c
callq 0x3270
movq %rax, %rdi
movq -0x10(%rbp), %rsi
addq $0x8, %rsi
callq 0x3260
movq %rax, %rdi
leaq 0x2833(%rip), %rsi      # 0x1560c
callq 0x3270
movq %rax, %rdi
movq -0x10(%rbp), %rsi
addq $0x60, %rsi
callq 0x3260
movq %rax, %rdi
leaq 0x2814(%rip), %rsi      # 0x1560c
callq 0x3270
movq %rax, %rdi
movq -0x10(%rbp), %rax
movl 0x58(%rax), %esi
callq 0x3460
movq %rax, %rdi
leaq 0x27f6(%rip), %rsi      # 0x1560c
callq 0x3270
movq %rax, %rdi
movq -0x10(%rbp), %rsi
addq $0x28, %rsi
callq 0x3260
movq %rax, %rdi
leaq 0x27d7(%rip), %rsi      # 0x1560c
callq 0x3270
movq %rax, %rdi
movq -0x10(%rbp), %rsi
addq $0x80, %rsi
callq 0x3260
movq %rax, %rdi
leaq 0x27b5(%rip), %rsi      # 0x1560c
callq 0x3270
movq %rax, %rdi
movq -0x10(%rbp), %rax
movl 0x5c(%rax), %esi
callq 0x3460
movq %rax, %rdi
leaq 0x2797(%rip), %rsi      # 0x1560c
callq 0x3270
movq -0x10(%rbp), %rax
cmpl $0x0, 0xa8(%rax)
jl 0x12eab
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0xa8(%rax), %esi
callq 0x3460
movq %rax, %rdi
leaq 0x2768(%rip), %rsi      # 0x1560c
callq 0x3270
jmp 0x12eca
movq -0x8(%rbp), %rdi
leaq 0x2713(%rip), %rsi      # 0x155c9
callq 0x3270
movq %rax, %rdi
leaq 0x2747(%rip), %rsi      # 0x1560c
callq 0x3270
movq -0x10(%rbp), %rax
cmpl $0x0, 0xa4(%rax)
jl 0x12efb
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0xa4(%rax), %esi
callq 0x3460
movq %rax, %rdi
leaq 0x2718(%rip), %rsi      # 0x1560c
callq 0x3270
jmp 0x12f1a
movq -0x8(%rbp), %rdi
leaq 0x26c3(%rip), %rsi      # 0x155c9
callq 0x3270
movq %rax, %rdi
leaq 0x26f7(%rip), %rsi      # 0x1560c
callq 0x3270
movq -0x10(%rbp), %rax
cmpl $0x0, 0xa0(%rax)
jl 0x12f4b
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0xa0(%rax), %esi
callq 0x3460
movq %rax, %rdi
leaq 0x26c8(%rip), %rsi      # 0x1560c
callq 0x3270
jmp 0x12f6a
movq -0x8(%rbp), %rdi
leaq 0x2673(%rip), %rsi      # 0x155c9
callq 0x3270
movq %rax, %rdi
leaq 0x26a7(%rip), %rsi      # 0x1560c
callq 0x3270
movq -0x10(%rbp), %rax
cmpl $0x0, 0x48(%rax)
jl 0x12f95
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x48(%rax), %esi
callq 0x3460
movq %rax, %rdi
leaq 0x267e(%rip), %rsi      # 0x1560c
callq 0x3270
jmp 0x12fb4
movq -0x8(%rbp), %rdi
leaq 0x2629(%rip), %rsi      # 0x155c9
callq 0x3270
movq %rax, %rdi
leaq 0x265d(%rip), %rsi      # 0x1560c
callq 0x3270
movq -0x10(%rbp), %rax
cmpl $0x0, 0x50(%rax)
jl 0x12fdf
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x50(%rax), %esi
callq 0x3460
movq %rax, %rdi
leaq 0x2634(%rip), %rsi      # 0x1560c
callq 0x3270
jmp 0x12ffe
movq -0x8(%rbp), %rdi
leaq 0x25df(%rip), %rsi      # 0x155c9
callq 0x3270
movq %rax, %rdi
leaq 0x2613(%rip), %rsi      # 0x1560c
callq 0x3270
movq -0x10(%rbp), %rax
cmpl $0x0, 0x4c(%rax)
jl 0x13029
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x4c(%rax), %esi
callq 0x3460
movq %rax, %rdi
leaq 0x25ea(%rip), %rsi      # 0x1560c
callq 0x3270
jmp 0x13048
movq -0x8(%rbp), %rdi
leaq 0x2595(%rip), %rsi      # 0x155c9
callq 0x3270
movq %rax, %rdi
leaq 0x25c9(%rip), %rsi      # 0x1560c
callq 0x3270
movq -0x10(%rbp), %rax
cmpl $0x0, 0x54(%rax)
jl 0x13073
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x54(%rax), %esi
callq 0x3460
movq %rax, %rdi
leaq 0x25a0(%rip), %rsi      # 0x1560c
callq 0x3270
jmp 0x13092
movq -0x8(%rbp), %rdi
leaq 0x254b(%rip), %rsi      # 0x155c9
callq 0x3270
movq %rax, %rdi
leaq 0x257f(%rip), %rsi      # 0x1560c
callq 0x3270
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
addq $0xf0, %rsi
callq 0x3260
movq %rax, %rdi
leaq 0x255c(%rip), %rsi      # 0x1560c
callq 0x3270
movq %rax, %rdi
movq -0x10(%rbp), %rsi
addq $0x110, %rsi            # imm = 0x110
callq 0x3260
movq %rax, %rdi
leaq 0x253a(%rip), %rsi      # 0x1560c
callq 0x3270
movq %rax, %rdi
movq -0x10(%rbp), %rsi
addq $0x130, %rsi            # imm = 0x130
callq 0x3260
movq -0x8(%rbp), %rax
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)