LdrpVerifyAlternateResourceModuleEx
BOOL __stdcall LdrpVerifyAlternateResourceModuleEx(VOID *a1, VOID *a2, INT64 a3, const WCHAR *a4, INT64 a5){
INT64 v7;
char *v8;
char *v9;
__int64 v10;
NTSTATUS v12;
VOID *v13;
VOID *RcConfig;
RcConfig = 0i64;
v13 = 0i64;
if( (a5 & 0x1000) != 0 )
{
v12 = LdrResGetRCConfig(a1, 0i64, &RcConfig, 0x1000ui64, 1u);
if( v12 >= 0 )
{
if( LdrResGetRCConfig(a2, 0i64, &v13, 0x1000ui64, 0) < 0 )
return 0;
v8 = (char *)RcConfig;
v9 = (char *)v13;
LABEL_4:
v10 = *(_QWORD *)(v8 + 44) - *(_QWORD *)(v9 + 44);
if( !v10 )
v10 = *(_QWORD *)(v8 + 52) - *(_QWORD *)(v9 + 52);
return !v10 && ((a5 & 0x1000000) != 0 || a4 && !wcsicmp(a4, (const wchar_t *)&v9[*((unsigned int *)v9 + 29)]));
}
if( v12 != -1073741686 )
return 0;
}
else
{
v8 = (char *)LdrpGetRcConfig(a1, (INT64)a2, 0, 1);
if( v8 )
{
v9 = (char *)LdrpGetRcConfig(a2, v7, 0, 0);
if( !v9 )
return 0;
goto LABEL_4;
}
}
return(a5 & 0x1000000) != 0;
}Referenced by:
LdrLoadAlternateResourceModuleEx