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

```asm
<GetLmode>:
  endbr64
  push   %rbp
  lea    D150(%rip),%rsi
  mov    %rdi,%rbp
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x3e7,%eax
  test   %r8,%r8
  je     L73
  lea    D131(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L150
  lea    D283(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L150
  lea    D270(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x2,%eax
  test   %r8,%r8
  je     L73
  lea    D96(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x3,%eax
  test   %r8,%r8
  je     L73
  lea    D200(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x5,%eax
  test   %r8,%r8
  je     L73
  lea    D115(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L75
  lea    D75(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L75
  lea    D284(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0xd,%eax
  test   %r8,%r8
  je     L73
  lea    D158(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L57
  lea    D106(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L57
  lea    D16(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L57
  lea    D95(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L126
  lea    D65(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L126
  lea    D68(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x10,%eax
  test   %r8,%r8
  je     L73
  lea    D86(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x11,%eax
  test   %r8,%r8
  je     L73
  lea    D159(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L125
  lea    D58(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L125
  lea    D72(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L125
  lea    D277(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L184
  lea    D62(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L142
  lea    D223(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L21
  lea    D151(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L21
  lea    D220(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L130
  lea    D300(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L7
  lea    D8(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L222
  lea    D107(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L249
  lea    D20(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L132
  lea    D13(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L168
  lea    D269(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L242
  lea    D203(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  cmp    $0x1,%rax
  sbb    %eax,%eax
  and    $0x34,%eax
L73:
  pop    %rbp
  ret
  nop
L150:
  mov    $0x63,%eax
  pop    %rbp
  ret
  nopw   0x0(%rax,%rax,1)
L75:
  mov    $0xc,%eax
  pop    %rbp
  ret
  nopw   0x0(%rax,%rax,1)
L57:
  mov    $0xe,%eax
  pop    %rbp
  ret
L126:
  mov    $0xf,%eax
  pop    %rbp
  ret
L125:
  mov    $0x12,%eax
  pop    %rbp
  ret
L184:
  mov    $0x15,%eax
  pop    %rbp
  ret
L242:
  mov    $0x33,%eax
  pop    %rbp
  ret
L168:
  mov    $0x1d,%eax
  pop    %rbp
  ret
L132:
  mov    $0x1c,%eax
  pop    %rbp
  ret
L249:
  mov    $0x1b,%eax
  pop    %rbp
  ret
L222:
  mov    $0x1a,%eax
  pop    %rbp
  ret
L7:
  mov    $0x19,%eax
  pop    %rbp
  ret
L130:
  mov    $0x18,%eax
  pop    %rbp
  ret
L21:
  mov    $0x17,%eax
  pop    %rbp
  ret
L142:
  mov    $0x16,%eax
  pop    %rbp
  ret
```

tool_calls: name: retrieve_data
arguments: data_tag: D150
data_type: string
name: retrieve_data
arguments: data_tag: D131
data_type: string
name: retrieve_data
arguments: data_tag: D283
data_type: string
name: retrieve_data
arguments: data_tag: D270
data_type: string
name: retrieve_data
arguments: data_tag: D96
data_type: string
name: retrieve_data
arguments: data_tag: D200
data_type: string
name: retrieve_data
arguments: data_tag: D115
data_type: string
name: retrieve_data
arguments: data_tag: D75
data_type: string
name: retrieve_data
arguments: data_tag: D284
data_type: string
name: retrieve_data
arguments: data_tag: D158
data_type: string
name: retrieve_data
arguments: data_tag: D106
data_type: string
name: retrieve_data
arguments: data_tag: D16
data_type: string
name: retrieve_data
arguments: data_tag: D95
data_type: string
name: retrieve_data
arguments: data_tag: D65
data_type: string
name: retrieve_data
arguments: data_tag: D68
data_type: string
name: retrieve_data
arguments: data_tag: D86
data_type: string
name: retrieve_data
arguments: data_tag: D159
data_type: string
name: retrieve_data
arguments: data_tag: D58
data_type: string
name: retrieve_data
arguments: data_tag: D72
data_type: string
name: retrieve_data
arguments: data_tag: D277
data_type: string
name: retrieve_data
arguments: data_tag: D62
data_type: string
name: retrieve_data
arguments: data_tag: D223
data_type: string
name: retrieve_data
arguments: data_tag: D151
data_type: string
name: retrieve_data
arguments: data_tag: D220
data_type: string
name: retrieve_data
arguments: data_tag: D300
data_type: string
name: retrieve_data
arguments: data_tag: D8
data_type: string
name: retrieve_data
arguments: data_tag: D107
data_type: string
name: retrieve_data
arguments: data_tag: D20
data_type: string
name: retrieve_data
arguments: data_tag: D13
data_type: string
name: retrieve_data
arguments: data_tag: D269
data_type: string
name: retrieve_data
arguments: data_tag: D203
data_type: string

tool: D150: help

tool: D131: exit

tool: D283: quit

tool: D270: pwd

tool: D96: cd

tool: D200: history

tool: D115: cluster

tool: D75: status

tool: D284: status2

tool: D158: perf

tool: D106: df

tool: D16: vmstat

tool: D95: ps

tool: D65: process

tool: D68: mem

tool: D86: cache

tool: D159: vol

tool: D58: volume

tool: D72: disk

tool: D277: mkdir

tool: D62: rmdir

tool: D223: ls

tool: D151: dir

tool: D220: stat

tool: D300: mv

tool: D8: rm

tool: D107: chmod

tool: D20: chown

tool: D13: chgrp

tool: D269: get

tool: D203: put

assistant: ```c
int GetLmode(char *para) {
  if (strcmp(para, "help") == 0) {
    return 999;
  }
  if (strcmp(para, "exit") == 0) {
    return 99;
  }
  if (strcmp(para, "quit") == 0) {
    return 99;
  }
  if (strcmp(para, "pwd") == 0) {
    return 2;
  }
  if (strcmp(para, "cd") == 0) {
    return 3;
  }
  if (strcmp(para, "history") == 0) {
    return 5;
  }
  if (strcmp(para, "cluster") == 0) {
    return 12;
  }
  if (strcmp(para, "status") == 0) {
    return 12;
  }
  if (strcmp(para, "status2") == 0) {
    return 13;
  }
  if (strcmp(para, "perf") == 0) {
    return 14;
  }
  if (strcmp(para, "df") == 0) {
    return 14;
  }
  if (strcmp(para, "vmstat") == 0) {
    return 14;
  }
  if (strcmp(para, "ps") == 0) {
    return 15;
  }
  if (strcmp(para, "process") == 0) {
    return 15;
  }
  if (strcmp(para, "mem") == 0) {
    return 16;
  }
  if (strcmp(para, "cache") == 0) {
    return 17;
  }
  if (strcmp(para, "vol") == 0) {
    return 18;
  }
  if (strcmp(para, "volume") == 0) {
    return 18;
  }
  if (strcmp(para, "disk") == 0) {
    return 18;
  }
  if (strcmp(para, "mkdir") == 0) {
    return 21;
  }
  if (strcmp(para, "rmdir") == 0) {
    return 22;
  }
  if (strcmp(para, "ls") == 0) {
    return 23;
  }
  if (strcmp(para, "dir") == 0) {
    return 23;
  }
  if (strcmp(para, "stat") == 0) {
    return 24;
  }
  if (strcmp(para, "mv") == 0) {
    return 25;
  }
  if (strcmp(para, "rm") == 0) {
    return 26;
  }
  if (strcmp(para, "chmod") == 0) {
    return 27;
  }
  if (strcmp(para, "chown") == 0) {
    return 28;
  }
  if (strcmp(para, "chgrp") == 0) {
    return 29;
  }
  if (strcmp(para, "get") == 0) {
    return 51;
  }
  if (strcmp(para, "put") == 0) {
    return 52;
  }
  return 0;
}
```