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

```asm
<echo_sig_type>:
  endbr64
  sub    $0x8,%rsp
  cmp    $0x50,%dil
  ja     L40
  movzbl %dil,%edi
  lea    D120(%rip),%rdx
  movslq (%rdx,%rdi,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D137(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
L134:
  add    $0x8,%rsp
  ret
  lea    D125(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L134
  lea    D66(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L134
  lea    D111(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L134
  lea    D52(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L134
  lea    D108(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L134
  lea    D2(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L134
  lea    D100(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L134
  lea    D21(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L134
  lea    D95(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L134
  lea    D150(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L134
  lea    D8(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L134
  lea    D47(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L134
  lea    D136(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L134
L40:
  lea    D112(%rip),%rdi
  call   <gettext@plt>
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L134
```

tool_calls: name: read_data
arguments: label: D137
type_infered: string
name: read_data
arguments: label: D125
type_infered: string
name: read_data
arguments: label: D66
type_infered: string
name: read_data
arguments: label: D111
type_infered: string
name: read_data
arguments: label: D52
type_infered: string
name: read_data
arguments: label: D108
type_infered: string
name: read_data
arguments: label: D2
type_infered: string
name: read_data
arguments: label: D100
type_infered: string
name: read_data
arguments: label: D21
type_infered: string
name: read_data
arguments: label: D95
type_infered: string
name: read_data
arguments: label: D150
type_infered: string
name: read_data
arguments: label: D8
type_infered: string
name: read_data
arguments: label: D47
type_infered: string
name: read_data
arguments: label: D136
type_infered: string
name: read_data
arguments: label: D112
type_infered: string

tool: D137: Signature of a carnonical text document.


tool: D125: Standalone singature.


tool: D66: Generic certification of a User ID and Public Key packet.


tool: D111: Persona certification of a UserID and Public Key packet.


tool: D52: Casual certification of a UserID and Pubkey Key packet.


tool: D108: Positive certificate of a UserID and Pubkey Key Packet.


tool: D2: Subkey Binding Signature


tool: D100: Primary Key Binding Signature


tool: D21: Signature directly on a key


tool: D95: Key revocation signature


tool: D150: Subkey revocation signature


tool: D8: Certification revocation signature


tool: D47: Timestamp signature


tool: D136: Third-Party Confirmation signature


tool: D112: Signature Typing error.


assistant: ```c
void echo_sig_type(unsigned char type) {
  switch (type) {
  case 0x01:
    printf(gettext("Signature of a carnonical text document.\n"));
    break;
  case 0x02:
    printf(gettext("Standalone singature.\n"));
    break;
  case 0x10:
    printf(gettext("Generic certification of a User ID and Public Key packet.\n"));
    break;
  case 0x11:
    printf(gettext("Persona certification of a UserID and Public Key packet.\n"));
    break;
  case 0x12:
    printf(gettext("Casual certification of a UserID and Pubkey Key packet.\n"));
    break;
  case 0x13:
    printf(gettext("Positive certificate of a UserID and Pubkey Key Packet.\n"));
    break;
  case 0x18:
    printf(gettext("Subkey Binding Signature\n"));
    break;
  case 0x19:
    printf(gettext("Primary Key Binding Signature\n"));
    break;
  case 0x1F:
    printf(gettext("Signature directly on a key\n"));
    break;
  case 0x20:
    printf(gettext("Key revocation signature\n"));
    break;
  case 0x28:
    printf(gettext("Subkey revocation signature\n"));
    break;
  case 0x30:
    printf(gettext("Certification revocation signature\n"));
    break;
  case 0x40:
    printf(gettext("Timestamp signature\n"));
    break;
  case 0x50:
    printf(gettext("Third-Party Confirmation signature\n"));
    break;
  default:
    printf(gettext("Signature Typing error.\n"));
    break;
  }
}
```