// UnicodeStrToUpper - decompiled from Platform.efi
__int64 __fastcall UnicodeStrToUpper(__int64 n12)
{
  __int64 n3; // rax
  unsigned int n3_1; // ebx
  __int64 CpuPciCfg; // rax
  unsigned __int16 VariableSize; // ax
  int VariableSize_1; // edx
  int n335; // eax

  n3 = (unsigned int)n3; /*0x5ace*/
  n3_1 = 3; /*0x5ad4*/
  if ( n3 == 3 )
  {
    CpuPciCfg = ReadCpuPciCfg(n12, 31, 0); /*0x5ae7*/
    VariableSize = GetVariableSize((unsigned __int16 *)(CpuPciCfg + 2)); /*0x5af0*/
    VariableSize_1 = VariableSize; /*0x5af5*/
    if ( ((VariableSize + 24128) & 0xFF70) != 0 )
    {
      if ( (unsigned __int16)(VariableSize + 25280) <= 8u && (n335 = 335, _bittest(&n335, VariableSize_1 + 25280)) )
      {
        n3_1 = 2; /*0x5b20*/
      }
      else
      {
        DebugPrint(0x80000000, "Unsupported PCH SKU, LpcDeviceId: 0x%04x!\n", (unsigned __int16)VariableSize_1);
        Assert( /*0x5b4f*/
          (__int64)"e:\\hs\\PurleySktPkg\\SouthClusterLbg\\Library\\PeiDxeSmmPchInfoLib\\PchInfoLib.c",
          252,
          (__int64)"((BOOLEAN)(0==1))");
      }
    }
    else
    {
      n3_1 = 1; /*0x5b56*/
    }
    n3 = n3_1; /*0x5b5b*/
    return n3_1; /*0x5b61*/
  }
  return n3; /*0x5b63*/
}
