user: Translate the below assembly code into C programming language:

```asm
<apkMenu>:
  endbr64
  push   %r12
  lea    D346(%rip),%rdi
  push   %rbp
  lea    D30(%rip),%rbp
  sub    $0xc8,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0xb8(%rsp)
  xor    %eax,%eax
  call   <system@plt>
  mov    %rbp,%rdi
  call   <printf@plt>
  lea    D140(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <printf@plt>
  lea    D153(%rip),%rdi
  call   <printf@plt>
  lea    D196(%rip),%rdi
  call   <printf@plt>
  lea    D77(%rip),%rdi
  call   <printf@plt>
  lea    D238(%rip),%rdi
  call   <printf@plt>
  lea    D225(%rip),%rdi
  call   <printf@plt>
  lea    D132(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <printf@plt>
  lea    D192(%rip),%rdi
  call   <printf@plt>
  lea    D353(%rip),%rdi
  call   <printf@plt>
  xor    %eax,%eax
  lea    0xc(%rsp),%rsi
  lea    D87(%rip),%rdi
  call   <scanf@plt>
  cmpl   $0x9,0xc(%rsp)
  ja     L45
  mov    0xc(%rsp),%eax
  lea    D307(%rip),%rdx
  movslq (%rdx,%rax,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  nopw   0x0(%rax,%rax,1)
L45:
  lea    D76(%rip),%rdi
  call   <printf@plt>
  nopl   0x0(%rax)
L88:
  mov    0xb8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L40
  add    $0xc8,%rsp
  xor    %eax,%eax
  pop    %rbp
  pop    %r12
  ret
  nopl   0x0(%rax)
  lea    D209(%rip),%rdi
  call   <printf@plt>
  jmp    L88
  cs nopw 0x0(%rax,%rax,1)
  lea    D34(%rip),%rdi
  call   <printf@plt>
  lea    D337(%rip),%rdi
  call   <system@plt>
  xor    %eax,%eax
  call   <getchar@plt>
  lea    D212(%rip),%rdi
  call   <printf@plt>
  xor    %eax,%eax
  call   <getchar@plt>
  xor    %eax,%eax
  call   <apkMenu>
  jmp    L88
  nopl   0x0(%rax,%rax,1)
  lea    D40(%rip),%rdi
  call   <printf@plt>
  lea    D224(%rip),%rdi
  call   <system@plt>
  lea    D48(%rip),%rdi
  call   <system@plt>
  lea    D206(%rip),%rdi
  call   <system@plt>
  lea    D207(%rip),%rdi
  call   <printf@plt>
  xor    %eax,%eax
  call   <getchar@plt>
  xor    %eax,%eax
  call   <getchar@plt>
  xor    %eax,%eax
  call   <apkMenu>
  jmp    L88
  cs nopw 0x0(%rax,%rax,1)
  lea    D236(%rip),%rdi
  lea    0x10(%rsp),%r12
  call   <printf@plt>
  mov    %r12,%rsi
  xor    %eax,%eax
  lea    0x30(%rsp),%rbp
  lea    D324(%rip),%rdi
  call   <scanf@plt>
  mov    %r12,%rdx
  lea    D107(%rip),%rsi
L39:
  mov    %rbp,%rdi
  call   <sprintf@plt>
  mov    %rbp,%rdi
  call   <system@plt>
  xor    %eax,%eax
  call   <apkMenu>
  jmp    L88
  nopl   (%rax)
  lea    D110(%rip),%rdi
  lea    0x10(%rsp),%r12
  call   <printf@plt>
  mov    %r12,%rsi
  xor    %eax,%eax
  lea    0x30(%rsp),%rbp
  lea    D324(%rip),%rdi
  call   <scanf@plt>
  mov    %r12,%rdx
  lea    D64(%rip),%rsi
  jmp    L39
  nopl   0x0(%rax,%rax,1)
  lea    D275(%rip),%rdi
  lea    0x10(%rsp),%r12
  call   <printf@plt>
  mov    %r12,%rsi
  xor    %eax,%eax
  lea    0x30(%rsp),%rbp
  lea    D324(%rip),%rdi
  call   <scanf@plt>
  mov    %r12,%rdx
  lea    D245(%rip),%rsi
  jmp    L39
  xchg   %ax,%ax
  lea    D369(%rip),%rdi
  call   <printf@plt>
  lea    D303(%rip),%rdi
  call   <printf@plt>
  lea    D102(%rip),%rdi
  call   <printf@plt>
  lea    D169(%rip),%rdi
  call   <printf@plt>
  lea    D293(%rip),%rdi
  call   <printf@plt>
  jmp    L88
L40:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: extract_symbolic_data
arguments: label: D346
type_infered: string
name: extract_symbolic_data
arguments: label: D30
type_infered: string
name: extract_symbolic_data
arguments: label: D140
type_infered: string
name: extract_symbolic_data
arguments: label: D153
type_infered: string
name: extract_symbolic_data
arguments: label: D196
type_infered: string
name: extract_symbolic_data
arguments: label: D77
type_infered: string
name: extract_symbolic_data
arguments: label: D238
type_infered: string
name: extract_symbolic_data
arguments: label: D225
type_infered: string
name: extract_symbolic_data
arguments: label: D132
type_infered: string
name: extract_symbolic_data
arguments: label: D192
type_infered: string
name: extract_symbolic_data
arguments: label: D353
type_infered: string
name: extract_symbolic_data
arguments: label: D87
type_infered: string
name: extract_symbolic_data
arguments: label: D76
type_infered: string
name: extract_symbolic_data
arguments: label: D209
type_infered: string
name: extract_symbolic_data
arguments: label: D34
type_infered: string
name: extract_symbolic_data
arguments: label: D337
type_infered: string
name: extract_symbolic_data
arguments: label: D212
type_infered: string
name: extract_symbolic_data
arguments: label: D40
type_infered: string
name: extract_symbolic_data
arguments: label: D224
type_infered: string
name: extract_symbolic_data
arguments: label: D48
type_infered: string
name: extract_symbolic_data
arguments: label: D206
type_infered: string
name: extract_symbolic_data
arguments: label: D207
type_infered: string
name: extract_symbolic_data
arguments: label: D236
type_infered: string
name: extract_symbolic_data
arguments: label: D324
type_infered: string
name: extract_symbolic_data
arguments: label: D107
type_infered: string
name: extract_symbolic_data
arguments: label: D110
type_infered: string
name: extract_symbolic_data
arguments: label: D64
type_infered: string
name: extract_symbolic_data
arguments: label: D275
type_infered: string
name: extract_symbolic_data
arguments: label: D245
type_infered: string
name: extract_symbolic_data
arguments: label: D369
type_infered: string
name: extract_symbolic_data
arguments: label: D303
type_infered: string
name: extract_symbolic_data
arguments: label: D102
type_infered: string
name: extract_symbolic_data
arguments: label: D169
type_infered: string
name: extract_symbolic_data
arguments: label: D293
type_infered: string

tool: D346: @cls||clear

tool: D30: =======================================


tool: D140:    APK Menu                        |


tool: D153: | [1] Create workspace for APK     |


tool: D196: | [2] Install apktool              |


tool: D77: | [3] Decompile .apk               |


tool: D238: | [4] Build .apk                   |


tool: D225: | [5] Deodex .apk                  |


tool: D132: | [9] Information                  |


tool: D192: [0] Exit


tool: D353: 
What you want?: 

tool: D87: %d

tool: D76: Make your choice!


tool: D209: Goodbye ;P


tool: D34: Creating workspace.


tool: D337: cd ~/Universal_Tool/ && mkdir Decompiled_Files Deodexed_Files

tool: D212: Done! [Press Enter]


tool: D40: 
Installing apktool


tool: D224: sudo apt-get install lib32ncurses5 -y

tool: D48: cd ~/*/insides/apktool/ && sudo cp apktool.jar /usr/local/bin && sudo cp apktool /usr/local/bin

tool: D206: cd /usr/local/bin/ && sudo chmod a+x apktool

tool: D207: 
Apktool has been installed. [Press Enter]


tool: D236: Enter name of your .apk, to decompile it: 

tool: D324: %s

tool: D107: cd ~/*/Decompiled_Files/ && apktool d %s

tool: D110: Enter name of your decompiled apk folder, to build it: 

tool: D64: cd ~/*/Decompiled_Files/ && apktool b %s

tool: D275: Enter name of your .apk, to deodex it: 

tool: D245: cd ~/*/Deodexed_Files/ && java -jar baksmali.jar deodex %s

tool: D369: [1] Create workspace folders [Decompiled_Files, Deodexed_Files] to work with apktool.


tool: D303: [2] Install apktool, IMPORTANT!


tool: D102: [3] Decompiling .apk from executable to source code.


tool: D169: [4] Build .apk from source code to executable (.apk)


tool: D293: [5] Deodex .apk - if you have .odex file with your .apk, you must replace it to 'Deodexed_Files' folder to deodexing


assistant: ```c
int apkMenu() {
  int user_key;
  system("@cls||clear");
  printf("=======================================\n");
  printf("   APK Menu                        |\n");
  printf("=======================================\n");
  printf("| [1] Create workspace for APK     |\n");
  printf("| [2] Install apktool              |\n");
  printf("| [3] Decompile .apk               |\n");
  printf("| [4] Build .apk                   |\n");
  printf("| [5] Deodex .apk                  |\n");
  printf("| [9] Information                  |\n");
  printf("=======================================\n");
  printf("[0] Exit\n");
  printf("\nWhat you want?: ");
  scanf("%d", &user_key);
  switch (user_key) {
  case 9: {
    printf("[1] Create workspace folders [Decompiled_Files, Deodexed_Files] to work with apktool.\n");
    printf("[2] Install apktool, IMPORTANT!\n");
    printf("[3] Decompiling .apk from executable to source code.\n");
    printf("[4] Build .apk from source code to executable (.apk)\n");
    printf("[5] Deodex .apk - if you have .odex file with your .apk, you must replace it to 'Deodexed_Files' folder to deodexing\n");
    break;
  }
  case 0:
    printf("Goodbye ;P\n");
    return 0;
    break;
  case 1:
    printf("Creating workspace.\n");
    system("cd ~/Universal_Tool/ && mkdir Decompiled_Files Deodexed_Files");
    getchar();
    printf("Done! [Press Enter]\n");
    getchar();
    apkMenu();
    break;
  case 2: {
    printf("\nInstalling apktool\n");
    system("sudo apt-get install lib32ncurses5 -y");
    system("cd ~/*/insides/apktool/ && sudo cp apktool.jar /usr/local/bin && sudo cp apktool /usr/local/bin");
    system("cd /usr/local/bin/ && sudo chmod a+x apktool");
    printf("\nApktool has been installed. [Press Enter]\n");
    getchar();
    getchar();
    apkMenu();
    break;
  }
  case 3: {
    char param[128];
    char apkd_name[32];
    printf("Enter name of your .apk, to decompile it: ");
    scanf("%s", apkd_name);
    sprintf(param, "cd ~/*/Decompiled_Files/ && apktool d %s", apkd_name);
    system(param);
    apkMenu();
    break;
  }
  case 4: {
    char param[128];
    char apkb_name[32];
    printf("Enter name of your decompiled apk folder, to build it: ");
    scanf("%s", apkb_name);
    sprintf(param, "cd ~/*/Decompiled_Files/ && apktool b %s", apkb_name);
    system(param);
    apkMenu();
    break;
  }
  case 5: {
    char param[128];
    char apkdex_name[32];
    printf("Enter name of your .apk, to deodex it: ");
    scanf("%s", apkdex_name);
    sprintf(param, "cd ~/*/Deodexed_Files/ && java -jar baksmali.jar deodex %s", apkdex_name);
    system(param);
    apkMenu();
    break;
  }
  default:
    printf("Make your choice!\n");
  }
  return 0;
}
```