user: Translate the below assembly code into C programming language:

```asm
<Get_var_units>:
  endbr64
  push   %rbp
  push   %rbx
  sub    $0x8,%rsp
  mov    %rsi,%rbx
  mov    %rdx,%rbp
  lea    D158(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L95
  lea    D53(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L189
  lea    D45(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L71
  lea    D33(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L90
  lea    D10(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L17
  lea    D122(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L22
  lea    D172(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L106
  lea    D34(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L8
  lea    D130(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L105
  lea    D113(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L74
  movb   $0x0,0x0(%rbp)
  mov    $0x1,%eax
  jmp    L141
L95:
  mov    $0x800,%edx
  lea    D185(%rip),%rsi
  mov    %rbp,%rdi
  call   <strncpy@plt>
  mov    $0x0,%eax
L141:
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  ret
L189:
  mov    $0x800,%edx
  lea    D185(%rip),%rsi
  mov    %rbp,%rdi
  call   <strncpy@plt>
  mov    $0x0,%eax
  jmp    L141
L71:
  mov    $0x800,%edx
  lea    D67(%rip),%rsi
  mov    %rbp,%rdi
  call   <strncpy@plt>
  mov    $0x0,%eax
  jmp    L141
L90:
  mov    $0x800,%edx
  lea    D139(%rip),%rsi
  mov    %rbp,%rdi
  call   <strncpy@plt>
  mov    $0x0,%eax
  jmp    L141
L17:
  mov    $0x800,%edx
  lea    D171(%rip),%rsi
  mov    %rbp,%rdi
  call   <strncpy@plt>
  mov    $0x0,%eax
  jmp    L141
L22:
  mov    $0x800,%edx
  lea    D171(%rip),%rsi
  mov    %rbp,%rdi
  call   <strncpy@plt>
  mov    $0x0,%eax
  jmp    L141
L106:
  mov    $0x800,%edx
  lea    D149(%rip),%rsi
  mov    %rbp,%rdi
  call   <strncpy@plt>
  mov    $0x0,%eax
  jmp    L141
L8:
  mov    $0x800,%edx
  lea    D149(%rip),%rsi
  mov    %rbp,%rdi
  call   <strncpy@plt>
  mov    $0x0,%eax
  jmp    L141
L105:
  mov    $0x800,%edx
  lea    D67(%rip),%rsi
  mov    %rbp,%rdi
  call   <strncpy@plt>
  mov    $0x0,%eax
  jmp    L141
L74:
  mov    $0x800,%edx
  lea    D67(%rip),%rsi
  mov    %rbp,%rdi
  call   <strncpy@plt>
  mov    $0x0,%eax
  jmp    L141
```

tool_calls: name: disassemble_data
arguments: data_tag: D158
type_infered: string
name: disassemble_data
arguments: data_tag: D53
type_infered: string
name: disassemble_data
arguments: data_tag: D45
type_infered: string
name: disassemble_data
arguments: data_tag: D33
type_infered: string
name: disassemble_data
arguments: data_tag: D10
type_infered: string
name: disassemble_data
arguments: data_tag: D122
type_infered: string
name: disassemble_data
arguments: data_tag: D172
type_infered: string
name: disassemble_data
arguments: data_tag: D34
type_infered: string
name: disassemble_data
arguments: data_tag: D130
type_infered: string
name: disassemble_data
arguments: data_tag: D113
type_infered: string
name: disassemble_data
arguments: data_tag: D185
type_infered: string
name: disassemble_data
arguments: data_tag: D67
type_infered: string
name: disassemble_data
arguments: data_tag: D139
type_infered: string
name: disassemble_data
arguments: data_tag: D171
type_infered: string
name: disassemble_data
arguments: data_tag: D149
type_infered: string

tool: D158: model_grid_cell__row_index

tool: D53: model_grid_cell__column_index

tool: D45: cyclone__magnitude_of_velocity

tool: D33: cyclone__azimuth_angle_of_velocity

tool: D10: atmosphere_bottom_air__pressure

tool: D122: atmosphere_bottom_air__reference_pressure

tool: D172: cyclone_air_flow_max_speed__radius

tool: D34: cyclone__radius

tool: D130: atmosphere_air_flow__east_component_of_velocity

tool: D113: atmosphere_air_flow__north_component_of_velocity

tool: D185: count

tool: D67: meters second-1

tool: D139: degrees

tool: D171: pascals

tool: D149: meters

assistant: ```c
int Get_var_units(void *self, const char *name, char *units) {
  if (strcmp(name, "model_grid_cell__row_index") == 0) {
    strncpy(units, "count", (2048));
    return (0);
  } else if (strcmp(name, "model_grid_cell__column_index") == 0) {
    strncpy(units, "count", (2048));
    return (0);
  } else if (strcmp(name, "cyclone__magnitude_of_velocity") == 0) {
    strncpy(units, "meters second-1", (2048));
    return (0);
  } else if (strcmp(name, "cyclone__azimuth_angle_of_velocity") == 0) {
    strncpy(units, "degrees", (2048));
    return (0);
  } else if (strcmp(name, "atmosphere_bottom_air__pressure") == 0) {
    strncpy(units, "pascals", (2048));
    return (0);
  } else if (strcmp(name, "atmosphere_bottom_air__reference_pressure") == 0) {
    strncpy(units, "pascals", (2048));
    return (0);
  } else if (strcmp(name, "cyclone_air_flow_max_speed__radius") == 0) {
    strncpy(units, "meters", (2048));
    return (0);
  } else if (strcmp(name, "cyclone__radius") == 0) {
    strncpy(units, "meters", (2048));
    return (0);
  } else if (strcmp(name, "atmosphere_air_flow__east_component_of_velocity") == 0) {
    strncpy(units, "meters second-1", (2048));
    return (0);
  } else if (strcmp(name, "atmosphere_air_flow__north_component_of_velocity") == 0) {
    strncpy(units, "meters second-1", (2048));
    return (0);
  } else {
    units[0] = '\0';
    return (1);
  }
}
```