user: What is the c source code of the assembly code below?

```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     L131
  call   <abort@plt>
L131:
  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     L106
  call   <abort@plt>
L106:
  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     L26
  call   <abort@plt>
L26:
  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     L171
  call   <abort@plt>
L171:
  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     L301
  call   <abort@plt>
L301:
  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     L196
  call   <abort@plt>
L196:
  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     L101
  call   <abort@plt>
L101:
  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     L75
  call   <abort@plt>
L75:
  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     L222
  call   <abort@plt>
L222:
  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     L163
  call   <abort@plt>
L163:
  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     L13
  call   <abort@plt>
L13:
  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     L12
  call   <abort@plt>
L12:
  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     L180
  call   <abort@plt>
L180:
  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     L198
  call   <abort@plt>
L198:
  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     L66
  call   <abort@plt>
L66:
  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     L287
  call   <abort@plt>
L287:
  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     L95
  call   <abort@plt>
L95:
  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     L123
  call   <abort@plt>
L123:
  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     L162
  call   <abort@plt>
L162:
  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     L137
  call   <abort@plt>
L137:
  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     L279
  call   <abort@plt>
L279:
  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     L112
  call   <abort@plt>
L112:
  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     L49
  call   <abort@plt>
L49:
  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     L56
  call   <abort@plt>
L56:
  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     L107
  call   <abort@plt>
L107:
  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     L59
  call   <abort@plt>
L59:
  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     L118
  call   <abort@plt>
L118:
  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     L248
  call   <abort@plt>
L248:
  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     L245
  call   <abort@plt>
L245:
  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     L174
  call   <abort@plt>
L174:
  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     L22
  call   <abort@plt>
L22:
  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     L99
  call   <abort@plt>
L99:
  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;
}
```