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