user: 这段汇编代码用C语言表示是什么样的？

```asm
<class_number>:
  endbr64
  push   %rbp
  lea    D165(%rip),%rsi
  mov    %rdi,%rbp
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x15,%eax
  test   %r8,%r8
  jne    L7
L237:
  pop    %rbp
  ret
  nopl   0x0(%rax,%rax,1)
L7:
  lea    D17(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x16,%eax
  test   %r8,%r8
  je     L237
  lea    D182(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x17,%eax
  test   %r8,%r8
  je     L237
  lea    D128(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x18,%eax
  test   %r8,%r8
  je     L237
  lea    D199(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x19,%eax
  test   %r8,%r8
  je     L237
  lea    D14(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x1a,%eax
  test   %r8,%r8
  je     L237
  lea    D247(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x1b,%eax
  test   %r8,%r8
  je     L237
  lea    D86(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x1c,%eax
  test   %r8,%r8
  je     L237
  lea    D35(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x1d,%eax
  test   %r8,%r8
  je     L237
  lea    D232(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x1,%eax
  test   %r8,%r8
  je     L237
  lea    D169(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x2,%eax
  test   %r8,%r8
  je     L237
  lea    D73(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x3,%eax
  test   %r8,%r8
  je     L237
  lea    D193(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x4,%eax
  test   %r8,%r8
  je     L237
  lea    D179(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x5,%eax
  test   %r8,%r8
  je     L237
  lea    D69(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x6,%eax
  test   %r8,%r8
  je     L237
  lea    D206(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x7,%eax
  test   %r8,%r8
  je     L237
  lea    D65(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x8,%eax
  test   %r8,%r8
  je     L237
  lea    D107(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x9,%eax
  test   %r8,%r8
  je     L237
  lea    D224(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0xa,%eax
  test   %r8,%r8
  je     L237
  lea    D105(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0xb,%eax
  test   %r8,%r8
  je     L237
  lea    D133(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0xc,%eax
  test   %r8,%r8
  je     L237
  lea    D137(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0xd,%eax
  test   %r8,%r8
  je     L237
  lea    D9(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0xe,%eax
  test   %r8,%r8
  je     L237
  lea    D244(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0xf,%eax
  test   %r8,%r8
  je     L237
  mov    %rbp,%rdi
  lea    D146(%rip),%rsi
  call   <strcmp@plt>
  pop    %rbp
  test   %rax,%rax
  sete   %al
  movzbl %al,%eax
  shl    $0x4,%eax
  ret
```

tool_calls: name: disassemble_data
arguments: label: D165
type: string
name: disassemble_data
arguments: label: D17
type: string
name: disassemble_data
arguments: label: D182
type: string
name: disassemble_data
arguments: label: D128
type: string
name: disassemble_data
arguments: label: D199
type: string
name: disassemble_data
arguments: label: D14
type: string
name: disassemble_data
arguments: label: D247
type: string
name: disassemble_data
arguments: label: D86
type: string
name: disassemble_data
arguments: label: D35
type: string
name: disassemble_data
arguments: label: D232
type: string
name: disassemble_data
arguments: label: D169
type: string
name: disassemble_data
arguments: label: D73
type: string
name: disassemble_data
arguments: label: D193
type: string
name: disassemble_data
arguments: label: D179
type: string
name: disassemble_data
arguments: label: D69
type: string
name: disassemble_data
arguments: label: D206
type: string
name: disassemble_data
arguments: label: D65
type: string
name: disassemble_data
arguments: label: D107
type: string
name: disassemble_data
arguments: label: D224
type: string
name: disassemble_data
arguments: label: D105
type: string
name: disassemble_data
arguments: label: D133
type: string
name: disassemble_data
arguments: label: D137
type: string
name: disassemble_data
arguments: label: D9
type: string
name: disassemble_data
arguments: label: D244
type: string
name: disassemble_data
arguments: label: D146
type: string

tool: D165: druidwin

tool: D17: hunterwin

tool: D182: magewin

tool: D128: paladinwin

tool: D199: priestwin

tool: D14: roguewin

tool: D247: shamanwin

tool: D86: warlockwin

tool: D35: warriorwin

tool: D232: druid

tool: D169: hunter

tool: D73: mage

tool: D193: paladin

tool: D179: priest

tool: D69: rogue

tool: D206: shaman

tool: D65: warlock

tool: D107: warrior

tool: D224: recover

tool: D105: all

tool: D133: allwin

tool: D137: bclass

tool: D9: wclass

tool: D244: pclass

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