// RegAccessWriteMulti - addr:0xffdaf2aa
int __cdecl RegAccessWriteMulti(int a1, _DWORD *a2)
{
int v2; // edi
_DWORD *v3; // ebx
int result; // eax
int v5; // eax
unsigned __int8 v6; // dl
_DWORD *v7; // eax
unsigned int v8; // [esp+10h] [ebp-8h] BYREF
int v9; // [esp+14h] [ebp-4h]
v2 = *(unsigned __int16 *)(a1 + 6);
RegAccessGetCfgAddress(0, 0, (_DWORD *)a1, (int *)&v8);
v3 = (_DWORD *)v8;
result = RegAccessValidateRange((*(_DWORD *)(a1 + 8) >> 8) & 0xF, v8, v2, (int)a2);
if ( result >= 0 )
{
v5 = (*(_DWORD *)(a1 + 8) >> 8) & 0xF;
v6 = byte_FFDB05EC[v5];
if ( v2 )
{
v8 = (unsigned __int8)byte_FFDB05E0[v5];
v9 = v6;
v7 = a2;
do
{
IoMemWrite((*(_DWORD *)(a1 + 8) >> 8) & 3, v3, v7);
v7 = (_DWORD *)((char *)a2 + v9);
v3 = (_DWORD *)((char *)v3 + v8);
a2 = (_DWORD *)((char *)a2 + v9);
--v2;
}
while ( v2 );
}
return 0;
}
return result;
}