user: What would the C source look like for the assembly code provided here?

```asm
<SHA256_Xcompare_18>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  add    $0xffffffffffffff80,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movabs $0x3abbecfacd6e033,%rax
  movabs $0x1a9456e1cd3f3d0f,%rdx
  mov    %rax,-0x40(%rbp)
  mov    %rdx,-0x38(%rbp)
  movabs $0xd733b6023239dbd7,%rax
  movabs $0x2ffa68e055dc67f9,%rdx
  mov    %rax,-0x30(%rbp)
  mov    %rdx,-0x28(%rbp)
  movabs $0x241dd9179a272a2d,%rax
  mov    %rax,-0x20(%rbp)
  movl   $0xf0b15dbe,-0x18(%rbp)
  movb   $0xab,-0x14(%rbp)
  movabs $0xae84ad1f0bd17c8b,%rax
  movabs $0x1e9e02e3fe49484e,%rdx
  mov    %rax,-0x80(%rbp)
  mov    %rdx,-0x78(%rbp)
  movabs $0x9bc858c550013ed5,%rax
  movabs $0xdbcd5bb09c01eee5,%rdx
  mov    %rax,-0x70(%rbp)
  mov    %rdx,-0x68(%rbp)
  lea    -0x60(%rbp),%rax
  mov    $0x20,%edx
  mov    $0x0,%esi
  mov    %rax,%rdi
  call   <memset@plt>
  lea    -0x60(%rbp),%rcx
  lea    -0x40(%rbp),%rax
  mov    $0x2d,%edx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <SHA256_VST@plt>
  lea    -0x60(%rbp),%rsi
  lea    -0x80(%rbp),%rax
  lea    D3(%rip),%rdx
  mov    %rdx,%rcx
  mov    $0x20,%edx
  mov    %rax,%rdi
  call   <check_test@plt>
  lea    -0x60(%rbp),%rax
  mov    $0x20,%edx
  mov    $0x0,%esi
  mov    %rax,%rdi
  call   <memset@plt>
  lea    -0x60(%rbp),%rcx
  lea    -0x40(%rbp),%rax
  mov    $0x2d,%edx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <SHA256_NSS@plt>
  lea    -0x60(%rbp),%rsi
  lea    -0x80(%rbp),%rax
  lea    D0(%rip),%rdx
  mov    %rdx,%rcx
  mov    $0x20,%edx
  mov    %rax,%rdi
  call   <check_test@plt>
  lea    -0x60(%rbp),%rax
  mov    $0x20,%edx
  mov    $0x0,%esi
  mov    %rax,%rdi
  call   <memset@plt>
  lea    -0x60(%rbp),%rcx
  lea    -0x40(%rbp),%rax
  mov    $0x2d,%edx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <SHA256_sodium@plt>
  lea    -0x60(%rbp),%rsi
  lea    -0x80(%rbp),%rax
  lea    D22(%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     L5
  call   <__stack_chk_fail@plt>
L5:
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: tag: D3
data_type: string
name: extract_symbolic_data
arguments: tag: D0
data_type: string
name: extract_symbolic_data
arguments: tag: D22
data_type: string

tool: D3: Disagreement between given answer and SHA256_VST in SHA256_Xcompare_18


tool: D0: Disagreement between given answer and SHA256_NSS in SHA256_Xcompare_18


tool: D22: Disagreement between given answer and SHA256_sodium in SHA256_Xcompare_18


assistant: ```c
void SHA256_Xcompare_18() {
  unsigned char input[45] = {51, 224, 214, 172, 207, 190, 171, 3, 15, 61, 63, 205, 225, 86, 148, 26, 215, 219, 57, 50, 2, 182, 51, 215, 249, 103, 220, 85, 224, 104, 250, 47, 45, 42, 39, 154, 23, 217, 29, 36, 190, 93, 177, 240, 171};
  unsigned char result0[32] = {0x8B, 0x7C, 0xD1, 0x0B, 0x1F, 0xAD, 0x84, 0xAE, 0x4E, 0x48, 0x49, 0xFE, 0xE3, 0x02, 0x9E, 0x1E, 0xD5, 0x3E, 0x01, 0x50, 0xC5, 0x58, 0xC8, 0x9B, 0xE5, 0xEE, 0x01, 0x9C, 0xB0, 0x5B, 0xCD, 0xDB};
  unsigned char result1[32];
  memset(result1, 0, 32);
  SHA256_VST(input, result1, 45);
  check_test(result0, result1, 32, "Disagreement between given answer and SHA256_VST in SHA256_Xcompare_18\n");
  memset(result1, 0, 32);
  SHA256_NSS(input, result1, 45);
  check_test(result0, result1, 32, "Disagreement between given answer and SHA256_NSS in SHA256_Xcompare_18\n");
  memset(result1, 0, 32);
  SHA256_sodium(input, result1, 45);
  check_test(result0, result1, 32, "Disagreement between given answer and SHA256_sodium in SHA256_Xcompare_18\n");
}
```