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

```asm
<gamln1>:
  endbr64
  movsd  (%rdi),%xmm2
  comisd D218(%rip),%xmm2
  jae    L2
  movsd  D126(%rip),%xmm0
  movsd  D199(%rip),%xmm1
  mulsd  %xmm2,%xmm0
  mulsd  %xmm2,%xmm1
  subsd  D107(%rip),%xmm0
  addsd  D17(%rip),%xmm1
  mulsd  %xmm2,%xmm0
  mulsd  %xmm2,%xmm1
  subsd  D226(%rip),%xmm0
  addsd  D234(%rip),%xmm1
  mulsd  %xmm2,%xmm0
  mulsd  %xmm2,%xmm1
  subsd  D207(%rip),%xmm0
  addsd  D94(%rip),%xmm1
  mulsd  %xmm2,%xmm0
  mulsd  %xmm2,%xmm1
  subsd  D190(%rip),%xmm0
  addsd  D177(%rip),%xmm1
  mulsd  %xmm2,%xmm0
  mulsd  %xmm2,%xmm1
  addsd  D271(%rip),%xmm0
  addsd  D46(%rip),%xmm1
  mulsd  %xmm2,%xmm0
  mulsd  %xmm2,%xmm1
  addsd  D273(%rip),%xmm0
  addsd  D281(%rip),%xmm1
  divsd  %xmm1,%xmm0
  mulsd  %xmm2,%xmm0
  xorpd  D24(%rip),%xmm0
  ret
  nopw   0x0(%rax,%rax,1)
L2:
  movsd  D11(%rip),%xmm0
  movsd  D10(%rip),%xmm1
  subsd  %xmm0,%xmm2
  subsd  %xmm0,%xmm2
  movsd  D223(%rip),%xmm0
  mulsd  %xmm2,%xmm1
  mulsd  %xmm2,%xmm0
  addsd  D100(%rip),%xmm1
  addsd  D161(%rip),%xmm0
  mulsd  %xmm2,%xmm1
  mulsd  %xmm2,%xmm0
  addsd  D186(%rip),%xmm1
  addsd  D137(%rip),%xmm0
  mulsd  %xmm2,%xmm1
  mulsd  %xmm2,%xmm0
  addsd  D176(%rip),%xmm1
  addsd  D44(%rip),%xmm0
  mulsd  %xmm2,%xmm1
  mulsd  %xmm2,%xmm0
  addsd  D41(%rip),%xmm1
  addsd  D151(%rip),%xmm0
  mulsd  %xmm2,%xmm1
  mulsd  %xmm2,%xmm0
  addsd  D281(%rip),%xmm1
  addsd  D211(%rip),%xmm0
  divsd  %xmm1,%xmm0
  mulsd  %xmm2,%xmm0
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D218
type_infered: f64[2]
name: extract_symbolic_data
arguments: data_tag: D126
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D199
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D107
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D17
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D226
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D234
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D207
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D94
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D190
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D177
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D271
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D46
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D273
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D281
type_infered: f64
name: extract_symbolic_data
arguments: data_tag: D24
type_infered: byte[16]
name: extract_symbolic_data
arguments: data_tag: D11
type_infered: f64
name: extract_symbolic_data
arguments: data_tag: D10
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D223
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D100
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D161
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D186
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D137
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D176
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D44
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D41
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D151
type_infered: byte[8]
name: extract_symbolic_data
arguments: data_tag: D211
type_infered: byte[8]

tool: {"D218": [0.6,0.5]}

tool: {"D126": [0x1c,0xc0,0xa2,0xb7,0xe7,0x46,0x66,0xbf]}

tool: {"D199": [0x2c,0xe8,0x80,0x80,0x1b,0xdf,0x45,0x3f]}

tool: {"D107": [0x9d,0x29,0x3c,0xe0,0x41,0x3e,0xb1,0x3f]}

tool: {"D17": [0xfb,0xde,0xd0,0x75,0x59,0xa4,0xa0,0x3f]}

tool: {"D226": [0x05,0x2a,0x4d,0x3f,0x48,0xbb,0xd9,0x3f]}

tool: {"D234": [0xc1,0x50,0x0d,0xae,0x38,0x2a,0xd7,0x3f]}

tool: {"D207": [0xca,0x95,0xb3,0x55,0x43,0xf9,0xe8,0x3f]}

tool: {"D94": [0x7a,0xf0,0x78,0xa0,0x9b,0x19,0xf9,0x3f]}

tool: {"D190": [0xde,0xd4,0xa5,0x53,0x39,0x9d,0xc5,0x3f]}

tool: {"D177": [0xee,0xbe,0x8b,0x66,0x39,0x05,0x09,0x40]}

tool: {"D271": [0xb3,0x5e,0x9e,0xf1,0xb7,0x03,0xeb,0x3f]}

tool: {"D46": [0xdc,0x28,0xb8,0xec,0x75,0x19,0x07,0x40]}

tool: {"D273": [0x1a,0xb6,0x6f,0xfc,0x8c,0x78,0xe2,0x3f]}

tool: D281: 1

tool: {"D24": [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: D11: 0.5

tool: {"D10": [0xa9,0x09,0x63,0xae,0xbb,0x73,0x1e,0x3f]}

tool: {"D223": [0x1e,0x1a,0xb9,0x1b,0x2d,0x51,0x40,0x3f]}

tool: {"D100": [0x01,0x87,0x24,0xe9,0x97,0x37,0x7d,0x3f]}

tool: {"D161": [0xc3,0x09,0x1b,0xcd,0x9e,0x75,0x91,0x3f]}

tool: {"D186": [0x52,0x2e,0xe4,0xfb,0x52,0xff,0xb9,0x3f]}

tool: {"D137": [0xb8,0xe2,0x17,0xb6,0x9e,0x08,0xc4,0x3f]}

tool: {"D176": [0xea,0xf5,0x51,0x9b,0x8f,0x89,0xe1,0x3f]}

tool: {"D44": [0x8b,0x71,0xf7,0x74,0x4a,0x16,0xe2,0x3f]}

tool: {"D41": [0xd8,0x8d,0xd4,0x79,0xe0,0xe3,0xf3,0x3f]}

tool: {"D151": [0xf9,0x30,0x9f,0x75,0x2e,0x23,0xeb,0x3f]}

tool: {"D211": [0xcc,0x93,0x20,0x07,0xe6,0x0e,0xdb,0x3f]}

assistant: ```c
double gamln1(double *a) {
  static double p0 = .577215664901533e+00;
  static double p1 = .844203922187225e+00;
  static double p2 = -.168860593646662e+00;
  static double p3 = -.780427615533591e+00;
  static double p4 = -.402055799310489e+00;
  static double p5 = -.673562214325671e-01;
  static double p6 = -.271935708322958e-02;
  static double q1 = .288743195473681e+01;
  static double q2 = .312755088914843e+01;
  static double q3 = .156875193295039e+01;
  static double q4 = .361951990101499e+00;
  static double q5 = .325038868253937e-01;
  static double q6 = .667465618796164e-03;
  static double r0 = .422784335098467e+00;
  static double r1 = .848044614534529e+00;
  static double r2 = .565221050691933e+00;
  static double r3 = .156513060486551e+00;
  static double r4 = .170502484022650e-01;
  static double r5 = .497958207639485e-03;
  static double s1 = .124313399877507e+01;
  static double s2 = .548042109832463e+00;
  static double s3 = .101552187439830e+00;
  static double s4 = .713309612391000e-02;
  static double s5 = .116165475989616e-03;
  static double gamln1, w, x;
  if (*a >= 0.6e0)
    goto S10;
  w = ((((((p6 * *a + p5) * *a + p4) * *a + p3) * *a + p2) * *a + p1) * *a + p0) / ((((((q6 * *a + q5) * *a + q4) * *a + q3) * *a + q2) * *a + q1) * *a + 1.0e0);
  gamln1 = -(*a * w);
  return gamln1;
S10:
  x = *a - 0.5e0 - 0.5e0;
  w = (((((r5 * x + r4) * x + r3) * x + r2) * x + r1) * x + r0) / (((((s5 * x + s4) * x + s3) * x + s2) * x + s1) * x + 1.0e0);
  gamln1 = x * w;
  return gamln1;
}
```