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

```asm
<binaryOps>:
  endbr64
  push   %r14
  lea    D256(%rip),%rdi
  lea    D104(%rip),%r14
  push   %r13
  lea    D622(%rip),%r13
  push   %r12
  lea    D378(%rip),%r12
  push   %rbp
  lea    D119(%rip),%rbp
  sub    $0x8,%rsp
  call   <puts@plt>
  mov    D27(%rip),%rax
  movsd  D54(%rip),%xmm3
  mov    %r14,%rdi
  movq   %rax,%xmm2
  mov    D274(%rip),%rax
  movapd %xmm3,%xmm1
  movq   %rax,%xmm0
  mov    $0x3,%eax
  call   <printf@plt>
  mov    D12(%rip),%rax
  mov    %r13,%rdi
  movq   %rax,%xmm2
  mov    D54(%rip),%rax
  movq   %rax,%xmm1
  mov    D274(%rip),%rax
  movq   %rax,%xmm0
  mov    $0x3,%eax
  call   <printf@plt>
  mov    D54(%rip),%rax
  mov    %r12,%rdi
  movq   %rax,%xmm2
  movq   %rax,%xmm1
  mov    D274(%rip),%rax
  movq   %rax,%xmm0
  mov    $0x3,%eax
  call   <printf@plt>
  mov    D627(%rip),%rax
  mov    %rbp,%rdi
  movq   %rax,%xmm2
  mov    D54(%rip),%rax
  movq   %rax,%xmm1
  mov    D274(%rip),%rax
  movq   %rax,%xmm0
  mov    $0x3,%eax
  call   <printf@plt>
  lea    D451(%rip),%rdi
  call   <puts@plt>
  mov    D27(%rip),%rax
  mov    %r14,%rdi
  movq   %rax,%xmm2
  mov    D54(%rip),%rax
  movq   %rax,%xmm1
  mov    D274(%rip),%rax
  movq   %rax,%xmm0
  mov    $0x3,%eax
  call   <printf@plt>
  mov    D12(%rip),%rax
  mov    %r13,%rdi
  movq   %rax,%xmm2
  mov    D54(%rip),%rax
  movq   %rax,%xmm1
  mov    D274(%rip),%rax
  movq   %rax,%xmm0
  mov    $0x3,%eax
  call   <printf@plt>
  mov    D54(%rip),%rax
  mov    %r12,%rdi
  movq   %rax,%xmm2
  movq   %rax,%xmm1
  mov    D274(%rip),%rax
  movq   %rax,%xmm0
  mov    $0x3,%eax
  call   <printf@plt>
  mov    D627(%rip),%rax
  mov    %rbp,%rdi
  movq   %rax,%xmm2
  mov    D54(%rip),%rax
  movq   %rax,%xmm1
  mov    D274(%rip),%rax
  movq   %rax,%xmm0
  mov    $0x3,%eax
  call   <printf@plt>
  lea    D267(%rip),%rdi
  call   <puts@plt>
  mov    D27(%rip),%rax
  mov    %r14,%rdi
  movq   %rax,%xmm2
  mov    D54(%rip),%rax
  movq   %rax,%xmm1
  mov    D274(%rip),%rax
  movq   %rax,%xmm0
  mov    $0x3,%eax
  call   <printf@plt>
  mov    D12(%rip),%rax
  mov    %r13,%rdi
  movq   %rax,%xmm2
  mov    D54(%rip),%rax
  movq   %rax,%xmm1
  mov    D274(%rip),%rax
  movq   %rax,%xmm0
  mov    $0x3,%eax
  call   <printf@plt>
  mov    D54(%rip),%rax
  mov    %r12,%rdi
  movq   %rax,%xmm2
  movq   %rax,%xmm1
  mov    D274(%rip),%rax
  movq   %rax,%xmm0
  mov    $0x3,%eax
  call   <printf@plt>
  mov    D627(%rip),%rax
  mov    %rbp,%rdi
  movq   %rax,%xmm2
  mov    D54(%rip),%rax
  movq   %rax,%xmm1
  mov    D274(%rip),%rax
  movq   %rax,%xmm0
  mov    $0x3,%eax
  call   <printf@plt>
  lea    D581(%rip),%rdi
  call   <puts@plt>
  mov    D27(%rip),%rax
  mov    $0x2,%esi
  lea    D494(%rip),%rdi
  movq   %rax,%xmm1
  mov    D274(%rip),%rax
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <printf@plt>
  mov    D12(%rip),%rax
  mov    $0x2,%esi
  lea    D88(%rip),%rdi
  movq   %rax,%xmm1
  mov    D274(%rip),%rax
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <printf@plt>
  mov    D54(%rip),%rax
  mov    $0x2,%esi
  lea    D72(%rip),%rdi
  movq   %rax,%xmm1
  mov    D274(%rip),%rax
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <printf@plt>
  mov    D627(%rip),%rax
  mov    $0x2,%esi
  lea    D278(%rip),%rdi
  movq   %rax,%xmm1
  mov    D274(%rip),%rax
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <printf@plt>
  lea    D441(%rip),%rdi
  call   <puts@plt>
  mov    D27(%rip),%rax
  mov    $0x1,%esi
  lea    D310(%rip),%rdi
  movq   %rax,%xmm1
  mov    D54(%rip),%rax
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <printf@plt>
  mov    D12(%rip),%rax
  mov    $0x1,%esi
  lea    D221(%rip),%rdi
  movq   %rax,%xmm1
  mov    D54(%rip),%rax
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <printf@plt>
  mov    D54(%rip),%rax
  mov    $0x1,%esi
  lea    D270(%rip),%rdi
  movq   %rax,%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <printf@plt>
  mov    D627(%rip),%rax
  mov    $0x1,%esi
  lea    D17(%rip),%rdi
  movq   %rax,%xmm1
  mov    D54(%rip),%rax
  add    $0x8,%rsp
  pop    %rbp
  pop    %r12
  movq   %rax,%xmm0
  pop    %r13
  mov    $0x2,%eax
  pop    %r14
  jmp    1070 <printf@plt>
```

tool_calls: name: extract_symbolic_data
arguments: label: D256
datatype: string
name: extract_symbolic_data
arguments: label: D104
datatype: string
name: extract_symbolic_data
arguments: label: D622
datatype: string
name: extract_symbolic_data
arguments: label: D378
datatype: string
name: extract_symbolic_data
arguments: label: D119
datatype: string
name: extract_symbolic_data
arguments: label: D27
datatype: byte[8]
name: extract_symbolic_data
arguments: label: D54
datatype: f64
name: extract_symbolic_data
arguments: label: D274
datatype: f64
name: extract_symbolic_data
arguments: label: D12
datatype: byte[8]
name: extract_symbolic_data
arguments: label: D627
datatype: byte[8]
name: extract_symbolic_data
arguments: label: D451
datatype: string
name: extract_symbolic_data
arguments: label: D267
datatype: string
name: extract_symbolic_data
arguments: label: D581
datatype: string
name: extract_symbolic_data
arguments: label: D494
datatype: string
name: extract_symbolic_data
arguments: label: D88
datatype: string
name: extract_symbolic_data
arguments: label: D72
datatype: string
name: extract_symbolic_data
arguments: label: D278
datatype: string
name: extract_symbolic_data
arguments: label: D441
datatype: string
name: extract_symbolic_data
arguments: label: D310
datatype: string
name: extract_symbolic_data
arguments: label: D221
datatype: string
name: extract_symbolic_data
arguments: label: D270
datatype: string
name: extract_symbolic_data
arguments: label: D17
datatype: string

tool: D256: double op double:

tool: D104: %g + %g = %g


tool: D622: %g - %g = %g


tool: D378: %g * %g = %g


tool: D119: %g / %g = %g


tool: {"D27": [0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x40]}

tool: D54: 2

tool: D274: 1

tool: {"D12": [0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xbf]}

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

tool: D451: float op float:

tool: D267: double op float:

tool: D581: double op int:

tool: D494: %g + %d = %g


tool: D88: %g - %d = %g


tool: D72: %g * %d = %g


tool: D278: %g / %d = %g


tool: D441: int op double:

tool: D310: %d + %g = %g


tool: D221: %d - %g = %g


tool: D270: %d * %g = %g


tool: D17: %d / %g = %g


assistant: ```c
void binaryOps() {
  printf("double op double:\n");
  printf("%g + %g = %g\n", 1.0, 2.0, 1.0 + 2.0);
  printf("%g - %g = %g\n", 1.0, 2.0, 1.0 - 2.0);
  printf("%g * %g = %g\n", 1.0, 2.0, 1.0 * 2.0);
  printf("%g / %g = %g\n", 1.0, 2.0, 1.0 / 2.0);
  printf("float op float:\n");
  printf("%g + %g = %g\n", 1.0f, 2.0f, 1.0f + 2.0f);
  printf("%g - %g = %g\n", 1.0f, 2.0f, 1.0f - 2.0f);
  printf("%g * %g = %g\n", 1.0f, 2.0f, 1.0f * 2.0f);
  printf("%g / %g = %g\n", 1.0f, 2.0f, 1.0f / 2.0f);
  printf("double op float:\n");
  printf("%g + %g = %g\n", 1.0, 2.0f, 1.0 + 2.0f);
  printf("%g - %g = %g\n", 1.0, 2.0f, 1.0 - 2.0f);
  printf("%g * %g = %g\n", 1.0, 2.0f, 1.0 * 2.0f);
  printf("%g / %g = %g\n", 1.0, 2.0f, 1.0 / 2.0f);
  printf("double op int:\n");
  printf("%g + %d = %g\n", 1.0, 2, 1.0 + 2);
  printf("%g - %d = %g\n", 1.0, 2, 1.0 - 2);
  printf("%g * %d = %g\n", 1.0, 2, 1.0 * 2);
  printf("%g / %d = %g\n", 1.0, 2, 1.0 / 2);
  printf("int op double:\n");
  printf("%d + %g = %g\n", 1, 2.0, 1 + 2.0);
  printf("%d - %g = %g\n", 1, 2.0, 1 - 2.0);
  printf("%d * %g = %g\n", 1, 2.0, 1 * 2.0);
  printf("%d / %g = %g\n", 1, 2.0, 1 / 2.0);
}
```