PspInitializeProtectedProcessParameters

NTSTATUS __stdcall PspInitializeProtectedProcessParameters(INT64 a1){
  __int128 v2; 
  __int64 v3; 
  __int64 v4; 
  VOID **PoolWithTag; 
  char *v6; 
  __int64 v7; 
  char *v8; 

  *(_OWORD *)(a1 + 1000) = *(_OWORD *)(a1 + 1072);
  v2 = *(_OWORD *)(a1 + 1072);
  v3 = (unsigned __int16)(2 * (*(_WORD *)(a1 + 1072) + 42));
  *(_WORD *)(a1 + 1016) = v3;
  v4 = (unsigned __int16)(v3 + 2);
  *(_WORD *)(a1 + 1018) = v4;
  PoolWithTag = ExAllocatePoolWithTag(1ui64, (unsigned __int16)v4, 1817408336i64);
  *(_QWORD *)(a1 + 1024) = PoolWithTag;
  if( !PoolWithTag )
    return -1073741670;
  *PoolWithTag = *(VOID **)L"Path=";
  *((_WORD *)PoolWithTag + 4) = aPath[4];
  v6 = (char *)PoolWithTag + 10;
  memmove((char *)PoolWithTag + 10, *(const VOID **)(a1 + 1080), *(unsigned __int16 *)(a1 + 1072));
  v7 = *(unsigned __int16 *)(a1 + 1072);
  *(_OWORD *)&v6[v7] = *(_OWORD *)L"\\System32";
  *(_WORD *)&v6[v7 + 16] = aSystem32[8];
  *(_WORD *)&v6[v7 + 18] = 0;
  *(_OWORD *)&v6[v7 + 20] = *(_OWORD *)L"SystemDrive=";
  *(_QWORD *)&v6[v7 + 36] = *(_QWORD *)L"ive=";
  *(_DWORD *)&v6[v7 + 44] = **((_DWORD **)&v2 + 1);
  *(_WORD *)&v6[v7 + 48] = 0;
  *(_OWORD *)&v6[v7 + 50] = *(_OWORD *)L"SystemRoot=";
  *(_DWORD *)&v6[v7 + 66] = *(_DWORD *)L"ot=";
  *(_WORD *)&v6[v7 + 70] = aSystemroot_9[10];
  v8 = &v6[v7];
  memmove(v8 + 72, *(const VOID **)(a1 + 1080), *(unsigned __int16 *)(a1 + 1072));
  *(_DWORD *)&v8[*(unsigned __int16 *)(a1 + 1072) + 72] = 0;
  return 0;
}

Referenced by:

PspInitPhase2
PspInitializeServerSiloDeferred