MiCreateSparsePfnDatabase

NTSTATUS __stdcall MiCreateSparsePfnDatabase(_LOADER_PARAMETER_BLOCK *LoaderBlock){
  _LIST_ENTRY *p_MemoryDescriptorListHead; 
  _LIST_ENTRY *Flink; 
  int v3; 
  UINT64 v4; 
  UINT64 Blink; 
  __int64 v6; 
  unsigned __int64 Flink_low; 
  UINT64 v8; 
  UINT64 v9; 

  p_MemoryDescriptorListHead = &LoaderBlock->MemoryDescriptorListHead;
  Flink = LoaderBlock->MemoryDescriptorListHead.Flink;
  v3 = 3;
  v4 = 0i64;
  Blink = -1i64;
  if( Flink == &LoaderBlock->MemoryDescriptorListHead )
    goto LABEL_25;
  v6 = 0x1C5C0C00048i64;
  do
  {
    Flink_low = SLODWORD(Flink[1].Flink);
    if( (unsigned int)Flink_low <= 0x28 && _bittest64(&v6, Flink_low) )
    {
      if( Blink == -1i64 )
        goto LABEL_20;
    }
    else
    {
      if( Blink == -1i64 )
      {
        Blink = (UINT64)Flink[1].Blink;
        v6 = 0x1C5C0C00048i64;
        goto LABEL_19;
      }
      if( (_LIST_ENTRY *)(Blink + v4) == Flink[1].Blink )
      {
        if( (v3 == 2 || v3 == 24) && ((_DWORD)Flink_low == 2 || (_DWORD)Flink_low == 24) )
        {
LABEL_34:
          v4 += (UINT64)Flink[2].Flink;
          v6 = 0x1C5C0C00048i64;
          goto LABEL_20;
        }
        if( v3 == 2 )
        {
LABEL_14:
          v8 = 0i64;
          goto LABEL_15;
        }
        if( (_DWORD)Flink_low != 2 && v3 != 24 && (_DWORD)Flink_low != 24 )
          goto LABEL_34;
      }
    }
    if( v3 == 2 || v3 == 24 )
      goto LABEL_14;
    v8 = 1i64;
LABEL_15:
    if( !(unsigned int)MxMapPfnRange(Blink, v4, v8) )
      return 0;
    Flink_low = SLODWORD(Flink[1].Flink);
    v6 = 0x1C5C0C00048i64;
    if( (unsigned int)Flink_low > 0x28 || !_bittest64(&v6, Flink_low) )
    {
      Blink = (UINT64)Flink[1].Blink;
LABEL_19:
      v4 = (UINT64)Flink[2].Flink;
      v3 = Flink_low;
      goto LABEL_20;
    }
    Blink = -1i64;
LABEL_20:
    Flink = Flink->Flink;
  }
  while( Flink != p_MemoryDescriptorListHead );
  if( Blink == -1i64 || (v3 == 2 || v3 == 24 ? (v9 = 0i64) : (v9 = 1i64), (unsigned int)MxMapPfnRange(Blink, v4, v9)) )
  {
LABEL_25:
    if( (*(&stru_140C4DB30 + 374) == 0x1000000000i64
       || (unsigned int)MxMapPfnRange(*(&stru_140C4DB30 + 374), 0x800ui64, 1ui64))
      && (unsigned int)MxMapPfnRange(0x1000000000ui64, 0xFFFFFFFFFFFFFFFFui64, 1ui64) )
    {
      return 1;
    }
  }
  return 0;
}

Referenced by:

MiCreatePfnDatabase