user: Converte this assembly snippet into its equivalent C code:

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %r12
  push   %rbx
  mov    $0x0,%edx
  mov    $0x0,%esi
  mov    $0x0,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L103
  mov    $0x1,%eax
  jmp    L449
L103:
  mov    $0x0,%edx
  mov    $0x1,%esi
  mov    $0x0,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L415
  mov    $0x1,%eax
  jmp    L449
L415:
  mov    $0x0,%edx
  mov    $0x0,%esi
  mov    $0x1,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L308
  mov    $0x1,%eax
  jmp    L449
L308:
  mov    $0x0,%edx
  mov    $0xa,%esi
  mov    $0x0,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L301
  mov    $0x1,%eax
  jmp    L449
L301:
  mov    $0x0,%edx
  mov    $0x0,%esi
  mov    $0xa,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L119
  mov    $0x1,%eax
  jmp    L449
L119:
  mov    $0x0,%edx
  mov    $0x89abcdef,%esi
  mov    $0x0,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L876
  mov    $0x1,%eax
  jmp    L449
L876:
  mov    $0x0,%edx
  mov    $0x0,%esi
  mov    $0x89abcdef,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L849
  mov    $0x1,%eax
  jmp    L449
L849:
  mov    $0x0,%edx
  mov    $0xffffffff,%esi
  mov    $0x0,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L567
  mov    $0x1,%eax
  jmp    L449
L567:
  mov    $0x0,%edx
  mov    $0x0,%esi
  mov    $0xffffffff,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L440
  mov    $0x1,%eax
  jmp    L449
L440:
  mov    $0x0,%edx
  mov    $0xfffffff6,%esi
  mov    $0x0,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L1013
  mov    $0x1,%eax
  jmp    L449
L1013:
  mov    $0x0,%edx
  mov    $0x0,%esi
  mov    $0xfffffff6,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L115
  mov    $0x1,%eax
  jmp    L449
L115:
  mov    $0x0,%edx
  mov    $0x76543211,%esi
  mov    $0x0,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L988
  mov    $0x1,%eax
  jmp    L449
L988:
  mov    $0x0,%edx
  mov    $0x0,%esi
  mov    $0x76543211,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L1031
  mov    $0x1,%eax
  jmp    L449
L1031:
  mov    $0x1,%edx
  mov    $0x1,%esi
  mov    $0x1,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L441
  mov    $0x1,%eax
  jmp    L449
L441:
  mov    $0xa,%edx
  mov    $0xa,%esi
  mov    $0x1,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L423
  mov    $0x1,%eax
  jmp    L449
L423:
  mov    $0xa,%edx
  mov    $0x1,%esi
  mov    $0xa,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L501
  mov    $0x1,%eax
  jmp    L449
L501:
  mov    $0x89abcdef,%edx
  mov    $0x89abcdef,%esi
  mov    $0x1,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L756
  mov    $0x1,%eax
  jmp    L449
L756:
  mov    $0x89abcdef,%edx
  mov    $0x1,%esi
  mov    $0x89abcdef,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L399
  mov    $0x1,%eax
  jmp    L449
L399:
  mov    $0xffffffff,%edx
  mov    $0xffffffff,%esi
  mov    $0x1,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L872
  mov    $0x1,%eax
  jmp    L449
L872:
  mov    $0xfffffff6,%edx
  mov    $0xfffffff6,%esi
  mov    $0x1,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L853
  mov    $0x1,%eax
  jmp    L449
L853:
  mov    $0xfffffff6,%edx
  mov    $0x1,%esi
  mov    $0xfffffff6,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L198
  mov    $0x1,%eax
  jmp    L449
L198:
  mov    $0x76543211,%edx
  mov    $0x76543211,%esi
  mov    $0x1,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L18
  mov    $0x1,%eax
  jmp    L449
L18:
  mov    $0x76543211,%edx
  mov    $0x1,%esi
  mov    $0x76543211,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L708
  mov    $0x1,%eax
  jmp    L449
L708:
  mov    $0x9ea1dc29,%edx
  mov    $0xb504f333,%esi
  mov    $0xb504f333,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L336
  mov    $0x1,%eax
  jmp    L449
L336:
  mov    $0x615e23d7,%edx
  mov    $0xb504f333,%esi
  mov    $0x4afb0ccd,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L576
  mov    $0x1,%eax
  jmp    L449
L576:
  mov    $0x615e23d7,%edx
  mov    $0x4afb0ccd,%esi
  mov    $0xb504f333,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L769
  mov    $0x1,%eax
  jmp    L449
L769:
  mov    $0x9ea1dc29,%edx
  mov    $0x4afb0ccd,%esi
  mov    $0x4afb0ccd,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L653
  mov    $0x1,%eax
  jmp    L449
L653:
  mov    $0xffe00000,%edx
  mov    $0x200000,%esi
  mov    $0xffffffff,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L581
  mov    $0x1,%eax
  jmp    L449
L581:
  mov    $0x200000,%edx
  mov    $0x200000,%esi
  mov    $0x1,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L235
  mov    $0x1,%eax
  jmp    L449
L235:
  mov    $0x200000,%edx
  mov    $0xffe00000,%esi
  mov    $0xffffffff,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L776
  mov    $0x1,%eax
  jmp    L449
L776:
  mov    $0xffe00000,%edx
  mov    $0xffe00000,%esi
  mov    $0x1,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L943
  mov    $0x1,%eax
  jmp    L449
L943:
  mov    $0xffe00000,%edx
  mov    $0xffffffff,%esi
  mov    $0x200000,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L705
  mov    $0x1,%eax
  jmp    L449
L705:
  mov    $0x200000,%edx
  mov    $0xffffffff,%esi
  mov    $0xffe00000,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L634
  mov    $0x1,%eax
  jmp    L449
L634:
  mov    $0x200000,%edx
  mov    $0x1,%esi
  mov    $0x200000,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L800
  mov    $0x1,%eax
  jmp    L449
L800:
  mov    $0xffe00000,%edx
  mov    $0x1,%esi
  mov    $0xffe00000,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L14
  mov    $0x1,%eax
  jmp    L449
L14:
  mov    $0x96e8a000,%esi
  mov    $0xfffff328,%edi
  call   <make_ti@plt>
  mov    %eax,%r12d
  mov    $0x33f9de5b,%esi
  mov    $0x0,%edi
  call   <make_ti@plt>
  mov    %eax,%ebx
  mov    $0xde5be000,%esi
  mov    $0xb5,%edi
  call   <make_ti@plt>
  mov    %r12d,%edx
  mov    %ebx,%esi
  mov    %eax,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L965
  mov    $0x1,%eax
  jmp    L449
L965:
  mov    $0x1,%esi
  mov    $0x0,%edi
  call   <make_ti@plt>
  mov    %eax,%ebx
  mov    $0xffffffff,%esi
  mov    $0xffffffff,%edi
  call   <make_ti@plt>
  mov    %ebx,%edx
  mov    $0xffffffff,%esi
  mov    %eax,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L326
  mov    $0x1,%eax
  jmp    L449
L326:
  mov    $0x1,%esi
  mov    $0x0,%edi
  call   <make_ti@plt>
  mov    %eax,%ebx
  mov    $0xffffffff,%esi
  mov    $0xffffffff,%edi
  call   <make_ti@plt>
  mov    %ebx,%edx
  mov    %eax,%esi
  mov    $0xffffffff,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L430
  mov    $0x1,%eax
  jmp    L449
L430:
  mov    $0xffffffff,%esi
  mov    $0xffffffff,%edi
  call   <make_ti@plt>
  mov    $0x0,%edx
  mov    $0x0,%esi
  mov    %eax,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L741
  mov    $0x1,%eax
  jmp    L449
L741:
  mov    $0xffffffff,%esi
  mov    $0xffffffff,%edi
  call   <make_ti@plt>
  mov    $0x0,%edx
  mov    %eax,%esi
  mov    $0x0,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L673
  mov    $0x1,%eax
  jmp    L449
L673:
  mov    $0xffffffff,%esi
  mov    $0xffffffff,%edi
  call   <make_ti@plt>
  mov    %eax,%ebx
  mov    $0xffffffff,%esi
  mov    $0xffffffff,%edi
  call   <make_ti@plt>
  mov    %ebx,%edx
  mov    $0x1,%esi
  mov    %eax,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L568
  mov    $0x1,%eax
  jmp    L449
L568:
  mov    $0xffffffff,%esi
  mov    $0xffffffff,%edi
  call   <make_ti@plt>
  mov    %eax,%ebx
  mov    $0xffffffff,%esi
  mov    $0xffffffff,%edi
  call   <make_ti@plt>
  mov    %ebx,%edx
  mov    %eax,%esi
  mov    $0x1,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L448
  mov    $0x1,%eax
  jmp    L449
L448:
  mov    $0x0,%esi
  mov    $0x0,%edi
  call   <make_ti@plt>
  mov    $0x0,%edx
  mov    $0x0,%esi
  mov    %eax,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L315
  mov    $0x1,%eax
  jmp    L449
L315:
  mov    $0x0,%esi
  mov    $0x0,%edi
  call   <make_ti@plt>
  mov    $0x0,%edx
  mov    %eax,%esi
  mov    $0x0,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L120
  mov    $0x1,%eax
  jmp    L449
L120:
  mov    $0x0,%esi
  mov    $0x0,%edi
  call   <make_ti@plt>
  mov    %eax,%ebx
  mov    $0x0,%esi
  mov    $0x0,%edi
  call   <make_ti@plt>
  mov    %ebx,%edx
  mov    $0x1,%esi
  mov    %eax,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L398
  mov    $0x1,%eax
  jmp    L449
L398:
  mov    $0x0,%esi
  mov    $0x0,%edi
  call   <make_ti@plt>
  mov    %eax,%ebx
  mov    $0x0,%esi
  mov    $0x0,%edi
  call   <make_ti@plt>
  mov    %ebx,%edx
  mov    %eax,%esi
  mov    $0x1,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L487
  mov    $0x1,%eax
  jmp    L449
L487:
  mov    $0xffffffff,%esi
  mov    $0xffffffff,%edi
  call   <make_ti@plt>
  mov    %eax,%ebx
  mov    $0x1,%esi
  mov    $0x0,%edi
  call   <make_ti@plt>
  mov    %ebx,%edx
  mov    $0xffffffff,%esi
  mov    %eax,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L294
  mov    $0x1,%eax
  jmp    L449
L294:
  mov    $0xffffffff,%esi
  mov    $0xffffffff,%edi
  call   <make_ti@plt>
  mov    %eax,%ebx
  mov    $0x1,%esi
  mov    $0x0,%edi
  call   <make_ti@plt>
  mov    %ebx,%edx
  mov    %eax,%esi
  mov    $0xffffffff,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L196
  mov    $0x1,%eax
  jmp    L449
L196:
  mov    $0x1,%esi
  mov    $0x0,%edi
  call   <make_ti@plt>
  mov    $0x0,%edx
  mov    $0x0,%esi
  mov    %eax,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L545
  mov    $0x1,%eax
  jmp    L449
L545:
  mov    $0x1,%esi
  mov    $0x0,%edi
  call   <make_ti@plt>
  mov    $0x0,%edx
  mov    %eax,%esi
  mov    $0x0,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L579
  mov    $0x1,%eax
  jmp    L449
L579:
  mov    $0x1,%esi
  mov    $0x0,%edi
  call   <make_ti@plt>
  mov    %eax,%ebx
  mov    $0x1,%esi
  mov    $0x0,%edi
  call   <make_ti@plt>
  mov    %ebx,%edx
  mov    $0x1,%esi
  mov    %eax,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L842
  mov    $0x1,%eax
  jmp    L449
L842:
  mov    $0x1,%esi
  mov    $0x0,%edi
  call   <make_ti@plt>
  mov    %eax,%ebx
  mov    $0x1,%esi
  mov    $0x0,%edi
  call   <make_ti@plt>
  mov    %ebx,%edx
  mov    %eax,%esi
  mov    $0x1,%edi
  call   <test__mulvti3@plt>
  test   %rax,%rax
  je     L371
  mov    $0x1,%eax
  jmp    L449
L371:
  mov    $0x0,%eax
L449:
  pop    %rbx
  pop    %r12
  pop    %rbp
  ret
```

assistant: ```c
int main() {
  if (test__mulvti3(0, 0, 0))
    return 1;
  if (test__mulvti3(0, 1, 0))
    return 1;
  if (test__mulvti3(1, 0, 0))
    return 1;
  if (test__mulvti3(0, 10, 0))
    return 1;
  if (test__mulvti3(10, 0, 0))
    return 1;
  if (test__mulvti3(0, 81985529216486895LL, 0))
    return 1;
  if (test__mulvti3(81985529216486895LL, 0, 0))
    return 1;
  if (test__mulvti3(0, -1, 0))
    return 1;
  if (test__mulvti3(-1, 0, 0))
    return 1;
  if (test__mulvti3(0, -10, 0))
    return 1;
  if (test__mulvti3(-10, 0, 0))
    return 1;
  if (test__mulvti3(0, -81985529216486895LL, 0))
    return 1;
  if (test__mulvti3(-81985529216486895LL, 0, 0))
    return 1;
  if (test__mulvti3(1, 1, 1))
    return 1;
  if (test__mulvti3(1, 10, 10))
    return 1;
  if (test__mulvti3(10, 1, 10))
    return 1;
  if (test__mulvti3(1, 81985529216486895LL, 81985529216486895LL))
    return 1;
  if (test__mulvti3(81985529216486895LL, 1, 81985529216486895LL))
    return 1;
  if (test__mulvti3(1, -1, -1))
    return 1;
  if (test__mulvti3(1, -10, -10))
    return 1;
  if (test__mulvti3(-10, 1, -10))
    return 1;
  if (test__mulvti3(1, -81985529216486895LL, -81985529216486895LL))
    return 1;
  if (test__mulvti3(-81985529216486895LL, 1, -81985529216486895LL))
    return 1;
  if (test__mulvti3(3037000499LL, 3037000499LL, 9223372030926249001LL))
    return 1;
  if (test__mulvti3(-3037000499LL, 3037000499LL, -9223372030926249001LL))
    return 1;
  if (test__mulvti3(3037000499LL, -3037000499LL, -9223372030926249001LL))
    return 1;
  if (test__mulvti3(-3037000499LL, -3037000499LL, 9223372030926249001LL))
    return 1;
  if (test__mulvti3(4398046511103LL, 2097152LL, 9223372036852678656LL))
    return 1;
  if (test__mulvti3(-4398046511103LL, 2097152LL, -9223372036852678656LL))
    return 1;
  if (test__mulvti3(4398046511103LL, -2097152LL, -9223372036852678656LL))
    return 1;
  if (test__mulvti3(-4398046511103LL, -2097152LL, 9223372036852678656LL))
    return 1;
  if (test__mulvti3(2097152LL, 4398046511103LL, 9223372036852678656LL))
    return 1;
  if (test__mulvti3(-2097152LL, 4398046511103LL, -9223372036852678656LL))
    return 1;
  if (test__mulvti3(2097152LL, -4398046511103LL, -9223372036852678656LL))
    return 1;
  if (test__mulvti3(-2097152LL, -4398046511103LL, 9223372036852678656LL))
    return 1;
  if (test__mulvti3(make_ti(0x00000000000000B5LL, 0x04F333F9DE5BE000LL), make_ti(0x0000000000000000LL, 0x00B504F333F9DE5BLL), make_ti(0x7FFFFFFFFFFFF328LL, 0xDF915DA296E8A000LL)))
    return 1;
  if (test__mulvti3(make_ti(0x7FFFFFFFFFFFFFFFLL, 0xFFFFFFFFFFFFFFFFLL), -1, make_ti(0x8000000000000000LL, 0x0000000000000001LL)))
    return 1;
  if (test__mulvti3(-1, make_ti(0x7FFFFFFFFFFFFFFFLL, 0xFFFFFFFFFFFFFFFFLL), make_ti(0x8000000000000000LL, 0x0000000000000001LL)))
    return 1;
  if (test__mulvti3(make_ti(0x7FFFFFFFFFFFFFFFLL, 0xFFFFFFFFFFFFFFFFLL), 0, 0))
    return 1;
  if (test__mulvti3(0, make_ti(0x7FFFFFFFFFFFFFFFLL, 0xFFFFFFFFFFFFFFFFLL), 0))
    return 1;
  if (test__mulvti3(make_ti(0x7FFFFFFFFFFFFFFFLL, 0xFFFFFFFFFFFFFFFFLL), 1, make_ti(0x7FFFFFFFFFFFFFFFLL, 0xFFFFFFFFFFFFFFFFLL)))
    return 1;
  if (test__mulvti3(1, make_ti(0x7FFFFFFFFFFFFFFFLL, 0xFFFFFFFFFFFFFFFFLL), make_ti(0x7FFFFFFFFFFFFFFFLL, 0xFFFFFFFFFFFFFFFFLL)))
    return 1;
  if (test__mulvti3(make_ti(0x8000000000000000LL, 0x0000000000000000LL), 0, 0))
    return 1;
  if (test__mulvti3(0, make_ti(0x8000000000000000LL, 0x0000000000000000LL), 0))
    return 1;
  if (test__mulvti3(make_ti(0x8000000000000000LL, 0x0000000000000000LL), 1, make_ti(0x8000000000000000LL, 0x0000000000000000LL)))
    return 1;
  if (test__mulvti3(1, make_ti(0x8000000000000000LL, 0x0000000000000000LL), make_ti(0x8000000000000000LL, 0x0000000000000000LL)))
    return 1;
  if (test__mulvti3(make_ti(0x8000000000000000LL, 0x0000000000000001LL), -1, make_ti(0x7FFFFFFFFFFFFFFFLL, 0xFFFFFFFFFFFFFFFFLL)))
    return 1;
  if (test__mulvti3(-1, make_ti(0x8000000000000000LL, 0x0000000000000001LL), make_ti(0x7FFFFFFFFFFFFFFFLL, 0xFFFFFFFFFFFFFFFFLL)))
    return 1;
  if (test__mulvti3(make_ti(0x8000000000000000LL, 0x0000000000000001LL), 0, 0))
    return 1;
  if (test__mulvti3(0, make_ti(0x8000000000000000LL, 0x0000000000000001LL), 0))
    return 1;
  if (test__mulvti3(make_ti(0x8000000000000000LL, 0x0000000000000001LL), 1, make_ti(0x8000000000000000LL, 0x0000000000000001LL)))
    return 1;
  if (test__mulvti3(1, make_ti(0x8000000000000000LL, 0x0000000000000001LL), make_ti(0x8000000000000000LL, 0x0000000000000001LL)))
    return 1;
  return 0;
}
```