undefined4 sobj_add_string(int param_1,char *param_2)

{
  size_t sVar1;
  int iVar2;
  undefined4 uVar3;
  
  if (param_1 == 0) {
    uVar3 = 0xffffffff;
  }
  else {
    uVar3 = 0;
    if (param_2 != (char *)0x0) {
      sVar1 = strlen(param_2);
      if (sVar1 == 0) {
        uVar3 = 0;
      }
      else {
        do {
          if (sVar1 <= (uint)(*(int *)(param_1 + 0xc) - *(int *)(param_1 + 0x10))) {
            strcpy((char *)(*(int *)(param_1 + 0x14) + *(int *)(param_1 + 0x10)),param_2)   //possible issue identified - semgrep
            *(size_t *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + sVar1;
            return 0;
          }
          iVar2 = FUN_00404824(param_1);
          uVar3 = 0xffffffff;
        } while (-1 < iVar2);
      }
    }
  }
  return uVar3;
}