user: 下面的汇编指令对应的C源代码是什么:

```asm
<cmps>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x28,%rsp
  mov    $0x0,%ebp
L0:
  mov    $0x0,%ebx
L51:
  mov    $0x0,%ecx
  mov    $0x0,%edx
  mov    $0x0,%esi
  mov    %ebx,%edi
  call   <make@plt>
  fstpt  (%rsp)
  mov    (%rsp),%r12
  mov    0x8(%rsp),%r13d
  mov    $0x0,%ecx
  mov    $0x0,%edx
  mov    $0x0,%esi
  mov    %ebp,%edi
  call   <make@plt>
  push   %r13
  push   %r12
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  call   <cmp@plt>
  add    $0x1,%ebx
  add    $0x20,%rsp
  cmp    $0x2,%ebx
  jne    L51
  add    $0x1,%ebp
  cmp    $0x2,%ebp
  jne    L0
  mov    $0x0,%r12d
L44:
  mov    $0x0,%ebp
L1:
  mov    $0x1,%ebx
  mov    %ebp,%ecx
  shl    %cl,%ebx
  mov    $0x0,%ecx
  mov    %ebx,%edx
  mov    $0x7fff,%esi
  mov    %r12d,%edi
  call   <make@plt>
  fstpt  (%rsp)
  mov    %ebx,%ecx
  mov    $0x0,%edx
  mov    $0x7fff,%esi
  mov    %r12d,%edi
  call   <make@plt>
  fstpt  0x10(%rsp)
  mov    0x10(%rsp),%r14
  mov    0x18(%rsp),%r15d
  push   $0x0
  push   $0x0
  push   0x18(%rsp)
  push   0x18(%rsp)
  call   <cmp@plt>
  add    $0x20,%rsp
  push   $0x0
  push   $0x0
  push   %r15
  push   %r14
  call   <cmp@plt>
  add    $0x20,%rsp
  push   0x8(%rsp)
  push   0x8(%rsp)
  push   $0x0
  push   $0x0
  call   <cmp@plt>
  add    $0x20,%rsp
  push   %r15
  push   %r14
  push   $0x0
  push   $0x0
  call   <cmp@plt>
  add    $0x1,%ebp
  add    $0x20,%rsp
  cmp    $0x40,%ebp
  jne    L1
  add    $0x1,%r12d
  cmp    $0x2,%r12d
  jne    L44
  mov    $0x0,%r15d
L94:
  mov    %r15d,%r14d
  sar    %r14d
  mov    $0x0,%ebx
  mov    %r15d,%ebp
  and    $0x1,%ebp
L72:
  mov    %ebx,%esi
  sar    %esi
  mov    %ebx,%edi
  and    $0x1,%edi
  mov    $0x0,%ecx
  mov    $0x0,%edx
  call   <make@plt>
  fstpt  (%rsp)
  mov    (%rsp),%r12
  mov    0x8(%rsp),%r13d
  mov    $0x0,%ecx
  mov    $0x0,%edx
  mov    %r14d,%esi
  mov    %ebp,%edi
  call   <make@plt>
  push   %r13
  push   %r12
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  call   <cmp@plt>
  add    $0x1,%ebx
  add    $0x20,%rsp
  cmp    $0x6,%ebx
  jne    L72
  add    $0x1,%r15d
  cmp    $0x6,%r15d
  jne    L94
  mov    $0x0,%ebx
L56:
  mov    $0x0,%r15d
L46:
  mov    $0x0,%ebp
L22:
  mov    $0x0,%r14d
L29:
  mov    $0x0,%ecx
  mov    $0x0,%edx
  mov    %r15d,%esi
  mov    %ebx,%edi
  call   <make@plt>
  fstpt  (%rsp)
  mov    (%rsp),%r12
  mov    0x8(%rsp),%r13d
  mov    %r14d,%ecx
  mov    %ebp,%edx
  mov    %r15d,%esi
  mov    %ebx,%edi
  call   <make@plt>
  push   %r13
  push   %r12
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  call   <cmp@plt>
  add    $0x20,%rsp
  mov    %r14d,%ecx
  mov    %ebp,%edx
  mov    %r15d,%esi
  mov    %ebx,%edi
  call   <make@plt>
  fstpt  (%rsp)
  mov    (%rsp),%r12
  mov    0x8(%rsp),%r13d
  mov    $0x0,%ecx
  mov    $0x0,%edx
  mov    %r15d,%esi
  mov    %ebx,%edi
  call   <make@plt>
  push   %r13
  push   %r12
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  call   <cmp@plt>
  add    $0x1,%r14d
  add    $0x20,%rsp
  cmp    $0x2,%r14d
  jne    L29
  add    $0x1,%ebp
  cmp    $0x2,%ebp
  jne    L22
  add    $0x1,%r15d
  cmp    $0x2,%r15d
  jne    L46
  add    $0x1,%ebx
  cmp    $0x2,%ebx
  jne    L56
  add    $0x28,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
```

assistant: ```c
void cmps(void) {
  int i, j;
  for (i = 0; i < 2; i++)
    for (j = 0; j < 2; j++)
      cmp(make(i, 0, 0, 0), make(j, 0, 0, 0));
  for (i = 0; i < 2; i++) {
    for (j = 0; j < 64; j++) {
      long double f1 = make(i, 32767, (uint64_t)1 << j, 0);
      long double f2 = make(i, 32767, 0, (uint64_t)1 << j);
      cmp(f1, 0);
      cmp(f2, 0);
      cmp(0, f1);
      cmp(0, f2);
    }
  }
  for (i = 0; i < 6; i++)
    for (j = 0; j < 6; j++)
      cmp(make(i & 1, i >> 1, 0, 0), make(j & 1, j >> 1, 0, 0));
  for (i = 0; i < 2; i++) {
    for (j = 0; j < 2; j++) {
      int a, b;
      for (a = 0; a < 2; a++) {
        for (b = 0; b < 2; b++) {
          cmp(make(i, j, a, b), make(i, j, 0, 0));
          cmp(make(i, j, 0, 0), make(i, j, a, b));
        }
      }
    }
  }
}
```