// SetupValueCheck - decompiled from Platform.efi
__int64 __fastcall SetupValueCheck(_WORD *ZeroPool, _WORD *GUID_, unsigned __int64 n0xF4240)
{
  unsigned __int64 n0xF4240_1; // rdi
  _WORD *ZeroPool_1; // rbx

  n0xF4240_1 = n0xF4240; /*0x563e*/
  ZeroPool_1 = ZeroPool; /*0x5644*/
  if ( !n0xF4240 ) /*0x564a*/
    return 0; /*0x564c*/
  if ( 2 * SetupOptionQuery(ZeroPool) == -2 ) /*0x5663*/
    Assert((__int64)"e:\\hs\\MdePkg\\Library\\BaseLib\\String.c", 310, (__int64)"StrSize (FirstString) != 0"); /*0x5678*/
  if ( 2 * SetupOptionQuery(GUID_) == -2 ) /*0x5690*/
    Assert((__int64)"e:\\hs\\MdePkg\\Library\\BaseLib\\String.c", 311, (__int64)"StrSize (SecondString) != 0"); /*0x56a5*/
  if ( n0xF4240_1 > 0xF4240 ) /*0x56b1*/
    Assert( /*0x56c6*/
      (__int64)"e:\\hs\\MdePkg\\Library\\BaseLib\\String.c",
      314,
      (__int64)"Length <= _gPcd_FixedAtBuild_PcdMaximumUnicodeStringLength");
  while ( *ZeroPool_1 && *GUID_ && *ZeroPool_1 == *GUID_ && n0xF4240_1 > 1 ) /*0x56db*/
  {
    ++ZeroPool_1; /*0x56dd*/
    ++GUID_; /*0x56e1*/
    --n0xF4240_1; /*0x56e5*/
  }
  return (unsigned __int16)*ZeroPool_1 - (unsigned __int16)*GUID_; /*0x570a*/
}
