// File: /workspace/github_c_makefile_star2_O0/ugobas[P]tnm/anharmonic_tnm.c
// Function: Compute_V
float Compute_V(struct interaction *Int, float r)
{
  if(Int==NULL)return(0);
  double V=0, f;
  if(r<=Int->r1){
    // Knowledge based zone for SB or structure based if r0^SB < r0^KB
    if(POW){f=pow(r,-lambda);}else{f=exp(-lambda*r);}
    if(Int->A0)V=Int->A0;
    if(Int->A1)V+=Int->A1*f; 
    f*=f; if(Int->A2)V+=Int->A2*f;
    f*=f; if(Int->A4)V+=Int->A4*f;
  }else if(r<=Int->r2){
    double d=(r-Int->r2), d2=d*d, d3=d2*d;
    V=Int->a0+Int->a1*d+Int->a2*d2+Int->a3*d3+Int->a4*d3*d+Int->a5*d3*d2;
  }else if(r<=Int->r3){
    if(POW){f=pow(r,-lambda);}else{f=exp(-lambda*r);}
    if(Int->B0)V=Int->B0;
    if(Int->B1)V+=Int->B1*f; 
    f*=f; if(Int->B2)V+=Int->B2*f;
    f*=f; if(Int->B4)V+=Int->B4*f;
  }else if(r<C_THR){
    // Final interpolation region
    double d=(r-C_THR), d2=d*d, d3=d2*d;
    V=Int->b3*d3+Int->b4*d3*d+Int->b5*d3*d2;
  }
  return(V);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x10(%rbp)
movss %xmm0, -0x14(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x27835
xorps %xmm0, %xmm0
movss %xmm0, -0x4(%rbp)
jmp 0x27ca6
xorps %xmm0, %xmm0
movsd %xmm0, -0x20(%rbp)
movss -0x14(%rbp), %xmm1
movq -0x10(%rbp), %rax
movss 0x10(%rax), %xmm0
ucomiss %xmm1, %xmm0
jb 0x279a5
leaq 0x63d51(%rip), %rax     # 0x8b5ac
cmpl $0x0, (%rax)
je 0x27891
movss -0x14(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x64824(%rip), %rax     # 0x8c094
movss (%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
cvtss2sd %xmm1, %xmm1
callq 0x1080
movsd %xmm0, -0x28(%rbp)
jmp 0x278bc
leaq 0x647fc(%rip), %rax     # 0x8c094
movss (%rax), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss -0x14(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x1230
movsd %xmm0, -0x28(%rbp)
movq -0x10(%rbp), %rax
movsd 0x30(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x278d2
jp 0x278d2
jmp 0x278e0
movq -0x10(%rbp), %rax
movsd 0x30(%rax), %xmm0
movsd %xmm0, -0x20(%rbp)
movq -0x10(%rbp), %rax
movsd 0x38(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x278f6
jp 0x278f6
jmp 0x27916
movq -0x10(%rbp), %rax
movsd 0x38(%rax), %xmm0
movsd -0x28(%rbp), %xmm2
movsd -0x20(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x20(%rbp)
movsd -0x28(%rbp), %xmm0
mulsd -0x28(%rbp), %xmm0
movsd %xmm0, -0x28(%rbp)
movq -0x10(%rbp), %rax
movsd 0x40(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x2793b
jp 0x2793b
jmp 0x2795b
movq -0x10(%rbp), %rax
movsd 0x40(%rax), %xmm0
movsd -0x28(%rbp), %xmm2
movsd -0x20(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x20(%rbp)
movsd -0x28(%rbp), %xmm0
mulsd -0x28(%rbp), %xmm0
movsd %xmm0, -0x28(%rbp)
movq -0x10(%rbp), %rax
movsd 0x48(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x27980
jp 0x27980
jmp 0x279a0
movq -0x10(%rbp), %rax
movsd 0x48(%rax), %xmm0
movsd -0x28(%rbp), %xmm2
movsd -0x20(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x20(%rbp)
jmp 0x27c98
movss -0x14(%rbp), %xmm1
movq -0x10(%rbp), %rax
movss 0x14(%rax), %xmm0
ucomiss %xmm1, %xmm0
jb 0x27a88
movss -0x14(%rbp), %xmm0
movq -0x10(%rbp), %rax
subss 0x14(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x30(%rbp)
movsd -0x30(%rbp), %xmm0
mulsd -0x30(%rbp), %xmm0
movsd %xmm0, -0x38(%rbp)
movsd -0x38(%rbp), %xmm0
mulsd -0x30(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
movq -0x10(%rbp), %rax
movsd 0x70(%rax), %xmm1
movq -0x10(%rbp), %rax
movsd 0x78(%rax), %xmm0
movsd -0x30(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq -0x10(%rbp), %rax
movsd 0x80(%rax), %xmm1
movsd -0x38(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movq -0x10(%rbp), %rax
movsd 0x88(%rax), %xmm0
movsd -0x40(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq -0x10(%rbp), %rax
movsd 0x90(%rax), %xmm1
mulsd -0x40(%rbp), %xmm1
movsd -0x30(%rbp), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movq -0x10(%rbp), %rax
movsd 0x98(%rax), %xmm0
mulsd -0x40(%rbp), %xmm0
movsd -0x38(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x20(%rbp)
jmp 0x27c96
movss -0x14(%rbp), %xmm1
movq -0x10(%rbp), %rax
movss 0x18(%rax), %xmm0
ucomiss %xmm1, %xmm0
jb 0x27bf0
leaq 0x63b06(%rip), %rax     # 0x8b5ac
cmpl $0x0, (%rax)
je 0x27adc
movss -0x14(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x645d9(%rip), %rax     # 0x8c094
movss (%rax), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
cvtss2sd %xmm1, %xmm1
callq 0x1080
movsd %xmm0, -0x28(%rbp)
jmp 0x27b07
leaq 0x645b1(%rip), %rax     # 0x8c094
movss (%rax), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss -0x14(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x1230
movsd %xmm0, -0x28(%rbp)
movq -0x10(%rbp), %rax
movsd 0x50(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x27b1d
jp 0x27b1d
jmp 0x27b2b
movq -0x10(%rbp), %rax
movsd 0x50(%rax), %xmm0
movsd %xmm0, -0x20(%rbp)
movq -0x10(%rbp), %rax
movsd 0x58(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x27b41
jp 0x27b41
jmp 0x27b61
movq -0x10(%rbp), %rax
movsd 0x58(%rax), %xmm0
movsd -0x28(%rbp), %xmm2
movsd -0x20(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x20(%rbp)
movsd -0x28(%rbp), %xmm0
mulsd -0x28(%rbp), %xmm0
movsd %xmm0, -0x28(%rbp)
movq -0x10(%rbp), %rax
movsd 0x60(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x27b86
jp 0x27b86
jmp 0x27ba6
movq -0x10(%rbp), %rax
movsd 0x60(%rax), %xmm0
movsd -0x28(%rbp), %xmm2
movsd -0x20(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x20(%rbp)
movsd -0x28(%rbp), %xmm0
mulsd -0x28(%rbp), %xmm0
movsd %xmm0, -0x28(%rbp)
movq -0x10(%rbp), %rax
movsd 0x68(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x27bcb
jp 0x27bcb
jmp 0x27beb
movq -0x10(%rbp), %rax
movsd 0x68(%rax), %xmm0
movsd -0x28(%rbp), %xmm2
movsd -0x20(%rbp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x20(%rbp)
jmp 0x27c94
movss -0x14(%rbp), %xmm1
leaq 0x6442c(%rip), %rax     # 0x8c028
movss (%rax), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x27c92
movss -0x14(%rbp), %xmm0
leaq 0x64413(%rip), %rax     # 0x8c028
subss (%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x48(%rbp)
movsd -0x48(%rbp), %xmm0
mulsd -0x48(%rbp), %xmm0
movsd %xmm0, -0x50(%rbp)
movsd -0x50(%rbp), %xmm0
mulsd -0x48(%rbp), %xmm0
movsd %xmm0, -0x58(%rbp)
movq -0x10(%rbp), %rax
movsd 0xa0(%rax), %xmm1
movsd -0x58(%rbp), %xmm2
movq -0x10(%rbp), %rax
movsd 0xa8(%rax), %xmm0
mulsd -0x58(%rbp), %xmm0
mulsd -0x48(%rbp), %xmm0
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movq -0x10(%rbp), %rax
movsd 0xb0(%rax), %xmm0
mulsd -0x58(%rbp), %xmm0
movsd -0x50(%rbp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x20(%rbp)
jmp 0x27c94
jmp 0x27c96
jmp 0x27c98
movsd -0x20(%rbp), %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x4(%rbp)
movss -0x4(%rbp), %xmm0
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)