LdrpKrnGetDataTableEntry

_LIST_ENTRY *__fastcall LdrpKrnGetDataTableEntry(VOID *Address){
  _ETHREAD *CurrentThread; 
  _LIST_ENTRY *v2; 
  INT64 v4; 
  unsigned __int64 v5; 

  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  v2 = 0i64;
  if( !CurrentThread )
    return 0i64;
  --CurrentThread->Tcb.KernelApcDisable;
  ExAcquireResourceSharedLite((UINT64)&PsLoadedModuleResource, 1);
  v4 = PsLoadedModuleList;
  if( !PsLoadedModuleList )
    return 0i64;
  while( 1 )
  {
    v5 = *(_QWORD *)(v4 + 48);
    if( (unsigned __int64)Address >= v5 && (unsigned __int64)Address < v5 + *(unsigned int *)(v4 + 64) )
      break;
    v4 = *(_QWORD *)v4;
    if( (INT64 *)v4 == &PsLoadedModuleList )
      goto LABEL_6;
  }
  v2 = (_LIST_ENTRY *)v4;
LABEL_6:
  ExReleaseResourceLite(&PsLoadedModuleResource);
  KeLeaveCriticalRegionThread(&CurrentThread->Tcb);
  return v2;
}

Referenced by:

LdrLoadAlternateResourceModuleEx
LdrpGetImageSize
LdrpResGetMappingSize