user: Translate the below assembly code into C programming language:

```asm
<class_number>:
  endbr64
  push   %rbp
  lea    D144(%rip),%rsi
  mov    %rdi,%rbp
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x15,%eax
  test   %r8,%r8
  jne    L85
L71:
  pop    %rbp
  ret
  nopl   0x0(%rax,%rax,1)
L85:
  lea    D118(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x16,%eax
  test   %r8,%r8
  je     L71
  lea    D137(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x17,%eax
  test   %r8,%r8
  je     L71
  lea    D189(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x18,%eax
  test   %r8,%r8
  je     L71
  lea    D180(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x19,%eax
  test   %r8,%r8
  je     L71
  lea    D153(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x1a,%eax
  test   %r8,%r8
  je     L71
  lea    D242(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x1b,%eax
  test   %r8,%r8
  je     L71
  lea    D3(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x1c,%eax
  test   %r8,%r8
  je     L71
  lea    D113(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x1d,%eax
  test   %r8,%r8
  je     L71
  lea    D244(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x1,%eax
  test   %r8,%r8
  je     L71
  lea    D207(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x2,%eax
  test   %r8,%r8
  je     L71
  lea    D219(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x3,%eax
  test   %r8,%r8
  je     L71
  lea    D155(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x4,%eax
  test   %r8,%r8
  je     L71
  lea    D100(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x5,%eax
  test   %r8,%r8
  je     L71
  lea    D77(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x6,%eax
  test   %r8,%r8
  je     L71
  lea    D220(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x7,%eax
  test   %r8,%r8
  je     L71
  lea    D57(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x8,%eax
  test   %r8,%r8
  je     L71
  lea    D90(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x9,%eax
  test   %r8,%r8
  je     L71
  lea    D63(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0xa,%eax
  test   %r8,%r8
  je     L71
  lea    D78(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0xb,%eax
  test   %r8,%r8
  je     L71
  lea    D176(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0xc,%eax
  test   %r8,%r8
  je     L71
  lea    D245(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0xd,%eax
  test   %r8,%r8
  je     L71
  lea    D38(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0xe,%eax
  test   %r8,%r8
  je     L71
  lea    D175(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0xf,%eax
  test   %r8,%r8
  je     L71
  mov    %rbp,%rdi
  lea    D168(%rip),%rsi
  call   <strcmp@plt>
  pop    %rbp
  test   %rax,%rax
  sete   %al
  movzbl %al,%eax
  shl    $0x4,%eax
  ret
```

tool_calls: name: unpack_data
arguments: label: D144
type_guessed: string
name: unpack_data
arguments: label: D118
type_guessed: string
name: unpack_data
arguments: label: D137
type_guessed: string
name: unpack_data
arguments: label: D189
type_guessed: string
name: unpack_data
arguments: label: D180
type_guessed: string
name: unpack_data
arguments: label: D153
type_guessed: string
name: unpack_data
arguments: label: D242
type_guessed: string
name: unpack_data
arguments: label: D3
type_guessed: string
name: unpack_data
arguments: label: D113
type_guessed: string
name: unpack_data
arguments: label: D244
type_guessed: string
name: unpack_data
arguments: label: D207
type_guessed: string
name: unpack_data
arguments: label: D219
type_guessed: string
name: unpack_data
arguments: label: D155
type_guessed: string
name: unpack_data
arguments: label: D100
type_guessed: string
name: unpack_data
arguments: label: D77
type_guessed: string
name: unpack_data
arguments: label: D220
type_guessed: string
name: unpack_data
arguments: label: D57
type_guessed: string
name: unpack_data
arguments: label: D90
type_guessed: string
name: unpack_data
arguments: label: D63
type_guessed: string
name: unpack_data
arguments: label: D78
type_guessed: string
name: unpack_data
arguments: label: D176
type_guessed: string
name: unpack_data
arguments: label: D245
type_guessed: string
name: unpack_data
arguments: label: D38
type_guessed: string
name: unpack_data
arguments: label: D175
type_guessed: string
name: unpack_data
arguments: label: D168
type_guessed: string

tool: D144: druidwin

tool: D118: hunterwin

tool: D137: magewin

tool: D189: paladinwin

tool: D180: priestwin

tool: D153: roguewin

tool: D242: shamanwin

tool: D3: warlockwin

tool: D113: warriorwin

tool: D244: druid

tool: D207: hunter

tool: D219: mage

tool: D155: paladin

tool: D100: priest

tool: D77: rogue

tool: D220: shaman

tool: D57: warlock

tool: D90: warrior

tool: D63: recover

tool: D78: all

tool: D176: allwin

tool: D245: bclass

tool: D38: wclass

tool: D175: pclass

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