PiDevCfgParseVariableName

UINT8 __stdcall PiDevCfgParseVariableName(
        PWCHAR VariableString,
        _UNICODE_STRING *VariableName,
        UINT64 *VariableModifiers){
  PWCHAR i; 
  int v5; 
  WCHAR v6; 
  int v8; 
  i = 0i64;
  v5 = 0;
  if( *VariableString == 36 )
  {
    for( i = VariableString + 1; ; ++i )
    {
      v6 = *i;
      if( !*i )
        break;
      if( v6 == 63 )
      {
        v8 = 0x10000;
      }
      else if( v6 == 33 )
      {
        v8 = 0x20000;
      }
      else if( v6 == 43 )
      {
        v8 = 0x40000;
      }
      else
      {
        if( v6 != 45 )
        {
          if( v6 == 36 )
            ++i;
          break;
        }
        v8 = 0x80000;
      }
      v5 |= v8;
    }
  }
  RtlInitUnicodeString(VariableName, i, (WCHAR)VariableName);
  *(_DWORD *)VariableModifiers = v5;
  return i != 0i64;
}

Referenced by:

PiDevCfgConfigureDeviceInterfaces
PiDevCfgCopyDeviceKey
PiDevCfgQueryResolveValue