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

```asm
<GetConstraintTypeFromTypeName>:
  endbr64
  push   %rbp
  lea    D0(%rip),%rsi
  mov    %rdi,%rbp
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x2,%eax
  test   %r8,%r8
  je     L61
  lea    D42(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x3,%eax
  test   %r8,%r8
  je     L61
  lea    D56(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0xb5,%eax
  test   %r8,%r8
  je     L61
  lea    D19(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x1,%eax
  test   %r8,%r8
  jne    L59
L61:
  pop    %rbp
  ret
  nopw   0x0(%rax,%rax,1)
L59:
  lea    D59(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  xor    %eax,%eax
  test   %r8,%r8
  je     L61
  lea    D40(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0xb4,%eax
  test   %r8,%r8
  je     L61
  lea    D7(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x8,%eax
  test   %r8,%r8
  je     L61
  lea    D47(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x7,%eax
  test   %r8,%r8
  je     L61
  lea    D72(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0xb6,%eax
  test   %r8,%r8
  je     L61
  lea    D58(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x5,%eax
  test   %r8,%r8
  je     L61
  mov    %rbp,%rdi
  lea    D23(%rip),%rsi
  call   <strcmp@plt>
  pop    %rbp
  cmp    $0x1,%rax
  sbb    %eax,%eax
  and    $0x7,%eax
  sub    $0x1,%eax
  ret
```

tool_calls: name: extract_symbolic_data
arguments: tag: D0
type_guessed: string
name: extract_symbolic_data
arguments: tag: D42
type_guessed: string
name: extract_symbolic_data
arguments: tag: D56
type_guessed: string
name: extract_symbolic_data
arguments: tag: D19
type_guessed: string
name: extract_symbolic_data
arguments: tag: D59
type_guessed: string
name: extract_symbolic_data
arguments: tag: D40
type_guessed: string
name: extract_symbolic_data
arguments: tag: D7
type_guessed: string
name: extract_symbolic_data
arguments: tag: D47
type_guessed: string
name: extract_symbolic_data
arguments: tag: D72
type_guessed: string
name: extract_symbolic_data
arguments: tag: D58
type_guessed: string
name: extract_symbolic_data
arguments: tag: D23
type_guessed: string

tool: D0: SYMBOL

tool: D42: STRING

tool: D56: LEXEME

tool: D19: INTEGER

tool: D59: FLOAT

tool: D40: NUMBER

tool: D7: INSTANCE-NAME

tool: D47: INSTANCE-ADDRESS

tool: D72: INSTANCE

tool: D58: EXTERNAL-ADDRESS

tool: D23: FACT-ADDRESS

assistant: ```c
int GetConstraintTypeFromTypeName(const char *constraintName) {
  if (strcmp(constraintName, "SYMBOL") == 0)
    return (2);
  else if (strcmp(constraintName, "STRING") == 0)
    return (3);
  else if (strcmp(constraintName, "LEXEME") == 0)
    return (181);
  else if (strcmp(constraintName, "INTEGER") == 0)
    return (1);
  else if (strcmp(constraintName, "FLOAT") == 0)
    return (0);
  else if (strcmp(constraintName, "NUMBER") == 0)
    return (180);
  else if (strcmp(constraintName, "INSTANCE-NAME") == 0)
    return (8);
  else if (strcmp(constraintName, "INSTANCE-ADDRESS") == 0)
    return (7);
  else if (strcmp(constraintName, "INSTANCE") == 0)
    return (182);
  else if (strcmp(constraintName, "EXTERNAL-ADDRESS") == 0)
    return (5);
  else if (strcmp(constraintName, "FACT-ADDRESS") == 0)
    return (6);
  return (-1);
}
```