user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<zeta>:
  endbr64
  subsd  %xmm0,%xmm1
  cmp    $0x2,%edi
  je     L65
  jg     L6
  test   %edi,%edi
  je     L74
  cmp    $0x1,%edi
  jne    L87
  subsd  D51(%rip),%xmm0
  movsd  D123(%rip),%xmm3
  divsd  %xmm3,%xmm1
  movapd %xmm0,%xmm2
  divsd  %xmm3,%xmm2
  movsd  D301(%rip),%xmm3
  movapd %xmm1,%xmm0
  mulsd  D87(%rip),%xmm1
  mulsd  %xmm2,%xmm3
  addsd  D43(%rip),%xmm3
  addsd  %xmm1,%xmm3
  movsd  D296(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D68(%rip),%xmm1
  mulsd  %xmm0,%xmm3
  mulsd  %xmm2,%xmm1
  addsd  D277(%rip),%xmm1
  addsd  %xmm3,%xmm1
  mulsd  %xmm1,%xmm0
L89:
  divsd  D41(%rip),%xmm0
  mulsd  D367(%rip),%xmm0
  ret
  nopl   (%rax)
L6:
  cmp    $0x3,%edi
  jne    L87
  movsd  D123(%rip),%xmm2
  subsd  D51(%rip),%xmm0
  movsd  D143(%rip),%xmm4
  movsd  D47(%rip),%xmm3
  divsd  %xmm2,%xmm1
  divsd  %xmm2,%xmm0
  movsd  D273(%rip),%xmm2
  mulsd  %xmm1,%xmm4
  subsd  D318(%rip),%xmm0
  mulsd  %xmm0,%xmm3
  addsd  D328(%rip),%xmm3
  mulsd  %xmm0,%xmm2
  addsd  D68(%rip),%xmm2
  addsd  %xmm4,%xmm3
  mulsd  %xmm2,%xmm0
  addsd  D238(%rip),%xmm0
  mulsd  %xmm1,%xmm3
  addsd  %xmm3,%xmm0
  mulsd  %xmm1,%xmm0
  jmp    L89
  cs nopw 0x0(%rax,%rax,1)
L65:
  subsd  D51(%rip),%xmm0
  movsd  D123(%rip),%xmm3
  divsd  %xmm3,%xmm1
  movapd %xmm0,%xmm2
  divsd  %xmm3,%xmm2
  movsd  D109(%rip),%xmm3
  movapd %xmm1,%xmm0
  mulsd  D196(%rip),%xmm1
  mulsd  %xmm2,%xmm3
  addsd  D130(%rip),%xmm3
  addsd  %xmm1,%xmm3
  movsd  D381(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D68(%rip),%xmm1
  mulsd  %xmm0,%xmm3
  mulsd  %xmm2,%xmm1
  addsd  D106(%rip),%xmm1
  addsd  %xmm3,%xmm1
  mulsd  %xmm1,%xmm0
  jmp    L89
  nopl   0x0(%rax)
L87:
  subsd  D45(%rip),%xmm0
  movsd  D319(%rip),%xmm3
  divsd  %xmm3,%xmm1
  movapd %xmm0,%xmm2
  divsd  %xmm3,%xmm2
  movsd  D295(%rip),%xmm3
  movapd %xmm1,%xmm0
  mulsd  D372(%rip),%xmm1
  mulsd  %xmm2,%xmm3
  addsd  D27(%rip),%xmm3
  addsd  %xmm1,%xmm3
  movsd  D166(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D126(%rip),%xmm1
  mulsd  %xmm0,%xmm3
  mulsd  %xmm2,%xmm1
  addsd  D392(%rip),%xmm1
  addsd  %xmm3,%xmm1
  mulsd  %xmm1,%xmm0
  jmp    L89
  nopl   0x0(%rax)
L74:
  movsd  D123(%rip),%xmm3
  subsd  D51(%rip),%xmm0
  movsd  D143(%rip),%xmm2
  divsd  %xmm3,%xmm1
  divsd  %xmm3,%xmm0
  mulsd  %xmm1,%xmm2
  addsd  D178(%rip),%xmm2
  mulsd  %xmm1,%xmm2
  subsd  D318(%rip),%xmm0
  mulsd  D409(%rip),%xmm0
  addsd  D129(%rip),%xmm0
  addsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  jmp    L89
```

tool_calls: name: read_data
arguments: tag: D51
data_type: byte[8]
name: read_data
arguments: tag: D123
data_type: f64
name: read_data
arguments: tag: D301
data_type: byte[8]
name: read_data
arguments: tag: D87
data_type: f64
name: read_data
arguments: tag: D43
data_type: f64
name: read_data
arguments: tag: D296
data_type: f64
name: read_data
arguments: tag: D68
data_type: f64
name: read_data
arguments: tag: D277
data_type: f64
name: read_data
arguments: tag: D41
data_type: f64
name: read_data
arguments: tag: D367
data_type: byte[8]
name: read_data
arguments: tag: D143
data_type: f64
name: read_data
arguments: tag: D47
data_type: byte[8]
name: read_data
arguments: tag: D273
data_type: f64
name: read_data
arguments: tag: D318
data_type: f64
name: read_data
arguments: tag: D328
data_type: f64
name: read_data
arguments: tag: D238
data_type: f64
name: read_data
arguments: tag: D109
data_type: byte[8]
name: read_data
arguments: tag: D196
data_type: f64
name: read_data
arguments: tag: D130
data_type: f64
name: read_data
arguments: tag: D381
data_type: f64
name: read_data
arguments: tag: D106
data_type: f64
name: read_data
arguments: tag: D45
data_type: f64
name: read_data
arguments: tag: D319
data_type: f64
name: read_data
arguments: tag: D295
data_type: byte[8]
name: read_data
arguments: tag: D372
data_type: f64
name: read_data
arguments: tag: D27
data_type: f64
name: read_data
arguments: tag: D166
data_type: byte[8]
name: read_data
arguments: tag: D126
data_type: f64
name: read_data
arguments: tag: D392
data_type: f64
name: read_data
arguments: tag: D178
data_type: f64
name: read_data
arguments: tag: D409
data_type: f64
name: read_data
arguments: tag: D129
data_type: f64

tool: {"D51": [0x2c,0xf0,0x0e,0x1a,0x2b,0x49,0x42,0x41]}

tool: D123: 36524.21987817305

tool: {"D301": [0x8b,0xe0,0x7f,0x2b,0xd9,0xb1,0x31,0xbf]}

tool: D87: 0.017995

tool: D43: 0.3024

tool: D296: 6e-05

tool: D68: 1.3972

tool: D277: 2303.5545

tool: D41: 3600

tool: {"D367": [0x39,0x9d,0x52,0xa2,0x46,0xdf,0x91,0x3f]}

tool: D143: 0.018

tool: {"D47": [0x97,0xe5,0xeb,0x32,0xfc,0xa7,0x2b,0xbf]}

tool: D273: 0.000125

tool: D318: 0.5

tool: D328: 0.3023

tool: D238: 2304.253

tool: {"D109": [0x9d,0x2a,0xdf,0x33,0x12,0xa1,0x31,0xbf]}

tool: D196: 0.017996

tool: D130: 0.30242

tool: D381: 5.9e-05

tool: D106: 2303.5548

tool: D45: 2451545

tool: D319: 36525

tool: {"D295": [0x36,0x77,0xf4,0xbf,0x5c,0x8b,0x36,0xbf]}

tool: D372: 0.017998

tool: D27: 0.30188

tool: {"D166": [0xf7,0x8f,0x85,0xe8,0x10,0x38,0x22,0xbf]}

tool: D126: 1.39656

tool: D392: 2306.2181

tool: D178: 0.302

tool: D409: 1.396

tool: D129: 2304.25

assistant: ```c
double zeta(double j1, double j2, int pflag) {
  double T;
  double t;
  double zeta;
  switch (pflag) {
  case (0):
    T = (j1 - ((2433282.42345905) + ((1850) - 1950.0) * ((36524.21987817305) / 100.0))) / (36524.21987817305);
    t = (j2 - j1) / (36524.21987817305);
    zeta = (0.018);
    zeta *= t;
    zeta += (0.302);
    zeta *= t;
    zeta += (2304.250 + ((T - 0.5) * (1.396)));
    zeta *= t;
    break;
  case (1):
    T = (j1 - ((2433282.42345905) + ((1850) - 1950.0) * ((36524.21987817305) / 100.0))) / (36524.21987817305);
    t = (j2 - j1) / (36524.21987817305);
    zeta = (0.017995);
    zeta *= t;
    zeta += (0.30240 + (T * (-0.000270)));
    zeta *= t;
    zeta += (2303.5545 + (T * (1.39720 + (T * (0.000060)))));
    zeta *= t;
    break;
  case (2):
    T = (j1 - ((2433282.42345905) + ((1850) - 1950.0) * ((36524.21987817305) / 100.0))) / (36524.21987817305);
    t = (j2 - j1) / (36524.21987817305);
    zeta = (0.017996);
    zeta *= t;
    zeta += (0.30242 + (T * (-0.000269)));
    zeta *= t;
    zeta += (2303.5548 + (T * (1.39720 + (T * (0.000059)))));
    zeta *= t;
    break;
  case (3):
    T = (j1 - ((2433282.42345905) + ((1850) - 1950.0) * ((36524.21987817305) / 100.0))) / (36524.21987817305);
    t = (j2 - j1) / (36524.21987817305);
    zeta = (0.0180);
    zeta *= t;
    zeta += (0.3023 + ((T - 0.5) * (-0.000211)));
    zeta *= t;
    zeta += (2304.253 + ((T - 0.5) * (1.3972 + ((T - 0.5) * (0.000125)))));
    zeta *= t;
    break;
  case (4):
  default:
    T = (j1 - (2451545.0)) / (36525.0);
    t = (j2 - j1) / (36525.0);
    zeta = (0.017998);
    zeta *= t;
    zeta += (0.30188 + (T * (-0.000344)));
    zeta *= t;
    zeta += (2306.2181 + (T * (1.39656 + (T * (-0.000139)))));
    zeta *= t;
    break;
  }
  zeta = (((((zeta) / 3600.0)) * ((3.14159265358979323846) / 180.0)));
  return (zeta);
}
```