FopGetTableOffsetAndSize

NTSTATUS __stdcall FopGetTableOffsetAndSize(
        _FILE_IMAGE *FileHandle,
        UINT64 OffsetTableOffset,
        UINT64 TagId,
        UINT64 *FileOffset,
        UINT64 *Size){
  int v6; 
  int v7; 
  int v9; 
  unsigned __int16 v10; 
  unsigned int v11; 
  unsigned int v12; 
  unsigned int v13; 
  NTSTATUS v14; 
  unsigned __int32 v15; 
  unsigned __int32 v16; 
  unsigned __int32 v17; 
  __int64 Buffer; 
  int v20; 
  __int128 v21; 

  v6 = TagId;
  Buffer = 0i64;
  v20 = 0;
  v7 = OffsetTableOffset;
  v21 = 0i64;
  v9 = FioFwReadBytesAtOffset(FileHandle, OffsetTableOffset, 0xCui64, &Buffer);
  if( v9 < 0 )
  {
    v10 = WORD2(Buffer);
  }
  else
  {
    if( _byteswap_ulong(Buffer) != 0x10000 )
      return -1073741637;
    v10 = __ROR2__(WORD2(Buffer), 8);
    v9 = 0;
  }
  if( v9 >= 0 )
  {
    v11 = 0;
    v12 = v10;
    v13 = v7 + 12;
    if( v10 )
    {
      while( 1 )
      {
        v14 = FioFwReadBytesAtOffset(FileHandle, v13, 0x10ui64, &v21);
        v15 = HIDWORD(v21);
        v9 = v14;
        v16 = DWORD2(v21);
        v17 = v21;
        if( v14 >= 0 )
        {
          v9 = 0;
          v17 = _byteswap_ulong(v21);
          v16 = _byteswap_ulong(DWORD2(v21));
          v15 = _byteswap_ulong(HIDWORD(v21));
          *(_QWORD *)&v21 = __PAIR64__(_byteswap_ulong(DWORD1(v21)), v17);
          *((_QWORD *)&v21 + 1) = __PAIR64__(v15, v16);
        }
        if( v9 < 0 )
          break;
        if( v17 == v6 )
        {
          *(_DWORD *)FileOffset = v16;
          *(_DWORD *)Size = v15;
          return v9;
        }
        ++v11;
        v13 += 16;
        if( v11 >= v12 )
          return -1073741275;
      }
    }
    else
    {
      return -1073741275;
    }
  }
  return v9;
}

Referenced by:

BgpRasInitializeRasterizer
FopInitializeFonts
FopValidateFontNameTable