undefined4 FUN_00402c08(void *param_1)

{
  char cVar1;
  int iVar2;
  char *pcVar3;
  int iVar4;
  uint uVar5;
  char *pcVar6;
  char local_90 [127];
  undefined1 local_11;
  
  memset(local_90,0,0x80)   //possible issue identified - semgrep
  memset(local_90,0,0x80)   //possible issue identified - semgrep
  pcVar6 = g_uuid;
  if ((g_uuid == (char *)0x0) &&
     (iVar2 = xmldbc_get_wb(0,0,"/runtime/upnpdev/root:1/uuid",local_90,0x7f), pcVar6 = local_90,
     iVar2 != 0)) {
    return 0;
  }
  local_11 = 0;
  memset(param_1,0,0x10)   //possible issue identified - semgrep
  uVar5 = 0;
  do {
    cVar1 = *pcVar6;
    iVar2 = (int)cVar1;
    if (iVar2 == 0) {
      return 1;
    }
    iVar4 = iVar2 + -0x30;
    if (((byte)(cVar1 - 0x31U) < 9) || (iVar4 = iVar2 + -0x57, (byte)(cVar1 + 0x9fU) < 6)) {
LAB_00402d10:
      if (-1 < iVar4) {
        if ((uVar5 & 1) == 0) {
          pcVar3 = (char *)((int)param_1 + ((int)uVar5 >> 1));
          *pcVar3 = (char)iVar4 * '\x10' + *pcVar3;
        }
        else {
          pcVar3 = (char *)((int)param_1 + ((int)uVar5 >> 1));
          *pcVar3 = (char)iVar4 + *pcVar3;
        }
        uVar5 = uVar5 + 1;
      }
    }
    else if ((byte)(cVar1 + 0xbfU) < 6) {
      iVar4 = iVar2 + -0x37;
      goto LAB_00402d10;
    }
    pcVar6 = pcVar6 + 1;
    if (0x1f < (int)uVar5) {
      return 1;
    }
  } while( true );
}