/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void xtables_parse_interface(char *param_1,char *param_2,void *param_3)

{
  char cVar1;
  size_t sVar2;
  char *pcVar3;
  size_t __n;
  uint __n_00;
  
  sVar2 = strlen(param_1);
  memset(param_3,0,0x10)   //possible issue identified - semgrep
  __n_00 = sVar2 + 1;
  memset(param_2,0,0x10)   //possible issue identified - semgrep
  pcVar3 = param_1;
  if (0x10 < __n_00) {
    pcVar3 = (char *)0x5748;
    (**(code **)(xt_params + 0x14))(2,0x5748,param_1,0xf);
  }
  strcpy(param_2,pcVar3)   //possible issue identified - semgrep
  __n = sVar2 - 1   //possible issue identified - semgrep
  if (sVar2 == 0) {
    sVar2 = 0x10   //possible issue identified - semgrep
  }
  else {
    if (param_2[__n] != '+') {
      memset(param_3,0xff,__n_00);
      memset((void *)((int)param_3 + __n_00),0,0xf - sVar2);
      pcVar3 = param_2;
      do {
        cVar1 = *pcVar3;
        if (cVar1 == '\0') {
          return;
        }
      } while ((cVar1 != '/') && (pcVar3 = pcVar3 + 1, cVar1 != ' '));
                    /* WARNING: Could not recover jumptable at 0x00012218. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      fprintf(_stderr,(char *)0x5780,param_2)   //possible issue identified - semgrep
      return;
    }
    memset(param_3,0xff,__n);
    param_3 = (void *)((int)param_3 + __n);
    sVar2 = 0x11 - sVar2   //possible issue identified - semgrep
  }
                    /* WARNING: Could not recover jumptable at 0x00012190. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  memset(param_3,0,sVar2);
  return;
}