// File: /workspace/github_cpp_makefile_star2_O3/soccin[P]BIC-RNAseq/tools/MergeFusion/StandardFusion.cpp
// Function: StandardFusion::parseFusioncatcher(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void StandardFusion::parseFusioncatcher(string line) //done
{
    vector<string> parsed_item;
    vector<string> pos_parsed_item1;
    vector<string> pos_parsed_item2;
    split(line, '\t', parsed_item);
    split(parsed_item[8], ':', pos_parsed_item1);
    split(parsed_item[9], ':', pos_parsed_item2);
    chr1 = pos_parsed_item1[0];
    chr2 = pos_parsed_item2[0];
    breakpoint1 = atoi(pos_parsed_item1[1].c_str());
    breakpoint2 = atoi(pos_parsed_item2[1].c_str());
    strand1 = pos_parsed_item1[2];
    strand2 = pos_parsed_item2[2];
    gene1 = parsed_item[0];
    gene2 = parsed_item[1];
    transcript1 = "NA";
    transcript2 = "NA";
    start1 = -1;
    start2 = -1;
    end1 = -1;
    end2 = -1;
    spanning_coverage = atoi(parsed_item[4].c_str());
    breakpoint_coverage = atoi(parsed_item[5].c_str());
    total_coverage = spanning_coverage + breakpoint_coverage;
    caller_id = FUSIONCATCHER;
    
    info.append("COUNT_COMMON_MAPPING_READS="); info.append(parsed_item[3]);
    info.append(";LONGEST_ANCHOR="); info.append(parsed_item[6]);
    info.append(";FUSION_FINDING_METHOD="); info.append(parsed_item[7]);
    info.append(";GENE1_ID="); info.append(parsed_item[10]);
    info.append(";GENE2_ID="); info.append(parsed_item[11]);
    info.append(";EXON1_ID="); info.append(parsed_item[12]);
    info.append(";EXON2_ID="); info.append(parsed_item[13]);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x58, %rsp
movq %rdi, %rbx
pxor %xmm0, %xmm0
leaq -0x30(%rbp), %rdx
movdqa %xmm0, (%rdx)
xorl %eax, %eax
movq %rax, 0x10(%rdx)
movq %rax, -0x60(%rbp)
movdqa %xmm0, -0x70(%rbp)
movq %rax, -0x40(%rbp)
movdqa %xmm0, -0x50(%rbp)
movq %rsi, %rdi
movl $0x9, %esi
xorl %ecx, %ecx
callq 0xb49b
movl $0x100, %edi            # imm = 0x100
addq -0x30(%rbp), %rdi
leaq -0x70(%rbp), %rdx
movl $0x3a, %esi
xorl %ecx, %ecx
callq 0xb49b
movl $0x120, %edi            # imm = 0x120
addq -0x30(%rbp), %rdi
leaq -0x50(%rbp), %rdx
movl $0x3a, %esi
xorl %ecx, %ecx
callq 0xb49b
movq -0x70(%rbp), %rsi
leaq 0x8(%rbx), %rdi
callq 0x3130
movq -0x50(%rbp), %rsi
leaq 0x28(%rbx), %rdi
callq 0x3130
movq -0x70(%rbp), %r14
movq 0x20(%r14), %rdi
callq 0x32d0
movl %eax, 0x58(%rbx)
movq -0x50(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0x32d0
movl %eax, 0x5c(%rbx)
addq $0x40, %r14
leaq 0x60(%rbx), %rdi
movq %r14, %rsi
callq 0x3130
movq -0x50(%rbp), %rsi
addq $0x40, %rsi
leaq 0x80(%rbx), %rdi
callq 0x3130
movq -0x30(%rbp), %rsi
leaq 0xb0(%rbx), %rdi
callq 0x3130
movq -0x30(%rbp), %rsi
addq $0x20, %rsi
leaq 0xd0(%rbx), %rdi
callq 0x3130
leaq 0xf0(%rbx), %rdi
movq 0xf8(%rbx), %rdx
leaq 0x2dfe(%rip), %rcx      # 0xc612
movl $0x2, %r8d
xorl %esi, %esi
callq 0x32c0
leaq 0x110(%rbx), %rdi
movq 0x118(%rbx), %rdx
leaq 0x2ddc(%rip), %rcx      # 0xc612
movl $0x2, %r8d
xorl %esi, %esi
callq 0x32c0
pcmpeqd %xmm0, %xmm0
movdqu %xmm0, 0x48(%rbx)
movq -0x30(%rbp), %r15
movq 0x80(%r15), %rdi
callq 0x32d0
movl %eax, %r14d
movl %eax, 0xa4(%rbx)
movq 0xa0(%r15), %rdi
callq 0x32d0
movl %eax, 0xa8(%rbx)
addl %r14d, %eax
movl %eax, 0xa0(%rbx)
movl $0x2, (%rbx)
addq $0x130, %rbx            # imm = 0x130
leaq 0x3181(%rip), %rsi      # 0xca15
movq %rbx, %rdi
callq 0x33a0
movq -0x30(%rbp), %rax
movq 0x60(%rax), %rsi
movq 0x68(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq 0x317a(%rip), %rsi      # 0xca31
movq %rbx, %rdi
callq 0x33a0
movq -0x30(%rbp), %rax
movq 0xc0(%rax), %rsi
movq 0xc8(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq 0x3162(%rip), %rsi      # 0xca42
movq %rbx, %rdi
callq 0x33a0
movq -0x30(%rbp), %rax
movq 0xe0(%rax), %rsi
movq 0xe8(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq 0x3151(%rip), %rsi      # 0xca5a
movq %rbx, %rdi
callq 0x33a0
movq -0x30(%rbp), %rax
movq 0x140(%rax), %rsi
movq 0x148(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq 0x3133(%rip), %rsi      # 0xca65
movq %rbx, %rdi
callq 0x33a0
movq -0x30(%rbp), %rax
movq 0x160(%rax), %rsi
movq 0x168(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq 0x3115(%rip), %rsi      # 0xca70
movq %rbx, %rdi
callq 0x33a0
movq -0x30(%rbp), %rax
movq 0x180(%rax), %rsi
movq 0x188(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq 0x30f7(%rip), %rsi      # 0xca7b
movq %rbx, %rdi
callq 0x33a0
movq -0x30(%rbp), %rax
movq 0x1a0(%rax), %rsi
movq 0x1a8(%rax), %rdx
movq %rbx, %rdi
callq 0x30c0
leaq -0x50(%rbp), %rdi
callq 0x5864
leaq -0x70(%rbp), %rdi
callq 0x5864
leaq -0x30(%rbp), %rdi
callq 0x5864
addq $0x58, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x5864
leaq -0x70(%rbp), %rdi
callq 0x5864
leaq -0x30(%rbp), %rdi
callq 0x5864
movq %rbx, %rdi
callq 0x3340