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

```asm
<print_help>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  lea    D141(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D138(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D176(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D38(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D237(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D149(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D165(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D277(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D21(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D185(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D105(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D234(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D183(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D45(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D269(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D195(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D131(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D46(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D22(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D266(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D167(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D43(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D233(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D259(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D255(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D17(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D113(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D115(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  nop
  pop    %rbp
  ret
```

tool_calls: name: parse_data
arguments: tag: D141
type_guessed: string
name: parse_data
arguments: tag: D138
type_guessed: string
name: parse_data
arguments: tag: D176
type_guessed: string
name: parse_data
arguments: tag: D38
type_guessed: string
name: parse_data
arguments: tag: D237
type_guessed: string
name: parse_data
arguments: tag: D149
type_guessed: string
name: parse_data
arguments: tag: D165
type_guessed: string
name: parse_data
arguments: tag: D277
type_guessed: string
name: parse_data
arguments: tag: D21
type_guessed: string
name: parse_data
arguments: tag: D185
type_guessed: string
name: parse_data
arguments: tag: D105
type_guessed: string
name: parse_data
arguments: tag: D234
type_guessed: string
name: parse_data
arguments: tag: D183
type_guessed: string
name: parse_data
arguments: tag: D45
type_guessed: string
name: parse_data
arguments: tag: D269
type_guessed: string
name: parse_data
arguments: tag: D195
type_guessed: string
name: parse_data
arguments: tag: D131
type_guessed: string
name: parse_data
arguments: tag: D46
type_guessed: string
name: parse_data
arguments: tag: D22
type_guessed: string
name: parse_data
arguments: tag: D266
type_guessed: string
name: parse_data
arguments: tag: D167
type_guessed: string
name: parse_data
arguments: tag: D43
type_guessed: string
name: parse_data
arguments: tag: D233
type_guessed: string
name: parse_data
arguments: tag: D259
type_guessed: string
name: parse_data
arguments: tag: D255
type_guessed: string
name: parse_data
arguments: tag: D17
type_guessed: string
name: parse_data
arguments: tag: D113
type_guessed: string
name: parse_data
arguments: tag: D115
type_guessed: string

tool: D141: FUNTZIO NAGUSIAK 


tool: D138: <?>			 Laguntza hau bistaratu 


tool: D176: <ESC>		 Programatik irten 


tool: D38: <F>			 Objektua bat kargatu


tool: D237: <TAB>		 Kargaturiko objektuen artean bat hautatu


tool: D149: <DEL>		 Hautatutako objektua ezabatu


tool: D165: <CTRL + ->	 Bistaratze-eremua handitu


tool: D277: <CTRL + +>	 Bistaratze-eremua txikitu


tool: D21: <I,i>		 Objektuaren informazioa pantailaratu


tool: D185: <Q,q>)		 Defektuz dagoen objektua kargau



tool: D105: ALDAKETA FUNTZIOAK 


tool: D234: <M,m>		 Translazioa aktibatu 


tool: D183: <B,b>		 Biraketa aktibatu 


tool: D45: <T,t>		 Tamaina aldaketa aktibatu 


tool: D269: <R,r>		 Islapena aktibatu 


tool: D195: <G,g>		 Aldaketa globalak aktibatu 


tool: D131: <L,l>		 Aldaketa lokalak aktibatu 


tool: D46: <O,o>		 Translazioa aktibatu 


tool: D22: <GORA>		 Mugitu +Y; Txikitu Y; Biratu +X 


tool: D266: <BEHERA>	 Mugitu -Y; Handitu Y; Biratu -X 


tool: D167: <ESKUINA>	 Mugitu +X; Txikitu X; Biratu +Y 


tool: D43: <EZKERRA>	 Mugitu -X; Handitu X; Biratu -Y 


tool: D233: <AVPAG>		 Mugitu +Z; Txikitu Z; Biratu +Z 


tool: D259: <REPAG>		 Mugitu -Z; Handitu Z; Biratu -Z 


tool: D255: <+>			 Objektua ardatz guztietan handitu 


tool: D17: <->			 Objektua ardatz guztietan txikitu 


tool: D113: <CTRL + (Z,z)>		 Aldaketak desegin 


tool: D115: 



assistant: ```c
void print_help() {
  printf("FUNTZIO NAGUSIAK \n");
  printf("<?>\t\t\t Laguntza hau bistaratu \n");
  printf("<ESC>\t\t Programatik irten \n");
  printf("<F>\t\t\t Objektua bat kargatu\n");
  printf("<TAB>\t\t Kargaturiko objektuen artean bat hautatu\n");
  printf("<DEL>\t\t Hautatutako objektua ezabatu\n");
  printf("<CTRL + ->\t Bistaratze-eremua handitu\n");
  printf("<CTRL + +>\t Bistaratze-eremua txikitu\n");
  printf("<I,i>\t\t Objektuaren informazioa pantailaratu\n");
  printf("<Q,q>)\t\t Defektuz dagoen objektua kargau\n\n");
  printf("ALDAKETA FUNTZIOAK \n");
  printf("<M,m>\t\t Translazioa aktibatu \n");
  printf("<B,b>\t\t Biraketa aktibatu \n");
  printf("<T,t>\t\t Tamaina aldaketa aktibatu \n");
  printf("<R,r>\t\t Islapena aktibatu \n");
  printf("<G,g>\t\t Aldaketa globalak aktibatu \n");
  printf("<L,l>\t\t Aldaketa lokalak aktibatu \n");
  printf("<O,o>\t\t Translazioa aktibatu \n");
  printf("<GORA>\t\t Mugitu +Y; Txikitu Y; Biratu +X \n");
  printf("<BEHERA>\t Mugitu -Y; Handitu Y; Biratu -X \n");
  printf("<ESKUINA>\t Mugitu +X; Txikitu X; Biratu +Y \n");
  printf("<EZKERRA>\t Mugitu -X; Handitu X; Biratu -Y \n");
  printf("<AVPAG>\t\t Mugitu +Z; Txikitu Z; Biratu +Z \n");
  printf("<REPAG>\t\t Mugitu -Z; Handitu Z; Biratu -Z \n");
  printf("<+>\t\t\t Objektua ardatz guztietan handitu \n");
  printf("<->\t\t\t Objektua ardatz guztietan txikitu \n");
  printf("<CTRL + (Z,z)>\t\t Aldaketak desegin \n");
  printf("\n\n");
}
```