user: 请显示与下面列出的汇编代码相匹配的C语言实现：

```asm
<put_line_strip>:
  endbr64
  push   %r12
  mov    $0xb,%edx
  mov    %rdi,%r12
  push   %rbp
  mov    %rsi,%rbp
  lea    D44(%rip),%rsi
  sub    $0x8,%rsp
  call   <strncmp@plt>
  test   %eax,%eax
  je     L40
  mov    $0x9,%edx
  lea    D83(%rip),%rsi
  mov    %r12,%rdi
  call   <strncmp@plt>
  test   %eax,%eax
  je     L40
  mov    $0xb,%edx
  lea    D85(%rip),%rsi
  mov    %r12,%rdi
  call   <strncmp@plt>
  test   %eax,%eax
  je     L40
  mov    $0x9,%edx
  lea    D35(%rip),%rsi
  mov    %r12,%rdi
  call   <strncmp@plt>
  test   %eax,%eax
  je     L40
  mov    $0xb,%edx
  lea    D102(%rip),%rsi
  mov    %r12,%rdi
  call   <strncmp@plt>
  test   %eax,%eax
  je     L39
  mov    $0xb,%edx
  lea    D34(%rip),%rsi
  mov    %r12,%rdi
  call   <strncmp@plt>
  test   %eax,%eax
  je     L39
  mov    %r12,%rdi
  mov    $0x6,%edx
  lea    D51(%rip),%rsi
  call   <strncmp@plt>
  mov    $0x6,%edx
  lea    D63(%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    D22(%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)
L40:
  add    $0x8,%rsp
  pop    %rbp
  pop    %r12
  ret
  nopl   0x0(%rax,%rax,1)
L39:
  mov    %rbp,%rdi
  lea    D11(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  add    $0x8,%rsp
  mov    %rbp,%rdi
  xor    %eax,%eax
  pop    %rbp
  lea    D78(%rip),%rsi
  pop    %r12
  jmp    1080 <fprintf@plt>
```

tool_calls: name: disassemble_data
arguments: data_label: D44
type_guessed: string
name: disassemble_data
arguments: data_label: D83
type_guessed: string
name: disassemble_data
arguments: data_label: D85
type_guessed: string
name: disassemble_data
arguments: data_label: D35
type_guessed: string
name: disassemble_data
arguments: data_label: D102
type_guessed: string
name: disassemble_data
arguments: data_label: D34
type_guessed: string
name: disassemble_data
arguments: data_label: D51
type_guessed: string
name: disassemble_data
arguments: data_label: D63
type_guessed: string
name: disassemble_data
arguments: data_label: D22
type_guessed: string
name: disassemble_data
arguments: data_label: D11
type_guessed: string
name: disassemble_data
arguments: data_label: D78
type_guessed: string

tool: D44: c:tex-begin

tool: D83: c:tex-end

tool: D85: *:tex-begin

tool: D35: *:tex-end

tool: D102: *:tex-cvsid

tool: D34: c:tex-cvsid

tool: D51: *:tex-

tool: D63: c:tex-

tool: D22: %s


tool: D11: %%
%% $

tool: D78: 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);
}
```