MiInsertMappingNode
NTSTATUS __stdcall MiInsertMappingNode(_RTL_BALANCED_NODE *Node){
_RTL_BALANCED_NODE *v1;
unsigned __int8 v3;
_QWORD *v4;
BOOL v5;
unsigned __int64 v6;
_QWORD *v7;
NTSTATUS result;
v1 = Node[1].Children[0];
v3 = ExAcquireSpinLockExclusive((INT64 *)&stru_140C4DB30 + 442);
v4 = (_QWORD *)*(&stru_140C4DB30 + 443);
v5 = 0;
v6 = v3;
if( *(&stru_140C4DB30 + 443) )
{
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((_RTL_BALANCED_NODE **)&stru_140C4DB30 + 443, (UINT64)v4, v5, Node);
ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)&stru_140C4DB30 + 442);
result = KiIrqlFlags;
__writecr8(v6);
return result;
}Referenced by:
MmAllocateMappingAddressEx