user: Translate the below assembly code into C programming language:

```asm
<h222_stream_type_str>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %edi,-0x4(%rbp)
  cmpl   $0x1c,-0x4(%rbp)
  jbe    L291
  cmpl   $0x7d,-0x4(%rbp)
  ja     L291
  lea    D212(%rip),%rax
  jmp    L260
L291:
  cmpl   $0x7f,-0x4(%rbp)
  jbe    L4
  cmpl   $0xff,-0x4(%rbp)
  ja     L4
  lea    D178(%rip),%rax
  jmp    L260
L4:
  cmpl   $0x81,-0x4(%rbp)
  ja     L136
  mov    -0x4(%rbp),%eax
  lea    0x0(,%rax,4),%rdx
  lea    D267(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D267(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D5(%rip),%rax
  jmp    L260
  lea    D16(%rip),%rax
  jmp    L260
  lea    D73(%rip),%rax
  jmp    L260
  lea    D203(%rip),%rax
  jmp    L260
  lea    D22(%rip),%rax
  jmp    L260
  lea    D369(%rip),%rax
  jmp    L260
  lea    D327(%rip),%rax
  jmp    L260
  lea    D57(%rip),%rax
  jmp    L260
  lea    D173(%rip),%rax
  jmp    L260
  lea    D15(%rip),%rax
  jmp    L260
  lea    D372(%rip),%rax
  jmp    L260
  lea    D20(%rip),%rax
  jmp    L260
  lea    D100(%rip),%rax
  jmp    L260
  lea    D152(%rip),%rax
  jmp    L260
  lea    D363(%rip),%rax
  jmp    L260
  lea    D362(%rip),%rax
  jmp    L260
  lea    D148(%rip),%rax
  jmp    L260
  lea    D154(%rip),%rax
  jmp    L260
  lea    D56(%rip),%rax
  jmp    L260
  lea    D77(%rip),%rax
  jmp    L260
  lea    D180(%rip),%rax
  jmp    L260
  lea    D179(%rip),%rax
  jmp    L260
  lea    D121(%rip),%rax
  jmp    L260
  lea    D10(%rip),%rax
  jmp    L260
  lea    D140(%rip),%rax
  jmp    L260
  lea    D111(%rip),%rax
  jmp    L260
  lea    D107(%rip),%rax
  jmp    L260
  lea    D122(%rip),%rax
  jmp    L260
  lea    D221(%rip),%rax
  jmp    L260
  lea    D174(%rip),%rax
  jmp    L260
  lea    D137(%rip),%rax
  jmp    L260
  lea    D288(%rip),%rax
  jmp    L260
  lea    D67(%rip),%rax
  jmp    L260
L136:
  lea    D69(%rip),%rax
L260:
  pop    %rbp
  ret
```

tool_calls: name: retrieve_data
arguments: data_label: D212
datatype: string
name: retrieve_data
arguments: data_label: D178
datatype: string
name: retrieve_data
arguments: data_label: D5
datatype: string
name: retrieve_data
arguments: data_label: D16
datatype: string
name: retrieve_data
arguments: data_label: D73
datatype: string
name: retrieve_data
arguments: data_label: D203
datatype: string
name: retrieve_data
arguments: data_label: D22
datatype: string
name: retrieve_data
arguments: data_label: D369
datatype: string
name: retrieve_data
arguments: data_label: D327
datatype: string
name: retrieve_data
arguments: data_label: D57
datatype: string
name: retrieve_data
arguments: data_label: D173
datatype: string
name: retrieve_data
arguments: data_label: D15
datatype: string
name: retrieve_data
arguments: data_label: D372
datatype: string
name: retrieve_data
arguments: data_label: D20
datatype: string
name: retrieve_data
arguments: data_label: D100
datatype: string
name: retrieve_data
arguments: data_label: D152
datatype: string
name: retrieve_data
arguments: data_label: D363
datatype: string
name: retrieve_data
arguments: data_label: D362
datatype: string
name: retrieve_data
arguments: data_label: D148
datatype: string
name: retrieve_data
arguments: data_label: D154
datatype: string
name: retrieve_data
arguments: data_label: D56
datatype: string
name: retrieve_data
arguments: data_label: D77
datatype: string
name: retrieve_data
arguments: data_label: D180
datatype: string
name: retrieve_data
arguments: data_label: D179
datatype: string
name: retrieve_data
arguments: data_label: D121
datatype: string
name: retrieve_data
arguments: data_label: D10
datatype: string
name: retrieve_data
arguments: data_label: D140
datatype: string
name: retrieve_data
arguments: data_label: D111
datatype: string
name: retrieve_data
arguments: data_label: D107
datatype: string
name: retrieve_data
arguments: data_label: D122
datatype: string
name: retrieve_data
arguments: data_label: D221
datatype: string
name: retrieve_data
arguments: data_label: D174
datatype: string
name: retrieve_data
arguments: data_label: D137
datatype: string
name: retrieve_data
arguments: data_label: D288
datatype: string
name: retrieve_data
arguments: data_label: D67
datatype: string
name: retrieve_data
arguments: data_label: D69
datatype: string

tool: D212: H.220.0/13818-1 reserved

tool: D178: User private

tool: D5: Reserved

tool: D16: 11172-2 video (MPEG-1)

tool: D73: H.262/13818-2 video (MPEG-2) or 11172-2 constrained video

tool: D203: 11172-3 audio (MPEG-1)

tool: D22: 13818-3 audio (MPEG-2)

tool: D369: H.222.0/13818-1  private sections

tool: D327: H.222.0/13818-1 PES private data (maybe Dolby/AC-3 in DVB)

tool: D57: 13522 MHEG

tool: D173: H.222.0/13818-1 Annex A - DSM CC

tool: D15: H.222.1

tool: D372: 13818-6 type A

tool: D20: 13818-6 type B

tool: D100: 13818-6 type C

tool: D152: 13818-6 type D

tool: D363: H.222.0/13818-1 auxiliary

tool: D362: 13818-7 Audio with ADTS transport syntax

tool: D148: 14496-2 Visual (MPEG-4 part 2 video)

tool: D154: 14496-3 Audio with LATM transport syntax (14496-3/AMD 1)

tool: D56: 14496-1 SL-packetized or FlexMux stream in PES packets

tool: D77: 14496-1 SL-packetized or FlexMux stream in 14496 sections

tool: D180: ISO/IEC 13818-6 Synchronized Download Protocol

tool: D179: Metadata in PES packets

tool: D121: Metadata in metadata_sections

tool: D10: Metadata in 13818-6 Data Carousel

tool: D140: Metadata in 13818-6 Object Carousel

tool: D111: Metadata in 13818-6 Synchronized Download Protocol

tool: D107: 13818-11 MPEG-2 IPMP stream

tool: D122: H.264/14496-10 video (MPEG-4/AVC)

tool: D221: HEVC video stream

tool: D174: HEVC temporal video subset (profile Annex A H.265)

tool: D137: AVS Video

tool: D288: IPMP stream

tool: D67: User private (commonly Dolby/AC-3 in ATSC)

tool: D69: Unrecognised

assistant: ```c
extern const char *h222_stream_type_str(unsigned s) {
  if ((0x1C < s) && (s < 0x7E))
    return "H.220.0/13818-1 reserved";
  else if ((0x80 <= s) && (s <= 0xFF))
    return "User private";
  else
    switch (s) {
    case 0x00:
      return "Reserved";
    case 0x01:
      return "11172-2 video (MPEG-1)";
    case 0x02:
      return "H.262/13818-2 video (MPEG-2) or 11172-2 constrained video";
    case 0x03:
      return "11172-3 audio (MPEG-1)";
    case 0x04:
      return "13818-3 audio (MPEG-2)";
    case 0x05:
      return "H.222.0/13818-1  private sections";
    case 0x06:
      return "H.222.0/13818-1 PES private data (maybe Dolby/AC-3 in DVB)";
    case 0x07:
      return "13522 MHEG";
    case 0x08:
      return "H.222.0/13818-1 Annex A - DSM CC";
    case 0x09:
      return "H.222.1";
    case 0x0A:
      return "13818-6 type A";
    case 0x0B:
      return "13818-6 type B";
    case 0x0C:
      return "13818-6 type C";
    case 0x0D:
      return "13818-6 type D";
    case 0x0E:
      return "H.222.0/13818-1 auxiliary";
    case 0x0F:
      return "13818-7 Audio with ADTS transport syntax";
    case 0x10:
      return "14496-2 Visual (MPEG-4 part 2 video)";
    case 0x11:
      return "14496-3 Audio with LATM transport syntax (14496-3/AMD 1)";
    case 0x12:
      return "14496-1 SL-packetized or FlexMux stream in PES packets";
    case 0x13:
      return "14496-1 SL-packetized or FlexMux stream in 14496 sections";
    case 0x14:
      return "ISO/IEC 13818-6 Synchronized Download Protocol";
    case 0x15:
      return "Metadata in PES packets";
    case 0x16:
      return "Metadata in metadata_sections";
    case 0x17:
      return "Metadata in 13818-6 Data Carousel";
    case 0x18:
      return "Metadata in 13818-6 Object Carousel";
    case 0x19:
      return "Metadata in 13818-6 Synchronized Download Protocol";
    case 0x1A:
      return "13818-11 MPEG-2 IPMP stream";
    case 0x1B:
      return "H.264/14496-10 video (MPEG-4/AVC)";
    case 0x24:
      return "HEVC video stream";
    case 0x25:
      return "HEVC temporal video subset (profile Annex A H.265)";
    case 0x42:
      return "AVS Video";
    case 0x7F:
      return "IPMP stream";
    case 0x81:
      return "User private (commonly Dolby/AC-3 in ATSC)";
    default:
      return "Unrecognised";
    }
}
```