user: What is the c source code of the assembly code below:

```asm
<calculateErrorNorm>:
  endbr64
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  lea    -0x13000(%rsp),%r11
L131:
  sub    $0x1000,%rsp
  orq    $0x0,(%rsp)
  cmp    %r11,%rsp
  jne    L131
  sub    $0xee0,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x13ed8(%rsp)
  xor    %eax,%eax
  test   %ecx,%ecx
  jle    L106
  mov    %r8d,%eax
  mov    %rdx,%r11
  lea    -0x1(%rcx),%r12d
  mov    %r8d,%ebp
  shr    %eax
  lea    0x328(%rdi),%rdx
  mov    %r8d,%r14d
  mov    %ecx,%r10d
  lea    -0x1(%rax),%edi
  lea    0x18(%rsp),%r9
  and    $0xfffffffe,%ebp
  or     $0x1,%r14d
  lea    0x0(,%r12,8),%r13
  add    $0x1,%rdi
  lea    0x20(%rsp,%r13,1),%rbx
  shl    $0x4,%rdi
  nopw   0x0(%rax,%rax,1)
L87:
  pxor   %xmm1,%xmm1
  test   %r8d,%r8d
  jle    L175
  lea    -0x8(%rdx),%rcx
  cmp    $0x1,%r8d
  je     L145
  xor    %eax,%eax
  pxor   %xmm1,%xmm1
  nopl   (%rax)
L99:
  movupd (%rdx,%rax,1),%xmm0
  movupd 0x8(%rsi,%rax,1),%xmm4
  add    $0x10,%rax
  mulpd  %xmm4,%xmm0
  addsd  %xmm0,%xmm1
  unpckhpd %xmm0,%xmm0
  addsd  %xmm0,%xmm1
  cmp    %rdi,%rax
  jne    L99
  movslq %r14d,%rax
  cmp    %ebp,%r8d
  je     L175
L95:
  movsd  (%rsi,%rax,8),%xmm0
  mulsd  (%rcx,%rax,8),%xmm0
  addsd  %xmm0,%xmm1
L175:
  movsd  %xmm1,(%r9)
  add    $0x8,%r9
  add    $0x320,%rdx
  cmp    %rbx,%r9
  jne    L87
  cmp    $0x1,%r10d
  je     L179
  mov    %r10d,%eax
  lea    0x10(%rsp),%rcx
  lea    0x330(%rsp),%r8
  shr    %eax
  lea    -0x1(%rax),%edx
  mov    $0x8,%eax
  shl    $0x4,%rdx
  add    $0x18,%rdx
  nopl   0x0(%rax,%rax,1)
L189:
  movupd (%rcx,%rax,1),%xmm0
  movupd (%r11,%rax,1),%xmm5
  subpd  %xmm5,%xmm0
  movups %xmm0,(%r8,%rax,1)
  add    $0x10,%rax
  cmp    %rdx,%rax
  jne    L189
  mov    %r10d,%eax
  or     $0x1,%eax
  test   $0x1,%r10b
  je     L2
L24:
  cltq
  movsd  0x10(%rsp,%rax,8),%xmm0
  subsd  (%r11,%rax,8),%xmm0
  movsd  %xmm0,0x330(%rsp,%rax,8)
L2:
  mov    %r10d,%eax
  mov    %r10d,%r11d
  mov    %r10d,%ebx
  mov    $0x1,%edi
  shr    %eax
  lea    0x2(%r12),%r9
  and    $0xfffffffe,%r11d
  or     $0x1,%ebx
  lea    -0x1(%rax),%ecx
  lea    0x978(%rsp),%rdx
  add    $0x1,%rcx
  lea    0x338(%rsp),%rsi
  shl    $0x4,%rcx
  nopw   0x0(%rax,%rax,1)
L108:
  movsd  (%r8,%rdi,8),%xmm1
  mov    %edi,%r14d
  cmp    $0x1,%r10d
  je     L130
  movapd %xmm1,%xmm2
  xor    %eax,%eax
  unpcklpd %xmm2,%xmm2
  nopl   (%rax)
L182:
  movupd (%rsi,%rax,1),%xmm0
  mulpd  %xmm2,%xmm0
  movups %xmm0,(%rdx,%rax,1)
  add    $0x10,%rax
  cmp    %rcx,%rax
  jne    L182
  movslq %ebx,%rbp
  cmp    %r10d,%r11d
  je     L38
L84:
  mulsd  0x330(%rsp,%rbp,8),%xmm1
  movslq %r14d,%rax
  lea    (%rax,%rax,4),%rax
  lea    (%rax,%rax,4),%rax
  lea    0x0(%rbp,%rax,4),%rax
  movsd  %xmm1,0x650(%rsp,%rax,8)
L38:
  add    $0x1,%rdi
  add    $0x320,%rdx
  cmp    %r9,%rdi
  jne    L108
  lea    0x980(%rsp,%r12,8),%rbp
  movq   $0x0,0x8(%rsp)
  imul   $0x328,%r12,%r12
  lea    0xca0(%rsp,%r12,1),%r14
  mov    $0xfffffffffffffff8,%r12
  sub    %r13,%r12
  nopw   0x0(%rax,%rax,1)
L121:
  lea    (%r12,%rbp,1),%rbx
  nopl   0x0(%rax)
L11:
  movsd  (%rbx),%xmm0
  mov    $0x2,%edi
  add    $0x8,%rbx
  call   <pow@plt>
  addsd  0x8(%rsp),%xmm0
  movsd  %xmm0,0x8(%rsp)
  cmp    %rbx,%rbp
  jne    L11
  add    $0x320,%rbp
  cmp    %r14,%rbp
  jne    L121
  pxor   %xmm6,%xmm6
  ucomisd 0x8(%rsp),%xmm6
  ja     L64
L26:
  movsd  0x8(%rsp),%xmm0
  sqrtsd %xmm0,%xmm0
  mov    0x13ed8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L45
  add    $0x13ee0,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  ret
L130:
  mov    $0x1,%ebp
  jmp    L84
L145:
  mov    $0x1,%eax
  pxor   %xmm1,%xmm1
  jmp    L95
L106:
  pxor   %xmm6,%xmm6
  movsd  %xmm6,0x8(%rsp)
  jmp    L26
L179:
  mov    $0x1,%eax
  lea    0x330(%rsp),%r8
  jmp    L24
L64:
  mov    0x13ed8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L45
  movsd  0x8(%rsp),%xmm0
  add    $0x13ee0,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  jmp    1090 <sqrt@plt>
L45:
  call   <__stack_chk_fail@plt>
```

assistant: ```c
double calculateErrorNorm(double a[][100], double x[], double b[], int m, int n) {
  int i, j;
  double multiply[100];
  double error[100];
  double sum = 0.0;
  double y[100][100];
  for (i = 1; i <= m; i++) {
    for (j = 1; j <= n; j++)
      sum = sum + a[i][j] * x[j];
    multiply[i] = sum;
    sum = 0.0;
  }
  for (i = 1; i <= m; i++)
    error[i] = multiply[i] - b[i];
  for (i = 1; i <= m; i++) {
    for (j = 1; j <= m; j++)
      y[i][j] = error[i] * error[j];
  }
  sum = 0.0;
  for (i = 1; i <= m; i++) {
    for (j = 1; j <= m; j++)
      sum = sum + pow(y[i][j], 2);
  }
  return sqrt(sum);
}
```