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

```asm
<h264_sc>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %rdi,-0x18(%rbp)
  mov    %rsi,-0x20(%rbp)
  mov    %rdx,-0x28(%rbp)
  mov    %rcx,-0x30(%rbp)
  mov    %r8,-0x38(%rbp)
  movl   $0x0,-0x8(%rbp)
  jmp    L160
L132:
  movl   $0x0,-0x4(%rbp)
  jmp    L65
L198:
  pxor   %xmm1,%xmm1
  cvtsi2ssl -0x4(%rbp),%xmm1
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  movss  D54(%rip),%xmm0
  mulss  %xmm1,%xmm0
  mov    -0x4(%rbp),%eax
  cltq
  movss  %xmm0,(%rdx,%rax,4)
  addl   $0x1,-0x4(%rbp)
L65:
  cmpl   $0x18,-0x4(%rbp)
  jle    L198
  addl   $0x1,-0x8(%rbp)
L160:
  cmpl   $0x18,-0x8(%rbp)
  jle    L132
  movl   $0x0,-0x8(%rbp)
  jmp    L40
L34:
  movl   $0x0,-0x4(%rbp)
  jmp    L102
L109:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movss  (%rdx,%rax,4),%xmm1
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movss  (%rdx,%rax,4),%xmm0
  addss  %xmm0,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x4,%rax
  lea    0xe0(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movss  (%rdx,%rax,4),%xmm2
  movss  D34(%rip),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x4,%rax
  lea    0x150(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movss  (%rdx,%rax,4),%xmm2
  movss  D34(%rip),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x4,%rax
  lea    0x1c0(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movss  (%rdx,%rax,4),%xmm0
  addss  %xmm0,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x4,%rax
  lea    0x230(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movss  (%rdx,%rax,4),%xmm0
  addss  %xmm1,%xmm0
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    -0x20(%rbp),%rax
  add    %rax,%rdx
  movss  D67(%rip),%xmm1
  divss  %xmm1,%xmm0
  mov    -0x4(%rbp),%eax
  cltq
  movss  %xmm0,(%rdx,%rax,4)
  addl   $0x1,-0x4(%rbp)
L102:
  cmpl   $0x18,-0x4(%rbp)
  jle    L109
  addl   $0x1,-0x8(%rbp)
L40:
  cmpl   $0xe,-0x8(%rbp)
  jle    L34
  movl   $0x0,-0x8(%rbp)
  jmp    L20
L41:
  movl   $0x0,-0x4(%rbp)
  jmp    L157
L149:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    -0x20(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movss  (%rdx,%rax,4),%xmm1
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    -0x20(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  movss  (%rdx,%rax,4),%xmm0
  addss  %xmm0,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    -0x20(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  movss  (%rdx,%rax,4),%xmm2
  movss  D34(%rip),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    -0x20(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x3,%eax
  cltq
  movss  (%rdx,%rax,4),%xmm2
  movss  D34(%rip),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    -0x20(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x4,%eax
  cltq
  movss  (%rdx,%rax,4),%xmm0
  addss  %xmm0,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    -0x20(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x5,%eax
  cltq
  movss  (%rdx,%rax,4),%xmm0
  addss  %xmm1,%xmm0
  mov    -0x8(%rbp),%eax
  cltq
  shl    $0x6,%rax
  mov    %rax,%rdx
  mov    -0x28(%rbp),%rax
  add    %rax,%rdx
  movss  D67(%rip),%xmm1
  divss  %xmm1,%xmm0
  mov    -0x4(%rbp),%eax
  cltq
  movss  %xmm0,(%rdx,%rax,4)
  addl   $0x1,-0x4(%rbp)
L157:
  cmpl   $0xe,-0x4(%rbp)
  jle    L149
  addl   $0x1,-0x8(%rbp)
L20:
  cmpl   $0xe,-0x8(%rbp)
  jle    L41
  movl   $0x0,-0x8(%rbp)
  jmp    L173
L135:
  movl   $0x0,-0x4(%rbp)
  jmp    L141
L24:
  mov    -0x8(%rbp),%eax
  cltq
  shl    $0x6,%rax
  mov    %rax,%rdx
  mov    -0x28(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movss  (%rdx,%rax,4),%xmm1
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    -0x20(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movss  (%rdx,%rax,4),%xmm0
  mov    -0x8(%rbp),%eax
  cltq
  shl    $0x6,%rax
  mov    %rax,%rdx
  mov    -0x30(%rbp),%rax
  add    %rax,%rdx
  addss  %xmm1,%xmm0
  mov    -0x4(%rbp),%eax
  cltq
  movss  %xmm0,(%rdx,%rax,4)
  addl   $0x1,-0x4(%rbp)
L141:
  cmpl   $0xe,-0x4(%rbp)
  jle    L24
  addl   $0x1,-0x8(%rbp)
L173:
  cmpl   $0xe,-0x8(%rbp)
  jle    L135
  movl   $0x0,-0x8(%rbp)
  jmp    L60
L152:
  movl   $0x0,-0x4(%rbp)
  jmp    L63
L93:
  mov    -0x8(%rbp),%eax
  cltq
  shl    $0x6,%rax
  mov    %rax,%rdx
  mov    -0x30(%rbp),%rax
  lea    (%rdx,%rax,1),%rcx
  mov    -0x8(%rbp),%eax
  cltq
  shl    $0x6,%rax
  mov    %rax,%rdx
  mov    -0x38(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movss  (%rcx,%rax,4),%xmm0
  mov    -0x4(%rbp),%eax
  cltq
  movss  %xmm0,(%rdx,%rax,4)
  addl   $0x1,-0x4(%rbp)
L63:
  cmpl   $0xe,-0x4(%rbp)
  jle    L93
  addl   $0x1,-0x8(%rbp)
L60:
  cmpl   $0xe,-0x8(%rbp)
  jle    L152
  nop
  nop
  pop    %rbp
  ret
```

tool_calls: name: parse_data
arguments: data_tag: D54
type_guessed: byte[4]
name: parse_data
arguments: data_tag: D34
type_guessed: byte[4]
name: parse_data
arguments: data_tag: D67
type_guessed: byte[4]

tool: {"D54": [0xdb,0x0f,0x49,0x40]}

tool: {"D34": [0x00,0x00,0x80,0x40]}

tool: {"D67": [0x00,0x00,0x60,0x41]}

assistant: ```c
void __attribute__((no)) h264_sc(float (*X)[28], float (*H)[28], float (*K)[16], float (*Y)[16], float (*output)[16]) {
  int i, j;
  for (i = 0; i <= 24; i++) {
    for (j = 0; j <= 24; j++) {
      X[i][j] = 3.141592653589793238462643f * j;
    }
  }
  for (i = 0; i <= 14; i++) {
    for (j = 0; j <= 24; j++) {
      H[i][j] = (X[i][j] + 2.0f * X[i + 1][j] + 4.0f * X[i + 2][j] + 4.0f * X[i + 3][j] + 2.0f * X[i + 4][j] + X[i + 5][j]) / 14.0f;
    }
  }
  for (i = 0; i <= 14; i++) {
    for (j = 0; j <= 14; j++) {
      K[i][j] = (H[i][j] + 2.0f * H[i][j + 1] + 4.0f * H[i][j + 2] + 4.0f * H[i][j + 3] + 2.0f * H[i][j + 4] + H[i][j + 5]) / 14.0f;
    }
  }
  for (i = 0; i <= 14; i++) {
    for (j = 0; j <= 14; j++) {
      Y[i][j] = K[i][j] + H[i][j];
    }
  }
  for (i = 0; i <= 14; i++) {
    for (j = 0; j <= 14; j++) {
      output[i][j] = Y[i][j];
    }
  }
}
```