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

```asm
<main>:
  endbr64
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x18,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x8(%rsp)
  xor    %eax,%eax
  lea    D23(%rip),%r12
  lea    0x4(%rsp),%rbp
  lea    D145(%rip),%rbx
L81:
  mov    %r12,%rdi
  call   <puts@plt>
  mov    %rbp,%rsi
  mov    %rbx,%rdi
  call   <scanf@plt>
  movss  0x4(%rsp),%xmm0
  pxor   %xmm2,%xmm2
  comiss %xmm0,%xmm2
  ja     L81
  mulss  D16(%rip),%xmm0
  movss  %xmm0,0x4(%rsp)
  call   <round@plt>
  movss  %xmm0,0x4(%rsp)
  mov    $0x0,%ebp
  movss  D4(%rip),%xmm1
  comiss %xmm1,%xmm0
  jb     L42
L100:
  subss  %xmm1,%xmm0
  add    $0x1,%ebp
  comiss D4(%rip),%xmm0
  jae    L100
  movss  %xmm0,0x4(%rsp)
L82:
  mov    %ebp,%esi
  lea    D81(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movss  0x4(%rsp),%xmm0
  mov    $0x0,%r12d
  movss  D13(%rip),%xmm1
  comiss %xmm1,%xmm0
  jb     L85
L92:
  subss  %xmm1,%xmm0
  add    $0x1,%r12d
  comiss D13(%rip),%xmm0
  jae    L92
  movss  %xmm0,0x4(%rsp)
L6:
  mov    %r12d,%esi
  lea    D28(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movss  0x4(%rsp),%xmm0
  mov    $0x0,%ebx
  movss  D126(%rip),%xmm1
  comiss %xmm1,%xmm0
  jb     L131
L9:
  subss  %xmm1,%xmm0
  add    $0x1,%ebx
  comiss D126(%rip),%xmm0
  jae    L9
  movss  %xmm0,0x4(%rsp)
L31:
  mov    %ebx,%esi
  lea    D91(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movss  0x4(%rsp),%xmm0
  mov    $0x0,%r13d
  movss  D88(%rip),%xmm1
  comiss %xmm1,%xmm0
  jb     L19
L132:
  subss  %xmm1,%xmm0
  add    $0x1,%r13d
  comiss %xmm1,%xmm0
  jae    L132
  movss  %xmm0,0x4(%rsp)
L35:
  mov    %r13d,%esi
  lea    D70(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    (%rbx,%r13,1),%esi
  add    %r12d,%esi
  add    %ebp,%esi
  lea    D94(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    0x8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L3
  mov    $0x0,%eax
  add    $0x18,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  ret
L42:
  mov    $0x0,%ebp
  jmp    L82
L85:
  mov    $0x0,%r12d
  jmp    L6
L131:
  mov    $0x0,%ebx
  jmp    L31
L19:
  mov    $0x0,%r13d
  jmp    L35
L3:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D23
type_infered: string
name: extract_symbolic_data
arguments: data_label: D145
type_infered: string
name: extract_symbolic_data
arguments: data_label: D16
type_infered: byte[4]
name: extract_symbolic_data
arguments: data_label: D4
type_infered: byte[4]
name: extract_symbolic_data
arguments: data_label: D81
type_infered: string
name: extract_symbolic_data
arguments: data_label: D13
type_infered: byte[4]
name: extract_symbolic_data
arguments: data_label: D28
type_infered: string
name: extract_symbolic_data
arguments: data_label: D126
type_infered: byte[4]
name: extract_symbolic_data
arguments: data_label: D91
type_infered: string
name: extract_symbolic_data
arguments: data_label: D88
type_infered: byte[4]
name: extract_symbolic_data
arguments: data_label: D70
type_infered: string
name: extract_symbolic_data
arguments: data_label: D94
type_infered: string

tool: D23: How much change do you have?

tool: D145: %f

tool: {"D16": [0x00,0x00,0xc8,0x42]}

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

tool: D81: Quarters = %i


tool: {"D13": [0x00,0x00,0x20,0x41]}

tool: D28: Dimes = %i


tool: {"D126": [0x00,0x00,0xa0,0x40]}

tool: D91: Nickels = %i


tool: {"D88": [0x00,0x00,0x80,0x3f]}

tool: D70: Pennies = %i


tool: D94: %i


assistant: ```c
int main(void) {
  float f;
  int Q = 0;
  int D = 0;
  int N = 0;
  int P = 0;
  do {
    printf("How much change do you have?\n");
    scanf("%f", &f);
  } while (f < 0);
  f = f * 100;
  f = round(f);
  while (f >= 25) {
    f = f - 25;
    Q++;
  }
  printf("Quarters = %i\n", Q);
  while (f >= 10) {
    f = f - 10;
    D++;
  }
  printf("Dimes = %i\n", D);
  while (f >= 5) {
    f = f - 5;
    N++;
  }
  printf("Nickels = %i\n", N);
  while (f >= 1) {
    f = f - 1;
    P++;
  }
  printf("Pennies = %i\n", P);
  printf("%i\n", P + N + D + Q);
  return 0;
}
```