user: 提供的汇编代码用C语言表示会是什么样子：

```asm
<cmps>:
  endbr64
  push   %r13
  push   %r12
  push   %rbp
  xor    %ebp,%ebp
  push   %rbx
  sub    $0x28,%rsp
L157:
  xor    %ebx,%ebx
L21:
  xor    %ecx,%ecx
  xor    %edx,%edx
  xor    %esi,%esi
  mov    %ebx,%edi
  call   <make@plt>
  xor    %ecx,%ecx
  xor    %edx,%edx
  xor    %esi,%esi
  fstpt  (%rsp)
  mov    %ebp,%edi
  call   <make@plt>
  fldt   (%rsp)
  sub    $0x20,%rsp
  fstpt  0x10(%rsp)
  fstpt  (%rsp)
  call   <cmp@plt>
  add    $0x20,%rsp
  cmp    $0x1,%ebx
  jne    L101
  cmp    $0x1,%ebp
  je     L10
  mov    $0x1,%ebp
  jmp    L157
  nopw   0x0(%rax,%rax,1)
L101:
  mov    $0x1,%ebx
  jmp    L21
L10:
  xor    %ebp,%ebp
  mov    $0x1,%r13d
L105:
  xor    %ebx,%ebx
  nopl   0x0(%rax)
L11:
  mov    %ebx,%ecx
  mov    %r13d,%r12d
  mov    $0x7fff,%esi
  mov    %ebp,%edi
  shl    %cl,%r12d
  xor    %ecx,%ecx
  add    $0x1,%ebx
  mov    %r12d,%edx
  call   <make@plt>
  mov    %r12d,%ecx
  xor    %edx,%edx
  mov    $0x7fff,%esi
  fstpt  (%rsp)
  mov    %ebp,%edi
  call   <make@plt>
  fstpt  0x10(%rsp)
  push   $0x0
  push   $0x0
  push   0x18(%rsp)
  push   0x18(%rsp)
  call   <cmp@plt>
  add    $0x20,%rsp
  push   $0x0
  push   $0x0
  push   0x28(%rsp)
  push   0x28(%rsp)
  call   <cmp@plt>
  add    $0x20,%rsp
  push   0x8(%rsp)
  push   0x8(%rsp)
  push   $0x0
  push   $0x0
  call   <cmp@plt>
  add    $0x20,%rsp
  push   0x18(%rsp)
  push   0x18(%rsp)
  push   $0x0
  push   $0x0
  call   <cmp@plt>
  add    $0x20,%rsp
  cmp    $0x40,%ebx
  jne    L11
  cmp    $0x1,%ebp
  je     L120
  mov    $0x1,%ebp
  jmp    L105
L120:
  xor    %r13d,%r13d
  nopl   0x0(%rax,%rax,1)
L73:
  mov    %r13d,%r12d
  mov    %r13d,%ebp
  xor    %ebx,%ebx
  sar    %r12d
  and    $0x1,%ebp
  xchg   %ax,%ax
L31:
  mov    %ebx,%esi
  mov    %ebx,%edi
  xor    %ecx,%ecx
  xor    %edx,%edx
  sar    %esi
  and    $0x1,%edi
  add    $0x1,%ebx
  call   <make@plt>
  xor    %ecx,%ecx
  xor    %edx,%edx
  mov    %r12d,%esi
  fstpt  (%rsp)
  mov    %ebp,%edi
  call   <make@plt>
  fldt   (%rsp)
  sub    $0x20,%rsp
  fstpt  0x10(%rsp)
  fstpt  (%rsp)
  call   <cmp@plt>
  add    $0x20,%rsp
  cmp    $0x6,%ebx
  jne    L31
  add    $0x1,%r13d
  cmp    $0x6,%r13d
  jne    L73
  xor    %ebp,%ebp
L6:
  xor    %ebx,%ebx
L65:
  xor    %r13d,%r13d
  xor    %r12d,%r12d
L28:
  xor    %ecx,%ecx
  xor    %edx,%edx
  mov    %ebx,%esi
  mov    %ebp,%edi
  call   <make@plt>
  mov    %r12d,%ecx
  mov    %r13d,%edx
  mov    %ebx,%esi
  fstpt  (%rsp)
  mov    %ebp,%edi
  call   <make@plt>
  fldt   (%rsp)
  sub    $0x20,%rsp
  fstpt  0x10(%rsp)
  fstpt  (%rsp)
  call   <cmp@plt>
  add    $0x20,%rsp
  mov    %r12d,%ecx
  mov    %r13d,%edx
  mov    %ebx,%esi
  mov    %ebp,%edi
  call   <make@plt>
  xor    %ecx,%ecx
  xor    %edx,%edx
  mov    %ebx,%esi
  fstpt  (%rsp)
  mov    %ebp,%edi
  call   <make@plt>
  fldt   (%rsp)
  sub    $0x20,%rsp
  fstpt  0x10(%rsp)
  fstpt  (%rsp)
  call   <cmp@plt>
  add    $0x20,%rsp
  cmp    $0x1,%r12d
  jne    L104
  cmp    $0x1,%r13d
  je     L44
  mov    $0x1,%r13d
  xor    %r12d,%r12d
  jmp    L28
  nopl   0x0(%rax)
L104:
  mov    $0x1,%r12d
  jmp    L28
  nopl   0x0(%rax,%rax,1)
L44:
  cmp    $0x1,%ebx
  je     L107
  mov    $0x1,%ebx
  jmp    L65
  nop
L107:
  cmp    $0x1,%ebp
  je     L74
  mov    $0x1,%ebp
  jmp    L6
L74:
  add    $0x28,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  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));
        }
      }
    }
  }
}
```