HvlPhase0Initialize

NTSTATUS __stdcall HvlPhase0Initialize(_LOADER_PARAMETER_BLOCK *LoaderBlock){
  NTSTATUS result; 
  PKINTERRUPT_ROUTINE **v3; 
  UINT32 v4; 
  PKINTERRUPT_ROUTINE *v5; 
  CHAR v6; 
  __int64 v7; 
  NTSTATUS v8; 

  LODWORD(HvlpFlags) = (HviIsAnyHypervisorPresent() != 0 ? 0x1000 : 0) | HvlpFlags & 0xFFFFEFFF;
  if( HvlQueryConnection(0i64) >= 0 || (result = HvlpTryConfigureInterface(LoaderBlock), result >= 0) )
  {
    result = HvlpSetupBootProcessorEarlyHypercallPages(LoaderBlock);
    if( result >= 0 )
    {
      LOBYTE(HvlHypervisorConnected) = 1;
      HvlpDetermineEnlightenments();
      result = HalSystemVectorDispatchEntry(v4, v3, v5);
      if( result >= 0 )
      {
        if( (HvlpFlags & 2) != 0 )
        {
          strstr((UINT8 *)KeLoaderBlock_0->LoadOptions, (UINT8 *)"HYPERVISORDBG", v6);
          if( v7 )
            HvlpRootFlags |= 8u;
        }
        if( (HvlpFlags & 2) != 0 && (KeLoaderBlock_0->Extension->ResetReason.AdditionalInfo[7] & 0x2000) != 0 )
          HvlpRootFlags |= 0x800u;
        result = HvlpPhase0Enlightenments();
        if( result >= 0 )
        {
          HvlpInitializeBootProcessor(LoaderBlock);
          v8 = result;
          if( result >= 0 )
          {
            HviGetHypervisorVersion(&HvlpHypervisorVersion);
            return v8;
          }
        }
      }
    }
  }
  else if( result == -1070264320 )
  {
    return 0;
  }
  return result;
}

Referenced by:

KiInitializeKernel