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

```asm
<SHA256_Xcompare_20>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x60,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movabs $0xe9bee6e9787fc51a,%rax
  mov    %rax,-0x5f(%rbp)
  movl   $0x721f6823,-0x57(%rbp)
  movw   $0x6d7a,-0x53(%rbp)
  movb   $0x67,-0x51(%rbp)
  movabs $0xcfafde8f345abded,%rax
  movabs $0x48851375a6e90e5c,%rdx
  mov    %rax,-0x50(%rbp)
  mov    %rdx,-0x48(%rbp)
  movabs $0x516f4575923c341b,%rax
  movabs $0x8913dd9028323c73,%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    -0x5f(%rbp),%rax
  mov    $0xf,%edx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <SHA256_VST@plt>
  lea    -0x30(%rbp),%rsi
  lea    -0x50(%rbp),%rax
  lea    D17(%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    -0x5f(%rbp),%rax
  mov    $0xf,%edx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <SHA256_NSS@plt>
  lea    -0x30(%rbp),%rsi
  lea    -0x50(%rbp),%rax
  lea    D7(%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    -0x5f(%rbp),%rax
  mov    $0xf,%edx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <SHA256_sodium@plt>
  lea    -0x30(%rbp),%rsi
  lea    -0x50(%rbp),%rax
  lea    D3(%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     L6
  call   <__stack_chk_fail@plt>
L6:
  leave
  ret
```

tool_calls: name: read_data
arguments: tag: D17
data_type: string
name: read_data
arguments: tag: D7
data_type: string
name: read_data
arguments: tag: D3
data_type: string

tool: D17: Disagreement between given answer and SHA256_VST in SHA256_Xcompare_20


tool: D7: Disagreement between given answer and SHA256_NSS in SHA256_Xcompare_20


tool: D3: Disagreement between given answer and SHA256_sodium in SHA256_Xcompare_20


assistant: ```c
void SHA256_Xcompare_20() {
  unsigned char input[15] = {26, 197, 127, 120, 233, 230, 190, 233, 35, 104, 31, 114, 122, 109, 103};
  unsigned char result0[32] = {0xED, 0xBD, 0x5A, 0x34, 0x8F, 0xDE, 0xAF, 0xCF, 0x5C, 0x0E, 0xE9, 0xA6, 0x75, 0x13, 0x85, 0x48, 0x1B, 0x34, 0x3C, 0x92, 0x75, 0x45, 0x6F, 0x51, 0x73, 0x3C, 0x32, 0x28, 0x90, 0xDD, 0x13, 0x89};
  unsigned char result1[32];
  memset(result1, 0, 32);
  SHA256_VST(input, result1, 15);
  check_test(result0, result1, 32, "Disagreement between given answer and SHA256_VST in SHA256_Xcompare_20\n");
  memset(result1, 0, 32);
  SHA256_NSS(input, result1, 15);
  check_test(result0, result1, 32, "Disagreement between given answer and SHA256_NSS in SHA256_Xcompare_20\n");
  memset(result1, 0, 32);
  SHA256_sodium(input, result1, 15);
  check_test(result0, result1, 32, "Disagreement between given answer and SHA256_sodium in SHA256_Xcompare_20\n");
}
```