user: 请将以下的汇编代码转换成C语言代码:

```asm
<GetLmode>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    -0x8(%rbp),%rax
  lea    D76(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L414
  mov    $0x3e7,%eax
  jmp    L232
L414:
  mov    -0x8(%rbp),%rax
  lea    D290(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L283
  mov    $0x63,%eax
  jmp    L232
L283:
  mov    -0x8(%rbp),%rax
  lea    D286(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L507
  mov    $0x63,%eax
  jmp    L232
L507:
  mov    -0x8(%rbp),%rax
  lea    D99(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L402
  mov    $0x2,%eax
  jmp    L232
L402:
  mov    -0x8(%rbp),%rax
  lea    D124(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L493
  mov    $0x3,%eax
  jmp    L232
L493:
  mov    -0x8(%rbp),%rax
  lea    D187(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L560
  mov    $0x5,%eax
  jmp    L232
L560:
  mov    -0x8(%rbp),%rax
  lea    D2(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L282
  mov    $0xc,%eax
  jmp    L232
L282:
  mov    -0x8(%rbp),%rax
  lea    D166(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L274
  mov    $0xc,%eax
  jmp    L232
L274:
  mov    -0x8(%rbp),%rax
  lea    D18(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L400
  mov    $0xd,%eax
  jmp    L232
L400:
  mov    -0x8(%rbp),%rax
  lea    D150(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L601
  mov    $0xe,%eax
  jmp    L232
L601:
  mov    -0x8(%rbp),%rax
  lea    D7(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L380
  mov    $0xe,%eax
  jmp    L232
L380:
  mov    -0x8(%rbp),%rax
  lea    D232(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L407
  mov    $0xe,%eax
  jmp    L232
L407:
  mov    -0x8(%rbp),%rax
  lea    D279(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L150
  mov    $0xf,%eax
  jmp    L232
L150:
  mov    -0x8(%rbp),%rax
  lea    D308(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L154
  mov    $0xf,%eax
  jmp    L232
L154:
  mov    -0x8(%rbp),%rax
  lea    D253(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L246
  mov    $0x10,%eax
  jmp    L232
L246:
  mov    -0x8(%rbp),%rax
  lea    D203(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L490
  mov    $0x11,%eax
  jmp    L232
L490:
  mov    -0x8(%rbp),%rax
  lea    D264(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L322
  mov    $0x12,%eax
  jmp    L232
L322:
  mov    -0x8(%rbp),%rax
  lea    D46(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L584
  mov    $0x12,%eax
  jmp    L232
L584:
  mov    -0x8(%rbp),%rax
  lea    D112(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L553
  mov    $0x12,%eax
  jmp    L232
L553:
  mov    -0x8(%rbp),%rax
  lea    D179(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L562
  mov    $0x15,%eax
  jmp    L232
L562:
  mov    -0x8(%rbp),%rax
  lea    D153(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L4
  mov    $0x16,%eax
  jmp    L232
L4:
  mov    -0x8(%rbp),%rax
  lea    D115(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L357
  mov    $0x17,%eax
  jmp    L232
L357:
  mov    -0x8(%rbp),%rax
  lea    D191(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L139
  mov    $0x17,%eax
  jmp    L232
L139:
  mov    -0x8(%rbp),%rax
  lea    D65(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L428
  mov    $0x18,%eax
  jmp    L232
L428:
  mov    -0x8(%rbp),%rax
  lea    D212(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L503
  mov    $0x19,%eax
  jmp    L232
L503:
  mov    -0x8(%rbp),%rax
  lea    D236(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L483
  mov    $0x1a,%eax
  jmp    L232
L483:
  mov    -0x8(%rbp),%rax
  lea    D175(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L227
  mov    $0x1b,%eax
  jmp    L232
L227:
  mov    -0x8(%rbp),%rax
  lea    D241(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L222
  mov    $0x1c,%eax
  jmp    L232
L222:
  mov    -0x8(%rbp),%rax
  lea    D21(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L78
  mov    $0x1d,%eax
  jmp    L232
L78:
  mov    -0x8(%rbp),%rax
  lea    D54(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L505
  mov    $0x33,%eax
  jmp    L232
L505:
  mov    -0x8(%rbp),%rax
  lea    D228(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L366
  mov    $0x34,%eax
  jmp    L232
L366:
  mov    $0x0,%eax
L232:
  leave
  ret
```

tool_calls: name: unpack_data
arguments: label: D76
type_guessed: string
name: unpack_data
arguments: label: D290
type_guessed: string
name: unpack_data
arguments: label: D286
type_guessed: string
name: unpack_data
arguments: label: D99
type_guessed: string
name: unpack_data
arguments: label: D124
type_guessed: string
name: unpack_data
arguments: label: D187
type_guessed: string
name: unpack_data
arguments: label: D2
type_guessed: string
name: unpack_data
arguments: label: D166
type_guessed: string
name: unpack_data
arguments: label: D18
type_guessed: string
name: unpack_data
arguments: label: D150
type_guessed: string
name: unpack_data
arguments: label: D7
type_guessed: string
name: unpack_data
arguments: label: D232
type_guessed: string
name: unpack_data
arguments: label: D279
type_guessed: string
name: unpack_data
arguments: label: D308
type_guessed: string
name: unpack_data
arguments: label: D253
type_guessed: string
name: unpack_data
arguments: label: D203
type_guessed: string
name: unpack_data
arguments: label: D264
type_guessed: string
name: unpack_data
arguments: label: D46
type_guessed: string
name: unpack_data
arguments: label: D112
type_guessed: string
name: unpack_data
arguments: label: D179
type_guessed: string
name: unpack_data
arguments: label: D153
type_guessed: string
name: unpack_data
arguments: label: D115
type_guessed: string
name: unpack_data
arguments: label: D191
type_guessed: string
name: unpack_data
arguments: label: D65
type_guessed: string
name: unpack_data
arguments: label: D212
type_guessed: string
name: unpack_data
arguments: label: D236
type_guessed: string
name: unpack_data
arguments: label: D175
type_guessed: string
name: unpack_data
arguments: label: D241
type_guessed: string
name: unpack_data
arguments: label: D21
type_guessed: string
name: unpack_data
arguments: label: D54
type_guessed: string
name: unpack_data
arguments: label: D228
type_guessed: string

tool: D76: help

tool: D290: exit

tool: D286: quit

tool: D99: pwd

tool: D124: cd

tool: D187: history

tool: D2: cluster

tool: D166: status

tool: D18: status2

tool: D150: perf

tool: D7: df

tool: D232: vmstat

tool: D279: ps

tool: D308: process

tool: D253: mem

tool: D203: cache

tool: D264: vol

tool: D46: volume

tool: D112: disk

tool: D179: mkdir

tool: D153: rmdir

tool: D115: ls

tool: D191: dir

tool: D65: stat

tool: D212: mv

tool: D236: rm

tool: D175: chmod

tool: D241: chown

tool: D21: chgrp

tool: D54: get

tool: D228: 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;
}
```