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

```asm
<julian_day>:
  endbr64
  movaps %xmm0,%xmm2
  pxor   %xmm0,%xmm0
  movsd  D99(%rip),%xmm1
  mov    %esi,%eax
  cvtsi2sd %r9d,%xmm0
  pxor   %xmm3,%xmm3
  cvtsi2sd %r8d,%xmm3
  divsd  %xmm1,%xmm0
  addsd  %xmm3,%xmm0
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2ss %ecx,%xmm1
  subss  %xmm2,%xmm1
  cvtss2sd %xmm1,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  divsd  D138(%rip),%xmm0
  cvtsi2sd %edx,%xmm1
  addsd  %xmm1,%xmm0
  cmp    $0x2,%esi
  jg     L6
  add    $0xc,%eax
  sub    $0x1,%edi
L6:
  pxor   %xmm1,%xmm1
  movq   D12(%rip),%xmm4
  movsd  D116(%rip),%xmm5
  cvtsi2sd %edi,%xmm1
  addsd  D47(%rip),%xmm1
  mulsd  D92(%rip),%xmm1
  movapd %xmm4,%xmm3
  movapd %xmm1,%xmm2
  andpd  %xmm4,%xmm2
  ucomisd %xmm2,%xmm5
  jbe    L34
  cvttsd2si %xmm1,%rdx
  pxor   %xmm2,%xmm2
  movsd  D129(%rip),%xmm7
  andnpd %xmm1,%xmm3
  cvtsi2sd %rdx,%xmm2
  movapd %xmm2,%xmm6
  cmpnlesd %xmm1,%xmm6
  andpd  %xmm7,%xmm6
  subsd  %xmm6,%xmm2
  orpd   %xmm3,%xmm2
  movapd %xmm2,%xmm1
L34:
  add    $0x1,%eax
  pxor   %xmm2,%xmm2
  movapd %xmm4,%xmm6
  cvtsi2sd %eax,%xmm2
  mulsd  D39(%rip),%xmm2
  movapd %xmm2,%xmm3
  andpd  %xmm4,%xmm3
  ucomisd %xmm3,%xmm5
  jbe    L7
  cvttsd2si %xmm2,%rax
  pxor   %xmm3,%xmm3
  andnpd %xmm2,%xmm6
  movsd  D129(%rip),%xmm8
  cvtsi2sd %rax,%xmm3
  movapd %xmm3,%xmm7
  cmpnlesd %xmm2,%xmm7
  andpd  %xmm8,%xmm7
  subsd  %xmm7,%xmm3
  orpd   %xmm6,%xmm3
  movapd %xmm3,%xmm2
L7:
  addsd  %xmm2,%xmm1
  addsd  %xmm1,%xmm0
  subsd  D120(%rip),%xmm0
  comisd D42(%rip),%xmm0
  jbe    L55
  movslq %edi,%rax
  sar    $0x1f,%edi
  pxor   %xmm6,%xmm6
  movapd %xmm4,%xmm1
  imul   $0x51eb851f,%rax,%rax
  movsd  D22(%rip),%xmm2
  sar    $0x25,%rax
  sub    %edi,%eax
  cvtsi2sd %eax,%xmm6
  mulsd  %xmm6,%xmm2
  movapd %xmm2,%xmm3
  andpd  %xmm4,%xmm3
  ucomisd %xmm3,%xmm5
  ja     L8
L32:
  movsd  D121(%rip),%xmm1
  subsd  %xmm6,%xmm1
  addsd  %xmm2,%xmm1
  addsd  %xmm1,%xmm0
L55:
  ret
  nopl   0x0(%rax)
L8:
  cvttsd2si %xmm2,%rax
  pxor   %xmm3,%xmm3
  movsd  D129(%rip),%xmm5
  andnpd %xmm2,%xmm1
  cvtsi2sd %rax,%xmm3
  movapd %xmm3,%xmm4
  cmpnlesd %xmm2,%xmm4
  andpd  %xmm5,%xmm4
  subsd  %xmm4,%xmm3
  orpd   %xmm1,%xmm3
  movapd %xmm3,%xmm2
  jmp    L32
```

tool_calls: name: retrieve_data
arguments: data_label: D99
type: f64
name: retrieve_data
arguments: data_label: D138
type: f64
name: retrieve_data
arguments: data_label: D12
type: byte[8]
name: retrieve_data
arguments: data_label: D116
type: byte[8]
name: retrieve_data
arguments: data_label: D47
type: f64
name: retrieve_data
arguments: data_label: D92
type: f64
name: retrieve_data
arguments: data_label: D129
type: byte[8]
name: retrieve_data
arguments: data_label: D39
type: f64
name: retrieve_data
arguments: data_label: D120
type: f64
name: retrieve_data
arguments: data_label: D42
type: f64[2]
name: retrieve_data
arguments: data_label: D22
type: byte[8]
name: retrieve_data
arguments: data_label: D121
type: byte[8]

tool: D99: 60

tool: D138: 24

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

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

tool: D47: 4716

tool: D92: 365.25

tool: {"D129": [0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x3f]}

tool: D39: 30.6001

tool: D120: 1524.5

tool: {"D42": [2299160.0,0.25]}

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

tool: {"D121": [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40]}

assistant: ```c
double julian_day(int year, int month, int day, int hour, int minute, int second, float tz) {
  double day_decimal, julian_day, a;
  day_decimal = day + (hour - tz + (minute + second / 60.0) / 60.0) / 24.0;
  if (month < 3) {
    month += 12;
    year--;
  }
  julian_day = floor(365.25 * (year + 4716.0)) + floor(30.6001 * (month + 1)) + day_decimal - 1524.5;
  if (julian_day > 2299160.0) {
    a = floor(year / 100);
    julian_day += (2 - a + floor(a / 4));
  }
  return julian_day;
}
```