// File: /workspace/github_c_makefile_star2_O3/ugobas[P]tnm/confchange.c
// Function: Print_force_confchange
void Print_force_confchange(struct Normal_Mode NM, struct Tors Diff,
			    atom *atoms, struct axe *axes, int N_axes,
			    struct residue *seq, int N_res,
			    char *nameout2)
{
  // Squared conformation changes
  struct Tors Diff2;   int i;
  Allocate_tors(&Diff2, NM.N_axes, NM.N_Cart, NM.N);
  for(i=0; i<NM.N_Cart;  i++){
    Diff2.Cart[i]=Diff.Cart[i]*Diff.Cart[i];
  }
  for(i=0; i<NM.N_axes;  i++){
    Diff2.Tors[i]=Diff.Tors[i]*Diff.Tors[i];
    Diff2.MW_Tors[i]=Diff.MW_Tors[i]*Diff.MW_Tors[i];
  }

  Print_change(NM.cart_fluct, Diff2.Cart, N_res,  nameout2, "Cart");
  Print_change(NM.tors_fluct, Diff2.Tors, N_axes, nameout2, "Tors");
  char namepdb[200];
  sprintf(namepdb, "%s1.pdb", nameout2);
  Print_tors_fluct(axes,N_axes,Diff2.Tors,atoms,seq,namepdb,"CONFCHANGE");
  sprintf(namepdb, "%s2.pdb", nameout2);
  Print_tors_fluct(axes,N_axes, NM.tors_fluct,atoms,seq,namepdb,"FLUCT");

  Empty_tors(Diff2);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x168, %rsp            # imm = 0x168
movq %r9, %r12
movl %r8d, 0x48(%rsp)
movq %rcx, 0x58(%rsp)
movl %edx, %ebp
movq %rsi, %r15
movq %rdi, 0x50(%rsp)
leaq 0x270(%rsp), %r14
movl 0x1a0(%rsp), %ecx
movl 0x1a8(%rsp), %ebx
movslq 0x1ac(%rsp), %r13
leaq 0x60(%rsp), %rdi
movl %ebx, %esi
movl %r13d, %edx
callq 0x10f90
testq %r13, %r13
jle 0x2ef66
movq 0x8(%r14), %rax
movq 0x68(%rsp), %rcx
xorl %edx, %edx
movss (%rax,%rdx,4), %xmm0
mulss %xmm0, %xmm0
movss %xmm0, (%rcx,%rdx,4)
incq %rdx
cmpq %rdx, %r13
jne 0x2ef50
leaq 0x1a0(%rsp), %r13
testl %ebx, %ebx
jle 0x2efaa
movq 0x10(%r14), %rax
movq 0x18(%r14), %rcx
movq 0x70(%rsp), %rdx
movq 0x78(%rsp), %rsi
xorl %edi, %edi
movss (%rcx,%rdi,4), %xmm0
mulss %xmm0, %xmm0
movss %xmm0, (%rsi,%rdi,4)
movss (%rax,%rdi,4), %xmm0
mulss %xmm0, %xmm0
movss %xmm0, (%rdx,%rdi,4)
incq %rdi
cmpq %rdi, %rbx
jne 0x2ef86
movq 0x58(%r13), %rdi
movq 0x68(%rsp), %rsi
leaq 0x26606(%rip), %r8      # 0x555c0
movl 0x48(%rsp), %edx
movq %r12, %rcx
callq 0x427c6
movq 0x50(%r13), %rdi
movq %rdi, 0x48(%rsp)
movq 0x78(%rsp), %rsi
leaq 0x22e44(%rip), %r8      # 0x51e1f
movl %ebp, %edx
movq %r12, %rcx
callq 0x427c6
leaq 0x2b708(%rip), %rsi     # 0x5a6f4
leaq 0xa0(%rsp), %rbx
movq %rbx, %rdi
movq %r12, %rdx
xorl %eax, %eax
callq 0x2270
movq 0x78(%rsp), %rdx
leaq 0x2b6ef(%rip), %rax     # 0x5a6fc
movq %rax, (%rsp)
movq %r15, %rdi
movl %ebp, %esi
movl %ebp, %r13d
movq %r15, %rbp
movq 0x50(%rsp), %r15
movq %r15, %rcx
movq 0x58(%rsp), %r14
movq %r14, %r8
movq %rbx, %r9
callq 0x42116
leaq 0x2b6cc(%rip), %rsi     # 0x5a707
movq %rbx, %rdi
movq %r12, %rdx
xorl %eax, %eax
callq 0x2270
leaq 0x2b6c0(%rip), %rax     # 0x5a70f
movq %rax, (%rsp)
movq %rbp, %rdi
movl %r13d, %esi
movq 0x48(%rsp), %rdx
movq %r15, %rcx
movq %r14, %r8
movq %rbx, %r9
callq 0x42116
movups 0x60(%rsp), %xmm0
movups 0x70(%rsp), %xmm1
movups 0x80(%rsp), %xmm2
movups 0x90(%rsp), %xmm3
movups %xmm3, 0x30(%rsp)
movups %xmm2, 0x20(%rsp)
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
callq 0x10fed
addq $0x168, %rsp            # imm = 0x168
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq