LdrpGetImageSize
NTSTATUS __stdcall LdrpGetImageSize(PVOID DllHandle, UINT64 *ImageSize){
NTSTATUS v3;
UINT64 SizeOfImage;
IMAGE_NT_HEADERS *v6;
__int64 v7;
NTSTATUS result;
unsigned __int16 Magic;
v3 = 0;
SizeOfImage = 0i64;
v6 = RtlImageNtHeader((PVOID)((unsigned __int64)DllHandle & 0xFFFFFFFFFFFFFFFCui64));
if( !v6 )
goto LABEL_9;
if( ((unsigned __int8)DllHandle & 1) == 0 )
{
Magic = v6->OptionalHeader.Magic;
if( Magic == 267 || Magic == 523 )
{
SizeOfImage = v6->OptionalHeader.SizeOfImage;
goto LABEL_5;
}
LABEL_9:
v3 = -1073741701;
goto LABEL_5;
}
LODWORD(v7) = LdrpKrnGetDataTableEntry(DllHandle);
if( v7 )
SizeOfImage = *(unsigned int *)(v7 + 64);
LABEL_5:
result = v3;
*ImageSize = SizeOfImage;
return result;
}Referenced by:
LdrpAccessResourceData
LdrpAccessResourceDataNoMultipleLanguage