_longjmp_internal

__int64 __fastcall _longjmp_internal(unsigned __int64 a1, __int64 a2){
  _EXCEPTION_RECORD *HistoryTable; 
  _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(
        *(VOID **)a1,
        *(VOID **)(a1 + 80),
        &ExceptionRecord,
        (VOID *)a2,
        (_CONTEXT *)&ExceptionRecord.ExceptionInformation[2],
        (_UNWIND_HISTORY_TABLE *)HistoryTable);
    }
  }
  _mm_lfence();
  _mm_setcsr(*(_DWORD *)(a1 + 88));
  return(*(__int64(**)(void))(a1 + 80))();
}

Referenced by:

longjmp