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

```asm
<main>:
  endbr64
  push   %r12
  lea    D32(%rip),%rdi
  push   %rbp
  xor    %ebp,%ebp
  push   %rbx
  lea    D64(%rip),%rbx
  call   <puts@plt>
  jmp    L175
  nop
L47:
  add    $0x1,%ebp
  cmp    $0x100,%ebp
  je     L131
L175:
  lea    -0x10(%rbp),%eax
  pxor   %xmm0,%xmm0
  mov    %rbx,%rdi
  cvtsi2sd %eax,%xmm0
  mulsd  D119(%rip),%xmm0
  xor    %eax,%eax
  mulsd  D110(%rip),%xmm0
  cvttsd2si %xmm0,%esi
  call   <printf@plt>
  test   $0x7,%bpl
  jne    L47
  mov    $0xa,%edi
  add    $0x1,%ebp
  call   <putchar@plt>
  cmp    $0x100,%ebp
  jne    L175
L131:
  lea    D51(%rip),%rbp
  xor    %r12d,%r12d
  mov    %rbp,%rdi
  call   <puts@plt>
  lea    D47(%rip),%rdi
  call   <puts@plt>
  jmp    L121
  nop
L188:
  add    $0x1,%r12d
  cmp    $0x100,%r12d
  je     L142
L121:
  lea    -0x80(%r12),%eax
  pxor   %xmm0,%xmm0
  mov    %rbx,%rdi
  cvtsi2sd %eax,%xmm0
  mulsd  D82(%rip),%xmm0
  xor    %eax,%eax
  mulsd  D110(%rip),%xmm0
  cvttsd2si %xmm0,%esi
  call   <printf@plt>
  test   $0x7,%r12b
  jne    L188
  mov    $0xa,%edi
  add    $0x1,%r12d
  call   <putchar@plt>
  cmp    $0x100,%r12d
  jne    L121
L142:
  mov    %rbp,%rdi
  xor    %r12d,%r12d
  call   <puts@plt>
  lea    D122(%rip),%rdi
  call   <puts@plt>
  jmp    L22
  xchg   %ax,%ax
L198:
  add    $0x1,%r12d
  cmp    $0x100,%r12d
  je     L164
L22:
  lea    -0x80(%r12),%eax
  pxor   %xmm0,%xmm0
  mov    %rbx,%rdi
  cvtsi2sd %eax,%xmm0
  mulsd  D72(%rip),%xmm0
  xor    %eax,%eax
  mulsd  D110(%rip),%xmm0
  cvttsd2si %xmm0,%esi
  call   <printf@plt>
  test   $0x7,%r12b
  jne    L198
  mov    $0xa,%edi
  add    $0x1,%r12d
  call   <putchar@plt>
  cmp    $0x100,%r12d
  jne    L22
L164:
  mov    %rbp,%rdi
  xor    %r12d,%r12d
  call   <puts@plt>
  lea    D39(%rip),%rdi
  call   <puts@plt>
  jmp    L34
  xchg   %ax,%ax
L26:
  add    $0x1,%r12d
  cmp    $0x100,%r12d
  je     L70
L34:
  lea    -0x80(%r12),%eax
  pxor   %xmm0,%xmm0
  mov    %rbx,%rdi
  cvtsi2sd %eax,%xmm0
  mulsd  D46(%rip),%xmm0
  xor    %eax,%eax
  mulsd  D110(%rip),%xmm0
  cvttsd2si %xmm0,%esi
  call   <printf@plt>
  test   $0x7,%r12b
  jne    L26
  mov    $0xa,%edi
  add    $0x1,%r12d
  call   <putchar@plt>
  cmp    $0x100,%r12d
  jne    L34
L70:
  mov    %rbp,%rdi
  xor    %r12d,%r12d
  call   <puts@plt>
  lea    D163(%rip),%rdi
  call   <puts@plt>
  jmp    L29
  xchg   %ax,%ax
L16:
  add    $0x1,%r12d
  cmp    $0x100,%r12d
  je     L165
L29:
  lea    -0x80(%r12),%eax
  pxor   %xmm0,%xmm0
  mov    %rbx,%rdi
  cvtsi2sd %eax,%xmm0
  mulsd  D154(%rip),%xmm0
  xor    %eax,%eax
  mulsd  D110(%rip),%xmm0
  cvttsd2si %xmm0,%esi
  call   <printf@plt>
  test   $0x7,%r12b
  jne    L16
  mov    $0xa,%edi
  add    $0x1,%r12d
  call   <putchar@plt>
  cmp    $0x100,%r12d
  jne    L29
L165:
  mov    %rbp,%rdi
  call   <puts@plt>
  pop    %rbx
  xor    %eax,%eax
  pop    %rbp
  pop    %r12
  ret
```

tool_calls: name: disassemble_data
arguments: data_tag: D32
type: string
name: disassemble_data
arguments: data_tag: D64
type: string
name: disassemble_data
arguments: data_tag: D119
type: f64
name: disassemble_data
arguments: data_tag: D110
type: byte[8]
name: disassemble_data
arguments: data_tag: D51
type: string
name: disassemble_data
arguments: data_tag: D47
type: string
name: disassemble_data
arguments: data_tag: D82
type: f64
name: disassemble_data
arguments: data_tag: D122
type: string
name: disassemble_data
arguments: data_tag: D72
type: f64
name: disassemble_data
arguments: data_tag: D39
type: string
name: disassemble_data
arguments: data_tag: D46
type: f64
name: disassemble_data
arguments: data_tag: D163
type: string
name: disassemble_data
arguments: data_tag: D154
type: f64

tool: D32: int Y1164MIN16LS[256] = {

tool: D64: %d, 

tool: D119: 1.164

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

tool: D51: };


tool: D47: int V1596MIN128LS[256] = {

tool: D82: 1.596

tool: D122: int V0813MIN128LS[256] = {

tool: D72: 0.813

tool: D39: int U0392MIN128LS[256] = {

tool: D46: 0.392

tool: D163: int U2017MIN128LS[256] = {

tool: D154: 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;
}
```