int timer_create(clockid_t __clock_id,sigevent *__evp,timer_t *__timerid)

{
  sigval_t __ptr;
  int *piVar1;
  sigval_t sVar2;
  int in_a3;
  sigval_t local_60;
  sigval_t local_5c;
  undefined4 local_58;
  undefined4 local_54;
  
  if (__evp == (sigevent *)0x0) {
    local_58 = 0xe;
    local_54 = 0;
    __evp = (sigevent *)&local_5c;
  }
  if ((((sigval_t *)((int)__evp + 8))->sival_int != 2) &&
     (__ptr.sival_ptr = malloc(8), (sigval_t *)__ptr.sival_int != (sigval_t *)0x0)) {   //possible issue identified - semgrep
    syscall(0)   //possible issue identified - semgrep
    if (in_a3 == 0) {
      sVar2 = *(sigval_t *)((int)__evp + 8);
      *__timerid = (timer_t)__ptr;
      *(sigval_t *)__ptr.sival_ptr = sVar2;
      *(sigval_t *)(__ptr.sival_int + 4) = local_60;
      return 0x10a1;
    }
    local_5c.sival_ptr = __ptr.sival_ptr;
    piVar1 = __errno_location();
    *piVar1 = 0x10a1;
    free(__ptr.sival_ptr);
  }
  return -1;
}