RtlpMuiRegGetLangInfoIndex
INT64 __fastcall RtlpMuiRegGetLangInfoIndex(INT64 a1, CHAR *a2){
__int16 v3;
CHAR *v4;
__int64 v5;
unsigned __int16 v7;
unsigned __int16 v8;
char v9;
unsigned int v10;
if( !a1 )
return 0xFFFFFFFFi64;
if( !a2 )
return 0xFFFFFFFFi64;
v3 = *((_WORD *)a2 + 2);
if( !v3 && *((__int16 *)a2 + 3) < 0 )
return 0xFFFFFFFFi64;
v4 = *(CHAR **)(a1 + 16);
v5 = (a2 - v4) / 28;
if( v5 < 0 || v5 >= *(unsigned __int16 *)(a1 + 6) )
{
v5 = 0i64;
if( *(_WORD *)(a1 + 6) )
{
while( 1 )
{
if( *(_WORD *)v4 == *(_WORD *)a2
&& *((_WORD *)v4 + 2) == v3
&& *((_WORD *)v4 + 3) == *((_WORD *)a2 + 3)
&& *((_WORD *)v4 + 5) == *((_WORD *)a2 + 5) )
{
v7 = *((_WORD *)a2 + 4);
v8 = *((_WORD *)v4 + 4);
if( ((v8 ^ v7) & 0xC000) == 0 )
{
v9 = 1;
v10 = 0;
do
{
if( v10 >= 4 )
break;
if( (((unsigned __int16)(v8 ^ v7) >> (2 * v10)) & 3) == 0 )
{
v9 = 1;
if( *(_WORD *)&v4[2 * v10 + 12] == *(_WORD *)&a2[2 * v10 + 12] )
continue;
}
v9 = 0;
++v10;
}
while( v9 );
if( v9 )
break;
}
}
++v5;
v4 += 28;
if( v5 >= *(unsigned __int16 *)(a1 + 6) )
return 0xFFFFFFFFi64;
}
return(unsigned __int16)v5;
}
return 0xFFFFFFFFi64;
}
return(unsigned __int16)v5;
}Referenced by:
RtlpMuiRegGetOrAddLangInfo