ExpInitBootEntropyInformation

UINT64 __fastcall ExpInitBootEntropyInformation(_RTL_RUN_ONCE *RunOnce, VOID *Parameter, VOID **Context){
  INT64 v4; 
  char *v5; 
  INT64 v6; 
  char *v7; 
  __int64 v8; 
  __int128 v9; 
  v4 = *(_QWORD *)Parameter;
  v5 = (char *)(*((_QWORD *)KeLoaderBlock_0 + 30) + 344i64);
  if( *(_QWORD *)Parameter )
  {
    memset(v4, 0i64);
    v6 = v4 + 16;
    v7 = &v5[-v4];
    v8 = 10i64;
    do
    {
      *(_DWORD *)(v6 - 8) = *(_DWORD *)&v7[v6 - 8];
      *(_QWORD *)v6 = *(_QWORD *)&v7[v6];
      *(_DWORD *)(v6 + 8) = *(_DWORD *)&v7[v6 + 8];
      *(_DWORD *)(v6 + 12) = *(_DWORD *)&v7[v6 + 12];
      *(_QWORD *)(v6 + 16) = *(_QWORD *)&v7[v6 + 16];
      *(_DWORD *)(v6 + 24) = *(_DWORD *)&v7[v6 + 24];
      v9 = *(_OWORD *)&v7[v6 + 28];
      v6 += 104i64;
      *(_OWORD *)(v6 - 76) = v9;
      *(_OWORD *)(v6 - 60) = *(_OWORD *)&v7[v6 - 60];
      *(_OWORD *)(v6 - 44) = *(_OWORD *)&v7[v6 - 44];
      *(_OWORD *)(v6 - 28) = *(_OWORD *)&v7[v6 - 28];
      --v8;
    }
    while( v8 );
    *(_DWORD *)v4 = *(_DWORD *)v5;
    *(_OWORD *)(v4 + 1048) = *(_OWORD *)(v5 + 1048);
    *(_OWORD *)(v4 + 1064) = *(_OWORD *)(v5 + 1064);
    *(_OWORD *)(v4 + 1080) = *(_OWORD *)(v5 + 1080);
  }
  memset(v5, 0, 0x448ui64);
  *(_QWORD *)Parameter = -1i64;
  return 1i64;
}

Referenced by:

No references.