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

```asm
<quick_pileup_simple>:
  endbr64
  push   %r12
  push   %rbp
  push   %rbx
  mov    %rdi,%rbx
  mov    %rsi,%rbp
  mov    (%rdx),%esi
  mov    (%rcx),%eax
  cmp    %eax,%esi
  cmovg  %eax,%esi
  lea    0x4(%rdx),%r10
  lea    0x4(%rcx),%rax
  mov    $0x0,%r12d
  test   %esi,%esi
  je     L81
  mov    %esi,(%rdi)
  movaps %xmm1,%xmm2
  cmpltss D0(%rip),%xmm2
  andnps %xmm1,%xmm2
  movss  %xmm2,0x0(%rbp)
  add    $0x4,%rbx
  add    $0x4,%rbp
  mov    $0x1,%r12d
L81:
  test   %r8,%r8
  jle    L87
  mov    $0x0,%edi
  mov    $0x0,%r9d
  mov    $0x0,%ecx
  jmp    L65
L69:
  add    $0x1,%edi
  add    $0x1,%rcx
  add    $0x4,%r10
L39:
  cmp    %r9,%rcx
  mov    %r9,%rdx
  cmovge %rcx,%rdx
  cmp    %rdx,%r8
  jle    L35
L65:
  mov    (%r10),%edx
  mov    (%rax),%r11d
  cmp    %r11d,%edx
  jge    L154
  cmp    %esi,%edx
  je     L69
  mov    %edx,(%rbx)
  pxor   %xmm2,%xmm2
  cvtsi2ss %edi,%xmm2
  mulss  %xmm0,%xmm2
  maxss  %xmm1,%xmm2
  movss  %xmm2,0x0(%rbp)
  add    $0x4,%rbx
  add    $0x4,%rbp
  add    $0x1,%r12
  mov    %edx,%esi
  jmp    L69
L154:
  jle    L131
  cmp    %esi,%r11d
  je     L97
  mov    %r11d,(%rbx)
  pxor   %xmm2,%xmm2
  cvtsi2ss %edi,%xmm2
  mulss  %xmm0,%xmm2
  maxss  %xmm1,%xmm2
  movss  %xmm2,0x0(%rbp)
  add    $0x4,%rbx
  add    $0x4,%rbp
  add    $0x1,%r12
  mov    %r11d,%esi
L97:
  sub    $0x1,%edi
  add    $0x1,%r9
  add    $0x4,%rax
  jmp    L39
L131:
  add    $0x1,%rcx
  add    $0x1,%r9
  add    $0x4,%r10
  add    $0x4,%rax
  jmp    L39
L35:
  cmp    %r9,%r8
  jle    L87
  sub    %r9,%r8
  lea    (%rax,%r8,4),%rcx
  jmp    L66
L61:
  sub    $0x1,%edi
  add    $0x4,%rax
  cmp    %rcx,%rax
  je     L87
L66:
  mov    %esi,%edx
  mov    (%rax),%esi
  cmp    %edx,%esi
  je     L61
  mov    %esi,(%rbx)
  pxor   %xmm2,%xmm2
  cvtsi2ss %edi,%xmm2
  mulss  %xmm0,%xmm2
  maxss  %xmm1,%xmm2
  movss  %xmm2,0x0(%rbp)
  add    $0x4,%rbx
  add    $0x4,%rbp
  add    $0x1,%r12
  jmp    L61
L87:
  mov    %r12,%rax
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
```

tool_calls: name: unpack_data
arguments: label: D0
type_guessed: byte[4]

tool: {"D0": [0x00,0x00,0x00,0x00]}

assistant: ```c
long quick_pileup_simple(int *ret_poss, float *ret_values, int *start_poss, int *end_poss, long length_poss, float scale_factor, float baseline_value) {
  long i_s, i_e, i, I;
  int p, pre_p, pileup;
  int *ptr_ret_poss;
  int *ptr_start_poss, *ptr_end_poss;
  float *ptr_ret_values;
  long l = length_poss;
  ptr_ret_poss = ret_poss;
  ptr_ret_values = ret_values;
  ptr_start_poss = start_poss;
  ptr_end_poss = end_poss;
  i_s = 0;
  i_e = 0;
  pileup = 0;
  pre_p = ((*ptr_start_poss) > (*ptr_end_poss) ? (*ptr_end_poss) : (*ptr_start_poss));
  ptr_start_poss++;
  ptr_end_poss++;
  I = 0;
  if (pre_p != 0) {
    *ptr_ret_poss = pre_p;
    *ptr_ret_values = ((0) > (baseline_value) ? (0) : (baseline_value));
    ptr_ret_poss++;
    ptr_ret_values++;
    I++;
  }
  while (i_s < l && i_e < l) {
    if (*ptr_start_poss < *ptr_end_poss) {
      p = *ptr_start_poss;
      if (p != pre_p) {
        *ptr_ret_poss = p;
        *ptr_ret_values = ((pileup * scale_factor) > (baseline_value) ? (pileup * scale_factor) : (baseline_value));
        ptr_ret_poss++;
        ptr_ret_values++;
        I++;
        pre_p = p;
      }
      pileup += 1;
      i_s += 1;
      ptr_start_poss++;
    } else if (*ptr_start_poss > *ptr_end_poss) {
      p = *ptr_end_poss;
      if (p != pre_p) {
        *ptr_ret_poss = p;
        *ptr_ret_values = ((pileup * scale_factor) > (baseline_value) ? (pileup * scale_factor) : (baseline_value));
        ptr_ret_poss++;
        ptr_ret_values++;
        I++;
        pre_p = p;
      }
      pileup -= 1;
      i_e += 1;
      ptr_end_poss++;
    } else {
      i_s += 1;
      i_e += 1;
      ptr_start_poss++;
      ptr_end_poss++;
    }
  }
  if (i_e < l) {
    for (i = i_e; i < l; i++) {
      p = *ptr_end_poss;
      if (p != pre_p) {
        *ptr_ret_poss = p;
        *ptr_ret_values = ((pileup * scale_factor) > (baseline_value) ? (pileup * scale_factor) : (baseline_value));
        ptr_ret_poss++;
        ptr_ret_values++;
        I++;
        pre_p = p;
      }
      pileup -= 1;
      ptr_end_poss++;
    }
  }
  return I;
}
```