user: 这段汇编代码用C语言表示是什么样的？

```asm
<PackShape>:
  endbr64
  push   %rbp
  lea    D39(%rip),%rsi
  mov    %rdi,%rbp
  call   <strcmp@plt>
  movsd  D111(%rip),%xmm0
  test   %rax,%rax
  jne    L124
L88:
  pop    %rbp
  ret
  nopl   0x0(%rax,%rax,1)
L124:
  lea    D43(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  movsd  D240(%rip),%xmm0
  test   %rax,%rax
  je     L88
  lea    D185(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  movsd  D135(%rip),%xmm0
  test   %rax,%rax
  je     L88
  lea    D148(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  movsd  D177(%rip),%xmm0
  test   %rax,%rax
  je     L88
  lea    D128(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  movsd  D216(%rip),%xmm0
  test   %rax,%rax
  je     L88
  lea    D170(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  movsd  D53(%rip),%xmm0
  test   %rax,%rax
  je     L88
  lea    D50(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  movsd  D90(%rip),%xmm0
  test   %rax,%rax
  je     L88
  lea    D123(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  movsd  D139(%rip),%xmm0
  test   %rax,%rax
  je     L88
  lea    D178(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  movsd  D109(%rip),%xmm0
  test   %rax,%rax
  je     L88
  lea    D138(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  movsd  D16(%rip),%xmm0
  test   %rax,%rax
  je     L88
  lea    D15(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  movsd  D188(%rip),%xmm0
  test   %rax,%rax
  je     L88
  lea    D74(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L30
  lea    D183(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L28
L30:
  movsd  D172(%rip),%xmm0
  pop    %rbp
  ret
L28:
  mov    %rbp,%rdi
  call   <atoi@plt>
  pop    %rbp
  addsd  D150(%rip),%xmm0
  ret
```

tool_calls: name: extract_symbolic_data
arguments: label: D39
datatype: string
name: extract_symbolic_data
arguments: label: D111
datatype: f64
name: extract_symbolic_data
arguments: label: D43
datatype: string
name: extract_symbolic_data
arguments: label: D240
datatype: f64
name: extract_symbolic_data
arguments: label: D185
datatype: string
name: extract_symbolic_data
arguments: label: D135
datatype: f64
name: extract_symbolic_data
arguments: label: D148
datatype: string
name: extract_symbolic_data
arguments: label: D177
datatype: f64
name: extract_symbolic_data
arguments: label: D128
datatype: string
name: extract_symbolic_data
arguments: label: D216
datatype: f64
name: extract_symbolic_data
arguments: label: D170
datatype: string
name: extract_symbolic_data
arguments: label: D53
datatype: f64
name: extract_symbolic_data
arguments: label: D50
datatype: string
name: extract_symbolic_data
arguments: label: D90
datatype: f64
name: extract_symbolic_data
arguments: label: D123
datatype: string
name: extract_symbolic_data
arguments: label: D139
datatype: f64
name: extract_symbolic_data
arguments: label: D178
datatype: string
name: extract_symbolic_data
arguments: label: D109
datatype: f64
name: extract_symbolic_data
arguments: label: D138
datatype: string
name: extract_symbolic_data
arguments: label: D16
datatype: f64
name: extract_symbolic_data
arguments: label: D15
datatype: string
name: extract_symbolic_data
arguments: label: D188
datatype: f64
name: extract_symbolic_data
arguments: label: D74
datatype: string
name: extract_symbolic_data
arguments: label: D183
datatype: string
name: extract_symbolic_data
arguments: label: D172
datatype: f64
name: extract_symbolic_data
arguments: label: D150
datatype: f64

tool: D39: box

tool: D111: 101

tool: D43: sphere

tool: D240: 102

tool: D185: cylinder

tool: D135: 103

tool: D148: cone

tool: D177: 104

tool: D128: pipe

tool: D216: 105

tool: D170: beam

tool: D53: 106

tool: D50: wirebox

tool: D90: 107

tool: D123: gearwheel

tool: D139: 108

tool: D178: vector

tool: D109: 109

tool: D138: pipecylinder

tool: D16: 110

tool: D15: spring

tool: D188: 111

tool: D74: tire

tool: D183: tyre

tool: D172: 112

tool: D150: 200

assistant: ```c
double PackShape(char *shapename) {
  if (strcmp(shapename, "box") == 0)
    return 101.0;
  else if (strcmp(shapename, "sphere") == 0)
    return 102.0;
  else if (strcmp(shapename, "cylinder") == 0)
    return 103.0;
  else if (strcmp(shapename, "cone") == 0)
    return 104.0;
  else if (strcmp(shapename, "pipe") == 0)
    return 105.0;
  else if (strcmp(shapename, "beam") == 0)
    return 106.0;
  else if (strcmp(shapename, "wirebox") == 0)
    return 107.0;
  else if (strcmp(shapename, "gearwheel") == 0)
    return 108.0;
  else if (strcmp(shapename, "vector") == 0)
    return 109.0;
  else if (strcmp(shapename, "pipecylinder") == 0)
    return 110.0;
  else if (strcmp(shapename, "spring") == 0)
    return 111.0;
  else if (strcmp(shapename, "tire") == 0 || strcmp(shapename, "tyre") == 0)
    return 112.0;
  else {
    return 200.0 + atoi(shapename);
  }
}
```