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

```asm
<delta_t>:
  endbr64
  mov    %edi,%eax
  mov    %rdx,%rdi
  lea    0x7cf(%rax),%edx
  cmp    $0x1387,%edx
  ja     L217
  lea    -0x1(%rsi),%edx
  cmp    $0xb,%edx
  ja     L217
  pxor   %xmm1,%xmm1
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm1
  cvtsi2sd %esi,%xmm0
  subsd  D720(%rip),%xmm0
  divsd  D240(%rip),%xmm0
  addsd  %xmm1,%xmm0
  cmp    $0xfffffe0c,%eax
  jge    L245
  lea    -0x71c(%rax),%esi
  pxor   %xmm2,%xmm2
  movsd  D171(%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  D293(%rip),%xmm1
L188:
  sub    $0x7a3,%eax
  movsd  %xmm1,(%rdi)
  cmp    $0x32,%eax
  ja     L221
L240:
  movq   $0x0,(%rcx)
  xor    %eax,%eax
  ret
  nopw   0x0(%rax,%rax,1)
L245:
  lea    0x1f4(%rax),%edx
  cmp    $0x3e7,%edx
  ja     L214
  movsd  D18(%rip),%xmm1
  movapd %xmm0,%xmm2
  divsd  D861(%rip),%xmm2
  mulsd  %xmm2,%xmm1
  addsd  D522(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  D71(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  D213(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D899(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  D209(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D319(%rip),%xmm1
  movsd  %xmm1,(%rdi)
L221:
  subsd  D728(%rip),%xmm0
  movsd  D719(%rip),%xmm1
  xor    %eax,%eax
  mulsd  %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  %xmm1,(%rcx)
  ret
  nopl   0x0(%rax)
L214:
  lea    -0x1f4(%rax),%edx
  cmp    $0x44b,%edx
  jbe    L57
  lea    -0x640(%rax),%edx
  cmp    $0x63,%edx
  ja     L250
  movapd %xmm0,%xmm2
  subsd  D295(%rip),%xmm2
  movapd %xmm2,%xmm1
  divsd  D477(%rip),%xmm1
  subsd  D688(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  D679(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D251(%rip),%xmm1
  movsd  %xmm1,(%rdi)
  jmp    L221
  cs nopw 0x0(%rax,%rax,1)
L57:
  movsd  D280(%rip),%xmm1
  movapd %xmm0,%xmm2
  subsd  D57(%rip),%xmm2
  divsd  D861(%rip),%xmm2
  mulsd  %xmm2,%xmm1
  subsd  D155(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  D461(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D503(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D381(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  D499(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D358(%rip),%xmm1
  movsd  %xmm1,(%rdi)
  jmp    L221
  nopl   (%rax)
L250:
  lea    -0x6a4(%rax),%edx
  cmp    $0x63,%edx
  jbe    L187
  lea    -0x708(%rax),%edx
  cmp    $0x3b,%edx
  ja     L122
  movapd %xmm0,%xmm2
  subsd  D718(%rip),%xmm2
  movsd  D722(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  D107(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D539(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  D138(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D397(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D203(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  D310(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D301(%rip),%xmm1
  movsd  %xmm1,(%rdi)
  jmp    L221
  nop
L187:
  movapd %xmm0,%xmm3
  subsd  D261(%rip),%xmm3
  movsd  D524(%rip),%xmm2
  movapd %xmm3,%xmm4
  divsd  D745(%rip),%xmm4
  subsd  %xmm4,%xmm2
  movapd %xmm2,%xmm1
  mulsd  %xmm3,%xmm1
  subsd  D525(%rip),%xmm1
  mulsd  %xmm3,%xmm1
  addsd  D120(%rip),%xmm1
  mulsd  %xmm3,%xmm1
  addsd  D340(%rip),%xmm1
  movsd  %xmm1,(%rdi)
  jmp    L221
  nopl   (%rax)
L217:
  mov    $0xfffffffe,%eax
  ret
  xchg   %ax,%ax
L122:
  lea    -0x744(%rax),%edx
  cmp    $0x27,%edx
  ja     L137
  movapd %xmm0,%xmm2
  subsd  D40(%rip),%xmm2
  movapd %xmm2,%xmm1
  divsd  D131(%rip),%xmm1
  subsd  D773(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D20(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  D129(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D481(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D521(%rip),%xmm1
  movsd  %xmm1,(%rdi)
  jmp    L221
L137:
  lea    -0x76c(%rax),%edx
  cmp    $0x13,%edx
  ja     L117
  movapd %xmm0,%xmm3
  subsd  D432(%rip),%xmm3
  movsd  D551(%rip),%xmm4
  movsd  D709(%rip),%xmm2
  mulsd  %xmm3,%xmm4
  subsd  %xmm4,%xmm2
  movapd %xmm2,%xmm1
  mulsd  %xmm3,%xmm1
  subsd  D690(%rip),%xmm1
  mulsd  %xmm3,%xmm1
  addsd  D6(%rip),%xmm1
  mulsd  %xmm3,%xmm1
  subsd  D555(%rip),%xmm1
  movsd  %xmm1,(%rdi)
  jmp    L221
L117:
  lea    -0x780(%rax),%edx
  cmp    $0x14,%edx
  ja     L107
  movapd %xmm0,%xmm2
  subsd  D254(%rip),%xmm2
  movsd  D685(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  D247(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D517(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D795(%rip),%xmm1
  movsd  %xmm1,(%rdi)
  jmp    L221
L107:
  lea    -0x795(%rax),%edx
  cmp    $0x13,%edx
  ja     L252
  movapd %xmm0,%xmm2
  subsd  D362(%rip),%xmm2
  movapd %xmm2,%xmm1
  divsd  D686(%rip),%xmm1
  subsd  D278(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D594(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D491(%rip),%xmm1
  jmp    L188
L252:
  lea    -0x7a9(%rax),%edx
  cmp    $0x18,%edx
  ja     L258
  subsd  D871(%rip),%xmm0
  movsd  D796(%rip),%xmm2
  movapd %xmm0,%xmm3
  divsd  D799(%rip),%xmm3
  subsd  %xmm3,%xmm2
  movapd %xmm2,%xmm1
  mulsd  %xmm0,%xmm1
  addsd  D1(%rip),%xmm1
  mulsd  %xmm0,%xmm1
  addsd  D471(%rip),%xmm1
  movsd  %xmm1,(%rdi)
  jmp    L240
L258:
  lea    -0x7c2(%rax),%edx
  cmp    $0x12,%edx
  ja     L211
  subsd  D342(%rip),%xmm0
  movsd  D881(%rip),%xmm1
  mulsd  %xmm0,%xmm1
  addsd  D41(%rip),%xmm1
  mulsd  %xmm0,%xmm1
  addsd  D279(%rip),%xmm1
  mulsd  %xmm0,%xmm1
  subsd  D528(%rip),%xmm1
  mulsd  %xmm0,%xmm1
  addsd  D156(%rip),%xmm1
  mulsd  %xmm0,%xmm1
  addsd  D847(%rip),%xmm1
  movsd  %xmm1,(%rdi)
  jmp    L240
L211:
  lea    -0x7d5(%rax),%edx
  cmp    $0x2c,%edx
  ja     L7
  movapd %xmm0,%xmm2
  subsd  D342(%rip),%xmm2
  movsd  D243(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D418(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  addsd  D137(%rip),%xmm1
  jmp    L188
L7:
  lea    -0x802(%rax),%edx
  cmp    $0x63,%edx
  ja     L136
  movsd  D171(%rip),%xmm1
  movapd %xmm0,%xmm2
  subsd  D325(%rip),%xmm2
  divsd  D861(%rip),%xmm2
  mulsd  %xmm2,%xmm1
  mulsd  %xmm2,%xmm1
  movsd  D482(%rip),%xmm2
  subsd  D293(%rip),%xmm1
  subsd  %xmm0,%xmm2
  mulsd  D394(%rip),%xmm2
  subsd  %xmm2,%xmm1
  movsd  %xmm1,(%rdi)
  jmp    L221
L136:
  sub    $0x71c,%eax
  mov    $0x64,%esi
  pxor   %xmm2,%xmm2
  movsd  D171(%rip),%xmm1
  cltd
  idiv   %esi
  cvtsi2sd %eax,%xmm2
  mulsd  %xmm2,%xmm1
  mulsd  %xmm2,%xmm1
  subsd  D293(%rip),%xmm1
  movsd  %xmm1,(%rdi)
  jmp    L221
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D720
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D240
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_label: D171
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_label: D293
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_label: D18
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D861
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_label: D522
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D71
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D213
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D899
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D209
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D319
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D728
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_label: D719
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_label: D295
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_label: D477
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D688
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D679
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D251
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_label: D280
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D57
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_label: D155
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D461
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D503
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D381
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D499
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D358
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D718
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_label: D722
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D107
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D539
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D138
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D397
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D203
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D310
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D301
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D261
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_label: D524
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D745
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D525
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D120
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D340
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D40
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_label: D131
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D773
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D20
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D129
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D481
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D521
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D432
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_label: D551
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D709
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D690
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D6
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D555
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D254
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_label: D685
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D247
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D517
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D795
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D362
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_label: D686
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D278
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_label: D594
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D491
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D871
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_label: D796
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_label: D799
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D1
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D471
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D342
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_label: D881
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D41
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D279
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D528
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D156
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D847
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D243
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D418
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D137
type_guessed: f64
name: extract_symbolic_data
arguments: data_label: D325
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_label: D482
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_label: D394
type_guessed: f64

tool: D720: 0.5

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

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

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

tool: D18: 0.0090316521

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

tool: D522: 0.022174192

tool: D71: 0.1798452

tool: D213: 5.952053

tool: D899: 33.78311

tool: D209: 1014.41

tool: D319: 10583.6

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

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

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

tool: D477: 7129

tool: D688: 0.01532

tool: D679: 0.9808

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

tool: D280: 0.0083572073

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

tool: D155: 0.005050998

tool: D461: 0.8503463

tool: D503: 0.319781

tool: D381: 71.23472

tool: D499: 556.01

tool: D358: 1574.2

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

tool: D722: 8.75e-10

tool: D107: 1.699e-07

tool: D539: 1.21272e-05

tool: D138: 0.00037436

tool: D397: 0.0041116

tool: D203: 0.0068612

tool: D310: 0.332447

tool: D301: 13.72

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

tool: D524: 0.00013336

tool: D745: 1174000

tool: D525: 0.0059285

tool: D120: 0.1603

tool: D340: 8.83

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

tool: D131: 233174

tool: D773: 0.0004473624

tool: D20: 0.01680668

tool: D129: 0.251754

tool: D481: 0.5737

tool: D521: 7.62

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

tool: D551: 0.000197

tool: D709: 0.0061966

tool: D690: 0.0598939

tool: D6: 1.494119

tool: D555: 2.79

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

tool: D685: 0.0020936

tool: D247: 0.0761

tool: D517: 0.84493

tool: D795: 21.2

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

tool: D686: 2547

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

tool: D594: 0.407

tool: D491: 29.07

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

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

tool: D799: 718

tool: D1: 1.067

tool: D471: 45.45

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

tool: D881: 2.373599e-05

tool: D41: 0.000651814

tool: D279: 0.0017275

tool: D528: 0.060374

tool: D156: 0.3345

tool: D847: 63.86

tool: D243: 0.005589

tool: D418: 0.32217

tool: D137: 62.92

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

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

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