PspInitializeServerSiloDeferred

INT64 __stdcall PspInitializeServerSiloDeferred(PVOID Parameter){
  __int64 *ServerSiloGlobals; 
  INT64 v3; 
  INT64 result; 
  int inited; 
  int v6; 
  ServerSiloGlobals = PsGetServerSiloGlobals((__int64)Parameter);
  result = sub_1405B03A8(v3);
  if( (int)result >= 0 )
  {
    result = PspSiloInitializeUserSharedData((PEJOB)Parameter);
    if( (int)result >= 0 )
    {
      result = PspSiloInitializeSystemRootSymlink((PEJOB)Parameter);
      if( (int)result >= 0 )
      {
        result = PspInitializeProtectedProcessParameters((INT64)ServerSiloGlobals);
        if( (int)result >= 0 )
        {
          result = PspSiloLoadApiSets((PEJOB)Parameter);
          if( (int)result >= 0 )
          {
            result = PspSiloInitializeIsMultiSessionSku((_EJOB *)Parameter);
            if( (int)result >= 0 )
            {
              inited = ObInitServerSilo((PEJOB)Parameter);
              if( inited < 0 )
                goto LABEL_16;
              result = ExpTimeZoneInitSiloState((INT64)Parameter);
              if( (int)result < 0 )
                return result;
              inited = SeInitServerSilo((PEJOB)Parameter);
              if( inited < 0
                || (inited = CmInitServerSiloState((INT64)Parameter), inited < 0)
                || (inited = EtwInitializeSiloState((_EJOB *)Parameter), inited < 0)
                || (inited = DbgkInitializeServerSilo((PEJOB)Parameter), inited < 0) )
              {
LABEL_16:
                *((_DWORD *)ServerSiloGlobals + 278) = 4;
                PspDeleteExternalServerSiloState((PEJOB)Parameter);
              }
              else
              {
                v6 = PspNotifyServerSiloCreation((PEJOB)Parameter);
                inited = v6;
                if( v6 >= 0 )
                  return 0i64;
                PsTerminateServerSilo((_EJOB *)Parameter, (unsigned int)v6);
              }
              return(unsigned int)inited;
            }
          }
        }
      }
    }
  }
  return result;
}

Referenced by:

PspQueueDeferredWorkAndWait