user: 请将以下的汇编代码转换成C语言代码：

```asm
<main>:
  endbr64
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x18,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x8(%rsp)
  xor    %eax,%eax
  lea    D19(%rip),%r13
  lea    D32(%rip),%r12
  lea    D72(%rip),%rbp
  lea    0x3(%rsp),%rbx
  jmp    L56
L118:
  lea    D81(%rip),%rdi
  call   <puts@plt>
  lea    0x4(%rsp),%rsi
  lea    D3(%rip),%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  jmp    L53
L34:
  mov    0x4(%rsp),%edi
  call   <sumOfDigits@plt>
  mov    %eax,%esi
  lea    D78(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L56:
  mov    %r13,%rdi
  call   <puts@plt>
  mov    %r12,%rdi
  call   <puts@plt>
  mov    %rbp,%rdi
  call   <puts@plt>
  lea    D109(%rip),%rdi
  call   <puts@plt>
  lea    D107(%rip),%rdi
  call   <puts@plt>
  lea    D76(%rip),%rdi
  call   <puts@plt>
  mov    %rbx,%rsi
  lea    D11(%rip),%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  cmpb   $0x69,0x3(%rsp)
  je     L118
L53:
  lea    D123(%rip),%rdi
  call   <puts@plt>
  mov    %rbx,%rsi
  lea    D112(%rip),%rdi
  mov    $0x0,%eax
  call   <scanf@plt>
  movzbl 0x3(%rsp),%eax
  cmp    $0x73,%al
  je     L34
  cmp    $0x72,%al
  je     L36
  cmp    $0x63,%al
  je     L8
  cmp    $0x6f,%al
  je     L21
  cmp    $0x71,%al
  jne    L56
  mov    0x8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L94
  mov    $0x0,%eax
  add    $0x18,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  ret
L36:
  mov    0x4(%rsp),%edi
  call   <revDigits@plt>
  mov    %eax,%esi
  lea    D9(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L56
L8:
  mov    0x4(%rsp),%edi
  call   <cntDigits@plt>
  mov    %eax,%esi
  lea    D95(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L56
L21:
  mov    0x4(%rsp),%edi
  call   <cntOddDigits@plt>
  mov    %eax,%esi
  lea    D62(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L56
L94:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: parse_data
arguments: data_label: D19
type: string
name: parse_data
arguments: data_label: D32
type: string
name: parse_data
arguments: data_label: D72
type: string
name: parse_data
arguments: data_label: D81
type: string
name: parse_data
arguments: data_label: D3
type: string
name: parse_data
arguments: data_label: D78
type: string
name: parse_data
arguments: data_label: D109
type: string
name: parse_data
arguments: data_label: D107
type: string
name: parse_data
arguments: data_label: D76
type: string
name: parse_data
arguments: data_label: D11
type: string
name: parse_data
arguments: data_label: D123
type: string
name: parse_data
arguments: data_label: D112
type: string
name: parse_data
arguments: data_label: D9
type: string
name: parse_data
arguments: data_label: D95
type: string
name: parse_data
arguments: data_label: D62
type: string

tool: D19: MENU: 
i:> Input integer

tool: D32: s:> Sum of digit

tool: D72: r:> reverse digit

tool: D81: Enter number: 

tool: D3: %d

tool: D78: The sum of digits is: %d


tool: D109: c:> count digit

tool: D107: o:> no. of odd digits

tool: D76: q:> quit

tool: D11: %c

tool: D123: enter choice :

tool: D112:  %c

tool: D9: Reversed digits is: %d


tool: D95: Digit count is: %d


tool: D62: No. of odd digits is: %d


assistant: ```c
main() {
  int data, flag = 0, s, r, c, d;
  char choice;
  while (1) {
    printf("MENU: \ni:> Input integer\n");
    printf("s:> Sum of digit\n");
    printf("r:> reverse digit\n");
    printf("c:> count digit\n");
    printf("o:> no. of odd digits\n");
    printf("q:> quit\n");
    scanf("%c", &choice);
    if (choice == 'i') {
      flag = 1;
    Input:
      printf("Enter number: \n");
      scanf("%d", &data);
    }
    printf("enter choice :\n");
    scanf(" %c", &choice);
    if (flag = 0) {
      printf("No data supplied");
      goto Input;
    }
    if (choice == 's') {
      s = sumOfDigits(data);
      printf("The sum of digits is: %d\n", s);
    } else if (choice == 'r') {
      r = revDigits(data);
      printf("Reversed digits is: %d\n", r);
    } else if (choice == 'c') {
      c = cntDigits(data);
      printf("Digit count is: %d\n", c);
    } else if (choice == 'o') {
      d = cntOddDigits(data);
      printf("No. of odd digits is: %d\n", d);
    } else if (choice == 'q') {
      return 0;
    }
  }
}
```