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

```asm
<helpbox>:
  endbr64
  sub    $0x8,%rsp
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    D98(%rip),%rdi
  call   <gettext@plt>
  lea    D19(%rip),%rsi
  mov    %rax,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    D90(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D91(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D154(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D151(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D107(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D57(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D16(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D115(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D45(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D46(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D167(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D8(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D81(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D42(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D137(%rip),%rdi
  call   <gettext@plt>
  add    $0x8,%rsp
  mov    %rax,%rdi
  xor    %eax,%eax
  jmp    1090 <printf@plt>
```

tool_calls: name: read_data
arguments: data_tag: D98
datatype: string
name: read_data
arguments: data_tag: D19
datatype: string
name: read_data
arguments: data_tag: D90
datatype: string
name: read_data
arguments: data_tag: D91
datatype: string
name: read_data
arguments: data_tag: D154
datatype: string
name: read_data
arguments: data_tag: D151
datatype: string
name: read_data
arguments: data_tag: D107
datatype: string
name: read_data
arguments: data_tag: D57
datatype: string
name: read_data
arguments: data_tag: D16
datatype: string
name: read_data
arguments: data_tag: D115
datatype: string
name: read_data
arguments: data_tag: D45
datatype: string
name: read_data
arguments: data_tag: D46
datatype: string
name: read_data
arguments: data_tag: D167
datatype: string
name: read_data
arguments: data_tag: D8
datatype: string
name: read_data
arguments: data_tag: D81
datatype: string
name: read_data
arguments: data_tag: D42
datatype: string
name: read_data
arguments: data_tag: D137
datatype: string

tool: D98: 	cryptoJKA from JKA Network - Version: %s


tool: D19: 0.5.1

tool: D90: 	The text must be between ASCII 32 and ASCII 126



tool: D91: 	Options:


tool: D154: 	 -f [file_name]	input file


tool: D151: 	 -o [file_name]	output file (default : crypt.out)


tool: D107: 	 -p [text]		password (default: pass)


tool: D57: 	 -t [text]		text (default: text)
					If you put -f and -t, text have preference


tool: D16: 	 -e			encrypt mode


tool: D115: 	 -d			decrypt mode


tool: D45: 	 -r [number]		with random generation [number of character]


tool: D46: 	 -b			cyption mode whith before algorithm (before version 0.4.5)


tool: D167: 	 -h, --help		show this box


tool: D8: 	 -v, --version		show version



tool: D81: 	 Examples:



tool: D42: 		cryptojka -e -t "Example text" -p password -o file_name -r 600


tool: D137: 		cryptojka -d -f file_name -p password



assistant: ```c
void helpbox() {
  printf("\n");
  printf(gettext("\tcryptoJKA from JKA Network - Version: %s\n"), "0.5.1");
  printf("\n");
  printf(gettext("\tThe text must be between ASCII 32 and ASCII 126\n\n"));
  printf(gettext("\tOptions:\n"));
  printf(gettext("\t -f [file_name]\tinput file\n"));
  printf(gettext("\t -o [file_name]\toutput file (default : crypt.out)\n"));
  printf(gettext("\t -p [text]\t\tpassword (default: pass)\n"));
  printf(gettext("\t -t [text]\t\ttext (default: text)\n\t\t\t\t\tIf you put -f and -t, text have preference\n"));
  printf(gettext("\t -e\t\t\tencrypt mode\n"));
  printf(gettext("\t -d\t\t\tdecrypt mode\n"));
  printf(gettext("\t -r [number]\t\twith random generation [number of character]\n"));
  printf(gettext("\t -b\t\t\tcyption mode whith before algorithm (before version 0.4.5)\n"));
  printf(gettext("\t -h, --help\t\tshow this box\n"));
  printf(gettext("\t -v, --version\t\tshow version\n\n"));
  printf(gettext("\t Examples:\n\n"));
  printf(gettext("\t\tcryptojka -e -t \"Example text\" -p password -o file_name -r 600\n"));
  printf(gettext("\t\tcryptojka -d -f file_name -p password\n\n"));
}
```