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

```asm
<EquationNeedsFields>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    $0x0,%eax
  call   <EQ_field_active@plt>
  test   %rax,%rax
  je     L228
  mov    $0x0,%eax
  jmp    L19
L228:
  mov    -0x8(%rbp),%rax
  lea    D138(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L310
  mov    $0x1,%eax
  jmp    L19
L310:
  mov    -0x8(%rbp),%rax
  lea    D168(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L258
  mov    $0x1,%eax
  jmp    L19
L258:
  mov    -0x8(%rbp),%rax
  lea    D37(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L71
  mov    $0x1,%eax
  jmp    L19
L71:
  mov    -0x8(%rbp),%rax
  lea    D148(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L368
  mov    $0x1,%eax
  jmp    L19
L368:
  mov    -0x8(%rbp),%rax
  lea    D154(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L402
  mov    $0x1,%eax
  jmp    L19
L402:
  mov    -0x8(%rbp),%rax
  lea    D189(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L208
  mov    $0x1,%eax
  jmp    L19
L208:
  mov    -0x8(%rbp),%rax
  lea    D174(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L394
  mov    $0x1,%eax
  jmp    L19
L394:
  mov    -0x8(%rbp),%rax
  lea    D187(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L116
  mov    $0x1,%eax
  jmp    L19
L116:
  mov    -0x8(%rbp),%rax
  lea    D110(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L98
  mov    $0x1,%eax
  jmp    L19
L98:
  mov    -0x8(%rbp),%rax
  lea    D87(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L224
  mov    $0x1,%eax
  jmp    L19
L224:
  mov    -0x8(%rbp),%rax
  lea    D180(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L85
  mov    $0x1,%eax
  jmp    L19
L85:
  mov    -0x8(%rbp),%rax
  lea    D32(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L129
  mov    $0x1,%eax
  jmp    L19
L129:
  mov    -0x8(%rbp),%rax
  lea    D188(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L316
  mov    $0x1,%eax
  jmp    L19
L316:
  mov    -0x8(%rbp),%rax
  lea    D11(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  jne    L177
  mov    -0x8(%rbp),%rax
  lea    D33(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L14
L177:
  mov    $0x1,%eax
  jmp    L19
L14:
  mov    -0x8(%rbp),%rax
  lea    D53(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L328
  mov    $0x1,%eax
  jmp    L19
L328:
  mov    -0x8(%rbp),%rax
  lea    D8(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L112
  mov    $0x1,%eax
  jmp    L19
L112:
  mov    -0x8(%rbp),%rax
  lea    D26(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L49
  mov    $0x1,%eax
  jmp    L19
L49:
  mov    -0x8(%rbp),%rax
  lea    D47(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L207
  mov    $0x1,%eax
  jmp    L19
L207:
  mov    -0x8(%rbp),%rax
  lea    D165(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L321
  mov    $0x1,%eax
  jmp    L19
L321:
  mov    $0x0,%eax
L19:
  leave
  ret
```

tool_calls: name: parse_data
arguments: data_tag: D138
type: string
name: parse_data
arguments: data_tag: D168
type: string
name: parse_data
arguments: data_tag: D37
type: string
name: parse_data
arguments: data_tag: D148
type: string
name: parse_data
arguments: data_tag: D154
type: string
name: parse_data
arguments: data_tag: D189
type: string
name: parse_data
arguments: data_tag: D174
type: string
name: parse_data
arguments: data_tag: D187
type: string
name: parse_data
arguments: data_tag: D110
type: string
name: parse_data
arguments: data_tag: D87
type: string
name: parse_data
arguments: data_tag: D180
type: string
name: parse_data
arguments: data_tag: D32
type: string
name: parse_data
arguments: data_tag: D188
type: string
name: parse_data
arguments: data_tag: D11
type: string
name: parse_data
arguments: data_tag: D33
type: string
name: parse_data
arguments: data_tag: D53
type: string
name: parse_data
arguments: data_tag: D8
type: string
name: parse_data
arguments: data_tag: D26
type: string
name: parse_data
arguments: data_tag: D47
type: string
name: parse_data
arguments: data_tag: D165
type: string

tool: D138: \frac

tool: D168: \sum

tool: D37: \int

tool: D148: \iint

tool: D154: \iiint

tool: D189: \prod

tool: D174: \begin{array}

tool: D187: \left

tool: D110: \right

tool: D87: \root

tool: D180: \sqrt

tool: D32: \over

tool: D188: \stackrel

tool: D11: _

tool: D33: ^

tool: D53: \dfrac

tool: D8: \lim

tool: D26: \liminf

tool: D47: \limsup

tool: D165: \overline

assistant: ```c
int EquationNeedsFields(char *eq) {
  if (EQ_field_active())
    return 0;
  if (strstr(eq, "\\frac"))
    return 1;
  if (strstr(eq, "\\sum"))
    return 1;
  if (strstr(eq, "\\int"))
    return 1;
  if (strstr(eq, "\\iint"))
    return 1;
  if (strstr(eq, "\\iiint"))
    return 1;
  if (strstr(eq, "\\prod"))
    return 1;
  if (strstr(eq, "\\begin{array}"))
    return 1;
  if (strstr(eq, "\\left"))
    return 1;
  if (strstr(eq, "\\right"))
    return 1;
  if (strstr(eq, "\\root"))
    return 1;
  if (strstr(eq, "\\sqrt"))
    return 1;
  if (strstr(eq, "\\over"))
    return 1;
  if (strstr(eq, "\\stackrel"))
    return 1;
  if (strstr(eq, "_") || strstr(eq, "^"))
    return 1;
  if (strstr(eq, "\\dfrac"))
    return 1;
  if (strstr(eq, "\\lim"))
    return 1;
  if (strstr(eq, "\\liminf"))
    return 1;
  if (strstr(eq, "\\limsup"))
    return 1;
  if (strstr(eq, "\\overline"))
    return 1;
  return 0;
}
```