_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