user: 请将这段汇编代码片段转换成等效的C代码：

```asm
<ssl_verificateion_description>:
  endbr64
  add    $0xffffff80,%edi
  cmp    $0x20,%edi
  ja     L8
  mov    %edi,%edi
  lea    D43(%rip),%rdx
  movslq (%rdx,%rdi,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D331(%rip),%rax
  ret
  lea    D168(%rip),%rax
  ret
  lea    D227(%rip),%rax
  ret
  lea    D340(%rip),%rax
  ret
  lea    D84(%rip),%rax
  ret
  lea    D343(%rip),%rax
  ret
  lea    D92(%rip),%rax
  ret
  lea    D299(%rip),%rax
  ret
  lea    D207(%rip),%rax
  ret
  lea    D267(%rip),%rax
  ret
  lea    D184(%rip),%rax
  ret
  lea    D322(%rip),%rax
  ret
  lea    D26(%rip),%rax
  ret
  lea    D163(%rip),%rax
  ret
  lea    D236(%rip),%rax
  ret
  lea    D29(%rip),%rax
  ret
  lea    D349(%rip),%rax
  ret
  lea    D241(%rip),%rax
  ret
  lea    D269(%rip),%rax
  ret
  lea    D5(%rip),%rax
  ret
  lea    D119(%rip),%rax
  ret
  lea    D270(%rip),%rax
  ret
  lea    D80(%rip),%rax
  ret
  lea    D143(%rip),%rax
  ret
  lea    D61(%rip),%rax
  ret
  lea    D33(%rip),%rax
  ret
  lea    D177(%rip),%rax
  ret
  lea    D51(%rip),%rax
  ret
  lea    D49(%rip),%rax
  ret
  lea    D164(%rip),%rax
  ret
  lea    D127(%rip),%rax
  ret
  lea    D44(%rip),%rax
  ret
L8:
  lea    D336(%rip),%rax
  ret
  lea    D93(%rip),%rax
  ret
```

tool_calls: name: disassemble_data
arguments: tag: D331
type: string
name: disassemble_data
arguments: tag: D168
type: string
name: disassemble_data
arguments: tag: D227
type: string
name: disassemble_data
arguments: tag: D340
type: string
name: disassemble_data
arguments: tag: D84
type: string
name: disassemble_data
arguments: tag: D343
type: string
name: disassemble_data
arguments: tag: D92
type: string
name: disassemble_data
arguments: tag: D299
type: string
name: disassemble_data
arguments: tag: D207
type: string
name: disassemble_data
arguments: tag: D267
type: string
name: disassemble_data
arguments: tag: D184
type: string
name: disassemble_data
arguments: tag: D322
type: string
name: disassemble_data
arguments: tag: D26
type: string
name: disassemble_data
arguments: tag: D163
type: string
name: disassemble_data
arguments: tag: D236
type: string
name: disassemble_data
arguments: tag: D29
type: string
name: disassemble_data
arguments: tag: D349
type: string
name: disassemble_data
arguments: tag: D241
type: string
name: disassemble_data
arguments: tag: D269
type: string
name: disassemble_data
arguments: tag: D5
type: string
name: disassemble_data
arguments: tag: D119
type: string
name: disassemble_data
arguments: tag: D270
type: string
name: disassemble_data
arguments: tag: D80
type: string
name: disassemble_data
arguments: tag: D143
type: string
name: disassemble_data
arguments: tag: D61
type: string
name: disassemble_data
arguments: tag: D33
type: string
name: disassemble_data
arguments: tag: D177
type: string
name: disassemble_data
arguments: tag: D51
type: string
name: disassemble_data
arguments: tag: D49
type: string
name: disassemble_data
arguments: tag: D164
type: string
name: disassemble_data
arguments: tag: D127
type: string
name: disassemble_data
arguments: tag: D44
type: string
name: disassemble_data
arguments: tag: D336
type: string
name: disassemble_data
arguments: tag: D93
type: string

tool: D331: unable to get issuer certificate

tool: D168: unable to get certificate CRL

tool: D227: unable to decrypt certificate's signature

tool: D340: unable to decrypt CRL's signature

tool: D84: unable to decode issuer public key

tool: D343: certificate signature failure

tool: D92: CRL signature failure

tool: D299: certificate is not yet valid

tool: D207: certificate has expired

tool: D267: CRL is not yet valid

tool: D184: CRL has expired

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

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

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

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

tool: D29: out of memory

tool: D349: self signed certificate

tool: D241: self signed certificate in certificate chain

tool: D269: unable to get local issuer certificate

tool: D5: unable to verify the first certificate

tool: D119: certificate chain too long

tool: D270: certificate revoked

tool: D80: invalid CA certificate

tool: D143: path length constraint exceeded

tool: D61: unsupported certificate purpose

tool: D33: certificate not trusted

tool: D177: certificate rejected

tool: D51: subject issuer mismatch

tool: D49: authority and subject key identifier mismatch

tool: D164: authority and issuer serial number mismatch

tool: D127: key usage does not include certificate signing

tool: D44: application verification failure

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

tool: D93: ok

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