RtlWow64GetCpuAreaInfo

NTSTATUS __stdcall RtlWow64GetCpuAreaInfo(VOID *CpuArea, UINT16 Machine, _WOW64_CPUAREA_INFO *CpuAreaInfo){
  unsigned int v5; 
  unsigned int v6; 
  unsigned __int64 v7; 
  unsigned __int64 v8; 
  __int64 v9; 
  __int64 v10; 
  NTSTATUS result; 
  UINT64 ContextLength; 
  UINT64 ContextAlign; 

  LODWORD(ContextAlign) = 0;
  LODWORD(ContextLength) = 0;
  *((_QWORD *)CpuAreaInfo + 3) = CpuArea;
  v5 = RtlpArchContextFlagFromMachine(332i64);
  v6 = v5;
  if( !v5 )
    return -1073741811;
  RtlpGetLegacyContextLength(v5, &ContextLength, &ContextAlign);
  v7 = ~((unsigned int)ContextAlign - 1i64) & ((unsigned __int64)CpuArea + (unsigned int)ContextAlign + 3);
  v8 = v7 + (unsigned int)ContextLength + 7i64;
  *(_QWORD *)CpuAreaInfo = v7;
  *((_QWORD *)CpuAreaInfo + 1) = v8 & 0xFFFFFFFFFFFFFFF8ui64;
  LODWORD(v9) = RtlpGetContextFlagsLocation(v7, v6);
  *((_QWORD *)CpuAreaInfo + 2) = v9;
  CpuAreaInfo[8] = v6;
  *((_QWORD *)CpuAreaInfo + 5) = (v10 + 11) & 0xFFFFFFFFFFFFFFFCui64;
  result = 0;
  *((_WORD *)CpuAreaInfo + 18) = 332;
  return result;
}

Referenced by:

PspWow64ReadOrWriteThreadCpuArea
RtlpWalkFrameChain