//0x400 bytes (sizeof)
struct _HHIVE
{
    ULONG Signature;                                                        //0x0
    struct _CELL_DATA* (*GetCellRoutine)(struct _HHIVE* arg1, ULONG arg2, struct _HV_GET_CELL_CONTEXT* arg3); //0x4
    VOID (*ReleaseCellRoutine)(struct _HHIVE* arg1, struct _HV_GET_CELL_CONTEXT* arg2); //0x8
    VOID* (*Allocate)(ULONG arg1, UCHAR arg2, ULONG arg3);                  //0xc
    VOID (*Free)(VOID* arg1, ULONG arg2);                                   //0x10
    LONG (*FileWrite)(struct _HHIVE* arg1, ULONG arg2, struct CMP_OFFSET_ARRAY* arg3, ULONG arg4, ULONG arg5); //0x14
    LONG (*FileRead)(struct _HHIVE* arg1, ULONG arg2, ULONG arg3, VOID* arg4, ULONG arg5); //0x18
    VOID* HiveLoadFailure;                                                  //0x1c
    struct _HBASE_BLOCK* BaseBlock;                                         //0x20
    struct _CMSI_RW_LOCK FlusherLock;                                       //0x24
    struct _CMSI_RW_LOCK WriterLock;                                        //0x28
    struct _RTL_BITMAP DirtyVector;                                         //0x2c
    ULONG DirtyCount;                                                       //0x34
    ULONG DirtyAlloc;                                                       //0x38
    struct _RTL_BITMAP UnreconciledVector;                                  //0x3c
    ULONG UnreconciledCount;                                                //0x44
    ULONG BaseBlockAlloc;                                                   //0x48
    ULONG Cluster;                                                          //0x4c
    UCHAR Flat:1;                                                           //0x50
    UCHAR ReadOnly:1;                                                       //0x50
    UCHAR Reserved:6;                                                       //0x50
    UCHAR DirtyFlag;                                                        //0x51
    ULONG HvBinHeadersUse;                                                  //0x54
    ULONG HvFreeCellsUse;                                                   //0x58
    ULONG HvUsedCellsUse;                                                   //0x5c
    ULONG CmUsedCellsUse;                                                   //0x60
    ULONG HiveFlags;                                                        //0x64
    ULONG CurrentLog;                                                       //0x68
    ULONG CurrentLogSequence;                                               //0x6c
    ULONG CurrentLogMinimumSequence;                                        //0x70
    ULONG CurrentLogOffset;                                                 //0x74
    ULONG MinimumLogSequence;                                               //0x78
    ULONG LogFileSizeCap;                                                   //0x7c
    UCHAR LogDataPresent[2];                                                //0x80
    UCHAR PrimaryFileValid;                                                 //0x82
    UCHAR BaseBlockDirty;                                                   //0x83
    union _LARGE_INTEGER LastLogSwapTime;                                   //0x88
    union
    {
        struct
        {
            USHORT FirstLogFile:3;                                          //0x90
            USHORT SecondLogFile:3;                                         //0x90
            USHORT HeaderRecovered:1;                                       //0x90
            USHORT LegacyRecoveryIndicated:1;                               //0x90
            USHORT RecoveryInformationReserved:8;                           //0x90
        };
        USHORT RecoveryInformation;                                         //0x90
    };
    UCHAR LogEntriesRecovered[2];                                           //0x92
    ULONG RefreshCount;                                                     //0x94
    ULONG StorageTypeCount;                                                 //0x98
    ULONG Version;                                                          //0x9c
    struct _HVP_VIEW_MAP ViewMap;                                           //0xa0
    struct _DUAL Storage[2];                                                //0xc8
};