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

```asm
<pattern_whiteSquares>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %rdi,-0x18(%rbp)
  movss  D130(%rip),%xmm0
  movss  %xmm0,-0xc(%rbp)
  pxor   %xmm1,%xmm1
  cvtss2sd -0xc(%rbp),%xmm1
  movsd  D101(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  cvttsd2si %xmm0,%eax
  mov    %eax,-0x8(%rbp)
  mov    -0x8(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,-0x4(%rbp)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x4(%rbp),%xmm0
  movsd  D139(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  mov    -0x8(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %edx,%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  addsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  mov    -0x18(%rbp),%rax
  movss  %xmm0,(%rax)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x4(%rbp),%xmm0
  movsd  D139(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  mov    -0x8(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  sub    %edx,%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x4,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x4(%rbp),%xmm0
  movsd  D139(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  mov    -0x8(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %edx,%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x8,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x4(%rbp),%xmm0
  movsd  D139(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  mov    -0x8(%rbp),%eax
  shl    $0x2,%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  add    $0xc,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x4(%rbp),%xmm0
  movsd  D139(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  mov    -0x8(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %edx,%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x10,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x4(%rbp),%xmm0
  movsd  D139(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x8(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x14,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x4(%rbp),%xmm0
  movsd  D139(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  mov    -0x8(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  sub    %edx,%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x18,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x4(%rbp),%xmm0
  movsd  D139(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  pxor   %xmm0,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x1c,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x4(%rbp),%xmm0
  movsd  D139(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  mov    -0x8(%rbp),%eax
  shl    $0x2,%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x20,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x4(%rbp),%xmm0
  movsd  D139(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  pxor   %xmm0,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x24,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x4(%rbp),%xmm0
  movsd  D139(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x8(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x28,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x4(%rbp),%xmm0
  movsd  D139(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  pxor   %xmm0,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x2c,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x4(%rbp),%xmm0
  movsd  D139(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  pxor   %xmm0,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x30,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x4(%rbp),%xmm0
  movsd  D139(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x8(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x34,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x4(%rbp),%xmm0
  movsd  D139(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  pxor   %xmm0,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x38,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x4(%rbp),%xmm0
  movsd  D139(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  mov    -0x8(%rbp),%eax
  shl    $0x2,%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x3c,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x4(%rbp),%xmm0
  movsd  D139(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  pxor   %xmm0,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x40,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x4(%rbp),%xmm0
  movsd  D139(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  mov    -0x8(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  sub    %edx,%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x44,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x4(%rbp),%xmm0
  movsd  D139(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x8(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x48,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x4(%rbp),%xmm0
  movsd  D139(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  mov    -0x8(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %edx,%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x4c,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x4(%rbp),%xmm0
  movsd  D139(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  mov    -0x8(%rbp),%eax
  shl    $0x2,%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x50,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x4(%rbp),%xmm0
  movsd  D139(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  mov    -0x8(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %edx,%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x54,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x4(%rbp),%xmm0
  movsd  D139(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  mov    -0x8(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  sub    %edx,%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x58,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x4(%rbp),%xmm0
  movsd  D139(%rip),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  mov    -0x8(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %edx,%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x5c,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  nop
  pop    %rbp
  ret
```

tool_calls: name: unpack_data
arguments: label: D130
type: f32
name: unpack_data
arguments: label: D101
type: f64
name: unpack_data
arguments: label: D139
type: f64

tool: D130: 8

tool: D101: 32

tool: D139: 0.5

assistant: ```c
void pattern_whiteSquares(float *p) {
  float up_res = 8.0;
  int up_res_pattern_block_size = up_res * 32.0;
  int up_res_pattern_block_size_2 = up_res_pattern_block_size / 2;
  p[0] = up_res_pattern_block_size_2 - 0.5 + up_res_pattern_block_size * 9;
  p[1] = up_res_pattern_block_size_2 - 0.5 + up_res_pattern_block_size * 7;
  p[2] = up_res_pattern_block_size_2 - 0.5 + up_res_pattern_block_size * 9;
  p[3] = up_res_pattern_block_size_2 - 0.5 + up_res_pattern_block_size * 4;
  p[4] = up_res_pattern_block_size_2 - 0.5 + up_res_pattern_block_size * 9;
  p[5] = up_res_pattern_block_size_2 - 0.5 + up_res_pattern_block_size * 1;
  p[6] = up_res_pattern_block_size_2 - 0.5 + up_res_pattern_block_size * 7;
  p[7] = up_res_pattern_block_size_2 - 0.5 + up_res_pattern_block_size * 0;
  p[8] = up_res_pattern_block_size_2 - 0.5 + up_res_pattern_block_size * 4;
  p[9] = up_res_pattern_block_size_2 - 0.5 + up_res_pattern_block_size * 0;
  p[10] = up_res_pattern_block_size_2 - 0.5 + up_res_pattern_block_size * 1;
  p[11] = up_res_pattern_block_size_2 - 0.5 + up_res_pattern_block_size * 0;
  p[12] = up_res_pattern_block_size_2 - 0.5 + up_res_pattern_block_size * 0;
  p[13] = up_res_pattern_block_size_2 - 0.5 + up_res_pattern_block_size * 1;
  p[14] = up_res_pattern_block_size_2 - 0.5 + up_res_pattern_block_size * 0;
  p[15] = up_res_pattern_block_size_2 - 0.5 + up_res_pattern_block_size * 4;
  p[16] = up_res_pattern_block_size_2 - 0.5 + up_res_pattern_block_size * 0;
  p[17] = up_res_pattern_block_size_2 - 0.5 + up_res_pattern_block_size * 7;
  p[18] = up_res_pattern_block_size_2 - 0.5 + up_res_pattern_block_size * 1;
  p[19] = up_res_pattern_block_size_2 - 0.5 + up_res_pattern_block_size * 9;
  p[20] = up_res_pattern_block_size_2 - 0.5 + up_res_pattern_block_size * 4;
  p[21] = up_res_pattern_block_size_2 - 0.5 + up_res_pattern_block_size * 9;
  p[22] = up_res_pattern_block_size_2 - 0.5 + up_res_pattern_block_size * 7;
  p[23] = up_res_pattern_block_size_2 - 0.5 + up_res_pattern_block_size * 9;
  return;
}
```