WbGetTrapFrame

NTSTATUS __stdcall WbGetTrapFrame(INT64 a1, INT64 a2){
  _EWOW64PROCESS *WoW64Process; 
  int ContextThreadInternal; 
  unsigned __int16 Machine; 

  WoW64Process = KeGetCurrentThread()->ApcState.Process->WoW64Process;
  if( WoW64Process )
  {
    Machine = WoW64Process->Machine;
    if( Machine == 332 || Machine == 452 )
      return WbGetWowTrapFrame((UINT64 *)a1, a2);
  }
  *(_DWORD *)(a1 + 96) = 1048577;
  ContextThreadInternal = PspGetContextThreadInternal(KeGetCurrentThread(), (_CONTEXT *)(a1 + 48), 0, 1, 1u);
  if( ContextThreadInternal >= 0 )
  {
    *(_QWORD *)(a2 + 8) = *(_QWORD *)(a1 + 296);
    *(_QWORD *)a2 = *(_QWORD *)(a1 + 200);
    *(_DWORD *)(a2 + 16) = *(_DWORD *)(a1 + 116);
  }
  return ContextThreadInternal;
}

Referenced by:

WbHeapExecuteCall