RtlpCopyRetpolineRelocationBlockEntryArray

__int64 __fastcall RtlpCopyRetpolineRelocationBlockEntryArray(
        VOID *a1,
        unsigned int a2,
        _WORD *a3,
        __int64 a4,
        __int64 a5){
  __int64 v6; 
  unsigned int v8; 
  unsigned int v9; 
  _WORD *v10; 
  _WORD *v11; 
  unsigned __int64 v12; 
  char *v13; 
  __int64 v14; 
  __int64 result; 

  v6 = a2;
  v8 = RtlSizeOfRetpolineRelocationEntry(a2);
  v11 = v10;
  v12 = (unsigned __int64)v10 + v9;
  v13 = (char *)a1;
  if( (unsigned __int64)v10 < v12 )
  {
    v14 = v8;
    do
    {
      if( v6 != 3 && v6 != 4 && v6 != 5 || (*v11 & 0xFFF) != 0 || v11 == a3 )
      {
        memmove(v13, v11, v14);
        v13 += v14;
      }
      v11 = (_WORD *)((char *)v11 + v14);
    }
    while( (unsigned __int64)v11 < v12 );
  }
  result = a5;
  *(_DWORD *)a5 = (_DWORD)v13 - (_DWORD)a1;
  return result;
}

Referenced by:

RtlCreateRetpolineRelocationInformation