MmGetImageFileSignatureInformation

CHAR __fastcall MmGetImageFileSignatureInformation(INT64 a1){
  _QWORD *v1; 
  CHAR v2; 
  __int64 v3; 
  _CONTROL_AREA *v4; 
  KIRQL v6; 
  v1 = *(_QWORD **)(a1 + 40);
  v2 = 0;
  v6 = 0;
  if( !v1 )
    return 0;
  v3 = MiLockSectionControlArea(v1, 0, &v6);
  v4 = (_CONTROL_AREA *)v3;
  if( !v3 )
    return 0;
  if( (*(_DWORD *)(v3 + 56) & 3) != 0 )
  {
    ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)(v3 + 72));
    __writecr8(v6);
  }
  else
  {
    ++*(_QWORD *)(v3 + 24);
    MiRemoveUnusedSegment((_CONTROL_AREA *)v3);
    ++*((_QWORD *)v4 + 6);
    ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)v4 + 9);
    __writecr8(v6);
    v2 = *(_BYTE *)(*(_QWORD *)v4 + 15i64) >> 4;
    MiDereferenceControlAreaBySection(v4, 1ui64);
  }
  return v2;
}

Referenced by:

No references.