ExpTranslateHexStringToULONGLONG

__int64 __fastcall ExpTranslateHexStringToULONGLONG(UINT16 *a1, __int64 *a2){
  __int64 v2; 
  __int64 v4; 
  UINT16 *v5; 
  unsigned int i; 
  UINT16 v7; 
  __int64 v8; 

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

Referenced by:

ExpParseSignatureName