user: Please show me the C implementation that matches the assembly code listed below:

```asm
<dt_masks_blur_fast>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x178,%rsp
  mov    %rdi,0xd0(%rsp)
  mov    %rsi,0xd8(%rsp)
  mov    %edx,0xc8(%rsp)
  mov    %ecx,%r13d
  movss  %xmm1,0x28(%rsp)
  movss  %xmm2,0x2c(%rsp)
  mov    %fs:0x28,%rax
  mov    %rax,0x168(%rsp)
  xor    %eax,%eax
  pxor   %xmm1,%xmm1
  comiss %xmm0,%xmm1
  jae    L240
  mov    0xc8(%rsp),%eax
  lea    (%rax,%rax,1),%ebx
  movss  D11(%rip),%xmm1
  comiss %xmm0,%xmm1
  jae    L140
  mov    0xc8(%rsp),%eax
  lea    (%rax,%rax,2),%ebp
  lea    0x0(,%rax,4),%r12d
  movss  D9(%rip),%xmm1
  comiss %xmm0,%xmm1
  jae    L239
  cvtss2sd %xmm0,%xmm0
  lea    0x110(%rsp),%rdi
  mov    $0x1,%eax
  call   <_masks_blur_13x13_coeff@plt>
  cmp    $0xc,%r13d
  jle    L57
  mov    0xc8(%rsp),%eax
  lea    (%rax,%rax,2),%edx
  add    %edx,%edx
  movss  0x110(%rsp),%xmm7
  movss  %xmm7,0x38(%rsp)
  movss  0x114(%rsp),%xmm7
  movss  %xmm7,0x3c(%rsp)
  movss  0x118(%rsp),%xmm7
  movss  %xmm7,0x40(%rsp)
  movss  0x11c(%rsp),%xmm7
  movss  %xmm7,0x58(%rsp)
  movss  0x120(%rsp),%xmm7
  movss  %xmm7,0x48(%rsp)
  movss  0x124(%rsp),%xmm7
  movss  %xmm7,0x50(%rsp)
  movss  0x128(%rsp),%xmm7
  movss  %xmm7,0x5c(%rsp)
  movss  0x12c(%rsp),%xmm7
  movss  %xmm7,0x60(%rsp)
  movss  0x130(%rsp),%xmm7
  movss  %xmm7,0x64(%rsp)
  movss  0x134(%rsp),%xmm7
  movss  %xmm7,0x78(%rsp)
  movss  0x138(%rsp),%xmm7
  movss  %xmm7,0x68(%rsp)
  movss  0x13c(%rsp),%xmm7
  movss  %xmm7,0x70(%rsp)
  movss  0x140(%rsp),%xmm7
  movss  %xmm7,0x7c(%rsp)
  movss  0x144(%rsp),%xmm3
  movss  %xmm3,0x88(%rsp)
  movss  0x148(%rsp),%xmm4
  movss  %xmm4,0x80(%rsp)
  movss  0x14c(%rsp),%xmm5
  movss  %xmm5,0x8c(%rsp)
  movss  0x150(%rsp),%xmm6
  movss  %xmm6,0x90(%rsp)
  movss  0x154(%rsp),%xmm7
  movss  %xmm7,0x98(%rsp)
  movss  0x158(%rsp),%xmm3
  movss  %xmm3,0xa0(%rsp)
  lea    0x6(%rdx),%ecx
  mov    %ecx,0xe8(%rsp)
  movslq %eax,%rcx
  mov    %rcx,0xf0(%rsp)
  shl    $0x2,%rcx
  mov    %rcx,0xe0(%rsp)
  mov    %eax,%ecx
  lea    -0xd(%rax),%eax
  movslq %edx,%rdx
  mov    %rdx,0xb0(%rsp)
  add    %rdx,%rax
  mov    0xd0(%rsp),%rdi
  lea    0x1c(%rdi,%rax,4),%rax
  mov    %rax,0x30(%rsp)
  lea    -0x6(%r13),%eax
  mov    %eax,0xec(%rsp)
  mov    %rdx,%rax
  neg    %rax
  shl    $0x2,%rax
  mov    %rax,0xb8(%rsp)
  lea    (%rcx,%rcx,4),%eax
  cltq
  mov    %rax,0xa8(%rsp)
  neg    %rax
  shl    $0x2,%rax
  mov    %rax,0xc0(%rsp)
  movl   $0x6,0xcc(%rsp)
  movslq %ebp,%rax
  mov    %rax,0xf8(%rsp)
  movslq %ebx,%rax
  mov    %rax,0x100(%rsp)
  movslq %r12d,%rax
  mov    %rax,0x108(%rsp)
L244:
  cmpl   $0xc,0xc8(%rsp)
  jle    L229
  movslq 0xe8(%rsp),%rax
  lea    0x0(,%rax,4),%rdx
  mov    0xd0(%rsp),%rsi
  lea    (%rsi,%rdx,1),%rbx
  mov    %rax,%rcx
  mov    0xf8(%rsp),%rdi
  sub    %rdi,%rcx
  lea    (%rsi,%rcx,4),%r14
  lea    (%rax,%rdi,1),%rcx
  lea    (%rsi,%rcx,4),%rcx
  mov    %rcx,0x8(%rsp)
  mov    %rax,%rcx
  mov    0x100(%rsp),%rdi
  sub    %rdi,%rcx
  lea    (%rsi,%rcx,4),%r13
  lea    (%rax,%rdi,1),%rcx
  lea    (%rsi,%rcx,4),%r15
  mov    %rax,%rcx
  mov    0xf0(%rsp),%rdi
  sub    %rdi,%rcx
  lea    (%rsi,%rcx,4),%r12
  lea    (%rax,%rdi,1),%rcx
  lea    (%rsi,%rcx,4),%rbp
  mov    %rax,%rcx
  mov    0x108(%rsp),%rdi
  sub    %rdi,%rcx
  lea    (%rsi,%rcx,4),%rcx
  mov    %rcx,0x10(%rsp)
  add    %rdi,%rax
  lea    (%rsi,%rax,4),%rax
  mov    %rax,0x18(%rsp)
  add    0xd8(%rsp),%rdx
  mov    %rdx,0x20(%rsp)
L117:
  mov    0xc0(%rsp),%rdx
  movss  -0xc(%rbx,%rdx,1),%xmm1
  addss  0xc(%rbx,%rdx,1),%xmm1
  movss  -0x14(%r14),%xmm0
  addss  0x14(%r14),%xmm0
  addss  %xmm0,%xmm1
  mov    0x8(%rsp),%rax
  movss  -0x14(%rax),%xmm0
  addss  0x14(%rax),%xmm0
  addss  %xmm0,%xmm1
  mov    0xa8(%rsp),%rcx
  movss  -0xc(%rbx,%rcx,4),%xmm0
  addss  0xc(%rbx,%rcx,4),%xmm0
  addss  %xmm0,%xmm1
  mulss  0x3c(%rsp),%xmm1
  mov    0xb8(%rsp),%rsi
  movss  (%rbx,%rsi,1),%xmm0
  addss  -0x18(%rbx),%xmm0
  addss  0x18(%rbx),%xmm0
  mov    0xb0(%rsp),%rdi
  addss  (%rbx,%rdi,4),%xmm0
  mulss  0x38(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x8(%rbx,%rdx,1),%xmm0
  addss  0x8(%rbx,%rdx,1),%xmm0
  movss  -0x14(%r13),%xmm2
  addss  0x14(%r13),%xmm2
  addss  %xmm2,%xmm0
  movss  -0x14(%r15),%xmm2
  addss  0x14(%r15),%xmm2
  addss  %xmm2,%xmm0
  movss  -0x8(%rbx,%rcx,4),%xmm2
  addss  0x8(%rbx,%rcx,4),%xmm2
  addss  %xmm2,%xmm0
  mulss  0x40(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x4(%rbx,%rdx,1),%xmm0
  addss  0x4(%rbx,%rdx,1),%xmm0
  movss  -0x14(%r12),%xmm2
  addss  0x14(%r12),%xmm2
  addss  %xmm2,%xmm0
  movss  -0x14(%rbp),%xmm2
  addss  0x14(%rbp),%xmm2
  addss  %xmm2,%xmm0
  movss  -0x4(%rbx,%rcx,4),%xmm2
  addss  0x4(%rbx,%rcx,4),%xmm2
  addss  %xmm2,%xmm0
  mulss  0x58(%rsp),%xmm0
  addss  %xmm0,%xmm1
  mov    0x10(%rsp),%rsi
  movss  -0xc(%rsi),%xmm0
  addss  0xc(%rsi),%xmm0
  movss  -0x10(%r14),%xmm2
  addss  0x10(%r14),%xmm2
  addss  %xmm2,%xmm0
  movss  -0x10(%rax),%xmm2
  addss  0x10(%rax),%xmm2
  addss  %xmm2,%xmm0
  mov    0x18(%rsp),%rdi
  movss  -0xc(%rdi),%xmm2
  addss  0xc(%rdi),%xmm2
  addss  %xmm2,%xmm0
  movss  (%rbx,%rdx,1),%xmm2
  addss  -0x14(%rbx),%xmm2
  addss  0x14(%rbx),%xmm2
  addss  (%rbx,%rcx,4),%xmm2
  addss  %xmm2,%xmm0
  mulss  0x48(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x10(%rsi),%xmm0
  addss  0x10(%rsi),%xmm0
  addss  -0x10(%rdi),%xmm0
  addss  0x10(%rdi),%xmm0
  mulss  0x50(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x8(%rsi),%xmm0
  addss  0x8(%rsi),%xmm0
  movss  -0x10(%r13),%xmm2
  addss  0x10(%r13),%xmm2
  addss  %xmm2,%xmm0
  movss  -0x10(%r15),%xmm2
  addss  0x10(%r15),%xmm2
  addss  %xmm2,%xmm0
  movss  -0x8(%rdi),%xmm2
  addss  0x8(%rdi),%xmm2
  addss  %xmm2,%xmm0
  mulss  0x5c(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x4(%rsi),%xmm0
  addss  0x4(%rsi),%xmm0
  movss  -0x10(%r12),%xmm2
  addss  0x10(%r12),%xmm2
  addss  %xmm2,%xmm0
  movss  -0x10(%rbp),%xmm2
  addss  0x10(%rbp),%xmm2
  addss  %xmm2,%xmm0
  movss  -0x4(%rdi),%xmm2
  addss  0x4(%rdi),%xmm2
  addss  %xmm2,%xmm0
  mulss  0x60(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  (%rsi),%xmm0
  addss  -0x10(%rbx),%xmm0
  addss  0x10(%rbx),%xmm0
  addss  (%rdi),%xmm0
  mulss  0x64(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0xc(%r14),%xmm0
  addss  0xc(%r14),%xmm0
  addss  -0xc(%rax),%xmm0
  addss  0xc(%rax),%xmm0
  mulss  0x78(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x8(%r14),%xmm0
  addss  0x8(%r14),%xmm0
  movss  -0xc(%r13),%xmm2
  addss  0xc(%r13),%xmm2
  addss  %xmm2,%xmm0
  movss  -0xc(%r15),%xmm2
  addss  0xc(%r15),%xmm2
  addss  %xmm2,%xmm0
  movss  -0x8(%rax),%xmm2
  addss  0x8(%rax),%xmm2
  addss  %xmm2,%xmm0
  mulss  0x68(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x4(%r14),%xmm0
  addss  0x4(%r14),%xmm0
  movss  -0xc(%r12),%xmm2
  addss  0xc(%r12),%xmm2
  addss  %xmm2,%xmm0
  movss  -0xc(%rbp),%xmm2
  addss  0xc(%rbp),%xmm2
  addss  %xmm2,%xmm0
  movss  -0x4(%rax),%xmm2
  addss  0x4(%rax),%xmm2
  addss  %xmm2,%xmm0
  mulss  0x70(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  (%r14),%xmm0
  addss  -0xc(%rbx),%xmm0
  addss  0xc(%rbx),%xmm0
  addss  (%rax),%xmm0
  mulss  0x7c(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x8(%r13),%xmm0
  addss  0x8(%r13),%xmm0
  addss  -0x8(%r15),%xmm0
  addss  0x8(%r15),%xmm0
  mulss  0x88(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x4(%r13),%xmm0
  addss  0x4(%r13),%xmm0
  movss  -0x8(%r12),%xmm2
  addss  0x8(%r12),%xmm2
  addss  %xmm2,%xmm0
  movss  -0x8(%rbp),%xmm2
  addss  0x8(%rbp),%xmm2
  addss  %xmm2,%xmm0
  movss  -0x4(%r15),%xmm2
  addss  0x4(%r15),%xmm2
  addss  %xmm2,%xmm0
  mulss  0x80(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  0x0(%r13),%xmm0
  addss  -0x8(%rbx),%xmm0
  addss  0x8(%rbx),%xmm0
  addss  (%r15),%xmm0
  mulss  0x8c(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x4(%r12),%xmm0
  addss  0x4(%r12),%xmm0
  addss  -0x4(%rbp),%xmm0
  addss  0x4(%rbp),%xmm0
  mulss  0x90(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  (%r12),%xmm0
  addss  -0x4(%rbx),%xmm0
  addss  0x4(%rbx),%xmm0
  addss  0x0(%rbp),%xmm0
  mulss  0x98(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  0xa0(%rsp),%xmm0
  mulss  (%rbx),%xmm0
  addss  %xmm0,%xmm1
  mulss  0x28(%rsp),%xmm1
  movss  0x2c(%rsp),%xmm0
  call   <fminf@plt>
  movaps %xmm0,%xmm1
  pxor   %xmm0,%xmm0
  call   <fmaxf@plt>
  mov    0x20(%rsp),%rdx
  movss  %xmm0,(%rdx)
  add    $0x4,%rbx
  add    $0x4,%r14
  addq   $0x4,0x8(%rsp)
  add    $0x4,%r13
  add    $0x4,%r15
  add    $0x4,%r12
  add    $0x4,%rbp
  addq   $0x4,0x10(%rsp)
  addq   $0x4,0x18(%rsp)
  add    $0x4,%rdx
  mov    %rdx,0x20(%rsp)
  cmp    0x30(%rsp),%rbx
  jne    L117
L229:
  addl   $0x1,0xcc(%rsp)
  mov    0xcc(%rsp),%eax
  mov    0xc8(%rsp),%ebx
  add    %ebx,0xe8(%rsp)
  mov    0xe0(%rsp),%rdx
  add    %rdx,0x30(%rsp)
  cmp    0xec(%rsp),%eax
  jne    L244
  mov    $0x6,%eax
L15:
  mov    0x168(%rsp),%rdx
  sub    %fs:0x28,%rdx
  jne    L40
  add    $0x178,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L240:
  imul   %edx,%r13d
  test   %r13d,%r13d
  jle    L191
  mov    %r13d,%r13d
  mov    $0x0,%ebx
  mov    %rdi,%rbp
  mov    %rsi,%r12
L129:
  movss  0x28(%rsp),%xmm1
  mulss  0x0(%rbp,%rbx,4),%xmm1
  movss  0x2c(%rsp),%xmm0
  call   <fminf@plt>
  movaps %xmm0,%xmm1
  pxor   %xmm0,%xmm0
  call   <fmaxf@plt>
  movss  %xmm0,(%r12,%rbx,4)
  add    $0x1,%rbx
  cmp    %rbx,%r13
  jne    L129
  mov    $0x0,%eax
  jmp    L15
L140:
  cvtss2sd %xmm0,%xmm0
  lea    0x110(%rsp),%rdi
  mov    $0x1,%eax
  call   <_masks_blur_5x5_coeff@plt>
  cmp    $0x4,%r13d
  jle    L216
  movss  0x110(%rsp),%xmm6
  movss  %xmm6,0x8(%rsp)
  movss  0x114(%rsp),%xmm7
  movss  %xmm7,0x10(%rsp)
  movss  0x118(%rsp),%xmm6
  movss  %xmm6,0x18(%rsp)
  movss  0x11c(%rsp),%xmm3
  movss  %xmm3,0x20(%rsp)
  movss  0x120(%rsp),%xmm4
  movss  %xmm4,0x30(%rsp)
  lea    0x2(%rbx),%eax
  mov    %eax,0x3c(%rsp)
  mov    0xc8(%rsp),%eax
  movslq %eax,%rcx
  mov    %rcx,0x48(%rsp)
  lea    0x0(,%rcx,4),%rdx
  mov    %rdx,0x40(%rsp)
  lea    -0x5(%rax),%eax
  movslq %ebx,%rdx
  add    %rdx,%rax
  mov    0xd0(%rsp),%rdx
  lea    0xc(%rdx,%rax,4),%r14
  lea    -0x2(%r13),%eax
  mov    %eax,0x58(%rsp)
  movl   $0x2,0x38(%rsp)
  movslq %ebx,%rax
  mov    %rax,0x50(%rsp)
  mov    %rax,%r13
  add    %rcx,%r13
L34:
  cmpl   $0x4,0xc8(%rsp)
  jle    L64
  movslq 0x3c(%rsp),%r15
  mov    %r15,%rax
  sub    0x50(%rsp),%rax
  mov    0xd0(%rsp),%rdx
  lea    (%rdx,%rax,4),%rbp
  mov    %r15,%rax
  sub    0x48(%rsp),%rax
  lea    (%rdx,%rax,4),%rbx
  shl    $0x2,%r15
  lea    (%rdx,%r15,1),%r12
  add    0xd8(%rsp),%r15
L41:
  movss  -0x4(%rbp),%xmm1
  addss  0x4(%rbp),%xmm1
  movss  -0x8(%rbx),%xmm0
  addss  0x8(%rbx),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x8(%rbp,%r13,4),%xmm0
  addss  0x8(%rbp,%r13,4),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x4(%rbx,%r13,4),%xmm0
  addss  0x4(%rbx,%r13,4),%xmm0
  addss  %xmm0,%xmm1
  mulss  0x8(%rsp),%xmm1
  movss  0x0(%rbp),%xmm0
  addss  -0x8(%r12),%xmm0
  addss  0x8(%r12),%xmm0
  addss  (%rbx,%r13,4),%xmm0
  mulss  0x10(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x4(%rbx),%xmm0
  addss  0x4(%rbx),%xmm0
  addss  -0x4(%rbp,%r13,4),%xmm0
  addss  0x4(%rbp,%r13,4),%xmm0
  mulss  0x18(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  (%rbx),%xmm0
  addss  -0x4(%r12),%xmm0
  addss  0x4(%r12),%xmm0
  addss  0x0(%rbp,%r13,4),%xmm0
  mulss  0x20(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  0x30(%rsp),%xmm0
  mulss  (%r12),%xmm0
  addss  %xmm0,%xmm1
  mulss  0x28(%rsp),%xmm1
  movss  0x2c(%rsp),%xmm0
  call   <fminf@plt>
  movaps %xmm0,%xmm1
  pxor   %xmm0,%xmm0
  call   <fmaxf@plt>
  movss  %xmm0,(%r15)
  add    $0x4,%rbp
  add    $0x4,%rbx
  add    $0x4,%r12
  add    $0x4,%r15
  cmp    %r14,%r12
  jne    L41
L64:
  addl   $0x1,0x38(%rsp)
  mov    0x38(%rsp),%eax
  mov    0xc8(%rsp),%edx
  add    %edx,0x3c(%rsp)
  add    0x40(%rsp),%r14
  cmp    0x58(%rsp),%eax
  jne    L34
  mov    $0x2,%eax
  jmp    L15
L239:
  cvtss2sd %xmm0,%xmm0
  lea    0x110(%rsp),%rdi
  mov    $0x1,%eax
  call   <dt_masks_blur_9x9_coeff@plt>
  cmp    $0x8,%r13d
  jle    L164
  movss  0x140(%rsp),%xmm4
  movss  %xmm4,0x18(%rsp)
  movss  0x13c(%rsp),%xmm5
  movss  %xmm5,0x20(%rsp)
  movss  0x138(%rsp),%xmm6
  movss  %xmm6,0x30(%rsp)
  movss  0x134(%rsp),%xmm4
  movss  %xmm4,0x38(%rsp)
  movss  0x130(%rsp),%xmm5
  movss  %xmm5,0x3c(%rsp)
  movss  0x12c(%rsp),%xmm6
  movss  %xmm6,0x40(%rsp)
  movss  0x128(%rsp),%xmm7
  movss  %xmm7,0x58(%rsp)
  movss  0x124(%rsp),%xmm4
  movss  %xmm4,0x48(%rsp)
  movss  0x120(%rsp),%xmm5
  movss  %xmm5,0x50(%rsp)
  movss  0x11c(%rsp),%xmm6
  movss  %xmm6,0x5c(%rsp)
  movss  0x118(%rsp),%xmm7
  movss  %xmm7,0x60(%rsp)
  movss  0x114(%rsp),%xmm4
  movss  %xmm4,0x64(%rsp)
  movss  0x110(%rsp),%xmm5
  movss  %xmm5,0x78(%rsp)
  mov    0xc8(%rsp),%edx
  lea    0x4(,%rdx,4),%eax
  mov    %eax,0x88(%rsp)
  movslq %edx,%rcx
  mov    %rcx,0x90(%rsp)
  lea    0x0(,%rcx,4),%rdi
  mov    %rdi,0x80(%rsp)
  sub    $0x4,%eax
  cltq
  lea    -0x9(%rdx),%edx
  add    %rdx,%rax
  mov    0xd0(%rsp),%rdx
  lea    0x14(%rdx,%rax,4),%rax
  mov    %rax,0x10(%rsp)
  lea    -0x4(%r13),%eax
  mov    %eax,0x8c(%rsp)
  movslq %r12d,%r12
  mov    %r12,%rax
  neg    %rax
  shl    $0x2,%rax
  mov    %rax,0x68(%rsp)
  movl   $0x4,0x7c(%rsp)
  movslq %ebx,%rax
  mov    %rax,0x98(%rsp)
  movslq %ebp,%rbx
  mov    %rbx,0xa0(%rsp)
  mov    %rax,%r15
  add    %rcx,%r15
  add    %rax,%r12
  mov    %r12,0x70(%rsp)
L185:
  cmpl   $0x8,0xc8(%rsp)
  jle    L4
  movslq 0x88(%rsp),%rax
  mov    %rax,%rdx
  sub    0x98(%rsp),%rdx
  mov    0xd0(%rsp),%rdi
  lea    (%rdi,%rdx,4),%rbx
  mov    %rax,%rdx
  sub    0x90(%rsp),%rdx
  lea    (%rdi,%rdx,4),%rbp
  lea    0x0(,%rax,4),%rdx
  lea    (%rdi,%rdx,1),%r12
  mov    %rax,%rcx
  mov    0xa0(%rsp),%rsi
  sub    %rsi,%rcx
  lea    (%rdi,%rcx,4),%r14
  add    %rsi,%rax
  lea    (%rdi,%rax,4),%r13
  add    0xd8(%rsp),%rdx
  mov    %rdx,0x8(%rsp)
L200:
  mov    0x68(%rsp),%rax
  movss  -0x8(%r12,%rax,1),%xmm0
  movaps %xmm0,%xmm1
  addss  0x8(%r12,%rax,1),%xmm1
  addss  -0x10(%rbx),%xmm1
  addss  0x10(%rbx),%xmm1
  addss  -0x10(%rbp,%r15,4),%xmm1
  addss  0x10(%rbp,%r15,4),%xmm1
  mov    0x70(%rsp),%rcx
  addss  -0x8(%rbx,%rcx,4),%xmm1
  addss  0x8(%rbx,%rcx,4),%xmm1
  mulss  0x18(%rsp),%xmm1
  movss  -0x4(%r12,%rax,1),%xmm0
  addss  0x4(%r12,%rax,1),%xmm0
  addss  -0x10(%rbp),%xmm0
  addss  0x10(%rbp),%xmm0
  addss  -0x10(%rbx,%r15,4),%xmm0
  addss  0x10(%rbx,%r15,4),%xmm0
  addss  -0x4(%rbx,%rcx,4),%xmm0
  addss  0x4(%rbx,%rcx,4),%xmm0
  mulss  0x20(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  (%r12,%rax,1),%xmm0
  addss  -0x10(%r12),%xmm0
  addss  0x10(%r12),%xmm0
  addss  (%rbx,%rcx,4),%xmm0
  mulss  0x30(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0xc(%r14),%xmm0
  addss  0xc(%r14),%xmm0
  addss  -0xc(%r13),%xmm0
  addss  0xc(%r13),%xmm0
  mulss  0x38(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x8(%r14),%xmm0
  addss  0x8(%r14),%xmm0
  addss  -0xc(%rbx),%xmm0
  addss  0xc(%rbx),%xmm0
  addss  -0xc(%rbp,%r15,4),%xmm0
  addss  0xc(%rbp,%r15,4),%xmm0
  addss  -0x8(%r13),%xmm0
  addss  0x8(%r13),%xmm0
  mulss  0x3c(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x4(%r14),%xmm0
  addss  0x4(%r14),%xmm0
  addss  -0xc(%rbp),%xmm0
  addss  0xc(%rbp),%xmm0
  addss  -0xc(%rbx,%r15,4),%xmm0
  addss  0xc(%rbx,%r15,4),%xmm0
  addss  -0x4(%r13),%xmm0
  addss  0x4(%r13),%xmm0
  mulss  0x40(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  (%r14),%xmm0
  addss  -0xc(%r12),%xmm0
  addss  0xc(%r12),%xmm0
  addss  0x0(%r13),%xmm0
  mulss  0x58(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x8(%rbx),%xmm0
  addss  0x8(%rbx),%xmm0
  addss  -0x8(%rbp,%r15,4),%xmm0
  addss  0x8(%rbp,%r15,4),%xmm0
  mulss  0x48(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x4(%rbx),%xmm0
  addss  0x4(%rbx),%xmm0
  addss  -0x8(%rbp),%xmm0
  addss  0x8(%rbp),%xmm0
  addss  -0x8(%rbx,%r15,4),%xmm0
  addss  0x8(%rbx,%r15,4),%xmm0
  addss  -0x4(%rbp,%r15,4),%xmm0
  addss  0x4(%rbp,%r15,4),%xmm0
  mulss  0x50(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  (%rbx),%xmm0
  addss  -0x8(%r12),%xmm0
  addss  0x8(%r12),%xmm0
  addss  0x0(%rbp,%r15,4),%xmm0
  mulss  0x5c(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x4(%rbp),%xmm0
  addss  0x4(%rbp),%xmm0
  addss  -0x4(%rbx,%r15,4),%xmm0
  addss  0x4(%rbx,%r15,4),%xmm0
  mulss  0x60(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  0x0(%rbp),%xmm0
  addss  -0x4(%r12),%xmm0
  addss  0x4(%r12),%xmm0
  addss  (%rbx,%r15,4),%xmm0
  mulss  0x64(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  0x78(%rsp),%xmm0
  mulss  (%r12),%xmm0
  addss  %xmm0,%xmm1
  mulss  0x28(%rsp),%xmm1
  movss  0x2c(%rsp),%xmm0
  call   <fminf@plt>
  movaps %xmm0,%xmm1
  pxor   %xmm0,%xmm0
  call   <fmaxf@plt>
  mov    0x8(%rsp),%rax
  movss  %xmm0,(%rax)
  add    $0x4,%rbx
  add    $0x4,%rbp
  add    $0x4,%r12
  add    $0x4,%r14
  add    $0x4,%r13
  add    $0x4,%rax
  mov    %rax,0x8(%rsp)
  cmp    0x10(%rsp),%r12
  jne    L200
L4:
  addl   $0x1,0x7c(%rsp)
  mov    0x7c(%rsp),%eax
  mov    0xc8(%rsp),%edx
  add    %edx,0x88(%rsp)
  mov    0x80(%rsp),%rdx
  add    %rdx,0x10(%rsp)
  cmp    0x8c(%rsp),%eax
  jne    L185
  mov    $0x4,%eax
  jmp    L15
L191:
  mov    $0x0,%eax
  jmp    L15
L216:
  mov    $0x2,%eax
  jmp    L15
L164:
  mov    $0x4,%eax
  jmp    L15
L57:
  mov    $0x6,%eax
  jmp    L15
L40:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: retrieve_data
arguments: data_label: D11
type_infered: byte[4]
name: retrieve_data
arguments: data_label: D9
type_infered: byte[4]

tool: {"D11": [0xcd,0xcc,0x4c,0x3f]}

tool: {"D9": [0x00,0x00,0xc0,0x3f]}

assistant: ```c
int dt_masks_blur_fast(float *const restrict src, float *const restrict out, const int width, const int height, const float sigma, const float gain, const float clip) {
  float blurmat[19];
  const int w1 = width;
  const int w2 = 2 * width;
  const int w3 = 3 * width;
  const int w4 = 4 * width;
  const int w5 = 5 * width;
  const int w6 = 6 * width;
  if (sigma <= 0.0f) {
    for (int i = 0; i < width * height; i++)
      out[i] = fmaxf(0.0f, fminf(clip, gain * src[i]));
    return 0;
  } else if (sigma <= 0.8f) {
    _masks_blur_5x5_coeff(blurmat, sigma);
    for (int row = 2; row < height - 2; row++) {
      for (int col = 2, i = row * width + col; col < width - 2; col++, i++)
        out[i] = fmaxf(0.0f, fminf(clip, gain * (blurmat[0] * ((src[i - w2 - 1] + src[i - w2 + 1]) + (src[i - w1 - 2] + src[i - w1 + 2]) + (src[i + w1 - 2] + src[i + w1 + 2]) + (src[i + w2 - 1] + src[i + w2 + 1])) + blurmat[1] * (src[i - w2] + src[i - 2] + src[i + 2] + src[i + w2]) + blurmat[2] * (src[i - w1 - 1] + src[i - w1 + 1] + src[i + w1 - 1] + src[i + w1 + 1]) + blurmat[3] * (src[i - w1] + src[i - 1] + src[i + 1] + src[i + w1]) + blurmat[4] * src[i])));
    }
    return 2;
  } else if (sigma <= 1.5f) {
    dt_masks_blur_9x9_coeff(blurmat, sigma);
    for (int row = 4; row < height - 4; row++) {
      for (int col = 4, i = row * width + col; col < width - 4; col++, i++)
        out[i] = fmaxf(0.0f, fminf(clip, gain * (blurmat[12] * (src[i - w4 - 2] + src[i - w4 + 2] + src[i - w2 - 4] + src[i - w2 + 4] + src[i + w2 - 4] + src[i + w2 + 4] + src[i + w4 - 2] + src[i + w4 + 2]) + blurmat[11] * (src[i - w4 - 1] + src[i - w4 + 1] + src[i - w1 - 4] + src[i - w1 + 4] + src[i + w1 - 4] + src[i + w1 + 4] + src[i + w4 - 1] + src[i + w4 + 1]) + blurmat[10] * (src[i - w4] + src[i - 4] + src[i + 4] + src[i + w4]) + blurmat[9] * (src[i - w3 - 3] + src[i - w3 + 3] + src[i + w3 - 3] + src[i + w3 + 3]) + blurmat[8] * (src[i - w3 - 2] + src[i - w3 + 2] + src[i - w2 - 3] + src[i - w2 + 3] + src[i + w2 - 3] + src[i + w2 + 3] + src[i + w3 - 2] + src[i + w3 + 2]) + blurmat[7] * (src[i - w3 - 1] + src[i - w3 + 1] + src[i - w1 - 3] + src[i - w1 + 3] + src[i + w1 - 3] + src[i + w1 + 3] + src[i + w3 - 1] + src[i + w3 + 1]) + blurmat[6] * (src[i - w3] + src[i - 3] + src[i + 3] + src[i + w3]) + blurmat[5] * (src[i - w2 - 2] + src[i - w2 + 2] + src[i + w2 - 2] + src[i + w2 + 2]) + blurmat[4] * (src[i - w2 - 1] + src[i - w2 + 1] + src[i - w1 - 2] + src[i - w1 + 2] + src[i + w1 - 2] + src[i + w1 + 2] + src[i + w2 - 1] + src[i + w2 + 1]) + blurmat[3] * (src[i - w2] + src[i - 2] + src[i + 2] + src[i + w2]) + blurmat[2] * (src[i - w1 - 1] + src[i - w1 + 1] + src[i + w1 - 1] + src[i + w1 + 1]) + blurmat[1] * (src[i - w1] + src[i - 1] + src[i + 1] + src[i + w1]) + blurmat[0] * src[i])));
    }
    return 4;
  }
  _masks_blur_13x13_coeff(blurmat, sigma);
  for (int row = 6; row < height - 6; row++) {
    for (int col = 6, i = row * width + col; col < width - 6; col++, i++)
      out[i] = fmaxf(0.0f, fminf(clip, gain * (blurmat[0] * (src[i - w6] + src[i - 6] + src[i + 6] + src[i + w6]) + blurmat[1] * ((src[i - w5 - 3] + src[i - w5 + 3]) + (src[i - w3 - 5] + src[i - w3 + 5]) + (src[i + w3 - 5] + src[i + w3 + 5]) + (src[i + w5 - 3] + src[i + w5 + 3])) + blurmat[2] * ((src[i - w5 - 2] + src[i - w5 + 2]) + (src[i - w2 - 5] + src[i - w2 + 5]) + (src[i + w2 - 5] + src[i + w2 + 5]) + (src[i + w5 - 2] + src[i + w5 + 2])) + blurmat[3] * ((src[i - w5 - 1] + src[i - w5 + 1]) + (src[i - w1 - 5] + src[i - w1 + 5]) + (src[i + w1 - 5] + src[i + w1 + 5]) + (src[i + w5 - 1] + src[i + w5 + 1])) + blurmat[4] * ((src[i - w5] + src[i - 5] + src[i + 5] + src[i + w5]) + ((src[i - w4 - 3] + src[i - w4 + 3]) + (src[i - w3 - 4] + src[i - w3 + 4]) + (src[i + w3 - 4] + src[i + w3 + 4]) + (src[i + w4 - 3] + src[i + w4 + 3]))) + blurmat[5] * (src[i - w4 - 4] + src[i - w4 + 4] + src[i + w4 - 4] + src[i + w4 + 4]) + blurmat[6] * ((src[i - w4 - 2] + src[i - w4 + 2]) + (src[i - w2 - 4] + src[i - w2 + 4]) + (src[i + w2 - 4] + src[i + w2 + 4]) + (src[i + w4 - 2] + src[i + w4 + 2])) + blurmat[7] * ((src[i - w4 - 1] + src[i - w4 + 1]) + (src[i - w1 - 4] + src[i - w1 + 4]) + (src[i + w1 - 4] + src[i + w1 + 4]) + (src[i + w4 - 1] + src[i + w4 + 1])) + blurmat[8] * (src[i - w4] + src[i - 4] + src[i + 4] + src[i + w4]) + blurmat[9] * (src[i - w3 - 3] + src[i - w3 + 3] + src[i + w3 - 3] + src[i + w3 + 3]) + blurmat[10] * ((src[i - w3 - 2] + src[i - w3 + 2]) + (src[i - w2 - 3] + src[i - w2 + 3]) + (src[i + w2 - 3] + src[i + w2 + 3]) + (src[i + w3 - 2] + src[i + w3 + 2])) + blurmat[11] * ((src[i - w3 - 1] + src[i - w3 + 1]) + (src[i - w1 - 3] + src[i - w1 + 3]) + (src[i + w1 - 3] + src[i + w1 + 3]) + (src[i + w3 - 1] + src[i + w3 + 1])) + blurmat[12] * (src[i - w3] + src[i - 3] + src[i + 3] + src[i + w3]) + blurmat[13] * (src[i - w2 - 2] + src[i - w2 + 2] + src[i + w2 - 2] + src[i + w2 + 2]) + blurmat[14] * ((src[i - w2 - 1] + src[i - w2 + 1]) + (src[i - w1 - 2] + src[i - w1 + 2]) + (src[i + w1 - 2] + src[i + w1 + 2]) + (src[i + w2 - 1] + src[i + w2 + 1])) + blurmat[15] * (src[i - w2] + src[i - 2] + src[i + 2] + src[i + w2]) + blurmat[16] * (src[i - w1 - 1] + src[i - w1 + 1] + src[i + w1 - 1] + src[i + w1 + 1]) + blurmat[17] * (src[i - w1] + src[i - 1] + src[i + 1] + src[i + w1]) + blurmat[18] * src[i])));
  }
  return 6;
}
```