RtlAddDynamicEHContinuationTarget

NTSTATUS __stdcall RtlAddDynamicEHContinuationTarget(_RTL_AVL_TREE *Tree, _RTL_BALANCED_NODE *a2){
  _RTL_BALANCED_NODE *Root; 
  BOOL v3; 
  NTSTATUS v6; 
  _RTL_BALANCED_NODE *v7; 
  _RTL_BALANCED_NODE *Pool2; 

  Root = Tree->Root;
  v3 = 0;
  if( Tree->Root )
  {
    while( 1 )
    {
      v6 = MiHotPatchImageTreeCompare((UINT64)a2, (INT64)Root);
      if( v6 <= 0 )
      {
        if( v6 >= 0 )
          return -1073741800;
        v7 = Root->Children[0];
        if( !Root->Children[0] )
          break;
      }
      else
      {
        v7 = Root->Children[1];
        if( !v7 )
        {
          v3 = 1;
          break;
        }
      }
      Root = v7;
    }
  }
  Pool2 = (_RTL_BALANCED_NODE *)ExAllocatePool2(257i64, 0x20ui64, 0x4E484544ui64);
  if( !Pool2 )
    return -1073741801;
  Pool2[1].Children[0] = a2;
  RtlAvlInsertNodeEx(&Tree->Root, (UINT64)Root, v3, Pool2);
  return 0;
}

Referenced by:

PspProcessDynamicEHContinuationTargets