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

```asm
<menu>:
  endbr64
  sub    $0x8,%rsp
  cmp    $0x2,%edi
  je     L33
  cmp    $0x3,%edi
  je     L59
  cmp    $0x1,%edi
  je     L21
L43:
  add    $0x8,%rsp
  ret
L21:
  lea    D92(%rip),%rdi
  call   <printf@plt>
  lea    D40(%rip),%rdi
  call   <printf@plt>
  lea    D18(%rip),%rdi
  call   <printf@plt>
  lea    D118(%rip),%rdi
  call   <printf@plt>
  lea    D131(%rip),%rdi
  call   <printf@plt>
  lea    D74(%rip),%rdi
  call   <printf@plt>
  jmp    L43
L33:
  lea    D79(%rip),%rdi
  call   <printf@plt>
  lea    D98(%rip),%rdi
  call   <printf@plt>
  lea    D30(%rip),%rdi
  call   <printf@plt>
  lea    D74(%rip),%rdi
  call   <printf@plt>
  jmp    L43
L59:
  lea    D138(%rip),%rdi
  call   <printf@plt>
  lea    D90(%rip),%rdi
  call   <printf@plt>
  lea    D126(%rip),%rdi
  call   <printf@plt>
  lea    D74(%rip),%rdi
  call   <printf@plt>
  jmp    L43
```

tool_calls: name: disassemble_data
arguments: tag: D92
type_guessed: string
name: disassemble_data
arguments: tag: D40
type_guessed: string
name: disassemble_data
arguments: tag: D18
type_guessed: string
name: disassemble_data
arguments: tag: D118
type_guessed: string
name: disassemble_data
arguments: tag: D131
type_guessed: string
name: disassemble_data
arguments: tag: D74
type_guessed: string
name: disassemble_data
arguments: tag: D79
type_guessed: string
name: disassemble_data
arguments: tag: D98
type_guessed: string
name: disassemble_data
arguments: tag: D30
type_guessed: string
name: disassemble_data
arguments: tag: D138
type_guessed: string
name: disassemble_data
arguments: tag: D90
type_guessed: string
name: disassemble_data
arguments: tag: D126
type_guessed: string

tool: D92: 


	-----------------Linked List OPERATIONS-----------------

tool: D40: 

	1. Insert atBeg  	2. Insert atEnd 		3. Insert atPos 	4. Create Random List

tool: D18: 

	5. Length  		6. Delete atBeg 		7. Delete atEnd 	8. Delete atPos

tool: D118: 

	9. Sort			10. Copy			11. Reverse		12. Search

tool: D131: 

	13. Display		14. Merge			15. Merge Ordered 	16. Create List

	17. Insert Ordered	0. Exit

tool: D74: 
	______________________________________________________


tool: D79: 


	-----------------Stack ADT OPERATIONS-----------------

tool: D98: 

	1. Push  	2. Pop 		3. isEmpty 	4. atTop

tool: D30: 
	5. Display 	0. Exit

tool: D138: 


	------------QUEUE ADT OPERATIONS-------------

tool: D90: 

	1.Insert  	2. Delete 	3. isEmpty 	4. Display

tool: D126: 

	5. Front	6. Rear		0. Exit

assistant: ```c
void menu(int ll) {
  switch (ll) {
  case 1:
    printf("\n\n\n\t-----------------Linked List OPERATIONS-----------------");
    printf("\n\n\t1. Insert atBeg  \t2. Insert atEnd \t\t3. Insert atPos \t4. Create Random List");
    printf("\n\n\t5. Length  \t\t6. Delete atBeg \t\t7. Delete atEnd \t8. Delete atPos");
    printf("\n\n\t9. Sort\t\t\t10. Copy\t\t\t11. Reverse\t\t12. Search");
    printf("\n\n\t13. Display\t\t14. Merge\t\t\t15. Merge Ordered \t16. Create List\n\n\t17. Insert Ordered\t0. Exit");
    printf("\n\t______________________________________________________\n");
    break;
  case 2:
    printf("\n\n\n\t-----------------Stack ADT OPERATIONS-----------------");
    printf("\n\n\t1. Push  \t2. Pop \t\t3. isEmpty \t4. atTop");
    printf("\n\t5. Display \t0. Exit");
    printf("\n\t______________________________________________________\n");
    break;
  case 3:
    printf("\n\n\n\t------------QUEUE ADT OPERATIONS-------------");
    printf("\n\n\t1.Insert  \t2. Delete \t3. isEmpty \t4. Display");
    printf("\n\n\t5. Front\t6. Rear\t\t0. Exit");
    printf("\n\t______________________________________________________\n");
    break;
  }
}
```