user: What is the c source code of the assembly code below?

```asm
<internal_fiat_p224_sub>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x58,%rsp
  mov    %rdi,%r12
  mov    %rsi,%rbp
  mov    %rdx,%rbx
  mov    $0x8,%esi
  mov    %ebp,%edi
  call   <_br2_load@plt>
  mov    %rax,%r14
  lea    0x4(%rbp),%edi
  mov    $0x8,%esi
  call   <_br2_load@plt>
  mov    %rax,%r13
  lea    0x8(%rbp),%edi
  mov    $0x8,%esi
  call   <_br2_load@plt>
  mov    %rax,0x8(%rsp)
  lea    0xc(%rbp),%edi
  mov    $0x8,%esi
  call   <_br2_load@plt>
  mov    %rax,%r15
  lea    0x10(%rbp),%edi
  mov    $0x8,%esi
  call   <_br2_load@plt>
  mov    %rax,0x10(%rsp)
  lea    0x14(%rbp),%edi
  mov    $0x8,%esi
  call   <_br2_load@plt>
  mov    %rax,0x18(%rsp)
  lea    0x18(%rbp),%edi
  mov    $0x8,%esi
  call   <_br2_load@plt>
  mov    %rax,%rbp
  mov    $0x8,%esi
  mov    %ebx,%edi
  call   <_br2_load@plt>
  mov    %rax,0x20(%rsp)
  lea    0x4(%rbx),%edi
  mov    $0x8,%esi
  call   <_br2_load@plt>
  mov    %rax,0x28(%rsp)
  lea    0x8(%rbx),%edi
  mov    $0x8,%esi
  call   <_br2_load@plt>
  mov    %rax,0x30(%rsp)
  lea    0xc(%rbx),%edi
  mov    $0x8,%esi
  call   <_br2_load@plt>
  mov    %rax,0x38(%rsp)
  lea    0x10(%rbx),%edi
  mov    $0x8,%esi
  call   <_br2_load@plt>
  mov    %rax,0x40(%rsp)
  lea    0x14(%rbx),%edi
  mov    $0x8,%esi
  call   <_br2_load@plt>
  mov    %rax,0x48(%rsp)
  lea    0x18(%rbx),%edi
  mov    $0x8,%esi
  call   <_br2_load@plt>
  mov    %r14,%rsi
  sub    0x20(%rsp),%rsi
  mov    %r13,%rcx
  sub    0x28(%rsp),%rcx
  cmp    %rsi,%r14
  mov    %rcx,%r11
  sbb    $0x0,%r11
  mov    0x8(%rsp),%rbx
  mov    %rbx,%r8
  sub    0x30(%rsp),%r8
  cmp    %rcx,%r13
  setb   %dl
  movzbl %dl,%edx
  cmp    %r11,%rcx
  adc    $0x0,%edx
  movslq %edx,%rdx
  mov    %r8,%r10
  sub    %rdx,%r10
  mov    %r15,%rdi
  sub    0x38(%rsp),%rdi
  cmp    %r8,%rbx
  setb   %cl
  movzbl %cl,%ecx
  cmp    %r10,%r8
  adc    $0x0,%ecx
  movslq %ecx,%rcx
  mov    %rdi,%rdx
  sub    %rcx,%rdx
  mov    0x10(%rsp),%rbx
  mov    %rbx,%r8
  sub    0x40(%rsp),%r8
  cmp    %rdi,%r15
  setb   %cl
  movzbl %cl,%ecx
  cmp    %rdx,%rdi
  adc    $0x0,%ecx
  movslq %ecx,%rcx
  mov    %r8,%r9
  sub    %rcx,%r9
  mov    0x18(%rsp),%r14
  mov    %r14,%rcx
  sub    0x48(%rsp),%rcx
  cmp    %r8,%rbx
  setb   %dil
  movzbl %dil,%edi
  cmp    %r9,%r8
  adc    $0x0,%edi
  movslq %edi,%rdi
  mov    %rcx,%r8
  sub    %rdi,%r8
  mov    %rbp,%rdi
  sub    %rax,%rdi
  cmp    %rcx,%r14
  setb   %al
  movzbl %al,%eax
  cmp    %r8,%rcx
  adc    $0x0,%eax
  cltq
  mov    %rdi,%rcx
  sub    %rax,%rcx
  cmp    %rdi,%rbp
  setb   %al
  movzbl %al,%eax
  cmp    %rcx,%rdi
  adc    $0x0,%eax
  test   %eax,%eax
  setne  %al
  movzbl %al,%eax
  mov    %rax,%rdi
  neg    %rdi
  add    %rax,%rsi
  mov    %r11,%r15
  adc    $0x0,%r15
  cmp    %r15,%r11
  seta   %bpl
  movzbl %bpl,%ebp
  add    %r10,%rbp
  mov    %rbp,0x8(%rsp)
  mov    %rdx,%r10
  adc    $0x0,%r10
  mov    %r10,%r14
  sub    %rax,%r14
  cmp    %r10,%rdx
  seta   %dl
  movzbl %dl,%edx
  cmp    %rdi,%r14
  adc    $0x0,%edx
  movslq %edx,%rdx
  add    %r9,%rdx
  mov    %rdx,%r13
  sub    %rax,%r13
  cmp    %rdx,%r9
  seta   %dl
  movzbl %dl,%edx
  cmp    %r13,%rdi
  seta   %r9b
  movzbl %r9b,%r9d
  add    %r9d,%edx
  movslq %edx,%rdx
  add    %r8,%rdx
  mov    %rdx,%rbx
  sub    %rax,%rbx
  mov    %rbx,%rbp
  cmp    %rdx,%r8
  seta   %bl
  movzbl %bl,%ebx
  cmp    %rbp,%rdi
  seta   %dl
  movzbl %dl,%edx
  add    %edx,%ebx
  movslq %ebx,%rbx
  sub    %rax,%rcx
  add    %rcx,%rbx
  mov    $0x8,%edx
  mov    %r12d,%edi
  call   <_br2_store@plt>
  lea    0x4(%r12),%edi
  mov    $0x8,%edx
  mov    %r15,%rsi
  call   <_br2_store@plt>
  lea    0x8(%r12),%edi
  mov    $0x8,%edx
  mov    0x8(%rsp),%rsi
  call   <_br2_store@plt>
  lea    0xc(%r12),%edi
  mov    $0x8,%edx
  mov    %r14,%rsi
  call   <_br2_store@plt>
  lea    0x10(%r12),%edi
  mov    $0x8,%edx
  mov    %r13,%rsi
  call   <_br2_store@plt>
  lea    0x14(%r12),%edi
  mov    $0x8,%edx
  mov    %rbp,%rsi
  call   <_br2_store@plt>
  lea    0x18(%r12),%edi
  mov    $0x8,%edx
  mov    %rbx,%rsi
  call   <_br2_store@plt>
  add    $0x58,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
```

assistant: ```c
void internal_fiat_p224_sub(uintptr_t out0, uintptr_t in0, uintptr_t in1) {
  uintptr_t x7, x8, x0, x9, x1, x15, x10, x2, x17, x11, x3, x19, x12, x4, x21, x13, x5, x23, x6, x25, x14, x16, x18, x31, x20, x33, x22, x35, x24, x26, x27, x28, x29, x30, x32, x34, x36, x37, x38, x39, x40, x41, x42, x43, x44;
  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 = (x1) - (x8);
  x16 = (x15) - ((x0) < (x14));
  x17 = (x2) - (x9);
  x18 = (x17) - (((x1) < (x15)) + ((x15) < (x16)));
  x19 = (x3) - (x10);
  x20 = (x19) - (((x2) < (x17)) + ((x17) < (x18)));
  x21 = (x4) - (x11);
  x22 = (x21) - (((x3) < (x19)) + ((x19) < (x20)));
  x23 = (x5) - (x12);
  x24 = (x23) - (((x4) < (x21)) + ((x21) < (x22)));
  x25 = (x6) - (x13);
  x26 = (x25) - (((x5) < (x23)) + ((x23) < (x24)));
  x27 = ((uintptr_t)-1ULL) + ((((x6) < (x25)) + ((x25) < (x26))) == ((uintptr_t)0ULL));
  x28 = (x14) + ((x27) & ((uintptr_t)1ULL));
  x29 = ((x28) < (x14)) + (x16);
  x30 = ((x29) < (x16)) + (x18);
  x31 = ((x30) < (x18)) + (x20);
  x32 = (x31) + (x27);
  x33 = (((x31) < (x20)) + ((x32) < (x27))) + (x22);
  x34 = (x33) + (x27);
  x35 = (((x33) < (x22)) + ((x34) < (x27))) + (x24);
  x36 = (x35) + (x27);
  x37 = ((((x35) < (x24)) + ((x36) < (x27))) + (x26)) + (x27);
  x38 = x28;
  x39 = x29;
  x40 = x30;
  x41 = x32;
  x42 = x34;
  x43 = x36;
  x44 = x37;
  _br2_store((out0) + ((uintptr_t)0ULL), x38, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)4ULL), x39, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)8ULL), x40, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)12ULL), x41, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)16ULL), x42, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)20ULL), x43, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)24ULL), x44, sizeof(uintptr_t));
  return;
}
```