user: What would the C source look like for the assembly code provided here:

```asm
<main>:
  endbr64
  push   %r12
  mov    $0x7fffffff,%esi
  mov    $0xfffffff6,%edi
  sub    $0x10,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x8(%rsp)
  xor    %eax,%eax
  call   <fn1@plt>
  cmp    $0x7ffffff7,%eax
  je     L261
L260:
  xor    %eax,%eax
  call   <__builtin_abort@plt>
L61:
  lea    0x4(%rsp),%r12
  mov    $0xffff,%esi
  mov    $0x7f,%edi
  mov    %r12,%rdx
  call   <fn3@plt>
  cmp    $0x1007e,%eax
  jne    L32
  cmpl   $0x0,0x4(%rsp)
  je     L13
L32:
  xor    %eax,%eax
  call   <__builtin_abort@plt>
L1:
  xor    %esi,%esi
  mov    %r12,%rdx
  mov    $0xffff,%edi
  call   <fn4@plt>
  cmp    $0xffffffff80008000,%rax
  jne    L94
  cmpl   $0x0,0x4(%rsp)
  jne    L94
L196:
  xor    %esi,%esi
  xor    %edi,%edi
  mov    %r12,%rdx
  call   <fn5@plt>
  cmp    $0x9b,%al
  jne    L14
  cmpl   $0x0,0x4(%rsp)
  jne    L240
L14:
  xor    %eax,%eax
  call   <__builtin_abort@plt>
L5:
  xor    %esi,%esi
  xor    %edi,%edi
  mov    %r12,%rdx
  call   <fn6@plt>
  cmp    $0xbd,%al
  jne    L146
  cmpl   $0x0,0x4(%rsp)
  je     L76
L146:
  xor    %eax,%eax
  call   <__builtin_abort@plt>
L38:
  xor    %esi,%esi
  xor    %edi,%edi
  mov    %r12,%rdx
  call   <fn7@plt>
  test   %eax,%eax
  jne    L22
  mov    0x4(%rsp),%eax
  test   %eax,%eax
  jne    L34
L22:
  xor    %eax,%eax
  call   <__builtin_abort@plt>
L223:
  mov    0x8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L147
  add    $0x10,%rsp
  xor    %eax,%eax
  pop    %r12
  ret
  nopl   0x0(%rax)
L94:
  xor    %eax,%eax
  call   <__builtin_abort@plt>
  jmp    L196
L34:
  mov    %r12,%rdx
  mov    $0x3,%esi
  mov    $0x3f,%edi
  call   <fn7@plt>
  cmp    $0x12,%eax
  jne    L22
  cmpl   $0x0,0x4(%rsp)
  je     L22
  jmp    L223
L261:
  xor    %esi,%esi
  xor    %edi,%edi
  call   <fn2@plt>
  test   %ax,%ax
  jne    L260
  mov    $0x3fff,%esi
  mov    $0x20,%edi
  call   <fn2@plt>
  cmp    $0xffe0,%ax
  jne    L260
  jmp    L61
L76:
  mov    %r12,%rdx
  mov    $0x3,%esi
  mov    $0x3f,%edi
  call   <fn6@plt>
  add    $0x1,%al
  jne    L146
  cmpl   $0x0,0x4(%rsp)
  jne    L146
  jmp    L38
L13:
  xor    %esi,%esi
  mov    %r12,%rdx
  mov    $0xffffff80,%edi
  call   <fn3@plt>
  cmp    $0xffffff80,%eax
  jne    L32
  cmpl   $0x0,0x4(%rsp)
  jne    L32
  jmp    L1
L240:
  mov    %r12,%rdx
  mov    $0x3,%esi
  mov    $0x3f,%edi
  call   <fn5@plt>
  cmp    $0xf0,%al
  jne    L14
  cmpl   $0x0,0x4(%rsp)
  je     L14
  jmp    L5
L147:
  call   <__stack_chk_fail@plt>
```

assistant: ```c
int main() {
  int ovf;
  if (fn1(-10, 0x7fffffff) != (int)(-10U - 0x7fffffff) || fn2(0, 0) != 0 || fn2(32, 16383) != (short int)524256ULL)
    __builtin_abort();
  if (fn3(0x7f, (unsigned short)~0, &ovf) != (int)(0x7f + (unsigned short)~0) || ovf || fn3(-0x7f - 1, 0, &ovf) != (int)(-0x7f - 1) || ovf)
    __builtin_abort();
  if (fn4(65535, 0, &ovf) != 65535L * -32768 || ovf)
    __builtin_abort();
  if (fn5(0, 0, &ovf) != (signed char)(0x7f / 4 * 5) || !ovf || fn5(63, 3, &ovf) != (signed char)((0x7f / 4 + 63) * 8) || !ovf)
    __builtin_abort();
  if (fn6(0, 0, &ovf) != (unsigned char)~0 - 66 || ovf || fn6(63, 3, &ovf) != (unsigned char)~0 || ovf)
    __builtin_abort();
  if (fn7(0, 0, &ovf) != 0 || !ovf || fn7(63, 3, &ovf) != 18 || !ovf)
    __builtin_abort();
  return 0;
}
```