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

```asm
<h222_stream_type_str>:
  endbr64
  lea    -0x1d(%rdi),%edx
  lea    D86(%rip),%rax
  cmp    $0x60,%edx
  jbe    L10
  lea    -0x80(%rdi),%edx
  lea    D234(%rip),%rax
  cmp    $0x7f,%edx
  jbe    L10
  cmp    $0x7f,%edi
  ja     L28
  lea    D219(%rip),%rdx
  mov    %edi,%edi
  movslq (%rdx,%rdi,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D138(%rip),%rax
L10:
  ret
  nopw   0x0(%rax,%rax,1)
L28:
  lea    D268(%rip),%rax
  ret
  lea    D49(%rip),%rax
  ret
  lea    D232(%rip),%rax
  ret
  lea    D118(%rip),%rax
  ret
  lea    D88(%rip),%rax
  ret
  lea    D294(%rip),%rax
  ret
  lea    D122(%rip),%rax
  ret
  lea    D51(%rip),%rax
  ret
  lea    D174(%rip),%rax
  ret
  lea    D60(%rip),%rax
  ret
  lea    D316(%rip),%rax
  ret
  lea    D293(%rip),%rax
  ret
  lea    D329(%rip),%rax
  ret
  lea    D89(%rip),%rax
  ret
  lea    D18(%rip),%rax
  ret
  lea    D274(%rip),%rax
  ret
  lea    D248(%rip),%rax
  ret
  lea    D177(%rip),%rax
  ret
  lea    D286(%rip),%rax
  ret
  lea    D148(%rip),%rax
  ret
  lea    D282(%rip),%rax
  ret
  lea    D190(%rip),%rax
  ret
  lea    D10(%rip),%rax
  ret
  lea    D215(%rip),%rax
  ret
  lea    D301(%rip),%rax
  ret
  lea    D266(%rip),%rax
  ret
  lea    D313(%rip),%rax
  ret
  lea    D40(%rip),%rax
  ret
  lea    D37(%rip),%rax
  ret
```

tool_calls: name: read_data
arguments: tag: D86
datatype: string
name: read_data
arguments: tag: D234
datatype: string
name: read_data
arguments: tag: D138
datatype: string
name: read_data
arguments: tag: D268
datatype: string
name: read_data
arguments: tag: D49
datatype: string
name: read_data
arguments: tag: D232
datatype: string
name: read_data
arguments: tag: D118
datatype: string
name: read_data
arguments: tag: D88
datatype: string
name: read_data
arguments: tag: D294
datatype: string
name: read_data
arguments: tag: D122
datatype: string
name: read_data
arguments: tag: D51
datatype: string
name: read_data
arguments: tag: D174
datatype: string
name: read_data
arguments: tag: D60
datatype: string
name: read_data
arguments: tag: D316
datatype: string
name: read_data
arguments: tag: D293
datatype: string
name: read_data
arguments: tag: D329
datatype: string
name: read_data
arguments: tag: D89
datatype: string
name: read_data
arguments: tag: D18
datatype: string
name: read_data
arguments: tag: D274
datatype: string
name: read_data
arguments: tag: D248
datatype: string
name: read_data
arguments: tag: D177
datatype: string
name: read_data
arguments: tag: D286
datatype: string
name: read_data
arguments: tag: D148
datatype: string
name: read_data
arguments: tag: D282
datatype: string
name: read_data
arguments: tag: D190
datatype: string
name: read_data
arguments: tag: D10
datatype: string
name: read_data
arguments: tag: D215
datatype: string
name: read_data
arguments: tag: D301
datatype: string
name: read_data
arguments: tag: D266
datatype: string
name: read_data
arguments: tag: D313
datatype: string
name: read_data
arguments: tag: D40
datatype: string
name: read_data
arguments: tag: D37
datatype: string

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

tool: D234: User private

tool: D138: Reserved

tool: D268: Unrecognised

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

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

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

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

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

tool: D122: 13522 MHEG

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

tool: D174: H.222.1

tool: D60: 13818-6 type A

tool: D316: 13818-6 type B

tool: D293: 13818-6 type C

tool: D329: 13818-6 type D

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

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

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

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

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

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

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

tool: D282: Metadata in PES packets

tool: D190: Metadata in metadata_sections

tool: D10: Metadata in 13818-6 Data Carousel

tool: D215: Metadata in 13818-6 Object Carousel

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

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

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

tool: D40: IPMP stream

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

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";
    }
}
```