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

```asm
<class_number>:
  endbr64
  push   %rbx
  mov    %rdi,%rbx
  lea    D133(%rip),%rsi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x15,%eax
  test   %rdx,%rdx
  jne    L233
L26:
  pop    %rbx
  ret
L233:
  lea    D196(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x16,%eax
  test   %rdx,%rdx
  je     L26
  lea    D225(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x17,%eax
  test   %rdx,%rdx
  je     L26
  lea    D245(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x18,%eax
  test   %rdx,%rdx
  je     L26
  lea    D113(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x19,%eax
  test   %rdx,%rdx
  je     L26
  lea    D89(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x1a,%eax
  test   %rdx,%rdx
  je     L26
  lea    D29(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x1b,%eax
  test   %rdx,%rdx
  je     L26
  lea    D5(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x1c,%eax
  test   %rdx,%rdx
  je     L26
  lea    D44(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x1d,%eax
  test   %rdx,%rdx
  je     L26
  lea    D99(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x1,%eax
  test   %rdx,%rdx
  je     L26
  lea    D91(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x2,%eax
  test   %rdx,%rdx
  je     L26
  lea    D137(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x3,%eax
  test   %rdx,%rdx
  je     L26
  lea    D168(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x4,%eax
  test   %rdx,%rdx
  je     L26
  lea    D213(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x5,%eax
  test   %rdx,%rdx
  je     L26
  lea    D244(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x6,%eax
  test   %rdx,%rdx
  je     L26
  lea    D174(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x7,%eax
  test   %rdx,%rdx
  je     L26
  lea    D230(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x8,%eax
  test   %rdx,%rdx
  je     L26
  lea    D57(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x9,%eax
  test   %rdx,%rdx
  je     L26
  lea    D78(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0xa,%eax
  test   %rdx,%rdx
  je     L26
  lea    D249(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0xb,%eax
  test   %rdx,%rdx
  je     L26
  lea    D61(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0xc,%eax
  test   %rdx,%rdx
  je     L26
  lea    D173(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0xd,%eax
  test   %rdx,%rdx
  je     L26
  lea    D101(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0xe,%eax
  test   %rdx,%rdx
  je     L26
  lea    D157(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0xf,%eax
  test   %rdx,%rdx
  je     L26
  lea    D35(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  sete   %al
  movzbl %al,%eax
  shl    $0x4,%eax
  jmp    L26
```

tool_calls: name: parse_data
arguments: data_label: D133
type: string
name: parse_data
arguments: data_label: D196
type: string
name: parse_data
arguments: data_label: D225
type: string
name: parse_data
arguments: data_label: D245
type: string
name: parse_data
arguments: data_label: D113
type: string
name: parse_data
arguments: data_label: D89
type: string
name: parse_data
arguments: data_label: D29
type: string
name: parse_data
arguments: data_label: D5
type: string
name: parse_data
arguments: data_label: D44
type: string
name: parse_data
arguments: data_label: D99
type: string
name: parse_data
arguments: data_label: D91
type: string
name: parse_data
arguments: data_label: D137
type: string
name: parse_data
arguments: data_label: D168
type: string
name: parse_data
arguments: data_label: D213
type: string
name: parse_data
arguments: data_label: D244
type: string
name: parse_data
arguments: data_label: D174
type: string
name: parse_data
arguments: data_label: D230
type: string
name: parse_data
arguments: data_label: D57
type: string
name: parse_data
arguments: data_label: D78
type: string
name: parse_data
arguments: data_label: D249
type: string
name: parse_data
arguments: data_label: D61
type: string
name: parse_data
arguments: data_label: D173
type: string
name: parse_data
arguments: data_label: D101
type: string
name: parse_data
arguments: data_label: D157
type: string
name: parse_data
arguments: data_label: D35
type: string

tool: D133: druidwin

tool: D196: hunterwin

tool: D225: magewin

tool: D245: paladinwin

tool: D113: priestwin

tool: D89: roguewin

tool: D29: shamanwin

tool: D5: warlockwin

tool: D44: warriorwin

tool: D99: druid

tool: D91: hunter

tool: D137: mage

tool: D168: paladin

tool: D213: priest

tool: D244: rogue

tool: D174: shaman

tool: D230: warlock

tool: D57: warrior

tool: D78: recover

tool: D249: all

tool: D61: allwin

tool: D173: bclass

tool: D101: wclass

tool: D157: pclass

tool: D35: myelo

assistant: ```c
int class_number(char *class) {
  int class_num = 0;
  if (strcmp(class, "druidwin") == 0)
    class_num = 21;
  else if (strcmp(class, "hunterwin") == 0)
    class_num = 22;
  else if (strcmp(class, "magewin") == 0)
    class_num = 23;
  else if (strcmp(class, "paladinwin") == 0)
    class_num = 24;
  else if (strcmp(class, "priestwin") == 0)
    class_num = 25;
  else if (strcmp(class, "roguewin") == 0)
    class_num = 26;
  else if (strcmp(class, "shamanwin") == 0)
    class_num = 27;
  else if (strcmp(class, "warlockwin") == 0)
    class_num = 28;
  else if (strcmp(class, "warriorwin") == 0)
    class_num = 29;
  else if (strcmp(class, "druid") == 0)
    class_num = 1;
  else if (strcmp(class, "hunter") == 0)
    class_num = 2;
  else if (strcmp(class, "mage") == 0)
    class_num = 3;
  else if (strcmp(class, "paladin") == 0)
    class_num = 4;
  else if (strcmp(class, "priest") == 0)
    class_num = 5;
  else if (strcmp(class, "rogue") == 0)
    class_num = 6;
  else if (strcmp(class, "shaman") == 0)
    class_num = 7;
  else if (strcmp(class, "warlock") == 0)
    class_num = 8;
  else if (strcmp(class, "warrior") == 0)
    class_num = 9;
  else if (strcmp(class, "recover") == 0)
    class_num = 10;
  else if (strcmp(class, "all") == 0)
    class_num = 11;
  else if (strcmp(class, "allwin") == 0)
    class_num = 12;
  else if (strcmp(class, "bclass") == 0)
    class_num = 13;
  else if (strcmp(class, "wclass") == 0)
    class_num = 14;
  else if (strcmp(class, "pclass") == 0)
    class_num = 15;
  else if (strcmp(class, "myelo") == 0)
    class_num = 16;
  else
    class_num = 0;
  return class_num;
}
```