user: 请从给定的汇编指令推导出C源代码:

```asm
<clErrNo2Str>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x340,%rsp
  mov    %edi,-0x334(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  lea    -0x330(%rbp),%rdx
  mov    $0x0,%eax
  mov    $0x64,%ecx
  mov    %rdx,%rdi
  rep stos %rax,%es:(%rdi)
  lea    D371(%rip),%rax
  mov    %rax,-0x330(%rbp)
  lea    D391(%rip),%rax
  mov    %rax,-0x328(%rbp)
  lea    D286(%rip),%rax
  mov    %rax,-0x320(%rbp)
  lea    D188(%rip),%rax
  mov    %rax,-0x318(%rbp)
  lea    D570(%rip),%rax
  mov    %rax,-0x310(%rbp)
  lea    D144(%rip),%rax
  mov    %rax,-0x308(%rbp)
  lea    D465(%rip),%rax
  mov    %rax,-0x300(%rbp)
  lea    D27(%rip),%rax
  mov    %rax,-0x2f8(%rbp)
  lea    D364(%rip),%rax
  mov    %rax,-0x2f0(%rbp)
  lea    D75(%rip),%rax
  mov    %rax,-0x2e8(%rbp)
  lea    D109(%rip),%rax
  mov    %rax,-0x2e0(%rbp)
  lea    D191(%rip),%rax
  mov    %rax,-0x2d8(%rbp)
  lea    D240(%rip),%rax
  mov    %rax,-0x2d0(%rbp)
  lea    D193(%rip),%rax
  mov    %rax,-0x2c8(%rbp)
  lea    D287(%rip),%rax
  mov    %rax,-0x2c0(%rbp)
  lea    D606(%rip),%rax
  mov    %rax,-0x2b8(%rbp)
  lea    D638(%rip),%rax
  mov    %rax,-0x2b0(%rbp)
  lea    D333(%rip),%rax
  mov    %rax,-0x2a8(%rbp)
  lea    D312(%rip),%rax
  mov    %rax,-0x2a0(%rbp)
  lea    D562(%rip),%rax
  mov    %rax,-0x298(%rbp)
  lea    D147(%rip),%rax
  mov    %rax,-0x290(%rbp)
  lea    D147(%rip),%rax
  mov    %rax,-0x288(%rbp)
  lea    D147(%rip),%rax
  mov    %rax,-0x280(%rbp)
  lea    D147(%rip),%rax
  mov    %rax,-0x278(%rbp)
  lea    D147(%rip),%rax
  mov    %rax,-0x270(%rbp)
  lea    D147(%rip),%rax
  mov    %rax,-0x268(%rbp)
  lea    D147(%rip),%rax
  mov    %rax,-0x260(%rbp)
  lea    D147(%rip),%rax
  mov    %rax,-0x258(%rbp)
  lea    D147(%rip),%rax
  mov    %rax,-0x250(%rbp)
  lea    D147(%rip),%rax
  mov    %rax,-0x248(%rbp)
  lea    D180(%rip),%rax
  mov    %rax,-0x240(%rbp)
  lea    D90(%rip),%rax
  mov    %rax,-0x238(%rbp)
  lea    D23(%rip),%rax
  mov    %rax,-0x230(%rbp)
  lea    D522(%rip),%rax
  mov    %rax,-0x228(%rbp)
  lea    D528(%rip),%rax
  mov    %rax,-0x220(%rbp)
  lea    D656(%rip),%rax
  mov    %rax,-0x218(%rbp)
  lea    D89(%rip),%rax
  mov    %rax,-0x210(%rbp)
  lea    D630(%rip),%rax
  mov    %rax,-0x208(%rbp)
  lea    D101(%rip),%rax
  mov    %rax,-0x200(%rbp)
  lea    D323(%rip),%rax
  mov    %rax,-0x1f8(%rbp)
  lea    D295(%rip),%rax
  mov    %rax,-0x1f0(%rbp)
  lea    D24(%rip),%rax
  mov    %rax,-0x1e8(%rbp)
  lea    D421(%rip),%rax
  mov    %rax,-0x1e0(%rbp)
  lea    D429(%rip),%rax
  mov    %rax,-0x1d8(%rbp)
  lea    D596(%rip),%rax
  mov    %rax,-0x1d0(%rbp)
  lea    D159(%rip),%rax
  mov    %rax,-0x1c8(%rbp)
  lea    D223(%rip),%rax
  mov    %rax,-0x1c0(%rbp)
  lea    D377(%rip),%rax
  mov    %rax,-0x1b8(%rbp)
  lea    D21(%rip),%rax
  mov    %rax,-0x1b0(%rbp)
  lea    D665(%rip),%rax
  mov    %rax,-0x1a8(%rbp)
  lea    D153(%rip),%rax
  mov    %rax,-0x1a0(%rbp)
  lea    D451(%rip),%rax
  mov    %rax,-0x198(%rbp)
  lea    D437(%rip),%rax
  mov    %rax,-0x190(%rbp)
  lea    D176(%rip),%rax
  mov    %rax,-0x188(%rbp)
  lea    D202(%rip),%rax
  mov    %rax,-0x180(%rbp)
  lea    D116(%rip),%rax
  mov    %rax,-0x178(%rbp)
  lea    D607(%rip),%rax
  mov    %rax,-0x170(%rbp)
  lea    D580(%rip),%rax
  mov    %rax,-0x168(%rbp)
  lea    D156(%rip),%rax
  mov    %rax,-0x160(%rbp)
  lea    D339(%rip),%rax
  mov    %rax,-0x158(%rbp)
  lea    D599(%rip),%rax
  mov    %rax,-0x150(%rbp)
  lea    D163(%rip),%rax
  mov    %rax,-0x148(%rbp)
  lea    D509(%rip),%rax
  mov    %rax,-0x140(%rbp)
  lea    D461(%rip),%rax
  mov    %rax,-0x138(%rbp)
  lea    D36(%rip),%rax
  mov    %rax,-0x130(%rbp)
  lea    D179(%rip),%rax
  mov    %rax,-0x128(%rbp)
  lea    D582(%rip),%rax
  mov    %rax,-0x120(%rbp)
  lea    D499(%rip),%rax
  mov    %rax,-0x118(%rbp)
  lea    D527(%rip),%rax
  mov    %rax,-0x110(%rbp)
  mov    -0x334(%rbp),%eax
  neg    %eax
  cltq
  mov    -0x330(%rbp,%rax,8),%rax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L3
  call   <__stack_chk_fail@plt>
L3:
  leave
  ret
```

tool_calls: name: read_data
arguments: label: D371
data_type: string
name: read_data
arguments: label: D391
data_type: string
name: read_data
arguments: label: D286
data_type: string
name: read_data
arguments: label: D188
data_type: string
name: read_data
arguments: label: D570
data_type: string
name: read_data
arguments: label: D144
data_type: string
name: read_data
arguments: label: D465
data_type: string
name: read_data
arguments: label: D27
data_type: string
name: read_data
arguments: label: D364
data_type: string
name: read_data
arguments: label: D75
data_type: string
name: read_data
arguments: label: D109
data_type: string
name: read_data
arguments: label: D191
data_type: string
name: read_data
arguments: label: D240
data_type: string
name: read_data
arguments: label: D193
data_type: string
name: read_data
arguments: label: D287
data_type: string
name: read_data
arguments: label: D606
data_type: string
name: read_data
arguments: label: D638
data_type: string
name: read_data
arguments: label: D333
data_type: string
name: read_data
arguments: label: D312
data_type: string
name: read_data
arguments: label: D562
data_type: string
name: read_data
arguments: label: D147
data_type: string
name: read_data
arguments: label: D180
data_type: string
name: read_data
arguments: label: D90
data_type: string
name: read_data
arguments: label: D23
data_type: string
name: read_data
arguments: label: D522
data_type: string
name: read_data
arguments: label: D528
data_type: string
name: read_data
arguments: label: D656
data_type: string
name: read_data
arguments: label: D89
data_type: string
name: read_data
arguments: label: D630
data_type: string
name: read_data
arguments: label: D101
data_type: string
name: read_data
arguments: label: D323
data_type: string
name: read_data
arguments: label: D295
data_type: string
name: read_data
arguments: label: D24
data_type: string
name: read_data
arguments: label: D421
data_type: string
name: read_data
arguments: label: D429
data_type: string
name: read_data
arguments: label: D596
data_type: string
name: read_data
arguments: label: D159
data_type: string
name: read_data
arguments: label: D223
data_type: string
name: read_data
arguments: label: D377
data_type: string
name: read_data
arguments: label: D21
data_type: string
name: read_data
arguments: label: D665
data_type: string
name: read_data
arguments: label: D153
data_type: string
name: read_data
arguments: label: D451
data_type: string
name: read_data
arguments: label: D437
data_type: string
name: read_data
arguments: label: D176
data_type: string
name: read_data
arguments: label: D202
data_type: string
name: read_data
arguments: label: D116
data_type: string
name: read_data
arguments: label: D607
data_type: string
name: read_data
arguments: label: D580
data_type: string
name: read_data
arguments: label: D156
data_type: string
name: read_data
arguments: label: D339
data_type: string
name: read_data
arguments: label: D599
data_type: string
name: read_data
arguments: label: D163
data_type: string
name: read_data
arguments: label: D509
data_type: string
name: read_data
arguments: label: D461
data_type: string
name: read_data
arguments: label: D36
data_type: string
name: read_data
arguments: label: D179
data_type: string
name: read_data
arguments: label: D582
data_type: string
name: read_data
arguments: label: D499
data_type: string
name: read_data
arguments: label: D527
data_type: string

tool: D371: CL_SUCCESS

tool: D391: CL_DEVICE_NOT_FOUND

tool: D286: CL_DEVICE_NOT_AVAILABLE

tool: D188: CL_COMPILER_NOT_AVAILABLE

tool: D570: CL_MEM_OBJECT_ALLOCATION_FAILURE

tool: D144: CL_OUT_OF_RESOURCES

tool: D465: CL_OUT_OF_HOST_MEMORY

tool: D27: CL_PROFILING_INFO_NOT_AVAILABLE

tool: D364: CL_MEM_COPY_OVERLAP

tool: D75: CL_IMAGE_FORMAT_MISMATCH

tool: D109: CL_IMAGE_FORMAT_NOT_SUPPORTED

tool: D191: CL_BUILD_PROGRAM_FAILURE

tool: D240: CL_MAP_FAILURE

tool: D193: CL_MISALIGNED_SUB_BUFFER_OFFSET

tool: D287: CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST

tool: D606: CL_COMPILE_PROGRAM_FAILURE

tool: D638: CL_LINKER_NOT_AVAILABLE

tool: D333: CL_LINK_PROGRAM_FAILURE

tool: D312: CL_DEVICE_PARTITION_FAILED

tool: D562: CL_KERNEL_ARG_INFO_NOT_AVAILABLE

tool: D147: CL_UNDEFINE_ERROR

tool: D180: CL_INVALID_VALUE

tool: D90: CL_INVALID_DEVICE_TYPE

tool: D23: CL_INVALID_PLATFORM

tool: D522: CL_INVALID_DEVICE

tool: D528: CL_INVALID_CONTEXT

tool: D656: CL_INVALID_QUEUE_PROPERTIES

tool: D89: CL_INVALID_COMMAND_QUEUE

tool: D630: CL_INVALID_HOST_PTR

tool: D101: CL_INVALID_MEM_OBJECT

tool: D323: CL_INVALID_IMAGE_FORMAT_DESCRIPTOR

tool: D295: CL_INVALID_IMAGE_SIZE

tool: D24: CL_INVALID_SAMPLER

tool: D421: CL_INVALID_BINARY

tool: D429: CL_INVALID_BUILD_OPTIONS

tool: D596: CL_INVALID_PROGRAM

tool: D159: CL_INVALID_PROGRAM_EXECUTABLE

tool: D223: CL_INVALID_KERNEL_NAME

tool: D377: CL_INVALID_KERNEL_DEFINITION

tool: D21: CL_INVALID_KERNEL

tool: D665: CL_INVALID_ARG_INDEX

tool: D153: CL_INVALID_ARG_VALUE

tool: D451: CL_INVALID_ARG_SIZE

tool: D437: CL_INVALID_KERNEL_ARGS

tool: D176: CL_INVALID_WORK_DIMENSION

tool: D202: CL_INVALID_WORK_GROUP_SIZE

tool: D116: CL_INVALID_WORK_ITEM_SIZE

tool: D607: CL_INVALID_GLOBAL_OFFSET

tool: D580: CL_INVALID_EVENT_WAIT_LIST

tool: D156: CL_INVALID_EVENT

tool: D339: CL_INVALID_OPERATION

tool: D599: CL_INVALID_GL_OBJECT

tool: D163: CL_INVALID_BUFFER_SIZE

tool: D509: CL_INVALID_MIP_LEVEL

tool: D461: CL_INVALID_GLOBAL_WORK_SIZE

tool: D36: CL_INVALID_PROPERTY

tool: D179: CL_INVALID_IMAGE_DESCRIPTOR

tool: D582: CL_INVALID_COMPILER_OPTIONS

tool: D499: CL_INVALID_LINKER_OPTIONS

tool: D527: CL_INVALID_DEVICE_PARTITION_COUNT

assistant: ```c
char *clErrNo2Str(int n) {
  char *clErrString[100] = {
      "CL_SUCCESS", "CL_DEVICE_NOT_FOUND", "CL_DEVICE_NOT_AVAILABLE", "CL_COMPILER_NOT_AVAILABLE", "CL_MEM_OBJECT_ALLOCATION_FAILURE", "CL_OUT_OF_RESOURCES", "CL_OUT_OF_HOST_MEMORY", "CL_PROFILING_INFO_NOT_AVAILABLE", "CL_MEM_COPY_OVERLAP", "CL_IMAGE_FORMAT_MISMATCH", "CL_IMAGE_FORMAT_NOT_SUPPORTED", "CL_BUILD_PROGRAM_FAILURE", "CL_MAP_FAILURE", "CL_MISALIGNED_SUB_BUFFER_OFFSET", "CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST", "CL_COMPILE_PROGRAM_FAILURE", "CL_LINKER_NOT_AVAILABLE", "CL_LINK_PROGRAM_FAILURE", "CL_DEVICE_PARTITION_FAILED", "CL_KERNEL_ARG_INFO_NOT_AVAILABLE", "CL_UNDEFINE_ERROR", "CL_UNDEFINE_ERROR", "CL_UNDEFINE_ERROR", "CL_UNDEFINE_ERROR", "CL_UNDEFINE_ERROR", "CL_UNDEFINE_ERROR", "CL_UNDEFINE_ERROR", "CL_UNDEFINE_ERROR", "CL_UNDEFINE_ERROR", "CL_UNDEFINE_ERROR", "CL_INVALID_VALUE", "CL_INVALID_DEVICE_TYPE", "CL_INVALID_PLATFORM", "CL_INVALID_DEVICE", "CL_INVALID_CONTEXT", "CL_INVALID_QUEUE_PROPERTIES", "CL_INVALID_COMMAND_QUEUE", "CL_INVALID_HOST_PTR", "CL_INVALID_MEM_OBJECT", "CL_INVALID_IMAGE_FORMAT_DESCRIPTOR", "CL_INVALID_IMAGE_SIZE", "CL_INVALID_SAMPLER", "CL_INVALID_BINARY", "CL_INVALID_BUILD_OPTIONS", "CL_INVALID_PROGRAM", "CL_INVALID_PROGRAM_EXECUTABLE", "CL_INVALID_KERNEL_NAME", "CL_INVALID_KERNEL_DEFINITION", "CL_INVALID_KERNEL", "CL_INVALID_ARG_INDEX", "CL_INVALID_ARG_VALUE", "CL_INVALID_ARG_SIZE", "CL_INVALID_KERNEL_ARGS", "CL_INVALID_WORK_DIMENSION", "CL_INVALID_WORK_GROUP_SIZE", "CL_INVALID_WORK_ITEM_SIZE", "CL_INVALID_GLOBAL_OFFSET", "CL_INVALID_EVENT_WAIT_LIST", "CL_INVALID_EVENT", "CL_INVALID_OPERATION", "CL_INVALID_GL_OBJECT", "CL_INVALID_BUFFER_SIZE", "CL_INVALID_MIP_LEVEL", "CL_INVALID_GLOBAL_WORK_SIZE", "CL_INVALID_PROPERTY", "CL_INVALID_IMAGE_DESCRIPTOR", "CL_INVALID_COMPILER_OPTIONS", "CL_INVALID_LINKER_OPTIONS", "CL_INVALID_DEVICE_PARTITION_COUNT",
  };
  return clErrString[-(n)];
}
```