user: 请将这段汇编代码片段转换成等效的C代码：

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  add    $0xffffffffffffff80,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  lea    D234(%rip),%rax
  mov    %al,-0x6f(%rbp)
  lea    D260(%rip),%rax
  mov    %al,-0x6e(%rbp)
  lea    D266(%rip),%rax
  mov    %al,-0x6d(%rbp)
  lea    D308(%rip),%rax
  mov    %al,-0x6c(%rbp)
  lea    D315(%rip),%rax
  mov    %al,-0x6b(%rbp)
  lea    D97(%rip),%rax
  mov    %al,-0x6a(%rbp)
  lea    D27(%rip),%rax
  mov    %al,-0x69(%rbp)
  lea    D130(%rip),%rax
  mov    %al,-0x68(%rbp)
  lea    D214(%rip),%rax
  mov    %al,-0x67(%rbp)
  lea    D357(%rip),%rax
  mov    %al,-0x5c(%rbp)
  lea    D17(%rip),%rax
  mov    %al,-0x52(%rbp)
  lea    D277(%rip),%rax
  mov    %al,-0x48(%rbp)
  lea    D220(%rip),%rax
  mov    %al,-0x3e(%rbp)
  lea    D231(%rip),%rax
  mov    %al,-0x34(%rbp)
  lea    D230(%rip),%rax
  mov    %al,-0x2a(%rbp)
  lea    D29(%rip),%rax
  mov    %al,-0x20(%rbp)
  lea    D137(%rip),%rax
  mov    %al,-0x16(%rbp)
  mov    -0x74(%rbp),%eax
  mov    %eax,%esi
  lea    D112(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  mov    -0x74(%rbp),%eax
  sub    $0xa,%eax
  cmp    $0x9,%eax
  ja     L93
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D136(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D136(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D23(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D134(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D336(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D272(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D133(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D296(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D170(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D301(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D274(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D35(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L93:
  cmpl   $0x0,-0x74(%rbp)
  setg   %dl
  cmpl   $0x62,-0x74(%rbp)
  setle  %al
  and    %edx,%eax
  test   %al,%al
  je     L18
  cmpl   $0x14,-0x74(%rbp)
  setg   %dl
  cmpl   $0x1d,-0x74(%rbp)
  setle  %al
  and    %edx,%eax
  test   %al,%al
  je     L180
  mov    -0x74(%rbp),%ecx
  movslq %ecx,%rax
  imul   $0x66666667,%rax,%rax
  shr    $0x20,%rax
  sar    $0x2,%eax
  mov    %ecx,%esi
  sar    $0x1f,%esi
  sub    %esi,%eax
  mov    %eax,%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  add    %eax,%eax
  sub    %eax,%ecx
  mov    %ecx,%edx
  movslq %edx,%rax
  movzbl -0x70(%rbp,%rax,1),%eax
  movsbl %al,%edx
  movzbl -0x5c(%rbp),%eax
  movsbl %al,%eax
  mov    %eax,%esi
  lea    D128(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L18
L180:
  cmpl   $0x1e,-0x74(%rbp)
  setg   %dl
  cmpl   $0x27,-0x74(%rbp)
  setle  %al
  and    %edx,%eax
  test   %al,%al
  je     L46
  mov    -0x74(%rbp),%ecx
  movslq %ecx,%rax
  imul   $0x66666667,%rax,%rax
  shr    $0x20,%rax
  sar    $0x2,%eax
  mov    %ecx,%esi
  sar    $0x1f,%esi
  sub    %esi,%eax
  mov    %eax,%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  add    %eax,%eax
  sub    %eax,%ecx
  mov    %ecx,%edx
  movslq %edx,%rax
  movzbl -0x70(%rbp,%rax,1),%eax
  movsbl %al,%edx
  movzbl -0x52(%rbp),%eax
  movsbl %al,%eax
  mov    %eax,%esi
  lea    D128(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L18
L46:
  cmpl   $0x28,-0x74(%rbp)
  setg   %dl
  cmpl   $0x31,-0x74(%rbp)
  setle  %al
  and    %edx,%eax
  test   %al,%al
  je     L65
  mov    -0x74(%rbp),%ecx
  movslq %ecx,%rax
  imul   $0x66666667,%rax,%rax
  shr    $0x20,%rax
  sar    $0x2,%eax
  mov    %ecx,%esi
  sar    $0x1f,%esi
  sub    %esi,%eax
  mov    %eax,%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  add    %eax,%eax
  sub    %eax,%ecx
  mov    %ecx,%edx
  movslq %edx,%rax
  movzbl -0x70(%rbp,%rax,1),%eax
  movsbl %al,%edx
  movzbl -0x48(%rbp),%eax
  movsbl %al,%eax
  mov    %eax,%esi
  lea    D128(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L18
L65:
  cmpl   $0x32,-0x74(%rbp)
  setg   %dl
  cmpl   $0x3b,-0x74(%rbp)
  setle  %al
  and    %edx,%eax
  test   %al,%al
  je     L66
  mov    -0x74(%rbp),%ecx
  movslq %ecx,%rax
  imul   $0x66666667,%rax,%rax
  shr    $0x20,%rax
  sar    $0x2,%eax
  mov    %ecx,%esi
  sar    $0x1f,%esi
  sub    %esi,%eax
  mov    %eax,%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  add    %eax,%eax
  sub    %eax,%ecx
  mov    %ecx,%edx
  movslq %edx,%rax
  movzbl -0x70(%rbp,%rax,1),%eax
  movsbl %al,%edx
  movzbl -0x3e(%rbp),%eax
  movsbl %al,%eax
  mov    %eax,%esi
  lea    D128(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L18
L66:
  cmpl   $0x3c,-0x74(%rbp)
  setg   %dl
  cmpl   $0x45,-0x74(%rbp)
  setle  %al
  and    %edx,%eax
  test   %al,%al
  je     L147
  mov    -0x74(%rbp),%ecx
  movslq %ecx,%rax
  imul   $0x66666667,%rax,%rax
  shr    $0x20,%rax
  sar    $0x2,%eax
  mov    %ecx,%esi
  sar    $0x1f,%esi
  sub    %esi,%eax
  mov    %eax,%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  add    %eax,%eax
  sub    %eax,%ecx
  mov    %ecx,%edx
  movslq %edx,%rax
  movzbl -0x70(%rbp,%rax,1),%eax
  movsbl %al,%edx
  movzbl -0x34(%rbp),%eax
  movsbl %al,%eax
  mov    %eax,%esi
  lea    D128(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L18
L147:
  cmpl   $0x46,-0x74(%rbp)
  setg   %dl
  cmpl   $0x4f,-0x74(%rbp)
  setle  %al
  and    %edx,%eax
  test   %al,%al
  je     L30
  mov    -0x74(%rbp),%ecx
  movslq %ecx,%rax
  imul   $0x66666667,%rax,%rax
  shr    $0x20,%rax
  sar    $0x2,%eax
  mov    %ecx,%esi
  sar    $0x1f,%esi
  sub    %esi,%eax
  mov    %eax,%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  add    %eax,%eax
  sub    %eax,%ecx
  mov    %ecx,%edx
  movslq %edx,%rax
  movzbl -0x70(%rbp,%rax,1),%eax
  movsbl %al,%edx
  movzbl -0x2a(%rbp),%eax
  movsbl %al,%eax
  mov    %eax,%esi
  lea    D128(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L18
L30:
  cmpl   $0x50,-0x74(%rbp)
  setg   %dl
  cmpl   $0x59,-0x74(%rbp)
  setle  %al
  and    %edx,%eax
  test   %al,%al
  je     L9
  mov    -0x74(%rbp),%ecx
  movslq %ecx,%rax
  imul   $0x66666667,%rax,%rax
  shr    $0x20,%rax
  sar    $0x2,%eax
  mov    %ecx,%esi
  sar    $0x1f,%esi
  sub    %esi,%eax
  mov    %eax,%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  add    %eax,%eax
  sub    %eax,%ecx
  mov    %ecx,%edx
  movslq %edx,%rax
  movzbl -0x70(%rbp,%rax,1),%eax
  movsbl %al,%edx
  movzbl -0x20(%rbp),%eax
  movsbl %al,%eax
  mov    %eax,%esi
  lea    D128(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L18
L9:
  cmpl   $0x5a,-0x74(%rbp)
  setg   %dl
  cmpl   $0x62,-0x74(%rbp)
  setle  %al
  and    %edx,%eax
  test   %al,%al
  je     L10
  mov    -0x74(%rbp),%ecx
  movslq %ecx,%rax
  imul   $0x66666667,%rax,%rax
  shr    $0x20,%rax
  sar    $0x2,%eax
  mov    %ecx,%esi
  sar    $0x1f,%esi
  sub    %esi,%eax
  mov    %eax,%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  add    %eax,%eax
  sub    %eax,%ecx
  mov    %ecx,%edx
  movslq %edx,%rax
  movzbl -0x70(%rbp,%rax,1),%eax
  movsbl %al,%edx
  movzbl -0x16(%rbp),%eax
  movsbl %al,%eax
  mov    %eax,%esi
  lea    D128(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L18
L10:
  mov    -0x74(%rbp),%ecx
  movslq %ecx,%rax
  imul   $0x66666667,%rax,%rax
  shr    $0x20,%rax
  sar    $0x2,%eax
  mov    %ecx,%esi
  sar    $0x1f,%esi
  sub    %esi,%eax
  mov    %eax,%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  add    %eax,%eax
  sub    %eax,%ecx
  mov    %ecx,%edx
  movslq %edx,%rax
  movzbl -0x70(%rbp,%rax,1),%eax
  movsbl %al,%eax
  mov    %eax,%edi
  call   <putchar@plt>
L18:
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L15
  call   <__stack_chk_fail@plt>
L15:
  leave
  ret
```

tool_calls: name: disassemble_data
arguments: data_label: D234
type: string
name: disassemble_data
arguments: data_label: D260
type: string
name: disassemble_data
arguments: data_label: D266
type: string
name: disassemble_data
arguments: data_label: D308
type: string
name: disassemble_data
arguments: data_label: D315
type: string
name: disassemble_data
arguments: data_label: D97
type: string
name: disassemble_data
arguments: data_label: D27
type: string
name: disassemble_data
arguments: data_label: D130
type: string
name: disassemble_data
arguments: data_label: D214
type: string
name: disassemble_data
arguments: data_label: D357
type: string
name: disassemble_data
arguments: data_label: D17
type: string
name: disassemble_data
arguments: data_label: D277
type: string
name: disassemble_data
arguments: data_label: D220
type: string
name: disassemble_data
arguments: data_label: D231
type: string
name: disassemble_data
arguments: data_label: D230
type: string
name: disassemble_data
arguments: data_label: D29
type: string
name: disassemble_data
arguments: data_label: D137
type: string
name: disassemble_data
arguments: data_label: D112
type: string
name: disassemble_data
arguments: data_label: D23
type: string
name: disassemble_data
arguments: data_label: D134
type: string
name: disassemble_data
arguments: data_label: D336
type: string
name: disassemble_data
arguments: data_label: D272
type: string
name: disassemble_data
arguments: data_label: D133
type: string
name: disassemble_data
arguments: data_label: D296
type: string
name: disassemble_data
arguments: data_label: D170
type: string
name: disassemble_data
arguments: data_label: D301
type: string
name: disassemble_data
arguments: data_label: D274
type: string
name: disassemble_data
arguments: data_label: D35
type: string
name: disassemble_data
arguments: data_label: D128
type: string

tool: D234: edno

tool: D260: dve

tool: D266: tri

tool: D308: chetiri

tool: D315: pet

tool: D97: shest

tool: D27: sedem

tool: D130: osem

tool: D214: devet

tool: D357: dvadeset

tool: D17: trideset

tool: D277: chetirideset

tool: D220: petdeset

tool: D231: shestdeset

tool: D230: sedemdeset

tool: D29: osemdeset

tool: D137: devetdeset

tool: D112: %d

tool: D23: deset

tool: D134: edinadeset

tool: D336: dvanadeset

tool: D272: trinadeset

tool: D133: chetirinadeset

tool: D296: petnadeset

tool: D170: shestnadeset

tool: D301: sedemnadeset

tool: D274: osemnadeset

tool: D35: devetnadeset

tool: D128: %c i %c

assistant: ```c
int main() {
  int n;
  char arr[100];
  arr[1] = "edno";
  arr[2] = "dve";
  arr[3] = "tri";
  arr[4] = "chetiri";
  arr[5] = "pet";
  arr[6] = "shest";
  arr[7] = "sedem";
  arr[8] = "osem";
  arr[9] = "devet";
  arr[20] = "dvadeset";
  arr[30] = "trideset";
  arr[40] = "chetirideset";
  arr[50] = "petdeset";
  arr[60] = "shestdeset";
  arr[70] = "sedemdeset";
  arr[80] = "osemdeset";
  arr[90] = "devetdeset";
  scanf("%d", n);
  switch (n) {
  case 10:
    printf("deset");
  case 11:
    printf("edinadeset");
  case 12:
    printf("dvanadeset");
  case 13:
    printf("trinadeset");
  case 14:
    printf("chetirinadeset");
  case 15:
    printf("petnadeset");
  case 16:
    printf("shestnadeset");
  case 17:
    printf("sedemnadeset");
  case 18:
    printf("osemnadeset");
  case 19:
    printf("devetnadeset");
  }
  if (n > 0 & n < 99) {
    if (n > 20 & n < 30) {
      printf("%c i %c", arr[20], arr[n % 10]);
    } else {
      if (n > 30 & n < 40) {
        printf("%c i %c", arr[30], arr[n % 10]);
      } else {
        if (n > 40 & n < 50) {
          printf("%c i %c", arr[40], arr[n % 10]);
        } else {
          if (n > 50 & n < 60) {
            printf("%c i %c", arr[50], arr[n % 10]);
          } else {
            if (n > 60 & n < 70) {
              printf("%c i %c", arr[60], arr[n % 10]);
            } else {
              if (n > 70 & n < 80) {
                printf("%c i %c", arr[70], arr[n % 10]);
              } else {
                if (n > 80 & n < 90) {
                  printf("%c i %c", arr[80], arr[n % 10]);
                } else {
                  if (n > 90 & n < 99) {
                    printf("%c i %c", arr[90], arr[n % 10]);
                  } else {
                    printf("%c", arr[n % 10]);
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  return 0;
}
```