// File: /workspace/github_c_makefile_star2_O0/fukunagatsu[P]RIblast/db_construction.cpp
// Function: DbConstruction::SaveSequenceData(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>&, std::vector<unsigned char, std::allocator<unsigned char>>&)
void DbConstruction::SaveSequenceData(string file_name, vector<string> &sequences, vector<unsigned char> &encoded_sequences){
  ofstream of((file_name+".seq").c_str(), ios::out | ios::binary);
  int number_of_seq = sequences.size();
  of.write(reinterpret_cast<const char*>(&number_of_seq), sizeof(int));
  for(int i = 0; i < number_of_seq; i++){
    int seq_size = sequences[i].size();
    of.write(reinterpret_cast<const char*>(&seq_size), sizeof(int));
  }
  int count = encoded_sequences.size();
  vector<unsigned char>::iterator it;
  of.write(reinterpret_cast<const char*>(&count), sizeof(int));
  for(it = encoded_sequences.begin(); it != encoded_sequences.end(); it++){
    of.write(reinterpret_cast<const char*>(&*it), sizeof(unsigned char));
  }
  of.close();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2a0, %rsp            # imm = 0x2A0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
leaq 0x2e076(%rip), %rdx     # 0x38868
leaq -0x240(%rbp), %rdi
movq %rdi, -0x298(%rbp)
callq 0xbc70
movq -0x298(%rbp), %rdi
callq 0x3110
movq %rax, -0x290(%rbp)
movl $0x10, %edi
movl $0x4, %esi
callq 0xbcf0
movl %eax, -0x284(%rbp)
jmp 0xa82f
movl -0x284(%rbp), %edx
movq -0x290(%rbp), %rsi
leaq -0x220(%rbp), %rdi
callq 0x32e0
jmp 0xa84a
leaq -0x240(%rbp), %rdi
callq 0x3190
movq -0x18(%rbp), %rdi
callq 0x9260
movl %eax, -0x250(%rbp)
leaq -0x220(%rbp), %rdi
leaq -0x250(%rbp), %rsi
movl $0x4, %edx
callq 0x33a0
jmp 0xa87f
movl $0x0, -0x254(%rbp)
movl -0x254(%rbp), %eax
cmpl -0x250(%rbp), %eax
jge 0xa92c
movq -0x18(%rbp), %rdi
movslq -0x254(%rbp), %rsi
callq 0xb720
movq %rax, %rdi
callq 0x31e0
movl %eax, -0x258(%rbp)
leaq -0x220(%rbp), %rdi
leaq -0x258(%rbp), %rsi
movl $0x4, %edx
callq 0x33a0
jmp 0xa8d3
jmp 0xa8d5
movl -0x254(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x254(%rbp)
jmp 0xa889
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x248(%rbp)
movl %eax, -0x24c(%rbp)
leaq -0x240(%rbp), %rdi
callq 0x3190
jmp 0xaa06
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x248(%rbp)
movl %eax, -0x24c(%rbp)
leaq -0x220(%rbp), %rdi
callq 0x3410
jmp 0xaa06
movq -0x20(%rbp), %rdi
callq 0xba80
movl %eax, -0x25c(%rbp)
leaq -0x268(%rbp), %rdi
callq 0xbd10
leaq -0x220(%rbp), %rdi
leaq -0x25c(%rbp), %rsi
movl $0x4, %edx
callq 0x33a0
jmp 0xa961
movq -0x20(%rbp), %rdi
callq 0xbd30
movq %rax, -0x270(%rbp)
movq -0x270(%rbp), %rax
movq %rax, -0x268(%rbp)
movq -0x20(%rbp), %rdi
callq 0xbda0
movq %rax, -0x278(%rbp)
leaq -0x268(%rbp), %rdi
leaq -0x278(%rbp), %rsi
callq 0xbd60
testb $0x1, %al
jne 0xa9a8
jmp 0xa9e3
leaq -0x268(%rbp), %rdi
callq 0xbdd0
movq %rax, %rsi
leaq -0x220(%rbp), %rdi
movl $0x1, %edx
callq 0x33a0
jmp 0xa9ca
jmp 0xa9cc
leaq -0x268(%rbp), %rdi
xorl %esi, %esi
callq 0xbdf0
movq %rax, -0x280(%rbp)
jmp 0xa97f
leaq -0x220(%rbp), %rdi
callq 0x33f0
jmp 0xa9f1
leaq -0x220(%rbp), %rdi
callq 0x3410
addq $0x2a0, %rsp            # imm = 0x2A0
popq %rbp
retq
movq -0x248(%rbp), %rdi
callq 0x34d0
nopw %cs:(%rax,%rax)