user: 请将这段汇编代码片段转换成等效的C代码:

```asm
<testl>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x18,%rsp
  mov    %edi,0xc(%rsp)
  mov    %rsi,%rbx
  push   0x58(%rsp)
  push   0x58(%rsp)
  call   <__finitel@plt>
  mov    %rax,%r14
  push   0x68(%rsp)
  push   0x68(%rsp)
  call   <__fpclassifyl@plt>
  add    %eax,%r14d
  add    $0x20,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  call   <__isinfl@plt>
  add    %eax,%r14d
  push   0x68(%rsp)
  push   0x68(%rsp)
  call   <__isnanl@plt>
  add    %eax,%r14d
  add    $0x20,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  call   <__signbitl@plt>
  add    %eax,%r14d
  push   0x68(%rsp)
  push   0x68(%rsp)
  call   <acoshl@plt>
  add    %eax,%r14d
  add    $0x20,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  call   <acosl@plt>
  add    %eax,%r14d
  push   0x68(%rsp)
  push   0x68(%rsp)
  call   <asinhl@plt>
  add    %eax,%r14d
  add    $0x20,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  call   <asinl@plt>
  add    %eax,%r14d
  push   0x68(%rsp)
  push   0x68(%rsp)
  push   0x78(%rsp)
  push   0x78(%rsp)
  call   <atan2l@plt>
  add    %eax,%r14d
  add    $0x30,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  call   <atanhl@plt>
  add    %eax,%r14d
  push   0x68(%rsp)
  push   0x68(%rsp)
  call   <atanl@plt>
  add    %eax,%r14d
  add    $0x20,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  call   <cbrtl@plt>
  add    %eax,%r14d
  push   0x68(%rsp)
  push   0x68(%rsp)
  call   <ceill@plt>
  add    %eax,%r14d
  add    $0x20,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  push   0x68(%rsp)
  push   0x68(%rsp)
  call   <copysignl@plt>
  add    %eax,%r14d
  add    $0x20,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  call   <coshl@plt>
  add    %eax,%r14d
  push   0x68(%rsp)
  push   0x68(%rsp)
  call   <cosl@plt>
  add    %eax,%r14d
  add    $0x20,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  call   <erfcl@plt>
  add    %eax,%r14d
  push   0x68(%rsp)
  push   0x68(%rsp)
  call   <erfl@plt>
  add    %eax,%r14d
  add    $0x20,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  call   <exp2l@plt>
  add    %eax,%r14d
  push   0x68(%rsp)
  push   0x68(%rsp)
  call   <expl@plt>
  add    %eax,%r14d
  add    $0x20,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  call   <expm1l@plt>
  add    %eax,%r14d
  push   0x68(%rsp)
  push   0x68(%rsp)
  call   <fabsl@plt>
  add    %eax,%r14d
  add    $0x20,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  push   0x68(%rsp)
  push   0x68(%rsp)
  call   <fdiml@plt>
  add    %eax,%r14d
  add    $0x20,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  call   <floorl@plt>
  add    %eax,%r14d
  push   0x68(%rsp)
  push   0x68(%rsp)
  push   0x78(%rsp)
  push   0x78(%rsp)
  push   0x88(%rsp)
  push   0x88(%rsp)
  call   <fmal@plt>
  add    %eax,%r14d
  add    $0x40,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  push   0x68(%rsp)
  push   0x68(%rsp)
  call   <fmaxl@plt>
  add    %eax,%r14d
  add    $0x20,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  push   0x68(%rsp)
  push   0x68(%rsp)
  call   <fminl@plt>
  add    %eax,%r14d
  add    $0x20,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  push   0x68(%rsp)
  push   0x68(%rsp)
  call   <fmodl@plt>
  add    %eax,%r14d
  add    $0x20,%rsp
  lea    0xc(%rsp),%rbp
  push   0x58(%rsp)
  push   0x58(%rsp)
  mov    %rbp,%rdi
  call   <frexpl@plt>
  add    %eax,%r14d
  push   0x68(%rsp)
  push   0x68(%rsp)
  push   0x78(%rsp)
  push   0x78(%rsp)
  call   <hypotl@plt>
  add    %eax,%r14d
  add    $0x30,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  call   <ilogbl@plt>
  add    %eax,%r14d
  push   0x68(%rsp)
  push   0x68(%rsp)
  mov    0x2c(%rsp),%edi
  call   <ldexpl@plt>
  add    %eax,%r14d
  add    $0x20,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  call   <lgammal@plt>
  mov    %rax,%r15
  mov    0x60(%rsp),%r12
  mov    0x68(%rsp),%r13d
  push   %r13
  push   %r12
  call   <llrintl@plt>
  mov    %rax,0x20(%rsp)
  add    $0x20,%rsp
  push   %r13
  push   %r12
  call   <llroundl@plt>
  add    %r15d,%r14d
  add    0x10(%rsp),%r14d
  add    %eax,%r14d
  push   %r13
  push   %r12
  call   <log10l@plt>
  add    %eax,%r14d
  add    $0x20,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  call   <log1pl@plt>
  add    %eax,%r14d
  push   0x68(%rsp)
  push   0x68(%rsp)
  call   <logbl@plt>
  add    %eax,%r14d
  add    $0x20,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  call   <logl@plt>
  mov    %rax,%r15
  mov    0x60(%rsp),%r12
  mov    0x68(%rsp),%r13d
  push   %r13
  push   %r12
  call   <lrintl@plt>
  mov    %rax,0x20(%rsp)
  add    $0x20,%rsp
  push   %r13
  push   %r12
  call   <lroundl@plt>
  add    %r15d,%r14d
  add    0x10(%rsp),%r14d
  add    %eax,%r14d
  push   %r13
  push   %r12
  lea    0x70(%rsp),%rdi
  call   <modfl@plt>
  lea    (%r14,%rax,1),%r12d
  add    $0x20,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  call   <nearbyintl@plt>
  add    %eax,%r12d
  push   0x68(%rsp)
  push   0x68(%rsp)
  push   0x78(%rsp)
  push   0x78(%rsp)
  call   <nextafterl@plt>
  add    %eax,%r12d
  add    $0x30,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  push   0x68(%rsp)
  push   0x68(%rsp)
  call   <powl@plt>
  add    %eax,%r12d
  add    $0x20,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  push   0x68(%rsp)
  push   0x68(%rsp)
  call   <remainderl@plt>
  add    %eax,%r12d
  add    $0x20,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  push   0x68(%rsp)
  push   0x68(%rsp)
  mov    %rbp,%rdi
  call   <remquol@plt>
  lea    (%r12,%rax,1),%ebp
  add    $0x20,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  call   <rintl@plt>
  add    %eax,%ebp
  push   0x68(%rsp)
  push   0x68(%rsp)
  call   <roundl@plt>
  add    %eax,%ebp
  add    $0x20,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  mov    %rbx,%rdi
  call   <scalblnl@plt>
  lea    0x0(%rbp,%rax,1),%ebx
  push   0x68(%rsp)
  push   0x68(%rsp)
  mov    0x2c(%rsp),%edi
  call   <scalbnl@plt>
  add    %eax,%ebx
  add    $0x20,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  call   <sinhl@plt>
  add    %eax,%ebx
  push   0x68(%rsp)
  push   0x68(%rsp)
  call   <sinl@plt>
  add    %eax,%ebx
  add    $0x20,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  call   <sqrtl@plt>
  add    %eax,%ebx
  push   0x68(%rsp)
  push   0x68(%rsp)
  call   <tanhl@plt>
  add    %eax,%ebx
  add    $0x20,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  call   <tanl@plt>
  add    %eax,%ebx
  push   0x68(%rsp)
  push   0x68(%rsp)
  call   <tgammal@plt>
  add    %eax,%ebx
  add    $0x20,%rsp
  push   0x58(%rsp)
  push   0x58(%rsp)
  call   <truncl@plt>
  add    %ebx,%eax
  add    $0x28,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
```

assistant: ```c
int testl(long double long_double_x, int int_x, long long_x) {
  int r = 0;
  r += __finitel(long_double_x);
  r += __fpclassifyl(long_double_x);
  r += __isinfl(long_double_x);
  r += __isnanl(long_double_x);
  r += __signbitl(long_double_x);
  r += acoshl(long_double_x);
  r += acosl(long_double_x);
  r += asinhl(long_double_x);
  r += asinl(long_double_x);
  r += atan2l(long_double_x, long_double_x);
  r += atanhl(long_double_x);
  r += atanl(long_double_x);
  r += cbrtl(long_double_x);
  r += ceill(long_double_x);
  r += copysignl(long_double_x, long_double_x);
  r += coshl(long_double_x);
  r += cosl(long_double_x);
  r += erfcl(long_double_x);
  r += erfl(long_double_x);
  r += exp2l(long_double_x);
  r += expl(long_double_x);
  r += expm1l(long_double_x);
  r += fabsl(long_double_x);
  r += fdiml(long_double_x, long_double_x);
  r += floorl(long_double_x);
  r += fmal(long_double_x, long_double_x, long_double_x);
  r += fmaxl(long_double_x, long_double_x);
  r += fminl(long_double_x, long_double_x);
  r += fmodl(long_double_x, long_double_x);
  r += frexpl(long_double_x, &int_x);
  r += hypotl(long_double_x, long_double_x);
  r += ilogbl(long_double_x);
  r += ldexpl(long_double_x, int_x);
  r += lgammal(long_double_x);
  r += llrintl(long_double_x);
  r += llroundl(long_double_x);
  r += log10l(long_double_x);
  r += log1pl(long_double_x);
  r += logbl(long_double_x);
  r += logl(long_double_x);
  r += lrintl(long_double_x);
  r += lroundl(long_double_x);
  r += modfl(long_double_x, &long_double_x);
  r += nearbyintl(long_double_x);
  r += nextafterl(long_double_x, long_double_x);
  r += powl(long_double_x, long_double_x);
  r += remainderl(long_double_x, long_double_x);
  r += remquol(long_double_x, long_double_x, &int_x);
  r += rintl(long_double_x);
  r += roundl(long_double_x);
  r += scalblnl(long_double_x, long_x);
  r += scalbnl(long_double_x, int_x);
  r += sinhl(long_double_x);
  r += sinl(long_double_x);
  r += sqrtl(long_double_x);
  r += tanhl(long_double_x);
  r += tanl(long_double_x);
  r += tgammal(long_double_x);
  r += truncl(long_double_x);
  return r;
}
```