KdpGetContextEx

VOID __stdcall KdpGetContextEx(_DBGKD_MANIPULATE_STATE64 *m, _STRING *AdditionalData, _CONTEXT *Context){
  unsigned int v3; 
  unsigned int v4; 
  unsigned int Length; 
  unsigned int v8; 
  unsigned int v9; 
  int v10; 
  _QWORD v11[3]; 
  v3 = *((_DWORD *)m + 4);
  v4 = *((_DWORD *)m + 5);
  v11[0] = 56i64;
  v11[1] = m;
  KdpGetContext(m, AdditionalData, Context);
  *((_DWORD *)m + 6) = 0;
  if( !*((_DWORD *)m + 2) )
  {
    Length = AdditionalData->Length;
    v8 = Length;
    if( v3 < Length )
      v8 = v3;
    v9 = Length - v8;
    if( v4 <= v9 )
      v9 = v4;
    if( v8 && v9 )
      KdpQuickMoveMemory(AdditionalData->Buffer, &AdditionalData->Buffer[v8], v9);
    *((_DWORD *)m + 4) = v8;
    *((_DWORD *)m + 5) = AdditionalData->Length;
    *((_DWORD *)m + 6) = v9;
    v10 = AdditionalData->Length;
    if( v9 == v10 || v9 && v9 + v8 == v10 )
      KdpContextSent = 1;
    AdditionalData->Length = v9;
  }
  KdSendPacket(2i64, v11, AdditionalData, &KdpContext);
}

Referenced by:

KdpSendWaitContinue