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

```asm
<astro_julday_d>:
  endbr64
  movapd %xmm0,%xmm5
  pxor   %xmm1,%xmm1
  pxor   %xmm0,%xmm0
  movsd  D134(%rip),%xmm8
  cvtsi2sd %edi,%xmm1
  cvtsi2sd %esi,%xmm0
  cmp    $0x2,%esi
  jg     L30
  subsd  %xmm8,%xmm1
  addsd  D119(%rip),%xmm0
L30:
  cmp    $0x62e,%edi
  jg     L113
  je     L103
L41:
  movsd  D128(%rip),%xmm4
  movq   D58(%rip),%xmm2
  pxor   %xmm3,%xmm3
  jmp    L96
  cs nopw 0x0(%rax,%rax,1)
L103:
  cmp    $0xa,%esi
  jg     L113
  jne    L41
  comisd D57(%rip),%xmm5
  jbe    L41
  nopl   0x0(%rax)
L113:
  movq   D58(%rip),%xmm2
  movsd  D128(%rip),%xmm4
  movapd %xmm1,%xmm6
  divsd  D66(%rip),%xmm6
  movapd %xmm6,%xmm7
  andpd  %xmm2,%xmm7
  movapd %xmm2,%xmm3
  ucomisd %xmm7,%xmm4
  ja     L108
L16:
  movsd  D124(%rip),%xmm7
  movapd %xmm2,%xmm3
  mulsd  %xmm6,%xmm7
  movapd %xmm7,%xmm9
  andpd  %xmm2,%xmm9
  ucomisd %xmm9,%xmm4
  ja     L6
L13:
  movsd  D104(%rip),%xmm3
  subsd  %xmm6,%xmm3
  addsd  %xmm7,%xmm3
L96:
  addsd  D30(%rip),%xmm1
  mulsd  D86(%rip),%xmm1
  movapd %xmm2,%xmm6
  movapd %xmm1,%xmm7
  andpd  %xmm2,%xmm7
  ucomisd %xmm7,%xmm4
  jbe    L128
  cvttsd2si %xmm1,%rax
  pxor   %xmm7,%xmm7
  andnpd %xmm1,%xmm6
  cvtsi2sd %rax,%xmm7
  orpd   %xmm6,%xmm7
  movapd %xmm7,%xmm1
L128:
  addsd  %xmm8,%xmm0
  mulsd  D126(%rip),%xmm0
  movapd %xmm0,%xmm6
  andpd  %xmm2,%xmm6
  ucomisd %xmm6,%xmm4
  jbe    L104
  cvttsd2si %xmm0,%rax
  pxor   %xmm6,%xmm6
  andnpd %xmm0,%xmm2
  cvtsi2sd %rax,%xmm6
  orpd   %xmm2,%xmm6
  movapd %xmm6,%xmm0
L104:
  addsd  %xmm0,%xmm1
  addsd  %xmm5,%xmm1
  addsd  %xmm3,%xmm1
  subsd  D4(%rip),%xmm1
  movapd %xmm1,%xmm0
  ret
  nopl   0x0(%rax)
L6:
  cvttsd2si %xmm7,%rax
  pxor   %xmm9,%xmm9
  andnpd %xmm7,%xmm3
  cvtsi2sd %rax,%xmm9
  movapd %xmm9,%xmm7
  orpd   %xmm3,%xmm7
  jmp    L13
  nopl   0x0(%rax)
L108:
  cvttsd2si %xmm6,%rax
  pxor   %xmm7,%xmm7
  andnpd %xmm6,%xmm3
  cvtsi2sd %rax,%xmm7
  orpd   %xmm3,%xmm7
  movapd %xmm7,%xmm6
  jmp    L16
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D134
datatype: f64
name: extract_symbolic_data
arguments: data_label: D119
datatype: f64
name: extract_symbolic_data
arguments: data_label: D128
datatype: byte[8]
name: extract_symbolic_data
arguments: data_label: D58
datatype: byte[8]
name: extract_symbolic_data
arguments: data_label: D57
datatype: f64[2]
name: extract_symbolic_data
arguments: data_label: D66
datatype: f64
name: extract_symbolic_data
arguments: data_label: D124
datatype: byte[8]
name: extract_symbolic_data
arguments: data_label: D104
datatype: f64
name: extract_symbolic_data
arguments: data_label: D30
datatype: f64
name: extract_symbolic_data
arguments: data_label: D86
datatype: f64
name: extract_symbolic_data
arguments: data_label: D126
datatype: f64
name: extract_symbolic_data
arguments: data_label: D4
datatype: f64

tool: D134: 1

tool: D119: 12

tool: {"D128": [0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x43]}

tool: {"D58": [0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f]}

tool: {"D57": [5.0,100.0]}

tool: D66: 100

tool: {"D124": [0x00,0x00,0x00,0x00,0x00,0x00,0xd0,0x3f]}

tool: D104: 2

tool: D30: 4716

tool: D86: 365.25

tool: D126: 30.6001

tool: D4: 1524.5

assistant: ```c
double astro_julday_d(int year, int month, double day) {
  double A, B;
  double Y = (double)year;
  double M = (double)month;
  if (month <= 2) {
    Y -= 1.0;
    M += 12.0;
  }
  if (year > 1582 || (year == 1582 && (month > 10 || (month == 10 && day > 5.0)))) {
    A = trunc(Y / 100.0);
    B = 2.0 - A + trunc(A / 4.0);
  } else {
    B = 0;
  }
  return trunc(365.25 * (Y + 4716.0)) + trunc(30.6001 * (M + 1)) + day + B - 1524.5;
}
```