user: Converte this assembly snippet into its equivalent C code:

```asm
<supprDescriptorHeader>:
  endbr64
  push   %r15
  lea    D163(%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    L57
  lea    D100(%rip),%rsi
  lea    D88(%rip),%rdi
  call   <fopen@plt>
  mov    %rax,%r14
L130:
  test   %r14,%r14
  je     L87
  mov    %rsp,%rbx
  jmp    L10
  nop
L28:
  mov    %r12,%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L149
L10:
  mov    %rbp,%rdx
  mov    $0x64,%esi
  mov    %rbx,%rdi
  call   <fgets@plt>
  test   %rax,%rax
  jne    L28
  mov    %r14,%rdi
  call   <fclose@plt>
  mov    %rbp,%rdi
  lea    D130(%rip),%rbp
  call   <fclose@plt>
  mov    %r15,%rsi
  mov    %r13,%rdi
  call   <strcmp@plt>
  mov    %rbp,%rsi
  lea    D88(%rip),%rdi
  test   %rax,%rax
  jne    L85
L15:
  call   <rename@plt>
  lea    D117(%rip),%rsi
  mov    %rbp,%rdi
  xor    %r12d,%r12d
  call   <fopen@plt>
L124:
  mov    0x68(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L133
  add    $0x78,%rsp
  mov    %r12d,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopl   0x0(%rax,%rax,1)
L149:
  mov    %r14,%rsi
  mov    %rbx,%rdi
  call   <fputs@plt>
  jmp    L10
L57:
  lea    D189(%rip),%rsi
  mov    %r13,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L67
  lea    D100(%rip),%rsi
  lea    D180(%rip),%rdi
  call   <fopen@plt>
  mov    %rax,%r14
  jmp    L130
  nop
L85:
  lea    D189(%rip),%rsi
  mov    %r13,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L71
  lea    D152(%rip),%rbp
  lea    D180(%rip),%rdi
  mov    %rbp,%rsi
  jmp    L15
  nopw   0x0(%rax,%rax,1)
L67:
  lea    D75(%rip),%rsi
  mov    %r13,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L130
  lea    D100(%rip),%rsi
  lea    D31(%rip),%rdi
  call   <fopen@plt>
  mov    %rax,%r14
  jmp    L130
  nopl   0x0(%rax,%rax,1)
L71:
  lea    D75(%rip),%rsi
  mov    %r13,%rdi
  xor    %r12d,%r12d
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L124
  lea    D184(%rip),%rbp
  lea    D31(%rip),%rdi
  mov    %rbp,%rsi
  call   <rename@plt>
  lea    D117(%rip),%rsi
  mov    %rbp,%rdi
  call   <fopen@plt>
  jmp    L124
L87:
  mov    $0xffffffff,%r12d
  jmp    L124
L133:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: retrieve_data
arguments: data_label: D163
data_type: string
name: retrieve_data
arguments: data_label: D100
data_type: string
name: retrieve_data
arguments: data_label: D88
data_type: string
name: retrieve_data
arguments: data_label: D130
data_type: string
name: retrieve_data
arguments: data_label: D117
data_type: string
name: retrieve_data
arguments: data_label: D189
data_type: string
name: retrieve_data
arguments: data_label: D180
data_type: string
name: retrieve_data
arguments: data_label: D152
data_type: string
name: retrieve_data
arguments: data_label: D75
data_type: string
name: retrieve_data
arguments: data_label: D31
data_type: string
name: retrieve_data
arguments: data_label: D184
data_type: string

tool: D163: sound

tool: D100: w

tool: D88: Bases/liste_base_audio.base.tmp

tool: D130: Bases/liste_base_audio.base

tool: D117: a+

tool: D189: text

tool: D180: Bases/liste_base_text.base.tmp

tool: D152: Bases/liste_base_text.base

tool: D75: image

tool: D31: Bases/liste_base_image.base.tmp

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