MiInsertMappingNode
NTSTATUS __stdcall MiInsertMappingNode(RTL_BALANCED_NODE *Node){
_RTL_BALANCED_NODE *v1;
KIRQL v3;
_QWORD *v4;
bool v5;
unsigned __int64 v6;
_QWORD *v7;
NTSTATUS result;
v1 = Node[1].Children[0];
v3 = ExAcquireSpinLockExclusive(&dword_140C4E900);
v4 = (_QWORD *)qword_140C4E908;
v5 = 0;
v6 = v3;
if( qword_140C4E908 )
{
while( 1 )
{
if( (unsigned __int64)v1 < v4[3] )
{
v7 = (_QWORD *)*v4;
if( !*v4 )
break;
}
else
{
v7 = (_QWORD *)v4[1];
if( !v7 )
{
v5 = 1;
break;
}
}
v4 = v7;
}
}
RtlAvlInsertNodeEx((unsigned __int64 *)&qword_140C4E908, (__int64)v4, v5, Node);
ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)&dword_140C4E900);
result = KiIrqlFlags;
__writecr8(v6);
return result;
}Referenced by:
MmAllocateMappingAddressEx