undefined1 * xtables_ip6mask_to_numeric(uint *param_1)

{
  char *__src;
  uint uVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  int iVar5;
  uint uVar6;
  
  uVar1 = *param_1;
  uVar3 = param_1[2];
  uVar2 = param_1[1];
  uVar4 = param_1[3];
  uVar4 = uVar4 << 0x18 | uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8;
  uVar6 = uVar1 << 0x18 | uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8;
  uVar1 = uVar2 << 0x18 | uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8;
  uVar2 = uVar3 << 0x18 | uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8;
  iVar5 = 0;
  while( true ) {
    if (-1 < (int)uVar6) break;
    uVar6 = uVar1 >> 0x1f | uVar6 << 1;
    uVar1 = uVar2 >> 0x1f | uVar1 << 1;
    uVar2 = uVar4 >> 0x1f | uVar2 << 1;
    iVar5 = iVar5 + 1;
    uVar4 = uVar4 << 1;
  }
  if ((((uVar1 == 0 && uVar6 == 0) && uVar2 == 0) && uVar4 == 0) && (iVar5 != -1)) {
    sprintf(buf_5575,(char *)0x56a4)   //possible issue identified - semgrep
  }
  else {
    strcpy(buf_5575,(char *)0x56ac)   //possible issue identified - semgrep
    __src = (char *)xtables_ip6addr_to_numeric(param_1);
    strcat(buf_5575,__src)   //possible issue identified - semgrep
  }
  return buf_5575;
}