user: 请将以下的汇编代码转换成C语言代码:

```asm
<internal_fiat_secp256k1_add>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  mov    %rdx,%r12
  push   %rbp
  mov    %rdi,%rbp
  push   %rbx
  mov    %rsi,%rbx
  mov    $0x8,%esi
  mov    %ebx,%edi
  sub    $0x28,%rsp
  call   <_br2_load@plt>
  lea    0x8(%rbx),%edi
  mov    $0x8,%esi
  mov    %rax,%r14
  call   <_br2_load@plt>
  lea    0x10(%rbx),%edi
  mov    $0x8,%esi
  mov    %rax,%r15
  call   <_br2_load@plt>
  lea    0x18(%rbx),%edi
  mov    $0x8,%esi
  mov    %rax,0x8(%rsp)
  call   <_br2_load@plt>
  mov    %r12d,%edi
  mov    $0x8,%esi
  mov    %rax,0x10(%rsp)
  call   <_br2_load@plt>
  lea    0x8(%r12),%edi
  mov    $0x8,%esi
  mov    %rax,%rbx
  call   <_br2_load@plt>
  lea    0x10(%r12),%edi
  mov    $0x8,%esi
  mov    %rax,%r13
  call   <_br2_load@plt>
  lea    0x18(%r12),%edi
  mov    $0x8,%esi
  mov    %rax,0x18(%rsp)
  call   <_br2_load@plt>
  mov    %r14,%rsi
  movabs $0x1000003d1,%rcx
  mov    %rax,%r8
  xor    %eax,%eax
  add    %rbx,%rsi
  setb   %al
  mov    %rax,%rdx
  xor    %eax,%eax
  add    %r15,%rdx
  setb   %al
  add    %rdx,%r13
  mov    0x8(%rsp),%rdx
  adc    $0x0,%rax
  lea    0x1(%r13),%r9
  add    %rax,%rdx
  mov    %r9,%r10
  setb   %al
  add    0x18(%rsp),%rdx
  movzbl %al,%eax
  adc    $0x0,%rax
  xor    %r11d,%r11d
  add    0x10(%rsp),%rax
  setb   %r11b
  xor    %ebx,%ebx
  add    %r8,%rax
  setb   %bl
  add    %rsi,%rcx
  lea    0x1(%rdx),%r8
  xor    %edi,%edi
  cmp    %rcx,%rsi
  lea    0x1(%rax),%r12
  setb   %dil
  sub    %rdi,%r10
  setb   %dil
  cmp    %r9,%r13
  mov    %r8,%r9
  movzbl %dil,%edi
  adc    $0x0,%rdi
  sub    %rdi,%r9
  setb   %dil
  cmp    %r8,%rdx
  mov    %r12,%r8
  movzbl %dil,%edi
  adc    $0x0,%rdi
  sub    %rdi,%r8
  setb   %dil
  cmp    %r12,%rax
  movzbl %dil,%edi
  adc    $0x0,%rdi
  add    %rbx,%r11
  cmp    %r11,%rdi
  seta   %dil
  xor    %r10,%r13
  xor    %r9,%rdx
  xor    %r8,%rax
  movzbl %dil,%edi
  xor    %rcx,%rsi
  mov    %rax,%r12
  neg    %rdi
  and    %rdi,%rdx
  and    %rdi,%r13
  and    %rdi,%rsi
  and    %rdi,%r12
  xor    %r10,%r13
  xor    %rcx,%rsi
  mov    %ebp,%edi
  mov    %rdx,%r14
  mov    $0x8,%edx
  xor    %r9,%r14
  xor    %r8,%r12
  call   <_br2_store@plt>
  lea    0x8(%rbp),%edi
  mov    %r13,%rsi
  mov    $0x8,%edx
  call   <_br2_store@plt>
  lea    0x10(%rbp),%edi
  mov    %r14,%rsi
  mov    $0x8,%edx
  call   <_br2_store@plt>
  add    $0x28,%rsp
  lea    0x18(%rbp),%edi
  mov    %r12,%rsi
  pop    %rbx
  mov    $0x8,%edx
  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 x4, x0, x9, x1, x5, x11, x2, x6, x13, x3, x7, x17, x19, x15, x21, x8, x24, x16, x25, x10, x27, x18, x28, x12, x30, x20, x31, x23, x14, x33, x22, x34, x26, x29, x32, x35, x36, x37, x38, x39;
  x0 = _br2_load((in0) + ((uintptr_t)0ULL), sizeof(uintptr_t));
  x1 = _br2_load((in0) + ((uintptr_t)8ULL), sizeof(uintptr_t));
  x2 = _br2_load((in0) + ((uintptr_t)16ULL), sizeof(uintptr_t));
  x3 = _br2_load((in0) + ((uintptr_t)24ULL), sizeof(uintptr_t));
  x4 = _br2_load((in1) + ((uintptr_t)0ULL), sizeof(uintptr_t));
  x5 = _br2_load((in1) + ((uintptr_t)8ULL), sizeof(uintptr_t));
  x6 = _br2_load((in1) + ((uintptr_t)16ULL), sizeof(uintptr_t));
  x7 = _br2_load((in1) + ((uintptr_t)24ULL), sizeof(uintptr_t));
  x8 = (x0) + (x4);
  x9 = ((x8) < (x0)) + (x1);
  x10 = (x9) + (x5);
  x11 = (((x9) < (x1)) + ((x10) < (x5))) + (x2);
  x12 = (x11) + (x6);
  x13 = (((x11) < (x2)) + ((x12) < (x6))) + (x3);
  x14 = (x13) + (x7);
  x15 = ((x13) < (x3)) + ((x14) < (x7));
  x16 = (x8) - ((uintptr_t)18446744069414583343ULL);
  x17 = (x10) - ((uintptr_t)18446744073709551615ULL);
  x18 = (x17) - ((x8) < (x16));
  x19 = (x12) - ((uintptr_t)18446744073709551615ULL);
  x20 = (x19) - (((x10) < (x17)) + ((x17) < (x18)));
  x21 = (x14) - ((uintptr_t)18446744073709551615ULL);
  x22 = (x21) - (((x12) < (x19)) + ((x19) < (x20)));
  x23 = (x15) < ((x15) - (((x14) < (x21)) + ((x21) < (x22))));
  x24 = ((uintptr_t)-1ULL) + ((x23) == ((uintptr_t)0ULL));
  x25 = (x24) ^ ((uintptr_t)18446744073709551615ULL);
  x26 = ((x8) & (x24)) | ((x16) & (x25));
  x27 = ((uintptr_t)-1ULL) + ((x23) == ((uintptr_t)0ULL));
  x28 = (x27) ^ ((uintptr_t)18446744073709551615ULL);
  x29 = ((x10) & (x27)) | ((x18) & (x28));
  x30 = ((uintptr_t)-1ULL) + ((x23) == ((uintptr_t)0ULL));
  x31 = (x30) ^ ((uintptr_t)18446744073709551615ULL);
  x32 = ((x12) & (x30)) | ((x20) & (x31));
  x33 = ((uintptr_t)-1ULL) + ((x23) == ((uintptr_t)0ULL));
  x34 = (x33) ^ ((uintptr_t)18446744073709551615ULL);
  x35 = ((x14) & (x33)) | ((x22) & (x34));
  x36 = x26;
  x37 = x29;
  x38 = x32;
  x39 = x35;
  _br2_store((out0) + ((uintptr_t)0ULL), x36, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)8ULL), x37, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)16ULL), x38, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)24ULL), x39, sizeof(uintptr_t));
  return;
}
```