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

```asm
<vo_format_name>:
  endbr64
  cmp    $0x4d504553,%edi
  je     L363
  jg     L144
  lea    D146(%rip),%rax
  cmp    $0x32555949,%edi
  je     L163
  jle    L153
  cmp    $0x42475220,%edi
  jg     L2
  cmp    $0x42475200,%edi
  jg     L183
  lea    D285(%rip),%rax
  cmp    $0x39304649,%edi
  je     L163
  jle    L255
  cmp    $0x39555659,%edi
  lea    D479(%rip),%rax
  lea    D8(%rip),%rdx
  cmove  %rdx,%rax
  ret
L153:
  lea    D675(%rip),%rax
  cmp    $0x31435949,%edi
  je     L163
  jle    L321
  lea    D159(%rip),%rax
  cmp    $0x32315659,%edi
  je     L163
  jle    L230
  lea    D604(%rip),%rax
  cmp    $0x32323456,%edi
  je     L163
  cmp    $0x32323459,%edi
  lea    D479(%rip),%rax
  lea    D720(%rip),%rdx
  cmove  %rdx,%rax
  ret
L321:
  lea    D699(%rip),%rax
  cmp    $0x30303859,%edi
  je     L163
  jle    L172
  lea    D215(%rip),%rax
  cmp    $0x31313259,%edi
  je     L163
  cmp    $0x3132564e,%edi
  jne    L429
  lea    D354(%rip),%rax
  ret
L172:
  lea    D485(%rip),%rax
  cmp    $0x1dc70082,%edi
  je     L163
  cmp    $0x20203859,%edi
  jne    L304
  lea    D664(%rip),%rax
  ret
L304:
  cmp    $0x1dc70002,%edi
  lea    D479(%rip),%rax
  lea    D14(%rip),%rdx
  cmove  %rdx,%rax
  ret
L338:
  sub    $0x52474201,%edi
  cmp    $0x1f,%edi
  ja     L354
  mov    %edi,%edi
  lea    D281(%rip),%rdx
  movslq (%rdx,%rdi,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D46(%rip),%rax
  ret
L354:
  lea    D479(%rip),%rax
  ret
L183:
  sub    $0x42475201,%edi
  cmp    $0x1f,%edi
  ja     L300
  mov    %edi,%edi
  lea    D76(%rip),%rdx
  movslq (%rdx,%rdi,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D587(%rip),%rax
  ret
L300:
  lea    D479(%rip),%rax
  ret
L429:
  cmp    $0x30323449,%edi
  lea    D479(%rip),%rax
  lea    D395(%rip),%rdx
  cmove  %rdx,%rax
  ret
L230:
  lea    D192(%rip),%rax
  cmp    $0x32314d48,%edi
  je     L163
  cmp    $0x3231564e,%edi
  jne    L334
  lea    D123(%rip),%rax
  ret
L334:
  cmp    $0x31555949,%edi
  lea    D479(%rip),%rax
  lea    D207(%rip),%rdx
  cmove  %rdx,%rax
  ret
L255:
  lea    D203(%rip),%rax
  cmp    $0x32595559,%edi
  je     L163
  cmp    $0x35353656,%edi
  lea    D479(%rip),%rax
  lea    D534(%rip),%rdx
  cmove  %rdx,%rax
  ret
L2:
  lea    D656(%rip),%rax
  cmp    $0x42475284,%edi
  je     L163
  cmp    $0x4c504c43,%edi
  jne    L104
  lea    D385(%rip),%rax
  ret
L104:
  cmp    $0x42475260,%edi
  lea    D479(%rip),%rax
  lea    D369(%rip),%rdx
  cmove  %rdx,%rax
  ret
L144:
  lea    D71(%rip),%rax
  cmp    $0x52474284,%edi
  je     L163
  jle    L44
  lea    D390(%rip),%rax
  cmp    $0x56555949,%edi
  je     L163
  jle    L229
  lea    D278(%rip),%rax
  cmp    $0x5a524954,%edi
  je     L163
  jle    L301
  lea    D565(%rip),%rax
  cmp    $0x5a524e49,%edi
  je     L163
  cmp    $0x76757963,%edi
  lea    D479(%rip),%rax
  lea    D540(%rip),%rdx
  cmove  %rdx,%rax
  ret
L44:
  cmp    $0x52474220,%edi
  jg     L29
  cmp    $0x52474200,%edi
  jg     L338
  lea    D267(%rip),%rax
  cmp    $0x50343434,%edi
  je     L163
  jle    L343
  lea    D134(%rip),%rax
  cmp    $0x50565559,%edi
  je     L163
  cmp    $0x50565955,%edi
  lea    D479(%rip),%rax
  lea    D58(%rip),%rdx
  cmove  %rdx,%rax
  ret
L343:
  lea    D641(%rip),%rax
  cmp    $0x50313459,%edi
  je     L163
  cmp    $0x50323234,%edi
  jne    L208
  lea    D17(%rip),%rax
  ret
L208:
  cmp    $0x50313134,%edi
  lea    D479(%rip),%rax
  lea    D470(%rip),%rdx
  cmove  %rdx,%rax
  ret
L29:
  cmp    $0x52474260,%edi
  lea    D479(%rip),%rax
  lea    D663(%rip),%rdx
  cmove  %rdx,%rax
  ret
L229:
  lea    D705(%rip),%rax
  cmp    $0x55595659,%edi
  je     L163
  jle    L367
  lea    D129(%rip),%rax
  cmp    $0x564e5559,%edi
  je     L163
  cmp    $0x564e5955,%edi
  lea    D479(%rip),%rax
  lea    D429(%rip),%rdx
  cmove  %rdx,%rax
  ret
L367:
  lea    D584(%rip),%rax
  cmp    $0x54313459,%edi
  je     L163
  cmp    $0x54323459,%edi
  jne    L146
  lea    D16(%rip),%rax
  ret
L146:
  cmp    $0x524a4c43,%edi
  lea    D479(%rip),%rax
  lea    D72(%rip),%rdx
  cmove  %rdx,%rax
  ret
L301:
  lea    D25(%rip),%rax
  cmp    $0x59565955,%edi
  je     L163
  cmp    $0x5a524942,%edi
  jne    L30
  lea    D542(%rip),%rax
L163:
  ret
L30:
  cmp    $0x56595549,%edi
  lea    D479(%rip),%rax
  lea    D314(%rip),%rdx
  cmove  %rdx,%rax
  ret
  lea    D455(%rip),%rax
  ret
  lea    D65(%rip),%rax
  ret
  lea    D703(%rip),%rax
  ret
  lea    D313(%rip),%rax
  ret
  lea    D307(%rip),%rax
  ret
  lea    D613(%rip),%rax
  ret
  lea    D78(%rip),%rax
  ret
  lea    D381(%rip),%rax
  ret
  lea    D646(%rip),%rax
  ret
  lea    D262(%rip),%rax
  ret
L363:
  lea    D637(%rip),%rax
  ret
  lea    D221(%rip),%rax
  ret
  lea    D11(%rip),%rax
  ret
```

tool_calls: name: retrieve_data
arguments: label: D146
type_guessed: string
name: retrieve_data
arguments: label: D285
type_guessed: string
name: retrieve_data
arguments: label: D479
type_guessed: string
name: retrieve_data
arguments: label: D8
type_guessed: string
name: retrieve_data
arguments: label: D675
type_guessed: string
name: retrieve_data
arguments: label: D159
type_guessed: string
name: retrieve_data
arguments: label: D604
type_guessed: string
name: retrieve_data
arguments: label: D720
type_guessed: string
name: retrieve_data
arguments: label: D699
type_guessed: string
name: retrieve_data
arguments: label: D215
type_guessed: string
name: retrieve_data
arguments: label: D354
type_guessed: string
name: retrieve_data
arguments: label: D485
type_guessed: string
name: retrieve_data
arguments: label: D664
type_guessed: string
name: retrieve_data
arguments: label: D14
type_guessed: string
name: retrieve_data
arguments: label: D46
type_guessed: string
name: retrieve_data
arguments: label: D587
type_guessed: string
name: retrieve_data
arguments: label: D395
type_guessed: string
name: retrieve_data
arguments: label: D192
type_guessed: string
name: retrieve_data
arguments: label: D123
type_guessed: string
name: retrieve_data
arguments: label: D207
type_guessed: string
name: retrieve_data
arguments: label: D203
type_guessed: string
name: retrieve_data
arguments: label: D534
type_guessed: string
name: retrieve_data
arguments: label: D656
type_guessed: string
name: retrieve_data
arguments: label: D385
type_guessed: string
name: retrieve_data
arguments: label: D369
type_guessed: string
name: retrieve_data
arguments: label: D71
type_guessed: string
name: retrieve_data
arguments: label: D390
type_guessed: string
name: retrieve_data
arguments: label: D278
type_guessed: string
name: retrieve_data
arguments: label: D565
type_guessed: string
name: retrieve_data
arguments: label: D540
type_guessed: string
name: retrieve_data
arguments: label: D267
type_guessed: string
name: retrieve_data
arguments: label: D134
type_guessed: string
name: retrieve_data
arguments: label: D58
type_guessed: string
name: retrieve_data
arguments: label: D641
type_guessed: string
name: retrieve_data
arguments: label: D17
type_guessed: string
name: retrieve_data
arguments: label: D470
type_guessed: string
name: retrieve_data
arguments: label: D663
type_guessed: string
name: retrieve_data
arguments: label: D705
type_guessed: string
name: retrieve_data
arguments: label: D129
type_guessed: string
name: retrieve_data
arguments: label: D429
type_guessed: string
name: retrieve_data
arguments: label: D584
type_guessed: string
name: retrieve_data
arguments: label: D16
type_guessed: string
name: retrieve_data
arguments: label: D72
type_guessed: string
name: retrieve_data
arguments: label: D25
type_guessed: string
name: retrieve_data
arguments: label: D542
type_guessed: string
name: retrieve_data
arguments: label: D314
type_guessed: string
name: retrieve_data
arguments: label: D455
type_guessed: string
name: retrieve_data
arguments: label: D65
type_guessed: string
name: retrieve_data
arguments: label: D703
type_guessed: string
name: retrieve_data
arguments: label: D313
type_guessed: string
name: retrieve_data
arguments: label: D307
type_guessed: string
name: retrieve_data
arguments: label: D613
type_guessed: string
name: retrieve_data
arguments: label: D78
type_guessed: string
name: retrieve_data
arguments: label: D381
type_guessed: string
name: retrieve_data
arguments: label: D646
type_guessed: string
name: retrieve_data
arguments: label: D262
type_guessed: string
name: retrieve_data
arguments: label: D637
type_guessed: string
name: retrieve_data
arguments: label: D221
type_guessed: string
name: retrieve_data
arguments: label: D11
type_guessed: string

tool: D146: Packed IYU2

tool: D285: Planar IF09

tool: D479: Unknown

tool: D8: Planar YVU9

tool: D675: Packed IY41

tool: D159: Planar YV12

tool: D604: Packed V422

tool: D720: Packed Y422

tool: D699: Planar Y800

tool: D215: Packed Y211

tool: D354: Planar NV21

tool: D485: MPEG1/2 Motion Compensation and IDCT

tool: D664: Planar Y8

tool: D14: MPEG1/2 Motion Compensation

tool: D46: RGB 4-bit

tool: D587: BGR 1-bit

tool: D395: Planar I420

tool: D192: Planar NV12 Macroblock

tool: D123: Planar NV12

tool: D207: Packed IYU1

tool: D203: Packed YUY2

tool: D534: Packed V655

tool: D656: BGR 4-bit per byte

tool: D385: Planar CLPL

tool: D369: ABGR

tool: D71: RGB 4-bit per byte

tool: D390: Planar IYUV

tool: D278: Zoran MJPEG top field first

tool: D565: Zoran MJPEG non-interlaced

tool: D540: Packed CYUV

tool: D267: Planar 444P

tool: D134: Packed YUVP

tool: D58: Packed UYVP

tool: D641: Packed Y41P

tool: D17: Planar 422P

tool: D470: Planar 411P

tool: D663: ARGB

tool: D705: Packed YVYU

tool: D129: Packed YUNV

tool: D429: Packed UYNV

tool: D584: Packed Y41T

tool: D16: Packed Y42T

tool: D72: Packed CLJR

tool: D25: Packed UYVY

tool: D542: Zoran MJPEG bottom field first

tool: D314: Packed IUYV

tool: D455: RGB 8-bit

tool: D65: RGB 15-bit

tool: D703: RGB 16-bit

tool: D313: RGB 24-bit

tool: D307: BGR 8-bit

tool: D613: BGR 15-bit

tool: D78: BGR 16-bit

tool: D381: BGR 24-bit

tool: D646: BGRA

tool: D262: RGBA

tool: D637: Mpeg PES

tool: D221: RGB 1-bit

tool: D11: BGR 4-bit

assistant: ```c
const char *vo_format_name(int format) {
  switch (format) {
  case ((('R' << 24) | ('G' << 16) | ('B' << 8)) | 1):
    return ("RGB 1-bit");
  case ((('R' << 24) | ('G' << 16) | ('B' << 8)) | 4):
    return ("RGB 4-bit");
  case ((('R' << 24) | ('G' << 16) | ('B' << 8)) | 4 | 128):
    return ("RGB 4-bit per byte");
  case ((('R' << 24) | ('G' << 16) | ('B' << 8)) | 8):
    return ("RGB 8-bit");
  case ((('R' << 24) | ('G' << 16) | ('B' << 8)) | 15):
    return ("RGB 15-bit");
  case ((('R' << 24) | ('G' << 16) | ('B' << 8)) | 16):
    return ("RGB 16-bit");
  case ((('R' << 24) | ('G' << 16) | ('B' << 8)) | 24):
    return ("RGB 24-bit");
  case ((('B' << 24) | ('G' << 16) | ('R' << 8)) | 1):
    return ("BGR 1-bit");
  case ((('B' << 24) | ('G' << 16) | ('R' << 8)) | 4):
    return ("BGR 4-bit");
  case ((('B' << 24) | ('G' << 16) | ('R' << 8)) | 4 | 128):
    return ("BGR 4-bit per byte");
  case ((('B' << 24) | ('G' << 16) | ('R' << 8)) | 8):
    return ("BGR 8-bit");
  case ((('B' << 24) | ('G' << 16) | ('R' << 8)) | 15):
    return ("BGR 15-bit");
  case ((('B' << 24) | ('G' << 16) | ('R' << 8)) | 16):
    return ("BGR 16-bit");
  case ((('B' << 24) | ('G' << 16) | ('R' << 8)) | 24):
    return ("BGR 24-bit");
  case (((('B' << 24) | ('G' << 16) | ('R' << 8)) | 32) | 64):
    return ("ABGR");
  case ((('B' << 24) | ('G' << 16) | ('R' << 8)) | 32):
    return ("BGRA");
  case (((('R' << 24) | ('G' << 16) | ('B' << 8)) | 32) | 64):
    return ("ARGB");
  case ((('R' << 24) | ('G' << 16) | ('B' << 8)) | 32):
    return ("RGBA");
  case 0x39555659:
    return ("Planar YVU9");
  case 0x39304649:
    return ("Planar IF09");
  case 0x32315659:
    return ("Planar YV12");
  case 0x30323449:
    return ("Planar I420");
  case 0x56555949:
    return ("Planar IYUV");
  case 0x4C504C43:
    return ("Planar CLPL");
  case 0x30303859:
    return ("Planar Y800");
  case 0x20203859:
    return ("Planar Y8");
  case 0x50343434:
    return ("Planar 444P");
  case 0x50323234:
    return ("Planar 422P");
  case 0x50313134:
    return ("Planar 411P");
  case 0x3231564E:
    return ("Planar NV12");
  case 0x3132564E:
    return ("Planar NV21");
  case 0x32314D48:
    return ("Planar NV12 Macroblock");
  case 0x56595549:
    return ("Packed IUYV");
  case 0x31435949:
    return ("Packed IY41");
  case 0x31555949:
    return ("Packed IYU1");
  case 0x32555949:
    return ("Packed IYU2");
  case 0x59565955:
    return ("Packed UYVY");
  case 0x564E5955:
    return ("Packed UYNV");
  case 0x76757963:
    return ("Packed CYUV");
  case 0x32323459:
    return ("Packed Y422");
  case 0x32595559:
    return ("Packed YUY2");
  case 0x564E5559:
    return ("Packed YUNV");
  case 0x55595659:
    return ("Packed YVYU");
  case 0x50313459:
    return ("Packed Y41P");
  case 0x31313259:
    return ("Packed Y211");
  case 0x54313459:
    return ("Packed Y41T");
  case 0x54323459:
    return ("Packed Y42T");
  case 0x32323456:
    return ("Packed V422");
  case 0x35353656:
    return ("Packed V655");
  case 0x524A4C43:
    return ("Packed CLJR");
  case 0x50565559:
    return ("Packed YUVP");
  case 0x50565955:
    return ("Packed UYVP");
  case (('M' << 24) | ('P' << 16) | ('E' << 8) | ('S')):
    return ("Mpeg PES");
  case (('Z' << 24) | ('R' << 16) | ('N' << 8) | ('I')):
    return ("Zoran MJPEG non-interlaced");
  case (('Z' << 24) | ('R' << 16) | ('I' << 8) | ('T')):
    return ("Zoran MJPEG top field first");
  case (('Z' << 24) | ('R' << 16) | ('I' << 8) | ('B')):
    return ("Zoran MJPEG bottom field first");
  case (0x1DC70000 | 0x02):
    return ("MPEG1/2 Motion Compensation");
  case (0x1DC70000 | 0x82):
    return ("MPEG1/2 Motion Compensation and IDCT");
  }
  return ("Unknown");
}
```