user: Converte this assembly snippet into its equivalent C code:

```asm
<main>:
  endbr64
  push   %rbp
  lea    D16(%rip),%rdi
  lea    D7(%rip),%rbp
  sub    $0x10,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x8(%rsp)
  xor    %eax,%eax
  call   <printf@plt>
  mov    %rsp,%rsi
  mov    %rbp,%rdi
  call   <scanf@plt>
  lea    D212(%rip),%rdi
  call   <printf@plt>
  lea    0x4(%rsp),%rsi
  mov    %rbp,%rdi
  call   <scanf@plt>
  movss  (%rsp),%xmm0
  movaps %xmm0,%xmm1
  mulss  %xmm0,%xmm1
  movss  0x4(%rsp),%xmm0
  divss  %xmm1,%xmm0
  movss  D117(%rip),%xmm1
  comiss %xmm0,%xmm1
  ja     L175
  comiss D117(%rip),%xmm0
  jb     L28
  movss  D50(%rip),%xmm1
  comiss %xmm0,%xmm1
  ja     L14
L28:
  comiss D50(%rip),%xmm0
  jae    L108
L151:
  comiss D98(%rip),%xmm0
  jb     L49
  movss  D94(%rip),%xmm1
  comiss %xmm0,%xmm1
  ja     L130
L49:
  comiss D94(%rip),%xmm0
  jb     L177
  movss  D143(%rip),%xmm1
  comiss %xmm0,%xmm1
  jbe    L177
  lea    D96(%rip),%rdi
  call   <printf@plt>
  jmp    L189
L108:
  movss  D98(%rip),%xmm1
  comiss %xmm0,%xmm1
  jbe    L151
  lea    D43(%rip),%rdi
  call   <printf@plt>
  jmp    L189
L177:
  comiss D143(%rip),%xmm0
  jb     L57
  movss  D83(%rip),%xmm1
  comiss %xmm0,%xmm1
  jbe    L57
  lea    D71(%rip),%rdi
  call   <printf@plt>
  jmp    L189
L57:
  comiss D83(%rip),%xmm0
  jbe    L52
  lea    D35(%rip),%rdi
  call   <printf@plt>
  jmp    L189
L175:
  lea    D23(%rip),%rdi
  call   <printf@plt>
L189:
  mov    0x8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L42
  add    $0x10,%rsp
  xor    %eax,%eax
  pop    %rbp
  ret
L52:
  lea    D159(%rip),%rdi
  call   <printf@plt>
  jmp    L189
L14:
  lea    D142(%rip),%rdi
  call   <printf@plt>
  jmp    L189
L130:
  lea    D129(%rip),%rdi
  call   <printf@plt>
  jmp    L189
L42:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: unpack_data
arguments: data_tag: D16
datatype: string
name: unpack_data
arguments: data_tag: D7
datatype: string
name: unpack_data
arguments: data_tag: D212
datatype: string
name: unpack_data
arguments: data_tag: D117
datatype: f32
name: unpack_data
arguments: data_tag: D50
datatype: f32
name: unpack_data
arguments: data_tag: D98
datatype: byte[4]
name: unpack_data
arguments: data_tag: D94
datatype: byte[4]
name: unpack_data
arguments: data_tag: D143
datatype: byte[4]
name: unpack_data
arguments: data_tag: D96
datatype: string
name: unpack_data
arguments: data_tag: D43
datatype: string
name: unpack_data
arguments: data_tag: D83
datatype: byte[4]
name: unpack_data
arguments: data_tag: D71
datatype: string
name: unpack_data
arguments: data_tag: D35
datatype: string
name: unpack_data
arguments: data_tag: D23
datatype: string
name: unpack_data
arguments: data_tag: D159
datatype: string
name: unpack_data
arguments: data_tag: D142
datatype: string
name: unpack_data
arguments: data_tag: D129
datatype: string

tool: D16: please enter your height according to meter : 

tool: D7: %f

tool: D212: Please enter your weight according to kilogram : 

tool: D117: 16.5

tool: D50: 18.5

tool: {"D98": [0x00,0x00,0xc8,0x41]}

tool: {"D94": [0x00,0x00,0xf0,0x41]}

tool: {"D143": [0x00,0x00,0x0c,0x42]}

tool: D96: Obese class1

tool: D43: Normal

tool: {"D83": [0x00,0x00,0x20,0x42]}

tool: D71: Obese class2

tool: D35: Obese class3

tool: D23: Very severely underweight

tool: D159: Error

tool: D142: Underweight

tool: D129: Overweight

assistant: ```c
int main() {
  float height;
  float weight;
  float BMI;
  printf("please enter your height according to meter : ");
  scanf("%f", &height);
  printf("Please enter your weight according to kilogram : ");
  scanf("%f", &weight);
  BMI = ((weight) / (height * height));
  if (BMI < 16.5)
    printf("Very severely underweight");
  else if (16.5 <= BMI && BMI < 18.5)
    printf("Underweight");
  else if (18.5 <= BMI && BMI < 25)
    printf("Normal");
  else if (25 <= BMI && BMI < 30)
    printf("Overweight");
  else if (30 <= BMI && BMI < 35)
    printf("Obese class1");
  else if (35 <= BMI && BMI < 40)
    printf("Obese class2");
  else if (BMI > 40)
    printf("Obese class3");
  else
    printf("Error");
  return 0;
}
```