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

```asm
<get_pdb_cryst1>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0xb0,%rsp
  mov    %rdi,-0x78(%rbp)
  mov    %rsi,-0x80(%rbp)
  mov    %rdx,-0x88(%rbp)
  mov    %rcx,-0x90(%rbp)
  mov    %r8,-0x98(%rbp)
  mov    %r9,-0xa0(%rbp)
  mov    0x10(%rbp),%rax
  mov    %rax,-0xa8(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  lea    -0x60(%rbp),%rax
  mov    $0x53,%edx
  mov    $0x0,%esi
  mov    %rax,%rdi
  call   <memset@plt>
  mov    -0x78(%rbp),%rcx
  lea    -0x60(%rbp),%rax
  mov    $0x50,%edx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <strncpy@plt>
  lea    -0x60(%rbp),%rax
  add    $0x6,%rax
  mov    %rax,-0x68(%rbp)
  movzbl -0x51(%rbp),%eax
  mov    %al,-0x69(%rbp)
  movb   $0x0,-0x51(%rbp)
  mov    -0x68(%rbp),%rax
  mov    %rax,%rdi
  call   <atof@plt>
  pxor   %xmm0,%xmm0
  cvtsi2ss %rax,%xmm0
  mov    -0x98(%rbp),%rax
  movss  %xmm0,(%rax)
  lea    -0x60(%rbp),%rax
  add    $0xf,%rax
  mov    %rax,-0x68(%rbp)
  mov    -0x68(%rbp),%rax
  movzbl -0x69(%rbp),%edx
  mov    %dl,(%rax)
  movzbl -0x48(%rbp),%eax
  mov    %al,-0x69(%rbp)
  movb   $0x0,-0x48(%rbp)
  mov    -0x68(%rbp),%rax
  mov    %rax,%rdi
  call   <atof@plt>
  pxor   %xmm0,%xmm0
  cvtsi2ss %rax,%xmm0
  mov    -0xa0(%rbp),%rax
  movss  %xmm0,(%rax)
  lea    -0x60(%rbp),%rax
  add    $0x18,%rax
  mov    %rax,-0x68(%rbp)
  mov    -0x68(%rbp),%rax
  movzbl -0x69(%rbp),%edx
  mov    %dl,(%rax)
  movzbl -0x3f(%rbp),%eax
  mov    %al,-0x69(%rbp)
  movb   $0x0,-0x3f(%rbp)
  mov    -0x68(%rbp),%rax
  mov    %rax,%rdi
  call   <atof@plt>
  pxor   %xmm0,%xmm0
  cvtsi2ss %rax,%xmm0
  mov    -0xa8(%rbp),%rax
  movss  %xmm0,(%rax)
  lea    -0x60(%rbp),%rax
  add    $0x21,%rax
  mov    %rax,-0x68(%rbp)
  mov    -0x68(%rbp),%rax
  movzbl -0x69(%rbp),%edx
  mov    %dl,(%rax)
  movzbl -0x38(%rbp),%eax
  mov    %al,-0x69(%rbp)
  movb   $0x0,-0x38(%rbp)
  mov    -0x68(%rbp),%rax
  mov    %rax,%rdi
  call   <atof@plt>
  pxor   %xmm0,%xmm0
  cvtsi2ss %rax,%xmm0
  mov    -0x80(%rbp),%rax
  movss  %xmm0,(%rax)
  lea    -0x60(%rbp),%rax
  add    $0x28,%rax
  mov    %rax,-0x68(%rbp)
  mov    -0x68(%rbp),%rax
  movzbl -0x69(%rbp),%edx
  mov    %dl,(%rax)
  movzbl -0x31(%rbp),%eax
  mov    %al,-0x69(%rbp)
  movb   $0x0,-0x31(%rbp)
  mov    -0x68(%rbp),%rax
  mov    %rax,%rdi
  call   <atof@plt>
  pxor   %xmm0,%xmm0
  cvtsi2ss %rax,%xmm0
  mov    -0x88(%rbp),%rax
  movss  %xmm0,(%rax)
  lea    -0x60(%rbp),%rax
  add    $0x2f,%rax
  mov    %rax,-0x68(%rbp)
  mov    -0x68(%rbp),%rax
  movzbl -0x69(%rbp),%edx
  mov    %dl,(%rax)
  movzbl -0x2a(%rbp),%eax
  mov    %al,-0x69(%rbp)
  movb   $0x0,-0x2a(%rbp)
  mov    -0x68(%rbp),%rax
  mov    %rax,%rdi
  call   <atof@plt>
  pxor   %xmm0,%xmm0
  cvtsi2ss %rax,%xmm0
  mov    -0x90(%rbp),%rax
  movss  %xmm0,(%rax)
  nop
  mov    -0x8(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L9
  call   <__stack_chk_fail@plt>
L9:
  leave
  ret
```

assistant: ```c
void get_pdb_cryst1(const char *record, float *alpha, float *beta, float *gamma, float *a, float *b, float *c) {
  char tmp[80 + 3];
  char ch, *s;
  memset(tmp, 0, sizeof(tmp));
  strncpy(tmp, record, 80);
  s = tmp + 6;
  ch = tmp[15];
  tmp[15] = 0;
  *a = (float)atof(s);
  s = tmp + 15;
  *s = ch;
  ch = tmp[24];
  tmp[24] = 0;
  *b = (float)atof(s);
  s = tmp + 24;
  *s = ch;
  ch = tmp[33];
  tmp[33] = 0;
  *c = (float)atof(s);
  s = tmp + 33;
  *s = ch;
  ch = tmp[40];
  tmp[40] = 0;
  *alpha = (float)atof(s);
  s = tmp + 40;
  *s = ch;
  ch = tmp[47];
  tmp[47] = 0;
  *beta = (float)atof(s);
  s = tmp + 47;
  *s = ch;
  ch = tmp[54];
  tmp[54] = 0;
  *gamma = (float)atof(s);
}
```