ExpTranslateHexStringToULONG

NTSTATUS __stdcall ExpTranslateHexStringToULONG(PWCHAR Name, UINT64 *Number){
  __int64 v2; 
  int v4; 
  UINT16 *v5; 
  unsigned int i; 
  UINT16 v7; 
  int v8; 

  v2 = -1i64;
  v4 = 0;
  v5 = Name;
  do
    ++v2;
  while( Name[v2] );
  if( (unsigned int)v2 > 8 )
    return -1073741811;
  for( i = 0; i < (unsigned int)v2; ++v5 )
  {
    v7 = towlower(*v5);
    if( (unsigned __int16)(v7 - 48) > 9u )
    {
      if( (unsigned __int16)(v7 - 97) > 5u )
        return -1073741811;
      v8 = 16 * v4 - 87;
    }
    else
    {
      v8 = 16 * v4 - 48;
    }
    v4 = v7 + v8;
    ++i;
  }
  *(_DWORD *)Number = v4;
  return 0;
}

Referenced by:

ExpParseSignatureName