// File: /workspace/github_c_makefile_star2_O1/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 0x770e
movl 0x62110(%rbx), %esi
testl %esi, %esi
jle 0x823b
movq (%r14), %rax
movq (%r15), %rcx
xorl %edx, %edx
movzbl (%rax,%rdx), %esi
movl $0x1, %edi
cmpl $0x60, %esi
jg 0x81f0
cmpl $0x53, %esi
jg 0x820b
cmpl $0x41, %esi
je 0x8228
cmpl $0x43, %esi
je 0x821f
cmpl $0x47, %esi
je 0x8204
jmp 0x8226
cmpl $0x73, %esi
jg 0x8210
cmpl $0x61, %esi
je 0x8228
cmpl $0x63, %esi
je 0x821f
cmpl $0x67, %esi
jne 0x8226
movl $0x3, %edi
jmp 0x8228
addl $-0x54, %esi
jmp 0x8213
addl $-0x74, %esi
cmpl $0x2, %esi
jae 0x8226
movl $0x4, %edi
jmp 0x8228
movl $0x2, %edi
jmp 0x8228
xorl %edi, %edi
movl %edi, 0x4(%rcx,%rdx,4)
incq %rdx
movslq 0x62110(%rbx), %rsi
cmpq %rsi, %rdx
jl 0x81cc
leaq 0x62140(%rbx), %rdi
incl %esi
movslq %esi, %rsi
leaq 0x10(%rsp), %rdx
movq $0x0, (%rdx)
callq 0xca3c
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 0xcab2
incq %r14
leaq 0x62158(%rbx), %rdi
leaq 0x10(%rsp), %rdx
movq %r14, %rsi
callq 0xca70
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x82b9
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 0xcab2
incq %r14
leaq 0x62170(%rbx), %rdi
leaq 0x10(%rsp), %rdx
movq %r14, %rsi
callq 0xca70
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x8310
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 0xcab2
incq %r14
leaq 0x62188(%rbx), %rdi
leaq 0x10(%rsp), %rdx
movq %r14, %rsi
callq 0xca70
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x8367
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 0xcab2
incq %r14
leaq 0x621a0(%rbx), %rdi
leaq 0x10(%rsp), %rdx
movq %r14, %rsi
callq 0xca70
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x83be
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 0xcab2
incq %r14
leaq 0x621b8(%rbx), %rdi
leaq 0x10(%rsp), %rdx
movq %r14, %rsi
callq 0xca70
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x8415
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 0xcab2
incq %r14
leaq 0x621d0(%rbx), %rdi
leaq 0x10(%rsp), %rdx
movq %r14, %rsi
callq 0xca70
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x846c
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 0xca3c
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 0xcab2
incq %r14
leaq 0x62200(%rbx), %rdi
leaq 0x10(%rsp), %rdx
movq %r14, %rsi
callq 0xca70
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x84e5
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 0xcab2
incq %r14
leaq 0x62218(%rbx), %rdi
leaq 0x10(%rsp), %rdx
movq %r14, %rsi
callq 0xca70
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x853c
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 0xcab2
incq %r14
leaq 0x62230(%rbx), %rdi
leaq 0x10(%rsp), %rdx
movq %r14, %rsi
callq 0xca70
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x8593
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 0xcab2
incq %r14
leaq 0x62248(%rbx), %rdi
leaq 0x10(%rsp), %rdx
movq %r14, %rsi
callq 0xca70
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x85ea
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 0xcab2
incq %r14
leaq 0x62260(%rbx), %rdi
leaq 0x10(%rsp), %rdx
movq %r14, %rsi
callq 0xca70
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x8641
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 0xcab2
incq %r14
addq $0x62278, %rbx          # imm = 0x62278
leaq 0x10(%rsp), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xca70
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x869b
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x3230
addq $0x30, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x86d1
jmp 0x86ed
jmp 0x86d1
jmp 0x86ed
jmp 0x86d1
jmp 0x86ed
jmp 0x86d1
jmp 0x86ed
jmp 0x86d1
jmp 0x86ed
jmp 0x86d1
jmp 0x86ed
jmp 0x86d1
jmp 0x86ed
jmp 0x86d1
jmp 0x86ed
jmp 0x86d1
jmp 0x86ed
jmp 0x86d1
jmp 0x86ed
jmp 0x86d1
jmp 0x86ed
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x86f0
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x3230
jmp 0x86f0
movq %rax, %rbx
movq %rbx, %rdi
callq 0x33e0