PopEtProcessSnapshotFind

_MUILANGCFGLIST *__stdcall PopEtProcessSnapshotFind(INT64 InitialMaxLanguages){
  __int64 v1; 
  __int64 v2; 
  _MUILANGCFGLIST *v3; 
  int v4; 
  __int64 v5; 
  __int64 v6; 

  v1 = *(_QWORD *)(InitialMaxLanguages + 16);
  v2 = *(_QWORD *)(InitialMaxLanguages + 8);
  v3 = 0i64;
  v4 = *(_DWORD *)(v1 + 68) >> 5;
  v5 = v2 & (-1i64 << (*(_BYTE *)(v1 + 68) & 0x1F));
  if( !v4 )
    goto LABEL_10;
  v6 = *(_QWORD *)(v1 + 72)
     + 8i64
     * ((37
       * (BYTE6(v5)
        + 37
        * (BYTE5(v5)
         + 37
         * (BYTE4(v5) + 37 * (BYTE3(v5) + 37 * (BYTE2(v5) + 37 * (BYTE1(v5) + 37 * ((unsigned __int8)v5 + 11623883)))))))
       + HIBYTE(v5)) & (unsigned int)(v4 - 1));
  while( 1 )
  {
    v6 = *(_QWORD *)v6;
    if( (v6 & 1) != 0 )
      break;
    if( v5 == ((-1i64 << (*(_BYTE *)(v1 + 68) & 0x1F)) & *(_QWORD *)(v6 + 8)) )
      goto LABEL_5;
  }
  v6 = 0i64;
LABEL_5:
  if( v6 )
    return(_MUILANGCFGLIST *)v6;
LABEL_10:
  if( (*(_DWORD *)(v1 + 636) & 1) == 0
    && *(_DWORD *)InitialMaxLanguages != 1
    && *(_DWORD *)(*(_QWORD *)(v2 + 2280) + 468i64) > 1u )
  {
    ++*(_DWORD *)(v1 + 608);
  }
  return v3;
}

Referenced by:

PopEtProcessSnapshotUpdate