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

```asm
<codetostring>:
  endbr64
  sub    $0x8,%rsp
  mov    %rsi,%rcx
  cmp    $0xc0000097,%edi
  jge    L287
  cmp    $0xc000008c,%edi
  jl     L31
  lea    0x3fffff74(%rdi),%eax
  cmp    $0xa,%eax
  ja     L191
  mov    %eax,%eax
  lea    D85(%rip),%rdx
  movslq (%rdx,%rax,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
L31:
  cmp    $0xc0000027,%edi
  jge    L191
  cmp    $0xc0000005,%edi
  jl     L246
  lea    0x3ffffffb(%rdi),%eax
  cmp    $0x21,%eax
  ja     L191
  mov    %eax,%eax
  lea    D160(%rip),%rdx
  movslq (%rdx,%rax,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
L246:
  cmp    $0x80000003,%edi
  je     L269
  cmp    $0x80000004,%edi
  jl     L132
  jne    L191
  lea    D189(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L274
L132:
  cmp    $0x80000001,%edi
  je     L326
  cmp    $0x80000002,%edi
  jne    L191
  lea    D105(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L274
L287:
  cmp    $0xc00000fd,%edi
  jne    L191
  lea    D239(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L274
  lea    D157(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
L274:
  add    $0x8,%rsp
  ret
  lea    D15(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L274
L269:
  lea    D218(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L274
  lea    D39(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L274
  lea    D175(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L274
  lea    D143(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L274
  lea    D41(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L274
  lea    D116(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L274
  lea    D133(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L274
  lea    D174(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L274
L326:
  lea    D130(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L274
  lea    D31(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L274
  lea    D4(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L274
  lea    D84(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L274
  lea    D56(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L274
  lea    D83(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L274
  lea    D66(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L274
  lea    D38(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L274
L191:
  mov    %edi,%edx
  lea    D71(%rip),%rsi
  mov    %rcx,%rdi
  call   <sprintf@plt>
  jmp    L274
```

tool_calls: name: unpack_data
arguments: data_tag: D189
data_type: string
name: unpack_data
arguments: data_tag: D105
data_type: string
name: unpack_data
arguments: data_tag: D239
data_type: string
name: unpack_data
arguments: data_tag: D157
data_type: string
name: unpack_data
arguments: data_tag: D15
data_type: string
name: unpack_data
arguments: data_tag: D218
data_type: string
name: unpack_data
arguments: data_tag: D39
data_type: string
name: unpack_data
arguments: data_tag: D175
data_type: string
name: unpack_data
arguments: data_tag: D143
data_type: string
name: unpack_data
arguments: data_tag: D41
data_type: string
name: unpack_data
arguments: data_tag: D116
data_type: string
name: unpack_data
arguments: data_tag: D133
data_type: string
name: unpack_data
arguments: data_tag: D174
data_type: string
name: unpack_data
arguments: data_tag: D130
data_type: string
name: unpack_data
arguments: data_tag: D31
data_type: string
name: unpack_data
arguments: data_tag: D4
data_type: string
name: unpack_data
arguments: data_tag: D84
data_type: string
name: unpack_data
arguments: data_tag: D56
data_type: string
name: unpack_data
arguments: data_tag: D83
data_type: string
name: unpack_data
arguments: data_tag: D66
data_type: string
name: unpack_data
arguments: data_tag: D38
data_type: string
name: unpack_data
arguments: data_tag: D71
data_type: string

tool: D189: Single step

tool: D105: Datatype misalignment

tool: D239: Stack overflow

tool: D157: Access violation

tool: D15: Array bounds exceeded

tool: D218: Breakpoint

tool: D39: Float denormal operand

tool: D175: Float divide by zero

tool: D143: Float inexact result

tool: D41: Float invalid operation

tool: D116: Float overflow

tool: D133: Float stack check

tool: D174: Float underflow

tool: D130: Guard page

tool: D31: Illegal instruction

tool: D4: In page error

tool: D84: Integer divide by zero

tool: D56: Integer overflow

tool: D83: Invalid disposition

tool: D66: Noncontinuable exception

tool: D38: Priv instruction

tool: D71: Unknown exception; code %x

assistant: ```c
void codetostring(int retcode, char *desc) {
  switch (retcode) {
  case ((unsigned long)0xC0000005L):
    strcpy(desc, "Access violation");
    break;
  case ((unsigned long)0xC000008CL):
    strcpy(desc, "Array bounds exceeded");
    break;
  case ((unsigned long)0x80000003L):
    strcpy(desc, "Breakpoint");
    break;
  case ((unsigned long)0x80000002L):
    strcpy(desc, "Datatype misalignment");
    break;
  case ((unsigned long)0xC000008DL):
    strcpy(desc, "Float denormal operand");
    break;
  case ((unsigned long)0xC000008EL):
    strcpy(desc, "Float divide by zero");
    break;
  case ((unsigned long)0xC000008FL):
    strcpy(desc, "Float inexact result");
    break;
  case ((unsigned long)0xC0000090L):
    strcpy(desc, "Float invalid operation");
    break;
  case ((unsigned long)0xC0000091L):
    strcpy(desc, "Float overflow");
    break;
  case ((unsigned long)0xC0000092L):
    strcpy(desc, "Float stack check");
    break;
  case ((unsigned long)0xC0000093L):
    strcpy(desc, "Float underflow");
    break;
  case ((unsigned long)0x80000001L):
    strcpy(desc, "Guard page");
    break;
  case ((unsigned long)0xC000001DL):
    strcpy(desc, "Illegal instruction");
    break;
  case ((unsigned long)0xC0000006L):
    strcpy(desc, "In page error");
    break;
  case ((unsigned long)0xC0000094L):
    strcpy(desc, "Integer divide by zero");
    break;
  case ((unsigned long)0xC0000095L):
    strcpy(desc, "Integer overflow");
    break;
  case ((unsigned long)0xC0000026L):
    strcpy(desc, "Invalid disposition");
    break;
  case ((unsigned long)0xC0000025L):
    strcpy(desc, "Noncontinuable exception");
    break;
  case ((unsigned long)0xC0000096L):
    strcpy(desc, "Priv instruction");
    break;
  case ((unsigned long)0x80000004L):
    strcpy(desc, "Single step");
    break;
  case ((unsigned long)0xC00000FDL):
    strcpy(desc, "Stack overflow");
    break;
  default:
    sprintf(desc, "Unknown exception; code %x", retcode);
    break;
  }
}
```