user: 下面的汇编指令对应的C源代码是什么：

```asm
<zeta>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  movsd  %xmm0,-0x28(%rbp)
  movsd  %xmm1,-0x30(%rbp)
  mov    %edi,-0x34(%rbp)
  cmpl   $0x3,-0x34(%rbp)
  je     L107
  cmpl   $0x3,-0x34(%rbp)
  jg     L54
  cmpl   $0x2,-0x34(%rbp)
  je     L22
  cmpl   $0x2,-0x34(%rbp)
  jg     L54
  cmpl   $0x0,-0x34(%rbp)
  je     L91
  cmpl   $0x1,-0x34(%rbp)
  je     L97
  jmp    L54
L91:
  movsd  -0x28(%rbp),%xmm0
  movsd  D297(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  D137(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x30(%rbp),%xmm0
  subsd  -0x28(%rbp),%xmm0
  movsd  D137(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  D277(%rip),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm1
  movsd  D423(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x10(%rbp),%xmm0
  movsd  D319(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  movsd  D154(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D144(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0x18(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  jmp    L9
L97:
  movsd  -0x28(%rbp),%xmm0
  movsd  D297(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  D137(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x30(%rbp),%xmm0
  subsd  -0x28(%rbp),%xmm0
  movsd  D137(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  D164(%rip),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x10(%rbp),%xmm1
  movsd  D247(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D415(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0x18(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x10(%rbp),%xmm1
  movsd  D184(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D321(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x10(%rbp),%xmm1
  movsd  D84(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0x18(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  jmp    L9
L22:
  movsd  -0x28(%rbp),%xmm0
  movsd  D297(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  D137(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x30(%rbp),%xmm0
  subsd  -0x28(%rbp),%xmm0
  movsd  D137(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  D20(%rip),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x10(%rbp),%xmm1
  movsd  D295(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D378(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0x18(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x10(%rbp),%xmm1
  movsd  D175(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D321(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x10(%rbp),%xmm1
  movsd  D122(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0x18(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  jmp    L9
L107:
  movsd  -0x28(%rbp),%xmm0
  movsd  D297(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  D137(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x30(%rbp),%xmm0
  subsd  -0x28(%rbp),%xmm0
  movsd  D137(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  D277(%rip),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x10(%rbp),%xmm0
  movsd  D319(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  movsd  D286(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D208(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0x18(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x10(%rbp),%xmm0
  movsd  D319(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  movsd  -0x10(%rbp),%xmm0
  movsd  D319(%rip),%xmm3
  movapd %xmm0,%xmm2
  subsd  %xmm3,%xmm2
  movsd  D339(%rip),%xmm0
  mulsd  %xmm0,%xmm2
  movsd  D321(%rip),%xmm0
  addsd  %xmm2,%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D228(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0x18(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  jmp    L9
L54:
  movsd  -0x28(%rbp),%xmm0
  movsd  D246(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  D170(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x30(%rbp),%xmm0
  subsd  -0x28(%rbp),%xmm0
  movsd  D170(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  D150(%rip),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x10(%rbp),%xmm1
  movsd  D40(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D79(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0x18(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x10(%rbp),%xmm1
  movsd  D211(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D410(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x10(%rbp),%xmm1
  movsd  D171(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0x18(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  nop
L9:
  movsd  -0x18(%rbp),%xmm0
  movsd  D267(%rip),%xmm2
  movapd %xmm0,%xmm1
  divsd  %xmm2,%xmm1
  movsd  D178(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  pop    %rbp
  ret
```

tool_calls: name: read_data
arguments: data_label: D297
type_infered: byte[8]
name: read_data
arguments: data_label: D137
type_infered: f64
name: read_data
arguments: data_label: D277
type_infered: f64
name: read_data
arguments: data_label: D423
type_infered: f64
name: read_data
arguments: data_label: D319
type_infered: f64
name: read_data
arguments: data_label: D154
type_infered: f64
name: read_data
arguments: data_label: D144
type_infered: f64
name: read_data
arguments: data_label: D164
type_infered: f64
name: read_data
arguments: data_label: D247
type_infered: byte[8]
name: read_data
arguments: data_label: D415
type_infered: f64
name: read_data
arguments: data_label: D184
type_infered: f64
name: read_data
arguments: data_label: D321
type_infered: f64
name: read_data
arguments: data_label: D84
type_infered: f64
name: read_data
arguments: data_label: D20
type_infered: f64
name: read_data
arguments: data_label: D295
type_infered: byte[8]
name: read_data
arguments: data_label: D378
type_infered: f64
name: read_data
arguments: data_label: D175
type_infered: f64
name: read_data
arguments: data_label: D122
type_infered: f64
name: read_data
arguments: data_label: D286
type_infered: byte[8]
name: read_data
arguments: data_label: D208
type_infered: f64
name: read_data
arguments: data_label: D339
type_infered: f64
name: read_data
arguments: data_label: D228
type_infered: f64
name: read_data
arguments: data_label: D246
type_infered: f64
name: read_data
arguments: data_label: D170
type_infered: f64
name: read_data
arguments: data_label: D150
type_infered: f64
name: read_data
arguments: data_label: D40
type_infered: byte[8]
name: read_data
arguments: data_label: D79
type_infered: f64
name: read_data
arguments: data_label: D211
type_infered: byte[8]
name: read_data
arguments: data_label: D410
type_infered: f64
name: read_data
arguments: data_label: D171
type_infered: f64
name: read_data
arguments: data_label: D267
type_infered: f64
name: read_data
arguments: data_label: D178
type_infered: byte[8]

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

tool: D137: 36524.21987817305

tool: D277: 0.018

tool: D423: 0.302

tool: D319: 0.5

tool: D154: 1.396

tool: D144: 2304.25

tool: D164: 0.017995

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

tool: D415: 0.3024

tool: D184: 6e-05

tool: D321: 1.3972

tool: D84: 2303.5545

tool: D20: 0.017996

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

tool: D378: 0.30242

tool: D175: 5.9e-05

tool: D122: 2303.5548

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

tool: D208: 0.3023

tool: D339: 0.000125

tool: D228: 2304.253

tool: D246: 2451545

tool: D170: 36525

tool: D150: 0.017998

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

tool: D79: 0.30188

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

tool: D410: 1.39656

tool: D171: 2306.2181

tool: D267: 3600

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

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