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

```asm
<h222_stream_type_str>:
  endbr64
  lea    -0x1d(%rdi),%edx
  lea    D354(%rip),%rax
  cmp    $0x60,%edx
  jbe    L22
  lea    -0x80(%rdi),%edx
  lea    D265(%rip),%rax
  cmp    $0x7f,%edx
  jbe    L22
  cmp    $0x81,%edi
  ja     L21
  mov    %edi,%edi
  lea    D224(%rip),%rdx
  movslq (%rdx,%rdi,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D306(%rip),%rax
  ret
  lea    D325(%rip),%rax
  ret
  lea    D118(%rip),%rax
  ret
  lea    D95(%rip),%rax
  ret
  lea    D27(%rip),%rax
  ret
  lea    D138(%rip),%rax
  ret
  lea    D67(%rip),%rax
  ret
  lea    D7(%rip),%rax
  ret
  lea    D90(%rip),%rax
  ret
  lea    D287(%rip),%rax
  ret
  lea    D52(%rip),%rax
  ret
  lea    D221(%rip),%rax
  ret
  lea    D119(%rip),%rax
  ret
  lea    D210(%rip),%rax
  ret
  lea    D174(%rip),%rax
  ret
  lea    D300(%rip),%rax
  ret
  lea    D182(%rip),%rax
  ret
  lea    D135(%rip),%rax
  ret
  lea    D260(%rip),%rax
  ret
  lea    D107(%rip),%rax
  ret
  lea    D62(%rip),%rax
  ret
  lea    D120(%rip),%rax
  ret
  lea    D177(%rip),%rax
  ret
  lea    D279(%rip),%rax
  ret
  lea    D227(%rip),%rax
  ret
  lea    D176(%rip),%rax
  ret
  lea    D69(%rip),%rax
  ret
  lea    D148(%rip),%rax
  ret
  lea    D168(%rip),%rax
  ret
  lea    D3(%rip),%rax
  ret
  lea    D248(%rip),%rax
  ret
  lea    D23(%rip),%rax
  ret
L21:
  lea    D216(%rip),%rax
  ret
  lea    D340(%rip),%rax
L22:
  ret
```

tool_calls: name: unpack_data
arguments: data_tag: D354
type: string
name: unpack_data
arguments: data_tag: D265
type: string
name: unpack_data
arguments: data_tag: D306
type: string
name: unpack_data
arguments: data_tag: D325
type: string
name: unpack_data
arguments: data_tag: D118
type: string
name: unpack_data
arguments: data_tag: D95
type: string
name: unpack_data
arguments: data_tag: D27
type: string
name: unpack_data
arguments: data_tag: D138
type: string
name: unpack_data
arguments: data_tag: D67
type: string
name: unpack_data
arguments: data_tag: D7
type: string
name: unpack_data
arguments: data_tag: D90
type: string
name: unpack_data
arguments: data_tag: D287
type: string
name: unpack_data
arguments: data_tag: D52
type: string
name: unpack_data
arguments: data_tag: D221
type: string
name: unpack_data
arguments: data_tag: D119
type: string
name: unpack_data
arguments: data_tag: D210
type: string
name: unpack_data
arguments: data_tag: D174
type: string
name: unpack_data
arguments: data_tag: D300
type: string
name: unpack_data
arguments: data_tag: D182
type: string
name: unpack_data
arguments: data_tag: D135
type: string
name: unpack_data
arguments: data_tag: D260
type: string
name: unpack_data
arguments: data_tag: D107
type: string
name: unpack_data
arguments: data_tag: D62
type: string
name: unpack_data
arguments: data_tag: D120
type: string
name: unpack_data
arguments: data_tag: D177
type: string
name: unpack_data
arguments: data_tag: D279
type: string
name: unpack_data
arguments: data_tag: D227
type: string
name: unpack_data
arguments: data_tag: D176
type: string
name: unpack_data
arguments: data_tag: D69
type: string
name: unpack_data
arguments: data_tag: D148
type: string
name: unpack_data
arguments: data_tag: D168
type: string
name: unpack_data
arguments: data_tag: D3
type: string
name: unpack_data
arguments: data_tag: D248
type: string
name: unpack_data
arguments: data_tag: D23
type: string
name: unpack_data
arguments: data_tag: D216
type: string
name: unpack_data
arguments: data_tag: D340
type: string

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

tool: D265: User private

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

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

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

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

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

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

tool: D67: 13522 MHEG

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

tool: D90: H.222.1

tool: D287: 13818-6 type A

tool: D52: 13818-6 type B

tool: D221: 13818-6 type C

tool: D119: 13818-6 type D

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

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

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

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

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

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

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

tool: D62: Metadata in PES packets

tool: D120: Metadata in metadata_sections

tool: D177: Metadata in 13818-6 Data Carousel

tool: D279: Metadata in 13818-6 Object Carousel

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

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

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

tool: D148: HEVC video stream

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

tool: D3: AVS Video

tool: D248: IPMP stream

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

tool: D216: Unrecognised

tool: D340: Reserved

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