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