//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------

(function(){
  for (var __loopvar0 = 0; obj3.c < (1) && __loopvar0 < 3; obj3.c++ + __loopvar0++) {
    if ((obj7.d ^= (1 ? 1 : obj8.length))) {
      WScript.Echo("obj2.d = " + (obj2.d|0));
      obj6.e = (obj8.d * 1 - obj7.c);
    }
    var __loopvar1 = 0;
    LABEL0:
    do {
      __loopvar1++;
    } while (((((obj8.length--) * (1 + (1 ? obj7.length : 1))) * (1 - obj7.length))) && __loopvar1 < 3)
  }
})();
