// StrLen - decompiled from Platform.efi
UINTN __cdecl StrLen(const CHAR16 *String)
{
  UINTN v1; // rdx
  UINTN v2; // rdi
  UINTN result; // rax

  v2 = v1; /*0x4e52*/
  if ( ((unsigned __int8)String & 1) != 0 ) /*0x4e5b*/
    Assert( /*0x4e70*/
      (__int64)"e:\\hs\\MdePkg\\Library\\BaseLib\\SafeString.c",
      128,
      (__int64)"((UINTN) String & 0x00000001) == 0");
  if ( !String || !v2 ) /*0x4e7f*/
    return 0; /*0x4ea1*/
  result = 0; /*0x4e81*/
  if ( *String ) /*0x4e83*/
  {
    while ( result < v2 - 1 ) /*0x4e8f*/
    {
      if ( !String[++result] ) /*0x4e94*/
        return result; /*0x4e98*/
    }
    return v2; /*0x4e9c*/
  }
  return result; /*0x4ea8*/
}
