user: 请将这段汇编代码片段转换成等效的C代码:

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x1000,%rsp
  orq    $0x0,(%rsp)
  sub    $0xf60,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movl   $0x0,-0x1f60(%rbp)
  jmp    L132
L146:
  mov    -0x1f60(%rbp),%eax
  cltq
  movsd  -0x1f50(%rbp,%rax,8),%xmm0
  movsd  -0x1f58(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1f58(%rbp)
  addl   $0x1,-0x1f60(%rbp)
L132:
  cmpl   $0x3e7,-0x1f60(%rbp)
  jle    L146
  movl   $0x0,-0x1f60(%rbp)
  jmp    L20
L33:
  mov    -0x1f60(%rbp),%eax
  cltq
  movsd  -0x1f50(%rbp,%rax,8),%xmm0
  movsd  -0x1f58(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1f58(%rbp)
  addl   $0x1,-0x1f60(%rbp)
L20:
  cmpl   $0x3e7,-0x1f60(%rbp)
  jle    L33
  movl   $0x0,-0x1f60(%rbp)
  jmp    L125
L179:
  mov    -0x1f60(%rbp),%eax
  cltq
  movsd  -0x1f50(%rbp,%rax,8),%xmm1
  movsd  -0x1f58(%rbp),%xmm0
  comisd %xmm1,%xmm0
  jbe    L120
  movsd  -0x1f58(%rbp),%xmm0
  jmp    L126
L120:
  mov    -0x1f60(%rbp),%eax
  cltq
  movsd  -0x1f50(%rbp,%rax,8),%xmm0
L126:
  movsd  %xmm0,-0x1f58(%rbp)
  addl   $0x1,-0x1f60(%rbp)
L125:
  cmpl   $0x3e7,-0x1f60(%rbp)
  jle    L179
  movl   $0x0,-0x1f60(%rbp)
  jmp    L154
L22:
  mov    -0x1f60(%rbp),%eax
  cltq
  movsd  -0x1f50(%rbp,%rax,8),%xmm0
  comisd -0x1f58(%rbp),%xmm0
  jbe    L123
  movsd  -0x1f58(%rbp),%xmm0
  jmp    L37
L123:
  mov    -0x1f60(%rbp),%eax
  cltq
  movsd  -0x1f50(%rbp,%rax,8),%xmm0
L37:
  movsd  %xmm0,-0x1f58(%rbp)
  addl   $0x1,-0x1f60(%rbp)
L154:
  cmpl   $0x3e7,-0x1f60(%rbp)
  jle    L22
  movl   $0x0,-0x1f60(%rbp)
  jmp    L191
L26:
  cmpl   $0x0,-0x1f5c(%rbp)
  je     L184
  mov    -0x1f60(%rbp),%eax
  cltq
  movsd  -0x1f50(%rbp,%rax,8),%xmm1
  movsd  -0x1f58(%rbp),%xmm0
  comisd %xmm1,%xmm0
  jbe    L184
  mov    $0x1,%eax
  jmp    L176
L184:
  mov    $0x0,%eax
L176:
  mov    %eax,-0x1f5c(%rbp)
  addl   $0x1,-0x1f60(%rbp)
L191:
  cmpl   $0x3e7,-0x1f60(%rbp)
  jle    L26
  movl   $0x0,-0x1f60(%rbp)
  jmp    L18
L114:
  cmpl   $0x0,-0x1f5c(%rbp)
  jne    L181
  mov    -0x1f60(%rbp),%eax
  cltq
  movsd  -0x1f50(%rbp,%rax,8),%xmm1
  movsd  -0x1f58(%rbp),%xmm0
  comisd %xmm1,%xmm0
  jbe    L204
L181:
  mov    $0x1,%eax
  jmp    L4
L204:
  mov    $0x0,%eax
L4:
  mov    %eax,-0x1f5c(%rbp)
  addl   $0x1,-0x1f60(%rbp)
L18:
  cmpl   $0x3e7,-0x1f60(%rbp)
  jle    L114
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L53
  call   <__stack_chk_fail@plt>
L53:
  leave
  ret
```

assistant: ```c
int main(void) {
  int i;
  double result, array[1000];
  int lresult;
#pragma acc parallel
#pragma acc loop gang worker vector reduction(+ : result)
  for (i = 0; i < 1000; i++)
    result += array[i];
#pragma acc parallel
#pragma acc loop gang worker vector reduction(* : result)
  for (i = 0; i < 1000; i++)
    result *= array[i];
#pragma acc parallel
#pragma acc loop gang worker vector reduction(max : result)
  for (i = 0; i < 1000; i++)
    result = result > array[i] ? result : array[i];
#pragma acc parallel
#pragma acc loop gang worker vector reduction(min : result)
  for (i = 0; i < 1000; i++)
    result = result < array[i] ? result : array[i];
#pragma acc parallel
#pragma acc loop gang worker vector reduction(&& : lresult)
  for (i = 0; i < 1000; i++)
    lresult = lresult && (result > array[i]);
#pragma acc parallel
#pragma acc loop gang worker vector reduction(|| : lresult)
  for (i = 0; i < 1000; i++)
    lresult = lresult || (result > array[i]);
  return 0;
}
```