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

```asm
<practice_2>:
  endbr64
  push   %rbx
  sub    $0x10,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x8(%rsp)
  xor    %eax,%eax
  lea    D199(%rip),%rdi
  call   <printf@plt>
  mov    %rsp,%rsi
  lea    D100(%rip),%rdi
  call   <scanf@plt>
  movsd  (%rsp),%xmm0
  movsd  D67(%rip),%xmm1
  comisd %xmm0,%xmm1
  jb     L81
  mulsd  D18(%rip),%xmm0
  movq   %xmm0,%rbx
L84:
  movq   %rbx,%xmm0
  lea    D139(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  mov    0x8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L48
  add    $0x10,%rsp
  pop    %rbx
  ret
L81:
  movsd  D208(%rip),%xmm1
  comisd %xmm0,%xmm1
  jb     L2
  subsd  D67(%rip),%xmm0
  mulsd  D66(%rip),%xmm0
  addsd  D15(%rip),%xmm0
  movq   %xmm0,%rbx
  jmp    L84
L2:
  movsd  D43(%rip),%xmm1
  comisd %xmm0,%xmm1
  jb     L79
  subsd  D208(%rip),%xmm0
  mulsd  D230(%rip),%xmm0
  addsd  D119(%rip),%xmm0
  movq   %xmm0,%rbx
  jmp    L84
L79:
  movsd  D143(%rip),%xmm1
  comisd %xmm0,%xmm1
  jb     L117
  subsd  D43(%rip),%xmm0
  mulsd  D144(%rip),%xmm0
  addsd  D105(%rip),%xmm0
  movq   %xmm0,%rbx
  jmp    L84
L117:
  movsd  D239(%rip),%xmm1
  comisd %xmm0,%xmm1
  jb     L24
  subsd  D143(%rip),%xmm0
  mulsd  D27(%rip),%xmm0
  addsd  D32(%rip),%xmm0
  movq   %xmm0,%rbx
  jmp    L84
L24:
  comisd D239(%rip),%xmm0
  jbe    L84
  subsd  D239(%rip),%xmm0
  mulsd  D46(%rip),%xmm0
  addsd  D227(%rip),%xmm0
  movq   %xmm0,%rbx
  jmp    L84
L48:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: read_data
arguments: data_tag: D199
datatype: string
name: read_data
arguments: data_tag: D100
datatype: string
name: read_data
arguments: data_tag: D67
datatype: byte[8]
name: read_data
arguments: data_tag: D18
datatype: f64
name: read_data
arguments: data_tag: D139
datatype: string
name: read_data
arguments: data_tag: D208
datatype: byte[8]
name: read_data
arguments: data_tag: D66
datatype: f64
name: read_data
arguments: data_tag: D15
datatype: byte[8]
name: read_data
arguments: data_tag: D43
datatype: byte[8]
name: read_data
arguments: data_tag: D230
datatype: f64
name: read_data
arguments: data_tag: D119
datatype: byte[8]
name: read_data
arguments: data_tag: D143
datatype: byte[8]
name: read_data
arguments: data_tag: D144
datatype: f64
name: read_data
arguments: data_tag: D105
datatype: byte[8]
name: read_data
arguments: data_tag: D239
datatype: byte[16]
name: read_data
arguments: data_tag: D27
datatype: f64
name: read_data
arguments: data_tag: D32
datatype: byte[8]
name: read_data
arguments: data_tag: D46
datatype: f64
name: read_data
arguments: data_tag: D227
datatype: byte[8]

tool: D199: Net income:

tool: D100: %lf

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

tool: D18: 0.1

tool: D139: royalties: bonus=%lf

tool: {"D208": [0x00,0x00,0x00,0x00,0x00,0x6a,0x08,0x41]}

tool: D66: 0.075

tool: {"D15": [0x00,0x00,0x00,0x00,0x00,0x88,0xc3,0x40]}

tool: {"D43": [0x00,0x00,0x00,0x00,0x00,0x6a,0x18,0x41]}

tool: D230: 0.05

tool: {"D119": [0x00,0x00,0x00,0x00,0x00,0x17,0xd1,0x40]}

tool: {"D143": [0x00,0x00,0x00,0x00,0x80,0x4f,0x22,0x41]}

tool: D144: 0.03

tool: {"D105": [0x00,0x00,0x00,0x00,0x00,0xdb,0xda,0x40]}

tool: {"D239": [0x00,0x00,0x00,0x00,0x80,0x84,0x2e,0x41,0xb8,0x1e,0x85,0xeb,0x51,0xb8,0x8e,0x3f]}

tool: D27: 0.015

tool: {"D32": [0x00,0x00,0x00,0x00,0x80,0x5b,0xe0,0x40]}

tool: D46: 0.01

tool: {"D227": [0x00,0x00,0x00,0x00,0x80,0x49,0xe3,0x40]}

assistant: ```c
void practice_2(void) {
  double i;
  double bonus1, bonus2, bonus4, bonus6, bonus10, bonus;
  printf("Net income:");
  scanf("%lf", &i);
  bonus1 = 100000 * 0.1;
  bonus2 = bonus1 + 100000 * 0.075;
  bonus4 = bonus2 + 200000 * 0.05;
  bonus6 = bonus4 + 200000 * 0.03;
  bonus10 = bonus6 + 400000 * 0.015;
  if (i <= 100000) {
    bonus = i * 0.1;
  } else if (i <= 200000) {
    bonus = bonus1 + (i - 100000) * 0.075;
  } else if (i <= 400000) {
    bonus = bonus2 + (i - 200000) * 0.05;
  } else if (i <= 600000) {
    bonus = bonus4 + (i - 400000) * 0.03;
  } else if (i <= 1000000) {
    bonus = bonus6 + (i - 600000) * 0.015;
  } else if (i > 1000000) {
    bonus = bonus10 + (i - 1000000) * 0.01;
  }
  printf("royalties: bonus=%lf", bonus);
  printf("\n");
}
```