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

```asm
<Get_var_itemsize>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x20,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    %rsi,-0x10(%rbp)
  mov    %rdx,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  lea    D80(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L86
  mov    -0x18(%rbp),%rax
  movl   $0x4,(%rax)
  jmp    L15
L86:
  mov    -0x10(%rbp),%rax
  lea    D49(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L192
  mov    -0x18(%rbp),%rax
  movl   $0x4,(%rax)
  jmp    L15
L192:
  mov    -0x10(%rbp),%rax
  lea    D55(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L174
  mov    -0x18(%rbp),%rax
  movl   $0x8,(%rax)
  jmp    L15
L174:
  mov    -0x10(%rbp),%rax
  lea    D69(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L161
  mov    -0x18(%rbp),%rax
  movl   $0x8,(%rax)
  jmp    L15
L161:
  mov    -0x10(%rbp),%rax
  lea    D51(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L68
  mov    -0x18(%rbp),%rax
  movl   $0x8,(%rax)
  jmp    L15
L68:
  mov    -0x10(%rbp),%rax
  lea    D24(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L54
  mov    -0x18(%rbp),%rax
  movl   $0x8,(%rax)
  jmp    L15
L54:
  mov    -0x10(%rbp),%rax
  lea    D90(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L167
  mov    -0x18(%rbp),%rax
  movl   $0x8,(%rax)
  jmp    L15
L167:
  mov    -0x10(%rbp),%rax
  lea    D81(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L41
  mov    -0x18(%rbp),%rax
  movl   $0x8,(%rax)
  jmp    L15
L41:
  mov    -0x10(%rbp),%rax
  lea    D60(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L110
  mov    -0x18(%rbp),%rax
  movl   $0x8,(%rax)
  jmp    L15
L110:
  mov    -0x10(%rbp),%rax
  lea    D28(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L209
  mov    -0x18(%rbp),%rax
  movl   $0x8,(%rax)
  jmp    L15
L209:
  mov    -0x18(%rbp),%rax
  movl   $0x0,(%rax)
  mov    $0x1,%eax
  jmp    L33
L15:
  mov    $0x0,%eax
L33:
  leave
  ret
```

tool_calls: name: unpack_data
arguments: data_label: D80
type: string
name: unpack_data
arguments: data_label: D49
type: string
name: unpack_data
arguments: data_label: D55
type: string
name: unpack_data
arguments: data_label: D69
type: string
name: unpack_data
arguments: data_label: D51
type: string
name: unpack_data
arguments: data_label: D24
type: string
name: unpack_data
arguments: data_label: D90
type: string
name: unpack_data
arguments: data_label: D81
type: string
name: unpack_data
arguments: data_label: D60
type: string
name: unpack_data
arguments: data_label: D28
type: string

tool: D80: model_grid_cell__row_index

tool: D49: model_grid_cell__column_index

tool: D55: cyclone__magnitude_of_velocity

tool: D69: cyclone__azimuth_angle_of_velocity

tool: D51: atmosphere_bottom_air__pressure

tool: D24: atmosphere_bottom_air__reference_pressure

tool: D90: cyclone_air_flow_max_speed__radius

tool: D81: cyclone__radius

tool: D60: atmosphere_air_flow__east_component_of_velocity

tool: D28: atmosphere_air_flow__north_component_of_velocity

assistant: ```c
int Get_var_itemsize(void *self, const char *name, int *itemsize) {
  if (strcmp(name, "model_grid_cell__row_index") == 0) {
    *itemsize = sizeof(int);
  } else if (strcmp(name, "model_grid_cell__column_index") == 0) {
    *itemsize = sizeof(int);
  } else if (strcmp(name, "cyclone__magnitude_of_velocity") == 0) {
    *itemsize = sizeof(double);
  } else if (strcmp(name, "cyclone__azimuth_angle_of_velocity") == 0) {
    *itemsize = sizeof(double);
  } else if (strcmp(name, "atmosphere_bottom_air__pressure") == 0) {
    *itemsize = sizeof(double);
  } else if (strcmp(name, "atmosphere_bottom_air__reference_pressure") == 0) {
    *itemsize = sizeof(double);
  } else if (strcmp(name, "cyclone_air_flow_max_speed__radius") == 0) {
    *itemsize = sizeof(double);
  } else if (strcmp(name, "cyclone__radius") == 0) {
    *itemsize = sizeof(double);
  } else if (strcmp(name, "atmosphere_air_flow__east_component_of_velocity") == 0) {
    *itemsize = sizeof(double);
  } else if (strcmp(name, "atmosphere_air_flow__north_component_of_velocity") == 0) {
    *itemsize = sizeof(double);
  } else {
    *itemsize = 0;
    return (1);
  }
  return (0);
}
```