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

```asm
<SHA256_Xcompare_31>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x70,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movabs $0xf3462743dc3c79a4,%rax
  movabs $0x1cdd2cc12d23b1fb,%rdx
  mov    %rax,-0x70(%rbp)
  mov    %rdx,-0x68(%rbp)
  movabs $0xa8b95fa7c7551778,%rax
  mov    %rax,-0x60(%rbp)
  movb   $0x7a,-0x58(%rbp)
  movabs $0x148b51d7d432e6ff,%rax
  movabs $0xa85bb20a194fde20,%rdx
  mov    %rax,-0x50(%rbp)
  mov    %rdx,-0x48(%rbp)
  movabs $0xfb008e8f6f926385,%rax
  movabs $0x494e741de0c5eef8,%rdx
  mov    %rax,-0x40(%rbp)
  mov    %rdx,-0x38(%rbp)
  lea    -0x30(%rbp),%rax
  mov    $0x20,%edx
  mov    $0x0,%esi
  mov    %rax,%rdi
  call   <memset@plt>
  lea    -0x30(%rbp),%rcx
  lea    -0x70(%rbp),%rax
  mov    $0x19,%edx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <SHA256_VST@plt>
  lea    -0x30(%rbp),%rsi
  lea    -0x50(%rbp),%rax
  lea    D26(%rip),%rdx
  mov    %rdx,%rcx
  mov    $0x20,%edx
  mov    %rax,%rdi
  call   <check_test@plt>
  lea    -0x30(%rbp),%rax
  mov    $0x20,%edx
  mov    $0x0,%esi
  mov    %rax,%rdi
  call   <memset@plt>
  lea    -0x30(%rbp),%rcx
  lea    -0x70(%rbp),%rax
  mov    $0x19,%edx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <SHA256_NSS@plt>
  lea    -0x30(%rbp),%rsi
  lea    -0x50(%rbp),%rax
  lea    D27(%rip),%rdx
  mov    %rdx,%rcx
  mov    $0x20,%edx
  mov    %rax,%rdi
  call   <check_test@plt>
  lea    -0x30(%rbp),%rax
  mov    $0x20,%edx
  mov    $0x0,%esi
  mov    %rax,%rdi
  call   <memset@plt>
  lea    -0x30(%rbp),%rcx
  lea    -0x70(%rbp),%rax
  mov    $0x19,%edx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <SHA256_sodium@plt>
  lea    -0x30(%rbp),%rsi
  lea    -0x50(%rbp),%rax
  lea    D5(%rip),%rdx
  mov    %rdx,%rcx
  mov    $0x20,%edx
  mov    %rax,%rdi
  call   <check_test@plt>
  nop
  mov    -0x8(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L9
  call   <__stack_chk_fail@plt>
L9:
  leave
  ret
```

tool_calls: name: retrieve_data
arguments: tag: D26
type: string
name: retrieve_data
arguments: tag: D27
type: string
name: retrieve_data
arguments: tag: D5
type: string

tool: D26: Disagreement between given answer and SHA256_VST in SHA256_Xcompare_31


tool: D27: Disagreement between given answer and SHA256_NSS in SHA256_Xcompare_31


tool: D5: Disagreement between given answer and SHA256_sodium in SHA256_Xcompare_31


assistant: ```c
void SHA256_Xcompare_31() {
  unsigned char input[25] = {164, 121, 60, 220, 67, 39, 70, 243, 251, 177, 35, 45, 193, 44, 221, 28, 120, 23, 85, 199, 167, 95, 185, 168, 122};
  unsigned char result0[32] = {0xFF, 0xE6, 0x32, 0xD4, 0xD7, 0x51, 0x8B, 0x14, 0x20, 0xDE, 0x4F, 0x19, 0x0A, 0xB2, 0x5B, 0xA8, 0x85, 0x63, 0x92, 0x6F, 0x8F, 0x8E, 0x00, 0xFB, 0xF8, 0xEE, 0xC5, 0xE0, 0x1D, 0x74, 0x4E, 0x49};
  unsigned char result1[32];
  memset(result1, 0, 32);
  SHA256_VST(input, result1, 25);
  check_test(result0, result1, 32, "Disagreement between given answer and SHA256_VST in SHA256_Xcompare_31\n");
  memset(result1, 0, 32);
  SHA256_NSS(input, result1, 25);
  check_test(result0, result1, 32, "Disagreement between given answer and SHA256_NSS in SHA256_Xcompare_31\n");
  memset(result1, 0, 32);
  SHA256_sodium(input, result1, 25);
  check_test(result0, result1, 32, "Disagreement between given answer and SHA256_sodium in SHA256_Xcompare_31\n");
}
```