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

```asm
<main>:
  endbr64
  movsd  D18(%rip),%xmm0
  movsd  D91(%rip),%xmm1
  mov    $0x0,%eax
  movsd  D39(%rip),%xmm3
L180:
  addsd  %xmm3,%xmm1
  pxor   %xmm2,%xmm2
  cvtsi2sd %eax,%xmm2
  addsd  %xmm2,%xmm0
  add    $0x1,%eax
  cmp    $0xf4240,%eax
  jne    L180
  ucomisd D122(%rip),%xmm1
  setp   %al
  mov    $0x1,%edx
  cmovne %edx,%eax
  test   %al,%al
  jne    L139
  ucomisd D29(%rip),%xmm0
  setp   %al
  cmovne %edx,%eax
  test   %al,%al
  jne    L139
  mov    $0xa,%edx
  movsd  D113(%rip),%xmm0
L193:
  mov    $0x0,%eax
L147:
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  addsd  %xmm1,%xmm0
  add    $0x1,%eax
  cmp    $0x186a0,%eax
  jne    L147
  sub    $0x1,%edx
  jne    L193
  ucomisd D2(%rip),%xmm0
  jp     L100
  jne    L100
  mov    $0xa,%edx
  movsd  D113(%rip),%xmm0
L9:
  mov    $0x0,%eax
L191:
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  addsd  %xmm1,%xmm0
  add    $0x1,%eax
  cmp    $0x186a0,%eax
  jne    L191
  sub    $0x1,%edx
  jne    L9
  ucomisd D2(%rip),%xmm0
  jp     L43
  jne    L43
  mov    $0x64,%edx
  movsd  D113(%rip),%xmm2
L62:
  pxor   %xmm0,%xmm0
  mov    $0x0,%eax
L194:
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  addsd  %xmm1,%xmm0
  add    $0x1,%eax
  cmp    $0x2710,%eax
  jne    L194
  addsd  %xmm0,%xmm2
  sub    $0x1,%edx
  jne    L62
  ucomisd D97(%rip),%xmm2
  jp     L12
  jne    L12
  mov    $0x64,%edx
  movsd  D113(%rip),%xmm0
L111:
  mov    $0x0,%eax
L197:
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  addsd  %xmm1,%xmm0
  add    $0x1,%eax
  cmp    $0x2710,%eax
  jne    L197
  sub    $0x1,%edx
  jne    L111
  ucomisd D97(%rip),%xmm0
  jp     L39
  mov    $0x0,%eax
  jne    L39
L192:
  ret
L39:
  mov    $0x5,%eax
  ret
L139:
  mov    $0x1,%eax
  ret
L100:
  mov    $0x2,%eax
  ret
L43:
  mov    $0x3,%eax
  ret
L12:
  mov    $0x4,%eax
  jmp    L192
```

tool_calls: name: disassemble_data
arguments: label: D18
data_type: f32[2]
name: disassemble_data
arguments: label: D91
data_type: f32[2]
name: disassemble_data
arguments: label: D39
data_type: f64
name: disassemble_data
arguments: label: D122
data_type: f64
name: disassemble_data
arguments: label: D29
data_type: f64
name: disassemble_data
arguments: label: D113
data_type: f32[2]
name: disassemble_data
arguments: label: D2
data_type: f64
name: disassemble_data
arguments: label: D97
data_type: f64

tool: {"D18": [0.0,3.9453125]}

tool: {"D91": [0.0,3.48046875]}

tool: D39: 1

tool: D122: 1000123

tool: D29: 499999500456

tool: {"D113": [0.0,4.591796875]}

tool: D2: 49999501212

tool: D97: 4999501212

assistant: ```c
int main() {
  int i, j, k;
  double sum0, sum1;
  sum0 = 123;
  sum1 = 456;
#pragma acc parallel
#pragma acc loop reduction(+ : sum0, sum1)
  for (i = 0; i < 1000000; i++) {
    sum0 += 1.0;
    sum1 += i;
  }
  if (sum0 != 1000123.0 || sum1 != 499999500456.0) {
    return 1;
  }
  sum0 = 1212;
#pragma acc parallel private(i)
  {
    for (i = 0; i < 10; i++) {
#pragma acc loop reduction(+ : sum0) gang vector
      for (j = 0; j < 100000; j++) {
        sum0 += j;
      }
    }
  }
  if (sum0 != 49999501212.0) {
    return 2;
  }
  sum0 = 1212;
#pragma acc parallel private(i) num_gangs(16)
  {
    for (i = 0; i < 10; i++) {
#pragma acc loop reduction(+ : sum0) gang vector
      for (j = 0; j < 100000; j++) {
        sum0 += j;
      }
    }
  }
  if (sum0 != 49999501212.0) {
    return 3;
  }
  sum0 = 1212;
#pragma acc parallel num_gangs(10)
  {
#pragma acc loop reduction(+ : sum0) gang
    for (i = 0; i < 100; i++) {
      double tmp = 0;
#pragma acc loop reduction(+ : tmp) vector
      for (j = 0; j < 10000; j++) {
        tmp += j;
      }
      sum0 += tmp;
    }
  }
  if (sum0 != 4999501212.0) {
    return 4;
  }
  sum0 = 1212;
#pragma acc parallel num_gangs(10)
  {
#pragma acc loop reduction(+ : sum0) gang
    for (i = 0; i < 100; i++) {
#pragma acc loop reduction(+ : sum0) vector
      for (j = 0; j < 10000; j++) {
        sum0 += j;
      }
    }
  }
  if (sum0 != 4999501212.0) {
    return 5;
  }
  return 0;
}
```