user: 请将这段汇编代码片段转换成等效的C代码：

```asm
<main>:
  endbr64
  push   %r12
  lea    D2(%rip),%rdi
  push   %rbp
  lea    D73(%rip),%rbp
  sub    $0x78,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x68(%rsp)
  xor    %eax,%eax
  lea    0x30(%rsp),%r12
  call   <printf@plt>
  mov    %r12,%rdi
  call   <gets@plt>
  lea    D77(%rip),%rdi
  call   <puts@plt>
  lea    0x18(%rsp),%rsi
  mov    %rbp,%rdi
  call   <scanf@plt>
  lea    D37(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    0x28(%rsp),%rsi
  mov    %rbp,%rdi
  call   <scanf@plt>
  lea    D44(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    0x20(%rsp),%rsi
  mov    %rbp,%rdi
  call   <scanf@plt>
  movsd  0x18(%rsp),%xmm1
  mov    %r12,%rsi
  mov    $0x3,%eax
  movsd  0x20(%rsp),%xmm0
  movsd  0x28(%rsp),%xmm2
  lea    D46(%rip),%rdi
  movapd %xmm1,%xmm3
  mulsd  %xmm0,%xmm3
  movsd  %xmm2,(%rsp)
  comisd %xmm2,%xmm3
  movsd  %xmm3,0x8(%rsp)
  jbe    L17
  call   <printf@plt>
  movsd  0x8(%rsp),%xmm3
  movsd  (%rsp),%xmm2
  lea    D74(%rip),%rdi
  mov    $0x2,%eax
  movapd %xmm3,%xmm1
  movapd %xmm3,%xmm0
  subsd  %xmm2,%xmm1
  call   <printf@plt>
L12:
  mov    0x68(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L10
  add    $0x78,%rsp
  xor    %eax,%eax
  pop    %rbp
  pop    %r12
  ret
L17:
  call   <printf@plt>
  movsd  (%rsp),%xmm2
  movsd  0x8(%rsp),%xmm3
  lea    D7(%rip),%rdi
  mov    $0x2,%eax
  movapd %xmm2,%xmm1
  movapd %xmm3,%xmm0
  subsd  %xmm3,%xmm1
  call   <printf@plt>
  jmp    L12
L10:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: disassemble_data
arguments: tag: D2
type_infered: string
name: disassemble_data
arguments: tag: D73
type_infered: string
name: disassemble_data
arguments: tag: D77
type_infered: string
name: disassemble_data
arguments: tag: D37
type_infered: string
name: disassemble_data
arguments: tag: D44
type_infered: string
name: disassemble_data
arguments: tag: D46
type_infered: string
name: disassemble_data
arguments: tag: D74
type_infered: string
name: disassemble_data
arguments: tag: D7
type_infered: string

tool: D2: Enter the member info below: 
name:

tool: D73: %lf

tool: D77: Enter meal rate:>

tool: D37: 
Total pay:

tool: D44: 
Total meal:

tool: D46: 
Name:%s
Total meal:%.2f
Meal rate:%.2f
Total pay:%.2f


tool: D74: Total buy:%.2f
Money give:%.2f

tool: D7: Total buy:%.2f
Money back:%.2f

assistant: ```c
int main() {
  char name[50];
  double meal_rate, total_meal, total_pay, total_buy, money_back, money_give;
  printf("Enter the member info below: \nname:");
  gets(name);
  printf("Enter meal rate:>\n");
  scanf("%lf", &meal_rate);
  printf("\nTotal pay:");
  scanf("%lf", &total_pay);
  printf("\nTotal meal:");
  scanf("%lf", &total_meal);
  total_buy = meal_rate * total_meal;
  if (total_buy > total_pay) {
    money_give = total_buy - total_pay;
    printf("\nName:%s\nTotal meal:%.2f\nMeal rate:%.2f\nTotal pay:%.2f\n", name, total_meal, meal_rate, total_pay);
    printf("Total buy:%.2f\nMoney give:%.2f", total_buy, money_give);
  } else {
    money_back = total_pay - total_buy;
    printf("\nName:%s\nTotal meal:%.2f\nMeal rate:%.2f\nTotal pay:%.2f\n", name, total_meal, meal_rate, total_pay);
    printf("Total buy:%.2f\nMoney back:%.2f", total_buy, money_back);
  }
  return (0);
}
```