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

```asm
<erfc1__>:
  endbr64
  push   %rbx
  movapd %xmm0,%xmm2
  mov    %edi,%ebx
  movapd %xmm0,%xmm3
  sub    $0x20,%rsp
  andpd  D42(%rip),%xmm2
  movsd  D277(%rip),%xmm4
  comisd %xmm2,%xmm4
  jae    L92
  movsd  D335(%rip),%xmm0
  comisd %xmm2,%xmm0
  jb     L31
  movsd  D226(%rip),%xmm1
  movsd  D439(%rip),%xmm0
  mulsd  %xmm2,%xmm1
  addsd  %xmm2,%xmm0
  addsd  D191(%rip),%xmm1
  mulsd  %xmm2,%xmm0
  mulsd  %xmm2,%xmm1
  addsd  D235(%rip),%xmm0
  addsd  D394(%rip),%xmm1
  mulsd  %xmm2,%xmm0
  mulsd  %xmm2,%xmm1
  addsd  D61(%rip),%xmm0
  addsd  D115(%rip),%xmm1
  mulsd  %xmm2,%xmm0
  mulsd  %xmm2,%xmm1
  addsd  D92(%rip),%xmm0
  addsd  D190(%rip),%xmm1
  mulsd  %xmm2,%xmm0
  mulsd  %xmm2,%xmm1
  addsd  D85(%rip),%xmm0
  addsd  D200(%rip),%xmm1
  mulsd  %xmm2,%xmm0
  mulsd  %xmm2,%xmm1
  addsd  D158(%rip),%xmm0
  addsd  D400(%rip),%xmm1
  mulsd  %xmm2,%xmm0
  mulsd  %xmm2,%xmm1
  addsd  D59(%rip),%xmm0
  addsd  D227(%rip),%xmm1
  divsd  %xmm0,%xmm1
  test   %ebx,%ebx
  je     L110
L21:
  pxor   %xmm0,%xmm0
  comisd %xmm3,%xmm0
  ja     L156
L5:
  add    $0x20,%rsp
  movapd %xmm1,%xmm0
  pop    %rbx
  ret
  nopl   0x0(%rax,%rax,1)
L31:
  movsd  D268(%rip),%xmm0
  comisd %xmm3,%xmm0
  jae    L90
  test   %edi,%edi
  jne    L130
  comisd D269(%rip),%xmm3
  ja     L122
  movapd %xmm3,%xmm1
  mov    $0x1,%edi
  movsd  %xmm2,0x18(%rsp)
  mulsd  %xmm3,%xmm1
  movsd  %xmm3,0x10(%rsp)
  movsd  %xmm1,0x8(%rsp)
  call   <exparg@plt>
  movsd  0x8(%rsp),%xmm1
  xorpd  D428(%rip),%xmm0
  movsd  0x10(%rsp),%xmm3
  movsd  0x18(%rsp),%xmm2
  comisd %xmm0,%xmm1
  jbe    L85
L122:
  pxor   %xmm1,%xmm1
  jmp    L5
  nopl   (%rax)
L92:
  movapd %xmm0,%xmm2
  movsd  D155(%rip),%xmm1
  movsd  D47(%rip),%xmm5
  mulsd  %xmm0,%xmm2
  movsd  D94(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  subsd  D49(%rip),%xmm0
  mulsd  %xmm2,%xmm1
  addsd  D140(%rip),%xmm1
  mulsd  %xmm2,%xmm0
  addsd  D261(%rip),%xmm0
  mulsd  %xmm2,%xmm1
  addsd  D156(%rip),%xmm1
  mulsd  %xmm2,%xmm0
  addsd  D62(%rip),%xmm0
  mulsd  %xmm2,%xmm1
  mulsd  %xmm2,%xmm0
  addsd  D131(%rip),%xmm0
  addsd  %xmm5,%xmm1
  addsd  %xmm5,%xmm0
  divsd  %xmm1,%xmm0
  movapd %xmm4,%xmm1
  mulsd  %xmm3,%xmm0
  subsd  %xmm0,%xmm1
  addsd  %xmm4,%xmm1
  test   %edi,%edi
  je     L5
  movapd %xmm2,%xmm0
  movsd  %xmm1,0x8(%rsp)
  call   <exp@plt>
  movsd  0x8(%rsp),%xmm1
  add    $0x20,%rsp
  pop    %rbx
  mulsd  %xmm0,%xmm1
  movapd %xmm1,%xmm0
  ret
  nopl   0x0(%rax,%rax,1)
L130:
  movapd %xmm3,%xmm1
  mulsd  %xmm3,%xmm1
L85:
  movsd  D47(%rip),%xmm5
  movsd  D437(%rip),%xmm0
  movapd %xmm5,%xmm6
  divsd  %xmm1,%xmm6
  movsd  D210(%rip),%xmm1
  mulsd  %xmm6,%xmm0
  mulsd  %xmm6,%xmm1
  addsd  D37(%rip),%xmm0
  addsd  D172(%rip),%xmm1
  mulsd  %xmm6,%xmm0
  mulsd  %xmm6,%xmm1
  addsd  D245(%rip),%xmm0
  addsd  D366(%rip),%xmm1
  mulsd  %xmm6,%xmm0
  mulsd  %xmm6,%xmm1
  addsd  D122(%rip),%xmm0
  addsd  D151(%rip),%xmm1
  mulsd  %xmm6,%xmm0
  mulsd  %xmm6,%xmm1
  addsd  D280(%rip),%xmm0
  mulsd  %xmm6,%xmm0
  addsd  %xmm5,%xmm1
  divsd  %xmm1,%xmm0
  movsd  D211(%rip),%xmm1
  subsd  %xmm0,%xmm1
  divsd  %xmm2,%xmm1
  test   %ebx,%ebx
  jne    L21
L110:
  movapd %xmm3,%xmm2
  movsd  %xmm1,0x18(%rsp)
  mulsd  %xmm3,%xmm2
  movsd  %xmm3,0x10(%rsp)
  movapd %xmm2,%xmm0
  xorpd  D428(%rip),%xmm0
  movsd  %xmm2,0x8(%rsp)
  call   <exp@plt>
  movsd  0x8(%rsp),%xmm2
  mov    D277(%rip),%rax
  movapd %xmm0,%xmm5
  movsd  0x18(%rsp),%xmm1
  movsd  0x10(%rsp),%xmm3
  subsd  %xmm2,%xmm2
  movq   %rax,%xmm0
  movq   %rax,%xmm4
  subsd  %xmm2,%xmm0
  addsd  %xmm4,%xmm0
  mulsd  %xmm5,%xmm0
  mulsd  %xmm0,%xmm1
  pxor   %xmm0,%xmm0
  comisd %xmm3,%xmm0
  jbe    L5
  movsd  D241(%rip),%xmm0
  subsd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  jmp    L5
  nopl   (%rax)
L90:
  movsd  D241(%rip),%xmm1
  test   %edi,%edi
  je     L5
  mulsd  %xmm3,%xmm3
  movapd %xmm3,%xmm0
  call   <exp@plt>
  movapd %xmm0,%xmm1
  addsd  %xmm0,%xmm1
  jmp    L5
  nopw   0x0(%rax,%rax,1)
L156:
  mulsd  %xmm3,%xmm3
  movsd  %xmm1,0x8(%rsp)
  movapd %xmm3,%xmm0
  call   <exp@plt>
  movsd  0x8(%rsp),%xmm1
  addsd  %xmm0,%xmm0
  subsd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  jmp    L5
```

tool_calls: name: disassemble_data
arguments: data_label: D42
data_type: qword[2]
name: disassemble_data
arguments: data_label: D277
data_type: f64
name: disassemble_data
arguments: data_label: D335
data_type: f64
name: disassemble_data
arguments: data_label: D226
data_type: byte[8]
name: disassemble_data
arguments: data_label: D439
data_type: f64
name: disassemble_data
arguments: data_label: D191
data_type: byte[8]
name: disassemble_data
arguments: data_label: D235
data_type: f64
name: disassemble_data
arguments: data_label: D394
data_type: f64
name: disassemble_data
arguments: data_label: D61
data_type: f64
name: disassemble_data
arguments: data_label: D115
data_type: f64
name: disassemble_data
arguments: data_label: D92
data_type: f64
name: disassemble_data
arguments: data_label: D190
data_type: f64
name: disassemble_data
arguments: data_label: D85
data_type: f64
name: disassemble_data
arguments: data_label: D200
data_type: f64
name: disassemble_data
arguments: data_label: D158
data_type: f64
name: disassemble_data
arguments: data_label: D400
data_type: f64
name: disassemble_data
arguments: data_label: D59
data_type: f64
name: disassemble_data
arguments: data_label: D227
data_type: f64
name: disassemble_data
arguments: data_label: D268
data_type: byte[8]
name: disassemble_data
arguments: data_label: D269
data_type: f64[2]
name: disassemble_data
arguments: data_label: D428
data_type: f32[4]
name: disassemble_data
arguments: data_label: D155
data_type: byte[8]
name: disassemble_data
arguments: data_label: D47
data_type: f64
name: disassemble_data
arguments: data_label: D94
data_type: byte[8]
name: disassemble_data
arguments: data_label: D49
data_type: byte[8]
name: disassemble_data
arguments: data_label: D140
data_type: byte[8]
name: disassemble_data
arguments: data_label: D261
data_type: byte[8]
name: disassemble_data
arguments: data_label: D156
data_type: byte[8]
name: disassemble_data
arguments: data_label: D62
data_type: byte[8]
name: disassemble_data
arguments: data_label: D131
data_type: byte[8]
name: disassemble_data
arguments: data_label: D437
data_type: f64
name: disassemble_data
arguments: data_label: D210
data_type: f64
name: disassemble_data
arguments: data_label: D37
data_type: f64
name: disassemble_data
arguments: data_label: D172
data_type: f64
name: disassemble_data
arguments: data_label: D245
data_type: f64
name: disassemble_data
arguments: data_label: D366
data_type: f64
name: disassemble_data
arguments: data_label: D122
data_type: f64
name: disassemble_data
arguments: data_label: D151
data_type: f64
name: disassemble_data
arguments: data_label: D280
data_type: byte[8]
name: disassemble_data
arguments: data_label: D211
data_type: byte[8]
name: disassemble_data
arguments: data_label: D241
data_type: f64

tool: {"D42": [0x7fffffffffffffff,0x0000000000000000]}

tool: D277: 0.5

tool: D335: 4

tool: {"D226": [0xe7,0xbd,0x5a,0x04,0xa4,0x5e,0x82,0xbe]}

tool: D439: 12.7827273196294

tool: {"D191": [0x57,0xe7,0x03,0xc2,0xe3,0x0d,0xe2,0x3f]}

tool: D235: 77.0001529352295

tool: D394: 7.21175825088309

tool: D61: 277.585444743988

tool: D115: 43.1622272220567

tool: D92: 638.980264465631

tool: D190: 152.98928504694

tool: D85: 931.35409485061

tool: D200: 339.320816734344

tool: D158: 790.950925327898

tool: D400: 451.918953711873

tool: D59: 300.459260956983

tool: D227: 300.459261020162

tool: {"D268": [0x66,0x66,0x66,0x66,0x66,0x66,0x16,0xc0]}

tool: {"D269": [100.0,2.10144126479064]}

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

tool: {"D155": [0x2f,0x09,0xdb,0x88,0x72,0xa9,0x68,0x3f]}

tool: D47: 1

tool: {"D94": [0x52,0x38,0x61,0x68,0x7c,0x36,0x14,0x3f]}

tool: {"D49": [0xa8,0xa2,0x17,0x74,0x33,0xe9,0x55,0x3f]}

tool: {"D140": [0xfe,0x7f,0x76,0xe2,0x68,0x98,0xab,0x3f]}

tool: {"D261": [0x02,0x2e,0x60,0x1c,0xa1,0x8a,0xa0,0x3f]}

tool: {"D156": [0x9f,0x56,0xde,0xa5,0x09,0x0d,0xd8,0x3f]}

tool: {"D62": [0x71,0x02,0x23,0x7a,0x25,0x88,0xa8,0x3f]}

tool: {"D131": [0x78,0xdb,0x14,0x82,0xba,0x6e,0xc0,0x3f]}

tool: D437: 2.10144126479064

tool: D210: 94.153775055546

tool: D37: 26.2370141675169

tool: D172: 187.11481179959

tool: D245: 21.3688200555087

tool: D366: 99.0191814623914

tool: D122: 4.6580782871847

tool: D151: 18.0124575948747

tool: {"D280": [0x6f,0x82,0x42,0x50,0xd7,0x0d,0xd2,0x3f]}

tool: {"D211": [0x6a,0x9b,0x42,0x50,0xd7,0x0d,0xe2,0x3f]}

tool: D241: 2

assistant: ```c
double erfc1__(int ind, double x) {
  double c = .564189583547756;
  double a[5] = {7.7105849500132e-5, -.00133733772997339, .0323076579225834, .0479137145607681, .128379167095513};
  double b[3] = {.00301048631703895, .0538971687740286, .375795757275549};
  double p[8] = {-1.36864857382717e-7, .564195517478974, 7.21175825088309, 43.1622272220567, 152.98928504694, 339.320816734344, 451.918953711873, 300.459261020162};
  double q[8] = {1., 12.7827273196294, 77.0001529352295, 277.585444743988, 638.980264465631, 931.35409485061, 790.950925327898, 300.459260956983};
  double r[5] = {2.10144126479064, 26.2370141675169, 21.3688200555087, 4.6580782871847, .282094791773523};
  double s[4] = {94.153775055546, 187.11481179959, 99.0191814623914, 18.0124575948747};
  double ret_val;
  double e, t, w, bot, top;
  double ax = fabs(x);
  if (ax <= 0.5) {
    double t = x * x, top = (((a[0] * t + a[1]) * t + a[2]) * t + a[3]) * t + a[4] + 1.0, bot = ((b[0] * t + b[1]) * t + b[2]) * t + 1.0;
    ret_val = 0.5 - x * (top / bot) + 0.5;
    if (ind != 0) {
      ret_val = exp(t) * ret_val;
    }
    return ret_val;
  }
  if (ax <= 4.0) {
    top = ((((((p[0] * ax + p[1]) * ax + p[2]) * ax + p[3]) * ax + p[4]) * ax + p[5]) * ax + p[6]) * ax + p[7];
    bot = ((((((q[0] * ax + q[1]) * ax + q[2]) * ax + q[3]) * ax + q[4]) * ax + q[5]) * ax + q[6]) * ax + q[7];
    ret_val = top / bot;
  } else {
    if (x <= -5.6) {
      ret_val = 2.0;
      if (ind != 0) {
        ret_val = exp(x * x) * 2.0;
      }
      return ret_val;
    }
    if (ind == 0 && (x > 100.0 || x * x > -exparg(1))) {
      return 0.0;
    }
    t = 1. / (x * x);
    top = (((r[0] * t + r[1]) * t + r[2]) * t + r[3]) * t + r[4];
    bot = (((s[0] * t + s[1]) * t + s[2]) * t + s[3]) * t + 1.0;
    ret_val = (c - t * top / bot) / ax;
  }
  if (ind != 0) {
    if (x < 0.0)
      ret_val = exp(x * x) * 2.0 - ret_val;
  } else {
    w = x * x;
    t = w;
    e = w - t;
    ret_val = (0.5 - e + 0.5) * exp(-t) * ret_val;
    if (x < 0.0)
      ret_val = 2.0 - ret_val;
  }
  return ret_val;
}
```