MmGetImageFileSignatureInformation

CHAR __stdcall MmGetImageFileSignatureInformation(INT64 a1){
  _MI_SECTION_OBJECT_POINTERS *v1; 
  CHAR v2; 
  _CONTROL_AREA *v3; 
  _CONTROL_AREA *v4; 
  UINT8 v6; 

  v1 = *(_MI_SECTION_OBJECT_POINTERS **)(a1 + 40);
  v2 = 0;
  v6 = 0;
  if( !v1 )
    return 0;
  v3 = MiLockSectionControlArea(v1, 0i64, &v6);
  v4 = v3;
  if( !v3 )
    return 0;
  if( (v3->u.LongFlags & 3) != 0 )
  {
    ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)&v3->ControlAreaLock);
    __writecr8(v6);
  }
  else
  {
    ++v3->NumberOfSectionReferences;
    MiRemoveUnusedSegment(v3);
    ++v4->NumberOfUserReferences;
    ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)&v4->ControlAreaLock);
    __writecr8(v6);
    v2 = v4->Segment->SegmentFlags.UChar2 >> 4;
    MiDereferenceControlAreaBySection(v4, 1ui64);
  }
  return v2;
}

Referenced by:

No references.