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

```asm
<getFunctionName>:
  endbr64
  cmp    $0x2b,%edi
  ja     L0
  mov    %edi,%edi
  lea    D145(%rip),%rdx
  movslq (%rdx,%rdi,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D242(%rip),%rax
  ret
  lea    D83(%rip),%rax
  ret
  lea    D121(%rip),%rax
  ret
  lea    D37(%rip),%rax
  ret
  lea    D230(%rip),%rax
  ret
  lea    D133(%rip),%rax
  ret
  lea    D120(%rip),%rax
  ret
  lea    D337(%rip),%rax
  ret
  lea    D131(%rip),%rax
  ret
  lea    D297(%rip),%rax
  ret
  lea    D273(%rip),%rax
  ret
  lea    D144(%rip),%rax
  ret
  lea    D64(%rip),%rax
  ret
  lea    D176(%rip),%rax
  ret
  lea    D100(%rip),%rax
  ret
  lea    D389(%rip),%rax
  ret
  lea    D405(%rip),%rax
  ret
  lea    D291(%rip),%rax
  ret
  lea    D396(%rip),%rax
  ret
  lea    D269(%rip),%rax
  ret
  lea    D190(%rip),%rax
  ret
  lea    D278(%rip),%rax
  ret
  lea    D295(%rip),%rax
  ret
  lea    D207(%rip),%rax
  ret
  lea    D66(%rip),%rax
  ret
  lea    D348(%rip),%rax
  ret
  lea    D356(%rip),%rax
  ret
  lea    D2(%rip),%rax
  ret
  lea    D90(%rip),%rax
  ret
  lea    D317(%rip),%rax
  ret
  lea    D92(%rip),%rax
  ret
  lea    D327(%rip),%rax
  ret
  lea    D72(%rip),%rax
  ret
  lea    D85(%rip),%rax
  ret
  lea    D326(%rip),%rax
  ret
  lea    D73(%rip),%rax
  ret
  lea    D146(%rip),%rax
  ret
  lea    D253(%rip),%rax
  ret
  lea    D382(%rip),%rax
  ret
  lea    D432(%rip),%rax
  ret
L0:
  sub    $0x8,%rsp
  lea    D33(%rip),%rdi
  call   <printf@plt>
  mov    $0x0,%edi
  call   <exit@plt>
  add    $0x8,%rsp
  ret
  lea    D175(%rip),%rax
  ret
  lea    D399(%rip),%rax
  ret
```

tool_calls: name: retrieve_data
arguments: tag: D242
type_infered: string
name: retrieve_data
arguments: tag: D83
type_infered: string
name: retrieve_data
arguments: tag: D121
type_infered: string
name: retrieve_data
arguments: tag: D37
type_infered: string
name: retrieve_data
arguments: tag: D230
type_infered: string
name: retrieve_data
arguments: tag: D133
type_infered: string
name: retrieve_data
arguments: tag: D120
type_infered: string
name: retrieve_data
arguments: tag: D337
type_infered: string
name: retrieve_data
arguments: tag: D131
type_infered: string
name: retrieve_data
arguments: tag: D297
type_infered: string
name: retrieve_data
arguments: tag: D273
type_infered: string
name: retrieve_data
arguments: tag: D144
type_infered: string
name: retrieve_data
arguments: tag: D64
type_infered: string
name: retrieve_data
arguments: tag: D176
type_infered: string
name: retrieve_data
arguments: tag: D100
type_infered: string
name: retrieve_data
arguments: tag: D389
type_infered: string
name: retrieve_data
arguments: tag: D405
type_infered: string
name: retrieve_data
arguments: tag: D291
type_infered: string
name: retrieve_data
arguments: tag: D396
type_infered: string
name: retrieve_data
arguments: tag: D269
type_infered: string
name: retrieve_data
arguments: tag: D190
type_infered: string
name: retrieve_data
arguments: tag: D278
type_infered: string
name: retrieve_data
arguments: tag: D295
type_infered: string
name: retrieve_data
arguments: tag: D207
type_infered: string
name: retrieve_data
arguments: tag: D66
type_infered: string
name: retrieve_data
arguments: tag: D348
type_infered: string
name: retrieve_data
arguments: tag: D356
type_infered: string
name: retrieve_data
arguments: tag: D2
type_infered: string
name: retrieve_data
arguments: tag: D90
type_infered: string
name: retrieve_data
arguments: tag: D317
type_infered: string
name: retrieve_data
arguments: tag: D92
type_infered: string
name: retrieve_data
arguments: tag: D327
type_infered: string
name: retrieve_data
arguments: tag: D72
type_infered: string
name: retrieve_data
arguments: tag: D85
type_infered: string
name: retrieve_data
arguments: tag: D326
type_infered: string
name: retrieve_data
arguments: tag: D73
type_infered: string
name: retrieve_data
arguments: tag: D146
type_infered: string
name: retrieve_data
arguments: tag: D253
type_infered: string
name: retrieve_data
arguments: tag: D382
type_infered: string
name: retrieve_data
arguments: tag: D432
type_infered: string
name: retrieve_data
arguments: tag: D33
type_infered: string
name: retrieve_data
arguments: tag: D175
type_infered: string
name: retrieve_data
arguments: tag: D399
type_infered: string

tool: D242: Schaffer F7

tool: D83: Ackley

tool: D121: Rosenbrock

tool: D37: Sphere

tool: D230: Molecular Potential Energy

tool: D133: Schaffer F6

tool: D120: Generalized Schwefels 2.26

tool: D337: Step

tool: D131: Generalized Penalized function #1

tool: D297: Levy

tool: D273: Zakharov

tool: D144: Egg holder

tool: D64: Generalized Holzman

tool: D176: Michalewitz

tool: D100: Generalized penalized function #2

tool: D389: Powell

tool: D405: Rana

tool: D291: Shubert

tool: D396: StretchedV

tool: D269: Multimod

tool: D190: Schwefel's function 2.22

tool: D278: Shifted Sphere

tool: D295: Shifted Schwefel's Problem 2.21

tool: D207: Shifted Rosenbrock

tool: D66: Shifted Rastrigin

tool: D348: Shifted Griewank

tool: D356: Shifted Ackley

tool: D2: Shifted Schwefel 2.22

tool: D90: Shifted Schwefel 1.2

tool: D317: Shifted Extended_f10

tool: D92: Shifted Bohachevsky

tool: D327: Shifted Schaffer

tool: D72: Hybrid 1

tool: D85: Hybrid 2

tool: D326: Hybrid 3

tool: D73: Hybrid 4

tool: D146: Hybrid 5

tool: D253: Hybrid 6

tool: D382: Hybrid 7

tool: D432: Hybrid 8

tool: D33: Info: Invalid function.


tool: D175: Rastrigin

tool: D399: Griewank

assistant: ```c
char *getFunctionName(int FUNCTION) {
  switch (FUNCTION) {
  case 0:
    return "Rastrigin";
  case 1:
    return "Schaffer F7";
  case 2:
    return "Griewank";
  case 3:
    return "Ackley";
  case 4:
    return "Rosenbrock";
  case 5:
    return "Sphere";
  case 6:
    return "Molecular Potential Energy";
  case 7:
    return "Schaffer F6";
    break;
  case 8:
    return "Generalized Schwefels 2.26";
    break;
  case 9:
    return "Step";
    break;
  case 11:
    return "Generalized Penalized function #1";
    break;
  case 12:
    return "Levy";
    break;
  case 13:
    return "Zakharov";
    break;
  case 14:
    return "Egg holder";
    break;
  case 15:
    return "Generalized Holzman";
    break;
  case 16:
    return "Michalewitz";
    break;
  case 17:
    return "Generalized penalized function #2";
    break;
  case 18:
    return "Powell";
    break;
  case 19:
    return "Rana";
    break;
  case 20:
    return "Shubert";
    break;
  case 21:
    return "StretchedV";
    break;
  case 22:
    return "Multimod";
    break;
  case 23:
    return "Schwefel's function 2.22";
    break;
  case 25:
    return "Shifted Sphere";
    break;
  case 26:
    return "Shifted Schwefel's Problem 2.21";
    break;
  case 27:
    return "Shifted Rosenbrock";
    break;
  case 28:
    return "Shifted Rastrigin";
    break;
  case 29:
    return "Shifted Griewank";
    break;
  case 30:
    return "Shifted Ackley";
    break;
  case 31:
    return "Shifted Schwefel 2.22";
    break;
  case 32:
    return "Shifted Schwefel 1.2";
    break;
  case 33:
    return "Shifted Extended_f10";
    break;
  case 34:
    return "Shifted Bohachevsky";
    break;
  case 35:
    return "Shifted Schaffer";
    break;
  case 36:
    return "Hybrid 1";
    break;
  case 37:
    return "Hybrid 2";
    break;
  case 38:
    return "Hybrid 3";
    break;
  case 39:
    return "Hybrid 4";
    break;
  case 40:
    return "Hybrid 5";
    break;
  case 41:
    return "Hybrid 6";
    break;
  case 42:
    return "Hybrid 7";
    break;
  case 43:
    return "Hybrid 8";
    break;
  default:
    printf("Info: Invalid function.\n");
    exit(0);
  }
}
```