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

```asm
<String2SeqfileFormat>:
  endbr64
  push   %r12
  xor    %r12d,%r12d
  push   %rbp
  sub    $0x8,%rsp
  test   %rdi,%rdi
  je     L201
  mov    $0xffffffff,%esi
  call   <sre_strdup@plt>
  mov    %rax,%rbp
  mov    %rax,%rdi
  call   <s2upper@plt>
  lea    D70(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L119
L63:
  mov    $0x7,%r12d
L207:
  mov    %rbp,%rdi
  call   <free@plt>
L201:
  add    $0x8,%rsp
  mov    %r12d,%eax
  pop    %rbp
  pop    %r12
  ret
  nopl   (%rax)
L119:
  lea    D22(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L63
  lea    D49(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L16
L135:
  mov    $0x12,%r12d
  jmp    L207
  nopl   0x0(%rax,%rax,1)
L16:
  lea    D129(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L135
  lea    D126(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L171
L240:
  mov    $0x2,%r12d
  jmp    L207
L171:
  lea    D118(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L240
  lea    D134(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x4,%r12d
  call   <strcmp@plt>
  test   %rax,%rax
  je     L207
  lea    D257(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x5,%r12d
  call   <strcmp@plt>
  test   %rax,%rax
  je     L207
  lea    D97(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x10,%r12d
  call   <strcmp@plt>
  test   %rax,%rax
  je     L207
  lea    D95(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0xd,%r12d
  call   <strcmp@plt>
  test   %rax,%rax
  je     L207
  lea    D30(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x1,%r12d
  call   <strcmp@plt>
  test   %rax,%rax
  je     L207
  lea    D122(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x6,%r12d
  call   <strcmp@plt>
  test   %rax,%rax
  je     L207
  lea    D139(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x9,%r12d
  call   <strcmp@plt>
  test   %rax,%rax
  je     L207
  lea    D112(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x8,%r12d
  call   <strcmp@plt>
  test   %rax,%rax
  je     L207
  lea    D201(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0xc,%r12d
  call   <strcmp@plt>
  test   %rax,%rax
  je     L207
  lea    D53(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0xe,%r12d
  call   <strcmp@plt>
  test   %rax,%rax
  je     L207
  lea    D137(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L26
L258:
  mov    $0x65,%r12d
  jmp    L207
L26:
  lea    D216(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L258
  lea    D82(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L258
  lea    D113(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x66,%r12d
  call   <strcmp@plt>
  test   %rax,%rax
  je     L207
  lea    D5(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x67,%r12d
  call   <strcmp@plt>
  test   %rax,%rax
  je     L207
  lea    D221(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L12
L96:
  mov    $0x68,%r12d
  jmp    L207
L12:
  lea    D34(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L96
  lea    D114(%rip),%rsi
  mov    %rbp,%rdi
  mov    $0x69,%r12d
  call   <strcmp@plt>
  test   %rax,%rax
  je     L207
  lea    D91(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L235
L280:
  mov    $0x6a,%r12d
  jmp    L207
L235:
  lea    D242(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L280
  lea    D84(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  cmp    $0x1,%rax
  sbb    %r12d,%r12d
  and    $0x6b,%r12d
  jmp    L207
```

tool_calls: name: unpack_data
arguments: data_label: D70
datatype: string
name: unpack_data
arguments: data_label: D22
datatype: string
name: unpack_data
arguments: data_label: D49
datatype: string
name: unpack_data
arguments: data_label: D129
datatype: string
name: unpack_data
arguments: data_label: D126
datatype: string
name: unpack_data
arguments: data_label: D118
datatype: string
name: unpack_data
arguments: data_label: D134
datatype: string
name: unpack_data
arguments: data_label: D257
datatype: string
name: unpack_data
arguments: data_label: D97
datatype: string
name: unpack_data
arguments: data_label: D95
datatype: string
name: unpack_data
arguments: data_label: D30
datatype: string
name: unpack_data
arguments: data_label: D122
datatype: string
name: unpack_data
arguments: data_label: D139
datatype: string
name: unpack_data
arguments: data_label: D112
datatype: string
name: unpack_data
arguments: data_label: D201
datatype: string
name: unpack_data
arguments: data_label: D53
datatype: string
name: unpack_data
arguments: data_label: D137
datatype: string
name: unpack_data
arguments: data_label: D216
datatype: string
name: unpack_data
arguments: data_label: D82
datatype: string
name: unpack_data
arguments: data_label: D113
datatype: string
name: unpack_data
arguments: data_label: D5
datatype: string
name: unpack_data
arguments: data_label: D221
datatype: string
name: unpack_data
arguments: data_label: D34
datatype: string
name: unpack_data
arguments: data_label: D114
datatype: string
name: unpack_data
arguments: data_label: D91
datatype: string
name: unpack_data
arguments: data_label: D242
datatype: string
name: unpack_data
arguments: data_label: D84
datatype: string

tool: D70: FASTA

tool: D22: FA

tool: D49: VIENNA

tool: D129: VIE

tool: D126: GENBANK

tool: D118: GB

tool: D134: EMBL

tool: D257: GCG

tool: D97: GCGDATA

tool: D95: RAW

tool: D30: IG

tool: D122: STRIDER

tool: D139: IDRAW

tool: D112: ZUKER

tool: D201: PIR

tool: D53: SQUID

tool: D137: STOCKHOLM

tool: D216: ST

tool: D82: STK

tool: D113: SELEX

tool: D5: MSF

tool: D221: CLUSTAL

tool: D34: CLU

tool: D114: A2M

tool: D91: PHYLIP

tool: D242: PHY

tool: D84: EPS

assistant: ```c
int String2SeqfileFormat(char *s) {
  char *s2;
  int code = 0;
  if (s == NULL)
    return 0;
  s2 = sre_strdup(s, -1);
  s2upper(s2);
  if (strcmp(s2, "FASTA") == 0)
    code = 7;
  else if (strcmp(s2, "FA") == 0)
    code = 7;
  else if (strcmp(s2, "VIENNA") == 0)
    code = 18;
  else if (strcmp(s2, "VIE") == 0)
    code = 18;
  else if (strcmp(s2, "GENBANK") == 0)
    code = 2;
  else if (strcmp(s2, "GB") == 0)
    code = 2;
  else if (strcmp(s2, "EMBL") == 0)
    code = 4;
  else if (strcmp(s2, "GCG") == 0)
    code = 5;
  else if (strcmp(s2, "GCGDATA") == 0)
    code = 16;
  else if (strcmp(s2, "RAW") == 0)
    code = 13;
  else if (strcmp(s2, "IG") == 0)
    code = 1;
  else if (strcmp(s2, "STRIDER") == 0)
    code = 6;
  else if (strcmp(s2, "IDRAW") == 0)
    code = 9;
  else if (strcmp(s2, "ZUKER") == 0)
    code = 8;
  else if (strcmp(s2, "PIR") == 0)
    code = 12;
  else if (strcmp(s2, "SQUID") == 0)
    code = 14;
  else if (strcmp(s2, "STOCKHOLM") == 0)
    code = 101;
  else if (strcmp(s2, "ST") == 0)
    code = 101;
  else if (strcmp(s2, "STK") == 0)
    code = 101;
  else if (strcmp(s2, "SELEX") == 0)
    code = 102;
  else if (strcmp(s2, "MSF") == 0)
    code = 103;
  else if (strcmp(s2, "CLUSTAL") == 0)
    code = 104;
  else if (strcmp(s2, "CLU") == 0)
    code = 104;
  else if (strcmp(s2, "A2M") == 0)
    code = 105;
  else if (strcmp(s2, "PHYLIP") == 0)
    code = 106;
  else if (strcmp(s2, "PHY") == 0)
    code = 106;
  else if (strcmp(s2, "EPS") == 0)
    code = 107;
  else
    code = 0;
  free(s2);
  return code;
}
```