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

```asm
<put_line_strip>:
  endbr64
  push   %r12
  mov    $0xb,%edx
  mov    %rdi,%r12
  push   %rbp
  mov    %rsi,%rbp
  lea    D68(%rip),%rsi
  sub    $0x8,%rsp
  call   <strncmp@plt>
  test   %eax,%eax
  je     L29
  mov    $0x9,%edx
  lea    D52(%rip),%rsi
  mov    %r12,%rdi
  call   <strncmp@plt>
  test   %eax,%eax
  je     L29
  mov    $0xb,%edx
  lea    D88(%rip),%rsi
  mov    %r12,%rdi
  call   <strncmp@plt>
  test   %eax,%eax
  je     L29
  mov    $0x9,%edx
  lea    D38(%rip),%rsi
  mov    %r12,%rdi
  call   <strncmp@plt>
  test   %eax,%eax
  je     L29
  mov    $0xb,%edx
  lea    D1(%rip),%rsi
  mov    %r12,%rdi
  call   <strncmp@plt>
  test   %eax,%eax
  je     L40
  mov    $0xb,%edx
  lea    D17(%rip),%rsi
  mov    %r12,%rdi
  call   <strncmp@plt>
  test   %eax,%eax
  je     L40
  mov    %r12,%rdi
  mov    $0x6,%edx
  lea    D64(%rip),%rsi
  call   <strncmp@plt>
  mov    $0x6,%edx
  lea    D35(%rip),%rsi
  mov    %eax,%r8d
  lea    0x6(%r12),%rax
  test   %r8d,%r8d
  cmove  %rax,%r12
  mov    %r12,%rdi
  call   <strncmp@plt>
  mov    %rbp,%rdi
  lea    D16(%rip),%rsi
  mov    %eax,%r8d
  lea    0x6(%r12),%rax
  test   %r8d,%r8d
  cmove  %rax,%r12
  xor    %eax,%eax
  mov    %r12,%rdx
  call   <fprintf@plt>
  add    $0x8,%rsp
  mov    %rbp,%rdi
  pop    %rbp
  pop    %r12
  jmp    1090 <fflush@plt>
  nopl   0x0(%rax,%rax,1)
L29:
  add    $0x8,%rsp
  pop    %rbp
  pop    %r12
  ret
  nopl   0x0(%rax,%rax,1)
L40:
  mov    %rbp,%rdi
  lea    D54(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  add    $0x8,%rsp
  mov    %rbp,%rdi
  xor    %eax,%eax
  pop    %rbp
  lea    D11(%rip),%rsi
  pop    %r12
  jmp    1080 <fprintf@plt>
```

tool_calls: name: unpack_data
arguments: label: D68
datatype: string
name: unpack_data
arguments: label: D52
datatype: string
name: unpack_data
arguments: label: D88
datatype: string
name: unpack_data
arguments: label: D38
datatype: string
name: unpack_data
arguments: label: D1
datatype: string
name: unpack_data
arguments: label: D17
datatype: string
name: unpack_data
arguments: label: D64
datatype: string
name: unpack_data
arguments: label: D35
datatype: string
name: unpack_data
arguments: label: D16
datatype: string
name: unpack_data
arguments: label: D54
datatype: string
name: unpack_data
arguments: label: D11
datatype: string

tool: D68: c:tex-begin

tool: D52: c:tex-end

tool: D88: *:tex-begin

tool: D38: *:tex-end

tool: D1: *:tex-cvsid

tool: D17: c:tex-cvsid

tool: D64: *:tex-

tool: D35: c:tex-

tool: D16: %s


tool: D54: %%
%% $

tool: D11: Id$
%%


assistant: ```c
void put_line_strip(char *line, FILE *id) {
  char *ptmp;
  ptmp = line;
  if (!strncmp(ptmp, "c:tex-begin", (size_t)11))
    return;
  if (!strncmp(ptmp, "c:tex-end", (size_t)9))
    return;
  if (!strncmp(ptmp, "*:tex-begin", (size_t)11))
    return;
  if (!strncmp(ptmp, "*:tex-end", (size_t)9))
    return;
  if (!strncmp(ptmp, "*:tex-cvsid", (size_t)11)) {
    (void)fprintf(id, "%%\n%% $");
    (void)fprintf(id, "Id$\n%%\n");
    return;
  }
  if (!strncmp(ptmp, "c:tex-cvsid", (size_t)11)) {
    (void)fprintf(id, "%%\n%% $");
    (void)fprintf(id, "Id$\n%%\n");
    return;
  }
  if (!strncmp(ptmp, "*:tex-", (size_t)6))
    ptmp += 6;
  if (!strncmp(ptmp, "c:tex-", (size_t)6))
    ptmp += 6;
  (void)fprintf(id, "%s\n", ptmp);
  (void)fflush(id);
}
```