// File: /workspace/github_c_makefile_star2_O0/fukunagatsu[P]RIblast/fastafile_reader.cpp
// Function: FastafileReader::ReadFastafile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)
void FastafileReader::ReadFastafile(string input_file_name, string &sequence, string &name){
  ifstream fp;
  string buffer;
  fp.open(input_file_name.c_str(),ios::in);
  if (!fp){
    cout << "Error: can't open input_file:"+input_file_name+"." <<endl;
    exit(1);
  }
  getline(fp,buffer);
  name = buffer.substr(1,buffer.size()-1);
  sequence = "";
  while(getline(fp,buffer)){
    if(buffer.size()>=2){
      if(buffer.substr(buffer.size()-2,2) == "\r\n"){
	buffer.erase(buffer.size()-2,2);
      }
    }
    if(buffer[buffer.size()-1] == '\r' || buffer[buffer.size()-1] == '\n'){
      buffer.erase(buffer.size()-1,1);
    }
    sequence = sequence + buffer;
  }
  fp.close();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x380, %rsp            # imm = 0x380
movq %rsi, -0x308(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
leaq -0x228(%rbp), %rdi
movq %rdi, -0x300(%rbp)
callq 0x3310
leaq -0x248(%rbp), %rdi
callq 0x33d0
movq -0x308(%rbp), %rdi
callq 0x3110
movq -0x300(%rbp), %rdi
movq %rax, %rsi
movl $0x8, %edx
callq 0x31b0
jmp 0x84f3
movq -0x228(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x228(%rbp,%rax), %rdi
callq 0x3140
movb %al, -0x309(%rbp)
jmp 0x8513
movb -0x309(%rbp), %al
testb $0x1, %al
jne 0x8522
jmp 0x8607
movq -0x308(%rbp), %rdx
leaq 0x302d3(%rip), %rsi     # 0x38803
leaq -0x298(%rbp), %rdi
callq 0x8930
jmp 0x853e
leaq 0x3021c(%rip), %rdx     # 0x38761
leaq -0x278(%rbp), %rdi
leaq -0x298(%rbp), %rsi
callq 0x88e0
jmp 0x855a
movq 0x43a6f(%rip), %rdi     # 0x4bfd0
leaq -0x278(%rbp), %rsi
callq 0x3260
movq %rax, -0x318(%rbp)
jmp 0x8576
movq -0x318(%rbp), %rdi
movq 0x43a24(%rip), %rsi     # 0x4bfa8
callq 0x32b0
jmp 0x858b
leaq -0x278(%rbp), %rdi
callq 0x3190
leaq -0x298(%rbp), %rdi
callq 0x3190
movl $0x1, %edi
callq 0x3330
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
jmp 0x88b1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
jmp 0x85f6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
leaq -0x278(%rbp), %rdi
callq 0x3190
leaq -0x298(%rbp), %rdi
callq 0x3190
jmp 0x88b1
leaq -0x228(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0x3060
jmp 0x861c
leaq -0x248(%rbp), %rdi
movq %rdi, -0x320(%rbp)
callq 0x31e0
movq -0x320(%rbp), %rsi
movq %rax, %rcx
decq %rcx
leaq -0x2b8(%rbp), %rdi
movl $0x1, %edx
callq 0x32a0
jmp 0x864f
movq -0x20(%rbp), %rdi
leaq -0x2b8(%rbp), %rsi
movq %rsi, -0x328(%rbp)
callq 0x3340
movq -0x328(%rbp), %rdi
callq 0x3190
movq -0x18(%rbp), %rdi
leaq 0x301a6(%rip), %rsi     # 0x38823
callq 0x33c0
jmp 0x8684
jmp 0x8686
leaq -0x228(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0x3060
movq %rax, -0x330(%rbp)
jmp 0x86a2
movq -0x330(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x3380
movb %al, -0x331(%rbp)
jmp 0x86c0
movb -0x331(%rbp), %al
testb $0x1, %al
jne 0x86cf
jmp 0x8882
leaq -0x248(%rbp), %rdi
callq 0x31e0
cmpq $0x2, %rax
jb 0x87a0
leaq -0x248(%rbp), %rdi
movq %rdi, -0x340(%rbp)
callq 0x31e0
movq -0x340(%rbp), %rsi
movq %rax, %rdx
addq $-0x2, %rdx
leaq -0x2d8(%rbp), %rdi
movl $0x2, %ecx
callq 0x32a0
jmp 0x8719
leaq 0x30101(%rip), %rsi     # 0x38821
leaq -0x2d8(%rbp), %rdi
callq 0x8b90
movb %al, -0x341(%rbp)
jmp 0x8734
leaq -0x2d8(%rbp), %rdi
callq 0x3190
movb -0x341(%rbp), %al
testb $0x1, %al
jne 0x874c
jmp 0x879e
leaq -0x248(%rbp), %rdi
movq %rdi, -0x350(%rbp)
callq 0x31e0
movq -0x350(%rbp), %rdi
movq %rax, %rsi
addq $-0x2, %rsi
movl $0x2, %edx
callq 0x3090
jmp 0x8779
jmp 0x879e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x250(%rbp)
movl %eax, -0x254(%rbp)
leaq -0x2d8(%rbp), %rdi
callq 0x3190
jmp 0x88b1
jmp 0x87a0
leaq -0x248(%rbp), %rdi
movq %rdi, -0x360(%rbp)
callq 0x31e0
movq -0x360(%rbp), %rdi
movq %rax, %rsi
decq %rsi
callq 0x3560
movq %rax, -0x358(%rbp)
jmp 0x87ce
movq -0x358(%rbp), %rax
movsbl (%rax), %eax
cmpl $0xd, %eax
je 0x881a
leaq -0x248(%rbp), %rdi
movq %rdi, -0x370(%rbp)
callq 0x31e0
movq -0x370(%rbp), %rdi
movq %rax, %rsi
decq %rsi
callq 0x3560
movq %rax, -0x368(%rbp)
jmp 0x880b
movq -0x368(%rbp), %rax
movsbl (%rax), %eax
cmpl $0xa, %eax
jne 0x8848
leaq -0x248(%rbp), %rdi
movq %rdi, -0x378(%rbp)
callq 0x31e0
movq -0x378(%rbp), %rdi
movq %rax, %rsi
decq %rsi
movl $0x1, %edx
callq 0x3090
jmp 0x8846
jmp 0x8848
movq -0x18(%rbp), %rsi
leaq -0x2f8(%rbp), %rdi
leaq -0x248(%rbp), %rdx
callq 0x8bc0
jmp 0x8861
movq -0x18(%rbp), %rdi
leaq -0x2f8(%rbp), %rsi
callq 0x3340
leaq -0x2f8(%rbp), %rdi
callq 0x3190
jmp 0x8686
leaq -0x228(%rbp), %rdi
callq 0x3070
jmp 0x8890
leaq -0x248(%rbp), %rdi
callq 0x3190
leaq -0x228(%rbp), %rdi
callq 0x30b0
addq $0x380, %rsp            # imm = 0x380
popq %rbp
retq
leaq -0x248(%rbp), %rdi
callq 0x3190
leaq -0x228(%rbp), %rdi
callq 0x30b0
movq -0x250(%rbp), %rdi
callq 0x34d0
nopw %cs:(%rax,%rax)
nop