user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<test_polynomial_parse>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  movl   $0x0,-0x4(%rbp)
  mov    $0x2,%edx
  lea    D175(%rip),%rax
  mov    %rax,%rsi
  lea    D152(%rip),%rax
  mov    %rax,%rdi
  call   <check_polynomial_parse@plt>
  mov    %eax,%edx
  mov    -0x4(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x4(%rbp)
  mov    $0x4,%edx
  lea    D201(%rip),%rax
  mov    %rax,%rsi
  lea    D80(%rip),%rax
  mov    %rax,%rdi
  call   <check_polynomial_parse@plt>
  mov    %eax,%edx
  mov    -0x4(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x4(%rbp)
  mov    $0x3,%edx
  lea    D107(%rip),%rax
  mov    %rax,%rsi
  lea    D5(%rip),%rax
  mov    %rax,%rdi
  call   <check_polynomial_parse@plt>
  mov    %eax,%edx
  mov    -0x4(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x4(%rbp)
  mov    $0x2,%edx
  lea    D24(%rip),%rax
  mov    %rax,%rsi
  lea    D5(%rip),%rax
  mov    %rax,%rdi
  call   <check_polynomial_parse@plt>
  mov    %eax,%edx
  mov    -0x4(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x4(%rbp)
  mov    $0x1,%edx
  lea    D79(%rip),%rax
  mov    %rax,%rsi
  lea    D5(%rip),%rax
  mov    %rax,%rdi
  call   <check_polynomial_parse@plt>
  mov    %eax,%edx
  mov    -0x4(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x4(%rbp)
  mov    $0x2,%edx
  lea    D120(%rip),%rax
  mov    %rax,%rsi
  lea    D227(%rip),%rax
  mov    %rax,%rdi
  call   <check_polynomial_parse@plt>
  mov    %eax,%edx
  mov    -0x4(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x4(%rbp)
  mov    $0x1,%edx
  lea    D66(%rip),%rax
  mov    %rax,%rsi
  lea    D35(%rip),%rax
  mov    %rax,%rdi
  call   <check_polynomial_parse@plt>
  mov    %eax,%edx
  mov    -0x4(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x4(%rbp)
  mov    $0x0,%edx
  lea    D134(%rip),%rax
  mov    %rax,%rsi
  lea    D47(%rip),%rax
  mov    %rax,%rdi
  call   <check_polynomial_parse@plt>
  mov    %eax,%edx
  mov    -0x4(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x4(%rbp)
  mov    $0x0,%edx
  lea    D142(%rip),%rax
  mov    %rax,%rsi
  lea    D101(%rip),%rax
  mov    %rax,%rdi
  call   <check_polynomial_parse@plt>
  mov    %eax,%edx
  mov    -0x4(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x4(%rbp)
  mov    $0x0,%edx
  lea    D119(%rip),%rax
  mov    %rax,%rsi
  lea    D67(%rip),%rax
  mov    %rax,%rdi
  call   <check_polynomial_parse@plt>
  mov    %eax,%edx
  mov    -0x4(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x4(%rbp)
  mov    $0x0,%edx
  lea    D198(%rip),%rax
  mov    %rax,%rsi
  lea    D104(%rip),%rax
  mov    %rax,%rdi
  call   <check_polynomial_parse@plt>
  mov    %eax,%edx
  mov    -0x4(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x4(%rbp)
  mov    $0x0,%edx
  lea    D142(%rip),%rax
  mov    %rax,%rsi
  lea    D142(%rip),%rax
  mov    %rax,%rdi
  call   <check_polynomial_parse@plt>
  mov    %eax,%edx
  mov    -0x4(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x4(%rbp)
  mov    $0x0,%edx
  lea    D119(%rip),%rax
  mov    %rax,%rsi
  lea    D119(%rip),%rax
  mov    %rax,%rdi
  call   <check_polynomial_parse@plt>
  mov    %eax,%edx
  mov    -0x4(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x4(%rbp)
  mov    -0x4(%rbp),%eax
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D175
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D152
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D201
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D80
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D107
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D5
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D24
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D79
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D120
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D227
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D66
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D35
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D134
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D47
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D142
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D101
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D119
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D67
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D198
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D104
type_infered: string

tool: D175: 2.00x^2.00+3.00

tool: D152: 2x^2+3

tool: D201: 32433.0330x^2.2002+2.0000x+3.1452

tool: D80: 32433.033x^2.2002+2x+3.1452

tool: D107: x^32.225+23.320x^2.020+233.000

tool: D5: x^32.225+23.32x^2.02+233

tool: D24: x^32.23+23.32x^2.02+233.00

tool: D79: x^32.2+23.3x^2.0+233.0

tool: D120: x^3.00-x^2.00-x-2.00

tool: D227: x^3-x^2-x-2

tool: D66: -6.6x-7.7-2.2x^-3.3-4.4x^-5.5

tool: D35: -2.2x^-3.3-4.4x^-5.5-6.6x-7.7

tool: D134: 5x

tool: D47: x+x+x+x+x

tool: D142: x

tool: D101: x+x+x+x+x-x-x-x-x

tool: D119: 0

tool: D67: x+x+x+x+x-x-x-x-x-x

tool: D198: x^3

tool: D104: x^3+x^3-x^3

assistant: ```c
int test_polynomial_parse() {
  int ret = 0;
  ret += check_polynomial_parse("2x^2+3", "2.00x^2.00+3.00", 2);
  ret += check_polynomial_parse("32433.033x^2.2002+2x+3.1452", "32433.0330x^2.2002+2.0000x+3.1452", 4);
  ret += check_polynomial_parse("x^32.225+23.32x^2.02+233", "x^32.225+23.320x^2.020+233.000", 3);
  ret += check_polynomial_parse("x^32.225+23.32x^2.02+233", "x^32.23+23.32x^2.02+233.00", 2);
  ret += check_polynomial_parse("x^32.225+23.32x^2.02+233", "x^32.2+23.3x^2.0+233.0", 1);
  ret += check_polynomial_parse("x^3-x^2-x-2", "x^3.00-x^2.00-x-2.00", 2);
  ret += check_polynomial_parse("-2.2x^-3.3-4.4x^-5.5-6.6x-7.7", "-6.6x-7.7-2.2x^-3.3-4.4x^-5.5", 1);
  ret += check_polynomial_parse("x+x+x+x+x", "5x", 0);
  ret += check_polynomial_parse("x+x+x+x+x-x-x-x-x", "x", 0);
  ret += check_polynomial_parse("x+x+x+x+x-x-x-x-x-x", "0", 0);
  ret += check_polynomial_parse("x^3+x^3-x^3", "x^3", 0);
  ret += check_polynomial_parse("x", "x", 0);
  ret += check_polynomial_parse("0", "0", 0);
  return ret;
}
```