RtlpApplyGenericRetpolineFixup
_BYTE *__fastcall RtlpApplyGenericRetpolineFixup(UINT64 a1, UINT64 a2, _WORD *a3, INT64 a4){
unsigned int v4;
UINT64 v5;
_BYTE *v6;
_BYTE *result;
int v8;
v4 = 0;
v5 = a1 + (unsigned int)a2;
v6 = (_BYTE *)(a1 + (int)a4);
result = v6;
v8 = 1;
do
{
if( (unsigned __int64)result >= a1 )
{
if( (unsigned __int64)result >= v5 )
return result;
if( (*a3 & (unsigned __int16)v8) != 0 )
*result = *((_BYTE *)a3 + result - v6 + 2);
}
++v4;
v8 = __ROL4__(v8, 1);
++result;
}
while( v4 < 0xC );
return result;
}Referenced by:
MiApplyRetpolineFixups
RtlApplyImportRelocationToImage
RtlApplyImportRelocationToPage
RtlApplyIndirectRelocationToPage
RtlApplySwitchJumpRelocationToPage
RtlPerformRetpolineRelocationsOnImageEx