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