user: What would the C source look like for the assembly code provided here:

```asm
<ssl_verificateion_description>:
  endbr64
  add    $0xffffff80,%edi
  cmp    $0x20,%edi
  ja     L0
  lea    D44(%rip),%rdx
  movslq (%rdx,%rdi,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  nopl   0x0(%rax)
  lea    D228(%rip),%rax
  ret
  lea    D348(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D309(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D291(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D251(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D149(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D161(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D147(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D43(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D253(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D255(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D29(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D318(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D148(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D105(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D179(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D237(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D182(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D123(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D206(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D106(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D245(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D144(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D85(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D70(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D8(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D327(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D151(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D212(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D76(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D36(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D191(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D282(%rip),%rax
  ret
L0:
  lea    D300(%rip),%rax
  ret
```

tool_calls: name: parse_data
arguments: data_label: D228
data_type: string
name: parse_data
arguments: data_label: D348
data_type: string
name: parse_data
arguments: data_label: D309
data_type: string
name: parse_data
arguments: data_label: D291
data_type: string
name: parse_data
arguments: data_label: D251
data_type: string
name: parse_data
arguments: data_label: D149
data_type: string
name: parse_data
arguments: data_label: D161
data_type: string
name: parse_data
arguments: data_label: D147
data_type: string
name: parse_data
arguments: data_label: D43
data_type: string
name: parse_data
arguments: data_label: D253
data_type: string
name: parse_data
arguments: data_label: D255
data_type: string
name: parse_data
arguments: data_label: D29
data_type: string
name: parse_data
arguments: data_label: D318
data_type: string
name: parse_data
arguments: data_label: D148
data_type: string
name: parse_data
arguments: data_label: D105
data_type: string
name: parse_data
arguments: data_label: D179
data_type: string
name: parse_data
arguments: data_label: D237
data_type: string
name: parse_data
arguments: data_label: D182
data_type: string
name: parse_data
arguments: data_label: D123
data_type: string
name: parse_data
arguments: data_label: D206
data_type: string
name: parse_data
arguments: data_label: D106
data_type: string
name: parse_data
arguments: data_label: D245
data_type: string
name: parse_data
arguments: data_label: D144
data_type: string
name: parse_data
arguments: data_label: D85
data_type: string
name: parse_data
arguments: data_label: D70
data_type: string
name: parse_data
arguments: data_label: D8
data_type: string
name: parse_data
arguments: data_label: D327
data_type: string
name: parse_data
arguments: data_label: D151
data_type: string
name: parse_data
arguments: data_label: D212
data_type: string
name: parse_data
arguments: data_label: D76
data_type: string
name: parse_data
arguments: data_label: D36
data_type: string
name: parse_data
arguments: data_label: D191
data_type: string
name: parse_data
arguments: data_label: D282
data_type: string
name: parse_data
arguments: data_label: D300
data_type: string

tool: D228: unable to get issuer certificate

tool: D348: ok

tool: D309: unable to get local issuer certificate

tool: D291: unable to verify the first certificate

tool: D251: authority and issuer serial number mismatch

tool: D149: authority and subject key identifier mismatch

tool: D161: application verification failure

tool: D147: certificate chain too long

tool: D43: certificate has expired

tool: D253: certificate is not yet valid

tool: D255: certificate rejected

tool: D29: certificate revoked

tool: D318: certificate signature failure

tool: D148: certificate not trusted

tool: D105: CRL has expired

tool: D179: CRL is not yet valid

tool: D237: CRL signature failure

tool: D182: self signed certificate

tool: D123: format error in certificate's notAfter field

tool: D206: format error in certificate's notBefore field

tool: D106: format error in CRL's lastUpdate field

tool: D245: format error in CRL's nextUpdate field

tool: D144: invalid CA certificate

tool: D85: unsupported certificate purpose

tool: D70: key usage does not include certificate signing

tool: D8: out of memory

tool: D327: path length constraint exceeded

tool: D151: self signed certificate in certificate chain

tool: D212: subject issuer mismatch

tool: D76: unable to decode issuer public key

tool: D36: unable to decrypt certificate's signature

tool: D191: unable to decrypt CRL's signature

tool: D282: unable to get certificate CRL

tool: D300: (undefined TLS/SSL verification code)

assistant: ```c
const char *ssl_verificateion_description(int code) {
  switch (code) {
  case X509_V_OK:
    return "ok";
  case X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT:
    return "unable to get issuer certificate";
  case X509_V_ERR_UNABLE_TO_GET_CRL:
    return "unable to get certificate CRL";
  case X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE:
    return "unable to decrypt certificate's signature";
  case X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE:
    return "unable to decrypt CRL's signature";
  case X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY:
    return "unable to decode issuer public key";
  case X509_V_ERR_CERT_SIGNATURE_FAILURE:
    return "certificate signature failure";
  case X509_V_ERR_CRL_SIGNATURE_FAILURE:
    return "CRL signature failure";
  case X509_V_ERR_CERT_NOT_YET_VALID:
    return "certificate is not yet valid";
  case X509_V_ERR_CERT_HAS_EXPIRED:
    return "certificate has expired";
  case X509_V_ERR_CRL_NOT_YET_VALID:
    return "CRL is not yet valid";
  case X509_V_ERR_CRL_HAS_EXPIRED:
    return "CRL has expired";
  case X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD:
    return "format error in certificate's notBefore field";
  case X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD:
    return "format error in certificate's notAfter field";
  case X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD:
    return "format error in CRL's lastUpdate field";
  case X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD:
    return "format error in CRL's nextUpdate field";
  case X509_V_ERR_OUT_OF_MEM:
    return "out of memory";
  case X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT:
    return "self signed certificate";
  case X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN:
    return "self signed certificate in certificate chain";
  case X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY:
    return "unable to get local issuer certificate";
  case X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE:
    return "unable to verify the first certificate";
  case X509_V_ERR_CERT_CHAIN_TOO_LONG:
    return "certificate chain too long";
  case X509_V_ERR_CERT_REVOKED:
    return "certificate revoked";
  case X509_V_ERR_INVALID_CA:
    return "invalid CA certificate";
  case X509_V_ERR_PATH_LENGTH_EXCEEDED:
    return "path length constraint exceeded";
  case X509_V_ERR_INVALID_PURPOSE:
    return "unsupported certificate purpose";
  case X509_V_ERR_CERT_UNTRUSTED:
    return "certificate not trusted";
  case X509_V_ERR_CERT_REJECTED:
    return "certificate rejected";
  case X509_V_ERR_SUBJECT_ISSUER_MISMATCH:
    return "subject issuer mismatch";
  case X509_V_ERR_AKID_SKID_MISMATCH:
    return "authority and subject key identifier mismatch";
  case X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH:
    return "authority and issuer serial number mismatch";
  case X509_V_ERR_KEYUSAGE_NO_CERTSIGN:
    return "key usage does not include certificate signing";
  case X509_V_ERR_APPLICATION_VERIFICATION:
    return "application verification failure";
  default:
    break;
  }
  return "(undefined TLS/SSL verification code)";
}
```