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

```asm
<pearsonIIIFit>:
  endbr64
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x10,%rsp
  mov    %rdi,%rbp
  mov    %rsi,%rbx
  movsd  0x18(%rdi),%xmm0
  divsd  0x10(%rdi),%xmm0
  comisd D116(%rip),%xmm0
  jbe    L41
  movsd  D15(%rip),%xmm1
  comisd %xmm0,%xmm1
  jbe    L41
  movapd %xmm0,%xmm1
  mulsd  D86(%rip),%xmm1
  mulsd  %xmm1,%xmm0
  movapd %xmm0,%xmm3
  mulsd  %xmm0,%xmm3
  movapd %xmm0,%xmm1
  mulsd  D151(%rip),%xmm1
  addsd  D159(%rip),%xmm1
  movapd %xmm3,%xmm2
  mulsd  D145(%rip),%xmm2
  addsd  %xmm0,%xmm2
  mulsd  %xmm3,%xmm0
  mulsd  D54(%rip),%xmm0
  addsd  %xmm0,%xmm2
  divsd  %xmm2,%xmm1
  movsd  %xmm1,0x10(%rsi)
L34:
  movsd  D153(%rip),%xmm0
  mulsd  0x10(%rbp),%xmm0
  movsd  %xmm0,0x8(%rsp)
  movsd  0x10(%rbx),%xmm0
  call   <gammaLn@plt>
  mov    %rax,%r12
  movsd  D105(%rip),%xmm0
  addsd  0x10(%rbx),%xmm0
  call   <gammaLn@plt>
  mov    %r12,%rdi
  sub    %rax,%rdi
  call   <exp@plt>
  mulsd  0x8(%rsp),%xmm0
  movsd  %xmm0,0x8(%rbx)
  mulsd  0x10(%rbx),%xmm0
  movsd  0x8(%rbp),%xmm1
  subsd  %xmm0,%xmm1
  movsd  %xmm1,(%rbx)
  add    $0x10,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
L41:
  comisd D15(%rip),%xmm0
  jb     L34
  movsd  D159(%rip),%xmm1
  comisd %xmm0,%xmm1
  jbe    L34
  movapd %xmm1,%xmm2
  subsd  %xmm0,%xmm2
  movapd %xmm2,%xmm3
  mulsd  %xmm2,%xmm3
  movapd %xmm2,%xmm4
  mulsd  %xmm3,%xmm4
  movapd %xmm2,%xmm0
  mulsd  D124(%rip),%xmm0
  movapd %xmm3,%xmm5
  mulsd  D112(%rip),%xmm5
  subsd  %xmm5,%xmm0
  movapd %xmm4,%xmm5
  mulsd  D99(%rip),%xmm5
  addsd  %xmm5,%xmm0
  mulsd  D140(%rip),%xmm2
  subsd  %xmm2,%xmm1
  mulsd  D49(%rip),%xmm3
  addsd  %xmm3,%xmm1
  mulsd  D104(%rip),%xmm4
  subsd  %xmm4,%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,0x10(%rbx)
  jmp    L34
```

tool_calls: name: unpack_data
arguments: data_label: D116
type_infered: f64[2]
name: unpack_data
arguments: data_label: D15
type_infered: f64[2]
name: unpack_data
arguments: data_label: D86
type_infered: byte[8]
name: unpack_data
arguments: data_label: D151
type_infered: f64
name: unpack_data
arguments: data_label: D159
type_infered: byte[8]
name: unpack_data
arguments: data_label: D145
type_infered: f64
name: unpack_data
arguments: data_label: D54
type_infered: f64
name: unpack_data
arguments: data_label: D153
type_infered: byte[8]
name: unpack_data
arguments: data_label: D105
type_infered: f64
name: unpack_data
arguments: data_label: D124
type_infered: f64
name: unpack_data
arguments: data_label: D112
type_infered: f64
name: unpack_data
arguments: data_label: D99
type_infered: f64
name: unpack_data
arguments: data_label: D140
type_infered: f64
name: unpack_data
arguments: data_label: D49
type_infered: f64
name: unpack_data
arguments: data_label: D104
type_infered: f64

tool: {"D116": [0.0,0.333333]}

tool: {"D15": [0.333333,9.42477796076937]}

tool: {"D86": [0xcd,0x21,0x33,0x7f,0x7c,0xd9,0x22,0x40]}

tool: D151: 0.2906

tool: {"D159": [0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x3f]}

tool: D145: 0.1882

tool: D54: 0.0442

tool: {"D153": [0x67,0xef,0xb4,0x91,0xf8,0x5b,0xfc,0x3f]}

tool: D105: 0.5

tool: D124: 0.36067

tool: D112: 0.5967

tool: D99: 0.25361

tool: D140: 2.78861

tool: D49: 2.56096

tool: D104: 0.77045

assistant: ```c
void pearsonIIIFit(double L[], double pearsonIIIParams[]) {
  double lMomentRatio, pi, sqrtPi, t, t2, t3;
  pi = 3.14159265358979;
  sqrtPi = sqrt(pi);
  lMomentRatio = L[3] / L[2];
  if (lMomentRatio > 0.0 && lMomentRatio < 0.333333) {
    t = 3 * pi * lMomentRatio * lMomentRatio;
    t2 = t * t;
    t3 = t2 * t;
    pearsonIIIParams[2] = (1 + 0.2906 * t) / (t + 0.1882 * t2 + 0.0442 * t3);
  } else if (lMomentRatio >= 0.333333 && lMomentRatio < 1) {
    t = 1 - lMomentRatio;
    t2 = t * t;
    t3 = t2 * t;
    pearsonIIIParams[2] = (0.36067 * t - 0.5967 * t2 + 0.25361 * t3) / (1 - 2.78861 * t + 2.56096 * t2 - 0.77045 * t3);
  }
  pearsonIIIParams[1] = sqrtPi * L[2] * exp(gammaLn(pearsonIIIParams[2]) - gammaLn(pearsonIIIParams[2] + 0.5));
  pearsonIIIParams[0] = L[1] - pearsonIIIParams[1] * pearsonIIIParams[2];
}
```