user: 请从给定的汇编指令推导出C源代码：

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x300,%rsp
  movabs $0x1555555555555556,%rax
  mov    %rax,-0x300(%rbp)
  movq   $0x6,-0x2f8(%rbp)
  mov    -0x300(%rbp),%rax
  mov    %rax,-0x300(%rbp)
  mov    -0x2f8(%rbp),%rax
  mov    %rax,-0x2f8(%rbp)
  mov    -0x300(%rbp),%rax
  imul   -0x2f8(%rbp),%rax
  mov    %rax,-0x2f0(%rbp)
  mov    -0x2f0(%rbp),%rax
  mov    %rax,-0x2f0(%rbp)
  movabs $0x8000000000000004,%rax
  cmp    %rax,-0x2f0(%rbp)
  je     L272
  call   <abort@plt>
L272:
  movabs $0xeaaaaaaaaaaaaaaa,%rax
  mov    %rax,-0x2e8(%rbp)
  movq   $0xfffffffffffffffa,-0x2e0(%rbp)
  mov    -0x2e8(%rbp),%rax
  mov    %rax,-0x2e8(%rbp)
  mov    -0x2e0(%rbp),%rax
  mov    %rax,-0x2e0(%rbp)
  mov    -0x2e8(%rbp),%rax
  imul   -0x2e0(%rbp),%rax
  mov    %rax,-0x2d8(%rbp)
  mov    -0x2d8(%rbp),%rax
  mov    %rax,-0x2d8(%rbp)
  movabs $0x8000000000000004,%rax
  cmp    %rax,-0x2d8(%rbp)
  je     L189
  call   <abort@plt>
L189:
  movabs $0x1555555555555556,%rax
  mov    %rax,-0x2d0(%rbp)
  movq   $0xfffffffffffffffa,-0x2c8(%rbp)
  mov    -0x2d0(%rbp),%rax
  mov    %rax,-0x2d0(%rbp)
  mov    -0x2c8(%rbp),%rax
  mov    %rax,-0x2c8(%rbp)
  mov    -0x2d0(%rbp),%rax
  imul   -0x2c8(%rbp),%rax
  mov    %rax,-0x2c0(%rbp)
  mov    -0x2c0(%rbp),%rax
  mov    %rax,-0x2c0(%rbp)
  movabs $0x7ffffffffffffffc,%rax
  cmp    %rax,-0x2c0(%rbp)
  je     L262
  call   <abort@plt>
L262:
  movabs $0xeaaaaaaaaaaaaaaa,%rax
  mov    %rax,-0x2b8(%rbp)
  movq   $0x6,-0x2b0(%rbp)
  mov    -0x2b8(%rbp),%rax
  mov    %rax,-0x2b8(%rbp)
  mov    -0x2b0(%rbp),%rax
  mov    %rax,-0x2b0(%rbp)
  mov    -0x2b8(%rbp),%rax
  imul   -0x2b0(%rbp),%rax
  mov    %rax,-0x2a8(%rbp)
  mov    -0x2a8(%rbp),%rax
  mov    %rax,-0x2a8(%rbp)
  movabs $0x7ffffffffffffffc,%rax
  cmp    %rax,-0x2a8(%rbp)
  je     L89
  call   <abort@plt>
L89:
  mov    $0x81234568,%eax
  mov    %rax,-0x2a0(%rbp)
  mov    $0xfdbe971f,%eax
  mov    %rax,-0x298(%rbp)
  mov    -0x2a0(%rbp),%rax
  mov    %rax,-0x2a0(%rbp)
  mov    -0x298(%rbp),%rax
  mov    %rax,-0x298(%rbp)
  mov    -0x2a0(%rbp),%rax
  imul   -0x298(%rbp),%rax
  mov    %rax,-0x290(%rbp)
  mov    -0x290(%rbp),%rax
  mov    %rax,-0x290(%rbp)
  movabs $0x80000000bc65bf98,%rax
  cmp    %rax,-0x290(%rbp)
  je     L41
  call   <abort@plt>
L41:
  movabs $0xffffffff7edcba98,%rax
  mov    %rax,-0x288(%rbp)
  movabs $0xffffffff024168e1,%rax
  mov    %rax,-0x280(%rbp)
  mov    -0x288(%rbp),%rax
  mov    %rax,-0x288(%rbp)
  mov    -0x280(%rbp),%rax
  mov    %rax,-0x280(%rbp)
  mov    -0x288(%rbp),%rax
  imul   -0x280(%rbp),%rax
  mov    %rax,-0x278(%rbp)
  mov    -0x278(%rbp),%rax
  mov    %rax,-0x278(%rbp)
  movabs $0x80000000bc65bf98,%rax
  cmp    %rax,-0x278(%rbp)
  je     L56
  call   <abort@plt>
L56:
  mov    $0x81234568,%eax
  mov    %rax,-0x270(%rbp)
  movabs $0xffffffff024168e1,%rax
  mov    %rax,-0x268(%rbp)
  mov    -0x270(%rbp),%rax
  mov    %rax,-0x270(%rbp)
  mov    -0x268(%rbp),%rax
  mov    %rax,-0x268(%rbp)
  mov    -0x270(%rbp),%rax
  imul   -0x268(%rbp),%rax
  mov    %rax,-0x260(%rbp)
  mov    -0x260(%rbp),%rax
  mov    %rax,-0x260(%rbp)
  movabs $0x7fffffff439a4068,%rax
  cmp    %rax,-0x260(%rbp)
  je     L161
  call   <abort@plt>
L161:
  movabs $0xffffffff7edcba98,%rax
  mov    %rax,-0x258(%rbp)
  mov    $0xfdbe971f,%eax
  mov    %rax,-0x250(%rbp)
  mov    -0x258(%rbp),%rax
  mov    %rax,-0x258(%rbp)
  mov    -0x250(%rbp),%rax
  mov    %rax,-0x250(%rbp)
  mov    -0x258(%rbp),%rax
  imul   -0x250(%rbp),%rax
  mov    %rax,-0x248(%rbp)
  mov    -0x248(%rbp),%rax
  mov    %rax,-0x248(%rbp)
  movabs $0x7fffffff439a4068,%rax
  cmp    %rax,-0x248(%rbp)
  je     L207
  call   <abort@plt>
L207:
  movabs $0x1555555555555555,%rax
  mov    %rax,-0x240(%rbp)
  movq   $0x7,-0x238(%rbp)
  mov    -0x240(%rbp),%rax
  mov    %rax,-0x240(%rbp)
  mov    -0x238(%rbp),%rax
  mov    %rax,-0x238(%rbp)
  mov    -0x240(%rbp),%rax
  imul   -0x238(%rbp),%rax
  mov    %rax,-0x230(%rbp)
  mov    -0x230(%rbp),%rax
  mov    %rax,-0x230(%rbp)
  movabs $0x9555555555555553,%rax
  cmp    %rax,-0x230(%rbp)
  je     L244
  call   <abort@plt>
L244:
  movabs $0xeaaaaaaaaaaaaaab,%rax
  mov    %rax,-0x228(%rbp)
  movq   $0xfffffffffffffff9,-0x220(%rbp)
  mov    -0x228(%rbp),%rax
  mov    %rax,-0x228(%rbp)
  mov    -0x220(%rbp),%rax
  mov    %rax,-0x220(%rbp)
  mov    -0x228(%rbp),%rax
  imul   -0x220(%rbp),%rax
  mov    %rax,-0x218(%rbp)
  mov    -0x218(%rbp),%rax
  mov    %rax,-0x218(%rbp)
  movabs $0x9555555555555553,%rax
  cmp    %rax,-0x218(%rbp)
  je     L58
  call   <abort@plt>
L58:
  movabs $0x1555555555555555,%rax
  mov    %rax,-0x210(%rbp)
  movq   $0xfffffffffffffff9,-0x208(%rbp)
  mov    -0x210(%rbp),%rax
  mov    %rax,-0x210(%rbp)
  mov    -0x208(%rbp),%rax
  mov    %rax,-0x208(%rbp)
  mov    -0x210(%rbp),%rax
  imul   -0x208(%rbp),%rax
  mov    %rax,-0x200(%rbp)
  mov    -0x200(%rbp),%rax
  mov    %rax,-0x200(%rbp)
  movabs $0x6aaaaaaaaaaaaaad,%rax
  cmp    %rax,-0x200(%rbp)
  je     L42
  call   <abort@plt>
L42:
  movabs $0xeaaaaaaaaaaaaaab,%rax
  mov    %rax,-0x1f8(%rbp)
  movq   $0x7,-0x1f0(%rbp)
  mov    -0x1f8(%rbp),%rax
  mov    %rax,-0x1f8(%rbp)
  mov    -0x1f0(%rbp),%rax
  mov    %rax,-0x1f0(%rbp)
  mov    -0x1f8(%rbp),%rax
  imul   -0x1f0(%rbp),%rax
  mov    %rax,-0x1e8(%rbp)
  mov    -0x1e8(%rbp),%rax
  mov    %rax,-0x1e8(%rbp)
  movabs $0x6aaaaaaaaaaaaaad,%rax
  cmp    %rax,-0x1e8(%rbp)
  je     L319
  call   <abort@plt>
L319:
  mov    $0x81234567,%eax
  mov    %rax,-0x1e0(%rbp)
  mov    $0xfdbe9720,%eax
  mov    %rax,-0x1d8(%rbp)
  mov    -0x1e0(%rbp),%rax
  mov    %rax,-0x1e0(%rbp)
  mov    -0x1d8(%rbp),%rax
  mov    %rax,-0x1d8(%rbp)
  mov    -0x1e0(%rbp),%rax
  imul   -0x1d8(%rbp),%rax
  mov    %rax,-0x1d0(%rbp)
  mov    -0x1d0(%rbp),%rax
  mov    %rax,-0x1d0(%rbp)
  movabs $0x800000003fca6de0,%rax
  cmp    %rax,-0x1d0(%rbp)
  je     L110
  call   <abort@plt>
L110:
  movabs $0xffffffff7edcba99,%rax
  mov    %rax,-0x1c8(%rbp)
  movabs $0xffffffff024168e0,%rax
  mov    %rax,-0x1c0(%rbp)
  mov    -0x1c8(%rbp),%rax
  mov    %rax,-0x1c8(%rbp)
  mov    -0x1c0(%rbp),%rax
  mov    %rax,-0x1c0(%rbp)
  mov    -0x1c8(%rbp),%rax
  imul   -0x1c0(%rbp),%rax
  mov    %rax,-0x1b8(%rbp)
  mov    -0x1b8(%rbp),%rax
  mov    %rax,-0x1b8(%rbp)
  movabs $0x800000003fca6de0,%rax
  cmp    %rax,-0x1b8(%rbp)
  je     L25
  call   <abort@plt>
L25:
  mov    $0x81234567,%eax
  mov    %rax,-0x1b0(%rbp)
  movabs $0xffffffff024168e0,%rax
  mov    %rax,-0x1a8(%rbp)
  mov    -0x1b0(%rbp),%rax
  mov    %rax,-0x1b0(%rbp)
  mov    -0x1a8(%rbp),%rax
  mov    %rax,-0x1a8(%rbp)
  mov    -0x1b0(%rbp),%rax
  imul   -0x1a8(%rbp),%rax
  mov    %rax,-0x1a0(%rbp)
  mov    -0x1a0(%rbp),%rax
  mov    %rax,-0x1a0(%rbp)
  movabs $0x7fffffffc0359220,%rax
  cmp    %rax,-0x1a0(%rbp)
  je     L2
  call   <abort@plt>
L2:
  movabs $0xffffffff7edcba99,%rax
  mov    %rax,-0x198(%rbp)
  mov    $0xfdbe9720,%eax
  mov    %rax,-0x190(%rbp)
  mov    -0x198(%rbp),%rax
  mov    %rax,-0x198(%rbp)
  mov    -0x190(%rbp),%rax
  mov    %rax,-0x190(%rbp)
  mov    -0x198(%rbp),%rax
  imul   -0x190(%rbp),%rax
  mov    %rax,-0x188(%rbp)
  mov    -0x188(%rbp),%rax
  mov    %rax,-0x188(%rbp)
  movabs $0x7fffffffc0359220,%rax
  cmp    %rax,-0x188(%rbp)
  je     L85
  call   <abort@plt>
L85:
  movq   $0x6,-0x180(%rbp)
  movabs $0x1555555555555556,%rax
  mov    %rax,-0x178(%rbp)
  mov    -0x180(%rbp),%rax
  mov    %rax,-0x180(%rbp)
  mov    -0x178(%rbp),%rax
  mov    %rax,-0x178(%rbp)
  mov    -0x180(%rbp),%rax
  imul   -0x178(%rbp),%rax
  mov    %rax,-0x170(%rbp)
  mov    -0x170(%rbp),%rax
  mov    %rax,-0x170(%rbp)
  movabs $0x8000000000000004,%rax
  cmp    %rax,-0x170(%rbp)
  je     L48
  call   <abort@plt>
L48:
  movq   $0xfffffffffffffffa,-0x168(%rbp)
  movabs $0xeaaaaaaaaaaaaaaa,%rax
  mov    %rax,-0x160(%rbp)
  mov    -0x168(%rbp),%rax
  mov    %rax,-0x168(%rbp)
  mov    -0x160(%rbp),%rax
  mov    %rax,-0x160(%rbp)
  mov    -0x168(%rbp),%rax
  imul   -0x160(%rbp),%rax
  mov    %rax,-0x158(%rbp)
  mov    -0x158(%rbp),%rax
  mov    %rax,-0x158(%rbp)
  movabs $0x8000000000000004,%rax
  cmp    %rax,-0x158(%rbp)
  je     L307
  call   <abort@plt>
L307:
  movq   $0xfffffffffffffffa,-0x150(%rbp)
  movabs $0x1555555555555556,%rax
  mov    %rax,-0x148(%rbp)
  mov    -0x150(%rbp),%rax
  mov    %rax,-0x150(%rbp)
  mov    -0x148(%rbp),%rax
  mov    %rax,-0x148(%rbp)
  mov    -0x150(%rbp),%rax
  imul   -0x148(%rbp),%rax
  mov    %rax,-0x140(%rbp)
  mov    -0x140(%rbp),%rax
  mov    %rax,-0x140(%rbp)
  movabs $0x7ffffffffffffffc,%rax
  cmp    %rax,-0x140(%rbp)
  je     L234
  call   <abort@plt>
L234:
  movq   $0x6,-0x138(%rbp)
  movabs $0xeaaaaaaaaaaaaaaa,%rax
  mov    %rax,-0x130(%rbp)
  mov    -0x138(%rbp),%rax
  mov    %rax,-0x138(%rbp)
  mov    -0x130(%rbp),%rax
  mov    %rax,-0x130(%rbp)
  mov    -0x138(%rbp),%rax
  imul   -0x130(%rbp),%rax
  mov    %rax,-0x128(%rbp)
  mov    -0x128(%rbp),%rax
  mov    %rax,-0x128(%rbp)
  movabs $0x7ffffffffffffffc,%rax
  cmp    %rax,-0x128(%rbp)
  je     L5
  call   <abort@plt>
L5:
  mov    $0xfdbe971f,%eax
  mov    %rax,-0x120(%rbp)
  mov    $0x81234568,%eax
  mov    %rax,-0x118(%rbp)
  mov    -0x120(%rbp),%rax
  mov    %rax,-0x120(%rbp)
  mov    -0x118(%rbp),%rax
  mov    %rax,-0x118(%rbp)
  mov    -0x120(%rbp),%rax
  imul   -0x118(%rbp),%rax
  mov    %rax,-0x110(%rbp)
  mov    -0x110(%rbp),%rax
  mov    %rax,-0x110(%rbp)
  movabs $0x80000000bc65bf98,%rax
  cmp    %rax,-0x110(%rbp)
  je     L288
  call   <abort@plt>
L288:
  movabs $0xffffffff024168e1,%rax
  mov    %rax,-0x108(%rbp)
  movabs $0xffffffff7edcba98,%rax
  mov    %rax,-0x100(%rbp)
  mov    -0x108(%rbp),%rax
  mov    %rax,-0x108(%rbp)
  mov    -0x100(%rbp),%rax
  mov    %rax,-0x100(%rbp)
  mov    -0x108(%rbp),%rax
  imul   -0x100(%rbp),%rax
  mov    %rax,-0xf8(%rbp)
  mov    -0xf8(%rbp),%rax
  mov    %rax,-0xf8(%rbp)
  movabs $0x80000000bc65bf98,%rax
  cmp    %rax,-0xf8(%rbp)
  je     L102
  call   <abort@plt>
L102:
  movabs $0xffffffff024168e1,%rax
  mov    %rax,-0xf0(%rbp)
  mov    $0x81234568,%eax
  mov    %rax,-0xe8(%rbp)
  mov    -0xf0(%rbp),%rax
  mov    %rax,-0xf0(%rbp)
  mov    -0xe8(%rbp),%rax
  mov    %rax,-0xe8(%rbp)
  mov    -0xf0(%rbp),%rax
  imul   -0xe8(%rbp),%rax
  mov    %rax,-0xe0(%rbp)
  mov    -0xe0(%rbp),%rax
  mov    %rax,-0xe0(%rbp)
  movabs $0x7fffffff439a4068,%rax
  cmp    %rax,-0xe0(%rbp)
  je     L246
  call   <abort@plt>
L246:
  mov    $0xfdbe971f,%eax
  mov    %rax,-0xd8(%rbp)
  movabs $0xffffffff7edcba98,%rax
  mov    %rax,-0xd0(%rbp)
  mov    -0xd8(%rbp),%rax
  mov    %rax,-0xd8(%rbp)
  mov    -0xd0(%rbp),%rax
  mov    %rax,-0xd0(%rbp)
  mov    -0xd8(%rbp),%rax
  imul   -0xd0(%rbp),%rax
  mov    %rax,-0xc8(%rbp)
  mov    -0xc8(%rbp),%rax
  mov    %rax,-0xc8(%rbp)
  movabs $0x7fffffff439a4068,%rax
  cmp    %rax,-0xc8(%rbp)
  je     L27
  call   <abort@plt>
L27:
  movq   $0x7,-0xc0(%rbp)
  movabs $0x1555555555555555,%rax
  mov    %rax,-0xb8(%rbp)
  mov    -0xc0(%rbp),%rax
  mov    %rax,-0xc0(%rbp)
  mov    -0xb8(%rbp),%rax
  mov    %rax,-0xb8(%rbp)
  mov    -0xc0(%rbp),%rax
  imul   -0xb8(%rbp),%rax
  mov    %rax,-0xb0(%rbp)
  mov    -0xb0(%rbp),%rax
  mov    %rax,-0xb0(%rbp)
  movabs $0x9555555555555553,%rax
  cmp    %rax,-0xb0(%rbp)
  je     L14
  call   <abort@plt>
L14:
  movq   $0xfffffffffffffff9,-0xa8(%rbp)
  movabs $0xeaaaaaaaaaaaaaab,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0xa8(%rbp),%rax
  mov    %rax,-0xa8(%rbp)
  mov    -0xa0(%rbp),%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0xa8(%rbp),%rax
  imul   -0xa0(%rbp),%rax
  mov    %rax,-0x98(%rbp)
  mov    -0x98(%rbp),%rax
  mov    %rax,-0x98(%rbp)
  movabs $0x9555555555555553,%rax
  cmp    %rax,-0x98(%rbp)
  je     L15
  call   <abort@plt>
L15:
  movq   $0xfffffffffffffff9,-0x90(%rbp)
  movabs $0x1555555555555555,%rax
  mov    %rax,-0x88(%rbp)
  mov    -0x90(%rbp),%rax
  mov    %rax,-0x90(%rbp)
  mov    -0x88(%rbp),%rax
  mov    %rax,-0x88(%rbp)
  mov    -0x90(%rbp),%rax
  imul   -0x88(%rbp),%rax
  mov    %rax,-0x80(%rbp)
  mov    -0x80(%rbp),%rax
  mov    %rax,-0x80(%rbp)
  movabs $0x6aaaaaaaaaaaaaad,%rax
  cmp    %rax,-0x80(%rbp)
  je     L130
  call   <abort@plt>
L130:
  movq   $0x7,-0x78(%rbp)
  movabs $0xeaaaaaaaaaaaaaab,%rax
  mov    %rax,-0x70(%rbp)
  mov    -0x78(%rbp),%rax
  mov    %rax,-0x78(%rbp)
  mov    -0x70(%rbp),%rax
  mov    %rax,-0x70(%rbp)
  mov    -0x78(%rbp),%rax
  imul   -0x70(%rbp),%rax
  mov    %rax,-0x68(%rbp)
  mov    -0x68(%rbp),%rax
  mov    %rax,-0x68(%rbp)
  movabs $0x6aaaaaaaaaaaaaad,%rax
  cmp    %rax,-0x68(%rbp)
  je     L279
  call   <abort@plt>
L279:
  mov    $0xfdbe9720,%eax
  mov    %rax,-0x60(%rbp)
  mov    $0x81234567,%eax
  mov    %rax,-0x58(%rbp)
  mov    -0x60(%rbp),%rax
  mov    %rax,-0x60(%rbp)
  mov    -0x58(%rbp),%rax
  mov    %rax,-0x58(%rbp)
  mov    -0x60(%rbp),%rax
  imul   -0x58(%rbp),%rax
  mov    %rax,-0x50(%rbp)
  mov    -0x50(%rbp),%rax
  mov    %rax,-0x50(%rbp)
  movabs $0x800000003fca6de0,%rax
  cmp    %rax,-0x50(%rbp)
  je     L259
  call   <abort@plt>
L259:
  movabs $0xffffffff024168e0,%rax
  mov    %rax,-0x48(%rbp)
  movabs $0xffffffff7edcba99,%rax
  mov    %rax,-0x40(%rbp)
  mov    -0x48(%rbp),%rax
  mov    %rax,-0x48(%rbp)
  mov    -0x40(%rbp),%rax
  mov    %rax,-0x40(%rbp)
  mov    -0x48(%rbp),%rax
  imul   -0x40(%rbp),%rax
  mov    %rax,-0x38(%rbp)
  mov    -0x38(%rbp),%rax
  mov    %rax,-0x38(%rbp)
  movabs $0x800000003fca6de0,%rax
  cmp    %rax,-0x38(%rbp)
  je     L181
  call   <abort@plt>
L181:
  movabs $0xffffffff024168e0,%rax
  mov    %rax,-0x30(%rbp)
  mov    $0x81234567,%eax
  mov    %rax,-0x28(%rbp)
  mov    -0x30(%rbp),%rax
  mov    %rax,-0x30(%rbp)
  mov    -0x28(%rbp),%rax
  mov    %rax,-0x28(%rbp)
  mov    -0x30(%rbp),%rax
  imul   -0x28(%rbp),%rax
  mov    %rax,-0x20(%rbp)
  mov    -0x20(%rbp),%rax
  mov    %rax,-0x20(%rbp)
  movabs $0x7fffffffc0359220,%rax
  cmp    %rax,-0x20(%rbp)
  je     L156
  call   <abort@plt>
L156:
  mov    $0xfdbe9720,%eax
  mov    %rax,-0x18(%rbp)
  movabs $0xffffffff7edcba99,%rax
  mov    %rax,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  mov    %rax,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  mov    %rax,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  imul   -0x10(%rbp),%rax
  mov    %rax,-0x8(%rbp)
  mov    -0x8(%rbp),%rax
  mov    %rax,-0x8(%rbp)
  movabs $0x7fffffffc0359220,%rax
  cmp    %rax,-0x8(%rbp)
  je     L266
  call   <abort@plt>
L266:
  mov    $0x0,%eax
  leave
  ret
```

assistant: ```c
int main() {
  do {
    long long x = 0x1555555555555556LL;
    long long y = 6LL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != -0x7ffffffffffffffcLL)
      __builtin_abort();
  } while (0);
  do {
    long long x = -0x1555555555555556LL;
    long long y = -6LL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != -0x7ffffffffffffffcLL)
      __builtin_abort();
  } while (0);
  do {
    long long x = 0x1555555555555556LL;
    long long y = -6LL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != 0x7ffffffffffffffcLL)
      __builtin_abort();
  } while (0);
  do {
    long long x = -0x1555555555555556LL;
    long long y = 6LL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != 0x7ffffffffffffffcLL)
      __builtin_abort();
  } while (0);
  do {
    long long x = 0x81234568LL;
    long long y = 0xfdbe971fLL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != -0x7fffffff439a4068LL)
      __builtin_abort();
  } while (0);
  do {
    long long x = -0x81234568LL;
    long long y = -0xfdbe971fLL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != -0x7fffffff439a4068LL)
      __builtin_abort();
  } while (0);
  do {
    long long x = 0x81234568LL;
    long long y = -0xfdbe971fLL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != 0x7fffffff439a4068LL)
      __builtin_abort();
  } while (0);
  do {
    long long x = -0x81234568LL;
    long long y = 0xfdbe971fLL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != 0x7fffffff439a4068LL)
      __builtin_abort();
  } while (0);
  do {
    long long x = 0x1555555555555555LL;
    long long y = 7LL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != -0x6aaaaaaaaaaaaaadLL)
      __builtin_abort();
  } while (0);
  do {
    long long x = -0x1555555555555555LL;
    long long y = -7LL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != -0x6aaaaaaaaaaaaaadLL)
      __builtin_abort();
  } while (0);
  do {
    long long x = 0x1555555555555555LL;
    long long y = -7LL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != 0x6aaaaaaaaaaaaaadLL)
      __builtin_abort();
  } while (0);
  do {
    long long x = -0x1555555555555555LL;
    long long y = 7LL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != 0x6aaaaaaaaaaaaaadLL)
      __builtin_abort();
  } while (0);
  do {
    long long x = 0x81234567LL;
    long long y = 0xfdbe9720LL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != -0x7fffffffc0359220LL)
      __builtin_abort();
  } while (0);
  do {
    long long x = -0x81234567LL;
    long long y = -0xfdbe9720LL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != -0x7fffffffc0359220LL)
      __builtin_abort();
  } while (0);
  do {
    long long x = 0x81234567LL;
    long long y = -0xfdbe9720LL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != 0x7fffffffc0359220LL)
      __builtin_abort();
  } while (0);
  do {
    long long x = -0x81234567LL;
    long long y = 0xfdbe9720LL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != 0x7fffffffc0359220LL)
      __builtin_abort();
  } while (0);
  do {
    long long x = 6LL;
    long long y = 0x1555555555555556LL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != -0x7ffffffffffffffcLL)
      __builtin_abort();
  } while (0);
  do {
    long long x = -6LL;
    long long y = -0x1555555555555556LL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != -0x7ffffffffffffffcLL)
      __builtin_abort();
  } while (0);
  do {
    long long x = -6LL;
    long long y = 0x1555555555555556LL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != 0x7ffffffffffffffcLL)
      __builtin_abort();
  } while (0);
  do {
    long long x = 6LL;
    long long y = -0x1555555555555556LL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != 0x7ffffffffffffffcLL)
      __builtin_abort();
  } while (0);
  do {
    long long x = 0xfdbe971fLL;
    long long y = 0x81234568LL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != -0x7fffffff439a4068LL)
      __builtin_abort();
  } while (0);
  do {
    long long x = -0xfdbe971fLL;
    long long y = -0x81234568LL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != -0x7fffffff439a4068LL)
      __builtin_abort();
  } while (0);
  do {
    long long x = -0xfdbe971fLL;
    long long y = 0x81234568LL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != 0x7fffffff439a4068LL)
      __builtin_abort();
  } while (0);
  do {
    long long x = 0xfdbe971fLL;
    long long y = -0x81234568LL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != 0x7fffffff439a4068LL)
      __builtin_abort();
  } while (0);
  do {
    long long x = 7LL;
    long long y = 0x1555555555555555LL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != -0x6aaaaaaaaaaaaaadLL)
      __builtin_abort();
  } while (0);
  do {
    long long x = -7LL;
    long long y = -0x1555555555555555LL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != -0x6aaaaaaaaaaaaaadLL)
      __builtin_abort();
  } while (0);
  do {
    long long x = -7LL;
    long long y = 0x1555555555555555LL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != 0x6aaaaaaaaaaaaaadLL)
      __builtin_abort();
  } while (0);
  do {
    long long x = 7LL;
    long long y = -0x1555555555555555LL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != 0x6aaaaaaaaaaaaaadLL)
      __builtin_abort();
  } while (0);
  do {
    long long x = 0xfdbe9720LL;
    long long y = 0x81234567LL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != -0x7fffffffc0359220LL)
      __builtin_abort();
  } while (0);
  do {
    long long x = -0xfdbe9720LL;
    long long y = -0x81234567LL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != -0x7fffffffc0359220LL)
      __builtin_abort();
  } while (0);
  do {
    long long x = -0xfdbe9720LL;
    long long y = 0x81234567LL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != 0x7fffffffc0359220LL)
      __builtin_abort();
  } while (0);
  do {
    long long x = 0xfdbe9720LL;
    long long y = -0x81234567LL;
    long long z;
    asm("" : "+g"(x));
    asm("" : "+g"(y));
    z = x * y;
    asm("" : "+g"(z));
    if (z != 0x7fffffffc0359220LL)
      __builtin_abort();
  } while (0);
  return 0;
}
```