user: What would the C source look like for the assembly code provided here?

```asm
<DEVfetlim>:
  endbr64
  movapd %xmm1,%xmm3
  pxor   %xmm8,%xmm8
  movapd %xmm0,%xmm4
  subsd  %xmm2,%xmm3
  addsd  %xmm3,%xmm3
  comisd %xmm3,%xmm8
  jbe    L43
  xorpd  D44(%rip),%xmm3
L43:
  movsd  D64(%rip),%xmm7
  comisd %xmm2,%xmm1
  movapd %xmm4,%xmm6
  movsd  D65(%rip),%xmm9
  subsd  %xmm1,%xmm6
  addsd  %xmm7,%xmm3
  movapd %xmm3,%xmm5
  mulsd  %xmm9,%xmm5
  addsd  %xmm7,%xmm5
  jb     L39
  movsd  D21(%rip),%xmm0
  addsd  %xmm2,%xmm0
  comisd %xmm0,%xmm1
  jb     L32
  comisd %xmm6,%xmm8
  jae    L69
  comisd %xmm3,%xmm6
  jb     L68
  addsd  %xmm3,%xmm1
  movapd %xmm1,%xmm0
  ret
  nopl   0x0(%rax)
L39:
  comisd %xmm6,%xmm8
  jae    L109
  addsd  %xmm9,%xmm2
  comisd %xmm4,%xmm2
  movapd %xmm2,%xmm0
  jb     L59
  comisd %xmm5,%xmm6
  jbe    L68
  addsd  %xmm5,%xmm1
  movapd %xmm1,%xmm0
  ret
  nopl   (%rax)
L32:
  comisd %xmm6,%xmm8
  jae    L24
  addsd  D66(%rip),%xmm2
  minsd  %xmm2,%xmm4
  movapd %xmm4,%xmm0
  ret
  nopl   0x0(%rax,%rax,1)
L109:
  xorpd  D44(%rip),%xmm6
  comisd %xmm3,%xmm6
  jbe    L68
  subsd  %xmm3,%xmm1
  movapd %xmm1,%xmm0
  ret
  nopw   0x0(%rax,%rax,1)
L69:
  comisd %xmm0,%xmm4
  jb     L27
  xorpd  D44(%rip),%xmm6
  comisd %xmm5,%xmm6
  ja     L78
  nopl   0x0(%rax)
L68:
  movapd %xmm4,%xmm0
L59:
  ret
  nopl   (%rax)
L24:
  subsd  %xmm9,%xmm2
  maxsd  %xmm2,%xmm4
  movapd %xmm4,%xmm0
  ret
  xchg   %ax,%ax
L27:
  addsd  %xmm7,%xmm2
  maxsd  %xmm2,%xmm4
  movapd %xmm4,%xmm0
  ret
  nopl   (%rax)
L78:
  subsd  %xmm5,%xmm1
  movapd %xmm1,%xmm0
  ret
```

tool_calls: name: read_data
arguments: data_tag: D44
type: byte[16]
name: read_data
arguments: data_tag: D64
type: byte[8]
name: read_data
arguments: data_tag: D65
type: byte[8]
name: read_data
arguments: data_tag: D21
type: f64
name: read_data
arguments: data_tag: D66
type: byte[8]

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

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

tool: {"D65": [0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x3f]}

tool: D21: 3.5

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

assistant: ```c
double DEVfetlim(vnew, vold, vto)
double vnew;
double vold;
double vto;
{
  double vtsthi;
  double vtstlo;
  double vtox;
  double delv;
  double vtemp;
  vtsthi = (((2 * (vold - vto)) < 0) ? -(2 * (vold - vto)) : (2 * (vold - vto))) + 2;
  vtstlo = vtsthi / 2 + 2;
  vtox = vto + 3.5;
  delv = vnew - vold;
  if (vold >= vto) {
    if (vold >= vtox) {
      if (delv <= 0) {
        if (vnew >= vtox) {
          if (-delv > vtstlo) {
            vnew = vold - vtstlo;
          }
        } else {
          vnew = ((vnew) > (vto + 2) ? (vnew) : (vto + 2));
        }
      } else {
        if (delv >= vtsthi) {
          vnew = vold + vtsthi;
        }
      }
    } else {
      if (delv <= 0) {
        vnew = ((vnew) > (vto - .5) ? (vnew) : (vto - .5));
      } else {
        vnew = ((vnew) < (vto + 4) ? (vnew) : (vto + 4));
      }
    }
  } else {
    if (delv <= 0) {
      if (-delv > vtsthi) {
        vnew = vold - vtsthi;
      }
    } else {
      vtemp = vto + .5;
      if (vnew <= vtemp) {
        if (delv > vtstlo) {
          vnew = vold + vtstlo;
        }
      } else {
        vnew = vtemp;
      }
    }
  }
  return (vnew);
}
```