_longjmp_internal

__int64 __fastcall _longjmp_internal(unsigned __int64 a1, __int64 a2){
  _EXCEPTION_RECORD *HistoryTable; 
  struct _EXCEPTION_RECORD ExceptionRecord; 
  if( !a2 )
    a2 = 1i64;
  HistoryTable = 0i64;
  if( *(_QWORD *)a1 )
  {
    while( 1 )
    {
      ExceptionRecord.ExceptionCode = -2147483610;
      ExceptionRecord.ExceptionFlags = (unsigned int)HistoryTable;
      ExceptionRecord.ExceptionRecord = HistoryTable;
      ExceptionRecord.ExceptionAddress = HistoryTable;
      ExceptionRecord.NumberParameters = (_DWORD)HistoryTable + 1;
      ExceptionRecord.ExceptionInformation[0] = a1;
      RtlUnwindEx(
        *(PVOID *)a1,
        *(PVOID *)(a1 + 80),
        &ExceptionRecord,
        (PVOID)a2,
        (CONTEXT *)&ExceptionRecord.ExceptionInformation[2],
        (UNWIND_HISTORY_TABLE *)HistoryTable);
    }
  }
  _mm_lfence();
  _mm_setcsr(*(_DWORD *)(a1 + 88));
  return(*(__int64(**)(void))(a1 + 80))();
}

Referenced by:

longjmp