user: Translate the below assembly code into C programming language:

```asm
<dt_masks_blur_fast>:
  endbr64
  push   %r15
  pxor   %xmm7,%xmm7
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  mov    %ecx,%ebx
  sub    $0x168,%rsp
  mov    %rdi,0xd0(%rsp)
  mov    %rsi,0xd8(%rsp)
  mov    %edx,0xc0(%rsp)
  movss  %xmm1,0x40(%rsp)
  movss  %xmm2,0x44(%rsp)
  mov    %fs:0x28,%rax
  mov    %rax,0x158(%rsp)
  xor    %eax,%eax
  comiss %xmm0,%xmm7
  jae    L156
  movss  D16(%rip),%xmm1
  mov    0xc0(%rsp),%eax
  pxor   %xmm2,%xmm2
  cvtss2sd %xmm0,%xmm2
  comiss %xmm0,%xmm1
  lea    (%rax,%rax,1),%r13d
  jae    L183
  movss  D10(%rip),%xmm1
  mov    0xc0(%rsp),%eax
  lea    0x100(%rsp),%rdi
  comiss %xmm0,%xmm1
  lea    0x0(%r13,%rax,1),%edx
  movapd %xmm2,%xmm0
  mov    $0x1,%eax
  mov    %edx,0x8(%rsp)
  jae    L119
  call   <_masks_blur_13x13_coeff@plt>
  lea    -0x6(%rbx),%eax
  mov    0x8(%rsp),%edx
  cmp    $0x6,%eax
  mov    %eax,0xe4(%rsp)
  jle    L60
  movss  0x100(%rsp),%xmm7
  lea    (%rdx,%rdx,1),%r15d
  movss  0x130(%rsp),%xmm4
  movss  0x134(%rsp),%xmm5
  lea    0x6(%r15),%eax
  movslq %r15d,%rsi
  movss  0x12c(%rsp),%xmm3
  movss  0x138(%rsp),%xmm6
  movss  %xmm7,0x50(%rsp)
  movss  0x104(%rsp),%xmm7
  movss  %xmm4,0x88(%rsp)
  movss  %xmm7,0x58(%rsp)
  movss  0x108(%rsp),%xmm7
  movss  %xmm5,0x90(%rsp)
  movss  %xmm7,0x60(%rsp)
  movss  0x10c(%rsp),%xmm7
  movss  %xmm3,0xa8(%rsp)
  movss  %xmm7,0x68(%rsp)
  movss  0x110(%rsp),%xmm7
  movss  %xmm6,0x98(%rsp)
  movss  %xmm7,0x6c(%rsp)
  movss  0x114(%rsp),%xmm7
  movss  %xmm7,0x70(%rsp)
  movss  0x118(%rsp),%xmm7
  movss  %xmm7,0x74(%rsp)
  movss  0x11c(%rsp),%xmm7
  movss  %xmm7,0x78(%rsp)
  movss  0x120(%rsp),%xmm7
  movss  %xmm7,0x7c(%rsp)
  movss  0x124(%rsp),%xmm7
  movss  %xmm7,0x80(%rsp)
  movss  0x128(%rsp),%xmm7
  movss  %xmm7,0x84(%rsp)
  movss  0x13c(%rsp),%xmm7
  movss  %xmm7,0xa0(%rsp)
  movss  0x140(%rsp),%xmm3
  mov    0xd0(%rsp),%rcx
  movss  0x144(%rsp),%xmm4
  mov    %eax,0xe0(%rsp)
  movslq 0xc0(%rsp),%rax
  mov    %rsi,0xb8(%rsp)
  movss  0x148(%rsp),%xmm5
  movl   $0x6,0xc4(%rsp)
  mov    %rax,%rdi
  mov    %rax,0xe8(%rsp)
  shl    $0x2,%rax
  mov    %rax,0xc8(%rsp)
  lea    -0xd(%rdi),%eax
  lea    (%rdi,%rdi,4),%r8d
  movss  %xmm3,0xac(%rsp)
  add    %rsi,%rax
  movslq %r8d,%r14
  neg    %rsi
  lea    0x1c(%rcx,%rax,4),%rax
  mov    %r14,%r9
  mov    %rsi,%r11
  movss  %xmm4,0xb0(%rsp)
  mov    %rax,0x48(%rsp)
  movslq %edx,%rax
  neg    %r9
  shl    $0x2,%r11
  mov    %rax,0xf0(%rsp)
  movslq %r13d,%rax
  lea    0x0(,%r9,4),%r15
  mov    %rax,0xf8(%rsp)
  mov    %r15,%r9
  mov    %r14,%r15
  mov    %r11,%r14
  movss  %xmm5,0xb4(%rsp)
  nopl   0x0(%rax)
L121:
  cmpl   $0xc,0xc0(%rsp)
  jle    L189
  movslq 0xe0(%rsp),%rsi
  mov    0xf0(%rsp),%rdi
  mov    0xd0(%rsp),%r8
  mov    0xe8(%rsp),%r11
  mov    %rsi,%rax
  lea    0x0(,%rsi,4),%r10
  sub    %rdi,%rax
  lea    (%r8,%r10,1),%rbx
  add    0xd8(%rsp),%r10
  lea    (%r8,%rax,4),%rcx
  lea    (%rdi,%rsi,1),%rax
  mov    0xf8(%rsp),%rdi
  lea    (%r8,%rax,4),%rdx
  mov    %rsi,%rax
  sub    %rdi,%rax
  add    %rsi,%rdi
  lea    (%r8,%rdi,4),%r13
  mov    %rsi,%rdi
  lea    (%r8,%rax,4),%rax
  sub    %r11,%rdi
  lea    (%r8,%rdi,4),%r12
  lea    (%r11,%rsi,1),%rdi
  mov    0xc8(%rsp),%r11
  lea    (%r8,%rdi,4),%rbp
  mov    %rsi,%rdi
  sub    %r11,%rdi
  add    %r11,%rsi
  mov    %r14,%r11
  mov    %r10,%r14
  lea    (%r8,%rdi,4),%rdi
  lea    (%r8,%rsi,4),%rsi
  cs nopw 0x0(%rax,%rax,1)
L36:
  movss  -0xc(%rbx,%r9,1),%xmm1
  movss  -0x14(%rcx),%xmm0
  mov    %r11,0x38(%rsp)
  add    $0x4,%r13
  addss  0xc(%rbx,%r9,1),%xmm1
  addss  0x14(%rcx),%xmm0
  add    $0x4,%r12
  add    $0x4,%rbp
  mov    0xb8(%rsp),%r8
  movss  -0x14(%rax),%xmm2
  add    $0x4,%r14
  addss  0x14(%rax),%xmm2
  addss  %xmm0,%xmm1
  movss  -0x14(%rdx),%xmm0
  addss  0x14(%rdx),%xmm0
  addss  %xmm0,%xmm1
  movss  -0xc(%rbx,%r15,4),%xmm0
  addss  0xc(%rbx,%r15,4),%xmm0
  addss  %xmm0,%xmm1
  movss  (%rbx,%r11,1),%xmm0
  mulss  0x58(%rsp),%xmm1
  addss  -0x18(%rbx),%xmm0
  addss  0x18(%rbx),%xmm0
  addss  (%rbx,%r8,4),%xmm0
  mulss  0x50(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x8(%rbx,%r9,1),%xmm0
  addss  0x8(%rbx,%r9,1),%xmm0
  addss  %xmm2,%xmm0
  movss  -0x18(%r13),%xmm2
  addss  0x10(%r13),%xmm2
  addss  %xmm2,%xmm0
  movss  -0x8(%rbx,%r15,4),%xmm2
  addss  0x8(%rbx,%r15,4),%xmm2
  addss  %xmm2,%xmm0
  mulss  0x60(%rsp),%xmm0
  movss  -0x18(%r12),%xmm2
  addss  0x10(%r12),%xmm2
  addss  %xmm0,%xmm1
  movss  -0x4(%rbx,%r9,1),%xmm0
  addss  0x4(%rbx,%r9,1),%xmm0
  addss  %xmm2,%xmm0
  movss  -0x18(%rbp),%xmm2
  addss  0x10(%rbp),%xmm2
  addss  %xmm2,%xmm0
  movss  -0x4(%rbx,%r15,4),%xmm2
  addss  0x4(%rbx,%r15,4),%xmm2
  mov    %r9,0x30(%rsp)
  addss  %xmm2,%xmm0
  mulss  0x68(%rsp),%xmm0
  movss  -0x10(%rcx),%xmm2
  addss  0x10(%rcx),%xmm2
  addss  %xmm0,%xmm1
  movss  -0xc(%rdi),%xmm0
  addss  0xc(%rdi),%xmm0
  addss  %xmm2,%xmm0
  movss  -0x10(%rdx),%xmm2
  addss  0x10(%rdx),%xmm2
  addss  %xmm2,%xmm0
  movss  -0xc(%rsi),%xmm2
  addss  0xc(%rsi),%xmm2
  addss  %xmm2,%xmm0
  movss  (%rbx,%r9,1),%xmm2
  addss  -0x14(%rbx),%xmm2
  addss  0x14(%rbx),%xmm2
  addss  (%rbx,%r15,4),%xmm2
  add    $0x4,%rbx
  addss  %xmm2,%xmm0
  mulss  0x6c(%rsp),%xmm0
  movss  -0x10(%rax),%xmm2
  addss  0x10(%rax),%xmm2
  addss  %xmm0,%xmm1
  movss  -0x10(%rdi),%xmm0
  addss  0x10(%rdi),%xmm0
  addss  -0x10(%rsi),%xmm0
  addss  0x10(%rsi),%xmm0
  mulss  0x70(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x8(%rdi),%xmm0
  addss  0x8(%rdi),%xmm0
  addss  %xmm2,%xmm0
  movss  -0x14(%r13),%xmm2
  addss  0xc(%r13),%xmm2
  addss  %xmm2,%xmm0
  movss  -0x8(%rsi),%xmm2
  addss  0x8(%rsi),%xmm2
  addss  %xmm2,%xmm0
  mulss  0x74(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x4(%rdi),%xmm0
  addss  0x4(%rdi),%xmm0
  movss  -0x14(%r12),%xmm2
  addss  0xc(%r12),%xmm2
  mov    %rdi,0x28(%rsp)
  mov    %rsi,0x20(%rsp)
  addss  %xmm2,%xmm0
  movss  -0x14(%rbp),%xmm2
  addss  0xc(%rbp),%xmm2
  addss  %xmm2,%xmm0
  movss  -0x4(%rsi),%xmm2
  addss  0x4(%rsi),%xmm2
  addss  %xmm2,%xmm0
  mulss  0x78(%rsp),%xmm0
  movss  -0xc(%rax),%xmm2
  addss  0xc(%rax),%xmm2
  addss  %xmm0,%xmm1
  movss  (%rdi),%xmm0
  addss  -0x14(%rbx),%xmm0
  addss  0xc(%rbx),%xmm0
  addss  (%rsi),%xmm0
  mulss  0x7c(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0xc(%rcx),%xmm0
  addss  0xc(%rcx),%xmm0
  addss  -0xc(%rdx),%xmm0
  addss  0xc(%rdx),%xmm0
  mulss  0x80(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x8(%rcx),%xmm0
  addss  0x8(%rcx),%xmm0
  addss  %xmm2,%xmm0
  movss  -0x10(%r13),%xmm2
  addss  0x8(%r13),%xmm2
  addss  %xmm2,%xmm0
  movss  -0x8(%rdx),%xmm2
  addss  0x8(%rdx),%xmm2
  addss  %xmm2,%xmm0
  movss  -0x10(%r12),%xmm2
  mulss  0x84(%rsp),%xmm0
  addss  0x8(%r12),%xmm2
  addss  %xmm0,%xmm1
  movss  -0x4(%rcx),%xmm0
  addss  0x4(%rcx),%xmm0
  addss  %xmm2,%xmm0
  movss  -0x10(%rbp),%xmm2
  addss  0x8(%rbp),%xmm2
  mov    %rcx,0x18(%rsp)
  mov    %rdx,0x10(%rsp)
  mov    %rax,0x8(%rsp)
  addss  %xmm2,%xmm0
  movss  -0x4(%rdx),%xmm2
  addss  0x4(%rdx),%xmm2
  addss  %xmm2,%xmm0
  movss  -0xc(%r12),%xmm2
  mulss  0xa8(%rsp),%xmm0
  addss  0x4(%r12),%xmm2
  addss  %xmm0,%xmm1
  movss  (%rcx),%xmm0
  addss  -0x10(%rbx),%xmm0
  addss  0x8(%rbx),%xmm0
  addss  (%rdx),%xmm0
  mulss  0x88(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x8(%rax),%xmm0
  addss  0x8(%rax),%xmm0
  addss  -0xc(%r13),%xmm0
  addss  0x4(%r13),%xmm0
  mulss  0x90(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x4(%rax),%xmm0
  addss  0x4(%rax),%xmm0
  addss  %xmm2,%xmm0
  movss  -0xc(%rbp),%xmm2
  addss  0x4(%rbp),%xmm2
  addss  %xmm2,%xmm0
  movss  -0x8(%r13),%xmm2
  addss  0x0(%r13),%xmm2
  addss  %xmm2,%xmm0
  mulss  0x98(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  (%rax),%xmm0
  addss  -0xc(%rbx),%xmm0
  addss  0x4(%rbx),%xmm0
  addss  -0x4(%r13),%xmm0
  mulss  0xa0(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x8(%r12),%xmm0
  addss  (%r12),%xmm0
  addss  -0x8(%rbp),%xmm0
  addss  0x0(%rbp),%xmm0
  mulss  0xac(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x4(%r12),%xmm0
  addss  -0x8(%rbx),%xmm0
  addss  (%rbx),%xmm0
  addss  -0x4(%rbp),%xmm0
  mulss  0xb0(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  0xb4(%rsp),%xmm0
  mulss  -0x4(%rbx),%xmm0
  addss  %xmm0,%xmm1
  mulss  0x40(%rsp),%xmm1
  movss  0x44(%rsp),%xmm0
  call   <fminf@plt>
  movaps %xmm0,%xmm1
  pxor   %xmm0,%xmm0
  call   <fmaxf@plt>
  mov    0x18(%rsp),%rcx
  mov    0x10(%rsp),%rdx
  mov    0x8(%rsp),%rax
  mov    0x28(%rsp),%rdi
  movss  %xmm0,-0x4(%r14)
  mov    0x20(%rsp),%rsi
  add    $0x4,%rcx
  add    $0x4,%rdx
  mov    0x30(%rsp),%r9
  add    $0x4,%rax
  add    $0x4,%rdi
  mov    0x38(%rsp),%r11
  add    $0x4,%rsi
  cmp    %rbx,0x48(%rsp)
  jne    L36
  mov    %r11,%r14
L189:
  mov    0xc0(%rsp),%edi
  addl   $0x1,0xc4(%rsp)
  add    %edi,0xe0(%rsp)
  mov    0xc4(%rsp),%eax
  mov    0xc8(%rsp),%rdi
  add    %rdi,0x48(%rsp)
  cmp    0xe4(%rsp),%eax
  jne    L121
L60:
  mov    $0x6,%eax
L135:
  mov    0x158(%rsp),%rdx
  sub    %fs:0x28,%rdx
  jne    L88
  add    $0x168,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L156:
  mov    %edx,%ecx
  imul   %ebx,%ecx
  xor    %ebx,%ebx
  movslq %ecx,%rbp
  test   %ecx,%ecx
  jle    L185
  mov    0xd0(%rsp),%r12
  mov    0xd8(%rsp),%r13
  nopl   (%rax)
L6:
  movss  0x40(%rsp),%xmm1
  mulss  (%r12,%rbx,4),%xmm1
  movss  0x44(%rsp),%xmm0
  call   <fminf@plt>
  movaps %xmm0,%xmm1
  pxor   %xmm0,%xmm0
  call   <fmaxf@plt>
  movss  %xmm0,0x0(%r13,%rbx,4)
  add    $0x1,%rbx
  cmp    %rbp,%rbx
  jne    L6
L185:
  xor    %eax,%eax
  jmp    L135
L119:
  call   <dt_masks_blur_9x9_coeff@plt>
  lea    -0x4(%rbx),%eax
  movslq 0x8(%rsp),%rdx
  cmp    $0x4,%eax
  mov    %eax,0xa8(%rsp)
  jle    L176
  movss  0x130(%rsp),%xmm6
  mov    0xc0(%rsp),%edi
  movss  0x124(%rsp),%xmm7
  movss  0x118(%rsp),%xmm3
  movss  %xmm6,0x28(%rsp)
  lea    0x4(,%rdi,4),%esi
  lea    -0x9(%rdi),%ecx
  movss  0x12c(%rsp),%xmm6
  lea    0x0(,%rdi,4),%eax
  mov    %esi,0x84(%rsp)
  movslq %edi,%rsi
  movss  0x114(%rsp),%xmm4
  movss  %xmm6,0x30(%rsp)
  mov    0xd0(%rsp),%rdi
  cltq
  mov    %rsi,%r9
  movss  0x128(%rsp),%xmm6
  add    %rcx,%rax
  movss  %xmm7,0x48(%rsp)
  movss  0x11c(%rsp),%xmm7
  movss  %xmm3,0x60(%rsp)
  lea    0x14(%rdi,%rax,4),%rax
  lea    0x0(,%rsi,4),%rbx
  neg    %r9
  movss  %xmm6,0x38(%rsp)
  shl    $0x4,%r9
  movss  0x120(%rsp),%xmm6
  movss  0x110(%rsp),%xmm5
  movss  0x104(%rsp),%xmm3
  movss  %xmm7,0x58(%rsp)
  movss  0x108(%rsp),%xmm7
  movss  %xmm6,0x50(%rsp)
  movss  0x10c(%rsp),%xmm6
  movss  %xmm4,0x68(%rsp)
  movss  0x100(%rsp),%xmm4
  mov    %rax,0x20(%rsp)
  movslq %r13d,%rax
  lea    (%rbx,%rax,1),%r15
  movss  %xmm5,0x6c(%rsp)
  lea    (%rsi,%rax,1),%r14
  mov    %rsi,0x90(%rsp)
  mov    %rbx,0x88(%rsp)
  movss  %xmm6,0x70(%rsp)
  movss  %xmm7,0x74(%rsp)
  movss  %xmm3,0x78(%rsp)
  movss  %xmm4,0x7c(%rsp)
  movl   $0x4,0x80(%rsp)
  mov    %rdx,0xa0(%rsp)
  mov    %rax,0x98(%rsp)
  mov    %r15,%rax
  mov    %r9,%r15
  mov    %rax,%r12
  nopl   0x0(%rax)
L123:
  cmpl   $0x8,0xc0(%rsp)
  jle    L10
  movslq 0x84(%rsp),%rdi
  mov    0xa0(%rsp),%r10
  mov    0xd0(%rsp),%rcx
  lea    0x0(,%rdi,4),%r11
  mov    %rdi,%rax
  mov    %rdi,%rdx
  mov    %rdi,%r8
  add    %r10,%rdi
  sub    %r10,%r8
  lea    (%rcx,%r11,1),%rsi
  sub    0x98(%rsp),%rax
  lea    (%rcx,%rdi,4),%rbp
  mov    0xd8(%rsp),%rdi
  lea    (%rcx,%rax,4),%rax
  sub    0x90(%rsp),%rdx
  lea    (%rcx,%rdx,4),%rdx
  lea    (%rcx,%r8,4),%rbx
  mov    %rax,%r10
  mov    %r12,%rcx
  lea    (%rdi,%r11,1),%r13
  mov    %r15,%rdi
  mov    %rbx,%rax
  mov    %rbp,%r15
  mov    %r13,%r12
  mov    %rdx,%rbp
  mov    %rsi,%r13
  mov    %rdi,%rdx
  mov    %r10,%rbx
  nopl   0x0(%rax,%rax,1)
L71:
  movss  -0x8(%r13,%rdx,1),%xmm0
  movss  0x8(%r13,%rdx,1),%xmm1
  mov    %rdx,0x18(%rsp)
  add    $0x4,%r13
  mov    %rcx,0x10(%rsp)
  add    $0x4,%r15
  add    $0x4,%r12
  addss  %xmm0,%xmm1
  movss  -0x8(%r13,%rdx,1),%xmm0
  addss  -0x10(%rbx),%xmm1
  addss  0x0(%r13,%rdx,1),%xmm0
  addss  0x10(%rbx),%xmm1
  addss  -0x10(%rbp),%xmm0
  addss  -0x10(%rbp,%r14,4),%xmm1
  addss  0x10(%rbp),%xmm0
  addss  0x10(%rbp,%r14,4),%xmm1
  addss  -0x10(%rbx,%r14,4),%xmm0
  addss  -0x8(%rbx,%rcx,4),%xmm1
  addss  0x10(%rbx,%r14,4),%xmm0
  addss  0x8(%rbx,%rcx,4),%xmm1
  addss  -0x4(%rbx,%rcx,4),%xmm0
  mulss  0x28(%rsp),%xmm1
  addss  0x4(%rbx,%rcx,4),%xmm0
  mulss  0x30(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x4(%r13,%rdx,1),%xmm0
  addss  -0x14(%r13),%xmm0
  addss  0xc(%r13),%xmm0
  addss  (%rbx,%rcx,4),%xmm0
  mulss  0x38(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0xc(%rax),%xmm0
  addss  0xc(%rax),%xmm0
  addss  -0x10(%r15),%xmm0
  addss  0x8(%r15),%xmm0
  mulss  0x48(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x8(%rax),%xmm0
  addss  0x8(%rax),%xmm0
  addss  -0xc(%rbx),%xmm0
  addss  0xc(%rbx),%xmm0
  mov    %rax,0x8(%rsp)
  addss  -0xc(%rbp,%r14,4),%xmm0
  addss  0xc(%rbp,%r14,4),%xmm0
  addss  -0xc(%r15),%xmm0
  addss  0x4(%r15),%xmm0
  mulss  0x50(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x4(%rax),%xmm0
  addss  0x4(%rax),%xmm0
  addss  -0xc(%rbp),%xmm0
  addss  0xc(%rbp),%xmm0
  addss  -0xc(%rbx,%r14,4),%xmm0
  addss  0xc(%rbx,%r14,4),%xmm0
  addss  -0x8(%r15),%xmm0
  addss  (%r15),%xmm0
  mulss  0x58(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  (%rax),%xmm0
  addss  -0x10(%r13),%xmm0
  addss  0x8(%r13),%xmm0
  addss  -0x4(%r15),%xmm0
  mulss  0x60(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x8(%rbx),%xmm0
  addss  0x8(%rbx),%xmm0
  addss  -0x8(%rbp,%r14,4),%xmm0
  addss  0x8(%rbp,%r14,4),%xmm0
  mulss  0x68(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x4(%rbx),%xmm0
  addss  0x4(%rbx),%xmm0
  addss  -0x8(%rbp),%xmm0
  addss  0x8(%rbp),%xmm0
  addss  -0x8(%rbx,%r14,4),%xmm0
  addss  0x8(%rbx,%r14,4),%xmm0
  addss  -0x4(%rbp,%r14,4),%xmm0
  addss  0x4(%rbp,%r14,4),%xmm0
  mulss  0x6c(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  (%rbx),%xmm0
  addss  -0xc(%r13),%xmm0
  addss  0x4(%r13),%xmm0
  addss  0x0(%rbp,%r14,4),%xmm0
  add    $0x4,%rbp
  mulss  0x70(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x8(%rbp),%xmm0
  addss  0x0(%rbp),%xmm0
  addss  -0x4(%rbx,%r14,4),%xmm0
  addss  0x4(%rbx,%r14,4),%xmm0
  mulss  0x74(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x4(%rbp),%xmm0
  addss  -0x8(%r13),%xmm0
  addss  0x0(%r13),%xmm0
  addss  (%rbx,%r14,4),%xmm0
  add    $0x4,%rbx
  mulss  0x78(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  0x7c(%rsp),%xmm0
  mulss  -0x4(%r13),%xmm0
  addss  %xmm0,%xmm1
  mulss  0x40(%rsp),%xmm1
  movss  0x44(%rsp),%xmm0
  call   <fminf@plt>
  movaps %xmm0,%xmm1
  pxor   %xmm0,%xmm0
  call   <fmaxf@plt>
  mov    0x8(%rsp),%rax
  mov    0x10(%rsp),%rcx
  movss  %xmm0,-0x4(%r12)
  mov    0x18(%rsp),%rdx
  add    $0x4,%rax
  cmp    %r13,0x20(%rsp)
  jne    L71
  mov    %rdx,%r15
  mov    %rcx,%r12
L10:
  mov    0xc0(%rsp),%edi
  addl   $0x1,0x80(%rsp)
  add    %edi,0x84(%rsp)
  mov    0x80(%rsp),%eax
  mov    0x88(%rsp),%rdi
  add    %rdi,0x20(%rsp)
  cmp    0xa8(%rsp),%eax
  jne    L123
L176:
  mov    $0x4,%eax
  jmp    L135
L183:
  lea    0x100(%rsp),%rdi
  movapd %xmm2,%xmm0
  mov    $0x1,%eax
  call   <_masks_blur_5x5_coeff@plt>
  lea    -0x2(%rbx),%eax
  mov    %eax,0x48(%rsp)
  cmp    $0x2,%eax
  jle    L193
  movslq 0xc0(%rsp),%rsi
  lea    0x2(%r13),%eax
  movss  0x100(%rsp),%xmm5
  movl   $0x2,0x30(%rsp)
  movss  0x104(%rsp),%xmm6
  mov    %eax,0x38(%rsp)
  lea    0x0(,%rsi,4),%rdx
  mov    %rsi,%rax
  movss  0x108(%rsp),%xmm7
  mov    0xd0(%rsp),%rdi
  mov    %rdx,0x50(%rsp)
  movslq %r13d,%rdx
  sub    $0x5,%eax
  movss  %xmm5,0x8(%rsp)
  add    %rdx,%rax
  lea    (%rdx,%rsi,1),%r15
  movss  0x10c(%rsp),%xmm5
  movss  %xmm6,0x10(%rsp)
  lea    0xc(%rdi,%rax,4),%rbx
  movss  0x110(%rsp),%xmm6
  mov    %rsi,0x60(%rsp)
  mov    %rdx,0x58(%rsp)
  movss  %xmm7,0x18(%rsp)
  movss  %xmm5,0x20(%rsp)
  movss  %xmm6,0x28(%rsp)
  nopw   0x0(%rax,%rax,1)
L45:
  cmpl   $0x4,0xc0(%rsp)
  jle    L158
  movslq 0x38(%rsp),%rdi
  mov    0xd0(%rsp),%rsi
  mov    %rdi,%rax
  sub    0x58(%rsp),%rax
  lea    (%rsi,%rax,4),%r13
  mov    %rdi,%rax
  sub    0x60(%rsp),%rax
  shl    $0x2,%rdi
  lea    (%rsi,%rax,4),%rbp
  mov    0xd8(%rsp),%rax
  lea    (%rsi,%rdi,1),%r12
  lea    (%rax,%rdi,1),%r14
  nopw   0x0(%rax,%rax,1)
L145:
  movss  -0x4(%r13),%xmm1
  movss  -0x8(%rbp),%xmm0
  add    $0x4,%r12
  add    $0x4,%r14
  addss  0x8(%rbp),%xmm0
  addss  0x4(%r13),%xmm1
  addss  %xmm0,%xmm1
  movss  -0x8(%r13,%r15,4),%xmm0
  addss  0x8(%r13,%r15,4),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x4(%rbp,%r15,4),%xmm0
  addss  0x4(%rbp,%r15,4),%xmm0
  addss  %xmm0,%xmm1
  movss  0x0(%r13),%xmm0
  mulss  0x8(%rsp),%xmm1
  addss  -0xc(%r12),%xmm0
  addss  0x4(%r12),%xmm0
  addss  0x0(%rbp,%r15,4),%xmm0
  mulss  0x10(%rsp),%xmm0
  add    $0x4,%rbp
  addss  %xmm0,%xmm1
  movss  -0x8(%rbp),%xmm0
  addss  0x0(%rbp),%xmm0
  addss  -0x4(%r13,%r15,4),%xmm0
  addss  0x4(%r13,%r15,4),%xmm0
  mulss  0x18(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  -0x4(%rbp),%xmm0
  addss  -0x8(%r12),%xmm0
  addss  (%r12),%xmm0
  addss  0x0(%r13,%r15,4),%xmm0
  add    $0x4,%r13
  mulss  0x20(%rsp),%xmm0
  addss  %xmm0,%xmm1
  movss  0x28(%rsp),%xmm0
  mulss  -0x4(%r12),%xmm0
  addss  %xmm0,%xmm1
  mulss  0x40(%rsp),%xmm1
  movss  0x44(%rsp),%xmm0
  call   <fminf@plt>
  movaps %xmm0,%xmm1
  pxor   %xmm0,%xmm0
  call   <fmaxf@plt>
  movss  %xmm0,-0x4(%r14)
  cmp    %r12,%rbx
  jne    L145
L158:
  addl   $0x1,0x30(%rsp)
  mov    0xc0(%rsp),%edx
  mov    0x30(%rsp),%eax
  add    %edx,0x38(%rsp)
  add    0x50(%rsp),%rbx
  cmp    0x48(%rsp),%eax
  jne    L45
L193:
  mov    $0x2,%eax
  jmp    L135
L88:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: read_data
arguments: tag: D16
type: byte[4]
name: read_data
arguments: tag: D10
type: byte[4]

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

tool: {"D10": [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;
}
```