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

```asm
<internal_fiat_p224_add>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  mov    %rdi,%r12
  push   %rbp
  mov    %rdx,%rbp
  push   %rbx
  mov    %rsi,%rbx
  mov    $0x8,%esi
  mov    %ebx,%edi
  sub    $0x58,%rsp
  call   <_br2_load@plt>
  lea    0x4(%rbx),%edi
  mov    $0x8,%esi
  mov    %rax,%r14
  call   <_br2_load@plt>
  lea    0x8(%rbx),%edi
  mov    $0x8,%esi
  mov    %rax,%r15
  call   <_br2_load@plt>
  lea    0xc(%rbx),%edi
  mov    $0x8,%esi
  mov    %rax,0x8(%rsp)
  call   <_br2_load@plt>
  lea    0x10(%rbx),%edi
  mov    $0x8,%esi
  mov    %rax,0x10(%rsp)
  call   <_br2_load@plt>
  lea    0x14(%rbx),%edi
  mov    $0x8,%esi
  mov    %rax,0x18(%rsp)
  call   <_br2_load@plt>
  lea    0x18(%rbx),%edi
  mov    $0x8,%esi
  mov    %rax,0x20(%rsp)
  call   <_br2_load@plt>
  mov    %ebp,%edi
  mov    $0x8,%esi
  mov    %rax,0x28(%rsp)
  call   <_br2_load@plt>
  lea    0x4(%rbp),%edi
  mov    $0x8,%esi
  mov    %rax,%rbx
  call   <_br2_load@plt>
  lea    0x8(%rbp),%edi
  mov    $0x8,%esi
  mov    %rax,0x30(%rsp)
  call   <_br2_load@plt>
  lea    0xc(%rbp),%edi
  mov    $0x8,%esi
  mov    %rax,%r13
  call   <_br2_load@plt>
  lea    0x10(%rbp),%edi
  mov    $0x8,%esi
  mov    %rax,0x38(%rsp)
  call   <_br2_load@plt>
  lea    0x14(%rbp),%edi
  mov    $0x8,%esi
  mov    %rax,0x40(%rsp)
  call   <_br2_load@plt>
  lea    0x18(%rbp),%edi
  mov    $0x8,%esi
  mov    %rax,0x48(%rsp)
  call   <_br2_load@plt>
  xor    %edi,%edi
  add    %r14,%rbx
  setb   %dil
  mov    %rax,%r8
  lea    -0x1(%rbx),%r11
  xor    %eax,%eax
  add    %r15,%rdi
  setb   %al
  add    0x30(%rsp),%rdi
  adc    $0x0,%rax
  xor    %ecx,%ecx
  add    0x8(%rsp),%rax
  mov    %rdi,%r15
  setb   %cl
  add    %rax,%r13
  adc    $0x0,%rcx
  xor    %edx,%edx
  add    0x10(%rsp),%rcx
  mov    %r13,%r14
  setb   %dl
  add    0x38(%rsp),%rcx
  adc    $0x0,%rdx
  xor    %eax,%eax
  add    0x18(%rsp),%rdx
  setb   %al
  add    0x40(%rsp),%rdx
  adc    $0x0,%rax
  xor    %esi,%esi
  add    0x20(%rsp),%rax
  setb   %sil
  add    0x48(%rsp),%rax
  adc    $0x0,%rsi
  xor    %ebp,%ebp
  add    0x28(%rsp),%rsi
  setb   %bpl
  add    %rsi,%r8
  setb   %sil
  movzbl %sil,%esi
  mov    %rsi,0x8(%rsp)
  xor    %esi,%esi
  cmp    %r11,%rbx
  setb   %sil
  sub    %rsi,%r15
  setb   %sil
  movzbl %sil,%esi
  sub    %rsi,%r14
  movabs $0xffffffff00000001,%rsi
  mov    %r14,0x10(%rsp)
  setb   %r9b
  lea    (%rcx,%rsi,1),%r14
  movzbl %r9b,%r9d
  mov    %r14,%r10
  sub    %r9,%r10
  setb   %r9b
  mov    %r10,0x18(%rsp)
  cmp    %r14,%rcx
  lea    (%rdx,%rsi,1),%r10
  movzbl %r9b,%r9d
  mov    %r10,%r14
  adc    $0x0,%r9
  sub    %r9,%r14
  setb   %r9b
  mov    %r14,0x20(%rsp)
  cmp    %r10,%rdx
  lea    (%rax,%rsi,1),%r14
  movzbl %r9b,%r9d
  mov    %r14,%r10
  adc    $0x0,%r9
  sub    %r9,%r10
  lea    (%r8,%rsi,1),%r9
  mov    %r10,0x28(%rsp)
  setb   %r10b
  cmp    %r14,%rax
  mov    %r9,%rsi
  movzbl %r10b,%r10d
  adc    $0x0,%r10
  sub    %r10,%rsi
  setb   %r10b
  cmp    %r9,%r8
  mov    0x8(%rsp),%r9
  movzbl %r10b,%r10d
  adc    $0x0,%r10
  add    %rbp,%r9
  cmp    %r9,%r10
  mov    $0xffffffff,%r10d
  seta   %r9b
  movzbl %r9b,%r9d
  neg    %r9
  xor    %r9,%r10
  and    %r9,%rdi
  and    %r9,%r13
  and    %r9,%rcx
  and    %r10,%r15
  and    %r9,%rdx
  and    %r9,%rbx
  and    %r10,%r11
  or     %rdi,%r15
  mov    0x10(%rsp),%rdi
  and    %r10,%rsi
  or     %r11,%rbx
  and    %r9,%rax
  and    %r9,%r8
  and    %r10,%rdi
  or     %rsi,%r8
  mov    %rbx,%rsi
  or     %rdi,%r13
  mov    0x18(%rsp),%rdi
  mov    %r8,0x8(%rsp)
  and    %r10,%rdi
  or     %rdi,%rcx
  mov    %r12d,%edi
  mov    %rcx,%r14
  mov    0x20(%rsp),%rcx
  and    %r10,%rcx
  or     %rdx,%rcx
  mov    0x28(%rsp),%rdx
  mov    %rcx,0x10(%rsp)
  and    %r10,%rdx
  or     %rdx,%rax
  mov    $0x8,%edx
  mov    %rax,%rbp
  call   <_br2_store@plt>
  lea    0x4(%r12),%edi
  mov    %r15,%rsi
  mov    $0x8,%edx
  call   <_br2_store@plt>
  lea    0x8(%r12),%edi
  mov    %r13,%rsi
  mov    $0x8,%edx
  call   <_br2_store@plt>
  lea    0xc(%r12),%edi
  mov    %r14,%rsi
  mov    $0x8,%edx
  call   <_br2_store@plt>
  mov    0x10(%rsp),%rsi
  lea    0x10(%r12),%edi
  mov    $0x8,%edx
  call   <_br2_store@plt>
  lea    0x14(%r12),%edi
  mov    %rbp,%rsi
  mov    $0x8,%edx
  call   <_br2_store@plt>
  mov    0x8(%rsp),%rsi
  add    $0x58,%rsp
  lea    0x18(%r12),%edi
  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_p224_add(uintptr_t out0, uintptr_t in0, uintptr_t in1) {
  uintptr_t x7, x0, x15, x1, x8, x17, x2, x9, x19, x3, x10, x21, x4, x11, x23, x5, x12, x25, x6, x13, x31, x33, x35, x27, x37, x14, x40, x28, x41, x16, x43, x29, x44, x18, x46, x30, x47, x20, x49, x32, x50, x22, x52, x34, x53, x24, x55, x36, x56, x39, x26, x58, x38, x59, x42, x45, x48, x51, x54, x57, x60, x61, x62, x63, x64, x65, x66, x67;
  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((in1) + ((uintptr_t)0ULL), sizeof(uintptr_t));
  x8 = _br2_load((in1) + ((uintptr_t)4ULL), sizeof(uintptr_t));
  x9 = _br2_load((in1) + ((uintptr_t)8ULL), sizeof(uintptr_t));
  x10 = _br2_load((in1) + ((uintptr_t)12ULL), sizeof(uintptr_t));
  x11 = _br2_load((in1) + ((uintptr_t)16ULL), sizeof(uintptr_t));
  x12 = _br2_load((in1) + ((uintptr_t)20ULL), sizeof(uintptr_t));
  x13 = _br2_load((in1) + ((uintptr_t)24ULL), sizeof(uintptr_t));
  x14 = (x0) + (x7);
  x15 = ((x14) < (x0)) + (x1);
  x16 = (x15) + (x8);
  x17 = (((x15) < (x1)) + ((x16) < (x8))) + (x2);
  x18 = (x17) + (x9);
  x19 = (((x17) < (x2)) + ((x18) < (x9))) + (x3);
  x20 = (x19) + (x10);
  x21 = (((x19) < (x3)) + ((x20) < (x10))) + (x4);
  x22 = (x21) + (x11);
  x23 = (((x21) < (x4)) + ((x22) < (x11))) + (x5);
  x24 = (x23) + (x12);
  x25 = (((x23) < (x5)) + ((x24) < (x12))) + (x6);
  x26 = (x25) + (x13);
  x27 = ((x25) < (x6)) + ((x26) < (x13));
  x28 = (x14) - ((uintptr_t)1ULL);
  x29 = (x16) - ((x14) < (x28));
  x30 = (x18) - ((x16) < (x29));
  x31 = (x20) - ((uintptr_t)4294967295ULL);
  x32 = (x31) - ((x18) < (x30));
  x33 = (x22) - ((uintptr_t)4294967295ULL);
  x34 = (x33) - (((x20) < (x31)) + ((x31) < (x32)));
  x35 = (x24) - ((uintptr_t)4294967295ULL);
  x36 = (x35) - (((x22) < (x33)) + ((x33) < (x34)));
  x37 = (x26) - ((uintptr_t)4294967295ULL);
  x38 = (x37) - (((x24) < (x35)) + ((x35) < (x36)));
  x39 = (x27) < ((x27) - (((x26) < (x37)) + ((x37) < (x38))));
  x40 = ((uintptr_t)-1ULL) + ((x39) == ((uintptr_t)0ULL));
  x41 = (x40) ^ ((uintptr_t)4294967295ULL);
  x42 = ((x14) & (x40)) | ((x28) & (x41));
  x43 = ((uintptr_t)-1ULL) + ((x39) == ((uintptr_t)0ULL));
  x44 = (x43) ^ ((uintptr_t)4294967295ULL);
  x45 = ((x16) & (x43)) | ((x29) & (x44));
  x46 = ((uintptr_t)-1ULL) + ((x39) == ((uintptr_t)0ULL));
  x47 = (x46) ^ ((uintptr_t)4294967295ULL);
  x48 = ((x18) & (x46)) | ((x30) & (x47));
  x49 = ((uintptr_t)-1ULL) + ((x39) == ((uintptr_t)0ULL));
  x50 = (x49) ^ ((uintptr_t)4294967295ULL);
  x51 = ((x20) & (x49)) | ((x32) & (x50));
  x52 = ((uintptr_t)-1ULL) + ((x39) == ((uintptr_t)0ULL));
  x53 = (x52) ^ ((uintptr_t)4294967295ULL);
  x54 = ((x22) & (x52)) | ((x34) & (x53));
  x55 = ((uintptr_t)-1ULL) + ((x39) == ((uintptr_t)0ULL));
  x56 = (x55) ^ ((uintptr_t)4294967295ULL);
  x57 = ((x24) & (x55)) | ((x36) & (x56));
  x58 = ((uintptr_t)-1ULL) + ((x39) == ((uintptr_t)0ULL));
  x59 = (x58) ^ ((uintptr_t)4294967295ULL);
  x60 = ((x26) & (x58)) | ((x38) & (x59));
  x61 = x42;
  x62 = x45;
  x63 = x48;
  x64 = x51;
  x65 = x54;
  x66 = x57;
  x67 = x60;
  _br2_store((out0) + ((uintptr_t)0ULL), x61, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)4ULL), x62, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)8ULL), x63, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)12ULL), x64, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)16ULL), x65, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)20ULL), x66, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)24ULL), x67, sizeof(uintptr_t));
  return;
}
```