user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<delta_t>:
  endbr64
  mov    %edi,%eax
  mov    %rdx,%rdi
  lea    0x7cf(%rax),%edx
  cmp    $0x1387,%edx
  ja     L135
  lea    -0x1(%rsi),%edx
  cmp    $0xb,%edx
  ja     L135
  pxor   %xmm1,%xmm1
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm1
  cvtsi2sd %esi,%xmm0
  subsd  D745(%rip),%xmm0
  divsd  D163(%rip),%xmm0
  addsd  %xmm1,%xmm0
  cmp    $0xfffffe0c,%eax
  jge    L64
  lea    -0x71c(%rax),%esi
  pxor   %xmm2,%xmm2
  movsd  D174(%rip),%xmm1
  movslq %esi,%rdx
  sar    $0x1f,%esi
  imul   $0x51eb851f,%rdx,%rdx
  sar    $0x25,%rdx
  sub    %esi,%edx
  cvtsi2sd %edx,%xmm2
  mulsd  %xmm2,%xmm1
  mulsd  %xmm2,%xmm1
  subsd  D744(%rip),%xmm1
L109:
  sub    $0x7a3,%eax
  movsd  %xmm1,(%rdi)
  cmp    $0x32,%eax
  ja     L110
L93:
  movq   $0x0,(%rcx)
  xor    %eax,%eax
  ret
  nopw   0x0(%rax,%rax,1)
L64:
  lea    0x1f4(%rax),%edx
  cmp    $0x3e7,%edx
  ja     L125
  movsd  D367(%rip),%xmm1
  movapd %xmm0,%xmm2
  divsd  D546(%rip),%xmm2
  mulsd  %xmm2,%xmm1
  addsd  D519(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  D183(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  D737(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D363(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  D89(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D839(%rip),%xmm1
  movsd  %xmm1,(%rdi)
L110:
  subsd  D896(%rip),%xmm0
  movsd  D161(%rip),%xmm1
  xor    %eax,%eax
  mulsd  %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  %xmm1,(%rcx)
  ret
  nopl   0x0(%rax)
L125:
  lea    -0x1f4(%rax),%edx
  cmp    $0x44b,%edx
  jbe    L192
  lea    -0x640(%rax),%edx
  cmp    $0x63,%edx
  ja     L179
  movapd %xmm0,%xmm2
  subsd  D587(%rip),%xmm2
  movapd %xmm2,%xmm1
  divsd  D193(%rip),%xmm1
  subsd  D669(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  D417(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D110(%rip),%xmm1
  movsd  %xmm1,(%rdi)
  jmp    L110
  cs nopw 0x0(%rax,%rax,1)
L192:
  movsd  D73(%rip),%xmm1
  movapd %xmm0,%xmm2
  subsd  D789(%rip),%xmm2
  divsd  D546(%rip),%xmm2
  mulsd  %xmm2,%xmm1
  subsd  D800(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  D575(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D258(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D583(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  D545(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D820(%rip),%xmm1
  movsd  %xmm1,(%rdi)
  jmp    L110
  nopl   (%rax)
L179:
  lea    -0x6a4(%rax),%edx
  cmp    $0x63,%edx
  jbe    L163
  lea    -0x708(%rax),%edx
  cmp    $0x3b,%edx
  ja     L268
  movapd %xmm0,%xmm2
  subsd  D694(%rip),%xmm2
  movsd  D125(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  D236(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D783(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  D240(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D720(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D438(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  D548(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D79(%rip),%xmm1
  movsd  %xmm1,(%rdi)
  jmp    L110
  nop
L163:
  movapd %xmm0,%xmm3
  subsd  D229(%rip),%xmm3
  movsd  D566(%rip),%xmm2
  movapd %xmm3,%xmm4
  divsd  D495(%rip),%xmm4
  subsd  %xmm4,%xmm2
  movapd %xmm2,%xmm1
  mulsd  %xmm3,%xmm1
  subsd  D293(%rip),%xmm1
  mulsd  %xmm3,%xmm1
  addsd  D175(%rip),%xmm1
  mulsd  %xmm3,%xmm1
  addsd  D178(%rip),%xmm1
  movsd  %xmm1,(%rdi)
  jmp    L110
  nopl   (%rax)
L135:
  mov    $0xfffffffe,%eax
  ret
  xchg   %ax,%ax
L268:
  lea    -0x744(%rax),%edx
  cmp    $0x27,%edx
  ja     L248
  movapd %xmm0,%xmm2
  subsd  D71(%rip),%xmm2
  movapd %xmm2,%xmm1
  divsd  D828(%rip),%xmm1
  subsd  D339(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D476(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  D82(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D342(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D78(%rip),%xmm1
  movsd  %xmm1,(%rdi)
  jmp    L110
L248:
  lea    -0x76c(%rax),%edx
  cmp    $0x13,%edx
  ja     L95
  movapd %xmm0,%xmm3
  subsd  D457(%rip),%xmm3
  movsd  D811(%rip),%xmm4
  movsd  D759(%rip),%xmm2
  mulsd  %xmm3,%xmm4
  subsd  %xmm4,%xmm2
  movapd %xmm2,%xmm1
  mulsd  %xmm3,%xmm1
  subsd  D74(%rip),%xmm1
  mulsd  %xmm3,%xmm1
  addsd  D594(%rip),%xmm1
  mulsd  %xmm3,%xmm1
  subsd  D475(%rip),%xmm1
  movsd  %xmm1,(%rdi)
  jmp    L110
L95:
  lea    -0x780(%rax),%edx
  cmp    $0x14,%edx
  ja     L205
  movapd %xmm0,%xmm2
  subsd  D231(%rip),%xmm2
  movsd  D320(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  D314(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D102(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D817(%rip),%xmm1
  movsd  %xmm1,(%rdi)
  jmp    L110
L205:
  lea    -0x795(%rax),%edx
  cmp    $0x13,%edx
  ja     L58
  movapd %xmm0,%xmm2
  subsd  D53(%rip),%xmm2
  movapd %xmm2,%xmm1
  divsd  D162(%rip),%xmm1
  subsd  D584(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D341(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D600(%rip),%xmm1
  jmp    L109
L58:
  lea    -0x7a9(%rax),%edx
  cmp    $0x18,%edx
  ja     L44
  subsd  D323(%rip),%xmm0
  movsd  D733(%rip),%xmm2
  movapd %xmm0,%xmm3
  divsd  D146(%rip),%xmm3
  subsd  %xmm3,%xmm2
  movapd %xmm2,%xmm1
  mulsd  %xmm0,%xmm1
  addsd  D634(%rip),%xmm1
  mulsd  %xmm0,%xmm1
  addsd  D329(%rip),%xmm1
  movsd  %xmm1,(%rdi)
  jmp    L93
L44:
  lea    -0x7c2(%rax),%edx
  cmp    $0x12,%edx
  ja     L240
  subsd  D425(%rip),%xmm0
  movsd  D437(%rip),%xmm1
  mulsd  %xmm0,%xmm1
  addsd  D420(%rip),%xmm1
  mulsd  %xmm0,%xmm1
  addsd  D130(%rip),%xmm1
  mulsd  %xmm0,%xmm1
  subsd  D230(%rip),%xmm1
  mulsd  %xmm0,%xmm1
  addsd  D243(%rip),%xmm1
  mulsd  %xmm0,%xmm1
  addsd  D871(%rip),%xmm1
  movsd  %xmm1,(%rdi)
  jmp    L93
L240:
  lea    -0x7d5(%rax),%edx
  cmp    $0x2c,%edx
  ja     L197
  movapd %xmm0,%xmm2
  subsd  D425(%rip),%xmm2
  movsd  D288(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D287(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D490(%rip),%xmm1
  jmp    L109
L197:
  lea    -0x802(%rax),%edx
  cmp    $0x63,%edx
  ja     L207
  movsd  D174(%rip),%xmm1
  movapd %xmm0,%xmm2
  subsd  D101(%rip),%xmm2
  divsd  D546(%rip),%xmm2
  mulsd  %xmm2,%xmm1
  mulsd  %xmm2,%xmm1
  movsd  D512(%rip),%xmm2
  subsd  D744(%rip),%xmm1
  subsd  %xmm0,%xmm2
  mulsd  D260(%rip),%xmm2
  subsd  %xmm2,%xmm1
  movsd  %xmm1,(%rdi)
  jmp    L110
L207:
  sub    $0x71c,%eax
  mov    $0x64,%esi
  pxor   %xmm2,%xmm2
  movsd  D174(%rip),%xmm1
  cltd
  idiv   %esi
  cvtsi2sd %eax,%xmm2
  mulsd  %xmm2,%xmm1
  mulsd  %xmm2,%xmm1
  subsd  D744(%rip),%xmm1
  movsd  %xmm1,(%rdi)
  jmp    L110
```

tool_calls: name: retrieve_data
arguments: data_label: D745
type_infered: f64
name: retrieve_data
arguments: data_label: D163
type_infered: byte[8]
name: retrieve_data
arguments: data_label: D174
type_infered: byte[8]
name: retrieve_data
arguments: data_label: D744
type_infered: byte[8]
name: retrieve_data
arguments: data_label: D367
type_infered: f64
name: retrieve_data
arguments: data_label: D546
type_infered: byte[8]
name: retrieve_data
arguments: data_label: D519
type_infered: f64
name: retrieve_data
arguments: data_label: D183
type_infered: f64
name: retrieve_data
arguments: data_label: D737
type_infered: f64
name: retrieve_data
arguments: data_label: D363
type_infered: f64
name: retrieve_data
arguments: data_label: D89
type_infered: f64
name: retrieve_data
arguments: data_label: D839
type_infered: f64
name: retrieve_data
arguments: data_label: D896
type_infered: byte[8]
name: retrieve_data
arguments: data_label: D161
type_infered: byte[8]
name: retrieve_data
arguments: data_label: D587
type_infered: byte[8]
name: retrieve_data
arguments: data_label: D193
type_infered: f64
name: retrieve_data
arguments: data_label: D669
type_infered: f64
name: retrieve_data
arguments: data_label: D417
type_infered: f64
name: retrieve_data
arguments: data_label: D110
type_infered: byte[8]
name: retrieve_data
arguments: data_label: D73
type_infered: f64
name: retrieve_data
arguments: data_label: D789
type_infered: byte[8]
name: retrieve_data
arguments: data_label: D800
type_infered: f64
name: retrieve_data
arguments: data_label: D575
type_infered: f64
name: retrieve_data
arguments: data_label: D258
type_infered: f64
name: retrieve_data
arguments: data_label: D583
type_infered: f64
name: retrieve_data
arguments: data_label: D545
type_infered: f64
name: retrieve_data
arguments: data_label: D820
type_infered: f64
name: retrieve_data
arguments: data_label: D694
type_infered: byte[8]
name: retrieve_data
arguments: data_label: D125
type_infered: f64
name: retrieve_data
arguments: data_label: D236
type_infered: f64
name: retrieve_data
arguments: data_label: D783
type_infered: f64
name: retrieve_data
arguments: data_label: D240
type_infered: f64
name: retrieve_data
arguments: data_label: D720
type_infered: f64
name: retrieve_data
arguments: data_label: D438
type_infered: f64
name: retrieve_data
arguments: data_label: D548
type_infered: f64
name: retrieve_data
arguments: data_label: D79
type_infered: f64
name: retrieve_data
arguments: data_label: D229
type_infered: byte[8]
name: retrieve_data
arguments: data_label: D566
type_infered: f64
name: retrieve_data
arguments: data_label: D495
type_infered: f64
name: retrieve_data
arguments: data_label: D293
type_infered: f64
name: retrieve_data
arguments: data_label: D175
type_infered: f64
name: retrieve_data
arguments: data_label: D178
type_infered: f64
name: retrieve_data
arguments: data_label: D71
type_infered: byte[8]
name: retrieve_data
arguments: data_label: D828
type_infered: f64
name: retrieve_data
arguments: data_label: D339
type_infered: f64
name: retrieve_data
arguments: data_label: D476
type_infered: f64
name: retrieve_data
arguments: data_label: D82
type_infered: f64
name: retrieve_data
arguments: data_label: D342
type_infered: f64
name: retrieve_data
arguments: data_label: D78
type_infered: f64
name: retrieve_data
arguments: data_label: D457
type_infered: byte[8]
name: retrieve_data
arguments: data_label: D811
type_infered: f64
name: retrieve_data
arguments: data_label: D759
type_infered: f64
name: retrieve_data
arguments: data_label: D74
type_infered: f64
name: retrieve_data
arguments: data_label: D594
type_infered: f64
name: retrieve_data
arguments: data_label: D475
type_infered: f64
name: retrieve_data
arguments: data_label: D231
type_infered: byte[8]
name: retrieve_data
arguments: data_label: D320
type_infered: f64
name: retrieve_data
arguments: data_label: D314
type_infered: f64
name: retrieve_data
arguments: data_label: D102
type_infered: f64
name: retrieve_data
arguments: data_label: D817
type_infered: f64
name: retrieve_data
arguments: data_label: D53
type_infered: byte[8]
name: retrieve_data
arguments: data_label: D162
type_infered: f64
name: retrieve_data
arguments: data_label: D584
type_infered: byte[8]
name: retrieve_data
arguments: data_label: D341
type_infered: f64
name: retrieve_data
arguments: data_label: D600
type_infered: f64
name: retrieve_data
arguments: data_label: D323
type_infered: byte[8]
name: retrieve_data
arguments: data_label: D733
type_infered: byte[8]
name: retrieve_data
arguments: data_label: D146
type_infered: f64
name: retrieve_data
arguments: data_label: D634
type_infered: f64
name: retrieve_data
arguments: data_label: D329
type_infered: f64
name: retrieve_data
arguments: data_label: D425
type_infered: byte[8]
name: retrieve_data
arguments: data_label: D437
type_infered: f64
name: retrieve_data
arguments: data_label: D420
type_infered: f64
name: retrieve_data
arguments: data_label: D130
type_infered: f64
name: retrieve_data
arguments: data_label: D230
type_infered: f64
name: retrieve_data
arguments: data_label: D243
type_infered: f64
name: retrieve_data
arguments: data_label: D871
type_infered: f64
name: retrieve_data
arguments: data_label: D288
type_infered: f64
name: retrieve_data
arguments: data_label: D287
type_infered: f64
name: retrieve_data
arguments: data_label: D490
type_infered: f64
name: retrieve_data
arguments: data_label: D101
type_infered: byte[8]
name: retrieve_data
arguments: data_label: D512
type_infered: byte[8]
name: retrieve_data
arguments: data_label: D260
type_infered: f64

tool: D745: 0.5

tool: {"D163": [0x00,0x00,0x00,0x00,0x00,0x00,0x28,0x40]}

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

tool: {"D744": [0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x40]}

tool: D367: 0.0090316521

tool: {"D546": [0x00,0x00,0x00,0x00,0x00,0x00,0x59,0x40]}

tool: D519: 0.022174192

tool: D183: 0.1798452

tool: D737: 5.952053

tool: D363: 33.78311

tool: D89: 1014.41

tool: D839: 10583.6

tool: {"D896": [0x00,0x00,0x00,0x00,0x00,0x8c,0x9e,0x40]}

tool: {"D161": [0x7d,0x4f,0xda,0x8b,0xd0,0x1e,0xeb,0xbe]}

tool: {"D587": [0x00,0x00,0x00,0x00,0x00,0x00,0x99,0x40]}

tool: D193: 7129

tool: D669: 0.01532

tool: D417: 0.9808

tool: {"D110": [0x00,0x00,0x00,0x00,0x00,0x00,0x5e,0x40]}

tool: D73: 0.0083572073

tool: {"D789": [0x00,0x00,0x00,0x00,0x00,0x40,0x8f,0x40]}

tool: D800: 0.005050998

tool: D575: 0.8503463

tool: D258: 0.319781

tool: D583: 71.23472

tool: D545: 556.01

tool: D820: 1574.2

tool: {"D694": [0x00,0x00,0x00,0x00,0x00,0x20,0x9c,0x40]}

tool: D125: 8.75e-10

tool: D236: 1.699e-07

tool: D783: 1.21272e-05

tool: D240: 0.00037436

tool: D720: 0.0041116

tool: D438: 0.0068612

tool: D548: 0.332447

tool: D79: 13.72

tool: {"D229": [0x00,0x00,0x00,0x00,0x00,0x90,0x9a,0x40]}

tool: D566: 0.00013336

tool: D495: 1174000

tool: D293: 0.0059285

tool: D175: 0.1603

tool: D178: 8.83

tool: {"D71": [0x00,0x00,0x00,0x00,0x00,0x10,0x9d,0x40]}

tool: D828: 233174

tool: D339: 0.0004473624

tool: D476: 0.01680668

tool: D82: 0.251754

tool: D342: 0.5737

tool: D78: 7.62

tool: {"D457": [0x00,0x00,0x00,0x00,0x00,0xb0,0x9d,0x40]}

tool: D811: 0.000197

tool: D759: 0.0061966

tool: D74: 0.0598939

tool: D594: 1.494119

tool: D475: 2.79

tool: {"D231": [0x00,0x00,0x00,0x00,0x00,0x00,0x9e,0x40]}

tool: D320: 0.0020936

tool: D314: 0.0761

tool: D102: 0.84493

tool: D817: 21.2

tool: {"D53": [0x00,0x00,0x00,0x00,0x00,0x78,0x9e,0x40]}

tool: D162: 2547

tool: {"D584": [0x9c,0xa2,0x8c,0x80,0x53,0x94,0x71,0x3f]}

tool: D341: 0.407

tool: D600: 29.07

tool: {"D323": [0x00,0x00,0x00,0x00,0x00,0xdc,0x9e,0x40]}

tool: {"D733": [0x20,0xf8,0x81,0x1f,0xf8,0x81,0x6f,0xbf]}

tool: D146: 718

tool: D634: 1.067

tool: D329: 45.45

tool: {"D425": [0x00,0x00,0x00,0x00,0x00,0x40,0x9f,0x40]}

tool: D437: 2.373599e-05

tool: D420: 0.000651814

tool: D130: 0.0017275

tool: D230: 0.060374

tool: D243: 0.3345

tool: D871: 63.86

tool: D288: 0.005589

tool: D287: 0.32217

tool: D490: 62.92

tool: {"D101": [0x00,0x00,0x00,0x00,0x00,0x70,0x9c,0x40]}

tool: {"D512": [0x00,0x00,0x00,0x00,0x00,0xcc,0xa0,0x40]}

tool: D260: 0.5628

assistant: ```c
int delta_t(int year, int month, double *delta_t, double *correction) {
  double u, y;
  if (year < -1999 || year > 3000 || month < 1 || month > 12)
    return -2;
  y = year + (month - 0.5) / 12;
  if (year < -500) {
    u = (year - 1820) / 100;
    *delta_t = -20 + 32 * u * u;
  } else if (year >= -500 && year < 500) {
    u = y / 100;
    *delta_t = 10583.6 + (-1014.41 + (33.78311 + (-5.952053 + (-0.1798452 + (0.022174192 + 0.0090316521 * u) * u) * u) * u) * u) * u;
  } else if (year >= 500 && year < 1600) {
    u = (y - 1000) / 100;
    *delta_t = 1574.2 + (-556.01 + (71.23472 + (0.319781 + (-0.8503463 + (-0.005050998 + 0.0083572073 * u) * u) * u) * u) * u) * u;
  } else if (year >= 1600 && year < 1700) {
    u = y - 1600;
    *delta_t = 120 + (-0.9808 + (-0.01532 + u / 7129.0) * u) * u;
  } else if (year >= 1700 && year < 1800) {
    u = y - 1700;
    *delta_t = 8.83 + (0.1603 + (-0.0059285 + (0.00013336 - u / 1174000.0) * u) * u) * u;
  } else if (year >= 1800 && year < 1860) {
    u = y - 1800;
    *delta_t = 13.72 + (-0.332447 + (0.0068612 + (0.0041116 + (-0.00037436 + (0.0000121272 + (-0.0000001699 + 0.000000000875 * u) * u) * u) * u) * u) * u) * u;
  } else if (year >= 1860 && year < 1900) {
    u = y - 1860;
    *delta_t = 7.62 + (0.5737 + (-0.251754 + (0.01680668 + (-0.0004473624 + u / 233174.0) * u) * u) * u) * u;
  } else if (year >= 1900 && year < 1920) {
    u = y - 1900;
    *delta_t = -2.79 + (1.494119 + (-0.0598939 + (0.0061966 - 0.000197 * u) * u) * u) * u;
  } else if (year >= 1920 && year < 1941) {
    u = y - 1920;
    *delta_t = 21.20 + (0.84493 + (-0.076100 + 0.0020936 * u) * u) * u;
  } else if (year >= 1941 && year < 1961) {
    u = y - 1950;
    *delta_t = 29.07 + (0.407 + (-1.0 / 233.0 + u / 2547.0) * u) * u;
  } else if (year >= 1961 && year < 1986) {
    u = y - 1975;
    *delta_t = 45.45 + (1.067 + (-1.0 / 260.0 - u / 718.0) * u) * u;
  } else if (year >= 1986 && year < 2005) {
    u = y - 2000;
    *delta_t = 63.86 + (0.3345 + (-0.060374 + (0.0017275 + (0.000651814 + 0.00002373599 * u) * u) * u) * u) * u;
  } else if (year >= 2005 && year < 2050) {
    u = y - 2000;
    *delta_t = 62.92 + (0.32217 + 0.005589 * u) * u;
  } else if (year >= 2050 && year < 2150) {
    u = (y - 1820) / 100;
    *delta_t = -20 + 32 * u * u - 0.5628 * (2150 - y);
  } else {
    u = (year - 1820) / 100;
    *delta_t = -20 + 32 * u * u;
  }
  if (year < 1955 || year > 2005)
    *correction = -0.000012932 * (y - 1955) * (y - 1955);
  else
    *correction = 0;
  return 0;
}
```