user: Please show me the C implementation that matches the assembly code listed below:

```asm
<internal_fiat_p521_selectznz>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  mov    %rdx,%r12
  push   %rbp
  mov    %rcx,%rbp
  push   %rbx
  mov    %rdi,%rbx
  mov    %edx,%edi
  sub    $0x78,%rsp
  mov    %rsi,0x68(%rsp)
  mov    $0x8,%esi
  call   <_br2_load@plt>
  lea    0x8(%r12),%edi
  mov    $0x8,%esi
  mov    %rax,(%rsp)
  call   <_br2_load@plt>
  lea    0x10(%r12),%edi
  mov    $0x8,%esi
  mov    %rax,0x60(%rsp)
  call   <_br2_load@plt>
  lea    0x18(%r12),%edi
  mov    $0x8,%esi
  mov    %rax,0x48(%rsp)
  call   <_br2_load@plt>
  lea    0x20(%r12),%edi
  mov    $0x8,%esi
  mov    %rax,0x58(%rsp)
  call   <_br2_load@plt>
  lea    0x28(%r12),%edi
  mov    $0x8,%esi
  mov    %rax,0x50(%rsp)
  call   <_br2_load@plt>
  lea    0x30(%r12),%edi
  mov    $0x8,%esi
  mov    %rax,%r15
  call   <_br2_load@plt>
  lea    0x38(%r12),%edi
  mov    $0x8,%esi
  mov    %rax,0x8(%rsp)
  call   <_br2_load@plt>
  lea    0x40(%r12),%edi
  mov    $0x8,%esi
  mov    %rax,0x10(%rsp)
  call   <_br2_load@plt>
  mov    %ebp,%edi
  mov    $0x8,%esi
  mov    %rax,0x18(%rsp)
  call   <_br2_load@plt>
  lea    0x8(%rbp),%edi
  mov    $0x8,%esi
  mov    %rax,0x20(%rsp)
  call   <_br2_load@plt>
  lea    0x10(%rbp),%edi
  mov    $0x8,%esi
  mov    %rax,0x28(%rsp)
  call   <_br2_load@plt>
  lea    0x18(%rbp),%edi
  mov    $0x8,%esi
  mov    %rax,0x30(%rsp)
  call   <_br2_load@plt>
  lea    0x20(%rbp),%edi
  mov    $0x8,%esi
  mov    %rax,0x38(%rsp)
  call   <_br2_load@plt>
  lea    0x28(%rbp),%edi
  mov    $0x8,%esi
  mov    %rax,0x40(%rsp)
  call   <_br2_load@plt>
  lea    0x30(%rbp),%edi
  mov    $0x8,%esi
  mov    %rax,%r14
  call   <_br2_load@plt>
  lea    0x38(%rbp),%edi
  mov    $0x8,%esi
  mov    %rax,%r13
  call   <_br2_load@plt>
  lea    0x40(%rbp),%edi
  mov    $0x8,%esi
  mov    %rax,%r12
  call   <_br2_load@plt>
  mov    0x68(%rsp),%r8
  mov    0x60(%rsp),%r10
  mov    0x28(%rsp),%rbp
  mov    0x48(%rsp),%r9
  mov    %rax,%r11
  neg    %r8
  mov    0x30(%rsp),%r8
  mov    0x50(%rsp),%rdx
  sbb    %rax,%rax
  xor    %r10,%rbp
  mov    0x58(%rsp),%rcx
  xor    %r15,%r14
  and    %rax,%rbp
  xor    %r9,%r8
  and    %rax,%r14
  mov    0x10(%rsp),%rdi
  xor    %r10,%rbp
  and    %rax,%r8
  mov    0x40(%rsp),%r10
  xor    %r15,%r14
  xor    %r9,%r8
  mov    0x38(%rsp),%r9
  mov    0x8(%rsp),%r15
  xor    %rdi,%r12
  xor    %rdx,%r10
  mov    0x20(%rsp),%rsi
  and    %rax,%r12
  mov    %r8,0x48(%rsp)
  xor    %rcx,%r9
  and    %rax,%r10
  xor    %r15,%r13
  xor    %rdi,%r12
  xor    %rdx,%r10
  and    %rax,%r9
  mov    0x18(%rsp),%rdx
  and    %rax,%r13
  xor    %rcx,%r9
  mov    (%rsp),%rcx
  xor    %r15,%r13
  mov    %ebx,%edi
  xor    %rdx,%r11
  mov    %r9,0x30(%rsp)
  mov    %r11,%r15
  xor    %rcx,%rsi
  mov    %r10,0x28(%rsp)
  and    %rax,%r15
  and    %rax,%rsi
  xor    %rcx,%rsi
  xor    %rdx,%r15
  mov    $0x8,%edx
  call   <_br2_store@plt>
  lea    0x8(%rbx),%edi
  mov    %rbp,%rsi
  mov    $0x8,%edx
  call   <_br2_store@plt>
  mov    0x48(%rsp),%rsi
  lea    0x10(%rbx),%edi
  mov    $0x8,%edx
  call   <_br2_store@plt>
  mov    0x30(%rsp),%rsi
  lea    0x18(%rbx),%edi
  mov    $0x8,%edx
  call   <_br2_store@plt>
  mov    0x28(%rsp),%rsi
  lea    0x20(%rbx),%edi
  mov    $0x8,%edx
  call   <_br2_store@plt>
  lea    0x28(%rbx),%edi
  mov    %r14,%rsi
  mov    $0x8,%edx
  call   <_br2_store@plt>
  lea    0x30(%rbx),%edi
  mov    %r13,%rsi
  mov    $0x8,%edx
  call   <_br2_store@plt>
  lea    0x38(%rbx),%edi
  mov    %r12,%rsi
  mov    $0x8,%edx
  call   <_br2_store@plt>
  add    $0x78,%rsp
  lea    0x40(%rbx),%edi
  mov    %r15,%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_p521_selectznz(uintptr_t out0, uintptr_t in0, uintptr_t in1, uintptr_t in2) {
  uintptr_t x9, x18, x0, x19, x10, x21, x1, x22, x11, x24, x2, x25, x12, x27, x3, x28, x13, x30, x4, x31, x14, x33, x5, x34, x15, x36, x6, x37, x16, x39, x7, x40, x17, x42, x8, x43, x20, x23, x26, x29, x32, x35, x38, x41, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53;
  x0 = _br2_load((in1) + ((uintptr_t)0ULL), sizeof(uintptr_t));
  x1 = _br2_load((in1) + ((uintptr_t)8ULL), sizeof(uintptr_t));
  x2 = _br2_load((in1) + ((uintptr_t)16ULL), sizeof(uintptr_t));
  x3 = _br2_load((in1) + ((uintptr_t)24ULL), sizeof(uintptr_t));
  x4 = _br2_load((in1) + ((uintptr_t)32ULL), sizeof(uintptr_t));
  x5 = _br2_load((in1) + ((uintptr_t)40ULL), sizeof(uintptr_t));
  x6 = _br2_load((in1) + ((uintptr_t)48ULL), sizeof(uintptr_t));
  x7 = _br2_load((in1) + ((uintptr_t)56ULL), sizeof(uintptr_t));
  x8 = _br2_load((in1) + ((uintptr_t)64ULL), sizeof(uintptr_t));
  x9 = _br2_load((in2) + ((uintptr_t)0ULL), sizeof(uintptr_t));
  x10 = _br2_load((in2) + ((uintptr_t)8ULL), sizeof(uintptr_t));
  x11 = _br2_load((in2) + ((uintptr_t)16ULL), sizeof(uintptr_t));
  x12 = _br2_load((in2) + ((uintptr_t)24ULL), sizeof(uintptr_t));
  x13 = _br2_load((in2) + ((uintptr_t)32ULL), sizeof(uintptr_t));
  x14 = _br2_load((in2) + ((uintptr_t)40ULL), sizeof(uintptr_t));
  x15 = _br2_load((in2) + ((uintptr_t)48ULL), sizeof(uintptr_t));
  x16 = _br2_load((in2) + ((uintptr_t)56ULL), sizeof(uintptr_t));
  x17 = _br2_load((in2) + ((uintptr_t)64ULL), sizeof(uintptr_t));
  x18 = ((uintptr_t)-1ULL) + ((in0) == ((uintptr_t)0ULL));
  x19 = (x18) ^ ((uintptr_t)18446744073709551615ULL);
  x20 = ((x9) & (x18)) | ((x0) & (x19));
  x21 = ((uintptr_t)-1ULL) + ((in0) == ((uintptr_t)0ULL));
  x22 = (x21) ^ ((uintptr_t)18446744073709551615ULL);
  x23 = ((x10) & (x21)) | ((x1) & (x22));
  x24 = ((uintptr_t)-1ULL) + ((in0) == ((uintptr_t)0ULL));
  x25 = (x24) ^ ((uintptr_t)18446744073709551615ULL);
  x26 = ((x11) & (x24)) | ((x2) & (x25));
  x27 = ((uintptr_t)-1ULL) + ((in0) == ((uintptr_t)0ULL));
  x28 = (x27) ^ ((uintptr_t)18446744073709551615ULL);
  x29 = ((x12) & (x27)) | ((x3) & (x28));
  x30 = ((uintptr_t)-1ULL) + ((in0) == ((uintptr_t)0ULL));
  x31 = (x30) ^ ((uintptr_t)18446744073709551615ULL);
  x32 = ((x13) & (x30)) | ((x4) & (x31));
  x33 = ((uintptr_t)-1ULL) + ((in0) == ((uintptr_t)0ULL));
  x34 = (x33) ^ ((uintptr_t)18446744073709551615ULL);
  x35 = ((x14) & (x33)) | ((x5) & (x34));
  x36 = ((uintptr_t)-1ULL) + ((in0) == ((uintptr_t)0ULL));
  x37 = (x36) ^ ((uintptr_t)18446744073709551615ULL);
  x38 = ((x15) & (x36)) | ((x6) & (x37));
  x39 = ((uintptr_t)-1ULL) + ((in0) == ((uintptr_t)0ULL));
  x40 = (x39) ^ ((uintptr_t)18446744073709551615ULL);
  x41 = ((x16) & (x39)) | ((x7) & (x40));
  x42 = ((uintptr_t)-1ULL) + ((in0) == ((uintptr_t)0ULL));
  x43 = (x42) ^ ((uintptr_t)18446744073709551615ULL);
  x44 = ((x17) & (x42)) | ((x8) & (x43));
  x45 = x20;
  x46 = x23;
  x47 = x26;
  x48 = x29;
  x49 = x32;
  x50 = x35;
  x51 = x38;
  x52 = x41;
  x53 = x44;
  _br2_store((out0) + ((uintptr_t)0ULL), x45, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)8ULL), x46, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)16ULL), x47, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)24ULL), x48, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)32ULL), x49, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)40ULL), x50, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)48ULL), x51, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)56ULL), x52, sizeof(uintptr_t));
  _br2_store((out0) + ((uintptr_t)64ULL), x53, sizeof(uintptr_t));
  return;
}
```