int proc_write_forskip(undefined4 param_1,char *param_2,int param_3,int param_4)

{
  int iVar1;
  int iVar2;
  int iVar3;
  undefined2 local_18;
  undefined2 local_14;
  
  iVar2 = -0x16;
  if (param_3 != 0) {
    iVar2 = param_3;
    if (*param_2 == '-') {
      *(undefined4 *)(param_4 + 0x28) = 0;
    }
    else {
      iVar3 = *(int *)(param_4 + 0x28);
      if (iVar3 < *(int *)(param_4 + 0x2c)) {
        iVar1 = sscanf(param_2,"%d-%d")   //possible issue identified - semgrep
        if (iVar1 == 1) {
          iVar1 = *(int *)(param_4 + 0x28);
          *(undefined2 *)(param_4 + iVar3 * 2) = local_18;
          *(int *)(param_4 + 0x28) = iVar1 + 1;
          *(undefined2 *)(param_4 + (iVar3 + 8) * 2 + 4) = local_18;
        }
        else if (iVar1 == 2) {
          iVar1 = *(int *)(param_4 + 0x28);
          *(undefined2 *)(param_4 + (iVar3 + 8) * 2 + 4) = local_18;
          *(undefined2 *)(param_4 + iVar3 * 2) = local_14;
          *(int *)(param_4 + 0x28) = iVar1 + 1;
        }
      }
    }
  }
  return iVar2;
}