user: Please show me the C implementation that matches the assembly code listed below:

```asm
<main>:
  endbr64
  push   %rbx
  lea    D124(%rip),%rdi
  sub    $0x10,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x8(%rsp)
  xor    %eax,%eax
  mov    %rsp,%rsi
  call   <scanf@plt>
  cmp    $0x1,%eax
  je     L155
L25:
  mov    0x8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L148
  add    $0x10,%rsp
  xor    %eax,%eax
  pop    %rbx
  ret
L155:
  movsd  (%rsp),%xmm0
  comisd D11(%rip),%xmm0
  movsd  D163(%rip),%xmm1
  jbe    L177
  comisd %xmm0,%xmm1
  jb     L177
  mulsd  D32(%rip),%xmm0
  movq   %xmm0,%rbx
  jmp    L117
L177:
  comisd %xmm1,%xmm0
  movsd  D74(%rip),%xmm2
  jbe    L67
  comisd %xmm0,%xmm2
  jb     L67
  subsd  %xmm1,%xmm0
  mulsd  D129(%rip),%xmm0
  addsd  D68(%rip),%xmm0
  movq   %xmm0,%rbx
L117:
  movq   %rbx,%xmm0
  lea    D5(%rip),%rdi
  call   <printf@plt>
  jmp    L25
L67:
  comisd %xmm2,%xmm0
  movsd  D109(%rip),%xmm1
  jbe    L188
  comisd %xmm0,%xmm1
  jae    L127
L188:
  comisd %xmm1,%xmm0
  movsd  D77(%rip),%xmm2
  jbe    L108
  comisd %xmm0,%xmm2
  jae    L44
L108:
  comisd %xmm2,%xmm0
  movsd  D132(%rip),%xmm1
  jbe    L126
  comisd %xmm0,%xmm1
  jb     L126
  subsd  %xmm2,%xmm0
  mulsd  D39(%rip),%xmm0
  addsd  D188(%rip),%xmm0
  movq   %xmm0,%rbx
  jmp    L117
L126:
  comisd %xmm1,%xmm0
  jbe    L117
  subsd  %xmm1,%xmm0
  mulsd  D156(%rip),%xmm0
  addsd  D93(%rip),%xmm0
  movq   %xmm0,%rbx
  jmp    L117
L127:
  subsd  %xmm2,%xmm0
  mulsd  D154(%rip),%xmm0
  addsd  D95(%rip),%xmm0
  movq   %xmm0,%rbx
  jmp    L117
L44:
  subsd  %xmm1,%xmm0
  mulsd  D15(%rip),%xmm0
  addsd  D101(%rip),%xmm0
  movq   %xmm0,%rbx
  jmp    L117
L148:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: disassemble_data
arguments: data_label: D124
data_type: string
name: disassemble_data
arguments: data_label: D11
data_type: byte[16]
name: disassemble_data
arguments: data_label: D163
data_type: byte[8]
name: disassemble_data
arguments: data_label: D32
data_type: f64
name: disassemble_data
arguments: data_label: D74
data_type: byte[8]
name: disassemble_data
arguments: data_label: D129
data_type: f64
name: disassemble_data
arguments: data_label: D68
data_type: byte[8]
name: disassemble_data
arguments: data_label: D5
data_type: string
name: disassemble_data
arguments: data_label: D109
data_type: byte[8]
name: disassemble_data
arguments: data_label: D77
data_type: byte[8]
name: disassemble_data
arguments: data_label: D132
data_type: byte[8]
name: disassemble_data
arguments: data_label: D39
data_type: f64
name: disassemble_data
arguments: data_label: D188
data_type: byte[8]
name: disassemble_data
arguments: data_label: D156
data_type: f64
name: disassemble_data
arguments: data_label: D93
data_type: byte[8]
name: disassemble_data
arguments: data_label: D154
data_type: f64
name: disassemble_data
arguments: data_label: D95
data_type: byte[8]
name: disassemble_data
arguments: data_label: D15
data_type: f64
name: disassemble_data
arguments: data_label: D101
data_type: byte[8]

tool: D124: %lf

tool: {"D11": [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x87,0x40]}

tool: {"D163": [0x00,0x00,0x00,0x00,0x00,0x70,0x87,0x40]}

tool: D32: 0.02

tool: {"D74": [0x00,0x00,0x00,0x00,0x00,0x94,0xa1,0x40]}

tool: D129: 0.05

tool: {"D68": [0x00,0x00,0x00,0x00,0x00,0x00,0x2e,0x40]}

tool: D5: %.2lf


tool: {"D109": [0x00,0x00,0x00,0x00,0x00,0x4c,0xad,0x40]}

tool: {"D77": [0x00,0x00,0x00,0x00,0x00,0x82,0xb4,0x40]}

tool: {"D132": [0x00,0x00,0x00,0x00,0x00,0x58,0xbb,0x40]}

tool: D39: 0.2

tool: {"D188": [0x00,0x00,0x00,0x00,0x00,0x80,0x76,0x40]}

tool: D156: 0.3

tool: {"D93": [0x00,0x00,0x00,0x00,0x00,0x30,0x86,0x40]}

tool: D154: 0.08

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

tool: D15: 0.1

tool: {"D101": [0x00,0x00,0x00,0x00,0x00,0x40,0x6a,0x40]}

assistant: ```c
int main() {
  double salary, tax;
  if (scanf("%lf", &salary) == 1) {
    if (0 < salary && salary <= 750)
      tax = salary * 0.02;
    else if (750 < salary && salary <= 2250)
      tax = 15 + (salary - 750) * 0.05;
    else if (2250 < salary && salary <= 3750)
      tax = 90 + (salary - 2250) * 0.08;
    else if (3750 < salary && salary <= 5250)
      tax = 210 + (salary - 3750) * 0.10;
    else if (5250 < salary && salary <= 7000)
      tax = 360 + (salary - 5250) * 0.20;
    else if (salary > 7000)
      tax = 710 + (salary - 7000) * 0.30;
    printf("%.2lf\n", tax);
  }
  return 0;
}
```