// File: /workspace/github_c_makefile_star2_O3/fukunagatsu[P]RIblast/raccess.cpp
// Function: Raccess::Initiallize(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)
void Raccess::Initiallize(string &sequence){
  _seq_length = sequence.length();
  _int_sequence.resize(_seq_length+1);
  for(int i = 0;i < _seq_length;i++){
    if(sequence[i] == 'A' || sequence[i] == 'a'){
      _int_sequence[i+1] = 1;
    }else if(sequence[i] == 'C' || sequence[i] == 'c'){
      _int_sequence[i+1] = 2;
    }else if(sequence[i] == 'G' || sequence[i] == 'g'){
      _int_sequence[i+1] = 3;
    }else if(sequence[i] == 'T' || sequence[i] == 't' || sequence[i] == 'U' || sequence[i] == 'u'){
      _int_sequence[i+1] = 4;
    }else{
      _int_sequence[i+1] = 0;
    }
  }
  
  _Alpha_outer.resize(_seq_length+1, 0);
  _Alpha_stem.resize(_seq_length+1,vector<double>(_maximal_span+2, -INF));
  _Alpha_stemend.resize(_seq_length+1,vector<double>(_maximal_span+2, -INF));
  _Alpha_multi.resize(_seq_length+1,vector<double>(_maximal_span+2, -INF));
  _Alpha_multibif.resize(_seq_length+1,vector<double>(_maximal_span+2, -INF));
  _Alpha_multi1.resize(_seq_length+1,vector<double>(_maximal_span+2, -INF));
  _Alpha_multi2.resize(_seq_length+1,vector<double>(_maximal_span+2, -INF));
  

  _Beta_outer.resize(_seq_length+1, 0);
  _Beta_stem.resize(_seq_length+1,vector<double>(_maximal_span+2, -INF));
  _Beta_stemend.resize(_seq_length+1,vector<double>(_maximal_span+2, -INF));
  _Beta_multi.resize(_seq_length+1,vector<double>(_maximal_span+2, -INF));
  _Beta_multibif.resize(_seq_length+1,vector<double>(_maximal_span+2, -INF));
  _Beta_multi1.resize(_seq_length+1,vector<double>(_maximal_span+2, -INF));
  _Beta_multi2.resize(_seq_length+1,vector<double>(_maximal_span+2, -INF));
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x30, %rsp
movq %rsi, %r14
movq %rdi, %rbx
movl 0x8(%rsi), %eax
movl %eax, 0x62110(%rdi)
leaq 0x620f8(%rdi), %r15
incl %eax
movslq %eax, %rsi
movq %r15, %rdi
callq 0x8700
movl 0x62110(%rbx), %esi
testl %esi, %esi
jle 0x92df
movq (%r14), %rax
movq (%r15), %rcx
xorl %edx, %edx
movzbl (%rax,%rdx), %esi
movl $0x1, %edi
cmpl $0x60, %esi
jg 0x9294
cmpl $0x53, %esi
jg 0x92af
cmpl $0x41, %esi
je 0x92cc
cmpl $0x43, %esi
je 0x92c3
cmpl $0x47, %esi
je 0x92a8
jmp 0x92ca
cmpl $0x73, %esi
jg 0x92b4
cmpl $0x61, %esi
je 0x92cc
cmpl $0x63, %esi
je 0x92c3
cmpl $0x67, %esi
jne 0x92ca
movl $0x3, %edi
jmp 0x92cc
addl $-0x54, %esi
jmp 0x92b7
addl $-0x74, %esi
cmpl $0x2, %esi
jae 0x92ca
movl $0x4, %edi
jmp 0x92cc
movl $0x2, %edi
jmp 0x92cc
xorl %edi, %edi
movl %edi, 0x4(%rcx,%rdx,4)
incq %rdx
movslq 0x62110(%rbx), %rsi
cmpq %rsi, %rdx
jl 0x9270
leaq 0x62140(%rbx), %rdi
incl %esi
movslq %esi, %rsi
leaq 0x10(%rsp), %rdx
movq $0x0, (%rdx)
callq 0xda56
movslq 0x62110(%rbx), %r14
movslq 0x62114(%rbx), %rsi
addq $0x2, %rsi
movabsq $-0x3ed17b8000000000, %r15 # imm = 0xC12E848000000000
leaq 0x28(%rsp), %rdx
movq %r15, (%rdx)
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rcx
callq 0xdacc
incq %r14
leaq 0x62158(%rbx), %rdi
leaq 0x10(%rsp), %rdx
movq %r14, %rsi
callq 0xda8a
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x935d
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x3230
movslq 0x62110(%rbx), %r14
movslq 0x62114(%rbx), %rsi
addq $0x2, %rsi
leaq 0x28(%rsp), %rdx
movq %r15, (%rdx)
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rcx
callq 0xdacc
incq %r14
leaq 0x62170(%rbx), %rdi
leaq 0x10(%rsp), %rdx
movq %r14, %rsi
callq 0xda8a
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x93b4
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x3230
movslq 0x62110(%rbx), %r14
movslq 0x62114(%rbx), %rsi
addq $0x2, %rsi
leaq 0x28(%rsp), %rdx
movq %r15, (%rdx)
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rcx
callq 0xdacc
incq %r14
leaq 0x62188(%rbx), %rdi
leaq 0x10(%rsp), %rdx
movq %r14, %rsi
callq 0xda8a
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x940b
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x3230
movslq 0x62110(%rbx), %r14
movslq 0x62114(%rbx), %rsi
addq $0x2, %rsi
leaq 0x28(%rsp), %rdx
movq %r15, (%rdx)
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rcx
callq 0xdacc
incq %r14
leaq 0x621a0(%rbx), %rdi
leaq 0x10(%rsp), %rdx
movq %r14, %rsi
callq 0xda8a
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x9462
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x3230
movslq 0x62110(%rbx), %r14
movslq 0x62114(%rbx), %rsi
addq $0x2, %rsi
leaq 0x28(%rsp), %rdx
movq %r15, (%rdx)
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rcx
callq 0xdacc
incq %r14
leaq 0x621b8(%rbx), %rdi
leaq 0x10(%rsp), %rdx
movq %r14, %rsi
callq 0xda8a
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x94b9
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x3230
movslq 0x62110(%rbx), %r14
movslq 0x62114(%rbx), %rsi
addq $0x2, %rsi
leaq 0x28(%rsp), %rdx
movq %r15, (%rdx)
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rcx
callq 0xdacc
incq %r14
leaq 0x621d0(%rbx), %rdi
leaq 0x10(%rsp), %rdx
movq %r14, %rsi
callq 0xda8a
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x9510
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x3230
leaq 0x621e8(%rbx), %rdi
movslq 0x62110(%rbx), %rsi
incq %rsi
leaq 0x10(%rsp), %rdx
movq $0x0, (%rdx)
callq 0xda56
movslq 0x62110(%rbx), %r14
movslq 0x62114(%rbx), %rsi
addq $0x2, %rsi
leaq 0x28(%rsp), %rdx
movq %r15, (%rdx)
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rcx
callq 0xdacc
incq %r14
leaq 0x62200(%rbx), %rdi
leaq 0x10(%rsp), %rdx
movq %r14, %rsi
callq 0xda8a
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x9589
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x3230
movslq 0x62110(%rbx), %r14
movslq 0x62114(%rbx), %rsi
addq $0x2, %rsi
leaq 0x28(%rsp), %rdx
movq %r15, (%rdx)
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rcx
callq 0xdacc
incq %r14
leaq 0x62218(%rbx), %rdi
leaq 0x10(%rsp), %rdx
movq %r14, %rsi
callq 0xda8a
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x95e0
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x3230
movslq 0x62110(%rbx), %r14
movslq 0x62114(%rbx), %rsi
addq $0x2, %rsi
leaq 0x28(%rsp), %rdx
movq %r15, (%rdx)
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rcx
callq 0xdacc
incq %r14
leaq 0x62230(%rbx), %rdi
leaq 0x10(%rsp), %rdx
movq %r14, %rsi
callq 0xda8a
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x9637
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x3230
movslq 0x62110(%rbx), %r14
movslq 0x62114(%rbx), %rsi
addq $0x2, %rsi
leaq 0x28(%rsp), %rdx
movq %r15, (%rdx)
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rcx
callq 0xdacc
incq %r14
leaq 0x62248(%rbx), %rdi
leaq 0x10(%rsp), %rdx
movq %r14, %rsi
callq 0xda8a
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x968e
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x3230
movslq 0x62110(%rbx), %r14
movslq 0x62114(%rbx), %rsi
addq $0x2, %rsi
leaq 0x28(%rsp), %rdx
movq %r15, (%rdx)
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rcx
callq 0xdacc
incq %r14
leaq 0x62260(%rbx), %rdi
leaq 0x10(%rsp), %rdx
movq %r14, %rsi
callq 0xda8a
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x96e5
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x3230
movslq 0x62110(%rbx), %r14
movslq 0x62114(%rbx), %rsi
addq $0x2, %rsi
leaq 0x28(%rsp), %rdx
movq %r15, (%rdx)
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rcx
callq 0xdacc
incq %r14
addq $0x62278, %rbx          # imm = 0x62278
leaq 0x10(%rsp), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xda8a
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x973f
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x3230
addq $0x30, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x9775
jmp 0x9791
jmp 0x9775
jmp 0x9791
jmp 0x9775
jmp 0x9791
jmp 0x9775
jmp 0x9791
jmp 0x9775
jmp 0x9791
jmp 0x9775
jmp 0x9791
jmp 0x9775
jmp 0x9791
jmp 0x9775
jmp 0x9791
jmp 0x9775
jmp 0x9791
jmp 0x9775
jmp 0x9791
jmp 0x9775
jmp 0x9791
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x9794
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x3230
jmp 0x9794
movq %rax, %rbx
movq %rbx, %rdi
callq 0x33e0