CmpConvertLangId

UINT16 __stdcall CmpConvertLangId(PWCHAR LangIdString, UINT64 LangIdStringLength){
  UINT16 v2; 
  unsigned int v4; 
  unsigned __int16 i; 
  wchar_t v6; 
  unsigned __int16 v7; 

  v2 = 0;
  v4 = (unsigned int)LangIdStringLength >> 1;
  for( i = 0; i < v4; v2 = v7 | (16 * v2) )
  {
    v6 = LangIdString[i];
    v7 = v6 - 48;
    if( (unsigned __int16)(v6 - 48) > 9u )
    {
      if( (unsigned __int16)(v6 - 65) <= 5u )
      {
        v7 = v6 - 55;
      }
      else
      {
        if( (unsigned __int16)(v6 - 97) > 5u )
          return v2;
        v7 = v6 - 87;
      }
    }
    if( v7 >= 0x10u )
      break;
    ++i;
  }
  return v2;
}

Referenced by:

CmpGetSystemControlValues