RtlGetRvaListIteratorState

INT64 __fastcall RtlGetRvaListIteratorState(INT64 a1, INT64 a2){
  unsigned int v2; 
  unsigned int v3; 
  int v4; 
  unsigned int v5; 
  int v6; 
  __int64 v7; 
  __int64 v8; 
  int v9; 
  unsigned int *v11; 
  v2 = *(_DWORD *)(a1 + 8);
  v3 = 0;
  if( v2 <= 1 )
  {
    if( v2 == 1 )
    {
      v11 = *(unsigned int **)(a1 + 48);
      if( v11 )
        return *v11;
      else
        return 1;
    }
  }
  else
  {
    v4 = *(_DWORD *)(a2 + 4);
    v5 = 0;
    v6 = v2 * v4;
    v7 = 0i64;
    do
    {
      if( _bittest64(*(const signed __int64 **)(a1 + 40), v6 + v5) )
      {
        v8 = *(_QWORD *)(a1 + 48);
        if( v8 )
          v9 = *(_DWORD *)(v7 + v8);
        else
          v9 = 1 << v5;
        v3 |= v9;
      }
      ++v5;
      v7 += 4i64;
    }
    while( v5 < v2 );
  }
  return v3;
}

Referenced by:

RtlEnumRvaListFirst