RtlpMuiRegGetInstalledLangInfoIndex
__int64 __fastcall RtlpMuiRegGetInstalledLangInfoIndex(__int64 a1, int a2, __int16 a3, __int16 *a4){
int v5;
__int16 v6;
__int64 v7;
int v8;
__int64 v9;
int v11;
__int64 v12;
__int64 v13;
if( a1 && a2 )
{
switch( a2 )
{
case 1:
if( a3 )
{
v5 = *(unsigned __int16 *)(a1 + 6);
v6 = 0;
if( *(_WORD *)(a1 + 6) )
{
v7 = *(_QWORD *)(a1 + 16);
v8 = a3;
while( 1 )
{
v9 = 28i64 * v6;
if( *(unsigned __int16 *)(v9 + v7 + 4) == v8 && (*(_WORD *)(v9 + v7) & 0x1020) == 32 )
break;
if( ++v6 >= v5 )
return 3221225473i64;
}
LABEL_19:
if( a4 )
*a4 = v6;
return 0i64;
}
return 3221225473i64;
}
break;
case 3:
if( a3 >= 0 )
{
v11 = *(unsigned __int16 *)(a1 + 6);
v6 = 0;
if( *(_WORD *)(a1 + 6) )
{
v12 = *(_QWORD *)(a1 + 16);
while( 1 )
{
v13 = 28i64 * v6;
if( *(_WORD *)(v13 + v12 + 6) == a3 && (*(_WORD *)(v13 + v12) & 0x1020) == 32 )
break;
if( ++v6 >= v11 )
return 3221225473i64;
}
goto LABEL_19;
}
return 3221225473i64;
}
break;
case 2:
if( a3 >= 0 && a3 < (int)*(unsigned __int16 *)(a1 + 6) )
{
if( (*(_WORD *)(28i64 * a3 + *(_QWORD *)(a1 + 16)) & 0x1020) == 32 )
{
if( a4 )
*a4 = a3;
return 0i64;
}
return 3221225473i64;
}
break;
default:
return 3221225473i64;
}
}
return 3221225485i64;
}Referenced by:
RtlpMuiRegValidateLIPLanguage
RtlpMuiRegValidatePartialLanguage