LdrpGetImageSize
NTSTATUS __stdcall LdrpGetImageSize(PVOID DllHandle, UINT64 *ImageSize){
NTSTATUS v3;
UINT64 Flink_low;
__int64 v6;
_LIST_ENTRY *DataTableEntry;
NTSTATUS result;
__int16 v9;
v3 = 0;
Flink_low = 0i64;
LODWORD(v6) = RtlImageNtHeader((unsigned __int64)DllHandle & 0xFFFFFFFFFFFFFFFCui64);
if( !v6 )
goto LABEL_9;
if( ((unsigned __int8)DllHandle & 1) == 0 )
{
v9 = *(_WORD *)(v6 + 24);
if( v9 == 267 || v9 == 523 )
{
Flink_low = *(unsigned int *)(v6 + 80);
goto LABEL_5;
}
LABEL_9:
v3 = -1073741701;
goto LABEL_5;
}
DataTableEntry = LdrpKrnGetDataTableEntry(DllHandle);
if( DataTableEntry )
Flink_low = LODWORD(DataTableEntry[4].Flink);
LABEL_5:
result = v3;
*ImageSize = Flink_low;
return result;
}Referenced by:
LdrpAccessResourceData
LdrpAccessResourceDataNoMultipleLanguage