int FUN_00412750(undefined4 param_1,int param_2,char *param_3)

{
  int iVar1;
  uint uVar2;
  size_t sVar3;
  int iVar4;
  undefined4 uVar5;
  code *UNRECOVERED_JUMPTABLE;
  
  iVar1 = sobj_empty();
  if (iVar1 != 0) {
sobj_add_string:
    if (param_2 == 0) {
      iVar1 = -1;
    }
    else {
      iVar1 = 0;
      if (param_3 != (char *)0x0) {
        sVar3 = strlen(param_3);
        if (sVar3 == 0) {
          iVar1 = 0;
        }
        else {
          do {
            if (sVar3 <= (uint)(*(int *)(param_2 + 0xc) - *(int *)(param_2 + 0x10))) {
              strcpy((char *)(*(int *)(param_2 + 0x14) + *(int *)(param_2 + 0x10)),param_3)   //possible issue identified - semgrep
              *(size_t *)(param_2 + 0x10) = *(int *)(param_2 + 0x10) + sVar3;
              return 0;
            }
            iVar4 = FUN_0041e2c4(param_2);
            iVar1 = -1;
          } while (-1 < iVar4);
        }
      }
    }
    return iVar1;
  }
  uVar2 = sobj_get_length(param_1);
  if (3 < uVar2) {
    iVar1 = sobj_strcmp(param_1,"TIME");
    if (iVar1 == 0) {
      uVar5 = 0;
    }
    else {
      iVar1 = sobj_strcmp(param_1,"TIME.ISO8601");
      if (iVar1 == 0) {
        uVar5 = 1;
      }
      else {
        iVar1 = sobj_strcmp(param_1,"TIME.RFC1123");
        if (iVar1 == 0) {
          uVar5 = 2;
        }
        else {
          iVar1 = sobj_strcmp(param_1,"TIME.RFC850");
          if (iVar1 == 0) {
            uVar5 = 3;
          }
          else {
            iVar1 = sobj_strcmp(param_1,"TIME.ASCTIME",param_2);
            if (iVar1 != 0) {
              return iVar1;
            }
            uVar5 = 4;
          }
        }
      }
    }
    iVar1 = FUN_0040e9cc(uVar5,param_3,param_2);
    return iVar1;
  }
  iVar1 = sobj_strchr(param_1,0x6a);
  if (iVar1 < 0) {
    iVar1 = sobj_strchr(param_1,0x73);
    if (iVar1 < 0) {
      iVar1 = sobj_strchr(param_1,0x68);
      if (iVar1 < 0) {
        iVar1 = sobj_strchr(param_1,0x78);
        if (iVar1 < 0) goto sobj_add_string;
        UNRECOVERED_JUMPTABLE = sobj_escape_xml_sc;
      }
      else {
        UNRECOVERED_JUMPTABLE = sobj_escape_html_sc;
      }
    }
    else {
      UNRECOVERED_JUMPTABLE = sobj_escape_shellscript;
    }
  }
  else {
    UNRECOVERED_JUMPTABLE = sobj_escape_javascript;
  }
                    /* WARNING: Could not recover jumptable at 0x0041294c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  iVar1 = (*UNRECOVERED_JUMPTABLE)(param_3,param_2);
  return iVar1;
}