// File: 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
subq $0xb0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0xa0(%rbp)
callq 0xdf50
movq -0x10(%rbp), %rsi
movb $0x40, -0x29(%rbp)
leaq -0x28(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x12e70
leaq -0x28(%rbp), %rdi
callq 0x10f40
xorb $-0x1, %al
testb $0x1, %al
jne 0x10909
jmp 0x1090b
jmp 0x1092a
leaq 0x3f28(%rip), %rdi      # 0x1483a
leaq 0x3f30(%rip), %rsi      # 0x14849
movl $0x11, %edx
leaq 0x3f34(%rip), %rcx      # 0x14859
callq 0x5270
xorl %eax, %eax
movl %eax, %esi
leaq -0x28(%rbp), %rdi
callq 0x10f80
movq %rax, %rsi
leaq -0x48(%rbp), %rdi
callq 0x13150
jmp 0x10945
leaq -0x48(%rbp), %rdi
callq 0x10f40
xorb $-0x1, %al
testb $0x1, %al
jne 0x10956
jmp 0x10958
jmp 0x10988
leaq 0x3f34(%rip), %rdi      # 0x14893
leaq 0x3ee3(%rip), %rsi      # 0x14849
movl $0x15, %edx
leaq 0x3ee7(%rip), %rcx      # 0x14859
callq 0x5270
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x10c0d
xorl %eax, %eax
movl %eax, %esi
leaq -0x48(%rbp), %rdi
callq 0x10f80
movq %rax, %rsi
movb $0x23, -0x71(%rbp)
leaq -0x70(%rbp), %rdi
leaq -0x71(%rbp), %rdx
callq 0x12e70
jmp 0x109ab
leaq -0x70(%rbp), %rdi
callq 0xae30
cmpq $0x2, %rax
jne 0x109bc
jmp 0x109ec
leaq 0x3ee1(%rip), %rdi      # 0x148a4
leaq 0x3e7f(%rip), %rsi      # 0x14849
movl $0x19, %edx
leaq 0x3e83(%rip), %rcx      # 0x14859
callq 0x5270
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x10c04
xorl %eax, %eax
movl %eax, %esi
leaq -0x70(%rbp), %rdi
callq 0x10f80
movq -0xa0(%rbp), %rdi
movq %rax, %rsi
addq $0x30, %rdi
callq 0x5040
jmp 0x10a0e
leaq -0x70(%rbp), %rdi
movl $0x1, %esi
callq 0x10f80
movq %rax, %rsi
movb $0x2f, -0x91(%rbp)
leaq -0x90(%rbp), %rdi
leaq -0x91(%rbp), %rdx
callq 0x12e70
jmp 0x10a3b
leaq -0x90(%rbp), %rdi
callq 0x10f40
xorb $-0x1, %al
testb $0x1, %al
jne 0x10a4f
jmp 0x10a51
jmp 0x10a81
leaq 0x3e60(%rip), %rdi      # 0x148b8
leaq 0x3dea(%rip), %rsi      # 0x14849
movl $0x1f, %edx
leaq 0x3dee(%rip), %rcx      # 0x14859
callq 0x5270
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x10bfb
xorl %eax, %eax
movl %eax, %esi
leaq -0x90(%rbp), %rdi
callq 0x10f80
movq -0xa0(%rbp), %rdi
movq %rax, %rsi
addq $0x10, %rdi
callq 0x5040
jmp 0x10aa6
movq -0xa0(%rbp), %rax
movl $0x1, (%rax)
leaq -0x90(%rbp), %rdi
callq 0xae30
cmpq $0x2, %rax
jne 0x10b55
leaq -0x90(%rbp), %rdi
movl $0x1, %esi
callq 0x10f80
movq %rax, %rdi
callq 0x133e0
movb %al, -0xa1(%rbp)
jmp 0x10aea
movb -0xa1(%rbp), %al
testb $0x1, %al
jne 0x10af6
jmp 0x10b55
leaq -0x90(%rbp), %rdi
movl $0x1, %esi
callq 0x10f80
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0xa390
movl %eax, -0xa8(%rbp)
jmp 0x10b20
movq -0xa0(%rbp), %rax
movl -0xa8(%rbp), %ecx
movl %ecx, 0x4(%rax)
movl $0x2, (%rax)
jmp 0x10b55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x90(%rbp), %rdi
callq 0xb5f0
jmp 0x10bfb
leaq -0x48(%rbp), %rdi
callq 0xae30
cmpq $0x1, %rax
jbe 0x10bcb
leaq -0x48(%rbp), %rdi
movl $0x1, %esi
callq 0x10f80
movq %rax, %rdi
callq 0x133e0
movb %al, -0xa9(%rbp)
jmp 0x10b82
movb -0xa9(%rbp), %al
testb $0x1, %al
jne 0x10b8e
jmp 0x10bcb
leaq -0x48(%rbp), %rdi
movl $0x1, %esi
callq 0x10f80
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0xa390
movl %eax, -0xb0(%rbp)
jmp 0x10bb5
movq -0xa0(%rbp), %rax
movl -0xb0(%rbp), %ecx
movl %ecx, 0x8(%rax)
movl $0x3, (%rax)
leaq -0x90(%rbp), %rdi
callq 0xb5f0
leaq -0x70(%rbp), %rdi
callq 0xb5f0
leaq -0x48(%rbp), %rdi
callq 0xb5f0
leaq -0x28(%rbp), %rdi
callq 0xb5f0
addq $0xb0, %rsp
popq %rbp
retq
leaq -0x70(%rbp), %rdi
callq 0xb5f0
leaq -0x48(%rbp), %rdi
callq 0xb5f0
leaq -0x28(%rbp), %rdi
callq 0xb5f0
movq -0x50(%rbp), %rdi
callq 0x5690
nop