user: 下面的汇编指令对应的C源代码是什么：

```asm
<process_ssl_alert>:
  endbr64
  test   %r8d,%r8d
  jle    L13
  sub    $0x8,%rsp
  cmpb   $0x47,0x6(%rdi)
  ja     L148
  movzbl 0x6(%rdi),%eax
  lea    D218(%rip),%rdx
  movslq (%rdx,%rax,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D223(%rip),%rdi
  call   <printf@plt>
L155:
  add    $0x8,%rsp
  ret
  lea    D175(%rip),%rdi
  call   <printf@plt>
  jmp    L155
  lea    D167(%rip),%rdi
  call   <printf@plt>
  jmp    L155
  lea    D21(%rip),%rdi
  call   <printf@plt>
  jmp    L155
  lea    D190(%rip),%rdi
  call   <printf@plt>
  jmp    L155
  lea    D13(%rip),%rdi
  call   <printf@plt>
  jmp    L155
  lea    D75(%rip),%rdi
  call   <printf@plt>
  jmp    L155
  lea    D36(%rip),%rdi
  call   <printf@plt>
  jmp    L155
  lea    D80(%rip),%rdi
  call   <printf@plt>
  jmp    L155
  lea    D172(%rip),%rdi
  call   <printf@plt>
  jmp    L155
  lea    D90(%rip),%rdi
  call   <printf@plt>
  jmp    L155
  lea    D85(%rip),%rdi
  call   <printf@plt>
  jmp    L155
  lea    D31(%rip),%rdi
  call   <printf@plt>
  jmp    L155
  lea    D69(%rip),%rdi
  call   <printf@plt>
  jmp    L155
  lea    D55(%rip),%rdi
  call   <printf@plt>
  jmp    L155
  lea    D102(%rip),%rdi
  call   <printf@plt>
  jmp    L155
  lea    D217(%rip),%rdi
  call   <printf@plt>
  jmp    L155
  lea    D65(%rip),%rdi
  call   <printf@plt>
  jmp    L155
  lea    D105(%rip),%rdi
  call   <printf@plt>
  jmp    L155
  lea    D207(%rip),%rdi
  call   <printf@plt>
  jmp    L155
  lea    D186(%rip),%rdi
  call   <printf@plt>
  jmp    L155
L148:
  lea    D48(%rip),%rdi
  call   <printf@plt>
  jmp    L155
L13:
  ret
```

tool_calls: name: disassemble_data
arguments: label: D223
data_type: string
name: disassemble_data
arguments: label: D175
data_type: string
name: disassemble_data
arguments: label: D167
data_type: string
name: disassemble_data
arguments: label: D21
data_type: string
name: disassemble_data
arguments: label: D190
data_type: string
name: disassemble_data
arguments: label: D13
data_type: string
name: disassemble_data
arguments: label: D75
data_type: string
name: disassemble_data
arguments: label: D36
data_type: string
name: disassemble_data
arguments: label: D80
data_type: string
name: disassemble_data
arguments: label: D172
data_type: string
name: disassemble_data
arguments: label: D90
data_type: string
name: disassemble_data
arguments: label: D85
data_type: string
name: disassemble_data
arguments: label: D31
data_type: string
name: disassemble_data
arguments: label: D69
data_type: string
name: disassemble_data
arguments: label: D55
data_type: string
name: disassemble_data
arguments: label: D102
data_type: string
name: disassemble_data
arguments: label: D217
data_type: string
name: disassemble_data
arguments: label: D65
data_type: string
name: disassemble_data
arguments: label: D105
data_type: string
name: disassemble_data
arguments: label: D207
data_type: string
name: disassemble_data
arguments: label: D186
data_type: string
name: disassemble_data
arguments: label: D48
data_type: string

tool: D223: CloseNotify


tool: D175: UnexpectedMessage


tool: D167: BadRecordMAC


tool: D21: DecryptionFailed


tool: D190: RecordOverflow


tool: D13: DecompressionFailure


tool: D75: HandshakeFailure


tool: D36: NoCertificate


tool: D80: BadCertificate


tool: D172: UnsupportedCertificate


tool: D90: CertificateRevoked


tool: D85: CertificateExpired


tool: D31: CertificateUnknown


tool: D69: IllegalParameter


tool: D55: UnknownCA


tool: D102: AccessDenied


tool: D217: DecodeError


tool: D65: DecryptError


tool: D105: ExportRestriction


tool: D207: ProtocolVersion


tool: D186: InsufficientSecurity


tool: D48: UNKNOWN SSL ERROR


assistant: ```c
void process_ssl_alert(char *sslalert, char *c1, char *c2, char *c3, int verbose) {
  if (verbose > 0) {
    switch (sslalert[06]) {
    case 0:
      printf("CloseNotify\n");
      break;
    case 10:
      printf("UnexpectedMessage\n");
      break;
    case 20:
      printf("BadRecordMAC\n");
      break;
    case 21:
      printf("DecryptionFailed\n");
      break;
    case 22:
      printf("RecordOverflow\n");
      break;
    case 30:
      printf("DecompressionFailure\n");
      break;
    case 40:
      printf("HandshakeFailure\n");
      break;
    case 41:
      printf("NoCertificate\n");
      break;
    case 42:
      printf("BadCertificate\n");
      break;
    case 43:
      printf("UnsupportedCertificate\n");
      break;
    case 44:
      printf("CertificateRevoked\n");
      break;
    case 45:
      printf("CertificateExpired\n");
      break;
    case 46:
      printf("CertificateUnknown\n");
      break;
    case 47:
      printf("IllegalParameter\n");
      break;
    case 48:
      printf("UnknownCA\n");
      break;
    case 49:
      printf("AccessDenied\n");
      break;
    case 50:
      printf("DecodeError\n");
      break;
    case 51:
      printf("DecryptError\n");
      break;
    case 60:
      printf("ExportRestriction\n");
      break;
    case 70:
      printf("ProtocolVersion\n");
      break;
    case 71:
      printf("InsufficientSecurity\n");
      break;
    default:
      printf("UNKNOWN SSL ERROR\n");
      break;
    }
  }
}
```