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

```asm
<sbitLineMetrics>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <getc@plt>
  movsbl %al,%eax
  mov    %eax,%esi
  lea    D68(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <getc@plt>
  movsbl %al,%eax
  mov    %eax,%esi
  lea    D83(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <getc@plt>
  movsbl %al,%eax
  mov    %eax,%esi
  lea    D85(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <getc@plt>
  movsbl %al,%eax
  mov    %eax,%esi
  lea    D31(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <getc@plt>
  movsbl %al,%eax
  mov    %eax,%esi
  lea    D35(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <getc@plt>
  movsbl %al,%eax
  mov    %eax,%esi
  lea    D6(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <getc@plt>
  movsbl %al,%eax
  mov    %eax,%esi
  lea    D78(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <getc@plt>
  movsbl %al,%eax
  mov    %eax,%esi
  lea    D84(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <getc@plt>
  movsbl %al,%eax
  mov    %eax,%esi
  lea    D8(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <getc@plt>
  movsbl %al,%eax
  mov    %eax,%esi
  lea    D0(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rdi
  call   <getushort@plt>
  nop
  leave
  ret
```

tool_calls: name: read_data
arguments: data_label: D68
data_type: string
name: read_data
arguments: data_label: D83
data_type: string
name: read_data
arguments: data_label: D85
data_type: string
name: read_data
arguments: data_label: D31
data_type: string
name: read_data
arguments: data_label: D35
data_type: string
name: read_data
arguments: data_label: D6
data_type: string
name: read_data
arguments: data_label: D78
data_type: string
name: read_data
arguments: data_label: D84
data_type: string
name: read_data
arguments: data_label: D8
data_type: string
name: read_data
arguments: data_label: D0
data_type: string

tool: D68: 	  ascender: %d


tool: D83: 	  descender: %d


tool: D85: 	  widthMax: %d


tool: D31: 	  caretSlopeNumerator: %d


tool: D35: 	  caretSlopeDenominator: %d


tool: D6: 	  caretOffset: %d


tool: D78: 	  minOriginSB: %d


tool: D84: 	  minAdvanceSB: %d


tool: D8: 	  maxBeforeBL: %d


tool: D0: 	  maxAfterBL: %d


assistant: ```c
void sbitLineMetrics(FILE *ttf) {
  printf("\t  ascender: %d\n", (signed char)getc(ttf));
  printf("\t  descender: %d\n", (signed char)getc(ttf));
  printf("\t  widthMax: %d\n", getc(ttf));
  printf("\t  caretSlopeNumerator: %d\n", (signed char)getc(ttf));
  printf("\t  caretSlopeDenominator: %d\n", (signed char)getc(ttf));
  printf("\t  caretOffset: %d\n", (signed char)getc(ttf));
  printf("\t  minOriginSB: %d\n", (signed char)getc(ttf));
  printf("\t  minAdvanceSB: %d\n", (signed char)getc(ttf));
  printf("\t  maxBeforeBL: %d\n", (signed char)getc(ttf));
  printf("\t  maxAfterBL: %d\n", (signed char)getc(ttf));
  getushort(ttf);
}
```