// File: /workspace/github_c_makefile_star2_O0/markpeerdeman[P]mbemm/src/emath/linearc.c
// Function: remap
void remap(hypermatrix crow, hypermatrix erow, point sourcenode, mesh theMesh)
{ restraint d;
  matrix tmp;
  int i;

  /* swap some matrix items: */
  d=(restraint)restraint_dll(theMesh->mesh_d,START,0);
  while (d!=(restraint)NULL)
  { scalemat3x3(erow->data[d->label],-1.0);
    scalemat3x3(crow->data[d->label],-1.0);
    tmp = erow->data[d->label];
    erow->data[d->label]=crow->data[d->label];
    crow->data[d->label]=tmp;
    d=d->NEXT;
  }

  /* multiply the known side away: */
  for (i=1; i<=n_nodes; i++)
  { V(main_f,sourcenode->label*3-2)+=V(main_u,i*3-2)*H(crow,1,1,i);
    V(main_f,sourcenode->label*3-2)+=V(main_u,i*3-1)*H(crow,1,2,i);
    V(main_f,sourcenode->label*3-2)+=V(main_u,i*3  )*H(crow,1,3,i);

    V(main_f,sourcenode->label*3-1)+=V(main_u,i*3-2)*H(crow,2,1,i);
    V(main_f,sourcenode->label*3-1)+=V(main_u,i*3-1)*H(crow,2,2,i);
    V(main_f,sourcenode->label*3-1)+=V(main_u,i*3  )*H(crow,2,3,i);

    V(main_f,sourcenode->label*3  )+=V(main_u,i*3-2)*H(crow,3,1,i);
    V(main_f,sourcenode->label*3  )+=V(main_u,i*3-1)*H(crow,3,2,i);
    V(main_f,sourcenode->label*3  )+=V(main_u,i*3  )*H(crow,3,3,i);
  }

}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x17a40
movq %rax, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x11f46
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rsp), %rcx
movslq 0x14(%rcx), %rcx
movq (%rax,%rcx,8), %rdi
movsd 0x812f(%rip), %xmm0     # 0x19fd8
callq 0x15ea0
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rsp), %rcx
movslq 0x14(%rcx), %rcx
movq (%rax,%rcx,8), %rdi
movsd 0x810c(%rip), %xmm0     # 0x19fd8
callq 0x15ea0
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rsp), %rcx
movslq 0x14(%rcx), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, 0x8(%rsp)
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rsp), %rcx
movslq 0x14(%rcx), %rcx
movq (%rax,%rcx,8), %rdx
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rsp), %rcx
movslq 0x14(%rcx), %rcx
movq %rdx, (%rax,%rcx,8)
movq 0x8(%rsp), %rdx
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rsp), %rcx
movslq 0x14(%rcx), %rcx
movq %rdx, (%rax,%rcx,8)
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x10(%rsp)
jmp 0x11e7f
movl $0x1, 0x4(%rsp)
movl 0x4(%rsp), %eax
cmpl 0xc910(%rip), %eax      # 0x1e868
jg 0x12358
leaq 0xc4bb(%rip), %rax      # 0x1e420
movq (%rax), %rax
movq 0x8(%rax), %rax
imull $0x3, 0x4(%rsp), %ecx
subl $0x2, %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movslq 0x4(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movsd (%rax), %xmm2
leaq 0xc475(%rip), %rax      # 0x1e418
movq (%rax), %rax
movq 0x8(%rax), %rax
movq 0x20(%rsp), %rcx
imull $0x3, 0x10(%rcx), %ecx
subl $0x2, %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, (%rax,%rcx,8)
leaq 0xc44b(%rip), %rax      # 0x1e420
movq (%rax), %rax
movq 0x8(%rax), %rax
imull $0x3, 0x4(%rsp), %ecx
subl $0x1, %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movslq 0x4(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movsd 0x8(%rax), %xmm2
leaq 0xc404(%rip), %rax      # 0x1e418
movq (%rax), %rax
movq 0x8(%rax), %rax
movq 0x20(%rsp), %rcx
imull $0x3, 0x10(%rcx), %ecx
subl $0x2, %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, (%rax,%rcx,8)
leaq 0xc3da(%rip), %rax      # 0x1e420
movq (%rax), %rax
movq 0x8(%rax), %rax
imull $0x3, 0x4(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movslq 0x4(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movsd 0x10(%rax), %xmm2
leaq 0xc396(%rip), %rax      # 0x1e418
movq (%rax), %rax
movq 0x8(%rax), %rax
movq 0x20(%rsp), %rcx
imull $0x3, 0x10(%rcx), %ecx
subl $0x2, %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, (%rax,%rcx,8)
leaq 0xc36c(%rip), %rax      # 0x1e420
movq (%rax), %rax
movq 0x8(%rax), %rax
imull $0x3, 0x4(%rsp), %ecx
subl $0x2, %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movslq 0x4(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movsd (%rax), %xmm2
leaq 0xc325(%rip), %rax      # 0x1e418
movq (%rax), %rax
movq 0x8(%rax), %rax
movq 0x20(%rsp), %rcx
imull $0x3, 0x10(%rcx), %ecx
subl $0x1, %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, (%rax,%rcx,8)
leaq 0xc2fb(%rip), %rax      # 0x1e420
movq (%rax), %rax
movq 0x8(%rax), %rax
imull $0x3, 0x4(%rsp), %ecx
subl $0x1, %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movslq 0x4(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movsd 0x8(%rax), %xmm2
leaq 0xc2b3(%rip), %rax      # 0x1e418
movq (%rax), %rax
movq 0x8(%rax), %rax
movq 0x20(%rsp), %rcx
imull $0x3, 0x10(%rcx), %ecx
subl $0x1, %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, (%rax,%rcx,8)
leaq 0xc289(%rip), %rax      # 0x1e420
movq (%rax), %rax
movq 0x8(%rax), %rax
imull $0x3, 0x4(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movslq 0x4(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movsd 0x10(%rax), %xmm2
leaq 0xc244(%rip), %rax      # 0x1e418
movq (%rax), %rax
movq 0x8(%rax), %rax
movq 0x20(%rsp), %rcx
imull $0x3, 0x10(%rcx), %ecx
subl $0x1, %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, (%rax,%rcx,8)
leaq 0xc21a(%rip), %rax      # 0x1e420
movq (%rax), %rax
movq 0x8(%rax), %rax
imull $0x3, 0x4(%rsp), %ecx
subl $0x2, %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movslq 0x4(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movsd (%rax), %xmm2
leaq 0xc1d3(%rip), %rax      # 0x1e418
movq (%rax), %rax
movq 0x8(%rax), %rax
movq 0x20(%rsp), %rcx
imull $0x3, 0x10(%rcx), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, (%rax,%rcx,8)
leaq 0xc1ac(%rip), %rax      # 0x1e420
movq (%rax), %rax
movq 0x8(%rax), %rax
imull $0x3, 0x4(%rsp), %ecx
subl $0x1, %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movslq 0x4(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movsd 0x8(%rax), %xmm2
leaq 0xc164(%rip), %rax      # 0x1e418
movq (%rax), %rax
movq 0x8(%rax), %rax
movq 0x20(%rsp), %rcx
imull $0x3, 0x10(%rcx), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, (%rax,%rcx,8)
leaq 0xc13d(%rip), %rax      # 0x1e420
movq (%rax), %rax
movq 0x8(%rax), %rax
imull $0x3, 0x4(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movslq 0x4(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movsd 0x10(%rax), %xmm2
leaq 0xc0f8(%rip), %rax      # 0x1e418
movq (%rax), %rax
movq 0x8(%rax), %rax
movq 0x20(%rsp), %rcx
imull $0x3, 0x10(%rcx), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movl 0x4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4(%rsp)
jmp 0x11f4e
addq $0x38, %rsp
retq
nopl (%rax)