WmipInsertStaticNames
char __fastcall WmipInsertStaticNames(int *a1, unsigned int a2, __int64 a3){
unsigned int v3;
__int64 v7;
__int64 v8;
unsigned int v9;
_DWORD *v10;
int v11;
WCHAR *v12;
__int64 v13;
unsigned int i;
unsigned int v15;
__int64 v16;
__int64 v17;
WCHAR *v18;
__int64 v19;
unsigned int v20;
unsigned int v21;
WCHAR *v22;
UINT64 Number;
wchar_t pszDest[8];
v3 = *(_DWORD *)(a3 + 16);
if( (v3 & 3) != 0 )
{
v7 = *(unsigned int *)(a3 + 72);
LODWORD(Number) = *a1;
LOBYTE(v3) = WmipAlign(4ui64, &Number);
if( (_BYTE)v3 )
{
v8 = (unsigned int)Number;
v3 = WmipStaticInstanceNameSize(a3);
v9 = v3;
if( v3 <= ~(_DWORD)v8 )
{
v3 += v8;
LODWORD(Number) = v3;
if( v3 > a2 )
{
*a1 = 56;
a1[11] = 32;
a1[12] = v3;
}
else
{
a1[14] = v8;
v10 = (int *)((char *)a1 + v8);
v11 = *(_DWORD *)(a3 + 16);
v12 = (WCHAR *)((char *)&a1[v7] + v8);
v13 = (unsigned int)v7;
if( (v11 & 1) != 0 )
{
if( (v11 & 0x20000) != 0 )
a1[11] |= 0x10000u;
for( i = 0; i < (unsigned int)v7; v12 += ((unsigned __int64)(unsigned int)(2 * v16 + 2) >> 1) + 1 )
{
v15 = v9 - 2;
*v10++ = (_DWORD)v12 - (_DWORD)a1;
RtlStringCbCopyW(v12 + 1, v15, (PWCHAR)(*(_QWORD *)(a3 + 88) + 4i64));
RtlStringCbPrintfW(pszDest, 0xEui64, (WCHAR *)L"%d");
RtlStringCbCatW(v12 + 1, v15, pszDest);
v16 = -1i64;
do
++v16;
while( v12[v16 + 1] );
++i;
*v12 = 2 * v16 + 2;
v9 = v15 - (2 * v16 + 2);
}
}
else if( (v11 & 2) != 0 && (_DWORD)v7 )
{
v17 = 0i64;
do
{
*v10++ = (_DWORD)v12 - (_DWORD)a1;
v18 = *(WCHAR **)(v17 + *(_QWORD *)(a3 + 88));
v19 = -1i64;
do
++v19;
while( v18[v19] );
v20 = 2 * v19 + 2;
v21 = v9 - 2;
*v12 = 2 * v19 + 2;
v22 = v12 + 1;
RtlStringCbCopyW(v22, v21, v18);
v9 = v21 - v20;
v17 += 8i64;
v12 = &v22[(unsigned __int64)v20 >> 1];
--v13;
}
while( v13 );
}
LOBYTE(v3) = Number;
*a1 = Number;
}
}
}
}
return v3;
}Referenced by:
WmipIncludeStaticNames
WmipQueryAllData