user: Demonstrate the C code that generates the assembly output below:

```asm
<round_64>:
  endbr64
  push   %rbx
  sub    $0x50,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x48(%rsp)
  xor    %eax,%eax
  movabs $0x31e38d7ea4c68000,%rbx
  mov    %rbx,0x8(%rsp)
  movabs $0x2386f26fc10000,%rax
  mov    %rax,0x38(%rsp)
  mov    %rax,0x40(%rsp)
  mov    0x38(%rsp),%rdi
  call   <__bid_floatdidd@plt>
  movq   %xmm0,0x18(%rsp)
  mov    0x40(%rsp),%rdi
  call   <__bid_floatunsdidd@plt>
  movq   %xmm0,0x20(%rsp)
  mov    %rbx,0x28(%rsp)
  mov    %rbx,0x30(%rsp)
  lea    0x18(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L232
  lea    0x20(%rsp),%rdi
  mov    $0x8,%edx
  mov    %rdi,%rsi
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L232
  lea    0x20(%rsp),%rsi
  lea    0x28(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L232
  lea    0x20(%rsp),%rsi
  lea    0x30(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L232
  movabs $0x31e38d7ea4c68000,%rbx
  mov    %rbx,0x8(%rsp)
  movabs $0x2386f26fc10001,%rax
  mov    %rax,0x38(%rsp)
  mov    %rax,0x40(%rsp)
  mov    0x38(%rsp),%rdi
  call   <__bid_floatdidd@plt>
  movq   %xmm0,0x18(%rsp)
  mov    0x40(%rsp),%rdi
  call   <__bid_floatunsdidd@plt>
  movq   %xmm0,0x20(%rsp)
  mov    %rbx,0x28(%rsp)
  mov    %rbx,0x30(%rsp)
  lea    0x18(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L560
  lea    0x20(%rsp),%rdi
  mov    $0x8,%edx
  mov    %rdi,%rsi
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L560
  lea    0x20(%rsp),%rsi
  lea    0x28(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L560
  lea    0x20(%rsp),%rsi
  lea    0x30(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L560
  movabs $0x31e38d7ea4c68000,%rbx
  mov    %rbx,0x8(%rsp)
  movabs $0x2386f26fc10002,%rax
  mov    %rax,0x38(%rsp)
  mov    %rax,0x40(%rsp)
  mov    0x38(%rsp),%rdi
  call   <__bid_floatdidd@plt>
  movq   %xmm0,0x18(%rsp)
  mov    0x40(%rsp),%rdi
  call   <__bid_floatunsdidd@plt>
  movq   %xmm0,0x20(%rsp)
  mov    %rbx,0x28(%rsp)
  mov    %rbx,0x30(%rsp)
  lea    0x18(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L113
  lea    0x20(%rsp),%rdi
  mov    $0x8,%edx
  mov    %rdi,%rsi
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L113
  lea    0x20(%rsp),%rsi
  lea    0x28(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L113
  lea    0x20(%rsp),%rsi
  lea    0x30(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L113
  movabs $0x31e38d7ea4c68000,%rbx
  mov    %rbx,0x8(%rsp)
  movabs $0x2386f26fc10003,%rax
  mov    %rax,0x38(%rsp)
  mov    %rax,0x40(%rsp)
  mov    0x38(%rsp),%rdi
  call   <__bid_floatdidd@plt>
  movq   %xmm0,0x18(%rsp)
  mov    0x40(%rsp),%rdi
  call   <__bid_floatunsdidd@plt>
  movq   %xmm0,0x20(%rsp)
  mov    %rbx,0x28(%rsp)
  mov    %rbx,0x30(%rsp)
  lea    0x18(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L186
  lea    0x20(%rsp),%rdi
  mov    $0x8,%edx
  mov    %rdi,%rsi
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L186
  lea    0x20(%rsp),%rsi
  lea    0x28(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L186
  lea    0x20(%rsp),%rsi
  lea    0x30(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L186
  movabs $0x31e38d7ea4c68000,%rbx
  mov    %rbx,0x8(%rsp)
  movabs $0x2386f26fc10004,%rax
  mov    %rax,0x38(%rsp)
  mov    %rax,0x40(%rsp)
  mov    0x38(%rsp),%rdi
  call   <__bid_floatdidd@plt>
  movq   %xmm0,0x18(%rsp)
  mov    0x40(%rsp),%rdi
  call   <__bid_floatunsdidd@plt>
  movq   %xmm0,0x20(%rsp)
  mov    %rbx,0x28(%rsp)
  mov    %rbx,0x30(%rsp)
  lea    0x18(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L314
  lea    0x20(%rsp),%rdi
  mov    $0x8,%edx
  mov    %rdi,%rsi
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L314
  lea    0x20(%rsp),%rsi
  lea    0x28(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L314
  lea    0x20(%rsp),%rsi
  lea    0x30(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L314
  movabs $0x32038d7ea4c68000,%rbx
  mov    %rbx,0x8(%rsp)
  movabs $0x16345785d8a0031,%rax
  mov    %rax,0x38(%rsp)
  mov    %rax,0x40(%rsp)
  mov    0x38(%rsp),%rdi
  call   <__bid_floatdidd@plt>
  movq   %xmm0,0x18(%rsp)
  mov    0x40(%rsp),%rdi
  call   <__bid_floatunsdidd@plt>
  movq   %xmm0,0x20(%rsp)
  mov    %rbx,0x28(%rsp)
  mov    %rbx,0x30(%rsp)
  lea    0x18(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L638
  lea    0x20(%rsp),%rdi
  mov    $0x8,%edx
  mov    %rdi,%rsi
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L638
  lea    0x20(%rsp),%rsi
  lea    0x28(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L638
  lea    0x20(%rsp),%rsi
  lea    0x30(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L638
  movabs $0x32038d7ea4c68001,%rbx
  mov    %rbx,0x8(%rsp)
  movabs $0x16345785d8a0033,%rax
  mov    %rax,0x38(%rsp)
  mov    %rax,0x40(%rsp)
  mov    0x38(%rsp),%rdi
  call   <__bid_floatdidd@plt>
  movq   %xmm0,0x18(%rsp)
  mov    0x40(%rsp),%rdi
  call   <__bid_floatunsdidd@plt>
  movq   %xmm0,0x20(%rsp)
  mov    %rbx,0x28(%rsp)
  mov    %rbx,0x30(%rsp)
  lea    0x18(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L294
  lea    0x20(%rsp),%rdi
  mov    $0x8,%edx
  mov    %rdi,%rsi
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L294
  lea    0x20(%rsp),%rsi
  lea    0x28(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L294
  lea    0x20(%rsp),%rsi
  lea    0x30(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L294
  movabs $0x31e38d7ea4c68001,%rbx
  mov    %rbx,0x8(%rsp)
  movabs $0x2386f26fc10006,%rax
  mov    %rax,0x38(%rsp)
  mov    %rax,0x40(%rsp)
  mov    0x38(%rsp),%rdi
  call   <__bid_floatdidd@plt>
  movq   %xmm0,0x18(%rsp)
  mov    0x40(%rsp),%rdi
  call   <__bid_floatunsdidd@plt>
  movq   %xmm0,0x20(%rsp)
  mov    %rbx,0x28(%rsp)
  mov    %rbx,0x30(%rsp)
  lea    0x18(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L215
  lea    0x20(%rsp),%rdi
  mov    $0x8,%edx
  mov    %rdi,%rsi
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L215
  lea    0x20(%rsp),%rsi
  lea    0x28(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L215
  lea    0x20(%rsp),%rsi
  lea    0x30(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L215
  movabs $0x31e38d7ea4c68001,%rbx
  mov    %rbx,0x8(%rsp)
  movabs $0x2386f26fc10007,%rax
  mov    %rax,0x38(%rsp)
  mov    %rax,0x40(%rsp)
  mov    0x38(%rsp),%rdi
  call   <__bid_floatdidd@plt>
  movq   %xmm0,0x18(%rsp)
  mov    0x40(%rsp),%rdi
  call   <__bid_floatunsdidd@plt>
  movq   %xmm0,0x20(%rsp)
  mov    %rbx,0x28(%rsp)
  mov    %rbx,0x30(%rsp)
  lea    0x18(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L176
  lea    0x20(%rsp),%rdi
  mov    $0x8,%edx
  mov    %rdi,%rsi
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L176
  lea    0x20(%rsp),%rsi
  lea    0x28(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L176
  lea    0x20(%rsp),%rsi
  lea    0x30(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L176
  movabs $0x31e38d7ea4c68001,%rbx
  mov    %rbx,0x8(%rsp)
  movabs $0x2386f26fc10008,%rax
  mov    %rax,0x38(%rsp)
  mov    %rax,0x40(%rsp)
  mov    0x38(%rsp),%rdi
  call   <__bid_floatdidd@plt>
  movq   %xmm0,0x18(%rsp)
  mov    0x40(%rsp),%rdi
  call   <__bid_floatunsdidd@plt>
  movq   %xmm0,0x20(%rsp)
  mov    %rbx,0x28(%rsp)
  mov    %rbx,0x30(%rsp)
  lea    0x18(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L342
  lea    0x20(%rsp),%rdi
  mov    $0x8,%edx
  mov    %rdi,%rsi
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L342
  lea    0x20(%rsp),%rsi
  lea    0x28(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L342
  lea    0x20(%rsp),%rsi
  lea    0x30(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L342
  movabs $0x31e38d7ea4c68001,%rbx
  mov    %rbx,0x8(%rsp)
  movabs $0x2386f26fc10009,%rax
  mov    %rax,0x38(%rsp)
  mov    %rax,0x40(%rsp)
  mov    0x38(%rsp),%rdi
  call   <__bid_floatdidd@plt>
  movq   %xmm0,0x18(%rsp)
  mov    0x40(%rsp),%rdi
  call   <__bid_floatunsdidd@plt>
  movq   %xmm0,0x20(%rsp)
  mov    %rbx,0x28(%rsp)
  mov    %rbx,0x30(%rsp)
  lea    0x18(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L284
  lea    0x20(%rsp),%rdi
  mov    $0x8,%edx
  mov    %rdi,%rsi
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L284
  lea    0x20(%rsp),%rsi
  lea    0x28(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L284
  lea    0x20(%rsp),%rsi
  lea    0x30(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L284
  movabs $0x31e38d7ea4c68001,%rbx
  mov    %rbx,0x8(%rsp)
  movabs $0x2386f26fc1000a,%rax
  mov    %rax,0x38(%rsp)
  mov    %rax,0x40(%rsp)
  mov    0x38(%rsp),%rdi
  call   <__bid_floatdidd@plt>
  movq   %xmm0,0x18(%rsp)
  mov    0x40(%rsp),%rdi
  call   <__bid_floatunsdidd@plt>
  movq   %xmm0,0x20(%rsp)
  mov    %rbx,0x28(%rsp)
  mov    %rbx,0x30(%rsp)
  lea    0x18(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L557
  lea    0x20(%rsp),%rdi
  mov    $0x8,%edx
  mov    %rdi,%rsi
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L557
  lea    0x20(%rsp),%rsi
  lea    0x28(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L557
  lea    0x20(%rsp),%rsi
  lea    0x30(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L557
  movabs $0xb1e38d7ea4c68000,%rbx
  mov    %rbx,0x8(%rsp)
  movabs $0xffdc790d903f0000,%rax
  mov    %rax,0x38(%rsp)
  mov    0x38(%rsp),%rdi
  call   <__bid_floatdidd@plt>
  movq   %xmm0,0x10(%rsp)
  mov    %rbx,0x18(%rsp)
  lea    0x10(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L95
  lea    0x18(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L95
  movabs $0xb1e38d7ea4c68000,%rbx
  mov    %rbx,0x8(%rsp)
  movabs $0xffdc790d903effff,%rax
  mov    %rax,0x38(%rsp)
  mov    0x38(%rsp),%rdi
  call   <__bid_floatdidd@plt>
  movq   %xmm0,0x10(%rsp)
  mov    %rbx,0x18(%rsp)
  lea    0x10(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L55
  lea    0x18(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L55
  movabs $0xb1e38d7ea4c68000,%rbx
  mov    %rbx,0x8(%rsp)
  movabs $0xffdc790d903efffe,%rax
  mov    %rax,0x38(%rsp)
  mov    0x38(%rsp),%rdi
  call   <__bid_floatdidd@plt>
  movq   %xmm0,0x10(%rsp)
  mov    %rbx,0x18(%rsp)
  lea    0x10(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L214
  lea    0x18(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L214
  movabs $0xb1e38d7ea4c68000,%rbx
  mov    %rbx,0x8(%rsp)
  movabs $0xffdc790d903efffd,%rax
  mov    %rax,0x38(%rsp)
  mov    0x38(%rsp),%rdi
  call   <__bid_floatdidd@plt>
  movq   %xmm0,0x10(%rsp)
  mov    %rbx,0x18(%rsp)
  lea    0x10(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L0
  lea    0x18(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L0
  movabs $0xb1e38d7ea4c68000,%rbx
  mov    %rbx,0x8(%rsp)
  movabs $0xffdc790d903efffc,%rax
  mov    %rax,0x38(%rsp)
  mov    0x38(%rsp),%rdi
  call   <__bid_floatdidd@plt>
  movq   %xmm0,0x10(%rsp)
  mov    %rbx,0x18(%rsp)
  lea    0x10(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L240
  lea    0x18(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L240
  movabs $0xb2038d7ea4c68000,%rbx
  mov    %rbx,0x8(%rsp)
  movabs $0xfe9cba87a275ffcf,%rax
  mov    %rax,0x38(%rsp)
  mov    0x38(%rsp),%rdi
  call   <__bid_floatdidd@plt>
  movq   %xmm0,0x10(%rsp)
  mov    %rbx,0x18(%rsp)
  lea    0x10(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L439
  lea    0x18(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L439
  movabs $0xb2038d7ea4c68001,%rbx
  mov    %rbx,0x8(%rsp)
  movabs $0xfe9cba87a275ffcd,%rax
  mov    %rax,0x38(%rsp)
  mov    0x38(%rsp),%rdi
  call   <__bid_floatdidd@plt>
  movq   %xmm0,0x10(%rsp)
  mov    %rbx,0x18(%rsp)
  lea    0x10(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L109
  lea    0x18(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L109
  movabs $0xb1e38d7ea4c68001,%rbx
  mov    %rbx,0x8(%rsp)
  movabs $0xffdc790d903efffa,%rax
  mov    %rax,0x38(%rsp)
  mov    0x38(%rsp),%rdi
  call   <__bid_floatdidd@plt>
  movq   %xmm0,0x10(%rsp)
  mov    %rbx,0x18(%rsp)
  lea    0x10(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L715
  lea    0x18(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L715
  movabs $0xb1e38d7ea4c68001,%rbx
  mov    %rbx,0x8(%rsp)
  movabs $0xffdc790d903efff9,%rax
  mov    %rax,0x38(%rsp)
  mov    0x38(%rsp),%rdi
  call   <__bid_floatdidd@plt>
  movq   %xmm0,0x10(%rsp)
  mov    %rbx,0x18(%rsp)
  lea    0x10(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L592
  lea    0x18(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L592
  movabs $0xb1e38d7ea4c68001,%rbx
  mov    %rbx,0x8(%rsp)
  movabs $0xffdc790d903efff8,%rax
  mov    %rax,0x38(%rsp)
  mov    0x38(%rsp),%rdi
  call   <__bid_floatdidd@plt>
  movq   %xmm0,0x10(%rsp)
  mov    %rbx,0x18(%rsp)
  lea    0x10(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L649
  lea    0x18(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L649
  movabs $0xb1e38d7ea4c68001,%rbx
  mov    %rbx,0x8(%rsp)
  movabs $0xffdc790d903efff7,%rax
  mov    %rax,0x38(%rsp)
  mov    0x38(%rsp),%rdi
  call   <__bid_floatdidd@plt>
  movq   %xmm0,0x10(%rsp)
  mov    %rbx,0x18(%rsp)
  lea    0x10(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L561
  lea    0x18(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L561
  movabs $0xb1e38d7ea4c68001,%rbx
  mov    %rbx,0x8(%rsp)
  movabs $0xffdc790d903efff6,%rax
  mov    %rax,0x38(%rsp)
  mov    0x38(%rsp),%rdi
  call   <__bid_floatdidd@plt>
  movq   %xmm0,0x10(%rsp)
  mov    %rbx,0x18(%rsp)
  lea    0x10(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L400
  lea    0x18(%rsp),%rsi
  lea    0x8(%rsp),%rdi
  mov    $0x8,%edx
  call   <memcmp@plt>
  test   %eax,%eax
  jne    L400
  mov    0x48(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L363
  add    $0x50,%rsp
  pop    %rbx
  ret
L232:
  call   <abort@plt>
L560:
  call   <abort@plt>
L113:
  call   <abort@plt>
L186:
  call   <abort@plt>
L314:
  call   <abort@plt>
L638:
  call   <abort@plt>
L294:
  call   <abort@plt>
L215:
  call   <abort@plt>
L176:
  call   <abort@plt>
L342:
  call   <abort@plt>
L284:
  call   <abort@plt>
L557:
  call   <abort@plt>
L95:
  call   <abort@plt>
L55:
  call   <abort@plt>
L214:
  call   <abort@plt>
L0:
  call   <abort@plt>
L240:
  call   <abort@plt>
L439:
  call   <abort@plt>
L109:
  call   <abort@plt>
L715:
  call   <abort@plt>
L592:
  call   <abort@plt>
L649:
  call   <abort@plt>
L561:
  call   <abort@plt>
L400:
  call   <abort@plt>
L363:
  call   <__stack_chk_fail@plt>
```

assistant: ```c
void round_64(void) {
  volatile _Decimal64 x, a, b, c, d, e, f, g, h;
  volatile int si;
  volatile unsigned int ui;
  volatile long long sll;
  volatile unsigned long long ull;
  x = 10000000000000000.DD;
  sll = 10000000000000000LL;
  ull = 10000000000000000ULL;
  b = sll;
  d = ull;
  f = 10000000000000000LL;
  g = 10000000000000000ULL;
  if ((__builtin_memcmp((void *)&x, (void *)&b, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&d, (void *)&d, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&f, (void *)&d, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&g, (void *)&d, sizeof(_Decimal64)) != 0))
    __builtin_abort();
  ;
  x = 10000000000000001.DD;
  sll = 10000000000000001LL;
  ull = 10000000000000001ULL;
  b = sll;
  d = ull;
  f = 10000000000000001LL;
  g = 10000000000000001ULL;
  if ((__builtin_memcmp((void *)&x, (void *)&b, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&d, (void *)&d, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&f, (void *)&d, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&g, (void *)&d, sizeof(_Decimal64)) != 0))
    __builtin_abort();
  ;
  x = 10000000000000002.DD;
  sll = 10000000000000002LL;
  ull = 10000000000000002ULL;
  b = sll;
  d = ull;
  f = 10000000000000002LL;
  g = 10000000000000002ULL;
  if ((__builtin_memcmp((void *)&x, (void *)&b, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&d, (void *)&d, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&f, (void *)&d, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&g, (void *)&d, sizeof(_Decimal64)) != 0))
    __builtin_abort();
  ;
  x = 10000000000000003.DD;
  sll = 10000000000000003LL;
  ull = 10000000000000003ULL;
  b = sll;
  d = ull;
  f = 10000000000000003LL;
  g = 10000000000000003ULL;
  if ((__builtin_memcmp((void *)&x, (void *)&b, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&d, (void *)&d, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&f, (void *)&d, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&g, (void *)&d, sizeof(_Decimal64)) != 0))
    __builtin_abort();
  ;
  x = 10000000000000004.DD;
  sll = 10000000000000004LL;
  ull = 10000000000000004ULL;
  b = sll;
  d = ull;
  f = 10000000000000004LL;
  g = 10000000000000004ULL;
  if ((__builtin_memcmp((void *)&x, (void *)&b, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&d, (void *)&d, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&f, (void *)&d, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&g, (void *)&d, sizeof(_Decimal64)) != 0))
    __builtin_abort();
  ;
  x = 100000000000000049.DD;
  sll = 100000000000000049LL;
  ull = 100000000000000049ULL;
  b = sll;
  d = ull;
  f = 100000000000000049LL;
  g = 100000000000000049ULL;
  if ((__builtin_memcmp((void *)&x, (void *)&b, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&d, (void *)&d, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&f, (void *)&d, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&g, (void *)&d, sizeof(_Decimal64)) != 0))
    __builtin_abort();
  ;
  x = 100000000000000051.DD;
  sll = 100000000000000051LL;
  ull = 100000000000000051ULL;
  b = sll;
  d = ull;
  f = 100000000000000051LL;
  g = 100000000000000051ULL;
  if ((__builtin_memcmp((void *)&x, (void *)&b, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&d, (void *)&d, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&f, (void *)&d, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&g, (void *)&d, sizeof(_Decimal64)) != 0))
    __builtin_abort();
  ;
  x = 10000000000000006.DD;
  sll = 10000000000000006LL;
  ull = 10000000000000006ULL;
  b = sll;
  d = ull;
  f = 10000000000000006LL;
  g = 10000000000000006ULL;
  if ((__builtin_memcmp((void *)&x, (void *)&b, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&d, (void *)&d, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&f, (void *)&d, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&g, (void *)&d, sizeof(_Decimal64)) != 0))
    __builtin_abort();
  ;
  x = 10000000000000007.DD;
  sll = 10000000000000007LL;
  ull = 10000000000000007ULL;
  b = sll;
  d = ull;
  f = 10000000000000007LL;
  g = 10000000000000007ULL;
  if ((__builtin_memcmp((void *)&x, (void *)&b, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&d, (void *)&d, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&f, (void *)&d, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&g, (void *)&d, sizeof(_Decimal64)) != 0))
    __builtin_abort();
  ;
  x = 10000000000000008.DD;
  sll = 10000000000000008LL;
  ull = 10000000000000008ULL;
  b = sll;
  d = ull;
  f = 10000000000000008LL;
  g = 10000000000000008ULL;
  if ((__builtin_memcmp((void *)&x, (void *)&b, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&d, (void *)&d, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&f, (void *)&d, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&g, (void *)&d, sizeof(_Decimal64)) != 0))
    __builtin_abort();
  ;
  x = 10000000000000009.DD;
  sll = 10000000000000009LL;
  ull = 10000000000000009ULL;
  b = sll;
  d = ull;
  f = 10000000000000009LL;
  g = 10000000000000009ULL;
  if ((__builtin_memcmp((void *)&x, (void *)&b, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&d, (void *)&d, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&f, (void *)&d, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&g, (void *)&d, sizeof(_Decimal64)) != 0))
    __builtin_abort();
  ;
  x = 10000000000000010.DD;
  sll = 10000000000000010LL;
  ull = 10000000000000010ULL;
  b = sll;
  d = ull;
  f = 10000000000000010LL;
  g = 10000000000000010ULL;
  if ((__builtin_memcmp((void *)&x, (void *)&b, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&d, (void *)&d, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&f, (void *)&d, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&g, (void *)&d, sizeof(_Decimal64)) != 0))
    __builtin_abort();
  ;
  x = -10000000000000000.DD;
  sll = -10000000000000000LL;
  a = sll;
  b = -10000000000000000LL;
  if ((__builtin_memcmp((void *)&x, (void *)&a, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&x, (void *)&b, sizeof(_Decimal64)) != 0))
    __builtin_abort();
  ;
  x = -10000000000000001.DD;
  sll = -10000000000000001LL;
  a = sll;
  b = -10000000000000001LL;
  if ((__builtin_memcmp((void *)&x, (void *)&a, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&x, (void *)&b, sizeof(_Decimal64)) != 0))
    __builtin_abort();
  ;
  x = -10000000000000002.DD;
  sll = -10000000000000002LL;
  a = sll;
  b = -10000000000000002LL;
  if ((__builtin_memcmp((void *)&x, (void *)&a, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&x, (void *)&b, sizeof(_Decimal64)) != 0))
    __builtin_abort();
  ;
  x = -10000000000000003.DD;
  sll = -10000000000000003LL;
  a = sll;
  b = -10000000000000003LL;
  if ((__builtin_memcmp((void *)&x, (void *)&a, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&x, (void *)&b, sizeof(_Decimal64)) != 0))
    __builtin_abort();
  ;
  x = -10000000000000004.DD;
  sll = -10000000000000004LL;
  a = sll;
  b = -10000000000000004LL;
  if ((__builtin_memcmp((void *)&x, (void *)&a, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&x, (void *)&b, sizeof(_Decimal64)) != 0))
    __builtin_abort();
  ;
  x = -100000000000000049.DD;
  sll = -100000000000000049LL;
  a = sll;
  b = -100000000000000049LL;
  if ((__builtin_memcmp((void *)&x, (void *)&a, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&x, (void *)&b, sizeof(_Decimal64)) != 0))
    __builtin_abort();
  ;
  x = -100000000000000051.DD;
  sll = -100000000000000051LL;
  a = sll;
  b = -100000000000000051LL;
  if ((__builtin_memcmp((void *)&x, (void *)&a, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&x, (void *)&b, sizeof(_Decimal64)) != 0))
    __builtin_abort();
  ;
  x = -10000000000000006.DD;
  sll = -10000000000000006LL;
  a = sll;
  b = -10000000000000006LL;
  if ((__builtin_memcmp((void *)&x, (void *)&a, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&x, (void *)&b, sizeof(_Decimal64)) != 0))
    __builtin_abort();
  ;
  x = -10000000000000007.DD;
  sll = -10000000000000007LL;
  a = sll;
  b = -10000000000000007LL;
  if ((__builtin_memcmp((void *)&x, (void *)&a, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&x, (void *)&b, sizeof(_Decimal64)) != 0))
    __builtin_abort();
  ;
  x = -10000000000000008.DD;
  sll = -10000000000000008LL;
  a = sll;
  b = -10000000000000008LL;
  if ((__builtin_memcmp((void *)&x, (void *)&a, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&x, (void *)&b, sizeof(_Decimal64)) != 0))
    __builtin_abort();
  ;
  x = -10000000000000009.DD;
  sll = -10000000000000009LL;
  a = sll;
  b = -10000000000000009LL;
  if ((__builtin_memcmp((void *)&x, (void *)&a, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&x, (void *)&b, sizeof(_Decimal64)) != 0))
    __builtin_abort();
  ;
  x = -10000000000000010.DD;
  sll = -10000000000000010LL;
  a = sll;
  b = -10000000000000010LL;
  if ((__builtin_memcmp((void *)&x, (void *)&a, sizeof(_Decimal64)) != 0) || (__builtin_memcmp((void *)&x, (void *)&b, sizeof(_Decimal64)) != 0))
    __builtin_abort();
  ;
}
```