LocalGetStringForControl
NTSTATUS __stdcall LocalGetStringForControl(UINT16 ControlCode, UINT64 LookupFlags, WCHAR **ControlString){
int v3;
int v5;
unsigned int v6;
int *v7;
unsigned int i;
WCHAR *v9;
__int16 Src[256];
v3 = ControlCode;
v5 = LookupFlags;
v6 = 0;
if( !ControlString )
return 87;
*ControlString = 0i64;
v7 = &dword_14000737C;
for( i = 0; i < 6; ++i )
{
if( (v5 & v7[1]) == v5 )
{
if( *(v7 - 1) + v6 >= 0x100 )
return 87;
if( (v3 & *v7) != 0 )
{
wcsncpy_s((WCHAR *)&Src[v6], 256i64 - v6, *(WCHAR **)(v7 - 3), (unsigned int)*(v7 - 1));
v6 += *(v7 - 1);
}
}
v7 += 6;
}
if( 2 * (unsigned __int64)v6 >= 0x200 )
_report_rangecheckfailure();
Src[v6] = 0;
if( !v6 )
return 0;
v9 = (WCHAR *)SddlpAlloc(2i64 * (v6 + 1), LookupFlags, (UINT64)ControlString);
*ControlString = v9;
if( v9 )
{
wcscpy_s(v9, v6 + 1, (PWCHAR)Src);
return 0;
}
return 8;
}Referenced by:
LocalConvertSDToStringSD_Rev1