RtlpComputeEpilogueOffset
__int64 __fastcall RtlpComputeEpilogueOffset(__int64 a1, _QWORD *a2, signed __int64 a3){
_QWORD *v3;
unsigned int i;
__int64 v6;
_QWORD *v7;
signed __int64 v9;
v3 = a2;
for( i = 0; i < 0x19; ++i )
*a2++ ^= a3;
*(_DWORD *)v3 ^= a3;
v6 = *((int *)v3 + 49);
if( a3 && (_DWORD)v6 )
{
v7 = &a2[v6 - 1];
while( 1 )
{
*v7-- ^= a3;
v9 = __ROR8__(a3, v6);
_bittestandcomplement64(&v9, v9 & 0x3F);
LODWORD(v6) = v6 - 1;
if( !(_DWORD)v6 )
break;
a3 = v9;
}
}
if( (*((_DWORD *)v3 + 613) & 0x100000) != 0 )
KeExitRetpoline();
else
_mm_lfence();
sub_140A0FD10(a1, (__int64)v3);
return((__int64(__fastcall *)(_QWORD *, __int64))v3[34])(v3 + 243, 1i64);
}Referenced by:
No references.