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

```asm
<internal_fiat_25519_sub>:
  endbr64
  push   %r15
  push   %r14
  mov    %rsi,%r14
  mov    $0x8,%esi
  push   %r13
  push   %r12
  push   %rbp
  mov    %rdx,%rbp
  push   %rbx
  mov    %rdi,%rbx
  mov    %r14d,%edi
  sub    $0x88,%rsp
  call   <_br2_load@plt>
  lea    0x4(%r14),%edi
  mov    $0x8,%esi
  mov    %rax,0x8(%rsp)
  call   <_br2_load@plt>
  lea    0x8(%r14),%edi
  mov    $0x8,%esi
  mov    %rax,%r13
  call   <_br2_load@plt>
  lea    0xc(%r14),%edi
  mov    $0x8,%esi
  add    $0x3fffffe,%r13
  mov    %rax,0x10(%rsp)
  call   <_br2_load@plt>
  lea    0x10(%r14),%edi
  mov    $0x8,%esi
  mov    %rax,0x18(%rsp)
  call   <_br2_load@plt>
  lea    0x14(%r14),%edi
  mov    $0x8,%esi
  mov    %rax,0x20(%rsp)
  call   <_br2_load@plt>
  lea    0x18(%r14),%edi
  mov    $0x8,%esi
  mov    %rax,0x28(%rsp)
  call   <_br2_load@plt>
  lea    0x1c(%r14),%edi
  mov    $0x8,%esi
  mov    %rax,0x30(%rsp)
  call   <_br2_load@plt>
  lea    0x20(%r14),%edi
  mov    $0x8,%esi
  mov    %rax,0x38(%rsp)
  call   <_br2_load@plt>
  lea    0x24(%r14),%edi
  mov    $0x8,%esi
  mov    %rax,0x40(%rsp)
  call   <_br2_load@plt>
  mov    %ebp,%edi
  mov    $0x8,%esi
  mov    %rax,0x48(%rsp)
  call   <_br2_load@plt>
  lea    0x4(%rbp),%edi
  mov    $0x8,%esi
  mov    %rax,0x50(%rsp)
  call   <_br2_load@plt>
  lea    0x8(%rbp),%edi
  mov    $0x8,%esi
  mov    %rax,%r12
  call   <_br2_load@plt>
  lea    0xc(%rbp),%edi
  mov    $0x8,%esi
  sub    %r12,%r13
  mov    %rax,0x78(%rsp)
  call   <_br2_load@plt>
  lea    0x10(%rbp),%edi
  mov    $0x8,%esi
  mov    %rax,0x70(%rsp)
  call   <_br2_load@plt>
  lea    0x14(%rbp),%edi
  mov    $0x8,%esi
  mov    %rax,0x58(%rsp)
  call   <_br2_load@plt>
  lea    0x18(%rbp),%edi
  mov    $0x8,%esi
  mov    %rax,0x68(%rsp)
  call   <_br2_load@plt>
  lea    0x1c(%rbp),%edi
  mov    $0x8,%esi
  mov    %rax,0x60(%rsp)
  call   <_br2_load@plt>
  lea    0x20(%rbp),%edi
  mov    $0x8,%esi
  mov    %rax,%r15
  call   <_br2_load@plt>
  lea    0x24(%rbp),%edi
  mov    $0x8,%esi
  mov    %rax,%r14
  call   <_br2_load@plt>
  mov    0x18(%rsp),%rbp
  mov    0x70(%rsp),%r9
  mov    %ebx,%edi
  mov    0x10(%rsp),%r12
  mov    0x58(%rsp),%r8
  add    $0x3fffffe,%rbp
  mov    0x78(%rsp),%r10
  mov    0x68(%rsp),%rcx
  sub    %r9,%rbp
  mov    0x20(%rsp),%r9
  mov    0x60(%rsp),%rdx
  add    $0x7fffffe,%r12
  sub    %r10,%r12
  mov    0x30(%rsp),%r10
  mov    0x38(%rsp),%r11
  add    $0x7fffffe,%r9
  mov    0x8(%rsp),%rsi
  sub    %r8,%r9
  mov    0x28(%rsp),%r8
  add    $0x7fffffe,%r10
  mov    %r9,0x58(%rsp)
  add    $0x3fffffe,%r8
  sub    %rcx,%r8
  sub    %rdx,%r10
  add    $0x3fffffe,%r11
  mov    $0x8,%edx
  sub    %r15,%r11
  mov    0x40(%rsp),%r15
  mov    %r8,0x20(%rsp)
  add    $0x7ffffda,%rsi
  sub    0x50(%rsp),%rsi
  mov    %r10,0x18(%rsp)
  add    $0x7fffffe,%r15
  mov    %r11,0x10(%rsp)
  sub    %r14,%r15
  mov    0x48(%rsp),%r14
  add    $0x3fffffe,%r14
  sub    %rax,%r14
  call   <_br2_store@plt>
  lea    0x4(%rbx),%edi
  mov    %r13,%rsi
  mov    $0x8,%edx
  call   <_br2_store@plt>
  lea    0x8(%rbx),%edi
  mov    %r12,%rsi
  mov    $0x8,%edx
  call   <_br2_store@plt>
  lea    0xc(%rbx),%edi
  mov    %rbp,%rsi
  mov    $0x8,%edx
  call   <_br2_store@plt>
  mov    0x58(%rsp),%rsi
  lea    0x10(%rbx),%edi
  mov    $0x8,%edx
  call   <_br2_store@plt>
  mov    0x20(%rsp),%rsi
  lea    0x14(%rbx),%edi
  mov    $0x8,%edx
  call   <_br2_store@plt>
  mov    0x18(%rsp),%rsi
  lea    0x18(%rbx),%edi
  mov    $0x8,%edx
  call   <_br2_store@plt>
  mov    0x10(%rsp),%rsi
  lea    0x1c(%rbx),%edi
  mov    $0x8,%edx
  call   <_br2_store@plt>
  lea    0x20(%rbx),%edi
  mov    %r15,%rsi
  mov    $0x8,%edx
  call   <_br2_store@plt>
  lea    0x24(%rbx),%edi
  mov    %r14,%rsi
  mov    $0x8,%edx
  add    $0x88,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  jmp    1060 <_br2_store@plt>
```

assistant: ```c
void internal_fiat_25519_sub(uintptr_t out0, uintptr_t in0, uintptr_t in1) {
  uintptr_t x0, x10, x1, x11, x2, x12, x3, x13, x4, x14, x5, x15, x6, x16, x7, x17, x8, x18, x9, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39;
  x0 = _br2_load((in0) + ((uintptr_t)0ULL), sizeof(uintptr_t));
  x1 = _br2_load((in0) + ((uintptr_t)4ULL), sizeof(uintptr_t));
  x2 = _br2_load((in0) + ((uintptr_t)8ULL), sizeof(uintptr_t));
  x3 = _br2_load((in0) + ((uintptr_t)12ULL), sizeof(uintptr_t));
  x4 = _br2_load((in0) + ((uintptr_t)16ULL), sizeof(uintptr_t));
  x5 = _br2_load((in0) + ((uintptr_t)20ULL), sizeof(uintptr_t));
  x6 = _br2_load((in0) + ((uintptr_t)24ULL), sizeof(uintptr_t));
  x7 = _br2_load((in0) + ((uintptr_t)28ULL), sizeof(uintptr_t));
  x8 = _br2_load((in0) + ((uintptr_t)32ULL), sizeof(uintptr_t));
  x9 = _br2_load((in0) + ((uintptr_t)36ULL), sizeof(uintptr_t));
  x10 = _br2_load((in1) + ((uintptr_t)0ULL), sizeof(uintptr_t));
  x11 = _br2_load((in1) + ((uintptr_t)4ULL), sizeof(uintptr_t));
  x12 = _br2_load((in1) + ((uintptr_t)8ULL), sizeof(uintptr_t));
  x13 = _br2_load((in1) + ((uintptr_t)12ULL), sizeof(uintptr_t));
  x14 = _br2_load((in1) + ((uintptr_t)16ULL), sizeof(uintptr_t));
  x15 = _br2_load((in1) + ((uintptr_t)20ULL), sizeof(uintptr_t));
  x16 = _br2_load((in1) + ((uintptr_t)24ULL), sizeof(uintptr_t));
  x17 = _br2_load((in1) + ((uintptr_t)28ULL), sizeof(uintptr_t));
  x18 = _br2_load((in1) + ((uintptr_t)32ULL), sizeof(uintptr_t));
  x19 = _br2_load((in1) + ((uintptr_t)36ULL), sizeof(uintptr_t));
  x20 = (((uintptr_t)134217690ULL) + (x0)) - (x10);
  x21 = (((uintptr_t)67108862ULL) + (x1)) - (x11);
  x22 = (((uintptr_t)134217726ULL) + (x2)) - (x12);
  x23 = (((uintptr_t)67108862ULL) + (x3)) - (x13);
  x24 = (((uintptr_t)134217726ULL) + (x4)) - (x14);
  x25 = (((uintptr_t)67108862ULL) + (x5)) - (x15);
  x26 = (((uintptr_t)134217726ULL) + (x6)) - (x16);
  x27 = (((uintptr_t)67108862ULL) + (x7)) - (x17);
  x28 = (((uintptr_t)134217726ULL) + (x8)) - (x18);
  x29 = (((uintptr_t)67108862ULL) + (x9)) - (x19);
  x30 = x20;
  x31 = x21;
  x32 = x22;
  x33 = x23;
  x34 = x24;
  x35 = x25;
  x36 = x26;
  x37 = x27;
  x38 = x28;
  x39 = x29;
  _br2_store((out0) + ((uintptr_t)0ULL), x30, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)4ULL), x31, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)8ULL), x32, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)12ULL), x33, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)16ULL), x34, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)20ULL), x35, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)24ULL), x36, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)28ULL), x37, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)32ULL), x38, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)36ULL), x39, sizeof(uintptr_t));
  return;
}
```