AslpFileVerStringBlockGetValue

char __fastcall AslpFileVerStringBlockGetValue(unsigned __int64 *a1, size_t *a2, __int64 a3, unsigned __int64 a4){
  size_t v7; 
  int v9; 
  UINT64 v10; 
  unsigned __int64 v11; 
  UINT64 v13; 
  INT64 v14; 
  INT64 v15; 
  unsigned __int64 v16; 
  size_t pcbLength; 
  *a1 = 0i64;
  *a2 = 0i64;
  v7 = 0i64;
  v16 = 0i64;
  pcbLength = 0i64;
  LOBYTE(v9) = AslpFileVerBlockGetValueOffset((INT16)&v16, a3, a4, a4, v13, v14, v15);
  if( v9 >= 0 )
  {
    if( v16 > a4 )
    {
      LOBYTE(v9) = 13;
    }
    else
    {
      if( v16 == a4 )
      {
        v11 = a3 + v16 - 2;
      }
      else
      {
        v10 = a4 - v16;
        if( (int)RtlStringCbLengthW((const WCHAR *)(v16 + a3), v10, &pcbLength) < 0 )
        {
          v7 = v10 - 2;
          *(_WORD *)(v11 + 2 * ((v10 - 2) >> 1)) = 0;
        }
        else
        {
          v7 = pcbLength;
        }
      }
      LOBYTE(v9) = 0;
      *a2 = v7 >> 1;
      *a1 = v11;
    }
  }
  return v9;
}

Referenced by:

AslpFileQueryVersionString