user: Please show me the C implementation that matches the assembly code listed below:

```asm
<version_name>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %edi,-0x4(%rbp)
  cmpl   $0xfeff,-0x4(%rbp)
  je     L68
  cmpl   $0xfeff,-0x4(%rbp)
  ja     L320
  cmpl   $0xfefd,-0x4(%rbp)
  je     L429
  cmpl   $0xfefd,-0x4(%rbp)
  ja     L320
  cmpl   $0xfb28,-0x4(%rbp)
  je     L52
  cmpl   $0xfb28,-0x4(%rbp)
  ja     L320
  cmpl   $0xfb1a,-0x4(%rbp)
  je     L563
  cmpl   $0xfb1a,-0x4(%rbp)
  ja     L320
  cmpl   $0xfb17,-0x4(%rbp)
  je     L550
  cmpl   $0xfb17,-0x4(%rbp)
  ja     L320
  cmpl   $0xfb16,-0x4(%rbp)
  je     L510
  cmpl   $0xfb16,-0x4(%rbp)
  ja     L320
  cmpl   $0xfafa,-0x4(%rbp)
  je     L482
  cmpl   $0xfafa,-0x4(%rbp)
  ja     L320
  cmpl   $0xeaea,-0x4(%rbp)
  je     L482
  cmpl   $0xeaea,-0x4(%rbp)
  ja     L320
  cmpl   $0xdada,-0x4(%rbp)
  je     L482
  cmpl   $0xdada,-0x4(%rbp)
  ja     L320
  cmpl   $0xcaca,-0x4(%rbp)
  je     L482
  cmpl   $0xcaca,-0x4(%rbp)
  ja     L320
  cmpl   $0xbaba,-0x4(%rbp)
  je     L482
  cmpl   $0xbaba,-0x4(%rbp)
  ja     L320
  cmpl   $0xaaaa,-0x4(%rbp)
  je     L482
  cmpl   $0xaaaa,-0x4(%rbp)
  ja     L320
  cmpl   $0x9a9a,-0x4(%rbp)
  je     L482
  cmpl   $0x9a9a,-0x4(%rbp)
  ja     L320
  cmpl   $0x8a8a,-0x4(%rbp)
  je     L482
  cmpl   $0x8a8a,-0x4(%rbp)
  ja     L320
  cmpl   $0x7f1c,-0x4(%rbp)
  ja     L320
  cmpl   $0x7f00,-0x4(%rbp)
  jae    L856
  cmpl   $0x7e02,-0x4(%rbp)
  je     L161
  cmpl   $0x7e02,-0x4(%rbp)
  ja     L320
  cmpl   $0x7e01,-0x4(%rbp)
  je     L731
  cmpl   $0x7e01,-0x4(%rbp)
  ja     L320
  cmpl   $0x7a7a,-0x4(%rbp)
  je     L482
  cmpl   $0x7a7a,-0x4(%rbp)
  ja     L320
  cmpl   $0x6a6a,-0x4(%rbp)
  je     L482
  cmpl   $0x6a6a,-0x4(%rbp)
  ja     L320
  cmpl   $0x5a5a,-0x4(%rbp)
  je     L482
  cmpl   $0x5a5a,-0x4(%rbp)
  ja     L320
  cmpl   $0x4a4a,-0x4(%rbp)
  je     L482
  cmpl   $0x4a4a,-0x4(%rbp)
  ja     L320
  cmpl   $0x3a3a,-0x4(%rbp)
  je     L482
  cmpl   $0x3a3a,-0x4(%rbp)
  ja     L320
  cmpl   $0x2a2a,-0x4(%rbp)
  je     L482
  cmpl   $0x2a2a,-0x4(%rbp)
  ja     L320
  cmpl   $0x1a1a,-0x4(%rbp)
  je     L482
  cmpl   $0x1a1a,-0x4(%rbp)
  ja     L320
  cmpl   $0x304,-0x4(%rbp)
  ja     L410
  cmpl   $0x300,-0x4(%rbp)
  jae    L210
  jmp    L320
L856:
  mov    -0x4(%rbp),%eax
  sub    $0x7f00,%eax
  cmp    $0x1c,%eax
  ja     L320
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D126(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D126(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
L210:
  mov    -0x4(%rbp),%eax
  sub    $0x300,%eax
  cmp    $0x4,%eax
  ja     L320
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D27(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D27(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
L410:
  cmpl   $0xa0a,-0x4(%rbp)
  je     L482
L320:
  mov    $0x0,%eax
  jmp    L933
  lea    D380(%rip),%rax
  jmp    L933
  lea    D404(%rip),%rax
  jmp    L933
  lea    D376(%rip),%rax
  jmp    L933
  lea    D367(%rip),%rax
  jmp    L933
  lea    D199(%rip),%rax
  jmp    L933
  lea    D295(%rip),%rax
  jmp    L933
  lea    D33(%rip),%rax
  jmp    L933
  lea    D290(%rip),%rax
  jmp    L933
  lea    D170(%rip),%rax
  jmp    L933
  lea    D442(%rip),%rax
  jmp    L933
  lea    D242(%rip),%rax
  jmp    L933
  lea    D467(%rip),%rax
  jmp    L933
  lea    D22(%rip),%rax
  jmp    L933
  lea    D252(%rip),%rax
  jmp    L933
  lea    D456(%rip),%rax
  jmp    L933
  lea    D44(%rip),%rax
  jmp    L933
  lea    D293(%rip),%rax
  jmp    L933
  lea    D286(%rip),%rax
  jmp    L933
  lea    D292(%rip),%rax
  jmp    L933
  lea    D325(%rip),%rax
  jmp    L933
  lea    D303(%rip),%rax
  jmp    L933
  lea    D196(%rip),%rax
  jmp    L933
  lea    D269(%rip),%rax
  jmp    L933
  lea    D93(%rip),%rax
  jmp    L933
  lea    D42(%rip),%rax
  jmp    L933
  lea    D206(%rip),%rax
  jmp    L933
  lea    D28(%rip),%rax
  jmp    L933
  lea    D0(%rip),%rax
  jmp    L933
  lea    D30(%rip),%rax
  jmp    L933
  lea    D247(%rip),%rax
  jmp    L933
  lea    D76(%rip),%rax
  jmp    L933
  lea    D399(%rip),%rax
  jmp    L933
  lea    D109(%rip),%rax
  jmp    L933
  lea    D9(%rip),%rax
  jmp    L933
L510:
  lea    D318(%rip),%rax
  jmp    L933
L550:
  lea    D260(%rip),%rax
  jmp    L933
L563:
  lea    D385(%rip),%rax
  jmp    L933
L52:
  lea    D142(%rip),%rax
  jmp    L933
L68:
  lea    D215(%rip),%rax
  jmp    L933
L429:
  lea    D121(%rip),%rax
  jmp    L933
L731:
  lea    D267(%rip),%rax
  jmp    L933
L161:
  lea    D230(%rip),%rax
  jmp    L933
L482:
  lea    D402(%rip),%rax
L933:
  pop    %rbp
  ret
```

tool_calls: name: parse_data
arguments: label: D380
type_guessed: string
name: parse_data
arguments: label: D404
type_guessed: string
name: parse_data
arguments: label: D376
type_guessed: string
name: parse_data
arguments: label: D367
type_guessed: string
name: parse_data
arguments: label: D199
type_guessed: string
name: parse_data
arguments: label: D295
type_guessed: string
name: parse_data
arguments: label: D33
type_guessed: string
name: parse_data
arguments: label: D290
type_guessed: string
name: parse_data
arguments: label: D170
type_guessed: string
name: parse_data
arguments: label: D442
type_guessed: string
name: parse_data
arguments: label: D242
type_guessed: string
name: parse_data
arguments: label: D467
type_guessed: string
name: parse_data
arguments: label: D22
type_guessed: string
name: parse_data
arguments: label: D252
type_guessed: string
name: parse_data
arguments: label: D456
type_guessed: string
name: parse_data
arguments: label: D44
type_guessed: string
name: parse_data
arguments: label: D293
type_guessed: string
name: parse_data
arguments: label: D286
type_guessed: string
name: parse_data
arguments: label: D292
type_guessed: string
name: parse_data
arguments: label: D325
type_guessed: string
name: parse_data
arguments: label: D303
type_guessed: string
name: parse_data
arguments: label: D196
type_guessed: string
name: parse_data
arguments: label: D269
type_guessed: string
name: parse_data
arguments: label: D93
type_guessed: string
name: parse_data
arguments: label: D42
type_guessed: string
name: parse_data
arguments: label: D206
type_guessed: string
name: parse_data
arguments: label: D28
type_guessed: string
name: parse_data
arguments: label: D0
type_guessed: string
name: parse_data
arguments: label: D30
type_guessed: string
name: parse_data
arguments: label: D247
type_guessed: string
name: parse_data
arguments: label: D76
type_guessed: string
name: parse_data
arguments: label: D399
type_guessed: string
name: parse_data
arguments: label: D109
type_guessed: string
name: parse_data
arguments: label: D9
type_guessed: string
name: parse_data
arguments: label: D318
type_guessed: string
name: parse_data
arguments: label: D260
type_guessed: string
name: parse_data
arguments: label: D385
type_guessed: string
name: parse_data
arguments: label: D142
type_guessed: string
name: parse_data
arguments: label: D215
type_guessed: string
name: parse_data
arguments: label: D121
type_guessed: string
name: parse_data
arguments: label: D267
type_guessed: string
name: parse_data
arguments: label: D230
type_guessed: string
name: parse_data
arguments: label: D402
type_guessed: string

tool: D380: SSL_3_0

tool: D404: TLS_1_0

tool: D376: TLS_1_1

tool: D367: TLS_1_2

tool: D199: TLS_1_3

tool: D295: TLS_1_3_DRAFT0

tool: D33: TLS_1_3_DRAFT1

tool: D290: TLS_1_3_DRAFT2

tool: D170: TLS_1_3_DRAFT3

tool: D442: TLS_1_3_DRAFT4

tool: D242: TLS_1_3_DRAFT5

tool: D467: TLS_1_3_DRAFT6

tool: D22: TLS_1_3_DRAFT7

tool: D252: TLS_1_3_DRAFT8

tool: D456: TLS_1_3_DRAFT9

tool: D44: TLS_1_3_DRAFT10

tool: D293: TLS_1_3_DRAFT11

tool: D286: TLS_1_3_DRAFT12

tool: D292: TLS_1_3_DRAFT13

tool: D325: TLS_1_3_DRAFT14

tool: D303: TLS_1_3_DRAFT15

tool: D196: TLS_1_3_DRAFT16

tool: D269: TLS_1_3_DRAFT17

tool: D93: TLS_1_3_DRAFT18

tool: D42: TLS_1_3_DRAFT19

tool: D206: TLS_1_3_DRAFT20

tool: D28: TLS_1_3_DRAFT21

tool: D0: TLS_1_3_DRAFT22

tool: D30: TLS_1_3_DRAFT23

tool: D247: TLS_1_3_DRAFT24

tool: D76: TLS_1_3_DRAFT25

tool: D399: TLS_1_3_DRAFT26

tool: D109: TLS_1_3_DRAFT27

tool: D9: TLS_1_3_DRAFT28

tool: D318: TLS_1_3_FB22

tool: D260: TLS_1_3_FB23

tool: D385: TLS_1_3_FB26

tool: D142: TLS_1_3_FB40

tool: D215: DTLS_1_0

tool: D121: DTLS_1_1

tool: D267: TLS_1_3_7E01

tool: D230: TLS_1_3_7E02

tool: D402: GOOGLE_GREASE

assistant: ```c
const char *version_name(unsigned code) {
  switch (code) {
  default:
    return NULL;
    break;
  case 0x0300:
    return "SSL_3_0";
    break;
  case 0x0301:
    return "TLS_1_0";
    break;
  case 0x0302:
    return "TLS_1_1";
    break;
  case 0x0303:
    return "TLS_1_2";
    break;
  case 0x0304:
    return "TLS_1_3";
    break;
  case 0x7f00:
    return "TLS_1_3_DRAFT0";
    break;
  case 0x7f01:
    return "TLS_1_3_DRAFT1";
    break;
  case 0x7f02:
    return "TLS_1_3_DRAFT2";
    break;
  case 0x7f03:
    return "TLS_1_3_DRAFT3";
    break;
  case 0x7f04:
    return "TLS_1_3_DRAFT4";
    break;
  case 0x7f05:
    return "TLS_1_3_DRAFT5";
    break;
  case 0x7f06:
    return "TLS_1_3_DRAFT6";
    break;
  case 0x7f07:
    return "TLS_1_3_DRAFT7";
    break;
  case 0x7f08:
    return "TLS_1_3_DRAFT8";
    break;
  case 0x7f09:
    return "TLS_1_3_DRAFT9";
    break;
  case 0x7f0a:
    return "TLS_1_3_DRAFT10";
    break;
  case 0x7f0b:
    return "TLS_1_3_DRAFT11";
    break;
  case 0x7f0c:
    return "TLS_1_3_DRAFT12";
    break;
  case 0x7f0d:
    return "TLS_1_3_DRAFT13";
    break;
  case 0x7f0e:
    return "TLS_1_3_DRAFT14";
    break;
  case 0x7f0f:
    return "TLS_1_3_DRAFT15";
    break;
  case 0x7f10:
    return "TLS_1_3_DRAFT16";
    break;
  case 0x7f11:
    return "TLS_1_3_DRAFT17";
    break;
  case 0x7f12:
    return "TLS_1_3_DRAFT18";
    break;
  case 0x7f13:
    return "TLS_1_3_DRAFT19";
    break;
  case 0x7f14:
    return "TLS_1_3_DRAFT20";
    break;
  case 0x7f15:
    return "TLS_1_3_DRAFT21";
    break;
  case 0x7f16:
    return "TLS_1_3_DRAFT22";
    break;
  case 0x7f17:
    return "TLS_1_3_DRAFT23";
    break;
  case 0x7f18:
    return "TLS_1_3_DRAFT24";
    break;
  case 0x7f19:
    return "TLS_1_3_DRAFT25";
    break;
  case 0x7f1a:
    return "TLS_1_3_DRAFT26";
    break;
  case 0x7f1b:
    return "TLS_1_3_DRAFT27";
    break;
  case 0x7f1c:
    return "TLS_1_3_DRAFT28";
    break;
  case 0xfb16:
    return "TLS_1_3_FB22";
    break;
  case 0xfb17:
    return "TLS_1_3_FB23";
    break;
  case 0xfb1a:
    return "TLS_1_3_FB26";
    break;
  case 0xfb28:
    return "TLS_1_3_FB40";
    break;
  case 0xfeff:
    return "DTLS_1_0";
    break;
  case 0xfefd:
    return "DTLS_1_1";
    break;
  case 0x7e01:
    return "TLS_1_3_7E01";
    break;
  case 0x7e02:
    return "TLS_1_3_7E02";
    break;
  case 0x0a0a:
  case 0x1a1a:
  case 0x2a2a:
  case 0x3a3a:
  case 0x4a4a:
  case 0x5a5a:
  case 0x6a6a:
  case 0x7a7a:
  case 0x8a8a:
  case 0x9a9a:
  case 0xaaaa:
  case 0xbaba:
  case 0xcaca:
  case 0xdada:
  case 0xeaea:
  case 0xfafa:
    return "GOOGLE_GREASE";
  }
}
```