user: Converte this assembly snippet into its equivalent C code:

```asm
<zje_syscall_detail>:
  endbr64
  sub    $0x798,%rsp
  movslq %edi,%rax
  lea    D18(%rip),%rsi
  mov    $0xf0,%ecx
  mov    %fs:0x28,%rdx
  mov    %rdx,0x788(%rsp)
  xor    %edx,%edx
  mov    %rsp,%rdi
  lea    D2(%rip),%r8
  rep movsq %ds:(%rsi),%es:(%rdi)
  cmp    $0xef,%eax
  ja     L10
  mov    (%rsp,%rax,8),%r8
L10:
  mov    0x788(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L12
  mov    %r8,%rax
  add    $0x798,%rsp
  ret
L12:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: parse_data
arguments: data_tag: D2
type_guessed: string

tool: D2: sys_ni_syscall

assistant: ```c
const char *zje_syscall_detail(int syscall) {
  char *syscalls[] = {"sys_ni_syscall", "sys_exit", "sys_fork", "sys_read", "sys_write", "sys_open", "sys_close", "sys_waitpid", "sys_creat", "sys_link", "sys_unlink", "sys_execve", "sys_chdir", "sys_time", "sys_mknod", "sys_chmod", "sys_lchown16", "sys_ni_syscall", "sys_stat", "sys_lseek", "sys_getpid", "sys_mount", "sys_oldumount", "sys_setuid16", "sys_getuid16", "sys_stime", "sys_ptrace", "sys_alarm", "sys_fstat", "sys_pause", "sys_utime", "sys_ni_syscall", "sys_ni_syscall", "sys_access", "sys_nice", "sys_ni_syscall", "sys_sync", "sys_kill", "sys_rename", "sys_mkdir", "sys_rmdir", "sys_dup", "sys_pipe", "sys_times", "sys_ni_syscall", "sys_brk", "sys_setgid16", "sys_getgid16", "sys_signal", "sys_geteuid16", "sys_getegid16", "sys_acct", "sys_umount", "sys_ni_syscall", "sys_ioctl", "sys_fcntl", "sys_ni_syscall", "sys_setpgid", "sys_ni_syscall", "sys_olduname", "sys_umask", "sys_chroot", "sys_ustat", "sys_dup2", "sys_getppid", "sys_getpgrp", "sys_setsid", "sys_sigaction", "sys_sgetmask", "sys_ssetmask", "sys_setreuid16", "sys_setregid16", "sys_sigsuspend", "sys_sigpending", "sys_sethostname", "sys_setrlimit", "sys_old_getrlimit", "sys_getrusage", "sys_gettimeofday", "sys_settimeofday", "sys_getgroups16", "sys_setgroups16", "old_select", "sys_symlink", "sys_lstat", "sys_readlink", "sys_uselib", "sys_swapon", "sys_reboot", "old_readdir", "old_mmap", "sys_munmap", "sys_truncate", "sys_ftruncate", "sys_fchmod", "sys_fchown16", "sys_getpriority", "sys_setpriority", "sys_ni_syscall", "sys_statfs", "sys_fstatfs", "sys_ioperm", "sys_socketcall", "sys_syslog", "sys_setitimer", "sys_getitimer", "sys_newstat", "sys_newlstat", "sys_newfstat", "sys_uname", "sys_iopl", "sys_vhangup", "sys_ni_syscall", "sys_vm86old", "sys_wait4", "sys_swapoff", "sys_sysinfo", "sys_ipc", "sys_fsync", "sys_sigreturn", "sys_clone", "sys_setdomainname", "sys_newuname", "sys_modify_ldt", "sys_adjtimex", "sys_mprotect", "sys_sigprocmask", "sys_create_module", "sys_init_module", "sys_delete_module", "sys_get_kernel_syms", "sys_quotactl", "sys_getpgid", "sys_fchdir", "sys_bdflush", "sys_sysfs", "sys_personality", "sys_ni_syscall", "sys_setfsuid16", "sys_setfsgid16", "sys_llseek", "sys_getdents", "sys_select", "sys_flock", "sys_msync", "sys_readv", "sys_writev", "sys_getsid", "sys_fdatasync", "sys_sysctl", "sys_mlock", "sys_munlock", "sys_mlockall", "sys_munlockall", "sys_sched_setparam", "sys_sched_getparam", "sys_sched_setscheduler", "sys_sched_getscheduler", "sys_sched_yield", "sys_sched_get_priority_max", "sys_sched_get_priority_min", "sys_sched_rr_get_interval", "sys_nanosleep", "sys_mremap", "sys_setresuid16", "sys_getresuid16", "sys_vm86", "sys_query_module", "sys_poll", "sys_nfsservctl", "sys_setresgid16", "sys_getresgid16", "sys_prctl", "sys_rt_sigreturn", "sys_rt_sigaction", "sys_rt_sigprocmask", "sys_rt_sigpending", "sys_rt_sigtimedwait", "sys_rt_sigqueueinfo", "sys_rt_sigsuspend", "sys_pread", "sys_pwrite", "sys_chown16", "sys_getcwd", "sys_capget", "sys_capset", "sys_sigaltstack", "sys_sendfile", "sys_ni_syscall", "sys_ni_syscall", "sys_vfork", "sys_getrlimit", "sys_mmap2", "sys_truncate64", "sys_ftruncate64", "sys_stat64", "sys_lstat64", "sys_fstat64", "sys_lchown", "sys_getuid", "sys_getgid", "sys_geteuid", "sys_getegid", "sys_setreuid", "sys_setregid", "sys_getgroups", "sys_setgroups", "sys_fchown", "sys_setresuid", "sys_getresuid", "sys_setresgid", "sys_getresgid", "sys_chown", "sys_setuid", "sys_setgid", "sys_setfsuid", "sys_setfsgid", "sys_pivot_root", "sys_mincore", "sys_madvise", "sys_getdents64", "sys_fcntl64", "sys_ni_syscall", "sys_ni_syscall", "sys_gettid", "sys_readahead", "sys_setxattr", "sys_lsetxattr", "sys_fsetxattr", "sys_getxattr", "sys_lgetxattr", "sys_fgetxattr", "sys_listxattr", "sys_llistxattr", "sys_flistxattr", "sys_removexattr", "sys_lremovexattr", "sys_fremovexattr", "sys_tkill", "sys_sendfile64"};
  if (syscall >= sizeof(syscalls) / sizeof(*syscalls) || syscall < 0) {
    return "sys_ni_syscall";
  }
  return syscalls[syscall];
}
```