// File: BGI-Qingdao[P]ExtractNGSReads/./utils/fastq.h
// Function: BGIQD::FASTQ::FastqReader<BGIQD::FASTQ::Fastq<BGIQD::FASTQ::stLFRHeader>>::LoadAllFastq(std::istream&, std::vector<BGIQD::FASTQ::Fastq<BGIQD::FASTQ::stLFRHeader>, std::allocator<BGIQD::FASTQ::Fastq<BGIQD::FASTQ::stLFRHeader>>>&)
static void LoadAllFastq( 
                        std::istream & ist 
                        , std::vector<Fastq> & buffer )
                {
                    std::string line ;
                    Fastq fq;
                    fq.Reset();
                    long index = 0 ;
                    while ( ! std::getline(ist,line).eof() )
                    {
                        index ++ ;
                        if( index % 4 == 1 )
                        {
                            assert(IsHead(line) && "fastq format invalid!!!");
                            if(fq.Is_Setted())
                            {
                                buffer.push_back(fq);
                            }
                            fq.Reset();
                            fq.AddHead(line);
                        }
                        else if ( index % 4 == 2 )
                        {
                            fq.AddSeq(line);
                        }
                        else if ( index % 4 == 3 )
                        {
                            assert( Is_3(line) && "fastq format invalid!!!" );
                            fq.Add3(line);
                        }
                        else 
                        {
                            fq.AddQuality(line);
                        }
                    }
                    if(fq.Is_Setted())
                    {
                        buffer.push_back(fq);
                    }
                    fq.Reset();
                }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x5520
leaq -0xc8(%rbp), %rdi
callq 0xdaa0
jmp 0x90ca
leaq -0xc8(%rbp), %rdi
callq 0xdaf0
jmp 0x90d8
movq $0x0, -0xe0(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x50b0
movq %rax, -0xe8(%rbp)
jmp 0x90f9
movq -0xe8(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x56f0
movb %al, -0xe9(%rbp)
jmp 0x9117
movb -0xe9(%rbp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x9128
jmp 0x9318
movq -0xe0(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xe0(%rbp)
movq -0xe0(%rbp), %rax
movl $0x4, %ecx
cqto
idivq %rcx
cmpq $0x1, %rdx
jne 0x9245
leaq -0x30(%rbp), %rdi
callq 0xdb50
movb %al, -0xea(%rbp)
jmp 0x9166
movb -0xea(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0xeb(%rbp)
jne 0x917b
jmp 0x9185
movb $0x1, %al
movb %al, -0xeb(%rbp)
jmp 0x9185
movb -0xeb(%rbp), %al
testb $0x1, %al
jne 0x9191
jmp 0x9193
jmp 0x91ec
leaq 0xb22b(%rip), %rdi      # 0x143c5
leaq 0xb24e(%rip), %rsi      # 0x143ef
movl $0xcd, %edx
leaq 0xb252(%rip), %rcx      # 0x143ff
callq 0x5270
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
jmp 0x9378
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0xa150
jmp 0x9378
leaq -0xc8(%rbp), %rdi
callq 0xdba0
movb %al, -0xec(%rbp)
jmp 0x9200
movb -0xec(%rbp), %al
testb $0x1, %al
jne 0x920c
jmp 0x9220
movq -0x10(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0xdc30
jmp 0x921e
jmp 0x9220
leaq -0xc8(%rbp), %rdi
callq 0xdaf0
jmp 0x922e
leaq -0xc8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xdca0
jmp 0x9240
jmp 0x9313
movq -0xe0(%rbp), %rax
movl $0x4, %ecx
cqto
idivq %rcx
cmpq $0x2, %rdx
jne 0x9273
leaq -0xc8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xdce0
jmp 0x926e
jmp 0x9311
movq -0xe0(%rbp), %rax
movl $0x4, %ecx
cqto
idivq %rcx
cmpq $0x3, %rdx
jne 0x92fb
leaq -0x30(%rbp), %rdi
callq 0xdd50
movb %al, -0xed(%rbp)
jmp 0x929b
movb -0xed(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0xee(%rbp)
jne 0x92b0
jmp 0x92ba
movb $0x1, %al
movb %al, -0xee(%rbp)
jmp 0x92ba
movb -0xee(%rbp), %al
testb $0x1, %al
jne 0x92c6
jmp 0x92c8
jmp 0x92e7
leaq 0xb1ef(%rip), %rdi      # 0x144be
leaq 0xb119(%rip), %rsi      # 0x143ef
movl $0xdb, %edx
leaq 0xb11d(%rip), %rcx      # 0x143ff
callq 0x5270
leaq -0xc8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xdda0
jmp 0x92f9
jmp 0x930f
leaq -0xc8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xde10
jmp 0x930d
jmp 0x930f
jmp 0x9311
jmp 0x9313
jmp 0x90e3
leaq -0xc8(%rbp), %rdi
callq 0xdba0
movb %al, -0xef(%rbp)
jmp 0x932c
movb -0xef(%rbp), %al
testb $0x1, %al
jne 0x9338
jmp 0x934c
movq -0x10(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0xdc30
jmp 0x934a
jmp 0x934c
leaq -0xc8(%rbp), %rdi
callq 0xdaf0
jmp 0x935a
leaq -0xc8(%rbp), %rdi
callq 0xa150
leaq -0x30(%rbp), %rdi
callq 0x5250
addq $0xf0, %rsp
popq %rbp
retq
leaq -0x30(%rbp), %rdi
callq 0x5250
movq -0xd0(%rbp), %rdi
callq 0x5690
nopl (%rax)