user: Please show me the C implementation that matches the assembly code listed below:

```asm
<mostrarMenu>:
  endbr64
  sub    $0x8,%rsp
  lea    D80(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D248(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D273(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D269(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D293(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D296(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D278(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D174(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D17(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D189(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D286(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D244(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D156(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D199(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D254(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D188(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D184(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D196(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D195(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D166(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D40(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D259(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D210(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D161(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D45(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D190(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D240(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D241(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D268(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D19(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  add    $0x8,%rsp
  ret
```

tool_calls: name: unpack_data
arguments: data_label: D80
data_type: string
name: unpack_data
arguments: data_label: D248
data_type: string
name: unpack_data
arguments: data_label: D273
data_type: string
name: unpack_data
arguments: data_label: D269
data_type: string
name: unpack_data
arguments: data_label: D293
data_type: string
name: unpack_data
arguments: data_label: D296
data_type: string
name: unpack_data
arguments: data_label: D278
data_type: string
name: unpack_data
arguments: data_label: D174
data_type: string
name: unpack_data
arguments: data_label: D17
data_type: string
name: unpack_data
arguments: data_label: D189
data_type: string
name: unpack_data
arguments: data_label: D286
data_type: string
name: unpack_data
arguments: data_label: D244
data_type: string
name: unpack_data
arguments: data_label: D156
data_type: string
name: unpack_data
arguments: data_label: D199
data_type: string
name: unpack_data
arguments: data_label: D254
data_type: string
name: unpack_data
arguments: data_label: D188
data_type: string
name: unpack_data
arguments: data_label: D184
data_type: string
name: unpack_data
arguments: data_label: D196
data_type: string
name: unpack_data
arguments: data_label: D195
data_type: string
name: unpack_data
arguments: data_label: D166
data_type: string
name: unpack_data
arguments: data_label: D40
data_type: string
name: unpack_data
arguments: data_label: D259
data_type: string
name: unpack_data
arguments: data_label: D210
data_type: string
name: unpack_data
arguments: data_label: D161
data_type: string
name: unpack_data
arguments: data_label: D45
data_type: string
name: unpack_data
arguments: data_label: D190
data_type: string
name: unpack_data
arguments: data_label: D240
data_type: string
name: unpack_data
arguments: data_label: D241
data_type: string
name: unpack_data
arguments: data_label: D268
data_type: string
name: unpack_data
arguments: data_label: D19
data_type: string

tool: D80: The following menu displays the available operations


tool: D248: To select a category


tool: D273: Enter the corresponding number!



tool: D269: [1] Addition


tool: D293: [2] Subtraction


tool: D296: [3] Multiplication


tool: D278: [4] Division


tool: D174: [5] Sine


tool: D17: [6] Cosine


tool: D189: [7] Tangent


tool: D286: [8] Arc sine


tool: D244: [9] Arc cosine


tool: D156: [10] Arc tangent


tool: D199: [11] Hyperbolic sine


tool: D254: [12] Hyperbolic cosine


tool: D188: [13] Hyperbolic tangent


tool: D184: [14] Arc tangent y/x (atan2)


tool: D196: [15] Exponential


tool: D195: [16] Natural logarithm


tool: D166: [17] Decimal logarithm


tool: D40: [18] Square root


tool: D259: [19] Power


tool: D210: [20] Absolute value


tool: D161: [21] floating point remainder (fmod)


tool: D45: [22] Ceil function


tool: D190: [23] Floor function


tool: D240: [24] frexp


tool: D241: [25] ldexp


tool: D268: [26] modf


tool: D19: [27] Exit



assistant: ```c
void mostrarMenu() {
  printf(gettext("The following menu displays the available operations\n"));
  printf(gettext("To select a category\n"));
  printf(gettext("Enter the corresponding number!\n\n"));
  printf(gettext("[1] Addition\n"));
  printf(gettext("[2] Subtraction\n"));
  printf(gettext("[3] Multiplication\n"));
  printf(gettext("[4] Division\n"));
  printf(gettext("[5] Sine\n"));
  printf(gettext("[6] Cosine\n"));
  printf(gettext("[7] Tangent\n"));
  printf(gettext("[8] Arc sine\n"));
  printf(gettext("[9] Arc cosine\n"));
  printf(gettext("[10] Arc tangent\n"));
  printf(gettext("[11] Hyperbolic sine\n"));
  printf(gettext("[12] Hyperbolic cosine\n"));
  printf(gettext("[13] Hyperbolic tangent\n"));
  printf(gettext("[14] Arc tangent y/x (atan2)\n"));
  printf(gettext("[15] Exponential\n"));
  printf(gettext("[16] Natural logarithm\n"));
  printf(gettext("[17] Decimal logarithm\n"));
  printf(gettext("[18] Square root\n"));
  printf(gettext("[19] Power\n"));
  printf(gettext("[20] Absolute value\n"));
  printf(gettext("[21] floating point remainder (fmod)\n"));
  printf(gettext("[22] Ceil function\n"));
  printf(gettext("[23] Floor function\n"));
  printf(gettext("[24] frexp\n"));
  printf(gettext("[25] ldexp\n"));
  printf(gettext("[26] modf\n"));
  printf(gettext("[27] Exit\n\n"));
}
```