user: 请从给定的汇编指令推导出C源代码:

```asm
<main>:
  endbr64
  push   %r12
  lea    D27(%rip),%rdi
  push   %rbp
  xor    %ebp,%ebp
  push   %rbx
  lea    D93(%rip),%rbx
  call   <puts@plt>
  jmp    L92
  nop
L5:
  add    $0x1,%ebp
  cmp    $0x100,%ebp
  je     L142
L92:
  lea    -0x10(%rbp),%eax
  pxor   %xmm0,%xmm0
  mov    %rbx,%rdi
  cvtsi2sd %eax,%xmm0
  mulsd  D104(%rip),%xmm0
  xor    %eax,%eax
  mulsd  D137(%rip),%xmm0
  cvttsd2si %xmm0,%esi
  call   <printf@plt>
  test   $0x7,%bpl
  jne    L5
  mov    $0xa,%edi
  add    $0x1,%ebp
  call   <putchar@plt>
  cmp    $0x100,%ebp
  jne    L92
L142:
  lea    D110(%rip),%rbp
  xor    %r12d,%r12d
  mov    %rbp,%rdi
  call   <puts@plt>
  lea    D79(%rip),%rdi
  call   <puts@plt>
  jmp    L93
  nop
L106:
  add    $0x1,%r12d
  cmp    $0x100,%r12d
  je     L51
L93:
  lea    -0x80(%r12),%eax
  pxor   %xmm0,%xmm0
  mov    %rbx,%rdi
  cvtsi2sd %eax,%xmm0
  mulsd  D68(%rip),%xmm0
  xor    %eax,%eax
  mulsd  D137(%rip),%xmm0
  cvttsd2si %xmm0,%esi
  call   <printf@plt>
  test   $0x7,%r12b
  jne    L106
  mov    $0xa,%edi
  add    $0x1,%r12d
  call   <putchar@plt>
  cmp    $0x100,%r12d
  jne    L93
L51:
  mov    %rbp,%rdi
  xor    %r12d,%r12d
  call   <puts@plt>
  lea    D2(%rip),%rdi
  call   <puts@plt>
  jmp    L71
  xchg   %ax,%ax
L83:
  add    $0x1,%r12d
  cmp    $0x100,%r12d
  je     L35
L71:
  lea    -0x80(%r12),%eax
  pxor   %xmm0,%xmm0
  mov    %rbx,%rdi
  cvtsi2sd %eax,%xmm0
  mulsd  D145(%rip),%xmm0
  xor    %eax,%eax
  mulsd  D137(%rip),%xmm0
  cvttsd2si %xmm0,%esi
  call   <printf@plt>
  test   $0x7,%r12b
  jne    L83
  mov    $0xa,%edi
  add    $0x1,%r12d
  call   <putchar@plt>
  cmp    $0x100,%r12d
  jne    L71
L35:
  mov    %rbp,%rdi
  xor    %r12d,%r12d
  call   <puts@plt>
  lea    D18(%rip),%rdi
  call   <puts@plt>
  jmp    L166
  xchg   %ax,%ax
L10:
  add    $0x1,%r12d
  cmp    $0x100,%r12d
  je     L121
L166:
  lea    -0x80(%r12),%eax
  pxor   %xmm0,%xmm0
  mov    %rbx,%rdi
  cvtsi2sd %eax,%xmm0
  mulsd  D114(%rip),%xmm0
  xor    %eax,%eax
  mulsd  D137(%rip),%xmm0
  cvttsd2si %xmm0,%esi
  call   <printf@plt>
  test   $0x7,%r12b
  jne    L10
  mov    $0xa,%edi
  add    $0x1,%r12d
  call   <putchar@plt>
  cmp    $0x100,%r12d
  jne    L166
L121:
  mov    %rbp,%rdi
  xor    %r12d,%r12d
  call   <puts@plt>
  lea    D41(%rip),%rdi
  call   <puts@plt>
  jmp    L39
  xchg   %ax,%ax
L107:
  add    $0x1,%r12d
  cmp    $0x100,%r12d
  je     L45
L39:
  lea    -0x80(%r12),%eax
  pxor   %xmm0,%xmm0
  mov    %rbx,%rdi
  cvtsi2sd %eax,%xmm0
  mulsd  D139(%rip),%xmm0
  xor    %eax,%eax
  mulsd  D137(%rip),%xmm0
  cvttsd2si %xmm0,%esi
  call   <printf@plt>
  test   $0x7,%r12b
  jne    L107
  mov    $0xa,%edi
  add    $0x1,%r12d
  call   <putchar@plt>
  cmp    $0x100,%r12d
  jne    L39
L45:
  mov    %rbp,%rdi
  call   <puts@plt>
  pop    %rbx
  xor    %eax,%eax
  pop    %rbp
  pop    %r12
  ret
```

tool_calls: name: read_data
arguments: label: D27
datatype: string
name: read_data
arguments: label: D93
datatype: string
name: read_data
arguments: label: D104
datatype: f64
name: read_data
arguments: label: D137
datatype: byte[8]
name: read_data
arguments: label: D110
datatype: string
name: read_data
arguments: label: D79
datatype: string
name: read_data
arguments: label: D68
datatype: f64
name: read_data
arguments: label: D2
datatype: string
name: read_data
arguments: label: D145
datatype: f64
name: read_data
arguments: label: D18
datatype: string
name: read_data
arguments: label: D114
datatype: f64
name: read_data
arguments: label: D41
datatype: string
name: read_data
arguments: label: D139
datatype: f64

tool: D27: int Y1164MIN16LS[256] = {

tool: D93: %d, 

tool: D104: 1.164

tool: {"D137": [0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x40]}

tool: D110: };


tool: D79: int V1596MIN128LS[256] = {

tool: D68: 1.596

tool: D2: int V0813MIN128LS[256] = {

tool: D145: 0.813

tool: D18: int U0392MIN128LS[256] = {

tool: D114: 0.392

tool: D41: int U2017MIN128LS[256] = {

tool: D139: 2.017

assistant: ```c
int main(int argc, char **argv) {
  const unsigned int uLeftShift = 15;
  unsigned int uLSVal = 1 << uLeftShift;
  int i = 0;
  printf("int Y1164MIN16LS[256] = {\n");
  for (i = 0; i < 256; i++) {
    int iRes = (int)(1.164 * (i - 16) * uLSVal);
    printf("%d, ", iRes);
    if ((i % 8) == 0)
      printf("\n");
  }
  printf("};\n\n");
  printf("int V1596MIN128LS[256] = {\n");
  for (i = 0; i < 256; i++) {
    int iRes = (int)(1.596 * (i - 128) * uLSVal);
    printf("%d, ", iRes);
    if ((i % 8) == 0)
      printf("\n");
  }
  printf("};\n\n");
  printf("int V0813MIN128LS[256] = {\n");
  for (i = 0; i < 256; i++) {
    int iRes = (int)(0.813 * (i - 128) * uLSVal);
    printf("%d, ", iRes);
    if ((i % 8) == 0)
      printf("\n");
  }
  printf("};\n\n");
  printf("int U0392MIN128LS[256] = {\n");
  for (i = 0; i < 256; i++) {
    int iRes = (int)(0.392 * (i - 128) * uLSVal);
    printf("%d, ", iRes);
    if ((i % 8) == 0)
      printf("\n");
  }
  printf("};\n\n");
  printf("int U2017MIN128LS[256] = {\n");
  for (i = 0; i < 256; i++) {
    int iRes = (int)(2.017 * (i - 128) * uLSVal);
    printf("%d, ", iRes);
    if ((i % 8) == 0)
      printf("\n");
  }
  printf("};\n\n");
  return 0;
}
```