HvpAddDummyBinToHive
NTSTATUS __stdcall HvpAddDummyBinToHive(PVOID Hive, _HBIN *Bin, UINT64 CellIndex, __m128 **NewBin){
unsigned int v5;
int v7;
VOID *v8;
__m128 *v9;
bool v10;
VOID *v11;
VOID *a5;
_HBIN **v14;
_HBIN **v15;
VOID *Type;
Type = 0i64;
v5 = CellIndex;
v7 = HvpAllocateBin((_HHIVE *)Hive, 0x1000ui64, 0, 0x30334D43ui64, (UINT64)&Type, v14, v15);
if( v7 < 0 )
{
v11 = Type;
}
else
{
v9 = (__m128 *)Type;
memset(Type, 0i64, 0x1000u);
v10 = BYTE3(NlsMbCodePageTag) == 0;
v9->m128_i32[1] = v5;
v9->m128_i32[2] = 4096;
if( v10 && (*(&CmpDummyThreadEvent + 2744) & 6) == 0 )
{
v9->m128_i32[0] = 0;
v9[2].m128_i32[0] = -4064;
}
else
{
v9->m128_i32[0] = 1852400232;
v9[2].m128_i32[0] = 4064;
*(_DWORD *)(*((_QWORD *)Hive + 8) + 4088i64) |= 4u;
}
HvpPointMapEntriesToBuffer(Hive, (UINT64)v9, 4096i64, v5, 1, 0i64);
v11 = 0i64;
*NewBin = v9;
v7 = 0;
}
if( v11 )
HvpFreeBin((_HHIVE *)Hive, 0x1000ui64, v11, v8, a5);
return v7;
}Referenced by:
HvpPerformLogFileRecovery