user: Demonstrate the C code that generates the assembly output below:

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x30,%rsp
  movl   $0x64,-0x30(%rbp)
  movl   $0x64,-0x2c(%rbp)
  mov    -0x2c(%rbp),%eax
  mov    %eax,-0x28(%rbp)
  mov    -0x28(%rbp),%eax
  mov    %eax,-0x24(%rbp)
  mov    -0x24(%rbp),%eax
  mov    %eax,-0x20(%rbp)
  mov    -0x20(%rbp),%eax
  mov    %eax,-0x1c(%rbp)
  addl   $0x64,-0x1c(%rbp)
  subl   $0x32,-0x20(%rbp)
  shll   -0x24(%rbp)
  mov    -0x28(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,-0x28(%rbp)
  mov    -0x20(%rbp),%eax
  add    %eax,-0x2c(%rbp)
  mov    -0x2c(%rbp),%eax
  imul   -0x24(%rbp),%eax
  mov    %eax,-0x2c(%rbp)
  mov    -0x2c(%rbp),%eax
  movslq %eax,%rdx
  imul   $0x51eb851f,%rdx,%rdx
  shr    $0x20,%rdx
  sar    $0x5,%edx
  sar    $0x1f,%eax
  mov    %eax,%ecx
  mov    %edx,%eax
  sub    %ecx,%eax
  mov    %eax,-0x2c(%rbp)
  subl   $0xc8,-0x2c(%rbp)
  mov    -0x30(%rbp),%eax
  mov    $0x64,%esi
  mov    %eax,%edi
  call   <assertEq@plt>
  mov    -0x1c(%rbp),%eax
  mov    $0xc8,%esi
  mov    %eax,%edi
  call   <assertEq@plt>
  mov    -0x20(%rbp),%eax
  mov    $0x32,%esi
  mov    %eax,%edi
  call   <assertEq@plt>
  mov    -0x24(%rbp),%eax
  mov    $0xc8,%esi
  mov    %eax,%edi
  call   <assertEq@plt>
  mov    -0x28(%rbp),%eax
  mov    $0x32,%esi
  mov    %eax,%edi
  call   <assertEq@plt>
  mov    -0x2c(%rbp),%eax
  mov    $0x64,%esi
  mov    %eax,%edi
  call   <assertEq@plt>
  movss  D54(%rip),%xmm0
  movss  %xmm0,-0x18(%rbp)
  movss  D54(%rip),%xmm0
  movss  %xmm0,-0x14(%rbp)
  movss  -0x14(%rbp),%xmm0
  movss  %xmm0,-0x10(%rbp)
  movss  -0x10(%rbp),%xmm0
  movss  %xmm0,-0xc(%rbp)
  movss  -0xc(%rbp),%xmm0
  movss  %xmm0,-0x8(%rbp)
  movss  -0x8(%rbp),%xmm0
  movss  %xmm0,-0x4(%rbp)
  movss  -0x4(%rbp),%xmm1
  movss  D54(%rip),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,-0x4(%rbp)
  movss  -0x8(%rbp),%xmm0
  movss  D76(%rip),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x8(%rbp)
  movss  -0xc(%rbp),%xmm1
  movss  D54(%rip),%xmm0
  mulss  %xmm1,%xmm0
  movss  %xmm0,-0xc(%rbp)
  movss  -0x10(%rbp),%xmm0
  movss  D54(%rip),%xmm1
  divss  %xmm1,%xmm0
  movss  %xmm0,-0x10(%rbp)
  movss  -0x14(%rbp),%xmm0
  addss  -0x4(%rbp),%xmm0
  movss  %xmm0,-0x14(%rbp)
  movss  -0x8(%rbp),%xmm0
  movaps %xmm0,%xmm1
  addss  -0xc(%rbp),%xmm1
  movss  -0x14(%rbp),%xmm0
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x14(%rbp)
  movss  -0x4(%rbp),%xmm0
  subss  -0xc(%rbp),%xmm0
  divss  -0x8(%rbp),%xmm0
  movss  -0x14(%rbp),%xmm1
  mulss  %xmm1,%xmm0
  movss  %xmm0,-0x14(%rbp)
  pxor   %xmm0,%xmm0
  cvtss2sd -0x14(%rbp),%xmm0
  pxor   %xmm2,%xmm2
  cvtss2sd -0x10(%rbp),%xmm2
  pxor   %xmm3,%xmm3
  cvtss2sd -0xc(%rbp),%xmm3
  movsd  D34(%rip),%xmm1
  mulsd  %xmm3,%xmm1
  addsd  %xmm1,%xmm2
  pxor   %xmm1,%xmm1
  cvtss2sd -0x4(%rbp),%xmm1
  addsd  %xmm2,%xmm1
  divsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x14(%rbp)
  movsd  D118(%rip),%xmm0
  mov    -0x18(%rbp),%eax
  movapd %xmm0,%xmm1
  movd   %eax,%xmm0
  call   <assertEqf@plt>
  movsd  D114(%rip),%xmm0
  mov    -0x4(%rbp),%eax
  movapd %xmm0,%xmm1
  movd   %eax,%xmm0
  call   <assertEqf@plt>
  movsd  D112(%rip),%xmm0
  mov    -0x8(%rbp),%eax
  movapd %xmm0,%xmm1
  movd   %eax,%xmm0
  call   <assertEqf@plt>
  movsd  D112(%rip),%xmm0
  mov    -0xc(%rbp),%eax
  movapd %xmm0,%xmm1
  movd   %eax,%xmm0
  call   <assertEqf@plt>
  movsd  D114(%rip),%xmm0
  mov    -0x10(%rbp),%eax
  movapd %xmm0,%xmm1
  movd   %eax,%xmm0
  call   <assertEqf@plt>
  movsd  D114(%rip),%xmm0
  mov    -0x14(%rbp),%eax
  movapd %xmm0,%xmm1
  movd   %eax,%xmm0
  call   <assertEqf@plt>
  mov    $0x0,%eax
  call   <endTest@plt>
  mov    $0x0,%eax
  leave
  ret
```

tool_calls: name: read_data
arguments: data_label: D54
type_guessed: f32
name: read_data
arguments: data_label: D76
type_guessed: f32
name: read_data
arguments: data_label: D34
type_guessed: f64
name: read_data
arguments: data_label: D118
type_guessed: byte[8]
name: read_data
arguments: data_label: D114
type_guessed: f64
name: read_data
arguments: data_label: D112
type_guessed: byte[8]

tool: D54: 0.5

tool: D76: 0.25

tool: D34: 4

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

tool: D114: 1

tool: {"D112": [0x00,0x00,0x00,0x00,0x00,0x00,0xd0,0x3f]}

assistant: ```c
int main() {
  int a, b, c, d, e, f;
  float u, v, w, x, y, z;
  a = 100;
  b = c = d = e = f = 100;
  b += 100;
  c -= 50;
  d *= 2;
  e /= 2;
  f += c;
  f *= d;
  f /= 100;
  f -= 200;
  assertEq(a, 100);
  assertEq(b, 200);
  assertEq(c, 50);
  assertEq(d, 200);
  assertEq(e, 50);
  assertEq(f, 100);
  u = 0.5;
  v = w = x = y = z = 0.5;
  v += 0.5;
  w -= 0.25;
  x *= 0.5;
  y /= 0.5;
  z += v;
  z -= w + x;
  z *= ((v - x) / w);
  z /= y + x * 4.0 + v;
  assertEqf(u, 0.5);
  assertEqf(v, 1.0);
  assertEqf(w, 0.25);
  assertEqf(x, 0.25);
  assertEqf(y, 1.0);
  assertEqf(z, 1.0);
  endTest();
}
```