user: What would the C source look like for the assembly code provided here:

```asm
<zeta>:
  endbr64
  subsd  %xmm0,%xmm1
  cmp    $0x2,%edi
  je     L84
  jg     L40
  test   %edi,%edi
  je     L21
  cmp    $0x1,%edi
  jne    L2
  subsd  D370(%rip),%xmm0
  movsd  D277(%rip),%xmm3
  divsd  %xmm3,%xmm1
  movapd %xmm0,%xmm2
  divsd  %xmm3,%xmm2
  movsd  D186(%rip),%xmm3
  movapd %xmm1,%xmm0
  mulsd  D279(%rip),%xmm1
  mulsd  %xmm2,%xmm3
  addsd  D78(%rip),%xmm3
  addsd  %xmm1,%xmm3
  movsd  D266(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D157(%rip),%xmm1
  mulsd  %xmm0,%xmm3
  mulsd  %xmm2,%xmm1
  addsd  D194(%rip),%xmm1
  addsd  %xmm3,%xmm1
  mulsd  %xmm1,%xmm0
L52:
  divsd  D386(%rip),%xmm0
  mulsd  D353(%rip),%xmm0
  ret
  nopl   (%rax)
L40:
  cmp    $0x3,%edi
  jne    L2
  movsd  D277(%rip),%xmm2
  subsd  D370(%rip),%xmm0
  movsd  D323(%rip),%xmm4
  movsd  D130(%rip),%xmm3
  divsd  %xmm2,%xmm1
  divsd  %xmm2,%xmm0
  movsd  D337(%rip),%xmm2
  mulsd  %xmm1,%xmm4
  subsd  D405(%rip),%xmm0
  mulsd  %xmm0,%xmm3
  addsd  D70(%rip),%xmm3
  mulsd  %xmm0,%xmm2
  addsd  D157(%rip),%xmm2
  addsd  %xmm4,%xmm3
  mulsd  %xmm2,%xmm0
  addsd  D15(%rip),%xmm0
  mulsd  %xmm1,%xmm3
  addsd  %xmm3,%xmm0
  mulsd  %xmm1,%xmm0
  jmp    L52
  cs nopw 0x0(%rax,%rax,1)
L84:
  subsd  D370(%rip),%xmm0
  movsd  D277(%rip),%xmm3
  divsd  %xmm3,%xmm1
  movapd %xmm0,%xmm2
  divsd  %xmm3,%xmm2
  movsd  D415(%rip),%xmm3
  movapd %xmm1,%xmm0
  mulsd  D61(%rip),%xmm1
  mulsd  %xmm2,%xmm3
  addsd  D32(%rip),%xmm3
  addsd  %xmm1,%xmm3
  movsd  D74(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D157(%rip),%xmm1
  mulsd  %xmm0,%xmm3
  mulsd  %xmm2,%xmm1
  addsd  D255(%rip),%xmm1
  addsd  %xmm3,%xmm1
  mulsd  %xmm1,%xmm0
  jmp    L52
  nopl   0x0(%rax)
L2:
  subsd  D217(%rip),%xmm0
  movsd  D145(%rip),%xmm3
  divsd  %xmm3,%xmm1
  movapd %xmm0,%xmm2
  divsd  %xmm3,%xmm2
  movsd  D267(%rip),%xmm3
  movapd %xmm1,%xmm0
  mulsd  D334(%rip),%xmm1
  mulsd  %xmm2,%xmm3
  addsd  D48(%rip),%xmm3
  addsd  %xmm1,%xmm3
  movsd  D401(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D248(%rip),%xmm1
  mulsd  %xmm0,%xmm3
  mulsd  %xmm2,%xmm1
  addsd  D303(%rip),%xmm1
  addsd  %xmm3,%xmm1
  mulsd  %xmm1,%xmm0
  jmp    L52
  nopl   0x0(%rax)
L21:
  movsd  D277(%rip),%xmm3
  subsd  D370(%rip),%xmm0
  movsd  D323(%rip),%xmm2
  divsd  %xmm3,%xmm1
  divsd  %xmm3,%xmm0
  mulsd  %xmm1,%xmm2
  addsd  D118(%rip),%xmm2
  mulsd  %xmm1,%xmm2
  subsd  D405(%rip),%xmm0
  mulsd  D263(%rip),%xmm0
  addsd  D342(%rip),%xmm0
  addsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  jmp    L52
```

tool_calls: name: extract_symbolic_data
arguments: label: D370
data_type: byte[8]
name: extract_symbolic_data
arguments: label: D277
data_type: f64
name: extract_symbolic_data
arguments: label: D186
data_type: byte[8]
name: extract_symbolic_data
arguments: label: D279
data_type: f64
name: extract_symbolic_data
arguments: label: D78
data_type: f64
name: extract_symbolic_data
arguments: label: D266
data_type: f64
name: extract_symbolic_data
arguments: label: D157
data_type: f64
name: extract_symbolic_data
arguments: label: D194
data_type: f64
name: extract_symbolic_data
arguments: label: D386
data_type: f64
name: extract_symbolic_data
arguments: label: D353
data_type: byte[8]
name: extract_symbolic_data
arguments: label: D323
data_type: f64
name: extract_symbolic_data
arguments: label: D130
data_type: byte[8]
name: extract_symbolic_data
arguments: label: D337
data_type: f64
name: extract_symbolic_data
arguments: label: D405
data_type: f64
name: extract_symbolic_data
arguments: label: D70
data_type: f64
name: extract_symbolic_data
arguments: label: D15
data_type: f64
name: extract_symbolic_data
arguments: label: D415
data_type: byte[8]
name: extract_symbolic_data
arguments: label: D61
data_type: f64
name: extract_symbolic_data
arguments: label: D32
data_type: f64
name: extract_symbolic_data
arguments: label: D74
data_type: f64
name: extract_symbolic_data
arguments: label: D255
data_type: f64
name: extract_symbolic_data
arguments: label: D217
data_type: f64
name: extract_symbolic_data
arguments: label: D145
data_type: f64
name: extract_symbolic_data
arguments: label: D267
data_type: byte[8]
name: extract_symbolic_data
arguments: label: D334
data_type: f64
name: extract_symbolic_data
arguments: label: D48
data_type: f64
name: extract_symbolic_data
arguments: label: D401
data_type: byte[8]
name: extract_symbolic_data
arguments: label: D248
data_type: f64
name: extract_symbolic_data
arguments: label: D303
data_type: f64
name: extract_symbolic_data
arguments: label: D118
data_type: f64
name: extract_symbolic_data
arguments: label: D263
data_type: f64
name: extract_symbolic_data
arguments: label: D342
data_type: f64

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

tool: D277: 36524.21987817305

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

tool: D279: 0.017995

tool: D78: 0.3024

tool: D266: 6e-05

tool: D157: 1.3972

tool: D194: 2303.5545

tool: D386: 3600

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

tool: D323: 0.018

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

tool: D337: 0.000125

tool: D405: 0.5

tool: D70: 0.3023

tool: D15: 2304.253

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

tool: D61: 0.017996

tool: D32: 0.30242

tool: D74: 5.9e-05

tool: D255: 2303.5548

tool: D217: 2451545

tool: D145: 36525

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

tool: D334: 0.017998

tool: D48: 0.30188

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

tool: D248: 1.39656

tool: D303: 2306.2181

tool: D118: 0.302

tool: D263: 1.396

tool: D342: 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);
}
```