user: 下面的汇编指令对应的C源代码是什么:

```asm
<apkMenu>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0xc0,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  lea    D321(%rip),%rax
  mov    %rax,%rdi
  call   <system@plt>
  lea    D398(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D131(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D398(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D209(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D177(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D42(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D233(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D319(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D94(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D398(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D104(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D205(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    -0xb4(%rbp),%rax
  mov    %rax,%rsi
  lea    D31(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  mov    -0xb4(%rbp),%eax
  cmp    $0x9,%eax
  ja     L40
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D223(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D223(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D121(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D370(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D334(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D276(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D346(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L21
  lea    D65(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    $0x0,%eax
  jmp    L19
  lea    D326(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D126(%rip),%rax
  mov    %rax,%rdi
  call   <system@plt>
  mov    $0x0,%eax
  call   <getchar@plt>
  lea    D130(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    $0x0,%eax
  call   <getchar@plt>
  mov    $0x0,%eax
  call   <apkMenu>
  jmp    L21
  lea    D297(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D258(%rip),%rax
  mov    %rax,%rdi
  call   <system@plt>
  lea    D114(%rip),%rax
  mov    %rax,%rdi
  call   <system@plt>
  lea    D49(%rip),%rax
  mov    %rax,%rdi
  call   <system@plt>
  lea    D85(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    $0x0,%eax
  call   <getchar@plt>
  mov    $0x0,%eax
  call   <getchar@plt>
  mov    $0x0,%eax
  call   <apkMenu>
  jmp    L21
  lea    D44(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    -0xb0(%rbp),%rax
  mov    %rax,%rsi
  lea    D148(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  lea    -0xb0(%rbp),%rdx
  lea    -0x90(%rbp),%rax
  lea    D275(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x90(%rbp),%rax
  mov    %rax,%rdi
  call   <system@plt>
  mov    $0x0,%eax
  call   <apkMenu>
  jmp    L21
  lea    D145(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    -0xb0(%rbp),%rax
  mov    %rax,%rsi
  lea    D148(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  lea    -0xb0(%rbp),%rdx
  lea    -0x90(%rbp),%rax
  lea    D36(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x90(%rbp),%rax
  mov    %rax,%rdi
  call   <system@plt>
  mov    $0x0,%eax
  call   <apkMenu>
  jmp    L21
  lea    D339(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    -0xb0(%rbp),%rax
  mov    %rax,%rsi
  lea    D148(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  lea    -0xb0(%rbp),%rdx
  lea    -0x90(%rbp),%rax
  lea    D253(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  lea    -0x90(%rbp),%rax
  mov    %rax,%rdi
  call   <system@plt>
  mov    $0x0,%eax
  call   <apkMenu>
  jmp    L21
L40:
  lea    D106(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L21:
  mov    $0x0,%eax
L19:
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L39
  call   <__stack_chk_fail@plt>
L39:
  leave
  ret
```

tool_calls: name: parse_data
arguments: label: D321
data_type: string
name: parse_data
arguments: label: D398
data_type: string
name: parse_data
arguments: label: D131
data_type: string
name: parse_data
arguments: label: D209
data_type: string
name: parse_data
arguments: label: D177
data_type: string
name: parse_data
arguments: label: D42
data_type: string
name: parse_data
arguments: label: D233
data_type: string
name: parse_data
arguments: label: D319
data_type: string
name: parse_data
arguments: label: D94
data_type: string
name: parse_data
arguments: label: D104
data_type: string
name: parse_data
arguments: label: D205
data_type: string
name: parse_data
arguments: label: D31
data_type: string
name: parse_data
arguments: label: D121
data_type: string
name: parse_data
arguments: label: D370
data_type: string
name: parse_data
arguments: label: D334
data_type: string
name: parse_data
arguments: label: D276
data_type: string
name: parse_data
arguments: label: D346
data_type: string
name: parse_data
arguments: label: D65
data_type: string
name: parse_data
arguments: label: D326
data_type: string
name: parse_data
arguments: label: D126
data_type: string
name: parse_data
arguments: label: D130
data_type: string
name: parse_data
arguments: label: D297
data_type: string
name: parse_data
arguments: label: D258
data_type: string
name: parse_data
arguments: label: D114
data_type: string
name: parse_data
arguments: label: D49
data_type: string
name: parse_data
arguments: label: D85
data_type: string
name: parse_data
arguments: label: D44
data_type: string
name: parse_data
arguments: label: D148
data_type: string
name: parse_data
arguments: label: D275
data_type: string
name: parse_data
arguments: label: D145
data_type: string
name: parse_data
arguments: label: D36
data_type: string
name: parse_data
arguments: label: D339
data_type: string
name: parse_data
arguments: label: D253
data_type: string
name: parse_data
arguments: label: D106
data_type: string

tool: D321: @cls||clear

tool: D398: =======================================


tool: D131:    APK Menu                        |


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


tool: D177: | [2] Install apktool              |


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


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


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


tool: D94: | [9] Information                  |


tool: D104: [0] Exit


tool: D205: 
What you want?: 

tool: D31: %d

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


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


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


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


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


tool: D65: Goodbye ;P


tool: D326: Creating workspace.


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

tool: D130: Done! [Press Enter]


tool: D297: 
Installing apktool


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

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

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

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


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

tool: D148: %s

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

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

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

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

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

tool: D106: Make your choice!


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;
}
```