user: What is the c source code of the assembly code below?

```asm
<wovel>:
  endbr64
  sub    $0x61,%edi
  cmp    $0x14,%dil
  ja     L408
  sub    $0x8,%rsp
  movzbl %dil,%edi
  lea    D35(%rip),%rdx
  movslq (%rdx,%rdi,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  sub    $0x61,%esi
  cmp    $0x14,%sil
  ja     L258
  movzbl %sil,%esi
  lea    D66(%rip),%rdx
  movslq (%rdx,%rsi,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
L258:
  mov    $0x1,%eax
  jmp    L102
  mov    $0x3e,%edi
  call   <retIndicChar@plt>
  mov    %eax,%esi
  lea    D5(%rip),%rdi
  call   <printf@plt>
  mov    $0x1,%eax
  jmp    L102
  mov    $0x48,%edi
  call   <retIndicChar@plt>
  mov    %eax,%esi
  lea    D5(%rip),%rdi
  call   <printf@plt>
  mov    $0x1,%eax
  jmp    L102
  mov    $0x4c,%edi
  call   <retIndicChar@plt>
  mov    %eax,%esi
  lea    D5(%rip),%rdi
  call   <printf@plt>
  mov    $0x1,%eax
  jmp    L102
  test   %sil,%sil
  je     L220
  lea    -0x61(%rsi),%ecx
  cmp    $0x14,%cl
  ja     L409
  mov    $0x1,%eax
  shl    %cl,%rax
  test   $0x104101,%eax
  jne    L358
  cmp    $0x4,%cl
  je     L21
  mov    $0x0,%eax
  jmp    L102
L220:
  mov    $0x47,%edi
  call   <retIndicChar@plt>
  mov    %eax,%esi
  lea    D5(%rip),%rdi
  call   <printf@plt>
  mov    $0x1,%eax
  jmp    L102
L21:
  mov    $0x40,%edi
  call   <retIndicChar@plt>
  mov    %eax,%esi
  lea    D5(%rip),%rdi
  call   <printf@plt>
  mov    $0x1,%eax
  jmp    L102
L358:
  mov    $0x47,%edi
  call   <retIndicChar@plt>
  mov    %eax,%esi
  lea    D5(%rip),%rdi
  call   <printf@plt>
  mov    $0x0,%eax
  jmp    L102
  test   %sil,%sil
  je     L357
  lea    -0x61(%rsi),%ecx
  cmp    $0x14,%cl
  ja     L370
  mov    $0x1,%eax
  shl    %cl,%rax
  test   $0x104011,%eax
  jne    L374
  cmp    $0x8,%cl
  je     L344
  mov    $0x0,%eax
  jmp    L102
L357:
  mov    $0x3f,%edi
  call   <retIndicChar@plt>
  mov    %eax,%esi
  lea    D5(%rip),%rdi
  call   <printf@plt>
  mov    $0x1,%eax
  jmp    L102
L344:
  mov    $0x40,%edi
  call   <retIndicChar@plt>
  mov    %eax,%esi
  lea    D5(%rip),%rdi
  call   <printf@plt>
  mov    $0x1,%eax
  jmp    L102
L374:
  mov    $0x3f,%edi
  call   <retIndicChar@plt>
  mov    %eax,%esi
  lea    D5(%rip),%rdi
  call   <printf@plt>
  mov    $0x0,%eax
  jmp    L102
  test   %sil,%sil
  je     L378
  lea    -0x61(%rsi),%ecx
  cmp    $0x14,%cl
  ja     L4
  mov    $0x1,%eax
  shl    %cl,%rax
  test   $0x100111,%eax
  jne    L11
  cmp    $0xe,%cl
  je     L130
  mov    $0x0,%eax
  jmp    L102
L378:
  mov    $0x4b,%edi
  call   <retIndicChar@plt>
  mov    %eax,%esi
  lea    D5(%rip),%rdi
  call   <printf@plt>
  mov    $0x1,%eax
  jmp    L102
L130:
  mov    $0x42,%edi
  call   <retIndicChar@plt>
  mov    %eax,%esi
  lea    D5(%rip),%rdi
  call   <printf@plt>
  mov    $0x1,%eax
  jmp    L102
L11:
  mov    $0x4b,%edi
  call   <retIndicChar@plt>
  mov    %eax,%esi
  lea    D5(%rip),%rdi
  call   <printf@plt>
  mov    $0x0,%eax
  jmp    L102
  test   %sil,%sil
  je     L429
  lea    -0x61(%rsi),%ecx
  cmp    $0x14,%cl
  ja     L295
  mov    $0x1,%eax
  shl    %cl,%rax
  test   $0x4111,%eax
  jne    L382
  cmp    $0x14,%cl
  je     L411
  mov    $0x0,%eax
  jmp    L102
L429:
  mov    $0x41,%edi
  call   <retIndicChar@plt>
  mov    %eax,%esi
  lea    D5(%rip),%rdi
  call   <printf@plt>
  mov    $0x1,%eax
  jmp    L102
L411:
  mov    $0x42,%edi
  call   <retIndicChar@plt>
  mov    %eax,%esi
  lea    D5(%rip),%rdi
  call   <printf@plt>
  mov    $0x1,%eax
  jmp    L102
L382:
  mov    $0x41,%edi
  call   <retIndicChar@plt>
  mov    %eax,%esi
  lea    D5(%rip),%rdi
  call   <printf@plt>
  mov    $0x0,%eax
  jmp    L102
  mov    $0x0,%eax
L102:
  add    $0x8,%rsp
  ret
  mov    $0x0,%eax
  jmp    L102
L409:
  mov    $0x0,%eax
  jmp    L102
L370:
  mov    $0x0,%eax
  jmp    L102
L4:
  mov    $0x0,%eax
  jmp    L102
L295:
  mov    $0x0,%eax
  jmp    L102
L408:
  mov    $0x0,%eax
  ret
```

tool_calls: name: retrieve_data
arguments: data_label: D5
type_infered: string

tool: D5: %lc

assistant: ```c
int wovel(char a, char b) {
  switch (a) {
  case 'a':
    switch (b) {
    case 'a':
      printf("%lc", retIndicChar(62));
      return 1;
    case 'e':
      return 0;
    case 'i':
      printf("%lc", retIndicChar(72));
      return 1;
    case 'o':
      return 0;
    case 'u':
      printf("%lc", retIndicChar(76));
      return 1;
    case 0:
      return 1;
    default:
      return 1;
    }
    break;
  case 'e':
    switch (b) {
    case 0:
      printf("%lc", retIndicChar(71));
      return 1;
    case 'e':
      printf("%lc", retIndicChar(64));
      return 1;
    case 'a':
    case 'i':
    case 'o':
    case 'u':
      printf("%lc", retIndicChar(71));
      return 0;
    }
    break;
  case 'i':
    switch (b) {
    case 0:
      printf("%lc", retIndicChar(63));
      return 1;
    case 'i':
      printf("%lc", retIndicChar(64));
      return 1;
    case 'a':
    case 'e':
    case 'o':
    case 'u':
      printf("%lc", retIndicChar(63));
      return 0;
    }
    break;
  case 'o':
    switch (b) {
    case 0:
      printf("%lc", retIndicChar(75));
      return 1;
    case 'o':
      printf("%lc", retIndicChar(66));
      return 1;
    case 'a':
    case 'i':
    case 'e':
    case 'u':
      printf("%lc", retIndicChar(75));
      return 0;
    }
    break;
  case 'u':
    switch (b) {
    case 0:
      printf("%lc", retIndicChar(65));
      return 1;
    case 'u':
      printf("%lc", retIndicChar(66));
      return 1;
    case 'a':
    case 'i':
    case 'o':
    case 'e':
      printf("%lc", retIndicChar(65));
      return 0;
    }
    break;
  }
  return 0;
}
```