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

```asm
<_strerror_r>:
  endbr64
  cmp    $0x86,%edi
  ja     L7
  lea    D428(%rip),%rdx
  mov    %edi,%edi
  movslq (%rdx,%rdi,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  nop
L7:
  lea    D730(%rip),%rax
  ret
  lea    D841(%rip),%rax
  ret
  lea    D344(%rip),%rax
  ret
  lea    D815(%rip),%rax
  ret
  lea    D895(%rip),%rax
  ret
  lea    D891(%rip),%rax
  ret
  lea    D709(%rip),%rax
  ret
  lea    D136(%rip),%rax
  ret
  lea    D98(%rip),%rax
  ret
  lea    D687(%rip),%rax
  ret
  lea    D331(%rip),%rax
  ret
  lea    D346(%rip),%rax
  ret
  lea    D38(%rip),%rax
  ret
  lea    D402(%rip),%rax
  ret
  lea    D700(%rip),%rax
  ret
  lea    D89(%rip),%rax
  ret
  lea    D792(%rip),%rax
  ret
  lea    D680(%rip),%rax
  ret
  lea    D837(%rip),%rax
  ret
  lea    D705(%rip),%rax
  ret
  lea    D572(%rip),%rax
  ret
  lea    D52(%rip),%rax
  ret
  lea    D575(%rip),%rax
  ret
  lea    D403(%rip),%rax
  ret
  lea    D418(%rip),%rax
  ret
  lea    D48(%rip),%rax
  ret
  lea    D405(%rip),%rax
  ret
  lea    D390(%rip),%rax
  ret
  lea    D431(%rip),%rax
  ret
  lea    D144(%rip),%rax
  ret
  lea    D859(%rip),%rax
  ret
  lea    D260(%rip),%rax
  ret
  lea    D698(%rip),%rax
  ret
  lea    D689(%rip),%rax
  ret
  lea    D883(%rip),%rax
  ret
  lea    D160(%rip),%rax
  ret
  lea    D507(%rip),%rax
  ret
  lea    D742(%rip),%rax
  ret
  lea    D453(%rip),%rax
  ret
  lea    D900(%rip),%rax
  ret
  lea    D664(%rip),%rax
  ret
  lea    D796(%rip),%rax
  ret
  lea    D318(%rip),%rax
  ret
  lea    D347(%rip),%rax
  ret
  lea    D327(%rip),%rax
  ret
  lea    D511(%rip),%rax
  ret
  lea    D814(%rip),%rax
  ret
  lea    D92(%rip),%rax
  ret
  lea    D228(%rip),%rax
  ret
  lea    D520(%rip),%rax
  ret
  lea    D149(%rip),%rax
  ret
  lea    D534(%rip),%rax
  ret
  lea    D101(%rip),%rax
  ret
  lea    D133(%rip),%rax
  ret
  lea    D840(%rip),%rax
  ret
  lea    D210(%rip),%rax
  ret
  lea    D747(%rip),%rax
  ret
  lea    D60(%rip),%rax
  ret
  lea    D189(%rip),%rax
  ret
  lea    D0(%rip),%rax
  ret
  lea    D494(%rip),%rax
  ret
  lea    D190(%rip),%rax
  ret
  lea    D426(%rip),%rax
  ret
  lea    D229(%rip),%rax
  ret
  lea    D693(%rip),%rax
  ret
  lea    D596(%rip),%rax
  ret
  lea    D835(%rip),%rax
  ret
  lea    D510(%rip),%rax
  ret
  lea    D605(%rip),%rax
  ret
  lea    D249(%rip),%rax
  ret
  lea    D90(%rip),%rax
  ret
  lea    D615(%rip),%rax
  ret
  lea    D871(%rip),%rax
  ret
  lea    D656(%rip),%rax
  ret
  lea    D612(%rip),%rax
  ret
  lea    D646(%rip),%rax
  ret
  lea    D733(%rip),%rax
  ret
  lea    D421(%rip),%rax
  ret
  lea    D156(%rip),%rax
  ret
  lea    D636(%rip),%rax
  ret
  lea    D332(%rip),%rax
  ret
  lea    D830(%rip),%rax
  ret
  lea    D173(%rip),%rax
  ret
  lea    D591(%rip),%rax
  ret
  lea    D423(%rip),%rax
  ret
  lea    D209(%rip),%rax
  ret
  lea    D351(%rip),%rax
  ret
  lea    D357(%rip),%rax
  ret
  lea    D465(%rip),%rax
  ret
  lea    D650(%rip),%rax
  ret
```

tool_calls: name: unpack_data
arguments: data_label: D730
data_type: string
name: unpack_data
arguments: data_label: D841
data_type: string
name: unpack_data
arguments: data_label: D344
data_type: string
name: unpack_data
arguments: data_label: D815
data_type: string
name: unpack_data
arguments: data_label: D895
data_type: string
name: unpack_data
arguments: data_label: D891
data_type: string
name: unpack_data
arguments: data_label: D709
data_type: string
name: unpack_data
arguments: data_label: D136
data_type: string
name: unpack_data
arguments: data_label: D98
data_type: string
name: unpack_data
arguments: data_label: D687
data_type: string
name: unpack_data
arguments: data_label: D331
data_type: string
name: unpack_data
arguments: data_label: D346
data_type: string
name: unpack_data
arguments: data_label: D38
data_type: string
name: unpack_data
arguments: data_label: D402
data_type: string
name: unpack_data
arguments: data_label: D700
data_type: string
name: unpack_data
arguments: data_label: D89
data_type: string
name: unpack_data
arguments: data_label: D792
data_type: string
name: unpack_data
arguments: data_label: D680
data_type: string
name: unpack_data
arguments: data_label: D837
data_type: string
name: unpack_data
arguments: data_label: D705
data_type: string
name: unpack_data
arguments: data_label: D572
data_type: string
name: unpack_data
arguments: data_label: D52
data_type: string
name: unpack_data
arguments: data_label: D575
data_type: string
name: unpack_data
arguments: data_label: D403
data_type: string
name: unpack_data
arguments: data_label: D418
data_type: string
name: unpack_data
arguments: data_label: D48
data_type: string
name: unpack_data
arguments: data_label: D405
data_type: string
name: unpack_data
arguments: data_label: D390
data_type: string
name: unpack_data
arguments: data_label: D431
data_type: string
name: unpack_data
arguments: data_label: D144
data_type: string
name: unpack_data
arguments: data_label: D859
data_type: string
name: unpack_data
arguments: data_label: D260
data_type: string
name: unpack_data
arguments: data_label: D698
data_type: string
name: unpack_data
arguments: data_label: D689
data_type: string
name: unpack_data
arguments: data_label: D883
data_type: string
name: unpack_data
arguments: data_label: D160
data_type: string
name: unpack_data
arguments: data_label: D507
data_type: string
name: unpack_data
arguments: data_label: D742
data_type: string
name: unpack_data
arguments: data_label: D453
data_type: string
name: unpack_data
arguments: data_label: D900
data_type: string
name: unpack_data
arguments: data_label: D664
data_type: string
name: unpack_data
arguments: data_label: D796
data_type: string
name: unpack_data
arguments: data_label: D318
data_type: string
name: unpack_data
arguments: data_label: D347
data_type: string
name: unpack_data
arguments: data_label: D327
data_type: string
name: unpack_data
arguments: data_label: D511
data_type: string
name: unpack_data
arguments: data_label: D814
data_type: string
name: unpack_data
arguments: data_label: D92
data_type: string
name: unpack_data
arguments: data_label: D228
data_type: string
name: unpack_data
arguments: data_label: D520
data_type: string
name: unpack_data
arguments: data_label: D149
data_type: string
name: unpack_data
arguments: data_label: D534
data_type: string
name: unpack_data
arguments: data_label: D101
data_type: string
name: unpack_data
arguments: data_label: D133
data_type: string
name: unpack_data
arguments: data_label: D840
data_type: string
name: unpack_data
arguments: data_label: D210
data_type: string
name: unpack_data
arguments: data_label: D747
data_type: string
name: unpack_data
arguments: data_label: D60
data_type: string
name: unpack_data
arguments: data_label: D189
data_type: string
name: unpack_data
arguments: data_label: D0
data_type: string
name: unpack_data
arguments: data_label: D494
data_type: string
name: unpack_data
arguments: data_label: D190
data_type: string
name: unpack_data
arguments: data_label: D426
data_type: string
name: unpack_data
arguments: data_label: D229
data_type: string
name: unpack_data
arguments: data_label: D693
data_type: string
name: unpack_data
arguments: data_label: D596
data_type: string
name: unpack_data
arguments: data_label: D835
data_type: string
name: unpack_data
arguments: data_label: D510
data_type: string
name: unpack_data
arguments: data_label: D605
data_type: string
name: unpack_data
arguments: data_label: D249
data_type: string
name: unpack_data
arguments: data_label: D90
data_type: string
name: unpack_data
arguments: data_label: D615
data_type: string
name: unpack_data
arguments: data_label: D871
data_type: string
name: unpack_data
arguments: data_label: D656
data_type: string
name: unpack_data
arguments: data_label: D612
data_type: string
name: unpack_data
arguments: data_label: D646
data_type: string
name: unpack_data
arguments: data_label: D733
data_type: string
name: unpack_data
arguments: data_label: D421
data_type: string
name: unpack_data
arguments: data_label: D156
data_type: string
name: unpack_data
arguments: data_label: D636
data_type: string
name: unpack_data
arguments: data_label: D332
data_type: string
name: unpack_data
arguments: data_label: D830
data_type: string
name: unpack_data
arguments: data_label: D173
data_type: string
name: unpack_data
arguments: data_label: D591
data_type: string
name: unpack_data
arguments: data_label: D423
data_type: string
name: unpack_data
arguments: data_label: D209
data_type: string
name: unpack_data
arguments: data_label: D351
data_type: string
name: unpack_data
arguments: data_label: D357
data_type: string
name: unpack_data
arguments: data_label: D465
data_type: string
name: unpack_data
arguments: data_label: D650
data_type: string

tool: 

tool: D841: Not supported

tool: D344: State not recoverable

tool: D815: Previous owner died

tool: D895: Operation canceled

tool: D891: Connection already in progress

tool: D709: Socket already connected

tool: D136: Host is unreachable

tool: D98: Host is down

tool: D687: Connection refused

tool: D331: Connection timed out

tool: D346: Can't send after socket shutdown

tool: D38: Socket is not connected

tool: D402: Socket is already connected

tool: D700: No buffer space available

tool: D89: Software caused connection abort

tool: D792: Network is unreachable

tool: D680: Network interface is not configured

tool: D837: Address already in use

tool: D705: Address family not supported by protocol family

tool: D572: Operation not supported on socket

tool: D52: Socket type not supported

tool: D575: Unknown protocol

tool: D403: Protocol not available

tool: D418: Protocol wrong type for socket

tool: D48: Message too long

tool: D405: Destination address required

tool: D390: Socket operation on non-socket

tool: D431: Streams pipe error

tool: D144: Cannot exec a shared library directly

tool: D859: Attempting to link in more shared libraries than system limit

tool: D260: .lib section in a.out corrupted

tool: D698: Accessing a corrupted shared library

tool: D689: Cannot access a needed shared library

tool: D883: Bad message

tool: D160: Multihop attempted

tool: D507: Protocol error

tool: D742: Communication error

tool: D453: Srmount error

tool: D900: Advertise error

tool: D664: Virtual circuit is gone

tool: D796: Resource is remote

tool: D318: No package

tool: D347: Machine is not on the network

tool: D327: No stream resources

tool: D511: Stream ioctl timeout

tool: D814: Not a stream

tool: D92: Identifier removed

tool: D228: No message of desired type

tool: D520: Too many symbolic links

tool: D149: Directory not empty

tool: D534: Function not implemented

tool: D101: No lock

tool: D133: File or path name too long

tool: D840: Deadlock

tool: D210: Result too large

tool: D747: Math argument

tool: D60: Broken pipe

tool: D189: Too many links

tool: D0: Read-only file system

tool: D494: Illegal seek

tool: D190: No space left on device

tool: D426: File too large

tool: D229: Text file busy

tool: D693: Not a character device

tool: D596: Too many open files

tool: D835: Too many open files in system

tool: D510: Invalid argument

tool: D605: Is a directory

tool: D249: Not a directory

tool: D90: No such device

tool: D615: Cross-device link

tool: D871: File exists

tool: D656: Device or resource busy

tool: D612: Block device required

tool: D646: Bad address

tool: D733: Permission denied

tool: D421: Not enough space

tool: D156: No more processes

tool: D636: No children

tool: D332: Bad file number

tool: D830: Exec format error

tool: D173: Arg list too long

tool: D591: No such device or address

tool: D423: I/O error

tool: D209: Interrupted system call

tool: D351: No such process

tool: D357: No such file or directory

tool: D465: Success

tool: D650: Not owner

assistant: ```c
char *_strerror_r(int errnum, int internal, int *errptr) {
  const char *error;
  switch (errnum) {
  case 0:
    error = "Success";
    break;
  case 1:
    error = "Not owner";
    break;
  case 2:
    error = "No such file or directory";
    break;
  case 3:
    error = "No such process";
    break;
  case 4:
    error = "Interrupted system call";
    break;
  case 5:
    error = "I/O error";
    break;
  case 6:
    error = "No such device or address";
    break;
  case 7:
    error = "Arg list too long";
    break;
  case 8:
    error = "Exec format error";
    break;
  case 114:
    error = "Socket already connected";
    break;
  case 9:
    error = "Bad file number";
    break;
  case 10:
    error = "No children";
    break;
  case 89:
    error = "Destination address required";
    break;
  case 11:
    error = "No more processes";
    break;
  case 12:
    error = "Not enough space";
    break;
  case 13:
    error = "Permission denied";
    break;
  case 14:
    error = "Bad address";
    break;
  case 15:
    error = "Block device required";
    break;
  case 16:
    error = "Device or resource busy";
    break;
  case 17:
    error = "File exists";
    break;
  case 18:
    error = "Cross-device link";
    break;
  case 19:
    error = "No such device";
    break;
  case 20:
    error = "Not a directory";
    break;
  case 112:
    error = "Host is down";
    break;
  case 115:
    error = "Connection already in progress";
    break;
  case 21:
    error = "Is a directory";
    break;
  case 22:
    error = "Invalid argument";
    break;
  case 100:
    error = "Network interface is not configured";
    break;
  case 23:
    error = "Too many open files in system";
    break;
  case 24:
    error = "Too many open files";
    break;
  case 25:
    error = "Not a character device";
    break;
  case 26:
    error = "Text file busy";
    break;
  case 27:
    error = "File too large";
    break;
  case 113:
    error = "Host is unreachable";
    break;
  case 28:
    error = "No space left on device";
    break;
  case 134:
    error = "Not supported";
    break;
  case 29:
    error = "Illegal seek";
    break;
  case 30:
    error = "Read-only file system";
    break;
  case 31:
    error = "Too many links";
    break;
  case 32:
    error = "Broken pipe";
    break;
  case 33:
    error = "Math argument";
    break;
  case 34:
    error = "Result too large";
    break;
  case 42:
    error = "No message of desired type";
    break;
  case 43:
    error = "Identifier removed";
    break;
  case 35:
    error = "Deadlock";
    break;
  case 101:
    error = "Network is unreachable";
    break;
  case 37:
    error = "No lock";
    break;
  case 60:
    error = "Not a stream";
    break;
  case 62:
    error = "Stream ioctl timeout";
    break;
  case 63:
    error = "No stream resources";
    break;
  case 64:
    error = "Machine is not on the network";
    break;
  case 65:
    error = "No package";
    break;
  case 66:
    error = "Resource is remote";
    break;
  case 67:
    error = "Virtual circuit is gone";
    break;
  case 68:
    error = "Advertise error";
    break;
  case 69:
    error = "Srmount error";
    break;
  case 70:
    error = "Communication error";
    break;
  case 71:
    error = "Protocol error";
    break;
  case 93:
    error = "Unknown protocol";
    break;
  case 72:
    error = "Multihop attempted";
    break;
  case 74:
    error = "Bad message";
    break;
  case 79:
    error = "Cannot access a needed shared library";
    break;
  case 80:
    error = "Accessing a corrupted shared library";
    break;
  case 81:
    error = ".lib section in a.out corrupted";
    break;
  case 82:
    error = "Attempting to link in more shared libraries than system limit";
    break;
  case 83:
    error = "Cannot exec a shared library directly";
    break;
  case 38:
    error = "Function not implemented";
    break;
  case 39:
    error = "Directory not empty";
    break;
  case 36:
    error = "File or path name too long";
    break;
  case 40:
    error = "Too many symbolic links";
    break;
  case 105:
    error = "No buffer space available";
    break;
  case 97:
    error = "Address family not supported by protocol family";
    break;
  case 91:
    error = "Protocol wrong type for socket";
    break;
  case 88:
    error = "Socket operation on non-socket";
    break;
  case 92:
    error = "Protocol not available";
    break;
  case 108:
    error = "Can't send after socket shutdown";
    break;
  case 111:
    error = "Connection refused";
    break;
  case 98:
    error = "Address already in use";
    break;
  case 103:
    error = "Software caused connection abort";
    break;
  case 107:
    error = "Socket is not connected";
    break;
  case 94:
    error = "Socket type not supported";
    break;
  case 106:
    error = "Socket is already connected";
    break;
  case 125:
    error = "Operation canceled";
    break;
  case 131:
    error = "State not recoverable";
    break;
  case 130:
    error = "Previous owner died";
    break;
  case 86:
    error = "Streams pipe error";
    break;
  case 95:
    error = "Operation not supported on socket";
    break;
  case 90:
    error = "Message too long";
    break;
  case 110:
    error = "Connection timed out";
    break;
  default:
    error = "";
    break;
  }
  return (char *)error;
}
```