user: What is the c source code of the assembly code below:

```asm
<gamln1>:
  endbr64
  comisd D46(%rip),%xmm0
  movapd %xmm0,%xmm1
  jae    L0
  movsd  D282(%rip),%xmm0
  movsd  D52(%rip),%xmm2
  mulsd  %xmm1,%xmm0
  mulsd  %xmm1,%xmm2
  subsd  D167(%rip),%xmm0
  addsd  D186(%rip),%xmm2
  mulsd  %xmm1,%xmm0
  mulsd  %xmm1,%xmm2
  subsd  D258(%rip),%xmm0
  addsd  D97(%rip),%xmm2
  mulsd  %xmm1,%xmm0
  mulsd  %xmm1,%xmm2
  subsd  D280(%rip),%xmm0
  addsd  D230(%rip),%xmm2
  mulsd  %xmm1,%xmm0
  mulsd  %xmm1,%xmm2
  subsd  D175(%rip),%xmm0
  addsd  D120(%rip),%xmm2
  mulsd  %xmm1,%xmm0
  mulsd  %xmm1,%xmm2
  addsd  D72(%rip),%xmm0
  addsd  D250(%rip),%xmm2
  mulsd  %xmm1,%xmm0
  mulsd  %xmm1,%xmm2
  addsd  D139(%rip),%xmm0
  xorpd  D130(%rip),%xmm1
  addsd  D279(%rip),%xmm2
  divsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  ret
  nopw   0x0(%rax,%rax,1)
L0:
  movsd  D24(%rip),%xmm0
  movsd  D173(%rip),%xmm2
  subsd  %xmm0,%xmm1
  subsd  %xmm0,%xmm1
  movsd  D104(%rip),%xmm0
  mulsd  %xmm1,%xmm2
  mulsd  %xmm1,%xmm0
  addsd  D18(%rip),%xmm2
  addsd  D48(%rip),%xmm0
  mulsd  %xmm1,%xmm2
  mulsd  %xmm1,%xmm0
  addsd  D246(%rip),%xmm2
  addsd  D206(%rip),%xmm0
  mulsd  %xmm1,%xmm2
  mulsd  %xmm1,%xmm0
  addsd  D129(%rip),%xmm2
  addsd  D148(%rip),%xmm0
  mulsd  %xmm1,%xmm2
  mulsd  %xmm1,%xmm0
  addsd  D136(%rip),%xmm2
  addsd  D198(%rip),%xmm0
  mulsd  %xmm1,%xmm2
  mulsd  %xmm1,%xmm0
  addsd  D279(%rip),%xmm2
  addsd  D182(%rip),%xmm0
  divsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  ret
```

tool_calls: name: read_data
arguments: tag: D46
data_type: byte[16]
name: read_data
arguments: tag: D282
data_type: byte[8]
name: read_data
arguments: tag: D52
data_type: byte[8]
name: read_data
arguments: tag: D167
data_type: byte[8]
name: read_data
arguments: tag: D186
data_type: byte[8]
name: read_data
arguments: tag: D258
data_type: byte[8]
name: read_data
arguments: tag: D97
data_type: byte[8]
name: read_data
arguments: tag: D280
data_type: byte[8]
name: read_data
arguments: tag: D230
data_type: f64
name: read_data
arguments: tag: D175
data_type: byte[8]
name: read_data
arguments: tag: D120
data_type: f64
name: read_data
arguments: tag: D72
data_type: byte[8]
name: read_data
arguments: tag: D250
data_type: f64
name: read_data
arguments: tag: D139
data_type: byte[8]
name: read_data
arguments: tag: D130
data_type: byte[16]
name: read_data
arguments: tag: D279
data_type: f64
name: read_data
arguments: tag: D24
data_type: f64
name: read_data
arguments: tag: D173
data_type: byte[8]
name: read_data
arguments: tag: D104
data_type: byte[8]
name: read_data
arguments: tag: D18
data_type: byte[8]
name: read_data
arguments: tag: D48
data_type: byte[8]
name: read_data
arguments: tag: D246
data_type: byte[8]
name: read_data
arguments: tag: D206
data_type: byte[8]
name: read_data
arguments: tag: D129
data_type: byte[8]
name: read_data
arguments: tag: D148
data_type: byte[8]
name: read_data
arguments: tag: D136
data_type: f64
name: read_data
arguments: tag: D198
data_type: byte[8]
name: read_data
arguments: tag: D182
data_type: byte[8]

tool: {"D46": [0x00,0x00,0x00,0x40,0x33,0x33,0xe3,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x3f]}

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

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

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

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

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

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

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

tool: D230: 1.56875193295039

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

tool: D120: 3.12755088914843

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

tool: D250: 2.88743195473681

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

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

tool: D279: 1

tool: D24: 0.5

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

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

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

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

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

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

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

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

tool: D136: 1.24313399877507

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

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

assistant: ```c
double gamln1(double a) {
  static double p0 = .577215664901533;
  static double p1 = .844203922187225;
  static double p2 = -.168860593646662;
  static double p3 = -.780427615533591;
  static double p4 = -.402055799310489;
  static double p5 = -.0673562214325671;
  static double p6 = -.00271935708322958;
  static double q1 = 2.88743195473681;
  static double q2 = 3.12755088914843;
  static double q3 = 1.56875193295039;
  static double q4 = .361951990101499;
  static double q5 = .0325038868253937;
  static double q6 = 6.67465618796164e-4;
  static double r0 = .422784335098467;
  static double r1 = .848044614534529;
  static double r2 = .565221050691933;
  static double r3 = .156513060486551;
  static double r4 = .017050248402265;
  static double r5 = 4.97958207639485e-4;
  static double s1 = 1.24313399877507;
  static double s2 = .548042109832463;
  static double s3 = .10155218743983;
  static double s4 = .00713309612391;
  static double s5 = 1.16165475989616e-4;
  double ret_val;
  double w, x;
  if (a >= .6f) {
    goto L10;
  }
  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.0);
  ret_val = -(a)*w;
  return ret_val;
L10:
  x = a - 0.5 - 0.5;
  w = (((((r5 * x + r4) * x + r3) * x + r2) * x + r1) * x + r0) / (((((s5 * x + s4) * x + s3) * x + s2) * x + s1) * x + 1.0);
  ret_val = x * w;
  return ret_val;
}
```