user: What is the c source code of the assembly code below?

```asm
<check_dneupd_status>:
  endbr64
  push   %rbx
  lea    0xf(%rdi),%eax
  cmp    $0x10,%eax
  ja     L133
  mov    %edi,%ebx
  mov    %eax,%eax
  lea    D88(%rip),%rdx
  movslq (%rdx,%rax,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D138(%rip),%rdi
  call   <printf@plt>
  lea    D257(%rip),%rdi
  call   <printf@plt>
  lea    D282(%rip),%rdi
  call   <printf@plt>
  lea    D9(%rip),%rdi
  call   <printf@plt>
  lea    D215(%rip),%rdi
  call   <printf@plt>
  lea    D240(%rip),%rdi
  call   <printf@plt>
  lea    D306(%rip),%rdi
  call   <printf@plt>
  lea    D49(%rip),%rdi
  call   <printf@plt>
  mov    %ebx,%eax
  jmp    L123
  lea    D298(%rip),%rdi
  call   <printf@plt>
  mov    %ebx,%eax
  jmp    L123
  lea    D58(%rip),%rdi
  call   <printf@plt>
  mov    %ebx,%eax
  jmp    L123
  lea    D294(%rip),%rdi
  call   <printf@plt>
  mov    %ebx,%eax
  jmp    L123
  lea    D41(%rip),%rdi
  call   <printf@plt>
  mov    %ebx,%eax
  jmp    L123
  lea    D161(%rip),%rdi
  call   <printf@plt>
  mov    %ebx,%eax
  jmp    L123
  lea    D63(%rip),%rdi
  call   <printf@plt>
  mov    %ebx,%eax
  jmp    L123
  lea    D171(%rip),%rdi
  call   <printf@plt>
  lea    D124(%rip),%rdi
  call   <printf@plt>
  mov    %ebx,%eax
  jmp    L123
  lea    D33(%rip),%rdi
  call   <printf@plt>
  lea    D219(%rip),%rdi
  call   <printf@plt>
  mov    %ebx,%eax
  jmp    L123
  lea    D226(%rip),%rdi
  call   <printf@plt>
  mov    %ebx,%eax
  jmp    L123
  lea    D247(%rip),%rdi
  call   <printf@plt>
  mov    %ebx,%eax
  jmp    L123
  lea    D6(%rip),%rdi
  call   <printf@plt>
  mov    %ebx,%eax
  jmp    L123
  lea    D270(%rip),%rdi
  call   <printf@plt>
  mov    %ebx,%eax
  jmp    L123
  lea    D266(%rip),%rdi
  call   <printf@plt>
  lea    D285(%rip),%rdi
  call   <printf@plt>
  mov    %ebx,%eax
  jmp    L123
  lea    D188(%rip),%rdi
  call   <printf@plt>
  lea    D288(%rip),%rdi
  call   <printf@plt>
  lea    D259(%rip),%rdi
  call   <printf@plt>
  lea    D169(%rip),%rdi
  call   <printf@plt>
  lea    D172(%rip),%rdi
  call   <printf@plt>
  mov    %ebx,%eax
  jmp    L123
L133:
  lea    D97(%rip),%rdi
  call   <printf@plt>
  mov    $0xffffd8f0,%eax
  jmp    L123
  mov    %edi,%eax
L123:
  pop    %rbx
  ret
```

tool_calls: name: disassemble_data
arguments: data_tag: D138
data_type: string
name: disassemble_data
arguments: data_tag: D257
data_type: string
name: disassemble_data
arguments: data_tag: D282
data_type: string
name: disassemble_data
arguments: data_tag: D9
data_type: string
name: disassemble_data
arguments: data_tag: D215
data_type: string
name: disassemble_data
arguments: data_tag: D240
data_type: string
name: disassemble_data
arguments: data_tag: D306
data_type: string
name: disassemble_data
arguments: data_tag: D49
data_type: string
name: disassemble_data
arguments: data_tag: D298
data_type: string
name: disassemble_data
arguments: data_tag: D58
data_type: string
name: disassemble_data
arguments: data_tag: D294
data_type: string
name: disassemble_data
arguments: data_tag: D41
data_type: string
name: disassemble_data
arguments: data_tag: D161
data_type: string
name: disassemble_data
arguments: data_tag: D63
data_type: string
name: disassemble_data
arguments: data_tag: D171
data_type: string
name: disassemble_data
arguments: data_tag: D124
data_type: string
name: disassemble_data
arguments: data_tag: D33
data_type: string
name: disassemble_data
arguments: data_tag: D219
data_type: string
name: disassemble_data
arguments: data_tag: D226
data_type: string
name: disassemble_data
arguments: data_tag: D247
data_type: string
name: disassemble_data
arguments: data_tag: D6
data_type: string
name: disassemble_data
arguments: data_tag: D270
data_type: string
name: disassemble_data
arguments: data_tag: D266
data_type: string
name: disassemble_data
arguments: data_tag: D285
data_type: string
name: disassemble_data
arguments: data_tag: D188
data_type: string
name: disassemble_data
arguments: data_tag: D288
data_type: string
name: disassemble_data
arguments: data_tag: D259
data_type: string
name: disassemble_data
arguments: data_tag: D169
data_type: string
name: disassemble_data
arguments: data_tag: D172
data_type: string
name: disassemble_data
arguments: data_tag: D97
data_type: string

tool: D138: 1: The Schur form computed by LAPACK routine dlahqr


tool: D257: could not be reordered by LAPACK routine dtrsen .


tool: D282: Re-enter subroutine dneupd  with IPARAM(5)=NCV and 


tool: D9: increase the size of the arrays DR and DI to have 


tool: D215: dimension at least dimension NCV and allocate at least NCV 


tool: D240: columns for Z. NOTE: Not necessary if Z and V share 


tool: D306: the same space. Please notify the authors if this error


tool: D49: occurs.


tool: D298: -1: N must be positive.


tool: D58: = -2: NEV must be positive.


tool: D294: -3: NCV-NEV >= 2 and less than or equal to N.


tool: D41: -5: spectralSubSet must be one of 'LM', 'SM', 'LR', 'SR', 'LI', 'SI'


tool: D161: -6: BMAT must be one of 'I' or 'G'.


tool: D63: -7: Length of private work WORKL array is not sufficient.


tool: D171: -8: Error return from calculation of a real Schur form.


tool: D124: Informational error from LAPACK routine dlahqr .


tool: D33: -9: Error return from calculation of eigenvectors.


tool: D219: Informational error from LAPACK routine dtrevc .


tool: D226: -10: IPARAM(7) must be 1,2,3,4.


tool: D247: -11: IPARAM(7) = 1 and BMAT = 'G' are incompatible.


tool: D6: -12: HOWMNY = 'S' not yet implemented


tool: D270: -13: HOWMNY must be one of 'A' or 'P' if RVEC = .true.


tool: D266: -14: DNAUPD  did not find any eigenvalues to sufficient


tool: D285: accuracy.


tool: D188: -15: DNEUPD got a different count of the number of converged


tool: D288: Ritz values than DNAUPD got.  This indicates the user


tool: D259: probably made an error in passing data from DNAUPD to


tool: D169: DNEUPD or that the data was modified before entering


tool: D172: DNEUPD


tool: D97: unknown error


assistant: ```c
int check_dneupd_status(int info) {
  switch (info) {
  case 0:
    break;
  case 1:
    printf("1: The Schur form computed by LAPACK routine dlahqr\n");
    printf("could not be reordered by LAPACK routine dtrsen .\n");
    printf("Re-enter subroutine dneupd  with IPARAM(5)=NCV and \n");
    printf("increase the size of the arrays DR and DI to have \n");
    printf("dimension at least dimension NCV and allocate at least NCV \n");
    printf("columns for Z. NOTE: Not necessary if Z and V share \n");
    printf("the same space. Please notify the authors if this error\n");
    printf("occurs.\n");
    break;
  case -1:
    printf("-1: N must be positive.\n");
    break;
  case -2:
    printf("= -2: NEV must be positive.\n");
    break;
  case -3:
    printf("-3: NCV-NEV >= 2 and less than or equal to N.\n");
    break;
  case -5:
    printf("-5: spectralSubSet must be one of 'LM', 'SM', 'LR', 'SR', 'LI', 'SI'\n");
    break;
  case -6:
    printf("-6: BMAT must be one of 'I' or 'G'.\n");
    break;
  case -7:
    printf("-7: Length of private work WORKL array is not sufficient.\n");
    break;
  case -8:
    printf("-8: Error return from calculation of a real Schur form.\n");
    printf("Informational error from LAPACK routine dlahqr .\n");
    break;
  case -9:
    printf("-9: Error return from calculation of eigenvectors.\n");
    printf("Informational error from LAPACK routine dtrevc .\n");
    break;
  case -10:
    printf("-10: IPARAM(7) must be 1,2,3,4.\n");
    break;
  case -11:
    printf("-11: IPARAM(7) = 1 and BMAT = 'G' are incompatible.\n");
    break;
  case -12:
    printf("-12: HOWMNY = 'S' not yet implemented\n");
    break;
  case -13:
    printf("-13: HOWMNY must be one of 'A' or 'P' if RVEC = .true.\n");
    break;
  case -14:
    printf("-14: DNAUPD  did not find any eigenvalues to sufficient\n");
    printf("accuracy.\n");
    break;
  case -15:
    printf("-15: DNEUPD got a different count of the number of converged\n");
    printf("Ritz values than DNAUPD got.  This indicates the user\n");
    printf("probably made an error in passing data from DNAUPD to\n");
    printf("DNEUPD or that the data was modified before entering\n");
    printf("DNEUPD\n");
    break;
  default:
    printf("unknown error\n");
    return -10000;
  }
  return info;
}
```