undefined1 * xtables_ipmask_to_numeric(uint *param_1)

{
  bool bVar1;
  uint uVar2;
  undefined1 *puVar3;
  uint uVar4;
  char *__format;
  int iVar5;
  
  uVar2 = *param_1;
  uVar2 = uVar2 << 0x18 | uVar2 >> 0x18 | uVar2 >> 8 & 0xff00 | (uVar2 & 0xff00) << 8;
  iVar5 = 0x20;
  if (uVar2 == 0xffffffff) {
    puVar3 = (undefined1 *)0x57d8;
  }
  else {
    uVar4 = 0xfffffffe;
    do {
      iVar5 = iVar5 + -1;
      if (iVar5 == -1) goto LAB_00011b48;
      bVar1 = uVar2 != uVar4;
      uVar4 = uVar4 << 1;
    } while (bVar1);
    if (iVar5 < 0) {
LAB_00011b48:
      iVar5 = xtables_ipaddr_to_numeric(param_1);
      __format = (char *)0x56a8;
    }
    else {
      __format = (char *)0x56a4;
    }
    sprintf(buf_5237,__format,iVar5)   //possible issue identified - semgrep
    puVar3 = buf_5237;
  }
  return puVar3;
}