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

```asm
<pnorm>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x60,%rsp
  movsd  %xmm0,-0x58(%rbp)
  movsd  D138(%rip),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  movsd  D133(%rip),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  D125(%rip),%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  D111(%rip),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  D156(%rip),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  D13(%rip),%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  D23(%rip),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x58(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comisd %xmm1,%xmm0
  jb     L11
  movsd  -0x20(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x58(%rbp),%xmm1
  movsd  D47(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movsd  D47(%rip),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x58(%rbp),%xmm0
  movq   D140(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  mulsd  -0x58(%rbp),%xmm0
  movsd  D92(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <exp@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  mulsd  -0x18(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x8(%rbp),%xmm1
  movsd  -0x8(%rbp),%xmm0
  mulsd  -0x28(%rbp),%xmm0
  addsd  -0x30(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  addsd  -0x38(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  addsd  -0x40(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  addsd  -0x48(%rbp),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D47(%rip),%xmm0
  subsd  %xmm1,%xmm0
  jmp    L12
L11:
  movsd  -0x20(%rbp),%xmm0
  movapd %xmm0,%xmm2
  mulsd  -0x58(%rbp),%xmm2
  movsd  D47(%rip),%xmm0
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  movsd  D47(%rip),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x58(%rbp),%xmm0
  movq   D140(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  mulsd  -0x58(%rbp),%xmm0
  movsd  D92(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <exp@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  mulsd  -0x18(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x10(%rbp),%xmm1
  movsd  -0x10(%rbp),%xmm0
  mulsd  -0x28(%rbp),%xmm0
  addsd  -0x30(%rbp),%xmm0
  mulsd  -0x10(%rbp),%xmm0
  addsd  -0x38(%rbp),%xmm0
  mulsd  -0x10(%rbp),%xmm0
  addsd  -0x40(%rbp),%xmm0
  mulsd  -0x10(%rbp),%xmm0
  addsd  -0x48(%rbp),%xmm0
  mulsd  %xmm1,%xmm0
L12:
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  leave
  ret
```

tool_calls: name: read_data
arguments: label: D138
data_type: f64
name: read_data
arguments: label: D133
data_type: byte[8]
name: read_data
arguments: label: D125
data_type: f64
name: read_data
arguments: label: D111
data_type: byte[8]
name: read_data
arguments: label: D156
data_type: f64
name: read_data
arguments: label: D13
data_type: f64
name: read_data
arguments: label: D23
data_type: f64
name: read_data
arguments: label: D47
data_type: f64
name: read_data
arguments: label: D140
data_type: f32[2]
name: read_data
arguments: label: D92
data_type: f64

tool: D138: 0.31938153

tool: {"D133": [0x5b,0x32,0xa8,0xe5,0xf0,0xd1,0xd6,0xbf]}

tool: D125: 1.781477937

tool: {"D111": [0xd0,0x78,0xf2,0x4e,0xdd,0x23,0xfd,0xbf]}

tool: D156: 1.330274429

tool: D13: 0.2316419

tool: D23: 0.39894228

tool: D47: 1

tool: {"D140": [0.0,-0.0]}

tool: D92: 2

assistant: ```c
double pnorm(double x) {
  double b1 = 0.319381530;
  double b2 = -0.356563782;
  double b3 = 1.781477937;
  double b4 = -1.821255978;
  double b5 = 1.330274429;
  double p = 0.2316419;
  double c = 0.39894228;
  if (x >= 0.0) {
    double t = 1.0 / (1.0 + p * x);
    return (1.0 - c * exp(-x * x / 2.0) * t * (t * (t * (t * (t * b5 + b4) + b3) + b2) + b1));
  }
  double t = 1.0 / (1.0 - p * x);
  return (c * exp(-x * x / 2.0) * t * (t * (t * (t * (t * b5 + b4) + b3) + b2) + b1));
}
```