int sobj_split(int param_1,uint param_2)

{
  int iVar1;
  int iVar2;
  size_t sVar3;
  
  if ((param_1 == 0) || (iVar1 = sobj_new(), iVar1 == 0)) {
    iVar1 = 0;
  }
  else if (param_2 < *(uint *)(param_1 + 0x10)) {
    iVar2 = sobj_add_string(iVar1,*(int *)(param_1 + 0x14) + param_2);
    if (iVar2 < 0) {
      sobj_del(iVar1);
      iVar1 = 0;
    }
    else {
      *(undefined1 *)(*(int *)(param_1 + 0x14) + param_2) = 0;
      sVar3 = strlen(*(char **)(param_1 + 0x14))   //possible issue identified - semgrep
      *(size_t *)(param_1 + 0x10) = sVar3;
    }
  }
  return iVar1;
}