user: 请显示与下面列出的汇编代码相匹配的C语言实现：

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x90,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
L131:
  lea    -0x90(%rbp),%rax
  mov    %rax,%rsi
  lea    D84(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  lea    -0x90(%rbp),%rax
  lea    D114(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L27
  lea    D64(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L131
L27:
  lea    -0x90(%rbp),%rax
  lea    D24(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L62
  lea    D96(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L131
L62:
  lea    -0x90(%rbp),%rax
  lea    D117(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L0
  lea    D131(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L131
L0:
  lea    -0x90(%rbp),%rax
  lea    D89(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L117
  lea    D72(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L131
L117:
  lea    -0x90(%rbp),%rax
  lea    D3(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L143
  lea    D102(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L131
L143:
  lea    -0x90(%rbp),%rax
  lea    D21(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L139
  lea    D41(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L131
L139:
  lea    -0x90(%rbp),%rax
  lea    D7(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L101
  mov    $0x0,%edi
  call   <exit@plt>
  jmp    L131
L101:
  lea    D4(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L131
```

tool_calls: name: unpack_data
arguments: label: D84
type_guessed: string
name: unpack_data
arguments: label: D114
type_guessed: string
name: unpack_data
arguments: label: D64
type_guessed: string
name: unpack_data
arguments: label: D24
type_guessed: string
name: unpack_data
arguments: label: D96
type_guessed: string
name: unpack_data
arguments: label: D117
type_guessed: string
name: unpack_data
arguments: label: D131
type_guessed: string
name: unpack_data
arguments: label: D89
type_guessed: string
name: unpack_data
arguments: label: D72
type_guessed: string
name: unpack_data
arguments: label: D3
type_guessed: string
name: unpack_data
arguments: label: D102
type_guessed: string
name: unpack_data
arguments: label: D21
type_guessed: string
name: unpack_data
arguments: label: D41
type_guessed: string
name: unpack_data
arguments: label: D7
type_guessed: string
name: unpack_data
arguments: label: D4
type_guessed: string

tool: D84: %s

tool: D114: help

tool: D64: This is help cmd!


tool: D24: others

tool: D96: This is others cmd!


tool: D117: hello

tool: D131: This is hello cmd!


tool: D89: greet

tool: D72: This is greet cmd!


tool: D3: square

tool: D102: This is square cmd!


tool: D21: div

tool: D41: This is div cmd!


tool: D7: quit

tool: D4: wrong cmd!


assistant: ```c
int main() {
  char cmd[128];
  while (1) {
    scanf("%s", cmd);
    if (strcmp(cmd, "help") == 0) {
      printf("This is help cmd!\n");
    } else if (strcmp(cmd, "others") == 0) {
      printf("This is others cmd!\n");
    } else if (strcmp(cmd, "hello") == 0) {
      printf("This is hello cmd!\n");
    } else if (strcmp(cmd, "greet") == 0) {
      printf("This is greet cmd!\n");
    } else if (strcmp(cmd, "square") == 0) {
      printf("This is square cmd!\n");
    } else if (strcmp(cmd, "div") == 0) {
      printf("This is div cmd!\n");
    } else if (strcmp(cmd, "quit") == 0) {
      exit(0);
    } else {
      printf("wrong cmd!\n");
    }
  }
}
```