user: 这段汇编代码用C语言表示是什么样的？

```asm
<EquString>:
  endbr64
  mov    %edi,%edx
  and    $0x30,%edx
  mov    %edi,%esi
  and    $0x1c0,%esi
  mov    %edi,%eax
  and    $0xf,%eax
  cmp    $0x8,%eax
  ja     L136
  mov    %eax,%eax
  lea    D198(%rip),%rcx
  movslq (%rcx,%rax,4),%rax
  add    %rcx,%rax
  notrack jmp *%rax
  cmp    $0x20,%edx
  je     L503
  cmp    $0x30,%edx
  je     L375
  lea    D803(%rip),%rax
  cmp    $0x10,%edx
  jne    L26
  test   %esi,%esi
  lea    D264(%rip),%rax
  lea    D803(%rip),%rdx
  cmovne %rdx,%rax
  ret
L503:
  test   %esi,%esi
  lea    D264(%rip),%rax
  lea    D803(%rip),%rdx
  cmovne %rdx,%rax
  ret
L375:
  lea    D757(%rip),%rax
  cmp    $0x40,%esi
  je     L26
  lea    D481(%rip),%rax
  cmp    $0x80,%esi
  je     L26
  test   %esi,%esi
  lea    D803(%rip),%rax
  lea    D264(%rip),%rdx
  cmove  %rdx,%rax
  ret
  test   $0x100,%edi
  je     L167
  and    $0xc0,%edi
  cmp    $0x20,%edx
  je     L522
  jg     L124
  test   %edx,%edx
  je     L91
  cmp    $0x10,%edx
  jne    L521
  lea    D365(%rip),%rax
  cmp    $0x80,%edi
  je     L26
  jg     L4
  lea    D649(%rip),%rax
  test   %edi,%edi
  je     L26
  cmp    $0x40,%edi
  lea    D803(%rip),%rax
  lea    D102(%rip),%rdx
  cmove  %rdx,%rax
  ret
L521:
  lea    D803(%rip),%rax
  ret
L124:
  cmp    $0x30,%edx
  jne    L84
  lea    D365(%rip),%rax
  cmp    $0x80,%edi
  je     L26
  jg     L214
  lea    D649(%rip),%rax
  test   %edi,%edi
  je     L26
  cmp    $0x40,%edi
  lea    D803(%rip),%rax
  lea    D102(%rip),%rdx
  cmove  %rdx,%rax
  ret
L84:
  lea    D803(%rip),%rax
  ret
L91:
  lea    D365(%rip),%rax
  cmp    $0x80,%edi
  je     L26
  jg     L175
  lea    D649(%rip),%rax
  test   %edi,%edi
  je     L26
  cmp    $0x40,%edi
  lea    D803(%rip),%rax
  lea    D102(%rip),%rdx
  cmove  %rdx,%rax
  ret
L175:
  cmp    $0xc0,%edi
  lea    D803(%rip),%rax
  lea    D85(%rip),%rdx
  cmove  %rdx,%rax
  ret
L4:
  cmp    $0xc0,%edi
  lea    D803(%rip),%rax
  lea    D85(%rip),%rdx
  cmove  %rdx,%rax
  ret
L522:
  lea    D365(%rip),%rax
  cmp    $0x80,%edi
  je     L26
  jg     L150
  lea    D649(%rip),%rax
  test   %edi,%edi
  je     L26
  cmp    $0x40,%edi
  lea    D803(%rip),%rax
  lea    D102(%rip),%rdx
  cmove  %rdx,%rax
  ret
L150:
  cmp    $0xc0,%edi
  lea    D803(%rip),%rax
  lea    D85(%rip),%rdx
  cmove  %rdx,%rax
  ret
L214:
  cmp    $0xc0,%edi
  lea    D803(%rip),%rax
  lea    D85(%rip),%rdx
  cmove  %rdx,%rax
  ret
L167:
  cmp    $0x20,%edx
  je     L297
  cmp    $0x30,%edx
  je     L495
  lea    D803(%rip),%rax
  cmp    $0x10,%edx
  jne    L26
  test   %esi,%esi
  lea    D264(%rip),%rax
  lea    D803(%rip),%rdx
  cmovne %rdx,%rax
  ret
L297:
  test   %esi,%esi
  lea    D264(%rip),%rax
  lea    D803(%rip),%rdx
  cmovne %rdx,%rax
  ret
L495:
  lea    D757(%rip),%rax
  cmp    $0x40,%esi
  je     L26
  lea    D481(%rip),%rax
  cmp    $0x80,%esi
  je     L26
  test   %esi,%esi
  lea    D803(%rip),%rax
  lea    D264(%rip),%rdx
  cmove  %rdx,%rax
  ret
  cmp    $0x20,%edx
  je     L276
  jg     L447
  test   %edx,%edx
  je     L489
  cmp    $0x10,%edx
  jne    L277
  lea    D481(%rip),%rax
  cmp    $0x80,%esi
  je     L26
  lea    D649(%rip),%rax
  cmp    $0x100,%esi
  je     L26
  test   %esi,%esi
  lea    D803(%rip),%rax
  lea    D264(%rip),%rdx
  cmove  %rdx,%rax
  ret
L277:
  lea    D803(%rip),%rax
  ret
L447:
  cmp    $0x30,%edx
  jne    L11
  lea    D760(%rip),%rax
  cmp    $0xc0,%esi
  je     L26
  jg     L469
  lea    D757(%rip),%rax
  cmp    $0x40,%esi
  je     L26
  lea    D481(%rip),%rax
  cmp    $0x80,%esi
  je     L26
  test   %esi,%esi
  lea    D803(%rip),%rax
  lea    D264(%rip),%rdx
  cmove  %rdx,%rax
  ret
L11:
  lea    D803(%rip),%rax
  ret
L489:
  test   %esi,%esi
  lea    D264(%rip),%rax
  lea    D803(%rip),%rdx
  cmovne %rdx,%rax
  ret
L276:
  lea    D757(%rip),%rax
  cmp    $0x40,%esi
  je     L26
  lea    D649(%rip),%rax
  cmp    $0x100,%esi
  je     L26
  test   %esi,%esi
  lea    D803(%rip),%rax
  lea    D264(%rip),%rdx
  cmove  %rdx,%rax
  ret
L469:
  lea    D102(%rip),%rax
  cmp    $0x140,%esi
  je     L26
  lea    D365(%rip),%rax
  cmp    $0x180,%esi
  je     L26
  cmp    $0x100,%esi
  lea    D803(%rip),%rax
  lea    D649(%rip),%rdx
  cmove  %rdx,%rax
  ret
  cmp    $0x20,%edx
  je     L155
  cmp    $0x30,%edx
  je     L518
  lea    D803(%rip),%rax
  cmp    $0x10,%edx
  jne    L26
  test   %esi,%esi
  lea    D264(%rip),%rax
  lea    D803(%rip),%rdx
  cmovne %rdx,%rax
  ret
L155:
  test   %esi,%esi
  lea    D264(%rip),%rax
  lea    D803(%rip),%rdx
  cmovne %rdx,%rax
  ret
L518:
  lea    D757(%rip),%rax
  cmp    $0x40,%esi
  je     L26
  lea    D481(%rip),%rax
  cmp    $0x80,%esi
  je     L26
  test   %esi,%esi
  lea    D803(%rip),%rax
  lea    D264(%rip),%rdx
  cmove  %rdx,%rax
  ret
  cmp    $0x20,%edx
  je     L76
  cmp    $0x30,%edx
  je     L49
  lea    D803(%rip),%rax
  cmp    $0x10,%edx
  jne    L26
  test   %esi,%esi
  lea    D264(%rip),%rax
  lea    D803(%rip),%rdx
  cmovne %rdx,%rax
  ret
L76:
  test   %esi,%esi
  lea    D264(%rip),%rax
  lea    D803(%rip),%rdx
  cmovne %rdx,%rax
  ret
L49:
  lea    D757(%rip),%rax
  cmp    $0x40,%esi
  je     L26
  lea    D481(%rip),%rax
  cmp    $0x80,%esi
  je     L26
  test   %esi,%esi
  lea    D803(%rip),%rax
  lea    D264(%rip),%rdx
  cmove  %rdx,%rax
  ret
L136:
  lea    D803(%rip),%rax
L26:
  ret
```

tool_calls: name: parse_data
arguments: data_label: D803
data_type: string
name: parse_data
arguments: data_label: D264
data_type: string
name: parse_data
arguments: data_label: D757
data_type: string
name: parse_data
arguments: data_label: D481
data_type: string
name: parse_data
arguments: data_label: D365
data_type: string
name: parse_data
arguments: data_label: D649
data_type: string
name: parse_data
arguments: data_label: D102
data_type: string
name: parse_data
arguments: data_label: D85
data_type: string
name: parse_data
arguments: data_label: D760
data_type: string

tool: D803: ??

tool: D264: m

tool: D757: n

tool: D481: M

tool: D365: iM

tool: D649: im

tool: D102: in

tool: D85: iN

tool: D760: N

assistant: ```c
const char *EquString(int EquVal) {
  int bFrom = EquVal & (0x0001 | 0x0002 | 0x0004 | 0x0008);
  int bType = EquVal & (0x0010 | 0x0020);
  int bEq2 = EquVal & (0x0040 | 0x0080 | 0x0100);
  const char *r = "";
  switch (bFrom) {
  case 0x0001:
    switch (bType) {
    case 0x0010:
      switch (bEq2) {
      case 0:
        r = "m";
        break;
      default:
        r = "??";
        break;
      }
      break;
    case 0x0020:
      switch (bEq2) {
      case 0:
        r = "m";
        break;
      default:
        r = "??";
        break;
      }
      break;
    case (0x0020 | 0x0010):
      switch (bEq2) {
      case 0:
        r = "m";
        break;
      case 0x0080:
        r = "M";
        break;
      case 0x0040:
        r = "n";
        break;
      default:
        r = "??";
        break;
      }
      break;
    default:
      r = "??";
      break;
    }
    break;
  case 0x0002:
    if (bEq2 & 0x0100) {
      bEq2 &= ~0x0100;
      switch (bType) {
      case 0:
        switch (bEq2) {
        case 0:
          r = "im";
          break;
        case 0x0080:
          r = "iM";
          break;
        case 0x0040:
          r = "in";
          break;
        case (0x0040 | 0x0080):
          r = "iN";
          break;
        default:
          r = "??";
          break;
        }
        break;
      case 0x0010:
        switch (bEq2) {
        case 0:
          r = "im";
          break;
        case 0x0080:
          r = "iM";
          break;
        case 0x0040:
          r = "in";
          break;
        case (0x0040 | 0x0080):
          r = "iN";
          break;
        default:
          r = "??";
          break;
        }
        break;
      case 0x0020:
        switch (bEq2) {
        case 0:
          r = "im";
          break;
        case 0x0080:
          r = "iM";
          break;
        case 0x0040:
          r = "in";
          break;
        case (0x0040 | 0x0080):
          r = "iN";
          break;
        default:
          r = "??";
          break;
        }
        break;
      case (0x0020 | 0x0010):
        switch (bEq2) {
        case 0:
          r = "im";
          break;
        case 0x0080:
          r = "iM";
          break;
        case 0x0040:
          r = "in";
          break;
        case (0x0040 | 0x0080):
          r = "iN";
          break;
        default:
          r = "??";
        }
        break;
      default:
        r = "??";
        break;
      }
    } else {
      switch (bType) {
      case 0x0010:
        switch (bEq2) {
        case 0:
          r = "m";
          break;
        default:
          r = "??";
          break;
        }
        break;
      case 0x0020:
        switch (bEq2) {
        case 0:
          r = "m";
          break;
        default:
          r = "??";
          break;
        }
        break;
      case (0x0020 | 0x0010):
        switch (bEq2) {
        case 0:
          r = "m";
          break;
        case 0x0080:
          r = "M";
          break;
        case 0x0040:
          r = "n";
          break;
        default:
          r = "??";
          break;
        }
        break;
      default:
        r = "??";
        break;
      }
    }
    break;
  case (0x0004 | 0x0002):
    switch (bType) {
    case 0:
      switch (bEq2) {
      case 0:
        r = "m";
        break;
      default:
        r = "??";
        break;
      }
      break;
    case 0x0010:
      switch (bEq2) {
      case 0:
        r = "m";
        break;
      case 0x0100:
        r = "im";
        break;
      case 0x0080:
        r = "M";
        break;
      default:
        r = "??";
        break;
      }
      break;
    case 0x0020:
      switch (bEq2) {
      case 0:
        r = "m";
        break;
      case 0x0040:
        r = "n";
        break;
      case 0x0100:
        r = "im";
        break;
      default:
        r = "??";
        break;
      }
      break;
    case (0x0020 | 0x0010):
      switch (bEq2) {
      case 0:
        r = "m";
        break;
      case 0x0080:
        r = "M";
        break;
      case (0x0080 | 0x0100):
        r = "iM";
        break;
      case 0x0040:
        r = "n";
        break;
      case (0x0040 | 0x0080):
        r = "N";
        break;
      case 0x0100:
        r = "im";
        break;
      case (0x0040 | 0x0100):
        r = "in";
        break;
      default:
        r = "??";
        break;
      }
      break;
    default:
      r = "??";
      break;
    }
    break;
  case 0x0004:
    switch (bType) {
    case 0:
      r = "??";
      break;
    case 0x0010:
      switch (bEq2) {
      case 0:
        r = "m";
        break;
      default:
        r = "??";
      }
      break;
    case 0x0020:
      switch (bEq2) {
      case 0:
        r = "m";
        break;
      default:
        r = "??";
      }
      break;
    case (0x0020 | 0x0010):
      switch (bEq2) {
      case 0:
        r = "m";
        break;
      case 0x0080:
        r = "M";
        break;
      case 0x0040:
        r = "n";
        break;
      default:
        r = "??";
        break;
      }
      break;
    default:
      r = "??";
      break;
    }
    break;
  case 0x0008:
    switch (bType) {
    case 0:
      r = "??";
      break;
    case 0x0010:
      switch (bEq2) {
      case 0:
        r = "m";
        break;
      default:
        r = "??";
        break;
      }
      break;
    case 0x0020:
      switch (bEq2) {
      case 0:
        r = "m";
        break;
      default:
        r = "??";
        break;
      }
      break;
    case (0x0020 | 0x0010):
      switch (bEq2) {
      case 0:
        r = "m";
        break;
      case 0x0080:
        r = "M";
        break;
      case 0x0040:
        r = "n";
        break;
      default:
        r = "??";
        break;
      }
      break;
    default:
      r = "??";
      break;
    }
    break;
  default:
    r = "??";
    break;
  }
  return r;
}
```