user: Demonstrate the C code that generates the assembly output below:

```asm
<check_near_masker>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x60,%rsp
  mov    %rdi,-0x38(%rbp)
  mov    %rsi,-0x40(%rbp)
  mov    %rdx,-0x48(%rbp)
  mov    %rcx,-0x50(%rbp)
  mov    %r8d,-0x54(%rbp)
  mov    -0x54(%rbp),%ecx
  mov    -0x48(%rbp),%rdx
  mov    -0x40(%rbp),%rsi
  mov    -0x38(%rbp),%rax
  mov    %rax,%rdi
  call   <ptm_pnm_filter_by_ath@plt>
  movl   $0x0,-0x24(%rbp)
  jmp    L159
L6:
  movl   $0x0,-0x1c(%rbp)
  movl   $0x0,-0x18(%rbp)
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  comiss %xmm1,%xmm0
  jbe    L197
  movl   $0x1,-0x1c(%rbp)
L197:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  comiss %xmm1,%xmm0
  jbe    L179
  movl   $0x1,-0x18(%rbp)
L179:
  cmpl   $0x0,-0x1c(%rbp)
  jne    L87
  cmpl   $0x0,-0x18(%rbp)
  je     L75
L87:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  movss  %xmm0,-0x14(%rbp)
  movss  -0x14(%rbp),%xmm0
  movss  D17(%rip),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x10(%rbp)
  movss  -0x14(%rbp),%xmm1
  movss  D17(%rip),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,-0xc(%rbp)
  mov    -0x10(%rbp),%ecx
  mov    -0x54(%rbp),%edx
  mov    -0x50(%rbp),%rax
  movd   %ecx,%xmm0
  mov    %edx,%esi
  mov    %rax,%rdi
  call   <psd_bark2bin@plt>
  add    $0x1,%eax
  mov    %eax,-0x8(%rbp)
  mov    -0xc(%rbp),%ecx
  mov    -0x54(%rbp),%edx
  mov    -0x50(%rbp),%rax
  movd   %ecx,%xmm0
  mov    %edx,%esi
  mov    %rax,%rdi
  call   <psd_bark2bin@plt>
  mov    %eax,-0x4(%rbp)
  mov    -0x8(%rbp),%eax
  mov    %eax,-0x20(%rbp)
  jmp    L36
L65:
  cmpl   $0x0,-0x1c(%rbp)
  je     L33
  mov    -0x20(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  je     L85
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  mov    -0x20(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  comiss %xmm1,%xmm0
  jbe    L85
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movss  %xmm0,(%rax)
  jmp    L75
L85:
  mov    -0x20(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  je     L161
  mov    -0x20(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movss  %xmm0,(%rax)
L161:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  mov    -0x20(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  comiss %xmm1,%xmm0
  jbe    L91
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movss  %xmm0,(%rax)
  jmp    L75
L91:
  mov    -0x20(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movss  %xmm0,(%rax)
  jmp    L48
L33:
  cmpl   $0x0,-0x18(%rbp)
  je     L48
  mov    -0x20(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  je     L47
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  mov    -0x20(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  comiss %xmm1,%xmm0
  jbe    L47
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movss  %xmm0,(%rax)
  jmp    L75
L47:
  mov    -0x20(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  je     L42
  mov    -0x20(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movss  %xmm0,(%rax)
L42:
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  mov    -0x20(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  comiss %xmm1,%xmm0
  jbe    L95
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movss  %xmm0,(%rax)
  jmp    L75
L95:
  mov    -0x20(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movss  %xmm0,(%rax)
L48:
  addl   $0x1,-0x20(%rbp)
L36:
  mov    -0x20(%rbp),%eax
  cmp    -0x4(%rbp),%eax
  jle    L65
L75:
  addl   $0x1,-0x24(%rbp)
L159:
  mov    -0x24(%rbp),%eax
  cmp    -0x54(%rbp),%eax
  jl     L6
  mov    $0x0,%eax
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: tag: D17
type_guessed: f32

tool: D17: 0.5

assistant: ```c
int check_near_masker(float *ptm, float *pnm, float *psd_ath, float *psd_bark, int psd_len) {
  int k, j;
  int tone_found, noise_found;
  float masker_bark;
  float bw_low_bark, bw_high_bark;
  int bw_low_bin, bw_high_bin;
  ptm_pnm_filter_by_ath(ptm, pnm, psd_ath, psd_len);
  for (k = 0; k < psd_len; k++) {
    tone_found = 0;
    noise_found = 0;
    if (ptm[k] > 0)
      tone_found = 1;
    if (pnm[k] > 0)
      noise_found = 1;
    if (tone_found || noise_found) {
      masker_bark = psd_bark[k];
      bw_low_bark = masker_bark - 0.5;
      bw_high_bark = masker_bark + 0.5;
      bw_low_bin = psd_bark2bin(psd_bark, psd_len, bw_low_bark) + 1;
      bw_high_bin = psd_bark2bin(psd_bark, psd_len, bw_high_bark);
      for (j = bw_low_bin; j <= bw_high_bin; j++) {
        if (tone_found) {
          if (j != k && ptm[k] < ptm[j]) {
            ptm[k] = 0;
            break;
          } else if (j != k) {
            ptm[j] = 0;
          } else {
            ;
          }
          if (ptm[k] < pnm[j]) {
            ptm[k] = 0;
            break;
          } else {
            pnm[j] = 0;
          }
        } else if (noise_found) {
          if (j != k && pnm[k] < pnm[j]) {
            pnm[k] = 0;
            break;
          } else if (j != k) {
            pnm[j] = 0;
          } else {
            ;
          }
          if (pnm[k] < ptm[j]) {
            pnm[k] = 0;
            break;
          } else {
            ptm[j] = 0;
          }
        } else {
          ;
        }
      }
    }
  }
  return 0;
}
```