HvlpSetupCachedHypercallPages

VOID __stdcall HvlpSetupCachedHypercallPages(_KPRCB *Prcb){
  union _SLIST_HEADER *v1; 
  __int64 v2; 
  PHYSICAL_ADDRESS *v3; 
  char *v4; 
  __int64 v5; 
  PHYSICAL_ADDRESS PhysicalAddress; 
  PHYSICAL_ADDRESS v7; 
  v1 = (union _SLIST_HEADER *)((char *)Prcb + 33600);
  v2 = *((_QWORD *)Prcb + 4208) + 0x2000i64;
  InitializeSListHead((_SLIST_HEADER *)((char *)Prcb + 33600));
  v3 = (PHYSICAL_ADDRESS *)v2;
  v4 = (char *)v2;
  v5 = 3i64;
  do
  {
    PhysicalAddress = MmGetPhysicalAddress(v4);
    v4 += 4096;
    v3[2] = PhysicalAddress;
    v3->QuadPart = (LONGLONG)v4;
    v3 += 512;
    --v5;
  }
  while( v5 );
  v7 = MmGetPhysicalAddress((PVOID)(v2 + 12288));
  *(_QWORD *)(v2 + 12288) = 0i64;
  *(PHYSICAL_ADDRESS *)(v2 + 12304) = v7;
  InterlockedPushListSList(v1, (PSLIST_ENTRY)v2, (PSLIST_ENTRY)(v2 + 12288), 4u);
}

Referenced by:

HvlInitializeProcessor
HvlPhase1Initialize