user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<main>:
  endbr64
  push   %rbp
  lea    D60(%rip),%rdi
  lea    D25(%rip),%rbp
  sub    $0x20,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x18(%rsp)
  xor    %eax,%eax
  call   <puts@plt>
  lea    0x10(%rsp),%rsi
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <scanf@plt>
  lea    D17(%rip),%rdi
  call   <puts@plt>
  lea    0x14(%rsp),%rsi
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <scanf@plt>
  lea    D105(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    0xc(%rsp),%rsi
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <scanf@plt>
  mov    0x10(%rsp),%eax
  cmp    $0x1,%eax
  je     L126
  test   %eax,%eax
  jne    L121
  cmpl   $0x1,0x14(%rsp)
  je     L129
L121:
  mov    0x18(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L84
  add    $0x20,%rsp
  xor    %eax,%eax
  pop    %rbp
  ret
L126:
  mov    0x14(%rsp),%eax
  test   %eax,%eax
  jne    L113
  cmpl   $0x18,0xc(%rsp)
  jg     L76
  movsd  D77(%rip),%xmm0
  lea    D37(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  jmp    L121
L113:
  sub    $0x1,%eax
  jne    L121
  cmpl   $0x18,0xc(%rsp)
  jle    L121
  movsd  D111(%rip),%xmm0
  lea    D6(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  jmp    L121
L129:
  cmpl   $0x18,0xc(%rsp)
  jg     L121
  movsd  D86(%rip),%xmm0
  lea    D6(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  jmp    L121
L76:
  movsd  D118(%rip),%xmm0
  lea    D6(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  jmp    L121
L84:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: disassemble_data
arguments: data_tag: D60
data_type: string
name: disassemble_data
arguments: data_tag: D25
data_type: string
name: disassemble_data
arguments: data_tag: D17
data_type: string
name: disassemble_data
arguments: data_tag: D105
data_type: string
name: disassemble_data
arguments: data_tag: D77
data_type: byte[8]
name: disassemble_data
arguments: data_tag: D37
data_type: string
name: disassemble_data
arguments: data_tag: D111
data_type: byte[8]
name: disassemble_data
arguments: data_tag: D6
data_type: string
name: disassemble_data
arguments: data_tag: D86
data_type: byte[8]
name: disassemble_data
arguments: data_tag: D118
data_type: byte[8]

tool: D60: Are you married? 
 (if maried enter 1, if unmarried enter 0)

tool: D25: %d

tool: D17: Are you male or female? 
 (if female enter 1, if male enter 0) 

tool: D105: Please enter your age: 

tool: {"D77": [0x00,0x00,0x00,0x00,0x00,0x80,0x66,0x40]}

tool: D37: The daily rate for the customer is: %0.2f 


tool: {"D111": [0x00,0x00,0x00,0x00,0x00,0x80,0x56,0x40]}

tool: D6: he daily rate for the customer is: %0.2f 


tool: {"D86": [0x00,0x00,0x00,0x00,0x00,0xc0,0x62,0x40]}

tool: {"D118": [0x00,0x00,0x00,0x00,0x00,0xe0,0x60,0x40]}

assistant: ```c
int main() {
  int age;
  int married;
  int male_female;
  float normal_rate = 100;
  float daily_rate;
  printf("Are you married? \n (if maried enter 1, if unmarried enter 0)\n");
  scanf("%d", &married);
  printf("Are you male or female? \n (if female enter 1, if male enter 0) \n");
  scanf("%d", &male_female);
  printf("Please enter your age: ");
  scanf("%d", &age);
  if ((married == 1) && (male_female == 0) && (age >= 25)) {
    daily_rate = ((normal_rate - 10) * 1.5);
    printf("he daily rate for the customer is: %0.2f \n", daily_rate);
  } else if ((married == 0) && (male_female == 1) && (age < 25)) {
    daily_rate = ((normal_rate)*1.5);
    printf("he daily rate for the customer is: %0.2f \n", daily_rate);
  } else if ((married == 1) && (male_female == 1) && (age >= 25)) {
    daily_rate = (normal_rate - 10);
    printf("he daily rate for the customer is: %0.2f \n", daily_rate);
  } else if ((married == 1) && (male_female == 0) && (age < 25)) {
    daily_rate = ((normal_rate - 10) * 2);
    printf("The daily rate for the customer is: %0.2f \n", daily_rate);
  }
}
```