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

```asm
<linsched_test_main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %edi,-0x4(%rbp)
  mov    %rsi,-0x10(%rbp)
  cmpl   $0x4,-0x4(%rbp)
  jne    L43
  mov    -0x10(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  lea    D36(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L43
  mov    -0x10(%rbp),%rdx
  mov    -0x4(%rbp),%eax
  mov    %rdx,%rsi
  mov    %eax,%edi
  call   <test_linsched_rand@plt>
  jmp    L120
L43:
  cmpl   $0x6,-0x4(%rbp)
  jne    L163
  mov    -0x10(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  lea    D15(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L163
  mov    -0x10(%rbp),%rdx
  mov    -0x4(%rbp),%eax
  mov    %rdx,%rsi
  mov    %eax,%edi
  call   <test_linsched_rand_range@plt>
  jmp    L120
L163:
  cmpl   $0x6,-0x4(%rbp)
  jne    L100
  mov    -0x10(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  lea    D3(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L100
  mov    -0x10(%rbp),%rdx
  mov    -0x4(%rbp),%eax
  mov    %rdx,%rsi
  mov    %eax,%edi
  call   <test_linsched_gaussian@plt>
  jmp    L120
L100:
  cmpl   $0x5,-0x4(%rbp)
  jne    L168
  mov    -0x10(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  lea    D19(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L168
  mov    -0x10(%rbp),%rdx
  mov    -0x4(%rbp),%eax
  mov    %rdx,%rsi
  mov    %eax,%edi
  call   <test_linsched_poisson@plt>
  jmp    L120
L168:
  cmpl   $0x5,-0x4(%rbp)
  jne    L18
  mov    -0x10(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  lea    D10(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L18
  mov    -0x10(%rbp),%rdx
  mov    -0x4(%rbp),%eax
  mov    %rdx,%rsi
  mov    %eax,%edi
  call   <test_linsched_exponential@plt>
  jmp    L120
L18:
  cmpl   $0x6,-0x4(%rbp)
  jne    L58
  mov    -0x10(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  lea    D45(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L58
  mov    -0x10(%rbp),%rdx
  mov    -0x4(%rbp),%eax
  mov    %rdx,%rsi
  mov    %eax,%edi
  call   <test_linsched_lognormal@plt>
  jmp    L120
L58:
  mov    -0x10(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,%rdi
  call   <print_usage@plt>
L120:
  mov    $0x0,%eax
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: tag: D36
type: string
name: extract_symbolic_data
arguments: tag: D15
type: string
name: extract_symbolic_data
arguments: tag: D3
type: string
name: extract_symbolic_data
arguments: tag: D19
type: string
name: extract_symbolic_data
arguments: tag: D10
type: string
name: extract_symbolic_data
arguments: tag: D45
type: string

tool: D36: rand

tool: D15: rand_range

tool: D3: gaussian

tool: D19: poisson

tool: D10: exp

tool: D45: lnorm

assistant: ```c
int linsched_test_main(int argc, char **argv) {
  if (argc == 4 && !strcmp(argv[1], "rand"))
    test_linsched_rand(argc, argv);
  else if (argc == 6 && !strcmp(argv[1], "rand_range"))
    test_linsched_rand_range(argc, argv);
  else if (argc == 6 && !strcmp(argv[1], "gaussian"))
    test_linsched_gaussian(argc, argv);
  else if (argc == 5 && !strcmp(argv[1], "poisson"))
    test_linsched_poisson(argc, argv);
  else if (argc == 5 && !strcmp(argv[1], "exp"))
    test_linsched_exponential(argc, argv);
  else if (argc == 6 && !strcmp(argv[1], "lnorm"))
    test_linsched_lognormal(argc, argv);
  else
    print_usage(argv[0]);
  return 0;
}
```