user: 请将以下的汇编代码转换成C语言代码：

```asm
<supprDescriptorHeader>:
  endbr64
  push   %r15
  lea    D25(%rip),%r15
  push   %r14
  push   %r13
  mov    %rdx,%r13
  push   %r12
  mov    %rsi,%r12
  push   %rbp
  mov    %rdi,%rbp
  push   %rbx
  sub    $0x78,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x68(%rsp)
  xor    %eax,%eax
  call   <rewind@plt>
  mov    %r15,%rsi
  mov    %r13,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L23
  lea    D72(%rip),%rsi
  lea    D161(%rip),%rdi
  call   <fopen@plt>
  mov    %rax,%r14
L152:
  test   %r14,%r14
  je     L118
  mov    %rsp,%rbx
  jmp    L97
  nop
L49:
  mov    %r12,%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L13
L97:
  mov    %rbp,%rdx
  mov    $0x64,%esi
  mov    %rbx,%rdi
  call   <fgets@plt>
  test   %rax,%rax
  jne    L49
  mov    %r14,%rdi
  call   <fclose@plt>
  mov    %rbp,%rdi
  lea    D154(%rip),%rbp
  call   <fclose@plt>
  mov    %r15,%rsi
  mov    %r13,%rdi
  call   <strcmp@plt>
  mov    %rbp,%rsi
  lea    D161(%rip),%rdi
  test   %rax,%rax
  jne    L20
L41:
  call   <rename@plt>
  lea    D92(%rip),%rsi
  mov    %rbp,%rdi
  xor    %r12d,%r12d
  call   <fopen@plt>
L121:
  mov    0x68(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L99
  add    $0x78,%rsp
  mov    %r12d,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopl   0x0(%rax,%rax,1)
L13:
  mov    %r14,%rsi
  mov    %rbx,%rdi
  call   <fputs@plt>
  jmp    L97
L23:
  lea    D120(%rip),%rsi
  mov    %r13,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L62
  lea    D72(%rip),%rsi
  lea    D73(%rip),%rdi
  call   <fopen@plt>
  mov    %rax,%r14
  jmp    L152
  nop
L20:
  lea    D120(%rip),%rsi
  mov    %r13,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L26
  lea    D60(%rip),%rbp
  lea    D73(%rip),%rdi
  mov    %rbp,%rsi
  jmp    L41
  nopw   0x0(%rax,%rax,1)
L62:
  lea    D135(%rip),%rsi
  mov    %r13,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L152
  lea    D72(%rip),%rsi
  lea    D139(%rip),%rdi
  call   <fopen@plt>
  mov    %rax,%r14
  jmp    L152
  nopl   0x0(%rax,%rax,1)
L26:
  lea    D135(%rip),%rsi
  mov    %r13,%rdi
  xor    %r12d,%r12d
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L121
  lea    D12(%rip),%rbp
  lea    D139(%rip),%rdi
  mov    %rbp,%rsi
  call   <rename@plt>
  lea    D92(%rip),%rsi
  mov    %rbp,%rdi
  call   <fopen@plt>
  jmp    L121
L118:
  mov    $0xffffffff,%r12d
  jmp    L121
L99:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: retrieve_data
arguments: label: D25
type_infered: string
name: retrieve_data
arguments: label: D72
type_infered: string
name: retrieve_data
arguments: label: D161
type_infered: string
name: retrieve_data
arguments: label: D154
type_infered: string
name: retrieve_data
arguments: label: D92
type_infered: string
name: retrieve_data
arguments: label: D120
type_infered: string
name: retrieve_data
arguments: label: D73
type_infered: string
name: retrieve_data
arguments: label: D60
type_infered: string
name: retrieve_data
arguments: label: D135
type_infered: string
name: retrieve_data
arguments: label: D139
type_infered: string
name: retrieve_data
arguments: label: D12
type_infered: string

tool: D25: sound

tool: D72: w

tool: D161: Bases/liste_base_audio.base.tmp

tool: D154: Bases/liste_base_audio.base

tool: D92: a+

tool: D120: text

tool: D73: Bases/liste_base_text.base.tmp

tool: D60: Bases/liste_base_text.base

tool: D135: image

tool: D139: Bases/liste_base_image.base.tmp

tool: D12: Bases/liste_base_image.base

assistant: ```c
int supprDescriptorHeader(FILE *base, char *line, char *baseType) {
  char buffer[100];
  FILE *bufferFile;
  int i = 0;
  rewind(base);
  if (strcmp(baseType, "sound") == 0) {
    bufferFile = fopen("Bases/liste_base_audio.base.tmp", "w");
  } else if (strcmp(baseType, "text") == 0) {
    bufferFile = fopen("Bases/liste_base_text.base.tmp", "w");
  } else if (strcmp(baseType, "image") == 0) {
    bufferFile = fopen("Bases/liste_base_image.base.tmp", "w");
  }
  if (bufferFile == NULL) {
    return (-1);
  }
  while (fgets(buffer, 100, base)) {
    if (strcmp(buffer, line) != 0) {
      fputs(buffer, bufferFile);
    }
  }
  fclose(bufferFile);
  fclose(base);
  if (strcmp(baseType, "sound") == 0) {
    rename("Bases/liste_base_audio.base.tmp", "Bases/liste_base_audio.base");
    base = fopen("Bases/liste_base_audio.base", "a+");
  } else if (strcmp(baseType, "text") == 0) {
    rename("Bases/liste_base_text.base.tmp", "Bases/liste_base_text.base");
    base = fopen("Bases/liste_base_text.base", "a+");
  } else if (strcmp(baseType, "image") == 0) {
    rename("Bases/liste_base_image.base.tmp", "Bases/liste_base_image.base");
    base = fopen("Bases/liste_base_image.base", "a+");
  }
  return (0);
}
```