user: What would the C source look like for the assembly code provided here?

```asm
<PackShape>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    -0x8(%rbp),%rax
  lea    D242(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L25
  movsd  D197(%rip),%xmm0
  jmp    L131
L25:
  mov    -0x8(%rbp),%rax
  lea    D208(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L211
  movsd  D176(%rip),%xmm0
  jmp    L131
L211:
  mov    -0x8(%rbp),%rax
  lea    D85(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L186
  movsd  D63(%rip),%xmm0
  jmp    L131
L186:
  mov    -0x8(%rbp),%rax
  lea    D11(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L171
  movsd  D113(%rip),%xmm0
  jmp    L131
L171:
  mov    -0x8(%rbp),%rax
  lea    D41(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L48
  movsd  D181(%rip),%xmm0
  jmp    L131
L48:
  mov    -0x8(%rbp),%rax
  lea    D167(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L58
  movsd  D71(%rip),%xmm0
  jmp    L131
L58:
  mov    -0x8(%rbp),%rax
  lea    D15(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L172
  movsd  D147(%rip),%xmm0
  jmp    L131
L172:
  mov    -0x8(%rbp),%rax
  lea    D138(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L59
  movsd  D185(%rip),%xmm0
  jmp    L131
L59:
  mov    -0x8(%rbp),%rax
  lea    D106(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L99
  movsd  D127(%rip),%xmm0
  jmp    L131
L99:
  mov    -0x8(%rbp),%rax
  lea    D89(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L142
  movsd  D47(%rip),%xmm0
  jmp    L131
L142:
  mov    -0x8(%rbp),%rax
  lea    D34(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L223
  movsd  D3(%rip),%xmm0
  jmp    L131
L223:
  mov    -0x8(%rbp),%rax
  lea    D76(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L16
  mov    -0x8(%rbp),%rax
  lea    D131(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L14
L16:
  movsd  D49(%rip),%xmm0
  jmp    L131
L14:
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <atoi@plt>
  movsd  D201(%rip),%xmm1
  addsd  %xmm1,%xmm0
L131:
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  leave
  ret
```

tool_calls: name: read_data
arguments: data_label: D242
type: string
name: read_data
arguments: data_label: D197
type: f64
name: read_data
arguments: data_label: D208
type: string
name: read_data
arguments: data_label: D176
type: f64
name: read_data
arguments: data_label: D85
type: string
name: read_data
arguments: data_label: D63
type: f64
name: read_data
arguments: data_label: D11
type: string
name: read_data
arguments: data_label: D113
type: f64
name: read_data
arguments: data_label: D41
type: string
name: read_data
arguments: data_label: D181
type: f64
name: read_data
arguments: data_label: D167
type: string
name: read_data
arguments: data_label: D71
type: f64
name: read_data
arguments: data_label: D15
type: string
name: read_data
arguments: data_label: D147
type: f64
name: read_data
arguments: data_label: D138
type: string
name: read_data
arguments: data_label: D185
type: f64
name: read_data
arguments: data_label: D106
type: string
name: read_data
arguments: data_label: D127
type: f64
name: read_data
arguments: data_label: D89
type: string
name: read_data
arguments: data_label: D47
type: f64
name: read_data
arguments: data_label: D34
type: string
name: read_data
arguments: data_label: D3
type: f64
name: read_data
arguments: data_label: D76
type: string
name: read_data
arguments: data_label: D131
type: string
name: read_data
arguments: data_label: D49
type: f64
name: read_data
arguments: data_label: D201
type: f64

tool: D242: box

tool: D197: 101

tool: D208: sphere

tool: D176: 102

tool: D85: cylinder

tool: D63: 103

tool: D11: cone

tool: D113: 104

tool: D41: pipe

tool: D181: 105

tool: D167: beam

tool: D71: 106

tool: D15: wirebox

tool: D147: 107

tool: D138: gearwheel

tool: D185: 108

tool: D106: vector

tool: D127: 109

tool: D89: pipecylinder

tool: D47: 110

tool: D34: spring

tool: D3: 111

tool: D76: tire

tool: D131: tyre

tool: D49: 112

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