RtlpCopyRetpolineRelocationBlockEntryArray

INT64 __fastcall RtlpCopyRetpolineRelocationBlockEntryArray(UINT8 *dst, UINT64 a2, UINT8 *a3, INT64 a4, INT64 a5){
  __int64 v6; 
  unsigned int v8; 
  int v9; 
  UINT8 *v10; 
  UINT8 *v11; 
  unsigned __int64 v12; 
  UINT8 *v13; 
  UINT64 v14; 
  INT64 result; 
  v6 = (unsigned int)a2;
  v8 = RtlSizeOfRetpolineRelocationEntry((unsigned int)a2);
  v11 = v10;
  v12 = (unsigned __int64)&v10[v9];
  v13 = dst;
  if( (unsigned __int64)v10 < v12 )
  {
    v14 = v8;
    do
    {
      if( v6 != 3 && v6 != 4 && v6 != 5 || (*(_WORD *)v11 & 0xFFF) != 0 || v11 == a3 )
      {
        memmove(v13, v11, v14);
        v13 += v14;
      }
      v11 += v14;
    }
    while( (unsigned __int64)v11 < v12 );
  }
  result = a5;
  *(_DWORD *)a5 = (_DWORD)v13 - (_DWORD)dst;
  return result;
}

Referenced by:

RtlCreateRetpolineRelocationInformation