// File: /workspace/github_cpp_makefile_star2_O3/BGI-Qingdao[P]ExtractNGSReads/utils/fastq.cpp
// Function: BGIQD::FASTQ::stLFRHeader::Init(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
void stLFRHeader::Init( const std::string & line ) 
        {
            Reset() ;

            auto items = BGIQD::STRING::split(line ,'@');

            assert(!items.empty());

            auto items_1 = BGIQD::STRING::split(items[0]);

            assert(!items_1.empty());

            auto items_2 = BGIQD::STRING::split(items_1[0],'#');

            assert(items_2.size() == 2);

            readName = items_2[0] ;

            auto items_3 = BGIQD::STRING::split(items_2[1] , '/');

            assert( !items_3.empty());

            barcode_str = items_3[0] ;

            type = readName_barcodeStr ;

            if( items_3.size() == 2 && BGIQD::STRING::IsNum(items_3[1]) )
            {
                readIndex = std::stoi(items_3[1]);
                type = readName_barcodeStr_index ;
            }

            if( items_1.size() >1 && BGIQD::STRING::IsNum(items_1[1]) )
            {
                barcode_num = std::stoi(items_1[1]);
                type = readName_barcodeStr_index_barcodeNum ;
            }
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rsi, %r14
movq %rdi, %rbx
callq 0x79e4
leaq -0x58(%rbp), %rdx
movb $0x40, (%rdx)
leaq -0x90(%rbp), %r15
movq %r15, %rdi
movq %r14, %rsi
callq 0x9db4
movq (%r15), %rsi
cmpq 0x8(%r15), %rsi
je 0x8798
leaq -0x58(%rbp), %rdi
callq 0xa008
movq -0x58(%rbp), %rsi
cmpq -0x50(%rbp), %rsi
je 0x87b7
leaq -0x40(%rbp), %rdx
movb $0x23, (%rdx)
leaq -0x78(%rbp), %rdi
callq 0x9db4
movq -0x78(%rbp), %rsi
movq -0x70(%rbp), %rax
subq %rsi, %rax
cmpq $0x40, %rax
jne 0x87d6
leaq 0x30(%rbx), %rdi
callq 0x4160
movq -0x78(%rbp), %rsi
addq $0x20, %rsi
leaq -0x60(%rbp), %rdx
movb $0x2f, (%rdx)
leaq -0x40(%rbp), %rdi
callq 0x9db4
movq -0x40(%rbp), %rsi
cmpq -0x38(%rbp), %rsi
je 0x87f5
leaq 0x10(%rbx), %rdi
callq 0x4160
movl $0x1, (%rbx)
movq -0x40(%rbp), %rdi
movq -0x38(%rbp), %rax
subq %rdi, %rax
cmpq $0x40, %rax
jne 0x86e5
addq $0x20, %rdi
callq 0xa1af
testb %al, %al
je 0x86e5
movq -0x40(%rbp), %rax
movq 0x20(%rax), %r15
callq 0x4050
movq %rax, %r14
movl (%rax), %r13d
movl $0x0, (%rax)
leaq -0x60(%rbp), %r12
movq %r15, %rdi
movq %r12, %rsi
movl $0xa, %edx
callq 0x4350
cmpq %r15, (%r12)
je 0x8814
movslq %eax, %rcx
cmpq %rax, %rcx
jne 0x882c
movl (%r14), %ecx
cmpl $0x22, %ecx
je 0x882c
testl %ecx, %ecx
jne 0x86dc
movl %r13d, (%r14)
movl %eax, 0x4(%rbx)
movl $0x2, (%rbx)
movq -0x58(%rbp), %rdi
movq -0x50(%rbp), %rax
subq %rdi, %rax
cmpq $0x21, %rax
jb 0x8762
addq $0x20, %rdi
callq 0xa1af
testb %al, %al
je 0x8762
movq -0x58(%rbp), %rax
movq 0x20(%rax), %r15
callq 0x4050
movq %rax, %r14
movl (%rax), %r13d
movl $0x0, (%rax)
leaq -0x60(%rbp), %r12
movq %r15, %rdi
movq %r12, %rsi
movl $0xa, %edx
callq 0x4350
cmpq %r15, (%r12)
je 0x8820
movslq %eax, %rcx
cmpq %rax, %rcx
jne 0x8838
movl (%r14), %ecx
cmpl $0x22, %ecx
je 0x8838
testl %ecx, %ecx
jne 0x8759
movl %r13d, (%r14)
movl %eax, 0x8(%rbx)
movl $0x3, (%rbx)
leaq -0x40(%rbp), %rdi
callq 0x717e
leaq -0x78(%rbp), %rdi
callq 0x717e
leaq -0x58(%rbp), %rdi
callq 0x717e
leaq -0x90(%rbp), %rdi
callq 0x717e
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x306b(%rip), %rdi      # 0xb80a
leaq 0x3073(%rip), %rsi      # 0xb819
leaq 0x307c(%rip), %rcx      # 0xb829
movl $0x11, %edx
callq 0x4190
leaq 0x30a5(%rip), %rdi      # 0xb863
leaq 0x3054(%rip), %rsi      # 0xb819
leaq 0x305d(%rip), %rcx      # 0xb829
movl $0x15, %edx
callq 0x4190
leaq 0x3097(%rip), %rdi      # 0xb874
leaq 0x3035(%rip), %rsi      # 0xb819
leaq 0x303e(%rip), %rcx      # 0xb829
movl $0x19, %edx
callq 0x4190
leaq 0x308c(%rip), %rdi      # 0xb888
leaq 0x3016(%rip), %rsi      # 0xb819
leaq 0x301f(%rip), %rcx      # 0xb829
movl $0x1f, %edx
callq 0x4190
leaq 0x2acc(%rip), %rdi      # 0xb2e7
callq 0x4180
leaq 0x2ac0(%rip), %rdi      # 0xb2e7
callq 0x4180
leaq 0x2ab4(%rip), %rdi      # 0xb2e7
callq 0x4370
leaq 0x2aa8(%rip), %rdi      # 0xb2e7
callq 0x4370
jmp 0x8846
movq %rax, %rbx
cmpl $0x0, (%r14)
jne 0x8868
movl %r13d, (%r14)
jmp 0x8868
jmp 0x8856
movq %rax, %rbx
jmp 0x8871
movq %rax, %rbx
jmp 0x887a
movq %rax, %rbx
jmp 0x8883
movq %rax, %rbx
leaq -0x40(%rbp), %rdi
callq 0x717e
leaq -0x78(%rbp), %rdi
callq 0x717e
leaq -0x58(%rbp), %rdi
callq 0x717e
leaq -0x90(%rbp), %rdi
callq 0x717e
movq %rbx, %rdi
callq 0x4450
nop