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

```asm
<dt_iop_equalizer_wtf>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbx
  sub    $0xc8,%rsp
  mov    %rdi,%r12
  mov    %edx,-0xe4(%rbp)
  mov    %r8d,-0x64(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x38(%rbp)
  xor    %eax,%eax
  mov    %edx,%eax
  lea    -0x1(%rdx),%ebx
  mov    %ecx,-0x5c(%rbp)
  mov    %ecx,%r14d
  mov    %ebx,%ecx
  sar    %cl,%r14d
  lea    0x1(%r14),%edi
  mov    %edi,-0x78(%rbp)
  mov    %r8d,%r15d
  sar    %cl,%r15d
  cltq
  lea    (%rsi,%rax,8),%r13
  lea    0x1(%r15),%edx
  movslq %edx,%rdx
  movslq %edi,%rax
  imul   %rax,%rdx
  shl    $0x2,%rdx
  mov    0x0(%r13),%rdi
  mov    $0x0,%esi
  call   <memset@plt>
  test   %r15d,%r15d
  jle    L438
  mov    $0x0,%r9d
  mov    $0x0,%r8d
  mov    %ebx,%ecx
  mov    -0x5c(%rbp),%r10d
  jmp    L544
L255:
  mov    %r8d,%edi
  shl    %cl,%edi
  imul   %r10d,%edi
  movslq %r9d,%rsi
  shl    $0x2,%rsi
  mov    $0x0,%edx
L131:
  mov    %edx,%eax
  shl    %cl,%eax
  add    %edi,%eax
  shl    $0x2,%eax
  cltq
  movss  (%r12,%rax,4),%xmm0
  mov    0x0(%r13),%rax
  movss  %xmm0,(%rax,%rsi,1)
  add    $0x1,%edx
  add    $0x4,%rsi
  cmp    %edx,%r14d
  jne    L131
L335:
  add    $0x1,%r8d
  add    -0x78(%rbp),%r9d
  cmp    %r8d,%r15d
  je     L127
L544:
  test   %r14d,%r14d
  jg     L255
  jmp    L335
L127:
  mov    %ecx,%ebx
L438:
  mov    $0x1,%eax
  mov    -0xe4(%rbp),%edx
  mov    %edx,%ecx
  shl    %cl,%eax
  mov    %eax,%esi
  mov    %eax,-0x48(%rbp)
  shr    $0x1f,%eax
  add    %esi,%eax
  mov    %eax,%r14d
  sar    %r14d
  mov    %r14d,-0x44(%rbp)
  cmpl   $0x0,-0x64(%rbp)
  jle    L177
  mov    -0x5c(%rbp),%eax
  movslq %eax,%rdi
  shl    $0x2,%eax
  mov    %eax,-0xb8(%rbp)
  cltq
  mov    %rax,-0xa8(%rbp)
  lea    0x0(,%r14,4),%r10d
  mov    %r10d,-0xa0(%rbp)
  movslq %r10d,%r9
  mov    %r9,-0x58(%rbp)
  shl    $0x2,%rax
  mov    %rax,-0xb0(%rbp)
  lea    0xc(%r12),%r15
  mov    %r15,-0xd8(%rbp)
  mov    $0x4,%eax
  shl    %cl,%eax
  mov    %eax,-0x9c(%rbp)
  mov    %esi,%ecx
  movslq %esi,%rdx
  lea    0x0(,%rdx,4),%rsi
  mov    %rsi,-0x50(%rbp)
  movslq %eax,%rsi
  shl    $0x2,%rsi
  movslq %r14d,%r11
  neg    %r11
  shl    $0x2,%r11
  mov    %r10d,%eax
  neg    %eax
  mov    %eax,-0xd0(%rbp)
  mov    %r10d,-0x68(%rbp)
  mov    %r9,-0x80(%rbp)
  movq   $0x0,-0x88(%rbp)
  movl   $0x0,-0x70(%rbp)
  movl   $0x0,-0x60(%rbp)
  lea    0xf(,%rdi,4),%rax
  mov    %rax,%rdi
  and    $0xfffffffffffffff0,%rdi
  mov    %rdi,-0xc0(%rbp)
  and    $0xff0,%eax
  mov    %rax,-0xe0(%rbp)
  sub    $0x8,%rax
  mov    %rax,-0xf0(%rbp)
  movss  D11(%rip),%xmm3
  movsd  D22(%rip),%xmm2
  mov    %ecx,%r10d
  mov    %ecx,%eax
  sub    %r14d,%eax
  cltq
  sub    %rdx,%rax
  mov    %rax,%r14
  mov    %ebx,%ecx
  mov    %r13,-0xc8(%rbp)
  mov    %r15,%r13
  jmp    L69
L149:
  mov    -0xe0(%rbp),%rax
  sub    %rax,%rsp
  test   %rax,%rax
  je     L18
  mov    -0xf0(%rbp),%rax
  orq    $0x0,(%rsp,%rax,1)
L18:
  mov    %rsp,%rdx
  mov    %rdx,-0x90(%rbp)
  mov    -0x5c(%rbp),%r9d
  sub    -0x44(%rbp),%r9d
  test   %r9d,%r9d
  jle    L465
  mov    -0xc8(%rbp),%rax
  mov    (%rax),%r8
  mov    -0x60(%rbp),%edi
  sar    %cl,%edi
  imul   -0x78(%rbp),%edi
  mov    $0x0,%eax
  movsd  D49(%rip),%xmm4
L289:
  mov    %eax,%ebx
  sar    %cl,%ebx
  add    %edi,%ebx
  movslq %ebx,%rbx
  movss  (%r8,%rbx,4),%xmm0
  add    -0x44(%rbp),%eax
  mov    %eax,%ebx
  sar    %cl,%ebx
  add    %edi,%ebx
  movslq %ebx,%rbx
  subss  (%r8,%rbx,4),%xmm0
  andps  %xmm3,%xmm0
  cvtss2sd %xmm0,%xmm0
  addsd  %xmm2,%xmm0
  movapd %xmm4,%xmm1
  divsd  %xmm0,%xmm1
  cvtsd2ss %xmm1,%xmm1
  movss  %xmm1,(%rdx)
  add    -0x58(%rbp),%rdx
  cmp    %r9d,%eax
  jl     L289
L465:
  mov    -0x44(%rbp),%r15d
  cmp    %r9d,%r15d
  jge    L540
  mov    -0x90(%rbp),%rbx
  add    -0x58(%rbp),%rbx
  mov    -0x68(%rbp),%edi
  movslq %edi,%rax
  lea    (%r12,%rax,4),%rdx
  mov    -0x70(%rbp),%eax
  shl    $0x2,%eax
  cltq
  lea    (%r12,%rax,4),%r8
  mov    %edi,%eax
  add    -0xa0(%rbp),%eax
  cltq
  lea    (%r12,%rax,4),%rdi
  jmp    L456
L124:
  add    %r10d,%r15d
  add    -0x50(%rbp),%rbx
  add    %rsi,%rdx
  add    %rsi,%r8
  add    %rsi,%rdi
  cmp    %r9d,%r15d
  jge    L375
L456:
  movss  (%rbx,%r11,1),%xmm5
  movss  (%rbx),%xmm4
  movaps %xmm5,%xmm6
  addss  %xmm4,%xmm6
  mov    $0x0,%eax
L518:
  movaps %xmm5,%xmm0
  mulss  (%r8,%rax,1),%xmm0
  movaps %xmm4,%xmm1
  mulss  (%rdi,%rax,1),%xmm1
  addss  %xmm1,%xmm0
  divss  %xmm6,%xmm0
  movss  (%rdx,%rax,1),%xmm1
  subss  %xmm0,%xmm1
  movss  %xmm1,(%rdx,%rax,1)
  add    $0x4,%rax
  cmp    $0xc,%rax
  jne    L518
  jmp    L124
L540:
  mov    -0x44(%rbp),%r15d
L375:
  cmp    %r15d,-0x5c(%rbp)
  jg     L535
L5:
  lea    -0xc(%r13),%rax
  mov    -0x80(%rbp),%rdx
  sub    -0x88(%rbp),%rdx
  movss  D14(%rip),%xmm1
L552:
  movaps %xmm1,%xmm0
  mulss  (%rax,%rdx,4),%xmm0
  addss  (%rax),%xmm0
  movss  %xmm0,(%rax)
  add    $0x4,%rax
  cmp    %r13,%rax
  jne    L552
  cmp    %r9d,%r10d
  jge    L274
  mov    -0x90(%rbp),%rbx
  add    -0x50(%rbp),%rbx
  mov    -0x9c(%rbp),%edi
  movslq %edi,%rax
  lea    (%r12,%rax,4),%rdx
  mov    %edi,%eax
  add    -0xd0(%rbp),%eax
  movslq %eax,%rdi
  lea    (%r12,%rdi,4),%r8
  mov    -0x44(%rbp),%edi
  lea    (%rax,%rdi,8),%eax
  cltq
  lea    (%r12,%rax,4),%rdi
  mov    %r10d,%r15d
  jmp    L278
L535:
  mov    %r15d,%edi
  sub    -0x44(%rbp),%edi
  mov    -0x70(%rbp),%eax
  add    %eax,%edi
  shl    $0x2,%edi
  add    %r15d,%eax
  shl    $0x2,%eax
  cltq
  lea    0x0(,%rax,4),%r8
  lea    (%r12,%r8,1),%rdx
  add    -0xd8(%rbp),%r8
  movslq %edi,%rdi
  sub    %rax,%rdi
L297:
  movss  (%rdx),%xmm0
  subss  (%rdx,%rdi,4),%xmm0
  movss  %xmm0,(%rdx)
  add    $0x4,%rdx
  cmp    %r8,%rdx
  jne    L297
  jmp    L5
L50:
  add    %r10d,%r15d
  add    -0x50(%rbp),%rbx
  add    %rsi,%rdx
  add    %rsi,%r8
  add    %rsi,%rdi
  cmp    %r9d,%r15d
  jge    L522
L278:
  movss  (%rbx,%r14,4),%xmm6
  movss  (%rbx),%xmm5
  movaps %xmm6,%xmm1
  addss  %xmm5,%xmm1
  cvtss2sd %xmm1,%xmm1
  addsd  %xmm1,%xmm1
  mov    $0x0,%eax
L486:
  movaps %xmm6,%xmm0
  mulss  (%r8,%rax,1),%xmm0
  movaps %xmm5,%xmm4
  mulss  (%rdi,%rax,1),%xmm4
  addss  %xmm4,%xmm0
  cvtss2sd %xmm0,%xmm0
  divsd  %xmm1,%xmm0
  pxor   %xmm4,%xmm4
  cvtss2sd (%rdx,%rax,1),%xmm4
  addsd  %xmm4,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rdx,%rax,1)
  add    $0x4,%rax
  cmp    $0xc,%rax
  jne    L486
  jmp    L50
L274:
  mov    %r10d,%r15d
L522:
  cmp    %r15d,-0x5c(%rbp)
  jg     L533
L133:
  mov    -0x98(%rbp),%rsp
  addl   $0x1,-0x60(%rbp)
  mov    -0x60(%rbp),%eax
  mov    -0x5c(%rbp),%edx
  add    %edx,-0x70(%rbp)
  mov    -0xa8(%rbp),%rdx
  add    %rdx,-0x80(%rbp)
  add    %rdx,-0x88(%rbp)
  add    -0xb0(%rbp),%r13
  mov    -0xb8(%rbp),%edx
  add    %edx,-0x68(%rbp)
  add    %edx,-0x9c(%rbp)
  cmp    %eax,-0x64(%rbp)
  je     L405
L69:
  mov    %rsp,-0x98(%rbp)
  mov    -0xc0(%rbp),%rdx
  and    $0xfffffffffffff000,%rdx
  mov    %rsp,%rax
  sub    %rdx,%rax
L398:
  cmp    %rax,%rsp
  je     L149
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L398
L533:
  mov    %r15d,%edi
  sub    -0x44(%rbp),%edi
  mov    -0x70(%rbp),%eax
  add    %eax,%edi
  shl    $0x2,%edi
  add    %r15d,%eax
  shl    $0x2,%eax
  cltq
  lea    0x0(,%rax,4),%r8
  lea    (%r12,%r8,1),%rdx
  add    -0xd8(%rbp),%r8
  movslq %edi,%rdi
  sub    %rax,%rdi
  movss  D14(%rip),%xmm1
L437:
  movaps %xmm1,%xmm0
  mulss  (%rdx,%rdi,4),%xmm0
  addss  (%rdx),%xmm0
  movss  %xmm0,(%rdx)
  add    $0x4,%rdx
  cmp    %r8,%rdx
  jne    L437
  jmp    L133
L405:
  mov    %ecx,%ebx
  mov    -0xc8(%rbp),%r13
L177:
  mov    -0x5c(%rbp),%esi
  test   %esi,%esi
  jle    L353
  movslq -0x64(%rbp),%r8
  mov    %esi,%edx
  mov    -0x44(%rbp),%r14d
  imul   %r14d,%edx
  lea    0x0(,%rdx,4),%eax
  cltq
  mov    %rax,-0x80(%rbp)
  lea    0xc(%r12),%r9
  mov    %r9,-0xc0(%rbp)
  lea    0x0(,%rsi,4),%eax
  mov    %eax,%edi
  mov    -0xe4(%rbp),%r15d
  mov    %r15d,%ecx
  shl    %cl,%edi
  mov    %edi,-0x90(%rbp)
  movslq %r14d,%r11
  lea    0x0(,%r11,4),%rcx
  mov    %rcx,-0x58(%rbp)
  mov    -0x48(%rbp),%r10d
  movslq %r10d,%rdi
  lea    0x0(,%rdi,4),%rcx
  mov    %rcx,-0x50(%rbp)
  mov    %r15d,%ecx
  shl    %cl,%esi
  shl    $0x2,%esi
  movslq %esi,%rsi
  shl    $0x2,%rsi
  mov    %r14d,%ecx
  imul   %eax,%ecx
  mov    %ecx,-0x68(%rbp)
  lea    0x0(,%rdx,8),%ecx
  mov    %ecx,-0x9c(%rbp)
  neg    %r11
  shl    $0x2,%r11
  mov    %r10d,%edx
  sub    %r14d,%edx
  imul   %eax,%edx
  mov    %edx,-0xa8(%rbp)
  mov    %r14d,%edx
  add    %r10d,%edx
  imul   %eax,%edx
  mov    %edx,-0xb0(%rbp)
  movq   $0x0,-0x70(%rbp)
  movl   $0x0,-0x60(%rbp)
  lea    0xf(,%r8,4),%rax
  mov    %rax,%rdx
  and    $0xfffffffffffffff0,%rdx
  mov    %rdx,-0x98(%rbp)
  and    $0xff0,%eax
  mov    %rax,-0xc8(%rbp)
  sub    $0x8,%rax
  mov    %rax,-0xd0(%rbp)
  movss  D11(%rip),%xmm3
  movsd  D22(%rip),%xmm2
  sub    %r14d,%r10d
  mov    %r10d,%eax
  cltq
  sub    %rdi,%rax
  mov    %rax,%r14
  mov    %ebx,%ecx
  mov    %r13,-0xb8(%rbp)
  mov    -0x78(%rbp),%r10d
  mov    %r9,%r13
  jmp    L547
L525:
  mov    -0xc8(%rbp),%rax
  sub    %rax,%rsp
  test   %rax,%rax
  je     L194
  mov    -0xd0(%rbp),%rax
  orq    $0x0,(%rsp,%rax,1)
L194:
  mov    %rsp,%rdx
  mov    %rdx,-0x78(%rbp)
  mov    -0x64(%rbp),%r9d
  sub    -0x44(%rbp),%r9d
  test   %r9d,%r9d
  jle    L345
  mov    -0xb8(%rbp),%rax
  mov    (%rax),%r8
  mov    -0x60(%rbp),%edi
  sar    %cl,%edi
  mov    $0x0,%eax
  movsd  D49(%rip),%xmm4
L507:
  mov    %eax,%ebx
  sar    %cl,%ebx
  imul   %r10d,%ebx
  add    %edi,%ebx
  movslq %ebx,%rbx
  movss  (%r8,%rbx,4),%xmm0
  add    -0x44(%rbp),%eax
  mov    %eax,%ebx
  sar    %cl,%ebx
  imul   %r10d,%ebx
  add    %edi,%ebx
  movslq %ebx,%rbx
  subss  (%r8,%rbx,4),%xmm0
  andps  %xmm3,%xmm0
  cvtss2sd %xmm0,%xmm0
  addsd  %xmm2,%xmm0
  movapd %xmm4,%xmm1
  divsd  %xmm0,%xmm1
  cvtsd2ss %xmm1,%xmm1
  movss  %xmm1,(%rdx)
  add    -0x58(%rbp),%rdx
  cmp    %r9d,%eax
  jl     L507
L345:
  mov    -0x44(%rbp),%r15d
  cmp    %r9d,%r15d
  jge    L384
  mov    -0x78(%rbp),%rbx
  add    -0x58(%rbp),%rbx
  mov    -0x68(%rbp),%eax
  mov    -0x70(%rbp),%rdi
  add    %edi,%eax
  cltq
  lea    (%r12,%rax,4),%rdx
  movslq %edi,%rax
  lea    (%r12,%rax,4),%r8
  mov    -0x9c(%rbp),%eax
  add    %edi,%eax
  cltq
  lea    (%r12,%rax,4),%rdi
  jmp    L146
L185:
  add    -0x48(%rbp),%r15d
  add    -0x50(%rbp),%rbx
  add    %rsi,%rdx
  add    %rsi,%r8
  add    %rsi,%rdi
  cmp    %r9d,%r15d
  jge    L285
L146:
  movss  (%rbx,%r11,1),%xmm5
  movss  (%rbx),%xmm4
  movaps %xmm5,%xmm6
  addss  %xmm4,%xmm6
  mov    $0x0,%eax
L292:
  movaps %xmm5,%xmm0
  mulss  (%r8,%rax,1),%xmm0
  movaps %xmm4,%xmm1
  mulss  (%rdi,%rax,1),%xmm1
  addss  %xmm1,%xmm0
  divss  %xmm6,%xmm0
  movss  (%rdx,%rax,1),%xmm1
  subss  %xmm0,%xmm1
  movss  %xmm1,(%rdx,%rax,1)
  add    $0x4,%rax
  cmp    $0xc,%rax
  jne    L292
  jmp    L185
L384:
  mov    -0x44(%rbp),%r15d
L285:
  cmp    %r15d,-0x64(%rbp)
  jg     L209
L171:
  mov    -0x70(%rbp),%rbx
  mov    %ebx,%eax
  lea    -0xc(%r13),%rdx
  mov    -0x80(%rbp),%rdi
  sub    %rbx,%rdi
  movsd  D53(%rip),%xmm4
L312:
  pxor   %xmm0,%xmm0
  cvtss2sd (%rdx,%rdi,4),%xmm0
  mulsd  %xmm4,%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd (%rdx),%xmm1
  addsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rdx)
  add    $0x4,%rdx
  cmp    %r13,%rdx
  jne    L312
  mov    -0x48(%rbp),%r15d
  cmp    %r9d,%r15d
  jge    L36
  mov    -0x78(%rbp),%rbx
  add    -0x50(%rbp),%rbx
  movslq -0x90(%rbp),%rdx
  lea    (%r12,%rdx,4),%rdx
  mov    -0xa8(%rbp),%edi
  add    %eax,%edi
  movslq %edi,%rdi
  lea    (%r12,%rdi,4),%r8
  add    -0xb0(%rbp),%eax
  cltq
  lea    (%r12,%rax,4),%rdi
  jmp    L432
L209:
  mov    %r15d,%edi
  sub    -0x44(%rbp),%edi
  mov    -0x5c(%rbp),%eax
  imul   %eax,%edi
  mov    -0x60(%rbp),%edx
  add    %edx,%edi
  shl    $0x2,%edi
  imul   %eax,%r15d
  lea    (%r15,%rdx,1),%eax
  shl    $0x2,%eax
  cltq
  lea    0x0(,%rax,4),%r8
  lea    (%r12,%r8,1),%rdx
  add    -0xc0(%rbp),%r8
  movslq %edi,%rdi
  sub    %rax,%rdi
L408:
  movss  (%rdx),%xmm0
  subss  (%rdx,%rdi,4),%xmm0
  movss  %xmm0,(%rdx)
  add    $0x4,%rdx
  cmp    %r8,%rdx
  jne    L408
  jmp    L171
L382:
  add    -0x48(%rbp),%r15d
  add    -0x50(%rbp),%rbx
  add    %rsi,%rdx
  add    %rsi,%r8
  add    %rsi,%rdi
  cmp    %r9d,%r15d
  jge    L249
L432:
  movss  (%rbx,%r14,4),%xmm6
  movss  (%rbx),%xmm5
  movaps %xmm6,%xmm1
  addss  %xmm5,%xmm1
  cvtss2sd %xmm1,%xmm1
  addsd  %xmm1,%xmm1
  mov    $0x0,%eax
L42:
  movaps %xmm6,%xmm0
  mulss  (%r8,%rax,1),%xmm0
  movaps %xmm5,%xmm4
  mulss  (%rdi,%rax,1),%xmm4
  addss  %xmm4,%xmm0
  cvtss2sd %xmm0,%xmm0
  divsd  %xmm1,%xmm0
  pxor   %xmm4,%xmm4
  cvtss2sd (%rdx,%rax,1),%xmm4
  addsd  %xmm4,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rdx,%rax,1)
  add    $0x4,%rax
  cmp    $0xc,%rax
  jne    L42
  jmp    L382
L36:
  mov    -0x48(%rbp),%r15d
L249:
  cmp    %r15d,-0x64(%rbp)
  jg     L455
L487:
  mov    -0x88(%rbp),%rsp
  addl   $0x1,-0x60(%rbp)
  mov    -0x60(%rbp),%eax
  addq   $0x4,-0x80(%rbp)
  addq   $0x4,-0x70(%rbp)
  add    $0x10,%r13
  addl   $0x4,-0x90(%rbp)
  cmp    %eax,-0x5c(%rbp)
  je     L353
L547:
  mov    %rsp,-0x88(%rbp)
  mov    -0x98(%rbp),%rdx
  and    $0xfffffffffffff000,%rdx
  mov    %rsp,%rax
  sub    %rdx,%rax
L448:
  cmp    %rax,%rsp
  je     L525
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L448
L455:
  mov    %r15d,%edi
  sub    -0x44(%rbp),%edi
  mov    -0x5c(%rbp),%eax
  imul   %eax,%edi
  mov    -0x60(%rbp),%edx
  add    %edx,%edi
  shl    $0x2,%edi
  imul   %eax,%r15d
  lea    (%r15,%rdx,1),%eax
  shl    $0x2,%eax
  cltq
  lea    0x0(,%rax,4),%r8
  lea    (%r12,%r8,1),%rdx
  add    -0xc0(%rbp),%r8
  movslq %edi,%rdi
  sub    %rax,%rdi
  movss  D14(%rip),%xmm1
L202:
  movaps %xmm1,%xmm0
  mulss  (%rdx,%rdi,4),%xmm0
  addss  (%rdx),%xmm0
  movss  %xmm0,(%rdx)
  add    $0x4,%rdx
  cmp    %rdx,%r8
  jne    L202
  jmp    L487
L353:
  mov    -0x38(%rbp),%rax
  sub    %fs:0x28,%rax
  jne    L272
  lea    -0x28(%rbp),%rsp
  pop    %rbx
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  pop    %rbp
  ret
L272:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: unpack_data
arguments: data_label: D11
type_guessed: dword
name: unpack_data
arguments: data_label: D22
type_guessed: byte[8]
name: unpack_data
arguments: data_label: D49
type_guessed: f64
name: unpack_data
arguments: data_label: D14
type_guessed: f32
name: unpack_data
arguments: data_label: D53
type_guessed: byte[8]

tool: D11: 2147483647

tool: {"D22": [0xf1,0x68,0xe3,0x88,0xb5,0xf8,0xe4,0x3e]}

tool: D49: 1

tool: D14: 0.5

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

assistant: ```c
void dt_iop_equalizer_wtf(float *buf, float **weight_a, const int l, const int width, const int height) {
  const int wd = (int)(1 + (width >> (l - 1))), ht = (int)(1 + (height >> (l - 1)));
  int ch = 0;
  memset(weight_a[l], 0, sizeof(float) * wd * ht);
  for (int j = 0; j < ht - 1; j++)
    for (int i = 0; i < wd - 1; i++)
      weight_a[l][j * wd + i] = ((buf)[4 * (width * ((j << (l - 1))) + ((i << (l - 1)))) + ch]);
  const int step = 1 << l;
  const int st = step / 2;
  for (int j = 0; j < height; j++) {
    float tmp[width];
    for (int i = 0; i < width - st; i += st)
      tmp[i] = 1.0 / (fabsf(weight_a[l][wd * ((j) >> (l - 1)) + ((i) >> (l - 1))] - weight_a[l][wd * ((j) >> (l - 1)) + ((i + st) >> (l - 1))]) + 1.e-5);
    int i = st;
    for (; i < width - st; i += step)
      for (ch = 0; ch < 3; ch++)
        ((buf)[4 * (width * ((j)) + ((i))) + ch]) -= (tmp[i - st] * ((buf)[4 * (width * ((j)) + ((i - st))) + ch]) + tmp[i] * ((buf)[4 * (width * ((j)) + ((i + st))) + ch])) / (tmp[i - st] + tmp[i]);
    if (i < width)
      for (ch = 0; ch < 3; ch++)
        ((buf)[4 * (width * ((j)) + ((i))) + ch]) -= ((buf)[4 * (width * ((j)) + ((i - st))) + ch]);
    for (ch = 0; ch < 3; ch++)
      ((buf)[4 * (width * ((j)) + ((0))) + ch]) += ((buf)[4 * (width * ((j)) + ((st))) + ch]) * 0.5f;
    for (i = step; i < width - st; i += step)
      for (ch = 0; ch < 3; ch++)
        ((buf)[4 * (width * ((j)) + ((i))) + ch]) += (tmp[i - st] * ((buf)[4 * (width * ((j)) + ((i - st))) + ch]) + tmp[i] * ((buf)[4 * (width * ((j)) + ((i + st))) + ch])) / (2.0 * (tmp[i - st] + tmp[i]));
    if (i < width)
      for (ch = 0; ch < 3; ch++)
        ((buf)[4 * (width * ((j)) + ((i))) + ch]) += ((buf)[4 * (width * ((j)) + ((i - st))) + ch]) * .5f;
  }
  for (int i = 0; i < width; i++) {
    float tmp[height];
    for (int j = 0; j < height - st; j += st)
      tmp[j] = 1.0 / (fabsf(weight_a[l][wd * ((j) >> (l - 1)) + ((i) >> (l - 1))] - weight_a[l][wd * ((j + st) >> (l - 1)) + ((i) >> (l - 1))]) + 1.e-5);
    int j = st;
    for (; j < height - st; j += step)
      for (ch = 0; ch < 3; ch++)
        ((buf)[4 * (width * ((j)) + ((i))) + ch]) -= (tmp[j - st] * ((buf)[4 * (width * ((j - st)) + ((i))) + ch]) + tmp[j] * ((buf)[4 * (width * ((j + st)) + ((i))) + ch])) / (tmp[j - st] + tmp[j]);
    if (j < height)
      for (int ch = 0; ch < 3; ch++)
        ((buf)[4 * (width * ((j)) + ((i))) + ch]) -= ((buf)[4 * (width * ((j - st)) + ((i))) + ch]);
    for (ch = 0; ch < 3; ch++)
      ((buf)[4 * (width * ((0)) + ((i))) + ch]) += ((buf)[4 * (width * ((st)) + ((i))) + ch]) * 0.5;
    for (j = step; j < height - st; j += step)
      for (ch = 0; ch < 3; ch++)
        ((buf)[4 * (width * ((j)) + ((i))) + ch]) += (tmp[j - st] * ((buf)[4 * (width * ((j - st)) + ((i))) + ch]) + tmp[j] * ((buf)[4 * (width * ((j + st)) + ((i))) + ch])) / (2.0 * (tmp[j - st] + tmp[j]));
    if (j < height)
      for (int ch = 0; ch < 3; ch++)
        ((buf)[4 * (width * ((j)) + ((i))) + ch]) += ((buf)[4 * (width * ((j - st)) + ((i))) + ch]) * .5f;
  }
}
```