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

```asm
<convertlists>:
  endbr64
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x270,%rsp
  mov    %edi,%ebp
  mov    %rsi,%r12
  mov    %fs:0x28,%rax
  mov    %rax,0x268(%rsp)
  xor    %eax,%eax
  mov    %rsp,%r13
  mov    %edi,%edx
  lea    D137(%rip),%rsi
  mov    %r13,%rdi
  call   <sprintf@plt>
  lea    0xd0(%rsp),%rbx
  mov    %ebp,%edx
  lea    D76(%rip),%rsi
  mov    %rbx,%rdi
  call   <sprintf@plt>
  mov    %r12,%r8
  mov    %rbx,%rcx
  mov    %r13,%rdx
  lea    D89(%rip),%r14
  mov    %r14,%rsi
  lea    D40(%rip),%rdi
  call   <convertlist@plt>
  mov    %ebp,%edx
  lea    D138(%rip),%rsi
  mov    %rbx,%rdi
  call   <sprintf@plt>
  mov    %r12,%r8
  mov    %rbx,%rcx
  mov    %r13,%rdx
  mov    %r14,%rsi
  lea    D163(%rip),%rdi
  call   <convertlist@plt>
  mov    %ebp,%edx
  lea    D58(%rip),%rsi
  mov    %rbx,%rdi
  call   <sprintf@plt>
  mov    %r12,%r8
  mov    %rbx,%rcx
  mov    %r13,%rdx
  mov    %r14,%rsi
  lea    D57(%rip),%rdi
  call   <convertlist@plt>
  mov    %ebp,%edx
  lea    D18(%rip),%rsi
  mov    %rbx,%rdi
  call   <sprintf@plt>
  mov    %r12,%r8
  mov    %rbx,%rcx
  mov    %r13,%rdx
  mov    %r14,%rsi
  lea    D48(%rip),%rdi
  call   <convertlist@plt>
  mov    %ebp,%edx
  lea    D107(%rip),%rsi
  mov    %rbx,%rdi
  call   <sprintf@plt>
  mov    %r12,%r8
  mov    %rbx,%rcx
  mov    %r13,%rdx
  mov    %r14,%rsi
  lea    D124(%rip),%rdi
  call   <convertlist@plt>
  mov    %ebp,%edx
  lea    D152(%rip),%rsi
  mov    %rbx,%rdi
  call   <sprintf@plt>
  mov    %r12,%r8
  mov    %rbx,%rcx
  mov    %r13,%rdx
  mov    %r14,%rsi
  lea    D32(%rip),%rdi
  call   <convertlist@plt>
  mov    %ebp,%edx
  lea    D150(%rip),%rsi
  mov    %rbx,%rdi
  call   <sprintf@plt>
  mov    %r12,%r8
  mov    %rbx,%rcx
  mov    %r13,%rdx
  mov    %r14,%rsi
  lea    D86(%rip),%rdi
  call   <convertlist@plt>
  mov    %ebp,%edx
  lea    D154(%rip),%rsi
  mov    %rbx,%rdi
  call   <sprintf@plt>
  mov    %r12,%r8
  mov    %rbx,%rcx
  mov    %r13,%rdx
  mov    %r14,%rsi
  lea    D178(%rip),%rdi
  call   <convertlist@plt>
  mov    0x268(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L3
  mov    $0x0,%eax
  add    $0x270,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  ret
L3:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: read_data
arguments: data_label: D137
data_type: string
name: read_data
arguments: data_label: D76
data_type: string
name: read_data
arguments: data_label: D89
data_type: string
name: read_data
arguments: data_label: D40
data_type: string
name: read_data
arguments: data_label: D138
data_type: string
name: read_data
arguments: data_label: D163
data_type: string
name: read_data
arguments: data_label: D58
data_type: string
name: read_data
arguments: data_label: D57
data_type: string
name: read_data
arguments: data_label: D18
data_type: string
name: read_data
arguments: data_label: D48
data_type: string
name: read_data
arguments: data_label: D107
data_type: string
name: read_data
arguments: data_label: D124
data_type: string
name: read_data
arguments: data_label: D152
data_type: string
name: read_data
arguments: data_label: D32
data_type: string
name: read_data
arguments: data_label: D150
data_type: string
name: read_data
arguments: data_label: D86
data_type: string
name: read_data
arguments: data_label: D154
data_type: string
name: read_data
arguments: data_label: D178
data_type: string

tool: D137: USER%d

tool: D76: USER%d.OP

tool: D89: ENTRY%d

tool: D40: OP

tool: D138: USER%d.ASK

tool: D163: ASK

tool: D58: USER%d.BAN

tool: D57: BAN

tool: D18: USER%d.DCC

tool: D48: DCC

tool: D107: USER%d.LGI

tool: D124: LGI

tool: D152: USER%d.AOP

tool: D32: AOP

tool: D150: USER%d.TRA

tool: D86: TRA

tool: D154: USER%d.ENC

tool: D178: ENC

assistant: ```c
int convertlists(int uid, FILE *outfile) {
  char buf[400];
  char fname[200];
  sprintf(fname, "USER%d", uid);
  sprintf(buf, "USER%d.OP", uid);
  convertlist("OP", "ENTRY%d", fname, buf, outfile);
  sprintf(buf, "USER%d.ASK", uid);
  convertlist("ASK", "ENTRY%d", fname, buf, outfile);
  sprintf(buf, "USER%d.BAN", uid);
  convertlist("BAN", "ENTRY%d", fname, buf, outfile);
  sprintf(buf, "USER%d.DCC", uid);
  convertlist("DCC", "ENTRY%d", fname, buf, outfile);
  sprintf(buf, "USER%d.LGI", uid);
  convertlist("LGI", "ENTRY%d", fname, buf, outfile);
  sprintf(buf, "USER%d.AOP", uid);
  convertlist("AOP", "ENTRY%d", fname, buf, outfile);
  sprintf(buf, "USER%d.TRA", uid);
  convertlist("TRA", "ENTRY%d", fname, buf, outfile);
  sprintf(buf, "USER%d.ENC", uid);
  convertlist("ENC", "ENTRY%d", fname, buf, outfile);
  return 0x0;
}
```