user: Translate the below assembly code into C programming language:

```asm
<printHeadings>:
  endbr64
  push   %r12
  lea    D170(%rip),%rsi
  lea    D130(%rip),%r12
  push   %rbp
  sub    $0x8,%rsp
  call   <fopen@plt>
  lea    D71(%rip),%r9
  lea    D151(%rip),%r8
  mov    %rax,%rbp
  mov    %rax,%rdi
  xor    %eax,%eax
  lea    D102(%rip),%rcx
  lea    D25(%rip),%rdx
  lea    D135(%rip),%rsi
  call   <fprintf@plt>
  sub    $0x8,%rsp
  mov    %rbp,%rdi
  lea    D63(%rip),%rcx
  lea    D52(%rip),%rdx
  lea    D181(%rip),%rax
  push   %rcx
  lea    D13(%rip),%r9
  lea    D129(%rip),%r8
  push   %rdx
  lea    D9(%rip),%rsi
  push   %rax
  push   %r9
  push   %r8
  push   %rcx
  push   %rdx
  push   %rax
  push   %r9
  push   %r8
  push   %rsi
  lea    D53(%rip),%rsi
  push   %rsi
  mov    %r12,%rsi
  push   %rcx
  lea    D193(%rip),%rcx
  push   %rdx
  lea    D40(%rip),%rdx
  push   %rax
  xor    %eax,%eax
  call   <fprintf@plt>
  add    $0x78,%rsp
  mov    %rbp,%rdi
  mov    %r12,%rsi
  lea    D207(%rip),%r8
  lea    D29(%rip),%rax
  lea    D61(%rip),%rdx
  push   %rax
  mov    %r8,%r9
  lea    D41(%rip),%rcx
  push   %rax
  push   %r8
  push   %r8
  push   %r8
  push   %rax
  push   %rax
  push   %r8
  push   %r8
  push   %r8
  push   %rdx
  push   %rdx
  lea    D110(%rip),%rdx
  push   %rax
  push   %rax
  xor    %eax,%eax
  push   %r8
  call   <fprintf@plt>
  add    $0x88,%rsp
  mov    %rbp,%rdi
  pop    %rbp
  pop    %r12
  jmp    1070 <fclose@plt>
```

tool_calls: name: parse_data
arguments: data_tag: D170
type_guessed: string
name: parse_data
arguments: data_tag: D130
type_guessed: string
name: parse_data
arguments: data_tag: D71
type_guessed: string
name: parse_data
arguments: data_tag: D151
type_guessed: string
name: parse_data
arguments: data_tag: D102
type_guessed: string
name: parse_data
arguments: data_tag: D25
type_guessed: string
name: parse_data
arguments: data_tag: D135
type_guessed: string
name: parse_data
arguments: data_tag: D63
type_guessed: string
name: parse_data
arguments: data_tag: D52
type_guessed: string
name: parse_data
arguments: data_tag: D181
type_guessed: string
name: parse_data
arguments: data_tag: D13
type_guessed: string
name: parse_data
arguments: data_tag: D129
type_guessed: string
name: parse_data
arguments: data_tag: D9
type_guessed: string
name: parse_data
arguments: data_tag: D53
type_guessed: string
name: parse_data
arguments: data_tag: D193
type_guessed: string
name: parse_data
arguments: data_tag: D40
type_guessed: string
name: parse_data
arguments: data_tag: D207
type_guessed: string
name: parse_data
arguments: data_tag: D29
type_guessed: string
name: parse_data
arguments: data_tag: D61
type_guessed: string
name: parse_data
arguments: data_tag: D41
type_guessed: string
name: parse_data
arguments: data_tag: D110
type_guessed: string

tool: D170: w

tool: D130: %3s %-20s %2s %2s %2s %4s %4s %7s %7s %8s %2s %2s %4s %4s %4s %2s %2s %4s %4s


tool: D71: Away

tool: D151: Home

tool: D102: Overall

tool: D25:  

tool: D135: %33s %10s %32s %20s


tool: D63: PA

tool: D52: PF

tool: D181: T

tool: D13: L

tool: D129: W

tool: D9: SOS

tool: D53: RATE

tool: D193: Team

tool: D40: Rnk

tool: D207: -

tool: D29: --

tool: D61: ------

tool: D41: ----

tool: D110: ---

assistant: ```c
void printHeadings(char *outfile) {
  FILE *rank;
  rank = fopen(outfile, "w");
  fprintf(rank, "%33s %10s %32s %20s\n", " ", "Overall", "Home", "Away");
  fprintf(rank, "%3s %-20s %2s %2s %2s %4s %4s %7s %7s %8s %2s %2s %4s %4s %4s %2s %2s %4s %4s\n", "Rnk", "Team", "W", "L", "T", "PF", "PA", "RATE", "SOS", "W", "L", "T", "PF", "PA", "W", "L", "T", "PF", "PA");
  fprintf(rank, "%3s %-20s %2s %2s %2s %4s %4s %7s %7s %8s %2s %2s %4s %4s %4s %2s %2s %4s %4s\n", "---", "----", "-", "-", "-", "--", "--", "------", "------", "-", "-", "-", "--", "--", "-", "-", "-", "--", "--");
  fclose(rank);
  return;
}
```