user: 请显示与下面列出的汇编代码相匹配的C语言实现：

```asm
<internal_fiat_secp256k1_add>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  mov    %rdx,%r12
  push   %rbp
  mov    %rsi,%rbp
  mov    $0x8,%esi
  push   %rbx
  mov    %rdi,%rbx
  mov    %ebp,%edi
  sub    $0x68,%rsp
  call   <_br2_load@plt>
  lea    0x4(%rbp),%edi
  mov    $0x8,%esi
  mov    %rax,%r15
  call   <_br2_load@plt>
  lea    0x8(%rbp),%edi
  mov    $0x8,%esi
  mov    %rax,0x8(%rsp)
  call   <_br2_load@plt>
  lea    0xc(%rbp),%edi
  mov    $0x8,%esi
  mov    %rax,0x10(%rsp)
  call   <_br2_load@plt>
  lea    0x10(%rbp),%edi
  mov    $0x8,%esi
  mov    %rax,0x18(%rsp)
  call   <_br2_load@plt>
  lea    0x14(%rbp),%edi
  mov    $0x8,%esi
  mov    %rax,0x20(%rsp)
  call   <_br2_load@plt>
  lea    0x18(%rbp),%edi
  mov    $0x8,%esi
  mov    %rax,0x28(%rsp)
  call   <_br2_load@plt>
  lea    0x1c(%rbp),%edi
  mov    $0x8,%esi
  mov    %rax,0x30(%rsp)
  call   <_br2_load@plt>
  mov    %r12d,%edi
  mov    $0x8,%esi
  mov    %rax,0x38(%rsp)
  call   <_br2_load@plt>
  lea    0x4(%r12),%edi
  mov    $0x8,%esi
  mov    %rax,%rbp
  call   <_br2_load@plt>
  lea    0x8(%r12),%edi
  mov    $0x8,%esi
  mov    %rax,0x40(%rsp)
  call   <_br2_load@plt>
  lea    0xc(%r12),%edi
  mov    $0x8,%esi
  mov    %rax,0x48(%rsp)
  call   <_br2_load@plt>
  lea    0x10(%r12),%edi
  mov    $0x8,%esi
  mov    %rax,0x50(%rsp)
  call   <_br2_load@plt>
  lea    0x14(%r12),%edi
  mov    $0x8,%esi
  mov    %rax,0x58(%rsp)
  call   <_br2_load@plt>
  lea    0x18(%r12),%edi
  mov    $0x8,%esi
  mov    %rax,%r14
  call   <_br2_load@plt>
  lea    0x1c(%r12),%edi
  mov    $0x8,%esi
  mov    %rax,%r13
  call   <_br2_load@plt>
  xor    %r9d,%r9d
  add    %r15,%rbp
  movabs $0xffffffff00000002,%r11
  setb   %r9b
  xor    %r8d,%r8d
  add    0x8(%rsp),%r9
  mov    %rax,%r10
  setb   %r8b
  add    0x40(%rsp),%r9
  adc    $0x0,%r8
  xor    %edi,%edi
  add    0x10(%rsp),%r8
  setb   %dil
  add    0x48(%rsp),%r8
  adc    $0x0,%rdi
  xor    %ecx,%ecx
  add    0x18(%rsp),%rdi
  setb   %cl
  add    0x50(%rsp),%rdi
  adc    $0x0,%rcx
  xor    %edx,%edx
  add    0x20(%rsp),%rcx
  setb   %dl
  add    0x58(%rsp),%rcx
  adc    $0x0,%rdx
  xor    %eax,%eax
  add    0x28(%rsp),%rdx
  setb   %al
  add    %r14,%rdx
  adc    $0x0,%rax
  xor    %esi,%esi
  add    0x30(%rsp),%rax
  setb   %sil
  add    %r13,%rax
  adc    $0x0,%rsi
  xor    %r12d,%r12d
  add    0x38(%rsp),%rsi
  setb   %r12b
  xor    %r13d,%r13d
  add    %rsi,%r10
  movabs $0xffffffff000003d1,%rsi
  setb   %r13b
  add    %rbp,%rsi
  add    %r9,%r11
  cmp    %rsi,%rbp
  mov    %rsi,0x8(%rsp)
  mov    %r11,%r15
  setb   %sil
  movzbl %sil,%esi
  sub    %rsi,%r15
  movabs $0xffffffff00000001,%rsi
  setb   %r14b
  mov    %r15,0x10(%rsp)
  cmp    %r11,%r9
  lea    (%r8,%rsi,1),%r15
  movzbl %r14b,%r14d
  mov    %r15,%r11
  adc    $0x0,%r14
  sub    %r14,%r11
  lea    (%rdi,%rsi,1),%r14
  mov    %r11,0x18(%rsp)
  setb   %r11b
  cmp    %r15,%r8
  mov    %r14,%r15
  movzbl %r11b,%r11d
  adc    $0x0,%r11
  sub    %r11,%r15
  setb   %r11b
  mov    %r15,0x20(%rsp)
  cmp    %r14,%rdi
  lea    (%rcx,%rsi,1),%r15
  movzbl %r11b,%r11d
  mov    %r15,%r14
  adc    $0x0,%r11
  sub    %r11,%r14
  setb   %r11b
  mov    %r14,0x28(%rsp)
  cmp    %r15,%rcx
  lea    (%rdx,%rsi,1),%r14
  movzbl %r11b,%r11d
  mov    %r14,%r15
  adc    $0x0,%r11
  sub    %r11,%r15
  setb   %r11b
  mov    %r15,0x30(%rsp)
  cmp    %r14,%rdx
  lea    (%rax,%rsi,1),%r15
  movzbl %r11b,%r11d
  mov    %r15,%r14
  adc    $0x0,%r11
  sub    %r11,%r14
  setb   %r11b
  add    %r10,%rsi
  cmp    %r15,%rax
  mov    %r14,0x38(%rsp)
  movzbl %r11b,%r11d
  mov    %rsi,%r14
  mov    0x10(%rsp),%r15
  adc    $0x0,%r11
  sub    %r11,%r14
  setb   %r11b
  cmp    %rsi,%r10
  lea    0x0(%r13,%r12,1),%rsi
  mov    $0xffffffff,%r12d
  movzbl %r11b,%r11d
  mov    %r14,0x40(%rsp)
  adc    $0x0,%r11
  cmp    %rsi,%r11
  seta   %r11b
  movzbl %r11b,%r11d
  neg    %r11
  and    %r11,%r9
  xor    %r11,%r12
  and    %r11,%r8
  and    %r11,%rcx
  mov    %r9,%r13
  mov    0x18(%rsp),%r9
  and    %r12,%r15
  and    %r11,%rdx
  or     %r15,%r13
  mov    0x20(%rsp),%r15
  and    %r11,%rax
  and    %r11,%rdi
  and    %r12,%r9
  and    %r11,%r10
  and    %r11,%rbp
  or     %r9,%r8
  mov    %rdx,%r9
  and    %r12,%r15
  mov    0x38(%rsp),%rdx
  mov    %r8,%r14
  mov    %rcx,%r8
  mov    0x30(%rsp),%rcx
  or     %r15,%rdi
  mov    %rdi,%r15
  mov    0x28(%rsp),%rdi
  and    %r12,%rdx
  mov    %rbp,%rsi
  and    %r12,%rcx
  or     %rcx,%r9
  mov    %rax,%rcx
  mov    0x40(%rsp),%rax
  and    %r12,%rdi
  or     %rdi,%r8
  or     %rdx,%rcx
  mov    %ebx,%edi
  mov    $0x8,%edx
  and    %r12,%rax
  mov    %r8,0x28(%rsp)
  or     %rax,%r10
  mov    0x8(%rsp),%rax
  mov    %r9,0x20(%rsp)
  mov    %rcx,0x18(%rsp)
  and    %r12,%rax
  mov    %r10,0x10(%rsp)
  or     %rax,%rsi
  call   <_br2_store@plt>
  lea    0x4(%rbx),%edi
  mov    %r13,%rsi
  mov    $0x8,%edx
  call   <_br2_store@plt>
  lea    0x8(%rbx),%edi
  mov    %r14,%rsi
  mov    $0x8,%edx
  call   <_br2_store@plt>
  lea    0xc(%rbx),%edi
  mov    %r15,%rsi
  mov    $0x8,%edx
  call   <_br2_store@plt>
  mov    0x28(%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
  add    $0x68,%rsp
  lea    0x1c(%rbx),%edi
  mov    $0x8,%edx
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  jmp    1060 <_br2_store@plt>
```

assistant: ```c
void internal_fiat_secp256k1_add(uintptr_t out0, uintptr_t in0, uintptr_t in1) {
  uintptr_t x8, x0, x17, x1, x9, x19, x2, x10, x21, x3, x11, x23, x4, x12, x25, x5, x13, x27, x6, x14, x29, x7, x15, x33, x35, x37, x39, x41, x43, x31, x45, x16, x48, x32, x49, x18, x51, x34, x52, x20, x54, x36, x55, x22, x57, x38, x58, x24, x60, x40, x61, x26, x63, x42, x64, x28, x66, x44, x67, x47, x30, x69, x46, x70, x50, x53, x56, x59, x62, x65, x68, x71, x72, x73, x74, x75, x76, x77, x78, x79;
  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((in1) + ((uintptr_t)0ULL), sizeof(uintptr_t));
  x9 = _br2_load((in1) + ((uintptr_t)4ULL), sizeof(uintptr_t));
  x10 = _br2_load((in1) + ((uintptr_t)8ULL), sizeof(uintptr_t));
  x11 = _br2_load((in1) + ((uintptr_t)12ULL), sizeof(uintptr_t));
  x12 = _br2_load((in1) + ((uintptr_t)16ULL), sizeof(uintptr_t));
  x13 = _br2_load((in1) + ((uintptr_t)20ULL), sizeof(uintptr_t));
  x14 = _br2_load((in1) + ((uintptr_t)24ULL), sizeof(uintptr_t));
  x15 = _br2_load((in1) + ((uintptr_t)28ULL), sizeof(uintptr_t));
  x16 = (x0) + (x8);
  x17 = ((x16) < (x0)) + (x1);
  x18 = (x17) + (x9);
  x19 = (((x17) < (x1)) + ((x18) < (x9))) + (x2);
  x20 = (x19) + (x10);
  x21 = (((x19) < (x2)) + ((x20) < (x10))) + (x3);
  x22 = (x21) + (x11);
  x23 = (((x21) < (x3)) + ((x22) < (x11))) + (x4);
  x24 = (x23) + (x12);
  x25 = (((x23) < (x4)) + ((x24) < (x12))) + (x5);
  x26 = (x25) + (x13);
  x27 = (((x25) < (x5)) + ((x26) < (x13))) + (x6);
  x28 = (x27) + (x14);
  x29 = (((x27) < (x6)) + ((x28) < (x14))) + (x7);
  x30 = (x29) + (x15);
  x31 = ((x29) < (x7)) + ((x30) < (x15));
  x32 = (x16) - ((uintptr_t)4294966319ULL);
  x33 = (x18) - ((uintptr_t)4294967294ULL);
  x34 = (x33) - ((x16) < (x32));
  x35 = (x20) - ((uintptr_t)4294967295ULL);
  x36 = (x35) - (((x18) < (x33)) + ((x33) < (x34)));
  x37 = (x22) - ((uintptr_t)4294967295ULL);
  x38 = (x37) - (((x20) < (x35)) + ((x35) < (x36)));
  x39 = (x24) - ((uintptr_t)4294967295ULL);
  x40 = (x39) - (((x22) < (x37)) + ((x37) < (x38)));
  x41 = (x26) - ((uintptr_t)4294967295ULL);
  x42 = (x41) - (((x24) < (x39)) + ((x39) < (x40)));
  x43 = (x28) - ((uintptr_t)4294967295ULL);
  x44 = (x43) - (((x26) < (x41)) + ((x41) < (x42)));
  x45 = (x30) - ((uintptr_t)4294967295ULL);
  x46 = (x45) - (((x28) < (x43)) + ((x43) < (x44)));
  x47 = (x31) < ((x31) - (((x30) < (x45)) + ((x45) < (x46))));
  x48 = ((uintptr_t)-1ULL) + ((x47) == ((uintptr_t)0ULL));
  x49 = (x48) ^ ((uintptr_t)4294967295ULL);
  x50 = ((x16) & (x48)) | ((x32) & (x49));
  x51 = ((uintptr_t)-1ULL) + ((x47) == ((uintptr_t)0ULL));
  x52 = (x51) ^ ((uintptr_t)4294967295ULL);
  x53 = ((x18) & (x51)) | ((x34) & (x52));
  x54 = ((uintptr_t)-1ULL) + ((x47) == ((uintptr_t)0ULL));
  x55 = (x54) ^ ((uintptr_t)4294967295ULL);
  x56 = ((x20) & (x54)) | ((x36) & (x55));
  x57 = ((uintptr_t)-1ULL) + ((x47) == ((uintptr_t)0ULL));
  x58 = (x57) ^ ((uintptr_t)4294967295ULL);
  x59 = ((x22) & (x57)) | ((x38) & (x58));
  x60 = ((uintptr_t)-1ULL) + ((x47) == ((uintptr_t)0ULL));
  x61 = (x60) ^ ((uintptr_t)4294967295ULL);
  x62 = ((x24) & (x60)) | ((x40) & (x61));
  x63 = ((uintptr_t)-1ULL) + ((x47) == ((uintptr_t)0ULL));
  x64 = (x63) ^ ((uintptr_t)4294967295ULL);
  x65 = ((x26) & (x63)) | ((x42) & (x64));
  x66 = ((uintptr_t)-1ULL) + ((x47) == ((uintptr_t)0ULL));
  x67 = (x66) ^ ((uintptr_t)4294967295ULL);
  x68 = ((x28) & (x66)) | ((x44) & (x67));
  x69 = ((uintptr_t)-1ULL) + ((x47) == ((uintptr_t)0ULL));
  x70 = (x69) ^ ((uintptr_t)4294967295ULL);
  x71 = ((x30) & (x69)) | ((x46) & (x70));
  x72 = x50;
  x73 = x53;
  x74 = x56;
  x75 = x59;
  x76 = x62;
  x77 = x65;
  x78 = x68;
  x79 = x71;
  _br2_store((out0) + ((uintptr_t)0ULL), x72, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)4ULL), x73, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)8ULL), x74, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)12ULL), x75, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)16ULL), x76, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)20ULL), x77, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)24ULL), x78, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)28ULL), x79, sizeof(uintptr_t));
  return;
}
```