user: 请将以下的汇编代码转换成C语言代码:

```asm
<astro_julday_d>:
  endbr64
  movapd %xmm0,%xmm4
  pxor   %xmm0,%xmm0
  cvtsi2sd %edi,%xmm0
  pxor   %xmm2,%xmm2
  cvtsi2sd %esi,%xmm2
  cmp    $0x2,%esi
  jg     L30
  subsd  D173(%rip),%xmm0
  addsd  D184(%rip),%xmm2
L30:
  cmp    $0x62e,%edi
  jg     L91
  pxor   %xmm3,%xmm3
  jne    L9
  cmp    $0xa,%esi
  jg     L91
  jne    L9
  pxor   %xmm3,%xmm3
  comisd D140(%rip),%xmm4
  jbe    L9
L91:
  movapd %xmm0,%xmm3
  divsd  D178(%rip),%xmm3
  movapd %xmm3,%xmm1
  movsd  D125(%rip),%xmm5
  movapd %xmm3,%xmm6
  andpd  %xmm5,%xmm6
  movsd  D118(%rip),%xmm7
  ucomisd %xmm6,%xmm7
  jbe    L66
  cvttsd2si %xmm3,%rax
  pxor   %xmm6,%xmm6
  cvtsi2sd %rax,%xmm6
  andnpd %xmm3,%xmm5
  orpd   %xmm5,%xmm6
  movapd %xmm6,%xmm1
L66:
  movapd %xmm1,%xmm7
  mulsd  D54(%rip),%xmm1
  movapd %xmm1,%xmm6
  movsd  D125(%rip),%xmm3
  movapd %xmm1,%xmm5
  andpd  %xmm3,%xmm5
  movsd  D118(%rip),%xmm8
  ucomisd %xmm5,%xmm8
  jbe    L32
  cvttsd2si %xmm1,%rax
  pxor   %xmm5,%xmm5
  cvtsi2sd %rax,%xmm5
  andnpd %xmm1,%xmm3
  orpd   %xmm3,%xmm5
  movapd %xmm5,%xmm6
L32:
  movsd  D156(%rip),%xmm3
  subsd  %xmm7,%xmm3
  addsd  %xmm6,%xmm3
L9:
  addsd  D169(%rip),%xmm0
  mulsd  D185(%rip),%xmm0
  movapd %xmm0,%xmm1
  movsd  D125(%rip),%xmm5
  movapd %xmm0,%xmm6
  andpd  %xmm5,%xmm6
  movsd  D118(%rip),%xmm7
  ucomisd %xmm6,%xmm7
  jbe    L90
  cvttsd2si %xmm0,%rax
  pxor   %xmm6,%xmm6
  cvtsi2sd %rax,%xmm6
  andnpd %xmm0,%xmm5
  orpd   %xmm5,%xmm6
  movapd %xmm6,%xmm1
L90:
  addsd  D173(%rip),%xmm2
  movapd %xmm2,%xmm0
  mulsd  D59(%rip),%xmm0
  movapd %xmm0,%xmm6
  movsd  D125(%rip),%xmm2
  movapd %xmm0,%xmm5
  andpd  %xmm2,%xmm5
  movsd  D118(%rip),%xmm7
  ucomisd %xmm5,%xmm7
  jbe    L27
  cvttsd2si %xmm0,%rax
  pxor   %xmm5,%xmm5
  cvtsi2sd %rax,%xmm5
  andnpd %xmm0,%xmm2
  movapd %xmm5,%xmm6
  orpd   %xmm2,%xmm6
L27:
  addsd  %xmm6,%xmm1
  addsd  %xmm4,%xmm1
  addsd  %xmm3,%xmm1
  subsd  D92(%rip),%xmm1
  movapd %xmm1,%xmm0
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D173
data_type: f64
name: extract_symbolic_data
arguments: data_tag: D184
data_type: f64
name: extract_symbolic_data
arguments: data_tag: D140
data_type: f64[2]
name: extract_symbolic_data
arguments: data_tag: D178
data_type: f64
name: extract_symbolic_data
arguments: data_tag: D125
data_type: byte[8]
name: extract_symbolic_data
arguments: data_tag: D118
data_type: byte[8]
name: extract_symbolic_data
arguments: data_tag: D54
data_type: byte[8]
name: extract_symbolic_data
arguments: data_tag: D156
data_type: f64
name: extract_symbolic_data
arguments: data_tag: D169
data_type: f64
name: extract_symbolic_data
arguments: data_tag: D185
data_type: f64
name: extract_symbolic_data
arguments: data_tag: D59
data_type: f64
name: extract_symbolic_data
arguments: data_tag: D92
data_type: f64

tool: D173: 1

tool: D184: 12

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

tool: D178: 100

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

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

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

tool: D156: 2

tool: D169: 4716

tool: D185: 365.25

tool: D59: 30.6001

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