// File: /workspace/github_c_makefile_star2_O0/fukunagatsu[P]RIblast/raccess.cpp
// Function: Raccess::CalcLogSumBulgeAndInternalProbability(std::vector<double, std::allocator<double>>&, std::vector<double, std::allocator<double>>&)
void Raccess::CalcLogSumBulgeAndInternalProbability(vector<double> &biloop_probability, vector<double> &conditional_biloop_probability){
  double probability = 0;
  double temp = 0;
  int type = 0;
  int type2 = 0;
  vector<bool> b_flag_array; b_flag_array.resize(_seq_length,0);
  vector<bool> c_flag_array; c_flag_array.resize(_seq_length,0);
  int w = _min_accessible_length;
  
  for(int i = 1; i<_seq_length-TURN-2;i++){
    for(int j = i+TURN+3; j<=min(i+_maximal_span,_seq_length);j++){
      type = BP_pair[_int_sequence[i]][_int_sequence[j]];
      if (type!=0) {
	for (int p =i+1; p <= min(i+MAXLOOP+1,j-TURN-2); p++) {
	  int u1 = p-i-1;
	  for (int q=max(p+TURN+1,j-MAXLOOP+u1-1); q<j; q++) {
	    type2 = BP_pair[_int_sequence[p]][_int_sequence[q]];
	    if (type2 != 0 && !(p == i+1 && q == j-1)) {
	      type2 = rtype[type2];
	      if(_Beta_stemend[i][j-i-1] != -INF && _Alpha_stem[p-1][q-p+1] != -INF){
		temp = _Beta_stemend[i][j-i-1] + LoopEnergy(type, type2,i,j,p,q)+_Alpha_stem[p-1][q-p+1];
		
		for(int k = i+1; k <= p-w;k++){
		  if(k == p-w){
		    biloop_probability[k-1] = b_flag_array[k-1] == 1 ? logsumexp(biloop_probability[k-1], temp) : temp;
		    b_flag_array[k-1] = 1;		   
		  }else{
		    conditional_biloop_probability[k-1] = c_flag_array[k-1] == 1 ? logsumexp(conditional_biloop_probability[k-1], temp) : temp;
		    c_flag_array[k-1] = 1;		  
		  }
		}
		
		for(int k = q+1; k <= j-w;k++){
		  if(k == j-w){
		    biloop_probability[k-1] = b_flag_array[k-1] == 1 ? logsumexp(biloop_probability[k-1], temp) : temp;
		    b_flag_array[k-1] = 1;
		  }else{
		    conditional_biloop_probability[k-1] = c_flag_array[k-1] == 1 ? logsumexp(conditional_biloop_probability[k-1], temp) : temp;
		    c_flag_array[k-1] = 1;
		  }
		}
	      } 
	    }
	  }
	}
      }
    }
  }
  
  for(int i=0;i<_seq_length;i++){
    if(b_flag_array[i]==1 && c_flag_array[i]==1){
      biloop_probability[i] = logsumexp(biloop_probability[i], conditional_biloop_probability[i]);
    }
    if(b_flag_array[i]==0 && c_flag_array[i]==1){
      biloop_probability[i] = conditional_biloop_probability[i];
    }
    if(b_flag_array[i]==1){
      biloop_probability[i] = fmath::expd(biloop_probability[i]-_Alpha_outer[_seq_length]);
    }
    if(c_flag_array[i]==1){
      conditional_biloop_probability[i] = fmath::expd(conditional_biloop_probability[i]-_Alpha_outer[_seq_length]);
    }
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x3b0, %rsp            # imm = 0x3B0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x1c0(%rbp)
movq $0x0, -0x20(%rbp)
movq $0x0, -0x28(%rbp)
movl $0x0, -0x2c(%rbp)
movl $0x0, -0x30(%rbp)
leaq -0x58(%rbp), %rdi
movq %rdi, -0x1b8(%rbp)
callq 0x156b0
movq -0x1c0(%rbp), %rax
movq -0x1b8(%rbp), %rdi
movslq 0x62110(%rax), %rsi
xorl %edx, %edx
callq 0x156d0
jmp 0x1371e
leaq -0x90(%rbp), %rdi
movq %rdi, -0x1c8(%rbp)
callq 0x156b0
movq -0x1c0(%rbp), %rax
movq -0x1c8(%rbp), %rdi
movslq 0x62110(%rax), %rsi
xorl %edx, %edx
callq 0x156d0
jmp 0x1374f
movq -0x1c0(%rbp), %rax
movl 0x62118(%rax), %eax
movl %eax, -0x94(%rbp)
movl $0x1, -0x98(%rbp)
movq -0x1c0(%rbp), %rcx
movl -0x98(%rbp), %eax
movl 0x62110(%rcx), %ecx
subl $0x3, %ecx
subl $0x2, %ecx
cmpl %ecx, %eax
jge 0x14165
movl -0x98(%rbp), %eax
addl $0x3, %eax
addl $0x3, %eax
movl %eax, -0x9c(%rbp)
movq -0x1c0(%rbp), %rsi
movl -0x9c(%rbp), %eax
movl %eax, -0x1d4(%rbp)
movl -0x98(%rbp), %eax
movl 0x62114(%rsi), %ecx
addl %ecx, %eax
movl %eax, -0xa0(%rbp)
addq $0x62110, %rsi          # imm = 0x62110
leaq -0xa0(%rbp), %rdi
callq 0xc850
movq %rax, -0x1d0(%rbp)
jmp 0x137e2
movl -0x1d4(%rbp), %eax
movq -0x1d0(%rbp), %rcx
cmpl (%rcx), %eax
jg 0x1414f
movq -0x1c0(%rbp), %rdi
addq $0x620f8, %rdi          # imm = 0x620F8
movslq -0x98(%rbp), %rsi
callq 0xbac0
movq -0x1c0(%rbp), %rdi
movslq (%rax), %rcx
leaq 0x69aee(%rip), %rax     # 0x7d310
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x1e0(%rbp)
addq $0x620f8, %rdi          # imm = 0x620F8
movslq -0x9c(%rbp), %rsi
callq 0xbac0
movq %rax, %rcx
movq -0x1e0(%rbp), %rax
movslq (%rcx), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x2c(%rbp)
cmpl $0x0, -0x2c(%rbp)
je 0x14139
movl -0x98(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xa4(%rbp)
movl -0xa4(%rbp), %eax
movl %eax, -0x1ec(%rbp)
movl -0x98(%rbp), %eax
addl $0x1f, %eax
movl %eax, -0xa8(%rbp)
movl -0x9c(%rbp), %eax
addl $-0x5, %eax
movl %eax, -0xac(%rbp)
leaq -0xa8(%rbp), %rdi
leaq -0xac(%rbp), %rsi
callq 0xc850
movq %rax, -0x1e8(%rbp)
jmp 0x138b5
movl -0x1ec(%rbp), %eax
movq -0x1e8(%rbp), %rcx
cmpl (%rcx), %eax
jg 0x14137
movl -0xa4(%rbp), %ecx
movl -0x98(%rbp), %eax
notl %eax
addl %ecx, %eax
movl %eax, -0xb0(%rbp)
movl -0xa4(%rbp), %eax
addl $0x4, %eax
movl %eax, -0xb8(%rbp)
movl -0x9c(%rbp), %edx
movl -0xb0(%rbp), %eax
movl %eax, %ecx
movl %edx, %eax
leal -0x1f(%rax,%rcx), %eax
movl %eax, -0xbc(%rbp)
leaq -0xb8(%rbp), %rdi
leaq -0xbc(%rbp), %rsi
callq 0x15060
movq %rax, -0x1f8(%rbp)
jmp 0x13925
movq -0x1f8(%rbp), %rax
movl (%rax), %eax
movl %eax, -0xb4(%rbp)
movl -0xb4(%rbp), %eax
cmpl -0x9c(%rbp), %eax
jge 0x14121
movq -0x1c0(%rbp), %rdi
addq $0x620f8, %rdi          # imm = 0x620F8
movslq -0xa4(%rbp), %rsi
callq 0xbac0
movq -0x1c0(%rbp), %rdi
movslq (%rax), %rcx
leaq 0x6999f(%rip), %rax     # 0x7d310
imulq $0x14, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x200(%rbp)
addq $0x620f8, %rdi          # imm = 0x620F8
movslq -0xb4(%rbp), %rsi
callq 0xbac0
movq %rax, %rcx
movq -0x200(%rbp), %rax
movslq (%rcx), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x30(%rbp)
cmpl $0x0, -0x30(%rbp)
je 0x1410b
movl -0xa4(%rbp), %eax
movl -0x98(%rbp), %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
jne 0x139d9
movl -0xb4(%rbp), %eax
movl -0x9c(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
je 0x1410b
movq -0x1c0(%rbp), %rdi
movslq -0x30(%rbp), %rcx
leaq 0x69995(%rip), %rax     # 0x7d380
movl (%rax,%rcx,4), %eax
movl %eax, -0x30(%rbp)
addq $0x62218, %rdi          # imm = 0x62218
movslq -0x98(%rbp), %rsi
callq 0x150a0
movq %rax, %rdi
movl -0x9c(%rbp), %eax
subl -0x98(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rsi
callq 0x150c0
movsd (%rax), %xmm0
movsd 0x24ef6(%rip), %xmm1    # 0x38920
ucomisd %xmm1, %xmm0
jne 0x13a37
jp 0x13a37
jmp 0x14109
movq -0x1c0(%rbp), %rdi
addq $0x62158, %rdi          # imm = 0x62158
movl -0xa4(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rsi
callq 0x150a0
movq %rax, %rdi
movl -0xb4(%rbp), %eax
subl -0xa4(%rbp), %eax
addl $0x1, %eax
movslq %eax, %rsi
callq 0x150c0
movsd (%rax), %xmm0
movsd 0x24ea4(%rip), %xmm1    # 0x38920
ucomisd %xmm1, %xmm0
jne 0x13a89
jp 0x13a89
jmp 0x14109
movq -0x1c0(%rbp), %rdi
addq $0x62218, %rdi          # imm = 0x62218
movslq -0x98(%rbp), %rsi
callq 0x150a0
movq %rax, %rdi
movl -0x9c(%rbp), %ecx
movl -0x98(%rbp), %eax
notl %eax
addl %ecx, %eax
movslq %eax, %rsi
callq 0x150c0
movq -0x1c0(%rbp), %rdi
movsd (%rax), %xmm0
movsd %xmm0, -0x210(%rbp)
movl -0x2c(%rbp), %esi
movl -0x30(%rbp), %edx
movl -0x98(%rbp), %ecx
movl -0x9c(%rbp), %r8d
movl -0xa4(%rbp), %r9d
movl -0xb4(%rbp), %r10d
movq %rsp, %rax
movl %r10d, (%rax)
callq 0x123a0
movsd %xmm0, -0x208(%rbp)
jmp 0x13b07
movq -0x1c0(%rbp), %rdi
movsd -0x208(%rbp), %xmm1
movsd -0x210(%rbp), %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x218(%rbp)
addq $0x62158, %rdi          # imm = 0x62158
movl -0xa4(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rsi
callq 0x150a0
movq %rax, %rdi
movl -0xb4(%rbp), %eax
subl -0xa4(%rbp), %eax
addl $0x1, %eax
movslq %eax, %rsi
callq 0x150c0
movsd -0x218(%rbp), %xmm0
addsd (%rax), %xmm0
movsd %xmm0, -0x28(%rbp)
movl -0x98(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc0(%rbp)
movl -0xc0(%rbp), %eax
movl -0xa4(%rbp), %ecx
subl -0x94(%rbp), %ecx
cmpl %ecx, %eax
jg 0x13e51
movl -0xc0(%rbp), %eax
movl -0xa4(%rbp), %ecx
subl -0x94(%rbp), %ecx
cmpl %ecx, %eax
jne 0x13d0c
movl -0xc0(%rbp), %eax
decl %eax
movslq %eax, %rsi
leaq -0x58(%rbp), %rdi
callq 0x15810
movq %rdx, -0x228(%rbp)
movq %rax, -0x220(%rbp)
jmp 0x13bd4
movq -0x228(%rbp), %rax
movq -0x220(%rbp), %rcx
movq %rcx, -0xd0(%rbp)
movq %rax, -0xc8(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x15870
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x13c4b
movq -0x10(%rbp), %rdi
movl -0xc0(%rbp), %eax
decl %eax
movslq %eax, %rsi
callq 0x150c0
movq -0x1c0(%rbp), %rdi
movsd (%rax), %xmm0
movsd -0x28(%rbp), %xmm1
callq 0x12a20
movsd %xmm0, -0x230(%rbp)
jmp 0x13c39
movsd -0x230(%rbp), %xmm0
movsd %xmm0, -0x238(%rbp)
jmp 0x13c58
movsd -0x28(%rbp), %xmm0
movsd %xmm0, -0x238(%rbp)
movsd -0x238(%rbp), %xmm0
movsd %xmm0, -0x250(%rbp)
movq -0x10(%rbp), %rdi
movl -0xc0(%rbp), %eax
decl %eax
movslq %eax, %rsi
callq 0x150c0
movsd -0x250(%rbp), %xmm0
movsd %xmm0, (%rax)
movl -0xc0(%rbp), %eax
decl %eax
movslq %eax, %rsi
leaq -0x58(%rbp), %rdi
callq 0x15810
movq %rdx, -0x248(%rbp)
movq %rax, -0x240(%rbp)
jmp 0x13cac
movq -0x248(%rbp), %rax
movq -0x240(%rbp), %rcx
movq %rcx, -0xe0(%rbp)
movq %rax, -0xd8(%rbp)
leaq -0xe0(%rbp), %rdi
movl $0x1, %esi
callq 0x158a0
jmp 0x13e3b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x14577
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x157f0
jmp 0x14577
movl -0xc0(%rbp), %eax
decl %eax
movslq %eax, %rsi
leaq -0x90(%rbp), %rdi
callq 0x15810
movq %rdx, -0x260(%rbp)
movq %rax, -0x258(%rbp)
jmp 0x13d33
movq -0x260(%rbp), %rax
movq -0x258(%rbp), %rcx
movq %rcx, -0xf0(%rbp)
movq %rax, -0xe8(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x15870
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x13daa
movq -0x18(%rbp), %rdi
movl -0xc0(%rbp), %eax
decl %eax
movslq %eax, %rsi
callq 0x150c0
movq -0x1c0(%rbp), %rdi
movsd (%rax), %xmm0
movsd -0x28(%rbp), %xmm1
callq 0x12a20
movsd %xmm0, -0x268(%rbp)
jmp 0x13d98
movsd -0x268(%rbp), %xmm0
movsd %xmm0, -0x270(%rbp)
jmp 0x13db7
movsd -0x28(%rbp), %xmm0
movsd %xmm0, -0x270(%rbp)
movsd -0x270(%rbp), %xmm0
movsd %xmm0, -0x288(%rbp)
movq -0x18(%rbp), %rdi
movl -0xc0(%rbp), %eax
decl %eax
movslq %eax, %rsi
callq 0x150c0
movsd -0x288(%rbp), %xmm0
movsd %xmm0, (%rax)
movl -0xc0(%rbp), %eax
decl %eax
movslq %eax, %rsi
leaq -0x90(%rbp), %rdi
callq 0x15810
movq %rdx, -0x280(%rbp)
movq %rax, -0x278(%rbp)
jmp 0x13e0e
movq -0x280(%rbp), %rax
movq -0x278(%rbp), %rcx
movq %rcx, -0x100(%rbp)
movq %rax, -0xf8(%rbp)
leaq -0x100(%rbp), %rdi
movl $0x1, %esi
callq 0x158a0
jmp 0x13e3d
movl -0xc0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc0(%rbp)
jmp 0x13b7c
movl -0xb4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x104(%rbp)
movl -0x104(%rbp), %eax
movl -0x9c(%rbp), %ecx
subl -0x94(%rbp), %ecx
cmpl %ecx, %eax
jg 0x14107
movl -0x104(%rbp), %eax
movl -0x9c(%rbp), %ecx
subl -0x94(%rbp), %ecx
cmpl %ecx, %eax
jne 0x13fc2
movl -0x104(%rbp), %eax
decl %eax
movslq %eax, %rsi
leaq -0x58(%rbp), %rdi
callq 0x15810
movq %rdx, -0x298(%rbp)
movq %rax, -0x290(%rbp)
jmp 0x13eb8
movq -0x298(%rbp), %rax
movq -0x290(%rbp), %rcx
movq %rcx, -0x118(%rbp)
movq %rax, -0x110(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x15870
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x13f2f
movq -0x10(%rbp), %rdi
movl -0x104(%rbp), %eax
decl %eax
movslq %eax, %rsi
callq 0x150c0
movq -0x1c0(%rbp), %rdi
movsd (%rax), %xmm0
movsd -0x28(%rbp), %xmm1
callq 0x12a20
movsd %xmm0, -0x2a0(%rbp)
jmp 0x13f1d
movsd -0x2a0(%rbp), %xmm0
movsd %xmm0, -0x2a8(%rbp)
jmp 0x13f3c
movsd -0x28(%rbp), %xmm0
movsd %xmm0, -0x2a8(%rbp)
movsd -0x2a8(%rbp), %xmm0
movsd %xmm0, -0x2c0(%rbp)
movq -0x10(%rbp), %rdi
movl -0x104(%rbp), %eax
decl %eax
movslq %eax, %rsi
callq 0x150c0
movsd -0x2c0(%rbp), %xmm0
movsd %xmm0, (%rax)
movl -0x104(%rbp), %eax
decl %eax
movslq %eax, %rsi
leaq -0x58(%rbp), %rdi
callq 0x15810
movq %rdx, -0x2b8(%rbp)
movq %rax, -0x2b0(%rbp)
jmp 0x13f90
movq -0x2b8(%rbp), %rax
movq -0x2b0(%rbp), %rcx
movq %rcx, -0x128(%rbp)
movq %rax, -0x120(%rbp)
leaq -0x128(%rbp), %rdi
movl $0x1, %esi
callq 0x158a0
jmp 0x140f1
movl -0x104(%rbp), %eax
decl %eax
movslq %eax, %rsi
leaq -0x90(%rbp), %rdi
callq 0x15810
movq %rdx, -0x2d0(%rbp)
movq %rax, -0x2c8(%rbp)
jmp 0x13fe9
movq -0x2d0(%rbp), %rax
movq -0x2c8(%rbp), %rcx
movq %rcx, -0x138(%rbp)
movq %rax, -0x130(%rbp)
leaq -0x138(%rbp), %rdi
callq 0x15870
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x14060
movq -0x18(%rbp), %rdi
movl -0x104(%rbp), %eax
decl %eax
movslq %eax, %rsi
callq 0x150c0
movq -0x1c0(%rbp), %rdi
movsd (%rax), %xmm0
movsd -0x28(%rbp), %xmm1
callq 0x12a20
movsd %xmm0, -0x2d8(%rbp)
jmp 0x1404e
movsd -0x2d8(%rbp), %xmm0
movsd %xmm0, -0x2e0(%rbp)
jmp 0x1406d
movsd -0x28(%rbp), %xmm0
movsd %xmm0, -0x2e0(%rbp)
movsd -0x2e0(%rbp), %xmm0
movsd %xmm0, -0x2f8(%rbp)
movq -0x18(%rbp), %rdi
movl -0x104(%rbp), %eax
decl %eax
movslq %eax, %rsi
callq 0x150c0
movsd -0x2f8(%rbp), %xmm0
movsd %xmm0, (%rax)
movl -0x104(%rbp), %eax
decl %eax
movslq %eax, %rsi
leaq -0x90(%rbp), %rdi
callq 0x15810
movq %rdx, -0x2f0(%rbp)
movq %rax, -0x2e8(%rbp)
jmp 0x140c4
movq -0x2f0(%rbp), %rax
movq -0x2e8(%rbp), %rcx
movq %rcx, -0x148(%rbp)
movq %rax, -0x140(%rbp)
leaq -0x148(%rbp), %rdi
movl $0x1, %esi
callq 0x158a0
jmp 0x140f3
movl -0x104(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x104(%rbp)
jmp 0x13e60
jmp 0x14109
jmp 0x1410b
jmp 0x1410d
movl -0xb4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb4(%rbp)
jmp 0x13934
jmp 0x14123
movl -0xa4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xa4(%rbp)
jmp 0x1386f
jmp 0x14139
jmp 0x1413b
movl -0x9c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x9c(%rbp)
jmp 0x1379f
jmp 0x14151
movl -0x98(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x98(%rbp)
jmp 0x1376c
movl $0x0, -0x14c(%rbp)
movq -0x1c0(%rbp), %rcx
movl -0x14c(%rbp), %eax
cmpl 0x62110(%rcx), %eax
jge 0x14559
movslq -0x14c(%rbp), %rsi
leaq -0x58(%rbp), %rdi
callq 0x15810
movq %rdx, -0x308(%rbp)
movq %rax, -0x300(%rbp)
jmp 0x141a8
movq -0x308(%rbp), %rax
movq -0x300(%rbp), %rcx
movq %rcx, -0x160(%rbp)
movq %rax, -0x158(%rbp)
leaq -0x160(%rbp), %rdi
callq 0x15870
andb $0x1, %al
movzbl %al, %ecx
xorl %eax, %eax
cmpl $0x1, %ecx
movb %al, -0x309(%rbp)
jne 0x1423e
movslq -0x14c(%rbp), %rsi
leaq -0x90(%rbp), %rdi
callq 0x15810
movq %rdx, -0x320(%rbp)
movq %rax, -0x318(%rbp)
jmp 0x14205
movq -0x320(%rbp), %rax
movq -0x318(%rbp), %rcx
movq %rcx, -0x170(%rbp)
movq %rax, -0x168(%rbp)
leaq -0x170(%rbp), %rdi
callq 0x15870
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
sete %al
movb %al, -0x309(%rbp)
movb -0x309(%rbp), %al
testb $0x1, %al
jne 0x1424a
jmp 0x142b4
movq -0x10(%rbp), %rdi
movslq -0x14c(%rbp), %rsi
callq 0x150c0
movsd (%rax), %xmm0
movsd %xmm0, -0x330(%rbp)
movq -0x18(%rbp), %rdi
movslq -0x14c(%rbp), %rsi
callq 0x150c0
movq -0x1c0(%rbp), %rdi
movsd -0x330(%rbp), %xmm0
movsd (%rax), %xmm1
callq 0x12a20
movsd %xmm0, -0x328(%rbp)
jmp 0x14298
movq -0x10(%rbp), %rdi
movslq -0x14c(%rbp), %rsi
callq 0x150c0
movsd -0x328(%rbp), %xmm0
movsd %xmm0, (%rax)
movslq -0x14c(%rbp), %rsi
leaq -0x58(%rbp), %rdi
callq 0x15810
movq %rdx, -0x340(%rbp)
movq %rax, -0x338(%rbp)
jmp 0x142d4
movq -0x340(%rbp), %rax
movq -0x338(%rbp), %rcx
movq %rcx, -0x180(%rbp)
movq %rax, -0x178(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x15870
andb $0x1, %al
movzbl %al, %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x341(%rbp)
jne 0x1436a
movslq -0x14c(%rbp), %rsi
leaq -0x90(%rbp), %rdi
callq 0x15810
movq %rdx, -0x358(%rbp)
movq %rax, -0x350(%rbp)
jmp 0x14331
movq -0x358(%rbp), %rax
movq -0x350(%rbp), %rcx
movq %rcx, -0x190(%rbp)
movq %rax, -0x188(%rbp)
leaq -0x190(%rbp), %rdi
callq 0x15870
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
sete %al
movb %al, -0x341(%rbp)
movb -0x341(%rbp), %al
testb $0x1, %al
jne 0x14376
jmp 0x143ae
movq -0x18(%rbp), %rdi
movslq -0x14c(%rbp), %rsi
callq 0x150c0
movsd (%rax), %xmm0
movsd %xmm0, -0x360(%rbp)
movq -0x10(%rbp), %rdi
movslq -0x14c(%rbp), %rsi
callq 0x150c0
movsd -0x360(%rbp), %xmm0
movsd %xmm0, (%rax)
movslq -0x14c(%rbp), %rsi
leaq -0x58(%rbp), %rdi
callq 0x15810
movq %rdx, -0x370(%rbp)
movq %rax, -0x368(%rbp)
jmp 0x143ce
movq -0x370(%rbp), %rax
movq -0x368(%rbp), %rcx
movq %rcx, -0x1a0(%rbp)
movq %rax, -0x198(%rbp)
leaq -0x1a0(%rbp), %rdi
callq 0x15870
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x14477
movq -0x10(%rbp), %rdi
movslq -0x14c(%rbp), %rsi
callq 0x150c0
movq %rax, %rcx
movq -0x1c0(%rbp), %rax
movsd (%rcx), %xmm0
movsd %xmm0, -0x380(%rbp)
movq %rax, %rdi
addq $0x62140, %rdi          # imm = 0x62140
movslq 0x62110(%rax), %rsi
callq 0x150c0
movsd -0x380(%rbp), %xmm0
movsd (%rax), %xmm1
subsd %xmm1, %xmm0
callq 0x151d0
movsd %xmm0, -0x378(%rbp)
jmp 0x1445b
movq -0x10(%rbp), %rdi
movslq -0x14c(%rbp), %rsi
callq 0x150c0
movsd -0x378(%rbp), %xmm0
movsd %xmm0, (%rax)
movslq -0x14c(%rbp), %rsi
leaq -0x90(%rbp), %rdi
callq 0x15810
movq %rdx, -0x390(%rbp)
movq %rax, -0x388(%rbp)
jmp 0x1449a
movq -0x390(%rbp), %rax
movq -0x388(%rbp), %rcx
movq %rcx, -0x1b0(%rbp)
movq %rax, -0x1a8(%rbp)
leaq -0x1b0(%rbp), %rdi
callq 0x15870
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x14543
movq -0x18(%rbp), %rdi
movslq -0x14c(%rbp), %rsi
callq 0x150c0
movq %rax, %rcx
movq -0x1c0(%rbp), %rax
movsd (%rcx), %xmm0
movsd %xmm0, -0x3a0(%rbp)
movq %rax, %rdi
addq $0x62140, %rdi          # imm = 0x62140
movslq 0x62110(%rax), %rsi
callq 0x150c0
movsd -0x3a0(%rbp), %xmm0
movsd (%rax), %xmm1
subsd %xmm1, %xmm0
callq 0x151d0
movsd %xmm0, -0x398(%rbp)
jmp 0x14527
movq -0x18(%rbp), %rdi
movslq -0x14c(%rbp), %rsi
callq 0x150c0
movsd -0x398(%rbp), %xmm0
movsd %xmm0, (%rax)
jmp 0x14545
movl -0x14c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14c(%rbp)
jmp 0x1416f
leaq -0x90(%rbp), %rdi
callq 0x157f0
leaq -0x58(%rbp), %rdi
callq 0x157f0
addq $0x3b0, %rsp            # imm = 0x3B0
popq %rbp
retq
leaq -0x58(%rbp), %rdi
callq 0x157f0
movq -0x60(%rbp), %rdi
callq 0x34d0
nopl (%rax)