js/src/jit-test/lib/bullet.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 // Note: For maximum-speed code, see "Optimizing Code" on the Emscripten wiki, https://github.com/kripken/emscripten/wiki/Optimizing-Code
     2 // Note: Some Emscripten settings may limit the speed of the generated code.
     3 // The Module object: Our interface to the outside world. We import
     4 // and export values on it, and do the work to get that through
     5 // closure compiler if necessary. There are various ways Module can be used:
     6 // 1. Not defined. We create it here
     7 // 2. A function parameter, function(Module) { ..generated code.. }
     8 // 3. pre-run appended it, var Module = {}; ..generated code..
     9 // 4. External script tag defines var Module.
    10 // We need to do an eval in order to handle the closure compiler
    11 // case, where this code here is minified but Module was defined
    12 // elsewhere (e.g. case 4 above). We also need to check if Module
    13 // already exists (e.g. case 3 above).
    14 // Note that if you want to run closure, and also to use Module
    15 // after the generated code, you will need to define   var Module = {};
    16 // before the code. Then that object will be used in the code, and you
    17 // can continue to use Module afterwards as well.
    18 var Module;
    19 if (!Module) Module = eval('(function() { try { return Module || {} } catch(e) { return {} } })()');
    20 // Sometimes an existing Module object exists with properties
    21 // meant to overwrite the default module functionality. Here
    22 // we collect those properties and reapply _after_ we configure
    23 // the current environment's defaults to avoid having to be so
    24 // defensive during initialization.
    25 var moduleOverrides = {};
    26 for (var key in Module) {
    27   if (Module.hasOwnProperty(key)) {
    28     moduleOverrides[key] = Module[key];
    29   }
    30 }
    31 // The environment setup code below is customized to use Module.
    32 // *** Environment setup code ***
    33 var printedOutput = "";
    34 Module['print'] = function f(str) {
    35     printedOutput += str;
    36 }
    37 if (typeof printErr != 'undefined') Module['printErr'] = printErr; // not present in v8 or older sm
    38 if (typeof read != 'undefined') {
    39 Module['read'] = read;
    40 } else {
    41 Module['read'] = function() { throw 'no read() available (jsc?)' };
    42 }
    43 Module['readBinary'] = function(f) {
    44 return read(f, 'binary');
    45 };
    46 if (typeof scriptArgs != 'undefined') {
    47 Module['arguments'] = scriptArgs;
    48 } else if (typeof arguments != 'undefined') {
    49 Module['arguments'] = arguments;
    50 }
    51 this['Module'] = Module;
    52 function globalEval(x) {
    53   eval.call(null, x);
    54 }
    55 if (!Module['load'] == 'undefined' && Module['read']) {
    56   Module['load'] = function(f) {
    57     globalEval(Module['read'](f));
    58   };
    59 }
    60 if (!Module['printErr']) {
    61   Module['printErr'] = Module['print'];
    62 }
    63 // *** Environment setup code ***
    64 // Closure helpers
    65 Module.print = Module['print'];
    66 Module.printErr = Module['printErr'];
    67 // Callbacks
    68 Module['preRun'] = [];
    69 Module['postRun'] = [];
    70 // Merge back in the overrides
    71 for (var key in moduleOverrides) {
    72   if (moduleOverrides.hasOwnProperty(key)) {
    73     Module[key] = moduleOverrides[key];
    74   }
    75 }
    76 // === Auto-generated preamble library stuff ===
    77 //========================================
    78 // Runtime code shared with compiler
    79 //========================================
    80 var Runtime = {
    81   stackSave: function () {
    82     return STACKTOP;
    83   },
    84   stackRestore: function (stackTop) {
    85     STACKTOP = stackTop;
    86   },
    87   forceAlign: function (target, quantum) {
    88     quantum = quantum || 4;
    89     if (quantum == 1) return target;
    90     if (isNumber(target) && isNumber(quantum)) {
    91       return Math.ceil(target/quantum)*quantum;
    92     } else if (isNumber(quantum) && isPowerOfTwo(quantum)) {
    93       var logg = log2(quantum);
    94       return '((((' +target + ')+' + (quantum-1) + ')>>' + logg + ')<<' + logg + ')';
    95     }
    96     return 'Math.ceil((' + target + ')/' + quantum + ')*' + quantum;
    97   },
    98   isNumberType: function (type) {
    99     return type in Runtime.INT_TYPES || type in Runtime.FLOAT_TYPES;
   100   },
   101   isPointerType: function isPointerType(type) {
   102   return type[type.length-1] == '*';
   103 },
   104   isStructType: function isStructType(type) {
   105   if (isPointerType(type)) return false;
   106   if (isArrayType(type)) return true;
   107   if (/<?{ ?[^}]* ?}>?/.test(type)) return true; // { i32, i8 } etc. - anonymous struct types
   108   // See comment in isStructPointerType()
   109   return type[0] == '%';
   110 },
   111   INT_TYPES: {"i1":0,"i8":0,"i16":0,"i32":0,"i64":0},
   112   FLOAT_TYPES: {"float":0,"double":0},
   113   or64: function (x, y) {
   114     var l = (x | 0) | (y | 0);
   115     var h = (Math.round(x / 4294967296) | Math.round(y / 4294967296)) * 4294967296;
   116     return l + h;
   117   },
   118   and64: function (x, y) {
   119     var l = (x | 0) & (y | 0);
   120     var h = (Math.round(x / 4294967296) & Math.round(y / 4294967296)) * 4294967296;
   121     return l + h;
   122   },
   123   xor64: function (x, y) {
   124     var l = (x | 0) ^ (y | 0);
   125     var h = (Math.round(x / 4294967296) ^ Math.round(y / 4294967296)) * 4294967296;
   126     return l + h;
   127   },
   128   getNativeTypeSize: function (type, quantumSize) {
   129     if (Runtime.QUANTUM_SIZE == 1) return 1;
   130     var size = {
   131       '%i1': 1,
   132       '%i8': 1,
   133       '%i16': 2,
   134       '%i32': 4,
   135       '%i64': 8,
   136       "%float": 4,
   137       "%double": 8
   138     }['%'+type]; // add '%' since float and double confuse Closure compiler as keys, and also spidermonkey as a compiler will remove 's from '_i8' etc
   139     if (!size) {
   140       if (type.charAt(type.length-1) == '*') {
   141         size = Runtime.QUANTUM_SIZE; // A pointer
   142       } else if (type[0] == 'i') {
   143         var bits = parseInt(type.substr(1));
   144         assert(bits % 8 == 0);
   145         size = bits/8;
   146       }
   147     }
   148     return size;
   149   },
   150   getNativeFieldSize: function (type) {
   151     return Math.max(Runtime.getNativeTypeSize(type), Runtime.QUANTUM_SIZE);
   152   },
   153   dedup: function dedup(items, ident) {
   154   var seen = {};
   155   if (ident) {
   156     return items.filter(function(item) {
   157       if (seen[item[ident]]) return false;
   158       seen[item[ident]] = true;
   159       return true;
   160     });
   161   } else {
   162     return items.filter(function(item) {
   163       if (seen[item]) return false;
   164       seen[item] = true;
   165       return true;
   166     });
   167   }
   168 },
   169   set: function set() {
   170   var args = typeof arguments[0] === 'object' ? arguments[0] : arguments;
   171   var ret = {};
   172   for (var i = 0; i < args.length; i++) {
   173     ret[args[i]] = 0;
   174   }
   175   return ret;
   176 },
   177   STACK_ALIGN: 8,
   178   getAlignSize: function (type, size, vararg) {
   179     // we align i64s and doubles on 64-bit boundaries, unlike x86
   180     if (type == 'i64' || type == 'double' || vararg) return 8;
   181     if (!type) return Math.min(size, 8); // align structures internally to 64 bits
   182     return Math.min(size || (type ? Runtime.getNativeFieldSize(type) : 0), Runtime.QUANTUM_SIZE);
   183   },
   184   calculateStructAlignment: function calculateStructAlignment(type) {
   185     type.flatSize = 0;
   186     type.alignSize = 0;
   187     var diffs = [];
   188     var prev = -1;
   189     var index = 0;
   190     type.flatIndexes = type.fields.map(function(field) {
   191       index++;
   192       var size, alignSize;
   193       if (Runtime.isNumberType(field) || Runtime.isPointerType(field)) {
   194         size = Runtime.getNativeTypeSize(field); // pack char; char; in structs, also char[X]s.
   195         alignSize = Runtime.getAlignSize(field, size);
   196       } else if (Runtime.isStructType(field)) {
   197         if (field[1] === '0') {
   198           // this is [0 x something]. When inside another structure like here, it must be at the end,
   199           // and it adds no size
   200           // XXX this happens in java-nbody for example... assert(index === type.fields.length, 'zero-length in the middle!');
   201           size = 0;
   202           if (Types.types[field]) {
   203             alignSize = Runtime.getAlignSize(null, Types.types[field].alignSize);
   204           } else {
   205             alignSize = type.alignSize || QUANTUM_SIZE;
   206           }
   207         } else {
   208           size = Types.types[field].flatSize;
   209           alignSize = Runtime.getAlignSize(null, Types.types[field].alignSize);
   210         }
   211       } else if (field[0] == 'b') {
   212         // bN, large number field, like a [N x i8]
   213         size = field.substr(1)|0;
   214         alignSize = 1;
   215       } else {
   216         throw 'Unclear type in struct: ' + field + ', in ' + type.name_ + ' :: ' + dump(Types.types[type.name_]);
   217       }
   218       if (type.packed) alignSize = 1;
   219       type.alignSize = Math.max(type.alignSize, alignSize);
   220       var curr = Runtime.alignMemory(type.flatSize, alignSize); // if necessary, place this on aligned memory
   221       type.flatSize = curr + size;
   222       if (prev >= 0) {
   223         diffs.push(curr-prev);
   224       }
   225       prev = curr;
   226       return curr;
   227     });
   228     type.flatSize = Runtime.alignMemory(type.flatSize, type.alignSize);
   229     if (diffs.length == 0) {
   230       type.flatFactor = type.flatSize;
   231     } else if (Runtime.dedup(diffs).length == 1) {
   232       type.flatFactor = diffs[0];
   233     }
   234     type.needsFlattening = (type.flatFactor != 1);
   235     return type.flatIndexes;
   236   },
   237   generateStructInfo: function (struct, typeName, offset) {
   238     var type, alignment;
   239     if (typeName) {
   240       offset = offset || 0;
   241       type = (typeof Types === 'undefined' ? Runtime.typeInfo : Types.types)[typeName];
   242       if (!type) return null;
   243       if (type.fields.length != struct.length) {
   244         printErr('Number of named fields must match the type for ' + typeName + ': possibly duplicate struct names. Cannot return structInfo');
   245         return null;
   246       }
   247       alignment = type.flatIndexes;
   248     } else {
   249       var type = { fields: struct.map(function(item) { return item[0] }) };
   250       alignment = Runtime.calculateStructAlignment(type);
   251     }
   252     var ret = {
   253       __size__: type.flatSize
   254     };
   255     if (typeName) {
   256       struct.forEach(function(item, i) {
   257         if (typeof item === 'string') {
   258           ret[item] = alignment[i] + offset;
   259         } else {
   260           // embedded struct
   261           var key;
   262           for (var k in item) key = k;
   263           ret[key] = Runtime.generateStructInfo(item[key], type.fields[i], alignment[i]);
   264         }
   265       });
   266     } else {
   267       struct.forEach(function(item, i) {
   268         ret[item[1]] = alignment[i];
   269       });
   270     }
   271     return ret;
   272   },
   273   dynCall: function (sig, ptr, args) {
   274     if (args && args.length) {
   275       if (!args.splice) args = Array.prototype.slice.call(args);
   276       args.splice(0, 0, ptr);
   277       return Module['dynCall_' + sig].apply(null, args);
   278     } else {
   279       return Module['dynCall_' + sig].call(null, ptr);
   280     }
   281   },
   282   functionPointers: [],
   283   addFunction: function (func) {
   284     for (var i = 0; i < Runtime.functionPointers.length; i++) {
   285       if (!Runtime.functionPointers[i]) {
   286         Runtime.functionPointers[i] = func;
   287         return 2 + 2*i;
   288       }
   289     }
   290     throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.';
   291   },
   292   removeFunction: function (index) {
   293     Runtime.functionPointers[(index-2)/2] = null;
   294   },
   295   warnOnce: function (text) {
   296     if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {};
   297     if (!Runtime.warnOnce.shown[text]) {
   298       Runtime.warnOnce.shown[text] = 1;
   299       Module.printErr(text);
   300     }
   301   },
   302   funcWrappers: {},
   303   getFuncWrapper: function (func, sig) {
   304     assert(sig);
   305     if (!Runtime.funcWrappers[func]) {
   306       Runtime.funcWrappers[func] = function() {
   307         return Runtime.dynCall(sig, func, arguments);
   308       };
   309     }
   310     return Runtime.funcWrappers[func];
   311   },
   312   UTF8Processor: function () {
   313     var buffer = [];
   314     var needed = 0;
   315     this.processCChar = function (code) {
   316       code = code & 0xFF;
   317       if (buffer.length == 0) {
   318         if ((code & 0x80) == 0x00) {        // 0xxxxxxx
   319           return String.fromCharCode(code);
   320         }
   321         buffer.push(code);
   322         if ((code & 0xE0) == 0xC0) {        // 110xxxxx
   323           needed = 1;
   324         } else if ((code & 0xF0) == 0xE0) { // 1110xxxx
   325           needed = 2;
   326         } else {                            // 11110xxx
   327           needed = 3;
   328         }
   329         return '';
   330       }
   331       if (needed) {
   332         buffer.push(code);
   333         needed--;
   334         if (needed > 0) return '';
   335       }
   336       var c1 = buffer[0];
   337       var c2 = buffer[1];
   338       var c3 = buffer[2];
   339       var c4 = buffer[3];
   340       var ret;
   341       if (buffer.length == 2) {
   342         ret = String.fromCharCode(((c1 & 0x1F) << 6)  | (c2 & 0x3F));
   343       } else if (buffer.length == 3) {
   344         ret = String.fromCharCode(((c1 & 0x0F) << 12) | ((c2 & 0x3F) << 6)  | (c3 & 0x3F));
   345       } else {
   346         // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
   347         var codePoint = ((c1 & 0x07) << 18) | ((c2 & 0x3F) << 12) |
   348                         ((c3 & 0x3F) << 6)  | (c4 & 0x3F);
   349         ret = String.fromCharCode(
   350           Math.floor((codePoint - 0x10000) / 0x400) + 0xD800,
   351           (codePoint - 0x10000) % 0x400 + 0xDC00);
   352       }
   353       buffer.length = 0;
   354       return ret;
   355     }
   356     this.processJSString = function(string) {
   357       string = unescape(encodeURIComponent(string));
   358       var ret = [];
   359       for (var i = 0; i < string.length; i++) {
   360         ret.push(string.charCodeAt(i));
   361       }
   362       return ret;
   363     }
   364   },
   365   stackAlloc: function (size) { var ret = STACKTOP;STACKTOP = (STACKTOP + size)|0;STACKTOP = ((((STACKTOP)+7)>>3)<<3); return ret; },
   366   staticAlloc: function (size) { var ret = STATICTOP;STATICTOP = (STATICTOP + size)|0;STATICTOP = ((((STATICTOP)+7)>>3)<<3); return ret; },
   367   dynamicAlloc: function (size) { var ret = DYNAMICTOP;DYNAMICTOP = (DYNAMICTOP + size)|0;DYNAMICTOP = ((((DYNAMICTOP)+7)>>3)<<3); if (DYNAMICTOP >= TOTAL_MEMORY) enlargeMemory();; return ret; },
   368   alignMemory: function (size,quantum) { var ret = size = Math.ceil((size)/(quantum ? quantum : 8))*(quantum ? quantum : 8); return ret; },
   369   makeBigInt: function (low,high,unsigned) { var ret = (unsigned ? ((+(((low)>>>(0))))+((+(((high)>>>(0))))*(+(4294967296)))) : ((+(((low)>>>(0))))+((+(((high)|(0))))*(+(4294967296))))); return ret; },
   370   GLOBAL_BASE: 8,
   371   QUANTUM_SIZE: 4,
   372   __dummy__: 0
   373 }
   374 //========================================
   375 // Runtime essentials
   376 //========================================
   377 var __THREW__ = 0; // Used in checking for thrown exceptions.
   378 var ABORT = false; // whether we are quitting the application. no code should run after this. set in exit() and abort()
   379 var EXITSTATUS = 0;
   380 var undef = 0;
   381 // tempInt is used for 32-bit signed values or smaller. tempBigInt is used
   382 // for 32-bit unsigned values or more than 32 bits. TODO: audit all uses of tempInt
   383 var tempValue, tempInt, tempBigInt, tempInt2, tempBigInt2, tempPair, tempBigIntI, tempBigIntR, tempBigIntS, tempBigIntP, tempBigIntD;
   384 var tempI64, tempI64b;
   385 var tempRet0, tempRet1, tempRet2, tempRet3, tempRet4, tempRet5, tempRet6, tempRet7, tempRet8, tempRet9;
   386 function assert(condition, text) {
   387   if (!condition) {
   388     abort('Assertion failed: ' + text);
   389   }
   390 }
   391 var globalScope = this;
   392 // C calling interface. A convenient way to call C functions (in C files, or
   393 // defined with extern "C").
   394 //
   395 // Note: LLVM optimizations can inline and remove functions, after which you will not be
   396 //       able to call them. Closure can also do so. To avoid that, add your function to
   397 //       the exports using something like
   398 //
   399 //         -s EXPORTED_FUNCTIONS='["_main", "_myfunc"]'
   400 //
   401 // @param ident      The name of the C function (note that C++ functions will be name-mangled - use extern "C")
   402 // @param returnType The return type of the function, one of the JS types 'number', 'string' or 'array' (use 'number' for any C pointer, and
   403 //                   'array' for JavaScript arrays and typed arrays; note that arrays are 8-bit).
   404 // @param argTypes   An array of the types of arguments for the function (if there are no arguments, this can be ommitted). Types are as in returnType,
   405 //                   except that 'array' is not possible (there is no way for us to know the length of the array)
   406 // @param args       An array of the arguments to the function, as native JS values (as in returnType)
   407 //                   Note that string arguments will be stored on the stack (the JS string will become a C string on the stack).
   408 // @return           The return value, as a native JS value (as in returnType)
   409 function ccall(ident, returnType, argTypes, args) {
   410   return ccallFunc(getCFunc(ident), returnType, argTypes, args);
   411 }
   412 Module["ccall"] = ccall;
   413 // Returns the C function with a specified identifier (for C++, you need to do manual name mangling)
   414 function getCFunc(ident) {
   415   try {
   416     var func = Module['_' + ident]; // closure exported function
   417     if (!func) func = eval('_' + ident); // explicit lookup
   418   } catch(e) {
   419   }
   420   assert(func, 'Cannot call unknown function ' + ident + ' (perhaps LLVM optimizations or closure removed it?)');
   421   return func;
   422 }
   423 // Internal function that does a C call using a function, not an identifier
   424 function ccallFunc(func, returnType, argTypes, args) {
   425   var stack = 0;
   426   function toC(value, type) {
   427     if (type == 'string') {
   428       if (value === null || value === undefined || value === 0) return 0; // null string
   429       if (!stack) stack = Runtime.stackSave();
   430       var ret = Runtime.stackAlloc(value.length+1);
   431       writeStringToMemory(value, ret);
   432       return ret;
   433     } else if (type == 'array') {
   434       if (!stack) stack = Runtime.stackSave();
   435       var ret = Runtime.stackAlloc(value.length);
   436       writeArrayToMemory(value, ret);
   437       return ret;
   438     }
   439     return value;
   440   }
   441   function fromC(value, type) {
   442     if (type == 'string') {
   443       return Pointer_stringify(value);
   444     }
   445     assert(type != 'array');
   446     return value;
   447   }
   448   var i = 0;
   449   var cArgs = args ? args.map(function(arg) {
   450     return toC(arg, argTypes[i++]);
   451   }) : [];
   452   var ret = fromC(func.apply(null, cArgs), returnType);
   453   if (stack) Runtime.stackRestore(stack);
   454   return ret;
   455 }
   456 // Returns a native JS wrapper for a C function. This is similar to ccall, but
   457 // returns a function you can call repeatedly in a normal way. For example:
   458 //
   459 //   var my_function = cwrap('my_c_function', 'number', ['number', 'number']);
   460 //   alert(my_function(5, 22));
   461 //   alert(my_function(99, 12));
   462 //
   463 function cwrap(ident, returnType, argTypes) {
   464   var func = getCFunc(ident);
   465   return function() {
   466     return ccallFunc(func, returnType, argTypes, Array.prototype.slice.call(arguments));
   467   }
   468 }
   469 Module["cwrap"] = cwrap;
   470 // Sets a value in memory in a dynamic way at run-time. Uses the
   471 // type data. This is the same as makeSetValue, except that
   472 // makeSetValue is done at compile-time and generates the needed
   473 // code then, whereas this function picks the right code at
   474 // run-time.
   475 // Note that setValue and getValue only do *aligned* writes and reads!
   476 // Note that ccall uses JS types as for defining types, while setValue and
   477 // getValue need LLVM types ('i8', 'i32') - this is a lower-level operation
   478 function setValue(ptr, value, type, noSafe) {
   479   type = type || 'i8';
   480   if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit
   481     switch(type) {
   482       case 'i1': HEAP8[(ptr)]=value; break;
   483       case 'i8': HEAP8[(ptr)]=value; break;
   484       case 'i16': HEAP16[((ptr)>>1)]=value; break;
   485       case 'i32': HEAP32[((ptr)>>2)]=value; break;
   486       case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math.abs(tempDouble))) >= (+(1)) ? (tempDouble > (+(0)) ? ((Math.min((+(Math.floor((tempDouble)/(+(4294967296))))), (+(4294967295))))|0)>>>0 : (~~((+(Math.ceil((tempDouble - +(((~~(tempDouble)))>>>0))/(+(4294967296)))))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break;
   487       case 'float': HEAPF32[((ptr)>>2)]=value; break;
   488       case 'double': HEAPF64[((ptr)>>3)]=value; break;
   489       default: abort('invalid type for setValue: ' + type);
   490     }
   491 }
   492 Module['setValue'] = setValue;
   493 // Parallel to setValue.
   494 function getValue(ptr, type, noSafe) {
   495   type = type || 'i8';
   496   if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit
   497     switch(type) {
   498       case 'i1': return HEAP8[(ptr)];
   499       case 'i8': return HEAP8[(ptr)];
   500       case 'i16': return HEAP16[((ptr)>>1)];
   501       case 'i32': return HEAP32[((ptr)>>2)];
   502       case 'i64': return HEAP32[((ptr)>>2)];
   503       case 'float': return HEAPF32[((ptr)>>2)];
   504       case 'double': return HEAPF64[((ptr)>>3)];
   505       default: abort('invalid type for setValue: ' + type);
   506     }
   507   return null;
   508 }
   509 Module['getValue'] = getValue;
   510 var ALLOC_NORMAL = 0; // Tries to use _malloc()
   511 var ALLOC_STACK = 1; // Lives for the duration of the current function call
   512 var ALLOC_STATIC = 2; // Cannot be freed
   513 var ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk
   514 var ALLOC_NONE = 4; // Do not allocate
   515 Module['ALLOC_NORMAL'] = ALLOC_NORMAL;
   516 Module['ALLOC_STACK'] = ALLOC_STACK;
   517 Module['ALLOC_STATIC'] = ALLOC_STATIC;
   518 Module['ALLOC_DYNAMIC'] = ALLOC_DYNAMIC;
   519 Module['ALLOC_NONE'] = ALLOC_NONE;
   520 // allocate(): This is for internal use. You can use it yourself as well, but the interface
   521 //             is a little tricky (see docs right below). The reason is that it is optimized
   522 //             for multiple syntaxes to save space in generated code. So you should
   523 //             normally not use allocate(), and instead allocate memory using _malloc(),
   524 //             initialize it with setValue(), and so forth.
   525 // @slab: An array of data, or a number. If a number, then the size of the block to allocate,
   526 //        in *bytes* (note that this is sometimes confusing: the next parameter does not
   527 //        affect this!)
   528 // @types: Either an array of types, one for each byte (or 0 if no type at that position),
   529 //         or a single type which is used for the entire block. This only matters if there
   530 //         is initial data - if @slab is a number, then this does not matter at all and is
   531 //         ignored.
   532 // @allocator: How to allocate memory, see ALLOC_*
   533 function allocate(slab, types, allocator, ptr) {
   534   var zeroinit, size;
   535   if (typeof slab === 'number') {
   536     zeroinit = true;
   537     size = slab;
   538   } else {
   539     zeroinit = false;
   540     size = slab.length;
   541   }
   542   var singleType = typeof types === 'string' ? types : null;
   543   var ret;
   544   if (allocator == ALLOC_NONE) {
   545     ret = ptr;
   546   } else {
   547     ret = [_malloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length));
   548   }
   549   if (zeroinit) {
   550     var ptr = ret, stop;
   551     assert((ret & 3) == 0);
   552     stop = ret + (size & ~3);
   553     for (; ptr < stop; ptr += 4) {
   554       HEAP32[((ptr)>>2)]=0;
   555     }
   556     stop = ret + size;
   557     while (ptr < stop) {
   558       HEAP8[((ptr++)|0)]=0;
   559     }
   560     return ret;
   561   }
   562   if (singleType === 'i8') {
   563     if (slab.subarray || slab.slice) {
   564       HEAPU8.set(slab, ret);
   565     } else {
   566       HEAPU8.set(new Uint8Array(slab), ret);
   567     }
   568     return ret;
   569   }
   570   var i = 0, type, typeSize, previousType;
   571   while (i < size) {
   572     var curr = slab[i];
   573     if (typeof curr === 'function') {
   574       curr = Runtime.getFunctionIndex(curr);
   575     }
   576     type = singleType || types[i];
   577     if (type === 0) {
   578       i++;
   579       continue;
   580     }
   581     if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later
   582     setValue(ret+i, curr, type);
   583     // no need to look up size unless type changes, so cache it
   584     if (previousType !== type) {
   585       typeSize = Runtime.getNativeTypeSize(type);
   586       previousType = type;
   587     }
   588     i += typeSize;
   589   }
   590   return ret;
   591 }
   592 Module['allocate'] = allocate;
   593 function Pointer_stringify(ptr, /* optional */ length) {
   594   // TODO: use TextDecoder
   595   // Find the length, and check for UTF while doing so
   596   var hasUtf = false;
   597   var t;
   598   var i = 0;
   599   while (1) {
   600     t = HEAPU8[(((ptr)+(i))|0)];
   601     if (t >= 128) hasUtf = true;
   602     else if (t == 0 && !length) break;
   603     i++;
   604     if (length && i == length) break;
   605   }
   606   if (!length) length = i;
   607   var ret = '';
   608   if (!hasUtf) {
   609     var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack
   610     var curr;
   611     while (length > 0) {
   612       curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK)));
   613       ret = ret ? ret + curr : curr;
   614       ptr += MAX_CHUNK;
   615       length -= MAX_CHUNK;
   616     }
   617     return ret;
   618   }
   619   var utf8 = new Runtime.UTF8Processor();
   620   for (i = 0; i < length; i++) {
   621     t = HEAPU8[(((ptr)+(i))|0)];
   622     ret += utf8.processCChar(t);
   623   }
   624   return ret;
   625 }
   626 Module['Pointer_stringify'] = Pointer_stringify;
   627 // Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns
   628 // a copy of that string as a Javascript String object.
   629 function UTF16ToString(ptr) {
   630   var i = 0;
   631   var str = '';
   632   while (1) {
   633     var codeUnit = HEAP16[(((ptr)+(i*2))>>1)];
   634     if (codeUnit == 0)
   635       return str;
   636     ++i;
   637     // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through.
   638     str += String.fromCharCode(codeUnit);
   639   }
   640 }
   641 Module['UTF16ToString'] = UTF16ToString;
   642 // Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', 
   643 // null-terminated and encoded in UTF16LE form. The copy will require at most (str.length*2+1)*2 bytes of space in the HEAP.
   644 function stringToUTF16(str, outPtr) {
   645   for(var i = 0; i < str.length; ++i) {
   646     // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP.
   647     var codeUnit = str.charCodeAt(i); // possibly a lead surrogate
   648     HEAP16[(((outPtr)+(i*2))>>1)]=codeUnit
   649   }
   650   // Null-terminate the pointer to the HEAP.
   651   HEAP16[(((outPtr)+(str.length*2))>>1)]=0
   652 }
   653 Module['stringToUTF16'] = stringToUTF16;
   654 // Given a pointer 'ptr' to a null-terminated UTF32LE-encoded string in the emscripten HEAP, returns
   655 // a copy of that string as a Javascript String object.
   656 function UTF32ToString(ptr) {
   657   var i = 0;
   658   var str = '';
   659   while (1) {
   660     var utf32 = HEAP32[(((ptr)+(i*4))>>2)];
   661     if (utf32 == 0)
   662       return str;
   663     ++i;
   664     // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing.
   665     if (utf32 >= 0x10000) {
   666       var ch = utf32 - 0x10000;
   667       str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));
   668     } else {
   669       str += String.fromCharCode(utf32);
   670     }
   671   }
   672 }
   673 Module['UTF32ToString'] = UTF32ToString;
   674 // Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', 
   675 // null-terminated and encoded in UTF32LE form. The copy will require at most (str.length+1)*4 bytes of space in the HEAP,
   676 // but can use less, since str.length does not return the number of characters in the string, but the number of UTF-16 code units in the string.
   677 function stringToUTF32(str, outPtr) {
   678   var iChar = 0;
   679   for(var iCodeUnit = 0; iCodeUnit < str.length; ++iCodeUnit) {
   680     // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.
   681     var codeUnit = str.charCodeAt(iCodeUnit); // possibly a lead surrogate
   682     if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) {
   683       var trailSurrogate = str.charCodeAt(++iCodeUnit);
   684       codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF);
   685     }
   686     HEAP32[(((outPtr)+(iChar*4))>>2)]=codeUnit
   687     ++iChar;
   688   }
   689   // Null-terminate the pointer to the HEAP.
   690   HEAP32[(((outPtr)+(iChar*4))>>2)]=0
   691 }
   692 Module['stringToUTF32'] = stringToUTF32;
   693 // Memory management
   694 var PAGE_SIZE = 4096;
   695 function alignMemoryPage(x) {
   696   return ((x+4095)>>12)<<12;
   697 }
   698 var HEAP;
   699 var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;
   700 var STATIC_BASE = 0, STATICTOP = 0, staticSealed = false; // static area
   701 var STACK_BASE = 0, STACKTOP = 0, STACK_MAX = 0; // stack area
   702 var DYNAMIC_BASE = 0, DYNAMICTOP = 0; // dynamic area handled by sbrk
   703 function enlargeMemory() {
   704   abort('Cannot enlarge memory arrays in asm.js. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' + TOTAL_MEMORY + ', or (2) set Module.TOTAL_MEMORY before the program runs.');
   705 }
   706 var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880;
   707 var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 16777216;
   708 var FAST_MEMORY = Module['FAST_MEMORY'] || 2097152;
   709 // Initialize the runtime's memory
   710 // check for full engine support (use string 'subarray' to avoid closure compiler confusion)
   711 assert(!!Int32Array && !!Float64Array && !!(new Int32Array(1)['subarray']) && !!(new Int32Array(1)['set']),
   712        'Cannot fallback to non-typed array case: Code is too specialized');
   713 var buffer = new ArrayBuffer(TOTAL_MEMORY);
   714 HEAP8 = new Int8Array(buffer);
   715 HEAP16 = new Int16Array(buffer);
   716 HEAP32 = new Int32Array(buffer);
   717 HEAPU8 = new Uint8Array(buffer);
   718 HEAPU16 = new Uint16Array(buffer);
   719 HEAPU32 = new Uint32Array(buffer);
   720 HEAPF32 = new Float32Array(buffer);
   721 HEAPF64 = new Float64Array(buffer);
   722 // Endianness check (note: assumes compiler arch was little-endian)
   723 HEAP32[0] = 255;
   724 assert(HEAPU8[0] === 255 && HEAPU8[3] === 0, 'Typed arrays 2 must be run on a little-endian system');
   725 Module['HEAP'] = HEAP;
   726 Module['HEAP8'] = HEAP8;
   727 Module['HEAP16'] = HEAP16;
   728 Module['HEAP32'] = HEAP32;
   729 Module['HEAPU8'] = HEAPU8;
   730 Module['HEAPU16'] = HEAPU16;
   731 Module['HEAPU32'] = HEAPU32;
   732 Module['HEAPF32'] = HEAPF32;
   733 Module['HEAPF64'] = HEAPF64;
   734 function callRuntimeCallbacks(callbacks) {
   735   while(callbacks.length > 0) {
   736     var callback = callbacks.shift();
   737     if (typeof callback == 'function') {
   738       callback();
   739       continue;
   740     }
   741     var func = callback.func;
   742     if (typeof func === 'number') {
   743       if (callback.arg === undefined) {
   744         Runtime.dynCall('v', func);
   745       } else {
   746         Runtime.dynCall('vi', func, [callback.arg]);
   747       }
   748     } else {
   749       func(callback.arg === undefined ? null : callback.arg);
   750     }
   751   }
   752 }
   753 var __ATPRERUN__  = []; // functions called before the runtime is initialized
   754 var __ATINIT__    = []; // functions called during startup
   755 var __ATMAIN__    = []; // functions called when main() is to be run
   756 var __ATEXIT__    = []; // functions called during shutdown
   757 var __ATPOSTRUN__ = []; // functions called after the runtime has exited
   758 var runtimeInitialized = false;
   759 function preRun() {
   760   // compatibility - merge in anything from Module['preRun'] at this time
   761   if (Module['preRun']) {
   762     if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']];
   763     while (Module['preRun'].length) {
   764       addOnPreRun(Module['preRun'].shift());
   765     }
   766   }
   767   callRuntimeCallbacks(__ATPRERUN__);
   768 }
   769 function ensureInitRuntime() {
   770   if (runtimeInitialized) return;
   771   runtimeInitialized = true;
   772   callRuntimeCallbacks(__ATINIT__);
   773 }
   774 function preMain() {
   775   callRuntimeCallbacks(__ATMAIN__);
   776 }
   777 function exitRuntime() {
   778   callRuntimeCallbacks(__ATEXIT__);
   779 }
   780 function postRun() {
   781   // compatibility - merge in anything from Module['postRun'] at this time
   782   if (Module['postRun']) {
   783     if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']];
   784     while (Module['postRun'].length) {
   785       addOnPostRun(Module['postRun'].shift());
   786     }
   787   }
   788   callRuntimeCallbacks(__ATPOSTRUN__);
   789 }
   790 function addOnPreRun(cb) {
   791   __ATPRERUN__.unshift(cb);
   792 }
   793 Module['addOnPreRun'] = Module.addOnPreRun = addOnPreRun;
   794 function addOnInit(cb) {
   795   __ATINIT__.unshift(cb);
   796 }
   797 Module['addOnInit'] = Module.addOnInit = addOnInit;
   798 function addOnPreMain(cb) {
   799   __ATMAIN__.unshift(cb);
   800 }
   801 Module['addOnPreMain'] = Module.addOnPreMain = addOnPreMain;
   802 function addOnExit(cb) {
   803   __ATEXIT__.unshift(cb);
   804 }
   805 Module['addOnExit'] = Module.addOnExit = addOnExit;
   806 function addOnPostRun(cb) {
   807   __ATPOSTRUN__.unshift(cb);
   808 }
   809 Module['addOnPostRun'] = Module.addOnPostRun = addOnPostRun;
   810 // Tools
   811 // This processes a JS string into a C-line array of numbers, 0-terminated.
   812 // For LLVM-originating strings, see parser.js:parseLLVMString function
   813 function intArrayFromString(stringy, dontAddNull, length /* optional */) {
   814   var ret = (new Runtime.UTF8Processor()).processJSString(stringy);
   815   if (length) {
   816     ret.length = length;
   817   }
   818   if (!dontAddNull) {
   819     ret.push(0);
   820   }
   821   return ret;
   822 }
   823 Module['intArrayFromString'] = intArrayFromString;
   824 function intArrayToString(array) {
   825   var ret = [];
   826   for (var i = 0; i < array.length; i++) {
   827     var chr = array[i];
   828     if (chr > 0xFF) {
   829       chr &= 0xFF;
   830     }
   831     ret.push(String.fromCharCode(chr));
   832   }
   833   return ret.join('');
   834 }
   835 Module['intArrayToString'] = intArrayToString;
   836 // Write a Javascript array to somewhere in the heap
   837 function writeStringToMemory(string, buffer, dontAddNull) {
   838   var array = intArrayFromString(string, dontAddNull);
   839   var i = 0;
   840   while (i < array.length) {
   841     var chr = array[i];
   842     HEAP8[(((buffer)+(i))|0)]=chr
   843     i = i + 1;
   844   }
   845 }
   846 Module['writeStringToMemory'] = writeStringToMemory;
   847 function writeArrayToMemory(array, buffer) {
   848   for (var i = 0; i < array.length; i++) {
   849     HEAP8[(((buffer)+(i))|0)]=array[i];
   850   }
   851 }
   852 Module['writeArrayToMemory'] = writeArrayToMemory;
   853 function unSign(value, bits, ignore, sig) {
   854   if (value >= 0) {
   855     return value;
   856   }
   857   return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts
   858                     : Math.pow(2, bits)         + value;
   859 }
   860 function reSign(value, bits, ignore, sig) {
   861   if (value <= 0) {
   862     return value;
   863   }
   864   var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32
   865                         : Math.pow(2, bits-1);
   866   if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that
   867                                                        // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors
   868                                                        // TODO: In i64 mode 1, resign the two parts separately and safely
   869     value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts
   870   }
   871   return value;
   872 }
   873 if (!Math['imul']) Math['imul'] = function(a, b) {
   874   var ah  = a >>> 16;
   875   var al = a & 0xffff;
   876   var bh  = b >>> 16;
   877   var bl = b & 0xffff;
   878   return (al*bl + ((ah*bl + al*bh) << 16))|0;
   879 };
   880 Math.imul = Math['imul'];
   881 // A counter of dependencies for calling run(). If we need to
   882 // do asynchronous work before running, increment this and
   883 // decrement it. Incrementing must happen in a place like
   884 // PRE_RUN_ADDITIONS (used by emcc to add file preloading).
   885 // Note that you can add dependencies in preRun, even though
   886 // it happens right before run - run will be postponed until
   887 // the dependencies are met.
   888 var runDependencies = 0;
   889 var runDependencyTracking = {};
   890 var calledInit = false, calledRun = false;
   891 var runDependencyWatcher = null;
   892 function addRunDependency(id) {
   893   runDependencies++;
   894   if (Module['monitorRunDependencies']) {
   895     Module['monitorRunDependencies'](runDependencies);
   896   }
   897   if (id) {
   898     assert(!runDependencyTracking[id]);
   899     runDependencyTracking[id] = 1;
   900   } else {
   901     Module.printErr('warning: run dependency added without ID');
   902   }
   903 }
   904 Module['addRunDependency'] = addRunDependency;
   905 function removeRunDependency(id) {
   906   runDependencies--;
   907   if (Module['monitorRunDependencies']) {
   908     Module['monitorRunDependencies'](runDependencies);
   909   }
   910   if (id) {
   911     assert(runDependencyTracking[id]);
   912     delete runDependencyTracking[id];
   913   } else {
   914     Module.printErr('warning: run dependency removed without ID');
   915   }
   916   if (runDependencies == 0) {
   917     if (runDependencyWatcher !== null) {
   918       clearInterval(runDependencyWatcher);
   919       runDependencyWatcher = null;
   920     } 
   921     // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false)
   922     if (!calledRun) run();
   923   }
   924 }
   925 Module['removeRunDependency'] = removeRunDependency;
   926 Module["preloadedImages"] = {}; // maps url to image data
   927 Module["preloadedAudios"] = {}; // maps url to audio data
   928 function loadMemoryInitializer(filename) {
   929   function applyData(data) {
   930     HEAPU8.set(data, STATIC_BASE);
   931   }
   932   // always do this asynchronously, to keep shell and web as similar as possible
   933   addOnPreRun(function() {
   934     if (ENVIRONMENT_IS_NODE || ENVIRONMENT_IS_SHELL) {
   935       applyData(Module['readBinary'](filename));
   936     } else {
   937       Browser.asyncLoad(filename, function(data) {
   938         applyData(data);
   939       }, function(data) {
   940         throw 'could not load memory initializer ' + filename;
   941       });
   942     }
   943   });
   944 }
   945 // === Body ===
   946 STATIC_BASE = 8;
   947 STATICTOP = STATIC_BASE + 14352;
   948 /* global initializers */ __ATINIT__.push({ func: function() { runPostSets() } },{ func: function() { __GLOBAL__I_a() } });
   949 var ___dso_handle;
   950 var __ZTVN10__cxxabiv120__si_class_type_infoE;
   951 var __ZTVN10__cxxabiv117__class_type_infoE;
   952 var __ZN23btDiscreteDynamicsWorldC1EP12btDispatcherP21btBroadphaseInterfaceP18btConstraintSolverP24btCollisionConfiguration;
   953 var __ZN11btRigidBodyC1ERKNS_27btRigidBodyConstructionInfoE;
   954 var __ZN11btRigidBodyC1EfP13btMotionStateP16btCollisionShapeRK9btVector3;
   955 var __ZN35btSequentialImpulseConstraintSolverC1Ev;
   956 var __ZN21btCollisionDispatcherC1EP24btCollisionConfiguration;
   957 var __ZN27btContinuousConvexCollisionC1EPK13btConvexShapeS2_P22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver;
   958 var __ZN27btContinuousConvexCollisionC1EPK13btConvexShapePK18btStaticPlaneShape;
   959 var __ZN16btDbvtBroadphaseC1EP22btOverlappingPairCache;
   960 var __ZN31btDefaultCollisionConfigurationC1ERK34btDefaultCollisionConstructionInfo;
   961 var __ZN16btEmptyAlgorithmC1ERK36btCollisionAlgorithmConstructionInfo;
   962 var __ZN17btGjkPairDetectorC1EPK13btConvexShapeS2_P22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver;
   963 var __ZN17btGjkPairDetectorC1EPK13btConvexShapeS2_iiffP22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver;
   964 var __ZN16btManifoldResultC1EP17btCollisionObjectS1_;
   965 var __ZN28btHashedOverlappingPairCacheC1Ev;
   966 var __ZN25btSimulationIslandManagerC1Ev;
   967 var __ZN32btSphereSphereCollisionAlgorithmC1EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_;
   968 var __ZN34btSphereTriangleCollisionAlgorithmC1EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_b;
   969 var __ZN22btSubsimplexConvexCastC1EPK13btConvexShapeS2_P22btVoronoiSimplexSolver;
   970 var __ZN11btUnionFindD1Ev;
   971 var __ZN11btUnionFindC1Ev;
   972 var __ZN22SphereTriangleDetectorC1EP13btSphereShapeP15btTriangleShapef;
   973 var __ZN26btBoxBoxCollisionAlgorithmC1EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_;
   974 var __ZN16btBoxBoxDetectorC1EP10btBoxShapeS1_;
   975 var __ZN28btCompoundCollisionAlgorithmC1ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_b;
   976 var __ZN33btConvexConcaveCollisionAlgorithmC1ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_b;
   977 var __ZN23btConvexConvexAlgorithm10CreateFuncC1EP22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver;
   978 var __ZN31btConvexPlaneCollisionAlgorithmC1EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_bii;
   979 var __ZN18btConvexPolyhedronC1Ev;
   980 var __ZN6btDbvtC1Ev;
   981 var __ZN6btDbvtD1Ev;
   982 var __ZN15btGjkConvexCastC1EPK13btConvexShapeS2_P22btVoronoiSimplexSolver;
   983 __ZTVN10__cxxabiv120__si_class_type_infoE=allocate([0,0,0,0,96,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], "i8", ALLOC_STATIC);
   984 __ZTVN10__cxxabiv117__class_type_infoE=allocate([0,0,0,0,112,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], "i8", ALLOC_STATIC);
   985 /* memory initializer */ allocate([0,0,0,64,0,0,0,0,10,215,163,60,0,0,0,0,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,70,108,111,97,116,68,97,116,97,0,0,0,0,0,0,99,111,110,118,101,120,83,119,101,101,112,84,101,115,116,0,67,67,68,32,109,111,116,105,111,110,32,99,108,97,109,112,105,110,103,0,0,0,0,0,99,111,110,118,101,120,83,119,101,101,112,67,111,109,112,111,117,110,100,0,0,0,0,0,105,110,116,101,103,114,97,116,101,84,114,97,110,115,102,111,114,109,115,0,0,0,0,0,100,105,115,112,97,116,99,104,65,108,108,67,111,108,108,105,115,105,111,110,80,97,105,114,115,0,0,0,0,0,0,0,99,97,108,99,117,108,97,116,101,83,105,109,117,108,97,116,105,111,110,73,115,108,97,110,100,115,0,0,0,0,0,0,99,97,108,99,117,108,97,116,101,79,118,101,114,108,97,112,112,105,110,103,80,97,105,114,115,0,0,0,0,0,0,0,115,111,108,118,101,67,111,110,115,116,114,97,105,110,116,115,0,0,0,0,0,0,0,0,82,111,111,116,0,0,0,0,112,101,114,102,111,114,109,68,105,115,99,114,101,116,101,67,111,108,108,105,115,105,111,110,68,101,116,101,99,116,105,111,110,0,0,0,0,0,0,0,117,112,100,97,116,101,65,99,116,105,118,97,116,105,111,110,83,116,97,116,101,0,0,0,66,117,108,108,101,116,67,111,108,108,105,115,105,111,110,47,78,97,114,114,111,119,80,104,97,115,101,67,111,108,108,105,115,105,111,110,47,98,116,80,111,108,121,104,101,100,114,97,108,67,111,110,116,97,99,116,67,108,105,112,112,105,110,103,46,99,112,112,0,0,0,0,115,111,108,118,101,71,114,111,117,112,67,97,99,104,101,70,114,105,101,110,100,108,121,83,101,116,117,112,0,0,0,0,117,112,100,97,116,101,65,97,98,98,115,0,0,0,0,0,117,112,100,97,116,101,65,99,116,105,111,110,115,0,0,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,0,84,104,97,110,107,115,46,10,0,0,0,0,0,0,0,0,105,115,108,97,110,100,85,110,105,111,110,70,105,110,100,65,110,100,81,117,105,99,107,83,111,114,116,0,0,0,0,0,105,110,116,101,114,110,97,108,83,105,110,103,108,101,83,116,101,112,83,105,109,117,108,97,116,105,111,110,0,0,0,0,100,49,62,61,48,46,48,102,0,0,0,0,0,0,0,0,115,111,108,118,101,71,114,111,117,112,0,0,0,0,0,0,98,116,82,105,103,105,100,66,111,100,121,70,108,111,97,116,68,97,116,97,0,0,0,0,80,108,101,97,115,101,32,105,110,99,108,117,100,101,32,97,98,111,118,101,32,105,110,102,111,114,109,97,116,105,111,110,44,32,121,111,117,114,32,80,108,97,116,102,111,114,109,44,32,118,101,114,115,105,111,110,32,111,102,32,79,83,46,10,0,0,0,0,0,0,0,0,115,116,101,112,83,105,109,117,108,97,116,105,111,110,0,0,66,111,120,0,0,0,0,0,100,48,62,61,48,46,48,102,0,0,0,0,0,0,0,0,115,111,108,118,101,71,114,111,117,112,67,97,99,104,101,70,114,105,101,110,100,108,121,73,116,101,114,97,116,105,111,110,115,0,0,0,0,0,0,0,83,80,72,69,82,69,0,0,112,114,111,99,101,115,115,73,115,108,97,110,100,115,0,0,98,116,67,111,110,118,101,120,73,110,116,101,114,110,97,108,83,104,97,112,101,68,97,116,97,0,0,0,0,0,0,0,84,114,105,97,110,103,108,101,0,0,0,0,0,0,0,0,112,114,101,100,105,99,116,85,110,99,111,110,115,116,114,97,105,110,116,77,111,116,105,111,110,0,0,0,0,0,0,0,79,118,101,114,102,108,111,119,32,105,110,32,65,65,66,66,44,32,111,98,106,101,99,116,32,114,101,109,111,118,101,100,32,102,114,111,109,32,115,105,109,117,108,97,116,105,111,110,0,0,0,0,0,0,0,0,115,121,110,99,104,114,111,110,105,122,101,77,111,116,105,111,110,83,116,97,116,101,115,0,73,102,32,121,111,117,32,99,97,110,32,114,101,112,114,111,100,117,99,101,32,116,104,105,115,44,32,112,108,101,97,115,101,32,101,109,97,105,108,32,98,117,103,115,64,99,111,110,116,105,110,117,111,117,115,112,104,121,115,105,99,115,46,99,111,109,10,0,0,0,0,0,115,101,97,114,99,104,32,115,112,101,99,117,108,97,116,105,118,101,32,99,111,110,116,97,99,116,115,0,0,0,0,0,98,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,68,97,116,97,0,0,0,0,97,100,100,83,112,101,99,117,108,97,116,105,118,101,67,111,110,116,97,99,116,115,0,0,100,101,98,117,103,68,114,97,119,87,111,114,108,100,0,0,119,111,114,108,100,32,112,111,115,32,61,32,37,46,50,102,44,37,46,50,102,44,37,46,50,102,10,0,0,0,0,0,98,111,111,108,32,84,101,115,116,83,101,112,65,120,105,115,40,99,111,110,115,116,32,98,116,67,111,110,118,101,120,80,111,108,121,104,101,100,114,111,110,32,38,44,32,99,111,110,115,116,32,98,116,67,111,110,118,101,120,80,111,108,121,104,101,100,114,111,110,32,38,44,32,99,111,110,115,116,32,98,116,84,114,97,110,115,102,111,114,109,32,38,44,32,99,111,110,115,116,32,98,116,84,114,97,110,115,102,111,114,109,32,38,44,32,99,111,110,115,116,32,98,116,86,101,99,116,111,114,51,32,38,44,32,102,108,111,97,116,32,38,41,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,40,0,0,20,1,0,0,44,0,0,0,86,0,0,0,4,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,40,0,0,84,0,0,0,42,0,0,0,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,40,0,0,90,0,0,0,204,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,40,0,0,116,1,0,0,90,1,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,40,0,0,196,0,0,0,104,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,40,0,0,98,1,0,0,50,1,0,0,26,0,0,0,16,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,40,0,0,8,1,0,0,40,0,0,0,74,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,40,0,0,198,0,0,0,56,1,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,40,0,0,4,0,0,0,14,0,0,0,26,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,40,0,0,122,0,0,0,30,0,0,0,26,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,0,0,236,0,0,0,98,0,0,0,38,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,41,0,0,114,0,0,0,158,0,0,0,10,0,0,0,76,0,0,0,2,0,0,0,32,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,41,0,0,124,0,0,0,168,0,0,0,40,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,41,0,0,22,0,0,0,184,0,0,0,40,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,41,0,0,64,1,0,0,190,0,0,0,22,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,41,0,0,32,0,0,0,180,0,0,0,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,41,0,0,94,1,0,0,240,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,41,0,0,28,0,0,0,20,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,41,0,0,228,0,0,0,248,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,41,0,0,72,0,0,0,60,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,41,0,0,82,1,0,0,92,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,41,0,0,112,0,0,0,142,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,41,0,0,150,0,0,0,100,1,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,41,0,0,48,1,0,0,202,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,42,0,0,102,1,0,0,220,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,42,0,0,88,1,0,0,30,1,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,42,0,0,34,0,0,0,200,0,0,0,30,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,42,0,0,20,0,0,0,34,0,0,0,80,0,0,0,100,0,0,0,126,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,42,0,0,6,0,0,0,14,1,0,0,74,0,0,0,214,0,0,0,4,0,0,0,2,0,0,0,32,0,0,0,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,152,42,0,0,112,1,0,0,38,0,0,0,56,0,0,0,2,0,0,0,30,0,0,0,162,0,0,0,2,0,0,0,6,0,0,0,2,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,168,42,0,0,156,0,0,0,2,0,0,0,2,0,0,0,16,0,0,0,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,42,0,0,54,1,0,0,70,1,0,0,24,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,200,42,0,0,52,0,0,0,182,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,216,42,0,0,146,0,0,0,62,1,0,0,26,0,0,0,8,0,0,0,98,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,232,42,0,0,118,1,0,0,6,1,0,0,14,0,0,0,2,0,0,0,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,0,0,88,0,0,0,224,0,0,0,32,0,0,0,36,0,0,0,40,0,0,0,20,0,0,0,74,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,43,0,0,120,1,0,0,218,0,0,0,20,0,0,0,6,0,0,0,108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,43,0,0,32,1,0,0,178,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,43,0,0,106,0,0,0,250,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,43,0,0,96,1,0,0,174,0,0,0,26,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,43,0,0,144,0,0,0,38,1,0,0,10,0,0,0,22,0,0,0,48,0,0,0,6,0,0,0,24,0,0,0,60,0,0,0,14,0,0,0,14,0,0,0,24,0,0,0,68,0,0,0,62,0,0,0,12,0,0,0,58,0,0,0,36,0,0,0,82,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,43,0,0,102,0,0,0,68,1,0,0,4,0,0,0,10,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,43,0,0,10,1,0,0,22,1,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,43,0,0,8,0,0,0,252,0,0,0,28,0,0,0,4,0,0,0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,43,0,0,58,1,0,0,26,0,0,0,40,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,43,0,0,52,1,0,0,104,1,0,0,22,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,43,0,0,84,1,0,0,238,0,0,0,52,0,0,0,70,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,43,0,0,40,1,0,0,74,1,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,43,0,0,80,0,0,0,26,1,0,0,58,0,0,0,60,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,56,0,0,0,4,0,0,0,2,0,0,0,4,0,0,0,6,0,0,0,34,0,0,0,6,0,0,0,86,0,0,0,38,0,0,0,42,0,0,0,28,0,0,0,38,0,0,0,12,0,0,0,78,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,0,0,242,0,0,0,132,0,0,0,96,0,0,0,22,0,0,0,30,0,0,0,86,1,0,0,14,0,0,0,60,0,0,0,70,0,0,0,78,0,0,0,176,0,0,0,50,0,0,0,2,0,0,0,68,0,0,0,40,0,0,0,106,0,0,0,10,0,0,0,38,0,0,0,44,0,0,0,154,0,0,0,42,0,0,0,56,0,0,0,104,0,0,0,70,0,0,0,64,0,0,0,8,0,0,0,34,0,0,0,36,0,0,0,54,0,0,0,210,0,0,0,74,0,0,0,8,0,0,0,26,0,0,0,46,0,0,0,14,0,0,0,10,0,0,0,8,0,0,0,94,0,0,0,94,0,0,0,16,0,0,0,18,0,0,0,62,0,0,0,66,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,44,0,0,66,1,0,0,82,0,0,0,16,0,0,0,12,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,44,0,0,48,0,0,0,232,0,0,0,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,44,0,0,18,0,0,0,18,1,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,44,0,0,42,1,0,0,110,0,0,0,10,0,0,0,52,0,0,0,2,0,0,0,32,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,44,0,0,4,1,0,0,172,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,44,0,0,254,0,0,0,16,1,0,0,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,152,44,0,0,186,0,0,0,208,0,0,0,58,0,0,0,60,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,56,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,6,0,0,0,34,0,0,0,6,0,0,0,86,0,0,0,38,0,0,0,2,0,0,0,2,0,0,0,38,0,0,0,12,0,0,0,78,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,168,44,0,0,46,1,0,0,36,0,0,0,8,0,0,0,2,0,0,0,12,0,0,0,100,0,0,0,8,0,0,0,16,0,0,0,44,0,0,0,44,0,0,0,16,0,0,0,48,0,0,0,26,0,0,0,70,0,0,0,12,0,0,0,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,44,0,0,216,0,0,0,114,1,0,0,20,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,44,0,0,24,0,0,0,140,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,216,44,0,0,138,0,0,0,2,1,0,0,10,0,0,0,6,0,0,0,2,0,0,0,32,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,232,44,0,0,136,0,0,0,170,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,44,0,0,230,0,0,0,108,1,0,0,10,0,0,0,80,0,0,0,2,0,0,0,32,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,45,0,0,54,0,0,0,0,1,0,0,2,0,0,0,92,0,0,0,2,0,0,0,32,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,45,0,0,70,0,0,0,212,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,45,0,0,28,1,0,0,60,1,0,0,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,45,0,0,20,0,0,0,118,0,0,0,24,1,0,0,30,0,0,0,76,0,0,0,22,0,0,0,54,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,45,0,0,194,0,0,0,134,0,0,0,68,0,0,0,16,0,0,0,252,255,255,255,80,45,0,0,130,0,0,0,108,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,45,0,0,16,0,0,0,222,0,0,0,34,0,0,0,50,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,45,0,0,12,0,0,0,110,1,0,0,52,0,0,0,70,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,45,0,0,116,0,0,0,160,0,0,0,38,0,0,0,14,0,0,0,88,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,45,0,0,66,0,0,0,188,0,0,0,2,0,0,0,58,0,0,0,12,0,0,0,54,0,0,0,8,0,0,0,12,0,0,0,56,0,0,0,62,0,0,0,68,0,0,0,84,0,0,0,48,0,0,0,76,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,176,45,0,0,128,0,0,0,106,1,0,0,96,0,0,0,22,0,0,0,30,0,0,0,78,0,0,0,14,0,0,0,60,0,0,0,8,0,0,0,24,0,0,0,176,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,45,0,0,226,0,0,0,72,1,0,0,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,208,45,0,0,166,0,0,0,50,0,0,0,66,0,0,0,60,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,56,0,0,0,2,0,0,0,18,0,0,0,4,0,0,0,6,0,0,0,34,0,0,0,6,0,0,0,86,0,0,0,38,0,0,0,6,0,0,0,50,0,0,0,38,0,0,0,42,0,0,0,12,0,0,0,2,0,0,0,50,0,0,0,4,0,0,0,20,0,0,0,30,0,0,0,28,0,0,0,6,0,0,0,2,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,45,0,0,120,0,0,0,10,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46,0,0,46,0,0,0,76,1,0,0,10,0,0,0,60,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,56,0,0,0,6,0,0,0,16,0,0,0,12,0,0,0,2,0,0,0,34,0,0,0,6,0,0,0,86,0,0,0,46,0,0,0,18,0,0,0,34,0,0,0,38,0,0,0,12,0,0,0,78,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,46,0,0,206,0,0,0,78,1,0,0,2,0,0,0,60,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,10,0,0,0,14,0,0,0,86,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,46,0,0,6,0,0,0,12,1,0,0,34,1,0,0,30,0,0,0,20,0,0,0,18,0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,46,0,0,148,0,0,0,86,0,0,0,48,0,0,0,60,0,0,0,4,0,0,0,2,0,0,0,64,0,0,0,56,0,0,0,8,0,0,0,72,0,0,0,2,0,0,0,6,0,0,0,34,0,0,0,6,0,0,0,86,0,0,0,72,0,0,0,64,0,0,0,46,0,0,0,38,0,0,0,46,0,0,0,8,0,0,0,2,0,0,0,22,0,0,0,38,0,0,0,18,0,0,0,54,0,0,0,52,0,0,0,62,0,0,0,4,0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,90,78,51,51,98,116,77,105,110,107,111,119,115,107,105,80,101,110,101,116,114,97,116,105,111,110,68,101,112,116,104,83,111,108,118,101,114,49,50,99,97,108,99,80,101,110,68,101,112,116,104,69,82,50,50,98,116,86,111,114,111,110,111,105,83,105,109,112,108,101,120,83,111,108,118,101,114,80,75,49,51,98,116,67,111,110,118,101,120,83,104,97,112,101,83,52,95,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,55,95,82,57,98,116,86,101,99,116,111,114,51,83,57,95,83,57,95,80,49,50,98,116,73,68,101,98,117,103,68,114,97,119,80,49,50,98,116,83,116,97,99,107,65,108,108,111,99,69,50,48,98,116,73,110,116,101,114,109,101,100,105,97,116,101,82,101,115,117,108,116,0,0,0,0,0,0,0,90,78,51,51,98,116,67,111,110,118,101,120,67,111,110,99,97,118,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,50,49,99,97,108,99,117,108,97,116,101,84,105,109,101,79,102,73,109,112,97,99,116,69,80,49,55,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,83,49,95,82,75,49,54,98,116,68,105,115,112,97,116,99,104,101,114,73,110,102,111,80,49,54,98,116,77,97,110,105,102,111,108,100,82,101,115,117,108,116,69,51,49,76,111,99,97,108,84,114,105,97,110,103,108,101,83,112,104,101,114,101,67,97,115,116,67,97,108,108,98,97,99,107,0,0,0,90,78,50,56,98,116,72,97,115,104,101,100,79,118,101,114,108,97,112,112,105,110,103,80,97,105,114,67,97,99,104,101,51,55,114,101,109,111,118,101,79,118,101,114,108,97,112,112,105,110,103,80,97,105,114,115,67,111,110,116,97,105,110,105,110,103,80,114,111,120,121,69,80,49,55,98,116,66,114,111,97,100,112,104,97,115,101,80,114,111,120,121,80,49,50,98,116,68,105,115,112,97,116,99,104,101,114,69,49,56,82,101,109,111,118,101,80,97,105,114,67,97,108,108,98,97,99,107,0,0,0,0,0,0,0,0,90,78,50,56,98,116,72,97,115,104,101,100,79,118,101,114,108,97,112,112,105,110,103,80,97,105,114,67,97,99,104,101,49,57,99,108,101,97,110,80,114,111,120,121,70,114,111,109,80,97,105,114,115,69,80,49,55,98,116,66,114,111,97,100,112,104,97,115,101,80,114,111,120,121,80,49,50,98,116,68,105,115,112,97,116,99,104,101,114,69,49,55,67,108,101,97,110,80,97,105,114,67,97,108,108,98,97,99,107,0,0,0,90,78,50,51,98,116,68,105,115,99,114,101,116,101,68,121,110,97,109,105,99,115,87,111,114,108,100,49,54,115,111,108,118,101,67,111,110,115,116,114,97,105,110,116,115,69,82,49,57,98,116,67,111,110,116,97,99,116,83,111,108,118,101,114,73,110,102,111,69,50,55,73,110,112,108,97,99,101,83,111,108,118,101,114,73,115,108,97,110,100,67,97,108,108,98,97,99,107,0,0,0,0,0,0,90,78,50,51,98,116,67,111,110,118,101,120,67,111,110,118,101,120,65,108,103,111,114,105,116,104,109,49,54,112,114,111,99,101,115,115,67,111,108,108,105,115,105,111,110,69,80,49,55,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,83,49,95,82,75,49,54,98,116,68,105,115,112,97,116,99,104,101,114,73,110,102,111,80,49,54,98,116,77,97,110,105,102,111,108,100,82,101,115,117,108,116,69,49,51,98,116,68,117,109,109,121,82,101,115,117,108,116,0,0,0,0,90,78,50,50,98,116,66,118,104,84,114,105,97,110,103,108,101,77,101,115,104,83,104,97,112,101,49,55,112,101,114,102,111,114,109,67,111,110,118,101,120,99,97,115,116,69,80,49,56,98,116,84,114,105,97,110,103,108,101,67,97,108,108,98,97,99,107,82,75,57,98,116,86,101,99,116,111,114,51,83,52,95,83,52,95,83,52,95,69,50,49,77,121,78,111,100,101,79,118,101,114,108,97,112,67,97,108,108,98,97,99,107,0,0,0,0,0,0,0,0,90,78,50,50,98,116,66,118,104,84,114,105,97,110,103,108,101,77,101,115,104,83,104,97,112,101,49,52,112,101,114,102,111,114,109,82,97,121,99,97,115,116,69,80,49,56,98,116,84,114,105,97,110,103,108,101,67,97,108,108,98,97,99,107,82,75,57,98,116,86,101,99,116,111,114,51,83,52,95,69,50,49,77,121,78,111,100,101,79,118,101,114,108,97,112,67,97,108,108,98,97,99,107,0,90,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,49,55,111,98,106,101,99,116,81,117,101,114,121,83,105,110,103,108,101,69,80,75,49,51,98,116,67,111,110,118,101,120,83,104,97,112,101,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,53,95,80,49,55,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,80,75,49,54,98,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,83,53,95,82,78,83,95,50,48,67,111,110,118,101,120,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,102,69,51,50,66,114,105,100,103,101,84,114,105,97,110,103,108,101,67,111,110,118,101,120,99,97,115,116,67,97,108,108,98,97,99,107,95,48,0,90,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,49,55,111,98,106,101,99,116,81,117,101,114,121,83,105,110,103,108,101,69,80,75,49,51,98,116,67,111,110,118,101,120,83,104,97,112,101,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,53,95,80,49,55,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,80,75,49,54,98,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,83,53,95,82,78,83,95,50,48,67,111,110,118,101,120,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,102,69,51,50,66,114,105,100,103,101,84,114,105,97,110,103,108,101,67,111,110,118,101,120,99,97,115,116,67,97,108,108,98,97,99,107,0,0,0,90,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,49,55,111,98,106,101,99,116,81,117,101,114,121,83,105,110,103,108,101,69,80,75,49,51,98,116,67,111,110,118,101,120,83,104,97,112,101,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,53,95,80,49,55,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,80,75,49,54,98,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,83,53,95,82,78,83,95,50,48,67,111,110,118,101,120,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,102,69,49,52,76,111,99,97,108,73,110,102,111,65,100,100,101,114,95,49,0,0,0,90,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,49,51,114,97,121,84,101,115,116,83,105,110,103,108,101,69,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,50,95,80,49,55,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,80,75,49,54,98,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,83,50,95,82,78,83,95,49,55,82,97,121,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,69,57,82,97,121,84,101,115,116,101,114,95,49,0,0,90,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,49,51,114,97,121,84,101,115,116,83,105,110,103,108,101,69,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,50,95,80,49,55,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,80,75,49,54,98,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,83,50,95,82,78,83,95,49,55,82,97,121,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,69,50,57,66,114,105,100,103,101,84,114,105,97,110,103,108,101,82,97,121,99,97,115,116,67,97,108,108,98,97,99,107,95,48,0,0,0,0,0,90,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,49,51,114,97,121,84,101,115,116,83,105,110,103,108,101,69,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,50,95,80,49,55,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,80,75,49,54,98,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,83,50,95,82,78,83,95,49,55,82,97,121,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,69,50,57,66,114,105,100,103,101,84,114,105,97,110,103,108,101,82,97,121,99,97,115,116,67,97,108,108,98,97,99,107,0,0,0,0,0,0,0,90,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,49,51,114,97,121,84,101,115,116,83,105,110,103,108,101,69,82,75,49,49,98,116,84,114,97,110,115,102,111,114,109,83,50,95,80,49,55,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,80,75,49,54,98,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,83,50,95,82,78,83,95,49,55,82,97,121,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,69,49,53,76,111,99,97,108,73,110,102,111,65,100,100,101,114,50,0,0,0,0,0,83,116,57,116,121,112,101,95,105,110,102,111,0,0,0,0,83,116,57,101,120,99,101,112,116,105,111,110,0,0,0,0,83,116,57,98,97,100,95,97,108,108,111,99,0,0,0,0,78,54,98,116,68,98,118,116,56,73,67,111,108,108,105,100,101,69,0,0,0,0,0,0,78,51,54,98,116,68,105,115,99,114,101,116,101,67,111,108,108,105,115,105,111,110,68,101,116,101,99,116,111,114,73,110,116,101,114,102,97,99,101,54,82,101,115,117,108,116,69,0,78,51,52,98,116,83,112,104,101,114,101,84,114,105,97,110,103,108,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,0,0,78,51,51,98,116,67,111,110,118,101,120,67,111,110,99,97,118,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,55,83,119,97,112,112,101,100,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,0,0,0,0,78,51,51,98,116,67,111,110,118,101,120,67,111,110,99,97,118,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,0,0,0,78,51,50,98,116,83,112,104,101,114,101,83,112,104,101,114,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,0,0,0,0,78,51,49,98,116,67,111,110,118,101,120,80,108,97,110,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,78,50,56,98,116,67,111,109,112,111,117,110,100,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,55,83,119,97,112,112,101,100,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,0,78,50,56,98,116,67,111,109,112,111,117,110,100,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,78,50,54,98,116,66,111,120,66,111,120,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,0,0,78,50,53,98,116,83,105,109,117,108,97,116,105,111,110,73,115,108,97,110,100,77,97,110,97,103,101,114,49,52,73,115,108,97,110,100,67,97,108,108,98,97,99,107,69,0,0,0,78,50,51,98,116,67,111,110,118,101,120,67,111,110,118,101,120,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,78,49,54,98,116,69,109,112,116,121,65,108,103,111,114,105,116,104,109,49,48,67,114,101,97,116,101,70,117,110,99,69,0,0,0,0,0,0,0,0,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,50,55,67,108,111,115,101,115,116,67,111,110,118,101,120,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,0,0,0,0,0,0,0,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,50,48,67,111,110,118,101,120,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,0,0,0,0,0,0,78,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,49,55,82,97,121,82,101,115,117,108,116,67,97,108,108,98,97,99,107,69,0,78,49,50,98,116,67,111,110,118,101,120,67,97,115,116,49,48,67,97,115,116,82,101,115,117,108,116,69,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,49,95,95,118,109,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,0,51,54,98,116,68,105,115,99,114,101,116,101,67,111,108,108,105,115,105,111,110,68,101,116,101,99,116,111,114,73,110,116,101,114,102,97,99,101,0,0,51,53,98,116,83,101,113,117,101,110,116,105,97,108,73,109,112,117,108,115,101,67,111,110,115,116,114,97,105,110,116,83,111,108,118,101,114,0,0,0,51,52,98,116,83,112,104,101,114,101,84,114,105,97,110,103,108,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,0,0,51,52,98,116,67,108,111,115,101,115,116,78,111,116,77,101,67,111,110,118,101,120,82,101,115,117,108,116,67,97,108,108,98,97,99,107,0,0,0,0,51,51,98,116,77,105,110,107,111,119,115,107,105,80,101,110,101,116,114,97,116,105,111,110,68,101,112,116,104,83,111,108,118,101,114,0,0,0,0,0,51,51,98,116,67,111,110,118,101,120,67,111,110,99,97,118,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,0,0,0,51,50,98,116,83,112,104,101,114,101,83,112,104,101,114,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,0,0,0,0,51,49,98,116,73,110,116,101,114,110,97,108,84,114,105,97,110,103,108,101,73,110,100,101,120,67,97,108,108,98,97,99,107,0,0,0,0,0,0,0,51,49,98,116,68,101,102,97,117,108,116,67,111,108,108,105,115,105,111,110,67,111,110,102,105,103,117,114,97,116,105,111,110,0,0,0,0,0,0,0,51,49,98,116,67,111,110,118,101,120,80,108,97,110,101,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,0,0,0,0,0,51,48,98,116,71,106,107,69,112,97,80,101,110,101,116,114,97,116,105,111,110,68,101,112,116,104,83,111,108,118,101,114,0,0,0,0,0,0,0,0,51,48,98,116,67,111,110,118,101,120,80,101,110,101,116,114,97,116,105,111,110,68,101,112,116,104,83,111,108,118,101,114,0,0,0,0,0,0,0,0,51,48,98,116,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,67,114,101,97,116,101,70,117,110,99,0,0,0,0,0,0,0,0,51,48,98,116,65,99,116,105,118,97,116,105,110,103,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,0,0,0,0,0,0,50,56,98,116,84,114,105,97,110,103,108,101,67,111,110,118,101,120,99,97,115,116,67,97,108,108,98,97,99,107,0,0,50,56,98,116,72,97,115,104,101,100,79,118,101,114,108,97,112,112,105,110,103,80,97,105,114,67,97,99,104,101,0,0,50,56,98,116,67,111,109,112,111,117,110,100,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,50,55,98,116,67,111,110,116,105,110,117,111,117,115,67,111,110,118,101,120,67,111,108,108,105,115,105,111,110,0,0,0,50,54,98,116,66,111,120,66,111,120,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,0,0,50,53,98,116,84,114,105,97,110,103,108,101,82,97,121,99,97,115,116,67,97,108,108,98,97,99,107,0,0,0,0,0,50,53,98,116,83,105,109,117,108,97,116,105,111,110,73,115,108,97,110,100,77,97,110,97,103,101,114,0,0,0,0,0,50,53,98,116,79,118,101,114,108,97,112,112,105,110,103,80,97,105,114,67,97,108,108,98,97,99,107,0,0,0,0,0,50,52,98,116,80,101,114,116,117,114,98,101,100,67,111,110,116,97,99,116,82,101,115,117,108,116,0,0,0,0,0,0,50,52,98,116,67,111,110,118,101,120,84,114,105,97,110,103,108,101,67,97,108,108,98,97,99,107,0,0,0,0,0,0,50,52,98,116,67,111,108,108,105,115,105,111,110,67,111,110,102,105,103,117,114,97,116,105,111,110,0,0,0,0,0,0,50,52,98,116,66,114,111,97,100,112,104,97,115,101,65,97,98,98,67,97,108,108,98,97,99,107,0,0,0,0,0,0,50,51,98,116,80,111,108,121,104,101,100,114,97,108,67,111,110,118,101,120,83,104,97,112,101,0,0,0,0,0,0,0,50,51,98,116,68,105,115,99,114,101,116,101,68,121,110,97,109,105,99,115,87,111,114,108,100,0,0,0,0,0,0,0,50,51,98,116,67,111,110,118,101,120,67,111,110,118,101,120,65,108,103,111,114,105,116,104,109,0,0,0,0,0,0,0,50,51,98,116,67,111,108,108,105,115,105,111,110,80,97,105,114,67,97,108,108,98,97,99,107,0,0,0,0,0,0,0,50,51,98,116,66,114,111,97,100,112,104,97,115,101,82,97,121,67,97,108,108,98,97,99,107,0,0,0,0,0,0,0,50,50,98,116,83,117,98,115,105,109,112,108,101,120,67,111,110,118,101,120,67,97,115,116,0,0,0,0,0,0,0,0,50,50,98,116,79,118,101,114,108,97,112,112,105,110,103,80,97,105,114,67,97,99,104,101,0,0,0,0,0,0,0,0,50,50,98,116,67,111,109,112,111,117,110,100,76,101,97,102,67,97,108,108,98,97,99,107,0,0,0,0,0,0,0,0,50,50,83,112,104,101,114,101,84,114,105,97,110,103,108,101,68,101,116,101,99,116,111,114,0,0,0,0,0,0,0,0,50,49,98,116,83,105,110,103,108,101,83,119,101,101,112,67,97,108,108,98,97,99,107,0,50,49,98,116,78,111,100,101,79,118,101,114,108,97,112,67,97,108,108,98,97,99,107,0,50,49,98,116,67,111,110,118,101,120,73,110,116,101,114,110,97,108,83,104,97,112,101,0,50,49,98,116,67,111,108,108,105,115,105,111,110,68,105,115,112,97,116,99,104,101,114,0,50,49,98,116,66,114,111,97,100,112,104,97,115,101,73,110,116,101,114,102,97,99,101,0,50,48,98,116,68,101,102,97,117,108,116,77,111,116,105,111,110,83,116,97,116,101,0,0,50,48,98,116,67,111,108,108,105,115,105,111,110,65,108,103,111,114,105,116,104,109,0,0,50,48,66,114,111,97,100,112,104,97,115,101,65,97,98,98,84,101,115,116,101,114,0,0,49,57,98,116,83,105,110,103,108,101,82,97,121,67,97,108,108,98,97,99,107,0,0,0,49,57,66,114,111,97,100,112,104,97,115,101,82,97,121,84,101,115,116,101,114,0,0,0,49,56,98,116,84,114,105,97,110,103,108,101,67,97,108,108,98,97,99,107,0,0,0,0,49,56,98,116,68,98,118,116,84,114,101,101,67,111,108,108,105,100,101,114,0,0,0,0,49,56,98,116,67,111,110,118,101,120,80,111,108,121,104,101,100,114,111,110,0,0,0,0,49,56,98,116,67,111,110,115,116,114,97,105,110,116,83,111,108,118,101,114,0,0,0,0,49,55,98,116,79,118,101,114,108,97,112,67,97,108,108,98,97,99,107,0,0,0,0,0,49,55,98,116,71,106,107,80,97,105,114,68,101,116,101,99,116,111,114,0,0,0,0,0,49,55,98,116,67,111,108,108,105,115,105,111,110,79,98,106,101,99,116,0,0,0,0,0,49,55,68,101,98,117,103,68,114,97,119,99,97,108,108,98,97,99,107,0,0,0,0,0,49,54,98,116,80,111,105,110,116,67,111,108,108,101,99,116,111,114,0,0,0,0,0,0,49,54,98,116,77,97,110,105,102,111,108,100,82,101,115,117,108,116,0,0,0,0,0,0,49,54,98,116,69,109,112,116,121,65,108,103,111,114,105,116,104,109,0,0,0,0,0,0,49,54,98,116,68,98,118,116,66,114,111,97,100,112,104,97,115,101,0,0,0,0,0,0,49,54,98,116,67,111,108,108,105,115,105,111,110,87,111,114,108,100,0,0,0,0,0,0,49,54,98,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,0,0,0,0,0,0,49,54,98,116,66,111,120,66,111,120,68,101,116,101,99,116,111,114,0,0,0,0,0,0,49,53,98,116,84,114,105,97,110,103,108,101,83,104,97,112,101,0,0,0,0,0,0,0,49,53,98,116,71,106,107,67,111,110,118,101,120,67,97,115,116,0,0,0,0,0,0,0,49,53,98,116,68,121,110,97,109,105,99,115,87,111,114,108,100,0,0,0,0,0,0,0,49,51,98,116,83,112,104,101,114,101,83,104,97,112,101,0,49,51,98,116,77,111,116,105].concat([111,110,83,116,97,116,101,0,49,51,98,116,67,111,110,118,101,120,83,104,97,112,101,0,49,50,98,116,68,105,115,112,97,116,99,104,101,114,0,0,49,50,98,116,67,111,110,118,101,120,67,97,115,116,0,0,49,49,98,116,82,105,103,105,100,66,111,100,121,0,0,0,49,48,98,116,66,111,120,83,104,97,112,101,0,0,0,0,0,0,0,0,248,19,0,0,120,41,0,0,0,0,0,0,0,0,0,0,184,20,0,0,8,45,0,0,0,0,0,0,0,0,0,0,88,21,0,0,48,45,0,0,0,0,0,0,0,0,0,0,224,21,0,0,48,45,0,0,0,0,0,0,0,0,0,0,80,22,0,0,0,42,0,0,0,0,0,0,0,0,0,0,184,22,0,0,120,41,0,0,0,0,0,0,0,0,0,0,56,23,0,0,144,44,0,0,0,0,0,0,0,0,0,0,176,23,0,0,144,44,0,0,0,0,0,0,0,0,0,0,24,24,0,0,80,43,0,0,0,0,0,0,0,0,0,0,208,24,0,0,80,43,0,0,0,0,0,0,0,0,0,0,136,25,0,0,56,42,0,0,0,0,0,0,0,0,0,0,48,26,0,0,112,41,0,0,0,0,0,0,0,0,0,0,184,26,0,0,160,43,0,0,0,0,0,0,0,0,0,0,88,27,0,0,160,43,0,0,0,0,0,0,0,0,0,0,248,27,0,0,64,42,0,0,0,0,0,0,0,0,0,0,136,28,0,0,0,0,0,0,152,28,0,0,0,0,0,0,168,28,0,0,88,41,0,0,0,0,0,0,0,0,0,0,184,28,0,0,0,0,0,0,208,28,0,0,0,0,0,0,0,29,0,0,56,43,0,0,0,0,0,0,0,0,0,0,56,29,0,0,56,43,0,0,0,0,0,0,0,0,0,0,120,29,0,0,56,43,0,0,0,0,0,0,0,0,0,0,176,29,0,0,56,43,0,0,0,0,0,0,0,0,0,0,232,29,0,0,56,43,0,0,0,0,0,0,0,0,0,0,24,30,0,0,56,43,0,0,0,0,0,0,0,0,0,0,80,30,0,0,56,43,0,0,0,0,0,0,0,0,0,0,128,30,0,0,56,43,0,0,0,0,0,0,0,0,0,0,176,30,0,0,0,0,0,0,224,30,0,0,56,43,0,0,0,0,0,0,0,0,0,0,8,31,0,0,56,43,0,0,0,0,0,0,0,0,0,0,48,31,0,0,56,42,0,0,0,0,0,0,0,0,0,0,104,31,0,0,0,0,0,0,152,31,0,0,0,0,0,0,192,31,0,0,0,0,0,0,224,31,0,0,112,42,0,0,0,0,0,0,0,0,0,0,8,32,0,0,112,42,0,0,0,0,0,0,0,0,0,0,48,32,0,0,128,42,0,0,0,0,0,0,0,0,0,0,88,32,0,0,80,41,0,0,0,0,0,0,0,0,0,0,128,32,0,0,0,0,0,0,168,32,0,0,40,45,0,0,0,0,0,0,0,0,0,0,208,32,0,0,64,43,0,0,0,0,0,0,0,0,0,0,248,32,0,0,40,42,0,0,0,0,0,0,0,0,0,0,32,33,0,0,48,43,0,0,0,0,0,0,0,0,0,0,72,33,0,0,64,43,0,0,0,0,0,0,0,0,0,0,112,33,0,0,64,43,0,0,0,0,0,0,0,0,0,0,152,33,0,0,0,0,0,0,192,33,0,0,224,43,0,0,0,0,0,0,0,0,0,0,232,33,0,0,208,44,0,0,0,0,0,0,0,0,0,0,16,34,0,0,48,43,0,0,0,0,0,0,0,0,0,0,56,34,0,0,0,0,0,0,96,34,0,0,0,0,0,0,136,34,0,0,208,44,0,0,0,0,0,0,0,0,0,0,176,34,0,0,8,45,0,0,0,0,0,0,0,0,0,0,208,34,0,0,80,44,0,0,0,0,0,0,0,0,0,0,240,34,0,0,64,43,0,0,0,0,0,0,0,0,0,0,16,35,0,0,48,46,0,0,0,0,0,0,0,0,0,0,48,35,0,0,64,43,0,0,0,0,0,0,0,0,0,0,80,35,0,0,8,45,0,0,0,0,0,0,0,0,0,0,112,35,0,0,0,0,0,0,144,35,0,0,0,0,0,0,176,35,0,0,128,45,0,0,0,0,0,0,0,0,0,0,208,35,0,0,8,45,0,0,0,0,0,0,0,0,0,0,240,35,0,0,0,0,0,0,16,36,0,0,0,0,0,0,48,36,0,0,152,44,0,0,0,0,0,0,0,0,0,0,80,36,0,0,240,45,0,0,0,0,0,0,0,0,0,0,112,36,0,0,64,43,0,0,0,0,0,0,0,0,0,0,144,36,0,0,48,45,0,0,0,0,0,0,0,0,0,0,176,36,0,0,232,43,0,0,0,0,0,0,0,0,0,0,208,36,0,0,48,46,0,0,0,0,0,0,0,0,0,0,240,36,0,0,184,43,0,0,0,0,0,0,0,0,0,0,16,37,0,0,112,41,0,0,0,0,0,0,0,0,0,0,48,37,0,0,144,42,0,0,0,0,0,0,0,0,0,0,80,37,0,0,48,44,0,0,0,0,0,0,0,0,0,0,104,37,0,0,0,0,0,0,128,37,0,0,24,46,0,0,0,0,0,0,0,0,0,0,152,37,0,0,40,46,0,0,0,0,0,0,0,0,0,0,176,37,0,0,0,0,0,0,200,37,0,0,16,46,0,0,0,0,0,0,0,0,0,0,224,37,0,0,0,0,0,0,248,37,0,0,112,41,0,0,0,0,0,0,0,0,0,0,16,38,0,0,48,44,0,0,0,0,0,0,0,0,0,0,40,38,0,0,112,41,0,0,0,0,0,0,0,0,0,0,64,38,0,0,0,0,0,0,88,38,0,0,112,41,0,0,0,0,0,0,0,0,0,0,112,38,0,0,0,0,0,0,136,38,0,0,0,0,0,0,160,38,0,0,0,0,0,0,184,38,0,0,144,42,0,0,0,0,0,0,0,0,0,0,208,38,0,0,16,9,0,0,232,38,0,0,0,0,0,0,2,0,0,0,8,45,0,0,2,0,0,0,248,42,0,0,2,4,0,0,0,0,0,0,0,39,0,0,120,41,0,0,0,0,0,0,0,0,0,0,24,39,0,0,120,41,0,0,0,0,0,0,0,0,0,0,48,39,0,0,208,44,0,0,0,0,0,0,0,0,0,0,72,39,0,0,184,44,0,0,0,0,0,0,0,0,0,0,96,39,0,0,0,0,0,0,120,39,0,0,0,0,0,0,144,39,0,0,144,42,0,0,0,0,0,0,0,0,0,0,168,39,0,0,240,43,0,0,0,0,0,0,0,0,0,0,192,39,0,0,48,46,0,0,0,0,0,0,0,0,0,0,216,39,0,0,176,45,0,0,0,0,0,0,0,0,0,0,240,39,0,0,152,44,0,0,0,0,0,0,0,0,0,0,0,40,0,0,0,0,0,0,16,40,0,0,184,45,0,0,0,0,0,0,0,0,0,0,32,40,0,0,0,0,0,0,48,40,0,0,0,0,0,0,64,40,0,0,72,45,0,0,0,0,0,0,0,0,0,0,80,40,0,0,240,43,0,0,0,0,0,0,176,55,0,0,0,0,0,0,44,1,0,0,0,0,0,0,4,0,0,0,0,0,0,0,164,0,0,0,0,0,0,0,78,0,0,0,0,0,0,0])
   986 , "i8", ALLOC_NONE, Runtime.GLOBAL_BASE)
   987 var tempDoublePtr = Runtime.alignMemory(allocate(12, "i8", ALLOC_STATIC), 8);
   988 assert(tempDoublePtr % 8 == 0);
   989 function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much
   990   HEAP8[tempDoublePtr] = HEAP8[ptr];
   991   HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];
   992   HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];
   993   HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];
   994 }
   995 function copyTempDouble(ptr) {
   996   HEAP8[tempDoublePtr] = HEAP8[ptr];
   997   HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];
   998   HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];
   999   HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];
  1000   HEAP8[tempDoublePtr+4] = HEAP8[ptr+4];
  1001   HEAP8[tempDoublePtr+5] = HEAP8[ptr+5];
  1002   HEAP8[tempDoublePtr+6] = HEAP8[ptr+6];
  1003   HEAP8[tempDoublePtr+7] = HEAP8[ptr+7];
  1005   function ___gxx_personality_v0() {
  1007   function __exit(status) {
  1008       // void _exit(int status);
  1009       // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html
  1010       Module.print('exit(' + status + ') called');
  1011       Module['exit'](status);
  1012     }function _exit(status) {
  1013       __exit(status);
  1014     }function __ZSt9terminatev() {
  1015       _exit(-1234);
  1017   var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:35,EIDRM:36,ECHRNG:37,EL2NSYNC:38,EL3HLT:39,EL3RST:40,ELNRNG:41,EUNATCH:42,ENOCSI:43,EL2HLT:44,EDEADLK:45,ENOLCK:46,EBADE:50,EBADR:51,EXFULL:52,ENOANO:53,EBADRQC:54,EBADSLT:55,EDEADLOCK:56,EBFONT:57,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:74,EDOTDOT:76,EBADMSG:77,ENOTUNIQ:80,EBADFD:81,EREMCHG:82,ELIBACC:83,ELIBBAD:84,ELIBSCN:85,ELIBMAX:86,ELIBEXEC:87,ENOSYS:88,ENOTEMPTY:90,ENAMETOOLONG:91,ELOOP:92,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:106,EPROTOTYPE:107,ENOTSOCK:108,ENOPROTOOPT:109,ESHUTDOWN:110,ECONNREFUSED:111,EADDRINUSE:112,ECONNABORTED:113,ENETUNREACH:114,ENETDOWN:115,ETIMEDOUT:116,EHOSTDOWN:117,EHOSTUNREACH:118,EINPROGRESS:119,EALREADY:120,EDESTADDRREQ:121,EMSGSIZE:122,EPROTONOSUPPORT:123,ESOCKTNOSUPPORT:124,EADDRNOTAVAIL:125,ENETRESET:126,EISCONN:127,ENOTCONN:128,ETOOMANYREFS:129,EUSERS:131,EDQUOT:132,ESTALE:133,ENOTSUP:134,ENOMEDIUM:135,EILSEQ:138,EOVERFLOW:139,ECANCELED:140,ENOTRECOVERABLE:141,EOWNERDEAD:142,ESTRPIPE:143};
  1018   var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"No message of desired type",36:"Identifier removed",37:"Channel number out of range",38:"Level 2 not synchronized",39:"Level 3 halted",40:"Level 3 reset",41:"Link number out of range",42:"Protocol driver not attached",43:"No CSI structure available",44:"Level 2 halted",45:"Deadlock condition",46:"No record locks available",50:"Invalid exchange",51:"Invalid request descriptor",52:"Exchange full",53:"No anode",54:"Invalid request code",55:"Invalid slot",56:"File locking deadlock error",57:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",74:"Multihop attempted",76:"Cross mount point (not really error)",77:"Trying to read unreadable message",80:"Given log. name not unique",81:"f.d. invalid for this operation",82:"Remote address changed",83:"Can   access a needed shared lib",84:"Accessing a corrupted shared lib",85:".lib section in a.out corrupted",86:"Attempting to link in too many libs",87:"Attempting to exec a shared library",88:"Function not implemented",90:"Directory not empty",91:"File or path name too long",92:"Too many symbolic links",95:"Operation not supported on transport endpoint",96:"Protocol family not supported",104:"Connection reset by peer",105:"No buffer space available",106:"Address family not supported by protocol family",107:"Protocol wrong type for socket",108:"Socket operation on non-socket",109:"Protocol not available",110:"Can't send after socket shutdown",111:"Connection refused",112:"Address already in use",113:"Connection aborted",114:"Network is unreachable",115:"Network interface is not configured",116:"Connection timed out",117:"Host is down",118:"Host is unreachable",119:"Connection already in progress",120:"Socket already connected",121:"Destination address required",122:"Message too long",123:"Unknown protocol",124:"Socket type not supported",125:"Address not available",126:"Connection reset by network",127:"Socket is already connected",128:"Socket is not connected",129:"Too many references",131:"Too many users",132:"Quota exceeded",133:"Stale file handle",134:"Not supported",135:"No medium (in tape drive)",138:"Illegal byte sequence",139:"Value too large for defined data type",140:"Operation canceled",141:"State not recoverable",142:"Previous owner died",143:"Streams pipe error"};
  1019   var ___errno_state=0;function ___setErrNo(value) {
  1020       // For convenient setting and returning of errno.
  1021       HEAP32[((___errno_state)>>2)]=value
  1022       return value;
  1024   var VFS=undefined;
  1025   var PATH={splitPath:function (filename) {
  1026         var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
  1027         return splitPathRe.exec(filename).slice(1);
  1028       },normalizeArray:function (parts, allowAboveRoot) {
  1029         // if the path tries to go above the root, `up` ends up > 0
  1030         var up = 0;
  1031         for (var i = parts.length - 1; i >= 0; i--) {
  1032           var last = parts[i];
  1033           if (last === '.') {
  1034             parts.splice(i, 1);
  1035           } else if (last === '..') {
  1036             parts.splice(i, 1);
  1037             up++;
  1038           } else if (up) {
  1039             parts.splice(i, 1);
  1040             up--;
  1043         // if the path is allowed to go above the root, restore leading ..s
  1044         if (allowAboveRoot) {
  1045           for (; up--; up) {
  1046             parts.unshift('..');
  1049         return parts;
  1050       },normalize:function (path) {
  1051         var isAbsolute = path.charAt(0) === '/',
  1052             trailingSlash = path.substr(-1) === '/';
  1053         // Normalize the path
  1054         path = PATH.normalizeArray(path.split('/').filter(function(p) {
  1055           return !!p;
  1056         }), !isAbsolute).join('/');
  1057         if (!path && !isAbsolute) {
  1058           path = '.';
  1060         if (path && trailingSlash) {
  1061           path += '/';
  1063         return (isAbsolute ? '/' : '') + path;
  1064       },dirname:function (path) {
  1065         var result = PATH.splitPath(path),
  1066             root = result[0],
  1067             dir = result[1];
  1068         if (!root && !dir) {
  1069           // No dirname whatsoever
  1070           return '.';
  1072         if (dir) {
  1073           // It has a dirname, strip trailing slash
  1074           dir = dir.substr(0, dir.length - 1);
  1076         return root + dir;
  1077       },basename:function (path, ext) {
  1078         // EMSCRIPTEN return '/'' for '/', not an empty string
  1079         if (path === '/') return '/';
  1080         var f = PATH.splitPath(path)[2];
  1081         if (ext && f.substr(-1 * ext.length) === ext) {
  1082           f = f.substr(0, f.length - ext.length);
  1084         return f;
  1085       },extname:function (path) {
  1086         return PATH.splitPath(path)[3];
  1087       },join:function () {
  1088         var paths = Array.prototype.slice.call(arguments, 0);
  1089         return PATH.normalize(paths.filter(function(p, index) {
  1090           if (typeof p !== 'string') {
  1091             throw new TypeError('Arguments to path.join must be strings');
  1093           return p;
  1094         }).join('/'));
  1095       },resolve:function () {
  1096         var resolvedPath = '',
  1097           resolvedAbsolute = false;
  1098         for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
  1099           var path = (i >= 0) ? arguments[i] : FS.cwd();
  1100           // Skip empty and invalid entries
  1101           if (typeof path !== 'string') {
  1102             throw new TypeError('Arguments to path.resolve must be strings');
  1103           } else if (!path) {
  1104             continue;
  1106           resolvedPath = path + '/' + resolvedPath;
  1107           resolvedAbsolute = path.charAt(0) === '/';
  1109         // At this point the path should be resolved to a full absolute path, but
  1110         // handle relative paths to be safe (might happen when process.cwd() fails)
  1111         resolvedPath = PATH.normalizeArray(resolvedPath.split('/').filter(function(p) {
  1112           return !!p;
  1113         }), !resolvedAbsolute).join('/');
  1114         return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
  1115       },relative:function (from, to) {
  1116         from = PATH.resolve(from).substr(1);
  1117         to = PATH.resolve(to).substr(1);
  1118         function trim(arr) {
  1119           var start = 0;
  1120           for (; start < arr.length; start++) {
  1121             if (arr[start] !== '') break;
  1123           var end = arr.length - 1;
  1124           for (; end >= 0; end--) {
  1125             if (arr[end] !== '') break;
  1127           if (start > end) return [];
  1128           return arr.slice(start, end - start + 1);
  1130         var fromParts = trim(from.split('/'));
  1131         var toParts = trim(to.split('/'));
  1132         var length = Math.min(fromParts.length, toParts.length);
  1133         var samePartsLength = length;
  1134         for (var i = 0; i < length; i++) {
  1135           if (fromParts[i] !== toParts[i]) {
  1136             samePartsLength = i;
  1137             break;
  1140         var outputParts = [];
  1141         for (var i = samePartsLength; i < fromParts.length; i++) {
  1142           outputParts.push('..');
  1144         outputParts = outputParts.concat(toParts.slice(samePartsLength));
  1145         return outputParts.join('/');
  1146       }};
  1147   var TTY={ttys:[],init:function () {
  1148         // https://github.com/kripken/emscripten/pull/1555
  1149         // if (ENVIRONMENT_IS_NODE) {
  1150         //   // currently, FS.init does not distinguish if process.stdin is a file or TTY
  1151         //   // device, it always assumes it's a TTY device. because of this, we're forcing
  1152         //   // process.stdin to UTF8 encoding to at least make stdin reading compatible
  1153         //   // with text files until FS.init can be refactored.
  1154         //   process['stdin']['setEncoding']('utf8');
  1155         // }
  1156       },shutdown:function () {
  1157         // https://github.com/kripken/emscripten/pull/1555
  1158         // if (ENVIRONMENT_IS_NODE) {
  1159         //   // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)?
  1160         //   // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation
  1161         //   // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists?
  1162         //   // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle
  1163         //   // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call
  1164         //   process['stdin']['pause']();
  1165         // }
  1166       },register:function (dev, ops) {
  1167         TTY.ttys[dev] = { input: [], output: [], ops: ops };
  1168         FS.registerDevice(dev, TTY.stream_ops);
  1169       },stream_ops:{open:function (stream) {
  1170           var tty = TTY.ttys[stream.node.rdev];
  1171           if (!tty) {
  1172             throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
  1174           stream.tty = tty;
  1175           stream.seekable = false;
  1176         },close:function (stream) {
  1177           // flush any pending line data
  1178           if (stream.tty.output.length) {
  1179             stream.tty.ops.put_char(stream.tty, 10);
  1181         },read:function (stream, buffer, offset, length, pos /* ignored */) {
  1182           if (!stream.tty || !stream.tty.ops.get_char) {
  1183             throw new FS.ErrnoError(ERRNO_CODES.ENXIO);
  1185           var bytesRead = 0;
  1186           for (var i = 0; i < length; i++) {
  1187             var result;
  1188             try {
  1189               result = stream.tty.ops.get_char(stream.tty);
  1190             } catch (e) {
  1191               throw new FS.ErrnoError(ERRNO_CODES.EIO);
  1193             if (result === undefined && bytesRead === 0) {
  1194               throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
  1196             if (result === null || result === undefined) break;
  1197             bytesRead++;
  1198             buffer[offset+i] = result;
  1200           if (bytesRead) {
  1201             stream.node.timestamp = Date.now();
  1203           return bytesRead;
  1204         },write:function (stream, buffer, offset, length, pos) {
  1205           if (!stream.tty || !stream.tty.ops.put_char) {
  1206             throw new FS.ErrnoError(ERRNO_CODES.ENXIO);
  1208           for (var i = 0; i < length; i++) {
  1209             try {
  1210               stream.tty.ops.put_char(stream.tty, buffer[offset+i]);
  1211             } catch (e) {
  1212               throw new FS.ErrnoError(ERRNO_CODES.EIO);
  1215           if (length) {
  1216             stream.node.timestamp = Date.now();
  1218           return i;
  1219         }},default_tty_ops:{get_char:function (tty) {
  1220           if (!tty.input.length) {
  1221             var result = null;
  1222             if (ENVIRONMENT_IS_NODE) {
  1223               result = process['stdin']['read']();
  1224               if (!result) {
  1225                 if (process['stdin']['_readableState'] && process['stdin']['_readableState']['ended']) {
  1226                   return null;  // EOF
  1228                 return undefined;  // no data available
  1230             } else if (typeof window != 'undefined' &&
  1231               typeof window.prompt == 'function') {
  1232               // Browser.
  1233               result = window.prompt('Input: ');  // returns null on cancel
  1234               if (result !== null) {
  1235                 result += '\n';
  1237             } else if (typeof readline == 'function') {
  1238               // Command line.
  1239               result = readline();
  1240               if (result !== null) {
  1241                 result += '\n';
  1244             if (!result) {
  1245               return null;
  1247             tty.input = intArrayFromString(result, true);
  1249           return tty.input.shift();
  1250         },put_char:function (tty, val) {
  1251           if (val === null || val === 10) {
  1252             Module['print'](tty.output.join(''));
  1253             tty.output = [];
  1254           } else {
  1255             tty.output.push(TTY.utf8.processCChar(val));
  1257         }},default_tty1_ops:{put_char:function (tty, val) {
  1258           if (val === null || val === 10) {
  1259             Module['printErr'](tty.output.join(''));
  1260             tty.output = [];
  1261           } else {
  1262             tty.output.push(TTY.utf8.processCChar(val));
  1264         }}};
  1265   var MEMFS={CONTENT_OWNING:1,CONTENT_FLEXIBLE:2,CONTENT_FIXED:3,ensureFlexible:function (node) {
  1266         if (node.contentMode !== MEMFS.CONTENT_FLEXIBLE) {
  1267           var contents = node.contents;
  1268           node.contents = Array.prototype.slice.call(contents);
  1269           node.contentMode = MEMFS.CONTENT_FLEXIBLE;
  1271       },mount:function (mount) {
  1272         return MEMFS.create_node(null, '/', 0040000 | 0777, 0);
  1273       },create_node:function (parent, name, mode, dev) {
  1274         if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {
  1275           // no supported
  1276           throw new FS.ErrnoError(ERRNO_CODES.EPERM);
  1278         var node = FS.createNode(parent, name, mode, dev);
  1279         if (FS.isDir(node.mode)) {
  1280           node.node_ops = {
  1281             getattr: MEMFS.node_ops.getattr,
  1282             setattr: MEMFS.node_ops.setattr,
  1283             lookup: MEMFS.node_ops.lookup,
  1284             mknod: MEMFS.node_ops.mknod,
  1285             mknod: MEMFS.node_ops.mknod,
  1286             rename: MEMFS.node_ops.rename,
  1287             unlink: MEMFS.node_ops.unlink,
  1288             rmdir: MEMFS.node_ops.rmdir,
  1289             readdir: MEMFS.node_ops.readdir,
  1290             symlink: MEMFS.node_ops.symlink
  1291           };
  1292           node.stream_ops = {
  1293             llseek: MEMFS.stream_ops.llseek
  1294           };
  1295           node.contents = {};
  1296         } else if (FS.isFile(node.mode)) {
  1297           node.node_ops = {
  1298             getattr: MEMFS.node_ops.getattr,
  1299             setattr: MEMFS.node_ops.setattr
  1300           };
  1301           node.stream_ops = {
  1302             llseek: MEMFS.stream_ops.llseek,
  1303             read: MEMFS.stream_ops.read,
  1304             write: MEMFS.stream_ops.write,
  1305             allocate: MEMFS.stream_ops.allocate,
  1306             mmap: MEMFS.stream_ops.mmap
  1307           };
  1308           node.contents = [];
  1309           node.contentMode = MEMFS.CONTENT_FLEXIBLE;
  1310         } else if (FS.isLink(node.mode)) {
  1311           node.node_ops = {
  1312             getattr: MEMFS.node_ops.getattr,
  1313             setattr: MEMFS.node_ops.setattr,
  1314             readlink: MEMFS.node_ops.readlink
  1315           };
  1316           node.stream_ops = {};
  1317         } else if (FS.isChrdev(node.mode)) {
  1318           node.node_ops = {
  1319             getattr: MEMFS.node_ops.getattr,
  1320             setattr: MEMFS.node_ops.setattr
  1321           };
  1322           node.stream_ops = FS.chrdev_stream_ops;
  1324         node.timestamp = Date.now();
  1325         // add the new node to the parent
  1326         if (parent) {
  1327           parent.contents[name] = node;
  1329         return node;
  1330       },node_ops:{getattr:function (node) {
  1331           var attr = {};
  1332           // device numbers reuse inode numbers.
  1333           attr.dev = FS.isChrdev(node.mode) ? node.id : 1;
  1334           attr.ino = node.id;
  1335           attr.mode = node.mode;
  1336           attr.nlink = 1;
  1337           attr.uid = 0;
  1338           attr.gid = 0;
  1339           attr.rdev = node.rdev;
  1340           if (FS.isDir(node.mode)) {
  1341             attr.size = 4096;
  1342           } else if (FS.isFile(node.mode)) {
  1343             attr.size = node.contents.length;
  1344           } else if (FS.isLink(node.mode)) {
  1345             attr.size = node.link.length;
  1346           } else {
  1347             attr.size = 0;
  1349           attr.atime = new Date(node.timestamp);
  1350           attr.mtime = new Date(node.timestamp);
  1351           attr.ctime = new Date(node.timestamp);
  1352           // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize),
  1353           //       but this is not required by the standard.
  1354           attr.blksize = 4096;
  1355           attr.blocks = Math.ceil(attr.size / attr.blksize);
  1356           return attr;
  1357         },setattr:function (node, attr) {
  1358           if (attr.mode !== undefined) {
  1359             node.mode = attr.mode;
  1361           if (attr.timestamp !== undefined) {
  1362             node.timestamp = attr.timestamp;
  1364           if (attr.size !== undefined) {
  1365             MEMFS.ensureFlexible(node);
  1366             var contents = node.contents;
  1367             if (attr.size < contents.length) contents.length = attr.size;
  1368             else while (attr.size > contents.length) contents.push(0);
  1370         },lookup:function (parent, name) {
  1371           throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
  1372         },mknod:function (parent, name, mode, dev) {
  1373           return MEMFS.create_node(parent, name, mode, dev);
  1374         },rename:function (old_node, new_dir, new_name) {
  1375           // if we're overwriting a directory at new_name, make sure it's empty.
  1376           if (FS.isDir(old_node.mode)) {
  1377             var new_node;
  1378             try {
  1379               new_node = FS.lookupNode(new_dir, new_name);
  1380             } catch (e) {
  1382             if (new_node) {
  1383               for (var i in new_node.contents) {
  1384                 throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
  1388           // do the internal rewiring
  1389           delete old_node.parent.contents[old_node.name];
  1390           old_node.name = new_name;
  1391           new_dir.contents[new_name] = old_node;
  1392         },unlink:function (parent, name) {
  1393           delete parent.contents[name];
  1394         },rmdir:function (parent, name) {
  1395           var node = FS.lookupNode(parent, name);
  1396           for (var i in node.contents) {
  1397             throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
  1399           delete parent.contents[name];
  1400         },readdir:function (node) {
  1401           var entries = ['.', '..']
  1402           for (var key in node.contents) {
  1403             if (!node.contents.hasOwnProperty(key)) {
  1404               continue;
  1406             entries.push(key);
  1408           return entries;
  1409         },symlink:function (parent, newname, oldpath) {
  1410           var node = MEMFS.create_node(parent, newname, 0777 | 0120000, 0);
  1411           node.link = oldpath;
  1412           return node;
  1413         },readlink:function (node) {
  1414           if (!FS.isLink(node.mode)) {
  1415             throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  1417           return node.link;
  1418         }},stream_ops:{read:function (stream, buffer, offset, length, position) {
  1419           var contents = stream.node.contents;
  1420           var size = Math.min(contents.length - position, length);
  1421           if (size > 8 && contents.subarray) { // non-trivial, and typed array
  1422             buffer.set(contents.subarray(position, position + size), offset);
  1423           } else
  1425             for (var i = 0; i < size; i++) {
  1426               buffer[offset + i] = contents[position + i];
  1429           return size;
  1430         },write:function (stream, buffer, offset, length, position, canOwn) {
  1431           var node = stream.node;
  1432           node.timestamp = Date.now();
  1433           var contents = node.contents;
  1434           if (length && contents.length === 0 && position === 0 && buffer.subarray) {
  1435             // just replace it with the new data
  1436             assert(buffer.length);
  1437             if (canOwn && buffer.buffer === HEAP8.buffer && offset === 0) {
  1438               node.contents = buffer; // this is a subarray of the heap, and we can own it
  1439               node.contentMode = MEMFS.CONTENT_OWNING;
  1440             } else {
  1441               node.contents = new Uint8Array(buffer.subarray(offset, offset+length));
  1442               node.contentMode = MEMFS.CONTENT_FIXED;
  1444             return length;
  1446           MEMFS.ensureFlexible(node);
  1447           var contents = node.contents;
  1448           while (contents.length < position) contents.push(0);
  1449           for (var i = 0; i < length; i++) {
  1450             contents[position + i] = buffer[offset + i];
  1452           return length;
  1453         },llseek:function (stream, offset, whence) {
  1454           var position = offset;
  1455           if (whence === 1) {  // SEEK_CUR.
  1456             position += stream.position;
  1457           } else if (whence === 2) {  // SEEK_END.
  1458             if (FS.isFile(stream.node.mode)) {
  1459               position += stream.node.contents.length;
  1462           if (position < 0) {
  1463             throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  1465           stream.ungotten = [];
  1466           stream.position = position;
  1467           return position;
  1468         },allocate:function (stream, offset, length) {
  1469           MEMFS.ensureFlexible(stream.node);
  1470           var contents = stream.node.contents;
  1471           var limit = offset + length;
  1472           while (limit > contents.length) contents.push(0);
  1473         },mmap:function (stream, buffer, offset, length, position, prot, flags) {
  1474           if (!FS.isFile(stream.node.mode)) {
  1475             throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
  1477           var ptr;
  1478           var allocated;
  1479           var contents = stream.node.contents;
  1480           // Only make a new copy when MAP_PRIVATE is specified.
  1481           if ( !(flags & 0x02) &&
  1482                 (contents.buffer === buffer || contents.buffer === buffer.buffer) ) {
  1483             // We can't emulate MAP_SHARED when the file is not backed by the buffer
  1484             // we're mapping to (e.g. the HEAP buffer).
  1485             allocated = false;
  1486             ptr = contents.byteOffset;
  1487           } else {
  1488             // Try to avoid unnecessary slices.
  1489             if (position > 0 || position + length < contents.length) {
  1490               if (contents.subarray) {
  1491                 contents = contents.subarray(position, position + length);
  1492               } else {
  1493                 contents = Array.prototype.slice.call(contents, position, position + length);
  1496             allocated = true;
  1497             ptr = _malloc(length);
  1498             if (!ptr) {
  1499               throw new FS.ErrnoError(ERRNO_CODES.ENOMEM);
  1501             buffer.set(contents, ptr);
  1503           return { ptr: ptr, allocated: allocated };
  1504         }}};
  1505   var _stdin=allocate(1, "i32*", ALLOC_STATIC);
  1506   var _stdout=allocate(1, "i32*", ALLOC_STATIC);
  1507   var _stderr=allocate(1, "i32*", ALLOC_STATIC);
  1508   function _fflush(stream) {
  1509       // int fflush(FILE *stream);
  1510       // http://pubs.opengroup.org/onlinepubs/000095399/functions/fflush.html
  1511       // we don't currently perform any user-space buffering of data
  1512     }var FS={root:null,devices:[null],streams:[null],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:function ErrnoError(errno) {
  1513           this.errno = errno;
  1514           for (var key in ERRNO_CODES) {
  1515             if (ERRNO_CODES[key] === errno) {
  1516               this.code = key;
  1517               break;
  1520           this.message = ERRNO_MESSAGES[errno];
  1521         },handleFSError:function (e) {
  1522         if (!(e instanceof FS.ErrnoError)) throw e + ' : ' + new Error().stack;
  1523         return ___setErrNo(e.errno);
  1524       },cwd:function () {
  1525         return FS.currentPath;
  1526       },lookupPath:function (path, opts) {
  1527         path = PATH.resolve(FS.currentPath, path);
  1528         opts = opts || { recurse_count: 0 };
  1529         if (opts.recurse_count > 8) {  // max recursive lookup of 8
  1530           throw new FS.ErrnoError(ERRNO_CODES.ELOOP);
  1532         // split the path
  1533         var parts = PATH.normalizeArray(path.split('/').filter(function(p) {
  1534           return !!p;
  1535         }), false);
  1536         // start at the root
  1537         var current = FS.root;
  1538         var current_path = '/';
  1539         for (var i = 0; i < parts.length; i++) {
  1540           var islast = (i === parts.length-1);
  1541           if (islast && opts.parent) {
  1542             // stop resolving
  1543             break;
  1545           current = FS.lookupNode(current, parts[i]);
  1546           current_path = PATH.join(current_path, parts[i]);
  1547           // jump to the mount's root node if this is a mountpoint
  1548           if (FS.isMountpoint(current)) {
  1549             current = current.mount.root;
  1551           // follow symlinks
  1552           // by default, lookupPath will not follow a symlink if it is the final path component.
  1553           // setting opts.follow = true will override this behavior.
  1554           if (!islast || opts.follow) {
  1555             var count = 0;
  1556             while (FS.isLink(current.mode)) {
  1557               var link = FS.readlink(current_path);
  1558               current_path = PATH.resolve(PATH.dirname(current_path), link);
  1559               var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count });
  1560               current = lookup.node;
  1561               if (count++ > 40) {  // limit max consecutive symlinks to 40 (SYMLOOP_MAX).
  1562                 throw new FS.ErrnoError(ERRNO_CODES.ELOOP);
  1567         return { path: current_path, node: current };
  1568       },getPath:function (node) {
  1569         var path;
  1570         while (true) {
  1571           if (FS.isRoot(node)) {
  1572             return path ? PATH.join(node.mount.mountpoint, path) : node.mount.mountpoint;
  1574           path = path ? PATH.join(node.name, path) : node.name;
  1575           node = node.parent;
  1577       },hashName:function (parentid, name) {
  1578         var hash = 0;
  1579         for (var i = 0; i < name.length; i++) {
  1580           hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0;
  1582         return ((parentid + hash) >>> 0) % FS.nameTable.length;
  1583       },hashAddNode:function (node) {
  1584         var hash = FS.hashName(node.parent.id, node.name);
  1585         node.name_next = FS.nameTable[hash];
  1586         FS.nameTable[hash] = node;
  1587       },hashRemoveNode:function (node) {
  1588         var hash = FS.hashName(node.parent.id, node.name);
  1589         if (FS.nameTable[hash] === node) {
  1590           FS.nameTable[hash] = node.name_next;
  1591         } else {
  1592           var current = FS.nameTable[hash];
  1593           while (current) {
  1594             if (current.name_next === node) {
  1595               current.name_next = node.name_next;
  1596               break;
  1598             current = current.name_next;
  1601       },lookupNode:function (parent, name) {
  1602         var err = FS.mayLookup(parent);
  1603         if (err) {
  1604           throw new FS.ErrnoError(err);
  1606         var hash = FS.hashName(parent.id, name);
  1607         for (var node = FS.nameTable[hash]; node; node = node.name_next) {
  1608           if (node.parent.id === parent.id && node.name === name) {
  1609             return node;
  1612         // if we failed to find it in the cache, call into the VFS
  1613         return FS.lookup(parent, name);
  1614       },createNode:function (parent, name, mode, rdev) {
  1615         var node = {
  1616           id: FS.nextInode++,
  1617           name: name,
  1618           mode: mode,
  1619           node_ops: {},
  1620           stream_ops: {},
  1621           rdev: rdev,
  1622           parent: null,
  1623           mount: null
  1624         };
  1625         if (!parent) {
  1626           parent = node;  // root node sets parent to itself
  1628         node.parent = parent;
  1629         node.mount = parent.mount;
  1630         // compatibility
  1631         var readMode = 292 | 73;
  1632         var writeMode = 146;
  1633         // NOTE we must use Object.defineProperties instead of individual calls to
  1634         // Object.defineProperty in order to make closure compiler happy
  1635         Object.defineProperties(node, {
  1636           read: {
  1637             get: function() { return (node.mode & readMode) === readMode; },
  1638             set: function(val) { val ? node.mode |= readMode : node.mode &= ~readMode; }
  1639           },
  1640           write: {
  1641             get: function() { return (node.mode & writeMode) === writeMode; },
  1642             set: function(val) { val ? node.mode |= writeMode : node.mode &= ~writeMode; }
  1643           },
  1644           isFolder: {
  1645             get: function() { return FS.isDir(node.mode); },
  1646           },
  1647           isDevice: {
  1648             get: function() { return FS.isChrdev(node.mode); },
  1649           },
  1650         });
  1651         FS.hashAddNode(node);
  1652         return node;
  1653       },destroyNode:function (node) {
  1654         FS.hashRemoveNode(node);
  1655       },isRoot:function (node) {
  1656         return node === node.parent;
  1657       },isMountpoint:function (node) {
  1658         return node.mounted;
  1659       },isFile:function (mode) {
  1660         return (mode & 0170000) === 0100000;
  1661       },isDir:function (mode) {
  1662         return (mode & 0170000) === 0040000;
  1663       },isLink:function (mode) {
  1664         return (mode & 0170000) === 0120000;
  1665       },isChrdev:function (mode) {
  1666         return (mode & 0170000) === 0020000;
  1667       },isBlkdev:function (mode) {
  1668         return (mode & 0170000) === 0060000;
  1669       },isFIFO:function (mode) {
  1670         return (mode & 0170000) === 0010000;
  1671       },isSocket:function (mode) {
  1672         return (mode & 0140000) === 0140000;
  1673       },flagModes:{"r":0,"rs":8192,"r+":2,"w":1537,"wx":3585,"xw":3585,"w+":1538,"wx+":3586,"xw+":3586,"a":521,"ax":2569,"xa":2569,"a+":522,"ax+":2570,"xa+":2570},modeStringToFlags:function (str) {
  1674         var flags = FS.flagModes[str];
  1675         if (typeof flags === 'undefined') {
  1676           throw new Error('Unknown file open mode: ' + str);
  1678         return flags;
  1679       },flagsToPermissionString:function (flag) {
  1680         var accmode = flag & 3;
  1681         var perms = ['r', 'w', 'rw'][accmode];
  1682         if ((flag & 1024)) {
  1683           perms += 'w';
  1685         return perms;
  1686       },nodePermissions:function (node, perms) {
  1687         if (FS.ignorePermissions) {
  1688           return 0;
  1690         // return 0 if any user, group or owner bits are set.
  1691         if (perms.indexOf('r') !== -1 && !(node.mode & 292)) {
  1692           return ERRNO_CODES.EACCES;
  1693         } else if (perms.indexOf('w') !== -1 && !(node.mode & 146)) {
  1694           return ERRNO_CODES.EACCES;
  1695         } else if (perms.indexOf('x') !== -1 && !(node.mode & 73)) {
  1696           return ERRNO_CODES.EACCES;
  1698         return 0;
  1699       },mayLookup:function (dir) {
  1700         return FS.nodePermissions(dir, 'x');
  1701       },mayCreate:function (dir, name) {
  1702         try {
  1703           var node = FS.lookupNode(dir, name);
  1704           return ERRNO_CODES.EEXIST;
  1705         } catch (e) {
  1707         return FS.nodePermissions(dir, 'wx');
  1708       },mayDelete:function (dir, name, isdir) {
  1709         var node;
  1710         try {
  1711           node = FS.lookupNode(dir, name);
  1712         } catch (e) {
  1713           return e.errno;
  1715         var err = FS.nodePermissions(dir, 'wx');
  1716         if (err) {
  1717           return err;
  1719         if (isdir) {
  1720           if (!FS.isDir(node.mode)) {
  1721             return ERRNO_CODES.ENOTDIR;
  1723           if (FS.isRoot(node) || FS.getPath(node) === FS.currentPath) {
  1724             return ERRNO_CODES.EBUSY;
  1726         } else {
  1727           if (FS.isDir(node.mode)) {
  1728             return ERRNO_CODES.EISDIR;
  1731         return 0;
  1732       },mayOpen:function (node, flags) {
  1733         if (!node) {
  1734           return ERRNO_CODES.ENOENT;
  1736         if (FS.isLink(node.mode)) {
  1737           return ERRNO_CODES.ELOOP;
  1738         } else if (FS.isDir(node.mode)) {
  1739           if ((flags & 3) !== 0 ||  // opening for write
  1740               (flags & 1024)) {
  1741             return ERRNO_CODES.EISDIR;
  1744         return FS.nodePermissions(node, FS.flagsToPermissionString(flags));
  1745       },MAX_OPEN_FDS:4096,nextfd:function (fd_start, fd_end) {
  1746         fd_start = fd_start || 1;
  1747         fd_end = fd_end || FS.MAX_OPEN_FDS;
  1748         for (var fd = fd_start; fd <= fd_end; fd++) {
  1749           if (!FS.streams[fd]) {
  1750             return fd;
  1753         throw new FS.ErrnoError(ERRNO_CODES.EMFILE);
  1754       },getStream:function (fd) {
  1755         return FS.streams[fd];
  1756       },createStream:function (stream, fd_start, fd_end) {
  1757         var fd = FS.nextfd(fd_start, fd_end);
  1758         stream.fd = fd;
  1759         // compatibility
  1760         Object.defineProperties(stream, {
  1761           object: {
  1762             get: function() { return stream.node; },
  1763             set: function(val) { stream.node = val; }
  1764           },
  1765           isRead: {
  1766             get: function() { return (stream.flags & 3) !== 1; }
  1767           },
  1768           isWrite: {
  1769             get: function() { return (stream.flags & 3) !== 0; }
  1770           },
  1771           isAppend: {
  1772             get: function() { return (stream.flags & 8); }
  1774         });
  1775         FS.streams[fd] = stream;
  1776         return stream;
  1777       },closeStream:function (fd) {
  1778         FS.streams[fd] = null;
  1779       },chrdev_stream_ops:{open:function (stream) {
  1780           var device = FS.getDevice(stream.node.rdev);
  1781           // override node's stream ops with the device's
  1782           stream.stream_ops = device.stream_ops;
  1783           // forward the open call
  1784           if (stream.stream_ops.open) {
  1785             stream.stream_ops.open(stream);
  1787         },llseek:function () {
  1788           throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
  1789         }},major:function (dev) {
  1790         return ((dev) >> 8);
  1791       },minor:function (dev) {
  1792         return ((dev) & 0xff);
  1793       },makedev:function (ma, mi) {
  1794         return ((ma) << 8 | (mi));
  1795       },registerDevice:function (dev, ops) {
  1796         FS.devices[dev] = { stream_ops: ops };
  1797       },getDevice:function (dev) {
  1798         return FS.devices[dev];
  1799       },mount:function (type, opts, mountpoint) {
  1800         var mount = {
  1801           type: type,
  1802           opts: opts,
  1803           mountpoint: mountpoint,
  1804           root: null
  1805         };
  1806         var lookup;
  1807         if (mountpoint) {
  1808           lookup = FS.lookupPath(mountpoint, { follow: false });
  1810         // create a root node for the fs
  1811         var root = type.mount(mount);
  1812         root.mount = mount;
  1813         mount.root = root;
  1814         // assign the mount info to the mountpoint's node
  1815         if (lookup) {
  1816           lookup.node.mount = mount;
  1817           lookup.node.mounted = true;
  1818           // compatibility update FS.root if we mount to /
  1819           if (mountpoint === '/') {
  1820             FS.root = mount.root;
  1823         return root;
  1824       },lookup:function (parent, name) {
  1825         return parent.node_ops.lookup(parent, name);
  1826       },mknod:function (path, mode, dev) {
  1827         var lookup = FS.lookupPath(path, { parent: true });
  1828         var parent = lookup.node;
  1829         var name = PATH.basename(path);
  1830         var err = FS.mayCreate(parent, name);
  1831         if (err) {
  1832           throw new FS.ErrnoError(err);
  1834         if (!parent.node_ops.mknod) {
  1835           throw new FS.ErrnoError(ERRNO_CODES.EPERM);
  1837         return parent.node_ops.mknod(parent, name, mode, dev);
  1838       },create:function (path, mode) {
  1839         mode = mode !== undefined ? mode : 0666;
  1840         mode &= 4095;
  1841         mode |= 0100000;
  1842         return FS.mknod(path, mode, 0);
  1843       },mkdir:function (path, mode) {
  1844         mode = mode !== undefined ? mode : 0777;
  1845         mode &= 511 | 0001000;
  1846         mode |= 0040000;
  1847         return FS.mknod(path, mode, 0);
  1848       },mkdev:function (path, mode, dev) {
  1849         if (typeof(dev) === 'undefined') {
  1850           dev = mode;
  1851           mode = 0666;
  1853         mode |= 0020000;
  1854         return FS.mknod(path, mode, dev);
  1855       },symlink:function (oldpath, newpath) {
  1856         var lookup = FS.lookupPath(newpath, { parent: true });
  1857         var parent = lookup.node;
  1858         var newname = PATH.basename(newpath);
  1859         var err = FS.mayCreate(parent, newname);
  1860         if (err) {
  1861           throw new FS.ErrnoError(err);
  1863         if (!parent.node_ops.symlink) {
  1864           throw new FS.ErrnoError(ERRNO_CODES.EPERM);
  1866         return parent.node_ops.symlink(parent, newname, oldpath);
  1867       },rename:function (old_path, new_path) {
  1868         var old_dirname = PATH.dirname(old_path);
  1869         var new_dirname = PATH.dirname(new_path);
  1870         var old_name = PATH.basename(old_path);
  1871         var new_name = PATH.basename(new_path);
  1872         // parents must exist
  1873         var lookup, old_dir, new_dir;
  1874         try {
  1875           lookup = FS.lookupPath(old_path, { parent: true });
  1876           old_dir = lookup.node;
  1877           lookup = FS.lookupPath(new_path, { parent: true });
  1878           new_dir = lookup.node;
  1879         } catch (e) {
  1880           throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
  1882         // need to be part of the same mount
  1883         if (old_dir.mount !== new_dir.mount) {
  1884           throw new FS.ErrnoError(ERRNO_CODES.EXDEV);
  1886         // source must exist
  1887         var old_node = FS.lookupNode(old_dir, old_name);
  1888         // old path should not be an ancestor of the new path
  1889         var relative = PATH.relative(old_path, new_dirname);
  1890         if (relative.charAt(0) !== '.') {
  1891           throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  1893         // new path should not be an ancestor of the old path
  1894         relative = PATH.relative(new_path, old_dirname);
  1895         if (relative.charAt(0) !== '.') {
  1896           throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
  1898         // see if the new path already exists
  1899         var new_node;
  1900         try {
  1901           new_node = FS.lookupNode(new_dir, new_name);
  1902         } catch (e) {
  1903           // not fatal
  1905         // early out if nothing needs to change
  1906         if (old_node === new_node) {
  1907           return;
  1909         // we'll need to delete the old entry
  1910         var isdir = FS.isDir(old_node.mode);
  1911         var err = FS.mayDelete(old_dir, old_name, isdir);
  1912         if (err) {
  1913           throw new FS.ErrnoError(err);
  1915         // need delete permissions if we'll be overwriting.
  1916         // need create permissions if new doesn't already exist.
  1917         err = new_node ?
  1918           FS.mayDelete(new_dir, new_name, isdir) :
  1919           FS.mayCreate(new_dir, new_name);
  1920         if (err) {
  1921           throw new FS.ErrnoError(err);
  1923         if (!old_dir.node_ops.rename) {
  1924           throw new FS.ErrnoError(ERRNO_CODES.EPERM);
  1926         if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) {
  1927           throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
  1929         // if we are going to change the parent, check write permissions
  1930         if (new_dir !== old_dir) {
  1931           err = FS.nodePermissions(old_dir, 'w');
  1932           if (err) {
  1933             throw new FS.ErrnoError(err);
  1936         // remove the node from the lookup hash
  1937         FS.hashRemoveNode(old_node);
  1938         // do the underlying fs rename
  1939         try {
  1940           old_dir.node_ops.rename(old_node, new_dir, new_name);
  1941         } catch (e) {
  1942           throw e;
  1943         } finally {
  1944           // add the node back to the hash (in case node_ops.rename
  1945           // changed its name)
  1946           FS.hashAddNode(old_node);
  1948       },rmdir:function (path) {
  1949         var lookup = FS.lookupPath(path, { parent: true });
  1950         var parent = lookup.node;
  1951         var name = PATH.basename(path);
  1952         var node = FS.lookupNode(parent, name);
  1953         var err = FS.mayDelete(parent, name, true);
  1954         if (err) {
  1955           throw new FS.ErrnoError(err);
  1957         if (!parent.node_ops.rmdir) {
  1958           throw new FS.ErrnoError(ERRNO_CODES.EPERM);
  1960         if (FS.isMountpoint(node)) {
  1961           throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
  1963         parent.node_ops.rmdir(parent, name);
  1964         FS.destroyNode(node);
  1965       },readdir:function (path) {
  1966         var lookup = FS.lookupPath(path, { follow: true });
  1967         var node = lookup.node;
  1968         if (!node.node_ops.readdir) {
  1969           throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);
  1971         return node.node_ops.readdir(node);
  1972       },unlink:function (path) {
  1973         var lookup = FS.lookupPath(path, { parent: true });
  1974         var parent = lookup.node;
  1975         var name = PATH.basename(path);
  1976         var node = FS.lookupNode(parent, name);
  1977         var err = FS.mayDelete(parent, name, false);
  1978         if (err) {
  1979           // POSIX says unlink should set EPERM, not EISDIR
  1980           if (err === ERRNO_CODES.EISDIR) err = ERRNO_CODES.EPERM;
  1981           throw new FS.ErrnoError(err);
  1983         if (!parent.node_ops.unlink) {
  1984           throw new FS.ErrnoError(ERRNO_CODES.EPERM);
  1986         if (FS.isMountpoint(node)) {
  1987           throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
  1989         parent.node_ops.unlink(parent, name);
  1990         FS.destroyNode(node);
  1991       },readlink:function (path) {
  1992         var lookup = FS.lookupPath(path, { follow: false });
  1993         var link = lookup.node;
  1994         if (!link.node_ops.readlink) {
  1995           throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  1997         return link.node_ops.readlink(link);
  1998       },stat:function (path, dontFollow) {
  1999         var lookup = FS.lookupPath(path, { follow: !dontFollow });
  2000         var node = lookup.node;
  2001         if (!node.node_ops.getattr) {
  2002           throw new FS.ErrnoError(ERRNO_CODES.EPERM);
  2004         return node.node_ops.getattr(node);
  2005       },lstat:function (path) {
  2006         return FS.stat(path, true);
  2007       },chmod:function (path, mode, dontFollow) {
  2008         var node;
  2009         if (typeof path === 'string') {
  2010           var lookup = FS.lookupPath(path, { follow: !dontFollow });
  2011           node = lookup.node;
  2012         } else {
  2013           node = path;
  2015         if (!node.node_ops.setattr) {
  2016           throw new FS.ErrnoError(ERRNO_CODES.EPERM);
  2018         node.node_ops.setattr(node, {
  2019           mode: (mode & 4095) | (node.mode & ~4095),
  2020           timestamp: Date.now()
  2021         });
  2022       },lchmod:function (path, mode) {
  2023         FS.chmod(path, mode, true);
  2024       },fchmod:function (fd, mode) {
  2025         var stream = FS.getStream(fd);
  2026         if (!stream) {
  2027           throw new FS.ErrnoError(ERRNO_CODES.EBADF);
  2029         FS.chmod(stream.node, mode);
  2030       },chown:function (path, uid, gid, dontFollow) {
  2031         var node;
  2032         if (typeof path === 'string') {
  2033           var lookup = FS.lookupPath(path, { follow: !dontFollow });
  2034           node = lookup.node;
  2035         } else {
  2036           node = path;
  2038         if (!node.node_ops.setattr) {
  2039           throw new FS.ErrnoError(ERRNO_CODES.EPERM);
  2041         node.node_ops.setattr(node, {
  2042           timestamp: Date.now()
  2043           // we ignore the uid / gid for now
  2044         });
  2045       },lchown:function (path, uid, gid) {
  2046         FS.chown(path, uid, gid, true);
  2047       },fchown:function (fd, uid, gid) {
  2048         var stream = FS.getStream(fd);
  2049         if (!stream) {
  2050           throw new FS.ErrnoError(ERRNO_CODES.EBADF);
  2052         FS.chown(stream.node, uid, gid);
  2053       },truncate:function (path, len) {
  2054         if (len < 0) {
  2055           throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  2057         var node;
  2058         if (typeof path === 'string') {
  2059           var lookup = FS.lookupPath(path, { follow: true });
  2060           node = lookup.node;
  2061         } else {
  2062           node = path;
  2064         if (!node.node_ops.setattr) {
  2065           throw new FS.ErrnoError(ERRNO_CODES.EPERM);
  2067         if (FS.isDir(node.mode)) {
  2068           throw new FS.ErrnoError(ERRNO_CODES.EISDIR);
  2070         if (!FS.isFile(node.mode)) {
  2071           throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  2073         var err = FS.nodePermissions(node, 'w');
  2074         if (err) {
  2075           throw new FS.ErrnoError(err);
  2077         node.node_ops.setattr(node, {
  2078           size: len,
  2079           timestamp: Date.now()
  2080         });
  2081       },ftruncate:function (fd, len) {
  2082         var stream = FS.getStream(fd);
  2083         if (!stream) {
  2084           throw new FS.ErrnoError(ERRNO_CODES.EBADF);
  2086         if ((stream.flags & 3) === 0) {
  2087           throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  2089         FS.truncate(stream.node, len);
  2090       },utime:function (path, atime, mtime) {
  2091         var lookup = FS.lookupPath(path, { follow: true });
  2092         var node = lookup.node;
  2093         node.node_ops.setattr(node, {
  2094           timestamp: Math.max(atime, mtime)
  2095         });
  2096       },open:function (path, flags, mode, fd_start, fd_end) {
  2097         path = PATH.normalize(path);
  2098         flags = typeof flags === 'string' ? FS.modeStringToFlags(flags) : flags;
  2099         mode = typeof mode === 'undefined' ? 0666 : mode;
  2100         if ((flags & 512)) {
  2101           mode = (mode & 4095) | 0100000;
  2102         } else {
  2103           mode = 0;
  2105         var node;
  2106         try {
  2107           var lookup = FS.lookupPath(path, {
  2108             follow: !(flags & 0200000)
  2109           });
  2110           node = lookup.node;
  2111           path = lookup.path;
  2112         } catch (e) {
  2113           // ignore
  2115         // perhaps we need to create the node
  2116         if ((flags & 512)) {
  2117           if (node) {
  2118             // if O_CREAT and O_EXCL are set, error out if the node already exists
  2119             if ((flags & 2048)) {
  2120               throw new FS.ErrnoError(ERRNO_CODES.EEXIST);
  2122           } else {
  2123             // node doesn't exist, try to create it
  2124             node = FS.mknod(path, mode, 0);
  2127         if (!node) {
  2128           throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
  2130         // can't truncate a device
  2131         if (FS.isChrdev(node.mode)) {
  2132           flags &= ~1024;
  2134         // check permissions
  2135         var err = FS.mayOpen(node, flags);
  2136         if (err) {
  2137           throw new FS.ErrnoError(err);
  2139         // do truncation if necessary
  2140         if ((flags & 1024)) {
  2141           FS.truncate(node, 0);
  2143         // register the stream with the filesystem
  2144         var stream = FS.createStream({
  2145           path: path,
  2146           node: node,
  2147           flags: flags,
  2148           seekable: true,
  2149           position: 0,
  2150           stream_ops: node.stream_ops,
  2151           // used by the file family libc calls (fopen, fwrite, ferror, etc.)
  2152           ungotten: [],
  2153           error: false
  2154         }, fd_start, fd_end);
  2155         // call the new stream's open function
  2156         if (stream.stream_ops.open) {
  2157           stream.stream_ops.open(stream);
  2159         return stream;
  2160       },close:function (stream) {
  2161         try {
  2162           if (stream.stream_ops.close) {
  2163             stream.stream_ops.close(stream);
  2165         } catch (e) {
  2166           throw e;
  2167         } finally {
  2168           FS.closeStream(stream.fd);
  2170       },llseek:function (stream, offset, whence) {
  2171         if (!stream.seekable || !stream.stream_ops.llseek) {
  2172           throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
  2174         return stream.stream_ops.llseek(stream, offset, whence);
  2175       },read:function (stream, buffer, offset, length, position) {
  2176         if (length < 0 || position < 0) {
  2177           throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  2179         if ((stream.flags & 3) === 1) {
  2180           throw new FS.ErrnoError(ERRNO_CODES.EBADF);
  2182         if (FS.isDir(stream.node.mode)) {
  2183           throw new FS.ErrnoError(ERRNO_CODES.EISDIR);
  2185         if (!stream.stream_ops.read) {
  2186           throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  2188         var seeking = true;
  2189         if (typeof position === 'undefined') {
  2190           position = stream.position;
  2191           seeking = false;
  2192         } else if (!stream.seekable) {
  2193           throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
  2195         var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position);
  2196         if (!seeking) stream.position += bytesRead;
  2197         return bytesRead;
  2198       },write:function (stream, buffer, offset, length, position, canOwn) {
  2199         if (length < 0 || position < 0) {
  2200           throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  2202         if ((stream.flags & 3) === 0) {
  2203           throw new FS.ErrnoError(ERRNO_CODES.EBADF);
  2205         if (FS.isDir(stream.node.mode)) {
  2206           throw new FS.ErrnoError(ERRNO_CODES.EISDIR);
  2208         if (!stream.stream_ops.write) {
  2209           throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  2211         var seeking = true;
  2212         if (typeof position === 'undefined') {
  2213           position = stream.position;
  2214           seeking = false;
  2215         } else if (!stream.seekable) {
  2216           throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
  2218         if (stream.flags & 8) {
  2219           // seek to the end before writing in append mode
  2220           FS.llseek(stream, 0, 2);
  2222         var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn);
  2223         if (!seeking) stream.position += bytesWritten;
  2224         return bytesWritten;
  2225       },allocate:function (stream, offset, length) {
  2226         if (offset < 0 || length <= 0) {
  2227           throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  2229         if ((stream.flags & 3) === 0) {
  2230           throw new FS.ErrnoError(ERRNO_CODES.EBADF);
  2232         if (!FS.isFile(stream.node.mode) && !FS.isDir(node.mode)) {
  2233           throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
  2235         if (!stream.stream_ops.allocate) {
  2236           throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);
  2238         stream.stream_ops.allocate(stream, offset, length);
  2239       },mmap:function (stream, buffer, offset, length, position, prot, flags) {
  2240         // TODO if PROT is PROT_WRITE, make sure we have write access
  2241         if ((stream.flags & 3) === 1) {
  2242           throw new FS.ErrnoError(ERRNO_CODES.EACCES);
  2244         if (!stream.stream_ops.mmap) {
  2245           throw new FS.errnoError(ERRNO_CODES.ENODEV);
  2247         return stream.stream_ops.mmap(stream, buffer, offset, length, position, prot, flags);
  2248       },ioctl:function (stream, cmd, arg) {
  2249         if (!stream.stream_ops.ioctl) {
  2250           throw new FS.ErrnoError(ERRNO_CODES.ENOTTY);
  2252         return stream.stream_ops.ioctl(stream, cmd, arg);
  2253       },readFile:function (path, opts) {
  2254         opts = opts || {};
  2255         opts.flags = opts.flags || 'r';
  2256         opts.encoding = opts.encoding || 'binary';
  2257         var ret;
  2258         var stream = FS.open(path, opts.flags);
  2259         var stat = FS.stat(path);
  2260         var length = stat.size;
  2261         var buf = new Uint8Array(length);
  2262         FS.read(stream, buf, 0, length, 0);
  2263         if (opts.encoding === 'utf8') {
  2264           ret = '';
  2265           var utf8 = new Runtime.UTF8Processor();
  2266           for (var i = 0; i < length; i++) {
  2267             ret += utf8.processCChar(buf[i]);
  2269         } else if (opts.encoding === 'binary') {
  2270           ret = buf;
  2271         } else {
  2272           throw new Error('Invalid encoding type "' + opts.encoding + '"');
  2274         FS.close(stream);
  2275         return ret;
  2276       },writeFile:function (path, data, opts) {
  2277         opts = opts || {};
  2278         opts.flags = opts.flags || 'w';
  2279         opts.encoding = opts.encoding || 'utf8';
  2280         var stream = FS.open(path, opts.flags, opts.mode);
  2281         if (opts.encoding === 'utf8') {
  2282           var utf8 = new Runtime.UTF8Processor();
  2283           var buf = new Uint8Array(utf8.processJSString(data));
  2284           FS.write(stream, buf, 0, buf.length, 0);
  2285         } else if (opts.encoding === 'binary') {
  2286           FS.write(stream, data, 0, data.length, 0);
  2287         } else {
  2288           throw new Error('Invalid encoding type "' + opts.encoding + '"');
  2290         FS.close(stream);
  2291       },createDefaultDirectories:function () {
  2292         FS.mkdir('/tmp');
  2293       },createDefaultDevices:function () {
  2294         // create /dev
  2295         FS.mkdir('/dev');
  2296         // setup /dev/null
  2297         FS.registerDevice(FS.makedev(1, 3), {
  2298           read: function() { return 0; },
  2299           write: function() { return 0; }
  2300         });
  2301         FS.mkdev('/dev/null', FS.makedev(1, 3));
  2302         // setup /dev/tty and /dev/tty1
  2303         // stderr needs to print output using Module['printErr']
  2304         // so we register a second tty just for it.
  2305         TTY.register(FS.makedev(5, 0), TTY.default_tty_ops);
  2306         TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops);
  2307         FS.mkdev('/dev/tty', FS.makedev(5, 0));
  2308         FS.mkdev('/dev/tty1', FS.makedev(6, 0));
  2309         // we're not going to emulate the actual shm device,
  2310         // just create the tmp dirs that reside in it commonly
  2311         FS.mkdir('/dev/shm');
  2312         FS.mkdir('/dev/shm/tmp');
  2313       },createStandardStreams:function () {
  2314         // TODO deprecate the old functionality of a single
  2315         // input / output callback and that utilizes FS.createDevice
  2316         // and instead require a unique set of stream ops
  2317         // by default, we symlink the standard streams to the
  2318         // default tty devices. however, if the standard streams
  2319         // have been overwritten we create a unique device for
  2320         // them instead.
  2321         if (Module['stdin']) {
  2322           FS.createDevice('/dev', 'stdin', Module['stdin']);
  2323         } else {
  2324           FS.symlink('/dev/tty', '/dev/stdin');
  2326         if (Module['stdout']) {
  2327           FS.createDevice('/dev', 'stdout', null, Module['stdout']);
  2328         } else {
  2329           FS.symlink('/dev/tty', '/dev/stdout');
  2331         if (Module['stderr']) {
  2332           FS.createDevice('/dev', 'stderr', null, Module['stderr']);
  2333         } else {
  2334           FS.symlink('/dev/tty1', '/dev/stderr');
  2336         // open default streams for the stdin, stdout and stderr devices
  2337         var stdin = FS.open('/dev/stdin', 'r');
  2338         HEAP32[((_stdin)>>2)]=stdin.fd;
  2339         assert(stdin.fd === 1, 'invalid handle for stdin (' + stdin.fd + ')');
  2340         var stdout = FS.open('/dev/stdout', 'w');
  2341         HEAP32[((_stdout)>>2)]=stdout.fd;
  2342         assert(stdout.fd === 2, 'invalid handle for stdout (' + stdout.fd + ')');
  2343         var stderr = FS.open('/dev/stderr', 'w');
  2344         HEAP32[((_stderr)>>2)]=stderr.fd;
  2345         assert(stderr.fd === 3, 'invalid handle for stderr (' + stderr.fd + ')');
  2346       },staticInit:function () {
  2347         FS.nameTable = new Array(4096);
  2348         FS.root = FS.createNode(null, '/', 0040000 | 0777, 0);
  2349         FS.mount(MEMFS, {}, '/');
  2350         FS.createDefaultDirectories();
  2351         FS.createDefaultDevices();
  2352       },init:function (input, output, error) {
  2353         assert(!FS.init.initialized, 'FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)');
  2354         FS.init.initialized = true;
  2355         // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here
  2356         Module['stdin'] = input || Module['stdin'];
  2357         Module['stdout'] = output || Module['stdout'];
  2358         Module['stderr'] = error || Module['stderr'];
  2359         FS.createStandardStreams();
  2360       },quit:function () {
  2361         FS.init.initialized = false;
  2362         for (var i = 0; i < FS.streams.length; i++) {
  2363           var stream = FS.streams[i];
  2364           if (!stream) {
  2365             continue;
  2367           FS.close(stream);
  2369       },getMode:function (canRead, canWrite) {
  2370         var mode = 0;
  2371         if (canRead) mode |= 292 | 73;
  2372         if (canWrite) mode |= 146;
  2373         return mode;
  2374       },joinPath:function (parts, forceRelative) {
  2375         var path = PATH.join.apply(null, parts);
  2376         if (forceRelative && path[0] == '/') path = path.substr(1);
  2377         return path;
  2378       },absolutePath:function (relative, base) {
  2379         return PATH.resolve(base, relative);
  2380       },standardizePath:function (path) {
  2381         return PATH.normalize(path);
  2382       },findObject:function (path, dontResolveLastLink) {
  2383         var ret = FS.analyzePath(path, dontResolveLastLink);
  2384         if (ret.exists) {
  2385           return ret.object;
  2386         } else {
  2387           ___setErrNo(ret.error);
  2388           return null;
  2390       },analyzePath:function (path, dontResolveLastLink) {
  2391         // operate from within the context of the symlink's target
  2392         try {
  2393           var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
  2394           path = lookup.path;
  2395         } catch (e) {
  2397         var ret = {
  2398           isRoot: false, exists: false, error: 0, name: null, path: null, object: null,
  2399           parentExists: false, parentPath: null, parentObject: null
  2400         };
  2401         try {
  2402           var lookup = FS.lookupPath(path, { parent: true });
  2403           ret.parentExists = true;
  2404           ret.parentPath = lookup.path;
  2405           ret.parentObject = lookup.node;
  2406           ret.name = PATH.basename(path);
  2407           lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
  2408           ret.exists = true;
  2409           ret.path = lookup.path;
  2410           ret.object = lookup.node;
  2411           ret.name = lookup.node.name;
  2412           ret.isRoot = lookup.path === '/';
  2413         } catch (e) {
  2414           ret.error = e.errno;
  2415         };
  2416         return ret;
  2417       },createFolder:function (parent, name, canRead, canWrite) {
  2418         var path = PATH.join(typeof parent === 'string' ? parent : FS.getPath(parent), name);
  2419         var mode = FS.getMode(canRead, canWrite);
  2420         return FS.mkdir(path, mode);
  2421       },createPath:function (parent, path, canRead, canWrite) {
  2422         parent = typeof parent === 'string' ? parent : FS.getPath(parent);
  2423         var parts = path.split('/').reverse();
  2424         while (parts.length) {
  2425           var part = parts.pop();
  2426           if (!part) continue;
  2427           var current = PATH.join(parent, part);
  2428           try {
  2429             FS.mkdir(current);
  2430           } catch (e) {
  2431             // ignore EEXIST
  2433           parent = current;
  2435         return current;
  2436       },createFile:function (parent, name, properties, canRead, canWrite) {
  2437         var path = PATH.join(typeof parent === 'string' ? parent : FS.getPath(parent), name);
  2438         var mode = FS.getMode(canRead, canWrite);
  2439         return FS.create(path, mode);
  2440       },createDataFile:function (parent, name, data, canRead, canWrite, canOwn) {
  2441         var path = name ? PATH.join(typeof parent === 'string' ? parent : FS.getPath(parent), name) : parent;
  2442         var mode = FS.getMode(canRead, canWrite);
  2443         var node = FS.create(path, mode);
  2444         if (data) {
  2445           if (typeof data === 'string') {
  2446             var arr = new Array(data.length);
  2447             for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i);
  2448             data = arr;
  2450           // make sure we can write to the file
  2451           FS.chmod(path, mode | 146);
  2452           var stream = FS.open(path, 'w');
  2453           FS.write(stream, data, 0, data.length, 0, canOwn);
  2454           FS.close(stream);
  2455           FS.chmod(path, mode);
  2457         return node;
  2458       },createDevice:function (parent, name, input, output) {
  2459         var path = PATH.join(typeof parent === 'string' ? parent : FS.getPath(parent), name);
  2460         var mode = FS.getMode(!!input, !!output);
  2461         if (!FS.createDevice.major) FS.createDevice.major = 64;
  2462         var dev = FS.makedev(FS.createDevice.major++, 0);
  2463         // Create a fake device that a set of stream ops to emulate
  2464         // the old behavior.
  2465         FS.registerDevice(dev, {
  2466           open: function(stream) {
  2467             stream.seekable = false;
  2468           },
  2469           close: function(stream) {
  2470             // flush any pending line data
  2471             if (output && output.buffer && output.buffer.length) {
  2472               output(10);
  2474           },
  2475           read: function(stream, buffer, offset, length, pos /* ignored */) {
  2476             var bytesRead = 0;
  2477             for (var i = 0; i < length; i++) {
  2478               var result;
  2479               try {
  2480                 result = input();
  2481               } catch (e) {
  2482                 throw new FS.ErrnoError(ERRNO_CODES.EIO);
  2484               if (result === undefined && bytesRead === 0) {
  2485                 throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
  2487               if (result === null || result === undefined) break;
  2488               bytesRead++;
  2489               buffer[offset+i] = result;
  2491             if (bytesRead) {
  2492               stream.node.timestamp = Date.now();
  2494             return bytesRead;
  2495           },
  2496           write: function(stream, buffer, offset, length, pos) {
  2497             for (var i = 0; i < length; i++) {
  2498               try {
  2499                 output(buffer[offset+i]);
  2500               } catch (e) {
  2501                 throw new FS.ErrnoError(ERRNO_CODES.EIO);
  2504             if (length) {
  2505               stream.node.timestamp = Date.now();
  2507             return i;
  2509         });
  2510         return FS.mkdev(path, mode, dev);
  2511       },createLink:function (parent, name, target, canRead, canWrite) {
  2512         var path = PATH.join(typeof parent === 'string' ? parent : FS.getPath(parent), name);
  2513         return FS.symlink(target, path);
  2514       },forceLoadFile:function (obj) {
  2515         if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true;
  2516         var success = true;
  2517         if (typeof XMLHttpRequest !== 'undefined') {
  2518           throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");
  2519         } else if (Module['read']) {
  2520           // Command-line.
  2521           try {
  2522             // WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as
  2523             //          read() will try to parse UTF8.
  2524             obj.contents = intArrayFromString(Module['read'](obj.url), true);
  2525           } catch (e) {
  2526             success = false;
  2528         } else {
  2529           throw new Error('Cannot load without read() or XMLHttpRequest.');
  2531         if (!success) ___setErrNo(ERRNO_CODES.EIO);
  2532         return success;
  2533       },createLazyFile:function (parent, name, url, canRead, canWrite) {
  2534         if (typeof XMLHttpRequest !== 'undefined') {
  2535           if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc';
  2536           // Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse.
  2537           var LazyUint8Array = function() {
  2538             this.lengthKnown = false;
  2539             this.chunks = []; // Loaded chunks. Index is the chunk number
  2541           LazyUint8Array.prototype.get = function(idx) {
  2542             if (idx > this.length-1 || idx < 0) {
  2543               return undefined;
  2545             var chunkOffset = idx % this.chunkSize;
  2546             var chunkNum = Math.floor(idx / this.chunkSize);
  2547             return this.getter(chunkNum)[chunkOffset];
  2549           LazyUint8Array.prototype.setDataGetter = function(getter) {
  2550             this.getter = getter;
  2552           LazyUint8Array.prototype.cacheLength = function() {
  2553               // Find length
  2554               var xhr = new XMLHttpRequest();
  2555               xhr.open('HEAD', url, false);
  2556               xhr.send(null);
  2557               if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
  2558               var datalength = Number(xhr.getResponseHeader("Content-length"));
  2559               var header;
  2560               var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes";
  2561               var chunkSize = 1024*1024; // Chunk size in bytes
  2562               if (!hasByteServing) chunkSize = datalength;
  2563               // Function to get a range from the remote URL.
  2564               var doXHR = (function(from, to) {
  2565                 if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!");
  2566                 if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!");
  2567                 // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available.
  2568                 var xhr = new XMLHttpRequest();
  2569                 xhr.open('GET', url, false);
  2570                 if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to);
  2571                 // Some hints to the browser that we want binary data.
  2572                 if (typeof Uint8Array != 'undefined') xhr.responseType = 'arraybuffer';
  2573                 if (xhr.overrideMimeType) {
  2574                   xhr.overrideMimeType('text/plain; charset=x-user-defined');
  2576                 xhr.send(null);
  2577                 if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
  2578                 if (xhr.response !== undefined) {
  2579                   return new Uint8Array(xhr.response || []);
  2580                 } else {
  2581                   return intArrayFromString(xhr.responseText || '', true);
  2583               });
  2584               var lazyArray = this;
  2585               lazyArray.setDataGetter(function(chunkNum) {
  2586                 var start = chunkNum * chunkSize;
  2587                 var end = (chunkNum+1) * chunkSize - 1; // including this byte
  2588                 end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block
  2589                 if (typeof(lazyArray.chunks[chunkNum]) === "undefined") {
  2590                   lazyArray.chunks[chunkNum] = doXHR(start, end);
  2592                 if (typeof(lazyArray.chunks[chunkNum]) === "undefined") throw new Error("doXHR failed!");
  2593                 return lazyArray.chunks[chunkNum];
  2594               });
  2595               this._length = datalength;
  2596               this._chunkSize = chunkSize;
  2597               this.lengthKnown = true;
  2599           var lazyArray = new LazyUint8Array();
  2600           Object.defineProperty(lazyArray, "length", {
  2601               get: function() {
  2602                   if(!this.lengthKnown) {
  2603                       this.cacheLength();
  2605                   return this._length;
  2607           });
  2608           Object.defineProperty(lazyArray, "chunkSize", {
  2609               get: function() {
  2610                   if(!this.lengthKnown) {
  2611                       this.cacheLength();
  2613                   return this._chunkSize;
  2615           });
  2616           var properties = { isDevice: false, contents: lazyArray };
  2617         } else {
  2618           var properties = { isDevice: false, url: url };
  2620         var node = FS.createFile(parent, name, properties, canRead, canWrite);
  2621         // This is a total hack, but I want to get this lazy file code out of the
  2622         // core of MEMFS. If we want to keep this lazy file concept I feel it should
  2623         // be its own thin LAZYFS proxying calls to MEMFS.
  2624         if (properties.contents) {
  2625           node.contents = properties.contents;
  2626         } else if (properties.url) {
  2627           node.contents = null;
  2628           node.url = properties.url;
  2630         // override each stream op with one that tries to force load the lazy file first
  2631         var stream_ops = {};
  2632         var keys = Object.keys(node.stream_ops);
  2633         keys.forEach(function(key) {
  2634           var fn = node.stream_ops[key];
  2635           stream_ops[key] = function() {
  2636             if (!FS.forceLoadFile(node)) {
  2637               throw new FS.ErrnoError(ERRNO_CODES.EIO);
  2639             return fn.apply(null, arguments);
  2640           };
  2641         });
  2642         // use a custom read function
  2643         stream_ops.read = function(stream, buffer, offset, length, position) {
  2644           if (!FS.forceLoadFile(node)) {
  2645             throw new FS.ErrnoError(ERRNO_CODES.EIO);
  2647           var contents = stream.node.contents;
  2648           var size = Math.min(contents.length - position, length);
  2649           if (contents.slice) { // normal array
  2650             for (var i = 0; i < size; i++) {
  2651               buffer[offset + i] = contents[position + i];
  2653           } else {
  2654             for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR
  2655               buffer[offset + i] = contents.get(position + i);
  2658           return size;
  2659         };
  2660         node.stream_ops = stream_ops;
  2661         return node;
  2662       },createPreloadedFile:function (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn) {
  2663         Browser.init();
  2664         // TODO we should allow people to just pass in a complete filename instead
  2665         // of parent and name being that we just join them anyways
  2666         var fullname = name ? PATH.resolve(PATH.join(parent, name)) : parent;
  2667         function processData(byteArray) {
  2668           function finish(byteArray) {
  2669             if (!dontCreateFile) {
  2670               FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn);
  2672             if (onload) onload();
  2673             removeRunDependency('cp ' + fullname);
  2675           var handled = false;
  2676           Module['preloadPlugins'].forEach(function(plugin) {
  2677             if (handled) return;
  2678             if (plugin['canHandle'](fullname)) {
  2679               plugin['handle'](byteArray, fullname, finish, function() {
  2680                 if (onerror) onerror();
  2681                 removeRunDependency('cp ' + fullname);
  2682               });
  2683               handled = true;
  2685           });
  2686           if (!handled) finish(byteArray);
  2688         addRunDependency('cp ' + fullname);
  2689         if (typeof url == 'string') {
  2690           Browser.asyncLoad(url, function(byteArray) {
  2691             processData(byteArray);
  2692           }, onerror);
  2693         } else {
  2694           processData(url);
  2696       },indexedDB:function () {
  2697         return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
  2698       },DB_NAME:function () {
  2699         return 'EM_FS_' + window.location.pathname;
  2700       },DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function (paths, onload, onerror) {
  2701         onload = onload || function(){};
  2702         onerror = onerror || function(){};
  2703         var indexedDB = FS.indexedDB();
  2704         try {
  2705           var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);
  2706         } catch (e) {
  2707           return onerror(e);
  2709         openRequest.onupgradeneeded = function() {
  2710           console.log('creating db');
  2711           var db = openRequest.result;
  2712           db.createObjectStore(FS.DB_STORE_NAME);
  2713         };
  2714         openRequest.onsuccess = function() {
  2715           var db = openRequest.result;
  2716           var transaction = db.transaction([FS.DB_STORE_NAME], 'readwrite');
  2717           var files = transaction.objectStore(FS.DB_STORE_NAME);
  2718           var ok = 0, fail = 0, total = paths.length;
  2719           function finish() {
  2720             if (fail == 0) onload(); else onerror();
  2722           paths.forEach(function(path) {
  2723             var putRequest = files.put(FS.analyzePath(path).object.contents, path);
  2724             putRequest.onsuccess = function() { ok++; if (ok + fail == total) finish() };
  2725             putRequest.onerror = function() { fail++; if (ok + fail == total) finish() };
  2726           });
  2727           transaction.onerror = onerror;
  2728         };
  2729         openRequest.onerror = onerror;
  2730       },loadFilesFromDB:function (paths, onload, onerror) {
  2731         onload = onload || function(){};
  2732         onerror = onerror || function(){};
  2733         var indexedDB = FS.indexedDB();
  2734         try {
  2735           var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);
  2736         } catch (e) {
  2737           return onerror(e);
  2739         openRequest.onupgradeneeded = onerror; // no database to load from
  2740         openRequest.onsuccess = function() {
  2741           var db = openRequest.result;
  2742           try {
  2743             var transaction = db.transaction([FS.DB_STORE_NAME], 'readonly');
  2744           } catch(e) {
  2745             onerror(e);
  2746             return;
  2748           var files = transaction.objectStore(FS.DB_STORE_NAME);
  2749           var ok = 0, fail = 0, total = paths.length;
  2750           function finish() {
  2751             if (fail == 0) onload(); else onerror();
  2753           paths.forEach(function(path) {
  2754             var getRequest = files.get(path);
  2755             getRequest.onsuccess = function() {
  2756               if (FS.analyzePath(path).exists) {
  2757                 FS.unlink(path);
  2759               FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true);
  2760               ok++;
  2761               if (ok + fail == total) finish();
  2762             };
  2763             getRequest.onerror = function() { fail++; if (ok + fail == total) finish() };
  2764           });
  2765           transaction.onerror = onerror;
  2766         };
  2767         openRequest.onerror = onerror;
  2768       }};
  2769   var SOCKFS={mount:function (mount) {
  2770         return FS.createNode(null, '/', 0040000 | 0777, 0);
  2771       },nextname:function () {
  2772         if (!SOCKFS.nextname.current) {
  2773           SOCKFS.nextname.current = 0;
  2775         return 'socket[' + (SOCKFS.nextname.current++) + ']';
  2776       },createSocket:function (family, type, protocol) {
  2777         var streaming = type == 1;
  2778         if (protocol) {
  2779           assert(streaming == (protocol == 6)); // if SOCK_STREAM, must be tcp
  2781         // create our internal socket structure
  2782         var sock = {
  2783           family: family,
  2784           type: type,
  2785           protocol: protocol,
  2786           server: null,
  2787           peers: {},
  2788           pending: [],
  2789           recv_queue: [],
  2790           sock_ops: SOCKFS.websocket_sock_ops
  2791         };
  2792         // create the filesystem node to store the socket structure
  2793         var name = SOCKFS.nextname();
  2794         var node = FS.createNode(SOCKFS.root, name, 0140000, 0);
  2795         node.sock = sock;
  2796         // and the wrapping stream that enables library functions such
  2797         // as read and write to indirectly interact with the socket
  2798         var stream = FS.createStream({
  2799           path: name,
  2800           node: node,
  2801           flags: FS.modeStringToFlags('r+'),
  2802           seekable: false,
  2803           stream_ops: SOCKFS.stream_ops
  2804         });
  2805         // map the new stream to the socket structure (sockets have a 1:1
  2806         // relationship with a stream)
  2807         sock.stream = stream;
  2808         return sock;
  2809       },getSocket:function (fd) {
  2810         var stream = FS.getStream(fd);
  2811         if (!stream || !FS.isSocket(stream.node.mode)) {
  2812           return null;
  2814         return stream.node.sock;
  2815       },stream_ops:{poll:function (stream) {
  2816           var sock = stream.node.sock;
  2817           return sock.sock_ops.poll(sock);
  2818         },ioctl:function (stream, request, varargs) {
  2819           var sock = stream.node.sock;
  2820           return sock.sock_ops.ioctl(sock, request, varargs);
  2821         },read:function (stream, buffer, offset, length, position /* ignored */) {
  2822           var sock = stream.node.sock;
  2823           var msg = sock.sock_ops.recvmsg(sock, length);
  2824           if (!msg) {
  2825             // socket is closed
  2826             return 0;
  2828           buffer.set(msg.buffer, offset);
  2829           return msg.buffer.length;
  2830         },write:function (stream, buffer, offset, length, position /* ignored */) {
  2831           var sock = stream.node.sock;
  2832           return sock.sock_ops.sendmsg(sock, buffer, offset, length);
  2833         },close:function (stream) {
  2834           var sock = stream.node.sock;
  2835           sock.sock_ops.close(sock);
  2836         }},websocket_sock_ops:{createPeer:function (sock, addr, port) {
  2837           var ws;
  2838           if (typeof addr === 'object') {
  2839             ws = addr;
  2840             addr = null;
  2841             port = null;
  2843           if (ws) {
  2844             // for sockets that've already connected (e.g. we're the server)
  2845             // we can inspect the _socket property for the address
  2846             if (ws._socket) {
  2847               addr = ws._socket.remoteAddress;
  2848               port = ws._socket.remotePort;
  2850             // if we're just now initializing a connection to the remote,
  2851             // inspect the url property
  2852             else {
  2853               var result = /ws[s]?:\/\/([^:]+):(\d+)/.exec(ws.url);
  2854               if (!result) {
  2855                 throw new Error('WebSocket URL must be in the format ws(s)://address:port');
  2857               addr = result[1];
  2858               port = parseInt(result[2], 10);
  2860           } else {
  2861             // create the actual websocket object and connect
  2862             try {
  2863               var url = 'ws://' + addr + ':' + port;
  2864               // the node ws library API is slightly different than the browser's
  2865               var opts = ENVIRONMENT_IS_NODE ? {} : ['binary'];
  2866               ws = new WebSocket(url, opts);
  2867               ws.binaryType = 'arraybuffer';
  2868             } catch (e) {
  2869               throw new FS.ErrnoError(ERRNO_CODES.EHOSTUNREACH);
  2872           var peer = {
  2873             addr: addr,
  2874             port: port,
  2875             socket: ws,
  2876             dgram_send_queue: []
  2877           };
  2878           SOCKFS.websocket_sock_ops.addPeer(sock, peer);
  2879           SOCKFS.websocket_sock_ops.handlePeerEvents(sock, peer);
  2880           // if this is a bound dgram socket, send the port number first to allow
  2881           // us to override the ephemeral port reported to us by remotePort on the
  2882           // remote end.
  2883           if (sock.type === 2 && typeof sock.sport !== 'undefined') {
  2884             peer.dgram_send_queue.push(new Uint8Array([
  2885                 255, 255, 255, 255,
  2886                 'p'.charCodeAt(0), 'o'.charCodeAt(0), 'r'.charCodeAt(0), 't'.charCodeAt(0),
  2887                 ((sock.sport & 0xff00) >> 8) , (sock.sport & 0xff)
  2888             ]));
  2890           return peer;
  2891         },getPeer:function (sock, addr, port) {
  2892           return sock.peers[addr + ':' + port];
  2893         },addPeer:function (sock, peer) {
  2894           sock.peers[peer.addr + ':' + peer.port] = peer;
  2895         },removePeer:function (sock, peer) {
  2896           delete sock.peers[peer.addr + ':' + peer.port];
  2897         },handlePeerEvents:function (sock, peer) {
  2898           var first = true;
  2899           var handleOpen = function () {
  2900             try {
  2901               var queued = peer.dgram_send_queue.shift();
  2902               while (queued) {
  2903                 peer.socket.send(queued);
  2904                 queued = peer.dgram_send_queue.shift();
  2906             } catch (e) {
  2907               // not much we can do here in the way of proper error handling as we've already
  2908               // lied and said this data was sent. shut it down.
  2909               peer.socket.close();
  2911           };
  2912           var handleMessage = function(data) {
  2913             assert(typeof data !== 'string' && data.byteLength !== undefined);  // must receive an ArrayBuffer
  2914             data = new Uint8Array(data);  // make a typed array view on the array buffer
  2915             // if this is the port message, override the peer's port with it
  2916             var wasfirst = first;
  2917             first = false;
  2918             if (wasfirst &&
  2919                 data.length === 10 &&
  2920                 data[0] === 255 && data[1] === 255 && data[2] === 255 && data[3] === 255 &&
  2921                 data[4] === 'p'.charCodeAt(0) && data[5] === 'o'.charCodeAt(0) && data[6] === 'r'.charCodeAt(0) && data[7] === 't'.charCodeAt(0)) {
  2922               // update the peer's port and it's key in the peer map
  2923               var newport = ((data[8] << 8) | data[9]);
  2924               SOCKFS.websocket_sock_ops.removePeer(sock, peer);
  2925               peer.port = newport;
  2926               SOCKFS.websocket_sock_ops.addPeer(sock, peer);
  2927               return;
  2929             sock.recv_queue.push({ addr: peer.addr, port: peer.port, data: data });
  2930           };
  2931           if (ENVIRONMENT_IS_NODE) {
  2932             peer.socket.on('open', handleOpen);
  2933             peer.socket.on('message', function(data, flags) {
  2934               if (!flags.binary) {
  2935                 return;
  2937               handleMessage((new Uint8Array(data)).buffer);  // copy from node Buffer -> ArrayBuffer
  2938             });
  2939             peer.socket.on('error', function() {
  2940               // don't throw
  2941             });
  2942           } else {
  2943             peer.socket.onopen = handleOpen;
  2944             peer.socket.onmessage = function(event) {
  2945               handleMessage(event.data);
  2946             };
  2948         },poll:function (sock) {
  2949           if (sock.type === 1 && sock.server) {
  2950             // listen sockets should only say they're available for reading
  2951             // if there are pending clients.
  2952             return sock.pending.length ? (0 /* XXX missing C define POLLRDNORM */ | 1) : 0;
  2954           var mask = 0;
  2955           var dest = sock.type === 1 ?  // we only care about the socket state for connection-based sockets
  2956             SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport) :
  2957             null;
  2958           if (sock.recv_queue.length ||
  2959               !dest ||  // connection-less sockets are always ready to read
  2960               (dest && dest.socket.readyState === dest.socket.CLOSING) ||
  2961               (dest && dest.socket.readyState === dest.socket.CLOSED)) {  // let recv return 0 once closed
  2962             mask |= (0 /* XXX missing C define POLLRDNORM */ | 1);
  2964           if (!dest ||  // connection-less sockets are always ready to write
  2965               (dest && dest.socket.readyState === dest.socket.OPEN)) {
  2966             mask |= 2;
  2968           if ((dest && dest.socket.readyState === dest.socket.CLOSING) ||
  2969               (dest && dest.socket.readyState === dest.socket.CLOSED)) {
  2970             mask |= 16;
  2972           return mask;
  2973         },ioctl:function (sock, request, arg) {
  2974           switch (request) {
  2975             case 1:
  2976               var bytes = 0;
  2977               if (sock.recv_queue.length) {
  2978                 bytes = sock.recv_queue[0].data.length;
  2980               HEAP32[((arg)>>2)]=bytes;
  2981               return 0;
  2982             default:
  2983               return ERRNO_CODES.EINVAL;
  2985         },close:function (sock) {
  2986           // if we've spawned a listen server, close it
  2987           if (sock.server) {
  2988             try {
  2989               sock.server.close();
  2990             } catch (e) {
  2992             sock.server = null;
  2994           // close any peer connections
  2995           var peers = Object.keys(sock.peers);
  2996           for (var i = 0; i < peers.length; i++) {
  2997             var peer = sock.peers[peers[i]];
  2998             try {
  2999               peer.socket.close();
  3000             } catch (e) {
  3002             SOCKFS.websocket_sock_ops.removePeer(sock, peer);
  3004           return 0;
  3005         },bind:function (sock, addr, port) {
  3006           if (typeof sock.saddr !== 'undefined' || typeof sock.sport !== 'undefined') {
  3007             throw new FS.ErrnoError(ERRNO_CODES.EINVAL);  // already bound
  3009           sock.saddr = addr;
  3010           sock.sport = port || _mkport();
  3011           // in order to emulate dgram sockets, we need to launch a listen server when
  3012           // binding on a connection-less socket
  3013           // note: this is only required on the server side
  3014           if (sock.type === 2) {
  3015             // close the existing server if it exists
  3016             if (sock.server) {
  3017               sock.server.close();
  3018               sock.server = null;
  3020             // swallow error operation not supported error that occurs when binding in the
  3021             // browser where this isn't supported
  3022             try {
  3023               sock.sock_ops.listen(sock, 0);
  3024             } catch (e) {
  3025               if (!(e instanceof FS.ErrnoError)) throw e;
  3026               if (e.errno !== ERRNO_CODES.EOPNOTSUPP) throw e;
  3029         },connect:function (sock, addr, port) {
  3030           if (sock.server) {
  3031             throw new FS.ErrnoError(ERRNO_CODS.EOPNOTSUPP);
  3033           // TODO autobind
  3034           // if (!sock.addr && sock.type == 2) {
  3035           // }
  3036           // early out if we're already connected / in the middle of connecting
  3037           if (typeof sock.daddr !== 'undefined' && typeof sock.dport !== 'undefined') {
  3038             var dest = SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport);
  3039             if (dest) {
  3040               if (dest.socket.readyState === dest.socket.CONNECTING) {
  3041                 throw new FS.ErrnoError(ERRNO_CODES.EALREADY);
  3042               } else {
  3043                 throw new FS.ErrnoError(ERRNO_CODES.EISCONN);
  3047           // add the socket to our peer list and set our
  3048           // destination address / port to match
  3049           var peer = SOCKFS.websocket_sock_ops.createPeer(sock, addr, port);
  3050           sock.daddr = peer.addr;
  3051           sock.dport = peer.port;
  3052           // always "fail" in non-blocking mode
  3053           throw new FS.ErrnoError(ERRNO_CODES.EINPROGRESS);
  3054         },listen:function (sock, backlog) {
  3055           if (!ENVIRONMENT_IS_NODE) {
  3056             throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);
  3058           if (sock.server) {
  3059              throw new FS.ErrnoError(ERRNO_CODES.EINVAL);  // already listening
  3061           var WebSocketServer = require('ws').Server;
  3062           var host = sock.saddr;
  3063           sock.server = new WebSocketServer({
  3064             host: host,
  3065             port: sock.sport
  3066             // TODO support backlog
  3067           });
  3068           sock.server.on('connection', function(ws) {
  3069             if (sock.type === 1) {
  3070               var newsock = SOCKFS.createSocket(sock.family, sock.type, sock.protocol);
  3071               // create a peer on the new socket
  3072               var peer = SOCKFS.websocket_sock_ops.createPeer(newsock, ws);
  3073               newsock.daddr = peer.addr;
  3074               newsock.dport = peer.port;
  3075               // push to queue for accept to pick up
  3076               sock.pending.push(newsock);
  3077             } else {
  3078               // create a peer on the listen socket so calling sendto
  3079               // with the listen socket and an address will resolve
  3080               // to the correct client
  3081               SOCKFS.websocket_sock_ops.createPeer(sock, ws);
  3083           });
  3084           sock.server.on('closed', function() {
  3085             sock.server = null;
  3086           });
  3087           sock.server.on('error', function() {
  3088             // don't throw
  3089           });
  3090         },accept:function (listensock) {
  3091           if (!listensock.server) {
  3092             throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  3094           var newsock = listensock.pending.shift();
  3095           newsock.stream.flags = listensock.stream.flags;
  3096           return newsock;
  3097         },getname:function (sock, peer) {
  3098           var addr, port;
  3099           if (peer) {
  3100             if (sock.daddr === undefined || sock.dport === undefined) {
  3101               throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);
  3103             addr = sock.daddr;
  3104             port = sock.dport;
  3105           } else {
  3106             // TODO saddr and sport will be set for bind()'d UDP sockets, but what
  3107             // should we be returning for TCP sockets that've been connect()'d?
  3108             addr = sock.saddr || 0;
  3109             port = sock.sport || 0;
  3111           return { addr: addr, port: port };
  3112         },sendmsg:function (sock, buffer, offset, length, addr, port) {
  3113           if (sock.type === 2) {
  3114             // connection-less sockets will honor the message address,
  3115             // and otherwise fall back to the bound destination address
  3116             if (addr === undefined || port === undefined) {
  3117               addr = sock.daddr;
  3118               port = sock.dport;
  3120             // if there was no address to fall back to, error out
  3121             if (addr === undefined || port === undefined) {
  3122               throw new FS.ErrnoError(ERRNO_CODES.EDESTADDRREQ);
  3124           } else {
  3125             // connection-based sockets will only use the bound
  3126             addr = sock.daddr;
  3127             port = sock.dport;
  3129           // find the peer for the destination address
  3130           var dest = SOCKFS.websocket_sock_ops.getPeer(sock, addr, port);
  3131           // early out if not connected with a connection-based socket
  3132           if (sock.type === 1) {
  3133             if (!dest || dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) {
  3134               throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);
  3135             } else if (dest.socket.readyState === dest.socket.CONNECTING) {
  3136               throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
  3139           // create a copy of the incoming data to send, as the WebSocket API
  3140           // doesn't work entirely with an ArrayBufferView, it'll just send
  3141           // the entire underlying buffer
  3142           var data;
  3143           if (buffer instanceof Array || buffer instanceof ArrayBuffer) {
  3144             data = buffer.slice(offset, offset + length);
  3145           } else {  // ArrayBufferView
  3146             data = buffer.buffer.slice(buffer.byteOffset + offset, buffer.byteOffset + offset + length);
  3148           // if we're emulating a connection-less dgram socket and don't have
  3149           // a cached connection, queue the buffer to send upon connect and
  3150           // lie, saying the data was sent now.
  3151           if (sock.type === 2) {
  3152             if (!dest || dest.socket.readyState !== dest.socket.OPEN) {
  3153               // if we're not connected, open a new connection
  3154               if (!dest || dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) {
  3155                 dest = SOCKFS.websocket_sock_ops.createPeer(sock, addr, port);
  3157               dest.dgram_send_queue.push(data);
  3158               return length;
  3161           try {
  3162             // send the actual data
  3163             dest.socket.send(data);
  3164             return length;
  3165           } catch (e) {
  3166             throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
  3168         },recvmsg:function (sock, length) {
  3169           // http://pubs.opengroup.org/onlinepubs/7908799/xns/recvmsg.html
  3170           if (sock.type === 1 && sock.server) {
  3171             // tcp servers should not be recv()'ing on the listen socket
  3172             throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);
  3174           var queued = sock.recv_queue.shift();
  3175           if (!queued) {
  3176             if (sock.type === 1) {
  3177               var dest = SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport);
  3178               if (!dest) {
  3179                 // if we have a destination address but are not connected, error out
  3180                 throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);
  3182               else if (dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) {
  3183                 // return null if the socket has closed
  3184                 return null;
  3186               else {
  3187                 // else, our socket is in a valid state but truly has nothing available
  3188                 throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
  3190             } else {
  3191               throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
  3194           // queued.data will be an ArrayBuffer if it's unadulterated, but if it's
  3195           // requeued TCP data it'll be an ArrayBufferView
  3196           var queuedLength = queued.data.byteLength || queued.data.length;
  3197           var queuedOffset = queued.data.byteOffset || 0;
  3198           var queuedBuffer = queued.data.buffer || queued.data;
  3199           var bytesRead = Math.min(length, queuedLength);
  3200           var res = {
  3201             buffer: new Uint8Array(queuedBuffer, queuedOffset, bytesRead),
  3202             addr: queued.addr,
  3203             port: queued.port
  3204           };
  3205           // push back any unread data for TCP connections
  3206           if (sock.type === 1 && bytesRead < queuedLength) {
  3207             var bytesRemaining = queuedLength - bytesRead;
  3208             queued.data = new Uint8Array(queuedBuffer, queuedOffset + bytesRead, bytesRemaining);
  3209             sock.recv_queue.unshift(queued);
  3211           return res;
  3212         }}};function _send(fd, buf, len, flags) {
  3213       var sock = SOCKFS.getSocket(fd);
  3214       if (!sock) {
  3215         ___setErrNo(ERRNO_CODES.EBADF);
  3216         return -1;
  3218       // TODO honor flags
  3219       return _write(fd, buf, len);
  3221   function _pwrite(fildes, buf, nbyte, offset) {
  3222       // ssize_t pwrite(int fildes, const void *buf, size_t nbyte, off_t offset);
  3223       // http://pubs.opengroup.org/onlinepubs/000095399/functions/write.html
  3224       var stream = FS.getStream(fildes);
  3225       if (!stream) {
  3226         ___setErrNo(ERRNO_CODES.EBADF);
  3227         return -1;
  3229       try {
  3230         var slab = HEAP8;
  3231         return FS.write(stream, slab, buf, nbyte, offset);
  3232       } catch (e) {
  3233         FS.handleFSError(e);
  3234         return -1;
  3236     }function _write(fildes, buf, nbyte) {
  3237       // ssize_t write(int fildes, const void *buf, size_t nbyte);
  3238       // http://pubs.opengroup.org/onlinepubs/000095399/functions/write.html
  3239       var stream = FS.getStream(fildes);
  3240       if (!stream) {
  3241         ___setErrNo(ERRNO_CODES.EBADF);
  3242         return -1;
  3244       try {
  3245         var slab = HEAP8;
  3246         return FS.write(stream, slab, buf, nbyte);
  3247       } catch (e) {
  3248         FS.handleFSError(e);
  3249         return -1;
  3251     }function _fwrite(ptr, size, nitems, stream) {
  3252       // size_t fwrite(const void *restrict ptr, size_t size, size_t nitems, FILE *restrict stream);
  3253       // http://pubs.opengroup.org/onlinepubs/000095399/functions/fwrite.html
  3254       var bytesToWrite = nitems * size;
  3255       if (bytesToWrite == 0) return 0;
  3256       var bytesWritten = _write(stream, ptr, bytesToWrite);
  3257       if (bytesWritten == -1) {
  3258         var streamObj = FS.getStream(stream);
  3259         if (streamObj) streamObj.error = true;
  3260         return 0;
  3261       } else {
  3262         return Math.floor(bytesWritten / size);
  3265   Module["_strlen"] = _strlen;
  3266   function __reallyNegative(x) {
  3267       return x < 0 || (x === 0 && (1/x) === -Infinity);
  3268     }function __formatString(format, varargs) {
  3269       var textIndex = format;
  3270       var argIndex = 0;
  3271       function getNextArg(type) {
  3272         // NOTE: Explicitly ignoring type safety. Otherwise this fails:
  3273         //       int x = 4; printf("%c\n", (char)x);
  3274         var ret;
  3275         if (type === 'double') {
  3276           ret = HEAPF64[(((varargs)+(argIndex))>>3)];
  3277         } else if (type == 'i64') {
  3278           ret = [HEAP32[(((varargs)+(argIndex))>>2)],
  3279                  HEAP32[(((varargs)+(argIndex+8))>>2)]];
  3280           argIndex += 8; // each 32-bit chunk is in a 64-bit block
  3281         } else {
  3282           type = 'i32'; // varargs are always i32, i64, or double
  3283           ret = HEAP32[(((varargs)+(argIndex))>>2)];
  3285         argIndex += Math.max(Runtime.getNativeFieldSize(type), Runtime.getAlignSize(type, null, true));
  3286         return ret;
  3288       var ret = [];
  3289       var curr, next, currArg;
  3290       while(1) {
  3291         var startTextIndex = textIndex;
  3292         curr = HEAP8[(textIndex)];
  3293         if (curr === 0) break;
  3294         next = HEAP8[((textIndex+1)|0)];
  3295         if (curr == 37) {
  3296           // Handle flags.
  3297           var flagAlwaysSigned = false;
  3298           var flagLeftAlign = false;
  3299           var flagAlternative = false;
  3300           var flagZeroPad = false;
  3301           flagsLoop: while (1) {
  3302             switch (next) {
  3303               case 43:
  3304                 flagAlwaysSigned = true;
  3305                 break;
  3306               case 45:
  3307                 flagLeftAlign = true;
  3308                 break;
  3309               case 35:
  3310                 flagAlternative = true;
  3311                 break;
  3312               case 48:
  3313                 if (flagZeroPad) {
  3314                   break flagsLoop;
  3315                 } else {
  3316                   flagZeroPad = true;
  3317                   break;
  3319               default:
  3320                 break flagsLoop;
  3322             textIndex++;
  3323             next = HEAP8[((textIndex+1)|0)];
  3325           // Handle width.
  3326           var width = 0;
  3327           if (next == 42) {
  3328             width = getNextArg('i32');
  3329             textIndex++;
  3330             next = HEAP8[((textIndex+1)|0)];
  3331           } else {
  3332             while (next >= 48 && next <= 57) {
  3333               width = width * 10 + (next - 48);
  3334               textIndex++;
  3335               next = HEAP8[((textIndex+1)|0)];
  3338           // Handle precision.
  3339           var precisionSet = false;
  3340           if (next == 46) {
  3341             var precision = 0;
  3342             precisionSet = true;
  3343             textIndex++;
  3344             next = HEAP8[((textIndex+1)|0)];
  3345             if (next == 42) {
  3346               precision = getNextArg('i32');
  3347               textIndex++;
  3348             } else {
  3349               while(1) {
  3350                 var precisionChr = HEAP8[((textIndex+1)|0)];
  3351                 if (precisionChr < 48 ||
  3352                     precisionChr > 57) break;
  3353                 precision = precision * 10 + (precisionChr - 48);
  3354                 textIndex++;
  3357             next = HEAP8[((textIndex+1)|0)];
  3358           } else {
  3359             var precision = 6; // Standard default.
  3361           // Handle integer sizes. WARNING: These assume a 32-bit architecture!
  3362           var argSize;
  3363           switch (String.fromCharCode(next)) {
  3364             case 'h':
  3365               var nextNext = HEAP8[((textIndex+2)|0)];
  3366               if (nextNext == 104) {
  3367                 textIndex++;
  3368                 argSize = 1; // char (actually i32 in varargs)
  3369               } else {
  3370                 argSize = 2; // short (actually i32 in varargs)
  3372               break;
  3373             case 'l':
  3374               var nextNext = HEAP8[((textIndex+2)|0)];
  3375               if (nextNext == 108) {
  3376                 textIndex++;
  3377                 argSize = 8; // long long
  3378               } else {
  3379                 argSize = 4; // long
  3381               break;
  3382             case 'L': // long long
  3383             case 'q': // int64_t
  3384             case 'j': // intmax_t
  3385               argSize = 8;
  3386               break;
  3387             case 'z': // size_t
  3388             case 't': // ptrdiff_t
  3389             case 'I': // signed ptrdiff_t or unsigned size_t
  3390               argSize = 4;
  3391               break;
  3392             default:
  3393               argSize = null;
  3395           if (argSize) textIndex++;
  3396           next = HEAP8[((textIndex+1)|0)];
  3397           // Handle type specifier.
  3398           switch (String.fromCharCode(next)) {
  3399             case 'd': case 'i': case 'u': case 'o': case 'x': case 'X': case 'p': {
  3400               // Integer.
  3401               var signed = next == 100 || next == 105;
  3402               argSize = argSize || 4;
  3403               var currArg = getNextArg('i' + (argSize * 8));
  3404               var origArg = currArg;
  3405               var argText;
  3406               // Flatten i64-1 [low, high] into a (slightly rounded) double
  3407               if (argSize == 8) {
  3408                 currArg = Runtime.makeBigInt(currArg[0], currArg[1], next == 117);
  3410               // Truncate to requested size.
  3411               if (argSize <= 4) {
  3412                 var limit = Math.pow(256, argSize) - 1;
  3413                 currArg = (signed ? reSign : unSign)(currArg & limit, argSize * 8);
  3415               // Format the number.
  3416               var currAbsArg = Math.abs(currArg);
  3417               var prefix = '';
  3418               if (next == 100 || next == 105) {
  3419                 if (argSize == 8 && i64Math) argText = i64Math.stringify(origArg[0], origArg[1], null); else
  3420                 argText = reSign(currArg, 8 * argSize, 1).toString(10);
  3421               } else if (next == 117) {
  3422                 if (argSize == 8 && i64Math) argText = i64Math.stringify(origArg[0], origArg[1], true); else
  3423                 argText = unSign(currArg, 8 * argSize, 1).toString(10);
  3424                 currArg = Math.abs(currArg);
  3425               } else if (next == 111) {
  3426                 argText = (flagAlternative ? '0' : '') + currAbsArg.toString(8);
  3427               } else if (next == 120 || next == 88) {
  3428                 prefix = (flagAlternative && currArg != 0) ? '0x' : '';
  3429                 if (argSize == 8 && i64Math) {
  3430                   if (origArg[1]) {
  3431                     argText = (origArg[1]>>>0).toString(16);
  3432                     var lower = (origArg[0]>>>0).toString(16);
  3433                     while (lower.length < 8) lower = '0' + lower;
  3434                     argText += lower;
  3435                   } else {
  3436                     argText = (origArg[0]>>>0).toString(16);
  3438                 } else
  3439                 if (currArg < 0) {
  3440                   // Represent negative numbers in hex as 2's complement.
  3441                   currArg = -currArg;
  3442                   argText = (currAbsArg - 1).toString(16);
  3443                   var buffer = [];
  3444                   for (var i = 0; i < argText.length; i++) {
  3445                     buffer.push((0xF - parseInt(argText[i], 16)).toString(16));
  3447                   argText = buffer.join('');
  3448                   while (argText.length < argSize * 2) argText = 'f' + argText;
  3449                 } else {
  3450                   argText = currAbsArg.toString(16);
  3452                 if (next == 88) {
  3453                   prefix = prefix.toUpperCase();
  3454                   argText = argText.toUpperCase();
  3456               } else if (next == 112) {
  3457                 if (currAbsArg === 0) {
  3458                   argText = '(nil)';
  3459                 } else {
  3460                   prefix = '0x';
  3461                   argText = currAbsArg.toString(16);
  3464               if (precisionSet) {
  3465                 while (argText.length < precision) {
  3466                   argText = '0' + argText;
  3469               // Add sign if needed
  3470               if (flagAlwaysSigned) {
  3471                 if (currArg < 0) {
  3472                   prefix = '-' + prefix;
  3473                 } else {
  3474                   prefix = '+' + prefix;
  3477               // Add padding.
  3478               while (prefix.length + argText.length < width) {
  3479                 if (flagLeftAlign) {
  3480                   argText += ' ';
  3481                 } else {
  3482                   if (flagZeroPad) {
  3483                     argText = '0' + argText;
  3484                   } else {
  3485                     prefix = ' ' + prefix;
  3489               // Insert the result into the buffer.
  3490               argText = prefix + argText;
  3491               argText.split('').forEach(function(chr) {
  3492                 ret.push(chr.charCodeAt(0));
  3493               });
  3494               break;
  3496             case 'f': case 'F': case 'e': case 'E': case 'g': case 'G': {
  3497               // Float.
  3498               var currArg = getNextArg('double');
  3499               var argText;
  3500               if (isNaN(currArg)) {
  3501                 argText = 'nan';
  3502                 flagZeroPad = false;
  3503               } else if (!isFinite(currArg)) {
  3504                 argText = (currArg < 0 ? '-' : '') + 'inf';
  3505                 flagZeroPad = false;
  3506               } else {
  3507                 var isGeneral = false;
  3508                 var effectivePrecision = Math.min(precision, 20);
  3509                 // Convert g/G to f/F or e/E, as per:
  3510                 // http://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html
  3511                 if (next == 103 || next == 71) {
  3512                   isGeneral = true;
  3513                   precision = precision || 1;
  3514                   var exponent = parseInt(currArg.toExponential(effectivePrecision).split('e')[1], 10);
  3515                   if (precision > exponent && exponent >= -4) {
  3516                     next = ((next == 103) ? 'f' : 'F').charCodeAt(0);
  3517                     precision -= exponent + 1;
  3518                   } else {
  3519                     next = ((next == 103) ? 'e' : 'E').charCodeAt(0);
  3520                     precision--;
  3522                   effectivePrecision = Math.min(precision, 20);
  3524                 if (next == 101 || next == 69) {
  3525                   argText = currArg.toExponential(effectivePrecision);
  3526                   // Make sure the exponent has at least 2 digits.
  3527                   if (/[eE][-+]\d$/.test(argText)) {
  3528                     argText = argText.slice(0, -1) + '0' + argText.slice(-1);
  3530                 } else if (next == 102 || next == 70) {
  3531                   argText = currArg.toFixed(effectivePrecision);
  3532                   if (currArg === 0 && __reallyNegative(currArg)) {
  3533                     argText = '-' + argText;
  3536                 var parts = argText.split('e');
  3537                 if (isGeneral && !flagAlternative) {
  3538                   // Discard trailing zeros and periods.
  3539                   while (parts[0].length > 1 && parts[0].indexOf('.') != -1 &&
  3540                          (parts[0].slice(-1) == '0' || parts[0].slice(-1) == '.')) {
  3541                     parts[0] = parts[0].slice(0, -1);
  3543                 } else {
  3544                   // Make sure we have a period in alternative mode.
  3545                   if (flagAlternative && argText.indexOf('.') == -1) parts[0] += '.';
  3546                   // Zero pad until required precision.
  3547                   while (precision > effectivePrecision++) parts[0] += '0';
  3549                 argText = parts[0] + (parts.length > 1 ? 'e' + parts[1] : '');
  3550                 // Capitalize 'E' if needed.
  3551                 if (next == 69) argText = argText.toUpperCase();
  3552                 // Add sign.
  3553                 if (flagAlwaysSigned && currArg >= 0) {
  3554                   argText = '+' + argText;
  3557               // Add padding.
  3558               while (argText.length < width) {
  3559                 if (flagLeftAlign) {
  3560                   argText += ' ';
  3561                 } else {
  3562                   if (flagZeroPad && (argText[0] == '-' || argText[0] == '+')) {
  3563                     argText = argText[0] + '0' + argText.slice(1);
  3564                   } else {
  3565                     argText = (flagZeroPad ? '0' : ' ') + argText;
  3569               // Adjust case.
  3570               if (next < 97) argText = argText.toUpperCase();
  3571               // Insert the result into the buffer.
  3572               argText.split('').forEach(function(chr) {
  3573                 ret.push(chr.charCodeAt(0));
  3574               });
  3575               break;
  3577             case 's': {
  3578               // String.
  3579               var arg = getNextArg('i8*');
  3580               var argLength = arg ? _strlen(arg) : '(null)'.length;
  3581               if (precisionSet) argLength = Math.min(argLength, precision);
  3582               if (!flagLeftAlign) {
  3583                 while (argLength < width--) {
  3584                   ret.push(32);
  3587               if (arg) {
  3588                 for (var i = 0; i < argLength; i++) {
  3589                   ret.push(HEAPU8[((arg++)|0)]);
  3591               } else {
  3592                 ret = ret.concat(intArrayFromString('(null)'.substr(0, argLength), true));
  3594               if (flagLeftAlign) {
  3595                 while (argLength < width--) {
  3596                   ret.push(32);
  3599               break;
  3601             case 'c': {
  3602               // Character.
  3603               if (flagLeftAlign) ret.push(getNextArg('i8'));
  3604               while (--width > 0) {
  3605                 ret.push(32);
  3607               if (!flagLeftAlign) ret.push(getNextArg('i8'));
  3608               break;
  3610             case 'n': {
  3611               // Write the length written so far to the next parameter.
  3612               var ptr = getNextArg('i32*');
  3613               HEAP32[((ptr)>>2)]=ret.length
  3614               break;
  3616             case '%': {
  3617               // Literal percent sign.
  3618               ret.push(curr);
  3619               break;
  3621             default: {
  3622               // Unknown specifiers remain untouched.
  3623               for (var i = startTextIndex; i < textIndex + 2; i++) {
  3624                 ret.push(HEAP8[(i)]);
  3628           textIndex += 2;
  3629           // TODO: Support a/A (hex float) and m (last error) specifiers.
  3630           // TODO: Support %1${specifier} for arg selection.
  3631         } else {
  3632           ret.push(curr);
  3633           textIndex += 1;
  3636       return ret;
  3637     }function _fprintf(stream, format, varargs) {
  3638       // int fprintf(FILE *restrict stream, const char *restrict format, ...);
  3639       // http://pubs.opengroup.org/onlinepubs/000095399/functions/printf.html
  3640       var result = __formatString(format, varargs);
  3641       var stack = Runtime.stackSave();
  3642       var ret = _fwrite(allocate(result, 'i8', ALLOC_STACK), 1, result.length, stream);
  3643       Runtime.stackRestore(stack);
  3644       return ret;
  3645     }function _printf(format, varargs) {
  3646       // int printf(const char *restrict format, ...);
  3647       // http://pubs.opengroup.org/onlinepubs/000095399/functions/printf.html
  3648       var stdout = HEAP32[((_stdout)>>2)];
  3649       return _fprintf(stdout, format, varargs);
  3651   Module["_memcpy"] = _memcpy;var _llvm_memcpy_p0i8_p0i8_i32=_memcpy;
  3652   function ___cxa_guard_acquire(variable) {
  3653       if (!HEAP8[(variable)]) { // ignore SAFE_HEAP stuff because llvm mixes i64 and i8 here
  3654         HEAP8[(variable)]=1;
  3655         return 1;
  3657       return 0;
  3659   function ___cxa_guard_release() {}
  3660   Module["_memset"] = _memset;var _llvm_memset_p0i8_i64=_memset;
  3661   var _sinf=Math.sin;
  3662   var _cosf=Math.cos;
  3663   var _sqrtf=Math.sqrt;
  3664   var _fabsf=Math.abs;
  3665   function _llvm_lifetime_start() {}
  3666   function _llvm_lifetime_end() {}
  3667   function _fmod(x, y) {
  3668       return x % y;
  3669     }var _fmodf=_fmod;
  3670   var _atan2f=Math.atan2;
  3671   var _llvm_pow_f32=Math.pow;
  3672   var _acosf=Math.acos;
  3673   var _llvm_memset_p0i8_i32=_memset;
  3674   function _atexit(func, arg) {
  3675       __ATEXIT__.unshift({ func: func, arg: arg });
  3676     }var ___cxa_atexit=_atexit;
  3677   function ___cxa_guard_abort() {}
  3678   function ___cxa_pure_virtual() {
  3679       ABORT = true;
  3680       throw 'Pure virtual function called!';
  3682   function ___assert_func(filename, line, func, condition) {
  3683       throw 'Assertion failed: ' + (condition ? Pointer_stringify(condition) : 'unknown condition') + ', at: ' + [filename ? Pointer_stringify(filename) : 'unknown filename', line, func ? Pointer_stringify(func) : 'unknown function'] + ' at ' + new Error().stack;
  3685   Module["_llvm_uadd_with_overflow_i64"] = _llvm_uadd_with_overflow_i64;
  3686   function _gettimeofday(ptr) {
  3687       // %struct.timeval = type { i32, i32 }
  3688       var now = Date.now();
  3689       HEAP32[((ptr)>>2)]=Math.floor(now/1000); // seconds
  3690       HEAP32[(((ptr)+(4))>>2)]=Math.floor((now-1000*Math.floor(now/1000))*1000); // microseconds
  3691       return 0;
  3693   function _abort() {
  3694       Module['abort']();
  3696   function ___errno_location() {
  3697       return ___errno_state;
  3698     }var ___errno=___errno_location;
  3699   function _sbrk(bytes) {
  3700       // Implement a Linux-like 'memory area' for our 'process'.
  3701       // Changes the size of the memory area by |bytes|; returns the
  3702       // address of the previous top ('break') of the memory area
  3703       // We control the "dynamic" memory - DYNAMIC_BASE to DYNAMICTOP
  3704       var self = _sbrk;
  3705       if (!self.called) {
  3706         DYNAMICTOP = alignMemoryPage(DYNAMICTOP); // make sure we start out aligned
  3707         self.called = true;
  3708         assert(Runtime.dynamicAlloc);
  3709         self.alloc = Runtime.dynamicAlloc;
  3710         Runtime.dynamicAlloc = function() { abort('cannot dynamically allocate, sbrk now has control') };
  3712       var ret = DYNAMICTOP;
  3713       if (bytes != 0) self.alloc(bytes);
  3714       return ret;  // Previous break location.
  3716   function _sysconf(name) {
  3717       // long sysconf(int name);
  3718       // http://pubs.opengroup.org/onlinepubs/009695399/functions/sysconf.html
  3719       switch(name) {
  3720         case 8: return PAGE_SIZE;
  3721         case 54:
  3722         case 56:
  3723         case 21:
  3724         case 61:
  3725         case 63:
  3726         case 22:
  3727         case 67:
  3728         case 23:
  3729         case 24:
  3730         case 25:
  3731         case 26:
  3732         case 27:
  3733         case 69:
  3734         case 28:
  3735         case 101:
  3736         case 70:
  3737         case 71:
  3738         case 29:
  3739         case 30:
  3740         case 199:
  3741         case 75:
  3742         case 76:
  3743         case 32:
  3744         case 43:
  3745         case 44:
  3746         case 80:
  3747         case 46:
  3748         case 47:
  3749         case 45:
  3750         case 48:
  3751         case 49:
  3752         case 42:
  3753         case 82:
  3754         case 33:
  3755         case 7:
  3756         case 108:
  3757         case 109:
  3758         case 107:
  3759         case 112:
  3760         case 119:
  3761         case 121:
  3762           return 200809;
  3763         case 13:
  3764         case 104:
  3765         case 94:
  3766         case 95:
  3767         case 34:
  3768         case 35:
  3769         case 77:
  3770         case 81:
  3771         case 83:
  3772         case 84:
  3773         case 85:
  3774         case 86:
  3775         case 87:
  3776         case 88:
  3777         case 89:
  3778         case 90:
  3779         case 91:
  3780         case 94:
  3781         case 95:
  3782         case 110:
  3783         case 111:
  3784         case 113:
  3785         case 114:
  3786         case 115:
  3787         case 116:
  3788         case 117:
  3789         case 118:
  3790         case 120:
  3791         case 40:
  3792         case 16:
  3793         case 79:
  3794         case 19:
  3795           return -1;
  3796         case 92:
  3797         case 93:
  3798         case 5:
  3799         case 72:
  3800         case 6:
  3801         case 74:
  3802         case 92:
  3803         case 93:
  3804         case 96:
  3805         case 97:
  3806         case 98:
  3807         case 99:
  3808         case 102:
  3809         case 103:
  3810         case 105:
  3811           return 1;
  3812         case 38:
  3813         case 66:
  3814         case 50:
  3815         case 51:
  3816         case 4:
  3817           return 1024;
  3818         case 15:
  3819         case 64:
  3820         case 41:
  3821           return 32;
  3822         case 55:
  3823         case 37:
  3824         case 17:
  3825           return 2147483647;
  3826         case 18:
  3827         case 1:
  3828           return 47839;
  3829         case 59:
  3830         case 57:
  3831           return 99;
  3832         case 68:
  3833         case 58:
  3834           return 2048;
  3835         case 0: return 2097152;
  3836         case 3: return 65536;
  3837         case 14: return 32768;
  3838         case 73: return 32767;
  3839         case 39: return 16384;
  3840         case 60: return 1000;
  3841         case 106: return 700;
  3842         case 52: return 256;
  3843         case 62: return 255;
  3844         case 2: return 100;
  3845         case 65: return 64;
  3846         case 36: return 20;
  3847         case 100: return 16;
  3848         case 20: return 6;
  3849         case 53: return 4;
  3850         case 10: return 1;
  3852       ___setErrNo(ERRNO_CODES.EINVAL);
  3853       return -1;
  3855   function _time(ptr) {
  3856       var ret = Math.floor(Date.now()/1000);
  3857       if (ptr) {
  3858         HEAP32[((ptr)>>2)]=ret
  3860       return ret;
  3862   function ___cxa_allocate_exception(size) {
  3863       return _malloc(size);
  3865   function _llvm_eh_exception() {
  3866       return HEAP32[((_llvm_eh_exception.buf)>>2)];
  3868   function __ZSt18uncaught_exceptionv() { // std::uncaught_exception()
  3869       return !!__ZSt18uncaught_exceptionv.uncaught_exception;
  3871   function ___cxa_is_number_type(type) {
  3872       var isNumber = false;
  3873       try { if (type == __ZTIi) isNumber = true } catch(e){}
  3874       try { if (type == __ZTIj) isNumber = true } catch(e){}
  3875       try { if (type == __ZTIl) isNumber = true } catch(e){}
  3876       try { if (type == __ZTIm) isNumber = true } catch(e){}
  3877       try { if (type == __ZTIx) isNumber = true } catch(e){}
  3878       try { if (type == __ZTIy) isNumber = true } catch(e){}
  3879       try { if (type == __ZTIf) isNumber = true } catch(e){}
  3880       try { if (type == __ZTId) isNumber = true } catch(e){}
  3881       try { if (type == __ZTIe) isNumber = true } catch(e){}
  3882       try { if (type == __ZTIc) isNumber = true } catch(e){}
  3883       try { if (type == __ZTIa) isNumber = true } catch(e){}
  3884       try { if (type == __ZTIh) isNumber = true } catch(e){}
  3885       try { if (type == __ZTIs) isNumber = true } catch(e){}
  3886       try { if (type == __ZTIt) isNumber = true } catch(e){}
  3887       return isNumber;
  3888     }function ___cxa_does_inherit(definiteType, possibilityType, possibility) {
  3889       if (possibility == 0) return false;
  3890       if (possibilityType == 0 || possibilityType == definiteType)
  3891         return true;
  3892       var possibility_type_info;
  3893       if (___cxa_is_number_type(possibilityType)) {
  3894         possibility_type_info = possibilityType;
  3895       } else {
  3896         var possibility_type_infoAddr = HEAP32[((possibilityType)>>2)] - 8;
  3897         possibility_type_info = HEAP32[((possibility_type_infoAddr)>>2)];
  3899       switch (possibility_type_info) {
  3900       case 0: // possibility is a pointer
  3901         // See if definite type is a pointer
  3902         var definite_type_infoAddr = HEAP32[((definiteType)>>2)] - 8;
  3903         var definite_type_info = HEAP32[((definite_type_infoAddr)>>2)];
  3904         if (definite_type_info == 0) {
  3905           // Also a pointer; compare base types of pointers
  3906           var defPointerBaseAddr = definiteType+8;
  3907           var defPointerBaseType = HEAP32[((defPointerBaseAddr)>>2)];
  3908           var possPointerBaseAddr = possibilityType+8;
  3909           var possPointerBaseType = HEAP32[((possPointerBaseAddr)>>2)];
  3910           return ___cxa_does_inherit(defPointerBaseType, possPointerBaseType, possibility);
  3911         } else
  3912           return false; // one pointer and one non-pointer
  3913       case 1: // class with no base class
  3914         return false;
  3915       case 2: // class with base class
  3916         var parentTypeAddr = possibilityType + 8;
  3917         var parentType = HEAP32[((parentTypeAddr)>>2)];
  3918         return ___cxa_does_inherit(definiteType, parentType, possibility);
  3919       default:
  3920         return false; // some unencountered type
  3923   function ___resumeException(ptr) {
  3924       if (HEAP32[((_llvm_eh_exception.buf)>>2)] == 0) HEAP32[((_llvm_eh_exception.buf)>>2)]=ptr;
  3925       throw ptr + " - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.";;
  3926     }function ___cxa_find_matching_catch(thrown, throwntype) {
  3927       if (thrown == -1) thrown = HEAP32[((_llvm_eh_exception.buf)>>2)];
  3928       if (throwntype == -1) throwntype = HEAP32[(((_llvm_eh_exception.buf)+(4))>>2)];
  3929       var typeArray = Array.prototype.slice.call(arguments, 2);
  3930       // If throwntype is a pointer, this means a pointer has been
  3931       // thrown. When a pointer is thrown, actually what's thrown
  3932       // is a pointer to the pointer. We'll dereference it.
  3933       if (throwntype != 0 && !___cxa_is_number_type(throwntype)) {
  3934         var throwntypeInfoAddr= HEAP32[((throwntype)>>2)] - 8;
  3935         var throwntypeInfo= HEAP32[((throwntypeInfoAddr)>>2)];
  3936         if (throwntypeInfo == 0)
  3937           thrown = HEAP32[((thrown)>>2)];
  3939       // The different catch blocks are denoted by different types.
  3940       // Due to inheritance, those types may not precisely match the
  3941       // type of the thrown object. Find one which matches, and
  3942       // return the type of the catch block which should be called.
  3943       for (var i = 0; i < typeArray.length; i++) {
  3944         if (___cxa_does_inherit(typeArray[i], throwntype, thrown))
  3945           return ((asm["setTempRet0"](typeArray[i]),thrown)|0);
  3947       // Shouldn't happen unless we have bogus data in typeArray
  3948       // or encounter a type for which emscripten doesn't have suitable
  3949       // typeinfo defined. Best-efforts match just in case.
  3950       return ((asm["setTempRet0"](throwntype),thrown)|0);
  3951     }function ___cxa_throw(ptr, type, destructor) {
  3952       if (!___cxa_throw.initialized) {
  3953         try {
  3954           HEAP32[((__ZTVN10__cxxabiv119__pointer_type_infoE)>>2)]=0; // Workaround for libcxxabi integration bug
  3955         } catch(e){}
  3956         try {
  3957           HEAP32[((__ZTVN10__cxxabiv117__class_type_infoE)>>2)]=1; // Workaround for libcxxabi integration bug
  3958         } catch(e){}
  3959         try {
  3960           HEAP32[((__ZTVN10__cxxabiv120__si_class_type_infoE)>>2)]=2; // Workaround for libcxxabi integration bug
  3961         } catch(e){}
  3962         ___cxa_throw.initialized = true;
  3964       HEAP32[((_llvm_eh_exception.buf)>>2)]=ptr
  3965       HEAP32[(((_llvm_eh_exception.buf)+(4))>>2)]=type
  3966       HEAP32[(((_llvm_eh_exception.buf)+(8))>>2)]=destructor
  3967       if (!("uncaught_exception" in __ZSt18uncaught_exceptionv)) {
  3968         __ZSt18uncaught_exceptionv.uncaught_exception = 1;
  3969       } else {
  3970         __ZSt18uncaught_exceptionv.uncaught_exception++;
  3972       throw ptr + " - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.";;
  3974   function ___cxa_call_unexpected(exception) {
  3975       Module.printErr('Unexpected exception thrown, this is not properly supported - aborting');
  3976       ABORT = true;
  3977       throw exception;
  3979   var Browser={mainLoop:{scheduler:null,shouldPause:false,paused:false,queue:[],pause:function () {
  3980           Browser.mainLoop.shouldPause = true;
  3981         },resume:function () {
  3982           if (Browser.mainLoop.paused) {
  3983             Browser.mainLoop.paused = false;
  3984             Browser.mainLoop.scheduler();
  3986           Browser.mainLoop.shouldPause = false;
  3987         },updateStatus:function () {
  3988           if (Module['setStatus']) {
  3989             var message = Module['statusMessage'] || 'Please wait...';
  3990             var remaining = Browser.mainLoop.remainingBlockers;
  3991             var expected = Browser.mainLoop.expectedBlockers;
  3992             if (remaining) {
  3993               if (remaining < expected) {
  3994                 Module['setStatus'](message + ' (' + (expected - remaining) + '/' + expected + ')');
  3995               } else {
  3996                 Module['setStatus'](message);
  3998             } else {
  3999               Module['setStatus']('');
  4002         }},isFullScreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:function () {
  4003         if (!Module["preloadPlugins"]) Module["preloadPlugins"] = []; // needs to exist even in workers
  4004         if (Browser.initted || ENVIRONMENT_IS_WORKER) return;
  4005         Browser.initted = true;
  4006         try {
  4007           new Blob();
  4008           Browser.hasBlobConstructor = true;
  4009         } catch(e) {
  4010           Browser.hasBlobConstructor = false;
  4011           console.log("warning: no blob constructor, cannot create blobs with mimetypes");
  4013         Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : (typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : (!Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null));
  4014         Browser.URLObject = typeof window != "undefined" ? (window.URL ? window.URL : window.webkitURL) : undefined;
  4015         if (!Module.noImageDecoding && typeof Browser.URLObject === 'undefined') {
  4016           console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available.");
  4017           Module.noImageDecoding = true;
  4019         // Support for plugins that can process preloaded files. You can add more of these to
  4020         // your app by creating and appending to Module.preloadPlugins.
  4021         //
  4022         // Each plugin is asked if it can handle a file based on the file's name. If it can,
  4023         // it is given the file's raw data. When it is done, it calls a callback with the file's
  4024         // (possibly modified) data. For example, a plugin might decompress a file, or it
  4025         // might create some side data structure for use later (like an Image element, etc.).
  4026         var imagePlugin = {};
  4027         imagePlugin['canHandle'] = function(name) {
  4028           return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name);
  4029         };
  4030         imagePlugin['handle'] = function(byteArray, name, onload, onerror) {
  4031           var b = null;
  4032           if (Browser.hasBlobConstructor) {
  4033             try {
  4034               b = new Blob([byteArray], { type: Browser.getMimetype(name) });
  4035               if (b.size !== byteArray.length) { // Safari bug #118630
  4036                 // Safari's Blob can only take an ArrayBuffer
  4037                 b = new Blob([(new Uint8Array(byteArray)).buffer], { type: Browser.getMimetype(name) });
  4039             } catch(e) {
  4040               Runtime.warnOnce('Blob constructor present but fails: ' + e + '; falling back to blob builder');
  4043           if (!b) {
  4044             var bb = new Browser.BlobBuilder();
  4045             bb.append((new Uint8Array(byteArray)).buffer); // we need to pass a buffer, and must copy the array to get the right data range
  4046             b = bb.getBlob();
  4048           var url = Browser.URLObject.createObjectURL(b);
  4049           var img = new Image();
  4050           img.onload = function() {
  4051             assert(img.complete, 'Image ' + name + ' could not be decoded');
  4052             var canvas = document.createElement('canvas');
  4053             canvas.width = img.width;
  4054             canvas.height = img.height;
  4055             var ctx = canvas.getContext('2d');
  4056             ctx.drawImage(img, 0, 0);
  4057             Module["preloadedImages"][name] = canvas;
  4058             Browser.URLObject.revokeObjectURL(url);
  4059             if (onload) onload(byteArray);
  4060           };
  4061           img.onerror = function(event) {
  4062             console.log('Image ' + url + ' could not be decoded');
  4063             if (onerror) onerror();
  4064           };
  4065           img.src = url;
  4066         };
  4067         Module['preloadPlugins'].push(imagePlugin);
  4068         var audioPlugin = {};
  4069         audioPlugin['canHandle'] = function(name) {
  4070           return !Module.noAudioDecoding && name.substr(-4) in { '.ogg': 1, '.wav': 1, '.mp3': 1 };
  4071         };
  4072         audioPlugin['handle'] = function(byteArray, name, onload, onerror) {
  4073           var done = false;
  4074           function finish(audio) {
  4075             if (done) return;
  4076             done = true;
  4077             Module["preloadedAudios"][name] = audio;
  4078             if (onload) onload(byteArray);
  4080           function fail() {
  4081             if (done) return;
  4082             done = true;
  4083             Module["preloadedAudios"][name] = new Audio(); // empty shim
  4084             if (onerror) onerror();
  4086           if (Browser.hasBlobConstructor) {
  4087             try {
  4088               var b = new Blob([byteArray], { type: Browser.getMimetype(name) });
  4089             } catch(e) {
  4090               return fail();
  4092             var url = Browser.URLObject.createObjectURL(b); // XXX we never revoke this!
  4093             var audio = new Audio();
  4094             audio.addEventListener('canplaythrough', function() { finish(audio) }, false); // use addEventListener due to chromium bug 124926
  4095             audio.onerror = function(event) {
  4096               if (done) return;
  4097               console.log('warning: browser could not fully decode audio ' + name + ', trying slower base64 approach');
  4098               function encode64(data) {
  4099                 var BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
  4100                 var PAD = '=';
  4101                 var ret = '';
  4102                 var leftchar = 0;
  4103                 var leftbits = 0;
  4104                 for (var i = 0; i < data.length; i++) {
  4105                   leftchar = (leftchar << 8) | data[i];
  4106                   leftbits += 8;
  4107                   while (leftbits >= 6) {
  4108                     var curr = (leftchar >> (leftbits-6)) & 0x3f;
  4109                     leftbits -= 6;
  4110                     ret += BASE[curr];
  4113                 if (leftbits == 2) {
  4114                   ret += BASE[(leftchar&3) << 4];
  4115                   ret += PAD + PAD;
  4116                 } else if (leftbits == 4) {
  4117                   ret += BASE[(leftchar&0xf) << 2];
  4118                   ret += PAD;
  4120                 return ret;
  4122               audio.src = 'data:audio/x-' + name.substr(-3) + ';base64,' + encode64(byteArray);
  4123               finish(audio); // we don't wait for confirmation this worked - but it's worth trying
  4124             };
  4125             audio.src = url;
  4126             // workaround for chrome bug 124926 - we do not always get oncanplaythrough or onerror
  4127             Browser.safeSetTimeout(function() {
  4128               finish(audio); // try to use it even though it is not necessarily ready to play
  4129             }, 10000);
  4130           } else {
  4131             return fail();
  4133         };
  4134         Module['preloadPlugins'].push(audioPlugin);
  4135         // Canvas event setup
  4136         var canvas = Module['canvas'];
  4137         canvas.requestPointerLock = canvas['requestPointerLock'] ||
  4138                                     canvas['mozRequestPointerLock'] ||
  4139                                     canvas['webkitRequestPointerLock'];
  4140         canvas.exitPointerLock = document['exitPointerLock'] ||
  4141                                  document['mozExitPointerLock'] ||
  4142                                  document['webkitExitPointerLock'] ||
  4143                                  function(){}; // no-op if function does not exist
  4144         canvas.exitPointerLock = canvas.exitPointerLock.bind(document);
  4145         function pointerLockChange() {
  4146           Browser.pointerLock = document['pointerLockElement'] === canvas ||
  4147                                 document['mozPointerLockElement'] === canvas ||
  4148                                 document['webkitPointerLockElement'] === canvas;
  4150         document.addEventListener('pointerlockchange', pointerLockChange, false);
  4151         document.addEventListener('mozpointerlockchange', pointerLockChange, false);
  4152         document.addEventListener('webkitpointerlockchange', pointerLockChange, false);
  4153         if (Module['elementPointerLock']) {
  4154           canvas.addEventListener("click", function(ev) {
  4155             if (!Browser.pointerLock && canvas.requestPointerLock) {
  4156               canvas.requestPointerLock();
  4157               ev.preventDefault();
  4159           }, false);
  4161       },createContext:function (canvas, useWebGL, setInModule) {
  4162         var ctx;
  4163         try {
  4164           if (useWebGL) {
  4165             ctx = canvas.getContext('experimental-webgl', {
  4166               alpha: false
  4167             });
  4168           } else {
  4169             ctx = canvas.getContext('2d');
  4171           if (!ctx) throw ':(';
  4172         } catch (e) {
  4173           Module.print('Could not create canvas - ' + e);
  4174           return null;
  4176         if (useWebGL) {
  4177           // Set the background of the WebGL canvas to black
  4178           canvas.style.backgroundColor = "black";
  4179           // Warn on context loss
  4180           canvas.addEventListener('webglcontextlost', function(event) {
  4181             alert('WebGL context lost. You will need to reload the page.');
  4182           }, false);
  4184         if (setInModule) {
  4185           Module.ctx = ctx;
  4186           Module.useWebGL = useWebGL;
  4187           Browser.moduleContextCreatedCallbacks.forEach(function(callback) { callback() });
  4188           Browser.init();
  4190         return ctx;
  4191       },destroyContext:function (canvas, useWebGL, setInModule) {},fullScreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullScreen:function (lockPointer, resizeCanvas) {
  4192         Browser.lockPointer = lockPointer;
  4193         Browser.resizeCanvas = resizeCanvas;
  4194         if (typeof Browser.lockPointer === 'undefined') Browser.lockPointer = true;
  4195         if (typeof Browser.resizeCanvas === 'undefined') Browser.resizeCanvas = false;
  4196         var canvas = Module['canvas'];
  4197         function fullScreenChange() {
  4198           Browser.isFullScreen = false;
  4199           if ((document['webkitFullScreenElement'] || document['webkitFullscreenElement'] ||
  4200                document['mozFullScreenElement'] || document['mozFullscreenElement'] ||
  4201                document['fullScreenElement'] || document['fullscreenElement']) === canvas) {
  4202             canvas.cancelFullScreen = document['cancelFullScreen'] ||
  4203                                       document['mozCancelFullScreen'] ||
  4204                                       document['webkitCancelFullScreen'];
  4205             canvas.cancelFullScreen = canvas.cancelFullScreen.bind(document);
  4206             if (Browser.lockPointer) canvas.requestPointerLock();
  4207             Browser.isFullScreen = true;
  4208             if (Browser.resizeCanvas) Browser.setFullScreenCanvasSize();
  4209           } else if (Browser.resizeCanvas){
  4210             Browser.setWindowedCanvasSize();
  4212           if (Module['onFullScreen']) Module['onFullScreen'](Browser.isFullScreen);
  4214         if (!Browser.fullScreenHandlersInstalled) {
  4215           Browser.fullScreenHandlersInstalled = true;
  4216           document.addEventListener('fullscreenchange', fullScreenChange, false);
  4217           document.addEventListener('mozfullscreenchange', fullScreenChange, false);
  4218           document.addEventListener('webkitfullscreenchange', fullScreenChange, false);
  4220         canvas.requestFullScreen = canvas['requestFullScreen'] ||
  4221                                    canvas['mozRequestFullScreen'] ||
  4222                                    (canvas['webkitRequestFullScreen'] ? function() { canvas['webkitRequestFullScreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null);
  4223         canvas.requestFullScreen();
  4224       },requestAnimationFrame:function (func) {
  4225         if (!window.requestAnimationFrame) {
  4226           window.requestAnimationFrame = window['requestAnimationFrame'] ||
  4227                                          window['mozRequestAnimationFrame'] ||
  4228                                          window['webkitRequestAnimationFrame'] ||
  4229                                          window['msRequestAnimationFrame'] ||
  4230                                          window['oRequestAnimationFrame'] ||
  4231                                          window['setTimeout'];
  4233         window.requestAnimationFrame(func);
  4234       },safeCallback:function (func) {
  4235         return function() {
  4236           if (!ABORT) return func.apply(null, arguments);
  4237         };
  4238       },safeRequestAnimationFrame:function (func) {
  4239         return Browser.requestAnimationFrame(function() {
  4240           if (!ABORT) func();
  4241         });
  4242       },safeSetTimeout:function (func, timeout) {
  4243         return setTimeout(function() {
  4244           if (!ABORT) func();
  4245         }, timeout);
  4246       },safeSetInterval:function (func, timeout) {
  4247         return setInterval(function() {
  4248           if (!ABORT) func();
  4249         }, timeout);
  4250       },getMimetype:function (name) {
  4251         return {
  4252           'jpg': 'image/jpeg',
  4253           'jpeg': 'image/jpeg',
  4254           'png': 'image/png',
  4255           'bmp': 'image/bmp',
  4256           'ogg': 'audio/ogg',
  4257           'wav': 'audio/wav',
  4258           'mp3': 'audio/mpeg'
  4259         }[name.substr(name.lastIndexOf('.')+1)];
  4260       },getUserMedia:function (func) {
  4261         if(!window.getUserMedia) {
  4262           window.getUserMedia = navigator['getUserMedia'] ||
  4263                                 navigator['mozGetUserMedia'];
  4265         window.getUserMedia(func);
  4266       },getMovementX:function (event) {
  4267         return event['movementX'] ||
  4268                event['mozMovementX'] ||
  4269                event['webkitMovementX'] ||
  4270                0;
  4271       },getMovementY:function (event) {
  4272         return event['movementY'] ||
  4273                event['mozMovementY'] ||
  4274                event['webkitMovementY'] ||
  4275                0;
  4276       },mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,calculateMouseEvent:function (event) { // event should be mousemove, mousedown or mouseup
  4277         if (Browser.pointerLock) {
  4278           // When the pointer is locked, calculate the coordinates
  4279           // based on the movement of the mouse.
  4280           // Workaround for Firefox bug 764498
  4281           if (event.type != 'mousemove' &&
  4282               ('mozMovementX' in event)) {
  4283             Browser.mouseMovementX = Browser.mouseMovementY = 0;
  4284           } else {
  4285             Browser.mouseMovementX = Browser.getMovementX(event);
  4286             Browser.mouseMovementY = Browser.getMovementY(event);
  4288           // check if SDL is available
  4289           if (typeof SDL != "undefined") {
  4290           	Browser.mouseX = SDL.mouseX + Browser.mouseMovementX;
  4291           	Browser.mouseY = SDL.mouseY + Browser.mouseMovementY;
  4292           } else {
  4293           	// just add the mouse delta to the current absolut mouse position
  4294           	// FIXME: ideally this should be clamped against the canvas size and zero
  4295           	Browser.mouseX += Browser.mouseMovementX;
  4296           	Browser.mouseY += Browser.mouseMovementY;
  4298         } else {
  4299           // Otherwise, calculate the movement based on the changes
  4300           // in the coordinates.
  4301           var rect = Module["canvas"].getBoundingClientRect();
  4302           var x, y;
  4303           if (event.type == 'touchstart' ||
  4304               event.type == 'touchend' ||
  4305               event.type == 'touchmove') {
  4306             var t = event.touches.item(0);
  4307             if (t) {
  4308               x = t.pageX - (window.scrollX + rect.left);
  4309               y = t.pageY - (window.scrollY + rect.top);
  4310             } else {
  4311               return;
  4313           } else {
  4314             x = event.pageX - (window.scrollX + rect.left);
  4315             y = event.pageY - (window.scrollY + rect.top);
  4317           // the canvas might be CSS-scaled compared to its backbuffer;
  4318           // SDL-using content will want mouse coordinates in terms
  4319           // of backbuffer units.
  4320           var cw = Module["canvas"].width;
  4321           var ch = Module["canvas"].height;
  4322           x = x * (cw / rect.width);
  4323           y = y * (ch / rect.height);
  4324           Browser.mouseMovementX = x - Browser.mouseX;
  4325           Browser.mouseMovementY = y - Browser.mouseY;
  4326           Browser.mouseX = x;
  4327           Browser.mouseY = y;
  4329       },xhrLoad:function (url, onload, onerror) {
  4330         var xhr = new XMLHttpRequest();
  4331         xhr.open('GET', url, true);
  4332         xhr.responseType = 'arraybuffer';
  4333         xhr.onload = function() {
  4334           if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0
  4335             onload(xhr.response);
  4336           } else {
  4337             onerror();
  4339         };
  4340         xhr.onerror = onerror;
  4341         xhr.send(null);
  4342       },asyncLoad:function (url, onload, onerror, noRunDep) {
  4343         Browser.xhrLoad(url, function(arrayBuffer) {
  4344           assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).');
  4345           onload(new Uint8Array(arrayBuffer));
  4346           if (!noRunDep) removeRunDependency('al ' + url);
  4347         }, function(event) {
  4348           if (onerror) {
  4349             onerror();
  4350           } else {
  4351             throw 'Loading data file "' + url + '" failed.';
  4353         });
  4354         if (!noRunDep) addRunDependency('al ' + url);
  4355       },resizeListeners:[],updateResizeListeners:function () {
  4356         var canvas = Module['canvas'];
  4357         Browser.resizeListeners.forEach(function(listener) {
  4358           listener(canvas.width, canvas.height);
  4359         });
  4360       },setCanvasSize:function (width, height, noUpdates) {
  4361         var canvas = Module['canvas'];
  4362         canvas.width = width;
  4363         canvas.height = height;
  4364         if (!noUpdates) Browser.updateResizeListeners();
  4365       },windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:function () {
  4366         var canvas = Module['canvas'];
  4367         this.windowedWidth = canvas.width;
  4368         this.windowedHeight = canvas.height;
  4369         canvas.width = screen.width;
  4370         canvas.height = screen.height;
  4371         // check if SDL is available   
  4372         if (typeof SDL != "undefined") {
  4373         	var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)];
  4374         	flags = flags | 0x00800000; // set SDL_FULLSCREEN flag
  4375         	HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags
  4377         Browser.updateResizeListeners();
  4378       },setWindowedCanvasSize:function () {
  4379         var canvas = Module['canvas'];
  4380         canvas.width = this.windowedWidth;
  4381         canvas.height = this.windowedHeight;
  4382         // check if SDL is available       
  4383         if (typeof SDL != "undefined") {
  4384         	var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)];
  4385         	flags = flags & ~0x00800000; // clear SDL_FULLSCREEN flag
  4386         	HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags
  4388         Browser.updateResizeListeners();
  4389       }};
  4390 FS.staticInit();__ATINIT__.unshift({ func: function() { if (!Module["noFSInit"] && !FS.init.initialized) FS.init() } });__ATMAIN__.push({ func: function() { FS.ignorePermissions = false } });__ATEXIT__.push({ func: function() { FS.quit() } });Module["FS_createFolder"] = FS.createFolder;Module["FS_createPath"] = FS.createPath;Module["FS_createDataFile"] = FS.createDataFile;Module["FS_createPreloadedFile"] = FS.createPreloadedFile;Module["FS_createLazyFile"] = FS.createLazyFile;Module["FS_createLink"] = FS.createLink;Module["FS_createDevice"] = FS.createDevice;
  4391 ___errno_state = Runtime.staticAlloc(4); HEAP32[((___errno_state)>>2)]=0;
  4392 __ATINIT__.unshift({ func: function() { TTY.init() } });__ATEXIT__.push({ func: function() { TTY.shutdown() } });TTY.utf8 = new Runtime.UTF8Processor();
  4393 __ATINIT__.push({ func: function() { SOCKFS.root = FS.mount(SOCKFS, {}, null); } });
  4394 _llvm_eh_exception.buf = allocate(12, "void*", ALLOC_STATIC);
  4395 Module["requestFullScreen"] = function(lockPointer, resizeCanvas) { Browser.requestFullScreen(lockPointer, resizeCanvas) };
  4396   Module["requestAnimationFrame"] = function(func) { Browser.requestAnimationFrame(func) };
  4397   Module["setCanvasSize"] = function(width, height, noUpdates) { Browser.setCanvasSize(width, height, noUpdates) };
  4398   Module["pauseMainLoop"] = function() { Browser.mainLoop.pause() };
  4399   Module["resumeMainLoop"] = function() { Browser.mainLoop.resume() };
  4400   Module["getUserMedia"] = function() { Browser.getUserMedia() }
  4401 STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP);
  4402 staticSealed = true; // seal the static portion of memory
  4403 STACK_MAX = STACK_BASE + 5242880;
  4404 DYNAMIC_BASE = DYNAMICTOP = Runtime.alignMemory(STACK_MAX);
  4405 assert(DYNAMIC_BASE < TOTAL_MEMORY); // Stack must fit in TOTAL_MEMORY; allocations from here on may enlarge TOTAL_MEMORY
  4406  var ctlz_i8 = allocate([8,7,6,6,5,5,5,5,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], "i8", ALLOC_DYNAMIC);
  4407  var cttz_i8 = allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0], "i8", ALLOC_DYNAMIC);
  4408 var Math_min = Math.min;
  4409 function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7) {
  4410   try {
  4411     return Module["dynCall_iiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7);
  4412   } catch(e) {
  4413     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4414     asm["setThrew"](1, 0);
  4417 function invoke_vif(index,a1,a2) {
  4418   try {
  4419     Module["dynCall_vif"](index,a1,a2);
  4420   } catch(e) {
  4421     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4422     asm["setThrew"](1, 0);
  4425 function invoke_viifii(index,a1,a2,a3,a4,a5) {
  4426   try {
  4427     Module["dynCall_viifii"](index,a1,a2,a3,a4,a5);
  4428   } catch(e) {
  4429     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4430     asm["setThrew"](1, 0);
  4433 function invoke_viiiii(index,a1,a2,a3,a4,a5) {
  4434   try {
  4435     Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5);
  4436   } catch(e) {
  4437     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4438     asm["setThrew"](1, 0);
  4441 function invoke_vi(index,a1) {
  4442   try {
  4443     Module["dynCall_vi"](index,a1);
  4444   } catch(e) {
  4445     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4446     asm["setThrew"](1, 0);
  4449 function invoke_vii(index,a1,a2) {
  4450   try {
  4451     Module["dynCall_vii"](index,a1,a2);
  4452   } catch(e) {
  4453     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4454     asm["setThrew"](1, 0);
  4457 function invoke_viiifii(index,a1,a2,a3,a4,a5,a6) {
  4458   try {
  4459     Module["dynCall_viiifii"](index,a1,a2,a3,a4,a5,a6);
  4460   } catch(e) {
  4461     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4462     asm["setThrew"](1, 0);
  4465 function invoke_vifiii(index,a1,a2,a3,a4,a5) {
  4466   try {
  4467     Module["dynCall_vifiii"](index,a1,a2,a3,a4,a5);
  4468   } catch(e) {
  4469     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4470     asm["setThrew"](1, 0);
  4473 function invoke_ii(index,a1) {
  4474   try {
  4475     return Module["dynCall_ii"](index,a1);
  4476   } catch(e) {
  4477     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4478     asm["setThrew"](1, 0);
  4481 function invoke_viiiiffffiif(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) {
  4482   try {
  4483     Module["dynCall_viiiiffffiif"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11);
  4484   } catch(e) {
  4485     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4486     asm["setThrew"](1, 0);
  4489 function invoke_fiii(index,a1,a2,a3) {
  4490   try {
  4491     return Module["dynCall_fiii"](index,a1,a2,a3);
  4492   } catch(e) {
  4493     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4494     asm["setThrew"](1, 0);
  4497 function invoke_viiif(index,a1,a2,a3,a4) {
  4498   try {
  4499     Module["dynCall_viiif"](index,a1,a2,a3,a4);
  4500   } catch(e) {
  4501     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4502     asm["setThrew"](1, 0);
  4505 function invoke_fiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) {
  4506   try {
  4507     return Module["dynCall_fiiiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11);
  4508   } catch(e) {
  4509     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4510     asm["setThrew"](1, 0);
  4513 function invoke_fiifii(index,a1,a2,a3,a4,a5) {
  4514   try {
  4515     return Module["dynCall_fiifii"](index,a1,a2,a3,a4,a5);
  4516   } catch(e) {
  4517     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4518     asm["setThrew"](1, 0);
  4521 function invoke_iii(index,a1,a2) {
  4522   try {
  4523     return Module["dynCall_iii"](index,a1,a2);
  4524   } catch(e) {
  4525     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4526     asm["setThrew"](1, 0);
  4529 function invoke_iiii(index,a1,a2,a3) {
  4530   try {
  4531     return Module["dynCall_iiii"](index,a1,a2,a3);
  4532   } catch(e) {
  4533     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4534     asm["setThrew"](1, 0);
  4537 function invoke_fif(index,a1,a2) {
  4538   try {
  4539     return Module["dynCall_fif"](index,a1,a2);
  4540   } catch(e) {
  4541     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4542     asm["setThrew"](1, 0);
  4545 function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8) {
  4546   try {
  4547     Module["dynCall_viiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8);
  4548   } catch(e) {
  4549     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4550     asm["setThrew"](1, 0);
  4553 function invoke_vifi(index,a1,a2,a3) {
  4554   try {
  4555     Module["dynCall_vifi"](index,a1,a2,a3);
  4556   } catch(e) {
  4557     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4558     asm["setThrew"](1, 0);
  4561 function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6) {
  4562   try {
  4563     Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6);
  4564   } catch(e) {
  4565     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4566     asm["setThrew"](1, 0);
  4569 function invoke_iiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9) {
  4570   try {
  4571     return Module["dynCall_iiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9);
  4572   } catch(e) {
  4573     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4574     asm["setThrew"](1, 0);
  4577 function invoke_viffiii(index,a1,a2,a3,a4,a5,a6) {
  4578   try {
  4579     Module["dynCall_viffiii"](index,a1,a2,a3,a4,a5,a6);
  4580   } catch(e) {
  4581     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4582     asm["setThrew"](1, 0);
  4585 function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6) {
  4586   try {
  4587     return Module["dynCall_iiiiiii"](index,a1,a2,a3,a4,a5,a6);
  4588   } catch(e) {
  4589     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4590     asm["setThrew"](1, 0);
  4593 function invoke_fiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) {
  4594   try {
  4595     return Module["dynCall_fiiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10);
  4596   } catch(e) {
  4597     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4598     asm["setThrew"](1, 0);
  4601 function invoke_fiiiii(index,a1,a2,a3,a4,a5) {
  4602   try {
  4603     return Module["dynCall_fiiiii"](index,a1,a2,a3,a4,a5);
  4604   } catch(e) {
  4605     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4606     asm["setThrew"](1, 0);
  4609 function invoke_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) {
  4610   try {
  4611     return Module["dynCall_iiiiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11);
  4612   } catch(e) {
  4613     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4614     asm["setThrew"](1, 0);
  4617 function invoke_vifii(index,a1,a2,a3,a4) {
  4618   try {
  4619     Module["dynCall_vifii"](index,a1,a2,a3,a4);
  4620   } catch(e) {
  4621     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4622     asm["setThrew"](1, 0);
  4625 function invoke_fi(index,a1) {
  4626   try {
  4627     return Module["dynCall_fi"](index,a1);
  4628   } catch(e) {
  4629     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4630     asm["setThrew"](1, 0);
  4633 function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) {
  4634   try {
  4635     Module["dynCall_viiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10);
  4636   } catch(e) {
  4637     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4638     asm["setThrew"](1, 0);
  4641 function invoke_viiiifffffif(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) {
  4642   try {
  4643     Module["dynCall_viiiifffffif"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11);
  4644   } catch(e) {
  4645     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4646     asm["setThrew"](1, 0);
  4649 function invoke_viiiiiffii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9) {
  4650   try {
  4651     Module["dynCall_viiiiiffii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9);
  4652   } catch(e) {
  4653     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4654     asm["setThrew"](1, 0);
  4657 function invoke_iifif(index,a1,a2,a3,a4) {
  4658   try {
  4659     return Module["dynCall_iifif"](index,a1,a2,a3,a4);
  4660   } catch(e) {
  4661     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4662     asm["setThrew"](1, 0);
  4665 function invoke_iiiii(index,a1,a2,a3,a4) {
  4666   try {
  4667     return Module["dynCall_iiiii"](index,a1,a2,a3,a4);
  4668   } catch(e) {
  4669     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4670     asm["setThrew"](1, 0);
  4673 function invoke_viii(index,a1,a2,a3) {
  4674   try {
  4675     Module["dynCall_viii"](index,a1,a2,a3);
  4676   } catch(e) {
  4677     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4678     asm["setThrew"](1, 0);
  4681 function invoke_viifi(index,a1,a2,a3,a4) {
  4682   try {
  4683     Module["dynCall_viifi"](index,a1,a2,a3,a4);
  4684   } catch(e) {
  4685     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4686     asm["setThrew"](1, 0);
  4689 function invoke_v(index) {
  4690   try {
  4691     Module["dynCall_v"](index);
  4692   } catch(e) {
  4693     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4694     asm["setThrew"](1, 0);
  4697 function invoke_viif(index,a1,a2,a3) {
  4698   try {
  4699     Module["dynCall_viif"](index,a1,a2,a3);
  4700   } catch(e) {
  4701     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4702     asm["setThrew"](1, 0);
  4705 function invoke_iiif(index,a1,a2,a3) {
  4706   try {
  4707     return Module["dynCall_iiif"](index,a1,a2,a3);
  4708   } catch(e) {
  4709     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4710     asm["setThrew"](1, 0);
  4713 function invoke_fiiifii(index,a1,a2,a3,a4,a5,a6) {
  4714   try {
  4715     return Module["dynCall_fiiifii"](index,a1,a2,a3,a4,a5,a6);
  4716   } catch(e) {
  4717     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4718     asm["setThrew"](1, 0);
  4721 function invoke_viiii(index,a1,a2,a3,a4) {
  4722   try {
  4723     Module["dynCall_viiii"](index,a1,a2,a3,a4);
  4724   } catch(e) {
  4725     if (typeof e !== 'number' && e !== 'longjmp') throw e;
  4726     asm["setThrew"](1, 0);
  4729 function asmPrintInt(x, y) {
  4730   Module.print('int ' + x + ',' + y);// + ' ' + new Error().stack);
  4732 function asmPrintFloat(x, y) {
  4733   Module.print('float ' + x + ',' + y);// + ' ' + new Error().stack);
  4735 // EMSCRIPTEN_START_ASM
  4736 var asmModule = function(global, env, buffer) {
  4737   'use asm';
  4738   var HEAP8 = new global.Int8Array(buffer);
  4739   var HEAP16 = new global.Int16Array(buffer);
  4740   var HEAP32 = new global.Int32Array(buffer);
  4741   var HEAPU8 = new global.Uint8Array(buffer);
  4742   var HEAPU16 = new global.Uint16Array(buffer);
  4743   var HEAPU32 = new global.Uint32Array(buffer);
  4744   var HEAPF32 = new global.Float32Array(buffer);
  4745   var HEAPF64 = new global.Float64Array(buffer);
  4746   var STACKTOP=env.STACKTOP|0;
  4747   var STACK_MAX=env.STACK_MAX|0;
  4748   var tempDoublePtr=env.tempDoublePtr|0;
  4749   var ABORT=env.ABORT|0;
  4750   var cttz_i8=env.cttz_i8|0;
  4751   var ctlz_i8=env.ctlz_i8|0;
  4752   var __ZTVN10__cxxabiv117__class_type_infoE=env.__ZTVN10__cxxabiv117__class_type_infoE|0;
  4753   var __ZTVN10__cxxabiv120__si_class_type_infoE=env.__ZTVN10__cxxabiv120__si_class_type_infoE|0;
  4754   var ___dso_handle=env.___dso_handle|0;
  4755   var NaN=+env.NaN;
  4756   var Infinity=+env.Infinity;
  4757   var __THREW__ = 0;
  4758   var threwValue = 0;
  4759   var setjmpId = 0;
  4760   var undef = 0;
  4761   var tempInt = 0, tempBigInt = 0, tempBigIntP = 0, tempBigIntS = 0, tempBigIntR = 0.0, tempBigIntI = 0, tempBigIntD = 0, tempValue = 0, tempDouble = 0.0;
  4762   var tempRet0 = 0;
  4763   var tempRet1 = 0;
  4764   var tempRet2 = 0;
  4765   var tempRet3 = 0;
  4766   var tempRet4 = 0;
  4767   var tempRet5 = 0;
  4768   var tempRet6 = 0;
  4769   var tempRet7 = 0;
  4770   var tempRet8 = 0;
  4771   var tempRet9 = 0;
  4772   var Math_floor=global.Math.floor;
  4773   var Math_abs=global.Math.abs;
  4774   var Math_sqrt=global.Math.sqrt;
  4775   var Math_pow=global.Math.pow;
  4776   var Math_cos=global.Math.cos;
  4777   var Math_sin=global.Math.sin;
  4778   var Math_tan=global.Math.tan;
  4779   var Math_acos=global.Math.acos;
  4780   var Math_asin=global.Math.asin;
  4781   var Math_atan=global.Math.atan;
  4782   var Math_atan2=global.Math.atan2;
  4783   var Math_exp=global.Math.exp;
  4784   var Math_log=global.Math.log;
  4785   var Math_ceil=global.Math.ceil;
  4786   var Math_imul=global.Math.imul;
  4787   var abort=env.abort;
  4788   var assert=env.assert;
  4789   var asmPrintInt=env.asmPrintInt;
  4790   var asmPrintFloat=env.asmPrintFloat;
  4791   var Math_min=env.min;
  4792   var invoke_iiiiiiii=env.invoke_iiiiiiii;
  4793   var invoke_vif=env.invoke_vif;
  4794   var invoke_viifii=env.invoke_viifii;
  4795   var invoke_viiiii=env.invoke_viiiii;
  4796   var invoke_vi=env.invoke_vi;
  4797   var invoke_vii=env.invoke_vii;
  4798   var invoke_viiifii=env.invoke_viiifii;
  4799   var invoke_vifiii=env.invoke_vifiii;
  4800   var invoke_ii=env.invoke_ii;
  4801   var invoke_viiiiffffiif=env.invoke_viiiiffffiif;
  4802   var invoke_fiii=env.invoke_fiii;
  4803   var invoke_viiif=env.invoke_viiif;
  4804   var invoke_fiiiiiiiiiii=env.invoke_fiiiiiiiiiii;
  4805   var invoke_fiifii=env.invoke_fiifii;
  4806   var invoke_iii=env.invoke_iii;
  4807   var invoke_iiii=env.invoke_iiii;
  4808   var invoke_fif=env.invoke_fif;
  4809   var invoke_viiiiiiii=env.invoke_viiiiiiii;
  4810   var invoke_vifi=env.invoke_vifi;
  4811   var invoke_viiiiii=env.invoke_viiiiii;
  4812   var invoke_iiiiiiiiii=env.invoke_iiiiiiiiii;
  4813   var invoke_viffiii=env.invoke_viffiii;
  4814   var invoke_iiiiiii=env.invoke_iiiiiii;
  4815   var invoke_fiiiiiiiiii=env.invoke_fiiiiiiiiii;
  4816   var invoke_fiiiii=env.invoke_fiiiii;
  4817   var invoke_iiiiiiiiiiii=env.invoke_iiiiiiiiiiii;
  4818   var invoke_vifii=env.invoke_vifii;
  4819   var invoke_fi=env.invoke_fi;
  4820   var invoke_viiiiiiiiii=env.invoke_viiiiiiiiii;
  4821   var invoke_viiiifffffif=env.invoke_viiiifffffif;
  4822   var invoke_viiiiiffii=env.invoke_viiiiiffii;
  4823   var invoke_iifif=env.invoke_iifif;
  4824   var invoke_iiiii=env.invoke_iiiii;
  4825   var invoke_viii=env.invoke_viii;
  4826   var invoke_viifi=env.invoke_viifi;
  4827   var invoke_v=env.invoke_v;
  4828   var invoke_viif=env.invoke_viif;
  4829   var invoke_iiif=env.invoke_iiif;
  4830   var invoke_fiiifii=env.invoke_fiiifii;
  4831   var invoke_viiii=env.invoke_viiii;
  4832   var _llvm_lifetime_end=env._llvm_lifetime_end;
  4833   var _cosf=env._cosf;
  4834   var _fabsf=env._fabsf;
  4835   var _sysconf=env._sysconf;
  4836   var ___cxa_throw=env.___cxa_throw;
  4837   var _atexit=env._atexit;
  4838   var _abort=env._abort;
  4839   var _fprintf=env._fprintf;
  4840   var _llvm_eh_exception=env._llvm_eh_exception;
  4841   var _printf=env._printf;
  4842   var _acosf=env._acosf;
  4843   var _fflush=env._fflush;
  4844   var __reallyNegative=env.__reallyNegative;
  4845   var _sqrtf=env._sqrtf;
  4846   var _llvm_pow_f32=env._llvm_pow_f32;
  4847   var ___setErrNo=env.___setErrNo;
  4848   var _fwrite=env._fwrite;
  4849   var _send=env._send;
  4850   var _write=env._write;
  4851   var _exit=env._exit;
  4852   var _atan2f=env._atan2f;
  4853   var ___cxa_pure_virtual=env.___cxa_pure_virtual;
  4854   var ___cxa_is_number_type=env.___cxa_is_number_type;
  4855   var _time=env._time;
  4856   var __formatString=env.__formatString;
  4857   var ___cxa_does_inherit=env.___cxa_does_inherit;
  4858   var ___cxa_guard_acquire=env.___cxa_guard_acquire;
  4859   var __ZSt9terminatev=env.__ZSt9terminatev;
  4860   var _gettimeofday=env._gettimeofday;
  4861   var ___cxa_find_matching_catch=env.___cxa_find_matching_catch;
  4862   var _sinf=env._sinf;
  4863   var ___assert_func=env.___assert_func;
  4864   var __ZSt18uncaught_exceptionv=env.__ZSt18uncaught_exceptionv;
  4865   var _pwrite=env._pwrite;
  4866   var ___cxa_call_unexpected=env.___cxa_call_unexpected;
  4867   var _sbrk=env._sbrk;
  4868   var ___cxa_guard_abort=env.___cxa_guard_abort;
  4869   var ___cxa_allocate_exception=env.___cxa_allocate_exception;
  4870   var ___errno_location=env.___errno_location;
  4871   var ___gxx_personality_v0=env.___gxx_personality_v0;
  4872   var _llvm_lifetime_start=env._llvm_lifetime_start;
  4873   var _fmod=env._fmod;
  4874   var ___cxa_guard_release=env.___cxa_guard_release;
  4875   var __exit=env.__exit;
  4876   var ___resumeException=env.___resumeException;
  4877 // EMSCRIPTEN_START_FUNCS
  4878 function __ZN20btConvexHullInternal9shiftFaceEPNS_4FaceEf20btAlignedObjectArrayIPNS_6VertexEE(i1, i2, d3, i4) {
  4879  i1 = i1 | 0;
  4880  i2 = i2 | 0;
  4881  d3 = +d3;
  4882  i4 = i4 | 0;
  4883  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, d15 = 0.0, d16 = 0.0, d17 = 0.0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0, i68 = 0, i69 = 0, i70 = 0, i71 = 0, i72 = 0, i73 = 0, i74 = 0, i75 = 0, i76 = 0, i77 = 0, i78 = 0, i79 = 0, i80 = 0, i81 = 0, i82 = 0, i83 = 0, i84 = 0, i85 = 0, i86 = 0, i87 = 0, i88 = 0, i89 = 0, i90 = 0, i91 = 0, i92 = 0, i93 = 0, i94 = 0, i95 = 0, i96 = 0, i97 = 0, i98 = 0, i99 = 0, i100 = 0, i101 = 0, i102 = 0, i103 = 0, i104 = 0, i105 = 0, i106 = 0, i107 = 0, i108 = 0, i109 = 0, i110 = 0, i111 = 0, i112 = 0, i113 = 0, i114 = 0, i115 = 0, i116 = 0, i117 = 0, i118 = 0, i119 = 0, i120 = 0, i121 = 0, i122 = 0, i123 = 0, i124 = 0, i125 = 0, i126 = 0, i127 = 0, i128 = 0, i129 = 0, i130 = 0, i131 = 0, i132 = 0, i133 = 0, i134 = 0, i135 = 0, i136 = 0, i137 = 0, i138 = 0, i139 = 0, i140 = 0, i141 = 0, i142 = 0, i143 = 0, i144 = 0, i145 = 0, i146 = 0, i147 = 0, i148 = 0, i149 = 0, i150 = 0, i151 = 0, i152 = 0, i153 = 0, i154 = 0, i155 = 0, i156 = 0, i157 = 0, i158 = 0, i159 = 0, i160 = 0, i161 = 0, i162 = 0, i163 = 0, i164 = 0, i165 = 0, i166 = 0, i167 = 0, i168 = 0, i169 = 0, i170 = 0, i171 = 0, i172 = 0, i173 = 0, i174 = 0, i175 = 0, i176 = 0, i177 = 0, i178 = 0, i179 = 0, i180 = 0, i181 = 0, i182 = 0, i183 = 0, i184 = 0, i185 = 0, i186 = 0, i187 = 0, i188 = 0, i189 = 0, i190 = 0, i191 = 0, i192 = 0, i193 = 0, i194 = 0, i195 = 0, i196 = 0, i197 = 0, i198 = 0, i199 = 0, i200 = 0, i201 = 0, i202 = 0, i203 = 0, i204 = 0, i205 = 0, i206 = 0, i207 = 0, i208 = 0, i209 = 0, i210 = 0, i211 = 0, i212 = 0, i213 = 0, i214 = 0, i215 = 0, i216 = 0, i217 = 0, i218 = 0, i219 = 0, i220 = 0, i221 = 0, i222 = 0, i223 = 0, i224 = 0, i225 = 0, i226 = 0, i227 = 0, i228 = 0, i229 = 0, i230 = 0, i231 = 0, i232 = 0, i233 = 0, i234 = 0, i235 = 0, i236 = 0, i237 = 0, i238 = 0, i239 = 0, i240 = 0, i241 = 0, i242 = 0, i243 = 0, i244 = 0, i245 = 0, i246 = 0, i247 = 0, i248 = 0, i249 = 0, i250 = 0, i251 = 0, i252 = 0, i253 = 0, i254 = 0, i255 = 0, i256 = 0, i257 = 0, i258 = 0, i259 = 0, i260 = 0, i261 = 0, i262 = 0, i263 = 0, i264 = 0, i265 = 0, i266 = 0, i267 = 0, i268 = 0, i269 = 0, i270 = 0, i271 = 0, i272 = 0, i273 = 0, i274 = 0, i275 = 0, i276 = 0, i277 = 0, i278 = 0, i279 = 0, i280 = 0, i281 = 0, i282 = 0, i283 = 0, i284 = 0, i285 = 0, i286 = 0, i287 = 0, i288 = 0, i289 = 0, i290 = 0, i291 = 0, i292 = 0, i293 = 0, i294 = 0, i295 = 0, i296 = 0, i297 = 0, i298 = 0, i299 = 0, i300 = 0, i301 = 0, i302 = 0;
  4884  i5 = STACKTOP;
  4885  STACKTOP = STACKTOP + 296 | 0;
  4886  i6 = i5 | 0;
  4887  i7 = i5 + 16 | 0;
  4888  i8 = i5 + 32 | 0;
  4889  i9 = i5 + 56 | 0;
  4890  i10 = i5 + 96 | 0;
  4891  i11 = i5 + 136 | 0;
  4892  i12 = i5 + 176 | 0;
  4893  i13 = i5 + 216 | 0;
  4894  i14 = i5 + 256 | 0;
  4895  __ZN20btConvexHullInternal11getBtNormalEPNS_4FaceE(i7, i1, i2);
  4896  d15 = -0.0 - d3;
  4897  d3 = +HEAPF32[i7 >> 2] * d15;
  4898  d16 = +HEAPF32[i7 + 4 >> 2] * d15;
  4899  d17 = +HEAPF32[i7 + 8 >> 2] * d15;
  4900  i7 = i6 | 0;
  4901  HEAPF32[i7 >> 2] = d3;
  4902  i18 = i6 + 4 | 0;
  4903  HEAPF32[i18 >> 2] = d16;
  4904  i19 = i6 + 8 | 0;
  4905  HEAPF32[i19 >> 2] = d17;
  4906  HEAPF32[i6 + 12 >> 2] = 0.0;
  4907  d15 = +HEAPF32[i1 >> 2];
  4908  if (d15 > 0.0) {
  4909   HEAPF32[i7 >> 2] = d3 / d15;
  4911  d15 = +HEAPF32[i1 + 4 >> 2];
  4912  if (d15 > 0.0) {
  4913   HEAPF32[i18 >> 2] = d16 / d15;
  4915  d15 = +HEAPF32[i1 + 8 >> 2];
  4916  if (d15 > 0.0) {
  4917   HEAPF32[i19 >> 2] = d17 / d15;
  4919  i19 = ~~+HEAPF32[i6 + (HEAP32[i1 + 108 >> 2] << 2) >> 2];
  4920  i18 = ~~+HEAPF32[i6 + (HEAP32[i1 + 112 >> 2] << 2) >> 2];
  4921  i7 = ~~+HEAPF32[i6 + (HEAP32[i1 + 104 >> 2] << 2) >> 2];
  4922  if ((i18 | i19 | i7 | 0) == 0) {
  4923   i20 = 1;
  4924   STACKTOP = i5;
  4925   return i20 | 0;
  4927  i6 = i2 + 32 | 0;
  4928  i21 = HEAP32[i6 >> 2] | 0;
  4929  i22 = i2 + 52 | 0;
  4930  i23 = HEAP32[i22 >> 2] | 0;
  4931  i24 = Math_imul(i23, i21) | 0;
  4932  i25 = i2 + 36 | 0;
  4933  i26 = HEAP32[i25 >> 2] | 0;
  4934  i27 = i2 + 48 | 0;
  4935  i28 = HEAP32[i27 >> 2] | 0;
  4936  i29 = i24 - (Math_imul(i28, i26) | 0) | 0;
  4937  i24 = i29;
  4938  i30 = (i29 | 0) < 0 ? -1 : 0;
  4939  i29 = i2 + 44 | 0;
  4940  i31 = HEAP32[i29 >> 2] | 0;
  4941  i32 = Math_imul(i31, i26) | 0;
  4942  i26 = i2 + 28 | 0;
  4943  i33 = HEAP32[i26 >> 2] | 0;
  4944  i34 = i32 - (Math_imul(i33, i23) | 0) | 0;
  4945  i23 = i34;
  4946  i32 = (i34 | 0) < 0 ? -1 : 0;
  4947  i34 = Math_imul(i33, i28) | 0;
  4948  i28 = i34 - (Math_imul(i31, i21) | 0) | 0;
  4949  i21 = i28;
  4950  i31 = (i28 | 0) < 0 ? -1 : 0;
  4951  i28 = i8 | 0;
  4952  HEAP32[i28 >> 2] = i24;
  4953  HEAP32[i28 + 4 >> 2] = i30;
  4954  i28 = i8 + 8 | 0;
  4955  HEAP32[i28 >> 2] = i23;
  4956  HEAP32[i28 + 4 >> 2] = i32;
  4957  i28 = i8 + 16 | 0;
  4958  HEAP32[i28 >> 2] = i21;
  4959  HEAP32[i28 + 4 >> 2] = i31;
  4960  i28 = i2 + 12 | 0;
  4961  i34 = HEAP32[i28 >> 2] | 0;
  4962  i33 = ___muldi3(i34, (i34 | 0) < 0 ? -1 : 0, i24, i30) | 0;
  4963  i35 = tempRet0;
  4964  i36 = i2 + 16 | 0;
  4965  i37 = HEAP32[i36 >> 2] | 0;
  4966  i38 = ___muldi3(i37, (i37 | 0) < 0 ? -1 : 0, i23, i32) | 0;
  4967  i39 = _i64Add(i38, tempRet0, i33, i35) | 0;
  4968  i35 = tempRet0;
  4969  i33 = i2 + 20 | 0;
  4970  i38 = HEAP32[i33 >> 2] | 0;
  4971  i40 = ___muldi3(i38, (i38 | 0) < 0 ? -1 : 0, i21, i31) | 0;
  4972  i41 = _i64Add(i39, i35, i40, tempRet0) | 0;
  4973  i40 = tempRet0;
  4974  i35 = i34 + i19 | 0;
  4975  i19 = i37 + i18 | 0;
  4976  i18 = i38 + i7 | 0;
  4977  i7 = i35;
  4978  i38 = (i35 | 0) < 0 ? -1 : 0;
  4979  i37 = ___muldi3(i7, i38, i24, i30) | 0;
  4980  i30 = tempRet0;
  4981  i24 = i19;
  4982  i34 = (i19 | 0) < 0 ? -1 : 0;
  4983  i39 = ___muldi3(i24, i34, i23, i32) | 0;
  4984  i32 = _i64Add(i39, tempRet0, i37, i30) | 0;
  4985  i30 = tempRet0;
  4986  i37 = i18;
  4987  i39 = (i18 | 0) < 0 ? -1 : 0;
  4988  i23 = ___muldi3(i37, i39, i21, i31) | 0;
  4989  i31 = _i64Add(i32, i30, i23, tempRet0) | 0;
  4990  i23 = tempRet0;
  4991  if (!((i23 | 0) < (i40 | 0) | (i23 | 0) == (i40 | 0) & i31 >>> 0 < i41 >>> 0)) {
  4992   i20 = 0;
  4993   STACKTOP = i5;
  4994   return i20 | 0;
  4996  i41 = HEAP32[i2 + 4 >> 2] | 0;
  4997  i40 = HEAP32[i41 + 8 >> 2] | 0;
  4998  __ZNK20btConvexHullInternal6Vertex3dotERKNS_7Point64E(i9, i41, i8);
  4999  i41 = __ZNK20btConvexHullInternal11Rational1287compareEx(i9, i31, i23) | 0;
  5000  i30 = i9;
  5001  do {
  5002   if ((i41 | 0) > -1) {
  5003    i32 = i10;
  5004    i21 = i40;
  5005    i42 = i41;
  5006    i43 = i40;
  5007    while (1) {
  5008     __ZNK20btConvexHullInternal6Vertex3dotERKNS_7Point64E(i10, HEAP32[i43 + 12 >> 2] | 0, i8);
  5009     if ((__ZNK20btConvexHullInternal11Rational1287compareERKS0_(i10, i9) | 0) < 0) {
  5010      i44 = __ZNK20btConvexHullInternal11Rational1287compareEx(i10, i31, i23) | 0;
  5011      HEAP32[i30 >> 2] = HEAP32[i32 >> 2];
  5012      HEAP32[i30 + 4 >> 2] = HEAP32[i32 + 4 >> 2];
  5013      HEAP32[i30 + 8 >> 2] = HEAP32[i32 + 8 >> 2];
  5014      HEAP32[i30 + 12 >> 2] = HEAP32[i32 + 12 >> 2];
  5015      HEAP32[i30 + 16 >> 2] = HEAP32[i32 + 16 >> 2];
  5016      HEAP32[i30 + 20 >> 2] = HEAP32[i32 + 20 >> 2];
  5017      HEAP32[i30 + 24 >> 2] = HEAP32[i32 + 24 >> 2];
  5018      HEAP32[i30 + 28 >> 2] = HEAP32[i32 + 28 >> 2];
  5019      HEAP32[i30 + 32 >> 2] = HEAP32[i32 + 32 >> 2];
  5020      HEAP8[i30 + 36 | 0] = HEAP8[i32 + 36 | 0] | 0;
  5021      i45 = HEAP32[i43 + 8 >> 2] | 0;
  5022      if ((i44 | 0) < 0) {
  5023       break;
  5024      } else {
  5025       i46 = i45;
  5026       i47 = i44;
  5027       i48 = i45;
  5029     } else {
  5030      i46 = i21;
  5031      i47 = i42;
  5032      i48 = i43;
  5034     i44 = HEAP32[i48 + 4 >> 2] | 0;
  5035     if ((i44 | 0) == (i46 | 0)) {
  5036      i20 = 0;
  5037      i49 = 1612;
  5038      break;
  5039     } else {
  5040      i21 = i46;
  5041      i42 = i47;
  5042      i43 = i44;
  5045    if ((i49 | 0) == 1612) {
  5046     STACKTOP = i5;
  5047     return i20 | 0;
  5049    if ((i45 | 0) == 0) {
  5050     i20 = 0;
  5051    } else {
  5052     i50 = i45;
  5053     i51 = i42;
  5054     break;
  5056    STACKTOP = i5;
  5057    return i20 | 0;
  5058   } else {
  5059    i43 = i11;
  5060    i21 = i40;
  5061    i32 = i40;
  5062    while (1) {
  5063     __ZNK20btConvexHullInternal6Vertex3dotERKNS_7Point64E(i11, HEAP32[i32 + 12 >> 2] | 0, i8);
  5064     if ((__ZNK20btConvexHullInternal11Rational1287compareERKS0_(i11, i9) | 0) > 0) {
  5065      i52 = __ZNK20btConvexHullInternal11Rational1287compareEx(i11, i31, i23) | 0;
  5066      if ((i52 | 0) > -1) {
  5067       break;
  5069      HEAP32[i30 >> 2] = HEAP32[i43 >> 2];
  5070      HEAP32[i30 + 4 >> 2] = HEAP32[i43 + 4 >> 2];
  5071      HEAP32[i30 + 8 >> 2] = HEAP32[i43 + 8 >> 2];
  5072      HEAP32[i30 + 12 >> 2] = HEAP32[i43 + 12 >> 2];
  5073      HEAP32[i30 + 16 >> 2] = HEAP32[i43 + 16 >> 2];
  5074      HEAP32[i30 + 20 >> 2] = HEAP32[i43 + 20 >> 2];
  5075      HEAP32[i30 + 24 >> 2] = HEAP32[i43 + 24 >> 2];
  5076      HEAP32[i30 + 28 >> 2] = HEAP32[i43 + 28 >> 2];
  5077      HEAP32[i30 + 32 >> 2] = HEAP32[i43 + 32 >> 2];
  5078      HEAP8[i30 + 36 | 0] = HEAP8[i43 + 36 | 0] | 0;
  5079      i44 = HEAP32[i32 + 8 >> 2] | 0;
  5080      i53 = i44;
  5081      i54 = i44;
  5082     } else {
  5083      i53 = i21;
  5084      i54 = i32;
  5086     i44 = HEAP32[i54 + 4 >> 2] | 0;
  5087     if ((i44 | 0) == (i53 | 0)) {
  5088      i20 = 1;
  5089      i49 = 1615;
  5090      break;
  5091     } else {
  5092      i21 = i53;
  5093      i32 = i44;
  5096    if ((i49 | 0) == 1615) {
  5097     STACKTOP = i5;
  5098     return i20 | 0;
  5100    if ((i32 | 0) == 0) {
  5101     i20 = 1;
  5102    } else {
  5103     i50 = i32;
  5104     i51 = i52;
  5105     break;
  5107    STACKTOP = i5;
  5108    return i20 | 0;
  5110  } while (0);
  5111  L1672 : do {
  5112   if ((i51 | 0) == 0) {
  5113    i52 = i50 + 8 | 0;
  5114    i53 = HEAP32[HEAP32[i52 >> 2] >> 2] | 0;
  5115    while (1) {
  5116     __ZNK20btConvexHullInternal6Vertex3dotERKNS_7Point64E(i12, HEAP32[i53 + 12 >> 2] | 0, i8);
  5117     if ((__ZNK20btConvexHullInternal11Rational1287compareEx(i12, i31, i23) | 0) >= 1) {
  5118      break L1672;
  5120     i54 = HEAP32[i53 >> 2] | 0;
  5121     if ((i54 | 0) == (HEAP32[i52 >> 2] | 0)) {
  5122      i20 = 1;
  5123      break;
  5124     } else {
  5125      i53 = i54;
  5128    STACKTOP = i5;
  5129    return i20 | 0;
  5131  } while (0);
  5132  i12 = i1 + 32 | 0;
  5133  i53 = i4 + 4 | 0;
  5134  i52 = i4 + 8 | 0;
  5135  i32 = i4 + 12 | 0;
  5136  i54 = i4 + 16 | 0;
  5137  i4 = i1 + 56 | 0;
  5138  i30 = i1 + 116 | 0;
  5139  i11 = i1 + 48 | 0;
  5140  i9 = i1 + 100 | 0;
  5141  i40 = i1 + 120 | 0;
  5142  i45 = (i35 | 0) < 0;
  5143  i47 = _i64Subtract(0, 0, i7, i38) | 0;
  5144  i46 = tempRet0;
  5145  i48 = (i19 | 0) < 0;
  5146  i10 = _i64Subtract(0, 0, i24, i34) | 0;
  5147  i41 = tempRet0;
  5148  i21 = (i18 | 0) < 0;
  5149  i43 = _i64Subtract(0, 0, i37, i39) | 0;
  5150  i42 = tempRet0;
  5151  i44 = i50;
  5152  i50 = i51;
  5153  i51 = 0;
  5154  i55 = 0;
  5155  i56 = 0;
  5156  L1679 : while (1) {
  5157   i57 = (i50 | 0) == 0;
  5158   L1681 : do {
  5159    if (i57) {
  5160     i58 = HEAP32[HEAP32[i44 + 8 >> 2] >> 2] | 0;
  5161     i59 = i44;
  5162     i60 = i58;
  5163     while (1) {
  5164      __ZNK20btConvexHullInternal6Vertex3dotERKNS_7Point64E(i13, HEAP32[i60 + 12 >> 2] | 0, i8);
  5165      if ((__ZNK20btConvexHullInternal11Rational1287compareEx(i13, i31, i23) | 0) > -1) {
  5166       i61 = i59;
  5167       break L1681;
  5169      i62 = HEAP32[i60 >> 2] | 0;
  5170      if ((i62 | 0) == (i58 | 0)) {
  5171       i20 = 1;
  5172       i49 = 1618;
  5173       break L1679;
  5174      } else {
  5175       i59 = HEAP32[i60 + 8 >> 2] | 0;
  5176       i60 = i62;
  5179    } else {
  5180     i61 = i44;
  5182   } while (0);
  5183   if ((i51 | 0) == 0) {
  5184    i63 = i61;
  5185   } else {
  5186    if ((i61 | 0) == (i51 | 0)) {
  5187     break;
  5188    } else {
  5189     i63 = i51;
  5192   i60 = i61 + 8 | 0;
  5193   i59 = HEAP32[i60 >> 2] | 0;
  5194   do {
  5195    i59 = HEAP32[(HEAP32[i59 + 8 >> 2] | 0) + 4 >> 2] | 0;
  5196    i64 = i59 + 12 | 0;
  5197    __ZNK20btConvexHullInternal6Vertex3dotERKNS_7Point64E(i14, HEAP32[i64 >> 2] | 0, i8);
  5198    i65 = __ZNK20btConvexHullInternal11Rational1287compareEx(i14, i31, i23) | 0;
  5199   } while ((i65 | 0) <= -1);
  5200   if ((i65 | 0) > 0) {
  5201    i58 = HEAP32[i64 >> 2] | 0;
  5202    i62 = i59 + 8 | 0;
  5203    i66 = HEAP32[i62 >> 2] | 0;
  5204    i67 = i66 + 4 | 0;
  5205    i68 = HEAP32[i67 >> 2] | 0;
  5206    i69 = i58 + 8 | 0;
  5207    if ((i68 | 0) == (i66 | 0)) {
  5208     HEAP32[i69 >> 2] = 0;
  5209    } else {
  5210     HEAP32[i69 >> 2] = i68;
  5211     i68 = HEAP32[i67 >> 2] | 0;
  5212     i69 = i66 | 0;
  5213     i70 = HEAP32[i69 >> 2] | 0;
  5214     HEAP32[i68 >> 2] = i70;
  5215     HEAP32[i70 + 4 >> 2] = i68;
  5216     HEAP32[i69 >> 2] = i66;
  5217     HEAP32[i67 >> 2] = i66;
  5219    i67 = HEAP32[i59 + 16 >> 2] | 0;
  5220    i69 = HEAP32[i67 + 32 >> 2] | 0;
  5221    i68 = HEAP32[i67 + 52 >> 2] | 0;
  5222    i70 = Math_imul(i68, i69) | 0;
  5223    i71 = HEAP32[i67 + 36 >> 2] | 0;
  5224    i72 = HEAP32[i67 + 48 >> 2] | 0;
  5225    i73 = i70 - (Math_imul(i72, i71) | 0) | 0;
  5226    i70 = i73;
  5227    i74 = (i73 | 0) < 0 ? -1 : 0;
  5228    i73 = HEAP32[i67 + 44 >> 2] | 0;
  5229    i75 = Math_imul(i73, i71) | 0;
  5230    i71 = HEAP32[i67 + 28 >> 2] | 0;
  5231    i76 = i75 - (Math_imul(i71, i68) | 0) | 0;
  5232    i68 = i76;
  5233    i75 = (i76 | 0) < 0 ? -1 : 0;
  5234    i76 = Math_imul(i71, i72) | 0;
  5235    i72 = i76 - (Math_imul(i73, i69) | 0) | 0;
  5236    i69 = i72;
  5237    i73 = (i72 | 0) < 0 ? -1 : 0;
  5238    i72 = HEAP32[(HEAP32[i62 >> 2] | 0) + 16 >> 2] | 0;
  5239    i62 = HEAP32[i72 + 32 >> 2] | 0;
  5240    i76 = HEAP32[i72 + 52 >> 2] | 0;
  5241    i71 = Math_imul(i76, i62) | 0;
  5242    i77 = HEAP32[i72 + 36 >> 2] | 0;
  5243    i78 = HEAP32[i72 + 48 >> 2] | 0;
  5244    i79 = i71 - (Math_imul(i78, i77) | 0) | 0;
  5245    i71 = i79;
  5246    i80 = (i79 | 0) < 0 ? -1 : 0;
  5247    i79 = HEAP32[i72 + 44 >> 2] | 0;
  5248    i81 = Math_imul(i79, i77) | 0;
  5249    i77 = HEAP32[i72 + 28 >> 2] | 0;
  5250    i82 = i81 - (Math_imul(i77, i76) | 0) | 0;
  5251    i76 = i82;
  5252    i81 = (i82 | 0) < 0 ? -1 : 0;
  5253    i82 = Math_imul(i77, i78) | 0;
  5254    i78 = i82 - (Math_imul(i79, i62) | 0) | 0;
  5255    i62 = i78;
  5256    i79 = (i78 | 0) < 0 ? -1 : 0;
  5257    i78 = HEAP32[i26 >> 2] | 0;
  5258    i82 = i78;
  5259    i77 = (i78 | 0) < 0 ? -1 : 0;
  5260    i78 = ___muldi3(i82, i77, i70, i74) | 0;
  5261    i83 = tempRet0;
  5262    i84 = HEAP32[i6 >> 2] | 0;
  5263    i85 = i84;
  5264    i86 = (i84 | 0) < 0 ? -1 : 0;
  5265    i84 = ___muldi3(i85, i86, i68, i75) | 0;
  5266    i87 = _i64Add(i84, tempRet0, i78, i83) | 0;
  5267    i83 = tempRet0;
  5268    i78 = HEAP32[i25 >> 2] | 0;
  5269    i84 = i78;
  5270    i88 = (i78 | 0) < 0 ? -1 : 0;
  5271    i78 = ___muldi3(i84, i88, i69, i73) | 0;
  5272    i89 = _i64Add(i87, i83, i78, tempRet0) | 0;
  5273    i78 = tempRet0;
  5274    i83 = HEAP32[i29 >> 2] | 0;
  5275    i87 = i83;
  5276    i90 = (i83 | 0) < 0 ? -1 : 0;
  5277    i83 = ___muldi3(i87, i90, i70, i74) | 0;
  5278    i91 = tempRet0;
  5279    i92 = HEAP32[i27 >> 2] | 0;
  5280    i93 = i92;
  5281    i94 = (i92 | 0) < 0 ? -1 : 0;
  5282    i92 = ___muldi3(i93, i94, i68, i75) | 0;
  5283    i95 = _i64Add(i92, tempRet0, i83, i91) | 0;
  5284    i91 = tempRet0;
  5285    i83 = HEAP32[i22 >> 2] | 0;
  5286    i92 = i83;
  5287    i96 = (i83 | 0) < 0 ? -1 : 0;
  5288    i83 = ___muldi3(i92, i96, i69, i73) | 0;
  5289    i97 = _i64Add(i95, i91, i83, tempRet0) | 0;
  5290    i83 = tempRet0;
  5291    i91 = ___muldi3(i82, i77, i71, i80) | 0;
  5292    i77 = tempRet0;
  5293    i82 = ___muldi3(i85, i86, i76, i81) | 0;
  5294    i86 = _i64Add(i82, tempRet0, i91, i77) | 0;
  5295    i77 = tempRet0;
  5296    i91 = ___muldi3(i84, i88, i62, i79) | 0;
  5297    i88 = _i64Add(i86, i77, i91, tempRet0) | 0;
  5298    i91 = tempRet0;
  5299    i77 = ___muldi3(i87, i90, i71, i80) | 0;
  5300    i90 = tempRet0;
  5301    i87 = ___muldi3(i93, i94, i76, i81) | 0;
  5302    i94 = _i64Add(i87, tempRet0, i77, i90) | 0;
  5303    i90 = tempRet0;
  5304    i77 = ___muldi3(i92, i96, i62, i79) | 0;
  5305    i96 = _i64Add(i94, i90, i77, tempRet0) | 0;
  5306    i77 = tempRet0;
  5307    i90 = (HEAP32[i67 + 12 >> 2] | 0) - i35 | 0;
  5308    i94 = (HEAP32[i67 + 16 >> 2] | 0) - i19 | 0;
  5309    i92 = (HEAP32[i67 + 20 >> 2] | 0) - i18 | 0;
  5310    i67 = ___muldi3(i90, (i90 | 0) < 0 ? -1 : 0, i70, i74) | 0;
  5311    i74 = tempRet0;
  5312    i70 = ___muldi3(i94, (i94 | 0) < 0 ? -1 : 0, i68, i75) | 0;
  5313    i75 = _i64Add(i70, tempRet0, i67, i74) | 0;
  5314    i74 = tempRet0;
  5315    i67 = ___muldi3(i92, (i92 | 0) < 0 ? -1 : 0, i69, i73) | 0;
  5316    i73 = _i64Add(i75, i74, i67, tempRet0) | 0;
  5317    i67 = tempRet0;
  5318    i74 = (HEAP32[i72 + 12 >> 2] | 0) - i35 | 0;
  5319    i75 = (HEAP32[i72 + 16 >> 2] | 0) - i19 | 0;
  5320    i69 = (HEAP32[i72 + 20 >> 2] | 0) - i18 | 0;
  5321    i72 = ___muldi3(i74, (i74 | 0) < 0 ? -1 : 0, i71, i80) | 0;
  5322    i80 = tempRet0;
  5323    i71 = ___muldi3(i75, (i75 | 0) < 0 ? -1 : 0, i76, i81) | 0;
  5324    i81 = _i64Add(i71, tempRet0, i72, i80) | 0;
  5325    i80 = tempRet0;
  5326    i72 = ___muldi3(i69, (i69 | 0) < 0 ? -1 : 0, i62, i79) | 0;
  5327    i79 = _i64Add(i81, i80, i72, tempRet0) | 0;
  5328    i72 = tempRet0;
  5329    i80 = 0;
  5330    i81 = (i78 | 0) < (i80 | 0) | (i78 | 0) == (i80 | 0) & i89 >>> 0 < 0 >>> 0;
  5331    i80 = _i64Subtract(0, 0, i89, i78) | 0;
  5332    i62 = i81 ? tempRet0 : i78;
  5333    i78 = 0;
  5334    i69 = (i77 | 0) < (i78 | 0) | (i77 | 0) == (i78 | 0) & i96 >>> 0 < 0 >>> 0;
  5335    if (i69) {
  5336     i78 = _i64Subtract(0, 0, i96, i77) | 0;
  5337     i98 = i81 ^ 1;
  5338     i99 = tempRet0;
  5339     i100 = i78;
  5340    } else {
  5341     i98 = i81;
  5342     i99 = i77;
  5343     i100 = i96;
  5345    i78 = (i81 ? i80 : i89) | 0;
  5346    i89 = i62 & 0;
  5347    i80 = i100 | 0;
  5348    i71 = i99 & 0;
  5349    i76 = ___muldi3(i80, i71, i78, i89) | 0;
  5350    i75 = tempRet0;
  5351    i74 = i99;
  5352    i92 = 0;
  5353    i70 = ___muldi3(i74, i92, i78, i89) | 0;
  5354    i68 = tempRet0;
  5355    i94 = i62;
  5356    i62 = 0;
  5357    i90 = ___muldi3(i80, i71, i94, i62) | 0;
  5358    i71 = tempRet0;
  5359    i80 = ___muldi3(i74, i92, i94, i62) | 0;
  5360    i92 = tempRet0;
  5361    i74 = _i64Add(i70 | 0, i68 & 0, i90 | 0, i71 & 0) | 0;
  5362    i90 = tempRet0;
  5363    i70 = _i64Add(i68, 0, i80, i92) | 0;
  5364    i92 = _i64Add(i70, tempRet0, i71, 0) | 0;
  5365    i71 = tempRet0;
  5366    i70 = _llvm_uadd_with_overflow_i64(i76 | 0, i75 | 0, 0, i74 | 0) | 0;
  5367    i74 = i70;
  5368    i70 = tempRet0;
  5369    i75 = _i64Add(i92, i71, tempRet1 & 1, 0) | 0;
  5370    i71 = _i64Add(i75, tempRet0, i90, 0) | 0;
  5371    i90 = tempRet0;
  5372    if (i98) {
  5373     i75 = _i64Subtract(0, 0, i74, i70) | 0;
  5374     i92 = tempRet0;
  5375     i76 = _i64Add((i74 | 0) == 0 & (i70 | 0) == 0 & 1, 0, ~i71, ~i90) | 0;
  5376     i101 = i92;
  5377     i102 = i75;
  5378     i103 = tempRet0;
  5379     i104 = i76;
  5380    } else {
  5381     i101 = i70;
  5382     i102 = i74;
  5383     i103 = i90;
  5384     i104 = i71;
  5386    i71 = 0;
  5387    i90 = (i83 | 0) < (i71 | 0) | (i83 | 0) == (i71 | 0) & i97 >>> 0 < 0 >>> 0;
  5388    i71 = _i64Subtract(0, 0, i97, i83) | 0;
  5389    i74 = i90 ? tempRet0 : i83;
  5390    i83 = 0;
  5391    i70 = (i91 | 0) < (i83 | 0) | (i91 | 0) == (i83 | 0) & i88 >>> 0 < 0 >>> 0;
  5392    if (i70) {
  5393     i83 = _i64Subtract(0, 0, i88, i91) | 0;
  5394     i105 = i90 ^ 1;
  5395     i106 = tempRet0;
  5396     i107 = i83;
  5397    } else {
  5398     i105 = i90;
  5399     i106 = i91;
  5400     i107 = i88;
  5402    i83 = (i90 ? i71 : i97) | 0;
  5403    i97 = i74 & 0;
  5404    i71 = i107 | 0;
  5405    i76 = i106 & 0;
  5406    i75 = ___muldi3(i71, i76, i83, i97) | 0;
  5407    i92 = tempRet0;
  5408    i80 = i106;
  5409    i68 = 0;
  5410    i87 = ___muldi3(i80, i68, i83, i97) | 0;
  5411    i93 = tempRet0;
  5412    i86 = i74;
  5413    i74 = 0;
  5414    i84 = ___muldi3(i71, i76, i86, i74) | 0;
  5415    i76 = tempRet0;
  5416    i71 = ___muldi3(i80, i68, i86, i74) | 0;
  5417    i68 = tempRet0;
  5418    i80 = _i64Add(i87 | 0, i93 & 0, i84 | 0, i76 & 0) | 0;
  5419    i84 = tempRet0;
  5420    i87 = _i64Add(i93, 0, i71, i68) | 0;
  5421    i68 = _i64Add(i87, tempRet0, i76, 0) | 0;
  5422    i76 = tempRet0;
  5423    i87 = _llvm_uadd_with_overflow_i64(i75 | 0, i92 | 0, 0, i80 | 0) | 0;
  5424    i80 = i87;
  5425    i87 = tempRet0;
  5426    i92 = _i64Add(i68, i76, tempRet1 & 1, 0) | 0;
  5427    i76 = _i64Add(i92, tempRet0, i84, 0) | 0;
  5428    i84 = tempRet0;
  5429    if (i105) {
  5430     i92 = _i64Subtract(0, 0, i80, i87) | 0;
  5431     i68 = tempRet0;
  5432     i75 = _i64Add((i80 | 0) == 0 & (i87 | 0) == 0 & 1, 0, ~i76, ~i84) | 0;
  5433     i108 = i68;
  5434     i109 = i92;
  5435     i110 = tempRet0;
  5436     i111 = i75;
  5437    } else {
  5438     i108 = i87;
  5439     i109 = i80;
  5440     i110 = i84;
  5441     i111 = i76;
  5443    i76 = _i64Subtract(0, 0, i109, i108) | 0;
  5444    i84 = _llvm_uadd_with_overflow_i64(i102 | 0, i101 | 0, i76 | 0, tempRet0 | 0) | 0;
  5445    i76 = i84;
  5446    i84 = tempRet0;
  5447    i80 = tempRet1 & 1;
  5448    i87 = _i64Add(i104, i103, ~i111, ~i110) | 0;
  5449    i75 = _i64Add(i87, tempRet0, (i109 | 0) == 0 & (i108 | 0) == 0 & 1, 0) | 0;
  5450    i87 = _i64Add(i75, tempRet0, i80, 0) | 0;
  5451    i80 = tempRet0;
  5452    i75 = __ZN20btConvexHullInternal4PoolINS_6VertexEE9newObjectEv(i12) | 0;
  5453    HEAP32[i75 + 100 >> 2] = -1;
  5454    HEAP32[i75 + 104 >> 2] = -1;
  5455    i92 = HEAP32[i26 >> 2] | 0;
  5456    i68 = i92;
  5457    i71 = (i92 | 0) < 0 ? -1 : 0;
  5458    i92 = ___muldi3(i68, i71, i73, i67) | 0;
  5459    i93 = tempRet0;
  5460    i82 = 0;
  5461    i85 = (i93 | 0) < (i82 | 0) | (i93 | 0) == (i82 | 0) & i92 >>> 0 < 0 >>> 0;
  5462    i82 = _i64Subtract(0, 0, i92, i93) | 0;
  5463    i95 = i85 ? tempRet0 : i93;
  5464    if (i69) {
  5465     i93 = _i64Subtract(0, 0, i96, i77) | 0;
  5466     i112 = i85 ^ 1;
  5467     i113 = tempRet0;
  5468     i114 = i93;
  5469    } else {
  5470     i112 = i85;
  5471     i113 = i77;
  5472     i114 = i96;
  5474    i93 = (i85 ? i82 : i92) | 0;
  5475    i92 = i95 & 0;
  5476    i82 = i114 | 0;
  5477    i85 = i113 & 0;
  5478    i115 = ___muldi3(i82, i85, i93, i92) | 0;
  5479    i116 = tempRet0;
  5480    i117 = i113;
  5481    i118 = 0;
  5482    i119 = ___muldi3(i117, i118, i93, i92) | 0;
  5483    i92 = tempRet0;
  5484    i93 = i95;
  5485    i95 = 0;
  5486    i120 = ___muldi3(i82, i85, i93, i95) | 0;
  5487    i85 = tempRet0;
  5488    i82 = ___muldi3(i117, i118, i93, i95) | 0;
  5489    i95 = tempRet0;
  5490    i93 = _i64Add(i119 | 0, i92 & 0, i120 | 0, i85 & 0) | 0;
  5491    i120 = tempRet0;
  5492    i119 = _i64Add(i92, 0, i82, i95) | 0;
  5493    i95 = _i64Add(i119, tempRet0, i85, 0) | 0;
  5494    i85 = tempRet0;
  5495    i119 = _llvm_uadd_with_overflow_i64(i115 | 0, i116 | 0, 0, i93 | 0) | 0;
  5496    i93 = i119;
  5497    i119 = tempRet0;
  5498    i116 = _i64Add(i95, i85, tempRet1 & 1, 0) | 0;
  5499    i85 = _i64Add(i116, tempRet0, i120, 0) | 0;
  5500    i120 = tempRet0;
  5501    if (i112) {
  5502     i116 = _i64Subtract(0, 0, i93, i119) | 0;
  5503     i95 = tempRet0;
  5504     i115 = _i64Add((i93 | 0) == 0 & (i119 | 0) == 0 & 1, 0, ~i85, ~i120) | 0;
  5505     i121 = i95;
  5506     i122 = i116;
  5507     i123 = tempRet0;
  5508     i124 = i115;
  5509    } else {
  5510     i121 = i119;
  5511     i122 = i93;
  5512     i123 = i120;
  5513     i124 = i85;
  5515    i85 = ___muldi3(i68, i71, i79, i72) | 0;
  5516    i71 = tempRet0;
  5517    i68 = 0;
  5518    i120 = (i71 | 0) < (i68 | 0) | (i71 | 0) == (i68 | 0) & i85 >>> 0 < 0 >>> 0;
  5519    i68 = _i64Subtract(0, 0, i85, i71) | 0;
  5520    i93 = i120 ? tempRet0 : i71;
  5521    i71 = (i120 ? i68 : i85) | 0;
  5522    i85 = i93 & 0;
  5523    i68 = ___muldi3(i71, i85, i83, i97) | 0;
  5524    i119 = tempRet0;
  5525    i115 = ___muldi3(i71, i85, i86, i74) | 0;
  5526    i85 = tempRet0;
  5527    i71 = i93;
  5528    i93 = 0;
  5529    i116 = ___muldi3(i71, i93, i83, i97) | 0;
  5530    i95 = tempRet0;
  5531    i82 = ___muldi3(i71, i93, i86, i74) | 0;
  5532    i93 = tempRet0;
  5533    i71 = _i64Add(i115 | 0, i85 & 0, i116 | 0, i95 & 0) | 0;
  5534    i116 = tempRet0;
  5535    i115 = _llvm_uadd_with_overflow_i64(i68 | 0, i119 | 0, 0, i71 | 0) | 0;
  5536    i71 = i115;
  5537    i115 = tempRet0;
  5538    i119 = tempRet1 & 1;
  5539    i68 = _i64Add(i85, 0, i82, i93) | 0;
  5540    i93 = _i64Add(i68, tempRet0, i95, 0) | 0;
  5541    i95 = _i64Add(i93, tempRet0, i116, 0) | 0;
  5542    i116 = _i64Add(i95, tempRet0, i119, 0) | 0;
  5543    i119 = tempRet0;
  5544    if (i120 ^ i90) {
  5545     i120 = _i64Subtract(0, 0, i71, i115) | 0;
  5546     i95 = tempRet0;
  5547     i93 = _i64Add((i71 | 0) == 0 & (i115 | 0) == 0 & 1, 0, ~i116, ~i119) | 0;
  5548     i125 = i95;
  5549     i126 = i120;
  5550     i127 = tempRet0;
  5551     i128 = i93;
  5552    } else {
  5553     i125 = i115;
  5554     i126 = i71;
  5555     i127 = i119;
  5556     i128 = i116;
  5558    i116 = _i64Subtract(0, 0, i126, i125) | 0;
  5559    i119 = _llvm_uadd_with_overflow_i64(i122 | 0, i121 | 0, i116 | 0, tempRet0 | 0) | 0;
  5560    i116 = tempRet0;
  5561    i71 = tempRet1 & 1;
  5562    i115 = HEAP32[i29 >> 2] | 0;
  5563    i93 = i115;
  5564    i120 = (i115 | 0) < 0 ? -1 : 0;
  5565    i115 = ___muldi3(i93, i120, i79, i72) | 0;
  5566    i95 = tempRet0;
  5567    i68 = 0;
  5568    i82 = (i95 | 0) < (i68 | 0) | (i95 | 0) == (i68 | 0) & i115 >>> 0 < 0 >>> 0;
  5569    i68 = _i64Subtract(0, 0, i115, i95) | 0;
  5570    i85 = i82 ? tempRet0 : i95;
  5571    i95 = (i82 ? i68 : i115) | 0;
  5572    i115 = i85 & 0;
  5573    i68 = ___muldi3(i95, i115, i78, i89) | 0;
  5574    i92 = tempRet0;
  5575    i118 = ___muldi3(i95, i115, i94, i62) | 0;
  5576    i115 = tempRet0;
  5577    i95 = i85;
  5578    i85 = 0;
  5579    i117 = ___muldi3(i95, i85, i78, i89) | 0;
  5580    i129 = tempRet0;
  5581    i130 = ___muldi3(i95, i85, i94, i62) | 0;
  5582    i85 = tempRet0;
  5583    i95 = _i64Add(i118 | 0, i115 & 0, i117 | 0, i129 & 0) | 0;
  5584    i117 = tempRet0;
  5585    i118 = _llvm_uadd_with_overflow_i64(i68 | 0, i92 | 0, 0, i95 | 0) | 0;
  5586    i95 = i118;
  5587    i118 = tempRet0;
  5588    i92 = _i64Add(i130, i85, tempRet1 & 1, 0) | 0;
  5589    i85 = _i64Add(i92, tempRet0, i115, 0) | 0;
  5590    i115 = _i64Add(i85, tempRet0, i129, 0) | 0;
  5591    i129 = _i64Add(i115, tempRet0, i117, 0) | 0;
  5592    i117 = tempRet0;
  5593    if (i82 ^ i81) {
  5594     i82 = _i64Subtract(0, 0, i95, i118) | 0;
  5595     i115 = tempRet0;
  5596     i85 = _i64Add((i95 | 0) == 0 & (i118 | 0) == 0 & 1, 0, ~i129, ~i117) | 0;
  5597     i131 = i115;
  5598     i132 = i82;
  5599     i133 = tempRet0;
  5600     i134 = i85;
  5601    } else {
  5602     i131 = i118;
  5603     i132 = i95;
  5604     i133 = i117;
  5605     i134 = i129;
  5607    i129 = _llvm_uadd_with_overflow_i64(i119 | 0, i116 | 0, i132 | 0, i131 | 0) | 0;
  5608    i116 = tempRet0;
  5609    i119 = tempRet1 & 1;
  5610    i117 = ___muldi3(i93, i120, i73, i67) | 0;
  5611    i120 = tempRet0;
  5612    i93 = 0;
  5613    i95 = (i120 | 0) < (i93 | 0) | (i120 | 0) == (i93 | 0) & i117 >>> 0 < 0 >>> 0;
  5614    i93 = _i64Subtract(0, 0, i117, i120) | 0;
  5615    i118 = i95 ? tempRet0 : i120;
  5616    if (i70) {
  5617     i120 = _i64Subtract(0, 0, i88, i91) | 0;
  5618     i135 = i95 ^ 1;
  5619     i136 = tempRet0;
  5620     i137 = i120;
  5621    } else {
  5622     i135 = i95;
  5623     i136 = i91;
  5624     i137 = i88;
  5626    i120 = (i95 ? i93 : i117) | 0;
  5627    i117 = i118 & 0;
  5628    i93 = i137 | 0;
  5629    i95 = i136 & 0;
  5630    i85 = ___muldi3(i93, i95, i120, i117) | 0;
  5631    i82 = tempRet0;
  5632    i115 = i136;
  5633    i92 = 0;
  5634    i130 = ___muldi3(i115, i92, i120, i117) | 0;
  5635    i117 = tempRet0;
  5636    i120 = i118;
  5637    i118 = 0;
  5638    i68 = ___muldi3(i93, i95, i120, i118) | 0;
  5639    i95 = tempRet0;
  5640    i93 = ___muldi3(i115, i92, i120, i118) | 0;
  5641    i118 = tempRet0;
  5642    i120 = _i64Add(i130 | 0, i117 & 0, i68 | 0, i95 & 0) | 0;
  5643    i68 = tempRet0;
  5644    i130 = _i64Add(i117, 0, i93, i118) | 0;
  5645    i118 = _i64Add(i130, tempRet0, i95, 0) | 0;
  5646    i95 = tempRet0;
  5647    i130 = _llvm_uadd_with_overflow_i64(i85 | 0, i82 | 0, 0, i120 | 0) | 0;
  5648    i120 = i130;
  5649    i130 = tempRet0;
  5650    i82 = _i64Add(i118, i95, tempRet1 & 1, 0) | 0;
  5651    i95 = _i64Add(i82, tempRet0, i68, 0) | 0;
  5652    i68 = tempRet0;
  5653    if (i135) {
  5654     i82 = _i64Subtract(0, 0, i120, i130) | 0;
  5655     i118 = tempRet0;
  5656     i85 = _i64Add((i120 | 0) == 0 & (i130 | 0) == 0 & 1, 0, ~i95, ~i68) | 0;
  5657     i138 = i118;
  5658     i139 = i82;
  5659     i140 = tempRet0;
  5660     i141 = i85;
  5661    } else {
  5662     i138 = i130;
  5663     i139 = i120;
  5664     i140 = i68;
  5665     i141 = i95;
  5667    i95 = _i64Subtract(0, 0, i139, i138) | 0;
  5668    i68 = _llvm_uadd_with_overflow_i64(i129 | 0, i116 | 0, i95 | 0, tempRet0 | 0) | 0;
  5669    i95 = tempRet0;
  5670    i116 = tempRet1 & 1;
  5671    i129 = 0;
  5672    i120 = (i80 | 0) < (i129 | 0) | (i80 | 0) == (i129 | 0) & i87 >>> 0 < 0 >>> 0;
  5673    if (i120) {
  5674     i129 = _i64Subtract(0, 0, i76, i84) | 0;
  5675     i130 = tempRet0;
  5676     i85 = _i64Add((i76 | 0) == 0 & (i84 | 0) == 0 & 1, 0, ~i87, ~i80) | 0;
  5677     i142 = i130;
  5678     i143 = i129;
  5679     i144 = tempRet0;
  5680     i145 = i85;
  5681    } else {
  5682     i142 = i84;
  5683     i143 = i76;
  5684     i144 = i80;
  5685     i145 = i87;
  5687    i85 = i45 ? i47 : i7;
  5688    i129 = i45 ? i46 : i38;
  5689    i130 = i143 | 0;
  5690    i82 = i142 & 0;
  5691    i118 = i85 | 0;
  5692    i93 = i129 & 0;
  5693    i117 = ___muldi3(i118, i93, i130, i82) | 0;
  5694    i92 = tempRet0;
  5695    i115 = i129;
  5696    i146 = 0;
  5697    i147 = ___muldi3(i115, i146, i130, i82) | 0;
  5698    i82 = tempRet0;
  5699    i130 = i142;
  5700    i148 = 0;
  5701    i149 = ___muldi3(i118, i93, i130, i148) | 0;
  5702    i93 = tempRet0;
  5703    i118 = ___muldi3(i115, i146, i130, i148) | 0;
  5704    i148 = tempRet0;
  5705    i130 = _i64Add(i147 | 0, i82 & 0, i149 | 0, i93 & 0) | 0;
  5706    i149 = tempRet0;
  5707    i147 = _llvm_uadd_with_overflow_i64(i117 | 0, i92 | 0, 0, i130 | 0) | 0;
  5708    i130 = i147;
  5709    i147 = tempRet0;
  5710    i92 = tempRet1 & 1;
  5711    i117 = ___muldi3(i85, i129, i145, i144) | 0;
  5712    i129 = _i64Add(i118, i148, i117, tempRet0) | 0;
  5713    i117 = _i64Add(i129, tempRet0, i82, 0) | 0;
  5714    i82 = _i64Add(i117, tempRet0, i93, 0) | 0;
  5715    i93 = _i64Add(i82, tempRet0, i92, 0) | 0;
  5716    i92 = _i64Add(i93, tempRet0, i149, 0) | 0;
  5717    i149 = tempRet0;
  5718    if (i120 ^ i45) {
  5719     i93 = _i64Subtract(0, 0, i130, i147) | 0;
  5720     i82 = tempRet0;
  5721     i117 = _i64Add((i130 | 0) == 0 & (i147 | 0) == 0 & 1, 0, ~i92, ~i149) | 0;
  5722     i150 = i82;
  5723     i151 = i93;
  5724     i152 = tempRet0;
  5725     i153 = i117;
  5726    } else {
  5727     i150 = i147;
  5728     i151 = i130;
  5729     i152 = i149;
  5730     i153 = i92;
  5732    i92 = _llvm_uadd_with_overflow_i64(i68 | 0, i95 | 0, i151 | 0, i150 | 0) | 0;
  5733    i95 = tempRet0;
  5734    i68 = tempRet1 & 1;
  5735    i149 = _i64Add(i124, i123, ~i128, ~i127) | 0;
  5736    i130 = _i64Add(i149, tempRet0, (i126 | 0) == 0 & (i125 | 0) == 0 & 1, 0) | 0;
  5737    i149 = _i64Add(i130, tempRet0, i71, 0) | 0;
  5738    i71 = _i64Add(i149, tempRet0, i134, i133) | 0;
  5739    i149 = _i64Add(i71, tempRet0, i119, 0) | 0;
  5740    i119 = _i64Add(i149, tempRet0, ~i141, ~i140) | 0;
  5741    i149 = _i64Add(i119, tempRet0, (i139 | 0) == 0 & (i138 | 0) == 0 & 1, 0) | 0;
  5742    i119 = _i64Add(i149, tempRet0, i116, 0) | 0;
  5743    i116 = _i64Add(i119, tempRet0, i153, i152) | 0;
  5744    i119 = _i64Add(i116, tempRet0, i68, 0) | 0;
  5745    i68 = tempRet0;
  5746    i116 = HEAP32[i6 >> 2] | 0;
  5747    i149 = i116;
  5748    i71 = (i116 | 0) < 0 ? -1 : 0;
  5749    i116 = ___muldi3(i149, i71, i73, i67) | 0;
  5750    i130 = tempRet0;
  5751    i147 = 0;
  5752    i117 = (i130 | 0) < (i147 | 0) | (i130 | 0) == (i147 | 0) & i116 >>> 0 < 0 >>> 0;
  5753    i147 = _i64Subtract(0, 0, i116, i130) | 0;
  5754    i93 = i117 ? tempRet0 : i130;
  5755    if (i69) {
  5756     i130 = _i64Subtract(0, 0, i96, i77) | 0;
  5757     i154 = i117 ^ 1;
  5758     i155 = tempRet0;
  5759     i156 = i130;
  5760    } else {
  5761     i154 = i117;
  5762     i155 = i77;
  5763     i156 = i96;
  5765    i130 = (i117 ? i147 : i116) | 0;
  5766    i116 = i93 & 0;
  5767    i147 = i156 | 0;
  5768    i117 = i155 & 0;
  5769    i82 = ___muldi3(i147, i117, i130, i116) | 0;
  5770    i129 = tempRet0;
  5771    i148 = i155;
  5772    i118 = 0;
  5773    i85 = ___muldi3(i148, i118, i130, i116) | 0;
  5774    i116 = tempRet0;
  5775    i130 = i93;
  5776    i93 = 0;
  5777    i146 = ___muldi3(i147, i117, i130, i93) | 0;
  5778    i117 = tempRet0;
  5779    i147 = ___muldi3(i148, i118, i130, i93) | 0;
  5780    i93 = tempRet0;
  5781    i130 = _i64Add(i85 | 0, i116 & 0, i146 | 0, i117 & 0) | 0;
  5782    i146 = tempRet0;
  5783    i85 = _i64Add(i116, 0, i147, i93) | 0;
  5784    i93 = _i64Add(i85, tempRet0, i117, 0) | 0;
  5785    i117 = tempRet0;
  5786    i85 = _llvm_uadd_with_overflow_i64(i82 | 0, i129 | 0, 0, i130 | 0) | 0;
  5787    i130 = i85;
  5788    i85 = tempRet0;
  5789    i129 = _i64Add(i93, i117, tempRet1 & 1, 0) | 0;
  5790    i117 = _i64Add(i129, tempRet0, i146, 0) | 0;
  5791    i146 = tempRet0;
  5792    if (i154) {
  5793     i129 = _i64Subtract(0, 0, i130, i85) | 0;
  5794     i93 = tempRet0;
  5795     i82 = _i64Add((i130 | 0) == 0 & (i85 | 0) == 0 & 1, 0, ~i117, ~i146) | 0;
  5796     i157 = i93;
  5797     i158 = i129;
  5798     i159 = tempRet0;
  5799     i160 = i82;
  5800    } else {
  5801     i157 = i85;
  5802     i158 = i130;
  5803     i159 = i146;
  5804     i160 = i117;
  5806    i117 = ___muldi3(i149, i71, i79, i72) | 0;
  5807    i71 = tempRet0;
  5808    i149 = 0;
  5809    i146 = (i71 | 0) < (i149 | 0) | (i71 | 0) == (i149 | 0) & i117 >>> 0 < 0 >>> 0;
  5810    i149 = _i64Subtract(0, 0, i117, i71) | 0;
  5811    i130 = i146 ? tempRet0 : i71;
  5812    i71 = (i146 ? i149 : i117) | 0;
  5813    i117 = i130 & 0;
  5814    i149 = ___muldi3(i71, i117, i83, i97) | 0;
  5815    i85 = tempRet0;
  5816    i82 = ___muldi3(i71, i117, i86, i74) | 0;
  5817    i117 = tempRet0;
  5818    i71 = i130;
  5819    i130 = 0;
  5820    i129 = ___muldi3(i71, i130, i83, i97) | 0;
  5821    i93 = tempRet0;
  5822    i147 = ___muldi3(i71, i130, i86, i74) | 0;
  5823    i130 = tempRet0;
  5824    i71 = _i64Add(i82 | 0, i117 & 0, i129 | 0, i93 & 0) | 0;
  5825    i129 = tempRet0;
  5826    i82 = _llvm_uadd_with_overflow_i64(i149 | 0, i85 | 0, 0, i71 | 0) | 0;
  5827    i71 = i82;
  5828    i82 = tempRet0;
  5829    i85 = tempRet1 & 1;
  5830    i149 = _i64Add(i117, 0, i147, i130) | 0;
  5831    i130 = _i64Add(i149, tempRet0, i93, 0) | 0;
  5832    i93 = _i64Add(i130, tempRet0, i129, 0) | 0;
  5833    i129 = _i64Add(i93, tempRet0, i85, 0) | 0;
  5834    i85 = tempRet0;
  5835    if (i146 ^ i90) {
  5836     i146 = _i64Subtract(0, 0, i71, i82) | 0;
  5837     i93 = tempRet0;
  5838     i130 = _i64Add((i71 | 0) == 0 & (i82 | 0) == 0 & 1, 0, ~i129, ~i85) | 0;
  5839     i161 = i93;
  5840     i162 = i146;
  5841     i163 = tempRet0;
  5842     i164 = i130;
  5843    } else {
  5844     i161 = i82;
  5845     i162 = i71;
  5846     i163 = i85;
  5847     i164 = i129;
  5849    i129 = _i64Subtract(0, 0, i162, i161) | 0;
  5850    i85 = _llvm_uadd_with_overflow_i64(i158 | 0, i157 | 0, i129 | 0, tempRet0 | 0) | 0;
  5851    i129 = tempRet0;
  5852    i71 = tempRet1 & 1;
  5853    i82 = HEAP32[i27 >> 2] | 0;
  5854    i130 = i82;
  5855    i146 = (i82 | 0) < 0 ? -1 : 0;
  5856    i82 = ___muldi3(i130, i146, i79, i72) | 0;
  5857    i93 = tempRet0;
  5858    i149 = 0;
  5859    i147 = (i93 | 0) < (i149 | 0) | (i93 | 0) == (i149 | 0) & i82 >>> 0 < 0 >>> 0;
  5860    i149 = _i64Subtract(0, 0, i82, i93) | 0;
  5861    i117 = i147 ? tempRet0 : i93;
  5862    i93 = (i147 ? i149 : i82) | 0;
  5863    i82 = i117 & 0;
  5864    i149 = ___muldi3(i93, i82, i78, i89) | 0;
  5865    i116 = tempRet0;
  5866    i118 = ___muldi3(i93, i82, i94, i62) | 0;
  5867    i82 = tempRet0;
  5868    i93 = i117;
  5869    i117 = 0;
  5870    i148 = ___muldi3(i93, i117, i78, i89) | 0;
  5871    i115 = tempRet0;
  5872    i165 = ___muldi3(i93, i117, i94, i62) | 0;
  5873    i117 = tempRet0;
  5874    i93 = _i64Add(i118 | 0, i82 & 0, i148 | 0, i115 & 0) | 0;
  5875    i148 = tempRet0;
  5876    i118 = _llvm_uadd_with_overflow_i64(i149 | 0, i116 | 0, 0, i93 | 0) | 0;
  5877    i93 = i118;
  5878    i118 = tempRet0;
  5879    i116 = _i64Add(i165, i117, tempRet1 & 1, 0) | 0;
  5880    i117 = _i64Add(i116, tempRet0, i82, 0) | 0;
  5881    i82 = _i64Add(i117, tempRet0, i115, 0) | 0;
  5882    i115 = _i64Add(i82, tempRet0, i148, 0) | 0;
  5883    i148 = tempRet0;
  5884    if (i147 ^ i81) {
  5885     i147 = _i64Subtract(0, 0, i93, i118) | 0;
  5886     i82 = tempRet0;
  5887     i117 = _i64Add((i93 | 0) == 0 & (i118 | 0) == 0 & 1, 0, ~i115, ~i148) | 0;
  5888     i166 = i82;
  5889     i167 = i147;
  5890     i168 = tempRet0;
  5891     i169 = i117;
  5892    } else {
  5893     i166 = i118;
  5894     i167 = i93;
  5895     i168 = i148;
  5896     i169 = i115;
  5898    i115 = _llvm_uadd_with_overflow_i64(i85 | 0, i129 | 0, i167 | 0, i166 | 0) | 0;
  5899    i129 = tempRet0;
  5900    i85 = tempRet1 & 1;
  5901    i148 = ___muldi3(i130, i146, i73, i67) | 0;
  5902    i146 = tempRet0;
  5903    i130 = 0;
  5904    i93 = (i146 | 0) < (i130 | 0) | (i146 | 0) == (i130 | 0) & i148 >>> 0 < 0 >>> 0;
  5905    i130 = _i64Subtract(0, 0, i148, i146) | 0;
  5906    i118 = i93 ? tempRet0 : i146;
  5907    if (i70) {
  5908     i146 = _i64Subtract(0, 0, i88, i91) | 0;
  5909     i170 = i93 ^ 1;
  5910     i171 = tempRet0;
  5911     i172 = i146;
  5912    } else {
  5913     i170 = i93;
  5914     i171 = i91;
  5915     i172 = i88;
  5917    i146 = (i93 ? i130 : i148) | 0;
  5918    i148 = i118 & 0;
  5919    i130 = i172 | 0;
  5920    i93 = i171 & 0;
  5921    i117 = ___muldi3(i130, i93, i146, i148) | 0;
  5922    i147 = tempRet0;
  5923    i82 = i171;
  5924    i116 = 0;
  5925    i165 = ___muldi3(i82, i116, i146, i148) | 0;
  5926    i148 = tempRet0;
  5927    i146 = i118;
  5928    i118 = 0;
  5929    i149 = ___muldi3(i130, i93, i146, i118) | 0;
  5930    i93 = tempRet0;
  5931    i130 = ___muldi3(i82, i116, i146, i118) | 0;
  5932    i118 = tempRet0;
  5933    i146 = _i64Add(i165 | 0, i148 & 0, i149 | 0, i93 & 0) | 0;
  5934    i149 = tempRet0;
  5935    i165 = _i64Add(i148, 0, i130, i118) | 0;
  5936    i118 = _i64Add(i165, tempRet0, i93, 0) | 0;
  5937    i93 = tempRet0;
  5938    i165 = _llvm_uadd_with_overflow_i64(i117 | 0, i147 | 0, 0, i146 | 0) | 0;
  5939    i146 = i165;
  5940    i165 = tempRet0;
  5941    i147 = _i64Add(i118, i93, tempRet1 & 1, 0) | 0;
  5942    i93 = _i64Add(i147, tempRet0, i149, 0) | 0;
  5943    i149 = tempRet0;
  5944    if (i170) {
  5945     i147 = _i64Subtract(0, 0, i146, i165) | 0;
  5946     i118 = tempRet0;
  5947     i117 = _i64Add((i146 | 0) == 0 & (i165 | 0) == 0 & 1, 0, ~i93, ~i149) | 0;
  5948     i173 = i118;
  5949     i174 = i147;
  5950     i175 = tempRet0;
  5951     i176 = i117;
  5952    } else {
  5953     i173 = i165;
  5954     i174 = i146;
  5955     i175 = i149;
  5956     i176 = i93;
  5958    i93 = _i64Subtract(0, 0, i174, i173) | 0;
  5959    i149 = _llvm_uadd_with_overflow_i64(i115 | 0, i129 | 0, i93 | 0, tempRet0 | 0) | 0;
  5960    i93 = tempRet0;
  5961    i129 = tempRet1 & 1;
  5962    if (i120) {
  5963     i115 = _i64Subtract(0, 0, i76, i84) | 0;
  5964     i146 = tempRet0;
  5965     i165 = _i64Add((i76 | 0) == 0 & (i84 | 0) == 0 & 1, 0, ~i87, ~i80) | 0;
  5966     i177 = i146;
  5967     i178 = i115;
  5968     i179 = tempRet0;
  5969     i180 = i165;
  5970    } else {
  5971     i177 = i84;
  5972     i178 = i76;
  5973     i179 = i80;
  5974     i180 = i87;
  5976    i165 = i48 ? i10 : i24;
  5977    i115 = i48 ? i41 : i34;
  5978    i146 = i178 | 0;
  5979    i117 = i177 & 0;
  5980    i147 = i165 | 0;
  5981    i118 = i115 & 0;
  5982    i130 = ___muldi3(i147, i118, i146, i117) | 0;
  5983    i148 = tempRet0;
  5984    i116 = i115;
  5985    i82 = 0;
  5986    i181 = ___muldi3(i116, i82, i146, i117) | 0;
  5987    i117 = tempRet0;
  5988    i146 = i177;
  5989    i182 = 0;
  5990    i183 = ___muldi3(i147, i118, i146, i182) | 0;
  5991    i118 = tempRet0;
  5992    i147 = ___muldi3(i116, i82, i146, i182) | 0;
  5993    i182 = tempRet0;
  5994    i146 = _i64Add(i181 | 0, i117 & 0, i183 | 0, i118 & 0) | 0;
  5995    i183 = tempRet0;
  5996    i181 = _llvm_uadd_with_overflow_i64(i130 | 0, i148 | 0, 0, i146 | 0) | 0;
  5997    i146 = i181;
  5998    i181 = tempRet0;
  5999    i148 = tempRet1 & 1;
  6000    i130 = ___muldi3(i165, i115, i180, i179) | 0;
  6001    i115 = _i64Add(i147, i182, i130, tempRet0) | 0;
  6002    i130 = _i64Add(i115, tempRet0, i117, 0) | 0;
  6003    i117 = _i64Add(i130, tempRet0, i118, 0) | 0;
  6004    i118 = _i64Add(i117, tempRet0, i148, 0) | 0;
  6005    i148 = _i64Add(i118, tempRet0, i183, 0) | 0;
  6006    i183 = tempRet0;
  6007    if (i120 ^ i48) {
  6008     i118 = _i64Subtract(0, 0, i146, i181) | 0;
  6009     i117 = tempRet0;
  6010     i130 = _i64Add((i146 | 0) == 0 & (i181 | 0) == 0 & 1, 0, ~i148, ~i183) | 0;
  6011     i184 = i117;
  6012     i185 = i118;
  6013     i186 = tempRet0;
  6014     i187 = i130;
  6015    } else {
  6016     i184 = i181;
  6017     i185 = i146;
  6018     i186 = i183;
  6019     i187 = i148;
  6021    i148 = _llvm_uadd_with_overflow_i64(i149 | 0, i93 | 0, i185 | 0, i184 | 0) | 0;
  6022    i93 = tempRet0;
  6023    i149 = tempRet1 & 1;
  6024    i183 = _i64Add(i160, i159, ~i164, ~i163) | 0;
  6025    i146 = _i64Add(i183, tempRet0, (i162 | 0) == 0 & (i161 | 0) == 0 & 1, 0) | 0;
  6026    i183 = _i64Add(i146, tempRet0, i71, 0) | 0;
  6027    i71 = _i64Add(i183, tempRet0, i169, i168) | 0;
  6028    i183 = _i64Add(i71, tempRet0, i85, 0) | 0;
  6029    i85 = _i64Add(i183, tempRet0, ~i176, ~i175) | 0;
  6030    i183 = _i64Add(i85, tempRet0, (i174 | 0) == 0 & (i173 | 0) == 0 & 1, 0) | 0;
  6031    i85 = _i64Add(i183, tempRet0, i129, 0) | 0;
  6032    i129 = _i64Add(i85, tempRet0, i187, i186) | 0;
  6033    i85 = _i64Add(i129, tempRet0, i149, 0) | 0;
  6034    i149 = tempRet0;
  6035    i129 = HEAP32[i25 >> 2] | 0;
  6036    i183 = i129;
  6037    i71 = (i129 | 0) < 0 ? -1 : 0;
  6038    i129 = ___muldi3(i183, i71, i73, i67) | 0;
  6039    i146 = tempRet0;
  6040    i181 = 0;
  6041    i130 = (i146 | 0) < (i181 | 0) | (i146 | 0) == (i181 | 0) & i129 >>> 0 < 0 >>> 0;
  6042    i181 = _i64Subtract(0, 0, i129, i146) | 0;
  6043    i118 = i130 ? tempRet0 : i146;
  6044    if (i69) {
  6045     i69 = _i64Subtract(0, 0, i96, i77) | 0;
  6046     i188 = i130 ^ 1;
  6047     i189 = tempRet0;
  6048     i190 = i69;
  6049    } else {
  6050     i188 = i130;
  6051     i189 = i77;
  6052     i190 = i96;
  6054    i96 = (i130 ? i181 : i129) | 0;
  6055    i129 = i118 & 0;
  6056    i181 = i190 | 0;
  6057    i130 = i189 & 0;
  6058    i77 = ___muldi3(i181, i130, i96, i129) | 0;
  6059    i69 = tempRet0;
  6060    i146 = i189;
  6061    i117 = 0;
  6062    i115 = ___muldi3(i146, i117, i96, i129) | 0;
  6063    i129 = tempRet0;
  6064    i96 = i118;
  6065    i118 = 0;
  6066    i182 = ___muldi3(i181, i130, i96, i118) | 0;
  6067    i130 = tempRet0;
  6068    i181 = ___muldi3(i146, i117, i96, i118) | 0;
  6069    i118 = tempRet0;
  6070    i96 = _i64Add(i115 | 0, i129 & 0, i182 | 0, i130 & 0) | 0;
  6071    i182 = tempRet0;
  6072    i115 = _i64Add(i129, 0, i181, i118) | 0;
  6073    i118 = _i64Add(i115, tempRet0, i130, 0) | 0;
  6074    i130 = tempRet0;
  6075    i115 = _llvm_uadd_with_overflow_i64(i77 | 0, i69 | 0, 0, i96 | 0) | 0;
  6076    i96 = i115;
  6077    i115 = tempRet0;
  6078    i69 = _i64Add(i118, i130, tempRet1 & 1, 0) | 0;
  6079    i130 = _i64Add(i69, tempRet0, i182, 0) | 0;
  6080    i182 = tempRet0;
  6081    if (i188) {
  6082     i69 = _i64Subtract(0, 0, i96, i115) | 0;
  6083     i118 = tempRet0;
  6084     i77 = _i64Add((i96 | 0) == 0 & (i115 | 0) == 0 & 1, 0, ~i130, ~i182) | 0;
  6085     i191 = i118;
  6086     i192 = i69;
  6087     i193 = tempRet0;
  6088     i194 = i77;
  6089    } else {
  6090     i191 = i115;
  6091     i192 = i96;
  6092     i193 = i182;
  6093     i194 = i130;
  6095    i130 = ___muldi3(i183, i71, i79, i72) | 0;
  6096    i71 = tempRet0;
  6097    i183 = 0;
  6098    i182 = (i71 | 0) < (i183 | 0) | (i71 | 0) == (i183 | 0) & i130 >>> 0 < 0 >>> 0;
  6099    i183 = _i64Subtract(0, 0, i130, i71) | 0;
  6100    i96 = i182 ? tempRet0 : i71;
  6101    i71 = (i182 ? i183 : i130) | 0;
  6102    i130 = i96 & 0;
  6103    i183 = ___muldi3(i71, i130, i83, i97) | 0;
  6104    i115 = tempRet0;
  6105    i77 = ___muldi3(i71, i130, i86, i74) | 0;
  6106    i130 = tempRet0;
  6107    i71 = i96;
  6108    i96 = 0;
  6109    i69 = ___muldi3(i71, i96, i83, i97) | 0;
  6110    i97 = tempRet0;
  6111    i83 = ___muldi3(i71, i96, i86, i74) | 0;
  6112    i74 = tempRet0;
  6113    i86 = _i64Add(i77 | 0, i130 & 0, i69 | 0, i97 & 0) | 0;
  6114    i69 = tempRet0;
  6115    i77 = _llvm_uadd_with_overflow_i64(i183 | 0, i115 | 0, 0, i86 | 0) | 0;
  6116    i86 = i77;
  6117    i77 = tempRet0;
  6118    i115 = tempRet1 & 1;
  6119    i183 = _i64Add(i130, 0, i83, i74) | 0;
  6120    i74 = _i64Add(i183, tempRet0, i97, 0) | 0;
  6121    i97 = _i64Add(i74, tempRet0, i69, 0) | 0;
  6122    i69 = _i64Add(i97, tempRet0, i115, 0) | 0;
  6123    i115 = tempRet0;
  6124    if (i182 ^ i90) {
  6125     i90 = _i64Subtract(0, 0, i86, i77) | 0;
  6126     i182 = tempRet0;
  6127     i97 = _i64Add((i86 | 0) == 0 & (i77 | 0) == 0 & 1, 0, ~i69, ~i115) | 0;
  6128     i195 = i182;
  6129     i196 = i90;
  6130     i197 = tempRet0;
  6131     i198 = i97;
  6132    } else {
  6133     i195 = i77;
  6134     i196 = i86;
  6135     i197 = i115;
  6136     i198 = i69;
  6138    i69 = _i64Subtract(0, 0, i196, i195) | 0;
  6139    i115 = _llvm_uadd_with_overflow_i64(i192 | 0, i191 | 0, i69 | 0, tempRet0 | 0) | 0;
  6140    i69 = tempRet0;
  6141    i86 = tempRet1 & 1;
  6142    i77 = HEAP32[i22 >> 2] | 0;
  6143    i97 = i77;
  6144    i90 = (i77 | 0) < 0 ? -1 : 0;
  6145    i77 = ___muldi3(i97, i90, i79, i72) | 0;
  6146    i72 = tempRet0;
  6147    i79 = 0;
  6148    i182 = (i72 | 0) < (i79 | 0) | (i72 | 0) == (i79 | 0) & i77 >>> 0 < 0 >>> 0;
  6149    i79 = _i64Subtract(0, 0, i77, i72) | 0;
  6150    i74 = i182 ? tempRet0 : i72;
  6151    i72 = (i182 ? i79 : i77) | 0;
  6152    i77 = i74 & 0;
  6153    i79 = ___muldi3(i72, i77, i78, i89) | 0;
  6154    i183 = tempRet0;
  6155    i83 = ___muldi3(i72, i77, i94, i62) | 0;
  6156    i77 = tempRet0;
  6157    i72 = i74;
  6158    i74 = 0;
  6159    i130 = ___muldi3(i72, i74, i78, i89) | 0;
  6160    i89 = tempRet0;
  6161    i78 = ___muldi3(i72, i74, i94, i62) | 0;
  6162    i62 = tempRet0;
  6163    i94 = _i64Add(i83 | 0, i77 & 0, i130 | 0, i89 & 0) | 0;
  6164    i130 = tempRet0;
  6165    i83 = _llvm_uadd_with_overflow_i64(i79 | 0, i183 | 0, 0, i94 | 0) | 0;
  6166    i94 = i83;
  6167    i83 = tempRet0;
  6168    i183 = _i64Add(i78, i62, tempRet1 & 1, 0) | 0;
  6169    i62 = _i64Add(i183, tempRet0, i77, 0) | 0;
  6170    i77 = _i64Add(i62, tempRet0, i89, 0) | 0;
  6171    i89 = _i64Add(i77, tempRet0, i130, 0) | 0;
  6172    i130 = tempRet0;
  6173    if (i182 ^ i81) {
  6174     i81 = _i64Subtract(0, 0, i94, i83) | 0;
  6175     i182 = tempRet0;
  6176     i77 = _i64Add((i94 | 0) == 0 & (i83 | 0) == 0 & 1, 0, ~i89, ~i130) | 0;
  6177     i199 = i182;
  6178     i200 = i81;
  6179     i201 = tempRet0;
  6180     i202 = i77;
  6181    } else {
  6182     i199 = i83;
  6183     i200 = i94;
  6184     i201 = i130;
  6185     i202 = i89;
  6187    i89 = _llvm_uadd_with_overflow_i64(i115 | 0, i69 | 0, i200 | 0, i199 | 0) | 0;
  6188    i69 = tempRet0;
  6189    i115 = tempRet1 & 1;
  6190    i130 = ___muldi3(i97, i90, i73, i67) | 0;
  6191    i67 = tempRet0;
  6192    i73 = 0;
  6193    i90 = (i67 | 0) < (i73 | 0) | (i67 | 0) == (i73 | 0) & i130 >>> 0 < 0 >>> 0;
  6194    i73 = _i64Subtract(0, 0, i130, i67) | 0;
  6195    i97 = i90 ? tempRet0 : i67;
  6196    if (i70) {
  6197     i70 = _i64Subtract(0, 0, i88, i91) | 0;
  6198     i203 = i90 ^ 1;
  6199     i204 = tempRet0;
  6200     i205 = i70;
  6201    } else {
  6202     i203 = i90;
  6203     i204 = i91;
  6204     i205 = i88;
  6206    i88 = (i90 ? i73 : i130) | 0;
  6207    i130 = i97 & 0;
  6208    i73 = i205 | 0;
  6209    i90 = i204 & 0;
  6210    i91 = ___muldi3(i73, i90, i88, i130) | 0;
  6211    i70 = tempRet0;
  6212    i67 = i204;
  6213    i94 = 0;
  6214    i83 = ___muldi3(i67, i94, i88, i130) | 0;
  6215    i130 = tempRet0;
  6216    i88 = i97;
  6217    i97 = 0;
  6218    i77 = ___muldi3(i73, i90, i88, i97) | 0;
  6219    i90 = tempRet0;
  6220    i73 = ___muldi3(i67, i94, i88, i97) | 0;
  6221    i97 = tempRet0;
  6222    i88 = _i64Add(i83 | 0, i130 & 0, i77 | 0, i90 & 0) | 0;
  6223    i77 = tempRet0;
  6224    i83 = _i64Add(i130, 0, i73, i97) | 0;
  6225    i97 = _i64Add(i83, tempRet0, i90, 0) | 0;
  6226    i90 = tempRet0;
  6227    i83 = _llvm_uadd_with_overflow_i64(i91 | 0, i70 | 0, 0, i88 | 0) | 0;
  6228    i88 = i83;
  6229    i83 = tempRet0;
  6230    i70 = _i64Add(i97, i90, tempRet1 & 1, 0) | 0;
  6231    i90 = _i64Add(i70, tempRet0, i77, 0) | 0;
  6232    i77 = tempRet0;
  6233    if (i203) {
  6234     i70 = _i64Subtract(0, 0, i88, i83) | 0;
  6235     i97 = tempRet0;
  6236     i91 = _i64Add((i88 | 0) == 0 & (i83 | 0) == 0 & 1, 0, ~i90, ~i77) | 0;
  6237     i206 = i97;
  6238     i207 = i70;
  6239     i208 = tempRet0;
  6240     i209 = i91;
  6241    } else {
  6242     i206 = i83;
  6243     i207 = i88;
  6244     i208 = i77;
  6245     i209 = i90;
  6247    i90 = _i64Subtract(0, 0, i207, i206) | 0;
  6248    i77 = _llvm_uadd_with_overflow_i64(i89 | 0, i69 | 0, i90 | 0, tempRet0 | 0) | 0;
  6249    i90 = tempRet0;
  6250    i69 = tempRet1 & 1;
  6251    if (i120) {
  6252     i89 = _i64Subtract(0, 0, i76, i84) | 0;
  6253     i88 = tempRet0;
  6254     i83 = _i64Add((i76 | 0) == 0 & (i84 | 0) == 0 & 1, 0, ~i87, ~i80) | 0;
  6255     i210 = i88;
  6256     i211 = i89;
  6257     i212 = tempRet0;
  6258     i213 = i83;
  6259    } else {
  6260     i210 = i84;
  6261     i211 = i76;
  6262     i212 = i80;
  6263     i213 = i87;
  6265    i83 = i21 ? i43 : i37;
  6266    i89 = i21 ? i42 : i39;
  6267    i88 = i211 | 0;
  6268    i91 = i210 & 0;
  6269    i70 = i83 | 0;
  6270    i97 = i89 & 0;
  6271    i73 = ___muldi3(i70, i97, i88, i91) | 0;
  6272    i130 = tempRet0;
  6273    i94 = i89;
  6274    i67 = 0;
  6275    i81 = ___muldi3(i94, i67, i88, i91) | 0;
  6276    i91 = tempRet0;
  6277    i88 = i210;
  6278    i182 = 0;
  6279    i62 = ___muldi3(i70, i97, i88, i182) | 0;
  6280    i97 = tempRet0;
  6281    i70 = ___muldi3(i94, i67, i88, i182) | 0;
  6282    i182 = tempRet0;
  6283    i88 = _i64Add(i81 | 0, i91 & 0, i62 | 0, i97 & 0) | 0;
  6284    i62 = tempRet0;
  6285    i81 = _llvm_uadd_with_overflow_i64(i73 | 0, i130 | 0, 0, i88 | 0) | 0;
  6286    i88 = i81;
  6287    i81 = tempRet0;
  6288    i130 = tempRet1 & 1;
  6289    i73 = ___muldi3(i83, i89, i213, i212) | 0;
  6290    i89 = _i64Add(i70, i182, i73, tempRet0) | 0;
  6291    i73 = _i64Add(i89, tempRet0, i91, 0) | 0;
  6292    i91 = _i64Add(i73, tempRet0, i97, 0) | 0;
  6293    i97 = _i64Add(i91, tempRet0, i130, 0) | 0;
  6294    i130 = _i64Add(i97, tempRet0, i62, 0) | 0;
  6295    i62 = tempRet0;
  6296    if (i120 ^ i21) {
  6297     i120 = _i64Subtract(0, 0, i88, i81) | 0;
  6298     i97 = tempRet0;
  6299     i91 = _i64Add((i88 | 0) == 0 & (i81 | 0) == 0 & 1, 0, ~i130, ~i62) | 0;
  6300     i214 = i97;
  6301     i215 = i120;
  6302     i216 = tempRet0;
  6303     i217 = i91;
  6304    } else {
  6305     i214 = i81;
  6306     i215 = i88;
  6307     i216 = i62;
  6308     i217 = i130;
  6310    i130 = _llvm_uadd_with_overflow_i64(i77 | 0, i90 | 0, i215 | 0, i214 | 0) | 0;
  6311    i90 = tempRet0;
  6312    i77 = tempRet1 & 1;
  6313    i62 = _i64Add(i194, i193, ~i198, ~i197) | 0;
  6314    i88 = _i64Add(i62, tempRet0, (i196 | 0) == 0 & (i195 | 0) == 0 & 1, 0) | 0;
  6315    i62 = _i64Add(i88, tempRet0, i86, 0) | 0;
  6316    i86 = _i64Add(i62, tempRet0, i202, i201) | 0;
  6317    i62 = _i64Add(i86, tempRet0, i115, 0) | 0;
  6318    i115 = _i64Add(i62, tempRet0, ~i209, ~i208) | 0;
  6319    i62 = _i64Add(i115, tempRet0, (i207 | 0) == 0 & (i206 | 0) == 0 & 1, 0) | 0;
  6320    i115 = _i64Add(i62, tempRet0, i69, 0) | 0;
  6321    i69 = _i64Add(i115, tempRet0, i217, i216) | 0;
  6322    i115 = _i64Add(i69, tempRet0, i77, 0) | 0;
  6323    i77 = i75 + 24 | 0;
  6324    HEAP32[i77 >> 2] = i92;
  6325    HEAP32[i77 + 4 >> 2] = i95;
  6326    i95 = i75 + 32 | 0;
  6327    HEAP32[i95 >> 2] = i119;
  6328    HEAP32[i95 + 4 >> 2] = i68;
  6329    i68 = i75 + 40 | 0;
  6330    HEAP32[i68 >> 2] = i148;
  6331    HEAP32[i68 + 4 >> 2] = i93;
  6332    i93 = i75 + 48 | 0;
  6333    HEAP32[i93 >> 2] = i85;
  6334    HEAP32[i93 + 4 >> 2] = i149;
  6335    i149 = i75 + 56 | 0;
  6336    HEAP32[i149 >> 2] = i130;
  6337    HEAP32[i149 + 4 >> 2] = i90;
  6338    i90 = i75 + 64 | 0;
  6339    HEAP32[i90 >> 2] = i115;
  6340    HEAP32[i90 + 4 >> 2] = tempRet0;
  6341    i90 = i75 + 72 | 0;
  6342    i115 = i75 + 72 | 0;
  6343    HEAP32[i115 >> 2] = i76;
  6344    HEAP32[i115 + 4 >> 2] = i84;
  6345    i84 = i75 + 80 | 0;
  6346    HEAP32[i84 >> 2] = i87;
  6347    HEAP32[i84 + 4 >> 2] = i80;
  6348    d15 = +__ZNK20btConvexHullInternal6Int1288toScalarEv(i75 + 24 | 0);
  6349    HEAP32[i75 + 88 >> 2] = ~~(d15 / +__ZNK20btConvexHullInternal6Int1288toScalarEv(i90));
  6350    d15 = +__ZNK20btConvexHullInternal6Int1288toScalarEv(i75 + 40 | 0);
  6351    HEAP32[i75 + 92 >> 2] = ~~(d15 / +__ZNK20btConvexHullInternal6Int1288toScalarEv(i90));
  6352    d15 = +__ZNK20btConvexHullInternal6Int1288toScalarEv(i75 + 56 | 0);
  6353    HEAP32[i75 + 96 >> 2] = ~~(d15 / +__ZNK20btConvexHullInternal6Int1288toScalarEv(i90));
  6354    HEAP32[i64 >> 2] = i75;
  6355    HEAP32[i75 + 8 >> 2] = i66;
  6356    i66 = HEAP32[i53 >> 2] | 0;
  6357    i90 = HEAP32[i52 >> 2] | 0;
  6358    do {
  6359     if ((i66 | 0) == (i90 | 0)) {
  6360      i80 = (i66 | 0) == 0 ? 1 : i66 << 1;
  6361      if ((i66 | 0) >= (i80 | 0)) {
  6362       i218 = i66;
  6363       i219 = i66;
  6364       break;
  6366      if ((i80 | 0) == 0) {
  6367       i220 = 0;
  6368       i221 = i66;
  6369      } else {
  6370       i84 = __Z22btAlignedAllocInternalji(i80 << 2, 16) | 0;
  6371       i220 = i84;
  6372       i221 = HEAP32[i53 >> 2] | 0;
  6374      if ((i221 | 0) > 0) {
  6375       i84 = 0;
  6376       do {
  6377        i87 = i220 + (i84 << 2) | 0;
  6378        if ((i87 | 0) != 0) {
  6379         HEAP32[i87 >> 2] = HEAP32[(HEAP32[i32 >> 2] | 0) + (i84 << 2) >> 2];
  6381        i84 = i84 + 1 | 0;
  6382       } while ((i84 | 0) < (i221 | 0));
  6384      i84 = HEAP32[i32 >> 2] | 0;
  6385      if ((i84 | 0) == 0) {
  6386       i222 = i221;
  6387      } else {
  6388       if ((HEAP8[i54] | 0) == 0) {
  6389        i223 = i221;
  6390       } else {
  6391        __Z21btAlignedFreeInternalPv(i84);
  6392        i223 = HEAP32[i53 >> 2] | 0;
  6394       HEAP32[i32 >> 2] = 0;
  6395       i222 = i223;
  6397      HEAP8[i54] = 1;
  6398      HEAP32[i32 >> 2] = i220;
  6399      HEAP32[i52 >> 2] = i80;
  6400      i218 = i222;
  6401      i219 = i80;
  6402     } else {
  6403      i218 = i66;
  6404      i219 = i90;
  6406    } while (0);
  6407    i90 = (HEAP32[i32 >> 2] | 0) + (i218 << 2) | 0;
  6408    if ((i90 | 0) != 0) {
  6409     HEAP32[i90 >> 2] = i75;
  6411    i90 = i218 + 1 | 0;
  6412    HEAP32[i53 >> 2] = i90;
  6413    do {
  6414     if ((i90 | 0) == (i219 | 0)) {
  6415      i66 = (i219 | 0) == 0 ? 1 : i219 << 1;
  6416      if ((i219 | 0) >= (i66 | 0)) {
  6417       i224 = i219;
  6418       i225 = i219;
  6419       break;
  6421      if ((i66 | 0) == 0) {
  6422       i226 = 0;
  6423       i227 = i219;
  6424      } else {
  6425       i84 = __Z22btAlignedAllocInternalji(i66 << 2, 16) | 0;
  6426       i226 = i84;
  6427       i227 = HEAP32[i53 >> 2] | 0;
  6429      if ((i227 | 0) > 0) {
  6430       i84 = 0;
  6431       do {
  6432        i87 = i226 + (i84 << 2) | 0;
  6433        if ((i87 | 0) != 0) {
  6434         HEAP32[i87 >> 2] = HEAP32[(HEAP32[i32 >> 2] | 0) + (i84 << 2) >> 2];
  6436        i84 = i84 + 1 | 0;
  6437       } while ((i84 | 0) < (i227 | 0));
  6439      i84 = HEAP32[i32 >> 2] | 0;
  6440      if ((i84 | 0) == 0) {
  6441       i228 = i227;
  6442      } else {
  6443       if ((HEAP8[i54] | 0) == 0) {
  6444        i229 = i227;
  6445       } else {
  6446        __Z21btAlignedFreeInternalPv(i84);
  6447        i229 = HEAP32[i53 >> 2] | 0;
  6449       HEAP32[i32 >> 2] = 0;
  6450       i228 = i229;
  6452      HEAP8[i54] = 1;
  6453      HEAP32[i32 >> 2] = i226;
  6454      HEAP32[i52 >> 2] = i66;
  6455      i224 = i228;
  6456      i225 = i66;
  6457     } else {
  6458      i224 = i90;
  6459      i225 = i219;
  6461    } while (0);
  6462    i90 = (HEAP32[i32 >> 2] | 0) + (i224 << 2) | 0;
  6463    if ((i90 | 0) != 0) {
  6464     HEAP32[i90 >> 2] = i58;
  6466    i90 = i224 + 1 | 0;
  6467    HEAP32[i53 >> 2] = i90;
  6468    do {
  6469     if ((i90 | 0) == (i225 | 0)) {
  6470      i75 = (i225 | 0) == 0 ? 1 : i225 << 1;
  6471      if ((i225 | 0) >= (i75 | 0)) {
  6472       i230 = i225;
  6473       break;
  6475      if ((i75 | 0) == 0) {
  6476       i231 = 0;
  6477       i232 = i225;
  6478      } else {
  6479       i84 = __Z22btAlignedAllocInternalji(i75 << 2, 16) | 0;
  6480       i231 = i84;
  6481       i232 = HEAP32[i53 >> 2] | 0;
  6483      if ((i232 | 0) > 0) {
  6484       i84 = 0;
  6485       do {
  6486        i80 = i231 + (i84 << 2) | 0;
  6487        if ((i80 | 0) != 0) {
  6488         HEAP32[i80 >> 2] = HEAP32[(HEAP32[i32 >> 2] | 0) + (i84 << 2) >> 2];
  6490        i84 = i84 + 1 | 0;
  6491       } while ((i84 | 0) < (i232 | 0));
  6493      i84 = HEAP32[i32 >> 2] | 0;
  6494      if ((i84 | 0) == 0) {
  6495       i233 = i232;
  6496      } else {
  6497       if ((HEAP8[i54] | 0) == 0) {
  6498        i234 = i232;
  6499       } else {
  6500        __Z21btAlignedFreeInternalPv(i84);
  6501        i234 = HEAP32[i53 >> 2] | 0;
  6503       HEAP32[i32 >> 2] = 0;
  6504       i233 = i234;
  6506      HEAP8[i54] = 1;
  6507      HEAP32[i32 >> 2] = i231;
  6508      HEAP32[i52 >> 2] = i75;
  6509      i230 = i233;
  6510     } else {
  6511      i230 = i90;
  6513    } while (0);
  6514    i90 = (HEAP32[i32 >> 2] | 0) + (i230 << 2) | 0;
  6515    if ((i90 | 0) != 0) {
  6516     HEAP32[i90 >> 2] = 0;
  6518    HEAP32[i53 >> 2] = i230 + 1;
  6520   i90 = (i65 | 0) == 0;
  6521   if ((i65 | i50 | 0) == 0) {
  6522    i58 = HEAP32[HEAP32[i60 >> 2] >> 2] | 0;
  6523    i84 = HEAP32[i64 >> 2] | 0;
  6524    if ((HEAP32[i58 + 12 >> 2] | 0) == (i84 | 0)) {
  6525     i235 = i58;
  6526    } else {
  6527     i236 = i84;
  6528     i49 = 1401;
  6530   } else {
  6531    i236 = HEAP32[i64 >> 2] | 0;
  6532    i49 = 1401;
  6534   if ((i49 | 0) == 1401) {
  6535    i49 = 0;
  6536    i84 = HEAP32[i61 + 12 >> 2] | 0;
  6537    i58 = __ZN20btConvexHullInternal4PoolINS_4EdgeEE9newObjectEv(i11) | 0;
  6538    i66 = __ZN20btConvexHullInternal4PoolINS_4EdgeEE9newObjectEv(i11) | 0;
  6539    i80 = i58 + 8 | 0;
  6540    HEAP32[i80 >> 2] = i66;
  6541    HEAP32[i66 + 8 >> 2] = i58;
  6542    HEAP32[i58 + 20 >> 2] = HEAP32[i9 >> 2];
  6543    HEAP32[i66 + 20 >> 2] = HEAP32[i9 >> 2];
  6544    HEAP32[i58 + 12 >> 2] = i236;
  6545    HEAP32[i66 + 12 >> 2] = i84;
  6546    HEAP32[i58 + 16 >> 2] = 0;
  6547    HEAP32[i66 + 16 >> 2] = 0;
  6548    i66 = (HEAP32[i30 >> 2] | 0) + 1 | 0;
  6549    HEAP32[i30 >> 2] = i66;
  6550    if ((i66 | 0) > (HEAP32[i40 >> 2] | 0)) {
  6551     HEAP32[i40 >> 2] = i66;
  6553    if (i57) {
  6554     i66 = HEAP32[HEAP32[i60 >> 2] >> 2] | 0;
  6555     HEAP32[i58 >> 2] = i66;
  6556     HEAP32[i66 + 4 >> 2] = i58;
  6557     i49 = 1406;
  6558    } else {
  6559     if ((i55 | 0) != 0) {
  6560      i49 = 1406;
  6563    if ((i49 | 0) == 1406) {
  6564     i49 = 0;
  6565     i66 = HEAP32[i60 >> 2] | 0;
  6566     HEAP32[i66 >> 2] = i58;
  6567     HEAP32[i58 + 4 >> 2] = i66;
  6569    i66 = i59 + 8 | 0;
  6570    if (i90) {
  6571     i90 = HEAP32[(HEAP32[i66 >> 2] | 0) + 4 >> 2] | 0;
  6572     i84 = HEAP32[i80 >> 2] | 0;
  6573     HEAP32[i90 >> 2] = i84;
  6574     HEAP32[i84 + 4 >> 2] = i90;
  6576    i90 = HEAP32[i80 >> 2] | 0;
  6577    i80 = HEAP32[i66 >> 2] | 0;
  6578    HEAP32[i90 >> 2] = i80;
  6579    HEAP32[i80 + 4 >> 2] = i90;
  6580    i235 = i58;
  6582   do {
  6583    if ((i55 | 0) != 0) {
  6584     i58 = i55 + 8 | 0;
  6585     i90 = HEAP32[i58 >> 2] | 0;
  6586     if ((i50 | 0) > 0) {
  6587      HEAP32[i235 >> 2] = i90;
  6588      HEAP32[i90 + 4 >> 2] = i235;
  6589      break;
  6591     if ((i235 | 0) == (i90 | 0)) {
  6592      break;
  6594     i90 = i55 + 12 | 0;
  6595     i80 = HEAP32[i53 >> 2] | 0;
  6596     i66 = HEAP32[i52 >> 2] | 0;
  6597     do {
  6598      if ((i80 | 0) == (i66 | 0)) {
  6599       i84 = (i80 | 0) == 0 ? 1 : i80 << 1;
  6600       if ((i80 | 0) >= (i84 | 0)) {
  6601        i237 = i80;
  6602        i238 = i80;
  6603        break;
  6605       if ((i84 | 0) == 0) {
  6606        i239 = 0;
  6607        i240 = i80;
  6608       } else {
  6609        i87 = __Z22btAlignedAllocInternalji(i84 << 2, 16) | 0;
  6610        i239 = i87;
  6611        i240 = HEAP32[i53 >> 2] | 0;
  6613       if ((i240 | 0) > 0) {
  6614        i87 = 0;
  6615        do {
  6616         i115 = i239 + (i87 << 2) | 0;
  6617         if ((i115 | 0) != 0) {
  6618          HEAP32[i115 >> 2] = HEAP32[(HEAP32[i32 >> 2] | 0) + (i87 << 2) >> 2];
  6620         i87 = i87 + 1 | 0;
  6621        } while ((i87 | 0) < (i240 | 0));
  6623       i87 = HEAP32[i32 >> 2] | 0;
  6624       if ((i87 | 0) == 0) {
  6625        i241 = i240;
  6626       } else {
  6627        if ((HEAP8[i54] | 0) == 0) {
  6628         i242 = i240;
  6629        } else {
  6630         __Z21btAlignedFreeInternalPv(i87);
  6631         i242 = HEAP32[i53 >> 2] | 0;
  6633        HEAP32[i32 >> 2] = 0;
  6634        i241 = i242;
  6636       HEAP8[i54] = 1;
  6637       HEAP32[i32 >> 2] = i239;
  6638       HEAP32[i52 >> 2] = i84;
  6639       i237 = i241;
  6640       i238 = i84;
  6641      } else {
  6642       i237 = i80;
  6643       i238 = i66;
  6645     } while (0);
  6646     i66 = (HEAP32[i32 >> 2] | 0) + (i237 << 2) | 0;
  6647     if ((i66 | 0) != 0) {
  6648      HEAP32[i66 >> 2] = HEAP32[i90 >> 2];
  6650     i66 = i237 + 1 | 0;
  6651     HEAP32[i53 >> 2] = i66;
  6652     i80 = i235 | 0;
  6653     i75 = HEAP32[i80 >> 2] | 0;
  6654     if ((i75 | 0) == (HEAP32[i58 >> 2] | 0)) {
  6655      i243 = i66;
  6656      i244 = i238;
  6657     } else {
  6658      i66 = i75;
  6659      while (1) {
  6660       i75 = i66 + 12 | 0;
  6661       i87 = HEAP32[i75 >> 2] | 0;
  6662       i115 = i66 | 0;
  6663       i76 = HEAP32[i115 >> 2] | 0;
  6664       i149 = HEAP32[i66 + 8 >> 2] | 0;
  6665       if ((i76 | 0) == (i66 | 0)) {
  6666        HEAP32[(HEAP32[i149 + 12 >> 2] | 0) + 8 >> 2] = 0;
  6667       } else {
  6668        i130 = i66 + 4 | 0;
  6669        HEAP32[i76 + 4 >> 2] = HEAP32[i130 >> 2];
  6670        HEAP32[HEAP32[i130 >> 2] >> 2] = i76;
  6671        HEAP32[(HEAP32[i149 + 12 >> 2] | 0) + 8 >> 2] = i76;
  6673       i76 = i149 | 0;
  6674       i130 = HEAP32[i76 >> 2] | 0;
  6675       if ((i130 | 0) == (i149 | 0)) {
  6676        HEAP32[(HEAP32[i75 >> 2] | 0) + 8 >> 2] = 0;
  6677       } else {
  6678        i93 = i149 + 4 | 0;
  6679        HEAP32[i130 + 4 >> 2] = HEAP32[i93 >> 2];
  6680        HEAP32[HEAP32[i93 >> 2] >> 2] = i130;
  6681        HEAP32[(HEAP32[i75 >> 2] | 0) + 8 >> 2] = i130;
  6683       _memset(i66 | 0, 0, 20);
  6684       HEAP32[i115 >> 2] = HEAP32[i4 >> 2];
  6685       HEAP32[i4 >> 2] = i66;
  6686       _memset(i149 | 0, 0, 20);
  6687       HEAP32[i76 >> 2] = HEAP32[i4 >> 2];
  6688       HEAP32[i4 >> 2] = i149;
  6689       HEAP32[i30 >> 2] = (HEAP32[i30 >> 2] | 0) - 1;
  6690       i149 = HEAP32[i53 >> 2] | 0;
  6691       i76 = HEAP32[i52 >> 2] | 0;
  6692       do {
  6693        if ((i149 | 0) == (i76 | 0)) {
  6694         i115 = (i149 | 0) == 0 ? 1 : i149 << 1;
  6695         if ((i149 | 0) >= (i115 | 0)) {
  6696          i245 = i149;
  6697          i246 = i149;
  6698          break;
  6700         if ((i115 | 0) == 0) {
  6701          i247 = 0;
  6702          i248 = i149;
  6703         } else {
  6704          i130 = __Z22btAlignedAllocInternalji(i115 << 2, 16) | 0;
  6705          i247 = i130;
  6706          i248 = HEAP32[i53 >> 2] | 0;
  6708         if ((i248 | 0) > 0) {
  6709          i130 = 0;
  6710          do {
  6711           i75 = i247 + (i130 << 2) | 0;
  6712           if ((i75 | 0) != 0) {
  6713            HEAP32[i75 >> 2] = HEAP32[(HEAP32[i32 >> 2] | 0) + (i130 << 2) >> 2];
  6715           i130 = i130 + 1 | 0;
  6716          } while ((i130 | 0) < (i248 | 0));
  6718         i130 = HEAP32[i32 >> 2] | 0;
  6719         if ((i130 | 0) == 0) {
  6720          i249 = i248;
  6721         } else {
  6722          if ((HEAP8[i54] | 0) == 0) {
  6723           i250 = i248;
  6724          } else {
  6725           __Z21btAlignedFreeInternalPv(i130);
  6726           i250 = HEAP32[i53 >> 2] | 0;
  6728          HEAP32[i32 >> 2] = 0;
  6729          i249 = i250;
  6731         HEAP8[i54] = 1;
  6732         HEAP32[i32 >> 2] = i247;
  6733         HEAP32[i52 >> 2] = i115;
  6734         i245 = i249;
  6735         i246 = i115;
  6736        } else {
  6737         i245 = i149;
  6738         i246 = i76;
  6740       } while (0);
  6741       i76 = (HEAP32[i32 >> 2] | 0) + (i245 << 2) | 0;
  6742       if ((i76 | 0) != 0) {
  6743        HEAP32[i76 >> 2] = i87;
  6745       i76 = i245 + 1 | 0;
  6746       HEAP32[i53 >> 2] = i76;
  6747       i149 = HEAP32[i80 >> 2] | 0;
  6748       if ((i149 | 0) == (HEAP32[i58 >> 2] | 0)) {
  6749        i243 = i76;
  6750        i244 = i246;
  6751        break;
  6752       } else {
  6753        i66 = i149;
  6757     do {
  6758      if ((i243 | 0) == (i244 | 0)) {
  6759       i66 = (i244 | 0) == 0 ? 1 : i244 << 1;
  6760       if ((i244 | 0) >= (i66 | 0)) {
  6761        i251 = i244;
  6762        break;
  6764       if ((i66 | 0) == 0) {
  6765        i252 = 0;
  6766        i253 = i244;
  6767       } else {
  6768        i58 = __Z22btAlignedAllocInternalji(i66 << 2, 16) | 0;
  6769        i252 = i58;
  6770        i253 = HEAP32[i53 >> 2] | 0;
  6772       if ((i253 | 0) > 0) {
  6773        i58 = 0;
  6774        do {
  6775         i80 = i252 + (i58 << 2) | 0;
  6776         if ((i80 | 0) != 0) {
  6777          HEAP32[i80 >> 2] = HEAP32[(HEAP32[i32 >> 2] | 0) + (i58 << 2) >> 2];
  6779         i58 = i58 + 1 | 0;
  6780        } while ((i58 | 0) < (i253 | 0));
  6782       i58 = HEAP32[i32 >> 2] | 0;
  6783       if ((i58 | 0) == 0) {
  6784        i254 = i253;
  6785       } else {
  6786        if ((HEAP8[i54] | 0) == 0) {
  6787         i255 = i253;
  6788        } else {
  6789         __Z21btAlignedFreeInternalPv(i58);
  6790         i255 = HEAP32[i53 >> 2] | 0;
  6792        HEAP32[i32 >> 2] = 0;
  6793        i254 = i255;
  6795       HEAP8[i54] = 1;
  6796       HEAP32[i32 >> 2] = i252;
  6797       HEAP32[i52 >> 2] = i66;
  6798       i251 = i254;
  6799      } else {
  6800       i251 = i243;
  6802     } while (0);
  6803     i58 = (HEAP32[i32 >> 2] | 0) + (i251 << 2) | 0;
  6804     if ((i58 | 0) != 0) {
  6805      HEAP32[i58 >> 2] = 0;
  6807     HEAP32[i53 >> 2] = i251 + 1;
  6809   } while (0);
  6810   HEAP32[i235 + 16 >> 2] = i2;
  6811   HEAP32[(HEAP32[i235 + 8 >> 2] | 0) + 16 >> 2] = HEAP32[i59 + 16 >> 2];
  6812   i44 = i59;
  6813   i50 = i65;
  6814   i51 = i63;
  6815   i55 = i235;
  6816   i56 = (i56 | 0) == 0 ? i235 : i56;
  6818  if ((i49 | 0) == 1618) {
  6819   STACKTOP = i5;
  6820   return i20 | 0;
  6822  do {
  6823   if ((i50 | 0) > 0) {
  6824    HEAP32[(HEAP32[i56 + 8 >> 2] | 0) + 12 >> 2] = HEAP32[i55 + 12 >> 2];
  6825    i235 = HEAP32[i51 + 8 >> 2] | 0;
  6826    HEAP32[i235 >> 2] = i56;
  6827    HEAP32[i56 + 4 >> 2] = i235;
  6828    i235 = HEAP32[i55 + 8 >> 2] | 0;
  6829    HEAP32[i56 >> 2] = i235;
  6830    HEAP32[i235 + 4 >> 2] = i56;
  6831   } else {
  6832    i235 = i55 + 8 | 0;
  6833    if ((i56 | 0) == (HEAP32[i235 >> 2] | 0)) {
  6834     break;
  6836    i63 = i55 + 12 | 0;
  6837    i65 = HEAP32[i53 >> 2] | 0;
  6838    i44 = HEAP32[i52 >> 2] | 0;
  6839    do {
  6840     if ((i65 | 0) == (i44 | 0)) {
  6841      i251 = (i65 | 0) == 0 ? 1 : i65 << 1;
  6842      if ((i65 | 0) >= (i251 | 0)) {
  6843       i256 = i65;
  6844       i257 = i65;
  6845       break;
  6847      if ((i251 | 0) == 0) {
  6848       i258 = 0;
  6849       i259 = i65;
  6850      } else {
  6851       i243 = __Z22btAlignedAllocInternalji(i251 << 2, 16) | 0;
  6852       i258 = i243;
  6853       i259 = HEAP32[i53 >> 2] | 0;
  6855      if ((i259 | 0) > 0) {
  6856       i243 = 0;
  6857       do {
  6858        i254 = i258 + (i243 << 2) | 0;
  6859        if ((i254 | 0) != 0) {
  6860         HEAP32[i254 >> 2] = HEAP32[(HEAP32[i32 >> 2] | 0) + (i243 << 2) >> 2];
  6862        i243 = i243 + 1 | 0;
  6863       } while ((i243 | 0) < (i259 | 0));
  6865      i243 = HEAP32[i32 >> 2] | 0;
  6866      if ((i243 | 0) == 0) {
  6867       i260 = i259;
  6868      } else {
  6869       if ((HEAP8[i54] | 0) == 0) {
  6870        i261 = i259;
  6871       } else {
  6872        __Z21btAlignedFreeInternalPv(i243);
  6873        i261 = HEAP32[i53 >> 2] | 0;
  6875       HEAP32[i32 >> 2] = 0;
  6876       i260 = i261;
  6878      HEAP8[i54] = 1;
  6879      HEAP32[i32 >> 2] = i258;
  6880      HEAP32[i52 >> 2] = i251;
  6881      i256 = i260;
  6882      i257 = i251;
  6883     } else {
  6884      i256 = i65;
  6885      i257 = i44;
  6887    } while (0);
  6888    i44 = (HEAP32[i32 >> 2] | 0) + (i256 << 2) | 0;
  6889    if ((i44 | 0) != 0) {
  6890     HEAP32[i44 >> 2] = HEAP32[i63 >> 2];
  6892    i44 = i256 + 1 | 0;
  6893    HEAP32[i53 >> 2] = i44;
  6894    i65 = i56 | 0;
  6895    i59 = HEAP32[i65 >> 2] | 0;
  6896    if ((i59 | 0) == (HEAP32[i235 >> 2] | 0)) {
  6897     i262 = i44;
  6898     i263 = i257;
  6899    } else {
  6900     i44 = i59;
  6901     while (1) {
  6902      i59 = i44 + 12 | 0;
  6903      i243 = HEAP32[i59 >> 2] | 0;
  6904      i254 = i44 | 0;
  6905      i252 = HEAP32[i254 >> 2] | 0;
  6906      i255 = HEAP32[i44 + 8 >> 2] | 0;
  6907      if ((i252 | 0) == (i44 | 0)) {
  6908       HEAP32[(HEAP32[i255 + 12 >> 2] | 0) + 8 >> 2] = 0;
  6909      } else {
  6910       i253 = i44 + 4 | 0;
  6911       HEAP32[i252 + 4 >> 2] = HEAP32[i253 >> 2];
  6912       HEAP32[HEAP32[i253 >> 2] >> 2] = i252;
  6913       HEAP32[(HEAP32[i255 + 12 >> 2] | 0) + 8 >> 2] = i252;
  6915      i252 = i255 | 0;
  6916      i253 = HEAP32[i252 >> 2] | 0;
  6917      if ((i253 | 0) == (i255 | 0)) {
  6918       HEAP32[(HEAP32[i59 >> 2] | 0) + 8 >> 2] = 0;
  6919      } else {
  6920       i244 = i255 + 4 | 0;
  6921       HEAP32[i253 + 4 >> 2] = HEAP32[i244 >> 2];
  6922       HEAP32[HEAP32[i244 >> 2] >> 2] = i253;
  6923       HEAP32[(HEAP32[i59 >> 2] | 0) + 8 >> 2] = i253;
  6925      _memset(i44 | 0, 0, 20);
  6926      HEAP32[i254 >> 2] = HEAP32[i4 >> 2];
  6927      HEAP32[i4 >> 2] = i44;
  6928      _memset(i255 | 0, 0, 20);
  6929      HEAP32[i252 >> 2] = HEAP32[i4 >> 2];
  6930      HEAP32[i4 >> 2] = i255;
  6931      HEAP32[i30 >> 2] = (HEAP32[i30 >> 2] | 0) - 1;
  6932      i255 = HEAP32[i53 >> 2] | 0;
  6933      i252 = HEAP32[i52 >> 2] | 0;
  6934      do {
  6935       if ((i255 | 0) == (i252 | 0)) {
  6936        i254 = (i255 | 0) == 0 ? 1 : i255 << 1;
  6937        if ((i255 | 0) >= (i254 | 0)) {
  6938         i264 = i255;
  6939         i265 = i255;
  6940         break;
  6942        if ((i254 | 0) == 0) {
  6943         i266 = 0;
  6944         i267 = i255;
  6945        } else {
  6946         i253 = __Z22btAlignedAllocInternalji(i254 << 2, 16) | 0;
  6947         i266 = i253;
  6948         i267 = HEAP32[i53 >> 2] | 0;
  6950        if ((i267 | 0) > 0) {
  6951         i253 = 0;
  6952         do {
  6953          i59 = i266 + (i253 << 2) | 0;
  6954          if ((i59 | 0) != 0) {
  6955           HEAP32[i59 >> 2] = HEAP32[(HEAP32[i32 >> 2] | 0) + (i253 << 2) >> 2];
  6957          i253 = i253 + 1 | 0;
  6958         } while ((i253 | 0) < (i267 | 0));
  6960        i253 = HEAP32[i32 >> 2] | 0;
  6961        if ((i253 | 0) == 0) {
  6962         i268 = i267;
  6963        } else {
  6964         if ((HEAP8[i54] | 0) == 0) {
  6965          i269 = i267;
  6966         } else {
  6967          __Z21btAlignedFreeInternalPv(i253);
  6968          i269 = HEAP32[i53 >> 2] | 0;
  6970         HEAP32[i32 >> 2] = 0;
  6971         i268 = i269;
  6973        HEAP8[i54] = 1;
  6974        HEAP32[i32 >> 2] = i266;
  6975        HEAP32[i52 >> 2] = i254;
  6976        i264 = i268;
  6977        i265 = i254;
  6978       } else {
  6979        i264 = i255;
  6980        i265 = i252;
  6982      } while (0);
  6983      i252 = (HEAP32[i32 >> 2] | 0) + (i264 << 2) | 0;
  6984      if ((i252 | 0) != 0) {
  6985       HEAP32[i252 >> 2] = i243;
  6987      i252 = i264 + 1 | 0;
  6988      HEAP32[i53 >> 2] = i252;
  6989      i255 = HEAP32[i65 >> 2] | 0;
  6990      if ((i255 | 0) == (HEAP32[i235 >> 2] | 0)) {
  6991       i262 = i252;
  6992       i263 = i265;
  6993       break;
  6994      } else {
  6995       i44 = i255;
  6999    do {
  7000     if ((i262 | 0) == (i263 | 0)) {
  7001      i44 = (i263 | 0) == 0 ? 1 : i263 << 1;
  7002      if ((i263 | 0) >= (i44 | 0)) {
  7003       i270 = i263;
  7004       break;
  7006      if ((i44 | 0) == 0) {
  7007       i271 = 0;
  7008       i272 = i263;
  7009      } else {
  7010       i235 = __Z22btAlignedAllocInternalji(i44 << 2, 16) | 0;
  7011       i271 = i235;
  7012       i272 = HEAP32[i53 >> 2] | 0;
  7014      if ((i272 | 0) > 0) {
  7015       i235 = 0;
  7016       do {
  7017        i65 = i271 + (i235 << 2) | 0;
  7018        if ((i65 | 0) != 0) {
  7019         HEAP32[i65 >> 2] = HEAP32[(HEAP32[i32 >> 2] | 0) + (i235 << 2) >> 2];
  7021        i235 = i235 + 1 | 0;
  7022       } while ((i235 | 0) < (i272 | 0));
  7024      i235 = HEAP32[i32 >> 2] | 0;
  7025      if ((i235 | 0) == 0) {
  7026       i273 = i272;
  7027      } else {
  7028       if ((HEAP8[i54] | 0) == 0) {
  7029        i274 = i272;
  7030       } else {
  7031        __Z21btAlignedFreeInternalPv(i235);
  7032        i274 = HEAP32[i53 >> 2] | 0;
  7034       HEAP32[i32 >> 2] = 0;
  7035       i273 = i274;
  7037      HEAP8[i54] = 1;
  7038      HEAP32[i32 >> 2] = i271;
  7039      HEAP32[i52 >> 2] = i44;
  7040      i270 = i273;
  7041     } else {
  7042      i270 = i262;
  7044    } while (0);
  7045    i235 = (HEAP32[i32 >> 2] | 0) + (i270 << 2) | 0;
  7046    if ((i235 | 0) != 0) {
  7047     HEAP32[i235 >> 2] = 0;
  7049    HEAP32[i53 >> 2] = i270 + 1;
  7051  } while (0);
  7052  HEAP32[i1 + 124 >> 2] = HEAP32[HEAP32[i32 >> 2] >> 2];
  7053  i1 = HEAP32[i53 >> 2] | 0;
  7054  if ((i1 | 0) > 0) {
  7055   i270 = 0;
  7056   i262 = i1;
  7057   while (1) {
  7058    if ((i270 | 0) < (i262 | 0)) {
  7059     i273 = i270;
  7060     while (1) {
  7061      i271 = HEAP32[i32 >> 2] | 0;
  7062      i274 = HEAP32[i271 + (i273 << 2) >> 2] | 0;
  7063      i272 = i273 + 2 | 0;
  7064      i263 = HEAP32[i271 + (i273 + 1 << 2) >> 2] | 0;
  7065      do {
  7066       if ((i263 | 0) == 0) {
  7067        i275 = i272;
  7068       } else {
  7069        i271 = i274 + 16 | 0;
  7070        i265 = i274 + 12 | 0;
  7071        i264 = 0;
  7072        i268 = i272;
  7073        i266 = i263;
  7074        while (1) {
  7075         i269 = HEAP32[i271 >> 2] | 0;
  7076         i267 = i266 + 12 | 0;
  7077         i257 = HEAP32[i267 >> 2] | 0;
  7078         if ((i269 | 0) == 0) {
  7079          HEAP32[i265 >> 2] = i257;
  7080         } else {
  7081          HEAP32[i269 + 8 >> 2] = i257;
  7083         i257 = i266 + 16 | 0;
  7084         i269 = HEAP32[i257 >> 2] | 0;
  7085         if ((i269 | 0) != 0) {
  7086          HEAP32[i271 >> 2] = i269;
  7088         i269 = HEAP32[i267 >> 2] | 0;
  7089         if ((i269 | 0) != 0) {
  7090          i56 = i269;
  7091          do {
  7092           HEAP32[i56 + 4 >> 2] = i274;
  7093           i56 = HEAP32[i56 + 8 >> 2] | 0;
  7094          } while ((i56 | 0) != 0);
  7096         HEAP32[i267 >> 2] = 0;
  7097         HEAP32[i257 >> 2] = 0;
  7098         i56 = i266 + 8 | 0;
  7099         i115 = HEAP32[i56 >> 2] | 0;
  7100         if ((i115 | 0) == 0) {
  7101          i276 = i264;
  7102         } else {
  7103          i269 = i264;
  7104          i256 = i115;
  7105          while (1) {
  7106           i115 = HEAP32[i53 >> 2] | 0;
  7107           i260 = HEAP32[i52 >> 2] | 0;
  7108           if (i269) {
  7109            i277 = i256;
  7110            i278 = i115;
  7111            i279 = i260;
  7112           } else {
  7113            do {
  7114             if ((i115 | 0) == (i260 | 0)) {
  7115              i258 = (i115 | 0) == 0 ? 1 : i115 << 1;
  7116              if ((i115 | 0) >= (i258 | 0)) {
  7117               i280 = i115;
  7118               i281 = i115;
  7119               break;
  7121              if ((i258 | 0) == 0) {
  7122               i282 = 0;
  7123               i283 = i115;
  7124              } else {
  7125               i261 = __Z22btAlignedAllocInternalji(i258 << 2, 16) | 0;
  7126               i282 = i261;
  7127               i283 = HEAP32[i53 >> 2] | 0;
  7129              if ((i283 | 0) > 0) {
  7130               i261 = 0;
  7131               do {
  7132                i259 = i282 + (i261 << 2) | 0;
  7133                if ((i259 | 0) != 0) {
  7134                 HEAP32[i259 >> 2] = HEAP32[(HEAP32[i32 >> 2] | 0) + (i261 << 2) >> 2];
  7136                i261 = i261 + 1 | 0;
  7137               } while ((i261 | 0) < (i283 | 0));
  7139              i261 = HEAP32[i32 >> 2] | 0;
  7140              if ((i261 | 0) == 0) {
  7141               i284 = i283;
  7142              } else {
  7143               if ((HEAP8[i54] | 0) == 0) {
  7144                i285 = i283;
  7145               } else {
  7146                __Z21btAlignedFreeInternalPv(i261);
  7147                i285 = HEAP32[i53 >> 2] | 0;
  7149               HEAP32[i32 >> 2] = 0;
  7150               i284 = i285;
  7152              HEAP8[i54] = 1;
  7153              HEAP32[i32 >> 2] = i282;
  7154              HEAP32[i52 >> 2] = i258;
  7155              i280 = i284;
  7156              i281 = i258;
  7157             } else {
  7158              i280 = i115;
  7159              i281 = i260;
  7161            } while (0);
  7162            i260 = (HEAP32[i32 >> 2] | 0) + (i280 << 2) | 0;
  7163            if ((i260 | 0) != 0) {
  7164             HEAP32[i260 >> 2] = i274;
  7166            i260 = i280 + 1 | 0;
  7167            HEAP32[i53 >> 2] = i260;
  7168            i277 = HEAP32[i56 >> 2] | 0;
  7169            i278 = i260;
  7170            i279 = i281;
  7172           i260 = i277 + 12 | 0;
  7173           do {
  7174            if ((i278 | 0) == (i279 | 0)) {
  7175             i115 = (i279 | 0) == 0 ? 1 : i279 << 1;
  7176             if ((i279 | 0) >= (i115 | 0)) {
  7177              i286 = i279;
  7178              break;
  7180             if ((i115 | 0) == 0) {
  7181              i287 = 0;
  7182              i288 = i279;
  7183             } else {
  7184              i261 = __Z22btAlignedAllocInternalji(i115 << 2, 16) | 0;
  7185              i287 = i261;
  7186              i288 = HEAP32[i53 >> 2] | 0;
  7188             if ((i288 | 0) > 0) {
  7189              i261 = 0;
  7190              do {
  7191               i259 = i287 + (i261 << 2) | 0;
  7192               if ((i259 | 0) != 0) {
  7193                HEAP32[i259 >> 2] = HEAP32[(HEAP32[i32 >> 2] | 0) + (i261 << 2) >> 2];
  7195               i261 = i261 + 1 | 0;
  7196              } while ((i261 | 0) < (i288 | 0));
  7198             i261 = HEAP32[i32 >> 2] | 0;
  7199             if ((i261 | 0) == 0) {
  7200              i289 = i288;
  7201             } else {
  7202              if ((HEAP8[i54] | 0) == 0) {
  7203               i290 = i288;
  7204              } else {
  7205               __Z21btAlignedFreeInternalPv(i261);
  7206               i290 = HEAP32[i53 >> 2] | 0;
  7208              HEAP32[i32 >> 2] = 0;
  7209              i289 = i290;
  7211             HEAP8[i54] = 1;
  7212             HEAP32[i32 >> 2] = i287;
  7213             HEAP32[i52 >> 2] = i115;
  7214             i286 = i289;
  7215            } else {
  7216             i286 = i278;
  7218           } while (0);
  7219           i261 = (HEAP32[i32 >> 2] | 0) + (i286 << 2) | 0;
  7220           if ((i261 | 0) != 0) {
  7221            HEAP32[i261 >> 2] = HEAP32[i260 >> 2];
  7223           HEAP32[i53 >> 2] = i286 + 1;
  7224           i261 = HEAP32[i56 >> 2] | 0;
  7225           i258 = i261 | 0;
  7226           i259 = HEAP32[i258 >> 2] | 0;
  7227           i55 = HEAP32[i261 + 8 >> 2] | 0;
  7228           if ((i259 | 0) == (i261 | 0)) {
  7229            HEAP32[(HEAP32[i55 + 12 >> 2] | 0) + 8 >> 2] = 0;
  7230           } else {
  7231            i51 = i261 + 4 | 0;
  7232            HEAP32[i259 + 4 >> 2] = HEAP32[i51 >> 2];
  7233            HEAP32[HEAP32[i51 >> 2] >> 2] = i259;
  7234            HEAP32[(HEAP32[i55 + 12 >> 2] | 0) + 8 >> 2] = i259;
  7236           i259 = i55 | 0;
  7237           i51 = HEAP32[i259 >> 2] | 0;
  7238           if ((i51 | 0) == (i55 | 0)) {
  7239            HEAP32[(HEAP32[i261 + 12 >> 2] | 0) + 8 >> 2] = 0;
  7240           } else {
  7241            i50 = i55 + 4 | 0;
  7242            HEAP32[i51 + 4 >> 2] = HEAP32[i50 >> 2];
  7243            HEAP32[HEAP32[i50 >> 2] >> 2] = i51;
  7244            HEAP32[(HEAP32[i261 + 12 >> 2] | 0) + 8 >> 2] = i51;
  7246           _memset(i261 | 0, 0, 20);
  7247           HEAP32[i258 >> 2] = HEAP32[i4 >> 2];
  7248           HEAP32[i4 >> 2] = i261;
  7249           _memset(i55 | 0, 0, 20);
  7250           HEAP32[i259 >> 2] = HEAP32[i4 >> 2];
  7251           HEAP32[i4 >> 2] = i55;
  7252           HEAP32[i30 >> 2] = (HEAP32[i30 >> 2] | 0) - 1;
  7253           i55 = HEAP32[i56 >> 2] | 0;
  7254           if ((i55 | 0) == 0) {
  7255            i276 = 1;
  7256            break;
  7257           } else {
  7258            i269 = 1;
  7259            i256 = i55;
  7263         i291 = i268 + 1 | 0;
  7264         i292 = HEAP32[i32 >> 2] | 0;
  7265         i256 = HEAP32[i292 + (i268 << 2) >> 2] | 0;
  7266         if ((i256 | 0) == 0) {
  7267          break;
  7268         } else {
  7269          i264 = i276;
  7270          i268 = i291;
  7271          i266 = i256;
  7274        if (!i276) {
  7275         i275 = i291;
  7276         break;
  7278        i266 = HEAP32[i53 >> 2] | 0;
  7279        do {
  7280         if ((i266 | 0) == (HEAP32[i52 >> 2] | 0)) {
  7281          i268 = (i266 | 0) == 0 ? 1 : i266 << 1;
  7282          if ((i266 | 0) >= (i268 | 0)) {
  7283           i293 = i266;
  7284           i294 = i292;
  7285           break;
  7287          if ((i268 | 0) == 0) {
  7288           i295 = 0;
  7289           i296 = i266;
  7290          } else {
  7291           i264 = __Z22btAlignedAllocInternalji(i268 << 2, 16) | 0;
  7292           i295 = i264;
  7293           i296 = HEAP32[i53 >> 2] | 0;
  7295          if ((i296 | 0) > 0) {
  7296           i264 = 0;
  7297           do {
  7298            i271 = i295 + (i264 << 2) | 0;
  7299            if ((i271 | 0) != 0) {
  7300             HEAP32[i271 >> 2] = HEAP32[(HEAP32[i32 >> 2] | 0) + (i264 << 2) >> 2];
  7302            i264 = i264 + 1 | 0;
  7303           } while ((i264 | 0) < (i296 | 0));
  7305          i264 = HEAP32[i32 >> 2] | 0;
  7306          if ((i264 | 0) == 0) {
  7307           i297 = i296;
  7308          } else {
  7309           if ((HEAP8[i54] | 0) == 0) {
  7310            i298 = i296;
  7311           } else {
  7312            __Z21btAlignedFreeInternalPv(i264);
  7313            i298 = HEAP32[i53 >> 2] | 0;
  7315           HEAP32[i32 >> 2] = 0;
  7316           i297 = i298;
  7318          HEAP8[i54] = 1;
  7319          HEAP32[i32 >> 2] = i295;
  7320          HEAP32[i52 >> 2] = i268;
  7321          i293 = i297;
  7322          i294 = i295;
  7323         } else {
  7324          i293 = i266;
  7325          i294 = i292;
  7327        } while (0);
  7328        i266 = i294 + (i293 << 2) | 0;
  7329        if ((i266 | 0) != 0) {
  7330         HEAP32[i266 >> 2] = 0;
  7332        HEAP32[i53 >> 2] = i293 + 1;
  7333        i275 = i291;
  7335      } while (0);
  7336      if ((i275 | 0) < (i262 | 0)) {
  7337       i273 = i275;
  7338      } else {
  7339       break;
  7342     i299 = i275;
  7343     i300 = HEAP32[i53 >> 2] | 0;
  7344    } else {
  7345     i299 = i270;
  7346     i300 = i262;
  7348    if ((i299 | 0) < (i300 | 0)) {
  7349     i270 = i299;
  7350     i262 = i300;
  7351    } else {
  7352     break;
  7355   if ((i300 | 0) <= 0) {
  7356    i301 = i300;
  7357    i49 = 1599;
  7359  } else {
  7360   i301 = i1;
  7361   i49 = 1599;
  7363  do {
  7364   if ((i49 | 0) == 1599) {
  7365    if ((i301 | 0) >= 0) {
  7366     break;
  7368    if ((HEAP32[i52 >> 2] | 0) < 0) {
  7369     i1 = HEAP32[i32 >> 2] | 0;
  7370     if ((i1 | 0) != 0) {
  7371      if ((HEAP8[i54] | 0) != 0) {
  7372       __Z21btAlignedFreeInternalPv(i1);
  7374      HEAP32[i32 >> 2] = 0;
  7376     HEAP8[i54] = 1;
  7377     HEAP32[i32 >> 2] = 0;
  7378     HEAP32[i52 >> 2] = 0;
  7379     i302 = i301;
  7380    } else {
  7381     i302 = i301;
  7383    do {
  7384     i1 = (HEAP32[i32 >> 2] | 0) + (i302 << 2) | 0;
  7385     if ((i1 | 0) != 0) {
  7386      HEAP32[i1 >> 2] = 0;
  7388     i302 = i302 + 1 | 0;
  7389    } while ((i302 | 0) < 0);
  7391  } while (0);
  7392  HEAP32[i53 >> 2] = 0;
  7393  HEAP32[i28 >> 2] = i35;
  7394  HEAP32[i36 >> 2] = i19;
  7395  HEAP32[i33 >> 2] = i18;
  7396  HEAP32[i2 + 24 >> 2] = -1;
  7397  i20 = 1;
  7398  STACKTOP = i5;
  7399  return i20 | 0;
  7401 function _malloc(i1) {
  7402  i1 = i1 | 0;
  7403  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0, i68 = 0, i69 = 0, i70 = 0, i71 = 0, i72 = 0, i73 = 0, i74 = 0, i75 = 0, i76 = 0, i77 = 0, i78 = 0, i79 = 0, i80 = 0, i81 = 0, i82 = 0, i83 = 0, i84 = 0, i85 = 0, i86 = 0;
  7404  do {
  7405   if (i1 >>> 0 < 245) {
  7406    if (i1 >>> 0 < 11) {
  7407     i2 = 16;
  7408    } else {
  7409     i2 = i1 + 11 & -8;
  7411    i3 = i2 >>> 3;
  7412    i4 = HEAP32[3016] | 0;
  7413    i5 = i4 >>> (i3 >>> 0);
  7414    if ((i5 & 3 | 0) != 0) {
  7415     i6 = (i5 & 1 ^ 1) + i3 | 0;
  7416     i7 = i6 << 1;
  7417     i8 = 12104 + (i7 << 2) | 0;
  7418     i9 = 12104 + (i7 + 2 << 2) | 0;
  7419     i7 = HEAP32[i9 >> 2] | 0;
  7420     i10 = i7 + 8 | 0;
  7421     i11 = HEAP32[i10 >> 2] | 0;
  7422     do {
  7423      if ((i8 | 0) == (i11 | 0)) {
  7424       HEAP32[3016] = i4 & ~(1 << i6);
  7425      } else {
  7426       if (i11 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
  7427        _abort();
  7428        return 0;
  7430       i12 = i11 + 12 | 0;
  7431       if ((HEAP32[i12 >> 2] | 0) == (i7 | 0)) {
  7432        HEAP32[i12 >> 2] = i8;
  7433        HEAP32[i9 >> 2] = i11;
  7434        break;
  7435       } else {
  7436        _abort();
  7437        return 0;
  7440     } while (0);
  7441     i11 = i6 << 3;
  7442     HEAP32[i7 + 4 >> 2] = i11 | 3;
  7443     i9 = i7 + (i11 | 4) | 0;
  7444     HEAP32[i9 >> 2] = HEAP32[i9 >> 2] | 1;
  7445     i13 = i10;
  7446     return i13 | 0;
  7448    if (i2 >>> 0 <= (HEAP32[3018] | 0) >>> 0) {
  7449     i14 = i2;
  7450     break;
  7452    if ((i5 | 0) != 0) {
  7453     i9 = 2 << i3;
  7454     i11 = i5 << i3 & (i9 | -i9);
  7455     i9 = (i11 & -i11) - 1 | 0;
  7456     i11 = i9 >>> 12 & 16;
  7457     i8 = i9 >>> (i11 >>> 0);
  7458     i9 = i8 >>> 5 & 8;
  7459     i12 = i8 >>> (i9 >>> 0);
  7460     i8 = i12 >>> 2 & 4;
  7461     i15 = i12 >>> (i8 >>> 0);
  7462     i12 = i15 >>> 1 & 2;
  7463     i16 = i15 >>> (i12 >>> 0);
  7464     i15 = i16 >>> 1 & 1;
  7465     i17 = (i9 | i11 | i8 | i12 | i15) + (i16 >>> (i15 >>> 0)) | 0;
  7466     i15 = i17 << 1;
  7467     i16 = 12104 + (i15 << 2) | 0;
  7468     i12 = 12104 + (i15 + 2 << 2) | 0;
  7469     i15 = HEAP32[i12 >> 2] | 0;
  7470     i8 = i15 + 8 | 0;
  7471     i11 = HEAP32[i8 >> 2] | 0;
  7472     do {
  7473      if ((i16 | 0) == (i11 | 0)) {
  7474       HEAP32[3016] = i4 & ~(1 << i17);
  7475      } else {
  7476       if (i11 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
  7477        _abort();
  7478        return 0;
  7480       i9 = i11 + 12 | 0;
  7481       if ((HEAP32[i9 >> 2] | 0) == (i15 | 0)) {
  7482        HEAP32[i9 >> 2] = i16;
  7483        HEAP32[i12 >> 2] = i11;
  7484        break;
  7485       } else {
  7486        _abort();
  7487        return 0;
  7490     } while (0);
  7491     i11 = i17 << 3;
  7492     i12 = i11 - i2 | 0;
  7493     HEAP32[i15 + 4 >> 2] = i2 | 3;
  7494     i16 = i15;
  7495     i4 = i16 + i2 | 0;
  7496     HEAP32[i16 + (i2 | 4) >> 2] = i12 | 1;
  7497     HEAP32[i16 + i11 >> 2] = i12;
  7498     i11 = HEAP32[3018] | 0;
  7499     if ((i11 | 0) != 0) {
  7500      i16 = HEAP32[3021] | 0;
  7501      i3 = i11 >>> 3;
  7502      i11 = i3 << 1;
  7503      i5 = 12104 + (i11 << 2) | 0;
  7504      i10 = HEAP32[3016] | 0;
  7505      i7 = 1 << i3;
  7506      do {
  7507       if ((i10 & i7 | 0) == 0) {
  7508        HEAP32[3016] = i10 | i7;
  7509        i18 = i5;
  7510        i19 = 12104 + (i11 + 2 << 2) | 0;
  7511       } else {
  7512        i3 = 12104 + (i11 + 2 << 2) | 0;
  7513        i6 = HEAP32[i3 >> 2] | 0;
  7514        if (i6 >>> 0 >= (HEAP32[3020] | 0) >>> 0) {
  7515         i18 = i6;
  7516         i19 = i3;
  7517         break;
  7519        _abort();
  7520        return 0;
  7522      } while (0);
  7523      HEAP32[i19 >> 2] = i16;
  7524      HEAP32[i18 + 12 >> 2] = i16;
  7525      HEAP32[i16 + 8 >> 2] = i18;
  7526      HEAP32[i16 + 12 >> 2] = i5;
  7528     HEAP32[3018] = i12;
  7529     HEAP32[3021] = i4;
  7530     i13 = i8;
  7531     return i13 | 0;
  7533    i11 = HEAP32[3017] | 0;
  7534    if ((i11 | 0) == 0) {
  7535     i14 = i2;
  7536     break;
  7538    i7 = (i11 & -i11) - 1 | 0;
  7539    i11 = i7 >>> 12 & 16;
  7540    i10 = i7 >>> (i11 >>> 0);
  7541    i7 = i10 >>> 5 & 8;
  7542    i15 = i10 >>> (i7 >>> 0);
  7543    i10 = i15 >>> 2 & 4;
  7544    i17 = i15 >>> (i10 >>> 0);
  7545    i15 = i17 >>> 1 & 2;
  7546    i3 = i17 >>> (i15 >>> 0);
  7547    i17 = i3 >>> 1 & 1;
  7548    i6 = HEAP32[12368 + ((i7 | i11 | i10 | i15 | i17) + (i3 >>> (i17 >>> 0)) << 2) >> 2] | 0;
  7549    i17 = i6;
  7550    i3 = i6;
  7551    i15 = (HEAP32[i6 + 4 >> 2] & -8) - i2 | 0;
  7552    while (1) {
  7553     i6 = HEAP32[i17 + 16 >> 2] | 0;
  7554     if ((i6 | 0) == 0) {
  7555      i10 = HEAP32[i17 + 20 >> 2] | 0;
  7556      if ((i10 | 0) == 0) {
  7557       break;
  7558      } else {
  7559       i20 = i10;
  7561     } else {
  7562      i20 = i6;
  7564     i6 = (HEAP32[i20 + 4 >> 2] & -8) - i2 | 0;
  7565     i10 = i6 >>> 0 < i15 >>> 0;
  7566     i17 = i20;
  7567     i3 = i10 ? i20 : i3;
  7568     i15 = i10 ? i6 : i15;
  7570    i17 = i3;
  7571    i8 = HEAP32[3020] | 0;
  7572    if (i17 >>> 0 < i8 >>> 0) {
  7573     _abort();
  7574     return 0;
  7576    i4 = i17 + i2 | 0;
  7577    i12 = i4;
  7578    if (i17 >>> 0 >= i4 >>> 0) {
  7579     _abort();
  7580     return 0;
  7582    i4 = HEAP32[i3 + 24 >> 2] | 0;
  7583    i5 = HEAP32[i3 + 12 >> 2] | 0;
  7584    do {
  7585     if ((i5 | 0) == (i3 | 0)) {
  7586      i16 = i3 + 20 | 0;
  7587      i6 = HEAP32[i16 >> 2] | 0;
  7588      if ((i6 | 0) == 0) {
  7589       i10 = i3 + 16 | 0;
  7590       i11 = HEAP32[i10 >> 2] | 0;
  7591       if ((i11 | 0) == 0) {
  7592        i21 = 0;
  7593        break;
  7594       } else {
  7595        i22 = i11;
  7596        i23 = i10;
  7598      } else {
  7599       i22 = i6;
  7600       i23 = i16;
  7602      while (1) {
  7603       i16 = i22 + 20 | 0;
  7604       i6 = HEAP32[i16 >> 2] | 0;
  7605       if ((i6 | 0) != 0) {
  7606        i22 = i6;
  7607        i23 = i16;
  7608        continue;
  7610       i16 = i22 + 16 | 0;
  7611       i6 = HEAP32[i16 >> 2] | 0;
  7612       if ((i6 | 0) == 0) {
  7613        break;
  7614       } else {
  7615        i22 = i6;
  7616        i23 = i16;
  7619      if (i23 >>> 0 < i8 >>> 0) {
  7620       _abort();
  7621       return 0;
  7622      } else {
  7623       HEAP32[i23 >> 2] = 0;
  7624       i21 = i22;
  7625       break;
  7627     } else {
  7628      i16 = HEAP32[i3 + 8 >> 2] | 0;
  7629      if (i16 >>> 0 < i8 >>> 0) {
  7630       _abort();
  7631       return 0;
  7633      i6 = i16 + 12 | 0;
  7634      if ((HEAP32[i6 >> 2] | 0) != (i3 | 0)) {
  7635       _abort();
  7636       return 0;
  7638      i10 = i5 + 8 | 0;
  7639      if ((HEAP32[i10 >> 2] | 0) == (i3 | 0)) {
  7640       HEAP32[i6 >> 2] = i5;
  7641       HEAP32[i10 >> 2] = i16;
  7642       i21 = i5;
  7643       break;
  7644      } else {
  7645       _abort();
  7646       return 0;
  7649    } while (0);
  7650    L78 : do {
  7651     if ((i4 | 0) != 0) {
  7652      i5 = i3 + 28 | 0;
  7653      i8 = 12368 + (HEAP32[i5 >> 2] << 2) | 0;
  7654      do {
  7655       if ((i3 | 0) == (HEAP32[i8 >> 2] | 0)) {
  7656        HEAP32[i8 >> 2] = i21;
  7657        if ((i21 | 0) != 0) {
  7658         break;
  7660        HEAP32[3017] = HEAP32[3017] & ~(1 << HEAP32[i5 >> 2]);
  7661        break L78;
  7662       } else {
  7663        if (i4 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
  7664         _abort();
  7665         return 0;
  7667        i16 = i4 + 16 | 0;
  7668        if ((HEAP32[i16 >> 2] | 0) == (i3 | 0)) {
  7669         HEAP32[i16 >> 2] = i21;
  7670        } else {
  7671         HEAP32[i4 + 20 >> 2] = i21;
  7673        if ((i21 | 0) == 0) {
  7674         break L78;
  7677      } while (0);
  7678      if (i21 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
  7679       _abort();
  7680       return 0;
  7682      HEAP32[i21 + 24 >> 2] = i4;
  7683      i5 = HEAP32[i3 + 16 >> 2] | 0;
  7684      do {
  7685       if ((i5 | 0) != 0) {
  7686        if (i5 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
  7687         _abort();
  7688         return 0;
  7689        } else {
  7690         HEAP32[i21 + 16 >> 2] = i5;
  7691         HEAP32[i5 + 24 >> 2] = i21;
  7692         break;
  7695      } while (0);
  7696      i5 = HEAP32[i3 + 20 >> 2] | 0;
  7697      if ((i5 | 0) == 0) {
  7698       break;
  7700      if (i5 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
  7701       _abort();
  7702       return 0;
  7703      } else {
  7704       HEAP32[i21 + 20 >> 2] = i5;
  7705       HEAP32[i5 + 24 >> 2] = i21;
  7706       break;
  7709    } while (0);
  7710    if (i15 >>> 0 < 16) {
  7711     i4 = i15 + i2 | 0;
  7712     HEAP32[i3 + 4 >> 2] = i4 | 3;
  7713     i5 = i17 + (i4 + 4) | 0;
  7714     HEAP32[i5 >> 2] = HEAP32[i5 >> 2] | 1;
  7715    } else {
  7716     HEAP32[i3 + 4 >> 2] = i2 | 3;
  7717     HEAP32[i17 + (i2 | 4) >> 2] = i15 | 1;
  7718     HEAP32[i17 + (i15 + i2) >> 2] = i15;
  7719     i5 = HEAP32[3018] | 0;
  7720     if ((i5 | 0) != 0) {
  7721      i4 = HEAP32[3021] | 0;
  7722      i8 = i5 >>> 3;
  7723      i5 = i8 << 1;
  7724      i16 = 12104 + (i5 << 2) | 0;
  7725      i10 = HEAP32[3016] | 0;
  7726      i6 = 1 << i8;
  7727      do {
  7728       if ((i10 & i6 | 0) == 0) {
  7729        HEAP32[3016] = i10 | i6;
  7730        i24 = i16;
  7731        i25 = 12104 + (i5 + 2 << 2) | 0;
  7732       } else {
  7733        i8 = 12104 + (i5 + 2 << 2) | 0;
  7734        i11 = HEAP32[i8 >> 2] | 0;
  7735        if (i11 >>> 0 >= (HEAP32[3020] | 0) >>> 0) {
  7736         i24 = i11;
  7737         i25 = i8;
  7738         break;
  7740        _abort();
  7741        return 0;
  7743      } while (0);
  7744      HEAP32[i25 >> 2] = i4;
  7745      HEAP32[i24 + 12 >> 2] = i4;
  7746      HEAP32[i4 + 8 >> 2] = i24;
  7747      HEAP32[i4 + 12 >> 2] = i16;
  7749     HEAP32[3018] = i15;
  7750     HEAP32[3021] = i12;
  7752    i5 = i3 + 8 | 0;
  7753    if ((i5 | 0) == 0) {
  7754     i14 = i2;
  7755     break;
  7756    } else {
  7757     i13 = i5;
  7759    return i13 | 0;
  7760   } else {
  7761    if (i1 >>> 0 > 4294967231) {
  7762     i14 = -1;
  7763     break;
  7765    i5 = i1 + 11 | 0;
  7766    i6 = i5 & -8;
  7767    i10 = HEAP32[3017] | 0;
  7768    if ((i10 | 0) == 0) {
  7769     i14 = i6;
  7770     break;
  7772    i17 = -i6 | 0;
  7773    i8 = i5 >>> 8;
  7774    do {
  7775     if ((i8 | 0) == 0) {
  7776      i26 = 0;
  7777     } else {
  7778      if (i6 >>> 0 > 16777215) {
  7779       i26 = 31;
  7780       break;
  7782      i5 = (i8 + 1048320 | 0) >>> 16 & 8;
  7783      i11 = i8 << i5;
  7784      i7 = (i11 + 520192 | 0) >>> 16 & 4;
  7785      i9 = i11 << i7;
  7786      i11 = (i9 + 245760 | 0) >>> 16 & 2;
  7787      i27 = 14 - (i7 | i5 | i11) + (i9 << i11 >>> 15) | 0;
  7788      i26 = i6 >>> ((i27 + 7 | 0) >>> 0) & 1 | i27 << 1;
  7790    } while (0);
  7791    i8 = HEAP32[12368 + (i26 << 2) >> 2] | 0;
  7792    L126 : do {
  7793     if ((i8 | 0) == 0) {
  7794      i28 = 0;
  7795      i29 = i17;
  7796      i30 = 0;
  7797     } else {
  7798      if ((i26 | 0) == 31) {
  7799       i31 = 0;
  7800      } else {
  7801       i31 = 25 - (i26 >>> 1) | 0;
  7803      i3 = 0;
  7804      i12 = i17;
  7805      i15 = i8;
  7806      i16 = i6 << i31;
  7807      i4 = 0;
  7808      while (1) {
  7809       i27 = HEAP32[i15 + 4 >> 2] & -8;
  7810       i11 = i27 - i6 | 0;
  7811       if (i11 >>> 0 < i12 >>> 0) {
  7812        if ((i27 | 0) == (i6 | 0)) {
  7813         i28 = i15;
  7814         i29 = i11;
  7815         i30 = i15;
  7816         break L126;
  7817        } else {
  7818         i32 = i15;
  7819         i33 = i11;
  7821       } else {
  7822        i32 = i3;
  7823        i33 = i12;
  7825       i11 = HEAP32[i15 + 20 >> 2] | 0;
  7826       i27 = HEAP32[i15 + 16 + (i16 >>> 31 << 2) >> 2] | 0;
  7827       i9 = (i11 | 0) == 0 | (i11 | 0) == (i27 | 0) ? i4 : i11;
  7828       if ((i27 | 0) == 0) {
  7829        i28 = i32;
  7830        i29 = i33;
  7831        i30 = i9;
  7832        break;
  7833       } else {
  7834        i3 = i32;
  7835        i12 = i33;
  7836        i15 = i27;
  7837        i16 = i16 << 1;
  7838        i4 = i9;
  7842    } while (0);
  7843    if ((i30 | 0) == 0 & (i28 | 0) == 0) {
  7844     i8 = 2 << i26;
  7845     i17 = i10 & (i8 | -i8);
  7846     if ((i17 | 0) == 0) {
  7847      i14 = i6;
  7848      break;
  7850     i8 = (i17 & -i17) - 1 | 0;
  7851     i17 = i8 >>> 12 & 16;
  7852     i4 = i8 >>> (i17 >>> 0);
  7853     i8 = i4 >>> 5 & 8;
  7854     i16 = i4 >>> (i8 >>> 0);
  7855     i4 = i16 >>> 2 & 4;
  7856     i15 = i16 >>> (i4 >>> 0);
  7857     i16 = i15 >>> 1 & 2;
  7858     i12 = i15 >>> (i16 >>> 0);
  7859     i15 = i12 >>> 1 & 1;
  7860     i34 = HEAP32[12368 + ((i8 | i17 | i4 | i16 | i15) + (i12 >>> (i15 >>> 0)) << 2) >> 2] | 0;
  7861    } else {
  7862     i34 = i30;
  7864    if ((i34 | 0) == 0) {
  7865     i35 = i29;
  7866     i36 = i28;
  7867    } else {
  7868     i15 = i34;
  7869     i12 = i29;
  7870     i16 = i28;
  7871     while (1) {
  7872      i4 = (HEAP32[i15 + 4 >> 2] & -8) - i6 | 0;
  7873      i17 = i4 >>> 0 < i12 >>> 0;
  7874      i8 = i17 ? i4 : i12;
  7875      i4 = i17 ? i15 : i16;
  7876      i17 = HEAP32[i15 + 16 >> 2] | 0;
  7877      if ((i17 | 0) != 0) {
  7878       i15 = i17;
  7879       i12 = i8;
  7880       i16 = i4;
  7881       continue;
  7883      i17 = HEAP32[i15 + 20 >> 2] | 0;
  7884      if ((i17 | 0) == 0) {
  7885       i35 = i8;
  7886       i36 = i4;
  7887       break;
  7888      } else {
  7889       i15 = i17;
  7890       i12 = i8;
  7891       i16 = i4;
  7895    if ((i36 | 0) == 0) {
  7896     i14 = i6;
  7897     break;
  7899    if (i35 >>> 0 >= ((HEAP32[3018] | 0) - i6 | 0) >>> 0) {
  7900     i14 = i6;
  7901     break;
  7903    i16 = i36;
  7904    i12 = HEAP32[3020] | 0;
  7905    if (i16 >>> 0 < i12 >>> 0) {
  7906     _abort();
  7907     return 0;
  7909    i15 = i16 + i6 | 0;
  7910    i10 = i15;
  7911    if (i16 >>> 0 >= i15 >>> 0) {
  7912     _abort();
  7913     return 0;
  7915    i4 = HEAP32[i36 + 24 >> 2] | 0;
  7916    i8 = HEAP32[i36 + 12 >> 2] | 0;
  7917    do {
  7918     if ((i8 | 0) == (i36 | 0)) {
  7919      i17 = i36 + 20 | 0;
  7920      i3 = HEAP32[i17 >> 2] | 0;
  7921      if ((i3 | 0) == 0) {
  7922       i9 = i36 + 16 | 0;
  7923       i27 = HEAP32[i9 >> 2] | 0;
  7924       if ((i27 | 0) == 0) {
  7925        i37 = 0;
  7926        break;
  7927       } else {
  7928        i38 = i27;
  7929        i39 = i9;
  7931      } else {
  7932       i38 = i3;
  7933       i39 = i17;
  7935      while (1) {
  7936       i17 = i38 + 20 | 0;
  7937       i3 = HEAP32[i17 >> 2] | 0;
  7938       if ((i3 | 0) != 0) {
  7939        i38 = i3;
  7940        i39 = i17;
  7941        continue;
  7943       i17 = i38 + 16 | 0;
  7944       i3 = HEAP32[i17 >> 2] | 0;
  7945       if ((i3 | 0) == 0) {
  7946        break;
  7947       } else {
  7948        i38 = i3;
  7949        i39 = i17;
  7952      if (i39 >>> 0 < i12 >>> 0) {
  7953       _abort();
  7954       return 0;
  7955      } else {
  7956       HEAP32[i39 >> 2] = 0;
  7957       i37 = i38;
  7958       break;
  7960     } else {
  7961      i17 = HEAP32[i36 + 8 >> 2] | 0;
  7962      if (i17 >>> 0 < i12 >>> 0) {
  7963       _abort();
  7964       return 0;
  7966      i3 = i17 + 12 | 0;
  7967      if ((HEAP32[i3 >> 2] | 0) != (i36 | 0)) {
  7968       _abort();
  7969       return 0;
  7971      i9 = i8 + 8 | 0;
  7972      if ((HEAP32[i9 >> 2] | 0) == (i36 | 0)) {
  7973       HEAP32[i3 >> 2] = i8;
  7974       HEAP32[i9 >> 2] = i17;
  7975       i37 = i8;
  7976       break;
  7977      } else {
  7978       _abort();
  7979       return 0;
  7982    } while (0);
  7983    L176 : do {
  7984     if ((i4 | 0) != 0) {
  7985      i8 = i36 + 28 | 0;
  7986      i12 = 12368 + (HEAP32[i8 >> 2] << 2) | 0;
  7987      do {
  7988       if ((i36 | 0) == (HEAP32[i12 >> 2] | 0)) {
  7989        HEAP32[i12 >> 2] = i37;
  7990        if ((i37 | 0) != 0) {
  7991         break;
  7993        HEAP32[3017] = HEAP32[3017] & ~(1 << HEAP32[i8 >> 2]);
  7994        break L176;
  7995       } else {
  7996        if (i4 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
  7997         _abort();
  7998         return 0;
  8000        i17 = i4 + 16 | 0;
  8001        if ((HEAP32[i17 >> 2] | 0) == (i36 | 0)) {
  8002         HEAP32[i17 >> 2] = i37;
  8003        } else {
  8004         HEAP32[i4 + 20 >> 2] = i37;
  8006        if ((i37 | 0) == 0) {
  8007         break L176;
  8010      } while (0);
  8011      if (i37 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
  8012       _abort();
  8013       return 0;
  8015      HEAP32[i37 + 24 >> 2] = i4;
  8016      i8 = HEAP32[i36 + 16 >> 2] | 0;
  8017      do {
  8018       if ((i8 | 0) != 0) {
  8019        if (i8 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
  8020         _abort();
  8021         return 0;
  8022        } else {
  8023         HEAP32[i37 + 16 >> 2] = i8;
  8024         HEAP32[i8 + 24 >> 2] = i37;
  8025         break;
  8028      } while (0);
  8029      i8 = HEAP32[i36 + 20 >> 2] | 0;
  8030      if ((i8 | 0) == 0) {
  8031       break;
  8033      if (i8 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
  8034       _abort();
  8035       return 0;
  8036      } else {
  8037       HEAP32[i37 + 20 >> 2] = i8;
  8038       HEAP32[i8 + 24 >> 2] = i37;
  8039       break;
  8042    } while (0);
  8043    do {
  8044     if (i35 >>> 0 < 16) {
  8045      i4 = i35 + i6 | 0;
  8046      HEAP32[i36 + 4 >> 2] = i4 | 3;
  8047      i8 = i16 + (i4 + 4) | 0;
  8048      HEAP32[i8 >> 2] = HEAP32[i8 >> 2] | 1;
  8049     } else {
  8050      HEAP32[i36 + 4 >> 2] = i6 | 3;
  8051      HEAP32[i16 + (i6 | 4) >> 2] = i35 | 1;
  8052      HEAP32[i16 + (i35 + i6) >> 2] = i35;
  8053      i8 = i35 >>> 3;
  8054      if (i35 >>> 0 < 256) {
  8055       i4 = i8 << 1;
  8056       i12 = 12104 + (i4 << 2) | 0;
  8057       i17 = HEAP32[3016] | 0;
  8058       i9 = 1 << i8;
  8059       do {
  8060        if ((i17 & i9 | 0) == 0) {
  8061         HEAP32[3016] = i17 | i9;
  8062         i40 = i12;
  8063         i41 = 12104 + (i4 + 2 << 2) | 0;
  8064        } else {
  8065         i8 = 12104 + (i4 + 2 << 2) | 0;
  8066         i3 = HEAP32[i8 >> 2] | 0;
  8067         if (i3 >>> 0 >= (HEAP32[3020] | 0) >>> 0) {
  8068          i40 = i3;
  8069          i41 = i8;
  8070          break;
  8072         _abort();
  8073         return 0;
  8075       } while (0);
  8076       HEAP32[i41 >> 2] = i10;
  8077       HEAP32[i40 + 12 >> 2] = i10;
  8078       HEAP32[i16 + (i6 + 8) >> 2] = i40;
  8079       HEAP32[i16 + (i6 + 12) >> 2] = i12;
  8080       break;
  8082      i4 = i15;
  8083      i9 = i35 >>> 8;
  8084      do {
  8085       if ((i9 | 0) == 0) {
  8086        i42 = 0;
  8087       } else {
  8088        if (i35 >>> 0 > 16777215) {
  8089         i42 = 31;
  8090         break;
  8092        i17 = (i9 + 1048320 | 0) >>> 16 & 8;
  8093        i8 = i9 << i17;
  8094        i3 = (i8 + 520192 | 0) >>> 16 & 4;
  8095        i27 = i8 << i3;
  8096        i8 = (i27 + 245760 | 0) >>> 16 & 2;
  8097        i11 = 14 - (i3 | i17 | i8) + (i27 << i8 >>> 15) | 0;
  8098        i42 = i35 >>> ((i11 + 7 | 0) >>> 0) & 1 | i11 << 1;
  8100      } while (0);
  8101      i9 = 12368 + (i42 << 2) | 0;
  8102      HEAP32[i16 + (i6 + 28) >> 2] = i42;
  8103      HEAP32[i16 + (i6 + 20) >> 2] = 0;
  8104      HEAP32[i16 + (i6 + 16) >> 2] = 0;
  8105      i12 = HEAP32[3017] | 0;
  8106      i11 = 1 << i42;
  8107      if ((i12 & i11 | 0) == 0) {
  8108       HEAP32[3017] = i12 | i11;
  8109       HEAP32[i9 >> 2] = i4;
  8110       HEAP32[i16 + (i6 + 24) >> 2] = i9;
  8111       HEAP32[i16 + (i6 + 12) >> 2] = i4;
  8112       HEAP32[i16 + (i6 + 8) >> 2] = i4;
  8113       break;
  8115      if ((i42 | 0) == 31) {
  8116       i43 = 0;
  8117      } else {
  8118       i43 = 25 - (i42 >>> 1) | 0;
  8120      i11 = i35 << i43;
  8121      i12 = HEAP32[i9 >> 2] | 0;
  8122      while (1) {
  8123       if ((HEAP32[i12 + 4 >> 2] & -8 | 0) == (i35 | 0)) {
  8124        break;
  8126       i44 = i12 + 16 + (i11 >>> 31 << 2) | 0;
  8127       i9 = HEAP32[i44 >> 2] | 0;
  8128       if ((i9 | 0) == 0) {
  8129        i45 = 151;
  8130        break;
  8131       } else {
  8132        i11 = i11 << 1;
  8133        i12 = i9;
  8136      if ((i45 | 0) == 151) {
  8137       if (i44 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
  8138        _abort();
  8139        return 0;
  8140       } else {
  8141        HEAP32[i44 >> 2] = i4;
  8142        HEAP32[i16 + (i6 + 24) >> 2] = i12;
  8143        HEAP32[i16 + (i6 + 12) >> 2] = i4;
  8144        HEAP32[i16 + (i6 + 8) >> 2] = i4;
  8145        break;
  8148      i11 = i12 + 8 | 0;
  8149      i9 = HEAP32[i11 >> 2] | 0;
  8150      i8 = HEAP32[3020] | 0;
  8151      if (i12 >>> 0 < i8 >>> 0) {
  8152       _abort();
  8153       return 0;
  8155      if (i9 >>> 0 < i8 >>> 0) {
  8156       _abort();
  8157       return 0;
  8158      } else {
  8159       HEAP32[i9 + 12 >> 2] = i4;
  8160       HEAP32[i11 >> 2] = i4;
  8161       HEAP32[i16 + (i6 + 8) >> 2] = i9;
  8162       HEAP32[i16 + (i6 + 12) >> 2] = i12;
  8163       HEAP32[i16 + (i6 + 24) >> 2] = 0;
  8164       break;
  8167    } while (0);
  8168    i16 = i36 + 8 | 0;
  8169    if ((i16 | 0) == 0) {
  8170     i14 = i6;
  8171     break;
  8172    } else {
  8173     i13 = i16;
  8175    return i13 | 0;
  8177  } while (0);
  8178  i36 = HEAP32[3018] | 0;
  8179  if (i14 >>> 0 <= i36 >>> 0) {
  8180   i44 = i36 - i14 | 0;
  8181   i35 = HEAP32[3021] | 0;
  8182   if (i44 >>> 0 > 15) {
  8183    i43 = i35;
  8184    HEAP32[3021] = i43 + i14;
  8185    HEAP32[3018] = i44;
  8186    HEAP32[i43 + (i14 + 4) >> 2] = i44 | 1;
  8187    HEAP32[i43 + i36 >> 2] = i44;
  8188    HEAP32[i35 + 4 >> 2] = i14 | 3;
  8189   } else {
  8190    HEAP32[3018] = 0;
  8191    HEAP32[3021] = 0;
  8192    HEAP32[i35 + 4 >> 2] = i36 | 3;
  8193    i44 = i35 + (i36 + 4) | 0;
  8194    HEAP32[i44 >> 2] = HEAP32[i44 >> 2] | 1;
  8196   i13 = i35 + 8 | 0;
  8197   return i13 | 0;
  8199  i35 = HEAP32[3019] | 0;
  8200  if (i14 >>> 0 < i35 >>> 0) {
  8201   i44 = i35 - i14 | 0;
  8202   HEAP32[3019] = i44;
  8203   i35 = HEAP32[3022] | 0;
  8204   i36 = i35;
  8205   HEAP32[3022] = i36 + i14;
  8206   HEAP32[i36 + (i14 + 4) >> 2] = i44 | 1;
  8207   HEAP32[i35 + 4 >> 2] = i14 | 3;
  8208   i13 = i35 + 8 | 0;
  8209   return i13 | 0;
  8211  do {
  8212   if ((HEAP32[2976] | 0) == 0) {
  8213    i35 = _sysconf(8) | 0;
  8214    if ((i35 - 1 & i35 | 0) == 0) {
  8215     HEAP32[2978] = i35;
  8216     HEAP32[2977] = i35;
  8217     HEAP32[2979] = -1;
  8218     HEAP32[2980] = -1;
  8219     HEAP32[2981] = 0;
  8220     HEAP32[3127] = 0;
  8221     HEAP32[2976] = (_time(0) | 0) & -16 ^ 1431655768;
  8222     break;
  8223    } else {
  8224     _abort();
  8225     return 0;
  8228  } while (0);
  8229  i35 = i14 + 48 | 0;
  8230  i44 = HEAP32[2978] | 0;
  8231  i36 = i14 + 47 | 0;
  8232  i43 = i44 + i36 | 0;
  8233  i42 = -i44 | 0;
  8234  i44 = i43 & i42;
  8235  if (i44 >>> 0 <= i14 >>> 0) {
  8236   i13 = 0;
  8237   return i13 | 0;
  8239  i40 = HEAP32[3126] | 0;
  8240  do {
  8241   if ((i40 | 0) != 0) {
  8242    i41 = HEAP32[3124] | 0;
  8243    i37 = i41 + i44 | 0;
  8244    if (i37 >>> 0 <= i41 >>> 0 | i37 >>> 0 > i40 >>> 0) {
  8245     i13 = 0;
  8246    } else {
  8247     break;
  8249    return i13 | 0;
  8251  } while (0);
  8252  L268 : do {
  8253   if ((HEAP32[3127] & 4 | 0) == 0) {
  8254    i40 = HEAP32[3022] | 0;
  8255    L270 : do {
  8256     if ((i40 | 0) == 0) {
  8257      i45 = 181;
  8258     } else {
  8259      i37 = i40;
  8260      i41 = 12512;
  8261      while (1) {
  8262       i46 = i41 | 0;
  8263       i38 = HEAP32[i46 >> 2] | 0;
  8264       if (i38 >>> 0 <= i37 >>> 0) {
  8265        i47 = i41 + 4 | 0;
  8266        if ((i38 + (HEAP32[i47 >> 2] | 0) | 0) >>> 0 > i37 >>> 0) {
  8267         break;
  8270       i38 = HEAP32[i41 + 8 >> 2] | 0;
  8271       if ((i38 | 0) == 0) {
  8272        i45 = 181;
  8273        break L270;
  8274       } else {
  8275        i41 = i38;
  8278      if ((i41 | 0) == 0) {
  8279       i45 = 181;
  8280       break;
  8282      i37 = i43 - (HEAP32[3019] | 0) & i42;
  8283      if (i37 >>> 0 >= 2147483647) {
  8284       i48 = 0;
  8285       break;
  8287      i12 = _sbrk(i37 | 0) | 0;
  8288      i4 = (i12 | 0) == ((HEAP32[i46 >> 2] | 0) + (HEAP32[i47 >> 2] | 0) | 0);
  8289      i49 = i4 ? i12 : -1;
  8290      i50 = i4 ? i37 : 0;
  8291      i51 = i12;
  8292      i52 = i37;
  8293      i45 = 190;
  8295    } while (0);
  8296    do {
  8297     if ((i45 | 0) == 181) {
  8298      i40 = _sbrk(0) | 0;
  8299      if ((i40 | 0) == -1) {
  8300       i48 = 0;
  8301       break;
  8303      i6 = i40;
  8304      i37 = HEAP32[2977] | 0;
  8305      i12 = i37 - 1 | 0;
  8306      if ((i12 & i6 | 0) == 0) {
  8307       i53 = i44;
  8308      } else {
  8309       i53 = i44 - i6 + (i12 + i6 & -i37) | 0;
  8311      i37 = HEAP32[3124] | 0;
  8312      i6 = i37 + i53 | 0;
  8313      if (!(i53 >>> 0 > i14 >>> 0 & i53 >>> 0 < 2147483647)) {
  8314       i48 = 0;
  8315       break;
  8317      i12 = HEAP32[3126] | 0;
  8318      if ((i12 | 0) != 0) {
  8319       if (i6 >>> 0 <= i37 >>> 0 | i6 >>> 0 > i12 >>> 0) {
  8320        i48 = 0;
  8321        break;
  8324      i12 = _sbrk(i53 | 0) | 0;
  8325      i6 = (i12 | 0) == (i40 | 0);
  8326      i49 = i6 ? i40 : -1;
  8327      i50 = i6 ? i53 : 0;
  8328      i51 = i12;
  8329      i52 = i53;
  8330      i45 = 190;
  8332    } while (0);
  8333    L290 : do {
  8334     if ((i45 | 0) == 190) {
  8335      i12 = -i52 | 0;
  8336      if ((i49 | 0) != -1) {
  8337       i54 = i50;
  8338       i55 = i49;
  8339       i45 = 201;
  8340       break L268;
  8342      do {
  8343       if ((i51 | 0) != -1 & i52 >>> 0 < 2147483647 & i52 >>> 0 < i35 >>> 0) {
  8344        i6 = HEAP32[2978] | 0;
  8345        i40 = i36 - i52 + i6 & -i6;
  8346        if (i40 >>> 0 >= 2147483647) {
  8347         i56 = i52;
  8348         break;
  8350        if ((_sbrk(i40 | 0) | 0) == -1) {
  8351         _sbrk(i12 | 0) | 0;
  8352         i48 = i50;
  8353         break L290;
  8354        } else {
  8355         i56 = i40 + i52 | 0;
  8356         break;
  8358       } else {
  8359        i56 = i52;
  8361      } while (0);
  8362      if ((i51 | 0) == -1) {
  8363       i48 = i50;
  8364      } else {
  8365       i54 = i56;
  8366       i55 = i51;
  8367       i45 = 201;
  8368       break L268;
  8371    } while (0);
  8372    HEAP32[3127] = HEAP32[3127] | 4;
  8373    i57 = i48;
  8374    i45 = 198;
  8375   } else {
  8376    i57 = 0;
  8377    i45 = 198;
  8379  } while (0);
  8380  do {
  8381   if ((i45 | 0) == 198) {
  8382    if (i44 >>> 0 >= 2147483647) {
  8383     break;
  8385    i48 = _sbrk(i44 | 0) | 0;
  8386    i51 = _sbrk(0) | 0;
  8387    if (!((i51 | 0) != -1 & (i48 | 0) != -1 & i48 >>> 0 < i51 >>> 0)) {
  8388     break;
  8390    i56 = i51 - i48 | 0;
  8391    i51 = i56 >>> 0 > (i14 + 40 | 0) >>> 0;
  8392    i50 = i51 ? i48 : -1;
  8393    if ((i50 | 0) != -1) {
  8394     i54 = i51 ? i56 : i57;
  8395     i55 = i50;
  8396     i45 = 201;
  8399  } while (0);
  8400  do {
  8401   if ((i45 | 0) == 201) {
  8402    i57 = (HEAP32[3124] | 0) + i54 | 0;
  8403    HEAP32[3124] = i57;
  8404    if (i57 >>> 0 > (HEAP32[3125] | 0) >>> 0) {
  8405     HEAP32[3125] = i57;
  8407    i57 = HEAP32[3022] | 0;
  8408    L310 : do {
  8409     if ((i57 | 0) == 0) {
  8410      i44 = HEAP32[3020] | 0;
  8411      if ((i44 | 0) == 0 | i55 >>> 0 < i44 >>> 0) {
  8412       HEAP32[3020] = i55;
  8414      HEAP32[3128] = i55;
  8415      HEAP32[3129] = i54;
  8416      HEAP32[3131] = 0;
  8417      HEAP32[3025] = HEAP32[2976];
  8418      HEAP32[3024] = -1;
  8419      i44 = 0;
  8420      do {
  8421       i50 = i44 << 1;
  8422       i56 = 12104 + (i50 << 2) | 0;
  8423       HEAP32[12104 + (i50 + 3 << 2) >> 2] = i56;
  8424       HEAP32[12104 + (i50 + 2 << 2) >> 2] = i56;
  8425       i44 = i44 + 1 | 0;
  8426      } while (i44 >>> 0 < 32);
  8427      i44 = i55 + 8 | 0;
  8428      if ((i44 & 7 | 0) == 0) {
  8429       i58 = 0;
  8430      } else {
  8431       i58 = -i44 & 7;
  8433      i44 = i54 - 40 - i58 | 0;
  8434      HEAP32[3022] = i55 + i58;
  8435      HEAP32[3019] = i44;
  8436      HEAP32[i55 + (i58 + 4) >> 2] = i44 | 1;
  8437      HEAP32[i55 + (i54 - 36) >> 2] = 40;
  8438      HEAP32[3023] = HEAP32[2980];
  8439     } else {
  8440      i44 = 12512;
  8441      while (1) {
  8442       i59 = HEAP32[i44 >> 2] | 0;
  8443       i60 = i44 + 4 | 0;
  8444       i61 = HEAP32[i60 >> 2] | 0;
  8445       if ((i55 | 0) == (i59 + i61 | 0)) {
  8446        i45 = 213;
  8447        break;
  8449       i56 = HEAP32[i44 + 8 >> 2] | 0;
  8450       if ((i56 | 0) == 0) {
  8451        break;
  8452       } else {
  8453        i44 = i56;
  8456      do {
  8457       if ((i45 | 0) == 213) {
  8458        if ((HEAP32[i44 + 12 >> 2] & 8 | 0) != 0) {
  8459         break;
  8461        i56 = i57;
  8462        if (!(i56 >>> 0 >= i59 >>> 0 & i56 >>> 0 < i55 >>> 0)) {
  8463         break;
  8465        HEAP32[i60 >> 2] = i61 + i54;
  8466        i56 = HEAP32[3022] | 0;
  8467        i50 = (HEAP32[3019] | 0) + i54 | 0;
  8468        i51 = i56;
  8469        i48 = i56 + 8 | 0;
  8470        if ((i48 & 7 | 0) == 0) {
  8471         i62 = 0;
  8472        } else {
  8473         i62 = -i48 & 7;
  8475        i48 = i50 - i62 | 0;
  8476        HEAP32[3022] = i51 + i62;
  8477        HEAP32[3019] = i48;
  8478        HEAP32[i51 + (i62 + 4) >> 2] = i48 | 1;
  8479        HEAP32[i51 + (i50 + 4) >> 2] = 40;
  8480        HEAP32[3023] = HEAP32[2980];
  8481        break L310;
  8483      } while (0);
  8484      if (i55 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
  8485       HEAP32[3020] = i55;
  8487      i44 = i55 + i54 | 0;
  8488      i50 = 12512;
  8489      while (1) {
  8490       i63 = i50 | 0;
  8491       if ((HEAP32[i63 >> 2] | 0) == (i44 | 0)) {
  8492        i45 = 223;
  8493        break;
  8495       i51 = HEAP32[i50 + 8 >> 2] | 0;
  8496       if ((i51 | 0) == 0) {
  8497        break;
  8498       } else {
  8499        i50 = i51;
  8502      do {
  8503       if ((i45 | 0) == 223) {
  8504        if ((HEAP32[i50 + 12 >> 2] & 8 | 0) != 0) {
  8505         break;
  8507        HEAP32[i63 >> 2] = i55;
  8508        i44 = i50 + 4 | 0;
  8509        HEAP32[i44 >> 2] = (HEAP32[i44 >> 2] | 0) + i54;
  8510        i44 = i55 + 8 | 0;
  8511        if ((i44 & 7 | 0) == 0) {
  8512         i64 = 0;
  8513        } else {
  8514         i64 = -i44 & 7;
  8516        i44 = i55 + (i54 + 8) | 0;
  8517        if ((i44 & 7 | 0) == 0) {
  8518         i65 = 0;
  8519        } else {
  8520         i65 = -i44 & 7;
  8522        i44 = i55 + (i65 + i54) | 0;
  8523        i51 = i44;
  8524        i48 = i64 + i14 | 0;
  8525        i56 = i55 + i48 | 0;
  8526        i52 = i56;
  8527        i36 = i44 - (i55 + i64) - i14 | 0;
  8528        HEAP32[i55 + (i64 + 4) >> 2] = i14 | 3;
  8529        do {
  8530         if ((i51 | 0) == (HEAP32[3022] | 0)) {
  8531          i35 = (HEAP32[3019] | 0) + i36 | 0;
  8532          HEAP32[3019] = i35;
  8533          HEAP32[3022] = i52;
  8534          HEAP32[i55 + (i48 + 4) >> 2] = i35 | 1;
  8535         } else {
  8536          if ((i51 | 0) == (HEAP32[3021] | 0)) {
  8537           i35 = (HEAP32[3018] | 0) + i36 | 0;
  8538           HEAP32[3018] = i35;
  8539           HEAP32[3021] = i52;
  8540           HEAP32[i55 + (i48 + 4) >> 2] = i35 | 1;
  8541           HEAP32[i55 + (i35 + i48) >> 2] = i35;
  8542           break;
  8544          i35 = i54 + 4 | 0;
  8545          i49 = HEAP32[i55 + (i35 + i65) >> 2] | 0;
  8546          if ((i49 & 3 | 0) == 1) {
  8547           i53 = i49 & -8;
  8548           i47 = i49 >>> 3;
  8549           L355 : do {
  8550            if (i49 >>> 0 < 256) {
  8551             i46 = HEAP32[i55 + ((i65 | 8) + i54) >> 2] | 0;
  8552             i42 = HEAP32[i55 + (i54 + 12 + i65) >> 2] | 0;
  8553             i43 = 12104 + (i47 << 1 << 2) | 0;
  8554             do {
  8555              if ((i46 | 0) != (i43 | 0)) {
  8556               if (i46 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
  8557                _abort();
  8558                return 0;
  8560               if ((HEAP32[i46 + 12 >> 2] | 0) == (i51 | 0)) {
  8561                break;
  8563               _abort();
  8564               return 0;
  8566             } while (0);
  8567             if ((i42 | 0) == (i46 | 0)) {
  8568              HEAP32[3016] = HEAP32[3016] & ~(1 << i47);
  8569              break;
  8571             do {
  8572              if ((i42 | 0) == (i43 | 0)) {
  8573               i66 = i42 + 8 | 0;
  8574              } else {
  8575               if (i42 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
  8576                _abort();
  8577                return 0;
  8579               i12 = i42 + 8 | 0;
  8580               if ((HEAP32[i12 >> 2] | 0) == (i51 | 0)) {
  8581                i66 = i12;
  8582                break;
  8584               _abort();
  8585               return 0;
  8587             } while (0);
  8588             HEAP32[i46 + 12 >> 2] = i42;
  8589             HEAP32[i66 >> 2] = i46;
  8590            } else {
  8591             i43 = i44;
  8592             i12 = HEAP32[i55 + ((i65 | 24) + i54) >> 2] | 0;
  8593             i41 = HEAP32[i55 + (i54 + 12 + i65) >> 2] | 0;
  8594             do {
  8595              if ((i41 | 0) == (i43 | 0)) {
  8596               i40 = i65 | 16;
  8597               i6 = i55 + (i35 + i40) | 0;
  8598               i37 = HEAP32[i6 >> 2] | 0;
  8599               if ((i37 | 0) == 0) {
  8600                i4 = i55 + (i40 + i54) | 0;
  8601                i40 = HEAP32[i4 >> 2] | 0;
  8602                if ((i40 | 0) == 0) {
  8603                 i67 = 0;
  8604                 break;
  8605                } else {
  8606                 i68 = i40;
  8607                 i69 = i4;
  8609               } else {
  8610                i68 = i37;
  8611                i69 = i6;
  8613               while (1) {
  8614                i6 = i68 + 20 | 0;
  8615                i37 = HEAP32[i6 >> 2] | 0;
  8616                if ((i37 | 0) != 0) {
  8617                 i68 = i37;
  8618                 i69 = i6;
  8619                 continue;
  8621                i6 = i68 + 16 | 0;
  8622                i37 = HEAP32[i6 >> 2] | 0;
  8623                if ((i37 | 0) == 0) {
  8624                 break;
  8625                } else {
  8626                 i68 = i37;
  8627                 i69 = i6;
  8630               if (i69 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
  8631                _abort();
  8632                return 0;
  8633               } else {
  8634                HEAP32[i69 >> 2] = 0;
  8635                i67 = i68;
  8636                break;
  8638              } else {
  8639               i6 = HEAP32[i55 + ((i65 | 8) + i54) >> 2] | 0;
  8640               if (i6 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
  8641                _abort();
  8642                return 0;
  8644               i37 = i6 + 12 | 0;
  8645               if ((HEAP32[i37 >> 2] | 0) != (i43 | 0)) {
  8646                _abort();
  8647                return 0;
  8649               i4 = i41 + 8 | 0;
  8650               if ((HEAP32[i4 >> 2] | 0) == (i43 | 0)) {
  8651                HEAP32[i37 >> 2] = i41;
  8652                HEAP32[i4 >> 2] = i6;
  8653                i67 = i41;
  8654                break;
  8655               } else {
  8656                _abort();
  8657                return 0;
  8660             } while (0);
  8661             if ((i12 | 0) == 0) {
  8662              break;
  8664             i41 = i55 + (i54 + 28 + i65) | 0;
  8665             i46 = 12368 + (HEAP32[i41 >> 2] << 2) | 0;
  8666             do {
  8667              if ((i43 | 0) == (HEAP32[i46 >> 2] | 0)) {
  8668               HEAP32[i46 >> 2] = i67;
  8669               if ((i67 | 0) != 0) {
  8670                break;
  8672               HEAP32[3017] = HEAP32[3017] & ~(1 << HEAP32[i41 >> 2]);
  8673               break L355;
  8674              } else {
  8675               if (i12 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
  8676                _abort();
  8677                return 0;
  8679               i42 = i12 + 16 | 0;
  8680               if ((HEAP32[i42 >> 2] | 0) == (i43 | 0)) {
  8681                HEAP32[i42 >> 2] = i67;
  8682               } else {
  8683                HEAP32[i12 + 20 >> 2] = i67;
  8685               if ((i67 | 0) == 0) {
  8686                break L355;
  8689             } while (0);
  8690             if (i67 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
  8691              _abort();
  8692              return 0;
  8694             HEAP32[i67 + 24 >> 2] = i12;
  8695             i43 = i65 | 16;
  8696             i41 = HEAP32[i55 + (i43 + i54) >> 2] | 0;
  8697             do {
  8698              if ((i41 | 0) != 0) {
  8699               if (i41 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
  8700                _abort();
  8701                return 0;
  8702               } else {
  8703                HEAP32[i67 + 16 >> 2] = i41;
  8704                HEAP32[i41 + 24 >> 2] = i67;
  8705                break;
  8708             } while (0);
  8709             i41 = HEAP32[i55 + (i35 + i43) >> 2] | 0;
  8710             if ((i41 | 0) == 0) {
  8711              break;
  8713             if (i41 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
  8714              _abort();
  8715              return 0;
  8716             } else {
  8717              HEAP32[i67 + 20 >> 2] = i41;
  8718              HEAP32[i41 + 24 >> 2] = i67;
  8719              break;
  8722           } while (0);
  8723           i70 = i55 + ((i53 | i65) + i54) | 0;
  8724           i71 = i53 + i36 | 0;
  8725          } else {
  8726           i70 = i51;
  8727           i71 = i36;
  8729          i35 = i70 + 4 | 0;
  8730          HEAP32[i35 >> 2] = HEAP32[i35 >> 2] & -2;
  8731          HEAP32[i55 + (i48 + 4) >> 2] = i71 | 1;
  8732          HEAP32[i55 + (i71 + i48) >> 2] = i71;
  8733          i35 = i71 >>> 3;
  8734          if (i71 >>> 0 < 256) {
  8735           i47 = i35 << 1;
  8736           i49 = 12104 + (i47 << 2) | 0;
  8737           i41 = HEAP32[3016] | 0;
  8738           i12 = 1 << i35;
  8739           do {
  8740            if ((i41 & i12 | 0) == 0) {
  8741             HEAP32[3016] = i41 | i12;
  8742             i72 = i49;
  8743             i73 = 12104 + (i47 + 2 << 2) | 0;
  8744            } else {
  8745             i35 = 12104 + (i47 + 2 << 2) | 0;
  8746             i46 = HEAP32[i35 >> 2] | 0;
  8747             if (i46 >>> 0 >= (HEAP32[3020] | 0) >>> 0) {
  8748              i72 = i46;
  8749              i73 = i35;
  8750              break;
  8752             _abort();
  8753             return 0;
  8755           } while (0);
  8756           HEAP32[i73 >> 2] = i52;
  8757           HEAP32[i72 + 12 >> 2] = i52;
  8758           HEAP32[i55 + (i48 + 8) >> 2] = i72;
  8759           HEAP32[i55 + (i48 + 12) >> 2] = i49;
  8760           break;
  8762          i47 = i56;
  8763          i12 = i71 >>> 8;
  8764          do {
  8765           if ((i12 | 0) == 0) {
  8766            i74 = 0;
  8767           } else {
  8768            if (i71 >>> 0 > 16777215) {
  8769             i74 = 31;
  8770             break;
  8772            i41 = (i12 + 1048320 | 0) >>> 16 & 8;
  8773            i53 = i12 << i41;
  8774            i35 = (i53 + 520192 | 0) >>> 16 & 4;
  8775            i46 = i53 << i35;
  8776            i53 = (i46 + 245760 | 0) >>> 16 & 2;
  8777            i42 = 14 - (i35 | i41 | i53) + (i46 << i53 >>> 15) | 0;
  8778            i74 = i71 >>> ((i42 + 7 | 0) >>> 0) & 1 | i42 << 1;
  8780          } while (0);
  8781          i12 = 12368 + (i74 << 2) | 0;
  8782          HEAP32[i55 + (i48 + 28) >> 2] = i74;
  8783          HEAP32[i55 + (i48 + 20) >> 2] = 0;
  8784          HEAP32[i55 + (i48 + 16) >> 2] = 0;
  8785          i49 = HEAP32[3017] | 0;
  8786          i42 = 1 << i74;
  8787          if ((i49 & i42 | 0) == 0) {
  8788           HEAP32[3017] = i49 | i42;
  8789           HEAP32[i12 >> 2] = i47;
  8790           HEAP32[i55 + (i48 + 24) >> 2] = i12;
  8791           HEAP32[i55 + (i48 + 12) >> 2] = i47;
  8792           HEAP32[i55 + (i48 + 8) >> 2] = i47;
  8793           break;
  8795          if ((i74 | 0) == 31) {
  8796           i75 = 0;
  8797          } else {
  8798           i75 = 25 - (i74 >>> 1) | 0;
  8800          i42 = i71 << i75;
  8801          i49 = HEAP32[i12 >> 2] | 0;
  8802          while (1) {
  8803           if ((HEAP32[i49 + 4 >> 2] & -8 | 0) == (i71 | 0)) {
  8804            break;
  8806           i76 = i49 + 16 + (i42 >>> 31 << 2) | 0;
  8807           i12 = HEAP32[i76 >> 2] | 0;
  8808           if ((i12 | 0) == 0) {
  8809            i45 = 296;
  8810            break;
  8811           } else {
  8812            i42 = i42 << 1;
  8813            i49 = i12;
  8816          if ((i45 | 0) == 296) {
  8817           if (i76 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
  8818            _abort();
  8819            return 0;
  8820           } else {
  8821            HEAP32[i76 >> 2] = i47;
  8822            HEAP32[i55 + (i48 + 24) >> 2] = i49;
  8823            HEAP32[i55 + (i48 + 12) >> 2] = i47;
  8824            HEAP32[i55 + (i48 + 8) >> 2] = i47;
  8825            break;
  8828          i42 = i49 + 8 | 0;
  8829          i12 = HEAP32[i42 >> 2] | 0;
  8830          i53 = HEAP32[3020] | 0;
  8831          if (i49 >>> 0 < i53 >>> 0) {
  8832           _abort();
  8833           return 0;
  8835          if (i12 >>> 0 < i53 >>> 0) {
  8836           _abort();
  8837           return 0;
  8838          } else {
  8839           HEAP32[i12 + 12 >> 2] = i47;
  8840           HEAP32[i42 >> 2] = i47;
  8841           HEAP32[i55 + (i48 + 8) >> 2] = i12;
  8842           HEAP32[i55 + (i48 + 12) >> 2] = i49;
  8843           HEAP32[i55 + (i48 + 24) >> 2] = 0;
  8844           break;
  8847        } while (0);
  8848        i13 = i55 + (i64 | 8) | 0;
  8849        return i13 | 0;
  8851      } while (0);
  8852      i50 = i57;
  8853      i48 = 12512;
  8854      while (1) {
  8855       i77 = HEAP32[i48 >> 2] | 0;
  8856       if (i77 >>> 0 <= i50 >>> 0) {
  8857        i78 = HEAP32[i48 + 4 >> 2] | 0;
  8858        i79 = i77 + i78 | 0;
  8859        if (i79 >>> 0 > i50 >>> 0) {
  8860         break;
  8863       i48 = HEAP32[i48 + 8 >> 2] | 0;
  8865      i48 = i77 + (i78 - 39) | 0;
  8866      if ((i48 & 7 | 0) == 0) {
  8867       i80 = 0;
  8868      } else {
  8869       i80 = -i48 & 7;
  8871      i48 = i77 + (i78 - 47 + i80) | 0;
  8872      i56 = i48 >>> 0 < (i57 + 16 | 0) >>> 0 ? i50 : i48;
  8873      i48 = i56 + 8 | 0;
  8874      i52 = i55 + 8 | 0;
  8875      if ((i52 & 7 | 0) == 0) {
  8876       i81 = 0;
  8877      } else {
  8878       i81 = -i52 & 7;
  8880      i52 = i54 - 40 - i81 | 0;
  8881      HEAP32[3022] = i55 + i81;
  8882      HEAP32[3019] = i52;
  8883      HEAP32[i55 + (i81 + 4) >> 2] = i52 | 1;
  8884      HEAP32[i55 + (i54 - 36) >> 2] = 40;
  8885      HEAP32[3023] = HEAP32[2980];
  8886      HEAP32[i56 + 4 >> 2] = 27;
  8887      HEAP32[i48 >> 2] = HEAP32[3128];
  8888      HEAP32[i48 + 4 >> 2] = HEAP32[12516 >> 2];
  8889      HEAP32[i48 + 8 >> 2] = HEAP32[12520 >> 2];
  8890      HEAP32[i48 + 12 >> 2] = HEAP32[12524 >> 2];
  8891      HEAP32[3128] = i55;
  8892      HEAP32[3129] = i54;
  8893      HEAP32[3131] = 0;
  8894      HEAP32[3130] = i48;
  8895      i48 = i56 + 28 | 0;
  8896      HEAP32[i48 >> 2] = 7;
  8897      if ((i56 + 32 | 0) >>> 0 < i79 >>> 0) {
  8898       i52 = i48;
  8899       while (1) {
  8900        i48 = i52 + 4 | 0;
  8901        HEAP32[i48 >> 2] = 7;
  8902        if ((i52 + 8 | 0) >>> 0 < i79 >>> 0) {
  8903         i52 = i48;
  8904        } else {
  8905         break;
  8909      if ((i56 | 0) == (i50 | 0)) {
  8910       break;
  8912      i52 = i56 - i57 | 0;
  8913      i48 = i50 + (i52 + 4) | 0;
  8914      HEAP32[i48 >> 2] = HEAP32[i48 >> 2] & -2;
  8915      HEAP32[i57 + 4 >> 2] = i52 | 1;
  8916      HEAP32[i50 + i52 >> 2] = i52;
  8917      i48 = i52 >>> 3;
  8918      if (i52 >>> 0 < 256) {
  8919       i36 = i48 << 1;
  8920       i51 = 12104 + (i36 << 2) | 0;
  8921       i44 = HEAP32[3016] | 0;
  8922       i12 = 1 << i48;
  8923       do {
  8924        if ((i44 & i12 | 0) == 0) {
  8925         HEAP32[3016] = i44 | i12;
  8926         i82 = i51;
  8927         i83 = 12104 + (i36 + 2 << 2) | 0;
  8928        } else {
  8929         i48 = 12104 + (i36 + 2 << 2) | 0;
  8930         i42 = HEAP32[i48 >> 2] | 0;
  8931         if (i42 >>> 0 >= (HEAP32[3020] | 0) >>> 0) {
  8932          i82 = i42;
  8933          i83 = i48;
  8934          break;
  8936         _abort();
  8937         return 0;
  8939       } while (0);
  8940       HEAP32[i83 >> 2] = i57;
  8941       HEAP32[i82 + 12 >> 2] = i57;
  8942       HEAP32[i57 + 8 >> 2] = i82;
  8943       HEAP32[i57 + 12 >> 2] = i51;
  8944       break;
  8946      i36 = i57;
  8947      i12 = i52 >>> 8;
  8948      do {
  8949       if ((i12 | 0) == 0) {
  8950        i84 = 0;
  8951       } else {
  8952        if (i52 >>> 0 > 16777215) {
  8953         i84 = 31;
  8954         break;
  8956        i44 = (i12 + 1048320 | 0) >>> 16 & 8;
  8957        i50 = i12 << i44;
  8958        i56 = (i50 + 520192 | 0) >>> 16 & 4;
  8959        i48 = i50 << i56;
  8960        i50 = (i48 + 245760 | 0) >>> 16 & 2;
  8961        i42 = 14 - (i56 | i44 | i50) + (i48 << i50 >>> 15) | 0;
  8962        i84 = i52 >>> ((i42 + 7 | 0) >>> 0) & 1 | i42 << 1;
  8964      } while (0);
  8965      i12 = 12368 + (i84 << 2) | 0;
  8966      HEAP32[i57 + 28 >> 2] = i84;
  8967      HEAP32[i57 + 20 >> 2] = 0;
  8968      HEAP32[i57 + 16 >> 2] = 0;
  8969      i51 = HEAP32[3017] | 0;
  8970      i42 = 1 << i84;
  8971      if ((i51 & i42 | 0) == 0) {
  8972       HEAP32[3017] = i51 | i42;
  8973       HEAP32[i12 >> 2] = i36;
  8974       HEAP32[i57 + 24 >> 2] = i12;
  8975       HEAP32[i57 + 12 >> 2] = i57;
  8976       HEAP32[i57 + 8 >> 2] = i57;
  8977       break;
  8979      if ((i84 | 0) == 31) {
  8980       i85 = 0;
  8981      } else {
  8982       i85 = 25 - (i84 >>> 1) | 0;
  8984      i42 = i52 << i85;
  8985      i51 = HEAP32[i12 >> 2] | 0;
  8986      while (1) {
  8987       if ((HEAP32[i51 + 4 >> 2] & -8 | 0) == (i52 | 0)) {
  8988        break;
  8990       i86 = i51 + 16 + (i42 >>> 31 << 2) | 0;
  8991       i12 = HEAP32[i86 >> 2] | 0;
  8992       if ((i12 | 0) == 0) {
  8993        i45 = 331;
  8994        break;
  8995       } else {
  8996        i42 = i42 << 1;
  8997        i51 = i12;
  9000      if ((i45 | 0) == 331) {
  9001       if (i86 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
  9002        _abort();
  9003        return 0;
  9004       } else {
  9005        HEAP32[i86 >> 2] = i36;
  9006        HEAP32[i57 + 24 >> 2] = i51;
  9007        HEAP32[i57 + 12 >> 2] = i57;
  9008        HEAP32[i57 + 8 >> 2] = i57;
  9009        break;
  9012      i42 = i51 + 8 | 0;
  9013      i52 = HEAP32[i42 >> 2] | 0;
  9014      i12 = HEAP32[3020] | 0;
  9015      if (i51 >>> 0 < i12 >>> 0) {
  9016       _abort();
  9017       return 0;
  9019      if (i52 >>> 0 < i12 >>> 0) {
  9020       _abort();
  9021       return 0;
  9022      } else {
  9023       HEAP32[i52 + 12 >> 2] = i36;
  9024       HEAP32[i42 >> 2] = i36;
  9025       HEAP32[i57 + 8 >> 2] = i52;
  9026       HEAP32[i57 + 12 >> 2] = i51;
  9027       HEAP32[i57 + 24 >> 2] = 0;
  9028       break;
  9031    } while (0);
  9032    i57 = HEAP32[3019] | 0;
  9033    if (i57 >>> 0 <= i14 >>> 0) {
  9034     break;
  9036    i52 = i57 - i14 | 0;
  9037    HEAP32[3019] = i52;
  9038    i57 = HEAP32[3022] | 0;
  9039    i42 = i57;
  9040    HEAP32[3022] = i42 + i14;
  9041    HEAP32[i42 + (i14 + 4) >> 2] = i52 | 1;
  9042    HEAP32[i57 + 4 >> 2] = i14 | 3;
  9043    i13 = i57 + 8 | 0;
  9044    return i13 | 0;
  9046  } while (0);
  9047  HEAP32[(___errno_location() | 0) >> 2] = 12;
  9048  i13 = 0;
  9049  return i13 | 0;
  9051 function __Z8dBoxBox2RK9btVector3PKfS1_S1_S3_S1_RS_PfPiiP12dContactGeomiRN36btDiscreteCollisionDetectorInterface6ResultE(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13) {
  9052  i1 = i1 | 0;
  9053  i2 = i2 | 0;
  9054  i3 = i3 | 0;
  9055  i4 = i4 | 0;
  9056  i5 = i5 | 0;
  9057  i6 = i6 | 0;
  9058  i7 = i7 | 0;
  9059  i8 = i8 | 0;
  9060  i9 = i9 | 0;
  9061  i10 = i10 | 0;
  9062  i11 = i11 | 0;
  9063  i12 = i12 | 0;
  9064  i13 = i13 | 0;
  9065  var i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, d37 = 0.0, i38 = 0, d39 = 0.0, i40 = 0, d41 = 0.0, d42 = 0.0, d43 = 0.0, d44 = 0.0, d45 = 0.0, i46 = 0, d47 = 0.0, i48 = 0, d49 = 0.0, i50 = 0, d51 = 0.0, d52 = 0.0, i53 = 0, d54 = 0.0, i55 = 0, d56 = 0.0, i57 = 0, d58 = 0.0, d59 = 0.0, d60 = 0.0, i61 = 0, d62 = 0.0, d63 = 0.0, d64 = 0.0, d65 = 0.0, d66 = 0.0, d67 = 0.0, d68 = 0.0, d69 = 0.0, d70 = 0.0, d71 = 0.0, i72 = 0, d73 = 0.0, i74 = 0, d75 = 0.0, d76 = 0.0, i77 = 0, d78 = 0.0, i79 = 0, d80 = 0.0, i81 = 0, d82 = 0.0, d83 = 0.0, d84 = 0.0, d85 = 0.0, d86 = 0.0, d87 = 0.0, d88 = 0.0, d89 = 0.0, d90 = 0.0, d91 = 0.0, d92 = 0.0, d93 = 0.0, i94 = 0, i95 = 0, i96 = 0, i97 = 0, d98 = 0.0, i99 = 0, i100 = 0, i101 = 0, d102 = 0.0, i103 = 0, i104 = 0, i105 = 0, d106 = 0.0, i107 = 0, i108 = 0, i109 = 0, d110 = 0.0, i111 = 0, i112 = 0, i113 = 0, d114 = 0.0, i115 = 0, i116 = 0, i117 = 0, d118 = 0.0, i119 = 0, i120 = 0, i121 = 0, d122 = 0.0, d123 = 0.0, d124 = 0.0, d125 = 0.0, i126 = 0, i127 = 0, i128 = 0, d129 = 0.0, d130 = 0.0, d131 = 0.0, d132 = 0.0, i133 = 0, i134 = 0, i135 = 0, d136 = 0.0, d137 = 0.0, d138 = 0.0, d139 = 0.0, i140 = 0, i141 = 0, i142 = 0, d143 = 0.0, d144 = 0.0, d145 = 0.0, d146 = 0.0, i147 = 0, i148 = 0, i149 = 0, d150 = 0.0, d151 = 0.0, d152 = 0.0, d153 = 0.0, i154 = 0, i155 = 0, i156 = 0, d157 = 0.0, d158 = 0.0, d159 = 0.0, d160 = 0.0, i161 = 0, i162 = 0, i163 = 0, d164 = 0.0, d165 = 0.0, d166 = 0.0, d167 = 0.0, i168 = 0, i169 = 0, i170 = 0, d171 = 0.0, d172 = 0.0, d173 = 0.0, d174 = 0.0, i175 = 0, i176 = 0, i177 = 0, d178 = 0.0, d179 = 0.0, d180 = 0.0, d181 = 0.0, i182 = 0, i183 = 0, d184 = 0.0, d185 = 0.0, d186 = 0.0, d187 = 0.0, d188 = 0.0, d189 = 0.0, d190 = 0.0, d191 = 0.0, i192 = 0, i193 = 0, i194 = 0, i195 = 0, i196 = 0, i197 = 0, i198 = 0, i199 = 0, i200 = 0, d201 = 0.0, d202 = 0.0, d203 = 0.0, i204 = 0, i205 = 0, i206 = 0, i207 = 0, i208 = 0, i209 = 0, d210 = 0.0, d211 = 0.0, i212 = 0, i213 = 0, i214 = 0, i215 = 0, i216 = 0, i217 = 0, i218 = 0, i219 = 0, i220 = 0, i221 = 0, d222 = 0.0, d223 = 0.0, i224 = 0, i225 = 0, i226 = 0, i227 = 0, i228 = 0;
  9066  i12 = STACKTOP;
  9067  i11 = i4;
  9068  i14 = STACKTOP;
  9069  STACKTOP = STACKTOP + 64 | 0;
  9070  i15 = STACKTOP;
  9071  STACKTOP = STACKTOP + 12 | 0;
  9072  STACKTOP = STACKTOP + 7 >> 3 << 3;
  9073  i16 = STACKTOP;
  9074  STACKTOP = STACKTOP + 12 | 0;
  9075  STACKTOP = STACKTOP + 7 >> 3 << 3;
  9076  i17 = STACKTOP;
  9077  STACKTOP = STACKTOP + 16 | 0;
  9078  i18 = i17;
  9079  i19 = STACKTOP;
  9080  STACKTOP = STACKTOP + 16 | 0;
  9081  i20 = STACKTOP;
  9082  STACKTOP = STACKTOP + 16 | 0;
  9083  i21 = STACKTOP;
  9084  STACKTOP = STACKTOP + 32 | 0;
  9085  i22 = STACKTOP;
  9086  STACKTOP = STACKTOP + 8 | 0;
  9087  i23 = STACKTOP;
  9088  STACKTOP = STACKTOP + 64 | 0;
  9089  i24 = STACKTOP;
  9090  STACKTOP = STACKTOP + 96 | 0;
  9091  i25 = STACKTOP;
  9092  STACKTOP = STACKTOP + 32 | 0;
  9093  i26 = STACKTOP;
  9094  STACKTOP = STACKTOP + 16 | 0;
  9095  i27 = STACKTOP;
  9096  STACKTOP = STACKTOP + 16 | 0;
  9097  i28 = STACKTOP;
  9098  STACKTOP = STACKTOP + 16 | 0;
  9099  i29 = STACKTOP;
  9100  STACKTOP = STACKTOP + 16 | 0;
  9101  i30 = STACKTOP;
  9102  STACKTOP = STACKTOP + 32 | 0;
  9103  i31 = STACKTOP;
  9104  STACKTOP = STACKTOP + 16 | 0;
  9105  i32 = STACKTOP;
  9106  STACKTOP = STACKTOP + 16 | 0;
  9107  i33 = STACKTOP;
  9108  STACKTOP = STACKTOP + 16 | 0;
  9109  i34 = STACKTOP;
  9110  STACKTOP = STACKTOP + 16 | 0;
  9111  i35 = i4 | 0;
  9112  i36 = i1 | 0;
  9113  d37 = +HEAPF32[i35 >> 2] - +HEAPF32[i36 >> 2];
  9114  i38 = i1 + 4 | 0;
  9115  d39 = +HEAPF32[i4 + 4 >> 2] - +HEAPF32[i38 >> 2];
  9116  i40 = i1 + 8 | 0;
  9117  d41 = +HEAPF32[i4 + 8 >> 2] - +HEAPF32[i40 >> 2];
  9118  d42 = +HEAPF32[i2 >> 2];
  9119  i4 = i2 + 16 | 0;
  9120  d43 = +HEAPF32[i4 >> 2];
  9121  i1 = i2 + 32 | 0;
  9122  d44 = +HEAPF32[i1 >> 2];
  9123  d45 = d37 * d42 + d39 * d43 + d41 * d44;
  9124  i46 = i2 + 4 | 0;
  9125  d47 = +HEAPF32[i46 >> 2];
  9126  i48 = i2 + 20 | 0;
  9127  d49 = +HEAPF32[i48 >> 2];
  9128  i50 = i2 + 36 | 0;
  9129  d51 = +HEAPF32[i50 >> 2];
  9130  d52 = d37 * d47 + d39 * d49 + d41 * d51;
  9131  i53 = i2 + 8 | 0;
  9132  d54 = +HEAPF32[i53 >> 2];
  9133  i55 = i2 + 24 | 0;
  9134  d56 = +HEAPF32[i55 >> 2];
  9135  i57 = i2 + 40 | 0;
  9136  d58 = +HEAPF32[i57 >> 2];
  9137  d59 = d37 * d54 + d39 * d56 + d41 * d58;
  9138  d60 = +HEAPF32[i3 >> 2] * .5;
  9139  i61 = i15 | 0;
  9140  HEAPF32[i61 >> 2] = d60;
  9141  d62 = +HEAPF32[i3 + 4 >> 2] * .5;
  9142  HEAPF32[i15 + 4 >> 2] = d62;
  9143  d63 = +HEAPF32[i3 + 8 >> 2] * .5;
  9144  HEAPF32[i15 + 8 >> 2] = d63;
  9145  d64 = +HEAPF32[i6 >> 2] * .5;
  9146  i15 = i16 | 0;
  9147  HEAPF32[i15 >> 2] = d64;
  9148  d65 = +HEAPF32[i6 + 4 >> 2] * .5;
  9149  HEAPF32[i16 + 4 >> 2] = d65;
  9150  d66 = +HEAPF32[i6 + 8 >> 2] * .5;
  9151  HEAPF32[i16 + 8 >> 2] = d66;
  9152  d67 = +HEAPF32[i5 >> 2];
  9153  i16 = i5 + 16 | 0;
  9154  d68 = +HEAPF32[i16 >> 2];
  9155  i6 = i5 + 32 | 0;
  9156  d69 = +HEAPF32[i6 >> 2];
  9157  d70 = d42 * d67 + d43 * d68 + d44 * d69;
  9158  i3 = i5 + 4 | 0;
  9159  d71 = +HEAPF32[i3 >> 2];
  9160  i72 = i5 + 20 | 0;
  9161  d73 = +HEAPF32[i72 >> 2];
  9162  i74 = i5 + 36 | 0;
  9163  d75 = +HEAPF32[i74 >> 2];
  9164  d76 = d42 * d71 + d43 * d73 + d44 * d75;
  9165  i77 = i5 + 8 | 0;
  9166  d78 = +HEAPF32[i77 >> 2];
  9167  i79 = i5 + 24 | 0;
  9168  d80 = +HEAPF32[i79 >> 2];
  9169  i81 = i5 + 40 | 0;
  9170  d82 = +HEAPF32[i81 >> 2];
  9171  d83 = d42 * d78 + d43 * d80 + d44 * d82;
  9172  d44 = d47 * d67 + d49 * d68 + d51 * d69;
  9173  d43 = d47 * d71 + d49 * d73 + d51 * d75;
  9174  d84 = d47 * d78 + d49 * d80 + d51 * d82;
  9175  d51 = d54 * d67 + d56 * d68 + d58 * d69;
  9176  d49 = d54 * d71 + d56 * d73 + d58 * d75;
  9177  d85 = d54 * d78 + d56 * d80 + d58 * d82;
  9178  d58 = +Math_abs(+d70);
  9179  d56 = +Math_abs(+d76);
  9180  d86 = +Math_abs(+d83);
  9181  d87 = +Math_abs(+d44);
  9182  d88 = +Math_abs(+d43);
  9183  d89 = +Math_abs(+d84);
  9184  d90 = +Math_abs(+d51);
  9185  d91 = +Math_abs(+d49);
  9186  d92 = +Math_abs(+d85);
  9187  d93 = +Math_abs(+d45) - (d66 * d86 + (d60 + d64 * d58 + d65 * d56));
  9188  if (d93 > 0.0) {
  9189   i94 = 0;
  9190   STACKTOP = i12;
  9191   return i94 | 0;
  9193  if (d93 > -3.4028234663852886e+38) {
  9194   i95 = i2;
  9195   i96 = 1;
  9196   i97 = d45 < 0.0 | 0;
  9197   d98 = d93;
  9198  } else {
  9199   i95 = 0;
  9200   i96 = 0;
  9201   i97 = 0;
  9202   d98 = -3.4028234663852886e+38;
  9204  d93 = +Math_abs(+d52) - (d62 + d64 * d87 + d65 * d88 + d66 * d89);
  9205  if (d93 > 0.0) {
  9206   i94 = 0;
  9207   STACKTOP = i12;
  9208   return i94 | 0;
  9210  if (d93 > d98) {
  9211   i99 = i46;
  9212   i100 = 2;
  9213   i101 = d52 < 0.0 | 0;
  9214   d102 = d93;
  9215  } else {
  9216   i99 = i95;
  9217   i100 = i96;
  9218   i101 = i97;
  9219   d102 = d98;
  9221  d98 = +Math_abs(+d59) - (d63 + d64 * d90 + d65 * d91 + d66 * d92);
  9222  if (d98 > 0.0) {
  9223   i94 = 0;
  9224   STACKTOP = i12;
  9225   return i94 | 0;
  9227  if (d98 > d102) {
  9228   i103 = i53;
  9229   i104 = 3;
  9230   i105 = d59 < 0.0 | 0;
  9231   d106 = d98;
  9232  } else {
  9233   i103 = i99;
  9234   i104 = i100;
  9235   i105 = i101;
  9236   d106 = d102;
  9238  d102 = d37 * d67 + d39 * d68 + d41 * d69;
  9239  d69 = +Math_abs(+d102) - (d64 + (d60 * d58 + d62 * d87 + d63 * d90));
  9240  if (d69 > 0.0) {
  9241   i94 = 0;
  9242   STACKTOP = i12;
  9243   return i94 | 0;
  9245  if (d69 > d106) {
  9246   i107 = i5;
  9247   i108 = 4;
  9248   i109 = d102 < 0.0 | 0;
  9249   d110 = d69;
  9250  } else {
  9251   i107 = i103;
  9252   i108 = i104;
  9253   i109 = i105;
  9254   d110 = d106;
  9256  d106 = d37 * d71 + d39 * d73 + d41 * d75;
  9257  d75 = +Math_abs(+d106) - (d65 + (d60 * d56 + d62 * d88 + d63 * d91));
  9258  if (d75 > 0.0) {
  9259   i94 = 0;
  9260   STACKTOP = i12;
  9261   return i94 | 0;
  9263  if (d75 > d110) {
  9264   i111 = i3;
  9265   i112 = 5;
  9266   i113 = d106 < 0.0 | 0;
  9267   d114 = d75;
  9268  } else {
  9269   i111 = i107;
  9270   i112 = i108;
  9271   i113 = i109;
  9272   d114 = d110;
  9274  d110 = d37 * d78 + d39 * d80 + d41 * d82;
  9275  d82 = +Math_abs(+d110) - (d66 + (d60 * d86 + d62 * d89 + d63 * d92));
  9276  if (d82 > 0.0) {
  9277   i94 = 0;
  9278   STACKTOP = i12;
  9279   return i94 | 0;
  9281  if (d82 > d114) {
  9282   i115 = i77;
  9283   i116 = 6;
  9284   i117 = d110 < 0.0 | 0;
  9285   d118 = d82;
  9286  } else {
  9287   i115 = i111;
  9288   i116 = i112;
  9289   i117 = i113;
  9290   d118 = d114;
  9292  d114 = d58 + 9999999747378752.0e-21;
  9293  d58 = d56 + 9999999747378752.0e-21;
  9294  d56 = d86 + 9999999747378752.0e-21;
  9295  d86 = d87 + 9999999747378752.0e-21;
  9296  d87 = d88 + 9999999747378752.0e-21;
  9297  d88 = d89 + 9999999747378752.0e-21;
  9298  d89 = d90 + 9999999747378752.0e-21;
  9299  d90 = d91 + 9999999747378752.0e-21;
  9300  d91 = d92 + 9999999747378752.0e-21;
  9301  d92 = d59 * d44 - d52 * d51;
  9302  d82 = +Math_abs(+d92) - (d66 * d58 + (d65 * d56 + (d63 * d86 + d62 * d89)));
  9303  if (d82 > 1.1920928955078125e-7) {
  9304   i94 = 0;
  9305   STACKTOP = i12;
  9306   return i94 | 0;
  9308  d110 = -0.0 - d51;
  9309  d41 = d51 * d51 + 0.0;
  9310  d80 = d44 * d44;
  9311  d39 = +Math_sqrt(+(d80 + d41));
  9312  do {
  9313   if (d39 > 1.1920928955078125e-7) {
  9314    d78 = d82 / d39;
  9315    if (d78 * 1.0499999523162842 <= d118) {
  9316     i119 = i115;
  9317     i120 = i116;
  9318     i121 = i117;
  9319     d122 = d118;
  9320     d123 = 0.0;
  9321     d124 = 0.0;
  9322     d125 = 0.0;
  9323     break;
  9325    i119 = 0;
  9326    i120 = 7;
  9327    i121 = d92 < 0.0 | 0;
  9328    d122 = d78;
  9329    d123 = 0.0 / d39;
  9330    d124 = d110 / d39;
  9331    d125 = d44 / d39;
  9332   } else {
  9333    i119 = i115;
  9334    i120 = i116;
  9335    i121 = i117;
  9336    d122 = d118;
  9337    d123 = 0.0;
  9338    d124 = 0.0;
  9339    d125 = 0.0;
  9341  } while (0);
  9342  d118 = d59 * d43 - d52 * d49;
  9343  d39 = +Math_abs(+d118) - (d66 * d114 + (d64 * d56 + (d63 * d87 + d62 * d90)));
  9344  if (d39 > 1.1920928955078125e-7) {
  9345   i94 = 0;
  9346   STACKTOP = i12;
  9347   return i94 | 0;
  9349  d110 = -0.0 - d49;
  9350  d92 = d49 * d49 + 0.0;
  9351  d82 = d43 * d43;
  9352  d78 = +Math_sqrt(+(d82 + d92));
  9353  do {
  9354   if (d78 > 1.1920928955078125e-7) {
  9355    d37 = d39 / d78;
  9356    if (d37 * 1.0499999523162842 <= d122) {
  9357     i126 = i119;
  9358     i127 = i120;
  9359     i128 = i121;
  9360     d129 = d122;
  9361     d130 = d123;
  9362     d131 = d124;
  9363     d132 = d125;
  9364     break;
  9366    i126 = 0;
  9367    i127 = 8;
  9368    i128 = d118 < 0.0 | 0;
  9369    d129 = d37;
  9370    d130 = 0.0 / d78;
  9371    d131 = d110 / d78;
  9372    d132 = d43 / d78;
  9373   } else {
  9374    i126 = i119;
  9375    i127 = i120;
  9376    i128 = i121;
  9377    d129 = d122;
  9378    d130 = d123;
  9379    d131 = d124;
  9380    d132 = d125;
  9382  } while (0);
  9383  d125 = d59 * d84 - d52 * d85;
  9384  d124 = +Math_abs(+d125) - (d65 * d114 + (d64 * d58 + (d63 * d88 + d62 * d91)));
  9385  if (d124 > 1.1920928955078125e-7) {
  9386   i94 = 0;
  9387   STACKTOP = i12;
  9388   return i94 | 0;
  9390  d123 = -0.0 - d85;
  9391  d122 = d85 * d85 + 0.0;
  9392  d78 = d84 * d84;
  9393  d110 = +Math_sqrt(+(d78 + d122));
  9394  do {
  9395   if (d110 > 1.1920928955078125e-7) {
  9396    d118 = d124 / d110;
  9397    if (d118 * 1.0499999523162842 <= d129) {
  9398     i133 = i126;
  9399     i134 = i127;
  9400     i135 = i128;
  9401     d136 = d129;
  9402     d137 = d130;
  9403     d138 = d131;
  9404     d139 = d132;
  9405     break;
  9407    i133 = 0;
  9408    i134 = 9;
  9409    i135 = d125 < 0.0 | 0;
  9410    d136 = d118;
  9411    d137 = 0.0 / d110;
  9412    d138 = d123 / d110;
  9413    d139 = d84 / d110;
  9414   } else {
  9415    i133 = i126;
  9416    i134 = i127;
  9417    i135 = i128;
  9418    d136 = d129;
  9419    d137 = d130;
  9420    d138 = d131;
  9421    d139 = d132;
  9423  } while (0);
  9424  d132 = d45 * d51 - d59 * d70;
  9425  d131 = +Math_abs(+d132) - (d66 * d87 + (d65 * d88 + (d63 * d114 + d60 * d89)));
  9426  if (d131 > 1.1920928955078125e-7) {
  9427   i94 = 0;
  9428   STACKTOP = i12;
  9429   return i94 | 0;
  9431  d130 = -0.0 - d70;
  9432  d129 = d70 * d70;
  9433  d110 = +Math_sqrt(+(d129 + d41));
  9434  do {
  9435   if (d110 > 1.1920928955078125e-7) {
  9436    d41 = d131 / d110;
  9437    if (d41 * 1.0499999523162842 <= d136) {
  9438     i140 = i133;
  9439     i141 = i134;
  9440     i142 = i135;
  9441     d143 = d136;
  9442     d144 = d137;
  9443     d145 = d138;
  9444     d146 = d139;
  9445     break;
  9447    i140 = 0;
  9448    i141 = 10;
  9449    i142 = d132 < 0.0 | 0;
  9450    d143 = d41;
  9451    d144 = d51 / d110;
  9452    d145 = 0.0 / d110;
  9453    d146 = d130 / d110;
  9454   } else {
  9455    i140 = i133;
  9456    i141 = i134;
  9457    i142 = i135;
  9458    d143 = d136;
  9459    d144 = d137;
  9460    d145 = d138;
  9461    d146 = d139;
  9463  } while (0);
  9464  d139 = d45 * d49 - d59 * d76;
  9465  d138 = +Math_abs(+d139) - (d66 * d86 + (d64 * d88 + (d63 * d58 + d60 * d90)));
  9466  if (d138 > 1.1920928955078125e-7) {
  9467   i94 = 0;
  9468   STACKTOP = i12;
  9469   return i94 | 0;
  9471  d137 = -0.0 - d76;
  9472  d136 = d76 * d76;
  9473  d110 = +Math_sqrt(+(d136 + d92));
  9474  do {
  9475   if (d110 > 1.1920928955078125e-7) {
  9476    d92 = d138 / d110;
  9477    if (d92 * 1.0499999523162842 <= d143) {
  9478     i147 = i140;
  9479     i148 = i141;
  9480     i149 = i142;
  9481     d150 = d143;
  9482     d151 = d144;
  9483     d152 = d145;
  9484     d153 = d146;
  9485     break;
  9487    i147 = 0;
  9488    i148 = 11;
  9489    i149 = d139 < 0.0 | 0;
  9490    d150 = d92;
  9491    d151 = d49 / d110;
  9492    d152 = 0.0 / d110;
  9493    d153 = d137 / d110;
  9494   } else {
  9495    i147 = i140;
  9496    i148 = i141;
  9497    i149 = i142;
  9498    d150 = d143;
  9499    d151 = d144;
  9500    d152 = d145;
  9501    d153 = d146;
  9503  } while (0);
  9504  d146 = d45 * d85 - d59 * d83;
  9505  d59 = +Math_abs(+d146) - (d65 * d86 + (d64 * d87 + (d63 * d56 + d60 * d91)));
  9506  if (d59 > 1.1920928955078125e-7) {
  9507   i94 = 0;
  9508   STACKTOP = i12;
  9509   return i94 | 0;
  9511  d145 = -0.0 - d83;
  9512  d144 = d83 * d83;
  9513  d143 = +Math_sqrt(+(d144 + d122));
  9514  do {
  9515   if (d143 > 1.1920928955078125e-7) {
  9516    d122 = d59 / d143;
  9517    if (d122 * 1.0499999523162842 <= d150) {
  9518     i154 = i147;
  9519     i155 = i148;
  9520     i156 = i149;
  9521     d157 = d150;
  9522     d158 = d151;
  9523     d159 = d152;
  9524     d160 = d153;
  9525     break;
  9527    i154 = 0;
  9528    i155 = 12;
  9529    i156 = d146 < 0.0 | 0;
  9530    d157 = d122;
  9531    d158 = d85 / d143;
  9532    d159 = 0.0 / d143;
  9533    d160 = d145 / d143;
  9534   } else {
  9535    i154 = i147;
  9536    i155 = i148;
  9537    i156 = i149;
  9538    d157 = d150;
  9539    d158 = d151;
  9540    d159 = d152;
  9541    d160 = d153;
  9543  } while (0);
  9544  d153 = d52 * d70 - d45 * d44;
  9545  d152 = +Math_abs(+d153) - (d66 * d90 + (d62 * d114 + d60 * d86 + d65 * d91));
  9546  if (d152 > 1.1920928955078125e-7) {
  9547   i94 = 0;
  9548   STACKTOP = i12;
  9549   return i94 | 0;
  9551  d86 = -0.0 - d44;
  9552  d44 = +Math_sqrt(+(d129 + d80 + 0.0));
  9553  do {
  9554   if (d44 > 1.1920928955078125e-7) {
  9555    d80 = d152 / d44;
  9556    if (d80 * 1.0499999523162842 <= d157) {
  9557     i161 = i154;
  9558     i162 = i155;
  9559     i163 = i156;
  9560     d164 = d157;
  9561     d165 = d158;
  9562     d166 = d159;
  9563     d167 = d160;
  9564     break;
  9566    i161 = 0;
  9567    i162 = 13;
  9568    i163 = d153 < 0.0 | 0;
  9569    d164 = d80;
  9570    d165 = d86 / d44;
  9571    d166 = d70 / d44;
  9572    d167 = 0.0 / d44;
  9573   } else {
  9574    i161 = i154;
  9575    i162 = i155;
  9576    i163 = i156;
  9577    d164 = d157;
  9578    d165 = d158;
  9579    d166 = d159;
  9580    d167 = d160;
  9582  } while (0);
  9583  d160 = d52 * d76 - d45 * d43;
  9584  d159 = +Math_abs(+d160) - (d66 * d89 + (d62 * d58 + d60 * d87 + d64 * d91));
  9585  if (d159 > 1.1920928955078125e-7) {
  9586   i94 = 0;
  9587   STACKTOP = i12;
  9588   return i94 | 0;
  9590  d91 = -0.0 - d43;
  9591  d43 = +Math_sqrt(+(d136 + d82 + 0.0));
  9592  do {
  9593   if (d43 > 1.1920928955078125e-7) {
  9594    d82 = d159 / d43;
  9595    if (d82 * 1.0499999523162842 <= d164) {
  9596     i168 = i161;
  9597     i169 = i162;
  9598     i170 = i163;
  9599     d171 = d164;
  9600     d172 = d165;
  9601     d173 = d166;
  9602     d174 = d167;
  9603     break;
  9605    i168 = 0;
  9606    i169 = 14;
  9607    i170 = d160 < 0.0 | 0;
  9608    d171 = d82;
  9609    d172 = d91 / d43;
  9610    d173 = d76 / d43;
  9611    d174 = 0.0 / d43;
  9612   } else {
  9613    i168 = i161;
  9614    i169 = i162;
  9615    i170 = i163;
  9616    d171 = d164;
  9617    d172 = d165;
  9618    d173 = d166;
  9619    d174 = d167;
  9621  } while (0);
  9622  d167 = d52 * d83 - d45 * d84;
  9623  d45 = +Math_abs(+d167) - (d65 * d89 + (d62 * d56 + d60 * d88 + d64 * d90));
  9624  if (d45 > 1.1920928955078125e-7) {
  9625   i94 = 0;
  9626   STACKTOP = i12;
  9627   return i94 | 0;
  9629  d90 = -0.0 - d84;
  9630  d84 = +Math_sqrt(+(d144 + d78 + 0.0));
  9631  do {
  9632   if (d84 > 1.1920928955078125e-7) {
  9633    d78 = d45 / d84;
  9634    if (d78 * 1.0499999523162842 <= d171) {
  9635     i175 = 899;
  9636     break;
  9638    i176 = 15;
  9639    i177 = d167 < 0.0 | 0;
  9640    d178 = d78;
  9641    d179 = d90 / d84;
  9642    d180 = d83 / d84;
  9643    d181 = 0.0 / d84;
  9644    i175 = 902;
  9645   } else {
  9646    i175 = 899;
  9648  } while (0);
  9649  do {
  9650   if ((i175 | 0) == 899) {
  9651    if ((i169 | 0) == 0) {
  9652     i94 = 0;
  9653     STACKTOP = i12;
  9654     return i94 | 0;
  9656    if ((i168 | 0) == 0) {
  9657     i176 = i169;
  9658     i177 = i170;
  9659     d178 = d171;
  9660     d179 = d172;
  9661     d180 = d173;
  9662     d181 = d174;
  9663     i175 = 902;
  9664     break;
  9666    d84 = +HEAPF32[i168 >> 2];
  9667    HEAPF32[i7 >> 2] = d84;
  9668    d83 = +HEAPF32[i168 + 16 >> 2];
  9669    HEAPF32[i7 + 4 >> 2] = d83;
  9670    d90 = +HEAPF32[i168 + 32 >> 2];
  9671    HEAPF32[i7 + 8 >> 2] = d90;
  9672    i182 = i169;
  9673    i183 = i170;
  9674    d184 = d171;
  9675    d185 = d84;
  9676    d186 = d83;
  9677    d187 = d90;
  9679  } while (0);
  9680  if ((i175 | 0) == 902) {
  9681   d171 = d54 * d181 + (d47 * d180 + d42 * d179);
  9682   HEAPF32[i7 >> 2] = d171;
  9683   d42 = d179 * +HEAPF32[i4 >> 2] + d180 * +HEAPF32[i48 >> 2] + d181 * +HEAPF32[i55 >> 2];
  9684   HEAPF32[i7 + 4 >> 2] = d42;
  9685   d47 = d179 * +HEAPF32[i1 >> 2] + d180 * +HEAPF32[i50 >> 2] + d181 * +HEAPF32[i57 >> 2];
  9686   HEAPF32[i7 + 8 >> 2] = d47;
  9687   i182 = i176;
  9688   i183 = i177;
  9689   d184 = d178;
  9690   d185 = d171;
  9691   d186 = d42;
  9692   d187 = d47;
  9694  if ((i183 | 0) != 0) {
  9695   HEAPF32[i7 >> 2] = -0.0 - d185;
  9696   HEAPF32[i7 + 4 >> 2] = -0.0 - d186;
  9697   HEAPF32[i7 + 8 >> 2] = -0.0 - d187;
  9699  HEAPF32[i8 >> 2] = -0.0 - d184;
  9700  if ((i182 | 0) > 6) {
  9701   d187 = +HEAPF32[i7 >> 2];
  9702   d186 = +HEAPF32[i7 + 4 >> 2];
  9703   d185 = +HEAPF32[i7 + 8 >> 2];
  9704   d47 = +HEAPF32[i2 >> 2];
  9705   d42 = +HEAPF32[i4 >> 2];
  9706   d171 = +HEAPF32[i1 >> 2];
  9707   d178 = d60 * (d187 * d47 + d186 * d42 + d185 * d171 > 0.0 ? 1.0 : -1.0);
  9708   d60 = +HEAPF32[i46 >> 2];
  9709   d181 = +HEAPF32[i48 >> 2];
  9710   d180 = +HEAPF32[i50 >> 2];
  9711   d179 = d62 * (d187 * d60 + d186 * d181 + d185 * d180 > 0.0 ? 1.0 : -1.0);
  9712   d62 = +HEAPF32[i53 >> 2];
  9713   d54 = +HEAPF32[i55 >> 2];
  9714   d174 = +HEAPF32[i57 >> 2];
  9715   d173 = d63 * (d187 * d62 + d186 * d54 + d185 * d174 > 0.0 ? 1.0 : -1.0);
  9716   d63 = +HEAPF32[i36 >> 2] + d47 * d178 + d60 * d179 + d62 * d173;
  9717   d62 = +HEAPF32[i38 >> 2] + d42 * d178 + d181 * d179 + d54 * d173;
  9718   d54 = +HEAPF32[i40 >> 2] + d171 * d178 + d180 * d179 + d174 * d173;
  9719   HEAP32[i18 >> 2] = HEAP32[i11 >> 2];
  9720   HEAP32[i18 + 4 >> 2] = HEAP32[i11 + 4 >> 2];
  9721   HEAP32[i18 + 8 >> 2] = HEAP32[i11 + 8 >> 2];
  9722   d173 = +HEAPF32[i5 >> 2];
  9723   d174 = +HEAPF32[i16 >> 2];
  9724   d179 = +HEAPF32[i6 >> 2];
  9725   d180 = d64 * (d187 * d173 + d186 * d174 + d185 * d179 > 0.0 ? -1.0 : 1.0);
  9726   i6 = i17 | 0;
  9727   i16 = i17 + 4 | 0;
  9728   i11 = i17 + 8 | 0;
  9729   d64 = +HEAPF32[i3 >> 2];
  9730   d178 = +HEAPF32[i72 >> 2];
  9731   d171 = +HEAPF32[i74 >> 2];
  9732   d181 = d65 * (d187 * d64 + d186 * d178 + d185 * d171 > 0.0 ? -1.0 : 1.0);
  9733   d65 = +HEAPF32[i16 >> 2] + d174 * d180 + d178 * d181;
  9734   d178 = +HEAPF32[i11 >> 2] + d179 * d180 + d171 * d181;
  9735   d171 = +HEAPF32[i77 >> 2];
  9736   d179 = +HEAPF32[i79 >> 2];
  9737   d174 = +HEAPF32[i81 >> 2];
  9738   d42 = d66 * (d187 * d171 + d186 * d179 + d185 * d174 > 0.0 ? -1.0 : 1.0);
  9739   d66 = +HEAPF32[i6 >> 2] + d173 * d180 + d64 * d181 + d171 * d42;
  9740   HEAPF32[i6 >> 2] = d66;
  9741   d171 = d65 + d179 * d42;
  9742   HEAPF32[i16 >> 2] = d171;
  9743   d179 = d178 + d174 * d42;
  9744   HEAPF32[i11 >> 2] = d179;
  9745   i81 = i182 - 7 | 0;
  9746   i79 = (i81 | 0) / 3 | 0;
  9747   d42 = +HEAPF32[i2 + (i79 << 2) >> 2];
  9748   d174 = +HEAPF32[i2 + (i79 + 4 << 2) >> 2];
  9749   d178 = +HEAPF32[i2 + (i79 + 8 << 2) >> 2];
  9750   i79 = (i81 | 0) % 3 | 0;
  9751   d65 = +HEAPF32[i5 + (i79 << 2) >> 2];
  9752   d181 = +HEAPF32[i5 + (i79 + 4 << 2) >> 2];
  9753   d64 = +HEAPF32[i5 + (i79 + 8 << 2) >> 2];
  9754   d180 = d66 - d63;
  9755   d63 = d171 - d62;
  9756   d62 = d179 - d54;
  9757   d54 = d42 * d65 + d174 * d181 + d178 * d64;
  9758   d173 = 1.0 - d54 * d54;
  9759   if (d173 > 9999999747378752.0e-20) {
  9760    d188 = (d54 * (d178 * d62 + (d42 * d180 + d174 * d63)) - (d62 * d64 + (d65 * d180 + d181 * d63))) * (1.0 / d173);
  9761   } else {
  9762    d188 = 0.0;
  9764   HEAPF32[i6 >> 2] = d66 + d65 * d188;
  9765   HEAPF32[i16 >> 2] = d171 + d181 * d188;
  9766   HEAPF32[i11 >> 2] = d179 + d64 * d188;
  9767   i11 = HEAP32[(HEAP32[i13 >> 2] | 0) + 16 >> 2] | 0;
  9768   HEAPF32[i19 >> 2] = -0.0 - d187;
  9769   HEAPF32[i19 + 4 >> 2] = -0.0 - d186;
  9770   HEAPF32[i19 + 8 >> 2] = -0.0 - d185;
  9771   HEAPF32[i19 + 12 >> 2] = 0.0;
  9772   FUNCTION_TABLE_viiif[i11 & 15](i13, i19, i17, d184);
  9773   HEAP32[i9 >> 2] = i182;
  9774   i94 = 1;
  9775   STACKTOP = i12;
  9776   return i94 | 0;
  9778  i17 = (i182 | 0) < 4;
  9779  i19 = i7 | 0;
  9780  d184 = +HEAPF32[i19 >> 2];
  9781  if (i17) {
  9782   d189 = d184;
  9783   d190 = +HEAPF32[i7 + 4 >> 2];
  9784   d191 = +HEAPF32[i7 + 8 >> 2];
  9785   i192 = i2;
  9786   i193 = i5;
  9787   i194 = i36;
  9788   i195 = i35;
  9789   i196 = i61;
  9790   i197 = i15;
  9791  } else {
  9792   d189 = -0.0 - d184;
  9793   d190 = -0.0 - +HEAPF32[i7 + 4 >> 2];
  9794   d191 = -0.0 - +HEAPF32[i7 + 8 >> 2];
  9795   i192 = i5;
  9796   i193 = i2;
  9797   i194 = i35;
  9798   i195 = i36;
  9799   i196 = i15;
  9800   i197 = i61;
  9802  d184 = d189 * +HEAPF32[i193 >> 2] + d190 * +HEAPF32[i193 + 16 >> 2] + d191 * +HEAPF32[i193 + 32 >> 2];
  9803  HEAPF32[i20 >> 2] = d184;
  9804  d185 = d189 * +HEAPF32[i193 + 4 >> 2] + d190 * +HEAPF32[i193 + 20 >> 2] + d191 * +HEAPF32[i193 + 36 >> 2];
  9805  HEAPF32[i20 + 4 >> 2] = d185;
  9806  d186 = d189 * +HEAPF32[i193 + 8 >> 2] + d190 * +HEAPF32[i193 + 24 >> 2] + d191 * +HEAPF32[i193 + 40 >> 2];
  9807  HEAPF32[i20 + 8 >> 2] = d186;
  9808  d187 = +Math_abs(+d184);
  9809  d184 = +Math_abs(+d185);
  9810  d185 = +Math_abs(+d186);
  9811  if (d184 > d187) {
  9812   i61 = d184 > d185;
  9813   i198 = 0;
  9814   i199 = i61 ? 1 : 2;
  9815   i200 = i61;
  9816  } else {
  9817   i61 = d187 > d185;
  9818   i198 = i61 & 1;
  9819   i199 = i61 ? 0 : 2;
  9820   i200 = i61;
  9822  i61 = i200 ? 2 : 1;
  9823  d185 = +HEAPF32[i197 + (i199 << 2) >> 2];
  9824  d187 = +HEAPF32[i195 >> 2] - +HEAPF32[i194 >> 2];
  9825  d184 = d185 * +HEAPF32[i193 + (i199 << 2) >> 2];
  9826  if (+HEAPF32[i20 + (i199 << 2) >> 2] < 0.0) {
  9827   d201 = d187 + d184;
  9828   d202 = +HEAPF32[i195 + 4 >> 2] - +HEAPF32[i194 + 4 >> 2] + d185 * +HEAPF32[i193 + ((i199 | 4) << 2) >> 2];
  9829   d203 = +HEAPF32[i195 + 8 >> 2] - +HEAPF32[i194 + 8 >> 2] + d185 * +HEAPF32[i193 + ((i199 | 8) << 2) >> 2];
  9830  } else {
  9831   d201 = d187 - d184;
  9832   d202 = +HEAPF32[i195 + 4 >> 2] - +HEAPF32[i194 + 4 >> 2] - d185 * +HEAPF32[i193 + ((i199 | 4) << 2) >> 2];
  9833   d203 = +HEAPF32[i195 + 8 >> 2] - +HEAPF32[i194 + 8 >> 2] - d185 * +HEAPF32[i193 + ((i199 | 8) << 2) >> 2];
  9835  i199 = (i17 ? -1 : -4) + i182 | 0;
  9836  if ((i199 | 0) == 1) {
  9837   i204 = 2;
  9838   i205 = 0;
  9839  } else if ((i199 | 0) == 0) {
  9840   i204 = 2;
  9841   i205 = 1;
  9842  } else {
  9843   i204 = 1;
  9844   i205 = 0;
  9846  d185 = +HEAPF32[i192 + (i205 << 2) >> 2];
  9847  d184 = +HEAPF32[i192 + ((i205 | 4) << 2) >> 2];
  9848  d187 = +HEAPF32[i192 + ((i205 | 8) << 2) >> 2];
  9849  d186 = d201 * d185 + d202 * d184 + d203 * d187;
  9850  d188 = +HEAPF32[i192 + (i204 << 2) >> 2];
  9851  d64 = +HEAPF32[i192 + ((i204 | 4) << 2) >> 2];
  9852  d179 = +HEAPF32[i192 + ((i204 | 8) << 2) >> 2];
  9853  d181 = d201 * d188 + d202 * d64 + d203 * d179;
  9854  i192 = i193 + (i198 << 2) | 0;
  9855  d171 = +HEAPF32[i192 >> 2];
  9856  i195 = i193 + ((i198 | 4) << 2) | 0;
  9857  d65 = +HEAPF32[i195 >> 2];
  9858  i20 = i193 + ((i198 | 8) << 2) | 0;
  9859  d66 = +HEAPF32[i20 >> 2];
  9860  d173 = d185 * d171 + d184 * d65 + d187 * d66;
  9861  i200 = i193 + (i61 << 2) | 0;
  9862  d63 = +HEAPF32[i200 >> 2];
  9863  i15 = i193 + ((i61 | 4) << 2) | 0;
  9864  d180 = +HEAPF32[i15 >> 2];
  9865  i36 = i193 + ((i61 | 8) << 2) | 0;
  9866  d62 = +HEAPF32[i36 >> 2];
  9867  d174 = d185 * d63 + d184 * d180 + d187 * d62;
  9868  d187 = d188 * d171 + d64 * d65 + d179 * d66;
  9869  d66 = d188 * d63 + d64 * d180 + d179 * d62;
  9870  d62 = +HEAPF32[i197 + (i198 << 2) >> 2];
  9871  d179 = d173 * d62;
  9872  d180 = d187 * d62;
  9873  d62 = +HEAPF32[i197 + (i61 << 2) >> 2];
  9874  d64 = d174 * d62;
  9875  d63 = d66 * d62;
  9876  d62 = d186 - d179;
  9877  i61 = i21 | 0;
  9878  HEAPF32[i61 >> 2] = d62 - d64;
  9879  d188 = d181 - d180;
  9880  HEAPF32[i21 + 4 >> 2] = d188 - d63;
  9881  HEAPF32[i21 + 8 >> 2] = d62 + d64;
  9882  HEAPF32[i21 + 12 >> 2] = d188 + d63;
  9883  d188 = d186 + d179;
  9884  HEAPF32[i21 + 16 >> 2] = d188 + d64;
  9885  d179 = d181 + d180;
  9886  HEAPF32[i21 + 20 >> 2] = d179 + d63;
  9887  HEAPF32[i21 + 24 >> 2] = d188 - d64;
  9888  HEAPF32[i21 + 28 >> 2] = d179 - d63;
  9889  HEAPF32[i22 >> 2] = +HEAPF32[i196 + (i205 << 2) >> 2];
  9890  HEAPF32[i22 + 4 >> 2] = +HEAPF32[i196 + (i204 << 2) >> 2];
  9891  i204 = i23 | 0;
  9892  i205 = i14 | 0;
  9893  i14 = i61;
  9894  i61 = i204;
  9895  i21 = 0;
  9896  i197 = 4;
  9897  L1130 : while (1) {
  9898   i198 = i22 + (i21 << 2) | 0;
  9899   i193 = 1 - i21 | 0;
  9900   do {
  9901    if ((i197 | 0) > 0) {
  9902     i35 = 0;
  9903     i2 = i14;
  9904     i5 = i61;
  9905     i11 = i197;
  9906     while (1) {
  9907      i16 = i2 + (i21 << 2) | 0;
  9908      d63 = +HEAPF32[i16 >> 2];
  9909      d179 = +HEAPF32[i198 >> 2];
  9910      if (d63 * -1.0 < d179) {
  9911       HEAPF32[i5 >> 2] = +HEAPF32[i2 >> 2];
  9912       HEAPF32[i5 + 4 >> 2] = +HEAPF32[i2 + 4 >> 2];
  9913       i6 = i35 + 1 | 0;
  9914       if ((i6 & 8 | 0) != 0) {
  9915        i206 = i6;
  9916        i207 = i61;
  9917        break L1130;
  9919       i208 = i5 + 8 | 0;
  9920       i209 = i6;
  9921       d210 = +HEAPF32[i16 >> 2];
  9922       d211 = +HEAPF32[i198 >> 2];
  9923      } else {
  9924       i208 = i5;
  9925       i209 = i35;
  9926       d210 = d63;
  9927       d211 = d179;
  9929      i16 = i2 + 8 | 0;
  9930      i6 = (i11 | 0) > 1 ? i16 : i14;
  9931      d179 = +HEAPF32[i6 + (i21 << 2) >> 2];
  9932      if (d210 * -1.0 < d211 ^ d179 * -1.0 < d211) {
  9933       d63 = +HEAPF32[i2 + (i193 << 2) >> 2];
  9934       HEAPF32[i208 + (i193 << 2) >> 2] = d63 + (d211 * -1.0 - d210) * ((+HEAPF32[i6 + (i193 << 2) >> 2] - d63) / (d179 - d210));
  9935       HEAPF32[i208 + (i21 << 2) >> 2] = +HEAPF32[i198 >> 2] * -1.0;
  9936       i6 = i209 + 1 | 0;
  9937       if ((i6 & 8 | 0) == 0) {
  9938        i212 = i208 + 8 | 0;
  9939        i213 = i6;
  9940       } else {
  9941        i206 = i6;
  9942        i207 = i61;
  9943        break L1130;
  9945      } else {
  9946       i212 = i208;
  9947       i213 = i209;
  9949      i6 = i11 - 1 | 0;
  9950      if ((i6 | 0) > 0) {
  9951       i35 = i213;
  9952       i2 = i16;
  9953       i5 = i212;
  9954       i11 = i6;
  9955      } else {
  9956       break;
  9959     i11 = (i61 | 0) == (i204 | 0) ? i205 : i204;
  9960     if ((i213 | 0) > 0) {
  9961      i214 = 0;
  9962      i215 = i61;
  9963      i216 = i11;
  9964      i217 = i213;
  9965     } else {
  9966      i218 = 0;
  9967      i219 = i11;
  9968      break;
  9970     while (1) {
  9971      i5 = i215 + (i21 << 2) | 0;
  9972      d179 = +HEAPF32[i5 >> 2];
  9973      d63 = +HEAPF32[i198 >> 2];
  9974      if (d179 < d63) {
  9975       HEAPF32[i216 >> 2] = +HEAPF32[i215 >> 2];
  9976       HEAPF32[i216 + 4 >> 2] = +HEAPF32[i215 + 4 >> 2];
  9977       i2 = i214 + 1 | 0;
  9978       if ((i2 & 8 | 0) != 0) {
  9979        i206 = i2;
  9980        i207 = i11;
  9981        break L1130;
  9983       i220 = i216 + 8 | 0;
  9984       i221 = i2;
  9985       d222 = +HEAPF32[i5 >> 2];
  9986       d223 = +HEAPF32[i198 >> 2];
  9987      } else {
  9988       i220 = i216;
  9989       i221 = i214;
  9990       d222 = d179;
  9991       d223 = d63;
  9993      i5 = i215 + 8 | 0;
  9994      i2 = (i217 | 0) > 1 ? i5 : i61;
  9995      d63 = +HEAPF32[i2 + (i21 << 2) >> 2];
  9996      if (d222 < d223 ^ d63 < d223) {
  9997       d179 = +HEAPF32[i215 + (i193 << 2) >> 2];
  9998       HEAPF32[i220 + (i193 << 2) >> 2] = d179 + (d223 - d222) * ((+HEAPF32[i2 + (i193 << 2) >> 2] - d179) / (d63 - d222));
  9999       HEAPF32[i220 + (i21 << 2) >> 2] = +HEAPF32[i198 >> 2];
 10000       i2 = i221 + 1 | 0;
 10001       if ((i2 & 8 | 0) == 0) {
 10002        i224 = i220 + 8 | 0;
 10003        i225 = i2;
 10004       } else {
 10005        i206 = i2;
 10006        i207 = i11;
 10007        break L1130;
 10009      } else {
 10010       i224 = i220;
 10011       i225 = i221;
 10013      i2 = i217 - 1 | 0;
 10014      if ((i2 | 0) > 0) {
 10015       i214 = i225;
 10016       i215 = i5;
 10017       i216 = i224;
 10018       i217 = i2;
 10019      } else {
 10020       i218 = i225;
 10021       i219 = i11;
 10022       break;
 10025    } else {
 10026     i218 = 0;
 10027     i219 = (i61 | 0) == (i204 | 0) ? i205 : i204;
 10029   } while (0);
 10030   i198 = i21 + 1 | 0;
 10031   if ((i198 | 0) < 2) {
 10032    i14 = i219;
 10033    i61 = (i219 | 0) == (i204 | 0) ? i205 : i204;
 10034    i21 = i198;
 10035    i197 = i218;
 10036   } else {
 10037    i206 = i218;
 10038    i207 = i219;
 10039    break;
 10042  if ((i207 | 0) != (i204 | 0)) {
 10043   i219 = i23;
 10044   i218 = i207;
 10045   i207 = i206 << 3;
 10046   _memcpy(i219 | 0, i218 | 0, i207) | 0;
 10048  if ((i206 | 0) < 1) {
 10049   i94 = 0;
 10050   STACKTOP = i12;
 10051   return i94 | 0;
 10053  d222 = 1.0 / (d173 * d66 - d187 * d174);
 10054  d223 = d173 * d222;
 10055  d173 = d174 * d222;
 10056  d174 = d66 * d222;
 10057  d66 = -0.0 - d187 * d222;
 10058  d222 = +HEAPF32[i196 + (i199 << 2) >> 2];
 10059  d187 = +HEAPF32[i192 >> 2];
 10060  d210 = +HEAPF32[i200 >> 2];
 10061  d211 = +HEAPF32[i195 >> 2];
 10062  d63 = +HEAPF32[i15 >> 2];
 10063  d179 = +HEAPF32[i20 >> 2];
 10064  d64 = +HEAPF32[i36 >> 2];
 10065  i36 = 0;
 10066  i20 = 0;
 10067  while (1) {
 10068   i15 = i36 << 1;
 10069   d188 = +HEAPF32[i23 + (i15 << 2) >> 2];
 10070   d180 = d188 - d186;
 10071   d62 = +HEAPF32[i23 + ((i15 | 1) << 2) >> 2];
 10072   d65 = d62 - d181;
 10073   d171 = d174 * d180 - d173 * d65;
 10074   d184 = d180 * d66 + d223 * d65;
 10075   i15 = i20 * 3 | 0;
 10076   d65 = d210 * d184 + (d201 + d187 * d171);
 10077   HEAPF32[i24 + (i15 << 2) >> 2] = d65;
 10078   d180 = d63 * d184 + (d202 + d211 * d171);
 10079   HEAPF32[i24 + (i15 + 1 << 2) >> 2] = d180;
 10080   d185 = d64 * d184 + (d203 + d179 * d171);
 10081   HEAPF32[i24 + (i15 + 2 << 2) >> 2] = d185;
 10082   d171 = d222 - (d189 * d65 + d190 * d180 + d191 * d185);
 10083   HEAPF32[i25 + (i20 << 2) >> 2] = d171;
 10084   if (d171 < 0.0) {
 10085    i226 = i20;
 10086   } else {
 10087    i15 = i20 << 1;
 10088    HEAPF32[i23 + (i15 << 2) >> 2] = d188;
 10089    HEAPF32[i23 + ((i15 | 1) << 2) >> 2] = d62;
 10090    i226 = i20 + 1 | 0;
 10092   i15 = i36 + 1 | 0;
 10093   if ((i15 | 0) < (i206 | 0)) {
 10094    i36 = i15;
 10095    i20 = i226;
 10096   } else {
 10097    break;
 10100  if ((i226 | 0) < 1) {
 10101   i94 = 0;
 10102   STACKTOP = i12;
 10103   return i94 | 0;
 10105  i20 = (i226 | 0) < (i10 | 0) ? i226 : i10;
 10106  i10 = (i20 | 0) < 1 ? 1 : i20;
 10107  do {
 10108   if ((i226 | 0) > (i10 | 0)) {
 10109    if ((i226 | 0) > 1) {
 10110     i20 = 1;
 10111     i36 = 0;
 10112     d191 = +HEAPF32[i25 >> 2];
 10113     while (1) {
 10114      d190 = +HEAPF32[i25 + (i20 << 2) >> 2];
 10115      i206 = d190 > d191;
 10116      i23 = i206 ? i20 : i36;
 10117      i15 = i20 + 1 | 0;
 10118      if ((i15 | 0) < (i226 | 0)) {
 10119       i20 = i15;
 10120       i36 = i23;
 10121       d191 = i206 ? d190 : d191;
 10122      } else {
 10123       i227 = i23;
 10124       break;
 10127    } else {
 10128     i227 = 0;
 10130    __Z11cullPoints2iPfiiPi(i226, i204, i10, i227, i30 | 0);
 10131    if ((i10 | 0) <= 0) {
 10132     i228 = i10;
 10133     break;
 10135    i36 = i13;
 10136    i20 = i7 + 4 | 0;
 10137    i23 = i7 + 8 | 0;
 10138    i206 = i32 | 0;
 10139    i15 = i32 + 4 | 0;
 10140    i195 = i32 + 8 | 0;
 10141    i200 = i32 + 12 | 0;
 10142    i192 = i33 | 0;
 10143    i199 = i33 + 4 | 0;
 10144    i196 = i33 + 8 | 0;
 10145    i207 = i33 + 12 | 0;
 10146    i218 = i31 | 0;
 10147    i219 = i31 + 4 | 0;
 10148    i197 = i31 + 8 | 0;
 10149    i21 = i34 | 0;
 10150    i205 = i34 + 4 | 0;
 10151    i61 = i34 + 8 | 0;
 10152    i14 = i34 + 12 | 0;
 10153    i225 = i194 + 4 | 0;
 10154    i217 = i194 + 8 | 0;
 10155    if (i17) {
 10156     i224 = 0;
 10157     while (1) {
 10158      i216 = HEAP32[i30 + (i224 << 2) >> 2] | 0;
 10159      i215 = i216 * 3 | 0;
 10160      HEAPF32[i218 >> 2] = +HEAPF32[i24 + (i215 << 2) >> 2] + +HEAPF32[i194 >> 2];
 10161      HEAPF32[i219 >> 2] = +HEAPF32[i24 + (i215 + 1 << 2) >> 2] + +HEAPF32[i225 >> 2];
 10162      HEAPF32[i197 >> 2] = +HEAPF32[i24 + (i215 + 2 << 2) >> 2] + +HEAPF32[i217 >> 2];
 10163      d191 = -0.0 - +HEAPF32[i23 >> 2];
 10164      d190 = -0.0 - +HEAPF32[i20 >> 2];
 10165      i215 = HEAP32[(HEAP32[i36 >> 2] | 0) + 16 >> 2] | 0;
 10166      HEAPF32[i206 >> 2] = -0.0 - +HEAPF32[i19 >> 2];
 10167      HEAPF32[i15 >> 2] = d190;
 10168      HEAPF32[i195 >> 2] = d191;
 10169      HEAPF32[i200 >> 2] = 0.0;
 10170      FUNCTION_TABLE_viiif[i215 & 15](i13, i32, i31, -0.0 - +HEAPF32[i25 + (i216 << 2) >> 2]);
 10171      i216 = i224 + 1 | 0;
 10172      if ((i216 | 0) < (i10 | 0)) {
 10173       i224 = i216;
 10174      } else {
 10175       i228 = i10;
 10176       break;
 10179    } else {
 10180     i224 = 0;
 10181     while (1) {
 10182      i200 = HEAP32[i30 + (i224 << 2) >> 2] | 0;
 10183      i195 = i200 * 3 | 0;
 10184      d191 = +HEAPF32[i24 + (i195 << 2) >> 2] + +HEAPF32[i194 >> 2];
 10185      HEAPF32[i218 >> 2] = d191;
 10186      d190 = +HEAPF32[i24 + (i195 + 1 << 2) >> 2] + +HEAPF32[i225 >> 2];
 10187      HEAPF32[i219 >> 2] = d190;
 10188      d189 = +HEAPF32[i24 + (i195 + 2 << 2) >> 2] + +HEAPF32[i217 >> 2];
 10189      HEAPF32[i197 >> 2] = d189;
 10190      d222 = +HEAPF32[i19 >> 2];
 10191      d179 = +HEAPF32[i20 >> 2];
 10192      d203 = +HEAPF32[i23 >> 2];
 10193      i195 = HEAP32[(HEAP32[i36 >> 2] | 0) + 16 >> 2] | 0;
 10194      HEAPF32[i192 >> 2] = -0.0 - d222;
 10195      HEAPF32[i199 >> 2] = -0.0 - d179;
 10196      HEAPF32[i196 >> 2] = -0.0 - d203;
 10197      HEAPF32[i207 >> 2] = 0.0;
 10198      d64 = +HEAPF32[i25 + (i200 << 2) >> 2];
 10199      HEAPF32[i21 >> 2] = d191 - d222 * d64;
 10200      HEAPF32[i205 >> 2] = d190 - d179 * d64;
 10201      HEAPF32[i61 >> 2] = d189 - d203 * d64;
 10202      HEAPF32[i14 >> 2] = 0.0;
 10203      FUNCTION_TABLE_viiif[i195 & 15](i13, i33, i34, -0.0 - d64);
 10204      i195 = i224 + 1 | 0;
 10205      if ((i195 | 0) < (i10 | 0)) {
 10206       i224 = i195;
 10207      } else {
 10208       i228 = i10;
 10209       break;
 10213   } else {
 10214    i224 = (i226 | 0) > 0;
 10215    if (i17) {
 10216     if (!i224) {
 10217      i228 = i226;
 10218      break;
 10220     i14 = i13;
 10221     i61 = i7 + 4 | 0;
 10222     i205 = i7 + 8 | 0;
 10223     i21 = i27 | 0;
 10224     i207 = i27 + 4 | 0;
 10225     i196 = i27 + 8 | 0;
 10226     i199 = i27 + 12 | 0;
 10227     i192 = i26 | 0;
 10228     i36 = i194 + 4 | 0;
 10229     i23 = i26 + 4 | 0;
 10230     i20 = i194 + 8 | 0;
 10231     i197 = i26 + 8 | 0;
 10232     i217 = 0;
 10233     while (1) {
 10234      i219 = i217 * 3 | 0;
 10235      HEAPF32[i192 >> 2] = +HEAPF32[i24 + (i219 << 2) >> 2] + +HEAPF32[i194 >> 2];
 10236      HEAPF32[i23 >> 2] = +HEAPF32[i24 + (i219 + 1 << 2) >> 2] + +HEAPF32[i36 >> 2];
 10237      HEAPF32[i197 >> 2] = +HEAPF32[i24 + (i219 + 2 << 2) >> 2] + +HEAPF32[i20 >> 2];
 10238      i219 = HEAP32[(HEAP32[i14 >> 2] | 0) + 16 >> 2] | 0;
 10239      d64 = -0.0 - +HEAPF32[i61 >> 2];
 10240      d203 = -0.0 - +HEAPF32[i205 >> 2];
 10241      HEAPF32[i21 >> 2] = -0.0 - +HEAPF32[i19 >> 2];
 10242      HEAPF32[i207 >> 2] = d64;
 10243      HEAPF32[i196 >> 2] = d203;
 10244      HEAPF32[i199 >> 2] = 0.0;
 10245      FUNCTION_TABLE_viiif[i219 & 15](i13, i27, i26, -0.0 - +HEAPF32[i25 + (i217 << 2) >> 2]);
 10246      i219 = i217 + 1 | 0;
 10247      if ((i219 | 0) < (i226 | 0)) {
 10248       i217 = i219;
 10249      } else {
 10250       i228 = i226;
 10251       break;
 10254    } else {
 10255     if (!i224) {
 10256      i228 = i226;
 10257      break;
 10259     i217 = i13;
 10260     i199 = i7 + 4 | 0;
 10261     i196 = i7 + 8 | 0;
 10262     i207 = i29 | 0;
 10263     i21 = i29 + 4 | 0;
 10264     i205 = i29 + 8 | 0;
 10265     i61 = i29 + 12 | 0;
 10266     i14 = i28 | 0;
 10267     i20 = i194 + 4 | 0;
 10268     i197 = i28 + 4 | 0;
 10269     i36 = i194 + 8 | 0;
 10270     i23 = i28 + 8 | 0;
 10271     i192 = 0;
 10272     while (1) {
 10273      i219 = i192 * 3 | 0;
 10274      d203 = +HEAPF32[i25 + (i192 << 2) >> 2];
 10275      d64 = +HEAPF32[i19 >> 2];
 10276      HEAPF32[i14 >> 2] = +HEAPF32[i24 + (i219 << 2) >> 2] + +HEAPF32[i194 >> 2] - d203 * d64;
 10277      d189 = +HEAPF32[i199 >> 2];
 10278      HEAPF32[i197 >> 2] = +HEAPF32[i24 + (i219 + 1 << 2) >> 2] + +HEAPF32[i20 >> 2] - d203 * d189;
 10279      d179 = +HEAPF32[i196 >> 2];
 10280      HEAPF32[i23 >> 2] = +HEAPF32[i24 + (i219 + 2 << 2) >> 2] + +HEAPF32[i36 >> 2] - d203 * d179;
 10281      i219 = HEAP32[(HEAP32[i217 >> 2] | 0) + 16 >> 2] | 0;
 10282      HEAPF32[i207 >> 2] = -0.0 - d64;
 10283      HEAPF32[i21 >> 2] = -0.0 - d189;
 10284      HEAPF32[i205 >> 2] = -0.0 - d179;
 10285      HEAPF32[i61 >> 2] = 0.0;
 10286      FUNCTION_TABLE_viiif[i219 & 15](i13, i29, i28, -0.0 - d203);
 10287      i219 = i192 + 1 | 0;
 10288      if ((i219 | 0) < (i226 | 0)) {
 10289       i192 = i219;
 10290      } else {
 10291       i228 = i226;
 10292       break;
 10297  } while (0);
 10298  HEAP32[i9 >> 2] = i182;
 10299  i94 = i228;
 10300  STACKTOP = i12;
 10301  return i94 | 0;
 10303 function __ZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
 10304  i1 = i1 | 0;
 10305  i2 = i2 | 0;
 10306  i3 = i3 | 0;
 10307  i4 = i4 | 0;
 10308  i5 = i5 | 0;
 10309  var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, d41 = 0.0, d42 = 0.0, d43 = 0.0, d44 = 0.0, d45 = 0.0, d46 = 0.0, d47 = 0.0, d48 = 0.0, d49 = 0.0, d50 = 0.0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0, d55 = 0.0, d56 = 0.0, d57 = 0.0, d58 = 0.0, d59 = 0.0, d60 = 0.0, d61 = 0.0, d62 = 0.0, d63 = 0.0, d64 = 0.0, i65 = 0, i66 = 0, i67 = 0, i68 = 0, i69 = 0, i70 = 0, i71 = 0, i72 = 0, i73 = 0, i74 = 0, i75 = 0, i76 = 0, i77 = 0, d78 = 0.0, i79 = 0, i80 = 0, i81 = 0, i82 = 0, i83 = 0, i84 = 0, i85 = 0, i86 = 0, i87 = 0, i88 = 0, i89 = 0, i90 = 0, i91 = 0, i92 = 0, i93 = 0, i94 = 0, i95 = 0, i96 = 0, i97 = 0, i98 = 0, i99 = 0, i100 = 0, i101 = 0, i102 = 0, i103 = 0, i104 = 0, i105 = 0, i106 = 0, i107 = 0, i108 = 0, i109 = 0, i110 = 0, i111 = 0, i112 = 0, d113 = 0.0, d114 = 0.0, d115 = 0.0, i116 = 0, i117 = 0, i118 = 0, i119 = 0, i120 = 0, i121 = 0, i122 = 0, i123 = 0, i124 = 0, i125 = 0, i126 = 0, i127 = 0, i128 = 0, i129 = 0, i130 = 0, i131 = 0, i132 = 0, i133 = 0, i134 = 0, i135 = 0, i136 = 0, i137 = 0, i138 = 0, i139 = 0, i140 = 0, i141 = 0, i142 = 0, i143 = 0, i144 = 0, i145 = 0, i146 = 0, i147 = 0, i148 = 0;
 10310  i6 = STACKTOP;
 10311  STACKTOP = STACKTOP + 744 | 0;
 10312  i7 = i6 | 0;
 10313  i8 = i6 + 16 | 0;
 10314  i9 = i6 + 32 | 0;
 10315  i10 = i6 + 168 | 0;
 10316  i11 = i6 + 248 | 0;
 10317  i12 = i6 + 256 | 0;
 10318  i13 = i6 + 272 | 0;
 10319  i14 = i6 + 288 | 0;
 10320  i15 = i6 + 312 | 0;
 10321  i16 = i6 + 328 | 0;
 10322  i17 = i6 + 344 | 0;
 10323  i18 = i6 + 360 | 0;
 10324  i19 = i6 + 376 | 0;
 10325  i20 = i1 + 20 | 0;
 10326  i21 = HEAP32[i20 >> 2] | 0;
 10327  if ((i21 | 0) == 0) {
 10328   i22 = HEAP32[i1 + 4 >> 2] | 0;
 10329   i23 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i22 >> 2] | 0) + 12 >> 2] & 31](i22, i2, i3) | 0;
 10330   HEAP32[i20 >> 2] = i23;
 10331   HEAP8[i1 + 16 | 0] = 1;
 10332   i24 = i23;
 10333  } else {
 10334   i24 = i21;
 10336  i21 = i5 + 4 | 0;
 10337  HEAP32[i21 >> 2] = i24;
 10338  i24 = HEAP32[i2 + 192 >> 2] | 0;
 10339  i23 = i24;
 10340  i22 = HEAP32[i3 + 192 >> 2] | 0;
 10341  i25 = i22;
 10342  i26 = i24 + 4 | 0;
 10343  do {
 10344   if ((HEAP32[i26 >> 2] | 0) == 10) {
 10345    if ((HEAP32[i22 + 4 >> 2] | 0) != 10) {
 10346     break;
 10348    i27 = i24;
 10349    i28 = i22;
 10350    i29 = i24;
 10351    i30 = HEAP32[(HEAP32[i24 >> 2] | 0) + 28 >> 2] | 0;
 10352    FUNCTION_TABLE_ii[i30 & 127](i29) | 0;
 10353    i29 = i22;
 10354    i30 = HEAP32[(HEAP32[i22 >> 2] | 0) + 28 >> 2] | 0;
 10355    FUNCTION_TABLE_ii[i30 & 127](i29) | 0;
 10356    d31 = +__ZNK20btPersistentManifold27getContactBreakingThresholdEv(HEAP32[i20 >> 2] | 0);
 10357    i29 = HEAP32[i24 + 52 >> 2] | 0;
 10358    d32 = +HEAPF32[i27 + 28 + (i29 << 2) >> 2];
 10359    d33 = +HEAPF32[i27 + 28 + (((i29 + 2 | 0) % 3 | 0) << 2) >> 2];
 10360    i27 = HEAP32[i22 + 52 >> 2] | 0;
 10361    d34 = +HEAPF32[i28 + 28 + (i27 << 2) >> 2];
 10362    d35 = +HEAPF32[i28 + 28 + (((i27 + 2 | 0) % 3 | 0) << 2) >> 2];
 10363    d36 = +HEAPF32[i2 + 4 + (i29 << 2) >> 2];
 10364    d37 = +HEAPF32[i2 + 20 + (i29 << 2) >> 2];
 10365    d38 = +HEAPF32[i2 + 36 + (i29 << 2) >> 2];
 10366    d39 = +HEAPF32[i3 + 4 + (i27 << 2) >> 2];
 10367    d40 = +HEAPF32[i3 + 20 + (i27 << 2) >> 2];
 10368    d41 = +HEAPF32[i3 + 36 + (i27 << 2) >> 2];
 10369    d42 = +HEAPF32[i3 + 52 >> 2];
 10370    d43 = +HEAPF32[i3 + 56 >> 2];
 10371    d44 = +HEAPF32[i3 + 60 >> 2];
 10372    d45 = d42 - +HEAPF32[i2 + 52 >> 2];
 10373    d46 = d43 - +HEAPF32[i2 + 56 >> 2];
 10374    d47 = d44 - +HEAPF32[i2 + 60 >> 2];
 10375    d48 = d36 * d39 + d37 * d40 + d38 * d41;
 10376    d49 = d36 * d45 + d37 * d46 + d38 * d47;
 10377    d50 = d39 * d45 + d40 * d46 + d41 * d47;
 10378    d51 = 1.0 - d48 * d48;
 10379    do {
 10380     if (d51 == 0.0) {
 10381      d52 = 0.0;
 10382     } else {
 10383      d53 = (d49 - d48 * d50) / d51;
 10384      d54 = -0.0 - d32;
 10385      if (d53 < d54) {
 10386       d52 = d54;
 10387       break;
 10389      if (d53 <= d32) {
 10390       d52 = d53;
 10391       break;
 10393      d52 = d32;
 10395    } while (0);
 10396    d51 = d48 * d52 - d50;
 10397    d53 = -0.0 - d34;
 10398    do {
 10399     if (d51 < d53) {
 10400      d54 = d48 * d53 + d49;
 10401      d55 = -0.0 - d32;
 10402      if (d54 < d55) {
 10403       d56 = d55;
 10404       d57 = d53;
 10405       break;
 10407      if (d54 <= d32) {
 10408       d56 = d54;
 10409       d57 = d53;
 10410       break;
 10412      d56 = d32;
 10413      d57 = d53;
 10414     } else {
 10415      if (d51 <= d34) {
 10416       d56 = d52;
 10417       d57 = d51;
 10418       break;
 10420      d54 = d34 * d48 + d49;
 10421      d55 = -0.0 - d32;
 10422      if (d54 < d55) {
 10423       d56 = d55;
 10424       d57 = d34;
 10425       break;
 10427      if (d54 <= d32) {
 10428       d56 = d54;
 10429       d57 = d34;
 10430       break;
 10432      d56 = d32;
 10433      d57 = d34;
 10435    } while (0);
 10436    d34 = d39 * d57;
 10437    d32 = d40 * d57;
 10438    d49 = d41 * d57;
 10439    d48 = d34 + (d45 - d36 * d56);
 10440    d51 = d32 + (d46 - d37 * d56);
 10441    d53 = d49 + (d47 - d38 * d56);
 10442    d50 = d53 * d53 + (d48 * d48 + d51 * d51);
 10443    d54 = +Math_sqrt(+d50);
 10444    d55 = d54 - d33 - d35;
 10445    if (d55 <= d31) {
 10446     do {
 10447      if (d50 > 1.4210854715202004e-14) {
 10448       d58 = -0.0 - 1.0 / d54;
 10449       d59 = d48 * d58;
 10450       d60 = d51 * d58;
 10451       d61 = d53 * d58;
 10452       HEAPF32[i7 >> 2] = d59;
 10453       HEAPF32[i7 + 4 >> 2] = d60;
 10454       HEAPF32[i7 + 8 >> 2] = d61;
 10455       HEAPF32[i7 + 12 >> 2] = 0.0;
 10456       d62 = d59;
 10457       d63 = d60;
 10458       d64 = d61;
 10459      } else {
 10460       if (+Math_abs(+d38) > .7071067690849304) {
 10461        d61 = 1.0 / +Math_sqrt(+(d37 * d37 + d38 * d38));
 10462        HEAPF32[i7 >> 2] = 0.0;
 10463        d60 = d61 * (-0.0 - d38);
 10464        HEAPF32[i7 + 4 >> 2] = d60;
 10465        d59 = d37 * d61;
 10466        HEAPF32[i7 + 8 >> 2] = d59;
 10467        d62 = 0.0;
 10468        d63 = d60;
 10469        d64 = d59;
 10470        break;
 10471       } else {
 10472        d59 = 1.0 / +Math_sqrt(+(d36 * d36 + d37 * d37));
 10473        d60 = d59 * (-0.0 - d37);
 10474        HEAPF32[i7 >> 2] = d60;
 10475        d61 = d36 * d59;
 10476        HEAPF32[i7 + 4 >> 2] = d61;
 10477        HEAPF32[i7 + 8 >> 2] = 0.0;
 10478        d62 = d60;
 10479        d63 = d61;
 10480        d64 = 0.0;
 10481        break;
 10484     } while (0);
 10485     HEAPF32[i8 >> 2] = d42 + d34 + d35 * d62;
 10486     HEAPF32[i8 + 4 >> 2] = d43 + d32 + d35 * d63;
 10487     HEAPF32[i8 + 8 >> 2] = d44 + d49 + d35 * d64;
 10488     HEAPF32[i8 + 12 >> 2] = 0.0;
 10490    if (d55 < d31) {
 10491     FUNCTION_TABLE_viiif[HEAP32[(HEAP32[i5 >> 2] | 0) + 16 >> 2] & 15](i5, i7, i8, d55);
 10493    i27 = HEAP32[i21 >> 2] | 0;
 10494    if ((HEAP32[i27 + 1116 >> 2] | 0) == 0) {
 10495     STACKTOP = i6;
 10496     return;
 10498    if ((HEAP32[i27 + 1108 >> 2] | 0) == (HEAP32[i5 + 136 >> 2] | 0)) {
 10499     __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i27, i5 + 8 | 0, i5 + 72 | 0);
 10500     STACKTOP = i6;
 10501     return;
 10502    } else {
 10503     __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i27, i5 + 72 | 0, i5 + 8 | 0);
 10504     STACKTOP = i6;
 10505     return;
 10508  } while (0);
 10509  i8 = i9 + 128 | 0;
 10510  HEAPF32[i8 >> 2] = 999999984306749400.0;
 10511  i7 = i9 + 132 | 0;
 10512  HEAP32[i7 >> 2] = 0;
 10513  __ZN17btGjkPairDetectorC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver(i10, i23, i25, HEAP32[i1 + 8 >> 2] | 0, HEAP32[i1 + 12 >> 2] | 0);
 10514  HEAP32[i10 + 28 >> 2] = i23;
 10515  HEAP32[i10 + 32 >> 2] = i25;
 10516  d64 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i24 >> 2] | 0) + 44 >> 2] & 7](i23);
 10517  d63 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i22 >> 2] | 0) + 44 >> 2] & 7](i25);
 10518  d62 = d64 + d63 + +__ZNK20btPersistentManifold27getContactBreakingThresholdEv(HEAP32[i20 >> 2] | 0);
 10519  HEAPF32[i8 >> 2] = d62 * d62;
 10520  HEAP32[i7 >> 2] = HEAP32[i4 + 40 >> 2];
 10521  i7 = i2 + 4 | 0;
 10522  i8 = i9;
 10523  i25 = i7;
 10524  HEAP32[i8 >> 2] = HEAP32[i25 >> 2];
 10525  HEAP32[i8 + 4 >> 2] = HEAP32[i25 + 4 >> 2];
 10526  HEAP32[i8 + 8 >> 2] = HEAP32[i25 + 8 >> 2];
 10527  HEAP32[i8 + 12 >> 2] = HEAP32[i25 + 12 >> 2];
 10528  i23 = i9 + 16 | 0;
 10529  i27 = i2 + 20 | 0;
 10530  HEAP32[i23 >> 2] = HEAP32[i27 >> 2];
 10531  HEAP32[i23 + 4 >> 2] = HEAP32[i27 + 4 >> 2];
 10532  HEAP32[i23 + 8 >> 2] = HEAP32[i27 + 8 >> 2];
 10533  HEAP32[i23 + 12 >> 2] = HEAP32[i27 + 12 >> 2];
 10534  i29 = i9 + 32 | 0;
 10535  i28 = i2 + 36 | 0;
 10536  HEAP32[i29 >> 2] = HEAP32[i28 >> 2];
 10537  HEAP32[i29 + 4 >> 2] = HEAP32[i28 + 4 >> 2];
 10538  HEAP32[i29 + 8 >> 2] = HEAP32[i28 + 8 >> 2];
 10539  HEAP32[i29 + 12 >> 2] = HEAP32[i28 + 12 >> 2];
 10540  i30 = i9 + 48 | 0;
 10541  i65 = i2 + 52 | 0;
 10542  HEAP32[i30 >> 2] = HEAP32[i65 >> 2];
 10543  HEAP32[i30 + 4 >> 2] = HEAP32[i65 + 4 >> 2];
 10544  HEAP32[i30 + 8 >> 2] = HEAP32[i65 + 8 >> 2];
 10545  HEAP32[i30 + 12 >> 2] = HEAP32[i65 + 12 >> 2];
 10546  i66 = i3 + 4 | 0;
 10547  i67 = i9 + 64 | 0;
 10548  i68 = i66;
 10549  HEAP32[i67 >> 2] = HEAP32[i68 >> 2];
 10550  HEAP32[i67 + 4 >> 2] = HEAP32[i68 + 4 >> 2];
 10551  HEAP32[i67 + 8 >> 2] = HEAP32[i68 + 8 >> 2];
 10552  HEAP32[i67 + 12 >> 2] = HEAP32[i68 + 12 >> 2];
 10553  i69 = i9 + 80 | 0;
 10554  i70 = i3 + 20 | 0;
 10555  HEAP32[i69 >> 2] = HEAP32[i70 >> 2];
 10556  HEAP32[i69 + 4 >> 2] = HEAP32[i70 + 4 >> 2];
 10557  HEAP32[i69 + 8 >> 2] = HEAP32[i70 + 8 >> 2];
 10558  HEAP32[i69 + 12 >> 2] = HEAP32[i70 + 12 >> 2];
 10559  i71 = i9 + 96 | 0;
 10560  i72 = i3 + 36 | 0;
 10561  HEAP32[i71 >> 2] = HEAP32[i72 >> 2];
 10562  HEAP32[i71 + 4 >> 2] = HEAP32[i72 + 4 >> 2];
 10563  HEAP32[i71 + 8 >> 2] = HEAP32[i72 + 8 >> 2];
 10564  HEAP32[i71 + 12 >> 2] = HEAP32[i72 + 12 >> 2];
 10565  i73 = i9 + 112 | 0;
 10566  i74 = i3 + 52 | 0;
 10567  HEAP32[i73 >> 2] = HEAP32[i74 >> 2];
 10568  HEAP32[i73 + 4 >> 2] = HEAP32[i74 + 4 >> 2];
 10569  HEAP32[i73 + 8 >> 2] = HEAP32[i74 + 8 >> 2];
 10570  HEAP32[i73 + 12 >> 2] = HEAP32[i74 + 12 >> 2];
 10571  do {
 10572   if ((HEAP32[i26 >> 2] | 0) < 7) {
 10573    i75 = HEAP32[i22 + 4 >> 2] | 0;
 10574    if ((i75 | 0) >= 7) {
 10575     break;
 10577    HEAP32[i11 >> 2] = 1552;
 10578    i76 = i24 + 52 | 0;
 10579    if ((HEAP32[i76 >> 2] | 0) == 0) {
 10580     break;
 10582    i77 = i22 + 52 | 0;
 10583    if ((HEAP32[i77 >> 2] | 0) != 0) {
 10584     __ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i10, i9, i11 | 0, HEAP32[i4 + 20 >> 2] | 0, 0);
 10585     d62 = +__ZNK20btPersistentManifold27getContactBreakingThresholdEv(HEAP32[i20 >> 2] | 0);
 10586     if ((HEAP8[i4 + 24 | 0] | 0) == 0) {
 10587      d63 = +HEAPF32[i10 + 4 >> 2];
 10588      d64 = +HEAPF32[i10 + 8 >> 2];
 10589      d56 = +HEAPF32[i10 + 12 >> 2];
 10590      d57 = 1.0 / +Math_sqrt(+(d63 * d63 + d64 * d64 + d56 * d56));
 10591      HEAPF32[i12 >> 2] = d63 * d57;
 10592      HEAPF32[i12 + 4 >> 2] = d64 * d57;
 10593      HEAPF32[i12 + 8 >> 2] = d56 * d57;
 10594      HEAPF32[i12 + 12 >> 2] = 0.0;
 10595      d78 = +HEAPF32[i10 + 56 >> 2];
 10596      i79 = 1404;
 10597     } else {
 10598      if (__ZN27btPolyhedralContactClipping18findSeparatingAxisERK18btConvexPolyhedronS2_RK11btTransformS5_R9btVector3(HEAP32[i76 >> 2] | 0, HEAP32[i77 >> 2] | 0, i7, i66, i12) | 0) {
 10599       d78 = 0.0;
 10600       i79 = 1404;
 10603     if ((i79 | 0) == 1404) {
 10604      __ZN27btPolyhedralContactClipping19clipHullAgainstHullERK9btVector3RK18btConvexPolyhedronS5_RK11btTransformS8_ffRN36btDiscreteCollisionDetectorInterface6ResultE(i12, HEAP32[i76 >> 2] | 0, HEAP32[i77 >> 2] | 0, i7, i66, d78 - d62, d62, i5 | 0);
 10606     if ((HEAP8[i1 + 16 | 0] | 0) == 0) {
 10607      STACKTOP = i6;
 10608      return;
 10610     i77 = HEAP32[i21 >> 2] | 0;
 10611     if ((HEAP32[i77 + 1116 >> 2] | 0) == 0) {
 10612      STACKTOP = i6;
 10613      return;
 10615     if ((HEAP32[i77 + 1108 >> 2] | 0) == (HEAP32[i5 + 136 >> 2] | 0)) {
 10616      __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i77, i5 + 8 | 0, i5 + 72 | 0);
 10617      STACKTOP = i6;
 10618      return;
 10619     } else {
 10620      __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i77, i5 + 72 | 0, i5 + 8 | 0);
 10621      STACKTOP = i6;
 10622      return;
 10625    if ((i75 | 0) != 1) {
 10626     break;
 10628    __ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i10, i9, i11 | 0, HEAP32[i4 + 20 >> 2] | 0, 0);
 10629    d62 = +HEAPF32[i10 + 4 >> 2];
 10630    d57 = +HEAPF32[i10 + 8 >> 2];
 10631    d56 = +HEAPF32[i10 + 12 >> 2];
 10632    d64 = 1.0 / +Math_sqrt(+(d62 * d62 + d57 * d57 + d56 * d56));
 10633    HEAPF32[i13 >> 2] = d62 * d64;
 10634    HEAPF32[i13 + 4 >> 2] = d57 * d64;
 10635    HEAPF32[i13 + 8 >> 2] = d56 * d64;
 10636    HEAPF32[i13 + 12 >> 2] = 0.0;
 10637    i75 = i14 + 16 | 0;
 10638    HEAP8[i75] = 1;
 10639    i77 = i14 + 12 | 0;
 10640    HEAP32[i77 >> 2] = 0;
 10641    i80 = i14 + 4 | 0;
 10642    HEAP32[i80 >> 2] = 0;
 10643    i81 = i14 + 8 | 0;
 10644    HEAP32[i81 >> 2] = 0;
 10645    i82 = i22 + 56 | 0;
 10646    i83 = i66 | 0;
 10647    d64 = +HEAPF32[i82 >> 2];
 10648    i84 = i3 + 8 | 0;
 10649    d56 = +HEAPF32[i82 + 4 >> 2];
 10650    i85 = i3 + 12 | 0;
 10651    d57 = +HEAPF32[i82 + 8 >> 2];
 10652    i86 = i3 + 52 | 0;
 10653    d62 = +HEAPF32[i86 >> 2] + (+HEAPF32[i83 >> 2] * d64 + +HEAPF32[i84 >> 2] * d56 + +HEAPF32[i85 >> 2] * d57);
 10654    i87 = i3 + 20 | 0;
 10655    i88 = i3 + 24 | 0;
 10656    i89 = i3 + 28 | 0;
 10657    i90 = i3 + 56 | 0;
 10658    d63 = +HEAPF32[i90 >> 2] + (d64 * +HEAPF32[i87 >> 2] + d56 * +HEAPF32[i88 >> 2] + d57 * +HEAPF32[i89 >> 2]);
 10659    i91 = i3 + 36 | 0;
 10660    i92 = i3 + 40 | 0;
 10661    i93 = i3 + 44 | 0;
 10662    i94 = i3 + 60 | 0;
 10663    d52 = +HEAPF32[i94 >> 2] + (d64 * +HEAPF32[i91 >> 2] + d56 * +HEAPF32[i92 >> 2] + d57 * +HEAPF32[i93 >> 2]);
 10664    i95 = __Z22btAlignedAllocInternalji(16, 16) | 0;
 10665    HEAP8[i75] = 1;
 10666    HEAP32[i77 >> 2] = i95;
 10667    HEAP32[i81 >> 2] = 1;
 10668    i96 = HEAP32[i80 >> 2] | 0;
 10669    i97 = i95 + (i96 << 4) | 0;
 10670    if ((i97 | 0) == 0) {
 10671     i98 = i96;
 10672     i99 = 1;
 10673    } else {
 10674     HEAPF32[i97 >> 2] = d62;
 10675     HEAPF32[i95 + (i96 << 4) + 4 >> 2] = d63;
 10676     HEAPF32[i95 + (i96 << 4) + 8 >> 2] = d52;
 10677     HEAPF32[i95 + (i96 << 4) + 12 >> 2] = 0.0;
 10678     i98 = HEAP32[i80 >> 2] | 0;
 10679     i99 = HEAP32[i81 >> 2] | 0;
 10681    i96 = i98 + 1 | 0;
 10682    HEAP32[i80 >> 2] = i96;
 10683    d52 = +HEAPF32[i82 + 16 >> 2];
 10684    d63 = +HEAPF32[i82 + 20 >> 2];
 10685    d62 = +HEAPF32[i82 + 24 >> 2];
 10686    d57 = +HEAPF32[i86 >> 2] + (+HEAPF32[i83 >> 2] * d52 + +HEAPF32[i84 >> 2] * d63 + +HEAPF32[i85 >> 2] * d62);
 10687    d56 = +HEAPF32[i90 >> 2] + (d52 * +HEAPF32[i87 >> 2] + d63 * +HEAPF32[i88 >> 2] + d62 * +HEAPF32[i89 >> 2]);
 10688    d64 = +HEAPF32[i94 >> 2] + (d52 * +HEAPF32[i91 >> 2] + d63 * +HEAPF32[i92 >> 2] + d62 * +HEAPF32[i93 >> 2]);
 10689    do {
 10690     if ((i96 | 0) == (i99 | 0)) {
 10691      i95 = (i99 | 0) == 0 ? 1 : i99 << 1;
 10692      if ((i99 | 0) >= (i95 | 0)) {
 10693       i100 = i99;
 10694       i101 = i99;
 10695       break;
 10697      if ((i95 | 0) == 0) {
 10698       i102 = 0;
 10699       i103 = i99;
 10700      } else {
 10701       i97 = __Z22btAlignedAllocInternalji(i95 << 4, 16) | 0;
 10702       i102 = i97;
 10703       i103 = HEAP32[i80 >> 2] | 0;
 10705      if ((i103 | 0) > 0) {
 10706       i97 = 0;
 10707       do {
 10708        i104 = i102 + (i97 << 4) | 0;
 10709        if ((i104 | 0) != 0) {
 10710         i105 = i104;
 10711         i104 = (HEAP32[i77 >> 2] | 0) + (i97 << 4) | 0;
 10712         HEAP32[i105 >> 2] = HEAP32[i104 >> 2];
 10713         HEAP32[i105 + 4 >> 2] = HEAP32[i104 + 4 >> 2];
 10714         HEAP32[i105 + 8 >> 2] = HEAP32[i104 + 8 >> 2];
 10715         HEAP32[i105 + 12 >> 2] = HEAP32[i104 + 12 >> 2];
 10717        i97 = i97 + 1 | 0;
 10718       } while ((i97 | 0) < (i103 | 0));
 10720      i97 = HEAP32[i77 >> 2] | 0;
 10721      if ((i97 | 0) != 0) {
 10722       if ((HEAP8[i75] | 0) != 0) {
 10723        __Z21btAlignedFreeInternalPv(i97);
 10725       HEAP32[i77 >> 2] = 0;
 10727      HEAP8[i75] = 1;
 10728      HEAP32[i77 >> 2] = i102;
 10729      HEAP32[i81 >> 2] = i95;
 10730      i100 = HEAP32[i80 >> 2] | 0;
 10731      i101 = i95;
 10732     } else {
 10733      i100 = i96;
 10734      i101 = i99;
 10736    } while (0);
 10737    i96 = HEAP32[i77 >> 2] | 0;
 10738    i97 = i96 + (i100 << 4) | 0;
 10739    if ((i97 | 0) == 0) {
 10740     i106 = i100;
 10741     i107 = i101;
 10742    } else {
 10743     HEAPF32[i97 >> 2] = d57;
 10744     HEAPF32[i96 + (i100 << 4) + 4 >> 2] = d56;
 10745     HEAPF32[i96 + (i100 << 4) + 8 >> 2] = d64;
 10746     HEAPF32[i96 + (i100 << 4) + 12 >> 2] = 0.0;
 10747     i106 = HEAP32[i80 >> 2] | 0;
 10748     i107 = HEAP32[i81 >> 2] | 0;
 10750    i96 = i106 + 1 | 0;
 10751    HEAP32[i80 >> 2] = i96;
 10752    d55 = +HEAPF32[i82 + 32 >> 2];
 10753    d31 = +HEAPF32[i82 + 36 >> 2];
 10754    d35 = +HEAPF32[i82 + 40 >> 2];
 10755    d49 = +HEAPF32[i86 >> 2] + (+HEAPF32[i83 >> 2] * d55 + +HEAPF32[i84 >> 2] * d31 + +HEAPF32[i85 >> 2] * d35);
 10756    d44 = +HEAPF32[i90 >> 2] + (d55 * +HEAPF32[i87 >> 2] + d31 * +HEAPF32[i88 >> 2] + d35 * +HEAPF32[i89 >> 2]);
 10757    d32 = +HEAPF32[i94 >> 2] + (d55 * +HEAPF32[i91 >> 2] + d31 * +HEAPF32[i92 >> 2] + d35 * +HEAPF32[i93 >> 2]);
 10758    do {
 10759     if ((i96 | 0) == (i107 | 0)) {
 10760      i97 = (i107 | 0) == 0 ? 1 : i107 << 1;
 10761      if ((i107 | 0) >= (i97 | 0)) {
 10762       i108 = i107;
 10763       break;
 10765      if ((i97 | 0) == 0) {
 10766       i109 = 0;
 10767       i110 = i107;
 10768      } else {
 10769       i104 = __Z22btAlignedAllocInternalji(i97 << 4, 16) | 0;
 10770       i109 = i104;
 10771       i110 = HEAP32[i80 >> 2] | 0;
 10773      if ((i110 | 0) > 0) {
 10774       i104 = 0;
 10775       do {
 10776        i105 = i109 + (i104 << 4) | 0;
 10777        if ((i105 | 0) != 0) {
 10778         i111 = i105;
 10779         i105 = (HEAP32[i77 >> 2] | 0) + (i104 << 4) | 0;
 10780         HEAP32[i111 >> 2] = HEAP32[i105 >> 2];
 10781         HEAP32[i111 + 4 >> 2] = HEAP32[i105 + 4 >> 2];
 10782         HEAP32[i111 + 8 >> 2] = HEAP32[i105 + 8 >> 2];
 10783         HEAP32[i111 + 12 >> 2] = HEAP32[i105 + 12 >> 2];
 10785        i104 = i104 + 1 | 0;
 10786       } while ((i104 | 0) < (i110 | 0));
 10788      i104 = HEAP32[i77 >> 2] | 0;
 10789      if ((i104 | 0) != 0) {
 10790       if ((HEAP8[i75] | 0) != 0) {
 10791        __Z21btAlignedFreeInternalPv(i104);
 10793       HEAP32[i77 >> 2] = 0;
 10795      HEAP8[i75] = 1;
 10796      HEAP32[i77 >> 2] = i109;
 10797      HEAP32[i81 >> 2] = i97;
 10798      i108 = HEAP32[i80 >> 2] | 0;
 10799     } else {
 10800      i108 = i96;
 10802    } while (0);
 10803    i96 = HEAP32[i77 >> 2] | 0;
 10804    i93 = i96 + (i108 << 4) | 0;
 10805    if ((i93 | 0) == 0) {
 10806     i112 = i108;
 10807    } else {
 10808     HEAPF32[i93 >> 2] = d49;
 10809     HEAPF32[i96 + (i108 << 4) + 4 >> 2] = d44;
 10810     HEAPF32[i96 + (i108 << 4) + 8 >> 2] = d32;
 10811     HEAPF32[i96 + (i108 << 4) + 12 >> 2] = 0.0;
 10812     i112 = HEAP32[i80 >> 2] | 0;
 10814    HEAP32[i80 >> 2] = i112 + 1;
 10815    d64 = +__ZNK20btPersistentManifold27getContactBreakingThresholdEv(HEAP32[i20 >> 2] | 0);
 10816    __ZN27btPolyhedralContactClipping19clipFaceAgainstHullERK9btVector3RK18btConvexPolyhedronRK11btTransformR20btAlignedObjectArrayIS0_EffRN36btDiscreteCollisionDetectorInterface6ResultE(i13, HEAP32[i76 >> 2] | 0, i7, i14, +HEAPF32[i10 + 56 >> 2] - d64, d64, i5 | 0);
 10817    do {
 10818     if ((HEAP8[i1 + 16 | 0] | 0) != 0) {
 10819      i96 = HEAP32[i21 >> 2] | 0;
 10820      if ((HEAP32[i96 + 1116 >> 2] | 0) == 0) {
 10821       break;
 10823      if ((HEAP32[i96 + 1108 >> 2] | 0) == (HEAP32[i5 + 136 >> 2] | 0)) {
 10824       __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i96, i5 + 8 | 0, i5 + 72 | 0);
 10825       break;
 10826      } else {
 10827       __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i96, i5 + 72 | 0, i5 + 8 | 0);
 10828       break;
 10831    } while (0);
 10832    i76 = HEAP32[i77 >> 2] | 0;
 10833    if ((i76 | 0) != 0) {
 10834     if ((HEAP8[i75] | 0) != 0) {
 10835      __Z21btAlignedFreeInternalPv(i76);
 10837     HEAP32[i77 >> 2] = 0;
 10839    HEAP8[i75] = 1;
 10840    HEAP32[i77 >> 2] = 0;
 10841    HEAP32[i80 >> 2] = 0;
 10842    HEAP32[i81 >> 2] = 0;
 10843    STACKTOP = i6;
 10844    return;
 10846  } while (0);
 10847  i14 = i4 + 20 | 0;
 10848  __ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i10, i9, i5 | 0, HEAP32[i14 >> 2] | 0, 0);
 10849  i4 = i1 + 28 | 0;
 10850  L1724 : do {
 10851   if ((HEAP32[i4 >> 2] | 0) != 0) {
 10852    if ((HEAP32[(HEAP32[i21 >> 2] | 0) + 1116 >> 2] | 0) >= (HEAP32[i1 + 32 >> 2] | 0)) {
 10853     break;
 10855    d78 = +HEAPF32[i10 + 4 >> 2];
 10856    d32 = +HEAPF32[i10 + 8 >> 2];
 10857    d44 = +HEAPF32[i10 + 12 >> 2];
 10858    d49 = 1.0 / +Math_sqrt(+(d78 * d78 + d32 * d32 + d44 * d44));
 10859    d64 = d78 * d49;
 10860    d78 = d32 * d49;
 10861    d32 = d44 * d49;
 10862    if (+Math_abs(+d32) > .7071067690849304) {
 10863     d49 = 1.0 / +Math_sqrt(+(d32 * d32 + d78 * d78));
 10864     d113 = 0.0;
 10865     d114 = d49 * (-0.0 - d32);
 10866     d115 = d78 * d49;
 10867    } else {
 10868     d49 = 1.0 / +Math_sqrt(+(d64 * d64 + d78 * d78));
 10869     d113 = d49 * (-0.0 - d78);
 10870     d114 = d64 * d49;
 10871     d115 = 0.0;
 10873    d49 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i24 >> 2] | 0) + 16 >> 2] & 7](i24);
 10874    d44 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i22 >> 2] | 0) + 16 >> 2] & 7](i22);
 10875    i13 = d49 < d44;
 10876    d56 = +HEAPF32[4] / (i13 ? d49 : d44);
 10877    i20 = i15;
 10878    if (i13) {
 10879     HEAP32[i20 >> 2] = HEAP32[i8 >> 2];
 10880     HEAP32[i20 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
 10881     HEAP32[i20 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
 10882     HEAP32[i20 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
 10883     i112 = i16;
 10884     HEAP32[i112 >> 2] = HEAP32[i23 >> 2];
 10885     HEAP32[i112 + 4 >> 2] = HEAP32[i23 + 4 >> 2];
 10886     HEAP32[i112 + 8 >> 2] = HEAP32[i23 + 8 >> 2];
 10887     HEAP32[i112 + 12 >> 2] = HEAP32[i23 + 12 >> 2];
 10888     i112 = i17;
 10889     HEAP32[i112 >> 2] = HEAP32[i29 >> 2];
 10890     HEAP32[i112 + 4 >> 2] = HEAP32[i29 + 4 >> 2];
 10891     HEAP32[i112 + 8 >> 2] = HEAP32[i29 + 8 >> 2];
 10892     HEAP32[i112 + 12 >> 2] = HEAP32[i29 + 12 >> 2];
 10893     i112 = i18;
 10894     HEAP32[i112 >> 2] = HEAP32[i30 >> 2];
 10895     HEAP32[i112 + 4 >> 2] = HEAP32[i30 + 4 >> 2];
 10896     HEAP32[i112 + 8 >> 2] = HEAP32[i30 + 8 >> 2];
 10897     HEAP32[i112 + 12 >> 2] = HEAP32[i30 + 12 >> 2];
 10898    } else {
 10899     HEAP32[i20 >> 2] = HEAP32[i67 >> 2];
 10900     HEAP32[i20 + 4 >> 2] = HEAP32[i67 + 4 >> 2];
 10901     HEAP32[i20 + 8 >> 2] = HEAP32[i67 + 8 >> 2];
 10902     HEAP32[i20 + 12 >> 2] = HEAP32[i67 + 12 >> 2];
 10903     i112 = i16;
 10904     HEAP32[i112 >> 2] = HEAP32[i69 >> 2];
 10905     HEAP32[i112 + 4 >> 2] = HEAP32[i69 + 4 >> 2];
 10906     HEAP32[i112 + 8 >> 2] = HEAP32[i69 + 8 >> 2];
 10907     HEAP32[i112 + 12 >> 2] = HEAP32[i69 + 12 >> 2];
 10908     i112 = i17;
 10909     HEAP32[i112 >> 2] = HEAP32[i71 >> 2];
 10910     HEAP32[i112 + 4 >> 2] = HEAP32[i71 + 4 >> 2];
 10911     HEAP32[i112 + 8 >> 2] = HEAP32[i71 + 8 >> 2];
 10912     HEAP32[i112 + 12 >> 2] = HEAP32[i71 + 12 >> 2];
 10913     i112 = i18;
 10914     HEAP32[i112 >> 2] = HEAP32[i73 >> 2];
 10915     HEAP32[i112 + 4 >> 2] = HEAP32[i73 + 4 >> 2];
 10916     HEAP32[i112 + 8 >> 2] = HEAP32[i73 + 8 >> 2];
 10917     HEAP32[i112 + 12 >> 2] = HEAP32[i73 + 12 >> 2];
 10919    i112 = HEAP32[i4 >> 2] | 0;
 10920    if ((i112 | 0) <= 0) {
 10921     break;
 10923    d44 = d115 * d115 + (d114 * d114 + d113 * d113);
 10924    d49 = d56 > .39269909262657166 ? .19634954631328583 : d56 * .5;
 10925    d56 = d32 * d32 + (d64 * d64 + d78 * d78);
 10926    i108 = i7 | 0;
 10927    i109 = i2 + 20 | 0;
 10928    i110 = i2 + 36 | 0;
 10929    i107 = i2 + 8 | 0;
 10930    i106 = i2 + 24 | 0;
 10931    i100 = i2 + 40 | 0;
 10932    i101 = i2 + 12 | 0;
 10933    i99 = i2 + 28 | 0;
 10934    i102 = i2 + 44 | 0;
 10935    i103 = i9 | 0;
 10936    i98 = i9 + 4 | 0;
 10937    i11 = i9 + 8 | 0;
 10938    i12 = i9 + 12 | 0;
 10939    i79 = i9 + 16 | 0;
 10940    i26 = i9 + 20 | 0;
 10941    i76 = i9 + 24 | 0;
 10942    i96 = i9 + 28 | 0;
 10943    i93 = i9 + 32 | 0;
 10944    i92 = i9 + 36 | 0;
 10945    i91 = i9 + 40 | 0;
 10946    i94 = i9 + 44 | 0;
 10947    i89 = i19 | 0;
 10948    i88 = i19 + 144 | 0;
 10949    i87 = i19 + 160 | 0;
 10950    i90 = i19 + 164 | 0;
 10951    i85 = i19 + 180 | 0;
 10952    i84 = i19 + 196 | 0;
 10953    i83 = i19 + 212 | 0;
 10954    i86 = i19 + 228 | 0;
 10955    i82 = i19 + 244 | 0;
 10956    i104 = i19 + 260 | 0;
 10957    i95 = i19 + 276 | 0;
 10958    i105 = i19 + 292 | 0;
 10959    i111 = i19 + 308 | 0;
 10960    i116 = i16;
 10961    i117 = i19 + 324 | 0;
 10962    i118 = i17;
 10963    i119 = i19 + 340 | 0;
 10964    i120 = i18;
 10965    i121 = i19 + 356 | 0;
 10966    i122 = i13 & 1;
 10967    i123 = i19 + 360 | 0;
 10968    i124 = i19 | 0;
 10969    i125 = i66 | 0;
 10970    i126 = i3 + 20 | 0;
 10971    i127 = i3 + 36 | 0;
 10972    i128 = i3 + 8 | 0;
 10973    i129 = i3 + 24 | 0;
 10974    i130 = i3 + 40 | 0;
 10975    i131 = i3 + 12 | 0;
 10976    i132 = i3 + 28 | 0;
 10977    i133 = i3 + 44 | 0;
 10978    i134 = i9 + 64 | 0;
 10979    i135 = i9 + 68 | 0;
 10980    i136 = i9 + 72 | 0;
 10981    i137 = i9 + 76 | 0;
 10982    i138 = i9 + 80 | 0;
 10983    i139 = i9 + 84 | 0;
 10984    i140 = i9 + 88 | 0;
 10985    i141 = i9 + 92 | 0;
 10986    i142 = i9 + 96 | 0;
 10987    i143 = i9 + 100 | 0;
 10988    i144 = i9 + 104 | 0;
 10989    i145 = i9 + 108 | 0;
 10990    if (d44 > 1.1920928955078125e-7) {
 10991     i146 = 0;
 10992     i147 = i112;
 10993    } else {
 10994     if (i13) {
 10995      i148 = 0;
 10996      while (1) {
 10997       i148 = i148 + 1 | 0;
 10998       if ((i148 | 0) >= (i112 | 0)) {
 10999        break L1724;
 11002     } else {
 11003      i148 = 0;
 11004      while (1) {
 11005       i148 = i148 + 1 | 0;
 11006       if ((i148 | 0) >= (i112 | 0)) {
 11007        break L1724;
 11012    do {
 11013     d57 = +Math_sqrt(+d44);
 11014     d35 = +Math_sin(+d49) / d57;
 11015     d57 = d113 * d35;
 11016     d31 = d114 * d35;
 11017     d55 = d115 * d35;
 11018     d35 = +Math_cos(+d49);
 11019     d43 = +Math_sqrt(+d56);
 11020     d34 = +(i146 | 0) * (6.2831854820251465 / +(i147 | 0)) * .5;
 11021     d42 = +Math_sin(+d34) / d43;
 11022     d43 = d64 * d42;
 11023     d62 = d78 * d42;
 11024     d63 = d32 * d42;
 11025     d42 = +Math_cos(+d34);
 11026     if (i13) {
 11027      d34 = -0.0 - d43;
 11028      d52 = -0.0 - d62;
 11029      d36 = -0.0 - d63;
 11030      d37 = d55 * d52 + (d57 * d42 + d35 * d34) - d31 * d36;
 11031      d38 = d57 * d36 + (d31 * d42 + d35 * d52) - d55 * d34;
 11032      d53 = d31 * d34 + (d55 * d42 + d35 * d36) - d57 * d52;
 11033      d51 = d35 * d42 - d57 * d34 - d31 * d52 - d55 * d36;
 11034      d36 = d63 * d38 + (d43 * d51 + d42 * d37) - d62 * d53;
 11035      d52 = d43 * d53 + (d42 * d38 + d62 * d51) - d63 * d37;
 11036      d34 = d62 * d37 + (d63 * d51 + d42 * d53) - d43 * d38;
 11037      d48 = d42 * d51 - d43 * d37 - d62 * d38 - d63 * d53;
 11038      d53 = 2.0 / (d48 * d48 + (d34 * d34 + (d36 * d36 + d52 * d52)));
 11039      d38 = d36 * d53;
 11040      d37 = d52 * d53;
 11041      d51 = d34 * d53;
 11042      d53 = d48 * d38;
 11043      d54 = d48 * d37;
 11044      d50 = d48 * d51;
 11045      d48 = d36 * d38;
 11046      d38 = d36 * d37;
 11047      d33 = d36 * d51;
 11048      d36 = d52 * d37;
 11049      d37 = d52 * d51;
 11050      d52 = d34 * d51;
 11051      d51 = 1.0 - (d36 + d52);
 11052      d34 = d38 - d50;
 11053      d47 = d33 + d54;
 11054      d46 = d38 + d50;
 11055      d50 = 1.0 - (d48 + d52);
 11056      d52 = d37 - d53;
 11057      d38 = d33 - d54;
 11058      d54 = d37 + d53;
 11059      d53 = 1.0 - (d48 + d36);
 11060      d36 = +HEAPF32[i108 >> 2];
 11061      d48 = +HEAPF32[i109 >> 2];
 11062      d37 = +HEAPF32[i110 >> 2];
 11063      d33 = +HEAPF32[i107 >> 2];
 11064      d45 = +HEAPF32[i106 >> 2];
 11065      d41 = +HEAPF32[i100 >> 2];
 11066      d40 = +HEAPF32[i101 >> 2];
 11067      d39 = +HEAPF32[i99 >> 2];
 11068      d61 = +HEAPF32[i102 >> 2];
 11069      HEAPF32[i103 >> 2] = d37 * d47 + (d48 * d34 + d36 * d51);
 11070      HEAPF32[i98 >> 2] = d51 * d33 + d34 * d45 + d47 * d41;
 11071      HEAPF32[i11 >> 2] = d51 * d40 + d34 * d39 + d47 * d61;
 11072      HEAPF32[i12 >> 2] = 0.0;
 11073      HEAPF32[i79 >> 2] = d37 * d52 + (d36 * d46 + d48 * d50);
 11074      HEAPF32[i26 >> 2] = d46 * d33 + d50 * d45 + d52 * d41;
 11075      HEAPF32[i76 >> 2] = d46 * d40 + d50 * d39 + d52 * d61;
 11076      HEAPF32[i96 >> 2] = 0.0;
 11077      HEAPF32[i93 >> 2] = d36 * d38 + d48 * d54 + d37 * d53;
 11078      HEAPF32[i92 >> 2] = d38 * d33 + d54 * d45 + d53 * d41;
 11079      HEAPF32[i91 >> 2] = d38 * d40 + d54 * d39 + d53 * d61;
 11080      HEAPF32[i94 >> 2] = 0.0;
 11081      HEAP32[i67 >> 2] = HEAP32[i68 >> 2];
 11082      HEAP32[i67 + 4 >> 2] = HEAP32[i68 + 4 >> 2];
 11083      HEAP32[i67 + 8 >> 2] = HEAP32[i68 + 8 >> 2];
 11084      HEAP32[i67 + 12 >> 2] = HEAP32[i68 + 12 >> 2];
 11085      HEAP32[i69 >> 2] = HEAP32[i70 >> 2];
 11086      HEAP32[i69 + 4 >> 2] = HEAP32[i70 + 4 >> 2];
 11087      HEAP32[i69 + 8 >> 2] = HEAP32[i70 + 8 >> 2];
 11088      HEAP32[i69 + 12 >> 2] = HEAP32[i70 + 12 >> 2];
 11089      HEAP32[i71 >> 2] = HEAP32[i72 >> 2];
 11090      HEAP32[i71 + 4 >> 2] = HEAP32[i72 + 4 >> 2];
 11091      HEAP32[i71 + 8 >> 2] = HEAP32[i72 + 8 >> 2];
 11092      HEAP32[i71 + 12 >> 2] = HEAP32[i72 + 12 >> 2];
 11093      HEAP32[i73 >> 2] = HEAP32[i74 >> 2];
 11094      HEAP32[i73 + 4 >> 2] = HEAP32[i74 + 4 >> 2];
 11095      HEAP32[i73 + 8 >> 2] = HEAP32[i74 + 8 >> 2];
 11096      HEAP32[i73 + 12 >> 2] = HEAP32[i74 + 12 >> 2];
 11097     } else {
 11098      HEAP32[i8 >> 2] = HEAP32[i25 >> 2];
 11099      HEAP32[i8 + 4 >> 2] = HEAP32[i25 + 4 >> 2];
 11100      HEAP32[i8 + 8 >> 2] = HEAP32[i25 + 8 >> 2];
 11101      HEAP32[i8 + 12 >> 2] = HEAP32[i25 + 12 >> 2];
 11102      HEAP32[i23 >> 2] = HEAP32[i27 >> 2];
 11103      HEAP32[i23 + 4 >> 2] = HEAP32[i27 + 4 >> 2];
 11104      HEAP32[i23 + 8 >> 2] = HEAP32[i27 + 8 >> 2];
 11105      HEAP32[i23 + 12 >> 2] = HEAP32[i27 + 12 >> 2];
 11106      HEAP32[i29 >> 2] = HEAP32[i28 >> 2];
 11107      HEAP32[i29 + 4 >> 2] = HEAP32[i28 + 4 >> 2];
 11108      HEAP32[i29 + 8 >> 2] = HEAP32[i28 + 8 >> 2];
 11109      HEAP32[i29 + 12 >> 2] = HEAP32[i28 + 12 >> 2];
 11110      HEAP32[i30 >> 2] = HEAP32[i65 >> 2];
 11111      HEAP32[i30 + 4 >> 2] = HEAP32[i65 + 4 >> 2];
 11112      HEAP32[i30 + 8 >> 2] = HEAP32[i65 + 8 >> 2];
 11113      HEAP32[i30 + 12 >> 2] = HEAP32[i65 + 12 >> 2];
 11114      d61 = -0.0 - d43;
 11115      d53 = -0.0 - d62;
 11116      d39 = -0.0 - d63;
 11117      d54 = d55 * d53 + (d57 * d42 + d35 * d61) - d31 * d39;
 11118      d40 = d57 * d39 + (d31 * d42 + d35 * d53) - d55 * d61;
 11119      d38 = d31 * d61 + (d55 * d42 + d35 * d39) - d57 * d53;
 11120      d41 = d35 * d42 - d57 * d61 - d31 * d53 - d55 * d39;
 11121      d39 = d63 * d40 + (d43 * d41 + d42 * d54) - d62 * d38;
 11122      d55 = d43 * d38 + (d42 * d40 + d62 * d41) - d63 * d54;
 11123      d53 = d62 * d54 + (d63 * d41 + d42 * d38) - d43 * d40;
 11124      d31 = d42 * d41 - d43 * d54 - d62 * d40 - d63 * d38;
 11125      d38 = 2.0 / (d31 * d31 + (d53 * d53 + (d39 * d39 + d55 * d55)));
 11126      d63 = d39 * d38;
 11127      d40 = d55 * d38;
 11128      d62 = d53 * d38;
 11129      d38 = d31 * d63;
 11130      d54 = d31 * d40;
 11131      d43 = d31 * d62;
 11132      d31 = d39 * d63;
 11133      d63 = d39 * d40;
 11134      d41 = d39 * d62;
 11135      d39 = d55 * d40;
 11136      d40 = d55 * d62;
 11137      d55 = d53 * d62;
 11138      d62 = 1.0 - (d39 + d55);
 11139      d53 = d63 - d43;
 11140      d42 = d41 + d54;
 11141      d61 = d63 + d43;
 11142      d43 = 1.0 - (d31 + d55);
 11143      d55 = d40 - d38;
 11144      d63 = d41 - d54;
 11145      d54 = d40 + d38;
 11146      d38 = 1.0 - (d31 + d39);
 11147      d39 = +HEAPF32[i125 >> 2];
 11148      d31 = +HEAPF32[i126 >> 2];
 11149      d40 = +HEAPF32[i127 >> 2];
 11150      d41 = +HEAPF32[i128 >> 2];
 11151      d57 = +HEAPF32[i129 >> 2];
 11152      d35 = +HEAPF32[i130 >> 2];
 11153      d45 = +HEAPF32[i131 >> 2];
 11154      d33 = +HEAPF32[i132 >> 2];
 11155      d37 = +HEAPF32[i133 >> 2];
 11156      HEAPF32[i134 >> 2] = d40 * d42 + (d31 * d53 + d39 * d62);
 11157      HEAPF32[i135 >> 2] = d62 * d41 + d53 * d57 + d42 * d35;
 11158      HEAPF32[i136 >> 2] = d62 * d45 + d53 * d33 + d42 * d37;
 11159      HEAPF32[i137 >> 2] = 0.0;
 11160      HEAPF32[i138 >> 2] = d40 * d55 + (d39 * d61 + d31 * d43);
 11161      HEAPF32[i139 >> 2] = d61 * d41 + d43 * d57 + d55 * d35;
 11162      HEAPF32[i140 >> 2] = d61 * d45 + d43 * d33 + d55 * d37;
 11163      HEAPF32[i141 >> 2] = 0.0;
 11164      HEAPF32[i142 >> 2] = d39 * d63 + d31 * d54 + d40 * d38;
 11165      HEAPF32[i143 >> 2] = d63 * d41 + d54 * d57 + d38 * d35;
 11166      HEAPF32[i144 >> 2] = d63 * d45 + d54 * d33 + d38 * d37;
 11167      HEAPF32[i145 >> 2] = 0.0;
 11169     i112 = HEAP32[i14 >> 2] | 0;
 11170     _memset(i88 | 0, -1 | 0, 16);
 11171     HEAP32[i89 >> 2] = 3064;
 11172     HEAP32[i87 >> 2] = i5;
 11173     HEAP32[i90 >> 2] = HEAP32[i8 >> 2];
 11174     HEAP32[i90 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
 11175     HEAP32[i90 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
 11176     HEAP32[i90 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
 11177     HEAP32[i85 >> 2] = HEAP32[i23 >> 2];
 11178     HEAP32[i85 + 4 >> 2] = HEAP32[i23 + 4 >> 2];
 11179     HEAP32[i85 + 8 >> 2] = HEAP32[i23 + 8 >> 2];
 11180     HEAP32[i85 + 12 >> 2] = HEAP32[i23 + 12 >> 2];
 11181     HEAP32[i84 >> 2] = HEAP32[i29 >> 2];
 11182     HEAP32[i84 + 4 >> 2] = HEAP32[i29 + 4 >> 2];
 11183     HEAP32[i84 + 8 >> 2] = HEAP32[i29 + 8 >> 2];
 11184     HEAP32[i84 + 12 >> 2] = HEAP32[i29 + 12 >> 2];
 11185     HEAP32[i83 >> 2] = HEAP32[i30 >> 2];
 11186     HEAP32[i83 + 4 >> 2] = HEAP32[i30 + 4 >> 2];
 11187     HEAP32[i83 + 8 >> 2] = HEAP32[i30 + 8 >> 2];
 11188     HEAP32[i83 + 12 >> 2] = HEAP32[i30 + 12 >> 2];
 11189     HEAP32[i86 >> 2] = HEAP32[i67 >> 2];
 11190     HEAP32[i86 + 4 >> 2] = HEAP32[i67 + 4 >> 2];
 11191     HEAP32[i86 + 8 >> 2] = HEAP32[i67 + 8 >> 2];
 11192     HEAP32[i86 + 12 >> 2] = HEAP32[i67 + 12 >> 2];
 11193     HEAP32[i82 >> 2] = HEAP32[i69 >> 2];
 11194     HEAP32[i82 + 4 >> 2] = HEAP32[i69 + 4 >> 2];
 11195     HEAP32[i82 + 8 >> 2] = HEAP32[i69 + 8 >> 2];
 11196     HEAP32[i82 + 12 >> 2] = HEAP32[i69 + 12 >> 2];
 11197     HEAP32[i104 >> 2] = HEAP32[i71 >> 2];
 11198     HEAP32[i104 + 4 >> 2] = HEAP32[i71 + 4 >> 2];
 11199     HEAP32[i104 + 8 >> 2] = HEAP32[i71 + 8 >> 2];
 11200     HEAP32[i104 + 12 >> 2] = HEAP32[i71 + 12 >> 2];
 11201     HEAP32[i95 >> 2] = HEAP32[i73 >> 2];
 11202     HEAP32[i95 + 4 >> 2] = HEAP32[i73 + 4 >> 2];
 11203     HEAP32[i95 + 8 >> 2] = HEAP32[i73 + 8 >> 2];
 11204     HEAP32[i95 + 12 >> 2] = HEAP32[i73 + 12 >> 2];
 11205     HEAP32[i105 >> 2] = HEAP32[i20 >> 2];
 11206     HEAP32[i105 + 4 >> 2] = HEAP32[i20 + 4 >> 2];
 11207     HEAP32[i105 + 8 >> 2] = HEAP32[i20 + 8 >> 2];
 11208     HEAP32[i105 + 12 >> 2] = HEAP32[i20 + 12 >> 2];
 11209     HEAP32[i111 >> 2] = HEAP32[i116 >> 2];
 11210     HEAP32[i111 + 4 >> 2] = HEAP32[i116 + 4 >> 2];
 11211     HEAP32[i111 + 8 >> 2] = HEAP32[i116 + 8 >> 2];
 11212     HEAP32[i111 + 12 >> 2] = HEAP32[i116 + 12 >> 2];
 11213     HEAP32[i117 >> 2] = HEAP32[i118 >> 2];
 11214     HEAP32[i117 + 4 >> 2] = HEAP32[i118 + 4 >> 2];
 11215     HEAP32[i117 + 8 >> 2] = HEAP32[i118 + 8 >> 2];
 11216     HEAP32[i117 + 12 >> 2] = HEAP32[i118 + 12 >> 2];
 11217     HEAP32[i119 >> 2] = HEAP32[i120 >> 2];
 11218     HEAP32[i119 + 4 >> 2] = HEAP32[i120 + 4 >> 2];
 11219     HEAP32[i119 + 8 >> 2] = HEAP32[i120 + 8 >> 2];
 11220     HEAP32[i119 + 12 >> 2] = HEAP32[i120 + 12 >> 2];
 11221     HEAP8[i121] = i122;
 11222     HEAP32[i123 >> 2] = i112;
 11223     __ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i10, i9, i124, i112, 0);
 11224     i147 = HEAP32[i4 >> 2] | 0;
 11225     i146 = i146 + 1 | 0;
 11226    } while ((i146 | 0) < (i147 | 0));
 11228  } while (0);
 11229  if ((HEAP8[i1 + 16 | 0] | 0) == 0) {
 11230   STACKTOP = i6;
 11231   return;
 11233  i1 = HEAP32[i21 >> 2] | 0;
 11234  if ((HEAP32[i1 + 1116 >> 2] | 0) == 0) {
 11235   STACKTOP = i6;
 11236   return;
 11238  if ((HEAP32[i1 + 1108 >> 2] | 0) == (HEAP32[i5 + 136 >> 2] | 0)) {
 11239   __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i1, i5 + 8 | 0, i5 + 72 | 0);
 11240   STACKTOP = i6;
 11241   return;
 11242  } else {
 11243   __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i1, i5 + 72 | 0, i5 + 8 | 0);
 11244   STACKTOP = i6;
 11245   return;
 11248 function __ZN20btConvexHullInternal24findEdgeForCoplanarFacesEPNS_6VertexES1_RPNS_4EdgeES4_S1_S1_(i1, i2, i3, i4, i5, i6, i7) {
 11249  i1 = i1 | 0;
 11250  i2 = i2 | 0;
 11251  i3 = i3 | 0;
 11252  i4 = i4 | 0;
 11253  i5 = i5 | 0;
 11254  i6 = i6 | 0;
 11255  i7 = i7 | 0;
 11256  var i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0, i68 = 0, i69 = 0, i70 = 0, i71 = 0, i72 = 0, i73 = 0, i74 = 0, i75 = 0, i76 = 0, i77 = 0, i78 = 0, i79 = 0, i80 = 0, i81 = 0, i82 = 0, i83 = 0, i84 = 0, i85 = 0, i86 = 0, i87 = 0, i88 = 0, i89 = 0, i90 = 0, i91 = 0, i92 = 0, i93 = 0, i94 = 0, i95 = 0, i96 = 0, i97 = 0, i98 = 0, i99 = 0, i100 = 0, i101 = 0, i102 = 0, i103 = 0, i104 = 0, i105 = 0, i106 = 0, i107 = 0, i108 = 0, i109 = 0, i110 = 0, i111 = 0, i112 = 0, i113 = 0, i114 = 0, i115 = 0, i116 = 0, i117 = 0, i118 = 0;
 11257  i8 = STACKTOP;
 11258  STACKTOP = STACKTOP + 192 | 0;
 11259  i9 = i8 | 0;
 11260  i10 = i8 + 24 | 0;
 11261  i11 = i8 + 48 | 0;
 11262  i12 = i8 + 72 | 0;
 11263  i13 = i8 + 96 | 0;
 11264  i14 = i8 + 120 | 0;
 11265  i15 = i8 + 144 | 0;
 11266  i16 = i8 + 168 | 0;
 11267  i17 = HEAP32[i4 >> 2] | 0;
 11268  i18 = HEAP32[i5 >> 2] | 0;
 11269  i19 = (i17 | 0) != 0;
 11270  if (i19) {
 11271   i20 = HEAP32[i17 + 12 >> 2] | 0;
 11272  } else {
 11273   i20 = i2;
 11275  i21 = HEAP32[i20 + 88 >> 2] | 0;
 11276  i22 = HEAP32[i20 + 92 >> 2] | 0;
 11277  i23 = HEAP32[i20 + 96 >> 2] | 0;
 11278  if ((i18 | 0) == 0) {
 11279   i24 = i3;
 11280  } else {
 11281   i24 = HEAP32[i18 + 12 >> 2] | 0;
 11283  i20 = HEAP32[i24 + 88 >> 2] | 0;
 11284  i25 = HEAP32[i24 + 92 >> 2] | 0;
 11285  i26 = HEAP32[i24 + 96 >> 2] | 0;
 11286  i24 = HEAP32[i2 + 88 >> 2] | 0;
 11287  i27 = (HEAP32[i3 + 88 >> 2] | 0) - i24 | 0;
 11288  i28 = HEAP32[i2 + 92 >> 2] | 0;
 11289  i29 = (HEAP32[i3 + 92 >> 2] | 0) - i28 | 0;
 11290  i30 = HEAP32[i2 + 96 >> 2] | 0;
 11291  i2 = (HEAP32[i3 + 96 >> 2] | 0) - i30 | 0;
 11292  i3 = HEAP32[(i19 ? i17 : i18) + 12 >> 2] | 0;
 11293  i19 = (HEAP32[i3 + 88 >> 2] | 0) - i24 | 0;
 11294  i31 = (HEAP32[i3 + 92 >> 2] | 0) - i28 | 0;
 11295  i32 = (HEAP32[i3 + 96 >> 2] | 0) - i30 | 0;
 11296  i3 = Math_imul(i31, i2) | 0;
 11297  i33 = i3 - (Math_imul(i32, i29) | 0) | 0;
 11298  i3 = i33;
 11299  i34 = (i33 | 0) < 0 ? -1 : 0;
 11300  i33 = Math_imul(i32, i27) | 0;
 11301  i32 = i33 - (Math_imul(i19, i2) | 0) | 0;
 11302  i33 = i32;
 11303  i35 = (i32 | 0) < 0 ? -1 : 0;
 11304  i32 = Math_imul(i19, i29) | 0;
 11305  i19 = i32 - (Math_imul(i31, i27) | 0) | 0;
 11306  i31 = i19;
 11307  i32 = (i19 | 0) < 0 ? -1 : 0;
 11308  i19 = ___muldi3(i3, i34, i24, (i24 | 0) < 0 ? -1 : 0) | 0;
 11309  i24 = tempRet0;
 11310  i36 = ___muldi3(i33, i35, i28, (i28 | 0) < 0 ? -1 : 0) | 0;
 11311  i28 = tempRet0;
 11312  i37 = ___muldi3(i31, i32, i30, (i30 | 0) < 0 ? -1 : 0) | 0;
 11313  i30 = _i64Add(i19, i24, i37, tempRet0) | 0;
 11314  i37 = _i64Add(i30, tempRet0, i36, i28) | 0;
 11315  i28 = tempRet0;
 11316  i36 = i29;
 11317  i30 = (i29 | 0) < 0 ? -1 : 0;
 11318  i24 = ___muldi3(i31, i32, i36, i30) | 0;
 11319  i19 = tempRet0;
 11320  i38 = i2;
 11321  i39 = (i2 | 0) < 0 ? -1 : 0;
 11322  i40 = ___muldi3(i33, i35, i38, i39) | 0;
 11323  i41 = _i64Subtract(i24, i19, i40, tempRet0) | 0;
 11324  i40 = tempRet0;
 11325  i19 = ___muldi3(i3, i34, i38, i39) | 0;
 11326  i39 = tempRet0;
 11327  i38 = i27;
 11328  i24 = (i27 | 0) < 0 ? -1 : 0;
 11329  i42 = ___muldi3(i31, i32, i38, i24) | 0;
 11330  i43 = _i64Subtract(i19, i39, i42, tempRet0) | 0;
 11331  i42 = tempRet0;
 11332  i39 = ___muldi3(i33, i35, i38, i24) | 0;
 11333  i24 = tempRet0;
 11334  i38 = ___muldi3(i3, i34, i36, i30) | 0;
 11335  i30 = _i64Subtract(i39, i24, i38, tempRet0) | 0;
 11336  i38 = tempRet0;
 11337  i24 = ___muldi3(i41, i40, i21, (i21 | 0) < 0 ? -1 : 0) | 0;
 11338  i39 = tempRet0;
 11339  i36 = ___muldi3(i43, i42, i22, (i22 | 0) < 0 ? -1 : 0) | 0;
 11340  i19 = _i64Add(i36, tempRet0, i24, i39) | 0;
 11341  i39 = tempRet0;
 11342  i24 = ___muldi3(i30, i38, i23, (i23 | 0) < 0 ? -1 : 0) | 0;
 11343  i36 = _i64Add(i19, i39, i24, tempRet0) | 0;
 11344  i24 = tempRet0;
 11345  do {
 11346   if ((i17 | 0) == 0) {
 11347    i44 = i24;
 11348    i45 = i36;
 11349    i46 = i21;
 11350    i47 = i22;
 11351    i48 = i23;
 11352    i49 = i18;
 11353   } else {
 11354    if ((HEAP32[i17 + 12 >> 2] | 0) == (i6 | 0)) {
 11355     i44 = i24;
 11356     i45 = i36;
 11357     i46 = i21;
 11358     i47 = i22;
 11359     i48 = i23;
 11360     i49 = i18;
 11361     break;
 11363    i39 = i1 + 100 | 0;
 11364    i19 = i23;
 11365    i50 = i22;
 11366    i51 = i21;
 11367    i52 = i24;
 11368    i53 = i36;
 11369    i54 = i17;
 11370    while (1) {
 11371     i55 = HEAP32[(HEAP32[i54 + 8 >> 2] | 0) + 4 >> 2] | 0;
 11372     i56 = i55 + 12 | 0;
 11373     i57 = HEAP32[i56 >> 2] | 0;
 11374     i58 = HEAP32[i57 + 88 >> 2] | 0;
 11375     i59 = i58;
 11376     i60 = (i58 | 0) < 0 ? -1 : 0;
 11377     i58 = ___muldi3(i59, i60, i3, i34) | 0;
 11378     i61 = tempRet0;
 11379     i62 = HEAP32[i57 + 92 >> 2] | 0;
 11380     i63 = i62;
 11381     i64 = (i62 | 0) < 0 ? -1 : 0;
 11382     i62 = ___muldi3(i63, i64, i33, i35) | 0;
 11383     i65 = _i64Add(i62, tempRet0, i58, i61) | 0;
 11384     i61 = tempRet0;
 11385     i58 = HEAP32[i57 + 96 >> 2] | 0;
 11386     i57 = i58;
 11387     i62 = (i58 | 0) < 0 ? -1 : 0;
 11388     i58 = ___muldi3(i57, i62, i31, i32) | 0;
 11389     i66 = _i64Add(i65, i61, i58, tempRet0) | 0;
 11390     i58 = tempRet0;
 11391     if ((i58 | 0) < (i28 | 0) | (i58 | 0) == (i28 | 0) & i66 >>> 0 < i37 >>> 0) {
 11392      i67 = i19;
 11393      i68 = i50;
 11394      i69 = i51;
 11395      i70 = i52;
 11396      i71 = i53;
 11397      break;
 11399     if ((HEAP32[i55 + 20 >> 2] | 0) == (HEAP32[i39 >> 2] | 0)) {
 11400      i67 = i19;
 11401      i68 = i50;
 11402      i69 = i51;
 11403      i70 = i52;
 11404      i71 = i53;
 11405      break;
 11407     i66 = ___muldi3(i59, i60, i41, i40) | 0;
 11408     i60 = tempRet0;
 11409     i59 = ___muldi3(i63, i64, i43, i42) | 0;
 11410     i64 = _i64Add(i59, tempRet0, i66, i60) | 0;
 11411     i60 = tempRet0;
 11412     i66 = ___muldi3(i57, i62, i30, i38) | 0;
 11413     i62 = _i64Add(i64, i60, i66, tempRet0) | 0;
 11414     i66 = tempRet0;
 11415     if (!((i66 | 0) > (i52 | 0) | (i66 | 0) == (i52 | 0) & i62 >>> 0 > i53 >>> 0)) {
 11416      i67 = i19;
 11417      i68 = i50;
 11418      i69 = i51;
 11419      i70 = i52;
 11420      i71 = i53;
 11421      break;
 11423     HEAP32[i4 >> 2] = i55;
 11424     i60 = HEAP32[i56 >> 2] | 0;
 11425     i56 = HEAP32[i60 + 88 >> 2] | 0;
 11426     i64 = HEAP32[i60 + 92 >> 2] | 0;
 11427     i57 = HEAP32[i60 + 96 >> 2] | 0;
 11428     if ((i60 | 0) == (i6 | 0)) {
 11429      i67 = i57;
 11430      i68 = i64;
 11431      i69 = i56;
 11432      i70 = i66;
 11433      i71 = i62;
 11434      break;
 11435     } else {
 11436      i19 = i57;
 11437      i50 = i64;
 11438      i51 = i56;
 11439      i52 = i66;
 11440      i53 = i62;
 11441      i54 = i55;
 11444    i44 = i70;
 11445    i45 = i71;
 11446    i46 = i69;
 11447    i47 = i68;
 11448    i48 = i67;
 11449    i49 = HEAP32[i5 >> 2] | 0;
 11451  } while (0);
 11452  i67 = ___muldi3(i41, i40, i20, (i20 | 0) < 0 ? -1 : 0) | 0;
 11453  i68 = tempRet0;
 11454  i69 = ___muldi3(i43, i42, i25, (i25 | 0) < 0 ? -1 : 0) | 0;
 11455  i71 = _i64Add(i69, tempRet0, i67, i68) | 0;
 11456  i68 = tempRet0;
 11457  i67 = ___muldi3(i30, i38, i26, (i26 | 0) < 0 ? -1 : 0) | 0;
 11458  i69 = _i64Add(i71, i68, i67, tempRet0) | 0;
 11459  i67 = tempRet0;
 11460  L1159 : do {
 11461   if ((i49 | 0) == 0) {
 11462    i72 = i67;
 11463    i73 = i69;
 11464    i74 = i20;
 11465    i75 = i25;
 11466    i76 = i26;
 11467    i77 = 0;
 11468   } else {
 11469    if ((HEAP32[i49 + 12 >> 2] | 0) == (i7 | 0)) {
 11470     i72 = i67;
 11471     i73 = i69;
 11472     i74 = i20;
 11473     i75 = i25;
 11474     i76 = i26;
 11475     i77 = i49;
 11476     break;
 11478    i68 = i1 + 100 | 0;
 11479    i71 = i26;
 11480    i70 = i25;
 11481    i36 = i20;
 11482    i24 = i67;
 11483    i21 = i69;
 11484    i22 = i49;
 11485    while (1) {
 11486     i23 = HEAP32[HEAP32[i22 + 8 >> 2] >> 2] | 0;
 11487     i54 = i23 + 12 | 0;
 11488     i53 = HEAP32[i54 >> 2] | 0;
 11489     i52 = HEAP32[i53 + 88 >> 2] | 0;
 11490     i51 = i52;
 11491     i50 = (i52 | 0) < 0 ? -1 : 0;
 11492     i52 = ___muldi3(i51, i50, i3, i34) | 0;
 11493     i19 = tempRet0;
 11494     i39 = HEAP32[i53 + 92 >> 2] | 0;
 11495     i55 = i39;
 11496     i62 = (i39 | 0) < 0 ? -1 : 0;
 11497     i39 = ___muldi3(i55, i62, i33, i35) | 0;
 11498     i66 = _i64Add(i39, tempRet0, i52, i19) | 0;
 11499     i19 = tempRet0;
 11500     i52 = HEAP32[i53 + 96 >> 2] | 0;
 11501     i53 = i52;
 11502     i39 = (i52 | 0) < 0 ? -1 : 0;
 11503     i52 = ___muldi3(i53, i39, i31, i32) | 0;
 11504     i56 = _i64Add(i66, i19, i52, tempRet0) | 0;
 11505     i52 = tempRet0;
 11506     if ((i52 | 0) < (i28 | 0) | (i52 | 0) == (i28 | 0) & i56 >>> 0 < i37 >>> 0) {
 11507      i72 = i24;
 11508      i73 = i21;
 11509      i74 = i36;
 11510      i75 = i70;
 11511      i76 = i71;
 11512      i77 = i22;
 11513      break L1159;
 11515     if ((HEAP32[i23 + 20 >> 2] | 0) == (HEAP32[i68 >> 2] | 0)) {
 11516      i72 = i24;
 11517      i73 = i21;
 11518      i74 = i36;
 11519      i75 = i70;
 11520      i76 = i71;
 11521      i77 = i22;
 11522      break L1159;
 11524     i56 = ___muldi3(i51, i50, i41, i40) | 0;
 11525     i50 = tempRet0;
 11526     i51 = ___muldi3(i55, i62, i43, i42) | 0;
 11527     i62 = _i64Add(i51, tempRet0, i56, i50) | 0;
 11528     i50 = tempRet0;
 11529     i56 = ___muldi3(i53, i39, i30, i38) | 0;
 11530     i39 = _i64Add(i62, i50, i56, tempRet0) | 0;
 11531     i56 = tempRet0;
 11532     if (!((i56 | 0) > (i24 | 0) | (i56 | 0) == (i24 | 0) & i39 >>> 0 > i21 >>> 0)) {
 11533      i72 = i24;
 11534      i73 = i21;
 11535      i74 = i36;
 11536      i75 = i70;
 11537      i76 = i71;
 11538      i77 = i22;
 11539      break L1159;
 11541     HEAP32[i5 >> 2] = i23;
 11542     i50 = HEAP32[i54 >> 2] | 0;
 11543     i54 = HEAP32[i50 + 88 >> 2] | 0;
 11544     i62 = HEAP32[i50 + 92 >> 2] | 0;
 11545     i53 = HEAP32[i50 + 96 >> 2] | 0;
 11546     if ((i50 | 0) == (i7 | 0)) {
 11547      i72 = i56;
 11548      i73 = i39;
 11549      i74 = i54;
 11550      i75 = i62;
 11551      i76 = i53;
 11552      i77 = i23;
 11553      break;
 11554     } else {
 11555      i71 = i53;
 11556      i70 = i62;
 11557      i36 = i54;
 11558      i24 = i56;
 11559      i21 = i39;
 11560      i22 = i23;
 11564  } while (0);
 11565  i37 = _i64Subtract(i73, i72, i45, i44) | 0;
 11566  i44 = tempRet0;
 11567  i45 = 0;
 11568  if ((i44 | 0) > (i45 | 0) | (i44 | 0) == (i45 | 0) & i37 >>> 0 > 0 >>> 0) {
 11569   i45 = i1 + 100 | 0;
 11570   i72 = _i64Subtract(0, 0, i31, i32) | 0;
 11571   i73 = tempRet0;
 11572   i28 = i11 + 16 | 0;
 11573   i49 = i11 | 0;
 11574   i69 = i11 + 8 | 0;
 11575   i67 = i12 + 16 | 0;
 11576   i20 = i12 | 0;
 11577   i25 = i12 + 8 | 0;
 11578   i26 = i9 + 16 | 0;
 11579   i22 = i9 | 0;
 11580   i21 = i9 + 8 | 0;
 11581   i24 = i10 + 16 | 0;
 11582   i36 = i10 | 0;
 11583   i70 = i10 + 8 | 0;
 11584   i71 = i44;
 11585   i68 = i37;
 11586   i23 = i74;
 11587   i39 = i75;
 11588   i56 = i76;
 11589   i54 = i46;
 11590   i62 = i47;
 11591   i53 = i48;
 11592   L1170 : while (1) {
 11593    i50 = i71;
 11594    i51 = i68;
 11595    i55 = i23;
 11596    i52 = i39;
 11597    i19 = i56;
 11598    L1172 : while (1) {
 11599     i66 = Math_imul(i55 - i54 | 0, i27) | 0;
 11600     i64 = Math_imul(i52 - i62 | 0, i29) | 0;
 11601     i57 = i64 + (Math_imul(i19 - i53 | 0, i2) | 0) + i66 | 0;
 11602     i66 = i57;
 11603     i64 = (i57 | 0) < 0 ? -1 : 0;
 11604     i78 = HEAP32[i4 >> 2] | 0;
 11605     do {
 11606      if ((i78 | 0) != 0) {
 11607       if ((HEAP32[i78 + 12 >> 2] | 0) == (i6 | 0)) {
 11608        break;
 11610       i79 = HEAP32[(HEAP32[i78 >> 2] | 0) + 8 >> 2] | 0;
 11611       if ((HEAP32[i79 + 20 >> 2] | 0) <= (HEAP32[i45 >> 2] | 0)) {
 11612        break;
 11614       i60 = HEAP32[i79 + 12 >> 2] | 0;
 11615       i80 = HEAP32[i60 + 88 >> 2] | 0;
 11616       i59 = i80 - i54 | 0;
 11617       i81 = HEAP32[i60 + 92 >> 2] | 0;
 11618       i63 = i81 - i62 | 0;
 11619       i82 = HEAP32[i60 + 96 >> 2] | 0;
 11620       i60 = i82 - i53 | 0;
 11621       i58 = ___muldi3(i59, (i59 | 0) < 0 ? -1 : 0, i41, i40) | 0;
 11622       i61 = tempRet0;
 11623       i65 = ___muldi3(i63, (i63 | 0) < 0 ? -1 : 0, i43, i42) | 0;
 11624       i83 = _i64Add(i65, tempRet0, i58, i61) | 0;
 11625       i61 = tempRet0;
 11626       i58 = ___muldi3(i60, (i60 | 0) < 0 ? -1 : 0, i30, i38) | 0;
 11627       i65 = _i64Add(i83, i61, i58, tempRet0) | 0;
 11628       i58 = tempRet0;
 11629       i61 = Math_imul(i59, i27) | 0;
 11630       i59 = (Math_imul(i63, i29) | 0) + i61 | 0;
 11631       i61 = i59 + (Math_imul(i60, i2) | 0) | 0;
 11632       i60 = i61;
 11633       i59 = (i61 | 0) < 0 ? -1 : 0;
 11634       if ((i65 | 0) == 0 & (i58 | 0) == 0) {
 11635        if ((i61 | 0) < 0) {
 11636         break L1172;
 11637        } else {
 11638         break;
 11641       i63 = 0;
 11642       if (!((i58 | 0) < (i63 | 0) | (i58 | 0) == (i63 | 0) & i65 >>> 0 < 0 >>> 0)) {
 11643        break;
 11645       do {
 11646        if ((i61 | 0) > 0) {
 11647         HEAP32[i26 >> 2] = 1;
 11648         HEAP32[i22 >> 2] = i60;
 11649         HEAP32[i22 + 4 >> 2] = i59;
 11650         i84 = 1;
 11651        } else {
 11652         if ((i61 | 0) < 0) {
 11653          HEAP32[i26 >> 2] = -1;
 11654          i63 = _i64Subtract(0, 0, i60, i59) | 0;
 11655          HEAP32[i22 >> 2] = i63;
 11656          HEAP32[i22 + 4 >> 2] = tempRet0;
 11657          i84 = -1;
 11658          break;
 11659         } else {
 11660          HEAP32[i26 >> 2] = 0;
 11661          HEAP32[i22 >> 2] = 0;
 11662          HEAP32[i22 + 4 >> 2] = 0;
 11663          i84 = 0;
 11664          break;
 11667       } while (0);
 11668       i59 = 0;
 11669       if ((i58 | 0) > (i59 | 0) | (i58 | 0) == (i59 | 0) & i65 >>> 0 > 0 >>> 0) {
 11670        i85 = i58;
 11671        i86 = i65;
 11672       } else {
 11673        HEAP32[i26 >> 2] = -i84;
 11674        i59 = _i64Subtract(0, 0, i65, i58) | 0;
 11675        i85 = tempRet0;
 11676        i86 = i59;
 11678       HEAP32[i21 >> 2] = i86;
 11679       HEAP32[i21 + 4 >> 2] = i85;
 11680       do {
 11681        if ((i57 | 0) > 0) {
 11682         HEAP32[i24 >> 2] = 1;
 11683         HEAP32[i36 >> 2] = i66;
 11684         HEAP32[i36 + 4 >> 2] = i64;
 11685         i87 = 1;
 11686        } else {
 11687         if ((i57 | 0) < 0) {
 11688          HEAP32[i24 >> 2] = -1;
 11689          i59 = _i64Subtract(0, 0, i66, i64) | 0;
 11690          HEAP32[i36 >> 2] = i59;
 11691          HEAP32[i36 + 4 >> 2] = tempRet0;
 11692          i87 = -1;
 11693          break;
 11694         } else {
 11695          HEAP32[i24 >> 2] = 0;
 11696          HEAP32[i36 >> 2] = 0;
 11697          HEAP32[i36 + 4 >> 2] = 0;
 11698          i87 = 0;
 11699          break;
 11702       } while (0);
 11703       i58 = 0;
 11704       do {
 11705        if ((i50 | 0) > (i58 | 0) | (i50 | 0) == (i58 | 0) & i51 >>> 0 > 0 >>> 0) {
 11706         HEAP32[i70 >> 2] = i51;
 11707         HEAP32[i70 + 4 >> 2] = i50;
 11708        } else {
 11709         i65 = 0;
 11710         if ((i50 | 0) < (i65 | 0) | (i50 | 0) == (i65 | 0) & i51 >>> 0 < 0 >>> 0) {
 11711          HEAP32[i24 >> 2] = -i87;
 11712          i65 = _i64Subtract(0, 0, i51, i50) | 0;
 11713          HEAP32[i70 >> 2] = i65;
 11714          HEAP32[i70 + 4 >> 2] = tempRet0;
 11715          break;
 11716         } else {
 11717          HEAP32[i70 >> 2] = 0;
 11718          HEAP32[i70 + 4 >> 2] = 0;
 11719          break;
 11722       } while (0);
 11723       if ((__ZNK20btConvexHullInternal10Rational647compareERKS0_(i9, i10) | 0) > -1) {
 11724        break L1172;
 11727     } while (0);
 11728     i58 = HEAP32[i5 >> 2] | 0;
 11729     if ((i58 | 0) == 0) {
 11730      i88 = 1019;
 11731      break L1170;
 11733     if ((HEAP32[i58 + 12 >> 2] | 0) == (i7 | 0)) {
 11734      i88 = 1008;
 11735      break L1170;
 11737     i65 = HEAP32[HEAP32[i58 + 8 >> 2] >> 2] | 0;
 11738     if ((HEAP32[i65 + 20 >> 2] | 0) <= (HEAP32[i45 >> 2] | 0)) {
 11739      i88 = 1010;
 11740      break L1170;
 11742     i58 = i65 + 12 | 0;
 11743     i59 = HEAP32[i58 >> 2] | 0;
 11744     i60 = HEAP32[i59 + 88 >> 2] | 0;
 11745     i61 = i60 - i55 | 0;
 11746     i63 = HEAP32[i59 + 92 >> 2] | 0;
 11747     i83 = i63 - i52 | 0;
 11748     i89 = HEAP32[i59 + 96 >> 2] | 0;
 11749     i59 = i89 - i19 | 0;
 11750     i90 = i61;
 11751     i91 = (i61 | 0) < 0 ? -1 : 0;
 11752     i92 = ___muldi3(i90, i91, i3, i34) | 0;
 11753     i93 = tempRet0;
 11754     i94 = i83;
 11755     i95 = (i83 | 0) < 0 ? -1 : 0;
 11756     i96 = ___muldi3(i94, i95, i33, i35) | 0;
 11757     i97 = _i64Add(i96, tempRet0, i92, i93) | 0;
 11758     i93 = tempRet0;
 11759     i92 = i59;
 11760     i96 = (i59 | 0) < 0 ? -1 : 0;
 11761     i98 = ___muldi3(i92, i96, i72, i73) | 0;
 11762     if (!((i97 | 0) == (i98 | 0) & (i93 | 0) == (tempRet0 | 0))) {
 11763      i88 = 1004;
 11764      break L1170;
 11766     i93 = ___muldi3(i90, i91, i41, i40) | 0;
 11767     i91 = tempRet0;
 11768     i90 = ___muldi3(i94, i95, i43, i42) | 0;
 11769     i95 = _i64Add(i90, tempRet0, i93, i91) | 0;
 11770     i91 = tempRet0;
 11771     i93 = ___muldi3(i92, i96, i30, i38) | 0;
 11772     i96 = _i64Add(i95, i91, i93, tempRet0) | 0;
 11773     i93 = tempRet0;
 11774     i91 = Math_imul(i61, i27) | 0;
 11775     i61 = (Math_imul(i83, i29) | 0) + i91 | 0;
 11776     i91 = i61 + (Math_imul(i59, i2) | 0) | 0;
 11777     i59 = i91;
 11778     i61 = (i91 | 0) < 0 ? -1 : 0;
 11779     i83 = i60 - i54 | 0;
 11780     i60 = i63 - i62 | 0;
 11781     i63 = i89 - i53 | 0;
 11782     i89 = ___muldi3(i83, (i83 | 0) < 0 ? -1 : 0, i41, i40) | 0;
 11783     i83 = tempRet0;
 11784     i95 = ___muldi3(i60, (i60 | 0) < 0 ? -1 : 0, i43, i42) | 0;
 11785     i60 = _i64Add(i95, tempRet0, i89, i83) | 0;
 11786     i83 = tempRet0;
 11787     i89 = ___muldi3(i63, (i63 | 0) < 0 ? -1 : 0, i30, i38) | 0;
 11788     i63 = _i64Add(i60, i83, i89, tempRet0) | 0;
 11789     i89 = tempRet0;
 11790     i83 = 0;
 11791     if (!((i89 | 0) > (i83 | 0) | (i89 | 0) == (i83 | 0) & i63 >>> 0 > 0 >>> 0)) {
 11792      i88 = 1005;
 11793      break L1170;
 11795     if ((i96 | 0) == 0 & (i93 | 0) == 0) {
 11796      if ((i91 | 0) >= 0) {
 11797       i88 = 1011;
 11798       break L1170;
 11800     } else {
 11801      i83 = 0;
 11802      if (!((i93 | 0) < (i83 | 0) | (i93 | 0) == (i83 | 0) & i96 >>> 0 < 0 >>> 0)) {
 11803       i88 = 1009;
 11804       break L1170;
 11806      do {
 11807       if ((i91 | 0) > 0) {
 11808        HEAP32[i28 >> 2] = 1;
 11809        HEAP32[i49 >> 2] = i59;
 11810        HEAP32[i49 + 4 >> 2] = i61;
 11811        i99 = 1;
 11812       } else {
 11813        if ((i91 | 0) < 0) {
 11814         HEAP32[i28 >> 2] = -1;
 11815         i83 = _i64Subtract(0, 0, i59, i61) | 0;
 11816         HEAP32[i49 >> 2] = i83;
 11817         HEAP32[i49 + 4 >> 2] = tempRet0;
 11818         i99 = -1;
 11819         break;
 11820        } else {
 11821         HEAP32[i28 >> 2] = 0;
 11822         HEAP32[i49 >> 2] = 0;
 11823         HEAP32[i49 + 4 >> 2] = 0;
 11824         i99 = 0;
 11825         break;
 11828      } while (0);
 11829      i61 = 0;
 11830      if ((i93 | 0) > (i61 | 0) | (i93 | 0) == (i61 | 0) & i96 >>> 0 > 0 >>> 0) {
 11831       i100 = i93;
 11832       i101 = i96;
 11833      } else {
 11834       HEAP32[i28 >> 2] = -i99;
 11835       i61 = _i64Subtract(0, 0, i96, i93) | 0;
 11836       i100 = tempRet0;
 11837       i101 = i61;
 11839      HEAP32[i69 >> 2] = i101;
 11840      HEAP32[i69 + 4 >> 2] = i100;
 11841      do {
 11842       if ((i57 | 0) > 0) {
 11843        HEAP32[i67 >> 2] = 1;
 11844        HEAP32[i20 >> 2] = i66;
 11845        HEAP32[i20 + 4 >> 2] = i64;
 11846        i102 = 1;
 11847       } else {
 11848        if ((i57 | 0) < 0) {
 11849         HEAP32[i67 >> 2] = -1;
 11850         i61 = _i64Subtract(0, 0, i66, i64) | 0;
 11851         HEAP32[i20 >> 2] = i61;
 11852         HEAP32[i20 + 4 >> 2] = tempRet0;
 11853         i102 = -1;
 11854         break;
 11855        } else {
 11856         HEAP32[i67 >> 2] = 0;
 11857         HEAP32[i20 >> 2] = 0;
 11858         HEAP32[i20 + 4 >> 2] = 0;
 11859         i102 = 0;
 11860         break;
 11863      } while (0);
 11864      i64 = 0;
 11865      do {
 11866       if ((i50 | 0) > (i64 | 0) | (i50 | 0) == (i64 | 0) & i51 >>> 0 > 0 >>> 0) {
 11867        HEAP32[i25 >> 2] = i51;
 11868        HEAP32[i25 + 4 >> 2] = i50;
 11869       } else {
 11870        i66 = 0;
 11871        if ((i50 | 0) < (i66 | 0) | (i50 | 0) == (i66 | 0) & i51 >>> 0 < 0 >>> 0) {
 11872         HEAP32[i67 >> 2] = -i102;
 11873         i66 = _i64Subtract(0, 0, i51, i50) | 0;
 11874         HEAP32[i25 >> 2] = i66;
 11875         HEAP32[i25 + 4 >> 2] = tempRet0;
 11876         break;
 11877        } else {
 11878         HEAP32[i25 >> 2] = 0;
 11879         HEAP32[i25 + 4 >> 2] = 0;
 11880         break;
 11883      } while (0);
 11884      if ((__ZNK20btConvexHullInternal10Rational647compareERKS0_(i11, i12) | 0) <= 0) {
 11885       i88 = 1006;
 11886       break L1170;
 11889     HEAP32[i5 >> 2] = i65;
 11890     i64 = HEAP32[i58 >> 2] | 0;
 11891     i50 = i89;
 11892     i51 = i63;
 11893     i55 = HEAP32[i64 + 88 >> 2] | 0;
 11894     i52 = HEAP32[i64 + 92 >> 2] | 0;
 11895     i19 = HEAP32[i64 + 96 >> 2] | 0;
 11897    i51 = i55 - i80 | 0;
 11898    i50 = i52 - i81 | 0;
 11899    i64 = i19 - i82 | 0;
 11900    i66 = ___muldi3(i51, (i51 | 0) < 0 ? -1 : 0, i41, i40) | 0;
 11901    i51 = tempRet0;
 11902    i57 = ___muldi3(i50, (i50 | 0) < 0 ? -1 : 0, i43, i42) | 0;
 11903    i50 = _i64Add(i57, tempRet0, i66, i51) | 0;
 11904    i51 = tempRet0;
 11905    i66 = ___muldi3(i64, (i64 | 0) < 0 ? -1 : 0, i30, i38) | 0;
 11906    i64 = _i64Add(i50, i51, i66, tempRet0) | 0;
 11907    HEAP32[i4 >> 2] = (i78 | 0) == (i17 | 0) ? 0 : i79;
 11908    i71 = tempRet0;
 11909    i68 = i64;
 11910    i23 = i55;
 11911    i39 = i52;
 11912    i56 = i19;
 11913    i54 = i80;
 11914    i62 = i81;
 11915    i53 = i82;
 11917   if ((i88 | 0) == 1004) {
 11918    STACKTOP = i8;
 11919    return;
 11920   } else if ((i88 | 0) == 1005) {
 11921    STACKTOP = i8;
 11922    return;
 11923   } else if ((i88 | 0) == 1006) {
 11924    STACKTOP = i8;
 11925    return;
 11926   } else if ((i88 | 0) == 1008) {
 11927    STACKTOP = i8;
 11928    return;
 11929   } else if ((i88 | 0) == 1009) {
 11930    STACKTOP = i8;
 11931    return;
 11932   } else if ((i88 | 0) == 1010) {
 11933    STACKTOP = i8;
 11934    return;
 11935   } else if ((i88 | 0) == 1011) {
 11936    STACKTOP = i8;
 11937    return;
 11938   } else if ((i88 | 0) == 1019) {
 11939    STACKTOP = i8;
 11940    return;
 11943  i82 = 0;
 11944  if (!((i44 | 0) < (i82 | 0) | (i44 | 0) == (i82 | 0) & i37 >>> 0 < 0 >>> 0)) {
 11945   STACKTOP = i8;
 11946   return;
 11948  i82 = i1 + 100 | 0;
 11949  i1 = _i64Subtract(0, 0, i31, i32) | 0;
 11950  i32 = tempRet0;
 11951  i31 = i15 + 16 | 0;
 11952  i53 = i15 | 0;
 11953  i81 = i15 + 8 | 0;
 11954  i62 = i16 + 16 | 0;
 11955  i80 = i16 | 0;
 11956  i54 = i16 + 8 | 0;
 11957  i56 = i13 + 16 | 0;
 11958  i39 = i13 | 0;
 11959  i23 = i13 + 8 | 0;
 11960  i68 = i14 + 16 | 0;
 11961  i71 = i14 | 0;
 11962  i79 = i14 + 8 | 0;
 11963  i17 = i44;
 11964  i44 = i37;
 11965  i37 = i74;
 11966  i74 = i75;
 11967  i75 = i76;
 11968  i76 = i46;
 11969  i46 = i47;
 11970  i47 = i48;
 11971  i48 = i77;
 11972  while (1) {
 11973   i77 = Math_imul(i37 - i76 | 0, i27) | 0;
 11974   i78 = Math_imul(i74 - i46 | 0, i29) | 0;
 11975   i12 = i78 + (Math_imul(i75 - i47 | 0, i2) | 0) + i77 | 0;
 11976   i77 = i12;
 11977   i78 = (i12 | 0) < 0 ? -1 : 0;
 11978   L1257 : do {
 11979    if ((i48 | 0) == 0) {
 11980     i103 = i75;
 11981     i104 = i74;
 11982     i105 = i37;
 11983     i106 = i17;
 11984     i107 = i44;
 11985     i108 = i12;
 11986     i109 = i78;
 11987     i110 = i77;
 11988    } else {
 11989     i11 = i75;
 11990     i25 = i74;
 11991     i102 = i37;
 11992     i67 = i17;
 11993     i20 = i44;
 11994     i100 = i12;
 11995     i69 = i78;
 11996     i101 = i77;
 11997     i99 = i48;
 11998     while (1) {
 11999      if ((HEAP32[i99 + 12 >> 2] | 0) == (i7 | 0)) {
 12000       i103 = i11;
 12001       i104 = i25;
 12002       i105 = i102;
 12003       i106 = i67;
 12004       i107 = i20;
 12005       i108 = i100;
 12006       i109 = i69;
 12007       i110 = i101;
 12008       break L1257;
 12010      i28 = HEAP32[(HEAP32[i99 + 4 >> 2] | 0) + 8 >> 2] | 0;
 12011      if ((HEAP32[i28 + 20 >> 2] | 0) <= (HEAP32[i82 >> 2] | 0)) {
 12012       i103 = i11;
 12013       i104 = i25;
 12014       i105 = i102;
 12015       i106 = i67;
 12016       i107 = i20;
 12017       i108 = i100;
 12018       i109 = i69;
 12019       i110 = i101;
 12020       break L1257;
 12022      i49 = HEAP32[i28 + 12 >> 2] | 0;
 12023      i73 = HEAP32[i49 + 88 >> 2] | 0;
 12024      i72 = i73 - i102 | 0;
 12025      i45 = HEAP32[i49 + 92 >> 2] | 0;
 12026      i10 = i45 - i25 | 0;
 12027      i9 = HEAP32[i49 + 96 >> 2] | 0;
 12028      i49 = i9 - i11 | 0;
 12029      i70 = ___muldi3(i72, (i72 | 0) < 0 ? -1 : 0, i41, i40) | 0;
 12030      i87 = tempRet0;
 12031      i24 = ___muldi3(i10, (i10 | 0) < 0 ? -1 : 0, i43, i42) | 0;
 12032      i36 = _i64Add(i24, tempRet0, i70, i87) | 0;
 12033      i87 = tempRet0;
 12034      i70 = ___muldi3(i49, (i49 | 0) < 0 ? -1 : 0, i30, i38) | 0;
 12035      i24 = _i64Add(i36, i87, i70, tempRet0) | 0;
 12036      i70 = tempRet0;
 12037      i87 = Math_imul(i72, i27) | 0;
 12038      i72 = (Math_imul(i10, i29) | 0) + i87 | 0;
 12039      i87 = i72 + (Math_imul(i49, i2) | 0) | 0;
 12040      i49 = i87;
 12041      i72 = (i87 | 0) < 0 ? -1 : 0;
 12042      if ((i24 | 0) == 0 & (i70 | 0) == 0) {
 12043       if ((i87 | 0) <= 0) {
 12044        i103 = i11;
 12045        i104 = i25;
 12046        i105 = i102;
 12047        i106 = i67;
 12048        i107 = i20;
 12049        i108 = i100;
 12050        i109 = i69;
 12051        i110 = i101;
 12052        break L1257;
 12054      } else {
 12055       i10 = 0;
 12056       if (!((i70 | 0) < (i10 | 0) | (i70 | 0) == (i10 | 0) & i24 >>> 0 < 0 >>> 0)) {
 12057        i103 = i11;
 12058        i104 = i25;
 12059        i105 = i102;
 12060        i106 = i67;
 12061        i107 = i20;
 12062        i108 = i100;
 12063        i109 = i69;
 12064        i110 = i101;
 12065        break L1257;
 12067       do {
 12068        if ((i87 | 0) > 0) {
 12069         HEAP32[i56 >> 2] = 1;
 12070         HEAP32[i39 >> 2] = i49;
 12071         HEAP32[i39 + 4 >> 2] = i72;
 12072         i111 = 1;
 12073        } else {
 12074         if ((i87 | 0) < 0) {
 12075          HEAP32[i56 >> 2] = -1;
 12076          i10 = _i64Subtract(0, 0, i49, i72) | 0;
 12077          HEAP32[i39 >> 2] = i10;
 12078          HEAP32[i39 + 4 >> 2] = tempRet0;
 12079          i111 = -1;
 12080          break;
 12081         } else {
 12082          HEAP32[i56 >> 2] = 0;
 12083          HEAP32[i39 >> 2] = 0;
 12084          HEAP32[i39 + 4 >> 2] = 0;
 12085          i111 = 0;
 12086          break;
 12089       } while (0);
 12090       i72 = 0;
 12091       if ((i70 | 0) > (i72 | 0) | (i70 | 0) == (i72 | 0) & i24 >>> 0 > 0 >>> 0) {
 12092        i112 = i70;
 12093        i113 = i24;
 12094       } else {
 12095        HEAP32[i56 >> 2] = -i111;
 12096        i72 = _i64Subtract(0, 0, i24, i70) | 0;
 12097        i112 = tempRet0;
 12098        i113 = i72;
 12100       HEAP32[i23 >> 2] = i113;
 12101       HEAP32[i23 + 4 >> 2] = i112;
 12102       do {
 12103        if ((i100 | 0) > 0) {
 12104         HEAP32[i68 >> 2] = 1;
 12105         HEAP32[i71 >> 2] = i101;
 12106         HEAP32[i71 + 4 >> 2] = i69;
 12107         i114 = 1;
 12108        } else {
 12109         if ((i100 | 0) < 0) {
 12110          HEAP32[i68 >> 2] = -1;
 12111          i72 = _i64Subtract(0, 0, i101, i69) | 0;
 12112          HEAP32[i71 >> 2] = i72;
 12113          HEAP32[i71 + 4 >> 2] = tempRet0;
 12114          i114 = -1;
 12115          break;
 12116         } else {
 12117          HEAP32[i68 >> 2] = 0;
 12118          HEAP32[i71 >> 2] = 0;
 12119          HEAP32[i71 + 4 >> 2] = 0;
 12120          i114 = 0;
 12121          break;
 12124       } while (0);
 12125       i70 = 0;
 12126       do {
 12127        if ((i67 | 0) > (i70 | 0) | (i67 | 0) == (i70 | 0) & i20 >>> 0 > 0 >>> 0) {
 12128         HEAP32[i79 >> 2] = i20;
 12129         HEAP32[i79 + 4 >> 2] = i67;
 12130        } else {
 12131         i24 = 0;
 12132         if ((i67 | 0) < (i24 | 0) | (i67 | 0) == (i24 | 0) & i20 >>> 0 < 0 >>> 0) {
 12133          HEAP32[i68 >> 2] = -i114;
 12134          i24 = _i64Subtract(0, 0, i20, i67) | 0;
 12135          HEAP32[i79 >> 2] = i24;
 12136          HEAP32[i79 + 4 >> 2] = tempRet0;
 12137          break;
 12138         } else {
 12139          HEAP32[i79 >> 2] = 0;
 12140          HEAP32[i79 + 4 >> 2] = 0;
 12141          break;
 12144       } while (0);
 12145       if ((__ZNK20btConvexHullInternal10Rational647compareERKS0_(i13, i14) | 0) >= 1) {
 12146        i103 = i11;
 12147        i104 = i25;
 12148        i105 = i102;
 12149        i106 = i67;
 12150        i107 = i20;
 12151        i108 = i100;
 12152        i109 = i69;
 12153        i110 = i101;
 12154        break L1257;
 12157      i70 = i73 - i76 | 0;
 12158      i24 = i45 - i46 | 0;
 12159      i72 = i9 - i47 | 0;
 12160      i49 = ___muldi3(i70, (i70 | 0) < 0 ? -1 : 0, i41, i40) | 0;
 12161      i87 = tempRet0;
 12162      i10 = ___muldi3(i24, (i24 | 0) < 0 ? -1 : 0, i43, i42) | 0;
 12163      i36 = _i64Add(i10, tempRet0, i49, i87) | 0;
 12164      i87 = tempRet0;
 12165      i49 = ___muldi3(i72, (i72 | 0) < 0 ? -1 : 0, i30, i38) | 0;
 12166      i10 = _i64Add(i36, i87, i49, tempRet0) | 0;
 12167      i49 = tempRet0;
 12168      i87 = (i99 | 0) == (i18 | 0) ? 0 : i28;
 12169      HEAP32[i5 >> 2] = i87;
 12170      i36 = Math_imul(i70, i27) | 0;
 12171      i70 = Math_imul(i24, i29) | 0;
 12172      i24 = i70 + i36 + (Math_imul(i72, i2) | 0) | 0;
 12173      i72 = i24;
 12174      i36 = (i24 | 0) < 0 ? -1 : 0;
 12175      if ((i87 | 0) == 0) {
 12176       i103 = i9;
 12177       i104 = i45;
 12178       i105 = i73;
 12179       i106 = i49;
 12180       i107 = i10;
 12181       i108 = i24;
 12182       i109 = i36;
 12183       i110 = i72;
 12184       break;
 12185      } else {
 12186       i11 = i9;
 12187       i25 = i45;
 12188       i102 = i73;
 12189       i67 = i49;
 12190       i20 = i10;
 12191       i100 = i24;
 12192       i69 = i36;
 12193       i101 = i72;
 12194       i99 = i87;
 12198   } while (0);
 12199   i77 = HEAP32[i4 >> 2] | 0;
 12200   if ((i77 | 0) == 0) {
 12201    i88 = 1012;
 12202    break;
 12204   if ((HEAP32[i77 + 12 >> 2] | 0) == (i6 | 0)) {
 12205    i88 = 1013;
 12206    break;
 12208   i78 = HEAP32[(HEAP32[i77 + 8 >> 2] | 0) + 4 >> 2] | 0;
 12209   if ((HEAP32[i78 + 20 >> 2] | 0) <= (HEAP32[i82 >> 2] | 0)) {
 12210    i88 = 1014;
 12211    break;
 12213   i77 = i78 + 12 | 0;
 12214   i12 = HEAP32[i77 >> 2] | 0;
 12215   i19 = HEAP32[i12 + 88 >> 2] | 0;
 12216   i52 = i19 - i76 | 0;
 12217   i55 = HEAP32[i12 + 92 >> 2] | 0;
 12218   i99 = i55 - i46 | 0;
 12219   i101 = HEAP32[i12 + 96 >> 2] | 0;
 12220   i12 = i101 - i47 | 0;
 12221   i69 = i52;
 12222   i100 = (i52 | 0) < 0 ? -1 : 0;
 12223   i20 = ___muldi3(i69, i100, i3, i34) | 0;
 12224   i67 = tempRet0;
 12225   i102 = i99;
 12226   i25 = (i99 | 0) < 0 ? -1 : 0;
 12227   i11 = ___muldi3(i102, i25, i33, i35) | 0;
 12228   i63 = _i64Add(i11, tempRet0, i20, i67) | 0;
 12229   i67 = tempRet0;
 12230   i20 = i12;
 12231   i11 = (i12 | 0) < 0 ? -1 : 0;
 12232   i89 = ___muldi3(i20, i11, i1, i32) | 0;
 12233   if (!((i63 | 0) == (i89 | 0) & (i67 | 0) == (tempRet0 | 0))) {
 12234    i88 = 1015;
 12235    break;
 12237   i67 = ___muldi3(i69, i100, i41, i40) | 0;
 12238   i100 = tempRet0;
 12239   i69 = ___muldi3(i102, i25, i43, i42) | 0;
 12240   i25 = _i64Add(i69, tempRet0, i67, i100) | 0;
 12241   i100 = tempRet0;
 12242   i67 = ___muldi3(i20, i11, i30, i38) | 0;
 12243   i11 = _i64Add(i25, i100, i67, tempRet0) | 0;
 12244   i67 = tempRet0;
 12245   i100 = Math_imul(i52, i27) | 0;
 12246   i52 = (Math_imul(i99, i29) | 0) + i100 | 0;
 12247   i100 = i52 + (Math_imul(i12, i2) | 0) | 0;
 12248   i12 = i100;
 12249   i52 = (i100 | 0) < 0 ? -1 : 0;
 12250   i99 = i105 - i19 | 0;
 12251   i19 = i104 - i55 | 0;
 12252   i55 = i103 - i101 | 0;
 12253   i101 = ___muldi3(i99, (i99 | 0) < 0 ? -1 : 0, i41, i40) | 0;
 12254   i99 = tempRet0;
 12255   i25 = ___muldi3(i19, (i19 | 0) < 0 ? -1 : 0, i43, i42) | 0;
 12256   i19 = _i64Add(i25, tempRet0, i101, i99) | 0;
 12257   i99 = tempRet0;
 12258   i101 = ___muldi3(i55, (i55 | 0) < 0 ? -1 : 0, i30, i38) | 0;
 12259   i55 = _i64Add(i19, i99, i101, tempRet0) | 0;
 12260   i101 = tempRet0;
 12261   i99 = 0;
 12262   if (!((i101 | 0) < (i99 | 0) | (i101 | 0) == (i99 | 0) & i55 >>> 0 < 0 >>> 0)) {
 12263    i88 = 1016;
 12264    break;
 12266   if ((i11 | 0) == 0 & (i67 | 0) == 0) {
 12267    if ((i100 | 0) <= 0) {
 12268     i88 = 1017;
 12269     break;
 12271   } else {
 12272    i99 = 0;
 12273    if (!((i67 | 0) < (i99 | 0) | (i67 | 0) == (i99 | 0) & i11 >>> 0 < 0 >>> 0)) {
 12274     i88 = 1018;
 12275     break;
 12277    do {
 12278     if ((i100 | 0) > 0) {
 12279      HEAP32[i31 >> 2] = 1;
 12280      HEAP32[i53 >> 2] = i12;
 12281      HEAP32[i53 + 4 >> 2] = i52;
 12282      i115 = 1;
 12283     } else {
 12284      if ((i100 | 0) < 0) {
 12285       HEAP32[i31 >> 2] = -1;
 12286       i99 = _i64Subtract(0, 0, i12, i52) | 0;
 12287       HEAP32[i53 >> 2] = i99;
 12288       HEAP32[i53 + 4 >> 2] = tempRet0;
 12289       i115 = -1;
 12290       break;
 12291      } else {
 12292       HEAP32[i31 >> 2] = 0;
 12293       HEAP32[i53 >> 2] = 0;
 12294       HEAP32[i53 + 4 >> 2] = 0;
 12295       i115 = 0;
 12296       break;
 12299    } while (0);
 12300    i52 = 0;
 12301    if ((i67 | 0) > (i52 | 0) | (i67 | 0) == (i52 | 0) & i11 >>> 0 > 0 >>> 0) {
 12302     i116 = i67;
 12303     i117 = i11;
 12304    } else {
 12305     HEAP32[i31 >> 2] = -i115;
 12306     i52 = _i64Subtract(0, 0, i11, i67) | 0;
 12307     i116 = tempRet0;
 12308     i117 = i52;
 12310    HEAP32[i81 >> 2] = i117;
 12311    HEAP32[i81 + 4 >> 2] = i116;
 12312    do {
 12313     if ((i108 | 0) > 0) {
 12314      HEAP32[i62 >> 2] = 1;
 12315      HEAP32[i80 >> 2] = i110;
 12316      HEAP32[i80 + 4 >> 2] = i109;
 12317      i118 = 1;
 12318     } else {
 12319      if ((i108 | 0) < 0) {
 12320       HEAP32[i62 >> 2] = -1;
 12321       i52 = _i64Subtract(0, 0, i110, i109) | 0;
 12322       HEAP32[i80 >> 2] = i52;
 12323       HEAP32[i80 + 4 >> 2] = tempRet0;
 12324       i118 = -1;
 12325       break;
 12326      } else {
 12327       HEAP32[i62 >> 2] = 0;
 12328       HEAP32[i80 >> 2] = 0;
 12329       HEAP32[i80 + 4 >> 2] = 0;
 12330       i118 = 0;
 12331       break;
 12334    } while (0);
 12335    i67 = 0;
 12336    do {
 12337     if ((i106 | 0) > (i67 | 0) | (i106 | 0) == (i67 | 0) & i107 >>> 0 > 0 >>> 0) {
 12338      HEAP32[i54 >> 2] = i107;
 12339      HEAP32[i54 + 4 >> 2] = i106;
 12340     } else {
 12341      i11 = 0;
 12342      if ((i106 | 0) < (i11 | 0) | (i106 | 0) == (i11 | 0) & i107 >>> 0 < 0 >>> 0) {
 12343       HEAP32[i62 >> 2] = -i118;
 12344       i11 = _i64Subtract(0, 0, i107, i106) | 0;
 12345       HEAP32[i54 >> 2] = i11;
 12346       HEAP32[i54 + 4 >> 2] = tempRet0;
 12347       break;
 12348      } else {
 12349       HEAP32[i54 >> 2] = 0;
 12350       HEAP32[i54 + 4 >> 2] = 0;
 12351       break;
 12354    } while (0);
 12355    if ((__ZNK20btConvexHullInternal10Rational647compareERKS0_(i15, i16) | 0) >= 0) {
 12356     i88 = 1020;
 12357     break;
 12360   HEAP32[i4 >> 2] = i78;
 12361   i67 = HEAP32[i77 >> 2] | 0;
 12362   i17 = i101;
 12363   i44 = i55;
 12364   i37 = i105;
 12365   i74 = i104;
 12366   i75 = i103;
 12367   i76 = HEAP32[i67 + 88 >> 2] | 0;
 12368   i46 = HEAP32[i67 + 92 >> 2] | 0;
 12369   i47 = HEAP32[i67 + 96 >> 2] | 0;
 12370   i48 = HEAP32[i5 >> 2] | 0;
 12372  if ((i88 | 0) == 1012) {
 12373   STACKTOP = i8;
 12374   return;
 12375  } else if ((i88 | 0) == 1013) {
 12376   STACKTOP = i8;
 12377   return;
 12378  } else if ((i88 | 0) == 1014) {
 12379   STACKTOP = i8;
 12380   return;
 12381  } else if ((i88 | 0) == 1015) {
 12382   STACKTOP = i8;
 12383   return;
 12384  } else if ((i88 | 0) == 1016) {
 12385   STACKTOP = i8;
 12386   return;
 12387  } else if ((i88 | 0) == 1017) {
 12388   STACKTOP = i8;
 12389   return;
 12390  } else if ((i88 | 0) == 1018) {
 12391   STACKTOP = i8;
 12392   return;
 12393  } else if ((i88 | 0) == 1020) {
 12394   STACKTOP = i8;
 12395   return;
 12398 function __ZN23btDiscreteDynamicsWorld19debugDrawConstraintEP17btTypedConstraint(i1, i2) {
 12399  i1 = i1 | 0;
 12400  i2 = i2 | 0;
 12401  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, d44 = 0.0, d45 = 0.0, d46 = 0.0, d47 = 0.0, d48 = 0.0, d49 = 0.0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0, i68 = 0, d69 = 0.0, d70 = 0.0, d71 = 0.0, d72 = 0.0, d73 = 0.0, d74 = 0.0, d75 = 0.0, d76 = 0.0, d77 = 0.0, d78 = 0.0, d79 = 0.0;
 12402  i3 = STACKTOP;
 12403  STACKTOP = STACKTOP + 1008 | 0;
 12404  i4 = i3 | 0;
 12405  i5 = i3 + 64 | 0;
 12406  i6 = i3 + 128 | 0;
 12407  i7 = i3 + 192 | 0;
 12408  i8 = i3 + 208 | 0;
 12409  i9 = i3 + 224 | 0;
 12410  i10 = i3 + 240 | 0;
 12411  i11 = i3 + 304 | 0;
 12412  i12 = i3 + 368 | 0;
 12413  i13 = i3 + 384 | 0;
 12414  i14 = i3 + 400 | 0;
 12415  i15 = i3 + 416 | 0;
 12416  i16 = i3 + 432 | 0;
 12417  i17 = i3 + 496 | 0;
 12418  i18 = i3 + 560 | 0;
 12419  i19 = i3 + 576 | 0;
 12420  i20 = i3 + 592 | 0;
 12421  i21 = i3 + 608 | 0;
 12422  i22 = i3 + 624 | 0;
 12423  i23 = i3 + 688 | 0;
 12424  i24 = i3 + 704 | 0;
 12425  i25 = i3 + 720 | 0;
 12426  i26 = i3 + 736 | 0;
 12427  i27 = i3 + 752 | 0;
 12428  i28 = i3 + 768 | 0;
 12429  i29 = i3 + 784 | 0;
 12430  i30 = i3 + 800 | 0;
 12431  i31 = i3 + 816 | 0;
 12432  i32 = i3 + 832 | 0;
 12433  i33 = i3 + 848 | 0;
 12434  i34 = i3 + 912 | 0;
 12435  i35 = i3 + 928 | 0;
 12436  i36 = i3 + 944 | 0;
 12437  i37 = i3 + 960 | 0;
 12438  i38 = i3 + 976 | 0;
 12439  i39 = i3 + 992 | 0;
 12440  i40 = i1 | 0;
 12441  i41 = i1;
 12442  i1 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
 12443  i42 = (FUNCTION_TABLE_ii[HEAP32[(HEAP32[i1 >> 2] | 0) + 48 >> 2] & 127](i1) | 0) >>> 11;
 12444  i1 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
 12445  i43 = (FUNCTION_TABLE_ii[HEAP32[(HEAP32[i1 >> 2] | 0) + 48 >> 2] & 127](i1) | 0) >>> 12;
 12446  d44 = +HEAPF32[i2 + 36 >> 2];
 12447  if (d44 <= 0.0) {
 12448   STACKTOP = i3;
 12449   return;
 12451  switch (HEAP32[i2 + 4 >> 2] | 0) {
 12452  case 3:
 12454    HEAPF32[i4 >> 2] = 1.0;
 12455    _memset(i4 + 4 | 0, 0, 16);
 12456    HEAPF32[i4 + 20 >> 2] = 1.0;
 12457    _memset(i4 + 24 | 0, 0, 16);
 12458    HEAPF32[i4 + 40 >> 2] = 1.0;
 12459    _memset(i4 + 44 | 0, 0, 20);
 12460    d45 = +HEAPF32[i2 + 292 >> 2];
 12461    d46 = +HEAPF32[i2 + 296 >> 2];
 12462    d47 = +HEAPF32[i2 + 300 >> 2];
 12463    i1 = HEAP32[i2 + 24 >> 2] | 0;
 12464    d48 = +HEAPF32[i1 + 56 >> 2] + (d45 * +HEAPF32[i1 + 20 >> 2] + d46 * +HEAPF32[i1 + 24 >> 2] + d47 * +HEAPF32[i1 + 28 >> 2]);
 12465    d49 = +HEAPF32[i1 + 60 >> 2] + (d45 * +HEAPF32[i1 + 36 >> 2] + d46 * +HEAPF32[i1 + 40 >> 2] + d47 * +HEAPF32[i1 + 44 >> 2]);
 12466    i50 = i4 + 48 | 0;
 12467    HEAPF32[i50 >> 2] = +HEAPF32[i1 + 52 >> 2] + (d45 * +HEAPF32[i1 + 4 >> 2] + d46 * +HEAPF32[i1 + 8 >> 2] + d47 * +HEAPF32[i1 + 12 >> 2]);
 12468    i1 = i4 + 52 | 0;
 12469    HEAPF32[i1 >> 2] = d48;
 12470    i51 = i4 + 56 | 0;
 12471    HEAPF32[i51 >> 2] = d49;
 12472    i52 = i4 + 60 | 0;
 12473    HEAPF32[i52 >> 2] = 0.0;
 12474    i53 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
 12475    FUNCTION_TABLE_viif[HEAP32[(HEAP32[i53 >> 2] | 0) + 56 >> 2] & 3](i53, i4, d44);
 12476    d49 = +HEAPF32[i2 + 308 >> 2];
 12477    d48 = +HEAPF32[i2 + 312 >> 2];
 12478    d47 = +HEAPF32[i2 + 316 >> 2];
 12479    i53 = HEAP32[i2 + 28 >> 2] | 0;
 12480    d46 = +HEAPF32[i53 + 56 >> 2] + (d49 * +HEAPF32[i53 + 20 >> 2] + d48 * +HEAPF32[i53 + 24 >> 2] + d47 * +HEAPF32[i53 + 28 >> 2]);
 12481    d45 = +HEAPF32[i53 + 60 >> 2] + (d49 * +HEAPF32[i53 + 36 >> 2] + d48 * +HEAPF32[i53 + 40 >> 2] + d47 * +HEAPF32[i53 + 44 >> 2]);
 12482    HEAPF32[i50 >> 2] = +HEAPF32[i53 + 52 >> 2] + (d49 * +HEAPF32[i53 + 4 >> 2] + d48 * +HEAPF32[i53 + 8 >> 2] + d47 * +HEAPF32[i53 + 12 >> 2]);
 12483    HEAPF32[i1 >> 2] = d46;
 12484    HEAPF32[i51 >> 2] = d45;
 12485    HEAPF32[i52 >> 2] = 0.0;
 12486    if ((i42 & 1 | 0) == 0) {
 12487     STACKTOP = i3;
 12488     return;
 12490    i52 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
 12491    FUNCTION_TABLE_viif[HEAP32[(HEAP32[i52 >> 2] | 0) + 56 >> 2] & 3](i52, i4, d44);
 12492    STACKTOP = i3;
 12493    return;
 12495  case 4:
 12497    __ZNK11btTransformmlERKS_(i5, (HEAP32[i2 + 24 >> 2] | 0) + 4 | 0, i2 + 544 | 0);
 12498    if ((i42 & 1 | 0) == 0) {
 12499     __ZNK11btTransformmlERKS_(i6, (HEAP32[i2 + 28 >> 2] | 0) + 4 | 0, i2 + 608 | 0);
 12500     i4 = i5;
 12501     i52 = i6;
 12502     HEAP32[i4 >> 2] = HEAP32[i52 >> 2];
 12503     HEAP32[i4 + 4 >> 2] = HEAP32[i52 + 4 >> 2];
 12504     HEAP32[i4 + 8 >> 2] = HEAP32[i52 + 8 >> 2];
 12505     HEAP32[i4 + 12 >> 2] = HEAP32[i52 + 12 >> 2];
 12506     i52 = i5 + 16 | 0;
 12507     i4 = i6 + 16 | 0;
 12508     HEAP32[i52 >> 2] = HEAP32[i4 >> 2];
 12509     HEAP32[i52 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
 12510     HEAP32[i52 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
 12511     HEAP32[i52 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
 12512     i4 = i5 + 32 | 0;
 12513     i52 = i6 + 32 | 0;
 12514     HEAP32[i4 >> 2] = HEAP32[i52 >> 2];
 12515     HEAP32[i4 + 4 >> 2] = HEAP32[i52 + 4 >> 2];
 12516     HEAP32[i4 + 8 >> 2] = HEAP32[i52 + 8 >> 2];
 12517     HEAP32[i4 + 12 >> 2] = HEAP32[i52 + 12 >> 2];
 12518     i52 = i5 + 48 | 0;
 12519     i4 = i6 + 48 | 0;
 12520     HEAP32[i52 >> 2] = HEAP32[i4 >> 2];
 12521     HEAP32[i52 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
 12522     HEAP32[i52 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
 12523     HEAP32[i52 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
 12524    } else {
 12525     i4 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
 12526     FUNCTION_TABLE_viif[HEAP32[(HEAP32[i4 >> 2] | 0) + 56 >> 2] & 3](i4, i5, d44);
 12527     __ZNK11btTransformmlERKS_(i6, (HEAP32[i2 + 28 >> 2] | 0) + 4 | 0, i2 + 608 | 0);
 12528     i4 = i5;
 12529     i52 = i6;
 12530     HEAP32[i4 >> 2] = HEAP32[i52 >> 2];
 12531     HEAP32[i4 + 4 >> 2] = HEAP32[i52 + 4 >> 2];
 12532     HEAP32[i4 + 8 >> 2] = HEAP32[i52 + 8 >> 2];
 12533     HEAP32[i4 + 12 >> 2] = HEAP32[i52 + 12 >> 2];
 12534     i52 = i5 + 16 | 0;
 12535     i4 = i6 + 16 | 0;
 12536     HEAP32[i52 >> 2] = HEAP32[i4 >> 2];
 12537     HEAP32[i52 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
 12538     HEAP32[i52 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
 12539     HEAP32[i52 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
 12540     i4 = i5 + 32 | 0;
 12541     i52 = i6 + 32 | 0;
 12542     HEAP32[i4 >> 2] = HEAP32[i52 >> 2];
 12543     HEAP32[i4 + 4 >> 2] = HEAP32[i52 + 4 >> 2];
 12544     HEAP32[i4 + 8 >> 2] = HEAP32[i52 + 8 >> 2];
 12545     HEAP32[i4 + 12 >> 2] = HEAP32[i52 + 12 >> 2];
 12546     i52 = i5 + 48 | 0;
 12547     i4 = i6 + 48 | 0;
 12548     HEAP32[i52 >> 2] = HEAP32[i4 >> 2];
 12549     HEAP32[i52 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
 12550     HEAP32[i52 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
 12551     HEAP32[i52 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
 12552     i4 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
 12553     FUNCTION_TABLE_viif[HEAP32[(HEAP32[i4 >> 2] | 0) + 56 >> 2] & 3](i4, i5, d44);
 12555    i4 = i2 + 680 | 0;
 12556    d45 = +__ZNK14btAngularLimit6getLowEv(i4);
 12557    d46 = +__ZNK14btAngularLimit7getHighEv(i4);
 12558    if (d45 == d46) {
 12559     STACKTOP = i3;
 12560     return;
 12562    i4 = d45 > d46;
 12563    if ((i43 & 1 | 0) == 0) {
 12564     STACKTOP = i3;
 12565     return;
 12567    HEAPF32[i7 >> 2] = +HEAPF32[i5 + 8 >> 2];
 12568    HEAPF32[i7 + 4 >> 2] = +HEAPF32[i5 + 24 >> 2];
 12569    HEAPF32[i7 + 8 >> 2] = +HEAPF32[i5 + 40 >> 2];
 12570    HEAPF32[i7 + 12 >> 2] = 0.0;
 12571    HEAPF32[i8 >> 2] = +HEAPF32[i5 >> 2];
 12572    HEAPF32[i8 + 4 >> 2] = +HEAPF32[i5 + 16 >> 2];
 12573    HEAPF32[i8 + 8 >> 2] = +HEAPF32[i5 + 32 >> 2];
 12574    HEAPF32[i8 + 12 >> 2] = 0.0;
 12575    i52 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
 12576    i6 = HEAP32[(HEAP32[i52 >> 2] | 0) + 60 >> 2] | 0;
 12577    _memset(i9 | 0, 0, 16);
 12578    FUNCTION_TABLE_viiiiffffiif[i6 & 1](i52, i5 + 48 | 0, i7, i8, d44, d44, i4 ? 0.0 : d45, i4 ? 6.2831854820251465 : d46, i9, i4 ^ 1, 10.0);
 12579    STACKTOP = i3;
 12580    return;
 12582  case 5:
 12584    i4 = i2;
 12585    i9 = i2 + 24 | 0;
 12586    i8 = i2 + 292 | 0;
 12587    __ZNK11btTransformmlERKS_(i10, (HEAP32[i9 >> 2] | 0) + 4 | 0, i8);
 12588    if ((i42 & 1 | 0) == 0) {
 12589     __ZNK11btTransformmlERKS_(i11, (HEAP32[i2 + 28 >> 2] | 0) + 4 | 0, i2 + 356 | 0);
 12590     i7 = i10;
 12591     i5 = i11;
 12592     HEAP32[i7 >> 2] = HEAP32[i5 >> 2];
 12593     HEAP32[i7 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
 12594     HEAP32[i7 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
 12595     HEAP32[i7 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
 12596     i5 = i10 + 16 | 0;
 12597     i7 = i11 + 16 | 0;
 12598     HEAP32[i5 >> 2] = HEAP32[i7 >> 2];
 12599     HEAP32[i5 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
 12600     HEAP32[i5 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
 12601     HEAP32[i5 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
 12602     i7 = i10 + 32 | 0;
 12603     i5 = i11 + 32 | 0;
 12604     HEAP32[i7 >> 2] = HEAP32[i5 >> 2];
 12605     HEAP32[i7 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
 12606     HEAP32[i7 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
 12607     HEAP32[i7 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
 12608     i5 = i10 + 48 | 0;
 12609     i7 = i11 + 48 | 0;
 12610     HEAP32[i5 >> 2] = HEAP32[i7 >> 2];
 12611     HEAP32[i5 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
 12612     HEAP32[i5 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
 12613     HEAP32[i5 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
 12614    } else {
 12615     i7 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
 12616     FUNCTION_TABLE_viif[HEAP32[(HEAP32[i7 >> 2] | 0) + 56 >> 2] & 3](i7, i10, d44);
 12617     __ZNK11btTransformmlERKS_(i11, (HEAP32[i2 + 28 >> 2] | 0) + 4 | 0, i2 + 356 | 0);
 12618     i7 = i10;
 12619     i5 = i11;
 12620     HEAP32[i7 >> 2] = HEAP32[i5 >> 2];
 12621     HEAP32[i7 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
 12622     HEAP32[i7 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
 12623     HEAP32[i7 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
 12624     i5 = i10 + 16 | 0;
 12625     i7 = i11 + 16 | 0;
 12626     HEAP32[i5 >> 2] = HEAP32[i7 >> 2];
 12627     HEAP32[i5 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
 12628     HEAP32[i5 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
 12629     HEAP32[i5 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
 12630     i7 = i10 + 32 | 0;
 12631     i5 = i11 + 32 | 0;
 12632     HEAP32[i7 >> 2] = HEAP32[i5 >> 2];
 12633     HEAP32[i7 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
 12634     HEAP32[i7 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
 12635     HEAP32[i7 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
 12636     i5 = i10 + 48 | 0;
 12637     i7 = i11 + 48 | 0;
 12638     HEAP32[i5 >> 2] = HEAP32[i7 >> 2];
 12639     HEAP32[i5 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
 12640     HEAP32[i5 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
 12641     HEAP32[i5 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
 12642     i7 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
 12643     FUNCTION_TABLE_viif[HEAP32[(HEAP32[i7 >> 2] | 0) + 56 >> 2] & 3](i7, i10, d44);
 12645    if ((i43 & 1 | 0) == 0) {
 12646     STACKTOP = i3;
 12647     return;
 12649    __ZNK21btConeTwistConstraint16GetPointForAngleEff(i12, i4, 6.0868353843688965, d44);
 12650    i7 = i10 | 0;
 12651    i5 = i12 | 0;
 12652    d46 = +HEAPF32[i5 >> 2];
 12653    i11 = i10 + 4 | 0;
 12654    i52 = i12 + 4 | 0;
 12655    d45 = +HEAPF32[i52 >> 2];
 12656    i6 = i10 + 8 | 0;
 12657    i51 = i12 + 8 | 0;
 12658    d47 = +HEAPF32[i51 >> 2];
 12659    i1 = i10 + 48 | 0;
 12660    i53 = i10 + 16 | 0;
 12661    i50 = i10 + 20 | 0;
 12662    i54 = i10 + 24 | 0;
 12663    i55 = i10 + 52 | 0;
 12664    d48 = +HEAPF32[i55 >> 2] + (d46 * +HEAPF32[i53 >> 2] + d45 * +HEAPF32[i50 >> 2] + d47 * +HEAPF32[i54 >> 2]);
 12665    i56 = i10 + 32 | 0;
 12666    i57 = i10 + 36 | 0;
 12667    i58 = i10 + 40 | 0;
 12668    i59 = i10 + 56 | 0;
 12669    d49 = +HEAPF32[i59 >> 2] + (d46 * +HEAPF32[i56 >> 2] + d45 * +HEAPF32[i57 >> 2] + d47 * +HEAPF32[i58 >> 2]);
 12670    i60 = i12;
 12671    HEAPF32[i5 >> 2] = +HEAPF32[i1 >> 2] + (+HEAPF32[i7 >> 2] * d46 + +HEAPF32[i11 >> 2] * d45 + +HEAPF32[i6 >> 2] * d47);
 12672    HEAPF32[i52 >> 2] = d48;
 12673    HEAPF32[i51 >> 2] = d49;
 12674    HEAPF32[i12 + 12 >> 2] = 0.0;
 12675    i51 = i13 | 0;
 12676    i52 = i13 + 4 | 0;
 12677    i5 = i13 + 8 | 0;
 12678    i61 = i13;
 12679    i62 = i13 + 12 | 0;
 12680    i63 = i10 + 48 | 0;
 12681    i64 = i14;
 12682    i65 = i15;
 12683    i66 = 0;
 12684    do {
 12685     __ZNK21btConeTwistConstraint16GetPointForAngleEff(i13, i4, +(i66 | 0) * 6.283185005187988 * .03125, d44);
 12686     d49 = +HEAPF32[i51 >> 2];
 12687     d48 = +HEAPF32[i52 >> 2];
 12688     d47 = +HEAPF32[i5 >> 2];
 12689     d45 = +HEAPF32[i55 >> 2] + (d49 * +HEAPF32[i53 >> 2] + d48 * +HEAPF32[i50 >> 2] + d47 * +HEAPF32[i54 >> 2]);
 12690     d46 = +HEAPF32[i59 >> 2] + (d49 * +HEAPF32[i56 >> 2] + d48 * +HEAPF32[i57 >> 2] + d47 * +HEAPF32[i58 >> 2]);
 12691     HEAPF32[i51 >> 2] = +HEAPF32[i1 >> 2] + (+HEAPF32[i7 >> 2] * d49 + +HEAPF32[i11 >> 2] * d48 + +HEAPF32[i6 >> 2] * d47);
 12692     HEAPF32[i52 >> 2] = d45;
 12693     HEAPF32[i5 >> 2] = d46;
 12694     HEAPF32[i62 >> 2] = 0.0;
 12695     i67 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
 12696     i68 = HEAP32[(HEAP32[i67 >> 2] | 0) + 8 >> 2] | 0;
 12697     _memset(i64 | 0, 0, 16);
 12698     FUNCTION_TABLE_viiii[i68 & 127](i67, i12, i13, i14);
 12699     if ((i66 & 3 | 0) == 0) {
 12700      i67 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
 12701      i68 = HEAP32[(HEAP32[i67 >> 2] | 0) + 8 >> 2] | 0;
 12702      _memset(i65 | 0, 0, 16);
 12703      FUNCTION_TABLE_viiii[i68 & 127](i67, i63, i13, i15);
 12705     HEAP32[i60 >> 2] = HEAP32[i61 >> 2];
 12706     HEAP32[i60 + 4 >> 2] = HEAP32[i61 + 4 >> 2];
 12707     HEAP32[i60 + 8 >> 2] = HEAP32[i61 + 8 >> 2];
 12708     HEAP32[i60 + 12 >> 2] = HEAP32[i61 + 12 >> 2];
 12709     i66 = i66 + 1 | 0;
 12710    } while ((i66 | 0) < 32);
 12711    d46 = +HEAPF32[i2 + 444 >> 2];
 12712    d45 = +HEAPF32[i2 + 504 >> 2];
 12713    i66 = HEAP32[i2 + 28 >> 2] | 0;
 12714    if (+HEAPF32[i66 + 336 >> 2] > 0.0) {
 12715     __ZNK11btTransformmlERKS_(i16, i66 + 4 | 0, i2 + 356 | 0);
 12716     i66 = i10;
 12717     i61 = i16;
 12718     HEAP32[i66 >> 2] = HEAP32[i61 >> 2];
 12719     HEAP32[i66 + 4 >> 2] = HEAP32[i61 + 4 >> 2];
 12720     HEAP32[i66 + 8 >> 2] = HEAP32[i61 + 8 >> 2];
 12721     HEAP32[i66 + 12 >> 2] = HEAP32[i61 + 12 >> 2];
 12722     i61 = i10 + 16 | 0;
 12723     i66 = i16 + 16 | 0;
 12724     HEAP32[i61 >> 2] = HEAP32[i66 >> 2];
 12725     HEAP32[i61 + 4 >> 2] = HEAP32[i66 + 4 >> 2];
 12726     HEAP32[i61 + 8 >> 2] = HEAP32[i66 + 8 >> 2];
 12727     HEAP32[i61 + 12 >> 2] = HEAP32[i66 + 12 >> 2];
 12728     i66 = i10 + 32 | 0;
 12729     i61 = i16 + 32 | 0;
 12730     HEAP32[i66 >> 2] = HEAP32[i61 >> 2];
 12731     HEAP32[i66 + 4 >> 2] = HEAP32[i61 + 4 >> 2];
 12732     HEAP32[i66 + 8 >> 2] = HEAP32[i61 + 8 >> 2];
 12733     HEAP32[i66 + 12 >> 2] = HEAP32[i61 + 12 >> 2];
 12734     i61 = i63;
 12735     i66 = i16 + 48 | 0;
 12736     HEAP32[i61 >> 2] = HEAP32[i66 >> 2];
 12737     HEAP32[i61 + 4 >> 2] = HEAP32[i66 + 4 >> 2];
 12738     HEAP32[i61 + 8 >> 2] = HEAP32[i66 + 8 >> 2];
 12739     HEAP32[i61 + 12 >> 2] = HEAP32[i66 + 12 >> 2];
 12740    } else {
 12741     __ZNK11btTransformmlERKS_(i17, (HEAP32[i9 >> 2] | 0) + 4 | 0, i8);
 12742     i8 = i10;
 12743     i9 = i17;
 12744     HEAP32[i8 >> 2] = HEAP32[i9 >> 2];
 12745     HEAP32[i8 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
 12746     HEAP32[i8 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
 12747     HEAP32[i8 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
 12748     i9 = i10 + 16 | 0;
 12749     i8 = i17 + 16 | 0;
 12750     HEAP32[i9 >> 2] = HEAP32[i8 >> 2];
 12751     HEAP32[i9 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
 12752     HEAP32[i9 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
 12753     HEAP32[i9 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
 12754     i8 = i10 + 32 | 0;
 12755     i10 = i17 + 32 | 0;
 12756     HEAP32[i8 >> 2] = HEAP32[i10 >> 2];
 12757     HEAP32[i8 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
 12758     HEAP32[i8 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
 12759     HEAP32[i8 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
 12760     i10 = i63;
 12761     i8 = i17 + 48 | 0;
 12762     HEAP32[i10 >> 2] = HEAP32[i8 >> 2];
 12763     HEAP32[i10 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
 12764     HEAP32[i10 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
 12765     HEAP32[i10 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
 12767    i8 = i18;
 12768    i10 = i63;
 12769    HEAP32[i8 >> 2] = HEAP32[i10 >> 2];
 12770    HEAP32[i8 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
 12771    HEAP32[i8 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
 12772    HEAP32[i8 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
 12773    HEAPF32[i19 >> 2] = +HEAPF32[i7 >> 2];
 12774    HEAPF32[i19 + 4 >> 2] = +HEAPF32[i53 >> 2];
 12775    HEAPF32[i19 + 8 >> 2] = +HEAPF32[i56 >> 2];
 12776    HEAPF32[i19 + 12 >> 2] = 0.0;
 12777    HEAPF32[i20 >> 2] = +HEAPF32[i11 >> 2];
 12778    HEAPF32[i20 + 4 >> 2] = +HEAPF32[i50 >> 2];
 12779    HEAPF32[i20 + 8 >> 2] = +HEAPF32[i57 >> 2];
 12780    HEAPF32[i20 + 12 >> 2] = 0.0;
 12781    i57 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
 12782    i50 = HEAP32[(HEAP32[i57 >> 2] | 0) + 60 >> 2] | 0;
 12783    _memset(i21 | 0, 0, 16);
 12784    FUNCTION_TABLE_viiiiffffiif[i50 & 1](i57, i18, i19, i20, d44, d44, -0.0 - d45 - d46, d46 - d45, i21, 1, 10.0);
 12785    STACKTOP = i3;
 12786    return;
 12788  case 9:
 12789  case 6:
 12791    i21 = i2;
 12792    i20 = i2 + 1056 | 0;
 12793    i19 = i22;
 12794    i18 = i20;
 12795    HEAP32[i19 >> 2] = HEAP32[i18 >> 2];
 12796    HEAP32[i19 + 4 >> 2] = HEAP32[i18 + 4 >> 2];
 12797    HEAP32[i19 + 8 >> 2] = HEAP32[i18 + 8 >> 2];
 12798    HEAP32[i19 + 12 >> 2] = HEAP32[i18 + 12 >> 2];
 12799    i57 = i22 + 16 | 0;
 12800    i50 = i20 + 16 | 0;
 12801    HEAP32[i57 >> 2] = HEAP32[i50 >> 2];
 12802    HEAP32[i57 + 4 >> 2] = HEAP32[i50 + 4 >> 2];
 12803    HEAP32[i57 + 8 >> 2] = HEAP32[i50 + 8 >> 2];
 12804    HEAP32[i57 + 12 >> 2] = HEAP32[i50 + 12 >> 2];
 12805    i11 = i22 + 32 | 0;
 12806    i56 = i20 + 32 | 0;
 12807    HEAP32[i11 >> 2] = HEAP32[i56 >> 2];
 12808    HEAP32[i11 + 4 >> 2] = HEAP32[i56 + 4 >> 2];
 12809    HEAP32[i11 + 8 >> 2] = HEAP32[i56 + 8 >> 2];
 12810    HEAP32[i11 + 12 >> 2] = HEAP32[i56 + 12 >> 2];
 12811    i53 = i22 + 48 | 0;
 12812    i7 = i20 + 48 | 0;
 12813    HEAP32[i53 >> 2] = HEAP32[i7 >> 2];
 12814    HEAP32[i53 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
 12815    HEAP32[i53 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
 12816    HEAP32[i53 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
 12817    if ((i42 & 1 | 0) == 0) {
 12818     i20 = i2 + 1120 | 0;
 12819     HEAP32[i19 >> 2] = HEAP32[i20 >> 2];
 12820     HEAP32[i19 + 4 >> 2] = HEAP32[i20 + 4 >> 2];
 12821     HEAP32[i19 + 8 >> 2] = HEAP32[i20 + 8 >> 2];
 12822     HEAP32[i19 + 12 >> 2] = HEAP32[i20 + 12 >> 2];
 12823     i20 = i2 + 1136 | 0;
 12824     HEAP32[i57 >> 2] = HEAP32[i20 >> 2];
 12825     HEAP32[i57 + 4 >> 2] = HEAP32[i20 + 4 >> 2];
 12826     HEAP32[i57 + 8 >> 2] = HEAP32[i20 + 8 >> 2];
 12827     HEAP32[i57 + 12 >> 2] = HEAP32[i20 + 12 >> 2];
 12828     i20 = i2 + 1152 | 0;
 12829     HEAP32[i11 >> 2] = HEAP32[i20 >> 2];
 12830     HEAP32[i11 + 4 >> 2] = HEAP32[i20 + 4 >> 2];
 12831     HEAP32[i11 + 8 >> 2] = HEAP32[i20 + 8 >> 2];
 12832     HEAP32[i11 + 12 >> 2] = HEAP32[i20 + 12 >> 2];
 12833     i20 = i2 + 1168 | 0;
 12834     HEAP32[i53 >> 2] = HEAP32[i20 >> 2];
 12835     HEAP32[i53 + 4 >> 2] = HEAP32[i20 + 4 >> 2];
 12836     HEAP32[i53 + 8 >> 2] = HEAP32[i20 + 8 >> 2];
 12837     HEAP32[i53 + 12 >> 2] = HEAP32[i20 + 12 >> 2];
 12838    } else {
 12839     i20 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
 12840     FUNCTION_TABLE_viif[HEAP32[(HEAP32[i20 >> 2] | 0) + 56 >> 2] & 3](i20, i22, d44);
 12841     i20 = i2 + 1120 | 0;
 12842     HEAP32[i19 >> 2] = HEAP32[i20 >> 2];
 12843     HEAP32[i19 + 4 >> 2] = HEAP32[i20 + 4 >> 2];
 12844     HEAP32[i19 + 8 >> 2] = HEAP32[i20 + 8 >> 2];
 12845     HEAP32[i19 + 12 >> 2] = HEAP32[i20 + 12 >> 2];
 12846     i20 = i2 + 1136 | 0;
 12847     HEAP32[i57 >> 2] = HEAP32[i20 >> 2];
 12848     HEAP32[i57 + 4 >> 2] = HEAP32[i20 + 4 >> 2];
 12849     HEAP32[i57 + 8 >> 2] = HEAP32[i20 + 8 >> 2];
 12850     HEAP32[i57 + 12 >> 2] = HEAP32[i20 + 12 >> 2];
 12851     i20 = i2 + 1152 | 0;
 12852     HEAP32[i11 >> 2] = HEAP32[i20 >> 2];
 12853     HEAP32[i11 + 4 >> 2] = HEAP32[i20 + 4 >> 2];
 12854     HEAP32[i11 + 8 >> 2] = HEAP32[i20 + 8 >> 2];
 12855     HEAP32[i11 + 12 >> 2] = HEAP32[i20 + 12 >> 2];
 12856     i20 = i2 + 1168 | 0;
 12857     HEAP32[i53 >> 2] = HEAP32[i20 >> 2];
 12858     HEAP32[i53 + 4 >> 2] = HEAP32[i20 + 4 >> 2];
 12859     HEAP32[i53 + 8 >> 2] = HEAP32[i20 + 8 >> 2];
 12860     HEAP32[i53 + 12 >> 2] = HEAP32[i20 + 12 >> 2];
 12861     i20 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
 12862     FUNCTION_TABLE_viif[HEAP32[(HEAP32[i20 >> 2] | 0) + 56 >> 2] & 3](i20, i22, d44);
 12864    if ((i43 & 1 | 0) == 0) {
 12865     STACKTOP = i3;
 12866     return;
 12868    HEAP32[i19 >> 2] = HEAP32[i18 >> 2];
 12869    HEAP32[i19 + 4 >> 2] = HEAP32[i18 + 4 >> 2];
 12870    HEAP32[i19 + 8 >> 2] = HEAP32[i18 + 8 >> 2];
 12871    HEAP32[i19 + 12 >> 2] = HEAP32[i18 + 12 >> 2];
 12872    HEAP32[i57 >> 2] = HEAP32[i50 >> 2];
 12873    HEAP32[i57 + 4 >> 2] = HEAP32[i50 + 4 >> 2];
 12874    HEAP32[i57 + 8 >> 2] = HEAP32[i50 + 8 >> 2];
 12875    HEAP32[i57 + 12 >> 2] = HEAP32[i50 + 12 >> 2];
 12876    HEAP32[i11 >> 2] = HEAP32[i56 >> 2];
 12877    HEAP32[i11 + 4 >> 2] = HEAP32[i56 + 4 >> 2];
 12878    HEAP32[i11 + 8 >> 2] = HEAP32[i56 + 8 >> 2];
 12879    HEAP32[i11 + 12 >> 2] = HEAP32[i56 + 12 >> 2];
 12880    HEAP32[i53 >> 2] = HEAP32[i7 >> 2];
 12881    HEAP32[i53 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
 12882    HEAP32[i53 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
 12883    HEAP32[i53 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
 12884    i20 = i2 + 1168 | 0;
 12885    i10 = i20;
 12886    HEAPF32[i23 >> 2] = +HEAPF32[i22 + 8 >> 2];
 12887    HEAPF32[i23 + 4 >> 2] = +HEAPF32[i22 + 24 >> 2];
 12888    HEAPF32[i23 + 8 >> 2] = +HEAPF32[i22 + 40 >> 2];
 12889    HEAPF32[i23 + 12 >> 2] = 0.0;
 12890    i8 = i22 | 0;
 12891    i63 = i22 + 16 | 0;
 12892    i17 = i22 + 32 | 0;
 12893    i9 = i24 | 0;
 12894    HEAPF32[i9 >> 2] = +HEAPF32[i8 >> 2];
 12895    i66 = i24 + 4 | 0;
 12896    HEAPF32[i66 >> 2] = +HEAPF32[i63 >> 2];
 12897    i61 = i24 + 8 | 0;
 12898    HEAPF32[i61 >> 2] = +HEAPF32[i17 >> 2];
 12899    i16 = i24 + 12 | 0;
 12900    HEAPF32[i16 >> 2] = 0.0;
 12901    i60 = i2 + 924 | 0;
 12902    d45 = +HEAPF32[i60 >> 2];
 12903    d46 = +HEAPF32[i60 + 4 >> 2];
 12904    i60 = i2 + 988 | 0;
 12905    d47 = +HEAPF32[i60 >> 2];
 12906    d48 = +HEAPF32[i60 + 4 >> 2];
 12907    i60 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
 12908    i15 = HEAP32[(HEAP32[i60 >> 2] | 0) + 64 >> 2] | 0;
 12909    _memset(i25 | 0, 0, 16);
 12910    FUNCTION_TABLE_viiiifffffif[i15 & 1](i60, i10, i23, i24, d44 * .8999999761581421, d45, d46, d47, d48, i25, 10.0);
 12911    d48 = +HEAPF32[i22 + 20 >> 2];
 12912    d47 = +HEAPF32[i22 + 36 >> 2];
 12913    HEAPF32[i9 >> 2] = +HEAPF32[i22 + 4 >> 2];
 12914    HEAPF32[i66 >> 2] = d48;
 12915    HEAPF32[i61 >> 2] = d47;
 12916    HEAPF32[i16 >> 2] = 0.0;
 12917    d47 = +__ZNK23btGeneric6DofConstraint8getAngleEi(i21, 1);
 12918    d48 = +__ZNK23btGeneric6DofConstraint8getAngleEi(i21, 2);
 12919    d46 = +Math_cos(+d47);
 12920    d45 = +Math_sin(+d47);
 12921    d47 = +Math_cos(+d48);
 12922    d49 = +Math_sin(+d48);
 12923    d48 = +HEAPF32[i9 >> 2];
 12924    d69 = +HEAPF32[i66 >> 2];
 12925    d70 = +HEAPF32[i61 >> 2];
 12926    HEAPF32[i26 >> 2] = d46 * d47 * d48 + d46 * d49 * d69 - d45 * d70;
 12927    HEAPF32[i26 + 4 >> 2] = d48 * (-0.0 - d49) + d47 * d69;
 12928    HEAPF32[i26 + 8 >> 2] = d45 * d47 * d48 + d45 * d49 * d69 + d46 * d70;
 12929    i61 = i2 + 1120 | 0;
 12930    HEAP32[i19 >> 2] = HEAP32[i61 >> 2];
 12931    HEAP32[i19 + 4 >> 2] = HEAP32[i61 + 4 >> 2];
 12932    HEAP32[i19 + 8 >> 2] = HEAP32[i61 + 8 >> 2];
 12933    HEAP32[i19 + 12 >> 2] = HEAP32[i61 + 12 >> 2];
 12934    i61 = i2 + 1136 | 0;
 12935    HEAP32[i57 >> 2] = HEAP32[i61 >> 2];
 12936    HEAP32[i57 + 4 >> 2] = HEAP32[i61 + 4 >> 2];
 12937    HEAP32[i57 + 8 >> 2] = HEAP32[i61 + 8 >> 2];
 12938    HEAP32[i57 + 12 >> 2] = HEAP32[i61 + 12 >> 2];
 12939    i61 = i2 + 1152 | 0;
 12940    HEAP32[i11 >> 2] = HEAP32[i61 >> 2];
 12941    HEAP32[i11 + 4 >> 2] = HEAP32[i61 + 4 >> 2];
 12942    HEAP32[i11 + 8 >> 2] = HEAP32[i61 + 8 >> 2];
 12943    HEAP32[i11 + 12 >> 2] = HEAP32[i61 + 12 >> 2];
 12944    i61 = i20;
 12945    HEAP32[i53 >> 2] = HEAP32[i61 >> 2];
 12946    HEAP32[i53 + 4 >> 2] = HEAP32[i61 + 4 >> 2];
 12947    HEAP32[i53 + 8 >> 2] = HEAP32[i61 + 8 >> 2];
 12948    HEAP32[i53 + 12 >> 2] = HEAP32[i61 + 12 >> 2];
 12949    d70 = -0.0 - +HEAPF32[i63 >> 2];
 12950    d46 = -0.0 - +HEAPF32[i17 >> 2];
 12951    HEAPF32[i27 >> 2] = -0.0 - +HEAPF32[i8 >> 2];
 12952    HEAPF32[i27 + 4 >> 2] = d70;
 12953    HEAPF32[i27 + 8 >> 2] = d46;
 12954    HEAPF32[i27 + 12 >> 2] = 0.0;
 12955    i8 = i2 + 860 | 0;
 12956    d46 = +HEAPF32[i8 >> 2];
 12957    d70 = +HEAPF32[i8 + 4 >> 2];
 12958    do {
 12959     if (d46 > d70) {
 12960      i8 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
 12961      i17 = HEAP32[(HEAP32[i8 >> 2] | 0) + 60 >> 2] | 0;
 12962      _memset(i28 | 0, 0, 16);
 12963      FUNCTION_TABLE_viiiiffffiif[i17 & 1](i8, i10, i27, i26, d44, d44, -3.1415927410125732, 3.1415927410125732, i28, 0, 10.0);
 12964     } else {
 12965      if (d46 >= d70) {
 12966       break;
 12968      i8 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
 12969      i17 = HEAP32[(HEAP32[i8 >> 2] | 0) + 60 >> 2] | 0;
 12970      _memset(i29 | 0, 0, 16);
 12971      FUNCTION_TABLE_viiiiffffiif[i17 & 1](i8, i10, i27, i26, d44, d44, d46, d70, i29, 1, 10.0);
 12973    } while (0);
 12974    HEAP32[i19 >> 2] = HEAP32[i18 >> 2];
 12975    HEAP32[i19 + 4 >> 2] = HEAP32[i18 + 4 >> 2];
 12976    HEAP32[i19 + 8 >> 2] = HEAP32[i18 + 8 >> 2];
 12977    HEAP32[i19 + 12 >> 2] = HEAP32[i18 + 12 >> 2];
 12978    HEAP32[i57 >> 2] = HEAP32[i50 >> 2];
 12979    HEAP32[i57 + 4 >> 2] = HEAP32[i50 + 4 >> 2];
 12980    HEAP32[i57 + 8 >> 2] = HEAP32[i50 + 8 >> 2];
 12981    HEAP32[i57 + 12 >> 2] = HEAP32[i50 + 12 >> 2];
 12982    HEAP32[i11 >> 2] = HEAP32[i56 >> 2];
 12983    HEAP32[i11 + 4 >> 2] = HEAP32[i56 + 4 >> 2];
 12984    HEAP32[i11 + 8 >> 2] = HEAP32[i56 + 8 >> 2];
 12985    HEAP32[i11 + 12 >> 2] = HEAP32[i56 + 12 >> 2];
 12986    HEAP32[i53 >> 2] = HEAP32[i7 >> 2];
 12987    HEAP32[i53 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
 12988    HEAP32[i53 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
 12989    HEAP32[i53 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
 12990    i7 = i2 + 672 | 0;
 12991    i53 = i30;
 12992    i56 = i7;
 12993    HEAP32[i53 >> 2] = HEAP32[i56 >> 2];
 12994    HEAP32[i53 + 4 >> 2] = HEAP32[i56 + 4 >> 2];
 12995    HEAP32[i53 + 8 >> 2] = HEAP32[i56 + 8 >> 2];
 12996    HEAP32[i53 + 12 >> 2] = HEAP32[i56 + 12 >> 2];
 12997    i56 = i31;
 12998    i53 = i7 + 16 | 0;
 12999    HEAP32[i56 >> 2] = HEAP32[i53 >> 2];
 13000    HEAP32[i56 + 4 >> 2] = HEAP32[i53 + 4 >> 2];
 13001    HEAP32[i56 + 8 >> 2] = HEAP32[i53 + 8 >> 2];
 13002    HEAP32[i56 + 12 >> 2] = HEAP32[i53 + 12 >> 2];
 13003    i53 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
 13004    i56 = HEAP32[(HEAP32[i53 >> 2] | 0) + 72 >> 2] | 0;
 13005    _memset(i32 | 0, 0, 16);
 13006    FUNCTION_TABLE_viiiii[i56 & 63](i53, i30, i31, i22, i32);
 13007    STACKTOP = i3;
 13008    return;
 13010  case 7:
 13012    i32 = i2 + 816 | 0;
 13013    i22 = i33;
 13014    i31 = i32;
 13015    HEAP32[i22 >> 2] = HEAP32[i31 >> 2];
 13016    HEAP32[i22 + 4 >> 2] = HEAP32[i31 + 4 >> 2];
 13017    HEAP32[i22 + 8 >> 2] = HEAP32[i31 + 8 >> 2];
 13018    HEAP32[i22 + 12 >> 2] = HEAP32[i31 + 12 >> 2];
 13019    i31 = i33 + 16 | 0;
 13020    i30 = i32 + 16 | 0;
 13021    HEAP32[i31 >> 2] = HEAP32[i30 >> 2];
 13022    HEAP32[i31 + 4 >> 2] = HEAP32[i30 + 4 >> 2];
 13023    HEAP32[i31 + 8 >> 2] = HEAP32[i30 + 8 >> 2];
 13024    HEAP32[i31 + 12 >> 2] = HEAP32[i30 + 12 >> 2];
 13025    i30 = i33 + 32 | 0;
 13026    i53 = i32 + 32 | 0;
 13027    HEAP32[i30 >> 2] = HEAP32[i53 >> 2];
 13028    HEAP32[i30 + 4 >> 2] = HEAP32[i53 + 4 >> 2];
 13029    HEAP32[i30 + 8 >> 2] = HEAP32[i53 + 8 >> 2];
 13030    HEAP32[i30 + 12 >> 2] = HEAP32[i53 + 12 >> 2];
 13031    i53 = i33 + 48 | 0;
 13032    i56 = i32 + 48 | 0;
 13033    HEAP32[i53 >> 2] = HEAP32[i56 >> 2];
 13034    HEAP32[i53 + 4 >> 2] = HEAP32[i56 + 4 >> 2];
 13035    HEAP32[i53 + 8 >> 2] = HEAP32[i56 + 8 >> 2];
 13036    HEAP32[i53 + 12 >> 2] = HEAP32[i56 + 12 >> 2];
 13037    if ((i42 & 1 | 0) == 0) {
 13038     i42 = i2 + 880 | 0;
 13039     HEAP32[i22 >> 2] = HEAP32[i42 >> 2];
 13040     HEAP32[i22 + 4 >> 2] = HEAP32[i42 + 4 >> 2];
 13041     HEAP32[i22 + 8 >> 2] = HEAP32[i42 + 8 >> 2];
 13042     HEAP32[i22 + 12 >> 2] = HEAP32[i42 + 12 >> 2];
 13043     i42 = i2 + 896 | 0;
 13044     HEAP32[i31 >> 2] = HEAP32[i42 >> 2];
 13045     HEAP32[i31 + 4 >> 2] = HEAP32[i42 + 4 >> 2];
 13046     HEAP32[i31 + 8 >> 2] = HEAP32[i42 + 8 >> 2];
 13047     HEAP32[i31 + 12 >> 2] = HEAP32[i42 + 12 >> 2];
 13048     i42 = i2 + 912 | 0;
 13049     HEAP32[i30 >> 2] = HEAP32[i42 >> 2];
 13050     HEAP32[i30 + 4 >> 2] = HEAP32[i42 + 4 >> 2];
 13051     HEAP32[i30 + 8 >> 2] = HEAP32[i42 + 8 >> 2];
 13052     HEAP32[i30 + 12 >> 2] = HEAP32[i42 + 12 >> 2];
 13053     i42 = i2 + 928 | 0;
 13054     HEAP32[i53 >> 2] = HEAP32[i42 >> 2];
 13055     HEAP32[i53 + 4 >> 2] = HEAP32[i42 + 4 >> 2];
 13056     HEAP32[i53 + 8 >> 2] = HEAP32[i42 + 8 >> 2];
 13057     HEAP32[i53 + 12 >> 2] = HEAP32[i42 + 12 >> 2];
 13058    } else {
 13059     i42 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
 13060     FUNCTION_TABLE_viif[HEAP32[(HEAP32[i42 >> 2] | 0) + 56 >> 2] & 3](i42, i33, d44);
 13061     i42 = i2 + 880 | 0;
 13062     HEAP32[i22 >> 2] = HEAP32[i42 >> 2];
 13063     HEAP32[i22 + 4 >> 2] = HEAP32[i42 + 4 >> 2];
 13064     HEAP32[i22 + 8 >> 2] = HEAP32[i42 + 8 >> 2];
 13065     HEAP32[i22 + 12 >> 2] = HEAP32[i42 + 12 >> 2];
 13066     i42 = i2 + 896 | 0;
 13067     HEAP32[i31 >> 2] = HEAP32[i42 >> 2];
 13068     HEAP32[i31 + 4 >> 2] = HEAP32[i42 + 4 >> 2];
 13069     HEAP32[i31 + 8 >> 2] = HEAP32[i42 + 8 >> 2];
 13070     HEAP32[i31 + 12 >> 2] = HEAP32[i42 + 12 >> 2];
 13071     i42 = i2 + 912 | 0;
 13072     HEAP32[i30 >> 2] = HEAP32[i42 >> 2];
 13073     HEAP32[i30 + 4 >> 2] = HEAP32[i42 + 4 >> 2];
 13074     HEAP32[i30 + 8 >> 2] = HEAP32[i42 + 8 >> 2];
 13075     HEAP32[i30 + 12 >> 2] = HEAP32[i42 + 12 >> 2];
 13076     i42 = i2 + 928 | 0;
 13077     HEAP32[i53 >> 2] = HEAP32[i42 >> 2];
 13078     HEAP32[i53 + 4 >> 2] = HEAP32[i42 + 4 >> 2];
 13079     HEAP32[i53 + 8 >> 2] = HEAP32[i42 + 8 >> 2];
 13080     HEAP32[i53 + 12 >> 2] = HEAP32[i42 + 12 >> 2];
 13081     i42 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
 13082     FUNCTION_TABLE_viif[HEAP32[(HEAP32[i42 >> 2] | 0) + 56 >> 2] & 3](i42, i33, d44);
 13084    if ((i43 & 1 | 0) == 0) {
 13085     STACKTOP = i3;
 13086     return;
 13088    i43 = (HEAP8[i2 + 172 | 0] | 0) != 0 ? i32 : i2 + 880 | 0;
 13089    d70 = +HEAPF32[i43 >> 2];
 13090    d46 = +HEAPF32[i43 + 4 >> 2];
 13091    d69 = +HEAPF32[i43 + 16 >> 2];
 13092    d49 = +HEAPF32[i43 + 20 >> 2];
 13093    d45 = +HEAPF32[i43 + 32 >> 2];
 13094    d48 = +HEAPF32[i43 + 36 >> 2];
 13095    d47 = +HEAPF32[i43 + 48 >> 2];
 13096    d71 = +HEAPF32[i43 + 52 >> 2];
 13097    d72 = +HEAPF32[i43 + 56 >> 2];
 13098    d73 = +HEAPF32[i2 + 176 >> 2];
 13099    d74 = d46 * 0.0;
 13100    d75 = +HEAPF32[i43 + 8 >> 2] * 0.0;
 13101    d76 = d49 * 0.0;
 13102    d77 = +HEAPF32[i43 + 24 >> 2] * 0.0;
 13103    d78 = d48 * 0.0;
 13104    d79 = +HEAPF32[i43 + 40 >> 2] * 0.0;
 13105    HEAPF32[i34 >> 2] = d47 + (d75 + (d74 + d70 * d73));
 13106    HEAPF32[i34 + 4 >> 2] = d71 + (d77 + (d76 + d69 * d73));
 13107    HEAPF32[i34 + 8 >> 2] = d72 + (d79 + (d78 + d45 * d73));
 13108    HEAPF32[i34 + 12 >> 2] = 0.0;
 13109    d73 = +HEAPF32[i2 + 180 >> 2];
 13110    HEAPF32[i35 >> 2] = d47 + (d75 + (d74 + d70 * d73));
 13111    HEAPF32[i35 + 4 >> 2] = d71 + (d77 + (d76 + d69 * d73));
 13112    HEAPF32[i35 + 8 >> 2] = d72 + (d79 + (d78 + d45 * d73));
 13113    HEAPF32[i35 + 12 >> 2] = 0.0;
 13114    i43 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
 13115    i32 = HEAP32[(HEAP32[i43 >> 2] | 0) + 8 >> 2] | 0;
 13116    _memset(i36 | 0, 0, 16);
 13117    FUNCTION_TABLE_viiii[i32 & 127](i43, i34, i35, i36);
 13118    HEAPF32[i37 >> 2] = d70;
 13119    HEAPF32[i37 + 4 >> 2] = d69;
 13120    HEAPF32[i37 + 8 >> 2] = d45;
 13121    HEAPF32[i37 + 12 >> 2] = 0.0;
 13122    HEAPF32[i38 >> 2] = d46;
 13123    HEAPF32[i38 + 4 >> 2] = d49;
 13124    HEAPF32[i38 + 8 >> 2] = d48;
 13125    HEAPF32[i38 + 12 >> 2] = 0.0;
 13126    d48 = +HEAPF32[i2 + 184 >> 2];
 13127    d49 = +HEAPF32[i2 + 188 >> 2];
 13128    i36 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i41 >> 2] | 0) + 16 >> 2] & 127](i40) | 0;
 13129    i40 = HEAP32[(HEAP32[i36 >> 2] | 0) + 60 >> 2] | 0;
 13130    _memset(i39 | 0, 0, 16);
 13131    FUNCTION_TABLE_viiiiffffiif[i40 & 1](i36, i2 + 928 | 0, i37, i38, d44, d44, d48, d49, i39, 1, 10.0);
 13132    STACKTOP = i3;
 13133    return;
 13135  default:
 13137    STACKTOP = i3;
 13138    return;
 13142 function __ZN20btConvexHullInternal5mergeERNS_16IntermediateHullES1_(i1, i2, i3) {
 13143  i1 = i1 | 0;
 13144  i2 = i2 | 0;
 13145  i3 = i3 | 0;
 13146  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0, i68 = 0, i69 = 0, i70 = 0, i71 = 0, i72 = 0, i73 = 0, i74 = 0, i75 = 0, i76 = 0, i77 = 0, i78 = 0, i79 = 0, i80 = 0, i81 = 0, i82 = 0, i83 = 0, i84 = 0, i85 = 0, i86 = 0, i87 = 0, i88 = 0, i89 = 0, i90 = 0, i91 = 0, i92 = 0, i93 = 0, i94 = 0, i95 = 0, i96 = 0, i97 = 0, i98 = 0, i99 = 0, i100 = 0, i101 = 0, i102 = 0, i103 = 0, i104 = 0, i105 = 0, i106 = 0, i107 = 0, i108 = 0, i109 = 0, i110 = 0, i111 = 0, i112 = 0, i113 = 0, i114 = 0, i115 = 0, i116 = 0, i117 = 0, i118 = 0;
 13147  i4 = STACKTOP;
 13148  STACKTOP = STACKTOP + 160 | 0;
 13149  i5 = i4 | 0;
 13150  i6 = i4 + 8 | 0;
 13151  i7 = i4 + 16 | 0;
 13152  i8 = i4 + 24 | 0;
 13153  i9 = i4 + 32 | 0;
 13154  i10 = i4 + 48 | 0;
 13155  i11 = i4 + 72 | 0;
 13156  i12 = i4 + 96 | 0;
 13157  i13 = i4 + 120 | 0;
 13158  i14 = i4 + 144 | 0;
 13159  i15 = i4 + 152 | 0;
 13160  if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
 13161   STACKTOP = i4;
 13162   return;
 13164  if ((HEAP32[i2 + 4 >> 2] | 0) == 0) {
 13165   i16 = i2;
 13166   i17 = i3;
 13167   HEAP32[i16 >> 2] = HEAP32[i17 >> 2];
 13168   HEAP32[i16 + 4 >> 2] = HEAP32[i17 + 4 >> 2];
 13169   HEAP32[i16 + 8 >> 2] = HEAP32[i17 + 8 >> 2];
 13170   HEAP32[i16 + 12 >> 2] = HEAP32[i17 + 12 >> 2];
 13171   STACKTOP = i4;
 13172   return;
 13174  i17 = i1 + 100 | 0;
 13175  HEAP32[i17 >> 2] = (HEAP32[i17 >> 2] | 0) - 1;
 13176  HEAP32[i5 >> 2] = 0;
 13177  HEAP32[i6 >> 2] = 0;
 13178  i16 = __ZN20btConvexHullInternal15mergeProjectionERNS_16IntermediateHullES1_RPNS_6VertexES4_(0, i2, i3, i5, i6) | 0;
 13179  i3 = HEAP32[i6 >> 2] | 0;
 13180  if (i16) {
 13181   i16 = HEAP32[i5 >> 2] | 0;
 13182   i2 = HEAP32[i3 + 88 >> 2] | 0;
 13183   i18 = HEAP32[i16 + 88 >> 2] | 0;
 13184   i19 = i2 - i18 | 0;
 13185   i20 = HEAP32[i3 + 92 >> 2] | 0;
 13186   i21 = HEAP32[i16 + 92 >> 2] | 0;
 13187   i22 = i20 - i21 | 0;
 13188   i23 = HEAP32[i3 + 96 >> 2] | 0;
 13189   i24 = HEAP32[i16 + 96 >> 2] | 0;
 13190   i25 = i23 - i24 | 0;
 13191   i26 = i22;
 13192   i27 = (i22 | 0) < 0 ? -1 : 0;
 13193   i22 = -i19 | 0;
 13194   i28 = i22;
 13195   i29 = (i22 | 0) < 0 ? -1 : 0;
 13196   i22 = i25;
 13197   i30 = (i25 | 0) < 0 ? -1 : 0;
 13198   i25 = _i64Subtract(0, 0, i28, i29) | 0;
 13199   i31 = ___muldi3(i22, i30, i25, tempRet0) | 0;
 13200   i25 = tempRet0;
 13201   i32 = ___muldi3(i22, i30, i26, i27) | 0;
 13202   i30 = tempRet0;
 13203   i22 = ___muldi3(i19, (i19 | 0) < 0 ? -1 : 0, i28, i29) | 0;
 13204   i19 = tempRet0;
 13205   i33 = ___muldi3(i26, i27, i26, i27) | 0;
 13206   i34 = _i64Subtract(i22, i19, i33, tempRet0) | 0;
 13207   i33 = tempRet0;
 13208   i19 = HEAP32[i16 + 8 >> 2] | 0;
 13209   HEAP32[i7 >> 2] = 0;
 13210   if ((i19 | 0) == 0) {
 13211    i35 = 0;
 13212   } else {
 13213    i22 = _i64Subtract(0, 0, i26, i27) | 0;
 13214    i36 = tempRet0;
 13215    i37 = i19;
 13216    i38 = 0;
 13217    while (1) {
 13218     i39 = HEAP32[i37 + 12 >> 2] | 0;
 13219     i40 = HEAP32[i39 + 88 >> 2] | 0;
 13220     i41 = i40 - i18 | 0;
 13221     i42 = HEAP32[i39 + 92 >> 2] | 0;
 13222     i43 = i42 - i21 | 0;
 13223     i44 = i41;
 13224     i45 = (i41 | 0) < 0 ? -1 : 0;
 13225     i41 = i43;
 13226     i46 = (i43 | 0) < 0 ? -1 : 0;
 13227     i43 = ___muldi3(i41, i46, i28, i29) | 0;
 13228     i47 = tempRet0;
 13229     i48 = ___muldi3(i44, i45, i22, i36) | 0;
 13230     do {
 13231      if ((i43 | 0) == (i48 | 0) & (i47 | 0) == (tempRet0 | 0)) {
 13232       i49 = HEAP32[i39 + 96 >> 2] | 0;
 13233       i50 = i49 - i24 | 0;
 13234       i51 = ___muldi3(i44, i45, i31, i25) | 0;
 13235       i52 = tempRet0;
 13236       i53 = ___muldi3(i41, i46, i32, i30) | 0;
 13237       i54 = _i64Add(i53, tempRet0, i51, i52) | 0;
 13238       i52 = tempRet0;
 13239       i51 = ___muldi3(i50, (i50 | 0) < 0 ? -1 : 0, i34, i33) | 0;
 13240       i50 = _i64Add(i54, i52, i51, tempRet0) | 0;
 13241       i51 = tempRet0;
 13242       i52 = 0;
 13243       if (!((i51 | 0) > (i52 | 0) | (i51 | 0) == (i52 | 0) & i50 >>> 0 > 0 >>> 0)) {
 13244        i55 = i38;
 13245        break;
 13247       if ((i38 | 0) != 0) {
 13248        i50 = (HEAP32[i38 + 4 >> 2] | 0) == (i37 | 0);
 13249        if ((HEAP32[i38 >> 2] | 0) == (i37 | 0)) {
 13250         if (!i50) {
 13251          i55 = i38;
 13252          break;
 13254         i52 = HEAP32[i38 + 12 >> 2] | 0;
 13255         i51 = HEAP32[(HEAP32[i37 + 8 >> 2] | 0) + 12 >> 2] | 0;
 13256         i54 = HEAP32[i51 + 88 >> 2] | 0;
 13257         i53 = (HEAP32[i52 + 88 >> 2] | 0) - i54 | 0;
 13258         i56 = HEAP32[i51 + 92 >> 2] | 0;
 13259         i57 = HEAP32[i51 + 96 >> 2] | 0;
 13260         i51 = (HEAP32[i52 + 96 >> 2] | 0) - i57 | 0;
 13261         i58 = i49 - i57 | 0;
 13262         i57 = Math_imul(i58, (HEAP32[i52 + 92 >> 2] | 0) - i56 | 0) | 0;
 13263         i52 = i57 - (Math_imul(i51, i42 - i56 | 0) | 0) | 0;
 13264         i56 = Math_imul(i51, i40 - i54 | 0) | 0;
 13265         i54 = i56 - (Math_imul(i58, i53) | 0) | 0;
 13266         i53 = ___muldi3(i52, (i52 | 0) < 0 ? -1 : 0, i26, i27) | 0;
 13267         i52 = tempRet0;
 13268         i58 = ___muldi3(i54, (i54 | 0) < 0 ? -1 : 0, i28, i29) | 0;
 13269         i54 = _i64Add(i53, i52, i58, tempRet0) | 0;
 13270         i58 = tempRet0;
 13271         i52 = 0;
 13272         i59 = (i58 | 0) > (i52 | 0) | (i58 | 0) == (i52 | 0) & i54 >>> 0 > 0 >>> 0 ? 2 : 1;
 13273        } else {
 13274         i59 = i50 & 1;
 13276        if ((i59 | 0) != 1) {
 13277         i55 = i38;
 13278         break;
 13281       HEAP32[i7 >> 2] = i37;
 13282       i55 = i37;
 13283      } else {
 13284       i55 = i38;
 13286     } while (0);
 13287     i40 = HEAP32[i37 >> 2] | 0;
 13288     if ((i40 | 0) == (i19 | 0)) {
 13289      i35 = i55;
 13290      break;
 13291     } else {
 13292      i37 = i40;
 13293      i38 = i55;
 13297   i55 = HEAP32[i3 + 8 >> 2] | 0;
 13298   HEAP32[i8 >> 2] = 0;
 13299   if ((i55 | 0) == 0) {
 13300    i60 = 0;
 13301   } else {
 13302    i38 = _i64Subtract(0, 0, i26, i27) | 0;
 13303    i37 = tempRet0;
 13304    i19 = i55;
 13305    i59 = 0;
 13306    while (1) {
 13307     i24 = HEAP32[i19 + 12 >> 2] | 0;
 13308     i36 = HEAP32[i24 + 88 >> 2] | 0;
 13309     i22 = i36 - i2 | 0;
 13310     i21 = HEAP32[i24 + 92 >> 2] | 0;
 13311     i18 = i21 - i20 | 0;
 13312     i40 = i22;
 13313     i42 = (i22 | 0) < 0 ? -1 : 0;
 13314     i22 = i18;
 13315     i46 = (i18 | 0) < 0 ? -1 : 0;
 13316     i18 = ___muldi3(i22, i46, i28, i29) | 0;
 13317     i41 = tempRet0;
 13318     i45 = ___muldi3(i40, i42, i38, i37) | 0;
 13319     L958 : do {
 13320      if ((i18 | 0) == (i45 | 0) & (i41 | 0) == (tempRet0 | 0)) {
 13321       i44 = HEAP32[i24 + 96 >> 2] | 0;
 13322       i39 = i44 - i23 | 0;
 13323       i47 = ___muldi3(i40, i42, i31, i25) | 0;
 13324       i48 = tempRet0;
 13325       i43 = ___muldi3(i22, i46, i32, i30) | 0;
 13326       i50 = _i64Add(i43, tempRet0, i47, i48) | 0;
 13327       i48 = tempRet0;
 13328       i47 = ___muldi3(i39, (i39 | 0) < 0 ? -1 : 0, i34, i33) | 0;
 13329       i39 = _i64Add(i50, i48, i47, tempRet0) | 0;
 13330       i47 = tempRet0;
 13331       i48 = 0;
 13332       if (!((i47 | 0) > (i48 | 0) | (i47 | 0) == (i48 | 0) & i39 >>> 0 > 0 >>> 0)) {
 13333        i61 = i59;
 13334        break;
 13336       do {
 13337        if ((i59 | 0) != 0) {
 13338         if ((HEAP32[i59 >> 2] | 0) != (i19 | 0)) {
 13339          i61 = i59;
 13340          break L958;
 13342         if ((HEAP32[i59 + 4 >> 2] | 0) != (i19 | 0)) {
 13343          break;
 13345         i39 = HEAP32[i59 + 12 >> 2] | 0;
 13346         i48 = HEAP32[(HEAP32[i19 + 8 >> 2] | 0) + 12 >> 2] | 0;
 13347         i47 = HEAP32[i48 + 88 >> 2] | 0;
 13348         i50 = (HEAP32[i39 + 88 >> 2] | 0) - i47 | 0;
 13349         i43 = HEAP32[i48 + 92 >> 2] | 0;
 13350         i54 = HEAP32[i48 + 96 >> 2] | 0;
 13351         i48 = (HEAP32[i39 + 96 >> 2] | 0) - i54 | 0;
 13352         i52 = i44 - i54 | 0;
 13353         i54 = Math_imul(i52, (HEAP32[i39 + 92 >> 2] | 0) - i43 | 0) | 0;
 13354         i39 = i54 - (Math_imul(i48, i21 - i43 | 0) | 0) | 0;
 13355         i43 = Math_imul(i48, i36 - i47 | 0) | 0;
 13356         i47 = i43 - (Math_imul(i52, i50) | 0) | 0;
 13357         i50 = ___muldi3(i39, (i39 | 0) < 0 ? -1 : 0, i26, i27) | 0;
 13358         i39 = tempRet0;
 13359         i52 = ___muldi3(i47, (i47 | 0) < 0 ? -1 : 0, i28, i29) | 0;
 13360         i47 = _i64Add(i50, i39, i52, tempRet0) | 0;
 13361         i52 = tempRet0;
 13362         i39 = 0;
 13363         if (!((i52 | 0) > (i39 | 0) | (i52 | 0) == (i39 | 0) & i47 >>> 0 > 0 >>> 0)) {
 13364          i61 = i59;
 13365          break L958;
 13368       } while (0);
 13369       HEAP32[i8 >> 2] = i19;
 13370       i61 = i19;
 13371      } else {
 13372       i61 = i59;
 13374     } while (0);
 13375     i36 = HEAP32[i19 >> 2] | 0;
 13376     if ((i36 | 0) == (i55 | 0)) {
 13377      i60 = i61;
 13378      break;
 13379     } else {
 13380      i19 = i36;
 13381      i59 = i61;
 13385   do {
 13386    if ((i35 | 0) == 0 & (i60 | 0) == 0) {
 13387     i62 = i16;
 13388     i63 = i3;
 13389    } else {
 13390     __ZN20btConvexHullInternal24findEdgeForCoplanarFacesEPNS_6VertexES1_RPNS_4EdgeES4_S1_S1_(i1, i16, i3, i7, i8, 0, 0);
 13391     i61 = HEAP32[i7 >> 2] | 0;
 13392     if ((i61 | 0) == 0) {
 13393      i64 = i16;
 13394     } else {
 13395      i59 = HEAP32[i61 + 12 >> 2] | 0;
 13396      HEAP32[i5 >> 2] = i59;
 13397      i64 = i59;
 13399     i59 = HEAP32[i8 >> 2] | 0;
 13400     if ((i59 | 0) == 0) {
 13401      i62 = i64;
 13402      i63 = i3;
 13403      break;
 13405     i61 = HEAP32[i59 + 12 >> 2] | 0;
 13406     HEAP32[i6 >> 2] = i61;
 13407     i62 = i64;
 13408     i63 = i61;
 13410   } while (0);
 13411   i65 = HEAP32[i63 + 88 >> 2] | 0;
 13412   i66 = (HEAP32[i63 + 96 >> 2] | 0) + 1 | 0;
 13413   i67 = i62;
 13414   i68 = i63;
 13415  } else {
 13416   i65 = (HEAP32[i3 + 88 >> 2] | 0) + 1 | 0;
 13417   i66 = HEAP32[i3 + 96 >> 2] | 0;
 13418   i67 = HEAP32[i5 >> 2] | 0;
 13419   i68 = i3;
 13421  i3 = HEAP32[i68 + 92 >> 2] | 0;
 13422  i63 = i9 | 0;
 13423  i62 = i9 + 4 | 0;
 13424  i64 = i9 + 8 | 0;
 13425  i8 = i9 + 12 | 0;
 13426  i16 = i10 | 0;
 13427  i7 = i10 + 8 | 0;
 13428  i60 = i10 + 16 | 0;
 13429  i35 = i11 | 0;
 13430  i61 = i11 + 8 | 0;
 13431  i59 = i11 + 16 | 0;
 13432  i19 = i12 + 16 | 0;
 13433  i55 = i12 + 8 | 0;
 13434  i29 = i13 + 16 | 0;
 13435  i28 = i13 + 8 | 0;
 13436  i27 = i1 + 48 | 0;
 13437  i26 = i1 + 116 | 0;
 13438  i33 = i1 + 120 | 0;
 13439  i34 = i1 + 56 | 0;
 13440  i30 = i12;
 13441  i32 = i13;
 13442  i25 = 0;
 13443  i31 = 0;
 13444  i23 = 0;
 13445  i37 = 0;
 13446  i38 = 1;
 13447  i20 = 0;
 13448  i2 = 0;
 13449  i36 = 0;
 13450  i21 = 0;
 13451  i46 = i65;
 13452  i65 = i3;
 13453  i22 = i66;
 13454  i66 = i68;
 13455  i42 = i67;
 13456  i40 = i3;
 13457  while (1) {
 13458   i3 = i42 + 88 | 0;
 13459   i24 = (HEAP32[i66 + 88 >> 2] | 0) - (HEAP32[i3 >> 2] | 0) | 0;
 13460   i41 = i42 + 92 | 0;
 13461   i45 = i40 - (HEAP32[i41 >> 2] | 0) | 0;
 13462   i18 = i42 + 96 | 0;
 13463   i44 = (HEAP32[i66 + 96 >> 2] | 0) - (HEAP32[i18 >> 2] | 0) | 0;
 13464   HEAP32[i63 >> 2] = i24;
 13465   HEAP32[i62 >> 2] = i45;
 13466   HEAP32[i64 >> 2] = i44;
 13467   HEAP32[i8 >> 2] = -1;
 13468   i47 = i46 - (HEAP32[i3 >> 2] | 0) | 0;
 13469   i3 = i65 - (HEAP32[i41 >> 2] | 0) | 0;
 13470   i41 = i22 - (HEAP32[i18 >> 2] | 0) | 0;
 13471   i18 = Math_imul(i3, i44) | 0;
 13472   i39 = i18 - (Math_imul(i41, i45) | 0) | 0;
 13473   i18 = i39;
 13474   i52 = (i39 | 0) < 0 ? -1 : 0;
 13475   i39 = Math_imul(i41, i24) | 0;
 13476   i41 = i39 - (Math_imul(i47, i44) | 0) | 0;
 13477   i39 = i41;
 13478   i50 = (i41 | 0) < 0 ? -1 : 0;
 13479   i41 = Math_imul(i47, i45) | 0;
 13480   i47 = i41 - (Math_imul(i3, i24) | 0) | 0;
 13481   i3 = i47;
 13482   i41 = (i47 | 0) < 0 ? -1 : 0;
 13483   HEAP32[i16 >> 2] = i18;
 13484   HEAP32[i16 + 4 >> 2] = i52;
 13485   HEAP32[i7 >> 2] = i39;
 13486   HEAP32[i7 + 4 >> 2] = i50;
 13487   HEAP32[i60 >> 2] = i3;
 13488   HEAP32[i60 + 4 >> 2] = i41;
 13489   i47 = i45;
 13490   i43 = (i45 | 0) < 0 ? -1 : 0;
 13491   i45 = ___muldi3(i3, i41, i47, i43) | 0;
 13492   i48 = tempRet0;
 13493   i54 = i44;
 13494   i58 = (i44 | 0) < 0 ? -1 : 0;
 13495   i44 = ___muldi3(i39, i50, i54, i58) | 0;
 13496   i53 = _i64Subtract(i45, i48, i44, tempRet0) | 0;
 13497   i44 = tempRet0;
 13498   i48 = ___muldi3(i18, i52, i54, i58) | 0;
 13499   i58 = tempRet0;
 13500   i54 = i24;
 13501   i45 = (i24 | 0) < 0 ? -1 : 0;
 13502   i24 = ___muldi3(i3, i41, i54, i45) | 0;
 13503   i41 = _i64Subtract(i48, i58, i24, tempRet0) | 0;
 13504   i24 = tempRet0;
 13505   i58 = ___muldi3(i39, i50, i54, i45) | 0;
 13506   i45 = tempRet0;
 13507   i54 = ___muldi3(i18, i52, i47, i43) | 0;
 13508   i43 = _i64Subtract(i58, i45, i54, tempRet0) | 0;
 13509   HEAP32[i35 >> 2] = i53;
 13510   HEAP32[i35 + 4 >> 2] = i44;
 13511   HEAP32[i61 >> 2] = i41;
 13512   HEAP32[i61 + 4 >> 2] = i24;
 13513   HEAP32[i59 >> 2] = i43;
 13514   HEAP32[i59 + 4 >> 2] = tempRet0;
 13515   _memset(i30 | 0, 0, 20);
 13516   i43 = __ZN20btConvexHullInternal12findMaxAngleEbPKNS_6VertexERKNS_7Point32ERKNS_7Point64ES8_RNS_10Rational64E(i1, 0, i42, i9, i10, i11, i12) | 0;
 13517   _memset(i32 | 0, 0, 20);
 13518   i69 = HEAP32[i6 >> 2] | 0;
 13519   i24 = __ZN20btConvexHullInternal12findMaxAngleEbPKNS_6VertexERKNS_7Point32ERKNS_7Point64ES8_RNS_10Rational64E(i1, 1, i69, i9, i10, i11, i13) | 0;
 13520   i41 = (i43 | 0) != 0;
 13521   i44 = i41 ^ 1;
 13522   i53 = (i24 | 0) == 0;
 13523   if (i53 & i44) {
 13524    i70 = 753;
 13525    break;
 13527   if (i53 | i44) {
 13528    i71 = i41 ? -1 : 1;
 13529   } else {
 13530    i71 = __ZNK20btConvexHullInternal10Rational647compareERKS0_(i12, i13) | 0;
 13532   do {
 13533    if (i38) {
 13534     i70 = 765;
 13535    } else {
 13536     if ((i71 | 0) > -1) {
 13537      if ((HEAP32[i29 >> 2] | 0) >= 0) {
 13538       i70 = 765;
 13539       break;
 13541      if ((HEAP32[i28 >> 2] | 0) == 0 & (HEAP32[i28 + 4 >> 2] | 0) == 0) {
 13542       i72 = i23;
 13543       i73 = i37;
 13544       i74 = i36;
 13545       i75 = i21;
 13546       i70 = 772;
 13547       break;
 13548      } else {
 13549       i70 = 765;
 13550       break;
 13553     if ((HEAP32[i19 >> 2] | 0) >= 0) {
 13554      i70 = 765;
 13555      break;
 13557     if (!((HEAP32[i55 >> 2] | 0) == 0 & (HEAP32[i55 + 4 >> 2] | 0) == 0)) {
 13558      i70 = 765;
 13559      break;
 13561     HEAP32[i14 >> 2] = i43;
 13562     HEAP32[i15 >> 2] = i24;
 13563     i76 = i22;
 13564     i77 = i65;
 13565     i78 = i46;
 13566     i79 = i21;
 13567     i80 = i36;
 13568     i81 = i2;
 13569     i82 = i20;
 13570     i83 = i43;
 13571     i84 = i37;
 13572     i85 = i23;
 13573     i70 = 794;
 13575   } while (0);
 13576   if ((i70 | 0) == 765) {
 13577    i70 = 0;
 13578    i41 = HEAP32[i5 >> 2] | 0;
 13579    i44 = __ZN20btConvexHullInternal4PoolINS_4EdgeEE9newObjectEv(i27) | 0;
 13580    i53 = __ZN20btConvexHullInternal4PoolINS_4EdgeEE9newObjectEv(i27) | 0;
 13581    i54 = i44 + 8 | 0;
 13582    HEAP32[i54 >> 2] = i53;
 13583    HEAP32[i53 + 8 >> 2] = i44;
 13584    HEAP32[i44 + 20 >> 2] = HEAP32[i17 >> 2];
 13585    HEAP32[i53 + 20 >> 2] = HEAP32[i17 >> 2];
 13586    HEAP32[i44 + 12 >> 2] = i69;
 13587    HEAP32[i53 + 12 >> 2] = i41;
 13588    HEAP32[i44 + 16 >> 2] = 0;
 13589    HEAP32[i53 + 16 >> 2] = 0;
 13590    i53 = (HEAP32[i26 >> 2] | 0) + 1 | 0;
 13591    HEAP32[i26 >> 2] = i53;
 13592    if ((i53 | 0) > (HEAP32[i33 >> 2] | 0)) {
 13593     HEAP32[i33 >> 2] = i53;
 13595    if ((i37 | 0) == 0) {
 13596     i86 = i44;
 13597    } else {
 13598     HEAP32[i37 + 4 >> 2] = i44;
 13599     i86 = i23;
 13601    HEAP32[i44 >> 2] = i37;
 13602    i53 = HEAP32[i54 >> 2] | 0;
 13603    if ((i21 | 0) == 0) {
 13604     i87 = i53;
 13605    } else {
 13606     HEAP32[i21 >> 2] = i53;
 13607     i87 = i36;
 13609    HEAP32[i53 + 4 >> 2] = i21;
 13610    i72 = i86;
 13611    i73 = i44;
 13612    i74 = i87;
 13613    i75 = i53;
 13614    i70 = 772;
 13616   do {
 13617    if ((i70 | 0) == 772) {
 13618     i70 = 0;
 13619     HEAP32[i14 >> 2] = i43;
 13620     HEAP32[i15 >> 2] = i24;
 13621     if ((i71 | 0) == 0) {
 13622      __ZN20btConvexHullInternal24findEdgeForCoplanarFacesEPNS_6VertexES1_RPNS_4EdgeES4_S1_S1_(i1, HEAP32[i5 >> 2] | 0, HEAP32[i6 >> 2] | 0, i14, i15, 0, 0);
 13623      i88 = HEAP32[i15 >> 2] | 0;
 13624     } else {
 13625      if ((i71 | 0) > -1) {
 13626       i88 = i24;
 13627      } else {
 13628       i76 = i22;
 13629       i77 = i65;
 13630       i78 = i46;
 13631       i79 = i75;
 13632       i80 = i74;
 13633       i81 = i2;
 13634       i82 = i20;
 13635       i83 = i43;
 13636       i84 = i73;
 13637       i85 = i72;
 13638       i70 = 794;
 13639       break;
 13642     if ((i88 | 0) == 0) {
 13643      i89 = i20;
 13644      i90 = i2;
 13645      i91 = i74;
 13646      i92 = i75;
 13647      i93 = i46;
 13648      i94 = i65;
 13649      i95 = i22;
 13650     } else {
 13651      i53 = (i20 | 0) != 0;
 13652      do {
 13653       if (i53) {
 13654        i44 = HEAP32[i20 >> 2] | 0;
 13655        if ((i44 | 0) == (i24 | 0)) {
 13656         break;
 13657        } else {
 13658         i96 = i44;
 13660        while (1) {
 13661         i44 = i96 | 0;
 13662         i54 = HEAP32[i44 >> 2] | 0;
 13663         i41 = HEAP32[i96 + 8 >> 2] | 0;
 13664         if ((i54 | 0) == (i96 | 0)) {
 13665          HEAP32[(HEAP32[i41 + 12 >> 2] | 0) + 8 >> 2] = 0;
 13666         } else {
 13667          i45 = i96 + 4 | 0;
 13668          HEAP32[i54 + 4 >> 2] = HEAP32[i45 >> 2];
 13669          HEAP32[HEAP32[i45 >> 2] >> 2] = i54;
 13670          HEAP32[(HEAP32[i41 + 12 >> 2] | 0) + 8 >> 2] = i54;
 13672         i45 = i41 | 0;
 13673         i58 = HEAP32[i45 >> 2] | 0;
 13674         if ((i58 | 0) == (i41 | 0)) {
 13675          HEAP32[(HEAP32[i96 + 12 >> 2] | 0) + 8 >> 2] = 0;
 13676         } else {
 13677          i47 = i41 + 4 | 0;
 13678          HEAP32[i58 + 4 >> 2] = HEAP32[i47 >> 2];
 13679          HEAP32[HEAP32[i47 >> 2] >> 2] = i58;
 13680          HEAP32[(HEAP32[i96 + 12 >> 2] | 0) + 8 >> 2] = i58;
 13682         _memset(i96 | 0, 0, 20);
 13683         HEAP32[i44 >> 2] = HEAP32[i34 >> 2];
 13684         HEAP32[i34 >> 2] = i96;
 13685         _memset(i41 | 0, 0, 20);
 13686         HEAP32[i45 >> 2] = HEAP32[i34 >> 2];
 13687         HEAP32[i34 >> 2] = i41;
 13688         HEAP32[i26 >> 2] = (HEAP32[i26 >> 2] | 0) - 1;
 13689         if ((i54 | 0) == (i24 | 0)) {
 13690          break;
 13691         } else {
 13692          i96 = i54;
 13696      } while (0);
 13697      if ((i75 | 0) == 0) {
 13698       i97 = i53 ? i2 : i24;
 13699       i98 = i74;
 13700       i99 = i88;
 13701      } else {
 13702       if (i53) {
 13703        HEAP32[i20 >> 2] = i74;
 13704        HEAP32[i74 + 4 >> 2] = i20;
 13705        i100 = i2;
 13706        i101 = i24 + 4 | 0;
 13707       } else {
 13708        i54 = i24 + 4 | 0;
 13709        i41 = HEAP32[i54 >> 2] | 0;
 13710        HEAP32[i41 >> 2] = i74;
 13711        HEAP32[i74 + 4 >> 2] = i41;
 13712        i100 = i74;
 13713        i101 = i54;
 13715       HEAP32[i75 >> 2] = i24;
 13716       HEAP32[i101 >> 2] = i75;
 13717       i97 = i100;
 13718       i98 = 0;
 13719       i99 = HEAP32[i15 >> 2] | 0;
 13721      i54 = HEAP32[i6 >> 2] | 0;
 13722      i41 = HEAP32[i54 + 88 >> 2] | 0;
 13723      i45 = HEAP32[i54 + 92 >> 2] | 0;
 13724      i44 = HEAP32[i54 + 96 >> 2] | 0;
 13725      HEAP32[i6 >> 2] = HEAP32[i99 + 12 >> 2];
 13726      i89 = HEAP32[i99 + 8 >> 2] | 0;
 13727      i90 = i97;
 13728      i91 = i98;
 13729      i92 = 0;
 13730      i93 = i41;
 13731      i94 = i45;
 13732      i95 = i44;
 13734     if ((i71 | 0) >= 1) {
 13735      i102 = i25;
 13736      i103 = i31;
 13737      i104 = i72;
 13738      i105 = i73;
 13739      i106 = i93;
 13740      i107 = i94;
 13741      i108 = i95;
 13742      i109 = i92;
 13743      i110 = i91;
 13744      i111 = i90;
 13745      i112 = i89;
 13746      break;
 13748     i76 = i95;
 13749     i77 = i94;
 13750     i78 = i93;
 13751     i79 = i92;
 13752     i80 = i91;
 13753     i81 = i90;
 13754     i82 = i89;
 13755     i83 = HEAP32[i14 >> 2] | 0;
 13756     i84 = i73;
 13757     i85 = i72;
 13758     i70 = 794;
 13760   } while (0);
 13761   do {
 13762    if ((i70 | 0) == 794) {
 13763     i70 = 0;
 13764     if ((i83 | 0) == 0) {
 13765      i102 = i25;
 13766      i103 = i31;
 13767      i104 = i85;
 13768      i105 = i84;
 13769      i106 = i78;
 13770      i107 = i77;
 13771      i108 = i76;
 13772      i109 = i79;
 13773      i110 = i80;
 13774      i111 = i81;
 13775      i112 = i82;
 13776      break;
 13778     i24 = (i25 | 0) != 0;
 13779     do {
 13780      if (i24) {
 13781       i44 = HEAP32[i25 + 4 >> 2] | 0;
 13782       if ((i44 | 0) == (i43 | 0)) {
 13783        break;
 13784       } else {
 13785        i113 = i44;
 13787       while (1) {
 13788        i44 = i113 + 4 | 0;
 13789        i45 = HEAP32[i44 >> 2] | 0;
 13790        i41 = i113 | 0;
 13791        i54 = HEAP32[i41 >> 2] | 0;
 13792        i58 = HEAP32[i113 + 8 >> 2] | 0;
 13793        if ((i54 | 0) == (i113 | 0)) {
 13794         HEAP32[(HEAP32[i58 + 12 >> 2] | 0) + 8 >> 2] = 0;
 13795        } else {
 13796         HEAP32[i54 + 4 >> 2] = i45;
 13797         HEAP32[HEAP32[i44 >> 2] >> 2] = i54;
 13798         HEAP32[(HEAP32[i58 + 12 >> 2] | 0) + 8 >> 2] = i54;
 13800        i54 = i58 | 0;
 13801        i44 = HEAP32[i54 >> 2] | 0;
 13802        if ((i44 | 0) == (i58 | 0)) {
 13803         HEAP32[(HEAP32[i113 + 12 >> 2] | 0) + 8 >> 2] = 0;
 13804        } else {
 13805         i47 = i58 + 4 | 0;
 13806         HEAP32[i44 + 4 >> 2] = HEAP32[i47 >> 2];
 13807         HEAP32[HEAP32[i47 >> 2] >> 2] = i44;
 13808         HEAP32[(HEAP32[i113 + 12 >> 2] | 0) + 8 >> 2] = i44;
 13810        _memset(i113 | 0, 0, 20);
 13811        HEAP32[i41 >> 2] = HEAP32[i34 >> 2];
 13812        HEAP32[i34 >> 2] = i113;
 13813        _memset(i58 | 0, 0, 20);
 13814        HEAP32[i54 >> 2] = HEAP32[i34 >> 2];
 13815        HEAP32[i34 >> 2] = i58;
 13816        HEAP32[i26 >> 2] = (HEAP32[i26 >> 2] | 0) - 1;
 13817        if ((i45 | 0) == (i43 | 0)) {
 13818         break;
 13819        } else {
 13820         i113 = i45;
 13824     } while (0);
 13825     if ((i84 | 0) == 0) {
 13826      i114 = i24 ? i31 : i43;
 13827      i115 = i85;
 13828      i116 = i83;
 13829     } else {
 13830      if (i24) {
 13831       HEAP32[i85 >> 2] = i25;
 13832       HEAP32[i25 + 4 >> 2] = i85;
 13833       i117 = i31;
 13834       i118 = i43 | 0;
 13835      } else {
 13836       i53 = i43 | 0;
 13837       i45 = HEAP32[i53 >> 2] | 0;
 13838       HEAP32[i85 >> 2] = i45;
 13839       HEAP32[i45 + 4 >> 2] = i85;
 13840       i117 = i85;
 13841       i118 = i53;
 13843      HEAP32[i118 >> 2] = i84;
 13844      HEAP32[i84 + 4 >> 2] = i43;
 13845      i114 = i117;
 13846      i115 = 0;
 13847      i116 = HEAP32[i14 >> 2] | 0;
 13849     i53 = HEAP32[i5 >> 2] | 0;
 13850     i45 = HEAP32[i53 + 88 >> 2] | 0;
 13851     i58 = HEAP32[i53 + 92 >> 2] | 0;
 13852     i54 = HEAP32[i53 + 96 >> 2] | 0;
 13853     HEAP32[i5 >> 2] = HEAP32[i116 + 12 >> 2];
 13854     i102 = HEAP32[i116 + 8 >> 2] | 0;
 13855     i103 = i114;
 13856     i104 = i115;
 13857     i105 = 0;
 13858     i106 = i45;
 13859     i107 = i58;
 13860     i108 = i54;
 13861     i109 = i79;
 13862     i110 = i80;
 13863     i111 = i81;
 13864     i112 = i82;
 13866   } while (0);
 13867   i43 = HEAP32[i5 >> 2] | 0;
 13868   i54 = HEAP32[i6 >> 2] | 0;
 13869   if ((i43 | 0) == (i67 | 0) & (i54 | 0) == (i68 | 0)) {
 13870    break;
 13872   i25 = i102;
 13873   i31 = i103;
 13874   i23 = i104;
 13875   i37 = i105;
 13876   i38 = 0;
 13877   i20 = i112;
 13878   i2 = i111;
 13879   i36 = i110;
 13880   i21 = i109;
 13881   i46 = i106;
 13882   i65 = i107;
 13883   i22 = i108;
 13884   i66 = i54;
 13885   i42 = i43;
 13886   i40 = HEAP32[i54 + 92 >> 2] | 0;
 13888  if ((i70 | 0) == 753) {
 13889   i70 = HEAP32[i5 >> 2] | 0;
 13890   i40 = __ZN20btConvexHullInternal4PoolINS_4EdgeEE9newObjectEv(i27) | 0;
 13891   i42 = __ZN20btConvexHullInternal4PoolINS_4EdgeEE9newObjectEv(i27) | 0;
 13892   i27 = i40 + 8 | 0;
 13893   HEAP32[i27 >> 2] = i42;
 13894   HEAP32[i42 + 8 >> 2] = i40;
 13895   HEAP32[i40 + 20 >> 2] = HEAP32[i17 >> 2];
 13896   HEAP32[i42 + 20 >> 2] = HEAP32[i17 >> 2];
 13897   HEAP32[i40 + 12 >> 2] = i69;
 13898   HEAP32[i42 + 12 >> 2] = i70;
 13899   HEAP32[i40 + 16 >> 2] = 0;
 13900   HEAP32[i42 + 16 >> 2] = 0;
 13901   i42 = (HEAP32[i26 >> 2] | 0) + 1 | 0;
 13902   HEAP32[i26 >> 2] = i42;
 13903   if ((i42 | 0) > (HEAP32[i33 >> 2] | 0)) {
 13904    HEAP32[i33 >> 2] = i42;
 13906   HEAP32[i40 >> 2] = i40;
 13907   HEAP32[i40 + 4 >> 2] = i40;
 13908   HEAP32[i70 + 8 >> 2] = i40;
 13909   i40 = HEAP32[i27 >> 2] | 0;
 13910   HEAP32[i40 >> 2] = i40;
 13911   HEAP32[i40 + 4 >> 2] = i40;
 13912   HEAP32[i69 + 8 >> 2] = i40;
 13913   STACKTOP = i4;
 13914   return;
 13916  do {
 13917   if ((i102 | 0) == 0) {
 13918    HEAP32[i104 >> 2] = i105;
 13919    HEAP32[i105 + 4 >> 2] = i104;
 13920    HEAP32[(HEAP32[i5 >> 2] | 0) + 8 >> 2] = i105;
 13921   } else {
 13922    i40 = i102 + 4 | 0;
 13923    i69 = HEAP32[i40 >> 2] | 0;
 13924    if ((i69 | 0) != (i103 | 0)) {
 13925     i27 = i69;
 13926     while (1) {
 13927      i69 = i27 + 4 | 0;
 13928      i70 = HEAP32[i69 >> 2] | 0;
 13929      i42 = i27 | 0;
 13930      i33 = HEAP32[i42 >> 2] | 0;
 13931      i17 = HEAP32[i27 + 8 >> 2] | 0;
 13932      if ((i33 | 0) == (i27 | 0)) {
 13933       HEAP32[(HEAP32[i17 + 12 >> 2] | 0) + 8 >> 2] = 0;
 13934      } else {
 13935       HEAP32[i33 + 4 >> 2] = i70;
 13936       HEAP32[HEAP32[i69 >> 2] >> 2] = i33;
 13937       HEAP32[(HEAP32[i17 + 12 >> 2] | 0) + 8 >> 2] = i33;
 13939      i33 = i17 | 0;
 13940      i69 = HEAP32[i33 >> 2] | 0;
 13941      if ((i69 | 0) == (i17 | 0)) {
 13942       HEAP32[(HEAP32[i27 + 12 >> 2] | 0) + 8 >> 2] = 0;
 13943      } else {
 13944       i66 = i17 + 4 | 0;
 13945       HEAP32[i69 + 4 >> 2] = HEAP32[i66 >> 2];
 13946       HEAP32[HEAP32[i66 >> 2] >> 2] = i69;
 13947       HEAP32[(HEAP32[i27 + 12 >> 2] | 0) + 8 >> 2] = i69;
 13949      _memset(i27 | 0, 0, 20);
 13950      HEAP32[i42 >> 2] = HEAP32[i34 >> 2];
 13951      HEAP32[i34 >> 2] = i27;
 13952      _memset(i17 | 0, 0, 20);
 13953      HEAP32[i33 >> 2] = HEAP32[i34 >> 2];
 13954      HEAP32[i34 >> 2] = i17;
 13955      HEAP32[i26 >> 2] = (HEAP32[i26 >> 2] | 0) - 1;
 13956      if ((i70 | 0) == (i103 | 0)) {
 13957       break;
 13958      } else {
 13959       i27 = i70;
 13963    if ((i105 | 0) == 0) {
 13964     break;
 13966    HEAP32[i104 >> 2] = i102;
 13967    HEAP32[i40 >> 2] = i104;
 13968    HEAP32[i103 >> 2] = i105;
 13969    HEAP32[i105 + 4 >> 2] = i103;
 13971  } while (0);
 13972  if ((i112 | 0) == 0) {
 13973   HEAP32[i109 >> 2] = i110;
 13974   HEAP32[i110 + 4 >> 2] = i109;
 13975   HEAP32[(HEAP32[i6 >> 2] | 0) + 8 >> 2] = i109;
 13976   STACKTOP = i4;
 13977   return;
 13979  i6 = i112 | 0;
 13980  i103 = HEAP32[i6 >> 2] | 0;
 13981  if ((i103 | 0) != (i111 | 0)) {
 13982   i105 = i103;
 13983   while (1) {
 13984    i103 = i105 | 0;
 13985    i104 = HEAP32[i103 >> 2] | 0;
 13986    i102 = HEAP32[i105 + 8 >> 2] | 0;
 13987    if ((i104 | 0) == (i105 | 0)) {
 13988     HEAP32[(HEAP32[i102 + 12 >> 2] | 0) + 8 >> 2] = 0;
 13989    } else {
 13990     i5 = i105 + 4 | 0;
 13991     HEAP32[i104 + 4 >> 2] = HEAP32[i5 >> 2];
 13992     HEAP32[HEAP32[i5 >> 2] >> 2] = i104;
 13993     HEAP32[(HEAP32[i102 + 12 >> 2] | 0) + 8 >> 2] = i104;
 13995    i5 = i102 | 0;
 13996    i27 = HEAP32[i5 >> 2] | 0;
 13997    if ((i27 | 0) == (i102 | 0)) {
 13998     HEAP32[(HEAP32[i105 + 12 >> 2] | 0) + 8 >> 2] = 0;
 13999    } else {
 14000     i70 = i102 + 4 | 0;
 14001     HEAP32[i27 + 4 >> 2] = HEAP32[i70 >> 2];
 14002     HEAP32[HEAP32[i70 >> 2] >> 2] = i27;
 14003     HEAP32[(HEAP32[i105 + 12 >> 2] | 0) + 8 >> 2] = i27;
 14005    _memset(i105 | 0, 0, 20);
 14006    HEAP32[i103 >> 2] = HEAP32[i34 >> 2];
 14007    HEAP32[i34 >> 2] = i105;
 14008    _memset(i102 | 0, 0, 20);
 14009    HEAP32[i5 >> 2] = HEAP32[i34 >> 2];
 14010    HEAP32[i34 >> 2] = i102;
 14011    HEAP32[i26 >> 2] = (HEAP32[i26 >> 2] | 0) - 1;
 14012    if ((i104 | 0) == (i111 | 0)) {
 14013     break;
 14014    } else {
 14015     i105 = i104;
 14019  if ((i109 | 0) == 0) {
 14020   STACKTOP = i4;
 14021   return;
 14023  HEAP32[i6 >> 2] = i110;
 14024  HEAP32[i110 + 4 >> 2] = i112;
 14025  HEAP32[i109 >> 2] = i111;
 14026  HEAP32[i111 + 4 >> 2] = i109;
 14027  STACKTOP = i4;
 14028  return;
 14030 function __ZN17btGjkPairDetector26getClosestPointsNonVirtualERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDraw(i1, i2, i3, i4) {
 14031  i1 = i1 | 0;
 14032  i2 = i2 | 0;
 14033  i3 = i3 | 0;
 14034  i4 = i4 | 0;
 14035  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, i37 = 0, d38 = 0.0, i39 = 0, d40 = 0.0, d41 = 0.0, d42 = 0.0, d43 = 0.0, d44 = 0.0, i45 = 0, d46 = 0.0, i47 = 0, d48 = 0.0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0, i68 = 0, i69 = 0, i70 = 0, i71 = 0, i72 = 0, i73 = 0, i74 = 0, i75 = 0, i76 = 0, i77 = 0, i78 = 0, i79 = 0, i80 = 0, i81 = 0, i82 = 0, i83 = 0, i84 = 0, i85 = 0, i86 = 0, i87 = 0, i88 = 0, i89 = 0, i90 = 0, i91 = 0, i92 = 0, i93 = 0, i94 = 0, i95 = 0, i96 = 0, i97 = 0, i98 = 0, i99 = 0, i100 = 0, i101 = 0, i102 = 0, i103 = 0, i104 = 0, i105 = 0, i106 = 0, i107 = 0, i108 = 0, i109 = 0, i110 = 0, i111 = 0, i112 = 0, i113 = 0, i114 = 0, i115 = 0, i116 = 0, i117 = 0, i118 = 0, i119 = 0, i120 = 0, i121 = 0, i122 = 0, i123 = 0, i124 = 0, i125 = 0, d126 = 0.0, d127 = 0.0, d128 = 0.0, d129 = 0.0, d130 = 0.0, d131 = 0.0, d132 = 0.0, d133 = 0.0, d134 = 0.0, d135 = 0.0, d136 = 0.0, d137 = 0.0, d138 = 0.0, d139 = 0.0, i140 = 0, d141 = 0.0, d142 = 0.0, d143 = 0.0, d144 = 0.0, d145 = 0.0, d146 = 0.0, i147 = 0, d148 = 0.0, i149 = 0, d150 = 0.0, d151 = 0.0, d152 = 0.0, d153 = 0.0, i154 = 0, d155 = 0.0, d156 = 0.0, d157 = 0.0, d158 = 0.0, d159 = 0.0, d160 = 0.0;
 14036  i5 = STACKTOP;
 14037  STACKTOP = STACKTOP + 352 | 0;
 14038  i6 = i5 | 0;
 14039  i7 = i5 + 16 | 0;
 14040  i8 = i5 + 32 | 0;
 14041  i9 = i5 + 48 | 0;
 14042  i10 = i5 + 112 | 0;
 14043  i11 = i5 + 176 | 0;
 14044  i12 = i5 + 192 | 0;
 14045  i13 = i5 + 208 | 0;
 14046  i14 = i5 + 224 | 0;
 14047  i15 = i5 + 240 | 0;
 14048  i16 = i5 + 256 | 0;
 14049  i17 = i5 + 272 | 0;
 14050  i18 = i5 + 288 | 0;
 14051  i19 = i5 + 304 | 0;
 14052  i20 = i5 + 320 | 0;
 14053  i21 = i5 + 336 | 0;
 14054  i22 = i1 + 56 | 0;
 14055  HEAPF32[i22 >> 2] = 0.0;
 14056  i23 = i6 | 0;
 14057  i24 = i6 + 4 | 0;
 14058  i25 = i6 + 8 | 0;
 14059  i26 = i6 + 12 | 0;
 14060  i27 = i9;
 14061  i28 = i2;
 14062  i29 = i6;
 14063  _memset(i29 | 0, 0, 16);
 14064  HEAP32[i27 >> 2] = HEAP32[i28 >> 2];
 14065  HEAP32[i27 + 4 >> 2] = HEAP32[i28 + 4 >> 2];
 14066  HEAP32[i27 + 8 >> 2] = HEAP32[i28 + 8 >> 2];
 14067  HEAP32[i27 + 12 >> 2] = HEAP32[i28 + 12 >> 2];
 14068  i28 = i9 + 16 | 0;
 14069  i27 = i2 + 16 | 0;
 14070  HEAP32[i28 >> 2] = HEAP32[i27 >> 2];
 14071  HEAP32[i28 + 4 >> 2] = HEAP32[i27 + 4 >> 2];
 14072  HEAP32[i28 + 8 >> 2] = HEAP32[i27 + 8 >> 2];
 14073  HEAP32[i28 + 12 >> 2] = HEAP32[i27 + 12 >> 2];
 14074  i27 = i9 + 32 | 0;
 14075  i28 = i2 + 32 | 0;
 14076  HEAP32[i27 >> 2] = HEAP32[i28 >> 2];
 14077  HEAP32[i27 + 4 >> 2] = HEAP32[i28 + 4 >> 2];
 14078  HEAP32[i27 + 8 >> 2] = HEAP32[i28 + 8 >> 2];
 14079  HEAP32[i27 + 12 >> 2] = HEAP32[i28 + 12 >> 2];
 14080  i28 = i9 + 48 | 0;
 14081  i27 = i28;
 14082  i30 = i2 + 48 | 0;
 14083  HEAP32[i27 >> 2] = HEAP32[i30 >> 2];
 14084  HEAP32[i27 + 4 >> 2] = HEAP32[i30 + 4 >> 2];
 14085  HEAP32[i27 + 8 >> 2] = HEAP32[i30 + 8 >> 2];
 14086  HEAP32[i27 + 12 >> 2] = HEAP32[i30 + 12 >> 2];
 14087  i30 = i2 + 64 | 0;
 14088  i27 = i10;
 14089  i31 = i30;
 14090  HEAP32[i27 >> 2] = HEAP32[i31 >> 2];
 14091  HEAP32[i27 + 4 >> 2] = HEAP32[i31 + 4 >> 2];
 14092  HEAP32[i27 + 8 >> 2] = HEAP32[i31 + 8 >> 2];
 14093  HEAP32[i27 + 12 >> 2] = HEAP32[i31 + 12 >> 2];
 14094  i31 = i10 + 16 | 0;
 14095  i27 = i2 + 80 | 0;
 14096  HEAP32[i31 >> 2] = HEAP32[i27 >> 2];
 14097  HEAP32[i31 + 4 >> 2] = HEAP32[i27 + 4 >> 2];
 14098  HEAP32[i31 + 8 >> 2] = HEAP32[i27 + 8 >> 2];
 14099  HEAP32[i31 + 12 >> 2] = HEAP32[i27 + 12 >> 2];
 14100  i27 = i10 + 32 | 0;
 14101  i31 = i2 + 96 | 0;
 14102  HEAP32[i27 >> 2] = HEAP32[i31 >> 2];
 14103  HEAP32[i27 + 4 >> 2] = HEAP32[i31 + 4 >> 2];
 14104  HEAP32[i27 + 8 >> 2] = HEAP32[i31 + 8 >> 2];
 14105  HEAP32[i27 + 12 >> 2] = HEAP32[i31 + 12 >> 2];
 14106  i31 = i10 + 48 | 0;
 14107  i27 = i31;
 14108  i32 = i2 + 112 | 0;
 14109  HEAP32[i27 >> 2] = HEAP32[i32 >> 2];
 14110  HEAP32[i27 + 4 >> 2] = HEAP32[i32 + 4 >> 2];
 14111  HEAP32[i27 + 8 >> 2] = HEAP32[i32 + 8 >> 2];
 14112  HEAP32[i27 + 12 >> 2] = HEAP32[i32 + 12 >> 2];
 14113  i32 = i28 | 0;
 14114  d33 = +HEAPF32[i32 >> 2];
 14115  i28 = i31 | 0;
 14116  d34 = +HEAPF32[i28 >> 2];
 14117  i31 = i9 + 52 | 0;
 14118  d35 = +HEAPF32[i31 >> 2];
 14119  i27 = i10 + 52 | 0;
 14120  d36 = +HEAPF32[i27 >> 2];
 14121  i37 = i9 + 56 | 0;
 14122  d38 = +HEAPF32[i37 >> 2];
 14123  i39 = i10 + 56 | 0;
 14124  d40 = +HEAPF32[i39 >> 2];
 14125  d41 = (d33 + d34) * .5;
 14126  d42 = (d35 + d36) * .5;
 14127  d43 = (d38 + d40) * .5;
 14128  d44 = d33 - d41;
 14129  HEAPF32[i32 >> 2] = d44;
 14130  d33 = d35 - d42;
 14131  HEAPF32[i31 >> 2] = d33;
 14132  d35 = d38 - d43;
 14133  HEAPF32[i37 >> 2] = d35;
 14134  d38 = d34 - d41;
 14135  HEAPF32[i28 >> 2] = d38;
 14136  d34 = d36 - d42;
 14137  HEAPF32[i27 >> 2] = d34;
 14138  d36 = d40 - d43;
 14139  HEAPF32[i39 >> 2] = d36;
 14140  i28 = i1 + 28 | 0;
 14141  i32 = i1 + 32 | 0;
 14142  if (((HEAP32[(HEAP32[i28 >> 2] | 0) + 4 >> 2] | 0) - 17 | 0) >>> 0 < 2) {
 14143   i45 = ((HEAP32[(HEAP32[i32 >> 2] | 0) + 4 >> 2] | 0) - 17 | 0) >>> 0 < 2;
 14144  } else {
 14145   i45 = 0;
 14147  d40 = +HEAPF32[i1 + 44 >> 2];
 14148  d46 = +HEAPF32[i1 + 48 >> 2];
 14149  HEAP32[2992] = (HEAP32[2992] | 0) + 1;
 14150  i47 = (HEAP8[i1 + 52 | 0] | 0) == 0;
 14151  d48 = i47 ? d40 : 0.0;
 14152  d40 = i47 ? d46 : 0.0;
 14153  i47 = i1 + 64 | 0;
 14154  HEAP32[i47 >> 2] = 0;
 14155  i49 = i1 + 4 | 0;
 14156  i50 = i49 | 0;
 14157  HEAPF32[i50 >> 2] = 0.0;
 14158  i51 = i1 + 8 | 0;
 14159  HEAPF32[i51 >> 2] = 1.0;
 14160  i52 = i1 + 12 | 0;
 14161  HEAPF32[i52 >> 2] = 0.0;
 14162  i53 = i1 + 16 | 0;
 14163  HEAPF32[i53 >> 2] = 0.0;
 14164  i54 = i1 + 68 | 0;
 14165  HEAP32[i54 >> 2] = 0;
 14166  i55 = i1 + 60 | 0;
 14167  HEAP32[i55 >> 2] = -1;
 14168  d46 = d48 + d40;
 14169  i56 = i1 + 24 | 0;
 14170  __ZN22btVoronoiSimplexSolver5resetEv(HEAP32[i56 >> 2] | 0);
 14171  i57 = i2 | 0;
 14172  i58 = i2 + 16 | 0;
 14173  i59 = i2 + 32 | 0;
 14174  i60 = i2 + 4 | 0;
 14175  i61 = i2 + 20 | 0;
 14176  i62 = i2 + 36 | 0;
 14177  i63 = i2 + 8 | 0;
 14178  i64 = i2 + 24 | 0;
 14179  i65 = i2 + 40 | 0;
 14180  i66 = i11 | 0;
 14181  i67 = i11 + 4 | 0;
 14182  i68 = i11 + 8 | 0;
 14183  i69 = i11 + 12 | 0;
 14184  i70 = i30 | 0;
 14185  i30 = i2 + 80 | 0;
 14186  i71 = i2 + 96 | 0;
 14187  i72 = i2 + 68 | 0;
 14188  i73 = i2 + 84 | 0;
 14189  i74 = i2 + 100 | 0;
 14190  i75 = i2 + 72 | 0;
 14191  i76 = i2 + 88 | 0;
 14192  i77 = i2 + 104 | 0;
 14193  i78 = i12 | 0;
 14194  i79 = i12 + 4 | 0;
 14195  i80 = i12 + 8 | 0;
 14196  i81 = i12 + 12 | 0;
 14197  i82 = i9 | 0;
 14198  i83 = i13 | 0;
 14199  i84 = i9 + 4 | 0;
 14200  i85 = i13 + 4 | 0;
 14201  i86 = i9 + 8 | 0;
 14202  i87 = i13 + 8 | 0;
 14203  i88 = i9 + 48 | 0;
 14204  i89 = i9 + 16 | 0;
 14205  i90 = i9 + 20 | 0;
 14206  i91 = i9 + 24 | 0;
 14207  i92 = i9 + 32 | 0;
 14208  i93 = i9 + 36 | 0;
 14209  i94 = i9 + 40 | 0;
 14210  i95 = i15 | 0;
 14211  i96 = i15 + 4 | 0;
 14212  i97 = i15 + 8 | 0;
 14213  i98 = i15 + 12 | 0;
 14214  i99 = i10 | 0;
 14215  i100 = i14 | 0;
 14216  i101 = i10 + 4 | 0;
 14217  i102 = i14 + 4 | 0;
 14218  i103 = i10 + 8 | 0;
 14219  i104 = i14 + 8 | 0;
 14220  i105 = i10 + 48 | 0;
 14221  i106 = i10 + 16 | 0;
 14222  i107 = i10 + 20 | 0;
 14223  i108 = i10 + 24 | 0;
 14224  i109 = i10 + 32 | 0;
 14225  i110 = i10 + 36 | 0;
 14226  i111 = i10 + 40 | 0;
 14227  i112 = i16 | 0;
 14228  i113 = i16 + 4 | 0;
 14229  i114 = i16 + 8 | 0;
 14230  i115 = i16 + 12 | 0;
 14231  i116 = i17 | 0;
 14232  i117 = i17 + 4 | 0;
 14233  i118 = i17 + 8 | 0;
 14234  i119 = i17 + 12 | 0;
 14235  i120 = i2 + 128 | 0;
 14236  i121 = i18 | 0;
 14237  i122 = i18 + 4 | 0;
 14238  i123 = i18 + 8 | 0;
 14239  i124 = i49;
 14240  i125 = i18;
 14241  L1498 : do {
 14242   if (i45) {
 14243    d126 = 999999984306749400.0;
 14244    d127 = d44;
 14245    d128 = d33;
 14246    d129 = d38;
 14247    d130 = d34;
 14248    while (1) {
 14249     d131 = +HEAPF32[i50 >> 2];
 14250     d132 = -0.0 - d131;
 14251     d133 = +HEAPF32[i51 >> 2];
 14252     d134 = -0.0 - d133;
 14253     d135 = +HEAPF32[i52 >> 2];
 14254     d136 = -0.0 - d135;
 14255     d137 = +HEAPF32[i60 >> 2] * d132 + +HEAPF32[i61 >> 2] * d134 + +HEAPF32[i62 >> 2] * d136;
 14256     d138 = +HEAPF32[i63 >> 2] * d132 + +HEAPF32[i64 >> 2] * d134 + +HEAPF32[i65 >> 2] * d136;
 14257     HEAPF32[i66 >> 2] = +HEAPF32[i57 >> 2] * d132 + +HEAPF32[i58 >> 2] * d134 + +HEAPF32[i59 >> 2] * d136;
 14258     HEAPF32[i67 >> 2] = d137;
 14259     HEAPF32[i68 >> 2] = d138;
 14260     HEAPF32[i69 >> 2] = 0.0;
 14261     d138 = d131 * +HEAPF32[i72 >> 2] + d133 * +HEAPF32[i73 >> 2] + d135 * +HEAPF32[i74 >> 2];
 14262     d137 = d131 * +HEAPF32[i75 >> 2] + d133 * +HEAPF32[i76 >> 2] + d135 * +HEAPF32[i77 >> 2];
 14263     HEAPF32[i78 >> 2] = d131 * +HEAPF32[i70 >> 2] + d133 * +HEAPF32[i30 >> 2] + d135 * +HEAPF32[i71 >> 2];
 14264     HEAPF32[i79 >> 2] = d138;
 14265     HEAPF32[i80 >> 2] = d137;
 14266     HEAPF32[i81 >> 2] = 0.0;
 14267     __ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3(i13, HEAP32[i28 >> 2] | 0, i11);
 14268     __ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3(i14, HEAP32[i32 >> 2] | 0, i12);
 14269     d137 = +HEAPF32[i83 >> 2];
 14270     d138 = +HEAPF32[i85 >> 2];
 14271     d135 = +HEAPF32[i87 >> 2];
 14272     d133 = d127 + (+HEAPF32[i82 >> 2] * d137 + +HEAPF32[i84 >> 2] * d138 + +HEAPF32[i86 >> 2] * d135);
 14273     d131 = d128 + (d137 * +HEAPF32[i89 >> 2] + d138 * +HEAPF32[i90 >> 2] + d135 * +HEAPF32[i91 >> 2]);
 14274     HEAPF32[i95 >> 2] = d133;
 14275     HEAPF32[i96 >> 2] = d131;
 14276     HEAPF32[i98 >> 2] = 0.0;
 14277     d135 = +HEAPF32[i100 >> 2];
 14278     d138 = +HEAPF32[i102 >> 2];
 14279     d137 = +HEAPF32[i104 >> 2];
 14280     d136 = d129 + (+HEAPF32[i99 >> 2] * d135 + +HEAPF32[i101 >> 2] * d138 + +HEAPF32[i103 >> 2] * d137);
 14281     d134 = d130 + (d135 * +HEAPF32[i106 >> 2] + d138 * +HEAPF32[i107 >> 2] + d137 * +HEAPF32[i108 >> 2]);
 14282     HEAPF32[i112 >> 2] = d136;
 14283     HEAPF32[i113 >> 2] = d134;
 14284     HEAPF32[i115 >> 2] = 0.0;
 14285     HEAPF32[i97 >> 2] = 0.0;
 14286     HEAPF32[i114 >> 2] = 0.0;
 14287     d137 = d133 - d136;
 14288     d136 = d131 - d134;
 14289     HEAPF32[i116 >> 2] = d137;
 14290     HEAPF32[i117 >> 2] = d136;
 14291     HEAPF32[i118 >> 2] = 0.0;
 14292     HEAPF32[i119 >> 2] = 0.0;
 14293     d134 = d137 * +HEAPF32[i50 >> 2] + d136 * +HEAPF32[i51 >> 2] + +HEAPF32[i52 >> 2] * 0.0;
 14294     if (d134 > 0.0) {
 14295      if (d134 * d134 > d126 * +HEAPF32[i120 >> 2]) {
 14296       d139 = d126;
 14297       i140 = 1318;
 14298       break L1498;
 14301     if (__ZN22btVoronoiSimplexSolver9inSimplexERK9btVector3(HEAP32[i56 >> 2] | 0, i17) | 0) {
 14302      d141 = d126;
 14303      i140 = 1320;
 14304      break L1498;
 14306     d136 = d126 - d134;
 14307     if (d136 <= d126 * 9.999999974752427e-7) {
 14308      d142 = d126;
 14309      d143 = d136;
 14310      i140 = 1322;
 14311      break L1498;
 14313     __ZN22btVoronoiSimplexSolver9addVertexERK9btVector3S2_S2_(HEAP32[i56 >> 2] | 0, i17, i15, i16);
 14314     if (!(__ZN22btVoronoiSimplexSolver7closestER9btVector3(HEAP32[i56 >> 2] | 0, i18) | 0)) {
 14315      d144 = d126;
 14316      i140 = 1324;
 14317      break L1498;
 14319     d136 = +HEAPF32[i121 >> 2];
 14320     d134 = +HEAPF32[i122 >> 2];
 14321     d137 = +HEAPF32[i123 >> 2];
 14322     d131 = d136 * d136 + d134 * d134 + d137 * d137;
 14323     if (d131 < 9.999999974752427e-7) {
 14324      d145 = d126;
 14325      i140 = 1326;
 14326      break L1498;
 14328     if (d126 - d131 <= d126 * 1.1920928955078125e-7) {
 14329      d146 = d131;
 14330      i140 = 1328;
 14331      break L1498;
 14333     HEAP32[i124 >> 2] = HEAP32[i125 >> 2];
 14334     HEAP32[i124 + 4 >> 2] = HEAP32[i125 + 4 >> 2];
 14335     HEAP32[i124 + 8 >> 2] = HEAP32[i125 + 8 >> 2];
 14336     HEAP32[i124 + 12 >> 2] = HEAP32[i125 + 12 >> 2];
 14337     i147 = HEAP32[i47 >> 2] | 0;
 14338     HEAP32[i47 >> 2] = i147 + 1;
 14339     if ((i147 | 0) > 1e3) {
 14340      d148 = 0.0;
 14341      i149 = 0;
 14342      break L1498;
 14344     if ((HEAP32[HEAP32[i56 >> 2] >> 2] | 0) == 4) {
 14345      i140 = 1332;
 14346      break L1498;
 14348     d126 = d131;
 14349     d127 = +HEAPF32[i88 >> 2];
 14350     d128 = +HEAPF32[i31 >> 2];
 14351     d129 = +HEAPF32[i105 >> 2];
 14352     d130 = +HEAPF32[i27 >> 2];
 14354   } else {
 14355    d130 = 999999984306749400.0;
 14356    d129 = d44;
 14357    d128 = d33;
 14358    d127 = d35;
 14359    d126 = d38;
 14360    d131 = d34;
 14361    d137 = d36;
 14362    while (1) {
 14363     d134 = +HEAPF32[i50 >> 2];
 14364     d136 = -0.0 - d134;
 14365     d133 = +HEAPF32[i51 >> 2];
 14366     d138 = -0.0 - d133;
 14367     d135 = +HEAPF32[i52 >> 2];
 14368     d132 = -0.0 - d135;
 14369     d150 = +HEAPF32[i60 >> 2] * d136 + +HEAPF32[i61 >> 2] * d138 + +HEAPF32[i62 >> 2] * d132;
 14370     d151 = +HEAPF32[i63 >> 2] * d136 + +HEAPF32[i64 >> 2] * d138 + +HEAPF32[i65 >> 2] * d132;
 14371     HEAPF32[i66 >> 2] = +HEAPF32[i57 >> 2] * d136 + +HEAPF32[i58 >> 2] * d138 + +HEAPF32[i59 >> 2] * d132;
 14372     HEAPF32[i67 >> 2] = d150;
 14373     HEAPF32[i68 >> 2] = d151;
 14374     HEAPF32[i69 >> 2] = 0.0;
 14375     d151 = d134 * +HEAPF32[i72 >> 2] + d133 * +HEAPF32[i73 >> 2] + d135 * +HEAPF32[i74 >> 2];
 14376     d150 = d134 * +HEAPF32[i75 >> 2] + d133 * +HEAPF32[i76 >> 2] + d135 * +HEAPF32[i77 >> 2];
 14377     HEAPF32[i78 >> 2] = d134 * +HEAPF32[i70 >> 2] + d133 * +HEAPF32[i30 >> 2] + d135 * +HEAPF32[i71 >> 2];
 14378     HEAPF32[i79 >> 2] = d151;
 14379     HEAPF32[i80 >> 2] = d150;
 14380     HEAPF32[i81 >> 2] = 0.0;
 14381     __ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3(i13, HEAP32[i28 >> 2] | 0, i11);
 14382     __ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3(i14, HEAP32[i32 >> 2] | 0, i12);
 14383     d150 = +HEAPF32[i83 >> 2];
 14384     d151 = +HEAPF32[i85 >> 2];
 14385     d135 = +HEAPF32[i87 >> 2];
 14386     d133 = d129 + (+HEAPF32[i82 >> 2] * d150 + +HEAPF32[i84 >> 2] * d151 + +HEAPF32[i86 >> 2] * d135);
 14387     d134 = d128 + (d150 * +HEAPF32[i89 >> 2] + d151 * +HEAPF32[i90 >> 2] + d135 * +HEAPF32[i91 >> 2]);
 14388     d132 = d127 + (d150 * +HEAPF32[i92 >> 2] + d151 * +HEAPF32[i93 >> 2] + d135 * +HEAPF32[i94 >> 2]);
 14389     HEAPF32[i95 >> 2] = d133;
 14390     HEAPF32[i96 >> 2] = d134;
 14391     HEAPF32[i97 >> 2] = d132;
 14392     HEAPF32[i98 >> 2] = 0.0;
 14393     d135 = +HEAPF32[i100 >> 2];
 14394     d151 = +HEAPF32[i102 >> 2];
 14395     d150 = +HEAPF32[i104 >> 2];
 14396     d138 = d126 + (+HEAPF32[i99 >> 2] * d135 + +HEAPF32[i101 >> 2] * d151 + +HEAPF32[i103 >> 2] * d150);
 14397     d136 = d131 + (d135 * +HEAPF32[i106 >> 2] + d151 * +HEAPF32[i107 >> 2] + d150 * +HEAPF32[i108 >> 2]);
 14398     d152 = d137 + (d135 * +HEAPF32[i109 >> 2] + d151 * +HEAPF32[i110 >> 2] + d150 * +HEAPF32[i111 >> 2]);
 14399     HEAPF32[i112 >> 2] = d138;
 14400     HEAPF32[i113 >> 2] = d136;
 14401     HEAPF32[i114 >> 2] = d152;
 14402     HEAPF32[i115 >> 2] = 0.0;
 14403     d150 = d133 - d138;
 14404     d138 = d134 - d136;
 14405     d136 = d132 - d152;
 14406     HEAPF32[i116 >> 2] = d150;
 14407     HEAPF32[i117 >> 2] = d138;
 14408     HEAPF32[i118 >> 2] = d136;
 14409     HEAPF32[i119 >> 2] = 0.0;
 14410     d152 = d150 * +HEAPF32[i50 >> 2] + d138 * +HEAPF32[i51 >> 2] + d136 * +HEAPF32[i52 >> 2];
 14411     if (d152 > 0.0) {
 14412      if (d152 * d152 > d130 * +HEAPF32[i120 >> 2]) {
 14413       d139 = d130;
 14414       i140 = 1318;
 14415       break L1498;
 14418     if (__ZN22btVoronoiSimplexSolver9inSimplexERK9btVector3(HEAP32[i56 >> 2] | 0, i17) | 0) {
 14419      d141 = d130;
 14420      i140 = 1320;
 14421      break L1498;
 14423     d136 = d130 - d152;
 14424     if (d136 <= d130 * 9.999999974752427e-7) {
 14425      d142 = d130;
 14426      d143 = d136;
 14427      i140 = 1322;
 14428      break L1498;
 14430     __ZN22btVoronoiSimplexSolver9addVertexERK9btVector3S2_S2_(HEAP32[i56 >> 2] | 0, i17, i15, i16);
 14431     if (!(__ZN22btVoronoiSimplexSolver7closestER9btVector3(HEAP32[i56 >> 2] | 0, i18) | 0)) {
 14432      d144 = d130;
 14433      i140 = 1324;
 14434      break L1498;
 14436     d136 = +HEAPF32[i121 >> 2];
 14437     d152 = +HEAPF32[i122 >> 2];
 14438     d138 = +HEAPF32[i123 >> 2];
 14439     d150 = d136 * d136 + d152 * d152 + d138 * d138;
 14440     if (d150 < 9.999999974752427e-7) {
 14441      d145 = d130;
 14442      i140 = 1326;
 14443      break L1498;
 14445     if (d130 - d150 <= d130 * 1.1920928955078125e-7) {
 14446      d146 = d150;
 14447      i140 = 1328;
 14448      break L1498;
 14450     HEAP32[i124 >> 2] = HEAP32[i125 >> 2];
 14451     HEAP32[i124 + 4 >> 2] = HEAP32[i125 + 4 >> 2];
 14452     HEAP32[i124 + 8 >> 2] = HEAP32[i125 + 8 >> 2];
 14453     HEAP32[i124 + 12 >> 2] = HEAP32[i125 + 12 >> 2];
 14454     i147 = HEAP32[i47 >> 2] | 0;
 14455     HEAP32[i47 >> 2] = i147 + 1;
 14456     if ((i147 | 0) > 1e3) {
 14457      d148 = 0.0;
 14458      i149 = 0;
 14459      break L1498;
 14461     if ((HEAP32[HEAP32[i56 >> 2] >> 2] | 0) == 4) {
 14462      i140 = 1332;
 14463      break L1498;
 14465     d130 = d150;
 14466     d129 = +HEAPF32[i88 >> 2];
 14467     d128 = +HEAPF32[i31 >> 2];
 14468     d127 = +HEAPF32[i37 >> 2];
 14469     d126 = +HEAPF32[i105 >> 2];
 14470     d131 = +HEAPF32[i27 >> 2];
 14471     d137 = +HEAPF32[i39 >> 2];
 14474  } while (0);
 14475  if ((i140 | 0) == 1326) {
 14476   HEAP32[i124 >> 2] = HEAP32[i125 >> 2];
 14477   HEAP32[i124 + 4 >> 2] = HEAP32[i125 + 4 >> 2];
 14478   HEAP32[i124 + 8 >> 2] = HEAP32[i125 + 8 >> 2];
 14479   HEAP32[i124 + 12 >> 2] = HEAP32[i125 + 12 >> 2];
 14480   HEAP32[i54 >> 2] = 6;
 14481   d153 = d145;
 14482   i140 = 1333;
 14483  } else if ((i140 | 0) == 1328) {
 14484   HEAP32[i54 >> 2] = 12;
 14485   d153 = d146;
 14486   i140 = 1333;
 14487  } else if ((i140 | 0) == 1322) {
 14488   HEAP32[i54 >> 2] = d143 > 0.0 ? 11 : 2;
 14489   d153 = d142;
 14490   i140 = 1333;
 14491  } else if ((i140 | 0) == 1318) {
 14492   HEAP32[i54 >> 2] = 10;
 14493   d153 = d139;
 14494   i140 = 1333;
 14495  } else if ((i140 | 0) == 1320) {
 14496   HEAP32[i54 >> 2] = 1;
 14497   d153 = d141;
 14498   i140 = 1333;
 14499  } else if ((i140 | 0) == 1324) {
 14500   HEAP32[i54 >> 2] = 3;
 14501   d153 = d144;
 14502   i140 = 1333;
 14503  } else if ((i140 | 0) == 1332) {
 14504   HEAP32[i54 >> 2] = 13;
 14505   d148 = 0.0;
 14506   i149 = 0;
 14508  do {
 14509   if ((i140 | 0) == 1333) {
 14510    __ZN22btVoronoiSimplexSolver14compute_pointsER9btVector3S1_(HEAP32[i56 >> 2] | 0, i7, i8);
 14511    HEAP32[i29 >> 2] = HEAP32[i124 >> 2];
 14512    HEAP32[i29 + 4 >> 2] = HEAP32[i124 + 4 >> 2];
 14513    HEAP32[i29 + 8 >> 2] = HEAP32[i124 + 8 >> 2];
 14514    HEAP32[i29 + 12 >> 2] = HEAP32[i124 + 12 >> 2];
 14515    d144 = +HEAPF32[i50 >> 2];
 14516    d141 = +HEAPF32[i51 >> 2];
 14517    d139 = +HEAPF32[i52 >> 2];
 14518    d142 = d144 * d144 + d141 * d141 + d139 * d139;
 14519    if (d142 < 1.0e-4) {
 14520     HEAP32[i54 >> 2] = 5;
 14522    if (d142 > 1.4210854715202004e-14) {
 14523     d143 = 1.0 / +Math_sqrt(+d142);
 14524     HEAPF32[i23 >> 2] = d143 * +HEAPF32[i23 >> 2];
 14525     HEAPF32[i24 >> 2] = d143 * +HEAPF32[i24 >> 2];
 14526     HEAPF32[i25 >> 2] = d143 * +HEAPF32[i25 >> 2];
 14527     d142 = +Math_sqrt(+d153);
 14528     d146 = d48 / d142;
 14529     i125 = i7 | 0;
 14530     HEAPF32[i125 >> 2] = +HEAPF32[i125 >> 2] - d144 * d146;
 14531     i125 = i7 + 4 | 0;
 14532     HEAPF32[i125 >> 2] = +HEAPF32[i125 >> 2] - d141 * d146;
 14533     i125 = i7 + 8 | 0;
 14534     HEAPF32[i125 >> 2] = +HEAPF32[i125 >> 2] - d139 * d146;
 14535     d146 = d40 / d142;
 14536     i125 = i8 | 0;
 14537     HEAPF32[i125 >> 2] = d144 * d146 + +HEAPF32[i125 >> 2];
 14538     i125 = i8 + 4 | 0;
 14539     HEAPF32[i125 >> 2] = d141 * d146 + +HEAPF32[i125 >> 2];
 14540     i125 = i8 + 8 | 0;
 14541     HEAPF32[i125 >> 2] = d139 * d146 + +HEAPF32[i125 >> 2];
 14542     HEAP32[i55 >> 2] = 1;
 14543     d148 = 1.0 / d143 - d46;
 14544     i149 = 1;
 14545     break;
 14546    } else {
 14547     HEAP32[i55 >> 2] = 2;
 14548     d148 = 0.0;
 14549     i149 = 0;
 14550     break;
 14553  } while (0);
 14554  do {
 14555   if ((HEAP32[i1 + 72 >> 2] | 0) == 0) {
 14556    i154 = 0;
 14557   } else {
 14558    if ((HEAP32[i1 + 20 >> 2] | 0) == 0) {
 14559     i154 = 0;
 14560     break;
 14562    if ((HEAP32[i54 >> 2] | 0) == 0) {
 14563     i154 = 0;
 14564     break;
 14566    i154 = d46 + d148 < .01;
 14568  } while (0);
 14569  i54 = i149 ^ 1;
 14570  do {
 14571   if (i154 | i54) {
 14572    i125 = HEAP32[i1 + 20 >> 2] | 0;
 14573    if ((i125 | 0) == 0) {
 14574     i140 = 1356;
 14575     break;
 14577    HEAP32[2994] = (HEAP32[2994] | 0) + 1;
 14578    _memset(i124 | 0, 0, 16);
 14579    if (!(FUNCTION_TABLE_iiiiiiiiiiii[HEAP32[(HEAP32[i125 >> 2] | 0) + 8 >> 2] & 7](i125, HEAP32[i56 >> 2] | 0, HEAP32[i28 >> 2] | 0, HEAP32[i32 >> 2] | 0, i9, i10, i49, i19, i20, i4, HEAP32[i2 + 132 >> 2] | 0) | 0)) {
 14580     d153 = +HEAPF32[i50 >> 2];
 14581     d143 = +HEAPF32[i51 >> 2];
 14582     d146 = +HEAPF32[i52 >> 2];
 14583     if (d153 * d153 + d143 * d143 + d146 * d146 <= 0.0) {
 14584      i140 = 1356;
 14585      break;
 14587     d139 = +HEAPF32[i19 >> 2] - +HEAPF32[i20 >> 2];
 14588     d141 = +HEAPF32[i19 + 4 >> 2] - +HEAPF32[i20 + 4 >> 2];
 14589     d144 = +HEAPF32[i19 + 8 >> 2] - +HEAPF32[i20 + 8 >> 2];
 14590     d142 = +Math_sqrt(+(d139 * d139 + d141 * d141 + d144 * d144)) - d46;
 14591     if (d142 < d148 | i54) {
 14592      i125 = i7;
 14593      i39 = i19;
 14594      HEAP32[i125 >> 2] = HEAP32[i39 >> 2];
 14595      HEAP32[i125 + 4 >> 2] = HEAP32[i39 + 4 >> 2];
 14596      HEAP32[i125 + 8 >> 2] = HEAP32[i39 + 8 >> 2];
 14597      HEAP32[i125 + 12 >> 2] = HEAP32[i39 + 12 >> 2];
 14598      i39 = i8;
 14599      i125 = i20;
 14600      HEAP32[i39 >> 2] = HEAP32[i125 >> 2];
 14601      HEAP32[i39 + 4 >> 2] = HEAP32[i125 + 4 >> 2];
 14602      HEAP32[i39 + 8 >> 2] = HEAP32[i125 + 8 >> 2];
 14603      HEAP32[i39 + 12 >> 2] = HEAP32[i125 + 12 >> 2];
 14604      i125 = i7 | 0;
 14605      HEAPF32[i125 >> 2] = +HEAPF32[i125 >> 2] - d48 * d153;
 14606      i125 = i7 + 4 | 0;
 14607      HEAPF32[i125 >> 2] = +HEAPF32[i125 >> 2] - d48 * d143;
 14608      i125 = i7 + 8 | 0;
 14609      HEAPF32[i125 >> 2] = +HEAPF32[i125 >> 2] - d48 * d146;
 14610      i125 = i8 | 0;
 14611      HEAPF32[i125 >> 2] = d40 * d153 + +HEAPF32[i125 >> 2];
 14612      i125 = i8 + 4 | 0;
 14613      HEAPF32[i125 >> 2] = d40 * d143 + +HEAPF32[i125 >> 2];
 14614      i125 = i8 + 8 | 0;
 14615      HEAPF32[i125 >> 2] = d40 * d146 + +HEAPF32[i125 >> 2];
 14616      HEAP32[i29 >> 2] = HEAP32[i124 >> 2];
 14617      HEAP32[i29 + 4 >> 2] = HEAP32[i124 + 4 >> 2];
 14618      HEAP32[i29 + 8 >> 2] = HEAP32[i124 + 8 >> 2];
 14619      HEAP32[i29 + 12 >> 2] = HEAP32[i124 + 12 >> 2];
 14620      d146 = +HEAPF32[i23 >> 2];
 14621      d143 = +HEAPF32[i24 >> 2];
 14622      d153 = +HEAPF32[i25 >> 2];
 14623      d144 = 1.0 / +Math_sqrt(+(d146 * d146 + d143 * d143 + d153 * d153));
 14624      HEAPF32[i23 >> 2] = d146 * d144;
 14625      HEAPF32[i24 >> 2] = d143 * d144;
 14626      HEAPF32[i25 >> 2] = d153 * d144;
 14627      HEAP32[i55 >> 2] = 6;
 14628      d155 = d142;
 14629      break;
 14631     HEAP32[i55 >> 2] = 5;
 14632     if (i149) {
 14633      d155 = d148;
 14634      break;
 14636     STACKTOP = i5;
 14637     return;
 14639    d142 = +HEAPF32[i20 >> 2];
 14640    d144 = +HEAPF32[i19 >> 2];
 14641    d153 = d142 - d144;
 14642    d143 = +HEAPF32[i20 + 4 >> 2];
 14643    d146 = +HEAPF32[i19 + 4 >> 2];
 14644    d141 = d143 - d146;
 14645    d139 = +HEAPF32[i20 + 8 >> 2];
 14646    d145 = +HEAPF32[i19 + 8 >> 2];
 14647    d36 = d139 - d145;
 14648    d34 = d153 * d153 + d141 * d141 + d36 * d36;
 14649    if (d34 > 1.4210854715202004e-14) {
 14650     d156 = d34;
 14651     d157 = d153;
 14652     d158 = d141;
 14653     d159 = d36;
 14654     d160 = 0.0;
 14655    } else {
 14656     d36 = +HEAPF32[i1 + 4 >> 2];
 14657     d141 = +HEAPF32[i51 >> 2];
 14658     d153 = +HEAPF32[i52 >> 2];
 14659     d156 = d36 * d36 + d141 * d141 + d153 * d153;
 14660     d157 = d36;
 14661     d158 = d141;
 14662     d159 = d153;
 14663     d160 = +HEAPF32[i53 >> 2];
 14665    if (d156 <= 1.4210854715202004e-14) {
 14666     HEAP32[i55 >> 2] = 9;
 14667     if (i149) {
 14668      d155 = d148;
 14669      break;
 14671     STACKTOP = i5;
 14672     return;
 14674    d153 = 1.0 / +Math_sqrt(+d156);
 14675    d141 = d144 - d142;
 14676    d142 = d146 - d143;
 14677    d143 = d145 - d139;
 14678    d139 = -0.0 - +Math_sqrt(+(d141 * d141 + d142 * d142 + d143 * d143));
 14679    if (d148 > d139 | i54) {
 14680     i125 = i7;
 14681     i39 = i19;
 14682     HEAP32[i125 >> 2] = HEAP32[i39 >> 2];
 14683     HEAP32[i125 + 4 >> 2] = HEAP32[i39 + 4 >> 2];
 14684     HEAP32[i125 + 8 >> 2] = HEAP32[i39 + 8 >> 2];
 14685     HEAP32[i125 + 12 >> 2] = HEAP32[i39 + 12 >> 2];
 14686     i39 = i8;
 14687     i125 = i20;
 14688     HEAP32[i39 >> 2] = HEAP32[i125 >> 2];
 14689     HEAP32[i39 + 4 >> 2] = HEAP32[i125 + 4 >> 2];
 14690     HEAP32[i39 + 8 >> 2] = HEAP32[i125 + 8 >> 2];
 14691     HEAP32[i39 + 12 >> 2] = HEAP32[i125 + 12 >> 2];
 14692     HEAPF32[i23 >> 2] = d157 * d153;
 14693     HEAPF32[i24 >> 2] = d158 * d153;
 14694     HEAPF32[i25 >> 2] = d159 * d153;
 14695     HEAPF32[i26 >> 2] = d160;
 14696     HEAP32[i55 >> 2] = 3;
 14697     d155 = d139;
 14698     break;
 14700    HEAP32[i55 >> 2] = 8;
 14701    if (i149) {
 14702     d155 = d148;
 14703     break;
 14705    STACKTOP = i5;
 14706    return;
 14707   } else {
 14708    i140 = 1356;
 14710  } while (0);
 14711  do {
 14712   if ((i140 | 0) == 1356) {
 14713    if (i149) {
 14714     d155 = d148;
 14715     break;
 14717    STACKTOP = i5;
 14718    return;
 14720  } while (0);
 14721  do {
 14722   if (d155 >= 0.0) {
 14723    if (d155 * d155 < +HEAPF32[i120 >> 2]) {
 14724     break;
 14726    STACKTOP = i5;
 14727    return;
 14729  } while (0);
 14730  HEAP32[i124 >> 2] = HEAP32[i29 >> 2];
 14731  HEAP32[i124 + 4 >> 2] = HEAP32[i29 + 4 >> 2];
 14732  HEAP32[i124 + 8 >> 2] = HEAP32[i29 + 8 >> 2];
 14733  HEAP32[i124 + 12 >> 2] = HEAP32[i29 + 12 >> 2];
 14734  HEAPF32[i22 >> 2] = d155;
 14735  i22 = HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] | 0;
 14736  d148 = d42 + +HEAPF32[i8 + 4 >> 2];
 14737  d42 = d43 + +HEAPF32[i8 + 8 >> 2];
 14738  HEAPF32[i21 >> 2] = d41 + +HEAPF32[i8 >> 2];
 14739  HEAPF32[i21 + 4 >> 2] = d148;
 14740  HEAPF32[i21 + 8 >> 2] = d42;
 14741  HEAPF32[i21 + 12 >> 2] = 0.0;
 14742  FUNCTION_TABLE_viiif[i22 & 15](i3, i6, i21, d155);
 14743  STACKTOP = i5;
 14744  return;
 14746 function __ZN16btCollisionWorld15debugDrawObjectERK11btTransformPK16btCollisionShapeRK9btVector3(i1, i2, i3, i4) {
 14747  i1 = i1 | 0;
 14748  i2 = i2 | 0;
 14749  i3 = i3 | 0;
 14750  i4 = i4 | 0;
 14751  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, d61 = 0.0, d62 = 0.0, d63 = 0.0, d64 = 0.0, d65 = 0.0, d66 = 0.0, d67 = 0.0, d68 = 0.0, d69 = 0.0, d70 = 0.0, d71 = 0.0, d72 = 0.0, i73 = 0, d74 = 0.0, d75 = 0.0, d76 = 0.0, d77 = 0.0, d78 = 0.0, d79 = 0.0, d80 = 0.0, d81 = 0.0, d82 = 0.0, d83 = 0.0, d84 = 0.0, d85 = 0.0, d86 = 0.0, i87 = 0, i88 = 0, d89 = 0.0, d90 = 0.0, d91 = 0.0, i92 = 0;
 14752  i5 = STACKTOP;
 14753  STACKTOP = STACKTOP + 576 | 0;
 14754  i6 = i5 | 0;
 14755  i7 = i5 + 64 | 0;
 14756  i8 = i5 + 80 | 0;
 14757  i9 = i5 + 96 | 0;
 14758  i10 = i5 + 160 | 0;
 14759  i11 = i5 + 176 | 0;
 14760  i12 = i5 + 192 | 0;
 14761  i13 = i5 + 208 | 0;
 14762  i14 = i5 + 304 | 0;
 14763  i15 = i5 + 320 | 0;
 14764  i16 = i5 + 336 | 0;
 14765  i17 = i5 + 432 | 0;
 14766  i18 = i5 + 448 | 0;
 14767  i19 = i5 + 464 | 0;
 14768  i20 = i5 + 480 | 0;
 14769  i21 = i5 + 496 | 0;
 14770  i22 = i5 + 512 | 0;
 14771  i23 = i5 + 528 | 0;
 14772  i24 = i5 + 544 | 0;
 14773  i25 = i5 + 560 | 0;
 14774  i26 = i1;
 14775  i27 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i26 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
 14776  FUNCTION_TABLE_viif[HEAP32[(HEAP32[i27 >> 2] | 0) + 56 >> 2] & 3](i27, i2, 1.0);
 14777  i27 = i3 + 4 | 0;
 14778  i28 = HEAP32[i27 >> 2] | 0;
 14779  switch (i28 | 0) {
 14780  case 31:
 14782    i29 = HEAP32[i3 + 16 >> 2] | 0;
 14783    if ((i29 | 0) <= 0) {
 14784     STACKTOP = i5;
 14785     return;
 14787    i30 = i3 + 24 | 0;
 14788    i31 = i1;
 14789    i32 = i2 | 0;
 14790    i33 = i2 + 4 | 0;
 14791    i34 = i2 + 8 | 0;
 14792    i35 = i2 + 16 | 0;
 14793    i36 = i2 + 20 | 0;
 14794    i37 = i2 + 24 | 0;
 14795    i38 = i2 + 32 | 0;
 14796    i39 = i2 + 36 | 0;
 14797    i40 = i2 + 40 | 0;
 14798    i41 = i2 + 48 | 0;
 14799    i42 = i2 + 52 | 0;
 14800    i43 = i2 + 56 | 0;
 14801    i44 = i6 | 0;
 14802    i45 = i6 + 4 | 0;
 14803    i46 = i6 + 8 | 0;
 14804    i47 = i6 + 12 | 0;
 14805    i48 = i6 + 16 | 0;
 14806    i49 = i6 + 20 | 0;
 14807    i50 = i6 + 24 | 0;
 14808    i51 = i6 + 28 | 0;
 14809    i52 = i6 + 32 | 0;
 14810    i53 = i6 + 36 | 0;
 14811    i54 = i6 + 40 | 0;
 14812    i55 = i6 + 44 | 0;
 14813    i56 = i6 + 48 | 0;
 14814    i57 = i6 + 52 | 0;
 14815    i58 = i6 + 56 | 0;
 14816    i59 = i6 + 60 | 0;
 14817    i60 = i29;
 14818    do {
 14819     i60 = i60 - 1 | 0;
 14820     i29 = HEAP32[i30 >> 2] | 0;
 14821     d61 = +HEAPF32[i29 + (i60 * 80 | 0) >> 2];
 14822     d62 = +HEAPF32[i29 + (i60 * 80 | 0) + 4 >> 2];
 14823     d63 = +HEAPF32[i29 + (i60 * 80 | 0) + 8 >> 2];
 14824     d64 = +HEAPF32[i29 + (i60 * 80 | 0) + 16 >> 2];
 14825     d65 = +HEAPF32[i29 + (i60 * 80 | 0) + 20 >> 2];
 14826     d66 = +HEAPF32[i29 + (i60 * 80 | 0) + 24 >> 2];
 14827     d67 = +HEAPF32[i29 + (i60 * 80 | 0) + 32 >> 2];
 14828     d68 = +HEAPF32[i29 + (i60 * 80 | 0) + 36 >> 2];
 14829     d69 = +HEAPF32[i29 + (i60 * 80 | 0) + 40 >> 2];
 14830     d70 = +HEAPF32[i29 + (i60 * 80 | 0) + 48 >> 2];
 14831     d71 = +HEAPF32[i29 + (i60 * 80 | 0) + 52 >> 2];
 14832     d72 = +HEAPF32[i29 + (i60 * 80 | 0) + 56 >> 2];
 14833     i73 = HEAP32[i29 + (i60 * 80 | 0) + 64 >> 2] | 0;
 14834     i29 = HEAP32[(HEAP32[i31 >> 2] | 0) + 24 >> 2] | 0;
 14835     d74 = +HEAPF32[i32 >> 2];
 14836     d75 = +HEAPF32[i33 >> 2];
 14837     d76 = +HEAPF32[i34 >> 2];
 14838     d77 = +HEAPF32[i35 >> 2];
 14839     d78 = +HEAPF32[i36 >> 2];
 14840     d79 = +HEAPF32[i37 >> 2];
 14841     d80 = +HEAPF32[i38 >> 2];
 14842     d81 = +HEAPF32[i39 >> 2];
 14843     d82 = +HEAPF32[i40 >> 2];
 14844     d83 = d70 * d74 + d71 * d75 + d72 * d76 + +HEAPF32[i41 >> 2];
 14845     d84 = d70 * d77 + d71 * d78 + d72 * d79 + +HEAPF32[i42 >> 2];
 14846     d85 = d70 * d80 + d71 * d81 + d72 * d82 + +HEAPF32[i43 >> 2];
 14847     HEAPF32[i44 >> 2] = d61 * d74 + d64 * d75 + d67 * d76;
 14848     HEAPF32[i45 >> 2] = d62 * d74 + d65 * d75 + d68 * d76;
 14849     HEAPF32[i46 >> 2] = d63 * d74 + d66 * d75 + d69 * d76;
 14850     HEAPF32[i47 >> 2] = 0.0;
 14851     HEAPF32[i48 >> 2] = d61 * d77 + d64 * d78 + d67 * d79;
 14852     HEAPF32[i49 >> 2] = d62 * d77 + d65 * d78 + d68 * d79;
 14853     HEAPF32[i50 >> 2] = d63 * d77 + d66 * d78 + d69 * d79;
 14854     HEAPF32[i51 >> 2] = 0.0;
 14855     HEAPF32[i52 >> 2] = d61 * d80 + d64 * d81 + d67 * d82;
 14856     HEAPF32[i53 >> 2] = d62 * d80 + d65 * d81 + d68 * d82;
 14857     HEAPF32[i54 >> 2] = d63 * d80 + d66 * d81 + d69 * d82;
 14858     HEAPF32[i55 >> 2] = 0.0;
 14859     HEAPF32[i56 >> 2] = d83;
 14860     HEAPF32[i57 >> 2] = d84;
 14861     HEAPF32[i58 >> 2] = d85;
 14862     HEAPF32[i59 >> 2] = 0.0;
 14863     FUNCTION_TABLE_viiii[i29 & 127](i1, i6, i73, i4);
 14864    } while ((i60 | 0) > 0);
 14865    STACKTOP = i5;
 14866    return;
 14868  case 0:
 14870    i60 = i7;
 14871    i6 = i3 + 28 | 0;
 14872    HEAP32[i60 >> 2] = HEAP32[i6 >> 2];
 14873    HEAP32[i60 + 4 >> 2] = HEAP32[i6 + 4 >> 2];
 14874    HEAP32[i60 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
 14875    HEAP32[i60 + 12 >> 2] = HEAP32[i6 + 12 >> 2];
 14876    i6 = i3;
 14877    i60 = i3;
 14878    d85 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i60 >> 2] | 0) + 44 >> 2] & 7](i6);
 14879    d84 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i60 >> 2] | 0) + 44 >> 2] & 7](i6);
 14880    d83 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i60 >> 2] | 0) + 44 >> 2] & 7](i6);
 14881    i6 = i7 | 0;
 14882    d82 = d85 + +HEAPF32[i6 >> 2];
 14883    HEAPF32[i6 >> 2] = d82;
 14884    i6 = i7 + 4 | 0;
 14885    d85 = d84 + +HEAPF32[i6 >> 2];
 14886    HEAPF32[i6 >> 2] = d85;
 14887    i6 = i7 + 8 | 0;
 14888    d84 = d83 + +HEAPF32[i6 >> 2];
 14889    HEAPF32[i6 >> 2] = d84;
 14890    i6 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i26 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
 14891    i60 = HEAP32[(HEAP32[i6 >> 2] | 0) + 72 >> 2] | 0;
 14892    HEAPF32[i8 >> 2] = -0.0 - d82;
 14893    HEAPF32[i8 + 4 >> 2] = -0.0 - d85;
 14894    HEAPF32[i8 + 8 >> 2] = -0.0 - d84;
 14895    HEAPF32[i8 + 12 >> 2] = 0.0;
 14896    FUNCTION_TABLE_viiiii[i60 & 63](i6, i8, i7, i2, i4);
 14897    STACKTOP = i5;
 14898    return;
 14900  case 8:
 14902    d84 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i3 >> 2] | 0) + 44 >> 2] & 7](i3);
 14903    i7 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i26 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
 14904    FUNCTION_TABLE_vifii[HEAP32[(HEAP32[i7 >> 2] | 0) + 16 >> 2] & 1](i7, d84, i2, i4);
 14905    STACKTOP = i5;
 14906    return;
 14908  case 9:
 14910    i7 = HEAP32[i3 + 92 >> 2] | 0;
 14911    if ((i7 | 0) <= 0) {
 14912     STACKTOP = i5;
 14913     return;
 14915    i8 = i3 + 100 | 0;
 14916    i6 = i3 + 120 | 0;
 14917    i60 = i2 | 0;
 14918    i59 = i2 + 4 | 0;
 14919    i58 = i2 + 8 | 0;
 14920    i57 = i2 + 16 | 0;
 14921    i56 = i2 + 20 | 0;
 14922    i55 = i2 + 24 | 0;
 14923    i54 = i2 + 32 | 0;
 14924    i53 = i2 + 36 | 0;
 14925    i52 = i2 + 40 | 0;
 14926    i51 = i2 + 48 | 0;
 14927    i50 = i2 + 52 | 0;
 14928    i49 = i2 + 56 | 0;
 14929    i48 = i9 | 0;
 14930    i47 = i9 + 4 | 0;
 14931    i46 = i9 + 8 | 0;
 14932    i45 = i9 + 12 | 0;
 14933    i44 = i9 + 16 | 0;
 14934    i43 = i9 + 20 | 0;
 14935    i42 = i9 + 24 | 0;
 14936    i41 = i9 + 28 | 0;
 14937    i40 = i9 + 32 | 0;
 14938    i39 = i9 + 36 | 0;
 14939    i38 = i9 + 40 | 0;
 14940    i37 = i9 + 44 | 0;
 14941    i36 = i9 + 48 | 0;
 14942    i35 = i9 + 52 | 0;
 14943    i34 = i9 + 56 | 0;
 14944    i33 = i9 + 60 | 0;
 14945    i32 = i7;
 14946    do {
 14947     i32 = i32 - 1 | 0;
 14948     i7 = HEAP32[i8 >> 2] | 0;
 14949     d84 = +HEAPF32[i7 + (i32 << 4) >> 2];
 14950     d85 = +HEAPF32[i7 + (i32 << 4) + 4 >> 2];
 14951     d82 = +HEAPF32[i7 + (i32 << 4) + 8 >> 2];
 14952     i7 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i26 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
 14953     i31 = HEAP32[(HEAP32[i7 >> 2] | 0) + 16 >> 2] | 0;
 14954     d83 = +HEAPF32[(HEAP32[i6 >> 2] | 0) + (i32 << 2) >> 2];
 14955     d69 = +HEAPF32[i60 >> 2];
 14956     d81 = +HEAPF32[i59 >> 2];
 14957     d66 = d81 * 0.0;
 14958     d80 = +HEAPF32[i58 >> 2];
 14959     d63 = d80 * 0.0;
 14960     d68 = d69 * 0.0;
 14961     d65 = +HEAPF32[i57 >> 2];
 14962     d62 = +HEAPF32[i56 >> 2];
 14963     d67 = d62 * 0.0;
 14964     d64 = +HEAPF32[i55 >> 2];
 14965     d61 = d64 * 0.0;
 14966     d79 = d65 * 0.0;
 14967     d78 = +HEAPF32[i54 >> 2];
 14968     d77 = +HEAPF32[i53 >> 2];
 14969     d76 = d77 * 0.0;
 14970     d75 = +HEAPF32[i52 >> 2];
 14971     d74 = d75 * 0.0;
 14972     d72 = d78 * 0.0;
 14973     d71 = d84 * d69 + d85 * d81 + d82 * d80 + +HEAPF32[i51 >> 2];
 14974     d70 = d84 * d65 + d85 * d62 + d82 * d64 + +HEAPF32[i50 >> 2];
 14975     d86 = d84 * d78 + d85 * d77 + d82 * d75 + +HEAPF32[i49 >> 2];
 14976     HEAPF32[i48 >> 2] = d69 + d66 + d63;
 14977     HEAPF32[i47 >> 2] = d68 + d81 + d63;
 14978     HEAPF32[i46 >> 2] = d80 + (d68 + d66);
 14979     HEAPF32[i45 >> 2] = 0.0;
 14980     HEAPF32[i44 >> 2] = d65 + d67 + d61;
 14981     HEAPF32[i43 >> 2] = d79 + d62 + d61;
 14982     HEAPF32[i42 >> 2] = d64 + (d79 + d67);
 14983     HEAPF32[i41 >> 2] = 0.0;
 14984     HEAPF32[i40 >> 2] = d78 + d76 + d74;
 14985     HEAPF32[i39 >> 2] = d72 + d77 + d74;
 14986     HEAPF32[i38 >> 2] = d75 + (d72 + d76);
 14987     HEAPF32[i37 >> 2] = 0.0;
 14988     HEAPF32[i36 >> 2] = d71;
 14989     HEAPF32[i35 >> 2] = d70;
 14990     HEAPF32[i34 >> 2] = d86;
 14991     HEAPF32[i33 >> 2] = 0.0;
 14992     FUNCTION_TABLE_vifii[i31 & 1](i7, d83, i9, i4);
 14993    } while ((i32 | 0) > 0);
 14994    STACKTOP = i5;
 14995    return;
 14997  case 11:
 14999    d83 = +HEAPF32[i3 + 56 >> 2];
 15000    d86 = +HEAPF32[i3 + 60 >> 2];
 15001    i32 = HEAP32[i3 + 68 >> 2] | 0;
 15002    i9 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i26 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
 15003    FUNCTION_TABLE_viffiii[HEAP32[(HEAP32[i9 >> 2] | 0) + 84 >> 2] & 1](i9, d83, d86, i32, i2, i4);
 15004    STACKTOP = i5;
 15005    return;
 15007  case 10:
 15009    i32 = i3;
 15010    i9 = HEAP32[i3 + 52 >> 2] | 0;
 15011    d86 = +HEAPF32[i32 + 28 + (((i9 + 2 | 0) % 3 | 0) << 2) >> 2];
 15012    d83 = +HEAPF32[i32 + 28 + (i9 << 2) >> 2];
 15013    i32 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i26 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
 15014    FUNCTION_TABLE_viffiii[HEAP32[(HEAP32[i32 >> 2] | 0) + 76 >> 2] & 1](i32, d86, d83, i9, i2, i4);
 15015    STACKTOP = i5;
 15016    return;
 15018  case 13:
 15020    i9 = HEAP32[i3 + 52 >> 2] | 0;
 15021    d83 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i3 >> 2] | 0) + 84 >> 2] & 7](i3);
 15022    i32 = i10;
 15023    i33 = i3 + 28 | 0;
 15024    HEAP32[i32 >> 2] = HEAP32[i33 >> 2];
 15025    HEAP32[i32 + 4 >> 2] = HEAP32[i33 + 4 >> 2];
 15026    HEAP32[i32 + 8 >> 2] = HEAP32[i33 + 8 >> 2];
 15027    HEAP32[i32 + 12 >> 2] = HEAP32[i33 + 12 >> 2];
 15028    i33 = i3;
 15029    i32 = i3;
 15030    d86 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i32 >> 2] | 0) + 44 >> 2] & 7](i33);
 15031    d70 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i32 >> 2] | 0) + 44 >> 2] & 7](i33);
 15032    d71 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i32 >> 2] | 0) + 44 >> 2] & 7](i33);
 15033    i33 = i10 | 0;
 15034    HEAPF32[i33 >> 2] = d86 + +HEAPF32[i33 >> 2];
 15035    i33 = i10 + 4 | 0;
 15036    HEAPF32[i33 >> 2] = d70 + +HEAPF32[i33 >> 2];
 15037    i33 = i10 + 8 | 0;
 15038    HEAPF32[i33 >> 2] = d71 + +HEAPF32[i33 >> 2];
 15039    d71 = +HEAPF32[i10 + (i9 << 2) >> 2];
 15040    i10 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i26 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
 15041    FUNCTION_TABLE_viffiii[HEAP32[(HEAP32[i10 >> 2] | 0) + 80 >> 2] & 1](i10, d83, d71, i9, i2, i4);
 15042    STACKTOP = i5;
 15043    return;
 15045  case 28:
 15047    d71 = +HEAPF32[i3 + 64 >> 2];
 15048    i9 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i26 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
 15049    FUNCTION_TABLE_viifii[HEAP32[(HEAP32[i9 >> 2] | 0) + 88 >> 2] & 1](i9, i3 + 48 | 0, d71, i2, i4);
 15050    STACKTOP = i5;
 15051    return;
 15053  default:
 15055    if ((i28 - 21 | 0) >>> 0 < 9) {
 15056     HEAPF32[i11 >> 2] = 999999984306749400.0;
 15057     HEAPF32[i11 + 4 >> 2] = 999999984306749400.0;
 15058     HEAPF32[i11 + 8 >> 2] = 999999984306749400.0;
 15059     HEAPF32[i11 + 12 >> 2] = 0.0;
 15060     HEAPF32[i12 >> 2] = -999999984306749400.0;
 15061     HEAPF32[i12 + 4 >> 2] = -999999984306749400.0;
 15062     HEAPF32[i12 + 8 >> 2] = -999999984306749400.0;
 15063     HEAPF32[i12 + 12 >> 2] = 0.0;
 15064     i9 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i26 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
 15065     HEAP32[i13 >> 2] = 4216;
 15066     HEAP32[i13 + 4 >> 2] = 4240;
 15067     HEAP32[i13 + 8 >> 2] = i9;
 15068     i9 = i13 + 12 | 0;
 15069     i10 = i4;
 15070     HEAP32[i9 >> 2] = HEAP32[i10 >> 2];
 15071     HEAP32[i9 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
 15072     HEAP32[i9 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
 15073     HEAP32[i9 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
 15074     i10 = i13 + 28 | 0;
 15075     i9 = i2;
 15076     HEAP32[i10 >> 2] = HEAP32[i9 >> 2];
 15077     HEAP32[i10 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
 15078     HEAP32[i10 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
 15079     HEAP32[i10 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
 15080     i9 = i13 + 44 | 0;
 15081     i10 = i2 + 16 | 0;
 15082     HEAP32[i9 >> 2] = HEAP32[i10 >> 2];
 15083     HEAP32[i9 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
 15084     HEAP32[i9 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
 15085     HEAP32[i9 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
 15086     i10 = i13 + 60 | 0;
 15087     i9 = i2 + 32 | 0;
 15088     HEAP32[i10 >> 2] = HEAP32[i9 >> 2];
 15089     HEAP32[i10 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
 15090     HEAP32[i10 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
 15091     HEAP32[i10 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
 15092     i9 = i13 + 76 | 0;
 15093     i10 = i2 + 48 | 0;
 15094     HEAP32[i9 >> 2] = HEAP32[i10 >> 2];
 15095     HEAP32[i9 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
 15096     HEAP32[i9 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
 15097     HEAP32[i9 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
 15098     i10 = i13 | 0;
 15099     FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i3 >> 2] | 0) + 60 >> 2] & 127](i3, i10, i12, i11);
 15100     __ZN31btInternalTriangleIndexCallbackD2Ev(i13 + 4 | 0);
 15101     __ZN18btTriangleCallbackD2Ev(i10);
 15102     i87 = HEAP32[i27 >> 2] | 0;
 15103    } else {
 15104     i87 = i28;
 15106    if ((i87 | 0) == 3) {
 15107     HEAPF32[i14 >> 2] = 999999984306749400.0;
 15108     HEAPF32[i14 + 4 >> 2] = 999999984306749400.0;
 15109     HEAPF32[i14 + 8 >> 2] = 999999984306749400.0;
 15110     HEAPF32[i14 + 12 >> 2] = 0.0;
 15111     HEAPF32[i15 >> 2] = -999999984306749400.0;
 15112     HEAPF32[i15 + 4 >> 2] = -999999984306749400.0;
 15113     HEAPF32[i15 + 8 >> 2] = -999999984306749400.0;
 15114     HEAPF32[i15 + 12 >> 2] = 0.0;
 15115     i28 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i26 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
 15116     HEAP32[i16 >> 2] = 4216;
 15117     HEAP32[i16 + 4 >> 2] = 4240;
 15118     HEAP32[i16 + 8 >> 2] = i28;
 15119     i28 = i16 + 12 | 0;
 15120     i10 = i4;
 15121     HEAP32[i28 >> 2] = HEAP32[i10 >> 2];
 15122     HEAP32[i28 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
 15123     HEAP32[i28 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
 15124     HEAP32[i28 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
 15125     i10 = i16 + 28 | 0;
 15126     i28 = i2;
 15127     HEAP32[i10 >> 2] = HEAP32[i28 >> 2];
 15128     HEAP32[i10 + 4 >> 2] = HEAP32[i28 + 4 >> 2];
 15129     HEAP32[i10 + 8 >> 2] = HEAP32[i28 + 8 >> 2];
 15130     HEAP32[i10 + 12 >> 2] = HEAP32[i28 + 12 >> 2];
 15131     i28 = i16 + 44 | 0;
 15132     i10 = i2 + 16 | 0;
 15133     HEAP32[i28 >> 2] = HEAP32[i10 >> 2];
 15134     HEAP32[i28 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
 15135     HEAP32[i28 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
 15136     HEAP32[i28 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
 15137     i10 = i16 + 60 | 0;
 15138     i28 = i2 + 32 | 0;
 15139     HEAP32[i10 >> 2] = HEAP32[i28 >> 2];
 15140     HEAP32[i10 + 4 >> 2] = HEAP32[i28 + 4 >> 2];
 15141     HEAP32[i10 + 8 >> 2] = HEAP32[i28 + 8 >> 2];
 15142     HEAP32[i10 + 12 >> 2] = HEAP32[i28 + 12 >> 2];
 15143     i28 = i16 + 76 | 0;
 15144     i10 = i2 + 48 | 0;
 15145     HEAP32[i28 >> 2] = HEAP32[i10 >> 2];
 15146     HEAP32[i28 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
 15147     HEAP32[i28 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
 15148     HEAP32[i28 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
 15149     i10 = HEAP32[i3 + 92 >> 2] | 0;
 15150     i28 = i16 + 4 | 0;
 15151     FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i10 >> 2] | 0) + 8 >> 2] & 127](i10, i28, i15, i14);
 15152     __ZN31btInternalTriangleIndexCallbackD2Ev(i28);
 15153     __ZN18btTriangleCallbackD2Ev(i16 | 0);
 15154     i88 = HEAP32[i27 >> 2] | 0;
 15155    } else {
 15156     i88 = i87;
 15158    if ((i88 | 0) >= 7) {
 15159     STACKTOP = i5;
 15160     return;
 15162    i88 = i3;
 15163    i87 = HEAP32[i3 + 52 >> 2] | 0;
 15164    if ((i87 | 0) == 0) {
 15165     i27 = i3;
 15166     if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i27 >> 2] | 0) + 92 >> 2] & 127](i88) | 0) <= 0) {
 15167      STACKTOP = i5;
 15168      return;
 15170     i16 = i3;
 15171     i3 = i2 | 0;
 15172     i28 = i22 | 0;
 15173     i14 = i2 + 4 | 0;
 15174     i15 = i22 + 4 | 0;
 15175     i10 = i2 + 8 | 0;
 15176     i13 = i22 + 8 | 0;
 15177     i11 = i2 + 48 | 0;
 15178     i12 = i2 + 16 | 0;
 15179     i9 = i2 + 20 | 0;
 15180     i33 = i2 + 24 | 0;
 15181     i32 = i2 + 52 | 0;
 15182     i34 = i2 + 32 | 0;
 15183     i35 = i2 + 36 | 0;
 15184     i36 = i2 + 40 | 0;
 15185     i37 = i2 + 56 | 0;
 15186     i38 = i24 | 0;
 15187     i39 = i24 + 4 | 0;
 15188     i40 = i24 + 8 | 0;
 15189     i41 = i24 + 12 | 0;
 15190     i42 = i23 | 0;
 15191     i43 = i23 + 4 | 0;
 15192     i44 = i23 + 8 | 0;
 15193     i45 = i25 | 0;
 15194     i46 = i25 + 4 | 0;
 15195     i47 = i25 + 8 | 0;
 15196     i48 = i25 + 12 | 0;
 15197     i49 = 0;
 15198     do {
 15199      FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i16 >> 2] | 0) + 96 >> 2] & 127](i88, i49, i22, i23);
 15200      d71 = +HEAPF32[i3 >> 2];
 15201      d83 = +HEAPF32[i28 >> 2];
 15202      d70 = +HEAPF32[i14 >> 2];
 15203      d86 = +HEAPF32[i15 >> 2];
 15204      d76 = +HEAPF32[i10 >> 2];
 15205      d72 = +HEAPF32[i13 >> 2];
 15206      d75 = +HEAPF32[i11 >> 2];
 15207      d74 = +HEAPF32[i12 >> 2];
 15208      d77 = +HEAPF32[i9 >> 2];
 15209      d78 = +HEAPF32[i33 >> 2];
 15210      d67 = +HEAPF32[i32 >> 2];
 15211      d79 = +HEAPF32[i34 >> 2];
 15212      d64 = +HEAPF32[i35 >> 2];
 15213      d61 = +HEAPF32[i36 >> 2];
 15214      d62 = +HEAPF32[i37 >> 2];
 15215      HEAPF32[i38 >> 2] = d75 + (d71 * d83 + d70 * d86 + d76 * d72);
 15216      HEAPF32[i39 >> 2] = d67 + (d83 * d74 + d86 * d77 + d72 * d78);
 15217      HEAPF32[i40 >> 2] = d62 + (d83 * d79 + d86 * d64 + d72 * d61);
 15218      HEAPF32[i41 >> 2] = 0.0;
 15219      d72 = +HEAPF32[i42 >> 2];
 15220      d86 = +HEAPF32[i43 >> 2];
 15221      d83 = +HEAPF32[i44 >> 2];
 15222      HEAPF32[i45 >> 2] = d75 + (d71 * d72 + d70 * d86 + d76 * d83);
 15223      HEAPF32[i46 >> 2] = d67 + (d74 * d72 + d77 * d86 + d78 * d83);
 15224      HEAPF32[i47 >> 2] = d62 + (d79 * d72 + d64 * d86 + d61 * d83);
 15225      HEAPF32[i48 >> 2] = 0.0;
 15226      i50 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i26 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
 15227      FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i50 >> 2] | 0) + 8 >> 2] & 127](i50, i24, i25, i4);
 15228      i49 = i49 + 1 | 0;
 15229     } while ((i49 | 0) < (FUNCTION_TABLE_ii[HEAP32[(HEAP32[i27 >> 2] | 0) + 92 >> 2] & 127](i88) | 0));
 15230     STACKTOP = i5;
 15231     return;
 15233    i88 = i87 + 28 | 0;
 15234    if ((HEAP32[i88 >> 2] | 0) <= 0) {
 15235     STACKTOP = i5;
 15236     return;
 15238    i27 = i87 + 36 | 0;
 15239    i49 = i19 | 0;
 15240    i25 = i19 + 4 | 0;
 15241    i24 = i19 + 8 | 0;
 15242    i48 = i19 + 12 | 0;
 15243    i47 = i2 | 0;
 15244    i46 = i2 + 4 | 0;
 15245    i45 = i2 + 8 | 0;
 15246    i44 = i2 + 48 | 0;
 15247    i43 = i2 + 16 | 0;
 15248    i42 = i2 + 20 | 0;
 15249    i41 = i2 + 24 | 0;
 15250    i40 = i2 + 52 | 0;
 15251    i39 = i2 + 32 | 0;
 15252    i38 = i2 + 36 | 0;
 15253    i37 = i2 + 40 | 0;
 15254    i36 = i2 + 56 | 0;
 15255    i2 = i20 | 0;
 15256    i35 = i20 + 4 | 0;
 15257    i34 = i20 + 8 | 0;
 15258    i32 = i20 + 12 | 0;
 15259    i33 = i21 | 0;
 15260    i9 = i21 + 4 | 0;
 15261    i12 = i21 + 8 | 0;
 15262    i11 = i21 + 12 | 0;
 15263    i13 = i87 + 16 | 0;
 15264    i87 = i17 | 0;
 15265    i10 = i17 + 4 | 0;
 15266    i15 = i17 + 8 | 0;
 15267    i14 = i17 + 12 | 0;
 15268    i28 = i18 | 0;
 15269    i3 = i18 + 4 | 0;
 15270    i23 = i18 + 8 | 0;
 15271    i22 = i18 + 12 | 0;
 15272    i16 = 0;
 15273    do {
 15274     i50 = HEAP32[i27 >> 2] | 0;
 15275     i51 = HEAP32[i50 + (i16 * 56 | 0) + 4 >> 2] | 0;
 15276     L252 : do {
 15277      if ((i51 | 0) > 0) {
 15278       i52 = HEAP32[i50 + (i16 * 56 | 0) + 12 >> 2] | 0;
 15279       d83 = 0.0;
 15280       d61 = 0.0;
 15281       d86 = 0.0;
 15282       i53 = HEAP32[i52 + (i51 - 1 << 2) >> 2] | 0;
 15283       i54 = 0;
 15284       i55 = i52;
 15285       while (1) {
 15286        i52 = HEAP32[i55 + (i54 << 2) >> 2] | 0;
 15287        i56 = HEAP32[i13 >> 2] | 0;
 15288        d64 = d86 + +HEAPF32[i56 + (i52 << 4) >> 2];
 15289        d72 = d61 + +HEAPF32[i56 + (i52 << 4) + 4 >> 2];
 15290        d79 = d83 + +HEAPF32[i56 + (i52 << 4) + 8 >> 2];
 15291        i56 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i26 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
 15292        i57 = HEAP32[(HEAP32[i56 >> 2] | 0) + 8 >> 2] | 0;
 15293        i58 = HEAP32[i13 >> 2] | 0;
 15294        d62 = +HEAPF32[i47 >> 2];
 15295        d78 = +HEAPF32[i58 + (i53 << 4) >> 2];
 15296        d77 = +HEAPF32[i46 >> 2];
 15297        d74 = +HEAPF32[i58 + (i53 << 4) + 4 >> 2];
 15298        d67 = +HEAPF32[i45 >> 2];
 15299        d76 = +HEAPF32[i58 + (i53 << 4) + 8 >> 2];
 15300        d70 = +HEAPF32[i44 >> 2];
 15301        d71 = +HEAPF32[i43 >> 2];
 15302        d75 = +HEAPF32[i42 >> 2];
 15303        d65 = +HEAPF32[i41 >> 2];
 15304        d66 = +HEAPF32[i40 >> 2];
 15305        d68 = +HEAPF32[i39 >> 2];
 15306        d80 = +HEAPF32[i38 >> 2];
 15307        d63 = +HEAPF32[i37 >> 2];
 15308        d81 = +HEAPF32[i36 >> 2];
 15309        HEAPF32[i87 >> 2] = d70 + (d62 * d78 + d77 * d74 + d67 * d76);
 15310        HEAPF32[i10 >> 2] = d66 + (d78 * d71 + d74 * d75 + d76 * d65);
 15311        HEAPF32[i15 >> 2] = d81 + (d78 * d68 + d74 * d80 + d76 * d63);
 15312        HEAPF32[i14 >> 2] = 0.0;
 15313        d76 = +HEAPF32[i58 + (i52 << 4) >> 2];
 15314        d74 = +HEAPF32[i58 + (i52 << 4) + 4 >> 2];
 15315        d78 = +HEAPF32[i58 + (i52 << 4) + 8 >> 2];
 15316        HEAPF32[i28 >> 2] = d70 + (d62 * d76 + d77 * d74 + d67 * d78);
 15317        HEAPF32[i3 >> 2] = d66 + (d71 * d76 + d75 * d74 + d65 * d78);
 15318        HEAPF32[i23 >> 2] = d81 + (d68 * d76 + d80 * d74 + d63 * d78);
 15319        HEAPF32[i22 >> 2] = 0.0;
 15320        FUNCTION_TABLE_viiii[i57 & 127](i56, i17, i18, i4);
 15321        i56 = i54 + 1 | 0;
 15322        i57 = HEAP32[i27 >> 2] | 0;
 15323        if ((i56 | 0) >= (HEAP32[i57 + (i16 * 56 | 0) + 4 >> 2] | 0)) {
 15324         d89 = d64;
 15325         d90 = d72;
 15326         d91 = d79;
 15327         i92 = i57;
 15328         break L252;
 15330        d83 = d79;
 15331        d61 = d72;
 15332        d86 = d64;
 15333        i53 = i52;
 15334        i54 = i56;
 15335        i55 = HEAP32[i57 + (i16 * 56 | 0) + 12 >> 2] | 0;
 15337      } else {
 15338       d89 = 0.0;
 15339       d90 = 0.0;
 15340       d91 = 0.0;
 15341       i92 = i50;
 15343     } while (0);
 15344     d86 = 1.0 / +(i51 | 0);
 15345     d61 = d89 * d86;
 15346     d83 = d90 * d86;
 15347     d64 = d91 * d86;
 15348     HEAPF32[i49 >> 2] = 1.0;
 15349     HEAPF32[i25 >> 2] = 1.0;
 15350     HEAPF32[i24 >> 2] = 0.0;
 15351     HEAPF32[i48 >> 2] = 0.0;
 15352     d86 = +HEAPF32[i92 + (i16 * 56 | 0) + 40 >> 2];
 15353     d72 = +HEAPF32[i92 + (i16 * 56 | 0) + 44 >> 2];
 15354     d79 = +HEAPF32[i92 + (i16 * 56 | 0) + 48 >> 2];
 15355     i50 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i26 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
 15356     i55 = HEAP32[(HEAP32[i50 >> 2] | 0) + 8 >> 2] | 0;
 15357     d78 = +HEAPF32[i47 >> 2];
 15358     d63 = +HEAPF32[i46 >> 2];
 15359     d74 = +HEAPF32[i45 >> 2];
 15360     d80 = +HEAPF32[i44 >> 2];
 15361     d76 = +HEAPF32[i43 >> 2];
 15362     d68 = +HEAPF32[i42 >> 2];
 15363     d81 = +HEAPF32[i41 >> 2];
 15364     d65 = +HEAPF32[i40 >> 2];
 15365     d75 = +HEAPF32[i39 >> 2];
 15366     d71 = +HEAPF32[i38 >> 2];
 15367     d66 = +HEAPF32[i37 >> 2];
 15368     d67 = +HEAPF32[i36 >> 2];
 15369     HEAPF32[i2 >> 2] = d80 + (d61 * d78 + d83 * d63 + d64 * d74);
 15370     HEAPF32[i35 >> 2] = d65 + (d61 * d76 + d83 * d68 + d64 * d81);
 15371     HEAPF32[i34 >> 2] = d67 + (d61 * d75 + d83 * d71 + d64 * d66);
 15372     HEAPF32[i32 >> 2] = 0.0;
 15373     d77 = d61 + d86;
 15374     d86 = d83 + d72;
 15375     d72 = d64 + d79;
 15376     HEAPF32[i33 >> 2] = d80 + (d77 * d78 + d86 * d63 + d72 * d74);
 15377     HEAPF32[i9 >> 2] = d65 + (d77 * d76 + d86 * d68 + d72 * d81);
 15378     HEAPF32[i12 >> 2] = d67 + (d77 * d75 + d86 * d71 + d72 * d66);
 15379     HEAPF32[i11 >> 2] = 0.0;
 15380     FUNCTION_TABLE_viiii[i55 & 127](i50, i20, i21, i19);
 15381     i16 = i16 + 1 | 0;
 15382    } while ((i16 | 0) < (HEAP32[i88 >> 2] | 0));
 15383    STACKTOP = i5;
 15384    return;
 15388 function __ZN20btConvexHullInternal6shrinkEff(i1, d2, d3) {
 15389  i1 = i1 | 0;
 15390  d2 = +d2;
 15391  d3 = +d3;
 15392  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, d15 = 0.0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0, i68 = 0, i69 = 0, i70 = 0, i71 = 0, i72 = 0, i73 = 0, i74 = 0, i75 = 0, i76 = 0, i77 = 0, i78 = 0, i79 = 0, i80 = 0, i81 = 0, i82 = 0, i83 = 0, i84 = 0, i85 = 0, i86 = 0, i87 = 0, i88 = 0, i89 = 0, i90 = 0, i91 = 0, i92 = 0, i93 = 0, i94 = 0, i95 = 0, i96 = 0, i97 = 0, i98 = 0, i99 = 0, i100 = 0, i101 = 0, i102 = 0, i103 = 0, i104 = 0, i105 = 0, i106 = 0, i107 = 0, i108 = 0, i109 = 0, i110 = 0, i111 = 0, i112 = 0, i113 = 0, i114 = 0, i115 = 0, i116 = 0, i117 = 0, i118 = 0, i119 = 0, i120 = 0, i121 = 0, i122 = 0, i123 = 0, i124 = 0, i125 = 0, i126 = 0, i127 = 0, i128 = 0, i129 = 0, i130 = 0, i131 = 0, i132 = 0, i133 = 0, i134 = 0, i135 = 0, i136 = 0, i137 = 0, i138 = 0, i139 = 0, i140 = 0, i141 = 0, i142 = 0, i143 = 0, i144 = 0, i145 = 0, i146 = 0, i147 = 0, i148 = 0, i149 = 0, i150 = 0, i151 = 0, i152 = 0, i153 = 0, i154 = 0, i155 = 0, i156 = 0, i157 = 0, i158 = 0, i159 = 0, i160 = 0, i161 = 0, i162 = 0, i163 = 0, i164 = 0, i165 = 0, i166 = 0, i167 = 0, i168 = 0, i169 = 0, i170 = 0, i171 = 0, i172 = 0, d173 = 0.0, d174 = 0.0, d175 = 0.0, d176 = 0.0, d177 = 0.0, d178 = 0.0, d179 = 0.0, d180 = 0.0;
 15393  i4 = STACKTOP;
 15394  STACKTOP = STACKTOP + 136 | 0;
 15395  i5 = i4 | 0;
 15396  i6 = i4 + 16 | 0;
 15397  i7 = i4 + 32 | 0;
 15398  i8 = i4 + 48 | 0;
 15399  i9 = i4 + 64 | 0;
 15400  i10 = i4 + 80 | 0;
 15401  i11 = i4 + 96 | 0;
 15402  i12 = i4 + 112 | 0;
 15403  i13 = i1 + 124 | 0;
 15404  i14 = HEAP32[i13 >> 2] | 0;
 15405  if ((i14 | 0) == 0) {
 15406   d15 = 0.0;
 15407   STACKTOP = i4;
 15408   return +d15;
 15410  i16 = i1 + 100 | 0;
 15411  i17 = (HEAP32[i16 >> 2] | 0) - 1 | 0;
 15412  HEAP32[i16 >> 2] = i17;
 15413  HEAP32[i14 + 104 >> 2] = i17;
 15414  i14 = __Z22btAlignedAllocInternalji(4, 16) | 0;
 15415  i16 = i14;
 15416  if ((i14 | 0) != 0) {
 15417   HEAP32[i16 >> 2] = HEAP32[i13 >> 2];
 15419  i14 = HEAP32[i13 >> 2] | 0;
 15420  i13 = HEAP32[i14 + 88 >> 2] | 0;
 15421  i18 = HEAP32[i14 + 92 >> 2] | 0;
 15422  i19 = HEAP32[i14 + 96 >> 2] | 0;
 15423  i14 = i6 | 0;
 15424  i20 = i6 + 8 | 0;
 15425  i21 = i7 | 0;
 15426  _memset(i6 | 0, 0, 16);
 15427  i22 = i7 + 8 | 0;
 15428  i23 = i8 | 0;
 15429  _memset(i7 | 0, 0, 16);
 15430  i24 = i8 + 8 | 0;
 15431  i25 = i9 | 0;
 15432  _memset(i8 | 0, 0, 16);
 15433  i26 = i9 + 8 | 0;
 15434  i27 = i1 + 64 | 0;
 15435  _memset(i9 | 0, 0, 16);
 15436  i28 = 0;
 15437  i29 = 0;
 15438  i30 = 0;
 15439  i31 = 1;
 15440  i32 = 1;
 15441  i33 = i16;
 15442  i16 = 0;
 15443  i34 = 0;
 15444  i35 = 0;
 15445  i36 = 0;
 15446  i37 = 0;
 15447  i38 = 0;
 15448  i39 = 0;
 15449  i40 = 0;
 15450  i41 = 0;
 15451  i42 = 0;
 15452  i43 = 0;
 15453  i44 = 0;
 15454  i45 = 0;
 15455  i46 = 0;
 15456  i47 = 0;
 15457  i48 = 0;
 15458  L1498 : while (1) {
 15459   i49 = i31;
 15460   while (1) {
 15461    if ((i49 | 0) <= 0) {
 15462     break L1498;
 15464    i50 = i49 - 1 | 0;
 15465    i51 = HEAP32[i33 + (i50 << 2) >> 2] | 0;
 15466    i52 = i51 + 8 | 0;
 15467    i53 = HEAP32[i52 >> 2] | 0;
 15468    if ((i53 | 0) == 0) {
 15469     i49 = i50;
 15470    } else {
 15471     break;
 15474   i54 = i51 + 88 | 0;
 15475   i55 = i51 + 92 | 0;
 15476   i56 = i51 + 96 | 0;
 15477   i57 = i53;
 15478   i58 = i28;
 15479   i59 = i29;
 15480   i60 = i30;
 15481   i61 = i50;
 15482   i62 = i32;
 15483   i63 = i33;
 15484   i64 = i16;
 15485   i65 = i34;
 15486   i66 = i35;
 15487   i67 = i36;
 15488   i68 = i37;
 15489   i69 = i38;
 15490   i70 = i39;
 15491   i71 = i40;
 15492   i72 = i41;
 15493   i73 = i42;
 15494   i74 = i43;
 15495   i75 = i44;
 15496   i76 = i45;
 15497   i77 = i46;
 15498   i78 = i47;
 15499   i79 = i48;
 15500   while (1) {
 15501    i80 = i57 + 12 | 0;
 15502    i81 = (HEAP32[i80 >> 2] | 0) + 104 | 0;
 15503    if ((HEAP32[i81 >> 2] | 0) == (i17 | 0)) {
 15504     i82 = i61;
 15505     i83 = i62;
 15506     i84 = i63;
 15507    } else {
 15508     HEAP32[i81 >> 2] = i17;
 15509     do {
 15510      if ((i61 | 0) == (i62 | 0)) {
 15511       i81 = (i62 | 0) == 0 ? 1 : i62 << 1;
 15512       if ((i62 | 0) >= (i81 | 0)) {
 15513        i85 = i62;
 15514        i86 = i63;
 15515        break;
 15517       if ((i81 | 0) == 0) {
 15518        i87 = 0;
 15519       } else {
 15520        i87 = __Z22btAlignedAllocInternalji(i81 << 2, 16) | 0;
 15522       if ((i62 | 0) > 0) {
 15523        i88 = 0;
 15524        do {
 15525         i89 = i87 + (i88 << 2) | 0;
 15526         if ((i89 | 0) != 0) {
 15527          HEAP32[i89 >> 2] = HEAP32[i63 + (i88 << 2) >> 2];
 15529         i88 = i88 + 1 | 0;
 15530        } while ((i88 | 0) < (i62 | 0));
 15532       if ((i63 | 0) == 0) {
 15533        i85 = i81;
 15534        i86 = i87;
 15535        break;
 15537       __Z21btAlignedFreeInternalPv(i63);
 15538       i85 = i81;
 15539       i86 = i87;
 15540      } else {
 15541       i85 = i62;
 15542       i86 = i63;
 15544     } while (0);
 15545     i88 = i86 + (i61 << 2) | 0;
 15546     if ((i88 | 0) != 0) {
 15547      HEAP32[i88 >> 2] = HEAP32[i80 >> 2];
 15549     i82 = i61 + 1 | 0;
 15550     i83 = i85;
 15551     i84 = i86;
 15553    if ((HEAP32[i57 + 20 >> 2] | 0) == (i17 | 0)) {
 15554     i90 = i58;
 15555     i91 = i59;
 15556     i92 = i60;
 15557     i93 = i64;
 15558     i94 = i65;
 15559     i95 = i66;
 15560     i96 = i67;
 15561     i97 = i68;
 15562     i98 = i69;
 15563     i99 = i70;
 15564     i100 = i71;
 15565     i101 = i72;
 15566     i102 = i73;
 15567     i103 = i74;
 15568     i104 = i75;
 15569     i105 = i76;
 15570     i106 = i77;
 15571     i107 = i78;
 15572     i108 = i79;
 15573    } else {
 15574     i88 = __ZN20btConvexHullInternal4PoolINS_4FaceEE9newObjectEv(i27) | 0;
 15575     i89 = HEAP32[i80 >> 2] | 0;
 15576     i109 = HEAP32[(HEAP32[(HEAP32[i57 + 8 >> 2] | 0) + 4 >> 2] | 0) + 12 >> 2] | 0;
 15577     HEAP32[i88 + 4 >> 2] = i89;
 15578     i110 = i88 + 12 | 0;
 15579     i111 = i89 + 88 | 0;
 15580     HEAP32[i110 >> 2] = HEAP32[i111 >> 2];
 15581     HEAP32[i110 + 4 >> 2] = HEAP32[i111 + 4 >> 2];
 15582     HEAP32[i110 + 8 >> 2] = HEAP32[i111 + 8 >> 2];
 15583     HEAP32[i110 + 12 >> 2] = HEAP32[i111 + 12 >> 2];
 15584     i111 = i89 + 88 | 0;
 15585     i110 = i89 + 92 | 0;
 15586     i112 = (HEAP32[i109 + 92 >> 2] | 0) - (HEAP32[i110 >> 2] | 0) | 0;
 15587     i113 = i89 + 96 | 0;
 15588     i114 = (HEAP32[i109 + 96 >> 2] | 0) - (HEAP32[i113 >> 2] | 0) | 0;
 15589     HEAP32[i88 + 28 >> 2] = (HEAP32[i109 + 88 >> 2] | 0) - (HEAP32[i111 >> 2] | 0);
 15590     HEAP32[i88 + 32 >> 2] = i112;
 15591     HEAP32[i88 + 36 >> 2] = i114;
 15592     HEAP32[i88 + 40 >> 2] = -1;
 15593     i114 = (HEAP32[i55 >> 2] | 0) - (HEAP32[i110 >> 2] | 0) | 0;
 15594     i110 = (HEAP32[i56 >> 2] | 0) - (HEAP32[i113 >> 2] | 0) | 0;
 15595     HEAP32[i88 + 44 >> 2] = (HEAP32[i54 >> 2] | 0) - (HEAP32[i111 >> 2] | 0);
 15596     HEAP32[i88 + 48 >> 2] = i114;
 15597     HEAP32[i88 + 52 >> 2] = i110;
 15598     HEAP32[i88 + 56 >> 2] = -1;
 15599     i110 = i89 + 16 | 0;
 15600     i114 = HEAP32[i110 >> 2] | 0;
 15601     if ((i114 | 0) == 0) {
 15602      HEAP32[i89 + 12 >> 2] = i88;
 15603     } else {
 15604      HEAP32[i114 + 8 >> 2] = i88;
 15606     HEAP32[i110 >> 2] = i88;
 15607     do {
 15608      if ((i58 | 0) == (i59 | 0)) {
 15609       i110 = (i59 | 0) == 0 ? 1 : i59 << 1;
 15610       if ((i59 | 0) >= (i110 | 0)) {
 15611        i115 = i59;
 15612        i116 = i60;
 15613        break;
 15615       if ((i110 | 0) == 0) {
 15616        i117 = 0;
 15617       } else {
 15618        i117 = __Z22btAlignedAllocInternalji(i110 << 2, 16) | 0;
 15620       if ((i59 | 0) > 0) {
 15621        i114 = 0;
 15622        do {
 15623         i89 = i117 + (i114 << 2) | 0;
 15624         if ((i89 | 0) != 0) {
 15625          HEAP32[i89 >> 2] = HEAP32[i60 + (i114 << 2) >> 2];
 15627         i114 = i114 + 1 | 0;
 15628        } while ((i114 | 0) < (i59 | 0));
 15630       if ((i60 | 0) == 0) {
 15631        i115 = i110;
 15632        i116 = i117;
 15633        break;
 15635       __Z21btAlignedFreeInternalPv(i60);
 15636       i115 = i110;
 15637       i116 = i117;
 15638      } else {
 15639       i115 = i59;
 15640       i116 = i60;
 15642     } while (0);
 15643     i80 = i116 + (i58 << 2) | 0;
 15644     if ((i80 | 0) == 0) {
 15645      i118 = 0;
 15646      i119 = 0;
 15647      i120 = i57;
 15648      i121 = i64;
 15649      i122 = i65;
 15650      i123 = i66;
 15651      i124 = i67;
 15652      i125 = i68;
 15653      i126 = i69;
 15654      i127 = i70;
 15655      i128 = i71;
 15656      i129 = i72;
 15657      i130 = i73;
 15658      i131 = i74;
 15659      i132 = i75;
 15660      i133 = i76;
 15661      i134 = i77;
 15662      i135 = i78;
 15663      i136 = i79;
 15664     } else {
 15665      HEAP32[i80 >> 2] = i88;
 15666      i118 = 0;
 15667      i119 = 0;
 15668      i120 = i57;
 15669      i121 = i64;
 15670      i122 = i65;
 15671      i123 = i66;
 15672      i124 = i67;
 15673      i125 = i68;
 15674      i126 = i69;
 15675      i127 = i70;
 15676      i128 = i71;
 15677      i129 = i72;
 15678      i130 = i73;
 15679      i131 = i74;
 15680      i132 = i75;
 15681      i133 = i76;
 15682      i134 = i77;
 15683      i135 = i78;
 15684      i136 = i79;
 15686     while (1) {
 15687      if ((i119 | 0) == 0 | (i118 | 0) == 0) {
 15688       i137 = i121;
 15689       i138 = i122;
 15690       i139 = i123;
 15691       i140 = i124;
 15692       i141 = i125;
 15693       i142 = i126;
 15694       i143 = i127;
 15695       i144 = i128;
 15696       i145 = i129;
 15697       i146 = i130;
 15698       i147 = i131;
 15699       i148 = i132;
 15700       i149 = i133;
 15701       i150 = i134;
 15702       i151 = i135;
 15703       i152 = i136;
 15704      } else {
 15705       i80 = HEAP32[i54 >> 2] | 0;
 15706       i114 = i80 - i13 | 0;
 15707       i81 = HEAP32[i55 >> 2] | 0;
 15708       i89 = i81 - i18 | 0;
 15709       i111 = HEAP32[i56 >> 2] | 0;
 15710       i113 = i111 - i19 | 0;
 15711       i112 = HEAP32[i119 + 88 >> 2] | 0;
 15712       i109 = i112 - i13 | 0;
 15713       i153 = HEAP32[i119 + 92 >> 2] | 0;
 15714       i154 = i153 - i18 | 0;
 15715       i155 = HEAP32[i119 + 96 >> 2] | 0;
 15716       i156 = i155 - i19 | 0;
 15717       i157 = HEAP32[i118 + 88 >> 2] | 0;
 15718       i158 = i157 - i13 | 0;
 15719       i159 = HEAP32[i118 + 92 >> 2] | 0;
 15720       i160 = i159 - i18 | 0;
 15721       i161 = HEAP32[i118 + 96 >> 2] | 0;
 15722       i162 = i161 - i19 | 0;
 15723       i163 = Math_imul(i162, i154) | 0;
 15724       i164 = i163 - (Math_imul(i160, i156) | 0) | 0;
 15725       i163 = Math_imul(i158, i156) | 0;
 15726       i156 = i163 - (Math_imul(i162, i109) | 0) | 0;
 15727       i162 = Math_imul(i160, i109) | 0;
 15728       i109 = i162 - (Math_imul(i158, i154) | 0) | 0;
 15729       i154 = ___muldi3(i164, (i164 | 0) < 0 ? -1 : 0, i114, (i114 | 0) < 0 ? -1 : 0) | 0;
 15730       i114 = tempRet0;
 15731       i164 = ___muldi3(i156, (i156 | 0) < 0 ? -1 : 0, i89, (i89 | 0) < 0 ? -1 : 0) | 0;
 15732       i89 = tempRet0;
 15733       i156 = ___muldi3(i109, (i109 | 0) < 0 ? -1 : 0, i113, (i113 | 0) < 0 ? -1 : 0) | 0;
 15734       i113 = _i64Add(i154, i114, i156, tempRet0) | 0;
 15735       i156 = _i64Add(i113, tempRet0, i164, i89) | 0;
 15736       i89 = tempRet0;
 15737       i164 = i80 + i13 + i112 + i157 | 0;
 15738       i157 = i81 + i18 + i153 + i159 | 0;
 15739       i159 = i111 + i19 + i155 + i161 | 0;
 15740       i161 = ___muldi3(i156, i89, i164, (i164 | 0) < 0 ? -1 : 0) | 0;
 15741       i164 = tempRet0;
 15742       i155 = _llvm_uadd_with_overflow_i64(i122 | 0, i121 | 0, i161 | 0, i164 | 0) | 0;
 15743       i161 = i155;
 15744       i155 = tempRet0;
 15745       if (tempRet1) {
 15746        i111 = _i64Add(i124, i123, 1, 0) | 0;
 15747        i153 = tempRet0;
 15748        HEAP32[i20 >> 2] = i111;
 15749        HEAP32[i20 + 4 >> 2] = i153;
 15750        i165 = i153;
 15751        i166 = i111;
 15752       } else {
 15753        i165 = i123;
 15754        i166 = i124;
 15756       HEAP32[i14 >> 2] = i161;
 15757       HEAP32[i14 + 4 >> 2] = i155;
 15758       i111 = _i64Add(i166, i165, i164 >> 31 | ((i164 | 0) < 0 ? -1 : 0) << 1, ((i164 | 0) < 0 ? -1 : 0) >> 31 | ((i164 | 0) < 0 ? -1 : 0) << 1) | 0;
 15759       i164 = tempRet0;
 15760       HEAP32[i20 >> 2] = i111;
 15761       HEAP32[i20 + 4 >> 2] = i164;
 15762       i153 = ___muldi3(i156, i89, i157, (i157 | 0) < 0 ? -1 : 0) | 0;
 15763       i157 = tempRet0;
 15764       i81 = _llvm_uadd_with_overflow_i64(i126 | 0, i125 | 0, i153 | 0, i157 | 0) | 0;
 15765       i153 = i81;
 15766       i81 = tempRet0;
 15767       if (tempRet1) {
 15768        i112 = _i64Add(i128, i127, 1, 0) | 0;
 15769        i80 = tempRet0;
 15770        HEAP32[i22 >> 2] = i112;
 15771        HEAP32[i22 + 4 >> 2] = i80;
 15772        i167 = i80;
 15773        i168 = i112;
 15774       } else {
 15775        i167 = i127;
 15776        i168 = i128;
 15778       HEAP32[i21 >> 2] = i153;
 15779       HEAP32[i21 + 4 >> 2] = i81;
 15780       i112 = _i64Add(i168, i167, i157 >> 31 | ((i157 | 0) < 0 ? -1 : 0) << 1, ((i157 | 0) < 0 ? -1 : 0) >> 31 | ((i157 | 0) < 0 ? -1 : 0) << 1) | 0;
 15781       i157 = tempRet0;
 15782       HEAP32[i22 >> 2] = i112;
 15783       HEAP32[i22 + 4 >> 2] = i157;
 15784       i80 = ___muldi3(i156, i89, i159, (i159 | 0) < 0 ? -1 : 0) | 0;
 15785       i159 = tempRet0;
 15786       i113 = _llvm_uadd_with_overflow_i64(i130 | 0, i129 | 0, i80 | 0, i159 | 0) | 0;
 15787       i80 = i113;
 15788       i113 = tempRet0;
 15789       if (tempRet1) {
 15790        i114 = _i64Add(i132, i131, 1, 0) | 0;
 15791        i154 = tempRet0;
 15792        HEAP32[i24 >> 2] = i114;
 15793        HEAP32[i24 + 4 >> 2] = i154;
 15794        i169 = i154;
 15795        i170 = i114;
 15796       } else {
 15797        i169 = i131;
 15798        i170 = i132;
 15800       HEAP32[i23 >> 2] = i80;
 15801       HEAP32[i23 + 4 >> 2] = i113;
 15802       i114 = _i64Add(i170, i169, i159 >> 31 | ((i159 | 0) < 0 ? -1 : 0) << 1, ((i159 | 0) < 0 ? -1 : 0) >> 31 | ((i159 | 0) < 0 ? -1 : 0) << 1) | 0;
 15803       i159 = tempRet0;
 15804       HEAP32[i24 >> 2] = i114;
 15805       HEAP32[i24 + 4 >> 2] = i159;
 15806       i154 = _llvm_uadd_with_overflow_i64(i134 | 0, i133 | 0, i156 | 0, i89 | 0) | 0;
 15807       i156 = i154;
 15808       i154 = tempRet0;
 15809       if (tempRet1) {
 15810        i109 = _i64Add(i136, i135, 1, 0) | 0;
 15811        i158 = tempRet0;
 15812        HEAP32[i26 >> 2] = i109;
 15813        HEAP32[i26 + 4 >> 2] = i158;
 15814        i171 = i158;
 15815        i172 = i109;
 15816       } else {
 15817        i171 = i135;
 15818        i172 = i136;
 15820       HEAP32[i25 >> 2] = i156;
 15821       HEAP32[i25 + 4 >> 2] = i154;
 15822       i109 = _i64Add(i172, i171, i89 >> 31 | ((i89 | 0) < 0 ? -1 : 0) << 1, ((i89 | 0) < 0 ? -1 : 0) >> 31 | ((i89 | 0) < 0 ? -1 : 0) << 1) | 0;
 15823       i89 = tempRet0;
 15824       HEAP32[i26 >> 2] = i109;
 15825       HEAP32[i26 + 4 >> 2] = i89;
 15826       i137 = i155;
 15827       i138 = i161;
 15828       i139 = i164;
 15829       i140 = i111;
 15830       i141 = i81;
 15831       i142 = i153;
 15832       i143 = i157;
 15833       i144 = i112;
 15834       i145 = i113;
 15835       i146 = i80;
 15836       i147 = i159;
 15837       i148 = i114;
 15838       i149 = i154;
 15839       i150 = i156;
 15840       i151 = i89;
 15841       i152 = i109;
 15843      HEAP32[i120 + 20 >> 2] = i17;
 15844      HEAP32[i120 + 16 >> 2] = i88;
 15845      i109 = HEAP32[(HEAP32[i120 + 8 >> 2] | 0) + 4 >> 2] | 0;
 15846      if ((i109 | 0) == (i57 | 0)) {
 15847       break;
 15848      } else {
 15849       i119 = i118;
 15850       i118 = HEAP32[i120 + 12 >> 2] | 0;
 15851       i120 = i109;
 15852       i121 = i137;
 15853       i122 = i138;
 15854       i123 = i139;
 15855       i124 = i140;
 15856       i125 = i141;
 15857       i126 = i142;
 15858       i127 = i143;
 15859       i128 = i144;
 15860       i129 = i145;
 15861       i130 = i146;
 15862       i131 = i147;
 15863       i132 = i148;
 15864       i133 = i149;
 15865       i134 = i150;
 15866       i135 = i151;
 15867       i136 = i152;
 15870     i90 = i58 + 1 | 0;
 15871     i91 = i115;
 15872     i92 = i116;
 15873     i93 = i137;
 15874     i94 = i138;
 15875     i95 = i139;
 15876     i96 = i140;
 15877     i97 = i141;
 15878     i98 = i142;
 15879     i99 = i143;
 15880     i100 = i144;
 15881     i101 = i145;
 15882     i102 = i146;
 15883     i103 = i147;
 15884     i104 = i148;
 15885     i105 = i149;
 15886     i106 = i150;
 15887     i107 = i151;
 15888     i108 = i152;
 15890    i88 = HEAP32[i57 >> 2] | 0;
 15891    if ((i88 | 0) == (HEAP32[i52 >> 2] | 0)) {
 15892     i28 = i90;
 15893     i29 = i91;
 15894     i30 = i92;
 15895     i31 = i82;
 15896     i32 = i83;
 15897     i33 = i84;
 15898     i16 = i93;
 15899     i34 = i94;
 15900     i35 = i95;
 15901     i36 = i96;
 15902     i37 = i97;
 15903     i38 = i98;
 15904     i39 = i99;
 15905     i40 = i100;
 15906     i41 = i101;
 15907     i42 = i102;
 15908     i43 = i103;
 15909     i44 = i104;
 15910     i45 = i105;
 15911     i46 = i106;
 15912     i47 = i107;
 15913     i48 = i108;
 15914     continue L1498;
 15915    } else {
 15916     i57 = i88;
 15917     i58 = i90;
 15918     i59 = i91;
 15919     i60 = i92;
 15920     i61 = i82;
 15921     i62 = i83;
 15922     i63 = i84;
 15923     i64 = i93;
 15924     i65 = i94;
 15925     i66 = i95;
 15926     i67 = i96;
 15927     i68 = i97;
 15928     i69 = i98;
 15929     i70 = i99;
 15930     i71 = i100;
 15931     i72 = i101;
 15932     i73 = i102;
 15933     i74 = i103;
 15934     i75 = i104;
 15935     i76 = i105;
 15936     i77 = i106;
 15937     i78 = i107;
 15938     i79 = i108;
 15942  i108 = 0;
 15943  L1573 : do {
 15944   if ((i47 | 0) < (i108 | 0) | (i47 | 0) == (i108 | 0) & i48 >>> 0 < 0 >>> 0) {
 15945    d173 = 0.0;
 15946   } else {
 15947    if ((i46 | i48 | 0) == 0 & (i45 | i47 | 0) == 0) {
 15948     d173 = 0.0;
 15949     break;
 15951    d174 = +__ZNK20btConvexHullInternal6Int1288toScalarEv(i6);
 15952    i107 = i1 + 108 | 0;
 15953    i106 = i10 | 0;
 15954    HEAPF32[i10 + (HEAP32[i107 >> 2] << 2) >> 2] = d174;
 15955    d174 = +__ZNK20btConvexHullInternal6Int1288toScalarEv(i7);
 15956    i105 = i1 + 112 | 0;
 15957    HEAPF32[i10 + (HEAP32[i105 >> 2] << 2) >> 2] = d174;
 15958    d174 = +__ZNK20btConvexHullInternal6Int1288toScalarEv(i8);
 15959    i104 = i1 + 104 | 0;
 15960    HEAPF32[i10 + (HEAP32[i104 >> 2] << 2) >> 2] = d174;
 15961    d174 = 1.0 / (+__ZNK20btConvexHullInternal6Int1288toScalarEv(i9) * 4.0);
 15962    i103 = i10 + 4 | 0;
 15963    d175 = d174 * +HEAPF32[i103 >> 2];
 15964    i102 = i10 + 8 | 0;
 15965    d176 = d174 * +HEAPF32[i102 >> 2];
 15966    i101 = i1 | 0;
 15967    d177 = d174 * +HEAPF32[i106 >> 2] * +HEAPF32[i101 >> 2];
 15968    HEAPF32[i106 >> 2] = d177;
 15969    i106 = i1 + 4 | 0;
 15970    d174 = d175 * +HEAPF32[i106 >> 2];
 15971    HEAPF32[i103 >> 2] = d174;
 15972    i103 = i1 + 8 | 0;
 15973    d175 = d176 * +HEAPF32[i103 >> 2];
 15974    HEAPF32[i102 >> 2] = d175;
 15975    if (d3 > 0.0) {
 15976     if ((i28 | 0) > 0) {
 15977      i102 = i5 | 0;
 15978      i100 = i5 + 4 | 0;
 15979      i99 = i5 + 8 | 0;
 15980      i98 = i11 | 0;
 15981      i97 = i11 + 4 | 0;
 15982      i96 = i11 + 8 | 0;
 15983      d176 = 3.4028234663852886e+38;
 15984      i95 = 0;
 15985      do {
 15986       i94 = i30 + (i95 << 2) | 0;
 15987       __ZN20btConvexHullInternal11getBtNormalEPNS_4FaceE(i11, i1, HEAP32[i94 >> 2] | 0);
 15988       i93 = HEAP32[i94 >> 2] | 0;
 15989       HEAPF32[i5 + (HEAP32[i107 >> 2] << 2) >> 2] = +(HEAP32[i93 + 12 >> 2] | 0);
 15990       HEAPF32[i5 + (HEAP32[i105 >> 2] << 2) >> 2] = +(HEAP32[i93 + 16 >> 2] | 0);
 15991       HEAPF32[i5 + (HEAP32[i104 >> 2] << 2) >> 2] = +(HEAP32[i93 + 20 >> 2] | 0);
 15992       d178 = (+HEAPF32[i102 >> 2] * +HEAPF32[i101 >> 2] - d177) * +HEAPF32[i98 >> 2] + (+HEAPF32[i100 >> 2] * +HEAPF32[i106 >> 2] - d174) * +HEAPF32[i97 >> 2] + (+HEAPF32[i99 >> 2] * +HEAPF32[i103 >> 2] - d175) * +HEAPF32[i96 >> 2];
 15993       d176 = d178 < d176 ? d178 : d176;
 15994       i95 = i95 + 1 | 0;
 15995      } while ((i95 | 0) < (i28 | 0));
 15996      if (d176 > 0.0) {
 15997       d179 = d176;
 15998      } else {
 15999       d173 = 0.0;
 16000       break;
 16002     } else {
 16003      d179 = 3.4028234663852886e+38;
 16005     d175 = d179 * d3;
 16006     d180 = d175 > d2 ? d2 : d175;
 16007    } else {
 16008     d180 = d2;
 16010    if ((i28 | 0) > 0) {
 16011     i95 = 243703;
 16012     i96 = 0;
 16013     do {
 16014      i103 = i30 + (i96 << 2) | 0;
 16015      i99 = i30 + (((i95 >>> 0) % (i28 >>> 0) | 0) << 2) | 0;
 16016      i97 = HEAP32[i103 >> 2] | 0;
 16017      HEAP32[i103 >> 2] = HEAP32[i99 >> 2];
 16018      HEAP32[i99 >> 2] = i97;
 16019      i96 = i96 + 1 | 0;
 16020      i95 = (Math_imul(i95, 1664525) | 0) + 1013904223 | 0;
 16021     } while ((i96 | 0) < (i28 | 0));
 16023    i96 = i12 + 16 | 0;
 16024    i95 = i12 + 12 | 0;
 16025    i97 = i12 + 4 | 0;
 16026    i99 = i12 + 8 | 0;
 16027    i103 = 0;
 16028    while (1) {
 16029     if ((i103 | 0) >= (i28 | 0)) {
 16030      d173 = d180;
 16031      break L1573;
 16033     i106 = HEAP32[i30 + (i103 << 2) >> 2] | 0;
 16034     HEAP8[i96] = 1;
 16035     HEAP32[i95 >> 2] = 0;
 16036     HEAP32[i99 >> 2] = 0;
 16037     HEAP32[i97 >> 2] = i49;
 16038     i100 = __ZN20btConvexHullInternal9shiftFaceEPNS_4FaceEf20btAlignedObjectArrayIPNS_6VertexEE(i1, i106, d180, i12) | 0;
 16039     i106 = HEAP32[i95 >> 2] | 0;
 16040     if ((i106 | 0) != 0) {
 16041      if ((HEAP8[i96] | 0) != 0) {
 16042       __Z21btAlignedFreeInternalPv(i106);
 16044      HEAP32[i95 >> 2] = 0;
 16046     HEAP8[i96] = 1;
 16047     HEAP32[i95 >> 2] = 0;
 16048     HEAP32[i97 >> 2] = 0;
 16049     HEAP32[i99 >> 2] = 0;
 16050     if (i100) {
 16051      i103 = i103 + 1 | 0;
 16052     } else {
 16053      break;
 16056    d173 = -0.0 - d180;
 16058  } while (0);
 16059  if ((i30 | 0) != 0) {
 16060   __Z21btAlignedFreeInternalPv(i30);
 16062  if ((i33 | 0) == 0) {
 16063   d15 = d173;
 16064   STACKTOP = i4;
 16065   return +d15;
 16067  __Z21btAlignedFreeInternalPv(i33);
 16068  d15 = d173;
 16069  STACKTOP = i4;
 16070  return +d15;
 16072 function __ZN20btConvexHullComputer7computeEPKvbiiff(i1, i2, i3, i4, i5, d6, d7) {
 16073  i1 = i1 | 0;
 16074  i2 = i2 | 0;
 16075  i3 = i3 | 0;
 16076  i4 = i4 | 0;
 16077  i5 = i5 | 0;
 16078  d6 = +d6;
 16079  d7 = +d7;
 16080  var i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, d19 = 0.0, d20 = 0.0, d21 = 0.0, i22 = 0, d23 = 0.0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0, i68 = 0, i69 = 0, i70 = 0, i71 = 0, i72 = 0, i73 = 0, i74 = 0, i75 = 0, i76 = 0, i77 = 0, i78 = 0, i79 = 0, i80 = 0, i81 = 0, i82 = 0, i83 = 0, i84 = 0, i85 = 0, i86 = 0, i87 = 0;
 16081  i8 = STACKTOP;
 16082  STACKTOP = STACKTOP + 208 | 0;
 16083  i9 = i8 | 0;
 16084  i10 = i8 + 128 | 0;
 16085  i11 = i8 + 144 | 0;
 16086  i12 = i8 + 160 | 0;
 16087  i13 = i8 + 176 | 0;
 16088  i14 = i8 + 192 | 0;
 16089  if ((i5 | 0) < 1) {
 16090   i15 = i1 + 4 | 0;
 16091   i16 = i1 + 12 | 0;
 16092   i17 = HEAP32[i16 >> 2] | 0;
 16093   i18 = i1 + 16 | 0;
 16094   if ((i17 | 0) != 0) {
 16095    if ((HEAP8[i18] | 0) != 0) {
 16096     __Z21btAlignedFreeInternalPv(i17);
 16098    HEAP32[i16 >> 2] = 0;
 16100   HEAP8[i18] = 1;
 16101   HEAP32[i16 >> 2] = 0;
 16102   HEAP32[i15 >> 2] = 0;
 16103   HEAP32[i1 + 8 >> 2] = 0;
 16104   i15 = i1 + 24 | 0;
 16105   i16 = i1 + 32 | 0;
 16106   i18 = HEAP32[i16 >> 2] | 0;
 16107   i17 = i1 + 36 | 0;
 16108   if ((i18 | 0) != 0) {
 16109    if ((HEAP8[i17] | 0) != 0) {
 16110     __Z21btAlignedFreeInternalPv(i18);
 16112    HEAP32[i16 >> 2] = 0;
 16114   HEAP8[i17] = 1;
 16115   HEAP32[i16 >> 2] = 0;
 16116   HEAP32[i15 >> 2] = 0;
 16117   HEAP32[i1 + 28 >> 2] = 0;
 16118   i15 = i1 + 44 | 0;
 16119   i16 = i1 + 52 | 0;
 16120   i17 = HEAP32[i16 >> 2] | 0;
 16121   i18 = i1 + 56 | 0;
 16122   if ((i17 | 0) != 0) {
 16123    if ((HEAP8[i18] | 0) != 0) {
 16124     __Z21btAlignedFreeInternalPv(i17);
 16126    HEAP32[i16 >> 2] = 0;
 16128   HEAP8[i18] = 1;
 16129   HEAP32[i16 >> 2] = 0;
 16130   HEAP32[i15 >> 2] = 0;
 16131   HEAP32[i1 + 48 >> 2] = 0;
 16132   d19 = 0.0;
 16133   STACKTOP = i8;
 16134   return +d19;
 16136  HEAP32[i9 + 32 >> 2] = 0;
 16137  HEAP32[i9 + 36 >> 2] = 0;
 16138  HEAP32[i9 + 40 >> 2] = 0;
 16139  HEAP32[i9 + 44 >> 2] = 256;
 16140  HEAP32[i9 + 48 >> 2] = 0;
 16141  HEAP32[i9 + 52 >> 2] = 0;
 16142  HEAP32[i9 + 56 >> 2] = 0;
 16143  HEAP32[i9 + 60 >> 2] = 256;
 16144  HEAP32[i9 + 64 >> 2] = 0;
 16145  HEAP32[i9 + 68 >> 2] = 0;
 16146  HEAP32[i9 + 72 >> 2] = 0;
 16147  HEAP32[i9 + 76 >> 2] = 256;
 16148  HEAP8[i9 + 96 | 0] = 1;
 16149  HEAP32[i9 + 92 >> 2] = 0;
 16150  HEAP32[i9 + 84 >> 2] = 0;
 16151  HEAP32[i9 + 88 >> 2] = 0;
 16152  __ZN20btConvexHullInternal7computeEPKvbii(i9, i2, i3, i4, i5);
 16153  do {
 16154   if (d6 > 0.0) {
 16155    d20 = +__ZN20btConvexHullInternal6shrinkEff(i9, d6, d7);
 16156    if (d20 >= 0.0) {
 16157     d21 = d20;
 16158     i22 = 1689;
 16159     break;
 16161    i5 = i1 + 4 | 0;
 16162    i4 = i1 + 12 | 0;
 16163    i3 = HEAP32[i4 >> 2] | 0;
 16164    i2 = i1 + 16 | 0;
 16165    if ((i3 | 0) != 0) {
 16166     if ((HEAP8[i2] | 0) != 0) {
 16167      __Z21btAlignedFreeInternalPv(i3);
 16169     HEAP32[i4 >> 2] = 0;
 16171    HEAP8[i2] = 1;
 16172    HEAP32[i4 >> 2] = 0;
 16173    HEAP32[i5 >> 2] = 0;
 16174    HEAP32[i1 + 8 >> 2] = 0;
 16175    i5 = i1 + 24 | 0;
 16176    i4 = i1 + 32 | 0;
 16177    i2 = HEAP32[i4 >> 2] | 0;
 16178    i3 = i1 + 36 | 0;
 16179    if ((i2 | 0) != 0) {
 16180     if ((HEAP8[i3] | 0) != 0) {
 16181      __Z21btAlignedFreeInternalPv(i2);
 16183     HEAP32[i4 >> 2] = 0;
 16185    HEAP8[i3] = 1;
 16186    HEAP32[i4 >> 2] = 0;
 16187    HEAP32[i5 >> 2] = 0;
 16188    HEAP32[i1 + 28 >> 2] = 0;
 16189    i5 = i1 + 44 | 0;
 16190    i4 = i1 + 52 | 0;
 16191    i3 = HEAP32[i4 >> 2] | 0;
 16192    i2 = i1 + 56 | 0;
 16193    if ((i3 | 0) != 0) {
 16194     if ((HEAP8[i2] | 0) != 0) {
 16195      __Z21btAlignedFreeInternalPv(i3);
 16197     HEAP32[i4 >> 2] = 0;
 16199    HEAP8[i2] = 1;
 16200    HEAP32[i4 >> 2] = 0;
 16201    HEAP32[i5 >> 2] = 0;
 16202    HEAP32[i1 + 48 >> 2] = 0;
 16203    d23 = d20;
 16204   } else {
 16205    d21 = 0.0;
 16206    i22 = 1689;
 16208  } while (0);
 16209  do {
 16210   if ((i22 | 0) == 1689) {
 16211    i5 = i1 + 4 | 0;
 16212    i4 = HEAP32[i5 >> 2] | 0;
 16213    if ((i4 | 0) < 0) {
 16214     i2 = i1 + 8 | 0;
 16215     i3 = i1 + 12 | 0;
 16216     if ((HEAP32[i2 >> 2] | 0) < 0) {
 16217      i15 = HEAP32[i3 >> 2] | 0;
 16218      i16 = i1 + 16 | 0;
 16219      if ((i15 | 0) != 0) {
 16220       if ((HEAP8[i16] | 0) != 0) {
 16221        __Z21btAlignedFreeInternalPv(i15);
 16223       HEAP32[i3 >> 2] = 0;
 16225      HEAP8[i16] = 1;
 16226      HEAP32[i3 >> 2] = 0;
 16227      HEAP32[i2 >> 2] = 0;
 16229     i2 = i10;
 16230     i16 = i4;
 16231     do {
 16232      i4 = (HEAP32[i3 >> 2] | 0) + (i16 << 4) | 0;
 16233      if ((i4 | 0) != 0) {
 16234       i15 = i4;
 16235       HEAP32[i15 >> 2] = HEAP32[i2 >> 2];
 16236       HEAP32[i15 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
 16237       HEAP32[i15 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
 16238       HEAP32[i15 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
 16240      i16 = i16 + 1 | 0;
 16241     } while ((i16 | 0) < 0);
 16243    HEAP32[i5 >> 2] = 0;
 16244    i16 = i11;
 16245    _memset(i16 | 0, 0, 12);
 16246    i2 = i1 + 24 | 0;
 16247    i3 = HEAP32[i2 >> 2] | 0;
 16248    if ((i3 | 0) < 0) {
 16249     i15 = i1 + 28 | 0;
 16250     i4 = i1 + 32 | 0;
 16251     if ((HEAP32[i15 >> 2] | 0) < 0) {
 16252      i18 = HEAP32[i4 >> 2] | 0;
 16253      i17 = i1 + 36 | 0;
 16254      if ((i18 | 0) != 0) {
 16255       if ((HEAP8[i17] | 0) != 0) {
 16256        __Z21btAlignedFreeInternalPv(i18);
 16258       HEAP32[i4 >> 2] = 0;
 16260      HEAP8[i17] = 1;
 16261      HEAP32[i4 >> 2] = 0;
 16262      HEAP32[i15 >> 2] = 0;
 16263      i24 = i3;
 16264     } else {
 16265      i24 = i3;
 16267     do {
 16268      i3 = (HEAP32[i4 >> 2] | 0) + (i24 * 12 | 0) | 0;
 16269      if ((i3 | 0) != 0) {
 16270       i15 = i3;
 16271       HEAP32[i15 >> 2] = HEAP32[i16 >> 2];
 16272       HEAP32[i15 + 4 >> 2] = HEAP32[i16 + 4 >> 2];
 16273       HEAP32[i15 + 8 >> 2] = HEAP32[i16 + 8 >> 2];
 16275      i24 = i24 + 1 | 0;
 16276     } while ((i24 | 0) < 0);
 16278    HEAP32[i2 >> 2] = 0;
 16279    i16 = i1 + 44 | 0;
 16280    i4 = HEAP32[i16 >> 2] | 0;
 16281    if ((i4 | 0) < 0) {
 16282     i15 = i1 + 48 | 0;
 16283     i3 = i1 + 52 | 0;
 16284     i17 = HEAP32[i3 >> 2] | 0;
 16285     if ((HEAP32[i15 >> 2] | 0) < 0) {
 16286      i18 = i1 + 56 | 0;
 16287      if ((i17 | 0) != 0) {
 16288       if ((HEAP8[i18] | 0) != 0) {
 16289        __Z21btAlignedFreeInternalPv(i17);
 16291       HEAP32[i3 >> 2] = 0;
 16293      HEAP8[i18] = 1;
 16294      HEAP32[i3 >> 2] = 0;
 16295      HEAP32[i15 >> 2] = 0;
 16296      i25 = 0;
 16297     } else {
 16298      i25 = i17;
 16300     i17 = i4;
 16301     do {
 16302      i4 = i25 + (i17 << 2) | 0;
 16303      if ((i4 | 0) != 0) {
 16304       HEAP32[i4 >> 2] = 0;
 16306      i17 = i17 + 1 | 0;
 16307     } while ((i17 | 0) < 0);
 16309    HEAP32[i16 >> 2] = 0;
 16310    i17 = HEAP32[i9 + 124 >> 2] | 0;
 16311    i4 = i17 + 104 | 0;
 16312    if ((HEAP32[i4 >> 2] | 0) >= 0) {
 16313     d23 = d21;
 16314     break;
 16316    HEAP32[i4 >> 2] = 0;
 16317    i4 = __Z22btAlignedAllocInternalji(4, 16) | 0;
 16318    i15 = i4;
 16319    if ((i4 | 0) != 0) {
 16320     HEAP32[i15 >> 2] = i17;
 16322    i17 = i1 + 8 | 0;
 16323    i4 = i1 + 12 | 0;
 16324    i3 = i1 + 16 | 0;
 16325    i18 = i13;
 16326    i26 = i1 + 28 | 0;
 16327    i27 = i1 + 32 | 0;
 16328    i28 = i1 + 36 | 0;
 16329    i29 = i14;
 16330    i30 = i12;
 16331    i31 = i15;
 16332    i15 = 1;
 16333    i32 = 1;
 16334    i33 = 0;
 16335    while (1) {
 16336     i34 = HEAP32[i31 + (i33 << 2) >> 2] | 0;
 16337     __ZN20btConvexHullInternal14getCoordinatesEPKNS_6VertexE(i12, i9, i34);
 16338     i35 = HEAP32[i5 >> 2] | 0;
 16339     do {
 16340      if ((i35 | 0) == (HEAP32[i17 >> 2] | 0)) {
 16341       i36 = (i35 | 0) == 0 ? 1 : i35 << 1;
 16342       if ((i35 | 0) >= (i36 | 0)) {
 16343        i37 = i35;
 16344        break;
 16346       if ((i36 | 0) == 0) {
 16347        i38 = 0;
 16348        i39 = i35;
 16349       } else {
 16350        i40 = __Z22btAlignedAllocInternalji(i36 << 4, 16) | 0;
 16351        i38 = i40;
 16352        i39 = HEAP32[i5 >> 2] | 0;
 16354       if ((i39 | 0) > 0) {
 16355        i40 = 0;
 16356        do {
 16357         i41 = i38 + (i40 << 4) | 0;
 16358         if ((i41 | 0) != 0) {
 16359          i42 = i41;
 16360          i41 = (HEAP32[i4 >> 2] | 0) + (i40 << 4) | 0;
 16361          HEAP32[i42 >> 2] = HEAP32[i41 >> 2];
 16362          HEAP32[i42 + 4 >> 2] = HEAP32[i41 + 4 >> 2];
 16363          HEAP32[i42 + 8 >> 2] = HEAP32[i41 + 8 >> 2];
 16364          HEAP32[i42 + 12 >> 2] = HEAP32[i41 + 12 >> 2];
 16366         i40 = i40 + 1 | 0;
 16367        } while ((i40 | 0) < (i39 | 0));
 16369       i40 = HEAP32[i4 >> 2] | 0;
 16370       if ((i40 | 0) != 0) {
 16371        if ((HEAP8[i3] | 0) != 0) {
 16372         __Z21btAlignedFreeInternalPv(i40);
 16374        HEAP32[i4 >> 2] = 0;
 16376       HEAP8[i3] = 1;
 16377       HEAP32[i4 >> 2] = i38;
 16378       HEAP32[i17 >> 2] = i36;
 16379       i37 = HEAP32[i5 >> 2] | 0;
 16380      } else {
 16381       i37 = i35;
 16383     } while (0);
 16384     i35 = (HEAP32[i4 >> 2] | 0) + (i37 << 4) | 0;
 16385     if ((i35 | 0) == 0) {
 16386      i43 = i37;
 16387     } else {
 16388      i40 = i35;
 16389      HEAP32[i40 >> 2] = HEAP32[i30 >> 2];
 16390      HEAP32[i40 + 4 >> 2] = HEAP32[i30 + 4 >> 2];
 16391      HEAP32[i40 + 8 >> 2] = HEAP32[i30 + 8 >> 2];
 16392      HEAP32[i40 + 12 >> 2] = HEAP32[i30 + 12 >> 2];
 16393      i43 = HEAP32[i5 >> 2] | 0;
 16395     HEAP32[i5 >> 2] = i43 + 1;
 16396     i40 = HEAP32[i34 + 8 >> 2] | 0;
 16397     if ((i40 | 0) == 0) {
 16398      i44 = i32;
 16399      i45 = i15;
 16400      i46 = i31;
 16401     } else {
 16402      i35 = i40;
 16403      i41 = -1;
 16404      i42 = -1;
 16405      i47 = i32;
 16406      i48 = i15;
 16407      i49 = i31;
 16408      while (1) {
 16409       i50 = i35 + 20 | 0;
 16410       i51 = HEAP32[i50 >> 2] | 0;
 16411       if ((i51 | 0) < 0) {
 16412        i52 = HEAP32[i2 >> 2] | 0;
 16413        _memset(i18 | 0, 0, 12);
 16414        i53 = HEAP32[i26 >> 2] | 0;
 16415        do {
 16416         if ((i52 | 0) == (i53 | 0)) {
 16417          i54 = (i52 | 0) == 0 ? 1 : i52 << 1;
 16418          if ((i52 | 0) >= (i54 | 0)) {
 16419           i55 = i52;
 16420           i56 = i52;
 16421           break;
 16423          if ((i54 | 0) == 0) {
 16424           i57 = 0;
 16425           i58 = i52;
 16426          } else {
 16427           i59 = __Z22btAlignedAllocInternalji(i54 * 12 | 0, 16) | 0;
 16428           i57 = i59;
 16429           i58 = HEAP32[i2 >> 2] | 0;
 16431          if ((i58 | 0) > 0) {
 16432           i59 = 0;
 16433           do {
 16434            i60 = i57 + (i59 * 12 | 0) | 0;
 16435            if ((i60 | 0) != 0) {
 16436             i61 = i60;
 16437             i60 = (HEAP32[i27 >> 2] | 0) + (i59 * 12 | 0) | 0;
 16438             HEAP32[i61 >> 2] = HEAP32[i60 >> 2];
 16439             HEAP32[i61 + 4 >> 2] = HEAP32[i60 + 4 >> 2];
 16440             HEAP32[i61 + 8 >> 2] = HEAP32[i60 + 8 >> 2];
 16442            i59 = i59 + 1 | 0;
 16443           } while ((i59 | 0) < (i58 | 0));
 16445          i59 = HEAP32[i27 >> 2] | 0;
 16446          if ((i59 | 0) != 0) {
 16447           if ((HEAP8[i28] | 0) != 0) {
 16448            __Z21btAlignedFreeInternalPv(i59);
 16450           HEAP32[i27 >> 2] = 0;
 16452          HEAP8[i28] = 1;
 16453          HEAP32[i27 >> 2] = i57;
 16454          HEAP32[i26 >> 2] = i54;
 16455          i55 = HEAP32[i2 >> 2] | 0;
 16456          i56 = i54;
 16457         } else {
 16458          i55 = i52;
 16459          i56 = i53;
 16461        } while (0);
 16462        i53 = (HEAP32[i27 >> 2] | 0) + (i55 * 12 | 0) | 0;
 16463        if ((i53 | 0) == 0) {
 16464         i62 = i55;
 16465         i63 = i56;
 16466        } else {
 16467         i36 = i53;
 16468         HEAP32[i36 >> 2] = HEAP32[i18 >> 2];
 16469         HEAP32[i36 + 4 >> 2] = HEAP32[i18 + 4 >> 2];
 16470         HEAP32[i36 + 8 >> 2] = HEAP32[i18 + 8 >> 2];
 16471         i62 = HEAP32[i2 >> 2] | 0;
 16472         i63 = HEAP32[i26 >> 2] | 0;
 16474        i36 = i62 + 1 | 0;
 16475        HEAP32[i2 >> 2] = i36;
 16476        _memset(i29 | 0, 0, 12);
 16477        do {
 16478         if ((i36 | 0) == (i63 | 0)) {
 16479          i53 = (i63 | 0) == 0 ? 1 : i63 << 1;
 16480          if ((i63 | 0) >= (i53 | 0)) {
 16481           i64 = i63;
 16482           break;
 16484          if ((i53 | 0) == 0) {
 16485           i65 = 0;
 16486           i66 = i63;
 16487          } else {
 16488           i59 = __Z22btAlignedAllocInternalji(i53 * 12 | 0, 16) | 0;
 16489           i65 = i59;
 16490           i66 = HEAP32[i2 >> 2] | 0;
 16492          if ((i66 | 0) > 0) {
 16493           i59 = 0;
 16494           do {
 16495            i60 = i65 + (i59 * 12 | 0) | 0;
 16496            if ((i60 | 0) != 0) {
 16497             i61 = i60;
 16498             i60 = (HEAP32[i27 >> 2] | 0) + (i59 * 12 | 0) | 0;
 16499             HEAP32[i61 >> 2] = HEAP32[i60 >> 2];
 16500             HEAP32[i61 + 4 >> 2] = HEAP32[i60 + 4 >> 2];
 16501             HEAP32[i61 + 8 >> 2] = HEAP32[i60 + 8 >> 2];
 16503            i59 = i59 + 1 | 0;
 16504           } while ((i59 | 0) < (i66 | 0));
 16506          i59 = HEAP32[i27 >> 2] | 0;
 16507          if ((i59 | 0) != 0) {
 16508           if ((HEAP8[i28] | 0) != 0) {
 16509            __Z21btAlignedFreeInternalPv(i59);
 16511           HEAP32[i27 >> 2] = 0;
 16513          HEAP8[i28] = 1;
 16514          HEAP32[i27 >> 2] = i65;
 16515          HEAP32[i26 >> 2] = i53;
 16516          i64 = HEAP32[i2 >> 2] | 0;
 16517         } else {
 16518          i64 = i36;
 16520        } while (0);
 16521        i36 = HEAP32[i27 >> 2] | 0;
 16522        i59 = i36 + (i64 * 12 | 0) | 0;
 16523        if ((i59 | 0) == 0) {
 16524         i67 = i64;
 16525         i68 = i36;
 16526        } else {
 16527         i36 = i59;
 16528         HEAP32[i36 >> 2] = HEAP32[i29 >> 2];
 16529         HEAP32[i36 + 4 >> 2] = HEAP32[i29 + 4 >> 2];
 16530         HEAP32[i36 + 8 >> 2] = HEAP32[i29 + 8 >> 2];
 16531         i67 = HEAP32[i2 >> 2] | 0;
 16532         i68 = HEAP32[i27 >> 2] | 0;
 16534        HEAP32[i2 >> 2] = i67 + 1;
 16535        i36 = i52 + 1 | 0;
 16536        HEAP32[i50 >> 2] = i52;
 16537        HEAP32[(HEAP32[i35 + 8 >> 2] | 0) + 20 >> 2] = i36;
 16538        HEAP32[i68 + (i52 * 12 | 0) + 4 >> 2] = 1;
 16539        HEAP32[i68 + (i36 * 12 | 0) + 4 >> 2] = -1;
 16540        i59 = HEAP32[i35 + 12 >> 2] | 0;
 16541        i54 = i59 + 104 | 0;
 16542        i60 = HEAP32[i54 >> 2] | 0;
 16543        if ((i60 | 0) < 0) {
 16544         HEAP32[i54 >> 2] = i47;
 16545         do {
 16546          if ((i47 | 0) == (i48 | 0)) {
 16547           i54 = (i48 | 0) == 0 ? 1 : i48 << 1;
 16548           if ((i48 | 0) >= (i54 | 0)) {
 16549            i69 = i48;
 16550            i70 = i49;
 16551            break;
 16553           if ((i54 | 0) == 0) {
 16554            i71 = 0;
 16555           } else {
 16556            i71 = __Z22btAlignedAllocInternalji(i54 << 2, 16) | 0;
 16558           if ((i48 | 0) > 0) {
 16559            i61 = 0;
 16560            do {
 16561             i72 = i71 + (i61 << 2) | 0;
 16562             if ((i72 | 0) != 0) {
 16563              HEAP32[i72 >> 2] = HEAP32[i49 + (i61 << 2) >> 2];
 16565             i61 = i61 + 1 | 0;
 16566            } while ((i61 | 0) < (i48 | 0));
 16568           if ((i49 | 0) == 0) {
 16569            i69 = i54;
 16570            i70 = i71;
 16571            break;
 16573           __Z21btAlignedFreeInternalPv(i49);
 16574           i69 = i54;
 16575           i70 = i71;
 16576          } else {
 16577           i69 = i48;
 16578           i70 = i49;
 16580         } while (0);
 16581         i61 = i70 + (i47 << 2) | 0;
 16582         if ((i61 | 0) != 0) {
 16583          HEAP32[i61 >> 2] = i59;
 16585         i73 = i47;
 16586         i74 = i47 + 1 | 0;
 16587         i75 = i69;
 16588         i76 = i70;
 16589        } else {
 16590         i73 = i60;
 16591         i74 = i47;
 16592         i75 = i48;
 16593         i76 = i49;
 16595        HEAP32[i68 + (i52 * 12 | 0) + 8 >> 2] = i73;
 16596        HEAP32[i68 + (i36 * 12 | 0) + 8 >> 2] = i33;
 16597        i77 = i74;
 16598        i78 = i75;
 16599        i79 = i76;
 16600        i80 = HEAP32[i50 >> 2] | 0;
 16601       } else {
 16602        i77 = i47;
 16603        i78 = i48;
 16604        i79 = i49;
 16605        i80 = i51;
 16607       if ((i41 | 0) > -1) {
 16608        HEAP32[(HEAP32[i27 >> 2] | 0) + (i80 * 12 | 0) >> 2] = i41 - i80;
 16609        i81 = i42;
 16610        i82 = HEAP32[i50 >> 2] | 0;
 16611       } else {
 16612        i81 = i80;
 16613        i82 = i80;
 16615       i61 = HEAP32[i35 >> 2] | 0;
 16616       if ((i61 | 0) == (i40 | 0)) {
 16617        break;
 16618       } else {
 16619        i35 = i61;
 16620        i41 = i82;
 16621        i42 = i81;
 16622        i47 = i77;
 16623        i48 = i78;
 16624        i49 = i79;
 16627      HEAP32[(HEAP32[i27 >> 2] | 0) + (i81 * 12 | 0) >> 2] = i82 - i81;
 16628      i44 = i77;
 16629      i45 = i78;
 16630      i46 = i79;
 16632     i83 = i33 + 1 | 0;
 16633     if ((i83 | 0) < (i44 | 0)) {
 16634      i31 = i46;
 16635      i15 = i45;
 16636      i32 = i44;
 16637      i33 = i83;
 16638     } else {
 16639      break;
 16642    if ((i83 | 0) > 0) {
 16643     i33 = i1 + 48 | 0;
 16644     i32 = i1 + 52 | 0;
 16645     i15 = i1 + 56 | 0;
 16646     i31 = 0;
 16647     do {
 16648      i27 = HEAP32[(HEAP32[i46 + (i31 << 2) >> 2] | 0) + 8 >> 2] | 0;
 16649      if ((i27 | 0) != 0) {
 16650       i2 = i27;
 16651       do {
 16652        i29 = i2 + 20 | 0;
 16653        if ((HEAP32[i29 >> 2] | 0) > -1) {
 16654         i26 = HEAP32[i16 >> 2] | 0;
 16655         do {
 16656          if ((i26 | 0) == (HEAP32[i33 >> 2] | 0)) {
 16657           i28 = (i26 | 0) == 0 ? 1 : i26 << 1;
 16658           if ((i26 | 0) >= (i28 | 0)) {
 16659            i84 = i26;
 16660            break;
 16662           if ((i28 | 0) == 0) {
 16663            i85 = 0;
 16664            i86 = i26;
 16665           } else {
 16666            i18 = __Z22btAlignedAllocInternalji(i28 << 2, 16) | 0;
 16667            i85 = i18;
 16668            i86 = HEAP32[i16 >> 2] | 0;
 16670           if ((i86 | 0) > 0) {
 16671            i18 = 0;
 16672            do {
 16673             i5 = i85 + (i18 << 2) | 0;
 16674             if ((i5 | 0) != 0) {
 16675              HEAP32[i5 >> 2] = HEAP32[(HEAP32[i32 >> 2] | 0) + (i18 << 2) >> 2];
 16677             i18 = i18 + 1 | 0;
 16678            } while ((i18 | 0) < (i86 | 0));
 16680           i18 = HEAP32[i32 >> 2] | 0;
 16681           if ((i18 | 0) != 0) {
 16682            if ((HEAP8[i15] | 0) != 0) {
 16683             __Z21btAlignedFreeInternalPv(i18);
 16685            HEAP32[i32 >> 2] = 0;
 16687           HEAP8[i15] = 1;
 16688           HEAP32[i32 >> 2] = i85;
 16689           HEAP32[i33 >> 2] = i28;
 16690           i84 = HEAP32[i16 >> 2] | 0;
 16691          } else {
 16692           i84 = i26;
 16694         } while (0);
 16695         i26 = (HEAP32[i32 >> 2] | 0) + (i84 << 2) | 0;
 16696         if ((i26 | 0) == 0) {
 16697          i87 = i84;
 16698         } else {
 16699          HEAP32[i26 >> 2] = HEAP32[i29 >> 2];
 16700          i87 = HEAP32[i16 >> 2] | 0;
 16702         HEAP32[i16 >> 2] = i87 + 1;
 16703         i26 = i2;
 16704         do {
 16705          HEAP32[i26 + 20 >> 2] = -1;
 16706          i26 = HEAP32[(HEAP32[i26 + 8 >> 2] | 0) + 4 >> 2] | 0;
 16707         } while ((i26 | 0) != (i2 | 0));
 16709        i2 = HEAP32[i2 >> 2] | 0;
 16710       } while ((i2 | 0) != (i27 | 0));
 16712      i31 = i31 + 1 | 0;
 16713     } while ((i31 | 0) < (i83 | 0));
 16715    if ((i46 | 0) == 0) {
 16716     d23 = d21;
 16717     break;
 16719    __Z21btAlignedFreeInternalPv(i46);
 16720    d23 = d21;
 16722  } while (0);
 16723  __ZN20btConvexHullInternalD2Ev(i9);
 16724  d19 = d23;
 16725  STACKTOP = i8;
 16726  return +d19;
 16728 function __ZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEf(i1, i2, i3, i4, i5, i6, i7, d8) {
 16729  i1 = i1 | 0;
 16730  i2 = i2 | 0;
 16731  i3 = i3 | 0;
 16732  i4 = i4 | 0;
 16733  i5 = i5 | 0;
 16734  i6 = i6 | 0;
 16735  i7 = i7 | 0;
 16736  d8 = +d8;
 16737  var i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, d36 = 0.0, i37 = 0, d38 = 0.0, i39 = 0, d40 = 0.0, d41 = 0.0, d42 = 0.0, d43 = 0.0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0, i68 = 0, i69 = 0, i70 = 0, i71 = 0, i72 = 0, i73 = 0, i74 = 0, d75 = 0.0, d76 = 0.0, d77 = 0.0, d78 = 0.0, d79 = 0.0, d80 = 0.0, i81 = 0, d82 = 0.0, d83 = 0.0, d84 = 0.0, d85 = 0.0, d86 = 0.0, d87 = 0.0, d88 = 0.0, d89 = 0.0, d90 = 0.0, d91 = 0.0, d92 = 0.0, d93 = 0.0, d94 = 0.0, d95 = 0.0, d96 = 0.0, d97 = 0.0, d98 = 0.0, d99 = 0.0;
 16738  i9 = STACKTOP;
 16739  STACKTOP = STACKTOP + 1656 | 0;
 16740  i10 = i9 | 0;
 16741  i11 = i9 + 176 | 0;
 16742  i12 = i9 + 536 | 0;
 16743  i13 = i9 + 544 | 0;
 16744  i14 = i9 + 568 | 0;
 16745  i15 = i9 + 616 | 0;
 16746  i16 = i9 + 632 | 0;
 16747  i17 = i9 + 648 | 0;
 16748  i18 = i9 + 712 | 0;
 16749  i19 = i9 + 936 | 0;
 16750  i20 = i9 + 952 | 0;
 16751  i21 = i9 + 968 | 0;
 16752  i22 = i9 + 1144 | 0;
 16753  i23 = i9 + 1168 | 0;
 16754  i24 = i9 + 1216 | 0;
 16755  i25 = i9 + 1280 | 0;
 16756  i26 = i9 + 1504 | 0;
 16757  i27 = i9 + 1520 | 0;
 16758  i28 = i9 + 1536 | 0;
 16759  i29 = i9 + 1552 | 0;
 16760  i30 = i9 + 1568 | 0;
 16761  i31 = i9 + 1632 | 0;
 16762  i32 = HEAP32[i5 + 4 >> 2] | 0;
 16763  if ((i32 | 0) < 20) {
 16764   HEAP32[i10 >> 2] = 2280;
 16765   i33 = i10 + 164 | 0;
 16766   HEAP32[i10 + 168 >> 2] = 0;
 16767   HEAPF32[i10 + 172 >> 2] = d8;
 16768   i34 = i7 + 4 | 0;
 16769   HEAPF32[i33 >> 2] = +HEAPF32[i34 >> 2];
 16770   HEAPF32[i11 + 308 >> 2] = 9999999747378752.0e-20;
 16771   HEAP16[i11 + 332 >> 1] = 0;
 16772   HEAP32[i12 >> 2] = 2696;
 16773   __ZN27btContinuousConvexCollisionC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver(i13, i1, i5, i11, i12 | 0);
 16774   i12 = i13 | 0;
 16775   do {
 16776    if (FUNCTION_TABLE_iiiiiii[HEAP32[(HEAP32[i13 >> 2] | 0) + 8 >> 2] & 7](i12, i2, i3, i6, i6, i10) | 0) {
 16777     i11 = i10 + 132 | 0;
 16778     i35 = i11 | 0;
 16779     d36 = +HEAPF32[i35 >> 2];
 16780     i37 = i10 + 136 | 0;
 16781     d38 = +HEAPF32[i37 >> 2];
 16782     i39 = i10 + 140 | 0;
 16783     d40 = +HEAPF32[i39 >> 2];
 16784     d41 = d36 * d36 + d38 * d38 + d40 * d40;
 16785     if (d41 <= 9999999747378752.0e-20) {
 16786      break;
 16788     d42 = +HEAPF32[i33 >> 2];
 16789     if (d42 >= +HEAPF32[i34 >> 2]) {
 16790      break;
 16792     d43 = 1.0 / +Math_sqrt(+d41);
 16793     HEAPF32[i35 >> 2] = d36 * d43;
 16794     HEAPF32[i37 >> 2] = d38 * d43;
 16795     HEAPF32[i39 >> 2] = d40 * d43;
 16796     HEAP32[i14 >> 2] = i4;
 16797     HEAP32[i14 + 4 >> 2] = 0;
 16798     i39 = i14 + 8 | 0;
 16799     i37 = i11;
 16800     HEAP32[i39 >> 2] = HEAP32[i37 >> 2];
 16801     HEAP32[i39 + 4 >> 2] = HEAP32[i37 + 4 >> 2];
 16802     HEAP32[i39 + 8 >> 2] = HEAP32[i37 + 8 >> 2];
 16803     HEAP32[i39 + 12 >> 2] = HEAP32[i37 + 12 >> 2];
 16804     i37 = i14 + 24 | 0;
 16805     i39 = i10 + 148 | 0;
 16806     HEAP32[i37 >> 2] = HEAP32[i39 >> 2];
 16807     HEAP32[i37 + 4 >> 2] = HEAP32[i39 + 4 >> 2];
 16808     HEAP32[i37 + 8 >> 2] = HEAP32[i39 + 8 >> 2];
 16809     HEAP32[i37 + 12 >> 2] = HEAP32[i39 + 12 >> 2];
 16810     HEAPF32[i14 + 40 >> 2] = d42;
 16811     i39 = HEAP32[(HEAP32[i7 >> 2] | 0) + 12 >> 2] | 0;
 16812     +FUNCTION_TABLE_fiii[i39 & 15](i7, i14, 1);
 16814   } while (0);
 16815   __ZN12btConvexCastD2Ev(i12);
 16816   STACKTOP = i9;
 16817   return;
 16819  if ((i32 - 21 | 0) >>> 0 >= 9) {
 16820   if ((i32 | 0) != 31) {
 16821    STACKTOP = i9;
 16822    return;
 16824   __ZN15CProfileManager13Start_ProfileEPKc(96);
 16825   i12 = i5 + 16 | 0;
 16826   if ((HEAP32[i12 >> 2] | 0) > 0) {
 16827    i14 = i5 + 24 | 0;
 16828    i10 = i6 | 0;
 16829    i34 = i6 + 4 | 0;
 16830    i33 = i6 + 8 | 0;
 16831    i13 = i6 + 16 | 0;
 16832    i39 = i6 + 20 | 0;
 16833    i37 = i6 + 24 | 0;
 16834    i11 = i6 + 32 | 0;
 16835    i35 = i6 + 36 | 0;
 16836    i44 = i6 + 40 | 0;
 16837    i45 = i6 + 48 | 0;
 16838    i46 = i6 + 52 | 0;
 16839    i47 = i6 + 56 | 0;
 16840    i48 = i30 | 0;
 16841    i49 = i30 + 4 | 0;
 16842    i50 = i30 + 8 | 0;
 16843    i51 = i30 + 12 | 0;
 16844    i52 = i30 + 16 | 0;
 16845    i53 = i30 + 20 | 0;
 16846    i54 = i30 + 24 | 0;
 16847    i55 = i30 + 28 | 0;
 16848    i56 = i30 + 32 | 0;
 16849    i57 = i30 + 36 | 0;
 16850    i58 = i30 + 40 | 0;
 16851    i59 = i30 + 44 | 0;
 16852    i60 = i30 + 48 | 0;
 16853    i61 = i30 + 52 | 0;
 16854    i62 = i30 + 56 | 0;
 16855    i63 = i30 + 60 | 0;
 16856    i64 = i4 + 192 | 0;
 16857    i65 = i31 | 0;
 16858    i66 = i31 + 4 | 0;
 16859    i67 = i31 + 8 | 0;
 16860    i68 = i31 + 10 | 0;
 16861    i69 = i31 + 12 | 0;
 16862    i70 = i31 + 16 | 0;
 16863    i71 = i7 + 4 | 0;
 16864    i72 = i31 | 0;
 16865    i31 = HEAP32[i64 >> 2] | 0;
 16866    i73 = 0;
 16867    do {
 16868     i74 = HEAP32[i14 >> 2] | 0;
 16869     d42 = +HEAPF32[i74 + (i73 * 80 | 0) >> 2];
 16870     d43 = +HEAPF32[i74 + (i73 * 80 | 0) + 4 >> 2];
 16871     d40 = +HEAPF32[i74 + (i73 * 80 | 0) + 8 >> 2];
 16872     d38 = +HEAPF32[i74 + (i73 * 80 | 0) + 16 >> 2];
 16873     d36 = +HEAPF32[i74 + (i73 * 80 | 0) + 20 >> 2];
 16874     d41 = +HEAPF32[i74 + (i73 * 80 | 0) + 24 >> 2];
 16875     d75 = +HEAPF32[i74 + (i73 * 80 | 0) + 32 >> 2];
 16876     d76 = +HEAPF32[i74 + (i73 * 80 | 0) + 36 >> 2];
 16877     d77 = +HEAPF32[i74 + (i73 * 80 | 0) + 40 >> 2];
 16878     d78 = +HEAPF32[i74 + (i73 * 80 | 0) + 48 >> 2];
 16879     d79 = +HEAPF32[i74 + (i73 * 80 | 0) + 52 >> 2];
 16880     d80 = +HEAPF32[i74 + (i73 * 80 | 0) + 56 >> 2];
 16881     i81 = HEAP32[i74 + (i73 * 80 | 0) + 64 >> 2] | 0;
 16882     d82 = +HEAPF32[i10 >> 2];
 16883     d83 = +HEAPF32[i34 >> 2];
 16884     d84 = +HEAPF32[i33 >> 2];
 16885     d85 = +HEAPF32[i13 >> 2];
 16886     d86 = +HEAPF32[i39 >> 2];
 16887     d87 = +HEAPF32[i37 >> 2];
 16888     d88 = +HEAPF32[i11 >> 2];
 16889     d89 = +HEAPF32[i35 >> 2];
 16890     d90 = +HEAPF32[i44 >> 2];
 16891     d91 = d78 * d82 + d79 * d83 + d80 * d84 + +HEAPF32[i45 >> 2];
 16892     d92 = d78 * d85 + d79 * d86 + d80 * d87 + +HEAPF32[i46 >> 2];
 16893     d93 = d78 * d88 + d79 * d89 + d80 * d90 + +HEAPF32[i47 >> 2];
 16894     HEAPF32[i48 >> 2] = d42 * d82 + d38 * d83 + d75 * d84;
 16895     HEAPF32[i49 >> 2] = d43 * d82 + d36 * d83 + d76 * d84;
 16896     HEAPF32[i50 >> 2] = d40 * d82 + d41 * d83 + d77 * d84;
 16897     HEAPF32[i51 >> 2] = 0.0;
 16898     HEAPF32[i52 >> 2] = d42 * d85 + d38 * d86 + d75 * d87;
 16899     HEAPF32[i53 >> 2] = d43 * d85 + d36 * d86 + d76 * d87;
 16900     HEAPF32[i54 >> 2] = d40 * d85 + d41 * d86 + d77 * d87;
 16901     HEAPF32[i55 >> 2] = 0.0;
 16902     HEAPF32[i56 >> 2] = d42 * d88 + d38 * d89 + d75 * d90;
 16903     HEAPF32[i57 >> 2] = d43 * d88 + d36 * d89 + d76 * d90;
 16904     HEAPF32[i58 >> 2] = d40 * d88 + d41 * d89 + d77 * d90;
 16905     HEAPF32[i59 >> 2] = 0.0;
 16906     HEAPF32[i60 >> 2] = d91;
 16907     HEAPF32[i61 >> 2] = d92;
 16908     HEAPF32[i62 >> 2] = d93;
 16909     HEAPF32[i63 >> 2] = 0.0;
 16910     HEAP32[i64 >> 2] = i81;
 16911     HEAP16[i67 >> 1] = 1;
 16912     HEAP16[i68 >> 1] = -1;
 16913     HEAP32[i65 >> 2] = 1720;
 16914     HEAP32[i69 >> 2] = i7;
 16915     HEAP32[i70 >> 2] = i73;
 16916     HEAPF32[i66 >> 2] = +HEAPF32[i71 >> 2];
 16917     __ZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEf(i1, i2, i3, i4, i81, i30, i72, d8);
 16918     HEAP32[i64 >> 2] = i31;
 16919     i73 = i73 + 1 | 0;
 16920    } while ((i73 | 0) < (HEAP32[i12 >> 2] | 0));
 16922   __ZN15CProfileManager12Stop_ProfileEv();
 16923   STACKTOP = i9;
 16924   return;
 16926  if ((i32 | 0) == 21) {
 16927   d93 = +HEAPF32[i6 >> 2];
 16928   d92 = +HEAPF32[i6 + 16 >> 2];
 16929   d91 = +HEAPF32[i6 + 32 >> 2];
 16930   d90 = +HEAPF32[i6 + 4 >> 2];
 16931   d77 = +HEAPF32[i6 + 20 >> 2];
 16932   d89 = +HEAPF32[i6 + 36 >> 2];
 16933   d41 = +HEAPF32[i6 + 8 >> 2];
 16934   d88 = +HEAPF32[i6 + 24 >> 2];
 16935   d40 = +HEAPF32[i6 + 40 >> 2];
 16936   d76 = -0.0 - +HEAPF32[i6 + 48 >> 2];
 16937   d36 = -0.0 - +HEAPF32[i6 + 52 >> 2];
 16938   d43 = -0.0 - +HEAPF32[i6 + 56 >> 2];
 16939   d75 = d93 * d76 + d92 * d36 + d91 * d43;
 16940   d38 = d90 * d76 + d77 * d36 + d89 * d43;
 16941   d42 = d41 * d76 + d88 * d36 + d40 * d43;
 16942   d43 = +HEAPF32[i2 + 48 >> 2];
 16943   d36 = +HEAPF32[i2 + 52 >> 2];
 16944   d76 = +HEAPF32[i2 + 56 >> 2];
 16945   HEAPF32[i15 >> 2] = d75 + (d93 * d43 + d92 * d36 + d91 * d76);
 16946   HEAPF32[i15 + 4 >> 2] = d38 + (d90 * d43 + d77 * d36 + d89 * d76);
 16947   HEAPF32[i15 + 8 >> 2] = d42 + (d41 * d43 + d88 * d36 + d40 * d76);
 16948   HEAPF32[i15 + 12 >> 2] = 0.0;
 16949   d76 = +HEAPF32[i3 + 48 >> 2];
 16950   d36 = +HEAPF32[i3 + 52 >> 2];
 16951   d43 = +HEAPF32[i3 + 56 >> 2];
 16952   HEAPF32[i16 >> 2] = d75 + (d93 * d76 + d92 * d36 + d91 * d43);
 16953   HEAPF32[i16 + 4 >> 2] = d38 + (d90 * d76 + d77 * d36 + d89 * d43);
 16954   HEAPF32[i16 + 8 >> 2] = d42 + (d41 * d76 + d88 * d36 + d40 * d43);
 16955   HEAPF32[i16 + 12 >> 2] = 0.0;
 16956   d43 = +HEAPF32[i3 >> 2];
 16957   d36 = +HEAPF32[i3 + 16 >> 2];
 16958   d76 = +HEAPF32[i3 + 32 >> 2];
 16959   d42 = +HEAPF32[i3 + 4 >> 2];
 16960   d38 = +HEAPF32[i3 + 20 >> 2];
 16961   d75 = +HEAPF32[i3 + 36 >> 2];
 16962   d87 = +HEAPF32[i3 + 8 >> 2];
 16963   d86 = +HEAPF32[i3 + 24 >> 2];
 16964   d85 = +HEAPF32[i3 + 40 >> 2];
 16965   HEAPF32[i17 >> 2] = d93 * d43 + d92 * d36 + d91 * d76;
 16966   HEAPF32[i17 + 4 >> 2] = d93 * d42 + d92 * d38 + d91 * d75;
 16967   HEAPF32[i17 + 8 >> 2] = d93 * d87 + d92 * d86 + d91 * d85;
 16968   HEAPF32[i17 + 12 >> 2] = 0.0;
 16969   HEAPF32[i17 + 16 >> 2] = d90 * d43 + d77 * d36 + d89 * d76;
 16970   HEAPF32[i17 + 20 >> 2] = d90 * d42 + d77 * d38 + d89 * d75;
 16971   HEAPF32[i17 + 24 >> 2] = d90 * d87 + d77 * d86 + d89 * d85;
 16972   HEAPF32[i17 + 28 >> 2] = 0.0;
 16973   HEAPF32[i17 + 32 >> 2] = d41 * d43 + d88 * d36 + d40 * d76;
 16974   HEAPF32[i17 + 36 >> 2] = d41 * d42 + d88 * d38 + d40 * d75;
 16975   HEAPF32[i17 + 40 >> 2] = d41 * d87 + d88 * d86 + d40 * d85;
 16976   _memset(i17 + 44 | 0, 0, 20);
 16977   __ZN28btTriangleConvexcastCallbackC2EPK13btConvexShapeRK11btTransformS5_S5_f(i18 | 0, i1, i2, i3, i6, +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i5 >> 2] | 0) + 44 >> 2] & 7](i5));
 16978   HEAP32[i18 >> 2] = 1688;
 16979   HEAP32[i18 + 212 >> 2] = i7;
 16980   HEAP32[i18 + 216 >> 2] = i4;
 16981   HEAP32[i18 + 220 >> 2] = i5;
 16982   HEAPF32[i18 + 200 >> 2] = +HEAPF32[i7 + 4 >> 2];
 16983   HEAPF32[i18 + 208 >> 2] = d8;
 16984   FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] & 127](i1, i17, i19, i20);
 16985   i17 = i18 | 0;
 16986   __ZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_(i5, i17, i15, i16, i19, i20);
 16987   __ZN18btTriangleCallbackD2Ev(i17);
 16988   STACKTOP = i9;
 16989   return;
 16990  } else if ((i32 | 0) == 28) {
 16991   HEAP32[i21 >> 2] = 2280;
 16992   i32 = i21 + 164 | 0;
 16993   HEAP32[i21 + 168 >> 2] = 0;
 16994   HEAPF32[i21 + 172 >> 2] = d8;
 16995   i17 = i7 + 4 | 0;
 16996   HEAPF32[i32 >> 2] = +HEAPF32[i17 >> 2];
 16997   __ZN27btContinuousConvexCollisionC2EPK13btConvexShapePK18btStaticPlaneShape(i22, i1, i5);
 16998   i20 = i22 | 0;
 16999   do {
 17000    if (FUNCTION_TABLE_iiiiiii[HEAP32[(HEAP32[i22 >> 2] | 0) + 8 >> 2] & 7](i20, i2, i3, i6, i6, i21) | 0) {
 17001     i19 = i21 + 132 | 0;
 17002     i16 = i19 | 0;
 17003     d85 = +HEAPF32[i16 >> 2];
 17004     i15 = i21 + 136 | 0;
 17005     d40 = +HEAPF32[i15 >> 2];
 17006     i18 = i21 + 140 | 0;
 17007     d86 = +HEAPF32[i18 >> 2];
 17008     d88 = d85 * d85 + d40 * d40 + d86 * d86;
 17009     if (d88 <= 9999999747378752.0e-20) {
 17010      break;
 17012     d87 = +HEAPF32[i32 >> 2];
 17013     if (d87 >= +HEAPF32[i17 >> 2]) {
 17014      break;
 17016     d41 = 1.0 / +Math_sqrt(+d88);
 17017     HEAPF32[i16 >> 2] = d85 * d41;
 17018     HEAPF32[i15 >> 2] = d40 * d41;
 17019     HEAPF32[i18 >> 2] = d86 * d41;
 17020     HEAP32[i23 >> 2] = i4;
 17021     HEAP32[i23 + 4 >> 2] = 0;
 17022     i18 = i23 + 8 | 0;
 17023     i15 = i19;
 17024     HEAP32[i18 >> 2] = HEAP32[i15 >> 2];
 17025     HEAP32[i18 + 4 >> 2] = HEAP32[i15 + 4 >> 2];
 17026     HEAP32[i18 + 8 >> 2] = HEAP32[i15 + 8 >> 2];
 17027     HEAP32[i18 + 12 >> 2] = HEAP32[i15 + 12 >> 2];
 17028     i15 = i23 + 24 | 0;
 17029     i18 = i21 + 148 | 0;
 17030     HEAP32[i15 >> 2] = HEAP32[i18 >> 2];
 17031     HEAP32[i15 + 4 >> 2] = HEAP32[i18 + 4 >> 2];
 17032     HEAP32[i15 + 8 >> 2] = HEAP32[i18 + 8 >> 2];
 17033     HEAP32[i15 + 12 >> 2] = HEAP32[i18 + 12 >> 2];
 17034     HEAPF32[i23 + 40 >> 2] = d87;
 17035     i18 = HEAP32[(HEAP32[i7 >> 2] | 0) + 12 >> 2] | 0;
 17036     +FUNCTION_TABLE_fiii[i18 & 15](i7, i23, 1);
 17038   } while (0);
 17039   __ZN12btConvexCastD2Ev(i20);
 17040   STACKTOP = i9;
 17041   return;
 17042  } else {
 17043   i20 = i5;
 17044   d87 = +HEAPF32[i6 >> 2];
 17045   d41 = +HEAPF32[i6 + 16 >> 2];
 17046   d86 = +HEAPF32[i6 + 32 >> 2];
 17047   d40 = +HEAPF32[i6 + 4 >> 2];
 17048   d85 = +HEAPF32[i6 + 20 >> 2];
 17049   d88 = +HEAPF32[i6 + 36 >> 2];
 17050   d75 = +HEAPF32[i6 + 8 >> 2];
 17051   d38 = +HEAPF32[i6 + 24 >> 2];
 17052   d42 = +HEAPF32[i6 + 40 >> 2];
 17053   d76 = -0.0 - +HEAPF32[i6 + 48 >> 2];
 17054   d36 = -0.0 - +HEAPF32[i6 + 52 >> 2];
 17055   d43 = -0.0 - +HEAPF32[i6 + 56 >> 2];
 17056   d89 = d87 * d76 + d41 * d36 + d86 * d43;
 17057   d77 = d40 * d76 + d85 * d36 + d88 * d43;
 17058   d90 = d75 * d76 + d38 * d36 + d42 * d43;
 17059   d43 = +HEAPF32[i2 + 48 >> 2];
 17060   d36 = +HEAPF32[i2 + 52 >> 2];
 17061   d76 = +HEAPF32[i2 + 56 >> 2];
 17062   d91 = d89 + (d87 * d43 + d41 * d36 + d86 * d76);
 17063   d92 = d77 + (d40 * d43 + d85 * d36 + d88 * d76);
 17064   d93 = d90 + (d75 * d43 + d38 * d36 + d42 * d76);
 17065   d76 = +HEAPF32[i3 + 48 >> 2];
 17066   d36 = +HEAPF32[i3 + 52 >> 2];
 17067   d43 = +HEAPF32[i3 + 56 >> 2];
 17068   d84 = d89 + (d87 * d76 + d41 * d36 + d86 * d43);
 17069   d89 = d77 + (d40 * d76 + d85 * d36 + d88 * d43);
 17070   d77 = d90 + (d75 * d76 + d38 * d36 + d42 * d43);
 17071   d43 = +HEAPF32[i3 >> 2];
 17072   d36 = +HEAPF32[i3 + 16 >> 2];
 17073   d76 = +HEAPF32[i3 + 32 >> 2];
 17074   d90 = +HEAPF32[i3 + 4 >> 2];
 17075   d83 = +HEAPF32[i3 + 20 >> 2];
 17076   d82 = +HEAPF32[i3 + 36 >> 2];
 17077   d80 = +HEAPF32[i3 + 8 >> 2];
 17078   d79 = +HEAPF32[i3 + 24 >> 2];
 17079   d78 = +HEAPF32[i3 + 40 >> 2];
 17080   HEAPF32[i24 >> 2] = d87 * d43 + d41 * d36 + d86 * d76;
 17081   HEAPF32[i24 + 4 >> 2] = d87 * d90 + d41 * d83 + d86 * d82;
 17082   HEAPF32[i24 + 8 >> 2] = d87 * d80 + d41 * d79 + d86 * d78;
 17083   HEAPF32[i24 + 12 >> 2] = 0.0;
 17084   HEAPF32[i24 + 16 >> 2] = d40 * d43 + d85 * d36 + d88 * d76;
 17085   HEAPF32[i24 + 20 >> 2] = d40 * d90 + d85 * d83 + d88 * d82;
 17086   HEAPF32[i24 + 24 >> 2] = d40 * d80 + d85 * d79 + d88 * d78;
 17087   HEAPF32[i24 + 28 >> 2] = 0.0;
 17088   HEAPF32[i24 + 32 >> 2] = d75 * d43 + d38 * d36 + d42 * d76;
 17089   HEAPF32[i24 + 36 >> 2] = d75 * d90 + d38 * d83 + d42 * d82;
 17090   HEAPF32[i24 + 40 >> 2] = d75 * d80 + d38 * d79 + d42 * d78;
 17091   _memset(i24 + 44 | 0, 0, 20);
 17092   __ZN28btTriangleConvexcastCallbackC2EPK13btConvexShapeRK11btTransformS5_S5_f(i25 | 0, i1, i2, i3, i6, +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i5 >> 2] | 0) + 44 >> 2] & 7](i20));
 17093   HEAP32[i25 >> 2] = 1656;
 17094   HEAP32[i25 + 212 >> 2] = i7;
 17095   HEAP32[i25 + 216 >> 2] = i4;
 17096   HEAP32[i25 + 220 >> 2] = i20;
 17097   HEAPF32[i25 + 200 >> 2] = +HEAPF32[i7 + 4 >> 2];
 17098   HEAPF32[i25 + 208 >> 2] = d8;
 17099   FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] & 127](i1, i24, i26, i27);
 17100   i24 = i28 | 0;
 17101   HEAPF32[i24 >> 2] = d91;
 17102   i1 = i28 + 4 | 0;
 17103   HEAPF32[i1 >> 2] = d92;
 17104   i7 = i28 + 8 | 0;
 17105   HEAPF32[i7 >> 2] = d93;
 17106   HEAPF32[i28 + 12 >> 2] = 0.0;
 17107   if (d84 < d91) {
 17108    HEAPF32[i24 >> 2] = d84;
 17109    d94 = d84;
 17110   } else {
 17111    d94 = d91;
 17113   if (d89 < d92) {
 17114    HEAPF32[i1 >> 2] = d89;
 17115    d95 = d89;
 17116   } else {
 17117    d95 = d92;
 17119   if (d77 < d93) {
 17120    HEAPF32[i7 >> 2] = d77;
 17121    d96 = d77;
 17122   } else {
 17123    d96 = d93;
 17125   i4 = i29 | 0;
 17126   HEAPF32[i4 >> 2] = d91;
 17127   i6 = i29 + 4 | 0;
 17128   HEAPF32[i6 >> 2] = d92;
 17129   i3 = i29 + 8 | 0;
 17130   HEAPF32[i3 >> 2] = d93;
 17131   HEAPF32[i29 + 12 >> 2] = 0.0;
 17132   if (d91 < d84) {
 17133    HEAPF32[i4 >> 2] = d84;
 17134    d97 = d84;
 17135   } else {
 17136    d97 = d91;
 17138   if (d92 < d89) {
 17139    HEAPF32[i6 >> 2] = d89;
 17140    d98 = d89;
 17141   } else {
 17142    d98 = d92;
 17144   if (d93 < d77) {
 17145    HEAPF32[i3 >> 2] = d77;
 17146    d99 = d77;
 17147   } else {
 17148    d99 = d93;
 17150   HEAPF32[i24 >> 2] = d94 + +HEAPF32[i26 >> 2];
 17151   HEAPF32[i1 >> 2] = d95 + +HEAPF32[i26 + 4 >> 2];
 17152   HEAPF32[i7 >> 2] = d96 + +HEAPF32[i26 + 8 >> 2];
 17153   HEAPF32[i4 >> 2] = d97 + +HEAPF32[i27 >> 2];
 17154   HEAPF32[i6 >> 2] = d98 + +HEAPF32[i27 + 4 >> 2];
 17155   HEAPF32[i3 >> 2] = d99 + +HEAPF32[i27 + 8 >> 2];
 17156   i27 = i25 | 0;
 17157   FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i5 >> 2] | 0) + 60 >> 2] & 127](i20, i27, i28, i29);
 17158   __ZN18btTriangleCallbackD2Ev(i27);
 17159   STACKTOP = i9;
 17160   return;
 17163 function __ZN35btSequentialImpulseConstraintSolver28solveGroupCacheFriendlySetupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10) {
 17164  i1 = i1 | 0;
 17165  i2 = i2 | 0;
 17166  i3 = i3 | 0;
 17167  i4 = i4 | 0;
 17168  i5 = i5 | 0;
 17169  i6 = i6 | 0;
 17170  i7 = i7 | 0;
 17171  i8 = i8 | 0;
 17172  i9 = i9 | 0;
 17173  i10 = i10 | 0;
 17174  var i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, d46 = 0.0, d47 = 0.0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0, i68 = 0, i69 = 0, i70 = 0, i71 = 0, i72 = 0, i73 = 0, i74 = 0, i75 = 0, i76 = 0, i77 = 0, i78 = 0, i79 = 0, i80 = 0, d81 = 0.0, d82 = 0.0, d83 = 0.0, d84 = 0.0, d85 = 0.0, d86 = 0.0, d87 = 0.0, d88 = 0.0, d89 = 0.0, d90 = 0.0, d91 = 0.0, i92 = 0, i93 = 0, i94 = 0, i95 = 0, i96 = 0, i97 = 0;
 17175  i10 = STACKTOP;
 17176  STACKTOP = STACKTOP + 192 | 0;
 17177  i9 = i10 | 0;
 17178  i11 = i10 + 136 | 0;
 17179  __ZN15CProfileManager13Start_ProfileEPKc(408);
 17180  if ((i7 | 0) == (-i5 | 0)) {
 17181   __ZN15CProfileManager12Stop_ProfileEv();
 17182   STACKTOP = i10;
 17183   return +0.0;
 17185  i12 = (i3 | 0) > 0;
 17186  do {
 17187   if ((HEAP32[i8 + 44 >> 2] | 0) == 0) {
 17188    if (i12) {
 17189     i13 = 0;
 17190    } else {
 17191     break;
 17193    do {
 17194     i14 = HEAP32[i2 + (i13 << 2) >> 2] | 0;
 17195     if (!((HEAP32[i14 + 232 >> 2] & 2 | 0) == 0 | (i14 | 0) == 0)) {
 17196      _memset(i14 + 504 | 0, 0, 32);
 17198     i13 = i13 + 1 | 0;
 17199    } while ((i13 | 0) < (i3 | 0));
 17200   } else {
 17201    if (i12) {
 17202     i15 = 0;
 17203    } else {
 17204     break;
 17206    do {
 17207     i14 = HEAP32[i2 + (i15 << 2) >> 2] | 0;
 17208     if (!((HEAP32[i14 + 232 >> 2] & 2 | 0) == 0 | (i14 | 0) == 0)) {
 17209      _memset(i14 + 504 | 0, 0, 32);
 17210      _memset(i14 + 568 | 0, 0, 32);
 17212     i15 = i15 + 1 | 0;
 17213    } while ((i15 | 0) < (i3 | 0));
 17215  } while (0);
 17216  i3 = (i7 | 0) > 0;
 17217  if (i3) {
 17218   i15 = 0;
 17219   do {
 17220    i2 = HEAP32[i6 + (i15 << 2) >> 2] | 0;
 17221    FUNCTION_TABLE_vi[HEAP32[(HEAP32[i2 >> 2] | 0) + 8 >> 2] & 511](i2);
 17222    HEAPF32[i2 + 32 >> 2] = 0.0;
 17223    i15 = i15 + 1 | 0;
 17224   } while ((i15 | 0) < (i7 | 0));
 17226  i15 = i1 + 108 | 0;
 17227  i2 = HEAP32[i15 >> 2] | 0;
 17228  if ((i2 | 0) < (i7 | 0)) {
 17229   i12 = i1 + 112 | 0;
 17230   if ((HEAP32[i12 >> 2] | 0) < (i7 | 0)) {
 17231    if ((i7 | 0) == 0) {
 17232     i16 = 0;
 17233     i17 = i2;
 17234    } else {
 17235     i13 = __Z22btAlignedAllocInternalji(i7 << 3, 16) | 0;
 17236     i16 = i13;
 17237     i17 = HEAP32[i15 >> 2] | 0;
 17239    i13 = i1 + 116 | 0;
 17240    if ((i17 | 0) > 0) {
 17241     i14 = 0;
 17242     do {
 17243      i18 = i16 + (i14 << 3) | 0;
 17244      if ((i18 | 0) != 0) {
 17245       i19 = (HEAP32[i13 >> 2] | 0) + (i14 << 3) | 0;
 17246       i20 = i18;
 17247       i18 = HEAP32[i19 + 4 >> 2] | 0;
 17248       HEAP32[i20 >> 2] = HEAP32[i19 >> 2];
 17249       HEAP32[i20 + 4 >> 2] = i18;
 17251      i14 = i14 + 1 | 0;
 17252     } while ((i14 | 0) < (i17 | 0));
 17254    i17 = HEAP32[i13 >> 2] | 0;
 17255    i14 = i1 + 120 | 0;
 17256    if ((i17 | 0) != 0) {
 17257     if ((HEAP8[i14] | 0) != 0) {
 17258      __Z21btAlignedFreeInternalPv(i17);
 17260     HEAP32[i13 >> 2] = 0;
 17262    HEAP8[i14] = 1;
 17263    HEAP32[i13 >> 2] = i16;
 17264    HEAP32[i12 >> 2] = i7;
 17265    i21 = i13;
 17266   } else {
 17267    i21 = i1 + 116 | 0;
 17269   i13 = i2;
 17270   do {
 17271    i2 = (HEAP32[i21 >> 2] | 0) + (i13 << 3) | 0;
 17272    if ((i2 | 0) != 0) {
 17273     i12 = i2;
 17274     HEAP32[i12 >> 2] = 0;
 17275     HEAP32[i12 + 4 >> 2] = 0;
 17277    i13 = i13 + 1 | 0;
 17278   } while ((i13 | 0) < (i7 | 0));
 17280  HEAP32[i15 >> 2] = i7;
 17281  if (i3) {
 17282   i15 = i1 + 116 | 0;
 17283   i13 = 0;
 17284   i21 = 0;
 17285   while (1) {
 17286    i12 = HEAP32[i15 >> 2] | 0;
 17287    i2 = i12 + (i13 << 3) | 0;
 17288    i16 = HEAP32[i6 + (i13 << 2) >> 2] | 0;
 17289    if ((HEAP8[i16 + 20 | 0] | 0) == 0) {
 17290     HEAP32[i2 >> 2] = 0;
 17291     HEAP32[i12 + (i13 << 3) + 4 >> 2] = 0;
 17292     i22 = 0;
 17293    } else {
 17294     FUNCTION_TABLE_vii[HEAP32[(HEAP32[i16 >> 2] | 0) + 16 >> 2] & 127](i16, i2);
 17295     i22 = HEAP32[i2 >> 2] | 0;
 17297    i2 = i22 + i21 | 0;
 17298    i16 = i13 + 1 | 0;
 17299    if ((i16 | 0) < (i7 | 0)) {
 17300     i13 = i16;
 17301     i21 = i2;
 17302    } else {
 17303     i23 = i2;
 17304     break;
 17307  } else {
 17308   i23 = 0;
 17310  i21 = i9;
 17311  _memset(i21 | 0, 0, 136);
 17312  i9 = i1 + 28 | 0;
 17313  i13 = HEAP32[i9 >> 2] | 0;
 17314  if ((i13 | 0) < (i23 | 0)) {
 17315   i22 = i1 + 32 | 0;
 17316   if ((HEAP32[i22 >> 2] | 0) < (i23 | 0)) {
 17317    if ((i23 | 0) == 0) {
 17318     i24 = 0;
 17319     i25 = i13;
 17320    } else {
 17321     i15 = __Z22btAlignedAllocInternalji(i23 * 136 | 0, 16) | 0;
 17322     i24 = i15;
 17323     i25 = HEAP32[i9 >> 2] | 0;
 17325    i15 = i1 + 36 | 0;
 17326    if ((i25 | 0) > 0) {
 17327     i2 = 0;
 17328     do {
 17329      i16 = i24 + (i2 * 136 | 0) | 0;
 17330      i12 = (HEAP32[i15 >> 2] | 0) + (i2 * 136 | 0) | 0;
 17331      _memcpy(i16 | 0, i12 | 0, 136) | 0;
 17332      i2 = i2 + 1 | 0;
 17333     } while ((i2 | 0) < (i25 | 0));
 17335    i25 = HEAP32[i15 >> 2] | 0;
 17336    i2 = i1 + 40 | 0;
 17337    if ((i25 | 0) != 0) {
 17338     if ((HEAP8[i2] | 0) != 0) {
 17339      __Z21btAlignedFreeInternalPv(i25);
 17341     HEAP32[i15 >> 2] = 0;
 17343    HEAP8[i2] = 1;
 17344    HEAP32[i15 >> 2] = i24;
 17345    HEAP32[i22 >> 2] = i23;
 17346    i26 = i15;
 17347   } else {
 17348    i26 = i1 + 36 | 0;
 17350   i15 = i13;
 17351   do {
 17352    i13 = (HEAP32[i26 >> 2] | 0) + (i15 * 136 | 0) | 0;
 17353    _memcpy(i13 | 0, i21 | 0, 136) | 0;
 17354    i15 = i15 + 1 | 0;
 17355   } while ((i15 | 0) < (i23 | 0));
 17357  HEAP32[i9 >> 2] = i23;
 17358  if (i3) {
 17359   i3 = i1 + 116 | 0;
 17360   i23 = i1 + 36 | 0;
 17361   i9 = i8 + 12 | 0;
 17362   i15 = i11 | 0;
 17363   i21 = i8 + 32 | 0;
 17364   i26 = i11 + 4 | 0;
 17365   i13 = i11 + 8 | 0;
 17366   i22 = i11 + 12 | 0;
 17367   i24 = i11 + 16 | 0;
 17368   i2 = i11 + 20 | 0;
 17369   i25 = i11 + 24 | 0;
 17370   i12 = i11 + 28 | 0;
 17371   i16 = i8 + 40 | 0;
 17372   i14 = i8 + 4 | 0;
 17373   i17 = i11 + 52 | 0;
 17374   i18 = i11 + 32 | 0;
 17375   i20 = i11 + 36 | 0;
 17376   i19 = i11 + 40 | 0;
 17377   i27 = i8 + 20 | 0;
 17378   i28 = i11 + 48 | 0;
 17379   i29 = 0;
 17380   i30 = 0;
 17381   i31 = HEAP32[i3 >> 2] | 0;
 17382   while (1) {
 17383    i32 = i31 + (i30 << 3) | 0;
 17384    i33 = HEAP32[i32 >> 2] | 0;
 17385    if ((i33 | 0) == 0) {
 17386     i34 = i31;
 17387     i35 = 0;
 17388    } else {
 17389     i36 = HEAP32[i23 >> 2] | 0;
 17390     i37 = i6 + (i30 << 2) | 0;
 17391     i38 = HEAP32[i37 >> 2] | 0;
 17392     i39 = i38 + 24 | 0;
 17393     i40 = HEAP32[i39 >> 2] | 0;
 17394     i41 = i38 + 28 | 0;
 17395     i42 = HEAP32[i41 >> 2] | 0;
 17396     if ((i33 | 0) > 0) {
 17397      i33 = 0;
 17398      do {
 17399       i43 = i33 + i29 | 0;
 17400       _memset(i36 + (i43 * 136 | 0) | 0, 0, 136);
 17401       HEAPF32[i36 + (i43 * 136 | 0) + 124 >> 2] = -3.4028234663852886e+38;
 17402       HEAPF32[i36 + (i43 * 136 | 0) + 128 >> 2] = 3.4028234663852886e+38;
 17403       HEAPF32[i36 + (i43 * 136 | 0) + 84 >> 2] = 0.0;
 17404       HEAPF32[i36 + (i43 * 136 | 0) + 80 >> 2] = 0.0;
 17405       HEAP32[i36 + (i43 * 136 | 0) + 104 >> 2] = i40;
 17406       HEAP32[i36 + (i43 * 136 | 0) + 108 >> 2] = i42;
 17407       i33 = i33 + 1 | 0;
 17408      } while ((i33 | 0) < (HEAP32[i32 >> 2] | 0));
 17409      i44 = HEAP32[i37 >> 2] | 0;
 17410     } else {
 17411      i44 = i38;
 17413     _memset(i40 + 504 | 0, 0, 32);
 17414     _memset(i42 + 504 | 0, 0, 32);
 17415     HEAPF32[i15 >> 2] = 1.0 / +HEAPF32[i9 >> 2];
 17416     HEAPF32[i26 >> 2] = +HEAPF32[i21 >> 2];
 17417     HEAP32[i13 >> 2] = i36 + (i29 * 136 | 0) + 16;
 17418     HEAP32[i22 >> 2] = i36 + (i29 * 136 | 0);
 17419     HEAP32[i24 >> 2] = 0;
 17420     HEAP32[i2 >> 2] = i36 + (i29 * 136 | 0) + 32;
 17421     HEAP32[i25 >> 2] = 34;
 17422     HEAP32[i12 >> 2] = i36 + (i29 * 136 | 0) + 116;
 17423     i33 = i36 + (i29 * 136 | 0) + 120 | 0;
 17424     HEAPF32[i33 >> 2] = +HEAPF32[i16 >> 2];
 17425     HEAPF32[i17 >> 2] = +HEAPF32[i14 >> 2];
 17426     HEAP32[i18 >> 2] = i33;
 17427     i33 = i36 + (i29 * 136 | 0) + 124 | 0;
 17428     HEAP32[i20 >> 2] = i33;
 17429     i43 = i36 + (i29 * 136 | 0) + 128 | 0;
 17430     HEAP32[i19 >> 2] = i43;
 17431     HEAP32[i28 >> 2] = HEAP32[i27 >> 2];
 17432     FUNCTION_TABLE_vii[HEAP32[(HEAP32[i44 >> 2] | 0) + 20 >> 2] & 127](i44, i11);
 17433     i45 = (HEAP32[i37 >> 2] | 0) + 16 | 0;
 17434     d46 = +HEAPF32[i45 >> 2];
 17435     if (+HEAPF32[i43 >> 2] > d46) {
 17436      HEAPF32[i43 >> 2] = d46;
 17437      d47 = +HEAPF32[i45 >> 2];
 17438     } else {
 17439      d47 = d46;
 17441     d46 = -0.0 - d47;
 17442     if (+HEAPF32[i33 >> 2] < d46) {
 17443      HEAPF32[i33 >> 2] = d46;
 17445     if ((HEAP32[i32 >> 2] | 0) > 0) {
 17446      i33 = i38;
 17447      i45 = i40 + 336 | 0;
 17448      i43 = i40 + 256 | 0;
 17449      i48 = i40 + 260 | 0;
 17450      i49 = i40 + 264 | 0;
 17451      i50 = i40 + 272 | 0;
 17452      i51 = i40 + 276 | 0;
 17453      i52 = i40 + 280 | 0;
 17454      i53 = i40 + 288 | 0;
 17455      i54 = i40 + 292 | 0;
 17456      i55 = i40 + 296 | 0;
 17457      i56 = i42 + 336 | 0;
 17458      i57 = i42 + 256 | 0;
 17459      i58 = i42 + 260 | 0;
 17460      i59 = i42 + 264 | 0;
 17461      i60 = i42 + 272 | 0;
 17462      i61 = i42 + 276 | 0;
 17463      i62 = i42 + 280 | 0;
 17464      i63 = i42 + 288 | 0;
 17465      i64 = i42 + 292 | 0;
 17466      i65 = i42 + 296 | 0;
 17467      i66 = i40 + 304 | 0;
 17468      i67 = i40 + 308 | 0;
 17469      i68 = i40 + 312 | 0;
 17470      i69 = i40 + 320 | 0;
 17471      i70 = i40 + 324 | 0;
 17472      i71 = i40 + 328 | 0;
 17473      i72 = i42 + 304 | 0;
 17474      i73 = i42 + 308 | 0;
 17475      i74 = i42 + 312 | 0;
 17476      i75 = i42 + 320 | 0;
 17477      i76 = i42 + 324 | 0;
 17478      i77 = i42 + 328 | 0;
 17479      i78 = 0;
 17480      do {
 17481       i79 = i78 + i29 | 0;
 17482       HEAP32[i36 + (i79 * 136 | 0) + 112 >> 2] = i33;
 17483       i80 = HEAP32[i39 >> 2] | 0;
 17484       d46 = +HEAPF32[i36 + (i79 * 136 | 0) >> 2];
 17485       d81 = +HEAPF32[i36 + (i79 * 136 | 0) + 4 >> 2];
 17486       d82 = +HEAPF32[i36 + (i79 * 136 | 0) + 8 >> 2];
 17487       d83 = (d46 * +HEAPF32[i80 + 272 >> 2] + d81 * +HEAPF32[i80 + 276 >> 2] + d82 * +HEAPF32[i80 + 280 >> 2]) * +HEAPF32[i80 + 540 >> 2];
 17488       d84 = (d46 * +HEAPF32[i80 + 288 >> 2] + d81 * +HEAPF32[i80 + 292 >> 2] + d82 * +HEAPF32[i80 + 296 >> 2]) * +HEAPF32[i80 + 544 >> 2];
 17489       HEAPF32[i36 + (i79 * 136 | 0) + 48 >> 2] = (+HEAPF32[i80 + 256 >> 2] * d46 + +HEAPF32[i80 + 260 >> 2] * d81 + +HEAPF32[i80 + 264 >> 2] * d82) * +HEAPF32[i80 + 536 >> 2];
 17490       HEAPF32[i36 + (i79 * 136 | 0) + 52 >> 2] = d83;
 17491       HEAPF32[i36 + (i79 * 136 | 0) + 56 >> 2] = d84;
 17492       HEAPF32[i36 + (i79 * 136 | 0) + 60 >> 2] = 0.0;
 17493       i80 = HEAP32[i41 >> 2] | 0;
 17494       d84 = +HEAPF32[i36 + (i79 * 136 | 0) + 32 >> 2];
 17495       d83 = +HEAPF32[i36 + (i79 * 136 | 0) + 36 >> 2];
 17496       d85 = +HEAPF32[i36 + (i79 * 136 | 0) + 40 >> 2];
 17497       d86 = (d84 * +HEAPF32[i80 + 272 >> 2] + d83 * +HEAPF32[i80 + 276 >> 2] + d85 * +HEAPF32[i80 + 280 >> 2]) * +HEAPF32[i80 + 540 >> 2];
 17498       d87 = (d84 * +HEAPF32[i80 + 288 >> 2] + d83 * +HEAPF32[i80 + 292 >> 2] + d85 * +HEAPF32[i80 + 296 >> 2]) * +HEAPF32[i80 + 544 >> 2];
 17499       HEAPF32[i36 + (i79 * 136 | 0) + 64 >> 2] = (+HEAPF32[i80 + 256 >> 2] * d84 + +HEAPF32[i80 + 260 >> 2] * d83 + +HEAPF32[i80 + 264 >> 2] * d85) * +HEAPF32[i80 + 536 >> 2];
 17500       HEAPF32[i36 + (i79 * 136 | 0) + 68 >> 2] = d86;
 17501       HEAPF32[i36 + (i79 * 136 | 0) + 72 >> 2] = d87;
 17502       HEAPF32[i36 + (i79 * 136 | 0) + 76 >> 2] = 0.0;
 17503       d87 = +HEAPF32[i45 >> 2];
 17504       d86 = +HEAPF32[i36 + (i79 * 136 | 0) + 16 >> 2];
 17505       d88 = +HEAPF32[i36 + (i79 * 136 | 0) + 20 >> 2];
 17506       d89 = +HEAPF32[i36 + (i79 * 136 | 0) + 24 >> 2];
 17507       d90 = +HEAPF32[i56 >> 2];
 17508       d91 = 1.0 / (d86 * d87 * d86 + d88 * d87 * d88 + d89 * d87 * d89 + (d46 * (d46 * +HEAPF32[i43 >> 2] + d81 * +HEAPF32[i48 >> 2] + d82 * +HEAPF32[i49 >> 2]) + d81 * (d46 * +HEAPF32[i50 >> 2] + d81 * +HEAPF32[i51 >> 2] + d82 * +HEAPF32[i52 >> 2]) + d82 * (d46 * +HEAPF32[i53 >> 2] + d81 * +HEAPF32[i54 >> 2] + d82 * +HEAPF32[i55 >> 2])) + (d89 * d89 * d90 + (d86 * d86 * d90 + d88 * d88 * d90)) + (d84 * (d84 * +HEAPF32[i57 >> 2] + d83 * +HEAPF32[i58 >> 2] + d85 * +HEAPF32[i59 >> 2]) + d83 * (d84 * +HEAPF32[i60 >> 2] + d83 * +HEAPF32[i61 >> 2] + d85 * +HEAPF32[i62 >> 2]) + d85 * (d84 * +HEAPF32[i63 >> 2] + d83 * +HEAPF32[i64 >> 2] + d85 * +HEAPF32[i65 >> 2])));
 17509       HEAPF32[i36 + (i79 * 136 | 0) + 92 >> 2] = d91;
 17510       i80 = i36 + (i79 * 136 | 0) + 116 | 0;
 17511       HEAPF32[i80 >> 2] = d91 * +HEAPF32[i80 >> 2] + d91 * (0.0 - +HEAPF32[i17 >> 2] * (d86 * +HEAPF32[i66 >> 2] + d88 * +HEAPF32[i67 >> 2] + d89 * +HEAPF32[i68 >> 2] + (d46 * +HEAPF32[i69 >> 2] + d81 * +HEAPF32[i70 >> 2] + d82 * +HEAPF32[i71 >> 2]) + (d84 * +HEAPF32[i75 >> 2] + d83 * +HEAPF32[i76 >> 2] + d85 * +HEAPF32[i77 >> 2] - (d86 * +HEAPF32[i72 >> 2] + d88 * +HEAPF32[i73 >> 2] + d89 * +HEAPF32[i74 >> 2]))));
 17512       HEAPF32[i36 + (i79 * 136 | 0) + 84 >> 2] = 0.0;
 17513       i78 = i78 + 1 | 0;
 17514      } while ((i78 | 0) < (HEAP32[i32 >> 2] | 0));
 17516     i32 = HEAP32[i3 >> 2] | 0;
 17517     i34 = i32;
 17518     i35 = HEAP32[i32 + (i30 << 3) >> 2] | 0;
 17520    i32 = i30 + 1 | 0;
 17521    if ((i32 | 0) < (i7 | 0)) {
 17522     i29 = i35 + i29 | 0;
 17523     i30 = i32;
 17524     i31 = i34;
 17525    } else {
 17526     break;
 17530  if ((i5 | 0) > 0) {
 17531   i34 = 0;
 17532   do {
 17533    __ZN35btSequentialImpulseConstraintSolver14convertContactEP20btPersistentManifoldRK19btContactSolverInfo(i1, HEAP32[i4 + (i34 << 2) >> 2] | 0, i8);
 17534    i34 = i34 + 1 | 0;
 17535   } while ((i34 | 0) < (i5 | 0));
 17537  i5 = HEAP32[i1 + 8 >> 2] | 0;
 17538  i34 = HEAP32[i1 + 48 >> 2] | 0;
 17539  i8 = i1 + 68 | 0;
 17540  i4 = HEAP32[i8 >> 2] | 0;
 17541  if ((i4 | 0) < (i5 | 0)) {
 17542   i31 = i1 + 72 | 0;
 17543   if ((HEAP32[i31 >> 2] | 0) < (i5 | 0)) {
 17544    if ((i5 | 0) == 0) {
 17545     i92 = 0;
 17546     i93 = i4;
 17547    } else {
 17548     i30 = __Z22btAlignedAllocInternalji(i5 << 2, 16) | 0;
 17549     i92 = i30;
 17550     i93 = HEAP32[i8 >> 2] | 0;
 17552    i30 = i1 + 76 | 0;
 17553    if ((i93 | 0) > 0) {
 17554     i29 = 0;
 17555     do {
 17556      i35 = i92 + (i29 << 2) | 0;
 17557      if ((i35 | 0) != 0) {
 17558       HEAP32[i35 >> 2] = HEAP32[(HEAP32[i30 >> 2] | 0) + (i29 << 2) >> 2];
 17560      i29 = i29 + 1 | 0;
 17561     } while ((i29 | 0) < (i93 | 0));
 17563    i93 = HEAP32[i30 >> 2] | 0;
 17564    i29 = i1 + 80 | 0;
 17565    if ((i93 | 0) != 0) {
 17566     if ((HEAP8[i29] | 0) != 0) {
 17567      __Z21btAlignedFreeInternalPv(i93);
 17569     HEAP32[i30 >> 2] = 0;
 17571    HEAP8[i29] = 1;
 17572    HEAP32[i30 >> 2] = i92;
 17573    HEAP32[i31 >> 2] = i5;
 17574    i94 = i92;
 17575   } else {
 17576    i94 = HEAP32[i1 + 76 >> 2] | 0;
 17578   i92 = i4;
 17579   do {
 17580    i4 = i94 + (i92 << 2) | 0;
 17581    if ((i4 | 0) != 0) {
 17582     HEAP32[i4 >> 2] = 0;
 17584    i92 = i92 + 1 | 0;
 17585   } while ((i92 | 0) < (i5 | 0));
 17587  HEAP32[i8 >> 2] = i5;
 17588  i8 = i1 + 88 | 0;
 17589  i92 = HEAP32[i8 >> 2] | 0;
 17590  if ((i92 | 0) < (i34 | 0)) {
 17591   i94 = i1 + 92 | 0;
 17592   if ((HEAP32[i94 >> 2] | 0) < (i34 | 0)) {
 17593    if ((i34 | 0) == 0) {
 17594     i95 = 0;
 17595     i96 = i92;
 17596    } else {
 17597     i4 = __Z22btAlignedAllocInternalji(i34 << 2, 16) | 0;
 17598     i95 = i4;
 17599     i96 = HEAP32[i8 >> 2] | 0;
 17601    i4 = i1 + 96 | 0;
 17602    if ((i96 | 0) > 0) {
 17603     i31 = 0;
 17604     do {
 17605      i30 = i95 + (i31 << 2) | 0;
 17606      if ((i30 | 0) != 0) {
 17607       HEAP32[i30 >> 2] = HEAP32[(HEAP32[i4 >> 2] | 0) + (i31 << 2) >> 2];
 17609      i31 = i31 + 1 | 0;
 17610     } while ((i31 | 0) < (i96 | 0));
 17612    i96 = HEAP32[i4 >> 2] | 0;
 17613    i31 = i1 + 100 | 0;
 17614    if ((i96 | 0) != 0) {
 17615     if ((HEAP8[i31] | 0) != 0) {
 17616      __Z21btAlignedFreeInternalPv(i96);
 17618     HEAP32[i4 >> 2] = 0;
 17620    HEAP8[i31] = 1;
 17621    HEAP32[i4 >> 2] = i95;
 17622    HEAP32[i94 >> 2] = i34;
 17623    i97 = i95;
 17624   } else {
 17625    i97 = HEAP32[i1 + 96 >> 2] | 0;
 17627   i95 = i92;
 17628   do {
 17629    i92 = i97 + (i95 << 2) | 0;
 17630    if ((i92 | 0) != 0) {
 17631     HEAP32[i92 >> 2] = 0;
 17633    i95 = i95 + 1 | 0;
 17634   } while ((i95 | 0) < (i34 | 0));
 17636  HEAP32[i8 >> 2] = i34;
 17637  if ((i5 | 0) > 0) {
 17638   i8 = HEAP32[i1 + 76 >> 2] | 0;
 17639   i95 = 0;
 17640   do {
 17641    HEAP32[i8 + (i95 << 2) >> 2] = i95;
 17642    i95 = i95 + 1 | 0;
 17643   } while ((i95 | 0) < (i5 | 0));
 17645  if ((i34 | 0) <= 0) {
 17646   __ZN15CProfileManager12Stop_ProfileEv();
 17647   STACKTOP = i10;
 17648   return +0.0;
 17650  i5 = HEAP32[i1 + 96 >> 2] | 0;
 17651  i1 = 0;
 17652  do {
 17653   HEAP32[i5 + (i1 << 2) >> 2] = i1;
 17654   i1 = i1 + 1 | 0;
 17655  } while ((i1 | 0) < (i34 | 0));
 17656  __ZN15CProfileManager12Stop_ProfileEv();
 17657  STACKTOP = i10;
 17658  return +0.0;
 17660 function __ZN33btMinkowskiPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAlloc(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11) {
 17661  i1 = i1 | 0;
 17662  i2 = i2 | 0;
 17663  i3 = i3 | 0;
 17664  i4 = i4 | 0;
 17665  i5 = i5 | 0;
 17666  i6 = i6 | 0;
 17667  i7 = i7 | 0;
 17668  i8 = i8 | 0;
 17669  i9 = i9 | 0;
 17670  i10 = i10 | 0;
 17671  i11 = i11 | 0;
 17672  var i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, d42 = 0.0, d43 = 0.0, d44 = 0.0, d45 = 0.0, d46 = 0.0, d47 = 0.0, d48 = 0.0, d49 = 0.0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, d63 = 0.0, d64 = 0.0, d65 = 0.0, d66 = 0.0, d67 = 0.0, d68 = 0.0, d69 = 0.0, d70 = 0.0, d71 = 0.0, d72 = 0.0, d73 = 0.0, d74 = 0.0, d75 = 0.0, d76 = 0.0, d77 = 0.0, d78 = 0.0, d79 = 0.0, d80 = 0.0, d81 = 0.0, d82 = 0.0, i83 = 0;
 17673  i11 = STACKTOP;
 17674  STACKTOP = STACKTOP + 4264 | 0;
 17675  i1 = i11 | 0;
 17676  i12 = i11 + 992 | 0;
 17677  i13 = i11 + 1984 | 0;
 17678  i14 = i11 + 2976 | 0;
 17679  i15 = i11 + 3968 | 0;
 17680  i16 = i11 + 3984 | 0;
 17681  i17 = i11 + 4e3 | 0;
 17682  i18 = i11 + 4080 | 0;
 17683  i19 = i11 + 4216 | 0;
 17684  if (((HEAP32[i3 + 4 >> 2] | 0) - 17 | 0) >>> 0 < 2) {
 17685   i20 = ((HEAP32[i4 + 4 >> 2] | 0) - 17 | 0) >>> 0 < 2;
 17686  } else {
 17687   i20 = 0;
 17689  i21 = i1 | 0;
 17690  i22 = i13 | 0;
 17691  i23 = i5 | 0;
 17692  i24 = i5 + 16 | 0;
 17693  i25 = i5 + 32 | 0;
 17694  i26 = i5 + 4 | 0;
 17695  i27 = i5 + 20 | 0;
 17696  i28 = i5 + 36 | 0;
 17697  i29 = i5 + 8 | 0;
 17698  i30 = i5 + 24 | 0;
 17699  i31 = i5 + 40 | 0;
 17700  i32 = i6 | 0;
 17701  i33 = i6 + 16 | 0;
 17702  i34 = i6 + 32 | 0;
 17703  i35 = i6 + 4 | 0;
 17704  i36 = i6 + 20 | 0;
 17705  i37 = i6 + 36 | 0;
 17706  i38 = i6 + 8 | 0;
 17707  i39 = i6 + 24 | 0;
 17708  i40 = i6 + 40 | 0;
 17709  i41 = 0;
 17710  do {
 17711   __ZN33btMinkowskiPenetrationDepthSolver24getPenetrationDirectionsEv() | 0;
 17712   d42 = +HEAPF32[13144 + (i41 << 4) >> 2];
 17713   d43 = +HEAPF32[13148 + (i41 << 4) >> 2];
 17714   d44 = +HEAPF32[13152 + (i41 << 4) >> 2];
 17715   d45 = -0.0 - d42;
 17716   d46 = -0.0 - d43;
 17717   d47 = -0.0 - d44;
 17718   d48 = +HEAPF32[i26 >> 2] * d45 + +HEAPF32[i27 >> 2] * d46 + +HEAPF32[i28 >> 2] * d47;
 17719   d49 = +HEAPF32[i29 >> 2] * d45 + +HEAPF32[i30 >> 2] * d46 + +HEAPF32[i31 >> 2] * d47;
 17720   HEAPF32[i13 + (i41 << 4) >> 2] = +HEAPF32[i23 >> 2] * d45 + +HEAPF32[i24 >> 2] * d46 + +HEAPF32[i25 >> 2] * d47;
 17721   HEAPF32[i13 + (i41 << 4) + 4 >> 2] = d48;
 17722   HEAPF32[i13 + (i41 << 4) + 8 >> 2] = d49;
 17723   HEAPF32[i13 + (i41 << 4) + 12 >> 2] = 0.0;
 17724   d49 = d42 * +HEAPF32[i35 >> 2] + d43 * +HEAPF32[i36 >> 2] + d44 * +HEAPF32[i37 >> 2];
 17725   d48 = d42 * +HEAPF32[i38 >> 2] + d43 * +HEAPF32[i39 >> 2] + d44 * +HEAPF32[i40 >> 2];
 17726   HEAPF32[i14 + (i41 << 4) >> 2] = d42 * +HEAPF32[i32 >> 2] + d43 * +HEAPF32[i33 >> 2] + d44 * +HEAPF32[i34 >> 2];
 17727   HEAPF32[i14 + (i41 << 4) + 4 >> 2] = d49;
 17728   HEAPF32[i14 + (i41 << 4) + 8 >> 2] = d48;
 17729   HEAPF32[i14 + (i41 << 4) + 12 >> 2] = 0.0;
 17730   i41 = i41 + 1 | 0;
 17731  } while ((i41 | 0) < 42);
 17732  i41 = i12 | 0;
 17733  i50 = i14 | 0;
 17734  i51 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i3 >> 2] | 0) + 76 >> 2] & 127](i3) | 0;
 17735  if ((i51 | 0) > 0) {
 17736   i52 = i3;
 17737   i53 = i15 | 0;
 17738   i54 = i15 + 4 | 0;
 17739   i55 = i15 + 8 | 0;
 17740   i56 = i15;
 17741   i57 = i15 + 12 | 0;
 17742   i58 = 0;
 17743   i59 = 42;
 17744   while (1) {
 17745    FUNCTION_TABLE_viii[HEAP32[(HEAP32[i52 >> 2] | 0) + 80 >> 2] & 127](i3, i58, i15);
 17746    d48 = +HEAPF32[i53 >> 2];
 17747    d49 = +HEAPF32[i54 >> 2];
 17748    d44 = +HEAPF32[i55 >> 2];
 17749    d43 = d48 * +HEAPF32[i24 >> 2] + d49 * +HEAPF32[i27 >> 2] + d44 * +HEAPF32[i30 >> 2];
 17750    d42 = d48 * +HEAPF32[i25 >> 2] + d49 * +HEAPF32[i28 >> 2] + d44 * +HEAPF32[i31 >> 2];
 17751    HEAPF32[i53 >> 2] = +HEAPF32[i23 >> 2] * d48 + +HEAPF32[i26 >> 2] * d49 + +HEAPF32[i29 >> 2] * d44;
 17752    HEAPF32[i54 >> 2] = d43;
 17753    HEAPF32[i55 >> 2] = d42;
 17754    HEAPF32[i57 >> 2] = 0.0;
 17755    __ZN33btMinkowskiPenetrationDepthSolver24getPenetrationDirectionsEv() | 0;
 17756    i60 = 13144 + (i59 << 4) | 0;
 17757    HEAP32[i60 >> 2] = HEAP32[i56 >> 2];
 17758    HEAP32[i60 + 4 >> 2] = HEAP32[i56 + 4 >> 2];
 17759    HEAP32[i60 + 8 >> 2] = HEAP32[i56 + 8 >> 2];
 17760    HEAP32[i60 + 12 >> 2] = HEAP32[i56 + 12 >> 2];
 17761    d42 = +HEAPF32[i53 >> 2];
 17762    d43 = -0.0 - d42;
 17763    d44 = +HEAPF32[i54 >> 2];
 17764    d49 = -0.0 - d44;
 17765    d48 = +HEAPF32[i55 >> 2];
 17766    d47 = -0.0 - d48;
 17767    d46 = +HEAPF32[i26 >> 2] * d43 + +HEAPF32[i27 >> 2] * d49 + +HEAPF32[i28 >> 2] * d47;
 17768    d45 = +HEAPF32[i29 >> 2] * d43 + +HEAPF32[i30 >> 2] * d49 + +HEAPF32[i31 >> 2] * d47;
 17769    HEAPF32[i13 + (i59 << 4) >> 2] = +HEAPF32[i23 >> 2] * d43 + +HEAPF32[i24 >> 2] * d49 + +HEAPF32[i25 >> 2] * d47;
 17770    HEAPF32[i13 + (i59 << 4) + 4 >> 2] = d46;
 17771    HEAPF32[i13 + (i59 << 4) + 8 >> 2] = d45;
 17772    HEAPF32[i13 + (i59 << 4) + 12 >> 2] = 0.0;
 17773    d45 = d42 * +HEAPF32[i35 >> 2] + d44 * +HEAPF32[i36 >> 2] + d48 * +HEAPF32[i37 >> 2];
 17774    d46 = d42 * +HEAPF32[i38 >> 2] + d44 * +HEAPF32[i39 >> 2] + d48 * +HEAPF32[i40 >> 2];
 17775    HEAPF32[i14 + (i59 << 4) >> 2] = d42 * +HEAPF32[i32 >> 2] + d44 * +HEAPF32[i33 >> 2] + d48 * +HEAPF32[i34 >> 2];
 17776    HEAPF32[i14 + (i59 << 4) + 4 >> 2] = d45;
 17777    HEAPF32[i14 + (i59 << 4) + 8 >> 2] = d46;
 17778    HEAPF32[i14 + (i59 << 4) + 12 >> 2] = 0.0;
 17779    i60 = i58 + 1 | 0;
 17780    if ((i60 | 0) < (i51 | 0)) {
 17781     i58 = i60;
 17782     i59 = i59 + 1 | 0;
 17783    } else {
 17784     break;
 17787   i61 = i51 + 42 | 0;
 17788  } else {
 17789   i61 = 42;
 17791  i51 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i4 >> 2] | 0) + 76 >> 2] & 127](i4) | 0;
 17792  if ((i51 | 0) > 0) {
 17793   i59 = i4;
 17794   i58 = i16 | 0;
 17795   i55 = i16 + 4 | 0;
 17796   i54 = i16 + 8 | 0;
 17797   i53 = i16;
 17798   i56 = i16 + 12 | 0;
 17799   i57 = i61;
 17800   i15 = 0;
 17801   while (1) {
 17802    FUNCTION_TABLE_viii[HEAP32[(HEAP32[i59 >> 2] | 0) + 80 >> 2] & 127](i4, i15, i16);
 17803    d46 = +HEAPF32[i58 >> 2];
 17804    d45 = +HEAPF32[i55 >> 2];
 17805    d48 = +HEAPF32[i54 >> 2];
 17806    d44 = d46 * +HEAPF32[i33 >> 2] + d45 * +HEAPF32[i36 >> 2] + d48 * +HEAPF32[i39 >> 2];
 17807    d42 = d46 * +HEAPF32[i34 >> 2] + d45 * +HEAPF32[i37 >> 2] + d48 * +HEAPF32[i40 >> 2];
 17808    HEAPF32[i58 >> 2] = +HEAPF32[i32 >> 2] * d46 + +HEAPF32[i35 >> 2] * d45 + +HEAPF32[i38 >> 2] * d48;
 17809    HEAPF32[i55 >> 2] = d44;
 17810    HEAPF32[i54 >> 2] = d42;
 17811    HEAPF32[i56 >> 2] = 0.0;
 17812    __ZN33btMinkowskiPenetrationDepthSolver24getPenetrationDirectionsEv() | 0;
 17813    i52 = 13144 + (i57 << 4) | 0;
 17814    HEAP32[i52 >> 2] = HEAP32[i53 >> 2];
 17815    HEAP32[i52 + 4 >> 2] = HEAP32[i53 + 4 >> 2];
 17816    HEAP32[i52 + 8 >> 2] = HEAP32[i53 + 8 >> 2];
 17817    HEAP32[i52 + 12 >> 2] = HEAP32[i53 + 12 >> 2];
 17818    d42 = +HEAPF32[i58 >> 2];
 17819    d44 = -0.0 - d42;
 17820    d48 = +HEAPF32[i55 >> 2];
 17821    d45 = -0.0 - d48;
 17822    d46 = +HEAPF32[i54 >> 2];
 17823    d47 = -0.0 - d46;
 17824    d49 = +HEAPF32[i26 >> 2] * d44 + +HEAPF32[i27 >> 2] * d45 + +HEAPF32[i28 >> 2] * d47;
 17825    d43 = +HEAPF32[i29 >> 2] * d44 + +HEAPF32[i30 >> 2] * d45 + +HEAPF32[i31 >> 2] * d47;
 17826    HEAPF32[i13 + (i57 << 4) >> 2] = +HEAPF32[i23 >> 2] * d44 + +HEAPF32[i24 >> 2] * d45 + +HEAPF32[i25 >> 2] * d47;
 17827    HEAPF32[i13 + (i57 << 4) + 4 >> 2] = d49;
 17828    HEAPF32[i13 + (i57 << 4) + 8 >> 2] = d43;
 17829    HEAPF32[i13 + (i57 << 4) + 12 >> 2] = 0.0;
 17830    d43 = d42 * +HEAPF32[i35 >> 2] + d48 * +HEAPF32[i36 >> 2] + d46 * +HEAPF32[i37 >> 2];
 17831    d49 = d42 * +HEAPF32[i38 >> 2] + d48 * +HEAPF32[i39 >> 2] + d46 * +HEAPF32[i40 >> 2];
 17832    HEAPF32[i14 + (i57 << 4) >> 2] = d42 * +HEAPF32[i32 >> 2] + d48 * +HEAPF32[i33 >> 2] + d46 * +HEAPF32[i34 >> 2];
 17833    HEAPF32[i14 + (i57 << 4) + 4 >> 2] = d43;
 17834    HEAPF32[i14 + (i57 << 4) + 8 >> 2] = d49;
 17835    HEAPF32[i14 + (i57 << 4) + 12 >> 2] = 0.0;
 17836    i52 = i15 + 1 | 0;
 17837    if ((i52 | 0) < (i51 | 0)) {
 17838     i57 = i57 + 1 | 0;
 17839     i15 = i52;
 17840    } else {
 17841     break;
 17844   i62 = i51 + i61 | 0;
 17845  } else {
 17846   i62 = i61;
 17848  FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i3 >> 2] | 0) + 68 >> 2] & 127](i3, i22, i21, i62);
 17849  FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i4 >> 2] | 0) + 68 >> 2] & 127](i4, i50, i41, i62);
 17850  if ((i62 | 0) > 0) {
 17851   i41 = i5 + 48 | 0;
 17852   i50 = i5 + 52 | 0;
 17853   i21 = i5 + 56 | 0;
 17854   i22 = i6 + 48 | 0;
 17855   i61 = i6 + 52 | 0;
 17856   i51 = i6 + 56 | 0;
 17857   if (i20) {
 17858    d49 = 0.0;
 17859    d43 = 0.0;
 17860    d46 = 0.0;
 17861    i20 = 0;
 17862    d48 = 999999984306749400.0;
 17863    while (1) {
 17864     __ZN33btMinkowskiPenetrationDepthSolver24getPenetrationDirectionsEv() | 0;
 17865     d42 = +HEAPF32[13144 + (i20 << 4) >> 2];
 17866     d47 = +HEAPF32[13148 + (i20 << 4) >> 2];
 17867     d45 = +HEAPF32[13156 + (i20 << 4) >> 2];
 17868     do {
 17869      if (d42 * d42 + d47 * d47 + 0.0 > .01) {
 17870       d44 = +HEAPF32[i1 + (i20 << 4) >> 2];
 17871       d63 = +HEAPF32[i1 + (i20 << 4) + 4 >> 2];
 17872       d64 = +HEAPF32[i1 + (i20 << 4) + 8 >> 2];
 17873       d65 = +HEAPF32[i12 + (i20 << 4) >> 2];
 17874       d66 = +HEAPF32[i12 + (i20 << 4) + 4 >> 2];
 17875       d67 = +HEAPF32[i12 + (i20 << 4) + 8 >> 2];
 17876       d68 = d42 * (+HEAPF32[i22 >> 2] + (d65 * +HEAPF32[i32 >> 2] + d66 * +HEAPF32[i35 >> 2] + d67 * +HEAPF32[i38 >> 2]) - (+HEAPF32[i41 >> 2] + (d44 * +HEAPF32[i23 >> 2] + d63 * +HEAPF32[i26 >> 2] + d64 * +HEAPF32[i29 >> 2]))) + d47 * (+HEAPF32[i61 >> 2] + (d65 * +HEAPF32[i33 >> 2] + d66 * +HEAPF32[i36 >> 2] + d67 * +HEAPF32[i39 >> 2]) - (+HEAPF32[i50 >> 2] + (d44 * +HEAPF32[i24 >> 2] + d63 * +HEAPF32[i27 >> 2] + d64 * +HEAPF32[i30 >> 2]))) + 0.0;
 17877       if (d68 >= d48) {
 17878        d69 = d48;
 17879        d70 = d46;
 17880        d71 = d43;
 17881        d72 = d49;
 17882        break;
 17884       d69 = d68;
 17885       d70 = d42;
 17886       d71 = d47;
 17887       d72 = d45;
 17888      } else {
 17889       d69 = d48;
 17890       d70 = d46;
 17891       d71 = d43;
 17892       d72 = d49;
 17894     } while (0);
 17895     i15 = i20 + 1 | 0;
 17896     if ((i15 | 0) < (i62 | 0)) {
 17897      d49 = d72;
 17898      d43 = d71;
 17899      d46 = d70;
 17900      i20 = i15;
 17901      d48 = d69;
 17902     } else {
 17903      d73 = d72;
 17904      d74 = 0.0;
 17905      d75 = d71;
 17906      d76 = d70;
 17907      d77 = d69;
 17908      break;
 17911   } else {
 17912    d69 = 0.0;
 17913    d70 = 0.0;
 17914    d71 = 0.0;
 17915    d72 = 0.0;
 17916    i20 = 0;
 17917    d48 = 999999984306749400.0;
 17918    while (1) {
 17919     __ZN33btMinkowskiPenetrationDepthSolver24getPenetrationDirectionsEv() | 0;
 17920     d46 = +HEAPF32[13144 + (i20 << 4) >> 2];
 17921     d43 = +HEAPF32[13148 + (i20 << 4) >> 2];
 17922     d49 = +HEAPF32[13152 + (i20 << 4) >> 2];
 17923     d45 = +HEAPF32[13156 + (i20 << 4) >> 2];
 17924     do {
 17925      if (d46 * d46 + d43 * d43 + d49 * d49 > .01) {
 17926       d47 = +HEAPF32[i1 + (i20 << 4) >> 2];
 17927       d42 = +HEAPF32[i1 + (i20 << 4) + 4 >> 2];
 17928       d68 = +HEAPF32[i1 + (i20 << 4) + 8 >> 2];
 17929       d64 = +HEAPF32[i12 + (i20 << 4) >> 2];
 17930       d63 = +HEAPF32[i12 + (i20 << 4) + 4 >> 2];
 17931       d44 = +HEAPF32[i12 + (i20 << 4) + 8 >> 2];
 17932       d67 = d46 * (+HEAPF32[i22 >> 2] + (d64 * +HEAPF32[i32 >> 2] + d63 * +HEAPF32[i35 >> 2] + d44 * +HEAPF32[i38 >> 2]) - (+HEAPF32[i41 >> 2] + (d47 * +HEAPF32[i23 >> 2] + d42 * +HEAPF32[i26 >> 2] + d68 * +HEAPF32[i29 >> 2]))) + d43 * (+HEAPF32[i61 >> 2] + (d64 * +HEAPF32[i33 >> 2] + d63 * +HEAPF32[i36 >> 2] + d44 * +HEAPF32[i39 >> 2]) - (+HEAPF32[i50 >> 2] + (d47 * +HEAPF32[i24 >> 2] + d42 * +HEAPF32[i27 >> 2] + d68 * +HEAPF32[i30 >> 2]))) + d49 * (+HEAPF32[i51 >> 2] + (d64 * +HEAPF32[i34 >> 2] + d63 * +HEAPF32[i37 >> 2] + d44 * +HEAPF32[i40 >> 2]) - (+HEAPF32[i21 >> 2] + (d47 * +HEAPF32[i25 >> 2] + d42 * +HEAPF32[i28 >> 2] + d68 * +HEAPF32[i31 >> 2])));
 17933       if (d67 >= d48) {
 17934        d78 = d48;
 17935        d79 = d72;
 17936        d80 = d71;
 17937        d81 = d70;
 17938        d82 = d69;
 17939        break;
 17941       d78 = d67;
 17942       d79 = d46;
 17943       d80 = d43;
 17944       d81 = d49;
 17945       d82 = d45;
 17946      } else {
 17947       d78 = d48;
 17948       d79 = d72;
 17949       d80 = d71;
 17950       d81 = d70;
 17951       d82 = d69;
 17953     } while (0);
 17954     i15 = i20 + 1 | 0;
 17955     if ((i15 | 0) < (i62 | 0)) {
 17956      d69 = d82;
 17957      d70 = d81;
 17958      d71 = d80;
 17959      d72 = d79;
 17960      i20 = i15;
 17961      d48 = d78;
 17962     } else {
 17963      d73 = d82;
 17964      d74 = d81;
 17965      d75 = d80;
 17966      d76 = d79;
 17967      d77 = d78;
 17968      break;
 17972  } else {
 17973   d73 = 0.0;
 17974   d74 = 0.0;
 17975   d75 = 0.0;
 17976   d76 = 0.0;
 17977   d77 = 999999984306749400.0;
 17979  +__ZNK13btConvexShape19getMarginNonVirtualEv(i3);
 17980  +__ZNK13btConvexShape19getMarginNonVirtualEv(i4);
 17981  if (d77 < 0.0) {
 17982   i83 = 0;
 17983   STACKTOP = i11;
 17984   return i83 | 0;
 17986  d78 = +__ZNK13btConvexShape19getMarginNonVirtualEv(i3);
 17987  d79 = d77 + (d78 + +__ZNK13btConvexShape19getMarginNonVirtualEv(i4) + .5);
 17988  __ZN17btGjkPairDetectorC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver(i17, i3, i4, i2, 0);
 17989  HEAP32[i18 + 132 >> 2] = 0;
 17990  d78 = +HEAPF32[i5 + 48 >> 2] + d76 * d79;
 17991  d77 = +HEAPF32[i5 + 52 >> 2] + d75 * d79;
 17992  d80 = +HEAPF32[i5 + 56 >> 2] + d74 * d79;
 17993  i2 = i5;
 17994  i4 = i18;
 17995  HEAP32[i4 >> 2] = HEAP32[i2 >> 2];
 17996  HEAP32[i4 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
 17997  HEAP32[i4 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
 17998  HEAP32[i4 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
 17999  i2 = i5 + 16 | 0;
 18000  i4 = i5 + 32 | 0;
 18001  i5 = i18 + 16 | 0;
 18002  HEAP32[i5 >> 2] = HEAP32[i2 >> 2];
 18003  HEAP32[i5 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
 18004  HEAP32[i5 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
 18005  HEAP32[i5 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
 18006  i2 = i18 + 32 | 0;
 18007  HEAP32[i2 >> 2] = HEAP32[i4 >> 2];
 18008  HEAP32[i2 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
 18009  HEAP32[i2 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
 18010  HEAP32[i2 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
 18011  HEAPF32[i18 + 48 >> 2] = d78;
 18012  HEAPF32[i18 + 52 >> 2] = d77;
 18013  HEAPF32[i18 + 56 >> 2] = d80;
 18014  HEAPF32[i18 + 60 >> 2] = 0.0;
 18015  i4 = i18 + 64 | 0;
 18016  i2 = i6;
 18017  HEAP32[i4 >> 2] = HEAP32[i2 >> 2];
 18018  HEAP32[i4 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
 18019  HEAP32[i4 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
 18020  HEAP32[i4 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
 18021  i2 = i18 + 80 | 0;
 18022  i4 = i6 + 16 | 0;
 18023  HEAP32[i2 >> 2] = HEAP32[i4 >> 2];
 18024  HEAP32[i2 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
 18025  HEAP32[i2 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
 18026  HEAP32[i2 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
 18027  i4 = i18 + 96 | 0;
 18028  i2 = i6 + 32 | 0;
 18029  HEAP32[i4 >> 2] = HEAP32[i2 >> 2];
 18030  HEAP32[i4 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
 18031  HEAP32[i4 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
 18032  HEAP32[i4 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
 18033  i2 = i18 + 112 | 0;
 18034  i4 = i6 + 48 | 0;
 18035  HEAP32[i2 >> 2] = HEAP32[i4 >> 2];
 18036  HEAP32[i2 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
 18037  HEAP32[i2 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
 18038  HEAP32[i2 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
 18039  HEAPF32[i18 + 128 >> 2] = 999999984306749400.0;
 18040  HEAP32[i19 >> 2] = 1384;
 18041  i4 = i19 + 40 | 0;
 18042  HEAP8[i4] = 0;
 18043  HEAPF32[i17 + 4 >> 2] = -0.0 - d76;
 18044  HEAPF32[i17 + 8 >> 2] = -0.0 - d75;
 18045  HEAPF32[i17 + 12 >> 2] = -0.0 - d74;
 18046  HEAPF32[i17 + 16 >> 2] = 0.0;
 18047  __ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i17, i18, i19 | 0, i10, 0);
 18048  d80 = d79 - +HEAPF32[i19 + 36 >> 2];
 18049  i10 = HEAP8[i4] | 0;
 18050  if (i10 << 24 >> 24 != 0) {
 18051   i4 = i19 + 20 | 0;
 18052   d79 = +HEAPF32[i19 + 24 >> 2] - d75 * d80;
 18053   d77 = +HEAPF32[i19 + 28 >> 2] - d74 * d80;
 18054   HEAPF32[i8 >> 2] = +HEAPF32[i4 >> 2] - d76 * d80;
 18055   HEAPF32[i8 + 4 >> 2] = d79;
 18056   HEAPF32[i8 + 8 >> 2] = d77;
 18057   HEAPF32[i8 + 12 >> 2] = 0.0;
 18058   i8 = i9;
 18059   i9 = i4;
 18060   HEAP32[i8 >> 2] = HEAP32[i9 >> 2];
 18061   HEAP32[i8 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
 18062   HEAP32[i8 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
 18063   HEAP32[i8 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
 18064   HEAPF32[i7 >> 2] = d76;
 18065   HEAPF32[i7 + 4 >> 2] = d75;
 18066   HEAPF32[i7 + 8 >> 2] = d74;
 18067   HEAPF32[i7 + 12 >> 2] = d73;
 18069  i83 = i10 << 24 >> 24 != 0;
 18070  STACKTOP = i11;
 18071  return i83 | 0;
 18073 function _main(i1, i2) {
 18074  i1 = i1 | 0;
 18075  i2 = i2 | 0;
 18076  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0;
 18077  i2 = STACKTOP;
 18078  STACKTOP = STACKTOP + 80 | 0;
 18079  i1 = i2 | 0;
 18080  i3 = i2 + 32 | 0;
 18081  i4 = i2 + 48 | 0;
 18082  i5 = i2 + 64 | 0;
 18083  i6 = i5 | 0;
 18084  i7 = STACKTOP;
 18085  STACKTOP = STACKTOP + 136 | 0;
 18086  i8 = STACKTOP;
 18087  STACKTOP = STACKTOP + 16 | 0;
 18088  i9 = STACKTOP;
 18089  STACKTOP = STACKTOP + 16 | 0;
 18090  i10 = i9 | 0;
 18091  i11 = STACKTOP;
 18092  STACKTOP = STACKTOP + 16 | 0;
 18093  i12 = STACKTOP;
 18094  STACKTOP = STACKTOP + 136 | 0;
 18095  i13 = STACKTOP;
 18096  STACKTOP = STACKTOP + 64 | 0;
 18097  i14 = __Znwj(88) | 0;
 18098  i15 = i14;
 18099  HEAP32[i1 >> 2] = 0;
 18100  HEAP32[i1 + 4 >> 2] = 0;
 18101  HEAP32[i1 + 8 >> 2] = 0;
 18102  HEAP32[i1 + 12 >> 2] = 4096;
 18103  HEAP32[i1 + 16 >> 2] = 4096;
 18104  HEAP32[i1 + 20 >> 2] = 0;
 18105  HEAP32[i1 + 24 >> 2] = 0;
 18106  HEAP32[i1 + 28 >> 2] = 1;
 18107  __ZN31btDefaultCollisionConfigurationC2ERK34btDefaultCollisionConstructionInfo(i15, i1);
 18108  i1 = __Znwj(5388) | 0;
 18109  i16 = i1;
 18110  i17 = i14;
 18111  __ZN21btCollisionDispatcherC2EP24btCollisionConfiguration(i16, i17);
 18112  i18 = __Znwj(156) | 0;
 18113  __ZN16btDbvtBroadphaseC2EP22btOverlappingPairCache(i18, 0);
 18114  i19 = i18;
 18115  i20 = __Znwj(128) | 0;
 18116  i21 = i20;
 18117  __ZN35btSequentialImpulseConstraintSolverC2Ev(i21);
 18118  i22 = __Znwj(268) | 0;
 18119  i23 = i22;
 18120  __ZN23btDiscreteDynamicsWorldC2EP12btDispatcherP21btBroadphaseInterfaceP18btConstraintSolverP24btCollisionConfiguration(i23, i1, i19, i20, i17);
 18121  i17 = HEAP32[(HEAP32[i22 >> 2] | 0) + 68 >> 2] | 0;
 18122  HEAPF32[i3 >> 2] = 0.0;
 18123  HEAPF32[i3 + 4 >> 2] = -10.0;
 18124  HEAPF32[i3 + 8 >> 2] = 0.0;
 18125  HEAPF32[i3 + 12 >> 2] = 0.0;
 18126  FUNCTION_TABLE_vii[i17 & 127](i23, i3);
 18127  i3 = __Z22btAlignedAllocInternalji(56, 16) | 0;
 18128  __ZN23btPolyhedralConvexShapeC2Ev(i3);
 18129  HEAP32[i3 >> 2] = 4984;
 18130  HEAP32[i3 + 4 >> 2] = 0;
 18131  i17 = i3;
 18132  i24 = i3;
 18133  d25 = +FUNCTION_TABLE_fi[HEAP32[1257] & 7](i17);
 18134  d26 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i24 >> 2] | 0) + 44 >> 2] & 7](i17);
 18135  d27 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i24 >> 2] | 0) + 44 >> 2] & 7](i17);
 18136  d28 = +HEAPF32[i3 + 16 >> 2] * 50.0 - d26;
 18137  d26 = +HEAPF32[i3 + 20 >> 2] * 50.0 - d27;
 18138  HEAPF32[i3 + 28 >> 2] = +HEAPF32[i3 + 12 >> 2] * 50.0 - d25;
 18139  HEAPF32[i3 + 32 >> 2] = d28;
 18140  HEAPF32[i3 + 36 >> 2] = d26;
 18141  HEAPF32[i3 + 40 >> 2] = 0.0;
 18142  i17 = i3;
 18143  i3 = __Z22btAlignedAllocInternalji(4, 16) | 0;
 18144  i24 = i3;
 18145  i29 = (i3 | 0) == 0;
 18146  if (!i29) {
 18147   HEAP32[i24 >> 2] = i17;
 18149  i30 = i4 | 0;
 18150  _memset(i30 | 0, 0, 16);
 18151  _memset(i5 | 0, 0, 16);
 18152  i31 = __Znwj(200) | 0;
 18153  do {
 18154   if ((HEAP8[14344] | 0) == 0) {
 18155    if ((___cxa_guard_acquire(14344) | 0) == 0) {
 18156     break;
 18158    do {
 18159     if ((HEAP8[14352] | 0) == 0) {
 18160      if ((___cxa_guard_acquire(14352) | 0) == 0) {
 18161       break;
 18163      HEAPF32[3550] = 1.0;
 18164      _memset(14204, 0, 16);
 18165      HEAPF32[3555] = 1.0;
 18166      _memset(14224, 0, 16);
 18167      HEAPF32[3560] = 1.0;
 18168      HEAPF32[3561] = 0.0;
 18170    } while (0);
 18171    HEAP32[3534] = HEAP32[3550];
 18172    HEAP32[3535] = HEAP32[3551];
 18173    HEAP32[3536] = HEAP32[3552];
 18174    HEAP32[3537] = HEAP32[3553];
 18175    HEAP32[3538] = HEAP32[3554];
 18176    HEAP32[14156 >> 2] = HEAP32[14220 >> 2];
 18177    HEAP32[14160 >> 2] = HEAP32[14224 >> 2];
 18178    HEAP32[14164 >> 2] = HEAP32[14228 >> 2];
 18179    HEAP32[3542] = HEAP32[3558];
 18180    HEAP32[14172 >> 2] = HEAP32[14236 >> 2];
 18181    HEAP32[14176 >> 2] = HEAP32[14240 >> 2];
 18182    HEAP32[14180 >> 2] = HEAP32[14244 >> 2];
 18183    _memset(14184, 0, 16);
 18185  } while (0);
 18186  HEAP32[i31 >> 2] = 3864;
 18187  HEAPF32[i31 + 4 >> 2] = 1.0;
 18188  i32 = i31 + 8 | 0;
 18189  HEAP32[i32 >> 2] = HEAP32[i30 >> 2];
 18190  HEAP32[i32 + 4 >> 2] = HEAP32[i30 + 4 >> 2];
 18191  HEAP32[i32 + 8 >> 2] = HEAP32[i30 + 8 >> 2];
 18192  i32 = HEAP32[i4 + 12 >> 2] | 0;
 18193  HEAP32[i31 + 20 >> 2] = i32;
 18194  HEAPF32[i31 + 24 >> 2] = 1.0;
 18195  i4 = i31 + 28 | 0;
 18196  i33 = HEAP32[i6 >> 2] | 0;
 18197  i34 = HEAP32[i6 + 4 >> 2] | 0;
 18198  HEAP32[i4 >> 2] = i33;
 18199  HEAP32[i4 + 4 >> 2] = i34;
 18200  i4 = i5 + 8 | 0;
 18201  i5 = i31 + 36 | 0;
 18202  i6 = HEAP32[i4 >> 2] | 0;
 18203  i35 = HEAP32[i4 + 4 >> 2] | 0;
 18204  HEAP32[i5 >> 2] = i6;
 18205  HEAP32[i5 + 4 >> 2] = i35;
 18206  HEAPF32[i31 + 44 >> 2] = 1.0;
 18207  HEAPF32[i31 + 48 >> 2] = 0.0;
 18208  HEAPF32[i31 + 52 >> 2] = 0.0;
 18209  HEAPF32[i31 + 56 >> 2] = -56.0;
 18210  HEAPF32[i31 + 60 >> 2] = 0.0;
 18211  HEAPF32[i31 + 64 >> 2] = 0.0;
 18212  i5 = i31 + 68 | 0;
 18213  HEAP32[i5 >> 2] = HEAP32[3534];
 18214  HEAP32[i5 + 4 >> 2] = HEAP32[3535];
 18215  HEAP32[i5 + 8 >> 2] = HEAP32[3536];
 18216  HEAP32[i5 + 12 >> 2] = HEAP32[3537];
 18217  i5 = i31 + 84 | 0;
 18218  HEAP32[i5 >> 2] = HEAP32[3538];
 18219  HEAP32[i5 + 4 >> 2] = HEAP32[14156 >> 2];
 18220  HEAP32[i5 + 8 >> 2] = HEAP32[14160 >> 2];
 18221  HEAP32[i5 + 12 >> 2] = HEAP32[14164 >> 2];
 18222  i5 = i31 + 100 | 0;
 18223  HEAP32[i5 >> 2] = HEAP32[3542];
 18224  HEAP32[i5 + 4 >> 2] = HEAP32[14172 >> 2];
 18225  HEAP32[i5 + 8 >> 2] = HEAP32[14176 >> 2];
 18226  HEAP32[i5 + 12 >> 2] = HEAP32[14180 >> 2];
 18227  i5 = i31 + 116 | 0;
 18228  HEAP32[i5 >> 2] = HEAP32[3546];
 18229  HEAP32[i5 + 4 >> 2] = HEAP32[14188 >> 2];
 18230  HEAP32[i5 + 8 >> 2] = HEAP32[14192 >> 2];
 18231  HEAP32[i5 + 12 >> 2] = HEAP32[14196 >> 2];
 18232  HEAPF32[i31 + 132 >> 2] = 1.0;
 18233  i5 = i31 + 136 | 0;
 18234  HEAP32[i5 >> 2] = HEAP32[i30 >> 2];
 18235  HEAP32[i5 + 4 >> 2] = HEAP32[i30 + 4 >> 2];
 18236  HEAP32[i5 + 8 >> 2] = HEAP32[i30 + 8 >> 2];
 18237  HEAP32[i31 + 148 >> 2] = i32;
 18238  HEAPF32[i31 + 152 >> 2] = 1.0;
 18239  i32 = i31 + 156 | 0;
 18240  HEAP32[i32 >> 2] = i33;
 18241  HEAP32[i32 + 4 >> 2] = i34;
 18242  i34 = i31 + 164 | 0;
 18243  HEAP32[i34 >> 2] = i6;
 18244  HEAP32[i34 + 4 >> 2] = i35;
 18245  HEAPF32[i31 + 172 >> 2] = 1.0;
 18246  HEAPF32[i31 + 176 >> 2] = 0.0;
 18247  HEAPF32[i31 + 180 >> 2] = 0.0;
 18248  HEAPF32[i31 + 184 >> 2] = -56.0;
 18249  HEAPF32[i31 + 188 >> 2] = 0.0;
 18250  HEAPF32[i31 + 192 >> 2] = 0.0;
 18251  HEAP32[i31 + 196 >> 2] = 0;
 18252  HEAPF32[i7 >> 2] = 0.0;
 18253  HEAP32[i7 + 4 >> 2] = i31;
 18254  HEAP32[i7 + 72 >> 2] = i17;
 18255  _memset(i7 + 76 | 0, 0, 24);
 18256  HEAPF32[i7 + 100 >> 2] = .5;
 18257  HEAPF32[i7 + 104 >> 2] = 0.0;
 18258  HEAPF32[i7 + 108 >> 2] = .800000011920929;
 18259  HEAPF32[i7 + 112 >> 2] = 1.0;
 18260  HEAP8[i7 + 116 | 0] = 0;
 18261  HEAPF32[i7 + 120 >> 2] = .004999999888241291;
 18262  HEAPF32[i7 + 124 >> 2] = .009999999776482582;
 18263  HEAPF32[i7 + 128 >> 2] = .009999999776482582;
 18264  HEAPF32[i7 + 132 >> 2] = .009999999776482582;
 18265  HEAPF32[i7 + 8 >> 2] = 1.0;
 18266  _memset(i7 + 12 | 0, 0, 16);
 18267  HEAPF32[i7 + 28 >> 2] = 1.0;
 18268  _memset(i7 + 32 | 0, 0, 16);
 18269  HEAPF32[i7 + 48 >> 2] = 1.0;
 18270  _memset(i7 + 52 | 0, 0, 20);
 18271  i17 = __Z22btAlignedAllocInternalji(608, 16) | 0;
 18272  __ZN11btRigidBodyC2ERKNS_27btRigidBodyConstructionInfoE(i17, i7);
 18273  i7 = i22;
 18274  FUNCTION_TABLE_vii[HEAP32[(HEAP32[i7 >> 2] | 0) + 80 >> 2] & 127](i23, i17);
 18275  i17 = __Z22btAlignedAllocInternalji(52, 16) | 0;
 18276  __ZN21btConvexInternalShapeC2Ev(i17);
 18277  HEAP32[i17 >> 2] = 4728;
 18278  HEAP32[i17 + 4 >> 2] = 8;
 18279  HEAPF32[i17 + 28 >> 2] = 1.0;
 18280  HEAPF32[i17 + 44 >> 2] = 1.0;
 18281  i31 = i17;
 18282  i35 = __Z22btAlignedAllocInternalji(8, 16) | 0;
 18283  i34 = i35;
 18284  if ((i35 | 0) != 0) {
 18285   HEAP32[i34 >> 2] = HEAP32[i24 >> 2];
 18287  if (!i29) {
 18288   __Z21btAlignedFreeInternalPv(i3);
 18290  i3 = i35 + 4 | 0;
 18291  if ((i3 | 0) != 0) {
 18292   HEAP32[i3 >> 2] = i31;
 18294  i3 = i8 | 0;
 18295  _memset(i3 | 0, 0, 16);
 18296  _memset(i9 | 0, 0, 16);
 18297  _memset(i11 | 0, 0, 16);
 18298  FUNCTION_TABLE_vifi[HEAP32[(HEAP32[i17 >> 2] | 0) + 32 >> 2] & 15](i31, 1.0, i11);
 18299  i17 = __Znwj(200) | 0;
 18300  do {
 18301   if ((HEAP8[14344] | 0) == 0) {
 18302    if ((___cxa_guard_acquire(14344) | 0) == 0) {
 18303     break;
 18305    do {
 18306     if ((HEAP8[14352] | 0) == 0) {
 18307      if ((___cxa_guard_acquire(14352) | 0) == 0) {
 18308       break;
 18310      HEAPF32[3550] = 1.0;
 18311      _memset(14204, 0, 16);
 18312      HEAPF32[3555] = 1.0;
 18313      _memset(14224, 0, 16);
 18314      HEAPF32[3560] = 1.0;
 18315      HEAPF32[3561] = 0.0;
 18317    } while (0);
 18318    HEAP32[3534] = HEAP32[3550];
 18319    HEAP32[3535] = HEAP32[3551];
 18320    HEAP32[3536] = HEAP32[3552];
 18321    HEAP32[3537] = HEAP32[3553];
 18322    HEAP32[3538] = HEAP32[3554];
 18323    HEAP32[14156 >> 2] = HEAP32[14220 >> 2];
 18324    HEAP32[14160 >> 2] = HEAP32[14224 >> 2];
 18325    HEAP32[14164 >> 2] = HEAP32[14228 >> 2];
 18326    HEAP32[3542] = HEAP32[3558];
 18327    HEAP32[14172 >> 2] = HEAP32[14236 >> 2];
 18328    HEAP32[14176 >> 2] = HEAP32[14240 >> 2];
 18329    HEAP32[14180 >> 2] = HEAP32[14244 >> 2];
 18330    _memset(14184, 0, 16);
 18332  } while (0);
 18333  HEAP32[i17 >> 2] = 3864;
 18334  HEAPF32[i17 + 4 >> 2] = 1.0;
 18335  i29 = i17 + 8 | 0;
 18336  HEAP32[i29 >> 2] = HEAP32[i3 >> 2];
 18337  HEAP32[i29 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
 18338  HEAP32[i29 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
 18339  i29 = HEAP32[i8 + 12 >> 2] | 0;
 18340  HEAP32[i17 + 20 >> 2] = i29;
 18341  HEAPF32[i17 + 24 >> 2] = 1.0;
 18342  i8 = i17 + 28 | 0;
 18343  i24 = HEAP32[i10 >> 2] | 0;
 18344  i6 = HEAP32[i10 + 4 >> 2] | 0;
 18345  HEAP32[i8 >> 2] = i24;
 18346  HEAP32[i8 + 4 >> 2] = i6;
 18347  i8 = i9 + 8 | 0;
 18348  i9 = i17 + 36 | 0;
 18349  i10 = HEAP32[i8 >> 2] | 0;
 18350  i32 = HEAP32[i8 + 4 >> 2] | 0;
 18351  HEAP32[i9 >> 2] = i10;
 18352  HEAP32[i9 + 4 >> 2] = i32;
 18353  HEAPF32[i17 + 44 >> 2] = 1.0;
 18354  HEAPF32[i17 + 48 >> 2] = 0.0;
 18355  HEAPF32[i17 + 52 >> 2] = 2.0;
 18356  HEAPF32[i17 + 56 >> 2] = 10.0;
 18357  HEAPF32[i17 + 60 >> 2] = 0.0;
 18358  HEAPF32[i17 + 64 >> 2] = 0.0;
 18359  i9 = i17 + 68 | 0;
 18360  HEAP32[i9 >> 2] = HEAP32[3534];
 18361  HEAP32[i9 + 4 >> 2] = HEAP32[3535];
 18362  HEAP32[i9 + 8 >> 2] = HEAP32[3536];
 18363  HEAP32[i9 + 12 >> 2] = HEAP32[3537];
 18364  i9 = i17 + 84 | 0;
 18365  HEAP32[i9 >> 2] = HEAP32[3538];
 18366  HEAP32[i9 + 4 >> 2] = HEAP32[14156 >> 2];
 18367  HEAP32[i9 + 8 >> 2] = HEAP32[14160 >> 2];
 18368  HEAP32[i9 + 12 >> 2] = HEAP32[14164 >> 2];
 18369  i9 = i17 + 100 | 0;
 18370  HEAP32[i9 >> 2] = HEAP32[3542];
 18371  HEAP32[i9 + 4 >> 2] = HEAP32[14172 >> 2];
 18372  HEAP32[i9 + 8 >> 2] = HEAP32[14176 >> 2];
 18373  HEAP32[i9 + 12 >> 2] = HEAP32[14180 >> 2];
 18374  i9 = i17 + 116 | 0;
 18375  HEAP32[i9 >> 2] = HEAP32[3546];
 18376  HEAP32[i9 + 4 >> 2] = HEAP32[14188 >> 2];
 18377  HEAP32[i9 + 8 >> 2] = HEAP32[14192 >> 2];
 18378  HEAP32[i9 + 12 >> 2] = HEAP32[14196 >> 2];
 18379  HEAPF32[i17 + 132 >> 2] = 1.0;
 18380  i9 = i17 + 136 | 0;
 18381  HEAP32[i9 >> 2] = HEAP32[i3 >> 2];
 18382  HEAP32[i9 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
 18383  HEAP32[i9 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
 18384  HEAP32[i17 + 148 >> 2] = i29;
 18385  HEAPF32[i17 + 152 >> 2] = 1.0;
 18386  i29 = i17 + 156 | 0;
 18387  HEAP32[i29 >> 2] = i24;
 18388  HEAP32[i29 + 4 >> 2] = i6;
 18389  i6 = i17 + 164 | 0;
 18390  HEAP32[i6 >> 2] = i10;
 18391  HEAP32[i6 + 4 >> 2] = i32;
 18392  HEAPF32[i17 + 172 >> 2] = 1.0;
 18393  HEAPF32[i17 + 176 >> 2] = 0.0;
 18394  HEAPF32[i17 + 180 >> 2] = 2.0;
 18395  HEAPF32[i17 + 184 >> 2] = 10.0;
 18396  HEAPF32[i17 + 188 >> 2] = 0.0;
 18397  HEAPF32[i17 + 192 >> 2] = 0.0;
 18398  HEAP32[i17 + 196 >> 2] = 0;
 18399  HEAPF32[i12 >> 2] = 1.0;
 18400  HEAP32[i12 + 4 >> 2] = i17;
 18401  HEAP32[i12 + 72 >> 2] = i31;
 18402  i31 = i12 + 76 | 0;
 18403  i17 = i11;
 18404  HEAP32[i31 >> 2] = HEAP32[i17 >> 2];
 18405  HEAP32[i31 + 4 >> 2] = HEAP32[i17 + 4 >> 2];
 18406  HEAP32[i31 + 8 >> 2] = HEAP32[i17 + 8 >> 2];
 18407  HEAP32[i31 + 12 >> 2] = HEAP32[i17 + 12 >> 2];
 18408  HEAPF32[i12 + 92 >> 2] = 0.0;
 18409  HEAPF32[i12 + 96 >> 2] = 0.0;
 18410  HEAPF32[i12 + 100 >> 2] = .5;
 18411  HEAPF32[i12 + 104 >> 2] = 0.0;
 18412  HEAPF32[i12 + 108 >> 2] = .800000011920929;
 18413  HEAPF32[i12 + 112 >> 2] = 1.0;
 18414  HEAP8[i12 + 116 | 0] = 0;
 18415  HEAPF32[i12 + 120 >> 2] = .004999999888241291;
 18416  HEAPF32[i12 + 124 >> 2] = .009999999776482582;
 18417  HEAPF32[i12 + 128 >> 2] = .009999999776482582;
 18418  HEAPF32[i12 + 132 >> 2] = .009999999776482582;
 18419  HEAPF32[i12 + 8 >> 2] = 1.0;
 18420  _memset(i12 + 12 | 0, 0, 16);
 18421  HEAPF32[i12 + 28 >> 2] = 1.0;
 18422  _memset(i12 + 32 | 0, 0, 16);
 18423  HEAPF32[i12 + 48 >> 2] = 1.0;
 18424  _memset(i12 + 52 | 0, 0, 20);
 18425  i17 = __Z22btAlignedAllocInternalji(608, 16) | 0;
 18426  __ZN11btRigidBodyC2ERKNS_27btRigidBodyConstructionInfoE(i17, i12);
 18427  FUNCTION_TABLE_vii[HEAP32[(HEAP32[i7 >> 2] | 0) + 80 >> 2] & 127](i23, i17);
 18428  i17 = i22;
 18429  i7 = i22 + 8 | 0;
 18430  i12 = i22 + 16 | 0;
 18431  i31 = i13 + 48 | 0;
 18432  i11 = i13 + 52 | 0;
 18433  i32 = i13 + 56 | 0;
 18434  i6 = 0;
 18435  do {
 18436   FUNCTION_TABLE_iifif[HEAP32[(HEAP32[i17 >> 2] | 0) + 48 >> 2] & 3](i23, .01666666753590107, 10, .01666666753590107) | 0;
 18437   i10 = HEAP32[i7 >> 2] | 0;
 18438   if ((i10 | 0) > 0) {
 18439    i29 = i10;
 18440    do {
 18441     i29 = i29 - 1 | 0;
 18442     i10 = HEAP32[(HEAP32[i12 >> 2] | 0) + (i29 << 2) >> 2] | 0;
 18443     do {
 18444      if (!((HEAP32[i10 + 232 >> 2] & 2 | 0) == 0 | (i10 | 0) == 0)) {
 18445       i24 = HEAP32[i10 + 472 >> 2] | 0;
 18446       if ((i24 | 0) == 0) {
 18447        break;
 18449       FUNCTION_TABLE_vii[HEAP32[(HEAP32[i24 >> 2] | 0) + 8 >> 2] & 127](i24, i13);
 18450       d26 = +HEAPF32[i31 >> 2];
 18451       d28 = +HEAPF32[i11 >> 2];
 18452       d25 = +HEAPF32[i32 >> 2];
 18453       _printf(1128, (i24 = STACKTOP, STACKTOP = STACKTOP + 24 | 0, HEAPF64[i24 >> 3] = d26, HEAPF64[i24 + 8 >> 3] = d28, HEAPF64[i24 + 16 >> 3] = d25, i24) | 0) | 0;
 18454       STACKTOP = i24;
 18456     } while (0);
 18457    } while ((i29 | 0) > 0);
 18459   i6 = i6 + 1 | 0;
 18460  } while ((i6 | 0) < 135);
 18461  i6 = HEAP32[i7 >> 2] | 0;
 18462  if ((i6 | 0) > 0) {
 18463   i7 = i22;
 18464   i32 = i6;
 18465   do {
 18466    i32 = i32 - 1 | 0;
 18467    i6 = HEAP32[(HEAP32[i12 >> 2] | 0) + (i32 << 2) >> 2] | 0;
 18468    i11 = (i6 | 0) == 0;
 18469    do {
 18470     if (!((HEAP32[i6 + 232 >> 2] & 2 | 0) == 0 | i11)) {
 18471      i31 = HEAP32[i6 + 472 >> 2] | 0;
 18472      if ((i31 | 0) == 0) {
 18473       break;
 18475      FUNCTION_TABLE_vi[HEAP32[(HEAP32[i31 >> 2] | 0) + 4 >> 2] & 511](i31);
 18477    } while (0);
 18478    FUNCTION_TABLE_vii[HEAP32[(HEAP32[i7 >> 2] | 0) + 36 >> 2] & 127](i23, i6);
 18479    if (!i11) {
 18480     FUNCTION_TABLE_vi[HEAP32[(HEAP32[i6 >> 2] | 0) + 8 >> 2] & 511](i6);
 18482   } while ((i32 | 0) > 0);
 18484  i32 = HEAP32[i34 >> 2] | 0;
 18485  HEAP32[i34 >> 2] = 0;
 18486  if ((i32 | 0) != 0) {
 18487   FUNCTION_TABLE_vi[HEAP32[(HEAP32[i32 >> 2] | 0) + 4 >> 2] & 511](i32);
 18489  i32 = i35 + 4 | 0;
 18490  i34 = HEAP32[i32 >> 2] | 0;
 18491  HEAP32[i32 >> 2] = 0;
 18492  if ((i34 | 0) != 0) {
 18493   FUNCTION_TABLE_vi[HEAP32[(HEAP32[i34 >> 2] | 0) + 4 >> 2] & 511](i34);
 18495  if ((i22 | 0) != 0) {
 18496   FUNCTION_TABLE_vi[HEAP32[(HEAP32[i22 >> 2] | 0) + 4 >> 2] & 511](i23);
 18498  if ((i20 | 0) != 0) {
 18499   FUNCTION_TABLE_vi[HEAP32[(HEAP32[i20 >> 2] | 0) + 4 >> 2] & 511](i21);
 18501  if ((i18 | 0) != 0) {
 18502   FUNCTION_TABLE_vi[HEAP32[(HEAP32[i18 >> 2] | 0) + 4 >> 2] & 511](i19);
 18504  if ((i1 | 0) != 0) {
 18505   FUNCTION_TABLE_vi[HEAP32[(HEAP32[i1 >> 2] | 0) + 4 >> 2] & 511](i16);
 18507  if ((i14 | 0) != 0) {
 18508   FUNCTION_TABLE_vi[HEAP32[(HEAP32[i14 >> 2] | 0) + 4 >> 2] & 511](i15);
 18510  if ((i35 | 0) == 0) {
 18511   STACKTOP = i2;
 18512   return 0;
 18514  __Z21btAlignedFreeInternalPv(i35);
 18515  STACKTOP = i2;
 18516  return 0;
 18518 function __ZN23btPolyhedralConvexShape28initializePolyhedralFeaturesEv(i1) {
 18519  i1 = i1 | 0;
 18520  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, d41 = 0.0, d42 = 0.0, d43 = 0.0, d44 = 0.0, i45 = 0, d46 = 0.0, d47 = 0.0, d48 = 0.0, d49 = 0.0, i50 = 0, i51 = 0, d52 = 0.0, i53 = 0, i54 = 0;
 18521  i2 = STACKTOP;
 18522  STACKTOP = STACKTOP + 248 | 0;
 18523  i3 = i2 + 16 | 0;
 18524  i4 = i2 + 80 | 0;
 18525  i5 = i2 + 96 | 0;
 18526  i6 = i2 + 152 | 0;
 18527  i7 = i2 + 168 | 0;
 18528  i8 = i2 + 216 | 0;
 18529  i9 = i2 + 232 | 0;
 18530  i10 = i1 + 52 | 0;
 18531  i11 = HEAP32[i10 >> 2] | 0;
 18532  if ((i11 | 0) != 0) {
 18533   __Z21btAlignedFreeInternalPv(i11);
 18535  i11 = __Z22btAlignedAllocInternalji(80, 16) | 0;
 18536  if ((i11 | 0) == 0) {
 18537   i12 = 0;
 18538  } else {
 18539   i13 = i11;
 18540   __ZN18btConvexPolyhedronC2Ev(i13);
 18541   i12 = i13;
 18543  HEAP32[i10 >> 2] = i12;
 18544  i12 = i1;
 18545  i13 = i1;
 18546  i11 = i2 | 0;
 18547  i14 = 0;
 18548  i15 = 0;
 18549  i16 = 0;
 18550  while (1) {
 18551   if ((i14 | 0) >= (FUNCTION_TABLE_ii[HEAP32[(HEAP32[i12 >> 2] | 0) + 88 >> 2] & 127](i1) | 0)) {
 18552    break;
 18554   do {
 18555    if ((i14 | 0) == (i15 | 0)) {
 18556     i17 = (i15 | 0) == 0 ? 1 : i15 << 1;
 18557     if ((i15 | 0) >= (i17 | 0)) {
 18558      i18 = i15;
 18559      i19 = i16;
 18560      break;
 18562     if ((i17 | 0) == 0) {
 18563      i20 = 0;
 18564     } else {
 18565      i20 = __Z22btAlignedAllocInternalji(i17 << 4, 16) | 0;
 18567     if ((i15 | 0) > 0) {
 18568      i21 = 0;
 18569      do {
 18570       i22 = i20 + (i21 << 4) | 0;
 18571       if ((i22 | 0) != 0) {
 18572        i23 = i22;
 18573        i22 = i16 + (i21 << 4) | 0;
 18574        HEAP32[i23 >> 2] = HEAP32[i22 >> 2];
 18575        HEAP32[i23 + 4 >> 2] = HEAP32[i22 + 4 >> 2];
 18576        HEAP32[i23 + 8 >> 2] = HEAP32[i22 + 8 >> 2];
 18577        HEAP32[i23 + 12 >> 2] = HEAP32[i22 + 12 >> 2];
 18579       i21 = i21 + 1 | 0;
 18580      } while ((i21 | 0) < (i15 | 0));
 18582     if ((i16 | 0) == 0) {
 18583      i18 = i17;
 18584      i19 = i20;
 18585      break;
 18587     __Z21btAlignedFreeInternalPv(i16);
 18588     i18 = i17;
 18589     i19 = i20;
 18590    } else {
 18591     i18 = i15;
 18592     i19 = i16;
 18594   } while (0);
 18595   i21 = i19 + (i14 << 4) | 0;
 18596   if ((i21 | 0) != 0) {
 18597    i22 = i21;
 18598    HEAP32[i22 >> 2] = HEAP32[i11 >> 2];
 18599    HEAP32[i22 + 4 >> 2] = HEAP32[i11 + 4 >> 2];
 18600    HEAP32[i22 + 8 >> 2] = HEAP32[i11 + 8 >> 2];
 18601    HEAP32[i22 + 12 >> 2] = HEAP32[i11 + 12 >> 2];
 18603   FUNCTION_TABLE_viii[HEAP32[(HEAP32[i13 >> 2] | 0) + 100 >> 2] & 127](i1, i14, i21);
 18604   i14 = i14 + 1 | 0;
 18605   i15 = i18;
 18606   i16 = i19;
 18608  HEAP8[i3 + 16 | 0] = 1;
 18609  i19 = i3 + 12 | 0;
 18610  HEAP32[i19 >> 2] = 0;
 18611  i18 = i3 + 4 | 0;
 18612  HEAP32[i18 >> 2] = 0;
 18613  HEAP32[i3 + 8 >> 2] = 0;
 18614  HEAP8[i3 + 36 | 0] = 1;
 18615  i15 = i3 + 32 | 0;
 18616  HEAP32[i15 >> 2] = 0;
 18617  HEAP32[i3 + 24 >> 2] = 0;
 18618  HEAP32[i3 + 28 >> 2] = 0;
 18619  HEAP8[i3 + 56 | 0] = 1;
 18620  i13 = i3 + 52 | 0;
 18621  HEAP32[i13 >> 2] = 0;
 18622  i11 = i3 + 44 | 0;
 18623  HEAP32[i11 >> 2] = 0;
 18624  HEAP32[i3 + 48 >> 2] = 0;
 18625  i20 = i16;
 18626  +__ZN20btConvexHullComputer7computeEPKvbiiff(i3, i20, 0, 16, i14, 0.0, 0.0);
 18627  i14 = HEAP32[i11 >> 2] | 0;
 18628  i11 = (i14 | 0) > 0;
 18629  if (i11) {
 18630   i12 = __Z22btAlignedAllocInternalji(i14 << 4, 16) | 0;
 18631   i21 = i4;
 18632   i4 = 0;
 18633   while (1) {
 18634    i22 = i12 + (i4 << 4) | 0;
 18635    if ((i22 | 0) != 0) {
 18636     i23 = i22;
 18637     HEAP32[i23 >> 2] = HEAP32[i21 >> 2];
 18638     HEAP32[i23 + 4 >> 2] = HEAP32[i21 + 4 >> 2];
 18639     HEAP32[i23 + 8 >> 2] = HEAP32[i21 + 8 >> 2];
 18640     HEAP32[i23 + 12 >> 2] = HEAP32[i21 + 12 >> 2];
 18642    i23 = i4 + 1 | 0;
 18643    if ((i23 | 0) < (i14 | 0)) {
 18644     i4 = i23;
 18645    } else {
 18646     i24 = i12;
 18647     break;
 18650  } else {
 18651   i24 = 0;
 18653  i12 = HEAP32[i10 >> 2] | 0;
 18654  _memset(i5 | 0, 0, 56);
 18655  i4 = i5 + 16 | 0;
 18656  HEAP8[i4] = 1;
 18657  i21 = i5 + 12 | 0;
 18658  HEAP32[i21 >> 2] = 0;
 18659  i23 = i5 + 4 | 0;
 18660  HEAP32[i23 >> 2] = 0;
 18661  i22 = i5 + 8 | 0;
 18662  HEAP32[i22 >> 2] = 0;
 18663  i25 = i5 + 36 | 0;
 18664  HEAP8[i25] = 1;
 18665  i26 = i5 + 32 | 0;
 18666  HEAP32[i26 >> 2] = 0;
 18667  i27 = i5 + 24 | 0;
 18668  HEAP32[i27 >> 2] = 0;
 18669  i28 = i5 + 28 | 0;
 18670  HEAP32[i28 >> 2] = 0;
 18671  __ZN20btAlignedObjectArrayI6btFaceE6resizeEiRKS0_(i12 + 24 | 0, i14, i5);
 18672  i5 = HEAP32[i26 >> 2] | 0;
 18673  if ((i5 | 0) != 0) {
 18674   if ((HEAP8[i25] | 0) != 0) {
 18675    __Z21btAlignedFreeInternalPv(i5);
 18677   HEAP32[i26 >> 2] = 0;
 18679  HEAP8[i25] = 1;
 18680  HEAP32[i26 >> 2] = 0;
 18681  HEAP32[i27 >> 2] = 0;
 18682  HEAP32[i28 >> 2] = 0;
 18683  i28 = HEAP32[i21 >> 2] | 0;
 18684  if ((i28 | 0) != 0) {
 18685   if ((HEAP8[i4] | 0) != 0) {
 18686    __Z21btAlignedFreeInternalPv(i28);
 18688   HEAP32[i21 >> 2] = 0;
 18690  HEAP8[i4] = 1;
 18691  HEAP32[i21 >> 2] = 0;
 18692  HEAP32[i23 >> 2] = 0;
 18693  HEAP32[i22 >> 2] = 0;
 18694  i22 = HEAP32[i18 >> 2] | 0;
 18695  i23 = HEAP32[i10 >> 2] | 0;
 18696  i21 = i23 + 8 | 0;
 18697  i4 = HEAP32[i21 >> 2] | 0;
 18698  if ((i4 | 0) < (i22 | 0)) {
 18699   i28 = i23 + 12 | 0;
 18700   if ((HEAP32[i28 >> 2] | 0) < (i22 | 0)) {
 18701    if ((i22 | 0) == 0) {
 18702     i29 = 0;
 18703     i30 = i4;
 18704    } else {
 18705     i27 = __Z22btAlignedAllocInternalji(i22 << 4, 16) | 0;
 18706     i29 = i27;
 18707     i30 = HEAP32[i21 >> 2] | 0;
 18709    i27 = i23 + 16 | 0;
 18710    if ((i30 | 0) > 0) {
 18711     i26 = 0;
 18712     do {
 18713      i25 = i29 + (i26 << 4) | 0;
 18714      if ((i25 | 0) != 0) {
 18715       i5 = i25;
 18716       i25 = (HEAP32[i27 >> 2] | 0) + (i26 << 4) | 0;
 18717       HEAP32[i5 >> 2] = HEAP32[i25 >> 2];
 18718       HEAP32[i5 + 4 >> 2] = HEAP32[i25 + 4 >> 2];
 18719       HEAP32[i5 + 8 >> 2] = HEAP32[i25 + 8 >> 2];
 18720       HEAP32[i5 + 12 >> 2] = HEAP32[i25 + 12 >> 2];
 18722      i26 = i26 + 1 | 0;
 18723     } while ((i26 | 0) < (i30 | 0));
 18725    i30 = HEAP32[i27 >> 2] | 0;
 18726    i26 = i23 + 20 | 0;
 18727    if ((i30 | 0) != 0) {
 18728     if ((HEAP8[i26] | 0) != 0) {
 18729      __Z21btAlignedFreeInternalPv(i30);
 18731     HEAP32[i27 >> 2] = 0;
 18733    HEAP8[i26] = 1;
 18734    HEAP32[i27 >> 2] = i29;
 18735    HEAP32[i28 >> 2] = i22;
 18736    i31 = i27;
 18737   } else {
 18738    i31 = i23 + 16 | 0;
 18740   i23 = i6;
 18741   i6 = i4;
 18742   do {
 18743    i4 = (HEAP32[i31 >> 2] | 0) + (i6 << 4) | 0;
 18744    if ((i4 | 0) != 0) {
 18745     i27 = i4;
 18746     HEAP32[i27 >> 2] = HEAP32[i23 >> 2];
 18747     HEAP32[i27 + 4 >> 2] = HEAP32[i23 + 4 >> 2];
 18748     HEAP32[i27 + 8 >> 2] = HEAP32[i23 + 8 >> 2];
 18749     HEAP32[i27 + 12 >> 2] = HEAP32[i23 + 12 >> 2];
 18751    i6 = i6 + 1 | 0;
 18752   } while ((i6 | 0) < (i22 | 0));
 18754  HEAP32[i21 >> 2] = i22;
 18755  if ((i22 | 0) > 0) {
 18756   i21 = 0;
 18757   do {
 18758    i6 = (HEAP32[(HEAP32[i10 >> 2] | 0) + 16 >> 2] | 0) + (i21 << 4) | 0;
 18759    i23 = (HEAP32[i19 >> 2] | 0) + (i21 << 4) | 0;
 18760    HEAP32[i6 >> 2] = HEAP32[i23 >> 2];
 18761    HEAP32[i6 + 4 >> 2] = HEAP32[i23 + 4 >> 2];
 18762    HEAP32[i6 + 8 >> 2] = HEAP32[i23 + 8 >> 2];
 18763    HEAP32[i6 + 12 >> 2] = HEAP32[i23 + 12 >> 2];
 18764    i21 = i21 + 1 | 0;
 18765   } while ((i21 | 0) < (i22 | 0));
 18767  if (i11) {
 18768   i11 = i7 + 4 | 0;
 18769   i22 = i7 + 24 | 0;
 18770   i21 = i7 + 8 | 0;
 18771   i23 = i7 + 20 | 0;
 18772   i6 = i7 + 16 | 0;
 18773   i31 = i7 | 0;
 18774   i27 = 0;
 18775   while (1) {
 18776    i4 = (HEAP32[i15 >> 2] | 0) + ((HEAP32[(HEAP32[i13 >> 2] | 0) + (i27 << 2) >> 2] | 0) * 12 | 0) | 0;
 18777    i28 = i4;
 18778    i29 = 0;
 18779    while (1) {
 18780     i26 = i28 + 4 | 0;
 18781     i30 = HEAP32[i28 + ((HEAP32[i26 >> 2] | 0) * 12 | 0) + 8 >> 2] | 0;
 18782     i25 = HEAP32[(HEAP32[i10 >> 2] | 0) + 36 >> 2] | 0;
 18783     i5 = i25 + (i27 * 56 | 0) + 4 | 0;
 18784     i12 = HEAP32[i5 >> 2] | 0;
 18785     i32 = i25 + (i27 * 56 | 0) + 8 | 0;
 18786     do {
 18787      if ((i12 | 0) == (HEAP32[i32 >> 2] | 0)) {
 18788       i33 = (i12 | 0) == 0 ? 1 : i12 << 1;
 18789       if ((i12 | 0) >= (i33 | 0)) {
 18790        i34 = i12;
 18791        break;
 18793       if ((i33 | 0) == 0) {
 18794        i35 = 0;
 18795        i36 = i12;
 18796       } else {
 18797        i37 = __Z22btAlignedAllocInternalji(i33 << 2, 16) | 0;
 18798        i35 = i37;
 18799        i36 = HEAP32[i5 >> 2] | 0;
 18801       i37 = i25 + (i27 * 56 | 0) + 12 | 0;
 18802       if ((i36 | 0) > 0) {
 18803        i38 = 0;
 18804        do {
 18805         i39 = i35 + (i38 << 2) | 0;
 18806         if ((i39 | 0) != 0) {
 18807          HEAP32[i39 >> 2] = HEAP32[(HEAP32[i37 >> 2] | 0) + (i38 << 2) >> 2];
 18809         i38 = i38 + 1 | 0;
 18810        } while ((i38 | 0) < (i36 | 0));
 18812       i38 = HEAP32[i37 >> 2] | 0;
 18813       i39 = i25 + (i27 * 56 | 0) + 16 | 0;
 18814       if ((i38 | 0) != 0) {
 18815        if ((HEAP8[i39] | 0) != 0) {
 18816         __Z21btAlignedFreeInternalPv(i38);
 18818        HEAP32[i37 >> 2] = 0;
 18820       HEAP8[i39] = 1;
 18821       HEAP32[i37 >> 2] = i35;
 18822       HEAP32[i32 >> 2] = i33;
 18823       i34 = HEAP32[i5 >> 2] | 0;
 18824      } else {
 18825       i34 = i12;
 18827     } while (0);
 18828     i12 = (HEAP32[i25 + (i27 * 56 | 0) + 12 >> 2] | 0) + (i34 << 2) | 0;
 18829     if ((i12 | 0) == 0) {
 18830      i40 = i34;
 18831     } else {
 18832      HEAP32[i12 >> 2] = i30;
 18833      i40 = HEAP32[i5 >> 2] | 0;
 18835     HEAP32[i5 >> 2] = i40 + 1;
 18836     i12 = HEAP32[i28 + 8 >> 2] | 0;
 18837     i32 = HEAP32[i19 >> 2] | 0;
 18838     d41 = +HEAPF32[i32 + (i12 << 4) >> 2] - +HEAPF32[i32 + (i30 << 4) >> 2];
 18839     d42 = +HEAPF32[i32 + (i12 << 4) + 4 >> 2] - +HEAPF32[i32 + (i30 << 4) + 4 >> 2];
 18840     d43 = +HEAPF32[i32 + (i12 << 4) + 8 >> 2] - +HEAPF32[i32 + (i30 << 4) + 8 >> 2];
 18841     d44 = 1.0 / +Math_sqrt(+(d41 * d41 + d42 * d42 + d43 * d43));
 18842     if ((i29 | 0) < 2) {
 18843      HEAPF32[i7 + (i29 << 4) >> 2] = d41 * d44;
 18844      HEAPF32[i7 + (i29 << 4) + 4 >> 2] = d42 * d44;
 18845      HEAPF32[i7 + (i29 << 4) + 8 >> 2] = d43 * d44;
 18846      HEAPF32[i7 + (i29 << 4) + 12 >> 2] = 0.0;
 18847      i45 = i29 + 1 | 0;
 18848     } else {
 18849      i45 = i29;
 18851     i32 = HEAP32[i26 >> 2] | 0;
 18852     i12 = i28 + (((HEAP32[i28 + (i32 * 12 | 0) >> 2] | 0) + i32 | 0) * 12 | 0) | 0;
 18853     if ((i12 | 0) == (i4 | 0)) {
 18854      break;
 18855     } else {
 18856      i28 = i12;
 18857      i29 = i45;
 18860    i29 = i24 + (i27 << 4) | 0;
 18861    if ((i45 | 0) == 2) {
 18862     d44 = +HEAPF32[i11 >> 2];
 18863     d43 = +HEAPF32[i22 >> 2];
 18864     d42 = +HEAPF32[i21 >> 2];
 18865     d41 = +HEAPF32[i23 >> 2];
 18866     d46 = d44 * d43 - d42 * d41;
 18867     d47 = +HEAPF32[i6 >> 2];
 18868     d48 = +HEAPF32[i31 >> 2];
 18869     d49 = d42 * d47 - d43 * d48;
 18870     d43 = d41 * d48 - d44 * d47;
 18871     i28 = i24 + (i27 << 4) + 4 | 0;
 18872     i4 = i24 + (i27 << 4) + 8 | 0;
 18873     HEAPF32[i24 + (i27 << 4) + 12 >> 2] = 0.0;
 18874     d47 = 1.0 / +Math_sqrt(+(d43 * d43 + (d46 * d46 + d49 * d49)));
 18875     d44 = d46 * d47;
 18876     HEAPF32[i29 >> 2] = d44;
 18877     HEAPF32[i28 >> 2] = d49 * d47;
 18878     HEAPF32[i4 >> 2] = d43 * d47;
 18879     i12 = HEAP32[i10 >> 2] | 0;
 18880     i32 = HEAP32[i12 + 36 >> 2] | 0;
 18881     HEAPF32[i32 + (i27 * 56 | 0) + 40 >> 2] = -0.0 - d44;
 18882     HEAPF32[i32 + (i27 * 56 | 0) + 44 >> 2] = -0.0 - +HEAPF32[i28 >> 2];
 18883     HEAPF32[i32 + (i27 * 56 | 0) + 48 >> 2] = -0.0 - +HEAPF32[i4 >> 2];
 18884     HEAPF32[i32 + (i27 * 56 | 0) + 52 >> 2] = 1.0000000150474662e+30;
 18885     i50 = i12;
 18886     i51 = i32;
 18887    } else {
 18888     _memset(i29 | 0, 0, 16);
 18889     i32 = HEAP32[i10 >> 2] | 0;
 18890     i50 = i32;
 18891     i51 = HEAP32[i32 + 36 >> 2] | 0;
 18893    i32 = HEAP32[i51 + (i27 * 56 | 0) + 4 >> 2] | 0;
 18894    if ((i32 | 0) > 0) {
 18895     d44 = +HEAPF32[i29 >> 2];
 18896     d47 = +HEAPF32[i24 + (i27 << 4) + 4 >> 2];
 18897     d43 = +HEAPF32[i24 + (i27 << 4) + 8 >> 2];
 18898     i29 = HEAP32[i51 + (i27 * 56 | 0) + 12 >> 2] | 0;
 18899     i12 = HEAP32[i50 + 16 >> 2] | 0;
 18900     d49 = 1.0000000150474662e+30;
 18901     i4 = 0;
 18902     while (1) {
 18903      i28 = HEAP32[i29 + (i4 << 2) >> 2] | 0;
 18904      d46 = d44 * +HEAPF32[i12 + (i28 << 4) >> 2] + d47 * +HEAPF32[i12 + (i28 << 4) + 4 >> 2] + d43 * +HEAPF32[i12 + (i28 << 4) + 8 >> 2];
 18905      d48 = d49 > d46 ? d46 : d49;
 18906      i28 = i4 + 1 | 0;
 18907      if ((i28 | 0) < (i32 | 0)) {
 18908       d49 = d48;
 18909       i4 = i28;
 18910      } else {
 18911       d52 = d48;
 18912       break;
 18915    } else {
 18916     d52 = 1.0000000150474662e+30;
 18918    HEAPF32[i51 + (i27 * 56 | 0) + 52 >> 2] = d52;
 18919    i4 = i27 + 1 | 0;
 18920    if ((i4 | 0) < (i14 | 0)) {
 18921     i27 = i4;
 18922    } else {
 18923     i53 = i50;
 18924     break;
 18927  } else {
 18928   i53 = HEAP32[i10 >> 2] | 0;
 18930  i50 = HEAP32[i53 + 28 >> 2] | 0;
 18931  do {
 18932   if ((i50 | 0) == 0) {
 18933    i54 = i53;
 18934   } else {
 18935    if (!((HEAP32[i18 >> 2] | 0) != 0 & (i50 | 0) > 0)) {
 18936     i54 = i53;
 18937     break;
 18939    i27 = i1;
 18940    i14 = i9 | 0;
 18941    i51 = i9 + 4 | 0;
 18942    i31 = i9 + 8 | 0;
 18943    i6 = i9 + 12 | 0;
 18944    i23 = i1 | 0;
 18945    i21 = i8 | 0;
 18946    i22 = i8 + 4 | 0;
 18947    i11 = i8 + 8 | 0;
 18948    i45 = 0;
 18949    i7 = i53;
 18950    while (1) {
 18951     i19 = HEAP32[i7 + 36 >> 2] | 0;
 18952     d52 = +HEAPF32[i19 + (i45 * 56 | 0) + 40 >> 2];
 18953     d49 = +HEAPF32[i19 + (i45 * 56 | 0) + 44 >> 2];
 18954     d43 = +HEAPF32[i19 + (i45 * 56 | 0) + 48 >> 2];
 18955     d47 = +HEAPF32[i19 + (i45 * 56 | 0) + 52 >> 2];
 18956     i19 = HEAP32[(HEAP32[i27 >> 2] | 0) + 60 >> 2] | 0;
 18957     HEAPF32[i14 >> 2] = -0.0 - d52;
 18958     HEAPF32[i51 >> 2] = -0.0 - d49;
 18959     HEAPF32[i31 >> 2] = -0.0 - d43;
 18960     HEAPF32[i6 >> 2] = 0.0;
 18961     FUNCTION_TABLE_viii[i19 & 127](i8, i23, i9);
 18962     i19 = HEAP32[i10 >> 2] | 0;
 18963     do {
 18964      if (d52 * +HEAPF32[i21 >> 2] + d49 * +HEAPF32[i22 >> 2] + d43 * +HEAPF32[i11 >> 2] < d47) {
 18965       i40 = HEAP32[i19 + 36 >> 2] | 0;
 18966       i34 = i40 + (i45 * 56 | 0) + 40 | 0;
 18967       HEAPF32[i34 >> 2] = +HEAPF32[i34 >> 2] * -1.0;
 18968       i34 = i40 + (i45 * 56 | 0) + 44 | 0;
 18969       HEAPF32[i34 >> 2] = +HEAPF32[i34 >> 2] * -1.0;
 18970       i34 = i40 + (i45 * 56 | 0) + 48 | 0;
 18971       HEAPF32[i34 >> 2] = +HEAPF32[i34 >> 2] * -1.0;
 18972       i34 = i40 + (i45 * 56 | 0) + 52 | 0;
 18973       HEAPF32[i34 >> 2] = +HEAPF32[i34 >> 2] * -1.0;
 18974       i34 = HEAP32[i40 + (i45 * 56 | 0) + 4 >> 2] | 0;
 18975       i35 = (i34 | 0) / 2 | 0;
 18976       if ((i34 | 0) <= 1) {
 18977        break;
 18979       i36 = HEAP32[i40 + (i45 * 56 | 0) + 12 >> 2] | 0;
 18980       i40 = i34 - 1 | 0;
 18981       i34 = 0;
 18982       do {
 18983        i13 = i36 + (i34 << 2) | 0;
 18984        i15 = i36 + (i40 - i34 << 2) | 0;
 18985        i4 = HEAP32[i13 >> 2] | 0;
 18986        HEAP32[i13 >> 2] = HEAP32[i15 >> 2];
 18987        HEAP32[i15 >> 2] = i4;
 18988        i34 = i34 + 1 | 0;
 18989       } while ((i34 | 0) < (i35 | 0));
 18991     } while (0);
 18992     i26 = i45 + 1 | 0;
 18993     if ((i26 | 0) < (HEAP32[i19 + 28 >> 2] | 0)) {
 18994      i45 = i26;
 18995      i7 = i19;
 18996     } else {
 18997      i54 = i19;
 18998      break;
 19002  } while (0);
 19003  __ZN18btConvexPolyhedron10initializeEv(i54);
 19004  if ((i24 | 0) != 0) {
 19005   __Z21btAlignedFreeInternalPv(i24);
 19007  __ZN20btConvexHullComputerD2Ev(i3);
 19008  if ((i16 | 0) == 0) {
 19009   STACKTOP = i2;
 19010   return 1;
 19012  __Z21btAlignedFreeInternalPv(i20);
 19013  STACKTOP = i2;
 19014  return 1;
 19016 function __ZN18btConvexPolyhedron10initializeEv(i1) {
 19017  i1 = i1 | 0;
 19018  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, d49 = 0.0, d50 = 0.0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0, d68 = 0.0, d69 = 0.0, d70 = 0.0, d71 = 0.0, d72 = 0.0, d73 = 0.0, d74 = 0.0, d75 = 0.0, d76 = 0.0, d77 = 0.0, d78 = 0.0, d79 = 0.0, d80 = 0.0, d81 = 0.0, d82 = 0.0, d83 = 0.0, d84 = 0.0;
 19019  i2 = STACKTOP;
 19020  STACKTOP = STACKTOP + 96 | 0;
 19021  i3 = i2 | 0;
 19022  i4 = i2 + 80 | 0;
 19023  i5 = i2 + 88 | 0;
 19024  HEAP8[i3 + 16 | 0] = 1;
 19025  i6 = i3 + 12 | 0;
 19026  HEAP32[i6 >> 2] = 0;
 19027  i7 = i3 + 4 | 0;
 19028  HEAP32[i7 >> 2] = 0;
 19029  HEAP32[i3 + 8 >> 2] = 0;
 19030  HEAP8[i3 + 36 | 0] = 1;
 19031  i8 = i3 + 32 | 0;
 19032  HEAP32[i8 >> 2] = 0;
 19033  HEAP32[i3 + 24 >> 2] = 0;
 19034  HEAP32[i3 + 28 >> 2] = 0;
 19035  HEAP8[i3 + 56 | 0] = 1;
 19036  i9 = i3 + 52 | 0;
 19037  HEAP32[i9 >> 2] = 0;
 19038  HEAP32[i3 + 44 >> 2] = 0;
 19039  i10 = i3 + 48 | 0;
 19040  HEAP32[i10 >> 2] = 0;
 19041  HEAP8[i3 + 76 | 0] = 1;
 19042  i11 = i3 + 72 | 0;
 19043  HEAP32[i11 >> 2] = 0;
 19044  HEAP32[i3 + 64 >> 2] = 0;
 19045  HEAP32[i3 + 68 >> 2] = 0;
 19046  i12 = i1 + 64 | 0;
 19047  i13 = i1 + 68 | 0;
 19048  i14 = i1 + 72 | 0;
 19049  i15 = i1 + 28 | 0;
 19050  _memset(i12 | 0, 0, 16);
 19051  i16 = HEAP32[i15 >> 2] | 0;
 19052  if ((i16 | 0) <= 0) {
 19053   d17 = 0.0;
 19054   d18 = 1.0 / d17;
 19055   d19 = +HEAPF32[i12 >> 2];
 19056   d20 = d18 * d19;
 19057   HEAPF32[i12 >> 2] = d20;
 19058   d21 = +HEAPF32[i13 >> 2];
 19059   d22 = d18 * d21;
 19060   HEAPF32[i13 >> 2] = d22;
 19061   d23 = +HEAPF32[i14 >> 2];
 19062   d24 = d18 * d23;
 19063   HEAPF32[i14 >> 2] = d24;
 19064   __ZN9btHashMapI20btInternalVertexPair14btInternalEdgeED2Ev(i3);
 19065   STACKTOP = i2;
 19066   return;
 19068  i25 = i1 + 36 | 0;
 19069  i26 = i4 | 0;
 19070  i27 = i4 + 2 | 0;
 19071  i28 = i1 + 16 | 0;
 19072  i29 = i1 + 48 | 0;
 19073  i30 = i5 | 0;
 19074  i31 = i5 + 2 | 0;
 19075  i32 = i1 + 52 | 0;
 19076  i33 = i1 + 56 | 0;
 19077  i34 = i1 + 60 | 0;
 19078  i1 = 0;
 19079  i35 = i16;
 19080  while (1) {
 19081   i16 = HEAP32[i25 >> 2] | 0;
 19082   i36 = HEAP32[i16 + (i1 * 56 | 0) + 4 >> 2] | 0;
 19083   if ((i36 | 0) > 0) {
 19084    i37 = i1 & 65535;
 19085    i38 = 0;
 19086    i39 = i16;
 19087    while (1) {
 19088     i16 = i38 + 1 | 0;
 19089     i40 = HEAP32[i39 + (i1 * 56 | 0) + 12 >> 2] | 0;
 19090     i41 = HEAP32[i40 + (i38 << 2) >> 2] & 65535;
 19091     i42 = HEAP32[i40 + (((i16 | 0) == (i36 | 0) ? 0 : i16) << 2) >> 2] & 65535;
 19092     HEAP16[i26 >> 1] = i41;
 19093     HEAP16[i27 >> 1] = i42;
 19094     if (i41 << 16 >> 16 < i42 << 16 >> 16) {
 19095      HEAP16[i26 >> 1] = i42;
 19096      HEAP16[i27 >> 1] = i41;
 19097      i43 = i42;
 19098      i44 = i41;
 19099     } else {
 19100      i43 = i41;
 19101      i44 = i42;
 19103     i42 = i43 << 16 >> 16;
 19104     i41 = ((i44 & 65535) << 16) + i42 & (HEAP32[i10 >> 2] | 0) - 1;
 19105     L1973 : do {
 19106      if (i41 >>> 0 < (HEAP32[i7 >> 2] | 0) >>> 0) {
 19107       i40 = HEAP32[(HEAP32[i6 >> 2] | 0) + (i41 << 2) >> 2] | 0;
 19108       if ((i40 | 0) == -1) {
 19109        i45 = 0;
 19110        break;
 19112       i46 = HEAP32[i11 >> 2] | 0;
 19113       i47 = HEAP32[i8 >> 2] | 0;
 19114       i48 = i40;
 19115       while (1) {
 19116        if (i43 << 16 >> 16 == (HEAP16[i46 + (i48 << 2) >> 1] | 0)) {
 19117         if (i44 << 16 >> 16 == (HEAP16[i46 + (i48 << 2) + 2 >> 1] | 0)) {
 19118          break;
 19121        i40 = HEAP32[i47 + (i48 << 2) >> 2] | 0;
 19122        if ((i40 | 0) == -1) {
 19123         i45 = 0;
 19124         break L1973;
 19125        } else {
 19126         i48 = i40;
 19129       if ((i48 | 0) == -1) {
 19130        i45 = 0;
 19131        break;
 19133       i45 = (HEAP32[i9 >> 2] | 0) + (i48 << 2) | 0;
 19134      } else {
 19135       i45 = 0;
 19137     } while (0);
 19138     i41 = i44 << 16 >> 16;
 19139     i47 = HEAP32[i28 >> 2] | 0;
 19140     d49 = +HEAPF32[i47 + (i41 << 4) >> 2] - +HEAPF32[i47 + (i42 << 4) >> 2];
 19141     d50 = +HEAPF32[i47 + (i41 << 4) + 4 >> 2] - +HEAPF32[i47 + (i42 << 4) + 4 >> 2];
 19142     d51 = +HEAPF32[i47 + (i41 << 4) + 8 >> 2] - +HEAPF32[i47 + (i42 << 4) + 8 >> 2];
 19143     d52 = 1.0 / +Math_sqrt(+(d49 * d49 + d50 * d50 + d51 * d51));
 19144     d53 = d49 * d52;
 19145     d49 = d50 * d52;
 19146     d50 = d51 * d52;
 19147     i47 = HEAP32[i29 >> 2] | 0;
 19148     L1984 : do {
 19149      if ((i47 | 0) > 0) {
 19150       i41 = HEAP32[i33 >> 2] | 0;
 19151       i46 = 0;
 19152       while (1) {
 19153        d52 = +HEAPF32[i41 + (i46 << 4) >> 2];
 19154        d51 = +HEAPF32[i41 + (i46 << 4) + 8 >> 2];
 19155        d54 = d51 - d50;
 19156        do {
 19157         if (+Math_abs(+(d52 - d53)) <= 1.0e-6) {
 19158          if (+Math_abs(+(+HEAPF32[i41 + (i46 << 4) + 4 >> 2] - d49)) > 1.0e-6) {
 19159           break;
 19161          if (+Math_abs(+d54) <= 1.0e-6) {
 19162           break L1984;
 19165        } while (0);
 19166        d54 = d50 + d51;
 19167        do {
 19168         if (+Math_abs(+(d53 + d52)) <= 1.0e-6) {
 19169          if (+Math_abs(+(d49 + +HEAPF32[i41 + (i46 << 4) + 4 >> 2])) > 1.0e-6) {
 19170           break;
 19172          if (+Math_abs(+d54) <= 1.0e-6) {
 19173           break L1984;
 19176        } while (0);
 19177        i40 = i46 + 1 | 0;
 19178        if ((i40 | 0) < (i47 | 0)) {
 19179         i46 = i40;
 19180        } else {
 19181         i55 = 1714;
 19182         break;
 19185      } else {
 19186       i55 = 1714;
 19188     } while (0);
 19189     if ((i55 | 0) == 1714) {
 19190      i55 = 0;
 19191      do {
 19192       if ((i47 | 0) == (HEAP32[i32 >> 2] | 0)) {
 19193        i42 = (i47 | 0) == 0 ? 1 : i47 << 1;
 19194        if ((i47 | 0) >= (i42 | 0)) {
 19195         i56 = i47;
 19196         break;
 19198        if ((i42 | 0) == 0) {
 19199         i57 = 0;
 19200         i58 = i47;
 19201        } else {
 19202         i46 = __Z22btAlignedAllocInternalji(i42 << 4, 16) | 0;
 19203         i57 = i46;
 19204         i58 = HEAP32[i29 >> 2] | 0;
 19206        if ((i58 | 0) > 0) {
 19207         i46 = 0;
 19208         do {
 19209          i41 = i57 + (i46 << 4) | 0;
 19210          if ((i41 | 0) != 0) {
 19211           i48 = i41;
 19212           i41 = (HEAP32[i33 >> 2] | 0) + (i46 << 4) | 0;
 19213           HEAP32[i48 >> 2] = HEAP32[i41 >> 2];
 19214           HEAP32[i48 + 4 >> 2] = HEAP32[i41 + 4 >> 2];
 19215           HEAP32[i48 + 8 >> 2] = HEAP32[i41 + 8 >> 2];
 19216           HEAP32[i48 + 12 >> 2] = HEAP32[i41 + 12 >> 2];
 19218          i46 = i46 + 1 | 0;
 19219         } while ((i46 | 0) < (i58 | 0));
 19221        i46 = HEAP32[i33 >> 2] | 0;
 19222        if ((i46 | 0) != 0) {
 19223         if ((HEAP8[i34] | 0) != 0) {
 19224          __Z21btAlignedFreeInternalPv(i46);
 19226         HEAP32[i33 >> 2] = 0;
 19228        HEAP8[i34] = 1;
 19229        HEAP32[i33 >> 2] = i57;
 19230        HEAP32[i32 >> 2] = i42;
 19231        i56 = HEAP32[i29 >> 2] | 0;
 19232       } else {
 19233        i56 = i47;
 19235      } while (0);
 19236      i47 = HEAP32[i33 >> 2] | 0;
 19237      i46 = i47 + (i56 << 4) | 0;
 19238      if ((i46 | 0) == 0) {
 19239       i59 = i56;
 19240      } else {
 19241       HEAPF32[i46 >> 2] = d53;
 19242       HEAPF32[i47 + (i56 << 4) + 4 >> 2] = d49;
 19243       HEAPF32[i47 + (i56 << 4) + 8 >> 2] = d50;
 19244       HEAPF32[i47 + (i56 << 4) + 12 >> 2] = 0.0;
 19245       i59 = HEAP32[i29 >> 2] | 0;
 19247      HEAP32[i29 >> 2] = i59 + 1;
 19249     if ((i45 | 0) == 0) {
 19250      HEAP16[i31 >> 1] = -1;
 19251      HEAP16[i30 >> 1] = i37;
 19252      __ZN9btHashMapI20btInternalVertexPair14btInternalEdgeE6insertERKS0_RKS1_(i3, i4, i5);
 19253     } else {
 19254      HEAP16[i45 + 2 >> 1] = i37;
 19256     if ((i16 | 0) >= (i36 | 0)) {
 19257      break;
 19259     i38 = i16;
 19260     i39 = HEAP32[i25 >> 2] | 0;
 19262    i60 = HEAP32[i15 >> 2] | 0;
 19263   } else {
 19264    i60 = i35;
 19266   i39 = i1 + 1 | 0;
 19267   if ((i39 | 0) < (i60 | 0)) {
 19268    i1 = i39;
 19269    i35 = i60;
 19270   } else {
 19271    break;
 19274  if ((i60 | 0) <= 0) {
 19275   d17 = 0.0;
 19276   d18 = 1.0 / d17;
 19277   d19 = +HEAPF32[i12 >> 2];
 19278   d20 = d18 * d19;
 19279   HEAPF32[i12 >> 2] = d20;
 19280   d21 = +HEAPF32[i13 >> 2];
 19281   d22 = d18 * d21;
 19282   HEAPF32[i13 >> 2] = d22;
 19283   d23 = +HEAPF32[i14 >> 2];
 19284   d24 = d18 * d23;
 19285   HEAPF32[i14 >> 2] = d24;
 19286   __ZN9btHashMapI20btInternalVertexPair14btInternalEdgeED2Ev(i3);
 19287   STACKTOP = i2;
 19288   return;
 19290  i60 = (HEAP32[i10 >> 2] | 0) - 1 | 0;
 19291  i10 = HEAP32[i7 >> 2] | 0;
 19292  i7 = HEAP32[i6 >> 2] | 0;
 19293  i6 = HEAP32[i11 >> 2] | 0;
 19294  i11 = HEAP32[i8 >> 2] | 0;
 19295  i8 = HEAP32[i9 >> 2] | 0;
 19296  i9 = 0;
 19297  do {
 19298   i35 = HEAP32[i25 >> 2] | 0;
 19299   i1 = HEAP32[i35 + (i9 * 56 | 0) + 4 >> 2] | 0;
 19300   i45 = i35 + (i9 * 56 | 0) + 24 | 0;
 19301   i5 = HEAP32[i45 >> 2] | 0;
 19302   if ((i5 | 0) < (i1 | 0)) {
 19303    i4 = i35 + (i9 * 56 | 0) + 28 | 0;
 19304    if ((HEAP32[i4 >> 2] | 0) < (i1 | 0)) {
 19305     if ((i1 | 0) == 0) {
 19306      i61 = 0;
 19307      i62 = i5;
 19308     } else {
 19309      i30 = __Z22btAlignedAllocInternalji(i1 << 2, 16) | 0;
 19310      i61 = i30;
 19311      i62 = HEAP32[i45 >> 2] | 0;
 19313     i30 = i35 + (i9 * 56 | 0) + 32 | 0;
 19314     if ((i62 | 0) > 0) {
 19315      i31 = 0;
 19316      do {
 19317       i59 = i61 + (i31 << 2) | 0;
 19318       if ((i59 | 0) != 0) {
 19319        HEAP32[i59 >> 2] = HEAP32[(HEAP32[i30 >> 2] | 0) + (i31 << 2) >> 2];
 19321       i31 = i31 + 1 | 0;
 19322      } while ((i31 | 0) < (i62 | 0));
 19324     i31 = HEAP32[i30 >> 2] | 0;
 19325     i59 = i35 + (i9 * 56 | 0) + 36 | 0;
 19326     if ((i31 | 0) != 0) {
 19327      if ((HEAP8[i59] | 0) != 0) {
 19328       __Z21btAlignedFreeInternalPv(i31);
 19330      HEAP32[i30 >> 2] = 0;
 19332     HEAP8[i59] = 1;
 19333     HEAP32[i30 >> 2] = i61;
 19334     HEAP32[i4 >> 2] = i1;
 19335     i63 = i61;
 19336    } else {
 19337     i63 = HEAP32[i35 + (i9 * 56 | 0) + 32 >> 2] | 0;
 19339    i59 = i5;
 19340    do {
 19341     i31 = i63 + (i59 << 2) | 0;
 19342     if ((i31 | 0) != 0) {
 19343      HEAP32[i31 >> 2] = 0;
 19345     i59 = i59 + 1 | 0;
 19346    } while ((i59 | 0) < (i1 | 0));
 19348   HEAP32[i45 >> 2] = i1;
 19349   if ((i1 | 0) > 0) {
 19350    i59 = HEAP32[i25 >> 2] | 0;
 19351    i5 = HEAP32[i59 + (i9 * 56 | 0) + 12 >> 2] | 0;
 19352    i35 = i59 + (i9 * 56 | 0) + 32 | 0;
 19353    i59 = 0;
 19354    while (1) {
 19355     i4 = i59 + 1 | 0;
 19356     i30 = HEAP32[i5 + (i59 << 2) >> 2] & 65535;
 19357     i31 = HEAP32[i5 + (((i4 | 0) == (i1 | 0) ? 0 : i4) << 2) >> 2] & 65535;
 19358     i29 = i30 << 16 >> 16 < i31 << 16 >> 16;
 19359     i56 = i29 ? i30 : i31;
 19360     i33 = i29 ? i31 : i30;
 19361     i30 = ((i56 & 65535) << 16) + (i33 << 16 >> 16) & i60;
 19362     L2069 : do {
 19363      if (i30 >>> 0 < i10 >>> 0) {
 19364       i31 = HEAP32[i7 + (i30 << 2) >> 2] | 0;
 19365       if ((i31 | 0) == -1) {
 19366        i64 = 0;
 19367        break;
 19368       } else {
 19369        i65 = i31;
 19371       while (1) {
 19372        if (i33 << 16 >> 16 == (HEAP16[i6 + (i65 << 2) >> 1] | 0)) {
 19373         if (i56 << 16 >> 16 == (HEAP16[i6 + (i65 << 2) + 2 >> 1] | 0)) {
 19374          break;
 19377        i31 = HEAP32[i11 + (i65 << 2) >> 2] | 0;
 19378        if ((i31 | 0) == -1) {
 19379         i64 = 0;
 19380         break L2069;
 19381        } else {
 19382         i65 = i31;
 19385       if ((i65 | 0) == -1) {
 19386        i64 = 0;
 19387        break;
 19389       i64 = i8 + (i65 << 2) | 0;
 19390      } else {
 19391       i64 = 0;
 19393     } while (0);
 19394     i56 = HEAP16[i64 >> 1] | 0;
 19395     if ((i56 << 16 >> 16 | 0) == (i9 | 0)) {
 19396      i66 = HEAP16[i64 + 2 >> 1] | 0;
 19397     } else {
 19398      i66 = i56;
 19400     HEAP32[(HEAP32[i35 >> 2] | 0) + (i59 << 2) >> 2] = i66 << 16 >> 16;
 19401     if ((i4 | 0) < (i1 | 0)) {
 19402      i59 = i4;
 19403     } else {
 19404      break;
 19408   i9 = i9 + 1 | 0;
 19409   i67 = HEAP32[i15 >> 2] | 0;
 19410  } while ((i9 | 0) < (i67 | 0));
 19411  if ((i67 | 0) <= 0) {
 19412   d17 = 0.0;
 19413   d18 = 1.0 / d17;
 19414   d19 = +HEAPF32[i12 >> 2];
 19415   d20 = d18 * d19;
 19416   HEAPF32[i12 >> 2] = d20;
 19417   d21 = +HEAPF32[i13 >> 2];
 19418   d22 = d18 * d21;
 19419   HEAPF32[i13 >> 2] = d22;
 19420   d23 = +HEAPF32[i14 >> 2];
 19421   d24 = d18 * d23;
 19422   HEAPF32[i14 >> 2] = d24;
 19423   __ZN9btHashMapI20btInternalVertexPair14btInternalEdgeED2Ev(i3);
 19424   STACKTOP = i2;
 19425   return;
 19427  i9 = HEAP32[i25 >> 2] | 0;
 19428  i25 = HEAP32[i28 >> 2] | 0;
 19429  d50 = 0.0;
 19430  i28 = 0;
 19431  while (1) {
 19432   i15 = HEAP32[i9 + (i28 * 56 | 0) + 4 >> 2] | 0;
 19433   i66 = i15 - 2 | 0;
 19434   i64 = HEAP32[i9 + (i28 * 56 | 0) + 12 >> 2] | 0;
 19435   i65 = HEAP32[i64 >> 2] | 0;
 19436   if ((i66 | 0) < 1) {
 19437    d68 = d50;
 19438   } else {
 19439    i8 = i25 + (i65 << 4) | 0;
 19440    i11 = i25 + (i65 << 4) + 4 | 0;
 19441    i6 = i25 + (i65 << 4) + 8 | 0;
 19442    d49 = d50;
 19443    i65 = 1;
 19444    d53 = +HEAPF32[i12 >> 2];
 19445    d54 = +HEAPF32[i13 >> 2];
 19446    d52 = +HEAPF32[i14 >> 2];
 19447    while (1) {
 19448     i7 = i65 + 1 | 0;
 19449     i10 = HEAP32[i64 + (i65 << 2) >> 2] | 0;
 19450     i60 = HEAP32[i64 + (((i7 | 0) % (i15 | 0) | 0) << 2) >> 2] | 0;
 19451     d51 = +HEAPF32[i8 >> 2];
 19452     d69 = +HEAPF32[i25 + (i10 << 4) >> 2];
 19453     d70 = d51 - d69;
 19454     d71 = +HEAPF32[i11 >> 2];
 19455     d72 = +HEAPF32[i25 + (i10 << 4) + 4 >> 2];
 19456     d73 = d71 - d72;
 19457     d74 = +HEAPF32[i6 >> 2];
 19458     d75 = +HEAPF32[i25 + (i10 << 4) + 8 >> 2];
 19459     d76 = d74 - d75;
 19460     d77 = +HEAPF32[i25 + (i60 << 4) >> 2];
 19461     d78 = d51 - d77;
 19462     d79 = +HEAPF32[i25 + (i60 << 4) + 4 >> 2];
 19463     d80 = d71 - d79;
 19464     d81 = +HEAPF32[i25 + (i60 << 4) + 8 >> 2];
 19465     d82 = d74 - d81;
 19466     d83 = d73 * d82 - d76 * d80;
 19467     d84 = d76 * d78 - d70 * d82;
 19468     d82 = d70 * d80 - d73 * d78;
 19469     d78 = +Math_sqrt(+(d82 * d82 + (d83 * d83 + d84 * d84))) * .5;
 19470     d84 = d53 + (d51 + d69 + d77) * .3333333432674408 * d78;
 19471     HEAPF32[i12 >> 2] = d84;
 19472     d77 = d54 + (d71 + d72 + d79) * .3333333432674408 * d78;
 19473     HEAPF32[i13 >> 2] = d77;
 19474     d79 = d52 + d78 * (d74 + d75 + d81) * .3333333432674408;
 19475     HEAPF32[i14 >> 2] = d79;
 19476     d81 = d49 + d78;
 19477     if ((i7 | 0) > (i66 | 0)) {
 19478      d68 = d81;
 19479      break;
 19480     } else {
 19481      d49 = d81;
 19482      i65 = i7;
 19483      d53 = d84;
 19484      d54 = d77;
 19485      d52 = d79;
 19489   i65 = i28 + 1 | 0;
 19490   if ((i65 | 0) < (i67 | 0)) {
 19491    d50 = d68;
 19492    i28 = i65;
 19493   } else {
 19494    d17 = d68;
 19495    break;
 19498  d18 = 1.0 / d17;
 19499  d19 = +HEAPF32[i12 >> 2];
 19500  d20 = d18 * d19;
 19501  HEAPF32[i12 >> 2] = d20;
 19502  d21 = +HEAPF32[i13 >> 2];
 19503  d22 = d18 * d21;
 19504  HEAPF32[i13 >> 2] = d22;
 19505  d23 = +HEAPF32[i14 >> 2];
 19506  d24 = d18 * d23;
 19507  HEAPF32[i14 >> 2] = d24;
 19508  __ZN9btHashMapI20btInternalVertexPair14btInternalEdgeED2Ev(i3);
 19509  STACKTOP = i2;
 19510  return;
 19512 function __ZN12gjkepa2_impl3EPA8EvaluateERNS_3GJKERK9btVector3(i1, i2, i3) {
 19513  i1 = i1 | 0;
 19514  i2 = i2 | 0;
 19515  i3 = i3 | 0;
 19516  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, i24 = 0, d25 = 0.0, d26 = 0.0, d27 = 0.0, i28 = 0, i29 = 0, d30 = 0.0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, d36 = 0.0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, d50 = 0.0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0, d55 = 0.0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, d62 = 0.0, d63 = 0.0, d64 = 0.0, d65 = 0.0, d66 = 0.0, i67 = 0, d68 = 0.0, d69 = 0.0, d70 = 0.0, d71 = 0.0, d72 = 0.0, d73 = 0.0, d74 = 0.0, i75 = 0, d76 = 0.0, d77 = 0.0, d78 = 0.0;
 19517  i4 = STACKTOP;
 19518  STACKTOP = STACKTOP + 16 | 0;
 19519  i5 = i4 | 0;
 19520  i6 = HEAP32[i2 + 372 >> 2] | 0;
 19521  do {
 19522   if ((HEAP32[i6 + 32 >> 2] | 0) >>> 0 > 1) {
 19523    if (!(__ZN12gjkepa2_impl3GJK13EncloseOriginEv(i2) | 0)) {
 19524     break;
 19526    i7 = i1 + 9792 | 0;
 19527    i8 = HEAP32[i7 >> 2] | 0;
 19528    if ((i8 | 0) != 0) {
 19529     i9 = i1 + 9796 | 0;
 19530     i10 = i1 + 9800 | 0;
 19531     i11 = i1 + 9804 | 0;
 19532     i12 = i8;
 19533     i8 = HEAP32[i9 >> 2] | 0;
 19534     i13 = HEAP32[i11 >> 2] | 0;
 19535     do {
 19536      i14 = i12 + 52 | 0;
 19537      i15 = HEAP32[i14 >> 2] | 0;
 19538      i16 = i12 + 48 | 0;
 19539      if ((i15 | 0) != 0) {
 19540       HEAP32[i15 + 48 >> 2] = HEAP32[i16 >> 2];
 19542      i15 = HEAP32[i16 >> 2] | 0;
 19543      if ((i15 | 0) != 0) {
 19544       HEAP32[i15 + 52 >> 2] = HEAP32[i14 >> 2];
 19546      if ((HEAP32[i7 >> 2] | 0) == (i12 | 0)) {
 19547       HEAP32[i7 >> 2] = HEAP32[i14 >> 2];
 19549      i8 = i8 - 1 | 0;
 19550      HEAP32[i16 >> 2] = 0;
 19551      HEAP32[i14 >> 2] = HEAP32[i10 >> 2];
 19552      i14 = HEAP32[i10 >> 2] | 0;
 19553      if ((i14 | 0) != 0) {
 19554       HEAP32[i14 + 48 >> 2] = i12;
 19556      HEAP32[i10 >> 2] = i12;
 19557      i13 = i13 + 1 | 0;
 19558      i12 = HEAP32[i7 >> 2] | 0;
 19559     } while ((i12 | 0) != 0);
 19560     HEAP32[i9 >> 2] = i8;
 19561     HEAP32[i11 >> 2] = i13;
 19563    i12 = i1 | 0;
 19564    HEAP32[i12 >> 2] = 0;
 19565    i10 = i1 + 9788 | 0;
 19566    HEAP32[i10 >> 2] = 0;
 19567    i14 = i6 | 0;
 19568    i16 = HEAP32[i14 >> 2] | 0;
 19569    i15 = i6 + 12 | 0;
 19570    i17 = HEAP32[i15 >> 2] | 0;
 19571    d18 = +HEAPF32[i17 + 16 >> 2];
 19572    d19 = +HEAPF32[i16 + 16 >> 2] - d18;
 19573    d20 = +HEAPF32[i17 + 20 >> 2];
 19574    d21 = +HEAPF32[i16 + 20 >> 2] - d20;
 19575    d22 = +HEAPF32[i17 + 24 >> 2];
 19576    d23 = +HEAPF32[i16 + 24 >> 2] - d22;
 19577    i17 = i6 + 4 | 0;
 19578    i24 = HEAP32[i17 >> 2] | 0;
 19579    d25 = +HEAPF32[i24 + 16 >> 2] - d18;
 19580    d26 = +HEAPF32[i24 + 20 >> 2] - d20;
 19581    d27 = +HEAPF32[i24 + 24 >> 2] - d22;
 19582    i28 = i6 + 8 | 0;
 19583    i29 = HEAP32[i28 >> 2] | 0;
 19584    d30 = +HEAPF32[i29 + 16 >> 2] - d18;
 19585    d18 = +HEAPF32[i29 + 20 >> 2] - d20;
 19586    d20 = +HEAPF32[i29 + 24 >> 2] - d22;
 19587    if (d19 * d26 * d20 + (d21 * d27 * d30 + d23 * d25 * d18 - d19 * d27 * d18 - d21 * d25 * d20) - d23 * d26 * d30 < 0.0) {
 19588     HEAP32[i14 >> 2] = i24;
 19589     HEAP32[i17 >> 2] = i16;
 19590     i31 = i6 + 16 | 0;
 19591     i32 = i6 + 20 | 0;
 19592     d30 = +HEAPF32[i31 >> 2];
 19593     HEAPF32[i31 >> 2] = +HEAPF32[i32 >> 2];
 19594     HEAPF32[i32 >> 2] = d30;
 19595     i33 = i24;
 19596     i34 = i16;
 19597    } else {
 19598     i33 = i16;
 19599     i34 = i24;
 19601    i24 = __ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(i1, i33, i34, i29, 1) | 0;
 19602    i29 = __ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(i1, HEAP32[i17 >> 2] | 0, HEAP32[i14 >> 2] | 0, HEAP32[i15 >> 2] | 0, 1) | 0;
 19603    i16 = __ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(i1, HEAP32[i28 >> 2] | 0, HEAP32[i17 >> 2] | 0, HEAP32[i15 >> 2] | 0, 1) | 0;
 19604    i17 = __ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(i1, HEAP32[i14 >> 2] | 0, HEAP32[i28 >> 2] | 0, HEAP32[i15 >> 2] | 0, 1) | 0;
 19605    i15 = i1 + 9796 | 0;
 19606    if ((HEAP32[i15 >> 2] | 0) != 4) {
 19607     break;
 19609    i28 = HEAP32[i7 >> 2] | 0;
 19610    d30 = +HEAPF32[i28 + 16 >> 2];
 19611    i14 = HEAP32[i28 + 52 >> 2] | 0;
 19612    if ((i14 | 0) == 0) {
 19613     i35 = i28;
 19614     d36 = d30;
 19615    } else {
 19616     d26 = d30 * d30;
 19617     d30 = +HEAPF32[i28 + 20 >> 2];
 19618     i32 = i28;
 19619     i28 = i14;
 19620     while (1) {
 19621      d23 = +HEAPF32[i28 + 16 >> 2];
 19622      d20 = d23 * d23;
 19623      d23 = +HEAPF32[i28 + 20 >> 2];
 19624      i14 = d23 >= d30 & d20 < d26;
 19625      i37 = i14 ? i28 : i32;
 19626      i31 = HEAP32[i28 + 52 >> 2] | 0;
 19627      if ((i31 | 0) == 0) {
 19628       break;
 19629      } else {
 19630       d26 = i14 ? d20 : d26;
 19631       d30 = i14 ? d23 : d30;
 19632       i32 = i37;
 19633       i28 = i31;
 19636     i35 = i37;
 19637     d36 = +HEAPF32[i37 + 16 >> 2];
 19639    d30 = +HEAPF32[i35 >> 2];
 19640    d26 = +HEAPF32[i35 + 4 >> 2];
 19641    d23 = +HEAPF32[i35 + 8 >> 2];
 19642    d20 = +HEAPF32[i35 + 12 >> 2];
 19643    d25 = +HEAPF32[i35 + 20 >> 2];
 19644    i28 = HEAP32[i35 + 24 >> 2] | 0;
 19645    i32 = HEAP32[i35 + 28 >> 2] | 0;
 19646    i13 = HEAP32[i35 + 32 >> 2] | 0;
 19647    HEAP8[i24 + 56 | 0] = 0;
 19648    HEAP32[i24 + 36 >> 2] = i29;
 19649    HEAP8[i29 + 56 | 0] = 0;
 19650    HEAP32[i29 + 36 >> 2] = i24;
 19651    HEAP8[i24 + 57 | 0] = 0;
 19652    HEAP32[i24 + 40 >> 2] = i16;
 19653    HEAP8[i16 + 56 | 0] = 1;
 19654    HEAP32[i16 + 36 >> 2] = i24;
 19655    HEAP8[i24 + 58 | 0] = 0;
 19656    HEAP32[i24 + 44 >> 2] = i17;
 19657    HEAP8[i17 + 56 | 0] = 2;
 19658    HEAP32[i17 + 36 >> 2] = i24;
 19659    HEAP8[i29 + 57 | 0] = 2;
 19660    HEAP32[i29 + 40 >> 2] = i17;
 19661    HEAP8[i17 + 58 | 0] = 1;
 19662    HEAP32[i17 + 44 >> 2] = i29;
 19663    HEAP8[i29 + 58 | 0] = 1;
 19664    HEAP32[i29 + 44 >> 2] = i16;
 19665    HEAP8[i16 + 57 | 0] = 2;
 19666    HEAP32[i16 + 40 >> 2] = i29;
 19667    HEAP8[i16 + 58 | 0] = 1;
 19668    HEAP32[i16 + 44 >> 2] = i17;
 19669    HEAP8[i17 + 57 | 0] = 2;
 19670    HEAP32[i17 + 40 >> 2] = i16;
 19671    HEAP32[i12 >> 2] = 0;
 19672    i11 = i5 | 0;
 19673    i8 = i5 + 4 | 0;
 19674    i9 = i5 + 8 | 0;
 19675    i31 = i1 + 9800 | 0;
 19676    i14 = i1 + 9804 | 0;
 19677    i38 = i13;
 19678    i13 = i32;
 19679    i32 = i28;
 19680    d21 = d25;
 19681    d25 = d36;
 19682    d18 = d20;
 19683    d20 = d23;
 19684    d23 = d26;
 19685    d26 = d30;
 19686    i28 = 0;
 19687    i39 = 1;
 19688    i40 = i35;
 19689    while (1) {
 19690     i41 = HEAP32[i10 >> 2] | 0;
 19691     if (i41 >>> 0 >= 64) {
 19692      i42 = 114;
 19693      break;
 19695     HEAP32[i11 >> 2] = 0;
 19696     HEAP32[i8 >> 2] = 0;
 19697     HEAP32[i9 >> 2] = 0;
 19698     HEAP32[i10 >> 2] = i41 + 1;
 19699     i43 = i1 + 60 + (i41 << 5) | 0;
 19700     HEAP8[i40 + 59 | 0] = i39 & 255;
 19701     __ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i2, i40 | 0, i43);
 19702     if (+HEAPF32[i40 >> 2] * +HEAPF32[i1 + 60 + (i41 << 5) + 16 >> 2] + +HEAPF32[i40 + 4 >> 2] * +HEAPF32[i1 + 60 + (i41 << 5) + 20 >> 2] + +HEAPF32[i40 + 8 >> 2] * +HEAPF32[i1 + 60 + (i41 << 5) + 24 >> 2] - +HEAPF32[i40 + 16 >> 2] > 9999999747378752.0e-20) {
 19703      i44 = 1;
 19704      i45 = 0;
 19705     } else {
 19706      i42 = 113;
 19707      break;
 19709     do {
 19710      i44 = i44 & (__ZN12gjkepa2_impl3EPA6expandEjPNS_3GJK3sSVEPNS0_5sFaceEjRNS0_8sHorizonE(i1, i39, i43, HEAP32[i40 + 36 + (i45 << 2) >> 2] | 0, HEAPU8[i40 + 56 + i45 | 0] | 0, i5) | 0);
 19711      i45 = i45 + 1 | 0;
 19712     } while (!(i45 >>> 0 > 2 | i44 ^ 1));
 19713     if (!i44) {
 19714      i42 = 112;
 19715      break;
 19717     if ((HEAP32[i9 >> 2] | 0) >>> 0 <= 2) {
 19718      i42 = 112;
 19719      break;
 19721     i43 = HEAP32[i11 >> 2] | 0;
 19722     i41 = HEAP32[i8 >> 2] | 0;
 19723     HEAP8[i43 + 57 | 0] = 2;
 19724     HEAP32[i43 + 40 >> 2] = i41;
 19725     HEAP8[i41 + 58 | 0] = 1;
 19726     HEAP32[i41 + 44 >> 2] = i43;
 19727     i43 = i40 + 52 | 0;
 19728     i41 = HEAP32[i43 >> 2] | 0;
 19729     i46 = i40 + 48 | 0;
 19730     if ((i41 | 0) != 0) {
 19731      HEAP32[i41 + 48 >> 2] = HEAP32[i46 >> 2];
 19733     i41 = HEAP32[i46 >> 2] | 0;
 19734     if ((i41 | 0) != 0) {
 19735      HEAP32[i41 + 52 >> 2] = HEAP32[i43 >> 2];
 19737     if ((HEAP32[i7 >> 2] | 0) == (i40 | 0)) {
 19738      HEAP32[i7 >> 2] = HEAP32[i43 >> 2];
 19740     HEAP32[i15 >> 2] = (HEAP32[i15 >> 2] | 0) - 1;
 19741     HEAP32[i46 >> 2] = 0;
 19742     HEAP32[i43 >> 2] = HEAP32[i31 >> 2];
 19743     i43 = HEAP32[i31 >> 2] | 0;
 19744     if ((i43 | 0) != 0) {
 19745      HEAP32[i43 + 48 >> 2] = i40;
 19747     HEAP32[i31 >> 2] = i40;
 19748     HEAP32[i14 >> 2] = (HEAP32[i14 >> 2] | 0) + 1;
 19749     i43 = HEAP32[i7 >> 2] | 0;
 19750     d30 = +HEAPF32[i43 + 16 >> 2];
 19751     i46 = HEAP32[i43 + 52 >> 2] | 0;
 19752     if ((i46 | 0) == 0) {
 19753      i47 = i43;
 19754     } else {
 19755      d27 = d30 * d30;
 19756      d30 = +HEAPF32[i43 + 20 >> 2];
 19757      i41 = i43;
 19758      i43 = i46;
 19759      while (1) {
 19760       d19 = +HEAPF32[i43 + 16 >> 2];
 19761       d22 = d19 * d19;
 19762       d19 = +HEAPF32[i43 + 20 >> 2];
 19763       i46 = d19 >= d30 & d22 < d27;
 19764       i48 = i46 ? i43 : i41;
 19765       i49 = HEAP32[i43 + 52 >> 2] | 0;
 19766       if ((i49 | 0) == 0) {
 19767        i47 = i48;
 19768        break;
 19769       } else {
 19770        d27 = i46 ? d22 : d27;
 19771        d30 = i46 ? d19 : d30;
 19772        i41 = i48;
 19773        i43 = i49;
 19777     d30 = +HEAPF32[i47 + 20 >> 2];
 19778     if (d30 < d21) {
 19779      d50 = d26;
 19780      d51 = d23;
 19781      d52 = d20;
 19782      d53 = d18;
 19783      d54 = d25;
 19784      d55 = d21;
 19785      i56 = i32;
 19786      i57 = i13;
 19787      i58 = i38;
 19788     } else {
 19789      d50 = +HEAPF32[i47 >> 2];
 19790      d51 = +HEAPF32[i47 + 4 >> 2];
 19791      d52 = +HEAPF32[i47 + 8 >> 2];
 19792      d53 = +HEAPF32[i47 + 12 >> 2];
 19793      d54 = +HEAPF32[i47 + 16 >> 2];
 19794      d55 = d30;
 19795      i56 = HEAP32[i47 + 24 >> 2] | 0;
 19796      i57 = HEAP32[i47 + 28 >> 2] | 0;
 19797      i58 = HEAP32[i47 + 32 >> 2] | 0;
 19799     i43 = i28 + 1 | 0;
 19800     if (i43 >>> 0 < 255) {
 19801      i38 = i58;
 19802      i13 = i57;
 19803      i32 = i56;
 19804      d21 = d55;
 19805      d25 = d54;
 19806      d18 = d53;
 19807      d20 = d52;
 19808      d23 = d51;
 19809      d26 = d50;
 19810      i28 = i43;
 19811      i39 = i39 + 1 | 0;
 19812      i40 = i47;
 19813     } else {
 19814      i42 = 116;
 19815      break;
 19818    if ((i42 | 0) == 112) {
 19819     HEAP32[i12 >> 2] = 4;
 19820     i59 = i38;
 19821     i60 = i13;
 19822     i61 = i32;
 19823     d62 = d25;
 19824     d63 = d18;
 19825     d64 = d20;
 19826     d65 = d23;
 19827     d66 = d26;
 19828     i67 = 4;
 19829    } else if ((i42 | 0) == 113) {
 19830     HEAP32[i12 >> 2] = 7;
 19831     i59 = i38;
 19832     i60 = i13;
 19833     i61 = i32;
 19834     d62 = d25;
 19835     d63 = d18;
 19836     d64 = d20;
 19837     d65 = d23;
 19838     d66 = d26;
 19839     i67 = 7;
 19840    } else if ((i42 | 0) == 114) {
 19841     HEAP32[i12 >> 2] = 6;
 19842     i59 = i38;
 19843     i60 = i13;
 19844     i61 = i32;
 19845     d62 = d25;
 19846     d63 = d18;
 19847     d64 = d20;
 19848     d65 = d23;
 19849     d66 = d26;
 19850     i67 = 6;
 19851    } else if ((i42 | 0) == 116) {
 19852     i59 = i58;
 19853     i60 = i57;
 19854     i61 = i56;
 19855     d62 = d54;
 19856     d63 = d53;
 19857     d64 = d52;
 19858     d65 = d51;
 19859     d66 = d50;
 19860     i67 = HEAP32[i12 >> 2] | 0;
 19862    d21 = d66 * d62;
 19863    d30 = d65 * d62;
 19864    d27 = d64 * d62;
 19865    HEAPF32[i1 + 40 >> 2] = d66;
 19866    HEAPF32[i1 + 44 >> 2] = d65;
 19867    HEAPF32[i1 + 48 >> 2] = d64;
 19868    HEAPF32[i1 + 52 >> 2] = d63;
 19869    HEAPF32[i1 + 56 >> 2] = d62;
 19870    HEAP32[i1 + 36 >> 2] = 3;
 19871    HEAP32[i1 + 4 >> 2] = i61;
 19872    HEAP32[i1 + 8 >> 2] = i60;
 19873    HEAP32[i1 + 12 >> 2] = i59;
 19874    i40 = i60 + 16 | 0;
 19875    d19 = +HEAPF32[i40 >> 2] - d21;
 19876    i39 = i60 + 20 | 0;
 19877    d22 = +HEAPF32[i39 >> 2] - d30;
 19878    i28 = i60 + 24 | 0;
 19879    d68 = +HEAPF32[i28 >> 2] - d27;
 19880    i7 = i59 + 16 | 0;
 19881    d69 = +HEAPF32[i7 >> 2] - d21;
 19882    i14 = i59 + 20 | 0;
 19883    d70 = +HEAPF32[i14 >> 2] - d30;
 19884    i31 = i59 + 24 | 0;
 19885    d71 = +HEAPF32[i31 >> 2] - d27;
 19886    d72 = d22 * d71 - d68 * d70;
 19887    d73 = d68 * d69 - d19 * d71;
 19888    d71 = d19 * d70 - d22 * d69;
 19889    d69 = +Math_sqrt(+(d71 * d71 + (d72 * d72 + d73 * d73)));
 19890    i15 = i1 + 20 | 0;
 19891    HEAPF32[i15 >> 2] = d69;
 19892    d73 = +HEAPF32[i7 >> 2] - d21;
 19893    d72 = +HEAPF32[i14 >> 2] - d30;
 19894    d71 = +HEAPF32[i31 >> 2] - d27;
 19895    i31 = i61 + 16 | 0;
 19896    d22 = +HEAPF32[i31 >> 2] - d21;
 19897    i14 = i61 + 20 | 0;
 19898    d70 = +HEAPF32[i14 >> 2] - d30;
 19899    i7 = i61 + 24 | 0;
 19900    d19 = +HEAPF32[i7 >> 2] - d27;
 19901    d68 = d72 * d19 - d71 * d70;
 19902    d74 = d71 * d22 - d73 * d19;
 19903    d19 = d73 * d70 - d72 * d22;
 19904    d22 = +Math_sqrt(+(d19 * d19 + (d68 * d68 + d74 * d74)));
 19905    i8 = i1 + 24 | 0;
 19906    HEAPF32[i8 >> 2] = d22;
 19907    d74 = +HEAPF32[i31 >> 2] - d21;
 19908    d68 = +HEAPF32[i14 >> 2] - d30;
 19909    d19 = +HEAPF32[i7 >> 2] - d27;
 19910    d72 = +HEAPF32[i40 >> 2] - d21;
 19911    d21 = +HEAPF32[i39 >> 2] - d30;
 19912    d30 = +HEAPF32[i28 >> 2] - d27;
 19913    d27 = d68 * d30 - d19 * d21;
 19914    d70 = d19 * d72 - d74 * d30;
 19915    d30 = d74 * d21 - d68 * d72;
 19916    d72 = +Math_sqrt(+(d30 * d30 + (d27 * d27 + d70 * d70)));
 19917    d70 = d69 + d22 + d72;
 19918    HEAPF32[i15 >> 2] = d69 / d70;
 19919    HEAPF32[i8 >> 2] = d22 / d70;
 19920    HEAPF32[i1 + 28 >> 2] = d72 / d70;
 19921    i75 = i67;
 19922    STACKTOP = i4;
 19923    return i75 | 0;
 19925  } while (0);
 19926  HEAP32[i1 >> 2] = 8;
 19927  d62 = +HEAPF32[i3 >> 2];
 19928  d63 = -0.0 - d62;
 19929  d64 = +HEAPF32[i3 + 4 >> 2];
 19930  d65 = -0.0 - d64;
 19931  d66 = +HEAPF32[i3 + 8 >> 2];
 19932  d50 = -0.0 - d66;
 19933  i3 = i1 + 40 | 0;
 19934  HEAPF32[i3 >> 2] = d63;
 19935  i67 = i1 + 44 | 0;
 19936  HEAPF32[i67 >> 2] = d65;
 19937  i61 = i1 + 48 | 0;
 19938  HEAPF32[i61 >> 2] = d50;
 19939  i59 = i1 + 52 | 0;
 19940  HEAPF32[i59 >> 2] = 0.0;
 19941  d51 = +Math_sqrt(+(d62 * d62 + d64 * d64 + d66 * d66));
 19942  if (d51 > 0.0) {
 19943   d66 = 1.0 / d51;
 19944   d76 = d66 * d50;
 19945   d77 = d66 * d65;
 19946   d78 = d66 * d63;
 19947  } else {
 19948   d76 = 0.0;
 19949   d77 = 0.0;
 19950   d78 = 1.0;
 19952  HEAPF32[i3 >> 2] = d78;
 19953  HEAPF32[i67 >> 2] = d77;
 19954  HEAPF32[i61 >> 2] = d76;
 19955  HEAPF32[i59 >> 2] = 0.0;
 19956  HEAPF32[i1 + 56 >> 2] = 0.0;
 19957  HEAP32[i1 + 36 >> 2] = 1;
 19958  HEAP32[i1 + 4 >> 2] = HEAP32[i6 >> 2];
 19959  HEAPF32[i1 + 20 >> 2] = 1.0;
 19960  i75 = 8;
 19961  STACKTOP = i4;
 19962  return i75 | 0;
 19964 function _free(i1) {
 19965  i1 = i1 | 0;
 19966  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0;
 19967  if ((i1 | 0) == 0) {
 19968   return;
 19970  i2 = i1 - 8 | 0;
 19971  i3 = i2;
 19972  i4 = HEAP32[3020] | 0;
 19973  if (i2 >>> 0 < i4 >>> 0) {
 19974   _abort();
 19976  i5 = HEAP32[i1 - 4 >> 2] | 0;
 19977  i6 = i5 & 3;
 19978  if ((i6 | 0) == 1) {
 19979   _abort();
 19981  i7 = i5 & -8;
 19982  i8 = i1 + (i7 - 8) | 0;
 19983  i9 = i8;
 19984  L527 : do {
 19985   if ((i5 & 1 | 0) == 0) {
 19986    i10 = HEAP32[i2 >> 2] | 0;
 19987    if ((i6 | 0) == 0) {
 19988     return;
 19990    i11 = -8 - i10 | 0;
 19991    i12 = i1 + i11 | 0;
 19992    i13 = i12;
 19993    i14 = i10 + i7 | 0;
 19994    if (i12 >>> 0 < i4 >>> 0) {
 19995     _abort();
 19997    if ((i13 | 0) == (HEAP32[3021] | 0)) {
 19998     i15 = i1 + (i7 - 4) | 0;
 19999     if ((HEAP32[i15 >> 2] & 3 | 0) != 3) {
 20000      i16 = i13;
 20001      i17 = i14;
 20002      break;
 20004     HEAP32[3018] = i14;
 20005     HEAP32[i15 >> 2] = HEAP32[i15 >> 2] & -2;
 20006     HEAP32[i1 + (i11 + 4) >> 2] = i14 | 1;
 20007     HEAP32[i8 >> 2] = i14;
 20008     return;
 20010    i15 = i10 >>> 3;
 20011    if (i10 >>> 0 < 256) {
 20012     i10 = HEAP32[i1 + (i11 + 8) >> 2] | 0;
 20013     i18 = HEAP32[i1 + (i11 + 12) >> 2] | 0;
 20014     i19 = 12104 + (i15 << 1 << 2) | 0;
 20015     do {
 20016      if ((i10 | 0) != (i19 | 0)) {
 20017       if (i10 >>> 0 < i4 >>> 0) {
 20018        _abort();
 20020       if ((HEAP32[i10 + 12 >> 2] | 0) == (i13 | 0)) {
 20021        break;
 20023       _abort();
 20025     } while (0);
 20026     if ((i18 | 0) == (i10 | 0)) {
 20027      HEAP32[3016] = HEAP32[3016] & ~(1 << i15);
 20028      i16 = i13;
 20029      i17 = i14;
 20030      break;
 20032     do {
 20033      if ((i18 | 0) == (i19 | 0)) {
 20034       i20 = i18 + 8 | 0;
 20035      } else {
 20036       if (i18 >>> 0 < i4 >>> 0) {
 20037        _abort();
 20039       i21 = i18 + 8 | 0;
 20040       if ((HEAP32[i21 >> 2] | 0) == (i13 | 0)) {
 20041        i20 = i21;
 20042        break;
 20044       _abort();
 20046     } while (0);
 20047     HEAP32[i10 + 12 >> 2] = i18;
 20048     HEAP32[i20 >> 2] = i10;
 20049     i16 = i13;
 20050     i17 = i14;
 20051     break;
 20053    i19 = i12;
 20054    i15 = HEAP32[i1 + (i11 + 24) >> 2] | 0;
 20055    i21 = HEAP32[i1 + (i11 + 12) >> 2] | 0;
 20056    do {
 20057     if ((i21 | 0) == (i19 | 0)) {
 20058      i22 = i1 + (i11 + 20) | 0;
 20059      i23 = HEAP32[i22 >> 2] | 0;
 20060      if ((i23 | 0) == 0) {
 20061       i24 = i1 + (i11 + 16) | 0;
 20062       i25 = HEAP32[i24 >> 2] | 0;
 20063       if ((i25 | 0) == 0) {
 20064        i26 = 0;
 20065        break;
 20066       } else {
 20067        i27 = i25;
 20068        i28 = i24;
 20070      } else {
 20071       i27 = i23;
 20072       i28 = i22;
 20074      while (1) {
 20075       i22 = i27 + 20 | 0;
 20076       i23 = HEAP32[i22 >> 2] | 0;
 20077       if ((i23 | 0) != 0) {
 20078        i27 = i23;
 20079        i28 = i22;
 20080        continue;
 20082       i22 = i27 + 16 | 0;
 20083       i23 = HEAP32[i22 >> 2] | 0;
 20084       if ((i23 | 0) == 0) {
 20085        break;
 20086       } else {
 20087        i27 = i23;
 20088        i28 = i22;
 20091      if (i28 >>> 0 < i4 >>> 0) {
 20092       _abort();
 20093      } else {
 20094       HEAP32[i28 >> 2] = 0;
 20095       i26 = i27;
 20096       break;
 20098     } else {
 20099      i22 = HEAP32[i1 + (i11 + 8) >> 2] | 0;
 20100      if (i22 >>> 0 < i4 >>> 0) {
 20101       _abort();
 20103      i23 = i22 + 12 | 0;
 20104      if ((HEAP32[i23 >> 2] | 0) != (i19 | 0)) {
 20105       _abort();
 20107      i24 = i21 + 8 | 0;
 20108      if ((HEAP32[i24 >> 2] | 0) == (i19 | 0)) {
 20109       HEAP32[i23 >> 2] = i21;
 20110       HEAP32[i24 >> 2] = i22;
 20111       i26 = i21;
 20112       break;
 20113      } else {
 20114       _abort();
 20117    } while (0);
 20118    if ((i15 | 0) == 0) {
 20119     i16 = i13;
 20120     i17 = i14;
 20121     break;
 20123    i21 = i1 + (i11 + 28) | 0;
 20124    i12 = 12368 + (HEAP32[i21 >> 2] << 2) | 0;
 20125    do {
 20126     if ((i19 | 0) == (HEAP32[i12 >> 2] | 0)) {
 20127      HEAP32[i12 >> 2] = i26;
 20128      if ((i26 | 0) != 0) {
 20129       break;
 20131      HEAP32[3017] = HEAP32[3017] & ~(1 << HEAP32[i21 >> 2]);
 20132      i16 = i13;
 20133      i17 = i14;
 20134      break L527;
 20135     } else {
 20136      if (i15 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
 20137       _abort();
 20139      i10 = i15 + 16 | 0;
 20140      if ((HEAP32[i10 >> 2] | 0) == (i19 | 0)) {
 20141       HEAP32[i10 >> 2] = i26;
 20142      } else {
 20143       HEAP32[i15 + 20 >> 2] = i26;
 20145      if ((i26 | 0) == 0) {
 20146       i16 = i13;
 20147       i17 = i14;
 20148       break L527;
 20151    } while (0);
 20152    if (i26 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
 20153     _abort();
 20155    HEAP32[i26 + 24 >> 2] = i15;
 20156    i19 = HEAP32[i1 + (i11 + 16) >> 2] | 0;
 20157    do {
 20158     if ((i19 | 0) != 0) {
 20159      if (i19 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
 20160       _abort();
 20161      } else {
 20162       HEAP32[i26 + 16 >> 2] = i19;
 20163       HEAP32[i19 + 24 >> 2] = i26;
 20164       break;
 20167    } while (0);
 20168    i19 = HEAP32[i1 + (i11 + 20) >> 2] | 0;
 20169    if ((i19 | 0) == 0) {
 20170     i16 = i13;
 20171     i17 = i14;
 20172     break;
 20174    if (i19 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
 20175     _abort();
 20176    } else {
 20177     HEAP32[i26 + 20 >> 2] = i19;
 20178     HEAP32[i19 + 24 >> 2] = i26;
 20179     i16 = i13;
 20180     i17 = i14;
 20181     break;
 20183   } else {
 20184    i16 = i3;
 20185    i17 = i7;
 20187  } while (0);
 20188  i3 = i16;
 20189  if (i3 >>> 0 >= i8 >>> 0) {
 20190   _abort();
 20192  i26 = i1 + (i7 - 4) | 0;
 20193  i4 = HEAP32[i26 >> 2] | 0;
 20194  if ((i4 & 1 | 0) == 0) {
 20195   _abort();
 20197  do {
 20198   if ((i4 & 2 | 0) == 0) {
 20199    if ((i9 | 0) == (HEAP32[3022] | 0)) {
 20200     i27 = (HEAP32[3019] | 0) + i17 | 0;
 20201     HEAP32[3019] = i27;
 20202     HEAP32[3022] = i16;
 20203     HEAP32[i16 + 4 >> 2] = i27 | 1;
 20204     if ((i16 | 0) != (HEAP32[3021] | 0)) {
 20205      return;
 20207     HEAP32[3021] = 0;
 20208     HEAP32[3018] = 0;
 20209     return;
 20211    if ((i9 | 0) == (HEAP32[3021] | 0)) {
 20212     i27 = (HEAP32[3018] | 0) + i17 | 0;
 20213     HEAP32[3018] = i27;
 20214     HEAP32[3021] = i16;
 20215     HEAP32[i16 + 4 >> 2] = i27 | 1;
 20216     HEAP32[i3 + i27 >> 2] = i27;
 20217     return;
 20219    i27 = (i4 & -8) + i17 | 0;
 20220    i28 = i4 >>> 3;
 20221    L630 : do {
 20222     if (i4 >>> 0 < 256) {
 20223      i20 = HEAP32[i1 + i7 >> 2] | 0;
 20224      i6 = HEAP32[i1 + (i7 | 4) >> 2] | 0;
 20225      i2 = 12104 + (i28 << 1 << 2) | 0;
 20226      do {
 20227       if ((i20 | 0) != (i2 | 0)) {
 20228        if (i20 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
 20229         _abort();
 20231        if ((HEAP32[i20 + 12 >> 2] | 0) == (i9 | 0)) {
 20232         break;
 20234        _abort();
 20236      } while (0);
 20237      if ((i6 | 0) == (i20 | 0)) {
 20238       HEAP32[3016] = HEAP32[3016] & ~(1 << i28);
 20239       break;
 20241      do {
 20242       if ((i6 | 0) == (i2 | 0)) {
 20243        i29 = i6 + 8 | 0;
 20244       } else {
 20245        if (i6 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
 20246         _abort();
 20248        i5 = i6 + 8 | 0;
 20249        if ((HEAP32[i5 >> 2] | 0) == (i9 | 0)) {
 20250         i29 = i5;
 20251         break;
 20253        _abort();
 20255      } while (0);
 20256      HEAP32[i20 + 12 >> 2] = i6;
 20257      HEAP32[i29 >> 2] = i20;
 20258     } else {
 20259      i2 = i8;
 20260      i5 = HEAP32[i1 + (i7 + 16) >> 2] | 0;
 20261      i19 = HEAP32[i1 + (i7 | 4) >> 2] | 0;
 20262      do {
 20263       if ((i19 | 0) == (i2 | 0)) {
 20264        i15 = i1 + (i7 + 12) | 0;
 20265        i21 = HEAP32[i15 >> 2] | 0;
 20266        if ((i21 | 0) == 0) {
 20267         i12 = i1 + (i7 + 8) | 0;
 20268         i10 = HEAP32[i12 >> 2] | 0;
 20269         if ((i10 | 0) == 0) {
 20270          i30 = 0;
 20271          break;
 20272         } else {
 20273          i31 = i10;
 20274          i32 = i12;
 20276        } else {
 20277         i31 = i21;
 20278         i32 = i15;
 20280        while (1) {
 20281         i15 = i31 + 20 | 0;
 20282         i21 = HEAP32[i15 >> 2] | 0;
 20283         if ((i21 | 0) != 0) {
 20284          i31 = i21;
 20285          i32 = i15;
 20286          continue;
 20288         i15 = i31 + 16 | 0;
 20289         i21 = HEAP32[i15 >> 2] | 0;
 20290         if ((i21 | 0) == 0) {
 20291          break;
 20292         } else {
 20293          i31 = i21;
 20294          i32 = i15;
 20297        if (i32 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
 20298         _abort();
 20299        } else {
 20300         HEAP32[i32 >> 2] = 0;
 20301         i30 = i31;
 20302         break;
 20304       } else {
 20305        i15 = HEAP32[i1 + i7 >> 2] | 0;
 20306        if (i15 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
 20307         _abort();
 20309        i21 = i15 + 12 | 0;
 20310        if ((HEAP32[i21 >> 2] | 0) != (i2 | 0)) {
 20311         _abort();
 20313        i12 = i19 + 8 | 0;
 20314        if ((HEAP32[i12 >> 2] | 0) == (i2 | 0)) {
 20315         HEAP32[i21 >> 2] = i19;
 20316         HEAP32[i12 >> 2] = i15;
 20317         i30 = i19;
 20318         break;
 20319        } else {
 20320         _abort();
 20323      } while (0);
 20324      if ((i5 | 0) == 0) {
 20325       break;
 20327      i19 = i1 + (i7 + 20) | 0;
 20328      i20 = 12368 + (HEAP32[i19 >> 2] << 2) | 0;
 20329      do {
 20330       if ((i2 | 0) == (HEAP32[i20 >> 2] | 0)) {
 20331        HEAP32[i20 >> 2] = i30;
 20332        if ((i30 | 0) != 0) {
 20333         break;
 20335        HEAP32[3017] = HEAP32[3017] & ~(1 << HEAP32[i19 >> 2]);
 20336        break L630;
 20337       } else {
 20338        if (i5 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
 20339         _abort();
 20341        i6 = i5 + 16 | 0;
 20342        if ((HEAP32[i6 >> 2] | 0) == (i2 | 0)) {
 20343         HEAP32[i6 >> 2] = i30;
 20344        } else {
 20345         HEAP32[i5 + 20 >> 2] = i30;
 20347        if ((i30 | 0) == 0) {
 20348         break L630;
 20351      } while (0);
 20352      if (i30 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
 20353       _abort();
 20355      HEAP32[i30 + 24 >> 2] = i5;
 20356      i2 = HEAP32[i1 + (i7 + 8) >> 2] | 0;
 20357      do {
 20358       if ((i2 | 0) != 0) {
 20359        if (i2 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
 20360         _abort();
 20361        } else {
 20362         HEAP32[i30 + 16 >> 2] = i2;
 20363         HEAP32[i2 + 24 >> 2] = i30;
 20364         break;
 20367      } while (0);
 20368      i2 = HEAP32[i1 + (i7 + 12) >> 2] | 0;
 20369      if ((i2 | 0) == 0) {
 20370       break;
 20372      if (i2 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
 20373       _abort();
 20374      } else {
 20375       HEAP32[i30 + 20 >> 2] = i2;
 20376       HEAP32[i2 + 24 >> 2] = i30;
 20377       break;
 20380    } while (0);
 20381    HEAP32[i16 + 4 >> 2] = i27 | 1;
 20382    HEAP32[i3 + i27 >> 2] = i27;
 20383    if ((i16 | 0) != (HEAP32[3021] | 0)) {
 20384     i33 = i27;
 20385     break;
 20387    HEAP32[3018] = i27;
 20388    return;
 20389   } else {
 20390    HEAP32[i26 >> 2] = i4 & -2;
 20391    HEAP32[i16 + 4 >> 2] = i17 | 1;
 20392    HEAP32[i3 + i17 >> 2] = i17;
 20393    i33 = i17;
 20395  } while (0);
 20396  i17 = i33 >>> 3;
 20397  if (i33 >>> 0 < 256) {
 20398   i3 = i17 << 1;
 20399   i4 = 12104 + (i3 << 2) | 0;
 20400   i26 = HEAP32[3016] | 0;
 20401   i30 = 1 << i17;
 20402   do {
 20403    if ((i26 & i30 | 0) == 0) {
 20404     HEAP32[3016] = i26 | i30;
 20405     i34 = i4;
 20406     i35 = 12104 + (i3 + 2 << 2) | 0;
 20407    } else {
 20408     i17 = 12104 + (i3 + 2 << 2) | 0;
 20409     i7 = HEAP32[i17 >> 2] | 0;
 20410     if (i7 >>> 0 >= (HEAP32[3020] | 0) >>> 0) {
 20411      i34 = i7;
 20412      i35 = i17;
 20413      break;
 20415     _abort();
 20417   } while (0);
 20418   HEAP32[i35 >> 2] = i16;
 20419   HEAP32[i34 + 12 >> 2] = i16;
 20420   HEAP32[i16 + 8 >> 2] = i34;
 20421   HEAP32[i16 + 12 >> 2] = i4;
 20422   return;
 20424  i4 = i16;
 20425  i34 = i33 >>> 8;
 20426  do {
 20427   if ((i34 | 0) == 0) {
 20428    i36 = 0;
 20429   } else {
 20430    if (i33 >>> 0 > 16777215) {
 20431     i36 = 31;
 20432     break;
 20434    i35 = (i34 + 1048320 | 0) >>> 16 & 8;
 20435    i3 = i34 << i35;
 20436    i30 = (i3 + 520192 | 0) >>> 16 & 4;
 20437    i26 = i3 << i30;
 20438    i3 = (i26 + 245760 | 0) >>> 16 & 2;
 20439    i17 = 14 - (i30 | i35 | i3) + (i26 << i3 >>> 15) | 0;
 20440    i36 = i33 >>> ((i17 + 7 | 0) >>> 0) & 1 | i17 << 1;
 20442  } while (0);
 20443  i34 = 12368 + (i36 << 2) | 0;
 20444  HEAP32[i16 + 28 >> 2] = i36;
 20445  HEAP32[i16 + 20 >> 2] = 0;
 20446  HEAP32[i16 + 16 >> 2] = 0;
 20447  i17 = HEAP32[3017] | 0;
 20448  i3 = 1 << i36;
 20449  do {
 20450   if ((i17 & i3 | 0) == 0) {
 20451    HEAP32[3017] = i17 | i3;
 20452    HEAP32[i34 >> 2] = i4;
 20453    HEAP32[i16 + 24 >> 2] = i34;
 20454    HEAP32[i16 + 12 >> 2] = i16;
 20455    HEAP32[i16 + 8 >> 2] = i16;
 20456   } else {
 20457    if ((i36 | 0) == 31) {
 20458     i37 = 0;
 20459    } else {
 20460     i37 = 25 - (i36 >>> 1) | 0;
 20462    i26 = i33 << i37;
 20463    i35 = HEAP32[i34 >> 2] | 0;
 20464    while (1) {
 20465     if ((HEAP32[i35 + 4 >> 2] & -8 | 0) == (i33 | 0)) {
 20466      break;
 20468     i38 = i35 + 16 + (i26 >>> 31 << 2) | 0;
 20469     i30 = HEAP32[i38 >> 2] | 0;
 20470     if ((i30 | 0) == 0) {
 20471      i39 = 508;
 20472      break;
 20473     } else {
 20474      i26 = i26 << 1;
 20475      i35 = i30;
 20478    if ((i39 | 0) == 508) {
 20479     if (i38 >>> 0 < (HEAP32[3020] | 0) >>> 0) {
 20480      _abort();
 20481     } else {
 20482      HEAP32[i38 >> 2] = i4;
 20483      HEAP32[i16 + 24 >> 2] = i35;
 20484      HEAP32[i16 + 12 >> 2] = i16;
 20485      HEAP32[i16 + 8 >> 2] = i16;
 20486      break;
 20489    i26 = i35 + 8 | 0;
 20490    i27 = HEAP32[i26 >> 2] | 0;
 20491    i30 = HEAP32[3020] | 0;
 20492    if (i35 >>> 0 < i30 >>> 0) {
 20493     _abort();
 20495    if (i27 >>> 0 < i30 >>> 0) {
 20496     _abort();
 20497    } else {
 20498     HEAP32[i27 + 12 >> 2] = i4;
 20499     HEAP32[i26 >> 2] = i4;
 20500     HEAP32[i16 + 8 >> 2] = i27;
 20501     HEAP32[i16 + 12 >> 2] = i35;
 20502     HEAP32[i16 + 24 >> 2] = 0;
 20503     break;
 20506  } while (0);
 20507  i16 = (HEAP32[3024] | 0) - 1 | 0;
 20508  HEAP32[3024] = i16;
 20509  if ((i16 | 0) == 0) {
 20510   i40 = 12520;
 20511  } else {
 20512   return;
 20514  while (1) {
 20515   i16 = HEAP32[i40 >> 2] | 0;
 20516   if ((i16 | 0) == 0) {
 20517    break;
 20518   } else {
 20519    i40 = i16 + 8 | 0;
 20522  HEAP32[3024] = -1;
 20523  return;
 20525 function __ZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackE(i1, i2, i3, i4, i5, i6) {
 20526  i1 = i1 | 0;
 20527  i2 = i2 | 0;
 20528  i3 = i3 | 0;
 20529  i4 = i4 | 0;
 20530  i5 = i5 | 0;
 20531  i6 = i6 | 0;
 20532  var i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, d32 = 0.0, i33 = 0, d34 = 0.0, i35 = 0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, d48 = 0.0, d49 = 0.0, d50 = 0.0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0, d55 = 0.0;
 20533  i7 = STACKTOP;
 20534  STACKTOP = STACKTOP + 1264 | 0;
 20535  i8 = i7 | 0;
 20536  i9 = i7 + 64 | 0;
 20537  i10 = i7 + 96 | 0;
 20538  i11 = i7 + 152 | 0;
 20539  i12 = i7 + 328 | 0;
 20540  i13 = i7 + 688 | 0;
 20541  i14 = i7 + 704 | 0;
 20542  i15 = i7 + 736 | 0;
 20543  i16 = i7 + 752 | 0;
 20544  i17 = i7 + 768 | 0;
 20545  i18 = i7 + 888 | 0;
 20546  i19 = i7 + 904 | 0;
 20547  i20 = i7 + 920 | 0;
 20548  i21 = i7 + 1040 | 0;
 20549  i22 = i7 + 1056 | 0;
 20550  i23 = i7 + 1072 | 0;
 20551  i24 = i7 + 1104 | 0;
 20552  i25 = i7 + 1120 | 0;
 20553  i26 = i7 + 1184 | 0;
 20554  i27 = i7 + 1200 | 0;
 20555  __ZN21btConvexInternalShapeC2Ev(i10 | 0);
 20556  HEAP32[i10 >> 2] = 4728;
 20557  HEAP32[i10 + 4 >> 2] = 8;
 20558  HEAPF32[i10 + 28 >> 2] = 0.0;
 20559  HEAPF32[i10 + 44 >> 2] = 0.0;
 20560  i28 = i10 | 0;
 20561  i10 = HEAP32[i4 + 4 >> 2] | 0;
 20562  if ((i10 | 0) < 20) {
 20563   HEAP32[i11 >> 2] = 2280;
 20564   i29 = i11 + 164 | 0;
 20565   HEAP32[i11 + 168 >> 2] = 0;
 20566   HEAPF32[i11 + 172 >> 2] = 0.0;
 20567   i30 = i6 + 4 | 0;
 20568   HEAPF32[i29 >> 2] = +HEAPF32[i30 >> 2];
 20569   HEAPF32[i12 + 308 >> 2] = 9999999747378752.0e-20;
 20570   HEAP16[i12 + 332 >> 1] = 0;
 20571   __ZN22btSubsimplexConvexCastC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolver(i13, i28, i4, i12);
 20572   do {
 20573    if (__ZN22btSubsimplexConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i13, i1, i2, i5, i5, i11) | 0) {
 20574     i12 = i11 + 132 | 0;
 20575     i31 = i12 | 0;
 20576     d32 = +HEAPF32[i31 >> 2];
 20577     i33 = i11 + 136 | 0;
 20578     d34 = +HEAPF32[i33 >> 2];
 20579     i35 = i11 + 140 | 0;
 20580     d36 = +HEAPF32[i35 >> 2];
 20581     if (d32 * d32 + d34 * d34 + d36 * d36 <= 9999999747378752.0e-20) {
 20582      break;
 20584     d37 = +HEAPF32[i29 >> 2];
 20585     if (d37 >= +HEAPF32[i30 >> 2]) {
 20586      break;
 20588     d38 = d32 * +HEAPF32[i1 >> 2] + d34 * +HEAPF32[i1 + 4 >> 2] + d36 * +HEAPF32[i1 + 8 >> 2];
 20589     d39 = d32 * +HEAPF32[i1 + 16 >> 2] + d34 * +HEAPF32[i1 + 20 >> 2] + d36 * +HEAPF32[i1 + 24 >> 2];
 20590     d40 = d32 * +HEAPF32[i1 + 32 >> 2] + d34 * +HEAPF32[i1 + 36 >> 2] + d36 * +HEAPF32[i1 + 40 >> 2];
 20591     HEAPF32[i11 + 144 >> 2] = 0.0;
 20592     d36 = 1.0 / +Math_sqrt(+(d38 * d38 + d39 * d39 + d40 * d40));
 20593     HEAPF32[i31 >> 2] = d38 * d36;
 20594     HEAPF32[i33 >> 2] = d39 * d36;
 20595     HEAPF32[i35 >> 2] = d40 * d36;
 20596     HEAP32[i14 >> 2] = i3;
 20597     HEAP32[i14 + 4 >> 2] = 0;
 20598     i35 = i14 + 8 | 0;
 20599     i33 = i12;
 20600     HEAP32[i35 >> 2] = HEAP32[i33 >> 2];
 20601     HEAP32[i35 + 4 >> 2] = HEAP32[i33 + 4 >> 2];
 20602     HEAP32[i35 + 8 >> 2] = HEAP32[i33 + 8 >> 2];
 20603     HEAP32[i35 + 12 >> 2] = HEAP32[i33 + 12 >> 2];
 20604     HEAPF32[i14 + 24 >> 2] = d37;
 20605     i33 = HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0;
 20606     +FUNCTION_TABLE_fiii[i33 & 15](i6, i14, 1);
 20608   } while (0);
 20609   __ZN12btConvexCastD2Ev(i13 | 0);
 20610   __ZN13btConvexShapeD2Ev(i28);
 20611   STACKTOP = i7;
 20612   return;
 20614  if ((i10 - 21 | 0) >>> 0 >= 9) {
 20615   if ((i10 | 0) != 31) {
 20616    __ZN13btConvexShapeD2Ev(i28);
 20617    STACKTOP = i7;
 20618    return;
 20620   i13 = i4;
 20621   i14 = HEAP32[i4 + 64 >> 2] | 0;
 20622   HEAP32[i23 >> 2] = 1752;
 20623   i11 = i23 + 4 | 0;
 20624   HEAP32[i11 >> 2] = i3;
 20625   i30 = i23 + 8 | 0;
 20626   HEAP32[i30 >> 2] = i13;
 20627   i29 = i23 + 12 | 0;
 20628   HEAP32[i29 >> 2] = i5;
 20629   i33 = i23 + 16 | 0;
 20630   HEAP32[i33 >> 2] = i1;
 20631   i35 = i23 + 20 | 0;
 20632   HEAP32[i35 >> 2] = i2;
 20633   i12 = i23 + 24 | 0;
 20634   HEAP32[i12 >> 2] = i6;
 20635   if ((i14 | 0) != 0) {
 20636    __ZNK11btTransform12inverseTimesERKS_(i25, i5, i1);
 20637    i31 = i24;
 20638    i41 = i25 + 48 | 0;
 20639    HEAP32[i31 >> 2] = HEAP32[i41 >> 2];
 20640    HEAP32[i31 + 4 >> 2] = HEAP32[i41 + 4 >> 2];
 20641    HEAP32[i31 + 8 >> 2] = HEAP32[i41 + 8 >> 2];
 20642    HEAP32[i31 + 12 >> 2] = HEAP32[i41 + 12 >> 2];
 20643    __ZNK11btTransform12inverseTimesERKS_(i27, i5, i2);
 20644    i41 = i26;
 20645    i31 = i27 + 48 | 0;
 20646    HEAP32[i41 >> 2] = HEAP32[i31 >> 2];
 20647    HEAP32[i41 + 4 >> 2] = HEAP32[i31 + 4 >> 2];
 20648    HEAP32[i41 + 8 >> 2] = HEAP32[i31 + 8 >> 2];
 20649    HEAP32[i41 + 12 >> 2] = HEAP32[i31 + 12 >> 2];
 20650    __ZN6btDbvt7rayTestEPK10btDbvtNodeRK9btVector3S5_RNS_8ICollideE(HEAP32[i14 >> 2] | 0, i24, i26, i23 | 0);
 20651    __ZN13btConvexShapeD2Ev(i28);
 20652    STACKTOP = i7;
 20653    return;
 20655   i23 = HEAP32[i4 + 16 >> 2] | 0;
 20656   if ((i23 | 0) <= 0) {
 20657    __ZN13btConvexShapeD2Ev(i28);
 20658    STACKTOP = i7;
 20659    return;
 20661   i26 = i9 | 0;
 20662   i24 = i9 + 4 | 0;
 20663   i14 = i9 + 8 | 0;
 20664   i31 = i9 + 12 | 0;
 20665   i41 = i9 + 14 | 0;
 20666   i27 = i9 + 16 | 0;
 20667   i25 = i9 + 20 | 0;
 20668   i42 = i9 + 24 | 0;
 20669   i43 = i9 | 0;
 20670   i9 = 0;
 20671   i44 = i13;
 20672   i13 = i5;
 20673   while (1) {
 20674    i45 = HEAP32[i44 + 24 >> 2] | 0;
 20675    i46 = HEAP32[i45 + (i9 * 80 | 0) + 64 >> 2] | 0;
 20676    __ZNK11btTransformmlERKS_(i8, i13, i45 + (i9 * 80 | 0) | 0);
 20677    i45 = (HEAP32[i11 >> 2] | 0) + 192 | 0;
 20678    i47 = HEAP32[i45 >> 2] | 0;
 20679    HEAP32[i45 >> 2] = i46;
 20680    i45 = HEAP32[i12 >> 2] | 0;
 20681    HEAPF32[i24 >> 2] = 1.0;
 20682    HEAP32[i14 >> 2] = 0;
 20683    HEAP16[i31 >> 1] = 1;
 20684    HEAP16[i41 >> 1] = -1;
 20685    HEAP32[i27 >> 2] = 0;
 20686    HEAP32[i26 >> 2] = 1864;
 20687    HEAP32[i25 >> 2] = i45;
 20688    HEAP32[i42 >> 2] = i9;
 20689    HEAPF32[i24 >> 2] = +HEAPF32[i45 + 4 >> 2];
 20690    __ZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackE(HEAP32[i33 >> 2] | 0, HEAP32[i35 >> 2] | 0, HEAP32[i11 >> 2] | 0, i46, i8, i43);
 20691    HEAP32[(HEAP32[i11 >> 2] | 0) + 192 >> 2] = i47;
 20692    i47 = i9 + 1 | 0;
 20693    if ((i47 | 0) >= (i23 | 0)) {
 20694     break;
 20696    i9 = i47;
 20697    i44 = HEAP32[i30 >> 2] | 0;
 20698    i13 = HEAP32[i29 >> 2] | 0;
 20700   __ZN13btConvexShapeD2Ev(i28);
 20701   STACKTOP = i7;
 20702   return;
 20704  if ((i10 | 0) == 21) {
 20705   d37 = +HEAPF32[i5 >> 2];
 20706   d36 = +HEAPF32[i5 + 16 >> 2];
 20707   d40 = +HEAPF32[i5 + 32 >> 2];
 20708   d39 = +HEAPF32[i5 + 4 >> 2];
 20709   d38 = +HEAPF32[i5 + 20 >> 2];
 20710   d34 = +HEAPF32[i5 + 36 >> 2];
 20711   d32 = +HEAPF32[i5 + 8 >> 2];
 20712   d48 = +HEAPF32[i5 + 24 >> 2];
 20713   d49 = +HEAPF32[i5 + 40 >> 2];
 20714   d50 = -0.0 - +HEAPF32[i5 + 48 >> 2];
 20715   d51 = -0.0 - +HEAPF32[i5 + 52 >> 2];
 20716   d52 = -0.0 - +HEAPF32[i5 + 56 >> 2];
 20717   d53 = d37 * d50 + d36 * d51 + d40 * d52;
 20718   d54 = d39 * d50 + d38 * d51 + d34 * d52;
 20719   d55 = d32 * d50 + d48 * d51 + d49 * d52;
 20720   d52 = +HEAPF32[i1 + 48 >> 2];
 20721   d51 = +HEAPF32[i1 + 52 >> 2];
 20722   d50 = +HEAPF32[i1 + 56 >> 2];
 20723   HEAPF32[i15 >> 2] = d53 + (d37 * d52 + d36 * d51 + d40 * d50);
 20724   HEAPF32[i15 + 4 >> 2] = d54 + (d39 * d52 + d38 * d51 + d34 * d50);
 20725   HEAPF32[i15 + 8 >> 2] = d55 + (d32 * d52 + d48 * d51 + d49 * d50);
 20726   HEAPF32[i15 + 12 >> 2] = 0.0;
 20727   d50 = +HEAPF32[i2 + 48 >> 2];
 20728   d51 = +HEAPF32[i2 + 52 >> 2];
 20729   d52 = +HEAPF32[i2 + 56 >> 2];
 20730   HEAPF32[i16 >> 2] = d53 + (d37 * d50 + d36 * d51 + d40 * d52);
 20731   HEAPF32[i16 + 4 >> 2] = d54 + (d39 * d50 + d38 * d51 + d34 * d52);
 20732   HEAPF32[i16 + 8 >> 2] = d55 + (d32 * d50 + d48 * d51 + d49 * d52);
 20733   HEAPF32[i16 + 12 >> 2] = 0.0;
 20734   __ZN25btTriangleRaycastCallbackC2ERK9btVector3S2_j(i17 | 0, i15, i16, HEAP32[i6 + 16 >> 2] | 0);
 20735   HEAP32[i17 >> 2] = 1832;
 20736   HEAP32[i17 + 44 >> 2] = i6;
 20737   HEAP32[i17 + 48 >> 2] = i3;
 20738   HEAP32[i17 + 52 >> 2] = i4;
 20739   i10 = i17 + 56 | 0;
 20740   i29 = i5;
 20741   HEAP32[i10 >> 2] = HEAP32[i29 >> 2];
 20742   HEAP32[i10 + 4 >> 2] = HEAP32[i29 + 4 >> 2];
 20743   HEAP32[i10 + 8 >> 2] = HEAP32[i29 + 8 >> 2];
 20744   HEAP32[i10 + 12 >> 2] = HEAP32[i29 + 12 >> 2];
 20745   i29 = i17 + 72 | 0;
 20746   i10 = i5 + 16 | 0;
 20747   HEAP32[i29 >> 2] = HEAP32[i10 >> 2];
 20748   HEAP32[i29 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
 20749   HEAP32[i29 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
 20750   HEAP32[i29 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
 20751   i10 = i17 + 88 | 0;
 20752   i29 = i5 + 32 | 0;
 20753   HEAP32[i10 >> 2] = HEAP32[i29 >> 2];
 20754   HEAP32[i10 + 4 >> 2] = HEAP32[i29 + 4 >> 2];
 20755   HEAP32[i10 + 8 >> 2] = HEAP32[i29 + 8 >> 2];
 20756   HEAP32[i10 + 12 >> 2] = HEAP32[i29 + 12 >> 2];
 20757   i29 = i17 + 104 | 0;
 20758   i10 = i5 + 48 | 0;
 20759   HEAP32[i29 >> 2] = HEAP32[i10 >> 2];
 20760   HEAP32[i29 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
 20761   HEAP32[i29 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
 20762   HEAP32[i29 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
 20763   HEAPF32[i17 + 40 >> 2] = +HEAPF32[i6 + 4 >> 2];
 20764   i10 = i17 | 0;
 20765   __ZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_(i4, i10, i15, i16);
 20766   __ZN18btTriangleCallbackD2Ev(i10);
 20767   __ZN13btConvexShapeD2Ev(i28);
 20768   STACKTOP = i7;
 20769   return;
 20771  i10 = i4;
 20772  d52 = +HEAPF32[i5 >> 2];
 20773  d49 = +HEAPF32[i5 + 16 >> 2];
 20774  d51 = +HEAPF32[i5 + 32 >> 2];
 20775  d48 = +HEAPF32[i5 + 4 >> 2];
 20776  d50 = +HEAPF32[i5 + 20 >> 2];
 20777  d32 = +HEAPF32[i5 + 36 >> 2];
 20778  d55 = +HEAPF32[i5 + 8 >> 2];
 20779  d34 = +HEAPF32[i5 + 24 >> 2];
 20780  d38 = +HEAPF32[i5 + 40 >> 2];
 20781  d39 = -0.0 - +HEAPF32[i5 + 48 >> 2];
 20782  d54 = -0.0 - +HEAPF32[i5 + 52 >> 2];
 20783  d40 = -0.0 - +HEAPF32[i5 + 56 >> 2];
 20784  d36 = d52 * d39 + d49 * d54 + d51 * d40;
 20785  d37 = d48 * d39 + d50 * d54 + d32 * d40;
 20786  d53 = d55 * d39 + d34 * d54 + d38 * d40;
 20787  d40 = +HEAPF32[i1 + 48 >> 2];
 20788  d54 = +HEAPF32[i1 + 52 >> 2];
 20789  d39 = +HEAPF32[i1 + 56 >> 2];
 20790  HEAPF32[i18 >> 2] = d36 + (d52 * d40 + d49 * d54 + d51 * d39);
 20791  HEAPF32[i18 + 4 >> 2] = d37 + (d48 * d40 + d50 * d54 + d32 * d39);
 20792  HEAPF32[i18 + 8 >> 2] = d53 + (d55 * d40 + d34 * d54 + d38 * d39);
 20793  HEAPF32[i18 + 12 >> 2] = 0.0;
 20794  d39 = +HEAPF32[i2 + 48 >> 2];
 20795  d54 = +HEAPF32[i2 + 52 >> 2];
 20796  d40 = +HEAPF32[i2 + 56 >> 2];
 20797  i2 = i19 | 0;
 20798  HEAPF32[i2 >> 2] = d36 + (d52 * d39 + d49 * d54 + d51 * d40);
 20799  i1 = i19 + 4 | 0;
 20800  HEAPF32[i1 >> 2] = d37 + (d48 * d39 + d50 * d54 + d32 * d40);
 20801  i16 = i19 + 8 | 0;
 20802  HEAPF32[i16 >> 2] = d53 + (d55 * d39 + d34 * d54 + d38 * d40);
 20803  i15 = i19 + 12 | 0;
 20804  HEAPF32[i15 >> 2] = 0.0;
 20805  __ZN25btTriangleRaycastCallbackC2ERK9btVector3S2_j(i20 | 0, i18, i19, HEAP32[i6 + 16 >> 2] | 0);
 20806  HEAP32[i20 >> 2] = 1800;
 20807  HEAP32[i20 + 44 >> 2] = i6;
 20808  HEAP32[i20 + 48 >> 2] = i3;
 20809  HEAP32[i20 + 52 >> 2] = i10;
 20810  i3 = i20 + 56 | 0;
 20811  i19 = i5;
 20812  HEAP32[i3 >> 2] = HEAP32[i19 >> 2];
 20813  HEAP32[i3 + 4 >> 2] = HEAP32[i19 + 4 >> 2];
 20814  HEAP32[i3 + 8 >> 2] = HEAP32[i19 + 8 >> 2];
 20815  HEAP32[i3 + 12 >> 2] = HEAP32[i19 + 12 >> 2];
 20816  i19 = i20 + 72 | 0;
 20817  i3 = i5 + 16 | 0;
 20818  HEAP32[i19 >> 2] = HEAP32[i3 >> 2];
 20819  HEAP32[i19 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
 20820  HEAP32[i19 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
 20821  HEAP32[i19 + 12 >> 2] = HEAP32[i3 + 12 >> 2];
 20822  i3 = i20 + 88 | 0;
 20823  i19 = i5 + 32 | 0;
 20824  HEAP32[i3 >> 2] = HEAP32[i19 >> 2];
 20825  HEAP32[i3 + 4 >> 2] = HEAP32[i19 + 4 >> 2];
 20826  HEAP32[i3 + 8 >> 2] = HEAP32[i19 + 8 >> 2];
 20827  HEAP32[i3 + 12 >> 2] = HEAP32[i19 + 12 >> 2];
 20828  i19 = i20 + 104 | 0;
 20829  i3 = i5 + 48 | 0;
 20830  HEAP32[i19 >> 2] = HEAP32[i3 >> 2];
 20831  HEAP32[i19 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
 20832  HEAP32[i19 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
 20833  HEAP32[i19 + 12 >> 2] = HEAP32[i3 + 12 >> 2];
 20834  HEAPF32[i20 + 40 >> 2] = +HEAPF32[i6 + 4 >> 2];
 20835  i6 = i21;
 20836  i3 = i18;
 20837  HEAP32[i6 >> 2] = HEAP32[i3 >> 2];
 20838  HEAP32[i6 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
 20839  HEAP32[i6 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
 20840  HEAP32[i6 + 12 >> 2] = HEAP32[i3 + 12 >> 2];
 20841  i6 = i21 | 0;
 20842  d40 = +HEAPF32[i2 >> 2];
 20843  if (d40 < +HEAPF32[i6 >> 2]) {
 20844   HEAPF32[i6 >> 2] = d40;
 20846  i6 = i21 + 4 | 0;
 20847  d38 = +HEAPF32[i1 >> 2];
 20848  if (d38 < +HEAPF32[i6 >> 2]) {
 20849   HEAPF32[i6 >> 2] = d38;
 20851  i6 = i21 + 8 | 0;
 20852  d54 = +HEAPF32[i16 >> 2];
 20853  if (d54 < +HEAPF32[i6 >> 2]) {
 20854   HEAPF32[i6 >> 2] = d54;
 20856  i6 = i21 + 12 | 0;
 20857  d34 = +HEAPF32[i15 >> 2];
 20858  if (d34 < +HEAPF32[i6 >> 2]) {
 20859   HEAPF32[i6 >> 2] = d34;
 20861  i6 = i22;
 20862  HEAP32[i6 >> 2] = HEAP32[i3 >> 2];
 20863  HEAP32[i6 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
 20864  HEAP32[i6 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
 20865  HEAP32[i6 + 12 >> 2] = HEAP32[i3 + 12 >> 2];
 20866  i3 = i22 | 0;
 20867  if (+HEAPF32[i3 >> 2] < d40) {
 20868   HEAPF32[i3 >> 2] = d40;
 20870  i3 = i22 + 4 | 0;
 20871  if (+HEAPF32[i3 >> 2] < d38) {
 20872   HEAPF32[i3 >> 2] = d38;
 20874  i3 = i22 + 8 | 0;
 20875  if (+HEAPF32[i3 >> 2] < d54) {
 20876   HEAPF32[i3 >> 2] = d54;
 20878  i3 = i22 + 12 | 0;
 20879  if (+HEAPF32[i3 >> 2] < d34) {
 20880   HEAPF32[i3 >> 2] = d34;
 20882  i3 = i20 | 0;
 20883  FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i4 >> 2] | 0) + 60 >> 2] & 127](i10, i3, i21, i22);
 20884  __ZN18btTriangleCallbackD2Ev(i3);
 20885  __ZN13btConvexShapeD2Ev(i28);
 20886  STACKTOP = i7;
 20887  return;
 20889 function __ZN28btCompoundCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
 20890  i1 = i1 | 0;
 20891  i2 = i2 | 0;
 20892  i3 = i3 | 0;
 20893  i4 = i4 | 0;
 20894  i5 = i5 | 0;
 20895  var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, d42 = 0.0, d43 = 0.0, d44 = 0.0, d45 = 0.0, d46 = 0.0, d47 = 0.0, d48 = 0.0, d49 = 0.0, d50 = 0.0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0, d55 = 0.0, d56 = 0.0, d57 = 0.0, d58 = 0.0, d59 = 0.0, d60 = 0.0, d61 = 0.0, d62 = 0.0, d63 = 0.0, d64 = 0.0, d65 = 0.0, i66 = 0, i67 = 0, i68 = 0, i69 = 0, i70 = 0, i71 = 0, i72 = 0, i73 = 0, i74 = 0, i75 = 0, i76 = 0, i77 = 0, i78 = 0, i79 = 0, i80 = 0, i81 = 0;
 20896  i6 = STACKTOP;
 20897  STACKTOP = STACKTOP + 312 | 0;
 20898  i7 = i6 | 0;
 20899  i8 = i6 + 32 | 0;
 20900  i9 = i6 + 56 | 0;
 20901  i10 = i6 + 72 | 0;
 20902  i11 = i6 + 88 | 0;
 20903  i12 = i6 + 152 | 0;
 20904  i13 = i6 + 184 | 0;
 20905  i14 = i6 + 248 | 0;
 20906  i15 = i6 + 264 | 0;
 20907  i16 = i6 + 280 | 0;
 20908  i17 = i6 + 296 | 0;
 20909  i18 = (HEAP8[i1 + 28 | 0] | 0) != 0;
 20910  i19 = i18 ? i3 : i2;
 20911  i20 = i18 ? i2 : i3;
 20912  i18 = HEAP32[i19 + 192 >> 2] | 0;
 20913  i21 = i1 + 12 | 0;
 20914  if ((HEAP32[i18 + 68 >> 2] | 0) != (HEAP32[i1 + 40 >> 2] | 0)) {
 20915   i22 = HEAP32[i21 >> 2] | 0;
 20916   if ((i22 | 0) > 0) {
 20917    i23 = i1 + 20 | 0;
 20918    i24 = i1 + 4 | 0;
 20919    i25 = 0;
 20920    do {
 20921     i26 = HEAP32[(HEAP32[i23 >> 2] | 0) + (i25 << 2) >> 2] | 0;
 20922     if ((i26 | 0) != 0) {
 20923      FUNCTION_TABLE_vi[HEAP32[HEAP32[i26 >> 2] >> 2] & 511](i26);
 20924      i26 = HEAP32[i24 >> 2] | 0;
 20925      FUNCTION_TABLE_vii[HEAP32[(HEAP32[i26 >> 2] | 0) + 60 >> 2] & 127](i26, HEAP32[(HEAP32[i23 >> 2] | 0) + (i25 << 2) >> 2] | 0);
 20927     i25 = i25 + 1 | 0;
 20928    } while ((i25 | 0) < (i22 | 0));
 20930   __ZN28btCompoundCollisionAlgorithm26preallocateChildAlgorithmsEP17btCollisionObjectS1_(i1, i2, i3);
 20932  i3 = HEAP32[i18 + 64 >> 2] | 0;
 20933  i2 = i1 + 4 | 0;
 20934  i22 = HEAP32[i2 >> 2] | 0;
 20935  i25 = i1 + 20 | 0;
 20936  i23 = HEAP32[i25 >> 2] | 0;
 20937  i24 = HEAP32[i1 + 32 >> 2] | 0;
 20938  HEAP32[i7 >> 2] = 3568;
 20939  HEAP32[i7 + 4 >> 2] = i19;
 20940  HEAP32[i7 + 8 >> 2] = i20;
 20941  HEAP32[i7 + 12 >> 2] = i22;
 20942  HEAP32[i7 + 16 >> 2] = i4;
 20943  HEAP32[i7 + 20 >> 2] = i5;
 20944  HEAP32[i7 + 24 >> 2] = i23;
 20945  HEAP32[i7 + 28 >> 2] = i24;
 20946  i24 = i8 + 16 | 0;
 20947  HEAP8[i24] = 1;
 20948  i4 = i8 + 12 | 0;
 20949  HEAP32[i4 >> 2] = 0;
 20950  i22 = i8 + 4 | 0;
 20951  HEAP32[i22 >> 2] = 0;
 20952  i1 = i8 + 8 | 0;
 20953  HEAP32[i1 >> 2] = 0;
 20954  i26 = HEAP32[i21 >> 2] | 0;
 20955  do {
 20956   if ((i26 | 0) > 0) {
 20957    i27 = i5 + 4 | 0;
 20958    i28 = i5 + 136 | 0;
 20959    i29 = i5 + 8 | 0;
 20960    i30 = i5 + 72 | 0;
 20961    i31 = 0;
 20962    i32 = i26;
 20963    i33 = i23;
 20964    while (1) {
 20965     i34 = HEAP32[i33 + (i31 << 2) >> 2] | 0;
 20966     if ((i34 | 0) == 0) {
 20967      i35 = i32;
 20968     } else {
 20969      FUNCTION_TABLE_vii[HEAP32[(HEAP32[i34 >> 2] | 0) + 16 >> 2] & 127](i34, i8);
 20970      i34 = HEAP32[i22 >> 2] | 0;
 20971      if ((i34 | 0) > 0) {
 20972       i36 = 0;
 20973       i37 = i34;
 20974       while (1) {
 20975        i38 = HEAP32[(HEAP32[i4 >> 2] | 0) + (i36 << 2) >> 2] | 0;
 20976        if ((HEAP32[i38 + 1116 >> 2] | 0) == 0) {
 20977         i39 = i37;
 20978        } else {
 20979         HEAP32[i27 >> 2] = i38;
 20980         if ((HEAP32[i38 + 1108 >> 2] | 0) == (HEAP32[i28 >> 2] | 0)) {
 20981          __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i38, i29, i30);
 20982         } else {
 20983          __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i38, i30, i29);
 20985         HEAP32[i27 >> 2] = 0;
 20986         i39 = HEAP32[i22 >> 2] | 0;
 20988        i38 = i36 + 1 | 0;
 20989        if ((i38 | 0) < (i39 | 0)) {
 20990         i36 = i38;
 20991         i37 = i39;
 20992        } else {
 20993         i40 = i39;
 20994         break;
 20997      } else {
 20998       i40 = i34;
 21000      if ((i40 | 0) < 0) {
 21001       if ((HEAP32[i1 >> 2] | 0) < 0) {
 21002        i37 = HEAP32[i4 >> 2] | 0;
 21003        if ((i40 | 0) > 0) {
 21004         i36 = 0;
 21005         do {
 21006          if ((i36 | 0) != 0) {
 21007           HEAP32[i36 << 2 >> 2] = HEAP32[i37 + (i36 << 2) >> 2];
 21009          i36 = i36 + 1 | 0;
 21010         } while ((i36 | 0) < (i40 | 0));
 21012        if ((i37 | 0) != 0) {
 21013         if ((HEAP8[i24] | 0) != 0) {
 21014          __Z21btAlignedFreeInternalPv(i37);
 21016         HEAP32[i4 >> 2] = 0;
 21018        HEAP8[i24] = 1;
 21019        HEAP32[i4 >> 2] = 0;
 21020        HEAP32[i1 >> 2] = 0;
 21021        i41 = i40;
 21022       } else {
 21023        i41 = i40;
 21025       do {
 21026        i36 = (HEAP32[i4 >> 2] | 0) + (i41 << 2) | 0;
 21027        if ((i36 | 0) != 0) {
 21028         HEAP32[i36 >> 2] = 0;
 21030        i41 = i41 + 1 | 0;
 21031       } while ((i41 | 0) < 0);
 21033      HEAP32[i22 >> 2] = 0;
 21034      i35 = HEAP32[i21 >> 2] | 0;
 21036     i37 = i31 + 1 | 0;
 21037     if ((i37 | 0) >= (i35 | 0)) {
 21038      break;
 21040     i31 = i37;
 21041     i32 = i35;
 21042     i33 = HEAP32[i25 >> 2] | 0;
 21044    i33 = HEAP32[i4 >> 2] | 0;
 21045    if ((i33 | 0) == 0) {
 21046     break;
 21048    if ((HEAP8[i24] | 0) != 0) {
 21049     __Z21btAlignedFreeInternalPv(i33);
 21051    HEAP32[i4 >> 2] = 0;
 21053  } while (0);
 21054  HEAP8[i24] = 1;
 21055  HEAP32[i4 >> 2] = 0;
 21056  HEAP32[i22 >> 2] = 0;
 21057  HEAP32[i1 >> 2] = 0;
 21058  if ((i3 | 0) == 0) {
 21059   i1 = HEAP32[i21 >> 2] | 0;
 21060   if ((i1 | 0) <= 0) {
 21061    STACKTOP = i6;
 21062    return;
 21064   i22 = i18 + 24 | 0;
 21065   i4 = 0;
 21066   do {
 21067    __ZN22btCompoundLeafCallback17ProcessChildShapeEP16btCollisionShapei(i7, HEAP32[(HEAP32[i22 >> 2] | 0) + (i4 * 80 | 0) + 64 >> 2] | 0, i4);
 21068    i4 = i4 + 1 | 0;
 21069   } while ((i4 | 0) < (i1 | 0));
 21070  } else {
 21071   d42 = +HEAPF32[i19 + 4 >> 2];
 21072   d43 = +HEAPF32[i19 + 20 >> 2];
 21073   d44 = +HEAPF32[i19 + 36 >> 2];
 21074   d45 = +HEAPF32[i19 + 8 >> 2];
 21075   d46 = +HEAPF32[i19 + 24 >> 2];
 21076   d47 = +HEAPF32[i19 + 40 >> 2];
 21077   d48 = +HEAPF32[i19 + 12 >> 2];
 21078   d49 = +HEAPF32[i19 + 28 >> 2];
 21079   d50 = +HEAPF32[i19 + 44 >> 2];
 21080   d51 = -0.0 - +HEAPF32[i19 + 52 >> 2];
 21081   d52 = -0.0 - +HEAPF32[i19 + 56 >> 2];
 21082   d53 = -0.0 - +HEAPF32[i19 + 60 >> 2];
 21083   d54 = +HEAPF32[i20 + 4 >> 2];
 21084   d55 = +HEAPF32[i20 + 20 >> 2];
 21085   d56 = +HEAPF32[i20 + 36 >> 2];
 21086   d57 = +HEAPF32[i20 + 8 >> 2];
 21087   d58 = +HEAPF32[i20 + 24 >> 2];
 21088   d59 = +HEAPF32[i20 + 40 >> 2];
 21089   d60 = +HEAPF32[i20 + 12 >> 2];
 21090   d61 = +HEAPF32[i20 + 28 >> 2];
 21091   d62 = +HEAPF32[i20 + 44 >> 2];
 21092   d63 = +HEAPF32[i20 + 52 >> 2];
 21093   d64 = +HEAPF32[i20 + 56 >> 2];
 21094   d65 = +HEAPF32[i20 + 60 >> 2];
 21095   HEAPF32[i11 >> 2] = d42 * d54 + d43 * d55 + d44 * d56;
 21096   HEAPF32[i11 + 4 >> 2] = d42 * d57 + d43 * d58 + d44 * d59;
 21097   HEAPF32[i11 + 8 >> 2] = d42 * d60 + d43 * d61 + d44 * d62;
 21098   HEAPF32[i11 + 12 >> 2] = 0.0;
 21099   HEAPF32[i11 + 16 >> 2] = d45 * d54 + d46 * d55 + d47 * d56;
 21100   HEAPF32[i11 + 20 >> 2] = d45 * d57 + d46 * d58 + d47 * d59;
 21101   HEAPF32[i11 + 24 >> 2] = d45 * d60 + d46 * d61 + d47 * d62;
 21102   HEAPF32[i11 + 28 >> 2] = 0.0;
 21103   HEAPF32[i11 + 32 >> 2] = d48 * d54 + d49 * d55 + d50 * d56;
 21104   HEAPF32[i11 + 36 >> 2] = d48 * d57 + d49 * d58 + d50 * d59;
 21105   HEAPF32[i11 + 40 >> 2] = d48 * d60 + d49 * d61 + d50 * d62;
 21106   HEAPF32[i11 + 44 >> 2] = 0.0;
 21107   HEAPF32[i11 + 48 >> 2] = d42 * d51 + d43 * d52 + d44 * d53 + (d42 * d63 + d43 * d64 + d44 * d65);
 21108   HEAPF32[i11 + 52 >> 2] = d45 * d51 + d46 * d52 + d47 * d53 + (d45 * d63 + d46 * d64 + d47 * d65);
 21109   HEAPF32[i11 + 56 >> 2] = d48 * d51 + d49 * d52 + d50 * d53 + (d48 * d63 + d49 * d64 + d50 * d65);
 21110   HEAPF32[i11 + 60 >> 2] = 0.0;
 21111   i1 = HEAP32[i20 + 192 >> 2] | 0;
 21112   FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] & 127](i1, i11, i9, i10);
 21113   i11 = i12;
 21114   i1 = i9;
 21115   HEAP32[i11 >> 2] = HEAP32[i1 >> 2];
 21116   HEAP32[i11 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
 21117   HEAP32[i11 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
 21118   HEAP32[i11 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
 21119   i1 = i12 + 16 | 0;
 21120   i11 = i10;
 21121   HEAP32[i1 >> 2] = HEAP32[i11 >> 2];
 21122   HEAP32[i1 + 4 >> 2] = HEAP32[i11 + 4 >> 2];
 21123   HEAP32[i1 + 8 >> 2] = HEAP32[i11 + 8 >> 2];
 21124   HEAP32[i1 + 12 >> 2] = HEAP32[i11 + 12 >> 2];
 21125   __ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(0, HEAP32[i3 >> 2] | 0, i12, i7 | 0);
 21127  i7 = HEAP32[i21 >> 2] | 0;
 21128  if ((i7 | 0) <= 0) {
 21129   STACKTOP = i6;
 21130   return;
 21132  i21 = i18 + 24 | 0;
 21133  i18 = i19 + 4 | 0;
 21134  i12 = i19 + 8 | 0;
 21135  i3 = i19 + 12 | 0;
 21136  i11 = i19 + 20 | 0;
 21137  i1 = i19 + 24 | 0;
 21138  i10 = i19 + 28 | 0;
 21139  i9 = i19 + 36 | 0;
 21140  i4 = i19 + 40 | 0;
 21141  i22 = i19 + 44 | 0;
 21142  i24 = i19 + 52 | 0;
 21143  i35 = i19 + 56 | 0;
 21144  i41 = i19 + 60 | 0;
 21145  i19 = i13 | 0;
 21146  i40 = i13 + 4 | 0;
 21147  i39 = i13 + 8 | 0;
 21148  i8 = i13 + 12 | 0;
 21149  i23 = i13 + 16 | 0;
 21150  i26 = i13 + 20 | 0;
 21151  i5 = i13 + 24 | 0;
 21152  i33 = i13 + 28 | 0;
 21153  i32 = i13 + 32 | 0;
 21154  i31 = i13 + 36 | 0;
 21155  i27 = i13 + 40 | 0;
 21156  i29 = i13 + 44 | 0;
 21157  i30 = i13 + 48 | 0;
 21158  i28 = i13 + 52 | 0;
 21159  i37 = i13 + 56 | 0;
 21160  i36 = i13 + 60 | 0;
 21161  i34 = i20 + 192 | 0;
 21162  i38 = i20 + 4 | 0;
 21163  i20 = i14 | 0;
 21164  i66 = i17 | 0;
 21165  i67 = i14 + 8 | 0;
 21166  i68 = i17 + 8 | 0;
 21167  i69 = i14 + 4 | 0;
 21168  i70 = i17 + 4 | 0;
 21169  i71 = i15 + 4 | 0;
 21170  i72 = i16 + 4 | 0;
 21171  i73 = i15 + 8 | 0;
 21172  i74 = i16 + 8 | 0;
 21173  i75 = i15 | 0;
 21174  i76 = i16 | 0;
 21175  i77 = 0;
 21176  do {
 21177   do {
 21178    if ((HEAP32[(HEAP32[i25 >> 2] | 0) + (i77 << 2) >> 2] | 0) != 0) {
 21179     i78 = HEAP32[i21 >> 2] | 0;
 21180     i79 = HEAP32[i78 + (i77 * 80 | 0) + 64 >> 2] | 0;
 21181     d65 = +HEAPF32[i18 >> 2];
 21182     d50 = +HEAPF32[i12 >> 2];
 21183     d64 = +HEAPF32[i3 >> 2];
 21184     d49 = +HEAPF32[i11 >> 2];
 21185     d63 = +HEAPF32[i1 >> 2];
 21186     d48 = +HEAPF32[i10 >> 2];
 21187     d53 = +HEAPF32[i9 >> 2];
 21188     d52 = +HEAPF32[i4 >> 2];
 21189     d51 = +HEAPF32[i22 >> 2];
 21190     d47 = +HEAPF32[i78 + (i77 * 80 | 0) >> 2];
 21191     d46 = +HEAPF32[i78 + (i77 * 80 | 0) + 16 >> 2];
 21192     d45 = +HEAPF32[i78 + (i77 * 80 | 0) + 32 >> 2];
 21193     d44 = +HEAPF32[i78 + (i77 * 80 | 0) + 4 >> 2];
 21194     d43 = +HEAPF32[i78 + (i77 * 80 | 0) + 20 >> 2];
 21195     d42 = +HEAPF32[i78 + (i77 * 80 | 0) + 36 >> 2];
 21196     d62 = +HEAPF32[i78 + (i77 * 80 | 0) + 8 >> 2];
 21197     d61 = +HEAPF32[i78 + (i77 * 80 | 0) + 24 >> 2];
 21198     d60 = +HEAPF32[i78 + (i77 * 80 | 0) + 40 >> 2];
 21199     d59 = +HEAPF32[i78 + (i77 * 80 | 0) + 48 >> 2];
 21200     d58 = +HEAPF32[i78 + (i77 * 80 | 0) + 52 >> 2];
 21201     d57 = +HEAPF32[i78 + (i77 * 80 | 0) + 56 >> 2];
 21202     d56 = +HEAPF32[i24 >> 2] + (d65 * d59 + d50 * d58 + d64 * d57);
 21203     d55 = +HEAPF32[i35 >> 2] + (d49 * d59 + d63 * d58 + d48 * d57);
 21204     d54 = +HEAPF32[i41 >> 2] + (d53 * d59 + d52 * d58 + d51 * d57);
 21205     HEAPF32[i19 >> 2] = d65 * d47 + d50 * d46 + d64 * d45;
 21206     HEAPF32[i40 >> 2] = d65 * d44 + d50 * d43 + d64 * d42;
 21207     HEAPF32[i39 >> 2] = d65 * d62 + d50 * d61 + d64 * d60;
 21208     HEAPF32[i8 >> 2] = 0.0;
 21209     HEAPF32[i23 >> 2] = d49 * d47 + d63 * d46 + d48 * d45;
 21210     HEAPF32[i26 >> 2] = d49 * d44 + d63 * d43 + d48 * d42;
 21211     HEAPF32[i5 >> 2] = d49 * d62 + d63 * d61 + d48 * d60;
 21212     HEAPF32[i33 >> 2] = 0.0;
 21213     HEAPF32[i32 >> 2] = d53 * d47 + d52 * d46 + d51 * d45;
 21214     HEAPF32[i31 >> 2] = d53 * d44 + d52 * d43 + d51 * d42;
 21215     HEAPF32[i27 >> 2] = d53 * d62 + d52 * d61 + d51 * d60;
 21216     HEAPF32[i29 >> 2] = 0.0;
 21217     HEAPF32[i30 >> 2] = d56;
 21218     HEAPF32[i28 >> 2] = d55;
 21219     HEAPF32[i37 >> 2] = d54;
 21220     HEAPF32[i36 >> 2] = 0.0;
 21221     FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i79 >> 2] | 0) + 8 >> 2] & 127](i79, i13, i14, i15);
 21222     i79 = HEAP32[i34 >> 2] | 0;
 21223     FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i79 >> 2] | 0) + 8 >> 2] & 127](i79, i38, i16, i17);
 21224     do {
 21225      if (+HEAPF32[i20 >> 2] > +HEAPF32[i66 >> 2]) {
 21226       i80 = 0;
 21227      } else {
 21228       if (+HEAPF32[i75 >> 2] < +HEAPF32[i76 >> 2]) {
 21229        i80 = 0;
 21230        break;
 21232       i80 = 1;
 21234     } while (0);
 21235     do {
 21236      if (+HEAPF32[i67 >> 2] > +HEAPF32[i68 >> 2]) {
 21237       i81 = 0;
 21238      } else {
 21239       if (+HEAPF32[i73 >> 2] < +HEAPF32[i74 >> 2]) {
 21240        i81 = 0;
 21241        break;
 21243       i81 = i80;
 21245     } while (0);
 21246     if (+HEAPF32[i69 >> 2] <= +HEAPF32[i70 >> 2]) {
 21247      if (!(+HEAPF32[i71 >> 2] < +HEAPF32[i72 >> 2] | i81 ^ 1)) {
 21248       break;
 21251     i79 = HEAP32[(HEAP32[i25 >> 2] | 0) + (i77 << 2) >> 2] | 0;
 21252     FUNCTION_TABLE_vi[HEAP32[HEAP32[i79 >> 2] >> 2] & 511](i79);
 21253     i79 = HEAP32[i2 >> 2] | 0;
 21254     FUNCTION_TABLE_vii[HEAP32[(HEAP32[i79 >> 2] | 0) + 60 >> 2] & 127](i79, HEAP32[(HEAP32[i25 >> 2] | 0) + (i77 << 2) >> 2] | 0);
 21255     HEAP32[(HEAP32[i25 >> 2] | 0) + (i77 << 2) >> 2] = 0;
 21257   } while (0);
 21258   i77 = i77 + 1 | 0;
 21259  } while ((i77 | 0) < (i7 | 0));
 21260  STACKTOP = i6;
 21261  return;
 21263 function __ZN22btSubsimplexConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i1, i2, i3, i4, i5, i6) {
 21264  i1 = i1 | 0;
 21265  i2 = i2 | 0;
 21266  i3 = i3 | 0;
 21267  i4 = i4 | 0;
 21268  i5 = i5 | 0;
 21269  i6 = i6 | 0;
 21270  var i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, d25 = 0.0, i26 = 0, i27 = 0, d28 = 0.0, i29 = 0, d30 = 0.0, i31 = 0, i32 = 0, d33 = 0.0, i34 = 0, i35 = 0, d36 = 0.0, i37 = 0, d38 = 0.0, i39 = 0, d40 = 0.0, i41 = 0, d42 = 0.0, i43 = 0, d44 = 0.0, i45 = 0, d46 = 0.0, i47 = 0, d48 = 0.0, i49 = 0, d50 = 0.0, i51 = 0, d52 = 0.0, i53 = 0, d54 = 0.0, i55 = 0, d56 = 0.0, d57 = 0.0, i58 = 0, d59 = 0.0, i60 = 0, d61 = 0.0, i62 = 0, d63 = 0.0, i64 = 0, d65 = 0.0, i66 = 0, d67 = 0.0, i68 = 0, d69 = 0.0, i70 = 0, d71 = 0.0, i72 = 0, d73 = 0.0, d74 = 0.0, d75 = 0.0, d76 = 0.0, i77 = 0, i78 = 0, d79 = 0.0, d80 = 0.0, d81 = 0.0, d82 = 0.0, d83 = 0.0, d84 = 0.0, d85 = 0.0, d86 = 0.0, d87 = 0.0, i88 = 0, i89 = 0, i90 = 0, i91 = 0, i92 = 0, d93 = 0.0, d94 = 0.0, d95 = 0.0, i96 = 0, d97 = 0.0, d98 = 0.0, d99 = 0.0, d100 = 0.0, i101 = 0, d102 = 0.0, d103 = 0.0, d104 = 0.0, d105 = 0.0, i106 = 0, i107 = 0, d108 = 0.0, d109 = 0.0, d110 = 0.0, d111 = 0.0, d112 = 0.0, d113 = 0.0, d114 = 0.0, d115 = 0.0, d116 = 0.0, i117 = 0, i118 = 0, d119 = 0.0, d120 = 0.0, d121 = 0.0, d122 = 0.0, d123 = 0.0, d124 = 0.0, d125 = 0.0, d126 = 0.0, d127 = 0.0, d128 = 0.0, d129 = 0.0, d130 = 0.0, d131 = 0.0, d132 = 0.0, d133 = 0.0;
 21271  i7 = STACKTOP;
 21272  STACKTOP = STACKTOP + 224 | 0;
 21273  i8 = i7 | 0;
 21274  i9 = i7 + 16 | 0;
 21275  i10 = i7 + 32 | 0;
 21276  i11 = i7 + 48 | 0;
 21277  i12 = i7 + 64 | 0;
 21278  i13 = i7 + 80 | 0;
 21279  i14 = i7 + 96 | 0;
 21280  i15 = i7 + 112 | 0;
 21281  i16 = i7 + 128 | 0;
 21282  i17 = i7 + 144 | 0;
 21283  i18 = i7 + 160 | 0;
 21284  i19 = i7 + 176 | 0;
 21285  i20 = i7 + 192 | 0;
 21286  i21 = i7 + 208 | 0;
 21287  i22 = i1 + 4 | 0;
 21288  __ZN22btVoronoiSimplexSolver5resetEv(HEAP32[i22 >> 2] | 0);
 21289  i23 = i3 + 48 | 0;
 21290  i24 = i2 + 48 | 0;
 21291  d25 = +HEAPF32[i24 >> 2];
 21292  i26 = i3 + 52 | 0;
 21293  i27 = i2 + 52 | 0;
 21294  d28 = +HEAPF32[i27 >> 2];
 21295  i29 = i3 + 56 | 0;
 21296  i3 = i2 + 56 | 0;
 21297  d30 = +HEAPF32[i3 >> 2];
 21298  i31 = i5 + 48 | 0;
 21299  i32 = i4 + 48 | 0;
 21300  d33 = +HEAPF32[i32 >> 2];
 21301  i34 = i5 + 52 | 0;
 21302  i35 = i4 + 52 | 0;
 21303  d36 = +HEAPF32[i35 >> 2];
 21304  i37 = i5 + 56 | 0;
 21305  i5 = i4 + 56 | 0;
 21306  d38 = +HEAPF32[i5 >> 2];
 21307  i39 = i2 | 0;
 21308  d40 = +HEAPF32[i39 >> 2];
 21309  i41 = i2 + 4 | 0;
 21310  d42 = +HEAPF32[i41 >> 2];
 21311  i43 = i2 + 8 | 0;
 21312  d44 = +HEAPF32[i43 >> 2];
 21313  i45 = i2 + 16 | 0;
 21314  d46 = +HEAPF32[i45 >> 2];
 21315  i47 = i2 + 20 | 0;
 21316  d48 = +HEAPF32[i47 >> 2];
 21317  i49 = i2 + 24 | 0;
 21318  d50 = +HEAPF32[i49 >> 2];
 21319  i51 = i2 + 32 | 0;
 21320  d52 = +HEAPF32[i51 >> 2];
 21321  i53 = i2 + 36 | 0;
 21322  d54 = +HEAPF32[i53 >> 2];
 21323  i55 = i2 + 40 | 0;
 21324  d56 = +HEAPF32[i55 >> 2];
 21325  i2 = i4 | 0;
 21326  d57 = +HEAPF32[i2 >> 2];
 21327  i58 = i4 + 4 | 0;
 21328  d59 = +HEAPF32[i58 >> 2];
 21329  i60 = i4 + 8 | 0;
 21330  d61 = +HEAPF32[i60 >> 2];
 21331  i62 = i4 + 16 | 0;
 21332  d63 = +HEAPF32[i62 >> 2];
 21333  i64 = i4 + 20 | 0;
 21334  d65 = +HEAPF32[i64 >> 2];
 21335  i66 = i4 + 24 | 0;
 21336  d67 = +HEAPF32[i66 >> 2];
 21337  i68 = i4 + 32 | 0;
 21338  d69 = +HEAPF32[i68 >> 2];
 21339  i70 = i4 + 36 | 0;
 21340  d71 = +HEAPF32[i70 >> 2];
 21341  i72 = i4 + 40 | 0;
 21342  d73 = +HEAPF32[i72 >> 2];
 21343  d74 = +HEAPF32[i23 >> 2] - d25 - (+HEAPF32[i31 >> 2] - d33);
 21344  d75 = +HEAPF32[i26 >> 2] - d28 - (+HEAPF32[i34 >> 2] - d36);
 21345  d76 = +HEAPF32[i29 >> 2] - d30 - (+HEAPF32[i37 >> 2] - d38);
 21346  i4 = i1 + 8 | 0;
 21347  i77 = HEAP32[i4 >> 2] | 0;
 21348  i78 = HEAP32[(HEAP32[i77 >> 2] | 0) + 60 >> 2] | 0;
 21349  d79 = -0.0 - d74;
 21350  d80 = -0.0 - d75;
 21351  d81 = -0.0 - d76;
 21352  HEAPF32[i11 >> 2] = d40 * d79 + d46 * d80 + d52 * d81;
 21353  HEAPF32[i11 + 4 >> 2] = d42 * d79 + d48 * d80 + d54 * d81;
 21354  HEAPF32[i11 + 8 >> 2] = d44 * d79 + d50 * d80 + d56 * d81;
 21355  HEAPF32[i11 + 12 >> 2] = 0.0;
 21356  FUNCTION_TABLE_viii[i78 & 127](i10, i77, i11);
 21357  d81 = +HEAPF32[i10 >> 2];
 21358  d80 = +HEAPF32[i10 + 4 >> 2];
 21359  d79 = +HEAPF32[i10 + 8 >> 2];
 21360  d82 = +HEAPF32[i24 >> 2] + (+HEAPF32[i39 >> 2] * d81 + +HEAPF32[i41 >> 2] * d80 + +HEAPF32[i43 >> 2] * d79);
 21361  d83 = +HEAPF32[i27 >> 2] + (d81 * +HEAPF32[i45 >> 2] + d80 * +HEAPF32[i47 >> 2] + d79 * +HEAPF32[i49 >> 2]);
 21362  d84 = +HEAPF32[i3 >> 2] + (d81 * +HEAPF32[i51 >> 2] + d80 * +HEAPF32[i53 >> 2] + d79 * +HEAPF32[i55 >> 2]);
 21363  i55 = i9 | 0;
 21364  HEAPF32[i55 >> 2] = d82;
 21365  i53 = i9 + 4 | 0;
 21366  HEAPF32[i53 >> 2] = d83;
 21367  i51 = i9 + 8 | 0;
 21368  HEAPF32[i51 >> 2] = d84;
 21369  i49 = i9 + 12 | 0;
 21370  HEAPF32[i49 >> 2] = 0.0;
 21371  i47 = i1 + 12 | 0;
 21372  i1 = HEAP32[i47 >> 2] | 0;
 21373  i45 = HEAP32[(HEAP32[i1 >> 2] | 0) + 60 >> 2] | 0;
 21374  d79 = d74 * +HEAPF32[i58 >> 2] + d75 * +HEAPF32[i64 >> 2] + d76 * +HEAPF32[i70 >> 2];
 21375  d80 = d74 * +HEAPF32[i60 >> 2] + d75 * +HEAPF32[i66 >> 2] + d76 * +HEAPF32[i72 >> 2];
 21376  HEAPF32[i14 >> 2] = d74 * +HEAPF32[i2 >> 2] + d75 * +HEAPF32[i62 >> 2] + d76 * +HEAPF32[i68 >> 2];
 21377  HEAPF32[i14 + 4 >> 2] = d79;
 21378  HEAPF32[i14 + 8 >> 2] = d80;
 21379  HEAPF32[i14 + 12 >> 2] = 0.0;
 21380  FUNCTION_TABLE_viii[i45 & 127](i13, i1, i14);
 21381  d80 = +HEAPF32[i13 >> 2];
 21382  d79 = +HEAPF32[i13 + 4 >> 2];
 21383  d81 = +HEAPF32[i13 + 8 >> 2];
 21384  d85 = +HEAPF32[i32 >> 2] + (+HEAPF32[i2 >> 2] * d80 + +HEAPF32[i58 >> 2] * d79 + +HEAPF32[i60 >> 2] * d81);
 21385  d86 = +HEAPF32[i35 >> 2] + (d80 * +HEAPF32[i62 >> 2] + d79 * +HEAPF32[i64 >> 2] + d81 * +HEAPF32[i66 >> 2]);
 21386  d87 = +HEAPF32[i5 >> 2] + (d80 * +HEAPF32[i68 >> 2] + d79 * +HEAPF32[i70 >> 2] + d81 * +HEAPF32[i72 >> 2]);
 21387  i72 = i12 | 0;
 21388  HEAPF32[i72 >> 2] = d85;
 21389  i70 = i12 + 4 | 0;
 21390  HEAPF32[i70 >> 2] = d86;
 21391  i68 = i12 + 8 | 0;
 21392  HEAPF32[i68 >> 2] = d87;
 21393  i66 = i12 + 12 | 0;
 21394  HEAPF32[i66 >> 2] = 0.0;
 21395  d81 = d82 - d85;
 21396  d85 = d83 - d86;
 21397  d86 = d84 - d87;
 21398  i64 = i8 | 0;
 21399  HEAPF32[i64 >> 2] = d81;
 21400  i62 = i8 + 4 | 0;
 21401  HEAPF32[i62 >> 2] = d85;
 21402  i60 = i8 + 8 | 0;
 21403  HEAPF32[i60 >> 2] = d86;
 21404  HEAPF32[i8 + 12 >> 2] = 0.0;
 21405  L561 : do {
 21406   if (d81 * d81 + d85 * d85 + d86 * d86 > 9999999747378752.0e-20) {
 21407    i58 = i17 | 0;
 21408    i2 = i17 + 4 | 0;
 21409    i13 = i17 + 8 | 0;
 21410    i14 = i17 + 12 | 0;
 21411    i1 = i16 | 0;
 21412    i45 = i16 + 4 | 0;
 21413    i43 = i16 + 8 | 0;
 21414    i41 = i19 | 0;
 21415    i39 = i19 + 4 | 0;
 21416    i10 = i19 + 8 | 0;
 21417    i11 = i19 + 12 | 0;
 21418    i77 = i18 | 0;
 21419    i78 = i18 + 4 | 0;
 21420    i88 = i18 + 8 | 0;
 21421    i89 = i15 | 0;
 21422    i90 = i15 + 4 | 0;
 21423    i91 = i15 + 8 | 0;
 21424    i92 = i15 + 12 | 0;
 21425    d87 = d30;
 21426    d84 = d28;
 21427    d83 = d25;
 21428    d82 = d38;
 21429    d79 = d36;
 21430    d80 = d33;
 21431    d93 = 0.0;
 21432    d94 = 0.0;
 21433    d95 = 0.0;
 21434    i96 = 32;
 21435    d97 = 0.0;
 21436    d98 = d81;
 21437    d99 = d85;
 21438    d100 = d86;
 21439    while (1) {
 21440     i101 = i96 - 1 | 0;
 21441     if ((i96 | 0) == 0) {
 21442      d102 = d93;
 21443      d103 = d94;
 21444      d104 = d95;
 21445      d105 = d97;
 21446      break L561;
 21448     i106 = HEAP32[i4 >> 2] | 0;
 21449     i107 = HEAP32[(HEAP32[i106 >> 2] | 0) + 60 >> 2] | 0;
 21450     d108 = -0.0 - d98;
 21451     d109 = -0.0 - d99;
 21452     d110 = -0.0 - d100;
 21453     HEAPF32[i58 >> 2] = d40 * d108 + d46 * d109 + d52 * d110;
 21454     HEAPF32[i2 >> 2] = d42 * d108 + d48 * d109 + d54 * d110;
 21455     HEAPF32[i13 >> 2] = d44 * d108 + d50 * d109 + d56 * d110;
 21456     HEAPF32[i14 >> 2] = 0.0;
 21457     FUNCTION_TABLE_viii[i107 & 127](i16, i106, i17);
 21458     d110 = +HEAPF32[i1 >> 2];
 21459     d109 = +HEAPF32[i45 >> 2];
 21460     d108 = +HEAPF32[i43 >> 2];
 21461     d111 = d83 + (d40 * d110 + d42 * d109 + d44 * d108);
 21462     d112 = d84 + (d46 * d110 + d48 * d109 + d50 * d108);
 21463     d113 = d87 + (d52 * d110 + d54 * d109 + d56 * d108);
 21464     HEAPF32[i55 >> 2] = d111;
 21465     HEAPF32[i53 >> 2] = d112;
 21466     HEAPF32[i51 >> 2] = d113;
 21467     HEAPF32[i49 >> 2] = 0.0;
 21468     i106 = HEAP32[i47 >> 2] | 0;
 21469     i107 = HEAP32[(HEAP32[i106 >> 2] | 0) + 60 >> 2] | 0;
 21470     HEAPF32[i41 >> 2] = d57 * d98 + d63 * d99 + d69 * d100;
 21471     HEAPF32[i39 >> 2] = d59 * d98 + d65 * d99 + d71 * d100;
 21472     HEAPF32[i10 >> 2] = d61 * d98 + d67 * d99 + d73 * d100;
 21473     HEAPF32[i11 >> 2] = 0.0;
 21474     FUNCTION_TABLE_viii[i107 & 127](i18, i106, i19);
 21475     d108 = +HEAPF32[i77 >> 2];
 21476     d109 = +HEAPF32[i78 >> 2];
 21477     d110 = +HEAPF32[i88 >> 2];
 21478     d114 = d80 + (d57 * d108 + d59 * d109 + d61 * d110);
 21479     d115 = d79 + (d63 * d108 + d65 * d109 + d67 * d110);
 21480     d116 = d82 + (d69 * d108 + d71 * d109 + d73 * d110);
 21481     HEAPF32[i72 >> 2] = d114;
 21482     HEAPF32[i70 >> 2] = d115;
 21483     HEAPF32[i68 >> 2] = d116;
 21484     HEAPF32[i66 >> 2] = 0.0;
 21485     d110 = d111 - d114;
 21486     d114 = d112 - d115;
 21487     d115 = d113 - d116;
 21488     HEAPF32[i89 >> 2] = d110;
 21489     HEAPF32[i90 >> 2] = d114;
 21490     HEAPF32[i91 >> 2] = d115;
 21491     HEAPF32[i92 >> 2] = 0.0;
 21492     d116 = d100 * d115 + (d98 * d110 + d99 * d114);
 21493     if (d97 > 1.0) {
 21494      i117 = 0;
 21495      i118 = 511;
 21496      break;
 21498     if (d116 > 0.0) {
 21499      d113 = d74 * d98 + d75 * d99 + d76 * d100;
 21500      if (d113 >= -1.4210854715202004e-14) {
 21501       i117 = 0;
 21502       i118 = 513;
 21503       break;
 21505      d112 = d97 - d116 / d113;
 21506      d113 = 1.0 - d112;
 21507      d116 = +HEAPF32[i24 >> 2] * d113 + d112 * +HEAPF32[i23 >> 2];
 21508      d111 = d113 * +HEAPF32[i27 >> 2] + d112 * +HEAPF32[i26 >> 2];
 21509      d109 = d113 * +HEAPF32[i3 >> 2] + d112 * +HEAPF32[i29 >> 2];
 21510      d108 = d113 * +HEAPF32[i32 >> 2] + d112 * +HEAPF32[i31 >> 2];
 21511      d119 = d113 * +HEAPF32[i35 >> 2] + d112 * +HEAPF32[i34 >> 2];
 21512      d120 = d113 * +HEAPF32[i5 >> 2] + d112 * +HEAPF32[i37 >> 2];
 21513      HEAPF32[i89 >> 2] = d110;
 21514      HEAPF32[i90 >> 2] = d114;
 21515      HEAPF32[i91 >> 2] = d115;
 21516      HEAPF32[i92 >> 2] = 0.0;
 21517      d121 = d112;
 21518      d122 = d98;
 21519      d123 = d99;
 21520      d124 = d100;
 21521      d125 = d108;
 21522      d126 = d119;
 21523      d127 = d120;
 21524      d128 = d116;
 21525      d129 = d111;
 21526      d130 = d109;
 21527     } else {
 21528      d121 = d97;
 21529      d122 = d95;
 21530      d123 = d94;
 21531      d124 = d93;
 21532      d125 = d80;
 21533      d126 = d79;
 21534      d127 = d82;
 21535      d128 = d83;
 21536      d129 = d84;
 21537      d130 = d87;
 21539     if (!(__ZN22btVoronoiSimplexSolver9inSimplexERK9btVector3(HEAP32[i22 >> 2] | 0, i15) | 0)) {
 21540      __ZN22btVoronoiSimplexSolver9addVertexERK9btVector3S2_S2_(HEAP32[i22 >> 2] | 0, i15, i9, i12);
 21542     if (!(__ZN22btVoronoiSimplexSolver7closestER9btVector3(HEAP32[i22 >> 2] | 0, i8) | 0)) {
 21543      d102 = d124;
 21544      d103 = d123;
 21545      d104 = d122;
 21546      d105 = d121;
 21547      break L561;
 21549     d109 = +HEAPF32[i64 >> 2];
 21550     d111 = +HEAPF32[i62 >> 2];
 21551     d116 = +HEAPF32[i60 >> 2];
 21552     if (d109 * d109 + d111 * d111 + d116 * d116 > 9999999747378752.0e-20) {
 21553      d87 = d130;
 21554      d84 = d129;
 21555      d83 = d128;
 21556      d82 = d127;
 21557      d79 = d126;
 21558      d80 = d125;
 21559      d93 = d124;
 21560      d94 = d123;
 21561      d95 = d122;
 21562      i96 = i101;
 21563      d97 = d121;
 21564      d98 = d109;
 21565      d99 = d111;
 21566      d100 = d116;
 21567     } else {
 21568      d102 = d124;
 21569      d103 = d123;
 21570      d104 = d122;
 21571      d105 = d121;
 21572      break L561;
 21575    if ((i118 | 0) == 511) {
 21576     STACKTOP = i7;
 21577     return i117 | 0;
 21578    } else if ((i118 | 0) == 513) {
 21579     STACKTOP = i7;
 21580     return i117 | 0;
 21582   } else {
 21583    d102 = 0.0;
 21584    d103 = 0.0;
 21585    d104 = 0.0;
 21586    d105 = 0.0;
 21588  } while (0);
 21589  HEAPF32[i6 + 164 >> 2] = d105;
 21590  d105 = d102 * d102 + (d104 * d104 + d103 * d103);
 21591  if (d105 < 1.4210854715202004e-14) {
 21592   _memset(i6 + 132 | 0, 0, 16);
 21593   d131 = 0.0;
 21594   d132 = 0.0;
 21595   d133 = 0.0;
 21596  } else {
 21597   d121 = 1.0 / +Math_sqrt(+d105);
 21598   d105 = d104 * d121;
 21599   d104 = d103 * d121;
 21600   d103 = d102 * d121;
 21601   HEAPF32[i6 + 132 >> 2] = d105;
 21602   HEAPF32[i6 + 136 >> 2] = d104;
 21603   HEAPF32[i6 + 140 >> 2] = d103;
 21604   HEAPF32[i6 + 144 >> 2] = 0.0;
 21605   d131 = d105;
 21606   d132 = d104;
 21607   d133 = d103;
 21609  if (d76 * d133 + (d75 * d132 + d74 * d131) >= -0.0 - +HEAPF32[i6 + 172 >> 2]) {
 21610   i117 = 0;
 21611   STACKTOP = i7;
 21612   return i117 | 0;
 21614  __ZN22btVoronoiSimplexSolver14compute_pointsER9btVector3S1_(HEAP32[i22 >> 2] | 0, i20, i21);
 21615  i20 = i6 + 148 | 0;
 21616  i6 = i21;
 21617  HEAP32[i20 >> 2] = HEAP32[i6 >> 2];
 21618  HEAP32[i20 + 4 >> 2] = HEAP32[i6 + 4 >> 2];
 21619  HEAP32[i20 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
 21620  HEAP32[i20 + 12 >> 2] = HEAP32[i6 + 12 >> 2];
 21621  i117 = 1;
 21622  STACKTOP = i7;
 21623  return i117 | 0;
 21625 function __ZN12gjkepa2_impl3GJK8EvaluateERKNS_13MinkowskiDiffERK9btVector3(i1, i2, i3) {
 21626  i1 = i1 | 0;
 21627  i2 = i2 | 0;
 21628  i3 = i3 | 0;
 21629  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, i22 = 0, i23 = 0, d24 = 0.0, i25 = 0, d26 = 0.0, i27 = 0, d28 = 0.0, i29 = 0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, d44 = 0.0, d45 = 0.0, d46 = 0.0, i47 = 0, d48 = 0.0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, d54 = 0.0, d55 = 0.0;
 21630  i4 = STACKTOP;
 21631  STACKTOP = STACKTOP + 120 | 0;
 21632  i5 = i4 | 0;
 21633  i6 = i4 + 64 | 0;
 21634  i7 = i4 + 80 | 0;
 21635  i8 = i4 + 96 | 0;
 21636  i9 = i4 + 112 | 0;
 21637  HEAP32[i1 + 348 >> 2] = i1 + 220;
 21638  HEAP32[i1 + 352 >> 2] = i1 + 252;
 21639  HEAP32[i1 + 356 >> 2] = i1 + 284;
 21640  i10 = i1 + 316 | 0;
 21641  HEAP32[i1 + 360 >> 2] = i10;
 21642  i11 = i1 + 364 | 0;
 21643  HEAP32[i11 >> 2] = 4;
 21644  i12 = i1 + 368 | 0;
 21645  HEAP32[i12 >> 2] = 0;
 21646  i13 = i1 + 376 | 0;
 21647  HEAP32[i13 >> 2] = 0;
 21648  i14 = i2;
 21649  i15 = i1;
 21650  i16 = HEAP32[i14 + 4 >> 2] | 0;
 21651  HEAP32[i15 >> 2] = HEAP32[i14 >> 2];
 21652  HEAP32[i15 + 4 >> 2] = i16;
 21653  i16 = i1 + 8 | 0;
 21654  i15 = i2 + 8 | 0;
 21655  HEAP32[i16 >> 2] = HEAP32[i15 >> 2];
 21656  HEAP32[i16 + 4 >> 2] = HEAP32[i15 + 4 >> 2];
 21657  HEAP32[i16 + 8 >> 2] = HEAP32[i15 + 8 >> 2];
 21658  HEAP32[i16 + 12 >> 2] = HEAP32[i15 + 12 >> 2];
 21659  i15 = i1 + 24 | 0;
 21660  i16 = i2 + 24 | 0;
 21661  HEAP32[i15 >> 2] = HEAP32[i16 >> 2];
 21662  HEAP32[i15 + 4 >> 2] = HEAP32[i16 + 4 >> 2];
 21663  HEAP32[i15 + 8 >> 2] = HEAP32[i16 + 8 >> 2];
 21664  HEAP32[i15 + 12 >> 2] = HEAP32[i16 + 12 >> 2];
 21665  i16 = i1 + 40 | 0;
 21666  i15 = i2 + 40 | 0;
 21667  HEAP32[i16 >> 2] = HEAP32[i15 >> 2];
 21668  HEAP32[i16 + 4 >> 2] = HEAP32[i15 + 4 >> 2];
 21669  HEAP32[i16 + 8 >> 2] = HEAP32[i15 + 8 >> 2];
 21670  HEAP32[i16 + 12 >> 2] = HEAP32[i15 + 12 >> 2];
 21671  i15 = i1 + 56 | 0;
 21672  i16 = i2 + 56 | 0;
 21673  HEAP32[i15 >> 2] = HEAP32[i16 >> 2];
 21674  HEAP32[i15 + 4 >> 2] = HEAP32[i16 + 4 >> 2];
 21675  HEAP32[i15 + 8 >> 2] = HEAP32[i16 + 8 >> 2];
 21676  HEAP32[i15 + 12 >> 2] = HEAP32[i16 + 12 >> 2];
 21677  i16 = i1 + 72 | 0;
 21678  i15 = i2 + 72 | 0;
 21679  HEAP32[i16 >> 2] = HEAP32[i15 >> 2];
 21680  HEAP32[i16 + 4 >> 2] = HEAP32[i15 + 4 >> 2];
 21681  HEAP32[i16 + 8 >> 2] = HEAP32[i15 + 8 >> 2];
 21682  HEAP32[i16 + 12 >> 2] = HEAP32[i15 + 12 >> 2];
 21683  i15 = i1 + 88 | 0;
 21684  i16 = i2 + 88 | 0;
 21685  HEAP32[i15 >> 2] = HEAP32[i16 >> 2];
 21686  HEAP32[i15 + 4 >> 2] = HEAP32[i16 + 4 >> 2];
 21687  HEAP32[i15 + 8 >> 2] = HEAP32[i16 + 8 >> 2];
 21688  HEAP32[i15 + 12 >> 2] = HEAP32[i16 + 12 >> 2];
 21689  i16 = i1 + 104 | 0;
 21690  i15 = i2 + 104 | 0;
 21691  HEAP32[i16 >> 2] = HEAP32[i15 >> 2];
 21692  HEAP32[i16 + 4 >> 2] = HEAP32[i15 + 4 >> 2];
 21693  HEAP32[i16 + 8 >> 2] = HEAP32[i15 + 8 >> 2];
 21694  HEAP32[i16 + 12 >> 2] = HEAP32[i15 + 12 >> 2];
 21695  i15 = i2 + 120 | 0;
 21696  i2 = HEAP32[i15 + 4 >> 2] | 0;
 21697  i16 = i1 + 120 | 0;
 21698  HEAP32[i16 >> 2] = HEAP32[i15 >> 2];
 21699  HEAP32[i16 + 4 >> 2] = i2;
 21700  i2 = i1 + 144 | 0;
 21701  HEAPF32[i2 >> 2] = 0.0;
 21702  i16 = i1 + 180 | 0;
 21703  HEAP32[i16 >> 2] = 0;
 21704  i15 = i1 + 128 | 0;
 21705  i14 = i15;
 21706  i17 = i3;
 21707  HEAP32[i14 >> 2] = HEAP32[i17 >> 2];
 21708  HEAP32[i14 + 4 >> 2] = HEAP32[i17 + 4 >> 2];
 21709  HEAP32[i14 + 8 >> 2] = HEAP32[i17 + 8 >> 2];
 21710  HEAP32[i14 + 12 >> 2] = HEAP32[i17 + 12 >> 2];
 21711  i17 = i15 | 0;
 21712  d18 = +HEAPF32[i17 >> 2];
 21713  i15 = i1 + 132 | 0;
 21714  d19 = +HEAPF32[i15 >> 2];
 21715  i3 = i1 + 136 | 0;
 21716  d20 = +HEAPF32[i3 >> 2];
 21717  d21 = d18 * d18 + d19 * d19 + d20 * d20;
 21718  if (d21 > 0.0) {
 21719   HEAPF32[i6 >> 2] = -0.0 - d18;
 21720   HEAPF32[i6 + 4 >> 2] = -0.0 - d19;
 21721   HEAPF32[i6 + 8 >> 2] = -0.0 - d20;
 21722   HEAPF32[i6 + 12 >> 2] = 0.0;
 21723  } else {
 21724   HEAPF32[i6 >> 2] = 1.0;
 21725   HEAPF32[i6 + 4 >> 2] = 0.0;
 21726   HEAPF32[i6 + 8 >> 2] = 0.0;
 21727   HEAPF32[i6 + 12 >> 2] = 0.0;
 21729  i22 = i1 + 164 | 0;
 21730  HEAPF32[i22 >> 2] = 0.0;
 21731  HEAP32[i11 >> 2] = 3;
 21732  i23 = i1 + 148 | 0;
 21733  HEAP32[i23 >> 2] = i10;
 21734  HEAP32[i16 >> 2] = 1;
 21735  __ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i1, i6, i10);
 21736  HEAPF32[i22 >> 2] = 1.0;
 21737  i22 = (HEAP32[i23 >> 2] | 0) + 16 | 0;
 21738  HEAP32[i14 >> 2] = HEAP32[i22 >> 2];
 21739  HEAP32[i14 + 4 >> 2] = HEAP32[i22 + 4 >> 2];
 21740  HEAP32[i14 + 8 >> 2] = HEAP32[i22 + 8 >> 2];
 21741  HEAP32[i14 + 12 >> 2] = HEAP32[i22 + 12 >> 2];
 21742  i14 = i5 + 48 | 0;
 21743  HEAP32[i14 >> 2] = HEAP32[i22 >> 2];
 21744  HEAP32[i14 + 4 >> 2] = HEAP32[i22 + 4 >> 2];
 21745  HEAP32[i14 + 8 >> 2] = HEAP32[i22 + 8 >> 2];
 21746  HEAP32[i14 + 12 >> 2] = HEAP32[i22 + 12 >> 2];
 21747  i14 = i5 + 32 | 0;
 21748  HEAP32[i14 >> 2] = HEAP32[i22 >> 2];
 21749  HEAP32[i14 + 4 >> 2] = HEAP32[i22 + 4 >> 2];
 21750  HEAP32[i14 + 8 >> 2] = HEAP32[i22 + 8 >> 2];
 21751  HEAP32[i14 + 12 >> 2] = HEAP32[i22 + 12 >> 2];
 21752  i14 = i5 + 16 | 0;
 21753  HEAP32[i14 >> 2] = HEAP32[i22 >> 2];
 21754  HEAP32[i14 + 4 >> 2] = HEAP32[i22 + 4 >> 2];
 21755  HEAP32[i14 + 8 >> 2] = HEAP32[i22 + 8 >> 2];
 21756  HEAP32[i14 + 12 >> 2] = HEAP32[i22 + 12 >> 2];
 21757  i14 = i5;
 21758  HEAP32[i14 >> 2] = HEAP32[i22 >> 2];
 21759  HEAP32[i14 + 4 >> 2] = HEAP32[i22 + 4 >> 2];
 21760  HEAP32[i14 + 8 >> 2] = HEAP32[i22 + 8 >> 2];
 21761  HEAP32[i14 + 12 >> 2] = HEAP32[i22 + 12 >> 2];
 21762  i22 = i7 | 0;
 21763  i14 = i7 + 4 | 0;
 21764  i23 = i7 + 8 | 0;
 21765  i10 = i7 + 12 | 0;
 21766  i6 = i8 | 0;
 21767  d20 = +HEAPF32[i17 >> 2];
 21768  d19 = +HEAPF32[i15 >> 2];
 21769  d18 = +HEAPF32[i3 >> 2];
 21770  d24 = +Math_sqrt(+(d20 * d20 + d19 * d19 + d18 * d18));
 21771  L24 : do {
 21772   if (d24 < 9999999747378752.0e-20) {
 21773    i25 = 21;
 21774   } else {
 21775    i16 = i1 + 128 | 0;
 21776    d26 = 0.0;
 21777    i27 = 1;
 21778    d28 = d21;
 21779    i29 = 1;
 21780    d30 = d20;
 21781    d31 = d19;
 21782    d32 = d18;
 21783    d33 = d24;
 21784    L26 : while (1) {
 21785     i34 = HEAP32[i12 >> 2] | 0;
 21786     i35 = 1 - i34 | 0;
 21787     i36 = i1 + 148 + (i34 * 36 | 0) | 0;
 21788     HEAPF32[i22 >> 2] = -0.0 - d30;
 21789     HEAPF32[i14 >> 2] = -0.0 - d31;
 21790     HEAPF32[i23 >> 2] = -0.0 - d32;
 21791     HEAPF32[i10 >> 2] = 0.0;
 21792     i37 = i1 + 148 + (i34 * 36 | 0) + 32 | 0;
 21793     HEAPF32[i1 + 148 + (i34 * 36 | 0) + 16 + (HEAP32[i37 >> 2] << 2) >> 2] = 0.0;
 21794     i38 = (HEAP32[i11 >> 2] | 0) - 1 | 0;
 21795     HEAP32[i11 >> 2] = i38;
 21796     HEAP32[i1 + 148 + (i34 * 36 | 0) + (HEAP32[i37 >> 2] << 2) >> 2] = HEAP32[i1 + 348 + (i38 << 2) >> 2];
 21797     i38 = HEAP32[i37 >> 2] | 0;
 21798     HEAP32[i37 >> 2] = i38 + 1;
 21799     __ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i1, i7, HEAP32[i1 + 148 + (i34 * 36 | 0) + (i38 << 2) >> 2] | 0);
 21800     i38 = HEAP32[i37 >> 2] | 0;
 21801     i39 = HEAP32[i1 + 148 + (i34 * 36 | 0) + (i38 - 1 << 2) >> 2] | 0;
 21802     i40 = i39 + 16 | 0;
 21803     i41 = i40 | 0;
 21804     i42 = i39 + 20 | 0;
 21805     i43 = i39 + 24 | 0;
 21806     i39 = 0;
 21807     while (1) {
 21808      if (i39 >>> 0 >= 4) {
 21809       break;
 21811      d44 = +HEAPF32[i41 >> 2] - +HEAPF32[i5 + (i39 << 4) >> 2];
 21812      d45 = +HEAPF32[i42 >> 2] - +HEAPF32[i5 + (i39 << 4) + 4 >> 2];
 21813      d46 = +HEAPF32[i43 >> 2] - +HEAPF32[i5 + (i39 << 4) + 8 >> 2];
 21814      if (d44 * d44 + d45 * d45 + d46 * d46 < 9999999747378752.0e-20) {
 21815       i25 = 25;
 21816       break L26;
 21817      } else {
 21818       i39 = i39 + 1 | 0;
 21821     i39 = i5 + (i27 << 4) | 0;
 21822     i47 = i40;
 21823     HEAP32[i39 >> 2] = HEAP32[i47 >> 2];
 21824     HEAP32[i39 + 4 >> 2] = HEAP32[i47 + 4 >> 2];
 21825     HEAP32[i39 + 8 >> 2] = HEAP32[i47 + 8 >> 2];
 21826     HEAP32[i39 + 12 >> 2] = HEAP32[i47 + 12 >> 2];
 21827     d46 = (+HEAPF32[i17 >> 2] * +HEAPF32[i41 >> 2] + +HEAPF32[i15 >> 2] * +HEAPF32[i42 >> 2] + +HEAPF32[i3 >> 2] * +HEAPF32[i43 >> 2]) / d33;
 21828     d45 = d46 > d26 ? d46 : d26;
 21829     if (d33 - d45 - d33 * 9999999747378752.0e-20 <= 0.0) {
 21830      i25 = 27;
 21831      break;
 21833     HEAP32[i9 >> 2] = 0;
 21834     if ((i38 | 0) == 2) {
 21835      d48 = +__ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_PfRj((HEAP32[i36 >> 2] | 0) + 16 | 0, (HEAP32[i1 + 148 + (i34 * 36 | 0) + 4 >> 2] | 0) + 16 | 0, i6, i9);
 21836     } else if ((i38 | 0) == 3) {
 21837      d48 = +__ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRj((HEAP32[i36 >> 2] | 0) + 16 | 0, (HEAP32[i1 + 148 + (i34 * 36 | 0) + 4 >> 2] | 0) + 16 | 0, (HEAP32[i1 + 148 + (i34 * 36 | 0) + 8 >> 2] | 0) + 16 | 0, i6, i9);
 21838     } else if ((i38 | 0) == 4) {
 21839      d48 = +__ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_S3_PfRj((HEAP32[i36 >> 2] | 0) + 16 | 0, (HEAP32[i1 + 148 + (i34 * 36 | 0) + 4 >> 2] | 0) + 16 | 0, (HEAP32[i1 + 148 + (i34 * 36 | 0) + 8 >> 2] | 0) + 16 | 0, (HEAP32[i1 + 148 + (i34 * 36 | 0) + 12 >> 2] | 0) + 16 | 0, i6, i9);
 21840     } else {
 21841      d48 = d28;
 21843     if (d48 < 0.0) {
 21844      i25 = 40;
 21845      break;
 21847     i47 = i1 + 148 + (i35 * 36 | 0) + 32 | 0;
 21848     HEAP32[i47 >> 2] = 0;
 21849     _memset(i16 | 0, 0, 16);
 21850     HEAP32[i12 >> 2] = i35;
 21851     i39 = HEAP32[i37 >> 2] | 0;
 21852     i49 = HEAP32[i9 >> 2] | 0;
 21853     if ((i39 | 0) != 0) {
 21854      i50 = 0;
 21855      do {
 21856       i51 = i1 + 148 + (i34 * 36 | 0) + (i50 << 2) | 0;
 21857       i52 = HEAP32[i51 >> 2] | 0;
 21858       if ((1 << i50 & i49 | 0) == 0) {
 21859        i53 = HEAP32[i11 >> 2] | 0;
 21860        HEAP32[i11 >> 2] = i53 + 1;
 21861        HEAP32[i1 + 348 + (i53 << 2) >> 2] = i52;
 21862       } else {
 21863        HEAP32[i1 + 148 + (i35 * 36 | 0) + (HEAP32[i47 >> 2] << 2) >> 2] = i52;
 21864        d46 = +HEAPF32[i8 + (i50 << 2) >> 2];
 21865        i52 = HEAP32[i47 >> 2] | 0;
 21866        HEAP32[i47 >> 2] = i52 + 1;
 21867        HEAPF32[i1 + 148 + (i35 * 36 | 0) + 16 + (i52 << 2) >> 2] = d46;
 21868        i52 = HEAP32[i51 >> 2] | 0;
 21869        d44 = d46 * +HEAPF32[i52 + 20 >> 2];
 21870        d54 = d46 * +HEAPF32[i52 + 24 >> 2];
 21871        HEAPF32[i17 >> 2] = d46 * +HEAPF32[i52 + 16 >> 2] + +HEAPF32[i17 >> 2];
 21872        HEAPF32[i15 >> 2] = d44 + +HEAPF32[i15 >> 2];
 21873        HEAPF32[i3 >> 2] = d54 + +HEAPF32[i3 >> 2];
 21875       i50 = i50 + 1 | 0;
 21876      } while (i50 >>> 0 < i39 >>> 0);
 21878     if ((i49 | 0) == 15) {
 21879      HEAP32[i13 >> 2] = 1;
 21881     if (i29 >>> 0 >= 128) {
 21882      i25 = 42;
 21883      break;
 21885     if ((HEAP32[i13 >> 2] | 0) != 0) {
 21886      break L24;
 21888     d54 = +HEAPF32[i17 >> 2];
 21889     d44 = +HEAPF32[i15 >> 2];
 21890     d46 = +HEAPF32[i3 >> 2];
 21891     d55 = +Math_sqrt(+(d54 * d54 + d44 * d44 + d46 * d46));
 21892     if (d55 < 9999999747378752.0e-20) {
 21893      i25 = 21;
 21894      break L24;
 21895     } else {
 21896      d26 = d45;
 21897      i27 = i27 + 1 & 3;
 21898      d28 = d48;
 21899      i29 = i29 + 1 | 0;
 21900      d30 = d54;
 21901      d31 = d44;
 21902      d32 = d46;
 21903      d33 = d55;
 21906    if ((i25 | 0) == 25) {
 21907     i29 = HEAP32[i12 >> 2] | 0;
 21908     i27 = i1 + 148 + (i29 * 36 | 0) + 32 | 0;
 21909     i16 = (HEAP32[i27 >> 2] | 0) - 1 | 0;
 21910     HEAP32[i27 >> 2] = i16;
 21911     i27 = HEAP32[i1 + 148 + (i29 * 36 | 0) + (i16 << 2) >> 2] | 0;
 21912     i16 = HEAP32[i11 >> 2] | 0;
 21913     HEAP32[i11 >> 2] = i16 + 1;
 21914     HEAP32[i1 + 348 + (i16 << 2) >> 2] = i27;
 21915     break;
 21916    } else if ((i25 | 0) == 27) {
 21917     i27 = HEAP32[i12 >> 2] | 0;
 21918     i16 = i1 + 148 + (i27 * 36 | 0) + 32 | 0;
 21919     i29 = (HEAP32[i16 >> 2] | 0) - 1 | 0;
 21920     HEAP32[i16 >> 2] = i29;
 21921     i16 = HEAP32[i1 + 148 + (i27 * 36 | 0) + (i29 << 2) >> 2] | 0;
 21922     i29 = HEAP32[i11 >> 2] | 0;
 21923     HEAP32[i11 >> 2] = i29 + 1;
 21924     HEAP32[i1 + 348 + (i29 << 2) >> 2] = i16;
 21925     break;
 21926    } else if ((i25 | 0) == 40) {
 21927     i16 = HEAP32[i12 >> 2] | 0;
 21928     i29 = i1 + 148 + (i16 * 36 | 0) + 32 | 0;
 21929     i27 = (HEAP32[i29 >> 2] | 0) - 1 | 0;
 21930     HEAP32[i29 >> 2] = i27;
 21931     i29 = HEAP32[i1 + 148 + (i16 * 36 | 0) + (i27 << 2) >> 2] | 0;
 21932     i27 = HEAP32[i11 >> 2] | 0;
 21933     HEAP32[i11 >> 2] = i27 + 1;
 21934     HEAP32[i1 + 348 + (i27 << 2) >> 2] = i29;
 21935     break;
 21936    } else if ((i25 | 0) == 42) {
 21937     HEAP32[i13 >> 2] = 2;
 21938     break;
 21941  } while (0);
 21942  if ((i25 | 0) == 21) {
 21943   HEAP32[i13 >> 2] = 1;
 21945  HEAP32[i1 + 372 >> 2] = i1 + 148 + ((HEAP32[i12 >> 2] | 0) * 36 | 0);
 21946  i12 = HEAP32[i13 >> 2] | 0;
 21947  if ((i12 | 0) == 0) {
 21948   d48 = +HEAPF32[i17 >> 2];
 21949   d24 = +HEAPF32[i15 >> 2];
 21950   d18 = +HEAPF32[i3 >> 2];
 21951   HEAPF32[i2 >> 2] = +Math_sqrt(+(d48 * d48 + d24 * d24 + d18 * d18));
 21952   STACKTOP = i4;
 21953   return i12 | 0;
 21954  } else if ((i12 | 0) == 1) {
 21955   HEAPF32[i2 >> 2] = 0.0;
 21956   STACKTOP = i4;
 21957   return i12 | 0;
 21958  } else {
 21959   STACKTOP = i4;
 21960   return i12 | 0;
 21962  return 0;
 21964 function __ZN35btSequentialImpulseConstraintSolver22setupContactConstraintER18btSolverConstraintP17btCollisionObjectS3_R15btManifoldPointRK19btContactSolverInfoR9btVector3RfSB_SA_SA_(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11) {
 21965  i1 = i1 | 0;
 21966  i2 = i2 | 0;
 21967  i3 = i3 | 0;
 21968  i4 = i4 | 0;
 21969  i5 = i5 | 0;
 21970  i6 = i6 | 0;
 21971  i7 = i7 | 0;
 21972  i8 = i8 | 0;
 21973  i9 = i9 | 0;
 21974  i10 = i10 | 0;
 21975  i11 = i11 | 0;
 21976  var i12 = 0, i13 = 0, d14 = 0.0, d15 = 0.0, i16 = 0, i17 = 0, i18 = 0, d19 = 0.0, i20 = 0, d21 = 0.0, d22 = 0.0, i23 = 0, d24 = 0.0, d25 = 0.0, d26 = 0.0, i27 = 0, d28 = 0.0, d29 = 0.0, d30 = 0.0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, d35 = 0.0, d36 = 0.0, d37 = 0.0, i38 = 0, i39 = 0, i40 = 0, d41 = 0.0, d42 = 0.0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, d49 = 0.0, d50 = 0.0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0, d55 = 0.0, d56 = 0.0, d57 = 0.0, d58 = 0.0, d59 = 0.0, d60 = 0.0, d61 = 0.0, d62 = 0.0, d63 = 0.0, d64 = 0.0, d65 = 0.0, d66 = 0.0, d67 = 0.0, i68 = 0, i69 = 0, i70 = 0;
 21977  if ((HEAP32[i3 + 232 >> 2] & 2 | 0) == 0) {
 21978   i12 = 0;
 21979  } else {
 21980   i12 = i3;
 21982  if ((HEAP32[i4 + 232 >> 2] & 2 | 0) == 0) {
 21983   i13 = 0;
 21984  } else {
 21985   i13 = i4;
 21987  d14 = +HEAPF32[i5 + 52 >> 2] - +HEAPF32[i3 + 56 >> 2];
 21988  d15 = +HEAPF32[i5 + 56 >> 2] - +HEAPF32[i3 + 60 >> 2];
 21989  i1 = i10 | 0;
 21990  HEAPF32[i1 >> 2] = +HEAPF32[i5 + 48 >> 2] - +HEAPF32[i3 + 52 >> 2];
 21991  i3 = i10 + 4 | 0;
 21992  HEAPF32[i3 >> 2] = d14;
 21993  i16 = i10 + 8 | 0;
 21994  HEAPF32[i16 >> 2] = d15;
 21995  HEAPF32[i10 + 12 >> 2] = 0.0;
 21996  d15 = +HEAPF32[i5 + 36 >> 2] - +HEAPF32[i4 + 56 >> 2];
 21997  d14 = +HEAPF32[i5 + 40 >> 2] - +HEAPF32[i4 + 60 >> 2];
 21998  i10 = i11 | 0;
 21999  HEAPF32[i10 >> 2] = +HEAPF32[i5 + 32 >> 2] - +HEAPF32[i4 + 52 >> 2];
 22000  i4 = i11 + 4 | 0;
 22001  HEAPF32[i4 >> 2] = d15;
 22002  i17 = i11 + 8 | 0;
 22003  HEAPF32[i17 >> 2] = d14;
 22004  HEAPF32[i11 + 12 >> 2] = 0.0;
 22005  HEAPF32[i9 >> 2] = 1.0;
 22006  i11 = i5 + 64 | 0;
 22007  d14 = +HEAPF32[i3 >> 2];
 22008  i18 = i5 + 72 | 0;
 22009  d15 = +HEAPF32[i18 >> 2];
 22010  d19 = +HEAPF32[i16 >> 2];
 22011  i20 = i5 + 68 | 0;
 22012  d21 = +HEAPF32[i20 >> 2];
 22013  d22 = d14 * d15 - d19 * d21;
 22014  i23 = i11 | 0;
 22015  d24 = +HEAPF32[i23 >> 2];
 22016  d25 = +HEAPF32[i1 >> 2];
 22017  d26 = d19 * d24 - d15 * d25;
 22018  d15 = d21 * d25 - d14 * d24;
 22019  i27 = (i12 | 0) != 0;
 22020  if (i27) {
 22021   d28 = (d22 * +HEAPF32[i12 + 256 >> 2] + d26 * +HEAPF32[i12 + 260 >> 2] + d15 * +HEAPF32[i12 + 264 >> 2]) * +HEAPF32[i12 + 536 >> 2];
 22022   d29 = (d22 * +HEAPF32[i12 + 272 >> 2] + d26 * +HEAPF32[i12 + 276 >> 2] + d15 * +HEAPF32[i12 + 280 >> 2]) * +HEAPF32[i12 + 540 >> 2];
 22023   d30 = (d22 * +HEAPF32[i12 + 288 >> 2] + d26 * +HEAPF32[i12 + 292 >> 2] + d15 * +HEAPF32[i12 + 296 >> 2]) * +HEAPF32[i12 + 544 >> 2];
 22024  } else {
 22025   d28 = 0.0;
 22026   d29 = 0.0;
 22027   d30 = 0.0;
 22029  i31 = i2 + 48 | 0;
 22030  HEAPF32[i31 >> 2] = d28;
 22031  i32 = i2 + 52 | 0;
 22032  HEAPF32[i32 >> 2] = d29;
 22033  i33 = i2 + 56 | 0;
 22034  HEAPF32[i33 >> 2] = d30;
 22035  HEAPF32[i2 + 60 >> 2] = 0.0;
 22036  d15 = +HEAPF32[i4 >> 2];
 22037  d26 = +HEAPF32[i18 >> 2];
 22038  d22 = +HEAPF32[i17 >> 2];
 22039  d24 = +HEAPF32[i20 >> 2];
 22040  d14 = +HEAPF32[i23 >> 2];
 22041  d25 = +HEAPF32[i10 >> 2];
 22042  i34 = (i13 | 0) != 0;
 22043  if (i34) {
 22044   d21 = -0.0 - (d15 * d26 - d22 * d24);
 22045   d19 = -0.0 - (d22 * d14 - d26 * d25);
 22046   d26 = -0.0 - (d24 * d25 - d15 * d14);
 22047   d35 = (+HEAPF32[i13 + 256 >> 2] * d21 + +HEAPF32[i13 + 260 >> 2] * d19 + +HEAPF32[i13 + 264 >> 2] * d26) * +HEAPF32[i13 + 536 >> 2];
 22048   d36 = (+HEAPF32[i13 + 272 >> 2] * d21 + +HEAPF32[i13 + 276 >> 2] * d19 + +HEAPF32[i13 + 280 >> 2] * d26) * +HEAPF32[i13 + 540 >> 2];
 22049   d37 = (+HEAPF32[i13 + 288 >> 2] * d21 + +HEAPF32[i13 + 292 >> 2] * d19 + +HEAPF32[i13 + 296 >> 2] * d26) * +HEAPF32[i13 + 544 >> 2];
 22050  } else {
 22051   d35 = 0.0;
 22052   d36 = 0.0;
 22053   d37 = 0.0;
 22055  i38 = i2 + 64 | 0;
 22056  HEAPF32[i38 >> 2] = d35;
 22057  i39 = i2 + 68 | 0;
 22058  HEAPF32[i39 >> 2] = d36;
 22059  i40 = i2 + 72 | 0;
 22060  HEAPF32[i40 >> 2] = d37;
 22061  HEAPF32[i2 + 76 >> 2] = 0.0;
 22062  if (i27) {
 22063   d26 = +HEAPF32[i16 >> 2];
 22064   d19 = +HEAPF32[i3 >> 2];
 22065   d21 = +HEAPF32[i1 >> 2];
 22066   d41 = +HEAPF32[i12 + 336 >> 2] + ((d29 * d26 - d30 * d19) * +HEAPF32[i23 >> 2] + (d30 * d21 - d28 * d26) * +HEAPF32[i20 >> 2] + (d28 * d19 - d29 * d21) * +HEAPF32[i18 >> 2]);
 22067  } else {
 22068   d41 = 0.0;
 22070  if (i34) {
 22071   d21 = -0.0 - d35;
 22072   d35 = -0.0 - d36;
 22073   d36 = -0.0 - d37;
 22074   d37 = +HEAPF32[i17 >> 2];
 22075   d29 = +HEAPF32[i4 >> 2];
 22076   d19 = +HEAPF32[i10 >> 2];
 22077   d42 = +HEAPF32[i13 + 336 >> 2] + ((d37 * d35 - d29 * d36) * +HEAPF32[i23 >> 2] + (d19 * d36 - d37 * d21) * +HEAPF32[i20 >> 2] + (d29 * d21 - d19 * d35) * +HEAPF32[i18 >> 2]);
 22078  } else {
 22079   d42 = 0.0;
 22081  i43 = i2 + 92 | 0;
 22082  HEAPF32[i43 >> 2] = +HEAPF32[i9 >> 2] / (d41 + d42);
 22083  i9 = i2 + 16 | 0;
 22084  i44 = i9;
 22085  i45 = i11;
 22086  HEAP32[i44 >> 2] = HEAP32[i45 >> 2];
 22087  HEAP32[i44 + 4 >> 2] = HEAP32[i45 + 4 >> 2];
 22088  HEAP32[i44 + 8 >> 2] = HEAP32[i45 + 8 >> 2];
 22089  HEAP32[i44 + 12 >> 2] = HEAP32[i45 + 12 >> 2];
 22090  d42 = +HEAPF32[i3 >> 2];
 22091  d41 = +HEAPF32[i18 >> 2];
 22092  d35 = +HEAPF32[i16 >> 2];
 22093  d19 = +HEAPF32[i20 >> 2];
 22094  d21 = +HEAPF32[i23 >> 2];
 22095  d29 = +HEAPF32[i1 >> 2];
 22096  i45 = i2 | 0;
 22097  HEAPF32[i45 >> 2] = d42 * d41 - d35 * d19;
 22098  i44 = i2 + 4 | 0;
 22099  HEAPF32[i44 >> 2] = d35 * d21 - d41 * d29;
 22100  i11 = i2 + 8 | 0;
 22101  HEAPF32[i11 >> 2] = d19 * d29 - d42 * d21;
 22102  HEAPF32[i2 + 12 >> 2] = 0.0;
 22103  d21 = -0.0 - +HEAPF32[i23 >> 2];
 22104  d42 = -0.0 - +HEAPF32[i20 >> 2];
 22105  d29 = -0.0 - +HEAPF32[i18 >> 2];
 22106  d19 = +HEAPF32[i4 >> 2];
 22107  d41 = +HEAPF32[i17 >> 2];
 22108  d35 = +HEAPF32[i10 >> 2];
 22109  i46 = i2 + 32 | 0;
 22110  HEAPF32[i46 >> 2] = d19 * d29 - d41 * d42;
 22111  i47 = i2 + 36 | 0;
 22112  HEAPF32[i47 >> 2] = d41 * d21 - d35 * d29;
 22113  i48 = i2 + 40 | 0;
 22114  HEAPF32[i48 >> 2] = d35 * d42 - d19 * d21;
 22115  HEAPF32[i2 + 44 >> 2] = 0.0;
 22116  if (i27) {
 22117   d21 = +HEAPF32[i12 + 324 >> 2];
 22118   d19 = +HEAPF32[i16 >> 2];
 22119   d42 = +HEAPF32[i12 + 328 >> 2];
 22120   d35 = +HEAPF32[i3 >> 2];
 22121   d29 = +HEAPF32[i1 >> 2];
 22122   d41 = +HEAPF32[i12 + 320 >> 2];
 22123   d49 = d21 * d19 - d42 * d35 + +HEAPF32[i12 + 304 >> 2];
 22124   d50 = +HEAPF32[i12 + 308 >> 2] + (d42 * d29 - d19 * d41);
 22125   d51 = d35 * d41 - d21 * d29 + +HEAPF32[i12 + 312 >> 2];
 22126  } else {
 22127   d49 = 0.0;
 22128   d50 = 0.0;
 22129   d51 = 0.0;
 22131  if (i34) {
 22132   d29 = +HEAPF32[i13 + 324 >> 2];
 22133   d21 = +HEAPF32[i17 >> 2];
 22134   d41 = +HEAPF32[i13 + 328 >> 2];
 22135   d35 = +HEAPF32[i4 >> 2];
 22136   d19 = +HEAPF32[i10 >> 2];
 22137   d42 = +HEAPF32[i13 + 320 >> 2];
 22138   d52 = d29 * d21 - d41 * d35 + +HEAPF32[i13 + 304 >> 2];
 22139   d53 = +HEAPF32[i13 + 308 >> 2] + (d41 * d19 - d21 * d42);
 22140   d54 = d35 * d42 - d29 * d19 + +HEAPF32[i13 + 312 >> 2];
 22141  } else {
 22142   d52 = 0.0;
 22143   d53 = 0.0;
 22144   d54 = 0.0;
 22146  d19 = d49 - d52;
 22147  d52 = d50 - d53;
 22148  d53 = d51 - d54;
 22149  HEAPF32[i7 >> 2] = d19;
 22150  HEAPF32[i7 + 4 >> 2] = d52;
 22151  HEAPF32[i7 + 8 >> 2] = d53;
 22152  HEAPF32[i7 + 12 >> 2] = 0.0;
 22153  HEAPF32[i8 >> 2] = +HEAPF32[i23 >> 2] * d19 + d52 * +HEAPF32[i20 >> 2] + d53 * +HEAPF32[i18 >> 2];
 22154  d53 = +HEAPF32[i5 + 80 >> 2] + +HEAPF32[i6 + 52 >> 2];
 22155  HEAPF32[i2 + 88 >> 2] = +HEAPF32[i5 + 84 >> 2];
 22156  do {
 22157   if ((HEAP32[i5 + 144 >> 2] | 0) > (HEAP32[i6 + 64 >> 2] | 0)) {
 22158    d55 = 0.0;
 22159   } else {
 22160    d52 = +HEAPF32[i5 + 88 >> 2] * (-0.0 - +HEAPF32[i8 >> 2]);
 22161    if (d52 > 0.0) {
 22162     d55 = d52;
 22163     break;
 22165    d55 = 0.0;
 22167  } while (0);
 22168  do {
 22169   if ((HEAP32[i6 + 60 >> 2] & 4 | 0) == 0) {
 22170    HEAPF32[i2 + 84 >> 2] = 0.0;
 22171   } else {
 22172    d52 = +HEAPF32[i5 + 112 >> 2] * +HEAPF32[i6 + 56 >> 2];
 22173    i8 = i2 + 84 | 0;
 22174    HEAPF32[i8 >> 2] = d52;
 22175    do {
 22176     if (i27) {
 22177      d19 = +HEAPF32[i12 + 336 >> 2];
 22178      if (d19 == 0.0) {
 22179       break;
 22181      d54 = d52 * d19 * +HEAPF32[i2 + 20 >> 2] * +HEAPF32[i12 + 344 >> 2];
 22182      d51 = d52 * d19 * +HEAPF32[i2 + 24 >> 2] * +HEAPF32[i12 + 348 >> 2];
 22183      i18 = i12 + 504 | 0;
 22184      HEAPF32[i18 >> 2] = +HEAPF32[i18 >> 2] + d52 * d19 * +HEAPF32[i9 >> 2] * +HEAPF32[i12 + 340 >> 2];
 22185      i18 = i12 + 508 | 0;
 22186      HEAPF32[i18 >> 2] = d54 + +HEAPF32[i18 >> 2];
 22187      i18 = i12 + 512 | 0;
 22188      HEAPF32[i18 >> 2] = d51 + +HEAPF32[i18 >> 2];
 22189      d51 = d52 * +HEAPF32[i12 + 540 >> 2] * +HEAPF32[i32 >> 2];
 22190      d54 = d52 * +HEAPF32[i12 + 544 >> 2] * +HEAPF32[i33 >> 2];
 22191      i18 = i12 + 520 | 0;
 22192      HEAPF32[i18 >> 2] = d52 * +HEAPF32[i12 + 536 >> 2] * +HEAPF32[i31 >> 2] + +HEAPF32[i18 >> 2];
 22193      i18 = i12 + 524 | 0;
 22194      HEAPF32[i18 >> 2] = d51 + +HEAPF32[i18 >> 2];
 22195      i18 = i12 + 528 | 0;
 22196      HEAPF32[i18 >> 2] = d54 + +HEAPF32[i18 >> 2];
 22198    } while (0);
 22199    if (!i34) {
 22200     break;
 22202    d52 = +HEAPF32[i13 + 336 >> 2];
 22203    d54 = -0.0 - +HEAPF32[i8 >> 2];
 22204    if (d52 == 0.0) {
 22205     break;
 22207    d51 = -0.0 - +HEAPF32[i40 >> 2];
 22208    d19 = -0.0 - +HEAPF32[i39 >> 2];
 22209    d50 = -0.0 - +HEAPF32[i38 >> 2];
 22210    d49 = d52 * +HEAPF32[i2 + 20 >> 2] * +HEAPF32[i13 + 344 >> 2] * d54;
 22211    d29 = d52 * +HEAPF32[i2 + 24 >> 2] * +HEAPF32[i13 + 348 >> 2] * d54;
 22212    i18 = i13 + 504 | 0;
 22213    HEAPF32[i18 >> 2] = +HEAPF32[i18 >> 2] + d52 * +HEAPF32[i9 >> 2] * +HEAPF32[i13 + 340 >> 2] * d54;
 22214    i18 = i13 + 508 | 0;
 22215    HEAPF32[i18 >> 2] = d49 + +HEAPF32[i18 >> 2];
 22216    i18 = i13 + 512 | 0;
 22217    HEAPF32[i18 >> 2] = d29 + +HEAPF32[i18 >> 2];
 22218    d29 = +HEAPF32[i13 + 540 >> 2] * d54 * d19;
 22219    d19 = +HEAPF32[i13 + 544 >> 2] * d54 * d51;
 22220    i18 = i13 + 520 | 0;
 22221    HEAPF32[i18 >> 2] = +HEAPF32[i13 + 536 >> 2] * d54 * d50 + +HEAPF32[i18 >> 2];
 22222    i18 = i13 + 524 | 0;
 22223    HEAPF32[i18 >> 2] = d29 + +HEAPF32[i18 >> 2];
 22224    i18 = i13 + 528 | 0;
 22225    HEAPF32[i18 >> 2] = d19 + +HEAPF32[i18 >> 2];
 22227  } while (0);
 22228  HEAPF32[i2 + 80 >> 2] = 0.0;
 22229  if (i27) {
 22230   d56 = +HEAPF32[i12 + 304 >> 2];
 22231   d57 = +HEAPF32[i12 + 308 >> 2];
 22232   d58 = +HEAPF32[i12 + 312 >> 2];
 22233  } else {
 22234   d56 = 0.0;
 22235   d57 = 0.0;
 22236   d58 = 0.0;
 22238  d19 = +HEAPF32[i9 >> 2];
 22239  d29 = +HEAPF32[i2 + 20 >> 2];
 22240  d50 = +HEAPF32[i2 + 24 >> 2];
 22241  if (i27) {
 22242   d59 = +HEAPF32[i12 + 320 >> 2];
 22243   d60 = +HEAPF32[i12 + 324 >> 2];
 22244   d61 = +HEAPF32[i12 + 328 >> 2];
 22245  } else {
 22246   d59 = 0.0;
 22247   d60 = 0.0;
 22248   d61 = 0.0;
 22250  if (i34) {
 22251   d62 = +HEAPF32[i13 + 320 >> 2];
 22252   d63 = +HEAPF32[i13 + 324 >> 2];
 22253   d64 = +HEAPF32[i13 + 328 >> 2];
 22254   d65 = d19 * +HEAPF32[i13 + 304 >> 2] + d29 * +HEAPF32[i13 + 308 >> 2] + d50 * +HEAPF32[i13 + 312 >> 2];
 22255  } else {
 22256   d62 = 0.0;
 22257   d63 = 0.0;
 22258   d64 = 0.0;
 22259   d65 = d19 * 0.0 + d29 * 0.0 + d50 * 0.0;
 22261  d54 = d55 - (d56 * d19 + d57 * d29 + d58 * d50 + (d59 * +HEAPF32[i45 >> 2] + d60 * +HEAPF32[i44 >> 2] + d61 * +HEAPF32[i11 >> 2]) + (d62 * +HEAPF32[i46 >> 2] + d63 * +HEAPF32[i47 >> 2] + d64 * +HEAPF32[i48 >> 2] - d65));
 22262  if (d53 > 0.0) {
 22263   d66 = d54 - d53 / +HEAPF32[i6 + 12 >> 2];
 22264   d67 = 0.0;
 22265  } else {
 22266   d66 = d54;
 22267   d67 = +HEAPF32[i6 + 32 >> 2] * (-0.0 - d53) / +HEAPF32[i6 + 12 >> 2];
 22269  d54 = +HEAPF32[i43 >> 2];
 22270  d65 = d67 * d54;
 22271  d67 = d66 * d54;
 22272  do {
 22273   if ((HEAP32[i6 + 44 >> 2] | 0) != 0) {
 22274    if (d53 > +HEAPF32[i6 + 48 >> 2]) {
 22275     break;
 22277    HEAPF32[i2 + 116 >> 2] = d67;
 22278    HEAPF32[i2 + 132 >> 2] = d65;
 22279    i68 = i2 + 120 | 0;
 22280    HEAPF32[i68 >> 2] = 0.0;
 22281    i69 = i2 + 124 | 0;
 22282    HEAPF32[i69 >> 2] = 0.0;
 22283    i70 = i2 + 128 | 0;
 22284    HEAPF32[i70 >> 2] = 1.0e10;
 22285    return;
 22287  } while (0);
 22288  HEAPF32[i2 + 116 >> 2] = d65 + d67;
 22289  HEAPF32[i2 + 132 >> 2] = 0.0;
 22290  i68 = i2 + 120 | 0;
 22291  HEAPF32[i68 >> 2] = 0.0;
 22292  i69 = i2 + 124 | 0;
 22293  HEAPF32[i69 >> 2] = 0.0;
 22294  i70 = i2 + 128 | 0;
 22295  HEAPF32[i70 >> 2] = 1.0e10;
 22296  return;
 22298 function __ZN20btConvexHullInternal15mergeProjectionERNS_16IntermediateHullES1_RPNS_6VertexES4_(i1, i2, i3, i4, i5) {
 22299  i1 = i1 | 0;
 22300  i2 = i2 | 0;
 22301  i3 = i3 | 0;
 22302  i4 = i4 | 0;
 22303  i5 = i5 | 0;
 22304  var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0;
 22305  i1 = i2 + 12 | 0;
 22306  i6 = HEAP32[i1 >> 2] | 0;
 22307  i7 = HEAP32[i3 + 8 >> 2] | 0;
 22308  L791 : do {
 22309   if ((HEAP32[i6 + 88 >> 2] | 0) == (HEAP32[i7 + 88 >> 2] | 0)) {
 22310    if ((HEAP32[i6 + 92 >> 2] | 0) != (HEAP32[i7 + 92 >> 2] | 0)) {
 22311     break;
 22313    i8 = HEAP32[i7 + 4 >> 2] | 0;
 22314    if ((i8 | 0) == (i7 | 0)) {
 22315     HEAP32[i4 >> 2] = i6;
 22316     i9 = HEAP32[i7 + 8 >> 2] | 0;
 22317     if ((i9 | 0) == 0) {
 22318      i10 = 0;
 22319      i11 = i7;
 22320      HEAP32[i5 >> 2] = i11;
 22321      return i10 | 0;
 22323     i10 = 0;
 22324     i11 = HEAP32[i9 + 12 >> 2] | 0;
 22325     HEAP32[i5 >> 2] = i11;
 22326     return i10 | 0;
 22328    i9 = HEAP32[i7 >> 2] | 0;
 22329    HEAP32[i8 >> 2] = i9;
 22330    HEAP32[i9 + 4 >> 2] = i8;
 22331    i12 = i3 | 0;
 22332    L801 : do {
 22333     if ((i7 | 0) == (HEAP32[i12 >> 2] | 0)) {
 22334      i13 = HEAP32[i9 + 88 >> 2] | 0;
 22335      i14 = HEAP32[i8 + 88 >> 2] | 0;
 22336      do {
 22337       if ((i13 | 0) >= (i14 | 0)) {
 22338        if ((i13 | 0) == (i14 | 0)) {
 22339         if ((HEAP32[i9 + 92 >> 2] | 0) < (HEAP32[i8 + 92 >> 2] | 0)) {
 22340          break;
 22343        HEAP32[i12 >> 2] = i8;
 22344        break L801;
 22346      } while (0);
 22347      HEAP32[i12 >> 2] = i9;
 22349    } while (0);
 22350    i12 = i3 + 4 | 0;
 22351    if ((i7 | 0) != (HEAP32[i12 >> 2] | 0)) {
 22352     break;
 22354    i14 = HEAP32[i9 + 88 >> 2] | 0;
 22355    i13 = HEAP32[i8 + 88 >> 2] | 0;
 22356    do {
 22357     if ((i14 | 0) <= (i13 | 0)) {
 22358      if ((i14 | 0) == (i13 | 0)) {
 22359       if ((HEAP32[i9 + 92 >> 2] | 0) > (HEAP32[i8 + 92 >> 2] | 0)) {
 22360        break;
 22363      HEAP32[i12 >> 2] = i8;
 22364      break L791;
 22366    } while (0);
 22367    HEAP32[i12 >> 2] = i9;
 22369  } while (0);
 22370  i7 = i2 + 4 | 0;
 22371  i6 = i3 + 4 | 0;
 22372  i8 = i2 | 0;
 22373  i2 = i3 | 0;
 22374  i13 = 0;
 22375  i14 = 1;
 22376  i15 = 0;
 22377  i16 = 0;
 22378  i17 = i6;
 22379  i18 = i7;
 22380  L818 : while (1) {
 22381   i19 = i13;
 22382   i20 = HEAP32[i17 >> 2] | 0;
 22383   i21 = HEAP32[i18 >> 2] | 0;
 22384   while (1) {
 22385    i22 = HEAP32[i21 + 88 >> 2] | 0;
 22386    i23 = Math_imul((HEAP32[i20 + 88 >> 2] | 0) - i22 | 0, i14) | 0;
 22387    L822 : do {
 22388     if ((i23 | 0) > 0) {
 22389      i24 = (i19 | 0) != 0;
 22390      i25 = i21;
 22391      i26 = i20;
 22392      i27 = i23;
 22393      i28 = HEAP32[i20 + 92 >> 2] | 0;
 22394      while (1) {
 22395       i29 = i26 + 88 | 0;
 22396       i30 = i25 + 88 | 0;
 22397       i31 = HEAP32[i25 + 92 >> 2] | 0;
 22398       i32 = i28 - i31 | 0;
 22399       i33 = HEAP32[(i24 ? i25 | 0 : i25 + 4 | 0) >> 2] | 0;
 22400       L864 : do {
 22401        if ((i33 | 0) == (i25 | 0)) {
 22402         i34 = i27;
 22403         i35 = i25;
 22404         i36 = i30;
 22405         i37 = i32;
 22406        } else {
 22407         i38 = i29 | 0;
 22408         i39 = i27;
 22409         i40 = i25;
 22410         i41 = i30;
 22411         i42 = i31;
 22412         i43 = i32;
 22413         i44 = i33;
 22414         while (1) {
 22415          i45 = HEAP32[i44 + 88 >> 2] | 0;
 22416          i46 = Math_imul(i45 - (HEAP32[i41 >> 2] | 0) | 0, i14) | 0;
 22417          i47 = HEAP32[i44 + 92 >> 2] | 0;
 22418          i48 = i47 - i42 | 0;
 22419          if ((i48 | 0) >= 1) {
 22420           i34 = i39;
 22421           i35 = i40;
 22422           i36 = i41;
 22423           i37 = i43;
 22424           break L864;
 22426          if ((i46 | 0) != 0) {
 22427           if ((i46 | 0) >= 0) {
 22428            i34 = i39;
 22429            i35 = i40;
 22430            i36 = i41;
 22431            i37 = i43;
 22432            break L864;
 22434           i49 = Math_imul(i48, i39) | 0;
 22435           if ((i49 | 0) > (Math_imul(i46, i43) | 0)) {
 22436            i34 = i39;
 22437            i35 = i40;
 22438            i36 = i41;
 22439            i37 = i43;
 22440            break L864;
 22443          i46 = Math_imul((HEAP32[i38 >> 2] | 0) - i45 | 0, i14) | 0;
 22444          i45 = i44 + 88 | 0;
 22445          i49 = i28 - i47 | 0;
 22446          i48 = HEAP32[(i24 ? i44 | 0 : i44 + 4 | 0) >> 2] | 0;
 22447          if ((i48 | 0) == (i44 | 0)) {
 22448           i34 = i46;
 22449           i35 = i44;
 22450           i36 = i45;
 22451           i37 = i49;
 22452           break;
 22453          } else {
 22454           i39 = i46;
 22455           i40 = i44;
 22456           i41 = i45;
 22457           i42 = i47;
 22458           i43 = i49;
 22459           i44 = i48;
 22463       } while (0);
 22464       i33 = HEAP32[(i24 ? i26 | 0 : i26 + 4 | 0) >> 2] | 0;
 22465       if ((i33 | 0) == (i26 | 0)) {
 22466        i50 = i35;
 22467        i51 = i26;
 22468        break L822;
 22470       i32 = HEAP32[i33 + 88 >> 2] | 0;
 22471       i31 = Math_imul(i32 - (HEAP32[i29 >> 2] | 0) | 0, i14) | 0;
 22472       i30 = HEAP32[i33 + 92 >> 2] | 0;
 22473       i44 = i30 - i28 | 0;
 22474       i43 = Math_imul(i32 - (HEAP32[i36 >> 2] | 0) | 0, i14) | 0;
 22475       if (!((i43 | 0) > 0 & (i44 | 0) < 0)) {
 22476        i50 = i35;
 22477        i51 = i26;
 22478        break L822;
 22480       if ((i31 | 0) == 0) {
 22481        i25 = i35;
 22482        i26 = i33;
 22483        i27 = i43;
 22484        i28 = i30;
 22485        continue;
 22487       if ((i31 | 0) >= 0) {
 22488        i50 = i35;
 22489        i51 = i26;
 22490        break L822;
 22492       i32 = Math_imul(i44, i34) | 0;
 22493       if ((i32 | 0) < (Math_imul(i31, i37) | 0)) {
 22494        i25 = i35;
 22495        i26 = i33;
 22496        i27 = i43;
 22497        i28 = i30;
 22498       } else {
 22499        i50 = i35;
 22500        i51 = i26;
 22501        break;
 22504     } else {
 22505      if ((i23 | 0) < 0) {
 22506       i26 = (i19 | 0) != 0;
 22507       i28 = i21;
 22508       i27 = i20;
 22509       i25 = i23;
 22510       i24 = HEAP32[i20 + 92 >> 2] | 0;
 22511       i30 = HEAP32[i21 + 92 >> 2] | 0;
 22512       while (1) {
 22513        i43 = HEAP32[(i26 ? i27 + 4 | 0 : i27 | 0) >> 2] | 0;
 22514        i33 = (i43 | 0) == (i27 | 0);
 22515        i31 = i27 + 88 | 0;
 22516        i32 = i43 + 88 | 0;
 22517        i44 = i43 + 92 | 0;
 22518        i42 = i28;
 22519        i41 = i25;
 22520        i40 = i30;
 22521        L828 : while (1) {
 22522         i52 = i42 + 88 | 0;
 22523         i39 = i24 - i40 | 0;
 22524         do {
 22525          if (!i33) {
 22526           i53 = HEAP32[i32 >> 2] | 0;
 22527           i38 = Math_imul(i53 - (HEAP32[i31 >> 2] | 0) | 0, i14) | 0;
 22528           i54 = HEAP32[i44 >> 2] | 0;
 22529           i48 = i54 - i24 | 0;
 22530           if ((i48 | 0) <= -1) {
 22531            break;
 22533           if ((i38 | 0) == 0) {
 22534            break L828;
 22536           if ((i38 | 0) >= 0) {
 22537            break;
 22539           i49 = Math_imul(i48, i41) | 0;
 22540           if ((i49 | 0) <= (Math_imul(i38, i39) | 0)) {
 22541            break L828;
 22544         } while (0);
 22545         i38 = HEAP32[(i26 ? i42 + 4 | 0 : i42 | 0) >> 2] | 0;
 22546         if ((i38 | 0) == (i42 | 0)) {
 22547          i50 = i42;
 22548          i51 = i27;
 22549          break L822;
 22551         i49 = HEAP32[i38 + 88 >> 2] | 0;
 22552         i48 = Math_imul(i49 - (HEAP32[i52 >> 2] | 0) | 0, i14) | 0;
 22553         i47 = HEAP32[i38 + 92 >> 2] | 0;
 22554         i45 = i47 - i40 | 0;
 22555         i46 = Math_imul((HEAP32[i31 >> 2] | 0) - i49 | 0, i14) | 0;
 22556         if (!((i46 | 0) < 0 & (i45 | 0) > 0)) {
 22557          i50 = i42;
 22558          i51 = i27;
 22559          break L822;
 22561         if ((i48 | 0) == 0) {
 22562          i42 = i38;
 22563          i41 = i46;
 22564          i40 = i47;
 22565          continue;
 22567         if ((i48 | 0) >= 0) {
 22568          i50 = i42;
 22569          i51 = i27;
 22570          break L822;
 22572         i49 = Math_imul(i45, i41) | 0;
 22573         if ((i49 | 0) < (Math_imul(i48, i39) | 0)) {
 22574          i42 = i38;
 22575          i41 = i46;
 22576          i40 = i47;
 22577         } else {
 22578          i50 = i42;
 22579          i51 = i27;
 22580          break L822;
 22583        i28 = i42;
 22584        i27 = i43;
 22585        i25 = Math_imul(i53 - (HEAP32[i52 >> 2] | 0) | 0, i14) | 0;
 22586        i24 = i54;
 22587        i30 = i40;
 22590      i30 = HEAP32[i21 + 92 >> 2] | 0;
 22591      i24 = (i19 | 0) != 0;
 22592      L842 : do {
 22593       if (i24) {
 22594        i25 = i21;
 22595        i27 = i30;
 22596        while (1) {
 22597         i28 = HEAP32[i25 >> 2] | 0;
 22598         if ((i28 | 0) == (i21 | 0)) {
 22599          i55 = i25;
 22600          break L842;
 22602         if ((HEAP32[i28 + 88 >> 2] | 0) != (i22 | 0)) {
 22603          i55 = i25;
 22604          break L842;
 22606         i26 = HEAP32[i28 + 92 >> 2] | 0;
 22607         if ((i26 | 0) > (i27 | 0)) {
 22608          i55 = i25;
 22609          break;
 22610         } else {
 22611          i25 = i28;
 22612          i27 = i26;
 22615       } else {
 22616        i27 = i21;
 22617        i25 = i30;
 22618        while (1) {
 22619         i40 = HEAP32[i27 + 4 >> 2] | 0;
 22620         if ((i40 | 0) == (i21 | 0)) {
 22621          i55 = i27;
 22622          break L842;
 22624         if ((HEAP32[i40 + 88 >> 2] | 0) != (i22 | 0)) {
 22625          i55 = i27;
 22626          break L842;
 22628         i43 = HEAP32[i40 + 92 >> 2] | 0;
 22629         if ((i43 | 0) > (i25 | 0)) {
 22630          i55 = i27;
 22631          break;
 22632         } else {
 22633          i27 = i40;
 22634          i25 = i43;
 22638      } while (0);
 22639      i30 = HEAP32[i20 + 92 >> 2] | 0;
 22640      if (i24) {
 22641       i25 = i20;
 22642       i27 = i30;
 22643       while (1) {
 22644        i43 = HEAP32[i25 + 4 >> 2] | 0;
 22645        if ((i43 | 0) == (i20 | 0)) {
 22646         i50 = i55;
 22647         i51 = i25;
 22648         break L822;
 22650        if ((HEAP32[i43 + 88 >> 2] | 0) != (i22 | 0)) {
 22651         i50 = i55;
 22652         i51 = i25;
 22653         break L822;
 22655        i40 = HEAP32[i43 + 92 >> 2] | 0;
 22656        if ((i40 | 0) < (i27 | 0)) {
 22657         i50 = i55;
 22658         i51 = i25;
 22659         break;
 22660        } else {
 22661         i25 = i43;
 22662         i27 = i40;
 22665      } else {
 22666       i27 = i20;
 22667       i25 = i30;
 22668       while (1) {
 22669        i24 = HEAP32[i27 >> 2] | 0;
 22670        if ((i24 | 0) == (i20 | 0)) {
 22671         i50 = i55;
 22672         i51 = i27;
 22673         break L822;
 22675        if ((HEAP32[i24 + 88 >> 2] | 0) != (i22 | 0)) {
 22676         i50 = i55;
 22677         i51 = i27;
 22678         break L822;
 22680        i40 = HEAP32[i24 + 92 >> 2] | 0;
 22681        if ((i40 | 0) < (i25 | 0)) {
 22682         i50 = i55;
 22683         i51 = i27;
 22684         break;
 22685        } else {
 22686         i27 = i24;
 22687         i25 = i40;
 22692    } while (0);
 22693    if ((i19 | 0) == 0) {
 22694     i13 = 1;
 22695     i14 = -1;
 22696     i15 = i51;
 22697     i16 = i50;
 22698     i17 = i2;
 22699     i18 = i8;
 22700     continue L818;
 22702    i22 = i19 + 1 | 0;
 22703    if ((i22 | 0) < 2) {
 22704     i19 = i22;
 22705     i20 = i51;
 22706     i21 = i50;
 22707    } else {
 22708     break L818;
 22712  HEAP32[i50 + 4 >> 2] = i51;
 22713  HEAP32[i51 >> 2] = i50;
 22714  HEAP32[i16 >> 2] = i15;
 22715  HEAP32[i15 + 4 >> 2] = i16;
 22716  i50 = HEAP32[i2 >> 2] | 0;
 22717  if ((HEAP32[i50 + 88 >> 2] | 0) < (HEAP32[(HEAP32[i8 >> 2] | 0) + 88 >> 2] | 0)) {
 22718   HEAP32[i8 >> 2] = i50;
 22720  i50 = HEAP32[i6 >> 2] | 0;
 22721  if ((HEAP32[i50 + 88 >> 2] | 0) >= (HEAP32[(HEAP32[i7 >> 2] | 0) + 88 >> 2] | 0)) {
 22722   HEAP32[i7 >> 2] = i50;
 22724  HEAP32[i1 >> 2] = HEAP32[i3 + 12 >> 2];
 22725  HEAP32[i4 >> 2] = i16;
 22726  i10 = 1;
 22727  i11 = i15;
 22728  HEAP32[i5 >> 2] = i11;
 22729  return i10 | 0;
 22731 function __ZN20btConvexHullInternal7computeEPKvbii(i1, i2, i3, i4, i5) {
 22732  i1 = i1 | 0;
 22733  i2 = i2 | 0;
 22734  i3 = i3 | 0;
 22735  i4 = i4 | 0;
 22736  i5 = i5 | 0;
 22737  var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, i19 = 0, i20 = 0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, i34 = 0, d35 = 0.0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, d47 = 0.0, d48 = 0.0, d49 = 0.0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0;
 22738  i6 = STACKTOP;
 22739  STACKTOP = STACKTOP + 88 | 0;
 22740  i7 = i6 | 0;
 22741  i8 = i6 + 24 | 0;
 22742  i9 = i6 + 40 | 0;
 22743  i10 = i6 + 56 | 0;
 22744  i11 = i6 + 72 | 0;
 22745  i12 = (i5 | 0) > 0;
 22746  do {
 22747   if (i3) {
 22748    if (i12) {
 22749     d13 = 1.0000000150474662e+30;
 22750     d14 = 1.0000000150474662e+30;
 22751     d15 = 1.0000000150474662e+30;
 22752     d16 = -1.0000000150474662e+30;
 22753     d17 = -1.0000000150474662e+30;
 22754     d18 = -1.0000000150474662e+30;
 22755     i19 = 0;
 22756     i20 = i2;
 22757    } else {
 22758     d21 = -1.0000000150474662e+30;
 22759     d22 = -1.0000000150474662e+30;
 22760     d23 = -1.0000000150474662e+30;
 22761     d24 = 1.0000000150474662e+30;
 22762     d25 = 1.0000000150474662e+30;
 22763     d26 = 1.0000000150474662e+30;
 22764     break;
 22766    while (1) {
 22767     d27 = +HEAPF64[i20 >> 3];
 22768     d28 = +HEAPF64[i20 + 8 >> 3];
 22769     d29 = +HEAPF64[i20 + 16 >> 3];
 22770     d30 = d27 < d15 ? d27 : d15;
 22771     d31 = d28 < d14 ? d28 : d14;
 22772     d32 = d29 < d13 ? d29 : d13;
 22773     d33 = d18 < d27 ? d27 : d18;
 22774     d27 = d17 < d28 ? d28 : d17;
 22775     d28 = d16 < d29 ? d29 : d16;
 22776     i34 = i19 + 1 | 0;
 22777     if ((i34 | 0) < (i5 | 0)) {
 22778      d13 = d32;
 22779      d14 = d31;
 22780      d15 = d30;
 22781      d16 = d28;
 22782      d17 = d27;
 22783      d18 = d33;
 22784      i19 = i34;
 22785      i20 = i20 + i4 | 0;
 22786     } else {
 22787      d21 = d33;
 22788      d22 = d27;
 22789      d23 = d28;
 22790      d24 = d30;
 22791      d25 = d31;
 22792      d26 = d32;
 22793      break;
 22796   } else {
 22797    if (i12) {
 22798     d35 = 1.0000000150474662e+30;
 22799     d36 = 1.0000000150474662e+30;
 22800     d37 = 1.0000000150474662e+30;
 22801     d38 = -1.0000000150474662e+30;
 22802     d39 = -1.0000000150474662e+30;
 22803     d40 = -1.0000000150474662e+30;
 22804     i41 = 0;
 22805     i42 = i2;
 22806    } else {
 22807     d21 = -1.0000000150474662e+30;
 22808     d22 = -1.0000000150474662e+30;
 22809     d23 = -1.0000000150474662e+30;
 22810     d24 = 1.0000000150474662e+30;
 22811     d25 = 1.0000000150474662e+30;
 22812     d26 = 1.0000000150474662e+30;
 22813     break;
 22815    while (1) {
 22816     d32 = +HEAPF32[i42 >> 2];
 22817     d31 = +HEAPF32[i42 + 4 >> 2];
 22818     d30 = +HEAPF32[i42 + 8 >> 2];
 22819     d28 = d32 < d37 ? d32 : d37;
 22820     d27 = d31 < d36 ? d31 : d36;
 22821     d33 = d30 < d35 ? d30 : d35;
 22822     d29 = d40 < d32 ? d32 : d40;
 22823     d32 = d39 < d31 ? d31 : d39;
 22824     d31 = d38 < d30 ? d30 : d38;
 22825     i34 = i41 + 1 | 0;
 22826     if ((i34 | 0) < (i5 | 0)) {
 22827      d35 = d33;
 22828      d36 = d27;
 22829      d37 = d28;
 22830      d38 = d31;
 22831      d39 = d32;
 22832      d40 = d29;
 22833      i41 = i34;
 22834      i42 = i42 + i4 | 0;
 22835     } else {
 22836      d21 = d29;
 22837      d22 = d32;
 22838      d23 = d31;
 22839      d24 = d28;
 22840      d25 = d27;
 22841      d26 = d33;
 22842      break;
 22846  } while (0);
 22847  d40 = d21 - d24;
 22848  d39 = d22 - d25;
 22849  d38 = d23 - d26;
 22850  if (d40 < d39) {
 22851   i42 = i1 + 112 | 0;
 22852   HEAP32[i42 >> 2] = d39 < d38 ? 2 : 1;
 22853   i43 = d40 < d38 ? 0 : 2;
 22854   i44 = i42;
 22855  } else {
 22856   i42 = i1 + 112 | 0;
 22857   HEAP32[i42 >> 2] = d40 < d38 ? 2 : 0;
 22858   i43 = d39 < d38 ? 1 : 2;
 22859   i44 = i42;
 22861  i42 = i1 + 104 | 0;
 22862  HEAP32[i42 >> 2] = i43;
 22863  i41 = HEAP32[i44 >> 2] | 0;
 22864  if ((i43 | 0) == (i41 | 0)) {
 22865   i20 = ((i43 + 1 | 0) >>> 0) % 3 | 0;
 22866   HEAP32[i42 >> 2] = i20;
 22867   i45 = HEAP32[i44 >> 2] | 0;
 22868   i46 = i20;
 22869  } else {
 22870   i45 = i41;
 22871   i46 = i43;
 22873  i43 = i1 + 108 | 0;
 22874  HEAP32[i43 >> 2] = 3 - i46 - i45;
 22875  d37 = d40 * 9788566967472434.0e-20;
 22876  d40 = d39 * 9788566967472434.0e-20;
 22877  d39 = d38 * 9788566967472434.0e-20;
 22878  HEAPF32[i1 >> 2] = d37;
 22879  HEAPF32[i1 + 4 >> 2] = d40;
 22880  HEAPF32[i1 + 8 >> 2] = d39;
 22881  HEAPF32[i1 + 12 >> 2] = 0.0;
 22882  if (d37 > 0.0) {
 22883   d47 = 1.0 / d37;
 22884  } else {
 22885   d47 = d37;
 22887  if (d40 > 0.0) {
 22888   d48 = 1.0 / d40;
 22889  } else {
 22890   d48 = d40;
 22892  if (d39 > 0.0) {
 22893   d49 = 1.0 / d39;
 22894  } else {
 22895   d49 = d39;
 22897  i45 = i1 + 16 | 0;
 22898  HEAPF32[i1 + 16 >> 2] = (d24 + d21) * .5;
 22899  i46 = i1 + 20 | 0;
 22900  HEAPF32[i46 >> 2] = (d25 + d22) * .5;
 22901  i41 = i1 + 24 | 0;
 22902  HEAPF32[i41 >> 2] = (d26 + d23) * .5;
 22903  HEAPF32[i1 + 28 >> 2] = 0.0;
 22904  i20 = i7 + 16 | 0;
 22905  HEAP8[i20] = 1;
 22906  i19 = i7 + 12 | 0;
 22907  HEAP32[i19 >> 2] = 0;
 22908  i34 = i7 + 4 | 0;
 22909  HEAP32[i34 >> 2] = 0;
 22910  i50 = i7 + 8 | 0;
 22911  HEAP32[i50 >> 2] = 0;
 22912  L1398 : do {
 22913   if (i12) {
 22914    i51 = __Z22btAlignedAllocInternalji(i5 << 4, 16) | 0;
 22915    i52 = HEAP32[i34 >> 2] | 0;
 22916    if ((i52 | 0) > 0) {
 22917     i53 = 0;
 22918     do {
 22919      i54 = i51 + (i53 << 4) | 0;
 22920      if ((i54 | 0) != 0) {
 22921       i55 = i54;
 22922       i54 = (HEAP32[i19 >> 2] | 0) + (i53 << 4) | 0;
 22923       HEAP32[i55 >> 2] = HEAP32[i54 >> 2];
 22924       HEAP32[i55 + 4 >> 2] = HEAP32[i54 + 4 >> 2];
 22925       HEAP32[i55 + 8 >> 2] = HEAP32[i54 + 8 >> 2];
 22926       HEAP32[i55 + 12 >> 2] = HEAP32[i54 + 12 >> 2];
 22928      i53 = i53 + 1 | 0;
 22929     } while ((i53 | 0) < (i52 | 0));
 22931    i52 = HEAP32[i19 >> 2] | 0;
 22932    if ((i52 | 0) != 0) {
 22933     if ((HEAP8[i20] | 0) != 0) {
 22934      __Z21btAlignedFreeInternalPv(i52);
 22936     HEAP32[i19 >> 2] = 0;
 22938    HEAP8[i20] = 1;
 22939    HEAP32[i19 >> 2] = i51;
 22940    HEAP32[i50 >> 2] = i5;
 22941    i52 = i8;
 22942    i53 = 0;
 22943    i54 = i51;
 22944    while (1) {
 22945     i55 = i54 + (i53 << 4) | 0;
 22946     if ((i55 | 0) != 0) {
 22947      i56 = i55;
 22948      HEAP32[i56 >> 2] = HEAP32[i52 >> 2];
 22949      HEAP32[i56 + 4 >> 2] = HEAP32[i52 + 4 >> 2];
 22950      HEAP32[i56 + 8 >> 2] = HEAP32[i52 + 8 >> 2];
 22951      HEAP32[i56 + 12 >> 2] = HEAP32[i52 + 12 >> 2];
 22953     i56 = i53 + 1 | 0;
 22954     if ((i56 | 0) >= (i5 | 0)) {
 22955      break L1398;
 22957     i53 = i56;
 22958     i54 = HEAP32[i19 >> 2] | 0;
 22961  } while (0);
 22962  HEAP32[i34 >> 2] = i5;
 22963  L1421 : do {
 22964   if (i3) {
 22965    if (!i12) {
 22966     break;
 22968    i8 = i9 | 0;
 22969    i54 = i9 + 4 | 0;
 22970    i53 = i9 + 8 | 0;
 22971    i52 = i9 + 12 | 0;
 22972    i51 = HEAP32[i19 >> 2] | 0;
 22973    d23 = +HEAPF32[i45 >> 2];
 22974    d26 = +HEAPF32[i46 >> 2];
 22975    d22 = +HEAPF32[i41 >> 2];
 22976    i56 = 0;
 22977    i55 = i2;
 22978    while (1) {
 22979     d25 = d48 * (+HEAPF64[i55 + 8 >> 3] - d26);
 22980     d21 = d49 * (+HEAPF64[i55 + 16 >> 3] - d22);
 22981     HEAPF32[i8 >> 2] = d47 * (+HEAPF64[i55 >> 3] - d23);
 22982     HEAPF32[i54 >> 2] = d25;
 22983     HEAPF32[i53 >> 2] = d21;
 22984     HEAPF32[i52 >> 2] = 0.0;
 22985     HEAP32[i51 + (i56 << 4) >> 2] = ~~+HEAPF32[i9 + (HEAP32[i43 >> 2] << 2) >> 2];
 22986     HEAP32[i51 + (i56 << 4) + 4 >> 2] = ~~+HEAPF32[i9 + (HEAP32[i44 >> 2] << 2) >> 2];
 22987     HEAP32[i51 + (i56 << 4) + 8 >> 2] = ~~+HEAPF32[i9 + (HEAP32[i42 >> 2] << 2) >> 2];
 22988     HEAP32[i51 + (i56 << 4) + 12 >> 2] = i56;
 22989     i57 = i56 + 1 | 0;
 22990     if ((i57 | 0) >= (i5 | 0)) {
 22991      break L1421;
 22993     i56 = i57;
 22994     i55 = i55 + i4 | 0;
 22996   } else {
 22997    if (!i12) {
 22998     break;
 23000    i55 = i10 | 0;
 23001    i56 = i10 + 4 | 0;
 23002    i51 = i10 + 8 | 0;
 23003    i52 = i10 + 12 | 0;
 23004    i53 = HEAP32[i19 >> 2] | 0;
 23005    d23 = +HEAPF32[i45 >> 2];
 23006    d22 = +HEAPF32[i46 >> 2];
 23007    d26 = +HEAPF32[i41 >> 2];
 23008    i54 = 0;
 23009    i8 = i2;
 23010    while (1) {
 23011     d21 = +HEAPF32[i8 >> 2];
 23012     HEAPF32[i55 >> 2] = d21;
 23013     d25 = +HEAPF32[i8 + 4 >> 2];
 23014     HEAPF32[i56 >> 2] = d25;
 23015     d24 = d49 * (+HEAPF32[i8 + 8 >> 2] - d26);
 23016     HEAPF32[i55 >> 2] = d47 * (d21 - d23);
 23017     HEAPF32[i56 >> 2] = d48 * (d25 - d22);
 23018     HEAPF32[i51 >> 2] = d24;
 23019     HEAPF32[i52 >> 2] = 0.0;
 23020     HEAP32[i53 + (i54 << 4) >> 2] = ~~+HEAPF32[i10 + (HEAP32[i43 >> 2] << 2) >> 2];
 23021     HEAP32[i53 + (i54 << 4) + 4 >> 2] = ~~+HEAPF32[i10 + (HEAP32[i44 >> 2] << 2) >> 2];
 23022     HEAP32[i53 + (i54 << 4) + 8 >> 2] = ~~+HEAPF32[i10 + (HEAP32[i42 >> 2] << 2) >> 2];
 23023     HEAP32[i53 + (i54 << 4) + 12 >> 2] = i54;
 23024     i57 = i54 + 1 | 0;
 23025     if ((i57 | 0) >= (i5 | 0)) {
 23026      break L1421;
 23028     i54 = i57;
 23029     i8 = i8 + i4 | 0;
 23032  } while (0);
 23033  i4 = HEAP32[i34 >> 2] | 0;
 23034  if ((i4 | 0) > 1) {
 23035   __ZN20btAlignedObjectArrayIN20btConvexHullInternal7Point32EE17quickSortInternalIPFbRKS1_S5_EEEvT_ii(i7, 14, 0, i4 - 1 | 0);
 23037  i4 = i1 + 32 | 0;
 23038  HEAP32[i1 + 36 >> 2] = HEAP32[i4 >> 2];
 23039  HEAP32[i1 + 40 >> 2] = 0;
 23040  HEAP32[i1 + 44 >> 2] = i5;
 23041  i7 = i1 + 84 | 0;
 23042  i42 = HEAP32[i7 >> 2] | 0;
 23043  if ((i42 | 0) < (i5 | 0)) {
 23044   i10 = i1 + 88 | 0;
 23045   if ((HEAP32[i10 >> 2] | 0) < (i5 | 0)) {
 23046    if ((i5 | 0) == 0) {
 23047     i58 = 0;
 23048     i59 = i42;
 23049    } else {
 23050     i44 = __Z22btAlignedAllocInternalji(i5 << 2, 16) | 0;
 23051     i58 = i44;
 23052     i59 = HEAP32[i7 >> 2] | 0;
 23054    i44 = i1 + 92 | 0;
 23055    if ((i59 | 0) > 0) {
 23056     i43 = 0;
 23057     do {
 23058      i2 = i58 + (i43 << 2) | 0;
 23059      if ((i2 | 0) != 0) {
 23060       HEAP32[i2 >> 2] = HEAP32[(HEAP32[i44 >> 2] | 0) + (i43 << 2) >> 2];
 23062      i43 = i43 + 1 | 0;
 23063     } while ((i43 | 0) < (i59 | 0));
 23065    i59 = HEAP32[i44 >> 2] | 0;
 23066    i43 = i1 + 96 | 0;
 23067    if ((i59 | 0) != 0) {
 23068     if ((HEAP8[i43] | 0) != 0) {
 23069      __Z21btAlignedFreeInternalPv(i59);
 23071     HEAP32[i44 >> 2] = 0;
 23073    HEAP8[i43] = 1;
 23074    HEAP32[i44 >> 2] = i58;
 23075    HEAP32[i10 >> 2] = i5;
 23076    i60 = i44;
 23077   } else {
 23078    i60 = i1 + 92 | 0;
 23080   i44 = i42;
 23081   do {
 23082    i42 = (HEAP32[i60 >> 2] | 0) + (i44 << 2) | 0;
 23083    if ((i42 | 0) != 0) {
 23084     HEAP32[i42 >> 2] = 0;
 23086    i44 = i44 + 1 | 0;
 23087   } while ((i44 | 0) < (i5 | 0));
 23089  HEAP32[i7 >> 2] = i5;
 23090  if (i12) {
 23091   i12 = i1 + 92 | 0;
 23092   i7 = 0;
 23093   do {
 23094    i44 = __ZN20btConvexHullInternal4PoolINS_6VertexEE9newObjectEv(i4) | 0;
 23095    HEAP32[i44 + 8 >> 2] = 0;
 23096    i60 = i44 + 88 | 0;
 23097    i42 = (HEAP32[i19 >> 2] | 0) + (i7 << 4) | 0;
 23098    HEAP32[i60 >> 2] = HEAP32[i42 >> 2];
 23099    HEAP32[i60 + 4 >> 2] = HEAP32[i42 + 4 >> 2];
 23100    HEAP32[i60 + 8 >> 2] = HEAP32[i42 + 8 >> 2];
 23101    HEAP32[i60 + 12 >> 2] = HEAP32[i42 + 12 >> 2];
 23102    HEAP32[i44 + 104 >> 2] = -1;
 23103    HEAP32[(HEAP32[i12 >> 2] | 0) + (i7 << 2) >> 2] = i44;
 23104    i7 = i7 + 1 | 0;
 23105   } while ((i7 | 0) < (i5 | 0));
 23107  i7 = HEAP32[i19 >> 2] | 0;
 23108  if ((i7 | 0) != 0) {
 23109   if ((HEAP8[i20] | 0) != 0) {
 23110    __Z21btAlignedFreeInternalPv(i7);
 23112   HEAP32[i19 >> 2] = 0;
 23114  HEAP8[i20] = 1;
 23115  HEAP32[i19 >> 2] = 0;
 23116  HEAP32[i34 >> 2] = 0;
 23117  HEAP32[i50 >> 2] = 0;
 23118  HEAP32[i1 + 52 >> 2] = HEAP32[i1 + 48 >> 2];
 23119  HEAP32[i1 + 56 >> 2] = 0;
 23120  HEAP32[i1 + 60 >> 2] = i5 * 6 | 0;
 23121  HEAP32[i1 + 116 >> 2] = 0;
 23122  HEAP32[i1 + 120 >> 2] = 0;
 23123  HEAP32[i1 + 100 >> 2] = -3;
 23124  _memset(i11 | 0, 0, 16);
 23125  __ZN20btConvexHullInternal15computeInternalEiiRNS_16IntermediateHullE(i1, 0, i5, i11);
 23126  HEAP32[i1 + 124 >> 2] = HEAP32[i11 >> 2];
 23127  i11 = HEAP32[i19 >> 2] | 0;
 23128  if ((i11 | 0) == 0) {
 23129   STACKTOP = i6;
 23130   return;
 23132  if ((HEAP8[i20] | 0) != 0) {
 23133   __Z21btAlignedFreeInternalPv(i11);
 23135  HEAP32[i19 >> 2] = 0;
 23136  STACKTOP = i6;
 23137  return;
 23139 function __ZN35btSequentialImpulseConstraintSolver14convertContactEP20btPersistentManifoldRK19btContactSolverInfo(i1, i2, i3) {
 23140  i1 = i1 | 0;
 23141  i2 = i2 | 0;
 23142  i3 = i3 | 0;
 23143  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, d52 = 0.0, d53 = 0.0, d54 = 0.0, d55 = 0.0, d56 = 0.0, d57 = 0.0, d58 = 0.0, i59 = 0, i60 = 0, i61 = 0, d62 = 0.0, d63 = 0.0, i64 = 0, d65 = 0.0;
 23144  i4 = STACKTOP;
 23145  STACKTOP = STACKTOP + 128 | 0;
 23146  i5 = i4 | 0;
 23147  i6 = i4 + 16 | 0;
 23148  i7 = i4 + 32 | 0;
 23149  i8 = i4 + 48 | 0;
 23150  i9 = i4 + 64 | 0;
 23151  i10 = i4 + 80 | 0;
 23152  i11 = i4 + 96 | 0;
 23153  i12 = i4 + 104 | 0;
 23154  i13 = i4 + 112 | 0;
 23155  i14 = HEAP32[i2 + 1108 >> 2] | 0;
 23156  i15 = i14;
 23157  i16 = HEAP32[i2 + 1112 >> 2] | 0;
 23158  i17 = i16;
 23159  i18 = i14 + 232 | 0;
 23160  if ((HEAP32[i18 >> 2] & 2 | 0) == 0) {
 23161   i19 = 0;
 23162  } else {
 23163   i19 = i14;
 23165  i20 = i16 + 232 | 0;
 23166  if ((HEAP32[i20 >> 2] & 2 | 0) == 0) {
 23167   i21 = 0;
 23168  } else {
 23169   i21 = i16;
 23171  if ((i19 | 0) == 0) {
 23172   i22 = 1360;
 23173  } else {
 23174   if (+HEAPF32[i19 + 336 >> 2] == 0.0) {
 23175    i22 = 1360;
 23178  do {
 23179   if ((i22 | 0) == 1360) {
 23180    if ((i21 | 0) == 0) {
 23181     STACKTOP = i4;
 23182     return;
 23184    if (+HEAPF32[i21 + 336 >> 2] != 0.0) {
 23185     break;
 23187    STACKTOP = i4;
 23188    return;
 23190  } while (0);
 23191  i21 = i2 + 1116 | 0;
 23192  i19 = HEAP32[i21 >> 2] | 0;
 23193  if ((i19 | 0) <= 0) {
 23194   STACKTOP = i4;
 23195   return;
 23197  i23 = i2 + 1124 | 0;
 23198  i24 = i1 + 8 | 0;
 23199  i25 = i1 + 12 | 0;
 23200  i26 = i1 + 16 | 0;
 23201  i27 = i1 + 20 | 0;
 23202  i28 = i1 + 48 | 0;
 23203  i29 = i3 + 60 | 0;
 23204  i30 = i13 | 0;
 23205  i31 = i13 + 4 | 0;
 23206  i32 = i13 + 8 | 0;
 23207  i33 = i16;
 23208  i16 = i14;
 23209  i14 = i7;
 23210  i34 = i8;
 23211  i35 = i5;
 23212  i36 = i6;
 23213  i37 = 0;
 23214  i38 = i19;
 23215  while (1) {
 23216   i19 = i2 + 4 + (i37 * 276 | 0) | 0;
 23217   if (+HEAPF32[i2 + 4 + (i37 * 276 | 0) + 80 >> 2] > +HEAPF32[i23 >> 2]) {
 23218    i39 = i38;
 23219   } else {
 23220    i40 = HEAP32[i24 >> 2] | 0;
 23221    do {
 23222     if ((i40 | 0) == (HEAP32[i25 >> 2] | 0)) {
 23223      i41 = (i40 | 0) == 0 ? 1 : i40 << 1;
 23224      if ((i40 | 0) >= (i41 | 0)) {
 23225       i42 = i40;
 23226       break;
 23228      if ((i41 | 0) == 0) {
 23229       i43 = 0;
 23230       i44 = i40;
 23231      } else {
 23232       i45 = __Z22btAlignedAllocInternalji(i41 * 136 | 0, 16) | 0;
 23233       i43 = i45;
 23234       i44 = HEAP32[i24 >> 2] | 0;
 23236      if ((i44 | 0) > 0) {
 23237       i45 = 0;
 23238       do {
 23239        i46 = i43 + (i45 * 136 | 0) | 0;
 23240        i47 = (HEAP32[i26 >> 2] | 0) + (i45 * 136 | 0) | 0;
 23241        _memcpy(i46 | 0, i47 | 0, 136) | 0;
 23242        i45 = i45 + 1 | 0;
 23243       } while ((i45 | 0) < (i44 | 0));
 23245      i45 = HEAP32[i26 >> 2] | 0;
 23246      if ((i45 | 0) != 0) {
 23247       if ((HEAP8[i27] | 0) != 0) {
 23248        __Z21btAlignedFreeInternalPv(i45);
 23250       HEAP32[i26 >> 2] = 0;
 23252      HEAP8[i27] = 1;
 23253      HEAP32[i26 >> 2] = i43;
 23254      HEAP32[i25 >> 2] = i41;
 23255      i42 = HEAP32[i24 >> 2] | 0;
 23256     } else {
 23257      i42 = i40;
 23259    } while (0);
 23260    HEAP32[i24 >> 2] = i42 + 1;
 23261    i45 = HEAP32[i26 >> 2] | 0;
 23262    i47 = i45 + (i40 * 136 | 0) | 0;
 23263    i46 = (HEAP32[i18 >> 2] & 2 | 0) == 0 ? 0 : i16;
 23264    i48 = (HEAP32[i20 >> 2] & 2 | 0) == 0 ? 0 : i33;
 23265    if ((i46 | 0) == 0) {
 23266     do {
 23267      if ((HEAP8[14328] | 0) == 0) {
 23268       if ((___cxa_guard_acquire(14328) | 0) == 0) {
 23269        break;
 23271       _memset(i14 | 0, 0, 16);
 23272       __ZN11btRigidBodyC2EfP13btMotionStateP16btCollisionShapeRK9btVector3(12536, 0.0, 0, 0, i7);
 23273       _atexit(268, 12536, ___dso_handle | 0) | 0;
 23275     } while (0);
 23276     _memset(i34 | 0, 0, 16);
 23277     __ZN11btRigidBody12setMassPropsEfRK9btVector3(12536, 0.0, i8);
 23278     i49 = 12536;
 23279    } else {
 23280     i49 = i46;
 23282    HEAP32[i45 + (i40 * 136 | 0) + 104 >> 2] = i49;
 23283    if ((i48 | 0) == 0) {
 23284     do {
 23285      if ((HEAP8[14328] | 0) == 0) {
 23286       if ((___cxa_guard_acquire(14328) | 0) == 0) {
 23287        break;
 23289       _memset(i35 | 0, 0, 16);
 23290       __ZN11btRigidBodyC2EfP13btMotionStateP16btCollisionShapeRK9btVector3(12536, 0.0, 0, 0, i5);
 23291       _atexit(268, 12536, ___dso_handle | 0) | 0;
 23293     } while (0);
 23294     _memset(i36 | 0, 0, 16);
 23295     __ZN11btRigidBody12setMassPropsEfRK9btVector3(12536, 0.0, i6);
 23296     i50 = 12536;
 23297    } else {
 23298     i50 = i48;
 23300    HEAP32[i45 + (i40 * 136 | 0) + 108 >> 2] = i50;
 23301    HEAP32[i45 + (i40 * 136 | 0) + 112 >> 2] = i19;
 23302    __ZN35btSequentialImpulseConstraintSolver22setupContactConstraintER18btSolverConstraintP17btCollisionObjectS3_R15btManifoldPointRK19btContactSolverInfoR9btVector3RfSB_SA_SA_(0, i47, i15, i17, i19, i3, i13, i12, i11, i9, i10);
 23303    HEAP32[i45 + (i40 * 136 | 0) + 100 >> 2] = HEAP32[i28 >> 2];
 23304    do {
 23305     if ((HEAP32[i29 >> 2] & 32 | 0) == 0) {
 23306      i22 = 1392;
 23307     } else {
 23308      if ((HEAP8[i2 + 4 + (i37 * 276 | 0) + 116 | 0] | 0) == 0) {
 23309       i22 = 1392;
 23310       break;
 23312      i51 = i2 + 4 + (i37 * 276 | 0) + 148 | 0;
 23313      d52 = +HEAPF32[i11 >> 2];
 23314      d53 = +HEAPF32[i2 + 4 + (i37 * 276 | 0) + 128 >> 2];
 23315      d54 = +HEAPF32[i2 + 4 + (i37 * 276 | 0) + 136 >> 2];
 23316      __ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i1, i51, 0, 0, i40, i19, i9, i10, i15, i17, d52, d53, d54) | 0;
 23317      if ((HEAP32[i29 >> 2] & 16 | 0) == 0) {
 23318       break;
 23320      i51 = i2 + 4 + (i37 * 276 | 0) + 164 | 0;
 23321      d54 = +HEAPF32[i2 + 4 + (i37 * 276 | 0) + 132 >> 2];
 23322      d53 = +HEAPF32[i2 + 4 + (i37 * 276 | 0) + 140 >> 2];
 23323      __ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i1, i51, 0, 0, i40, i19, i9, i10, i15, i17, d52, d54, d53) | 0;
 23325    } while (0);
 23326    do {
 23327     if ((i22 | 0) == 1392) {
 23328      i22 = 0;
 23329      i45 = i2 + 4 + (i37 * 276 | 0) + 148 | 0;
 23330      d53 = +HEAPF32[i2 + 4 + (i37 * 276 | 0) + 64 >> 2];
 23331      d54 = +HEAPF32[i12 >> 2];
 23332      d52 = +HEAPF32[i2 + 4 + (i37 * 276 | 0) + 68 >> 2];
 23333      d55 = +HEAPF32[i2 + 4 + (i37 * 276 | 0) + 72 >> 2];
 23334      d56 = +HEAPF32[i30 >> 2] - d53 * d54;
 23335      d57 = +HEAPF32[i31 >> 2] - d54 * d52;
 23336      d58 = +HEAPF32[i32 >> 2] - d54 * d55;
 23337      HEAPF32[i2 + 4 + (i37 * 276 | 0) + 148 >> 2] = d56;
 23338      i51 = i2 + 4 + (i37 * 276 | 0) + 152 | 0;
 23339      HEAPF32[i51 >> 2] = d57;
 23340      i59 = i2 + 4 + (i37 * 276 | 0) + 156 | 0;
 23341      HEAPF32[i59 >> 2] = d58;
 23342      HEAPF32[i2 + 4 + (i37 * 276 | 0) + 160 >> 2] = 0.0;
 23343      i60 = i45 | 0;
 23344      d54 = d56 * d56 + d57 * d57 + d58 * d58;
 23345      i61 = HEAP32[i29 >> 2] | 0;
 23346      if ((i61 & 64 | 0) == 0 & d54 > 1.1920928955078125e-7) {
 23347       d62 = 1.0 / +Math_sqrt(+d54);
 23348       d54 = d56 * d62;
 23349       HEAPF32[i60 >> 2] = d54;
 23350       d56 = d57 * d62;
 23351       HEAPF32[i51 >> 2] = d56;
 23352       d57 = d58 * d62;
 23353       HEAPF32[i59 >> 2] = d57;
 23354       if ((i61 & 16 | 0) == 0) {
 23355        d63 = +HEAPF32[i11 >> 2];
 23356       } else {
 23357        i64 = i2 + 4 + (i37 * 276 | 0) + 164 | 0;
 23358        d62 = d55 * d56 - d52 * d57;
 23359        d58 = d53 * d57 - d55 * d54;
 23360        d57 = d52 * d54 - d53 * d56;
 23361        HEAPF32[i2 + 4 + (i37 * 276 | 0) + 164 >> 2] = d62;
 23362        HEAPF32[i2 + 4 + (i37 * 276 | 0) + 176 >> 2] = 0.0;
 23363        d56 = 1.0 / +Math_sqrt(+(d57 * d57 + (d62 * d62 + d58 * d58)));
 23364        HEAPF32[i64 >> 2] = d62 * d56;
 23365        HEAPF32[i2 + 4 + (i37 * 276 | 0) + 168 >> 2] = d58 * d56;
 23366        HEAPF32[i2 + 4 + (i37 * 276 | 0) + 172 >> 2] = d57 * d56;
 23367        __Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i15, i64);
 23368        __Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i17, i64);
 23369        d56 = +HEAPF32[i11 >> 2];
 23370        __ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i1, i64, 0, 0, i40, i19, i9, i10, i15, i17, d56, 0.0, 0.0) | 0;
 23371        d63 = d56;
 23373       __Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i15, i45);
 23374       __Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i17, i45);
 23375       __ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i1, i45, 0, 0, i40, i19, i9, i10, i15, i17, d63, 0.0, 0.0) | 0;
 23376       HEAP8[i2 + 4 + (i37 * 276 | 0) + 116 | 0] = 1;
 23377       break;
 23379      i64 = i2 + 4 + (i37 * 276 | 0) + 164 | 0;
 23380      if (+Math_abs(+d55) > .7071067690849304) {
 23381       d56 = d52 * d52 + d55 * d55;
 23382       d57 = 1.0 / +Math_sqrt(+d56);
 23383       HEAPF32[i60 >> 2] = 0.0;
 23384       d58 = d57 * (-0.0 - d55);
 23385       HEAPF32[i51 >> 2] = d58;
 23386       d62 = d52 * d57;
 23387       HEAPF32[i59 >> 2] = d62;
 23388       HEAPF32[i64 >> 2] = d56 * d57;
 23389       HEAPF32[i2 + 4 + (i37 * 276 | 0) + 168 >> 2] = d62 * (-0.0 - d53);
 23390       HEAPF32[i2 + 4 + (i37 * 276 | 0) + 172 >> 2] = d53 * d58;
 23391      } else {
 23392       d58 = d53 * d53 + d52 * d52;
 23393       d62 = 1.0 / +Math_sqrt(+d58);
 23394       d57 = d62 * (-0.0 - d52);
 23395       HEAPF32[i60 >> 2] = d57;
 23396       d52 = d53 * d62;
 23397       HEAPF32[i51 >> 2] = d52;
 23398       HEAPF32[i59 >> 2] = 0.0;
 23399       HEAPF32[i64 >> 2] = d52 * (-0.0 - d55);
 23400       HEAPF32[i2 + 4 + (i37 * 276 | 0) + 168 >> 2] = d55 * d57;
 23401       HEAPF32[i2 + 4 + (i37 * 276 | 0) + 172 >> 2] = d58 * d62;
 23403      if ((i61 & 16 | 0) == 0) {
 23404       d65 = +HEAPF32[i11 >> 2];
 23405      } else {
 23406       __Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i15, i64);
 23407       __Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i17, i64);
 23408       d62 = +HEAPF32[i11 >> 2];
 23409       __ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i1, i64, 0, 0, i40, i19, i9, i10, i15, i17, d62, 0.0, 0.0) | 0;
 23410       d65 = d62;
 23412      __Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i15, i45);
 23413      __Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i17, i45);
 23414      __ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i1, i45, 0, 0, i40, i19, i9, i10, i15, i17, d65, 0.0, 0.0) | 0;
 23415      HEAP8[i2 + 4 + (i37 * 276 | 0) + 116 | 0] = 1;
 23417    } while (0);
 23418    __ZN35btSequentialImpulseConstraintSolver28setFrictionConstraintImpulseER18btSolverConstraintP11btRigidBodyS3_R15btManifoldPointRK19btContactSolverInfo(i1, i47, i46, i48, i19, i3);
 23419    i39 = HEAP32[i21 >> 2] | 0;
 23421   i40 = i37 + 1 | 0;
 23422   if ((i40 | 0) < (i39 | 0)) {
 23423    i37 = i40;
 23424    i38 = i39;
 23425   } else {
 23426    break;
 23429  STACKTOP = i4;
 23430  return;
 23432 function __ZNK20btConvexHullInternal6Vertex3dotERKNS_7Point64E(i1, i2, i3) {
 23433  i1 = i1 | 0;
 23434  i2 = i2 | 0;
 23435  i3 = i3 | 0;
 23436  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0;
 23437  if ((HEAP32[i2 + 100 >> 2] | 0) > -1) {
 23438   i4 = HEAP32[i2 + 88 >> 2] | 0;
 23439   i5 = i3 | 0;
 23440   i6 = ___muldi3(i4, (i4 | 0) < 0 ? -1 : 0, HEAP32[i5 >> 2] | 0, HEAP32[i5 + 4 >> 2] | 0) | 0;
 23441   i5 = tempRet0;
 23442   i4 = HEAP32[i2 + 92 >> 2] | 0;
 23443   i7 = i3 + 8 | 0;
 23444   i8 = ___muldi3(i4, (i4 | 0) < 0 ? -1 : 0, HEAP32[i7 >> 2] | 0, HEAP32[i7 + 4 >> 2] | 0) | 0;
 23445   i7 = _i64Add(i8, tempRet0, i6, i5) | 0;
 23446   i5 = tempRet0;
 23447   i6 = HEAP32[i2 + 96 >> 2] | 0;
 23448   i8 = i3 + 16 | 0;
 23449   i4 = ___muldi3(i6, (i6 | 0) < 0 ? -1 : 0, HEAP32[i8 >> 2] | 0, HEAP32[i8 + 4 >> 2] | 0) | 0;
 23450   i8 = _i64Add(i7, i5, i4, tempRet0) | 0;
 23451   i4 = tempRet0;
 23452   i5 = 0;
 23453   do {
 23454    if ((i4 | 0) > (i5 | 0) | (i4 | 0) == (i5 | 0) & i8 >>> 0 > 0 >>> 0) {
 23455     HEAP32[i1 + 32 >> 2] = 1;
 23456     i7 = i1 | 0;
 23457     HEAP32[i7 >> 2] = i8;
 23458     HEAP32[i7 + 4 >> 2] = i4;
 23459     i7 = i1 + 8 | 0;
 23460     HEAP32[i7 >> 2] = i4 >> 31 | ((i4 | 0) < 0 ? -1 : 0) << 1;
 23461     HEAP32[i7 + 4 >> 2] = ((i4 | 0) < 0 ? -1 : 0) >> 31 | ((i4 | 0) < 0 ? -1 : 0) << 1;
 23462    } else {
 23463     i7 = 0;
 23464     i6 = i1 + 32 | 0;
 23465     if ((i4 | 0) < (i7 | 0) | (i4 | 0) == (i7 | 0) & i8 >>> 0 < 0 >>> 0) {
 23466      HEAP32[i6 >> 2] = -1;
 23467      i7 = _i64Subtract(0, 0, i8, i4) | 0;
 23468      i9 = tempRet0;
 23469      i10 = i1 | 0;
 23470      HEAP32[i10 >> 2] = i7;
 23471      HEAP32[i10 + 4 >> 2] = i9;
 23472      i10 = i1 + 8 | 0;
 23473      HEAP32[i10 >> 2] = i9 >> 31 | ((i9 | 0) < 0 ? -1 : 0) << 1;
 23474      HEAP32[i10 + 4 >> 2] = ((i9 | 0) < 0 ? -1 : 0) >> 31 | ((i9 | 0) < 0 ? -1 : 0) << 1;
 23475      break;
 23476     } else {
 23477      HEAP32[i6 >> 2] = 0;
 23478      _memset(i1 | 0, 0, 16);
 23479      break;
 23482   } while (0);
 23483   i4 = i1 + 16 | 0;
 23484   HEAP32[i4 >> 2] = 1;
 23485   HEAP32[i4 + 4 >> 2] = 0;
 23486   i4 = i1 + 24 | 0;
 23487   HEAP32[i4 >> 2] = 0;
 23488   HEAP32[i4 + 4 >> 2] = 0;
 23489   HEAP8[i1 + 36 | 0] = 1;
 23490   return;
 23492  i4 = i3 | 0;
 23493  i8 = HEAP32[i4 >> 2] | 0;
 23494  i5 = HEAP32[i4 + 4 >> 2] | 0;
 23495  i4 = i2 + 32 | 0;
 23496  i6 = HEAP32[i4 >> 2] | 0;
 23497  i9 = HEAP32[i4 + 4 >> 2] | 0;
 23498  i4 = 0;
 23499  i10 = (i9 | 0) < (i4 | 0) | (i9 | 0) == (i4 | 0) & i6 >>> 0 < 0 >>> 0;
 23500  i4 = i2 + 24 | 0;
 23501  i7 = HEAP32[i4 >> 2] | 0;
 23502  i11 = HEAP32[i4 + 4 >> 2] | 0;
 23503  if (i10) {
 23504   i4 = _i64Subtract(0, 0, i7, i11) | 0;
 23505   i12 = tempRet0;
 23506   i13 = _i64Add((i7 | 0) == 0 & (i11 | 0) == 0 & 1, 0, ~i6, ~i9) | 0;
 23507   i14 = i12;
 23508   i15 = i4;
 23509   i16 = tempRet0;
 23510   i17 = i13;
 23511  } else {
 23512   i14 = i11;
 23513   i15 = i7;
 23514   i16 = i9;
 23515   i17 = i6;
 23517  i6 = 0;
 23518  if ((i5 | 0) < (i6 | 0) | (i5 | 0) == (i6 | 0) & i8 >>> 0 < 0 >>> 0) {
 23519   i6 = _i64Subtract(0, 0, i8, i5) | 0;
 23520   i18 = i10 ^ 1;
 23521   i19 = tempRet0;
 23522   i20 = i6;
 23523  } else {
 23524   i18 = i10;
 23525   i19 = i5;
 23526   i20 = i8;
 23528  i8 = i15 | 0;
 23529  i15 = i14 & 0;
 23530  i5 = i20 | 0;
 23531  i10 = i19 & 0;
 23532  i6 = ___muldi3(i5, i10, i8, i15) | 0;
 23533  i9 = tempRet0;
 23534  i7 = i19;
 23535  i11 = 0;
 23536  i13 = ___muldi3(i7, i11, i8, i15) | 0;
 23537  i15 = tempRet0;
 23538  i8 = i14;
 23539  i14 = 0;
 23540  i4 = ___muldi3(i5, i10, i8, i14) | 0;
 23541  i10 = tempRet0;
 23542  i5 = ___muldi3(i7, i11, i8, i14) | 0;
 23543  i14 = tempRet0;
 23544  i8 = _i64Add(i13 | 0, i15 & 0, i4 | 0, i10 & 0) | 0;
 23545  i4 = tempRet0;
 23546  i13 = _llvm_uadd_with_overflow_i64(i6 | 0, i9 | 0, 0, i8 | 0) | 0;
 23547  i8 = i13;
 23548  i13 = tempRet0;
 23549  i9 = tempRet1 & 1;
 23550  i6 = ___muldi3(i20, i19, i17, i16) | 0;
 23551  i16 = _i64Add(i5, i14, i6, tempRet0) | 0;
 23552  i6 = _i64Add(i16, tempRet0, i15, 0) | 0;
 23553  i15 = _i64Add(i6, tempRet0, i10, 0) | 0;
 23554  i10 = _i64Add(i15, tempRet0, i9, 0) | 0;
 23555  i9 = _i64Add(i10, tempRet0, i4, 0) | 0;
 23556  i4 = tempRet0;
 23557  if (i18) {
 23558   i18 = _i64Subtract(0, 0, i8, i13) | 0;
 23559   i10 = tempRet0;
 23560   i15 = _i64Add((i8 | 0) == 0 & (i13 | 0) == 0 & 1, 0, ~i9, ~i4) | 0;
 23561   i21 = i10;
 23562   i22 = i18;
 23563   i23 = tempRet0;
 23564   i24 = i15;
 23565  } else {
 23566   i21 = i13;
 23567   i22 = i8;
 23568   i23 = i4;
 23569   i24 = i9;
 23571  i9 = i3 + 8 | 0;
 23572  i4 = HEAP32[i9 >> 2] | 0;
 23573  i8 = HEAP32[i9 + 4 >> 2] | 0;
 23574  i9 = i2 + 48 | 0;
 23575  i13 = HEAP32[i9 >> 2] | 0;
 23576  i15 = HEAP32[i9 + 4 >> 2] | 0;
 23577  i9 = 0;
 23578  i18 = (i15 | 0) < (i9 | 0) | (i15 | 0) == (i9 | 0) & i13 >>> 0 < 0 >>> 0;
 23579  i9 = i2 + 40 | 0;
 23580  i10 = HEAP32[i9 >> 2] | 0;
 23581  i6 = HEAP32[i9 + 4 >> 2] | 0;
 23582  if (i18) {
 23583   i9 = _i64Subtract(0, 0, i10, i6) | 0;
 23584   i16 = tempRet0;
 23585   i14 = _i64Add((i10 | 0) == 0 & (i6 | 0) == 0 & 1, 0, ~i13, ~i15) | 0;
 23586   i25 = i16;
 23587   i26 = i9;
 23588   i27 = tempRet0;
 23589   i28 = i14;
 23590  } else {
 23591   i25 = i6;
 23592   i26 = i10;
 23593   i27 = i15;
 23594   i28 = i13;
 23596  i13 = 0;
 23597  if ((i8 | 0) < (i13 | 0) | (i8 | 0) == (i13 | 0) & i4 >>> 0 < 0 >>> 0) {
 23598   i13 = _i64Subtract(0, 0, i4, i8) | 0;
 23599   i29 = i18 ^ 1;
 23600   i30 = tempRet0;
 23601   i31 = i13;
 23602  } else {
 23603   i29 = i18;
 23604   i30 = i8;
 23605   i31 = i4;
 23607  i4 = i26 | 0;
 23608  i26 = i25 & 0;
 23609  i8 = i31 | 0;
 23610  i18 = i30 & 0;
 23611  i13 = ___muldi3(i8, i18, i4, i26) | 0;
 23612  i15 = tempRet0;
 23613  i10 = i30;
 23614  i6 = 0;
 23615  i14 = ___muldi3(i10, i6, i4, i26) | 0;
 23616  i26 = tempRet0;
 23617  i4 = i25;
 23618  i25 = 0;
 23619  i9 = ___muldi3(i8, i18, i4, i25) | 0;
 23620  i18 = tempRet0;
 23621  i8 = ___muldi3(i10, i6, i4, i25) | 0;
 23622  i25 = tempRet0;
 23623  i4 = _i64Add(i14 | 0, i26 & 0, i9 | 0, i18 & 0) | 0;
 23624  i9 = tempRet0;
 23625  i14 = _llvm_uadd_with_overflow_i64(i13 | 0, i15 | 0, 0, i4 | 0) | 0;
 23626  i4 = i14;
 23627  i14 = tempRet0;
 23628  i15 = tempRet1 & 1;
 23629  i13 = ___muldi3(i31, i30, i28, i27) | 0;
 23630  i27 = _i64Add(i8, i25, i13, tempRet0) | 0;
 23631  i13 = _i64Add(i27, tempRet0, i26, 0) | 0;
 23632  i26 = _i64Add(i13, tempRet0, i18, 0) | 0;
 23633  i18 = _i64Add(i26, tempRet0, i15, 0) | 0;
 23634  i15 = _i64Add(i18, tempRet0, i9, 0) | 0;
 23635  i9 = tempRet0;
 23636  if (i29) {
 23637   i29 = _i64Subtract(0, 0, i4, i14) | 0;
 23638   i18 = tempRet0;
 23639   i26 = _i64Add((i4 | 0) == 0 & (i14 | 0) == 0 & 1, 0, ~i15, ~i9) | 0;
 23640   i32 = i18;
 23641   i33 = i29;
 23642   i34 = tempRet0;
 23643   i35 = i26;
 23644  } else {
 23645   i32 = i14;
 23646   i33 = i4;
 23647   i34 = i9;
 23648   i35 = i15;
 23650  i15 = _llvm_uadd_with_overflow_i64(i22 | 0, i21 | 0, i33 | 0, i32 | 0) | 0;
 23651  i32 = tempRet1;
 23652  i33 = tempRet0;
 23653  i21 = _i64Add(i35, i34, i24, i23) | 0;
 23654  i23 = _i64Add(i21, tempRet0, i32 & 1, 0) | 0;
 23655  i32 = tempRet0;
 23656  i21 = i3 + 16 | 0;
 23657  i3 = HEAP32[i21 >> 2] | 0;
 23658  i24 = HEAP32[i21 + 4 >> 2] | 0;
 23659  i21 = i2 + 64 | 0;
 23660  i34 = HEAP32[i21 >> 2] | 0;
 23661  i35 = HEAP32[i21 + 4 >> 2] | 0;
 23662  i21 = 0;
 23663  i22 = (i35 | 0) < (i21 | 0) | (i35 | 0) == (i21 | 0) & i34 >>> 0 < 0 >>> 0;
 23664  i21 = i2 + 56 | 0;
 23665  i9 = HEAP32[i21 >> 2] | 0;
 23666  i4 = HEAP32[i21 + 4 >> 2] | 0;
 23667  if (i22) {
 23668   i21 = _i64Subtract(0, 0, i9, i4) | 0;
 23669   i14 = tempRet0;
 23670   i26 = _i64Add((i9 | 0) == 0 & (i4 | 0) == 0 & 1, 0, ~i34, ~i35) | 0;
 23671   i36 = i14;
 23672   i37 = i21;
 23673   i38 = tempRet0;
 23674   i39 = i26;
 23675  } else {
 23676   i36 = i4;
 23677   i37 = i9;
 23678   i38 = i35;
 23679   i39 = i34;
 23681  i34 = 0;
 23682  if ((i24 | 0) < (i34 | 0) | (i24 | 0) == (i34 | 0) & i3 >>> 0 < 0 >>> 0) {
 23683   i34 = _i64Subtract(0, 0, i3, i24) | 0;
 23684   i40 = i22 ^ 1;
 23685   i41 = tempRet0;
 23686   i42 = i34;
 23687  } else {
 23688   i40 = i22;
 23689   i41 = i24;
 23690   i42 = i3;
 23692  i3 = i37 | 0;
 23693  i37 = i36 & 0;
 23694  i24 = i42 | 0;
 23695  i22 = i41 & 0;
 23696  i34 = ___muldi3(i24, i22, i3, i37) | 0;
 23697  i35 = tempRet0;
 23698  i9 = i41;
 23699  i4 = 0;
 23700  i26 = ___muldi3(i9, i4, i3, i37) | 0;
 23701  i37 = tempRet0;
 23702  i3 = i36;
 23703  i36 = 0;
 23704  i21 = ___muldi3(i24, i22, i3, i36) | 0;
 23705  i22 = tempRet0;
 23706  i24 = ___muldi3(i9, i4, i3, i36) | 0;
 23707  i36 = tempRet0;
 23708  i3 = _i64Add(i26 | 0, i37 & 0, i21 | 0, i22 & 0) | 0;
 23709  i21 = tempRet0;
 23710  i26 = _llvm_uadd_with_overflow_i64(i34 | 0, i35 | 0, 0, i3 | 0) | 0;
 23711  i3 = i26;
 23712  i26 = tempRet0;
 23713  i35 = tempRet1 & 1;
 23714  i34 = ___muldi3(i42, i41, i39, i38) | 0;
 23715  i38 = _i64Add(i24, i36, i34, tempRet0) | 0;
 23716  i34 = _i64Add(i38, tempRet0, i37, 0) | 0;
 23717  i37 = _i64Add(i34, tempRet0, i22, 0) | 0;
 23718  i22 = _i64Add(i37, tempRet0, i35, 0) | 0;
 23719  i35 = _i64Add(i22, tempRet0, i21, 0) | 0;
 23720  i21 = tempRet0;
 23721  if (i40) {
 23722   i40 = _i64Subtract(0, 0, i3, i26) | 0;
 23723   i22 = tempRet0;
 23724   i37 = _i64Add((i3 | 0) == 0 & (i26 | 0) == 0 & 1, 0, ~i35, ~i21) | 0;
 23725   i43 = i22;
 23726   i44 = i40;
 23727   i45 = tempRet0;
 23728   i46 = i37;
 23729  } else {
 23730   i43 = i26;
 23731   i44 = i3;
 23732   i45 = i21;
 23733   i46 = i35;
 23735  i35 = _llvm_uadd_with_overflow_i64(i15 | 0, i33 | 0, i44 | 0, i43 | 0) | 0;
 23736  i43 = tempRet1;
 23737  i44 = i35;
 23738  i35 = tempRet0;
 23739  i33 = _i64Add(i23, i32, i46, i45) | 0;
 23740  i45 = _i64Add(i33, tempRet0, i43 & 1, 0) | 0;
 23741  i43 = tempRet0;
 23742  i33 = i2 + 72 | 0;
 23743  i46 = i1 + 16 | 0;
 23744  i32 = 0;
 23745  if ((i43 | 0) < (i32 | 0) | (i43 | 0) == (i32 | 0) & i45 >>> 0 < 0 >>> 0) {
 23746   i32 = i1 + 32 | 0;
 23747   HEAP32[i32 >> 2] = -1;
 23748   i23 = _i64Subtract(0, 0, i44, i35) | 0;
 23749   i15 = tempRet0;
 23750   i21 = _i64Add((i44 | 0) == 0 & (i35 | 0) == 0 & 1, 0, ~i45, ~i43) | 0;
 23751   i3 = i1 | 0;
 23752   HEAP32[i3 >> 2] = i23;
 23753   HEAP32[i3 + 4 >> 2] = i15;
 23754   i15 = i1 + 8 | 0;
 23755   HEAP32[i15 >> 2] = i21;
 23756   HEAP32[i15 + 4 >> 2] = tempRet0;
 23757   i47 = i32;
 23758   i48 = -1;
 23759  } else {
 23760   if ((i45 | 0) == 0 & (i43 | 0) == 0) {
 23761    i49 = ((i44 | 0) != 0 | (i35 | 0) != 0) & 1;
 23762   } else {
 23763    i49 = 1;
 23765   i32 = i1 + 32 | 0;
 23766   HEAP32[i32 >> 2] = i49;
 23767   i15 = i1 | 0;
 23768   HEAP32[i15 >> 2] = i44;
 23769   HEAP32[i15 + 4 >> 2] = i35;
 23770   i35 = i1 + 8 | 0;
 23771   HEAP32[i35 >> 2] = i45;
 23772   HEAP32[i35 + 4 >> 2] = i43;
 23773   i47 = i32;
 23774   i48 = i49;
 23776  i49 = i2 + 80 | 0;
 23777  i2 = HEAP32[i49 >> 2] | 0;
 23778  i32 = HEAP32[i49 + 4 >> 2] | 0;
 23779  i49 = 0;
 23780  if ((i32 | 0) < (i49 | 0) | (i32 | 0) == (i49 | 0) & i2 >>> 0 < 0 >>> 0) {
 23781   HEAP32[i47 >> 2] = -i48;
 23782   i48 = i33 | 0;
 23783   i47 = HEAP32[i48 >> 2] | 0;
 23784   i49 = HEAP32[i48 + 4 >> 2] | 0;
 23785   i48 = _i64Subtract(0, 0, i47, i49) | 0;
 23786   i43 = tempRet0;
 23787   i35 = _i64Add((i47 | 0) == 0 & (i49 | 0) == 0 & 1, 0, ~i2, ~i32) | 0;
 23788   i32 = i1 + 16 | 0;
 23789   HEAP32[i32 >> 2] = i48;
 23790   HEAP32[i32 + 4 >> 2] = i43;
 23791   i43 = i1 + 24 | 0;
 23792   HEAP32[i43 >> 2] = i35;
 23793   HEAP32[i43 + 4 >> 2] = tempRet0;
 23794  } else {
 23795   i43 = i46;
 23796   i46 = i33;
 23797   HEAP32[i43 >> 2] = HEAP32[i46 >> 2];
 23798   HEAP32[i43 + 4 >> 2] = HEAP32[i46 + 4 >> 2];
 23799   HEAP32[i43 + 8 >> 2] = HEAP32[i46 + 8 >> 2];
 23800   HEAP32[i43 + 12 >> 2] = HEAP32[i46 + 12 >> 2];
 23802  HEAP8[i1 + 36 | 0] = 0;
 23803  return;
 23805 function __ZN12gjkepa2_impl3GJK13EncloseOriginEv(i1) {
 23806  i1 = i1 | 0;
 23807  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, d16 = 0.0, d17 = 0.0, d18 = 0.0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, d41 = 0.0, d42 = 0.0;
 23808  i2 = STACKTOP;
 23809  STACKTOP = STACKTOP + 112 | 0;
 23810  i3 = i2 | 0;
 23811  i4 = i2 + 16 | 0;
 23812  i5 = i2 + 32 | 0;
 23813  i6 = i2 + 48 | 0;
 23814  i7 = i2 + 64 | 0;
 23815  i8 = i2 + 80 | 0;
 23816  i9 = i2 + 96 | 0;
 23817  i10 = i1 + 372 | 0;
 23818  i11 = HEAP32[i10 >> 2] | 0;
 23819  i12 = i11 + 32 | 0;
 23820  i13 = HEAP32[i12 >> 2] | 0;
 23821  L165 : do {
 23822   if ((i13 | 0) == 2) {
 23823    i14 = HEAP32[i11 + 4 >> 2] | 0;
 23824    i15 = HEAP32[i11 >> 2] | 0;
 23825    d16 = +HEAPF32[i14 + 16 >> 2] - +HEAPF32[i15 + 16 >> 2];
 23826    d17 = +HEAPF32[i14 + 20 >> 2] - +HEAPF32[i15 + 20 >> 2];
 23827    d18 = +HEAPF32[i14 + 24 >> 2] - +HEAPF32[i15 + 24 >> 2];
 23828    i15 = i5 | 0;
 23829    i14 = i5 + 4 | 0;
 23830    i19 = i5 + 8 | 0;
 23831    i20 = i6 | 0;
 23832    i21 = i6 + 4 | 0;
 23833    i22 = i6 + 8 | 0;
 23834    i23 = i6 + 12 | 0;
 23835    i24 = i1 + 364 | 0;
 23836    i25 = i7 | 0;
 23837    i26 = i7 + 4 | 0;
 23838    i27 = i7 + 8 | 0;
 23839    i28 = i7 + 12 | 0;
 23840    i29 = i5;
 23841    i30 = 0;
 23842    while (1) {
 23843     _memset(i29 | 0, 0, 16);
 23844     HEAPF32[i5 + (i30 << 2) >> 2] = 1.0;
 23845     d31 = +HEAPF32[i19 >> 2];
 23846     d32 = +HEAPF32[i14 >> 2];
 23847     d33 = d17 * d31 - d18 * d32;
 23848     d34 = +HEAPF32[i15 >> 2];
 23849     d35 = d18 * d34 - d16 * d31;
 23850     d31 = d16 * d32 - d17 * d34;
 23851     HEAPF32[i20 >> 2] = d33;
 23852     HEAPF32[i21 >> 2] = d35;
 23853     HEAPF32[i22 >> 2] = d31;
 23854     HEAPF32[i23 >> 2] = 0.0;
 23855     if (d31 * d31 + (d33 * d33 + d35 * d35) > 0.0) {
 23856      i36 = HEAP32[i10 >> 2] | 0;
 23857      i37 = i36 + 32 | 0;
 23858      HEAPF32[i36 + 16 + (HEAP32[i37 >> 2] << 2) >> 2] = 0.0;
 23859      i38 = (HEAP32[i24 >> 2] | 0) - 1 | 0;
 23860      HEAP32[i24 >> 2] = i38;
 23861      HEAP32[i36 + (HEAP32[i37 >> 2] << 2) >> 2] = HEAP32[i1 + 348 + (i38 << 2) >> 2];
 23862      i38 = HEAP32[i37 >> 2] | 0;
 23863      HEAP32[i37 >> 2] = i38 + 1;
 23864      __ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i1, i6, HEAP32[i36 + (i38 << 2) >> 2] | 0);
 23865      if (__ZN12gjkepa2_impl3GJK13EncloseOriginEv(i1) | 0) {
 23866       i39 = 1;
 23867       i40 = 143;
 23868       break;
 23870      i38 = HEAP32[i10 >> 2] | 0;
 23871      i36 = i38 + 32 | 0;
 23872      i37 = (HEAP32[i36 >> 2] | 0) - 1 | 0;
 23873      HEAP32[i36 >> 2] = i37;
 23874      i36 = HEAP32[i38 + (i37 << 2) >> 2] | 0;
 23875      i37 = HEAP32[i24 >> 2] | 0;
 23876      HEAP32[i24 >> 2] = i37 + 1;
 23877      HEAP32[i1 + 348 + (i37 << 2) >> 2] = i36;
 23878      i36 = HEAP32[i10 >> 2] | 0;
 23879      d35 = -0.0 - +HEAPF32[i21 >> 2];
 23880      d33 = -0.0 - +HEAPF32[i22 >> 2];
 23881      HEAPF32[i25 >> 2] = -0.0 - +HEAPF32[i20 >> 2];
 23882      HEAPF32[i26 >> 2] = d35;
 23883      HEAPF32[i27 >> 2] = d33;
 23884      HEAPF32[i28 >> 2] = 0.0;
 23885      i37 = i36 + 32 | 0;
 23886      HEAPF32[i36 + 16 + (HEAP32[i37 >> 2] << 2) >> 2] = 0.0;
 23887      i38 = (HEAP32[i24 >> 2] | 0) - 1 | 0;
 23888      HEAP32[i24 >> 2] = i38;
 23889      HEAP32[i36 + (HEAP32[i37 >> 2] << 2) >> 2] = HEAP32[i1 + 348 + (i38 << 2) >> 2];
 23890      i38 = HEAP32[i37 >> 2] | 0;
 23891      HEAP32[i37 >> 2] = i38 + 1;
 23892      __ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i1, i7, HEAP32[i36 + (i38 << 2) >> 2] | 0);
 23893      if (__ZN12gjkepa2_impl3GJK13EncloseOriginEv(i1) | 0) {
 23894       i39 = 1;
 23895       i40 = 144;
 23896       break;
 23898      i38 = HEAP32[i10 >> 2] | 0;
 23899      i36 = i38 + 32 | 0;
 23900      i37 = (HEAP32[i36 >> 2] | 0) - 1 | 0;
 23901      HEAP32[i36 >> 2] = i37;
 23902      i36 = HEAP32[i38 + (i37 << 2) >> 2] | 0;
 23903      i37 = HEAP32[i24 >> 2] | 0;
 23904      HEAP32[i24 >> 2] = i37 + 1;
 23905      HEAP32[i1 + 348 + (i37 << 2) >> 2] = i36;
 23907     i30 = i30 + 1 | 0;
 23908     if (i30 >>> 0 >= 3) {
 23909      break L165;
 23912    if ((i40 | 0) == 143) {
 23913     STACKTOP = i2;
 23914     return i39 | 0;
 23915    } else if ((i40 | 0) == 144) {
 23916     STACKTOP = i2;
 23917     return i39 | 0;
 23919   } else if ((i13 | 0) == 3) {
 23920    i30 = HEAP32[i11 + 4 >> 2] | 0;
 23921    i24 = HEAP32[i11 >> 2] | 0;
 23922    d17 = +HEAPF32[i24 + 16 >> 2];
 23923    d16 = +HEAPF32[i30 + 16 >> 2] - d17;
 23924    d18 = +HEAPF32[i24 + 20 >> 2];
 23925    d33 = +HEAPF32[i30 + 20 >> 2] - d18;
 23926    d35 = +HEAPF32[i24 + 24 >> 2];
 23927    d31 = +HEAPF32[i30 + 24 >> 2] - d35;
 23928    i30 = HEAP32[i11 + 8 >> 2] | 0;
 23929    d34 = +HEAPF32[i30 + 16 >> 2] - d17;
 23930    d17 = +HEAPF32[i30 + 20 >> 2] - d18;
 23931    d18 = +HEAPF32[i30 + 24 >> 2] - d35;
 23932    d35 = d33 * d18 - d31 * d17;
 23933    d32 = d31 * d34 - d16 * d18;
 23934    d18 = d16 * d17 - d33 * d34;
 23935    i30 = i8 | 0;
 23936    HEAPF32[i30 >> 2] = d35;
 23937    i24 = i8 + 4 | 0;
 23938    HEAPF32[i24 >> 2] = d32;
 23939    i28 = i8 + 8 | 0;
 23940    HEAPF32[i28 >> 2] = d18;
 23941    HEAPF32[i8 + 12 >> 2] = 0.0;
 23942    if (d18 * d18 + (d35 * d35 + d32 * d32) <= 0.0) {
 23943     break;
 23945    HEAPF32[i11 + 28 >> 2] = 0.0;
 23946    i27 = i1 + 364 | 0;
 23947    i26 = (HEAP32[i27 >> 2] | 0) - 1 | 0;
 23948    HEAP32[i27 >> 2] = i26;
 23949    HEAP32[i11 + (HEAP32[i12 >> 2] << 2) >> 2] = HEAP32[i1 + 348 + (i26 << 2) >> 2];
 23950    i26 = HEAP32[i12 >> 2] | 0;
 23951    HEAP32[i12 >> 2] = i26 + 1;
 23952    __ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i1, i8, HEAP32[i11 + (i26 << 2) >> 2] | 0);
 23953    if (__ZN12gjkepa2_impl3GJK13EncloseOriginEv(i1) | 0) {
 23954     i39 = 1;
 23955     STACKTOP = i2;
 23956     return i39 | 0;
 23958    i26 = HEAP32[i10 >> 2] | 0;
 23959    i20 = i26 + 32 | 0;
 23960    i25 = (HEAP32[i20 >> 2] | 0) - 1 | 0;
 23961    HEAP32[i20 >> 2] = i25;
 23962    i20 = HEAP32[i26 + (i25 << 2) >> 2] | 0;
 23963    i25 = HEAP32[i27 >> 2] | 0;
 23964    HEAP32[i27 >> 2] = i25 + 1;
 23965    HEAP32[i1 + 348 + (i25 << 2) >> 2] = i20;
 23966    i20 = HEAP32[i10 >> 2] | 0;
 23967    d32 = -0.0 - +HEAPF32[i24 >> 2];
 23968    d35 = -0.0 - +HEAPF32[i28 >> 2];
 23969    HEAPF32[i9 >> 2] = -0.0 - +HEAPF32[i30 >> 2];
 23970    HEAPF32[i9 + 4 >> 2] = d32;
 23971    HEAPF32[i9 + 8 >> 2] = d35;
 23972    HEAPF32[i9 + 12 >> 2] = 0.0;
 23973    i30 = i20 + 32 | 0;
 23974    HEAPF32[i20 + 16 + (HEAP32[i30 >> 2] << 2) >> 2] = 0.0;
 23975    i28 = (HEAP32[i27 >> 2] | 0) - 1 | 0;
 23976    HEAP32[i27 >> 2] = i28;
 23977    HEAP32[i20 + (HEAP32[i30 >> 2] << 2) >> 2] = HEAP32[i1 + 348 + (i28 << 2) >> 2];
 23978    i28 = HEAP32[i30 >> 2] | 0;
 23979    HEAP32[i30 >> 2] = i28 + 1;
 23980    __ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i1, i9, HEAP32[i20 + (i28 << 2) >> 2] | 0);
 23981    if (__ZN12gjkepa2_impl3GJK13EncloseOriginEv(i1) | 0) {
 23982     i39 = 1;
 23983     STACKTOP = i2;
 23984     return i39 | 0;
 23985    } else {
 23986     i28 = HEAP32[i10 >> 2] | 0;
 23987     i20 = i28 + 32 | 0;
 23988     i30 = (HEAP32[i20 >> 2] | 0) - 1 | 0;
 23989     HEAP32[i20 >> 2] = i30;
 23990     i20 = HEAP32[i28 + (i30 << 2) >> 2] | 0;
 23991     i30 = HEAP32[i27 >> 2] | 0;
 23992     HEAP32[i27 >> 2] = i30 + 1;
 23993     HEAP32[i1 + 348 + (i30 << 2) >> 2] = i20;
 23994     break;
 23996   } else if ((i13 | 0) == 4) {
 23997    i20 = HEAP32[i11 >> 2] | 0;
 23998    i30 = HEAP32[i11 + 12 >> 2] | 0;
 23999    d35 = +HEAPF32[i30 + 16 >> 2];
 24000    d32 = +HEAPF32[i20 + 16 >> 2] - d35;
 24001    d18 = +HEAPF32[i30 + 20 >> 2];
 24002    d34 = +HEAPF32[i20 + 20 >> 2] - d18;
 24003    d33 = +HEAPF32[i30 + 24 >> 2];
 24004    d17 = +HEAPF32[i20 + 24 >> 2] - d33;
 24005    i20 = HEAP32[i11 + 4 >> 2] | 0;
 24006    d16 = +HEAPF32[i20 + 16 >> 2] - d35;
 24007    d31 = +HEAPF32[i20 + 20 >> 2] - d18;
 24008    d41 = +HEAPF32[i20 + 24 >> 2] - d33;
 24009    i20 = HEAP32[i11 + 8 >> 2] | 0;
 24010    d42 = +HEAPF32[i20 + 16 >> 2] - d35;
 24011    d35 = +HEAPF32[i20 + 20 >> 2] - d18;
 24012    d18 = +HEAPF32[i20 + 24 >> 2] - d33;
 24013    if (d32 * d31 * d18 + (d34 * d41 * d42 + d17 * d16 * d35 - d32 * d41 * d35 - d34 * d16 * d18) - d17 * d31 * d42 == 0.0) {
 24014     break;
 24015    } else {
 24016     i39 = 1;
 24018    STACKTOP = i2;
 24019    return i39 | 0;
 24020   } else if ((i13 | 0) == 1) {
 24021    i20 = i3 | 0;
 24022    i30 = i3 + 4 | 0;
 24023    i27 = i3 + 8 | 0;
 24024    i28 = i1 + 364 | 0;
 24025    i24 = i4 | 0;
 24026    i25 = i4 + 4 | 0;
 24027    i26 = i4 + 8 | 0;
 24028    i22 = i4 + 12 | 0;
 24029    i21 = i3;
 24030    i23 = 0;
 24031    i15 = i11;
 24032    i14 = 1;
 24033    while (1) {
 24034     _memset(i21 | 0, 0, 16);
 24035     HEAPF32[i3 + (i23 << 2) >> 2] = 1.0;
 24036     i19 = i15 + 32 | 0;
 24037     HEAPF32[i15 + 16 + (i14 << 2) >> 2] = 0.0;
 24038     i29 = (HEAP32[i28 >> 2] | 0) - 1 | 0;
 24039     HEAP32[i28 >> 2] = i29;
 24040     HEAP32[i15 + (HEAP32[i19 >> 2] << 2) >> 2] = HEAP32[i1 + 348 + (i29 << 2) >> 2];
 24041     i29 = HEAP32[i19 >> 2] | 0;
 24042     HEAP32[i19 >> 2] = i29 + 1;
 24043     __ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i1, i3, HEAP32[i15 + (i29 << 2) >> 2] | 0);
 24044     if (__ZN12gjkepa2_impl3GJK13EncloseOriginEv(i1) | 0) {
 24045      i39 = 1;
 24046      i40 = 149;
 24047      break;
 24049     i29 = HEAP32[i10 >> 2] | 0;
 24050     i19 = i29 + 32 | 0;
 24051     i36 = (HEAP32[i19 >> 2] | 0) - 1 | 0;
 24052     HEAP32[i19 >> 2] = i36;
 24053     i19 = HEAP32[i29 + (i36 << 2) >> 2] | 0;
 24054     i36 = HEAP32[i28 >> 2] | 0;
 24055     HEAP32[i28 >> 2] = i36 + 1;
 24056     HEAP32[i1 + 348 + (i36 << 2) >> 2] = i19;
 24057     i19 = HEAP32[i10 >> 2] | 0;
 24058     d42 = -0.0 - +HEAPF32[i30 >> 2];
 24059     d31 = -0.0 - +HEAPF32[i27 >> 2];
 24060     HEAPF32[i24 >> 2] = -0.0 - +HEAPF32[i20 >> 2];
 24061     HEAPF32[i25 >> 2] = d42;
 24062     HEAPF32[i26 >> 2] = d31;
 24063     HEAPF32[i22 >> 2] = 0.0;
 24064     i36 = i19 + 32 | 0;
 24065     HEAPF32[i19 + 16 + (HEAP32[i36 >> 2] << 2) >> 2] = 0.0;
 24066     i29 = (HEAP32[i28 >> 2] | 0) - 1 | 0;
 24067     HEAP32[i28 >> 2] = i29;
 24068     HEAP32[i19 + (HEAP32[i36 >> 2] << 2) >> 2] = HEAP32[i1 + 348 + (i29 << 2) >> 2];
 24069     i29 = HEAP32[i36 >> 2] | 0;
 24070     HEAP32[i36 >> 2] = i29 + 1;
 24071     __ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i1, i4, HEAP32[i19 + (i29 << 2) >> 2] | 0);
 24072     if (__ZN12gjkepa2_impl3GJK13EncloseOriginEv(i1) | 0) {
 24073      i39 = 1;
 24074      i40 = 150;
 24075      break;
 24077     i29 = HEAP32[i10 >> 2] | 0;
 24078     i19 = i29 + 32 | 0;
 24079     i36 = (HEAP32[i19 >> 2] | 0) - 1 | 0;
 24080     HEAP32[i19 >> 2] = i36;
 24081     i19 = HEAP32[i29 + (i36 << 2) >> 2] | 0;
 24082     i36 = HEAP32[i28 >> 2] | 0;
 24083     HEAP32[i28 >> 2] = i36 + 1;
 24084     HEAP32[i1 + 348 + (i36 << 2) >> 2] = i19;
 24085     i19 = i23 + 1 | 0;
 24086     if (i19 >>> 0 >= 3) {
 24087      break L165;
 24089     i36 = HEAP32[i10 >> 2] | 0;
 24090     i23 = i19;
 24091     i15 = i36;
 24092     i14 = HEAP32[i36 + 32 >> 2] | 0;
 24094    if ((i40 | 0) == 149) {
 24095     STACKTOP = i2;
 24096     return i39 | 0;
 24097    } else if ((i40 | 0) == 150) {
 24098     STACKTOP = i2;
 24099     return i39 | 0;
 24102  } while (0);
 24103  i39 = 0;
 24104  STACKTOP = i2;
 24105  return i39 | 0;
 24107 function __ZN22btCompoundLeafCallback17ProcessChildShapeEP16btCollisionShapei(i1, i2, i3) {
 24108  i1 = i1 | 0;
 24109  i2 = i2 | 0;
 24110  i3 = i3 | 0;
 24111  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, d35 = 0.0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, d41 = 0.0, d42 = 0.0, d43 = 0.0, d44 = 0.0, d45 = 0.0, d46 = 0.0, i47 = 0, i48 = 0, i49 = 0, i50 = 0;
 24112  i4 = STACKTOP;
 24113  STACKTOP = STACKTOP + 224 | 0;
 24114  i5 = i4 + 64 | 0;
 24115  i6 = i4 + 128 | 0;
 24116  i7 = i4 + 144 | 0;
 24117  i8 = i4 + 160 | 0;
 24118  i9 = i4 + 176 | 0;
 24119  i10 = i4 + 192 | 0;
 24120  i11 = i4 + 208 | 0;
 24121  i12 = i1 + 4 | 0;
 24122  i13 = HEAP32[i12 >> 2] | 0;
 24123  i14 = HEAP32[i13 + 192 >> 2] | 0;
 24124  d15 = +HEAPF32[i13 + 4 >> 2];
 24125  d16 = +HEAPF32[i13 + 8 >> 2];
 24126  d17 = +HEAPF32[i13 + 12 >> 2];
 24127  d18 = +HEAPF32[i13 + 16 >> 2];
 24128  d19 = +HEAPF32[i13 + 20 >> 2];
 24129  d20 = +HEAPF32[i13 + 24 >> 2];
 24130  d21 = +HEAPF32[i13 + 28 >> 2];
 24131  d22 = +HEAPF32[i13 + 32 >> 2];
 24132  d23 = +HEAPF32[i13 + 36 >> 2];
 24133  d24 = +HEAPF32[i13 + 40 >> 2];
 24134  d25 = +HEAPF32[i13 + 44 >> 2];
 24135  d26 = +HEAPF32[i13 + 48 >> 2];
 24136  d27 = +HEAPF32[i13 + 52 >> 2];
 24137  d28 = +HEAPF32[i13 + 56 >> 2];
 24138  d29 = +HEAPF32[i13 + 60 >> 2];
 24139  d30 = +HEAPF32[i13 + 64 >> 2];
 24140  i31 = i13 + 68 | 0;
 24141  i32 = i4 | 0;
 24142  HEAP32[i32 >> 2] = HEAP32[i31 >> 2];
 24143  HEAP32[i32 + 4 >> 2] = HEAP32[i31 + 4 >> 2];
 24144  HEAP32[i32 + 8 >> 2] = HEAP32[i31 + 8 >> 2];
 24145  HEAP32[i32 + 12 >> 2] = HEAP32[i31 + 12 >> 2];
 24146  i31 = i13 + 84 | 0;
 24147  i33 = i4 + 16 | 0;
 24148  HEAP32[i33 >> 2] = HEAP32[i31 >> 2];
 24149  HEAP32[i33 + 4 >> 2] = HEAP32[i31 + 4 >> 2];
 24150  HEAP32[i33 + 8 >> 2] = HEAP32[i31 + 8 >> 2];
 24151  HEAP32[i33 + 12 >> 2] = HEAP32[i31 + 12 >> 2];
 24152  i31 = i13 + 100 | 0;
 24153  i34 = i4 + 32 | 0;
 24154  HEAP32[i34 >> 2] = HEAP32[i31 >> 2];
 24155  HEAP32[i34 + 4 >> 2] = HEAP32[i31 + 4 >> 2];
 24156  HEAP32[i34 + 8 >> 2] = HEAP32[i31 + 8 >> 2];
 24157  HEAP32[i34 + 12 >> 2] = HEAP32[i31 + 12 >> 2];
 24158  i31 = i13 + 116 | 0;
 24159  i13 = i4 + 48 | 0;
 24160  HEAP32[i13 >> 2] = HEAP32[i31 >> 2];
 24161  HEAP32[i13 + 4 >> 2] = HEAP32[i31 + 4 >> 2];
 24162  HEAP32[i13 + 8 >> 2] = HEAP32[i31 + 8 >> 2];
 24163  HEAP32[i13 + 12 >> 2] = HEAP32[i31 + 12 >> 2];
 24164  i31 = HEAP32[i14 + 24 >> 2] | 0;
 24165  d35 = +HEAPF32[i31 + (i3 * 80 | 0) >> 2];
 24166  d36 = +HEAPF32[i31 + (i3 * 80 | 0) + 16 >> 2];
 24167  d37 = +HEAPF32[i31 + (i3 * 80 | 0) + 32 >> 2];
 24168  d38 = +HEAPF32[i31 + (i3 * 80 | 0) + 4 >> 2];
 24169  d39 = +HEAPF32[i31 + (i3 * 80 | 0) + 20 >> 2];
 24170  d40 = +HEAPF32[i31 + (i3 * 80 | 0) + 36 >> 2];
 24171  d41 = +HEAPF32[i31 + (i3 * 80 | 0) + 8 >> 2];
 24172  d42 = +HEAPF32[i31 + (i3 * 80 | 0) + 24 >> 2];
 24173  d43 = +HEAPF32[i31 + (i3 * 80 | 0) + 40 >> 2];
 24174  d44 = +HEAPF32[i31 + (i3 * 80 | 0) + 48 >> 2];
 24175  d45 = +HEAPF32[i31 + (i3 * 80 | 0) + 52 >> 2];
 24176  d46 = +HEAPF32[i31 + (i3 * 80 | 0) + 56 >> 2];
 24177  HEAPF32[i5 >> 2] = d15 * d35 + d16 * d36 + d17 * d37;
 24178  HEAPF32[i5 + 4 >> 2] = d15 * d38 + d16 * d39 + d17 * d40;
 24179  HEAPF32[i5 + 8 >> 2] = d15 * d41 + d16 * d42 + d17 * d43;
 24180  HEAPF32[i5 + 12 >> 2] = 0.0;
 24181  HEAPF32[i5 + 16 >> 2] = d19 * d35 + d20 * d36 + d21 * d37;
 24182  HEAPF32[i5 + 20 >> 2] = d19 * d38 + d20 * d39 + d21 * d40;
 24183  HEAPF32[i5 + 24 >> 2] = d19 * d41 + d20 * d42 + d21 * d43;
 24184  HEAPF32[i5 + 28 >> 2] = 0.0;
 24185  HEAPF32[i5 + 32 >> 2] = d23 * d35 + d24 * d36 + d25 * d37;
 24186  HEAPF32[i5 + 36 >> 2] = d23 * d38 + d24 * d39 + d25 * d40;
 24187  HEAPF32[i5 + 40 >> 2] = d23 * d41 + d24 * d42 + d25 * d43;
 24188  HEAPF32[i5 + 44 >> 2] = 0.0;
 24189  HEAPF32[i5 + 48 >> 2] = d27 + (d15 * d44 + d16 * d45 + d17 * d46);
 24190  HEAPF32[i5 + 52 >> 2] = d28 + (d19 * d44 + d20 * d45 + d21 * d46);
 24191  HEAPF32[i5 + 56 >> 2] = d29 + (d23 * d44 + d24 * d45 + d25 * d46);
 24192  HEAPF32[i5 + 60 >> 2] = 0.0;
 24193  FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i2 >> 2] | 0) + 8 >> 2] & 127](i2, i5, i6, i7);
 24194  i31 = i1 + 8 | 0;
 24195  i14 = HEAP32[i31 >> 2] | 0;
 24196  i47 = HEAP32[i14 + 192 >> 2] | 0;
 24197  FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i47 >> 2] | 0) + 8 >> 2] & 127](i47, i14 + 4 | 0, i8, i9);
 24198  do {
 24199   if (+HEAPF32[i6 >> 2] > +HEAPF32[i9 >> 2]) {
 24200    i48 = 0;
 24201   } else {
 24202    if (+HEAPF32[i7 >> 2] < +HEAPF32[i8 >> 2]) {
 24203     i48 = 0;
 24204     break;
 24206    i48 = 1;
 24208  } while (0);
 24209  do {
 24210   if (+HEAPF32[i6 + 8 >> 2] > +HEAPF32[i9 + 8 >> 2]) {
 24211    i49 = 0;
 24212   } else {
 24213    if (+HEAPF32[i7 + 8 >> 2] < +HEAPF32[i8 + 8 >> 2]) {
 24214     i49 = 0;
 24215     break;
 24217    i49 = i48;
 24219  } while (0);
 24220  if (+HEAPF32[i6 + 4 >> 2] > +HEAPF32[i9 + 4 >> 2]) {
 24221   STACKTOP = i4;
 24222   return;
 24224  if (+HEAPF32[i7 + 4 >> 2] < +HEAPF32[i8 + 4 >> 2] | i49 ^ 1) {
 24225   STACKTOP = i4;
 24226   return;
 24228  i49 = HEAP32[i12 >> 2] | 0;
 24229  i48 = i49 + 4 | 0;
 24230  i14 = i5;
 24231  HEAP32[i48 >> 2] = HEAP32[i14 >> 2];
 24232  HEAP32[i48 + 4 >> 2] = HEAP32[i14 + 4 >> 2];
 24233  HEAP32[i48 + 8 >> 2] = HEAP32[i14 + 8 >> 2];
 24234  HEAP32[i48 + 12 >> 2] = HEAP32[i14 + 12 >> 2];
 24235  i48 = i49 + 20 | 0;
 24236  i47 = i5 + 16 | 0;
 24237  HEAP32[i48 >> 2] = HEAP32[i47 >> 2];
 24238  HEAP32[i48 + 4 >> 2] = HEAP32[i47 + 4 >> 2];
 24239  HEAP32[i48 + 8 >> 2] = HEAP32[i47 + 8 >> 2];
 24240  HEAP32[i48 + 12 >> 2] = HEAP32[i47 + 12 >> 2];
 24241  i48 = i49 + 36 | 0;
 24242  i50 = i5 + 32 | 0;
 24243  HEAP32[i48 >> 2] = HEAP32[i50 >> 2];
 24244  HEAP32[i48 + 4 >> 2] = HEAP32[i50 + 4 >> 2];
 24245  HEAP32[i48 + 8 >> 2] = HEAP32[i50 + 8 >> 2];
 24246  HEAP32[i48 + 12 >> 2] = HEAP32[i50 + 12 >> 2];
 24247  i48 = i49 + 52 | 0;
 24248  i49 = i5 + 48 | 0;
 24249  HEAP32[i48 >> 2] = HEAP32[i49 >> 2];
 24250  HEAP32[i48 + 4 >> 2] = HEAP32[i49 + 4 >> 2];
 24251  HEAP32[i48 + 8 >> 2] = HEAP32[i49 + 8 >> 2];
 24252  HEAP32[i48 + 12 >> 2] = HEAP32[i49 + 12 >> 2];
 24253  i48 = HEAP32[i12 >> 2] | 0;
 24254  i5 = i48 + 68 | 0;
 24255  HEAP32[i5 >> 2] = HEAP32[i14 >> 2];
 24256  HEAP32[i5 + 4 >> 2] = HEAP32[i14 + 4 >> 2];
 24257  HEAP32[i5 + 8 >> 2] = HEAP32[i14 + 8 >> 2];
 24258  HEAP32[i5 + 12 >> 2] = HEAP32[i14 + 12 >> 2];
 24259  i14 = i48 + 84 | 0;
 24260  HEAP32[i14 >> 2] = HEAP32[i47 >> 2];
 24261  HEAP32[i14 + 4 >> 2] = HEAP32[i47 + 4 >> 2];
 24262  HEAP32[i14 + 8 >> 2] = HEAP32[i47 + 8 >> 2];
 24263  HEAP32[i14 + 12 >> 2] = HEAP32[i47 + 12 >> 2];
 24264  i47 = i48 + 100 | 0;
 24265  HEAP32[i47 >> 2] = HEAP32[i50 >> 2];
 24266  HEAP32[i47 + 4 >> 2] = HEAP32[i50 + 4 >> 2];
 24267  HEAP32[i47 + 8 >> 2] = HEAP32[i50 + 8 >> 2];
 24268  HEAP32[i47 + 12 >> 2] = HEAP32[i50 + 12 >> 2];
 24269  i50 = i48 + 116 | 0;
 24270  HEAP32[i50 >> 2] = HEAP32[i49 >> 2];
 24271  HEAP32[i50 + 4 >> 2] = HEAP32[i49 + 4 >> 2];
 24272  HEAP32[i50 + 8 >> 2] = HEAP32[i49 + 8 >> 2];
 24273  HEAP32[i50 + 12 >> 2] = HEAP32[i49 + 12 >> 2];
 24274  i49 = (HEAP32[i12 >> 2] | 0) + 192 | 0;
 24275  i50 = HEAP32[i49 >> 2] | 0;
 24276  HEAP32[i49 >> 2] = i2;
 24277  i2 = i1 + 24 | 0;
 24278  if ((HEAP32[(HEAP32[i2 >> 2] | 0) + (i3 << 2) >> 2] | 0) == 0) {
 24279   i49 = HEAP32[i1 + 12 >> 2] | 0;
 24280   i48 = FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[i49 >> 2] | 0) + 8 >> 2] & 31](i49, HEAP32[i12 >> 2] | 0, HEAP32[i31 >> 2] | 0, HEAP32[i1 + 28 >> 2] | 0) | 0;
 24281   HEAP32[(HEAP32[i2 >> 2] | 0) + (i3 << 2) >> 2] = i48;
 24283  i48 = i1 + 20 | 0;
 24284  i49 = HEAP32[i48 >> 2] | 0;
 24285  i47 = HEAP32[i49 >> 2] | 0;
 24286  if ((HEAP32[i49 + 136 >> 2] | 0) == (HEAP32[i12 >> 2] | 0)) {
 24287   FUNCTION_TABLE_viii[HEAP32[i47 + 8 >> 2] & 127](i49, -1, i3);
 24288  } else {
 24289   FUNCTION_TABLE_viii[HEAP32[i47 + 12 >> 2] & 127](i49, -1, i3);
 24291  i49 = HEAP32[(HEAP32[i2 >> 2] | 0) + (i3 << 2) >> 2] | 0;
 24292  i3 = i1 + 16 | 0;
 24293  FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i49 >> 2] | 0) + 8 >> 2] & 63](i49, HEAP32[i12 >> 2] | 0, HEAP32[i31 >> 2] | 0, HEAP32[i3 >> 2] | 0, HEAP32[i48 >> 2] | 0);
 24294  i48 = HEAP32[(HEAP32[i3 >> 2] | 0) + 20 >> 2] | 0;
 24295  do {
 24296   if ((i48 | 0) != 0) {
 24297    if (((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i48 >> 2] | 0) + 48 >> 2] & 127](i48) | 0) & 2 | 0) == 0) {
 24298     break;
 24300    i31 = HEAP32[(HEAP32[i3 >> 2] | 0) + 20 >> 2] | 0;
 24301    i49 = HEAP32[(HEAP32[i31 >> 2] | 0) + 52 >> 2] | 0;
 24302    HEAPF32[i10 >> 2] = 1.0;
 24303    HEAPF32[i10 + 4 >> 2] = 1.0;
 24304    HEAPF32[i10 + 8 >> 2] = 1.0;
 24305    HEAPF32[i10 + 12 >> 2] = 0.0;
 24306    FUNCTION_TABLE_viiii[i49 & 127](i31, i6, i7, i10);
 24307    i31 = HEAP32[(HEAP32[i3 >> 2] | 0) + 20 >> 2] | 0;
 24308    i49 = HEAP32[(HEAP32[i31 >> 2] | 0) + 52 >> 2] | 0;
 24309    HEAPF32[i11 >> 2] = 1.0;
 24310    HEAPF32[i11 + 4 >> 2] = 1.0;
 24311    HEAPF32[i11 + 8 >> 2] = 1.0;
 24312    HEAPF32[i11 + 12 >> 2] = 0.0;
 24313    FUNCTION_TABLE_viiii[i49 & 127](i31, i8, i9, i11);
 24315  } while (0);
 24316  HEAP32[(HEAP32[i12 >> 2] | 0) + 192 >> 2] = i50;
 24317  i50 = HEAP32[i12 >> 2] | 0;
 24318  HEAPF32[i50 + 4 >> 2] = d15;
 24319  HEAPF32[i50 + 8 >> 2] = d16;
 24320  HEAPF32[i50 + 12 >> 2] = d17;
 24321  HEAPF32[i50 + 16 >> 2] = d18;
 24322  HEAPF32[i50 + 20 >> 2] = d19;
 24323  HEAPF32[i50 + 24 >> 2] = d20;
 24324  HEAPF32[i50 + 28 >> 2] = d21;
 24325  HEAPF32[i50 + 32 >> 2] = d22;
 24326  HEAPF32[i50 + 36 >> 2] = d23;
 24327  HEAPF32[i50 + 40 >> 2] = d24;
 24328  HEAPF32[i50 + 44 >> 2] = d25;
 24329  HEAPF32[i50 + 48 >> 2] = d26;
 24330  HEAPF32[i50 + 52 >> 2] = d27;
 24331  HEAPF32[i50 + 56 >> 2] = d28;
 24332  HEAPF32[i50 + 60 >> 2] = d29;
 24333  HEAPF32[i50 + 64 >> 2] = d30;
 24334  i50 = HEAP32[i12 >> 2] | 0;
 24335  i12 = i50 + 68 | 0;
 24336  HEAP32[i12 >> 2] = HEAP32[i32 >> 2];
 24337  HEAP32[i12 + 4 >> 2] = HEAP32[i32 + 4 >> 2];
 24338  HEAP32[i12 + 8 >> 2] = HEAP32[i32 + 8 >> 2];
 24339  HEAP32[i12 + 12 >> 2] = HEAP32[i32 + 12 >> 2];
 24340  i32 = i50 + 84 | 0;
 24341  HEAP32[i32 >> 2] = HEAP32[i33 >> 2];
 24342  HEAP32[i32 + 4 >> 2] = HEAP32[i33 + 4 >> 2];
 24343  HEAP32[i32 + 8 >> 2] = HEAP32[i33 + 8 >> 2];
 24344  HEAP32[i32 + 12 >> 2] = HEAP32[i33 + 12 >> 2];
 24345  i33 = i50 + 100 | 0;
 24346  HEAP32[i33 >> 2] = HEAP32[i34 >> 2];
 24347  HEAP32[i33 + 4 >> 2] = HEAP32[i34 + 4 >> 2];
 24348  HEAP32[i33 + 8 >> 2] = HEAP32[i34 + 8 >> 2];
 24349  HEAP32[i33 + 12 >> 2] = HEAP32[i34 + 12 >> 2];
 24350  i34 = i50 + 116 | 0;
 24351  HEAP32[i34 >> 2] = HEAP32[i13 >> 2];
 24352  HEAP32[i34 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
 24353  HEAP32[i34 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
 24354  HEAP32[i34 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
 24355  STACKTOP = i4;
 24356  return;
 24358 function __ZN27btPolyhedralContactClipping8clipFaceERK20btAlignedObjectArrayI9btVector3ERS2_RKS1_f(i1, i2, i3, d4) {
 24359  i1 = i1 | 0;
 24360  i2 = i2 | 0;
 24361  i3 = i3 | 0;
 24362  d4 = +d4;
 24363  var i5 = 0, i6 = 0, i7 = 0, d8 = 0.0, d9 = 0.0, d10 = 0.0, i11 = 0, i12 = 0, d13 = 0.0, d14 = 0.0, d15 = 0.0, i16 = 0, i17 = 0, i18 = 0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, i23 = 0, d24 = 0.0, d25 = 0.0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, d35 = 0.0, d36 = 0.0, d37 = 0.0, d38 = 0.0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, d44 = 0.0, d45 = 0.0, d46 = 0.0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0;
 24364  i5 = HEAP32[i1 + 4 >> 2] | 0;
 24365  if ((i5 | 0) < 2) {
 24366   return;
 24368  i6 = i5 - 1 | 0;
 24369  i7 = i1 + 12 | 0;
 24370  i1 = HEAP32[i7 >> 2] | 0;
 24371  d8 = +HEAPF32[i1 + (i6 << 4) >> 2];
 24372  d9 = +HEAPF32[i1 + (i6 << 4) + 4 >> 2];
 24373  d10 = +HEAPF32[i1 + (i6 << 4) + 8 >> 2];
 24374  i6 = i3 | 0;
 24375  i11 = i3 + 4 | 0;
 24376  i12 = i3 + 8 | 0;
 24377  d13 = +HEAPF32[i11 >> 2];
 24378  d14 = +HEAPF32[i6 >> 2];
 24379  d15 = +HEAPF32[i12 >> 2];
 24380  i3 = i2 + 4 | 0;
 24381  i16 = i2 + 8 | 0;
 24382  i17 = i2 + 12 | 0;
 24383  i18 = i2 + 16 | 0;
 24384  d19 = d10;
 24385  d20 = d9;
 24386  d21 = d8;
 24387  d22 = d9 * d13 + d8 * d14 + d10 * d15 + d4;
 24388  i2 = 0;
 24389  i23 = i1;
 24390  d10 = d14;
 24391  d14 = d13;
 24392  d13 = d15;
 24393  while (1) {
 24394   d15 = +HEAPF32[i23 + (i2 << 4) >> 2];
 24395   d8 = +HEAPF32[i23 + (i2 << 4) + 4 >> 2];
 24396   d9 = +HEAPF32[i23 + (i2 << 4) + 8 >> 2];
 24397   d24 = +HEAPF32[i23 + (i2 << 4) + 12 >> 2];
 24398   d25 = d10 * d15 + d14 * d8 + d13 * d9 + d4;
 24399   i1 = d25 < 0.0;
 24400   do {
 24401    if (d22 < 0.0) {
 24402     if (i1) {
 24403      i26 = HEAP32[i3 >> 2] | 0;
 24404      do {
 24405       if ((i26 | 0) == (HEAP32[i16 >> 2] | 0)) {
 24406        i27 = (i26 | 0) == 0 ? 1 : i26 << 1;
 24407        if ((i26 | 0) >= (i27 | 0)) {
 24408         i28 = i26;
 24409         break;
 24411        if ((i27 | 0) == 0) {
 24412         i29 = 0;
 24413         i30 = i26;
 24414        } else {
 24415         i31 = __Z22btAlignedAllocInternalji(i27 << 4, 16) | 0;
 24416         i29 = i31;
 24417         i30 = HEAP32[i3 >> 2] | 0;
 24419        if ((i30 | 0) > 0) {
 24420         i31 = 0;
 24421         do {
 24422          i32 = i29 + (i31 << 4) | 0;
 24423          if ((i32 | 0) != 0) {
 24424           i33 = i32;
 24425           i32 = (HEAP32[i17 >> 2] | 0) + (i31 << 4) | 0;
 24426           HEAP32[i33 >> 2] = HEAP32[i32 >> 2];
 24427           HEAP32[i33 + 4 >> 2] = HEAP32[i32 + 4 >> 2];
 24428           HEAP32[i33 + 8 >> 2] = HEAP32[i32 + 8 >> 2];
 24429           HEAP32[i33 + 12 >> 2] = HEAP32[i32 + 12 >> 2];
 24431          i31 = i31 + 1 | 0;
 24432         } while ((i31 | 0) < (i30 | 0));
 24434        i31 = HEAP32[i17 >> 2] | 0;
 24435        if ((i31 | 0) != 0) {
 24436         if ((HEAP8[i18] | 0) != 0) {
 24437          __Z21btAlignedFreeInternalPv(i31);
 24439         HEAP32[i17 >> 2] = 0;
 24441        HEAP8[i18] = 1;
 24442        HEAP32[i17 >> 2] = i29;
 24443        HEAP32[i16 >> 2] = i27;
 24444        i28 = HEAP32[i3 >> 2] | 0;
 24445       } else {
 24446        i28 = i26;
 24448      } while (0);
 24449      i26 = HEAP32[i17 >> 2] | 0;
 24450      i31 = i26 + (i28 << 4) | 0;
 24451      if ((i31 | 0) == 0) {
 24452       i34 = i28;
 24453      } else {
 24454       HEAPF32[i31 >> 2] = d15;
 24455       HEAPF32[i26 + (i28 << 4) + 4 >> 2] = d8;
 24456       HEAPF32[i26 + (i28 << 4) + 8 >> 2] = d9;
 24457       HEAPF32[i26 + (i28 << 4) + 12 >> 2] = d24;
 24458       i34 = HEAP32[i3 >> 2] | 0;
 24460      HEAP32[i3 >> 2] = i34 + 1;
 24461      break;
 24462     } else {
 24463      d35 = d22 / (d22 - d25);
 24464      d36 = d21 + (d15 - d21) * d35;
 24465      d37 = d20 + (d8 - d20) * d35;
 24466      d38 = d19 + (d9 - d19) * d35;
 24467      i26 = HEAP32[i3 >> 2] | 0;
 24468      do {
 24469       if ((i26 | 0) == (HEAP32[i16 >> 2] | 0)) {
 24470        i31 = (i26 | 0) == 0 ? 1 : i26 << 1;
 24471        if ((i26 | 0) >= (i31 | 0)) {
 24472         i39 = i26;
 24473         break;
 24475        if ((i31 | 0) == 0) {
 24476         i40 = 0;
 24477         i41 = i26;
 24478        } else {
 24479         i32 = __Z22btAlignedAllocInternalji(i31 << 4, 16) | 0;
 24480         i40 = i32;
 24481         i41 = HEAP32[i3 >> 2] | 0;
 24483        if ((i41 | 0) > 0) {
 24484         i32 = 0;
 24485         do {
 24486          i33 = i40 + (i32 << 4) | 0;
 24487          if ((i33 | 0) != 0) {
 24488           i42 = i33;
 24489           i33 = (HEAP32[i17 >> 2] | 0) + (i32 << 4) | 0;
 24490           HEAP32[i42 >> 2] = HEAP32[i33 >> 2];
 24491           HEAP32[i42 + 4 >> 2] = HEAP32[i33 + 4 >> 2];
 24492           HEAP32[i42 + 8 >> 2] = HEAP32[i33 + 8 >> 2];
 24493           HEAP32[i42 + 12 >> 2] = HEAP32[i33 + 12 >> 2];
 24495          i32 = i32 + 1 | 0;
 24496         } while ((i32 | 0) < (i41 | 0));
 24498        i32 = HEAP32[i17 >> 2] | 0;
 24499        if ((i32 | 0) != 0) {
 24500         if ((HEAP8[i18] | 0) != 0) {
 24501          __Z21btAlignedFreeInternalPv(i32);
 24503         HEAP32[i17 >> 2] = 0;
 24505        HEAP8[i18] = 1;
 24506        HEAP32[i17 >> 2] = i40;
 24507        HEAP32[i16 >> 2] = i31;
 24508        i39 = HEAP32[i3 >> 2] | 0;
 24509       } else {
 24510        i39 = i26;
 24512      } while (0);
 24513      i26 = HEAP32[i17 >> 2] | 0;
 24514      i32 = i26 + (i39 << 4) | 0;
 24515      if ((i32 | 0) == 0) {
 24516       i43 = i39;
 24517      } else {
 24518       HEAPF32[i32 >> 2] = d36;
 24519       HEAPF32[i26 + (i39 << 4) + 4 >> 2] = d37;
 24520       HEAPF32[i26 + (i39 << 4) + 8 >> 2] = d38;
 24521       HEAPF32[i26 + (i39 << 4) + 12 >> 2] = 0.0;
 24522       i43 = HEAP32[i3 >> 2] | 0;
 24524      HEAP32[i3 >> 2] = i43 + 1;
 24525      break;
 24527    } else {
 24528     if (!i1) {
 24529      break;
 24531     d35 = d22 / (d22 - d25);
 24532     d44 = d21 + (d15 - d21) * d35;
 24533     d45 = d20 + (d8 - d20) * d35;
 24534     d46 = d19 + (d9 - d19) * d35;
 24535     i26 = HEAP32[i3 >> 2] | 0;
 24536     i32 = HEAP32[i16 >> 2] | 0;
 24537     do {
 24538      if ((i26 | 0) == (i32 | 0)) {
 24539       i27 = (i26 | 0) == 0 ? 1 : i26 << 1;
 24540       if ((i26 | 0) >= (i27 | 0)) {
 24541        i47 = i26;
 24542        i48 = i26;
 24543        break;
 24545       if ((i27 | 0) == 0) {
 24546        i49 = 0;
 24547        i50 = i26;
 24548       } else {
 24549        i33 = __Z22btAlignedAllocInternalji(i27 << 4, 16) | 0;
 24550        i49 = i33;
 24551        i50 = HEAP32[i3 >> 2] | 0;
 24553       if ((i50 | 0) > 0) {
 24554        i33 = 0;
 24555        do {
 24556         i42 = i49 + (i33 << 4) | 0;
 24557         if ((i42 | 0) != 0) {
 24558          i51 = i42;
 24559          i42 = (HEAP32[i17 >> 2] | 0) + (i33 << 4) | 0;
 24560          HEAP32[i51 >> 2] = HEAP32[i42 >> 2];
 24561          HEAP32[i51 + 4 >> 2] = HEAP32[i42 + 4 >> 2];
 24562          HEAP32[i51 + 8 >> 2] = HEAP32[i42 + 8 >> 2];
 24563          HEAP32[i51 + 12 >> 2] = HEAP32[i42 + 12 >> 2];
 24565         i33 = i33 + 1 | 0;
 24566        } while ((i33 | 0) < (i50 | 0));
 24568       i33 = HEAP32[i17 >> 2] | 0;
 24569       if ((i33 | 0) != 0) {
 24570        if ((HEAP8[i18] | 0) != 0) {
 24571         __Z21btAlignedFreeInternalPv(i33);
 24573        HEAP32[i17 >> 2] = 0;
 24575       HEAP8[i18] = 1;
 24576       HEAP32[i17 >> 2] = i49;
 24577       HEAP32[i16 >> 2] = i27;
 24578       i47 = HEAP32[i3 >> 2] | 0;
 24579       i48 = i27;
 24580      } else {
 24581       i47 = i26;
 24582       i48 = i32;
 24584     } while (0);
 24585     i32 = HEAP32[i17 >> 2] | 0;
 24586     i26 = i32 + (i47 << 4) | 0;
 24587     if ((i26 | 0) == 0) {
 24588      i52 = i47;
 24589      i53 = i48;
 24590     } else {
 24591      HEAPF32[i26 >> 2] = d44;
 24592      HEAPF32[i32 + (i47 << 4) + 4 >> 2] = d45;
 24593      HEAPF32[i32 + (i47 << 4) + 8 >> 2] = d46;
 24594      HEAPF32[i32 + (i47 << 4) + 12 >> 2] = 0.0;
 24595      i52 = HEAP32[i3 >> 2] | 0;
 24596      i53 = HEAP32[i16 >> 2] | 0;
 24598     i32 = i52 + 1 | 0;
 24599     HEAP32[i3 >> 2] = i32;
 24600     do {
 24601      if ((i32 | 0) == (i53 | 0)) {
 24602       i26 = (i53 | 0) == 0 ? 1 : i53 << 1;
 24603       if ((i53 | 0) >= (i26 | 0)) {
 24604        i54 = i53;
 24605        break;
 24607       if ((i26 | 0) == 0) {
 24608        i55 = 0;
 24609        i56 = i53;
 24610       } else {
 24611        i33 = __Z22btAlignedAllocInternalji(i26 << 4, 16) | 0;
 24612        i55 = i33;
 24613        i56 = HEAP32[i3 >> 2] | 0;
 24615       if ((i56 | 0) > 0) {
 24616        i33 = 0;
 24617        do {
 24618         i31 = i55 + (i33 << 4) | 0;
 24619         if ((i31 | 0) != 0) {
 24620          i42 = i31;
 24621          i31 = (HEAP32[i17 >> 2] | 0) + (i33 << 4) | 0;
 24622          HEAP32[i42 >> 2] = HEAP32[i31 >> 2];
 24623          HEAP32[i42 + 4 >> 2] = HEAP32[i31 + 4 >> 2];
 24624          HEAP32[i42 + 8 >> 2] = HEAP32[i31 + 8 >> 2];
 24625          HEAP32[i42 + 12 >> 2] = HEAP32[i31 + 12 >> 2];
 24627         i33 = i33 + 1 | 0;
 24628        } while ((i33 | 0) < (i56 | 0));
 24630       i33 = HEAP32[i17 >> 2] | 0;
 24631       if ((i33 | 0) != 0) {
 24632        if ((HEAP8[i18] | 0) != 0) {
 24633         __Z21btAlignedFreeInternalPv(i33);
 24635        HEAP32[i17 >> 2] = 0;
 24637       HEAP8[i18] = 1;
 24638       HEAP32[i17 >> 2] = i55;
 24639       HEAP32[i16 >> 2] = i26;
 24640       i54 = HEAP32[i3 >> 2] | 0;
 24641      } else {
 24642       i54 = i32;
 24644     } while (0);
 24645     i32 = HEAP32[i17 >> 2] | 0;
 24646     i33 = i32 + (i54 << 4) | 0;
 24647     if ((i33 | 0) == 0) {
 24648      i57 = i54;
 24649     } else {
 24650      HEAPF32[i33 >> 2] = d15;
 24651      HEAPF32[i32 + (i54 << 4) + 4 >> 2] = d8;
 24652      HEAPF32[i32 + (i54 << 4) + 8 >> 2] = d9;
 24653      HEAPF32[i32 + (i54 << 4) + 12 >> 2] = d24;
 24654      i57 = HEAP32[i3 >> 2] | 0;
 24656     HEAP32[i3 >> 2] = i57 + 1;
 24658   } while (0);
 24659   i1 = i2 + 1 | 0;
 24660   if ((i1 | 0) >= (i5 | 0)) {
 24661    break;
 24663   d19 = d9;
 24664   d20 = d8;
 24665   d21 = d15;
 24666   d22 = d25;
 24667   i2 = i1;
 24668   i23 = HEAP32[i7 >> 2] | 0;
 24669   d10 = +HEAPF32[i6 >> 2];
 24670   d14 = +HEAPF32[i11 >> 2];
 24671   d13 = +HEAPF32[i12 >> 2];
 24673  return;
 24675 function __ZN23btDiscreteDynamicsWorld22addSpeculativeContactsEf(i1, d2) {
 24676  i1 = i1 | 0;
 24677  d2 = +d2;
 24678  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0, i68 = 0, i69 = 0, i70 = 0, d71 = 0.0, i72 = 0, d73 = 0.0, i74 = 0, d75 = 0.0, d76 = 0.0, d77 = 0.0, i78 = 0, i79 = 0, i80 = 0, d81 = 0.0;
 24679  i3 = STACKTOP;
 24680  STACKTOP = STACKTOP + 496 | 0;
 24681  i4 = i3 | 0;
 24682  i5 = i3 + 64 | 0;
 24683  i6 = i3 + 160 | 0;
 24684  i7 = i3 + 216 | 0;
 24685  i8 = i3 + 280 | 0;
 24686  i9 = i3 + 304 | 0;
 24687  i10 = i3 + 464 | 0;
 24688  i11 = i3 + 480 | 0;
 24689  __ZN15CProfileManager13Start_ProfileEPKc(1088);
 24690  i12 = i1 + 204 | 0;
 24691  if ((HEAP32[i12 >> 2] | 0) <= 0) {
 24692   __ZN15CProfileManager12Stop_ProfileEv();
 24693   STACKTOP = i3;
 24694   return;
 24696  i13 = i1 + 212 | 0;
 24697  i14 = i4 + 48 | 0;
 24698  i15 = i14 | 0;
 24699  i16 = i4 + 52 | 0;
 24700  i17 = i4 + 56 | 0;
 24701  i18 = i1 | 0;
 24702  i19 = i1 + 76 | 0;
 24703  i20 = i1 + 24 | 0;
 24704  i1 = i5 | 0;
 24705  i21 = i5 + 4 | 0;
 24706  i22 = i5 + 8 | 0;
 24707  i23 = i5 + 10 | 0;
 24708  i24 = i5 + 12 | 0;
 24709  i25 = i5 + 28 | 0;
 24710  i26 = i14;
 24711  i14 = i5 + 76 | 0;
 24712  i27 = i5 + 80 | 0;
 24713  i28 = i5 + 84 | 0;
 24714  i29 = i5 + 88 | 0;
 24715  i30 = i5 + 92 | 0;
 24716  i31 = i6 | 0;
 24717  i32 = i6 | 0;
 24718  i33 = i6 + 4 | 0;
 24719  i34 = i6 + 28 | 0;
 24720  i35 = i6 + 44 | 0;
 24721  i36 = i5 | 0;
 24722  i37 = i7;
 24723  i38 = i4;
 24724  i39 = i7 + 16 | 0;
 24725  i40 = i4 + 16 | 0;
 24726  i41 = i7 + 32 | 0;
 24727  i42 = i4 + 32 | 0;
 24728  i43 = i7 + 48 | 0;
 24729  i44 = i43;
 24730  i45 = i6 | 0;
 24731  i6 = i8 + 16 | 0;
 24732  i46 = i8 + 12 | 0;
 24733  i47 = i8 + 4 | 0;
 24734  i48 = i8 + 8 | 0;
 24735  i49 = i9 + 4 | 0;
 24736  i50 = i43 | 0;
 24737  i43 = i7 + 52 | 0;
 24738  i51 = i7 + 56 | 0;
 24739  i52 = i10;
 24740  i53 = i5 + 60 | 0;
 24741  i54 = i10 | 0;
 24742  i55 = i10 + 4 | 0;
 24743  i56 = i10 + 8 | 0;
 24744  i57 = i5 + 44 | 0;
 24745  i58 = i57 | 0;
 24746  i59 = i5 + 48 | 0;
 24747  i60 = i5 + 52 | 0;
 24748  i5 = i11 | 0;
 24749  i61 = i11 + 4 | 0;
 24750  i62 = i11 + 8 | 0;
 24751  i63 = i11 + 12 | 0;
 24752  i64 = 0;
 24753  do {
 24754   i65 = HEAP32[(HEAP32[i13 >> 2] | 0) + (i64 << 2) >> 2] | 0;
 24755   i66 = i65 | 0;
 24756   HEAPF32[i65 + 240 >> 2] = 1.0;
 24757   i67 = HEAP32[i65 + 216 >> 2] | 0;
 24758   do {
 24759    if (!((i67 | 0) == 5 | (i67 | 0) == 2)) {
 24760     if ((HEAP32[i65 + 204 >> 2] & 3 | 0) != 0) {
 24761      break;
 24763     __ZN11btRigidBody26predictIntegratedTransformEfR11btTransform(i65, d2, i4);
 24764     i68 = i65 + 4 | 0;
 24765     i69 = i65 + 52 | 0;
 24766     i70 = i69 | 0;
 24767     d71 = +HEAPF32[i15 >> 2] - +HEAPF32[i70 >> 2];
 24768     i72 = i65 + 56 | 0;
 24769     d73 = +HEAPF32[i16 >> 2] - +HEAPF32[i72 >> 2];
 24770     i74 = i65 + 60 | 0;
 24771     d75 = +HEAPF32[i17 >> 2] - +HEAPF32[i74 >> 2];
 24772     d76 = +HEAPF32[i65 + 248 >> 2];
 24773     d77 = d76 * d76;
 24774     if (!(d77 != 0.0 & d77 < d71 * d71 + d73 * d73 + d75 * d75)) {
 24775      break;
 24777     __ZN15CProfileManager13Start_ProfileEPKc(1032);
 24778     if ((HEAP32[(HEAP32[i65 + 192 >> 2] | 0) + 4 >> 2] | 0) < 20) {
 24779      HEAP32[2996] = (HEAP32[2996] | 0) + 1;
 24780      i78 = HEAP32[i19 >> 2] | 0;
 24781      i79 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i78 >> 2] | 0) + 36 >> 2] & 127](i78) | 0;
 24782      i78 = HEAP32[i20 >> 2] | 0;
 24783      HEAPF32[i21 >> 2] = 1.0;
 24784      HEAP16[i22 >> 1] = 1;
 24785      HEAP16[i23 >> 1] = -1;
 24786      HEAP32[i1 >> 2] = 2248;
 24787      i80 = i69;
 24788      HEAP32[i24 >> 2] = HEAP32[i80 >> 2];
 24789      HEAP32[i24 + 4 >> 2] = HEAP32[i80 + 4 >> 2];
 24790      HEAP32[i24 + 8 >> 2] = HEAP32[i80 + 8 >> 2];
 24791      HEAP32[i24 + 12 >> 2] = HEAP32[i80 + 12 >> 2];
 24792      HEAP32[i25 >> 2] = HEAP32[i26 >> 2];
 24793      HEAP32[i25 + 4 >> 2] = HEAP32[i26 + 4 >> 2];
 24794      HEAP32[i25 + 8 >> 2] = HEAP32[i26 + 8 >> 2];
 24795      HEAP32[i25 + 12 >> 2] = HEAP32[i26 + 12 >> 2];
 24796      HEAP32[i14 >> 2] = 0;
 24797      HEAP32[i1 >> 2] = 2464;
 24798      HEAP32[i27 >> 2] = i66;
 24799      HEAPF32[i28 >> 2] = 0.0;
 24800      HEAP32[i29 >> 2] = i79;
 24801      HEAP32[i30 >> 2] = i78;
 24802      d75 = +HEAPF32[i65 + 244 >> 2];
 24803      __ZN21btConvexInternalShapeC2Ev(i31);
 24804      HEAP32[i32 >> 2] = 4728;
 24805      HEAP32[i33 >> 2] = 8;
 24806      HEAPF32[i34 >> 2] = d75;
 24807      HEAPF32[i35 >> 2] = d75;
 24808      i78 = i65 + 188 | 0;
 24809      i79 = HEAP32[i78 >> 2] | 0;
 24810      HEAP16[i22 >> 1] = HEAP16[i79 + 4 >> 1] | 0;
 24811      HEAP16[i23 >> 1] = HEAP16[i79 + 6 >> 1] | 0;
 24812      HEAP32[i37 >> 2] = HEAP32[i38 >> 2];
 24813      HEAP32[i37 + 4 >> 2] = HEAP32[i38 + 4 >> 2];
 24814      HEAP32[i37 + 8 >> 2] = HEAP32[i38 + 8 >> 2];
 24815      HEAP32[i37 + 12 >> 2] = HEAP32[i38 + 12 >> 2];
 24816      HEAP32[i39 >> 2] = HEAP32[i40 >> 2];
 24817      HEAP32[i39 + 4 >> 2] = HEAP32[i40 + 4 >> 2];
 24818      HEAP32[i39 + 8 >> 2] = HEAP32[i40 + 8 >> 2];
 24819      HEAP32[i39 + 12 >> 2] = HEAP32[i40 + 12 >> 2];
 24820      HEAP32[i41 >> 2] = HEAP32[i42 >> 2];
 24821      HEAP32[i41 + 4 >> 2] = HEAP32[i42 + 4 >> 2];
 24822      HEAP32[i41 + 8 >> 2] = HEAP32[i42 + 8 >> 2];
 24823      HEAP32[i41 + 12 >> 2] = HEAP32[i42 + 12 >> 2];
 24824      HEAP32[i44 >> 2] = HEAP32[i26 >> 2];
 24825      HEAP32[i44 + 4 >> 2] = HEAP32[i26 + 4 >> 2];
 24826      HEAP32[i44 + 8 >> 2] = HEAP32[i26 + 8 >> 2];
 24827      HEAP32[i44 + 12 >> 2] = HEAP32[i26 + 12 >> 2];
 24828      i79 = i68;
 24829      HEAP32[i37 >> 2] = HEAP32[i79 >> 2];
 24830      HEAP32[i37 + 4 >> 2] = HEAP32[i79 + 4 >> 2];
 24831      HEAP32[i37 + 8 >> 2] = HEAP32[i79 + 8 >> 2];
 24832      HEAP32[i37 + 12 >> 2] = HEAP32[i79 + 12 >> 2];
 24833      i79 = i65 + 20 | 0;
 24834      HEAP32[i39 >> 2] = HEAP32[i79 >> 2];
 24835      HEAP32[i39 + 4 >> 2] = HEAP32[i79 + 4 >> 2];
 24836      HEAP32[i39 + 8 >> 2] = HEAP32[i79 + 8 >> 2];
 24837      HEAP32[i39 + 12 >> 2] = HEAP32[i79 + 12 >> 2];
 24838      i79 = i65 + 36 | 0;
 24839      HEAP32[i41 >> 2] = HEAP32[i79 >> 2];
 24840      HEAP32[i41 + 4 >> 2] = HEAP32[i79 + 4 >> 2];
 24841      HEAP32[i41 + 8 >> 2] = HEAP32[i79 + 8 >> 2];
 24842      HEAP32[i41 + 12 >> 2] = HEAP32[i79 + 12 >> 2];
 24843      __ZNK16btCollisionWorld15convexSweepTestEPK13btConvexShapeRK11btTransformS5_RNS_20ConvexResultCallbackEf(i18, i45, i68, i7, i36, 0.0);
 24844      do {
 24845       if (+HEAPF32[i21 >> 2] < 1.0) {
 24846        i68 = HEAP32[i29 >> 2] | 0;
 24847        i79 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i68 >> 2] | 0) + 52 >> 2] & 31](i68, HEAP32[i78 >> 2] | 0, HEAP32[(HEAP32[i14 >> 2] | 0) + 188 >> 2] | 0) | 0;
 24848        if ((i79 | 0) == 0) {
 24849         break;
 24851        i68 = i79 + 8 | 0;
 24852        if ((HEAP32[i68 >> 2] | 0) == 0) {
 24853         break;
 24855        HEAP8[i6] = 1;
 24856        HEAP32[i46 >> 2] = 0;
 24857        HEAP32[i47 >> 2] = 0;
 24858        HEAP32[i48 >> 2] = 0;
 24859        i79 = HEAP32[i68 >> 2] | 0;
 24860        FUNCTION_TABLE_vii[HEAP32[(HEAP32[i79 >> 2] | 0) + 16 >> 2] & 127](i79, i8);
 24861        do {
 24862         if ((HEAP32[i47 >> 2] | 0) != 0) {
 24863          __ZN16btManifoldResultC2EP17btCollisionObjectS1_(i9, i66, HEAP32[i14 >> 2] | 0);
 24864          i79 = HEAP32[i46 >> 2] | 0;
 24865          HEAP32[i49 >> 2] = HEAP32[i79 >> 2];
 24866          d75 = +HEAPF32[i21 >> 2];
 24867          d73 = (+HEAPF32[i50 >> 2] - +HEAPF32[i70 >> 2]) * d75;
 24868          d71 = (+HEAPF32[i43 >> 2] - +HEAPF32[i72 >> 2]) * d75;
 24869          d77 = d75 * (+HEAPF32[i51 >> 2] - +HEAPF32[i74 >> 2]);
 24870          d75 = d77 * d77 + (d73 * d73 + d71 * d71);
 24871          HEAP32[i52 >> 2] = HEAP32[i53 >> 2];
 24872          HEAP32[i52 + 4 >> 2] = HEAP32[i53 + 4 >> 2];
 24873          HEAP32[i52 + 8 >> 2] = HEAP32[i53 + 8 >> 2];
 24874          HEAP32[i52 + 12 >> 2] = HEAP32[i53 + 12 >> 2];
 24875          if (d75 > 1.1920928955078125e-7) {
 24876           d76 = +Math_sqrt(+d75);
 24877           HEAPF32[i54 >> 2] = +HEAPF32[i54 >> 2] - d73;
 24878           HEAPF32[i55 >> 2] = +HEAPF32[i55 >> 2] - d71;
 24879           HEAPF32[i56 >> 2] = +HEAPF32[i56 >> 2] - d77;
 24880           d81 = d76;
 24881          } else {
 24882           d81 = 0.0;
 24884          if ((HEAP32[(HEAP32[i79 >> 2] | 0) + 1108 >> 2] | 0) == (i65 | 0)) {
 24885           __ZN16btManifoldResult15addContactPointERK9btVector3S2_f(i9, i57, i10, d81);
 24886           break;
 24887          } else {
 24888           d76 = -0.0 - +HEAPF32[i59 >> 2];
 24889           d77 = -0.0 - +HEAPF32[i60 >> 2];
 24890           HEAPF32[i5 >> 2] = -0.0 - +HEAPF32[i58 >> 2];
 24891           HEAPF32[i61 >> 2] = d76;
 24892           HEAPF32[i62 >> 2] = d77;
 24893           HEAPF32[i63 >> 2] = 0.0;
 24894           __ZN16btManifoldResult15addContactPointERK9btVector3S2_f(i9, i11, i10, d81);
 24895           break;
 24898        } while (0);
 24899        i79 = HEAP32[i46 >> 2] | 0;
 24900        if ((i79 | 0) != 0) {
 24901         if ((HEAP8[i6] | 0) != 0) {
 24902          __Z21btAlignedFreeInternalPv(i79);
 24904         HEAP32[i46 >> 2] = 0;
 24906        HEAP8[i6] = 1;
 24907        HEAP32[i46 >> 2] = 0;
 24908        HEAP32[i47 >> 2] = 0;
 24909        HEAP32[i48 >> 2] = 0;
 24911      } while (0);
 24912      __ZN13btConvexShapeD2Ev(i45);
 24914     __ZN15CProfileManager12Stop_ProfileEv();
 24916   } while (0);
 24917   i64 = i64 + 1 | 0;
 24918  } while ((i64 | 0) < (HEAP32[i12 >> 2] | 0));
 24919  __ZN15CProfileManager12Stop_ProfileEv();
 24920  STACKTOP = i3;
 24921  return;
 24923 function __ZN22btVoronoiSimplexSolver28updateClosestVectorAndPointsEv(i1) {
 24924  i1 = i1 | 0;
 24925  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, d14 = 0.0, d15 = 0.0, d16 = 0.0, i17 = 0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, i25 = 0, d26 = 0.0, i27 = 0, i28 = 0;
 24926  i2 = STACKTOP;
 24927  STACKTOP = STACKTOP + 32 | 0;
 24928  i3 = i2 | 0;
 24929  i4 = i2 + 16 | 0;
 24930  i5 = i1 + 356 | 0;
 24931  if ((HEAP8[i5] | 0) == 0) {
 24932   i6 = HEAP8[i1 + 312 | 0] | 0;
 24933   i7 = i6 << 24 >> 24 != 0;
 24934   STACKTOP = i2;
 24935   return i7 | 0;
 24937  i8 = i1 + 316 | 0;
 24938  i9 = i1 + 336 | 0;
 24939  i10 = i1 + 332 | 0;
 24940  i11 = i10;
 24941  i12 = i9;
 24942  _memset(i12 | 0, 0, 17);
 24943  i13 = HEAP16[i11 >> 1] & -16;
 24944  HEAP16[i11 >> 1] = i13;
 24945  HEAP8[i5] = 0;
 24946  switch (HEAP32[i1 >> 2] | 0) {
 24947  case 4:
 24949    _memset(i4 | 0, 0, 16);
 24950    if (!(__ZN22btVoronoiSimplexSolver25closestPtPointTetrahedronERK9btVector3S2_S2_S2_S2_R25btSubSimplexClosestResult(0, i4, i1 + 4 | 0, i1 + 20 | 0, i1 + 36 | 0, i1 + 52 | 0, i8) | 0)) {
 24951     i4 = i1 + 312 | 0;
 24952     if ((HEAP8[i1 + 352 | 0] | 0) == 0) {
 24953      HEAP8[i4] = 1;
 24954      _memset(i1 + 276 | 0, 0, 16);
 24955      i6 = 1;
 24956      i7 = i6 << 24 >> 24 != 0;
 24957      STACKTOP = i2;
 24958      return i7 | 0;
 24959     } else {
 24960      HEAP8[i4] = 0;
 24961      i6 = 0;
 24962      i7 = i6 << 24 >> 24 != 0;
 24963      STACKTOP = i2;
 24964      return i7 | 0;
 24967    d14 = +HEAPF32[i9 >> 2];
 24968    i4 = i1 + 340 | 0;
 24969    d15 = +HEAPF32[i4 >> 2];
 24970    i5 = i1 + 344 | 0;
 24971    d16 = +HEAPF32[i5 >> 2];
 24972    i17 = i1 + 348 | 0;
 24973    d18 = +HEAPF32[i17 >> 2];
 24974    d19 = +HEAPF32[i1 + 84 >> 2] * d14 + +HEAPF32[i1 + 100 >> 2] * d15 + +HEAPF32[i1 + 116 >> 2] * d16 + +HEAPF32[i1 + 132 >> 2] * d18;
 24975    d20 = d14 * +HEAPF32[i1 + 88 >> 2] + d15 * +HEAPF32[i1 + 104 >> 2] + d16 * +HEAPF32[i1 + 120 >> 2] + d18 * +HEAPF32[i1 + 136 >> 2];
 24976    d21 = d14 * +HEAPF32[i1 + 92 >> 2] + d15 * +HEAPF32[i1 + 108 >> 2] + d16 * +HEAPF32[i1 + 124 >> 2] + d18 * +HEAPF32[i1 + 140 >> 2];
 24977    HEAPF32[i1 + 244 >> 2] = d19;
 24978    HEAPF32[i1 + 248 >> 2] = d20;
 24979    HEAPF32[i1 + 252 >> 2] = d21;
 24980    HEAPF32[i1 + 256 >> 2] = 0.0;
 24981    d22 = d14 * +HEAPF32[i1 + 164 >> 2] + d15 * +HEAPF32[i1 + 180 >> 2] + d16 * +HEAPF32[i1 + 196 >> 2] + d18 * +HEAPF32[i1 + 212 >> 2];
 24982    d23 = d14 * +HEAPF32[i1 + 168 >> 2] + d15 * +HEAPF32[i1 + 184 >> 2] + d16 * +HEAPF32[i1 + 200 >> 2] + d18 * +HEAPF32[i1 + 216 >> 2];
 24983    d24 = d14 * +HEAPF32[i1 + 172 >> 2] + d15 * +HEAPF32[i1 + 188 >> 2] + d16 * +HEAPF32[i1 + 204 >> 2] + d18 * +HEAPF32[i1 + 220 >> 2];
 24984    HEAPF32[i1 + 260 >> 2] = d22;
 24985    HEAPF32[i1 + 264 >> 2] = d23;
 24986    HEAPF32[i1 + 268 >> 2] = d24;
 24987    HEAPF32[i1 + 272 >> 2] = 0.0;
 24988    HEAPF32[i1 + 276 >> 2] = d19 - d22;
 24989    HEAPF32[i1 + 280 >> 2] = d20 - d23;
 24990    HEAPF32[i1 + 284 >> 2] = d21 - d24;
 24991    HEAPF32[i1 + 288 >> 2] = 0.0;
 24992    __ZN22btVoronoiSimplexSolver14reduceVerticesERK15btUsageBitfield(i1, i10);
 24993    do {
 24994     if (+HEAPF32[i9 >> 2] < 0.0) {
 24995      i25 = 0;
 24996     } else {
 24997      if (+HEAPF32[i4 >> 2] < 0.0) {
 24998       i25 = 0;
 24999       break;
 25001      if (+HEAPF32[i5 >> 2] < 0.0) {
 25002       i25 = 0;
 25003       break;
 25005      i25 = +HEAPF32[i17 >> 2] >= 0.0 | 0;
 25007    } while (0);
 25008    HEAP8[i1 + 312 | 0] = i25;
 25009    i6 = i25;
 25010    i7 = i6 << 24 >> 24 != 0;
 25011    STACKTOP = i2;
 25012    return i7 | 0;
 25014  case 0:
 25016    HEAP8[i1 + 312 | 0] = 0;
 25017    i6 = 0;
 25018    i7 = i6 << 24 >> 24 != 0;
 25019    STACKTOP = i2;
 25020    return i7 | 0;
 25022  case 1:
 25024    i25 = i1 + 244 | 0;
 25025    i17 = i25;
 25026    i5 = i1 + 84 | 0;
 25027    HEAP32[i17 >> 2] = HEAP32[i5 >> 2];
 25028    HEAP32[i17 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
 25029    HEAP32[i17 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
 25030    HEAP32[i17 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
 25031    i5 = i1 + 260 | 0;
 25032    i17 = i5;
 25033    i4 = i1 + 164 | 0;
 25034    HEAP32[i17 >> 2] = HEAP32[i4 >> 2];
 25035    HEAP32[i17 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
 25036    HEAP32[i17 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
 25037    HEAP32[i17 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
 25038    d24 = +HEAPF32[i1 + 248 >> 2] - +HEAPF32[i1 + 264 >> 2];
 25039    d21 = +HEAPF32[i1 + 252 >> 2] - +HEAPF32[i1 + 268 >> 2];
 25040    HEAPF32[i1 + 276 >> 2] = +HEAPF32[i25 >> 2] - +HEAPF32[i5 >> 2];
 25041    HEAPF32[i1 + 280 >> 2] = d24;
 25042    HEAPF32[i1 + 284 >> 2] = d21;
 25043    HEAPF32[i1 + 288 >> 2] = 0.0;
 25044    _memset(i12 | 0, 0, 17);
 25045    HEAP16[i11 >> 1] = i13;
 25046    HEAPF32[i9 >> 2] = 1.0;
 25047    HEAPF32[i1 + 340 >> 2] = 0.0;
 25048    HEAPF32[i1 + 344 >> 2] = 0.0;
 25049    HEAPF32[i1 + 348 >> 2] = 0.0;
 25050    HEAP8[i1 + 312 | 0] = 1;
 25051    i6 = 1;
 25052    i7 = i6 << 24 >> 24 != 0;
 25053    STACKTOP = i2;
 25054    return i7 | 0;
 25056  case 2:
 25058    d21 = +HEAPF32[i1 + 4 >> 2];
 25059    d24 = +HEAPF32[i1 + 8 >> 2];
 25060    d23 = +HEAPF32[i1 + 12 >> 2];
 25061    d20 = +HEAPF32[i1 + 20 >> 2] - d21;
 25062    d22 = +HEAPF32[i1 + 24 >> 2] - d24;
 25063    d19 = +HEAPF32[i1 + 28 >> 2] - d23;
 25064    d18 = (0.0 - d21) * d20 + (0.0 - d24) * d22 + (0.0 - d23) * d19;
 25065    do {
 25066     if (d18 > 0.0) {
 25067      d23 = d20 * d20 + d22 * d22 + d19 * d19;
 25068      if (d18 < d23) {
 25069       HEAP16[i11 >> 1] = i13 | 3;
 25070       d26 = d18 / d23;
 25071       break;
 25072      } else {
 25073       HEAP16[i11 >> 1] = i13 | 2;
 25074       d26 = 1.0;
 25075       break;
 25077     } else {
 25078      HEAP16[i11 >> 1] = i13 | 1;
 25079      d26 = 0.0;
 25081    } while (0);
 25082    HEAPF32[i9 >> 2] = 1.0 - d26;
 25083    i13 = i1 + 340 | 0;
 25084    HEAPF32[i13 >> 2] = d26;
 25085    i11 = i1 + 344 | 0;
 25086    HEAPF32[i11 >> 2] = 0.0;
 25087    i12 = i1 + 348 | 0;
 25088    HEAPF32[i12 >> 2] = 0.0;
 25089    d18 = +HEAPF32[i1 + 84 >> 2];
 25090    d19 = +HEAPF32[i1 + 88 >> 2];
 25091    d22 = +HEAPF32[i1 + 92 >> 2];
 25092    d20 = d18 + d26 * (+HEAPF32[i1 + 100 >> 2] - d18);
 25093    d18 = d19 + d26 * (+HEAPF32[i1 + 104 >> 2] - d19);
 25094    d19 = d22 + d26 * (+HEAPF32[i1 + 108 >> 2] - d22);
 25095    HEAPF32[i1 + 244 >> 2] = d20;
 25096    HEAPF32[i1 + 248 >> 2] = d18;
 25097    HEAPF32[i1 + 252 >> 2] = d19;
 25098    HEAPF32[i1 + 256 >> 2] = 0.0;
 25099    d22 = +HEAPF32[i1 + 164 >> 2];
 25100    d23 = +HEAPF32[i1 + 168 >> 2];
 25101    d24 = +HEAPF32[i1 + 172 >> 2];
 25102    d21 = d22 + d26 * (+HEAPF32[i1 + 180 >> 2] - d22);
 25103    d22 = d23 + d26 * (+HEAPF32[i1 + 184 >> 2] - d23);
 25104    d23 = d24 + d26 * (+HEAPF32[i1 + 188 >> 2] - d24);
 25105    HEAPF32[i1 + 260 >> 2] = d21;
 25106    HEAPF32[i1 + 264 >> 2] = d22;
 25107    HEAPF32[i1 + 268 >> 2] = d23;
 25108    HEAPF32[i1 + 272 >> 2] = 0.0;
 25109    HEAPF32[i1 + 276 >> 2] = d20 - d21;
 25110    HEAPF32[i1 + 280 >> 2] = d18 - d22;
 25111    HEAPF32[i1 + 284 >> 2] = d19 - d23;
 25112    HEAPF32[i1 + 288 >> 2] = 0.0;
 25113    __ZN22btVoronoiSimplexSolver14reduceVerticesERK15btUsageBitfield(i1, i10);
 25114    do {
 25115     if (+HEAPF32[i9 >> 2] < 0.0) {
 25116      i27 = 0;
 25117     } else {
 25118      if (+HEAPF32[i13 >> 2] < 0.0) {
 25119       i27 = 0;
 25120       break;
 25122      if (+HEAPF32[i11 >> 2] < 0.0) {
 25123       i27 = 0;
 25124       break;
 25126      i27 = +HEAPF32[i12 >> 2] >= 0.0 | 0;
 25128    } while (0);
 25129    HEAP8[i1 + 312 | 0] = i27;
 25130    i6 = i27;
 25131    i7 = i6 << 24 >> 24 != 0;
 25132    STACKTOP = i2;
 25133    return i7 | 0;
 25135  case 3:
 25137    _memset(i3 | 0, 0, 16);
 25138    __ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(0, i3, i1 + 4 | 0, i1 + 20 | 0, i1 + 36 | 0, i8) | 0;
 25139    d23 = +HEAPF32[i9 >> 2];
 25140    i8 = i1 + 340 | 0;
 25141    d19 = +HEAPF32[i8 >> 2];
 25142    i3 = i1 + 344 | 0;
 25143    d22 = +HEAPF32[i3 >> 2];
 25144    d18 = +HEAPF32[i1 + 84 >> 2] * d23 + +HEAPF32[i1 + 100 >> 2] * d19 + +HEAPF32[i1 + 116 >> 2] * d22;
 25145    d21 = d23 * +HEAPF32[i1 + 88 >> 2] + d19 * +HEAPF32[i1 + 104 >> 2] + d22 * +HEAPF32[i1 + 120 >> 2];
 25146    d20 = d23 * +HEAPF32[i1 + 92 >> 2] + d19 * +HEAPF32[i1 + 108 >> 2] + d22 * +HEAPF32[i1 + 124 >> 2];
 25147    HEAPF32[i1 + 244 >> 2] = d18;
 25148    HEAPF32[i1 + 248 >> 2] = d21;
 25149    HEAPF32[i1 + 252 >> 2] = d20;
 25150    HEAPF32[i1 + 256 >> 2] = 0.0;
 25151    d24 = d23 * +HEAPF32[i1 + 164 >> 2] + d19 * +HEAPF32[i1 + 180 >> 2] + d22 * +HEAPF32[i1 + 196 >> 2];
 25152    d26 = d23 * +HEAPF32[i1 + 168 >> 2] + d19 * +HEAPF32[i1 + 184 >> 2] + d22 * +HEAPF32[i1 + 200 >> 2];
 25153    d16 = d23 * +HEAPF32[i1 + 172 >> 2] + d19 * +HEAPF32[i1 + 188 >> 2] + d22 * +HEAPF32[i1 + 204 >> 2];
 25154    HEAPF32[i1 + 260 >> 2] = d24;
 25155    HEAPF32[i1 + 264 >> 2] = d26;
 25156    HEAPF32[i1 + 268 >> 2] = d16;
 25157    HEAPF32[i1 + 272 >> 2] = 0.0;
 25158    HEAPF32[i1 + 276 >> 2] = d18 - d24;
 25159    HEAPF32[i1 + 280 >> 2] = d21 - d26;
 25160    HEAPF32[i1 + 284 >> 2] = d20 - d16;
 25161    HEAPF32[i1 + 288 >> 2] = 0.0;
 25162    __ZN22btVoronoiSimplexSolver14reduceVerticesERK15btUsageBitfield(i1, i10);
 25163    do {
 25164     if (+HEAPF32[i9 >> 2] < 0.0) {
 25165      i28 = 0;
 25166     } else {
 25167      if (+HEAPF32[i8 >> 2] < 0.0) {
 25168       i28 = 0;
 25169       break;
 25171      if (+HEAPF32[i3 >> 2] < 0.0) {
 25172       i28 = 0;
 25173       break;
 25175      i28 = +HEAPF32[i1 + 348 >> 2] >= 0.0 | 0;
 25177    } while (0);
 25178    HEAP8[i1 + 312 | 0] = i28;
 25179    i6 = i28;
 25180    i7 = i6 << 24 >> 24 != 0;
 25181    STACKTOP = i2;
 25182    return i7 | 0;
 25184  default:
 25186    HEAP8[i1 + 312 | 0] = 0;
 25187    i6 = 0;
 25188    i7 = i6 << 24 >> 24 != 0;
 25189    STACKTOP = i2;
 25190    return i7 | 0;
 25193  return 0;
 25195 function __ZN15btGjkEpaSolver28DistanceEPK13btConvexShapeRK11btTransformS2_S5_RK9btVector3RNS_8sResultsE(i1, i2, i3, i4, i5, i6) {
 25196  i1 = i1 | 0;
 25197  i2 = i2 | 0;
 25198  i3 = i3 | 0;
 25199  i4 = i4 | 0;
 25200  i5 = i5 | 0;
 25201  i6 = i6 | 0;
 25202  var i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, d16 = 0.0, d17 = 0.0, d18 = 0.0, i19 = 0, d20 = 0.0, d21 = 0.0, i22 = 0, d23 = 0.0, d24 = 0.0, i25 = 0, d26 = 0.0, i27 = 0, d28 = 0.0, i29 = 0, d30 = 0.0, d31 = 0.0, i32 = 0, d33 = 0.0, i34 = 0, d35 = 0.0, i36 = 0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, d41 = 0.0, d42 = 0.0, d43 = 0.0, d44 = 0.0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0, i68 = 0, i69 = 0, i70 = 0, d71 = 0.0, d72 = 0.0, d73 = 0.0, d74 = 0.0, d75 = 0.0, d76 = 0.0, i77 = 0, i78 = 0, i79 = 0, i80 = 0, i81 = 0, i82 = 0, i83 = 0, i84 = 0, i85 = 0, i86 = 0, i87 = 0, i88 = 0;
 25203  i7 = STACKTOP;
 25204  STACKTOP = STACKTOP + 560 | 0;
 25205  i8 = i7 | 0;
 25206  i9 = i7 + 16 | 0;
 25207  i10 = i7 + 32 | 0;
 25208  i11 = i7 + 160 | 0;
 25209  i12 = i7 + 544 | 0;
 25210  i13 = i6 + 20 | 0;
 25211  i14 = i6 + 20 | 0;
 25212  i15 = i6 + 4 | 0;
 25213  _memset(i14 | 0, 0, 16);
 25214  HEAP32[i15 >> 2] = HEAP32[i13 >> 2];
 25215  HEAP32[i15 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
 25216  HEAP32[i15 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
 25217  HEAP32[i15 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
 25218  i13 = i6 | 0;
 25219  HEAP32[i13 >> 2] = 0;
 25220  i15 = i10 | 0;
 25221  HEAP32[i15 >> 2] = i1;
 25222  i1 = i10 + 4 | 0;
 25223  HEAP32[i1 >> 2] = i3;
 25224  d16 = +HEAPF32[i4 >> 2];
 25225  i3 = i2 | 0;
 25226  d17 = +HEAPF32[i3 >> 2];
 25227  d18 = +HEAPF32[i4 + 16 >> 2];
 25228  i19 = i2 + 16 | 0;
 25229  d20 = +HEAPF32[i19 >> 2];
 25230  d21 = +HEAPF32[i4 + 32 >> 2];
 25231  i22 = i2 + 32 | 0;
 25232  d23 = +HEAPF32[i22 >> 2];
 25233  d24 = d16 * d17 + d18 * d20 + d21 * d23;
 25234  i25 = i2 + 4 | 0;
 25235  d26 = +HEAPF32[i25 >> 2];
 25236  i27 = i2 + 20 | 0;
 25237  d28 = +HEAPF32[i27 >> 2];
 25238  i29 = i2 + 36 | 0;
 25239  d30 = +HEAPF32[i29 >> 2];
 25240  d31 = d16 * d26 + d18 * d28 + d21 * d30;
 25241  i32 = i2 + 8 | 0;
 25242  d33 = +HEAPF32[i32 >> 2];
 25243  i34 = i2 + 24 | 0;
 25244  d35 = +HEAPF32[i34 >> 2];
 25245  i36 = i2 + 40 | 0;
 25246  d37 = +HEAPF32[i36 >> 2];
 25247  d38 = d16 * d33 + d18 * d35 + d21 * d37;
 25248  d21 = +HEAPF32[i4 + 4 >> 2];
 25249  d18 = +HEAPF32[i4 + 20 >> 2];
 25250  d16 = +HEAPF32[i4 + 36 >> 2];
 25251  d39 = d17 * d21 + d20 * d18 + d23 * d16;
 25252  d40 = d26 * d21 + d28 * d18 + d30 * d16;
 25253  d41 = d33 * d21 + d35 * d18 + d37 * d16;
 25254  d16 = +HEAPF32[i4 + 8 >> 2];
 25255  d18 = +HEAPF32[i4 + 24 >> 2];
 25256  d21 = +HEAPF32[i4 + 40 >> 2];
 25257  d42 = d17 * d16 + d20 * d18 + d23 * d21;
 25258  d43 = d26 * d16 + d28 * d18 + d30 * d21;
 25259  d44 = d33 * d16 + d35 * d18 + d37 * d21;
 25260  i45 = i10 + 8 | 0;
 25261  HEAPF32[i45 >> 2] = d24;
 25262  i46 = i10 + 12 | 0;
 25263  HEAPF32[i46 >> 2] = d31;
 25264  i47 = i10 + 16 | 0;
 25265  HEAPF32[i47 >> 2] = d38;
 25266  HEAPF32[i10 + 20 >> 2] = 0.0;
 25267  i48 = i10 + 24 | 0;
 25268  HEAPF32[i48 >> 2] = d39;
 25269  i49 = i10 + 28 | 0;
 25270  HEAPF32[i49 >> 2] = d40;
 25271  i50 = i10 + 32 | 0;
 25272  HEAPF32[i50 >> 2] = d41;
 25273  HEAPF32[i10 + 36 >> 2] = 0.0;
 25274  i51 = i10 + 40 | 0;
 25275  HEAPF32[i51 >> 2] = d42;
 25276  i52 = i10 + 44 | 0;
 25277  HEAPF32[i52 >> 2] = d43;
 25278  i53 = i10 + 48 | 0;
 25279  HEAPF32[i53 >> 2] = d44;
 25280  HEAPF32[i10 + 52 >> 2] = 0.0;
 25281  i54 = i2 + 48 | 0;
 25282  d21 = +HEAPF32[i4 + 48 >> 2] - +HEAPF32[i54 >> 2];
 25283  i55 = i2 + 52 | 0;
 25284  d18 = +HEAPF32[i4 + 52 >> 2] - +HEAPF32[i55 >> 2];
 25285  i56 = i2 + 56 | 0;
 25286  d16 = +HEAPF32[i4 + 56 >> 2] - +HEAPF32[i56 >> 2];
 25287  i4 = i10 + 56 | 0;
 25288  HEAPF32[i4 >> 2] = d24;
 25289  i2 = i10 + 60 | 0;
 25290  HEAPF32[i2 >> 2] = d39;
 25291  i57 = i10 + 64 | 0;
 25292  HEAPF32[i57 >> 2] = d42;
 25293  HEAPF32[i10 + 68 >> 2] = 0.0;
 25294  i58 = i10 + 72 | 0;
 25295  HEAPF32[i58 >> 2] = d31;
 25296  i59 = i10 + 76 | 0;
 25297  HEAPF32[i59 >> 2] = d40;
 25298  i60 = i10 + 80 | 0;
 25299  HEAPF32[i60 >> 2] = d43;
 25300  HEAPF32[i10 + 84 >> 2] = 0.0;
 25301  i61 = i10 + 88 | 0;
 25302  HEAPF32[i61 >> 2] = d38;
 25303  i62 = i10 + 92 | 0;
 25304  HEAPF32[i62 >> 2] = d41;
 25305  i63 = i10 + 96 | 0;
 25306  HEAPF32[i63 >> 2] = d44;
 25307  HEAPF32[i10 + 100 >> 2] = 0.0;
 25308  i64 = i10 + 104 | 0;
 25309  HEAPF32[i64 >> 2] = d17 * d21 + d20 * d18 + d23 * d16;
 25310  i65 = i10 + 108 | 0;
 25311  HEAPF32[i65 >> 2] = d26 * d21 + d28 * d18 + d30 * d16;
 25312  i66 = i10 + 112 | 0;
 25313  HEAPF32[i66 >> 2] = d33 * d21 + d35 * d18 + d37 * d16;
 25314  HEAPF32[i10 + 116 >> 2] = 0.0;
 25315  i67 = i10 + 120 | 0;
 25316  HEAP32[i67 >> 2] = 82;
 25317  i68 = i10 + 124 | 0;
 25318  HEAP32[i68 >> 2] = 0;
 25319  HEAP32[i11 + 364 >> 2] = 0;
 25320  _memset(i11 + 128 | 0, 0, 16);
 25321  HEAP32[i11 + 376 >> 2] = 2;
 25322  HEAP32[i11 + 368 >> 2] = 0;
 25323  HEAPF32[i11 + 144 >> 2] = 0.0;
 25324  i69 = __ZN12gjkepa2_impl3GJK8EvaluateERKNS_13MinkowskiDiffERK9btVector3(i11, i10, i5) | 0;
 25325  if ((i69 | 0) != 0) {
 25326   HEAP32[i13 >> 2] = (i69 | 0) == 1 ? 1 : 2;
 25327   i70 = 0;
 25328   STACKTOP = i7;
 25329   return i70 | 0;
 25331  i69 = i11 + 372 | 0;
 25332  i11 = HEAP32[i69 >> 2] | 0;
 25333  if ((HEAP32[i11 + 32 >> 2] | 0) == 0) {
 25334   d71 = 0.0;
 25335   d72 = 0.0;
 25336   d73 = 0.0;
 25337   d74 = 0.0;
 25338   d75 = 0.0;
 25339   d76 = 0.0;
 25340  } else {
 25341   i13 = i12 | 0;
 25342   i5 = i12 + 4 | 0;
 25343   i10 = i12 + 8 | 0;
 25344   i77 = i9 | 0;
 25345   i78 = i9 + 4 | 0;
 25346   i79 = i9 + 8 | 0;
 25347   i80 = i9 + 12 | 0;
 25348   i81 = i8 | 0;
 25349   i82 = i8 + 4 | 0;
 25350   i83 = i8 + 8 | 0;
 25351   d16 = 0.0;
 25352   d37 = 0.0;
 25353   d18 = 0.0;
 25354   d35 = 0.0;
 25355   d21 = 0.0;
 25356   d33 = 0.0;
 25357   i84 = 0;
 25358   i85 = i11;
 25359   while (1) {
 25360    d30 = +HEAPF32[i85 + 16 + (i84 << 2) >> 2];
 25361    i11 = HEAP32[i67 >> 2] | 0;
 25362    i86 = (HEAP32[i15 >> 2] | 0) + (HEAP32[i68 >> 2] | 0) | 0;
 25363    if ((i11 & 1 | 0) == 0) {
 25364     i87 = i11;
 25365    } else {
 25366     i87 = HEAP32[(HEAP32[i86 >> 2] | 0) + (i11 - 1) >> 2] | 0;
 25368    FUNCTION_TABLE_viii[i87 & 127](i12, i86, HEAP32[i85 + (i84 << 2) >> 2] | 0);
 25369    d28 = d18 + d30 * +HEAPF32[i13 >> 2];
 25370    d26 = d37 + d30 * +HEAPF32[i5 >> 2];
 25371    d23 = d16 + d30 * +HEAPF32[i10 >> 2];
 25372    i86 = HEAP32[(HEAP32[i69 >> 2] | 0) + (i84 << 2) >> 2] | 0;
 25373    d20 = -0.0 - +HEAPF32[i86 >> 2];
 25374    d17 = -0.0 - +HEAPF32[i86 + 4 >> 2];
 25375    d44 = -0.0 - +HEAPF32[i86 + 8 >> 2];
 25376    i86 = HEAP32[i67 >> 2] | 0;
 25377    i11 = (HEAP32[i1 >> 2] | 0) + (HEAP32[i68 >> 2] | 0) | 0;
 25378    if ((i86 & 1 | 0) == 0) {
 25379     i88 = i86;
 25380    } else {
 25381     i88 = HEAP32[(HEAP32[i11 >> 2] | 0) + (i86 - 1) >> 2] | 0;
 25383    d41 = +HEAPF32[i48 >> 2] * d20 + +HEAPF32[i49 >> 2] * d17 + +HEAPF32[i50 >> 2] * d44;
 25384    d38 = +HEAPF32[i51 >> 2] * d20 + +HEAPF32[i52 >> 2] * d17 + +HEAPF32[i53 >> 2] * d44;
 25385    HEAPF32[i77 >> 2] = +HEAPF32[i45 >> 2] * d20 + +HEAPF32[i46 >> 2] * d17 + +HEAPF32[i47 >> 2] * d44;
 25386    HEAPF32[i78 >> 2] = d41;
 25387    HEAPF32[i79 >> 2] = d38;
 25388    HEAPF32[i80 >> 2] = 0.0;
 25389    FUNCTION_TABLE_viii[i88 & 127](i8, i11, i9);
 25390    d38 = +HEAPF32[i81 >> 2];
 25391    d41 = +HEAPF32[i82 >> 2];
 25392    d44 = +HEAPF32[i83 >> 2];
 25393    d17 = d33 + d30 * (+HEAPF32[i64 >> 2] + (+HEAPF32[i4 >> 2] * d38 + +HEAPF32[i2 >> 2] * d41 + +HEAPF32[i57 >> 2] * d44));
 25394    d20 = d21 + d30 * (+HEAPF32[i65 >> 2] + (d38 * +HEAPF32[i58 >> 2] + d41 * +HEAPF32[i59 >> 2] + d44 * +HEAPF32[i60 >> 2]));
 25395    d43 = d35 + d30 * (+HEAPF32[i66 >> 2] + (d38 * +HEAPF32[i61 >> 2] + d41 * +HEAPF32[i62 >> 2] + d44 * +HEAPF32[i63 >> 2]));
 25396    i11 = i84 + 1 | 0;
 25397    i86 = HEAP32[i69 >> 2] | 0;
 25398    if (i11 >>> 0 < (HEAP32[i86 + 32 >> 2] | 0) >>> 0) {
 25399     d16 = d23;
 25400     d37 = d26;
 25401     d18 = d28;
 25402     d35 = d43;
 25403     d21 = d20;
 25404     d33 = d17;
 25405     i84 = i11;
 25406     i85 = i86;
 25407    } else {
 25408     d71 = d23;
 25409     d72 = d26;
 25410     d73 = d28;
 25411     d74 = d43;
 25412     d75 = d20;
 25413     d76 = d17;
 25414     break;
 25418  d33 = +HEAPF32[i55 >> 2] + (d73 * +HEAPF32[i19 >> 2] + d72 * +HEAPF32[i27 >> 2] + d71 * +HEAPF32[i34 >> 2]);
 25419  d21 = +HEAPF32[i56 >> 2] + (d73 * +HEAPF32[i22 >> 2] + d72 * +HEAPF32[i29 >> 2] + d71 * +HEAPF32[i36 >> 2]);
 25420  HEAPF32[i6 + 4 >> 2] = +HEAPF32[i54 >> 2] + (d73 * +HEAPF32[i3 >> 2] + d72 * +HEAPF32[i25 >> 2] + d71 * +HEAPF32[i32 >> 2]);
 25421  HEAPF32[i6 + 8 >> 2] = d33;
 25422  HEAPF32[i6 + 12 >> 2] = d21;
 25423  HEAPF32[i6 + 16 >> 2] = 0.0;
 25424  d21 = +HEAPF32[i55 >> 2] + (d76 * +HEAPF32[i19 >> 2] + d75 * +HEAPF32[i27 >> 2] + d74 * +HEAPF32[i34 >> 2]);
 25425  d33 = +HEAPF32[i56 >> 2] + (d76 * +HEAPF32[i22 >> 2] + d75 * +HEAPF32[i29 >> 2] + d74 * +HEAPF32[i36 >> 2]);
 25426  HEAPF32[i14 >> 2] = +HEAPF32[i54 >> 2] + (d76 * +HEAPF32[i3 >> 2] + d75 * +HEAPF32[i25 >> 2] + d74 * +HEAPF32[i32 >> 2]);
 25427  HEAPF32[i6 + 24 >> 2] = d21;
 25428  HEAPF32[i6 + 28 >> 2] = d33;
 25429  HEAPF32[i6 + 32 >> 2] = 0.0;
 25430  d33 = d73 - d76;
 25431  d76 = d72 - d75;
 25432  d75 = d71 - d74;
 25433  HEAPF32[i6 + 48 >> 2] = 0.0;
 25434  d74 = +Math_sqrt(+(d33 * d33 + d76 * d76 + d75 * d75));
 25435  HEAPF32[i6 + 52 >> 2] = d74;
 25436  d71 = 1.0 / (d74 > 9999999747378752.0e-20 ? d74 : 1.0);
 25437  HEAPF32[i6 + 36 >> 2] = d33 * d71;
 25438  HEAPF32[i6 + 40 >> 2] = d76 * d71;
 25439  HEAPF32[i6 + 44 >> 2] = d75 * d71;
 25440  i70 = 1;
 25441  STACKTOP = i7;
 25442  return i70 | 0;
 25444 function __ZN27btPolyhedralContactClipping18findSeparatingAxisERK18btConvexPolyhedronS2_RK11btTransformS5_R9btVector3(i1, i2, i3, i4, i5) {
 25445  i1 = i1 | 0;
 25446  i2 = i2 | 0;
 25447  i3 = i3 | 0;
 25448  i4 = i4 | 0;
 25449  i5 = i5 | 0;
 25450  var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, d30 = 0.0, i31 = 0, i32 = 0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, i38 = 0, d39 = 0.0, d40 = 0.0, d41 = 0.0, d42 = 0.0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, d54 = 0.0, d55 = 0.0, i56 = 0, d57 = 0.0, i58 = 0, d59 = 0.0, i60 = 0, i61 = 0;
 25451  i6 = STACKTOP;
 25452  STACKTOP = STACKTOP + 72 | 0;
 25453  i7 = i6 | 0;
 25454  i8 = i6 + 16 | 0;
 25455  i9 = i6 + 24 | 0;
 25456  i10 = i6 + 40 | 0;
 25457  i11 = i6 + 48 | 0;
 25458  i12 = i6 + 64 | 0;
 25459  HEAP32[3576] = (HEAP32[3576] | 0) + 1;
 25460  i13 = HEAP32[i1 + 28 >> 2] | 0;
 25461  L433 : do {
 25462   if ((i13 | 0) > 0) {
 25463    i14 = i1 + 36 | 0;
 25464    i15 = i3 | 0;
 25465    i16 = i3 + 4 | 0;
 25466    i17 = i3 + 8 | 0;
 25467    i18 = i3 + 16 | 0;
 25468    i19 = i3 + 20 | 0;
 25469    i20 = i3 + 24 | 0;
 25470    i21 = i3 + 32 | 0;
 25471    i22 = i3 + 36 | 0;
 25472    i23 = i3 + 40 | 0;
 25473    i24 = i7 | 0;
 25474    i25 = i7 + 4 | 0;
 25475    i26 = i7 + 8 | 0;
 25476    i27 = i7 + 12 | 0;
 25477    i28 = i5;
 25478    i29 = i7;
 25479    d30 = 3.4028234663852886e+38;
 25480    i31 = 0;
 25481    while (1) {
 25482     i32 = HEAP32[i14 >> 2] | 0;
 25483     d33 = +HEAPF32[i32 + (i31 * 56 | 0) + 40 >> 2];
 25484     d34 = +HEAPF32[i32 + (i31 * 56 | 0) + 44 >> 2];
 25485     d35 = +HEAPF32[i32 + (i31 * 56 | 0) + 48 >> 2];
 25486     d36 = d33 * +HEAPF32[i18 >> 2] + d34 * +HEAPF32[i19 >> 2] + d35 * +HEAPF32[i20 >> 2];
 25487     d37 = d33 * +HEAPF32[i21 >> 2] + d34 * +HEAPF32[i22 >> 2] + d35 * +HEAPF32[i23 >> 2];
 25488     HEAPF32[i24 >> 2] = d33 * +HEAPF32[i15 >> 2] + d34 * +HEAPF32[i16 >> 2] + d35 * +HEAPF32[i17 >> 2];
 25489     HEAPF32[i25 >> 2] = d36;
 25490     HEAPF32[i26 >> 2] = d37;
 25491     HEAPF32[i27 >> 2] = 0.0;
 25492     if (!(__ZL11TestSepAxisRK18btConvexPolyhedronS1_RK11btTransformS4_RK9btVector3Rf(i1, i2, i3, i4, i7, i8) | 0)) {
 25493      i38 = 0;
 25494      break;
 25496     d37 = +HEAPF32[i8 >> 2];
 25497     if (d37 < d30) {
 25498      HEAP32[i28 >> 2] = HEAP32[i29 >> 2];
 25499      HEAP32[i28 + 4 >> 2] = HEAP32[i29 + 4 >> 2];
 25500      HEAP32[i28 + 8 >> 2] = HEAP32[i29 + 8 >> 2];
 25501      HEAP32[i28 + 12 >> 2] = HEAP32[i29 + 12 >> 2];
 25502      d39 = d37;
 25503     } else {
 25504      d39 = d30;
 25506     i32 = i31 + 1 | 0;
 25507     if ((i32 | 0) < (i13 | 0)) {
 25508      d30 = d39;
 25509      i31 = i32;
 25510     } else {
 25511      d40 = d39;
 25512      break L433;
 25515    STACKTOP = i6;
 25516    return i38 | 0;
 25517   } else {
 25518    d40 = 3.4028234663852886e+38;
 25520  } while (0);
 25521  i13 = HEAP32[i2 + 28 >> 2] | 0;
 25522  L443 : do {
 25523   if ((i13 | 0) > 0) {
 25524    i8 = i2 + 36 | 0;
 25525    i7 = i4 | 0;
 25526    i31 = i4 + 4 | 0;
 25527    i29 = i4 + 8 | 0;
 25528    i28 = i4 + 16 | 0;
 25529    i27 = i4 + 20 | 0;
 25530    i26 = i4 + 24 | 0;
 25531    i25 = i4 + 32 | 0;
 25532    i17 = i4 + 36 | 0;
 25533    i16 = i4 + 40 | 0;
 25534    i15 = i9 | 0;
 25535    i24 = i9 + 4 | 0;
 25536    i23 = i9 + 8 | 0;
 25537    i22 = i9 + 12 | 0;
 25538    i21 = i5;
 25539    i20 = i9;
 25540    d39 = d40;
 25541    i19 = 0;
 25542    while (1) {
 25543     i18 = HEAP32[i8 >> 2] | 0;
 25544     d30 = +HEAPF32[i18 + (i19 * 56 | 0) + 40 >> 2];
 25545     d37 = +HEAPF32[i18 + (i19 * 56 | 0) + 44 >> 2];
 25546     d36 = +HEAPF32[i18 + (i19 * 56 | 0) + 48 >> 2];
 25547     d35 = d30 * +HEAPF32[i28 >> 2] + d37 * +HEAPF32[i27 >> 2] + d36 * +HEAPF32[i26 >> 2];
 25548     d34 = d30 * +HEAPF32[i25 >> 2] + d37 * +HEAPF32[i17 >> 2] + d36 * +HEAPF32[i16 >> 2];
 25549     HEAPF32[i15 >> 2] = d30 * +HEAPF32[i7 >> 2] + d37 * +HEAPF32[i31 >> 2] + d36 * +HEAPF32[i29 >> 2];
 25550     HEAPF32[i24 >> 2] = d35;
 25551     HEAPF32[i23 >> 2] = d34;
 25552     HEAPF32[i22 >> 2] = 0.0;
 25553     if (!(__ZL11TestSepAxisRK18btConvexPolyhedronS1_RK11btTransformS4_RK9btVector3Rf(i1, i2, i3, i4, i9, i10) | 0)) {
 25554      i38 = 0;
 25555      break;
 25557     d34 = +HEAPF32[i10 >> 2];
 25558     if (d34 < d39) {
 25559      HEAP32[i21 >> 2] = HEAP32[i20 >> 2];
 25560      HEAP32[i21 + 4 >> 2] = HEAP32[i20 + 4 >> 2];
 25561      HEAP32[i21 + 8 >> 2] = HEAP32[i20 + 8 >> 2];
 25562      HEAP32[i21 + 12 >> 2] = HEAP32[i20 + 12 >> 2];
 25563      d41 = d34;
 25564     } else {
 25565      d41 = d39;
 25567     i18 = i19 + 1 | 0;
 25568     if ((i18 | 0) < (i13 | 0)) {
 25569      d39 = d41;
 25570      i19 = i18;
 25571     } else {
 25572      d42 = d41;
 25573      break L443;
 25576    STACKTOP = i6;
 25577    return i38 | 0;
 25578   } else {
 25579    d42 = d40;
 25581  } while (0);
 25582  i13 = i1 + 48 | 0;
 25583  i10 = HEAP32[i13 >> 2] | 0;
 25584  L453 : do {
 25585   if ((i10 | 0) > 0) {
 25586    i9 = i1 + 56 | 0;
 25587    i19 = i3 | 0;
 25588    i20 = i3 + 4 | 0;
 25589    i21 = i3 + 8 | 0;
 25590    i22 = i3 + 16 | 0;
 25591    i23 = i3 + 20 | 0;
 25592    i24 = i3 + 24 | 0;
 25593    i29 = i3 + 32 | 0;
 25594    i31 = i3 + 36 | 0;
 25595    i7 = i3 + 40 | 0;
 25596    i15 = i2 + 48 | 0;
 25597    i16 = i2 + 56 | 0;
 25598    i17 = i4 | 0;
 25599    i25 = i4 + 4 | 0;
 25600    i26 = i4 + 8 | 0;
 25601    i27 = i4 + 16 | 0;
 25602    i28 = i4 + 20 | 0;
 25603    i8 = i4 + 24 | 0;
 25604    i18 = i4 + 32 | 0;
 25605    i14 = i4 + 36 | 0;
 25606    i32 = i4 + 40 | 0;
 25607    i43 = i11 | 0;
 25608    i44 = i11 + 4 | 0;
 25609    i45 = i11 + 8 | 0;
 25610    i46 = i11 + 12 | 0;
 25611    i47 = i11;
 25612    i48 = i5;
 25613    d40 = d42;
 25614    i49 = 0;
 25615    i50 = HEAP32[i15 >> 2] | 0;
 25616    i51 = i10;
 25617    L455 : while (1) {
 25618     i52 = HEAP32[i9 >> 2] | 0;
 25619     d41 = +HEAPF32[i52 + (i49 << 4) >> 2];
 25620     d39 = +HEAPF32[i52 + (i49 << 4) + 4 >> 2];
 25621     d34 = +HEAPF32[i52 + (i49 << 4) + 8 >> 2];
 25622     d35 = d41 * +HEAPF32[i19 >> 2] + d39 * +HEAPF32[i20 >> 2] + d34 * +HEAPF32[i21 >> 2];
 25623     d36 = d41 * +HEAPF32[i22 >> 2] + d39 * +HEAPF32[i23 >> 2] + d34 * +HEAPF32[i24 >> 2];
 25624     d37 = d41 * +HEAPF32[i29 >> 2] + d39 * +HEAPF32[i31 >> 2] + d34 * +HEAPF32[i7 >> 2];
 25625     if ((i50 | 0) > 0) {
 25626      d34 = d40;
 25627      i52 = 0;
 25628      while (1) {
 25629       i53 = HEAP32[i16 >> 2] | 0;
 25630       d39 = +HEAPF32[i53 + (i52 << 4) >> 2];
 25631       d41 = +HEAPF32[i53 + (i52 << 4) + 4 >> 2];
 25632       d30 = +HEAPF32[i53 + (i52 << 4) + 8 >> 2];
 25633       d33 = d39 * +HEAPF32[i17 >> 2] + d41 * +HEAPF32[i25 >> 2] + d30 * +HEAPF32[i26 >> 2];
 25634       d54 = d39 * +HEAPF32[i27 >> 2] + d41 * +HEAPF32[i28 >> 2] + d30 * +HEAPF32[i8 >> 2];
 25635       d55 = d39 * +HEAPF32[i18 >> 2] + d41 * +HEAPF32[i14 >> 2] + d30 * +HEAPF32[i32 >> 2];
 25636       d30 = d36 * d55 - d37 * d54;
 25637       d41 = d37 * d33 - d35 * d55;
 25638       d55 = d35 * d54 - d36 * d33;
 25639       HEAPF32[i43 >> 2] = d30;
 25640       HEAPF32[i44 >> 2] = d41;
 25641       HEAPF32[i45 >> 2] = d55;
 25642       HEAPF32[i46 >> 2] = 0.0;
 25643       do {
 25644        if (+Math_abs(+d30) > 1.0e-6) {
 25645         i56 = 339;
 25646        } else {
 25647         if (+Math_abs(+d41) > 1.0e-6) {
 25648          i56 = 339;
 25649          break;
 25651         if (+Math_abs(+d55) > 1.0e-6) {
 25652          i56 = 339;
 25653         } else {
 25654          d57 = d34;
 25657       } while (0);
 25658       do {
 25659        if ((i56 | 0) == 339) {
 25660         i56 = 0;
 25661         d33 = 1.0 / +Math_sqrt(+(d55 * d55 + (d30 * d30 + d41 * d41)));
 25662         HEAPF32[i43 >> 2] = d30 * d33;
 25663         HEAPF32[i44 >> 2] = d41 * d33;
 25664         HEAPF32[i45 >> 2] = d55 * d33;
 25665         if (!(__ZL11TestSepAxisRK18btConvexPolyhedronS1_RK11btTransformS4_RK9btVector3Rf(i1, i2, i3, i4, i11, i12) | 0)) {
 25666          i38 = 0;
 25667          break L455;
 25669         d33 = +HEAPF32[i12 >> 2];
 25670         if (d33 >= d34) {
 25671          d57 = d34;
 25672          break;
 25674         HEAP32[i48 >> 2] = HEAP32[i47 >> 2];
 25675         HEAP32[i48 + 4 >> 2] = HEAP32[i47 + 4 >> 2];
 25676         HEAP32[i48 + 8 >> 2] = HEAP32[i47 + 8 >> 2];
 25677         HEAP32[i48 + 12 >> 2] = HEAP32[i47 + 12 >> 2];
 25678         d57 = d33;
 25680       } while (0);
 25681       i53 = i52 + 1 | 0;
 25682       i58 = HEAP32[i15 >> 2] | 0;
 25683       if ((i53 | 0) < (i58 | 0)) {
 25684        d34 = d57;
 25685        i52 = i53;
 25686       } else {
 25687        break;
 25690      d59 = d57;
 25691      i60 = i58;
 25692      i61 = HEAP32[i13 >> 2] | 0;
 25693     } else {
 25694      d59 = d40;
 25695      i60 = i50;
 25696      i61 = i51;
 25698     i52 = i49 + 1 | 0;
 25699     if ((i52 | 0) < (i61 | 0)) {
 25700      d40 = d59;
 25701      i49 = i52;
 25702      i50 = i60;
 25703      i51 = i61;
 25704     } else {
 25705      break L453;
 25708    STACKTOP = i6;
 25709    return i38 | 0;
 25711  } while (0);
 25712  i61 = i5 | 0;
 25713  d59 = +HEAPF32[i61 >> 2];
 25714  i60 = i5 + 4 | 0;
 25715  d57 = +HEAPF32[i60 >> 2];
 25716  i13 = i5 + 8 | 0;
 25717  d42 = +HEAPF32[i13 >> 2];
 25718  if ((+HEAPF32[i4 + 48 >> 2] - +HEAPF32[i3 + 48 >> 2]) * d59 + (+HEAPF32[i4 + 52 >> 2] - +HEAPF32[i3 + 52 >> 2]) * d57 + (+HEAPF32[i4 + 56 >> 2] - +HEAPF32[i3 + 56 >> 2]) * d42 <= 0.0) {
 25719   i38 = 1;
 25720   STACKTOP = i6;
 25721   return i38 | 0;
 25723  HEAPF32[i61 >> 2] = -0.0 - d59;
 25724  HEAPF32[i60 >> 2] = -0.0 - d57;
 25725  HEAPF32[i13 >> 2] = -0.0 - d42;
 25726  HEAPF32[i5 + 12 >> 2] = 0.0;
 25727  i38 = 1;
 25728  STACKTOP = i6;
 25729  return i38 | 0;
 25731 function runPostSets() {
 25732  HEAP32[__ZTVN10__cxxabiv120__si_class_type_infoE + 8 >> 2] = 6;
 25733  HEAP32[__ZTVN10__cxxabiv120__si_class_type_infoE + 12 >> 2] = 192;
 25734  HEAP32[__ZTVN10__cxxabiv120__si_class_type_infoE + 16 >> 2] = 74;
 25735  HEAP32[__ZTVN10__cxxabiv120__si_class_type_infoE + 20 >> 2] = 214;
 25736  HEAP32[__ZTVN10__cxxabiv120__si_class_type_infoE + 24 >> 2] = 4;
 25737  HEAP32[__ZTVN10__cxxabiv120__si_class_type_infoE + 28 >> 2] = 4;
 25738  HEAP32[__ZTVN10__cxxabiv120__si_class_type_infoE + 32 >> 2] = 10;
 25739  HEAP32[__ZTVN10__cxxabiv120__si_class_type_infoE + 36 >> 2] = 22;
 25740  HEAP32[__ZTVN10__cxxabiv117__class_type_infoE + 8 >> 2] = 6;
 25741  HEAP32[__ZTVN10__cxxabiv117__class_type_infoE + 12 >> 2] = 348;
 25742  HEAP32[__ZTVN10__cxxabiv117__class_type_infoE + 16 >> 2] = 74;
 25743  HEAP32[__ZTVN10__cxxabiv117__class_type_infoE + 20 >> 2] = 214;
 25744  HEAP32[__ZTVN10__cxxabiv117__class_type_infoE + 24 >> 2] = 4;
 25745  HEAP32[__ZTVN10__cxxabiv117__class_type_infoE + 28 >> 2] = 10;
 25746  HEAP32[__ZTVN10__cxxabiv117__class_type_infoE + 32 >> 2] = 8;
 25747  HEAP32[__ZTVN10__cxxabiv117__class_type_infoE + 36 >> 2] = 42;
 25748  HEAP32[2584] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25749  HEAP32[2588] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25750  HEAP32[2592] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25751  HEAP32[2596] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25752  HEAP32[2600] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25753  HEAP32[2604] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25754  HEAP32[2608] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25755  HEAP32[2612] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25756  HEAP32[2616] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25757  HEAP32[2620] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25758  HEAP32[2624] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25759  HEAP32[2628] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25760  HEAP32[2632] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25761  HEAP32[2636] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25762  HEAP32[2640] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25763  HEAP32[2644] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
 25764  HEAP32[2646] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
 25765  HEAP32[2648] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25766  HEAP32[2652] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
 25767  HEAP32[2654] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
 25768  HEAP32[2656] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25769  HEAP32[2660] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25770  HEAP32[2664] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25771  HEAP32[2668] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25772  HEAP32[2672] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25773  HEAP32[2676] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25774  HEAP32[2680] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25775  HEAP32[2684] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25776  HEAP32[2688] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
 25777  HEAP32[2690] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25778  HEAP32[2694] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25779  HEAP32[2698] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25780  HEAP32[2702] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
 25781  HEAP32[2704] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
 25782  HEAP32[2706] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
 25783  HEAP32[2708] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25784  HEAP32[2712] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25785  HEAP32[2716] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25786  HEAP32[2720] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25787  HEAP32[2724] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
 25788  HEAP32[2726] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25789  HEAP32[2730] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25790  HEAP32[2734] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25791  HEAP32[2738] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25792  HEAP32[2742] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25793  HEAP32[2746] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25794  HEAP32[2750] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
 25795  HEAP32[2752] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25796  HEAP32[2756] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25797  HEAP32[2760] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25798  HEAP32[2764] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
 25799  HEAP32[2766] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
 25800  HEAP32[2768] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25801  HEAP32[2772] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25802  HEAP32[2776] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25803  HEAP32[2780] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25804  HEAP32[2784] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25805  HEAP32[2788] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25806  HEAP32[2792] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25807  HEAP32[2796] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
 25808  HEAP32[2798] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
 25809  HEAP32[2800] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25810  HEAP32[2804] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25811  HEAP32[2808] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
 25812  HEAP32[2810] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
 25813  HEAP32[2812] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25814  HEAP32[2816] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25815  HEAP32[2820] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25816  HEAP32[2824] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25817  HEAP32[2828] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25818  HEAP32[2832] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25819  HEAP32[2836] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25820  HEAP32[2840] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25821  HEAP32[2844] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25822  HEAP32[2848] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25823  HEAP32[2852] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
 25824  HEAP32[2854] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25825  HEAP32[2858] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25826  HEAP32[2862] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
 25827  HEAP32[2864] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25828  HEAP32[2868] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
 25829  HEAP32[2870] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25830  HEAP32[2874] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25831  HEAP32[2878] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25832  HEAP32[2882] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
 25833  HEAP32[2884] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25834  HEAP32[2888] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
 25835  HEAP32[2890] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
 25836  HEAP32[2892] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
 25837  HEAP32[2894] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25838  HEAP32[2898] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
 25839  HEAP32[2908] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25840  HEAP32[2912] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25841  HEAP32[2916] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25842  HEAP32[2920] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25843  HEAP32[2924] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
 25844  HEAP32[2926] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
 25845  HEAP32[2928] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25846  HEAP32[2932] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25847  HEAP32[2936] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25848  HEAP32[2940] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25849  HEAP32[2944] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25850  HEAP32[2948] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
 25851  HEAP32[2950] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25852  HEAP32[2954] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
 25853  HEAP32[2956] = __ZTVN10__cxxabiv117__class_type_infoE + 8;
 25854  HEAP32[2958] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25855  HEAP32[2962] = __ZTVN10__cxxabiv120__si_class_type_infoE + 8;
 25857 function __ZN27btPolyhedralContactClipping19clipFaceAgainstHullERK9btVector3RK18btConvexPolyhedronRK11btTransformR20btAlignedObjectArrayIS0_EffRN36btDiscreteCollisionDetectorInterface6ResultE(i1, i2, i3, i4, d5, d6, i7) {
 25858  i1 = i1 | 0;
 25859  i2 = i2 | 0;
 25860  i3 = i3 | 0;
 25861  i4 = i4 | 0;
 25862  d5 = +d5;
 25863  d6 = +d6;
 25864  i7 = i7 | 0;
 25865  var i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, d20 = 0.0, i21 = 0, d22 = 0.0, i23 = 0, d24 = 0.0, i25 = 0, d26 = 0.0, i27 = 0, d28 = 0.0, i29 = 0, d30 = 0.0, i31 = 0, d32 = 0.0, i33 = 0, d34 = 0.0, i35 = 0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, i40 = 0, d41 = 0.0, i42 = 0, d43 = 0.0, d44 = 0.0, d45 = 0.0, d46 = 0.0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, d61 = 0.0, i62 = 0, d63 = 0.0, d64 = 0.0, d65 = 0.0, d66 = 0.0, d67 = 0.0, d68 = 0.0, d69 = 0.0, i70 = 0, i71 = 0, i72 = 0, i73 = 0, i74 = 0, i75 = 0, i76 = 0, i77 = 0, i78 = 0, i79 = 0, d80 = 0.0, d81 = 0.0, d82 = 0.0, d83 = 0.0, d84 = 0.0, d85 = 0.0, d86 = 0.0, d87 = 0.0, d88 = 0.0, i89 = 0;
 25866  i8 = STACKTOP;
 25867  STACKTOP = STACKTOP + 72 | 0;
 25868  i9 = i8 | 0;
 25869  i10 = i8 + 24 | 0;
 25870  i11 = i8 + 40 | 0;
 25871  i12 = i8 + 56 | 0;
 25872  i13 = i9 + 16 | 0;
 25873  HEAP8[i13] = 1;
 25874  i14 = i9 + 12 | 0;
 25875  HEAP32[i14 >> 2] = 0;
 25876  HEAP32[i9 + 4 >> 2] = 0;
 25877  i15 = i9 + 8 | 0;
 25878  HEAP32[i15 >> 2] = 0;
 25879  i16 = HEAP32[i4 + 4 >> 2] | 0;
 25880  if ((i16 | 0) > 0) {
 25881   i17 = __Z22btAlignedAllocInternalji(i16 << 4, 16) | 0;
 25882   HEAP8[i13] = 1;
 25883   HEAP32[i14 >> 2] = i17;
 25884   HEAP32[i15 >> 2] = i16;
 25885   i18 = i17;
 25886  } else {
 25887   i18 = 0;
 25889  i17 = HEAP32[i2 + 28 >> 2] | 0;
 25890  do {
 25891   if ((i17 | 0) > 0) {
 25892    i16 = i2 + 36 | 0;
 25893    i15 = HEAP32[i16 >> 2] | 0;
 25894    i19 = i3 | 0;
 25895    d20 = +HEAPF32[i19 >> 2];
 25896    i21 = i3 + 4 | 0;
 25897    d22 = +HEAPF32[i21 >> 2];
 25898    i23 = i3 + 8 | 0;
 25899    d24 = +HEAPF32[i23 >> 2];
 25900    i25 = i3 + 16 | 0;
 25901    d26 = +HEAPF32[i25 >> 2];
 25902    i27 = i3 + 20 | 0;
 25903    d28 = +HEAPF32[i27 >> 2];
 25904    i29 = i3 + 24 | 0;
 25905    d30 = +HEAPF32[i29 >> 2];
 25906    i31 = i3 + 32 | 0;
 25907    d32 = +HEAPF32[i31 >> 2];
 25908    i33 = i3 + 36 | 0;
 25909    d34 = +HEAPF32[i33 >> 2];
 25910    i35 = i3 + 40 | 0;
 25911    d36 = +HEAPF32[i35 >> 2];
 25912    d37 = +HEAPF32[i1 >> 2];
 25913    d38 = +HEAPF32[i1 + 4 >> 2];
 25914    d39 = +HEAPF32[i1 + 8 >> 2];
 25915    i40 = 0;
 25916    d41 = 3.4028234663852886e+38;
 25917    i42 = -1;
 25918    while (1) {
 25919     d43 = +HEAPF32[i15 + (i40 * 56 | 0) + 40 >> 2];
 25920     d44 = +HEAPF32[i15 + (i40 * 56 | 0) + 44 >> 2];
 25921     d45 = +HEAPF32[i15 + (i40 * 56 | 0) + 48 >> 2];
 25922     d46 = d39 * (d32 * d43 + d34 * d44 + d36 * d45) + (d37 * (d20 * d43 + d22 * d44 + d24 * d45) + d38 * (d26 * d43 + d28 * d44 + d30 * d45));
 25923     i47 = d46 < d41;
 25924     i48 = i47 ? i40 : i42;
 25925     i49 = i40 + 1 | 0;
 25926     if ((i49 | 0) < (i17 | 0)) {
 25927      i40 = i49;
 25928      d41 = i47 ? d46 : d41;
 25929      i42 = i48;
 25930     } else {
 25931      break;
 25934    if ((i48 | 0) < 0) {
 25935     i50 = i18;
 25936     break;
 25938    i42 = HEAP32[i15 + (i48 * 56 | 0) + 4 >> 2] | 0;
 25939    if ((i42 | 0) > 0) {
 25940     i40 = i15 + (i48 * 56 | 0) + 32 | 0;
 25941     i47 = i10 | 0;
 25942     i49 = i10 + 4 | 0;
 25943     i51 = i10 + 8 | 0;
 25944     i52 = i10 + 12 | 0;
 25945     i53 = i3 + 48 | 0;
 25946     i54 = i3 + 52 | 0;
 25947     i55 = i3 + 56 | 0;
 25948     i56 = i11;
 25949     i57 = i4;
 25950     i58 = i9;
 25951     i59 = 0;
 25952     i60 = i15;
 25953     d41 = d20;
 25954     d38 = d22;
 25955     d37 = d24;
 25956     d39 = d26;
 25957     d46 = d28;
 25958     d45 = d30;
 25959     d44 = d32;
 25960     d43 = d34;
 25961     d61 = d36;
 25962     while (1) {
 25963      i62 = HEAP32[(HEAP32[i40 >> 2] | 0) + (i59 << 2) >> 2] | 0;
 25964      d63 = +HEAPF32[i60 + (i62 * 56 | 0) + 40 >> 2];
 25965      d64 = +HEAPF32[i60 + (i62 * 56 | 0) + 44 >> 2];
 25966      d65 = +HEAPF32[i60 + (i62 * 56 | 0) + 48 >> 2];
 25967      d66 = +HEAPF32[i60 + (i62 * 56 | 0) + 52 >> 2];
 25968      d67 = d63 * d41 + d64 * d38 + d65 * d37;
 25969      d68 = d63 * d39 + d64 * d46 + d65 * d45;
 25970      d69 = d63 * d44 + d64 * d43 + d65 * d61;
 25971      HEAPF32[i47 >> 2] = d67;
 25972      HEAPF32[i49 >> 2] = d68;
 25973      HEAPF32[i51 >> 2] = d69;
 25974      HEAPF32[i52 >> 2] = 0.0;
 25975      __ZN27btPolyhedralContactClipping8clipFaceERK20btAlignedObjectArrayI9btVector3ERS2_RKS1_f(i57, i58, i10, d66 - (d67 * +HEAPF32[i53 >> 2] + d68 * +HEAPF32[i54 >> 2] + d69 * +HEAPF32[i55 >> 2]));
 25976      i62 = i57 + 4 | 0;
 25977      i70 = HEAP32[i62 >> 2] | 0;
 25978      if ((i70 | 0) < 0) {
 25979       i71 = i57 + 8 | 0;
 25980       i72 = i57 + 12 | 0;
 25981       if ((HEAP32[i71 >> 2] | 0) < 0) {
 25982        i73 = HEAP32[i72 >> 2] | 0;
 25983        i74 = i57 + 16 | 0;
 25984        if ((i73 | 0) != 0) {
 25985         if ((HEAP8[i74] | 0) != 0) {
 25986          __Z21btAlignedFreeInternalPv(i73);
 25988         HEAP32[i72 >> 2] = 0;
 25990        HEAP8[i74] = 1;
 25991        HEAP32[i72 >> 2] = 0;
 25992        HEAP32[i71 >> 2] = 0;
 25993        i75 = i70;
 25994       } else {
 25995        i75 = i70;
 25997       do {
 25998        i70 = (HEAP32[i72 >> 2] | 0) + (i75 << 4) | 0;
 25999        if ((i70 | 0) != 0) {
 26000         i71 = i70;
 26001         HEAP32[i71 >> 2] = HEAP32[i56 >> 2];
 26002         HEAP32[i71 + 4 >> 2] = HEAP32[i56 + 4 >> 2];
 26003         HEAP32[i71 + 8 >> 2] = HEAP32[i56 + 8 >> 2];
 26004         HEAP32[i71 + 12 >> 2] = HEAP32[i56 + 12 >> 2];
 26006        i75 = i75 + 1 | 0;
 26007       } while ((i75 | 0) < 0);
 26009      HEAP32[i62 >> 2] = 0;
 26010      i72 = i59 + 1 | 0;
 26011      if ((i72 | 0) >= (i42 | 0)) {
 26012       break;
 26014      i71 = i57;
 26015      i57 = i58;
 26016      i59 = i72;
 26017      i60 = HEAP32[i16 >> 2] | 0;
 26018      d41 = +HEAPF32[i19 >> 2];
 26019      d38 = +HEAPF32[i21 >> 2];
 26020      d37 = +HEAPF32[i23 >> 2];
 26021      d39 = +HEAPF32[i25 >> 2];
 26022      d46 = +HEAPF32[i27 >> 2];
 26023      d45 = +HEAPF32[i29 >> 2];
 26024      d44 = +HEAPF32[i31 >> 2];
 26025      d43 = +HEAPF32[i33 >> 2];
 26026      d61 = +HEAPF32[i35 >> 2];
 26027      i58 = i71;
 26029     i76 = i58;
 26030     i77 = i53;
 26031     i78 = i54;
 26032     i79 = i55;
 26033     d80 = +HEAPF32[i19 >> 2];
 26034     d81 = +HEAPF32[i21 >> 2];
 26035     d82 = +HEAPF32[i23 >> 2];
 26036     d83 = +HEAPF32[i25 >> 2];
 26037     d84 = +HEAPF32[i27 >> 2];
 26038     d85 = +HEAPF32[i29 >> 2];
 26039     d86 = +HEAPF32[i31 >> 2];
 26040     d87 = +HEAPF32[i33 >> 2];
 26041     d88 = +HEAPF32[i35 >> 2];
 26042    } else {
 26043     i76 = i4;
 26044     i77 = i3 + 48 | 0;
 26045     i78 = i3 + 52 | 0;
 26046     i79 = i3 + 56 | 0;
 26047     d80 = d20;
 26048     d81 = d22;
 26049     d82 = d24;
 26050     d83 = d26;
 26051     d84 = d28;
 26052     d85 = d30;
 26053     d86 = d32;
 26054     d87 = d34;
 26055     d88 = d36;
 26057    d61 = +HEAPF32[i15 + (i48 * 56 | 0) + 40 >> 2];
 26058    d43 = +HEAPF32[i15 + (i48 * 56 | 0) + 44 >> 2];
 26059    d44 = +HEAPF32[i15 + (i48 * 56 | 0) + 48 >> 2];
 26060    d45 = d61 * d80 + d43 * d81 + d44 * d82;
 26061    d46 = d61 * d83 + d43 * d84 + d44 * d85;
 26062    d39 = d61 * d86 + d43 * d87 + d44 * d88;
 26063    d44 = +HEAPF32[i15 + (i48 * 56 | 0) + 52 >> 2] - (d45 * +HEAPF32[i77 >> 2] + d46 * +HEAPF32[i78 >> 2] + d39 * +HEAPF32[i79 >> 2]);
 26064    i16 = i76 + 4 | 0;
 26065    i60 = HEAP32[i16 >> 2] | 0;
 26066    if ((i60 | 0) > 0) {
 26067     i59 = i76 + 12 | 0;
 26068     i57 = i12;
 26069     i42 = i7;
 26070     i56 = 0;
 26071     i52 = i60;
 26072     while (1) {
 26073      i60 = HEAP32[i59 >> 2] | 0;
 26074      i51 = i60 + (i56 << 4) | 0;
 26075      d43 = d44 + (d45 * +HEAPF32[i51 >> 2] + d46 * +HEAPF32[i60 + (i56 << 4) + 4 >> 2] + d39 * +HEAPF32[i60 + (i56 << 4) + 8 >> 2]);
 26076      if (d43 > d6 | d43 < d5) {
 26077       i89 = i52;
 26078      } else {
 26079       i60 = i51;
 26080       HEAP32[i57 >> 2] = HEAP32[i60 >> 2];
 26081       HEAP32[i57 + 4 >> 2] = HEAP32[i60 + 4 >> 2];
 26082       HEAP32[i57 + 8 >> 2] = HEAP32[i60 + 8 >> 2];
 26083       HEAP32[i57 + 12 >> 2] = HEAP32[i60 + 12 >> 2];
 26084       FUNCTION_TABLE_viiif[HEAP32[(HEAP32[i42 >> 2] | 0) + 16 >> 2] & 15](i7, i1, i12, d43);
 26085       i89 = HEAP32[i16 >> 2] | 0;
 26087      i60 = i56 + 1 | 0;
 26088      if ((i60 | 0) < (i89 | 0)) {
 26089       i56 = i60;
 26090       i52 = i89;
 26091      } else {
 26092       break;
 26096    i50 = HEAP32[i14 >> 2] | 0;
 26097   } else {
 26098    i50 = i18;
 26100  } while (0);
 26101  if ((i50 | 0) == 0) {
 26102   STACKTOP = i8;
 26103   return;
 26105  if ((HEAP8[i13] | 0) != 0) {
 26106   __Z21btAlignedFreeInternalPv(i50);
 26108  HEAP32[i14 >> 2] = 0;
 26109  STACKTOP = i8;
 26110  return;
 26112 function __ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3(i1, i2, i3) {
 26113  i1 = i1 | 0;
 26114  i2 = i2 | 0;
 26115  i3 = i3 | 0;
 26116  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, i15 = 0, d16 = 0.0, d17 = 0.0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, d22 = 0.0, d23 = 0.0, d24 = 0.0, i25 = 0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, i35 = 0;
 26117  i4 = STACKTOP;
 26118  STACKTOP = STACKTOP + 80 | 0;
 26119  i5 = i4 | 0;
 26120  i6 = i4 + 16 | 0;
 26121  i7 = i4 + 32 | 0;
 26122  i8 = i4 + 48 | 0;
 26123  i9 = i4 + 64 | 0;
 26124  switch (HEAP32[i2 + 4 >> 2] | 0) {
 26125  case 8:
 26127    _memset(i1 | 0, 0, 16);
 26128    STACKTOP = i4;
 26129    return;
 26131  case 0:
 26133    i10 = i2 + 28 | 0;
 26134    d11 = +HEAPF32[i10 >> 2];
 26135    d12 = +HEAPF32[i10 + 4 >> 2];
 26136    d13 = +HEAPF32[i3 + 4 >> 2] >= 0.0 ? d12 : -0.0 - d12;
 26137    d12 = +HEAPF32[i10 + 8 >> 2];
 26138    d14 = +HEAPF32[i3 + 8 >> 2] >= 0.0 ? d12 : -0.0 - d12;
 26139    HEAPF32[i1 >> 2] = +HEAPF32[i3 >> 2] >= 0.0 ? d11 : -0.0 - d11;
 26140    HEAPF32[i1 + 4 >> 2] = d13;
 26141    HEAPF32[i1 + 8 >> 2] = d14;
 26142    HEAPF32[i1 + 12 >> 2] = 0.0;
 26143    STACKTOP = i4;
 26144    return;
 26146  case 1:
 26148    d14 = +HEAPF32[i3 >> 2];
 26149    d13 = +HEAPF32[i3 + 4 >> 2];
 26150    d11 = +HEAPF32[i3 + 8 >> 2];
 26151    i10 = i2 + 56 | 0;
 26152    i15 = i10;
 26153    d12 = d14 * +HEAPF32[i10 >> 2] + d13 * +HEAPF32[i10 + 4 >> 2] + d11 * +HEAPF32[i10 + 8 >> 2];
 26154    d16 = d14 * +HEAPF32[i10 + 16 >> 2] + d13 * +HEAPF32[i10 + 20 >> 2] + d11 * +HEAPF32[i10 + 24 >> 2];
 26155    d17 = d14 * +HEAPF32[i10 + 32 >> 2] + d13 * +HEAPF32[i10 + 36 >> 2] + d11 * +HEAPF32[i10 + 40 >> 2];
 26156    if (d12 < d16) {
 26157     i18 = d16 < d17 ? 2 : 1;
 26158    } else {
 26159     i18 = d12 < d17 ? 2 : 0;
 26161    d17 = +HEAPF32[i15 + (i18 << 4) + 4 >> 2];
 26162    d12 = +HEAPF32[i15 + (i18 << 4) + 8 >> 2];
 26163    HEAPF32[i1 >> 2] = +HEAPF32[i15 + (i18 << 4) >> 2];
 26164    HEAPF32[i1 + 4 >> 2] = d17;
 26165    HEAPF32[i1 + 8 >> 2] = d12;
 26166    HEAPF32[i1 + 12 >> 2] = 0.0;
 26167    STACKTOP = i4;
 26168    return;
 26170  case 13:
 26172    i18 = i5;
 26173    i15 = i2 + 28 | 0;
 26174    HEAP32[i18 >> 2] = HEAP32[i15 >> 2];
 26175    HEAP32[i18 + 4 >> 2] = HEAP32[i15 + 4 >> 2];
 26176    HEAP32[i18 + 8 >> 2] = HEAP32[i15 + 8 >> 2];
 26177    HEAP32[i18 + 12 >> 2] = HEAP32[i15 + 12 >> 2];
 26178    HEAPF32[i6 >> 2] = +HEAPF32[i3 >> 2];
 26179    d12 = +HEAPF32[i3 + 4 >> 2];
 26180    HEAPF32[i6 + 4 >> 2] = d12;
 26181    d17 = +HEAPF32[i3 + 8 >> 2];
 26182    HEAPF32[i6 + 8 >> 2] = d17;
 26183    HEAPF32[i6 + 12 >> 2] = 0.0;
 26184    i15 = HEAP32[i2 + 52 >> 2] | 0;
 26185    if ((i15 | 0) == 1) {
 26186     i19 = 0;
 26187     i20 = i15;
 26188     i21 = 2;
 26189     d22 = d17;
 26190    } else if ((i15 | 0) == 2) {
 26191     i19 = 0;
 26192     i20 = i15;
 26193     i21 = 1;
 26194     d22 = d12;
 26195    } else {
 26196     i19 = 1;
 26197     i20 = 0;
 26198     i21 = 2;
 26199     d22 = d17;
 26201    d17 = +HEAPF32[i5 + (i19 << 2) >> 2];
 26202    d12 = +HEAPF32[i5 + (i15 << 2) >> 2];
 26203    d16 = +HEAPF32[i6 + (i19 << 2) >> 2];
 26204    d11 = +Math_sqrt(+(d22 * d22 + d16 * d16));
 26205    if (d11 != 0.0) {
 26206     d13 = d17 / d11;
 26207     HEAPF32[i7 + (i19 << 2) >> 2] = d16 * d13;
 26208     if (+HEAPF32[i6 + (i20 << 2) >> 2] < 0.0) {
 26209      d23 = -0.0 - d12;
 26210     } else {
 26211      d23 = d12;
 26213     HEAPF32[i7 + (i20 << 2) >> 2] = d23;
 26214     HEAPF32[i7 + (i21 << 2) >> 2] = d22 * d13;
 26215     HEAPF32[i1 >> 2] = +HEAPF32[i7 >> 2];
 26216     HEAPF32[i1 + 4 >> 2] = +HEAPF32[i7 + 4 >> 2];
 26217     HEAPF32[i1 + 8 >> 2] = +HEAPF32[i7 + 8 >> 2];
 26218     HEAPF32[i1 + 12 >> 2] = 0.0;
 26219     STACKTOP = i4;
 26220     return;
 26221    } else {
 26222     HEAPF32[i7 + (i19 << 2) >> 2] = d17;
 26223     if (+HEAPF32[i6 + (i20 << 2) >> 2] < 0.0) {
 26224      d24 = -0.0 - d12;
 26225     } else {
 26226      d24 = d12;
 26228     HEAPF32[i7 + (i20 << 2) >> 2] = d24;
 26229     HEAPF32[i7 + (i21 << 2) >> 2] = 0.0;
 26230     HEAPF32[i1 >> 2] = +HEAPF32[i7 >> 2];
 26231     HEAPF32[i1 + 4 >> 2] = +HEAPF32[i7 + 4 >> 2];
 26232     HEAPF32[i1 + 8 >> 2] = +HEAPF32[i7 + 8 >> 2];
 26233     HEAPF32[i1 + 12 >> 2] = 0.0;
 26234     STACKTOP = i4;
 26235     return;
 26237    break;
 26239  case 5:
 26241    i7 = HEAP32[i2 + 92 >> 2] | 0;
 26242    i21 = HEAP32[i2 + 96 >> 2] | 0;
 26243    d24 = +HEAPF32[i2 + 12 >> 2];
 26244    d12 = +HEAPF32[i3 >> 2] * d24;
 26245    d17 = +HEAPF32[i2 + 16 >> 2];
 26246    d13 = +HEAPF32[i3 + 4 >> 2] * d17;
 26247    d22 = +HEAPF32[i2 + 20 >> 2];
 26248    d23 = +HEAPF32[i3 + 8 >> 2] * d22;
 26249    if ((i21 | 0) > 0) {
 26250     d16 = -999999984306749400.0;
 26251     i20 = -1;
 26252     i6 = 0;
 26253     while (1) {
 26254      d11 = d12 * +HEAPF32[i7 + (i6 << 4) >> 2] + d13 * +HEAPF32[i7 + (i6 << 4) + 4 >> 2] + d23 * +HEAPF32[i7 + (i6 << 4) + 8 >> 2];
 26255      i19 = d11 > d16;
 26256      i15 = i19 ? i6 : i20;
 26257      i5 = i6 + 1 | 0;
 26258      if ((i5 | 0) < (i21 | 0)) {
 26259       d16 = i19 ? d11 : d16;
 26260       i20 = i15;
 26261       i6 = i5;
 26262      } else {
 26263       i25 = i15;
 26264       break;
 26267    } else {
 26268     i25 = -1;
 26270    d16 = d17 * +HEAPF32[i7 + (i25 << 4) + 4 >> 2];
 26271    d17 = d22 * +HEAPF32[i7 + (i25 << 4) + 8 >> 2];
 26272    HEAPF32[i1 >> 2] = d24 * +HEAPF32[i7 + (i25 << 4) >> 2];
 26273    HEAPF32[i1 + 4 >> 2] = d16;
 26274    HEAPF32[i1 + 8 >> 2] = d17;
 26275    HEAPF32[i1 + 12 >> 2] = 0.0;
 26276    STACKTOP = i4;
 26277    return;
 26279  case 10:
 26281    d17 = +HEAPF32[i3 >> 2];
 26282    d16 = +HEAPF32[i3 + 4 >> 2];
 26283    d24 = +HEAPF32[i3 + 8 >> 2];
 26284    i25 = i2;
 26285    i7 = HEAP32[i2 + 52 >> 2] | 0;
 26286    d22 = +HEAPF32[i25 + 28 + (i7 << 2) >> 2];
 26287    d23 = +HEAPF32[i25 + 28 + (((i7 + 2 | 0) % 3 | 0) << 2) >> 2];
 26288    d13 = d17 * d17 + d16 * d16 + d24 * d24;
 26289    if (d13 < 9999999747378752.0e-20) {
 26290     d26 = 1.0;
 26291     d27 = 0.0;
 26292     d28 = 0.0;
 26293    } else {
 26294     d12 = 1.0 / +Math_sqrt(+d13);
 26295     d26 = d17 * d12;
 26296     d27 = d16 * d12;
 26297     d28 = d24 * d12;
 26299    _memset(i8 | 0, 0, 16);
 26300    HEAPF32[i8 + (i7 << 2) >> 2] = d22;
 26301    d12 = d23 * d26 * +HEAPF32[i2 + 12 >> 2];
 26302    d24 = d23 * d27 * +HEAPF32[i2 + 16 >> 2];
 26303    d16 = d23 * d28 * +HEAPF32[i2 + 20 >> 2];
 26304    d23 = +HEAPF32[i2 + 44 >> 2];
 26305    d17 = d26 * d23;
 26306    d13 = d27 * d23;
 26307    d11 = d28 * d23;
 26308    d23 = d12 + +HEAPF32[i8 >> 2] - d17;
 26309    d14 = d24 + +HEAPF32[i8 + 4 >> 2] - d13;
 26310    d29 = d16 + +HEAPF32[i8 + 8 >> 2] - d11;
 26311    d30 = d28 * d29 + (d26 * d23 + d27 * d14);
 26312    if (d30 > -999999984306749400.0) {
 26313     d31 = d30;
 26314     d32 = d23;
 26315     d33 = d14;
 26316     d34 = d29;
 26317    } else {
 26318     d31 = -999999984306749400.0;
 26319     d32 = 0.0;
 26320     d33 = 0.0;
 26321     d34 = 0.0;
 26323    _memset(i9 | 0, 0, 16);
 26324    HEAPF32[i9 + (i7 << 2) >> 2] = -0.0 - d22;
 26325    d22 = d12 + +HEAPF32[i9 >> 2] - d17;
 26326    d17 = d24 + +HEAPF32[i9 + 4 >> 2] - d13;
 26327    d13 = d16 + +HEAPF32[i9 + 8 >> 2] - d11;
 26328    i9 = d28 * d13 + (d26 * d22 + d27 * d17) > d31;
 26329    HEAPF32[i1 >> 2] = i9 ? d22 : d32;
 26330    HEAPF32[i1 + 4 >> 2] = i9 ? d17 : d33;
 26331    HEAPF32[i1 + 8 >> 2] = i9 ? d13 : d34;
 26332    HEAPF32[i1 + 12 >> 2] = 0.0;
 26333    STACKTOP = i4;
 26334    return;
 26336  case 4:
 26338    i9 = HEAP32[i2 + 104 >> 2] | 0;
 26339    i7 = HEAP32[i2 + 96 >> 2] | 0;
 26340    d34 = +HEAPF32[i2 + 12 >> 2];
 26341    d13 = +HEAPF32[i3 >> 2] * d34;
 26342    d33 = +HEAPF32[i2 + 16 >> 2];
 26343    d17 = +HEAPF32[i3 + 4 >> 2] * d33;
 26344    d32 = +HEAPF32[i2 + 20 >> 2];
 26345    d22 = +HEAPF32[i3 + 8 >> 2] * d32;
 26346    if ((i7 | 0) > 0) {
 26347     d31 = -999999984306749400.0;
 26348     i8 = -1;
 26349     i25 = 0;
 26350     while (1) {
 26351      d27 = d13 * +HEAPF32[i9 + (i25 << 4) >> 2] + d17 * +HEAPF32[i9 + (i25 << 4) + 4 >> 2] + d22 * +HEAPF32[i9 + (i25 << 4) + 8 >> 2];
 26352      i6 = d27 > d31;
 26353      i20 = i6 ? i25 : i8;
 26354      i21 = i25 + 1 | 0;
 26355      if ((i21 | 0) < (i7 | 0)) {
 26356       d31 = i6 ? d27 : d31;
 26357       i8 = i20;
 26358       i25 = i21;
 26359      } else {
 26360       i35 = i20;
 26361       break;
 26364    } else {
 26365     i35 = -1;
 26367    d31 = d33 * +HEAPF32[i9 + (i35 << 4) + 4 >> 2];
 26368    d33 = d32 * +HEAPF32[i9 + (i35 << 4) + 8 >> 2];
 26369    HEAPF32[i1 >> 2] = d34 * +HEAPF32[i9 + (i35 << 4) >> 2];
 26370    HEAPF32[i1 + 4 >> 2] = d31;
 26371    HEAPF32[i1 + 8 >> 2] = d33;
 26372    HEAPF32[i1 + 12 >> 2] = 0.0;
 26373    STACKTOP = i4;
 26374    return;
 26376  default:
 26378    FUNCTION_TABLE_viii[HEAP32[(HEAP32[i2 >> 2] | 0) + 64 >> 2] & 127](i1, i2, i3);
 26379    STACKTOP = i4;
 26380    return;
 26384 function __ZN15btGjkConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i1, i2, i3, i4, i5, i6) {
 26385  i1 = i1 | 0;
 26386  i2 = i2 | 0;
 26387  i3 = i3 | 0;
 26388  i4 = i4 | 0;
 26389  i5 = i5 | 0;
 26390  i6 = i6 | 0;
 26391  var i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, d24 = 0.0, d25 = 0.0, d26 = 0.0, i27 = 0, i28 = 0, i29 = 0, d30 = 0.0, d31 = 0.0, i32 = 0, d33 = 0.0, i34 = 0, d35 = 0.0, i36 = 0, d37 = 0.0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, d44 = 0.0, d45 = 0.0, d46 = 0.0, d47 = 0.0, i48 = 0, d49 = 0.0, i50 = 0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0, d55 = 0.0, d56 = 0.0, d57 = 0.0, d58 = 0.0, d59 = 0.0, d60 = 0.0;
 26392  i7 = STACKTOP;
 26393  STACKTOP = STACKTOP + 280 | 0;
 26394  i8 = i7 + 16 | 0;
 26395  i9 = i7 + 64 | 0;
 26396  i10 = i7 + 144 | 0;
 26397  i11 = i1 + 4 | 0;
 26398  __ZN22btVoronoiSimplexSolver5resetEv(HEAP32[i11 >> 2] | 0);
 26399  i12 = i2 + 48 | 0;
 26400  i13 = i3 + 48 | 0;
 26401  i14 = i12 | 0;
 26402  i15 = i3 + 52 | 0;
 26403  i16 = i2 + 52 | 0;
 26404  i17 = i3 + 56 | 0;
 26405  i3 = i2 + 56 | 0;
 26406  i18 = i4 + 48 | 0;
 26407  i19 = i5 + 48 | 0;
 26408  i20 = i18 | 0;
 26409  i21 = i5 + 52 | 0;
 26410  i22 = i4 + 52 | 0;
 26411  i23 = i5 + 56 | 0;
 26412  i5 = i4 + 56 | 0;
 26413  d24 = +HEAPF32[i13 >> 2] - +HEAPF32[i14 >> 2] - (+HEAPF32[i19 >> 2] - +HEAPF32[i20 >> 2]);
 26414  d25 = +HEAPF32[i15 >> 2] - +HEAPF32[i16 >> 2] - (+HEAPF32[i21 >> 2] - +HEAPF32[i22 >> 2]);
 26415  d26 = +HEAPF32[i17 >> 2] - +HEAPF32[i3 >> 2] - (+HEAPF32[i23 >> 2] - +HEAPF32[i5 >> 2]);
 26416  HEAP32[i8 >> 2] = 4272;
 26417  i27 = i8 + 36 | 0;
 26418  HEAPF32[i27 >> 2] = 999999984306749400.0;
 26419  i28 = i8 + 40 | 0;
 26420  HEAP8[i28] = 0;
 26421  __ZN17btGjkPairDetectorC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver(i9, HEAP32[i1 + 8 >> 2] | 0, HEAP32[i1 + 12 >> 2] | 0, HEAP32[i11 >> 2] | 0, 0);
 26422  HEAPF32[i10 + 128 >> 2] = 999999984306749400.0;
 26423  HEAP32[i10 + 132 >> 2] = 0;
 26424  i11 = i10;
 26425  i1 = i2;
 26426  HEAP32[i11 >> 2] = HEAP32[i1 >> 2];
 26427  HEAP32[i11 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
 26428  HEAP32[i11 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
 26429  HEAP32[i11 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
 26430  i1 = i10 + 16 | 0;
 26431  i11 = i2 + 16 | 0;
 26432  HEAP32[i1 >> 2] = HEAP32[i11 >> 2];
 26433  HEAP32[i1 + 4 >> 2] = HEAP32[i11 + 4 >> 2];
 26434  HEAP32[i1 + 8 >> 2] = HEAP32[i11 + 8 >> 2];
 26435  HEAP32[i1 + 12 >> 2] = HEAP32[i11 + 12 >> 2];
 26436  i11 = i10 + 32 | 0;
 26437  i1 = i2 + 32 | 0;
 26438  HEAP32[i11 >> 2] = HEAP32[i1 >> 2];
 26439  HEAP32[i11 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
 26440  HEAP32[i11 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
 26441  HEAP32[i11 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
 26442  i1 = i10 + 48 | 0;
 26443  i11 = i1;
 26444  i2 = i12;
 26445  HEAP32[i11 >> 2] = HEAP32[i2 >> 2];
 26446  HEAP32[i11 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
 26447  HEAP32[i11 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
 26448  HEAP32[i11 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
 26449  i2 = i10 + 64 | 0;
 26450  i11 = i4;
 26451  HEAP32[i2 >> 2] = HEAP32[i11 >> 2];
 26452  HEAP32[i2 + 4 >> 2] = HEAP32[i11 + 4 >> 2];
 26453  HEAP32[i2 + 8 >> 2] = HEAP32[i11 + 8 >> 2];
 26454  HEAP32[i2 + 12 >> 2] = HEAP32[i11 + 12 >> 2];
 26455  i11 = i10 + 80 | 0;
 26456  i2 = i4 + 16 | 0;
 26457  HEAP32[i11 >> 2] = HEAP32[i2 >> 2];
 26458  HEAP32[i11 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
 26459  HEAP32[i11 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
 26460  HEAP32[i11 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
 26461  i2 = i10 + 96 | 0;
 26462  i11 = i4 + 32 | 0;
 26463  HEAP32[i2 >> 2] = HEAP32[i11 >> 2];
 26464  HEAP32[i2 + 4 >> 2] = HEAP32[i11 + 4 >> 2];
 26465  HEAP32[i2 + 8 >> 2] = HEAP32[i11 + 8 >> 2];
 26466  HEAP32[i2 + 12 >> 2] = HEAP32[i11 + 12 >> 2];
 26467  i11 = i10 + 112 | 0;
 26468  i2 = i11;
 26469  i4 = i18;
 26470  HEAP32[i2 >> 2] = HEAP32[i4 >> 2];
 26471  HEAP32[i2 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
 26472  HEAP32[i2 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
 26473  HEAP32[i2 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
 26474  i4 = i8 | 0;
 26475  __ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i9, i10, i4, 0, 0);
 26476  i2 = (HEAP8[i28] | 0) == 0;
 26477  i18 = i8 + 20 | 0;
 26478  i12 = i7 | 0;
 26479  HEAP32[i12 >> 2] = HEAP32[i18 >> 2];
 26480  HEAP32[i12 + 4 >> 2] = HEAP32[i18 + 4 >> 2];
 26481  HEAP32[i12 + 8 >> 2] = HEAP32[i18 + 8 >> 2];
 26482  HEAP32[i12 + 12 >> 2] = HEAP32[i18 + 12 >> 2];
 26483  if (i2) {
 26484   i29 = 0;
 26485   STACKTOP = i7;
 26486   return i29 | 0;
 26488  d30 = +HEAPF32[i27 >> 2];
 26489  i2 = i8 + 4 | 0;
 26490  d31 = +HEAPF32[i2 >> 2];
 26491  i32 = i8 + 8 | 0;
 26492  d33 = +HEAPF32[i32 >> 2];
 26493  i34 = i8 + 12 | 0;
 26494  d35 = +HEAPF32[i34 >> 2];
 26495  i36 = i8 + 16 | 0;
 26496  d37 = +HEAPF32[i36 >> 2];
 26497  do {
 26498   if (d30 > .0010000000474974513) {
 26499    i8 = i6;
 26500    i38 = i1 | 0;
 26501    i39 = i10 + 52 | 0;
 26502    i40 = i10 + 56 | 0;
 26503    i41 = i11 | 0;
 26504    i42 = i10 + 116 | 0;
 26505    i43 = i10 + 120 | 0;
 26506    d44 = d35;
 26507    d45 = d33;
 26508    d46 = d31;
 26509    d47 = 0.0;
 26510    i48 = 1;
 26511    d49 = d30;
 26512    while (1) {
 26513     if ((i48 | 0) > 32) {
 26514      i29 = 0;
 26515      i50 = 2068;
 26516      break;
 26518     d51 = d47 - d49 / (d26 * d44 + (d24 * d46 + d25 * d45));
 26519     if (!(d51 >= 0.0 & d51 <= 1.0 & d51 > d47)) {
 26520      i29 = 0;
 26521      i50 = 2067;
 26522      break;
 26524     FUNCTION_TABLE_vif[HEAP32[HEAP32[i8 >> 2] >> 2] & 31](i6, d51);
 26525     d52 = 1.0 - d51;
 26526     HEAPF32[i38 >> 2] = d52 * +HEAPF32[i14 >> 2] + d51 * +HEAPF32[i13 >> 2];
 26527     HEAPF32[i39 >> 2] = d52 * +HEAPF32[i16 >> 2] + d51 * +HEAPF32[i15 >> 2];
 26528     HEAPF32[i40 >> 2] = d52 * +HEAPF32[i3 >> 2] + d51 * +HEAPF32[i17 >> 2];
 26529     HEAPF32[i41 >> 2] = d52 * +HEAPF32[i20 >> 2] + d51 * +HEAPF32[i19 >> 2];
 26530     HEAPF32[i42 >> 2] = d52 * +HEAPF32[i22 >> 2] + d51 * +HEAPF32[i21 >> 2];
 26531     HEAPF32[i43 >> 2] = d52 * +HEAPF32[i5 >> 2] + d51 * +HEAPF32[i23 >> 2];
 26532     __ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i9, i10, i4, 0, 0);
 26533     if ((HEAP8[i28] | 0) == 0) {
 26534      i29 = 0;
 26535      i50 = 2070;
 26536      break;
 26538     d52 = +HEAPF32[i27 >> 2];
 26539     if (d52 < 0.0) {
 26540      i50 = 2059;
 26541      break;
 26543     HEAP32[i12 >> 2] = HEAP32[i18 >> 2];
 26544     HEAP32[i12 + 4 >> 2] = HEAP32[i18 + 4 >> 2];
 26545     HEAP32[i12 + 8 >> 2] = HEAP32[i18 + 8 >> 2];
 26546     HEAP32[i12 + 12 >> 2] = HEAP32[i18 + 12 >> 2];
 26547     d53 = +HEAPF32[i2 >> 2];
 26548     d54 = +HEAPF32[i32 >> 2];
 26549     d55 = +HEAPF32[i34 >> 2];
 26550     if (d52 > .0010000000474974513) {
 26551      d44 = d55;
 26552      d45 = d54;
 26553      d46 = d53;
 26554      d47 = d51;
 26555      i48 = i48 + 1 | 0;
 26556      d49 = d52;
 26557     } else {
 26558      i50 = 2061;
 26559      break;
 26562    if ((i50 | 0) == 2059) {
 26563     HEAPF32[i6 + 164 >> 2] = d51;
 26564     d49 = +HEAPF32[i32 >> 2];
 26565     d47 = +HEAPF32[i34 >> 2];
 26566     d46 = +HEAPF32[i36 >> 2];
 26567     HEAPF32[i6 + 132 >> 2] = +HEAPF32[i2 >> 2];
 26568     HEAPF32[i6 + 136 >> 2] = d49;
 26569     HEAPF32[i6 + 140 >> 2] = d47;
 26570     HEAPF32[i6 + 144 >> 2] = d46;
 26571     i48 = i6 + 148 | 0;
 26572     HEAP32[i48 >> 2] = HEAP32[i18 >> 2];
 26573     HEAP32[i48 + 4 >> 2] = HEAP32[i18 + 4 >> 2];
 26574     HEAP32[i48 + 8 >> 2] = HEAP32[i18 + 8 >> 2];
 26575     HEAP32[i48 + 12 >> 2] = HEAP32[i18 + 12 >> 2];
 26576     i29 = 1;
 26577     STACKTOP = i7;
 26578     return i29 | 0;
 26579    } else if ((i50 | 0) == 2068) {
 26580     STACKTOP = i7;
 26581     return i29 | 0;
 26582    } else if ((i50 | 0) == 2061) {
 26583     d56 = +HEAPF32[i36 >> 2];
 26584     d57 = d55;
 26585     d58 = d54;
 26586     d59 = d53;
 26587     d60 = d51;
 26588     break;
 26589    } else if ((i50 | 0) == 2067) {
 26590     STACKTOP = i7;
 26591     return i29 | 0;
 26592    } else if ((i50 | 0) == 2070) {
 26593     STACKTOP = i7;
 26594     return i29 | 0;
 26596   } else {
 26597    d56 = d37;
 26598    d57 = d35;
 26599    d58 = d33;
 26600    d59 = d31;
 26601    d60 = 0.0;
 26603  } while (0);
 26604  if (d26 * d57 + (d24 * d59 + d25 * d58) >= -0.0 - +HEAPF32[i6 + 172 >> 2]) {
 26605   i29 = 0;
 26606   STACKTOP = i7;
 26607   return i29 | 0;
 26609  HEAPF32[i6 + 164 >> 2] = d60;
 26610  HEAPF32[i6 + 132 >> 2] = d59;
 26611  HEAPF32[i6 + 136 >> 2] = d58;
 26612  HEAPF32[i6 + 140 >> 2] = d57;
 26613  HEAPF32[i6 + 144 >> 2] = d56;
 26614  i50 = i6 + 148 | 0;
 26615  HEAP32[i50 >> 2] = HEAP32[i12 >> 2];
 26616  HEAP32[i50 + 4 >> 2] = HEAP32[i12 + 4 >> 2];
 26617  HEAP32[i50 + 8 >> 2] = HEAP32[i12 + 8 >> 2];
 26618  HEAP32[i50 + 12 >> 2] = HEAP32[i12 + 12 >> 2];
 26619  i29 = 1;
 26620  STACKTOP = i7;
 26621  return i29 | 0;
 26623 function __ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback13ProcessIslandEPP17btCollisionObjectiPP20btPersistentManifoldii(i1, i2, i3, i4, i5, i6) {
 26624  i1 = i1 | 0;
 26625  i2 = i2 | 0;
 26626  i3 = i3 | 0;
 26627  i4 = i4 | 0;
 26628  i5 = i5 | 0;
 26629  i6 = i6 | 0;
 26630  var i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0;
 26631  i7 = HEAP32[i1 + 16 >> 2] | 0;
 26632  if ((i6 | 0) < 0) {
 26633   if ((i7 | 0) == (-i5 | 0)) {
 26634    return;
 26636   i8 = HEAP32[i1 + 8 >> 2] | 0;
 26637   i9 = HEAP32[(HEAP32[i8 >> 2] | 0) + 12 >> 2] | 0;
 26638   i10 = HEAP32[i1 + 12 >> 2] | 0;
 26639   i11 = HEAP32[i1 + 4 >> 2] | 0;
 26640   i12 = HEAP32[i1 + 20 >> 2] | 0;
 26641   i13 = HEAP32[i1 + 24 >> 2] | 0;
 26642   i14 = HEAP32[i1 + 28 >> 2] | 0;
 26643   +FUNCTION_TABLE_fiiiiiiiiiii[i9 & 3](i8, i2, i3, i4, i5, i10, i7, i11, i12, i13, i14);
 26644   return;
 26646  i14 = i1 + 12 | 0;
 26647  i13 = 0;
 26648  while (1) {
 26649   if ((i13 | 0) >= (i7 | 0)) {
 26650    i15 = 0;
 26651    i16 = 0;
 26652    break;
 26654   i17 = HEAP32[i14 >> 2] | 0;
 26655   i18 = i17 + (i13 << 2) | 0;
 26656   i12 = HEAP32[i18 >> 2] | 0;
 26657   i11 = HEAP32[(HEAP32[i12 + 24 >> 2] | 0) + 208 >> 2] | 0;
 26658   if ((i11 | 0) > -1) {
 26659    i19 = i11;
 26660   } else {
 26661    i19 = HEAP32[(HEAP32[i12 + 28 >> 2] | 0) + 208 >> 2] | 0;
 26663   if ((i19 | 0) == (i6 | 0)) {
 26664    i20 = 0;
 26665    i21 = i13;
 26666    i22 = 889;
 26667    break;
 26668   } else {
 26669    i13 = i13 + 1 | 0;
 26672  if ((i22 | 0) == 889) {
 26673   while (1) {
 26674    i22 = 0;
 26675    i13 = HEAP32[i17 + (i21 << 2) >> 2] | 0;
 26676    i19 = HEAP32[(HEAP32[i13 + 24 >> 2] | 0) + 208 >> 2] | 0;
 26677    if ((i19 | 0) > -1) {
 26678     i23 = i19;
 26679    } else {
 26680     i23 = HEAP32[(HEAP32[i13 + 28 >> 2] | 0) + 208 >> 2] | 0;
 26682    i13 = ((i23 | 0) == (i6 | 0)) + i20 | 0;
 26683    i19 = i21 + 1 | 0;
 26684    if ((i19 | 0) < (i7 | 0)) {
 26685     i20 = i13;
 26686     i21 = i19;
 26687     i22 = 889;
 26688    } else {
 26689     i15 = i13;
 26690     i16 = i18;
 26691     break;
 26695  i18 = i1 + 4 | 0;
 26696  i22 = HEAP32[i18 >> 2] | 0;
 26697  if ((HEAP32[i22 + 68 >> 2] | 0) < 2) {
 26698   if ((i15 | 0) == (-i5 | 0)) {
 26699    return;
 26701   i21 = HEAP32[i1 + 8 >> 2] | 0;
 26702   i20 = HEAP32[(HEAP32[i21 >> 2] | 0) + 12 >> 2] | 0;
 26703   i7 = HEAP32[i1 + 20 >> 2] | 0;
 26704   i6 = HEAP32[i1 + 24 >> 2] | 0;
 26705   i23 = HEAP32[i1 + 28 >> 2] | 0;
 26706   +FUNCTION_TABLE_fiiiiiiiiiii[i20 & 3](i21, i2, i3, i4, i5, i16, i15, i22, i7, i6, i23);
 26707   return;
 26709  if ((i3 | 0) > 0) {
 26710   i23 = i1 + 36 | 0;
 26711   i6 = i1 + 40 | 0;
 26712   i7 = i1 + 44 | 0;
 26713   i22 = i1 + 48 | 0;
 26714   i21 = 0;
 26715   i20 = HEAP32[i23 >> 2] | 0;
 26716   i17 = HEAP32[i6 >> 2] | 0;
 26717   while (1) {
 26718    i13 = i2 + (i21 << 2) | 0;
 26719    do {
 26720     if ((i20 | 0) == (i17 | 0)) {
 26721      i19 = (i17 | 0) == 0 ? 1 : i17 << 1;
 26722      if ((i17 | 0) >= (i19 | 0)) {
 26723       i24 = i17;
 26724       i25 = i17;
 26725       break;
 26727      if ((i19 | 0) == 0) {
 26728       i26 = 0;
 26729       i27 = i17;
 26730      } else {
 26731       i14 = __Z22btAlignedAllocInternalji(i19 << 2, 16) | 0;
 26732       i26 = i14;
 26733       i27 = HEAP32[i23 >> 2] | 0;
 26735      if ((i27 | 0) > 0) {
 26736       i14 = 0;
 26737       do {
 26738        i12 = i26 + (i14 << 2) | 0;
 26739        if ((i12 | 0) != 0) {
 26740         HEAP32[i12 >> 2] = HEAP32[(HEAP32[i7 >> 2] | 0) + (i14 << 2) >> 2];
 26742        i14 = i14 + 1 | 0;
 26743       } while ((i14 | 0) < (i27 | 0));
 26745      i14 = HEAP32[i7 >> 2] | 0;
 26746      if ((i14 | 0) == 0) {
 26747       i28 = i27;
 26748      } else {
 26749       if ((HEAP8[i22] | 0) == 0) {
 26750        i29 = i27;
 26751       } else {
 26752        __Z21btAlignedFreeInternalPv(i14);
 26753        i29 = HEAP32[i23 >> 2] | 0;
 26755       HEAP32[i7 >> 2] = 0;
 26756       i28 = i29;
 26758      HEAP8[i22] = 1;
 26759      HEAP32[i7 >> 2] = i26;
 26760      HEAP32[i6 >> 2] = i19;
 26761      i24 = i28;
 26762      i25 = i19;
 26763     } else {
 26764      i24 = i20;
 26765      i25 = i17;
 26767    } while (0);
 26768    i14 = (HEAP32[i7 >> 2] | 0) + (i24 << 2) | 0;
 26769    if ((i14 | 0) != 0) {
 26770     HEAP32[i14 >> 2] = HEAP32[i13 >> 2];
 26772    i14 = i24 + 1 | 0;
 26773    HEAP32[i23 >> 2] = i14;
 26774    i12 = i21 + 1 | 0;
 26775    if ((i12 | 0) < (i3 | 0)) {
 26776     i21 = i12;
 26777     i20 = i14;
 26778     i17 = i25;
 26779    } else {
 26780     break;
 26784  if ((i5 | 0) > 0) {
 26785   i25 = i1 + 56 | 0;
 26786   i17 = i1 + 60 | 0;
 26787   i20 = i1 + 64 | 0;
 26788   i21 = i1 + 68 | 0;
 26789   i3 = 0;
 26790   i23 = HEAP32[i25 >> 2] | 0;
 26791   i24 = HEAP32[i17 >> 2] | 0;
 26792   while (1) {
 26793    i7 = i4 + (i3 << 2) | 0;
 26794    do {
 26795     if ((i23 | 0) == (i24 | 0)) {
 26796      i28 = (i24 | 0) == 0 ? 1 : i24 << 1;
 26797      if ((i24 | 0) >= (i28 | 0)) {
 26798       i30 = i24;
 26799       i31 = i24;
 26800       break;
 26802      if ((i28 | 0) == 0) {
 26803       i32 = 0;
 26804       i33 = i24;
 26805      } else {
 26806       i6 = __Z22btAlignedAllocInternalji(i28 << 2, 16) | 0;
 26807       i32 = i6;
 26808       i33 = HEAP32[i25 >> 2] | 0;
 26810      if ((i33 | 0) > 0) {
 26811       i6 = 0;
 26812       do {
 26813        i26 = i32 + (i6 << 2) | 0;
 26814        if ((i26 | 0) != 0) {
 26815         HEAP32[i26 >> 2] = HEAP32[(HEAP32[i20 >> 2] | 0) + (i6 << 2) >> 2];
 26817        i6 = i6 + 1 | 0;
 26818       } while ((i6 | 0) < (i33 | 0));
 26820      i6 = HEAP32[i20 >> 2] | 0;
 26821      if ((i6 | 0) == 0) {
 26822       i34 = i33;
 26823      } else {
 26824       if ((HEAP8[i21] | 0) == 0) {
 26825        i35 = i33;
 26826       } else {
 26827        __Z21btAlignedFreeInternalPv(i6);
 26828        i35 = HEAP32[i25 >> 2] | 0;
 26830       HEAP32[i20 >> 2] = 0;
 26831       i34 = i35;
 26833      HEAP8[i21] = 1;
 26834      HEAP32[i20 >> 2] = i32;
 26835      HEAP32[i17 >> 2] = i28;
 26836      i30 = i34;
 26837      i31 = i28;
 26838     } else {
 26839      i30 = i23;
 26840      i31 = i24;
 26842    } while (0);
 26843    i13 = (HEAP32[i20 >> 2] | 0) + (i30 << 2) | 0;
 26844    if ((i13 | 0) != 0) {
 26845     HEAP32[i13 >> 2] = HEAP32[i7 >> 2];
 26847    i13 = i30 + 1 | 0;
 26848    HEAP32[i25 >> 2] = i13;
 26849    i6 = i3 + 1 | 0;
 26850    if ((i6 | 0) < (i5 | 0)) {
 26851     i3 = i6;
 26852     i23 = i13;
 26853     i24 = i31;
 26854    } else {
 26855     break;
 26859  i31 = i1 + 76 | 0;
 26860  if ((i15 | 0) > 0) {
 26861   i24 = i1 + 80 | 0;
 26862   i23 = i1 + 84 | 0;
 26863   i3 = i1 + 88 | 0;
 26864   i5 = 0;
 26865   i25 = HEAP32[i31 >> 2] | 0;
 26866   i30 = HEAP32[i24 >> 2] | 0;
 26867   while (1) {
 26868    i20 = i16 + (i5 << 2) | 0;
 26869    do {
 26870     if ((i25 | 0) == (i30 | 0)) {
 26871      i34 = (i30 | 0) == 0 ? 1 : i30 << 1;
 26872      if ((i30 | 0) >= (i34 | 0)) {
 26873       i36 = i30;
 26874       i37 = i30;
 26875       break;
 26877      if ((i34 | 0) == 0) {
 26878       i38 = 0;
 26879       i39 = i30;
 26880      } else {
 26881       i17 = __Z22btAlignedAllocInternalji(i34 << 2, 16) | 0;
 26882       i38 = i17;
 26883       i39 = HEAP32[i31 >> 2] | 0;
 26885      if ((i39 | 0) > 0) {
 26886       i17 = 0;
 26887       do {
 26888        i32 = i38 + (i17 << 2) | 0;
 26889        if ((i32 | 0) != 0) {
 26890         HEAP32[i32 >> 2] = HEAP32[(HEAP32[i23 >> 2] | 0) + (i17 << 2) >> 2];
 26892        i17 = i17 + 1 | 0;
 26893       } while ((i17 | 0) < (i39 | 0));
 26895      i17 = HEAP32[i23 >> 2] | 0;
 26896      if ((i17 | 0) == 0) {
 26897       i40 = i39;
 26898      } else {
 26899       if ((HEAP8[i3] | 0) == 0) {
 26900        i41 = i39;
 26901       } else {
 26902        __Z21btAlignedFreeInternalPv(i17);
 26903        i41 = HEAP32[i31 >> 2] | 0;
 26905       HEAP32[i23 >> 2] = 0;
 26906       i40 = i41;
 26908      HEAP8[i3] = 1;
 26909      HEAP32[i23 >> 2] = i38;
 26910      HEAP32[i24 >> 2] = i34;
 26911      i36 = i40;
 26912      i37 = i34;
 26913     } else {
 26914      i36 = i25;
 26915      i37 = i30;
 26917    } while (0);
 26918    i7 = (HEAP32[i23 >> 2] | 0) + (i36 << 2) | 0;
 26919    if ((i7 | 0) != 0) {
 26920     HEAP32[i7 >> 2] = HEAP32[i20 >> 2];
 26922    i7 = i36 + 1 | 0;
 26923    HEAP32[i31 >> 2] = i7;
 26924    i17 = i5 + 1 | 0;
 26925    if ((i17 | 0) < (i15 | 0)) {
 26926     i5 = i17;
 26927     i25 = i7;
 26928     i30 = i37;
 26929    } else {
 26930     i42 = i7;
 26931     break;
 26934  } else {
 26935   i42 = HEAP32[i31 >> 2] | 0;
 26937  if (((HEAP32[i1 + 56 >> 2] | 0) + i42 | 0) <= (HEAP32[(HEAP32[i18 >> 2] | 0) + 68 >> 2] | 0)) {
 26938   return;
 26940  __ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback18processConstraintsEv(i1);
 26941  return;
 26943 function __ZN15btGjkEpaSolver211PenetrationEPK13btConvexShapeRK11btTransformS2_S5_RK9btVector3RNS_8sResultsEb(i1, i2, i3, i4, i5, i6, i7) {
 26944  i1 = i1 | 0;
 26945  i2 = i2 | 0;
 26946  i3 = i3 | 0;
 26947  i4 = i4 | 0;
 26948  i5 = i5 | 0;
 26949  i6 = i6 | 0;
 26950  i7 = i7 | 0;
 26951  var i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, i23 = 0, d24 = 0.0, d25 = 0.0, i26 = 0, d27 = 0.0, i28 = 0, d29 = 0.0, i30 = 0, d31 = 0.0, d32 = 0.0, i33 = 0, d34 = 0.0, i35 = 0, d36 = 0.0, i37 = 0, d38 = 0.0, d39 = 0.0, d40 = 0.0, d41 = 0.0, d42 = 0.0, d43 = 0.0, d44 = 0.0, d45 = 0.0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, d55 = 0.0, d56 = 0.0, d57 = 0.0, i58 = 0;
 26952  i8 = STACKTOP;
 26953  STACKTOP = STACKTOP + 10368 | 0;
 26954  i9 = i8 | 0;
 26955  i10 = i8 + 128 | 0;
 26956  i11 = i8 + 512 | 0;
 26957  i12 = i8 + 528 | 0;
 26958  i13 = i8 + 10336 | 0;
 26959  i14 = i8 + 10352 | 0;
 26960  i15 = i6 + 20 | 0;
 26961  i16 = i6 + 20 | 0;
 26962  i17 = i6 + 4 | 0;
 26963  _memset(i16 | 0, 0, 16);
 26964  HEAP32[i17 >> 2] = HEAP32[i15 >> 2];
 26965  HEAP32[i17 + 4 >> 2] = HEAP32[i15 + 4 >> 2];
 26966  HEAP32[i17 + 8 >> 2] = HEAP32[i15 + 8 >> 2];
 26967  HEAP32[i17 + 12 >> 2] = HEAP32[i15 + 12 >> 2];
 26968  i15 = i6 | 0;
 26969  HEAP32[i15 >> 2] = 0;
 26970  i17 = i9 | 0;
 26971  HEAP32[i17 >> 2] = i1;
 26972  HEAP32[i9 + 4 >> 2] = i3;
 26973  d18 = +HEAPF32[i4 >> 2];
 26974  i3 = i2 | 0;
 26975  d19 = +HEAPF32[i3 >> 2];
 26976  d20 = +HEAPF32[i4 + 16 >> 2];
 26977  i1 = i2 + 16 | 0;
 26978  d21 = +HEAPF32[i1 >> 2];
 26979  d22 = +HEAPF32[i4 + 32 >> 2];
 26980  i23 = i2 + 32 | 0;
 26981  d24 = +HEAPF32[i23 >> 2];
 26982  d25 = d18 * d19 + d20 * d21 + d22 * d24;
 26983  i26 = i2 + 4 | 0;
 26984  d27 = +HEAPF32[i26 >> 2];
 26985  i28 = i2 + 20 | 0;
 26986  d29 = +HEAPF32[i28 >> 2];
 26987  i30 = i2 + 36 | 0;
 26988  d31 = +HEAPF32[i30 >> 2];
 26989  d32 = d18 * d27 + d20 * d29 + d22 * d31;
 26990  i33 = i2 + 8 | 0;
 26991  d34 = +HEAPF32[i33 >> 2];
 26992  i35 = i2 + 24 | 0;
 26993  d36 = +HEAPF32[i35 >> 2];
 26994  i37 = i2 + 40 | 0;
 26995  d38 = +HEAPF32[i37 >> 2];
 26996  d39 = d18 * d34 + d20 * d36 + d22 * d38;
 26997  d22 = +HEAPF32[i4 + 4 >> 2];
 26998  d20 = +HEAPF32[i4 + 20 >> 2];
 26999  d18 = +HEAPF32[i4 + 36 >> 2];
 27000  d40 = d19 * d22 + d21 * d20 + d24 * d18;
 27001  d41 = d27 * d22 + d29 * d20 + d31 * d18;
 27002  d42 = d34 * d22 + d36 * d20 + d38 * d18;
 27003  d18 = +HEAPF32[i4 + 8 >> 2];
 27004  d20 = +HEAPF32[i4 + 24 >> 2];
 27005  d22 = +HEAPF32[i4 + 40 >> 2];
 27006  d43 = d19 * d18 + d21 * d20 + d24 * d22;
 27007  d44 = d27 * d18 + d29 * d20 + d31 * d22;
 27008  d45 = d34 * d18 + d36 * d20 + d38 * d22;
 27009  HEAPF32[i9 + 8 >> 2] = d25;
 27010  HEAPF32[i9 + 12 >> 2] = d32;
 27011  HEAPF32[i9 + 16 >> 2] = d39;
 27012  HEAPF32[i9 + 20 >> 2] = 0.0;
 27013  HEAPF32[i9 + 24 >> 2] = d40;
 27014  HEAPF32[i9 + 28 >> 2] = d41;
 27015  HEAPF32[i9 + 32 >> 2] = d42;
 27016  HEAPF32[i9 + 36 >> 2] = 0.0;
 27017  HEAPF32[i9 + 40 >> 2] = d43;
 27018  HEAPF32[i9 + 44 >> 2] = d44;
 27019  HEAPF32[i9 + 48 >> 2] = d45;
 27020  HEAPF32[i9 + 52 >> 2] = 0.0;
 27021  i46 = i2 + 48 | 0;
 27022  d22 = +HEAPF32[i4 + 48 >> 2] - +HEAPF32[i46 >> 2];
 27023  i47 = i2 + 52 | 0;
 27024  d20 = +HEAPF32[i4 + 52 >> 2] - +HEAPF32[i47 >> 2];
 27025  i48 = i2 + 56 | 0;
 27026  d18 = +HEAPF32[i4 + 56 >> 2] - +HEAPF32[i48 >> 2];
 27027  HEAPF32[i9 + 56 >> 2] = d25;
 27028  HEAPF32[i9 + 60 >> 2] = d40;
 27029  HEAPF32[i9 + 64 >> 2] = d43;
 27030  HEAPF32[i9 + 68 >> 2] = 0.0;
 27031  HEAPF32[i9 + 72 >> 2] = d32;
 27032  HEAPF32[i9 + 76 >> 2] = d41;
 27033  HEAPF32[i9 + 80 >> 2] = d44;
 27034  HEAPF32[i9 + 84 >> 2] = 0.0;
 27035  HEAPF32[i9 + 88 >> 2] = d39;
 27036  HEAPF32[i9 + 92 >> 2] = d42;
 27037  HEAPF32[i9 + 96 >> 2] = d45;
 27038  HEAPF32[i9 + 100 >> 2] = 0.0;
 27039  HEAPF32[i9 + 104 >> 2] = d19 * d22 + d21 * d20 + d24 * d18;
 27040  HEAPF32[i9 + 108 >> 2] = d27 * d22 + d29 * d20 + d31 * d18;
 27041  HEAPF32[i9 + 112 >> 2] = d34 * d22 + d36 * d20 + d38 * d18;
 27042  HEAPF32[i9 + 116 >> 2] = 0.0;
 27043  i4 = i9 + 120 | 0;
 27044  HEAP32[i4 >> 2] = i7 ? 36 : 82;
 27045  i2 = i9 + 124 | 0;
 27046  HEAP32[i2 >> 2] = i7 ? 0 : 0;
 27047  HEAP32[i10 + 364 >> 2] = 0;
 27048  _memset(i10 + 128 | 0, 0, 16);
 27049  HEAP32[i10 + 376 >> 2] = 2;
 27050  HEAP32[i10 + 368 >> 2] = 0;
 27051  HEAPF32[i10 + 144 >> 2] = 0.0;
 27052  i7 = i5 | 0;
 27053  i49 = i5 + 4 | 0;
 27054  d18 = -0.0 - +HEAPF32[i49 >> 2];
 27055  i50 = i5 + 8 | 0;
 27056  d38 = -0.0 - +HEAPF32[i50 >> 2];
 27057  HEAPF32[i11 >> 2] = -0.0 - +HEAPF32[i7 >> 2];
 27058  HEAPF32[i11 + 4 >> 2] = d18;
 27059  HEAPF32[i11 + 8 >> 2] = d38;
 27060  HEAPF32[i11 + 12 >> 2] = 0.0;
 27061  i5 = __ZN12gjkepa2_impl3GJK8EvaluateERKNS_13MinkowskiDiffERK9btVector3(i10, i9, i11) | 0;
 27062  if ((i5 | 0) == 2) {
 27063   HEAP32[i15 >> 2] = 2;
 27064   i51 = 0;
 27065   STACKTOP = i8;
 27066   return i51 | 0;
 27067  } else if ((i5 | 0) == 1) {
 27068   i5 = i12 + 9800 | 0;
 27069   i11 = i12 + 9804 | 0;
 27070   _memset(i12 + 9792 | 0, 0, 16);
 27071   HEAP32[i12 >> 2] = 9;
 27072   i9 = i12 + 40 | 0;
 27073   HEAP32[i12 + 9788 >> 2] = 0;
 27074   _memset(i9 | 0, 0, 20);
 27075   i52 = 0;
 27076   do {
 27077    i53 = 128 - i52 - 1 | 0;
 27078    i54 = i12 + 2108 + (i53 * 60 | 0) | 0;
 27079    HEAP32[i12 + 2108 + (i53 * 60 | 0) + 48 >> 2] = 0;
 27080    HEAP32[i12 + 2108 + (i53 * 60 | 0) + 52 >> 2] = HEAP32[i5 >> 2];
 27081    i53 = HEAP32[i5 >> 2] | 0;
 27082    if ((i53 | 0) != 0) {
 27083     HEAP32[i53 + 48 >> 2] = i54;
 27085    HEAP32[i5 >> 2] = i54;
 27086    HEAP32[i11 >> 2] = (HEAP32[i11 >> 2] | 0) + 1;
 27087    i52 = i52 + 1 | 0;
 27088   } while (i52 >>> 0 < 128);
 27089   d38 = -0.0 - +HEAPF32[i49 >> 2];
 27090   d18 = -0.0 - +HEAPF32[i50 >> 2];
 27091   HEAPF32[i13 >> 2] = -0.0 - +HEAPF32[i7 >> 2];
 27092   HEAPF32[i13 + 4 >> 2] = d38;
 27093   HEAPF32[i13 + 8 >> 2] = d18;
 27094   HEAPF32[i13 + 12 >> 2] = 0.0;
 27095   if ((__ZN12gjkepa2_impl3EPA8EvaluateERNS_3GJKERK9btVector3(i12, i10, i13) | 0) == 9) {
 27096    HEAP32[i15 >> 2] = 3;
 27097    i51 = 0;
 27098    STACKTOP = i8;
 27099    return i51 | 0;
 27101   i13 = i12 + 36 | 0;
 27102   if ((HEAP32[i13 >> 2] | 0) == 0) {
 27103    d55 = 0.0;
 27104    d56 = 0.0;
 27105    d57 = 0.0;
 27106   } else {
 27107    i10 = i14 | 0;
 27108    i7 = i14 + 4 | 0;
 27109    i50 = i14 + 8 | 0;
 27110    d18 = 0.0;
 27111    d38 = 0.0;
 27112    d20 = 0.0;
 27113    i49 = 0;
 27114    while (1) {
 27115     i52 = HEAP32[i4 >> 2] | 0;
 27116     i11 = (HEAP32[i17 >> 2] | 0) + (HEAP32[i2 >> 2] | 0) | 0;
 27117     if ((i52 & 1 | 0) == 0) {
 27118      i58 = i52;
 27119     } else {
 27120      i58 = HEAP32[(HEAP32[i11 >> 2] | 0) + (i52 - 1) >> 2] | 0;
 27122     FUNCTION_TABLE_viii[i58 & 127](i14, i11, HEAP32[i12 + 4 + (i49 << 2) >> 2] | 0);
 27123     d36 = +HEAPF32[i12 + 20 + (i49 << 2) >> 2];
 27124     d22 = d20 + +HEAPF32[i10 >> 2] * d36;
 27125     d34 = d38 + d36 * +HEAPF32[i7 >> 2];
 27126     d31 = d18 + d36 * +HEAPF32[i50 >> 2];
 27127     i11 = i49 + 1 | 0;
 27128     if (i11 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0) {
 27129      d18 = d31;
 27130      d38 = d34;
 27131      d20 = d22;
 27132      i49 = i11;
 27133     } else {
 27134      d55 = d31;
 27135      d56 = d34;
 27136      d57 = d22;
 27137      break;
 27141   HEAP32[i15 >> 2] = 1;
 27142   d20 = +HEAPF32[i47 >> 2] + (d57 * +HEAPF32[i1 >> 2] + d56 * +HEAPF32[i28 >> 2] + d55 * +HEAPF32[i35 >> 2]);
 27143   d38 = +HEAPF32[i48 >> 2] + (d57 * +HEAPF32[i23 >> 2] + d56 * +HEAPF32[i30 >> 2] + d55 * +HEAPF32[i37 >> 2]);
 27144   HEAPF32[i6 + 4 >> 2] = +HEAPF32[i46 >> 2] + (d57 * +HEAPF32[i3 >> 2] + d56 * +HEAPF32[i26 >> 2] + d55 * +HEAPF32[i33 >> 2]);
 27145   HEAPF32[i6 + 8 >> 2] = d20;
 27146   HEAPF32[i6 + 12 >> 2] = d38;
 27147   HEAPF32[i6 + 16 >> 2] = 0.0;
 27148   d38 = +HEAPF32[i9 >> 2];
 27149   d20 = +HEAPF32[i12 + 56 >> 2];
 27150   d18 = +HEAPF32[i12 + 44 >> 2];
 27151   d22 = +HEAPF32[i12 + 48 >> 2];
 27152   d34 = d57 - d38 * d20;
 27153   d57 = d56 - d20 * d18;
 27154   d56 = d55 - d20 * d22;
 27155   d55 = +HEAPF32[i47 >> 2] + (d34 * +HEAPF32[i1 >> 2] + d57 * +HEAPF32[i28 >> 2] + d56 * +HEAPF32[i35 >> 2]);
 27156   d31 = +HEAPF32[i48 >> 2] + (d34 * +HEAPF32[i23 >> 2] + d57 * +HEAPF32[i30 >> 2] + d56 * +HEAPF32[i37 >> 2]);
 27157   HEAPF32[i16 >> 2] = +HEAPF32[i46 >> 2] + (d34 * +HEAPF32[i3 >> 2] + d57 * +HEAPF32[i26 >> 2] + d56 * +HEAPF32[i33 >> 2]);
 27158   HEAPF32[i6 + 24 >> 2] = d55;
 27159   HEAPF32[i6 + 28 >> 2] = d31;
 27160   HEAPF32[i6 + 32 >> 2] = 0.0;
 27161   HEAPF32[i6 + 36 >> 2] = -0.0 - d38;
 27162   HEAPF32[i6 + 40 >> 2] = -0.0 - d18;
 27163   HEAPF32[i6 + 44 >> 2] = -0.0 - d22;
 27164   HEAPF32[i6 + 48 >> 2] = 0.0;
 27165   HEAPF32[i6 + 52 >> 2] = -0.0 - d20;
 27166   i51 = 1;
 27167   STACKTOP = i8;
 27168   return i51 | 0;
 27169  } else {
 27170   i51 = 0;
 27171   STACKTOP = i8;
 27172   return i51 | 0;
 27174  return 0;
 27176 function __ZN22btVoronoiSimplexSolver25closestPtPointTetrahedronERK9btVector3S2_S2_S2_S2_R25btSubSimplexClosestResult(i1, i2, i3, i4, i5, i6, i7) {
 27177  i1 = i1 | 0;
 27178  i2 = i2 | 0;
 27179  i3 = i3 | 0;
 27180  i4 = i4 | 0;
 27181  i5 = i5 | 0;
 27182  i6 = i6 | 0;
 27183  i7 = i7 | 0;
 27184  var i8 = 0, i9 = 0, i10 = 0, i11 = 0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, d42 = 0.0, d43 = 0.0, d44 = 0.0;
 27185  i1 = STACKTOP;
 27186  STACKTOP = STACKTOP + 40 | 0;
 27187  i8 = i1 | 0;
 27188  i9 = i8 + 16 | 0;
 27189  HEAP16[i9 >> 1] = 0;
 27190  i10 = i7;
 27191  i11 = i2;
 27192  HEAP32[i10 >> 2] = HEAP32[i11 >> 2];
 27193  HEAP32[i10 + 4 >> 2] = HEAP32[i11 + 4 >> 2];
 27194  HEAP32[i10 + 8 >> 2] = HEAP32[i11 + 8 >> 2];
 27195  HEAP32[i10 + 12 >> 2] = HEAP32[i11 + 12 >> 2];
 27196  i11 = i7 + 16 | 0;
 27197  HEAP16[i11 >> 1] = HEAP16[i11 >> 1] | 15;
 27198  d12 = +HEAPF32[i4 >> 2];
 27199  d13 = +HEAPF32[i3 >> 2];
 27200  d14 = d12 - d13;
 27201  d15 = +HEAPF32[i4 + 4 >> 2];
 27202  d16 = +HEAPF32[i3 + 4 >> 2];
 27203  d17 = d15 - d16;
 27204  d18 = +HEAPF32[i4 + 8 >> 2];
 27205  d19 = +HEAPF32[i3 + 8 >> 2];
 27206  d20 = d18 - d19;
 27207  d21 = +HEAPF32[i5 >> 2];
 27208  d22 = d21 - d13;
 27209  d23 = +HEAPF32[i5 + 4 >> 2];
 27210  d24 = d23 - d16;
 27211  d25 = +HEAPF32[i5 + 8 >> 2];
 27212  d26 = d25 - d19;
 27213  d27 = d17 * d26 - d20 * d24;
 27214  d28 = d20 * d22 - d14 * d26;
 27215  d29 = d14 * d24 - d17 * d22;
 27216  d30 = +HEAPF32[i6 >> 2];
 27217  d31 = d30 - d13;
 27218  d32 = +HEAPF32[i6 + 4 >> 2];
 27219  d33 = d32 - d16;
 27220  d34 = +HEAPF32[i6 + 8 >> 2];
 27221  d35 = d34 - d19;
 27222  d36 = d31 * d27 + d33 * d28 + d29 * d35;
 27223  if (d36 * d36 < 9.99999905104687e-9) {
 27224   i37 = -1;
 27225  } else {
 27226   i37 = d36 * (d28 * (+HEAPF32[i2 + 4 >> 2] - d16) + d27 * (+HEAPF32[i2 >> 2] - d13) + d29 * (+HEAPF32[i2 + 8 >> 2] - d19)) < 0.0 | 0;
 27228  d29 = d24 * d35 - d26 * d33;
 27229  d27 = d26 * d31 - d22 * d35;
 27230  d28 = d22 * d33 - d24 * d31;
 27231  d36 = d14 * d29 + d17 * d27 + d28 * d20;
 27232  if (d36 * d36 < 9.99999905104687e-9) {
 27233   i38 = -1;
 27234  } else {
 27235   i38 = d36 * (d27 * (+HEAPF32[i2 + 4 >> 2] - d16) + d29 * (+HEAPF32[i2 >> 2] - d13) + d28 * (+HEAPF32[i2 + 8 >> 2] - d19)) < 0.0 | 0;
 27237  d28 = d33 * d20 - d35 * d17;
 27238  d29 = d35 * d14 - d31 * d20;
 27239  d20 = d31 * d17 - d33 * d14;
 27240  d14 = d22 * d28 + d24 * d29 + d20 * d26;
 27241  if (d14 * d14 < 9.99999905104687e-9) {
 27242   i39 = -1;
 27243  } else {
 27244   i39 = d14 * (d29 * (+HEAPF32[i2 + 4 >> 2] - d16) + d28 * (+HEAPF32[i2 >> 2] - d13) + d20 * (+HEAPF32[i2 + 8 >> 2] - d19)) < 0.0 | 0;
 27246  d20 = d30 - d12;
 27247  d30 = d32 - d15;
 27248  d32 = d34 - d18;
 27249  d34 = d21 - d12;
 27250  d21 = d23 - d15;
 27251  d23 = d25 - d18;
 27252  d25 = d30 * d23 - d32 * d21;
 27253  d28 = d32 * d34 - d20 * d23;
 27254  d23 = d20 * d21 - d30 * d34;
 27255  d34 = (d13 - d12) * d25 + (d16 - d15) * d28 + d23 * (d19 - d18);
 27256  if (d34 * d34 < 9.99999905104687e-9) {
 27257   i40 = -1;
 27258  } else {
 27259   i40 = d34 * (d28 * (+HEAPF32[i2 + 4 >> 2] - d15) + d25 * (+HEAPF32[i2 >> 2] - d12) + d23 * (+HEAPF32[i2 + 8 >> 2] - d18)) < 0.0 | 0;
 27261  if ((i38 | i37 | i39 | i40 | 0) < 0) {
 27262   HEAP8[i7 + 36 | 0] = 1;
 27263   i41 = 0;
 27264   STACKTOP = i1;
 27265   return i41 | 0;
 27267  i10 = (i37 | 0) != 0;
 27268  i37 = (i38 | 0) == 0;
 27269  i38 = (i39 | 0) == 0;
 27270  i39 = (i40 | 0) == 0;
 27271  if (i37 & (i10 ^ 1) & i38 & i39) {
 27272   i41 = 0;
 27273   STACKTOP = i1;
 27274   return i41 | 0;
 27276  do {
 27277   if (i10) {
 27278    __ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(0, i2, i3, i4, i5, i8) | 0;
 27279    d18 = +HEAPF32[i8 >> 2];
 27280    d23 = +HEAPF32[i8 + 4 >> 2];
 27281    d12 = +HEAPF32[i8 + 8 >> 2];
 27282    d25 = d18 - +HEAPF32[i2 >> 2];
 27283    d15 = d23 - +HEAPF32[i2 + 4 >> 2];
 27284    d28 = d12 - +HEAPF32[i2 + 8 >> 2];
 27285    d34 = d25 * d25 + d15 * d15 + d28 * d28;
 27286    if (d34 >= 3.4028234663852886e+38) {
 27287     d42 = 3.4028234663852886e+38;
 27288     break;
 27290    d28 = +HEAPF32[i8 + 12 >> 2];
 27291    HEAPF32[i7 >> 2] = d18;
 27292    HEAPF32[i7 + 4 >> 2] = d23;
 27293    HEAPF32[i7 + 8 >> 2] = d12;
 27294    HEAPF32[i7 + 12 >> 2] = d28;
 27295    i40 = HEAP16[i9 >> 1] | 0;
 27296    HEAP16[i11 >> 1] = i40 & 1 | HEAP16[i11 >> 1] & -16 | i40 & 2 | i40 & 4;
 27297    d28 = +HEAPF32[i8 + 24 >> 2];
 27298    d12 = +HEAPF32[i8 + 28 >> 2];
 27299    HEAPF32[i7 + 20 >> 2] = +HEAPF32[i8 + 20 >> 2];
 27300    HEAPF32[i7 + 24 >> 2] = d28;
 27301    HEAPF32[i7 + 28 >> 2] = d12;
 27302    HEAPF32[i7 + 32 >> 2] = 0.0;
 27303    d42 = d34;
 27304   } else {
 27305    d42 = 3.4028234663852886e+38;
 27307  } while (0);
 27308  do {
 27309   if (i37) {
 27310    d43 = d42;
 27311   } else {
 27312    __ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(0, i2, i3, i5, i6, i8) | 0;
 27313    d34 = +HEAPF32[i8 >> 2];
 27314    d12 = +HEAPF32[i8 + 4 >> 2];
 27315    d28 = +HEAPF32[i8 + 8 >> 2];
 27316    d23 = d34 - +HEAPF32[i2 >> 2];
 27317    d18 = d12 - +HEAPF32[i2 + 4 >> 2];
 27318    d15 = d28 - +HEAPF32[i2 + 8 >> 2];
 27319    d25 = d23 * d23 + d18 * d18 + d15 * d15;
 27320    if (d25 >= d42) {
 27321     d43 = d42;
 27322     break;
 27324    d15 = +HEAPF32[i8 + 12 >> 2];
 27325    HEAPF32[i7 >> 2] = d34;
 27326    HEAPF32[i7 + 4 >> 2] = d12;
 27327    HEAPF32[i7 + 8 >> 2] = d28;
 27328    HEAPF32[i7 + 12 >> 2] = d15;
 27329    i10 = HEAP16[i9 >> 1] | 0;
 27330    HEAP16[i11 >> 1] = i10 & 1 | HEAP16[i11 >> 1] & -16 | (i10 & 65535) >>> 1 << 2 & 4 | (i10 & 65535) >>> 2 << 3 & 8;
 27331    d15 = +HEAPF32[i8 + 24 >> 2];
 27332    d28 = +HEAPF32[i8 + 28 >> 2];
 27333    HEAPF32[i7 + 20 >> 2] = +HEAPF32[i8 + 20 >> 2];
 27334    HEAPF32[i7 + 24 >> 2] = 0.0;
 27335    HEAPF32[i7 + 28 >> 2] = d15;
 27336    HEAPF32[i7 + 32 >> 2] = d28;
 27337    d43 = d25;
 27339  } while (0);
 27340  do {
 27341   if (i38) {
 27342    d44 = d43;
 27343   } else {
 27344    __ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(0, i2, i3, i6, i4, i8) | 0;
 27345    d42 = +HEAPF32[i8 >> 2];
 27346    d25 = +HEAPF32[i8 + 4 >> 2];
 27347    d28 = +HEAPF32[i8 + 8 >> 2];
 27348    d15 = d42 - +HEAPF32[i2 >> 2];
 27349    d12 = d25 - +HEAPF32[i2 + 4 >> 2];
 27350    d34 = d28 - +HEAPF32[i2 + 8 >> 2];
 27351    d18 = d15 * d15 + d12 * d12 + d34 * d34;
 27352    if (d18 >= d43) {
 27353     d44 = d43;
 27354     break;
 27356    d34 = +HEAPF32[i8 + 12 >> 2];
 27357    HEAPF32[i7 >> 2] = d42;
 27358    HEAPF32[i7 + 4 >> 2] = d25;
 27359    HEAPF32[i7 + 8 >> 2] = d28;
 27360    HEAPF32[i7 + 12 >> 2] = d34;
 27361    i37 = HEAP16[i9 >> 1] | 0;
 27362    HEAP16[i11 >> 1] = i37 & 1 | HEAP16[i11 >> 1] & -16 | (i37 & 65535) >>> 2 << 1 & 2 | (i37 & 65535) >>> 1 << 3 & 8;
 27363    d34 = +HEAPF32[i8 + 28 >> 2];
 27364    d28 = +HEAPF32[i8 + 24 >> 2];
 27365    HEAPF32[i7 + 20 >> 2] = +HEAPF32[i8 + 20 >> 2];
 27366    HEAPF32[i7 + 24 >> 2] = d34;
 27367    HEAPF32[i7 + 28 >> 2] = 0.0;
 27368    HEAPF32[i7 + 32 >> 2] = d28;
 27369    d44 = d18;
 27371  } while (0);
 27372  if (i39) {
 27373   i41 = 1;
 27374   STACKTOP = i1;
 27375   return i41 | 0;
 27377  __ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(0, i2, i4, i6, i5, i8) | 0;
 27378  d43 = +HEAPF32[i8 >> 2];
 27379  d18 = +HEAPF32[i8 + 4 >> 2];
 27380  d28 = +HEAPF32[i8 + 8 >> 2];
 27381  d34 = d43 - +HEAPF32[i2 >> 2];
 27382  d25 = d18 - +HEAPF32[i2 + 4 >> 2];
 27383  d42 = d28 - +HEAPF32[i2 + 8 >> 2];
 27384  if (d34 * d34 + d25 * d25 + d42 * d42 >= d44) {
 27385   i41 = 1;
 27386   STACKTOP = i1;
 27387   return i41 | 0;
 27389  d44 = +HEAPF32[i8 + 12 >> 2];
 27390  HEAPF32[i7 >> 2] = d43;
 27391  HEAPF32[i7 + 4 >> 2] = d18;
 27392  HEAPF32[i7 + 8 >> 2] = d28;
 27393  HEAPF32[i7 + 12 >> 2] = d44;
 27394  i2 = HEAP16[i9 >> 1] | 0;
 27395  HEAP16[i11 >> 1] = i2 & 4 | HEAP16[i11 >> 1] & -16 | i2 << 1 & 2 | (i2 & 65535) >>> 1 << 3 & 8;
 27396  d44 = +HEAPF32[i8 + 20 >> 2];
 27397  d28 = +HEAPF32[i8 + 28 >> 2];
 27398  d18 = +HEAPF32[i8 + 24 >> 2];
 27399  HEAPF32[i7 + 20 >> 2] = 0.0;
 27400  HEAPF32[i7 + 24 >> 2] = d44;
 27401  HEAPF32[i7 + 28 >> 2] = d28;
 27402  HEAPF32[i7 + 32 >> 2] = d18;
 27403  i41 = 1;
 27404  STACKTOP = i1;
 27405  return i41 | 0;
 27407 function __ZN35btSequentialImpulseConstraintSolver20solveSingleIterationEiPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11) {
 27408  i1 = i1 | 0;
 27409  i2 = i2 | 0;
 27410  i3 = i3 | 0;
 27411  i4 = i4 | 0;
 27412  i5 = i5 | 0;
 27413  i6 = i6 | 0;
 27414  i7 = i7 | 0;
 27415  i8 = i8 | 0;
 27416  i9 = i9 | 0;
 27417  i10 = i10 | 0;
 27418  i11 = i11 | 0;
 27419  var i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, d27 = 0.0, d28 = 0.0;
 27420  i11 = i1 + 8 | 0;
 27421  i10 = HEAP32[i11 >> 2] | 0;
 27422  i6 = i1 + 48 | 0;
 27423  i5 = HEAP32[i6 >> 2] | 0;
 27424  i4 = i9 + 60 | 0;
 27425  i3 = HEAP32[i4 >> 2] | 0;
 27426  do {
 27427   if ((i3 & 1 | 0) == 0) {
 27428    i12 = i3;
 27429   } else {
 27430    if ((i2 & 7 | 0) != 0) {
 27431     i12 = i3;
 27432     break;
 27434    if ((i10 | 0) > 0) {
 27435     i13 = HEAP32[i1 + 76 >> 2] | 0;
 27436     i14 = i1 + 124 | 0;
 27437     i15 = 0;
 27438     i16 = HEAP32[i14 >> 2] | 0;
 27439     do {
 27440      i17 = i13 + (i15 << 2) | 0;
 27441      i18 = HEAP32[i17 >> 2] | 0;
 27442      i15 = i15 + 1 | 0;
 27443      i16 = (Math_imul(i16, 1664525) | 0) + 1013904223 | 0;
 27444      do {
 27445       if (i15 >>> 0 < 65537) {
 27446        i19 = i16 >>> 16 ^ i16;
 27447        if (i15 >>> 0 >= 257) {
 27448         i20 = i19;
 27449         break;
 27451        i21 = i19 >>> 8 ^ i19;
 27452        if (i15 >>> 0 >= 17) {
 27453         i20 = i21;
 27454         break;
 27456        i19 = i21 >>> 4 ^ i21;
 27457        if (i15 >>> 0 >= 5) {
 27458         i20 = i19;
 27459         break;
 27461        i21 = i19 >>> 2 ^ i19;
 27462        if (i15 >>> 0 >= 3) {
 27463         i20 = i21;
 27464         break;
 27466        i20 = i21 >>> 1 ^ i21;
 27467       } else {
 27468        i20 = i16;
 27470      } while (0);
 27471      i21 = i13 + (((i20 >>> 0) % (i15 >>> 0) | 0) << 2) | 0;
 27472      HEAP32[i17 >> 2] = HEAP32[i21 >> 2];
 27473      HEAP32[i21 >> 2] = i18;
 27474     } while ((i15 | 0) < (i10 | 0));
 27475     HEAP32[i14 >> 2] = i16;
 27477    if ((i5 | 0) > 0) {
 27478     i15 = HEAP32[i1 + 96 >> 2] | 0;
 27479     i13 = i1 + 124 | 0;
 27480     i21 = 0;
 27481     i19 = HEAP32[i13 >> 2] | 0;
 27482     do {
 27483      i22 = i15 + (i21 << 2) | 0;
 27484      i23 = HEAP32[i22 >> 2] | 0;
 27485      i21 = i21 + 1 | 0;
 27486      i19 = (Math_imul(i19, 1664525) | 0) + 1013904223 | 0;
 27487      do {
 27488       if (i21 >>> 0 < 65537) {
 27489        i24 = i19 >>> 16 ^ i19;
 27490        if (i21 >>> 0 >= 257) {
 27491         i25 = i24;
 27492         break;
 27494        i26 = i24 >>> 8 ^ i24;
 27495        if (i21 >>> 0 >= 17) {
 27496         i25 = i26;
 27497         break;
 27499        i24 = i26 >>> 4 ^ i26;
 27500        if (i21 >>> 0 >= 5) {
 27501         i25 = i24;
 27502         break;
 27504        i26 = i24 >>> 2 ^ i24;
 27505        if (i21 >>> 0 >= 3) {
 27506         i25 = i26;
 27507         break;
 27509        i25 = i26 >>> 1 ^ i26;
 27510       } else {
 27511        i25 = i19;
 27513      } while (0);
 27514      i18 = i15 + (((i25 >>> 0) % (i21 >>> 0) | 0) << 2) | 0;
 27515      HEAP32[i22 >> 2] = HEAP32[i18 >> 2];
 27516      HEAP32[i18 >> 2] = i23;
 27517     } while ((i21 | 0) < (i5 | 0));
 27518     HEAP32[i13 >> 2] = i19;
 27520    i12 = HEAP32[i4 >> 2] | 0;
 27522  } while (0);
 27523  i4 = i1 + 28 | 0;
 27524  i5 = (HEAP32[i4 >> 2] | 0) > 0;
 27525  if ((i12 & 256 | 0) == 0) {
 27526   if (i5) {
 27527    i12 = i1 + 36 | 0;
 27528    i25 = 0;
 27529    do {
 27530     i10 = HEAP32[i12 >> 2] | 0;
 27531     __ZN35btSequentialImpulseConstraintSolver33resolveSingleConstraintRowGenericER11btRigidBodyS1_RK18btSolverConstraint(0, HEAP32[i10 + (i25 * 136 | 0) + 104 >> 2] | 0, HEAP32[i10 + (i25 * 136 | 0) + 108 >> 2] | 0, i10 + (i25 * 136 | 0) | 0);
 27532     i25 = i25 + 1 | 0;
 27533    } while ((i25 | 0) < (HEAP32[i4 >> 2] | 0));
 27535   if ((i8 | 0) > 0) {
 27536    i25 = i9 + 12 | 0;
 27537    i12 = 0;
 27538    do {
 27539     i10 = HEAP32[i7 + (i12 << 2) >> 2] | 0;
 27540     FUNCTION_TABLE_viiif[HEAP32[(HEAP32[i10 >> 2] | 0) + 24 >> 2] & 15](i10, HEAP32[i10 + 24 >> 2] | 0, HEAP32[i10 + 28 >> 2] | 0, +HEAPF32[i25 >> 2]);
 27541     i12 = i12 + 1 | 0;
 27542    } while ((i12 | 0) < (i8 | 0));
 27544   i12 = HEAP32[i11 >> 2] | 0;
 27545   if ((i12 | 0) > 0) {
 27546    i25 = i1 + 76 | 0;
 27547    i10 = i1 + 16 | 0;
 27548    i20 = 0;
 27549    do {
 27550     i3 = HEAP32[(HEAP32[i25 >> 2] | 0) + (i20 << 2) >> 2] | 0;
 27551     i2 = HEAP32[i10 >> 2] | 0;
 27552     __ZN35btSequentialImpulseConstraintSolver36resolveSingleConstraintRowLowerLimitER11btRigidBodyS1_RK18btSolverConstraint(0, HEAP32[i2 + (i3 * 136 | 0) + 104 >> 2] | 0, HEAP32[i2 + (i3 * 136 | 0) + 108 >> 2] | 0, i2 + (i3 * 136 | 0) | 0);
 27553     i20 = i20 + 1 | 0;
 27554    } while ((i20 | 0) < (i12 | 0));
 27556   i12 = HEAP32[i6 >> 2] | 0;
 27557   if ((i12 | 0) <= 0) {
 27558    return +0.0;
 27560   i20 = i1 + 96 | 0;
 27561   i10 = i1 + 56 | 0;
 27562   i25 = i1 + 16 | 0;
 27563   i3 = 0;
 27564   do {
 27565    i2 = HEAP32[(HEAP32[i20 >> 2] | 0) + (i3 << 2) >> 2] | 0;
 27566    i21 = HEAP32[i10 >> 2] | 0;
 27567    d27 = +HEAPF32[(HEAP32[i25 >> 2] | 0) + ((HEAP32[i21 + (i2 * 136 | 0) + 100 >> 2] | 0) * 136 | 0) + 84 >> 2];
 27568    if (d27 > 0.0) {
 27569     d28 = d27 * +HEAPF32[i21 + (i2 * 136 | 0) + 88 >> 2];
 27570     HEAPF32[i21 + (i2 * 136 | 0) + 124 >> 2] = -0.0 - d28;
 27571     HEAPF32[i21 + (i2 * 136 | 0) + 128 >> 2] = d28;
 27572     __ZN35btSequentialImpulseConstraintSolver33resolveSingleConstraintRowGenericER11btRigidBodyS1_RK18btSolverConstraint(0, HEAP32[i21 + (i2 * 136 | 0) + 104 >> 2] | 0, HEAP32[i21 + (i2 * 136 | 0) + 108 >> 2] | 0, i21 + (i2 * 136 | 0) | 0);
 27574    i3 = i3 + 1 | 0;
 27575   } while ((i3 | 0) < (i12 | 0));
 27576   return +0.0;
 27577  } else {
 27578   if (i5) {
 27579    i5 = i1 + 36 | 0;
 27580    i12 = 0;
 27581    do {
 27582     i3 = HEAP32[i5 >> 2] | 0;
 27583     __ZN35btSequentialImpulseConstraintSolver33resolveSingleConstraintRowGenericER11btRigidBodyS1_RK18btSolverConstraint(0, HEAP32[i3 + (i12 * 136 | 0) + 104 >> 2] | 0, HEAP32[i3 + (i12 * 136 | 0) + 108 >> 2] | 0, i3 + (i12 * 136 | 0) | 0);
 27584     i12 = i12 + 1 | 0;
 27585    } while ((i12 | 0) < (HEAP32[i4 >> 2] | 0));
 27587   if ((i8 | 0) > 0) {
 27588    i4 = i9 + 12 | 0;
 27589    i9 = 0;
 27590    do {
 27591     i12 = HEAP32[i7 + (i9 << 2) >> 2] | 0;
 27592     FUNCTION_TABLE_viiif[HEAP32[(HEAP32[i12 >> 2] | 0) + 24 >> 2] & 15](i12, HEAP32[i12 + 24 >> 2] | 0, HEAP32[i12 + 28 >> 2] | 0, +HEAPF32[i4 >> 2]);
 27593     i9 = i9 + 1 | 0;
 27594    } while ((i9 | 0) < (i8 | 0));
 27596   i8 = HEAP32[i11 >> 2] | 0;
 27597   if ((i8 | 0) > 0) {
 27598    i11 = i1 + 76 | 0;
 27599    i9 = i1 + 16 | 0;
 27600    i4 = 0;
 27601    do {
 27602     i7 = HEAP32[(HEAP32[i11 >> 2] | 0) + (i4 << 2) >> 2] | 0;
 27603     i12 = HEAP32[i9 >> 2] | 0;
 27604     __ZN35btSequentialImpulseConstraintSolver36resolveSingleConstraintRowLowerLimitER11btRigidBodyS1_RK18btSolverConstraint(0, HEAP32[i12 + (i7 * 136 | 0) + 104 >> 2] | 0, HEAP32[i12 + (i7 * 136 | 0) + 108 >> 2] | 0, i12 + (i7 * 136 | 0) | 0);
 27605     i4 = i4 + 1 | 0;
 27606    } while ((i4 | 0) < (i8 | 0));
 27608   i8 = HEAP32[i6 >> 2] | 0;
 27609   if ((i8 | 0) <= 0) {
 27610    return +0.0;
 27612   i6 = i1 + 96 | 0;
 27613   i4 = i1 + 56 | 0;
 27614   i9 = i1 + 16 | 0;
 27615   i1 = 0;
 27616   do {
 27617    i11 = HEAP32[(HEAP32[i6 >> 2] | 0) + (i1 << 2) >> 2] | 0;
 27618    i7 = HEAP32[i4 >> 2] | 0;
 27619    d28 = +HEAPF32[(HEAP32[i9 >> 2] | 0) + ((HEAP32[i7 + (i11 * 136 | 0) + 100 >> 2] | 0) * 136 | 0) + 84 >> 2];
 27620    if (d28 > 0.0) {
 27621     d27 = d28 * +HEAPF32[i7 + (i11 * 136 | 0) + 88 >> 2];
 27622     HEAPF32[i7 + (i11 * 136 | 0) + 124 >> 2] = -0.0 - d27;
 27623     HEAPF32[i7 + (i11 * 136 | 0) + 128 >> 2] = d27;
 27624     __ZN35btSequentialImpulseConstraintSolver33resolveSingleConstraintRowGenericER11btRigidBodyS1_RK18btSolverConstraint(0, HEAP32[i7 + (i11 * 136 | 0) + 104 >> 2] | 0, HEAP32[i7 + (i11 * 136 | 0) + 108 >> 2] | 0, i7 + (i11 * 136 | 0) | 0);
 27626    i1 = i1 + 1 | 0;
 27627   } while ((i1 | 0) < (i8 | 0));
 27628   return +0.0;
 27630  return 0.0;
 27632 function __ZN27btContinuousConvexCollision20computeClosestPointsERK11btTransformS2_R16btPointCollector(i1, i2, i3, i4) {
 27633  i1 = i1 | 0;
 27634  i2 = i2 | 0;
 27635  i3 = i3 | 0;
 27636  i4 = i4 | 0;
 27637  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, d41 = 0.0, d42 = 0.0, d43 = 0.0, d44 = 0.0, i45 = 0, d46 = 0.0, i47 = 0, d48 = 0.0, i49 = 0, d50 = 0.0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0, d55 = 0.0, d56 = 0.0, d57 = 0.0, i58 = 0, i59 = 0, i60 = 0, i61 = 0;
 27638  i5 = STACKTOP;
 27639  STACKTOP = STACKTOP + 280 | 0;
 27640  i6 = i5 | 0;
 27641  i7 = i5 + 80 | 0;
 27642  i8 = i5 + 216 | 0;
 27643  i9 = i5 + 232 | 0;
 27644  i10 = i5 + 248 | 0;
 27645  i11 = i5 + 264 | 0;
 27646  i12 = i1 + 16 | 0;
 27647  if ((HEAP32[i12 >> 2] | 0) == 0) {
 27648   i13 = HEAP32[i1 + 12 >> 2] | 0;
 27649   i14 = HEAP32[i1 + 20 >> 2] | 0;
 27650   d15 = +HEAPF32[i2 >> 2];
 27651   d16 = +HEAPF32[i2 + 4 >> 2];
 27652   d17 = +HEAPF32[i2 + 8 >> 2];
 27653   d18 = +HEAPF32[i2 + 16 >> 2];
 27654   d19 = +HEAPF32[i2 + 20 >> 2];
 27655   d20 = +HEAPF32[i2 + 24 >> 2];
 27656   d21 = +HEAPF32[i2 + 32 >> 2];
 27657   d22 = +HEAPF32[i2 + 36 >> 2];
 27658   d23 = +HEAPF32[i2 + 40 >> 2];
 27659   d24 = +HEAPF32[i2 + 48 >> 2];
 27660   d25 = +HEAPF32[i2 + 52 >> 2];
 27661   d26 = +HEAPF32[i2 + 56 >> 2];
 27662   i27 = i3 | 0;
 27663   i28 = i3 + 16 | 0;
 27664   i29 = i3 + 32 | 0;
 27665   i30 = i3 + 4 | 0;
 27666   i31 = i3 + 20 | 0;
 27667   i32 = i3 + 36 | 0;
 27668   i33 = i3 + 8 | 0;
 27669   i34 = i3 + 24 | 0;
 27670   i35 = i3 + 40 | 0;
 27671   d36 = +HEAPF32[i27 >> 2];
 27672   d37 = +HEAPF32[i28 >> 2];
 27673   d38 = +HEAPF32[i29 >> 2];
 27674   d39 = +HEAPF32[i30 >> 2];
 27675   d40 = +HEAPF32[i31 >> 2];
 27676   d41 = +HEAPF32[i32 >> 2];
 27677   d42 = +HEAPF32[i33 >> 2];
 27678   d43 = +HEAPF32[i34 >> 2];
 27679   d44 = +HEAPF32[i35 >> 2];
 27680   i45 = i3 + 48 | 0;
 27681   d46 = -0.0 - +HEAPF32[i45 >> 2];
 27682   i47 = i3 + 52 | 0;
 27683   d48 = -0.0 - +HEAPF32[i47 >> 2];
 27684   i49 = i3 + 56 | 0;
 27685   d50 = -0.0 - +HEAPF32[i49 >> 2];
 27686   d51 = d15 * d36 + d18 * d37 + d21 * d38;
 27687   d52 = d16 * d36 + d19 * d37 + d22 * d38;
 27688   d53 = d17 * d36 + d20 * d37 + d23 * d38;
 27689   d54 = d15 * d39 + d18 * d40 + d21 * d41;
 27690   d55 = d16 * d39 + d19 * d40 + d22 * d41;
 27691   d56 = d17 * d39 + d20 * d40 + d23 * d41;
 27692   d57 = d15 * d42 + d18 * d43 + d21 * d44;
 27693   d21 = d16 * d42 + d19 * d43 + d22 * d44;
 27694   d22 = d17 * d42 + d20 * d43 + d23 * d44;
 27695   i58 = HEAP32[(HEAP32[i13 >> 2] | 0) + 60 >> 2] | 0;
 27696   i59 = i14 + 48 | 0;
 27697   d23 = -0.0 - +HEAPF32[i59 >> 2];
 27698   i60 = i14 + 52 | 0;
 27699   d20 = -0.0 - +HEAPF32[i60 >> 2];
 27700   i61 = i14 + 56 | 0;
 27701   d17 = -0.0 - +HEAPF32[i61 >> 2];
 27702   HEAPF32[i9 >> 2] = d51 * d23 + d54 * d20 + d57 * d17;
 27703   HEAPF32[i9 + 4 >> 2] = d52 * d23 + d55 * d20 + d21 * d17;
 27704   HEAPF32[i9 + 8 >> 2] = d53 * d23 + d56 * d20 + d22 * d17;
 27705   HEAPF32[i9 + 12 >> 2] = 0.0;
 27706   FUNCTION_TABLE_viii[i58 & 127](i8, i13, i9);
 27707   d17 = +HEAPF32[i8 >> 2];
 27708   d20 = +HEAPF32[i8 + 4 >> 2];
 27709   d23 = +HEAPF32[i8 + 8 >> 2];
 27710   d19 = d24 * d36 + d25 * d37 + d26 * d38 + (d36 * d46 + d37 * d48 + d38 * d50) + (d51 * d17 + d52 * d20 + d53 * d23);
 27711   d53 = d24 * d39 + d25 * d40 + d26 * d41 + (d39 * d46 + d40 * d48 + d41 * d50) + (d54 * d17 + d55 * d20 + d56 * d23);
 27712   d56 = d24 * d42 + d25 * d43 + d26 * d44 + (d42 * d46 + d43 * d48 + d44 * d50) + (d57 * d17 + d21 * d20 + d22 * d23);
 27713   d23 = +HEAPF32[i59 >> 2];
 27714   d22 = +HEAPF32[i60 >> 2];
 27715   d20 = +HEAPF32[i61 >> 2];
 27716   d21 = d20 * d56 + (d23 * d19 + d22 * d53) - +HEAPF32[i14 + 64 >> 2];
 27717   d17 = d19 - d23 * d21;
 27718   d23 = d53 - d22 * d21;
 27719   d22 = d56 - d20 * d21;
 27720   d20 = +HEAPF32[i27 >> 2];
 27721   d56 = +HEAPF32[i30 >> 2];
 27722   d53 = +HEAPF32[i33 >> 2];
 27723   d19 = +HEAPF32[i28 >> 2];
 27724   d57 = +HEAPF32[i31 >> 2];
 27725   d50 = +HEAPF32[i34 >> 2];
 27726   d44 = +HEAPF32[i47 >> 2] + (d17 * d19 + d23 * d57 + d22 * d50);
 27727   d48 = +HEAPF32[i29 >> 2];
 27728   d43 = +HEAPF32[i32 >> 2];
 27729   d46 = +HEAPF32[i35 >> 2];
 27730   d42 = +HEAPF32[i49 >> 2] + (d17 * d48 + d23 * d43 + d22 * d46);
 27731   HEAPF32[i10 >> 2] = +HEAPF32[i45 >> 2] + (d53 * d22 + (d20 * d17 + d56 * d23));
 27732   HEAPF32[i10 + 4 >> 2] = d44;
 27733   HEAPF32[i10 + 8 >> 2] = d42;
 27734   HEAPF32[i10 + 12 >> 2] = 0.0;
 27735   d42 = +HEAPF32[i59 >> 2];
 27736   d44 = +HEAPF32[i60 >> 2];
 27737   d23 = +HEAPF32[i61 >> 2];
 27738   HEAPF32[i11 >> 2] = d20 * d42 + d56 * d44 + d53 * d23;
 27739   HEAPF32[i11 + 4 >> 2] = d19 * d42 + d57 * d44 + d50 * d23;
 27740   HEAPF32[i11 + 8 >> 2] = d48 * d42 + d43 * d44 + d46 * d23;
 27741   HEAPF32[i11 + 12 >> 2] = 0.0;
 27742   FUNCTION_TABLE_viiif[HEAP32[(HEAP32[i4 >> 2] | 0) + 16 >> 2] & 15](i4, i11, i10, d21);
 27743   STACKTOP = i5;
 27744   return;
 27745  } else {
 27746   i10 = i1 + 4 | 0;
 27747   __ZN22btVoronoiSimplexSolver5resetEv(HEAP32[i10 >> 2] | 0);
 27748   i11 = HEAP32[i1 + 12 >> 2] | 0;
 27749   i61 = HEAP32[i12 >> 2] | 0;
 27750   i60 = HEAP32[i11 + 4 >> 2] | 0;
 27751   i59 = HEAP32[i61 + 4 >> 2] | 0;
 27752   d21 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i11 >> 2] | 0) + 44 >> 2] & 7](i11);
 27753   i45 = HEAP32[i12 >> 2] | 0;
 27754   d23 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i45 >> 2] | 0) + 44 >> 2] & 7](i45);
 27755   __ZN17btGjkPairDetectorC2EPK13btConvexShapeS2_iiffP22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver(i6, i11, i61, i60, i59, d21, d23, HEAP32[i10 >> 2] | 0, HEAP32[i1 + 8 >> 2] | 0);
 27756   HEAPF32[i7 + 128 >> 2] = 999999984306749400.0;
 27757   HEAP32[i7 + 132 >> 2] = 0;
 27758   i1 = i7;
 27759   i10 = i2;
 27760   HEAP32[i1 >> 2] = HEAP32[i10 >> 2];
 27761   HEAP32[i1 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
 27762   HEAP32[i1 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
 27763   HEAP32[i1 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
 27764   i10 = i7 + 16 | 0;
 27765   i1 = i2 + 16 | 0;
 27766   HEAP32[i10 >> 2] = HEAP32[i1 >> 2];
 27767   HEAP32[i10 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
 27768   HEAP32[i10 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
 27769   HEAP32[i10 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
 27770   i1 = i7 + 32 | 0;
 27771   i10 = i2 + 32 | 0;
 27772   HEAP32[i1 >> 2] = HEAP32[i10 >> 2];
 27773   HEAP32[i1 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
 27774   HEAP32[i1 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
 27775   HEAP32[i1 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
 27776   i10 = i7 + 48 | 0;
 27777   i1 = i2 + 48 | 0;
 27778   HEAP32[i10 >> 2] = HEAP32[i1 >> 2];
 27779   HEAP32[i10 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
 27780   HEAP32[i10 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
 27781   HEAP32[i10 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
 27782   i1 = i7 + 64 | 0;
 27783   i10 = i3;
 27784   HEAP32[i1 >> 2] = HEAP32[i10 >> 2];
 27785   HEAP32[i1 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
 27786   HEAP32[i1 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
 27787   HEAP32[i1 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
 27788   i10 = i7 + 80 | 0;
 27789   i1 = i3 + 16 | 0;
 27790   HEAP32[i10 >> 2] = HEAP32[i1 >> 2];
 27791   HEAP32[i10 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
 27792   HEAP32[i10 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
 27793   HEAP32[i10 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
 27794   i1 = i7 + 96 | 0;
 27795   i10 = i3 + 32 | 0;
 27796   HEAP32[i1 >> 2] = HEAP32[i10 >> 2];
 27797   HEAP32[i1 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
 27798   HEAP32[i1 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
 27799   HEAP32[i1 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
 27800   i10 = i7 + 112 | 0;
 27801   i1 = i3 + 48 | 0;
 27802   HEAP32[i10 >> 2] = HEAP32[i1 >> 2];
 27803   HEAP32[i10 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
 27804   HEAP32[i10 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
 27805   HEAP32[i10 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
 27806   __ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i6, i7, i4 | 0, 0, 0);
 27807   STACKTOP = i5;
 27808   return;
 27811 function __ZN16btCollisionWorld14debugDrawWorldEv(i1) {
 27812  i1 = i1 | 0;
 27813  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, d42 = 0.0, d43 = 0.0, d44 = 0.0, d45 = 0.0, d46 = 0.0, d47 = 0.0, d48 = 0.0;
 27814  i2 = STACKTOP;
 27815  STACKTOP = STACKTOP + 112 | 0;
 27816  i3 = i2 | 0;
 27817  i4 = i2 + 16 | 0;
 27818  i5 = i2 + 32 | 0;
 27819  i6 = i2 + 48 | 0;
 27820  i7 = i2 + 64 | 0;
 27821  i8 = i2 + 80 | 0;
 27822  i9 = i2 + 96 | 0;
 27823  i10 = i1;
 27824  do {
 27825   if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i10 >> 2] | 0) + 16 >> 2] & 127](i1) | 0) != 0) {
 27826    i11 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i10 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
 27827    if (((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i11 >> 2] | 0) + 48 >> 2] & 127](i11) | 0) & 8 | 0) == 0) {
 27828     break;
 27830    i11 = i1 + 24 | 0;
 27831    i12 = HEAP32[i11 >> 2] | 0;
 27832    i13 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i12 >> 2] | 0) + 36 >> 2] & 127](i12) | 0;
 27833    _memset(i3 | 0, 0, 16);
 27834    if ((i13 | 0) > 0) {
 27835     i14 = 0;
 27836    } else {
 27837     break;
 27839    do {
 27840     i12 = HEAP32[i11 >> 2] | 0;
 27841     i15 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i12 >> 2] | 0) + 40 >> 2] & 63](i12, i14) | 0;
 27842     i12 = HEAP32[i15 + 1116 >> 2] | 0;
 27843     if ((i12 | 0) > 0) {
 27844      i16 = 0;
 27845      do {
 27846       i17 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i10 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
 27847       FUNCTION_TABLE_viiifii[HEAP32[(HEAP32[i17 >> 2] | 0) + 32 >> 2] & 1](i17, i15 + 4 + (i16 * 276 | 0) + 32 | 0, i15 + 4 + (i16 * 276 | 0) + 64 | 0, +HEAPF32[i15 + 4 + (i16 * 276 | 0) + 80 >> 2], HEAP32[i15 + 4 + (i16 * 276 | 0) + 144 >> 2] | 0, i3);
 27848       i16 = i16 + 1 | 0;
 27849      } while ((i16 | 0) < (i12 | 0));
 27851     i14 = i14 + 1 | 0;
 27852    } while ((i14 | 0) < (i13 | 0));
 27854  } while (0);
 27855  if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i10 >> 2] | 0) + 16 >> 2] & 127](i1) | 0) == 0) {
 27856   STACKTOP = i2;
 27857   return;
 27859  i14 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i10 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
 27860  if (((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i14 >> 2] | 0) + 48 >> 2] & 127](i14) | 0) & 3 | 0) == 0) {
 27861   STACKTOP = i2;
 27862   return;
 27864  i14 = i1 + 8 | 0;
 27865  if ((HEAP32[i14 >> 2] | 0) <= 0) {
 27866   STACKTOP = i2;
 27867   return;
 27869  i3 = i1 + 16 | 0;
 27870  i13 = i1 + 80 | 0;
 27871  i11 = i7 | 0;
 27872  i12 = i7 + 4 | 0;
 27873  i16 = i7 + 8 | 0;
 27874  i15 = i7 + 12 | 0;
 27875  i17 = i5 | 0;
 27876  i18 = i5 + 4 | 0;
 27877  i19 = i5 + 8 | 0;
 27878  i20 = i6 | 0;
 27879  i21 = i6 + 4 | 0;
 27880  i22 = i6 + 8 | 0;
 27881  i23 = i8 | 0;
 27882  i24 = i8 + 4 | 0;
 27883  i25 = i8 + 8 | 0;
 27884  i26 = i9 | 0;
 27885  i27 = i9 + 4 | 0;
 27886  i28 = i9 + 8 | 0;
 27887  i29 = i5 + 12 | 0;
 27888  i30 = i8 + 12 | 0;
 27889  i31 = i6 + 12 | 0;
 27890  i32 = i9 + 12 | 0;
 27891  i33 = i4 | 0;
 27892  i34 = i4 + 4 | 0;
 27893  i35 = i4 + 8 | 0;
 27894  i36 = i4 + 12 | 0;
 27895  i37 = i1;
 27896  i38 = 0;
 27897  do {
 27898   i39 = HEAP32[(HEAP32[i3 >> 2] | 0) + (i38 << 2) >> 2] | 0;
 27899   do {
 27900    if ((HEAP32[i39 + 204 >> 2] & 32 | 0) == 0) {
 27901     do {
 27902      if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i10 >> 2] | 0) + 16 >> 2] & 127](i1) | 0) != 0) {
 27903       i40 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i10 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
 27904       if (((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i40 >> 2] | 0) + 48 >> 2] & 127](i40) | 0) & 1 | 0) == 0) {
 27905        break;
 27907       HEAPF32[i33 >> 2] = 1.0;
 27908       HEAPF32[i34 >> 2] = 1.0;
 27909       HEAPF32[i35 >> 2] = 1.0;
 27910       HEAPF32[i36 >> 2] = 0.0;
 27911       switch (HEAP32[i39 + 216 >> 2] | 0) {
 27912       case 5:
 27914         HEAPF32[i33 >> 2] = 1.0;
 27915         HEAPF32[i34 >> 2] = 1.0;
 27916         HEAPF32[i35 >> 2] = 0.0;
 27917         HEAPF32[i36 >> 2] = 0.0;
 27918         break;
 27920       case 1:
 27922         HEAPF32[i33 >> 2] = 1.0;
 27923         HEAPF32[i34 >> 2] = 1.0;
 27924         HEAPF32[i35 >> 2] = 1.0;
 27925         HEAPF32[i36 >> 2] = 0.0;
 27926         break;
 27928       case 2:
 27930         HEAPF32[i33 >> 2] = 0.0;
 27931         HEAPF32[i34 >> 2] = 1.0;
 27932         HEAPF32[i35 >> 2] = 0.0;
 27933         HEAPF32[i36 >> 2] = 0.0;
 27934         break;
 27936       case 3:
 27938         HEAPF32[i33 >> 2] = 0.0;
 27939         HEAPF32[i34 >> 2] = 1.0;
 27940         HEAPF32[i35 >> 2] = 1.0;
 27941         HEAPF32[i36 >> 2] = 0.0;
 27942         break;
 27944       case 4:
 27946         HEAPF32[i33 >> 2] = 1.0;
 27947         HEAPF32[i34 >> 2] = 0.0;
 27948         HEAPF32[i35 >> 2] = 0.0;
 27949         HEAPF32[i36 >> 2] = 0.0;
 27950         break;
 27952       default:
 27954         HEAPF32[i33 >> 2] = 1.0;
 27955         HEAPF32[i34 >> 2] = 0.0;
 27956         HEAPF32[i35 >> 2] = 0.0;
 27957         HEAPF32[i36 >> 2] = 0.0;
 27960       FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i37 >> 2] | 0) + 24 >> 2] & 127](i1, i39 + 4 | 0, HEAP32[i39 + 192 >> 2] | 0, i4);
 27962     } while (0);
 27963     i40 = HEAP32[i13 >> 2] | 0;
 27964     if ((i40 | 0) == 0) {
 27965      break;
 27967     if (((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i40 >> 2] | 0) + 48 >> 2] & 127](i40) | 0) & 2 | 0) == 0) {
 27968      break;
 27970     HEAPF32[i11 >> 2] = 1.0;
 27971     HEAPF32[i12 >> 2] = 0.0;
 27972     HEAPF32[i16 >> 2] = 0.0;
 27973     HEAPF32[i15 >> 2] = 0.0;
 27974     i40 = i39 + 192 | 0;
 27975     i41 = HEAP32[i40 >> 2] | 0;
 27976     FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i41 >> 2] | 0) + 8 >> 2] & 127](i41, i39 + 4 | 0, i5, i6);
 27977     d42 = +HEAPF32[4];
 27978     HEAPF32[i17 >> 2] = +HEAPF32[i17 >> 2] - d42;
 27979     HEAPF32[i18 >> 2] = +HEAPF32[i18 >> 2] - d42;
 27980     HEAPF32[i19 >> 2] = +HEAPF32[i19 >> 2] - d42;
 27981     HEAPF32[i20 >> 2] = d42 + +HEAPF32[i20 >> 2];
 27982     HEAPF32[i21 >> 2] = d42 + +HEAPF32[i21 >> 2];
 27983     HEAPF32[i22 >> 2] = d42 + +HEAPF32[i22 >> 2];
 27984     do {
 27985      if ((HEAP32[i39 + 232 >> 2] | 0) == 2) {
 27986       i41 = HEAP32[i40 >> 2] | 0;
 27987       FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i41 >> 2] | 0) + 8 >> 2] & 127](i41, i39 + 68 | 0, i8, i9);
 27988       d43 = +HEAPF32[i23 >> 2] - d42;
 27989       HEAPF32[i23 >> 2] = d43;
 27990       d44 = +HEAPF32[i24 >> 2] - d42;
 27991       HEAPF32[i24 >> 2] = d44;
 27992       d45 = +HEAPF32[i25 >> 2] - d42;
 27993       HEAPF32[i25 >> 2] = d45;
 27994       d46 = d42 + +HEAPF32[i26 >> 2];
 27995       HEAPF32[i26 >> 2] = d46;
 27996       d47 = d42 + +HEAPF32[i27 >> 2];
 27997       HEAPF32[i27 >> 2] = d47;
 27998       d48 = d42 + +HEAPF32[i28 >> 2];
 27999       HEAPF32[i28 >> 2] = d48;
 28000       if (d43 < +HEAPF32[i17 >> 2]) {
 28001        HEAPF32[i17 >> 2] = d43;
 28003       if (d44 < +HEAPF32[i18 >> 2]) {
 28004        HEAPF32[i18 >> 2] = d44;
 28006       if (d45 < +HEAPF32[i19 >> 2]) {
 28007        HEAPF32[i19 >> 2] = d45;
 28009       d45 = +HEAPF32[i30 >> 2];
 28010       if (d45 < +HEAPF32[i29 >> 2]) {
 28011        HEAPF32[i29 >> 2] = d45;
 28013       if (+HEAPF32[i20 >> 2] < d46) {
 28014        HEAPF32[i20 >> 2] = d46;
 28016       if (+HEAPF32[i21 >> 2] < d47) {
 28017        HEAPF32[i21 >> 2] = d47;
 28019       if (+HEAPF32[i22 >> 2] < d48) {
 28020        HEAPF32[i22 >> 2] = d48;
 28022       d48 = +HEAPF32[i32 >> 2];
 28023       if (+HEAPF32[i31 >> 2] >= d48) {
 28024        break;
 28026       HEAPF32[i31 >> 2] = d48;
 28028     } while (0);
 28029     i40 = HEAP32[i13 >> 2] | 0;
 28030     FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i40 >> 2] | 0) + 52 >> 2] & 127](i40, i5, i6, i7);
 28032   } while (0);
 28033   i38 = i38 + 1 | 0;
 28034  } while ((i38 | 0) < (HEAP32[i14 >> 2] | 0));
 28035  STACKTOP = i2;
 28036  return;
 28038 function __ZN27btContinuousConvexCollision16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i1, i2, i3, i4, i5, i6) {
 28039  i1 = i1 | 0;
 28040  i2 = i2 | 0;
 28041  i3 = i3 | 0;
 28042  i4 = i4 | 0;
 28043  i5 = i5 | 0;
 28044  i6 = i6 | 0;
 28045  var i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0;
 28046  i7 = STACKTOP;
 28047  STACKTOP = STACKTOP + 384 | 0;
 28048  i8 = i7 | 0;
 28049  i9 = i7 + 16 | 0;
 28050  i10 = i7 + 24 | 0;
 28051  i11 = i7 + 40 | 0;
 28052  i12 = i7 + 48 | 0;
 28053  i13 = i7 + 64 | 0;
 28054  i14 = i7 + 80 | 0;
 28055  i15 = i7 + 96 | 0;
 28056  i16 = i7 + 112 | 0;
 28057  i17 = i7 + 128 | 0;
 28058  i18 = i7 + 176 | 0;
 28059  i19 = i7 + 192 | 0;
 28060  i20 = i7 + 256 | 0;
 28061  i21 = i7 + 320 | 0;
 28062  i22 = i7 + 336 | 0;
 28063  d23 = +HEAPF32[i3 + 48 >> 2] - +HEAPF32[i2 + 48 >> 2];
 28064  d24 = +HEAPF32[i3 + 52 >> 2] - +HEAPF32[i2 + 52 >> 2];
 28065  d25 = +HEAPF32[i3 + 56 >> 2] - +HEAPF32[i2 + 56 >> 2];
 28066  HEAPF32[i12 >> 2] = d23;
 28067  HEAPF32[i12 + 4 >> 2] = d24;
 28068  HEAPF32[i12 + 8 >> 2] = d25;
 28069  HEAPF32[i12 + 12 >> 2] = 0.0;
 28070  __ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(i2, i3, i10, i11);
 28071  d26 = +HEAPF32[i11 >> 2];
 28072  d27 = +HEAPF32[i10 >> 2] * d26;
 28073  d28 = d26 * +HEAPF32[i10 + 4 >> 2];
 28074  d29 = d26 * +HEAPF32[i10 + 8 >> 2];
 28075  HEAPF32[i13 >> 2] = d27;
 28076  HEAPF32[i13 + 4 >> 2] = d28;
 28077  HEAPF32[i13 + 8 >> 2] = d29;
 28078  HEAPF32[i13 + 12 >> 2] = 0.0;
 28079  d26 = +HEAPF32[i5 + 48 >> 2] - +HEAPF32[i4 + 48 >> 2];
 28080  d30 = +HEAPF32[i5 + 52 >> 2] - +HEAPF32[i4 + 52 >> 2];
 28081  d31 = +HEAPF32[i5 + 56 >> 2] - +HEAPF32[i4 + 56 >> 2];
 28082  HEAPF32[i14 >> 2] = d26;
 28083  HEAPF32[i14 + 4 >> 2] = d30;
 28084  HEAPF32[i14 + 8 >> 2] = d31;
 28085  HEAPF32[i14 + 12 >> 2] = 0.0;
 28086  __ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(i4, i5, i8, i9);
 28087  d32 = +HEAPF32[i9 >> 2];
 28088  d33 = +HEAPF32[i8 >> 2] * d32;
 28089  d34 = d32 * +HEAPF32[i8 + 4 >> 2];
 28090  d35 = d32 * +HEAPF32[i8 + 8 >> 2];
 28091  HEAPF32[i15 >> 2] = d33;
 28092  HEAPF32[i15 + 4 >> 2] = d34;
 28093  HEAPF32[i15 + 8 >> 2] = d35;
 28094  HEAPF32[i15 + 12 >> 2] = 0.0;
 28095  i8 = HEAP32[i1 + 12 >> 2] | 0;
 28096  d32 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i8 >> 2] | 0) + 16 >> 2] & 7](i8 | 0);
 28097  i8 = HEAP32[i1 + 16 >> 2] | 0;
 28098  if ((i8 | 0) == 0) {
 28099   d36 = 0.0;
 28100  } else {
 28101   d36 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i8 >> 2] | 0) + 16 >> 2] & 7](i8 | 0);
 28103  d37 = d32 * +Math_sqrt(+(d27 * d27 + d28 * d28 + d29 * d29));
 28104  d29 = d37 + d36 * +Math_sqrt(+(d33 * d33 + d34 * d34 + d35 * d35));
 28105  d35 = d26 - d23;
 28106  d23 = d30 - d24;
 28107  d24 = d31 - d25;
 28108  if (+Math_sqrt(+(d35 * d35 + d23 * d23 + d24 * d24)) + d29 == 0.0) {
 28109   i38 = 0;
 28110   STACKTOP = i7;
 28111   return i38 | 0;
 28113  HEAP32[i17 >> 2] = 4272;
 28114  i8 = i17 + 36 | 0;
 28115  HEAPF32[i8 >> 2] = 999999984306749400.0;
 28116  i9 = i17 + 40 | 0;
 28117  HEAP8[i9] = 0;
 28118  __ZN27btContinuousConvexCollision20computeClosestPointsERK11btTransformS2_R16btPointCollector(i1, i2, i4, i17);
 28119  i5 = (HEAP8[i9] | 0) == 0;
 28120  i9 = i16;
 28121  i10 = i17 + 20 | 0;
 28122  HEAP32[i9 >> 2] = HEAP32[i10 >> 2];
 28123  HEAP32[i9 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
 28124  HEAP32[i9 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
 28125  HEAP32[i9 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
 28126  if (i5) {
 28127   i38 = 0;
 28128   STACKTOP = i7;
 28129   return i38 | 0;
 28131  i5 = i6 + 172 | 0;
 28132  d25 = +HEAPF32[i17 + 4 >> 2];
 28133  d31 = +HEAPF32[i17 + 8 >> 2];
 28134  d30 = +HEAPF32[i17 + 12 >> 2];
 28135  if (d29 + (d35 * d25 + d23 * d31 + d24 * d30) <= 1.1920928955078125e-7) {
 28136   i38 = 0;
 28137   STACKTOP = i7;
 28138   return i38 | 0;
 28140  i10 = i6 + 168 | 0;
 28141  i11 = i6;
 28142  i3 = i22 | 0;
 28143  i39 = i22 + 36 | 0;
 28144  i40 = i22 + 40 | 0;
 28145  i41 = i22 + 20 | 0;
 28146  i42 = i22 + 4 | 0;
 28147  i43 = i22 + 8 | 0;
 28148  i44 = i22 + 12 | 0;
 28149  i45 = i22 + 16 | 0;
 28150  i46 = i19 + 48 | 0;
 28151  i47 = i21 | 0;
 28152  i48 = i21 + 4 | 0;
 28153  i49 = i21 + 8 | 0;
 28154  i50 = i21 + 12 | 0;
 28155  i51 = i18 | 0;
 28156  i52 = i18 + 4 | 0;
 28157  i53 = i18 + 8 | 0;
 28158  i54 = i18 + 12 | 0;
 28159  d26 = +HEAPF32[i5 >> 2] + +HEAPF32[i8 >> 2];
 28160  i8 = 0;
 28161  d34 = 0.0;
 28162  d33 = d25;
 28163  d25 = d31;
 28164  d31 = d30;
 28165  d30 = +HEAPF32[i17 + 16 >> 2];
 28166  while (1) {
 28167   if (d26 <= .0010000000474974513) {
 28168    i55 = 593;
 28169    break;
 28171   i17 = HEAP32[i10 >> 2] | 0;
 28172   if ((i17 | 0) != 0) {
 28173    i56 = HEAP32[(HEAP32[i17 >> 2] | 0) + 20 >> 2] | 0;
 28174    HEAPF32[i51 >> 2] = 1.0;
 28175    HEAPF32[i52 >> 2] = 1.0;
 28176    HEAPF32[i53 >> 2] = 1.0;
 28177    HEAPF32[i54 >> 2] = 0.0;
 28178    FUNCTION_TABLE_viifi[i56 & 1](i17, i16, .20000000298023224, i18);
 28180   d36 = d29 + (d24 * d31 + (d23 * d25 + d35 * d33));
 28181   if (d36 <= 1.1920928955078125e-7) {
 28182    i38 = 0;
 28183    i55 = 598;
 28184    break;
 28186   d37 = d34 + d26 / d36;
 28187   if (!(d37 >= 0.0 & d37 <= 1.0 & d37 > d34)) {
 28188    i38 = 0;
 28189    i55 = 599;
 28190    break;
 28192   __ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i2, i12, i13, d37, i19);
 28193   __ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i4, i14, i15, d37, i20);
 28194   i17 = HEAP32[i10 >> 2] | 0;
 28195   if ((i17 | 0) != 0) {
 28196    i56 = HEAP32[(HEAP32[i17 >> 2] | 0) + 20 >> 2] | 0;
 28197    HEAPF32[i47 >> 2] = 1.0;
 28198    HEAPF32[i48 >> 2] = 0.0;
 28199    HEAPF32[i49 >> 2] = 0.0;
 28200    HEAPF32[i50 >> 2] = 0.0;
 28201    FUNCTION_TABLE_viifi[i56 & 1](i17, i46, .20000000298023224, i21);
 28203   FUNCTION_TABLE_vif[HEAP32[HEAP32[i11 >> 2] >> 2] & 31](i6, d37);
 28204   HEAP32[i3 >> 2] = 4272;
 28205   HEAPF32[i39 >> 2] = 999999984306749400.0;
 28206   HEAP8[i40] = 0;
 28207   __ZN27btContinuousConvexCollision20computeClosestPointsERK11btTransformS2_R16btPointCollector(i1, i19, i20, i22);
 28208   if ((HEAP8[i40] | 0) == 0) {
 28209    i55 = 591;
 28210    break;
 28212   d36 = +HEAPF32[i39 >> 2] + +HEAPF32[i5 >> 2];
 28213   HEAP32[i9 >> 2] = HEAP32[i41 >> 2];
 28214   HEAP32[i9 + 4 >> 2] = HEAP32[i41 + 4 >> 2];
 28215   HEAP32[i9 + 8 >> 2] = HEAP32[i41 + 8 >> 2];
 28216   HEAP32[i9 + 12 >> 2] = HEAP32[i41 + 12 >> 2];
 28217   i57 = i8 + 1 | 0;
 28218   if ((i57 | 0) > 64) {
 28219    i55 = 592;
 28220    break;
 28221   } else {
 28222    d26 = d36;
 28223    i8 = i57;
 28224    d34 = d37;
 28225    d33 = +HEAPF32[i42 >> 2];
 28226    d25 = +HEAPF32[i43 >> 2];
 28227    d31 = +HEAPF32[i44 >> 2];
 28228    d30 = +HEAPF32[i45 >> 2];
 28231  if ((i55 | 0) == 598) {
 28232   STACKTOP = i7;
 28233   return i38 | 0;
 28234  } else if ((i55 | 0) == 599) {
 28235   STACKTOP = i7;
 28236   return i38 | 0;
 28237  } else if ((i55 | 0) == 591) {
 28238   FUNCTION_TABLE_viii[HEAP32[(HEAP32[i6 >> 2] | 0) + 8 >> 2] & 127](i6, -1, i8);
 28239   i38 = 0;
 28240   STACKTOP = i7;
 28241   return i38 | 0;
 28242  } else if ((i55 | 0) == 592) {
 28243   FUNCTION_TABLE_viii[HEAP32[(HEAP32[i6 >> 2] | 0) + 8 >> 2] & 127](i6, -2, i57);
 28244   i38 = 0;
 28245   STACKTOP = i7;
 28246   return i38 | 0;
 28247  } else if ((i55 | 0) == 593) {
 28248   HEAPF32[i6 + 164 >> 2] = d34;
 28249   HEAPF32[i6 + 132 >> 2] = d33;
 28250   HEAPF32[i6 + 136 >> 2] = d25;
 28251   HEAPF32[i6 + 140 >> 2] = d31;
 28252   HEAPF32[i6 + 144 >> 2] = d30;
 28253   i55 = i6 + 148 | 0;
 28254   HEAP32[i55 >> 2] = HEAP32[i9 >> 2];
 28255   HEAP32[i55 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
 28256   HEAP32[i55 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
 28257   HEAP32[i55 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
 28258   i38 = 1;
 28259   STACKTOP = i7;
 28260   return i38 | 0;
 28262  return 0;
 28264 function __ZNK16btCollisionWorld15convexSweepTestEPK13btConvexShapeRK11btTransformS5_RNS_20ConvexResultCallbackEf(i1, i2, i3, i4, i5, d6) {
 28265  i1 = i1 | 0;
 28266  i2 = i2 | 0;
 28267  i3 = i3 | 0;
 28268  i4 = i4 | 0;
 28269  i5 = i5 | 0;
 28270  d6 = +d6;
 28271  var i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, d41 = 0.0, d42 = 0.0;
 28272  i7 = STACKTOP;
 28273  STACKTOP = STACKTOP + 496 | 0;
 28274  i8 = i7 | 0;
 28275  i9 = i7 + 16 | 0;
 28276  i10 = i7 + 24 | 0;
 28277  i11 = i7 + 88 | 0;
 28278  i12 = i7 + 152 | 0;
 28279  i13 = i7 + 168 | 0;
 28280  i14 = i7 + 184 | 0;
 28281  i15 = i7 + 200 | 0;
 28282  i16 = i7 + 216 | 0;
 28283  i17 = i7 + 280 | 0;
 28284  i18 = i7 + 296 | 0;
 28285  __ZN15CProfileManager13Start_ProfileEPKc(56);
 28286  i19 = i10;
 28287  i20 = i3;
 28288  HEAP32[i19 >> 2] = HEAP32[i20 >> 2];
 28289  HEAP32[i19 + 4 >> 2] = HEAP32[i20 + 4 >> 2];
 28290  HEAP32[i19 + 8 >> 2] = HEAP32[i20 + 8 >> 2];
 28291  HEAP32[i19 + 12 >> 2] = HEAP32[i20 + 12 >> 2];
 28292  i19 = i10 + 16 | 0;
 28293  i21 = i3 + 16 | 0;
 28294  HEAP32[i19 >> 2] = HEAP32[i21 >> 2];
 28295  HEAP32[i19 + 4 >> 2] = HEAP32[i21 + 4 >> 2];
 28296  HEAP32[i19 + 8 >> 2] = HEAP32[i21 + 8 >> 2];
 28297  HEAP32[i19 + 12 >> 2] = HEAP32[i21 + 12 >> 2];
 28298  i19 = i10 + 32 | 0;
 28299  i22 = i3 + 32 | 0;
 28300  HEAP32[i19 >> 2] = HEAP32[i22 >> 2];
 28301  HEAP32[i19 + 4 >> 2] = HEAP32[i22 + 4 >> 2];
 28302  HEAP32[i19 + 8 >> 2] = HEAP32[i22 + 8 >> 2];
 28303  HEAP32[i19 + 12 >> 2] = HEAP32[i22 + 12 >> 2];
 28304  i19 = i10 + 48 | 0;
 28305  i23 = i19;
 28306  i24 = i3 + 48 | 0;
 28307  HEAP32[i23 >> 2] = HEAP32[i24 >> 2];
 28308  HEAP32[i23 + 4 >> 2] = HEAP32[i24 + 4 >> 2];
 28309  HEAP32[i23 + 8 >> 2] = HEAP32[i24 + 8 >> 2];
 28310  HEAP32[i23 + 12 >> 2] = HEAP32[i24 + 12 >> 2];
 28311  i23 = i11;
 28312  i3 = i4;
 28313  HEAP32[i23 >> 2] = HEAP32[i3 >> 2];
 28314  HEAP32[i23 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
 28315  HEAP32[i23 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
 28316  HEAP32[i23 + 12 >> 2] = HEAP32[i3 + 12 >> 2];
 28317  i23 = i11 + 16 | 0;
 28318  i25 = i4 + 16 | 0;
 28319  HEAP32[i23 >> 2] = HEAP32[i25 >> 2];
 28320  HEAP32[i23 + 4 >> 2] = HEAP32[i25 + 4 >> 2];
 28321  HEAP32[i23 + 8 >> 2] = HEAP32[i25 + 8 >> 2];
 28322  HEAP32[i23 + 12 >> 2] = HEAP32[i25 + 12 >> 2];
 28323  i23 = i11 + 32 | 0;
 28324  i26 = i4 + 32 | 0;
 28325  HEAP32[i23 >> 2] = HEAP32[i26 >> 2];
 28326  HEAP32[i23 + 4 >> 2] = HEAP32[i26 + 4 >> 2];
 28327  HEAP32[i23 + 8 >> 2] = HEAP32[i26 + 8 >> 2];
 28328  HEAP32[i23 + 12 >> 2] = HEAP32[i26 + 12 >> 2];
 28329  i23 = i11 + 48 | 0;
 28330  i27 = i23;
 28331  i28 = i4 + 48 | 0;
 28332  HEAP32[i27 >> 2] = HEAP32[i28 >> 2];
 28333  HEAP32[i27 + 4 >> 2] = HEAP32[i28 + 4 >> 2];
 28334  HEAP32[i27 + 8 >> 2] = HEAP32[i28 + 8 >> 2];
 28335  HEAP32[i27 + 12 >> 2] = HEAP32[i28 + 12 >> 2];
 28336  __ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(i10, i11, i8, i9);
 28337  d29 = +HEAPF32[i9 >> 2];
 28338  d30 = d29 * +HEAPF32[i8 + 4 >> 2];
 28339  d31 = d29 * +HEAPF32[i8 + 8 >> 2];
 28340  HEAPF32[i14 >> 2] = +HEAPF32[i8 >> 2] * d29;
 28341  HEAPF32[i14 + 4 >> 2] = d30;
 28342  HEAPF32[i14 + 8 >> 2] = d31;
 28343  HEAPF32[i14 + 12 >> 2] = 0.0;
 28344  _memset(i15 | 0, 0, 16);
 28345  i8 = i16 + 4 | 0;
 28346  i9 = i8;
 28347  HEAP32[i9 >> 2] = 0;
 28348  HEAP32[i9 + 4 >> 2] = 0;
 28349  i9 = i16 + 24 | 0;
 28350  i11 = i9;
 28351  HEAP32[i11 >> 2] = 0;
 28352  HEAP32[i11 + 4 >> 2] = 0;
 28353  i11 = i16 + 44 | 0;
 28354  _memset(i11 | 0, 0, 20);
 28355  __ZNK11btMatrix3x311getRotationER12btQuaternion(i10 | 0, i17);
 28356  d31 = +HEAPF32[i17 >> 2];
 28357  d30 = +HEAPF32[i17 + 4 >> 2];
 28358  d29 = +HEAPF32[i17 + 8 >> 2];
 28359  d32 = +HEAPF32[i17 + 12 >> 2];
 28360  d33 = 2.0 / (d31 * d31 + d30 * d30 + d29 * d29 + d32 * d32);
 28361  d34 = d31 * d33;
 28362  d35 = d30 * d33;
 28363  d36 = d29 * d33;
 28364  d33 = d32 * d34;
 28365  d37 = d32 * d35;
 28366  d38 = d32 * d36;
 28367  d32 = d31 * d34;
 28368  d34 = d31 * d35;
 28369  d39 = d31 * d36;
 28370  d31 = d30 * d35;
 28371  d35 = d30 * d36;
 28372  d30 = d29 * d36;
 28373  HEAPF32[i16 >> 2] = 1.0 - (d31 + d30);
 28374  HEAPF32[i8 >> 2] = d34 - d38;
 28375  HEAPF32[i16 + 8 >> 2] = d39 + d37;
 28376  HEAPF32[i16 + 12 >> 2] = 0.0;
 28377  HEAPF32[i16 + 16 >> 2] = d34 + d38;
 28378  HEAPF32[i16 + 20 >> 2] = 1.0 - (d32 + d30);
 28379  HEAPF32[i9 >> 2] = d35 - d33;
 28380  HEAPF32[i16 + 28 >> 2] = 0.0;
 28381  HEAPF32[i16 + 32 >> 2] = d39 - d37;
 28382  HEAPF32[i16 + 36 >> 2] = d35 + d33;
 28383  HEAPF32[i16 + 40 >> 2] = 1.0 - (d32 + d31);
 28384  HEAPF32[i11 >> 2] = 0.0;
 28385  __ZNK16btCollisionShape21calculateTemporalAabbERK11btTransformRK9btVector3S5_fRS3_S6_(i2 | 0, i16, i15, i14, 1.0, i12, i13);
 28386  HEAP32[i18 >> 2] = 3648;
 28387  i14 = i18 + 36 | 0;
 28388  HEAP32[i14 >> 2] = HEAP32[i20 >> 2];
 28389  HEAP32[i14 + 4 >> 2] = HEAP32[i20 + 4 >> 2];
 28390  HEAP32[i14 + 8 >> 2] = HEAP32[i20 + 8 >> 2];
 28391  HEAP32[i14 + 12 >> 2] = HEAP32[i20 + 12 >> 2];
 28392  i20 = i18 + 52 | 0;
 28393  HEAP32[i20 >> 2] = HEAP32[i21 >> 2];
 28394  HEAP32[i20 + 4 >> 2] = HEAP32[i21 + 4 >> 2];
 28395  HEAP32[i20 + 8 >> 2] = HEAP32[i21 + 8 >> 2];
 28396  HEAP32[i20 + 12 >> 2] = HEAP32[i21 + 12 >> 2];
 28397  i21 = i18 + 68 | 0;
 28398  HEAP32[i21 >> 2] = HEAP32[i22 >> 2];
 28399  HEAP32[i21 + 4 >> 2] = HEAP32[i22 + 4 >> 2];
 28400  HEAP32[i21 + 8 >> 2] = HEAP32[i22 + 8 >> 2];
 28401  HEAP32[i21 + 12 >> 2] = HEAP32[i22 + 12 >> 2];
 28402  i22 = i18 + 84 | 0;
 28403  i21 = i22;
 28404  HEAP32[i21 >> 2] = HEAP32[i24 >> 2];
 28405  HEAP32[i21 + 4 >> 2] = HEAP32[i24 + 4 >> 2];
 28406  HEAP32[i21 + 8 >> 2] = HEAP32[i24 + 8 >> 2];
 28407  HEAP32[i21 + 12 >> 2] = HEAP32[i24 + 12 >> 2];
 28408  i24 = i18 + 100 | 0;
 28409  HEAP32[i24 >> 2] = HEAP32[i3 >> 2];
 28410  HEAP32[i24 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
 28411  HEAP32[i24 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
 28412  HEAP32[i24 + 12 >> 2] = HEAP32[i3 + 12 >> 2];
 28413  i3 = i18 + 116 | 0;
 28414  HEAP32[i3 >> 2] = HEAP32[i25 >> 2];
 28415  HEAP32[i3 + 4 >> 2] = HEAP32[i25 + 4 >> 2];
 28416  HEAP32[i3 + 8 >> 2] = HEAP32[i25 + 8 >> 2];
 28417  HEAP32[i3 + 12 >> 2] = HEAP32[i25 + 12 >> 2];
 28418  i25 = i18 + 132 | 0;
 28419  HEAP32[i25 >> 2] = HEAP32[i26 >> 2];
 28420  HEAP32[i25 + 4 >> 2] = HEAP32[i26 + 4 >> 2];
 28421  HEAP32[i25 + 8 >> 2] = HEAP32[i26 + 8 >> 2];
 28422  HEAP32[i25 + 12 >> 2] = HEAP32[i26 + 12 >> 2];
 28423  i26 = i18 + 148 | 0;
 28424  i25 = i26;
 28425  HEAP32[i25 >> 2] = HEAP32[i28 >> 2];
 28426  HEAP32[i25 + 4 >> 2] = HEAP32[i28 + 4 >> 2];
 28427  HEAP32[i25 + 8 >> 2] = HEAP32[i28 + 8 >> 2];
 28428  HEAP32[i25 + 12 >> 2] = HEAP32[i28 + 12 >> 2];
 28429  HEAP32[i18 + 180 >> 2] = i1;
 28430  HEAP32[i18 + 184 >> 2] = i5;
 28431  HEAPF32[i18 + 188 >> 2] = d6;
 28432  HEAP32[i18 + 192 >> 2] = i2;
 28433  d6 = +HEAPF32[i26 >> 2] - +HEAPF32[i22 >> 2];
 28434  d31 = +HEAPF32[i18 + 152 >> 2] - +HEAPF32[i18 + 88 >> 2];
 28435  d32 = +HEAPF32[i18 + 156 >> 2] - +HEAPF32[i18 + 92 >> 2];
 28436  d33 = 1.0 / +Math_sqrt(+(d6 * d6 + d31 * d31 + d32 * d32));
 28437  d35 = d6 * d33;
 28438  d37 = d31 * d33;
 28439  d39 = d32 * d33;
 28440  if (d35 == 0.0) {
 28441   d40 = 999999984306749400.0;
 28442  } else {
 28443   d40 = 1.0 / d35;
 28445  HEAPF32[i18 + 4 >> 2] = d40;
 28446  if (d37 == 0.0) {
 28447   d41 = 999999984306749400.0;
 28448  } else {
 28449   d41 = 1.0 / d37;
 28451  HEAPF32[i18 + 8 >> 2] = d41;
 28452  if (d39 == 0.0) {
 28453   d42 = 999999984306749400.0;
 28454  } else {
 28455   d42 = 1.0 / d39;
 28457  HEAPF32[i18 + 12 >> 2] = d42;
 28458  HEAP32[i18 + 20 >> 2] = d40 < 0.0;
 28459  HEAP32[i18 + 24 >> 2] = d41 < 0.0;
 28460  HEAP32[i18 + 28 >> 2] = d42 < 0.0;
 28461  HEAPF32[i18 + 32 >> 2] = d32 * d39 + (d6 * d35 + d31 * d37);
 28462  i22 = HEAP32[i1 + 76 >> 2] | 0;
 28463  FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[i22 >> 2] | 0) + 24 >> 2] & 15](i22, i19, i23, i18 | 0, i12, i13);
 28464  __ZN15CProfileManager12Stop_ProfileEv();
 28465  STACKTOP = i7;
 28466  return;
 28468 function __ZN35btSequentialImpulseConstraintSolver23setupFrictionConstraintER18btSolverConstraintRK9btVector3P11btRigidBodyS6_R15btManifoldPointS4_S4_P17btCollisionObjectSA_fff(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, d11, d12, d13) {
 28469  i1 = i1 | 0;
 28470  i2 = i2 | 0;
 28471  i3 = i3 | 0;
 28472  i4 = i4 | 0;
 28473  i5 = i5 | 0;
 28474  i6 = i6 | 0;
 28475  i7 = i7 | 0;
 28476  i8 = i8 | 0;
 28477  i9 = i9 | 0;
 28478  i10 = i10 | 0;
 28479  d11 = +d11;
 28480  d12 = +d12;
 28481  d13 = +d13;
 28482  var i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, d41 = 0.0, d42 = 0.0, d43 = 0.0, d44 = 0.0, d45 = 0.0, d46 = 0.0, d47 = 0.0, d48 = 0.0, d49 = 0.0, d50 = 0.0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0, d55 = 0.0, d56 = 0.0, d57 = 0.0, d58 = 0.0, d59 = 0.0, d60 = 0.0, i61 = 0, i62 = 0, i63 = 0, i64 = 0;
 28483  i5 = STACKTOP;
 28484  STACKTOP = STACKTOP + 64 | 0;
 28485  i4 = i5 | 0;
 28486  i1 = i5 + 16 | 0;
 28487  i14 = i5 + 32 | 0;
 28488  i15 = i5 + 48 | 0;
 28489  if ((HEAP32[i9 + 232 >> 2] & 2 | 0) == 0) {
 28490   i16 = 0;
 28491  } else {
 28492   i16 = i9;
 28494  if ((HEAP32[i10 + 232 >> 2] & 2 | 0) == 0) {
 28495   i17 = 0;
 28496  } else {
 28497   i17 = i10;
 28499  i10 = i2 + 16 | 0;
 28500  i9 = i10;
 28501  i18 = i3;
 28502  HEAP32[i9 >> 2] = HEAP32[i18 >> 2];
 28503  HEAP32[i9 + 4 >> 2] = HEAP32[i18 + 4 >> 2];
 28504  HEAP32[i9 + 8 >> 2] = HEAP32[i18 + 8 >> 2];
 28505  HEAP32[i9 + 12 >> 2] = HEAP32[i18 + 12 >> 2];
 28506  i18 = (i16 | 0) != 0;
 28507  if (i18) {
 28508   i19 = i16;
 28509  } else {
 28510   i9 = i14;
 28511   i20 = i15;
 28512   do {
 28513    if ((HEAP8[14328] | 0) == 0) {
 28514     if ((___cxa_guard_acquire(14328) | 0) == 0) {
 28515      break;
 28517     _memset(i9 | 0, 0, 16);
 28518     __ZN11btRigidBodyC2EfP13btMotionStateP16btCollisionShapeRK9btVector3(12536, 0.0, 0, 0, i14);
 28519     _atexit(268, 12536, ___dso_handle | 0) | 0;
 28521   } while (0);
 28522   _memset(i20 | 0, 0, 16);
 28523   __ZN11btRigidBody12setMassPropsEfRK9btVector3(12536, 0.0, i15);
 28524   i19 = 12536;
 28526  HEAP32[i2 + 104 >> 2] = i19;
 28527  i19 = (i17 | 0) != 0;
 28528  if (i19) {
 28529   i21 = i17;
 28530  } else {
 28531   i15 = i4;
 28532   i20 = i1;
 28533   do {
 28534    if ((HEAP8[14328] | 0) == 0) {
 28535     if ((___cxa_guard_acquire(14328) | 0) == 0) {
 28536      break;
 28538     _memset(i15 | 0, 0, 16);
 28539     __ZN11btRigidBodyC2EfP13btMotionStateP16btCollisionShapeRK9btVector3(12536, 0.0, 0, 0, i4);
 28540     _atexit(268, 12536, ___dso_handle | 0) | 0;
 28542   } while (0);
 28543   _memset(i20 | 0, 0, 16);
 28544   __ZN11btRigidBody12setMassPropsEfRK9btVector3(12536, 0.0, i1);
 28545   i21 = 12536;
 28547  HEAP32[i2 + 108 >> 2] = i21;
 28548  HEAPF32[i2 + 88 >> 2] = +HEAPF32[i6 + 84 >> 2];
 28549  HEAP32[i2 + 112 >> 2] = 0;
 28550  HEAPF32[i2 + 84 >> 2] = 0.0;
 28551  HEAPF32[i2 + 80 >> 2] = 0.0;
 28552  i6 = i7 + 4 | 0;
 28553  d22 = +HEAPF32[i6 >> 2];
 28554  d23 = +HEAPF32[i2 + 24 >> 2];
 28555  i21 = i7 + 8 | 0;
 28556  d24 = +HEAPF32[i21 >> 2];
 28557  d25 = +HEAPF32[i2 + 20 >> 2];
 28558  d26 = d22 * d23 - d24 * d25;
 28559  d27 = +HEAPF32[i10 >> 2];
 28560  i10 = i7 | 0;
 28561  d28 = +HEAPF32[i10 >> 2];
 28562  d29 = d24 * d27 - d23 * d28;
 28563  d24 = d25 * d28 - d22 * d27;
 28564  HEAPF32[i2 >> 2] = d26;
 28565  HEAPF32[i2 + 4 >> 2] = d29;
 28566  HEAPF32[i2 + 8 >> 2] = d24;
 28567  HEAPF32[i2 + 12 >> 2] = 0.0;
 28568  if (i18) {
 28569   d30 = (d26 * +HEAPF32[i16 + 256 >> 2] + d29 * +HEAPF32[i16 + 260 >> 2] + d24 * +HEAPF32[i16 + 264 >> 2]) * +HEAPF32[i16 + 536 >> 2];
 28570   d31 = (d26 * +HEAPF32[i16 + 272 >> 2] + d29 * +HEAPF32[i16 + 276 >> 2] + d24 * +HEAPF32[i16 + 280 >> 2]) * +HEAPF32[i16 + 540 >> 2];
 28571   d32 = (d26 * +HEAPF32[i16 + 288 >> 2] + d29 * +HEAPF32[i16 + 292 >> 2] + d24 * +HEAPF32[i16 + 296 >> 2]) * +HEAPF32[i16 + 544 >> 2];
 28572  } else {
 28573   d30 = 0.0;
 28574   d31 = 0.0;
 28575   d32 = 0.0;
 28577  HEAPF32[i2 + 48 >> 2] = d30;
 28578  HEAPF32[i2 + 52 >> 2] = d31;
 28579  HEAPF32[i2 + 56 >> 2] = d32;
 28580  HEAPF32[i2 + 60 >> 2] = 0.0;
 28581  d22 = -0.0 - d27;
 28582  d28 = -0.0 - d25;
 28583  d33 = -0.0 - d23;
 28584  i7 = i8 + 4 | 0;
 28585  d34 = +HEAPF32[i7 >> 2];
 28586  i1 = i8 + 8 | 0;
 28587  d35 = +HEAPF32[i1 >> 2];
 28588  d36 = d34 * d33 - d35 * d28;
 28589  i20 = i8 | 0;
 28590  d37 = +HEAPF32[i20 >> 2];
 28591  d38 = d35 * d22 - d37 * d33;
 28592  d33 = d37 * d28 - d34 * d22;
 28593  HEAPF32[i2 + 32 >> 2] = d36;
 28594  HEAPF32[i2 + 36 >> 2] = d38;
 28595  HEAPF32[i2 + 40 >> 2] = d33;
 28596  HEAPF32[i2 + 44 >> 2] = 0.0;
 28597  if (i19) {
 28598   d39 = (d36 * +HEAPF32[i17 + 256 >> 2] + d38 * +HEAPF32[i17 + 260 >> 2] + d33 * +HEAPF32[i17 + 264 >> 2]) * +HEAPF32[i17 + 536 >> 2];
 28599   d40 = (d36 * +HEAPF32[i17 + 272 >> 2] + d38 * +HEAPF32[i17 + 276 >> 2] + d33 * +HEAPF32[i17 + 280 >> 2]) * +HEAPF32[i17 + 540 >> 2];
 28600   d41 = (d36 * +HEAPF32[i17 + 288 >> 2] + d38 * +HEAPF32[i17 + 292 >> 2] + d33 * +HEAPF32[i17 + 296 >> 2]) * +HEAPF32[i17 + 544 >> 2];
 28601  } else {
 28602   d39 = 0.0;
 28603   d40 = 0.0;
 28604   d41 = 0.0;
 28606  HEAPF32[i2 + 64 >> 2] = d39;
 28607  HEAPF32[i2 + 68 >> 2] = d40;
 28608  HEAPF32[i2 + 72 >> 2] = d41;
 28609  HEAPF32[i2 + 76 >> 2] = 0.0;
 28610  if (i18) {
 28611   d22 = +HEAPF32[i21 >> 2];
 28612   d34 = +HEAPF32[i6 >> 2];
 28613   d28 = +HEAPF32[i10 >> 2];
 28614   d42 = +HEAPF32[i16 + 336 >> 2] + ((d31 * d22 - d32 * d34) * +HEAPF32[i3 >> 2] + (d32 * d28 - d30 * d22) * +HEAPF32[i3 + 4 >> 2] + (d30 * d34 - d31 * d28) * +HEAPF32[i3 + 8 >> 2]);
 28615  } else {
 28616   d42 = 0.0;
 28618  if (i19) {
 28619   d28 = -0.0 - d39;
 28620   d39 = -0.0 - d40;
 28621   d40 = -0.0 - d41;
 28622   d41 = +HEAPF32[i1 >> 2];
 28623   d31 = +HEAPF32[i7 >> 2];
 28624   d34 = +HEAPF32[i20 >> 2];
 28625   d43 = +HEAPF32[i17 + 336 >> 2] + ((d41 * d39 - d31 * d40) * +HEAPF32[i3 >> 2] + (d34 * d40 - d41 * d28) * +HEAPF32[i3 + 4 >> 2] + (d31 * d28 - d34 * d39) * +HEAPF32[i3 + 8 >> 2]);
 28626  } else {
 28627   d43 = 0.0;
 28629  d39 = d11 / (d42 + d43);
 28630  HEAPF32[i2 + 92 >> 2] = d39;
 28631  if (i18) {
 28632   d44 = +HEAPF32[i16 + 320 >> 2];
 28633   d45 = +HEAPF32[i16 + 324 >> 2];
 28634   d46 = +HEAPF32[i16 + 328 >> 2];
 28635   d47 = d27 * +HEAPF32[i16 + 304 >> 2] + d25 * +HEAPF32[i16 + 308 >> 2] + d23 * +HEAPF32[i16 + 312 >> 2];
 28636  } else {
 28637   d44 = 0.0;
 28638   d45 = 0.0;
 28639   d46 = 0.0;
 28640   d47 = d23 * 0.0 + (d25 * 0.0 + d27 * 0.0);
 28642  d43 = d47 + (d24 * d46 + (d29 * d45 + d26 * d44));
 28643  if (i19) {
 28644   d48 = +HEAPF32[i17 + 320 >> 2];
 28645   d49 = +HEAPF32[i17 + 324 >> 2];
 28646   d50 = +HEAPF32[i17 + 328 >> 2];
 28647   d51 = d27 * +HEAPF32[i17 + 304 >> 2] + d25 * +HEAPF32[i17 + 308 >> 2] + d23 * +HEAPF32[i17 + 312 >> 2];
 28648   d52 = d36 * d48;
 28649   d53 = d38 * d49;
 28650   d54 = d53 + d52;
 28651   d55 = d33 * d50;
 28652   d56 = d55 + d54;
 28653   d57 = d56 - d51;
 28654   d58 = d43 + d57;
 28655   d59 = d12 - d58;
 28656   d60 = d39 * d59;
 28657   i61 = i2 + 116 | 0;
 28658   HEAPF32[i61 >> 2] = d60;
 28659   i62 = i2 + 120 | 0;
 28660   HEAPF32[i62 >> 2] = d13;
 28661   i63 = i2 + 124 | 0;
 28662   HEAPF32[i63 >> 2] = 0.0;
 28663   i64 = i2 + 128 | 0;
 28664   HEAPF32[i64 >> 2] = 1.0e10;
 28665   STACKTOP = i5;
 28666   return;
 28667  } else {
 28668   d48 = 0.0;
 28669   d49 = 0.0;
 28670   d50 = 0.0;
 28671   d51 = d23 * 0.0 + (d25 * 0.0 + d27 * 0.0);
 28672   d52 = d36 * d48;
 28673   d53 = d38 * d49;
 28674   d54 = d53 + d52;
 28675   d55 = d33 * d50;
 28676   d56 = d55 + d54;
 28677   d57 = d56 - d51;
 28678   d58 = d43 + d57;
 28679   d59 = d12 - d58;
 28680   d60 = d39 * d59;
 28681   i61 = i2 + 116 | 0;
 28682   HEAPF32[i61 >> 2] = d60;
 28683   i62 = i2 + 120 | 0;
 28684   HEAPF32[i62 >> 2] = d13;
 28685   i63 = i2 + 124 | 0;
 28686   HEAPF32[i63 >> 2] = 0.0;
 28687   i64 = i2 + 128 | 0;
 28688   HEAPF32[i64 >> 2] = 1.0e10;
 28689   STACKTOP = i5;
 28690   return;
 28693 function __ZNK10__cxxabiv121__vmi_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib(i1, i2, i3, i4, i5) {
 28694  i1 = i1 | 0;
 28695  i2 = i2 | 0;
 28696  i3 = i3 | 0;
 28697  i4 = i4 | 0;
 28698  i5 = i5 | 0;
 28699  var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0;
 28700  i6 = i1 | 0;
 28701  if ((i6 | 0) == (HEAP32[i2 + 8 >> 2] | 0)) {
 28702   if ((HEAP32[i2 + 4 >> 2] | 0) != (i3 | 0)) {
 28703    return;
 28705   i7 = i2 + 28 | 0;
 28706   if ((HEAP32[i7 >> 2] | 0) == 1) {
 28707    return;
 28709   HEAP32[i7 >> 2] = i4;
 28710   return;
 28712  if ((i6 | 0) == (HEAP32[i2 >> 2] | 0)) {
 28713   do {
 28714    if ((HEAP32[i2 + 16 >> 2] | 0) != (i3 | 0)) {
 28715     i6 = i2 + 20 | 0;
 28716     if ((HEAP32[i6 >> 2] | 0) == (i3 | 0)) {
 28717      break;
 28719     HEAP32[i2 + 32 >> 2] = i4;
 28720     i7 = i2 + 44 | 0;
 28721     if ((HEAP32[i7 >> 2] | 0) == 4) {
 28722      return;
 28724     i8 = HEAP32[i1 + 12 >> 2] | 0;
 28725     i9 = i1 + 16 + (i8 << 3) | 0;
 28726     L2740 : do {
 28727      if ((i8 | 0) > 0) {
 28728       i10 = i2 + 52 | 0;
 28729       i11 = i2 + 53 | 0;
 28730       i12 = i2 + 54 | 0;
 28731       i13 = i1 + 8 | 0;
 28732       i14 = i2 + 24 | 0;
 28733       i15 = i3;
 28734       i16 = 0;
 28735       i17 = i1 + 16 | 0;
 28736       i18 = 0;
 28737       L2742 : while (1) {
 28738        HEAP8[i10] = 0;
 28739        HEAP8[i11] = 0;
 28740        i19 = HEAP32[i17 + 4 >> 2] | 0;
 28741        i20 = i19 >> 8;
 28742        if ((i19 & 1 | 0) == 0) {
 28743         i21 = i20;
 28744        } else {
 28745         i21 = HEAP32[(HEAP32[i15 >> 2] | 0) + i20 >> 2] | 0;
 28747        i20 = HEAP32[i17 >> 2] | 0;
 28748        FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[i20 >> 2] | 0) + 20 >> 2] & 15](i20, i2, i3, i3 + i21 | 0, 2 - (i19 >>> 1 & 1) | 0, i5);
 28749        if ((HEAP8[i12] & 1) != 0) {
 28750         i22 = i18;
 28751         i23 = i16;
 28752         break;
 28754        do {
 28755         if ((HEAP8[i11] & 1) == 0) {
 28756          i24 = i18;
 28757          i25 = i16;
 28758         } else {
 28759          if ((HEAP8[i10] & 1) == 0) {
 28760           if ((HEAP32[i13 >> 2] & 1 | 0) == 0) {
 28761            i22 = 1;
 28762            i23 = i16;
 28763            break L2742;
 28764           } else {
 28765            i24 = 1;
 28766            i25 = i16;
 28767            break;
 28770          if ((HEAP32[i14 >> 2] | 0) == 1) {
 28771           i26 = 2075;
 28772           break L2740;
 28774          if ((HEAP32[i13 >> 2] & 2 | 0) == 0) {
 28775           i26 = 2075;
 28776           break L2740;
 28777          } else {
 28778           i24 = 1;
 28779           i25 = 1;
 28782        } while (0);
 28783        i19 = i17 + 8 | 0;
 28784        if (i19 >>> 0 < i9 >>> 0) {
 28785         i16 = i25;
 28786         i17 = i19;
 28787         i18 = i24;
 28788        } else {
 28789         i22 = i24;
 28790         i23 = i25;
 28791         break;
 28794       if (i23) {
 28795        i27 = i22;
 28796        i26 = 2074;
 28797       } else {
 28798        i28 = i22;
 28799        i26 = 2071;
 28801      } else {
 28802       i28 = 0;
 28803       i26 = 2071;
 28805     } while (0);
 28806     do {
 28807      if ((i26 | 0) == 2071) {
 28808       HEAP32[i6 >> 2] = i3;
 28809       i9 = i2 + 40 | 0;
 28810       HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + 1;
 28811       if ((HEAP32[i2 + 36 >> 2] | 0) != 1) {
 28812        i27 = i28;
 28813        i26 = 2074;
 28814        break;
 28816       if ((HEAP32[i2 + 24 >> 2] | 0) != 2) {
 28817        i27 = i28;
 28818        i26 = 2074;
 28819        break;
 28821       HEAP8[i2 + 54 | 0] = 1;
 28822       if (i28) {
 28823        i26 = 2075;
 28824       } else {
 28825        i26 = 2076;
 28828     } while (0);
 28829     if ((i26 | 0) == 2074) {
 28830      if (i27) {
 28831       i26 = 2075;
 28832      } else {
 28833       i26 = 2076;
 28836     if ((i26 | 0) == 2075) {
 28837      HEAP32[i7 >> 2] = 3;
 28838      return;
 28839     } else if ((i26 | 0) == 2076) {
 28840      HEAP32[i7 >> 2] = 4;
 28841      return;
 28844   } while (0);
 28845   if ((i4 | 0) != 1) {
 28846    return;
 28848   HEAP32[i2 + 32 >> 2] = 1;
 28849   return;
 28851  i27 = HEAP32[i1 + 12 >> 2] | 0;
 28852  i28 = i1 + 16 + (i27 << 3) | 0;
 28853  i22 = HEAP32[i1 + 20 >> 2] | 0;
 28854  i23 = i22 >> 8;
 28855  if ((i22 & 1 | 0) == 0) {
 28856   i29 = i23;
 28857  } else {
 28858   i29 = HEAP32[(HEAP32[i3 >> 2] | 0) + i23 >> 2] | 0;
 28860  i23 = HEAP32[i1 + 16 >> 2] | 0;
 28861  FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i23 >> 2] | 0) + 24 >> 2] & 63](i23, i2, i3 + i29 | 0, (i22 & 2 | 0) != 0 ? i4 : 2, i5);
 28862  i22 = i1 + 24 | 0;
 28863  if ((i27 | 0) <= 1) {
 28864   return;
 28866  i27 = HEAP32[i1 + 8 >> 2] | 0;
 28867  do {
 28868   if ((i27 & 2 | 0) == 0) {
 28869    i1 = i2 + 36 | 0;
 28870    if ((HEAP32[i1 >> 2] | 0) == 1) {
 28871     break;
 28873    if ((i27 & 1 | 0) == 0) {
 28874     i29 = i2 + 54 | 0;
 28875     i23 = i3;
 28876     i25 = i22;
 28877     while (1) {
 28878      if ((HEAP8[i29] & 1) != 0) {
 28879       i26 = 2116;
 28880       break;
 28882      if ((HEAP32[i1 >> 2] | 0) == 1) {
 28883       i26 = 2117;
 28884       break;
 28886      i24 = HEAP32[i25 + 4 >> 2] | 0;
 28887      i21 = i24 >> 8;
 28888      if ((i24 & 1 | 0) == 0) {
 28889       i30 = i21;
 28890      } else {
 28891       i30 = HEAP32[(HEAP32[i23 >> 2] | 0) + i21 >> 2] | 0;
 28893      i21 = HEAP32[i25 >> 2] | 0;
 28894      FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i21 >> 2] | 0) + 24 >> 2] & 63](i21, i2, i3 + i30 | 0, (i24 & 2 | 0) != 0 ? i4 : 2, i5);
 28895      i24 = i25 + 8 | 0;
 28896      if (i24 >>> 0 < i28 >>> 0) {
 28897       i25 = i24;
 28898      } else {
 28899       i26 = 2118;
 28900       break;
 28903     if ((i26 | 0) == 2116) {
 28904      return;
 28905     } else if ((i26 | 0) == 2117) {
 28906      return;
 28907     } else if ((i26 | 0) == 2118) {
 28908      return;
 28911    i25 = i2 + 24 | 0;
 28912    i23 = i2 + 54 | 0;
 28913    i29 = i3;
 28914    i7 = i22;
 28915    while (1) {
 28916     if ((HEAP8[i23] & 1) != 0) {
 28917      i26 = 2113;
 28918      break;
 28920     if ((HEAP32[i1 >> 2] | 0) == 1) {
 28921      if ((HEAP32[i25 >> 2] | 0) == 1) {
 28922       i26 = 2114;
 28923       break;
 28926     i24 = HEAP32[i7 + 4 >> 2] | 0;
 28927     i21 = i24 >> 8;
 28928     if ((i24 & 1 | 0) == 0) {
 28929      i31 = i21;
 28930     } else {
 28931      i31 = HEAP32[(HEAP32[i29 >> 2] | 0) + i21 >> 2] | 0;
 28933     i21 = HEAP32[i7 >> 2] | 0;
 28934     FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i21 >> 2] | 0) + 24 >> 2] & 63](i21, i2, i3 + i31 | 0, (i24 & 2 | 0) != 0 ? i4 : 2, i5);
 28935     i24 = i7 + 8 | 0;
 28936     if (i24 >>> 0 < i28 >>> 0) {
 28937      i7 = i24;
 28938     } else {
 28939      i26 = 2115;
 28940      break;
 28943    if ((i26 | 0) == 2113) {
 28944     return;
 28945    } else if ((i26 | 0) == 2114) {
 28946     return;
 28947    } else if ((i26 | 0) == 2115) {
 28948     return;
 28951  } while (0);
 28952  i31 = i2 + 54 | 0;
 28953  i30 = i3;
 28954  i27 = i22;
 28955  while (1) {
 28956   if ((HEAP8[i31] & 1) != 0) {
 28957    i26 = 2111;
 28958    break;
 28960   i22 = HEAP32[i27 + 4 >> 2] | 0;
 28961   i7 = i22 >> 8;
 28962   if ((i22 & 1 | 0) == 0) {
 28963    i32 = i7;
 28964   } else {
 28965    i32 = HEAP32[(HEAP32[i30 >> 2] | 0) + i7 >> 2] | 0;
 28967   i7 = HEAP32[i27 >> 2] | 0;
 28968   FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i7 >> 2] | 0) + 24 >> 2] & 63](i7, i2, i3 + i32 | 0, (i22 & 2 | 0) != 0 ? i4 : 2, i5);
 28969   i22 = i27 + 8 | 0;
 28970   if (i22 >>> 0 < i28 >>> 0) {
 28971    i27 = i22;
 28972   } else {
 28973    i26 = 2112;
 28974    break;
 28977  if ((i26 | 0) == 2111) {
 28978   return;
 28979  } else if ((i26 | 0) == 2112) {
 28980   return;
 28983 function __ZN23btDiscreteDynamicsWorld19integrateTransformsEf(i1, d2) {
 28984  i1 = i1 | 0;
 28985  d2 = +d2;
 28986  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0, d55 = 0.0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0;
 28987  i3 = STACKTOP;
 28988  STACKTOP = STACKTOP + 280 | 0;
 28989  i4 = i3 | 0;
 28990  i5 = i3 + 64 | 0;
 28991  i6 = i3 + 160 | 0;
 28992  i7 = i3 + 216 | 0;
 28993  __ZN15CProfileManager13Start_ProfileEPKc(120);
 28994  i8 = i1 + 204 | 0;
 28995  if ((HEAP32[i8 >> 2] | 0) <= 0) {
 28996   __ZN15CProfileManager12Stop_ProfileEv();
 28997   STACKTOP = i3;
 28998   return;
 29000  i9 = i1 + 212 | 0;
 29001  i10 = i4 + 48 | 0;
 29002  i11 = i10 | 0;
 29003  i12 = i4 + 52 | 0;
 29004  i13 = i4 + 56 | 0;
 29005  i14 = i1 | 0;
 29006  i15 = i1 + 44 | 0;
 29007  i16 = i1 + 76 | 0;
 29008  i17 = i1 + 24 | 0;
 29009  i18 = i5 | 0;
 29010  i19 = i5 + 4 | 0;
 29011  i20 = i5 + 8 | 0;
 29012  i21 = i5 + 10 | 0;
 29013  i22 = i5 + 12 | 0;
 29014  i23 = i5 + 28 | 0;
 29015  i24 = i10;
 29016  i10 = i5 + 76 | 0;
 29017  i25 = i5 + 80 | 0;
 29018  i26 = i5 + 84 | 0;
 29019  i27 = i5 + 88 | 0;
 29020  i28 = i5 + 92 | 0;
 29021  i29 = i6 | 0;
 29022  i30 = i6 | 0;
 29023  i31 = i6 + 4 | 0;
 29024  i32 = i6 + 28 | 0;
 29025  i33 = i6 + 44 | 0;
 29026  i34 = i1 + 56 | 0;
 29027  i35 = i5 | 0;
 29028  i36 = i7;
 29029  i37 = i4;
 29030  i38 = i7 + 16 | 0;
 29031  i39 = i4 + 16 | 0;
 29032  i40 = i7 + 32 | 0;
 29033  i41 = i4 + 32 | 0;
 29034  i42 = i7 + 48 | 0;
 29035  i43 = i6 | 0;
 29036  i6 = i5 + 60 | 0;
 29037  i44 = i5 + 44 | 0;
 29038  i5 = i1 + 100 | 0;
 29039  i1 = 0;
 29040  do {
 29041   i45 = HEAP32[(HEAP32[i9 >> 2] | 0) + (i1 << 2) >> 2] | 0;
 29042   i46 = i45 | 0;
 29043   i47 = i45 + 240 | 0;
 29044   HEAPF32[i47 >> 2] = 1.0;
 29045   i48 = HEAP32[i45 + 216 >> 2] | 0;
 29046   L734 : do {
 29047    if (!((i48 | 0) == 5 | (i48 | 0) == 2)) {
 29048     if ((HEAP32[i45 + 204 >> 2] & 3 | 0) != 0) {
 29049      break;
 29051     __ZN11btRigidBody26predictIntegratedTransformEfR11btTransform(i45, d2, i4);
 29052     i49 = i45 + 4 | 0;
 29053     i50 = i45 + 52 | 0;
 29054     d51 = +HEAPF32[i11 >> 2] - +HEAPF32[i50 >> 2];
 29055     d52 = +HEAPF32[i12 >> 2] - +HEAPF32[i45 + 56 >> 2];
 29056     d53 = +HEAPF32[i13 >> 2] - +HEAPF32[i45 + 60 >> 2];
 29057     do {
 29058      if ((HEAP8[i15] | 0) != 0) {
 29059       d54 = +HEAPF32[i45 + 248 >> 2];
 29060       d55 = d54 * d54;
 29061       if (!(d55 != 0.0 & d55 < d51 * d51 + d52 * d52 + d53 * d53)) {
 29062        break;
 29064       __ZN15CProfileManager13Start_ProfileEPKc(72);
 29065       if ((HEAP32[(HEAP32[i45 + 192 >> 2] | 0) + 4 >> 2] | 0) < 20) {
 29066        HEAP32[2996] = (HEAP32[2996] | 0) + 1;
 29067        i56 = HEAP32[i16 >> 2] | 0;
 29068        i57 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i56 >> 2] | 0) + 36 >> 2] & 127](i56) | 0;
 29069        i56 = HEAP32[i17 >> 2] | 0;
 29070        HEAPF32[i19 >> 2] = 1.0;
 29071        HEAP16[i20 >> 1] = 1;
 29072        HEAP16[i21 >> 1] = -1;
 29073        HEAP32[i18 >> 2] = 2248;
 29074        i58 = i50;
 29075        HEAP32[i22 >> 2] = HEAP32[i58 >> 2];
 29076        HEAP32[i22 + 4 >> 2] = HEAP32[i58 + 4 >> 2];
 29077        HEAP32[i22 + 8 >> 2] = HEAP32[i58 + 8 >> 2];
 29078        HEAP32[i22 + 12 >> 2] = HEAP32[i58 + 12 >> 2];
 29079        HEAP32[i23 >> 2] = HEAP32[i24 >> 2];
 29080        HEAP32[i23 + 4 >> 2] = HEAP32[i24 + 4 >> 2];
 29081        HEAP32[i23 + 8 >> 2] = HEAP32[i24 + 8 >> 2];
 29082        HEAP32[i23 + 12 >> 2] = HEAP32[i24 + 12 >> 2];
 29083        HEAP32[i10 >> 2] = 0;
 29084        HEAP32[i18 >> 2] = 2464;
 29085        HEAP32[i25 >> 2] = i46;
 29086        HEAPF32[i26 >> 2] = 0.0;
 29087        HEAP32[i27 >> 2] = i57;
 29088        HEAP32[i28 >> 2] = i56;
 29089        d55 = +HEAPF32[i45 + 244 >> 2];
 29090        __ZN21btConvexInternalShapeC2Ev(i29);
 29091        HEAP32[i30 >> 2] = 4728;
 29092        HEAP32[i31 >> 2] = 8;
 29093        HEAPF32[i32 >> 2] = d55;
 29094        HEAPF32[i33 >> 2] = d55;
 29095        HEAPF32[i26 >> 2] = +HEAPF32[i34 >> 2];
 29096        i56 = HEAP32[i45 + 188 >> 2] | 0;
 29097        HEAP16[i20 >> 1] = HEAP16[i56 + 4 >> 1] | 0;
 29098        HEAP16[i21 >> 1] = HEAP16[i56 + 6 >> 1] | 0;
 29099        HEAP32[i36 >> 2] = HEAP32[i37 >> 2];
 29100        HEAP32[i36 + 4 >> 2] = HEAP32[i37 + 4 >> 2];
 29101        HEAP32[i36 + 8 >> 2] = HEAP32[i37 + 8 >> 2];
 29102        HEAP32[i36 + 12 >> 2] = HEAP32[i37 + 12 >> 2];
 29103        HEAP32[i38 >> 2] = HEAP32[i39 >> 2];
 29104        HEAP32[i38 + 4 >> 2] = HEAP32[i39 + 4 >> 2];
 29105        HEAP32[i38 + 8 >> 2] = HEAP32[i39 + 8 >> 2];
 29106        HEAP32[i38 + 12 >> 2] = HEAP32[i39 + 12 >> 2];
 29107        HEAP32[i40 >> 2] = HEAP32[i41 >> 2];
 29108        HEAP32[i40 + 4 >> 2] = HEAP32[i41 + 4 >> 2];
 29109        HEAP32[i40 + 8 >> 2] = HEAP32[i41 + 8 >> 2];
 29110        HEAP32[i40 + 12 >> 2] = HEAP32[i41 + 12 >> 2];
 29111        HEAP32[i42 >> 2] = HEAP32[i24 >> 2];
 29112        HEAP32[i42 + 4 >> 2] = HEAP32[i24 + 4 >> 2];
 29113        HEAP32[i42 + 8 >> 2] = HEAP32[i24 + 8 >> 2];
 29114        HEAP32[i42 + 12 >> 2] = HEAP32[i24 + 12 >> 2];
 29115        i56 = i49;
 29116        HEAP32[i36 >> 2] = HEAP32[i56 >> 2];
 29117        HEAP32[i36 + 4 >> 2] = HEAP32[i56 + 4 >> 2];
 29118        HEAP32[i36 + 8 >> 2] = HEAP32[i56 + 8 >> 2];
 29119        HEAP32[i36 + 12 >> 2] = HEAP32[i56 + 12 >> 2];
 29120        i56 = i45 + 20 | 0;
 29121        HEAP32[i38 >> 2] = HEAP32[i56 >> 2];
 29122        HEAP32[i38 + 4 >> 2] = HEAP32[i56 + 4 >> 2];
 29123        HEAP32[i38 + 8 >> 2] = HEAP32[i56 + 8 >> 2];
 29124        HEAP32[i38 + 12 >> 2] = HEAP32[i56 + 12 >> 2];
 29125        i56 = i45 + 36 | 0;
 29126        HEAP32[i40 >> 2] = HEAP32[i56 >> 2];
 29127        HEAP32[i40 + 4 >> 2] = HEAP32[i56 + 4 >> 2];
 29128        HEAP32[i40 + 8 >> 2] = HEAP32[i56 + 8 >> 2];
 29129        HEAP32[i40 + 12 >> 2] = HEAP32[i56 + 12 >> 2];
 29130        __ZNK16btCollisionWorld15convexSweepTestEPK13btConvexShapeRK11btTransformS5_RNS_20ConvexResultCallbackEf(i14, i43, i49, i7, i35, 0.0);
 29131        d55 = +HEAPF32[i19 >> 2];
 29132        if (d55 < 1.0) {
 29133         HEAPF32[i47 >> 2] = d55;
 29134         __ZN11btRigidBody26predictIntegratedTransformEfR11btTransform(i45, d55 * d2, i4);
 29135         HEAPF32[i47 >> 2] = 0.0;
 29136         __ZN11btRigidBody18proceedToTransformERK11btTransform(i45, i4);
 29137         i56 = HEAP32[i10 >> 2] | 0;
 29138         +__Z22resolveSingleCollisionP11btRigidBodyP17btCollisionObjectRK9btVector3S5_RK19btContactSolverInfof(i45, i56, i6, i44, i5, 0.0);
 29139         i59 = 4;
 29140        } else {
 29141         i59 = 0;
 29143        __ZN13btConvexShapeD2Ev(i43);
 29144        if ((i59 | 0) == 0) {
 29145         i60 = 684;
 29146        } else {
 29147         i61 = i59;
 29149       } else {
 29150        i60 = 684;
 29152       if ((i60 | 0) == 684) {
 29153        i60 = 0;
 29154        i61 = 0;
 29156       __ZN15CProfileManager12Stop_ProfileEv();
 29157       if ((i61 | 0) == 4) {
 29158        break L734;
 29161     } while (0);
 29162     __ZN11btRigidBody18proceedToTransformERK11btTransform(i45, i4);
 29164   } while (0);
 29165   i1 = i1 + 1 | 0;
 29166  } while ((i1 | 0) < (HEAP32[i8 >> 2] | 0));
 29167  __ZN15CProfileManager12Stop_ProfileEv();
 29168  STACKTOP = i3;
 29169  return;
 29171 function __ZNK14btQuantizedBvh36walkStacklessQuantizedTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(i1, i2, i3, i4, i5, i6, i7, i8) {
 29172  i1 = i1 | 0;
 29173  i2 = i2 | 0;
 29174  i3 = i3 | 0;
 29175  i4 = i4 | 0;
 29176  i5 = i5 | 0;
 29177  i6 = i6 | 0;
 29178  i7 = i7 | 0;
 29179  i8 = i8 | 0;
 29180  var i9 = 0, i10 = 0, i11 = 0, d12 = 0.0, i13 = 0, d14 = 0.0, d15 = 0.0, d16 = 0.0, i17 = 0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, d40 = 0.0, i41 = 0, d42 = 0.0, i43 = 0, d44 = 0.0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0, i68 = 0, i69 = 0, i70 = 0, i71 = 0, i72 = 0, i73 = 0, i74 = 0, i75 = 0, i76 = 0;
 29181  i9 = STACKTOP;
 29182  STACKTOP = STACKTOP + 32 | 0;
 29183  i10 = i9 | 0;
 29184  i11 = (HEAP32[i1 + 136 >> 2] | 0) + (i7 << 4) | 0;
 29185  d12 = +HEAPF32[i4 >> 2];
 29186  i13 = i3 | 0;
 29187  d14 = +HEAPF32[i13 >> 2];
 29188  d15 = d12 - d14;
 29189  d16 = +HEAPF32[i4 + 4 >> 2];
 29190  i17 = i3 + 4 | 0;
 29191  d18 = +HEAPF32[i17 >> 2];
 29192  d19 = d16 - d18;
 29193  d20 = +HEAPF32[i4 + 8 >> 2];
 29194  i4 = i3 + 8 | 0;
 29195  d21 = +HEAPF32[i4 >> 2];
 29196  d22 = d20 - d21;
 29197  d23 = 1.0 / +Math_sqrt(+(d15 * d15 + d19 * d19 + d22 * d22));
 29198  d24 = d15 * d23;
 29199  d25 = d19 * d23;
 29200  d26 = d22 * d23;
 29201  d23 = d22 * d26 + (d15 * d24 + d19 * d25);
 29202  if (d24 == 0.0) {
 29203   d27 = 999999984306749400.0;
 29204  } else {
 29205   d27 = 1.0 / d24;
 29207  if (d25 == 0.0) {
 29208   d28 = 999999984306749400.0;
 29209  } else {
 29210   d28 = 1.0 / d25;
 29212  if (d26 == 0.0) {
 29213   d29 = 999999984306749400.0;
 29214  } else {
 29215   d29 = 1.0 / d26;
 29217  i3 = d27 < 0.0 | 0;
 29218  i30 = d28 < 0.0 | 0;
 29219  i31 = d29 < 0.0 | 0;
 29220  i32 = i5 | 0;
 29221  d26 = (d12 < d14 ? d12 : d14) + +HEAPF32[i32 >> 2];
 29222  i33 = i5 + 4 | 0;
 29223  d25 = (d16 < d18 ? d16 : d18) + +HEAPF32[i33 >> 2];
 29224  i34 = i5 + 8 | 0;
 29225  d24 = (d20 < d21 ? d20 : d21) + +HEAPF32[i34 >> 2];
 29226  i5 = i6 | 0;
 29227  d19 = (d14 < d12 ? d12 : d14) + +HEAPF32[i5 >> 2];
 29228  i35 = i6 + 4 | 0;
 29229  d14 = (d18 < d16 ? d16 : d18) + +HEAPF32[i35 >> 2];
 29230  i36 = i6 + 8 | 0;
 29231  d18 = (d21 < d20 ? d20 : d21) + +HEAPF32[i36 >> 2];
 29232  i6 = i1 + 4 | 0;
 29233  d21 = +HEAPF32[i6 >> 2];
 29234  d20 = d26 < d21 ? d21 : d26;
 29235  i37 = i1 + 8 | 0;
 29236  d26 = +HEAPF32[i37 >> 2];
 29237  d16 = d25 < d26 ? d26 : d25;
 29238  i38 = i1 + 12 | 0;
 29239  d25 = +HEAPF32[i38 >> 2];
 29240  d12 = d24 < d25 ? d25 : d24;
 29241  d24 = +HEAPF32[i1 + 20 >> 2];
 29242  d15 = +HEAPF32[i1 + 24 >> 2];
 29243  d22 = +HEAPF32[i1 + 28 >> 2];
 29244  i39 = i1 + 36 | 0;
 29245  d40 = +HEAPF32[i39 >> 2];
 29246  i41 = i1 + 40 | 0;
 29247  d42 = +HEAPF32[i41 >> 2];
 29248  i43 = i1 + 44 | 0;
 29249  d44 = +HEAPF32[i43 >> 2];
 29250  i1 = ~~(((d24 < d20 ? d24 : d20) - d21) * d40) & -2;
 29251  i45 = ~~(((d15 < d16 ? d15 : d16) - d26) * d42) & -2;
 29252  i46 = ~~(((d22 < d12 ? d22 : d12) - d25) * d44) & -2;
 29253  d12 = d19 < d21 ? d21 : d19;
 29254  d19 = d14 < d26 ? d26 : d14;
 29255  d14 = d18 < d25 ? d25 : d18;
 29256  i47 = ~~(((d24 < d12 ? d24 : d12) - d21) * d40 + 1.0) | 1;
 29257  i48 = ~~(((d15 < d19 ? d15 : d19) - d26) * d42 + 1.0) | 1;
 29258  i49 = ~~(((d22 < d14 ? d22 : d14) - d25) * d44 + 1.0) | 1;
 29259  if ((i7 | 0) < (i8 | 0)) {
 29260   i50 = i10 | 0;
 29261   i51 = i10 + 4 | 0;
 29262   i52 = i10 + 8 | 0;
 29263   i53 = i10 + 12 | 0;
 29264   i54 = i10 + 16 | 0;
 29265   i55 = i10 + 20 | 0;
 29266   i56 = i10 + 24 | 0;
 29267   i57 = i10 + 28 | 0;
 29268   i58 = i10 + (i3 << 4) | 0;
 29269   i59 = i10 + ((i3 ^ 1) << 4) | 0;
 29270   i3 = i10 + (i30 << 4) + 4 | 0;
 29271   i60 = i10 + ((i30 ^ 1) << 4) + 4 | 0;
 29272   i30 = i2;
 29273   i61 = i10 + (i31 << 4) + 8 | 0;
 29274   i62 = i10 + ((i31 ^ 1) << 4) + 8 | 0;
 29275   i31 = i11;
 29276   i11 = 0;
 29277   i10 = i7;
 29278   while (1) {
 29279    i7 = i11 + 1 | 0;
 29280    i63 = i31 + 6 | 0;
 29281    i64 = HEAP16[i31 >> 1] | 0;
 29282    i65 = i31 + 10 | 0;
 29283    i66 = HEAP16[i31 + 4 >> 1] | 0;
 29284    i67 = i31 + 8 | 0;
 29285    i68 = HEAP16[i31 + 2 >> 1] | 0;
 29286    i69 = i31 + 12 | 0;
 29287    i70 = (HEAP32[i69 >> 2] | 0) > -1;
 29288    do {
 29289     if ((-((i1 & 65535) <= (HEAPU16[i63 >> 1] | 0) & (i47 & 65535) >= (i64 & 65535) & (i46 & 65535) <= (HEAPU16[i65 >> 1] | 0) & (i49 & 65535) >= (i66 & 65535) & (i45 & 65535) <= (HEAPU16[i67 >> 1] | 0) & (i48 & 65535) >= (i68 & 65535) & 1) & 1 | 0) == 0) {
 29290      i71 = 1;
 29291      i72 = 498;
 29292     } else {
 29293      d44 = +HEAPF32[i39 >> 2];
 29294      d25 = +HEAPF32[i41 >> 2];
 29295      d14 = +HEAPF32[i43 >> 2];
 29296      d22 = +HEAPF32[i6 >> 2];
 29297      d42 = +HEAPF32[i37 >> 2];
 29298      d26 = +HEAPF32[i38 >> 2];
 29299      HEAPF32[i53 >> 2] = 0.0;
 29300      d19 = d22 + +((HEAPU16[i63 >> 1] | 0) >>> 0) / d44;
 29301      d15 = d42 + +((HEAPU16[i67 >> 1] | 0) >>> 0) / d25;
 29302      d40 = d26 + +((HEAPU16[i65 >> 1] | 0) >>> 0) / d14;
 29303      HEAPF32[i57 >> 2] = 0.0;
 29304      HEAPF32[i50 >> 2] = +((i64 & 65535) >>> 0) / d44 + d22 - +HEAPF32[i5 >> 2];
 29305      HEAPF32[i51 >> 2] = +((i68 & 65535) >>> 0) / d25 + d42 - +HEAPF32[i35 >> 2];
 29306      HEAPF32[i52 >> 2] = +((i66 & 65535) >>> 0) / d14 + d26 - +HEAPF32[i36 >> 2];
 29307      HEAPF32[i54 >> 2] = d19 - +HEAPF32[i32 >> 2];
 29308      HEAPF32[i55 >> 2] = d15 - +HEAPF32[i33 >> 2];
 29309      HEAPF32[i56 >> 2] = d40 - +HEAPF32[i34 >> 2];
 29310      d40 = +HEAPF32[i13 >> 2];
 29311      d15 = d27 * (+HEAPF32[i58 >> 2] - d40);
 29312      d19 = d27 * (+HEAPF32[i59 >> 2] - d40);
 29313      d40 = +HEAPF32[i17 >> 2];
 29314      d26 = d28 * (+HEAPF32[i3 >> 2] - d40);
 29315      d14 = d28 * (+HEAPF32[i60 >> 2] - d40);
 29316      if (d15 > d14 | d26 > d19) {
 29317       i71 = 1;
 29318       i72 = 498;
 29319       break;
 29321      d40 = d26 > d15 ? d26 : d15;
 29322      d15 = d14 < d19 ? d14 : d19;
 29323      d19 = +HEAPF32[i4 >> 2];
 29324      d14 = d29 * (+HEAPF32[i61 >> 2] - d19);
 29325      d26 = d29 * (+HEAPF32[i62 >> 2] - d19);
 29326      if (d40 > d26 | d14 > d15) {
 29327       i71 = 1;
 29328       i72 = 498;
 29329       break;
 29331      if ((d14 > d40 ? d14 : d40) >= d23) {
 29332       i71 = 1;
 29333       i72 = 498;
 29334       break;
 29336      i73 = (d26 < d15 ? d26 : d15) <= 0.0;
 29337      if (i73 | i70 ^ 1) {
 29338       i71 = i73;
 29339       i72 = 498;
 29340       break;
 29342      i73 = HEAP32[i69 >> 2] | 0;
 29343      FUNCTION_TABLE_viii[HEAP32[(HEAP32[i30 >> 2] | 0) + 8 >> 2] & 127](i2, i73 >> 21, i73 & 2097151);
 29344      i72 = 499;
 29346    } while (0);
 29347    do {
 29348     if ((i72 | 0) == 498) {
 29349      i72 = 0;
 29350      if (i70 | i71 ^ 1) {
 29351       i72 = 499;
 29352       break;
 29354      i66 = HEAP32[i69 >> 2] | 0;
 29355      i74 = i10 - i66 | 0;
 29356      i75 = i31 + (-i66 << 4) | 0;
 29358    } while (0);
 29359    if ((i72 | 0) == 499) {
 29360     i72 = 0;
 29361     i74 = i10 + 1 | 0;
 29362     i75 = i31 + 16 | 0;
 29364    if ((i74 | 0) < (i8 | 0)) {
 29365     i31 = i75;
 29366     i11 = i7;
 29367     i10 = i74;
 29368    } else {
 29369     i76 = i7;
 29370     break;
 29373  } else {
 29374   i76 = 0;
 29376  if ((HEAP32[2982] | 0) >= (i76 | 0)) {
 29377   STACKTOP = i9;
 29378   return;
 29380  HEAP32[2982] = i76;
 29381  STACKTOP = i9;
 29382  return;
 29384 function __ZNK14btQuantizedBvh27walkStacklessTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(i1, i2, i3, i4, i5, i6, i7, i8) {
 29385  i1 = i1 | 0;
 29386  i2 = i2 | 0;
 29387  i3 = i3 | 0;
 29388  i4 = i4 | 0;
 29389  i5 = i5 | 0;
 29390  i6 = i6 | 0;
 29391  i7 = i7 | 0;
 29392  i8 = i8 | 0;
 29393  var i9 = 0, i10 = 0, d11 = 0.0, i12 = 0, d13 = 0.0, i14 = 0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, i23 = 0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, i28 = 0, d29 = 0.0, d30 = 0.0, i31 = 0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0, i64 = 0, d65 = 0.0, d66 = 0.0, d67 = 0.0, d68 = 0.0, d69 = 0.0, i70 = 0, i71 = 0, i72 = 0, i73 = 0, i74 = 0, i75 = 0, i76 = 0, i77 = 0, i78 = 0;
 29394  i8 = STACKTOP;
 29395  STACKTOP = STACKTOP + 32 | 0;
 29396  i7 = i8 | 0;
 29397  i9 = HEAP32[i1 + 96 >> 2] | 0;
 29398  i10 = i3 | 0;
 29399  d11 = +HEAPF32[i10 >> 2];
 29400  i12 = i3 + 4 | 0;
 29401  d13 = +HEAPF32[i12 >> 2];
 29402  i14 = i3 + 8 | 0;
 29403  d15 = +HEAPF32[i14 >> 2];
 29404  d16 = +HEAPF32[i4 >> 2];
 29405  d17 = +HEAPF32[i4 + 4 >> 2];
 29406  d18 = +HEAPF32[i4 + 8 >> 2];
 29407  i4 = i5 | 0;
 29408  d19 = +HEAPF32[i4 >> 2];
 29409  d20 = (d16 < d11 ? d16 : d11) + d19;
 29410  i3 = i5 + 4 | 0;
 29411  d21 = +HEAPF32[i3 >> 2];
 29412  d22 = (d17 < d13 ? d17 : d13) + d21;
 29413  i23 = i5 + 8 | 0;
 29414  d24 = +HEAPF32[i23 >> 2];
 29415  d25 = (d18 < d15 ? d18 : d15) + d24;
 29416  i5 = i6 | 0;
 29417  d26 = +HEAPF32[i5 >> 2];
 29418  d27 = (d11 < d16 ? d16 : d11) + d26;
 29419  i28 = i6 + 4 | 0;
 29420  d29 = +HEAPF32[i28 >> 2];
 29421  d30 = (d13 < d17 ? d17 : d13) + d29;
 29422  i31 = i6 + 8 | 0;
 29423  d32 = +HEAPF32[i31 >> 2];
 29424  d33 = (d15 < d18 ? d18 : d15) + d32;
 29425  d34 = d16 - d11;
 29426  d11 = d17 - d13;
 29427  d13 = d18 - d15;
 29428  d15 = 1.0 / +Math_sqrt(+(d34 * d34 + d11 * d11 + d13 * d13));
 29429  d18 = d34 * d15;
 29430  d17 = d11 * d15;
 29431  d16 = d13 * d15;
 29432  d15 = d13 * d16 + (d34 * d18 + d11 * d17);
 29433  if (d18 == 0.0) {
 29434   d35 = 999999984306749400.0;
 29435  } else {
 29436   d35 = 1.0 / d18;
 29438  if (d17 == 0.0) {
 29439   d36 = 999999984306749400.0;
 29440  } else {
 29441   d36 = 1.0 / d17;
 29443  if (d16 == 0.0) {
 29444   d37 = 999999984306749400.0;
 29445  } else {
 29446   d37 = 1.0 / d16;
 29448  i6 = d35 < 0.0 | 0;
 29449  i38 = d36 < 0.0 | 0;
 29450  i39 = d37 < 0.0 | 0;
 29451  i40 = i1 + 56 | 0;
 29452  i1 = HEAP32[i40 >> 2] | 0;
 29453  L599 : do {
 29454   if ((i1 | 0) > 0) {
 29455    i41 = i7;
 29456    i42 = i7 + 16 | 0;
 29457    i43 = i42;
 29458    i44 = i7 | 0;
 29459    i45 = i7 + 4 | 0;
 29460    i46 = i7 + 8 | 0;
 29461    i47 = i42 | 0;
 29462    i42 = i7 + 20 | 0;
 29463    i48 = i7 + 24 | 0;
 29464    i49 = i7 + (i6 << 4) | 0;
 29465    i50 = i7 + ((i6 ^ 1) << 4) | 0;
 29466    i51 = i7 + (i38 << 4) + 4 | 0;
 29467    i52 = i7 + ((i38 ^ 1) << 4) + 4 | 0;
 29468    i53 = i7 + (i39 << 4) + 8 | 0;
 29469    i54 = i7 + ((i39 ^ 1) << 4) + 8 | 0;
 29470    i55 = i2;
 29471    i56 = 0;
 29472    i57 = 1;
 29473    i58 = i9;
 29474    d16 = d26;
 29475    d17 = d29;
 29476    d18 = d32;
 29477    d11 = d19;
 29478    d34 = d21;
 29479    d13 = d24;
 29480    i59 = i1;
 29481    while (1) {
 29482     i60 = i58;
 29483     HEAP32[i41 >> 2] = HEAP32[i60 >> 2];
 29484     HEAP32[i41 + 4 >> 2] = HEAP32[i60 + 4 >> 2];
 29485     HEAP32[i41 + 8 >> 2] = HEAP32[i60 + 8 >> 2];
 29486     HEAP32[i41 + 12 >> 2] = HEAP32[i60 + 12 >> 2];
 29487     i60 = i58 + 16 | 0;
 29488     i61 = i60;
 29489     HEAP32[i43 >> 2] = HEAP32[i61 >> 2];
 29490     HEAP32[i43 + 4 >> 2] = HEAP32[i61 + 4 >> 2];
 29491     HEAP32[i43 + 8 >> 2] = HEAP32[i61 + 8 >> 2];
 29492     HEAP32[i43 + 12 >> 2] = HEAP32[i61 + 12 >> 2];
 29493     HEAPF32[i44 >> 2] = +HEAPF32[i44 >> 2] - d16;
 29494     HEAPF32[i45 >> 2] = +HEAPF32[i45 >> 2] - d17;
 29495     HEAPF32[i46 >> 2] = +HEAPF32[i46 >> 2] - d18;
 29496     HEAPF32[i47 >> 2] = +HEAPF32[i47 >> 2] - d11;
 29497     HEAPF32[i42 >> 2] = +HEAPF32[i42 >> 2] - d34;
 29498     HEAPF32[i48 >> 2] = +HEAPF32[i48 >> 2] - d13;
 29499     do {
 29500      if (d20 > +HEAPF32[i60 >> 2]) {
 29501       i62 = 0;
 29502      } else {
 29503       if (d27 < +HEAPF32[i58 >> 2]) {
 29504        i62 = 0;
 29505        break;
 29507       i62 = 1;
 29509     } while (0);
 29510     do {
 29511      if (d25 > +HEAPF32[i58 + 24 >> 2]) {
 29512       i63 = 0;
 29513      } else {
 29514       if (d33 < +HEAPF32[i58 + 8 >> 2]) {
 29515        i63 = 0;
 29516        break;
 29518       i63 = i62;
 29520     } while (0);
 29521     do {
 29522      if (d22 > +HEAPF32[i58 + 20 >> 2]) {
 29523       i64 = 471;
 29524      } else {
 29525       if (d30 < +HEAPF32[i58 + 4 >> 2] | i63 ^ 1) {
 29526        i64 = 471;
 29527        break;
 29529       d65 = +HEAPF32[i10 >> 2];
 29530       d66 = d35 * (+HEAPF32[i49 >> 2] - d65);
 29531       d67 = d35 * (+HEAPF32[i50 >> 2] - d65);
 29532       d65 = +HEAPF32[i12 >> 2];
 29533       d68 = d36 * (+HEAPF32[i51 >> 2] - d65);
 29534       d69 = d36 * (+HEAPF32[i52 >> 2] - d65);
 29535       if (d66 > d69 | d68 > d67) {
 29536        i64 = 471;
 29537        break;
 29539       d65 = d68 > d66 ? d68 : d66;
 29540       d66 = d69 < d67 ? d69 : d67;
 29541       d67 = +HEAPF32[i14 >> 2];
 29542       d69 = d37 * (+HEAPF32[i53 >> 2] - d67);
 29543       d68 = d37 * (+HEAPF32[i54 >> 2] - d67);
 29544       if (d65 > d68 | d69 > d66) {
 29545        i64 = 471;
 29546        break;
 29548       if ((d69 > d65 ? d69 : d65) >= d15) {
 29549        i64 = 471;
 29550        break;
 29552       i60 = (d68 < d66 ? d68 : d66) > 0.0;
 29553       i61 = HEAP32[i58 + 32 >> 2] | 0;
 29554       i70 = (i61 | 0) == -1;
 29555       if (!(i70 & i60)) {
 29556        i71 = i60;
 29557        i72 = i70;
 29558        i73 = i61;
 29559        i64 = 474;
 29560        break;
 29562       FUNCTION_TABLE_viii[HEAP32[(HEAP32[i55 >> 2] | 0) + 8 >> 2] & 127](i2, HEAP32[i58 + 36 >> 2] | 0, HEAP32[i58 + 40 >> 2] | 0);
 29563       i74 = HEAP32[i40 >> 2] | 0;
 29564       i64 = 475;
 29566     } while (0);
 29567     if ((i64 | 0) == 471) {
 29568      i64 = 0;
 29569      i61 = HEAP32[i58 + 32 >> 2] | 0;
 29570      i71 = 0;
 29571      i72 = (i61 | 0) == -1;
 29572      i73 = i61;
 29573      i64 = 474;
 29575     do {
 29576      if ((i64 | 0) == 474) {
 29577       i64 = 0;
 29578       if (i71 | i72) {
 29579        i74 = i59;
 29580        i64 = 475;
 29581        break;
 29583       i75 = i58 + (i73 << 6) | 0;
 29584       i76 = i73 + i56 | 0;
 29585       i77 = i59;
 29587     } while (0);
 29588     if ((i64 | 0) == 475) {
 29589      i64 = 0;
 29590      i75 = i58 + 64 | 0;
 29591      i76 = i56 + 1 | 0;
 29592      i77 = i74;
 29594     if ((i76 | 0) >= (i77 | 0)) {
 29595      i78 = i57;
 29596      break L599;
 29598     i56 = i76;
 29599     i57 = i57 + 1 | 0;
 29600     i58 = i75;
 29601     d16 = +HEAPF32[i5 >> 2];
 29602     d17 = +HEAPF32[i28 >> 2];
 29603     d18 = +HEAPF32[i31 >> 2];
 29604     d11 = +HEAPF32[i4 >> 2];
 29605     d34 = +HEAPF32[i3 >> 2];
 29606     d13 = +HEAPF32[i23 >> 2];
 29607     i59 = i77;
 29609   } else {
 29610    i78 = 0;
 29612  } while (0);
 29613  if ((HEAP32[2982] | 0) >= (i78 | 0)) {
 29614   STACKTOP = i8;
 29615   return;
 29617  HEAP32[2982] = i78;
 29618  STACKTOP = i8;
 29619  return;
 29621 function __ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i1, i2, i3, i4) {
 29622  i1 = i1 | 0;
 29623  i2 = i2 | 0;
 29624  i3 = i3 | 0;
 29625  i4 = i4 | 0;
 29626  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0;
 29627  i5 = STACKTOP;
 29628  STACKTOP = STACKTOP + 16 | 0;
 29629  i6 = i2;
 29630  i2 = STACKTOP;
 29631  STACKTOP = STACKTOP + 1 | 0;
 29632  STACKTOP = STACKTOP + 7 >> 3 << 3;
 29633  HEAP8[i2] = HEAP8[i6] | 0;
 29634  i6 = i5 | 0;
 29635  i2 = i5 + 8 | 0;
 29636  i7 = (i4 + i3 | 0) / 2 | 0;
 29637  i8 = i1 + 12 | 0;
 29638  i9 = HEAP32[i8 >> 2] | 0;
 29639  i10 = HEAP32[i9 + (i7 << 4) >> 2] | 0;
 29640  i11 = HEAP32[i9 + (i7 << 4) + 4 >> 2] | 0;
 29641  i12 = HEAP32[i9 + (i7 << 4) + 8 >> 2] | 0;
 29642  i7 = (i10 | 0) == 0;
 29643  i13 = (i11 | 0) == 0;
 29644  i14 = i11 + 12 | 0;
 29645  i15 = i10 + 12 | 0;
 29646  i16 = i4;
 29647  i17 = i3;
 29648  i18 = i9;
 29649  while (1) {
 29650   L1160 : do {
 29651    if (i7) {
 29652     i9 = i17;
 29653     while (1) {
 29654      i19 = HEAP32[i18 + (i9 << 4) >> 2] | 0;
 29655      i20 = (i19 | 0) == 0;
 29656      if (i20) {
 29657       i21 = -1;
 29658      } else {
 29659       i21 = HEAP32[i19 + 12 >> 2] | 0;
 29661      i22 = HEAP32[i18 + (i9 << 4) + 4 >> 2] | 0;
 29662      if ((i22 | 0) == 0) {
 29663       i23 = -1;
 29664      } else {
 29665       i23 = HEAP32[i22 + 12 >> 2] | 0;
 29667      if (i13) {
 29668       i24 = -1;
 29669      } else {
 29670       i24 = HEAP32[i14 >> 2] | 0;
 29672      do {
 29673       if ((i21 | 0) <= -1) {
 29674        i25 = i20 & (i23 | 0) > (i24 | 0);
 29675        if (i25 | i20 ^ 1) {
 29676         if (i25) {
 29677          break;
 29678         } else {
 29679          i26 = i9;
 29680          i27 = i19;
 29681          i28 = i22;
 29682          break L1160;
 29685        if ((i22 | 0) != (i11 | 0)) {
 29686         i26 = i9;
 29687         i27 = i19;
 29688         i28 = i22;
 29689         break L1160;
 29691        if ((HEAP32[i18 + (i9 << 4) + 8 >> 2] | 0) >>> 0 <= i12 >>> 0) {
 29692         i26 = i9;
 29693         i27 = i19;
 29694         i28 = i22;
 29695         break L1160;
 29698      } while (0);
 29699      i9 = i9 + 1 | 0;
 29701    } else {
 29702     if (i13) {
 29703      i9 = i17;
 29704      while (1) {
 29705       i22 = HEAP32[i18 + (i9 << 4) >> 2] | 0;
 29706       if ((i22 | 0) == 0) {
 29707        i29 = -1;
 29708       } else {
 29709        i29 = HEAP32[i22 + 12 >> 2] | 0;
 29711       i19 = HEAP32[i18 + (i9 << 4) + 4 >> 2] | 0;
 29712       i20 = (i19 | 0) == 0;
 29713       if (i20) {
 29714        i30 = -1;
 29715       } else {
 29716        i30 = HEAP32[i19 + 12 >> 2] | 0;
 29718       do {
 29719        if ((i29 | 0) <= (HEAP32[i15 >> 2] | 0)) {
 29720         i25 = (i22 | 0) == (i10 | 0);
 29721         i31 = i25 & (i30 | 0) > -1;
 29722         if (i31 | i25 ^ 1) {
 29723          if (i31) {
 29724           break;
 29725          } else {
 29726           i26 = i9;
 29727           i27 = i22;
 29728           i28 = i19;
 29729           break L1160;
 29732         if (!i20) {
 29733          i26 = i9;
 29734          i27 = i22;
 29735          i28 = i19;
 29736          break L1160;
 29738         if ((HEAP32[i18 + (i9 << 4) + 8 >> 2] | 0) >>> 0 <= i12 >>> 0) {
 29739          i26 = i9;
 29740          i27 = i22;
 29741          i28 = 0;
 29742          break L1160;
 29745       } while (0);
 29746       i9 = i9 + 1 | 0;
 29748     } else {
 29749      i9 = i17;
 29750      while (1) {
 29751       i22 = HEAP32[i18 + (i9 << 4) >> 2] | 0;
 29752       if ((i22 | 0) == 0) {
 29753        i32 = -1;
 29754       } else {
 29755        i32 = HEAP32[i22 + 12 >> 2] | 0;
 29757       i19 = HEAP32[i18 + (i9 << 4) + 4 >> 2] | 0;
 29758       if ((i19 | 0) == 0) {
 29759        i33 = -1;
 29760       } else {
 29761        i33 = HEAP32[i19 + 12 >> 2] | 0;
 29763       do {
 29764        if ((i32 | 0) <= (HEAP32[i15 >> 2] | 0)) {
 29765         i20 = (i22 | 0) == (i10 | 0);
 29766         i31 = i20 & (i33 | 0) > (HEAP32[i14 >> 2] | 0);
 29767         if (i31 | i20 ^ 1) {
 29768          if (i31) {
 29769           break;
 29770          } else {
 29771           i26 = i9;
 29772           i27 = i22;
 29773           i28 = i19;
 29774           break L1160;
 29777         if ((i19 | 0) != (i11 | 0)) {
 29778          i26 = i9;
 29779          i27 = i22;
 29780          i28 = i19;
 29781          break L1160;
 29783         if ((HEAP32[i18 + (i9 << 4) + 8 >> 2] | 0) >>> 0 <= i12 >>> 0) {
 29784          i26 = i9;
 29785          i27 = i22;
 29786          i28 = i19;
 29787          break L1160;
 29790       } while (0);
 29791       i9 = i9 + 1 | 0;
 29795   } while (0);
 29796   i9 = i16;
 29797   L1212 : while (1) {
 29798    if (i7) {
 29799     i34 = -1;
 29800    } else {
 29801     i34 = HEAP32[i15 >> 2] | 0;
 29803    i19 = HEAP32[i18 + (i9 << 4) >> 2] | 0;
 29804    if ((i19 | 0) == 0) {
 29805     i35 = -1;
 29806    } else {
 29807     i35 = HEAP32[i19 + 12 >> 2] | 0;
 29809    if (i13) {
 29810     i36 = -1;
 29811    } else {
 29812     i36 = HEAP32[i14 >> 2] | 0;
 29814    i22 = HEAP32[i18 + (i9 << 4) + 4 >> 2] | 0;
 29815    if ((i22 | 0) == 0) {
 29816     i37 = -1;
 29817    } else {
 29818     i37 = HEAP32[i22 + 12 >> 2] | 0;
 29820    do {
 29821     if ((i34 | 0) <= (i35 | 0)) {
 29822      i31 = (i10 | 0) == (i19 | 0);
 29823      i20 = i31 & (i36 | 0) > (i37 | 0);
 29824      if (i20 | i31 ^ 1) {
 29825       if (i20) {
 29826        break;
 29827       } else {
 29828        break L1212;
 29831      if ((i11 | 0) != (i22 | 0)) {
 29832       break L1212;
 29834      if (i12 >>> 0 <= (HEAP32[i18 + (i9 << 4) + 8 >> 2] | 0) >>> 0) {
 29835       break L1212;
 29838    } while (0);
 29839    i9 = i9 - 1 | 0;
 29841   if ((i26 | 0) > (i9 | 0)) {
 29842    i38 = i9;
 29843    i39 = i26;
 29844   } else {
 29845    i22 = HEAP32[i18 + (i26 << 4) + 8 >> 2] | 0;
 29846    i19 = HEAP32[i18 + (i26 << 4) + 12 >> 2] | 0;
 29847    i20 = i18 + (i26 << 4) | 0;
 29848    i31 = i18 + (i9 << 4) | 0;
 29849    HEAP32[i20 >> 2] = HEAP32[i31 >> 2];
 29850    HEAP32[i20 + 4 >> 2] = HEAP32[i31 + 4 >> 2];
 29851    HEAP32[i20 + 8 >> 2] = HEAP32[i31 + 8 >> 2];
 29852    HEAP32[i20 + 12 >> 2] = HEAP32[i31 + 12 >> 2];
 29853    i31 = HEAP32[i8 >> 2] | 0;
 29854    HEAP32[i31 + (i9 << 4) >> 2] = i27;
 29855    HEAP32[i31 + (i9 << 4) + 4 >> 2] = i28;
 29856    HEAP32[i31 + (i9 << 4) + 8 >> 2] = i22;
 29857    HEAP32[i31 + (i9 << 4) + 12 >> 2] = i19;
 29858    i38 = i9 - 1 | 0;
 29859    i39 = i26 + 1 | 0;
 29861   if ((i39 | 0) > (i38 | 0)) {
 29862    break;
 29864   i16 = i38;
 29865   i17 = i39;
 29866   i18 = HEAP32[i8 >> 2] | 0;
 29868  if ((i38 | 0) > (i3 | 0)) {
 29869   __ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i1, i6, i3, i38);
 29871  if ((i39 | 0) >= (i4 | 0)) {
 29872   STACKTOP = i5;
 29873   return;
 29875  __ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i1, i2, i39, i4);
 29876  STACKTOP = i5;
 29877  return;
 29879 function __ZN31btDefaultCollisionConfigurationC2ERK34btDefaultCollisionConstructionInfo(i1, i2) {
 29880  i1 = i1 | 0;
 29881  i2 = i2 | 0;
 29882  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0;
 29883  HEAP32[i1 >> 2] = 2608;
 29884  i3 = __Z22btAlignedAllocInternalji(360, 16) | 0;
 29885  if ((i3 | 0) == 0) {
 29886   i4 = 0;
 29887  } else {
 29888   HEAPF32[i3 + 308 >> 2] = 9999999747378752.0e-20;
 29889   i5 = i3 + 332 | 0;
 29890   HEAP16[i5 >> 1] = HEAP16[i5 >> 1] & -16;
 29891   i4 = i3;
 29893  i3 = i1 + 32 | 0;
 29894  HEAP32[i3 >> 2] = i4;
 29895  i4 = (HEAP32[i2 + 28 >> 2] | 0) == 0;
 29896  i5 = __Z22btAlignedAllocInternalji(4, 16) | 0;
 29897  i6 = (i5 | 0) == 0;
 29898  if (i4) {
 29899   if (i6) {
 29900    i7 = 0;
 29901   } else {
 29902    HEAP32[i5 >> 2] = 2496;
 29903    i7 = i5;
 29905   HEAP32[i1 + 36 >> 2] = i7;
 29906  } else {
 29907   if (i6) {
 29908    i8 = 0;
 29909   } else {
 29910    HEAP32[i5 >> 2] = 2696;
 29911    i8 = i5;
 29913   HEAP32[i1 + 36 >> 2] = i8;
 29915  i8 = __Z22btAlignedAllocInternalji(24, 16) | 0;
 29916  if ((i8 | 0) == 0) {
 29917   i9 = 0;
 29918  } else {
 29919   i5 = i8;
 29920   __ZN23btConvexConvexAlgorithm10CreateFuncC2EP22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver(i5, HEAP32[i3 >> 2] | 0, HEAP32[i1 + 36 >> 2] | 0);
 29921   i9 = i5;
 29923  HEAP32[i1 + 40 >> 2] = i9;
 29924  i9 = __Z22btAlignedAllocInternalji(8, 16) | 0;
 29925  if ((i9 | 0) == 0) {
 29926   i10 = 0;
 29927  } else {
 29928   HEAP8[i9 + 4 | 0] = 0;
 29929   HEAP32[i9 >> 2] = 1992;
 29930   i10 = i9;
 29932  HEAP32[i1 + 44 >> 2] = i10;
 29933  i10 = __Z22btAlignedAllocInternalji(8, 16) | 0;
 29934  if ((i10 | 0) == 0) {
 29935   i11 = 0;
 29936  } else {
 29937   HEAP8[i10 + 4 | 0] = 0;
 29938   HEAP32[i10 >> 2] = 1960;
 29939   i11 = i10;
 29941  HEAP32[i1 + 48 >> 2] = i11;
 29942  i11 = __Z22btAlignedAllocInternalji(8, 16) | 0;
 29943  if ((i11 | 0) == 0) {
 29944   i12 = 0;
 29945  } else {
 29946   HEAP8[i11 + 4 | 0] = 0;
 29947   HEAP32[i11 >> 2] = 2120;
 29948   i12 = i11;
 29950  HEAP32[i1 + 52 >> 2] = i12;
 29951  i12 = __Z22btAlignedAllocInternalji(8, 16) | 0;
 29952  if ((i12 | 0) == 0) {
 29953   i13 = 0;
 29954  } else {
 29955   HEAP8[i12 + 4 | 0] = 0;
 29956   HEAP32[i12 >> 2] = 2088;
 29957   i13 = i12;
 29959  HEAP32[i1 + 56 >> 2] = i13;
 29960  i13 = __Z22btAlignedAllocInternalji(8, 16) | 0;
 29961  if ((i13 | 0) == 0) {
 29962   i14 = 0;
 29963  } else {
 29964   HEAP8[i13 + 4 | 0] = 0;
 29965   HEAP32[i13 >> 2] = 2216;
 29966   i14 = i13;
 29968  HEAP32[i1 + 60 >> 2] = i14;
 29969  i14 = __Z22btAlignedAllocInternalji(8, 16) | 0;
 29970  if ((i14 | 0) == 0) {
 29971   i15 = 0;
 29972  } else {
 29973   HEAP8[i14 + 4 | 0] = 0;
 29974   HEAP32[i14 >> 2] = 2024;
 29975   i15 = i14;
 29977  HEAP32[i1 + 64 >> 2] = i15;
 29978  i15 = __Z22btAlignedAllocInternalji(8, 16) | 0;
 29979  if ((i15 | 0) == 0) {
 29980   i16 = 0;
 29981  } else {
 29982   HEAP8[i15 + 4 | 0] = 0;
 29983   HEAP32[i15 >> 2] = 1928;
 29984   i16 = i15;
 29986  HEAP32[i1 + 72 >> 2] = i16;
 29987  i16 = __Z22btAlignedAllocInternalji(8, 16) | 0;
 29988  if ((i16 | 0) == 0) {
 29989   i17 = 0;
 29990  } else {
 29991   HEAP8[i16 + 4 | 0] = 0;
 29992   HEAP32[i16 >> 2] = 1928;
 29993   i17 = i16;
 29995  HEAP32[i1 + 76 >> 2] = i17;
 29996  HEAP8[i17 + 4 | 0] = 1;
 29997  i17 = __Z22btAlignedAllocInternalji(8, 16) | 0;
 29998  if ((i17 | 0) == 0) {
 29999   i18 = 0;
 30000  } else {
 30001   HEAP8[i17 + 4 | 0] = 0;
 30002   HEAP32[i17 >> 2] = 2152;
 30003   i18 = i17;
 30005  HEAP32[i1 + 68 >> 2] = i18;
 30006  i18 = __Z22btAlignedAllocInternalji(16, 16) | 0;
 30007  if ((i18 | 0) == 0) {
 30008   i19 = 0;
 30009  } else {
 30010   HEAP8[i18 + 4 | 0] = 0;
 30011   HEAP32[i18 >> 2] = 2056;
 30012   HEAP32[i18 + 8 >> 2] = 1;
 30013   HEAP32[i18 + 12 >> 2] = 1;
 30014   i19 = i18;
 30016  HEAP32[i1 + 84 >> 2] = i19;
 30017  i19 = __Z22btAlignedAllocInternalji(16, 16) | 0;
 30018  if ((i19 | 0) == 0) {
 30019   i20 = 0;
 30020  } else {
 30021   HEAP8[i19 + 4 | 0] = 0;
 30022   HEAP32[i19 >> 2] = 2056;
 30023   HEAP32[i19 + 8 >> 2] = 1;
 30024   HEAP32[i19 + 12 >> 2] = 1;
 30025   i20 = i19;
 30027  HEAP32[i1 + 80 >> 2] = i20;
 30028  HEAP8[i20 + 4 | 0] = 1;
 30029  i20 = HEAP32[i2 + 20 >> 2] | 0;
 30030  i19 = (i20 | 0) < 36 ? 36 : i20;
 30031  i20 = (i19 | 0) > 80 ? i19 : 80;
 30032  i19 = (i20 | 0) > 44 ? i20 : 44;
 30033  i20 = HEAP32[i2 >> 2] | 0;
 30034  i18 = i1 + 12 | 0;
 30035  if ((i20 | 0) == 0) {
 30036   HEAP8[i18] = 1;
 30037   i17 = __Z22btAlignedAllocInternalji(20, 16) | 0;
 30038   if ((i17 | 0) == 0) {
 30039    i21 = 0;
 30040   } else {
 30041    i16 = HEAP32[i2 + 24 >> 2] | 0;
 30042    _memset(i17 | 0, 0, 17);
 30043    i15 = i17;
 30044    HEAP32[i15 >> 2] = 0;
 30045    HEAP32[i17 + 8 >> 2] = 0;
 30046    HEAP32[i15 >> 2] = __Z22btAlignedAllocInternalji(i16, 16) | 0;
 30047    HEAP32[i17 + 4 >> 2] = i16;
 30048    i21 = i17;
 30050   HEAP32[i1 + 8 >> 2] = i21;
 30051  } else {
 30052   HEAP8[i18] = 0;
 30053   HEAP32[i1 + 8 >> 2] = i20;
 30055  i20 = HEAP32[i2 + 4 >> 2] | 0;
 30056  i18 = i1 + 20 | 0;
 30057  if ((i20 | 0) == 0) {
 30058   HEAP8[i18] = 1;
 30059   i21 = __Z22btAlignedAllocInternalji(20, 16) | 0;
 30060   if ((i21 | 0) == 0) {
 30061    i22 = 0;
 30062   } else {
 30063    i17 = i21;
 30064    i16 = HEAP32[i2 + 12 >> 2] | 0;
 30065    i15 = i21;
 30066    HEAP32[i15 >> 2] = 1140;
 30067    i14 = i21 + 4 | 0;
 30068    HEAP32[i14 >> 2] = i16;
 30069    i13 = __Z22btAlignedAllocInternalji(i16 * 1140 | 0, 16) | 0;
 30070    HEAP32[i21 + 16 >> 2] = i13;
 30071    HEAP32[i21 + 12 >> 2] = i13;
 30072    i16 = HEAP32[i14 >> 2] | 0;
 30073    HEAP32[i21 + 8 >> 2] = i16;
 30074    i21 = i16 - 1 | 0;
 30075    if ((i21 | 0) == 0) {
 30076     i23 = i13;
 30077    } else {
 30078     i16 = HEAP32[i15 >> 2] | 0;
 30079     i15 = i13;
 30080     i14 = i21;
 30081     while (1) {
 30082      i12 = i15 + i16 | 0;
 30083      HEAP32[i15 >> 2] = i12;
 30084      i11 = i14 - 1 | 0;
 30085      if ((i11 | 0) == 0) {
 30086       break;
 30087      } else {
 30088       i15 = i12;
 30089       i14 = i11;
 30092     i23 = i13 + (Math_imul(i16, i21) | 0) | 0;
 30094    HEAP32[i23 >> 2] = 0;
 30095    i22 = i17;
 30097   HEAP32[i1 + 16 >> 2] = i22;
 30098  } else {
 30099   HEAP8[i18] = 0;
 30100   HEAP32[i1 + 16 >> 2] = i20;
 30102  i20 = HEAP32[i2 + 8 >> 2] | 0;
 30103  i18 = i1 + 28 | 0;
 30104  if ((i20 | 0) != 0) {
 30105   HEAP8[i18] = 0;
 30106   HEAP32[i1 + 24 >> 2] = i20;
 30107   return;
 30109  HEAP8[i18] = 1;
 30110  i18 = __Z22btAlignedAllocInternalji(20, 16) | 0;
 30111  if ((i18 | 0) == 0) {
 30112   i24 = 0;
 30113  } else {
 30114   i20 = i18;
 30115   i22 = HEAP32[i2 + 16 >> 2] | 0;
 30116   i2 = i18;
 30117   HEAP32[i2 >> 2] = i19;
 30118   i17 = i18 + 4 | 0;
 30119   HEAP32[i17 >> 2] = i22;
 30120   i23 = __Z22btAlignedAllocInternalji(Math_imul(i22, i19) | 0, 16) | 0;
 30121   HEAP32[i18 + 16 >> 2] = i23;
 30122   HEAP32[i18 + 12 >> 2] = i23;
 30123   i19 = HEAP32[i17 >> 2] | 0;
 30124   HEAP32[i18 + 8 >> 2] = i19;
 30125   i18 = i19 - 1 | 0;
 30126   if ((i18 | 0) == 0) {
 30127    i25 = i23;
 30128   } else {
 30129    i19 = HEAP32[i2 >> 2] | 0;
 30130    i2 = i23;
 30131    i17 = i18;
 30132    while (1) {
 30133     i22 = i2 + i19 | 0;
 30134     HEAP32[i2 >> 2] = i22;
 30135     i21 = i17 - 1 | 0;
 30136     if ((i21 | 0) == 0) {
 30137      break;
 30138     } else {
 30139      i2 = i22;
 30140      i17 = i21;
 30143    i25 = i23 + (Math_imul(i19, i18) | 0) | 0;
 30145   HEAP32[i25 >> 2] = 0;
 30146   i24 = i20;
 30148  HEAP32[i1 + 24 >> 2] = i24;
 30149  return;
 30151 function __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i1, i2, i3) {
 30152  i1 = i1 | 0;
 30153  i2 = i2 | 0;
 30154  i3 = i3 | 0;
 30155  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, i38 = 0, i39 = 0;
 30156  i4 = i1 + 1116 | 0;
 30157  i5 = HEAP32[i4 >> 2] | 0;
 30158  if ((i5 | 0) <= 0) {
 30159   return;
 30161  i6 = i2 | 0;
 30162  i7 = i2 + 4 | 0;
 30163  i8 = i2 + 8 | 0;
 30164  i9 = i2 + 48 | 0;
 30165  i10 = i2 + 16 | 0;
 30166  i11 = i2 + 20 | 0;
 30167  i12 = i2 + 24 | 0;
 30168  i13 = i2 + 52 | 0;
 30169  i14 = i2 + 32 | 0;
 30170  i15 = i2 + 36 | 0;
 30171  i16 = i2 + 40 | 0;
 30172  i17 = i2 + 56 | 0;
 30173  i2 = i3 | 0;
 30174  i18 = i3 + 4 | 0;
 30175  i19 = i3 + 8 | 0;
 30176  i20 = i3 + 48 | 0;
 30177  i21 = i3 + 16 | 0;
 30178  i22 = i3 + 20 | 0;
 30179  i23 = i3 + 24 | 0;
 30180  i24 = i3 + 52 | 0;
 30181  i25 = i3 + 32 | 0;
 30182  i26 = i3 + 36 | 0;
 30183  i27 = i3 + 40 | 0;
 30184  i28 = i3 + 56 | 0;
 30185  i3 = i5;
 30186  do {
 30187   i3 = i3 - 1 | 0;
 30188   d29 = +HEAPF32[i1 + 4 + (i3 * 276 | 0) >> 2];
 30189   d30 = +HEAPF32[i1 + 4 + (i3 * 276 | 0) + 4 >> 2];
 30190   d31 = +HEAPF32[i1 + 4 + (i3 * 276 | 0) + 8 >> 2];
 30191   d32 = +HEAPF32[i9 >> 2] + (+HEAPF32[i6 >> 2] * d29 + +HEAPF32[i7 >> 2] * d30 + +HEAPF32[i8 >> 2] * d31);
 30192   d33 = +HEAPF32[i13 >> 2] + (d29 * +HEAPF32[i10 >> 2] + d30 * +HEAPF32[i11 >> 2] + d31 * +HEAPF32[i12 >> 2]);
 30193   d34 = +HEAPF32[i17 >> 2] + (d29 * +HEAPF32[i14 >> 2] + d30 * +HEAPF32[i15 >> 2] + d31 * +HEAPF32[i16 >> 2]);
 30194   HEAPF32[i1 + 4 + (i3 * 276 | 0) + 48 >> 2] = d32;
 30195   HEAPF32[i1 + 4 + (i3 * 276 | 0) + 52 >> 2] = d33;
 30196   HEAPF32[i1 + 4 + (i3 * 276 | 0) + 56 >> 2] = d34;
 30197   HEAPF32[i1 + 4 + (i3 * 276 | 0) + 60 >> 2] = 0.0;
 30198   d31 = +HEAPF32[i1 + 4 + (i3 * 276 | 0) + 16 >> 2];
 30199   d30 = +HEAPF32[i1 + 4 + (i3 * 276 | 0) + 20 >> 2];
 30200   d29 = +HEAPF32[i1 + 4 + (i3 * 276 | 0) + 24 >> 2];
 30201   d35 = +HEAPF32[i20 >> 2] + (+HEAPF32[i2 >> 2] * d31 + +HEAPF32[i18 >> 2] * d30 + +HEAPF32[i19 >> 2] * d29);
 30202   d36 = +HEAPF32[i24 >> 2] + (d31 * +HEAPF32[i21 >> 2] + d30 * +HEAPF32[i22 >> 2] + d29 * +HEAPF32[i23 >> 2]);
 30203   d37 = +HEAPF32[i28 >> 2] + (d31 * +HEAPF32[i25 >> 2] + d30 * +HEAPF32[i26 >> 2] + d29 * +HEAPF32[i27 >> 2]);
 30204   HEAPF32[i1 + 4 + (i3 * 276 | 0) + 32 >> 2] = d35;
 30205   HEAPF32[i1 + 4 + (i3 * 276 | 0) + 36 >> 2] = d36;
 30206   HEAPF32[i1 + 4 + (i3 * 276 | 0) + 40 >> 2] = d37;
 30207   HEAPF32[i1 + 4 + (i3 * 276 | 0) + 44 >> 2] = 0.0;
 30208   HEAPF32[i1 + 4 + (i3 * 276 | 0) + 80 >> 2] = (d32 - d35) * +HEAPF32[i1 + 4 + (i3 * 276 | 0) + 64 >> 2] + (d33 - d36) * +HEAPF32[i1 + 4 + (i3 * 276 | 0) + 68 >> 2] + (d34 - d37) * +HEAPF32[i1 + 4 + (i3 * 276 | 0) + 72 >> 2];
 30209   i5 = i1 + 4 + (i3 * 276 | 0) + 144 | 0;
 30210   HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 1;
 30211  } while ((i3 | 0) > 0);
 30212  i3 = HEAP32[i4 >> 2] | 0;
 30213  if ((i3 | 0) <= 0) {
 30214   return;
 30216  i27 = i1 + 1120 | 0;
 30217  i26 = i1 + 1124 | 0;
 30218  i25 = i1 + 1108 | 0;
 30219  i28 = i1 + 1112 | 0;
 30220  i23 = i3;
 30221  do {
 30222   i23 = i23 - 1 | 0;
 30223   i3 = i1 + 4 + (i23 * 276 | 0) | 0;
 30224   d37 = +HEAPF32[i1 + 4 + (i23 * 276 | 0) + 80 >> 2];
 30225   do {
 30226    if (d37 > +HEAPF32[((HEAP32[i1 + 4 + (i23 * 276 | 0) + 144 >> 2] | 0) > 1 ? i27 : i26) >> 2]) {
 30227     i22 = i1 + 4 + (i23 * 276 | 0) + 108 | 0;
 30228     i21 = HEAP32[i22 >> 2] | 0;
 30229     do {
 30230      if ((i21 | 0) != 0) {
 30231       i24 = HEAP32[3008] | 0;
 30232       if ((i24 | 0) == 0) {
 30233        break;
 30235       FUNCTION_TABLE_ii[i24 & 127](i21) | 0;
 30236       HEAP32[i22 >> 2] = 0;
 30238     } while (0);
 30239     i22 = HEAP32[i4 >> 2] | 0;
 30240     i21 = i22 - 1 | 0;
 30241     if ((i21 | 0) == (i23 | 0)) {
 30242      i38 = i22;
 30243     } else {
 30244      i22 = i3;
 30245      i24 = i1 + 4 + (i21 * 276 | 0) | 0;
 30246      _memcpy(i22 | 0, i24 | 0, 276) | 0;
 30247      HEAP32[i1 + 4 + (i21 * 276 | 0) + 108 >> 2] = 0;
 30248      HEAPF32[i1 + 4 + (i21 * 276 | 0) + 208 >> 2] = 0.0;
 30249      HEAPF32[i1 + 4 + (i21 * 276 | 0) + 240 >> 2] = 0.0;
 30250      HEAPF32[i1 + 4 + (i21 * 276 | 0) + 272 >> 2] = 0.0;
 30251      HEAPF32[i1 + 4 + (i21 * 276 | 0) + 112 >> 2] = 0.0;
 30252      HEAP8[i1 + 4 + (i21 * 276 | 0) + 116 | 0] = 0;
 30253      HEAPF32[i1 + 4 + (i21 * 276 | 0) + 120 >> 2] = 0.0;
 30254      HEAPF32[i1 + 4 + (i21 * 276 | 0) + 124 >> 2] = 0.0;
 30255      HEAP32[i1 + 4 + (i21 * 276 | 0) + 144 >> 2] = 0;
 30256      i38 = HEAP32[i4 >> 2] | 0;
 30258     HEAP32[i4 >> 2] = i38 - 1;
 30259    } else {
 30260     d34 = +HEAPF32[i1 + 4 + (i23 * 276 | 0) + 32 >> 2] - (+HEAPF32[i1 + 4 + (i23 * 276 | 0) + 48 >> 2] - d37 * +HEAPF32[i1 + 4 + (i23 * 276 | 0) + 64 >> 2]);
 30261     d36 = +HEAPF32[i1 + 4 + (i23 * 276 | 0) + 36 >> 2] - (+HEAPF32[i1 + 4 + (i23 * 276 | 0) + 52 >> 2] - d37 * +HEAPF32[i1 + 4 + (i23 * 276 | 0) + 68 >> 2]);
 30262     d33 = +HEAPF32[i1 + 4 + (i23 * 276 | 0) + 40 >> 2] - (+HEAPF32[i1 + 4 + (i23 * 276 | 0) + 56 >> 2] - d37 * +HEAPF32[i1 + 4 + (i23 * 276 | 0) + 72 >> 2]);
 30263     d35 = +HEAPF32[i27 >> 2];
 30264     if (d34 * d34 + d36 * d36 + d33 * d33 <= d35 * d35) {
 30265      i21 = HEAP32[3006] | 0;
 30266      if ((i21 | 0) == 0) {
 30267       break;
 30269      i24 = HEAP32[i25 >> 2] | 0;
 30270      i22 = HEAP32[i28 >> 2] | 0;
 30271      FUNCTION_TABLE_iiii[i21 & 31](i3, i24, i22) | 0;
 30272      break;
 30274     i22 = i1 + 4 + (i23 * 276 | 0) + 108 | 0;
 30275     i24 = HEAP32[i22 >> 2] | 0;
 30276     do {
 30277      if ((i24 | 0) != 0) {
 30278       i21 = HEAP32[3008] | 0;
 30279       if ((i21 | 0) == 0) {
 30280        break;
 30282       FUNCTION_TABLE_ii[i21 & 127](i24) | 0;
 30283       HEAP32[i22 >> 2] = 0;
 30285     } while (0);
 30286     i22 = HEAP32[i4 >> 2] | 0;
 30287     i24 = i22 - 1 | 0;
 30288     if ((i24 | 0) == (i23 | 0)) {
 30289      i39 = i22;
 30290     } else {
 30291      i22 = i3;
 30292      i21 = i1 + 4 + (i24 * 276 | 0) | 0;
 30293      _memcpy(i22 | 0, i21 | 0, 276) | 0;
 30294      HEAP32[i1 + 4 + (i24 * 276 | 0) + 108 >> 2] = 0;
 30295      HEAPF32[i1 + 4 + (i24 * 276 | 0) + 208 >> 2] = 0.0;
 30296      HEAPF32[i1 + 4 + (i24 * 276 | 0) + 240 >> 2] = 0.0;
 30297      HEAPF32[i1 + 4 + (i24 * 276 | 0) + 272 >> 2] = 0.0;
 30298      HEAPF32[i1 + 4 + (i24 * 276 | 0) + 112 >> 2] = 0.0;
 30299      HEAP8[i1 + 4 + (i24 * 276 | 0) + 116 | 0] = 0;
 30300      HEAPF32[i1 + 4 + (i24 * 276 | 0) + 120 >> 2] = 0.0;
 30301      HEAPF32[i1 + 4 + (i24 * 276 | 0) + 124 >> 2] = 0.0;
 30302      HEAP32[i1 + 4 + (i24 * 276 | 0) + 144 >> 2] = 0;
 30303      i39 = HEAP32[i4 >> 2] | 0;
 30305     HEAP32[i4 >> 2] = i39 - 1;
 30307   } while (0);
 30308  } while ((i23 | 0) > 0);
 30309  return;
 30311 function __ZN31btConvexPlaneCollisionAlgorithm20collideSingleContactERK12btQuaternionP17btCollisionObjectS4_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5, i6) {
 30312  i1 = i1 | 0;
 30313  i2 = i2 | 0;
 30314  i3 = i3 | 0;
 30315  i4 = i4 | 0;
 30316  i5 = i5 | 0;
 30317  i6 = i6 | 0;
 30318  var i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, d41 = 0.0, i42 = 0, d43 = 0.0, i44 = 0, d45 = 0.0, i46 = 0, d47 = 0.0, d48 = 0.0, d49 = 0.0, d50 = 0.0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0, d55 = 0.0, d56 = 0.0, d57 = 0.0, d58 = 0.0, d59 = 0.0, d60 = 0.0, d61 = 0.0, d62 = 0.0, d63 = 0.0, i64 = 0, i65 = 0;
 30319  i5 = STACKTOP;
 30320  STACKTOP = STACKTOP + 64 | 0;
 30321  i7 = i5 | 0;
 30322  i8 = i5 + 16 | 0;
 30323  i9 = i5 + 32 | 0;
 30324  i10 = i5 + 48 | 0;
 30325  i11 = (HEAP8[i1 + 16 | 0] | 0) != 0;
 30326  i12 = i11 ? i4 : i3;
 30327  i13 = i11 ? i3 : i4;
 30328  i4 = HEAP32[i12 + 192 >> 2] | 0;
 30329  i3 = HEAP32[i13 + 192 >> 2] | 0;
 30330  d14 = +HEAPF32[i12 + 4 >> 2];
 30331  d15 = +HEAPF32[i12 + 8 >> 2];
 30332  d16 = +HEAPF32[i12 + 12 >> 2];
 30333  d17 = +HEAPF32[i12 + 20 >> 2];
 30334  d18 = +HEAPF32[i12 + 24 >> 2];
 30335  d19 = +HEAPF32[i12 + 28 >> 2];
 30336  d20 = +HEAPF32[i12 + 36 >> 2];
 30337  d21 = +HEAPF32[i12 + 40 >> 2];
 30338  d22 = +HEAPF32[i12 + 44 >> 2];
 30339  d23 = +HEAPF32[i12 + 52 >> 2];
 30340  d24 = +HEAPF32[i12 + 56 >> 2];
 30341  d25 = +HEAPF32[i12 + 60 >> 2];
 30342  i12 = i13 + 4 | 0;
 30343  i11 = i13 + 20 | 0;
 30344  i26 = i13 + 36 | 0;
 30345  i27 = i13 + 8 | 0;
 30346  i28 = i13 + 24 | 0;
 30347  i29 = i13 + 40 | 0;
 30348  i30 = i13 + 12 | 0;
 30349  i31 = i13 + 28 | 0;
 30350  i32 = i13 + 44 | 0;
 30351  d33 = +HEAPF32[i12 >> 2];
 30352  d34 = +HEAPF32[i11 >> 2];
 30353  d35 = +HEAPF32[i26 >> 2];
 30354  d36 = +HEAPF32[i27 >> 2];
 30355  d37 = +HEAPF32[i28 >> 2];
 30356  d38 = +HEAPF32[i29 >> 2];
 30357  d39 = +HEAPF32[i30 >> 2];
 30358  d40 = +HEAPF32[i31 >> 2];
 30359  d41 = +HEAPF32[i32 >> 2];
 30360  i42 = i13 + 52 | 0;
 30361  d43 = -0.0 - +HEAPF32[i42 >> 2];
 30362  i44 = i13 + 56 | 0;
 30363  d45 = -0.0 - +HEAPF32[i44 >> 2];
 30364  i46 = i13 + 60 | 0;
 30365  d47 = -0.0 - +HEAPF32[i46 >> 2];
 30366  d48 = +HEAPF32[i2 >> 2];
 30367  d49 = +HEAPF32[i2 + 4 >> 2];
 30368  d50 = +HEAPF32[i2 + 8 >> 2];
 30369  d51 = +HEAPF32[i2 + 12 >> 2];
 30370  d52 = 2.0 / (d48 * d48 + d49 * d49 + d50 * d50 + d51 * d51);
 30371  d53 = d48 * d52;
 30372  d54 = d49 * d52;
 30373  d55 = d50 * d52;
 30374  d52 = d51 * d53;
 30375  d56 = d51 * d54;
 30376  d57 = d51 * d55;
 30377  d51 = d48 * d53;
 30378  d53 = d48 * d54;
 30379  d58 = d48 * d55;
 30380  d48 = d49 * d54;
 30381  d54 = d49 * d55;
 30382  d49 = d50 * d55;
 30383  d55 = 1.0 - (d48 + d49);
 30384  d50 = d53 - d57;
 30385  d59 = d58 + d56;
 30386  d60 = d53 + d57;
 30387  d57 = 1.0 - (d51 + d49);
 30388  d49 = d54 - d52;
 30389  d53 = d58 - d56;
 30390  d56 = d54 + d52;
 30391  d52 = 1.0 - (d51 + d48);
 30392  d48 = d16 * d53 + (d15 * d60 + d14 * d55);
 30393  d51 = d16 * d56 + (d14 * d50 + d15 * d57);
 30394  d54 = d14 * d59 + d15 * d49 + d16 * d52;
 30395  d58 = d19 * d53 + (d18 * d60 + d17 * d55);
 30396  d61 = d19 * d56 + (d17 * d50 + d18 * d57);
 30397  d62 = d17 * d59 + d18 * d49 + d19 * d52;
 30398  d63 = d22 * d53 + (d21 * d60 + d20 * d55);
 30399  d55 = d22 * d56 + (d20 * d50 + d21 * d57);
 30400  d57 = d20 * d59 + d21 * d49 + d22 * d52;
 30401  i2 = HEAP32[(HEAP32[i4 >> 2] | 0) + 60 >> 2] | 0;
 30402  i13 = i3 + 48 | 0;
 30403  d52 = -0.0 - +HEAPF32[i13 >> 2];
 30404  i64 = i3 + 52 | 0;
 30405  d49 = -0.0 - +HEAPF32[i64 >> 2];
 30406  i65 = i3 + 56 | 0;
 30407  d59 = -0.0 - +HEAPF32[i65 >> 2];
 30408  HEAPF32[i8 >> 2] = (d41 * d63 + (d39 * d48 + d40 * d58)) * d59 + ((d35 * d63 + (d33 * d48 + d34 * d58)) * d52 + (d38 * d63 + (d36 * d48 + d37 * d58)) * d49);
 30409  HEAPF32[i8 + 4 >> 2] = (d41 * d55 + (d39 * d51 + d40 * d61)) * d59 + ((d35 * d55 + (d33 * d51 + d34 * d61)) * d52 + (d38 * d55 + (d36 * d51 + d37 * d61)) * d49);
 30410  HEAPF32[i8 + 8 >> 2] = (d41 * d57 + (d39 * d54 + d40 * d62)) * d59 + ((d35 * d57 + (d33 * d54 + d34 * d62)) * d52 + (d38 * d57 + (d36 * d54 + d37 * d62)) * d49);
 30411  HEAPF32[i8 + 12 >> 2] = 0.0;
 30412  FUNCTION_TABLE_viii[i2 & 127](i7, i4, i8);
 30413  d49 = +HEAPF32[i7 >> 2];
 30414  d62 = +HEAPF32[i7 + 4 >> 2];
 30415  d54 = +HEAPF32[i7 + 8 >> 2];
 30416  d57 = d23 * d33 + d24 * d34 + d25 * d35 + (d33 * d43 + d34 * d45 + d35 * d47) + ((d14 * d33 + d17 * d34 + d20 * d35) * d49 + (d15 * d33 + d18 * d34 + d21 * d35) * d62 + (d16 * d33 + d19 * d34 + d22 * d35) * d54);
 30417  d35 = d23 * d36 + d24 * d37 + d25 * d38 + (d36 * d43 + d37 * d45 + d38 * d47) + ((d14 * d36 + d17 * d37 + d20 * d38) * d49 + (d15 * d36 + d18 * d37 + d21 * d38) * d62 + (d16 * d36 + d19 * d37 + d22 * d38) * d54);
 30418  d38 = d23 * d39 + d24 * d40 + d25 * d41 + (d39 * d43 + d40 * d45 + d41 * d47) + ((d14 * d39 + d17 * d40 + d20 * d41) * d49 + (d15 * d39 + d18 * d40 + d21 * d41) * d62 + (d16 * d39 + d19 * d40 + d22 * d41) * d54);
 30419  d54 = +HEAPF32[i13 >> 2];
 30420  d41 = +HEAPF32[i64 >> 2];
 30421  d22 = +HEAPF32[i65 >> 2];
 30422  d40 = d22 * d38 + (d54 * d57 + d41 * d35) - +HEAPF32[i3 + 64 >> 2];
 30423  d19 = d57 - d54 * d40;
 30424  d54 = d35 - d41 * d40;
 30425  d41 = d38 - d22 * d40;
 30426  d22 = +HEAPF32[i12 >> 2];
 30427  d38 = +HEAPF32[i27 >> 2];
 30428  d35 = +HEAPF32[i30 >> 2];
 30429  d57 = +HEAPF32[i42 >> 2];
 30430  d39 = +HEAPF32[i11 >> 2];
 30431  d16 = +HEAPF32[i28 >> 2];
 30432  d62 = +HEAPF32[i31 >> 2];
 30433  d21 = +HEAPF32[i44 >> 2];
 30434  d18 = +HEAPF32[i26 >> 2];
 30435  d15 = +HEAPF32[i29 >> 2];
 30436  d49 = +HEAPF32[i32 >> 2];
 30437  d20 = +HEAPF32[i46 >> 2];
 30438  i46 = i1 + 12 | 0;
 30439  i1 = d40 < +__ZNK20btPersistentManifold27getContactBreakingThresholdEv(HEAP32[i46 >> 2] | 0);
 30440  HEAP32[i6 + 4 >> 2] = HEAP32[i46 >> 2];
 30441  if (!i1) {
 30442   STACKTOP = i5;
 30443   return;
 30445  d17 = +HEAPF32[i13 >> 2];
 30446  d14 = +HEAPF32[i64 >> 2];
 30447  d47 = +HEAPF32[i65 >> 2];
 30448  d45 = d17 * +HEAPF32[i11 >> 2] + d14 * +HEAPF32[i28 >> 2] + d47 * +HEAPF32[i31 >> 2];
 30449  d43 = d17 * +HEAPF32[i26 >> 2] + d14 * +HEAPF32[i29 >> 2] + d47 * +HEAPF32[i32 >> 2];
 30450  HEAPF32[i9 >> 2] = +HEAPF32[i12 >> 2] * d17 + +HEAPF32[i27 >> 2] * d14 + +HEAPF32[i30 >> 2] * d47;
 30451  HEAPF32[i9 + 4 >> 2] = d45;
 30452  HEAPF32[i9 + 8 >> 2] = d43;
 30453  HEAPF32[i9 + 12 >> 2] = 0.0;
 30454  HEAPF32[i10 >> 2] = d57 + (d35 * d41 + (d22 * d19 + d38 * d54));
 30455  HEAPF32[i10 + 4 >> 2] = d21 + (d19 * d39 + d54 * d16 + d41 * d62);
 30456  HEAPF32[i10 + 8 >> 2] = d20 + (d19 * d18 + d54 * d15 + d41 * d49);
 30457  HEAPF32[i10 + 12 >> 2] = 0.0;
 30458  FUNCTION_TABLE_viiif[HEAP32[(HEAP32[i6 >> 2] | 0) + 16 >> 2] & 15](i6, i9, i10, d40);
 30459  STACKTOP = i5;
 30460  return;
 30462 function __ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i1, i2) {
 30463  i1 = i1 | 0;
 30464  i2 = i2 | 0;
 30465  var i3 = 0, i4 = 0, i5 = 0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0;
 30466  HEAP32[i1 + 232 >> 2] = 2;
 30467  _memset(i1 + 304 | 0, 0, 32);
 30468  HEAPF32[i1 + 536 >> 2] = 1.0;
 30469  HEAPF32[i1 + 540 >> 2] = 1.0;
 30470  HEAPF32[i1 + 544 >> 2] = 1.0;
 30471  HEAPF32[i1 + 548 >> 2] = 0.0;
 30472  i3 = i1 + 340 | 0;
 30473  HEAPF32[i3 >> 2] = 1.0;
 30474  i4 = i1 + 344 | 0;
 30475  HEAPF32[i4 >> 2] = 1.0;
 30476  i5 = i1 + 348 | 0;
 30477  HEAPF32[i5 >> 2] = 1.0;
 30478  _memset(i1 + 352 | 0, 0, 36);
 30479  _memset(i1 + 404 | 0, 0, 32);
 30480  d6 = +HEAPF32[i2 + 92 >> 2];
 30481  d7 = +HEAPF32[i2 + 96 >> 2];
 30482  if (d6 < 0.0) {
 30483   d8 = 0.0;
 30484  } else {
 30485   d8 = d6 > 1.0 ? 1.0 : d6;
 30487  HEAPF32[i1 + 436 >> 2] = d8;
 30488  if (d7 < 0.0) {
 30489   d9 = 0.0;
 30490  } else {
 30491   d9 = d7 > 1.0 ? 1.0 : d7;
 30493  HEAPF32[i1 + 440 >> 2] = d9;
 30494  HEAPF32[i1 + 464 >> 2] = +HEAPF32[i2 + 108 >> 2];
 30495  HEAPF32[i1 + 468 >> 2] = +HEAPF32[i2 + 112 >> 2];
 30496  i10 = HEAP32[i2 + 4 >> 2] | 0;
 30497  HEAP32[i1 + 472 >> 2] = i10;
 30498  HEAP32[i1 + 600 >> 2] = 0;
 30499  HEAP32[i1 + 604 >> 2] = 0;
 30500  HEAP8[i1 + 444 | 0] = HEAP8[i2 + 116 | 0] | 0;
 30501  HEAPF32[i1 + 448 >> 2] = +HEAPF32[i2 + 120 >> 2];
 30502  HEAPF32[i1 + 452 >> 2] = +HEAPF32[i2 + 124 >> 2];
 30503  HEAPF32[i1 + 456 >> 2] = +HEAPF32[i2 + 128 >> 2];
 30504  HEAPF32[i1 + 460 >> 2] = +HEAPF32[i2 + 132 >> 2];
 30505  if ((i10 | 0) == 0) {
 30506   i11 = i1 + 4 | 0;
 30507   i12 = i2 + 8 | 0;
 30508   HEAP32[i11 >> 2] = HEAP32[i12 >> 2];
 30509   HEAP32[i11 + 4 >> 2] = HEAP32[i12 + 4 >> 2];
 30510   HEAP32[i11 + 8 >> 2] = HEAP32[i12 + 8 >> 2];
 30511   HEAP32[i11 + 12 >> 2] = HEAP32[i12 + 12 >> 2];
 30512   i12 = i1 + 20 | 0;
 30513   i13 = i2 + 24 | 0;
 30514   HEAP32[i12 >> 2] = HEAP32[i13 >> 2];
 30515   HEAP32[i12 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
 30516   HEAP32[i12 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
 30517   HEAP32[i12 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
 30518   i13 = i1 + 36 | 0;
 30519   i14 = i2 + 40 | 0;
 30520   HEAP32[i13 >> 2] = HEAP32[i14 >> 2];
 30521   HEAP32[i13 + 4 >> 2] = HEAP32[i14 + 4 >> 2];
 30522   HEAP32[i13 + 8 >> 2] = HEAP32[i14 + 8 >> 2];
 30523   HEAP32[i13 + 12 >> 2] = HEAP32[i14 + 12 >> 2];
 30524   i14 = i1 + 52 | 0;
 30525   i15 = i2 + 56 | 0;
 30526   HEAP32[i14 >> 2] = HEAP32[i15 >> 2];
 30527   HEAP32[i14 + 4 >> 2] = HEAP32[i15 + 4 >> 2];
 30528   HEAP32[i14 + 8 >> 2] = HEAP32[i15 + 8 >> 2];
 30529   HEAP32[i14 + 12 >> 2] = HEAP32[i15 + 12 >> 2];
 30530   i16 = i11;
 30531   i17 = i12;
 30532   i18 = i13;
 30533   i19 = i14;
 30534  } else {
 30535   i14 = i1 + 4 | 0;
 30536   FUNCTION_TABLE_vii[HEAP32[(HEAP32[i10 >> 2] | 0) + 8 >> 2] & 127](i10, i14);
 30537   i16 = i14;
 30538   i17 = i1 + 20 | 0;
 30539   i18 = i1 + 36 | 0;
 30540   i19 = i1 + 52 | 0;
 30542  i14 = i1 + 68 | 0;
 30543  HEAP32[i14 >> 2] = HEAP32[i16 >> 2];
 30544  HEAP32[i14 + 4 >> 2] = HEAP32[i16 + 4 >> 2];
 30545  HEAP32[i14 + 8 >> 2] = HEAP32[i16 + 8 >> 2];
 30546  HEAP32[i14 + 12 >> 2] = HEAP32[i16 + 12 >> 2];
 30547  i16 = i1 + 84 | 0;
 30548  HEAP32[i16 >> 2] = HEAP32[i17 >> 2];
 30549  HEAP32[i16 + 4 >> 2] = HEAP32[i17 + 4 >> 2];
 30550  HEAP32[i16 + 8 >> 2] = HEAP32[i17 + 8 >> 2];
 30551  HEAP32[i16 + 12 >> 2] = HEAP32[i17 + 12 >> 2];
 30552  i17 = i1 + 100 | 0;
 30553  HEAP32[i17 >> 2] = HEAP32[i18 >> 2];
 30554  HEAP32[i17 + 4 >> 2] = HEAP32[i18 + 4 >> 2];
 30555  HEAP32[i17 + 8 >> 2] = HEAP32[i18 + 8 >> 2];
 30556  HEAP32[i17 + 12 >> 2] = HEAP32[i18 + 12 >> 2];
 30557  i18 = i1 + 116 | 0;
 30558  HEAP32[i18 >> 2] = HEAP32[i19 >> 2];
 30559  HEAP32[i18 + 4 >> 2] = HEAP32[i19 + 4 >> 2];
 30560  HEAP32[i18 + 8 >> 2] = HEAP32[i19 + 8 >> 2];
 30561  HEAP32[i18 + 12 >> 2] = HEAP32[i19 + 12 >> 2];
 30562  _memset(i1 + 132 | 0, 0, 32);
 30563  HEAPF32[i1 + 224 >> 2] = +HEAPF32[i2 + 100 >> 2];
 30564  HEAPF32[i1 + 228 >> 2] = +HEAPF32[i2 + 104 >> 2];
 30565  FUNCTION_TABLE_vii[HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] & 127](i1 | 0, HEAP32[i2 + 72 >> 2] | 0);
 30566  i19 = HEAP32[3574] | 0;
 30567  HEAP32[3574] = i19 + 1;
 30568  HEAP32[i1 + 500 >> 2] = i19;
 30569  d9 = +HEAPF32[i2 >> 2];
 30570  i19 = i1 + 204 | 0;
 30571  i18 = HEAP32[i19 >> 2] | 0;
 30572  if (d9 == 0.0) {
 30573   HEAP32[i19 >> 2] = i18 | 1;
 30574   HEAPF32[i1 + 336 >> 2] = 0.0;
 30575   d20 = 0.0;
 30576  } else {
 30577   HEAP32[i19 >> 2] = i18 & -2;
 30578   d7 = 1.0 / d9;
 30579   HEAPF32[i1 + 336 >> 2] = d7;
 30580   d20 = d7;
 30582  d7 = d9 * +HEAPF32[i1 + 376 >> 2];
 30583  d8 = d9 * +HEAPF32[i1 + 380 >> 2];
 30584  HEAPF32[i1 + 356 >> 2] = d9 * +HEAPF32[i1 + 372 >> 2];
 30585  HEAPF32[i1 + 360 >> 2] = d7;
 30586  HEAPF32[i1 + 364 >> 2] = d8;
 30587  HEAPF32[i1 + 368 >> 2] = 0.0;
 30588  d8 = +HEAPF32[i2 + 76 >> 2];
 30589  if (d8 != 0.0) {
 30590   d21 = 1.0 / d8;
 30591  } else {
 30592   d21 = 0.0;
 30594  d8 = +HEAPF32[i2 + 80 >> 2];
 30595  if (d8 != 0.0) {
 30596   d22 = 1.0 / d8;
 30597  } else {
 30598   d22 = 0.0;
 30600  d8 = +HEAPF32[i2 + 84 >> 2];
 30601  if (d8 != 0.0) {
 30602   d23 = 1.0 / d8;
 30603  } else {
 30604   d23 = 0.0;
 30606  HEAPF32[i1 + 388 >> 2] = d21;
 30607  HEAPF32[i1 + 392 >> 2] = d22;
 30608  HEAPF32[i1 + 396 >> 2] = d23;
 30609  HEAPF32[i1 + 400 >> 2] = 0.0;
 30610  d8 = d20 * +HEAPF32[i3 >> 2];
 30611  d7 = d20 * +HEAPF32[i4 >> 2];
 30612  d9 = d20 * +HEAPF32[i5 >> 2];
 30613  d20 = +HEAPF32[i1 + 4 >> 2];
 30614  d6 = d20 * d21;
 30615  d24 = +HEAPF32[i1 + 8 >> 2];
 30616  d25 = d24 * d22;
 30617  d26 = +HEAPF32[i1 + 12 >> 2];
 30618  d27 = d26 * d23;
 30619  d28 = +HEAPF32[i1 + 20 >> 2];
 30620  d29 = d21 * d28;
 30621  d30 = +HEAPF32[i1 + 24 >> 2];
 30622  d31 = d22 * d30;
 30623  d32 = +HEAPF32[i1 + 28 >> 2];
 30624  d33 = d23 * d32;
 30625  d34 = +HEAPF32[i1 + 36 >> 2];
 30626  d35 = d21 * d34;
 30627  d21 = +HEAPF32[i1 + 40 >> 2];
 30628  d36 = d22 * d21;
 30629  d22 = +HEAPF32[i1 + 44 >> 2];
 30630  d37 = d23 * d22;
 30631  HEAPF32[i1 + 256 >> 2] = d20 * d6 + d24 * d25 + d26 * d27;
 30632  HEAPF32[i1 + 260 >> 2] = d6 * d28 + d25 * d30 + d27 * d32;
 30633  HEAPF32[i1 + 264 >> 2] = d6 * d34 + d25 * d21 + d27 * d22;
 30634  HEAPF32[i1 + 268 >> 2] = 0.0;
 30635  HEAPF32[i1 + 272 >> 2] = d20 * d29 + d24 * d31 + d26 * d33;
 30636  HEAPF32[i1 + 276 >> 2] = d28 * d29 + d30 * d31 + d32 * d33;
 30637  HEAPF32[i1 + 280 >> 2] = d29 * d34 + d31 * d21 + d33 * d22;
 30638  HEAPF32[i1 + 284 >> 2] = 0.0;
 30639  HEAPF32[i1 + 288 >> 2] = d20 * d35 + d24 * d36 + d26 * d37;
 30640  HEAPF32[i1 + 292 >> 2] = d28 * d35 + d30 * d36 + d32 * d37;
 30641  HEAPF32[i1 + 296 >> 2] = d34 * d35 + d21 * d36 + d22 * d37;
 30642  HEAPF32[i1 + 300 >> 2] = 0.0;
 30643  HEAP32[i1 + 496 >> 2] = 0;
 30644  _memset(i1 + 504 | 0, 0, 32);
 30645  HEAPF32[i1 + 552 >> 2] = d8;
 30646  HEAPF32[i1 + 556 >> 2] = d7;
 30647  HEAPF32[i1 + 560 >> 2] = d9;
 30648  _memset(i1 + 564 | 0, 0, 36);
 30649  return;
 30651 function __ZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
 30652  i1 = i1 | 0;
 30653  i2 = i2 | 0;
 30654  i3 = i3 | 0;
 30655  i4 = i4 | 0;
 30656  i5 = i5 | 0;
 30657  var i6 = 0, i7 = 0, i8 = 0, i9 = 0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, d41 = 0.0, d42 = 0.0, d43 = 0.0, d44 = 0.0, d45 = 0.0, d46 = 0.0, d47 = 0.0, d48 = 0.0, d49 = 0.0, d50 = 0.0, i51 = 0, i52 = 0, i53 = 0, d54 = 0.0, d55 = 0.0, d56 = 0.0, i57 = 0;
 30658  i5 = STACKTOP;
 30659  STACKTOP = STACKTOP + 240 | 0;
 30660  i4 = i5 | 0;
 30661  i6 = i5 + 16 | 0;
 30662  i7 = i5 + 32 | 0;
 30663  i8 = (HEAP8[i1 + 8 | 0] | 0) != 0;
 30664  i1 = i8 ? i3 : i2;
 30665  i9 = i8 ? i2 : i3;
 30666  d10 = +HEAPF32[i1 + 116 >> 2];
 30667  d11 = +HEAPF32[i1 + 52 >> 2];
 30668  d12 = d10 - d11;
 30669  d13 = +HEAPF32[i1 + 120 >> 2];
 30670  d14 = +HEAPF32[i1 + 56 >> 2];
 30671  d15 = d13 - d14;
 30672  d16 = +HEAPF32[i1 + 124 >> 2];
 30673  d17 = +HEAPF32[i1 + 60 >> 2];
 30674  d18 = d16 - d17;
 30675  d19 = +HEAPF32[i1 + 248 >> 2];
 30676  if (d12 * d12 + d15 * d15 + d18 * d18 < d19 * d19) {
 30677   d20 = 1.0;
 30678   STACKTOP = i5;
 30679   return +d20;
 30681  d19 = +HEAPF32[i9 + 4 >> 2];
 30682  d18 = +HEAPF32[i9 + 20 >> 2];
 30683  d15 = +HEAPF32[i9 + 36 >> 2];
 30684  d12 = +HEAPF32[i9 + 8 >> 2];
 30685  d21 = +HEAPF32[i9 + 24 >> 2];
 30686  d22 = +HEAPF32[i9 + 40 >> 2];
 30687  d23 = +HEAPF32[i9 + 12 >> 2];
 30688  d24 = +HEAPF32[i9 + 28 >> 2];
 30689  d25 = +HEAPF32[i9 + 44 >> 2];
 30690  d26 = -0.0 - +HEAPF32[i9 + 52 >> 2];
 30691  d27 = -0.0 - +HEAPF32[i9 + 56 >> 2];
 30692  d28 = -0.0 - +HEAPF32[i9 + 60 >> 2];
 30693  d29 = d19 * d26 + d18 * d27 + d15 * d28;
 30694  d30 = d12 * d26 + d21 * d27 + d22 * d28;
 30695  d31 = d23 * d26 + d24 * d27 + d25 * d28;
 30696  d28 = +HEAPF32[i1 + 4 >> 2];
 30697  d27 = +HEAPF32[i1 + 20 >> 2];
 30698  d26 = +HEAPF32[i1 + 36 >> 2];
 30699  d32 = +HEAPF32[i1 + 8 >> 2];
 30700  d33 = +HEAPF32[i1 + 24 >> 2];
 30701  d34 = +HEAPF32[i1 + 40 >> 2];
 30702  d35 = +HEAPF32[i1 + 12 >> 2];
 30703  d36 = +HEAPF32[i1 + 28 >> 2];
 30704  d37 = +HEAPF32[i1 + 44 >> 2];
 30705  d38 = d11 * d19 + d14 * d18 + d17 * d15 + d29;
 30706  d39 = d11 * d12 + d14 * d21 + d17 * d22 + d30;
 30707  d40 = d11 * d23 + d14 * d24 + d17 * d25 + d31;
 30708  d17 = +HEAPF32[i1 + 68 >> 2];
 30709  d14 = +HEAPF32[i1 + 84 >> 2];
 30710  d11 = +HEAPF32[i1 + 100 >> 2];
 30711  d41 = +HEAPF32[i1 + 72 >> 2];
 30712  d42 = +HEAPF32[i1 + 88 >> 2];
 30713  d43 = +HEAPF32[i1 + 104 >> 2];
 30714  d44 = +HEAPF32[i1 + 76 >> 2];
 30715  d45 = +HEAPF32[i1 + 92 >> 2];
 30716  d46 = +HEAPF32[i1 + 108 >> 2];
 30717  d47 = d10 * d19 + d13 * d18 + d16 * d15 + d29;
 30718  d29 = d10 * d12 + d13 * d21 + d16 * d22 + d30;
 30719  d30 = d10 * d23 + d13 * d24 + d16 * d25 + d31;
 30720  i3 = HEAP32[i9 + 192 >> 2] | 0;
 30721  if (((HEAP32[i3 + 4 >> 2] | 0) - 21 | 0) >>> 0 >= 9) {
 30722   d20 = 1.0;
 30723   STACKTOP = i5;
 30724   return +d20;
 30726  i9 = i4 | 0;
 30727  HEAPF32[i9 >> 2] = d38;
 30728  i2 = i4 + 4 | 0;
 30729  HEAPF32[i2 >> 2] = d39;
 30730  i8 = i4 + 8 | 0;
 30731  HEAPF32[i8 >> 2] = d40;
 30732  HEAPF32[i4 + 12 >> 2] = 0.0;
 30733  if (d47 < d38) {
 30734   HEAPF32[i9 >> 2] = d47;
 30735   d48 = d47;
 30736  } else {
 30737   d48 = d38;
 30739  if (d29 < d39) {
 30740   HEAPF32[i2 >> 2] = d29;
 30741   d49 = d29;
 30742  } else {
 30743   d49 = d39;
 30745  if (d30 < d40) {
 30746   HEAPF32[i8 >> 2] = d30;
 30747   d50 = d30;
 30748  } else {
 30749   d50 = d40;
 30751  i51 = i6 | 0;
 30752  HEAPF32[i51 >> 2] = d38;
 30753  i52 = i6 + 4 | 0;
 30754  HEAPF32[i52 >> 2] = d39;
 30755  i53 = i6 + 8 | 0;
 30756  HEAPF32[i53 >> 2] = d40;
 30757  HEAPF32[i6 + 12 >> 2] = 0.0;
 30758  if (d38 < d47) {
 30759   HEAPF32[i51 >> 2] = d47;
 30760   d54 = d47;
 30761  } else {
 30762   d54 = d38;
 30764  if (d39 < d29) {
 30765   HEAPF32[i52 >> 2] = d29;
 30766   d55 = d29;
 30767  } else {
 30768   d55 = d39;
 30770  if (d40 < d30) {
 30771   HEAPF32[i53 >> 2] = d30;
 30772   d56 = d30;
 30773  } else {
 30774   d56 = d40;
 30776  d31 = +HEAPF32[i1 + 244 >> 2];
 30777  HEAPF32[i9 >> 2] = d48 - d31;
 30778  HEAPF32[i2 >> 2] = d49 - d31;
 30779  HEAPF32[i8 >> 2] = d50 - d31;
 30780  HEAPF32[i51 >> 2] = d54 + d31;
 30781  HEAPF32[i52 >> 2] = d55 + d31;
 30782  HEAPF32[i53 >> 2] = d56 + d31;
 30783  HEAP32[i7 >> 2] = 1424;
 30784  HEAPF32[i7 + 4 >> 2] = d19 * d28 + d18 * d27 + d15 * d26;
 30785  HEAPF32[i7 + 8 >> 2] = d19 * d32 + d18 * d33 + d15 * d34;
 30786  HEAPF32[i7 + 12 >> 2] = d19 * d35 + d18 * d36 + d15 * d37;
 30787  HEAPF32[i7 + 16 >> 2] = 0.0;
 30788  HEAPF32[i7 + 20 >> 2] = d12 * d28 + d21 * d27 + d22 * d26;
 30789  HEAPF32[i7 + 24 >> 2] = d12 * d32 + d21 * d33 + d22 * d34;
 30790  HEAPF32[i7 + 28 >> 2] = d12 * d35 + d21 * d36 + d22 * d37;
 30791  HEAPF32[i7 + 32 >> 2] = 0.0;
 30792  HEAPF32[i7 + 36 >> 2] = d23 * d28 + d24 * d27 + d25 * d26;
 30793  HEAPF32[i7 + 40 >> 2] = d23 * d32 + d24 * d33 + d25 * d34;
 30794  HEAPF32[i7 + 44 >> 2] = d23 * d35 + d24 * d36 + d25 * d37;
 30795  HEAPF32[i7 + 48 >> 2] = 0.0;
 30796  HEAPF32[i7 + 52 >> 2] = d38;
 30797  HEAPF32[i7 + 56 >> 2] = d39;
 30798  HEAPF32[i7 + 60 >> 2] = d40;
 30799  HEAPF32[i7 + 64 >> 2] = 0.0;
 30800  HEAPF32[i7 + 68 >> 2] = d19 * d17 + d18 * d14 + d15 * d11;
 30801  HEAPF32[i7 + 72 >> 2] = d19 * d41 + d18 * d42 + d15 * d43;
 30802  HEAPF32[i7 + 76 >> 2] = d19 * d44 + d18 * d45 + d15 * d46;
 30803  HEAPF32[i7 + 80 >> 2] = 0.0;
 30804  HEAPF32[i7 + 84 >> 2] = d12 * d17 + d21 * d14 + d22 * d11;
 30805  HEAPF32[i7 + 88 >> 2] = d12 * d41 + d21 * d42 + d22 * d43;
 30806  HEAPF32[i7 + 92 >> 2] = d12 * d44 + d21 * d45 + d22 * d46;
 30807  HEAPF32[i7 + 96 >> 2] = 0.0;
 30808  HEAPF32[i7 + 100 >> 2] = d23 * d17 + d24 * d14 + d25 * d11;
 30809  HEAPF32[i7 + 104 >> 2] = d23 * d41 + d24 * d42 + d25 * d43;
 30810  HEAPF32[i7 + 108 >> 2] = d23 * d44 + d24 * d45 + d25 * d46;
 30811  HEAPF32[i7 + 112 >> 2] = 0.0;
 30812  HEAPF32[i7 + 116 >> 2] = d47;
 30813  HEAPF32[i7 + 120 >> 2] = d29;
 30814  HEAPF32[i7 + 124 >> 2] = d30;
 30815  HEAPF32[i7 + 128 >> 2] = 0.0;
 30816  HEAPF32[i7 + 196 >> 2] = d31;
 30817  i53 = i7 + 200 | 0;
 30818  i52 = i1 + 240 | 0;
 30819  HEAPF32[i53 >> 2] = +HEAPF32[i52 >> 2];
 30820  do {
 30821   if ((i3 | 0) == 0) {
 30822    i57 = i7 | 0;
 30823   } else {
 30824    i1 = i7 | 0;
 30825    FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i3 >> 2] | 0) + 60 >> 2] & 127](i3, i1, i4, i6);
 30826    d31 = +HEAPF32[i53 >> 2];
 30827    if (d31 >= +HEAPF32[i52 >> 2]) {
 30828     i57 = i1;
 30829     break;
 30831    HEAPF32[i52 >> 2] = d31;
 30832    __ZN18btTriangleCallbackD2Ev(i1);
 30833    d20 = d31;
 30834    STACKTOP = i5;
 30835    return +d20;
 30837  } while (0);
 30838  __ZN18btTriangleCallbackD2Ev(i57);
 30839  d20 = 1.0;
 30840  STACKTOP = i5;
 30841  return +d20;
 30843 function __ZN25btSimulationIslandManager12buildIslandsEP12btDispatcherP16btCollisionWorld(i1, i2, i3) {
 30844  i1 = i1 | 0;
 30845  i2 = i2 | 0;
 30846  i3 = i3 | 0;
 30847  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0;
 30848  __ZN15CProfileManager13Start_ProfileEPKc(504);
 30849  i4 = i1 + 28 | 0;
 30850  i5 = HEAP32[i4 >> 2] | 0;
 30851  if ((i5 | 0) < 0) {
 30852   i6 = i1 + 32 | 0;
 30853   i7 = i1 + 36 | 0;
 30854   if ((HEAP32[i6 >> 2] | 0) < 0) {
 30855    i8 = HEAP32[i7 >> 2] | 0;
 30856    i9 = i1 + 40 | 0;
 30857    if ((i8 | 0) != 0) {
 30858     if ((HEAP8[i9] | 0) != 0) {
 30859      __Z21btAlignedFreeInternalPv(i8);
 30861     HEAP32[i7 >> 2] = 0;
 30863    HEAP8[i9] = 1;
 30864    HEAP32[i7 >> 2] = 0;
 30865    HEAP32[i6 >> 2] = 0;
 30866    i10 = i5;
 30867   } else {
 30868    i10 = i5;
 30870   do {
 30871    i5 = (HEAP32[i7 >> 2] | 0) + (i10 << 2) | 0;
 30872    if ((i5 | 0) != 0) {
 30873     HEAP32[i5 >> 2] = 0;
 30875    i10 = i10 + 1 | 0;
 30876   } while ((i10 | 0) < 0);
 30878  HEAP32[i4 >> 2] = 0;
 30879  __ZN11btUnionFind11sortIslandsEv(i1 + 4 | 0);
 30880  i10 = HEAP32[i1 + 8 >> 2] | 0;
 30881  if ((i10 | 0) > 0) {
 30882   i7 = i1 + 16 | 0;
 30883   i5 = i3 + 16 | 0;
 30884   i3 = 0;
 30885   while (1) {
 30886    i6 = HEAP32[i7 >> 2] | 0;
 30887    i9 = HEAP32[i6 + (i3 << 3) >> 2] | 0;
 30888    i8 = i3;
 30889    while (1) {
 30890     i11 = i8 + 1 | 0;
 30891     if ((i11 | 0) >= (i10 | 0)) {
 30892      i12 = 0;
 30893      break;
 30895     if ((HEAP32[i6 + (i11 << 3) >> 2] | 0) == (i9 | 0)) {
 30896      i8 = i11;
 30897     } else {
 30898      i12 = 1;
 30899      break;
 30902    L212 : do {
 30903     if ((i3 | 0) < (i11 | 0)) {
 30904      i8 = HEAP32[i5 >> 2] | 0;
 30905      i13 = i3;
 30906      i14 = 1;
 30907      while (1) {
 30908       i15 = HEAP32[i8 + (HEAP32[i6 + (i13 << 3) + 4 >> 2] << 2) >> 2] | 0;
 30909       if ((HEAP32[i15 + 208 >> 2] | 0) == (i9 | 0)) {
 30910        i16 = HEAP32[i15 + 216 >> 2] | 0;
 30911        i17 = i14 & (i16 | 0) != 1 & (i16 | 0) != 4;
 30912       } else {
 30913        i17 = i14;
 30915       i16 = i13 + 1 | 0;
 30916       if ((i16 | 0) < (i11 | 0)) {
 30917        i13 = i16;
 30918        i14 = i17;
 30919       } else {
 30920        break;
 30923      if (i17) {
 30924       i14 = i3;
 30925       i13 = i6;
 30926       i16 = i8;
 30927       while (1) {
 30928        i15 = HEAP32[i16 + (HEAP32[i13 + (i14 << 3) + 4 >> 2] << 2) >> 2] | 0;
 30929        if ((HEAP32[i15 + 208 >> 2] | 0) == (i9 | 0)) {
 30930         __ZN17btCollisionObject18setActivationStateEi(i15, 2);
 30932        i15 = i14 + 1 | 0;
 30933        if ((i15 | 0) >= (i11 | 0)) {
 30934         break L212;
 30936        i14 = i15;
 30937        i13 = HEAP32[i7 >> 2] | 0;
 30938        i16 = HEAP32[i5 >> 2] | 0;
 30940      } else {
 30941       i18 = i3;
 30942       i19 = i6;
 30943       i20 = i8;
 30945      while (1) {
 30946       i16 = HEAP32[i20 + (HEAP32[i19 + (i18 << 3) + 4 >> 2] << 2) >> 2] | 0;
 30947       do {
 30948        if ((HEAP32[i16 + 208 >> 2] | 0) == (i9 | 0)) {
 30949         if ((HEAP32[i16 + 216 >> 2] | 0) != 2) {
 30950          break;
 30952         __ZN17btCollisionObject18setActivationStateEi(i16, 3);
 30953         HEAPF32[i16 + 220 >> 2] = 0.0;
 30955       } while (0);
 30956       i16 = i18 + 1 | 0;
 30957       if ((i16 | 0) >= (i11 | 0)) {
 30958        break L212;
 30960       i18 = i16;
 30961       i19 = HEAP32[i7 >> 2] | 0;
 30962       i20 = HEAP32[i5 >> 2] | 0;
 30965    } while (0);
 30966    if (i12) {
 30967     i3 = i11;
 30968    } else {
 30969     break;
 30973  i11 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i2 >> 2] | 0) + 36 >> 2] & 127](i2) | 0;
 30974  if ((i11 | 0) <= 0) {
 30975   __ZN15CProfileManager12Stop_ProfileEv();
 30976   return;
 30978  i3 = i2;
 30979  i12 = i1 + 64 | 0;
 30980  i5 = i2;
 30981  i20 = i1 + 32 | 0;
 30982  i7 = i1 + 36 | 0;
 30983  i19 = i1 + 40 | 0;
 30984  i1 = 0;
 30985  do {
 30986   i18 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i3 >> 2] | 0) + 40 >> 2] & 63](i2, i1) | 0;
 30987   i17 = HEAP32[i18 + 1108 >> 2] | 0;
 30988   i10 = i17;
 30989   i9 = HEAP32[i18 + 1112 >> 2] | 0;
 30990   i6 = i9;
 30991   if ((i17 | 0) == 0) {
 30992    i21 = 230;
 30993   } else {
 30994    if ((HEAP32[i17 + 216 >> 2] | 0) == 2) {
 30995     i21 = 230;
 30996    } else {
 30997     i21 = 232;
 31000   do {
 31001    if ((i21 | 0) == 230) {
 31002     i21 = 0;
 31003     if ((i9 | 0) == 0) {
 31004      break;
 31006     if ((HEAP32[i9 + 216 >> 2] | 0) != 2) {
 31007      i21 = 232;
 31010   } while (0);
 31011   do {
 31012    if ((i21 | 0) == 232) {
 31013     i21 = 0;
 31014     do {
 31015      if ((HEAP32[i17 + 204 >> 2] & 2 | 0) != 0) {
 31016       if ((HEAP32[i17 + 216 >> 2] | 0) == 2) {
 31017        break;
 31019       __ZN17btCollisionObject8activateEb(i6, 0);
 31021     } while (0);
 31022     do {
 31023      if ((HEAP32[i9 + 204 >> 2] & 2 | 0) != 0) {
 31024       if ((HEAP32[i9 + 216 >> 2] | 0) == 2) {
 31025        break;
 31027       __ZN17btCollisionObject8activateEb(i10, 0);
 31029     } while (0);
 31030     if ((HEAP8[i12] | 0) == 0) {
 31031      break;
 31033     if (!(FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i5 >> 2] | 0) + 28 >> 2] & 31](i2, i10, i6) | 0)) {
 31034      break;
 31036     i8 = HEAP32[i4 >> 2] | 0;
 31037     do {
 31038      if ((i8 | 0) == (HEAP32[i20 >> 2] | 0)) {
 31039       i16 = (i8 | 0) == 0 ? 1 : i8 << 1;
 31040       if ((i8 | 0) >= (i16 | 0)) {
 31041        i22 = i8;
 31042        break;
 31044       if ((i16 | 0) == 0) {
 31045        i23 = 0;
 31046        i24 = i8;
 31047       } else {
 31048        i13 = __Z22btAlignedAllocInternalji(i16 << 2, 16) | 0;
 31049        i23 = i13;
 31050        i24 = HEAP32[i4 >> 2] | 0;
 31052       if ((i24 | 0) > 0) {
 31053        i13 = 0;
 31054        do {
 31055         i14 = i23 + (i13 << 2) | 0;
 31056         if ((i14 | 0) != 0) {
 31057          HEAP32[i14 >> 2] = HEAP32[(HEAP32[i7 >> 2] | 0) + (i13 << 2) >> 2];
 31059         i13 = i13 + 1 | 0;
 31060        } while ((i13 | 0) < (i24 | 0));
 31062       i13 = HEAP32[i7 >> 2] | 0;
 31063       if ((i13 | 0) == 0) {
 31064        i25 = i24;
 31065       } else {
 31066        if ((HEAP8[i19] | 0) == 0) {
 31067         i26 = i24;
 31068        } else {
 31069         __Z21btAlignedFreeInternalPv(i13);
 31070         i26 = HEAP32[i4 >> 2] | 0;
 31072        HEAP32[i7 >> 2] = 0;
 31073        i25 = i26;
 31075       HEAP8[i19] = 1;
 31076       HEAP32[i7 >> 2] = i23;
 31077       HEAP32[i20 >> 2] = i16;
 31078       i22 = i25;
 31079      } else {
 31080       i22 = i8;
 31082     } while (0);
 31083     i8 = (HEAP32[i7 >> 2] | 0) + (i22 << 2) | 0;
 31084     if ((i8 | 0) != 0) {
 31085      HEAP32[i8 >> 2] = i18;
 31087     HEAP32[i4 >> 2] = i22 + 1;
 31089   } while (0);
 31090   i1 = i1 + 1 | 0;
 31091  } while ((i1 | 0) < (i11 | 0));
 31092  __ZN15CProfileManager12Stop_ProfileEv();
 31093  return;
 31095 function __ZN16btManifoldResult15addContactPointERK9btVector3S2_f(i1, i2, i3, d4) {
 31096  i1 = i1 | 0;
 31097  i2 = i2 | 0;
 31098  i3 = i3 | 0;
 31099  d4 = +d4;
 31100  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0;
 31101  i5 = STACKTOP;
 31102  STACKTOP = STACKTOP + 280 | 0;
 31103  i6 = i5 | 0;
 31104  i7 = i1 + 4 | 0;
 31105  i8 = HEAP32[i7 >> 2] | 0;
 31106  if (+HEAPF32[i8 + 1124 >> 2] < d4) {
 31107   STACKTOP = i5;
 31108   return;
 31110  i9 = i1 + 136 | 0;
 31111  i10 = (HEAP32[i8 + 1108 >> 2] | 0) != (HEAP32[i9 >> 2] | 0);
 31112  d11 = +HEAPF32[i3 >> 2];
 31113  d12 = +HEAPF32[i2 >> 2] * d4 + d11;
 31114  d13 = +HEAPF32[i3 + 4 >> 2];
 31115  d14 = +HEAPF32[i2 + 4 >> 2] * d4 + d13;
 31116  d15 = +HEAPF32[i3 + 8 >> 2];
 31117  d16 = +HEAPF32[i2 + 8 >> 2] * d4 + d15;
 31118  if (i10) {
 31119   d17 = d12 - +HEAPF32[i1 + 120 >> 2];
 31120   d18 = d14 - +HEAPF32[i1 + 124 >> 2];
 31121   d19 = d16 - +HEAPF32[i1 + 128 >> 2];
 31122   d20 = d11 - +HEAPF32[i1 + 56 >> 2];
 31123   d21 = d13 - +HEAPF32[i1 + 60 >> 2];
 31124   d22 = d15 - +HEAPF32[i1 + 64 >> 2];
 31125   d23 = d20 * +HEAPF32[i1 + 8 >> 2] + d21 * +HEAPF32[i1 + 24 >> 2] + d22 * +HEAPF32[i1 + 40 >> 2];
 31126   d24 = d20 * +HEAPF32[i1 + 12 >> 2] + d21 * +HEAPF32[i1 + 28 >> 2] + d22 * +HEAPF32[i1 + 44 >> 2];
 31127   d25 = d20 * +HEAPF32[i1 + 16 >> 2] + d21 * +HEAPF32[i1 + 32 >> 2] + d22 * +HEAPF32[i1 + 48 >> 2];
 31128   d26 = d17 * +HEAPF32[i1 + 72 >> 2] + d18 * +HEAPF32[i1 + 88 >> 2] + d19 * +HEAPF32[i1 + 104 >> 2];
 31129   d27 = d17 * +HEAPF32[i1 + 76 >> 2] + d18 * +HEAPF32[i1 + 92 >> 2] + d19 * +HEAPF32[i1 + 108 >> 2];
 31130   d28 = d17 * +HEAPF32[i1 + 80 >> 2] + d18 * +HEAPF32[i1 + 96 >> 2] + d19 * +HEAPF32[i1 + 112 >> 2];
 31131  } else {
 31132   d19 = d12 - +HEAPF32[i1 + 56 >> 2];
 31133   d18 = d14 - +HEAPF32[i1 + 60 >> 2];
 31134   d17 = d16 - +HEAPF32[i1 + 64 >> 2];
 31135   d22 = d11 - +HEAPF32[i1 + 120 >> 2];
 31136   d11 = d13 - +HEAPF32[i1 + 124 >> 2];
 31137   d13 = d15 - +HEAPF32[i1 + 128 >> 2];
 31138   d23 = d22 * +HEAPF32[i1 + 72 >> 2] + d11 * +HEAPF32[i1 + 88 >> 2] + d13 * +HEAPF32[i1 + 104 >> 2];
 31139   d24 = d22 * +HEAPF32[i1 + 76 >> 2] + d11 * +HEAPF32[i1 + 92 >> 2] + d13 * +HEAPF32[i1 + 108 >> 2];
 31140   d25 = d22 * +HEAPF32[i1 + 80 >> 2] + d11 * +HEAPF32[i1 + 96 >> 2] + d13 * +HEAPF32[i1 + 112 >> 2];
 31141   d26 = d19 * +HEAPF32[i1 + 8 >> 2] + d18 * +HEAPF32[i1 + 24 >> 2] + d17 * +HEAPF32[i1 + 40 >> 2];
 31142   d27 = d19 * +HEAPF32[i1 + 12 >> 2] + d18 * +HEAPF32[i1 + 28 >> 2] + d17 * +HEAPF32[i1 + 44 >> 2];
 31143   d28 = d19 * +HEAPF32[i1 + 16 >> 2] + d18 * +HEAPF32[i1 + 32 >> 2] + d17 * +HEAPF32[i1 + 48 >> 2];
 31145  HEAPF32[i6 >> 2] = d26;
 31146  HEAPF32[i6 + 4 >> 2] = d27;
 31147  HEAPF32[i6 + 8 >> 2] = d28;
 31148  HEAPF32[i6 + 12 >> 2] = 0.0;
 31149  HEAPF32[i6 + 16 >> 2] = d23;
 31150  HEAPF32[i6 + 20 >> 2] = d24;
 31151  HEAPF32[i6 + 24 >> 2] = d25;
 31152  HEAPF32[i6 + 28 >> 2] = 0.0;
 31153  i29 = i6 + 64 | 0;
 31154  i30 = i2;
 31155  HEAP32[i29 >> 2] = HEAP32[i30 >> 2];
 31156  HEAP32[i29 + 4 >> 2] = HEAP32[i30 + 4 >> 2];
 31157  HEAP32[i29 + 8 >> 2] = HEAP32[i30 + 8 >> 2];
 31158  HEAP32[i29 + 12 >> 2] = HEAP32[i30 + 12 >> 2];
 31159  HEAPF32[i6 + 80 >> 2] = d4;
 31160  i30 = i6 + 84 | 0;
 31161  HEAPF32[i30 >> 2] = 0.0;
 31162  i29 = i6 + 88 | 0;
 31163  HEAPF32[i29 >> 2] = 0.0;
 31164  HEAP32[i6 + 108 >> 2] = 0;
 31165  HEAPF32[i6 + 112 >> 2] = 0.0;
 31166  HEAP8[i6 + 116 | 0] = 0;
 31167  HEAPF32[i6 + 208 >> 2] = 0.0;
 31168  HEAPF32[i6 + 240 >> 2] = 0.0;
 31169  HEAPF32[i6 + 272 >> 2] = 0.0;
 31170  _memset(i6 + 120 | 0, 0, 28);
 31171  HEAPF32[i6 + 48 >> 2] = d12;
 31172  HEAPF32[i6 + 52 >> 2] = d14;
 31173  HEAPF32[i6 + 56 >> 2] = d16;
 31174  HEAPF32[i6 + 60 >> 2] = 0.0;
 31175  i2 = i6 + 32 | 0;
 31176  i31 = i3;
 31177  HEAP32[i2 >> 2] = HEAP32[i31 >> 2];
 31178  HEAP32[i2 + 4 >> 2] = HEAP32[i31 + 4 >> 2];
 31179  HEAP32[i2 + 8 >> 2] = HEAP32[i31 + 8 >> 2];
 31180  HEAP32[i2 + 12 >> 2] = HEAP32[i31 + 12 >> 2];
 31181  i31 = __ZNK20btPersistentManifold13getCacheEntryERK15btManifoldPoint(i8, i6) | 0;
 31182  i8 = HEAP32[i9 >> 2] | 0;
 31183  i2 = i1 + 140 | 0;
 31184  i3 = HEAP32[i2 >> 2] | 0;
 31185  d16 = +HEAPF32[i8 + 224 >> 2] * +HEAPF32[i3 + 224 >> 2];
 31186  d14 = d16 < -10.0 ? -10.0 : d16;
 31187  HEAPF32[i30 >> 2] = d14 > 10.0 ? 10.0 : d14;
 31188  HEAPF32[i29 >> 2] = +HEAPF32[i8 + 228 >> 2] * +HEAPF32[i3 + 228 >> 2];
 31189  if (i10) {
 31190   HEAP32[i6 + 92 >> 2] = HEAP32[i1 + 148 >> 2];
 31191   HEAP32[i6 + 96 >> 2] = HEAP32[i1 + 144 >> 2];
 31192   HEAP32[i6 + 100 >> 2] = HEAP32[i1 + 156 >> 2];
 31193   HEAP32[i6 + 104 >> 2] = HEAP32[i1 + 152 >> 2];
 31194  } else {
 31195   HEAP32[i6 + 92 >> 2] = HEAP32[i1 + 144 >> 2];
 31196   HEAP32[i6 + 96 >> 2] = HEAP32[i1 + 148 >> 2];
 31197   HEAP32[i6 + 100 >> 2] = HEAP32[i1 + 152 >> 2];
 31198   HEAP32[i6 + 104 >> 2] = HEAP32[i1 + 156 >> 2];
 31200  i1 = HEAP32[i7 >> 2] | 0;
 31201  if ((i31 | 0) > -1) {
 31202   i3 = i1 + 4 + (i31 * 276 | 0) + 144 | 0;
 31203   i8 = HEAP32[i3 >> 2] | 0;
 31204   i29 = i1 + 4 + (i31 * 276 | 0) + 208 | 0;
 31205   d14 = +HEAPF32[i29 >> 2];
 31206   i30 = i1 + 4 + (i31 * 276 | 0) + 240 | 0;
 31207   d16 = +HEAPF32[i30 >> 2];
 31208   i32 = i1 + 4 + (i31 * 276 | 0) + 272 | 0;
 31209   d12 = +HEAPF32[i32 >> 2];
 31210   i33 = i1 + 4 + (i31 * 276 | 0) + 108 | 0;
 31211   i34 = HEAP32[i33 >> 2] | 0;
 31212   i35 = i1 + 4 + (i31 * 276 | 0) | 0;
 31213   i36 = i6;
 31214   _memcpy(i35 | 0, i36 | 0, 276) | 0;
 31215   HEAP32[i33 >> 2] = i34;
 31216   HEAPF32[i1 + 4 + (i31 * 276 | 0) + 112 >> 2] = d14;
 31217   HEAPF32[i1 + 4 + (i31 * 276 | 0) + 120 >> 2] = d16;
 31218   HEAPF32[i1 + 4 + (i31 * 276 | 0) + 124 >> 2] = d12;
 31219   HEAPF32[i29 >> 2] = d14;
 31220   HEAPF32[i30 >> 2] = d16;
 31221   HEAPF32[i32 >> 2] = d12;
 31222   HEAP32[i3 >> 2] = i8;
 31223   i37 = i31;
 31224  } else {
 31225   i37 = __ZN20btPersistentManifold16addManifoldPointERK15btManifoldPoint(i1, i6) | 0;
 31227  i1 = HEAP32[3010] | 0;
 31228  if ((i1 | 0) == 0) {
 31229   STACKTOP = i5;
 31230   return;
 31232  do {
 31233   if ((HEAP32[(HEAP32[i9 >> 2] | 0) + 204 >> 2] & 8 | 0) == 0) {
 31234    if ((HEAP32[(HEAP32[i2 >> 2] | 0) + 204 >> 2] & 8 | 0) != 0) {
 31235     break;
 31237    STACKTOP = i5;
 31238    return;
 31240  } while (0);
 31241  FUNCTION_TABLE_iiiiiiii[i1 & 1]((HEAP32[i7 >> 2] | 0) + 4 + (i37 * 276 | 0) | 0, HEAP32[(i10 ? i2 : i9) >> 2] | 0, HEAP32[i6 + 92 >> 2] | 0, HEAP32[i6 + 100 >> 2] | 0, HEAP32[(i10 ? i9 : i2) >> 2] | 0, HEAP32[i6 + 96 >> 2] | 0, HEAP32[i6 + 104 >> 2] | 0) | 0;
 31242  STACKTOP = i5;
 31243  return;
 31245 function __ZN16btDbvtBroadphase7collideEP12btDispatcher(i1, i2) {
 31246  i1 = i1 | 0;
 31247  i2 = i2 | 0;
 31248  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0;
 31249  i3 = STACKTOP;
 31250  STACKTOP = STACKTOP + 48 | 0;
 31251  i4 = i3 | 0;
 31252  i5 = i3 + 32 | 0;
 31253  i6 = i1 + 4 | 0;
 31254  i7 = i6 | 0;
 31255  __ZN6btDbvt19optimizeIncrementalEi(i7, ((Math_imul(HEAP32[i1 + 112 >> 2] | 0, HEAP32[i1 + 16 >> 2] | 0) | 0) / 100 | 0) + 1 | 0);
 31256  i8 = i1 + 124 | 0;
 31257  if ((HEAP32[i8 >> 2] | 0) != 0) {
 31258   i9 = ((Math_imul(HEAP32[i1 + 108 >> 2] | 0, HEAP32[i1 + 56 >> 2] | 0) | 0) / 100 | 0) + 1 | 0;
 31259   __ZN6btDbvt19optimizeIncrementalEi(i1 + 44 | 0, i9);
 31260   i10 = (HEAP32[i8 >> 2] | 0) - i9 | 0;
 31261   HEAP32[i8 >> 2] = (i10 | 0) < 0 ? 0 : i10;
 31263  i10 = i1 + 104 | 0;
 31264  i9 = ((HEAP32[i10 >> 2] | 0) + 1 | 0) % 2 | 0;
 31265  HEAP32[i10 >> 2] = i9;
 31266  i10 = HEAP32[i1 + 84 + (i9 << 2) >> 2] | 0;
 31267  if ((i10 | 0) != 0) {
 31268   i9 = i1 + 92 | 0;
 31269   i11 = i4;
 31270   i12 = i4 + 16 | 0;
 31271   i13 = i1 + 44 | 0;
 31272   i14 = i10;
 31273   while (1) {
 31274    i10 = i14 + 56 | 0;
 31275    i15 = HEAP32[i10 >> 2] | 0;
 31276    i16 = i14 + 60 | 0;
 31277    i17 = i14 + 52 | 0;
 31278    i18 = HEAP32[i17 >> 2] | 0;
 31279    if ((i18 | 0) == 0) {
 31280     HEAP32[i1 + 84 + (HEAP32[i16 >> 2] << 2) >> 2] = i15;
 31281    } else {
 31282     HEAP32[i18 + 56 >> 2] = i15;
 31284    i18 = HEAP32[i10 >> 2] | 0;
 31285    if ((i18 | 0) != 0) {
 31286     HEAP32[i18 + 52 >> 2] = HEAP32[i17 >> 2];
 31288    HEAP32[i17 >> 2] = 0;
 31289    HEAP32[i10 >> 2] = HEAP32[i9 >> 2];
 31290    i10 = HEAP32[i9 >> 2] | 0;
 31291    if ((i10 | 0) != 0) {
 31292     HEAP32[i10 + 52 >> 2] = i14;
 31294    HEAP32[i9 >> 2] = i14;
 31295    i10 = i14 + 48 | 0;
 31296    __ZN6btDbvt6removeEP10btDbvtNode(i7, HEAP32[i10 >> 2] | 0);
 31297    i17 = i14 + 16 | 0;
 31298    HEAP32[i11 >> 2] = HEAP32[i17 >> 2];
 31299    HEAP32[i11 + 4 >> 2] = HEAP32[i17 + 4 >> 2];
 31300    HEAP32[i11 + 8 >> 2] = HEAP32[i17 + 8 >> 2];
 31301    HEAP32[i11 + 12 >> 2] = HEAP32[i17 + 12 >> 2];
 31302    i17 = i14 + 32 | 0;
 31303    HEAP32[i12 >> 2] = HEAP32[i17 >> 2];
 31304    HEAP32[i12 + 4 >> 2] = HEAP32[i17 + 4 >> 2];
 31305    HEAP32[i12 + 8 >> 2] = HEAP32[i17 + 8 >> 2];
 31306    HEAP32[i12 + 12 >> 2] = HEAP32[i17 + 12 >> 2];
 31307    HEAP32[i10 >> 2] = __ZN6btDbvt6insertERK12btDbvtAabbMmPv(i13, i4, i14) | 0;
 31308    HEAP32[i16 >> 2] = 2;
 31309    if ((i15 | 0) == 0) {
 31310     break;
 31311    } else {
 31312     i14 = i15;
 31315   HEAP32[i8 >> 2] = HEAP32[i1 + 56 >> 2];
 31316   HEAP8[i1 + 154 | 0] = 1;
 31318  HEAP32[i5 >> 2] = 4064;
 31319  HEAP32[i5 + 4 >> 2] = i1;
 31320  i8 = i1 + 153 | 0;
 31321  do {
 31322   if ((HEAP8[i8] | 0) != 0) {
 31323    i14 = i6 | 0;
 31324    i4 = i5 | 0;
 31325    __ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(i7, HEAP32[i14 >> 2] | 0, HEAP32[i1 + 44 >> 2] | 0, i4);
 31326    if ((HEAP8[i8] | 0) == 0) {
 31327     break;
 31329    i13 = HEAP32[i14 >> 2] | 0;
 31330    __ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(i7, i13, i13, i4);
 31332  } while (0);
 31333  i7 = i1 + 154 | 0;
 31334  L1067 : do {
 31335   if ((HEAP8[i7] | 0) != 0) {
 31336    i8 = i1 + 96 | 0;
 31337    i5 = HEAP32[i8 >> 2] | 0;
 31338    i6 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i5 >> 2] | 0) + 28 >> 2] & 127](i5) | 0;
 31339    i5 = i6 + 4 | 0;
 31340    i4 = HEAP32[i5 >> 2] | 0;
 31341    if ((i4 | 0) <= 0) {
 31342     break;
 31344    i13 = (Math_imul(HEAP32[i1 + 116 >> 2] | 0, i4) | 0) / 100 | 0;
 31345    i14 = HEAP32[i1 + 120 >> 2] | 0;
 31346    i12 = (i14 | 0) > (i13 | 0) ? i14 : i13;
 31347    i13 = (i4 | 0) < (i12 | 0) ? i4 : i12;
 31348    i12 = i1 + 144 | 0;
 31349    do {
 31350     if ((i13 | 0) > 0) {
 31351      i14 = i6 + 12 | 0;
 31352      i11 = i13;
 31353      i9 = 0;
 31354      i15 = i4;
 31355      while (1) {
 31356       i16 = ((HEAP32[i12 >> 2] | 0) + i9 | 0) % (i15 | 0) | 0;
 31357       i10 = HEAP32[i14 >> 2] | 0;
 31358       i17 = HEAP32[i10 + (i16 << 4) >> 2] | 0;
 31359       i18 = HEAP32[i10 + (i16 << 4) + 4 >> 2] | 0;
 31360       i16 = HEAP32[i17 + 48 >> 2] | 0;
 31361       i10 = HEAP32[i18 + 48 >> 2] | 0;
 31362       do {
 31363        if (+HEAPF32[i16 >> 2] > +HEAPF32[i10 + 16 >> 2]) {
 31364         i19 = 976;
 31365        } else {
 31366         if (+HEAPF32[i16 + 16 >> 2] < +HEAPF32[i10 >> 2]) {
 31367          i19 = 976;
 31368          break;
 31370         if (+HEAPF32[i16 + 4 >> 2] > +HEAPF32[i10 + 20 >> 2]) {
 31371          i19 = 976;
 31372          break;
 31374         if (+HEAPF32[i16 + 20 >> 2] < +HEAPF32[i10 + 4 >> 2]) {
 31375          i19 = 976;
 31376          break;
 31378         if (+HEAPF32[i16 + 8 >> 2] > +HEAPF32[i10 + 24 >> 2]) {
 31379          i19 = 976;
 31380          break;
 31382         if (+HEAPF32[i16 + 24 >> 2] < +HEAPF32[i10 + 8 >> 2]) {
 31383          i19 = 976;
 31384         } else {
 31385          i20 = i9;
 31386          i21 = i11;
 31387          i22 = i15;
 31390       } while (0);
 31391       if ((i19 | 0) == 976) {
 31392        i19 = 0;
 31393        i10 = HEAP32[i8 >> 2] | 0;
 31394        i16 = i10 | 0;
 31395        i23 = HEAP32[(HEAP32[i10 >> 2] | 0) + 12 >> 2] | 0;
 31396        FUNCTION_TABLE_iiiii[i23 & 31](i16, i17, i18, i2) | 0;
 31397        i20 = i9 - 1 | 0;
 31398        i21 = i11 - 1 | 0;
 31399        i22 = HEAP32[i5 >> 2] | 0;
 31401       i16 = i20 + 1 | 0;
 31402       if ((i16 | 0) < (i21 | 0)) {
 31403        i11 = i21;
 31404        i9 = i16;
 31405        i15 = i22;
 31406       } else {
 31407        break;
 31410      if ((i22 | 0) > 0) {
 31411       i24 = i22;
 31412       i25 = i21;
 31413       break;
 31415      HEAP32[i12 >> 2] = 0;
 31416      break L1067;
 31417     } else {
 31418      i24 = i4;
 31419      i25 = i13;
 31421    } while (0);
 31422    HEAP32[i12 >> 2] = ((HEAP32[i12 >> 2] | 0) + i25 | 0) % (i24 | 0) | 0;
 31424  } while (0);
 31425  i24 = i1 + 140 | 0;
 31426  HEAP32[i24 >> 2] = (HEAP32[i24 >> 2] | 0) + 1;
 31427  HEAP32[i1 + 120 >> 2] = 1;
 31428  HEAP8[i7] = 0;
 31429  i7 = i1 + 128 | 0;
 31430  i24 = HEAP32[i7 >> 2] | 0;
 31431  if ((i24 | 0) == 0) {
 31432   HEAPF32[i1 + 136 >> 2] = 0.0;
 31433   i26 = HEAP32[i1 + 132 >> 2] | 0;
 31434   i27 = i1 + 132 | 0;
 31435   i28 = i26 >>> 1;
 31436   HEAP32[i27 >> 2] = i28;
 31437   i29 = i24 >>> 1;
 31438   HEAP32[i7 >> 2] = i29;
 31439   STACKTOP = i3;
 31440   return;
 31441  } else {
 31442   i25 = HEAP32[i1 + 132 >> 2] | 0;
 31443   HEAPF32[i1 + 136 >> 2] = +(i25 >>> 0 >>> 0) / +(i24 >>> 0 >>> 0);
 31444   i26 = i25;
 31445   i27 = i1 + 132 | 0;
 31446   i28 = i26 >>> 1;
 31447   HEAP32[i27 >> 2] = i28;
 31448   i29 = i24 >>> 1;
 31449   HEAP32[i7 >> 2] = i29;
 31450   STACKTOP = i3;
 31451   return;
 31454 function __ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(i1, i2, i3, i4) {
 31455  i1 = i1 | 0;
 31456  i2 = i2 | 0;
 31457  i3 = i3 | 0;
 31458  i4 = i4 | 0;
 31459  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0;
 31460  if ((i2 | 0) == 0 | (i3 | 0) == 0) {
 31461   return;
 31463  i5 = i1 + 24 | 0;
 31464  i6 = i1 + 28 | 0;
 31465  do {
 31466   if ((HEAP32[i5 >> 2] | 0) < 128) {
 31467    if ((HEAP32[i6 >> 2] | 0) >= 128) {
 31468     break;
 31470    i7 = __Z22btAlignedAllocInternalji(1024, 16) | 0;
 31471    i8 = HEAP32[i5 >> 2] | 0;
 31472    i9 = i1 + 32 | 0;
 31473    if ((i8 | 0) > 0) {
 31474     i10 = 0;
 31475     do {
 31476      i11 = i7 + (i10 << 3) | 0;
 31477      if ((i11 | 0) != 0) {
 31478       i12 = (HEAP32[i9 >> 2] | 0) + (i10 << 3) | 0;
 31479       i13 = i11;
 31480       i11 = HEAP32[i12 + 4 >> 2] | 0;
 31481       HEAP32[i13 >> 2] = HEAP32[i12 >> 2];
 31482       HEAP32[i13 + 4 >> 2] = i11;
 31484      i10 = i10 + 1 | 0;
 31485     } while ((i10 | 0) < (i8 | 0));
 31487    i8 = HEAP32[i9 >> 2] | 0;
 31488    i10 = i1 + 36 | 0;
 31489    if ((i8 | 0) != 0) {
 31490     if ((HEAP8[i10] | 0) != 0) {
 31491      __Z21btAlignedFreeInternalPv(i8);
 31493     HEAP32[i9 >> 2] = 0;
 31495    HEAP8[i10] = 1;
 31496    HEAP32[i9 >> 2] = i7;
 31497    HEAP32[i6 >> 2] = 128;
 31499  } while (0);
 31500  HEAP32[i5 >> 2] = 128;
 31501  i10 = i1 + 32 | 0;
 31502  i8 = HEAP32[i10 >> 2] | 0;
 31503  HEAP32[i8 >> 2] = i2;
 31504  HEAP32[i8 + 4 >> 2] = i3;
 31505  i3 = i1 + 36 | 0;
 31506  i1 = i4;
 31507  i8 = 1;
 31508  i2 = 124;
 31509  while (1) {
 31510   i11 = i8 - 1 | 0;
 31511   i13 = HEAP32[i10 >> 2] | 0;
 31512   i12 = HEAP32[i13 + (i11 << 3) >> 2] | 0;
 31513   i14 = HEAP32[i13 + (i11 << 3) + 4 >> 2] | 0;
 31514   if ((i11 | 0) > (i2 | 0)) {
 31515    i15 = HEAP32[i5 >> 2] | 0;
 31516    i16 = i15 << 1;
 31517    do {
 31518     if ((i15 | 0) < (i16 | 0)) {
 31519      if ((HEAP32[i6 >> 2] | 0) >= (i16 | 0)) {
 31520       i17 = i13;
 31521       break;
 31523      if ((i16 | 0) == 0) {
 31524       i18 = 0;
 31525       i19 = i15;
 31526      } else {
 31527       i20 = __Z22btAlignedAllocInternalji(i15 << 4, 16) | 0;
 31528       i18 = i20;
 31529       i19 = HEAP32[i5 >> 2] | 0;
 31531      if ((i19 | 0) > 0) {
 31532       i20 = 0;
 31533       do {
 31534        i21 = i18 + (i20 << 3) | 0;
 31535        if ((i21 | 0) != 0) {
 31536         i22 = (HEAP32[i10 >> 2] | 0) + (i20 << 3) | 0;
 31537         i23 = i21;
 31538         i21 = HEAP32[i22 + 4 >> 2] | 0;
 31539         HEAP32[i23 >> 2] = HEAP32[i22 >> 2];
 31540         HEAP32[i23 + 4 >> 2] = i21;
 31542        i20 = i20 + 1 | 0;
 31543       } while ((i20 | 0) < (i19 | 0));
 31545      i20 = HEAP32[i10 >> 2] | 0;
 31546      if ((i20 | 0) != 0) {
 31547       if ((HEAP8[i3] | 0) != 0) {
 31548        __Z21btAlignedFreeInternalPv(i20);
 31550       HEAP32[i10 >> 2] = 0;
 31552      HEAP8[i3] = 1;
 31553      HEAP32[i10 >> 2] = i18;
 31554      HEAP32[i6 >> 2] = i16;
 31555      i17 = i18;
 31556     } else {
 31557      i17 = i13;
 31559    } while (0);
 31560    HEAP32[i5 >> 2] = i16;
 31561    i24 = i16 - 4 | 0;
 31562    i25 = i17;
 31563   } else {
 31564    i24 = i2;
 31565    i25 = i13;
 31567   do {
 31568    if ((i12 | 0) == (i14 | 0)) {
 31569     i15 = i12 + 40 | 0;
 31570     if ((HEAP32[i15 >> 2] | 0) == 0) {
 31571      i26 = i11;
 31572      break;
 31574     i7 = i12 + 36 | 0;
 31575     i9 = i25 + (i11 << 3) | 0;
 31576     i20 = HEAP32[i7 >> 2] | 0;
 31577     HEAP32[i9 >> 2] = i20;
 31578     HEAP32[i9 + 4 >> 2] = i20;
 31579     i20 = (HEAP32[i10 >> 2] | 0) + (i8 << 3) | 0;
 31580     i9 = HEAP32[i15 >> 2] | 0;
 31581     HEAP32[i20 >> 2] = i9;
 31582     HEAP32[i20 + 4 >> 2] = i9;
 31583     i9 = (HEAP32[i10 >> 2] | 0) + (i8 + 1 << 3) | 0;
 31584     i20 = HEAP32[i15 >> 2] | 0;
 31585     HEAP32[i9 >> 2] = HEAP32[i7 >> 2];
 31586     HEAP32[i9 + 4 >> 2] = i20;
 31587     i26 = i8 + 2 | 0;
 31588    } else {
 31589     if (+HEAPF32[i12 >> 2] > +HEAPF32[i14 + 16 >> 2]) {
 31590      i26 = i11;
 31591      break;
 31593     if (+HEAPF32[i12 + 16 >> 2] < +HEAPF32[i14 >> 2]) {
 31594      i26 = i11;
 31595      break;
 31597     if (+HEAPF32[i12 + 4 >> 2] > +HEAPF32[i14 + 20 >> 2]) {
 31598      i26 = i11;
 31599      break;
 31601     if (+HEAPF32[i12 + 20 >> 2] < +HEAPF32[i14 + 4 >> 2]) {
 31602      i26 = i11;
 31603      break;
 31605     if (+HEAPF32[i12 + 8 >> 2] > +HEAPF32[i14 + 24 >> 2]) {
 31606      i26 = i11;
 31607      break;
 31609     if (+HEAPF32[i12 + 24 >> 2] < +HEAPF32[i14 + 8 >> 2]) {
 31610      i26 = i11;
 31611      break;
 31613     i20 = i12 + 40 | 0;
 31614     i9 = i14 + 40 | 0;
 31615     i7 = (HEAP32[i9 >> 2] | 0) != 0;
 31616     if ((HEAP32[i20 >> 2] | 0) == 0) {
 31617      if (i7) {
 31618       i15 = i25 + (i11 << 3) | 0;
 31619       i21 = i12;
 31620       i23 = 0;
 31621       i22 = HEAP32[i14 + 36 >> 2] | i23;
 31622       HEAP32[i15 >> 2] = i21;
 31623       HEAP32[i15 + 4 >> 2] = i22;
 31624       i22 = (HEAP32[i10 >> 2] | 0) + (i8 << 3) | 0;
 31625       i15 = HEAP32[i9 >> 2] | i23;
 31626       HEAP32[i22 >> 2] = i21;
 31627       HEAP32[i22 + 4 >> 2] = i15;
 31628       i26 = i8 + 1 | 0;
 31629       break;
 31630      } else {
 31631       FUNCTION_TABLE_viii[HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] & 127](i4, i12, i14);
 31632       i26 = i11;
 31633       break;
 31635     } else {
 31636      i15 = i25 + (i11 << 3) | 0;
 31637      i22 = i12 + 36 | 0;
 31638      i21 = HEAP32[i22 >> 2] | 0;
 31639      if (i7) {
 31640       i7 = i14 + 36 | 0;
 31641       i23 = i15;
 31642       i27 = HEAP32[i7 >> 2] | 0;
 31643       HEAP32[i23 >> 2] = i21;
 31644       HEAP32[i23 + 4 >> 2] = i27;
 31645       i27 = (HEAP32[i10 >> 2] | 0) + (i8 << 3) | 0;
 31646       i23 = HEAP32[i7 >> 2] | 0;
 31647       HEAP32[i27 >> 2] = HEAP32[i20 >> 2];
 31648       HEAP32[i27 + 4 >> 2] = i23;
 31649       i23 = (HEAP32[i10 >> 2] | 0) + (i8 + 1 << 3) | 0;
 31650       i27 = HEAP32[i9 >> 2] | 0;
 31651       HEAP32[i23 >> 2] = HEAP32[i22 >> 2];
 31652       HEAP32[i23 + 4 >> 2] = i27;
 31653       i27 = (HEAP32[i10 >> 2] | 0) + (i8 + 2 << 3) | 0;
 31654       i23 = HEAP32[i9 >> 2] | 0;
 31655       HEAP32[i27 >> 2] = HEAP32[i20 >> 2];
 31656       HEAP32[i27 + 4 >> 2] = i23;
 31657       i26 = i8 + 3 | 0;
 31658       break;
 31659      } else {
 31660       i23 = i15;
 31661       i15 = 0;
 31662       i27 = i14;
 31663       HEAP32[i23 >> 2] = i21 | i15;
 31664       HEAP32[i23 + 4 >> 2] = i27;
 31665       i23 = (HEAP32[i10 >> 2] | 0) + (i8 << 3) | 0;
 31666       HEAP32[i23 >> 2] = HEAP32[i20 >> 2] | i15;
 31667       HEAP32[i23 + 4 >> 2] = i27;
 31668       i26 = i8 + 1 | 0;
 31669       break;
 31673   } while (0);
 31674   if ((i26 | 0) == 0) {
 31675    break;
 31676   } else {
 31677    i8 = i26;
 31678    i2 = i24;
 31681  return;
 31683 function __ZN25btSimulationIslandManager22buildAndProcessIslandsEP12btDispatcherP16btCollisionWorldPNS_14IslandCallbackE(i1, i2, i3, i4) {
 31684  i1 = i1 | 0;
 31685  i2 = i2 | 0;
 31686  i3 = i3 | 0;
 31687  i4 = i4 | 0;
 31688  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0;
 31689  i5 = STACKTOP;
 31690  STACKTOP = STACKTOP + 8 | 0;
 31691  __ZN25btSimulationIslandManager12buildIslandsEP12btDispatcherP16btCollisionWorld(i1, i2, i3);
 31692  i6 = HEAP32[i1 + 8 >> 2] | 0;
 31693  __ZN15CProfileManager13Start_ProfileEPKc(784);
 31694  if ((HEAP8[i1 + 64 | 0] | 0) == 0) {
 31695   i7 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i2 >> 2] | 0) + 44 >> 2] & 127](i2) | 0;
 31696   i8 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i2 >> 2] | 0) + 36 >> 2] & 127](i2) | 0;
 31697   FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[i4 >> 2] | 0) + 8 >> 2] & 15](i4, HEAP32[i3 + 16 >> 2] | 0, HEAP32[i3 + 8 >> 2] | 0, i7, i8, -1);
 31698   __ZN15CProfileManager12Stop_ProfileEv();
 31699   STACKTOP = i5;
 31700   return;
 31702  i8 = HEAP32[i1 + 28 >> 2] | 0;
 31703  if ((i8 | 0) > 1) {
 31704   __ZN20btAlignedObjectArrayIP20btPersistentManifoldE17quickSortInternalI33btPersistentManifoldSortPredicateEEvT_ii(i1 + 24 | 0, i5 | 0, 0, i8 - 1 | 0);
 31706  if ((i6 | 0) <= 0) {
 31707   __ZN15CProfileManager12Stop_ProfileEv();
 31708   STACKTOP = i5;
 31709   return;
 31711  i7 = i1 + 16 | 0;
 31712  i2 = i1 + 36 | 0;
 31713  i9 = i1 + 48 | 0;
 31714  i10 = i1 + 52 | 0;
 31715  i11 = i1 + 56 | 0;
 31716  i12 = i1 + 60 | 0;
 31717  i1 = i4;
 31718  i13 = i3 + 16 | 0;
 31719  i3 = 1;
 31720  i14 = 0;
 31721  i15 = 0;
 31722  while (1) {
 31723   i16 = HEAP32[i7 >> 2] | 0;
 31724   i17 = HEAP32[i16 + (i15 << 3) >> 2] | 0;
 31725   L304 : do {
 31726    if ((i15 | 0) < (i6 | 0)) {
 31727     i18 = i16;
 31728     i19 = i15;
 31729     i20 = 1;
 31730     i21 = HEAP32[i9 >> 2] | 0;
 31731     i22 = HEAP32[i10 >> 2] | 0;
 31732     while (1) {
 31733      i23 = HEAP32[(HEAP32[i13 >> 2] | 0) + (HEAP32[i18 + (i19 << 3) + 4 >> 2] << 2) >> 2] | 0;
 31734      do {
 31735       if ((i21 | 0) == (i22 | 0)) {
 31736        i24 = (i22 | 0) == 0 ? 1 : i22 << 1;
 31737        if ((i22 | 0) >= (i24 | 0)) {
 31738         i25 = i22;
 31739         i26 = i22;
 31740         break;
 31742        if ((i24 | 0) == 0) {
 31743         i27 = 0;
 31744         i28 = i22;
 31745        } else {
 31746         i29 = __Z22btAlignedAllocInternalji(i24 << 2, 16) | 0;
 31747         i27 = i29;
 31748         i28 = HEAP32[i9 >> 2] | 0;
 31750        if ((i28 | 0) > 0) {
 31751         i29 = 0;
 31752         do {
 31753          i30 = i27 + (i29 << 2) | 0;
 31754          if ((i30 | 0) != 0) {
 31755           HEAP32[i30 >> 2] = HEAP32[(HEAP32[i11 >> 2] | 0) + (i29 << 2) >> 2];
 31757          i29 = i29 + 1 | 0;
 31758         } while ((i29 | 0) < (i28 | 0));
 31760        i29 = HEAP32[i11 >> 2] | 0;
 31761        if ((i29 | 0) == 0) {
 31762         i31 = i28;
 31763        } else {
 31764         if ((HEAP8[i12] | 0) == 0) {
 31765          i32 = i28;
 31766         } else {
 31767          __Z21btAlignedFreeInternalPv(i29);
 31768          i32 = HEAP32[i9 >> 2] | 0;
 31770         HEAP32[i11 >> 2] = 0;
 31771         i31 = i32;
 31773        HEAP8[i12] = 1;
 31774        HEAP32[i11 >> 2] = i27;
 31775        HEAP32[i10 >> 2] = i24;
 31776        i25 = i31;
 31777        i26 = i24;
 31778       } else {
 31779        i25 = i21;
 31780        i26 = i22;
 31782      } while (0);
 31783      i29 = (HEAP32[i11 >> 2] | 0) + (i25 << 2) | 0;
 31784      if ((i29 | 0) != 0) {
 31785       HEAP32[i29 >> 2] = i23;
 31787      i29 = i25 + 1 | 0;
 31788      HEAP32[i9 >> 2] = i29;
 31789      i30 = HEAP32[i23 + 216 >> 2] | 0;
 31790      i33 = i20 & ((i30 | 0) == 2 | (i30 | 0) == 5);
 31791      i30 = i19 + 1 | 0;
 31792      if ((i30 | 0) >= (i6 | 0)) {
 31793       i34 = i33;
 31794       i35 = i30;
 31795       break L304;
 31797      i36 = HEAP32[i7 >> 2] | 0;
 31798      if ((HEAP32[i36 + (i30 << 3) >> 2] | 0) == (i17 | 0)) {
 31799       i18 = i36;
 31800       i19 = i30;
 31801       i20 = i33;
 31802       i21 = i29;
 31803       i22 = i26;
 31804      } else {
 31805       i34 = i33;
 31806       i35 = i30;
 31807       break;
 31810    } else {
 31811     i34 = 1;
 31812     i35 = i15;
 31814   } while (0);
 31815   do {
 31816    if ((i14 | 0) < (i8 | 0)) {
 31817     i16 = HEAP32[i2 >> 2] | 0;
 31818     i22 = i16 + (i14 << 2) | 0;
 31819     i21 = HEAP32[i22 >> 2] | 0;
 31820     i20 = HEAP32[(HEAP32[i21 + 1108 >> 2] | 0) + 208 >> 2] | 0;
 31821     if ((i20 | 0) > -1) {
 31822      i37 = i20;
 31823     } else {
 31824      i37 = HEAP32[(HEAP32[i21 + 1112 >> 2] | 0) + 208 >> 2] | 0;
 31826     if ((i37 | 0) == (i17 | 0)) {
 31827      i38 = i14;
 31828     } else {
 31829      i39 = 0;
 31830      i40 = 0;
 31831      i41 = i3;
 31832      break;
 31834     do {
 31835      i38 = i38 + 1 | 0;
 31836      if ((i38 | 0) >= (i8 | 0)) {
 31837       break;
 31839      i21 = HEAP32[i16 + (i38 << 2) >> 2] | 0;
 31840      i20 = HEAP32[(HEAP32[i21 + 1108 >> 2] | 0) + 208 >> 2] | 0;
 31841      if ((i20 | 0) > -1) {
 31842       i42 = i20;
 31843      } else {
 31844       i42 = HEAP32[(HEAP32[i21 + 1112 >> 2] | 0) + 208 >> 2] | 0;
 31846     } while ((i17 | 0) == (i42 | 0));
 31847     i39 = i22;
 31848     i40 = i38 - i14 | 0;
 31849     i41 = i38;
 31850    } else {
 31851     i39 = 0;
 31852     i40 = 0;
 31853     i41 = i3;
 31855   } while (0);
 31856   if (!i34) {
 31857    FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] & 15](i4, HEAP32[i11 >> 2] | 0, HEAP32[i9 >> 2] | 0, i39, i40, i17);
 31859   i16 = (i40 | 0) == 0 ? i14 : i41;
 31860   i21 = HEAP32[i9 >> 2] | 0;
 31861   if ((i21 | 0) < 0) {
 31862    if ((HEAP32[i10 >> 2] | 0) < 0) {
 31863     i20 = HEAP32[i11 >> 2] | 0;
 31864     if ((i20 | 0) != 0) {
 31865      if ((HEAP8[i12] | 0) != 0) {
 31866       __Z21btAlignedFreeInternalPv(i20);
 31868      HEAP32[i11 >> 2] = 0;
 31870     HEAP8[i12] = 1;
 31871     HEAP32[i11 >> 2] = 0;
 31872     HEAP32[i10 >> 2] = 0;
 31873     i43 = i21;
 31874    } else {
 31875     i43 = i21;
 31877    do {
 31878     i21 = (HEAP32[i11 >> 2] | 0) + (i43 << 2) | 0;
 31879     if ((i21 | 0) != 0) {
 31880      HEAP32[i21 >> 2] = 0;
 31882     i43 = i43 + 1 | 0;
 31883    } while ((i43 | 0) < 0);
 31885   HEAP32[i9 >> 2] = 0;
 31886   if ((i35 | 0) < (i6 | 0)) {
 31887    i3 = i41;
 31888    i14 = i16;
 31889    i15 = i35;
 31890   } else {
 31891    break;
 31894  __ZN15CProfileManager12Stop_ProfileEv();
 31895  STACKTOP = i5;
 31896  return;
 31898 function __ZN20btConvexHullInternal4DMulINS_6Int128EyE3mulES1_S1_RS1_S3_(i1, i2, i3, i4) {
 31899  i1 = i1 | 0;
 31900  i2 = i2 | 0;
 31901  i3 = i3 | 0;
 31902  i4 = i4 | 0;
 31903  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0;
 31904  i5 = STACKTOP;
 31905  i6 = i1;
 31906  i1 = STACKTOP;
 31907  STACKTOP = STACKTOP + 16 | 0;
 31908  HEAP32[i1 >> 2] = HEAP32[i6 >> 2];
 31909  HEAP32[i1 + 4 >> 2] = HEAP32[i6 + 4 >> 2];
 31910  HEAP32[i1 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
 31911  HEAP32[i1 + 12 >> 2] = HEAP32[i6 + 12 >> 2];
 31912  i6 = i2;
 31913  i2 = STACKTOP;
 31914  STACKTOP = STACKTOP + 16 | 0;
 31915  HEAP32[i2 >> 2] = HEAP32[i6 >> 2];
 31916  HEAP32[i2 + 4 >> 2] = HEAP32[i6 + 4 >> 2];
 31917  HEAP32[i2 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
 31918  HEAP32[i2 + 12 >> 2] = HEAP32[i6 + 12 >> 2];
 31919  i6 = i1 | 0;
 31920  i7 = HEAP32[i6 + 4 >> 2] | 0;
 31921  i8 = i1 + 8 | 0;
 31922  i1 = i2 | 0;
 31923  i9 = HEAP32[i1 + 4 >> 2] | 0;
 31924  i10 = i2 + 8 | 0;
 31925  i2 = HEAP32[i6 >> 2] | 0;
 31926  i6 = i7 & 0;
 31927  i11 = HEAP32[i1 >> 2] | 0;
 31928  i1 = i9 & 0;
 31929  i12 = ___muldi3(i11, i1, i2, i6) | 0;
 31930  i13 = tempRet0;
 31931  i14 = i9;
 31932  i9 = 0;
 31933  i15 = ___muldi3(i14, i9, i2, i6) | 0;
 31934  i16 = tempRet0;
 31935  i17 = i7;
 31936  i7 = 0;
 31937  i18 = ___muldi3(i11, i1, i17, i7) | 0;
 31938  i19 = tempRet0;
 31939  i20 = ___muldi3(i14, i9, i17, i7) | 0;
 31940  i21 = tempRet0;
 31941  i22 = _i64Add(i15 | 0, i16 & 0, i18 | 0, i19 & 0) | 0;
 31942  i18 = tempRet0;
 31943  i15 = _i64Add(i16, 0, i20, i21) | 0;
 31944  i21 = _i64Add(i15, tempRet0, i19, 0) | 0;
 31945  i19 = tempRet0;
 31946  i15 = _llvm_uadd_with_overflow_i64(i12 | 0, i13 | 0, 0, i22 | 0) | 0;
 31947  i22 = i15;
 31948  i15 = tempRet0;
 31949  i13 = _i64Add(i21, i19, tempRet1 & 1, 0) | 0;
 31950  i19 = _i64Add(i13, tempRet0, i18, 0) | 0;
 31951  i18 = tempRet0;
 31952  i13 = HEAP32[i10 + 4 >> 2] | 0;
 31953  i21 = HEAP32[i10 >> 2] | 0;
 31954  i10 = i13 & 0;
 31955  i12 = ___muldi3(i21, i10, i2, i6) | 0;
 31956  i20 = tempRet0;
 31957  i16 = i13;
 31958  i13 = 0;
 31959  i23 = ___muldi3(i16, i13, i2, i6) | 0;
 31960  i6 = tempRet0;
 31961  i2 = ___muldi3(i21, i10, i17, i7) | 0;
 31962  i24 = tempRet0;
 31963  i25 = ___muldi3(i16, i13, i17, i7) | 0;
 31964  i7 = tempRet0;
 31965  i17 = _i64Add(i23 | 0, i6 & 0, i2 | 0, i24 & 0) | 0;
 31966  i2 = tempRet0;
 31967  i23 = _i64Add(i6, 0, i25, i7) | 0;
 31968  i7 = _i64Add(i23, tempRet0, i24, 0) | 0;
 31969  i24 = tempRet0;
 31970  i23 = _llvm_uadd_with_overflow_i64(i12 | 0, i20 | 0, 0, i17 | 0) | 0;
 31971  i17 = tempRet0;
 31972  i20 = _i64Add(i7, i24, tempRet1 & 1, 0) | 0;
 31973  i24 = _i64Add(i20, tempRet0, i2, 0) | 0;
 31974  i2 = tempRet0;
 31975  i20 = HEAP32[i8 + 4 >> 2] | 0;
 31976  i7 = HEAP32[i8 >> 2] | 0;
 31977  i8 = i20 & 0;
 31978  i12 = ___muldi3(i7, i8, i11, i1) | 0;
 31979  i25 = tempRet0;
 31980  i6 = ___muldi3(i7, i8, i14, i9) | 0;
 31981  i26 = tempRet0;
 31982  i27 = i20;
 31983  i20 = 0;
 31984  i28 = ___muldi3(i27, i20, i11, i1) | 0;
 31985  i1 = tempRet0;
 31986  i11 = ___muldi3(i27, i20, i14, i9) | 0;
 31987  i9 = tempRet0;
 31988  i14 = _i64Add(i6 | 0, i26 & 0, i28 | 0, i1 & 0) | 0;
 31989  i28 = tempRet0;
 31990  i6 = _i64Add(i26, 0, i11, i9) | 0;
 31991  i9 = _i64Add(i6, tempRet0, i1, 0) | 0;
 31992  i1 = tempRet0;
 31993  i6 = _llvm_uadd_with_overflow_i64(i12 | 0, i25 | 0, 0, i14 | 0) | 0;
 31994  i14 = tempRet0;
 31995  i25 = _i64Add(i9, i1, tempRet1 & 1, 0) | 0;
 31996  i1 = _i64Add(i25, tempRet0, i28, 0) | 0;
 31997  i28 = tempRet0;
 31998  i25 = ___muldi3(i7, i8, i21, i10) | 0;
 31999  i9 = tempRet0;
 32000  i12 = ___muldi3(i7, i8, i16, i13) | 0;
 32001  i8 = tempRet0;
 32002  i7 = ___muldi3(i27, i20, i21, i10) | 0;
 32003  i10 = tempRet0;
 32004  i21 = ___muldi3(i27, i20, i16, i13) | 0;
 32005  i13 = tempRet0;
 32006  i16 = _i64Add(i12 | 0, i8 & 0, i7 | 0, i10 & 0) | 0;
 32007  i7 = tempRet0;
 32008  i12 = _i64Add(i8, 0, i21, i13) | 0;
 32009  i13 = _i64Add(i12, tempRet0, i10, 0) | 0;
 32010  i10 = tempRet0;
 32011  i12 = _llvm_uadd_with_overflow_i64(i25 | 0, i9 | 0, 0, i16 | 0) | 0;
 32012  i16 = tempRet0;
 32013  i9 = tempRet1 & 1;
 32014  i25 = _llvm_uadd_with_overflow_i64(i23 | 0, i17 | 0, i6 | 0, i14 | 0) | 0;
 32015  i14 = tempRet0;
 32016  i6 = tempRet1 & 1;
 32017  i17 = _llvm_uadd_with_overflow_i64(i12 | 0, i16 | 0, i24 | 0, i2 | 0) | 0;
 32018  i2 = tempRet1 & 1;
 32019  i24 = _llvm_uadd_with_overflow_i64(i17 | 0, tempRet0 | 0, i1 | 0, i28 | 0) | 0;
 32020  i28 = tempRet1 & 1;
 32021  i1 = _llvm_uadd_with_overflow_i64(i24 | 0, tempRet0 | 0, i6 | 0, 0) | 0;
 32022  i6 = i1;
 32023  i1 = tempRet0;
 32024  i24 = tempRet1 & 1;
 32025  i17 = _i64Add(i13, i10, i9, 0) | 0;
 32026  i9 = _i64Add(i17, tempRet0, i7, 0) | 0;
 32027  i7 = _i64Add(i9, tempRet0, i2, 0) | 0;
 32028  i2 = _i64Add(i7, tempRet0, i28, 0) | 0;
 32029  i28 = _i64Add(i2, tempRet0, i24, 0) | 0;
 32030  i24 = tempRet0;
 32031  i2 = _llvm_uadd_with_overflow_i64(i19 | 0, i18 | 0, i25 | 0, i14 | 0) | 0;
 32032  i14 = i2;
 32033  i2 = tempRet0;
 32034  if (!tempRet1) {
 32035   i29 = i1;
 32036   i30 = i6;
 32037   i31 = i24;
 32038   i32 = i28;
 32039   i33 = i3 | 0;
 32040   i34 = i33 | 0;
 32041   HEAP32[i34 >> 2] = i22;
 32042   i35 = i33 + 4 | 0;
 32043   HEAP32[i35 >> 2] = i15;
 32044   i36 = i3 + 8 | 0;
 32045   i37 = i36 | 0;
 32046   HEAP32[i37 >> 2] = i14;
 32047   i38 = i36 + 4 | 0;
 32048   HEAP32[i38 >> 2] = i2;
 32049   i39 = i4 | 0;
 32050   i40 = i39 | 0;
 32051   HEAP32[i40 >> 2] = i30;
 32052   i41 = i39 + 4 | 0;
 32053   HEAP32[i41 >> 2] = i29;
 32054   i42 = i4 + 8 | 0;
 32055   i43 = i42 | 0;
 32056   HEAP32[i43 >> 2] = i32;
 32057   i44 = i42 + 4 | 0;
 32058   HEAP32[i44 >> 2] = i31;
 32059   STACKTOP = i5;
 32060   return;
 32062  i25 = _i64Add(i6, i1, 1, 0) | 0;
 32063  i1 = tempRet0;
 32064  i6 = _i64Add(i28, i24, (i25 | 0) == 0 & (i1 | 0) == 0 & 1, 0) | 0;
 32065  i29 = i1;
 32066  i30 = i25;
 32067  i31 = tempRet0;
 32068  i32 = i6;
 32069  i33 = i3 | 0;
 32070  i34 = i33 | 0;
 32071  HEAP32[i34 >> 2] = i22;
 32072  i35 = i33 + 4 | 0;
 32073  HEAP32[i35 >> 2] = i15;
 32074  i36 = i3 + 8 | 0;
 32075  i37 = i36 | 0;
 32076  HEAP32[i37 >> 2] = i14;
 32077  i38 = i36 + 4 | 0;
 32078  HEAP32[i38 >> 2] = i2;
 32079  i39 = i4 | 0;
 32080  i40 = i39 | 0;
 32081  HEAP32[i40 >> 2] = i30;
 32082  i41 = i39 + 4 | 0;
 32083  HEAP32[i41 >> 2] = i29;
 32084  i42 = i4 + 8 | 0;
 32085  i43 = i42 | 0;
 32086  HEAP32[i43 >> 2] = i32;
 32087  i44 = i42 + 4 | 0;
 32088  HEAP32[i44 >> 2] = i31;
 32089  STACKTOP = i5;
 32090  return;
 32092 function __ZN22SphereTriangleDetector7collideERK9btVector3RS0_S3_RfS4_f(i1, i2, i3, i4, i5, i6, d7) {
 32093  i1 = i1 | 0;
 32094  i2 = i2 | 0;
 32095  i3 = i3 | 0;
 32096  i4 = i4 | 0;
 32097  i5 = i5 | 0;
 32098  i6 = i6 | 0;
 32099  d7 = +d7;
 32100  var i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, i28 = 0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, i33 = 0, i34 = 0, i35 = 0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, d41 = 0.0, d42 = 0.0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, d49 = 0.0, d50 = 0.0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0, d55 = 0.0, d56 = 0.0, d57 = 0.0, d58 = 0.0, d59 = 0.0, d60 = 0.0, i61 = 0, d62 = 0.0, d63 = 0.0, d64 = 0.0, i65 = 0, d66 = 0.0;
 32101  i6 = STACKTOP;
 32102  STACKTOP = STACKTOP + 64 | 0;
 32103  i8 = i6 | 0;
 32104  i9 = i6 + 16 | 0;
 32105  i10 = i6 + 32 | 0;
 32106  i11 = i6 + 48 | 0;
 32107  i12 = i1 + 8 | 0;
 32108  i13 = HEAP32[i12 >> 2] | 0;
 32109  i14 = i13 + 56 | 0;
 32110  i15 = HEAP32[i1 + 4 >> 2] | 0;
 32111  d16 = +HEAPF32[i15 + 28 >> 2] * +HEAPF32[i15 + 12 >> 2];
 32112  d17 = d16 + d7;
 32113  d7 = +HEAPF32[i14 >> 2];
 32114  d18 = +HEAPF32[i13 + 72 >> 2] - d7;
 32115  d19 = +HEAPF32[i13 + 60 >> 2];
 32116  d20 = +HEAPF32[i13 + 76 >> 2] - d19;
 32117  d21 = +HEAPF32[i13 + 64 >> 2];
 32118  d22 = +HEAPF32[i13 + 80 >> 2] - d21;
 32119  d23 = +HEAPF32[i13 + 88 >> 2] - d7;
 32120  d24 = +HEAPF32[i13 + 92 >> 2] - d19;
 32121  d25 = +HEAPF32[i13 + 96 >> 2] - d21;
 32122  d26 = d20 * d25 - d22 * d24;
 32123  d27 = d22 * d23 - d18 * d25;
 32124  d25 = d18 * d24 - d20 * d23;
 32125  d23 = 1.0 / +Math_sqrt(+(d25 * d25 + (d26 * d26 + d27 * d27)));
 32126  d20 = d23 * d26;
 32127  d26 = d23 * d27;
 32128  d27 = d23 * d25;
 32129  i15 = i2 | 0;
 32130  d25 = +HEAPF32[i15 >> 2];
 32131  i1 = i2 + 4 | 0;
 32132  d23 = +HEAPF32[i1 >> 2];
 32133  i28 = i2 + 8 | 0;
 32134  d24 = +HEAPF32[i28 >> 2];
 32135  d18 = (d25 - d7) * d20 + d26 * (d23 - d19) + d27 * (d24 - d21);
 32136  if (d18 < 0.0) {
 32137   d29 = d18 * -1.0;
 32138   d30 = d20 * -1.0;
 32139   d31 = d26 * -1.0;
 32140   d32 = d27 * -1.0;
 32141  } else {
 32142   d29 = d18;
 32143   d30 = d20;
 32144   d31 = d26;
 32145   d32 = d27;
 32147  if (d29 >= d17) {
 32148   i33 = 0;
 32149   STACKTOP = i6;
 32150   return i33 | 0;
 32152  i34 = i8;
 32153  i35 = i2;
 32154  HEAP32[i34 >> 2] = HEAP32[i35 >> 2];
 32155  HEAP32[i34 + 4 >> 2] = HEAP32[i35 + 4 >> 2];
 32156  HEAP32[i34 + 8 >> 2] = HEAP32[i35 + 8 >> 2];
 32157  HEAP32[i34 + 12 >> 2] = HEAP32[i35 + 12 >> 2];
 32158  HEAPF32[i9 >> 2] = d30;
 32159  HEAPF32[i9 + 4 >> 2] = d31;
 32160  HEAPF32[i9 + 8 >> 2] = d32;
 32161  HEAPF32[i9 + 12 >> 2] = 0.0;
 32162  do {
 32163   if (__ZN22SphereTriangleDetector15pointInTriangleEPK9btVector3RS1_PS0_(0, i14, i9, i8) | 0) {
 32164    d36 = d25 - d30 * d29;
 32165    d37 = d23 - d31 * d29;
 32166    d38 = d24 - d32 * d29;
 32167    d39 = d25;
 32168    d40 = d23;
 32169    d41 = d24;
 32170    d42 = d17 * d17;
 32171   } else {
 32172    d27 = d17 * d17;
 32173    if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i13 >> 2] | 0) + 92 >> 2] & 127](i13) | 0) <= 0) {
 32174     i33 = 0;
 32175     STACKTOP = i6;
 32176     return i33 | 0;
 32178    i35 = i10 | 0;
 32179    i34 = i10 + 4 | 0;
 32180    i2 = i10 + 8 | 0;
 32181    i43 = i11 | 0;
 32182    i44 = i11 + 4 | 0;
 32183    i45 = i11 + 8 | 0;
 32184    d26 = 0.0;
 32185    d20 = 0.0;
 32186    d18 = 0.0;
 32187    i46 = 0;
 32188    i47 = 0;
 32189    while (1) {
 32190     i48 = HEAP32[i12 >> 2] | 0;
 32191     FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i48 >> 2] | 0) + 96 >> 2] & 127](i48, i46, i10, i11);
 32192     d21 = +HEAPF32[i35 >> 2];
 32193     d19 = +HEAPF32[i15 >> 2] - d21;
 32194     d7 = +HEAPF32[i34 >> 2];
 32195     d22 = +HEAPF32[i1 >> 2] - d7;
 32196     d49 = +HEAPF32[i2 >> 2];
 32197     d50 = +HEAPF32[i28 >> 2] - d49;
 32198     d51 = +HEAPF32[i43 >> 2] - d21;
 32199     d52 = +HEAPF32[i44 >> 2] - d7;
 32200     d53 = +HEAPF32[i45 >> 2] - d49;
 32201     d54 = d19 * d51 + d22 * d52 + d50 * d53;
 32202     do {
 32203      if (d54 > 0.0) {
 32204       d55 = d51 * d51 + d52 * d52 + d53 * d53;
 32205       if (d54 < d55) {
 32206        d56 = d54 / d55;
 32207        d57 = d56;
 32208        d58 = d19 - d51 * d56;
 32209        d59 = d22 - d52 * d56;
 32210        d60 = d50 - d53 * d56;
 32211        break;
 32212       } else {
 32213        d57 = 1.0;
 32214        d58 = d19 - d51;
 32215        d59 = d22 - d52;
 32216        d60 = d50 - d53;
 32217        break;
 32219      } else {
 32220       d57 = 0.0;
 32221       d58 = d19;
 32222       d59 = d22;
 32223       d60 = d50;
 32225     } while (0);
 32226     if (d60 * d60 + (d59 * d59 + d58 * d58) < d27) {
 32227      i61 = 1;
 32228      d62 = d21 + d51 * d57;
 32229      d63 = d7 + d52 * d57;
 32230      d64 = d49 + d53 * d57;
 32231     } else {
 32232      i61 = i47;
 32233      d62 = d18;
 32234      d63 = d20;
 32235      d64 = d26;
 32237     i48 = i46 + 1 | 0;
 32238     i65 = HEAP32[i12 >> 2] | 0;
 32239     if ((i48 | 0) < (FUNCTION_TABLE_ii[HEAP32[(HEAP32[i65 >> 2] | 0) + 92 >> 2] & 127](i65) | 0)) {
 32240      d26 = d64;
 32241      d20 = d63;
 32242      d18 = d62;
 32243      i46 = i48;
 32244      i47 = i61;
 32245     } else {
 32246      break;
 32249    if ((i61 & 1) == 0) {
 32250     i33 = 0;
 32251     STACKTOP = i6;
 32252     return i33 | 0;
 32253    } else {
 32254     d36 = d62;
 32255     d37 = d63;
 32256     d38 = d64;
 32257     d39 = +HEAPF32[i15 >> 2];
 32258     d40 = +HEAPF32[i1 >> 2];
 32259     d41 = +HEAPF32[i28 >> 2];
 32260     d42 = d27;
 32261     break;
 32264  } while (0);
 32265  d64 = d39 - d36;
 32266  d39 = d40 - d37;
 32267  d40 = d41 - d38;
 32268  d41 = d40 * d40 + (d39 * d39 + d64 * d64);
 32269  if (d41 >= d42) {
 32270   i33 = 0;
 32271   STACKTOP = i6;
 32272   return i33 | 0;
 32274  if (d41 > 1.1920928955078125e-7) {
 32275   d42 = +Math_sqrt(+d41);
 32276   HEAPF32[i4 + 12 >> 2] = 0.0;
 32277   d41 = 1.0 / d42;
 32278   HEAPF32[i4 >> 2] = d64 * d41;
 32279   HEAPF32[i4 + 4 >> 2] = d39 * d41;
 32280   HEAPF32[i4 + 8 >> 2] = d40 * d41;
 32281   HEAPF32[i3 >> 2] = d36;
 32282   HEAPF32[i3 + 4 >> 2] = d37;
 32283   HEAPF32[i3 + 8 >> 2] = d38;
 32284   HEAPF32[i3 + 12 >> 2] = 0.0;
 32285   d66 = d16 - d42;
 32286  } else {
 32287   HEAPF32[i4 >> 2] = d30;
 32288   HEAPF32[i4 + 4 >> 2] = d31;
 32289   HEAPF32[i4 + 8 >> 2] = d32;
 32290   HEAPF32[i4 + 12 >> 2] = 0.0;
 32291   HEAPF32[i3 >> 2] = d36;
 32292   HEAPF32[i3 + 4 >> 2] = d37;
 32293   HEAPF32[i3 + 8 >> 2] = d38;
 32294   HEAPF32[i3 + 12 >> 2] = 0.0;
 32295   d66 = d16;
 32297  HEAPF32[i5 >> 2] = -0.0 - d66;
 32298  i33 = 1;
 32299  STACKTOP = i6;
 32300  return i33 | 0;
 32302 function __ZN20btPersistentManifold16sortCachedPointsERK15btManifoldPoint(i1, i2) {
 32303  i1 = i1 | 0;
 32304  i2 = i2 | 0;
 32305  var d3 = 0.0, d4 = 0.0, i5 = 0, d6 = 0.0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, i23 = 0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, d41 = 0.0, d42 = 0.0, d43 = 0.0, d44 = 0.0, d45 = 0.0, d46 = 0.0, d47 = 0.0, d48 = 0.0, d49 = 0.0, d50 = 0.0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0, d55 = 0.0, d56 = 0.0, d57 = 0.0, d58 = 0.0, d59 = 0.0, d60 = 0.0, d61 = 0.0, d62 = 0.0, d63 = 0.0, d64 = 0.0, d65 = 0.0, d66 = 0.0, d67 = 0.0, d68 = 0.0, d69 = 0.0, d70 = 0.0, d71 = 0.0, d72 = 0.0, d73 = 0.0, d74 = 0.0, d75 = 0.0, d76 = 0.0, d77 = 0.0, d78 = 0.0, i79 = 0, i80 = 0, i81 = 0, d82 = 0.0, i83 = 0, i84 = 0, d85 = 0.0, i86 = 0, i87 = 0, d88 = 0.0, i89 = 0, i90 = 0;
 32306  d3 = +HEAPF32[i2 + 80 >> 2];
 32307  d4 = +HEAPF32[i1 + 84 >> 2];
 32308  i5 = d4 < d3;
 32309  d6 = i5 ? d4 : d3;
 32310  d3 = +HEAPF32[i1 + 360 >> 2];
 32311  i7 = d3 < d6;
 32312  d4 = i7 ? d3 : d6;
 32313  d6 = +HEAPF32[i1 + 636 >> 2];
 32314  i8 = d6 < d4;
 32315  i9 = +HEAPF32[i1 + 912 >> 2] < (i8 ? d6 : d4);
 32316  i10 = i9 ? 3 : i8 ? 2 : i7 ? 1 : (i5 ^ 1) << 31 >> 31;
 32317  d4 = +HEAPF32[i2 >> 2];
 32318  do {
 32319   if ((i10 | 0) == 0) {
 32320    d11 = 0.0;
 32321    d12 = +HEAPF32[i2 + 4 >> 2];
 32322    d13 = +HEAPF32[i2 + 8 >> 2];
 32323    d14 = +HEAPF32[i1 + 832 >> 2];
 32324    d15 = +HEAPF32[i1 + 556 >> 2];
 32325    d16 = +HEAPF32[i1 + 836 >> 2];
 32326    d17 = +HEAPF32[i1 + 560 >> 2];
 32327    d18 = +HEAPF32[i1 + 840 >> 2];
 32328    d19 = +HEAPF32[i1 + 564 >> 2];
 32329    d20 = +HEAPF32[i1 + 280 >> 2];
 32330    d21 = +HEAPF32[i1 + 284 >> 2];
 32331    d22 = +HEAPF32[i1 + 288 >> 2];
 32332    i23 = 1719;
 32333   } else {
 32334    d6 = +HEAPF32[i1 + 280 >> 2];
 32335    d3 = d4 - d6;
 32336    d24 = +HEAPF32[i2 + 4 >> 2];
 32337    d25 = +HEAPF32[i1 + 284 >> 2];
 32338    d26 = d24 - d25;
 32339    d27 = +HEAPF32[i2 + 8 >> 2];
 32340    d28 = +HEAPF32[i1 + 288 >> 2];
 32341    d29 = d27 - d28;
 32342    d30 = +HEAPF32[i1 + 832 >> 2];
 32343    d31 = +HEAPF32[i1 + 556 >> 2];
 32344    d32 = d30 - d31;
 32345    d33 = +HEAPF32[i1 + 836 >> 2];
 32346    d34 = +HEAPF32[i1 + 560 >> 2];
 32347    d35 = d33 - d34;
 32348    d36 = +HEAPF32[i1 + 840 >> 2];
 32349    d37 = +HEAPF32[i1 + 564 >> 2];
 32350    d38 = d36 - d37;
 32351    d39 = d26 * d38 - d29 * d35;
 32352    d40 = d29 * d32 - d3 * d38;
 32353    d38 = d3 * d35 - d26 * d32;
 32354    d32 = d38 * d38 + (d39 * d39 + d40 * d40);
 32355    if ((i10 | 0) != 1) {
 32356     d11 = d32;
 32357     d12 = d24;
 32358     d13 = d27;
 32359     d14 = d30;
 32360     d15 = d31;
 32361     d16 = d33;
 32362     d17 = d34;
 32363     d18 = d36;
 32364     d19 = d37;
 32365     d20 = d6;
 32366     d21 = d25;
 32367     d22 = d28;
 32368     i23 = 1719;
 32369     break;
 32371    d41 = 0.0;
 32372    d42 = d32;
 32373    d43 = d31;
 32374    d44 = d34;
 32375    d45 = d37;
 32376    d46 = d24;
 32377    d47 = d27;
 32378    d48 = d30;
 32379    d49 = d33;
 32380    d50 = d36;
 32381    d51 = +HEAPF32[i1 + 4 >> 2];
 32382    d52 = +HEAPF32[i1 + 8 >> 2];
 32383    d53 = +HEAPF32[i1 + 12 >> 2];
 32384    d54 = d6;
 32385    d55 = d25;
 32386    d56 = d28;
 32387    i23 = 1720;
 32389  } while (0);
 32390  if ((i23 | 0) == 1719) {
 32391   d28 = +HEAPF32[i1 + 4 >> 2];
 32392   d25 = d4 - d28;
 32393   d6 = +HEAPF32[i1 + 8 >> 2];
 32394   d36 = d12 - d6;
 32395   d33 = +HEAPF32[i1 + 12 >> 2];
 32396   d30 = d13 - d33;
 32397   d27 = d14 - d15;
 32398   d24 = d16 - d17;
 32399   d37 = d18 - d19;
 32400   d34 = d37 * d36 - d24 * d30;
 32401   d31 = d27 * d30 - d37 * d25;
 32402   d37 = d24 * d25 - d27 * d36;
 32403   d36 = d37 * d37 + (d34 * d34 + d31 * d31);
 32404   if ((i10 | 0) == 2) {
 32405    d57 = 0.0;
 32406    d58 = d36;
 32407    d59 = d11;
 32408    d60 = d28;
 32409    d61 = d12;
 32410    d62 = d6;
 32411    d63 = d13;
 32412    d64 = d33;
 32413    d65 = d15;
 32414    d66 = d17;
 32415    d67 = d19;
 32416    d68 = d20;
 32417    d69 = d21;
 32418    d70 = d22;
 32419   } else {
 32420    d41 = d36;
 32421    d42 = d11;
 32422    d43 = d15;
 32423    d44 = d17;
 32424    d45 = d19;
 32425    d46 = d12;
 32426    d47 = d13;
 32427    d48 = d14;
 32428    d49 = d16;
 32429    d50 = d18;
 32430    d51 = d28;
 32431    d52 = d6;
 32432    d53 = d33;
 32433    d54 = d20;
 32434    d55 = d21;
 32435    d56 = d22;
 32436    i23 = 1720;
 32439  do {
 32440   if ((i23 | 0) == 1720) {
 32441    d22 = d4 - d51;
 32442    d21 = d46 - d52;
 32443    d20 = d47 - d53;
 32444    d33 = d48 - d54;
 32445    d6 = d49 - d55;
 32446    d28 = d50 - d56;
 32447    d18 = d28 * d21 - d6 * d20;
 32448    d16 = d33 * d20 - d22 * d28;
 32449    d28 = d22 * d6 - d33 * d21;
 32450    d21 = d28 * d28 + (d16 * d16 + d18 * d18);
 32451    if (i9) {
 32452     d71 = 0.0;
 32453     d72 = d21;
 32454     d73 = d41;
 32455     d74 = d42;
 32456    } else {
 32457     d57 = d21;
 32458     d58 = d41;
 32459     d59 = d42;
 32460     d60 = d51;
 32461     d61 = d46;
 32462     d62 = d52;
 32463     d63 = d47;
 32464     d64 = d53;
 32465     d65 = d43;
 32466     d66 = d44;
 32467     d67 = d45;
 32468     d68 = d54;
 32469     d69 = d55;
 32470     d70 = d56;
 32471     break;
 32473    d75 = +Math_abs(+d74);
 32474    d76 = +Math_abs(+d73);
 32475    d77 = +Math_abs(+d72);
 32476    d78 = +Math_abs(+d71);
 32477    i79 = d75 > -999999984306749400.0;
 32478    i80 = i79 ^ 1;
 32479    i81 = i80 << 31 >> 31;
 32480    d82 = i79 ? d75 : -999999984306749400.0;
 32481    i83 = d76 > d82;
 32482    i84 = i83 ? 1 : i81;
 32483    d85 = i83 ? d76 : d82;
 32484    i86 = d77 > d85;
 32485    i87 = i86 ? 2 : i84;
 32486    d88 = i86 ? d77 : d85;
 32487    i89 = d78 > d88;
 32488    i90 = i89 ? 3 : i87;
 32489    return i90 | 0;
 32491  } while (0);
 32492  d56 = d4 - d60;
 32493  d60 = d61 - d62;
 32494  d62 = d63 - d64;
 32495  d64 = d65 - d68;
 32496  d68 = d66 - d69;
 32497  d69 = d67 - d70;
 32498  d70 = d69 * d60 - d68 * d62;
 32499  d67 = d64 * d62 - d69 * d56;
 32500  d69 = d68 * d56 - d64 * d60;
 32501  d71 = d69 * d69 + (d70 * d70 + d67 * d67);
 32502  d72 = d57;
 32503  d73 = d58;
 32504  d74 = d59;
 32505  d75 = +Math_abs(+d74);
 32506  d76 = +Math_abs(+d73);
 32507  d77 = +Math_abs(+d72);
 32508  d78 = +Math_abs(+d71);
 32509  i79 = d75 > -999999984306749400.0;
 32510  i80 = i79 ^ 1;
 32511  i81 = i80 << 31 >> 31;
 32512  d82 = i79 ? d75 : -999999984306749400.0;
 32513  i83 = d76 > d82;
 32514  i84 = i83 ? 1 : i81;
 32515  d85 = i83 ? d76 : d82;
 32516  i86 = d77 > d85;
 32517  i87 = i86 ? 2 : i84;
 32518  d88 = i86 ? d77 : d85;
 32519  i89 = d78 > d88;
 32520  i90 = i89 ? 3 : i87;
 32521  return i90 | 0;
 32523 function __ZN27btPolyhedralContactClipping19clipHullAgainstHullERK9btVector3RK18btConvexPolyhedronS5_RK11btTransformS8_ffRN36btDiscreteCollisionDetectorInterface6ResultE(i1, i2, i3, i4, i5, d6, d7, i8) {
 32524  i1 = i1 | 0;
 32525  i2 = i2 | 0;
 32526  i3 = i3 | 0;
 32527  i4 = i4 | 0;
 32528  i5 = i5 | 0;
 32529  d6 = +d6;
 32530  d7 = +d7;
 32531  i8 = i8 | 0;
 32532  var i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, d14 = 0.0, i15 = 0, d16 = 0.0, i17 = 0, d18 = 0.0, i19 = 0, d20 = 0.0, i21 = 0, d22 = 0.0, i23 = 0, d24 = 0.0, i25 = 0, d26 = 0.0, i27 = 0, d28 = 0.0, i29 = 0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, i34 = 0, d35 = 0.0, i36 = 0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, d52 = 0.0, i53 = 0, i54 = 0, i55 = 0, d56 = 0.0, d57 = 0.0, d58 = 0.0, d59 = 0.0, d60 = 0.0, d61 = 0.0, i62 = 0, i63 = 0, i64 = 0, i65 = 0, i66 = 0, i67 = 0;
 32533  i9 = STACKTOP;
 32534  STACKTOP = STACKTOP + 24 | 0;
 32535  i10 = i9 | 0;
 32536  i11 = HEAP32[i3 + 28 >> 2] | 0;
 32537  if ((i11 | 0) <= 0) {
 32538   STACKTOP = i9;
 32539   return;
 32541  i12 = HEAP32[i3 + 36 >> 2] | 0;
 32542  i13 = i5 | 0;
 32543  d14 = +HEAPF32[i13 >> 2];
 32544  i15 = i5 + 4 | 0;
 32545  d16 = +HEAPF32[i15 >> 2];
 32546  i17 = i5 + 8 | 0;
 32547  d18 = +HEAPF32[i17 >> 2];
 32548  i19 = i5 + 16 | 0;
 32549  d20 = +HEAPF32[i19 >> 2];
 32550  i21 = i5 + 20 | 0;
 32551  d22 = +HEAPF32[i21 >> 2];
 32552  i23 = i5 + 24 | 0;
 32553  d24 = +HEAPF32[i23 >> 2];
 32554  i25 = i5 + 32 | 0;
 32555  d26 = +HEAPF32[i25 >> 2];
 32556  i27 = i5 + 36 | 0;
 32557  d28 = +HEAPF32[i27 >> 2];
 32558  i29 = i5 + 40 | 0;
 32559  d30 = +HEAPF32[i29 >> 2];
 32560  d31 = +HEAPF32[i1 >> 2];
 32561  d32 = +HEAPF32[i1 + 4 >> 2];
 32562  d33 = +HEAPF32[i1 + 8 >> 2];
 32563  i34 = 0;
 32564  d35 = -3.4028234663852886e+38;
 32565  i36 = -1;
 32566  while (1) {
 32567   d37 = +HEAPF32[i12 + (i34 * 56 | 0) + 40 >> 2];
 32568   d38 = +HEAPF32[i12 + (i34 * 56 | 0) + 44 >> 2];
 32569   d39 = +HEAPF32[i12 + (i34 * 56 | 0) + 48 >> 2];
 32570   d40 = d33 * (d26 * d37 + d28 * d38 + d30 * d39) + (d31 * (d14 * d37 + d16 * d38 + d18 * d39) + d32 * (d20 * d37 + d22 * d38 + d24 * d39));
 32571   i41 = d40 > d35;
 32572   i42 = i41 ? i34 : i36;
 32573   i43 = i34 + 1 | 0;
 32574   if ((i43 | 0) < (i11 | 0)) {
 32575    i34 = i43;
 32576    d35 = i41 ? d40 : d35;
 32577    i36 = i42;
 32578   } else {
 32579    break;
 32582  if ((i42 | 0) < 0) {
 32583   STACKTOP = i9;
 32584   return;
 32586  i36 = i10 + 16 | 0;
 32587  HEAP8[i36] = 1;
 32588  i34 = i10 + 12 | 0;
 32589  HEAP32[i34 >> 2] = 0;
 32590  i11 = i10 + 4 | 0;
 32591  HEAP32[i11 >> 2] = 0;
 32592  i41 = i10 + 8 | 0;
 32593  HEAP32[i41 >> 2] = 0;
 32594  i43 = HEAP32[i12 + (i42 * 56 | 0) + 4 >> 2] | 0;
 32595  L553 : do {
 32596   if ((i43 | 0) > 0) {
 32597    i44 = i12 + (i42 * 56 | 0) + 12 | 0;
 32598    i45 = i3 + 16 | 0;
 32599    i46 = i5 + 48 | 0;
 32600    i47 = i5 + 52 | 0;
 32601    i48 = i5 + 56 | 0;
 32602    i49 = 0;
 32603    i50 = 0;
 32604    i51 = 0;
 32605    d35 = d14;
 32606    d32 = d16;
 32607    d31 = d18;
 32608    d33 = d20;
 32609    d40 = d22;
 32610    d39 = d24;
 32611    d38 = d26;
 32612    d37 = d28;
 32613    d52 = d30;
 32614    i53 = 0;
 32615    while (1) {
 32616     i54 = HEAP32[(HEAP32[i44 >> 2] | 0) + (i49 << 2) >> 2] | 0;
 32617     i55 = HEAP32[i45 >> 2] | 0;
 32618     d56 = +HEAPF32[i55 + (i54 << 4) >> 2];
 32619     d57 = +HEAPF32[i55 + (i54 << 4) + 4 >> 2];
 32620     d58 = +HEAPF32[i55 + (i54 << 4) + 8 >> 2];
 32621     d59 = +HEAPF32[i46 >> 2] + (d35 * d56 + d32 * d57 + d31 * d58);
 32622     d60 = +HEAPF32[i47 >> 2] + (d56 * d33 + d57 * d40 + d58 * d39);
 32623     d61 = +HEAPF32[i48 >> 2] + (d56 * d38 + d57 * d37 + d58 * d52);
 32624     do {
 32625      if ((i50 | 0) == (i51 | 0)) {
 32626       i54 = (i51 | 0) == 0 ? 1 : i51 << 1;
 32627       if ((i51 | 0) >= (i54 | 0)) {
 32628        i62 = i51;
 32629        i63 = i53;
 32630        break;
 32632       if ((i54 | 0) == 0) {
 32633        i64 = 0;
 32634       } else {
 32635        i64 = __Z22btAlignedAllocInternalji(i54 << 4, 16) | 0;
 32637       if ((i51 | 0) > 0) {
 32638        i55 = 0;
 32639        do {
 32640         i65 = i64 + (i55 << 4) | 0;
 32641         if ((i65 | 0) != 0) {
 32642          i66 = i65;
 32643          i65 = i53 + (i55 << 4) | 0;
 32644          HEAP32[i66 >> 2] = HEAP32[i65 >> 2];
 32645          HEAP32[i66 + 4 >> 2] = HEAP32[i65 + 4 >> 2];
 32646          HEAP32[i66 + 8 >> 2] = HEAP32[i65 + 8 >> 2];
 32647          HEAP32[i66 + 12 >> 2] = HEAP32[i65 + 12 >> 2];
 32649         i55 = i55 + 1 | 0;
 32650        } while ((i55 | 0) < (i51 | 0));
 32652       if ((i53 | 0) != 0) {
 32653        __Z21btAlignedFreeInternalPv(i53);
 32654        HEAP32[i34 >> 2] = 0;
 32656       HEAP8[i36] = 1;
 32657       HEAP32[i34 >> 2] = i64;
 32658       HEAP32[i41 >> 2] = i54;
 32659       i62 = i51;
 32660       i63 = i64;
 32661      } else {
 32662       i62 = i50;
 32663       i63 = i53;
 32665     } while (0);
 32666     i55 = i63 + (i62 << 4) | 0;
 32667     if ((i55 | 0) == 0) {
 32668      i67 = i62;
 32669     } else {
 32670      HEAPF32[i55 >> 2] = d59;
 32671      HEAPF32[i63 + (i62 << 4) + 4 >> 2] = d60;
 32672      HEAPF32[i63 + (i62 << 4) + 8 >> 2] = d61;
 32673      HEAPF32[i63 + (i62 << 4) + 12 >> 2] = 0.0;
 32674      i67 = HEAP32[i11 >> 2] | 0;
 32676     i55 = i67 + 1 | 0;
 32677     HEAP32[i11 >> 2] = i55;
 32678     i65 = i49 + 1 | 0;
 32679     if ((i65 | 0) >= (i43 | 0)) {
 32680      break L553;
 32682     i49 = i65;
 32683     i50 = i55;
 32684     i51 = HEAP32[i41 >> 2] | 0;
 32685     d35 = +HEAPF32[i13 >> 2];
 32686     d32 = +HEAPF32[i15 >> 2];
 32687     d31 = +HEAPF32[i17 >> 2];
 32688     d33 = +HEAPF32[i19 >> 2];
 32689     d40 = +HEAPF32[i21 >> 2];
 32690     d39 = +HEAPF32[i23 >> 2];
 32691     d38 = +HEAPF32[i25 >> 2];
 32692     d37 = +HEAPF32[i27 >> 2];
 32693     d52 = +HEAPF32[i29 >> 2];
 32694     i53 = i63;
 32697  } while (0);
 32698  __ZN27btPolyhedralContactClipping19clipFaceAgainstHullERK9btVector3RK18btConvexPolyhedronRK11btTransformR20btAlignedObjectArrayIS0_EffRN36btDiscreteCollisionDetectorInterface6ResultE(i1, i2, i4, i10, d6, d7, i8);
 32699  i8 = HEAP32[i34 >> 2] | 0;
 32700  if ((i8 | 0) != 0) {
 32701   if ((HEAP8[i36] | 0) != 0) {
 32702    __Z21btAlignedFreeInternalPv(i8);
 32704   HEAP32[i34 >> 2] = 0;
 32706  HEAP8[i36] = 1;
 32707  HEAP32[i34 >> 2] = 0;
 32708  HEAP32[i11 >> 2] = 0;
 32709  HEAP32[i41 >> 2] = 0;
 32710  STACKTOP = i9;
 32711  return;
 32713 function __ZNK6btDbvt15rayTestInternalEPK10btDbvtNodeRK9btVector3S5_S5_PjfS5_S5_RNS_8ICollideE(i1, i2, i3, i4, i5, i6, d7, i8, i9, i10) {
 32714  i1 = i1 | 0;
 32715  i2 = i2 | 0;
 32716  i3 = i3 | 0;
 32717  i4 = i4 | 0;
 32718  i5 = i5 | 0;
 32719  i6 = i6 | 0;
 32720  d7 = +d7;
 32721  i8 = i8 | 0;
 32722  i9 = i9 | 0;
 32723  i10 = i10 | 0;
 32724  var i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, d36 = 0.0, d37 = 0.0, i38 = 0, d39 = 0.0, d40 = 0.0, d41 = 0.0, d42 = 0.0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, d48 = 0.0, d49 = 0.0, d50 = 0.0, d51 = 0.0, i52 = 0, i53 = 0, i54 = 0, i55 = 0, i56 = 0, i57 = 0, i58 = 0, i59 = 0, i60 = 0, i61 = 0, i62 = 0, i63 = 0;
 32725  i4 = STACKTOP;
 32726  STACKTOP = STACKTOP + 32 | 0;
 32727  i1 = i4 | 0;
 32728  if ((i2 | 0) == 0) {
 32729   STACKTOP = i4;
 32730   return;
 32732  i11 = __Z22btAlignedAllocInternalji(512, 16) | 0;
 32733  i12 = 0;
 32734  do {
 32735   i13 = i11 + (i12 << 2) | 0;
 32736   if ((i13 | 0) != 0) {
 32737    HEAP32[i13 >> 2] = 0;
 32739   i12 = i12 + 1 | 0;
 32740  } while ((i12 | 0) < 128);
 32741  HEAP32[i11 >> 2] = i2;
 32742  i2 = i9 | 0;
 32743  i12 = i9 + 4 | 0;
 32744  i13 = i9 + 8 | 0;
 32745  i9 = i1 | 0;
 32746  i14 = i1 + 4 | 0;
 32747  i15 = i1 + 8 | 0;
 32748  i16 = i1 + 12 | 0;
 32749  i17 = i8 | 0;
 32750  i18 = i8 + 4 | 0;
 32751  i19 = i8 + 8 | 0;
 32752  i8 = i1 + 16 | 0;
 32753  i20 = i1 + 20 | 0;
 32754  i21 = i1 + 24 | 0;
 32755  i22 = i1 + 28 | 0;
 32756  i23 = i3 | 0;
 32757  i24 = i5 | 0;
 32758  i25 = i6 + 4 | 0;
 32759  i26 = i3 + 4 | 0;
 32760  i27 = i5 + 4 | 0;
 32761  i28 = i6 + 8 | 0;
 32762  i29 = i3 + 8 | 0;
 32763  i3 = i5 + 8 | 0;
 32764  i5 = i10;
 32765  i30 = 1;
 32766  i31 = 126;
 32767  i32 = 128;
 32768  i33 = 128;
 32769  i34 = i11;
 32770  while (1) {
 32771   i11 = i30 - 1 | 0;
 32772   i35 = HEAP32[i34 + (i11 << 2) >> 2] | 0;
 32773   d36 = +HEAPF32[i35 + 4 >> 2] - +HEAPF32[i12 >> 2];
 32774   d37 = +HEAPF32[i35 + 8 >> 2] - +HEAPF32[i13 >> 2];
 32775   HEAPF32[i9 >> 2] = +HEAPF32[i35 >> 2] - +HEAPF32[i2 >> 2];
 32776   HEAPF32[i14 >> 2] = d36;
 32777   HEAPF32[i15 >> 2] = d37;
 32778   HEAPF32[i16 >> 2] = 0.0;
 32779   d37 = +HEAPF32[i35 + 20 >> 2] - +HEAPF32[i18 >> 2];
 32780   d36 = +HEAPF32[i35 + 24 >> 2] - +HEAPF32[i19 >> 2];
 32781   HEAPF32[i8 >> 2] = +HEAPF32[i35 + 16 >> 2] - +HEAPF32[i17 >> 2];
 32782   HEAPF32[i20 >> 2] = d37;
 32783   HEAPF32[i21 >> 2] = d36;
 32784   HEAPF32[i22 >> 2] = 0.0;
 32785   i38 = HEAP32[i6 >> 2] | 0;
 32786   d36 = +HEAPF32[i23 >> 2];
 32787   d37 = +HEAPF32[i24 >> 2];
 32788   d39 = (+HEAPF32[i1 + (i38 << 4) >> 2] - d36) * d37;
 32789   d40 = d37 * (+HEAPF32[i1 + (1 - i38 << 4) >> 2] - d36);
 32790   i38 = HEAP32[i25 >> 2] | 0;
 32791   d36 = +HEAPF32[i26 >> 2];
 32792   d37 = +HEAPF32[i27 >> 2];
 32793   d41 = (+HEAPF32[i1 + (i38 << 4) + 4 >> 2] - d36) * d37;
 32794   d42 = d37 * (+HEAPF32[i1 + (1 - i38 << 4) + 4 >> 2] - d36);
 32795   do {
 32796    if (d39 > d42 | d41 > d40) {
 32797     i43 = i11;
 32798     i44 = i31;
 32799     i45 = i32;
 32800     i46 = i33;
 32801     i47 = i34;
 32802    } else {
 32803     d36 = d41 > d39 ? d41 : d39;
 32804     d37 = d42 < d40 ? d42 : d40;
 32805     i38 = HEAP32[i28 >> 2] | 0;
 32806     d48 = +HEAPF32[i29 >> 2];
 32807     d49 = +HEAPF32[i3 >> 2];
 32808     d50 = (+HEAPF32[i1 + (i38 << 4) + 8 >> 2] - d48) * d49;
 32809     d51 = d49 * (+HEAPF32[i1 + (1 - i38 << 4) + 8 >> 2] - d48);
 32810     if (d36 > d51 | d50 > d37) {
 32811      i43 = i11;
 32812      i44 = i31;
 32813      i45 = i32;
 32814      i46 = i33;
 32815      i47 = i34;
 32816      break;
 32818     if ((d50 > d36 ? d50 : d36) >= d7) {
 32819      i43 = i11;
 32820      i44 = i31;
 32821      i45 = i32;
 32822      i46 = i33;
 32823      i47 = i34;
 32824      break;
 32826     if ((d51 < d37 ? d51 : d37) <= 0.0) {
 32827      i43 = i11;
 32828      i44 = i31;
 32829      i45 = i32;
 32830      i46 = i33;
 32831      i47 = i34;
 32832      break;
 32834     i38 = i35 + 40 | 0;
 32835     if ((HEAP32[i38 >> 2] | 0) == 0) {
 32836      FUNCTION_TABLE_vii[HEAP32[(HEAP32[i5 >> 2] | 0) + 12 >> 2] & 127](i10, i35);
 32837      i43 = i11;
 32838      i44 = i31;
 32839      i45 = i32;
 32840      i46 = i33;
 32841      i47 = i34;
 32842      break;
 32844     if ((i11 | 0) > (i31 | 0)) {
 32845      i52 = i32 << 1;
 32846      if ((i32 | 0) < (i52 | 0)) {
 32847       do {
 32848        if ((i33 | 0) < (i52 | 0)) {
 32849         if ((i52 | 0) == 0) {
 32850          i53 = 0;
 32851         } else {
 32852          i53 = __Z22btAlignedAllocInternalji(i32 << 3, 16) | 0;
 32854         if ((i32 | 0) > 0) {
 32855          i54 = 0;
 32856          do {
 32857           i55 = i53 + (i54 << 2) | 0;
 32858           if ((i55 | 0) != 0) {
 32859            HEAP32[i55 >> 2] = HEAP32[i34 + (i54 << 2) >> 2];
 32861           i54 = i54 + 1 | 0;
 32862          } while ((i54 | 0) < (i32 | 0));
 32864         if ((i34 | 0) == 0) {
 32865          i56 = i52;
 32866          i57 = i53;
 32867          break;
 32869         __Z21btAlignedFreeInternalPv(i34);
 32870         i56 = i52;
 32871         i57 = i53;
 32872        } else {
 32873         i56 = i33;
 32874         i57 = i34;
 32876       } while (0);
 32877       i54 = i32;
 32878       while (1) {
 32879        i55 = i57 + (i54 << 2) | 0;
 32880        if ((i55 | 0) != 0) {
 32881         HEAP32[i55 >> 2] = 0;
 32883        i55 = i54 + 1 | 0;
 32884        if ((i55 | 0) < (i52 | 0)) {
 32885         i54 = i55;
 32886        } else {
 32887         i58 = i56;
 32888         i59 = i57;
 32889         break;
 32892      } else {
 32893       i58 = i33;
 32894       i59 = i34;
 32896      i60 = i52 - 2 | 0;
 32897      i61 = i52;
 32898      i62 = i58;
 32899      i63 = i59;
 32900     } else {
 32901      i60 = i31;
 32902      i61 = i32;
 32903      i62 = i33;
 32904      i63 = i34;
 32906     HEAP32[i63 + (i11 << 2) >> 2] = HEAP32[i35 + 36 >> 2];
 32907     HEAP32[i63 + (i30 << 2) >> 2] = HEAP32[i38 >> 2];
 32908     i43 = i30 + 1 | 0;
 32909     i44 = i60;
 32910     i45 = i61;
 32911     i46 = i62;
 32912     i47 = i63;
 32914   } while (0);
 32915   if ((i43 | 0) == 0) {
 32916    break;
 32917   } else {
 32918    i30 = i43;
 32919    i31 = i44;
 32920    i32 = i45;
 32921    i33 = i46;
 32922    i34 = i47;
 32925  if ((i47 | 0) == 0) {
 32926   STACKTOP = i4;
 32927   return;
 32929  __Z21btAlignedFreeInternalPv(i47);
 32930  STACKTOP = i4;
 32931  return;
 32933 function __ZN33btMinkowskiPenetrationDepthSolver24getPenetrationDirectionsEv() {
 32934  if ((HEAP8[14336] | 0) != 0) {
 32935   return 13144;
 32937  if ((___cxa_guard_acquire(14336) | 0) == 0) {
 32938   return 13144;
 32940  HEAPF32[3286] = 0.0;
 32941  HEAPF32[3287] = -0.0;
 32942  HEAPF32[3288] = -1.0;
 32943  HEAPF32[3289] = 0.0;
 32944  HEAPF32[3290] = .7236080169677734;
 32945  HEAPF32[3291] = -.5257250070571899;
 32946  HEAPF32[3292] = -.44721901416778564;
 32947  HEAPF32[3293] = 0.0;
 32948  HEAPF32[3294] = -.2763879895210266;
 32949  HEAPF32[3295] = -.8506489992141724;
 32950  HEAPF32[3296] = -.44721901416778564;
 32951  HEAPF32[3297] = 0.0;
 32952  HEAPF32[3298] = -.8944259881973267;
 32953  HEAPF32[3299] = -0.0;
 32954  HEAPF32[3300] = -.4472160041332245;
 32955  HEAPF32[3301] = 0.0;
 32956  HEAPF32[3302] = -.2763879895210266;
 32957  HEAPF32[3303] = .8506489992141724;
 32958  HEAPF32[3304] = -.44721999764442444;
 32959  HEAPF32[3305] = 0.0;
 32960  HEAPF32[3306] = .7236080169677734;
 32961  HEAPF32[3307] = .5257250070571899;
 32962  HEAPF32[3308] = -.44721901416778564;
 32963  HEAPF32[3309] = 0.0;
 32964  HEAPF32[3310] = .2763879895210266;
 32965  HEAPF32[3311] = -.8506489992141724;
 32966  HEAPF32[3312] = .44721999764442444;
 32967  HEAPF32[3313] = 0.0;
 32968  HEAPF32[3314] = -.7236080169677734;
 32969  HEAPF32[3315] = -.5257250070571899;
 32970  HEAPF32[3316] = .44721901416778564;
 32971  HEAPF32[3317] = 0.0;
 32972  HEAPF32[3318] = -.7236080169677734;
 32973  HEAPF32[3319] = .5257250070571899;
 32974  HEAPF32[3320] = .44721901416778564;
 32975  HEAPF32[3321] = 0.0;
 32976  HEAPF32[3322] = .2763879895210266;
 32977  HEAPF32[3323] = .8506489992141724;
 32978  HEAPF32[3324] = .44721901416778564;
 32979  HEAPF32[3325] = 0.0;
 32980  HEAPF32[3326] = .8944259881973267;
 32981  HEAPF32[3327] = 0.0;
 32982  HEAPF32[3328] = .4472160041332245;
 32983  HEAPF32[3329] = 0.0;
 32984  HEAPF32[3330] = -0.0;
 32985  HEAPF32[3331] = 0.0;
 32986  HEAPF32[3332] = 1.0;
 32987  HEAPF32[3333] = 0.0;
 32988  HEAPF32[3334] = .4253230094909668;
 32989  HEAPF32[3335] = -.3090110123157501;
 32990  HEAPF32[3336] = -.8506540060043335;
 32991  HEAPF32[3337] = 0.0;
 32992  HEAPF32[3338] = -.16245600581169128;
 32993  HEAPF32[3339] = -.49999499320983887;
 32994  HEAPF32[3340] = -.8506540060043335;
 32995  HEAPF32[3341] = 0.0;
 32996  HEAPF32[3342] = .2628690004348755;
 32997  HEAPF32[3343] = -.8090119957923889;
 32998  HEAPF32[3344] = -.525738000869751;
 32999  HEAPF32[3345] = 0.0;
 33000  HEAPF32[3346] = .4253230094909668;
 33001  HEAPF32[3347] = .3090110123157501;
 33002  HEAPF32[3348] = -.8506540060043335;
 33003  HEAPF32[3349] = 0.0;
 33004  HEAPF32[3350] = .8506479859352112;
 33005  HEAPF32[3351] = -0.0;
 33006  HEAPF32[3352] = -.5257359743118286;
 33007  HEAPF32[3353] = 0.0;
 33008  HEAPF32[3354] = -.5257300138473511;
 33009  HEAPF32[3355] = -0.0;
 33010  HEAPF32[3356] = -.8506519794464111;
 33011  HEAPF32[3357] = 0.0;
 33012  HEAPF32[3358] = -.6881899833679199;
 33013  HEAPF32[3359] = -.49999698996543884;
 33014  HEAPF32[3360] = -.5257359743118286;
 33015  HEAPF32[3361] = 0.0;
 33016  HEAPF32[3362] = -.16245600581169128;
 33017  HEAPF32[3363] = .49999499320983887;
 33018  HEAPF32[3364] = -.8506540060043335;
 33019  HEAPF32[3365] = 0.0;
 33020  HEAPF32[3366] = -.6881899833679199;
 33021  HEAPF32[3367] = .49999698996543884;
 33022  HEAPF32[3368] = -.5257359743118286;
 33023  HEAPF32[3369] = 0.0;
 33024  HEAPF32[3370] = .2628690004348755;
 33025  HEAPF32[3371] = .8090119957923889;
 33026  HEAPF32[3372] = -.525738000869751;
 33027  HEAPF32[3373] = 0.0;
 33028  HEAPF32[3374] = .9510579705238342;
 33029  HEAPF32[3375] = .3090130090713501;
 33030  HEAPF32[3376] = 0.0;
 33031  HEAPF32[3377] = 0.0;
 33032  HEAPF32[3378] = .9510579705238342;
 33033  HEAPF32[3379] = -.3090130090713501;
 33034  HEAPF32[3380] = 0.0;
 33035  HEAPF32[3381] = 0.0;
 33036  HEAPF32[3382] = .5877860188484192;
 33037  HEAPF32[3383] = -.80901700258255;
 33038  HEAPF32[3384] = 0.0;
 33039  HEAPF32[3385] = 0.0;
 33040  HEAPF32[3386] = 0.0;
 33041  HEAPF32[3387] = -1.0;
 33042  HEAPF32[3388] = 0.0;
 33043  HEAPF32[3389] = 0.0;
 33044  HEAPF32[3390] = -.5877860188484192;
 33045  HEAPF32[3391] = -.80901700258255;
 33046  HEAPF32[3392] = 0.0;
 33047  HEAPF32[3393] = 0.0;
 33048  HEAPF32[3394] = -.9510579705238342;
 33049  HEAPF32[3395] = -.3090130090713501;
 33050  HEAPF32[3396] = -0.0;
 33051  HEAPF32[3397] = 0.0;
 33052  HEAPF32[3398] = -.9510579705238342;
 33053  HEAPF32[3399] = .3090130090713501;
 33054  HEAPF32[3400] = -0.0;
 33055  HEAPF32[3401] = 0.0;
 33056  HEAPF32[3402] = -.5877860188484192;
 33057  HEAPF32[3403] = .80901700258255;
 33058  HEAPF32[3404] = -0.0;
 33059  HEAPF32[3405] = 0.0;
 33060  HEAPF32[3406] = -0.0;
 33061  HEAPF32[3407] = 1.0;
 33062  HEAPF32[3408] = -0.0;
 33063  HEAPF32[3409] = 0.0;
 33064  HEAPF32[3410] = .5877860188484192;
 33065  HEAPF32[3411] = .80901700258255;
 33066  HEAPF32[3412] = -0.0;
 33067  HEAPF32[3413] = 0.0;
 33068  HEAPF32[3414] = .6881899833679199;
 33069  HEAPF32[3415] = -.49999698996543884;
 33070  HEAPF32[3416] = .5257359743118286;
 33071  HEAPF32[3417] = 0.0;
 33072  HEAPF32[3418] = -.2628690004348755;
 33073  HEAPF32[3419] = -.8090119957923889;
 33074  HEAPF32[3420] = .525738000869751;
 33075  HEAPF32[3421] = 0.0;
 33076  HEAPF32[3422] = -.8506479859352112;
 33077  HEAPF32[3423] = 0.0;
 33078  HEAPF32[3424] = .5257359743118286;
 33079  HEAPF32[3425] = 0.0;
 33080  HEAPF32[3426] = -.2628690004348755;
 33081  HEAPF32[3427] = .8090119957923889;
 33082  HEAPF32[3428] = .525738000869751;
 33083  HEAPF32[3429] = 0.0;
 33084  HEAPF32[3430] = .6881899833679199;
 33085  HEAPF32[3431] = .49999698996543884;
 33086  HEAPF32[3432] = .5257359743118286;
 33087  HEAPF32[3433] = 0.0;
 33088  HEAPF32[3434] = .5257300138473511;
 33089  HEAPF32[3435] = 0.0;
 33090  HEAPF32[3436] = .8506519794464111;
 33091  HEAPF32[3437] = 0.0;
 33092  HEAPF32[3438] = .16245600581169128;
 33093  HEAPF32[3439] = -.49999499320983887;
 33094  HEAPF32[3440] = .8506540060043335;
 33095  HEAPF32[3441] = 0.0;
 33096  HEAPF32[3442] = -.4253230094909668;
 33097  HEAPF32[3443] = -.3090110123157501;
 33098  HEAPF32[3444] = .8506540060043335;
 33099  HEAPF32[3445] = 0.0;
 33100  HEAPF32[3446] = -.4253230094909668;
 33101  HEAPF32[3447] = .3090110123157501;
 33102  HEAPF32[3448] = .8506540060043335;
 33103  HEAPF32[3449] = 0.0;
 33104  HEAPF32[3450] = .16245600581169128;
 33105  HEAPF32[3451] = .49999499320983887;
 33106  HEAPF32[3452] = .8506540060043335;
 33107  HEAPF32[3453] = 0.0;
 33108  return 13144;
 33110 function __ZN6btDbvt7rayTestEPK10btDbvtNodeRK9btVector3S5_RNS_8ICollideE(i1, i2, i3, i4) {
 33111  i1 = i1 | 0;
 33112  i2 = i2 | 0;
 33113  i3 = i3 | 0;
 33114  i4 = i4 | 0;
 33115  var i5 = 0, i6 = 0, i7 = 0, d8 = 0.0, i9 = 0, d10 = 0.0, i11 = 0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, d38 = 0.0, d39 = 0.0, d40 = 0.0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, i50 = 0, i51 = 0, i52 = 0;
 33116  i5 = STACKTOP;
 33117  STACKTOP = STACKTOP + 32 | 0;
 33118  i6 = i5 | 0;
 33119  if ((i1 | 0) == 0) {
 33120   STACKTOP = i5;
 33121   return;
 33123  i7 = i2 | 0;
 33124  d8 = +HEAPF32[i3 >> 2] - +HEAPF32[i7 >> 2];
 33125  i9 = i2 + 4 | 0;
 33126  d10 = +HEAPF32[i3 + 4 >> 2] - +HEAPF32[i9 >> 2];
 33127  i11 = i2 + 8 | 0;
 33128  d12 = +HEAPF32[i3 + 8 >> 2] - +HEAPF32[i11 >> 2];
 33129  d13 = 1.0 / +Math_sqrt(+(d8 * d8 + d10 * d10 + d12 * d12));
 33130  d14 = d8 * d13;
 33131  d15 = d10 * d13;
 33132  d16 = d12 * d13;
 33133  if (d14 == 0.0) {
 33134   d17 = 999999984306749400.0;
 33135  } else {
 33136   d17 = 1.0 / d14;
 33138  if (d15 == 0.0) {
 33139   d18 = 999999984306749400.0;
 33140  } else {
 33141   d18 = 1.0 / d15;
 33143  if (d16 == 0.0) {
 33144   d19 = 999999984306749400.0;
 33145  } else {
 33146   d19 = 1.0 / d16;
 33148  i3 = d17 < 0.0 | 0;
 33149  i2 = d18 < 0.0 | 0;
 33150  i20 = d19 < 0.0 | 0;
 33151  d13 = d12 * d16 + (d8 * d14 + d10 * d15);
 33152  i21 = __Z22btAlignedAllocInternalji(512, 16) | 0;
 33153  i22 = 0;
 33154  do {
 33155   i23 = i21 + (i22 << 2) | 0;
 33156   if ((i23 | 0) != 0) {
 33157    HEAP32[i23 >> 2] = 0;
 33159   i22 = i22 + 1 | 0;
 33160  } while ((i22 | 0) < 128);
 33161  HEAP32[i21 >> 2] = i1;
 33162  i1 = i6;
 33163  i22 = i6 + 16 | 0;
 33164  i23 = i6 + (i3 << 4) | 0;
 33165  i24 = i6 + ((i3 ^ 1) << 4) | 0;
 33166  i3 = i6 + (i2 << 4) + 4 | 0;
 33167  i25 = i6 + ((i2 ^ 1) << 4) + 4 | 0;
 33168  i2 = i6 + (i20 << 4) + 8 | 0;
 33169  i26 = i6 + ((i20 ^ 1) << 4) + 8 | 0;
 33170  i20 = i4;
 33171  i6 = 1;
 33172  i27 = 126;
 33173  i28 = 128;
 33174  i29 = 128;
 33175  i30 = i21;
 33176  while (1) {
 33177   i21 = i6 - 1 | 0;
 33178   i31 = HEAP32[i30 + (i21 << 2) >> 2] | 0;
 33179   i32 = i31;
 33180   HEAP32[i1 >> 2] = HEAP32[i32 >> 2];
 33181   HEAP32[i1 + 4 >> 2] = HEAP32[i32 + 4 >> 2];
 33182   HEAP32[i1 + 8 >> 2] = HEAP32[i32 + 8 >> 2];
 33183   HEAP32[i1 + 12 >> 2] = HEAP32[i32 + 12 >> 2];
 33184   i32 = i31 + 16 | 0;
 33185   HEAP32[i22 >> 2] = HEAP32[i32 >> 2];
 33186   HEAP32[i22 + 4 >> 2] = HEAP32[i32 + 4 >> 2];
 33187   HEAP32[i22 + 8 >> 2] = HEAP32[i32 + 8 >> 2];
 33188   HEAP32[i22 + 12 >> 2] = HEAP32[i32 + 12 >> 2];
 33189   d15 = +HEAPF32[i7 >> 2];
 33190   d10 = d17 * (+HEAPF32[i23 >> 2] - d15);
 33191   d14 = d17 * (+HEAPF32[i24 >> 2] - d15);
 33192   d15 = +HEAPF32[i9 >> 2];
 33193   d8 = d18 * (+HEAPF32[i3 >> 2] - d15);
 33194   d16 = d18 * (+HEAPF32[i25 >> 2] - d15);
 33195   do {
 33196    if (d10 > d16 | d8 > d14) {
 33197     i33 = i21;
 33198     i34 = i27;
 33199     i35 = i28;
 33200     i36 = i29;
 33201     i37 = i30;
 33202    } else {
 33203     d15 = d8 > d10 ? d8 : d10;
 33204     d12 = d16 < d14 ? d16 : d14;
 33205     d38 = +HEAPF32[i11 >> 2];
 33206     d39 = d19 * (+HEAPF32[i2 >> 2] - d38);
 33207     d40 = d19 * (+HEAPF32[i26 >> 2] - d38);
 33208     if (d15 > d40 | d39 > d12) {
 33209      i33 = i21;
 33210      i34 = i27;
 33211      i35 = i28;
 33212      i36 = i29;
 33213      i37 = i30;
 33214      break;
 33216     if ((d39 > d15 ? d39 : d15) >= d13) {
 33217      i33 = i21;
 33218      i34 = i27;
 33219      i35 = i28;
 33220      i36 = i29;
 33221      i37 = i30;
 33222      break;
 33224     if ((d40 < d12 ? d40 : d12) <= 0.0) {
 33225      i33 = i21;
 33226      i34 = i27;
 33227      i35 = i28;
 33228      i36 = i29;
 33229      i37 = i30;
 33230      break;
 33232     i32 = i31 + 40 | 0;
 33233     if ((HEAP32[i32 >> 2] | 0) == 0) {
 33234      FUNCTION_TABLE_vii[HEAP32[(HEAP32[i20 >> 2] | 0) + 12 >> 2] & 127](i4, i31);
 33235      i33 = i21;
 33236      i34 = i27;
 33237      i35 = i28;
 33238      i36 = i29;
 33239      i37 = i30;
 33240      break;
 33242     if ((i21 | 0) > (i27 | 0)) {
 33243      i41 = i28 << 1;
 33244      if ((i28 | 0) < (i41 | 0)) {
 33245       do {
 33246        if ((i29 | 0) < (i41 | 0)) {
 33247         if ((i41 | 0) == 0) {
 33248          i42 = 0;
 33249         } else {
 33250          i42 = __Z22btAlignedAllocInternalji(i28 << 3, 16) | 0;
 33252         if ((i28 | 0) > 0) {
 33253          i43 = 0;
 33254          do {
 33255           i44 = i42 + (i43 << 2) | 0;
 33256           if ((i44 | 0) != 0) {
 33257            HEAP32[i44 >> 2] = HEAP32[i30 + (i43 << 2) >> 2];
 33259           i43 = i43 + 1 | 0;
 33260          } while ((i43 | 0) < (i28 | 0));
 33262         if ((i30 | 0) == 0) {
 33263          i45 = i41;
 33264          i46 = i42;
 33265          break;
 33267         __Z21btAlignedFreeInternalPv(i30);
 33268         i45 = i41;
 33269         i46 = i42;
 33270        } else {
 33271         i45 = i29;
 33272         i46 = i30;
 33274       } while (0);
 33275       i43 = i28;
 33276       while (1) {
 33277        i44 = i46 + (i43 << 2) | 0;
 33278        if ((i44 | 0) != 0) {
 33279         HEAP32[i44 >> 2] = 0;
 33281        i44 = i43 + 1 | 0;
 33282        if ((i44 | 0) < (i41 | 0)) {
 33283         i43 = i44;
 33284        } else {
 33285         i47 = i45;
 33286         i48 = i46;
 33287         break;
 33290      } else {
 33291       i47 = i29;
 33292       i48 = i30;
 33294      i49 = i41 - 2 | 0;
 33295      i50 = i41;
 33296      i51 = i47;
 33297      i52 = i48;
 33298     } else {
 33299      i49 = i27;
 33300      i50 = i28;
 33301      i51 = i29;
 33302      i52 = i30;
 33304     HEAP32[i52 + (i21 << 2) >> 2] = HEAP32[i31 + 36 >> 2];
 33305     HEAP32[i52 + (i6 << 2) >> 2] = HEAP32[i32 >> 2];
 33306     i33 = i6 + 1 | 0;
 33307     i34 = i49;
 33308     i35 = i50;
 33309     i36 = i51;
 33310     i37 = i52;
 33312   } while (0);
 33313   if ((i33 | 0) == 0) {
 33314    break;
 33315   } else {
 33316    i6 = i33;
 33317    i27 = i34;
 33318    i28 = i35;
 33319    i29 = i36;
 33320    i30 = i37;
 33323  if ((i37 | 0) == 0) {
 33324   STACKTOP = i5;
 33325   return;
 33327  __Z21btAlignedFreeInternalPv(i37);
 33328  STACKTOP = i5;
 33329  return;
 33331 function __ZN35btSequentialImpulseConstraintSolver29solveGroupCacheFriendlyFinishEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10) {
 33332  i1 = i1 | 0;
 33333  i2 = i2 | 0;
 33334  i3 = i3 | 0;
 33335  i4 = i4 | 0;
 33336  i5 = i5 | 0;
 33337  i6 = i6 | 0;
 33338  i7 = i7 | 0;
 33339  i8 = i8 | 0;
 33340  i9 = i9 | 0;
 33341  i10 = i10 | 0;
 33342  var i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, d18 = 0.0, d19 = 0.0, i20 = 0, i21 = 0, i22 = 0;
 33343  i10 = STACKTOP;
 33344  STACKTOP = STACKTOP + 408 | 0;
 33345  i9 = i10 | 0;
 33346  i7 = i10 + 136 | 0;
 33347  i6 = i10 + 272 | 0;
 33348  i5 = i1 + 8 | 0;
 33349  i4 = HEAP32[i5 >> 2] | 0;
 33350  if ((i4 | 0) > 0) {
 33351   i11 = HEAP32[i1 + 16 >> 2] | 0;
 33352   i12 = i1 + 56 | 0;
 33353   if ((HEAP32[i8 + 60 >> 2] & 8 | 0) == 0) {
 33354    i13 = 0;
 33355    do {
 33356     HEAPF32[(HEAP32[i11 + (i13 * 136 | 0) + 112 >> 2] | 0) + 112 >> 2] = +HEAPF32[i11 + (i13 * 136 | 0) + 84 >> 2];
 33357     i13 = i13 + 1 | 0;
 33358    } while ((i13 | 0) < (i4 | 0));
 33359   } else {
 33360    i13 = 0;
 33361    do {
 33362     i14 = HEAP32[i11 + (i13 * 136 | 0) + 112 >> 2] | 0;
 33363     HEAPF32[i14 + 112 >> 2] = +HEAPF32[i11 + (i13 * 136 | 0) + 84 >> 2];
 33364     i15 = HEAP32[i11 + (i13 * 136 | 0) + 100 >> 2] | 0;
 33365     i16 = HEAP32[i12 >> 2] | 0;
 33366     HEAPF32[i14 + 120 >> 2] = +HEAPF32[i16 + (i15 * 136 | 0) + 84 >> 2];
 33367     HEAPF32[i14 + 124 >> 2] = +HEAPF32[i16 + ((i15 + 1 | 0) * 136 | 0) + 84 >> 2];
 33368     i13 = i13 + 1 | 0;
 33369    } while ((i13 | 0) < (i4 | 0));
 33372  i4 = i1 + 28 | 0;
 33373  i13 = HEAP32[i4 >> 2] | 0;
 33374  if ((i13 | 0) > 0) {
 33375   i12 = HEAP32[i1 + 36 >> 2] | 0;
 33376   i11 = 0;
 33377   do {
 33378    i15 = HEAP32[i12 + (i11 * 136 | 0) + 112 >> 2] | 0;
 33379    i16 = i12 + (i11 * 136 | 0) + 84 | 0;
 33380    HEAPF32[i15 + 32 >> 2] = +HEAPF32[i16 >> 2];
 33381    if (+HEAPF32[i16 >> 2] > +HEAPF32[i15 + 16 >> 2]) {
 33382     HEAP8[i15 + 20 | 0] = 0;
 33384    i11 = i11 + 1 | 0;
 33385   } while ((i11 | 0) < (i13 | 0));
 33387  i13 = (i3 | 0) > 0;
 33388  do {
 33389   if ((HEAP32[i8 + 44 >> 2] | 0) == 0) {
 33390    if (i13) {
 33391     i17 = 0;
 33392    } else {
 33393     break;
 33395    do {
 33396     i11 = HEAP32[i2 + (i17 << 2) >> 2] | 0;
 33397     do {
 33398      if (!((HEAP32[i11 + 232 >> 2] & 2 | 0) == 0 | (i11 | 0) == 0)) {
 33399       if (+HEAPF32[i11 + 336 >> 2] == 0.0) {
 33400        break;
 33402       i12 = i11 + 304 | 0;
 33403       i15 = i11 + 308 | 0;
 33404       d18 = +HEAPF32[i15 >> 2] + +HEAPF32[i11 + 508 >> 2];
 33405       i16 = i11 + 312 | 0;
 33406       d19 = +HEAPF32[i16 >> 2] + +HEAPF32[i11 + 512 >> 2];
 33407       HEAPF32[i12 >> 2] = +HEAPF32[i12 >> 2] + +HEAPF32[i11 + 504 >> 2];
 33408       HEAPF32[i15 >> 2] = d18;
 33409       HEAPF32[i16 >> 2] = d19;
 33410       HEAPF32[i11 + 316 >> 2] = 0.0;
 33411       i16 = i11 + 320 | 0;
 33412       i15 = i11 + 324 | 0;
 33413       d19 = +HEAPF32[i15 >> 2] + +HEAPF32[i11 + 524 >> 2];
 33414       i12 = i11 + 328 | 0;
 33415       d18 = +HEAPF32[i12 >> 2] + +HEAPF32[i11 + 528 >> 2];
 33416       HEAPF32[i16 >> 2] = +HEAPF32[i16 >> 2] + +HEAPF32[i11 + 520 >> 2];
 33417       HEAPF32[i15 >> 2] = d19;
 33418       HEAPF32[i12 >> 2] = d18;
 33419       HEAPF32[i11 + 332 >> 2] = 0.0;
 33421     } while (0);
 33422     i17 = i17 + 1 | 0;
 33423    } while ((i17 | 0) < (i3 | 0));
 33424   } else {
 33425    if (!i13) {
 33426     break;
 33428    i11 = i8 + 12 | 0;
 33429    i12 = 0;
 33430    do {
 33431     i15 = HEAP32[i2 + (i12 << 2) >> 2] | 0;
 33432     if (!((HEAP32[i15 + 232 >> 2] & 2 | 0) == 0 | (i15 | 0) == 0)) {
 33433      __ZN11btRigidBody25internalWritebackVelocityEf(i15, +HEAPF32[i11 >> 2]);
 33435     i12 = i12 + 1 | 0;
 33436    } while ((i12 | 0) < (i3 | 0));
 33438  } while (0);
 33439  i3 = i9;
 33440  _memset(i3 | 0, 0, 136);
 33441  i9 = HEAP32[i5 >> 2] | 0;
 33442  if ((i9 | 0) < 0) {
 33443   i2 = i1 + 12 | 0;
 33444   i8 = i1 + 16 | 0;
 33445   if ((HEAP32[i2 >> 2] | 0) < 0) {
 33446    i13 = HEAP32[i8 >> 2] | 0;
 33447    i17 = i1 + 20 | 0;
 33448    if ((i13 | 0) != 0) {
 33449     if ((HEAP8[i17] | 0) != 0) {
 33450      __Z21btAlignedFreeInternalPv(i13);
 33452     HEAP32[i8 >> 2] = 0;
 33454    HEAP8[i17] = 1;
 33455    HEAP32[i8 >> 2] = 0;
 33456    HEAP32[i2 >> 2] = 0;
 33457    i20 = i9;
 33458   } else {
 33459    i20 = i9;
 33461   do {
 33462    i9 = (HEAP32[i8 >> 2] | 0) + (i20 * 136 | 0) | 0;
 33463    _memcpy(i9 | 0, i3 | 0, 136) | 0;
 33464    i20 = i20 + 1 | 0;
 33465   } while ((i20 | 0) < 0);
 33467  HEAP32[i5 >> 2] = 0;
 33468  i5 = i7;
 33469  _memset(i5 | 0, 0, 136);
 33470  i7 = HEAP32[i4 >> 2] | 0;
 33471  if ((i7 | 0) < 0) {
 33472   i20 = i1 + 32 | 0;
 33473   i3 = i1 + 36 | 0;
 33474   if ((HEAP32[i20 >> 2] | 0) < 0) {
 33475    i8 = HEAP32[i3 >> 2] | 0;
 33476    i9 = i1 + 40 | 0;
 33477    if ((i8 | 0) != 0) {
 33478     if ((HEAP8[i9] | 0) != 0) {
 33479      __Z21btAlignedFreeInternalPv(i8);
 33481     HEAP32[i3 >> 2] = 0;
 33483    HEAP8[i9] = 1;
 33484    HEAP32[i3 >> 2] = 0;
 33485    HEAP32[i20 >> 2] = 0;
 33486    i21 = i7;
 33487   } else {
 33488    i21 = i7;
 33490   do {
 33491    i7 = (HEAP32[i3 >> 2] | 0) + (i21 * 136 | 0) | 0;
 33492    _memcpy(i7 | 0, i5 | 0, 136) | 0;
 33493    i21 = i21 + 1 | 0;
 33494   } while ((i21 | 0) < 0);
 33496  HEAP32[i4 >> 2] = 0;
 33497  i4 = i6;
 33498  _memset(i4 | 0, 0, 136);
 33499  i6 = i1 + 48 | 0;
 33500  i21 = HEAP32[i6 >> 2] | 0;
 33501  if ((i21 | 0) >= 0) {
 33502   HEAP32[i6 >> 2] = 0;
 33503   STACKTOP = i10;
 33504   return +0.0;
 33506  i5 = i1 + 52 | 0;
 33507  i3 = i1 + 56 | 0;
 33508  if ((HEAP32[i5 >> 2] | 0) < 0) {
 33509   i7 = HEAP32[i3 >> 2] | 0;
 33510   i20 = i1 + 60 | 0;
 33511   if ((i7 | 0) != 0) {
 33512    if ((HEAP8[i20] | 0) != 0) {
 33513     __Z21btAlignedFreeInternalPv(i7);
 33515    HEAP32[i3 >> 2] = 0;
 33517   HEAP8[i20] = 1;
 33518   HEAP32[i3 >> 2] = 0;
 33519   HEAP32[i5 >> 2] = 0;
 33520   i22 = i21;
 33521  } else {
 33522   i22 = i21;
 33524  do {
 33525   i21 = (HEAP32[i3 >> 2] | 0) + (i22 * 136 | 0) | 0;
 33526   _memcpy(i21 | 0, i4 | 0, 136) | 0;
 33527   i22 = i22 + 1 | 0;
 33528  } while ((i22 | 0) < 0);
 33529  HEAP32[i6 >> 2] = 0;
 33530  STACKTOP = i10;
 33531  return +0.0;
 33533 function __ZN35btSequentialImpulseConstraintSolver28setFrictionConstraintImpulseER18btSolverConstraintP11btRigidBodyS3_R15btManifoldPointRK19btContactSolverInfo(i1, i2, i3, i4, i5, i6) {
 33534  i1 = i1 | 0;
 33535  i2 = i2 | 0;
 33536  i3 = i3 | 0;
 33537  i4 = i4 | 0;
 33538  i5 = i5 | 0;
 33539  i6 = i6 | 0;
 33540  var i7 = 0, i8 = 0, d9 = 0.0, i10 = 0, d11 = 0.0, d12 = 0.0, d13 = 0.0, i14 = 0, d15 = 0.0, d16 = 0.0, d17 = 0.0;
 33541  i7 = HEAP32[i6 + 60 >> 2] | 0;
 33542  i8 = HEAP32[i2 + 100 >> 2] | 0;
 33543  i2 = HEAP32[i1 + 56 >> 2] | 0;
 33544  if ((i7 & 8 | 0) == 0) {
 33545   HEAPF32[i2 + (i8 * 136 | 0) + 84 >> 2] = 0.0;
 33546   if ((i7 & 16 | 0) == 0) {
 33547    return;
 33549   HEAPF32[i2 + ((i8 + 1 | 0) * 136 | 0) + 84 >> 2] = 0.0;
 33550   return;
 33552  i1 = (i7 & 4 | 0) == 0;
 33553  do {
 33554   if (i1) {
 33555    HEAPF32[i2 + (i8 * 136 | 0) + 84 >> 2] = 0.0;
 33556   } else {
 33557    d9 = +HEAPF32[i5 + 120 >> 2] * +HEAPF32[i6 + 56 >> 2];
 33558    i10 = i2 + (i8 * 136 | 0) + 84 | 0;
 33559    HEAPF32[i10 >> 2] = d9;
 33560    do {
 33561     if ((i3 | 0) != 0) {
 33562      d11 = +HEAPF32[i3 + 336 >> 2];
 33563      if (d11 == 0.0) {
 33564       break;
 33566      d12 = d9 * d11 * +HEAPF32[i2 + (i8 * 136 | 0) + 20 >> 2] * +HEAPF32[i3 + 344 >> 2];
 33567      d13 = d9 * d11 * +HEAPF32[i2 + (i8 * 136 | 0) + 24 >> 2] * +HEAPF32[i3 + 348 >> 2];
 33568      i14 = i3 + 504 | 0;
 33569      HEAPF32[i14 >> 2] = +HEAPF32[i14 >> 2] + d9 * d11 * +HEAPF32[i2 + (i8 * 136 | 0) + 16 >> 2] * +HEAPF32[i3 + 340 >> 2];
 33570      i14 = i3 + 508 | 0;
 33571      HEAPF32[i14 >> 2] = d12 + +HEAPF32[i14 >> 2];
 33572      i14 = i3 + 512 | 0;
 33573      HEAPF32[i14 >> 2] = d13 + +HEAPF32[i14 >> 2];
 33574      d13 = d9 * +HEAPF32[i3 + 540 >> 2] * +HEAPF32[i2 + (i8 * 136 | 0) + 52 >> 2];
 33575      d12 = d9 * +HEAPF32[i3 + 544 >> 2] * +HEAPF32[i2 + (i8 * 136 | 0) + 56 >> 2];
 33576      i14 = i3 + 520 | 0;
 33577      HEAPF32[i14 >> 2] = d9 * +HEAPF32[i3 + 536 >> 2] * +HEAPF32[i2 + (i8 * 136 | 0) + 48 >> 2] + +HEAPF32[i14 >> 2];
 33578      i14 = i3 + 524 | 0;
 33579      HEAPF32[i14 >> 2] = d13 + +HEAPF32[i14 >> 2];
 33580      i14 = i3 + 528 | 0;
 33581      HEAPF32[i14 >> 2] = d12 + +HEAPF32[i14 >> 2];
 33583    } while (0);
 33584    if ((i4 | 0) == 0) {
 33585     break;
 33587    d9 = +HEAPF32[i4 + 336 >> 2];
 33588    d12 = -0.0 - +HEAPF32[i10 >> 2];
 33589    if (d9 == 0.0) {
 33590     break;
 33592    d13 = -0.0 - +HEAPF32[i2 + (i8 * 136 | 0) + 72 >> 2];
 33593    d11 = -0.0 - +HEAPF32[i2 + (i8 * 136 | 0) + 68 >> 2];
 33594    d15 = -0.0 - +HEAPF32[i2 + (i8 * 136 | 0) + 64 >> 2];
 33595    d16 = d9 * +HEAPF32[i2 + (i8 * 136 | 0) + 20 >> 2] * +HEAPF32[i4 + 344 >> 2] * d12;
 33596    d17 = d9 * +HEAPF32[i2 + (i8 * 136 | 0) + 24 >> 2] * +HEAPF32[i4 + 348 >> 2] * d12;
 33597    i14 = i4 + 504 | 0;
 33598    HEAPF32[i14 >> 2] = +HEAPF32[i14 >> 2] + d9 * +HEAPF32[i2 + (i8 * 136 | 0) + 16 >> 2] * +HEAPF32[i4 + 340 >> 2] * d12;
 33599    i14 = i4 + 508 | 0;
 33600    HEAPF32[i14 >> 2] = d16 + +HEAPF32[i14 >> 2];
 33601    i14 = i4 + 512 | 0;
 33602    HEAPF32[i14 >> 2] = d17 + +HEAPF32[i14 >> 2];
 33603    d17 = +HEAPF32[i4 + 540 >> 2] * d12 * d11;
 33604    d11 = +HEAPF32[i4 + 544 >> 2] * d12 * d13;
 33605    i14 = i4 + 520 | 0;
 33606    HEAPF32[i14 >> 2] = +HEAPF32[i4 + 536 >> 2] * d12 * d15 + +HEAPF32[i14 >> 2];
 33607    i14 = i4 + 524 | 0;
 33608    HEAPF32[i14 >> 2] = d17 + +HEAPF32[i14 >> 2];
 33609    i14 = i4 + 528 | 0;
 33610    HEAPF32[i14 >> 2] = d11 + +HEAPF32[i14 >> 2];
 33612  } while (0);
 33613  if ((i7 & 16 | 0) == 0) {
 33614   return;
 33616  i7 = i8 + 1 | 0;
 33617  if (i1) {
 33618   HEAPF32[i2 + (i7 * 136 | 0) + 84 >> 2] = 0.0;
 33619   return;
 33621  d11 = +HEAPF32[i5 + 124 >> 2] * +HEAPF32[i6 + 56 >> 2];
 33622  i6 = i2 + (i7 * 136 | 0) + 84 | 0;
 33623  HEAPF32[i6 >> 2] = d11;
 33624  do {
 33625   if ((i3 | 0) != 0) {
 33626    d17 = +HEAPF32[i3 + 336 >> 2];
 33627    if (d17 == 0.0) {
 33628     break;
 33630    d15 = d11 * d17 * +HEAPF32[i2 + (i7 * 136 | 0) + 20 >> 2];
 33631    d12 = d11 * d17 * +HEAPF32[i2 + (i7 * 136 | 0) + 24 >> 2];
 33632    i5 = i3 + 504 | 0;
 33633    HEAPF32[i5 >> 2] = +HEAPF32[i5 >> 2] + d11 * d17 * +HEAPF32[i2 + (i7 * 136 | 0) + 16 >> 2];
 33634    i5 = i3 + 508 | 0;
 33635    HEAPF32[i5 >> 2] = d15 + +HEAPF32[i5 >> 2];
 33636    i5 = i3 + 512 | 0;
 33637    HEAPF32[i5 >> 2] = d12 + +HEAPF32[i5 >> 2];
 33638    d12 = d11 * +HEAPF32[i3 + 540 >> 2] * +HEAPF32[i2 + (i7 * 136 | 0) + 52 >> 2];
 33639    d15 = d11 * +HEAPF32[i3 + 544 >> 2] * +HEAPF32[i2 + (i7 * 136 | 0) + 56 >> 2];
 33640    i5 = i3 + 520 | 0;
 33641    HEAPF32[i5 >> 2] = d11 * +HEAPF32[i3 + 536 >> 2] * +HEAPF32[i2 + (i7 * 136 | 0) + 48 >> 2] + +HEAPF32[i5 >> 2];
 33642    i5 = i3 + 524 | 0;
 33643    HEAPF32[i5 >> 2] = d12 + +HEAPF32[i5 >> 2];
 33644    i5 = i3 + 528 | 0;
 33645    HEAPF32[i5 >> 2] = d15 + +HEAPF32[i5 >> 2];
 33647  } while (0);
 33648  if ((i4 | 0) == 0) {
 33649   return;
 33651  d11 = +HEAPF32[i4 + 336 >> 2];
 33652  d15 = -0.0 - +HEAPF32[i6 >> 2];
 33653  if (d11 == 0.0) {
 33654   return;
 33656  d12 = -0.0 - +HEAPF32[i2 + (i7 * 136 | 0) + 72 >> 2];
 33657  d17 = -0.0 - +HEAPF32[i2 + (i7 * 136 | 0) + 68 >> 2];
 33658  d13 = -0.0 - +HEAPF32[i2 + (i7 * 136 | 0) + 64 >> 2];
 33659  d16 = d11 * +HEAPF32[i2 + (i7 * 136 | 0) + 20 >> 2] * d15;
 33660  d9 = d11 * +HEAPF32[i2 + (i7 * 136 | 0) + 24 >> 2] * d15;
 33661  i6 = i4 + 504 | 0;
 33662  HEAPF32[i6 >> 2] = +HEAPF32[i6 >> 2] + d11 * +HEAPF32[i2 + (i7 * 136 | 0) + 16 >> 2] * d15;
 33663  i7 = i4 + 508 | 0;
 33664  HEAPF32[i7 >> 2] = d16 + +HEAPF32[i7 >> 2];
 33665  i7 = i4 + 512 | 0;
 33666  HEAPF32[i7 >> 2] = d9 + +HEAPF32[i7 >> 2];
 33667  d9 = +HEAPF32[i4 + 540 >> 2] * d15 * d17;
 33668  d17 = +HEAPF32[i4 + 544 >> 2] * d15 * d12;
 33669  i7 = i4 + 520 | 0;
 33670  HEAPF32[i7 >> 2] = +HEAPF32[i4 + 536 >> 2] * d15 * d13 + +HEAPF32[i7 >> 2];
 33671  i7 = i4 + 524 | 0;
 33672  HEAPF32[i7 >> 2] = d9 + +HEAPF32[i7 >> 2];
 33673  i7 = i4 + 528 | 0;
 33674  HEAPF32[i7 >> 2] = d17 + +HEAPF32[i7 >> 2];
 33675  return;
 33677 function __ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_S3_PfRj(i1, i2, i3, i4, i5, i6) {
 33678  i1 = i1 | 0;
 33679  i2 = i2 | 0;
 33680  i3 = i3 | 0;
 33681  i4 = i4 | 0;
 33682  i5 = i5 | 0;
 33683  i6 = i6 | 0;
 33684  var i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, d13 = 0.0, i14 = 0, d15 = 0.0, d16 = 0.0, i17 = 0, d18 = 0.0, i19 = 0, d20 = 0.0, d21 = 0.0, i22 = 0, d23 = 0.0, d24 = 0.0, d25 = 0.0, i26 = 0, d27 = 0.0, d28 = 0.0, i29 = 0, d30 = 0.0, d31 = 0.0, i32 = 0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, i37 = 0, d38 = 0.0, d39 = 0.0, i40 = 0, d41 = 0.0, d42 = 0.0, d43 = 0.0, d44 = 0.0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, d49 = 0.0, i50 = 0;
 33685  i7 = STACKTOP;
 33686  STACKTOP = STACKTOP + 88 | 0;
 33687  i8 = i7 | 0;
 33688  i9 = i7 + 16 | 0;
 33689  i10 = i7 + 64 | 0;
 33690  i11 = i7 + 80 | 0;
 33691  HEAP32[i8 >> 2] = i1;
 33692  HEAP32[i8 + 4 >> 2] = i2;
 33693  HEAP32[i8 + 8 >> 2] = i3;
 33694  HEAP32[i8 + 12 >> 2] = i4;
 33695  i12 = i1 | 0;
 33696  d13 = +HEAPF32[i12 >> 2];
 33697  i14 = i4 | 0;
 33698  d15 = +HEAPF32[i14 >> 2];
 33699  d16 = d13 - d15;
 33700  i17 = i1 + 4 | 0;
 33701  d18 = +HEAPF32[i17 >> 2];
 33702  i19 = i4 + 4 | 0;
 33703  d20 = +HEAPF32[i19 >> 2];
 33704  d21 = d18 - d20;
 33705  i22 = i1 + 8 | 0;
 33706  d23 = +HEAPF32[i22 >> 2];
 33707  i1 = i4 + 8 | 0;
 33708  d24 = +HEAPF32[i1 >> 2];
 33709  d25 = d23 - d24;
 33710  HEAPF32[i9 >> 2] = d16;
 33711  HEAPF32[i9 + 4 >> 2] = d21;
 33712  HEAPF32[i9 + 8 >> 2] = d25;
 33713  HEAPF32[i9 + 12 >> 2] = 0.0;
 33714  i26 = i2 | 0;
 33715  d27 = +HEAPF32[i26 >> 2];
 33716  d28 = d27 - d15;
 33717  i29 = i2 + 4 | 0;
 33718  d30 = +HEAPF32[i29 >> 2];
 33719  d31 = d30 - d20;
 33720  i32 = i2 + 8 | 0;
 33721  d33 = +HEAPF32[i32 >> 2];
 33722  d34 = d33 - d24;
 33723  HEAPF32[i9 + 16 >> 2] = d28;
 33724  HEAPF32[i9 + 20 >> 2] = d31;
 33725  HEAPF32[i9 + 24 >> 2] = d34;
 33726  HEAPF32[i9 + 28 >> 2] = 0.0;
 33727  i2 = i3 | 0;
 33728  d35 = +HEAPF32[i2 >> 2];
 33729  d36 = d35 - d15;
 33730  i37 = i3 + 4 | 0;
 33731  d38 = +HEAPF32[i37 >> 2];
 33732  d39 = d38 - d20;
 33733  i40 = i3 + 8 | 0;
 33734  d41 = +HEAPF32[i40 >> 2];
 33735  d42 = d41 - d24;
 33736  HEAPF32[i9 + 32 >> 2] = d36;
 33737  HEAPF32[i9 + 36 >> 2] = d39;
 33738  HEAPF32[i9 + 40 >> 2] = d42;
 33739  HEAPF32[i9 + 44 >> 2] = 0.0;
 33740  d43 = d16 * d31 * d42 + (d21 * d34 * d36 + d25 * d28 * d39 - d16 * d34 * d39 - d21 * d28 * d42) - d25 * d31 * d36;
 33741  d36 = d27 - d35;
 33742  d35 = d30 - d38;
 33743  d38 = d33 - d41;
 33744  d41 = d13 - d27;
 33745  d27 = d18 - d30;
 33746  d30 = d23 - d33;
 33747  if (d43 * (d23 * (d27 * d36 - d41 * d35) + (d13 * (d30 * d35 - d27 * d38) + d18 * (d41 * d38 - d30 * d36))) > 0.0 | d43 == 0.0) {
 33748   d44 = -1.0;
 33749   STACKTOP = i7;
 33750   return +d44;
 33752  _memset(i10 | 0, 0, 12);
 33753  HEAP32[i11 >> 2] = 0;
 33754  i3 = i10 | 0;
 33755  i45 = i10 + 4 | 0;
 33756  i46 = i10 + 8 | 0;
 33757  i10 = i5 + 12 | 0;
 33758  i47 = 0;
 33759  d36 = -1.0;
 33760  d30 = d21;
 33761  d21 = d25;
 33762  d25 = d16;
 33763  d16 = d15;
 33764  d15 = d20;
 33765  d20 = d24;
 33766  while (1) {
 33767   i48 = HEAP32[1312 + (i47 << 2) >> 2] | 0;
 33768   d24 = +HEAPF32[i9 + (i48 << 4) + 8 >> 2];
 33769   d38 = +HEAPF32[i9 + (i48 << 4) + 4 >> 2];
 33770   d41 = +HEAPF32[i9 + (i48 << 4) >> 2];
 33771   do {
 33772    if (d43 * (d20 * (d25 * d38 - d30 * d41) + (d16 * (d30 * d24 - d21 * d38) + d15 * (d21 * d41 - d25 * d24))) > 0.0) {
 33773     d18 = +__ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRj(HEAP32[i8 + (i47 << 2) >> 2] | 0, HEAP32[i8 + (i48 << 2) >> 2] | 0, i4, i3, i11);
 33774     if (!(d36 < 0.0 | d18 < d36)) {
 33775      d49 = d36;
 33776      break;
 33778     i50 = HEAP32[i11 >> 2] | 0;
 33779     HEAP32[i6 >> 2] = ((i50 & 2 | 0) == 0 ? 0 : 1 << i48) + (i50 << 1 & 8) + ((i50 & 1 | 0) == 0 ? 0 : 1 << i47);
 33780     HEAPF32[i5 + (i47 << 2) >> 2] = +HEAPF32[i3 >> 2];
 33781     HEAPF32[i5 + (i48 << 2) >> 2] = +HEAPF32[i45 >> 2];
 33782     HEAPF32[i5 + (HEAP32[1312 + (i48 << 2) >> 2] << 2) >> 2] = 0.0;
 33783     HEAPF32[i10 >> 2] = +HEAPF32[i46 >> 2];
 33784     d49 = d18;
 33785    } else {
 33786     d49 = d36;
 33788   } while (0);
 33789   i48 = i47 + 1 | 0;
 33790   if (i48 >>> 0 >= 3) {
 33791    break;
 33793   i47 = i48;
 33794   d36 = d49;
 33795   d30 = +HEAPF32[i9 + (i48 << 4) + 4 >> 2];
 33796   d21 = +HEAPF32[i9 + (i48 << 4) + 8 >> 2];
 33797   d25 = +HEAPF32[i9 + (i48 << 4) >> 2];
 33798   d16 = +HEAPF32[i14 >> 2];
 33799   d15 = +HEAPF32[i19 >> 2];
 33800   d20 = +HEAPF32[i1 >> 2];
 33802  if (d49 >= 0.0) {
 33803   d44 = d49;
 33804   STACKTOP = i7;
 33805   return +d44;
 33807  HEAP32[i6 >> 2] = 15;
 33808  d49 = +HEAPF32[i37 >> 2];
 33809  d20 = +HEAPF32[i32 >> 2];
 33810  d15 = +HEAPF32[i14 >> 2];
 33811  d16 = +HEAPF32[i40 >> 2];
 33812  d25 = +HEAPF32[i26 >> 2];
 33813  d21 = +HEAPF32[i19 >> 2];
 33814  d30 = +HEAPF32[i2 >> 2];
 33815  d36 = +HEAPF32[i1 >> 2];
 33816  d24 = +HEAPF32[i29 >> 2];
 33817  d41 = (d49 * d20 * d15 + d16 * d25 * d21 - d21 * d20 * d30 - d49 * d25 * d36 + d36 * d30 * d24 - d15 * d16 * d24) / d43;
 33818  HEAPF32[i5 >> 2] = d41;
 33819  d24 = +HEAPF32[i17 >> 2];
 33820  d16 = +HEAPF32[i40 >> 2];
 33821  d15 = +HEAPF32[i14 >> 2];
 33822  d30 = +HEAPF32[i22 >> 2];
 33823  d36 = +HEAPF32[i2 >> 2];
 33824  d25 = +HEAPF32[i19 >> 2];
 33825  d49 = +HEAPF32[i12 >> 2];
 33826  d20 = +HEAPF32[i1 >> 2];
 33827  d21 = +HEAPF32[i37 >> 2];
 33828  d38 = (d24 * d16 * d15 + d30 * d36 * d25 - d25 * d16 * d49 - d24 * d36 * d20 + d20 * d49 * d21 - d15 * d30 * d21) / d43;
 33829  HEAPF32[i5 + 4 >> 2] = d38;
 33830  d21 = +HEAPF32[i29 >> 2];
 33831  d30 = +HEAPF32[i22 >> 2];
 33832  d15 = +HEAPF32[i14 >> 2];
 33833  d49 = +HEAPF32[i32 >> 2];
 33834  d20 = +HEAPF32[i12 >> 2];
 33835  d36 = +HEAPF32[i19 >> 2];
 33836  d24 = +HEAPF32[i26 >> 2];
 33837  d16 = +HEAPF32[i1 >> 2];
 33838  d25 = +HEAPF32[i17 >> 2];
 33839  d18 = (d21 * d30 * d15 + d49 * d20 * d36 - d36 * d30 * d24 - d21 * d20 * d16 + d16 * d24 * d25 - d15 * d49 * d25) / d43;
 33840  HEAPF32[i5 + 8 >> 2] = d18;
 33841  HEAPF32[i10 >> 2] = 1.0 - (d41 + d38 + d18);
 33842  d44 = 0.0;
 33843  STACKTOP = i7;
 33844  return +d44;
 33846 function __ZN22SphereTriangleDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i1, i2, i3, i4, i5) {
 33847  i1 = i1 | 0;
 33848  i2 = i2 | 0;
 33849  i3 = i3 | 0;
 33850  i4 = i4 | 0;
 33851  i5 = i5 | 0;
 33852  var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, d15 = 0.0, i16 = 0, d17 = 0.0, i18 = 0, d19 = 0.0, i20 = 0, d21 = 0.0, d22 = 0.0, i23 = 0, d24 = 0.0, d25 = 0.0, i26 = 0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, i35 = 0, d36 = 0.0, i37 = 0, d38 = 0.0, i39 = 0, d40 = 0.0, i41 = 0, d42 = 0.0, i43 = 0, d44 = 0.0, i45 = 0, d46 = 0.0;
 33853  i4 = STACKTOP;
 33854  STACKTOP = STACKTOP + 168 | 0;
 33855  i6 = i4 | 0;
 33856  i7 = i4 + 16 | 0;
 33857  i8 = i4 + 32 | 0;
 33858  i9 = i4 + 40 | 0;
 33859  i10 = i4 + 104 | 0;
 33860  i11 = i4 + 120 | 0;
 33861  i12 = i4 + 136 | 0;
 33862  i13 = i4 + 152 | 0;
 33863  HEAPF32[i8 >> 2] = 0.0;
 33864  i14 = i2 + 112 | 0;
 33865  d15 = +HEAPF32[i2 + 48 >> 2] - +HEAPF32[i14 >> 2];
 33866  i16 = i2 + 116 | 0;
 33867  d17 = +HEAPF32[i2 + 52 >> 2] - +HEAPF32[i16 >> 2];
 33868  i18 = i2 + 120 | 0;
 33869  d19 = +HEAPF32[i2 + 56 >> 2] - +HEAPF32[i18 >> 2];
 33870  i20 = i2 + 64 | 0;
 33871  d21 = +HEAPF32[i20 >> 2];
 33872  d22 = +HEAPF32[i2 >> 2];
 33873  i23 = i2 + 80 | 0;
 33874  d24 = +HEAPF32[i23 >> 2];
 33875  d25 = +HEAPF32[i2 + 16 >> 2];
 33876  i26 = i2 + 96 | 0;
 33877  d27 = +HEAPF32[i26 >> 2];
 33878  d28 = +HEAPF32[i2 + 32 >> 2];
 33879  d29 = +HEAPF32[i2 + 4 >> 2];
 33880  d30 = +HEAPF32[i2 + 20 >> 2];
 33881  d31 = +HEAPF32[i2 + 36 >> 2];
 33882  d32 = +HEAPF32[i2 + 8 >> 2];
 33883  d33 = +HEAPF32[i2 + 24 >> 2];
 33884  d34 = +HEAPF32[i2 + 40 >> 2];
 33885  i35 = i2 + 68 | 0;
 33886  d36 = +HEAPF32[i35 >> 2];
 33887  i37 = i2 + 84 | 0;
 33888  d38 = +HEAPF32[i37 >> 2];
 33889  i39 = i2 + 100 | 0;
 33890  d40 = +HEAPF32[i39 >> 2];
 33891  i41 = i2 + 72 | 0;
 33892  d42 = +HEAPF32[i41 >> 2];
 33893  i43 = i2 + 88 | 0;
 33894  d44 = +HEAPF32[i43 >> 2];
 33895  i45 = i2 + 104 | 0;
 33896  d46 = +HEAPF32[i45 >> 2];
 33897  HEAPF32[i9 >> 2] = d21 * d22 + d24 * d25 + d27 * d28;
 33898  HEAPF32[i9 + 4 >> 2] = d21 * d29 + d24 * d30 + d27 * d31;
 33899  HEAPF32[i9 + 8 >> 2] = d21 * d32 + d24 * d33 + d27 * d34;
 33900  HEAPF32[i9 + 12 >> 2] = 0.0;
 33901  HEAPF32[i9 + 16 >> 2] = d22 * d36 + d25 * d38 + d28 * d40;
 33902  HEAPF32[i9 + 20 >> 2] = d29 * d36 + d30 * d38 + d31 * d40;
 33903  HEAPF32[i9 + 24 >> 2] = d32 * d36 + d33 * d38 + d34 * d40;
 33904  HEAPF32[i9 + 28 >> 2] = 0.0;
 33905  HEAPF32[i9 + 32 >> 2] = d22 * d42 + d25 * d44 + d28 * d46;
 33906  HEAPF32[i9 + 36 >> 2] = d29 * d42 + d30 * d44 + d31 * d46;
 33907  HEAPF32[i9 + 40 >> 2] = d32 * d42 + d33 * d44 + d34 * d46;
 33908  HEAPF32[i9 + 44 >> 2] = 0.0;
 33909  HEAPF32[i9 + 48 >> 2] = d15 * d21 + d17 * d24 + d19 * d27;
 33910  HEAPF32[i9 + 52 >> 2] = d15 * d36 + d17 * d38 + d19 * d40;
 33911  HEAPF32[i9 + 56 >> 2] = d15 * d42 + d17 * d44 + d19 * d46;
 33912  HEAPF32[i9 + 60 >> 2] = 0.0;
 33913  if (!(__ZN22SphereTriangleDetector7collideERK9btVector3RS0_S3_RfS4_f(i1, i9 + 48 | 0, i6, i7, i8, 0, +HEAPF32[i1 + 12 >> 2]) | 0)) {
 33914   STACKTOP = i4;
 33915   return;
 33917  if (i5) {
 33918   d46 = +HEAPF32[i20 >> 2];
 33919   d19 = +HEAPF32[i7 >> 2];
 33920   d44 = +HEAPF32[i35 >> 2];
 33921   d17 = +HEAPF32[i7 + 4 >> 2];
 33922   d42 = +HEAPF32[i41 >> 2];
 33923   d15 = +HEAPF32[i7 + 8 >> 2];
 33924   d40 = d46 * d19 + d44 * d17 + d42 * d15;
 33925   d38 = +HEAPF32[i23 >> 2];
 33926   d36 = +HEAPF32[i37 >> 2];
 33927   d27 = +HEAPF32[i43 >> 2];
 33928   d24 = d19 * d38 + d17 * d36 + d15 * d27;
 33929   d21 = +HEAPF32[i26 >> 2];
 33930   d34 = +HEAPF32[i39 >> 2];
 33931   d33 = +HEAPF32[i45 >> 2];
 33932   d32 = d19 * d21 + d17 * d34 + d15 * d33;
 33933   HEAPF32[i10 >> 2] = -0.0 - d40;
 33934   HEAPF32[i10 + 4 >> 2] = -0.0 - d24;
 33935   HEAPF32[i10 + 8 >> 2] = -0.0 - d32;
 33936   HEAPF32[i10 + 12 >> 2] = 0.0;
 33937   d15 = +HEAPF32[i6 >> 2];
 33938   d17 = +HEAPF32[i6 + 4 >> 2];
 33939   d19 = +HEAPF32[i6 + 8 >> 2];
 33940   d31 = +HEAPF32[i8 >> 2];
 33941   d30 = +HEAPF32[i16 >> 2] + (d38 * d15 + d36 * d17 + d27 * d19) + d24 * d31;
 33942   d24 = d21 * d15 + d34 * d17 + d33 * d19 + +HEAPF32[i18 >> 2] + d32 * d31;
 33943   HEAPF32[i11 >> 2] = +HEAPF32[i14 >> 2] + (d46 * d15 + d44 * d17 + d42 * d19) + d40 * d31;
 33944   HEAPF32[i11 + 4 >> 2] = d30;
 33945   HEAPF32[i11 + 8 >> 2] = d24;
 33946   HEAPF32[i11 + 12 >> 2] = 0.0;
 33947   FUNCTION_TABLE_viiif[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 15](i3, i10, i11, d31);
 33948   STACKTOP = i4;
 33949   return;
 33950  } else {
 33951   i11 = HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] | 0;
 33952   d31 = +HEAPF32[i20 >> 2];
 33953   d24 = +HEAPF32[i7 >> 2];
 33954   d30 = +HEAPF32[i35 >> 2];
 33955   d40 = +HEAPF32[i7 + 4 >> 2];
 33956   d19 = +HEAPF32[i41 >> 2];
 33957   d42 = +HEAPF32[i7 + 8 >> 2];
 33958   d17 = +HEAPF32[i23 >> 2];
 33959   d44 = +HEAPF32[i37 >> 2];
 33960   d15 = +HEAPF32[i43 >> 2];
 33961   d46 = +HEAPF32[i26 >> 2];
 33962   d32 = +HEAPF32[i39 >> 2];
 33963   d33 = +HEAPF32[i45 >> 2];
 33964   HEAPF32[i12 >> 2] = d31 * d24 + d30 * d40 + d19 * d42;
 33965   HEAPF32[i12 + 4 >> 2] = d24 * d17 + d40 * d44 + d42 * d15;
 33966   HEAPF32[i12 + 8 >> 2] = d24 * d46 + d40 * d32 + d42 * d33;
 33967   HEAPF32[i12 + 12 >> 2] = 0.0;
 33968   d42 = +HEAPF32[i6 >> 2];
 33969   d40 = +HEAPF32[i6 + 4 >> 2];
 33970   d24 = +HEAPF32[i6 + 8 >> 2];
 33971   d34 = +HEAPF32[i16 >> 2] + (d17 * d42 + d44 * d40 + d15 * d24);
 33972   d15 = d46 * d42 + d32 * d40 + d33 * d24 + +HEAPF32[i18 >> 2];
 33973   HEAPF32[i13 >> 2] = +HEAPF32[i14 >> 2] + (d31 * d42 + d30 * d40 + d19 * d24);
 33974   HEAPF32[i13 + 4 >> 2] = d34;
 33975   HEAPF32[i13 + 8 >> 2] = d15;
 33976   HEAPF32[i13 + 12 >> 2] = 0.0;
 33977   FUNCTION_TABLE_viiif[i11 & 15](i3, i12, i13, +HEAPF32[i8 >> 2]);
 33978   STACKTOP = i4;
 33979   return;
 33982 function __ZN20btConvexHullInternal12findMaxAngleEbPKNS_6VertexERKNS_7Point32ERKNS_7Point64ES8_RNS_10Rational64E(i1, i2, i3, i4, i5, i6, i7) {
 33983  i1 = i1 | 0;
 33984  i2 = i2 | 0;
 33985  i3 = i3 | 0;
 33986  i4 = i4 | 0;
 33987  i5 = i5 | 0;
 33988  i6 = i6 | 0;
 33989  i7 = i7 | 0;
 33990  var i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0;
 33991  i8 = STACKTOP;
 33992  STACKTOP = STACKTOP + 40 | 0;
 33993  i9 = i8 | 0;
 33994  i10 = i8 + 16 | 0;
 33995  i11 = i3 + 8 | 0;
 33996  i12 = HEAP32[i11 >> 2] | 0;
 33997  if ((i12 | 0) == 0) {
 33998   i13 = 0;
 33999   STACKTOP = i8;
 34000   return i13 | 0;
 34002  i14 = i1 + 100 | 0;
 34003  i1 = i3 + 88 | 0;
 34004  i15 = i3 + 92 | 0;
 34005  i16 = i3 + 96 | 0;
 34006  i3 = i9 | 0;
 34007  i17 = i9 + 4 | 0;
 34008  i18 = i9 + 8 | 0;
 34009  i19 = i9 + 12 | 0;
 34010  i20 = i6 | 0;
 34011  i21 = i6 + 8 | 0;
 34012  i22 = i6 + 16 | 0;
 34013  i6 = i5 | 0;
 34014  i23 = i5 + 8 | 0;
 34015  i24 = i5 + 16 | 0;
 34016  i5 = i10 + 16 | 0;
 34017  i25 = i10 | 0;
 34018  i26 = i10 + 8 | 0;
 34019  i27 = i7;
 34020  i28 = i10;
 34021  i29 = 0;
 34022  i30 = i12;
 34023  while (1) {
 34024   do {
 34025    if ((HEAP32[i30 + 20 >> 2] | 0) > (HEAP32[i14 >> 2] | 0)) {
 34026     i12 = HEAP32[i30 + 12 >> 2] | 0;
 34027     i31 = (HEAP32[i12 + 88 >> 2] | 0) - (HEAP32[i1 >> 2] | 0) | 0;
 34028     i32 = (HEAP32[i12 + 92 >> 2] | 0) - (HEAP32[i15 >> 2] | 0) | 0;
 34029     i33 = (HEAP32[i12 + 96 >> 2] | 0) - (HEAP32[i16 >> 2] | 0) | 0;
 34030     HEAP32[i3 >> 2] = i31;
 34031     HEAP32[i17 >> 2] = i32;
 34032     HEAP32[i18 >> 2] = i33;
 34033     HEAP32[i19 >> 2] = -1;
 34034     i12 = i31;
 34035     i34 = (i31 | 0) < 0 ? -1 : 0;
 34036     i31 = ___muldi3(HEAP32[i20 >> 2] | 0, HEAP32[i20 + 4 >> 2] | 0, i12, i34) | 0;
 34037     i35 = tempRet0;
 34038     i36 = i32;
 34039     i37 = (i32 | 0) < 0 ? -1 : 0;
 34040     i32 = ___muldi3(HEAP32[i21 >> 2] | 0, HEAP32[i21 + 4 >> 2] | 0, i36, i37) | 0;
 34041     i38 = _i64Add(i32, tempRet0, i31, i35) | 0;
 34042     i35 = tempRet0;
 34043     i31 = i33;
 34044     i32 = (i33 | 0) < 0 ? -1 : 0;
 34045     i33 = ___muldi3(HEAP32[i22 >> 2] | 0, HEAP32[i22 + 4 >> 2] | 0, i31, i32) | 0;
 34046     i39 = _i64Add(i38, i35, i33, tempRet0) | 0;
 34047     i33 = tempRet0;
 34048     i35 = ___muldi3(HEAP32[i6 >> 2] | 0, HEAP32[i6 + 4 >> 2] | 0, i12, i34) | 0;
 34049     i34 = tempRet0;
 34050     i12 = ___muldi3(HEAP32[i23 >> 2] | 0, HEAP32[i23 + 4 >> 2] | 0, i36, i37) | 0;
 34051     i37 = _i64Add(i12, tempRet0, i35, i34) | 0;
 34052     i34 = tempRet0;
 34053     i35 = ___muldi3(HEAP32[i24 >> 2] | 0, HEAP32[i24 + 4 >> 2] | 0, i31, i32) | 0;
 34054     i32 = _i64Add(i37, i34, i35, tempRet0) | 0;
 34055     i35 = tempRet0;
 34056     i34 = 0;
 34057     do {
 34058      if ((i33 | 0) > (i34 | 0) | (i33 | 0) == (i34 | 0) & i39 >>> 0 > 0 >>> 0) {
 34059       HEAP32[i5 >> 2] = 1;
 34060       HEAP32[i25 >> 2] = i39;
 34061       HEAP32[i25 + 4 >> 2] = i33;
 34062       i40 = 1;
 34063      } else {
 34064       i37 = 0;
 34065       if ((i33 | 0) < (i37 | 0) | (i33 | 0) == (i37 | 0) & i39 >>> 0 < 0 >>> 0) {
 34066        HEAP32[i5 >> 2] = -1;
 34067        i37 = _i64Subtract(0, 0, i39, i33) | 0;
 34068        HEAP32[i25 >> 2] = i37;
 34069        HEAP32[i25 + 4 >> 2] = tempRet0;
 34070        i40 = -1;
 34071        break;
 34072       } else {
 34073        HEAP32[i5 >> 2] = 0;
 34074        HEAP32[i25 >> 2] = 0;
 34075        HEAP32[i25 + 4 >> 2] = 0;
 34076        i40 = 0;
 34077        break;
 34080     } while (0);
 34081     i33 = 0;
 34082     if ((i35 | 0) > (i33 | 0) | (i35 | 0) == (i33 | 0) & i32 >>> 0 > 0 >>> 0) {
 34083      HEAP32[i26 >> 2] = i32;
 34084      HEAP32[i26 + 4 >> 2] = i35;
 34085     } else {
 34086      i33 = 0;
 34087      if ((i35 | 0) < (i33 | 0) | (i35 | 0) == (i33 | 0) & i32 >>> 0 < 0 >>> 0) {
 34088       i33 = -i40 | 0;
 34089       HEAP32[i5 >> 2] = i33;
 34090       i39 = _i64Subtract(0, 0, i32, i35) | 0;
 34091       i41 = i33;
 34092       i42 = 0;
 34093       i43 = tempRet0;
 34094       i44 = i39;
 34095      } else {
 34096       i41 = i40;
 34097       i42 = 1;
 34098       i43 = 0;
 34099       i44 = 0;
 34101      HEAP32[i26 >> 2] = i44;
 34102      HEAP32[i26 + 4 >> 2] = i43;
 34103      if ((i41 | 0) == 0 & i42) {
 34104       i45 = i29;
 34105       break;
 34108     if ((i29 | 0) == 0) {
 34109      HEAP32[i27 >> 2] = HEAP32[i28 >> 2];
 34110      HEAP32[i27 + 4 >> 2] = HEAP32[i28 + 4 >> 2];
 34111      HEAP32[i27 + 8 >> 2] = HEAP32[i28 + 8 >> 2];
 34112      HEAP32[i27 + 12 >> 2] = HEAP32[i28 + 12 >> 2];
 34113      HEAP32[i27 + 16 >> 2] = HEAP32[i28 + 16 >> 2];
 34114      i45 = i30;
 34115      break;
 34117     i39 = __ZNK20btConvexHullInternal10Rational647compareERKS0_(i10, i7) | 0;
 34118     if ((i39 | 0) < 0) {
 34119      HEAP32[i27 >> 2] = HEAP32[i28 >> 2];
 34120      HEAP32[i27 + 4 >> 2] = HEAP32[i28 + 4 >> 2];
 34121      HEAP32[i27 + 8 >> 2] = HEAP32[i28 + 8 >> 2];
 34122      HEAP32[i27 + 12 >> 2] = HEAP32[i28 + 12 >> 2];
 34123      HEAP32[i27 + 16 >> 2] = HEAP32[i28 + 16 >> 2];
 34124      i45 = i30;
 34125      break;
 34127     if ((i39 | 0) != 0) {
 34128      i45 = i29;
 34129      break;
 34131     i45 = (__ZN20btConvexHullInternal14getOrientationEPKNS_4EdgeES2_RKNS_7Point32ES5_(i29, i30, i4, i9) | 0) == 2 ^ i2 ? i29 : i30;
 34132    } else {
 34133     i45 = i29;
 34135   } while (0);
 34136   i39 = HEAP32[i30 >> 2] | 0;
 34137   if ((i39 | 0) == (HEAP32[i11 >> 2] | 0)) {
 34138    i13 = i45;
 34139    break;
 34140   } else {
 34141    i29 = i45;
 34142    i30 = i39;
 34145  STACKTOP = i8;
 34146  return i13 | 0;
 34148 function ___udivmoddi4(i1, i2, i3, i4, i5) {
 34149  i1 = i1 | 0;
 34150  i2 = i2 | 0;
 34151  i3 = i3 | 0;
 34152  i4 = i4 | 0;
 34153  i5 = i5 | 0;
 34154  var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0;
 34155  i6 = i1;
 34156  i7 = i2;
 34157  i8 = i7;
 34158  i9 = i3;
 34159  i10 = i4;
 34160  i11 = i10;
 34161  if ((i8 | 0) == 0) {
 34162   i12 = (i5 | 0) != 0;
 34163   if ((i11 | 0) == 0) {
 34164    if (i12) {
 34165     HEAP32[i5 >> 2] = (i6 >>> 0) % (i9 >>> 0);
 34166     HEAP32[i5 + 4 >> 2] = 0;
 34168    i13 = 0;
 34169    i14 = (i6 >>> 0) / (i9 >>> 0) >>> 0;
 34170    return (tempRet0 = i13, i14) | 0;
 34171   } else {
 34172    if (!i12) {
 34173     i13 = 0;
 34174     i14 = 0;
 34175     return (tempRet0 = i13, i14) | 0;
 34177    HEAP32[i5 >> 2] = i1 | 0;
 34178    HEAP32[i5 + 4 >> 2] = i2 & 0;
 34179    i13 = 0;
 34180    i14 = 0;
 34181    return (tempRet0 = i13, i14) | 0;
 34184  i12 = (i11 | 0) == 0;
 34185  do {
 34186   if ((i9 | 0) == 0) {
 34187    if (i12) {
 34188     if ((i5 | 0) != 0) {
 34189      HEAP32[i5 >> 2] = (i8 >>> 0) % (i9 >>> 0);
 34190      HEAP32[i5 + 4 >> 2] = 0;
 34192     i13 = 0;
 34193     i14 = (i8 >>> 0) / (i9 >>> 0) >>> 0;
 34194     return (tempRet0 = i13, i14) | 0;
 34196    if ((i6 | 0) == 0) {
 34197     if ((i5 | 0) != 0) {
 34198      HEAP32[i5 >> 2] = 0;
 34199      HEAP32[i5 + 4 >> 2] = (i8 >>> 0) % (i11 >>> 0);
 34201     i13 = 0;
 34202     i14 = (i8 >>> 0) / (i11 >>> 0) >>> 0;
 34203     return (tempRet0 = i13, i14) | 0;
 34205    i15 = i11 - 1 | 0;
 34206    if ((i15 & i11 | 0) == 0) {
 34207     if ((i5 | 0) != 0) {
 34208      HEAP32[i5 >> 2] = i1 | 0;
 34209      HEAP32[i5 + 4 >> 2] = i15 & i8 | i2 & 0;
 34211     i13 = 0;
 34212     i14 = i8 >>> ((_llvm_cttz_i32(i11 | 0) | 0) >>> 0);
 34213     return (tempRet0 = i13, i14) | 0;
 34215    i15 = (_llvm_ctlz_i32(i11 | 0) | 0) - (_llvm_ctlz_i32(i8 | 0) | 0) | 0;
 34216    if (i15 >>> 0 <= 30) {
 34217     i16 = i15 + 1 | 0;
 34218     i17 = 31 - i15 | 0;
 34219     i18 = i16;
 34220     i19 = i8 << i17 | i6 >>> (i16 >>> 0);
 34221     i20 = i8 >>> (i16 >>> 0);
 34222     i21 = 0;
 34223     i22 = i6 << i17;
 34224     break;
 34226    if ((i5 | 0) == 0) {
 34227     i13 = 0;
 34228     i14 = 0;
 34229     return (tempRet0 = i13, i14) | 0;
 34231    HEAP32[i5 >> 2] = i1 | 0;
 34232    HEAP32[i5 + 4 >> 2] = i7 | i2 & 0;
 34233    i13 = 0;
 34234    i14 = 0;
 34235    return (tempRet0 = i13, i14) | 0;
 34236   } else {
 34237    if (!i12) {
 34238     i17 = (_llvm_ctlz_i32(i11 | 0) | 0) - (_llvm_ctlz_i32(i8 | 0) | 0) | 0;
 34239     if (i17 >>> 0 <= 31) {
 34240      i16 = i17 + 1 | 0;
 34241      i15 = 31 - i17 | 0;
 34242      i23 = i17 - 31 >> 31;
 34243      i18 = i16;
 34244      i19 = i6 >>> (i16 >>> 0) & i23 | i8 << i15;
 34245      i20 = i8 >>> (i16 >>> 0) & i23;
 34246      i21 = 0;
 34247      i22 = i6 << i15;
 34248      break;
 34250     if ((i5 | 0) == 0) {
 34251      i13 = 0;
 34252      i14 = 0;
 34253      return (tempRet0 = i13, i14) | 0;
 34255     HEAP32[i5 >> 2] = i1 | 0;
 34256     HEAP32[i5 + 4 >> 2] = i7 | i2 & 0;
 34257     i13 = 0;
 34258     i14 = 0;
 34259     return (tempRet0 = i13, i14) | 0;
 34261    i15 = i9 - 1 | 0;
 34262    if ((i15 & i9 | 0) != 0) {
 34263     i23 = (_llvm_ctlz_i32(i9 | 0) | 0) + 33 - (_llvm_ctlz_i32(i8 | 0) | 0) | 0;
 34264     i16 = 64 - i23 | 0;
 34265     i17 = 32 - i23 | 0;
 34266     i24 = i17 >> 31;
 34267     i25 = i23 - 32 | 0;
 34268     i26 = i25 >> 31;
 34269     i18 = i23;
 34270     i19 = i17 - 1 >> 31 & i8 >>> (i25 >>> 0) | (i8 << i17 | i6 >>> (i23 >>> 0)) & i26;
 34271     i20 = i26 & i8 >>> (i23 >>> 0);
 34272     i21 = i6 << i16 & i24;
 34273     i22 = (i8 << i16 | i6 >>> (i25 >>> 0)) & i24 | i6 << i17 & i23 - 33 >> 31;
 34274     break;
 34276    if ((i5 | 0) != 0) {
 34277     HEAP32[i5 >> 2] = i15 & i6;
 34278     HEAP32[i5 + 4 >> 2] = 0;
 34280    if ((i9 | 0) == 1) {
 34281     i13 = i7 | i2 & 0;
 34282     i14 = i1 | 0 | 0;
 34283     return (tempRet0 = i13, i14) | 0;
 34284    } else {
 34285     i15 = _llvm_cttz_i32(i9 | 0) | 0;
 34286     i13 = i8 >>> (i15 >>> 0) | 0;
 34287     i14 = i8 << 32 - i15 | i6 >>> (i15 >>> 0) | 0;
 34288     return (tempRet0 = i13, i14) | 0;
 34291  } while (0);
 34292  if ((i18 | 0) == 0) {
 34293   i27 = i22;
 34294   i28 = i21;
 34295   i29 = i20;
 34296   i30 = i19;
 34297   i31 = 0;
 34298   i32 = 0;
 34299  } else {
 34300   i6 = i3 | 0 | 0;
 34301   i3 = i10 | i4 & 0;
 34302   i4 = _i64Add(i6, i3, -1, -1) | 0;
 34303   i10 = tempRet0;
 34304   i8 = i22;
 34305   i22 = i21;
 34306   i21 = i20;
 34307   i20 = i19;
 34308   i19 = i18;
 34309   i18 = 0;
 34310   while (1) {
 34311    i33 = i22 >>> 31 | i8 << 1;
 34312    i34 = i18 | i22 << 1;
 34313    i9 = i20 << 1 | i8 >>> 31 | 0;
 34314    i1 = i20 >>> 31 | i21 << 1 | 0;
 34315    _i64Subtract(i4, i10, i9, i1) | 0;
 34316    i2 = tempRet0;
 34317    i7 = i2 >> 31 | ((i2 | 0) < 0 ? -1 : 0) << 1;
 34318    i35 = i7 & 1;
 34319    i36 = _i64Subtract(i9, i1, i7 & i6, (((i2 | 0) < 0 ? -1 : 0) >> 31 | ((i2 | 0) < 0 ? -1 : 0) << 1) & i3) | 0;
 34320    i37 = tempRet0;
 34321    i2 = i19 - 1 | 0;
 34322    if ((i2 | 0) == 0) {
 34323     break;
 34324    } else {
 34325     i8 = i33;
 34326     i22 = i34;
 34327     i21 = i37;
 34328     i20 = i36;
 34329     i19 = i2;
 34330     i18 = i35;
 34333   i27 = i33;
 34334   i28 = i34;
 34335   i29 = i37;
 34336   i30 = i36;
 34337   i31 = 0;
 34338   i32 = i35;
 34340  i35 = i28;
 34341  i28 = 0;
 34342  if ((i5 | 0) != 0) {
 34343   HEAP32[i5 >> 2] = i30;
 34344   HEAP32[i5 + 4 >> 2] = i29;
 34346  i13 = (i35 | 0) >>> 31 | (i27 | i28) << 1 | (i28 << 1 | i35 >>> 31) & 0 | i31;
 34347  i14 = (i35 << 1 | 0 >>> 31) & -2 | i32;
 34348  return (tempRet0 = i13, i14) | 0;
 34350 function __ZN11btRigidBody18proceedToTransformERK11btTransform(i1, i2) {
 34351  i1 = i1 | 0;
 34352  i2 = i2 | 0;
 34353  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0;
 34354  i3 = i1 + 68 | 0;
 34355  if ((HEAP32[i1 + 204 >> 2] & 3 | 0) == 0) {
 34356   i4 = i3;
 34357   i5 = i2;
 34358   HEAP32[i4 >> 2] = HEAP32[i5 >> 2];
 34359   HEAP32[i4 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
 34360   HEAP32[i4 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
 34361   HEAP32[i4 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
 34362   i4 = i1 + 84 | 0;
 34363   i6 = i2 + 16 | 0;
 34364   HEAP32[i4 >> 2] = HEAP32[i6 >> 2];
 34365   HEAP32[i4 + 4 >> 2] = HEAP32[i6 + 4 >> 2];
 34366   HEAP32[i4 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
 34367   HEAP32[i4 + 12 >> 2] = HEAP32[i6 + 12 >> 2];
 34368   i4 = i1 + 100 | 0;
 34369   i7 = i2 + 32 | 0;
 34370   HEAP32[i4 >> 2] = HEAP32[i7 >> 2];
 34371   HEAP32[i4 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
 34372   HEAP32[i4 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
 34373   HEAP32[i4 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
 34374   i4 = i1 + 116 | 0;
 34375   i8 = i2 + 48 | 0;
 34376   HEAP32[i4 >> 2] = HEAP32[i8 >> 2];
 34377   HEAP32[i4 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
 34378   HEAP32[i4 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
 34379   HEAP32[i4 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
 34380   i9 = i1 + 4 | 0;
 34381   i10 = i5;
 34382   i11 = i1 + 20 | 0;
 34383   i12 = i6;
 34384   i13 = i1 + 36 | 0;
 34385   i14 = i7;
 34386   i15 = i1 + 52 | 0;
 34387   i16 = i8;
 34388  } else {
 34389   i8 = i3;
 34390   i3 = i1 + 4 | 0;
 34391   HEAP32[i8 >> 2] = HEAP32[i3 >> 2];
 34392   HEAP32[i8 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
 34393   HEAP32[i8 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
 34394   HEAP32[i8 + 12 >> 2] = HEAP32[i3 + 12 >> 2];
 34395   i8 = i1 + 84 | 0;
 34396   i7 = i1 + 20 | 0;
 34397   HEAP32[i8 >> 2] = HEAP32[i7 >> 2];
 34398   HEAP32[i8 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
 34399   HEAP32[i8 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
 34400   HEAP32[i8 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
 34401   i8 = i1 + 100 | 0;
 34402   i6 = i1 + 36 | 0;
 34403   HEAP32[i8 >> 2] = HEAP32[i6 >> 2];
 34404   HEAP32[i8 + 4 >> 2] = HEAP32[i6 + 4 >> 2];
 34405   HEAP32[i8 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
 34406   HEAP32[i8 + 12 >> 2] = HEAP32[i6 + 12 >> 2];
 34407   i8 = i1 + 116 | 0;
 34408   i5 = i1 + 52 | 0;
 34409   HEAP32[i8 >> 2] = HEAP32[i5 >> 2];
 34410   HEAP32[i8 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
 34411   HEAP32[i8 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
 34412   HEAP32[i8 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
 34413   i9 = i3;
 34414   i10 = i2;
 34415   i11 = i7;
 34416   i12 = i2 + 16 | 0;
 34417   i13 = i6;
 34418   i14 = i2 + 32 | 0;
 34419   i15 = i5;
 34420   i16 = i2 + 48 | 0;
 34422  i2 = i1 + 132 | 0;
 34423  i5 = i1 + 304 | 0;
 34424  HEAP32[i2 >> 2] = HEAP32[i5 >> 2];
 34425  HEAP32[i2 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
 34426  HEAP32[i2 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
 34427  HEAP32[i2 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
 34428  i5 = i1 + 148 | 0;
 34429  i2 = i1 + 320 | 0;
 34430  HEAP32[i5 >> 2] = HEAP32[i2 >> 2];
 34431  HEAP32[i5 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
 34432  HEAP32[i5 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
 34433  HEAP32[i5 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
 34434  HEAP32[i9 >> 2] = HEAP32[i10 >> 2];
 34435  HEAP32[i9 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
 34436  HEAP32[i9 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
 34437  HEAP32[i9 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
 34438  HEAP32[i11 >> 2] = HEAP32[i12 >> 2];
 34439  HEAP32[i11 + 4 >> 2] = HEAP32[i12 + 4 >> 2];
 34440  HEAP32[i11 + 8 >> 2] = HEAP32[i12 + 8 >> 2];
 34441  HEAP32[i11 + 12 >> 2] = HEAP32[i12 + 12 >> 2];
 34442  HEAP32[i13 >> 2] = HEAP32[i14 >> 2];
 34443  HEAP32[i13 + 4 >> 2] = HEAP32[i14 + 4 >> 2];
 34444  HEAP32[i13 + 8 >> 2] = HEAP32[i14 + 8 >> 2];
 34445  HEAP32[i13 + 12 >> 2] = HEAP32[i14 + 12 >> 2];
 34446  HEAP32[i15 >> 2] = HEAP32[i16 >> 2];
 34447  HEAP32[i15 + 4 >> 2] = HEAP32[i16 + 4 >> 2];
 34448  HEAP32[i15 + 8 >> 2] = HEAP32[i16 + 8 >> 2];
 34449  HEAP32[i15 + 12 >> 2] = HEAP32[i16 + 12 >> 2];
 34450  d17 = +HEAPF32[i1 + 4 >> 2];
 34451  d18 = +HEAPF32[i1 + 388 >> 2];
 34452  d19 = d17 * d18;
 34453  d20 = +HEAPF32[i1 + 8 >> 2];
 34454  d21 = +HEAPF32[i1 + 392 >> 2];
 34455  d22 = d20 * d21;
 34456  d23 = +HEAPF32[i1 + 12 >> 2];
 34457  d24 = +HEAPF32[i1 + 396 >> 2];
 34458  d25 = d23 * d24;
 34459  d26 = +HEAPF32[i1 + 20 >> 2];
 34460  d27 = d18 * d26;
 34461  d28 = +HEAPF32[i1 + 24 >> 2];
 34462  d29 = d21 * d28;
 34463  d30 = +HEAPF32[i1 + 28 >> 2];
 34464  d31 = d24 * d30;
 34465  d32 = +HEAPF32[i1 + 36 >> 2];
 34466  d33 = d18 * d32;
 34467  d18 = +HEAPF32[i1 + 40 >> 2];
 34468  d34 = d21 * d18;
 34469  d21 = +HEAPF32[i1 + 44 >> 2];
 34470  d35 = d24 * d21;
 34471  HEAPF32[i1 + 256 >> 2] = d17 * d19 + d20 * d22 + d23 * d25;
 34472  HEAPF32[i1 + 260 >> 2] = d19 * d26 + d22 * d28 + d25 * d30;
 34473  HEAPF32[i1 + 264 >> 2] = d19 * d32 + d22 * d18 + d25 * d21;
 34474  HEAPF32[i1 + 268 >> 2] = 0.0;
 34475  HEAPF32[i1 + 272 >> 2] = d17 * d27 + d20 * d29 + d23 * d31;
 34476  HEAPF32[i1 + 276 >> 2] = d26 * d27 + d28 * d29 + d30 * d31;
 34477  HEAPF32[i1 + 280 >> 2] = d27 * d32 + d29 * d18 + d31 * d21;
 34478  HEAPF32[i1 + 284 >> 2] = 0.0;
 34479  HEAPF32[i1 + 288 >> 2] = d17 * d33 + d20 * d34 + d23 * d35;
 34480  HEAPF32[i1 + 292 >> 2] = d26 * d33 + d28 * d34 + d30 * d35;
 34481  HEAPF32[i1 + 296 >> 2] = d32 * d33 + d18 * d34 + d21 * d35;
 34482  HEAPF32[i1 + 300 >> 2] = 0.0;
 34483  return;
 34485 function __ZN9btHashMapI20btInternalVertexPair14btInternalEdgeE6insertERKS0_RKS1_(i1, i2, i3) {
 34486  i1 = i1 | 0;
 34487  i2 = i2 | 0;
 34488  i3 = i3 | 0;
 34489  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0;
 34490  i4 = i2 | 0;
 34491  i5 = HEAP16[i4 >> 1] | 0;
 34492  i6 = i2 + 2 | 0;
 34493  i7 = HEAP16[i6 >> 1] | 0;
 34494  i8 = i1 + 48 | 0;
 34495  i9 = HEAP32[i8 >> 2] | 0;
 34496  i10 = ((i7 & 65535) << 16) + (i5 << 16 >> 16) & i9 - 1;
 34497  L2113 : do {
 34498   if (i10 >>> 0 < (HEAP32[i1 + 4 >> 2] | 0) >>> 0) {
 34499    i11 = HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + (i10 << 2) >> 2] | 0;
 34500    if ((i11 | 0) == -1) {
 34501     break;
 34503    i12 = HEAP32[i1 + 72 >> 2] | 0;
 34504    i13 = i1 + 32 | 0;
 34505    i14 = i11;
 34506    while (1) {
 34507     if (i5 << 16 >> 16 == (HEAP16[i12 + (i14 << 2) >> 1] | 0)) {
 34508      if (i7 << 16 >> 16 == (HEAP16[i12 + (i14 << 2) + 2 >> 1] | 0)) {
 34509       break;
 34512     i11 = HEAP32[(HEAP32[i13 >> 2] | 0) + (i14 << 2) >> 2] | 0;
 34513     if ((i11 | 0) == -1) {
 34514      break L2113;
 34515     } else {
 34516      i14 = i11;
 34519    if ((i14 | 0) == -1) {
 34520     break;
 34522    i13 = i3;
 34523    i12 = (HEAP32[i1 + 52 >> 2] | 0) + (i14 << 2) | 0;
 34524    tempBigInt = HEAPU16[i13 >> 1] | HEAPU16[i13 + 2 >> 1] << 16;
 34525    HEAP16[i12 >> 1] = tempBigInt & 65535;
 34526    HEAP16[i12 + 2 >> 1] = tempBigInt >> 16;
 34527    return;
 34529  } while (0);
 34530  i7 = i1 + 44 | 0;
 34531  i5 = HEAP32[i7 >> 2] | 0;
 34532  do {
 34533   if ((i5 | 0) == (i9 | 0)) {
 34534    i12 = (i9 | 0) == 0 ? 1 : i9 << 1;
 34535    if ((i9 | 0) >= (i12 | 0)) {
 34536     i15 = i9;
 34537     break;
 34539    if ((i12 | 0) == 0) {
 34540     i16 = 0;
 34541     i17 = i9;
 34542    } else {
 34543     i13 = __Z22btAlignedAllocInternalji(i12 << 2, 16) | 0;
 34544     i16 = i13;
 34545     i17 = HEAP32[i7 >> 2] | 0;
 34547    i13 = i1 + 52 | 0;
 34548    if ((i17 | 0) > 0) {
 34549     i11 = 0;
 34550     do {
 34551      i18 = i16 + (i11 << 2) | 0;
 34552      if ((i18 | 0) != 0) {
 34553       i19 = (HEAP32[i13 >> 2] | 0) + (i11 << 2) | 0;
 34554       i20 = i18;
 34555       tempBigInt = HEAPU16[i19 >> 1] | HEAPU16[i19 + 2 >> 1] << 16;
 34556       HEAP16[i20 >> 1] = tempBigInt & 65535;
 34557       HEAP16[i20 + 2 >> 1] = tempBigInt >> 16;
 34559      i11 = i11 + 1 | 0;
 34560     } while ((i11 | 0) < (i17 | 0));
 34562    i11 = HEAP32[i13 >> 2] | 0;
 34563    i14 = i1 + 56 | 0;
 34564    if ((i11 | 0) != 0) {
 34565     if ((HEAP8[i14] | 0) != 0) {
 34566      __Z21btAlignedFreeInternalPv(i11);
 34568     HEAP32[i13 >> 2] = 0;
 34570    HEAP8[i14] = 1;
 34571    HEAP32[i13 >> 2] = i16;
 34572    HEAP32[i8 >> 2] = i12;
 34573    i15 = HEAP32[i7 >> 2] | 0;
 34574   } else {
 34575    i15 = i5;
 34577  } while (0);
 34578  i16 = (HEAP32[i1 + 52 >> 2] | 0) + (i15 << 2) | 0;
 34579  if ((i16 | 0) == 0) {
 34580   i21 = i15;
 34581  } else {
 34582   i15 = i3;
 34583   i3 = i16;
 34584   tempBigInt = HEAPU16[i15 >> 1] | HEAPU16[i15 + 2 >> 1] << 16;
 34585   HEAP16[i3 >> 1] = tempBigInt & 65535;
 34586   HEAP16[i3 + 2 >> 1] = tempBigInt >> 16;
 34587   i21 = HEAP32[i7 >> 2] | 0;
 34589  HEAP32[i7 >> 2] = i21 + 1;
 34590  i21 = i1 + 64 | 0;
 34591  i7 = HEAP32[i21 >> 2] | 0;
 34592  i3 = i1 + 68 | 0;
 34593  do {
 34594   if ((i7 | 0) == (HEAP32[i3 >> 2] | 0)) {
 34595    i15 = (i7 | 0) == 0 ? 1 : i7 << 1;
 34596    if ((i7 | 0) >= (i15 | 0)) {
 34597     i22 = i7;
 34598     break;
 34600    if ((i15 | 0) == 0) {
 34601     i23 = 0;
 34602     i24 = i7;
 34603    } else {
 34604     i16 = __Z22btAlignedAllocInternalji(i15 << 2, 16) | 0;
 34605     i23 = i16;
 34606     i24 = HEAP32[i21 >> 2] | 0;
 34608    i16 = i1 + 72 | 0;
 34609    if ((i24 | 0) > 0) {
 34610     i17 = 0;
 34611     do {
 34612      i14 = i23 + (i17 << 2) | 0;
 34613      if ((i14 | 0) != 0) {
 34614       i11 = (HEAP32[i16 >> 2] | 0) + (i17 << 2) | 0;
 34615       i20 = i14;
 34616       tempBigInt = HEAPU16[i11 >> 1] | HEAPU16[i11 + 2 >> 1] << 16;
 34617       HEAP16[i20 >> 1] = tempBigInt & 65535;
 34618       HEAP16[i20 + 2 >> 1] = tempBigInt >> 16;
 34620      i17 = i17 + 1 | 0;
 34621     } while ((i17 | 0) < (i24 | 0));
 34623    i17 = HEAP32[i16 >> 2] | 0;
 34624    i12 = i1 + 76 | 0;
 34625    if ((i17 | 0) != 0) {
 34626     if ((HEAP8[i12] | 0) != 0) {
 34627      __Z21btAlignedFreeInternalPv(i17);
 34629     HEAP32[i16 >> 2] = 0;
 34631    HEAP8[i12] = 1;
 34632    HEAP32[i16 >> 2] = i23;
 34633    HEAP32[i3 >> 2] = i15;
 34634    i22 = HEAP32[i21 >> 2] | 0;
 34635   } else {
 34636    i22 = i7;
 34638  } while (0);
 34639  i7 = (HEAP32[i1 + 72 >> 2] | 0) + (i22 << 2) | 0;
 34640  if ((i7 | 0) == 0) {
 34641   i25 = i22;
 34642  } else {
 34643   i22 = i2;
 34644   i2 = i7;
 34645   tempBigInt = HEAPU16[i22 >> 1] | HEAPU16[i22 + 2 >> 1] << 16;
 34646   HEAP16[i2 >> 1] = tempBigInt & 65535;
 34647   HEAP16[i2 + 2 >> 1] = tempBigInt >> 16;
 34648   i25 = HEAP32[i21 >> 2] | 0;
 34650  HEAP32[i21 >> 2] = i25 + 1;
 34651  if ((i9 | 0) < (HEAP32[i8 >> 2] | 0)) {
 34652   __ZN9btHashMapI20btInternalVertexPair14btInternalEdgeE10growTablesERKS0_(i1, 0);
 34653   i26 = (HEAPU16[i6 >> 1] << 16) + (HEAP16[i4 >> 1] | 0) & (HEAP32[i8 >> 2] | 0) - 1;
 34654  } else {
 34655   i26 = i10;
 34657  i10 = (HEAP32[i1 + 12 >> 2] | 0) + (i26 << 2) | 0;
 34658  HEAP32[(HEAP32[i1 + 32 >> 2] | 0) + (i5 << 2) >> 2] = HEAP32[i10 >> 2];
 34659  HEAP32[i10 >> 2] = i5;
 34660  return;
 34662 function __ZN24btPerturbedContactResult15addContactPointERK9btVector3S2_f(i1, i2, i3, d4) {
 34663  i1 = i1 | 0;
 34664  i2 = i2 | 0;
 34665  i3 = i3 | 0;
 34666  d4 = +d4;
 34667  var i5 = 0, i6 = 0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0;
 34668  i5 = STACKTOP;
 34669  STACKTOP = STACKTOP + 16 | 0;
 34670  i6 = i5 | 0;
 34671  d7 = +HEAPF32[i2 >> 2];
 34672  d8 = +HEAPF32[i2 + 4 >> 2];
 34673  d9 = +HEAPF32[i2 + 8 >> 2];
 34674  d10 = +HEAPF32[i3 >> 2];
 34675  d11 = d7 * d4 + d10;
 34676  d12 = +HEAPF32[i3 + 4 >> 2];
 34677  d13 = d8 * d4 + d12;
 34678  d14 = +HEAPF32[i3 + 8 >> 2];
 34679  d15 = d9 * d4 + d14;
 34680  i3 = i1 + 292 | 0;
 34681  if ((HEAP8[i1 + 356 | 0] | 0) == 0) {
 34682   d4 = +HEAPF32[i1 + 228 >> 2];
 34683   d16 = +HEAPF32[i1 + 244 >> 2];
 34684   d17 = +HEAPF32[i1 + 260 >> 2];
 34685   d18 = +HEAPF32[i1 + 232 >> 2];
 34686   d19 = +HEAPF32[i1 + 248 >> 2];
 34687   d20 = +HEAPF32[i1 + 264 >> 2];
 34688   d21 = +HEAPF32[i1 + 236 >> 2];
 34689   d22 = +HEAPF32[i1 + 252 >> 2];
 34690   d23 = +HEAPF32[i1 + 268 >> 2];
 34691   d24 = -0.0 - +HEAPF32[i1 + 276 >> 2];
 34692   d25 = -0.0 - +HEAPF32[i1 + 280 >> 2];
 34693   d26 = -0.0 - +HEAPF32[i1 + 284 >> 2];
 34694   d27 = d4 * d24 + d16 * d25 + d17 * d26;
 34695   d28 = d18 * d24 + d19 * d25 + d20 * d26;
 34696   d29 = d21 * d24 + d22 * d25 + d23 * d26;
 34697   d26 = +HEAPF32[i3 >> 2];
 34698   d25 = +HEAPF32[i1 + 296 >> 2];
 34699   d24 = +HEAPF32[i1 + 300 >> 2];
 34700   d30 = +HEAPF32[i1 + 308 >> 2];
 34701   d31 = +HEAPF32[i1 + 312 >> 2];
 34702   d32 = +HEAPF32[i1 + 316 >> 2];
 34703   d33 = +HEAPF32[i1 + 324 >> 2];
 34704   d34 = +HEAPF32[i1 + 328 >> 2];
 34705   d35 = +HEAPF32[i1 + 332 >> 2];
 34706   d36 = d14 * (d17 * d26 + d20 * d25 + d23 * d24) + (d10 * (d4 * d26 + d18 * d25 + d21 * d24) + d12 * (d16 * d26 + d19 * d25 + d22 * d24)) + (d24 * d29 + (d26 * d27 + d25 * d28) + +HEAPF32[i1 + 340 >> 2]);
 34707   d25 = d14 * (d17 * d30 + d20 * d31 + d23 * d32) + (d10 * (d4 * d30 + d18 * d31 + d21 * d32) + d12 * (d16 * d30 + d19 * d31 + d22 * d32)) + (d27 * d30 + d28 * d31 + d29 * d32 + +HEAPF32[i1 + 344 >> 2]);
 34708   d32 = d27 * d33 + d28 * d34 + d29 * d35 + +HEAPF32[i1 + 348 >> 2] + (d14 * (d17 * d33 + d20 * d34 + d23 * d35) + (d10 * (d4 * d33 + d18 * d34 + d21 * d35) + d12 * (d16 * d33 + d19 * d34 + d22 * d35)));
 34709   HEAPF32[i6 >> 2] = d36;
 34710   HEAPF32[i6 + 4 >> 2] = d25;
 34711   HEAPF32[i6 + 8 >> 2] = d32;
 34712   HEAPF32[i6 + 12 >> 2] = 0.0;
 34713   d37 = d7 * (d11 - d36) + d8 * (d13 - d25) + d9 * (d15 - d32);
 34714   i38 = i1 + 160 | 0;
 34715   i39 = HEAP32[i38 >> 2] | 0;
 34716   i40 = i39;
 34717   i41 = HEAP32[i40 >> 2] | 0;
 34718   i42 = i41 + 16 | 0;
 34719   i43 = HEAP32[i42 >> 2] | 0;
 34720   FUNCTION_TABLE_viiif[i43 & 15](i39, i2, i6, d37);
 34721   STACKTOP = i5;
 34722   return;
 34723  } else {
 34724   d32 = +HEAPF32[i1 + 164 >> 2];
 34725   d25 = +HEAPF32[i1 + 180 >> 2];
 34726   d36 = +HEAPF32[i1 + 196 >> 2];
 34727   d35 = +HEAPF32[i1 + 168 >> 2];
 34728   d22 = +HEAPF32[i1 + 184 >> 2];
 34729   d34 = +HEAPF32[i1 + 200 >> 2];
 34730   d19 = +HEAPF32[i1 + 172 >> 2];
 34731   d33 = +HEAPF32[i1 + 188 >> 2];
 34732   d16 = +HEAPF32[i1 + 204 >> 2];
 34733   d21 = -0.0 - +HEAPF32[i1 + 212 >> 2];
 34734   d18 = -0.0 - +HEAPF32[i1 + 216 >> 2];
 34735   d4 = -0.0 - +HEAPF32[i1 + 220 >> 2];
 34736   d23 = d32 * d21 + d25 * d18 + d36 * d4;
 34737   d20 = d35 * d21 + d22 * d18 + d34 * d4;
 34738   d17 = d19 * d21 + d33 * d18 + d16 * d4;
 34739   d4 = +HEAPF32[i3 >> 2];
 34740   d18 = +HEAPF32[i1 + 296 >> 2];
 34741   d21 = +HEAPF32[i1 + 300 >> 2];
 34742   d29 = +HEAPF32[i1 + 308 >> 2];
 34743   d28 = +HEAPF32[i1 + 312 >> 2];
 34744   d27 = +HEAPF32[i1 + 316 >> 2];
 34745   d31 = +HEAPF32[i1 + 324 >> 2];
 34746   d30 = +HEAPF32[i1 + 328 >> 2];
 34747   d26 = +HEAPF32[i1 + 332 >> 2];
 34748   d24 = d15 * (d36 * d4 + d34 * d18 + d16 * d21) + (d11 * (d32 * d4 + d35 * d18 + d19 * d21) + d13 * (d25 * d4 + d22 * d18 + d33 * d21)) + (d21 * d17 + (d4 * d23 + d18 * d20) + +HEAPF32[i1 + 340 >> 2]);
 34749   d18 = d15 * (d36 * d29 + d34 * d28 + d16 * d27) + (d11 * (d32 * d29 + d35 * d28 + d19 * d27) + d13 * (d25 * d29 + d22 * d28 + d33 * d27)) + (d23 * d29 + d20 * d28 + d17 * d27 + +HEAPF32[i1 + 344 >> 2]);
 34750   d27 = d23 * d31 + d20 * d30 + d17 * d26 + +HEAPF32[i1 + 348 >> 2] + (d15 * (d36 * d31 + d34 * d30 + d16 * d26) + (d11 * (d32 * d31 + d35 * d30 + d19 * d26) + d13 * (d25 * d31 + d22 * d30 + d33 * d26)));
 34751   d26 = d7 * (d24 - d10) + d8 * (d18 - d12) + d9 * (d27 - d14);
 34752   HEAPF32[i6 >> 2] = d24 + d7 * d26;
 34753   HEAPF32[i6 + 4 >> 2] = d18 + d8 * d26;
 34754   HEAPF32[i6 + 8 >> 2] = d27 + d9 * d26;
 34755   HEAPF32[i6 + 12 >> 2] = 0.0;
 34756   d37 = d26;
 34757   i38 = i1 + 160 | 0;
 34758   i39 = HEAP32[i38 >> 2] | 0;
 34759   i40 = i39;
 34760   i41 = HEAP32[i40 >> 2] | 0;
 34761   i42 = i41 + 16 | 0;
 34762   i43 = HEAP32[i42 >> 2] | 0;
 34763   FUNCTION_TABLE_viiif[i43 & 15](i39, i2, i6, d37);
 34764   STACKTOP = i5;
 34765   return;
 34768 function __ZN16btDbvtBroadphase22performDeferredRemovalEP12btDispatcher(i1, i2) {
 34769  i1 = i1 | 0;
 34770  i2 = i2 | 0;
 34771  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0;
 34772  i3 = STACKTOP;
 34773  STACKTOP = STACKTOP + 16 | 0;
 34774  i4 = i3 | 0;
 34775  i5 = i1 + 96 | 0;
 34776  i1 = HEAP32[i5 >> 2] | 0;
 34777  if (!(FUNCTION_TABLE_ii[HEAP32[(HEAP32[i1 >> 2] | 0) + 56 >> 2] & 127](i1) | 0)) {
 34778   STACKTOP = i3;
 34779   return;
 34781  i1 = HEAP32[i5 >> 2] | 0;
 34782  i6 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i1 >> 2] | 0) + 28 >> 2] & 127](i1) | 0;
 34783  i1 = i6 + 4 | 0;
 34784  i7 = HEAP32[i1 >> 2] | 0;
 34785  if ((i7 | 0) > 1) {
 34786   __ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i6, i3 + 8 | 0, 0, i7 - 1 | 0);
 34787   i8 = HEAP32[i1 >> 2] | 0;
 34788  } else {
 34789   i8 = i7;
 34791  do {
 34792   if ((i8 | 0) > 0) {
 34793    i7 = i6 + 12 | 0;
 34794    i9 = 0;
 34795    i10 = 0;
 34796    i11 = 0;
 34797    i12 = 0;
 34798    i13 = i8;
 34799    while (1) {
 34800     i14 = HEAP32[i7 >> 2] | 0;
 34801     i15 = i14 + (i11 << 4) | 0;
 34802     i16 = i15 | 0;
 34803     i17 = HEAP32[i16 >> 2] | 0;
 34804     i18 = i14 + (i11 << 4) + 4 | 0;
 34805     i14 = HEAP32[i18 >> 2] | 0;
 34806     if ((i17 | 0) == (i10 | 0)) {
 34807      if ((i14 | 0) == (i9 | 0)) {
 34808       i19 = i10;
 34809       i20 = i9;
 34810       i21 = 1012;
 34811      } else {
 34812       i22 = i10;
 34813       i21 = 1006;
 34815     } else {
 34816      i22 = i17;
 34817      i21 = 1006;
 34819     do {
 34820      if ((i21 | 0) == 1006) {
 34821       i21 = 0;
 34822       i17 = HEAP32[i22 + 48 >> 2] | 0;
 34823       i23 = HEAP32[i14 + 48 >> 2] | 0;
 34824       if (+HEAPF32[i17 >> 2] > +HEAPF32[i23 + 16 >> 2]) {
 34825        i19 = i22;
 34826        i20 = i14;
 34827        i21 = 1012;
 34828        break;
 34830       if (+HEAPF32[i17 + 16 >> 2] < +HEAPF32[i23 >> 2]) {
 34831        i19 = i22;
 34832        i20 = i14;
 34833        i21 = 1012;
 34834        break;
 34836       if (+HEAPF32[i17 + 4 >> 2] > +HEAPF32[i23 + 20 >> 2]) {
 34837        i19 = i22;
 34838        i20 = i14;
 34839        i21 = 1012;
 34840        break;
 34842       if (+HEAPF32[i17 + 20 >> 2] < +HEAPF32[i23 + 4 >> 2]) {
 34843        i19 = i22;
 34844        i20 = i14;
 34845        i21 = 1012;
 34846        break;
 34848       if (+HEAPF32[i17 + 8 >> 2] > +HEAPF32[i23 + 24 >> 2]) {
 34849        i19 = i22;
 34850        i20 = i14;
 34851        i21 = 1012;
 34852        break;
 34854       if (+HEAPF32[i17 + 24 >> 2] < +HEAPF32[i23 + 8 >> 2]) {
 34855        i19 = i22;
 34856        i20 = i14;
 34857        i21 = 1012;
 34858       } else {
 34859        i24 = i12;
 34860        i25 = i22;
 34861        i26 = i14;
 34862        i27 = i13;
 34865     } while (0);
 34866     if ((i21 | 0) == 1012) {
 34867      i21 = 0;
 34868      i14 = HEAP32[i5 >> 2] | 0;
 34869      FUNCTION_TABLE_viii[HEAP32[(HEAP32[i14 >> 2] | 0) + 32 >> 2] & 127](i14, i15, i2);
 34870      HEAP32[i16 >> 2] = 0;
 34871      HEAP32[i18 >> 2] = 0;
 34872      i24 = i12 + 1 | 0;
 34873      i25 = i19;
 34874      i26 = i20;
 34875      i27 = HEAP32[i1 >> 2] | 0;
 34877     i14 = i11 + 1 | 0;
 34878     if ((i14 | 0) < (i27 | 0)) {
 34879      i9 = i26;
 34880      i10 = i25;
 34881      i11 = i14;
 34882      i12 = i24;
 34883      i13 = i27;
 34884     } else {
 34885      break;
 34888    if ((i27 | 0) > 1) {
 34889     __ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i6, i4, 0, i27 - 1 | 0);
 34890     i28 = HEAP32[i1 >> 2] | 0;
 34891    } else {
 34892     i28 = i27;
 34894    i13 = i28 - i24 | 0;
 34895    if ((i24 | 0) >= 0) {
 34896     i29 = i13;
 34897     break;
 34899    i12 = i6 + 8 | 0;
 34900    if ((HEAP32[i12 >> 2] | 0) < (i13 | 0)) {
 34901     if ((i28 | 0) == (i24 | 0)) {
 34902      i30 = 0;
 34903      i31 = i24;
 34904     } else {
 34905      i11 = __Z22btAlignedAllocInternalji(i13 << 4, 16) | 0;
 34906      i30 = i11;
 34907      i31 = HEAP32[i1 >> 2] | 0;
 34909     if ((i31 | 0) > 0) {
 34910      i11 = 0;
 34911      do {
 34912       i10 = HEAP32[i7 >> 2] | 0;
 34913       HEAP32[i30 + (i11 << 4) >> 2] = HEAP32[i10 + (i11 << 4) >> 2];
 34914       HEAP32[i30 + (i11 << 4) + 4 >> 2] = HEAP32[i10 + (i11 << 4) + 4 >> 2];
 34915       HEAP32[i30 + (i11 << 4) + 8 >> 2] = HEAP32[i10 + (i11 << 4) + 8 >> 2];
 34916       HEAP32[i30 + (i11 << 4) + 12 >> 2] = HEAP32[i10 + (i11 << 4) + 12 >> 2];
 34917       i11 = i11 + 1 | 0;
 34918      } while ((i11 | 0) < (i31 | 0));
 34920     i11 = HEAP32[i7 >> 2] | 0;
 34921     i10 = i6 + 16 | 0;
 34922     if ((i11 | 0) != 0) {
 34923      if ((HEAP8[i10] | 0) != 0) {
 34924       __Z21btAlignedFreeInternalPv(i11);
 34926      HEAP32[i7 >> 2] = 0;
 34928     HEAP8[i10] = 1;
 34929     HEAP32[i7 >> 2] = i30;
 34930     HEAP32[i12 >> 2] = i13;
 34931     i32 = i28;
 34932    } else {
 34933     i32 = i28;
 34935    while (1) {
 34936     i10 = i32 + 1 | 0;
 34937     _memset((HEAP32[i7 >> 2] | 0) + (i32 << 4) | 0, 0, 16);
 34938     if ((i10 | 0) < (i13 | 0)) {
 34939      i32 = i10;
 34940     } else {
 34941      i29 = i13;
 34942      break;
 34945   } else {
 34946    i29 = i8;
 34948  } while (0);
 34949  HEAP32[i1 >> 2] = i29;
 34950  STACKTOP = i3;
 34951  return;
 34953 function __ZN20btConvexHullInternal15computeInternalEiiRNS_16IntermediateHullE(i1, i2, i3, i4) {
 34954  i1 = i1 | 0;
 34955  i2 = i2 | 0;
 34956  i3 = i3 | 0;
 34957  i4 = i4 | 0;
 34958  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0;
 34959  i5 = STACKTOP;
 34960  STACKTOP = STACKTOP + 16 | 0;
 34961  i6 = i5 | 0;
 34962  i7 = i3 - i2 | 0;
 34963  L889 : do {
 34964   if ((i7 | 0) == 1) {
 34965    i8 = HEAP32[(HEAP32[i1 + 92 >> 2] | 0) + (i2 << 2) >> 2] | 0;
 34966   } else if ((i7 | 0) == 2) {
 34967    i9 = HEAP32[(HEAP32[i1 + 92 >> 2] | 0) + (i2 << 2) >> 2] | 0;
 34968    i10 = i9 + 112 | 0;
 34969    i11 = HEAP32[i9 + 88 >> 2] | 0;
 34970    i12 = HEAP32[i9 + 200 >> 2] | 0;
 34971    i13 = (i11 | 0) == (i12 | 0);
 34972    i14 = HEAP32[i9 + 92 >> 2] | 0;
 34973    i15 = HEAP32[i9 + 204 >> 2] | 0;
 34974    i16 = (i14 | 0) == (i15 | 0);
 34975    do {
 34976     if (i13) {
 34977      if (i16) {
 34978       if ((HEAP32[i9 + 96 >> 2] | 0) == (HEAP32[i9 + 208 >> 2] | 0)) {
 34979        i8 = i9;
 34980        break L889;
 34981       } else {
 34982        i17 = i14;
 34984      } else {
 34985       i17 = i15;
 34987      if ((i14 | 0) != (i17 | 0)) {
 34988       i18 = i17;
 34989       i19 = 0;
 34990       i20 = 696;
 34991       break;
 34993      i21 = (HEAP32[i9 + 96 >> 2] | 0) > (HEAP32[i9 + 208 >> 2] | 0);
 34994      i22 = i21 ? i10 : i9;
 34995      HEAP32[i22 >> 2] = i22;
 34996      HEAP32[i22 + 4 >> 2] = i22;
 34997      HEAP32[i4 >> 2] = i22;
 34998      HEAP32[i4 + 4 >> 2] = i22;
 34999      HEAP32[i4 + 8 >> 2] = i22;
 35000      HEAP32[i4 + 12 >> 2] = i22;
 35001      i23 = i22;
 35002      i24 = i21 ? i9 : i10;
 35003     } else {
 35004      i18 = i15;
 35005      i19 = i16;
 35006      i20 = 696;
 35008    } while (0);
 35009    do {
 35010     if ((i20 | 0) == 696) {
 35011      i16 = i14 - i18 | 0;
 35012      HEAP32[i9 >> 2] = i10;
 35013      HEAP32[i9 + 4 >> 2] = i10;
 35014      HEAP32[i10 >> 2] = i9;
 35015      HEAP32[i9 + 116 >> 2] = i9;
 35016      i15 = (i11 - i12 | 0) < 0;
 35017      do {
 35018       if (i15) {
 35019        i20 = 698;
 35020       } else {
 35021        if (i13 & (i16 | 0) < 0) {
 35022         i20 = 698;
 35023         break;
 35025        HEAP32[i4 >> 2] = i10;
 35026        HEAP32[i4 + 4 >> 2] = i9;
 35028      } while (0);
 35029      if ((i20 | 0) == 698) {
 35030       HEAP32[i4 >> 2] = i9;
 35031       HEAP32[i4 + 4 >> 2] = i10;
 35033      i21 = i4 + 8 | 0;
 35034      if ((i16 | 0) < 0 | i19 & i15) {
 35035       HEAP32[i21 >> 2] = i9;
 35036       HEAP32[i4 + 12 >> 2] = i10;
 35037       i23 = i9;
 35038       i24 = i10;
 35039       break;
 35040      } else {
 35041       HEAP32[i21 >> 2] = i10;
 35042       HEAP32[i4 + 12 >> 2] = i9;
 35043       i23 = i9;
 35044       i24 = i10;
 35045       break;
 35048    } while (0);
 35049    i10 = i1 + 48 | 0;
 35050    i9 = __ZN20btConvexHullInternal4PoolINS_4EdgeEE9newObjectEv(i10) | 0;
 35051    i13 = __ZN20btConvexHullInternal4PoolINS_4EdgeEE9newObjectEv(i10) | 0;
 35052    i10 = i9 + 8 | 0;
 35053    HEAP32[i10 >> 2] = i13;
 35054    HEAP32[i13 + 8 >> 2] = i9;
 35055    i12 = i1 + 100 | 0;
 35056    HEAP32[i9 + 20 >> 2] = HEAP32[i12 >> 2];
 35057    HEAP32[i13 + 20 >> 2] = HEAP32[i12 >> 2];
 35058    HEAP32[i9 + 12 >> 2] = i24;
 35059    HEAP32[i13 + 12 >> 2] = i23;
 35060    HEAP32[i9 + 16 >> 2] = 0;
 35061    HEAP32[i13 + 16 >> 2] = 0;
 35062    i13 = i1 + 116 | 0;
 35063    i12 = (HEAP32[i13 >> 2] | 0) + 1 | 0;
 35064    HEAP32[i13 >> 2] = i12;
 35065    i13 = i1 + 120 | 0;
 35066    if ((i12 | 0) > (HEAP32[i13 >> 2] | 0)) {
 35067     HEAP32[i13 >> 2] = i12;
 35069    HEAP32[i9 >> 2] = i9;
 35070    HEAP32[i9 + 4 >> 2] = i9;
 35071    HEAP32[i23 + 8 >> 2] = i9;
 35072    i9 = HEAP32[i10 >> 2] | 0;
 35073    HEAP32[i9 >> 2] = i9;
 35074    HEAP32[i9 + 4 >> 2] = i9;
 35075    HEAP32[i24 + 8 >> 2] = i9;
 35076    STACKTOP = i5;
 35077    return;
 35078   } else if ((i7 | 0) == 0) {
 35079    _memset(i4 | 0, 0, 16);
 35080    STACKTOP = i5;
 35081    return;
 35082   } else {
 35083    i9 = ((i7 | 0) / 2 | 0) + i2 | 0;
 35084    i10 = HEAP32[i1 + 92 >> 2] | 0;
 35085    i12 = HEAP32[i10 + (i9 - 1 << 2) >> 2] | 0;
 35086    i13 = HEAP32[i12 + 88 >> 2] | 0;
 35087    i11 = HEAP32[i12 + 92 >> 2] | 0;
 35088    i14 = HEAP32[i12 + 96 >> 2] | 0;
 35089    i12 = i9;
 35090    while (1) {
 35091     if ((i12 | 0) >= (i3 | 0)) {
 35092      break;
 35094     i21 = HEAP32[i10 + (i12 << 2) >> 2] | 0;
 35095     if ((HEAP32[i21 + 88 >> 2] | 0) != (i13 | 0)) {
 35096      break;
 35098     if ((HEAP32[i21 + 92 >> 2] | 0) != (i11 | 0)) {
 35099      break;
 35101     if ((HEAP32[i21 + 96 >> 2] | 0) == (i14 | 0)) {
 35102      i12 = i12 + 1 | 0;
 35103     } else {
 35104      break;
 35107    __ZN20btConvexHullInternal15computeInternalEiiRNS_16IntermediateHullE(i1, i2, i9, i4);
 35108    _memset(i6 | 0, 0, 16);
 35109    __ZN20btConvexHullInternal15computeInternalEiiRNS_16IntermediateHullE(i1, i12, i3, i6);
 35110    __ZN20btConvexHullInternal5mergeERNS_16IntermediateHullES1_(i1, i4, i6);
 35111    STACKTOP = i5;
 35112    return;
 35114  } while (0);
 35115  HEAP32[i8 + 8 >> 2] = 0;
 35116  HEAP32[i8 >> 2] = i8;
 35117  HEAP32[i8 + 4 >> 2] = i8;
 35118  HEAP32[i4 >> 2] = i8;
 35119  HEAP32[i4 + 4 >> 2] = i8;
 35120  HEAP32[i4 + 8 >> 2] = i8;
 35121  HEAP32[i4 + 12 >> 2] = i8;
 35122  STACKTOP = i5;
 35123  return;
 35125 function __ZNK17btCollisionObject9serializeEPvP12btSerializer(i1, i2, i3) {
 35126  i1 = i1 | 0;
 35127  i2 = i2 | 0;
 35128  i3 = i3 | 0;
 35129  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, d8 = 0.0, i9 = 0, i10 = 0, i11 = 0, d12 = 0.0, i13 = 0, i14 = 0, i15 = 0, d16 = 0.0, i17 = 0, i18 = 0, d19 = 0.0, i20 = 0, i21 = 0, i22 = 0, i23 = 0;
 35130  HEAPF32[i2 + 16 >> 2] = +HEAPF32[i1 + 4 >> 2];
 35131  HEAPF32[i2 + 20 >> 2] = +HEAPF32[i1 + 8 >> 2];
 35132  HEAPF32[i2 + 24 >> 2] = +HEAPF32[i1 + 12 >> 2];
 35133  HEAPF32[i2 + 28 >> 2] = +HEAPF32[i1 + 16 >> 2];
 35134  HEAPF32[i2 + 32 >> 2] = +HEAPF32[i1 + 20 >> 2];
 35135  HEAPF32[i2 + 36 >> 2] = +HEAPF32[i1 + 24 >> 2];
 35136  HEAPF32[i2 + 40 >> 2] = +HEAPF32[i1 + 28 >> 2];
 35137  HEAPF32[i2 + 44 >> 2] = +HEAPF32[i1 + 32 >> 2];
 35138  HEAPF32[i2 + 48 >> 2] = +HEAPF32[i1 + 36 >> 2];
 35139  HEAPF32[i2 + 52 >> 2] = +HEAPF32[i1 + 40 >> 2];
 35140  HEAPF32[i2 + 56 >> 2] = +HEAPF32[i1 + 44 >> 2];
 35141  HEAPF32[i2 + 60 >> 2] = +HEAPF32[i1 + 48 >> 2];
 35142  HEAPF32[i2 + 64 >> 2] = +HEAPF32[i1 + 52 >> 2];
 35143  HEAPF32[i2 + 68 >> 2] = +HEAPF32[i1 + 56 >> 2];
 35144  HEAPF32[i2 + 72 >> 2] = +HEAPF32[i1 + 60 >> 2];
 35145  HEAPF32[i2 + 76 >> 2] = +HEAPF32[i1 + 64 >> 2];
 35146  HEAPF32[i2 + 80 >> 2] = +HEAPF32[i1 + 68 >> 2];
 35147  HEAPF32[i2 + 84 >> 2] = +HEAPF32[i1 + 72 >> 2];
 35148  HEAPF32[i2 + 88 >> 2] = +HEAPF32[i1 + 76 >> 2];
 35149  HEAPF32[i2 + 92 >> 2] = +HEAPF32[i1 + 80 >> 2];
 35150  HEAPF32[i2 + 96 >> 2] = +HEAPF32[i1 + 84 >> 2];
 35151  HEAPF32[i2 + 100 >> 2] = +HEAPF32[i1 + 88 >> 2];
 35152  HEAPF32[i2 + 104 >> 2] = +HEAPF32[i1 + 92 >> 2];
 35153  HEAPF32[i2 + 108 >> 2] = +HEAPF32[i1 + 96 >> 2];
 35154  HEAPF32[i2 + 112 >> 2] = +HEAPF32[i1 + 100 >> 2];
 35155  HEAPF32[i2 + 116 >> 2] = +HEAPF32[i1 + 104 >> 2];
 35156  HEAPF32[i2 + 120 >> 2] = +HEAPF32[i1 + 108 >> 2];
 35157  HEAPF32[i2 + 124 >> 2] = +HEAPF32[i1 + 112 >> 2];
 35158  HEAPF32[i2 + 128 >> 2] = +HEAPF32[i1 + 116 >> 2];
 35159  HEAPF32[i2 + 132 >> 2] = +HEAPF32[i1 + 120 >> 2];
 35160  HEAPF32[i2 + 136 >> 2] = +HEAPF32[i1 + 124 >> 2];
 35161  HEAPF32[i2 + 140 >> 2] = +HEAPF32[i1 + 128 >> 2];
 35162  HEAPF32[i2 + 144 >> 2] = +HEAPF32[i1 + 132 >> 2];
 35163  HEAPF32[i2 + 148 >> 2] = +HEAPF32[i1 + 136 >> 2];
 35164  HEAPF32[i2 + 152 >> 2] = +HEAPF32[i1 + 140 >> 2];
 35165  HEAPF32[i2 + 156 >> 2] = +HEAPF32[i1 + 144 >> 2];
 35166  HEAPF32[i2 + 160 >> 2] = +HEAPF32[i1 + 148 >> 2];
 35167  HEAPF32[i2 + 164 >> 2] = +HEAPF32[i1 + 152 >> 2];
 35168  HEAPF32[i2 + 168 >> 2] = +HEAPF32[i1 + 156 >> 2];
 35169  HEAPF32[i2 + 172 >> 2] = +HEAPF32[i1 + 160 >> 2];
 35170  HEAPF32[i2 + 176 >> 2] = +HEAPF32[i1 + 164 >> 2];
 35171  HEAPF32[i2 + 180 >> 2] = +HEAPF32[i1 + 168 >> 2];
 35172  HEAPF32[i2 + 184 >> 2] = +HEAPF32[i1 + 172 >> 2];
 35173  HEAPF32[i2 + 188 >> 2] = +HEAPF32[i1 + 176 >> 2];
 35174  HEAP32[i2 + 220 >> 2] = HEAP32[i1 + 180 >> 2];
 35175  HEAPF32[i2 + 192 >> 2] = +HEAPF32[i1 + 184 >> 2];
 35176  HEAP32[i2 >> 2] = 0;
 35177  i4 = i3;
 35178  HEAP32[i2 + 4 >> 2] = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i4 >> 2] | 0) + 28 >> 2] & 63](i3, HEAP32[i1 + 192 >> 2] | 0) | 0;
 35179  HEAP32[i2 + 8 >> 2] = 0;
 35180  HEAP32[i2 + 224 >> 2] = HEAP32[i1 + 204 >> 2];
 35181  HEAP32[i2 + 228 >> 2] = HEAP32[i1 + 208 >> 2];
 35182  HEAP32[i2 + 232 >> 2] = HEAP32[i1 + 212 >> 2];
 35183  i5 = i1 + 216 | 0;
 35184  i6 = i2 + 236 | 0;
 35185  HEAP32[i6 >> 2] = HEAP32[i5 >> 2];
 35186  HEAP32[i6 >> 2] = HEAP32[i5 >> 2];
 35187  HEAPF32[i2 + 196 >> 2] = +HEAPF32[i1 + 220 >> 2];
 35188  HEAPF32[i2 + 200 >> 2] = +HEAPF32[i1 + 224 >> 2];
 35189  HEAPF32[i2 + 204 >> 2] = +HEAPF32[i1 + 228 >> 2];
 35190  HEAP32[i2 + 240 >> 2] = HEAP32[i1 + 232 >> 2];
 35191  i5 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i4 >> 2] | 0) + 40 >> 2] & 63](i3, i1) | 0;
 35192  i6 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i4 >> 2] | 0) + 28 >> 2] & 63](i3, i5) | 0;
 35193  HEAP32[i2 + 12 >> 2] = i6;
 35194  if ((i6 | 0) == 0) {
 35195   i7 = i1 + 240 | 0;
 35196   d8 = +HEAPF32[i7 >> 2];
 35197   i9 = i2 + 208 | 0;
 35198   i10 = i9;
 35199   HEAPF32[i10 >> 2] = d8;
 35200   i11 = i1 + 244 | 0;
 35201   d12 = +HEAPF32[i11 >> 2];
 35202   i13 = i2 + 212 | 0;
 35203   i14 = i13;
 35204   HEAPF32[i14 >> 2] = d12;
 35205   i15 = i1 + 248 | 0;
 35206   d16 = +HEAPF32[i15 >> 2];
 35207   i17 = i2 + 216 | 0;
 35208   i18 = i17;
 35209   HEAPF32[i18 >> 2] = d16;
 35210   d19 = +HEAPF32[i15 >> 2];
 35211   HEAPF32[i18 >> 2] = d19;
 35212   i20 = i1 + 252 | 0;
 35213   i21 = HEAP32[i20 >> 2] | 0;
 35214   i22 = i2 + 244 | 0;
 35215   i23 = i22;
 35216   HEAP32[i23 >> 2] = i21;
 35217   return 24;
 35219  FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 48 >> 2] & 127](i3, i5);
 35220  i7 = i1 + 240 | 0;
 35221  d8 = +HEAPF32[i7 >> 2];
 35222  i9 = i2 + 208 | 0;
 35223  i10 = i9;
 35224  HEAPF32[i10 >> 2] = d8;
 35225  i11 = i1 + 244 | 0;
 35226  d12 = +HEAPF32[i11 >> 2];
 35227  i13 = i2 + 212 | 0;
 35228  i14 = i13;
 35229  HEAPF32[i14 >> 2] = d12;
 35230  i15 = i1 + 248 | 0;
 35231  d16 = +HEAPF32[i15 >> 2];
 35232  i17 = i2 + 216 | 0;
 35233  i18 = i17;
 35234  HEAPF32[i18 >> 2] = d16;
 35235  d19 = +HEAPF32[i15 >> 2];
 35236  HEAPF32[i18 >> 2] = d19;
 35237  i20 = i1 + 252 | 0;
 35238  i21 = HEAP32[i20 >> 2] | 0;
 35239  i22 = i2 + 244 | 0;
 35240  i23 = i22;
 35241  HEAP32[i23 >> 2] = i21;
 35242  return 24;
 35244 function __ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i1, i2, i3) {
 35245  i1 = i1 | 0;
 35246  i2 = i2 | 0;
 35247  i3 = i3 | 0;
 35248  var i4 = 0, i5 = 0, i6 = 0, d7 = 0.0, d8 = 0.0, d9 = 0.0, i10 = 0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, i16 = 0, i17 = 0, i18 = 0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0;
 35249  i4 = i1 | 0;
 35250  if ((HEAP32[i4 >> 2] | 0) == 0) {
 35251   HEAP32[i4 >> 2] = i3;
 35252   HEAP32[i3 + 32 >> 2] = 0;
 35253   return;
 35255  i5 = HEAP32[i2 + 40 >> 2] | 0;
 35256  if ((i5 | 0) == 0) {
 35257   i6 = i2;
 35258  } else {
 35259   d7 = +HEAPF32[i3 >> 2] + +HEAPF32[i3 + 16 >> 2];
 35260   d8 = +HEAPF32[i3 + 4 >> 2] + +HEAPF32[i3 + 20 >> 2];
 35261   d9 = +HEAPF32[i3 + 8 >> 2] + +HEAPF32[i3 + 24 >> 2];
 35262   i10 = i2;
 35263   i2 = i5;
 35264   while (1) {
 35265    i5 = HEAP32[i10 + 36 >> 2] | 0;
 35266    d11 = d8 - (+HEAPF32[i5 + 4 >> 2] + +HEAPF32[i5 + 20 >> 2]);
 35267    d12 = d9 - (+HEAPF32[i5 + 8 >> 2] + +HEAPF32[i5 + 24 >> 2]);
 35268    d13 = +Math_abs(+(d7 - (+HEAPF32[i5 >> 2] + +HEAPF32[i5 + 16 >> 2])));
 35269    d14 = d13 + +Math_abs(+d11);
 35270    d11 = d14 + +Math_abs(+d12);
 35271    d12 = d8 - (+HEAPF32[i2 + 4 >> 2] + +HEAPF32[i2 + 20 >> 2]);
 35272    d14 = d9 - (+HEAPF32[i2 + 8 >> 2] + +HEAPF32[i2 + 24 >> 2]);
 35273    d13 = +Math_abs(+(d7 - (+HEAPF32[i2 >> 2] + +HEAPF32[i2 + 16 >> 2])));
 35274    d15 = d13 + +Math_abs(+d12);
 35275    i5 = HEAP32[i10 + 36 + ((d11 >= d15 + +Math_abs(+d14)) << 2) >> 2] | 0;
 35276    i16 = HEAP32[i5 + 40 >> 2] | 0;
 35277    if ((i16 | 0) == 0) {
 35278     i6 = i5;
 35279     break;
 35280    } else {
 35281     i10 = i5;
 35282     i2 = i16;
 35286  i2 = i6 + 32 | 0;
 35287  i10 = HEAP32[i2 >> 2] | 0;
 35288  i16 = i1 + 4 | 0;
 35289  i1 = HEAP32[i16 >> 2] | 0;
 35290  do {
 35291   if ((i1 | 0) == 0) {
 35292    i5 = __Z22btAlignedAllocInternalji(44, 16) | 0;
 35293    if ((i5 | 0) == 0) {
 35294     i17 = 0;
 35295     break;
 35297    _memset(i5 | 0, 0, 44);
 35298    i17 = i5;
 35299   } else {
 35300    HEAP32[i16 >> 2] = 0;
 35301    i17 = i1;
 35303  } while (0);
 35304  HEAP32[i17 + 32 >> 2] = i10;
 35305  i1 = i17 + 36 | 0;
 35306  HEAP32[i1 >> 2] = 0;
 35307  i16 = i17 + 40 | 0;
 35308  HEAP32[i16 >> 2] = 0;
 35309  d7 = +HEAPF32[i3 >> 2];
 35310  d9 = +HEAPF32[i6 >> 2];
 35311  d8 = d7 < d9 ? d7 : d9;
 35312  HEAPF32[i17 >> 2] = d8;
 35313  d9 = +HEAPF32[i3 + 16 >> 2];
 35314  d7 = +HEAPF32[i6 + 16 >> 2];
 35315  d14 = d9 > d7 ? d9 : d7;
 35316  HEAPF32[i17 + 16 >> 2] = d14;
 35317  d7 = +HEAPF32[i3 + 4 >> 2];
 35318  d9 = +HEAPF32[i6 + 4 >> 2];
 35319  d15 = d7 < d9 ? d7 : d9;
 35320  HEAPF32[i17 + 4 >> 2] = d15;
 35321  d9 = +HEAPF32[i3 + 20 >> 2];
 35322  d7 = +HEAPF32[i6 + 20 >> 2];
 35323  d11 = d9 > d7 ? d9 : d7;
 35324  HEAPF32[i17 + 20 >> 2] = d11;
 35325  d7 = +HEAPF32[i3 + 8 >> 2];
 35326  d9 = +HEAPF32[i6 + 8 >> 2];
 35327  d12 = d7 < d9 ? d7 : d9;
 35328  HEAPF32[i17 + 8 >> 2] = d12;
 35329  d9 = +HEAPF32[i3 + 24 >> 2];
 35330  d7 = +HEAPF32[i6 + 24 >> 2];
 35331  d13 = d9 > d7 ? d9 : d7;
 35332  HEAPF32[i17 + 24 >> 2] = d13;
 35333  if ((i10 | 0) == 0) {
 35334   HEAP32[i1 >> 2] = i6;
 35335   HEAP32[i2 >> 2] = i17;
 35336   HEAP32[i16 >> 2] = i3;
 35337   HEAP32[i3 + 32 >> 2] = i17;
 35338   HEAP32[i4 >> 2] = i17;
 35339   return;
 35341  HEAP32[i10 + 36 + (((HEAP32[(HEAP32[i2 >> 2] | 0) + 40 >> 2] | 0) == (i6 | 0)) << 2) >> 2] = i17;
 35342  HEAP32[i1 >> 2] = i6;
 35343  HEAP32[i2 >> 2] = i17;
 35344  HEAP32[i16 >> 2] = i3;
 35345  HEAP32[i3 + 32 >> 2] = i17;
 35346  i17 = i10;
 35347  d7 = d8;
 35348  d8 = d15;
 35349  d15 = d12;
 35350  d12 = d14;
 35351  d14 = d11;
 35352  d11 = d13;
 35353  L2338 : while (1) {
 35354   i10 = i17 | 0;
 35355   i3 = i17 + 4 | 0;
 35356   do {
 35357    if (+HEAPF32[i10 >> 2] <= d7) {
 35358     if (+HEAPF32[i3 >> 2] > d8) {
 35359      break;
 35361     if (+HEAPF32[i17 + 8 >> 2] > d15) {
 35362      break;
 35364     if (+HEAPF32[i17 + 16 >> 2] < d12) {
 35365      break;
 35367     if (+HEAPF32[i17 + 20 >> 2] < d14) {
 35368      break;
 35370     if (+HEAPF32[i17 + 24 >> 2] >= d11) {
 35371      i18 = 1980;
 35372      break L2338;
 35375   } while (0);
 35376   i16 = HEAP32[i17 + 36 >> 2] | 0;
 35377   i2 = HEAP32[i17 + 40 >> 2] | 0;
 35378   d13 = +HEAPF32[i16 >> 2];
 35379   d9 = +HEAPF32[i2 >> 2];
 35380   d19 = d13 < d9 ? d13 : d9;
 35381   HEAPF32[i10 >> 2] = d19;
 35382   d9 = +HEAPF32[i16 + 16 >> 2];
 35383   d13 = +HEAPF32[i2 + 16 >> 2];
 35384   d20 = d9 > d13 ? d9 : d13;
 35385   HEAPF32[i17 + 16 >> 2] = d20;
 35386   d13 = +HEAPF32[i16 + 4 >> 2];
 35387   d9 = +HEAPF32[i2 + 4 >> 2];
 35388   d21 = d13 < d9 ? d13 : d9;
 35389   HEAPF32[i3 >> 2] = d21;
 35390   d9 = +HEAPF32[i16 + 20 >> 2];
 35391   d13 = +HEAPF32[i2 + 20 >> 2];
 35392   d22 = d9 > d13 ? d9 : d13;
 35393   HEAPF32[i17 + 20 >> 2] = d22;
 35394   d13 = +HEAPF32[i16 + 8 >> 2];
 35395   d9 = +HEAPF32[i2 + 8 >> 2];
 35396   d23 = d13 < d9 ? d13 : d9;
 35397   HEAPF32[i17 + 8 >> 2] = d23;
 35398   d9 = +HEAPF32[i16 + 24 >> 2];
 35399   d13 = +HEAPF32[i2 + 24 >> 2];
 35400   d24 = d9 > d13 ? d9 : d13;
 35401   HEAPF32[i17 + 24 >> 2] = d24;
 35402   i2 = HEAP32[i17 + 32 >> 2] | 0;
 35403   if ((i2 | 0) == 0) {
 35404    i18 = 1981;
 35405    break;
 35406   } else {
 35407    i17 = i2;
 35408    d7 = d19;
 35409    d8 = d21;
 35410    d15 = d23;
 35411    d12 = d20;
 35412    d14 = d22;
 35413    d11 = d24;
 35416  if ((i18 | 0) == 1980) {
 35417   return;
 35418  } else if ((i18 | 0) == 1981) {
 35419   return;
 35422 function __ZN16btDbvtBroadphase7setAabbEP17btBroadphaseProxyRK9btVector3S4_P12btDispatcher(i1, i2, i3, i4, i5) {
 35423  i1 = i1 | 0;
 35424  i2 = i2 | 0;
 35425  i3 = i3 | 0;
 35426  i4 = i4 | 0;
 35427  i5 = i5 | 0;
 35428  var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, i22 = 0, i23 = 0, i24 = 0;
 35429  i5 = STACKTOP;
 35430  STACKTOP = STACKTOP + 64 | 0;
 35431  i6 = i5 | 0;
 35432  i7 = i5 + 32 | 0;
 35433  i8 = i5 + 48 | 0;
 35434  i9 = i2;
 35435  i10 = i6;
 35436  i11 = i3;
 35437  HEAP32[i10 >> 2] = HEAP32[i11 >> 2];
 35438  HEAP32[i10 + 4 >> 2] = HEAP32[i11 + 4 >> 2];
 35439  HEAP32[i10 + 8 >> 2] = HEAP32[i11 + 8 >> 2];
 35440  HEAP32[i10 + 12 >> 2] = HEAP32[i11 + 12 >> 2];
 35441  i10 = i6 + 16 | 0;
 35442  i12 = i4;
 35443  HEAP32[i10 >> 2] = HEAP32[i12 >> 2];
 35444  HEAP32[i10 + 4 >> 2] = HEAP32[i12 + 4 >> 2];
 35445  HEAP32[i10 + 8 >> 2] = HEAP32[i12 + 8 >> 2];
 35446  HEAP32[i10 + 12 >> 2] = HEAP32[i12 + 12 >> 2];
 35447  i10 = i2 + 60 | 0;
 35448  L880 : do {
 35449   if ((HEAP32[i10 >> 2] | 0) == 2) {
 35450    i4 = i2 + 48 | 0;
 35451    __ZN6btDbvt6removeEP10btDbvtNode(i1 + 44 | 0, HEAP32[i4 >> 2] | 0);
 35452    HEAP32[i4 >> 2] = __ZN6btDbvt6insertERK12btDbvtAabbMmPv(i1 + 4 | 0, i6, i2) | 0;
 35453    i13 = 1;
 35454   } else {
 35455    i4 = i1 + 128 | 0;
 35456    HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + 1;
 35457    i4 = HEAP32[i2 + 48 >> 2] | 0;
 35458    do {
 35459     if (+HEAPF32[i4 >> 2] <= +HEAPF32[i6 + 16 >> 2]) {
 35460      if (+HEAPF32[i4 + 16 >> 2] < +HEAPF32[i6 >> 2]) {
 35461       break;
 35463      if (+HEAPF32[i4 + 4 >> 2] > +HEAPF32[i6 + 20 >> 2]) {
 35464       break;
 35466      if (+HEAPF32[i4 + 20 >> 2] < +HEAPF32[i6 + 4 >> 2]) {
 35467       break;
 35469      if (+HEAPF32[i4 + 8 >> 2] > +HEAPF32[i6 + 24 >> 2]) {
 35470       break;
 35472      if (+HEAPF32[i4 + 24 >> 2] < +HEAPF32[i6 + 8 >> 2]) {
 35473       break;
 35475      d14 = +HEAPF32[i2 + 16 >> 2];
 35476      d15 = +HEAPF32[i3 >> 2] - d14;
 35477      d16 = +HEAPF32[i2 + 20 >> 2];
 35478      d17 = +HEAPF32[i3 + 4 >> 2] - d16;
 35479      d18 = +HEAPF32[i2 + 24 >> 2];
 35480      d19 = +HEAPF32[i3 + 8 >> 2] - d18;
 35481      d20 = +HEAPF32[i1 + 100 >> 2];
 35482      d21 = (+HEAPF32[i2 + 32 >> 2] - d14) * .5 * d20;
 35483      d14 = d20 * (+HEAPF32[i2 + 36 >> 2] - d16) * .5;
 35484      d16 = d20 * (+HEAPF32[i2 + 40 >> 2] - d18) * .5;
 35485      i22 = i7 | 0;
 35486      HEAPF32[i22 >> 2] = d21;
 35487      i23 = i7 + 4 | 0;
 35488      HEAPF32[i23 >> 2] = d14;
 35489      i24 = i7 + 8 | 0;
 35490      HEAPF32[i24 >> 2] = d16;
 35491      HEAPF32[i7 + 12 >> 2] = 0.0;
 35492      if (d15 < 0.0) {
 35493       HEAPF32[i22 >> 2] = -0.0 - d21;
 35495      if (d17 < 0.0) {
 35496       HEAPF32[i23 >> 2] = -0.0 - d14;
 35498      if (d19 < 0.0) {
 35499       HEAPF32[i24 >> 2] = -0.0 - d16;
 35501      if (!(__ZN6btDbvt6updateEP10btDbvtNodeR12btDbvtAabbMmRK9btVector3f(i1 + 4 | 0, i4, i6, i7, .05000000074505806) | 0)) {
 35502       i13 = 0;
 35503       break L880;
 35505      i24 = i1 + 132 | 0;
 35506      HEAP32[i24 >> 2] = (HEAP32[i24 >> 2] | 0) + 1;
 35507      i13 = 1;
 35508      break L880;
 35510    } while (0);
 35511    __ZN6btDbvt6updateEP10btDbvtNodeR12btDbvtAabbMm(i1 + 4 | 0, i4, i6);
 35512    i24 = i1 + 132 | 0;
 35513    HEAP32[i24 >> 2] = (HEAP32[i24 >> 2] | 0) + 1;
 35514    i13 = 1;
 35516  } while (0);
 35517  i6 = i2 + 52 | 0;
 35518  i7 = HEAP32[i6 >> 2] | 0;
 35519  i3 = i2 + 56 | 0;
 35520  i24 = HEAP32[i3 >> 2] | 0;
 35521  if ((i7 | 0) == 0) {
 35522   HEAP32[i1 + 84 + (HEAP32[i10 >> 2] << 2) >> 2] = i24;
 35523  } else {
 35524   HEAP32[i7 + 56 >> 2] = i24;
 35526  i24 = HEAP32[i3 >> 2] | 0;
 35527  if ((i24 | 0) != 0) {
 35528   HEAP32[i24 + 52 >> 2] = HEAP32[i6 >> 2];
 35530  i24 = i2 + 16 | 0;
 35531  HEAP32[i24 >> 2] = HEAP32[i11 >> 2];
 35532  HEAP32[i24 + 4 >> 2] = HEAP32[i11 + 4 >> 2];
 35533  HEAP32[i24 + 8 >> 2] = HEAP32[i11 + 8 >> 2];
 35534  HEAP32[i24 + 12 >> 2] = HEAP32[i11 + 12 >> 2];
 35535  i11 = i2 + 32 | 0;
 35536  HEAP32[i11 >> 2] = HEAP32[i12 >> 2];
 35537  HEAP32[i11 + 4 >> 2] = HEAP32[i12 + 4 >> 2];
 35538  HEAP32[i11 + 8 >> 2] = HEAP32[i12 + 8 >> 2];
 35539  HEAP32[i11 + 12 >> 2] = HEAP32[i12 + 12 >> 2];
 35540  i12 = i1 + 104 | 0;
 35541  HEAP32[i10 >> 2] = HEAP32[i12 >> 2];
 35542  i10 = i1 + 84 + (HEAP32[i12 >> 2] << 2) | 0;
 35543  HEAP32[i6 >> 2] = 0;
 35544  HEAP32[i3 >> 2] = HEAP32[i10 >> 2];
 35545  i3 = HEAP32[i10 >> 2] | 0;
 35546  if ((i3 | 0) != 0) {
 35547   HEAP32[i3 + 52 >> 2] = i9;
 35549  HEAP32[i10 >> 2] = i9;
 35550  if (!i13) {
 35551   STACKTOP = i5;
 35552   return;
 35554  HEAP8[i1 + 154 | 0] = 1;
 35555  if ((HEAP8[i1 + 153 | 0] | 0) != 0) {
 35556   STACKTOP = i5;
 35557   return;
 35559  HEAP32[i8 >> 2] = 4064;
 35560  HEAP32[i8 + 4 >> 2] = i1;
 35561  i13 = i1 + 44 | 0;
 35562  i9 = i2 + 48 | 0;
 35563  i2 = i8 | 0;
 35564  __ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(i13, HEAP32[i13 >> 2] | 0, HEAP32[i9 >> 2] | 0, i2);
 35565  i13 = i1 + 4 | 0;
 35566  __ZN6btDbvt24collideTTpersistentStackEPK10btDbvtNodeS2_RNS_8ICollideE(i13, HEAP32[i13 >> 2] | 0, HEAP32[i9 >> 2] | 0, i2);
 35567  STACKTOP = i5;
 35568  return;
 35570 function __ZN22btVoronoiSimplexSolver22closestPtPointTriangleERK9btVector3S2_S2_S2_R25btSubSimplexClosestResult(i1, i2, i3, i4, i5, i6) {
 35571  i1 = i1 | 0;
 35572  i2 = i2 | 0;
 35573  i3 = i3 | 0;
 35574  i4 = i4 | 0;
 35575  i5 = i5 | 0;
 35576  i6 = i6 | 0;
 35577  var i7 = 0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, i31 = 0, d32 = 0.0, d33 = 0.0;
 35578  i1 = i6 + 16 | 0;
 35579  i7 = HEAP16[i1 >> 1] & -16;
 35580  HEAP16[i1 >> 1] = i7;
 35581  d8 = +HEAPF32[i4 >> 2];
 35582  d9 = +HEAPF32[i3 >> 2];
 35583  d10 = d8 - d9;
 35584  d11 = +HEAPF32[i4 + 4 >> 2];
 35585  d12 = +HEAPF32[i3 + 4 >> 2];
 35586  d13 = d11 - d12;
 35587  d14 = +HEAPF32[i4 + 8 >> 2];
 35588  d15 = +HEAPF32[i3 + 8 >> 2];
 35589  d16 = d14 - d15;
 35590  d17 = +HEAPF32[i5 >> 2];
 35591  d18 = d17 - d9;
 35592  d19 = +HEAPF32[i5 + 4 >> 2];
 35593  d20 = d19 - d12;
 35594  d21 = +HEAPF32[i5 + 8 >> 2];
 35595  d22 = d21 - d15;
 35596  d23 = +HEAPF32[i2 >> 2];
 35597  d24 = d23 - d9;
 35598  d25 = +HEAPF32[i2 + 4 >> 2];
 35599  d26 = d25 - d12;
 35600  d27 = +HEAPF32[i2 + 8 >> 2];
 35601  d28 = d27 - d15;
 35602  d29 = d10 * d24 + d13 * d26 + d16 * d28;
 35603  d30 = d18 * d24 + d20 * d26 + d22 * d28;
 35604  if (!(d29 > 0.0 | d30 > 0.0)) {
 35605   i2 = i6;
 35606   i31 = i3;
 35607   HEAP32[i2 >> 2] = HEAP32[i31 >> 2];
 35608   HEAP32[i2 + 4 >> 2] = HEAP32[i31 + 4 >> 2];
 35609   HEAP32[i2 + 8 >> 2] = HEAP32[i31 + 8 >> 2];
 35610   HEAP32[i2 + 12 >> 2] = HEAP32[i31 + 12 >> 2];
 35611   HEAP16[i1 >> 1] = i7 | 1;
 35612   HEAPF32[i6 + 20 >> 2] = 1.0;
 35613   HEAPF32[i6 + 24 >> 2] = 0.0;
 35614   HEAPF32[i6 + 28 >> 2] = 0.0;
 35615   HEAPF32[i6 + 32 >> 2] = 0.0;
 35616   return 1;
 35618  d28 = d23 - d8;
 35619  d26 = d25 - d11;
 35620  d24 = d27 - d14;
 35621  d32 = d10 * d28 + d13 * d26 + d16 * d24;
 35622  d33 = d18 * d28 + d20 * d26 + d22 * d24;
 35623  if (!(d32 < 0.0 | d33 > d32)) {
 35624   i31 = i6;
 35625   i2 = i4;
 35626   HEAP32[i31 >> 2] = HEAP32[i2 >> 2];
 35627   HEAP32[i31 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
 35628   HEAP32[i31 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
 35629   HEAP32[i31 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
 35630   HEAP16[i1 >> 1] = i7 | 2;
 35631   HEAPF32[i6 + 20 >> 2] = 0.0;
 35632   HEAPF32[i6 + 24 >> 2] = 1.0;
 35633   HEAPF32[i6 + 28 >> 2] = 0.0;
 35634   HEAPF32[i6 + 32 >> 2] = 0.0;
 35635   return 1;
 35637  d24 = d29 * d33 - d32 * d30;
 35638  if (!(d24 > 0.0 | d29 < 0.0 | d32 > 0.0)) {
 35639   d26 = d29 / (d29 - d32);
 35640   HEAPF32[i6 >> 2] = d9 + d10 * d26;
 35641   HEAPF32[i6 + 4 >> 2] = d12 + d13 * d26;
 35642   HEAPF32[i6 + 8 >> 2] = d15 + d16 * d26;
 35643   HEAPF32[i6 + 12 >> 2] = 0.0;
 35644   HEAP16[i1 >> 1] = i7 | 3;
 35645   HEAPF32[i6 + 20 >> 2] = 1.0 - d26;
 35646   HEAPF32[i6 + 24 >> 2] = d26;
 35647   HEAPF32[i6 + 28 >> 2] = 0.0;
 35648   HEAPF32[i6 + 32 >> 2] = 0.0;
 35649   return 1;
 35651  d26 = d23 - d17;
 35652  d23 = d25 - d19;
 35653  d25 = d27 - d21;
 35654  d27 = d10 * d26 + d13 * d23 + d16 * d25;
 35655  d28 = d18 * d26 + d20 * d23 + d22 * d25;
 35656  if (!(d28 < 0.0 | d27 > d28)) {
 35657   i2 = i6;
 35658   i31 = i5;
 35659   HEAP32[i2 >> 2] = HEAP32[i31 >> 2];
 35660   HEAP32[i2 + 4 >> 2] = HEAP32[i31 + 4 >> 2];
 35661   HEAP32[i2 + 8 >> 2] = HEAP32[i31 + 8 >> 2];
 35662   HEAP32[i2 + 12 >> 2] = HEAP32[i31 + 12 >> 2];
 35663   HEAP16[i1 >> 1] = i7 | 4;
 35664   HEAPF32[i6 + 20 >> 2] = 0.0;
 35665   HEAPF32[i6 + 24 >> 2] = 0.0;
 35666   HEAPF32[i6 + 28 >> 2] = 1.0;
 35667   HEAPF32[i6 + 32 >> 2] = 0.0;
 35668   return 1;
 35670  d25 = d27 * d30 - d29 * d28;
 35671  if (!(d25 > 0.0 | d30 < 0.0 | d28 > 0.0)) {
 35672   d29 = d30 / (d30 - d28);
 35673   HEAPF32[i6 >> 2] = d9 + d18 * d29;
 35674   HEAPF32[i6 + 4 >> 2] = d12 + d20 * d29;
 35675   HEAPF32[i6 + 8 >> 2] = d15 + d22 * d29;
 35676   HEAPF32[i6 + 12 >> 2] = 0.0;
 35677   HEAP16[i1 >> 1] = i7 | 5;
 35678   HEAPF32[i6 + 20 >> 2] = 1.0 - d29;
 35679   HEAPF32[i6 + 24 >> 2] = 0.0;
 35680   HEAPF32[i6 + 28 >> 2] = d29;
 35681   HEAPF32[i6 + 32 >> 2] = 0.0;
 35682   return 1;
 35684  d29 = d32 * d28 - d27 * d33;
 35685  do {
 35686   if (d29 <= 0.0) {
 35687    d30 = d33 - d32;
 35688    if (d30 < 0.0) {
 35689     break;
 35691    d23 = d27 - d28;
 35692    if (d23 < 0.0) {
 35693     break;
 35695    d26 = d30 / (d30 + d23);
 35696    HEAPF32[i6 >> 2] = d8 + (d17 - d8) * d26;
 35697    HEAPF32[i6 + 4 >> 2] = d11 + (d19 - d11) * d26;
 35698    HEAPF32[i6 + 8 >> 2] = d14 + (d21 - d14) * d26;
 35699    HEAPF32[i6 + 12 >> 2] = 0.0;
 35700    HEAP16[i1 >> 1] = i7 | 6;
 35701    HEAPF32[i6 + 20 >> 2] = 0.0;
 35702    HEAPF32[i6 + 24 >> 2] = 1.0 - d26;
 35703    HEAPF32[i6 + 28 >> 2] = d26;
 35704    HEAPF32[i6 + 32 >> 2] = 0.0;
 35705    return 1;
 35707  } while (0);
 35708  d14 = 1.0 / (d24 + (d29 + d25));
 35709  d29 = d25 * d14;
 35710  d25 = d24 * d14;
 35711  HEAPF32[i6 >> 2] = d18 * d25 + (d9 + d10 * d29);
 35712  HEAPF32[i6 + 4 >> 2] = d20 * d25 + (d12 + d13 * d29);
 35713  HEAPF32[i6 + 8 >> 2] = d22 * d25 + (d15 + d16 * d29);
 35714  HEAPF32[i6 + 12 >> 2] = 0.0;
 35715  HEAP16[i1 >> 1] = i7 | 7;
 35716  HEAPF32[i6 + 20 >> 2] = 1.0 - d29 - d25;
 35717  HEAPF32[i6 + 24 >> 2] = d29;
 35718  HEAPF32[i6 + 28 >> 2] = d25;
 35719  HEAPF32[i6 + 32 >> 2] = 0.0;
 35720  return 1;
 35722 function __ZN16btCollisionWorld16updateSingleAabbEP17btCollisionObject(i1, i2) {
 35723  i1 = i1 | 0;
 35724  i2 = i2 | 0;
 35725  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, d10 = 0.0, d11 = 0.0, i12 = 0, d13 = 0.0, i14 = 0, d15 = 0.0, i16 = 0, d17 = 0.0, i18 = 0, d19 = 0.0, i20 = 0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, i28 = 0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, d41 = 0.0;
 35726  i3 = STACKTOP;
 35727  STACKTOP = STACKTOP + 64 | 0;
 35728  i4 = i3 | 0;
 35729  i5 = i3 + 16 | 0;
 35730  i6 = i3 + 32 | 0;
 35731  i7 = i3 + 48 | 0;
 35732  i8 = i2 + 192 | 0;
 35733  i9 = HEAP32[i8 >> 2] | 0;
 35734  FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i9 >> 2] | 0) + 8 >> 2] & 127](i9, i2 + 4 | 0, i4, i5);
 35735  d10 = +HEAPF32[4];
 35736  i9 = i4 | 0;
 35737  d11 = +HEAPF32[i9 >> 2] - d10;
 35738  HEAPF32[i9 >> 2] = d11;
 35739  i12 = i4 + 4 | 0;
 35740  d13 = +HEAPF32[i12 >> 2] - d10;
 35741  HEAPF32[i12 >> 2] = d13;
 35742  i14 = i4 + 8 | 0;
 35743  d15 = +HEAPF32[i14 >> 2] - d10;
 35744  HEAPF32[i14 >> 2] = d15;
 35745  i16 = i5 | 0;
 35746  d17 = d10 + +HEAPF32[i16 >> 2];
 35747  HEAPF32[i16 >> 2] = d17;
 35748  i18 = i5 + 4 | 0;
 35749  d19 = d10 + +HEAPF32[i18 >> 2];
 35750  HEAPF32[i18 >> 2] = d19;
 35751  i20 = i5 + 8 | 0;
 35752  d21 = d10 + +HEAPF32[i20 >> 2];
 35753  HEAPF32[i20 >> 2] = d21;
 35754  do {
 35755   if ((HEAP8[i1 + 44 | 0] | 0) == 0) {
 35756    d22 = d17;
 35757    d23 = d11;
 35758    d24 = d19;
 35759    d25 = d13;
 35760    d26 = d21;
 35761    d27 = d15;
 35762   } else {
 35763    if ((HEAP32[i2 + 232 >> 2] | 0) != 2) {
 35764     d22 = d17;
 35765     d23 = d11;
 35766     d24 = d19;
 35767     d25 = d13;
 35768     d26 = d21;
 35769     d27 = d15;
 35770     break;
 35772    i28 = HEAP32[i8 >> 2] | 0;
 35773    FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i28 >> 2] | 0) + 8 >> 2] & 127](i28, i2 + 68 | 0, i6, i7);
 35774    i28 = i6 | 0;
 35775    d29 = +HEAPF32[i28 >> 2] - d10;
 35776    HEAPF32[i28 >> 2] = d29;
 35777    i28 = i6 + 4 | 0;
 35778    d30 = +HEAPF32[i28 >> 2] - d10;
 35779    HEAPF32[i28 >> 2] = d30;
 35780    i28 = i6 + 8 | 0;
 35781    d31 = +HEAPF32[i28 >> 2] - d10;
 35782    HEAPF32[i28 >> 2] = d31;
 35783    i28 = i7 | 0;
 35784    d32 = d10 + +HEAPF32[i28 >> 2];
 35785    HEAPF32[i28 >> 2] = d32;
 35786    i28 = i7 + 4 | 0;
 35787    d33 = d10 + +HEAPF32[i28 >> 2];
 35788    HEAPF32[i28 >> 2] = d33;
 35789    i28 = i7 + 8 | 0;
 35790    d34 = d10 + +HEAPF32[i28 >> 2];
 35791    HEAPF32[i28 >> 2] = d34;
 35792    d35 = +HEAPF32[i9 >> 2];
 35793    if (d29 < d35) {
 35794     HEAPF32[i9 >> 2] = d29;
 35795     d36 = d29;
 35796    } else {
 35797     d36 = d35;
 35799    d35 = +HEAPF32[i12 >> 2];
 35800    if (d30 < d35) {
 35801     HEAPF32[i12 >> 2] = d30;
 35802     d37 = d30;
 35803    } else {
 35804     d37 = d35;
 35806    d35 = +HEAPF32[i14 >> 2];
 35807    if (d31 < d35) {
 35808     HEAPF32[i14 >> 2] = d31;
 35809     d38 = d31;
 35810    } else {
 35811     d38 = d35;
 35813    i28 = i4 + 12 | 0;
 35814    d35 = +HEAPF32[i6 + 12 >> 2];
 35815    if (d35 < +HEAPF32[i28 >> 2]) {
 35816     HEAPF32[i28 >> 2] = d35;
 35818    d35 = +HEAPF32[i16 >> 2];
 35819    if (d35 < d32) {
 35820     HEAPF32[i16 >> 2] = d32;
 35821     d39 = d32;
 35822    } else {
 35823     d39 = d35;
 35825    d35 = +HEAPF32[i18 >> 2];
 35826    if (d35 < d33) {
 35827     HEAPF32[i18 >> 2] = d33;
 35828     d40 = d33;
 35829    } else {
 35830     d40 = d35;
 35832    d35 = +HEAPF32[i20 >> 2];
 35833    if (d35 < d34) {
 35834     HEAPF32[i20 >> 2] = d34;
 35835     d41 = d34;
 35836    } else {
 35837     d41 = d35;
 35839    i28 = i5 + 12 | 0;
 35840    d35 = +HEAPF32[i7 + 12 >> 2];
 35841    if (+HEAPF32[i28 >> 2] >= d35) {
 35842     d22 = d39;
 35843     d23 = d36;
 35844     d24 = d40;
 35845     d25 = d37;
 35846     d26 = d41;
 35847     d27 = d38;
 35848     break;
 35850    HEAPF32[i28 >> 2] = d35;
 35851    d22 = d39;
 35852    d23 = d36;
 35853    d24 = d40;
 35854    d25 = d37;
 35855    d26 = d41;
 35856    d27 = d38;
 35858  } while (0);
 35859  i7 = HEAP32[i1 + 76 >> 2] | 0;
 35860  do {
 35861   if ((HEAP32[i2 + 204 >> 2] & 1 | 0) == 0) {
 35862    d38 = d22 - d23;
 35863    d41 = d24 - d25;
 35864    d37 = d26 - d27;
 35865    if (d37 * d37 + (d41 * d41 + d38 * d38) < 999999995904.0) {
 35866     break;
 35868    __ZN17btCollisionObject18setActivationStateEi(i2, 5);
 35869    if (HEAP8[1304] | 0) {
 35870     STACKTOP = i3;
 35871     return;
 35873    i20 = i1 + 80 | 0;
 35874    i18 = HEAP32[i20 >> 2] | 0;
 35875    if ((i18 | 0) == 0) {
 35876     STACKTOP = i3;
 35877     return;
 35879    HEAP8[1304] = 1;
 35880    FUNCTION_TABLE_vii[HEAP32[(HEAP32[i18 >> 2] | 0) + 36 >> 2] & 127](i18, 880);
 35881    i18 = HEAP32[i20 >> 2] | 0;
 35882    FUNCTION_TABLE_vii[HEAP32[(HEAP32[i18 >> 2] | 0) + 36 >> 2] & 127](i18, 960);
 35883    i18 = HEAP32[i20 >> 2] | 0;
 35884    FUNCTION_TABLE_vii[HEAP32[(HEAP32[i18 >> 2] | 0) + 36 >> 2] & 127](i18, 624);
 35885    i18 = HEAP32[i20 >> 2] | 0;
 35886    FUNCTION_TABLE_vii[HEAP32[(HEAP32[i18 >> 2] | 0) + 36 >> 2] & 127](i18, 488);
 35887    STACKTOP = i3;
 35888    return;
 35890  } while (0);
 35891  FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i7 >> 2] | 0) + 16 >> 2] & 63](i7, HEAP32[i2 + 188 >> 2] | 0, i4, i5, HEAP32[i1 + 24 >> 2] | 0);
 35892  STACKTOP = i3;
 35893  return;
 35895 function __ZN9btHashMapI9btHashPtrP16btCollisionShapeE6insertERKS0_RKS2_(i1, i2, i3) {
 35896  i1 = i1 | 0;
 35897  i2 = i2 | 0;
 35898  i3 = i3 | 0;
 35899  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0;
 35900  i4 = i2 | 0;
 35901  i5 = HEAP32[i4 >> 2] | 0;
 35902  i6 = i5 + ~(i5 << 15) | 0;
 35903  i7 = (i6 >> 10 ^ i6) * 9 | 0;
 35904  i6 = i7 >> 6 ^ i7;
 35905  i7 = i6 + ~(i6 << 11) | 0;
 35906  i6 = i1 + 48 | 0;
 35907  i8 = HEAP32[i6 >> 2] | 0;
 35908  i9 = (i7 >> 16 ^ i7) & i8 - 1;
 35909  i7 = i5;
 35910  L333 : do {
 35911   if (i9 >>> 0 < (HEAP32[i1 + 4 >> 2] | 0) >>> 0) {
 35912    i5 = HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + (i9 << 2) >> 2] | 0;
 35913    if ((i5 | 0) == -1) {
 35914     break;
 35916    i10 = HEAP32[i1 + 72 >> 2] | 0;
 35917    i11 = i1 + 32 | 0;
 35918    i12 = i5;
 35919    while (1) {
 35920     if ((i7 | 0) == (HEAP32[i10 + (i12 << 3) >> 2] | 0)) {
 35921      break;
 35923     i5 = HEAP32[(HEAP32[i11 >> 2] | 0) + (i12 << 2) >> 2] | 0;
 35924     if ((i5 | 0) == -1) {
 35925      break L333;
 35926     } else {
 35927      i12 = i5;
 35930    if ((i12 | 0) == -1) {
 35931     break;
 35933    HEAP32[(HEAP32[i1 + 52 >> 2] | 0) + (i12 << 2) >> 2] = HEAP32[i3 >> 2];
 35934    return;
 35936  } while (0);
 35937  i7 = i1 + 44 | 0;
 35938  i11 = HEAP32[i7 >> 2] | 0;
 35939  do {
 35940   if ((i11 | 0) == (i8 | 0)) {
 35941    i10 = (i8 | 0) == 0 ? 1 : i8 << 1;
 35942    if ((i8 | 0) >= (i10 | 0)) {
 35943     i13 = i8;
 35944     break;
 35946    if ((i10 | 0) == 0) {
 35947     i14 = 0;
 35948     i15 = i8;
 35949    } else {
 35950     i5 = __Z22btAlignedAllocInternalji(i10 << 2, 16) | 0;
 35951     i14 = i5;
 35952     i15 = HEAP32[i7 >> 2] | 0;
 35954    i5 = i1 + 52 | 0;
 35955    if ((i15 | 0) > 0) {
 35956     i16 = 0;
 35957     do {
 35958      i17 = i14 + (i16 << 2) | 0;
 35959      if ((i17 | 0) != 0) {
 35960       HEAP32[i17 >> 2] = HEAP32[(HEAP32[i5 >> 2] | 0) + (i16 << 2) >> 2];
 35962      i16 = i16 + 1 | 0;
 35963     } while ((i16 | 0) < (i15 | 0));
 35965    i16 = HEAP32[i5 >> 2] | 0;
 35966    i12 = i1 + 56 | 0;
 35967    if ((i16 | 0) == 0) {
 35968     i18 = i15;
 35969    } else {
 35970     if ((HEAP8[i12] | 0) == 0) {
 35971      i19 = i15;
 35972     } else {
 35973      __Z21btAlignedFreeInternalPv(i16);
 35974      i19 = HEAP32[i7 >> 2] | 0;
 35976     HEAP32[i5 >> 2] = 0;
 35977     i18 = i19;
 35979    HEAP8[i12] = 1;
 35980    HEAP32[i5 >> 2] = i14;
 35981    HEAP32[i6 >> 2] = i10;
 35982    i13 = i18;
 35983   } else {
 35984    i13 = i11;
 35986  } while (0);
 35987  i18 = (HEAP32[i1 + 52 >> 2] | 0) + (i13 << 2) | 0;
 35988  if ((i18 | 0) != 0) {
 35989   HEAP32[i18 >> 2] = HEAP32[i3 >> 2];
 35991  HEAP32[i7 >> 2] = i13 + 1;
 35992  i13 = i1 + 64 | 0;
 35993  i7 = HEAP32[i13 >> 2] | 0;
 35994  i3 = i1 + 68 | 0;
 35995  do {
 35996   if ((i7 | 0) == (HEAP32[i3 >> 2] | 0)) {
 35997    i18 = (i7 | 0) == 0 ? 1 : i7 << 1;
 35998    if ((i7 | 0) >= (i18 | 0)) {
 35999     i20 = i7;
 36000     break;
 36002    if ((i18 | 0) == 0) {
 36003     i21 = 0;
 36004     i22 = i7;
 36005    } else {
 36006     i14 = __Z22btAlignedAllocInternalji(i18 << 3, 16) | 0;
 36007     i21 = i14;
 36008     i22 = HEAP32[i13 >> 2] | 0;
 36010    i14 = i1 + 72 | 0;
 36011    if ((i22 | 0) > 0) {
 36012     i19 = 0;
 36013     do {
 36014      i15 = i21 + (i19 << 3) | 0;
 36015      if ((i15 | 0) != 0) {
 36016       i12 = (HEAP32[i14 >> 2] | 0) + (i19 << 3) | 0;
 36017       i16 = i15;
 36018       i15 = HEAP32[i12 + 4 >> 2] | 0;
 36019       HEAP32[i16 >> 2] = HEAP32[i12 >> 2];
 36020       HEAP32[i16 + 4 >> 2] = i15;
 36022      i19 = i19 + 1 | 0;
 36023     } while ((i19 | 0) < (i22 | 0));
 36025    i19 = HEAP32[i14 >> 2] | 0;
 36026    i10 = i1 + 76 | 0;
 36027    if ((i19 | 0) != 0) {
 36028     if ((HEAP8[i10] | 0) != 0) {
 36029      __Z21btAlignedFreeInternalPv(i19);
 36031     HEAP32[i14 >> 2] = 0;
 36033    HEAP8[i10] = 1;
 36034    HEAP32[i14 >> 2] = i21;
 36035    HEAP32[i3 >> 2] = i18;
 36036    i20 = HEAP32[i13 >> 2] | 0;
 36037   } else {
 36038    i20 = i7;
 36040  } while (0);
 36041  i7 = (HEAP32[i1 + 72 >> 2] | 0) + (i20 << 3) | 0;
 36042  if ((i7 | 0) == 0) {
 36043   i23 = i20;
 36044  } else {
 36045   i20 = i2;
 36046   i2 = i7;
 36047   i7 = HEAP32[i20 + 4 >> 2] | 0;
 36048   HEAP32[i2 >> 2] = HEAP32[i20 >> 2];
 36049   HEAP32[i2 + 4 >> 2] = i7;
 36050   i23 = HEAP32[i13 >> 2] | 0;
 36052  HEAP32[i13 >> 2] = i23 + 1;
 36053  if ((i8 | 0) < (HEAP32[i6 >> 2] | 0)) {
 36054   __ZN9btHashMapI9btHashPtrP16btCollisionShapeE10growTablesERKS0_(i1, 0);
 36055   i8 = HEAP32[i4 >> 2] | 0;
 36056   i4 = i8 + ~(i8 << 15) | 0;
 36057   i8 = (i4 >> 10 ^ i4) * 9 | 0;
 36058   i4 = i8 >> 6 ^ i8;
 36059   i8 = i4 + ~(i4 << 11) | 0;
 36060   i24 = (i8 >> 16 ^ i8) & (HEAP32[i6 >> 2] | 0) - 1;
 36061  } else {
 36062   i24 = i9;
 36064  i9 = (HEAP32[i1 + 12 >> 2] | 0) + (i24 << 2) | 0;
 36065  HEAP32[(HEAP32[i1 + 32 >> 2] | 0) + (i11 << 2) >> 2] = HEAP32[i9 >> 2];
 36066  HEAP32[i9 >> 2] = i11;
 36067  return;
 36069 function __ZN28btHashedOverlappingPairCache20sortOverlappingPairsEP12btDispatcher(i1, i2) {
 36070  i1 = i1 | 0;
 36071  i2 = i2 | 0;
 36072  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0;
 36073  i3 = STACKTOP;
 36074  STACKTOP = STACKTOP + 32 | 0;
 36075  i4 = i3 | 0;
 36076  i5 = i3 + 8 | 0;
 36077  i6 = i5 + 16 | 0;
 36078  HEAP8[i6] = 1;
 36079  i7 = i5 + 12 | 0;
 36080  HEAP32[i7 >> 2] = 0;
 36081  i8 = i5 + 4 | 0;
 36082  HEAP32[i8 >> 2] = 0;
 36083  i9 = i5 + 8 | 0;
 36084  HEAP32[i9 >> 2] = 0;
 36085  i10 = i1 + 8 | 0;
 36086  i11 = HEAP32[i10 >> 2] | 0;
 36087  do {
 36088   if ((i11 | 0) > 0) {
 36089    i12 = i1 + 16 | 0;
 36090    i13 = 0;
 36091    i14 = 0;
 36092    i15 = 0;
 36093    i16 = i11;
 36094    while (1) {
 36095     i17 = HEAP32[i12 >> 2] | 0;
 36096     do {
 36097      if ((i14 | 0) == (i15 | 0)) {
 36098       i18 = (i15 | 0) == 0 ? 1 : i15 << 1;
 36099       if ((i15 | 0) >= (i18 | 0)) {
 36100        i19 = i15;
 36101        i20 = i15;
 36102        i21 = i16;
 36103        break;
 36105       if ((i18 | 0) == 0) {
 36106        i22 = 0;
 36107        i23 = i15;
 36108       } else {
 36109        i24 = __Z22btAlignedAllocInternalji(i18 << 4, 16) | 0;
 36110        i22 = i24;
 36111        i23 = HEAP32[i8 >> 2] | 0;
 36113       if ((i23 | 0) > 0) {
 36114        i24 = 0;
 36115        do {
 36116         i25 = HEAP32[i7 >> 2] | 0;
 36117         HEAP32[i22 + (i24 << 4) >> 2] = HEAP32[i25 + (i24 << 4) >> 2];
 36118         HEAP32[i22 + (i24 << 4) + 4 >> 2] = HEAP32[i25 + (i24 << 4) + 4 >> 2];
 36119         HEAP32[i22 + (i24 << 4) + 8 >> 2] = HEAP32[i25 + (i24 << 4) + 8 >> 2];
 36120         HEAP32[i22 + (i24 << 4) + 12 >> 2] = HEAP32[i25 + (i24 << 4) + 12 >> 2];
 36121         i24 = i24 + 1 | 0;
 36122        } while ((i24 | 0) < (i23 | 0));
 36124       i24 = HEAP32[i7 >> 2] | 0;
 36125       if ((i24 | 0) == 0) {
 36126        i26 = i23;
 36127       } else {
 36128        if ((HEAP8[i6] | 0) == 0) {
 36129         i27 = i23;
 36130        } else {
 36131         __Z21btAlignedFreeInternalPv(i24);
 36132         i27 = HEAP32[i8 >> 2] | 0;
 36134        HEAP32[i7 >> 2] = 0;
 36135        i26 = i27;
 36137       HEAP8[i6] = 1;
 36138       HEAP32[i7 >> 2] = i22;
 36139       HEAP32[i9 >> 2] = i18;
 36140       i19 = i26;
 36141       i20 = i18;
 36142       i21 = HEAP32[i10 >> 2] | 0;
 36143      } else {
 36144       i19 = i14;
 36145       i20 = i15;
 36146       i21 = i16;
 36148     } while (0);
 36149     i24 = HEAP32[i7 >> 2] | 0;
 36150     HEAP32[i24 + (i19 << 4) >> 2] = HEAP32[i17 + (i13 << 4) >> 2];
 36151     HEAP32[i24 + (i19 << 4) + 4 >> 2] = HEAP32[i17 + (i13 << 4) + 4 >> 2];
 36152     HEAP32[i24 + (i19 << 4) + 8 >> 2] = HEAP32[i17 + (i13 << 4) + 8 >> 2];
 36153     HEAP32[i24 + (i19 << 4) + 12 >> 2] = HEAP32[i17 + (i13 << 4) + 12 >> 2];
 36154     i28 = i19 + 1 | 0;
 36155     HEAP32[i8 >> 2] = i28;
 36156     i24 = i13 + 1 | 0;
 36157     if ((i24 | 0) < (i21 | 0)) {
 36158      i13 = i24;
 36159      i14 = i28;
 36160      i15 = i20;
 36161      i16 = i21;
 36162     } else {
 36163      break;
 36166    if ((i28 | 0) <= 0) {
 36167     i29 = i28;
 36168     break;
 36170    i16 = i1;
 36171    i15 = 0;
 36172    while (1) {
 36173     i14 = HEAP32[i7 >> 2] | 0;
 36174     FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[i16 >> 2] | 0) + 12 >> 2] & 31](i1, HEAP32[i14 + (i15 << 4) >> 2] | 0, HEAP32[i14 + (i15 << 4) + 4 >> 2] | 0, i2) | 0;
 36175     i14 = i15 + 1 | 0;
 36176     i13 = HEAP32[i8 >> 2] | 0;
 36177     if ((i14 | 0) < (i13 | 0)) {
 36178      i15 = i14;
 36179     } else {
 36180      i29 = i13;
 36181      break;
 36184   } else {
 36185    i29 = 0;
 36187  } while (0);
 36188  i2 = i1 + 56 | 0;
 36189  if ((HEAP32[i2 >> 2] | 0) > 0) {
 36190   i28 = HEAP32[i1 + 64 >> 2] | 0;
 36191   i21 = 0;
 36192   do {
 36193    HEAP32[i28 + (i21 << 2) >> 2] = -1;
 36194    i21 = i21 + 1 | 0;
 36195   } while ((i21 | 0) < (HEAP32[i2 >> 2] | 0));
 36196   i30 = HEAP32[i8 >> 2] | 0;
 36197  } else {
 36198   i30 = i29;
 36200  if ((i30 | 0) > 1) {
 36201   __ZN20btAlignedObjectArrayI16btBroadphasePairE17quickSortInternalI29btBroadphasePairSortPredicateEEvT_ii(i5, i4, 0, i30 - 1 | 0);
 36202   i31 = HEAP32[i8 >> 2] | 0;
 36203  } else {
 36204   i31 = i30;
 36206  if ((i31 | 0) > 0) {
 36207   i31 = i1;
 36208   i30 = 0;
 36209   do {
 36210    i4 = HEAP32[i7 >> 2] | 0;
 36211    FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i31 >> 2] | 0) + 8 >> 2] & 31](i1, HEAP32[i4 + (i30 << 4) >> 2] | 0, HEAP32[i4 + (i30 << 4) + 4 >> 2] | 0) | 0;
 36212    i30 = i30 + 1 | 0;
 36213   } while ((i30 | 0) < (HEAP32[i8 >> 2] | 0));
 36215  i8 = HEAP32[i7 >> 2] | 0;
 36216  if ((i8 | 0) == 0) {
 36217   STACKTOP = i3;
 36218   return;
 36220  if ((HEAP8[i6] | 0) != 0) {
 36221   __Z21btAlignedFreeInternalPv(i8);
 36223  HEAP32[i7 >> 2] = 0;
 36224  STACKTOP = i3;
 36225  return;
 36227 function __ZN22btVoronoiSimplexSolver14reduceVerticesERK15btUsageBitfield(i1, i2) {
 36228  i1 = i1 | 0;
 36229  i2 = i2 | 0;
 36230  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
 36231  i3 = i1 | 0;
 36232  i4 = HEAP32[i3 >> 2] | 0;
 36233  do {
 36234   if ((i4 | 0) > 3) {
 36235    i5 = HEAP16[i2 >> 1] | 0;
 36236    if ((i5 & 8) != 0) {
 36237     i6 = i4;
 36238     i7 = i5;
 36239     i8 = 588;
 36240     break;
 36242    i5 = i4 - 1 | 0;
 36243    HEAP32[i3 >> 2] = i5;
 36244    i9 = i1 + 52 | 0;
 36245    i10 = i1 + 4 + (i5 << 4) | 0;
 36246    HEAP32[i9 >> 2] = HEAP32[i10 >> 2];
 36247    HEAP32[i9 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
 36248    HEAP32[i9 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
 36249    HEAP32[i9 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
 36250    i10 = i1 + 132 | 0;
 36251    i9 = i1 + 84 + (i5 << 4) | 0;
 36252    HEAP32[i10 >> 2] = HEAP32[i9 >> 2];
 36253    HEAP32[i10 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
 36254    HEAP32[i10 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
 36255    HEAP32[i10 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
 36256    i9 = i1 + 212 | 0;
 36257    i10 = i1 + 164 + (i5 << 4) | 0;
 36258    HEAP32[i9 >> 2] = HEAP32[i10 >> 2];
 36259    HEAP32[i9 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
 36260    HEAP32[i9 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
 36261    HEAP32[i9 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
 36262    i11 = i5;
 36263    i8 = 586;
 36264   } else {
 36265    i11 = i4;
 36266    i8 = 586;
 36268  } while (0);
 36269  do {
 36270   if ((i8 | 0) == 586) {
 36271    if ((i11 | 0) <= 2) {
 36272     i12 = i11;
 36273     break;
 36275    i6 = i11;
 36276    i7 = HEAP16[i2 >> 1] | 0;
 36277    i8 = 588;
 36279  } while (0);
 36280  do {
 36281   if ((i8 | 0) == 588) {
 36282    if ((i7 & 4) != 0) {
 36283     i12 = i6;
 36284     break;
 36286    i11 = i6 - 1 | 0;
 36287    HEAP32[i3 >> 2] = i11;
 36288    i4 = i1 + 36 | 0;
 36289    i5 = i1 + 4 + (i11 << 4) | 0;
 36290    HEAP32[i4 >> 2] = HEAP32[i5 >> 2];
 36291    HEAP32[i4 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
 36292    HEAP32[i4 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
 36293    HEAP32[i4 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
 36294    i5 = i1 + 116 | 0;
 36295    i4 = i1 + 84 + (i11 << 4) | 0;
 36296    HEAP32[i5 >> 2] = HEAP32[i4 >> 2];
 36297    HEAP32[i5 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
 36298    HEAP32[i5 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
 36299    HEAP32[i5 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
 36300    i4 = i1 + 196 | 0;
 36301    i5 = i1 + 164 + (i11 << 4) | 0;
 36302    HEAP32[i4 >> 2] = HEAP32[i5 >> 2];
 36303    HEAP32[i4 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
 36304    HEAP32[i4 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
 36305    HEAP32[i4 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
 36306    i12 = i11;
 36308  } while (0);
 36309  do {
 36310   if ((i12 | 0) > 1) {
 36311    i6 = HEAP16[i2 >> 1] | 0;
 36312    if ((i6 & 2) != 0) {
 36313     i13 = i12;
 36314     i14 = i6;
 36315     break;
 36317    i6 = i12 - 1 | 0;
 36318    HEAP32[i3 >> 2] = i6;
 36319    i7 = i1 + 20 | 0;
 36320    i11 = i1 + 4 + (i6 << 4) | 0;
 36321    HEAP32[i7 >> 2] = HEAP32[i11 >> 2];
 36322    HEAP32[i7 + 4 >> 2] = HEAP32[i11 + 4 >> 2];
 36323    HEAP32[i7 + 8 >> 2] = HEAP32[i11 + 8 >> 2];
 36324    HEAP32[i7 + 12 >> 2] = HEAP32[i11 + 12 >> 2];
 36325    i11 = i1 + 100 | 0;
 36326    i7 = i1 + 84 + (i6 << 4) | 0;
 36327    HEAP32[i11 >> 2] = HEAP32[i7 >> 2];
 36328    HEAP32[i11 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
 36329    HEAP32[i11 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
 36330    HEAP32[i11 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
 36331    i7 = i1 + 180 | 0;
 36332    i11 = i1 + 164 + (i6 << 4) | 0;
 36333    HEAP32[i7 >> 2] = HEAP32[i11 >> 2];
 36334    HEAP32[i7 + 4 >> 2] = HEAP32[i11 + 4 >> 2];
 36335    HEAP32[i7 + 8 >> 2] = HEAP32[i11 + 8 >> 2];
 36336    HEAP32[i7 + 12 >> 2] = HEAP32[i11 + 12 >> 2];
 36337    i15 = i6;
 36338    i8 = 593;
 36339   } else {
 36340    i15 = i12;
 36341    i8 = 593;
 36343  } while (0);
 36344  do {
 36345   if ((i8 | 0) == 593) {
 36346    if ((i15 | 0) > 0) {
 36347     i13 = i15;
 36348     i14 = HEAP16[i2 >> 1] | 0;
 36349     break;
 36350    } else {
 36351     return;
 36354  } while (0);
 36355  if ((i14 & 1) != 0) {
 36356   return;
 36358  i14 = i13 - 1 | 0;
 36359  HEAP32[i3 >> 2] = i14;
 36360  i3 = i1 + 4 | 0;
 36361  i13 = i1 + 4 + (i14 << 4) | 0;
 36362  HEAP32[i3 >> 2] = HEAP32[i13 >> 2];
 36363  HEAP32[i3 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
 36364  HEAP32[i3 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
 36365  HEAP32[i3 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
 36366  i13 = i1 + 84 | 0;
 36367  i3 = i1 + 84 + (i14 << 4) | 0;
 36368  HEAP32[i13 >> 2] = HEAP32[i3 >> 2];
 36369  HEAP32[i13 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
 36370  HEAP32[i13 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
 36371  HEAP32[i13 + 12 >> 2] = HEAP32[i3 + 12 >> 2];
 36372  i3 = i1 + 164 | 0;
 36373  i13 = i1 + 164 + (i14 << 4) | 0;
 36374  HEAP32[i3 >> 2] = HEAP32[i13 >> 2];
 36375  HEAP32[i3 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
 36376  HEAP32[i3 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
 36377  HEAP32[i3 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
 36378  return;
 36380 function __ZN31btConvexPlaneCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
 36381  i1 = i1 | 0;
 36382  i2 = i2 | 0;
 36383  i3 = i3 | 0;
 36384  i4 = i4 | 0;
 36385  i5 = i5 | 0;
 36386  var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0;
 36387  i4 = STACKTOP;
 36388  STACKTOP = STACKTOP + 32 | 0;
 36389  i6 = i4 | 0;
 36390  i7 = i4 + 16 | 0;
 36391  i8 = i1 + 12 | 0;
 36392  if ((HEAP32[i8 >> 2] | 0) == 0) {
 36393   STACKTOP = i4;
 36394   return;
 36396  i9 = (HEAP8[i1 + 16 | 0] | 0) != 0;
 36397  i10 = HEAP32[(i9 ? i3 : i2) + 192 >> 2] | 0;
 36398  i11 = HEAP32[(i9 ? i2 : i3) + 192 >> 2] | 0;
 36399  HEAPF32[i6 >> 2] = 0.0;
 36400  HEAPF32[i6 + 4 >> 2] = 0.0;
 36401  HEAPF32[i6 + 8 >> 2] = 0.0;
 36402  HEAPF32[i6 + 12 >> 2] = 1.0;
 36403  __ZN31btConvexPlaneCollisionAlgorithm20collideSingleContactERK12btQuaternionP17btCollisionObjectS4_RK16btDispatcherInfoP16btManifoldResult(i1, i6, i2, i3, 0, i5);
 36404  i6 = i5 + 4 | 0;
 36405  do {
 36406   if ((HEAP32[(HEAP32[i6 >> 2] | 0) + 1116 >> 2] | 0) < (HEAP32[i1 + 24 >> 2] | 0)) {
 36407    i9 = i11 + 48 | 0;
 36408    i12 = i11 + 56 | 0;
 36409    d13 = +HEAPF32[i12 >> 2];
 36410    if (+Math_abs(+d13) > .7071067690849304) {
 36411     d14 = +HEAPF32[i11 + 52 >> 2];
 36412     d15 = 1.0 / +Math_sqrt(+(d13 * d13 + d14 * d14));
 36413     d16 = 0.0;
 36414     d17 = d15 * (-0.0 - d13);
 36415     d18 = d14 * d15;
 36416    } else {
 36417     d15 = +HEAPF32[i9 >> 2];
 36418     d14 = +HEAPF32[i11 + 52 >> 2];
 36419     d13 = 1.0 / +Math_sqrt(+(d15 * d15 + d14 * d14));
 36420     d16 = d13 * (-0.0 - d14);
 36421     d17 = d15 * d13;
 36422     d18 = 0.0;
 36424    d13 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i10 >> 2] | 0) + 16 >> 2] & 7](i10);
 36425    d15 = +HEAPF32[4] / d13;
 36426    d13 = +Math_sqrt(+(d18 * d18 + (d17 * d17 + d16 * d16)));
 36427    d14 = d15 > .39269909262657166 ? .19634954631328583 : d15 * .5;
 36428    d15 = +Math_sin(+d14) / d13;
 36429    d13 = d16 * d15;
 36430    d19 = d17 * d15;
 36431    d20 = d18 * d15;
 36432    d15 = +Math_cos(+d14);
 36433    i21 = i1 + 20 | 0;
 36434    i22 = HEAP32[i21 >> 2] | 0;
 36435    if ((i22 | 0) <= 0) {
 36436     break;
 36438    i23 = i11 + 52 | 0;
 36439    i24 = i7 | 0;
 36440    i25 = i7 + 4 | 0;
 36441    i26 = i7 + 8 | 0;
 36442    i27 = i7 + 12 | 0;
 36443    i28 = 0;
 36444    i29 = i22;
 36445    do {
 36446     d14 = +HEAPF32[i9 >> 2];
 36447     d30 = +HEAPF32[i23 >> 2];
 36448     d31 = +HEAPF32[i12 >> 2];
 36449     d32 = +Math_sqrt(+(d14 * d14 + d30 * d30 + d31 * d31));
 36450     d33 = +(i28 | 0) * (6.2831854820251465 / +(i29 | 0)) * .5;
 36451     d34 = +Math_sin(+d33) / d32;
 36452     d32 = d14 * d34;
 36453     d14 = d30 * d34;
 36454     d30 = d31 * d34;
 36455     d34 = +Math_cos(+d33);
 36456     d33 = -0.0 - d32;
 36457     d31 = -0.0 - d14;
 36458     d35 = -0.0 - d30;
 36459     d36 = d20 * d31 + (d13 * d34 + d15 * d33) - d19 * d35;
 36460     d37 = d13 * d35 + (d19 * d34 + d15 * d31) - d20 * d33;
 36461     d38 = d19 * d33 + (d20 * d34 + d15 * d35) - d13 * d31;
 36462     d39 = d15 * d34 - d13 * d33 - d19 * d31 - d20 * d35;
 36463     HEAPF32[i24 >> 2] = d30 * d37 + (d32 * d39 + d34 * d36) - d14 * d38;
 36464     HEAPF32[i25 >> 2] = d32 * d38 + (d34 * d37 + d14 * d39) - d30 * d36;
 36465     HEAPF32[i26 >> 2] = d14 * d36 + (d30 * d39 + d34 * d38) - d32 * d37;
 36466     HEAPF32[i27 >> 2] = d34 * d39 - d32 * d36 - d14 * d37 - d30 * d38;
 36467     __ZN31btConvexPlaneCollisionAlgorithm20collideSingleContactERK12btQuaternionP17btCollisionObjectS4_RK16btDispatcherInfoP16btManifoldResult(i1, i7, i2, i3, 0, i5);
 36468     i28 = i28 + 1 | 0;
 36469     i29 = HEAP32[i21 >> 2] | 0;
 36470    } while ((i28 | 0) < (i29 | 0));
 36472  } while (0);
 36473  if ((HEAP8[i1 + 8 | 0] | 0) == 0) {
 36474   STACKTOP = i4;
 36475   return;
 36477  if ((HEAP32[(HEAP32[i8 >> 2] | 0) + 1116 >> 2] | 0) == 0) {
 36478   STACKTOP = i4;
 36479   return;
 36481  i8 = HEAP32[i6 >> 2] | 0;
 36482  if ((HEAP32[i8 + 1116 >> 2] | 0) == 0) {
 36483   STACKTOP = i4;
 36484   return;
 36486  if ((HEAP32[i8 + 1108 >> 2] | 0) == (HEAP32[i5 + 136 >> 2] | 0)) {
 36487   __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i8, i5 + 8 | 0, i5 + 72 | 0);
 36488   STACKTOP = i4;
 36489   return;
 36490  } else {
 36491   __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i8, i5 + 72 | 0, i5 + 8 | 0);
 36492   STACKTOP = i4;
 36493   return;
 36496 function __ZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfo(i1, i2) {
 36497  i1 = i1 | 0;
 36498  i2 = i2 | 0;
 36499  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0;
 36500  i3 = STACKTOP;
 36501  STACKTOP = STACKTOP + 128 | 0;
 36502  i4 = i3 | 0;
 36503  i5 = i3 + 8 | 0;
 36504  i6 = i3 + 32 | 0;
 36505  __ZN15CProfileManager13Start_ProfileEPKc(240);
 36506  i7 = i5 + 16 | 0;
 36507  HEAP8[i7] = 1;
 36508  i8 = i5 + 12 | 0;
 36509  HEAP32[i8 >> 2] = 0;
 36510  i9 = i5 + 4 | 0;
 36511  HEAP32[i9 >> 2] = 0;
 36512  i10 = i5 + 8 | 0;
 36513  HEAP32[i10 >> 2] = 0;
 36514  i11 = HEAP32[i1 + 184 >> 2] | 0;
 36515  L632 : do {
 36516   if ((i11 | 0) > 0) {
 36517    i12 = __Z22btAlignedAllocInternalji(i11 << 2, 16) | 0;
 36518    i13 = HEAP32[i9 >> 2] | 0;
 36519    if ((i13 | 0) > 0) {
 36520     i14 = 0;
 36521     do {
 36522      i15 = i12 + (i14 << 2) | 0;
 36523      if ((i15 | 0) != 0) {
 36524       HEAP32[i15 >> 2] = HEAP32[(HEAP32[i8 >> 2] | 0) + (i14 << 2) >> 2];
 36526      i14 = i14 + 1 | 0;
 36527     } while ((i14 | 0) < (i13 | 0));
 36529    i13 = HEAP32[i8 >> 2] | 0;
 36530    if ((i13 | 0) != 0) {
 36531     if ((HEAP8[i7] | 0) != 0) {
 36532      __Z21btAlignedFreeInternalPv(i13);
 36534     HEAP32[i8 >> 2] = 0;
 36536    HEAP8[i7] = 1;
 36537    HEAP32[i8 >> 2] = i12;
 36538    HEAP32[i10 >> 2] = i11;
 36539    i13 = 0;
 36540    i14 = i12;
 36541    while (1) {
 36542     i15 = i14 + (i13 << 2) | 0;
 36543     if ((i15 | 0) != 0) {
 36544      HEAP32[i15 >> 2] = 0;
 36546     i15 = i13 + 1 | 0;
 36547     if ((i15 | 0) >= (i11 | 0)) {
 36548      break L632;
 36550     i13 = i15;
 36551     i14 = HEAP32[i8 >> 2] | 0;
 36554  } while (0);
 36555  HEAP32[i9 >> 2] = i11;
 36556  i14 = i1;
 36557  i13 = i1 + 192 | 0;
 36558  i12 = 0;
 36559  while (1) {
 36560   if ((i12 | 0) >= (FUNCTION_TABLE_ii[HEAP32[(HEAP32[i14 >> 2] | 0) + 100 >> 2] & 127](i1) | 0)) {
 36561    break;
 36563   HEAP32[(HEAP32[i8 >> 2] | 0) + (i12 << 2) >> 2] = HEAP32[(HEAP32[i13 >> 2] | 0) + (i12 << 2) >> 2];
 36564   i12 = i12 + 1 | 0;
 36566  if ((i11 | 0) > 1) {
 36567   __ZN20btAlignedObjectArrayIP17btTypedConstraintE17quickSortInternalI33btSortConstraintOnIslandPredicateEEvT_ii(i5, i4, 0, i11 - 1 | 0);
 36569  i11 = (FUNCTION_TABLE_ii[HEAP32[(HEAP32[i14 >> 2] | 0) + 100 >> 2] & 127](i1) | 0) == 0;
 36570  i14 = i11 ? 0 : HEAP32[i8 >> 2] | 0;
 36571  i11 = i1 + 172 | 0;
 36572  i4 = HEAP32[i11 >> 2] | 0;
 36573  i5 = HEAP32[i9 >> 2] | 0;
 36574  i12 = i1 + 80 | 0;
 36575  i13 = HEAP32[i12 >> 2] | 0;
 36576  i15 = i1 + 72 | 0;
 36577  i16 = HEAP32[i15 >> 2] | 0;
 36578  i17 = i1 + 24 | 0;
 36579  i18 = HEAP32[i17 >> 2] | 0;
 36580  HEAP32[i6 >> 2] = 1520;
 36581  HEAP32[i6 + 4 >> 2] = i2;
 36582  HEAP32[i6 + 8 >> 2] = i4;
 36583  HEAP32[i6 + 12 >> 2] = i14;
 36584  HEAP32[i6 + 16 >> 2] = i5;
 36585  HEAP32[i6 + 20 >> 2] = i13;
 36586  HEAP32[i6 + 24 >> 2] = i16;
 36587  HEAP32[i6 + 28 >> 2] = i18;
 36588  HEAP8[i6 + 48 | 0] = 1;
 36589  HEAP32[i6 + 44 >> 2] = 0;
 36590  HEAP32[i6 + 36 >> 2] = 0;
 36591  HEAP32[i6 + 40 >> 2] = 0;
 36592  HEAP8[i6 + 68 | 0] = 1;
 36593  HEAP32[i6 + 64 >> 2] = 0;
 36594  HEAP32[i6 + 56 >> 2] = 0;
 36595  HEAP32[i6 + 60 >> 2] = 0;
 36596  HEAP8[i6 + 88 | 0] = 1;
 36597  HEAP32[i6 + 84 >> 2] = 0;
 36598  HEAP32[i6 + 76 >> 2] = 0;
 36599  HEAP32[i6 + 80 >> 2] = 0;
 36600  i16 = HEAP32[(HEAP32[i4 >> 2] | 0) + 8 >> 2] | 0;
 36601  i13 = HEAP32[i1 + 8 >> 2] | 0;
 36602  i5 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i18 >> 2] | 0) + 36 >> 2] & 127](i18) | 0;
 36603  FUNCTION_TABLE_viii[i16 & 127](i4, i13, i5);
 36604  __ZN25btSimulationIslandManager22buildAndProcessIslandsEP12btDispatcherP16btCollisionWorldPNS_14IslandCallbackE(HEAP32[i1 + 176 >> 2] | 0, HEAP32[i17 >> 2] | 0, i1 | 0, i6 | 0);
 36605  __ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback18processConstraintsEv(i6);
 36606  i1 = HEAP32[i11 >> 2] | 0;
 36607  FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 16 >> 2] & 127](i1, i2, HEAP32[i12 >> 2] | 0, HEAP32[i15 >> 2] | 0);
 36608  __ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD2Ev(i6);
 36609  i6 = HEAP32[i8 >> 2] | 0;
 36610  if ((i6 | 0) == 0) {
 36611   HEAP8[i7] = 1;
 36612   HEAP32[i8 >> 2] = 0;
 36613   HEAP32[i9 >> 2] = 0;
 36614   HEAP32[i10 >> 2] = 0;
 36615   __ZN15CProfileManager12Stop_ProfileEv();
 36616   STACKTOP = i3;
 36617   return;
 36619  if ((HEAP8[i7] | 0) != 0) {
 36620   __Z21btAlignedFreeInternalPv(i6);
 36622  HEAP32[i8 >> 2] = 0;
 36623  HEAP8[i7] = 1;
 36624  HEAP32[i8 >> 2] = 0;
 36625  HEAP32[i9 >> 2] = 0;
 36626  HEAP32[i10 >> 2] = 0;
 36627  __ZN15CProfileManager12Stop_ProfileEv();
 36628  STACKTOP = i3;
 36629  return;
 36631 function __Z22resolveSingleCollisionP11btRigidBodyP17btCollisionObjectRK9btVector3S5_RK19btContactSolverInfof(i1, i2, i3, i4, i5, d6) {
 36632  i1 = i1 | 0;
 36633  i2 = i2 | 0;
 36634  i3 = i3 | 0;
 36635  i4 = i4 | 0;
 36636  i5 = i5 | 0;
 36637  d6 = +d6;
 36638  var i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, i31 = 0, i32 = 0, i33 = 0, d34 = 0.0, d35 = 0.0, i36 = 0;
 36639  i7 = STACKTOP;
 36640  STACKTOP = STACKTOP + 64 | 0;
 36641  i8 = i7 | 0;
 36642  i9 = i7 + 16 | 0;
 36643  i10 = i7 + 32 | 0;
 36644  i11 = i7 + 48 | 0;
 36645  if ((HEAP32[i2 + 232 >> 2] & 2 | 0) == 0) {
 36646   i12 = 0;
 36647  } else {
 36648   i12 = i2;
 36650  d13 = +HEAPF32[i3 >> 2];
 36651  d14 = d13 - +HEAPF32[i1 + 52 >> 2];
 36652  d15 = +HEAPF32[i3 + 4 >> 2];
 36653  d16 = d15 - +HEAPF32[i1 + 56 >> 2];
 36654  d17 = +HEAPF32[i3 + 8 >> 2];
 36655  d18 = d17 - +HEAPF32[i1 + 60 >> 2];
 36656  HEAPF32[i8 >> 2] = d14;
 36657  HEAPF32[i8 + 4 >> 2] = d16;
 36658  HEAPF32[i8 + 8 >> 2] = d18;
 36659  HEAPF32[i8 + 12 >> 2] = 0.0;
 36660  d19 = d13 - +HEAPF32[i2 + 52 >> 2];
 36661  d20 = d15 - +HEAPF32[i2 + 56 >> 2];
 36662  d21 = d17 - +HEAPF32[i2 + 60 >> 2];
 36663  HEAPF32[i9 >> 2] = d19;
 36664  HEAPF32[i9 + 4 >> 2] = d20;
 36665  HEAPF32[i9 + 8 >> 2] = d21;
 36666  HEAPF32[i9 + 12 >> 2] = 0.0;
 36667  d22 = +HEAPF32[i1 + 324 >> 2];
 36668  d23 = +HEAPF32[i1 + 328 >> 2];
 36669  d24 = +HEAPF32[i1 + 320 >> 2];
 36670  i3 = (i12 | 0) != 0;
 36671  if (i3) {
 36672   d25 = +HEAPF32[i12 + 324 >> 2];
 36673   d26 = +HEAPF32[i12 + 328 >> 2];
 36674   d27 = +HEAPF32[i12 + 320 >> 2];
 36675   d28 = d21 * d25 - d20 * d26 + +HEAPF32[i12 + 304 >> 2];
 36676   d29 = +HEAPF32[i12 + 308 >> 2] + (d19 * d26 - d21 * d27);
 36677   d30 = d20 * d27 - d19 * d25 + +HEAPF32[i12 + 312 >> 2];
 36678  } else {
 36679   d28 = 0.0;
 36680   d29 = 0.0;
 36681   d30 = 0.0;
 36683  i31 = i4 | 0;
 36684  d25 = +HEAPF32[i31 >> 2];
 36685  i32 = i4 + 4 | 0;
 36686  d19 = +HEAPF32[i32 >> 2];
 36687  i33 = i4 + 8 | 0;
 36688  d27 = +HEAPF32[i33 >> 2];
 36689  d20 = d25 * (d18 * d22 - d16 * d23 + +HEAPF32[i1 + 304 >> 2] - d28) + (+HEAPF32[i1 + 308 >> 2] + (d14 * d23 - d18 * d24) - d29) * d19 + (d16 * d24 - d14 * d22 + +HEAPF32[i1 + 312 >> 2] - d30) * d27;
 36690  d30 = d16 * d27 - d18 * d19;
 36691  d22 = d18 * d25 - d14 * d27;
 36692  d24 = d14 * d19 - d16 * d25;
 36693  d29 = d24 * +HEAPF32[i1 + 288 >> 2] + (d30 * +HEAPF32[i1 + 256 >> 2] + d22 * +HEAPF32[i1 + 272 >> 2]);
 36694  d23 = d30 * +HEAPF32[i1 + 260 >> 2] + d22 * +HEAPF32[i1 + 276 >> 2] + d24 * +HEAPF32[i1 + 292 >> 2];
 36695  d28 = d30 * +HEAPF32[i1 + 264 >> 2] + d22 * +HEAPF32[i1 + 280 >> 2] + d24 * +HEAPF32[i1 + 296 >> 2];
 36696  if (i3) {
 36697   d24 = d13 - +HEAPF32[i12 + 52 >> 2];
 36698   d13 = d15 - +HEAPF32[i12 + 56 >> 2];
 36699   d15 = d17 - +HEAPF32[i12 + 60 >> 2];
 36700   d17 = d27 * d13 - d19 * d15;
 36701   d22 = d25 * d15 - d27 * d24;
 36702   d30 = d19 * d24 - d25 * d13;
 36703   d21 = d30 * +HEAPF32[i12 + 288 >> 2] + (+HEAPF32[i12 + 256 >> 2] * d17 + +HEAPF32[i12 + 272 >> 2] * d22);
 36704   d26 = d17 * +HEAPF32[i12 + 260 >> 2] + d22 * +HEAPF32[i12 + 276 >> 2] + d30 * +HEAPF32[i12 + 292 >> 2];
 36705   d34 = d17 * +HEAPF32[i12 + 264 >> 2] + d22 * +HEAPF32[i12 + 280 >> 2] + d30 * +HEAPF32[i12 + 296 >> 2];
 36706   d35 = +HEAPF32[i12 + 336 >> 2] + (d27 * (d13 * d21 - d24 * d26) + (d25 * (d15 * d26 - d13 * d34) + d19 * (d24 * d34 - d15 * d21)));
 36707   i36 = 1;
 36708  } else {
 36709   d35 = 0.0;
 36710   i36 = 0;
 36712  d21 = 1.0 / (+HEAPF32[i1 + 336 >> 2] + (d27 * (d16 * d29 - d14 * d23) + (d25 * (d18 * d23 - d16 * d28) + d19 * (d14 * d28 - d18 * d29))) + d35);
 36713  d35 = +HEAPF32[i5 + 32 >> 2] * (-0.0 - d6) / +HEAPF32[i5 + 12 >> 2] * d21 + d20 * (-0.0 - (+HEAPF32[i1 + 228 >> 2] * +HEAPF32[i2 + 228 >> 2] * (-0.0 - d20) + 1.0)) * d21;
 36714  d21 = d35 < 0.0 ? 0.0 : d35;
 36715  HEAPF32[i10 >> 2] = d25 * d21;
 36716  HEAPF32[i10 + 4 >> 2] = d19 * d21;
 36717  HEAPF32[i10 + 8 >> 2] = d27 * d21;
 36718  HEAPF32[i10 + 12 >> 2] = 0.0;
 36719  __ZN11btRigidBody12applyImpulseERK9btVector3S2_(i1, i10, i8);
 36720  if (!i36) {
 36721   STACKTOP = i7;
 36722   return +d21;
 36724  d27 = d21 * (-0.0 - +HEAPF32[i32 >> 2]);
 36725  d19 = d21 * (-0.0 - +HEAPF32[i33 >> 2]);
 36726  HEAPF32[i11 >> 2] = d21 * (-0.0 - +HEAPF32[i31 >> 2]);
 36727  HEAPF32[i11 + 4 >> 2] = d27;
 36728  HEAPF32[i11 + 8 >> 2] = d19;
 36729  HEAPF32[i11 + 12 >> 2] = 0.0;
 36730  __ZN11btRigidBody12applyImpulseERK9btVector3S2_(i12, i11, i9);
 36731  STACKTOP = i7;
 36732  return +d21;
 36734 function __ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_S3_PfRj(i1, i2, i3, i4, i5) {
 36735  i1 = i1 | 0;
 36736  i2 = i2 | 0;
 36737  i3 = i3 | 0;
 36738  i4 = i4 | 0;
 36739  i5 = i5 | 0;
 36740  var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, d12 = 0.0, i13 = 0, d14 = 0.0, d15 = 0.0, i16 = 0, d17 = 0.0, i18 = 0, d19 = 0.0, d20 = 0.0, i21 = 0, d22 = 0.0, i23 = 0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, i28 = 0, d29 = 0.0, i30 = 0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, i36 = 0, d37 = 0.0, i38 = 0, d39 = 0.0, d40 = 0.0, i41 = 0;
 36741  i6 = STACKTOP;
 36742  STACKTOP = STACKTOP + 80 | 0;
 36743  i7 = i6 | 0;
 36744  i8 = i6 + 16 | 0;
 36745  i9 = i6 + 64 | 0;
 36746  i10 = i6 + 72 | 0;
 36747  HEAP32[i7 >> 2] = i1;
 36748  HEAP32[i7 + 4 >> 2] = i2;
 36749  HEAP32[i7 + 8 >> 2] = i3;
 36750  i11 = i1 | 0;
 36751  d12 = +HEAPF32[i11 >> 2];
 36752  i13 = i2 | 0;
 36753  d14 = +HEAPF32[i13 >> 2];
 36754  d15 = d12 - d14;
 36755  i16 = i1 + 4 | 0;
 36756  d17 = +HEAPF32[i16 >> 2];
 36757  i18 = i2 + 4 | 0;
 36758  d19 = +HEAPF32[i18 >> 2];
 36759  d20 = d17 - d19;
 36760  i21 = i1 + 8 | 0;
 36761  d22 = +HEAPF32[i21 >> 2];
 36762  i23 = i2 + 8 | 0;
 36763  d24 = +HEAPF32[i23 >> 2];
 36764  d25 = d22 - d24;
 36765  HEAPF32[i8 >> 2] = d15;
 36766  HEAPF32[i8 + 4 >> 2] = d20;
 36767  HEAPF32[i8 + 8 >> 2] = d25;
 36768  HEAPF32[i8 + 12 >> 2] = 0.0;
 36769  i2 = i3 | 0;
 36770  d26 = +HEAPF32[i2 >> 2];
 36771  d27 = d14 - d26;
 36772  i28 = i3 + 4 | 0;
 36773  d14 = +HEAPF32[i28 >> 2];
 36774  d29 = d19 - d14;
 36775  i30 = i3 + 8 | 0;
 36776  d19 = +HEAPF32[i30 >> 2];
 36777  d31 = d24 - d19;
 36778  HEAPF32[i8 + 16 >> 2] = d27;
 36779  HEAPF32[i8 + 20 >> 2] = d29;
 36780  HEAPF32[i8 + 24 >> 2] = d31;
 36781  HEAPF32[i8 + 28 >> 2] = 0.0;
 36782  d24 = d26 - d12;
 36783  d26 = d14 - d17;
 36784  d14 = d19 - d22;
 36785  HEAPF32[i8 + 32 >> 2] = d24;
 36786  HEAPF32[i8 + 36 >> 2] = d26;
 36787  HEAPF32[i8 + 40 >> 2] = d14;
 36788  HEAPF32[i8 + 44 >> 2] = 0.0;
 36789  d19 = d20 * d31 - d25 * d29;
 36790  d32 = d25 * d27 - d15 * d31;
 36791  d33 = d15 * d29 - d20 * d27;
 36792  d34 = d33 * d33 + (d19 * d19 + d32 * d32);
 36793  if (d34 <= 0.0) {
 36794   d35 = -1.0;
 36795   STACKTOP = i6;
 36796   return +d35;
 36798  HEAP32[i9 >> 2] = 0;
 36799  HEAP32[i9 + 4 >> 2] = 0;
 36800  HEAP32[i10 >> 2] = 0;
 36801  i3 = i9;
 36802  i36 = i9 + 4 | 0;
 36803  i9 = 0;
 36804  d37 = -1.0;
 36805  i38 = i1;
 36806  d39 = d20;
 36807  d20 = d25;
 36808  d25 = d15;
 36809  d15 = d12;
 36810  d12 = d17;
 36811  d17 = d22;
 36812  while (1) {
 36813   do {
 36814    if (d17 * (d32 * d25 - d19 * d39) + (d12 * (d19 * d20 - d33 * d25) + d15 * (d33 * d39 - d32 * d20)) > 0.0) {
 36815     i1 = HEAP32[1328 + (i9 << 2) >> 2] | 0;
 36816     d22 = +__ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_PfRj(i38, HEAP32[i7 + (i1 << 2) >> 2] | 0, i3, i10);
 36817     if (!(d37 < 0.0 | d22 < d37)) {
 36818      d40 = d37;
 36819      break;
 36821     i41 = HEAP32[i10 >> 2] | 0;
 36822     HEAP32[i5 >> 2] = ((i41 & 1 | 0) == 0 ? 0 : 1 << i9) + ((i41 & 2 | 0) == 0 ? 0 : 1 << i1);
 36823     HEAPF32[i4 + (i9 << 2) >> 2] = +HEAPF32[i3 >> 2];
 36824     HEAPF32[i4 + (i1 << 2) >> 2] = +HEAPF32[i36 >> 2];
 36825     HEAPF32[i4 + (HEAP32[1328 + (i1 << 2) >> 2] << 2) >> 2] = 0.0;
 36826     d40 = d22;
 36827    } else {
 36828     d40 = d37;
 36830   } while (0);
 36831   i1 = i9 + 1 | 0;
 36832   if (i1 >>> 0 >= 3) {
 36833    break;
 36835   i41 = HEAP32[i7 + (i1 << 2) >> 2] | 0;
 36836   i9 = i1;
 36837   d37 = d40;
 36838   i38 = i41;
 36839   d39 = +HEAPF32[i8 + (i1 << 4) + 4 >> 2];
 36840   d20 = +HEAPF32[i8 + (i1 << 4) + 8 >> 2];
 36841   d25 = +HEAPF32[i8 + (i1 << 4) >> 2];
 36842   d15 = +HEAPF32[i41 >> 2];
 36843   d12 = +HEAPF32[i41 + 4 >> 2];
 36844   d17 = +HEAPF32[i41 + 8 >> 2];
 36846  if (d40 >= 0.0) {
 36847   d35 = d40;
 36848   STACKTOP = i6;
 36849   return +d35;
 36851  d40 = d19 * +HEAPF32[i11 >> 2] + d32 * +HEAPF32[i16 >> 2] + d33 * +HEAPF32[i21 >> 2];
 36852  d17 = +Math_sqrt(+d34);
 36853  d12 = d40 / d34;
 36854  d34 = d19 * d12;
 36855  d19 = d32 * d12;
 36856  d32 = d33 * d12;
 36857  HEAP32[i5 >> 2] = 7;
 36858  d12 = +HEAPF32[i13 >> 2] - d34;
 36859  d33 = +HEAPF32[i18 >> 2] - d19;
 36860  d40 = +HEAPF32[i23 >> 2] - d32;
 36861  d15 = d29 * d40 - d31 * d33;
 36862  d25 = d31 * d12 - d27 * d40;
 36863  d40 = d27 * d33 - d29 * d12;
 36864  d12 = +Math_sqrt(+(d40 * d40 + (d15 * d15 + d25 * d25))) / d17;
 36865  HEAPF32[i4 >> 2] = d12;
 36866  d25 = +HEAPF32[i2 >> 2] - d34;
 36867  d15 = +HEAPF32[i28 >> 2] - d19;
 36868  d40 = +HEAPF32[i30 >> 2] - d32;
 36869  d29 = d26 * d40 - d14 * d15;
 36870  d33 = d14 * d25 - d24 * d40;
 36871  d40 = d24 * d15 - d26 * d25;
 36872  d25 = +Math_sqrt(+(d40 * d40 + (d29 * d29 + d33 * d33))) / d17;
 36873  HEAPF32[i4 + 4 >> 2] = d25;
 36874  HEAPF32[i4 + 8 >> 2] = 1.0 - (d12 + d25);
 36875  d35 = d32 * d32 + (d34 * d34 + d19 * d19);
 36876  STACKTOP = i6;
 36877  return +d35;
 36879 function __ZN28btCompoundCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
 36880  i1 = i1 | 0;
 36881  i2 = i2 | 0;
 36882  i3 = i3 | 0;
 36883  i4 = i4 | 0;
 36884  i5 = i5 | 0;
 36885  var i6 = 0, i7 = 0, i8 = 0, d9 = 0.0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, d28 = 0.0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, d41 = 0.0, d42 = 0.0, d43 = 0.0, d44 = 0.0, i45 = 0, i46 = 0, d47 = 0.0, d48 = 0.0, d49 = 0.0, d50 = 0.0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0, d55 = 0.0, d56 = 0.0, d57 = 0.0, d58 = 0.0;
 36886  i6 = (HEAP8[i1 + 28 | 0] | 0) != 0;
 36887  i7 = i6 ? i3 : i2;
 36888  i8 = i6 ? i2 : i3;
 36889  i3 = i7 + 192 | 0;
 36890  i2 = HEAP32[i1 + 12 >> 2] | 0;
 36891  if ((i2 | 0) <= 0) {
 36892   d9 = 1.0;
 36893   return +d9;
 36895  i6 = HEAP32[i3 >> 2] | 0;
 36896  i10 = i6 + 24 | 0;
 36897  i11 = i7 + 4 | 0;
 36898  i12 = i7 + 8 | 0;
 36899  i13 = i7 + 12 | 0;
 36900  i14 = i7 + 16 | 0;
 36901  i15 = i7 + 20 | 0;
 36902  i16 = i7 + 24 | 0;
 36903  i17 = i7 + 28 | 0;
 36904  i18 = i7 + 32 | 0;
 36905  i19 = i7 + 36 | 0;
 36906  i20 = i7 + 40 | 0;
 36907  i21 = i7 + 44 | 0;
 36908  i22 = i7 + 48 | 0;
 36909  i23 = i7 + 52 | 0;
 36910  i24 = i7 + 56 | 0;
 36911  i25 = i7 + 60 | 0;
 36912  i26 = i7 + 64 | 0;
 36913  i27 = i1 + 20 | 0;
 36914  d28 = +HEAPF32[i11 >> 2];
 36915  d29 = +HEAPF32[i12 >> 2];
 36916  d30 = +HEAPF32[i13 >> 2];
 36917  d31 = +HEAPF32[i14 >> 2];
 36918  d32 = +HEAPF32[i15 >> 2];
 36919  d33 = +HEAPF32[i16 >> 2];
 36920  d34 = +HEAPF32[i17 >> 2];
 36921  d35 = +HEAPF32[i18 >> 2];
 36922  d36 = +HEAPF32[i19 >> 2];
 36923  d37 = +HEAPF32[i20 >> 2];
 36924  d38 = +HEAPF32[i21 >> 2];
 36925  d39 = +HEAPF32[i22 >> 2];
 36926  d40 = +HEAPF32[i23 >> 2];
 36927  d41 = +HEAPF32[i24 >> 2];
 36928  d42 = +HEAPF32[i25 >> 2];
 36929  d43 = +HEAPF32[i26 >> 2];
 36930  i1 = 0;
 36931  d44 = 1.0;
 36932  while (1) {
 36933   i45 = HEAP32[i10 >> 2] | 0;
 36934   i46 = HEAP32[i45 + (i1 * 80 | 0) + 64 >> 2] | 0;
 36935   d47 = +HEAPF32[i45 + (i1 * 80 | 0) >> 2];
 36936   d48 = +HEAPF32[i45 + (i1 * 80 | 0) + 16 >> 2];
 36937   d49 = +HEAPF32[i45 + (i1 * 80 | 0) + 32 >> 2];
 36938   d50 = +HEAPF32[i45 + (i1 * 80 | 0) + 4 >> 2];
 36939   d51 = +HEAPF32[i45 + (i1 * 80 | 0) + 20 >> 2];
 36940   d52 = +HEAPF32[i45 + (i1 * 80 | 0) + 36 >> 2];
 36941   d53 = +HEAPF32[i45 + (i1 * 80 | 0) + 8 >> 2];
 36942   d54 = +HEAPF32[i45 + (i1 * 80 | 0) + 24 >> 2];
 36943   d55 = +HEAPF32[i45 + (i1 * 80 | 0) + 40 >> 2];
 36944   d56 = +HEAPF32[i45 + (i1 * 80 | 0) + 48 >> 2];
 36945   d57 = +HEAPF32[i45 + (i1 * 80 | 0) + 52 >> 2];
 36946   d58 = +HEAPF32[i45 + (i1 * 80 | 0) + 56 >> 2];
 36947   HEAPF32[i11 >> 2] = d28 * d47 + d29 * d48 + d30 * d49;
 36948   HEAPF32[i12 >> 2] = d28 * d50 + d29 * d51 + d30 * d52;
 36949   HEAPF32[i13 >> 2] = d28 * d53 + d29 * d54 + d30 * d55;
 36950   HEAPF32[i14 >> 2] = 0.0;
 36951   HEAPF32[i15 >> 2] = d32 * d47 + d33 * d48 + d34 * d49;
 36952   HEAPF32[i16 >> 2] = d32 * d50 + d33 * d51 + d34 * d52;
 36953   HEAPF32[i17 >> 2] = d32 * d53 + d33 * d54 + d34 * d55;
 36954   HEAPF32[i18 >> 2] = 0.0;
 36955   HEAPF32[i19 >> 2] = d36 * d47 + d37 * d48 + d38 * d49;
 36956   HEAPF32[i20 >> 2] = d36 * d50 + d37 * d51 + d38 * d52;
 36957   HEAPF32[i21 >> 2] = d36 * d53 + d37 * d54 + d38 * d55;
 36958   HEAPF32[i22 >> 2] = 0.0;
 36959   HEAPF32[i23 >> 2] = d40 + (d28 * d56 + d29 * d57 + d30 * d58);
 36960   HEAPF32[i24 >> 2] = d41 + (d32 * d56 + d33 * d57 + d34 * d58);
 36961   HEAPF32[i25 >> 2] = d42 + (d36 * d56 + d37 * d57 + d38 * d58);
 36962   HEAPF32[i26 >> 2] = 0.0;
 36963   HEAP32[i3 >> 2] = i46;
 36964   i46 = HEAP32[(HEAP32[i27 >> 2] | 0) + (i1 << 2) >> 2] | 0;
 36965   d58 = +FUNCTION_TABLE_fiiiii[HEAP32[(HEAP32[i46 >> 2] | 0) + 12 >> 2] & 31](i46, i7, i8, i4, i5);
 36966   d57 = d58 < d44 ? d58 : d44;
 36967   HEAP32[i3 >> 2] = i6;
 36968   HEAPF32[i11 >> 2] = d28;
 36969   HEAPF32[i12 >> 2] = d29;
 36970   HEAPF32[i13 >> 2] = d30;
 36971   HEAPF32[i14 >> 2] = d31;
 36972   HEAPF32[i15 >> 2] = d32;
 36973   HEAPF32[i16 >> 2] = d33;
 36974   HEAPF32[i17 >> 2] = d34;
 36975   HEAPF32[i18 >> 2] = d35;
 36976   HEAPF32[i19 >> 2] = d36;
 36977   HEAPF32[i20 >> 2] = d37;
 36978   HEAPF32[i21 >> 2] = d38;
 36979   HEAPF32[i22 >> 2] = d39;
 36980   HEAPF32[i23 >> 2] = d40;
 36981   HEAPF32[i24 >> 2] = d41;
 36982   HEAPF32[i25 >> 2] = d42;
 36983   HEAPF32[i26 >> 2] = d43;
 36984   i46 = i1 + 1 | 0;
 36985   if ((i46 | 0) < (i2 | 0)) {
 36986    i1 = i46;
 36987    d44 = d57;
 36988   } else {
 36989    d9 = d57;
 36990    break;
 36993  return +d9;
 36995 function __ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(i1, i2, i3, i4, i5) {
 36996  i1 = i1 | 0;
 36997  i2 = i2 | 0;
 36998  i3 = i3 | 0;
 36999  i4 = i4 | 0;
 37000  i5 = i5 | 0;
 37001  var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, d16 = 0.0, d17 = 0.0, i18 = 0, i19 = 0, d20 = 0.0, d21 = 0.0, i22 = 0, d23 = 0.0, d24 = 0.0, d25 = 0.0, i26 = 0, i27 = 0, d28 = 0.0, i29 = 0, i30 = 0, i31 = 0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, d38 = 0.0, d39 = 0.0, d40 = 0.0, d41 = 0.0;
 37002  i6 = i1 + 9800 | 0;
 37003  i7 = HEAP32[i6 >> 2] | 0;
 37004  if ((i7 | 0) == 0) {
 37005   HEAP32[i1 >> 2] = 5;
 37006   i8 = 0;
 37007   return i8 | 0;
 37009  i9 = i7 + 52 | 0;
 37010  i10 = HEAP32[i9 >> 2] | 0;
 37011  i11 = i7 + 48 | 0;
 37012  if ((i10 | 0) != 0) {
 37013   HEAP32[i10 + 48 >> 2] = HEAP32[i11 >> 2];
 37015  i10 = HEAP32[i11 >> 2] | 0;
 37016  if ((i10 | 0) != 0) {
 37017   HEAP32[i10 + 52 >> 2] = HEAP32[i9 >> 2];
 37019  if ((HEAP32[i6 >> 2] | 0) == (i7 | 0)) {
 37020   HEAP32[i6 >> 2] = HEAP32[i9 >> 2];
 37022  i10 = i1 + 9804 | 0;
 37023  HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) - 1;
 37024  HEAP32[i11 >> 2] = 0;
 37025  i12 = i1 + 9792 | 0;
 37026  HEAP32[i9 >> 2] = HEAP32[i12 >> 2];
 37027  i13 = HEAP32[i12 >> 2] | 0;
 37028  if ((i13 | 0) != 0) {
 37029   HEAP32[i13 + 48 >> 2] = i7;
 37031  HEAP32[i12 >> 2] = i7;
 37032  i13 = i1 + 9796 | 0;
 37033  HEAP32[i13 >> 2] = (HEAP32[i13 >> 2] | 0) + 1;
 37034  HEAP8[i7 + 59 | 0] = 0;
 37035  HEAP32[i7 + 24 >> 2] = i2;
 37036  HEAP32[i7 + 28 >> 2] = i3;
 37037  HEAP32[i7 + 32 >> 2] = i4;
 37038  i14 = i3 + 16 | 0;
 37039  i15 = i2 + 16 | 0;
 37040  d16 = +HEAPF32[i15 >> 2];
 37041  d17 = +HEAPF32[i14 >> 2] - d16;
 37042  i18 = i3 + 20 | 0;
 37043  i19 = i2 + 20 | 0;
 37044  d20 = +HEAPF32[i19 >> 2];
 37045  d21 = +HEAPF32[i18 >> 2] - d20;
 37046  i22 = i3 + 24 | 0;
 37047  i3 = i2 + 24 | 0;
 37048  d23 = +HEAPF32[i3 >> 2];
 37049  d24 = +HEAPF32[i22 >> 2] - d23;
 37050  i2 = i4 + 16 | 0;
 37051  d25 = +HEAPF32[i2 >> 2] - d16;
 37052  i26 = i4 + 20 | 0;
 37053  d16 = +HEAPF32[i26 >> 2] - d20;
 37054  i27 = i4 + 24 | 0;
 37055  d20 = +HEAPF32[i27 >> 2] - d23;
 37056  d23 = d21 * d20 - d24 * d16;
 37057  d28 = d24 * d25 - d17 * d20;
 37058  d20 = d17 * d16 - d21 * d25;
 37059  i4 = i7 | 0;
 37060  HEAPF32[i4 >> 2] = d23;
 37061  i29 = i7 + 4 | 0;
 37062  HEAPF32[i29 >> 2] = d28;
 37063  i30 = i7 + 8 | 0;
 37064  HEAPF32[i30 >> 2] = d20;
 37065  HEAPF32[i7 + 12 >> 2] = 0.0;
 37066  d25 = +Math_sqrt(+(d20 * d20 + (d23 * d23 + d28 * d28)));
 37067  i31 = d25 > 9999999747378752.0e-20;
 37068  d21 = +HEAPF32[i15 >> 2];
 37069  d16 = +HEAPF32[i14 >> 2];
 37070  d17 = d21 - d16;
 37071  d24 = +HEAPF32[i19 >> 2];
 37072  d32 = +HEAPF32[i18 >> 2];
 37073  d33 = d24 - d32;
 37074  d34 = +HEAPF32[i3 >> 2];
 37075  d35 = +HEAPF32[i22 >> 2];
 37076  d36 = d34 - d35;
 37077  d37 = d34 * (d23 * d33 - d28 * d17) + (d21 * (d28 * d36 - d20 * d33) + d24 * (d20 * d17 - d23 * d36));
 37078  d36 = +HEAPF32[i2 >> 2];
 37079  d17 = d16 - d36;
 37080  d33 = +HEAPF32[i26 >> 2];
 37081  d38 = d32 - d33;
 37082  d39 = +HEAPF32[i27 >> 2];
 37083  d40 = d35 - d39;
 37084  d41 = d35 * (d23 * d38 - d28 * d17) + (d16 * (d28 * d40 - d20 * d38) + d32 * (d20 * d17 - d23 * d40));
 37085  d40 = d36 - d21;
 37086  d21 = d33 - d24;
 37087  d24 = d39 - d34;
 37088  d34 = d39 * (d23 * d21 - d28 * d40) + (d36 * (d28 * d24 - d20 * d21) + d33 * (d20 * d40 - d23 * d24));
 37089  d24 = d37 < d41 ? d37 : d41;
 37090  d41 = (d24 < d34 ? d24 : d34) / (i31 ? d25 : 1.0);
 37091  HEAPF32[i7 + 20 >> 2] = d41 < -.009999999776482582 ? d41 : 0.0;
 37092  do {
 37093   if (i31) {
 37094    d41 = (d23 * +HEAPF32[i15 >> 2] + d28 * +HEAPF32[i19 >> 2] + d20 * +HEAPF32[i3 >> 2]) / d25;
 37095    HEAPF32[i7 + 16 >> 2] = d41;
 37096    d34 = 1.0 / d25;
 37097    HEAPF32[i4 >> 2] = d23 * d34;
 37098    HEAPF32[i29 >> 2] = d28 * d34;
 37099    HEAPF32[i30 >> 2] = d20 * d34;
 37100    if (d41 < -9999999747378752.0e-21 & (i5 ^ 1)) {
 37101     HEAP32[i1 >> 2] = 3;
 37102     break;
 37103    } else {
 37104     i8 = i7;
 37105     return i8 | 0;
 37107   } else {
 37108    HEAP32[i1 >> 2] = 2;
 37110  } while (0);
 37111  i1 = HEAP32[i9 >> 2] | 0;
 37112  if ((i1 | 0) != 0) {
 37113   HEAP32[i1 + 48 >> 2] = HEAP32[i11 >> 2];
 37115  i1 = HEAP32[i11 >> 2] | 0;
 37116  if ((i1 | 0) != 0) {
 37117   HEAP32[i1 + 52 >> 2] = HEAP32[i9 >> 2];
 37119  if ((HEAP32[i12 >> 2] | 0) == (i7 | 0)) {
 37120   HEAP32[i12 >> 2] = HEAP32[i9 >> 2];
 37122  HEAP32[i13 >> 2] = (HEAP32[i13 >> 2] | 0) - 1;
 37123  HEAP32[i11 >> 2] = 0;
 37124  HEAP32[i9 >> 2] = HEAP32[i6 >> 2];
 37125  i9 = HEAP32[i6 >> 2] | 0;
 37126  if ((i9 | 0) != 0) {
 37127   HEAP32[i9 + 48 >> 2] = i7;
 37129  HEAP32[i6 >> 2] = i7;
 37130  HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) + 1;
 37131  i8 = 0;
 37132  return i8 | 0;
 37134 function __ZNK21btConvexInternalShape11getAabbSlowERK11btTransformR9btVector3S4_(i1, i2, i3, i4) {
 37135  i1 = i1 | 0;
 37136  i2 = i2 | 0;
 37137  i3 = i3 | 0;
 37138  i4 = i4 | 0;
 37139  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, d12 = 0.0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, i37 = 0, i38 = 0, i39 = 0, i40 = 0, i41 = 0, i42 = 0, i43 = 0, i44 = 0, i45 = 0, i46 = 0, i47 = 0, i48 = 0, i49 = 0, d50 = 0.0, d51 = 0.0, d52 = 0.0, d53 = 0.0, d54 = 0.0;
 37140  i5 = STACKTOP;
 37141  STACKTOP = STACKTOP + 96 | 0;
 37142  i6 = i5 | 0;
 37143  i7 = i5 + 16 | 0;
 37144  i8 = i5 + 32 | 0;
 37145  i9 = i5 + 48 | 0;
 37146  i10 = i5 + 64 | 0;
 37147  i11 = i5 + 80 | 0;
 37148  d12 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i1 >> 2] | 0) + 44 >> 2] & 7](i1);
 37149  i13 = i6 | 0;
 37150  i14 = i6 + 4 | 0;
 37151  i15 = i6 + 8 | 0;
 37152  i16 = i1;
 37153  i17 = i2 | 0;
 37154  i18 = i2 + 16 | 0;
 37155  i19 = i2 + 32 | 0;
 37156  i20 = i2 + 4 | 0;
 37157  i21 = i2 + 20 | 0;
 37158  i22 = i2 + 36 | 0;
 37159  i23 = i2 + 8 | 0;
 37160  i24 = i2 + 24 | 0;
 37161  i25 = i2 + 40 | 0;
 37162  i26 = i8 | 0;
 37163  i27 = i8 + 4 | 0;
 37164  i28 = i8 + 8 | 0;
 37165  i29 = i8 + 12 | 0;
 37166  i30 = i7 | 0;
 37167  i31 = i7 + 4 | 0;
 37168  i32 = i7 + 8 | 0;
 37169  i33 = i2 + 48 | 0;
 37170  i34 = i2 + 52 | 0;
 37171  i35 = i2 + 56 | 0;
 37172  i2 = i9 | 0;
 37173  i36 = i9 + 4 | 0;
 37174  i37 = i9 + 8 | 0;
 37175  i38 = i9 + 12 | 0;
 37176  i39 = i11 | 0;
 37177  i40 = i11 + 4 | 0;
 37178  i41 = i11 + 8 | 0;
 37179  i42 = i11 + 12 | 0;
 37180  i43 = i10 | 0;
 37181  i44 = i10 + 4 | 0;
 37182  i45 = i10 + 8 | 0;
 37183  i46 = i6;
 37184  i47 = 0;
 37185  do {
 37186   i48 = i6 + (i47 << 2) | 0;
 37187   _memset(i46 | 0, 0, 16);
 37188   HEAPF32[i48 >> 2] = 1.0;
 37189   i49 = HEAP32[(HEAP32[i16 >> 2] | 0) + 60 >> 2] | 0;
 37190   d50 = +HEAPF32[i13 >> 2];
 37191   d51 = +HEAPF32[i14 >> 2];
 37192   d52 = +HEAPF32[i15 >> 2];
 37193   d53 = d50 * +HEAPF32[i20 >> 2] + d51 * +HEAPF32[i21 >> 2] + d52 * +HEAPF32[i22 >> 2];
 37194   d54 = d50 * +HEAPF32[i23 >> 2] + d51 * +HEAPF32[i24 >> 2] + d52 * +HEAPF32[i25 >> 2];
 37195   HEAPF32[i26 >> 2] = +HEAPF32[i17 >> 2] * d50 + +HEAPF32[i18 >> 2] * d51 + +HEAPF32[i19 >> 2] * d52;
 37196   HEAPF32[i27 >> 2] = d53;
 37197   HEAPF32[i28 >> 2] = d54;
 37198   HEAPF32[i29 >> 2] = 0.0;
 37199   FUNCTION_TABLE_viii[i49 & 127](i7, i1, i8);
 37200   d54 = +HEAPF32[i30 >> 2];
 37201   d53 = +HEAPF32[i31 >> 2];
 37202   d52 = +HEAPF32[i32 >> 2];
 37203   d51 = +HEAPF32[i34 >> 2] + (d54 * +HEAPF32[i18 >> 2] + d53 * +HEAPF32[i21 >> 2] + d52 * +HEAPF32[i24 >> 2]);
 37204   d50 = +HEAPF32[i35 >> 2] + (d54 * +HEAPF32[i19 >> 2] + d53 * +HEAPF32[i22 >> 2] + d52 * +HEAPF32[i25 >> 2]);
 37205   HEAPF32[i2 >> 2] = +HEAPF32[i33 >> 2] + (+HEAPF32[i17 >> 2] * d54 + +HEAPF32[i20 >> 2] * d53 + +HEAPF32[i23 >> 2] * d52);
 37206   HEAPF32[i36 >> 2] = d51;
 37207   HEAPF32[i37 >> 2] = d50;
 37208   HEAPF32[i38 >> 2] = 0.0;
 37209   i49 = i9 + (i47 << 2) | 0;
 37210   HEAPF32[i4 + (i47 << 2) >> 2] = d12 + +HEAPF32[i49 >> 2];
 37211   HEAPF32[i48 >> 2] = -1.0;
 37212   i48 = HEAP32[(HEAP32[i16 >> 2] | 0) + 60 >> 2] | 0;
 37213   d50 = +HEAPF32[i13 >> 2];
 37214   d51 = +HEAPF32[i14 >> 2];
 37215   d52 = +HEAPF32[i15 >> 2];
 37216   d53 = d50 * +HEAPF32[i20 >> 2] + d51 * +HEAPF32[i21 >> 2] + d52 * +HEAPF32[i22 >> 2];
 37217   d54 = d50 * +HEAPF32[i23 >> 2] + d51 * +HEAPF32[i24 >> 2] + d52 * +HEAPF32[i25 >> 2];
 37218   HEAPF32[i39 >> 2] = +HEAPF32[i17 >> 2] * d50 + +HEAPF32[i18 >> 2] * d51 + +HEAPF32[i19 >> 2] * d52;
 37219   HEAPF32[i40 >> 2] = d53;
 37220   HEAPF32[i41 >> 2] = d54;
 37221   HEAPF32[i42 >> 2] = 0.0;
 37222   FUNCTION_TABLE_viii[i48 & 127](i10, i1, i11);
 37223   d54 = +HEAPF32[i43 >> 2];
 37224   d53 = +HEAPF32[i44 >> 2];
 37225   d52 = +HEAPF32[i45 >> 2];
 37226   d51 = +HEAPF32[i34 >> 2] + (d54 * +HEAPF32[i18 >> 2] + d53 * +HEAPF32[i21 >> 2] + d52 * +HEAPF32[i24 >> 2]);
 37227   d50 = +HEAPF32[i35 >> 2] + (d54 * +HEAPF32[i19 >> 2] + d53 * +HEAPF32[i22 >> 2] + d52 * +HEAPF32[i25 >> 2]);
 37228   HEAPF32[i2 >> 2] = +HEAPF32[i33 >> 2] + (+HEAPF32[i17 >> 2] * d54 + +HEAPF32[i20 >> 2] * d53 + +HEAPF32[i23 >> 2] * d52);
 37229   HEAPF32[i36 >> 2] = d51;
 37230   HEAPF32[i37 >> 2] = d50;
 37231   HEAPF32[i38 >> 2] = 0.0;
 37232   HEAPF32[i3 + (i47 << 2) >> 2] = +HEAPF32[i49 >> 2] - d12;
 37233   i47 = i47 + 1 | 0;
 37234  } while ((i47 | 0) < 3);
 37235  STACKTOP = i5;
 37236  return;
 37238 function __ZN28btHashedOverlappingPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher(i1, i2, i3, i4) {
 37239  i1 = i1 | 0;
 37240  i2 = i2 | 0;
 37241  i3 = i3 | 0;
 37242  i4 = i4 | 0;
 37243  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0;
 37244  HEAP32[2984] = (HEAP32[2984] | 0) + 1;
 37245  i5 = (HEAP32[i2 + 12 >> 2] | 0) > (HEAP32[i3 + 12 >> 2] | 0);
 37246  i6 = i5 ? i3 : i2;
 37247  i7 = i5 ? i2 : i3;
 37248  i3 = HEAP32[i6 + 12 >> 2] | 0;
 37249  i2 = HEAP32[i7 + 12 >> 2] | 0;
 37250  i5 = i2 << 16 | i3;
 37251  i8 = i5 + ~(i5 << 15) | 0;
 37252  i5 = (i8 >> 10 ^ i8) * 9 | 0;
 37253  i8 = i5 >> 6 ^ i5;
 37254  i5 = i8 + ~(i8 << 11) | 0;
 37255  i8 = i1 + 12 | 0;
 37256  i9 = (i5 >> 16 ^ i5) & (HEAP32[i8 >> 2] | 0) - 1;
 37257  i5 = i1 + 44 | 0;
 37258  i10 = HEAP32[(HEAP32[i5 >> 2] | 0) + (i9 << 2) >> 2] | 0;
 37259  if ((i10 | 0) == -1) {
 37260   i11 = 0;
 37261   return i11 | 0;
 37263  i12 = i1 + 16 | 0;
 37264  i13 = HEAP32[i12 >> 2] | 0;
 37265  i14 = i1 + 64 | 0;
 37266  i15 = i10;
 37267  while (1) {
 37268   if ((HEAP32[(HEAP32[i13 + (i15 << 4) >> 2] | 0) + 12 >> 2] | 0) == (i3 | 0)) {
 37269    if ((HEAP32[(HEAP32[i13 + (i15 << 4) + 4 >> 2] | 0) + 12 >> 2] | 0) == (i2 | 0)) {
 37270     break;
 37273   i10 = HEAP32[(HEAP32[i14 >> 2] | 0) + (i15 << 2) >> 2] | 0;
 37274   if ((i10 | 0) == -1) {
 37275    i11 = 0;
 37276    i16 = 1623;
 37277    break;
 37278   } else {
 37279    i15 = i10;
 37282  if ((i16 | 0) == 1623) {
 37283   return i11 | 0;
 37285  i2 = i13 + (i15 << 4) | 0;
 37286  if ((i2 | 0) == 0) {
 37287   i11 = 0;
 37288   return i11 | 0;
 37290  FUNCTION_TABLE_viii[HEAP32[(HEAP32[i1 >> 2] | 0) + 32 >> 2] & 127](i1, i2, i4);
 37291  i3 = HEAP32[i13 + (i15 << 4) + 12 >> 2] | 0;
 37292  i15 = i2 - (HEAP32[i12 >> 2] | 0) >> 4;
 37293  i2 = (HEAP32[i5 >> 2] | 0) + (i9 << 2) | 0;
 37294  i9 = HEAP32[i2 >> 2] | 0;
 37295  i13 = HEAP32[i14 >> 2] | 0;
 37296  do {
 37297   if ((i9 | 0) == (i15 | 0)) {
 37298    i17 = HEAP32[i13 + (i15 << 2) >> 2] | 0;
 37299    i16 = 1609;
 37300   } else {
 37301    i10 = i9;
 37302    while (1) {
 37303     i18 = i13 + (i10 << 2) | 0;
 37304     i19 = HEAP32[i18 >> 2] | 0;
 37305     if ((i19 | 0) == (i15 | 0)) {
 37306      break;
 37307     } else {
 37308      i10 = i19;
 37311    i19 = HEAP32[i13 + (i15 << 2) >> 2] | 0;
 37312    if ((i10 | 0) == -1) {
 37313     i17 = i19;
 37314     i16 = 1609;
 37315     break;
 37317    HEAP32[i18 >> 2] = i19;
 37319  } while (0);
 37320  if ((i16 | 0) == 1609) {
 37321   HEAP32[i2 >> 2] = i17;
 37323  i17 = i1 + 8 | 0;
 37324  i2 = (HEAP32[i17 >> 2] | 0) - 1 | 0;
 37325  i18 = HEAP32[i1 + 72 >> 2] | 0;
 37326  if ((i18 | 0) != 0) {
 37327   i1 = HEAP32[(HEAP32[i18 >> 2] | 0) + 12 >> 2] | 0;
 37328   FUNCTION_TABLE_iiiii[i1 & 31](i18, i6, i7, i4) | 0;
 37330  if ((i2 | 0) == (i15 | 0)) {
 37331   HEAP32[i17 >> 2] = (HEAP32[i17 >> 2] | 0) - 1;
 37332   i11 = i3;
 37333   return i11 | 0;
 37335  i4 = HEAP32[i12 >> 2] | 0;
 37336  i12 = HEAP32[(HEAP32[i4 + (i2 << 4) + 4 >> 2] | 0) + 12 >> 2] << 16 | HEAP32[(HEAP32[i4 + (i2 << 4) >> 2] | 0) + 12 >> 2];
 37337  i7 = i12 + ~(i12 << 15) | 0;
 37338  i12 = (i7 >> 10 ^ i7) * 9 | 0;
 37339  i7 = i12 >> 6 ^ i12;
 37340  i12 = i7 + ~(i7 << 11) | 0;
 37341  i7 = (i12 >> 16 ^ i12) & (HEAP32[i8 >> 2] | 0) - 1;
 37342  i8 = (HEAP32[i5 >> 2] | 0) + (i7 << 2) | 0;
 37343  i12 = HEAP32[i8 >> 2] | 0;
 37344  i6 = HEAP32[i14 >> 2] | 0;
 37345  do {
 37346   if ((i12 | 0) == (i2 | 0)) {
 37347    i20 = HEAP32[i6 + (i2 << 2) >> 2] | 0;
 37348    i16 = 1619;
 37349   } else {
 37350    i18 = i12;
 37351    while (1) {
 37352     i21 = i6 + (i18 << 2) | 0;
 37353     i1 = HEAP32[i21 >> 2] | 0;
 37354     if ((i1 | 0) == (i2 | 0)) {
 37355      break;
 37356     } else {
 37357      i18 = i1;
 37360    i10 = HEAP32[i6 + (i2 << 2) >> 2] | 0;
 37361    if ((i18 | 0) == -1) {
 37362     i20 = i10;
 37363     i16 = 1619;
 37364     break;
 37366    HEAP32[i21 >> 2] = i10;
 37368  } while (0);
 37369  if ((i16 | 0) == 1619) {
 37370   HEAP32[i8 >> 2] = i20;
 37372  i20 = i4 + (i15 << 4) | 0;
 37373  i8 = i4 + (i2 << 4) | 0;
 37374  HEAP32[i20 >> 2] = HEAP32[i8 >> 2];
 37375  HEAP32[i20 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
 37376  HEAP32[i20 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
 37377  HEAP32[i20 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
 37378  i8 = (HEAP32[i5 >> 2] | 0) + (i7 << 2) | 0;
 37379  HEAP32[(HEAP32[i14 >> 2] | 0) + (i15 << 2) >> 2] = HEAP32[i8 >> 2];
 37380  HEAP32[i8 >> 2] = i15;
 37381  HEAP32[i17 >> 2] = (HEAP32[i17 >> 2] | 0) - 1;
 37382  i11 = i3;
 37383  return i11 | 0;
 37385 function __Z11cullPoints2iPfiiPi(i1, i2, i3, i4, i5) {
 37386  i1 = i1 | 0;
 37387  i2 = i2 | 0;
 37388  i3 = i3 | 0;
 37389  i4 = i4 | 0;
 37390  i5 = i5 | 0;
 37391  var i6 = 0, i7 = 0, i8 = 0, d9 = 0.0, d10 = 0.0, i11 = 0, i12 = 0, i13 = 0, d14 = 0.0, d15 = 0.0, d16 = 0.0, i17 = 0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, d33 = 0.0, d34 = 0.0, i35 = 0, d36 = 0.0;
 37392  i6 = STACKTOP;
 37393  STACKTOP = STACKTOP + 64 | 0;
 37394  i7 = i6 | 0;
 37395  i8 = i6 + 32 | 0;
 37396  if ((i1 | 0) == 1) {
 37397   d9 = +HEAPF32[i2 >> 2];
 37398   d10 = +HEAPF32[i2 + 4 >> 2];
 37399   i11 = 825;
 37400  } else if ((i1 | 0) == 2) {
 37401   d9 = (+HEAPF32[i2 >> 2] + +HEAPF32[i2 + 8 >> 2]) * .5;
 37402   d10 = (+HEAPF32[i2 + 4 >> 2] + +HEAPF32[i2 + 12 >> 2]) * .5;
 37403   i11 = 825;
 37404  } else {
 37405   i12 = i1 - 1 | 0;
 37406   if ((i12 | 0) > 0) {
 37407    i13 = 0;
 37408    d14 = 0.0;
 37409    d15 = 0.0;
 37410    d16 = 0.0;
 37411    while (1) {
 37412     i17 = i13 << 1;
 37413     d18 = +HEAPF32[i2 + (i17 << 2) >> 2];
 37414     d19 = +HEAPF32[i2 + (i17 + 3 << 2) >> 2];
 37415     d20 = +HEAPF32[i2 + (i17 + 2 << 2) >> 2];
 37416     d21 = +HEAPF32[i2 + ((i17 | 1) << 2) >> 2];
 37417     d22 = d18 * d19 - d20 * d21;
 37418     d23 = d14 + d22;
 37419     d24 = d15 + (d18 + d20) * d22;
 37420     d20 = d16 + (d19 + d21) * d22;
 37421     i17 = i13 + 1 | 0;
 37422     if ((i17 | 0) < (i12 | 0)) {
 37423      i13 = i17;
 37424      d14 = d23;
 37425      d15 = d24;
 37426      d16 = d20;
 37427     } else {
 37428      d25 = d23;
 37429      d26 = d24;
 37430      d27 = d20;
 37431      break;
 37434   } else {
 37435    d25 = 0.0;
 37436    d26 = 0.0;
 37437    d27 = 0.0;
 37439   i13 = i1 << 1;
 37440   d16 = +HEAPF32[i2 + (i13 - 2 << 2) >> 2];
 37441   d15 = +HEAPF32[i2 + 4 >> 2];
 37442   d14 = +HEAPF32[i2 >> 2];
 37443   d20 = +HEAPF32[i2 + (i13 - 1 << 2) >> 2];
 37444   d24 = d16 * d15 - d14 * d20;
 37445   d23 = d25 + d24;
 37446   if (+Math_abs(+d23) > 1.1920928955078125e-7) {
 37447    d28 = 1.0 / (d23 * 3.0);
 37448   } else {
 37449    d28 = 999999984306749400.0;
 37451   if ((i1 | 0) > 0) {
 37452    d9 = (d26 + (d16 + d14) * d24) * d28;
 37453    d10 = (d27 + (d15 + d20) * d24) * d28;
 37454    i11 = 825;
 37455   } else {
 37456    i29 = 0;
 37459  if ((i11 | 0) == 825) {
 37460   i11 = 0;
 37461   while (1) {
 37462    i13 = i11 << 1;
 37463    HEAPF32[i7 + (i11 << 2) >> 2] = +Math_atan2(+(+HEAPF32[i2 + ((i13 | 1) << 2) >> 2] - d10), +(+HEAPF32[i2 + (i13 << 2) >> 2] - d9));
 37464    i13 = i11 + 1 | 0;
 37465    if ((i13 | 0) < (i1 | 0)) {
 37466     i11 = i13;
 37467    } else {
 37468     i30 = 0;
 37469     break;
 37472   while (1) {
 37473    HEAP32[i8 + (i30 << 2) >> 2] = 1;
 37474    i11 = i30 + 1 | 0;
 37475    if ((i11 | 0) < (i1 | 0)) {
 37476     i30 = i11;
 37477    } else {
 37478     i29 = 1;
 37479     break;
 37483  i30 = i8 + (i4 << 2) | 0;
 37484  HEAP32[i30 >> 2] = 0;
 37485  HEAP32[i5 >> 2] = i4;
 37486  if ((i3 | 0) <= 1) {
 37487   STACKTOP = i6;
 37488   return;
 37490  d9 = 6.2831854820251465 / +(i3 | 0);
 37491  d10 = +HEAPF32[i7 + (i4 << 2) >> 2];
 37492  if (i29) {
 37493   i31 = 1;
 37494   i32 = i5;
 37495  } else {
 37496   i29 = 1;
 37497   i11 = i5;
 37498   do {
 37499    i11 = i11 + 4 | 0;
 37500    HEAP32[i11 >> 2] = i4;
 37501    HEAP32[i30 >> 2] = 0;
 37502    i29 = i29 + 1 | 0;
 37503   } while ((i29 | 0) < (i3 | 0));
 37504   STACKTOP = i6;
 37505   return;
 37507  do {
 37508   i32 = i32 + 4 | 0;
 37509   d28 = d10 + d9 * +(i31 | 0);
 37510   if (d28 > 3.1415927410125732) {
 37511    d33 = d28 - 6.2831854820251465;
 37512   } else {
 37513    d33 = d28;
 37515   HEAP32[i32 >> 2] = i4;
 37516   i29 = 0;
 37517   d28 = 1.0e9;
 37518   i30 = i4;
 37519   while (1) {
 37520    do {
 37521     if ((HEAP32[i8 + (i29 << 2) >> 2] | 0) == 0) {
 37522      d34 = d28;
 37523      i35 = i30;
 37524     } else {
 37525      d24 = +Math_abs(+(+HEAPF32[i7 + (i29 << 2) >> 2] - d33));
 37526      if (d24 > 3.1415927410125732) {
 37527       d36 = 6.2831854820251465 - d24;
 37528      } else {
 37529       d36 = d24;
 37531      if (d36 >= d28) {
 37532       d34 = d28;
 37533       i35 = i30;
 37534       break;
 37536      HEAP32[i32 >> 2] = i29;
 37537      d34 = d36;
 37538      i35 = i29;
 37540    } while (0);
 37541    i11 = i29 + 1 | 0;
 37542    if ((i11 | 0) < (i1 | 0)) {
 37543     i29 = i11;
 37544     d28 = d34;
 37545     i30 = i35;
 37546    } else {
 37547     break;
 37550   HEAP32[i8 + (i35 << 2) >> 2] = 0;
 37551   i31 = i31 + 1 | 0;
 37552  } while ((i31 | 0) < (i3 | 0));
 37553  STACKTOP = i6;
 37554  return;
 37556 function __ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(i1, i2, i3, i4) {
 37557  i1 = i1 | 0;
 37558  i2 = i2 | 0;
 37559  i3 = i3 | 0;
 37560  i4 = i4 | 0;
 37561  var d5 = 0.0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0;
 37562  if ((i2 | 0) == 0) {
 37563   return;
 37565  d5 = +HEAPF32[i3 >> 2];
 37566  d6 = +HEAPF32[i3 + 4 >> 2];
 37567  d7 = +HEAPF32[i3 + 8 >> 2];
 37568  d8 = +HEAPF32[i3 + 16 >> 2];
 37569  d9 = +HEAPF32[i3 + 20 >> 2];
 37570  d10 = +HEAPF32[i3 + 24 >> 2];
 37571  i3 = __Z22btAlignedAllocInternalji(256, 16) | 0;
 37572  i1 = i3;
 37573  if ((i3 | 0) != 0) {
 37574   HEAP32[i1 >> 2] = i2;
 37576  i2 = i4;
 37577  i3 = 1;
 37578  i11 = 64;
 37579  i12 = i1;
 37580  while (1) {
 37581   i1 = i3 - 1 | 0;
 37582   i13 = HEAP32[i12 + (i1 << 2) >> 2] | 0;
 37583   do {
 37584    if (+HEAPF32[i13 >> 2] > d8) {
 37585     i14 = i1;
 37586     i15 = i11;
 37587     i16 = i12;
 37588    } else {
 37589     if (+HEAPF32[i13 + 16 >> 2] < d5) {
 37590      i14 = i1;
 37591      i15 = i11;
 37592      i16 = i12;
 37593      break;
 37595     if (+HEAPF32[i13 + 4 >> 2] > d9) {
 37596      i14 = i1;
 37597      i15 = i11;
 37598      i16 = i12;
 37599      break;
 37601     if (+HEAPF32[i13 + 20 >> 2] < d6) {
 37602      i14 = i1;
 37603      i15 = i11;
 37604      i16 = i12;
 37605      break;
 37607     if (+HEAPF32[i13 + 8 >> 2] > d10) {
 37608      i14 = i1;
 37609      i15 = i11;
 37610      i16 = i12;
 37611      break;
 37613     if (+HEAPF32[i13 + 24 >> 2] < d7) {
 37614      i14 = i1;
 37615      i15 = i11;
 37616      i16 = i12;
 37617      break;
 37619     i17 = i13 + 40 | 0;
 37620     if ((HEAP32[i17 >> 2] | 0) == 0) {
 37621      FUNCTION_TABLE_vii[HEAP32[(HEAP32[i2 >> 2] | 0) + 12 >> 2] & 127](i4, i13);
 37622      i14 = i1;
 37623      i15 = i11;
 37624      i16 = i12;
 37625      break;
 37627     i18 = HEAP32[i13 + 36 >> 2] | 0;
 37628     do {
 37629      if ((i1 | 0) == (i11 | 0)) {
 37630       i19 = (i11 | 0) == 0 ? 1 : i11 << 1;
 37631       if ((i11 | 0) >= (i19 | 0)) {
 37632        i20 = i11;
 37633        i21 = i12;
 37634        break;
 37636       if ((i19 | 0) == 0) {
 37637        i22 = 0;
 37638       } else {
 37639        i22 = __Z22btAlignedAllocInternalji(i19 << 2, 16) | 0;
 37641       if ((i11 | 0) > 0) {
 37642        i23 = 0;
 37643        do {
 37644         i24 = i22 + (i23 << 2) | 0;
 37645         if ((i24 | 0) != 0) {
 37646          HEAP32[i24 >> 2] = HEAP32[i12 + (i23 << 2) >> 2];
 37648         i23 = i23 + 1 | 0;
 37649        } while ((i23 | 0) < (i11 | 0));
 37651       if ((i12 | 0) == 0) {
 37652        i20 = i19;
 37653        i21 = i22;
 37654        break;
 37656       __Z21btAlignedFreeInternalPv(i12);
 37657       i20 = i19;
 37658       i21 = i22;
 37659      } else {
 37660       i20 = i11;
 37661       i21 = i12;
 37663     } while (0);
 37664     i23 = i21 + (i1 << 2) | 0;
 37665     if ((i23 | 0) != 0) {
 37666      HEAP32[i23 >> 2] = i18;
 37668     i23 = HEAP32[i17 >> 2] | 0;
 37669     do {
 37670      if ((i3 | 0) == (i20 | 0)) {
 37671       i24 = (i3 | 0) == 0 ? 1 : i3 << 1;
 37672       if ((i3 | 0) >= (i24 | 0)) {
 37673        i25 = i3;
 37674        i26 = i21;
 37675        break;
 37677       if ((i24 | 0) == 0) {
 37678        i27 = 0;
 37679       } else {
 37680        i27 = __Z22btAlignedAllocInternalji(i24 << 2, 16) | 0;
 37682       if ((i3 | 0) > 0) {
 37683        i28 = 0;
 37684        do {
 37685         i29 = i27 + (i28 << 2) | 0;
 37686         if ((i29 | 0) != 0) {
 37687          HEAP32[i29 >> 2] = HEAP32[i21 + (i28 << 2) >> 2];
 37689         i28 = i28 + 1 | 0;
 37690        } while ((i28 | 0) < (i3 | 0));
 37692       if ((i21 | 0) == 0) {
 37693        i25 = i24;
 37694        i26 = i27;
 37695        break;
 37697       __Z21btAlignedFreeInternalPv(i21);
 37698       i25 = i24;
 37699       i26 = i27;
 37700      } else {
 37701       i25 = i20;
 37702       i26 = i21;
 37704     } while (0);
 37705     i17 = i26 + (i3 << 2) | 0;
 37706     if ((i17 | 0) != 0) {
 37707      HEAP32[i17 >> 2] = i23;
 37709     i14 = i3 + 1 | 0;
 37710     i15 = i25;
 37711     i16 = i26;
 37713   } while (0);
 37714   if ((i14 | 0) > 0) {
 37715    i3 = i14;
 37716    i11 = i15;
 37717    i12 = i16;
 37718   } else {
 37719    break;
 37722  if ((i16 | 0) == 0) {
 37723   return;
 37725  __Z21btAlignedFreeInternalPv(i16);
 37726  return;
 37728 function __ZNK20btConvexHullInternal11Rational1287compareERKS0_(i1, i2) {
 37729  i1 = i1 | 0;
 37730  i2 = i2 | 0;
 37731  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0;
 37732  i3 = STACKTOP;
 37733  STACKTOP = STACKTOP + 128 | 0;
 37734  i4 = i3 | 0;
 37735  i5 = i3 + 16 | 0;
 37736  i6 = i3 + 32 | 0;
 37737  i7 = i3 + 48 | 0;
 37738  i8 = i3 + 64 | 0;
 37739  i9 = i3 + 80 | 0;
 37740  i10 = i3 + 96 | 0;
 37741  i11 = i3 + 112 | 0;
 37742  i12 = i1 + 32 | 0;
 37743  i13 = HEAP32[i12 >> 2] | 0;
 37744  i14 = HEAP32[i2 + 32 >> 2] | 0;
 37745  if ((i13 | 0) != (i14 | 0)) {
 37746   i15 = i13 - i14 | 0;
 37747   STACKTOP = i3;
 37748   return i15 | 0;
 37750  if ((i13 | 0) == 0) {
 37751   i15 = 0;
 37752   STACKTOP = i3;
 37753   return i15 | 0;
 37755  if ((HEAP8[i1 + 36 | 0] | 0) != 0) {
 37756   i14 = i1 | 0;
 37757   i16 = ___muldi3(HEAP32[i14 >> 2] | 0, HEAP32[i14 + 4 >> 2] | 0, i13, (i13 | 0) < 0 ? -1 : 0) | 0;
 37758   i15 = -(__ZNK20btConvexHullInternal11Rational1287compareEx(i2, i16, tempRet0) | 0) | 0;
 37759   STACKTOP = i3;
 37760   return i15 | 0;
 37762  i16 = i8;
 37763  i13 = i1;
 37764  HEAP32[i16 >> 2] = HEAP32[i13 >> 2];
 37765  HEAP32[i16 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
 37766  HEAP32[i16 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
 37767  HEAP32[i16 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
 37768  i13 = i9;
 37769  i16 = i2 + 16 | 0;
 37770  HEAP32[i13 >> 2] = HEAP32[i16 >> 2];
 37771  HEAP32[i13 + 4 >> 2] = HEAP32[i16 + 4 >> 2];
 37772  HEAP32[i13 + 8 >> 2] = HEAP32[i16 + 8 >> 2];
 37773  HEAP32[i13 + 12 >> 2] = HEAP32[i16 + 12 >> 2];
 37774  __ZN20btConvexHullInternal4DMulINS_6Int128EyE3mulES1_S1_RS1_S3_(i8, i9, i4, i5);
 37775  i9 = i10;
 37776  i8 = i1 + 16 | 0;
 37777  HEAP32[i9 >> 2] = HEAP32[i8 >> 2];
 37778  HEAP32[i9 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
 37779  HEAP32[i9 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
 37780  HEAP32[i9 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
 37781  i8 = i11;
 37782  i9 = i2;
 37783  HEAP32[i8 >> 2] = HEAP32[i9 >> 2];
 37784  HEAP32[i8 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
 37785  HEAP32[i8 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
 37786  HEAP32[i8 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
 37787  __ZN20btConvexHullInternal4DMulINS_6Int128EyE3mulES1_S1_RS1_S3_(i10, i11, i6, i7);
 37788  i11 = i5 + 8 | 0;
 37789  i10 = HEAP32[i11 >> 2] | 0;
 37790  i9 = HEAP32[i11 + 4 >> 2] | 0;
 37791  i11 = i7 + 8 | 0;
 37792  i8 = HEAP32[i11 >> 2] | 0;
 37793  i2 = HEAP32[i11 + 4 >> 2] | 0;
 37794  do {
 37795   if (i9 >>> 0 < i2 >>> 0 | i9 >>> 0 == i2 >>> 0 & i10 >>> 0 < i8 >>> 0) {
 37796    i17 = -1;
 37797   } else {
 37798    if (i9 >>> 0 > i2 >>> 0 | i9 >>> 0 == i2 >>> 0 & i10 >>> 0 > i8 >>> 0) {
 37799     i17 = 1;
 37800     break;
 37802    i11 = i5 | 0;
 37803    i1 = HEAP32[i11 >> 2] | 0;
 37804    i16 = HEAP32[i11 + 4 >> 2] | 0;
 37805    i11 = i7 | 0;
 37806    i13 = HEAP32[i11 >> 2] | 0;
 37807    i14 = HEAP32[i11 + 4 >> 2] | 0;
 37808    if (i16 >>> 0 < i14 >>> 0 | i16 >>> 0 == i14 >>> 0 & i1 >>> 0 < i13 >>> 0) {
 37809     i17 = -1;
 37810     break;
 37812    i11 = i16 >>> 0 > i14 >>> 0 | i16 >>> 0 == i14 >>> 0 & i1 >>> 0 > i13 >>> 0;
 37813    if (i11) {
 37814     i17 = i11 & 1;
 37815     break;
 37817    i11 = i4 + 8 | 0;
 37818    i13 = HEAP32[i11 >> 2] | 0;
 37819    i1 = HEAP32[i11 + 4 >> 2] | 0;
 37820    i11 = i6 + 8 | 0;
 37821    i14 = HEAP32[i11 >> 2] | 0;
 37822    i16 = HEAP32[i11 + 4 >> 2] | 0;
 37823    do {
 37824     if (i1 >>> 0 < i16 >>> 0 | i1 >>> 0 == i16 >>> 0 & i13 >>> 0 < i14 >>> 0) {
 37825      i18 = -1;
 37826     } else {
 37827      if (i1 >>> 0 > i16 >>> 0 | i1 >>> 0 == i16 >>> 0 & i13 >>> 0 > i14 >>> 0) {
 37828       i18 = 1;
 37829       break;
 37831      i11 = i4 | 0;
 37832      i19 = HEAP32[i11 >> 2] | 0;
 37833      i20 = HEAP32[i11 + 4 >> 2] | 0;
 37834      i11 = i6 | 0;
 37835      i21 = HEAP32[i11 >> 2] | 0;
 37836      i22 = HEAP32[i11 + 4 >> 2] | 0;
 37837      if (i20 >>> 0 < i22 >>> 0 | i20 >>> 0 == i22 >>> 0 & i19 >>> 0 < i21 >>> 0) {
 37838       i18 = -1;
 37839       break;
 37841      i18 = (i20 >>> 0 > i22 >>> 0 | i20 >>> 0 == i22 >>> 0 & i19 >>> 0 > i21 >>> 0) & 1;
 37843    } while (0);
 37844    i15 = Math_imul(HEAP32[i12 >> 2] | 0, i18) | 0;
 37845    STACKTOP = i3;
 37846    return i15 | 0;
 37848  } while (0);
 37849  i15 = Math_imul(HEAP32[i12 >> 2] | 0, i17) | 0;
 37850  STACKTOP = i3;
 37851  return i15 | 0;
 37853 function __ZN23btConvexConvexAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
 37854  i1 = i1 | 0;
 37855  i2 = i2 | 0;
 37856  i3 = i3 | 0;
 37857  i4 = i4 | 0;
 37858  i5 = i5 | 0;
 37859  var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, d14 = 0.0, d15 = 0.0, d16 = 0.0, i17 = 0, i18 = 0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, i25 = 0, i26 = 0, i27 = 0, d28 = 0.0, d29 = 0.0;
 37860  i5 = STACKTOP;
 37861  STACKTOP = STACKTOP + 1216 | 0;
 37862  i4 = i5 | 0;
 37863  i1 = i5 + 56 | 0;
 37864  i6 = i5 + 232 | 0;
 37865  i7 = i5 + 592 | 0;
 37866  i8 = i5 + 608 | 0;
 37867  i9 = i5 + 664 | 0;
 37868  i10 = i5 + 840 | 0;
 37869  i11 = i5 + 1200 | 0;
 37870  i12 = i2 + 68 | 0;
 37871  i13 = i2 + 4 | 0;
 37872  d14 = +HEAPF32[i2 + 116 >> 2] - +HEAPF32[i2 + 52 >> 2];
 37873  d15 = +HEAPF32[i2 + 120 >> 2] - +HEAPF32[i2 + 56 >> 2];
 37874  d16 = +HEAPF32[i2 + 124 >> 2] - +HEAPF32[i2 + 60 >> 2];
 37875  i17 = i3 + 68 | 0;
 37876  i18 = i3 + 4 | 0;
 37877  d19 = +HEAPF32[i3 + 116 >> 2] - +HEAPF32[i3 + 52 >> 2];
 37878  d20 = +HEAPF32[i3 + 120 >> 2] - +HEAPF32[i3 + 56 >> 2];
 37879  d21 = +HEAPF32[i3 + 124 >> 2] - +HEAPF32[i3 + 60 >> 2];
 37880  d22 = +HEAPF32[i2 + 248 >> 2];
 37881  do {
 37882   if (d14 * d14 + d15 * d15 + d16 * d16 < d22 * d22) {
 37883    d23 = +HEAPF32[i3 + 248 >> 2];
 37884    if (d19 * d19 + d20 * d20 + d21 * d21 >= d23 * d23 & (HEAP8[12056] | 0) == 0) {
 37885     break;
 37886    } else {
 37887     d24 = 1.0;
 37889    STACKTOP = i5;
 37890    return +d24;
 37891   } else {
 37892    if ((HEAP8[12056] | 0) == 0) {
 37893     break;
 37894    } else {
 37895     d24 = 1.0;
 37897    STACKTOP = i5;
 37898    return +d24;
 37900  } while (0);
 37901  i25 = HEAP32[i2 + 192 >> 2] | 0;
 37902  d21 = +HEAPF32[i3 + 244 >> 2];
 37903  __ZN21btConvexInternalShapeC2Ev(i4 | 0);
 37904  HEAP32[i4 >> 2] = 4728;
 37905  HEAP32[i4 + 4 >> 2] = 8;
 37906  HEAPF32[i4 + 28 >> 2] = d21;
 37907  HEAPF32[i4 + 44 >> 2] = d21;
 37908  HEAP32[i1 >> 2] = 2280;
 37909  i26 = i1 + 164 | 0;
 37910  HEAPF32[i26 >> 2] = 999999984306749400.0;
 37911  HEAP32[i1 + 168 >> 2] = 0;
 37912  HEAPF32[i1 + 172 >> 2] = 0.0;
 37913  HEAPF32[i6 + 308 >> 2] = 9999999747378752.0e-20;
 37914  HEAP16[i6 + 332 >> 1] = 0;
 37915  i27 = i4 | 0;
 37916  __ZN15btGjkConvexCastC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolver(i7, i25, i27, i6);
 37917  do {
 37918   if (__ZN15btGjkConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i7, i13, i12, i18, i17, i1) | 0) {
 37919    i6 = i2 + 240 | 0;
 37920    d21 = +HEAPF32[i26 >> 2];
 37921    if (+HEAPF32[i6 >> 2] > d21) {
 37922     HEAPF32[i6 >> 2] = d21;
 37924    i6 = i3 + 240 | 0;
 37925    if (+HEAPF32[i6 >> 2] > d21) {
 37926     HEAPF32[i6 >> 2] = d21;
 37928    if (d21 >= 1.0) {
 37929     d28 = 1.0;
 37930     break;
 37932    d28 = d21;
 37933   } else {
 37934    d28 = 1.0;
 37936  } while (0);
 37937  __ZN12btConvexCastD2Ev(i7 | 0);
 37938  __ZN13btConvexShapeD2Ev(i27);
 37939  i27 = HEAP32[i3 + 192 >> 2] | 0;
 37940  d21 = +HEAPF32[i2 + 244 >> 2];
 37941  __ZN21btConvexInternalShapeC2Ev(i8 | 0);
 37942  HEAP32[i8 >> 2] = 4728;
 37943  HEAP32[i8 + 4 >> 2] = 8;
 37944  HEAPF32[i8 + 28 >> 2] = d21;
 37945  HEAPF32[i8 + 44 >> 2] = d21;
 37946  HEAP32[i9 >> 2] = 2280;
 37947  i7 = i9 + 164 | 0;
 37948  HEAPF32[i7 >> 2] = 999999984306749400.0;
 37949  HEAP32[i9 + 168 >> 2] = 0;
 37950  HEAPF32[i9 + 172 >> 2] = 0.0;
 37951  HEAPF32[i10 + 308 >> 2] = 9999999747378752.0e-20;
 37952  HEAP16[i10 + 332 >> 1] = 0;
 37953  i26 = i8 | 0;
 37954  __ZN15btGjkConvexCastC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolver(i11, i26, i27, i10);
 37955  do {
 37956   if (__ZN15btGjkConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i11, i13, i12, i18, i17, i9) | 0) {
 37957    i10 = i2 + 240 | 0;
 37958    d21 = +HEAPF32[i7 >> 2];
 37959    if (+HEAPF32[i10 >> 2] > d21) {
 37960     HEAPF32[i10 >> 2] = d21;
 37962    i10 = i3 + 240 | 0;
 37963    if (+HEAPF32[i10 >> 2] > d21) {
 37964     HEAPF32[i10 >> 2] = d21;
 37966    if (d28 <= d21) {
 37967     d29 = d28;
 37968     break;
 37970    d29 = d21;
 37971   } else {
 37972    d29 = d28;
 37974  } while (0);
 37975  __ZN12btConvexCastD2Ev(i11 | 0);
 37976  __ZN13btConvexShapeD2Ev(i26);
 37977  d24 = d29;
 37978  STACKTOP = i5;
 37979  return +d24;
 37981 function __ZNK20btConvexHullInternal11Rational1287compareEx(i1, i2, i3) {
 37982  i1 = i1 | 0;
 37983  i2 = i2 | 0;
 37984  i3 = i3 | 0;
 37985  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0;
 37986  if ((HEAP8[i1 + 36 | 0] | 0) != 0) {
 37987   i4 = HEAP32[i1 + 32 >> 2] | 0;
 37988   i5 = i1 | 0;
 37989   i6 = ___muldi3(i4, (i4 | 0) < 0 ? -1 : 0, HEAP32[i5 >> 2] | 0, HEAP32[i5 + 4 >> 2] | 0) | 0;
 37990   i5 = tempRet0;
 37991   if ((i5 | 0) > (i3 | 0) | (i5 | 0) == (i3 | 0) & i6 >>> 0 > i2 >>> 0) {
 37992    i7 = 1;
 37993    return i7 | 0;
 37995   i7 = ((i5 | 0) < (i3 | 0) | (i5 | 0) == (i3 | 0) & i6 >>> 0 < i2 >>> 0) << 31 >> 31;
 37996   return i7 | 0;
 37998  i6 = 0;
 37999  do {
 38000   if ((i3 | 0) > (i6 | 0) | (i3 | 0) == (i6 | 0) & i2 >>> 0 > 0 >>> 0) {
 38001    i5 = HEAP32[i1 + 32 >> 2] | 0;
 38002    if ((i5 | 0) < 1) {
 38003     i7 = -1;
 38004    } else {
 38005     i8 = i3;
 38006     i9 = i2;
 38007     i10 = i5;
 38008     break;
 38010    return i7 | 0;
 38011   } else {
 38012    i5 = 0;
 38013    i4 = HEAP32[i1 + 32 >> 2] | 0;
 38014    if (!((i3 | 0) < (i5 | 0) | (i3 | 0) == (i5 | 0) & i2 >>> 0 < 0 >>> 0)) {
 38015     i7 = i4;
 38016     return i7 | 0;
 38018    if ((i4 | 0) > -1) {
 38019     i7 = 1;
 38020     return i7 | 0;
 38021    } else {
 38022     i5 = _i64Subtract(0, 0, i2, i3) | 0;
 38023     i8 = tempRet0;
 38024     i9 = i5;
 38025     i10 = i4;
 38026     break;
 38029  } while (0);
 38030  i3 = i1 + 24 | 0;
 38031  i2 = HEAP32[i3 >> 2] | 0;
 38032  i6 = HEAP32[i3 + 4 >> 2] | 0;
 38033  i3 = 0;
 38034  i4 = (i6 | 0) < (i3 | 0) | (i6 | 0) == (i3 | 0) & i2 >>> 0 < 0 >>> 0;
 38035  i3 = i1 + 16 | 0;
 38036  i5 = HEAP32[i3 >> 2] | 0;
 38037  i11 = HEAP32[i3 + 4 >> 2] | 0;
 38038  if (i4) {
 38039   i3 = _i64Subtract(0, 0, i5, i11) | 0;
 38040   i12 = tempRet0;
 38041   i13 = _i64Add((i5 | 0) == 0 & (i11 | 0) == 0 & 1, 0, ~i2, ~i6) | 0;
 38042   i14 = i12;
 38043   i15 = i3;
 38044   i16 = tempRet0;
 38045   i17 = i13;
 38046  } else {
 38047   i14 = i11;
 38048   i15 = i5;
 38049   i16 = i6;
 38050   i17 = i2;
 38052  i2 = 0;
 38053  if ((i8 | 0) < (i2 | 0) | (i8 | 0) == (i2 | 0) & i9 >>> 0 < 0 >>> 0) {
 38054   i2 = _i64Subtract(0, 0, i9, i8) | 0;
 38055   i18 = i4 ^ 1;
 38056   i19 = tempRet0;
 38057   i20 = i2;
 38058  } else {
 38059   i18 = i4;
 38060   i19 = i8;
 38061   i20 = i9;
 38063  i9 = i15 | 0;
 38064  i15 = i14 & 0;
 38065  i8 = i20 | 0;
 38066  i4 = i19 & 0;
 38067  i2 = ___muldi3(i8, i4, i9, i15) | 0;
 38068  i6 = tempRet0;
 38069  i5 = i19;
 38070  i11 = 0;
 38071  i13 = ___muldi3(i5, i11, i9, i15) | 0;
 38072  i15 = tempRet0;
 38073  i9 = i14;
 38074  i14 = 0;
 38075  i3 = ___muldi3(i8, i4, i9, i14) | 0;
 38076  i4 = tempRet0;
 38077  i8 = ___muldi3(i5, i11, i9, i14) | 0;
 38078  i14 = tempRet0;
 38079  i9 = _i64Add(i13 | 0, i15 & 0, i3 | 0, i4 & 0) | 0;
 38080  i3 = tempRet0;
 38081  i13 = _llvm_uadd_with_overflow_i64(i2 | 0, i6 | 0, 0, i9 | 0) | 0;
 38082  i9 = i13;
 38083  i13 = tempRet0;
 38084  i6 = tempRet1 & 1;
 38085  i2 = ___muldi3(i20, i19, i17, i16) | 0;
 38086  i16 = _i64Add(i8, i14, i2, tempRet0) | 0;
 38087  i2 = _i64Add(i16, tempRet0, i15, 0) | 0;
 38088  i15 = _i64Add(i2, tempRet0, i4, 0) | 0;
 38089  i4 = _i64Add(i15, tempRet0, i6, 0) | 0;
 38090  i6 = _i64Add(i4, tempRet0, i3, 0) | 0;
 38091  i3 = tempRet0;
 38092  if (i18) {
 38093   i18 = _i64Subtract(0, 0, i9, i13) | 0;
 38094   i4 = tempRet0;
 38095   i15 = _i64Add((i9 | 0) == 0 & (i13 | 0) == 0 & 1, 0, ~i6, ~i3) | 0;
 38096   i21 = i4;
 38097   i22 = i18;
 38098   i23 = tempRet0;
 38099   i24 = i15;
 38100  } else {
 38101   i21 = i13;
 38102   i22 = i9;
 38103   i23 = i3;
 38104   i24 = i6;
 38106  i6 = i1 + 8 | 0;
 38107  i3 = HEAP32[i6 >> 2] | 0;
 38108  i9 = HEAP32[i6 + 4 >> 2] | 0;
 38109  do {
 38110   if (i9 >>> 0 < i23 >>> 0 | i9 >>> 0 == i23 >>> 0 & i3 >>> 0 < i24 >>> 0) {
 38111    i25 = -1;
 38112   } else {
 38113    if (i9 >>> 0 > i23 >>> 0 | i9 >>> 0 == i23 >>> 0 & i3 >>> 0 > i24 >>> 0) {
 38114     i25 = 1;
 38115     break;
 38117    i6 = i1 | 0;
 38118    i13 = HEAP32[i6 >> 2] | 0;
 38119    i15 = HEAP32[i6 + 4 >> 2] | 0;
 38120    if (i15 >>> 0 < i21 >>> 0 | i15 >>> 0 == i21 >>> 0 & i13 >>> 0 < i22 >>> 0) {
 38121     i25 = -1;
 38122     break;
 38124    i25 = (i15 >>> 0 > i21 >>> 0 | i15 >>> 0 == i21 >>> 0 & i13 >>> 0 > i22 >>> 0) & 1;
 38126  } while (0);
 38127  i7 = Math_imul(i10, i25) | 0;
 38128  return i7 | 0;
 38130 function __ZN31btDefaultCollisionConfigurationD2Ev(i1) {
 38131  i1 = i1 | 0;
 38132  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
 38133  HEAP32[i1 >> 2] = 2608;
 38134  if ((HEAP8[i1 + 12 | 0] | 0) != 0) {
 38135   i2 = i1 + 8 | 0;
 38136   i3 = HEAP32[i2 >> 2] | 0;
 38137   i4 = i3 + 8 | 0;
 38138   do {
 38139    if ((HEAP32[i4 >> 2] | 0) == 0) {
 38140     i5 = i3 | 0;
 38141     do {
 38142      if ((HEAP8[i3 + 16 | 0] | 0) == 0) {
 38143       i6 = HEAP32[i5 >> 2] | 0;
 38144       if ((i6 | 0) == 0) {
 38145        break;
 38147       __Z21btAlignedFreeInternalPv(i6);
 38149     } while (0);
 38150     HEAP32[i5 >> 2] = 0;
 38151     HEAP32[i4 >> 2] = 0;
 38152     i6 = HEAP32[i2 >> 2] | 0;
 38153     i7 = i6 + 8 | 0;
 38154     if ((HEAP32[i7 >> 2] | 0) != 0) {
 38155      i8 = i6;
 38156      break;
 38158     i9 = i6 | 0;
 38159     do {
 38160      if ((HEAP8[i6 + 16 | 0] | 0) == 0) {
 38161       i10 = HEAP32[i9 >> 2] | 0;
 38162       if ((i10 | 0) == 0) {
 38163        break;
 38165       __Z21btAlignedFreeInternalPv(i10);
 38167     } while (0);
 38168     HEAP32[i9 >> 2] = 0;
 38169     HEAP32[i7 >> 2] = 0;
 38170     i8 = HEAP32[i2 >> 2] | 0;
 38171    } else {
 38172     i8 = i3;
 38174   } while (0);
 38175   __Z21btAlignedFreeInternalPv(i8);
 38177  if ((HEAP8[i1 + 28 | 0] | 0) != 0) {
 38178   i8 = i1 + 24 | 0;
 38179   __Z21btAlignedFreeInternalPv(HEAP32[(HEAP32[i8 >> 2] | 0) + 16 >> 2] | 0);
 38180   __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
 38182  if ((HEAP8[i1 + 20 | 0] | 0) != 0) {
 38183   i8 = i1 + 16 | 0;
 38184   __Z21btAlignedFreeInternalPv(HEAP32[(HEAP32[i8 >> 2] | 0) + 16 >> 2] | 0);
 38185   __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
 38187  i8 = i1 + 40 | 0;
 38188  i3 = HEAP32[i8 >> 2] | 0;
 38189  FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
 38190  __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
 38191  i8 = i1 + 44 | 0;
 38192  i3 = HEAP32[i8 >> 2] | 0;
 38193  FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
 38194  __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
 38195  i8 = i1 + 48 | 0;
 38196  i3 = HEAP32[i8 >> 2] | 0;
 38197  FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
 38198  __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
 38199  i8 = i1 + 52 | 0;
 38200  i3 = HEAP32[i8 >> 2] | 0;
 38201  FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
 38202  __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
 38203  i8 = i1 + 56 | 0;
 38204  i3 = HEAP32[i8 >> 2] | 0;
 38205  FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
 38206  __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
 38207  i8 = i1 + 60 | 0;
 38208  i3 = HEAP32[i8 >> 2] | 0;
 38209  FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
 38210  __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
 38211  i8 = i1 + 64 | 0;
 38212  i3 = HEAP32[i8 >> 2] | 0;
 38213  FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
 38214  __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
 38215  i8 = i1 + 72 | 0;
 38216  i3 = HEAP32[i8 >> 2] | 0;
 38217  FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
 38218  __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
 38219  i8 = i1 + 76 | 0;
 38220  i3 = HEAP32[i8 >> 2] | 0;
 38221  FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
 38222  __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
 38223  i8 = i1 + 68 | 0;
 38224  i3 = HEAP32[i8 >> 2] | 0;
 38225  FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
 38226  __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
 38227  i8 = i1 + 84 | 0;
 38228  i3 = HEAP32[i8 >> 2] | 0;
 38229  FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
 38230  __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
 38231  i8 = i1 + 80 | 0;
 38232  i3 = HEAP32[i8 >> 2] | 0;
 38233  FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
 38234  __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
 38235  __Z21btAlignedFreeInternalPv(HEAP32[i1 + 32 >> 2] | 0);
 38236  i8 = i1 + 36 | 0;
 38237  i1 = HEAP32[i8 >> 2] | 0;
 38238  FUNCTION_TABLE_vi[HEAP32[HEAP32[i1 >> 2] >> 2] & 511](i1);
 38239  __Z21btAlignedFreeInternalPv(HEAP32[i8 >> 2] | 0);
 38240  return;
 38242 function __ZN20btAlignedObjectArrayIP20btPersistentManifoldE17quickSortInternalI33btPersistentManifoldSortPredicateEEvT_ii(i1, i2, i3, i4) {
 38243  i1 = i1 | 0;
 38244  i2 = i2 | 0;
 38245  i3 = i3 | 0;
 38246  i4 = i4 | 0;
 38247  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0;
 38248  i5 = STACKTOP;
 38249  STACKTOP = STACKTOP + 16 | 0;
 38250  i6 = i2;
 38251  i2 = STACKTOP;
 38252  STACKTOP = STACKTOP + 1 | 0;
 38253  STACKTOP = STACKTOP + 7 >> 3 << 3;
 38254  HEAP8[i2] = HEAP8[i6] | 0;
 38255  i6 = i5 | 0;
 38256  i2 = i5 + 8 | 0;
 38257  i7 = i1 + 12 | 0;
 38258  i8 = HEAP32[i7 >> 2] | 0;
 38259  i9 = HEAP32[i8 + (((i4 + i3 | 0) / 2 | 0) << 2) >> 2] | 0;
 38260  i10 = i9 + 1108 | 0;
 38261  i11 = i9 + 1112 | 0;
 38262  i9 = i3;
 38263  i12 = i4;
 38264  i13 = i8;
 38265  while (1) {
 38266   i8 = HEAP32[(HEAP32[i10 >> 2] | 0) + 208 >> 2] | 0;
 38267   i14 = (i8 | 0) > -1;
 38268   if (i14) {
 38269    i15 = i9;
 38270    while (1) {
 38271     i16 = i13 + (i15 << 2) | 0;
 38272     i17 = HEAP32[i16 >> 2] | 0;
 38273     i18 = HEAP32[(HEAP32[i17 + 1108 >> 2] | 0) + 208 >> 2] | 0;
 38274     if ((i18 | 0) > -1) {
 38275      i19 = i18;
 38276     } else {
 38277      i19 = HEAP32[(HEAP32[i17 + 1112 >> 2] | 0) + 208 >> 2] | 0;
 38279     i18 = i15 + 1 | 0;
 38280     if ((i19 | 0) < (i8 | 0)) {
 38281      i15 = i18;
 38282     } else {
 38283      i20 = i15;
 38284      i21 = i16;
 38285      i22 = i17;
 38286      i23 = i18;
 38287      break;
 38290   } else {
 38291    i15 = i9;
 38292    while (1) {
 38293     i18 = i13 + (i15 << 2) | 0;
 38294     i17 = HEAP32[i18 >> 2] | 0;
 38295     i16 = HEAP32[(HEAP32[i17 + 1108 >> 2] | 0) + 208 >> 2] | 0;
 38296     if ((i16 | 0) > -1) {
 38297      i24 = i16;
 38298     } else {
 38299      i24 = HEAP32[(HEAP32[i17 + 1112 >> 2] | 0) + 208 >> 2] | 0;
 38301     i16 = i15 + 1 | 0;
 38302     if ((i24 | 0) < (HEAP32[(HEAP32[i11 >> 2] | 0) + 208 >> 2] | 0)) {
 38303      i15 = i16;
 38304     } else {
 38305      i20 = i15;
 38306      i21 = i18;
 38307      i22 = i17;
 38308      i23 = i16;
 38309      break;
 38313   if (i14) {
 38314    i15 = i12;
 38315    while (1) {
 38316     i16 = HEAP32[i13 + (i15 << 2) >> 2] | 0;
 38317     i17 = HEAP32[(HEAP32[i16 + 1108 >> 2] | 0) + 208 >> 2] | 0;
 38318     if ((i17 | 0) > -1) {
 38319      i25 = i17;
 38320     } else {
 38321      i25 = HEAP32[(HEAP32[i16 + 1112 >> 2] | 0) + 208 >> 2] | 0;
 38323     i17 = i15 - 1 | 0;
 38324     if ((i8 | 0) < (i25 | 0)) {
 38325      i15 = i17;
 38326     } else {
 38327      i26 = i15;
 38328      i27 = i16;
 38329      i28 = i17;
 38330      break;
 38333   } else {
 38334    i15 = i12;
 38335    while (1) {
 38336     i8 = HEAP32[i13 + (i15 << 2) >> 2] | 0;
 38337     i14 = HEAP32[(HEAP32[i8 + 1108 >> 2] | 0) + 208 >> 2] | 0;
 38338     if ((i14 | 0) > -1) {
 38339      i29 = i14;
 38340     } else {
 38341      i29 = HEAP32[(HEAP32[i8 + 1112 >> 2] | 0) + 208 >> 2] | 0;
 38343     i14 = i15 - 1 | 0;
 38344     if ((HEAP32[(HEAP32[i11 >> 2] | 0) + 208 >> 2] | 0) < (i29 | 0)) {
 38345      i15 = i14;
 38346     } else {
 38347      i26 = i15;
 38348      i27 = i8;
 38349      i28 = i14;
 38350      break;
 38354   if ((i20 | 0) > (i26 | 0)) {
 38355    i30 = i20;
 38356    i31 = i26;
 38357   } else {
 38358    HEAP32[i21 >> 2] = i27;
 38359    HEAP32[(HEAP32[i7 >> 2] | 0) + (i26 << 2) >> 2] = i22;
 38360    i30 = i23;
 38361    i31 = i28;
 38363   if ((i30 | 0) > (i31 | 0)) {
 38364    break;
 38366   i9 = i30;
 38367   i12 = i31;
 38368   i13 = HEAP32[i7 >> 2] | 0;
 38370  if ((i31 | 0) > (i3 | 0)) {
 38371   __ZN20btAlignedObjectArrayIP20btPersistentManifoldE17quickSortInternalI33btPersistentManifoldSortPredicateEEvT_ii(i1, i6, i3, i31);
 38373  if ((i30 | 0) >= (i4 | 0)) {
 38374   STACKTOP = i5;
 38375   return;
 38377  __ZN20btAlignedObjectArrayIP20btPersistentManifoldE17quickSortInternalI33btPersistentManifoldSortPredicateEEvT_ii(i1, i2, i30, i4);
 38378  STACKTOP = i5;
 38379  return;
 38381 function __ZN20btAlignedObjectArrayIP17btTypedConstraintE17quickSortInternalI33btSortConstraintOnIslandPredicateEEvT_ii(i1, i2, i3, i4) {
 38382  i1 = i1 | 0;
 38383  i2 = i2 | 0;
 38384  i3 = i3 | 0;
 38385  i4 = i4 | 0;
 38386  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0;
 38387  i5 = STACKTOP;
 38388  STACKTOP = STACKTOP + 16 | 0;
 38389  i6 = i2;
 38390  i2 = STACKTOP;
 38391  STACKTOP = STACKTOP + 1 | 0;
 38392  STACKTOP = STACKTOP + 7 >> 3 << 3;
 38393  HEAP8[i2] = HEAP8[i6] | 0;
 38394  i6 = i5 | 0;
 38395  i2 = i5 + 8 | 0;
 38396  i7 = i1 + 12 | 0;
 38397  i8 = HEAP32[i7 >> 2] | 0;
 38398  i9 = HEAP32[i8 + (((i4 + i3 | 0) / 2 | 0) << 2) >> 2] | 0;
 38399  i10 = i9 + 24 | 0;
 38400  i11 = i9 + 28 | 0;
 38401  i9 = i3;
 38402  i12 = i4;
 38403  i13 = i8;
 38404  while (1) {
 38405   i8 = HEAP32[(HEAP32[i10 >> 2] | 0) + 208 >> 2] | 0;
 38406   i14 = (i8 | 0) > -1;
 38407   if (i14) {
 38408    i15 = i9;
 38409    while (1) {
 38410     i16 = i13 + (i15 << 2) | 0;
 38411     i17 = HEAP32[i16 >> 2] | 0;
 38412     i18 = HEAP32[(HEAP32[i17 + 24 >> 2] | 0) + 208 >> 2] | 0;
 38413     if ((i18 | 0) > -1) {
 38414      i19 = i18;
 38415     } else {
 38416      i19 = HEAP32[(HEAP32[i17 + 28 >> 2] | 0) + 208 >> 2] | 0;
 38418     i18 = i15 + 1 | 0;
 38419     if ((i19 | 0) < (i8 | 0)) {
 38420      i15 = i18;
 38421     } else {
 38422      i20 = i15;
 38423      i21 = i16;
 38424      i22 = i17;
 38425      i23 = i18;
 38426      break;
 38429   } else {
 38430    i15 = i9;
 38431    while (1) {
 38432     i18 = i13 + (i15 << 2) | 0;
 38433     i17 = HEAP32[i18 >> 2] | 0;
 38434     i16 = HEAP32[(HEAP32[i17 + 24 >> 2] | 0) + 208 >> 2] | 0;
 38435     if ((i16 | 0) > -1) {
 38436      i24 = i16;
 38437     } else {
 38438      i24 = HEAP32[(HEAP32[i17 + 28 >> 2] | 0) + 208 >> 2] | 0;
 38440     i16 = i15 + 1 | 0;
 38441     if ((i24 | 0) < (HEAP32[(HEAP32[i11 >> 2] | 0) + 208 >> 2] | 0)) {
 38442      i15 = i16;
 38443     } else {
 38444      i20 = i15;
 38445      i21 = i18;
 38446      i22 = i17;
 38447      i23 = i16;
 38448      break;
 38452   if (i14) {
 38453    i15 = i12;
 38454    while (1) {
 38455     i16 = HEAP32[i13 + (i15 << 2) >> 2] | 0;
 38456     i17 = HEAP32[(HEAP32[i16 + 24 >> 2] | 0) + 208 >> 2] | 0;
 38457     if ((i17 | 0) > -1) {
 38458      i25 = i17;
 38459     } else {
 38460      i25 = HEAP32[(HEAP32[i16 + 28 >> 2] | 0) + 208 >> 2] | 0;
 38462     i17 = i15 - 1 | 0;
 38463     if ((i8 | 0) < (i25 | 0)) {
 38464      i15 = i17;
 38465     } else {
 38466      i26 = i15;
 38467      i27 = i16;
 38468      i28 = i17;
 38469      break;
 38472   } else {
 38473    i15 = i12;
 38474    while (1) {
 38475     i8 = HEAP32[i13 + (i15 << 2) >> 2] | 0;
 38476     i14 = HEAP32[(HEAP32[i8 + 24 >> 2] | 0) + 208 >> 2] | 0;
 38477     if ((i14 | 0) > -1) {
 38478      i29 = i14;
 38479     } else {
 38480      i29 = HEAP32[(HEAP32[i8 + 28 >> 2] | 0) + 208 >> 2] | 0;
 38482     i14 = i15 - 1 | 0;
 38483     if ((HEAP32[(HEAP32[i11 >> 2] | 0) + 208 >> 2] | 0) < (i29 | 0)) {
 38484      i15 = i14;
 38485     } else {
 38486      i26 = i15;
 38487      i27 = i8;
 38488      i28 = i14;
 38489      break;
 38493   if ((i20 | 0) > (i26 | 0)) {
 38494    i30 = i20;
 38495    i31 = i26;
 38496   } else {
 38497    HEAP32[i21 >> 2] = i27;
 38498    HEAP32[(HEAP32[i7 >> 2] | 0) + (i26 << 2) >> 2] = i22;
 38499    i30 = i23;
 38500    i31 = i28;
 38502   if ((i30 | 0) > (i31 | 0)) {
 38503    break;
 38505   i9 = i30;
 38506   i12 = i31;
 38507   i13 = HEAP32[i7 >> 2] | 0;
 38509  if ((i31 | 0) > (i3 | 0)) {
 38510   __ZN20btAlignedObjectArrayIP17btTypedConstraintE17quickSortInternalI33btSortConstraintOnIslandPredicateEEvT_ii(i1, i6, i3, i31);
 38512  if ((i30 | 0) >= (i4 | 0)) {
 38513   STACKTOP = i5;
 38514   return;
 38516  __ZN20btAlignedObjectArrayIP17btTypedConstraintE17quickSortInternalI33btSortConstraintOnIslandPredicateEEvT_ii(i1, i2, i30, i4);
 38517  STACKTOP = i5;
 38518  return;
 38520 function __ZN21btCollisionDispatcher14getNewManifoldEPvS0_(i1, i2, i3) {
 38521  i1 = i1 | 0;
 38522  i2 = i2 | 0;
 38523  i3 = i3 | 0;
 38524  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0;
 38525  i4 = STACKTOP;
 38526  STACKTOP = STACKTOP + 16 | 0;
 38527  i5 = i4 | 0;
 38528  i6 = i4 + 8 | 0;
 38529  HEAP32[2990] = (HEAP32[2990] | 0) + 1;
 38530  i7 = i1 + 4 | 0;
 38531  if ((HEAP32[i7 >> 2] & 2 | 0) == 0) {
 38532   i8 = 16;
 38533  } else {
 38534   i9 = HEAP32[i2 + 192 >> 2] | 0;
 38535   d10 = +FUNCTION_TABLE_fif[HEAP32[(HEAP32[i9 >> 2] | 0) + 20 >> 2] & 3](i9, +HEAPF32[4]);
 38536   HEAPF32[i5 >> 2] = d10;
 38537   i9 = HEAP32[i3 + 192 >> 2] | 0;
 38538   d11 = +FUNCTION_TABLE_fif[HEAP32[(HEAP32[i9 >> 2] | 0) + 20 >> 2] & 3](i9, +HEAPF32[4]);
 38539   HEAPF32[i6 >> 2] = d11;
 38540   i8 = d10 < d11 ? i5 : i6;
 38542  d11 = +HEAPF32[i8 >> 2];
 38543  d10 = +HEAPF32[i2 + 184 >> 2];
 38544  d12 = +HEAPF32[i3 + 184 >> 2];
 38545  d13 = d10 < d12 ? d10 : d12;
 38546  i8 = HEAP32[i1 + 196 >> 2] | 0;
 38547  i6 = i8 + 8 | 0;
 38548  i5 = HEAP32[i6 >> 2] | 0;
 38549  do {
 38550   if ((i5 | 0) == 0) {
 38551    if ((HEAP32[i7 >> 2] & 4 | 0) == 0) {
 38552     i14 = __Z22btAlignedAllocInternalji(1140, 16) | 0;
 38553     break;
 38554    } else {
 38555     i15 = 0;
 38556     STACKTOP = i4;
 38557     return i15 | 0;
 38559   } else {
 38560    i9 = i8 + 12 | 0;
 38561    i16 = HEAP32[i9 >> 2] | 0;
 38562    HEAP32[i9 >> 2] = HEAP32[i16 >> 2];
 38563    HEAP32[i6 >> 2] = i5 - 1;
 38564    i14 = i16;
 38566  } while (0);
 38567  i5 = i14;
 38568  HEAP32[i14 >> 2] = 1025;
 38569  HEAP32[i14 + 112 >> 2] = 0;
 38570  HEAPF32[i14 + 116 >> 2] = 0.0;
 38571  HEAP8[i14 + 120 | 0] = 0;
 38572  _memset(i14 + 124 | 0, 0, 28);
 38573  HEAP32[i14 + 388 >> 2] = 0;
 38574  HEAPF32[i14 + 392 >> 2] = 0.0;
 38575  HEAP8[i14 + 396 | 0] = 0;
 38576  _memset(i14 + 400 | 0, 0, 28);
 38577  HEAP32[i14 + 664 >> 2] = 0;
 38578  HEAPF32[i14 + 668 >> 2] = 0.0;
 38579  HEAP8[i14 + 672 | 0] = 0;
 38580  _memset(i14 + 676 | 0, 0, 28);
 38581  HEAP32[i14 + 940 >> 2] = 0;
 38582  HEAPF32[i14 + 944 >> 2] = 0.0;
 38583  HEAP8[i14 + 948 | 0] = 0;
 38584  _memset(i14 + 952 | 0, 0, 28);
 38585  HEAP32[i14 + 1108 >> 2] = i2;
 38586  HEAP32[i14 + 1112 >> 2] = i3;
 38587  HEAP32[i14 + 1116 >> 2] = 0;
 38588  HEAPF32[i14 + 1120 >> 2] = d11;
 38589  HEAPF32[i14 + 1124 >> 2] = d13;
 38590  i3 = i1 + 12 | 0;
 38591  HEAP32[i14 + 1136 >> 2] = HEAP32[i3 >> 2];
 38592  i14 = HEAP32[i3 >> 2] | 0;
 38593  i2 = i1 + 16 | 0;
 38594  do {
 38595   if ((i14 | 0) == (HEAP32[i2 >> 2] | 0)) {
 38596    i6 = (i14 | 0) == 0 ? 1 : i14 << 1;
 38597    if ((i14 | 0) >= (i6 | 0)) {
 38598     i17 = i14;
 38599     break;
 38601    if ((i6 | 0) == 0) {
 38602     i18 = 0;
 38603     i19 = i14;
 38604    } else {
 38605     i8 = __Z22btAlignedAllocInternalji(i6 << 2, 16) | 0;
 38606     i18 = i8;
 38607     i19 = HEAP32[i3 >> 2] | 0;
 38609    i8 = i1 + 20 | 0;
 38610    if ((i19 | 0) > 0) {
 38611     i7 = 0;
 38612     do {
 38613      i16 = i18 + (i7 << 2) | 0;
 38614      if ((i16 | 0) != 0) {
 38615       HEAP32[i16 >> 2] = HEAP32[(HEAP32[i8 >> 2] | 0) + (i7 << 2) >> 2];
 38617      i7 = i7 + 1 | 0;
 38618     } while ((i7 | 0) < (i19 | 0));
 38620    i7 = HEAP32[i8 >> 2] | 0;
 38621    i16 = i1 + 24 | 0;
 38622    if ((i7 | 0) == 0) {
 38623     i20 = i19;
 38624    } else {
 38625     if ((HEAP8[i16] | 0) == 0) {
 38626      i21 = i19;
 38627     } else {
 38628      __Z21btAlignedFreeInternalPv(i7);
 38629      i21 = HEAP32[i3 >> 2] | 0;
 38631     HEAP32[i8 >> 2] = 0;
 38632     i20 = i21;
 38634    HEAP8[i16] = 1;
 38635    HEAP32[i8 >> 2] = i18;
 38636    HEAP32[i2 >> 2] = i6;
 38637    i17 = i20;
 38638   } else {
 38639    i17 = i14;
 38641  } while (0);
 38642  i14 = (HEAP32[i1 + 20 >> 2] | 0) + (i17 << 2) | 0;
 38643  if ((i14 | 0) != 0) {
 38644   HEAP32[i14 >> 2] = i5;
 38646  HEAP32[i3 >> 2] = i17 + 1;
 38647  i15 = i5;
 38648  STACKTOP = i4;
 38649  return i15 | 0;
 38651 function __ZN17DebugDrawcallback15processTriangleEP9btVector3ii(i1, i2, i3, i4) {
 38652  i1 = i1 | 0;
 38653  i2 = i2 | 0;
 38654  i3 = i3 | 0;
 38655  i4 = i4 | 0;
 38656  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, d31 = 0.0, i32 = 0, i33 = 0;
 38657  i4 = STACKTOP;
 38658  STACKTOP = STACKTOP + 96 | 0;
 38659  i3 = i4 | 0;
 38660  i5 = i4 + 16 | 0;
 38661  i6 = i4 + 32 | 0;
 38662  i7 = i4 + 48 | 0;
 38663  i8 = i4 + 64 | 0;
 38664  i9 = i4 + 80 | 0;
 38665  d10 = +HEAPF32[i1 + 28 >> 2];
 38666  d11 = +HEAPF32[i2 >> 2];
 38667  d12 = +HEAPF32[i1 + 32 >> 2];
 38668  d13 = +HEAPF32[i2 + 4 >> 2];
 38669  d14 = +HEAPF32[i1 + 36 >> 2];
 38670  d15 = +HEAPF32[i2 + 8 >> 2];
 38671  d16 = +HEAPF32[i1 + 76 >> 2];
 38672  d17 = d16 + (d10 * d11 + d12 * d13 + d14 * d15);
 38673  d18 = +HEAPF32[i1 + 44 >> 2];
 38674  d19 = +HEAPF32[i1 + 48 >> 2];
 38675  d20 = +HEAPF32[i1 + 52 >> 2];
 38676  d21 = +HEAPF32[i1 + 80 >> 2];
 38677  d22 = d21 + (d11 * d18 + d13 * d19 + d15 * d20);
 38678  d23 = +HEAPF32[i1 + 60 >> 2];
 38679  d24 = +HEAPF32[i1 + 64 >> 2];
 38680  d25 = +HEAPF32[i1 + 68 >> 2];
 38681  d26 = +HEAPF32[i1 + 84 >> 2];
 38682  d27 = d26 + (d11 * d23 + d13 * d24 + d15 * d25);
 38683  HEAPF32[i3 >> 2] = d17;
 38684  HEAPF32[i3 + 4 >> 2] = d22;
 38685  HEAPF32[i3 + 8 >> 2] = d27;
 38686  HEAPF32[i3 + 12 >> 2] = 0.0;
 38687  d15 = +HEAPF32[i2 + 16 >> 2];
 38688  d13 = +HEAPF32[i2 + 20 >> 2];
 38689  d11 = +HEAPF32[i2 + 24 >> 2];
 38690  d28 = d16 + (d10 * d15 + d12 * d13 + d14 * d11);
 38691  d29 = d21 + (d18 * d15 + d19 * d13 + d20 * d11);
 38692  d30 = d26 + (d23 * d15 + d24 * d13 + d25 * d11);
 38693  HEAPF32[i5 >> 2] = d28;
 38694  HEAPF32[i5 + 4 >> 2] = d29;
 38695  HEAPF32[i5 + 8 >> 2] = d30;
 38696  HEAPF32[i5 + 12 >> 2] = 0.0;
 38697  d11 = +HEAPF32[i2 + 32 >> 2];
 38698  d13 = +HEAPF32[i2 + 36 >> 2];
 38699  d15 = +HEAPF32[i2 + 40 >> 2];
 38700  d31 = d16 + (d10 * d11 + d12 * d13 + d14 * d15);
 38701  d14 = d21 + (d18 * d11 + d19 * d13 + d20 * d15);
 38702  d20 = d26 + (d23 * d11 + d24 * d13 + d25 * d15);
 38703  HEAPF32[i6 >> 2] = d31;
 38704  HEAPF32[i6 + 4 >> 2] = d14;
 38705  HEAPF32[i6 + 8 >> 2] = d20;
 38706  HEAPF32[i6 + 12 >> 2] = 0.0;
 38707  d15 = (d17 + d28 + d31) * .3333333432674408;
 38708  d25 = (d22 + d29 + d14) * .3333333432674408;
 38709  d13 = (d27 + d30 + d20) * .3333333432674408;
 38710  HEAPF32[i7 >> 2] = d15;
 38711  HEAPF32[i7 + 4 >> 2] = d25;
 38712  HEAPF32[i7 + 8 >> 2] = d13;
 38713  HEAPF32[i7 + 12 >> 2] = 0.0;
 38714  d24 = d28 - d17;
 38715  d28 = d29 - d22;
 38716  d29 = d30 - d27;
 38717  d30 = d31 - d17;
 38718  d17 = d14 - d22;
 38719  d22 = d20 - d27;
 38720  d27 = d28 * d22 - d29 * d17;
 38721  d20 = d29 * d30 - d24 * d22;
 38722  d22 = d24 * d17 - d28 * d30;
 38723  d30 = 1.0 / +Math_sqrt(+(d22 * d22 + (d27 * d27 + d20 * d20)));
 38724  HEAPF32[i8 >> 2] = 1.0;
 38725  HEAPF32[i8 + 4 >> 2] = 1.0;
 38726  HEAPF32[i8 + 8 >> 2] = 0.0;
 38727  HEAPF32[i8 + 12 >> 2] = 0.0;
 38728  i2 = i1 + 8 | 0;
 38729  i32 = HEAP32[i2 >> 2] | 0;
 38730  i33 = HEAP32[(HEAP32[i32 >> 2] | 0) + 8 >> 2] | 0;
 38731  HEAPF32[i9 >> 2] = d15 + d30 * d27;
 38732  HEAPF32[i9 + 4 >> 2] = d25 + d30 * d20;
 38733  HEAPF32[i9 + 8 >> 2] = d13 + d30 * d22;
 38734  HEAPF32[i9 + 12 >> 2] = 0.0;
 38735  FUNCTION_TABLE_viiii[i33 & 127](i32, i7, i9, i8);
 38736  i8 = HEAP32[i2 >> 2] | 0;
 38737  i9 = i1 + 12 | 0;
 38738  FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i8 >> 2] | 0) + 8 >> 2] & 127](i8, i3, i5, i9);
 38739  i8 = HEAP32[i2 >> 2] | 0;
 38740  FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i8 >> 2] | 0) + 8 >> 2] & 127](i8, i5, i6, i9);
 38741  i5 = HEAP32[i2 >> 2] | 0;
 38742  FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i5 >> 2] | 0) + 8 >> 2] & 127](i5, i6, i3, i9);
 38743  STACKTOP = i4;
 38744  return;
 38746 function __ZN34btSphereTriangleCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
 38747  i1 = i1 | 0;
 38748  i2 = i2 | 0;
 38749  i3 = i3 | 0;
 38750  i4 = i4 | 0;
 38751  i5 = i5 | 0;
 38752  var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
 38753  i6 = STACKTOP;
 38754  STACKTOP = STACKTOP + 152 | 0;
 38755  i7 = i6 | 0;
 38756  i8 = i6 + 16 | 0;
 38757  i9 = i1 + 12 | 0;
 38758  i10 = HEAP32[i9 >> 2] | 0;
 38759  if ((i10 | 0) == 0) {
 38760   STACKTOP = i6;
 38761   return;
 38763  i11 = i1 + 16 | 0;
 38764  i12 = (HEAP8[i11] | 0) != 0;
 38765  i13 = i12 ? i3 : i2;
 38766  i14 = i12 ? i2 : i3;
 38767  i3 = HEAP32[i13 + 192 >> 2] | 0;
 38768  i2 = HEAP32[i14 + 192 >> 2] | 0;
 38769  i12 = i5 + 4 | 0;
 38770  HEAP32[i12 >> 2] = i10;
 38771  __ZN22SphereTriangleDetectorC2EP13btSphereShapeP15btTriangleShapef(i7, i3, i2, +__ZNK20btPersistentManifold27getContactBreakingThresholdEv(HEAP32[i9 >> 2] | 0));
 38772  HEAP32[i8 + 132 >> 2] = 0;
 38773  HEAPF32[i8 + 128 >> 2] = 999999984306749400.0;
 38774  i9 = i8;
 38775  i2 = i13 + 4 | 0;
 38776  HEAP32[i9 >> 2] = HEAP32[i2 >> 2];
 38777  HEAP32[i9 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
 38778  HEAP32[i9 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
 38779  HEAP32[i9 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
 38780  i2 = i8 + 16 | 0;
 38781  i9 = i13 + 20 | 0;
 38782  HEAP32[i2 >> 2] = HEAP32[i9 >> 2];
 38783  HEAP32[i2 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
 38784  HEAP32[i2 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
 38785  HEAP32[i2 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
 38786  i9 = i8 + 32 | 0;
 38787  i2 = i13 + 36 | 0;
 38788  HEAP32[i9 >> 2] = HEAP32[i2 >> 2];
 38789  HEAP32[i9 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
 38790  HEAP32[i9 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
 38791  HEAP32[i9 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
 38792  i2 = i8 + 48 | 0;
 38793  i9 = i13 + 52 | 0;
 38794  HEAP32[i2 >> 2] = HEAP32[i9 >> 2];
 38795  HEAP32[i2 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
 38796  HEAP32[i2 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
 38797  HEAP32[i2 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
 38798  i9 = i8 + 64 | 0;
 38799  i2 = i14 + 4 | 0;
 38800  HEAP32[i9 >> 2] = HEAP32[i2 >> 2];
 38801  HEAP32[i9 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
 38802  HEAP32[i9 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
 38803  HEAP32[i9 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
 38804  i2 = i8 + 80 | 0;
 38805  i9 = i14 + 20 | 0;
 38806  HEAP32[i2 >> 2] = HEAP32[i9 >> 2];
 38807  HEAP32[i2 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
 38808  HEAP32[i2 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
 38809  HEAP32[i2 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
 38810  i9 = i8 + 96 | 0;
 38811  i2 = i14 + 36 | 0;
 38812  HEAP32[i9 >> 2] = HEAP32[i2 >> 2];
 38813  HEAP32[i9 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
 38814  HEAP32[i9 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
 38815  HEAP32[i9 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
 38816  i2 = i8 + 112 | 0;
 38817  i9 = i14 + 52 | 0;
 38818  HEAP32[i2 >> 2] = HEAP32[i9 >> 2];
 38819  HEAP32[i2 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
 38820  HEAP32[i2 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
 38821  HEAP32[i2 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
 38822  __ZN22SphereTriangleDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i7, i8, i5 | 0, HEAP32[i4 + 20 >> 2] | 0, (HEAP8[i11] | 0) != 0);
 38823  if ((HEAP8[i1 + 8 | 0] | 0) == 0) {
 38824   STACKTOP = i6;
 38825   return;
 38827  i1 = HEAP32[i12 >> 2] | 0;
 38828  if ((HEAP32[i1 + 1116 >> 2] | 0) == 0) {
 38829   STACKTOP = i6;
 38830   return;
 38832  if ((HEAP32[i1 + 1108 >> 2] | 0) == (HEAP32[i5 + 136 >> 2] | 0)) {
 38833   __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i1, i5 + 8 | 0, i5 + 72 | 0);
 38834   STACKTOP = i6;
 38835   return;
 38836  } else {
 38837   __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i1, i5 + 72 | 0, i5 + 8 | 0);
 38838   STACKTOP = i6;
 38839   return;
 38842 function __ZN16btCollisionWorld25serializeCollisionObjectsEP12btSerializer(i1, i2) {
 38843  i1 = i1 | 0;
 38844  i2 = i2 | 0;
 38845  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0;
 38846  i3 = STACKTOP;
 38847  STACKTOP = STACKTOP + 96 | 0;
 38848  i4 = i3 | 0;
 38849  i5 = i3 + 80 | 0;
 38850  i6 = i3 + 88 | 0;
 38851  i7 = i1 + 8 | 0;
 38852  i8 = HEAP32[i7 >> 2] | 0;
 38853  if ((i8 | 0) > 0) {
 38854   i9 = i1 + 16 | 0;
 38855   i10 = 0;
 38856   i11 = i8;
 38857   while (1) {
 38858    i12 = HEAP32[(HEAP32[i9 >> 2] | 0) + (i10 << 2) >> 2] | 0;
 38859    if ((HEAP32[i12 + 232 >> 2] | 0) == 1) {
 38860     FUNCTION_TABLE_vii[HEAP32[(HEAP32[i12 >> 2] | 0) + 24 >> 2] & 127](i12, i2);
 38861     i13 = HEAP32[i7 >> 2] | 0;
 38862    } else {
 38863     i13 = i11;
 38865    i12 = i10 + 1 | 0;
 38866    if ((i12 | 0) < (i13 | 0)) {
 38867     i10 = i12;
 38868     i11 = i13;
 38869    } else {
 38870     i14 = i13;
 38871     break;
 38874  } else {
 38875   i14 = i8;
 38877  HEAP8[i4 + 16 | 0] = 1;
 38878  i8 = i4 + 12 | 0;
 38879  HEAP32[i8 >> 2] = 0;
 38880  i13 = i4 + 4 | 0;
 38881  HEAP32[i13 >> 2] = 0;
 38882  HEAP32[i4 + 8 >> 2] = 0;
 38883  HEAP8[i4 + 36 | 0] = 1;
 38884  i11 = i4 + 32 | 0;
 38885  HEAP32[i11 >> 2] = 0;
 38886  HEAP32[i4 + 24 >> 2] = 0;
 38887  HEAP32[i4 + 28 >> 2] = 0;
 38888  HEAP8[i4 + 56 | 0] = 1;
 38889  i10 = i4 + 52 | 0;
 38890  HEAP32[i10 >> 2] = 0;
 38891  HEAP32[i4 + 44 >> 2] = 0;
 38892  i9 = i4 + 48 | 0;
 38893  HEAP32[i9 >> 2] = 0;
 38894  HEAP8[i4 + 76 | 0] = 1;
 38895  i12 = i4 + 72 | 0;
 38896  HEAP32[i12 >> 2] = 0;
 38897  HEAP32[i4 + 64 >> 2] = 0;
 38898  HEAP32[i4 + 68 >> 2] = 0;
 38899  if ((i14 | 0) <= 0) {
 38900   __ZN9btHashMapI9btHashPtrP16btCollisionShapeED2Ev(i4);
 38901   STACKTOP = i3;
 38902   return;
 38904  i15 = i1 + 16 | 0;
 38905  i1 = i6 | 0;
 38906  i16 = 0;
 38907  i17 = -1;
 38908  i18 = 0;
 38909  i19 = i14;
 38910  while (1) {
 38911   i14 = HEAP32[(HEAP32[(HEAP32[i15 >> 2] | 0) + (i16 << 2) >> 2] | 0) + 192 >> 2] | 0;
 38912   HEAP32[i5 >> 2] = i14;
 38913   i20 = i14;
 38914   i21 = i20 + ~(i20 << 15) | 0;
 38915   i22 = (i21 >> 10 ^ i21) * 9 | 0;
 38916   i21 = i22 >> 6 ^ i22;
 38917   i22 = i21 + ~(i21 << 11) | 0;
 38918   i21 = (i22 >> 16 ^ i22) & i17;
 38919   i22 = i14;
 38920   L410 : do {
 38921    if (i21 >>> 0 < i18 >>> 0) {
 38922     i14 = HEAP32[(HEAP32[i8 >> 2] | 0) + (i21 << 2) >> 2] | 0;
 38923     if ((i14 | 0) == -1) {
 38924      i23 = 364;
 38925      break;
 38927     i24 = HEAP32[i12 >> 2] | 0;
 38928     i25 = HEAP32[i11 >> 2] | 0;
 38929     i26 = i14;
 38930     while (1) {
 38931      if ((i22 | 0) == (HEAP32[i24 + (i26 << 3) >> 2] | 0)) {
 38932       break;
 38934      i14 = HEAP32[i25 + (i26 << 2) >> 2] | 0;
 38935      if ((i14 | 0) == -1) {
 38936       i23 = 364;
 38937       break L410;
 38938      } else {
 38939       i26 = i14;
 38942     if ((i26 | 0) == -1) {
 38943      i23 = 364;
 38944      break;
 38946     if (((HEAP32[i10 >> 2] | 0) + (i26 << 2) | 0) == 0) {
 38947      i23 = 364;
 38948     } else {
 38949      i27 = i19;
 38951    } else {
 38952     i23 = 364;
 38954   } while (0);
 38955   if ((i23 | 0) == 364) {
 38956    i23 = 0;
 38957    HEAP32[i1 >> 2] = i20;
 38958    __ZN9btHashMapI9btHashPtrP16btCollisionShapeE6insertERKS0_RKS2_(i4, i6, i5);
 38959    i22 = HEAP32[i5 >> 2] | 0;
 38960    FUNCTION_TABLE_vii[HEAP32[(HEAP32[i22 >> 2] | 0) + 56 >> 2] & 127](i22, i2);
 38961    i27 = HEAP32[i7 >> 2] | 0;
 38963   i22 = i16 + 1 | 0;
 38964   if ((i22 | 0) >= (i27 | 0)) {
 38965    break;
 38967   i16 = i22;
 38968   i17 = (HEAP32[i9 >> 2] | 0) - 1 | 0;
 38969   i18 = HEAP32[i13 >> 2] | 0;
 38970   i19 = i27;
 38972  __ZN9btHashMapI9btHashPtrP16btCollisionShapeED2Ev(i4);
 38973  STACKTOP = i3;
 38974  return;
 38976 function __ZN28btHashedOverlappingPairCache10growTablesEv(i1) {
 38977  i1 = i1 | 0;
 38978  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
 38979  i2 = i1 + 12 | 0;
 38980  i3 = HEAP32[i2 >> 2] | 0;
 38981  i4 = i1 + 36 | 0;
 38982  i5 = HEAP32[i4 >> 2] | 0;
 38983  if ((i5 | 0) >= (i3 | 0)) {
 38984   return;
 38986  if ((i5 | 0) <= (i3 | 0)) {
 38987   i6 = i1 + 40 | 0;
 38988   if ((HEAP32[i6 >> 2] | 0) < (i3 | 0)) {
 38989    if ((i3 | 0) == 0) {
 38990     i7 = 0;
 38991     i8 = i5;
 38992    } else {
 38993     i9 = __Z22btAlignedAllocInternalji(i3 << 2, 16) | 0;
 38994     i7 = i9;
 38995     i8 = HEAP32[i4 >> 2] | 0;
 38997    i9 = i1 + 44 | 0;
 38998    if ((i8 | 0) > 0) {
 38999     i10 = 0;
 39000     do {
 39001      i11 = i7 + (i10 << 2) | 0;
 39002      if ((i11 | 0) != 0) {
 39003       HEAP32[i11 >> 2] = HEAP32[(HEAP32[i9 >> 2] | 0) + (i10 << 2) >> 2];
 39005      i10 = i10 + 1 | 0;
 39006     } while ((i10 | 0) < (i8 | 0));
 39008    i8 = HEAP32[i9 >> 2] | 0;
 39009    i10 = i1 + 48 | 0;
 39010    if ((i8 | 0) != 0) {
 39011     if ((HEAP8[i10] | 0) != 0) {
 39012      __Z21btAlignedFreeInternalPv(i8);
 39014     HEAP32[i9 >> 2] = 0;
 39016    HEAP8[i10] = 1;
 39017    HEAP32[i9 >> 2] = i7;
 39018    HEAP32[i6 >> 2] = i3;
 39019    i12 = i7;
 39020   } else {
 39021    i12 = HEAP32[i1 + 44 >> 2] | 0;
 39023   i7 = i5;
 39024   do {
 39025    i6 = i12 + (i7 << 2) | 0;
 39026    if ((i6 | 0) != 0) {
 39027     HEAP32[i6 >> 2] = 0;
 39029    i7 = i7 + 1 | 0;
 39030   } while ((i7 | 0) < (i3 | 0));
 39032  HEAP32[i4 >> 2] = i3;
 39033  i4 = i1 + 56 | 0;
 39034  i7 = HEAP32[i4 >> 2] | 0;
 39035  if ((i7 | 0) < (i3 | 0)) {
 39036   i12 = i1 + 60 | 0;
 39037   if ((HEAP32[i12 >> 2] | 0) < (i3 | 0)) {
 39038    if ((i3 | 0) == 0) {
 39039     i13 = 0;
 39040     i14 = i7;
 39041    } else {
 39042     i6 = __Z22btAlignedAllocInternalji(i3 << 2, 16) | 0;
 39043     i13 = i6;
 39044     i14 = HEAP32[i4 >> 2] | 0;
 39046    i6 = i1 + 64 | 0;
 39047    if ((i14 | 0) > 0) {
 39048     i9 = 0;
 39049     do {
 39050      i10 = i13 + (i9 << 2) | 0;
 39051      if ((i10 | 0) != 0) {
 39052       HEAP32[i10 >> 2] = HEAP32[(HEAP32[i6 >> 2] | 0) + (i9 << 2) >> 2];
 39054      i9 = i9 + 1 | 0;
 39055     } while ((i9 | 0) < (i14 | 0));
 39057    i14 = HEAP32[i6 >> 2] | 0;
 39058    i9 = i1 + 68 | 0;
 39059    if ((i14 | 0) != 0) {
 39060     if ((HEAP8[i9] | 0) != 0) {
 39061      __Z21btAlignedFreeInternalPv(i14);
 39063     HEAP32[i6 >> 2] = 0;
 39065    HEAP8[i9] = 1;
 39066    HEAP32[i6 >> 2] = i13;
 39067    HEAP32[i12 >> 2] = i3;
 39068    i15 = i13;
 39069   } else {
 39070    i15 = HEAP32[i1 + 64 >> 2] | 0;
 39072   i13 = i7;
 39073   do {
 39074    i7 = i15 + (i13 << 2) | 0;
 39075    if ((i7 | 0) != 0) {
 39076     HEAP32[i7 >> 2] = 0;
 39078    i13 = i13 + 1 | 0;
 39079   } while ((i13 | 0) < (i3 | 0));
 39081  HEAP32[i4 >> 2] = i3;
 39082  if ((i3 | 0) > 0) {
 39083   i4 = i3 << 2;
 39084   _memset(HEAP32[i1 + 44 >> 2] | 0, -1 | 0, i4 | 0);
 39085   _memset(HEAP32[i1 + 64 >> 2] | 0, -1 | 0, i4 | 0);
 39087  if ((i5 | 0) <= 0) {
 39088   return;
 39090  i4 = HEAP32[i1 + 16 >> 2] | 0;
 39091  i3 = HEAP32[i1 + 44 >> 2] | 0;
 39092  i13 = HEAP32[i1 + 64 >> 2] | 0;
 39093  i1 = 0;
 39094  do {
 39095   i15 = HEAP32[(HEAP32[i4 + (i1 << 4) + 4 >> 2] | 0) + 12 >> 2] << 16 | HEAP32[(HEAP32[i4 + (i1 << 4) >> 2] | 0) + 12 >> 2];
 39096   i7 = i15 + ~(i15 << 15) | 0;
 39097   i15 = (i7 >> 10 ^ i7) * 9 | 0;
 39098   i7 = i15 >> 6 ^ i15;
 39099   i15 = i7 + ~(i7 << 11) | 0;
 39100   i7 = i3 + (((i15 >> 16 ^ i15) & (HEAP32[i2 >> 2] | 0) - 1) << 2) | 0;
 39101   HEAP32[i13 + (i1 << 2) >> 2] = HEAP32[i7 >> 2];
 39102   HEAP32[i7 >> 2] = i1;
 39103   i1 = i1 + 1 | 0;
 39104  } while ((i1 | 0) < (i5 | 0));
 39105  return;
 39107 function __ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(i1, i2, i3, i4) {
 39108  i1 = i1 | 0;
 39109  i2 = i2 | 0;
 39110  i3 = i3 | 0;
 39111  i4 = i4 | 0;
 39112  var i5 = 0, i6 = 0, i7 = 0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, i26 = 0;
 39113  i5 = STACKTOP;
 39114  STACKTOP = STACKTOP + 64 | 0;
 39115  i6 = i5 | 0;
 39116  i7 = i5 + 48 | 0;
 39117  d8 = +HEAPF32[i1 + 20 >> 2];
 39118  d9 = +HEAPF32[i1 + 40 >> 2];
 39119  d10 = +HEAPF32[i1 + 24 >> 2];
 39120  d11 = +HEAPF32[i1 + 36 >> 2];
 39121  d12 = d8 * d9 - d10 * d11;
 39122  d13 = +HEAPF32[i1 + 32 >> 2];
 39123  d14 = +HEAPF32[i1 + 16 >> 2];
 39124  d15 = d10 * d13 - d9 * d14;
 39125  d16 = d11 * d14 - d8 * d13;
 39126  d17 = +HEAPF32[i1 >> 2];
 39127  d18 = +HEAPF32[i1 + 4 >> 2];
 39128  d19 = +HEAPF32[i1 + 8 >> 2];
 39129  d20 = 1.0 / (d12 * d17 + d18 * d15 + d16 * d19);
 39130  d21 = d12 * d20;
 39131  d12 = d20 * (d11 * d19 - d9 * d18);
 39132  d22 = d20 * (d10 * d18 - d8 * d19);
 39133  d23 = d15 * d20;
 39134  d15 = d20 * (d9 * d17 - d13 * d19);
 39135  d9 = d20 * (d14 * d19 - d10 * d17);
 39136  d10 = d16 * d20;
 39137  d16 = d20 * (d13 * d18 - d11 * d17);
 39138  d11 = d20 * (d8 * d17 - d14 * d18);
 39139  d18 = +HEAPF32[i2 >> 2];
 39140  d14 = +HEAPF32[i2 + 4 >> 2];
 39141  d17 = +HEAPF32[i2 + 8 >> 2];
 39142  d8 = +HEAPF32[i2 + 16 >> 2];
 39143  d20 = +HEAPF32[i2 + 20 >> 2];
 39144  d13 = +HEAPF32[i2 + 24 >> 2];
 39145  d19 = +HEAPF32[i2 + 32 >> 2];
 39146  d24 = +HEAPF32[i2 + 36 >> 2];
 39147  d25 = +HEAPF32[i2 + 40 >> 2];
 39148  HEAPF32[i6 >> 2] = d21 * d18 + d23 * d14 + d10 * d17;
 39149  HEAPF32[i6 + 4 >> 2] = d18 * d12 + d14 * d15 + d16 * d17;
 39150  HEAPF32[i6 + 8 >> 2] = d18 * d22 + d14 * d9 + d11 * d17;
 39151  HEAPF32[i6 + 12 >> 2] = 0.0;
 39152  HEAPF32[i6 + 16 >> 2] = d21 * d8 + d23 * d20 + d10 * d13;
 39153  HEAPF32[i6 + 20 >> 2] = d12 * d8 + d15 * d20 + d16 * d13;
 39154  HEAPF32[i6 + 24 >> 2] = d22 * d8 + d9 * d20 + d11 * d13;
 39155  HEAPF32[i6 + 28 >> 2] = 0.0;
 39156  HEAPF32[i6 + 32 >> 2] = d21 * d19 + d23 * d24 + d10 * d25;
 39157  HEAPF32[i6 + 36 >> 2] = d12 * d19 + d15 * d24 + d16 * d25;
 39158  HEAPF32[i6 + 40 >> 2] = d22 * d19 + d9 * d24 + d11 * d25;
 39159  HEAPF32[i6 + 44 >> 2] = 0.0;
 39160  __ZNK11btMatrix3x311getRotationER12btQuaternion(i6, i7);
 39161  i6 = i7 | 0;
 39162  d25 = +HEAPF32[i6 >> 2];
 39163  i2 = i7 + 4 | 0;
 39164  d11 = +HEAPF32[i2 >> 2];
 39165  i1 = i7 + 8 | 0;
 39166  d24 = +HEAPF32[i1 >> 2];
 39167  i26 = i7 + 12 | 0;
 39168  d9 = +HEAPF32[i26 >> 2];
 39169  d19 = 1.0 / +Math_sqrt(+(d25 * d25 + d11 * d11 + d24 * d24 + d9 * d9));
 39170  d22 = d25 * d19;
 39171  HEAPF32[i6 >> 2] = d22;
 39172  d25 = d11 * d19;
 39173  HEAPF32[i2 >> 2] = d25;
 39174  d11 = d24 * d19;
 39175  HEAPF32[i1 >> 2] = d11;
 39176  d24 = d9 * d19;
 39177  HEAPF32[i26 >> 2] = d24;
 39178  d19 = d24 < -1.0 ? -1.0 : d24;
 39179  HEAPF32[i4 >> 2] = +Math_acos(+(d19 > 1.0 ? 1.0 : d19)) * 2.0;
 39180  i4 = i3 | 0;
 39181  HEAPF32[i4 >> 2] = d22;
 39182  i26 = i3 + 4 | 0;
 39183  HEAPF32[i26 >> 2] = d25;
 39184  i1 = i3 + 8 | 0;
 39185  HEAPF32[i1 >> 2] = d11;
 39186  i2 = i3 + 12 | 0;
 39187  HEAPF32[i2 >> 2] = 0.0;
 39188  d19 = d11 * d11 + (d22 * d22 + d25 * d25);
 39189  if (d19 < 1.4210854715202004e-14) {
 39190   HEAPF32[i4 >> 2] = 1.0;
 39191   HEAPF32[i26 >> 2] = 0.0;
 39192   HEAPF32[i1 >> 2] = 0.0;
 39193   HEAPF32[i2 >> 2] = 0.0;
 39194   STACKTOP = i5;
 39195   return;
 39196  } else {
 39197   d24 = 1.0 / +Math_sqrt(+d19);
 39198   HEAPF32[i4 >> 2] = d22 * d24;
 39199   HEAPF32[i26 >> 2] = d25 * d24;
 39200   HEAPF32[i1 >> 2] = d11 * d24;
 39201   STACKTOP = i5;
 39202   return;
 39205 function __ZNK11btRigidBody9serializeEPvP12btSerializer(i1, i2, i3) {
 39206  i1 = i1 | 0;
 39207  i2 = i2 | 0;
 39208  i3 = i3 | 0;
 39209  __ZNK17btCollisionObject9serializeEPvP12btSerializer(i1 | 0, i2, i3) | 0;
 39210  HEAPF32[i2 + 248 >> 2] = +HEAPF32[i1 + 256 >> 2];
 39211  HEAPF32[i2 + 252 >> 2] = +HEAPF32[i1 + 260 >> 2];
 39212  HEAPF32[i2 + 256 >> 2] = +HEAPF32[i1 + 264 >> 2];
 39213  HEAPF32[i2 + 260 >> 2] = +HEAPF32[i1 + 268 >> 2];
 39214  HEAPF32[i2 + 264 >> 2] = +HEAPF32[i1 + 272 >> 2];
 39215  HEAPF32[i2 + 268 >> 2] = +HEAPF32[i1 + 276 >> 2];
 39216  HEAPF32[i2 + 272 >> 2] = +HEAPF32[i1 + 280 >> 2];
 39217  HEAPF32[i2 + 276 >> 2] = +HEAPF32[i1 + 284 >> 2];
 39218  HEAPF32[i2 + 280 >> 2] = +HEAPF32[i1 + 288 >> 2];
 39219  HEAPF32[i2 + 284 >> 2] = +HEAPF32[i1 + 292 >> 2];
 39220  HEAPF32[i2 + 288 >> 2] = +HEAPF32[i1 + 296 >> 2];
 39221  HEAPF32[i2 + 292 >> 2] = +HEAPF32[i1 + 300 >> 2];
 39222  HEAPF32[i2 + 296 >> 2] = +HEAPF32[i1 + 304 >> 2];
 39223  HEAPF32[i2 + 300 >> 2] = +HEAPF32[i1 + 308 >> 2];
 39224  HEAPF32[i2 + 304 >> 2] = +HEAPF32[i1 + 312 >> 2];
 39225  HEAPF32[i2 + 308 >> 2] = +HEAPF32[i1 + 316 >> 2];
 39226  HEAPF32[i2 + 312 >> 2] = +HEAPF32[i1 + 320 >> 2];
 39227  HEAPF32[i2 + 316 >> 2] = +HEAPF32[i1 + 324 >> 2];
 39228  HEAPF32[i2 + 320 >> 2] = +HEAPF32[i1 + 328 >> 2];
 39229  HEAPF32[i2 + 324 >> 2] = +HEAPF32[i1 + 332 >> 2];
 39230  HEAPF32[i2 + 440 >> 2] = +HEAPF32[i1 + 336 >> 2];
 39231  HEAPF32[i2 + 328 >> 2] = +HEAPF32[i1 + 536 >> 2];
 39232  HEAPF32[i2 + 332 >> 2] = +HEAPF32[i1 + 540 >> 2];
 39233  HEAPF32[i2 + 336 >> 2] = +HEAPF32[i1 + 544 >> 2];
 39234  HEAPF32[i2 + 340 >> 2] = +HEAPF32[i1 + 548 >> 2];
 39235  HEAPF32[i2 + 344 >> 2] = +HEAPF32[i1 + 340 >> 2];
 39236  HEAPF32[i2 + 348 >> 2] = +HEAPF32[i1 + 344 >> 2];
 39237  HEAPF32[i2 + 352 >> 2] = +HEAPF32[i1 + 348 >> 2];
 39238  HEAPF32[i2 + 356 >> 2] = +HEAPF32[i1 + 352 >> 2];
 39239  HEAPF32[i2 + 360 >> 2] = +HEAPF32[i1 + 356 >> 2];
 39240  HEAPF32[i2 + 364 >> 2] = +HEAPF32[i1 + 360 >> 2];
 39241  HEAPF32[i2 + 368 >> 2] = +HEAPF32[i1 + 364 >> 2];
 39242  HEAPF32[i2 + 372 >> 2] = +HEAPF32[i1 + 368 >> 2];
 39243  HEAPF32[i2 + 376 >> 2] = +HEAPF32[i1 + 372 >> 2];
 39244  HEAPF32[i2 + 380 >> 2] = +HEAPF32[i1 + 376 >> 2];
 39245  HEAPF32[i2 + 384 >> 2] = +HEAPF32[i1 + 380 >> 2];
 39246  HEAPF32[i2 + 388 >> 2] = +HEAPF32[i1 + 384 >> 2];
 39247  HEAPF32[i2 + 392 >> 2] = +HEAPF32[i1 + 388 >> 2];
 39248  HEAPF32[i2 + 396 >> 2] = +HEAPF32[i1 + 392 >> 2];
 39249  HEAPF32[i2 + 400 >> 2] = +HEAPF32[i1 + 396 >> 2];
 39250  HEAPF32[i2 + 404 >> 2] = +HEAPF32[i1 + 400 >> 2];
 39251  HEAPF32[i2 + 408 >> 2] = +HEAPF32[i1 + 404 >> 2];
 39252  HEAPF32[i2 + 412 >> 2] = +HEAPF32[i1 + 408 >> 2];
 39253  HEAPF32[i2 + 416 >> 2] = +HEAPF32[i1 + 412 >> 2];
 39254  HEAPF32[i2 + 420 >> 2] = +HEAPF32[i1 + 416 >> 2];
 39255  HEAPF32[i2 + 424 >> 2] = +HEAPF32[i1 + 420 >> 2];
 39256  HEAPF32[i2 + 428 >> 2] = +HEAPF32[i1 + 424 >> 2];
 39257  HEAPF32[i2 + 432 >> 2] = +HEAPF32[i1 + 428 >> 2];
 39258  HEAPF32[i2 + 436 >> 2] = +HEAPF32[i1 + 432 >> 2];
 39259  HEAPF32[i2 + 444 >> 2] = +HEAPF32[i1 + 436 >> 2];
 39260  HEAPF32[i2 + 448 >> 2] = +HEAPF32[i1 + 440 >> 2];
 39261  HEAP32[i2 + 476 >> 2] = HEAPU8[i1 + 444 | 0] | 0;
 39262  HEAPF32[i2 + 452 >> 2] = +HEAPF32[i1 + 448 >> 2];
 39263  HEAPF32[i2 + 456 >> 2] = +HEAPF32[i1 + 452 >> 2];
 39264  HEAPF32[i2 + 460 >> 2] = +HEAPF32[i1 + 456 >> 2];
 39265  HEAPF32[i2 + 464 >> 2] = +HEAPF32[i1 + 460 >> 2];
 39266  HEAPF32[i2 + 468 >> 2] = +HEAPF32[i1 + 464 >> 2];
 39267  HEAPF32[i2 + 472 >> 2] = +HEAPF32[i1 + 468 >> 2];
 39268  return 600;
 39270 function __ZN25btTriangleRaycastCallback15processTriangleEP9btVector3ii(i1, i2, i3, i4) {
 39271  i1 = i1 | 0;
 39272  i2 = i2 | 0;
 39273  i3 = i3 | 0;
 39274  i4 = i4 | 0;
 39275  var i5 = 0, i6 = 0, i7 = 0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, i25 = 0, i26 = 0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, i31 = 0, i32 = 0, d33 = 0.0, d34 = 0.0, d35 = 0.0;
 39276  i5 = STACKTOP;
 39277  STACKTOP = STACKTOP + 32 | 0;
 39278  i6 = i5 | 0;
 39279  i7 = i5 + 16 | 0;
 39280  d8 = +HEAPF32[i2 + 16 >> 2];
 39281  d9 = +HEAPF32[i2 >> 2];
 39282  d10 = d8 - d9;
 39283  d11 = +HEAPF32[i2 + 20 >> 2];
 39284  d12 = +HEAPF32[i2 + 4 >> 2];
 39285  d13 = d11 - d12;
 39286  d14 = +HEAPF32[i2 + 24 >> 2];
 39287  d15 = +HEAPF32[i2 + 8 >> 2];
 39288  d16 = d14 - d15;
 39289  d17 = +HEAPF32[i2 + 32 >> 2];
 39290  d18 = d17 - d9;
 39291  d19 = +HEAPF32[i2 + 36 >> 2];
 39292  d20 = d19 - d12;
 39293  d21 = +HEAPF32[i2 + 40 >> 2];
 39294  d22 = d21 - d15;
 39295  d23 = d13 * d22 - d16 * d20;
 39296  d24 = d16 * d18 - d10 * d22;
 39297  d22 = d10 * d20 - d13 * d18;
 39298  i2 = i6 | 0;
 39299  HEAPF32[i2 >> 2] = d23;
 39300  i25 = i6 + 4 | 0;
 39301  HEAPF32[i25 >> 2] = d24;
 39302  i26 = i6 + 8 | 0;
 39303  HEAPF32[i26 >> 2] = d22;
 39304  HEAPF32[i6 + 12 >> 2] = 0.0;
 39305  d18 = d15 * d22 + (d9 * d23 + d12 * d24);
 39306  d13 = +HEAPF32[i1 + 4 >> 2];
 39307  d20 = +HEAPF32[i1 + 8 >> 2];
 39308  d10 = +HEAPF32[i1 + 12 >> 2];
 39309  d16 = d22 * d10 + (d13 * d23 + d20 * d24) - d18;
 39310  d27 = +HEAPF32[i1 + 20 >> 2];
 39311  d28 = +HEAPF32[i1 + 24 >> 2];
 39312  d29 = +HEAPF32[i1 + 28 >> 2];
 39313  d30 = d23 * d27 + d24 * d28 + d22 * d29 - d18;
 39314  if (d16 * d30 >= 0.0) {
 39315   STACKTOP = i5;
 39316   return;
 39318  i31 = HEAP32[i1 + 36 >> 2] | 0;
 39319  if ((i31 & 1 | 0) != 0 & d16 > 0.0) {
 39320   STACKTOP = i5;
 39321   return;
 39323  d18 = d16 / (d16 - d30);
 39324  i32 = i1 + 40 | 0;
 39325  if (d18 >= +HEAPF32[i32 >> 2]) {
 39326   STACKTOP = i5;
 39327   return;
 39329  d30 = d22 * d22 + (d23 * d23 + d24 * d24);
 39330  d33 = d30 * -9999999747378752.0e-20;
 39331  d34 = 1.0 - d18;
 39332  d35 = d27 * d18 + d13 * d34;
 39333  d13 = d28 * d18 + d20 * d34;
 39334  d20 = d29 * d18 + d10 * d34;
 39335  d34 = d9 - d35;
 39336  d9 = d12 - d13;
 39337  d12 = d15 - d20;
 39338  d15 = d8 - d35;
 39339  d8 = d11 - d13;
 39340  d11 = d14 - d20;
 39341  if (d22 * (d34 * d8 - d9 * d15) + (d23 * (d9 * d11 - d12 * d8) + d24 * (d12 * d15 - d34 * d11)) < d33) {
 39342   STACKTOP = i5;
 39343   return;
 39345  d14 = d17 - d35;
 39346  d35 = d19 - d13;
 39347  d13 = d21 - d20;
 39348  if (d22 * (d15 * d35 - d8 * d14) + (d23 * (d8 * d13 - d11 * d35) + d24 * (d11 * d14 - d15 * d13)) < d33) {
 39349   STACKTOP = i5;
 39350   return;
 39352  if (d22 * (d9 * d14 - d34 * d35) + (d23 * (d12 * d35 - d9 * d13) + d24 * (d34 * d13 - d12 * d14)) < d33) {
 39353   STACKTOP = i5;
 39354   return;
 39356  d33 = 1.0 / +Math_sqrt(+d30);
 39357  d30 = d23 * d33;
 39358  HEAPF32[i2 >> 2] = d30;
 39359  d23 = d24 * d33;
 39360  HEAPF32[i25 >> 2] = d23;
 39361  d24 = d22 * d33;
 39362  HEAPF32[i26 >> 2] = d24;
 39363  i26 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
 39364  if ((i31 & 2 | 0) == 0 & d16 > 0.0) {
 39365   HEAPF32[i32 >> 2] = +FUNCTION_TABLE_fiifii[i26 & 7](i1, i6, d18, i3, i4);
 39366   STACKTOP = i5;
 39367   return;
 39368  } else {
 39369   HEAPF32[i7 >> 2] = -0.0 - d30;
 39370   HEAPF32[i7 + 4 >> 2] = -0.0 - d23;
 39371   HEAPF32[i7 + 8 >> 2] = -0.0 - d24;
 39372   HEAPF32[i7 + 12 >> 2] = 0.0;
 39373   HEAPF32[i32 >> 2] = +FUNCTION_TABLE_fiifii[i26 & 7](i1, i7, d18, i3, i4);
 39374   STACKTOP = i5;
 39375   return;
 39378 function __ZN9btHashMapI9btHashPtrP16btCollisionShapeE10growTablesERKS0_(i1, i2) {
 39379  i1 = i1 | 0;
 39380  i2 = i2 | 0;
 39381  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
 39382  i2 = i1 + 48 | 0;
 39383  i3 = HEAP32[i2 >> 2] | 0;
 39384  i4 = i1 + 4 | 0;
 39385  i5 = HEAP32[i4 >> 2] | 0;
 39386  if ((i5 | 0) >= (i3 | 0)) {
 39387   return;
 39389  if ((i5 | 0) <= (i3 | 0)) {
 39390   i6 = i1 + 8 | 0;
 39391   if ((HEAP32[i6 >> 2] | 0) < (i3 | 0)) {
 39392    if ((i3 | 0) == 0) {
 39393     i7 = 0;
 39394     i8 = i5;
 39395    } else {
 39396     i9 = __Z22btAlignedAllocInternalji(i3 << 2, 16) | 0;
 39397     i7 = i9;
 39398     i8 = HEAP32[i4 >> 2] | 0;
 39400    i9 = i1 + 12 | 0;
 39401    if ((i8 | 0) > 0) {
 39402     i10 = 0;
 39403     do {
 39404      i11 = i7 + (i10 << 2) | 0;
 39405      if ((i11 | 0) != 0) {
 39406       HEAP32[i11 >> 2] = HEAP32[(HEAP32[i9 >> 2] | 0) + (i10 << 2) >> 2];
 39408      i10 = i10 + 1 | 0;
 39409     } while ((i10 | 0) < (i8 | 0));
 39411    i8 = HEAP32[i9 >> 2] | 0;
 39412    i10 = i1 + 16 | 0;
 39413    if ((i8 | 0) != 0) {
 39414     if ((HEAP8[i10] | 0) != 0) {
 39415      __Z21btAlignedFreeInternalPv(i8);
 39417     HEAP32[i9 >> 2] = 0;
 39419    HEAP8[i10] = 1;
 39420    HEAP32[i9 >> 2] = i7;
 39421    HEAP32[i6 >> 2] = i3;
 39422    i12 = i7;
 39423   } else {
 39424    i12 = HEAP32[i1 + 12 >> 2] | 0;
 39426   i7 = i5;
 39427   do {
 39428    i6 = i12 + (i7 << 2) | 0;
 39429    if ((i6 | 0) != 0) {
 39430     HEAP32[i6 >> 2] = 0;
 39432    i7 = i7 + 1 | 0;
 39433   } while ((i7 | 0) < (i3 | 0));
 39435  HEAP32[i4 >> 2] = i3;
 39436  i4 = i1 + 24 | 0;
 39437  i7 = HEAP32[i4 >> 2] | 0;
 39438  if ((i7 | 0) < (i3 | 0)) {
 39439   i12 = i1 + 28 | 0;
 39440   if ((HEAP32[i12 >> 2] | 0) < (i3 | 0)) {
 39441    if ((i3 | 0) == 0) {
 39442     i13 = 0;
 39443     i14 = i7;
 39444    } else {
 39445     i6 = __Z22btAlignedAllocInternalji(i3 << 2, 16) | 0;
 39446     i13 = i6;
 39447     i14 = HEAP32[i4 >> 2] | 0;
 39449    i6 = i1 + 32 | 0;
 39450    if ((i14 | 0) > 0) {
 39451     i9 = 0;
 39452     do {
 39453      i10 = i13 + (i9 << 2) | 0;
 39454      if ((i10 | 0) != 0) {
 39455       HEAP32[i10 >> 2] = HEAP32[(HEAP32[i6 >> 2] | 0) + (i9 << 2) >> 2];
 39457      i9 = i9 + 1 | 0;
 39458     } while ((i9 | 0) < (i14 | 0));
 39460    i14 = HEAP32[i6 >> 2] | 0;
 39461    i9 = i1 + 36 | 0;
 39462    if ((i14 | 0) != 0) {
 39463     if ((HEAP8[i9] | 0) != 0) {
 39464      __Z21btAlignedFreeInternalPv(i14);
 39466     HEAP32[i6 >> 2] = 0;
 39468    HEAP8[i9] = 1;
 39469    HEAP32[i6 >> 2] = i13;
 39470    HEAP32[i12 >> 2] = i3;
 39471    i15 = i13;
 39472   } else {
 39473    i15 = HEAP32[i1 + 32 >> 2] | 0;
 39475   i13 = i7;
 39476   do {
 39477    i7 = i15 + (i13 << 2) | 0;
 39478    if ((i7 | 0) != 0) {
 39479     HEAP32[i7 >> 2] = 0;
 39481    i13 = i13 + 1 | 0;
 39482   } while ((i13 | 0) < (i3 | 0));
 39484  HEAP32[i4 >> 2] = i3;
 39485  if ((i3 | 0) > 0) {
 39486   i4 = i3 << 2;
 39487   _memset(HEAP32[i1 + 12 >> 2] | 0, -1 | 0, i4 | 0);
 39488   _memset(HEAP32[i1 + 32 >> 2] | 0, -1 | 0, i4 | 0);
 39490  if ((i5 | 0) <= 0) {
 39491   return;
 39493  i4 = HEAP32[i1 + 72 >> 2] | 0;
 39494  i3 = HEAP32[i1 + 12 >> 2] | 0;
 39495  i13 = HEAP32[i1 + 32 >> 2] | 0;
 39496  i1 = 0;
 39497  do {
 39498   i15 = HEAP32[i4 + (i1 << 3) >> 2] | 0;
 39499   i7 = i15 + ~(i15 << 15) | 0;
 39500   i15 = (i7 >> 10 ^ i7) * 9 | 0;
 39501   i7 = i15 >> 6 ^ i15;
 39502   i15 = i7 + ~(i7 << 11) | 0;
 39503   i7 = i3 + (((i15 >> 16 ^ i15) & (HEAP32[i2 >> 2] | 0) - 1) << 2) | 0;
 39504   HEAP32[i13 + (i1 << 2) >> 2] = HEAP32[i7 >> 2];
 39505   HEAP32[i7 >> 2] = i1;
 39506   i1 = i1 + 1 | 0;
 39507  } while ((i1 | 0) < (i5 | 0));
 39508  return;
 39510 function __ZN35btSequentialImpulseConstraintSolver33resolveSingleConstraintRowGenericER11btRigidBodyS1_RK18btSolverConstraint(i1, i2, i3, i4) {
 39511  i1 = i1 | 0;
 39512  i2 = i2 | 0;
 39513  i3 = i3 | 0;
 39514  i4 = i4 | 0;
 39515  var d5 = 0.0, i6 = 0, d7 = 0.0, i8 = 0, i9 = 0, d10 = 0.0, i11 = 0, i12 = 0, d13 = 0.0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0;
 39516  i1 = i4 + 84 | 0;
 39517  d5 = +HEAPF32[i1 >> 2];
 39518  i6 = i4 + 16 | 0;
 39519  d7 = +HEAPF32[i6 >> 2];
 39520  i8 = i2 + 504 | 0;
 39521  i9 = i4 + 20 | 0;
 39522  d10 = +HEAPF32[i9 >> 2];
 39523  i11 = i2 + 508 | 0;
 39524  i12 = i4 + 24 | 0;
 39525  d13 = +HEAPF32[i12 >> 2];
 39526  i14 = i2 + 512 | 0;
 39527  i15 = i2 + 520 | 0;
 39528  i16 = i2 + 524 | 0;
 39529  i17 = i2 + 528 | 0;
 39530  i18 = i3 + 504 | 0;
 39531  i19 = i3 + 508 | 0;
 39532  i20 = i3 + 512 | 0;
 39533  i21 = i3 + 520 | 0;
 39534  i22 = i3 + 524 | 0;
 39535  i23 = i3 + 528 | 0;
 39536  d24 = +HEAPF32[i4 + 92 >> 2];
 39537  d25 = +HEAPF32[i4 + 116 >> 2] - d5 * +HEAPF32[i4 + 120 >> 2] - (d7 * +HEAPF32[i8 >> 2] + d10 * +HEAPF32[i11 >> 2] + d13 * +HEAPF32[i14 >> 2] + (+HEAPF32[i4 >> 2] * +HEAPF32[i15 >> 2] + +HEAPF32[i4 + 4 >> 2] * +HEAPF32[i16 >> 2] + +HEAPF32[i4 + 8 >> 2] * +HEAPF32[i17 >> 2])) * d24 - d24 * (+HEAPF32[i4 + 32 >> 2] * +HEAPF32[i21 >> 2] + +HEAPF32[i4 + 36 >> 2] * +HEAPF32[i22 >> 2] + +HEAPF32[i4 + 40 >> 2] * +HEAPF32[i23 >> 2] - (d7 * +HEAPF32[i18 >> 2] + d10 * +HEAPF32[i19 >> 2] + d13 * +HEAPF32[i20 >> 2]));
 39538  d24 = d5 + d25;
 39539  d26 = +HEAPF32[i4 + 124 >> 2];
 39540  do {
 39541   if (d24 < d26) {
 39542    HEAPF32[i1 >> 2] = d26;
 39543    d27 = d26 - d5;
 39544   } else {
 39545    d28 = +HEAPF32[i4 + 128 >> 2];
 39546    if (d24 > d28) {
 39547     HEAPF32[i1 >> 2] = d28;
 39548     d27 = d28 - d5;
 39549     break;
 39550    } else {
 39551     HEAPF32[i1 >> 2] = d24;
 39552     d27 = d25;
 39553     break;
 39556  } while (0);
 39557  if (+HEAPF32[i2 + 336 >> 2] != 0.0) {
 39558   d25 = d27 * d10 * +HEAPF32[i2 + 556 >> 2];
 39559   d10 = d27 * d13 * +HEAPF32[i2 + 560 >> 2];
 39560   HEAPF32[i8 >> 2] = +HEAPF32[i8 >> 2] + d27 * d7 * +HEAPF32[i2 + 552 >> 2];
 39561   HEAPF32[i11 >> 2] = d25 + +HEAPF32[i11 >> 2];
 39562   HEAPF32[i14 >> 2] = d10 + +HEAPF32[i14 >> 2];
 39563   d10 = d27 * +HEAPF32[i2 + 540 >> 2] * +HEAPF32[i4 + 52 >> 2];
 39564   d25 = d27 * +HEAPF32[i2 + 544 >> 2] * +HEAPF32[i4 + 56 >> 2];
 39565   HEAPF32[i15 >> 2] = d27 * +HEAPF32[i2 + 536 >> 2] * +HEAPF32[i4 + 48 >> 2] + +HEAPF32[i15 >> 2];
 39566   HEAPF32[i16 >> 2] = d10 + +HEAPF32[i16 >> 2];
 39567   HEAPF32[i17 >> 2] = d25 + +HEAPF32[i17 >> 2];
 39569  if (+HEAPF32[i3 + 336 >> 2] == 0.0) {
 39570   return;
 39572  d25 = d27 * +HEAPF32[i3 + 556 >> 2] * (-0.0 - +HEAPF32[i9 >> 2]);
 39573  d10 = d27 * +HEAPF32[i3 + 560 >> 2] * (-0.0 - +HEAPF32[i12 >> 2]);
 39574  HEAPF32[i18 >> 2] = +HEAPF32[i18 >> 2] + d27 * +HEAPF32[i3 + 552 >> 2] * (-0.0 - +HEAPF32[i6 >> 2]);
 39575  HEAPF32[i19 >> 2] = d25 + +HEAPF32[i19 >> 2];
 39576  HEAPF32[i20 >> 2] = d10 + +HEAPF32[i20 >> 2];
 39577  d10 = d27 * +HEAPF32[i3 + 540 >> 2] * +HEAPF32[i4 + 68 >> 2];
 39578  d25 = d27 * +HEAPF32[i3 + 544 >> 2] * +HEAPF32[i4 + 72 >> 2];
 39579  HEAPF32[i21 >> 2] = d27 * +HEAPF32[i3 + 536 >> 2] * +HEAPF32[i4 + 64 >> 2] + +HEAPF32[i21 >> 2];
 39580  HEAPF32[i22 >> 2] = d10 + +HEAPF32[i22 >> 2];
 39581  HEAPF32[i23 >> 2] = d25 + +HEAPF32[i23 >> 2];
 39582  return;
 39584 function __ZN26btBoxBoxCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
 39585  i1 = i1 | 0;
 39586  i2 = i2 | 0;
 39587  i3 = i3 | 0;
 39588  i4 = i4 | 0;
 39589  i5 = i5 | 0;
 39590  var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
 39591  i6 = STACKTOP;
 39592  STACKTOP = STACKTOP + 152 | 0;
 39593  i7 = i6 | 0;
 39594  i8 = i6 + 136 | 0;
 39595  i9 = HEAP32[i1 + 12 >> 2] | 0;
 39596  if ((i9 | 0) == 0) {
 39597   STACKTOP = i6;
 39598   return;
 39600  i10 = HEAP32[i2 + 192 >> 2] | 0;
 39601  i11 = HEAP32[i3 + 192 >> 2] | 0;
 39602  i12 = i5 + 4 | 0;
 39603  HEAP32[i12 >> 2] = i9;
 39604  HEAP32[i7 + 132 >> 2] = 0;
 39605  HEAPF32[i7 + 128 >> 2] = 999999984306749400.0;
 39606  i9 = i7;
 39607  i13 = i2 + 4 | 0;
 39608  HEAP32[i9 >> 2] = HEAP32[i13 >> 2];
 39609  HEAP32[i9 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
 39610  HEAP32[i9 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
 39611  HEAP32[i9 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
 39612  i13 = i7 + 16 | 0;
 39613  i9 = i2 + 20 | 0;
 39614  HEAP32[i13 >> 2] = HEAP32[i9 >> 2];
 39615  HEAP32[i13 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
 39616  HEAP32[i13 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
 39617  HEAP32[i13 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
 39618  i9 = i7 + 32 | 0;
 39619  i13 = i2 + 36 | 0;
 39620  HEAP32[i9 >> 2] = HEAP32[i13 >> 2];
 39621  HEAP32[i9 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
 39622  HEAP32[i9 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
 39623  HEAP32[i9 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
 39624  i13 = i7 + 48 | 0;
 39625  i9 = i2 + 52 | 0;
 39626  HEAP32[i13 >> 2] = HEAP32[i9 >> 2];
 39627  HEAP32[i13 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
 39628  HEAP32[i13 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
 39629  HEAP32[i13 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
 39630  i9 = i7 + 64 | 0;
 39631  i13 = i3 + 4 | 0;
 39632  HEAP32[i9 >> 2] = HEAP32[i13 >> 2];
 39633  HEAP32[i9 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
 39634  HEAP32[i9 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
 39635  HEAP32[i9 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
 39636  i13 = i7 + 80 | 0;
 39637  i9 = i3 + 20 | 0;
 39638  HEAP32[i13 >> 2] = HEAP32[i9 >> 2];
 39639  HEAP32[i13 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
 39640  HEAP32[i13 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
 39641  HEAP32[i13 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
 39642  i9 = i7 + 96 | 0;
 39643  i13 = i3 + 36 | 0;
 39644  HEAP32[i9 >> 2] = HEAP32[i13 >> 2];
 39645  HEAP32[i9 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
 39646  HEAP32[i9 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
 39647  HEAP32[i9 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
 39648  i13 = i7 + 112 | 0;
 39649  i9 = i3 + 52 | 0;
 39650  HEAP32[i13 >> 2] = HEAP32[i9 >> 2];
 39651  HEAP32[i13 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
 39652  HEAP32[i13 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
 39653  HEAP32[i13 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
 39654  __ZN16btBoxBoxDetectorC2EP10btBoxShapeS1_(i8, i10, i11);
 39655  __ZN16btBoxBoxDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i8, i7, i5 | 0, HEAP32[i4 + 20 >> 2] | 0, 0);
 39656  if ((HEAP8[i1 + 8 | 0] | 0) == 0) {
 39657   STACKTOP = i6;
 39658   return;
 39660  i1 = HEAP32[i12 >> 2] | 0;
 39661  if ((HEAP32[i1 + 1116 >> 2] | 0) == 0) {
 39662   STACKTOP = i6;
 39663   return;
 39665  if ((HEAP32[i1 + 1108 >> 2] | 0) == (HEAP32[i5 + 136 >> 2] | 0)) {
 39666   __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i1, i5 + 8 | 0, i5 + 72 | 0);
 39667   STACKTOP = i6;
 39668   return;
 39669  } else {
 39670   __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i1, i5 + 72 | 0, i5 + 8 | 0);
 39671   STACKTOP = i6;
 39672   return;
 39675 function __ZN22btCompoundLeafCallback7ProcessEPK10btDbvtNode(i1, i2) {
 39676  i1 = i1 | 0;
 39677  i2 = i2 | 0;
 39678  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0, d34 = 0.0, d35 = 0.0, d36 = 0.0, d37 = 0.0, d38 = 0.0;
 39679  i3 = STACKTOP;
 39680  STACKTOP = STACKTOP + 48 | 0;
 39681  i4 = i3 | 0;
 39682  i5 = i3 + 16 | 0;
 39683  i6 = i3 + 32 | 0;
 39684  i7 = HEAP32[i2 + 36 >> 2] | 0;
 39685  i8 = i1 + 4 | 0;
 39686  i9 = HEAP32[(HEAP32[(HEAP32[(HEAP32[i8 >> 2] | 0) + 192 >> 2] | 0) + 24 >> 2] | 0) + (i7 * 80 | 0) + 64 >> 2] | 0;
 39687  i10 = i1 + 16 | 0;
 39688  i11 = HEAP32[(HEAP32[i10 >> 2] | 0) + 20 >> 2] | 0;
 39689  if ((i11 | 0) == 0) {
 39690   __ZN22btCompoundLeafCallback17ProcessChildShapeEP16btCollisionShapei(i1, i9, i7);
 39691   STACKTOP = i3;
 39692   return;
 39694  if (((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i11 >> 2] | 0) + 48 >> 2] & 127](i11) | 0) & 2 | 0) == 0) {
 39695   __ZN22btCompoundLeafCallback17ProcessChildShapeEP16btCollisionShapei(i1, i9, i7);
 39696   STACKTOP = i3;
 39697   return;
 39699  i11 = HEAP32[i8 >> 2] | 0;
 39700  d12 = +HEAPF32[i11 + 4 >> 2];
 39701  d13 = +HEAPF32[i11 + 8 >> 2];
 39702  d14 = +HEAPF32[i11 + 12 >> 2];
 39703  d15 = +HEAPF32[i11 + 20 >> 2];
 39704  d16 = +HEAPF32[i11 + 24 >> 2];
 39705  d17 = +HEAPF32[i11 + 28 >> 2];
 39706  d18 = +HEAPF32[i11 + 36 >> 2];
 39707  d19 = +HEAPF32[i11 + 40 >> 2];
 39708  d20 = +HEAPF32[i11 + 44 >> 2];
 39709  d21 = +HEAPF32[i11 + 52 >> 2];
 39710  d22 = +HEAPF32[i11 + 56 >> 2];
 39711  d23 = +HEAPF32[i11 + 60 >> 2];
 39712  d24 = +HEAPF32[i2 + 16 >> 2];
 39713  d25 = +HEAPF32[i2 >> 2];
 39714  d26 = +HEAPF32[i2 + 20 >> 2];
 39715  d27 = +HEAPF32[i2 + 4 >> 2];
 39716  d28 = +HEAPF32[i2 + 24 >> 2];
 39717  d29 = +HEAPF32[i2 + 8 >> 2];
 39718  d30 = (d24 - d25) * .5 + 0.0;
 39719  d31 = (d26 - d27) * .5 + 0.0;
 39720  d32 = (d28 - d29) * .5 + 0.0;
 39721  d33 = (d24 + d25) * .5;
 39722  d25 = (d26 + d27) * .5;
 39723  d27 = (d28 + d29) * .5;
 39724  d29 = +Math_abs(+d12);
 39725  d28 = +Math_abs(+d13);
 39726  d26 = +Math_abs(+d14);
 39727  d24 = +Math_abs(+d15);
 39728  d34 = +Math_abs(+d16);
 39729  d35 = +Math_abs(+d17);
 39730  d36 = +Math_abs(+d18);
 39731  d37 = +Math_abs(+d19);
 39732  d38 = d21 + (d12 * d33 + d13 * d25 + d14 * d27);
 39733  d14 = d22 + (d15 * d33 + d16 * d25 + d17 * d27);
 39734  d17 = d23 + (d18 * d33 + d19 * d25 + d20 * d27);
 39735  d27 = d30 * d29 + d31 * d28 + d32 * d26;
 39736  d26 = d30 * d24 + d31 * d34 + d32 * d35;
 39737  d35 = d30 * d36 + d31 * d37 + d32 * +Math_abs(+d20);
 39738  HEAPF32[i4 >> 2] = d38 - d27;
 39739  HEAPF32[i4 + 4 >> 2] = d14 - d26;
 39740  HEAPF32[i4 + 8 >> 2] = d17 - d35;
 39741  HEAPF32[i4 + 12 >> 2] = 0.0;
 39742  HEAPF32[i5 >> 2] = d27 + d38;
 39743  HEAPF32[i5 + 4 >> 2] = d14 + d26;
 39744  HEAPF32[i5 + 8 >> 2] = d17 + d35;
 39745  HEAPF32[i5 + 12 >> 2] = 0.0;
 39746  i2 = HEAP32[(HEAP32[i10 >> 2] | 0) + 20 >> 2] | 0;
 39747  i10 = HEAP32[(HEAP32[i2 >> 2] | 0) + 52 >> 2] | 0;
 39748  HEAPF32[i6 >> 2] = 1.0;
 39749  HEAPF32[i6 + 4 >> 2] = 0.0;
 39750  HEAPF32[i6 + 8 >> 2] = 0.0;
 39751  HEAPF32[i6 + 12 >> 2] = 0.0;
 39752  FUNCTION_TABLE_viiii[i10 & 127](i2, i4, i5, i6);
 39753  __ZN22btCompoundLeafCallback17ProcessChildShapeEP16btCollisionShapei(i1, i9, i7);
 39754  STACKTOP = i3;
 39755  return;
 39757 function __ZN9btHashMapI20btInternalVertexPair14btInternalEdgeE10growTablesERKS0_(i1, i2) {
 39758  i1 = i1 | 0;
 39759  i2 = i2 | 0;
 39760  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
 39761  i2 = i1 + 48 | 0;
 39762  i3 = HEAP32[i2 >> 2] | 0;
 39763  i4 = i1 + 4 | 0;
 39764  i5 = HEAP32[i4 >> 2] | 0;
 39765  if ((i5 | 0) >= (i3 | 0)) {
 39766   return;
 39768  if ((i5 | 0) <= (i3 | 0)) {
 39769   i6 = i1 + 8 | 0;
 39770   if ((HEAP32[i6 >> 2] | 0) < (i3 | 0)) {
 39771    if ((i3 | 0) == 0) {
 39772     i7 = 0;
 39773     i8 = i5;
 39774    } else {
 39775     i9 = __Z22btAlignedAllocInternalji(i3 << 2, 16) | 0;
 39776     i7 = i9;
 39777     i8 = HEAP32[i4 >> 2] | 0;
 39779    i9 = i1 + 12 | 0;
 39780    if ((i8 | 0) > 0) {
 39781     i10 = 0;
 39782     do {
 39783      i11 = i7 + (i10 << 2) | 0;
 39784      if ((i11 | 0) != 0) {
 39785       HEAP32[i11 >> 2] = HEAP32[(HEAP32[i9 >> 2] | 0) + (i10 << 2) >> 2];
 39787      i10 = i10 + 1 | 0;
 39788     } while ((i10 | 0) < (i8 | 0));
 39790    i8 = HEAP32[i9 >> 2] | 0;
 39791    i10 = i1 + 16 | 0;
 39792    if ((i8 | 0) != 0) {
 39793     if ((HEAP8[i10] | 0) != 0) {
 39794      __Z21btAlignedFreeInternalPv(i8);
 39796     HEAP32[i9 >> 2] = 0;
 39798    HEAP8[i10] = 1;
 39799    HEAP32[i9 >> 2] = i7;
 39800    HEAP32[i6 >> 2] = i3;
 39801    i12 = i7;
 39802   } else {
 39803    i12 = HEAP32[i1 + 12 >> 2] | 0;
 39805   i7 = i5;
 39806   do {
 39807    i6 = i12 + (i7 << 2) | 0;
 39808    if ((i6 | 0) != 0) {
 39809     HEAP32[i6 >> 2] = 0;
 39811    i7 = i7 + 1 | 0;
 39812   } while ((i7 | 0) < (i3 | 0));
 39814  HEAP32[i4 >> 2] = i3;
 39815  i4 = i1 + 24 | 0;
 39816  i7 = HEAP32[i4 >> 2] | 0;
 39817  if ((i7 | 0) < (i3 | 0)) {
 39818   i12 = i1 + 28 | 0;
 39819   if ((HEAP32[i12 >> 2] | 0) < (i3 | 0)) {
 39820    if ((i3 | 0) == 0) {
 39821     i13 = 0;
 39822     i14 = i7;
 39823    } else {
 39824     i6 = __Z22btAlignedAllocInternalji(i3 << 2, 16) | 0;
 39825     i13 = i6;
 39826     i14 = HEAP32[i4 >> 2] | 0;
 39828    i6 = i1 + 32 | 0;
 39829    if ((i14 | 0) > 0) {
 39830     i9 = 0;
 39831     do {
 39832      i10 = i13 + (i9 << 2) | 0;
 39833      if ((i10 | 0) != 0) {
 39834       HEAP32[i10 >> 2] = HEAP32[(HEAP32[i6 >> 2] | 0) + (i9 << 2) >> 2];
 39836      i9 = i9 + 1 | 0;
 39837     } while ((i9 | 0) < (i14 | 0));
 39839    i14 = HEAP32[i6 >> 2] | 0;
 39840    i9 = i1 + 36 | 0;
 39841    if ((i14 | 0) != 0) {
 39842     if ((HEAP8[i9] | 0) != 0) {
 39843      __Z21btAlignedFreeInternalPv(i14);
 39845     HEAP32[i6 >> 2] = 0;
 39847    HEAP8[i9] = 1;
 39848    HEAP32[i6 >> 2] = i13;
 39849    HEAP32[i12 >> 2] = i3;
 39850    i15 = i13;
 39851   } else {
 39852    i15 = HEAP32[i1 + 32 >> 2] | 0;
 39854   i13 = i7;
 39855   do {
 39856    i7 = i15 + (i13 << 2) | 0;
 39857    if ((i7 | 0) != 0) {
 39858     HEAP32[i7 >> 2] = 0;
 39860    i13 = i13 + 1 | 0;
 39861   } while ((i13 | 0) < (i3 | 0));
 39863  HEAP32[i4 >> 2] = i3;
 39864  if ((i3 | 0) > 0) {
 39865   i4 = i3 << 2;
 39866   _memset(HEAP32[i1 + 12 >> 2] | 0, -1 | 0, i4 | 0);
 39867   _memset(HEAP32[i1 + 32 >> 2] | 0, -1 | 0, i4 | 0);
 39869  if ((i5 | 0) <= 0) {
 39870   return;
 39872  i4 = HEAP32[i1 + 72 >> 2] | 0;
 39873  i3 = HEAP32[i1 + 12 >> 2] | 0;
 39874  i13 = HEAP32[i1 + 32 >> 2] | 0;
 39875  i1 = 0;
 39876  do {
 39877   i15 = i3 + (((HEAPU16[i4 + (i1 << 2) + 2 >> 1] << 16) + (HEAP16[i4 + (i1 << 2) >> 1] | 0) & (HEAP32[i2 >> 2] | 0) - 1) << 2) | 0;
 39878   HEAP32[i13 + (i1 << 2) >> 2] = HEAP32[i15 >> 2];
 39879   HEAP32[i15 >> 2] = i1;
 39880   i1 = i1 + 1 | 0;
 39881  } while ((i1 | 0) < (i5 | 0));
 39882  return;
 39884 function __ZN35btSequentialImpulseConstraintSolver43resolveSplitPenetrationImpulseCacheFriendlyER11btRigidBodyS1_RK18btSolverConstraint(i1, i2, i3, i4) {
 39885  i1 = i1 | 0;
 39886  i2 = i2 | 0;
 39887  i3 = i3 | 0;
 39888  i4 = i4 | 0;
 39889  var d5 = 0.0, d6 = 0.0, i7 = 0, d8 = 0.0, i9 = 0, i10 = 0, d11 = 0.0, i12 = 0, i13 = 0, d14 = 0.0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0;
 39890  d5 = +HEAPF32[i4 + 132 >> 2];
 39891  if (d5 == 0.0) {
 39892   return;
 39894  HEAP32[2988] = (HEAP32[2988] | 0) + 1;
 39895  i1 = i4 + 80 | 0;
 39896  d6 = +HEAPF32[i1 >> 2];
 39897  i7 = i4 + 16 | 0;
 39898  d8 = +HEAPF32[i7 >> 2];
 39899  i9 = i2 + 568 | 0;
 39900  i10 = i4 + 20 | 0;
 39901  d11 = +HEAPF32[i10 >> 2];
 39902  i12 = i2 + 572 | 0;
 39903  i13 = i4 + 24 | 0;
 39904  d14 = +HEAPF32[i13 >> 2];
 39905  i15 = i2 + 576 | 0;
 39906  i16 = i2 + 584 | 0;
 39907  i17 = i2 + 588 | 0;
 39908  i18 = i2 + 592 | 0;
 39909  i19 = i3 + 568 | 0;
 39910  i20 = i3 + 572 | 0;
 39911  i21 = i3 + 576 | 0;
 39912  i22 = i3 + 584 | 0;
 39913  i23 = i3 + 588 | 0;
 39914  i24 = i3 + 592 | 0;
 39915  d25 = +HEAPF32[i4 + 92 >> 2];
 39916  d26 = d5 - d6 * +HEAPF32[i4 + 120 >> 2] - (d8 * +HEAPF32[i9 >> 2] + d11 * +HEAPF32[i12 >> 2] + d14 * +HEAPF32[i15 >> 2] + (+HEAPF32[i4 >> 2] * +HEAPF32[i16 >> 2] + +HEAPF32[i4 + 4 >> 2] * +HEAPF32[i17 >> 2] + +HEAPF32[i4 + 8 >> 2] * +HEAPF32[i18 >> 2])) * d25 - d25 * (+HEAPF32[i4 + 32 >> 2] * +HEAPF32[i22 >> 2] + +HEAPF32[i4 + 36 >> 2] * +HEAPF32[i23 >> 2] + +HEAPF32[i4 + 40 >> 2] * +HEAPF32[i24 >> 2] - (d8 * +HEAPF32[i19 >> 2] + d11 * +HEAPF32[i20 >> 2] + d14 * +HEAPF32[i21 >> 2]));
 39917  d25 = d6 + d26;
 39918  d5 = +HEAPF32[i4 + 124 >> 2];
 39919  if (d25 < d5) {
 39920   d27 = d5 - d6;
 39921   d28 = d5;
 39922  } else {
 39923   d27 = d26;
 39924   d28 = d25;
 39926  HEAPF32[i1 >> 2] = d28;
 39927  if (+HEAPF32[i2 + 336 >> 2] != 0.0) {
 39928   d28 = d27 * d11 * +HEAPF32[i2 + 556 >> 2];
 39929   d11 = d27 * d14 * +HEAPF32[i2 + 560 >> 2];
 39930   HEAPF32[i9 >> 2] = +HEAPF32[i9 >> 2] + d27 * d8 * +HEAPF32[i2 + 552 >> 2];
 39931   HEAPF32[i12 >> 2] = d28 + +HEAPF32[i12 >> 2];
 39932   HEAPF32[i15 >> 2] = d11 + +HEAPF32[i15 >> 2];
 39933   d11 = d27 * +HEAPF32[i2 + 540 >> 2] * +HEAPF32[i4 + 52 >> 2];
 39934   d28 = d27 * +HEAPF32[i2 + 544 >> 2] * +HEAPF32[i4 + 56 >> 2];
 39935   HEAPF32[i16 >> 2] = d27 * +HEAPF32[i2 + 536 >> 2] * +HEAPF32[i4 + 48 >> 2] + +HEAPF32[i16 >> 2];
 39936   HEAPF32[i17 >> 2] = d11 + +HEAPF32[i17 >> 2];
 39937   HEAPF32[i18 >> 2] = d28 + +HEAPF32[i18 >> 2];
 39939  if (+HEAPF32[i3 + 336 >> 2] == 0.0) {
 39940   return;
 39942  d28 = d27 * +HEAPF32[i3 + 556 >> 2] * (-0.0 - +HEAPF32[i10 >> 2]);
 39943  d11 = d27 * +HEAPF32[i3 + 560 >> 2] * (-0.0 - +HEAPF32[i13 >> 2]);
 39944  HEAPF32[i19 >> 2] = +HEAPF32[i19 >> 2] + d27 * +HEAPF32[i3 + 552 >> 2] * (-0.0 - +HEAPF32[i7 >> 2]);
 39945  HEAPF32[i20 >> 2] = d28 + +HEAPF32[i20 >> 2];
 39946  HEAPF32[i21 >> 2] = d11 + +HEAPF32[i21 >> 2];
 39947  d11 = d27 * +HEAPF32[i3 + 540 >> 2] * +HEAPF32[i4 + 68 >> 2];
 39948  d28 = d27 * +HEAPF32[i3 + 544 >> 2] * +HEAPF32[i4 + 72 >> 2];
 39949  HEAPF32[i22 >> 2] = d27 * +HEAPF32[i3 + 536 >> 2] * +HEAPF32[i4 + 64 >> 2] + +HEAPF32[i22 >> 2];
 39950  HEAPF32[i23 >> 2] = d11 + +HEAPF32[i23 >> 2];
 39951  HEAPF32[i24 >> 2] = d28 + +HEAPF32[i24 >> 2];
 39952  return;
 39954 function __ZN24btConvexTriangleCallback22setTimeStepAndCountersEfRK16btDispatcherInfoP16btManifoldResult(i1, d2, i3, i4) {
 39955  i1 = i1 | 0;
 39956  d2 = +d2;
 39957  i3 = i3 | 0;
 39958  i4 = i4 | 0;
 39959  var i5 = 0, i6 = 0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0, d30 = 0.0, i31 = 0;
 39960  i5 = STACKTOP;
 39961  STACKTOP = STACKTOP + 64 | 0;
 39962  i6 = i5 | 0;
 39963  HEAP32[i1 + 52 >> 2] = i3;
 39964  HEAPF32[i1 + 56 >> 2] = d2;
 39965  HEAP32[i1 + 44 >> 2] = i4;
 39966  i4 = HEAP32[i1 + 8 >> 2] | 0;
 39967  d7 = +HEAPF32[i4 + 4 >> 2];
 39968  d8 = +HEAPF32[i4 + 20 >> 2];
 39969  d9 = +HEAPF32[i4 + 36 >> 2];
 39970  d10 = +HEAPF32[i4 + 8 >> 2];
 39971  d11 = +HEAPF32[i4 + 24 >> 2];
 39972  d12 = +HEAPF32[i4 + 40 >> 2];
 39973  d13 = +HEAPF32[i4 + 12 >> 2];
 39974  d14 = +HEAPF32[i4 + 28 >> 2];
 39975  d15 = +HEAPF32[i4 + 44 >> 2];
 39976  d16 = -0.0 - +HEAPF32[i4 + 52 >> 2];
 39977  d17 = -0.0 - +HEAPF32[i4 + 56 >> 2];
 39978  d18 = -0.0 - +HEAPF32[i4 + 60 >> 2];
 39979  i4 = HEAP32[i1 + 4 >> 2] | 0;
 39980  d19 = +HEAPF32[i4 + 4 >> 2];
 39981  d20 = +HEAPF32[i4 + 20 >> 2];
 39982  d21 = +HEAPF32[i4 + 36 >> 2];
 39983  d22 = +HEAPF32[i4 + 8 >> 2];
 39984  d23 = +HEAPF32[i4 + 24 >> 2];
 39985  d24 = +HEAPF32[i4 + 40 >> 2];
 39986  d25 = +HEAPF32[i4 + 12 >> 2];
 39987  d26 = +HEAPF32[i4 + 28 >> 2];
 39988  d27 = +HEAPF32[i4 + 44 >> 2];
 39989  d28 = +HEAPF32[i4 + 52 >> 2];
 39990  d29 = +HEAPF32[i4 + 56 >> 2];
 39991  d30 = +HEAPF32[i4 + 60 >> 2];
 39992  HEAPF32[i6 >> 2] = d7 * d19 + d8 * d20 + d9 * d21;
 39993  HEAPF32[i6 + 4 >> 2] = d7 * d22 + d8 * d23 + d9 * d24;
 39994  HEAPF32[i6 + 8 >> 2] = d7 * d25 + d8 * d26 + d9 * d27;
 39995  HEAPF32[i6 + 12 >> 2] = 0.0;
 39996  HEAPF32[i6 + 16 >> 2] = d10 * d19 + d11 * d20 + d12 * d21;
 39997  HEAPF32[i6 + 20 >> 2] = d10 * d22 + d11 * d23 + d12 * d24;
 39998  HEAPF32[i6 + 24 >> 2] = d10 * d25 + d11 * d26 + d12 * d27;
 39999  HEAPF32[i6 + 28 >> 2] = 0.0;
 40000  HEAPF32[i6 + 32 >> 2] = d13 * d19 + d14 * d20 + d15 * d21;
 40001  HEAPF32[i6 + 36 >> 2] = d13 * d22 + d14 * d23 + d15 * d24;
 40002  HEAPF32[i6 + 40 >> 2] = d13 * d25 + d14 * d26 + d15 * d27;
 40003  HEAPF32[i6 + 44 >> 2] = 0.0;
 40004  HEAPF32[i6 + 48 >> 2] = d7 * d16 + d8 * d17 + d9 * d18 + (d7 * d28 + d8 * d29 + d9 * d30);
 40005  HEAPF32[i6 + 52 >> 2] = d10 * d16 + d11 * d17 + d12 * d18 + (d10 * d28 + d11 * d29 + d12 * d30);
 40006  HEAPF32[i6 + 56 >> 2] = d13 * d16 + d14 * d17 + d15 * d18 + (d13 * d28 + d14 * d29 + d15 * d30);
 40007  HEAPF32[i6 + 60 >> 2] = 0.0;
 40008  i3 = HEAP32[i4 + 192 >> 2] | 0;
 40009  i4 = i1 + 12 | 0;
 40010  i31 = i1 + 28 | 0;
 40011  FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i3 >> 2] | 0) + 8 >> 2] & 127](i3, i6, i4, i31);
 40012  i6 = i31 | 0;
 40013  HEAPF32[i6 >> 2] = +HEAPF32[i6 >> 2] + d2;
 40014  i6 = i1 + 32 | 0;
 40015  HEAPF32[i6 >> 2] = +HEAPF32[i6 >> 2] + d2;
 40016  i6 = i1 + 36 | 0;
 40017  HEAPF32[i6 >> 2] = +HEAPF32[i6 >> 2] + d2;
 40018  i6 = i4 | 0;
 40019  HEAPF32[i6 >> 2] = +HEAPF32[i6 >> 2] - d2;
 40020  i6 = i1 + 16 | 0;
 40021  HEAPF32[i6 >> 2] = +HEAPF32[i6 >> 2] - d2;
 40022  i6 = i1 + 20 | 0;
 40023  HEAPF32[i6 >> 2] = +HEAPF32[i6 >> 2] - d2;
 40024  STACKTOP = i5;
 40025  return;
 40027 function __ZN35btSequentialImpulseConstraintSolver36resolveSingleConstraintRowLowerLimitER11btRigidBodyS1_RK18btSolverConstraint(i1, i2, i3, i4) {
 40028  i1 = i1 | 0;
 40029  i2 = i2 | 0;
 40030  i3 = i3 | 0;
 40031  i4 = i4 | 0;
 40032  var d5 = 0.0, i6 = 0, d7 = 0.0, i8 = 0, i9 = 0, d10 = 0.0, i11 = 0, i12 = 0, d13 = 0.0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0;
 40033  i1 = i4 + 84 | 0;
 40034  d5 = +HEAPF32[i1 >> 2];
 40035  i6 = i4 + 16 | 0;
 40036  d7 = +HEAPF32[i6 >> 2];
 40037  i8 = i2 + 504 | 0;
 40038  i9 = i4 + 20 | 0;
 40039  d10 = +HEAPF32[i9 >> 2];
 40040  i11 = i2 + 508 | 0;
 40041  i12 = i4 + 24 | 0;
 40042  d13 = +HEAPF32[i12 >> 2];
 40043  i14 = i2 + 512 | 0;
 40044  i15 = i2 + 520 | 0;
 40045  i16 = i2 + 524 | 0;
 40046  i17 = i2 + 528 | 0;
 40047  i18 = i3 + 504 | 0;
 40048  i19 = i3 + 508 | 0;
 40049  i20 = i3 + 512 | 0;
 40050  i21 = i3 + 520 | 0;
 40051  i22 = i3 + 524 | 0;
 40052  i23 = i3 + 528 | 0;
 40053  d24 = +HEAPF32[i4 + 92 >> 2];
 40054  d25 = +HEAPF32[i4 + 116 >> 2] - d5 * +HEAPF32[i4 + 120 >> 2] - (d7 * +HEAPF32[i8 >> 2] + d10 * +HEAPF32[i11 >> 2] + d13 * +HEAPF32[i14 >> 2] + (+HEAPF32[i4 >> 2] * +HEAPF32[i15 >> 2] + +HEAPF32[i4 + 4 >> 2] * +HEAPF32[i16 >> 2] + +HEAPF32[i4 + 8 >> 2] * +HEAPF32[i17 >> 2])) * d24 - d24 * (+HEAPF32[i4 + 32 >> 2] * +HEAPF32[i21 >> 2] + +HEAPF32[i4 + 36 >> 2] * +HEAPF32[i22 >> 2] + +HEAPF32[i4 + 40 >> 2] * +HEAPF32[i23 >> 2] - (d7 * +HEAPF32[i18 >> 2] + d10 * +HEAPF32[i19 >> 2] + d13 * +HEAPF32[i20 >> 2]));
 40055  d24 = d5 + d25;
 40056  d26 = +HEAPF32[i4 + 124 >> 2];
 40057  if (d24 < d26) {
 40058   d27 = d26 - d5;
 40059   d28 = d26;
 40060  } else {
 40061   d27 = d25;
 40062   d28 = d24;
 40064  HEAPF32[i1 >> 2] = d28;
 40065  if (+HEAPF32[i2 + 336 >> 2] != 0.0) {
 40066   d28 = d27 * d10 * +HEAPF32[i2 + 556 >> 2];
 40067   d10 = d27 * d13 * +HEAPF32[i2 + 560 >> 2];
 40068   HEAPF32[i8 >> 2] = +HEAPF32[i8 >> 2] + d27 * d7 * +HEAPF32[i2 + 552 >> 2];
 40069   HEAPF32[i11 >> 2] = d28 + +HEAPF32[i11 >> 2];
 40070   HEAPF32[i14 >> 2] = d10 + +HEAPF32[i14 >> 2];
 40071   d10 = d27 * +HEAPF32[i2 + 540 >> 2] * +HEAPF32[i4 + 52 >> 2];
 40072   d28 = d27 * +HEAPF32[i2 + 544 >> 2] * +HEAPF32[i4 + 56 >> 2];
 40073   HEAPF32[i15 >> 2] = d27 * +HEAPF32[i2 + 536 >> 2] * +HEAPF32[i4 + 48 >> 2] + +HEAPF32[i15 >> 2];
 40074   HEAPF32[i16 >> 2] = d10 + +HEAPF32[i16 >> 2];
 40075   HEAPF32[i17 >> 2] = d28 + +HEAPF32[i17 >> 2];
 40077  if (+HEAPF32[i3 + 336 >> 2] == 0.0) {
 40078   return;
 40080  d28 = d27 * +HEAPF32[i3 + 556 >> 2] * (-0.0 - +HEAPF32[i9 >> 2]);
 40081  d10 = d27 * +HEAPF32[i3 + 560 >> 2] * (-0.0 - +HEAPF32[i12 >> 2]);
 40082  HEAPF32[i18 >> 2] = +HEAPF32[i18 >> 2] + d27 * +HEAPF32[i3 + 552 >> 2] * (-0.0 - +HEAPF32[i6 >> 2]);
 40083  HEAPF32[i19 >> 2] = d28 + +HEAPF32[i19 >> 2];
 40084  HEAPF32[i20 >> 2] = d10 + +HEAPF32[i20 >> 2];
 40085  d10 = d27 * +HEAPF32[i3 + 540 >> 2] * +HEAPF32[i4 + 68 >> 2];
 40086  d28 = d27 * +HEAPF32[i3 + 544 >> 2] * +HEAPF32[i4 + 72 >> 2];
 40087  HEAPF32[i21 >> 2] = d27 * +HEAPF32[i3 + 536 >> 2] * +HEAPF32[i4 + 64 >> 2] + +HEAPF32[i21 >> 2];
 40088  HEAPF32[i22 >> 2] = d10 + +HEAPF32[i22 >> 2];
 40089  HEAPF32[i23 >> 2] = d28 + +HEAPF32[i23 >> 2];
 40090  return;
 40092 function __ZN16btCollisionWorld18addCollisionObjectEP17btCollisionObjectss(i1, i2, i3, i4) {
 40093  i1 = i1 | 0;
 40094  i2 = i2 | 0;
 40095  i3 = i3 | 0;
 40096  i4 = i4 | 0;
 40097  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0;
 40098  i5 = STACKTOP;
 40099  STACKTOP = STACKTOP + 96 | 0;
 40100  i6 = i5 | 0;
 40101  i7 = i5 + 64 | 0;
 40102  i8 = i5 + 80 | 0;
 40103  i9 = i1 + 8 | 0;
 40104  i10 = HEAP32[i9 >> 2] | 0;
 40105  i11 = i1 + 12 | 0;
 40106  do {
 40107   if ((i10 | 0) == (HEAP32[i11 >> 2] | 0)) {
 40108    i12 = (i10 | 0) == 0 ? 1 : i10 << 1;
 40109    if ((i10 | 0) >= (i12 | 0)) {
 40110     i13 = i10;
 40111     break;
 40113    if ((i12 | 0) == 0) {
 40114     i14 = 0;
 40115     i15 = i10;
 40116    } else {
 40117     i16 = __Z22btAlignedAllocInternalji(i12 << 2, 16) | 0;
 40118     i14 = i16;
 40119     i15 = HEAP32[i9 >> 2] | 0;
 40121    i16 = i1 + 16 | 0;
 40122    if ((i15 | 0) > 0) {
 40123     i17 = 0;
 40124     do {
 40125      i18 = i14 + (i17 << 2) | 0;
 40126      if ((i18 | 0) != 0) {
 40127       HEAP32[i18 >> 2] = HEAP32[(HEAP32[i16 >> 2] | 0) + (i17 << 2) >> 2];
 40129      i17 = i17 + 1 | 0;
 40130     } while ((i17 | 0) < (i15 | 0));
 40132    i17 = HEAP32[i16 >> 2] | 0;
 40133    i18 = i1 + 20 | 0;
 40134    if ((i17 | 0) == 0) {
 40135     i19 = i15;
 40136    } else {
 40137     if ((HEAP8[i18] | 0) == 0) {
 40138      i20 = i15;
 40139     } else {
 40140      __Z21btAlignedFreeInternalPv(i17);
 40141      i20 = HEAP32[i9 >> 2] | 0;
 40143     HEAP32[i16 >> 2] = 0;
 40144     i19 = i20;
 40146    HEAP8[i18] = 1;
 40147    HEAP32[i16 >> 2] = i14;
 40148    HEAP32[i11 >> 2] = i12;
 40149    i13 = i19;
 40150   } else {
 40151    i13 = i10;
 40153  } while (0);
 40154  i10 = (HEAP32[i1 + 16 >> 2] | 0) + (i13 << 2) | 0;
 40155  if ((i10 | 0) != 0) {
 40156   HEAP32[i10 >> 2] = i2;
 40158  HEAP32[i9 >> 2] = i13 + 1;
 40159  i13 = i6;
 40160  i9 = i2 + 4 | 0;
 40161  HEAP32[i13 >> 2] = HEAP32[i9 >> 2];
 40162  HEAP32[i13 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
 40163  HEAP32[i13 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
 40164  HEAP32[i13 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
 40165  i9 = i6 + 16 | 0;
 40166  i13 = i2 + 20 | 0;
 40167  HEAP32[i9 >> 2] = HEAP32[i13 >> 2];
 40168  HEAP32[i9 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
 40169  HEAP32[i9 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
 40170  HEAP32[i9 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
 40171  i13 = i6 + 32 | 0;
 40172  i9 = i2 + 36 | 0;
 40173  HEAP32[i13 >> 2] = HEAP32[i9 >> 2];
 40174  HEAP32[i13 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
 40175  HEAP32[i13 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
 40176  HEAP32[i13 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
 40177  i9 = i6 + 48 | 0;
 40178  i13 = i2 + 52 | 0;
 40179  HEAP32[i9 >> 2] = HEAP32[i13 >> 2];
 40180  HEAP32[i9 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
 40181  HEAP32[i9 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
 40182  HEAP32[i9 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
 40183  i13 = i2 + 192 | 0;
 40184  i9 = HEAP32[i13 >> 2] | 0;
 40185  FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i9 >> 2] | 0) + 8 >> 2] & 127](i9, i6, i7, i8);
 40186  i6 = HEAP32[i1 + 76 >> 2] | 0;
 40187  HEAP32[i2 + 188 >> 2] = FUNCTION_TABLE_iiiiiiiiii[HEAP32[(HEAP32[i6 >> 2] | 0) + 8 >> 2] & 3](i6, i7, i8, HEAP32[(HEAP32[i13 >> 2] | 0) + 4 >> 2] | 0, i2, i3, i4, HEAP32[i1 + 24 >> 2] | 0, 0) | 0;
 40188  STACKTOP = i5;
 40189  return;
 40191 function __ZN28btTriangleConvexcastCallbackC2EPK13btConvexShapeRK11btTransformS5_S5_f(i1, i2, i3, i4, i5, d6) {
 40192  i1 = i1 | 0;
 40193  i2 = i2 | 0;
 40194  i3 = i3 | 0;
 40195  i4 = i4 | 0;
 40196  i5 = i5 | 0;
 40197  d6 = +d6;
 40198  var i7 = 0;
 40199  HEAP32[i1 >> 2] = 2768;
 40200  HEAP32[i1 + 4 >> 2] = i2;
 40201  i2 = i1 + 8 | 0;
 40202  i7 = i3;
 40203  HEAP32[i2 >> 2] = HEAP32[i7 >> 2];
 40204  HEAP32[i2 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
 40205  HEAP32[i2 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
 40206  HEAP32[i2 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
 40207  i7 = i1 + 24 | 0;
 40208  i2 = i3 + 16 | 0;
 40209  HEAP32[i7 >> 2] = HEAP32[i2 >> 2];
 40210  HEAP32[i7 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
 40211  HEAP32[i7 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
 40212  HEAP32[i7 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
 40213  i2 = i1 + 40 | 0;
 40214  i7 = i3 + 32 | 0;
 40215  HEAP32[i2 >> 2] = HEAP32[i7 >> 2];
 40216  HEAP32[i2 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
 40217  HEAP32[i2 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
 40218  HEAP32[i2 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
 40219  i7 = i1 + 56 | 0;
 40220  i2 = i3 + 48 | 0;
 40221  HEAP32[i7 >> 2] = HEAP32[i2 >> 2];
 40222  HEAP32[i7 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
 40223  HEAP32[i7 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
 40224  HEAP32[i7 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
 40225  i2 = i1 + 72 | 0;
 40226  i7 = i4;
 40227  HEAP32[i2 >> 2] = HEAP32[i7 >> 2];
 40228  HEAP32[i2 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
 40229  HEAP32[i2 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
 40230  HEAP32[i2 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
 40231  i7 = i1 + 88 | 0;
 40232  i2 = i4 + 16 | 0;
 40233  HEAP32[i7 >> 2] = HEAP32[i2 >> 2];
 40234  HEAP32[i7 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
 40235  HEAP32[i7 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
 40236  HEAP32[i7 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
 40237  i2 = i1 + 104 | 0;
 40238  i7 = i4 + 32 | 0;
 40239  HEAP32[i2 >> 2] = HEAP32[i7 >> 2];
 40240  HEAP32[i2 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
 40241  HEAP32[i2 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
 40242  HEAP32[i2 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
 40243  i7 = i1 + 120 | 0;
 40244  i2 = i4 + 48 | 0;
 40245  HEAP32[i7 >> 2] = HEAP32[i2 >> 2];
 40246  HEAP32[i7 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
 40247  HEAP32[i7 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
 40248  HEAP32[i7 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
 40249  i2 = i1 + 136 | 0;
 40250  i7 = i5;
 40251  HEAP32[i2 >> 2] = HEAP32[i7 >> 2];
 40252  HEAP32[i2 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
 40253  HEAP32[i2 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
 40254  HEAP32[i2 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
 40255  i7 = i1 + 152 | 0;
 40256  i2 = i5 + 16 | 0;
 40257  HEAP32[i7 >> 2] = HEAP32[i2 >> 2];
 40258  HEAP32[i7 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
 40259  HEAP32[i7 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
 40260  HEAP32[i7 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
 40261  i2 = i1 + 168 | 0;
 40262  i7 = i5 + 32 | 0;
 40263  HEAP32[i2 >> 2] = HEAP32[i7 >> 2];
 40264  HEAP32[i2 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
 40265  HEAP32[i2 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
 40266  HEAP32[i2 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
 40267  i7 = i1 + 184 | 0;
 40268  i2 = i5 + 48 | 0;
 40269  HEAP32[i7 >> 2] = HEAP32[i2 >> 2];
 40270  HEAP32[i7 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
 40271  HEAP32[i7 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
 40272  HEAP32[i7 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
 40273  HEAPF32[i1 + 200 >> 2] = 1.0;
 40274  HEAPF32[i1 + 204 >> 2] = d6;
 40275  HEAPF32[i1 + 208 >> 2] = 0.0;
 40276  return;
 40278 function __ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback18processConstraintsEv(i1) {
 40279  i1 = i1 | 0;
 40280  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0;
 40281  i2 = i1 + 56 | 0;
 40282  i3 = HEAP32[i2 >> 2] | 0;
 40283  i4 = i1 + 76 | 0;
 40284  i5 = HEAP32[i4 >> 2] | 0;
 40285  if ((i5 + i3 | 0) > 0) {
 40286   i6 = HEAP32[i1 + 8 >> 2] | 0;
 40287   i7 = HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0;
 40288   i8 = HEAP32[i1 + 44 >> 2] | 0;
 40289   i9 = i1 + 36 | 0;
 40290   i10 = HEAP32[i9 >> 2] | 0;
 40291   i11 = HEAP32[i1 + 64 >> 2] | 0;
 40292   i12 = HEAP32[i1 + 84 >> 2] | 0;
 40293   i13 = HEAP32[i1 + 4 >> 2] | 0;
 40294   i14 = HEAP32[i1 + 20 >> 2] | 0;
 40295   i15 = HEAP32[i1 + 24 >> 2] | 0;
 40296   i16 = HEAP32[i1 + 28 >> 2] | 0;
 40297   +FUNCTION_TABLE_fiiiiiiiiiii[i7 & 3](i6, i8, i10, i11, i3, i12, i5, i13, i14, i15, i16);
 40298   i17 = i9;
 40299  } else {
 40300   i17 = i1 + 36 | 0;
 40302  i9 = HEAP32[i17 >> 2] | 0;
 40303  if ((i9 | 0) < 0) {
 40304   i16 = i1 + 40 | 0;
 40305   i15 = i1 + 44 | 0;
 40306   if ((HEAP32[i16 >> 2] | 0) < 0) {
 40307    i14 = HEAP32[i15 >> 2] | 0;
 40308    i13 = i1 + 48 | 0;
 40309    if ((i14 | 0) != 0) {
 40310     if ((HEAP8[i13] | 0) != 0) {
 40311      __Z21btAlignedFreeInternalPv(i14);
 40313     HEAP32[i15 >> 2] = 0;
 40315    HEAP8[i13] = 1;
 40316    HEAP32[i15 >> 2] = 0;
 40317    HEAP32[i16 >> 2] = 0;
 40318    i18 = i9;
 40319   } else {
 40320    i18 = i9;
 40322   do {
 40323    i9 = (HEAP32[i15 >> 2] | 0) + (i18 << 2) | 0;
 40324    if ((i9 | 0) != 0) {
 40325     HEAP32[i9 >> 2] = 0;
 40327    i18 = i18 + 1 | 0;
 40328   } while ((i18 | 0) < 0);
 40330  HEAP32[i17 >> 2] = 0;
 40331  i17 = HEAP32[i2 >> 2] | 0;
 40332  if ((i17 | 0) < 0) {
 40333   i18 = i1 + 60 | 0;
 40334   i15 = i1 + 64 | 0;
 40335   if ((HEAP32[i18 >> 2] | 0) < 0) {
 40336    i9 = HEAP32[i15 >> 2] | 0;
 40337    i16 = i1 + 68 | 0;
 40338    if ((i9 | 0) != 0) {
 40339     if ((HEAP8[i16] | 0) != 0) {
 40340      __Z21btAlignedFreeInternalPv(i9);
 40342     HEAP32[i15 >> 2] = 0;
 40344    HEAP8[i16] = 1;
 40345    HEAP32[i15 >> 2] = 0;
 40346    HEAP32[i18 >> 2] = 0;
 40347    i19 = i17;
 40348   } else {
 40349    i19 = i17;
 40351   do {
 40352    i17 = (HEAP32[i15 >> 2] | 0) + (i19 << 2) | 0;
 40353    if ((i17 | 0) != 0) {
 40354     HEAP32[i17 >> 2] = 0;
 40356    i19 = i19 + 1 | 0;
 40357   } while ((i19 | 0) < 0);
 40359  HEAP32[i2 >> 2] = 0;
 40360  i2 = HEAP32[i4 >> 2] | 0;
 40361  if ((i2 | 0) >= 0) {
 40362   HEAP32[i4 >> 2] = 0;
 40363   return;
 40365  i19 = i1 + 80 | 0;
 40366  i15 = i1 + 84 | 0;
 40367  if ((HEAP32[i19 >> 2] | 0) < 0) {
 40368   i17 = HEAP32[i15 >> 2] | 0;
 40369   i18 = i1 + 88 | 0;
 40370   if ((i17 | 0) != 0) {
 40371    if ((HEAP8[i18] | 0) != 0) {
 40372     __Z21btAlignedFreeInternalPv(i17);
 40374    HEAP32[i15 >> 2] = 0;
 40376   HEAP8[i18] = 1;
 40377   HEAP32[i15 >> 2] = 0;
 40378   HEAP32[i19 >> 2] = 0;
 40379   i20 = i2;
 40380  } else {
 40381   i20 = i2;
 40383  do {
 40384   i2 = (HEAP32[i15 >> 2] | 0) + (i20 << 2) | 0;
 40385   if ((i2 | 0) != 0) {
 40386    HEAP32[i2 >> 2] = 0;
 40388   i20 = i20 + 1 | 0;
 40389  } while ((i20 | 0) < 0);
 40390  HEAP32[i4 >> 2] = 0;
 40391  return;
 40393 function __ZNK10__cxxabiv121__vmi_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib(i1, i2, i3, i4, i5, i6) {
 40394  i1 = i1 | 0;
 40395  i2 = i2 | 0;
 40396  i3 = i3 | 0;
 40397  i4 = i4 | 0;
 40398  i5 = i5 | 0;
 40399  i6 = i6 | 0;
 40400  var i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0;
 40401  if ((i1 | 0) != (HEAP32[i2 + 8 >> 2] | 0)) {
 40402   i7 = i2 + 52 | 0;
 40403   i8 = HEAP8[i7] & 1;
 40404   i9 = i2 + 53 | 0;
 40405   i10 = HEAP8[i9] & 1;
 40406   i11 = HEAP32[i1 + 12 >> 2] | 0;
 40407   i12 = i1 + 16 + (i11 << 3) | 0;
 40408   HEAP8[i7] = 0;
 40409   HEAP8[i9] = 0;
 40410   i13 = HEAP32[i1 + 20 >> 2] | 0;
 40411   i14 = i13 >> 8;
 40412   if ((i13 & 1 | 0) == 0) {
 40413    i15 = i14;
 40414   } else {
 40415    i15 = HEAP32[(HEAP32[i4 >> 2] | 0) + i14 >> 2] | 0;
 40417   i14 = HEAP32[i1 + 16 >> 2] | 0;
 40418   FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[i14 >> 2] | 0) + 20 >> 2] & 15](i14, i2, i3, i4 + i15 | 0, (i13 & 2 | 0) != 0 ? i5 : 2, i6);
 40419   L2889 : do {
 40420    if ((i11 | 0) > 1) {
 40421     i13 = i2 + 24 | 0;
 40422     i15 = i1 + 8 | 0;
 40423     i14 = i2 + 54 | 0;
 40424     i16 = i4;
 40425     i17 = i1 + 24 | 0;
 40426     do {
 40427      if ((HEAP8[i14] & 1) != 0) {
 40428       break L2889;
 40430      do {
 40431       if ((HEAP8[i7] & 1) == 0) {
 40432        if ((HEAP8[i9] & 1) == 0) {
 40433         break;
 40435        if ((HEAP32[i15 >> 2] & 1 | 0) == 0) {
 40436         break L2889;
 40438       } else {
 40439        if ((HEAP32[i13 >> 2] | 0) == 1) {
 40440         break L2889;
 40442        if ((HEAP32[i15 >> 2] & 2 | 0) == 0) {
 40443         break L2889;
 40446      } while (0);
 40447      HEAP8[i7] = 0;
 40448      HEAP8[i9] = 0;
 40449      i18 = HEAP32[i17 + 4 >> 2] | 0;
 40450      i19 = i18 >> 8;
 40451      if ((i18 & 1 | 0) == 0) {
 40452       i20 = i19;
 40453      } else {
 40454       i20 = HEAP32[(HEAP32[i16 >> 2] | 0) + i19 >> 2] | 0;
 40456      i19 = HEAP32[i17 >> 2] | 0;
 40457      FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[i19 >> 2] | 0) + 20 >> 2] & 15](i19, i2, i3, i4 + i20 | 0, (i18 & 2 | 0) != 0 ? i5 : 2, i6);
 40458      i17 = i17 + 8 | 0;
 40459     } while (i17 >>> 0 < i12 >>> 0);
 40461   } while (0);
 40462   HEAP8[i7] = i8;
 40463   HEAP8[i9] = i10;
 40464   return;
 40466  HEAP8[i2 + 53 | 0] = 1;
 40467  if ((HEAP32[i2 + 4 >> 2] | 0) != (i4 | 0)) {
 40468   return;
 40470  HEAP8[i2 + 52 | 0] = 1;
 40471  i4 = i2 + 16 | 0;
 40472  i10 = HEAP32[i4 >> 2] | 0;
 40473  if ((i10 | 0) == 0) {
 40474   HEAP32[i4 >> 2] = i3;
 40475   HEAP32[i2 + 24 >> 2] = i5;
 40476   HEAP32[i2 + 36 >> 2] = 1;
 40477   if (!((HEAP32[i2 + 48 >> 2] | 0) == 1 & (i5 | 0) == 1)) {
 40478    return;
 40480   HEAP8[i2 + 54 | 0] = 1;
 40481   return;
 40483  if ((i10 | 0) != (i3 | 0)) {
 40484   i3 = i2 + 36 | 0;
 40485   HEAP32[i3 >> 2] = (HEAP32[i3 >> 2] | 0) + 1;
 40486   HEAP8[i2 + 54 | 0] = 1;
 40487   return;
 40489  i3 = i2 + 24 | 0;
 40490  i10 = HEAP32[i3 >> 2] | 0;
 40491  if ((i10 | 0) == 2) {
 40492   HEAP32[i3 >> 2] = i5;
 40493   i21 = i5;
 40494  } else {
 40495   i21 = i10;
 40497  if (!((HEAP32[i2 + 48 >> 2] | 0) == 1 & (i21 | 0) == 1)) {
 40498   return;
 40500  HEAP8[i2 + 54 | 0] = 1;
 40501  return;
 40503 function __ZN16btBoxBoxDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i1, i2, i3, i4, i5) {
 40504  i1 = i1 | 0;
 40505  i2 = i2 | 0;
 40506  i3 = i3 | 0;
 40507  i4 = i4 | 0;
 40508  i5 = i5 | 0;
 40509  var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0, d12 = 0.0, d13 = 0.0, i14 = 0, d15 = 0.0, d16 = 0.0, d17 = 0.0;
 40510  i5 = STACKTOP;
 40511  STACKTOP = STACKTOP + 160 | 0;
 40512  i4 = i5 | 0;
 40513  i6 = i5 + 48 | 0;
 40514  i7 = i5 + 128 | 0;
 40515  i8 = i5 + 144 | 0;
 40516  i9 = i4 | 0;
 40517  HEAPF32[i9 >> 2] = +HEAPF32[i2 >> 2];
 40518  i10 = i6 | 0;
 40519  HEAPF32[i10 >> 2] = +HEAPF32[i2 + 64 >> 2];
 40520  HEAPF32[i4 + 4 >> 2] = +HEAPF32[i2 + 4 >> 2];
 40521  HEAPF32[i6 + 4 >> 2] = +HEAPF32[i2 + 68 >> 2];
 40522  HEAPF32[i4 + 8 >> 2] = +HEAPF32[i2 + 8 >> 2];
 40523  HEAPF32[i6 + 8 >> 2] = +HEAPF32[i2 + 72 >> 2];
 40524  HEAPF32[i4 + 16 >> 2] = +HEAPF32[i2 + 16 >> 2];
 40525  HEAPF32[i6 + 16 >> 2] = +HEAPF32[i2 + 80 >> 2];
 40526  HEAPF32[i4 + 20 >> 2] = +HEAPF32[i2 + 20 >> 2];
 40527  HEAPF32[i6 + 20 >> 2] = +HEAPF32[i2 + 84 >> 2];
 40528  HEAPF32[i4 + 24 >> 2] = +HEAPF32[i2 + 24 >> 2];
 40529  HEAPF32[i6 + 24 >> 2] = +HEAPF32[i2 + 88 >> 2];
 40530  HEAPF32[i4 + 32 >> 2] = +HEAPF32[i2 + 32 >> 2];
 40531  HEAPF32[i6 + 32 >> 2] = +HEAPF32[i2 + 96 >> 2];
 40532  HEAPF32[i4 + 36 >> 2] = +HEAPF32[i2 + 36 >> 2];
 40533  HEAPF32[i6 + 36 >> 2] = +HEAPF32[i2 + 100 >> 2];
 40534  HEAPF32[i4 + 40 >> 2] = +HEAPF32[i2 + 40 >> 2];
 40535  HEAPF32[i6 + 40 >> 2] = +HEAPF32[i2 + 104 >> 2];
 40536  i6 = HEAP32[i1 + 4 >> 2] | 0;
 40537  d11 = +HEAPF32[i6 + 28 >> 2];
 40538  d12 = +HEAPF32[i6 + 32 >> 2];
 40539  d13 = +HEAPF32[i6 + 36 >> 2];
 40540  i4 = i6 | 0;
 40541  i14 = i6;
 40542  d15 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i14 >> 2] | 0) + 44 >> 2] & 7](i4);
 40543  d16 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i14 >> 2] | 0) + 44 >> 2] & 7](i4);
 40544  d17 = (d13 + +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i14 >> 2] | 0) + 44 >> 2] & 7](i4)) * 2.0;
 40545  HEAPF32[i7 >> 2] = (d11 + d15) * 2.0;
 40546  HEAPF32[i7 + 4 >> 2] = (d12 + d16) * 2.0;
 40547  HEAPF32[i7 + 8 >> 2] = d17;
 40548  HEAPF32[i7 + 12 >> 2] = 0.0;
 40549  i4 = HEAP32[i1 + 8 >> 2] | 0;
 40550  d17 = +HEAPF32[i4 + 28 >> 2];
 40551  d16 = +HEAPF32[i4 + 32 >> 2];
 40552  d12 = +HEAPF32[i4 + 36 >> 2];
 40553  i1 = i4 | 0;
 40554  i14 = i4;
 40555  d15 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i14 >> 2] | 0) + 44 >> 2] & 7](i1);
 40556  d11 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i14 >> 2] | 0) + 44 >> 2] & 7](i1);
 40557  d13 = (d12 + +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i14 >> 2] | 0) + 44 >> 2] & 7](i1)) * 2.0;
 40558  HEAPF32[i8 >> 2] = (d17 + d15) * 2.0;
 40559  HEAPF32[i8 + 4 >> 2] = (d16 + d11) * 2.0;
 40560  HEAPF32[i8 + 8 >> 2] = d13;
 40561  HEAPF32[i8 + 12 >> 2] = 0.0;
 40562  __Z8dBoxBox2RK9btVector3PKfS1_S1_S3_S1_RS_PfPiiP12dContactGeomiRN36btDiscreteCollisionDetectorInterface6ResultE(i2 + 48 | 0, i9, i7, i2 + 112 | 0, i10, i8, i5 + 96 | 0, i5 + 112 | 0, i5 + 120 | 0, 4, 0, 0, i3) | 0;
 40563  STACKTOP = i5;
 40564  return;
 40566 function __ZN32btSphereSphereCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
 40567  i1 = i1 | 0;
 40568  i2 = i2 | 0;
 40569  i3 = i3 | 0;
 40570  i4 = i4 | 0;
 40571  i5 = i5 | 0;
 40572  var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0;
 40573  i4 = STACKTOP;
 40574  STACKTOP = STACKTOP + 32 | 0;
 40575  i6 = i4 | 0;
 40576  i7 = i4 + 16 | 0;
 40577  i8 = HEAP32[i1 + 12 >> 2] | 0;
 40578  if ((i8 | 0) == 0) {
 40579   STACKTOP = i4;
 40580   return;
 40582  i1 = i5 + 4 | 0;
 40583  HEAP32[i1 >> 2] = i8;
 40584  i9 = HEAP32[i2 + 192 >> 2] | 0;
 40585  i10 = HEAP32[i3 + 192 >> 2] | 0;
 40586  d11 = +HEAPF32[i3 + 52 >> 2];
 40587  d12 = +HEAPF32[i2 + 52 >> 2] - d11;
 40588  d13 = +HEAPF32[i3 + 56 >> 2];
 40589  d14 = +HEAPF32[i2 + 56 >> 2] - d13;
 40590  d15 = +HEAPF32[i3 + 60 >> 2];
 40591  d16 = +HEAPF32[i2 + 60 >> 2] - d15;
 40592  d17 = +Math_sqrt(+(d12 * d12 + d14 * d14 + d16 * d16));
 40593  d18 = +HEAPF32[i10 + 28 >> 2] * +HEAPF32[i10 + 12 >> 2];
 40594  d19 = +HEAPF32[i9 + 28 >> 2] * +HEAPF32[i9 + 12 >> 2] + d18;
 40595  if (d17 > d19) {
 40596   if ((HEAP32[i8 + 1116 >> 2] | 0) == 0) {
 40597    STACKTOP = i4;
 40598    return;
 40600   if ((HEAP32[i8 + 1108 >> 2] | 0) == (HEAP32[i5 + 136 >> 2] | 0)) {
 40601    __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i8, i5 + 8 | 0, i5 + 72 | 0);
 40602    STACKTOP = i4;
 40603    return;
 40604   } else {
 40605    __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i8, i5 + 72 | 0, i5 + 8 | 0);
 40606    STACKTOP = i4;
 40607    return;
 40610  i8 = i6 | 0;
 40611  HEAPF32[i8 >> 2] = 1.0;
 40612  i9 = i6 + 4 | 0;
 40613  HEAPF32[i9 >> 2] = 0.0;
 40614  i10 = i6 + 8 | 0;
 40615  HEAPF32[i10 >> 2] = 0.0;
 40616  i2 = i6 + 12 | 0;
 40617  HEAPF32[i2 >> 2] = 0.0;
 40618  if (d17 > 1.1920928955078125e-7) {
 40619   d20 = 1.0 / d17;
 40620   d21 = d12 * d20;
 40621   d12 = d14 * d20;
 40622   d14 = d16 * d20;
 40623   HEAPF32[i8 >> 2] = d21;
 40624   HEAPF32[i9 >> 2] = d12;
 40625   HEAPF32[i10 >> 2] = d14;
 40626   HEAPF32[i2 >> 2] = 0.0;
 40627   d22 = d21;
 40628   d23 = d12;
 40629   d24 = d14;
 40630  } else {
 40631   d22 = 1.0;
 40632   d23 = 0.0;
 40633   d24 = 0.0;
 40635  HEAPF32[i7 >> 2] = d11 + d18 * d22;
 40636  HEAPF32[i7 + 4 >> 2] = d13 + d18 * d23;
 40637  HEAPF32[i7 + 8 >> 2] = d15 + d18 * d24;
 40638  HEAPF32[i7 + 12 >> 2] = 0.0;
 40639  FUNCTION_TABLE_viiif[HEAP32[(HEAP32[i5 >> 2] | 0) + 16 >> 2] & 15](i5, i6, i7, d17 - d19);
 40640  i7 = HEAP32[i1 >> 2] | 0;
 40641  if ((HEAP32[i7 + 1116 >> 2] | 0) == 0) {
 40642   STACKTOP = i4;
 40643   return;
 40645  if ((HEAP32[i7 + 1108 >> 2] | 0) == (HEAP32[i5 + 136 >> 2] | 0)) {
 40646   __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7, i5 + 8 | 0, i5 + 72 | 0);
 40647   STACKTOP = i4;
 40648   return;
 40649  } else {
 40650   __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i7, i5 + 72 | 0, i5 + 8 | 0);
 40651   STACKTOP = i4;
 40652   return;
 40655 function __ZN23btDiscreteDynamicsWorld26calculateSimulationIslandsEv(i1) {
 40656  i1 = i1 | 0;
 40657  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0;
 40658  __ZN15CProfileManager13Start_ProfileEPKc(176);
 40659  i2 = i1 + 176 | 0;
 40660  i3 = HEAP32[i2 >> 2] | 0;
 40661  i4 = i1 | 0;
 40662  FUNCTION_TABLE_viii[HEAP32[(HEAP32[i3 >> 2] | 0) + 8 >> 2] & 127](i3, i4, HEAP32[i1 + 24 >> 2] | 0);
 40663  i3 = HEAP32[i1 + 184 >> 2] | 0;
 40664  if ((i3 | 0) > 0) {
 40665   i5 = HEAP32[i1 + 192 >> 2] | 0;
 40666   i1 = 0;
 40667   do {
 40668    i6 = HEAP32[i5 + (i1 << 2) >> 2] | 0;
 40669    i7 = HEAP32[i6 + 24 >> 2] | 0;
 40670    i8 = HEAP32[i6 + 28 >> 2] | 0;
 40671    do {
 40672     if ((i7 | 0) != 0) {
 40673      if ((HEAP32[i7 + 204 >> 2] & 3 | 0) != 0 | (i8 | 0) == 0) {
 40674       break;
 40676      if ((HEAP32[i8 + 204 >> 2] & 3 | 0) != 0) {
 40677       break;
 40679      i6 = HEAP32[i7 + 216 >> 2] | 0;
 40680      if ((i6 | 0) == 5 | (i6 | 0) == 2) {
 40681       i6 = HEAP32[i8 + 216 >> 2] | 0;
 40682       if ((i6 | 0) == 5 | (i6 | 0) == 2) {
 40683        break;
 40686      i6 = HEAP32[i7 + 208 >> 2] | 0;
 40687      i9 = HEAP32[i8 + 208 >> 2] | 0;
 40688      i10 = HEAP32[(HEAP32[i2 >> 2] | 0) + 16 >> 2] | 0;
 40689      i11 = i10 + (i6 << 3) | 0;
 40690      i12 = HEAP32[i11 >> 2] | 0;
 40691      if ((i12 | 0) == (i6 | 0)) {
 40692       i13 = i6;
 40693      } else {
 40694       i6 = i11;
 40695       i11 = i12;
 40696       while (1) {
 40697        i12 = i10 + (i11 << 3) | 0;
 40698        HEAP32[i6 >> 2] = HEAP32[i12 >> 2];
 40699        i14 = HEAP32[i12 >> 2] | 0;
 40700        i12 = i10 + (i14 << 3) | 0;
 40701        i15 = HEAP32[i12 >> 2] | 0;
 40702        if ((i14 | 0) == (i15 | 0)) {
 40703         i13 = i14;
 40704         break;
 40705        } else {
 40706         i6 = i12;
 40707         i11 = i15;
 40711      i11 = i10 + (i9 << 3) | 0;
 40712      i6 = HEAP32[i11 >> 2] | 0;
 40713      if ((i6 | 0) == (i9 | 0)) {
 40714       i16 = i9;
 40715      } else {
 40716       i15 = i11;
 40717       i11 = i6;
 40718       while (1) {
 40719        i6 = i10 + (i11 << 3) | 0;
 40720        HEAP32[i15 >> 2] = HEAP32[i6 >> 2];
 40721        i12 = HEAP32[i6 >> 2] | 0;
 40722        i6 = i10 + (i12 << 3) | 0;
 40723        i14 = HEAP32[i6 >> 2] | 0;
 40724        if ((i12 | 0) == (i14 | 0)) {
 40725         i16 = i12;
 40726         break;
 40727        } else {
 40728         i15 = i6;
 40729         i11 = i14;
 40733      if ((i13 | 0) == (i16 | 0)) {
 40734       break;
 40736      HEAP32[i10 + (i13 << 3) >> 2] = i16;
 40737      i11 = i10 + (i16 << 3) + 4 | 0;
 40738      HEAP32[i11 >> 2] = (HEAP32[i11 >> 2] | 0) + (HEAP32[i10 + (i13 << 3) + 4 >> 2] | 0);
 40740    } while (0);
 40741    i1 = i1 + 1 | 0;
 40742   } while ((i1 | 0) < (i3 | 0));
 40744  i3 = HEAP32[i2 >> 2] | 0;
 40745  FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] & 127](i3, i4);
 40746  __ZN15CProfileManager12Stop_ProfileEv();
 40747  return;
 40749 function __ZN23btDiscreteDynamicsWorld23synchronizeMotionStatesEv(i1) {
 40750  i1 = i1 | 0;
 40751  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
 40752  i2 = STACKTOP;
 40753  STACKTOP = STACKTOP + 128 | 0;
 40754  i3 = i2 | 0;
 40755  i4 = i2 + 64 | 0;
 40756  __ZN15CProfileManager13Start_ProfileEPKc(936);
 40757  if ((HEAP8[i1 + 242 | 0] | 0) == 0) {
 40758   i5 = i1 + 204 | 0;
 40759   i6 = HEAP32[i5 >> 2] | 0;
 40760   if ((i6 | 0) <= 0) {
 40761    __ZN15CProfileManager12Stop_ProfileEv();
 40762    STACKTOP = i2;
 40763    return;
 40765   i7 = i1 + 212 | 0;
 40766   i8 = i1 + 236 | 0;
 40767   i9 = 0;
 40768   i10 = i6;
 40769   while (1) {
 40770    i6 = HEAP32[(HEAP32[i7 >> 2] | 0) + (i9 << 2) >> 2] | 0;
 40771    i11 = HEAP32[i6 + 216 >> 2] | 0;
 40772    do {
 40773     if ((i11 | 0) == 5 | (i11 | 0) == 2) {
 40774      i12 = i10;
 40775     } else {
 40776      i13 = i6 + 472 | 0;
 40777      if ((HEAP32[i13 >> 2] | 0) == 0) {
 40778       i12 = i10;
 40779       break;
 40781      if ((HEAP32[i6 + 204 >> 2] & 3 | 0) != 0) {
 40782       i12 = i10;
 40783       break;
 40785      __ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i6 + 68 | 0, i6 + 132 | 0, i6 + 148 | 0, +HEAPF32[i8 >> 2] * +HEAPF32[i6 + 240 >> 2], i4);
 40786      i14 = HEAP32[i13 >> 2] | 0;
 40787      FUNCTION_TABLE_vii[HEAP32[(HEAP32[i14 >> 2] | 0) + 12 >> 2] & 127](i14, i4);
 40788      i12 = HEAP32[i5 >> 2] | 0;
 40790    } while (0);
 40791    i6 = i9 + 1 | 0;
 40792    if ((i6 | 0) < (i12 | 0)) {
 40793     i9 = i6;
 40794     i10 = i12;
 40795    } else {
 40796     break;
 40799   __ZN15CProfileManager12Stop_ProfileEv();
 40800   STACKTOP = i2;
 40801   return;
 40802  } else {
 40803   i12 = i1 + 8 | 0;
 40804   i10 = HEAP32[i12 >> 2] | 0;
 40805   if ((i10 | 0) <= 0) {
 40806    __ZN15CProfileManager12Stop_ProfileEv();
 40807    STACKTOP = i2;
 40808    return;
 40810   i9 = i1 + 16 | 0;
 40811   i5 = i1 + 236 | 0;
 40812   i1 = 0;
 40813   i4 = i10;
 40814   while (1) {
 40815    i10 = HEAP32[(HEAP32[i9 >> 2] | 0) + (i1 << 2) >> 2] | 0;
 40816    do {
 40817     if ((HEAP32[i10 + 232 >> 2] & 2 | 0) == 0 | (i10 | 0) == 0) {
 40818      i15 = i4;
 40819     } else {
 40820      i8 = i10 + 472 | 0;
 40821      if ((HEAP32[i8 >> 2] | 0) == 0) {
 40822       i15 = i4;
 40823       break;
 40825      if ((HEAP32[i10 + 204 >> 2] & 3 | 0) != 0) {
 40826       i15 = i4;
 40827       break;
 40829      __ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i10 + 68 | 0, i10 + 132 | 0, i10 + 148 | 0, +HEAPF32[i5 >> 2] * +HEAPF32[i10 + 240 >> 2], i3);
 40830      i7 = HEAP32[i8 >> 2] | 0;
 40831      FUNCTION_TABLE_vii[HEAP32[(HEAP32[i7 >> 2] | 0) + 12 >> 2] & 127](i7, i3);
 40832      i15 = HEAP32[i12 >> 2] | 0;
 40834    } while (0);
 40835    i10 = i1 + 1 | 0;
 40836    if ((i10 | 0) < (i15 | 0)) {
 40837     i1 = i10;
 40838     i4 = i15;
 40839    } else {
 40840     break;
 40843   __ZN15CProfileManager12Stop_ProfileEv();
 40844   STACKTOP = i2;
 40845   return;
 40848 function __ZN28btTriangleConvexcastCallback15processTriangleEP9btVector3ii(i1, i2, i3, i4) {
 40849  i1 = i1 | 0;
 40850  i2 = i2 | 0;
 40851  i3 = i3 | 0;
 40852  i4 = i4 | 0;
 40853  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0;
 40854  i5 = STACKTOP;
 40855  STACKTOP = STACKTOP + 672 | 0;
 40856  i6 = i5 | 0;
 40857  i7 = i5 + 104 | 0;
 40858  i8 = i5 + 464 | 0;
 40859  i9 = i5 + 472 | 0;
 40860  i10 = i5 + 496 | 0;
 40861  i11 = i6 | 0;
 40862  __ZN23btPolyhedralConvexShapeC2Ev(i11);
 40863  HEAP32[i6 >> 2] = 4560;
 40864  HEAP32[i6 + 4 >> 2] = 1;
 40865  i12 = i6 + 56 | 0;
 40866  i13 = i2;
 40867  HEAP32[i12 >> 2] = HEAP32[i13 >> 2];
 40868  HEAP32[i12 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
 40869  HEAP32[i12 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
 40870  HEAP32[i12 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
 40871  i13 = i6 + 72 | 0;
 40872  i12 = i2 + 16 | 0;
 40873  HEAP32[i13 >> 2] = HEAP32[i12 >> 2];
 40874  HEAP32[i13 + 4 >> 2] = HEAP32[i12 + 4 >> 2];
 40875  HEAP32[i13 + 8 >> 2] = HEAP32[i12 + 8 >> 2];
 40876  HEAP32[i13 + 12 >> 2] = HEAP32[i12 + 12 >> 2];
 40877  i12 = i6 + 88 | 0;
 40878  i13 = i2 + 32 | 0;
 40879  HEAP32[i12 >> 2] = HEAP32[i13 >> 2];
 40880  HEAP32[i12 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
 40881  HEAP32[i12 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
 40882  HEAP32[i12 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
 40883  HEAPF32[i6 + 44 >> 2] = +HEAPF32[i1 + 204 >> 2];
 40884  HEAPF32[i7 + 308 >> 2] = 9999999747378752.0e-20;
 40885  HEAP16[i7 + 332 >> 1] = 0;
 40886  HEAP32[i8 >> 2] = 2696;
 40887  __ZN27btContinuousConvexCollisionC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver(i9, HEAP32[i1 + 4 >> 2] | 0, i6 | 0, i7, i8 | 0);
 40888  HEAP32[i10 >> 2] = 2280;
 40889  i8 = i10 + 164 | 0;
 40890  HEAP32[i10 + 168 >> 2] = 0;
 40891  HEAPF32[i8 >> 2] = 1.0;
 40892  HEAPF32[i10 + 172 >> 2] = +HEAPF32[i1 + 208 >> 2];
 40893  i7 = i1 + 136 | 0;
 40894  do {
 40895   if (__ZN27btContinuousConvexCollision16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i9, i1 + 8 | 0, i1 + 72 | 0, i7, i7, i10) | 0) {
 40896    i6 = i10 + 132 | 0;
 40897    i13 = i6 | 0;
 40898    d14 = +HEAPF32[i13 >> 2];
 40899    i12 = i10 + 136 | 0;
 40900    d15 = +HEAPF32[i12 >> 2];
 40901    i2 = i10 + 140 | 0;
 40902    d16 = +HEAPF32[i2 >> 2];
 40903    d17 = d14 * d14 + d15 * d15 + d16 * d16;
 40904    if (d17 <= 9999999747378752.0e-20) {
 40905     break;
 40907    d18 = +HEAPF32[i8 >> 2];
 40908    if (d18 >= +HEAPF32[i1 + 200 >> 2]) {
 40909     break;
 40911    d19 = 1.0 / +Math_sqrt(+d17);
 40912    HEAPF32[i13 >> 2] = d14 * d19;
 40913    HEAPF32[i12 >> 2] = d15 * d19;
 40914    HEAPF32[i2 >> 2] = d16 * d19;
 40915    i2 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
 40916    i12 = i10 + 148 | 0;
 40917    +FUNCTION_TABLE_fiiifii[i2 & 7](i1, i6, i12, d18, i3, i4);
 40919  } while (0);
 40920  __ZN12btConvexCastD2Ev(i9 | 0);
 40921  __ZN23btPolyhedralConvexShapeD2Ev(i11);
 40922  STACKTOP = i5;
 40923  return;
 40925 function __ZN11btRigidBody12applyDampingEf(i1, d2) {
 40926  i1 = i1 | 0;
 40927  d2 = +d2;
 40928  var d3 = 0.0, d4 = 0.0, i5 = 0, d6 = 0.0, i7 = 0, d8 = 0.0, i9 = 0, d10 = 0.0, d11 = 0.0, i12 = 0, i13 = 0, d14 = 0.0, i15 = 0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0;
 40929  d3 = +HEAPF32[i1 + 436 >> 2];
 40930  d4 = +Math_pow(+(1.0 - d3), +d2);
 40931  i5 = i1 + 304 | 0;
 40932  d6 = d4 * +HEAPF32[i5 >> 2];
 40933  HEAPF32[i5 >> 2] = d6;
 40934  i7 = i1 + 308 | 0;
 40935  d8 = d4 * +HEAPF32[i7 >> 2];
 40936  HEAPF32[i7 >> 2] = d8;
 40937  i9 = i1 + 312 | 0;
 40938  d10 = d4 * +HEAPF32[i9 >> 2];
 40939  HEAPF32[i9 >> 2] = d10;
 40940  d4 = +HEAPF32[i1 + 440 >> 2];
 40941  d11 = +Math_pow(+(1.0 - d4), +d2);
 40942  i12 = i1 + 320 | 0;
 40943  d2 = d11 * +HEAPF32[i12 >> 2];
 40944  HEAPF32[i12 >> 2] = d2;
 40945  i13 = i1 + 324 | 0;
 40946  d14 = d11 * +HEAPF32[i13 >> 2];
 40947  HEAPF32[i13 >> 2] = d14;
 40948  i15 = i1 + 328 | 0;
 40949  d16 = d11 * +HEAPF32[i15 >> 2];
 40950  HEAPF32[i15 >> 2] = d16;
 40951  if ((HEAP8[i1 + 444 | 0] | 0) == 0) {
 40952   return;
 40954  do {
 40955   if (d16 * d16 + (d2 * d2 + d14 * d14) < +HEAPF32[i1 + 456 >> 2]) {
 40956    if (d6 * d6 + d8 * d8 + d10 * d10 >= +HEAPF32[i1 + 452 >> 2]) {
 40957     d17 = d6;
 40958     d18 = d8;
 40959     d19 = d10;
 40960     d20 = d2;
 40961     d21 = d14;
 40962     d22 = d16;
 40963     break;
 40965    d11 = +HEAPF32[i1 + 448 >> 2];
 40966    d23 = d2 * d11;
 40967    HEAPF32[i12 >> 2] = d23;
 40968    d24 = d14 * d11;
 40969    HEAPF32[i13 >> 2] = d24;
 40970    d25 = d16 * d11;
 40971    HEAPF32[i15 >> 2] = d25;
 40972    d26 = d6 * d11;
 40973    HEAPF32[i5 >> 2] = d26;
 40974    d27 = d8 * d11;
 40975    HEAPF32[i7 >> 2] = d27;
 40976    d28 = d10 * d11;
 40977    HEAPF32[i9 >> 2] = d28;
 40978    d17 = d26;
 40979    d18 = d27;
 40980    d19 = d28;
 40981    d20 = d23;
 40982    d21 = d24;
 40983    d22 = d25;
 40984   } else {
 40985    d17 = d6;
 40986    d18 = d8;
 40987    d19 = d10;
 40988    d20 = d2;
 40989    d21 = d14;
 40990    d22 = d16;
 40992  } while (0);
 40993  d16 = +Math_sqrt(+(d19 * d19 + (d18 * d18 + d17 * d17)));
 40994  do {
 40995   if (d16 < d3) {
 40996    if (d16 > .004999999888241291) {
 40997     d14 = 1.0 / d16;
 40998     HEAPF32[i5 >> 2] = d17 - d17 * d14 * .004999999888241291;
 40999     HEAPF32[i7 >> 2] = d18 - d18 * d14 * .004999999888241291;
 41000     HEAPF32[i9 >> 2] = d19 - d19 * d14 * .004999999888241291;
 41001     break;
 41002    } else {
 41003     _memset(i5 | 0, 0, 16);
 41004     break;
 41007  } while (0);
 41008  d19 = +Math_sqrt(+(d22 * d22 + (d21 * d21 + d20 * d20)));
 41009  if (d19 >= d4) {
 41010   return;
 41012  if (d19 > .004999999888241291) {
 41013   d4 = 1.0 / d19;
 41014   HEAPF32[i12 >> 2] = d20 - d20 * d4 * .004999999888241291;
 41015   HEAPF32[i13 >> 2] = d21 - d21 * d4 * .004999999888241291;
 41016   HEAPF32[i15 >> 2] = d22 - d22 * d4 * .004999999888241291;
 41017   return;
 41018  } else {
 41019   _memset(i12 | 0, 0, 16);
 41020   return;
 41023 function __ZNK20btConvexHullInternal10Rational647compareERKS0_(i1, i2) {
 41024  i1 = i1 | 0;
 41025  i2 = i2 | 0;
 41026  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0;
 41027  i3 = HEAP32[i1 + 16 >> 2] | 0;
 41028  i4 = HEAP32[i2 + 16 >> 2] | 0;
 41029  if ((i3 | 0) != (i4 | 0)) {
 41030   i5 = i3 - i4 | 0;
 41031   return i5 | 0;
 41033  if ((i3 | 0) == 0) {
 41034   i5 = 0;
 41035   return i5 | 0;
 41037  i4 = i1 | 0;
 41038  i6 = HEAP32[i4 + 4 >> 2] | 0;
 41039  i7 = i2 + 8 | 0;
 41040  i8 = HEAP32[i7 + 4 >> 2] | 0;
 41041  i9 = HEAP32[i4 >> 2] | 0;
 41042  i4 = i6 & 0;
 41043  i10 = HEAP32[i7 >> 2] | 0;
 41044  i7 = i8 & 0;
 41045  i11 = ___muldi3(i10, i7, i9, i4) | 0;
 41046  i12 = tempRet0;
 41047  i13 = i8;
 41048  i8 = 0;
 41049  i14 = ___muldi3(i13, i8, i9, i4) | 0;
 41050  i4 = tempRet0;
 41051  i9 = i6;
 41052  i6 = 0;
 41053  i15 = ___muldi3(i10, i7, i9, i6) | 0;
 41054  i7 = tempRet0;
 41055  i10 = ___muldi3(i13, i8, i9, i6) | 0;
 41056  i6 = tempRet0;
 41057  i9 = _i64Add(i14 | 0, i4 & 0, i15 | 0, i7 & 0) | 0;
 41058  i15 = tempRet0;
 41059  i14 = _i64Add(i4, 0, i10, i6) | 0;
 41060  i6 = _i64Add(i14, tempRet0, i7, 0) | 0;
 41061  i7 = tempRet0;
 41062  i14 = _llvm_uadd_with_overflow_i64(i11 | 0, i12 | 0, 0, i9 | 0) | 0;
 41063  i9 = i14;
 41064  i14 = tempRet0;
 41065  i12 = _i64Add(i6, i7, tempRet1 & 1, 0) | 0;
 41066  i7 = _i64Add(i12, tempRet0, i15, 0) | 0;
 41067  i15 = tempRet0;
 41068  i12 = i1 + 8 | 0;
 41069  i1 = HEAP32[i12 + 4 >> 2] | 0;
 41070  i6 = i2 | 0;
 41071  i2 = HEAP32[i6 + 4 >> 2] | 0;
 41072  i11 = HEAP32[i12 >> 2] | 0;
 41073  i12 = i1 & 0;
 41074  i10 = HEAP32[i6 >> 2] | 0;
 41075  i6 = i2 & 0;
 41076  i4 = ___muldi3(i10, i6, i11, i12) | 0;
 41077  i8 = tempRet0;
 41078  i13 = i2;
 41079  i2 = 0;
 41080  i16 = ___muldi3(i13, i2, i11, i12) | 0;
 41081  i12 = tempRet0;
 41082  i11 = i1;
 41083  i1 = 0;
 41084  i17 = ___muldi3(i10, i6, i11, i1) | 0;
 41085  i6 = tempRet0;
 41086  i10 = ___muldi3(i13, i2, i11, i1) | 0;
 41087  i1 = tempRet0;
 41088  i11 = _i64Add(i16 | 0, i12 & 0, i17 | 0, i6 & 0) | 0;
 41089  i17 = tempRet0;
 41090  i16 = _i64Add(i12, 0, i10, i1) | 0;
 41091  i1 = _i64Add(i16, tempRet0, i6, 0) | 0;
 41092  i6 = tempRet0;
 41093  i16 = _llvm_uadd_with_overflow_i64(i4 | 0, i8 | 0, 0, i11 | 0) | 0;
 41094  i11 = i16;
 41095  i16 = tempRet0;
 41096  i8 = _i64Add(i1, i6, tempRet1 & 1, 0) | 0;
 41097  i6 = _i64Add(i8, tempRet0, i17, 0) | 0;
 41098  i17 = tempRet0;
 41099  do {
 41100   if (i15 >>> 0 < i17 >>> 0 | i15 >>> 0 == i17 >>> 0 & i7 >>> 0 < i6 >>> 0) {
 41101    i18 = -1;
 41102   } else {
 41103    if (i15 >>> 0 > i17 >>> 0 | i15 >>> 0 == i17 >>> 0 & i7 >>> 0 > i6 >>> 0) {
 41104     i18 = 1;
 41105     break;
 41107    if (i14 >>> 0 < i16 >>> 0 | i14 >>> 0 == i16 >>> 0 & i9 >>> 0 < i11 >>> 0) {
 41108     i18 = -1;
 41109     break;
 41111    i18 = (i14 >>> 0 > i16 >>> 0 | i14 >>> 0 == i16 >>> 0 & i9 >>> 0 > i11 >>> 0) & 1;
 41113  } while (0);
 41114  i5 = Math_imul(i18, i3) | 0;
 41115  return i5 | 0;
 41117 function __ZN19btSingleRayCallbackC2ERK9btVector3S2_PK16btCollisionWorldRNS3_17RayResultCallbackE(i1, i2, i3, i4, i5) {
 41118  i1 = i1 | 0;
 41119  i2 = i2 | 0;
 41120  i3 = i3 | 0;
 41121  i4 = i4 | 0;
 41122  i5 = i5 | 0;
 41123  var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0;
 41124  HEAP32[i1 >> 2] = 3984;
 41125  i6 = i1 + 36 | 0;
 41126  i7 = i6;
 41127  i8 = i2;
 41128  HEAP32[i7 >> 2] = HEAP32[i8 >> 2];
 41129  HEAP32[i7 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
 41130  HEAP32[i7 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
 41131  HEAP32[i7 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
 41132  i8 = i1 + 52 | 0;
 41133  i9 = i8;
 41134  i10 = i3;
 41135  HEAP32[i9 >> 2] = HEAP32[i10 >> 2];
 41136  HEAP32[i9 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
 41137  HEAP32[i9 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
 41138  HEAP32[i9 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
 41139  HEAP32[i1 + 212 >> 2] = i4;
 41140  HEAP32[i1 + 216 >> 2] = i5;
 41141  HEAPF32[i1 + 68 >> 2] = 1.0;
 41142  _memset(i1 + 72 | 0, 0, 16);
 41143  HEAPF32[i1 + 88 >> 2] = 1.0;
 41144  _memset(i1 + 92 | 0, 0, 16);
 41145  HEAPF32[i1 + 108 >> 2] = 1.0;
 41146  HEAP32[i1 + 112 >> 2] = 0;
 41147  i5 = i1 + 116 | 0;
 41148  HEAP32[i5 >> 2] = HEAP32[i7 >> 2];
 41149  HEAP32[i5 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
 41150  HEAP32[i5 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
 41151  HEAP32[i5 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
 41152  HEAPF32[i1 + 132 >> 2] = 1.0;
 41153  _memset(i1 + 136 | 0, 0, 16);
 41154  HEAPF32[i1 + 152 >> 2] = 1.0;
 41155  _memset(i1 + 156 | 0, 0, 16);
 41156  HEAPF32[i1 + 172 >> 2] = 1.0;
 41157  HEAP32[i1 + 176 >> 2] = 0;
 41158  i7 = i1 + 180 | 0;
 41159  HEAP32[i7 >> 2] = HEAP32[i9 >> 2];
 41160  HEAP32[i7 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
 41161  HEAP32[i7 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
 41162  HEAP32[i7 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
 41163  d11 = +HEAPF32[i3 >> 2] - +HEAPF32[i2 >> 2];
 41164  d12 = +HEAPF32[i3 + 4 >> 2] - +HEAPF32[i2 + 4 >> 2];
 41165  d13 = +HEAPF32[i3 + 8 >> 2] - +HEAPF32[i2 + 8 >> 2];
 41166  d14 = 1.0 / +Math_sqrt(+(d11 * d11 + d12 * d12 + d13 * d13));
 41167  d15 = d11 * d14;
 41168  d11 = d12 * d14;
 41169  d12 = d13 * d14;
 41170  if (d15 == 0.0) {
 41171   d16 = 999999984306749400.0;
 41172  } else {
 41173   d16 = 1.0 / d15;
 41175  HEAPF32[i1 + 4 >> 2] = d16;
 41176  if (d11 == 0.0) {
 41177   d17 = 999999984306749400.0;
 41178  } else {
 41179   d17 = 1.0 / d11;
 41181  HEAPF32[i1 + 8 >> 2] = d17;
 41182  if (d12 == 0.0) {
 41183   d18 = 999999984306749400.0;
 41184  } else {
 41185   d18 = 1.0 / d12;
 41187  HEAPF32[i1 + 12 >> 2] = d18;
 41188  HEAP32[i1 + 20 >> 2] = d16 < 0.0;
 41189  HEAP32[i1 + 24 >> 2] = d17 < 0.0;
 41190  HEAP32[i1 + 28 >> 2] = d18 < 0.0;
 41191  HEAPF32[i1 + 32 >> 2] = d15 * (+HEAPF32[i8 >> 2] - +HEAPF32[i6 >> 2]) + d11 * (+HEAPF32[i1 + 56 >> 2] - +HEAPF32[i1 + 40 >> 2]) + d12 * (+HEAPF32[i1 + 60 >> 2] - +HEAPF32[i1 + 44 >> 2]);
 41192  return;
 41194 function __ZN6btDbvt19optimizeIncrementalEi(i1, i2) {
 41195  i1 = i1 | 0;
 41196  i2 = i2 | 0;
 41197  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0;
 41198  i3 = STACKTOP;
 41199  STACKTOP = STACKTOP + 32 | 0;
 41200  if ((i2 | 0) < 0) {
 41201   i4 = HEAP32[i1 + 12 >> 2] | 0;
 41202  } else {
 41203   i4 = i2;
 41205  i2 = i1 | 0;
 41206  i5 = HEAP32[i2 >> 2] | 0;
 41207  if (!((i5 | 0) != 0 & (i4 | 0) > 0)) {
 41208   STACKTOP = i3;
 41209   return;
 41211  i6 = i1 + 16 | 0;
 41212  i7 = i3 | 0;
 41213  i8 = i4;
 41214  i4 = i5;
 41215  while (1) {
 41216   i5 = i4 + 40 | 0;
 41217   L2296 : do {
 41218    if ((HEAP32[i5 >> 2] | 0) == 0) {
 41219     i9 = i4;
 41220    } else {
 41221     i10 = 0;
 41222     i11 = i4;
 41223     i12 = i5;
 41224     while (1) {
 41225      i13 = (HEAP32[i6 >> 2] | 0) >>> (i10 >>> 0) & 1;
 41226      i14 = i11 + 32 | 0;
 41227      i15 = HEAP32[i14 >> 2] | 0;
 41228      if (i15 >>> 0 > i11 >>> 0) {
 41229       i16 = i15 + 40 | 0;
 41230       i17 = (HEAP32[i16 >> 2] | 0) == (i11 | 0) | 0;
 41231       i18 = i17 ^ 1;
 41232       i19 = HEAP32[i15 + 36 + (i18 << 2) >> 2] | 0;
 41233       i20 = i15 + 32 | 0;
 41234       i21 = HEAP32[i20 >> 2] | 0;
 41235       if ((i21 | 0) == 0) {
 41236        HEAP32[i2 >> 2] = i11;
 41237       } else {
 41238        HEAP32[i21 + 36 + (((HEAP32[i21 + 40 >> 2] | 0) == (i15 | 0)) << 2) >> 2] = i11;
 41240       HEAP32[i19 + 32 >> 2] = i11;
 41241       HEAP32[i20 >> 2] = i11;
 41242       HEAP32[i14 >> 2] = i21;
 41243       i21 = i11 + 36 | 0;
 41244       HEAP32[i15 + 36 >> 2] = HEAP32[i21 >> 2];
 41245       HEAP32[i16 >> 2] = HEAP32[i12 >> 2];
 41246       HEAP32[(HEAP32[i21 >> 2] | 0) + 32 >> 2] = i15;
 41247       HEAP32[(HEAP32[i12 >> 2] | 0) + 32 >> 2] = i15;
 41248       HEAP32[i11 + 36 + (i17 << 2) >> 2] = i15;
 41249       HEAP32[i11 + 36 + (i18 << 2) >> 2] = i19;
 41250       i19 = i15;
 41251       _memcpy(i7 | 0, i19 | 0, 32) | 0;
 41252       i18 = i11;
 41253       _memcpy(i19 | 0, i18 | 0, 32) | 0;
 41254       _memcpy(i18 | 0, i7 | 0, 32) | 0;
 41255       i22 = i15;
 41256      } else {
 41257       i22 = i11;
 41259      i15 = HEAP32[i22 + 36 + (i13 << 2) >> 2] | 0;
 41260      i13 = i15 + 40 | 0;
 41261      if ((HEAP32[i13 >> 2] | 0) == 0) {
 41262       i9 = i15;
 41263       break L2296;
 41265      i10 = i10 + 1 & 31;
 41266      i11 = i15;
 41267      i12 = i13;
 41270   } while (0);
 41271   if ((__ZL10removeleafP6btDbvtP10btDbvtNode(i1, i9) | 0) == 0) {
 41272    i23 = 0;
 41273   } else {
 41274    i23 = HEAP32[i2 >> 2] | 0;
 41276   __ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i1, i23, i9);
 41277   HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + 1;
 41278   i5 = i8 - 1 | 0;
 41279   if ((i5 | 0) == 0) {
 41280    break;
 41282   i8 = i5;
 41283   i4 = HEAP32[i2 >> 2] | 0;
 41285  STACKTOP = i3;
 41286  return;
 41288 function __ZN11btRigidBody18saveKinematicStateEf(i1, d2) {
 41289  i1 = i1 | 0;
 41290  d2 = +d2;
 41291  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, d10 = 0.0, d11 = 0.0, d12 = 0.0;
 41292  i3 = STACKTOP;
 41293  STACKTOP = STACKTOP + 24 | 0;
 41294  i4 = i3 | 0;
 41295  i5 = i3 + 16 | 0;
 41296  if (d2 == 0.0) {
 41297   STACKTOP = i3;
 41298   return;
 41300  i6 = HEAP32[i1 + 472 >> 2] | 0;
 41301  if ((i6 | 0) == 0) {
 41302   i7 = i1 + 4 | 0;
 41303  } else {
 41304   i8 = i1 + 4 | 0;
 41305   FUNCTION_TABLE_vii[HEAP32[(HEAP32[i6 >> 2] | 0) + 8 >> 2] & 127](i6, i8);
 41306   i7 = i8;
 41308  i8 = i1 + 68 | 0;
 41309  i6 = i1 + 304 | 0;
 41310  i9 = i1 + 320 | 0;
 41311  d10 = 1.0 / d2;
 41312  d2 = (+HEAPF32[i1 + 56 >> 2] - +HEAPF32[i1 + 120 >> 2]) * d10;
 41313  d11 = d10 * (+HEAPF32[i1 + 60 >> 2] - +HEAPF32[i1 + 124 >> 2]);
 41314  HEAPF32[i6 >> 2] = (+HEAPF32[i1 + 52 >> 2] - +HEAPF32[i1 + 116 >> 2]) * d10;
 41315  HEAPF32[i1 + 308 >> 2] = d2;
 41316  HEAPF32[i1 + 312 >> 2] = d11;
 41317  HEAPF32[i1 + 316 >> 2] = 0.0;
 41318  __ZN15btTransformUtil22calculateDiffAxisAngleERK11btTransformS2_R9btVector3Rf(i8, i7, i4, i5);
 41319  d11 = +HEAPF32[i5 >> 2];
 41320  d2 = d10 * d11 * +HEAPF32[i4 + 4 >> 2];
 41321  d12 = d10 * d11 * +HEAPF32[i4 + 8 >> 2];
 41322  HEAPF32[i9 >> 2] = d10 * +HEAPF32[i4 >> 2] * d11;
 41323  HEAPF32[i1 + 324 >> 2] = d2;
 41324  HEAPF32[i1 + 328 >> 2] = d12;
 41325  HEAPF32[i1 + 332 >> 2] = 0.0;
 41326  i4 = i1 + 132 | 0;
 41327  i5 = i6;
 41328  HEAP32[i4 >> 2] = HEAP32[i5 >> 2];
 41329  HEAP32[i4 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
 41330  HEAP32[i4 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
 41331  HEAP32[i4 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
 41332  i5 = i1 + 148 | 0;
 41333  i4 = i9;
 41334  HEAP32[i5 >> 2] = HEAP32[i4 >> 2];
 41335  HEAP32[i5 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
 41336  HEAP32[i5 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
 41337  HEAP32[i5 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
 41338  i4 = i8;
 41339  i8 = i7;
 41340  HEAP32[i4 >> 2] = HEAP32[i8 >> 2];
 41341  HEAP32[i4 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
 41342  HEAP32[i4 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
 41343  HEAP32[i4 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
 41344  i8 = i1 + 84 | 0;
 41345  i4 = i1 + 20 | 0;
 41346  HEAP32[i8 >> 2] = HEAP32[i4 >> 2];
 41347  HEAP32[i8 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
 41348  HEAP32[i8 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
 41349  HEAP32[i8 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
 41350  i4 = i1 + 100 | 0;
 41351  i8 = i1 + 36 | 0;
 41352  HEAP32[i4 >> 2] = HEAP32[i8 >> 2];
 41353  HEAP32[i4 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
 41354  HEAP32[i4 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
 41355  HEAP32[i4 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
 41356  i8 = i1 + 116 | 0;
 41357  i4 = i1 + 52 | 0;
 41358  HEAP32[i8 >> 2] = HEAP32[i4 >> 2];
 41359  HEAP32[i8 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
 41360  HEAP32[i8 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
 41361  HEAP32[i8 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
 41362  STACKTOP = i3;
 41363  return;
 41365 function __ZN12gjkepa2_impl3EPA6expandEjPNS_3GJK3sSVEPNS0_5sFaceEjRNS0_8sHorizonE(i1, i2, i3, i4, i5, i6) {
 41366  i1 = i1 | 0;
 41367  i2 = i2 | 0;
 41368  i3 = i3 | 0;
 41369  i4 = i4 | 0;
 41370  i5 = i5 | 0;
 41371  i6 = i6 | 0;
 41372  var i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
 41373  i7 = i4 + 59 | 0;
 41374  if ((HEAPU8[i7] | 0 | 0) == (i2 | 0)) {
 41375   i8 = 0;
 41376   return i8 | 0;
 41378  i9 = HEAP32[1360 + (i5 << 2) >> 2] | 0;
 41379  if (+HEAPF32[i4 >> 2] * +HEAPF32[i3 + 16 >> 2] + +HEAPF32[i4 + 4 >> 2] * +HEAPF32[i3 + 20 >> 2] + +HEAPF32[i4 + 8 >> 2] * +HEAPF32[i3 + 24 >> 2] - +HEAPF32[i4 + 16 >> 2] < -9999999747378752.0e-21) {
 41380   i10 = __ZN12gjkepa2_impl3EPA7newfaceEPNS_3GJK3sSVES3_S3_b(i1, HEAP32[i4 + 24 + (i9 << 2) >> 2] | 0, HEAP32[i4 + 24 + (i5 << 2) >> 2] | 0, i3, 0) | 0;
 41381   if ((i10 | 0) == 0) {
 41382    i8 = 0;
 41383    return i8 | 0;
 41385   HEAP8[i10 + 56 | 0] = i5 & 255;
 41386   HEAP32[i10 + 36 >> 2] = i4;
 41387   HEAP8[i4 + 56 + i5 | 0] = 0;
 41388   HEAP32[i4 + 36 + (i5 << 2) >> 2] = i10;
 41389   i11 = i6 | 0;
 41390   i12 = HEAP32[i11 >> 2] | 0;
 41391   if ((i12 | 0) == 0) {
 41392    HEAP32[i6 + 4 >> 2] = i10;
 41393   } else {
 41394    HEAP8[i12 + 57 | 0] = 2;
 41395    HEAP32[i12 + 40 >> 2] = i10;
 41396    HEAP8[i10 + 58 | 0] = 1;
 41397    HEAP32[i10 + 44 >> 2] = i12;
 41399   HEAP32[i11 >> 2] = i10;
 41400   i10 = i6 + 8 | 0;
 41401   HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) + 1;
 41402   i8 = 1;
 41403   return i8 | 0;
 41405  i10 = HEAP32[1344 + (i5 << 2) >> 2] | 0;
 41406  HEAP8[i7] = i2 & 255;
 41407  if (!(__ZN12gjkepa2_impl3EPA6expandEjPNS_3GJK3sSVEPNS0_5sFaceEjRNS0_8sHorizonE(i1, i2, i3, HEAP32[i4 + 36 + (i9 << 2) >> 2] | 0, HEAPU8[i4 + 56 + i9 | 0] | 0, i6) | 0)) {
 41408   i8 = 0;
 41409   return i8 | 0;
 41411  if (!(__ZN12gjkepa2_impl3EPA6expandEjPNS_3GJK3sSVEPNS0_5sFaceEjRNS0_8sHorizonE(i1, i2, i3, HEAP32[i4 + 36 + (i10 << 2) >> 2] | 0, HEAPU8[i4 + 56 + i10 | 0] | 0, i6) | 0)) {
 41412   i8 = 0;
 41413   return i8 | 0;
 41415  i6 = i4 + 52 | 0;
 41416  i10 = HEAP32[i6 >> 2] | 0;
 41417  i3 = i4 + 48 | 0;
 41418  if ((i10 | 0) != 0) {
 41419   HEAP32[i10 + 48 >> 2] = HEAP32[i3 >> 2];
 41421  i10 = HEAP32[i3 >> 2] | 0;
 41422  if ((i10 | 0) != 0) {
 41423   HEAP32[i10 + 52 >> 2] = HEAP32[i6 >> 2];
 41425  i10 = i1 + 9792 | 0;
 41426  if ((HEAP32[i10 >> 2] | 0) == (i4 | 0)) {
 41427   HEAP32[i10 >> 2] = HEAP32[i6 >> 2];
 41429  i10 = i1 + 9796 | 0;
 41430  HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) - 1;
 41431  HEAP32[i3 >> 2] = 0;
 41432  i3 = i1 + 9800 | 0;
 41433  HEAP32[i6 >> 2] = HEAP32[i3 >> 2];
 41434  i6 = HEAP32[i3 >> 2] | 0;
 41435  if ((i6 | 0) != 0) {
 41436   HEAP32[i6 + 48 >> 2] = i4;
 41438  HEAP32[i3 >> 2] = i4;
 41439  i4 = i1 + 9804 | 0;
 41440  HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + 1;
 41441  i8 = 1;
 41442  return i8 | 0;
 41444 function __ZN30btGjkEpaPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAlloc(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11) {
 41445  i1 = i1 | 0;
 41446  i2 = i2 | 0;
 41447  i3 = i3 | 0;
 41448  i4 = i4 | 0;
 41449  i5 = i5 | 0;
 41450  i6 = i6 | 0;
 41451  i7 = i7 | 0;
 41452  i8 = i8 | 0;
 41453  i9 = i9 | 0;
 41454  i10 = i10 | 0;
 41455  i11 = i11 | 0;
 41456  var d12 = 0.0, d13 = 0.0, i14 = 0, i15 = 0;
 41457  i11 = STACKTOP;
 41458  STACKTOP = STACKTOP + 72 | 0;
 41459  i10 = i11 | 0;
 41460  i2 = i11 + 16 | 0;
 41461  d12 = +HEAPF32[i5 + 52 >> 2] - +HEAPF32[i6 + 52 >> 2];
 41462  d13 = +HEAPF32[i5 + 56 >> 2] - +HEAPF32[i6 + 56 >> 2];
 41463  HEAPF32[i10 >> 2] = +HEAPF32[i5 + 48 >> 2] - +HEAPF32[i6 + 48 >> 2];
 41464  HEAPF32[i10 + 4 >> 2] = d12;
 41465  HEAPF32[i10 + 8 >> 2] = d13;
 41466  HEAPF32[i10 + 12 >> 2] = 0.0;
 41467  if (__ZN15btGjkEpaSolver211PenetrationEPK13btConvexShapeRK11btTransformS2_S5_RK9btVector3RNS_8sResultsEb(i3, i5, i4, i6, i10, i2, 1) | 0) {
 41468   i1 = i8;
 41469   i14 = i2 + 4 | 0;
 41470   HEAP32[i1 >> 2] = HEAP32[i14 >> 2];
 41471   HEAP32[i1 + 4 >> 2] = HEAP32[i14 + 4 >> 2];
 41472   HEAP32[i1 + 8 >> 2] = HEAP32[i14 + 8 >> 2];
 41473   HEAP32[i1 + 12 >> 2] = HEAP32[i14 + 12 >> 2];
 41474   i14 = i9;
 41475   i1 = i2 + 20 | 0;
 41476   HEAP32[i14 >> 2] = HEAP32[i1 >> 2];
 41477   HEAP32[i14 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
 41478   HEAP32[i14 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
 41479   HEAP32[i14 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
 41480   i1 = i7;
 41481   i14 = i2 + 36 | 0;
 41482   HEAP32[i1 >> 2] = HEAP32[i14 >> 2];
 41483   HEAP32[i1 + 4 >> 2] = HEAP32[i14 + 4 >> 2];
 41484   HEAP32[i1 + 8 >> 2] = HEAP32[i14 + 8 >> 2];
 41485   HEAP32[i1 + 12 >> 2] = HEAP32[i14 + 12 >> 2];
 41486   i15 = 1;
 41487   STACKTOP = i11;
 41488   return i15 | 0;
 41490  if (!(__ZN15btGjkEpaSolver28DistanceEPK13btConvexShapeRK11btTransformS2_S5_RK9btVector3RNS_8sResultsE(i3, i5, i4, i6, i10, i2) | 0)) {
 41491   i15 = 0;
 41492   STACKTOP = i11;
 41493   return i15 | 0;
 41495  i10 = i8;
 41496  i8 = i2 + 4 | 0;
 41497  HEAP32[i10 >> 2] = HEAP32[i8 >> 2];
 41498  HEAP32[i10 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
 41499  HEAP32[i10 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
 41500  HEAP32[i10 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
 41501  i8 = i9;
 41502  i9 = i2 + 20 | 0;
 41503  HEAP32[i8 >> 2] = HEAP32[i9 >> 2];
 41504  HEAP32[i8 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
 41505  HEAP32[i8 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
 41506  HEAP32[i8 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
 41507  i9 = i7;
 41508  i7 = i2 + 36 | 0;
 41509  HEAP32[i9 >> 2] = HEAP32[i7 >> 2];
 41510  HEAP32[i9 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
 41511  HEAP32[i9 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
 41512  HEAP32[i9 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
 41513  i15 = 0;
 41514  STACKTOP = i11;
 41515  return i15 | 0;
 41517 function __ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallback15processTriangleEP9btVector3ii(i1, i2, i3, i4) {
 41518  i1 = i1 | 0;
 41519  i2 = i2 | 0;
 41520  i3 = i3 | 0;
 41521  i4 = i4 | 0;
 41522  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, d12 = 0.0, i13 = 0, i14 = 0, i15 = 0;
 41523  i4 = STACKTOP;
 41524  STACKTOP = STACKTOP + 776 | 0;
 41525  i3 = i4 | 0;
 41526  i5 = i4 + 64 | 0;
 41527  i6 = i4 + 240 | 0;
 41528  i7 = i4 + 296 | 0;
 41529  i8 = i4 + 400 | 0;
 41530  i9 = i4 + 760 | 0;
 41531  HEAPF32[i3 >> 2] = 1.0;
 41532  _memset(i3 + 4 | 0, 0, 16);
 41533  HEAPF32[i3 + 20 >> 2] = 1.0;
 41534  _memset(i3 + 24 | 0, 0, 16);
 41535  HEAPF32[i3 + 40 >> 2] = 1.0;
 41536  _memset(i3 + 44 | 0, 0, 20);
 41537  HEAP32[i5 >> 2] = 2280;
 41538  i10 = i5 + 164 | 0;
 41539  HEAP32[i5 + 168 >> 2] = 0;
 41540  HEAPF32[i5 + 172 >> 2] = 0.0;
 41541  i11 = i1 + 200 | 0;
 41542  HEAPF32[i10 >> 2] = +HEAPF32[i11 >> 2];
 41543  d12 = +HEAPF32[i1 + 196 >> 2];
 41544  __ZN21btConvexInternalShapeC2Ev(i6 | 0);
 41545  HEAP32[i6 >> 2] = 4728;
 41546  HEAP32[i6 + 4 >> 2] = 8;
 41547  HEAPF32[i6 + 28 >> 2] = d12;
 41548  HEAPF32[i6 + 44 >> 2] = d12;
 41549  i13 = i7 | 0;
 41550  __ZN23btPolyhedralConvexShapeC2Ev(i13);
 41551  HEAP32[i7 >> 2] = 4560;
 41552  HEAP32[i7 + 4 >> 2] = 1;
 41553  i14 = i7 + 56 | 0;
 41554  i15 = i2;
 41555  HEAP32[i14 >> 2] = HEAP32[i15 >> 2];
 41556  HEAP32[i14 + 4 >> 2] = HEAP32[i15 + 4 >> 2];
 41557  HEAP32[i14 + 8 >> 2] = HEAP32[i15 + 8 >> 2];
 41558  HEAP32[i14 + 12 >> 2] = HEAP32[i15 + 12 >> 2];
 41559  i15 = i7 + 72 | 0;
 41560  i14 = i2 + 16 | 0;
 41561  HEAP32[i15 >> 2] = HEAP32[i14 >> 2];
 41562  HEAP32[i15 + 4 >> 2] = HEAP32[i14 + 4 >> 2];
 41563  HEAP32[i15 + 8 >> 2] = HEAP32[i14 + 8 >> 2];
 41564  HEAP32[i15 + 12 >> 2] = HEAP32[i14 + 12 >> 2];
 41565  i14 = i7 + 88 | 0;
 41566  i15 = i2 + 32 | 0;
 41567  HEAP32[i14 >> 2] = HEAP32[i15 >> 2];
 41568  HEAP32[i14 + 4 >> 2] = HEAP32[i15 + 4 >> 2];
 41569  HEAP32[i14 + 8 >> 2] = HEAP32[i15 + 8 >> 2];
 41570  HEAP32[i14 + 12 >> 2] = HEAP32[i15 + 12 >> 2];
 41571  HEAPF32[i8 + 308 >> 2] = 9999999747378752.0e-20;
 41572  HEAP16[i8 + 332 >> 1] = 0;
 41573  i15 = i6 | 0;
 41574  __ZN22btSubsimplexConvexCastC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolver(i9, i15, i7 | 0, i8);
 41575  do {
 41576   if (__ZN22btSubsimplexConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE(i9, i1 + 4 | 0, i1 + 68 | 0, i3, i3, i5) | 0) {
 41577    d12 = +HEAPF32[i10 >> 2];
 41578    if (+HEAPF32[i11 >> 2] <= d12) {
 41579     break;
 41581    HEAPF32[i11 >> 2] = d12;
 41583  } while (0);
 41584  __ZN12btConvexCastD2Ev(i9 | 0);
 41585  __ZN23btPolyhedralConvexShapeD2Ev(i13);
 41586  __ZN13btConvexShapeD2Ev(i15);
 41587  STACKTOP = i4;
 41588  return;
 41590 function __ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i1, i2, i3, d4, i5) {
 41591  i1 = i1 | 0;
 41592  i2 = i2 | 0;
 41593  i3 = i3 | 0;
 41594  d4 = +d4;
 41595  i5 = i5 | 0;
 41596  var i6 = 0, i7 = 0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0;
 41597  i6 = STACKTOP;
 41598  STACKTOP = STACKTOP + 16 | 0;
 41599  i7 = i6 | 0;
 41600  d8 = +HEAPF32[i2 + 4 >> 2] * d4 + +HEAPF32[i1 + 52 >> 2];
 41601  d9 = +HEAPF32[i2 + 8 >> 2] * d4 + +HEAPF32[i1 + 56 >> 2];
 41602  HEAPF32[i5 + 48 >> 2] = +HEAPF32[i2 >> 2] * d4 + +HEAPF32[i1 + 48 >> 2];
 41603  HEAPF32[i5 + 52 >> 2] = d8;
 41604  HEAPF32[i5 + 56 >> 2] = d9;
 41605  HEAPF32[i5 + 60 >> 2] = 0.0;
 41606  d9 = +HEAPF32[i3 >> 2];
 41607  d8 = +HEAPF32[i3 + 4 >> 2];
 41608  d10 = +HEAPF32[i3 + 8 >> 2];
 41609  d11 = +Math_sqrt(+(d9 * d9 + d8 * d8 + d10 * d10));
 41610  if (d11 * d4 > .7853981852531433) {
 41611   d12 = .7853981852531433 / d4;
 41612  } else {
 41613   d12 = d11;
 41615  if (d12 < .0010000000474974513) {
 41616   d13 = d4 * .5 - d12 * d4 * d4 * d4 * .02083333395421505 * d12;
 41617  } else {
 41618   d13 = +Math_sin(+(d12 * .5 * d4)) / d12;
 41620  d11 = d9 * d13;
 41621  d9 = d8 * d13;
 41622  d8 = d10 * d13;
 41623  d13 = +Math_cos(+(d12 * d4 * .5));
 41624  __ZNK11btMatrix3x311getRotationER12btQuaternion(i1 | 0, i7);
 41625  d4 = +HEAPF32[i7 >> 2];
 41626  d12 = +HEAPF32[i7 + 12 >> 2];
 41627  d10 = +HEAPF32[i7 + 8 >> 2];
 41628  d14 = +HEAPF32[i7 + 4 >> 2];
 41629  d15 = d13 * d4 + d11 * d12 + d9 * d10 - d8 * d14;
 41630  d16 = d8 * d4 + (d9 * d12 + d13 * d14) - d11 * d10;
 41631  d17 = d8 * d12 + d13 * d10 + d11 * d14 - d9 * d4;
 41632  d18 = d13 * d12 - d11 * d4 - d9 * d14 - d8 * d10;
 41633  d10 = 1.0 / +Math_sqrt(+(d18 * d18 + (d17 * d17 + (d15 * d15 + d16 * d16))));
 41634  d8 = d15 * d10;
 41635  d15 = d10 * d16;
 41636  d16 = d10 * d17;
 41637  d17 = d10 * d18;
 41638  d18 = 2.0 / (d17 * d17 + (d16 * d16 + (d8 * d8 + d15 * d15)));
 41639  d10 = d8 * d18;
 41640  d14 = d18 * d15;
 41641  d9 = d18 * d16;
 41642  d18 = d17 * d10;
 41643  d4 = d17 * d14;
 41644  d11 = d17 * d9;
 41645  d17 = d8 * d10;
 41646  d10 = d8 * d14;
 41647  d12 = d8 * d9;
 41648  d8 = d15 * d14;
 41649  d14 = d15 * d9;
 41650  d15 = d16 * d9;
 41651  HEAPF32[i5 >> 2] = 1.0 - (d15 + d8);
 41652  HEAPF32[i5 + 4 >> 2] = d10 - d11;
 41653  HEAPF32[i5 + 8 >> 2] = d12 + d4;
 41654  HEAPF32[i5 + 12 >> 2] = 0.0;
 41655  HEAPF32[i5 + 16 >> 2] = d11 + d10;
 41656  HEAPF32[i5 + 20 >> 2] = 1.0 - (d17 + d15);
 41657  HEAPF32[i5 + 24 >> 2] = d14 - d18;
 41658  HEAPF32[i5 + 28 >> 2] = 0.0;
 41659  HEAPF32[i5 + 32 >> 2] = d12 - d4;
 41660  HEAPF32[i5 + 36 >> 2] = d18 + d14;
 41661  HEAPF32[i5 + 40 >> 2] = 1.0 - (d17 + d8);
 41662  HEAPF32[i5 + 44 >> 2] = 0.0;
 41663  STACKTOP = i6;
 41664  return;
 41666 function __ZL10removeleafP6btDbvtP10btDbvtNode(i1, i2) {
 41667  i1 = i1 | 0;
 41668  i2 = i2 | 0;
 41669  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, i12 = 0, d13 = 0.0, i14 = 0, d15 = 0.0, i16 = 0, i17 = 0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, i26 = 0;
 41670  i3 = i1 | 0;
 41671  if ((HEAP32[i3 >> 2] | 0) == (i2 | 0)) {
 41672   HEAP32[i3 >> 2] = 0;
 41673   i4 = 0;
 41674   return i4 | 0;
 41676  i5 = HEAP32[i2 + 32 >> 2] | 0;
 41677  i6 = HEAP32[i5 + 32 >> 2] | 0;
 41678  i7 = HEAP32[i5 + 36 + (((HEAP32[i5 + 40 >> 2] | 0) != (i2 | 0)) << 2) >> 2] | 0;
 41679  if ((i6 | 0) == 0) {
 41680   HEAP32[i3 >> 2] = i7;
 41681   HEAP32[i7 + 32 >> 2] = 0;
 41682   i2 = i1 + 4 | 0;
 41683   __Z21btAlignedFreeInternalPv(HEAP32[i2 >> 2] | 0);
 41684   HEAP32[i2 >> 2] = i5;
 41685   i4 = HEAP32[i3 >> 2] | 0;
 41686   return i4 | 0;
 41688  HEAP32[i6 + 36 + (((HEAP32[i6 + 40 >> 2] | 0) == (i5 | 0)) << 2) >> 2] = i7;
 41689  HEAP32[i7 + 32 >> 2] = i6;
 41690  i7 = i1 + 4 | 0;
 41691  __Z21btAlignedFreeInternalPv(HEAP32[i7 >> 2] | 0);
 41692  HEAP32[i7 >> 2] = i5;
 41693  i5 = i6;
 41694  do {
 41695   i6 = i5 | 0;
 41696   d8 = +HEAPF32[i6 >> 2];
 41697   i7 = i5 + 4 | 0;
 41698   d9 = +HEAPF32[i7 >> 2];
 41699   i1 = i5 + 8 | 0;
 41700   d10 = +HEAPF32[i1 >> 2];
 41701   i2 = i5 + 16 | 0;
 41702   d11 = +HEAPF32[i2 >> 2];
 41703   i12 = i5 + 20 | 0;
 41704   d13 = +HEAPF32[i12 >> 2];
 41705   i14 = i5 + 24 | 0;
 41706   d15 = +HEAPF32[i14 >> 2];
 41707   i16 = HEAP32[i5 + 36 >> 2] | 0;
 41708   i17 = HEAP32[i5 + 40 >> 2] | 0;
 41709   d18 = +HEAPF32[i16 >> 2];
 41710   d19 = +HEAPF32[i17 >> 2];
 41711   d20 = d18 < d19 ? d18 : d19;
 41712   HEAPF32[i6 >> 2] = d20;
 41713   d19 = +HEAPF32[i16 + 16 >> 2];
 41714   d18 = +HEAPF32[i17 + 16 >> 2];
 41715   d21 = d19 > d18 ? d19 : d18;
 41716   HEAPF32[i2 >> 2] = d21;
 41717   d18 = +HEAPF32[i16 + 4 >> 2];
 41718   d19 = +HEAPF32[i17 + 4 >> 2];
 41719   d22 = d18 < d19 ? d18 : d19;
 41720   HEAPF32[i7 >> 2] = d22;
 41721   d19 = +HEAPF32[i16 + 20 >> 2];
 41722   d18 = +HEAPF32[i17 + 20 >> 2];
 41723   d23 = d19 > d18 ? d19 : d18;
 41724   HEAPF32[i12 >> 2] = d23;
 41725   d18 = +HEAPF32[i16 + 8 >> 2];
 41726   d19 = +HEAPF32[i17 + 8 >> 2];
 41727   d24 = d18 < d19 ? d18 : d19;
 41728   HEAPF32[i1 >> 2] = d24;
 41729   d19 = +HEAPF32[i16 + 24 >> 2];
 41730   d18 = +HEAPF32[i17 + 24 >> 2];
 41731   d25 = d19 > d18 ? d19 : d18;
 41732   HEAPF32[i14 >> 2] = d25;
 41733   if (!(d8 != d20 | d9 != d22 | d10 != d24 | d11 != d21)) {
 41734    if (!(d13 != d23 | d15 != d25)) {
 41735     i4 = i5;
 41736     i26 = 1994;
 41737     break;
 41740   i5 = HEAP32[i5 + 32 >> 2] | 0;
 41741  } while ((i5 | 0) != 0);
 41742  if ((i26 | 0) == 1994) {
 41743   return i4 | 0;
 41745  i4 = HEAP32[i3 >> 2] | 0;
 41746  return i4 | 0;
 41748 function __ZN6btDbvt6updateEP10btDbvtNodeR12btDbvtAabbMmRK9btVector3f(i1, i2, i3, i4, d5) {
 41749  i1 = i1 | 0;
 41750  i2 = i2 | 0;
 41751  i3 = i3 | 0;
 41752  i4 = i4 | 0;
 41753  d5 = +d5;
 41754  var i6 = 0, d7 = 0.0, d8 = 0.0, d9 = 0.0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, d14 = 0.0, i15 = 0, d16 = 0.0, i17 = 0, d18 = 0.0, i19 = 0, i20 = 0, i21 = 0;
 41755  i6 = i3 | 0;
 41756  d7 = +HEAPF32[i6 >> 2];
 41757  do {
 41758   if (+HEAPF32[i2 >> 2] > d7) {
 41759    d8 = +HEAPF32[i3 + 4 >> 2];
 41760   } else {
 41761    d9 = +HEAPF32[i3 + 4 >> 2];
 41762    if (+HEAPF32[i2 + 4 >> 2] > d9) {
 41763     d8 = d9;
 41764     break;
 41766    if (+HEAPF32[i2 + 8 >> 2] > +HEAPF32[i3 + 8 >> 2]) {
 41767     d8 = d9;
 41768     break;
 41770    if (+HEAPF32[i2 + 16 >> 2] < +HEAPF32[i3 + 16 >> 2]) {
 41771     d8 = d9;
 41772     break;
 41774    if (+HEAPF32[i2 + 20 >> 2] < +HEAPF32[i3 + 20 >> 2]) {
 41775     d8 = d9;
 41776     break;
 41778    if (+HEAPF32[i2 + 24 >> 2] < +HEAPF32[i3 + 24 >> 2]) {
 41779     d8 = d9;
 41780     break;
 41781    } else {
 41782     i10 = 0;
 41784    return i10 | 0;
 41786  } while (0);
 41787  d9 = d7 - d5;
 41788  HEAPF32[i6 >> 2] = d9;
 41789  i11 = i3 + 4 | 0;
 41790  d7 = d8 - d5;
 41791  HEAPF32[i11 >> 2] = d7;
 41792  i12 = i3 + 8 | 0;
 41793  d8 = +HEAPF32[i12 >> 2] - d5;
 41794  HEAPF32[i12 >> 2] = d8;
 41795  i13 = i3 + 16 | 0;
 41796  d14 = +HEAPF32[i13 >> 2] + d5;
 41797  HEAPF32[i13 >> 2] = d14;
 41798  i15 = i3 + 20 | 0;
 41799  d16 = +HEAPF32[i15 >> 2] + d5;
 41800  HEAPF32[i15 >> 2] = d16;
 41801  i17 = i3 + 24 | 0;
 41802  d18 = +HEAPF32[i17 >> 2] + d5;
 41803  HEAPF32[i17 >> 2] = d18;
 41804  d5 = +HEAPF32[i4 >> 2];
 41805  if (d5 > 0.0) {
 41806   HEAPF32[i13 >> 2] = d14 + d5;
 41807  } else {
 41808   HEAPF32[i6 >> 2] = d9 + d5;
 41810  d5 = +HEAPF32[i4 + 4 >> 2];
 41811  if (d5 > 0.0) {
 41812   HEAPF32[i15 >> 2] = d16 + d5;
 41813  } else {
 41814   HEAPF32[i11 >> 2] = d7 + d5;
 41816  d5 = +HEAPF32[i4 + 8 >> 2];
 41817  if (d5 > 0.0) {
 41818   HEAPF32[i17 >> 2] = d18 + d5;
 41819  } else {
 41820   HEAPF32[i12 >> 2] = d8 + d5;
 41822  i12 = __ZL10removeleafP6btDbvtP10btDbvtNode(i1, i2) | 0;
 41823  L2399 : do {
 41824   if ((i12 | 0) == 0) {
 41825    i19 = 0;
 41826   } else {
 41827    i17 = HEAP32[i1 + 8 >> 2] | 0;
 41828    if ((i17 | 0) > -1) {
 41829     i20 = 0;
 41830     i21 = i12;
 41831    } else {
 41832     i19 = HEAP32[i1 >> 2] | 0;
 41833     break;
 41835    while (1) {
 41836     if ((i20 | 0) >= (i17 | 0)) {
 41837      i19 = i21;
 41838      break L2399;
 41840     i4 = HEAP32[i21 + 32 >> 2] | 0;
 41841     if ((i4 | 0) == 0) {
 41842      i19 = i21;
 41843      break;
 41844     } else {
 41845      i20 = i20 + 1 | 0;
 41846      i21 = i4;
 41850  } while (0);
 41851  i21 = i2;
 41852  i20 = i3;
 41853  _memcpy(i21 | 0, i20 | 0, 32) | 0;
 41854  __ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i1, i19, i2);
 41855  i10 = 1;
 41856  return i10 | 0;
 41858 function __ZN23btDiscreteDynamicsWorld21updateActivationStateEf(i1, d2) {
 41859  i1 = i1 | 0;
 41860  d2 = +d2;
 41861  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, i18 = 0, i19 = 0;
 41862  __ZN15CProfileManager13Start_ProfileEPKc(312);
 41863  i3 = i1 + 204 | 0;
 41864  if ((HEAP32[i3 >> 2] | 0) <= 0) {
 41865   __ZN15CProfileManager12Stop_ProfileEv();
 41866   return;
 41868  i4 = i1 + 212 | 0;
 41869  i1 = 0;
 41870  do {
 41871   i5 = HEAP32[(HEAP32[i4 >> 2] | 0) + (i1 << 2) >> 2] | 0;
 41872   L390 : do {
 41873    if ((i5 | 0) != 0) {
 41874     i6 = i5 | 0;
 41875     i7 = i5 + 216 | 0;
 41876     i8 = HEAP32[i7 >> 2] | 0;
 41877     L392 : do {
 41878      if ((i8 | 0) == 2 | (i8 | 0) == 4) {
 41879       i9 = i8;
 41880      } else {
 41881       d10 = +HEAPF32[i5 + 304 >> 2];
 41882       d11 = +HEAPF32[i5 + 308 >> 2];
 41883       d12 = +HEAPF32[i5 + 312 >> 2];
 41884       d13 = +HEAPF32[i5 + 464 >> 2];
 41885       do {
 41886        if (d10 * d10 + d11 * d11 + d12 * d12 < d13 * d13) {
 41887         d14 = +HEAPF32[i5 + 320 >> 2];
 41888         d15 = +HEAPF32[i5 + 324 >> 2];
 41889         d16 = +HEAPF32[i5 + 328 >> 2];
 41890         d17 = +HEAPF32[i5 + 468 >> 2];
 41891         if (d14 * d14 + d15 * d15 + d16 * d16 >= d17 * d17) {
 41892          break;
 41894         i18 = i5 + 220 | 0;
 41895         HEAPF32[i18 >> 2] = +HEAPF32[i18 >> 2] + d2;
 41896         i9 = i8;
 41897         break L392;
 41899       } while (0);
 41900       HEAPF32[i5 + 220 >> 2] = 0.0;
 41901       __ZN17btCollisionObject18setActivationStateEi(i6, 0);
 41902       i9 = HEAP32[i7 >> 2] | 0;
 41904     } while (0);
 41905     if ((i9 | 0) == 4) {
 41906      break;
 41908     d13 = +HEAPF32[2];
 41909     do {
 41910      if (!((HEAP8[12016] | 0) != 0 | d13 == 0.0)) {
 41911       if ((i9 - 2 | 0) >>> 0 >= 2) {
 41912        if (+HEAPF32[i5 + 220 >> 2] <= d13) {
 41913         break;
 41916       if ((HEAP32[i5 + 204 >> 2] & 3 | 0) != 0) {
 41917        __ZN17btCollisionObject18setActivationStateEi(i6, 2);
 41918        break L390;
 41920       if ((i9 | 0) == 1) {
 41921        __ZN17btCollisionObject18setActivationStateEi(i6, 3);
 41922        i19 = HEAP32[i7 >> 2] | 0;
 41923       } else {
 41924        i19 = i9;
 41926       if ((i19 | 0) != 2) {
 41927        break L390;
 41929       _memset(i5 + 304 | 0, 0, 32);
 41930       break L390;
 41932     } while (0);
 41933     __ZN17btCollisionObject18setActivationStateEi(i6, 1);
 41935   } while (0);
 41936   i1 = i1 + 1 | 0;
 41937  } while ((i1 | 0) < (HEAP32[i3 >> 2] | 0));
 41938  __ZN15CProfileManager12Stop_ProfileEv();
 41939  return;
 41941 function __ZN20btAlignedObjectArrayIN20btConvexHullInternal7Point32EE17quickSortInternalIPFbRKS1_S5_EEEvT_ii(i1, i2, i3, i4) {
 41942  i1 = i1 | 0;
 41943  i2 = i2 | 0;
 41944  i3 = i3 | 0;
 41945  i4 = i4 | 0;
 41946  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0;
 41947  i5 = STACKTOP;
 41948  STACKTOP = STACKTOP + 32 | 0;
 41949  i6 = i5 + 16 | 0;
 41950  i7 = i1 + 12 | 0;
 41951  i8 = i6;
 41952  i9 = (HEAP32[i7 >> 2] | 0) + (((i4 + i3 | 0) / 2 | 0) << 4) | 0;
 41953  HEAP32[i8 >> 2] = HEAP32[i9 >> 2];
 41954  HEAP32[i8 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
 41955  HEAP32[i8 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
 41956  HEAP32[i8 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
 41957  i9 = i5 | 0;
 41958  i8 = i4;
 41959  i10 = i3;
 41960  while (1) {
 41961   i11 = i10;
 41962   while (1) {
 41963    i12 = i11 + 1 | 0;
 41964    if (FUNCTION_TABLE_iii[i2 & 63]((HEAP32[i7 >> 2] | 0) + (i11 << 4) | 0, i6) | 0) {
 41965     i11 = i12;
 41966    } else {
 41967     i13 = i8;
 41968     break;
 41971   while (1) {
 41972    i14 = i13 - 1 | 0;
 41973    if (FUNCTION_TABLE_iii[i2 & 63](i6, (HEAP32[i7 >> 2] | 0) + (i13 << 4) | 0) | 0) {
 41974     i13 = i14;
 41975    } else {
 41976     break;
 41979   if ((i11 | 0) > (i13 | 0)) {
 41980    i15 = i13;
 41981    i16 = i11;
 41982   } else {
 41983    i17 = HEAP32[i7 >> 2] | 0;
 41984    i18 = i17 + (i11 << 4) | 0;
 41985    HEAP32[i9 >> 2] = HEAP32[i18 >> 2];
 41986    HEAP32[i9 + 4 >> 2] = HEAP32[i18 + 4 >> 2];
 41987    HEAP32[i9 + 8 >> 2] = HEAP32[i18 + 8 >> 2];
 41988    HEAP32[i9 + 12 >> 2] = HEAP32[i18 + 12 >> 2];
 41989    i19 = i17 + (i13 << 4) | 0;
 41990    HEAP32[i18 >> 2] = HEAP32[i19 >> 2];
 41991    HEAP32[i18 + 4 >> 2] = HEAP32[i19 + 4 >> 2];
 41992    HEAP32[i18 + 8 >> 2] = HEAP32[i19 + 8 >> 2];
 41993    HEAP32[i18 + 12 >> 2] = HEAP32[i19 + 12 >> 2];
 41994    i19 = (HEAP32[i7 >> 2] | 0) + (i13 << 4) | 0;
 41995    HEAP32[i19 >> 2] = HEAP32[i9 >> 2];
 41996    HEAP32[i19 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
 41997    HEAP32[i19 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
 41998    HEAP32[i19 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
 41999    i15 = i14;
 42000    i16 = i12;
 42002   if ((i16 | 0) > (i15 | 0)) {
 42003    break;
 42004   } else {
 42005    i8 = i15;
 42006    i10 = i16;
 42009  if ((i15 | 0) > (i3 | 0)) {
 42010   __ZN20btAlignedObjectArrayIN20btConvexHullInternal7Point32EE17quickSortInternalIPFbRKS1_S5_EEEvT_ii(i1, i2, i3, i15);
 42012  if ((i16 | 0) >= (i4 | 0)) {
 42013   STACKTOP = i5;
 42014   return;
 42016  __ZN20btAlignedObjectArrayIN20btConvexHullInternal7Point32EE17quickSortInternalIPFbRKS1_S5_EEEvT_ii(i1, i2, i16, i4);
 42017  STACKTOP = i5;
 42018  return;
 42020 function __ZN23btDiscreteDynamicsWorldC2EP12btDispatcherP21btBroadphaseInterfaceP18btConstraintSolverP24btCollisionConfiguration(i1, i2, i3, i4, i5) {
 42021  i1 = i1 | 0;
 42022  i2 = i2 | 0;
 42023  i3 = i3 | 0;
 42024  i4 = i4 | 0;
 42025  i5 = i5 | 0;
 42026  var i6 = 0, i7 = 0, i8 = 0, i9 = 0;
 42027  __ZN16btCollisionWorldC2EP12btDispatcherP21btBroadphaseInterfaceP24btCollisionConfiguration(i1 | 0, i2, i3, i5);
 42028  HEAP32[i1 + 88 >> 2] = 0;
 42029  HEAP32[i1 + 92 >> 2] = 0;
 42030  HEAP32[i1 + 96 >> 2] = 0;
 42031  HEAPF32[i1 + 100 >> 2] = .6000000238418579;
 42032  HEAPF32[i1 + 104 >> 2] = 1.0;
 42033  HEAPF32[i1 + 108 >> 2] = .30000001192092896;
 42034  HEAPF32[i1 + 116 >> 2] = 0.0;
 42035  HEAPF32[i1 + 124 >> 2] = 20.0;
 42036  HEAP32[i1 + 120 >> 2] = 10;
 42037  HEAPF32[i1 + 132 >> 2] = .20000000298023224;
 42038  HEAPF32[i1 + 136 >> 2] = .10000000149011612;
 42039  HEAPF32[i1 + 140 >> 2] = 0.0;
 42040  HEAPF32[i1 + 128 >> 2] = 1.0;
 42041  HEAP32[i1 + 144 >> 2] = 0;
 42042  HEAPF32[i1 + 148 >> 2] = -.019999999552965164;
 42043  HEAPF32[i1 + 152 >> 2] = 0.0;
 42044  HEAPF32[i1 + 156 >> 2] = .8500000238418579;
 42045  HEAP32[i1 + 160 >> 2] = 260;
 42046  HEAP32[i1 + 164 >> 2] = 2;
 42047  HEAP32[i1 + 168 >> 2] = 128;
 42048  HEAP32[i1 >> 2] = 3272;
 42049  i5 = i1 + 172 | 0;
 42050  HEAP32[i5 >> 2] = i4;
 42051  HEAP8[i1 + 196 | 0] = 1;
 42052  HEAP32[i1 + 192 >> 2] = 0;
 42053  HEAP32[i1 + 184 >> 2] = 0;
 42054  HEAP32[i1 + 188 >> 2] = 0;
 42055  HEAP8[i1 + 216 | 0] = 1;
 42056  HEAP32[i1 + 212 >> 2] = 0;
 42057  HEAP32[i1 + 204 >> 2] = 0;
 42058  HEAP32[i1 + 208 >> 2] = 0;
 42059  HEAPF32[i1 + 220 >> 2] = 0.0;
 42060  HEAPF32[i1 + 224 >> 2] = -10.0;
 42061  HEAPF32[i1 + 228 >> 2] = 0.0;
 42062  HEAPF32[i1 + 232 >> 2] = 0.0;
 42063  HEAPF32[i1 + 236 >> 2] = 0.0;
 42064  HEAP8[i1 + 242 | 0] = 0;
 42065  HEAP8[i1 + 260 | 0] = 1;
 42066  HEAP32[i1 + 256 >> 2] = 0;
 42067  HEAP32[i1 + 248 >> 2] = 0;
 42068  HEAP32[i1 + 252 >> 2] = 0;
 42069  HEAP32[i1 + 264 >> 2] = 0;
 42070  if ((i4 | 0) == 0) {
 42071   i4 = __Z22btAlignedAllocInternalji(128, 16) | 0;
 42072   if ((i4 | 0) == 0) {
 42073    i6 = 0;
 42074   } else {
 42075    i3 = i4;
 42076    __ZN35btSequentialImpulseConstraintSolverC2Ev(i3);
 42077    i6 = i3;
 42079   HEAP32[i5 >> 2] = i6;
 42080   HEAP8[i1 + 241 | 0] = 1;
 42081  } else {
 42082   HEAP8[i1 + 241 | 0] = 0;
 42084  i6 = __Z22btAlignedAllocInternalji(68, 16) | 0;
 42085  if ((i6 | 0) == 0) {
 42086   i7 = 0;
 42087   i8 = i1 + 176 | 0;
 42088   HEAP32[i8 >> 2] = i7;
 42089   i9 = i1 + 240 | 0;
 42090   HEAP8[i9] = 1;
 42091   return;
 42093  i5 = i6;
 42094  __ZN25btSimulationIslandManagerC2Ev(i5);
 42095  i7 = i5;
 42096  i8 = i1 + 176 | 0;
 42097  HEAP32[i8 >> 2] = i7;
 42098  i9 = i1 + 240 | 0;
 42099  HEAP8[i9] = 1;
 42100  return;
 42102 function __ZN16btDbvtBroadphase11createProxyERK9btVector3S2_iPvssP12btDispatcherS3_(i1, i2, i3, i4, i5, i6, i7, i8, i9) {
 42103  i1 = i1 | 0;
 42104  i2 = i2 | 0;
 42105  i3 = i3 | 0;
 42106  i4 = i4 | 0;
 42107  i5 = i5 | 0;
 42108  i6 = i6 | 0;
 42109  i7 = i7 | 0;
 42110  i8 = i8 | 0;
 42111  i9 = i9 | 0;
 42112  var i10 = 0, i11 = 0;
 42113  i9 = STACKTOP;
 42114  STACKTOP = STACKTOP + 48 | 0;
 42115  i8 = i9 | 0;
 42116  i4 = i9 + 32 | 0;
 42117  i10 = __Z22btAlignedAllocInternalji(64, 16) | 0;
 42118  i11 = i10;
 42119  HEAP32[i10 >> 2] = i5;
 42120  HEAP16[i10 + 4 >> 1] = i6;
 42121  HEAP16[i10 + 6 >> 1] = i7;
 42122  i7 = i10 + 16 | 0;
 42123  i6 = i2;
 42124  HEAP32[i7 >> 2] = HEAP32[i6 >> 2];
 42125  HEAP32[i7 + 4 >> 2] = HEAP32[i6 + 4 >> 2];
 42126  HEAP32[i7 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
 42127  HEAP32[i7 + 12 >> 2] = HEAP32[i6 + 12 >> 2];
 42128  i7 = i10 + 32 | 0;
 42129  i2 = i3;
 42130  HEAP32[i7 >> 2] = HEAP32[i2 >> 2];
 42131  HEAP32[i7 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
 42132  HEAP32[i7 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
 42133  HEAP32[i7 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
 42134  HEAP32[i10 + 8 >> 2] = 0;
 42135  i7 = i10 + 56 | 0;
 42136  HEAP32[i7 >> 2] = 0;
 42137  i3 = i10 + 52 | 0;
 42138  HEAP32[i3 >> 2] = 0;
 42139  i5 = i8;
 42140  HEAP32[i5 >> 2] = HEAP32[i6 >> 2];
 42141  HEAP32[i5 + 4 >> 2] = HEAP32[i6 + 4 >> 2];
 42142  HEAP32[i5 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
 42143  HEAP32[i5 + 12 >> 2] = HEAP32[i6 + 12 >> 2];
 42144  i6 = i8 + 16 | 0;
 42145  HEAP32[i6 >> 2] = HEAP32[i2 >> 2];
 42146  HEAP32[i6 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
 42147  HEAP32[i6 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
 42148  HEAP32[i6 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
 42149  i2 = i1 + 104 | 0;
 42150  HEAP32[i10 + 60 >> 2] = HEAP32[i2 >> 2];
 42151  i6 = i1 + 148 | 0;
 42152  i5 = (HEAP32[i6 >> 2] | 0) + 1 | 0;
 42153  HEAP32[i6 >> 2] = i5;
 42154  i6 = i10;
 42155  HEAP32[i10 + 12 >> 2] = i5;
 42156  i5 = i1 + 4 | 0;
 42157  HEAP32[i10 + 48 >> 2] = __ZN6btDbvt6insertERK12btDbvtAabbMmPv(i5 | 0, i8, i10) | 0;
 42158  i10 = i1 + 84 + (HEAP32[i2 >> 2] << 2) | 0;
 42159  HEAP32[i3 >> 2] = 0;
 42160  HEAP32[i7 >> 2] = HEAP32[i10 >> 2];
 42161  i7 = HEAP32[i10 >> 2] | 0;
 42162  if ((i7 | 0) != 0) {
 42163   HEAP32[i7 + 52 >> 2] = i11;
 42165  HEAP32[i10 >> 2] = i11;
 42166  if ((HEAP8[i1 + 153 | 0] | 0) != 0) {
 42167   STACKTOP = i9;
 42168   return i6 | 0;
 42170  HEAP32[i4 >> 2] = 4064;
 42171  HEAP32[i4 + 4 >> 2] = i1;
 42172  HEAP32[i4 + 8 >> 2] = i11;
 42173  i11 = i4 | 0;
 42174  __ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(0, HEAP32[i5 >> 2] | 0, i8, i11);
 42175  __ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(0, HEAP32[i1 + 44 >> 2] | 0, i8, i11);
 42176  STACKTOP = i9;
 42177  return i6 | 0;
 42179 function __ZN28btHashedOverlappingPairCache15internalAddPairEP17btBroadphaseProxyS1_(i1, i2, i3) {
 42180  i1 = i1 | 0;
 42181  i2 = i2 | 0;
 42182  i3 = i3 | 0;
 42183  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0;
 42184  i4 = (HEAP32[i2 + 12 >> 2] | 0) > (HEAP32[i3 + 12 >> 2] | 0);
 42185  i5 = i4 ? i3 : i2;
 42186  i6 = i4 ? i2 : i3;
 42187  i3 = i5 + 12 | 0;
 42188  i2 = HEAP32[i3 >> 2] | 0;
 42189  i4 = i6 + 12 | 0;
 42190  i7 = HEAP32[i4 >> 2] | 0;
 42191  i8 = i7 << 16 | i2;
 42192  i9 = i8 + ~(i8 << 15) | 0;
 42193  i8 = (i9 >> 10 ^ i9) * 9 | 0;
 42194  i9 = i8 >> 6 ^ i8;
 42195  i8 = i9 + ~(i9 << 11) | 0;
 42196  i9 = i8 >> 16 ^ i8;
 42197  i8 = i1 + 4 | 0;
 42198  i10 = i1 + 12 | 0;
 42199  i11 = HEAP32[i10 >> 2] | 0;
 42200  i12 = i9 & i11 - 1;
 42201  i13 = i1 + 44 | 0;
 42202  i14 = HEAP32[(HEAP32[i13 >> 2] | 0) + (i12 << 2) >> 2] | 0;
 42203  L1755 : do {
 42204   if ((i14 | 0) != -1) {
 42205    i15 = HEAP32[i1 + 16 >> 2] | 0;
 42206    i16 = i1 + 64 | 0;
 42207    i17 = i14;
 42208    while (1) {
 42209     if ((HEAP32[(HEAP32[i15 + (i17 << 4) >> 2] | 0) + 12 >> 2] | 0) == (i2 | 0)) {
 42210      if ((HEAP32[(HEAP32[i15 + (i17 << 4) + 4 >> 2] | 0) + 12 >> 2] | 0) == (i7 | 0)) {
 42211       break;
 42214     i18 = HEAP32[(HEAP32[i16 >> 2] | 0) + (i17 << 2) >> 2] | 0;
 42215     if ((i18 | 0) == -1) {
 42216      break L1755;
 42217     } else {
 42218      i17 = i18;
 42221    i16 = i15 + (i17 << 4) | 0;
 42222    if ((i16 | 0) == 0) {
 42223     break;
 42224    } else {
 42225     i19 = i16;
 42227    return i19 | 0;
 42229  } while (0);
 42230  i7 = HEAP32[i1 + 8 >> 2] | 0;
 42231  i2 = __ZN20btAlignedObjectArrayI16btBroadphasePairE21expandNonInitializingEv(i8) | 0;
 42232  i8 = HEAP32[i1 + 72 >> 2] | 0;
 42233  if ((i8 | 0) != 0) {
 42234   i14 = HEAP32[(HEAP32[i8 >> 2] | 0) + 8 >> 2] | 0;
 42235   FUNCTION_TABLE_iiii[i14 & 31](i8, i5, i6) | 0;
 42237  if ((i11 | 0) < (HEAP32[i10 >> 2] | 0)) {
 42238   __ZN28btHashedOverlappingPairCache10growTablesEv(i1);
 42239   i20 = (HEAP32[i10 >> 2] | 0) - 1 & i9;
 42240  } else {
 42241   i20 = i12;
 42243  i12 = i2 | 0;
 42244  if ((HEAP32[i3 >> 2] | 0) < (HEAP32[i4 >> 2] | 0)) {
 42245   HEAP32[i12 >> 2] = i5;
 42246   HEAP32[i2 + 4 >> 2] = i6;
 42247  } else {
 42248   HEAP32[i12 >> 2] = i6;
 42249   HEAP32[i2 + 4 >> 2] = i5;
 42251  i5 = i2 + 8 | 0;
 42252  HEAP32[i5 >> 2] = 0;
 42253  HEAP32[i5 + 4 >> 2] = 0;
 42254  i5 = (HEAP32[i13 >> 2] | 0) + (i20 << 2) | 0;
 42255  HEAP32[(HEAP32[i1 + 64 >> 2] | 0) + (i7 << 2) >> 2] = HEAP32[i5 >> 2];
 42256  HEAP32[i5 >> 2] = i7;
 42257  i19 = i2;
 42258  return i19 | 0;
 42260 function __ZNK15btTriangleShape8isInsideERK9btVector3f(i1, i2, d3) {
 42261  i1 = i1 | 0;
 42262  i2 = i2 | 0;
 42263  d3 = +d3;
 42264  var i4 = 0, i5 = 0, i6 = 0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0;
 42265  i4 = STACKTOP;
 42266  STACKTOP = STACKTOP + 32 | 0;
 42267  i5 = i4 | 0;
 42268  i6 = i4 + 16 | 0;
 42269  d7 = +HEAPF32[i1 + 56 >> 2];
 42270  d8 = +HEAPF32[i1 + 72 >> 2] - d7;
 42271  d9 = +HEAPF32[i1 + 60 >> 2];
 42272  d10 = +HEAPF32[i1 + 76 >> 2] - d9;
 42273  d11 = +HEAPF32[i1 + 64 >> 2];
 42274  d12 = +HEAPF32[i1 + 80 >> 2] - d11;
 42275  d13 = +HEAPF32[i1 + 88 >> 2] - d7;
 42276  d14 = +HEAPF32[i1 + 92 >> 2] - d9;
 42277  d15 = +HEAPF32[i1 + 96 >> 2] - d11;
 42278  d16 = d10 * d15 - d12 * d14;
 42279  d17 = d12 * d13 - d8 * d15;
 42280  d15 = d8 * d14 - d10 * d13;
 42281  d13 = 1.0 / +Math_sqrt(+(d15 * d15 + (d16 * d16 + d17 * d17)));
 42282  d10 = d13 * d16;
 42283  d16 = d13 * d17;
 42284  d17 = d15 * d13;
 42285  i18 = i2 | 0;
 42286  i19 = i2 + 4 | 0;
 42287  i20 = i2 + 8 | 0;
 42288  d13 = +HEAPF32[i18 >> 2] * d10 + +HEAPF32[i19 >> 2] * d16 + d17 * +HEAPF32[i20 >> 2] - (d11 * d17 + (d7 * d10 + d9 * d16));
 42289  d9 = -0.0 - d3;
 42290  if (d13 < d9 | d13 > d3) {
 42291   i21 = 0;
 42292   STACKTOP = i4;
 42293   return i21 | 0;
 42295  i2 = i1;
 42296  i22 = i6 | 0;
 42297  i23 = i5 | 0;
 42298  i24 = i6 + 4 | 0;
 42299  i25 = i5 + 4 | 0;
 42300  i26 = i6 + 8 | 0;
 42301  i27 = i5 + 8 | 0;
 42302  i28 = 0;
 42303  while (1) {
 42304   if ((i28 | 0) >= 3) {
 42305    i21 = 1;
 42306    i29 = 139;
 42307    break;
 42309   FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i2 >> 2] | 0) + 96 >> 2] & 127](i1, i28, i5, i6);
 42310   d3 = +HEAPF32[i23 >> 2];
 42311   d13 = +HEAPF32[i22 >> 2] - d3;
 42312   d7 = +HEAPF32[i25 >> 2];
 42313   d11 = +HEAPF32[i24 >> 2] - d7;
 42314   d15 = +HEAPF32[i27 >> 2];
 42315   d14 = +HEAPF32[i26 >> 2] - d15;
 42316   d8 = d17 * d11 - d16 * d14;
 42317   d12 = d10 * d14 - d17 * d13;
 42318   d14 = d16 * d13 - d10 * d11;
 42319   d11 = 1.0 / +Math_sqrt(+(d14 * d14 + (d8 * d8 + d12 * d12)));
 42320   d13 = d11 * d8;
 42321   d8 = d11 * d12;
 42322   d12 = d14 * d11;
 42323   if (+HEAPF32[i18 >> 2] * d13 + +HEAPF32[i19 >> 2] * d8 + d12 * +HEAPF32[i20 >> 2] - (d15 * d12 + (d3 * d13 + d7 * d8)) < d9) {
 42324    i21 = 0;
 42325    i29 = 140;
 42326    break;
 42327   } else {
 42328    i28 = i28 + 1 | 0;
 42331  if ((i29 | 0) == 139) {
 42332   STACKTOP = i4;
 42333   return i21 | 0;
 42334  } else if ((i29 | 0) == 140) {
 42335   STACKTOP = i4;
 42336   return i21 | 0;
 42338  return 0;
 42340 function __ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallback11processNodeEii(i1, i2, i3) {
 42341  i1 = i1 | 0;
 42342  i2 = i2 | 0;
 42343  i3 = i3 | 0;
 42344  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, d20 = 0.0, d21 = 0.0;
 42345  i4 = STACKTOP;
 42346  STACKTOP = STACKTOP + 112 | 0;
 42347  i5 = i4 | 0;
 42348  i6 = i4 + 48 | 0;
 42349  i7 = i4 + 64 | 0;
 42350  i8 = i4 + 72 | 0;
 42351  i9 = i4 + 80 | 0;
 42352  i10 = i4 + 88 | 0;
 42353  i11 = i4 + 104 | 0;
 42354  i12 = i1 + 4 | 0;
 42355  i13 = HEAP32[i12 >> 2] | 0;
 42356  FUNCTION_TABLE_viiiiiiiiii[HEAP32[(HEAP32[i13 >> 2] | 0) + 16 >> 2] & 3](i13, i6, i4 + 56 | 0, i7, i8, i9, i10, i4 + 96 | 0, i11, i2);
 42357  i13 = HEAP32[i9 >> 2] | 0;
 42358  i9 = i13 + (Math_imul(HEAP32[i10 >> 2] | 0, i3) | 0) | 0;
 42359  i10 = i9;
 42360  i13 = HEAP32[i12 >> 2] | 0;
 42361  i14 = (HEAP32[i11 >> 2] | 0) == 3;
 42362  i11 = i9;
 42363  i9 = (HEAP32[i7 >> 2] | 0) == 0;
 42364  i7 = HEAP32[i6 >> 2] | 0;
 42365  i6 = i13 + 4 | 0;
 42366  i15 = i13 + 8 | 0;
 42367  i16 = i13 + 12 | 0;
 42368  i13 = 2;
 42369  while (1) {
 42370   if (i14) {
 42371    i17 = HEAPU16[i11 + (i13 << 1) >> 1] | 0;
 42372   } else {
 42373    i17 = HEAP32[i10 + (i13 << 2) >> 2] | 0;
 42375   i18 = Math_imul(HEAP32[i8 >> 2] | 0, i17) | 0;
 42376   i19 = i7 + i18 | 0;
 42377   if (i9) {
 42378    d20 = +HEAPF32[i7 + (i18 + 4) >> 2] * +HEAPF32[i15 >> 2];
 42379    d21 = +HEAPF32[i7 + (i18 + 8) >> 2] * +HEAPF32[i16 >> 2];
 42380    HEAPF32[i5 + (i13 << 4) >> 2] = +HEAPF32[i19 >> 2] * +HEAPF32[i6 >> 2];
 42381    HEAPF32[i5 + (i13 << 4) + 4 >> 2] = d20;
 42382    HEAPF32[i5 + (i13 << 4) + 8 >> 2] = d21;
 42383    HEAPF32[i5 + (i13 << 4) + 12 >> 2] = 0.0;
 42384   } else {
 42385    d21 = +HEAPF64[i7 + (i18 + 8) >> 3] * +HEAPF32[i15 >> 2];
 42386    d20 = +HEAPF64[i7 + (i18 + 16) >> 3] * +HEAPF32[i16 >> 2];
 42387    HEAPF32[i5 + (i13 << 4) >> 2] = +HEAPF64[i19 >> 3] * +HEAPF32[i6 >> 2];
 42388    HEAPF32[i5 + (i13 << 4) + 4 >> 2] = d21;
 42389    HEAPF32[i5 + (i13 << 4) + 8 >> 2] = d20;
 42390    HEAPF32[i5 + (i13 << 4) + 12 >> 2] = 0.0;
 42392   if ((i13 | 0) > 0) {
 42393    i13 = i13 - 1 | 0;
 42394   } else {
 42395    break;
 42398  i13 = HEAP32[i1 + 8 >> 2] | 0;
 42399  FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i13 >> 2] | 0) + 8 >> 2] & 127](i13, i5 | 0, i2, i3);
 42400  i3 = HEAP32[i12 >> 2] | 0;
 42401  FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 24 >> 2] & 127](i3, i2);
 42402  STACKTOP = i4;
 42403  return;
 42405 function __ZN25btSimulationIslandManager10findUnionsEP12btDispatcherP16btCollisionWorld(i1, i2, i3) {
 42406  i1 = i1 | 0;
 42407  i2 = i2 | 0;
 42408  i3 = i3 | 0;
 42409  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
 42410  i2 = HEAP32[i3 + 76 >> 2] | 0;
 42411  i3 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i2 >> 2] | 0) + 36 >> 2] & 127](i2) | 0;
 42412  i2 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i3 >> 2] | 0) + 36 >> 2] & 127](i3) | 0;
 42413  i4 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i3 >> 2] | 0) + 20 >> 2] & 127](i3) | 0;
 42414  if ((i2 | 0) <= 0) {
 42415   return;
 42417  i3 = i1 + 16 | 0;
 42418  i1 = 0;
 42419  do {
 42420   i5 = HEAP32[HEAP32[i4 + (i1 << 4) >> 2] >> 2] | 0;
 42421   i6 = HEAP32[HEAP32[i4 + (i1 << 4) + 4 >> 2] >> 2] | 0;
 42422   do {
 42423    if ((i5 | 0) != 0) {
 42424     if ((HEAP32[i5 + 204 >> 2] & 7 | 0) != 0 | (i6 | 0) == 0) {
 42425      break;
 42427     if ((HEAP32[i6 + 204 >> 2] & 7 | 0) != 0) {
 42428      break;
 42430     i7 = HEAP32[i5 + 208 >> 2] | 0;
 42431     i8 = HEAP32[i6 + 208 >> 2] | 0;
 42432     i9 = HEAP32[i3 >> 2] | 0;
 42433     i10 = i9 + (i7 << 3) | 0;
 42434     i11 = HEAP32[i10 >> 2] | 0;
 42435     if ((i11 | 0) == (i7 | 0)) {
 42436      i12 = i7;
 42437     } else {
 42438      i7 = i10;
 42439      i10 = i11;
 42440      while (1) {
 42441       i11 = i9 + (i10 << 3) | 0;
 42442       HEAP32[i7 >> 2] = HEAP32[i11 >> 2];
 42443       i13 = HEAP32[i11 >> 2] | 0;
 42444       i11 = i9 + (i13 << 3) | 0;
 42445       i14 = HEAP32[i11 >> 2] | 0;
 42446       if ((i13 | 0) == (i14 | 0)) {
 42447        i12 = i13;
 42448        break;
 42449       } else {
 42450        i7 = i11;
 42451        i10 = i14;
 42455     i10 = i9 + (i8 << 3) | 0;
 42456     i7 = HEAP32[i10 >> 2] | 0;
 42457     if ((i7 | 0) == (i8 | 0)) {
 42458      i15 = i8;
 42459     } else {
 42460      i14 = i10;
 42461      i10 = i7;
 42462      while (1) {
 42463       i7 = i9 + (i10 << 3) | 0;
 42464       HEAP32[i14 >> 2] = HEAP32[i7 >> 2];
 42465       i11 = HEAP32[i7 >> 2] | 0;
 42466       i7 = i9 + (i11 << 3) | 0;
 42467       i13 = HEAP32[i7 >> 2] | 0;
 42468       if ((i11 | 0) == (i13 | 0)) {
 42469        i15 = i11;
 42470        break;
 42471       } else {
 42472        i14 = i7;
 42473        i10 = i13;
 42477     if ((i12 | 0) == (i15 | 0)) {
 42478      break;
 42480     HEAP32[i9 + (i12 << 3) >> 2] = i15;
 42481     i10 = i9 + (i15 << 3) + 4 | 0;
 42482     HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) + (HEAP32[i9 + (i12 << 3) + 4 >> 2] | 0);
 42484   } while (0);
 42485   i1 = i1 + 1 | 0;
 42486  } while ((i1 | 0) < (i2 | 0));
 42487  return;
 42489 function __ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallback11processNodeEii(i1, i2, i3) {
 42490  i1 = i1 | 0;
 42491  i2 = i2 | 0;
 42492  i3 = i3 | 0;
 42493  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, d20 = 0.0, d21 = 0.0;
 42494  i4 = STACKTOP;
 42495  STACKTOP = STACKTOP + 112 | 0;
 42496  i5 = i4 | 0;
 42497  i6 = i4 + 48 | 0;
 42498  i7 = i4 + 64 | 0;
 42499  i8 = i4 + 72 | 0;
 42500  i9 = i4 + 80 | 0;
 42501  i10 = i4 + 88 | 0;
 42502  i11 = i4 + 104 | 0;
 42503  i12 = i1 + 4 | 0;
 42504  i13 = HEAP32[i12 >> 2] | 0;
 42505  FUNCTION_TABLE_viiiiiiiiii[HEAP32[(HEAP32[i13 >> 2] | 0) + 16 >> 2] & 3](i13, i6, i4 + 56 | 0, i7, i8, i9, i10, i4 + 96 | 0, i11, i2);
 42506  i13 = HEAP32[i9 >> 2] | 0;
 42507  i9 = i13 + (Math_imul(HEAP32[i10 >> 2] | 0, i3) | 0) | 0;
 42508  i10 = i9;
 42509  i13 = HEAP32[i12 >> 2] | 0;
 42510  i14 = (HEAP32[i11 >> 2] | 0) == 3;
 42511  i11 = i9;
 42512  i9 = (HEAP32[i7 >> 2] | 0) == 0;
 42513  i7 = HEAP32[i6 >> 2] | 0;
 42514  i6 = i13 + 4 | 0;
 42515  i15 = i13 + 8 | 0;
 42516  i16 = i13 + 12 | 0;
 42517  i13 = 2;
 42518  while (1) {
 42519   if (i14) {
 42520    i17 = HEAPU16[i11 + (i13 << 1) >> 1] | 0;
 42521   } else {
 42522    i17 = HEAP32[i10 + (i13 << 2) >> 2] | 0;
 42524   i18 = Math_imul(HEAP32[i8 >> 2] | 0, i17) | 0;
 42525   i19 = i7 + i18 | 0;
 42526   if (i9) {
 42527    d20 = +HEAPF32[i7 + (i18 + 4) >> 2] * +HEAPF32[i15 >> 2];
 42528    d21 = +HEAPF32[i7 + (i18 + 8) >> 2] * +HEAPF32[i16 >> 2];
 42529    HEAPF32[i5 + (i13 << 4) >> 2] = +HEAPF32[i19 >> 2] * +HEAPF32[i6 >> 2];
 42530    HEAPF32[i5 + (i13 << 4) + 4 >> 2] = d20;
 42531    HEAPF32[i5 + (i13 << 4) + 8 >> 2] = d21;
 42532    HEAPF32[i5 + (i13 << 4) + 12 >> 2] = 0.0;
 42533   } else {
 42534    d21 = +HEAPF64[i7 + (i18 + 8) >> 3] * +HEAPF32[i15 >> 2];
 42535    d20 = +HEAPF64[i7 + (i18 + 16) >> 3] * +HEAPF32[i16 >> 2];
 42536    HEAPF32[i5 + (i13 << 4) >> 2] = +HEAPF64[i19 >> 3] * +HEAPF32[i6 >> 2];
 42537    HEAPF32[i5 + (i13 << 4) + 4 >> 2] = d21;
 42538    HEAPF32[i5 + (i13 << 4) + 8 >> 2] = d20;
 42539    HEAPF32[i5 + (i13 << 4) + 12 >> 2] = 0.0;
 42541   if ((i13 | 0) > 0) {
 42542    i13 = i13 - 1 | 0;
 42543   } else {
 42544    break;
 42547  i13 = HEAP32[i1 + 8 >> 2] | 0;
 42548  FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i13 >> 2] | 0) + 8 >> 2] & 127](i13, i5 | 0, i2, i3);
 42549  i3 = HEAP32[i12 >> 2] | 0;
 42550  FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 24 >> 2] & 127](i3, i2);
 42551  STACKTOP = i4;
 42552  return;
 42554 function __ZNK11btMatrix3x311getRotationER12btQuaternion(i1, i2) {
 42555  i1 = i1 | 0;
 42556  i2 = i2 | 0;
 42557  var i3 = 0, i4 = 0, d5 = 0.0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0;
 42558  i3 = STACKTOP;
 42559  STACKTOP = STACKTOP + 16 | 0;
 42560  i4 = i3 | 0;
 42561  d5 = +HEAPF32[i1 >> 2];
 42562  d6 = +HEAPF32[i1 + 20 >> 2];
 42563  d7 = +HEAPF32[i1 + 40 >> 2];
 42564  d8 = d5 + d6 + d7;
 42565  if (d8 > 0.0) {
 42566   d9 = +Math_sqrt(+(d8 + 1.0));
 42567   d8 = d9 * .5;
 42568   HEAPF32[i4 + 12 >> 2] = d8;
 42569   d10 = .5 / d9;
 42570   d9 = d10 * (+HEAPF32[i1 + 36 >> 2] - +HEAPF32[i1 + 24 >> 2]);
 42571   HEAPF32[i4 >> 2] = d9;
 42572   d11 = d10 * (+HEAPF32[i1 + 8 >> 2] - +HEAPF32[i1 + 32 >> 2]);
 42573   HEAPF32[i4 + 4 >> 2] = d11;
 42574   d12 = d10 * (+HEAPF32[i1 + 16 >> 2] - +HEAPF32[i1 + 4 >> 2]);
 42575   HEAPF32[i4 + 8 >> 2] = d12;
 42576   d13 = d9;
 42577   d14 = d11;
 42578   d15 = d12;
 42579   d16 = d8;
 42580   i17 = i2 | 0;
 42581   HEAPF32[i17 >> 2] = d13;
 42582   i18 = i2 + 4 | 0;
 42583   HEAPF32[i18 >> 2] = d14;
 42584   i19 = i2 + 8 | 0;
 42585   HEAPF32[i19 >> 2] = d15;
 42586   i20 = i2 + 12 | 0;
 42587   HEAPF32[i20 >> 2] = d16;
 42588   STACKTOP = i3;
 42589   return;
 42591  if (d5 < d6) {
 42592   i21 = d6 < d7 ? 2 : 1;
 42593  } else {
 42594   i21 = d5 < d7 ? 2 : 0;
 42596  i22 = ((i21 + 1 | 0) >>> 0) % 3 | 0;
 42597  i23 = ((i21 + 2 | 0) >>> 0) % 3 | 0;
 42598  d7 = +Math_sqrt(+(+HEAPF32[i1 + (i21 << 4) + (i21 << 2) >> 2] - +HEAPF32[i1 + (i22 << 4) + (i22 << 2) >> 2] - +HEAPF32[i1 + (i23 << 4) + (i23 << 2) >> 2] + 1.0));
 42599  HEAPF32[i4 + (i21 << 2) >> 2] = d7 * .5;
 42600  d5 = .5 / d7;
 42601  i24 = i4 + 12 | 0;
 42602  HEAPF32[i24 >> 2] = d5 * (+HEAPF32[i1 + (i23 << 4) + (i22 << 2) >> 2] - +HEAPF32[i1 + (i22 << 4) + (i23 << 2) >> 2]);
 42603  HEAPF32[i4 + (i22 << 2) >> 2] = d5 * (+HEAPF32[i1 + (i22 << 4) + (i21 << 2) >> 2] + +HEAPF32[i1 + (i21 << 4) + (i22 << 2) >> 2]);
 42604  HEAPF32[i4 + (i23 << 2) >> 2] = d5 * (+HEAPF32[i1 + (i23 << 4) + (i21 << 2) >> 2] + +HEAPF32[i1 + (i21 << 4) + (i23 << 2) >> 2]);
 42605  d13 = +HEAPF32[i4 >> 2];
 42606  d14 = +HEAPF32[i4 + 4 >> 2];
 42607  d15 = +HEAPF32[i4 + 8 >> 2];
 42608  d16 = +HEAPF32[i24 >> 2];
 42609  i17 = i2 | 0;
 42610  HEAPF32[i17 >> 2] = d13;
 42611  i18 = i2 + 4 | 0;
 42612  HEAPF32[i18 >> 2] = d14;
 42613  i19 = i2 + 8 | 0;
 42614  HEAPF32[i19 >> 2] = d15;
 42615  i20 = i2 + 12 | 0;
 42616  HEAPF32[i20 >> 2] = d16;
 42617  STACKTOP = i3;
 42618  return;
 42620 function __ZN24btConvexTriangleCallback15processTriangleEP9btVector3ii(i1, i2, i3, i4) {
 42621  i1 = i1 | 0;
 42622  i2 = i2 | 0;
 42623  i3 = i3 | 0;
 42624  i4 = i4 | 0;
 42625  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
 42626  i5 = STACKTOP;
 42627  STACKTOP = STACKTOP + 104 | 0;
 42628  i6 = i5 | 0;
 42629  i7 = HEAP32[i1 + 48 >> 2] | 0;
 42630  i8 = i1 + 8 | 0;
 42631  i9 = i1 + 4 | 0;
 42632  if ((HEAP32[(HEAP32[(HEAP32[i9 >> 2] | 0) + 192 >> 2] | 0) + 4 >> 2] | 0) >= 20) {
 42633   STACKTOP = i5;
 42634   return;
 42636  i10 = HEAP32[i8 >> 2] | 0;
 42637  i11 = i6 | 0;
 42638  __ZN23btPolyhedralConvexShapeC2Ev(i11);
 42639  HEAP32[i6 >> 2] = 4560;
 42640  HEAP32[i6 + 4 >> 2] = 1;
 42641  i12 = i6 + 56 | 0;
 42642  i13 = i2;
 42643  HEAP32[i12 >> 2] = HEAP32[i13 >> 2];
 42644  HEAP32[i12 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
 42645  HEAP32[i12 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
 42646  HEAP32[i12 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
 42647  i13 = i6 + 72 | 0;
 42648  i12 = i2 + 16 | 0;
 42649  HEAP32[i13 >> 2] = HEAP32[i12 >> 2];
 42650  HEAP32[i13 + 4 >> 2] = HEAP32[i12 + 4 >> 2];
 42651  HEAP32[i13 + 8 >> 2] = HEAP32[i12 + 8 >> 2];
 42652  HEAP32[i13 + 12 >> 2] = HEAP32[i12 + 12 >> 2];
 42653  i12 = i6 + 88 | 0;
 42654  i13 = i2 + 32 | 0;
 42655  HEAP32[i12 >> 2] = HEAP32[i13 >> 2];
 42656  HEAP32[i12 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
 42657  HEAP32[i12 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
 42658  HEAP32[i12 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
 42659  HEAPF32[i6 + 44 >> 2] = +HEAPF32[i1 + 56 >> 2];
 42660  i13 = i10 + 192 | 0;
 42661  i10 = HEAP32[i13 >> 2] | 0;
 42662  HEAP32[i13 >> 2] = i6;
 42663  i6 = FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[i7 >> 2] | 0) + 8 >> 2] & 31](i7, HEAP32[i9 >> 2] | 0, HEAP32[i8 >> 2] | 0, HEAP32[i1 + 64 >> 2] | 0) | 0;
 42664  i12 = i1 + 44 | 0;
 42665  i2 = HEAP32[i12 >> 2] | 0;
 42666  i14 = HEAP32[i2 >> 2] | 0;
 42667  if ((HEAP32[i2 + 136 >> 2] | 0) == (HEAP32[i8 >> 2] | 0)) {
 42668   FUNCTION_TABLE_viii[HEAP32[i14 + 8 >> 2] & 127](i2, i3, i4);
 42669  } else {
 42670   FUNCTION_TABLE_viii[HEAP32[i14 + 12 >> 2] & 127](i2, i3, i4);
 42672  FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i6 >> 2] | 0) + 8 >> 2] & 63](i6, HEAP32[i9 >> 2] | 0, HEAP32[i8 >> 2] | 0, HEAP32[i1 + 52 >> 2] | 0, HEAP32[i12 >> 2] | 0);
 42673  FUNCTION_TABLE_vi[HEAP32[HEAP32[i6 >> 2] >> 2] & 511](i6);
 42674  FUNCTION_TABLE_vii[HEAP32[(HEAP32[i7 >> 2] | 0) + 60 >> 2] & 127](i7, i6);
 42675  HEAP32[i13 >> 2] = i10;
 42676  __ZN23btPolyhedralConvexShapeD2Ev(i11);
 42677  STACKTOP = i5;
 42678  return;
 42680 function __ZN28btCompoundCollisionAlgorithm26preallocateChildAlgorithmsEP17btCollisionObjectS1_(i1, i2, i3) {
 42681  i1 = i1 | 0;
 42682  i2 = i2 | 0;
 42683  i3 = i3 | 0;
 42684  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
 42685  i4 = (HEAP8[i1 + 28 | 0] | 0) != 0;
 42686  i5 = i4 ? i3 : i2;
 42687  i6 = i4 ? i2 : i3;
 42688  i3 = i5 + 192 | 0;
 42689  i2 = HEAP32[i3 >> 2] | 0;
 42690  i4 = HEAP32[i2 + 16 >> 2] | 0;
 42691  i7 = i1 + 12 | 0;
 42692  i8 = HEAP32[i7 >> 2] | 0;
 42693  if ((i8 | 0) < (i4 | 0)) {
 42694   i9 = i1 + 16 | 0;
 42695   if ((HEAP32[i9 >> 2] | 0) < (i4 | 0)) {
 42696    if ((i4 | 0) == 0) {
 42697     i10 = 0;
 42698     i11 = i8;
 42699    } else {
 42700     i12 = __Z22btAlignedAllocInternalji(i4 << 2, 16) | 0;
 42701     i10 = i12;
 42702     i11 = HEAP32[i7 >> 2] | 0;
 42704    i12 = i1 + 20 | 0;
 42705    if ((i11 | 0) > 0) {
 42706     i13 = 0;
 42707     do {
 42708      i14 = i10 + (i13 << 2) | 0;
 42709      if ((i14 | 0) != 0) {
 42710       HEAP32[i14 >> 2] = HEAP32[(HEAP32[i12 >> 2] | 0) + (i13 << 2) >> 2];
 42712      i13 = i13 + 1 | 0;
 42713     } while ((i13 | 0) < (i11 | 0));
 42715    i11 = HEAP32[i12 >> 2] | 0;
 42716    i13 = i1 + 24 | 0;
 42717    if ((i11 | 0) != 0) {
 42718     if ((HEAP8[i13] | 0) != 0) {
 42719      __Z21btAlignedFreeInternalPv(i11);
 42721     HEAP32[i12 >> 2] = 0;
 42723    HEAP8[i13] = 1;
 42724    HEAP32[i12 >> 2] = i10;
 42725    HEAP32[i9 >> 2] = i4;
 42726    i15 = i12;
 42727   } else {
 42728    i15 = i1 + 20 | 0;
 42730   i12 = i8;
 42731   do {
 42732    i8 = (HEAP32[i15 >> 2] | 0) + (i12 << 2) | 0;
 42733    if ((i8 | 0) != 0) {
 42734     HEAP32[i8 >> 2] = 0;
 42736    i12 = i12 + 1 | 0;
 42737   } while ((i12 | 0) < (i4 | 0));
 42739  HEAP32[i7 >> 2] = i4;
 42740  if ((i4 | 0) <= 0) {
 42741   return;
 42743  i7 = i2 + 64 | 0;
 42744  i12 = i2 + 24 | 0;
 42745  i2 = i1 + 4 | 0;
 42746  i15 = i1 + 32 | 0;
 42747  i8 = i1 + 20 | 0;
 42748  i1 = 0;
 42749  do {
 42750   if ((HEAP32[i7 >> 2] | 0) == 0) {
 42751    i9 = HEAP32[i3 >> 2] | 0;
 42752    HEAP32[i3 >> 2] = HEAP32[(HEAP32[i12 >> 2] | 0) + (i1 * 80 | 0) + 64 >> 2];
 42753    i10 = HEAP32[i2 >> 2] | 0;
 42754    i13 = FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[i10 >> 2] | 0) + 8 >> 2] & 31](i10, i5, i6, HEAP32[i15 >> 2] | 0) | 0;
 42755    HEAP32[(HEAP32[i8 >> 2] | 0) + (i1 << 2) >> 2] = i13;
 42756    HEAP32[i3 >> 2] = i9;
 42757   } else {
 42758    HEAP32[(HEAP32[i8 >> 2] | 0) + (i1 << 2) >> 2] = 0;
 42760   i1 = i1 + 1 | 0;
 42761  } while ((i1 | 0) < (i4 | 0));
 42762  return;
 42764 function __ZN35btSequentialImpulseConstraintSolver45solveGroupCacheFriendlySplitImpulseIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10) {
 42765  i1 = i1 | 0;
 42766  i2 = i2 | 0;
 42767  i3 = i3 | 0;
 42768  i4 = i4 | 0;
 42769  i5 = i5 | 0;
 42770  i6 = i6 | 0;
 42771  i7 = i7 | 0;
 42772  i8 = i8 | 0;
 42773  i9 = i9 | 0;
 42774  i10 = i10 | 0;
 42775  var i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
 42776  if ((HEAP32[i8 + 44 >> 2] | 0) == 0) {
 42777   return;
 42779  i10 = i8 + 20 | 0;
 42780  i9 = HEAP32[i10 >> 2] | 0;
 42781  i7 = (i9 | 0) > 0;
 42782  if ((HEAP32[i8 + 60 >> 2] & 256 | 0) == 0) {
 42783   if (!i7) {
 42784    return;
 42786   i8 = i1 + 8 | 0;
 42787   i6 = i1 + 76 | 0;
 42788   i5 = i1 + 16 | 0;
 42789   i4 = 1;
 42790   i3 = i9;
 42791   while (1) {
 42792    i2 = HEAP32[i8 >> 2] | 0;
 42793    if ((i2 | 0) > 0) {
 42794     i11 = 0;
 42795     do {
 42796      i12 = HEAP32[(HEAP32[i6 >> 2] | 0) + (i11 << 2) >> 2] | 0;
 42797      i13 = HEAP32[i5 >> 2] | 0;
 42798      __ZN35btSequentialImpulseConstraintSolver43resolveSplitPenetrationImpulseCacheFriendlyER11btRigidBodyS1_RK18btSolverConstraint(0, HEAP32[i13 + (i12 * 136 | 0) + 104 >> 2] | 0, HEAP32[i13 + (i12 * 136 | 0) + 108 >> 2] | 0, i13 + (i12 * 136 | 0) | 0);
 42799      i11 = i11 + 1 | 0;
 42800     } while ((i11 | 0) < (i2 | 0));
 42801     i14 = HEAP32[i10 >> 2] | 0;
 42802    } else {
 42803     i14 = i3;
 42805    if ((i4 | 0) >= (i14 | 0)) {
 42806     break;
 42808    i4 = i4 + 1 | 0;
 42809    i3 = i14;
 42811   return;
 42812  } else {
 42813   if (!i7) {
 42814    return;
 42816   i7 = i1 + 8 | 0;
 42817   i14 = i1 + 76 | 0;
 42818   i3 = i1 + 16 | 0;
 42819   i1 = 1;
 42820   i4 = i9;
 42821   while (1) {
 42822    i9 = HEAP32[i7 >> 2] | 0;
 42823    if ((i9 | 0) > 0) {
 42824     i5 = 0;
 42825     do {
 42826      i6 = HEAP32[(HEAP32[i14 >> 2] | 0) + (i5 << 2) >> 2] | 0;
 42827      i8 = HEAP32[i3 >> 2] | 0;
 42828      __ZN35btSequentialImpulseConstraintSolver43resolveSplitPenetrationImpulseCacheFriendlyER11btRigidBodyS1_RK18btSolverConstraint(0, HEAP32[i8 + (i6 * 136 | 0) + 104 >> 2] | 0, HEAP32[i8 + (i6 * 136 | 0) + 108 >> 2] | 0, i8 + (i6 * 136 | 0) | 0);
 42829      i5 = i5 + 1 | 0;
 42830     } while ((i5 | 0) < (i9 | 0));
 42831     i15 = HEAP32[i10 >> 2] | 0;
 42832    } else {
 42833     i15 = i4;
 42835    if ((i1 | 0) >= (i15 | 0)) {
 42836     break;
 42838    i1 = i1 + 1 | 0;
 42839    i4 = i15;
 42841   return;
 42844 function __ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBody(i1, i2) {
 42845  i1 = i1 | 0;
 42846  i2 = i2 | 0;
 42847  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0;
 42848  i3 = i2 | 0;
 42849  i4 = i2 + 204 | 0;
 42850  do {
 42851   if ((HEAP32[i4 >> 2] & 3 | 0) == 0) {
 42852    if ((HEAP32[i2 + 496 >> 2] & 1 | 0) != 0) {
 42853     break;
 42855    __ZN11btRigidBody10setGravityERK9btVector3(i2, i1 + 220 | 0);
 42857  } while (0);
 42858  if ((HEAP32[i2 + 192 >> 2] | 0) == 0) {
 42859   return;
 42861  if ((HEAP32[i4 >> 2] & 1 | 0) == 0) {
 42862   i5 = i1 + 204 | 0;
 42863   i6 = HEAP32[i5 >> 2] | 0;
 42864   i7 = i1 + 208 | 0;
 42865   do {
 42866    if ((i6 | 0) == (HEAP32[i7 >> 2] | 0)) {
 42867     i8 = (i6 | 0) == 0 ? 1 : i6 << 1;
 42868     if ((i6 | 0) >= (i8 | 0)) {
 42869      i9 = i6;
 42870      break;
 42872     if ((i8 | 0) == 0) {
 42873      i10 = 0;
 42874      i11 = i6;
 42875     } else {
 42876      i12 = __Z22btAlignedAllocInternalji(i8 << 2, 16) | 0;
 42877      i10 = i12;
 42878      i11 = HEAP32[i5 >> 2] | 0;
 42880     i12 = i1 + 212 | 0;
 42881     if ((i11 | 0) > 0) {
 42882      i13 = 0;
 42883      do {
 42884       i14 = i10 + (i13 << 2) | 0;
 42885       if ((i14 | 0) != 0) {
 42886        HEAP32[i14 >> 2] = HEAP32[(HEAP32[i12 >> 2] | 0) + (i13 << 2) >> 2];
 42888       i13 = i13 + 1 | 0;
 42889      } while ((i13 | 0) < (i11 | 0));
 42891     i13 = HEAP32[i12 >> 2] | 0;
 42892     i14 = i1 + 216 | 0;
 42893     if ((i13 | 0) == 0) {
 42894      i15 = i11;
 42895     } else {
 42896      if ((HEAP8[i14] | 0) == 0) {
 42897       i16 = i11;
 42898      } else {
 42899       __Z21btAlignedFreeInternalPv(i13);
 42900       i16 = HEAP32[i5 >> 2] | 0;
 42902      HEAP32[i12 >> 2] = 0;
 42903      i15 = i16;
 42905     HEAP8[i14] = 1;
 42906     HEAP32[i12 >> 2] = i10;
 42907     HEAP32[i7 >> 2] = i8;
 42908     i9 = i15;
 42909    } else {
 42910     i9 = i6;
 42912   } while (0);
 42913   i6 = (HEAP32[i1 + 212 >> 2] | 0) + (i9 << 2) | 0;
 42914   if ((i6 | 0) != 0) {
 42915    HEAP32[i6 >> 2] = i2;
 42917   HEAP32[i5 >> 2] = i9 + 1;
 42918  } else {
 42919   __ZN17btCollisionObject18setActivationStateEi(i3, 2);
 42921  i9 = HEAP32[i4 >> 2] | 0;
 42922  if ((i9 & 1 | 0) == 0) {
 42923   i17 = (i9 & 2 | 0) == 0;
 42924  } else {
 42925   i17 = 0;
 42927  FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 32 >> 2] & 127](i1, i3, i17 ? 1 : 2, i17 ? -1 : -3);
 42928  return;
 42930 function __ZN23btDiscreteDynamicsWorld14debugDrawWorldEv(i1) {
 42931  i1 = i1 | 0;
 42932  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
 42933  __ZN15CProfileManager13Start_ProfileEPKc(1112);
 42934  i2 = i1 | 0;
 42935  __ZN16btCollisionWorld14debugDrawWorldEv(i2);
 42936  i3 = i1;
 42937  L167 : do {
 42938   if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i2) | 0) != 0) {
 42939    i4 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i2) | 0;
 42940    if (((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i4 >> 2] | 0) + 48 >> 2] & 127](i4) | 0) & 6144 | 0) == 0) {
 42941     break;
 42943    i4 = i1;
 42944    i5 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i1 >> 2] | 0) + 100 >> 2] & 127](i1) | 0;
 42945    while (1) {
 42946     i6 = i5 - 1 | 0;
 42947     if ((i5 | 0) <= 0) {
 42948      break L167;
 42950     __ZN23btDiscreteDynamicsWorld19debugDrawConstraintEP17btTypedConstraint(i1, FUNCTION_TABLE_iii[HEAP32[(HEAP32[i4 >> 2] | 0) + 104 >> 2] & 63](i1, i6) | 0);
 42951     i5 = i6;
 42954  } while (0);
 42955  if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i2) | 0) == 0) {
 42956   __ZN15CProfileManager12Stop_ProfileEv();
 42957   return;
 42959  i5 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i2) | 0;
 42960  if (((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i5 >> 2] | 0) + 48 >> 2] & 127](i5) | 0) & 3 | 0) == 0) {
 42961   __ZN15CProfileManager12Stop_ProfileEv();
 42962   return;
 42964  if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i2) | 0) == 0) {
 42965   __ZN15CProfileManager12Stop_ProfileEv();
 42966   return;
 42968  i5 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i2) | 0;
 42969  if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i5 >> 2] | 0) + 48 >> 2] & 127](i5) | 0) == 0) {
 42970   __ZN15CProfileManager12Stop_ProfileEv();
 42971   return;
 42973  i5 = i1 + 248 | 0;
 42974  if ((HEAP32[i5 >> 2] | 0) <= 0) {
 42975   __ZN15CProfileManager12Stop_ProfileEv();
 42976   return;
 42978  i2 = i1 + 256 | 0;
 42979  i3 = i1 + 80 | 0;
 42980  i1 = 0;
 42981  do {
 42982   i4 = HEAP32[(HEAP32[i2 >> 2] | 0) + (i1 << 2) >> 2] | 0;
 42983   FUNCTION_TABLE_vii[HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] & 127](i4, HEAP32[i3 >> 2] | 0);
 42984   i1 = i1 + 1 | 0;
 42985  } while ((i1 | 0) < (HEAP32[i5 >> 2] | 0));
 42986  __ZN15CProfileManager12Stop_ProfileEv();
 42987  return;
 42989 function __ZNK20btDefaultMotionState17getWorldTransformER11btTransform(i1, i2) {
 42990  i1 = i1 | 0;
 42991  i2 = i2 | 0;
 42992  var d3 = 0.0, d4 = 0.0, d5 = 0.0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0;
 42993  d3 = +HEAPF32[i1 + 68 >> 2];
 42994  d4 = +HEAPF32[i1 + 84 >> 2];
 42995  d5 = +HEAPF32[i1 + 100 >> 2];
 42996  d6 = +HEAPF32[i1 + 72 >> 2];
 42997  d7 = +HEAPF32[i1 + 88 >> 2];
 42998  d8 = +HEAPF32[i1 + 104 >> 2];
 42999  d9 = +HEAPF32[i1 + 76 >> 2];
 43000  d10 = +HEAPF32[i1 + 92 >> 2];
 43001  d11 = +HEAPF32[i1 + 108 >> 2];
 43002  d12 = -0.0 - +HEAPF32[i1 + 116 >> 2];
 43003  d13 = -0.0 - +HEAPF32[i1 + 120 >> 2];
 43004  d14 = -0.0 - +HEAPF32[i1 + 124 >> 2];
 43005  d15 = +HEAPF32[i1 + 4 >> 2];
 43006  d16 = +HEAPF32[i1 + 20 >> 2];
 43007  d17 = +HEAPF32[i1 + 36 >> 2];
 43008  d18 = +HEAPF32[i1 + 8 >> 2];
 43009  d19 = +HEAPF32[i1 + 24 >> 2];
 43010  d20 = +HEAPF32[i1 + 40 >> 2];
 43011  d21 = +HEAPF32[i1 + 12 >> 2];
 43012  d22 = +HEAPF32[i1 + 28 >> 2];
 43013  d23 = +HEAPF32[i1 + 44 >> 2];
 43014  d24 = +HEAPF32[i1 + 52 >> 2];
 43015  d25 = +HEAPF32[i1 + 56 >> 2];
 43016  d26 = +HEAPF32[i1 + 60 >> 2];
 43017  HEAPF32[i2 >> 2] = d3 * d15 + d4 * d16 + d5 * d17;
 43018  HEAPF32[i2 + 4 >> 2] = d3 * d18 + d4 * d19 + d5 * d20;
 43019  HEAPF32[i2 + 8 >> 2] = d3 * d21 + d4 * d22 + d5 * d23;
 43020  HEAPF32[i2 + 12 >> 2] = 0.0;
 43021  HEAPF32[i2 + 16 >> 2] = d6 * d15 + d7 * d16 + d8 * d17;
 43022  HEAPF32[i2 + 20 >> 2] = d6 * d18 + d7 * d19 + d8 * d20;
 43023  HEAPF32[i2 + 24 >> 2] = d6 * d21 + d7 * d22 + d8 * d23;
 43024  HEAPF32[i2 + 28 >> 2] = 0.0;
 43025  HEAPF32[i2 + 32 >> 2] = d9 * d15 + d10 * d16 + d11 * d17;
 43026  HEAPF32[i2 + 36 >> 2] = d9 * d18 + d10 * d19 + d11 * d20;
 43027  HEAPF32[i2 + 40 >> 2] = d9 * d21 + d10 * d22 + d11 * d23;
 43028  HEAPF32[i2 + 44 >> 2] = 0.0;
 43029  HEAPF32[i2 + 48 >> 2] = d3 * d12 + d4 * d13 + d5 * d14 + (d3 * d24 + d4 * d25 + d5 * d26);
 43030  HEAPF32[i2 + 52 >> 2] = d6 * d12 + d7 * d13 + d8 * d14 + (d6 * d24 + d7 * d25 + d8 * d26);
 43031  HEAPF32[i2 + 56 >> 2] = d9 * d12 + d10 * d13 + d11 * d14 + (d9 * d24 + d10 * d25 + d11 * d26);
 43032  HEAPF32[i2 + 60 >> 2] = 0.0;
 43033  return;
 43035 function __ZNK16btDbvtBroadphase17getBroadphaseAabbER9btVector3S1_(i1, i2, i3) {
 43036  i1 = i1 | 0;
 43037  i2 = i2 | 0;
 43038  i3 = i3 | 0;
 43039  var i4 = 0, i5 = 0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0;
 43040  i4 = HEAP32[i1 + 4 >> 2] | 0;
 43041  i5 = HEAP32[i1 + 44 >> 2] | 0;
 43042  i1 = (i5 | 0) == 0;
 43043  do {
 43044   if ((i4 | 0) == 0) {
 43045    if (i1) {
 43046     d6 = 0.0;
 43047     d7 = 0.0;
 43048     d8 = 0.0;
 43049     d9 = 0.0;
 43050     d10 = 0.0;
 43051     d11 = 0.0;
 43052     d12 = 0.0;
 43053     d13 = 0.0;
 43054     break;
 43056    d6 = +HEAPF32[i5 >> 2];
 43057    d7 = +HEAPF32[i5 + 4 >> 2];
 43058    d8 = +HEAPF32[i5 + 8 >> 2];
 43059    d9 = +HEAPF32[i5 + 12 >> 2];
 43060    d10 = +HEAPF32[i5 + 16 >> 2];
 43061    d11 = +HEAPF32[i5 + 20 >> 2];
 43062    d12 = +HEAPF32[i5 + 24 >> 2];
 43063    d13 = +HEAPF32[i5 + 28 >> 2];
 43064   } else {
 43065    d14 = +HEAPF32[i4 >> 2];
 43066    if (i1) {
 43067     d6 = d14;
 43068     d7 = +HEAPF32[i4 + 4 >> 2];
 43069     d8 = +HEAPF32[i4 + 8 >> 2];
 43070     d9 = +HEAPF32[i4 + 12 >> 2];
 43071     d10 = +HEAPF32[i4 + 16 >> 2];
 43072     d11 = +HEAPF32[i4 + 20 >> 2];
 43073     d12 = +HEAPF32[i4 + 24 >> 2];
 43074     d13 = +HEAPF32[i4 + 28 >> 2];
 43075     break;
 43076    } else {
 43077     d15 = +HEAPF32[i5 >> 2];
 43078     d16 = +HEAPF32[i4 + 16 >> 2];
 43079     d17 = +HEAPF32[i5 + 16 >> 2];
 43080     d18 = +HEAPF32[i4 + 4 >> 2];
 43081     d19 = +HEAPF32[i5 + 4 >> 2];
 43082     d20 = +HEAPF32[i4 + 20 >> 2];
 43083     d21 = +HEAPF32[i5 + 20 >> 2];
 43084     d22 = +HEAPF32[i4 + 8 >> 2];
 43085     d23 = +HEAPF32[i5 + 8 >> 2];
 43086     d24 = +HEAPF32[i4 + 24 >> 2];
 43087     d25 = +HEAPF32[i5 + 24 >> 2];
 43088     d6 = d14 < d15 ? d14 : d15;
 43089     d7 = d18 < d19 ? d18 : d19;
 43090     d8 = d22 < d23 ? d22 : d23;
 43091     d9 = 0.0;
 43092     d10 = d16 > d17 ? d16 : d17;
 43093     d11 = d20 > d21 ? d20 : d21;
 43094     d12 = d24 > d25 ? d24 : d25;
 43095     d13 = 0.0;
 43096     break;
 43099  } while (0);
 43100  HEAPF32[i2 >> 2] = d6;
 43101  HEAPF32[i2 + 4 >> 2] = d7;
 43102  HEAPF32[i2 + 8 >> 2] = d8;
 43103  HEAPF32[i2 + 12 >> 2] = d9;
 43104  HEAPF32[i3 >> 2] = d10;
 43105  HEAPF32[i3 + 4 >> 2] = d11;
 43106  HEAPF32[i3 + 8 >> 2] = d12;
 43107  HEAPF32[i3 + 12 >> 2] = d13;
 43108  return;
 43110 function __ZN35btSequentialImpulseConstraintSolverD2Ev(i1) {
 43111  i1 = i1 | 0;
 43112  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
 43113  HEAP32[i1 >> 2] = 2368;
 43114  i2 = i1 + 108 | 0;
 43115  i3 = i1 + 116 | 0;
 43116  i4 = HEAP32[i3 >> 2] | 0;
 43117  i5 = i1 + 120 | 0;
 43118  if ((i4 | 0) != 0) {
 43119   if ((HEAP8[i5] | 0) != 0) {
 43120    __Z21btAlignedFreeInternalPv(i4);
 43122   HEAP32[i3 >> 2] = 0;
 43124  HEAP8[i5] = 1;
 43125  HEAP32[i3 >> 2] = 0;
 43126  HEAP32[i2 >> 2] = 0;
 43127  HEAP32[i1 + 112 >> 2] = 0;
 43128  i2 = i1 + 88 | 0;
 43129  i3 = i1 + 96 | 0;
 43130  i5 = HEAP32[i3 >> 2] | 0;
 43131  i4 = i1 + 100 | 0;
 43132  if ((i5 | 0) != 0) {
 43133   if ((HEAP8[i4] | 0) != 0) {
 43134    __Z21btAlignedFreeInternalPv(i5);
 43136   HEAP32[i3 >> 2] = 0;
 43138  HEAP8[i4] = 1;
 43139  HEAP32[i3 >> 2] = 0;
 43140  HEAP32[i2 >> 2] = 0;
 43141  HEAP32[i1 + 92 >> 2] = 0;
 43142  i2 = i1 + 68 | 0;
 43143  i3 = i1 + 76 | 0;
 43144  i4 = HEAP32[i3 >> 2] | 0;
 43145  i5 = i1 + 80 | 0;
 43146  if ((i4 | 0) != 0) {
 43147   if ((HEAP8[i5] | 0) != 0) {
 43148    __Z21btAlignedFreeInternalPv(i4);
 43150   HEAP32[i3 >> 2] = 0;
 43152  HEAP8[i5] = 1;
 43153  HEAP32[i3 >> 2] = 0;
 43154  HEAP32[i2 >> 2] = 0;
 43155  HEAP32[i1 + 72 >> 2] = 0;
 43156  i2 = i1 + 48 | 0;
 43157  i3 = i1 + 56 | 0;
 43158  i5 = HEAP32[i3 >> 2] | 0;
 43159  i4 = i1 + 60 | 0;
 43160  if ((i5 | 0) != 0) {
 43161   if ((HEAP8[i4] | 0) != 0) {
 43162    __Z21btAlignedFreeInternalPv(i5);
 43164   HEAP32[i3 >> 2] = 0;
 43166  HEAP8[i4] = 1;
 43167  HEAP32[i3 >> 2] = 0;
 43168  HEAP32[i2 >> 2] = 0;
 43169  HEAP32[i1 + 52 >> 2] = 0;
 43170  i2 = i1 + 28 | 0;
 43171  i3 = i1 + 36 | 0;
 43172  i4 = HEAP32[i3 >> 2] | 0;
 43173  i5 = i1 + 40 | 0;
 43174  if ((i4 | 0) != 0) {
 43175   if ((HEAP8[i5] | 0) != 0) {
 43176    __Z21btAlignedFreeInternalPv(i4);
 43178   HEAP32[i3 >> 2] = 0;
 43180  HEAP8[i5] = 1;
 43181  HEAP32[i3 >> 2] = 0;
 43182  HEAP32[i2 >> 2] = 0;
 43183  HEAP32[i1 + 32 >> 2] = 0;
 43184  i2 = i1 + 8 | 0;
 43185  i3 = i1 + 16 | 0;
 43186  i5 = HEAP32[i3 >> 2] | 0;
 43187  i4 = i1 + 20 | 0;
 43188  if ((i5 | 0) == 0) {
 43189   HEAP8[i4] = 1;
 43190   HEAP32[i3 >> 2] = 0;
 43191   HEAP32[i2 >> 2] = 0;
 43192   i6 = i1 + 12 | 0;
 43193   HEAP32[i6 >> 2] = 0;
 43194   return;
 43196  if ((HEAP8[i4] | 0) != 0) {
 43197   __Z21btAlignedFreeInternalPv(i5);
 43199  HEAP32[i3 >> 2] = 0;
 43200  HEAP8[i4] = 1;
 43201  HEAP32[i3 >> 2] = 0;
 43202  HEAP32[i2 >> 2] = 0;
 43203  i6 = i1 + 12 | 0;
 43204  HEAP32[i6 >> 2] = 0;
 43205  return;
 43207 function __ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBodyss(i1, i2, i3, i4) {
 43208  i1 = i1 | 0;
 43209  i2 = i2 | 0;
 43210  i3 = i3 | 0;
 43211  i4 = i4 | 0;
 43212  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0;
 43213  i5 = i2 | 0;
 43214  i6 = i2 + 204 | 0;
 43215  do {
 43216   if ((HEAP32[i6 >> 2] & 3 | 0) == 0) {
 43217    if ((HEAP32[i2 + 496 >> 2] & 1 | 0) != 0) {
 43218     break;
 43220    __ZN11btRigidBody10setGravityERK9btVector3(i2, i1 + 220 | 0);
 43222  } while (0);
 43223  if ((HEAP32[i2 + 192 >> 2] | 0) == 0) {
 43224   return;
 43226  if ((HEAP32[i6 >> 2] & 1 | 0) == 0) {
 43227   i6 = i1 + 204 | 0;
 43228   i7 = HEAP32[i6 >> 2] | 0;
 43229   i8 = i1 + 208 | 0;
 43230   do {
 43231    if ((i7 | 0) == (HEAP32[i8 >> 2] | 0)) {
 43232     i9 = (i7 | 0) == 0 ? 1 : i7 << 1;
 43233     if ((i7 | 0) >= (i9 | 0)) {
 43234      i10 = i7;
 43235      break;
 43237     if ((i9 | 0) == 0) {
 43238      i11 = 0;
 43239      i12 = i7;
 43240     } else {
 43241      i13 = __Z22btAlignedAllocInternalji(i9 << 2, 16) | 0;
 43242      i11 = i13;
 43243      i12 = HEAP32[i6 >> 2] | 0;
 43245     i13 = i1 + 212 | 0;
 43246     if ((i12 | 0) > 0) {
 43247      i14 = 0;
 43248      do {
 43249       i15 = i11 + (i14 << 2) | 0;
 43250       if ((i15 | 0) != 0) {
 43251        HEAP32[i15 >> 2] = HEAP32[(HEAP32[i13 >> 2] | 0) + (i14 << 2) >> 2];
 43253       i14 = i14 + 1 | 0;
 43254      } while ((i14 | 0) < (i12 | 0));
 43256     i14 = HEAP32[i13 >> 2] | 0;
 43257     i15 = i1 + 216 | 0;
 43258     if ((i14 | 0) == 0) {
 43259      i16 = i12;
 43260     } else {
 43261      if ((HEAP8[i15] | 0) == 0) {
 43262       i17 = i12;
 43263      } else {
 43264       __Z21btAlignedFreeInternalPv(i14);
 43265       i17 = HEAP32[i6 >> 2] | 0;
 43267      HEAP32[i13 >> 2] = 0;
 43268      i16 = i17;
 43270     HEAP8[i15] = 1;
 43271     HEAP32[i13 >> 2] = i11;
 43272     HEAP32[i8 >> 2] = i9;
 43273     i10 = i16;
 43274    } else {
 43275     i10 = i7;
 43277   } while (0);
 43278   i7 = (HEAP32[i1 + 212 >> 2] | 0) + (i10 << 2) | 0;
 43279   if ((i7 | 0) != 0) {
 43280    HEAP32[i7 >> 2] = i2;
 43282   HEAP32[i6 >> 2] = i10 + 1;
 43283  } else {
 43284   __ZN17btCollisionObject18setActivationStateEi(i5, 2);
 43286  FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 32 >> 2] & 127](i1, i5, i3, i4);
 43287  return;
 43289 function __ZNK13btConvexShape31localGetSupportVertexNonVirtualERK9btVector3(i1, i2, i3) {
 43290  i1 = i1 | 0;
 43291  i2 = i2 | 0;
 43292  i3 = i3 | 0;
 43293  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0;
 43294  i4 = STACKTOP;
 43295  STACKTOP = STACKTOP + 32 | 0;
 43296  i5 = i4 | 0;
 43297  i6 = i4 + 16 | 0;
 43298  i7 = i5;
 43299  i8 = i3;
 43300  HEAP32[i7 >> 2] = HEAP32[i8 >> 2];
 43301  HEAP32[i7 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
 43302  HEAP32[i7 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
 43303  HEAP32[i7 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
 43304  i8 = i5 | 0;
 43305  d9 = +HEAPF32[i8 >> 2];
 43306  i7 = i5 + 4 | 0;
 43307  d10 = +HEAPF32[i7 >> 2];
 43308  i3 = i5 + 8 | 0;
 43309  d11 = +HEAPF32[i3 >> 2];
 43310  if (d9 * d9 + d10 * d10 + d11 * d11 < 1.4210854715202004e-14) {
 43311   HEAPF32[i8 >> 2] = -1.0;
 43312   HEAPF32[i7 >> 2] = -1.0;
 43313   HEAPF32[i3 >> 2] = -1.0;
 43314   HEAPF32[i5 + 12 >> 2] = 0.0;
 43315   d12 = -1.0;
 43316   d13 = -1.0;
 43317   d14 = -1.0;
 43318  } else {
 43319   d12 = d9;
 43320   d13 = d10;
 43321   d14 = d11;
 43323  d11 = 1.0 / +Math_sqrt(+(d14 * d14 + (d13 * d13 + d12 * d12)));
 43324  HEAPF32[i8 >> 2] = d12 * d11;
 43325  HEAPF32[i7 >> 2] = d13 * d11;
 43326  HEAPF32[i3 >> 2] = d14 * d11;
 43327  __ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3(i6, i2, i5);
 43328  switch (HEAP32[i2 + 4 >> 2] | 0) {
 43329  case 0:
 43331    d15 = +HEAPF32[i2 + 44 >> 2];
 43332    break;
 43334  case 1:
 43336    d15 = +HEAPF32[i2 + 44 >> 2];
 43337    break;
 43339  case 13:
 43341    d15 = +HEAPF32[i2 + 44 >> 2];
 43342    break;
 43344  case 10:
 43346    d15 = +HEAPF32[i2 + 44 >> 2];
 43347    break;
 43349  case 5:
 43350  case 4:
 43352    d15 = +HEAPF32[i2 + 44 >> 2];
 43353    break;
 43355  case 8:
 43357    d15 = +HEAPF32[i2 + 28 >> 2] * +HEAPF32[i2 + 12 >> 2];
 43358    break;
 43360  default:
 43362    d15 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i2 >> 2] | 0) + 44 >> 2] & 7](i2);
 43365  d11 = d15 * +HEAPF32[i7 >> 2] + +HEAPF32[i6 + 4 >> 2];
 43366  d14 = d15 * +HEAPF32[i3 >> 2] + +HEAPF32[i6 + 8 >> 2];
 43367  HEAPF32[i1 >> 2] = d15 * +HEAPF32[i8 >> 2] + +HEAPF32[i6 >> 2];
 43368  HEAPF32[i1 + 4 >> 2] = d11;
 43369  HEAPF32[i1 + 8 >> 2] = d14;
 43370  HEAPF32[i1 + 12 >> 2] = 0.0;
 43371  STACKTOP = i4;
 43372  return;
 43374 function __ZN16btManifoldResultC2EP17btCollisionObjectS1_(i1, i2, i3) {
 43375  i1 = i1 | 0;
 43376  i2 = i2 | 0;
 43377  i3 = i3 | 0;
 43378  var i4 = 0, i5 = 0;
 43379  HEAP32[i1 >> 2] = 4312;
 43380  HEAP32[i1 + 4 >> 2] = 0;
 43381  HEAP32[i1 + 136 >> 2] = i2;
 43382  HEAP32[i1 + 140 >> 2] = i3;
 43383  i4 = i1 + 8 | 0;
 43384  i5 = i2 + 4 | 0;
 43385  _memset(i1 + 144 | 0, -1 | 0, 16);
 43386  HEAP32[i4 >> 2] = HEAP32[i5 >> 2];
 43387  HEAP32[i4 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
 43388  HEAP32[i4 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
 43389  HEAP32[i4 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
 43390  i5 = i1 + 24 | 0;
 43391  i4 = i2 + 20 | 0;
 43392  HEAP32[i5 >> 2] = HEAP32[i4 >> 2];
 43393  HEAP32[i5 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
 43394  HEAP32[i5 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
 43395  HEAP32[i5 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
 43396  i4 = i1 + 40 | 0;
 43397  i5 = i2 + 36 | 0;
 43398  HEAP32[i4 >> 2] = HEAP32[i5 >> 2];
 43399  HEAP32[i4 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
 43400  HEAP32[i4 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
 43401  HEAP32[i4 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
 43402  i5 = i1 + 56 | 0;
 43403  i4 = i2 + 52 | 0;
 43404  HEAP32[i5 >> 2] = HEAP32[i4 >> 2];
 43405  HEAP32[i5 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
 43406  HEAP32[i5 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
 43407  HEAP32[i5 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
 43408  i4 = i1 + 72 | 0;
 43409  i5 = i3 + 4 | 0;
 43410  HEAP32[i4 >> 2] = HEAP32[i5 >> 2];
 43411  HEAP32[i4 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
 43412  HEAP32[i4 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
 43413  HEAP32[i4 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
 43414  i5 = i1 + 88 | 0;
 43415  i4 = i3 + 20 | 0;
 43416  HEAP32[i5 >> 2] = HEAP32[i4 >> 2];
 43417  HEAP32[i5 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
 43418  HEAP32[i5 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
 43419  HEAP32[i5 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
 43420  i4 = i1 + 104 | 0;
 43421  i5 = i3 + 36 | 0;
 43422  HEAP32[i4 >> 2] = HEAP32[i5 >> 2];
 43423  HEAP32[i4 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
 43424  HEAP32[i4 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
 43425  HEAP32[i4 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
 43426  i5 = i1 + 120 | 0;
 43427  i1 = i3 + 52 | 0;
 43428  HEAP32[i5 >> 2] = HEAP32[i1 >> 2];
 43429  HEAP32[i5 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
 43430  HEAP32[i5 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
 43431  HEAP32[i5 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
 43432  return;
 43434 function __ZNK18btConvexPolyhedron7projectERK11btTransformRK9btVector3RfS6_(i1, i2, i3, i4, i5) {
 43435  i1 = i1 | 0;
 43436  i2 = i2 | 0;
 43437  i3 = i3 | 0;
 43438  i4 = i4 | 0;
 43439  i5 = i5 | 0;
 43440  var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, i28 = 0, d29 = 0.0;
 43441  HEAPF32[i4 >> 2] = 3.4028234663852886e+38;
 43442  HEAPF32[i5 >> 2] = -3.4028234663852886e+38;
 43443  i6 = HEAP32[i1 + 8 >> 2] | 0;
 43444  if ((i6 | 0) > 0) {
 43445   i7 = HEAP32[i1 + 16 >> 2] | 0;
 43446   i1 = i2 | 0;
 43447   i8 = i2 + 4 | 0;
 43448   i9 = i2 + 8 | 0;
 43449   i10 = i2 + 48 | 0;
 43450   i11 = i2 + 16 | 0;
 43451   i12 = i2 + 20 | 0;
 43452   i13 = i2 + 24 | 0;
 43453   i14 = i2 + 52 | 0;
 43454   i15 = i2 + 32 | 0;
 43455   i16 = i2 + 36 | 0;
 43456   i17 = i2 + 40 | 0;
 43457   i18 = i2 + 56 | 0;
 43458   i2 = i3 | 0;
 43459   i19 = i3 + 4 | 0;
 43460   i20 = i3 + 8 | 0;
 43461   i3 = 0;
 43462   d21 = -3.4028234663852886e+38;
 43463   while (1) {
 43464    d22 = +HEAPF32[i7 + (i3 << 4) >> 2];
 43465    d23 = +HEAPF32[i7 + (i3 << 4) + 4 >> 2];
 43466    d24 = +HEAPF32[i7 + (i3 << 4) + 8 >> 2];
 43467    d25 = (+HEAPF32[i10 >> 2] + (+HEAPF32[i1 >> 2] * d22 + +HEAPF32[i8 >> 2] * d23 + +HEAPF32[i9 >> 2] * d24)) * +HEAPF32[i2 >> 2] + (+HEAPF32[i14 >> 2] + (d22 * +HEAPF32[i11 >> 2] + d23 * +HEAPF32[i12 >> 2] + d24 * +HEAPF32[i13 >> 2])) * +HEAPF32[i19 >> 2] + (+HEAPF32[i18 >> 2] + (d22 * +HEAPF32[i15 >> 2] + d23 * +HEAPF32[i16 >> 2] + d24 * +HEAPF32[i17 >> 2])) * +HEAPF32[i20 >> 2];
 43468    if (d25 < +HEAPF32[i4 >> 2]) {
 43469     HEAPF32[i4 >> 2] = d25;
 43470     d26 = +HEAPF32[i5 >> 2];
 43471    } else {
 43472     d26 = d21;
 43474    if (d25 > d26) {
 43475     HEAPF32[i5 >> 2] = d25;
 43476     d27 = d25;
 43477    } else {
 43478     d27 = d26;
 43480    i28 = i3 + 1 | 0;
 43481    if ((i28 | 0) < (i6 | 0)) {
 43482     i3 = i28;
 43483     d21 = d27;
 43484    } else {
 43485     d29 = d27;
 43486     break;
 43489  } else {
 43490   d29 = -3.4028234663852886e+38;
 43492  d27 = +HEAPF32[i4 >> 2];
 43493  if (d27 <= d29) {
 43494   return;
 43496  HEAPF32[i4 >> 2] = d29;
 43497  HEAPF32[i5 >> 2] = d27;
 43498  return;
 43500 function __ZNK10__cxxabiv120__si_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib(i1, i2, i3, i4, i5) {
 43501  i1 = i1 | 0;
 43502  i2 = i2 | 0;
 43503  i3 = i3 | 0;
 43504  i4 = i4 | 0;
 43505  i5 = i5 | 0;
 43506  var i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
 43507  i6 = i1 | 0;
 43508  if ((i6 | 0) == (HEAP32[i2 + 8 >> 2] | 0)) {
 43509   if ((HEAP32[i2 + 4 >> 2] | 0) != (i3 | 0)) {
 43510    return;
 43512   i7 = i2 + 28 | 0;
 43513   if ((HEAP32[i7 >> 2] | 0) == 1) {
 43514    return;
 43516   HEAP32[i7 >> 2] = i4;
 43517   return;
 43519  if ((i6 | 0) != (HEAP32[i2 >> 2] | 0)) {
 43520   i6 = HEAP32[i1 + 8 >> 2] | 0;
 43521   FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i6 >> 2] | 0) + 24 >> 2] & 63](i6, i2, i3, i4, i5);
 43522   return;
 43524  do {
 43525   if ((HEAP32[i2 + 16 >> 2] | 0) != (i3 | 0)) {
 43526    i6 = i2 + 20 | 0;
 43527    if ((HEAP32[i6 >> 2] | 0) == (i3 | 0)) {
 43528     break;
 43530    HEAP32[i2 + 32 >> 2] = i4;
 43531    i7 = i2 + 44 | 0;
 43532    if ((HEAP32[i7 >> 2] | 0) == 4) {
 43533     return;
 43535    i8 = i2 + 52 | 0;
 43536    HEAP8[i8] = 0;
 43537    i9 = i2 + 53 | 0;
 43538    HEAP8[i9] = 0;
 43539    i10 = HEAP32[i1 + 8 >> 2] | 0;
 43540    FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[i10 >> 2] | 0) + 20 >> 2] & 15](i10, i2, i3, i3, 1, i5);
 43541    if ((HEAP8[i9] & 1) == 0) {
 43542     i11 = 0;
 43543     i12 = 2131;
 43544    } else {
 43545     if ((HEAP8[i8] & 1) == 0) {
 43546      i11 = 1;
 43547      i12 = 2131;
 43550    L2842 : do {
 43551     if ((i12 | 0) == 2131) {
 43552      HEAP32[i6 >> 2] = i3;
 43553      i8 = i2 + 40 | 0;
 43554      HEAP32[i8 >> 2] = (HEAP32[i8 >> 2] | 0) + 1;
 43555      do {
 43556       if ((HEAP32[i2 + 36 >> 2] | 0) == 1) {
 43557        if ((HEAP32[i2 + 24 >> 2] | 0) != 2) {
 43558         i12 = 2134;
 43559         break;
 43561        HEAP8[i2 + 54 | 0] = 1;
 43562        if (i11) {
 43563         break L2842;
 43565       } else {
 43566        i12 = 2134;
 43568      } while (0);
 43569      if ((i12 | 0) == 2134) {
 43570       if (i11) {
 43571        break;
 43574      HEAP32[i7 >> 2] = 4;
 43575      return;
 43577    } while (0);
 43578    HEAP32[i7 >> 2] = 3;
 43579    return;
 43581  } while (0);
 43582  if ((i4 | 0) != 1) {
 43583   return;
 43585  HEAP32[i2 + 32 >> 2] = 1;
 43586  return;
 43588 function __ZN20btConvexHullInternal14getOrientationEPKNS_4EdgeES2_RKNS_7Point32ES5_(i1, i2, i3, i4) {
 43589  i1 = i1 | 0;
 43590  i2 = i2 | 0;
 43591  i3 = i3 | 0;
 43592  i4 = i4 | 0;
 43593  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
 43594  i5 = (HEAP32[i1 + 4 >> 2] | 0) == (i2 | 0);
 43595  if ((HEAP32[i1 >> 2] | 0) != (i2 | 0)) {
 43596   i6 = i5 & 1;
 43597   return i6 | 0;
 43599  if (!i5) {
 43600   i6 = 2;
 43601   return i6 | 0;
 43603  i5 = HEAP32[i4 + 4 >> 2] | 0;
 43604  i7 = HEAP32[i3 + 8 >> 2] | 0;
 43605  i8 = Math_imul(i7, i5) | 0;
 43606  i9 = HEAP32[i4 + 8 >> 2] | 0;
 43607  i10 = HEAP32[i3 + 4 >> 2] | 0;
 43608  i11 = i8 - (Math_imul(i10, i9) | 0) | 0;
 43609  i8 = HEAP32[i3 >> 2] | 0;
 43610  i3 = Math_imul(i8, i9) | 0;
 43611  i9 = HEAP32[i4 >> 2] | 0;
 43612  i4 = i3 - (Math_imul(i9, i7) | 0) | 0;
 43613  i7 = Math_imul(i9, i10) | 0;
 43614  i10 = i7 - (Math_imul(i8, i5) | 0) | 0;
 43615  i5 = HEAP32[i1 + 12 >> 2] | 0;
 43616  i1 = HEAP32[(HEAP32[i2 + 8 >> 2] | 0) + 12 >> 2] | 0;
 43617  i8 = HEAP32[i1 + 88 >> 2] | 0;
 43618  i7 = (HEAP32[i5 + 88 >> 2] | 0) - i8 | 0;
 43619  i9 = HEAP32[i1 + 92 >> 2] | 0;
 43620  i3 = (HEAP32[i5 + 92 >> 2] | 0) - i9 | 0;
 43621  i12 = HEAP32[i1 + 96 >> 2] | 0;
 43622  i1 = (HEAP32[i5 + 96 >> 2] | 0) - i12 | 0;
 43623  i5 = HEAP32[i2 + 12 >> 2] | 0;
 43624  i2 = (HEAP32[i5 + 88 >> 2] | 0) - i8 | 0;
 43625  i8 = (HEAP32[i5 + 92 >> 2] | 0) - i9 | 0;
 43626  i9 = (HEAP32[i5 + 96 >> 2] | 0) - i12 | 0;
 43627  i12 = Math_imul(i9, i3) | 0;
 43628  i5 = i12 - (Math_imul(i8, i1) | 0) | 0;
 43629  i12 = Math_imul(i2, i1) | 0;
 43630  i1 = i12 - (Math_imul(i9, i7) | 0) | 0;
 43631  i9 = Math_imul(i8, i7) | 0;
 43632  i7 = i9 - (Math_imul(i2, i3) | 0) | 0;
 43633  i3 = ___muldi3(i5, (i5 | 0) < 0 ? -1 : 0, i11, (i11 | 0) < 0 ? -1 : 0) | 0;
 43634  i11 = tempRet0;
 43635  i5 = ___muldi3(i1, (i1 | 0) < 0 ? -1 : 0, i4, (i4 | 0) < 0 ? -1 : 0) | 0;
 43636  i4 = tempRet0;
 43637  i1 = ___muldi3(i7, (i7 | 0) < 0 ? -1 : 0, i10, (i10 | 0) < 0 ? -1 : 0) | 0;
 43638  i10 = _i64Add(i3, i11, i1, tempRet0) | 0;
 43639  i1 = _i64Add(i10, tempRet0, i5, i4) | 0;
 43640  i4 = tempRet0;
 43641  i5 = 0;
 43642  i6 = (i4 | 0) > (i5 | 0) | (i4 | 0) == (i5 | 0) & i1 >>> 0 > 0 >>> 0 ? 2 : 1;
 43643  return i6 | 0;
 43645 function __ZNK11btTransformmlERKS_(i1, i2, i3) {
 43646  i1 = i1 | 0;
 43647  i2 = i2 | 0;
 43648  i3 = i3 | 0;
 43649  var d4 = 0.0, d5 = 0.0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0;
 43650  d4 = +HEAPF32[i3 >> 2];
 43651  d5 = +HEAPF32[i2 >> 2];
 43652  d6 = +HEAPF32[i3 + 16 >> 2];
 43653  d7 = +HEAPF32[i2 + 4 >> 2];
 43654  d8 = +HEAPF32[i3 + 32 >> 2];
 43655  d9 = +HEAPF32[i2 + 8 >> 2];
 43656  d10 = +HEAPF32[i3 + 4 >> 2];
 43657  d11 = +HEAPF32[i3 + 20 >> 2];
 43658  d12 = +HEAPF32[i3 + 36 >> 2];
 43659  d13 = +HEAPF32[i3 + 8 >> 2];
 43660  d14 = +HEAPF32[i3 + 24 >> 2];
 43661  d15 = +HEAPF32[i3 + 40 >> 2];
 43662  d16 = +HEAPF32[i2 + 16 >> 2];
 43663  d17 = +HEAPF32[i2 + 20 >> 2];
 43664  d18 = +HEAPF32[i2 + 24 >> 2];
 43665  d19 = +HEAPF32[i2 + 32 >> 2];
 43666  d20 = +HEAPF32[i2 + 36 >> 2];
 43667  d21 = +HEAPF32[i2 + 40 >> 2];
 43668  d22 = +HEAPF32[i3 + 48 >> 2];
 43669  d23 = +HEAPF32[i3 + 52 >> 2];
 43670  d24 = +HEAPF32[i3 + 56 >> 2];
 43671  d25 = +HEAPF32[i2 + 48 >> 2] + (d5 * d22 + d7 * d23 + d9 * d24);
 43672  d26 = +HEAPF32[i2 + 52 >> 2] + (d22 * d16 + d23 * d17 + d24 * d18);
 43673  d27 = +HEAPF32[i2 + 56 >> 2] + (d22 * d19 + d23 * d20 + d24 * d21);
 43674  HEAPF32[i1 >> 2] = d4 * d5 + d6 * d7 + d8 * d9;
 43675  HEAPF32[i1 + 4 >> 2] = d5 * d10 + d7 * d11 + d9 * d12;
 43676  HEAPF32[i1 + 8 >> 2] = d5 * d13 + d7 * d14 + d9 * d15;
 43677  HEAPF32[i1 + 12 >> 2] = 0.0;
 43678  HEAPF32[i1 + 16 >> 2] = d4 * d16 + d6 * d17 + d8 * d18;
 43679  HEAPF32[i1 + 20 >> 2] = d10 * d16 + d11 * d17 + d12 * d18;
 43680  HEAPF32[i1 + 24 >> 2] = d13 * d16 + d14 * d17 + d15 * d18;
 43681  HEAPF32[i1 + 28 >> 2] = 0.0;
 43682  HEAPF32[i1 + 32 >> 2] = d4 * d19 + d6 * d20 + d8 * d21;
 43683  HEAPF32[i1 + 36 >> 2] = d10 * d19 + d11 * d20 + d12 * d21;
 43684  HEAPF32[i1 + 40 >> 2] = d13 * d19 + d14 * d20 + d15 * d21;
 43685  HEAPF32[i1 + 44 >> 2] = 0.0;
 43686  HEAPF32[i1 + 48 >> 2] = d25;
 43687  HEAPF32[i1 + 52 >> 2] = d26;
 43688  HEAPF32[i1 + 56 >> 2] = d27;
 43689  HEAPF32[i1 + 60 >> 2] = 0.0;
 43690  return;
 43692 function __ZN20btAlignedObjectArrayI9btElementE17quickSortInternalI31btUnionFindElementSortPredicateEEvT_ii(i1, i2, i3, i4) {
 43693  i1 = i1 | 0;
 43694  i2 = i2 | 0;
 43695  i3 = i3 | 0;
 43696  i4 = i4 | 0;
 43697  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0;
 43698  i5 = STACKTOP;
 43699  STACKTOP = STACKTOP + 16 | 0;
 43700  i6 = i2;
 43701  i2 = STACKTOP;
 43702  STACKTOP = STACKTOP + 1 | 0;
 43703  STACKTOP = STACKTOP + 7 >> 3 << 3;
 43704  HEAP8[i2] = HEAP8[i6] | 0;
 43705  i6 = i5 | 0;
 43706  i2 = i5 + 8 | 0;
 43707  i7 = i1 + 12 | 0;
 43708  i8 = HEAP32[i7 >> 2] | 0;
 43709  i9 = HEAP32[i8 + (((i4 + i3 | 0) / 2 | 0) << 3) >> 2] | 0;
 43710  i10 = i4;
 43711  i11 = i3;
 43712  i12 = i8;
 43713  while (1) {
 43714   i8 = i11;
 43715   while (1) {
 43716    i13 = i8 + 1 | 0;
 43717    if ((HEAP32[i12 + (i8 << 3) >> 2] | 0) < (i9 | 0)) {
 43718     i8 = i13;
 43719    } else {
 43720     i14 = i10;
 43721     break;
 43724   while (1) {
 43725    i15 = i12 + (i14 << 3) | 0;
 43726    i16 = i14 - 1 | 0;
 43727    if ((i9 | 0) < (HEAP32[i15 >> 2] | 0)) {
 43728     i14 = i16;
 43729    } else {
 43730     break;
 43733   if ((i8 | 0) > (i14 | 0)) {
 43734    i17 = i14;
 43735    i18 = i8;
 43736   } else {
 43737    i19 = i12 + (i8 << 3) | 0;
 43738    i20 = HEAP32[i19 >> 2] | 0;
 43739    i21 = HEAP32[i19 + 4 >> 2] | 0;
 43740    i22 = i15;
 43741    i23 = HEAP32[i22 + 4 >> 2] | 0;
 43742    HEAP32[i19 >> 2] = HEAP32[i22 >> 2];
 43743    HEAP32[i19 + 4 >> 2] = i23;
 43744    i23 = (HEAP32[i7 >> 2] | 0) + (i14 << 3) | 0;
 43745    HEAP32[i23 >> 2] = i20;
 43746    HEAP32[i23 + 4 >> 2] = i21;
 43747    i17 = i16;
 43748    i18 = i13;
 43750   if ((i18 | 0) > (i17 | 0)) {
 43751    break;
 43753   i10 = i17;
 43754   i11 = i18;
 43755   i12 = HEAP32[i7 >> 2] | 0;
 43757  if ((i17 | 0) > (i3 | 0)) {
 43758   __ZN20btAlignedObjectArrayI9btElementE17quickSortInternalI31btUnionFindElementSortPredicateEEvT_ii(i1, i6, i3, i17);
 43760  if ((i18 | 0) >= (i4 | 0)) {
 43761   STACKTOP = i5;
 43762   return;
 43764  __ZN20btAlignedObjectArrayI9btElementE17quickSortInternalI31btUnionFindElementSortPredicateEEvT_ii(i1, i2, i18, i4);
 43765  STACKTOP = i5;
 43766  return;
 43768 function __ZN20btConvexHullInternal11getBtNormalEPNS_4FaceE(i1, i2, i3) {
 43769  i1 = i1 | 0;
 43770  i2 = i2 | 0;
 43771  i3 = i3 | 0;
 43772  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0;
 43773  i4 = STACKTOP;
 43774  STACKTOP = STACKTOP + 32 | 0;
 43775  i5 = i4 | 0;
 43776  i6 = i4 + 16 | 0;
 43777  i7 = HEAP32[i2 + 108 >> 2] | 0;
 43778  HEAPF32[i6 + (i7 << 2) >> 2] = +(HEAP32[i3 + 28 >> 2] | 0);
 43779  i8 = HEAP32[i2 + 112 >> 2] | 0;
 43780  HEAPF32[i6 + (i8 << 2) >> 2] = +(HEAP32[i3 + 32 >> 2] | 0);
 43781  i9 = HEAP32[i2 + 104 >> 2] | 0;
 43782  HEAPF32[i6 + (i9 << 2) >> 2] = +(HEAP32[i3 + 36 >> 2] | 0);
 43783  d10 = +HEAPF32[i2 >> 2];
 43784  d11 = +HEAPF32[i6 >> 2] * d10;
 43785  d12 = +HEAPF32[i2 + 4 >> 2];
 43786  d13 = +HEAPF32[i6 + 4 >> 2] * d12;
 43787  d14 = +HEAPF32[i2 + 8 >> 2];
 43788  d15 = +HEAPF32[i6 + 8 >> 2] * d14;
 43789  HEAPF32[i5 + (i7 << 2) >> 2] = +(HEAP32[i3 + 44 >> 2] | 0);
 43790  HEAPF32[i5 + (i8 << 2) >> 2] = +(HEAP32[i3 + 48 >> 2] | 0);
 43791  HEAPF32[i5 + (i9 << 2) >> 2] = +(HEAP32[i3 + 52 >> 2] | 0);
 43792  d16 = d10 * +HEAPF32[i5 >> 2];
 43793  d10 = d12 * +HEAPF32[i5 + 4 >> 2];
 43794  d12 = d14 * +HEAPF32[i5 + 8 >> 2];
 43795  d14 = d13 * d12 - d15 * d10;
 43796  d17 = d15 * d16 - d11 * d12;
 43797  d12 = d11 * d10 - d13 * d16;
 43798  i5 = i1 | 0;
 43799  HEAPF32[i5 >> 2] = d14;
 43800  i3 = i1 + 4 | 0;
 43801  HEAPF32[i3 >> 2] = d17;
 43802  i9 = i1 + 8 | 0;
 43803  HEAPF32[i9 >> 2] = d12;
 43804  HEAPF32[i1 + 12 >> 2] = 0.0;
 43805  d16 = +Math_sqrt(+(d12 * d12 + (d14 * d14 + d17 * d17)));
 43806  if ((i7 + 1 | 0) == (i8 | 0) | (i7 - 2 | 0) == (i8 | 0)) {
 43807   d18 = d16;
 43808   d19 = 1.0 / d18;
 43809   d20 = d14 * d19;
 43810   HEAPF32[i5 >> 2] = d20;
 43811   d21 = d17 * d19;
 43812   HEAPF32[i3 >> 2] = d21;
 43813   d22 = d12 * d19;
 43814   HEAPF32[i9 >> 2] = d22;
 43815   STACKTOP = i4;
 43816   return;
 43818  d18 = -0.0 - d16;
 43819  d19 = 1.0 / d18;
 43820  d20 = d14 * d19;
 43821  HEAPF32[i5 >> 2] = d20;
 43822  d21 = d17 * d19;
 43823  HEAPF32[i3 >> 2] = d21;
 43824  d22 = d12 * d19;
 43825  HEAPF32[i9 >> 2] = d22;
 43826  STACKTOP = i4;
 43827  return;
 43829 function __ZNK16btCollisionShape21calculateTemporalAabbERK11btTransformRK9btVector3S5_fRS3_S6_(i1, i2, i3, i4, d5, i6, i7) {
 43830  i1 = i1 | 0;
 43831  i2 = i2 | 0;
 43832  i3 = i3 | 0;
 43833  i4 = i4 | 0;
 43834  d5 = +d5;
 43835  i6 = i6 | 0;
 43836  i7 = i7 | 0;
 43837  var d8 = 0.0, i9 = 0, d10 = 0.0, i11 = 0, d12 = 0.0, i13 = 0, d14 = 0.0, i15 = 0, d16 = 0.0, i17 = 0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0;
 43838  FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] & 127](i1, i2, i6, i7);
 43839  i2 = i7 | 0;
 43840  d8 = +HEAPF32[i2 >> 2];
 43841  i9 = i7 + 4 | 0;
 43842  d10 = +HEAPF32[i9 >> 2];
 43843  i11 = i7 + 8 | 0;
 43844  d12 = +HEAPF32[i11 >> 2];
 43845  i13 = i6 | 0;
 43846  d14 = +HEAPF32[i13 >> 2];
 43847  i15 = i6 + 4 | 0;
 43848  d16 = +HEAPF32[i15 >> 2];
 43849  i17 = i6 + 8 | 0;
 43850  d18 = +HEAPF32[i17 >> 2];
 43851  d19 = +HEAPF32[i3 >> 2] * d5;
 43852  d20 = +HEAPF32[i3 + 4 >> 2] * d5;
 43853  d21 = +HEAPF32[i3 + 8 >> 2] * d5;
 43854  if (d19 > 0.0) {
 43855   d22 = d14;
 43856   d23 = d8 + d19;
 43857  } else {
 43858   d22 = d14 + d19;
 43859   d23 = d8;
 43861  if (d20 > 0.0) {
 43862   d24 = d16;
 43863   d25 = d10 + d20;
 43864  } else {
 43865   d24 = d16 + d20;
 43866   d25 = d10;
 43868  if (d21 > 0.0) {
 43869   d26 = d18;
 43870   d27 = d12 + d21;
 43871  } else {
 43872   d26 = d18 + d21;
 43873   d27 = d12;
 43875  d12 = +HEAPF32[i4 >> 2];
 43876  d21 = +HEAPF32[i4 + 4 >> 2];
 43877  d18 = +HEAPF32[i4 + 8 >> 2];
 43878  d10 = +Math_sqrt(+(d12 * d12 + d21 * d21 + d18 * d18));
 43879  d18 = d10 * +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i1 >> 2] | 0) + 16 >> 2] & 7](i1) * d5;
 43880  HEAPF32[i13 >> 2] = d22;
 43881  HEAPF32[i15 >> 2] = d24;
 43882  HEAPF32[i17 >> 2] = d26;
 43883  HEAPF32[i6 + 12 >> 2] = 0.0;
 43884  HEAPF32[i2 >> 2] = d23;
 43885  HEAPF32[i9 >> 2] = d25;
 43886  HEAPF32[i11 >> 2] = d27;
 43887  HEAPF32[i7 + 12 >> 2] = 0.0;
 43888  HEAPF32[i13 >> 2] = +HEAPF32[i13 >> 2] - d18;
 43889  HEAPF32[i15 >> 2] = +HEAPF32[i15 >> 2] - d18;
 43890  HEAPF32[i17 >> 2] = +HEAPF32[i17 >> 2] - d18;
 43891  HEAPF32[i2 >> 2] = d18 + +HEAPF32[i2 >> 2];
 43892  HEAPF32[i9 >> 2] = d18 + +HEAPF32[i9 >> 2];
 43893  HEAPF32[i11 >> 2] = d18 + +HEAPF32[i11 >> 2];
 43894  return;
 43896 function __ZN11btRigidBody25internalWritebackVelocityEf(i1, d2) {
 43897  i1 = i1 | 0;
 43898  d2 = +d2;
 43899  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, d7 = 0.0, i8 = 0, d9 = 0.0;
 43900  i3 = STACKTOP;
 43901  STACKTOP = STACKTOP + 64 | 0;
 43902  i4 = i3 | 0;
 43903  if (+HEAPF32[i1 + 336 >> 2] == 0.0) {
 43904   STACKTOP = i3;
 43905   return;
 43907  i5 = i1 + 304 | 0;
 43908  i6 = i1 + 308 | 0;
 43909  d7 = +HEAPF32[i6 >> 2] + +HEAPF32[i1 + 508 >> 2];
 43910  i8 = i1 + 312 | 0;
 43911  d9 = +HEAPF32[i8 >> 2] + +HEAPF32[i1 + 512 >> 2];
 43912  HEAPF32[i5 >> 2] = +HEAPF32[i5 >> 2] + +HEAPF32[i1 + 504 >> 2];
 43913  HEAPF32[i6 >> 2] = d7;
 43914  HEAPF32[i8 >> 2] = d9;
 43915  HEAPF32[i1 + 316 >> 2] = 0.0;
 43916  i8 = i1 + 320 | 0;
 43917  i6 = i1 + 324 | 0;
 43918  d9 = +HEAPF32[i6 >> 2] + +HEAPF32[i1 + 524 >> 2];
 43919  i5 = i1 + 328 | 0;
 43920  d7 = +HEAPF32[i5 >> 2] + +HEAPF32[i1 + 528 >> 2];
 43921  HEAPF32[i8 >> 2] = +HEAPF32[i8 >> 2] + +HEAPF32[i1 + 520 >> 2];
 43922  HEAPF32[i6 >> 2] = d9;
 43923  HEAPF32[i5 >> 2] = d7;
 43924  HEAPF32[i1 + 332 >> 2] = 0.0;
 43925  i5 = i1 + 4 | 0;
 43926  __ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i5, i1 + 568 | 0, i1 + 584 | 0, d2, i4);
 43927  i6 = i5;
 43928  i5 = i4;
 43929  HEAP32[i6 >> 2] = HEAP32[i5 >> 2];
 43930  HEAP32[i6 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
 43931  HEAP32[i6 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
 43932  HEAP32[i6 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
 43933  i5 = i1 + 20 | 0;
 43934  i6 = i4 + 16 | 0;
 43935  HEAP32[i5 >> 2] = HEAP32[i6 >> 2];
 43936  HEAP32[i5 + 4 >> 2] = HEAP32[i6 + 4 >> 2];
 43937  HEAP32[i5 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
 43938  HEAP32[i5 + 12 >> 2] = HEAP32[i6 + 12 >> 2];
 43939  i6 = i1 + 36 | 0;
 43940  i5 = i4 + 32 | 0;
 43941  HEAP32[i6 >> 2] = HEAP32[i5 >> 2];
 43942  HEAP32[i6 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
 43943  HEAP32[i6 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
 43944  HEAP32[i6 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
 43945  i5 = i1 + 52 | 0;
 43946  i1 = i4 + 48 | 0;
 43947  HEAP32[i5 >> 2] = HEAP32[i1 >> 2];
 43948  HEAP32[i5 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
 43949  HEAP32[i5 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
 43950  HEAP32[i5 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
 43951  STACKTOP = i3;
 43952  return;
 43954 function __ZN34btClosestNotMeConvexResultCallback15addSingleResultERN16btCollisionWorld17LocalConvexResultEb(i1, i2, i3) {
 43955  i1 = i1 | 0;
 43956  i2 = i2 | 0;
 43957  i3 = i3 | 0;
 43958  var i4 = 0, d5 = 0.0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0;
 43959  i4 = HEAP32[i2 >> 2] | 0;
 43960  if ((i4 | 0) == (HEAP32[i1 + 80 >> 2] | 0)) {
 43961   d5 = 1.0;
 43962   return +d5;
 43964  if ((HEAP32[i4 + 204 >> 2] & 4 | 0) != 0) {
 43965   d5 = 1.0;
 43966   return +d5;
 43968  i6 = i2 + 8 | 0;
 43969  i7 = i2 + 12 | 0;
 43970  i8 = i2 + 16 | 0;
 43971  if ((+HEAPF32[i1 + 28 >> 2] - +HEAPF32[i1 + 12 >> 2]) * +HEAPF32[i6 >> 2] + (+HEAPF32[i1 + 32 >> 2] - +HEAPF32[i1 + 16 >> 2]) * +HEAPF32[i7 >> 2] + (+HEAPF32[i1 + 36 >> 2] - +HEAPF32[i1 + 20 >> 2]) * +HEAPF32[i8 >> 2] >= -0.0 - +HEAPF32[i1 + 84 >> 2]) {
 43972   d5 = 1.0;
 43973   return +d5;
 43975  i9 = i2 + 40 | 0;
 43976  HEAPF32[i1 + 4 >> 2] = +HEAPF32[i9 >> 2];
 43977  HEAP32[i1 + 76 >> 2] = i4;
 43978  if (i3) {
 43979   i3 = i1 + 44 | 0;
 43980   i10 = i6;
 43981   HEAP32[i3 >> 2] = HEAP32[i10 >> 2];
 43982   HEAP32[i3 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
 43983   HEAP32[i3 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
 43984   HEAP32[i3 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
 43985  } else {
 43986   d11 = +HEAPF32[i2 + 8 >> 2];
 43987   d12 = +HEAPF32[i7 >> 2];
 43988   d13 = +HEAPF32[i8 >> 2];
 43989   d14 = d11 * +HEAPF32[i4 + 20 >> 2] + d12 * +HEAPF32[i4 + 24 >> 2] + d13 * +HEAPF32[i4 + 28 >> 2];
 43990   d15 = d11 * +HEAPF32[i4 + 36 >> 2] + d12 * +HEAPF32[i4 + 40 >> 2] + d13 * +HEAPF32[i4 + 44 >> 2];
 43991   HEAPF32[i1 + 44 >> 2] = +HEAPF32[i4 + 4 >> 2] * d11 + +HEAPF32[i4 + 8 >> 2] * d12 + +HEAPF32[i4 + 12 >> 2] * d13;
 43992   HEAPF32[i1 + 48 >> 2] = d14;
 43993   HEAPF32[i1 + 52 >> 2] = d15;
 43994   HEAPF32[i1 + 56 >> 2] = 0.0;
 43996  i4 = i1 + 60 | 0;
 43997  i1 = i2 + 24 | 0;
 43998  HEAP32[i4 >> 2] = HEAP32[i1 >> 2];
 43999  HEAP32[i4 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
 44000  HEAP32[i4 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
 44001  HEAP32[i4 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
 44002  d5 = +HEAPF32[i9 >> 2];
 44003  return +d5;
 44005 function __ZNK11btTransform12inverseTimesERKS_(i1, i2, i3) {
 44006  i1 = i1 | 0;
 44007  i2 = i2 | 0;
 44008  i3 = i3 | 0;
 44009  var d4 = 0.0, d5 = 0.0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0;
 44010  d4 = +HEAPF32[i3 + 48 >> 2] - +HEAPF32[i2 + 48 >> 2];
 44011  d5 = +HEAPF32[i3 + 52 >> 2] - +HEAPF32[i2 + 52 >> 2];
 44012  d6 = +HEAPF32[i3 + 56 >> 2] - +HEAPF32[i2 + 56 >> 2];
 44013  d7 = +HEAPF32[i2 >> 2];
 44014  d8 = +HEAPF32[i3 >> 2];
 44015  d9 = +HEAPF32[i2 + 16 >> 2];
 44016  d10 = +HEAPF32[i3 + 16 >> 2];
 44017  d11 = +HEAPF32[i2 + 32 >> 2];
 44018  d12 = +HEAPF32[i3 + 32 >> 2];
 44019  d13 = +HEAPF32[i3 + 4 >> 2];
 44020  d14 = +HEAPF32[i3 + 20 >> 2];
 44021  d15 = +HEAPF32[i3 + 36 >> 2];
 44022  d16 = +HEAPF32[i3 + 8 >> 2];
 44023  d17 = +HEAPF32[i3 + 24 >> 2];
 44024  d18 = +HEAPF32[i3 + 40 >> 2];
 44025  d19 = +HEAPF32[i2 + 4 >> 2];
 44026  d20 = +HEAPF32[i2 + 20 >> 2];
 44027  d21 = +HEAPF32[i2 + 36 >> 2];
 44028  d22 = +HEAPF32[i2 + 8 >> 2];
 44029  d23 = +HEAPF32[i2 + 24 >> 2];
 44030  d24 = +HEAPF32[i2 + 40 >> 2];
 44031  HEAPF32[i1 >> 2] = d7 * d8 + d9 * d10 + d11 * d12;
 44032  HEAPF32[i1 + 4 >> 2] = d7 * d13 + d9 * d14 + d11 * d15;
 44033  HEAPF32[i1 + 8 >> 2] = d7 * d16 + d9 * d17 + d11 * d18;
 44034  HEAPF32[i1 + 12 >> 2] = 0.0;
 44035  HEAPF32[i1 + 16 >> 2] = d8 * d19 + d10 * d20 + d12 * d21;
 44036  HEAPF32[i1 + 20 >> 2] = d13 * d19 + d14 * d20 + d15 * d21;
 44037  HEAPF32[i1 + 24 >> 2] = d16 * d19 + d17 * d20 + d18 * d21;
 44038  HEAPF32[i1 + 28 >> 2] = 0.0;
 44039  HEAPF32[i1 + 32 >> 2] = d8 * d22 + d10 * d23 + d12 * d24;
 44040  HEAPF32[i1 + 36 >> 2] = d13 * d22 + d14 * d23 + d15 * d24;
 44041  HEAPF32[i1 + 40 >> 2] = d16 * d22 + d17 * d23 + d18 * d24;
 44042  HEAPF32[i1 + 44 >> 2] = 0.0;
 44043  HEAPF32[i1 + 48 >> 2] = d4 * d7 + d5 * d9 + d6 * d11;
 44044  HEAPF32[i1 + 52 >> 2] = d4 * d19 + d5 * d20 + d6 * d21;
 44045  HEAPF32[i1 + 56 >> 2] = d4 * d22 + d5 * d23 + d6 * d24;
 44046  HEAPF32[i1 + 60 >> 2] = 0.0;
 44047  return;
 44049 function __ZN20btAlignedObjectArrayI6btFaceE6resizeEiRKS0_(i1, i2, i3) {
 44050  i1 = i1 | 0;
 44051  i2 = i2 | 0;
 44052  i3 = i3 | 0;
 44053  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0;
 44054  i4 = i1 + 4 | 0;
 44055  i5 = HEAP32[i4 >> 2] | 0;
 44056  if ((i5 | 0) <= (i2 | 0)) {
 44057   if ((i5 | 0) >= (i2 | 0)) {
 44058    HEAP32[i4 >> 2] = i2;
 44059    return;
 44061   __ZN20btAlignedObjectArrayI6btFaceE7reserveEi(i1, i2);
 44062   i6 = i1 + 12 | 0;
 44063   i7 = i3 | 0;
 44064   i8 = i3 + 20 | 0;
 44065   i9 = i3 + 40 | 0;
 44066   i3 = i5;
 44067   do {
 44068    i10 = (HEAP32[i6 >> 2] | 0) + (i3 * 56 | 0) | 0;
 44069    if ((i10 | 0) != 0) {
 44070     __ZN20btAlignedObjectArrayIiEC2ERKS0_(i10, i7);
 44071     __ZN20btAlignedObjectArrayIiEC2ERKS0_(i10 + 20 | 0, i8);
 44072     i11 = i10 + 40 | 0;
 44073     HEAP32[i11 >> 2] = HEAP32[i9 >> 2];
 44074     HEAP32[i11 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
 44075     HEAP32[i11 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
 44076     HEAP32[i11 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
 44078    i3 = i3 + 1 | 0;
 44079   } while ((i3 | 0) < (i2 | 0));
 44080   HEAP32[i4 >> 2] = i2;
 44081   return;
 44083  i3 = i1 + 12 | 0;
 44084  i1 = i2;
 44085  do {
 44086   i9 = HEAP32[i3 >> 2] | 0;
 44087   i8 = i9 + (i1 * 56 | 0) + 24 | 0;
 44088   i7 = i9 + (i1 * 56 | 0) + 32 | 0;
 44089   i6 = HEAP32[i7 >> 2] | 0;
 44090   i11 = i9 + (i1 * 56 | 0) + 36 | 0;
 44091   if ((i6 | 0) != 0) {
 44092    if ((HEAP8[i11] | 0) != 0) {
 44093     __Z21btAlignedFreeInternalPv(i6);
 44095    HEAP32[i7 >> 2] = 0;
 44097   HEAP8[i11] = 1;
 44098   HEAP32[i7 >> 2] = 0;
 44099   HEAP32[i8 >> 2] = 0;
 44100   HEAP32[i9 + (i1 * 56 | 0) + 28 >> 2] = 0;
 44101   i8 = i9 + (i1 * 56 | 0) + 4 | 0;
 44102   i7 = i9 + (i1 * 56 | 0) + 12 | 0;
 44103   i11 = HEAP32[i7 >> 2] | 0;
 44104   i6 = i9 + (i1 * 56 | 0) + 16 | 0;
 44105   if ((i11 | 0) != 0) {
 44106    if ((HEAP8[i6] | 0) != 0) {
 44107     __Z21btAlignedFreeInternalPv(i11);
 44109    HEAP32[i7 >> 2] = 0;
 44111   HEAP8[i6] = 1;
 44112   HEAP32[i7 >> 2] = 0;
 44113   HEAP32[i8 >> 2] = 0;
 44114   HEAP32[i9 + (i1 * 56 | 0) + 8 >> 2] = 0;
 44115   i1 = i1 + 1 | 0;
 44116  } while ((i1 | 0) < (i5 | 0));
 44117  HEAP32[i4 >> 2] = i2;
 44118  return;
 44120 function __ZN35btSequentialImpulseConstraintSolver21addFrictionConstraintERK9btVector3P11btRigidBodyS4_iR15btManifoldPointS2_S2_P17btCollisionObjectS8_fff(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, d11, d12, d13) {
 44121  i1 = i1 | 0;
 44122  i2 = i2 | 0;
 44123  i3 = i3 | 0;
 44124  i4 = i4 | 0;
 44125  i5 = i5 | 0;
 44126  i6 = i6 | 0;
 44127  i7 = i7 | 0;
 44128  i8 = i8 | 0;
 44129  i9 = i9 | 0;
 44130  i10 = i10 | 0;
 44131  d11 = +d11;
 44132  d12 = +d12;
 44133  d13 = +d13;
 44134  var i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0;
 44135  i4 = i1 + 48 | 0;
 44136  i3 = HEAP32[i4 >> 2] | 0;
 44137  i14 = i1 + 52 | 0;
 44138  do {
 44139   if ((i3 | 0) == (HEAP32[i14 >> 2] | 0)) {
 44140    i15 = (i3 | 0) == 0 ? 1 : i3 << 1;
 44141    if ((i3 | 0) >= (i15 | 0)) {
 44142     i16 = i3;
 44143     break;
 44145    if ((i15 | 0) == 0) {
 44146     i17 = 0;
 44147     i18 = i3;
 44148    } else {
 44149     i19 = __Z22btAlignedAllocInternalji(i15 * 136 | 0, 16) | 0;
 44150     i17 = i19;
 44151     i18 = HEAP32[i4 >> 2] | 0;
 44153    i19 = i1 + 56 | 0;
 44154    if ((i18 | 0) > 0) {
 44155     i20 = 0;
 44156     do {
 44157      i21 = i17 + (i20 * 136 | 0) | 0;
 44158      i22 = (HEAP32[i19 >> 2] | 0) + (i20 * 136 | 0) | 0;
 44159      _memcpy(i21 | 0, i22 | 0, 136) | 0;
 44160      i20 = i20 + 1 | 0;
 44161     } while ((i20 | 0) < (i18 | 0));
 44163    i20 = HEAP32[i19 >> 2] | 0;
 44164    i22 = i1 + 60 | 0;
 44165    if ((i20 | 0) != 0) {
 44166     if ((HEAP8[i22] | 0) != 0) {
 44167      __Z21btAlignedFreeInternalPv(i20);
 44169     HEAP32[i19 >> 2] = 0;
 44171    HEAP8[i22] = 1;
 44172    HEAP32[i19 >> 2] = i17;
 44173    HEAP32[i14 >> 2] = i15;
 44174    i16 = HEAP32[i4 >> 2] | 0;
 44175   } else {
 44176    i16 = i3;
 44178  } while (0);
 44179  HEAP32[i4 >> 2] = i16 + 1;
 44180  i16 = HEAP32[i1 + 56 >> 2] | 0;
 44181  i1 = i16 + (i3 * 136 | 0) | 0;
 44182  HEAP32[i16 + (i3 * 136 | 0) + 100 >> 2] = i5;
 44183  __ZN35btSequentialImpulseConstraintSolver23setupFrictionConstraintER18btSolverConstraintRK9btVector3P11btRigidBodyS6_R15btManifoldPointS4_S4_P17btCollisionObjectSA_fff(0, i1, i2, 0, 0, i6, i7, i8, i9, i10, d11, d12, d13);
 44184  return i1 | 0;
 44186 function __ZN23btDiscreteDynamicsWorld14stepSimulationEfif(i1, d2, i3, d4) {
 44187  i1 = i1 | 0;
 44188  d2 = +d2;
 44189  i3 = i3 | 0;
 44190  d4 = +d4;
 44191  var i5 = 0, i6 = 0, i7 = 0, d8 = 0.0, i9 = 0, d10 = 0.0, i11 = 0;
 44192  __ZN15CProfileManager5ResetEv();
 44193  __ZN15CProfileManager13Start_ProfileEPKc(696);
 44194  i5 = i1 + 236 | 0;
 44195  do {
 44196   if ((i3 | 0) == 0) {
 44197    HEAPF32[i5 >> 2] = d2;
 44198    i6 = +Math_abs(+d2) >= 1.1920928955078125e-7 | 0;
 44199    i7 = i6;
 44200    d8 = d2;
 44201    i9 = i6;
 44202   } else {
 44203    d10 = +HEAPF32[i5 >> 2] + d2;
 44204    HEAPF32[i5 >> 2] = d10;
 44205    if (d10 < d4) {
 44206     i7 = i3;
 44207     d8 = d4;
 44208     i9 = 0;
 44209     break;
 44211    i6 = ~~(d10 / d4);
 44212    HEAPF32[i5 >> 2] = d10 - +(i6 | 0) * d4;
 44213    i7 = i3;
 44214    d8 = d4;
 44215    i9 = i6;
 44217  } while (0);
 44218  i3 = i1 | 0;
 44219  i5 = i1;
 44220  if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i5 >> 2] | 0) + 16 >> 2] & 127](i3) | 0) != 0) {
 44221   i6 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i5 >> 2] | 0) + 16 >> 2] & 127](i3) | 0;
 44222   HEAP8[12016] = (FUNCTION_TABLE_ii[HEAP32[(HEAP32[i6 >> 2] | 0) + 48 >> 2] & 127](i6) | 0) >>> 4 & 1;
 44224  do {
 44225   if ((i9 | 0) == 0) {
 44226    FUNCTION_TABLE_vi[HEAP32[(HEAP32[i1 >> 2] | 0) + 76 >> 2] & 511](i1);
 44227   } else {
 44228    i6 = (i9 | 0) > (i7 | 0) ? i7 : i9;
 44229    i3 = i1;
 44230    FUNCTION_TABLE_vif[HEAP32[(HEAP32[i3 >> 2] | 0) + 160 >> 2] & 31](i1, d8 * +(i6 | 0));
 44231    i5 = i1;
 44232    FUNCTION_TABLE_vi[HEAP32[(HEAP32[i5 >> 2] | 0) + 164 >> 2] & 511](i1);
 44233    if ((i6 | 0) > 0) {
 44234     i11 = 0;
 44235    } else {
 44236     break;
 44238    do {
 44239     FUNCTION_TABLE_vif[HEAP32[(HEAP32[i3 >> 2] | 0) + 156 >> 2] & 31](i1, d8);
 44240     FUNCTION_TABLE_vi[HEAP32[(HEAP32[i5 >> 2] | 0) + 76 >> 2] & 511](i1);
 44241     i11 = i11 + 1 | 0;
 44242    } while ((i11 | 0) < (i6 | 0));
 44244  } while (0);
 44245  FUNCTION_TABLE_vi[HEAP32[(HEAP32[i1 >> 2] | 0) + 116 >> 2] & 511](i1);
 44246  __ZN15CProfileManager23Increment_Frame_CounterEv();
 44247  __ZN15CProfileManager12Stop_ProfileEv();
 44248  return i9 | 0;
 44250 function __ZN11btRigidBody16addConstraintRefEP17btTypedConstraint(i1, i2) {
 44251  i1 = i1 | 0;
 44252  i2 = i2 | 0;
 44253  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
 44254  i3 = i1 + 480 | 0;
 44255  i4 = HEAP32[i3 >> 2] | 0;
 44256  i5 = i1 + 488 | 0;
 44257  i6 = 0;
 44258  while (1) {
 44259   if ((i6 | 0) >= (i4 | 0)) {
 44260    break;
 44262   if ((HEAP32[(HEAP32[i5 >> 2] | 0) + (i6 << 2) >> 2] | 0) == (i2 | 0)) {
 44263    i7 = 1084;
 44264    break;
 44265   } else {
 44266    i6 = i6 + 1 | 0;
 44269  do {
 44270   if ((i7 | 0) == 1084) {
 44271    if ((i6 | 0) == (i4 | 0)) {
 44272     break;
 44274    i8 = i1 + 252 | 0;
 44275    HEAP32[i8 >> 2] = 1;
 44276    return;
 44278  } while (0);
 44279  i6 = i1 + 484 | 0;
 44280  do {
 44281   if ((i4 | 0) == (HEAP32[i6 >> 2] | 0)) {
 44282    i7 = (i4 | 0) == 0 ? 1 : i4 << 1;
 44283    if ((i4 | 0) >= (i7 | 0)) {
 44284     i9 = i4;
 44285     break;
 44287    if ((i7 | 0) == 0) {
 44288     i10 = 0;
 44289     i11 = i4;
 44290    } else {
 44291     i12 = __Z22btAlignedAllocInternalji(i7 << 2, 16) | 0;
 44292     i10 = i12;
 44293     i11 = HEAP32[i3 >> 2] | 0;
 44295    if ((i11 | 0) > 0) {
 44296     i12 = 0;
 44297     do {
 44298      i13 = i10 + (i12 << 2) | 0;
 44299      if ((i13 | 0) != 0) {
 44300       HEAP32[i13 >> 2] = HEAP32[(HEAP32[i5 >> 2] | 0) + (i12 << 2) >> 2];
 44302      i12 = i12 + 1 | 0;
 44303     } while ((i12 | 0) < (i11 | 0));
 44305    i12 = HEAP32[i5 >> 2] | 0;
 44306    i13 = i1 + 492 | 0;
 44307    if ((i12 | 0) == 0) {
 44308     i14 = i11;
 44309    } else {
 44310     if ((HEAP8[i13] | 0) == 0) {
 44311      i15 = i11;
 44312     } else {
 44313      __Z21btAlignedFreeInternalPv(i12);
 44314      i15 = HEAP32[i3 >> 2] | 0;
 44316     HEAP32[i5 >> 2] = 0;
 44317     i14 = i15;
 44319    HEAP8[i13] = 1;
 44320    HEAP32[i5 >> 2] = i10;
 44321    HEAP32[i6 >> 2] = i7;
 44322    i9 = i14;
 44323   } else {
 44324    i9 = i4;
 44326  } while (0);
 44327  i4 = (HEAP32[i5 >> 2] | 0) + (i9 << 2) | 0;
 44328  if ((i4 | 0) != 0) {
 44329   HEAP32[i4 >> 2] = i2;
 44331  HEAP32[i3 >> 2] = i9 + 1;
 44332  i8 = i1 + 252 | 0;
 44333  HEAP32[i8 >> 2] = 1;
 44334  return;
 44336 function ___dynamic_cast(i1, i2, i3, i4) {
 44337  i1 = i1 | 0;
 44338  i2 = i2 | 0;
 44339  i3 = i3 | 0;
 44340  i4 = i4 | 0;
 44341  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
 44342  i5 = STACKTOP;
 44343  STACKTOP = STACKTOP + 56 | 0;
 44344  i6 = i5 | 0;
 44345  i7 = HEAP32[i1 >> 2] | 0;
 44346  i8 = i1 + (HEAP32[i7 - 8 >> 2] | 0) | 0;
 44347  i9 = HEAP32[i7 - 4 >> 2] | 0;
 44348  i7 = i9;
 44349  HEAP32[i6 >> 2] = i3;
 44350  HEAP32[i6 + 4 >> 2] = i1;
 44351  HEAP32[i6 + 8 >> 2] = i2;
 44352  HEAP32[i6 + 12 >> 2] = i4;
 44353  i4 = i6 + 16 | 0;
 44354  i2 = i6 + 20 | 0;
 44355  i1 = i6 + 24 | 0;
 44356  i10 = i6 + 28 | 0;
 44357  i11 = i6 + 32 | 0;
 44358  i12 = i6 + 40 | 0;
 44359  _memset(i4 | 0, 0, 39);
 44360  if ((i9 | 0) == (i3 | 0)) {
 44361   HEAP32[i6 + 48 >> 2] = 1;
 44362   FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[i9 >> 2] | 0) + 20 >> 2] & 15](i7, i6, i8, i8, 1, 0);
 44363   STACKTOP = i5;
 44364   return ((HEAP32[i1 >> 2] | 0) == 1 ? i8 : 0) | 0;
 44366  FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i9 >> 2] | 0) + 24 >> 2] & 63](i7, i6, i8, 1, 0);
 44367  i8 = HEAP32[i6 + 36 >> 2] | 0;
 44368  if ((i8 | 0) == 1) {
 44369   do {
 44370    if ((HEAP32[i1 >> 2] | 0) != 1) {
 44371     if ((HEAP32[i12 >> 2] | 0) != 0) {
 44372      i13 = 0;
 44373      STACKTOP = i5;
 44374      return i13 | 0;
 44376     if ((HEAP32[i10 >> 2] | 0) != 1) {
 44377      i13 = 0;
 44378      STACKTOP = i5;
 44379      return i13 | 0;
 44381     if ((HEAP32[i11 >> 2] | 0) == 1) {
 44382      break;
 44383     } else {
 44384      i13 = 0;
 44386     STACKTOP = i5;
 44387     return i13 | 0;
 44389   } while (0);
 44390   i13 = HEAP32[i4 >> 2] | 0;
 44391   STACKTOP = i5;
 44392   return i13 | 0;
 44393  } else if ((i8 | 0) == 0) {
 44394   if ((HEAP32[i12 >> 2] | 0) != 1) {
 44395    i13 = 0;
 44396    STACKTOP = i5;
 44397    return i13 | 0;
 44399   if ((HEAP32[i10 >> 2] | 0) != 1) {
 44400    i13 = 0;
 44401    STACKTOP = i5;
 44402    return i13 | 0;
 44404   i13 = (HEAP32[i11 >> 2] | 0) == 1 ? HEAP32[i2 >> 2] | 0 : 0;
 44405   STACKTOP = i5;
 44406   return i13 | 0;
 44407  } else {
 44408   i13 = 0;
 44409   STACKTOP = i5;
 44410   return i13 | 0;
 44412  return 0;
 44414 function __ZN20btAlignedObjectArrayI16btBroadphasePairE21expandNonInitializingEv(i1) {
 44415  i1 = i1 | 0;
 44416  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0;
 44417  i2 = i1 + 4 | 0;
 44418  i3 = HEAP32[i2 >> 2] | 0;
 44419  i4 = i1 + 8 | 0;
 44420  if ((i3 | 0) != (HEAP32[i4 >> 2] | 0)) {
 44421   i5 = i3;
 44422   i6 = i5 + 1 | 0;
 44423   HEAP32[i2 >> 2] = i6;
 44424   i7 = i1 + 12 | 0;
 44425   i8 = HEAP32[i7 >> 2] | 0;
 44426   i9 = i8 + (i3 << 4) | 0;
 44427   return i9 | 0;
 44429  i10 = (i3 | 0) == 0 ? 1 : i3 << 1;
 44430  if ((i3 | 0) >= (i10 | 0)) {
 44431   i5 = i3;
 44432   i6 = i5 + 1 | 0;
 44433   HEAP32[i2 >> 2] = i6;
 44434   i7 = i1 + 12 | 0;
 44435   i8 = HEAP32[i7 >> 2] | 0;
 44436   i9 = i8 + (i3 << 4) | 0;
 44437   return i9 | 0;
 44439  if ((i10 | 0) == 0) {
 44440   i11 = 0;
 44441   i12 = i3;
 44442  } else {
 44443   i13 = __Z22btAlignedAllocInternalji(i10 << 4, 16) | 0;
 44444   i11 = i13;
 44445   i12 = HEAP32[i2 >> 2] | 0;
 44447  i13 = i1 + 12 | 0;
 44448  if ((i12 | 0) > 0) {
 44449   i14 = 0;
 44450   do {
 44451    i15 = HEAP32[i13 >> 2] | 0;
 44452    HEAP32[i11 + (i14 << 4) >> 2] = HEAP32[i15 + (i14 << 4) >> 2];
 44453    HEAP32[i11 + (i14 << 4) + 4 >> 2] = HEAP32[i15 + (i14 << 4) + 4 >> 2];
 44454    HEAP32[i11 + (i14 << 4) + 8 >> 2] = HEAP32[i15 + (i14 << 4) + 8 >> 2];
 44455    HEAP32[i11 + (i14 << 4) + 12 >> 2] = HEAP32[i15 + (i14 << 4) + 12 >> 2];
 44456    i14 = i14 + 1 | 0;
 44457   } while ((i14 | 0) < (i12 | 0));
 44459  i14 = HEAP32[i13 >> 2] | 0;
 44460  i15 = i1 + 16 | 0;
 44461  if ((i14 | 0) == 0) {
 44462   i16 = i12;
 44463  } else {
 44464   if ((HEAP8[i15] | 0) == 0) {
 44465    i17 = i12;
 44466   } else {
 44467    __Z21btAlignedFreeInternalPv(i14);
 44468    i17 = HEAP32[i2 >> 2] | 0;
 44470   HEAP32[i13 >> 2] = 0;
 44471   i16 = i17;
 44473  HEAP8[i15] = 1;
 44474  HEAP32[i13 >> 2] = i11;
 44475  HEAP32[i4 >> 2] = i10;
 44476  i5 = i16;
 44477  i6 = i5 + 1 | 0;
 44478  HEAP32[i2 >> 2] = i6;
 44479  i7 = i1 + 12 | 0;
 44480  i8 = HEAP32[i7 >> 2] | 0;
 44481  i9 = i8 + (i3 << 4) | 0;
 44482  return i9 | 0;
 44484 function __ZNK10__cxxabiv121__vmi_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi(i1, i2, i3, i4) {
 44485  i1 = i1 | 0;
 44486  i2 = i2 | 0;
 44487  i3 = i3 | 0;
 44488  i4 = i4 | 0;
 44489  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0;
 44490  if ((i1 | 0) == (HEAP32[i2 + 8 >> 2] | 0)) {
 44491   i5 = i2 + 16 | 0;
 44492   i6 = HEAP32[i5 >> 2] | 0;
 44493   if ((i6 | 0) == 0) {
 44494    HEAP32[i5 >> 2] = i3;
 44495    HEAP32[i2 + 24 >> 2] = i4;
 44496    HEAP32[i2 + 36 >> 2] = 1;
 44497    return;
 44499   if ((i6 | 0) != (i3 | 0)) {
 44500    i6 = i2 + 36 | 0;
 44501    HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + 1;
 44502    HEAP32[i2 + 24 >> 2] = 2;
 44503    HEAP8[i2 + 54 | 0] = 1;
 44504    return;
 44506   i6 = i2 + 24 | 0;
 44507   if ((HEAP32[i6 >> 2] | 0) != 2) {
 44508    return;
 44510   HEAP32[i6 >> 2] = i4;
 44511   return;
 44513  i6 = HEAP32[i1 + 12 >> 2] | 0;
 44514  i5 = i1 + 16 + (i6 << 3) | 0;
 44515  i7 = HEAP32[i1 + 20 >> 2] | 0;
 44516  i8 = i7 >> 8;
 44517  if ((i7 & 1 | 0) == 0) {
 44518   i9 = i8;
 44519  } else {
 44520   i9 = HEAP32[(HEAP32[i3 >> 2] | 0) + i8 >> 2] | 0;
 44522  i8 = HEAP32[i1 + 16 >> 2] | 0;
 44523  FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i8 >> 2] | 0) + 28 >> 2] & 127](i8, i2, i3 + i9 | 0, (i7 & 2 | 0) != 0 ? i4 : 2);
 44524  if ((i6 | 0) <= 1) {
 44525   return;
 44527  i6 = i2 + 54 | 0;
 44528  i7 = i3;
 44529  i9 = i1 + 24 | 0;
 44530  while (1) {
 44531   i1 = HEAP32[i9 + 4 >> 2] | 0;
 44532   i8 = i1 >> 8;
 44533   if ((i1 & 1 | 0) == 0) {
 44534    i10 = i8;
 44535   } else {
 44536    i10 = HEAP32[(HEAP32[i7 >> 2] | 0) + i8 >> 2] | 0;
 44538   i8 = HEAP32[i9 >> 2] | 0;
 44539   FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i8 >> 2] | 0) + 28 >> 2] & 127](i8, i2, i3 + i10 | 0, (i1 & 2 | 0) != 0 ? i4 : 2);
 44540   if ((HEAP8[i6] & 1) != 0) {
 44541    i11 = 2027;
 44542    break;
 44544   i1 = i9 + 8 | 0;
 44545   if (i1 >>> 0 < i5 >>> 0) {
 44546    i9 = i1;
 44547   } else {
 44548    i11 = 2028;
 44549    break;
 44552  if ((i11 | 0) == 2027) {
 44553   return;
 44554  } else if ((i11 | 0) == 2028) {
 44555   return;
 44558 function __ZN16btCollisionWorld27ClosestConvexResultCallback15addSingleResultERNS_17LocalConvexResultEb(i1, i2, i3) {
 44559  i1 = i1 | 0;
 44560  i2 = i2 | 0;
 44561  i3 = i3 | 0;
 44562  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0;
 44563  i4 = i2 + 40 | 0;
 44564  HEAPF32[i1 + 4 >> 2] = +HEAPF32[i4 >> 2];
 44565  i5 = HEAP32[i2 >> 2] | 0;
 44566  HEAP32[i1 + 76 >> 2] = i5;
 44567  if (i3) {
 44568   i3 = i1 + 44 | 0;
 44569   i6 = i2 + 8 | 0;
 44570   HEAP32[i3 >> 2] = HEAP32[i6 >> 2];
 44571   HEAP32[i3 + 4 >> 2] = HEAP32[i6 + 4 >> 2];
 44572   HEAP32[i3 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
 44573   HEAP32[i3 + 12 >> 2] = HEAP32[i6 + 12 >> 2];
 44574   i7 = i1 + 60 | 0;
 44575   i8 = i2 + 24 | 0;
 44576   i9 = i7;
 44577   i10 = i8;
 44578   HEAP32[i9 >> 2] = HEAP32[i10 >> 2];
 44579   HEAP32[i9 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
 44580   HEAP32[i9 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
 44581   HEAP32[i9 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
 44582   d11 = +HEAPF32[i4 >> 2];
 44583   return +d11;
 44584  } else {
 44585   d12 = +HEAPF32[i2 + 8 >> 2];
 44586   d13 = +HEAPF32[i2 + 12 >> 2];
 44587   d14 = +HEAPF32[i2 + 16 >> 2];
 44588   d15 = d12 * +HEAPF32[i5 + 20 >> 2] + d13 * +HEAPF32[i5 + 24 >> 2] + d14 * +HEAPF32[i5 + 28 >> 2];
 44589   d16 = d12 * +HEAPF32[i5 + 36 >> 2] + d13 * +HEAPF32[i5 + 40 >> 2] + d14 * +HEAPF32[i5 + 44 >> 2];
 44590   HEAPF32[i1 + 44 >> 2] = +HEAPF32[i5 + 4 >> 2] * d12 + +HEAPF32[i5 + 8 >> 2] * d13 + +HEAPF32[i5 + 12 >> 2] * d14;
 44591   HEAPF32[i1 + 48 >> 2] = d15;
 44592   HEAPF32[i1 + 52 >> 2] = d16;
 44593   HEAPF32[i1 + 56 >> 2] = 0.0;
 44594   i7 = i1 + 60 | 0;
 44595   i8 = i2 + 24 | 0;
 44596   i9 = i7;
 44597   i10 = i8;
 44598   HEAP32[i9 >> 2] = HEAP32[i10 >> 2];
 44599   HEAP32[i9 + 4 >> 2] = HEAP32[i10 + 4 >> 2];
 44600   HEAP32[i9 + 8 >> 2] = HEAP32[i10 + 8 >> 2];
 44601   HEAP32[i9 + 12 >> 2] = HEAP32[i10 + 12 >> 2];
 44602   d11 = +HEAPF32[i4 >> 2];
 44603   return +d11;
 44605  return 0.0;
 44607 function __ZN23btDiscreteDynamicsWorld28internalSingleStepSimulationEf(i1, d2) {
 44608  i1 = i1 | 0;
 44609  d2 = +d2;
 44610  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
 44611  __ZN15CProfileManager13Start_ProfileEPKc(536);
 44612  i3 = i1 | 0;
 44613  i4 = HEAP32[i1 + 92 >> 2] | 0;
 44614  if ((i4 | 0) != 0) {
 44615   FUNCTION_TABLE_vif[i4 & 31](i3, d2);
 44617  i4 = i1;
 44618  FUNCTION_TABLE_vif[HEAP32[(HEAP32[i4 >> 2] | 0) + 136 >> 2] & 31](i1, d2);
 44619  i5 = i1 | 0;
 44620  HEAPF32[i1 + 28 >> 2] = d2;
 44621  HEAP32[i1 + 32 >> 2] = 0;
 44622  HEAP32[i1 + 48 >> 2] = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i1 >> 2] | 0) + 16 >> 2] & 127](i5) | 0;
 44623  FUNCTION_TABLE_vi[HEAP32[(HEAP32[i1 >> 2] | 0) + 40 >> 2] & 511](i5);
 44624  if ((HEAP8[i1 + 44 | 0] | 0) != 0) {
 44625   FUNCTION_TABLE_vif[HEAP32[(HEAP32[i4 >> 2] | 0) + 144 >> 2] & 31](i1, d2);
 44627  FUNCTION_TABLE_vi[HEAP32[(HEAP32[i1 >> 2] | 0) + 148 >> 2] & 511](i1);
 44628  HEAPF32[i1 + 112 >> 2] = d2;
 44629  FUNCTION_TABLE_vii[HEAP32[(HEAP32[i1 >> 2] | 0) + 152 >> 2] & 127](i1, i1 + 100 | 0);
 44630  FUNCTION_TABLE_vif[HEAP32[(HEAP32[i4 >> 2] | 0) + 140 >> 2] & 31](i1, d2);
 44631  __ZN15CProfileManager13Start_ProfileEPKc(456);
 44632  i4 = i1 + 248 | 0;
 44633  if ((HEAP32[i4 >> 2] | 0) > 0) {
 44634   i6 = i1 + 256 | 0;
 44635   i7 = 0;
 44636   do {
 44637    i8 = HEAP32[(HEAP32[i6 >> 2] | 0) + (i7 << 2) >> 2] | 0;
 44638    FUNCTION_TABLE_viif[HEAP32[(HEAP32[i8 >> 2] | 0) + 8 >> 2] & 3](i8, i5, d2);
 44639    i7 = i7 + 1 | 0;
 44640   } while ((i7 | 0) < (HEAP32[i4 >> 2] | 0));
 44642  __ZN15CProfileManager12Stop_ProfileEv();
 44643  __ZN23btDiscreteDynamicsWorld21updateActivationStateEf(i1, d2);
 44644  i4 = HEAP32[i1 + 88 >> 2] | 0;
 44645  if ((i4 | 0) == 0) {
 44646   __ZN15CProfileManager12Stop_ProfileEv();
 44647   return;
 44649  FUNCTION_TABLE_vif[i4 & 31](i3, d2);
 44650  __ZN15CProfileManager12Stop_ProfileEv();
 44651  return;
 44653 function __ZN23btDiscreteDynamicsWorldD2Ev(i1) {
 44654  i1 = i1 | 0;
 44655  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
 44656  HEAP32[i1 >> 2] = 3272;
 44657  if ((HEAP8[i1 + 240 | 0] | 0) != 0) {
 44658   i2 = i1 + 176 | 0;
 44659   i3 = HEAP32[i2 >> 2] | 0;
 44660   FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
 44661   __Z21btAlignedFreeInternalPv(HEAP32[i2 >> 2] | 0);
 44663  if ((HEAP8[i1 + 241 | 0] | 0) != 0) {
 44664   i2 = i1 + 172 | 0;
 44665   i3 = HEAP32[i2 >> 2] | 0;
 44666   FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
 44667   __Z21btAlignedFreeInternalPv(HEAP32[i2 >> 2] | 0);
 44669  i2 = i1 + 248 | 0;
 44670  i3 = i1 + 256 | 0;
 44671  i4 = HEAP32[i3 >> 2] | 0;
 44672  i5 = i1 + 260 | 0;
 44673  if ((i4 | 0) != 0) {
 44674   if ((HEAP8[i5] | 0) != 0) {
 44675    __Z21btAlignedFreeInternalPv(i4);
 44677   HEAP32[i3 >> 2] = 0;
 44679  HEAP8[i5] = 1;
 44680  HEAP32[i3 >> 2] = 0;
 44681  HEAP32[i2 >> 2] = 0;
 44682  HEAP32[i1 + 252 >> 2] = 0;
 44683  i2 = i1 + 204 | 0;
 44684  i3 = i1 + 212 | 0;
 44685  i5 = HEAP32[i3 >> 2] | 0;
 44686  i4 = i1 + 216 | 0;
 44687  if ((i5 | 0) != 0) {
 44688   if ((HEAP8[i4] | 0) != 0) {
 44689    __Z21btAlignedFreeInternalPv(i5);
 44691   HEAP32[i3 >> 2] = 0;
 44693  HEAP8[i4] = 1;
 44694  HEAP32[i3 >> 2] = 0;
 44695  HEAP32[i2 >> 2] = 0;
 44696  HEAP32[i1 + 208 >> 2] = 0;
 44697  i2 = i1 + 184 | 0;
 44698  i3 = i1 + 192 | 0;
 44699  i4 = HEAP32[i3 >> 2] | 0;
 44700  i5 = i1 + 196 | 0;
 44701  if ((i4 | 0) == 0) {
 44702   HEAP8[i5] = 1;
 44703   HEAP32[i3 >> 2] = 0;
 44704   HEAP32[i2 >> 2] = 0;
 44705   i6 = i1 + 188 | 0;
 44706   HEAP32[i6 >> 2] = 0;
 44707   i7 = i1 | 0;
 44708   __ZN16btCollisionWorldD2Ev(i7);
 44709   return;
 44711  if ((HEAP8[i5] | 0) != 0) {
 44712   __Z21btAlignedFreeInternalPv(i4);
 44714  HEAP32[i3 >> 2] = 0;
 44715  HEAP8[i5] = 1;
 44716  HEAP32[i3 >> 2] = 0;
 44717  HEAP32[i2 >> 2] = 0;
 44718  i6 = i1 + 188 | 0;
 44719  HEAP32[i6 >> 2] = 0;
 44720  i7 = i1 | 0;
 44721  __ZN16btCollisionWorldD2Ev(i7);
 44722  return;
 44724 function __ZNK12gjkepa2_impl13MinkowskiDiff8Support1ERK9btVector3(i1, i2, i3) {
 44725  i1 = i1 | 0;
 44726  i2 = i2 | 0;
 44727  i3 = i3 | 0;
 44728  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0;
 44729  i4 = STACKTOP;
 44730  STACKTOP = STACKTOP + 32 | 0;
 44731  i5 = i4 | 0;
 44732  i6 = i4 + 16 | 0;
 44733  i7 = i2 + 120 | 0;
 44734  i8 = (HEAP32[i2 + 4 >> 2] | 0) + (HEAP32[i7 + 4 >> 2] | 0) | 0;
 44735  i9 = HEAP32[i7 >> 2] | 0;
 44736  if ((i9 & 1 | 0) == 0) {
 44737   i10 = i9;
 44738  } else {
 44739   i10 = HEAP32[(HEAP32[i8 >> 2] | 0) + (i9 - 1) >> 2] | 0;
 44741  d11 = +HEAPF32[i3 >> 2];
 44742  d12 = +HEAPF32[i3 + 4 >> 2];
 44743  d13 = +HEAPF32[i3 + 8 >> 2];
 44744  d14 = d11 * +HEAPF32[i2 + 24 >> 2] + d12 * +HEAPF32[i2 + 28 >> 2] + d13 * +HEAPF32[i2 + 32 >> 2];
 44745  d15 = d11 * +HEAPF32[i2 + 40 >> 2] + d12 * +HEAPF32[i2 + 44 >> 2] + d13 * +HEAPF32[i2 + 48 >> 2];
 44746  HEAPF32[i6 >> 2] = +HEAPF32[i2 + 8 >> 2] * d11 + +HEAPF32[i2 + 12 >> 2] * d12 + +HEAPF32[i2 + 16 >> 2] * d13;
 44747  HEAPF32[i6 + 4 >> 2] = d14;
 44748  HEAPF32[i6 + 8 >> 2] = d15;
 44749  HEAPF32[i6 + 12 >> 2] = 0.0;
 44750  FUNCTION_TABLE_viii[i10 & 127](i5, i8, i6);
 44751  d15 = +HEAPF32[i5 >> 2];
 44752  d14 = +HEAPF32[i5 + 4 >> 2];
 44753  d13 = +HEAPF32[i5 + 8 >> 2];
 44754  d12 = +HEAPF32[i2 + 108 >> 2] + (d15 * +HEAPF32[i2 + 72 >> 2] + d14 * +HEAPF32[i2 + 76 >> 2] + d13 * +HEAPF32[i2 + 80 >> 2]);
 44755  d11 = +HEAPF32[i2 + 112 >> 2] + (d15 * +HEAPF32[i2 + 88 >> 2] + d14 * +HEAPF32[i2 + 92 >> 2] + d13 * +HEAPF32[i2 + 96 >> 2]);
 44756  HEAPF32[i1 >> 2] = +HEAPF32[i2 + 104 >> 2] + (+HEAPF32[i2 + 56 >> 2] * d15 + +HEAPF32[i2 + 60 >> 2] * d14 + +HEAPF32[i2 + 64 >> 2] * d13);
 44757  HEAPF32[i1 + 4 >> 2] = d12;
 44758  HEAPF32[i1 + 8 >> 2] = d11;
 44759  HEAPF32[i1 + 12 >> 2] = 0.0;
 44760  STACKTOP = i4;
 44761  return;
 44763 function __ZN23btDiscreteDynamicsWorld20serializeRigidBodiesEP12btSerializer(i1, i2) {
 44764  i1 = i1 | 0;
 44765  i2 = i2 | 0;
 44766  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
 44767  i3 = i1 + 8 | 0;
 44768  i4 = HEAP32[i3 >> 2] | 0;
 44769  if ((i4 | 0) > 0) {
 44770   i5 = i1 + 16 | 0;
 44771   i6 = i2;
 44772   i7 = i2;
 44773   i8 = 0;
 44774   i9 = i4;
 44775   while (1) {
 44776    i4 = HEAP32[(HEAP32[i5 >> 2] | 0) + (i8 << 2) >> 2] | 0;
 44777    if ((HEAP32[i4 + 232 >> 2] & 2 | 0) == 0) {
 44778     i10 = i9;
 44779    } else {
 44780     i11 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i4 >> 2] | 0) + 16 >> 2] & 127](i4) | 0;
 44781     i12 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i6 >> 2] | 0) + 16 >> 2] & 31](i2, i11, 1) | 0;
 44782     i11 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i4 >> 2] | 0) + 20 >> 2] & 31](i4, HEAP32[i12 + 8 >> 2] | 0, i2) | 0;
 44783     FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i7 >> 2] | 0) + 20 >> 2] & 63](i2, i12, i11, 1497645650, i4);
 44784     i10 = HEAP32[i3 >> 2] | 0;
 44786    i4 = i8 + 1 | 0;
 44787    if ((i4 | 0) < (i10 | 0)) {
 44788     i8 = i4;
 44789     i9 = i10;
 44790    } else {
 44791     break;
 44795  i10 = i1 + 184 | 0;
 44796  if ((HEAP32[i10 >> 2] | 0) <= 0) {
 44797   return;
 44799  i9 = i1 + 192 | 0;
 44800  i1 = i2;
 44801  i8 = i2;
 44802  i3 = 0;
 44803  do {
 44804   i7 = HEAP32[(HEAP32[i9 >> 2] | 0) + (i3 << 2) >> 2] | 0;
 44805   i6 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i7 >> 2] | 0) + 36 >> 2] & 127](i7) | 0;
 44806   i5 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 16 >> 2] & 31](i2, i6, 1) | 0;
 44807   i6 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i7 >> 2] | 0) + 40 >> 2] & 31](i7, HEAP32[i5 + 8 >> 2] | 0, i2) | 0;
 44808   FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i8 >> 2] | 0) + 20 >> 2] & 63](i2, i5, i6, 1397641027, i7);
 44809   i3 = i3 + 1 | 0;
 44810  } while ((i3 | 0) < (HEAP32[i10 >> 2] | 0));
 44811  return;
 44813 function __ZN23btDiscreteDynamicsWorld13addConstraintEP17btTypedConstraintb(i1, i2, i3) {
 44814  i1 = i1 | 0;
 44815  i2 = i2 | 0;
 44816  i3 = i3 | 0;
 44817  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
 44818  i4 = i1 + 184 | 0;
 44819  i5 = HEAP32[i4 >> 2] | 0;
 44820  i6 = i1 + 188 | 0;
 44821  do {
 44822   if ((i5 | 0) == (HEAP32[i6 >> 2] | 0)) {
 44823    i7 = (i5 | 0) == 0 ? 1 : i5 << 1;
 44824    if ((i5 | 0) >= (i7 | 0)) {
 44825     i8 = i5;
 44826     break;
 44828    if ((i7 | 0) == 0) {
 44829     i9 = 0;
 44830     i10 = i5;
 44831    } else {
 44832     i11 = __Z22btAlignedAllocInternalji(i7 << 2, 16) | 0;
 44833     i9 = i11;
 44834     i10 = HEAP32[i4 >> 2] | 0;
 44836    i11 = i1 + 192 | 0;
 44837    if ((i10 | 0) > 0) {
 44838     i12 = 0;
 44839     do {
 44840      i13 = i9 + (i12 << 2) | 0;
 44841      if ((i13 | 0) != 0) {
 44842       HEAP32[i13 >> 2] = HEAP32[(HEAP32[i11 >> 2] | 0) + (i12 << 2) >> 2];
 44844      i12 = i12 + 1 | 0;
 44845     } while ((i12 | 0) < (i10 | 0));
 44847    i12 = HEAP32[i11 >> 2] | 0;
 44848    i13 = i1 + 196 | 0;
 44849    if ((i12 | 0) == 0) {
 44850     i14 = i10;
 44851    } else {
 44852     if ((HEAP8[i13] | 0) == 0) {
 44853      i15 = i10;
 44854     } else {
 44855      __Z21btAlignedFreeInternalPv(i12);
 44856      i15 = HEAP32[i4 >> 2] | 0;
 44858     HEAP32[i11 >> 2] = 0;
 44859     i14 = i15;
 44861    HEAP8[i13] = 1;
 44862    HEAP32[i11 >> 2] = i9;
 44863    HEAP32[i6 >> 2] = i7;
 44864    i8 = i14;
 44865   } else {
 44866    i8 = i5;
 44868  } while (0);
 44869  i5 = (HEAP32[i1 + 192 >> 2] | 0) + (i8 << 2) | 0;
 44870  if ((i5 | 0) != 0) {
 44871   HEAP32[i5 >> 2] = i2;
 44873  HEAP32[i4 >> 2] = i8 + 1;
 44874  if (!i3) {
 44875   return;
 44877  __ZN11btRigidBody16addConstraintRefEP17btTypedConstraint(HEAP32[i2 + 24 >> 2] | 0, i2);
 44878  __ZN11btRigidBody16addConstraintRefEP17btTypedConstraint(HEAP32[i2 + 28 >> 2] | 0, i2);
 44879  return;
 44881 function __ZNK23btPolyhedralConvexShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i(i1, i2, i3, i4) {
 44882  i1 = i1 | 0;
 44883  i2 = i2 | 0;
 44884  i3 = i3 | 0;
 44885  i4 = i4 | 0;
 44886  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, d20 = 0.0;
 44887  i5 = STACKTOP;
 44888  STACKTOP = STACKTOP + 16 | 0;
 44889  i6 = i5 | 0;
 44890  if ((i4 | 0) > 0) {
 44891   i7 = 0;
 44892  } else {
 44893   STACKTOP = i5;
 44894   return;
 44896  do {
 44897   HEAPF32[i3 + (i7 << 4) + 12 >> 2] = -999999984306749400.0;
 44898   i7 = i7 + 1 | 0;
 44899  } while ((i7 | 0) < (i4 | 0));
 44900  i7 = i1;
 44901  i8 = i1;
 44902  i9 = i6 | 0;
 44903  i10 = i6 + 4 | 0;
 44904  i11 = i6 + 8 | 0;
 44905  i12 = i6;
 44906  i13 = 0;
 44907  do {
 44908   if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i7 >> 2] | 0) + 88 >> 2] & 127](i1) | 0) > 0) {
 44909    i14 = i2 + (i13 << 4) | 0;
 44910    i15 = i2 + (i13 << 4) + 4 | 0;
 44911    i16 = i2 + (i13 << 4) + 8 | 0;
 44912    i17 = i3 + (i13 << 4) + 12 | 0;
 44913    i18 = i3 + (i13 << 4) | 0;
 44914    i19 = 0;
 44915    do {
 44916     FUNCTION_TABLE_viii[HEAP32[(HEAP32[i8 >> 2] | 0) + 100 >> 2] & 127](i1, i19, i6);
 44917     d20 = +HEAPF32[i14 >> 2] * +HEAPF32[i9 >> 2] + +HEAPF32[i15 >> 2] * +HEAPF32[i10 >> 2] + +HEAPF32[i16 >> 2] * +HEAPF32[i11 >> 2];
 44918     if (d20 > +HEAPF32[i17 >> 2]) {
 44919      HEAP32[i18 >> 2] = HEAP32[i12 >> 2];
 44920      HEAP32[i18 + 4 >> 2] = HEAP32[i12 + 4 >> 2];
 44921      HEAP32[i18 + 8 >> 2] = HEAP32[i12 + 8 >> 2];
 44922      HEAP32[i18 + 12 >> 2] = HEAP32[i12 + 12 >> 2];
 44923      HEAPF32[i17 >> 2] = d20;
 44925     i19 = i19 + 1 | 0;
 44926    } while ((i19 | 0) < (FUNCTION_TABLE_ii[HEAP32[(HEAP32[i7 >> 2] | 0) + 88 >> 2] & 127](i1) | 0));
 44928   i13 = i13 + 1 | 0;
 44929  } while ((i13 | 0) < (i4 | 0));
 44930  STACKTOP = i5;
 44931  return;
 44933 function __ZN11btRigidBody12applyImpulseERK9btVector3S2_(i1, i2, i3) {
 44934  i1 = i1 | 0;
 44935  i2 = i2 | 0;
 44936  i3 = i3 | 0;
 44937  var d4 = 0.0, i5 = 0, d6 = 0.0, i7 = 0, d8 = 0.0, i9 = 0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0;
 44938  d4 = +HEAPF32[i1 + 336 >> 2];
 44939  if (d4 == 0.0) {
 44940   return;
 44942  i5 = i2 | 0;
 44943  d6 = +HEAPF32[i1 + 340 >> 2];
 44944  i7 = i2 + 4 | 0;
 44945  d8 = +HEAPF32[i1 + 344 >> 2];
 44946  i9 = i2 + 8 | 0;
 44947  d10 = +HEAPF32[i1 + 348 >> 2];
 44948  d11 = d4 * +HEAPF32[i7 >> 2] * d8;
 44949  d12 = d4 * +HEAPF32[i9 >> 2] * d10;
 44950  i2 = i1 + 304 | 0;
 44951  HEAPF32[i2 >> 2] = d4 * +HEAPF32[i5 >> 2] * d6 + +HEAPF32[i2 >> 2];
 44952  i2 = i1 + 308 | 0;
 44953  HEAPF32[i2 >> 2] = d11 + +HEAPF32[i2 >> 2];
 44954  i2 = i1 + 312 | 0;
 44955  HEAPF32[i2 >> 2] = d12 + +HEAPF32[i2 >> 2];
 44956  i2 = i1 + 536 | 0;
 44957  if ((i2 | 0) == 0) {
 44958   return;
 44960  d12 = d6 * +HEAPF32[i5 >> 2];
 44961  d6 = d8 * +HEAPF32[i7 >> 2];
 44962  d8 = d10 * +HEAPF32[i9 >> 2];
 44963  d10 = +HEAPF32[i3 + 4 >> 2];
 44964  d11 = +HEAPF32[i3 + 8 >> 2];
 44965  d4 = d10 * d8 - d6 * d11;
 44966  d13 = +HEAPF32[i3 >> 2];
 44967  d14 = d12 * d11 - d8 * d13;
 44968  d8 = d6 * d13 - d12 * d10;
 44969  d10 = (d4 * +HEAPF32[i1 + 272 >> 2] + d14 * +HEAPF32[i1 + 276 >> 2] + d8 * +HEAPF32[i1 + 280 >> 2]) * +HEAPF32[i1 + 540 >> 2];
 44970  d12 = (d4 * +HEAPF32[i1 + 288 >> 2] + d14 * +HEAPF32[i1 + 292 >> 2] + d8 * +HEAPF32[i1 + 296 >> 2]) * +HEAPF32[i1 + 544 >> 2];
 44971  i3 = i1 + 320 | 0;
 44972  HEAPF32[i3 >> 2] = (+HEAPF32[i1 + 256 >> 2] * d4 + +HEAPF32[i1 + 260 >> 2] * d14 + d8 * +HEAPF32[i1 + 264 >> 2]) * +HEAPF32[i2 >> 2] + +HEAPF32[i3 >> 2];
 44973  i3 = i1 + 324 | 0;
 44974  HEAPF32[i3 >> 2] = d10 + +HEAPF32[i3 >> 2];
 44975  i3 = i1 + 328 | 0;
 44976  HEAPF32[i3 >> 2] = d12 + +HEAPF32[i3 >> 2];
 44977  return;
 44979 function __ZN34btSphereTriangleCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(i1, i2) {
 44980  i1 = i1 | 0;
 44981  i2 = i2 | 0;
 44982  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
 44983  i3 = i1 + 12 | 0;
 44984  if ((HEAP32[i3 >> 2] | 0) == 0) {
 44985   return;
 44987  if ((HEAP8[i1 + 8 | 0] | 0) == 0) {
 44988   return;
 44990  i1 = i2 + 4 | 0;
 44991  i4 = HEAP32[i1 >> 2] | 0;
 44992  i5 = i2 + 8 | 0;
 44993  do {
 44994   if ((i4 | 0) == (HEAP32[i5 >> 2] | 0)) {
 44995    i6 = (i4 | 0) == 0 ? 1 : i4 << 1;
 44996    if ((i4 | 0) >= (i6 | 0)) {
 44997     i7 = i4;
 44998     break;
 45000    if ((i6 | 0) == 0) {
 45001     i8 = 0;
 45002     i9 = i4;
 45003    } else {
 45004     i10 = __Z22btAlignedAllocInternalji(i6 << 2, 16) | 0;
 45005     i8 = i10;
 45006     i9 = HEAP32[i1 >> 2] | 0;
 45008    i10 = i2 + 12 | 0;
 45009    if ((i9 | 0) > 0) {
 45010     i11 = 0;
 45011     do {
 45012      i12 = i8 + (i11 << 2) | 0;
 45013      if ((i12 | 0) != 0) {
 45014       HEAP32[i12 >> 2] = HEAP32[(HEAP32[i10 >> 2] | 0) + (i11 << 2) >> 2];
 45016      i11 = i11 + 1 | 0;
 45017     } while ((i11 | 0) < (i9 | 0));
 45019    i11 = HEAP32[i10 >> 2] | 0;
 45020    i12 = i2 + 16 | 0;
 45021    if ((i11 | 0) == 0) {
 45022     i13 = i9;
 45023    } else {
 45024     if ((HEAP8[i12] | 0) == 0) {
 45025      i14 = i9;
 45026     } else {
 45027      __Z21btAlignedFreeInternalPv(i11);
 45028      i14 = HEAP32[i1 >> 2] | 0;
 45030     HEAP32[i10 >> 2] = 0;
 45031     i13 = i14;
 45033    HEAP8[i12] = 1;
 45034    HEAP32[i10 >> 2] = i8;
 45035    HEAP32[i5 >> 2] = i6;
 45036    i7 = i13;
 45037   } else {
 45038    i7 = i4;
 45040  } while (0);
 45041  i4 = (HEAP32[i2 + 12 >> 2] | 0) + (i7 << 2) | 0;
 45042  if ((i4 | 0) != 0) {
 45043   HEAP32[i4 >> 2] = HEAP32[i3 >> 2];
 45045  HEAP32[i1 >> 2] = i7 + 1;
 45046  return;
 45048 function __ZN32btSphereSphereCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(i1, i2) {
 45049  i1 = i1 | 0;
 45050  i2 = i2 | 0;
 45051  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
 45052  i3 = i1 + 12 | 0;
 45053  if ((HEAP32[i3 >> 2] | 0) == 0) {
 45054   return;
 45056  if ((HEAP8[i1 + 8 | 0] | 0) == 0) {
 45057   return;
 45059  i1 = i2 + 4 | 0;
 45060  i4 = HEAP32[i1 >> 2] | 0;
 45061  i5 = i2 + 8 | 0;
 45062  do {
 45063   if ((i4 | 0) == (HEAP32[i5 >> 2] | 0)) {
 45064    i6 = (i4 | 0) == 0 ? 1 : i4 << 1;
 45065    if ((i4 | 0) >= (i6 | 0)) {
 45066     i7 = i4;
 45067     break;
 45069    if ((i6 | 0) == 0) {
 45070     i8 = 0;
 45071     i9 = i4;
 45072    } else {
 45073     i10 = __Z22btAlignedAllocInternalji(i6 << 2, 16) | 0;
 45074     i8 = i10;
 45075     i9 = HEAP32[i1 >> 2] | 0;
 45077    i10 = i2 + 12 | 0;
 45078    if ((i9 | 0) > 0) {
 45079     i11 = 0;
 45080     do {
 45081      i12 = i8 + (i11 << 2) | 0;
 45082      if ((i12 | 0) != 0) {
 45083       HEAP32[i12 >> 2] = HEAP32[(HEAP32[i10 >> 2] | 0) + (i11 << 2) >> 2];
 45085      i11 = i11 + 1 | 0;
 45086     } while ((i11 | 0) < (i9 | 0));
 45088    i11 = HEAP32[i10 >> 2] | 0;
 45089    i12 = i2 + 16 | 0;
 45090    if ((i11 | 0) == 0) {
 45091     i13 = i9;
 45092    } else {
 45093     if ((HEAP8[i12] | 0) == 0) {
 45094      i14 = i9;
 45095     } else {
 45096      __Z21btAlignedFreeInternalPv(i11);
 45097      i14 = HEAP32[i1 >> 2] | 0;
 45099     HEAP32[i10 >> 2] = 0;
 45100     i13 = i14;
 45102    HEAP8[i12] = 1;
 45103    HEAP32[i10 >> 2] = i8;
 45104    HEAP32[i5 >> 2] = i6;
 45105    i7 = i13;
 45106   } else {
 45107    i7 = i4;
 45109  } while (0);
 45110  i4 = (HEAP32[i2 + 12 >> 2] | 0) + (i7 << 2) | 0;
 45111  if ((i4 | 0) != 0) {
 45112   HEAP32[i4 >> 2] = HEAP32[i3 >> 2];
 45114  HEAP32[i1 >> 2] = i7 + 1;
 45115  return;
 45117 function __ZN31btConvexPlaneCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(i1, i2) {
 45118  i1 = i1 | 0;
 45119  i2 = i2 | 0;
 45120  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
 45121  i3 = i1 + 12 | 0;
 45122  if ((HEAP32[i3 >> 2] | 0) == 0) {
 45123   return;
 45125  if ((HEAP8[i1 + 8 | 0] | 0) == 0) {
 45126   return;
 45128  i1 = i2 + 4 | 0;
 45129  i4 = HEAP32[i1 >> 2] | 0;
 45130  i5 = i2 + 8 | 0;
 45131  do {
 45132   if ((i4 | 0) == (HEAP32[i5 >> 2] | 0)) {
 45133    i6 = (i4 | 0) == 0 ? 1 : i4 << 1;
 45134    if ((i4 | 0) >= (i6 | 0)) {
 45135     i7 = i4;
 45136     break;
 45138    if ((i6 | 0) == 0) {
 45139     i8 = 0;
 45140     i9 = i4;
 45141    } else {
 45142     i10 = __Z22btAlignedAllocInternalji(i6 << 2, 16) | 0;
 45143     i8 = i10;
 45144     i9 = HEAP32[i1 >> 2] | 0;
 45146    i10 = i2 + 12 | 0;
 45147    if ((i9 | 0) > 0) {
 45148     i11 = 0;
 45149     do {
 45150      i12 = i8 + (i11 << 2) | 0;
 45151      if ((i12 | 0) != 0) {
 45152       HEAP32[i12 >> 2] = HEAP32[(HEAP32[i10 >> 2] | 0) + (i11 << 2) >> 2];
 45154      i11 = i11 + 1 | 0;
 45155     } while ((i11 | 0) < (i9 | 0));
 45157    i11 = HEAP32[i10 >> 2] | 0;
 45158    i12 = i2 + 16 | 0;
 45159    if ((i11 | 0) == 0) {
 45160     i13 = i9;
 45161    } else {
 45162     if ((HEAP8[i12] | 0) == 0) {
 45163      i14 = i9;
 45164     } else {
 45165      __Z21btAlignedFreeInternalPv(i11);
 45166      i14 = HEAP32[i1 >> 2] | 0;
 45168     HEAP32[i10 >> 2] = 0;
 45169     i13 = i14;
 45171    HEAP8[i12] = 1;
 45172    HEAP32[i10 >> 2] = i8;
 45173    HEAP32[i5 >> 2] = i6;
 45174    i7 = i13;
 45175   } else {
 45176    i7 = i4;
 45178  } while (0);
 45179  i4 = (HEAP32[i2 + 12 >> 2] | 0) + (i7 << 2) | 0;
 45180  if ((i4 | 0) != 0) {
 45181   HEAP32[i4 >> 2] = HEAP32[i3 >> 2];
 45183  HEAP32[i1 >> 2] = i7 + 1;
 45184  return;
 45186 function __ZN26btBoxBoxCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(i1, i2) {
 45187  i1 = i1 | 0;
 45188  i2 = i2 | 0;
 45189  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
 45190  i3 = i1 + 12 | 0;
 45191  if ((HEAP32[i3 >> 2] | 0) == 0) {
 45192   return;
 45194  if ((HEAP8[i1 + 8 | 0] | 0) == 0) {
 45195   return;
 45197  i1 = i2 + 4 | 0;
 45198  i4 = HEAP32[i1 >> 2] | 0;
 45199  i5 = i2 + 8 | 0;
 45200  do {
 45201   if ((i4 | 0) == (HEAP32[i5 >> 2] | 0)) {
 45202    i6 = (i4 | 0) == 0 ? 1 : i4 << 1;
 45203    if ((i4 | 0) >= (i6 | 0)) {
 45204     i7 = i4;
 45205     break;
 45207    if ((i6 | 0) == 0) {
 45208     i8 = 0;
 45209     i9 = i4;
 45210    } else {
 45211     i10 = __Z22btAlignedAllocInternalji(i6 << 2, 16) | 0;
 45212     i8 = i10;
 45213     i9 = HEAP32[i1 >> 2] | 0;
 45215    i10 = i2 + 12 | 0;
 45216    if ((i9 | 0) > 0) {
 45217     i11 = 0;
 45218     do {
 45219      i12 = i8 + (i11 << 2) | 0;
 45220      if ((i12 | 0) != 0) {
 45221       HEAP32[i12 >> 2] = HEAP32[(HEAP32[i10 >> 2] | 0) + (i11 << 2) >> 2];
 45223      i11 = i11 + 1 | 0;
 45224     } while ((i11 | 0) < (i9 | 0));
 45226    i11 = HEAP32[i10 >> 2] | 0;
 45227    i12 = i2 + 16 | 0;
 45228    if ((i11 | 0) == 0) {
 45229     i13 = i9;
 45230    } else {
 45231     if ((HEAP8[i12] | 0) == 0) {
 45232      i14 = i9;
 45233     } else {
 45234      __Z21btAlignedFreeInternalPv(i11);
 45235      i14 = HEAP32[i1 >> 2] | 0;
 45237     HEAP32[i10 >> 2] = 0;
 45238     i13 = i14;
 45240    HEAP8[i12] = 1;
 45241    HEAP32[i10 >> 2] = i8;
 45242    HEAP32[i5 >> 2] = i6;
 45243    i7 = i13;
 45244   } else {
 45245    i7 = i4;
 45247  } while (0);
 45248  i4 = (HEAP32[i2 + 12 >> 2] | 0) + (i7 << 2) | 0;
 45249  if ((i4 | 0) != 0) {
 45250   HEAP32[i4 >> 2] = HEAP32[i3 >> 2];
 45252  HEAP32[i1 >> 2] = i7 + 1;
 45253  return;
 45255 function __ZN23btConvexConvexAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(i1, i2) {
 45256  i1 = i1 | 0;
 45257  i2 = i2 | 0;
 45258  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
 45259  i3 = i1 + 20 | 0;
 45260  if ((HEAP32[i3 >> 2] | 0) == 0) {
 45261   return;
 45263  if ((HEAP8[i1 + 16 | 0] | 0) == 0) {
 45264   return;
 45266  i1 = i2 + 4 | 0;
 45267  i4 = HEAP32[i1 >> 2] | 0;
 45268  i5 = i2 + 8 | 0;
 45269  do {
 45270   if ((i4 | 0) == (HEAP32[i5 >> 2] | 0)) {
 45271    i6 = (i4 | 0) == 0 ? 1 : i4 << 1;
 45272    if ((i4 | 0) >= (i6 | 0)) {
 45273     i7 = i4;
 45274     break;
 45276    if ((i6 | 0) == 0) {
 45277     i8 = 0;
 45278     i9 = i4;
 45279    } else {
 45280     i10 = __Z22btAlignedAllocInternalji(i6 << 2, 16) | 0;
 45281     i8 = i10;
 45282     i9 = HEAP32[i1 >> 2] | 0;
 45284    i10 = i2 + 12 | 0;
 45285    if ((i9 | 0) > 0) {
 45286     i11 = 0;
 45287     do {
 45288      i12 = i8 + (i11 << 2) | 0;
 45289      if ((i12 | 0) != 0) {
 45290       HEAP32[i12 >> 2] = HEAP32[(HEAP32[i10 >> 2] | 0) + (i11 << 2) >> 2];
 45292      i11 = i11 + 1 | 0;
 45293     } while ((i11 | 0) < (i9 | 0));
 45295    i11 = HEAP32[i10 >> 2] | 0;
 45296    i12 = i2 + 16 | 0;
 45297    if ((i11 | 0) == 0) {
 45298     i13 = i9;
 45299    } else {
 45300     if ((HEAP8[i12] | 0) == 0) {
 45301      i14 = i9;
 45302     } else {
 45303      __Z21btAlignedFreeInternalPv(i11);
 45304      i14 = HEAP32[i1 >> 2] | 0;
 45306     HEAP32[i10 >> 2] = 0;
 45307     i13 = i14;
 45309    HEAP8[i12] = 1;
 45310    HEAP32[i10 >> 2] = i8;
 45311    HEAP32[i5 >> 2] = i6;
 45312    i7 = i13;
 45313   } else {
 45314    i7 = i4;
 45316  } while (0);
 45317  i4 = (HEAP32[i2 + 12 >> 2] | 0) + (i7 << 2) | 0;
 45318  if ((i4 | 0) != 0) {
 45319   HEAP32[i4 >> 2] = HEAP32[i3 >> 2];
 45321  HEAP32[i1 >> 2] = i7 + 1;
 45322  return;
 45324 function __ZNK23btPolyhedralConvexShape37localGetSupportingVertexWithoutMarginERK9btVector3(i1, i2, i3) {
 45325  i1 = i1 | 0;
 45326  i2 = i2 | 0;
 45327  i3 = i3 | 0;
 45328  var i4 = 0, i5 = 0, i6 = 0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, d20 = 0.0, i21 = 0;
 45329  i4 = STACKTOP;
 45330  STACKTOP = STACKTOP + 16 | 0;
 45331  i5 = i4 | 0;
 45332  i6 = i1;
 45333  _memset(i6 | 0, 0, 16);
 45334  d7 = +HEAPF32[i3 >> 2];
 45335  d8 = +HEAPF32[i3 + 4 >> 2];
 45336  d9 = +HEAPF32[i3 + 8 >> 2];
 45337  d10 = d7 * d7 + d8 * d8 + d9 * d9;
 45338  if (d10 < 9999999747378752.0e-20) {
 45339   d11 = 1.0;
 45340   d12 = 0.0;
 45341   d13 = 0.0;
 45342  } else {
 45343   d14 = 1.0 / +Math_sqrt(+d10);
 45344   d11 = d7 * d14;
 45345   d12 = d8 * d14;
 45346   d13 = d9 * d14;
 45348  i3 = i2;
 45349  if ((FUNCTION_TABLE_ii[HEAP32[(HEAP32[i3 >> 2] | 0) + 88 >> 2] & 127](i2) | 0) <= 0) {
 45350   STACKTOP = i4;
 45351   return;
 45353  i1 = i2;
 45354  i15 = i5 | 0;
 45355  i16 = i5 + 4 | 0;
 45356  i17 = i5 + 8 | 0;
 45357  i18 = i5;
 45358  d14 = -999999984306749400.0;
 45359  i19 = 0;
 45360  while (1) {
 45361   FUNCTION_TABLE_viii[HEAP32[(HEAP32[i1 >> 2] | 0) + 100 >> 2] & 127](i2, i19, i5);
 45362   d9 = d11 * +HEAPF32[i15 >> 2] + d12 * +HEAPF32[i16 >> 2] + d13 * +HEAPF32[i17 >> 2];
 45363   if (d9 > d14) {
 45364    HEAP32[i6 >> 2] = HEAP32[i18 >> 2];
 45365    HEAP32[i6 + 4 >> 2] = HEAP32[i18 + 4 >> 2];
 45366    HEAP32[i6 + 8 >> 2] = HEAP32[i18 + 8 >> 2];
 45367    HEAP32[i6 + 12 >> 2] = HEAP32[i18 + 12 >> 2];
 45368    d20 = d9;
 45369   } else {
 45370    d20 = d14;
 45372   i21 = i19 + 1 | 0;
 45373   if ((i21 | 0) < (FUNCTION_TABLE_ii[HEAP32[(HEAP32[i3 >> 2] | 0) + 88 >> 2] & 127](i2) | 0)) {
 45374    d14 = d20;
 45375    i19 = i21;
 45376   } else {
 45377    break;
 45380  STACKTOP = i4;
 45381  return;
 45383 function __ZN20btConvexHullInternal4PoolINS_4FaceEE9newObjectEv(i1) {
 45384  i1 = i1 | 0;
 45385  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
 45386  i2 = i1 + 8 | 0;
 45387  i3 = HEAP32[i2 >> 2] | 0;
 45388  do {
 45389   if ((i3 | 0) == 0) {
 45390    i4 = i1 + 4 | 0;
 45391    i5 = HEAP32[i4 >> 2] | 0;
 45392    if ((i5 | 0) == 0) {
 45393     i6 = __Z22btAlignedAllocInternalji(12, 16) | 0;
 45394     if ((i6 | 0) == 0) {
 45395      i7 = 0;
 45396     } else {
 45397      i8 = HEAP32[i1 + 12 >> 2] | 0;
 45398      HEAP32[i6 + 4 >> 2] = i8;
 45399      HEAP32[i6 + 8 >> 2] = 0;
 45400      HEAP32[i6 >> 2] = __Z22btAlignedAllocInternalji(i8 * 60 | 0, 16) | 0;
 45401      i7 = i6;
 45403     i6 = i1 | 0;
 45404     HEAP32[i7 + 8 >> 2] = HEAP32[i6 >> 2];
 45405     HEAP32[i6 >> 2] = i7;
 45406     i9 = i7;
 45407    } else {
 45408     HEAP32[i4 >> 2] = HEAP32[i5 + 8 >> 2];
 45409     i9 = i5;
 45411    i5 = i9 | 0;
 45412    i4 = HEAP32[i9 + 4 >> 2] | 0;
 45413    if ((i4 | 0) > 0) {
 45414     i6 = HEAP32[i5 >> 2] | 0;
 45415     i8 = 0;
 45416     while (1) {
 45417      i10 = i8 + 1 | 0;
 45418      i11 = (i10 | 0) < (i4 | 0);
 45419      i12 = i6 + 60 | 0;
 45420      HEAP32[i6 >> 2] = i11 ? i12 : 0;
 45421      if (i11) {
 45422       i6 = i12;
 45423       i8 = i10;
 45424      } else {
 45425       break;
 45429    i8 = HEAP32[i5 >> 2] | 0;
 45430    i6 = i8 | 0;
 45431    HEAP32[i2 >> 2] = HEAP32[i6 >> 2];
 45432    if ((i8 | 0) == 0) {
 45433     i13 = 0;
 45434    } else {
 45435     i14 = i8;
 45436     i15 = i6;
 45437     break;
 45439    return i13 | 0;
 45440   } else {
 45441    i6 = i3 | 0;
 45442    HEAP32[i2 >> 2] = HEAP32[i6 >> 2];
 45443    i14 = i3;
 45444    i15 = i6;
 45446  } while (0);
 45447  HEAP32[i15 >> 2] = 0;
 45448  HEAP32[i14 + 4 >> 2] = 0;
 45449  HEAP32[i14 + 8 >> 2] = 0;
 45450  i13 = i14;
 45451  return i13 | 0;
 45453 function __ZN16btCollisionWorldD2Ev(i1) {
 45454  i1 = i1 | 0;
 45455  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0;
 45456  HEAP32[i1 >> 2] = 4464;
 45457  i2 = i1 + 8 | 0;
 45458  i3 = HEAP32[i2 >> 2] | 0;
 45459  i4 = i1 + 16 | 0;
 45460  i5 = HEAP32[i4 >> 2] | 0;
 45461  if ((i3 | 0) > 0) {
 45462   i6 = i1 + 76 | 0;
 45463   i7 = i1 + 24 | 0;
 45464   i8 = 0;
 45465   i9 = i5;
 45466   i10 = i3;
 45467   while (1) {
 45468    i3 = (HEAP32[i9 + (i8 << 2) >> 2] | 0) + 188 | 0;
 45469    i11 = HEAP32[i3 >> 2] | 0;
 45470    if ((i11 | 0) == 0) {
 45471     i12 = i10;
 45472     i13 = i9;
 45473    } else {
 45474     i14 = HEAP32[i6 >> 2] | 0;
 45475     i15 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i14 >> 2] | 0) + 36 >> 2] & 127](i14) | 0;
 45476     FUNCTION_TABLE_viii[HEAP32[(HEAP32[i15 >> 2] | 0) + 40 >> 2] & 127](i15, i11, HEAP32[i7 >> 2] | 0);
 45477     i15 = HEAP32[i6 >> 2] | 0;
 45478     FUNCTION_TABLE_viii[HEAP32[(HEAP32[i15 >> 2] | 0) + 12 >> 2] & 127](i15, i11, HEAP32[i7 >> 2] | 0);
 45479     HEAP32[i3 >> 2] = 0;
 45480     i12 = HEAP32[i2 >> 2] | 0;
 45481     i13 = HEAP32[i4 >> 2] | 0;
 45483    i3 = i8 + 1 | 0;
 45484    if ((i3 | 0) < (i12 | 0)) {
 45485     i8 = i3;
 45486     i9 = i13;
 45487     i10 = i12;
 45488    } else {
 45489     i16 = i13;
 45490     break;
 45493  } else {
 45494   i16 = i5;
 45496  i5 = i1 + 20 | 0;
 45497  if ((i16 | 0) == 0) {
 45498   HEAP8[i5] = 1;
 45499   HEAP32[i4 >> 2] = 0;
 45500   HEAP32[i2 >> 2] = 0;
 45501   i17 = i1 + 12 | 0;
 45502   HEAP32[i17 >> 2] = 0;
 45503   return;
 45505  if ((HEAP8[i5] | 0) != 0) {
 45506   __Z21btAlignedFreeInternalPv(i16);
 45508  HEAP32[i4 >> 2] = 0;
 45509  HEAP8[i5] = 1;
 45510  HEAP32[i4 >> 2] = 0;
 45511  HEAP32[i2 >> 2] = 0;
 45512  i17 = i1 + 12 | 0;
 45513  HEAP32[i17 >> 2] = 0;
 45514  return;
 45516 function __ZN33btConvexConcaveCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(i1, i2) {
 45517  i1 = i1 | 0;
 45518  i2 = i2 | 0;
 45519  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
 45520  i3 = i1 + 76 | 0;
 45521  if ((HEAP32[i3 >> 2] | 0) == 0) {
 45522   return;
 45524  i1 = i2 + 4 | 0;
 45525  i4 = HEAP32[i1 >> 2] | 0;
 45526  i5 = i2 + 8 | 0;
 45527  do {
 45528   if ((i4 | 0) == (HEAP32[i5 >> 2] | 0)) {
 45529    i6 = (i4 | 0) == 0 ? 1 : i4 << 1;
 45530    if ((i4 | 0) >= (i6 | 0)) {
 45531     i7 = i4;
 45532     break;
 45534    if ((i6 | 0) == 0) {
 45535     i8 = 0;
 45536     i9 = i4;
 45537    } else {
 45538     i10 = __Z22btAlignedAllocInternalji(i6 << 2, 16) | 0;
 45539     i8 = i10;
 45540     i9 = HEAP32[i1 >> 2] | 0;
 45542    i10 = i2 + 12 | 0;
 45543    if ((i9 | 0) > 0) {
 45544     i11 = 0;
 45545     do {
 45546      i12 = i8 + (i11 << 2) | 0;
 45547      if ((i12 | 0) != 0) {
 45548       HEAP32[i12 >> 2] = HEAP32[(HEAP32[i10 >> 2] | 0) + (i11 << 2) >> 2];
 45550      i11 = i11 + 1 | 0;
 45551     } while ((i11 | 0) < (i9 | 0));
 45553    i11 = HEAP32[i10 >> 2] | 0;
 45554    i12 = i2 + 16 | 0;
 45555    if ((i11 | 0) == 0) {
 45556     i13 = i9;
 45557    } else {
 45558     if ((HEAP8[i12] | 0) == 0) {
 45559      i14 = i9;
 45560     } else {
 45561      __Z21btAlignedFreeInternalPv(i11);
 45562      i14 = HEAP32[i1 >> 2] | 0;
 45564     HEAP32[i10 >> 2] = 0;
 45565     i13 = i14;
 45567    HEAP8[i12] = 1;
 45568    HEAP32[i10 >> 2] = i8;
 45569    HEAP32[i5 >> 2] = i6;
 45570    i7 = i13;
 45571   } else {
 45572    i7 = i4;
 45574  } while (0);
 45575  i4 = (HEAP32[i2 + 12 >> 2] | 0) + (i7 << 2) | 0;
 45576  if ((i4 | 0) != 0) {
 45577   HEAP32[i4 >> 2] = HEAP32[i3 >> 2];
 45579  HEAP32[i1 >> 2] = i7 + 1;
 45580  return;
 45582 function __ZN22SphereTriangleDetector15pointInTriangleEPK9btVector3RS1_PS0_(i1, i2, i3, i4) {
 45583  i1 = i1 | 0;
 45584  i2 = i2 | 0;
 45585  i3 = i3 | 0;
 45586  i4 = i4 | 0;
 45587  var d5 = 0.0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, d21 = 0.0, d22 = 0.0, d23 = 0.0, d24 = 0.0, d25 = 0.0, d26 = 0.0, d27 = 0.0, d28 = 0.0, d29 = 0.0;
 45588  d5 = +HEAPF32[i2 + 16 >> 2];
 45589  d6 = +HEAPF32[i2 >> 2];
 45590  d7 = d5 - d6;
 45591  d8 = +HEAPF32[i2 + 20 >> 2];
 45592  d9 = +HEAPF32[i2 + 4 >> 2];
 45593  d10 = d8 - d9;
 45594  d11 = +HEAPF32[i2 + 24 >> 2];
 45595  d12 = +HEAPF32[i2 + 8 >> 2];
 45596  d13 = d11 - d12;
 45597  d14 = +HEAPF32[i2 + 32 >> 2];
 45598  d15 = d14 - d5;
 45599  d16 = +HEAPF32[i2 + 36 >> 2];
 45600  d17 = d16 - d8;
 45601  d18 = +HEAPF32[i2 + 40 >> 2];
 45602  d19 = d18 - d11;
 45603  d20 = d6 - d14;
 45604  d21 = d9 - d16;
 45605  d22 = d12 - d18;
 45606  d23 = +HEAPF32[i4 >> 2];
 45607  d24 = +HEAPF32[i4 + 4 >> 2];
 45608  d25 = +HEAPF32[i4 + 8 >> 2];
 45609  d26 = +HEAPF32[i3 + 8 >> 2];
 45610  d27 = +HEAPF32[i3 + 4 >> 2];
 45611  d28 = +HEAPF32[i3 >> 2];
 45612  d29 = (d25 - d12) * (d7 * d27 - d10 * d28) + ((d23 - d6) * (d10 * d26 - d13 * d27) + (d24 - d9) * (d13 * d28 - d7 * d26));
 45613  d7 = (d25 - d11) * (d15 * d27 - d17 * d28) + ((d23 - d5) * (d17 * d26 - d19 * d27) + (d24 - d8) * (d19 * d28 - d15 * d26));
 45614  d15 = (d25 - d18) * (d20 * d27 - d21 * d28) + ((d23 - d14) * (d21 * d26 - d22 * d27) + (d24 - d16) * (d22 * d28 - d20 * d26));
 45615  if (d29 > 0.0 & d7 > 0.0 & d15 > 0.0) {
 45616   return 1;
 45617  } else {
 45618   return (d29 > 0.0 | d7 > 0.0 | d15 > 0.0) ^ 1 | 0;
 45620  return 0;
 45622 function __ZNK12gjkepa2_impl3GJK10getsupportERK9btVector3RNS0_3sSVE(i1, i2, i3) {
 45623  i1 = i1 | 0;
 45624  i2 = i2 | 0;
 45625  i3 = i3 | 0;
 45626  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0;
 45627  i4 = STACKTOP;
 45628  STACKTOP = STACKTOP + 48 | 0;
 45629  i5 = i4 | 0;
 45630  i6 = i4 + 16 | 0;
 45631  i7 = i4 + 32 | 0;
 45632  d8 = +HEAPF32[i2 >> 2];
 45633  d9 = +HEAPF32[i2 + 4 >> 2];
 45634  d10 = +HEAPF32[i2 + 8 >> 2];
 45635  d11 = 1.0 / +Math_sqrt(+(d8 * d8 + d9 * d9 + d10 * d10));
 45636  i2 = i3 | 0;
 45637  HEAPF32[i2 >> 2] = d8 * d11;
 45638  i12 = i3 + 4 | 0;
 45639  HEAPF32[i12 >> 2] = d9 * d11;
 45640  i13 = i3 + 8 | 0;
 45641  HEAPF32[i13 >> 2] = d10 * d11;
 45642  HEAPF32[i3 + 12 >> 2] = 0.0;
 45643  i14 = i1 + 120 | 0;
 45644  i15 = (HEAP32[i1 >> 2] | 0) + (HEAP32[i14 + 4 >> 2] | 0) | 0;
 45645  i16 = HEAP32[i14 >> 2] | 0;
 45646  if ((i16 & 1 | 0) == 0) {
 45647   i17 = i16;
 45648  } else {
 45649   i17 = HEAP32[(HEAP32[i15 >> 2] | 0) + (i16 - 1) >> 2] | 0;
 45651  FUNCTION_TABLE_viii[i17 & 127](i5, i15, i3 | 0);
 45652  d11 = -0.0 - +HEAPF32[i12 >> 2];
 45653  d10 = -0.0 - +HEAPF32[i13 >> 2];
 45654  HEAPF32[i7 >> 2] = -0.0 - +HEAPF32[i2 >> 2];
 45655  HEAPF32[i7 + 4 >> 2] = d11;
 45656  HEAPF32[i7 + 8 >> 2] = d10;
 45657  HEAPF32[i7 + 12 >> 2] = 0.0;
 45658  __ZNK12gjkepa2_impl13MinkowskiDiff8Support1ERK9btVector3(i6, i1 | 0, i7);
 45659  d10 = +HEAPF32[i5 + 4 >> 2] - +HEAPF32[i6 + 4 >> 2];
 45660  d11 = +HEAPF32[i5 + 8 >> 2] - +HEAPF32[i6 + 8 >> 2];
 45661  HEAPF32[i3 + 16 >> 2] = +HEAPF32[i5 >> 2] - +HEAPF32[i6 >> 2];
 45662  HEAPF32[i3 + 20 >> 2] = d10;
 45663  HEAPF32[i3 + 24 >> 2] = d11;
 45664  HEAPF32[i3 + 28 >> 2] = 0.0;
 45665  STACKTOP = i4;
 45666  return;
 45668 function __ZN23btDiscreteDynamicsWorld9addActionEP17btActionInterface(i1, i2) {
 45669  i1 = i1 | 0;
 45670  i2 = i2 | 0;
 45671  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
 45672  i3 = i1 + 248 | 0;
 45673  i4 = HEAP32[i3 >> 2] | 0;
 45674  i5 = i1 + 252 | 0;
 45675  do {
 45676   if ((i4 | 0) == (HEAP32[i5 >> 2] | 0)) {
 45677    i6 = (i4 | 0) == 0 ? 1 : i4 << 1;
 45678    if ((i4 | 0) >= (i6 | 0)) {
 45679     i7 = i4;
 45680     break;
 45682    if ((i6 | 0) == 0) {
 45683     i8 = 0;
 45684     i9 = i4;
 45685    } else {
 45686     i10 = __Z22btAlignedAllocInternalji(i6 << 2, 16) | 0;
 45687     i8 = i10;
 45688     i9 = HEAP32[i3 >> 2] | 0;
 45690    i10 = i1 + 256 | 0;
 45691    if ((i9 | 0) > 0) {
 45692     i11 = 0;
 45693     do {
 45694      i12 = i8 + (i11 << 2) | 0;
 45695      if ((i12 | 0) != 0) {
 45696       HEAP32[i12 >> 2] = HEAP32[(HEAP32[i10 >> 2] | 0) + (i11 << 2) >> 2];
 45698      i11 = i11 + 1 | 0;
 45699     } while ((i11 | 0) < (i9 | 0));
 45701    i11 = HEAP32[i10 >> 2] | 0;
 45702    i12 = i1 + 260 | 0;
 45703    if ((i11 | 0) == 0) {
 45704     i13 = i9;
 45705    } else {
 45706     if ((HEAP8[i12] | 0) == 0) {
 45707      i14 = i9;
 45708     } else {
 45709      __Z21btAlignedFreeInternalPv(i11);
 45710      i14 = HEAP32[i3 >> 2] | 0;
 45712     HEAP32[i10 >> 2] = 0;
 45713     i13 = i14;
 45715    HEAP8[i12] = 1;
 45716    HEAP32[i10 >> 2] = i8;
 45717    HEAP32[i5 >> 2] = i6;
 45718    i7 = i13;
 45719   } else {
 45720    i7 = i4;
 45722  } while (0);
 45723  i4 = (HEAP32[i1 + 256 >> 2] | 0) + (i7 << 2) | 0;
 45724  if ((i4 | 0) == 0) {
 45725   i15 = i7 + 1 | 0;
 45726   HEAP32[i3 >> 2] = i15;
 45727   return;
 45729  HEAP32[i4 >> 2] = i2;
 45730  i15 = i7 + 1 | 0;
 45731  HEAP32[i3 >> 2] = i15;
 45732  return;
 45734 function __ZN20btConvexHullInternal4PoolINS_6VertexEE9newObjectEv(i1) {
 45735  i1 = i1 | 0;
 45736  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
 45737  i2 = i1 + 8 | 0;
 45738  i3 = HEAP32[i2 >> 2] | 0;
 45739  do {
 45740   if ((i3 | 0) == 0) {
 45741    i4 = i1 + 4 | 0;
 45742    i5 = HEAP32[i4 >> 2] | 0;
 45743    if ((i5 | 0) == 0) {
 45744     i6 = __Z22btAlignedAllocInternalji(12, 16) | 0;
 45745     if ((i6 | 0) == 0) {
 45746      i7 = 0;
 45747     } else {
 45748      i8 = HEAP32[i1 + 12 >> 2] | 0;
 45749      HEAP32[i6 + 4 >> 2] = i8;
 45750      HEAP32[i6 + 8 >> 2] = 0;
 45751      HEAP32[i6 >> 2] = __Z22btAlignedAllocInternalji(i8 * 112 | 0, 16) | 0;
 45752      i7 = i6;
 45754     i6 = i1 | 0;
 45755     HEAP32[i7 + 8 >> 2] = HEAP32[i6 >> 2];
 45756     HEAP32[i6 >> 2] = i7;
 45757     i9 = i7;
 45758    } else {
 45759     HEAP32[i4 >> 2] = HEAP32[i5 + 8 >> 2];
 45760     i9 = i5;
 45762    i5 = i9 | 0;
 45763    i4 = HEAP32[i9 + 4 >> 2] | 0;
 45764    if ((i4 | 0) > 0) {
 45765     i6 = HEAP32[i5 >> 2] | 0;
 45766     i8 = 0;
 45767     while (1) {
 45768      i10 = i8 + 1 | 0;
 45769      i11 = (i10 | 0) < (i4 | 0);
 45770      i12 = i6 + 112 | 0;
 45771      HEAP32[i6 >> 2] = i11 ? i12 : 0;
 45772      if (i11) {
 45773       i6 = i12;
 45774       i8 = i10;
 45775      } else {
 45776       break;
 45780    i8 = HEAP32[i5 >> 2] | 0;
 45781    HEAP32[i2 >> 2] = HEAP32[i8 >> 2];
 45782    if ((i8 | 0) == 0) {
 45783     i13 = 0;
 45784    } else {
 45785     i14 = i8;
 45786     break;
 45788    return i13 | 0;
 45789   } else {
 45790    HEAP32[i2 >> 2] = HEAP32[i3 >> 2];
 45791    i14 = i3;
 45793  } while (0);
 45794  _memset(i14 | 0, 0, 20);
 45795  HEAP32[i14 + 104 >> 2] = -1;
 45796  i13 = i14;
 45797  return i13 | 0;
 45799 function __ZN20btConvexHullInternal14getCoordinatesEPKNS_6VertexE(i1, i2, i3) {
 45800  i1 = i1 | 0;
 45801  i2 = i2 | 0;
 45802  i3 = i3 | 0;
 45803  var i4 = 0, i5 = 0, d6 = 0.0, i7 = 0, d8 = 0.0, i9 = 0, d10 = 0.0;
 45804  i4 = STACKTOP;
 45805  STACKTOP = STACKTOP + 16 | 0;
 45806  i5 = i4 | 0;
 45807  if ((HEAP32[i3 + 100 >> 2] | 0) > -1) {
 45808   HEAPF32[i5 + (HEAP32[i2 + 108 >> 2] << 2) >> 2] = +(HEAP32[i3 + 88 >> 2] | 0);
 45809   HEAPF32[i5 + (HEAP32[i2 + 112 >> 2] << 2) >> 2] = +(HEAP32[i3 + 92 >> 2] | 0);
 45810   d6 = +(HEAP32[i3 + 96 >> 2] | 0);
 45811   i7 = i5 | 0;
 45812  } else {
 45813   d8 = +__ZNK20btConvexHullInternal6Int1288toScalarEv(i3 + 24 | 0);
 45814   i9 = i3 + 72 | 0;
 45815   d10 = d8 / +__ZNK20btConvexHullInternal6Int1288toScalarEv(i9);
 45816   HEAPF32[i5 + (HEAP32[i2 + 108 >> 2] << 2) >> 2] = d10;
 45817   d10 = +__ZNK20btConvexHullInternal6Int1288toScalarEv(i3 + 40 | 0);
 45818   d8 = d10 / +__ZNK20btConvexHullInternal6Int1288toScalarEv(i9);
 45819   HEAPF32[i5 + (HEAP32[i2 + 112 >> 2] << 2) >> 2] = d8;
 45820   d8 = +__ZNK20btConvexHullInternal6Int1288toScalarEv(i3 + 56 | 0);
 45821   d6 = d8 / +__ZNK20btConvexHullInternal6Int1288toScalarEv(i9);
 45822   i7 = i5 | 0;
 45824  HEAPF32[i5 + (HEAP32[i2 + 104 >> 2] << 2) >> 2] = d6;
 45825  d6 = +HEAPF32[i5 + 4 >> 2] * +HEAPF32[i2 + 4 >> 2] + +HEAPF32[i2 + 20 >> 2];
 45826  d8 = +HEAPF32[i5 + 8 >> 2] * +HEAPF32[i2 + 8 >> 2] + +HEAPF32[i2 + 24 >> 2];
 45827  HEAPF32[i1 >> 2] = +HEAPF32[i7 >> 2] * +HEAPF32[i2 >> 2] + +HEAPF32[i2 + 16 >> 2];
 45828  HEAPF32[i1 + 4 >> 2] = d6;
 45829  HEAPF32[i1 + 8 >> 2] = d8;
 45830  HEAPF32[i1 + 12 >> 2] = 0.0;
 45831  STACKTOP = i4;
 45832  return;
 45834 function __ZN12gjkepa2_impl3GJK13projectoriginERK9btVector3S3_PfRj(i1, i2, i3, i4) {
 45835  i1 = i1 | 0;
 45836  i2 = i2 | 0;
 45837  i3 = i3 | 0;
 45838  i4 = i4 | 0;
 45839  var i5 = 0, i6 = 0, d7 = 0.0, d8 = 0.0, i9 = 0, i10 = 0, d11 = 0.0, d12 = 0.0, i13 = 0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0;
 45840  i5 = i2 | 0;
 45841  i6 = i1 | 0;
 45842  d7 = +HEAPF32[i6 >> 2];
 45843  d8 = +HEAPF32[i5 >> 2] - d7;
 45844  i9 = i2 + 4 | 0;
 45845  i10 = i1 + 4 | 0;
 45846  d11 = +HEAPF32[i10 >> 2];
 45847  d12 = +HEAPF32[i9 >> 2] - d11;
 45848  i13 = i2 + 8 | 0;
 45849  i2 = i1 + 8 | 0;
 45850  d14 = +HEAPF32[i2 >> 2];
 45851  d15 = +HEAPF32[i13 >> 2] - d14;
 45852  d16 = d8 * d8 + d12 * d12 + d15 * d15;
 45853  if (d16 <= 0.0) {
 45854   d17 = -1.0;
 45855   return +d17;
 45857  d18 = (-0.0 - (d7 * d8 + d11 * d12 + d14 * d15)) / d16;
 45858  if (d18 >= 1.0) {
 45859   HEAPF32[i3 >> 2] = 0.0;
 45860   HEAPF32[i3 + 4 >> 2] = 1.0;
 45861   HEAP32[i4 >> 2] = 2;
 45862   d16 = +HEAPF32[i5 >> 2];
 45863   d14 = +HEAPF32[i9 >> 2];
 45864   d11 = +HEAPF32[i13 >> 2];
 45865   d17 = d16 * d16 + d14 * d14 + d11 * d11;
 45866   return +d17;
 45868  if (d18 > 0.0) {
 45869   HEAPF32[i3 + 4 >> 2] = d18;
 45870   HEAPF32[i3 >> 2] = 1.0 - d18;
 45871   HEAP32[i4 >> 2] = 3;
 45872   d11 = d8 * d18 + +HEAPF32[i6 >> 2];
 45873   d8 = d12 * d18 + +HEAPF32[i10 >> 2];
 45874   d12 = d15 * d18 + +HEAPF32[i2 >> 2];
 45875   d17 = d11 * d11 + d8 * d8 + d12 * d12;
 45876   return +d17;
 45877  } else {
 45878   HEAPF32[i3 >> 2] = 1.0;
 45879   HEAPF32[i3 + 4 >> 2] = 0.0;
 45880   HEAP32[i4 >> 2] = 1;
 45881   d12 = +HEAPF32[i6 >> 2];
 45882   d8 = +HEAPF32[i10 >> 2];
 45883   d11 = +HEAPF32[i2 >> 2];
 45884   d17 = d12 * d12 + d8 * d8 + d11 * d11;
 45885   return +d17;
 45887  return 0.0;
 45889 function __ZN20btConvexHullInternal4PoolINS_4EdgeEE9newObjectEv(i1) {
 45890  i1 = i1 | 0;
 45891  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
 45892  i2 = i1 + 8 | 0;
 45893  i3 = HEAP32[i2 >> 2] | 0;
 45894  do {
 45895   if ((i3 | 0) == 0) {
 45896    i4 = i1 + 4 | 0;
 45897    i5 = HEAP32[i4 >> 2] | 0;
 45898    if ((i5 | 0) == 0) {
 45899     i6 = __Z22btAlignedAllocInternalji(12, 16) | 0;
 45900     if ((i6 | 0) == 0) {
 45901      i7 = 0;
 45902     } else {
 45903      i8 = HEAP32[i1 + 12 >> 2] | 0;
 45904      HEAP32[i6 + 4 >> 2] = i8;
 45905      HEAP32[i6 + 8 >> 2] = 0;
 45906      HEAP32[i6 >> 2] = __Z22btAlignedAllocInternalji(i8 * 24 | 0, 16) | 0;
 45907      i7 = i6;
 45909     i6 = i1 | 0;
 45910     HEAP32[i7 + 8 >> 2] = HEAP32[i6 >> 2];
 45911     HEAP32[i6 >> 2] = i7;
 45912     i9 = i7;
 45913    } else {
 45914     HEAP32[i4 >> 2] = HEAP32[i5 + 8 >> 2];
 45915     i9 = i5;
 45917    i5 = i9 | 0;
 45918    i4 = HEAP32[i9 + 4 >> 2] | 0;
 45919    if ((i4 | 0) > 0) {
 45920     i6 = HEAP32[i5 >> 2] | 0;
 45921     i8 = 0;
 45922     while (1) {
 45923      i10 = i8 + 1 | 0;
 45924      i11 = (i10 | 0) < (i4 | 0);
 45925      i12 = i6 + 24 | 0;
 45926      HEAP32[i6 >> 2] = i11 ? i12 : 0;
 45927      if (i11) {
 45928       i6 = i12;
 45929       i8 = i10;
 45930      } else {
 45931       break;
 45935    i8 = HEAP32[i5 >> 2] | 0;
 45936    HEAP32[i2 >> 2] = HEAP32[i8 >> 2];
 45937    if ((i8 | 0) == 0) {
 45938     i13 = 0;
 45939    } else {
 45940     i14 = i8;
 45941     break;
 45943    return i13 | 0;
 45944   } else {
 45945    HEAP32[i2 >> 2] = HEAP32[i3 >> 2];
 45946    i14 = i3;
 45948  } while (0);
 45949  _memset(i14 | 0, 0, 24);
 45950  i13 = i14;
 45951  return i13 | 0;
 45953 function __ZN9btHashMapI20btInternalVertexPair14btInternalEdgeED2Ev(i1) {
 45954  i1 = i1 | 0;
 45955  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
 45956  i2 = i1 + 64 | 0;
 45957  i3 = i1 + 72 | 0;
 45958  i4 = HEAP32[i3 >> 2] | 0;
 45959  i5 = i1 + 76 | 0;
 45960  if ((i4 | 0) != 0) {
 45961   if ((HEAP8[i5] | 0) != 0) {
 45962    __Z21btAlignedFreeInternalPv(i4);
 45964   HEAP32[i3 >> 2] = 0;
 45966  HEAP8[i5] = 1;
 45967  HEAP32[i3 >> 2] = 0;
 45968  HEAP32[i2 >> 2] = 0;
 45969  HEAP32[i1 + 68 >> 2] = 0;
 45970  i2 = i1 + 44 | 0;
 45971  i3 = i1 + 52 | 0;
 45972  i5 = HEAP32[i3 >> 2] | 0;
 45973  i4 = i1 + 56 | 0;
 45974  if ((i5 | 0) != 0) {
 45975   if ((HEAP8[i4] | 0) != 0) {
 45976    __Z21btAlignedFreeInternalPv(i5);
 45978   HEAP32[i3 >> 2] = 0;
 45980  HEAP8[i4] = 1;
 45981  HEAP32[i3 >> 2] = 0;
 45982  HEAP32[i2 >> 2] = 0;
 45983  HEAP32[i1 + 48 >> 2] = 0;
 45984  i2 = i1 + 24 | 0;
 45985  i3 = i1 + 32 | 0;
 45986  i4 = HEAP32[i3 >> 2] | 0;
 45987  i5 = i1 + 36 | 0;
 45988  if ((i4 | 0) != 0) {
 45989   if ((HEAP8[i5] | 0) != 0) {
 45990    __Z21btAlignedFreeInternalPv(i4);
 45992   HEAP32[i3 >> 2] = 0;
 45994  HEAP8[i5] = 1;
 45995  HEAP32[i3 >> 2] = 0;
 45996  HEAP32[i2 >> 2] = 0;
 45997  HEAP32[i1 + 28 >> 2] = 0;
 45998  i2 = i1 + 4 | 0;
 45999  i3 = i1 + 12 | 0;
 46000  i5 = HEAP32[i3 >> 2] | 0;
 46001  i4 = i1 + 16 | 0;
 46002  if ((i5 | 0) == 0) {
 46003   HEAP8[i4] = 1;
 46004   HEAP32[i3 >> 2] = 0;
 46005   HEAP32[i2 >> 2] = 0;
 46006   i6 = i1 + 8 | 0;
 46007   HEAP32[i6 >> 2] = 0;
 46008   return;
 46010  if ((HEAP8[i4] | 0) != 0) {
 46011   __Z21btAlignedFreeInternalPv(i5);
 46013  HEAP32[i3 >> 2] = 0;
 46014  HEAP8[i4] = 1;
 46015  HEAP32[i3 >> 2] = 0;
 46016  HEAP32[i2 >> 2] = 0;
 46017  i6 = i1 + 8 | 0;
 46018  HEAP32[i6 >> 2] = 0;
 46019  return;
 46021 function __ZN11btRigidBody19integrateVelocitiesEf(i1, d2) {
 46022  i1 = i1 | 0;
 46023  d2 = +d2;
 46024  var d3 = 0.0, d4 = 0.0, d5 = 0.0, i6 = 0, d7 = 0.0, d8 = 0.0, d9 = 0.0, i10 = 0, i11 = 0;
 46025  if ((HEAP32[i1 + 204 >> 2] & 3 | 0) != 0) {
 46026   return;
 46028  d3 = +HEAPF32[i1 + 336 >> 2] * d2;
 46029  d4 = d3 * +HEAPF32[i1 + 408 >> 2];
 46030  d5 = d3 * +HEAPF32[i1 + 412 >> 2];
 46031  i6 = i1 + 304 | 0;
 46032  HEAPF32[i6 >> 2] = +HEAPF32[i1 + 404 >> 2] * d3 + +HEAPF32[i6 >> 2];
 46033  i6 = i1 + 308 | 0;
 46034  HEAPF32[i6 >> 2] = d4 + +HEAPF32[i6 >> 2];
 46035  i6 = i1 + 312 | 0;
 46036  HEAPF32[i6 >> 2] = d5 + +HEAPF32[i6 >> 2];
 46037  d5 = +HEAPF32[i1 + 420 >> 2];
 46038  d4 = +HEAPF32[i1 + 424 >> 2];
 46039  d3 = +HEAPF32[i1 + 428 >> 2];
 46040  d7 = (d5 * +HEAPF32[i1 + 272 >> 2] + d4 * +HEAPF32[i1 + 276 >> 2] + d3 * +HEAPF32[i1 + 280 >> 2]) * d2;
 46041  d8 = (d5 * +HEAPF32[i1 + 288 >> 2] + d4 * +HEAPF32[i1 + 292 >> 2] + d3 * +HEAPF32[i1 + 296 >> 2]) * d2;
 46042  i6 = i1 + 320 | 0;
 46043  d9 = (+HEAPF32[i1 + 256 >> 2] * d5 + +HEAPF32[i1 + 260 >> 2] * d4 + +HEAPF32[i1 + 264 >> 2] * d3) * d2 + +HEAPF32[i6 >> 2];
 46044  HEAPF32[i6 >> 2] = d9;
 46045  i10 = i1 + 324 | 0;
 46046  d3 = d7 + +HEAPF32[i10 >> 2];
 46047  HEAPF32[i10 >> 2] = d3;
 46048  i11 = i1 + 328 | 0;
 46049  d7 = d8 + +HEAPF32[i11 >> 2];
 46050  HEAPF32[i11 >> 2] = d7;
 46051  d8 = +Math_sqrt(+(d7 * d7 + (d9 * d9 + d3 * d3)));
 46052  if (d8 * d2 <= 1.5707963705062866) {
 46053   return;
 46055  d4 = 1.5707963705062866 / d2 / d8;
 46056  HEAPF32[i6 >> 2] = d9 * d4;
 46057  HEAPF32[i10 >> 2] = d3 * d4;
 46058  HEAPF32[i11 >> 2] = d7 * d4;
 46059  return;
 46061 function __ZN9btHashMapI9btHashPtrP16btCollisionShapeED2Ev(i1) {
 46062  i1 = i1 | 0;
 46063  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
 46064  i2 = i1 + 64 | 0;
 46065  i3 = i1 + 72 | 0;
 46066  i4 = HEAP32[i3 >> 2] | 0;
 46067  i5 = i1 + 76 | 0;
 46068  if ((i4 | 0) != 0) {
 46069   if ((HEAP8[i5] | 0) != 0) {
 46070    __Z21btAlignedFreeInternalPv(i4);
 46072   HEAP32[i3 >> 2] = 0;
 46074  HEAP8[i5] = 1;
 46075  HEAP32[i3 >> 2] = 0;
 46076  HEAP32[i2 >> 2] = 0;
 46077  HEAP32[i1 + 68 >> 2] = 0;
 46078  i2 = i1 + 44 | 0;
 46079  i3 = i1 + 52 | 0;
 46080  i5 = HEAP32[i3 >> 2] | 0;
 46081  i4 = i1 + 56 | 0;
 46082  if ((i5 | 0) != 0) {
 46083   if ((HEAP8[i4] | 0) != 0) {
 46084    __Z21btAlignedFreeInternalPv(i5);
 46086   HEAP32[i3 >> 2] = 0;
 46088  HEAP8[i4] = 1;
 46089  HEAP32[i3 >> 2] = 0;
 46090  HEAP32[i2 >> 2] = 0;
 46091  HEAP32[i1 + 48 >> 2] = 0;
 46092  i2 = i1 + 24 | 0;
 46093  i3 = i1 + 32 | 0;
 46094  i4 = HEAP32[i3 >> 2] | 0;
 46095  i5 = i1 + 36 | 0;
 46096  if ((i4 | 0) != 0) {
 46097   if ((HEAP8[i5] | 0) != 0) {
 46098    __Z21btAlignedFreeInternalPv(i4);
 46100   HEAP32[i3 >> 2] = 0;
 46102  HEAP8[i5] = 1;
 46103  HEAP32[i3 >> 2] = 0;
 46104  HEAP32[i2 >> 2] = 0;
 46105  HEAP32[i1 + 28 >> 2] = 0;
 46106  i2 = i1 + 4 | 0;
 46107  i3 = i1 + 12 | 0;
 46108  i5 = HEAP32[i3 >> 2] | 0;
 46109  i4 = i1 + 16 | 0;
 46110  if ((i5 | 0) == 0) {
 46111   HEAP8[i4] = 1;
 46112   HEAP32[i3 >> 2] = 0;
 46113   HEAP32[i2 >> 2] = 0;
 46114   i6 = i1 + 8 | 0;
 46115   HEAP32[i6 >> 2] = 0;
 46116   return;
 46118  if ((HEAP8[i4] | 0) != 0) {
 46119   __Z21btAlignedFreeInternalPv(i5);
 46121  HEAP32[i3 >> 2] = 0;
 46122  HEAP8[i4] = 1;
 46123  HEAP32[i3 >> 2] = 0;
 46124  HEAP32[i2 >> 2] = 0;
 46125  i6 = i1 + 8 | 0;
 46126  HEAP32[i6 >> 2] = 0;
 46127  return;
 46129 function __ZN33btConvexConcaveCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
 46130  i1 = i1 | 0;
 46131  i2 = i2 | 0;
 46132  i3 = i3 | 0;
 46133  i4 = i4 | 0;
 46134  i5 = i5 | 0;
 46135  var i6 = 0, i7 = 0, i8 = 0, d9 = 0.0, i10 = 0, i11 = 0;
 46136  i6 = (HEAP8[i1 + 8 | 0] | 0) != 0;
 46137  i7 = i6 ? i3 : i2;
 46138  i8 = i6 ? i2 : i3;
 46139  i3 = HEAP32[i8 + 192 >> 2] | 0;
 46140  if (((HEAP32[i3 + 4 >> 2] | 0) - 21 | 0) >>> 0 >= 9) {
 46141   return;
 46143  i2 = i3;
 46144  if ((HEAP32[(HEAP32[i7 + 192 >> 2] | 0) + 4 >> 2] | 0) >= 20) {
 46145   return;
 46147  d9 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i3 >> 2] | 0) + 44 >> 2] & 7](i2);
 46148  i6 = i1 + 12 | 0;
 46149  i10 = i1 + 76 | 0;
 46150  i11 = i5 + 4 | 0;
 46151  HEAP32[i11 >> 2] = HEAP32[i10 >> 2];
 46152  __ZN24btConvexTriangleCallback22setTimeStepAndCountersEfRK16btDispatcherInfoP16btManifoldResult(i6, d9, i4, i5);
 46153  i4 = HEAP32[i10 >> 2] | 0;
 46154  HEAP32[i4 + 1108 >> 2] = i7;
 46155  HEAP32[i4 + 1112 >> 2] = i8;
 46156  FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i3 >> 2] | 0) + 60 >> 2] & 127](i2, i6 | 0, i1 + 24 | 0, i1 + 40 | 0);
 46157  i1 = HEAP32[i11 >> 2] | 0;
 46158  if ((HEAP32[i1 + 1116 >> 2] | 0) == 0) {
 46159   return;
 46161  if ((HEAP32[i1 + 1108 >> 2] | 0) == (HEAP32[i5 + 136 >> 2] | 0)) {
 46162   __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i1, i5 + 8 | 0, i5 + 72 | 0);
 46163   return;
 46164  } else {
 46165   __ZN20btPersistentManifold20refreshContactPointsERK11btTransformS2_(i1, i5 + 72 | 0, i5 + 8 | 0);
 46166   return;
 46169 function __ZN11btRigidBodyC2EfP13btMotionStateP16btCollisionShapeRK9btVector3(i1, d2, i3, i4, i5) {
 46170  i1 = i1 | 0;
 46171  d2 = +d2;
 46172  i3 = i3 | 0;
 46173  i4 = i4 | 0;
 46174  i5 = i5 | 0;
 46175  var i6 = 0, i7 = 0;
 46176  i6 = STACKTOP;
 46177  STACKTOP = STACKTOP + 136 | 0;
 46178  i7 = i6 | 0;
 46179  __ZN17btCollisionObjectC2Ev(i1 | 0);
 46180  HEAP32[i1 >> 2] = 4936;
 46181  HEAP8[i1 + 492 | 0] = 1;
 46182  HEAP32[i1 + 488 >> 2] = 0;
 46183  HEAP32[i1 + 480 >> 2] = 0;
 46184  HEAP32[i1 + 484 >> 2] = 0;
 46185  HEAPF32[i7 >> 2] = d2;
 46186  HEAP32[i7 + 4 >> 2] = i3;
 46187  HEAP32[i7 + 72 >> 2] = i4;
 46188  i4 = i7 + 76 | 0;
 46189  i3 = i5;
 46190  HEAP32[i4 >> 2] = HEAP32[i3 >> 2];
 46191  HEAP32[i4 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
 46192  HEAP32[i4 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
 46193  HEAP32[i4 + 12 >> 2] = HEAP32[i3 + 12 >> 2];
 46194  HEAPF32[i7 + 92 >> 2] = 0.0;
 46195  HEAPF32[i7 + 96 >> 2] = 0.0;
 46196  HEAPF32[i7 + 100 >> 2] = .5;
 46197  HEAPF32[i7 + 104 >> 2] = 0.0;
 46198  HEAPF32[i7 + 108 >> 2] = .800000011920929;
 46199  HEAPF32[i7 + 112 >> 2] = 1.0;
 46200  HEAP8[i7 + 116 | 0] = 0;
 46201  HEAPF32[i7 + 120 >> 2] = .004999999888241291;
 46202  HEAPF32[i7 + 124 >> 2] = .009999999776482582;
 46203  HEAPF32[i7 + 128 >> 2] = .009999999776482582;
 46204  HEAPF32[i7 + 132 >> 2] = .009999999776482582;
 46205  HEAPF32[i7 + 8 >> 2] = 1.0;
 46206  _memset(i7 + 12 | 0, 0, 16);
 46207  HEAPF32[i7 + 28 >> 2] = 1.0;
 46208  _memset(i7 + 32 | 0, 0, 16);
 46209  HEAPF32[i7 + 48 >> 2] = 1.0;
 46210  _memset(i7 + 52 | 0, 0, 20);
 46211  __ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i1, i7);
 46212  STACKTOP = i6;
 46213  return;
 46215 function __ZN11btUnionFind8allocateEi(i1, i2) {
 46216  i1 = i1 | 0;
 46217  i2 = i2 | 0;
 46218  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
 46219  i3 = i1 + 4 | 0;
 46220  i4 = HEAP32[i3 >> 2] | 0;
 46221  if ((i4 | 0) >= (i2 | 0)) {
 46222   HEAP32[i3 >> 2] = i2;
 46223   return;
 46225  i5 = i1 + 8 | 0;
 46226  if ((HEAP32[i5 >> 2] | 0) < (i2 | 0)) {
 46227   if ((i2 | 0) == 0) {
 46228    i6 = 0;
 46229    i7 = i4;
 46230   } else {
 46231    i8 = __Z22btAlignedAllocInternalji(i2 << 3, 16) | 0;
 46232    i6 = i8;
 46233    i7 = HEAP32[i3 >> 2] | 0;
 46235   i8 = i1 + 12 | 0;
 46236   if ((i7 | 0) > 0) {
 46237    i9 = 0;
 46238    do {
 46239     i10 = i6 + (i9 << 3) | 0;
 46240     if ((i10 | 0) != 0) {
 46241      i11 = (HEAP32[i8 >> 2] | 0) + (i9 << 3) | 0;
 46242      i12 = i10;
 46243      i10 = HEAP32[i11 + 4 >> 2] | 0;
 46244      HEAP32[i12 >> 2] = HEAP32[i11 >> 2];
 46245      HEAP32[i12 + 4 >> 2] = i10;
 46247     i9 = i9 + 1 | 0;
 46248    } while ((i9 | 0) < (i7 | 0));
 46250   i7 = HEAP32[i8 >> 2] | 0;
 46251   i9 = i1 + 16 | 0;
 46252   if ((i7 | 0) != 0) {
 46253    if ((HEAP8[i9] | 0) != 0) {
 46254     __Z21btAlignedFreeInternalPv(i7);
 46256    HEAP32[i8 >> 2] = 0;
 46258   HEAP8[i9] = 1;
 46259   HEAP32[i8 >> 2] = i6;
 46260   HEAP32[i5 >> 2] = i2;
 46261   i13 = i8;
 46262  } else {
 46263   i13 = i1 + 12 | 0;
 46265  i1 = i4;
 46266  do {
 46267   i4 = (HEAP32[i13 >> 2] | 0) + (i1 << 3) | 0;
 46268   if ((i4 | 0) != 0) {
 46269    i8 = i4;
 46270    HEAP32[i8 >> 2] = 0;
 46271    HEAP32[i8 + 4 >> 2] = 0;
 46273   i1 = i1 + 1 | 0;
 46274  } while ((i1 | 0) < (i2 | 0));
 46275  HEAP32[i3 >> 2] = i2;
 46276  return;
 46278 function __ZNK10btBoxShape7getAabbERK11btTransformR9btVector3S4_(i1, i2, i3, i4) {
 46279  i1 = i1 | 0;
 46280  i2 = i2 | 0;
 46281  i3 = i3 | 0;
 46282  i4 = i4 | 0;
 46283  var d5 = 0.0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0;
 46284  d5 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i1 >> 2] | 0) + 44 >> 2] & 7](i1 | 0);
 46285  d6 = d5 + +HEAPF32[i1 + 28 >> 2];
 46286  d7 = d5 + +HEAPF32[i1 + 32 >> 2];
 46287  d8 = d5 + +HEAPF32[i1 + 36 >> 2];
 46288  d5 = +Math_abs(+(+HEAPF32[i2 >> 2]));
 46289  d9 = +Math_abs(+(+HEAPF32[i2 + 4 >> 2]));
 46290  d10 = +Math_abs(+(+HEAPF32[i2 + 8 >> 2]));
 46291  d11 = +Math_abs(+(+HEAPF32[i2 + 16 >> 2]));
 46292  d12 = +Math_abs(+(+HEAPF32[i2 + 20 >> 2]));
 46293  d13 = +Math_abs(+(+HEAPF32[i2 + 24 >> 2]));
 46294  d14 = +Math_abs(+(+HEAPF32[i2 + 32 >> 2]));
 46295  d15 = +Math_abs(+(+HEAPF32[i2 + 36 >> 2]));
 46296  d16 = +Math_abs(+(+HEAPF32[i2 + 40 >> 2]));
 46297  d17 = +HEAPF32[i2 + 48 >> 2];
 46298  d18 = +HEAPF32[i2 + 52 >> 2];
 46299  d19 = +HEAPF32[i2 + 56 >> 2];
 46300  d20 = d6 * d5 + d7 * d9 + d8 * d10;
 46301  d10 = d6 * d11 + d7 * d12 + d8 * d13;
 46302  d13 = d6 * d14 + d7 * d15 + d8 * d16;
 46303  HEAPF32[i3 >> 2] = d17 - d20;
 46304  HEAPF32[i3 + 4 >> 2] = d18 - d10;
 46305  HEAPF32[i3 + 8 >> 2] = d19 - d13;
 46306  HEAPF32[i3 + 12 >> 2] = 0.0;
 46307  HEAPF32[i4 >> 2] = d20 + d17;
 46308  HEAPF32[i4 + 4 >> 2] = d10 + d18;
 46309  HEAPF32[i4 + 8 >> 2] = d13 + d19;
 46310  HEAPF32[i4 + 12 >> 2] = 0.0;
 46311  return;
 46313 function __ZNK15btTriangleShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i(i1, i2, i3, i4) {
 46314  i1 = i1 | 0;
 46315  i2 = i2 | 0;
 46316  i3 = i3 | 0;
 46317  i4 = i4 | 0;
 46318  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0, i21 = 0, i22 = 0, i23 = 0;
 46319  if ((i4 | 0) <= 0) {
 46320   return;
 46322  i5 = i1 + 56 | 0;
 46323  i6 = i1 + 60 | 0;
 46324  i7 = i1 + 64 | 0;
 46325  i8 = i1 + 72 | 0;
 46326  i9 = i1 + 76 | 0;
 46327  i10 = i1 + 80 | 0;
 46328  i11 = i1 + 88 | 0;
 46329  i12 = i1 + 92 | 0;
 46330  i13 = i1 + 96 | 0;
 46331  i14 = 0;
 46332  do {
 46333   d15 = +HEAPF32[i2 + (i14 << 4) >> 2];
 46334   d16 = +HEAPF32[i2 + (i14 << 4) + 4 >> 2];
 46335   d17 = +HEAPF32[i2 + (i14 << 4) + 8 >> 2];
 46336   d18 = d15 * +HEAPF32[i5 >> 2] + d16 * +HEAPF32[i6 >> 2] + d17 * +HEAPF32[i7 >> 2];
 46337   d19 = d15 * +HEAPF32[i8 >> 2] + d16 * +HEAPF32[i9 >> 2] + d17 * +HEAPF32[i10 >> 2];
 46338   d20 = d15 * +HEAPF32[i11 >> 2] + d16 * +HEAPF32[i12 >> 2] + d17 * +HEAPF32[i13 >> 2];
 46339   if (d18 < d19) {
 46340    i21 = d19 < d20 ? 2 : 1;
 46341   } else {
 46342    i21 = d18 < d20 ? 2 : 0;
 46344   i22 = i3 + (i14 << 4) | 0;
 46345   i23 = i1 + 56 + (i21 << 4) | 0;
 46346   HEAP32[i22 >> 2] = HEAP32[i23 >> 2];
 46347   HEAP32[i22 + 4 >> 2] = HEAP32[i23 + 4 >> 2];
 46348   HEAP32[i22 + 8 >> 2] = HEAP32[i23 + 8 >> 2];
 46349   HEAP32[i22 + 12 >> 2] = HEAP32[i23 + 12 >> 2];
 46350   i14 = i14 + 1 | 0;
 46351  } while ((i14 | 0) < (i4 | 0));
 46352  return;
 46354 function __ZN20btAlignedObjectArrayI6btFaceE7reserveEi(i1, i2) {
 46355  i1 = i1 | 0;
 46356  i2 = i2 | 0;
 46357  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
 46358  i3 = i1 + 8 | 0;
 46359  if ((HEAP32[i3 >> 2] | 0) >= (i2 | 0)) {
 46360   return;
 46362  if ((i2 | 0) == 0) {
 46363   i4 = 0;
 46364  } else {
 46365   i4 = __Z22btAlignedAllocInternalji(i2 * 56 | 0, 16) | 0;
 46367  i5 = i1 + 4 | 0;
 46368  i6 = HEAP32[i5 >> 2] | 0;
 46369  i7 = i1 + 12 | 0;
 46370  if ((i6 | 0) > 0) {
 46371   i8 = 0;
 46372   do {
 46373    i9 = i4 + (i8 * 56 | 0) | 0;
 46374    if ((i9 | 0) != 0) {
 46375     i10 = HEAP32[i7 >> 2] | 0;
 46376     __ZN20btAlignedObjectArrayIiEC2ERKS0_(i9, i10 + (i8 * 56 | 0) | 0);
 46377     __ZN20btAlignedObjectArrayIiEC2ERKS0_(i9 + 20 | 0, i10 + (i8 * 56 | 0) + 20 | 0);
 46378     i11 = i9 + 40 | 0;
 46379     i9 = i10 + (i8 * 56 | 0) + 40 | 0;
 46380     HEAP32[i11 >> 2] = HEAP32[i9 >> 2];
 46381     HEAP32[i11 + 4 >> 2] = HEAP32[i9 + 4 >> 2];
 46382     HEAP32[i11 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
 46383     HEAP32[i11 + 12 >> 2] = HEAP32[i9 + 12 >> 2];
 46385    i8 = i8 + 1 | 0;
 46386   } while ((i8 | 0) < (i6 | 0));
 46387   i12 = HEAP32[i5 >> 2] | 0;
 46388  } else {
 46389   i12 = i6;
 46391  __ZN20btAlignedObjectArrayI6btFaceE7destroyEii(i1, 0, i12);
 46392  i12 = HEAP32[i7 >> 2] | 0;
 46393  i6 = i1 + 16 | 0;
 46394  if ((i12 | 0) != 0) {
 46395   if ((HEAP8[i6] | 0) != 0) {
 46396    __Z21btAlignedFreeInternalPv(i12 | 0);
 46398   HEAP32[i7 >> 2] = 0;
 46400  HEAP8[i6] = 1;
 46401  HEAP32[i7 >> 2] = i4;
 46402  HEAP32[i3 >> 2] = i2;
 46403  return;
 46405 function __ZN28btHashedOverlappingPairCacheC2Ev(i1) {
 46406  i1 = i1 | 0;
 46407  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
 46408  HEAP32[i1 >> 2] = 2800;
 46409  i2 = i1 + 20 | 0;
 46410  HEAP8[i2] = 1;
 46411  i3 = i1 + 16 | 0;
 46412  HEAP32[i3 >> 2] = 0;
 46413  i4 = i1 + 8 | 0;
 46414  HEAP32[i4 >> 2] = 0;
 46415  i5 = i1 + 12 | 0;
 46416  HEAP32[i5 >> 2] = 0;
 46417  HEAP32[i1 + 24 >> 2] = 0;
 46418  HEAP8[i1 + 28 | 0] = 0;
 46419  HEAP8[i1 + 48 | 0] = 1;
 46420  HEAP32[i1 + 44 >> 2] = 0;
 46421  HEAP32[i1 + 36 >> 2] = 0;
 46422  HEAP32[i1 + 40 >> 2] = 0;
 46423  HEAP8[i1 + 68 | 0] = 1;
 46424  HEAP32[i1 + 64 >> 2] = 0;
 46425  HEAP32[i1 + 56 >> 2] = 0;
 46426  HEAP32[i1 + 60 >> 2] = 0;
 46427  HEAP32[i1 + 72 >> 2] = 0;
 46428  i6 = __Z22btAlignedAllocInternalji(32, 16) | 0;
 46429  i7 = HEAP32[i4 >> 2] | 0;
 46430  if ((i7 | 0) > 0) {
 46431   i4 = 0;
 46432   do {
 46433    i8 = HEAP32[i3 >> 2] | 0;
 46434    HEAP32[i6 + (i4 << 4) >> 2] = HEAP32[i8 + (i4 << 4) >> 2];
 46435    HEAP32[i6 + (i4 << 4) + 4 >> 2] = HEAP32[i8 + (i4 << 4) + 4 >> 2];
 46436    HEAP32[i6 + (i4 << 4) + 8 >> 2] = HEAP32[i8 + (i4 << 4) + 8 >> 2];
 46437    HEAP32[i6 + (i4 << 4) + 12 >> 2] = HEAP32[i8 + (i4 << 4) + 12 >> 2];
 46438    i4 = i4 + 1 | 0;
 46439   } while ((i4 | 0) < (i7 | 0));
 46441  i7 = HEAP32[i3 >> 2] | 0;
 46442  if ((i7 | 0) != 0) {
 46443   if ((HEAP8[i2] | 0) != 0) {
 46444    __Z21btAlignedFreeInternalPv(i7);
 46446   HEAP32[i3 >> 2] = 0;
 46448  HEAP8[i2] = 1;
 46449  HEAP32[i3 >> 2] = i6;
 46450  HEAP32[i5 >> 2] = 2;
 46451  __ZN28btHashedOverlappingPairCache10growTablesEv(i1);
 46452  return;
 46454 function __ZN15CProfileManager13Start_ProfileEPKc(i1) {
 46455  i1 = i1 | 0;
 46456  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
 46457  i2 = STACKTOP;
 46458  STACKTOP = STACKTOP + 8 | 0;
 46459  i3 = i2 | 0;
 46460  i4 = HEAP32[2966] | 0;
 46461  if ((HEAP32[i4 >> 2] | 0) == (i1 | 0)) {
 46462   i5 = i4;
 46463  } else {
 46464   i6 = i4 + 24 | 0;
 46465   i7 = i6;
 46466   while (1) {
 46467    i8 = HEAP32[i7 >> 2] | 0;
 46468    if ((i8 | 0) == 0) {
 46469     i9 = 1900;
 46470     break;
 46472    if ((HEAP32[i8 >> 2] | 0) == (i1 | 0)) {
 46473     i10 = i8;
 46474     break;
 46475    } else {
 46476     i7 = i8 + 28 | 0;
 46479   if ((i9 | 0) == 1900) {
 46480    i9 = __Znwj(32) | 0;
 46481    i7 = i9;
 46482    HEAP32[i9 >> 2] = i1;
 46483    _memset(i9 + 4 | 0, 0, 16);
 46484    HEAP32[i9 + 20 >> 2] = i4;
 46485    HEAP32[i9 + 24 >> 2] = 0;
 46486    i4 = i9 + 28 | 0;
 46487    HEAP32[i4 >> 2] = 0;
 46488    __ZN12CProfileNode5ResetEv(i7);
 46489    HEAP32[i4 >> 2] = HEAP32[i6 >> 2];
 46490    HEAP32[i6 >> 2] = i7;
 46491    i10 = i7;
 46493   HEAP32[2966] = i10;
 46494   i5 = i10;
 46496  i10 = i5 + 4 | 0;
 46497  HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) + 1;
 46498  i10 = i5 + 16 | 0;
 46499  i7 = HEAP32[i10 >> 2] | 0;
 46500  HEAP32[i10 >> 2] = i7 + 1;
 46501  if ((i7 | 0) != 0) {
 46502   STACKTOP = i2;
 46503   return;
 46505  _gettimeofday(i3 | 0, 0) | 0;
 46506  i7 = HEAP32[3578] | 0;
 46507  HEAP32[i5 + 12 >> 2] = (HEAP32[i3 + 4 >> 2] | 0) - (HEAP32[i7 + 4 >> 2] | 0) + (((HEAP32[i3 >> 2] | 0) - (HEAP32[i7 >> 2] | 0) | 0) * 1e6 | 0);
 46508  STACKTOP = i2;
 46509  return;
 46511 function __ZN20btAlignedObjectArrayIiEC2ERKS0_(i1, i2) {
 46512  i1 = i1 | 0;
 46513  i2 = i2 | 0;
 46514  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
 46515  i3 = i1 + 16 | 0;
 46516  HEAP8[i3] = 1;
 46517  i4 = i1 + 12 | 0;
 46518  HEAP32[i4 >> 2] = 0;
 46519  i5 = i1 + 4 | 0;
 46520  HEAP32[i5 >> 2] = 0;
 46521  i6 = i1 + 8 | 0;
 46522  HEAP32[i6 >> 2] = 0;
 46523  i1 = HEAP32[i2 + 4 >> 2] | 0;
 46524  if ((i1 | 0) <= 0) {
 46525   HEAP32[i5 >> 2] = i1;
 46526   return;
 46528  i7 = __Z22btAlignedAllocInternalji(i1 << 2, 16) | 0;
 46529  i8 = HEAP32[i5 >> 2] | 0;
 46530  if ((i8 | 0) > 0) {
 46531   i9 = 0;
 46532   do {
 46533    i10 = i7 + (i9 << 2) | 0;
 46534    if ((i10 | 0) != 0) {
 46535     HEAP32[i10 >> 2] = HEAP32[(HEAP32[i4 >> 2] | 0) + (i9 << 2) >> 2];
 46537    i9 = i9 + 1 | 0;
 46538   } while ((i9 | 0) < (i8 | 0));
 46540  i8 = HEAP32[i4 >> 2] | 0;
 46541  if ((i8 | 0) != 0) {
 46542   if ((HEAP8[i3] | 0) != 0) {
 46543    __Z21btAlignedFreeInternalPv(i8);
 46545   HEAP32[i4 >> 2] = 0;
 46547  HEAP8[i3] = 1;
 46548  HEAP32[i4 >> 2] = i7;
 46549  HEAP32[i6 >> 2] = i1;
 46550  i6 = 0;
 46551  do {
 46552   i4 = i7 + (i6 << 2) | 0;
 46553   if ((i4 | 0) != 0) {
 46554    HEAP32[i4 >> 2] = 0;
 46556   i6 = i6 + 1 | 0;
 46557  } while ((i6 | 0) < (i1 | 0));
 46558  HEAP32[i5 >> 2] = i1;
 46559  i5 = i2 + 12 | 0;
 46560  i2 = 0;
 46561  do {
 46562   i6 = i7 + (i2 << 2) | 0;
 46563   if ((i6 | 0) != 0) {
 46564    HEAP32[i6 >> 2] = HEAP32[(HEAP32[i5 >> 2] | 0) + (i2 << 2) >> 2];
 46566   i2 = i2 + 1 | 0;
 46567  } while ((i2 | 0) < (i1 | 0));
 46568  return;
 46570 function __ZN25btSimulationIslandManager26storeIslandActivationStateEP16btCollisionWorld(i1, i2) {
 46571  i1 = i1 | 0;
 46572  i2 = i2 | 0;
 46573  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
 46574  i3 = i2 + 8 | 0;
 46575  if ((HEAP32[i3 >> 2] | 0) <= 0) {
 46576   return;
 46578  i4 = HEAP32[i2 + 16 >> 2] | 0;
 46579  i2 = i1 + 16 | 0;
 46580  i1 = 0;
 46581  i5 = 0;
 46582  while (1) {
 46583   i6 = HEAP32[i4 + (i1 << 2) >> 2] | 0;
 46584   if ((HEAP32[i6 + 204 >> 2] & 3 | 0) == 0) {
 46585    i7 = HEAP32[i2 >> 2] | 0;
 46586    i8 = i7 + (i5 << 3) | 0;
 46587    i9 = HEAP32[i8 >> 2] | 0;
 46588    if ((i9 | 0) == (i5 | 0)) {
 46589     i10 = i5;
 46590    } else {
 46591     i11 = i8;
 46592     i8 = i9;
 46593     while (1) {
 46594      i9 = i7 + (i8 << 3) | 0;
 46595      HEAP32[i11 >> 2] = HEAP32[i9 >> 2];
 46596      i12 = HEAP32[i9 >> 2] | 0;
 46597      i9 = i7 + (i12 << 3) | 0;
 46598      i13 = HEAP32[i9 >> 2] | 0;
 46599      if ((i12 | 0) == (i13 | 0)) {
 46600       i10 = i12;
 46601       break;
 46602      } else {
 46603       i11 = i9;
 46604       i8 = i13;
 46608    HEAP32[i6 + 208 >> 2] = i10;
 46609    HEAP32[i7 + (i5 << 3) + 4 >> 2] = i1;
 46610    HEAP32[i6 + 212 >> 2] = -1;
 46611    i14 = i5 + 1 | 0;
 46612   } else {
 46613    HEAP32[i6 + 208 >> 2] = -1;
 46614    HEAP32[i6 + 212 >> 2] = -2;
 46615    i14 = i5;
 46617   i8 = i1 + 1 | 0;
 46618   if ((i8 | 0) < (HEAP32[i3 >> 2] | 0)) {
 46619    i1 = i8;
 46620    i5 = i14;
 46621   } else {
 46622    break;
 46625  return;
 46627 function __ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN9RayTester7ProcessE_1PK10btDbvtNode(i1, i2) {
 46628  i1 = i1 | 0;
 46629  i2 = i2 | 0;
 46630  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
 46631  i3 = STACKTOP;
 46632  STACKTOP = STACKTOP + 96 | 0;
 46633  i4 = i3 | 0;
 46634  i5 = i3 + 64 | 0;
 46635  i6 = HEAP32[i2 + 36 >> 2] | 0;
 46636  i2 = HEAP32[(HEAP32[i1 + 8 >> 2] | 0) + 24 >> 2] | 0;
 46637  i7 = HEAP32[i2 + (i6 * 80 | 0) + 64 >> 2] | 0;
 46638  __ZNK11btTransformmlERKS_(i4, HEAP32[i1 + 12 >> 2] | 0, i2 + (i6 * 80 | 0) | 0);
 46639  i2 = i1 + 4 | 0;
 46640  i8 = (HEAP32[i2 >> 2] | 0) + 192 | 0;
 46641  i9 = HEAP32[i8 >> 2] | 0;
 46642  HEAP32[i8 >> 2] = i7;
 46643  i8 = HEAP32[i1 + 24 >> 2] | 0;
 46644  i10 = i5 + 4 | 0;
 46645  HEAPF32[i10 >> 2] = 1.0;
 46646  HEAP32[i5 + 8 >> 2] = 0;
 46647  HEAP16[i5 + 12 >> 1] = 1;
 46648  HEAP16[i5 + 14 >> 1] = -1;
 46649  HEAP32[i5 + 16 >> 2] = 0;
 46650  HEAP32[i5 >> 2] = 1864;
 46651  HEAP32[i5 + 20 >> 2] = i8;
 46652  HEAP32[i5 + 24 >> 2] = i6;
 46653  HEAPF32[i10 >> 2] = +HEAPF32[i8 + 4 >> 2];
 46654  __ZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackE(HEAP32[i1 + 16 >> 2] | 0, HEAP32[i1 + 20 >> 2] | 0, HEAP32[i2 >> 2] | 0, i7, i4, i5 | 0);
 46655  HEAP32[(HEAP32[i2 >> 2] | 0) + 192 >> 2] = i9;
 46656  STACKTOP = i3;
 46657  return;
 46659 function __ZN11btRigidBody12setMassPropsEfRK9btVector3(i1, d2, i3) {
 46660  i1 = i1 | 0;
 46661  d2 = +d2;
 46662  i3 = i3 | 0;
 46663  var i4 = 0, i5 = 0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0;
 46664  i4 = i1 + 204 | 0;
 46665  i5 = HEAP32[i4 >> 2] | 0;
 46666  if (d2 == 0.0) {
 46667   HEAP32[i4 >> 2] = i5 | 1;
 46668   HEAPF32[i1 + 336 >> 2] = 0.0;
 46669   d6 = 0.0;
 46670  } else {
 46671   HEAP32[i4 >> 2] = i5 & -2;
 46672   d7 = 1.0 / d2;
 46673   HEAPF32[i1 + 336 >> 2] = d7;
 46674   d6 = d7;
 46676  d7 = +HEAPF32[i1 + 376 >> 2] * d2;
 46677  d8 = +HEAPF32[i1 + 380 >> 2] * d2;
 46678  HEAPF32[i1 + 356 >> 2] = +HEAPF32[i1 + 372 >> 2] * d2;
 46679  HEAPF32[i1 + 360 >> 2] = d7;
 46680  HEAPF32[i1 + 364 >> 2] = d8;
 46681  HEAPF32[i1 + 368 >> 2] = 0.0;
 46682  d8 = +HEAPF32[i3 >> 2];
 46683  if (d8 != 0.0) {
 46684   d9 = 1.0 / d8;
 46685  } else {
 46686   d9 = 0.0;
 46688  d8 = +HEAPF32[i3 + 4 >> 2];
 46689  if (d8 != 0.0) {
 46690   d10 = 1.0 / d8;
 46691  } else {
 46692   d10 = 0.0;
 46694  d8 = +HEAPF32[i3 + 8 >> 2];
 46695  if (d8 != 0.0) {
 46696   d11 = 1.0 / d8;
 46697  } else {
 46698   d11 = 0.0;
 46700  HEAPF32[i1 + 388 >> 2] = d9;
 46701  HEAPF32[i1 + 392 >> 2] = d10;
 46702  HEAPF32[i1 + 396 >> 2] = d11;
 46703  HEAPF32[i1 + 400 >> 2] = 0.0;
 46704  d11 = d6 * +HEAPF32[i1 + 344 >> 2];
 46705  d10 = d6 * +HEAPF32[i1 + 348 >> 2];
 46706  HEAPF32[i1 + 552 >> 2] = d6 * +HEAPF32[i1 + 340 >> 2];
 46707  HEAPF32[i1 + 556 >> 2] = d11;
 46708  HEAPF32[i1 + 560 >> 2] = d10;
 46709  HEAPF32[i1 + 564 >> 2] = 0.0;
 46710  return;
 46712 function __ZN20btConvexHullInternalD2Ev(i1) {
 46713  i1 = i1 | 0;
 46714  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
 46715  i2 = i1 + 84 | 0;
 46716  i3 = i1 + 92 | 0;
 46717  i4 = HEAP32[i3 >> 2] | 0;
 46718  i5 = i1 + 96 | 0;
 46719  if ((i4 | 0) != 0) {
 46720   if ((HEAP8[i5] | 0) != 0) {
 46721    __Z21btAlignedFreeInternalPv(i4);
 46723   HEAP32[i3 >> 2] = 0;
 46725  HEAP8[i5] = 1;
 46726  HEAP32[i3 >> 2] = 0;
 46727  HEAP32[i2 >> 2] = 0;
 46728  HEAP32[i1 + 88 >> 2] = 0;
 46729  i2 = i1 + 64 | 0;
 46730  i3 = HEAP32[i2 >> 2] | 0;
 46731  if ((i3 | 0) != 0) {
 46732   i5 = i3;
 46733   do {
 46734    HEAP32[i2 >> 2] = HEAP32[i5 + 8 >> 2];
 46735    __Z21btAlignedFreeInternalPv(HEAP32[i5 >> 2] | 0);
 46736    __Z21btAlignedFreeInternalPv(i5);
 46737    i5 = HEAP32[i2 >> 2] | 0;
 46738   } while ((i5 | 0) != 0);
 46740  i5 = i1 + 48 | 0;
 46741  i2 = HEAP32[i5 >> 2] | 0;
 46742  if ((i2 | 0) != 0) {
 46743   i3 = i2;
 46744   do {
 46745    HEAP32[i5 >> 2] = HEAP32[i3 + 8 >> 2];
 46746    __Z21btAlignedFreeInternalPv(HEAP32[i3 >> 2] | 0);
 46747    __Z21btAlignedFreeInternalPv(i3);
 46748    i3 = HEAP32[i5 >> 2] | 0;
 46749   } while ((i3 | 0) != 0);
 46751  i3 = i1 + 32 | 0;
 46752  i1 = HEAP32[i3 >> 2] | 0;
 46753  if ((i1 | 0) == 0) {
 46754   return;
 46755  } else {
 46756   i6 = i1;
 46758  do {
 46759   HEAP32[i3 >> 2] = HEAP32[i6 + 8 >> 2];
 46760   __Z21btAlignedFreeInternalPv(HEAP32[i6 >> 2] | 0);
 46761   __Z21btAlignedFreeInternalPv(i6);
 46762   i6 = HEAP32[i3 >> 2] | 0;
 46763  } while ((i6 | 0) != 0);
 46764  return;
 46766 function __ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitE_0RK9btVector3fii(i1, i2, d3, i4, i5) {
 46767  i1 = i1 | 0;
 46768  i2 = i2 | 0;
 46769  d3 = +d3;
 46770  i4 = i4 | 0;
 46771  i5 = i5 | 0;
 46772  var i6 = 0, i7 = 0, i8 = 0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0;
 46773  i6 = STACKTOP;
 46774  STACKTOP = STACKTOP + 40 | 0;
 46775  i7 = i6 | 0;
 46776  i8 = i6 + 8 | 0;
 46777  HEAP32[i7 >> 2] = i4;
 46778  HEAP32[i7 + 4 >> 2] = i5;
 46779  d9 = +HEAPF32[i2 >> 2];
 46780  d10 = +HEAPF32[i2 + 4 >> 2];
 46781  d11 = +HEAPF32[i2 + 8 >> 2];
 46782  d12 = +HEAPF32[i1 + 56 >> 2] * d9 + +HEAPF32[i1 + 60 >> 2] * d10 + +HEAPF32[i1 + 64 >> 2] * d11;
 46783  d13 = d9 * +HEAPF32[i1 + 72 >> 2] + d10 * +HEAPF32[i1 + 76 >> 2] + d11 * +HEAPF32[i1 + 80 >> 2];
 46784  d14 = d9 * +HEAPF32[i1 + 88 >> 2] + d10 * +HEAPF32[i1 + 92 >> 2] + d11 * +HEAPF32[i1 + 96 >> 2];
 46785  HEAP32[i8 >> 2] = HEAP32[i1 + 48 >> 2];
 46786  HEAP32[i8 + 4 >> 2] = i7;
 46787  HEAPF32[i8 + 8 >> 2] = d12;
 46788  HEAPF32[i8 + 12 >> 2] = d13;
 46789  HEAPF32[i8 + 16 >> 2] = d14;
 46790  HEAPF32[i8 + 20 >> 2] = 0.0;
 46791  HEAPF32[i8 + 24 >> 2] = d3;
 46792  i7 = HEAP32[i1 + 44 >> 2] | 0;
 46793  d3 = +FUNCTION_TABLE_fiii[HEAP32[(HEAP32[i7 >> 2] | 0) + 12 >> 2] & 15](i7, i8, 1);
 46794  STACKTOP = i6;
 46795  return +d3;
 46797 function __ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitERK9btVector3fii(i1, i2, d3, i4, i5) {
 46798  i1 = i1 | 0;
 46799  i2 = i2 | 0;
 46800  d3 = +d3;
 46801  i4 = i4 | 0;
 46802  i5 = i5 | 0;
 46803  var i6 = 0, i7 = 0, i8 = 0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0;
 46804  i6 = STACKTOP;
 46805  STACKTOP = STACKTOP + 40 | 0;
 46806  i7 = i6 | 0;
 46807  i8 = i6 + 8 | 0;
 46808  HEAP32[i7 >> 2] = i4;
 46809  HEAP32[i7 + 4 >> 2] = i5;
 46810  d9 = +HEAPF32[i2 >> 2];
 46811  d10 = +HEAPF32[i2 + 4 >> 2];
 46812  d11 = +HEAPF32[i2 + 8 >> 2];
 46813  d12 = +HEAPF32[i1 + 56 >> 2] * d9 + +HEAPF32[i1 + 60 >> 2] * d10 + +HEAPF32[i1 + 64 >> 2] * d11;
 46814  d13 = d9 * +HEAPF32[i1 + 72 >> 2] + d10 * +HEAPF32[i1 + 76 >> 2] + d11 * +HEAPF32[i1 + 80 >> 2];
 46815  d14 = d9 * +HEAPF32[i1 + 88 >> 2] + d10 * +HEAPF32[i1 + 92 >> 2] + d11 * +HEAPF32[i1 + 96 >> 2];
 46816  HEAP32[i8 >> 2] = HEAP32[i1 + 48 >> 2];
 46817  HEAP32[i8 + 4 >> 2] = i7;
 46818  HEAPF32[i8 + 8 >> 2] = d12;
 46819  HEAPF32[i8 + 12 >> 2] = d13;
 46820  HEAPF32[i8 + 16 >> 2] = d14;
 46821  HEAPF32[i8 + 20 >> 2] = 0.0;
 46822  HEAPF32[i8 + 24 >> 2] = d3;
 46823  i7 = HEAP32[i1 + 44 >> 2] | 0;
 46824  d3 = +FUNCTION_TABLE_fiii[HEAP32[(HEAP32[i7 >> 2] | 0) + 12 >> 2] & 15](i7, i8, 1);
 46825  STACKTOP = i6;
 46826  return +d3;
 46828 function __ZN31btDefaultCollisionConfiguration31getCollisionAlgorithmCreateFuncEii(i1, i2, i3) {
 46829  i1 = i1 | 0;
 46830  i2 = i2 | 0;
 46831  i3 = i3 | 0;
 46832  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
 46833  i4 = (i2 | 0) == 8;
 46834  i5 = (i3 | 0) == 8;
 46835  L1262 : do {
 46836   if (i4 & i5) {
 46837    i6 = i1 + 64 | 0;
 46838   } else {
 46839    if (i4 & (i3 | 0) == 1) {
 46840     i6 = i1 + 72 | 0;
 46841     break;
 46843    if ((i2 | 0) == 1 & i5) {
 46844     i6 = i1 + 76 | 0;
 46845     break;
 46847    if ((i3 | i2 | 0) == 0) {
 46848     i6 = i1 + 68 | 0;
 46849     break;
 46851    i7 = (i2 | 0) < 20;
 46852    if (i7 & (i3 | 0) == 28) {
 46853     i6 = i1 + 84 | 0;
 46854     break;
 46856    i8 = (i3 | 0) < 20;
 46857    if (i8 & (i2 | 0) == 28) {
 46858     i6 = i1 + 80 | 0;
 46859     break;
 46861    do {
 46862     if (i7) {
 46863      if (i8) {
 46864       i6 = i1 + 40 | 0;
 46865       break L1262;
 46867      if ((i3 - 21 | 0) >>> 0 >= 9) {
 46868       break;
 46870      i6 = i1 + 44 | 0;
 46871      break L1262;
 46872     } else {
 46873      if (!i8) {
 46874       break;
 46876      if ((i2 - 21 | 0) >>> 0 >= 9) {
 46877       break;
 46879      i6 = i1 + 48 | 0;
 46880      break L1262;
 46882    } while (0);
 46883    if ((i2 | 0) == 31) {
 46884     i6 = i1 + 52 | 0;
 46885     break;
 46887    if ((i3 | 0) == 31) {
 46888     i6 = i1 + 56 | 0;
 46889     break;
 46890    } else {
 46891     i6 = i1 + 60 | 0;
 46892     break;
 46895  } while (0);
 46896  return HEAP32[i6 >> 2] | 0;
 46898 function __ZN28btHashedOverlappingPairCache8findPairEP17btBroadphaseProxyS1_(i1, i2, i3) {
 46899  i1 = i1 | 0;
 46900  i2 = i2 | 0;
 46901  i3 = i3 | 0;
 46902  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
 46903  HEAP32[3002] = (HEAP32[3002] | 0) + 1;
 46904  i4 = (HEAP32[i2 + 12 >> 2] | 0) > (HEAP32[i3 + 12 >> 2] | 0);
 46905  i5 = HEAP32[(i4 ? i3 : i2) + 12 >> 2] | 0;
 46906  i6 = HEAP32[(i4 ? i2 : i3) + 12 >> 2] | 0;
 46907  i3 = i6 << 16 | i5;
 46908  i2 = i3 + ~(i3 << 15) | 0;
 46909  i3 = (i2 >> 10 ^ i2) * 9 | 0;
 46910  i2 = i3 >> 6 ^ i3;
 46911  i3 = i2 + ~(i2 << 11) | 0;
 46912  i2 = (i3 >> 16 ^ i3) & (HEAP32[i1 + 12 >> 2] | 0) - 1;
 46913  if ((i2 | 0) >= (HEAP32[i1 + 36 >> 2] | 0)) {
 46914   i7 = 0;
 46915   return i7 | 0;
 46917  i3 = HEAP32[(HEAP32[i1 + 44 >> 2] | 0) + (i2 << 2) >> 2] | 0;
 46918  if ((i3 | 0) == -1) {
 46919   i7 = 0;
 46920   return i7 | 0;
 46922  i2 = HEAP32[i1 + 16 >> 2] | 0;
 46923  i4 = i1 + 64 | 0;
 46924  i1 = i3;
 46925  while (1) {
 46926   if ((HEAP32[(HEAP32[i2 + (i1 << 4) >> 2] | 0) + 12 >> 2] | 0) == (i5 | 0)) {
 46927    if ((HEAP32[(HEAP32[i2 + (i1 << 4) + 4 >> 2] | 0) + 12 >> 2] | 0) == (i6 | 0)) {
 46928     break;
 46931   i3 = HEAP32[(HEAP32[i4 >> 2] | 0) + (i1 << 2) >> 2] | 0;
 46932   if ((i3 | 0) == -1) {
 46933    i7 = 0;
 46934    i8 = 1441;
 46935    break;
 46936   } else {
 46937    i1 = i3;
 46940  if ((i8 | 0) == 1441) {
 46941   return i7 | 0;
 46943  i7 = i2 + (i1 << 4) | 0;
 46944  return i7 | 0;
 46946 function __ZNK21btConeTwistConstraint16GetPointForAngleEff(i1, i2, d3, d4) {
 46947  i1 = i1 | 0;
 46948  i2 = i2 | 0;
 46949  d3 = +d3;
 46950  d4 = +d4;
 46951  var d5 = 0.0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0;
 46952  d5 = +Math_cos(+d3);
 46953  d6 = +Math_sin(+d3);
 46954  d3 = +HEAPF32[i2 + 436 >> 2];
 46955  if (+Math_abs(+d5) > 1.1920928955078125e-7) {
 46956   d7 = d6 * d6;
 46957   d8 = d5 * d5;
 46958   d9 = d7 / d8;
 46959   d10 = +HEAPF32[i2 + 440 >> 2];
 46960   d11 = +Math_sqrt(+((d9 + 1.0) / (1.0 / (d10 * d10) + d9 / (d3 * d3))));
 46961   d12 = d8;
 46962   d13 = d7;
 46963  } else {
 46964   d11 = d3;
 46965   d12 = d5 * d5;
 46966   d13 = d6 * d6;
 46968  d3 = +Math_sqrt(+(d13 + (d12 + 0.0)));
 46969  d12 = d11 * .5;
 46970  d11 = +Math_sin(+d12) / d3;
 46971  d3 = d11 * 0.0;
 46972  d13 = d5 * d11;
 46973  d5 = d11 * (-0.0 - d6);
 46974  d6 = +Math_cos(+d12);
 46975  d12 = d13 * 0.0;
 46976  d11 = d5 * 0.0;
 46977  d7 = d6 * d4 + d12 - d11;
 46978  d8 = d6 * 0.0;
 46979  d9 = d3 * 0.0;
 46980  d10 = d5 * d4 + d8 - d9;
 46981  d14 = d8 + d9 - d13 * d4;
 46982  d9 = -0.0 - d3;
 46983  d3 = d4 * d9 - d12 - d11;
 46984  d11 = -0.0 - d13;
 46985  d13 = -0.0 - d5;
 46986  HEAPF32[i1 >> 2] = d10 * d13 + (d6 * d7 + d3 * d9) - d14 * d11;
 46987  HEAPF32[i1 + 4 >> 2] = d14 * d9 + (d6 * d10 + d3 * d11) - d7 * d13;
 46988  HEAPF32[i1 + 8 >> 2] = d7 * d11 + (d6 * d14 + d3 * d13) - d10 * d9;
 46989  HEAPF32[i1 + 12 >> 2] = 0.0;
 46990  return;
 46992 function __ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitE_0RK9btVector3SG_fii(i1, i2, i3, d4, i5, i6) {
 46993  i1 = i1 | 0;
 46994  i2 = i2 | 0;
 46995  i3 = i3 | 0;
 46996  d4 = +d4;
 46997  i5 = i5 | 0;
 46998  i6 = i6 | 0;
 46999  var i7 = 0, i8 = 0, i9 = 0, d10 = 0.0;
 47000  i7 = STACKTOP;
 47001  STACKTOP = STACKTOP + 56 | 0;
 47002  i8 = i7 | 0;
 47003  i9 = i7 + 8 | 0;
 47004  HEAP32[i8 >> 2] = i5;
 47005  HEAP32[i8 + 4 >> 2] = i6;
 47006  i6 = HEAP32[i1 + 212 >> 2] | 0;
 47007  if (+HEAPF32[i6 + 4 >> 2] < d4) {
 47008   d10 = d4;
 47009   STACKTOP = i7;
 47010   return +d10;
 47012  HEAP32[i9 >> 2] = HEAP32[i1 + 216 >> 2];
 47013  HEAP32[i9 + 4 >> 2] = i8;
 47014  i8 = i9 + 8 | 0;
 47015  i1 = i2;
 47016  HEAP32[i8 >> 2] = HEAP32[i1 >> 2];
 47017  HEAP32[i8 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
 47018  HEAP32[i8 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
 47019  HEAP32[i8 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
 47020  i1 = i9 + 24 | 0;
 47021  i8 = i3;
 47022  HEAP32[i1 >> 2] = HEAP32[i8 >> 2];
 47023  HEAP32[i1 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
 47024  HEAP32[i1 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
 47025  HEAP32[i1 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
 47026  HEAPF32[i9 + 40 >> 2] = d4;
 47027  d10 = +FUNCTION_TABLE_fiii[HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] & 15](i6, i9, 0);
 47028  STACKTOP = i7;
 47029  return +d10;
 47031 function __ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitERK9btVector3SG_fii(i1, i2, i3, d4, i5, i6) {
 47032  i1 = i1 | 0;
 47033  i2 = i2 | 0;
 47034  i3 = i3 | 0;
 47035  d4 = +d4;
 47036  i5 = i5 | 0;
 47037  i6 = i6 | 0;
 47038  var i7 = 0, i8 = 0, i9 = 0, d10 = 0.0;
 47039  i7 = STACKTOP;
 47040  STACKTOP = STACKTOP + 56 | 0;
 47041  i8 = i7 | 0;
 47042  i9 = i7 + 8 | 0;
 47043  HEAP32[i8 >> 2] = i5;
 47044  HEAP32[i8 + 4 >> 2] = i6;
 47045  i6 = HEAP32[i1 + 212 >> 2] | 0;
 47046  if (+HEAPF32[i6 + 4 >> 2] < d4) {
 47047   d10 = d4;
 47048   STACKTOP = i7;
 47049   return +d10;
 47051  HEAP32[i9 >> 2] = HEAP32[i1 + 216 >> 2];
 47052  HEAP32[i9 + 4 >> 2] = i8;
 47053  i8 = i9 + 8 | 0;
 47054  i1 = i2;
 47055  HEAP32[i8 >> 2] = HEAP32[i1 >> 2];
 47056  HEAP32[i8 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
 47057  HEAP32[i8 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
 47058  HEAP32[i8 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
 47059  i1 = i9 + 24 | 0;
 47060  i8 = i3;
 47061  HEAP32[i1 >> 2] = HEAP32[i8 >> 2];
 47062  HEAP32[i1 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
 47063  HEAP32[i1 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
 47064  HEAP32[i1 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
 47065  HEAPF32[i9 + 40 >> 2] = d4;
 47066  d10 = +FUNCTION_TABLE_fiii[HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] & 15](i6, i9, 1);
 47067  STACKTOP = i7;
 47068  return +d10;
 47070 function __ZNK10btBoxShape16getPlaneEquationER9btVector4i(i1, i2, i3) {
 47071  i1 = i1 | 0;
 47072  i2 = i2 | 0;
 47073  i3 = i3 | 0;
 47074  var d4 = 0.0, d5 = 0.0, d6 = 0.0;
 47075  d4 = +HEAPF32[i1 + 28 >> 2];
 47076  d5 = +HEAPF32[i1 + 32 >> 2];
 47077  d6 = +HEAPF32[i1 + 36 >> 2];
 47078  switch (i3 | 0) {
 47079  case 5:
 47081    HEAPF32[i2 >> 2] = 0.0;
 47082    HEAPF32[i2 + 4 >> 2] = 0.0;
 47083    HEAPF32[i2 + 8 >> 2] = -1.0;
 47084    HEAPF32[i2 + 12 >> 2] = -0.0 - d6;
 47085    return;
 47087  case 3:
 47089    HEAPF32[i2 >> 2] = 0.0;
 47090    HEAPF32[i2 + 4 >> 2] = -1.0;
 47091    HEAPF32[i2 + 8 >> 2] = 0.0;
 47092    HEAPF32[i2 + 12 >> 2] = -0.0 - d5;
 47093    return;
 47095  case 0:
 47097    HEAPF32[i2 >> 2] = 1.0;
 47098    HEAPF32[i2 + 4 >> 2] = 0.0;
 47099    HEAPF32[i2 + 8 >> 2] = 0.0;
 47100    HEAPF32[i2 + 12 >> 2] = -0.0 - d4;
 47101    return;
 47103  case 1:
 47105    HEAPF32[i2 >> 2] = -1.0;
 47106    HEAPF32[i2 + 4 >> 2] = 0.0;
 47107    HEAPF32[i2 + 8 >> 2] = 0.0;
 47108    HEAPF32[i2 + 12 >> 2] = -0.0 - d4;
 47109    return;
 47111  case 2:
 47113    HEAPF32[i2 >> 2] = 0.0;
 47114    HEAPF32[i2 + 4 >> 2] = 1.0;
 47115    HEAPF32[i2 + 8 >> 2] = 0.0;
 47116    HEAPF32[i2 + 12 >> 2] = -0.0 - d5;
 47117    return;
 47119  case 4:
 47121    HEAPF32[i2 >> 2] = 0.0;
 47122    HEAPF32[i2 + 4 >> 2] = 0.0;
 47123    HEAPF32[i2 + 8 >> 2] = 1.0;
 47124    HEAPF32[i2 + 12 >> 2] = -0.0 - d6;
 47125    return;
 47127  default:
 47129    return;
 47133 function __ZN21btCollisionDispatcher19defaultNearCallbackER16btBroadphasePairRS_RK16btDispatcherInfo(i1, i2, i3) {
 47134  i1 = i1 | 0;
 47135  i2 = i2 | 0;
 47136  i3 = i3 | 0;
 47137  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, d9 = 0.0;
 47138  i4 = STACKTOP;
 47139  STACKTOP = STACKTOP + 160 | 0;
 47140  i5 = i4 | 0;
 47141  i6 = HEAP32[HEAP32[i1 >> 2] >> 2] | 0;
 47142  i7 = HEAP32[HEAP32[i1 + 4 >> 2] >> 2] | 0;
 47143  if (!(FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i2 >> 2] | 0) + 24 >> 2] & 31](i2, i6, i7) | 0)) {
 47144   STACKTOP = i4;
 47145   return;
 47147  i8 = i1 + 8 | 0;
 47148  do {
 47149   if ((HEAP32[i8 >> 2] | 0) == 0) {
 47150    i1 = FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[i2 >> 2] | 0) + 8 >> 2] & 31](i2, i6, i7, 0) | 0;
 47151    HEAP32[i8 >> 2] = i1;
 47152    if ((i1 | 0) != 0) {
 47153     break;
 47155    STACKTOP = i4;
 47156    return;
 47158  } while (0);
 47159  __ZN16btManifoldResultC2EP17btCollisionObjectS1_(i5, i6, i7);
 47160  i2 = HEAP32[i8 >> 2] | 0;
 47161  if ((HEAP32[i3 + 8 >> 2] | 0) == 1) {
 47162   FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i2 >> 2] | 0) + 8 >> 2] & 63](i2, i6, i7, i3, i5);
 47163   STACKTOP = i4;
 47164   return;
 47166  d9 = +FUNCTION_TABLE_fiiiii[HEAP32[(HEAP32[i2 >> 2] | 0) + 12 >> 2] & 31](i2, i6, i7, i3, i5);
 47167  i5 = i3 + 12 | 0;
 47168  if (+HEAPF32[i5 >> 2] <= d9) {
 47169   STACKTOP = i4;
 47170   return;
 47172  HEAPF32[i5 >> 2] = d9;
 47173  STACKTOP = i4;
 47174  return;
 47176 function __ZN18btConvexPolyhedronD2Ev(i1) {
 47177  i1 = i1 | 0;
 47178  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
 47179  HEAP32[i1 >> 2] = 4112;
 47180  i2 = i1 + 48 | 0;
 47181  i3 = i1 + 56 | 0;
 47182  i4 = HEAP32[i3 >> 2] | 0;
 47183  i5 = i1 + 60 | 0;
 47184  if ((i4 | 0) != 0) {
 47185   if ((HEAP8[i5] | 0) != 0) {
 47186    __Z21btAlignedFreeInternalPv(i4);
 47188   HEAP32[i3 >> 2] = 0;
 47190  HEAP8[i5] = 1;
 47191  HEAP32[i3 >> 2] = 0;
 47192  HEAP32[i2 >> 2] = 0;
 47193  HEAP32[i1 + 52 >> 2] = 0;
 47194  i2 = i1 + 28 | 0;
 47195  __ZN20btAlignedObjectArrayI6btFaceE7destroyEii(i1 + 24 | 0, 0, HEAP32[i2 >> 2] | 0);
 47196  i3 = i1 + 36 | 0;
 47197  i5 = HEAP32[i3 >> 2] | 0;
 47198  i4 = i1 + 40 | 0;
 47199  if ((i5 | 0) != 0) {
 47200   if ((HEAP8[i4] | 0) != 0) {
 47201    __Z21btAlignedFreeInternalPv(i5 | 0);
 47203   HEAP32[i3 >> 2] = 0;
 47205  HEAP8[i4] = 1;
 47206  HEAP32[i3 >> 2] = 0;
 47207  HEAP32[i2 >> 2] = 0;
 47208  HEAP32[i1 + 32 >> 2] = 0;
 47209  i2 = i1 + 8 | 0;
 47210  i3 = i1 + 16 | 0;
 47211  i4 = HEAP32[i3 >> 2] | 0;
 47212  i5 = i1 + 20 | 0;
 47213  if ((i4 | 0) == 0) {
 47214   HEAP8[i5] = 1;
 47215   HEAP32[i3 >> 2] = 0;
 47216   HEAP32[i2 >> 2] = 0;
 47217   i6 = i1 + 12 | 0;
 47218   HEAP32[i6 >> 2] = 0;
 47219   return;
 47221  if ((HEAP8[i5] | 0) != 0) {
 47222   __Z21btAlignedFreeInternalPv(i4);
 47224  HEAP32[i3 >> 2] = 0;
 47225  HEAP8[i5] = 1;
 47226  HEAP32[i3 >> 2] = 0;
 47227  HEAP32[i2 >> 2] = 0;
 47228  i6 = i1 + 12 | 0;
 47229  HEAP32[i6 >> 2] = 0;
 47230  return;
 47232 function __ZN22btVoronoiSimplexSolver9inSimplexERK9btVector3(i1, i2) {
 47233  i1 = i1 | 0;
 47234  i2 = i2 | 0;
 47235  var i3 = 0, d4 = 0.0, d5 = 0.0, d6 = 0.0, d7 = 0.0, i8 = 0, i9 = 0, d10 = 0.0, d11 = 0.0, d12 = 0.0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0;
 47236  i3 = HEAP32[i1 >> 2] | 0;
 47237  if ((i3 | 0) > 0) {
 47238   d4 = +HEAPF32[i2 >> 2];
 47239   d5 = +HEAPF32[i2 + 4 >> 2];
 47240   d6 = +HEAPF32[i2 + 8 >> 2];
 47241   d7 = +HEAPF32[i1 + 308 >> 2];
 47242   i8 = 0;
 47243   i9 = 0;
 47244   while (1) {
 47245    d10 = d4 - +HEAPF32[i1 + 4 + (i9 << 4) >> 2];
 47246    d11 = d5 - +HEAPF32[i1 + 4 + (i9 << 4) + 4 >> 2];
 47247    d12 = d6 - +HEAPF32[i1 + 4 + (i9 << 4) + 8 >> 2];
 47248    i13 = i8 | d10 * d10 + d11 * d11 + d12 * d12 <= d7;
 47249    i14 = i9 + 1 | 0;
 47250    if ((i14 | 0) < (i3 | 0)) {
 47251     i8 = i13;
 47252     i9 = i14;
 47253    } else {
 47254     i15 = i13;
 47255     break;
 47258  } else {
 47259   i15 = 0;
 47261  if (+HEAPF32[i2 + 12 >> 2] != +HEAPF32[i1 + 304 >> 2]) {
 47262   i16 = 0;
 47263   i17 = i16 | i15;
 47264   return i17 | 0;
 47266  if (+HEAPF32[i2 + 8 >> 2] != +HEAPF32[i1 + 300 >> 2]) {
 47267   i16 = 0;
 47268   i17 = i16 | i15;
 47269   return i17 | 0;
 47271  if (+HEAPF32[i2 + 4 >> 2] != +HEAPF32[i1 + 296 >> 2]) {
 47272   i16 = 0;
 47273   i17 = i16 | i15;
 47274   return i17 | 0;
 47276  i16 = +HEAPF32[i2 >> 2] == +HEAPF32[i1 + 292 >> 2];
 47277  i17 = i16 | i15;
 47278  return i17 | 0;
 47280 function __ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD2Ev(i1) {
 47281  i1 = i1 | 0;
 47282  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
 47283  HEAP32[i1 >> 2] = 1520;
 47284  i2 = i1 + 76 | 0;
 47285  i3 = i1 + 84 | 0;
 47286  i4 = HEAP32[i3 >> 2] | 0;
 47287  i5 = i1 + 88 | 0;
 47288  if ((i4 | 0) != 0) {
 47289   if ((HEAP8[i5] | 0) != 0) {
 47290    __Z21btAlignedFreeInternalPv(i4);
 47292   HEAP32[i3 >> 2] = 0;
 47294  HEAP8[i5] = 1;
 47295  HEAP32[i3 >> 2] = 0;
 47296  HEAP32[i2 >> 2] = 0;
 47297  HEAP32[i1 + 80 >> 2] = 0;
 47298  i2 = i1 + 56 | 0;
 47299  i3 = i1 + 64 | 0;
 47300  i5 = HEAP32[i3 >> 2] | 0;
 47301  i4 = i1 + 68 | 0;
 47302  if ((i5 | 0) != 0) {
 47303   if ((HEAP8[i4] | 0) != 0) {
 47304    __Z21btAlignedFreeInternalPv(i5);
 47306   HEAP32[i3 >> 2] = 0;
 47308  HEAP8[i4] = 1;
 47309  HEAP32[i3 >> 2] = 0;
 47310  HEAP32[i2 >> 2] = 0;
 47311  HEAP32[i1 + 60 >> 2] = 0;
 47312  i2 = i1 + 36 | 0;
 47313  i3 = i1 + 44 | 0;
 47314  i4 = HEAP32[i3 >> 2] | 0;
 47315  i5 = i1 + 48 | 0;
 47316  if ((i4 | 0) == 0) {
 47317   HEAP8[i5] = 1;
 47318   HEAP32[i3 >> 2] = 0;
 47319   HEAP32[i2 >> 2] = 0;
 47320   i6 = i1 + 40 | 0;
 47321   HEAP32[i6 >> 2] = 0;
 47322   return;
 47324  if ((HEAP8[i5] | 0) != 0) {
 47325   __Z21btAlignedFreeInternalPv(i4);
 47327  HEAP32[i3 >> 2] = 0;
 47328  HEAP8[i5] = 1;
 47329  HEAP32[i3 >> 2] = 0;
 47330  HEAP32[i2 >> 2] = 0;
 47331  i6 = i1 + 40 | 0;
 47332  HEAP32[i6 >> 2] = 0;
 47333  return;
 47335 function __ZN21btCollisionDispatcher15releaseManifoldEP20btPersistentManifold(i1, i2) {
 47336  i1 = i1 | 0;
 47337  i2 = i2 | 0;
 47338  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
 47339  HEAP32[2990] = (HEAP32[2990] | 0) - 1;
 47340  FUNCTION_TABLE_vii[HEAP32[(HEAP32[i1 >> 2] | 0) + 20 >> 2] & 127](i1, i2);
 47341  i3 = HEAP32[i2 + 1136 >> 2] | 0;
 47342  i4 = i1 + 12 | 0;
 47343  i5 = (HEAP32[i4 >> 2] | 0) - 1 | 0;
 47344  i6 = i1 + 20 | 0;
 47345  i7 = HEAP32[i6 >> 2] | 0;
 47346  i8 = i7 + (i3 << 2) | 0;
 47347  i9 = HEAP32[i8 >> 2] | 0;
 47348  HEAP32[i8 >> 2] = HEAP32[i7 + (i5 << 2) >> 2];
 47349  HEAP32[(HEAP32[i6 >> 2] | 0) + (i5 << 2) >> 2] = i9;
 47350  HEAP32[(HEAP32[(HEAP32[i6 >> 2] | 0) + (i3 << 2) >> 2] | 0) + 1136 >> 2] = i3;
 47351  HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) - 1;
 47352  i4 = HEAP32[i1 + 196 >> 2] | 0;
 47353  i1 = i2;
 47354  do {
 47355   if ((i2 | 0) != 0) {
 47356    i3 = HEAP32[i4 + 16 >> 2] | 0;
 47357    if (i3 >>> 0 > i1 >>> 0) {
 47358     break;
 47360    if ((i3 + (Math_imul(HEAP32[i4 >> 2] | 0, HEAP32[i4 + 4 >> 2] | 0) | 0) | 0) >>> 0 <= i1 >>> 0) {
 47361     break;
 47363    i3 = i4 + 12 | 0;
 47364    HEAP32[i2 >> 2] = HEAP32[i3 >> 2];
 47365    HEAP32[i3 >> 2] = i1;
 47366    i3 = i4 + 8 | 0;
 47367    HEAP32[i3 >> 2] = (HEAP32[i3 >> 2] | 0) + 1;
 47368    return;
 47370  } while (0);
 47371  __Z21btAlignedFreeInternalPv(i1);
 47372  return;
 47374 function __ZN11btUnionFind11sortIslandsEv(i1) {
 47375  i1 = i1 | 0;
 47376  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
 47377  i2 = STACKTOP;
 47378  STACKTOP = STACKTOP + 8 | 0;
 47379  i3 = i2 | 0;
 47380  i4 = i1 | 0;
 47381  i5 = i1 + 4 | 0;
 47382  i6 = HEAP32[i5 >> 2] | 0;
 47383  if ((i6 | 0) <= 0) {
 47384   i7 = i3 | 0;
 47385   STACKTOP = i2;
 47386   return;
 47388  i8 = HEAP32[i1 + 12 >> 2] | 0;
 47389  i1 = 0;
 47390  do {
 47391   i9 = i8 + (i1 << 3) | 0;
 47392   i10 = HEAP32[i9 >> 2] | 0;
 47393   if ((i10 | 0) == (i1 | 0)) {
 47394    i11 = i1;
 47395   } else {
 47396    i12 = i9;
 47397    i13 = i10;
 47398    while (1) {
 47399     i10 = i8 + (i13 << 3) | 0;
 47400     HEAP32[i12 >> 2] = HEAP32[i10 >> 2];
 47401     i14 = HEAP32[i10 >> 2] | 0;
 47402     i10 = i8 + (i14 << 3) | 0;
 47403     i15 = HEAP32[i10 >> 2] | 0;
 47404     if ((i14 | 0) == (i15 | 0)) {
 47405      i11 = i14;
 47406      break;
 47407     } else {
 47408      i12 = i10;
 47409      i13 = i15;
 47413   HEAP32[i9 >> 2] = i11;
 47414   i1 = i1 + 1 | 0;
 47415  } while ((i1 | 0) < (i6 | 0));
 47416  i6 = HEAP32[i5 >> 2] | 0;
 47417  i5 = i3 | 0;
 47418  if ((i6 | 0) <= 1) {
 47419   i7 = i5;
 47420   STACKTOP = i2;
 47421   return;
 47423  __ZN20btAlignedObjectArrayI9btElementE17quickSortInternalI31btUnionFindElementSortPredicateEEvT_ii(i4, i3, 0, i6 - 1 | 0);
 47424  i7 = i5;
 47425  STACKTOP = i2;
 47426  return;
 47428 function __Z24applyAnisotropicFrictionP17btCollisionObjectR9btVector3(i1, i2) {
 47429  i1 = i1 | 0;
 47430  i2 = i2 | 0;
 47431  var d3 = 0.0, i4 = 0, d5 = 0.0, d6 = 0.0, i7 = 0, d8 = 0.0, d9 = 0.0, i10 = 0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0, d17 = 0.0, d18 = 0.0, d19 = 0.0, d20 = 0.0;
 47432  if ((i1 | 0) == 0) {
 47433   return;
 47435  if ((HEAP32[i1 + 180 >> 2] | 0) == 0) {
 47436   return;
 47438  d3 = +HEAPF32[i1 + 4 >> 2];
 47439  i4 = i2 | 0;
 47440  d5 = +HEAPF32[i4 >> 2];
 47441  d6 = +HEAPF32[i1 + 20 >> 2];
 47442  i7 = i2 + 4 | 0;
 47443  d8 = +HEAPF32[i7 >> 2];
 47444  d9 = +HEAPF32[i1 + 36 >> 2];
 47445  i10 = i2 + 8 | 0;
 47446  d11 = +HEAPF32[i10 >> 2];
 47447  d12 = +HEAPF32[i1 + 8 >> 2];
 47448  d13 = +HEAPF32[i1 + 24 >> 2];
 47449  d14 = +HEAPF32[i1 + 40 >> 2];
 47450  d15 = +HEAPF32[i1 + 12 >> 2];
 47451  d16 = +HEAPF32[i1 + 28 >> 2];
 47452  d17 = +HEAPF32[i1 + 44 >> 2];
 47453  d18 = (d3 * d5 + d6 * d8 + d9 * d11) * +HEAPF32[i1 + 164 >> 2];
 47454  d19 = (d5 * d12 + d8 * d13 + d11 * d14) * +HEAPF32[i1 + 168 >> 2];
 47455  d20 = (d5 * d15 + d8 * d16 + d11 * d17) * +HEAPF32[i1 + 172 >> 2];
 47456  HEAPF32[i4 >> 2] = d3 * d18 + d12 * d19 + d15 * d20;
 47457  HEAPF32[i7 >> 2] = d6 * d18 + d13 * d19 + d16 * d20;
 47458  HEAPF32[i10 >> 2] = d9 * d18 + d14 * d19 + d17 * d20;
 47459  HEAPF32[i2 + 12 >> 2] = 0.0;
 47460  return;
 47462 function __ZNK10__cxxabiv120__si_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib(i1, i2, i3, i4, i5, i6) {
 47463  i1 = i1 | 0;
 47464  i2 = i2 | 0;
 47465  i3 = i3 | 0;
 47466  i4 = i4 | 0;
 47467  i5 = i5 | 0;
 47468  i6 = i6 | 0;
 47469  var i7 = 0, i8 = 0;
 47470  if ((i1 | 0) != (HEAP32[i2 + 8 >> 2] | 0)) {
 47471   i7 = HEAP32[i1 + 8 >> 2] | 0;
 47472   FUNCTION_TABLE_viiiiii[HEAP32[(HEAP32[i7 >> 2] | 0) + 20 >> 2] & 15](i7, i2, i3, i4, i5, i6);
 47473   return;
 47475  HEAP8[i2 + 53 | 0] = 1;
 47476  if ((HEAP32[i2 + 4 >> 2] | 0) != (i4 | 0)) {
 47477   return;
 47479  HEAP8[i2 + 52 | 0] = 1;
 47480  i4 = i2 + 16 | 0;
 47481  i6 = HEAP32[i4 >> 2] | 0;
 47482  if ((i6 | 0) == 0) {
 47483   HEAP32[i4 >> 2] = i3;
 47484   HEAP32[i2 + 24 >> 2] = i5;
 47485   HEAP32[i2 + 36 >> 2] = 1;
 47486   if (!((HEAP32[i2 + 48 >> 2] | 0) == 1 & (i5 | 0) == 1)) {
 47487    return;
 47489   HEAP8[i2 + 54 | 0] = 1;
 47490   return;
 47492  if ((i6 | 0) != (i3 | 0)) {
 47493   i3 = i2 + 36 | 0;
 47494   HEAP32[i3 >> 2] = (HEAP32[i3 >> 2] | 0) + 1;
 47495   HEAP8[i2 + 54 | 0] = 1;
 47496   return;
 47498  i3 = i2 + 24 | 0;
 47499  i6 = HEAP32[i3 >> 2] | 0;
 47500  if ((i6 | 0) == 2) {
 47501   HEAP32[i3 >> 2] = i5;
 47502   i8 = i5;
 47503  } else {
 47504   i8 = i6;
 47506  if (!((HEAP32[i2 + 48 >> 2] | 0) == 1 & (i8 | 0) == 1)) {
 47507   return;
 47509  HEAP8[i2 + 54 | 0] = 1;
 47510  return;
 47512 function __ZN28btCompoundCollisionAlgorithmD2Ev(i1) {
 47513  i1 = i1 | 0;
 47514  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
 47515  HEAP32[i1 >> 2] = 2888;
 47516  i2 = i1 + 12 | 0;
 47517  i3 = HEAP32[i2 >> 2] | 0;
 47518  i4 = i1 + 20 | 0;
 47519  if ((i3 | 0) > 0) {
 47520   i5 = i1 + 4 | 0;
 47521   i6 = 0;
 47522   do {
 47523    i7 = HEAP32[(HEAP32[i4 >> 2] | 0) + (i6 << 2) >> 2] | 0;
 47524    if ((i7 | 0) != 0) {
 47525     FUNCTION_TABLE_vi[HEAP32[HEAP32[i7 >> 2] >> 2] & 511](i7);
 47526     i7 = HEAP32[i5 >> 2] | 0;
 47527     FUNCTION_TABLE_vii[HEAP32[(HEAP32[i7 >> 2] | 0) + 60 >> 2] & 127](i7, HEAP32[(HEAP32[i4 >> 2] | 0) + (i6 << 2) >> 2] | 0);
 47529    i6 = i6 + 1 | 0;
 47530   } while ((i6 | 0) < (i3 | 0));
 47532  i3 = HEAP32[i4 >> 2] | 0;
 47533  i6 = i1 + 24 | 0;
 47534  if ((i3 | 0) == 0) {
 47535   HEAP8[i6] = 1;
 47536   HEAP32[i4 >> 2] = 0;
 47537   HEAP32[i2 >> 2] = 0;
 47538   i8 = i1 + 16 | 0;
 47539   HEAP32[i8 >> 2] = 0;
 47540   i9 = i1 | 0;
 47541   __ZN30btActivatingCollisionAlgorithmD2Ev(i9);
 47542   return;
 47544  if ((HEAP8[i6] | 0) != 0) {
 47545   __Z21btAlignedFreeInternalPv(i3);
 47547  HEAP32[i4 >> 2] = 0;
 47548  HEAP8[i6] = 1;
 47549  HEAP32[i4 >> 2] = 0;
 47550  HEAP32[i2 >> 2] = 0;
 47551  i8 = i1 + 16 | 0;
 47552  HEAP32[i8 >> 2] = 0;
 47553  i9 = i1 | 0;
 47554  __ZN30btActivatingCollisionAlgorithmD2Ev(i9);
 47555  return;
 47557 function __ZN28btHashedOverlappingPairCacheD2Ev(i1) {
 47558  i1 = i1 | 0;
 47559  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
 47560  HEAP32[i1 >> 2] = 2800;
 47561  i2 = i1 + 56 | 0;
 47562  i3 = i1 + 64 | 0;
 47563  i4 = HEAP32[i3 >> 2] | 0;
 47564  i5 = i1 + 68 | 0;
 47565  if ((i4 | 0) != 0) {
 47566   if ((HEAP8[i5] | 0) != 0) {
 47567    __Z21btAlignedFreeInternalPv(i4);
 47569   HEAP32[i3 >> 2] = 0;
 47571  HEAP8[i5] = 1;
 47572  HEAP32[i3 >> 2] = 0;
 47573  HEAP32[i2 >> 2] = 0;
 47574  HEAP32[i1 + 60 >> 2] = 0;
 47575  i2 = i1 + 36 | 0;
 47576  i3 = i1 + 44 | 0;
 47577  i5 = HEAP32[i3 >> 2] | 0;
 47578  i4 = i1 + 48 | 0;
 47579  if ((i5 | 0) != 0) {
 47580   if ((HEAP8[i4] | 0) != 0) {
 47581    __Z21btAlignedFreeInternalPv(i5);
 47583   HEAP32[i3 >> 2] = 0;
 47585  HEAP8[i4] = 1;
 47586  HEAP32[i3 >> 2] = 0;
 47587  HEAP32[i2 >> 2] = 0;
 47588  HEAP32[i1 + 40 >> 2] = 0;
 47589  i2 = i1 + 8 | 0;
 47590  i3 = i1 + 16 | 0;
 47591  i4 = HEAP32[i3 >> 2] | 0;
 47592  i5 = i1 + 20 | 0;
 47593  if ((i4 | 0) == 0) {
 47594   HEAP8[i5] = 1;
 47595   HEAP32[i3 >> 2] = 0;
 47596   HEAP32[i2 >> 2] = 0;
 47597   i6 = i1 + 12 | 0;
 47598   HEAP32[i6 >> 2] = 0;
 47599   return;
 47601  if ((HEAP8[i5] | 0) != 0) {
 47602   __Z21btAlignedFreeInternalPv(i4);
 47604  HEAP32[i3 >> 2] = 0;
 47605  HEAP8[i5] = 1;
 47606  HEAP32[i3 >> 2] = 0;
 47607  HEAP32[i2 >> 2] = 0;
 47608  i6 = i1 + 12 | 0;
 47609  HEAP32[i6 >> 2] = 0;
 47610  return;
 47612 function __ZNK23btPolyhedralConvexShape21calculateLocalInertiaEfR9btVector3(i1, d2, i3) {
 47613  i1 = i1 | 0;
 47614  d2 = +d2;
 47615  i3 = i3 | 0;
 47616  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0;
 47617  i4 = STACKTOP;
 47618  STACKTOP = STACKTOP + 96 | 0;
 47619  i5 = i4 | 0;
 47620  i6 = i4 + 64 | 0;
 47621  i7 = i4 + 80 | 0;
 47622  i8 = i1 | 0;
 47623  d9 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i1 >> 2] | 0) + 44 >> 2] & 7](i8);
 47624  HEAPF32[i5 >> 2] = 1.0;
 47625  _memset(i5 + 4 | 0, 0, 16);
 47626  HEAPF32[i5 + 20 >> 2] = 1.0;
 47627  _memset(i5 + 24 | 0, 0, 16);
 47628  HEAPF32[i5 + 40 >> 2] = 1.0;
 47629  _memset(i5 + 44 | 0, 0, 20);
 47630  FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] & 127](i8, i5, i6, i7);
 47631  d10 = (d9 + (+HEAPF32[i7 >> 2] - +HEAPF32[i6 >> 2]) * .5) * 2.0;
 47632  d11 = (d9 + (+HEAPF32[i7 + 4 >> 2] - +HEAPF32[i6 + 4 >> 2]) * .5) * 2.0;
 47633  d12 = (d9 + (+HEAPF32[i7 + 8 >> 2] - +HEAPF32[i6 + 8 >> 2]) * .5) * 2.0;
 47634  d9 = d10 * d10;
 47635  d10 = d11 * d11;
 47636  d11 = d12 * d12;
 47637  d12 = d2 * .0833333283662796;
 47638  HEAPF32[i3 >> 2] = d12 * (d10 + d11);
 47639  HEAPF32[i3 + 4 >> 2] = d12 * (d9 + d11);
 47640  HEAPF32[i3 + 8 >> 2] = d12 * (d9 + d10);
 47641  HEAPF32[i3 + 12 >> 2] = 0.0;
 47642  STACKTOP = i4;
 47643  return;
 47645 function __ZN16btCollisionWorld21removeCollisionObjectEP17btCollisionObject(i1, i2) {
 47646  i1 = i1 | 0;
 47647  i2 = i2 | 0;
 47648  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
 47649  i3 = i2 + 188 | 0;
 47650  i4 = HEAP32[i3 >> 2] | 0;
 47651  if ((i4 | 0) != 0) {
 47652   i5 = i1 + 76 | 0;
 47653   i6 = HEAP32[i5 >> 2] | 0;
 47654   i7 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i6 >> 2] | 0) + 36 >> 2] & 127](i6) | 0;
 47655   i6 = i1 + 24 | 0;
 47656   FUNCTION_TABLE_viii[HEAP32[(HEAP32[i7 >> 2] | 0) + 40 >> 2] & 127](i7, i4, HEAP32[i6 >> 2] | 0);
 47657   i7 = HEAP32[i5 >> 2] | 0;
 47658   FUNCTION_TABLE_viii[HEAP32[(HEAP32[i7 >> 2] | 0) + 12 >> 2] & 127](i7, i4, HEAP32[i6 >> 2] | 0);
 47659   HEAP32[i3 >> 2] = 0;
 47661  i3 = i1 + 8 | 0;
 47662  i6 = HEAP32[i3 >> 2] | 0;
 47663  i4 = i1 + 16 | 0;
 47664  i1 = 0;
 47665  while (1) {
 47666   if ((i1 | 0) >= (i6 | 0)) {
 47667    i8 = 2093;
 47668    break;
 47670   i9 = HEAP32[i4 >> 2] | 0;
 47671   i10 = i9 + (i1 << 2) | 0;
 47672   if ((HEAP32[i10 >> 2] | 0) == (i2 | 0)) {
 47673    break;
 47674   } else {
 47675    i1 = i1 + 1 | 0;
 47678  if ((i8 | 0) == 2093) {
 47679   return;
 47681  i8 = i6 - 1 | 0;
 47682  HEAP32[i10 >> 2] = HEAP32[i9 + (i8 << 2) >> 2];
 47683  HEAP32[(HEAP32[i4 >> 2] | 0) + (i8 << 2) >> 2] = i2;
 47684  HEAP32[i3 >> 2] = i8;
 47685  return;
 47687 function __ZL11TestSepAxisRK18btConvexPolyhedronS1_RK11btTransformS4_RK9btVector3Rf(i1, i2, i3, i4, i5, i6) {
 47688  i1 = i1 | 0;
 47689  i2 = i2 | 0;
 47690  i3 = i3 | 0;
 47691  i4 = i4 | 0;
 47692  i5 = i5 | 0;
 47693  i6 = i6 | 0;
 47694  var i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, d12 = 0.0, d13 = 0.0, i14 = 0, d15 = 0.0, d16 = 0.0, d17 = 0.0;
 47695  i7 = STACKTOP;
 47696  STACKTOP = STACKTOP + 32 | 0;
 47697  i8 = i7 | 0;
 47698  i9 = i7 + 8 | 0;
 47699  i10 = i7 + 16 | 0;
 47700  i11 = i7 + 24 | 0;
 47701  __ZNK18btConvexPolyhedron7projectERK11btTransformRK9btVector3RfS6_(i1, i3, i5, i8, i9);
 47702  __ZNK18btConvexPolyhedron7projectERK11btTransformRK9btVector3RfS6_(i2, i4, i5, i10, i11);
 47703  d12 = +HEAPF32[i9 >> 2];
 47704  d13 = +HEAPF32[i10 >> 2];
 47705  if (d12 < d13) {
 47706   i14 = 0;
 47707   STACKTOP = i7;
 47708   return i14 | 0;
 47710  d15 = +HEAPF32[i11 >> 2];
 47711  d16 = +HEAPF32[i8 >> 2];
 47712  if (d15 < d16) {
 47713   i14 = 0;
 47714   STACKTOP = i7;
 47715   return i14 | 0;
 47717  d17 = d12 - d13;
 47718  if (d17 < 0.0) {
 47719   ___assert_func(336 | 0, 89, 1160 | 0, 720 | 0);
 47720   return 0;
 47722  d13 = d15 - d16;
 47723  if (d13 < 0.0) {
 47724   ___assert_func(336 | 0, 91, 1160 | 0, 568 | 0);
 47725   return 0;
 47727  HEAPF32[i6 >> 2] = d17 < d13 ? d17 : d13;
 47728  i14 = 1;
 47729  STACKTOP = i7;
 47730  return i14 | 0;
 47732 function __ZN22btVoronoiSimplexSolver9addVertexERK9btVector3S2_S2_(i1, i2, i3, i4) {
 47733  i1 = i1 | 0;
 47734  i2 = i2 | 0;
 47735  i3 = i3 | 0;
 47736  i4 = i4 | 0;
 47737  var i5 = 0, i6 = 0;
 47738  i5 = i1 + 292 | 0;
 47739  i6 = i2;
 47740  HEAP32[i5 >> 2] = HEAP32[i6 >> 2];
 47741  HEAP32[i5 + 4 >> 2] = HEAP32[i6 + 4 >> 2];
 47742  HEAP32[i5 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
 47743  HEAP32[i5 + 12 >> 2] = HEAP32[i6 + 12 >> 2];
 47744  HEAP8[i1 + 356 | 0] = 1;
 47745  i5 = i1 | 0;
 47746  i2 = i1 + 4 + (HEAP32[i5 >> 2] << 4) | 0;
 47747  HEAP32[i2 >> 2] = HEAP32[i6 >> 2];
 47748  HEAP32[i2 + 4 >> 2] = HEAP32[i6 + 4 >> 2];
 47749  HEAP32[i2 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
 47750  HEAP32[i2 + 12 >> 2] = HEAP32[i6 + 12 >> 2];
 47751  i6 = i1 + 84 + (HEAP32[i5 >> 2] << 4) | 0;
 47752  i2 = i3;
 47753  HEAP32[i6 >> 2] = HEAP32[i2 >> 2];
 47754  HEAP32[i6 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
 47755  HEAP32[i6 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
 47756  HEAP32[i6 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
 47757  i2 = i1 + 164 + (HEAP32[i5 >> 2] << 4) | 0;
 47758  i1 = i4;
 47759  HEAP32[i2 >> 2] = HEAP32[i1 >> 2];
 47760  HEAP32[i2 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
 47761  HEAP32[i2 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
 47762  HEAP32[i2 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
 47763  HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 1;
 47764  return;
 47766 function __ZN20btConvexHullComputerD2Ev(i1) {
 47767  i1 = i1 | 0;
 47768  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
 47769  i2 = i1 + 44 | 0;
 47770  i3 = i1 + 52 | 0;
 47771  i4 = HEAP32[i3 >> 2] | 0;
 47772  i5 = i1 + 56 | 0;
 47773  if ((i4 | 0) != 0) {
 47774   if ((HEAP8[i5] | 0) != 0) {
 47775    __Z21btAlignedFreeInternalPv(i4);
 47777   HEAP32[i3 >> 2] = 0;
 47779  HEAP8[i5] = 1;
 47780  HEAP32[i3 >> 2] = 0;
 47781  HEAP32[i2 >> 2] = 0;
 47782  HEAP32[i1 + 48 >> 2] = 0;
 47783  i2 = i1 + 24 | 0;
 47784  i3 = i1 + 32 | 0;
 47785  i5 = HEAP32[i3 >> 2] | 0;
 47786  i4 = i1 + 36 | 0;
 47787  if ((i5 | 0) != 0) {
 47788   if ((HEAP8[i4] | 0) != 0) {
 47789    __Z21btAlignedFreeInternalPv(i5);
 47791   HEAP32[i3 >> 2] = 0;
 47793  HEAP8[i4] = 1;
 47794  HEAP32[i3 >> 2] = 0;
 47795  HEAP32[i2 >> 2] = 0;
 47796  HEAP32[i1 + 28 >> 2] = 0;
 47797  i2 = i1 + 4 | 0;
 47798  i3 = i1 + 12 | 0;
 47799  i4 = HEAP32[i3 >> 2] | 0;
 47800  i5 = i1 + 16 | 0;
 47801  if ((i4 | 0) == 0) {
 47802   HEAP8[i5] = 1;
 47803   HEAP32[i3 >> 2] = 0;
 47804   HEAP32[i2 >> 2] = 0;
 47805   i6 = i1 + 8 | 0;
 47806   HEAP32[i6 >> 2] = 0;
 47807   return;
 47809  if ((HEAP8[i5] | 0) != 0) {
 47810   __Z21btAlignedFreeInternalPv(i4);
 47812  HEAP32[i3 >> 2] = 0;
 47813  HEAP8[i5] = 1;
 47814  HEAP32[i3 >> 2] = 0;
 47815  HEAP32[i2 >> 2] = 0;
 47816  i6 = i1 + 8 | 0;
 47817  HEAP32[i6 >> 2] = 0;
 47818  return;
 47820 function __ZN31btConvexPlaneCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1, i2, i3, i4) {
 47821  i1 = i1 | 0;
 47822  i2 = i2 | 0;
 47823  i3 = i3 | 0;
 47824  i4 = i4 | 0;
 47825  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
 47826  i5 = HEAP32[i2 >> 2] | 0;
 47827  i6 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i5 >> 2] | 0) + 56 >> 2] & 63](i5, 28) | 0;
 47828  i5 = (i6 | 0) == 0;
 47829  if ((HEAP8[i1 + 4 | 0] | 0) == 0) {
 47830   if (i5) {
 47831    i7 = 0;
 47832    i8 = i7 | 0;
 47833    return i8 | 0;
 47835   i9 = i6;
 47836   __ZN31btConvexPlaneCollisionAlgorithmC2EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_bii(i9, 0, i2, i3, i4, 0, HEAP32[i1 + 8 >> 2] | 0, HEAP32[i1 + 12 >> 2] | 0);
 47837   i7 = i9;
 47838   i8 = i7 | 0;
 47839   return i8 | 0;
 47840  } else {
 47841   if (i5) {
 47842    i7 = 0;
 47843    i8 = i7 | 0;
 47844    return i8 | 0;
 47846   i5 = i6;
 47847   __ZN31btConvexPlaneCollisionAlgorithmC2EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_bii(i5, 0, i2, i3, i4, 1, HEAP32[i1 + 8 >> 2] | 0, HEAP32[i1 + 12 >> 2] | 0);
 47848   i7 = i5;
 47849   i8 = i7 | 0;
 47850   return i8 | 0;
 47852  return 0;
 47854 function __ZN20btDefaultMotionState17setWorldTransformERK11btTransform(i1, i2) {
 47855  i1 = i1 | 0;
 47856  i2 = i2 | 0;
 47857  var i3 = 0, i4 = 0, i5 = 0;
 47858  i3 = STACKTOP;
 47859  STACKTOP = STACKTOP + 64 | 0;
 47860  i4 = i3 | 0;
 47861  __ZNK11btTransformmlERKS_(i4, i2, i1 + 68 | 0);
 47862  i2 = i1 + 4 | 0;
 47863  i5 = i4;
 47864  HEAP32[i2 >> 2] = HEAP32[i5 >> 2];
 47865  HEAP32[i2 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
 47866  HEAP32[i2 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
 47867  HEAP32[i2 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
 47868  i5 = i1 + 20 | 0;
 47869  i2 = i4 + 16 | 0;
 47870  HEAP32[i5 >> 2] = HEAP32[i2 >> 2];
 47871  HEAP32[i5 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
 47872  HEAP32[i5 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
 47873  HEAP32[i5 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
 47874  i2 = i1 + 36 | 0;
 47875  i5 = i4 + 32 | 0;
 47876  HEAP32[i2 >> 2] = HEAP32[i5 >> 2];
 47877  HEAP32[i2 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
 47878  HEAP32[i2 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
 47879  HEAP32[i2 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
 47880  i5 = i1 + 52 | 0;
 47881  i1 = i4 + 48 | 0;
 47882  HEAP32[i5 >> 2] = HEAP32[i1 >> 2];
 47883  HEAP32[i5 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
 47884  HEAP32[i5 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
 47885  HEAP32[i5 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
 47886  STACKTOP = i3;
 47887  return;
 47889 function __ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf(i1, i2, i3) {
 47890  i1 = i1 | 0;
 47891  i2 = i2 | 0;
 47892  i3 = i3 | 0;
 47893  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, d14 = 0.0, d15 = 0.0, d16 = 0.0;
 47894  i4 = STACKTOP;
 47895  STACKTOP = STACKTOP + 96 | 0;
 47896  i5 = i4 | 0;
 47897  i6 = i4 + 64 | 0;
 47898  i7 = i4 + 80 | 0;
 47899  HEAPF32[i5 >> 2] = 1.0;
 47900  _memset(i5 + 4 | 0, 0, 16);
 47901  HEAPF32[i5 + 20 >> 2] = 1.0;
 47902  _memset(i5 + 24 | 0, 0, 16);
 47903  HEAPF32[i5 + 40 >> 2] = 1.0;
 47904  _memset(i5 + 44 | 0, 0, 20);
 47905  FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] & 127](i1, i5, i6, i7);
 47906  d8 = +HEAPF32[i7 >> 2];
 47907  d9 = +HEAPF32[i6 >> 2];
 47908  d10 = d8 - d9;
 47909  d11 = +HEAPF32[i7 + 4 >> 2];
 47910  d12 = +HEAPF32[i6 + 4 >> 2];
 47911  d13 = d11 - d12;
 47912  d14 = +HEAPF32[i7 + 8 >> 2];
 47913  d15 = +HEAPF32[i6 + 8 >> 2];
 47914  d16 = d14 - d15;
 47915  HEAPF32[i3 >> 2] = +Math_sqrt(+(d10 * d10 + d13 * d13 + d16 * d16)) * .5;
 47916  HEAPF32[i2 >> 2] = (d8 + d9) * .5;
 47917  HEAPF32[i2 + 4 >> 2] = (d11 + d12) * .5;
 47918  HEAPF32[i2 + 8 >> 2] = (d14 + d15) * .5;
 47919  HEAPF32[i2 + 12 >> 2] = 0.0;
 47920  STACKTOP = i4;
 47921  return;
 47923 function __ZNK10btBoxShape32getPreferredPenetrationDirectionEiR9btVector3(i1, i2, i3) {
 47924  i1 = i1 | 0;
 47925  i2 = i2 | 0;
 47926  i3 = i3 | 0;
 47927  switch (i2 | 0) {
 47928  case 5:
 47930    HEAPF32[i3 >> 2] = 0.0;
 47931    HEAPF32[i3 + 4 >> 2] = 0.0;
 47932    HEAPF32[i3 + 8 >> 2] = -1.0;
 47933    HEAPF32[i3 + 12 >> 2] = 0.0;
 47934    return;
 47936  case 3:
 47938    HEAPF32[i3 >> 2] = 0.0;
 47939    HEAPF32[i3 + 4 >> 2] = -1.0;
 47940    HEAPF32[i3 + 8 >> 2] = 0.0;
 47941    HEAPF32[i3 + 12 >> 2] = 0.0;
 47942    return;
 47944  case 1:
 47946    HEAPF32[i3 >> 2] = -1.0;
 47947    HEAPF32[i3 + 4 >> 2] = 0.0;
 47948    HEAPF32[i3 + 8 >> 2] = 0.0;
 47949    HEAPF32[i3 + 12 >> 2] = 0.0;
 47950    return;
 47952  case 2:
 47954    HEAPF32[i3 >> 2] = 0.0;
 47955    HEAPF32[i3 + 4 >> 2] = 1.0;
 47956    HEAPF32[i3 + 8 >> 2] = 0.0;
 47957    HEAPF32[i3 + 12 >> 2] = 0.0;
 47958    return;
 47960  case 0:
 47962    HEAPF32[i3 >> 2] = 1.0;
 47963    HEAPF32[i3 + 4 >> 2] = 0.0;
 47964    HEAPF32[i3 + 8 >> 2] = 0.0;
 47965    HEAPF32[i3 + 12 >> 2] = 0.0;
 47966    return;
 47968  case 4:
 47970    HEAPF32[i3 >> 2] = 0.0;
 47971    HEAPF32[i3 + 4 >> 2] = 0.0;
 47972    HEAPF32[i3 + 8 >> 2] = 1.0;
 47973    HEAPF32[i3 + 12 >> 2] = 0.0;
 47974    return;
 47976  default:
 47978    return;
 47982 function __ZN35btSequentialImpulseConstraintSolver33solveGroupCacheFriendlyIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10) {
 47983  i1 = i1 | 0;
 47984  i2 = i2 | 0;
 47985  i3 = i3 | 0;
 47986  i4 = i4 | 0;
 47987  i5 = i5 | 0;
 47988  i6 = i6 | 0;
 47989  i7 = i7 | 0;
 47990  i8 = i8 | 0;
 47991  i9 = i9 | 0;
 47992  i10 = i10 | 0;
 47993  var i11 = 0;
 47994  __ZN15CProfileManager13Start_ProfileEPKc(736);
 47995  FUNCTION_TABLE_viiiiiiiiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 24 >> 2] & 3](i1, i2, i3, i4, i5, i6, i7, i8, i9, i10);
 47996  i10 = i8 + 20 | 0;
 47997  if ((HEAP32[i10 >> 2] | 0) > 0) {
 47998   i11 = 0;
 47999  } else {
 48000   __ZN15CProfileManager12Stop_ProfileEv();
 48001   return +0.0;
 48003  do {
 48004   +__ZN35btSequentialImpulseConstraintSolver20solveSingleIterationEiPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc(i1, i11, 0, 0, 0, 0, i6, i7, i8, 0, 0);
 48005   i11 = i11 + 1 | 0;
 48006  } while ((i11 | 0) < (HEAP32[i10 >> 2] | 0));
 48007  __ZN15CProfileManager12Stop_ProfileEv();
 48008  return +0.0;
 48010 function __ZN20btAlignedObjectArrayI6btFaceE7destroyEii(i1, i2, i3) {
 48011  i1 = i1 | 0;
 48012  i2 = i2 | 0;
 48013  i3 = i3 | 0;
 48014  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
 48015  if ((i2 | 0) >= (i3 | 0)) {
 48016   return;
 48018  i4 = i1 + 12 | 0;
 48019  i1 = i2;
 48020  do {
 48021   i2 = HEAP32[i4 >> 2] | 0;
 48022   i5 = i2 + (i1 * 56 | 0) + 24 | 0;
 48023   i6 = i2 + (i1 * 56 | 0) + 32 | 0;
 48024   i7 = HEAP32[i6 >> 2] | 0;
 48025   i8 = i2 + (i1 * 56 | 0) + 36 | 0;
 48026   if ((i7 | 0) != 0) {
 48027    if ((HEAP8[i8] | 0) != 0) {
 48028     __Z21btAlignedFreeInternalPv(i7);
 48030    HEAP32[i6 >> 2] = 0;
 48032   HEAP8[i8] = 1;
 48033   HEAP32[i6 >> 2] = 0;
 48034   HEAP32[i5 >> 2] = 0;
 48035   HEAP32[i2 + (i1 * 56 | 0) + 28 >> 2] = 0;
 48036   i5 = i2 + (i1 * 56 | 0) + 4 | 0;
 48037   i6 = i2 + (i1 * 56 | 0) + 12 | 0;
 48038   i8 = HEAP32[i6 >> 2] | 0;
 48039   i7 = i2 + (i1 * 56 | 0) + 16 | 0;
 48040   if ((i8 | 0) != 0) {
 48041    if ((HEAP8[i7] | 0) != 0) {
 48042     __Z21btAlignedFreeInternalPv(i8);
 48044    HEAP32[i6 >> 2] = 0;
 48046   HEAP8[i7] = 1;
 48047   HEAP32[i6 >> 2] = 0;
 48048   HEAP32[i5 >> 2] = 0;
 48049   HEAP32[i2 + (i1 * 56 | 0) + 8 >> 2] = 0;
 48050   i1 = i1 + 1 | 0;
 48051  } while ((i1 | 0) < (i3 | 0));
 48052  return;
 48054 function __ZNK20btConvexHullInternal6Int1288toScalarEv(i1) {
 48055  i1 = i1 | 0;
 48056  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, d7 = 0.0, i8 = 0, i9 = 0, i10 = 0;
 48057  i2 = STACKTOP;
 48058  STACKTOP = STACKTOP + 16 | 0;
 48059  i3 = i2 | 0;
 48060  i4 = i1 + 8 | 0;
 48061  i5 = HEAP32[i4 >> 2] | 0;
 48062  i6 = HEAP32[i4 + 4 >> 2] | 0;
 48063  i4 = -1;
 48064  if ((i6 | 0) > (i4 | 0) | (i6 | 0) == (i4 | 0) & i5 >>> 0 > -1 >>> 0) {
 48065   i4 = i1 | 0;
 48066   d7 = (+(i5 >>> 0) + +(i6 >>> 0) * 4294967296.0) * 18446744073709552000.0 + (+((HEAP32[i4 >> 2] | 0) >>> 0) + +((HEAP32[i4 + 4 >> 2] | 0) >>> 0) * 4294967296.0);
 48067   STACKTOP = i2;
 48068   return +d7;
 48069  } else {
 48070   i4 = i1 | 0;
 48071   i1 = HEAP32[i4 >> 2] | 0;
 48072   i8 = HEAP32[i4 + 4 >> 2] | 0;
 48073   i4 = _i64Subtract(0, 0, i1, i8) | 0;
 48074   i9 = tempRet0;
 48075   i10 = _i64Add((i1 | 0) == 0 & (i8 | 0) == 0 & 1, 0, ~i5, ~i6) | 0;
 48076   i6 = i3 | 0;
 48077   HEAP32[i6 >> 2] = i4;
 48078   HEAP32[i6 + 4 >> 2] = i9;
 48079   i9 = i3 + 8 | 0;
 48080   HEAP32[i9 >> 2] = i10;
 48081   HEAP32[i9 + 4 >> 2] = tempRet0;
 48082   d7 = -0.0 - +__ZNK20btConvexHullInternal6Int1288toScalarEv(i3);
 48083   STACKTOP = i2;
 48084   return +d7;
 48086  return 0.0;
 48088 function __ZN10btBoxShape15setLocalScalingERK9btVector3(i1, i2) {
 48089  i1 = i1 | 0;
 48090  i2 = i2 | 0;
 48091  var i3 = 0, i4 = 0, d5 = 0.0, d6 = 0.0, d7 = 0.0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0, i12 = 0, d13 = 0.0, i14 = 0, d15 = 0.0, d16 = 0.0;
 48092  i3 = i1 | 0;
 48093  i4 = i1;
 48094  d5 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i4 >> 2] | 0) + 44 >> 2] & 7](i3);
 48095  d6 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i4 >> 2] | 0) + 44 >> 2] & 7](i3);
 48096  d7 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i4 >> 2] | 0) + 44 >> 2] & 7](i3);
 48097  i4 = i1 + 28 | 0;
 48098  i8 = i1 + 32 | 0;
 48099  i9 = i1 + 36 | 0;
 48100  i10 = i1 + 12 | 0;
 48101  d11 = (d5 + +HEAPF32[i4 >> 2]) / +HEAPF32[i10 >> 2];
 48102  i12 = i1 + 16 | 0;
 48103  d13 = (d6 + +HEAPF32[i8 >> 2]) / +HEAPF32[i12 >> 2];
 48104  i14 = i1 + 20 | 0;
 48105  d15 = (d7 + +HEAPF32[i9 >> 2]) / +HEAPF32[i14 >> 2];
 48106  __ZN21btConvexInternalShape15setLocalScalingERK9btVector3(i3, i2);
 48107  d16 = d13 * +HEAPF32[i12 >> 2] - d6;
 48108  d6 = d15 * +HEAPF32[i14 >> 2] - d7;
 48109  HEAPF32[i4 >> 2] = d11 * +HEAPF32[i10 >> 2] - d5;
 48110  HEAPF32[i8 >> 2] = d16;
 48111  HEAPF32[i9 >> 2] = d6;
 48112  HEAPF32[i1 + 40 >> 2] = 0.0;
 48113  return;
 48115 function __ZNK15btTriangleShape32getPreferredPenetrationDirectionEiR9btVector3(i1, i2, i3) {
 48116  i1 = i1 | 0;
 48117  i2 = i2 | 0;
 48118  i3 = i3 | 0;
 48119  var d4 = 0.0, d5 = 0.0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, i12 = 0, i13 = 0;
 48120  d4 = +HEAPF32[i1 + 56 >> 2];
 48121  d5 = +HEAPF32[i1 + 72 >> 2] - d4;
 48122  d6 = +HEAPF32[i1 + 60 >> 2];
 48123  d7 = +HEAPF32[i1 + 76 >> 2] - d6;
 48124  d8 = +HEAPF32[i1 + 64 >> 2];
 48125  d9 = +HEAPF32[i1 + 80 >> 2] - d8;
 48126  d10 = +HEAPF32[i1 + 88 >> 2] - d4;
 48127  d4 = +HEAPF32[i1 + 92 >> 2] - d6;
 48128  d6 = +HEAPF32[i1 + 96 >> 2] - d8;
 48129  d8 = d7 * d6 - d9 * d4;
 48130  d11 = d9 * d10 - d5 * d6;
 48131  d6 = d5 * d4 - d7 * d10;
 48132  i1 = i3 | 0;
 48133  i12 = i3 + 4 | 0;
 48134  i13 = i3 + 8 | 0;
 48135  HEAPF32[i3 + 12 >> 2] = 0.0;
 48136  d10 = 1.0 / +Math_sqrt(+(d6 * d6 + (d8 * d8 + d11 * d11)));
 48137  d7 = d10 * d8;
 48138  HEAPF32[i1 >> 2] = d7;
 48139  d8 = d10 * d11;
 48140  HEAPF32[i12 >> 2] = d8;
 48141  d11 = d6 * d10;
 48142  HEAPF32[i13 >> 2] = d11;
 48143  if ((i2 | 0) == 0) {
 48144   return;
 48146  HEAPF32[i1 >> 2] = d7 * -1.0;
 48147  HEAPF32[i12 >> 2] = d8 * -1.0;
 48148  HEAPF32[i13 >> 2] = d11 * -1.0;
 48149  return;
 48151 function __ZNK10__cxxabiv117__class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib(i1, i2, i3, i4, i5, i6) {
 48152  i1 = i1 | 0;
 48153  i2 = i2 | 0;
 48154  i3 = i3 | 0;
 48155  i4 = i4 | 0;
 48156  i5 = i5 | 0;
 48157  i6 = i6 | 0;
 48158  var i7 = 0;
 48159  if ((HEAP32[i2 + 8 >> 2] | 0) != (i1 | 0)) {
 48160   return;
 48162  HEAP8[i2 + 53 | 0] = 1;
 48163  if ((HEAP32[i2 + 4 >> 2] | 0) != (i4 | 0)) {
 48164   return;
 48166  HEAP8[i2 + 52 | 0] = 1;
 48167  i4 = i2 + 16 | 0;
 48168  i1 = HEAP32[i4 >> 2] | 0;
 48169  if ((i1 | 0) == 0) {
 48170   HEAP32[i4 >> 2] = i3;
 48171   HEAP32[i2 + 24 >> 2] = i5;
 48172   HEAP32[i2 + 36 >> 2] = 1;
 48173   if (!((HEAP32[i2 + 48 >> 2] | 0) == 1 & (i5 | 0) == 1)) {
 48174    return;
 48176   HEAP8[i2 + 54 | 0] = 1;
 48177   return;
 48179  if ((i1 | 0) != (i3 | 0)) {
 48180   i3 = i2 + 36 | 0;
 48181   HEAP32[i3 >> 2] = (HEAP32[i3 >> 2] | 0) + 1;
 48182   HEAP8[i2 + 54 | 0] = 1;
 48183   return;
 48185  i3 = i2 + 24 | 0;
 48186  i1 = HEAP32[i3 >> 2] | 0;
 48187  if ((i1 | 0) == 2) {
 48188   HEAP32[i3 >> 2] = i5;
 48189   i7 = i5;
 48190  } else {
 48191   i7 = i1;
 48193  if (!((HEAP32[i2 + 48 >> 2] | 0) == 1 & (i7 | 0) == 1)) {
 48194   return;
 48196  HEAP8[i2 + 54 | 0] = 1;
 48197  return;
 48199 function __ZNK10btBoxShape8getPlaneER9btVector3S1_i(i1, i2, i3, i4) {
 48200  i1 = i1 | 0;
 48201  i2 = i2 | 0;
 48202  i3 = i3 | 0;
 48203  i4 = i4 | 0;
 48204  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, d9 = 0.0, d10 = 0.0, d11 = 0.0;
 48205  i5 = STACKTOP;
 48206  STACKTOP = STACKTOP + 48 | 0;
 48207  i6 = i5 | 0;
 48208  i7 = i5 + 16 | 0;
 48209  i8 = i5 + 32 | 0;
 48210  FUNCTION_TABLE_viii[HEAP32[(HEAP32[i1 >> 2] | 0) + 116 >> 2] & 127](i1, i6, i4);
 48211  d9 = +HEAPF32[i6 >> 2];
 48212  d10 = +HEAPF32[i6 + 4 >> 2];
 48213  d11 = +HEAPF32[i6 + 8 >> 2];
 48214  HEAPF32[i2 >> 2] = d9;
 48215  HEAPF32[i2 + 4 >> 2] = d10;
 48216  HEAPF32[i2 + 8 >> 2] = d11;
 48217  HEAPF32[i2 + 12 >> 2] = 0.0;
 48218  i2 = HEAP32[(HEAP32[i1 >> 2] | 0) + 60 >> 2] | 0;
 48219  HEAPF32[i8 >> 2] = -0.0 - d9;
 48220  HEAPF32[i8 + 4 >> 2] = -0.0 - d10;
 48221  HEAPF32[i8 + 8 >> 2] = -0.0 - d11;
 48222  HEAPF32[i8 + 12 >> 2] = 0.0;
 48223  FUNCTION_TABLE_viii[i2 & 127](i7, i1, i8);
 48224  i8 = i3;
 48225  i3 = i7;
 48226  HEAP32[i8 >> 2] = HEAP32[i3 >> 2];
 48227  HEAP32[i8 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
 48228  HEAP32[i8 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
 48229  HEAP32[i8 + 12 >> 2] = HEAP32[i3 + 12 >> 2];
 48230  STACKTOP = i5;
 48231  return;
 48233 function __ZN28btHashedOverlappingPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher(i1, i2, i3) {
 48234  i1 = i1 | 0;
 48235  i2 = i2 | 0;
 48236  i3 = i3 | 0;
 48237  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0;
 48238  i4 = i1 + 8 | 0;
 48239  if ((HEAP32[i4 >> 2] | 0) <= 0) {
 48240   return;
 48242  i5 = i1 + 16 | 0;
 48243  i6 = i2;
 48244  i7 = i1;
 48245  i8 = 0;
 48246  L1889 : while (1) {
 48247   while (1) {
 48248    i9 = HEAP32[i5 >> 2] | 0;
 48249    i10 = i9 + (i8 << 4) | 0;
 48250    if (!(FUNCTION_TABLE_iii[HEAP32[(HEAP32[i6 >> 2] | 0) + 8 >> 2] & 63](i2, i10) | 0)) {
 48251     break;
 48253    FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[i7 >> 2] | 0) + 12 >> 2] & 31](i1, HEAP32[i10 >> 2] | 0, HEAP32[i9 + (i8 << 4) + 4 >> 2] | 0, i3) | 0;
 48254    HEAP32[2986] = (HEAP32[2986] | 0) - 1;
 48255    if ((i8 | 0) >= (HEAP32[i4 >> 2] | 0)) {
 48256     i11 = 1636;
 48257     break L1889;
 48260   i9 = i8 + 1 | 0;
 48261   if ((i9 | 0) < (HEAP32[i4 >> 2] | 0)) {
 48262    i8 = i9;
 48263   } else {
 48264    i11 = 1635;
 48265    break;
 48268  if ((i11 | 0) == 1635) {
 48269   return;
 48270  } else if ((i11 | 0) == 1636) {
 48271   return;
 48274 function __ZNK10__cxxabiv117__class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib(i1, i2, i3, i4, i5) {
 48275  i1 = i1 | 0;
 48276  i2 = i2 | 0;
 48277  i3 = i3 | 0;
 48278  i4 = i4 | 0;
 48279  i5 = i5 | 0;
 48280  if ((HEAP32[i2 + 8 >> 2] | 0) == (i1 | 0)) {
 48281   if ((HEAP32[i2 + 4 >> 2] | 0) != (i3 | 0)) {
 48282    return;
 48284   i5 = i2 + 28 | 0;
 48285   if ((HEAP32[i5 >> 2] | 0) == 1) {
 48286    return;
 48288   HEAP32[i5 >> 2] = i4;
 48289   return;
 48291  if ((HEAP32[i2 >> 2] | 0) != (i1 | 0)) {
 48292   return;
 48294  do {
 48295   if ((HEAP32[i2 + 16 >> 2] | 0) != (i3 | 0)) {
 48296    i1 = i2 + 20 | 0;
 48297    if ((HEAP32[i1 >> 2] | 0) == (i3 | 0)) {
 48298     break;
 48300    HEAP32[i2 + 32 >> 2] = i4;
 48301    HEAP32[i1 >> 2] = i3;
 48302    i1 = i2 + 40 | 0;
 48303    HEAP32[i1 >> 2] = (HEAP32[i1 >> 2] | 0) + 1;
 48304    do {
 48305     if ((HEAP32[i2 + 36 >> 2] | 0) == 1) {
 48306      if ((HEAP32[i2 + 24 >> 2] | 0) != 2) {
 48307       break;
 48309      HEAP8[i2 + 54 | 0] = 1;
 48311    } while (0);
 48312    HEAP32[i2 + 44 >> 2] = 4;
 48313    return;
 48315  } while (0);
 48316  if ((i4 | 0) != 1) {
 48317   return;
 48319  HEAP32[i2 + 32 >> 2] = 1;
 48320  return;
 48322 function __ZNK15btTriangleShape16getPlaneEquationEiR9btVector3S1_(i1, i2, i3, i4) {
 48323  i1 = i1 | 0;
 48324  i2 = i2 | 0;
 48325  i3 = i3 | 0;
 48326  i4 = i4 | 0;
 48327  var d5 = 0.0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0, d12 = 0.0;
 48328  d5 = +HEAPF32[i1 + 56 >> 2];
 48329  d6 = +HEAPF32[i1 + 72 >> 2] - d5;
 48330  d7 = +HEAPF32[i1 + 60 >> 2];
 48331  d8 = +HEAPF32[i1 + 76 >> 2] - d7;
 48332  d9 = +HEAPF32[i1 + 64 >> 2];
 48333  d10 = +HEAPF32[i1 + 80 >> 2] - d9;
 48334  d11 = +HEAPF32[i1 + 88 >> 2] - d5;
 48335  d5 = +HEAPF32[i1 + 92 >> 2] - d7;
 48336  d7 = +HEAPF32[i1 + 96 >> 2] - d9;
 48337  d9 = d8 * d7 - d10 * d5;
 48338  d12 = d10 * d11 - d6 * d7;
 48339  d7 = d6 * d5 - d8 * d11;
 48340  HEAPF32[i3 + 12 >> 2] = 0.0;
 48341  d11 = 1.0 / +Math_sqrt(+(d7 * d7 + (d9 * d9 + d12 * d12)));
 48342  HEAPF32[i3 >> 2] = d11 * d9;
 48343  HEAPF32[i3 + 4 >> 2] = d11 * d12;
 48344  HEAPF32[i3 + 8 >> 2] = d7 * d11;
 48345  i3 = i4;
 48346  i4 = i1 + 56 | 0;
 48347  HEAP32[i3 >> 2] = HEAP32[i4 >> 2];
 48348  HEAP32[i3 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
 48349  HEAP32[i3 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
 48350  HEAP32[i3 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
 48351  return;
 48353 function __ZN23btConvexConvexAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1, i2, i3, i4) {
 48354  i1 = i1 | 0;
 48355  i2 = i2 | 0;
 48356  i3 = i3 | 0;
 48357  i4 = i4 | 0;
 48358  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
 48359  i5 = HEAP32[i2 >> 2] | 0;
 48360  i6 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i5 >> 2] | 0) + 56 >> 2] & 63](i5, 36) | 0;
 48361  if ((i6 | 0) == 0) {
 48362   i7 = 0;
 48363   i8 = i7 | 0;
 48364   return i8 | 0;
 48366  i5 = HEAP32[i2 + 4 >> 2] | 0;
 48367  i9 = HEAP32[i1 + 12 >> 2] | 0;
 48368  i10 = HEAP32[i1 + 8 >> 2] | 0;
 48369  i11 = HEAP32[i1 + 16 >> 2] | 0;
 48370  i12 = HEAP32[i1 + 20 >> 2] | 0;
 48371  __ZN30btActivatingCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i6, i2, i3, i4);
 48372  HEAP32[i6 >> 2] = 3464;
 48373  HEAP32[i6 + 8 >> 2] = i9;
 48374  HEAP32[i6 + 12 >> 2] = i10;
 48375  HEAP8[i6 + 16 | 0] = 0;
 48376  HEAP32[i6 + 20 >> 2] = i5;
 48377  HEAP8[i6 + 24 | 0] = 0;
 48378  HEAP32[i6 + 28 >> 2] = i11;
 48379  HEAP32[i6 + 32 >> 2] = i12;
 48380  i7 = i6;
 48381  i8 = i7 | 0;
 48382  return i8 | 0;
 48384 function __ZNK10btBoxShape7getEdgeEiR9btVector3S1_(i1, i2, i3, i4) {
 48385  i1 = i1 | 0;
 48386  i2 = i2 | 0;
 48387  i3 = i3 | 0;
 48388  i4 = i4 | 0;
 48389  var i5 = 0, i6 = 0;
 48390  switch (i2 | 0) {
 48391  case 0:
 48393    i5 = 1;
 48394    i6 = 0;
 48395    break;
 48397  case 11:
 48399    i5 = 7;
 48400    i6 = 6;
 48401    break;
 48403  case 2:
 48405    i5 = 3;
 48406    i6 = 1;
 48407    break;
 48409  case 5:
 48411    i5 = i2;
 48412    i6 = 1;
 48413    break;
 48415  case 4:
 48417    i5 = i2;
 48418    i6 = 0;
 48419    break;
 48421  case 3:
 48423    i5 = i2;
 48424    i6 = 2;
 48425    break;
 48427  case 6:
 48429    i5 = i2;
 48430    i6 = 2;
 48431    break;
 48433  case 7:
 48435    i5 = i2;
 48436    i6 = 3;
 48437    break;
 48439  case 1:
 48441    i5 = 2;
 48442    i6 = 0;
 48443    break;
 48445  case 8:
 48447    i5 = 5;
 48448    i6 = 4;
 48449    break;
 48451  case 9:
 48453    i5 = 6;
 48454    i6 = 4;
 48455    break;
 48457  case 10:
 48459    i5 = 7;
 48460    i6 = 5;
 48461    break;
 48463  default:
 48465    i5 = 0;
 48466    i6 = 0;
 48469  i2 = i1;
 48470  FUNCTION_TABLE_viii[HEAP32[(HEAP32[i2 >> 2] | 0) + 100 >> 2] & 127](i1, i6, i3);
 48471  FUNCTION_TABLE_viii[HEAP32[(HEAP32[i2 >> 2] | 0) + 100 >> 2] & 127](i1, i5, i4);
 48472  return;
 48474 function __ZN16btDbvtBroadphaseC2EP22btOverlappingPairCache(i1, i2) {
 48475  i1 = i1 | 0;
 48476  i2 = i2 | 0;
 48477  var i3 = 0, i4 = 0, i5 = 0;
 48478  HEAP32[i1 >> 2] = 4392;
 48479  __ZN6btDbvtC2Ev(i1 + 4 | 0);
 48480  __ZN6btDbvtC2Ev(i1 + 44 | 0);
 48481  HEAP8[i1 + 153 | 0] = 0;
 48482  HEAP8[i1 + 154 | 0] = 1;
 48483  i3 = (i2 | 0) != 0;
 48484  HEAP8[i1 + 152 | 0] = i3 & 1 ^ 1;
 48485  HEAPF32[i1 + 100 >> 2] = 0.0;
 48486  HEAP32[i1 + 104 >> 2] = 0;
 48487  HEAP32[i1 + 124 >> 2] = 0;
 48488  HEAP32[i1 + 108 >> 2] = 1;
 48489  HEAP32[i1 + 112 >> 2] = 0;
 48490  HEAP32[i1 + 116 >> 2] = 10;
 48491  HEAP32[i1 + 120 >> 2] = 1;
 48492  HEAP32[i1 + 128 >> 2] = 0;
 48493  HEAP32[i1 + 132 >> 2] = 0;
 48494  HEAPF32[i1 + 136 >> 2] = 0.0;
 48495  if (i3) {
 48496   i4 = i2;
 48497  } else {
 48498   i2 = __Z22btAlignedAllocInternalji(76, 16) | 0;
 48499   if ((i2 | 0) == 0) {
 48500    i5 = 0;
 48501   } else {
 48502    i3 = i2;
 48503    __ZN28btHashedOverlappingPairCacheC2Ev(i3);
 48504    i5 = i3;
 48506   i4 = i5 | 0;
 48508  HEAP32[i1 + 96 >> 2] = i4;
 48509  HEAP32[i1 + 148 >> 2] = 0;
 48510  HEAP32[i1 + 140 >> 2] = 0;
 48511  HEAP32[i1 + 144 >> 2] = 0;
 48512  _memset(i1 + 84 | 0, 0, 12);
 48513  return;
 48515 function __ZN16btDbvtBroadphase8aabbTestERK9btVector3S2_R24btBroadphaseAabbCallback(i1, i2, i3, i4) {
 48516  i1 = i1 | 0;
 48517  i2 = i2 | 0;
 48518  i3 = i3 | 0;
 48519  i4 = i4 | 0;
 48520  var i5 = 0, i6 = 0, i7 = 0, i8 = 0;
 48521  i5 = STACKTOP;
 48522  STACKTOP = STACKTOP + 40 | 0;
 48523  i6 = i5 | 0;
 48524  i7 = i5 + 8 | 0;
 48525  HEAP32[i6 >> 2] = 3936;
 48526  HEAP32[i6 + 4 >> 2] = i4;
 48527  i4 = i7;
 48528  i8 = i2;
 48529  HEAP32[i4 >> 2] = HEAP32[i8 >> 2];
 48530  HEAP32[i4 + 4 >> 2] = HEAP32[i8 + 4 >> 2];
 48531  HEAP32[i4 + 8 >> 2] = HEAP32[i8 + 8 >> 2];
 48532  HEAP32[i4 + 12 >> 2] = HEAP32[i8 + 12 >> 2];
 48533  i8 = i7 + 16 | 0;
 48534  i4 = i3;
 48535  HEAP32[i8 >> 2] = HEAP32[i4 >> 2];
 48536  HEAP32[i8 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
 48537  HEAP32[i8 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
 48538  HEAP32[i8 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
 48539  i4 = i6 | 0;
 48540  __ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(0, HEAP32[i1 + 4 >> 2] | 0, i7, i4);
 48541  __ZN6btDbvt9collideTVEPK10btDbvtNodeRK12btDbvtAabbMmRNS_8ICollideE(0, HEAP32[i1 + 44 >> 2] | 0, i7, i4);
 48542  STACKTOP = i5;
 48543  return;
 48545 function __ZN10btBoxShape9setMarginEf(i1, d2) {
 48546  i1 = i1 | 0;
 48547  d2 = +d2;
 48548  var i3 = 0, i4 = 0, d5 = 0.0, d6 = 0.0, d7 = 0.0, i8 = 0, d9 = 0.0, i10 = 0, i11 = 0, d12 = 0.0;
 48549  i3 = i1 | 0;
 48550  i4 = i1;
 48551  d5 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i4 >> 2] | 0) + 44 >> 2] & 7](i3);
 48552  d6 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i4 >> 2] | 0) + 44 >> 2] & 7](i3);
 48553  d7 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i4 >> 2] | 0) + 44 >> 2] & 7](i3);
 48554  i8 = i1 + 28 | 0;
 48555  d9 = d5 + +HEAPF32[i8 >> 2];
 48556  i10 = i1 + 32 | 0;
 48557  d5 = d6 + +HEAPF32[i10 >> 2];
 48558  i11 = i1 + 36 | 0;
 48559  d6 = d7 + +HEAPF32[i11 >> 2];
 48560  HEAPF32[i1 + 44 >> 2] = d2;
 48561  d2 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i4 >> 2] | 0) + 44 >> 2] & 7](i3);
 48562  d7 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i4 >> 2] | 0) + 44 >> 2] & 7](i3);
 48563  d12 = d6 - +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i4 >> 2] | 0) + 44 >> 2] & 7](i3);
 48564  HEAPF32[i8 >> 2] = d9 - d2;
 48565  HEAPF32[i10 >> 2] = d5 - d7;
 48566  HEAPF32[i11 >> 2] = d12;
 48567  HEAPF32[i1 + 40 >> 2] = 0.0;
 48568  return;
 48570 function __ZNK21btConvexInternalShape24localGetSupportingVertexERK9btVector3(i1, i2, i3) {
 48571  i1 = i1 | 0;
 48572  i2 = i2 | 0;
 48573  i3 = i3 | 0;
 48574  var i4 = 0, d5 = 0.0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0;
 48575  FUNCTION_TABLE_viii[HEAP32[(HEAP32[i2 >> 2] | 0) + 64 >> 2] & 127](i1, i2 | 0, i3);
 48576  i4 = i2;
 48577  if (+FUNCTION_TABLE_fi[HEAP32[(HEAP32[i4 >> 2] | 0) + 44 >> 2] & 7](i2) == 0.0) {
 48578   return;
 48580  d5 = +HEAPF32[i3 >> 2];
 48581  d6 = +HEAPF32[i3 + 4 >> 2];
 48582  d7 = +HEAPF32[i3 + 8 >> 2];
 48583  i3 = d5 * d5 + d6 * d6 + d7 * d7 < 1.4210854715202004e-14;
 48584  d8 = i3 ? -1.0 : d7;
 48585  d7 = i3 ? -1.0 : d6;
 48586  d6 = i3 ? -1.0 : d5;
 48587  d5 = 1.0 / +Math_sqrt(+(d8 * d8 + (d6 * d6 + d7 * d7)));
 48588  d9 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i4 >> 2] | 0) + 44 >> 2] & 7](i2);
 48589  i2 = i1 | 0;
 48590  HEAPF32[i2 >> 2] = d5 * d6 * d9 + +HEAPF32[i2 >> 2];
 48591  i2 = i1 + 4 | 0;
 48592  HEAPF32[i2 >> 2] = d9 * d5 * d7 + +HEAPF32[i2 >> 2];
 48593  i2 = i1 + 8 | 0;
 48594  HEAPF32[i2 >> 2] = d9 * d5 * d8 + +HEAPF32[i2 >> 2];
 48595  return;
 48597 function __ZN31btConvexPlaneCollisionAlgorithmC2EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_bii(i1, i2, i3, i4, i5, i6, i7, i8) {
 48598  i1 = i1 | 0;
 48599  i2 = i2 | 0;
 48600  i3 = i3 | 0;
 48601  i4 = i4 | 0;
 48602  i5 = i5 | 0;
 48603  i6 = i6 | 0;
 48604  i7 = i7 | 0;
 48605  i8 = i8 | 0;
 48606  var i9 = 0;
 48607  __ZN20btCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfo(i1 | 0, i3);
 48608  HEAP32[i1 >> 2] = 2656;
 48609  i3 = i1 + 8 | 0;
 48610  HEAP8[i3] = 0;
 48611  i9 = i1 + 12 | 0;
 48612  HEAP32[i9 >> 2] = i2;
 48613  HEAP8[i1 + 16 | 0] = i6 & 1;
 48614  HEAP32[i1 + 20 >> 2] = i7;
 48615  HEAP32[i1 + 24 >> 2] = i8;
 48616  i8 = i6 ? i5 : i4;
 48617  i7 = i6 ? i4 : i5;
 48618  if ((i2 | 0) != 0) {
 48619   return;
 48621  i2 = i1 + 4 | 0;
 48622  i1 = HEAP32[i2 >> 2] | 0;
 48623  if (!(FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 24 >> 2] & 31](i1, i8, i7) | 0)) {
 48624   return;
 48626  i1 = HEAP32[i2 >> 2] | 0;
 48627  HEAP32[i9 >> 2] = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] & 31](i1, i8, i7) | 0;
 48628  HEAP8[i3] = 1;
 48629  return;
 48631 function __ZN23btDiscreteDynamicsWorld10setGravityERK9btVector3(i1, i2) {
 48632  i1 = i1 | 0;
 48633  i2 = i2 | 0;
 48634  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
 48635  i3 = i1 + 220 | 0;
 48636  i4 = i2;
 48637  HEAP32[i3 >> 2] = HEAP32[i4 >> 2];
 48638  HEAP32[i3 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
 48639  HEAP32[i3 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
 48640  HEAP32[i3 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
 48641  i4 = i1 + 204 | 0;
 48642  i3 = HEAP32[i4 >> 2] | 0;
 48643  if ((i3 | 0) <= 0) {
 48644   return;
 48646  i5 = i1 + 212 | 0;
 48647  i1 = 0;
 48648  i6 = i3;
 48649  while (1) {
 48650   i3 = HEAP32[(HEAP32[i5 >> 2] | 0) + (i1 << 2) >> 2] | 0;
 48651   i7 = HEAP32[i3 + 216 >> 2] | 0;
 48652   do {
 48653    if ((i7 | 0) == 5 | (i7 | 0) == 2) {
 48654     i8 = i6;
 48655    } else {
 48656     if ((HEAP32[i3 + 496 >> 2] & 1 | 0) != 0) {
 48657      i8 = i6;
 48658      break;
 48660     __ZN11btRigidBody10setGravityERK9btVector3(i3, i2);
 48661     i8 = HEAP32[i4 >> 2] | 0;
 48663   } while (0);
 48664   i3 = i1 + 1 | 0;
 48665   if ((i3 | 0) < (i8 | 0)) {
 48666    i1 = i3;
 48667    i6 = i8;
 48668   } else {
 48669    break;
 48672  return;
 48674 function __ZN21btCollisionDispatcherC2EP24btCollisionConfiguration(i1, i2) {
 48675  i1 = i1 | 0;
 48676  i2 = i2 | 0;
 48677  var i3 = 0, i4 = 0, i5 = 0;
 48678  HEAP32[i1 >> 2] = 3784;
 48679  HEAP32[i1 + 4 >> 2] = 2;
 48680  HEAP8[i1 + 24 | 0] = 1;
 48681  HEAP32[i1 + 20 >> 2] = 0;
 48682  HEAP32[i1 + 12 >> 2] = 0;
 48683  HEAP32[i1 + 16 >> 2] = 0;
 48684  HEAP32[i1 + 28 >> 2] = 4312;
 48685  _memset(i1 + 172 | 0, -1 | 0, 16);
 48686  i3 = i1 + 5384 | 0;
 48687  HEAP32[i3 >> 2] = i2;
 48688  HEAP32[i1 + 188 >> 2] = 20;
 48689  i4 = i2;
 48690  HEAP32[i1 + 192 >> 2] = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] & 127](i2) | 0;
 48691  HEAP32[i1 + 196 >> 2] = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i4 >> 2] | 0) + 8 >> 2] & 127](i2) | 0;
 48692  i2 = 0;
 48693  do {
 48694   i4 = 0;
 48695   do {
 48696    i5 = HEAP32[i3 >> 2] | 0;
 48697    HEAP32[i1 + 200 + (i2 * 144 | 0) + (i4 << 2) >> 2] = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i5 >> 2] | 0) + 20 >> 2] & 31](i5, i2, i4) | 0;
 48698    i4 = i4 + 1 | 0;
 48699   } while ((i4 | 0) < 36);
 48700   i2 = i2 + 1 | 0;
 48701  } while ((i2 | 0) < 36);
 48702  return;
 48704 function __ZN16btCollisionWorldC2EP12btDispatcherP21btBroadphaseInterfaceP24btCollisionConfiguration(i1, i2, i3, i4) {
 48705  i1 = i1 | 0;
 48706  i2 = i2 | 0;
 48707  i3 = i3 | 0;
 48708  i4 = i4 | 0;
 48709  HEAP32[i1 >> 2] = 4464;
 48710  HEAP8[i1 + 20 | 0] = 1;
 48711  HEAP32[i1 + 16 >> 2] = 0;
 48712  HEAP32[i1 + 8 >> 2] = 0;
 48713  HEAP32[i1 + 12 >> 2] = 0;
 48714  HEAP32[i1 + 24 >> 2] = i2;
 48715  HEAPF32[i1 + 28 >> 2] = 0.0;
 48716  HEAP32[i1 + 32 >> 2] = 0;
 48717  HEAP32[i1 + 36 >> 2] = 1;
 48718  HEAPF32[i1 + 40 >> 2] = 1.0;
 48719  HEAP8[i1 + 44 | 0] = 1;
 48720  HEAP32[i1 + 48 >> 2] = 0;
 48721  HEAP8[i1 + 52 | 0] = 0;
 48722  HEAP8[i1 + 53 | 0] = 1;
 48723  HEAP8[i1 + 54 | 0] = 1;
 48724  HEAPF32[i1 + 56 >> 2] = .03999999910593033;
 48725  HEAP8[i1 + 60 | 0] = 0;
 48726  HEAPF32[i1 + 64 >> 2] = 0.0;
 48727  i2 = i1 + 68 | 0;
 48728  HEAP32[i2 >> 2] = 0;
 48729  HEAP32[i1 + 76 >> 2] = i3;
 48730  HEAP32[i1 + 80 >> 2] = 0;
 48731  HEAP8[i1 + 84 | 0] = 1;
 48732  i3 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i4 >> 2] | 0) + 16 >> 2] & 127](i4) | 0;
 48733  HEAP32[i1 + 72 >> 2] = i3;
 48734  HEAP32[i2 >> 2] = i3;
 48735  return;
 48737 function __ZN16btCollisionWorld33performDiscreteCollisionDetectionEv(i1) {
 48738  i1 = i1 | 0;
 48739  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
 48740  __ZN15CProfileManager13Start_ProfileEPKc(272);
 48741  FUNCTION_TABLE_vi[HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] & 511](i1);
 48742  __ZN15CProfileManager13Start_ProfileEPKc(208);
 48743  i2 = i1 + 76 | 0;
 48744  i3 = HEAP32[i2 >> 2] | 0;
 48745  i4 = i1 + 24 | 0;
 48746  FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 32 >> 2] & 127](i3, HEAP32[i4 >> 2] | 0);
 48747  __ZN15CProfileManager12Stop_ProfileEv();
 48748  i3 = HEAP32[i4 >> 2] | 0;
 48749  __ZN15CProfileManager13Start_ProfileEPKc(144);
 48750  if ((i3 | 0) != 0) {
 48751   i5 = HEAP32[(HEAP32[i3 >> 2] | 0) + 32 >> 2] | 0;
 48752   i6 = HEAP32[i2 >> 2] | 0;
 48753   i2 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i6 >> 2] | 0) + 36 >> 2] & 127](i6) | 0;
 48754   FUNCTION_TABLE_viiii[i5 & 127](i3, i2, i1 + 28 | 0, HEAP32[i4 >> 2] | 0);
 48756  __ZN15CProfileManager12Stop_ProfileEv();
 48757  __ZN15CProfileManager12Stop_ProfileEv();
 48758  return;
 48760 function __ZN16btCollisionWorld11updateAabbsEv(i1) {
 48761  i1 = i1 | 0;
 48762  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
 48763  __ZN15CProfileManager13Start_ProfileEPKc(440);
 48764  i2 = i1 + 8 | 0;
 48765  i3 = HEAP32[i2 >> 2] | 0;
 48766  if ((i3 | 0) <= 0) {
 48767   __ZN15CProfileManager12Stop_ProfileEv();
 48768   return;
 48770  i4 = i1 + 16 | 0;
 48771  i5 = i1 + 84 | 0;
 48772  i6 = 0;
 48773  i7 = i3;
 48774  while (1) {
 48775   i3 = HEAP32[(HEAP32[i4 >> 2] | 0) + (i6 << 2) >> 2] | 0;
 48776   if ((HEAP8[i5] | 0) == 0) {
 48777    i8 = HEAP32[i3 + 216 >> 2] | 0;
 48778    if ((i8 | 0) == 5 | (i8 | 0) == 2) {
 48779     i9 = i7;
 48780    } else {
 48781     i10 = 2061;
 48783   } else {
 48784    i10 = 2061;
 48786   if ((i10 | 0) == 2061) {
 48787    i10 = 0;
 48788    __ZN16btCollisionWorld16updateSingleAabbEP17btCollisionObject(i1, i3);
 48789    i9 = HEAP32[i2 >> 2] | 0;
 48791   i3 = i6 + 1 | 0;
 48792   if ((i3 | 0) < (i9 | 0)) {
 48793    i6 = i3;
 48794    i7 = i9;
 48795   } else {
 48796    break;
 48799  __ZN15CProfileManager12Stop_ProfileEv();
 48800  return;
 48802 function __ZNK10__cxxabiv117__class_type_info9can_catchEPKNS_16__shim_type_infoERPv(i1, i2, i3) {
 48803  i1 = i1 | 0;
 48804  i2 = i2 | 0;
 48805  i3 = i3 | 0;
 48806  var i4 = 0, i5 = 0, i6 = 0, i7 = 0;
 48807  i4 = STACKTOP;
 48808  STACKTOP = STACKTOP + 56 | 0;
 48809  i5 = i4 | 0;
 48810  if ((i1 | 0) == (i2 | 0)) {
 48811   i6 = 1;
 48812   STACKTOP = i4;
 48813   return i6 | 0;
 48815  if ((i2 | 0) == 0) {
 48816   i6 = 0;
 48817   STACKTOP = i4;
 48818   return i6 | 0;
 48820  i7 = ___dynamic_cast(i2, 10880, 10864, -1) | 0;
 48821  i2 = i7;
 48822  if ((i7 | 0) == 0) {
 48823   i6 = 0;
 48824   STACKTOP = i4;
 48825   return i6 | 0;
 48827  _memset(i5 | 0, 0, 56);
 48828  HEAP32[i5 >> 2] = i2;
 48829  HEAP32[i5 + 8 >> 2] = i1;
 48830  HEAP32[i5 + 12 >> 2] = -1;
 48831  HEAP32[i5 + 48 >> 2] = 1;
 48832  FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i7 >> 2] | 0) + 28 >> 2] & 127](i2, i5, HEAP32[i3 >> 2] | 0, 1);
 48833  if ((HEAP32[i5 + 24 >> 2] | 0) != 1) {
 48834   i6 = 0;
 48835   STACKTOP = i4;
 48836   return i6 | 0;
 48838  HEAP32[i3 >> 2] = HEAP32[i5 + 16 >> 2];
 48839  i6 = 1;
 48840  STACKTOP = i4;
 48841  return i6 | 0;
 48843 function __ZNK20btPersistentManifold13getCacheEntryERK15btManifoldPoint(i1, i2) {
 48844  i1 = i1 | 0;
 48845  i2 = i2 | 0;
 48846  var d3 = 0.0, i4 = 0, i5 = 0, d6 = 0.0, d7 = 0.0, d8 = 0.0, i9 = 0, d10 = 0.0, d11 = 0.0, d12 = 0.0, d13 = 0.0, i14 = 0, i15 = 0, i16 = 0;
 48847  d3 = +HEAPF32[i1 + 1120 >> 2];
 48848  i4 = HEAP32[i1 + 1116 >> 2] | 0;
 48849  if ((i4 | 0) <= 0) {
 48850   i5 = -1;
 48851   return i5 | 0;
 48853  d6 = +HEAPF32[i2 >> 2];
 48854  d7 = +HEAPF32[i2 + 4 >> 2];
 48855  d8 = +HEAPF32[i2 + 8 >> 2];
 48856  i2 = 0;
 48857  i9 = -1;
 48858  d10 = d3 * d3;
 48859  while (1) {
 48860   d3 = +HEAPF32[i1 + 4 + (i2 * 276 | 0) >> 2] - d6;
 48861   d11 = +HEAPF32[i1 + 4 + (i2 * 276 | 0) + 4 >> 2] - d7;
 48862   d12 = +HEAPF32[i1 + 4 + (i2 * 276 | 0) + 8 >> 2] - d8;
 48863   d13 = d3 * d3 + d11 * d11 + d12 * d12;
 48864   i14 = d13 < d10;
 48865   i15 = i14 ? i2 : i9;
 48866   i16 = i2 + 1 | 0;
 48867   if ((i16 | 0) < (i4 | 0)) {
 48868    i2 = i16;
 48869    i9 = i15;
 48870    d10 = i14 ? d13 : d10;
 48871   } else {
 48872    i5 = i15;
 48873    break;
 48876  return i5 | 0;
 48878 function __ZNK13btSphereShape7getAabbERK11btTransformR9btVector3S4_(i1, i2, i3, i4) {
 48879  i1 = i1 | 0;
 48880  i2 = i2 | 0;
 48881  i3 = i3 | 0;
 48882  i4 = i4 | 0;
 48883  var i5 = 0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, i10 = 0, d11 = 0.0;
 48884  i5 = i1;
 48885  d6 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i5 >> 2] | 0) + 44 >> 2] & 7](i1);
 48886  d7 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i5 >> 2] | 0) + 44 >> 2] & 7](i1);
 48887  d8 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i5 >> 2] | 0) + 44 >> 2] & 7](i1);
 48888  i1 = i2 + 48 | 0;
 48889  i5 = i2 + 52 | 0;
 48890  d9 = +HEAPF32[i5 >> 2] - d7;
 48891  i10 = i2 + 56 | 0;
 48892  d11 = +HEAPF32[i10 >> 2] - d8;
 48893  HEAPF32[i3 >> 2] = +HEAPF32[i1 >> 2] - d6;
 48894  HEAPF32[i3 + 4 >> 2] = d9;
 48895  HEAPF32[i3 + 8 >> 2] = d11;
 48896  HEAPF32[i3 + 12 >> 2] = 0.0;
 48897  d11 = d7 + +HEAPF32[i5 >> 2];
 48898  d7 = d8 + +HEAPF32[i10 >> 2];
 48899  HEAPF32[i4 >> 2] = d6 + +HEAPF32[i1 >> 2];
 48900  HEAPF32[i4 + 4 >> 2] = d11;
 48901  HEAPF32[i4 + 8 >> 2] = d7;
 48902  HEAPF32[i4 + 12 >> 2] = 0.0;
 48903  return;
 48905 function __ZN15CProfileManager12Stop_ProfileEv() {
 48906  var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
 48907  i1 = STACKTOP;
 48908  STACKTOP = STACKTOP + 8 | 0;
 48909  i2 = i1 | 0;
 48910  i3 = HEAP32[2966] | 0;
 48911  i4 = i3 + 16 | 0;
 48912  i5 = (HEAP32[i4 >> 2] | 0) - 1 | 0;
 48913  HEAP32[i4 >> 2] = i5;
 48914  if ((i5 | 0) != 0) {
 48915   STACKTOP = i1;
 48916   return;
 48918  do {
 48919   if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
 48920    i6 = i3;
 48921   } else {
 48922    _gettimeofday(i2 | 0, 0) | 0;
 48923    i5 = HEAP32[3578] | 0;
 48924    i7 = i3 + 8 | 0;
 48925    HEAPF32[i7 >> 2] = +(((HEAP32[i2 + 4 >> 2] | 0) - (HEAP32[i5 + 4 >> 2] | 0) + (((HEAP32[i2 >> 2] | 0) - (HEAP32[i5 >> 2] | 0) | 0) * 1e6 | 0) - (HEAP32[i3 + 12 >> 2] | 0) | 0) >>> 0 >>> 0) / 1.0e3 + +HEAPF32[i7 >> 2];
 48926    if ((HEAP32[i4 >> 2] | 0) == 0) {
 48927     i6 = HEAP32[2966] | 0;
 48928     break;
 48929    } else {
 48930     STACKTOP = i1;
 48931     return;
 48934  } while (0);
 48935  HEAP32[2966] = HEAP32[i6 + 20 >> 2];
 48936  STACKTOP = i1;
 48937  return;
 48939 function __ZN16btDbvtBroadphase12destroyProxyEP17btBroadphaseProxyP12btDispatcher(i1, i2, i3) {
 48940  i1 = i1 | 0;
 48941  i2 = i2 | 0;
 48942  i3 = i3 | 0;
 48943  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
 48944  i4 = i2 + 60 | 0;
 48945  if ((HEAP32[i4 >> 2] | 0) == 2) {
 48946   __ZN6btDbvt6removeEP10btDbvtNode(i1 + 44 | 0, HEAP32[i2 + 48 >> 2] | 0);
 48947  } else {
 48948   __ZN6btDbvt6removeEP10btDbvtNode(i1 + 4 | 0, HEAP32[i2 + 48 >> 2] | 0);
 48950  i5 = i2 + 52 | 0;
 48951  i6 = HEAP32[i5 >> 2] | 0;
 48952  i7 = i2 + 56 | 0;
 48953  i8 = HEAP32[i7 >> 2] | 0;
 48954  if ((i6 | 0) == 0) {
 48955   HEAP32[i1 + 84 + (HEAP32[i4 >> 2] << 2) >> 2] = i8;
 48956  } else {
 48957   HEAP32[i6 + 56 >> 2] = i8;
 48959  i8 = HEAP32[i7 >> 2] | 0;
 48960  if ((i8 | 0) != 0) {
 48961   HEAP32[i8 + 52 >> 2] = HEAP32[i5 >> 2];
 48963  i5 = HEAP32[i1 + 96 >> 2] | 0;
 48964  FUNCTION_TABLE_viii[HEAP32[(HEAP32[i5 >> 2] | 0) + 16 >> 2] & 127](i5 | 0, i2, i3);
 48965  __Z21btAlignedFreeInternalPv(i2);
 48966  HEAP8[i1 + 154 | 0] = 1;
 48967  return;
 48969 function __ZN17btCollisionObjectC2Ev(i1) {
 48970  i1 = i1 | 0;
 48971  HEAP32[i1 >> 2] = 4168;
 48972  HEAPF32[i1 + 164 >> 2] = 1.0;
 48973  HEAPF32[i1 + 168 >> 2] = 1.0;
 48974  HEAPF32[i1 + 172 >> 2] = 1.0;
 48975  HEAPF32[i1 + 176 >> 2] = 0.0;
 48976  HEAP32[i1 + 180 >> 2] = 0;
 48977  HEAPF32[i1 + 184 >> 2] = 999999984306749400.0;
 48978  _memset(i1 + 188 | 0, 0, 16);
 48979  HEAP32[i1 + 204 >> 2] = 1;
 48980  HEAP32[i1 + 208 >> 2] = -1;
 48981  HEAP32[i1 + 212 >> 2] = -1;
 48982  HEAP32[i1 + 216 >> 2] = 1;
 48983  HEAPF32[i1 + 220 >> 2] = 0.0;
 48984  HEAPF32[i1 + 224 >> 2] = .5;
 48985  HEAPF32[i1 + 228 >> 2] = 0.0;
 48986  HEAP32[i1 + 232 >> 2] = 1;
 48987  HEAP32[i1 + 236 >> 2] = 0;
 48988  HEAPF32[i1 + 240 >> 2] = 1.0;
 48989  HEAPF32[i1 + 244 >> 2] = 0.0;
 48990  HEAPF32[i1 + 248 >> 2] = 0.0;
 48991  HEAP32[i1 + 252 >> 2] = 0;
 48992  HEAPF32[i1 + 4 >> 2] = 1.0;
 48993  _memset(i1 + 8 | 0, 0, 16);
 48994  HEAPF32[i1 + 24 >> 2] = 1.0;
 48995  _memset(i1 + 28 | 0, 0, 16);
 48996  HEAPF32[i1 + 44 >> 2] = 1.0;
 48997  _memset(i1 + 48 | 0, 0, 20);
 48998  return;
 49000 function __ZNK15btTriangleShape37localGetSupportingVertexWithoutMarginERK9btVector3(i1, i2, i3) {
 49001  i1 = i1 | 0;
 49002  i2 = i2 | 0;
 49003  i3 = i3 | 0;
 49004  var d4 = 0.0, d5 = 0.0, d6 = 0.0, d7 = 0.0, d8 = 0.0, d9 = 0.0, i10 = 0;
 49005  d4 = +HEAPF32[i3 >> 2];
 49006  d5 = +HEAPF32[i3 + 4 >> 2];
 49007  d6 = +HEAPF32[i3 + 8 >> 2];
 49008  d7 = d4 * +HEAPF32[i2 + 56 >> 2] + d5 * +HEAPF32[i2 + 60 >> 2] + d6 * +HEAPF32[i2 + 64 >> 2];
 49009  d8 = d4 * +HEAPF32[i2 + 72 >> 2] + d5 * +HEAPF32[i2 + 76 >> 2] + d6 * +HEAPF32[i2 + 80 >> 2];
 49010  d9 = d4 * +HEAPF32[i2 + 88 >> 2] + d5 * +HEAPF32[i2 + 92 >> 2] + d6 * +HEAPF32[i2 + 96 >> 2];
 49011  if (d7 < d8) {
 49012   i10 = d8 < d9 ? 2 : 1;
 49013  } else {
 49014   i10 = d7 < d9 ? 2 : 0;
 49016  i3 = i1;
 49017  i1 = i2 + 56 + (i10 << 4) | 0;
 49018  HEAP32[i3 >> 2] = HEAP32[i1 >> 2];
 49019  HEAP32[i3 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
 49020  HEAP32[i3 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
 49021  HEAP32[i3 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
 49022  return;
 49024 function __ZN11btRigidBody19removeConstraintRefEP17btTypedConstraint(i1, i2) {
 49025  i1 = i1 | 0;
 49026  i2 = i2 | 0;
 49027  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
 49028  i3 = i1 + 480 | 0;
 49029  i4 = HEAP32[i3 >> 2] | 0;
 49030  i5 = i1 + 488 | 0;
 49031  i6 = 0;
 49032  while (1) {
 49033   if ((i6 | 0) >= (i4 | 0)) {
 49034    i7 = i4;
 49035    i8 = 1064;
 49036    break;
 49038   i9 = HEAP32[i5 >> 2] | 0;
 49039   i10 = i9 + (i6 << 2) | 0;
 49040   if ((HEAP32[i10 >> 2] | 0) == (i2 | 0)) {
 49041    break;
 49042   } else {
 49043    i6 = i6 + 1 | 0;
 49046  if ((i8 | 0) == 1064) {
 49047   i11 = (i7 | 0) > 0;
 49048   i12 = i11 & 1;
 49049   i13 = i1 + 252 | 0;
 49050   HEAP32[i13 >> 2] = i12;
 49051   return;
 49053  i8 = i4 - 1 | 0;
 49054  HEAP32[i10 >> 2] = HEAP32[i9 + (i8 << 2) >> 2];
 49055  HEAP32[(HEAP32[i5 >> 2] | 0) + (i8 << 2) >> 2] = i2;
 49056  HEAP32[i3 >> 2] = i8;
 49057  i7 = i8;
 49058  i11 = (i7 | 0) > 0;
 49059  i12 = i11 & 1;
 49060  i13 = i1 + 252 | 0;
 49061  HEAP32[i13 >> 2] = i12;
 49062  return;
 49064 function __ZN35btSequentialImpulseConstraintSolver10solveGroupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAllocP12btDispatcher(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11) {
 49065  i1 = i1 | 0;
 49066  i2 = i2 | 0;
 49067  i3 = i3 | 0;
 49068  i4 = i4 | 0;
 49069  i5 = i5 | 0;
 49070  i6 = i6 | 0;
 49071  i7 = i7 | 0;
 49072  i8 = i8 | 0;
 49073  i9 = i9 | 0;
 49074  i10 = i10 | 0;
 49075  i11 = i11 | 0;
 49076  __ZN15CProfileManager13Start_ProfileEPKc(584);
 49077  i11 = i1;
 49078  +FUNCTION_TABLE_fiiiiiiiiii[HEAP32[(HEAP32[i11 >> 2] | 0) + 32 >> 2] & 7](i1, i2, i3, i4, i5, i6, i7, i8, i9, i10);
 49079  +FUNCTION_TABLE_fiiiiiiiiii[HEAP32[(HEAP32[i11 >> 2] | 0) + 36 >> 2] & 7](i1, i2, i3, i4, i5, i6, i7, i8, i9, i10);
 49080  +FUNCTION_TABLE_fiiiiiiiiii[HEAP32[(HEAP32[i11 >> 2] | 0) + 28 >> 2] & 7](i1, i2, i3, i4, i5, i6, i7, i8, i9, i10);
 49081  __ZN15CProfileManager12Stop_ProfileEv();
 49082  return +0.0;
 49084 function __ZN23btDiscreteDynamicsWorld25predictUnconstraintMotionEf(i1, d2) {
 49085  i1 = i1 | 0;
 49086  d2 = +d2;
 49087  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
 49088  __ZN15CProfileManager13Start_ProfileEPKc(848);
 49089  i3 = i1 + 204 | 0;
 49090  i4 = HEAP32[i3 >> 2] | 0;
 49091  if ((i4 | 0) <= 0) {
 49092   __ZN15CProfileManager12Stop_ProfileEv();
 49093   return;
 49095  i5 = i1 + 212 | 0;
 49096  i1 = 0;
 49097  i6 = i4;
 49098  while (1) {
 49099   i4 = HEAP32[(HEAP32[i5 >> 2] | 0) + (i1 << 2) >> 2] | 0;
 49100   if ((HEAP32[i4 + 204 >> 2] & 3 | 0) == 0) {
 49101    __ZN11btRigidBody19integrateVelocitiesEf(i4, d2);
 49102    __ZN11btRigidBody12applyDampingEf(i4, d2);
 49103    __ZN11btRigidBody26predictIntegratedTransformEfR11btTransform(i4, d2, i4 + 68 | 0);
 49104    i7 = HEAP32[i3 >> 2] | 0;
 49105   } else {
 49106    i7 = i6;
 49108   i4 = i1 + 1 | 0;
 49109   if ((i4 | 0) < (i7 | 0)) {
 49110    i1 = i4;
 49111    i6 = i7;
 49112   } else {
 49113    break;
 49116  __ZN15CProfileManager12Stop_ProfileEv();
 49117  return;
 49119 function __ZN33btConvexConcaveCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_b(i1, i2, i3, i4, i5) {
 49120  i1 = i1 | 0;
 49121  i2 = i2 | 0;
 49122  i3 = i3 | 0;
 49123  i4 = i4 | 0;
 49124  i5 = i5 | 0;
 49125  var i6 = 0, i7 = 0, i8 = 0;
 49126  __ZN30btActivatingCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1 | 0, i2, i3, i4);
 49127  HEAP32[i1 >> 2] = 2528;
 49128  HEAP8[i1 + 8 | 0] = i5 & 1;
 49129  i6 = HEAP32[i2 >> 2] | 0;
 49130  HEAP32[i1 + 12 >> 2] = 3104;
 49131  i2 = i1 + 60 | 0;
 49132  HEAP32[i2 >> 2] = i6;
 49133  HEAP32[i1 + 64 >> 2] = 0;
 49134  i7 = i5 ? i4 : i3;
 49135  HEAP32[i1 + 16 >> 2] = i7;
 49136  i8 = i5 ? i3 : i4;
 49137  HEAP32[i1 + 20 >> 2] = i8;
 49138  i4 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] & 31](i6, i7, i8) | 0;
 49139  HEAP32[i1 + 76 >> 2] = i4;
 49140  i1 = HEAP32[i2 >> 2] | 0;
 49141  FUNCTION_TABLE_vii[HEAP32[(HEAP32[i1 >> 2] | 0) + 20 >> 2] & 127](i1, i4);
 49142  return;
 49144 function __ZN25btSimulationIslandManager21updateActivationStateEP16btCollisionWorldP12btDispatcher(i1, i2, i3) {
 49145  i1 = i1 | 0;
 49146  i2 = i2 | 0;
 49147  i3 = i3 | 0;
 49148  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
 49149  i3 = i2 + 8 | 0;
 49150  if ((HEAP32[i3 >> 2] | 0) > 0) {
 49151   i4 = HEAP32[i2 + 16 >> 2] | 0;
 49152   i5 = 0;
 49153   i6 = 0;
 49154   while (1) {
 49155    i7 = HEAP32[i4 + (i5 << 2) >> 2] | 0;
 49156    if ((HEAP32[i7 + 204 >> 2] & 3 | 0) == 0) {
 49157     HEAP32[i7 + 208 >> 2] = i6;
 49158     i8 = i6 + 1 | 0;
 49159    } else {
 49160     i8 = i6;
 49162    HEAP32[i7 + 212 >> 2] = -1;
 49163    HEAPF32[i7 + 240 >> 2] = 1.0;
 49164    i7 = i5 + 1 | 0;
 49165    if ((i7 | 0) < (HEAP32[i3 >> 2] | 0)) {
 49166     i5 = i7;
 49167     i6 = i8;
 49168    } else {
 49169     i9 = i8;
 49170     break;
 49173  } else {
 49174   i9 = 0;
 49176  __ZN11btUnionFind5resetEi(i1 + 4 | 0, i9);
 49177  __ZN25btSimulationIslandManager10findUnionsEP12btDispatcherP16btCollisionWorld(i1, 0, i2);
 49178  return;
 49180 function __ZNK10btBoxShape24localGetSupportingVertexERK9btVector3(i1, i2, i3) {
 49181  i1 = i1 | 0;
 49182  i2 = i2 | 0;
 49183  i3 = i3 | 0;
 49184  var d4 = 0.0, d5 = 0.0, d6 = 0.0, i7 = 0, i8 = 0, d9 = 0.0, d10 = 0.0, d11 = 0.0;
 49185  d4 = +HEAPF32[i2 + 28 >> 2];
 49186  d5 = +HEAPF32[i2 + 32 >> 2];
 49187  d6 = +HEAPF32[i2 + 36 >> 2];
 49188  i7 = i2 | 0;
 49189  i8 = i2;
 49190  d9 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i8 >> 2] | 0) + 44 >> 2] & 7](i7);
 49191  d10 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i8 >> 2] | 0) + 44 >> 2] & 7](i7);
 49192  d11 = d4 + d9;
 49193  d9 = d5 + d10;
 49194  d10 = d6 + +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i8 >> 2] | 0) + 44 >> 2] & 7](i7);
 49195  d6 = +HEAPF32[i3 + 4 >> 2] >= 0.0 ? d9 : -0.0 - d9;
 49196  d9 = +HEAPF32[i3 + 8 >> 2] >= 0.0 ? d10 : -0.0 - d10;
 49197  HEAPF32[i1 >> 2] = +HEAPF32[i3 >> 2] >= 0.0 ? d11 : -0.0 - d11;
 49198  HEAPF32[i1 + 4 >> 2] = d6;
 49199  HEAPF32[i1 + 8 >> 2] = d9;
 49200  HEAPF32[i1 + 12 >> 2] = 0.0;
 49201  return;
 49203 function __ZNK10btBoxShape9getVertexEiR9btVector3(i1, i2, i3) {
 49204  i1 = i1 | 0;
 49205  i2 = i2 | 0;
 49206  i3 = i3 | 0;
 49207  var d4 = 0.0, d5 = 0.0, d6 = 0.0, i7 = 0, i8 = 0, d9 = 0.0, d10 = 0.0, d11 = 0.0;
 49208  d4 = +HEAPF32[i1 + 28 >> 2];
 49209  d5 = +HEAPF32[i1 + 32 >> 2];
 49210  d6 = +HEAPF32[i1 + 36 >> 2];
 49211  i7 = i1 | 0;
 49212  i8 = i1;
 49213  d9 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i8 >> 2] | 0) + 44 >> 2] & 7](i7);
 49214  d10 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i8 >> 2] | 0) + 44 >> 2] & 7](i7);
 49215  d11 = d4 + d9;
 49216  d9 = d5 + d10;
 49217  d10 = d6 + +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i8 >> 2] | 0) + 44 >> 2] & 7](i7);
 49218  i7 = i2 & 1;
 49219  i8 = i2 >>> 1 & 1;
 49220  i1 = i2 >>> 2 & 1;
 49221  HEAPF32[i3 >> 2] = +(i7 ^ 1 | 0) * d11 - +(i7 | 0) * d11;
 49222  HEAPF32[i3 + 4 >> 2] = +(i8 ^ 1 | 0) * d9 - +(i8 | 0) * d9;
 49223  HEAPF32[i3 + 8 >> 2] = +(i1 ^ 1 | 0) * d10 - +(i1 | 0) * d10;
 49224  HEAPF32[i3 + 12 >> 2] = 0.0;
 49225  return;
 49227 function __ZNK10btBoxShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i(i1, i2, i3, i4) {
 49228  i1 = i1 | 0;
 49229  i2 = i2 | 0;
 49230  i3 = i3 | 0;
 49231  i4 = i4 | 0;
 49232  var i5 = 0, i6 = 0, i7 = 0, d8 = 0.0, d9 = 0.0, d10 = 0.0, d11 = 0.0;
 49233  if ((i4 | 0) <= 0) {
 49234   return;
 49236  i5 = i1 + 28 | 0;
 49237  i6 = i1 + 32 | 0;
 49238  i7 = i1 + 36 | 0;
 49239  i1 = 0;
 49240  do {
 49241   d8 = +HEAPF32[i5 >> 2];
 49242   d9 = +HEAPF32[i6 >> 2];
 49243   d10 = +HEAPF32[i2 + (i1 << 4) + 4 >> 2] >= 0.0 ? d9 : -0.0 - d9;
 49244   d9 = +HEAPF32[i7 >> 2];
 49245   d11 = +HEAPF32[i2 + (i1 << 4) + 8 >> 2] >= 0.0 ? d9 : -0.0 - d9;
 49246   HEAPF32[i3 + (i1 << 4) >> 2] = +HEAPF32[i2 + (i1 << 4) >> 2] >= 0.0 ? d8 : -0.0 - d8;
 49247   HEAPF32[i3 + (i1 << 4) + 4 >> 2] = d10;
 49248   HEAPF32[i3 + (i1 << 4) + 8 >> 2] = d11;
 49249   HEAPF32[i3 + (i1 << 4) + 12 >> 2] = 0.0;
 49250   i1 = i1 + 1 | 0;
 49251  } while ((i1 | 0) < (i4 | 0));
 49252  return;
 49254 function __ZN23btDiscreteDynamicsWorld18saveKinematicStateEf(i1, d2) {
 49255  i1 = i1 | 0;
 49256  d2 = +d2;
 49257  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
 49258  i3 = i1 + 8 | 0;
 49259  i4 = HEAP32[i3 >> 2] | 0;
 49260  if ((i4 | 0) <= 0) {
 49261   return;
 49263  i5 = i1 + 16 | 0;
 49264  i1 = 0;
 49265  i6 = i4;
 49266  while (1) {
 49267   i4 = HEAP32[(HEAP32[i5 >> 2] | 0) + (i1 << 2) >> 2] | 0;
 49268   do {
 49269    if ((HEAP32[i4 + 232 >> 2] & 2 | 0) == 0) {
 49270     i7 = i6;
 49271    } else {
 49272     if ((i4 | 0) == 0) {
 49273      i7 = i6;
 49274      break;
 49276     if ((HEAP32[i4 + 216 >> 2] | 0) == 2) {
 49277      i7 = i6;
 49278      break;
 49280     if ((HEAP32[i4 + 204 >> 2] & 2 | 0) == 0) {
 49281      i7 = i6;
 49282      break;
 49284     __ZN11btRigidBody18saveKinematicStateEf(i4, d2);
 49285     i7 = HEAP32[i3 >> 2] | 0;
 49287   } while (0);
 49288   i4 = i1 + 1 | 0;
 49289   if ((i4 | 0) < (i7 | 0)) {
 49290    i1 = i4;
 49291    i6 = i7;
 49292   } else {
 49293    break;
 49296  return;
 49298 function __ZN23btDiscreteDynamicsWorld16removeConstraintEP17btTypedConstraint(i1, i2) {
 49299  i1 = i1 | 0;
 49300  i2 = i2 | 0;
 49301  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
 49302  i3 = i1 + 184 | 0;
 49303  i4 = HEAP32[i3 >> 2] | 0;
 49304  i5 = i1 + 192 | 0;
 49305  i1 = 0;
 49306  while (1) {
 49307   if ((i1 | 0) >= (i4 | 0)) {
 49308    break;
 49310   i6 = HEAP32[i5 >> 2] | 0;
 49311   i7 = i6 + (i1 << 2) | 0;
 49312   if ((HEAP32[i7 >> 2] | 0) == (i2 | 0)) {
 49313    i8 = 512;
 49314    break;
 49315   } else {
 49316    i1 = i1 + 1 | 0;
 49319  if ((i8 | 0) == 512) {
 49320   i8 = i4 - 1 | 0;
 49321   HEAP32[i7 >> 2] = HEAP32[i6 + (i8 << 2) >> 2];
 49322   HEAP32[(HEAP32[i5 >> 2] | 0) + (i8 << 2) >> 2] = i2;
 49323   HEAP32[i3 >> 2] = i8;
 49325  __ZN11btRigidBody19removeConstraintRefEP17btTypedConstraint(HEAP32[i2 + 24 >> 2] | 0, i2);
 49326  __ZN11btRigidBody19removeConstraintRefEP17btTypedConstraint(HEAP32[i2 + 28 >> 2] | 0, i2);
 49327  return;
 49329 function __ZN17btGjkPairDetectorC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver(i1, i2, i3, i4, i5) {
 49330  i1 = i1 | 0;
 49331  i2 = i2 | 0;
 49332  i3 = i3 | 0;
 49333  i4 = i4 | 0;
 49334  i5 = i5 | 0;
 49335  HEAP32[i1 >> 2] = 4136;
 49336  HEAPF32[i1 + 4 >> 2] = 0.0;
 49337  HEAPF32[i1 + 8 >> 2] = 1.0;
 49338  HEAPF32[i1 + 12 >> 2] = 0.0;
 49339  HEAPF32[i1 + 16 >> 2] = 0.0;
 49340  HEAP32[i1 + 20 >> 2] = i5;
 49341  HEAP32[i1 + 24 >> 2] = i4;
 49342  HEAP32[i1 + 28 >> 2] = i2;
 49343  HEAP32[i1 + 32 >> 2] = i3;
 49344  HEAP32[i1 + 36 >> 2] = HEAP32[i2 + 4 >> 2];
 49345  HEAP32[i1 + 40 >> 2] = HEAP32[i3 + 4 >> 2];
 49346  HEAPF32[i1 + 44 >> 2] = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i2 >> 2] | 0) + 44 >> 2] & 7](i2);
 49347  HEAPF32[i1 + 48 >> 2] = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i3 >> 2] | 0) + 44 >> 2] & 7](i3);
 49348  HEAP8[i1 + 52 | 0] = 0;
 49349  HEAP32[i1 + 60 >> 2] = -1;
 49350  HEAP32[i1 + 72 >> 2] = 1;
 49351  return;
 49353 function __ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3(i1, d2, i3) {
 49354  i1 = i1 | 0;
 49355  d2 = +d2;
 49356  i3 = i3 | 0;
 49357  var d4 = 0.0, d5 = 0.0, d6 = 0.0, i7 = 0, i8 = 0, d9 = 0.0, d10 = 0.0, d11 = 0.0;
 49358  d4 = +HEAPF32[i1 + 28 >> 2];
 49359  d5 = +HEAPF32[i1 + 32 >> 2];
 49360  d6 = +HEAPF32[i1 + 36 >> 2];
 49361  i7 = i1 | 0;
 49362  i8 = i1;
 49363  d9 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i8 >> 2] | 0) + 44 >> 2] & 7](i7);
 49364  d10 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i8 >> 2] | 0) + 44 >> 2] & 7](i7);
 49365  d11 = (d4 + d9) * 2.0;
 49366  d9 = (d5 + d10) * 2.0;
 49367  d10 = (d6 + +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i8 >> 2] | 0) + 44 >> 2] & 7](i7)) * 2.0;
 49368  d6 = d2 / 12.0;
 49369  d2 = d9 * d9;
 49370  d9 = d10 * d10;
 49371  d10 = d11 * d11;
 49372  HEAPF32[i3 >> 2] = d6 * (d2 + d9);
 49373  HEAPF32[i3 + 4 >> 2] = d6 * (d10 + d9);
 49374  HEAPF32[i3 + 8 >> 2] = d6 * (d10 + d2);
 49375  HEAPF32[i3 + 12 >> 2] = 0.0;
 49376  return;
 49378 function __ZNK13btSphereShape24localGetSupportingVertexERK9btVector3(i1, i2, i3) {
 49379  i1 = i1 | 0;
 49380  i2 = i2 | 0;
 49381  i3 = i3 | 0;
 49382  var d4 = 0.0, d5 = 0.0, d6 = 0.0, d7 = 0.0, d8 = 0.0;
 49383  FUNCTION_TABLE_viii[HEAP32[(HEAP32[i2 >> 2] | 0) + 64 >> 2] & 127](i1, i2, i3);
 49384  d4 = +HEAPF32[i3 >> 2];
 49385  d5 = +HEAPF32[i3 + 4 >> 2];
 49386  d6 = +HEAPF32[i3 + 8 >> 2];
 49387  i3 = d4 * d4 + d5 * d5 + d6 * d6 < 1.4210854715202004e-14;
 49388  d7 = i3 ? -1.0 : d6;
 49389  d6 = i3 ? -1.0 : d5;
 49390  d5 = i3 ? -1.0 : d4;
 49391  d4 = 1.0 / +Math_sqrt(+(d7 * d7 + (d5 * d5 + d6 * d6)));
 49392  d8 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i2 >> 2] | 0) + 44 >> 2] & 7](i2);
 49393  i2 = i1 | 0;
 49394  HEAPF32[i2 >> 2] = d4 * d5 * d8 + +HEAPF32[i2 >> 2];
 49395  i2 = i1 + 4 | 0;
 49396  HEAPF32[i2 >> 2] = d8 * d4 * d6 + +HEAPF32[i2 >> 2];
 49397  i2 = i1 + 8 | 0;
 49398  HEAPF32[i2 >> 2] = d8 * d4 * d7 + +HEAPF32[i2 >> 2];
 49399  return;
 49401 function __ZN20btPersistentManifold16addManifoldPointERK15btManifoldPoint(i1, i2) {
 49402  i1 = i1 | 0;
 49403  i2 = i2 | 0;
 49404  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
 49405  i3 = i1 + 1116 | 0;
 49406  i4 = HEAP32[i3 >> 2] | 0;
 49407  do {
 49408   if ((i4 | 0) == 4) {
 49409    i5 = __ZN20btPersistentManifold16sortCachedPointsERK15btManifoldPoint(i1, i2) | 0;
 49410    i6 = i1 + 4 + (i5 * 276 | 0) + 108 | 0;
 49411    i7 = HEAP32[i6 >> 2] | 0;
 49412    if ((i7 | 0) == 0) {
 49413     i8 = i5;
 49414     break;
 49416    i9 = HEAP32[3008] | 0;
 49417    if ((i9 | 0) == 0) {
 49418     i8 = i5;
 49419     break;
 49421    FUNCTION_TABLE_ii[i9 & 127](i7) | 0;
 49422    HEAP32[i6 >> 2] = 0;
 49423    i8 = i5;
 49424   } else {
 49425    HEAP32[i3 >> 2] = i4 + 1;
 49426    i8 = i4;
 49428  } while (0);
 49429  i4 = (i8 | 0) < 0 ? 0 : i8;
 49430  i8 = i1 + 4 + (i4 * 276 | 0) | 0;
 49431  i1 = i2;
 49432  _memcpy(i8 | 0, i1 | 0, 276) | 0;
 49433  return i4 | 0;
 49435 function __ZN11btRigidBody24checkCollideWithOverrideEP17btCollisionObject(i1, i2) {
 49436  i1 = i1 | 0;
 49437  i2 = i2 | 0;
 49438  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
 49439  if ((HEAP32[i2 + 232 >> 2] & 2 | 0) == 0) {
 49440   i3 = 1;
 49441   return i3 | 0;
 49443  i4 = i2;
 49444  i2 = i1 + 488 | 0;
 49445  i5 = HEAP32[i1 + 480 >> 2] | 0;
 49446  i1 = 0;
 49447  while (1) {
 49448   if ((i1 | 0) >= (i5 | 0)) {
 49449    i3 = 1;
 49450    i6 = 1054;
 49451    break;
 49453   i7 = HEAP32[(HEAP32[i2 >> 2] | 0) + (i1 << 2) >> 2] | 0;
 49454   if ((HEAP32[i7 + 24 >> 2] | 0) == (i4 | 0)) {
 49455    i3 = 0;
 49456    i6 = 1055;
 49457    break;
 49459   if ((HEAP32[i7 + 28 >> 2] | 0) == (i4 | 0)) {
 49460    i3 = 0;
 49461    i6 = 1057;
 49462    break;
 49463   } else {
 49464    i1 = i1 + 1 | 0;
 49467  if ((i6 | 0) == 1054) {
 49468   return i3 | 0;
 49469  } else if ((i6 | 0) == 1055) {
 49470   return i3 | 0;
 49471  } else if ((i6 | 0) == 1057) {
 49472   return i3 | 0;
 49474  return 0;
 49476 function __ZN26btBoxBoxCollisionAlgorithmC2EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_(i1, i2, i3, i4, i5) {
 49477  i1 = i1 | 0;
 49478  i2 = i2 | 0;
 49479  i3 = i3 | 0;
 49480  i4 = i4 | 0;
 49481  i5 = i5 | 0;
 49482  var i6 = 0;
 49483  __ZN30btActivatingCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1 | 0, i3, i4, i5);
 49484  HEAP32[i1 >> 2] = 2960;
 49485  i3 = i1 + 8 | 0;
 49486  HEAP8[i3] = 0;
 49487  i6 = i1 + 12 | 0;
 49488  HEAP32[i6 >> 2] = i2;
 49489  if ((i2 | 0) != 0) {
 49490   return;
 49492  i2 = i1 + 4 | 0;
 49493  i1 = HEAP32[i2 >> 2] | 0;
 49494  if (!(FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 24 >> 2] & 31](i1, i4, i5) | 0)) {
 49495   return;
 49497  i1 = HEAP32[i2 >> 2] | 0;
 49498  HEAP32[i6 >> 2] = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] & 31](i1, i4, i5) | 0;
 49499  HEAP8[i3] = 1;
 49500  return;
 49502 function __ZNK10__cxxabiv120__si_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi(i1, i2, i3, i4) {
 49503  i1 = i1 | 0;
 49504  i2 = i2 | 0;
 49505  i3 = i3 | 0;
 49506  i4 = i4 | 0;
 49507  var i5 = 0;
 49508  if ((i1 | 0) != (HEAP32[i2 + 8 >> 2] | 0)) {
 49509   i5 = HEAP32[i1 + 8 >> 2] | 0;
 49510   FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i5 >> 2] | 0) + 28 >> 2] & 127](i5, i2, i3, i4);
 49511   return;
 49513  i5 = i2 + 16 | 0;
 49514  i1 = HEAP32[i5 >> 2] | 0;
 49515  if ((i1 | 0) == 0) {
 49516   HEAP32[i5 >> 2] = i3;
 49517   HEAP32[i2 + 24 >> 2] = i4;
 49518   HEAP32[i2 + 36 >> 2] = 1;
 49519   return;
 49521  if ((i1 | 0) != (i3 | 0)) {
 49522   i3 = i2 + 36 | 0;
 49523   HEAP32[i3 >> 2] = (HEAP32[i3 >> 2] | 0) + 1;
 49524   HEAP32[i2 + 24 >> 2] = 2;
 49525   HEAP8[i2 + 54 | 0] = 1;
 49526   return;
 49528  i3 = i2 + 24 | 0;
 49529  if ((HEAP32[i3 >> 2] | 0) != 2) {
 49530   return;
 49532  HEAP32[i3 >> 2] = i4;
 49533  return;
 49535 function __ZN28btHashedOverlappingPairCache18addOverlappingPairEP17btBroadphaseProxyS1_(i1, i2, i3) {
 49536  i1 = i1 | 0;
 49537  i2 = i2 | 0;
 49538  i3 = i3 | 0;
 49539  var i4 = 0, i5 = 0;
 49540  HEAP32[3012] = (HEAP32[3012] | 0) + 1;
 49541  i4 = HEAP32[i1 + 24 >> 2] | 0;
 49542  do {
 49543   if ((i4 | 0) == 0) {
 49544    if ((HEAP16[i3 + 6 >> 1] & HEAP16[i2 + 4 >> 1]) << 16 >> 16 == 0) {
 49545     i5 = 0;
 49546     return i5 | 0;
 49548    if ((HEAP16[i2 + 6 >> 1] & HEAP16[i3 + 4 >> 1]) << 16 >> 16 == 0) {
 49549     i5 = 0;
 49550    } else {
 49551     break;
 49553    return i5 | 0;
 49554   } else {
 49555    if (FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i4 >> 2] | 0) + 8 >> 2] & 31](i4, i2, i3) | 0) {
 49556     break;
 49557    } else {
 49558     i5 = 0;
 49560    return i5 | 0;
 49562  } while (0);
 49563  i5 = __ZN28btHashedOverlappingPairCache15internalAddPairEP17btBroadphaseProxyS1_(i1, i2, i3) | 0;
 49564  return i5 | 0;
 49566 function __ZN6btDbvt6updateEP10btDbvtNodeR12btDbvtAabbMm(i1, i2, i3) {
 49567  i1 = i1 | 0;
 49568  i2 = i2 | 0;
 49569  i3 = i3 | 0;
 49570  var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
 49571  i4 = __ZL10removeleafP6btDbvtP10btDbvtNode(i1, i2) | 0;
 49572  L2369 : do {
 49573   if ((i4 | 0) == 0) {
 49574    i5 = 0;
 49575   } else {
 49576    i6 = HEAP32[i1 + 8 >> 2] | 0;
 49577    if ((i6 | 0) > -1) {
 49578     i7 = 0;
 49579     i8 = i4;
 49580    } else {
 49581     i5 = HEAP32[i1 >> 2] | 0;
 49582     break;
 49584    while (1) {
 49585     if ((i7 | 0) >= (i6 | 0)) {
 49586      i5 = i8;
 49587      break L2369;
 49589     i9 = HEAP32[i8 + 32 >> 2] | 0;
 49590     if ((i9 | 0) == 0) {
 49591      i5 = i8;
 49592      break;
 49593     } else {
 49594      i7 = i7 + 1 | 0;
 49595      i8 = i9;
 49599  } while (0);
 49600  i8 = i2;
 49601  i7 = i3;
 49602  _memcpy(i8 | 0, i7 | 0, 32) | 0;
 49603  __ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i1, i5, i2);
 49604  return;
 49606 function __ZN15CProfileManager5ResetEv() {
 49607  var i1 = 0, i2 = 0, i3 = 0, i4 = 0;
 49608  i1 = STACKTOP;
 49609  STACKTOP = STACKTOP + 16 | 0;
 49610  i2 = i1 | 0;
 49611  i3 = i1 + 8 | 0;
 49612  _gettimeofday(HEAP32[3578] | 0, 0) | 0;
 49613  __ZN12CProfileNode5ResetEv(14256);
 49614  HEAP32[3565] = (HEAP32[3565] | 0) + 1;
 49615  i4 = HEAP32[3568] | 0;
 49616  HEAP32[3568] = i4 + 1;
 49617  if ((i4 | 0) == 0) {
 49618   _gettimeofday(i3 | 0, 0) | 0;
 49619   i4 = HEAP32[3578] | 0;
 49620   HEAP32[3567] = (HEAP32[i3 + 4 >> 2] | 0) - (HEAP32[i4 + 4 >> 2] | 0) + (((HEAP32[i3 >> 2] | 0) - (HEAP32[i4 >> 2] | 0) | 0) * 1e6 | 0);
 49622  HEAP32[3572] = 0;
 49623  _gettimeofday(i2 | 0, 0) | 0;
 49624  i4 = HEAP32[3578] | 0;
 49625  HEAP32[3562] = (HEAP32[i2 + 4 >> 2] | 0) - (HEAP32[i4 + 4 >> 2] | 0) + (((HEAP32[i2 >> 2] | 0) - (HEAP32[i4 >> 2] | 0) | 0) * 1e6 | 0);
 49626  STACKTOP = i1;
 49627  return;
 49629 function __ZZN33btMinkowskiPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAllocEN20btIntermediateResult15addContactPointERKS8_SG_f(i1, i2, i3, d4) {
 49630  i1 = i1 | 0;
 49631  i2 = i2 | 0;
 49632  i3 = i3 | 0;
 49633  d4 = +d4;
 49634  var i5 = 0, i6 = 0;
 49635  i5 = i1 + 4 | 0;
 49636  i6 = i2;
 49637  HEAP32[i5 >> 2] = HEAP32[i6 >> 2];
 49638  HEAP32[i5 + 4 >> 2] = HEAP32[i6 + 4 >> 2];
 49639  HEAP32[i5 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
 49640  HEAP32[i5 + 12 >> 2] = HEAP32[i6 + 12 >> 2];
 49641  i6 = i1 + 20 | 0;
 49642  i5 = i3;
 49643  HEAP32[i6 >> 2] = HEAP32[i5 >> 2];
 49644  HEAP32[i6 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
 49645  HEAP32[i6 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
 49646  HEAP32[i6 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
 49647  HEAPF32[i1 + 36 >> 2] = d4;
 49648  HEAP8[i1 + 40 | 0] = 1;
 49649  return;
 49651 function __ZN35btSequentialImpulseConstraintSolverC2Ev(i1) {
 49652  i1 = i1 | 0;
 49653  HEAP32[i1 >> 2] = 2368;
 49654  HEAP8[i1 + 20 | 0] = 1;
 49655  HEAP32[i1 + 16 >> 2] = 0;
 49656  HEAP32[i1 + 8 >> 2] = 0;
 49657  HEAP32[i1 + 12 >> 2] = 0;
 49658  HEAP8[i1 + 40 | 0] = 1;
 49659  HEAP32[i1 + 36 >> 2] = 0;
 49660  HEAP32[i1 + 28 >> 2] = 0;
 49661  HEAP32[i1 + 32 >> 2] = 0;
 49662  HEAP8[i1 + 60 | 0] = 1;
 49663  HEAP32[i1 + 56 >> 2] = 0;
 49664  HEAP32[i1 + 48 >> 2] = 0;
 49665  HEAP32[i1 + 52 >> 2] = 0;
 49666  HEAP8[i1 + 80 | 0] = 1;
 49667  HEAP32[i1 + 76 >> 2] = 0;
 49668  HEAP32[i1 + 68 >> 2] = 0;
 49669  HEAP32[i1 + 72 >> 2] = 0;
 49670  HEAP8[i1 + 100 | 0] = 1;
 49671  HEAP32[i1 + 96 >> 2] = 0;
 49672  HEAP32[i1 + 88 >> 2] = 0;
 49673  HEAP32[i1 + 92 >> 2] = 0;
 49674  HEAP8[i1 + 120 | 0] = 1;
 49675  HEAP32[i1 + 116 >> 2] = 0;
 49676  HEAP32[i1 + 108 >> 2] = 0;
 49677  HEAP32[i1 + 112 >> 2] = 0;
 49678  HEAP32[i1 + 124 >> 2] = 0;
 49679  return;
 49681 function __ZN16btDbvtBroadphase7rayTestERK9btVector3S2_R23btBroadphaseRayCallbackS2_S2_(i1, i2, i3, i4, i5, i6) {
 49682  i1 = i1 | 0;
 49683  i2 = i2 | 0;
 49684  i3 = i3 | 0;
 49685  i4 = i4 | 0;
 49686  i5 = i5 | 0;
 49687  i6 = i6 | 0;
 49688  var i7 = 0, i8 = 0, i9 = 0, i10 = 0;
 49689  i3 = STACKTOP;
 49690  STACKTOP = STACKTOP + 8 | 0;
 49691  i7 = i3 | 0;
 49692  HEAP32[i7 >> 2] = 4016;
 49693  HEAP32[i7 + 4 >> 2] = i4;
 49694  i8 = i4 + 4 | 0;
 49695  i9 = i4 + 20 | 0;
 49696  i10 = i4 + 32 | 0;
 49697  i4 = i7 | 0;
 49698  __ZNK6btDbvt15rayTestInternalEPK10btDbvtNodeRK9btVector3S5_S5_PjfS5_S5_RNS_8ICollideE(0, HEAP32[i1 + 4 >> 2] | 0, i2, 0, i8, i9, +HEAPF32[i10 >> 2], i5, i6, i4);
 49699  __ZNK6btDbvt15rayTestInternalEPK10btDbvtNodeRK9btVector3S5_S5_PjfS5_S5_RNS_8ICollideE(0, HEAP32[i1 + 44 >> 2] | 0, i2, 0, i8, i9, +HEAPF32[i10 >> 2], i5, i6, i4);
 49700  STACKTOP = i3;
 49701  return;
 49703 function ___remdi3(i1, i2, i3, i4) {
 49704  i1 = i1 | 0;
 49705  i2 = i2 | 0;
 49706  i3 = i3 | 0;
 49707  i4 = i4 | 0;
 49708  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0;
 49709  i5 = STACKTOP;
 49710  STACKTOP = STACKTOP + 8 | 0;
 49711  i6 = i5 | 0;
 49712  i7 = i2 >> 31 | ((i2 | 0) < 0 ? -1 : 0) << 1;
 49713  i8 = ((i2 | 0) < 0 ? -1 : 0) >> 31 | ((i2 | 0) < 0 ? -1 : 0) << 1;
 49714  i9 = i4 >> 31 | ((i4 | 0) < 0 ? -1 : 0) << 1;
 49715  i10 = ((i4 | 0) < 0 ? -1 : 0) >> 31 | ((i4 | 0) < 0 ? -1 : 0) << 1;
 49716  i11 = _i64Subtract(i7 ^ i1, i8 ^ i2, i7, i8) | 0;
 49717  i2 = tempRet0;
 49718  i1 = _i64Subtract(i9 ^ i3, i10 ^ i4, i9, i10) | 0;
 49719  ___udivmoddi4(i11, i2, i1, tempRet0, i6) | 0;
 49720  i1 = _i64Subtract(HEAP32[i6 >> 2] ^ i7, HEAP32[i6 + 4 >> 2] ^ i8, i7, i8) | 0;
 49721  i8 = tempRet0;
 49722  STACKTOP = i5;
 49723  return (tempRet0 = i8, i1) | 0;
 49725 function __ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdder15addSingleResultE_1RNS_17LocalConvexResultEb(i1, i2, i3) {
 49726  i1 = i1 | 0;
 49727  i2 = i2 | 0;
 49728  i3 = i3 | 0;
 49729  var i4 = 0, i5 = 0, i6 = 0, d7 = 0.0;
 49730  i4 = STACKTOP;
 49731  STACKTOP = STACKTOP + 8 | 0;
 49732  i5 = i4 | 0;
 49733  HEAP32[i5 >> 2] = -1;
 49734  HEAP32[i5 + 4 >> 2] = HEAP32[i1 + 16 >> 2];
 49735  i6 = i2 + 4 | 0;
 49736  if ((HEAP32[i6 >> 2] | 0) == 0) {
 49737   HEAP32[i6 >> 2] = i5;
 49739  i5 = i1 + 12 | 0;
 49740  i6 = HEAP32[i5 >> 2] | 0;
 49741  d7 = +FUNCTION_TABLE_fiii[HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] & 15](i6, i2, i3);
 49742  HEAPF32[i1 + 4 >> 2] = +HEAPF32[(HEAP32[i5 >> 2] | 0) + 4 >> 2];
 49743  STACKTOP = i4;
 49744  return +d7;
 49746 function __ZN28btCompoundCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_b(i1, i2, i3, i4, i5) {
 49747  i1 = i1 | 0;
 49748  i2 = i2 | 0;
 49749  i3 = i3 | 0;
 49750  i4 = i4 | 0;
 49751  i5 = i5 | 0;
 49752  __ZN30btActivatingCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1 | 0, i2, i3, i4);
 49753  HEAP32[i1 >> 2] = 2888;
 49754  HEAP8[i1 + 24 | 0] = 1;
 49755  HEAP32[i1 + 20 >> 2] = 0;
 49756  HEAP32[i1 + 12 >> 2] = 0;
 49757  HEAP32[i1 + 16 >> 2] = 0;
 49758  HEAP8[i1 + 28 | 0] = i5 & 1;
 49759  HEAP32[i1 + 32 >> 2] = HEAP32[i2 + 4 >> 2];
 49760  HEAP8[i1 + 36 | 0] = 0;
 49761  HEAP32[i1 + 40 >> 2] = HEAP32[(HEAP32[(i5 ? i4 : i3) + 192 >> 2] | 0) + 68 >> 2];
 49762  __ZN28btCompoundCollisionAlgorithm26preallocateChildAlgorithmsEP17btCollisionObjectS1_(i1, i3, i4);
 49763  return;
 49765 function __ZN25btSimulationIslandManagerD2Ev(i1) {
 49766  i1 = i1 | 0;
 49767  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
 49768  HEAP32[i1 >> 2] = 3032;
 49769  i2 = i1 + 48 | 0;
 49770  i3 = i1 + 56 | 0;
 49771  i4 = HEAP32[i3 >> 2] | 0;
 49772  i5 = i1 + 60 | 0;
 49773  if ((i4 | 0) != 0) {
 49774   if ((HEAP8[i5] | 0) != 0) {
 49775    __Z21btAlignedFreeInternalPv(i4);
 49777   HEAP32[i3 >> 2] = 0;
 49779  HEAP8[i5] = 1;
 49780  HEAP32[i3 >> 2] = 0;
 49781  HEAP32[i2 >> 2] = 0;
 49782  HEAP32[i1 + 52 >> 2] = 0;
 49783  i2 = i1 + 28 | 0;
 49784  i3 = i1 + 36 | 0;
 49785  i5 = HEAP32[i3 >> 2] | 0;
 49786  i4 = i1 + 40 | 0;
 49787  if ((i5 | 0) != 0) {
 49788   if ((HEAP8[i4] | 0) != 0) {
 49789    __Z21btAlignedFreeInternalPv(i5);
 49791   HEAP32[i3 >> 2] = 0;
 49793  HEAP8[i4] = 1;
 49794  HEAP32[i3 >> 2] = 0;
 49795  HEAP32[i2 >> 2] = 0;
 49796  HEAP32[i1 + 32 >> 2] = 0;
 49797  __ZN11btUnionFindD2Ev(i1 + 4 | 0);
 49798  return;
 49800 function __ZN21btSingleSweepCallback7processEPK17btBroadphaseProxy(i1, i2) {
 49801  i1 = i1 | 0;
 49802  i2 = i2 | 0;
 49803  var i3 = 0, i4 = 0, i5 = 0, i6 = 0;
 49804  i3 = i1 + 184 | 0;
 49805  i4 = HEAP32[i3 >> 2] | 0;
 49806  if (+HEAPF32[i4 + 4 >> 2] == 0.0) {
 49807   i5 = 0;
 49808   return i5 | 0;
 49810  i6 = HEAP32[i2 >> 2] | 0;
 49811  if (!(FUNCTION_TABLE_iii[HEAP32[(HEAP32[i4 >> 2] | 0) + 8 >> 2] & 63](i4, HEAP32[i6 + 188 >> 2] | 0) | 0)) {
 49812   i5 = 1;
 49813   return i5 | 0;
 49815  __ZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEf(HEAP32[i1 + 192 >> 2] | 0, i1 + 36 | 0, i1 + 100 | 0, i6, HEAP32[i6 + 192 >> 2] | 0, i6 + 4 | 0, HEAP32[i3 >> 2] | 0, +HEAPF32[i1 + 188 >> 2]);
 49816  i5 = 1;
 49817  return i5 | 0;
 49819 function __ZN17btGjkPairDetectorC2EPK13btConvexShapeS2_iiffP22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver(i1, i2, i3, i4, i5, d6, d7, i8, i9) {
 49820  i1 = i1 | 0;
 49821  i2 = i2 | 0;
 49822  i3 = i3 | 0;
 49823  i4 = i4 | 0;
 49824  i5 = i5 | 0;
 49825  d6 = +d6;
 49826  d7 = +d7;
 49827  i8 = i8 | 0;
 49828  i9 = i9 | 0;
 49829  HEAP32[i1 >> 2] = 4136;
 49830  HEAPF32[i1 + 4 >> 2] = 0.0;
 49831  HEAPF32[i1 + 8 >> 2] = 1.0;
 49832  HEAPF32[i1 + 12 >> 2] = 0.0;
 49833  HEAPF32[i1 + 16 >> 2] = 0.0;
 49834  HEAP32[i1 + 20 >> 2] = i9;
 49835  HEAP32[i1 + 24 >> 2] = i8;
 49836  HEAP32[i1 + 28 >> 2] = i2;
 49837  HEAP32[i1 + 32 >> 2] = i3;
 49838  HEAP32[i1 + 36 >> 2] = i4;
 49839  HEAP32[i1 + 40 >> 2] = i5;
 49840  HEAPF32[i1 + 44 >> 2] = d6;
 49841  HEAPF32[i1 + 48 >> 2] = d7;
 49842  HEAP8[i1 + 52 | 0] = 0;
 49843  HEAP32[i1 + 60 >> 2] = -1;
 49844  HEAP32[i1 + 72 >> 2] = 1;
 49845  return;
 49847 function __ZNK14btQuantizedBvh25reportRayOverlappingNodexEP21btNodeOverlapCallbackRK9btVector3S4_(i1, i2, i3, i4) {
 49848  i1 = i1 | 0;
 49849  i2 = i2 | 0;
 49850  i3 = i3 | 0;
 49851  i4 = i4 | 0;
 49852  var i5 = 0, i6 = 0, i7 = 0;
 49853  i5 = STACKTOP;
 49854  STACKTOP = STACKTOP + 32 | 0;
 49855  i6 = i5 | 0;
 49856  i7 = i5 + 16 | 0;
 49857  _memset(i6 | 0, 0, 16);
 49858  _memset(i7 | 0, 0, 16);
 49859  if ((HEAP8[i1 + 60 | 0] | 0) == 0) {
 49860   __ZNK14btQuantizedBvh27walkStacklessTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(i1, i2, i3, i4, i6, i7, 0, 0);
 49861   STACKTOP = i5;
 49862   return;
 49863  } else {
 49864   __ZNK14btQuantizedBvh36walkStacklessQuantizedTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(i1, i2, i3, i4, i6, i7, 0, HEAP32[i1 + 56 >> 2] | 0);
 49865   STACKTOP = i5;
 49866   return;
 49869 function __ZN23btDiscreteDynamicsWorld15removeRigidBodyEP11btRigidBody(i1, i2) {
 49870  i1 = i1 | 0;
 49871  i2 = i2 | 0;
 49872  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
 49873  i3 = i1 + 204 | 0;
 49874  i4 = HEAP32[i3 >> 2] | 0;
 49875  i5 = i1 + 212 | 0;
 49876  i6 = 0;
 49877  while (1) {
 49878   if ((i6 | 0) >= (i4 | 0)) {
 49879    break;
 49881   i7 = HEAP32[i5 >> 2] | 0;
 49882   i8 = i7 + (i6 << 2) | 0;
 49883   if ((HEAP32[i8 >> 2] | 0) == (i2 | 0)) {
 49884    i9 = 433;
 49885    break;
 49886   } else {
 49887    i6 = i6 + 1 | 0;
 49890  if ((i9 | 0) == 433) {
 49891   i9 = i4 - 1 | 0;
 49892   HEAP32[i8 >> 2] = HEAP32[i7 + (i9 << 2) >> 2];
 49893   HEAP32[(HEAP32[i5 >> 2] | 0) + (i9 << 2) >> 2] = i2;
 49894   HEAP32[i3 >> 2] = i9;
 49896  __ZN16btCollisionWorld21removeCollisionObjectEP17btCollisionObject(i1 | 0, i2 | 0);
 49897  return;
 49899 function __ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder215addSingleResultERNS_14LocalRayResultEb(i1, i2, i3) {
 49900  i1 = i1 | 0;
 49901  i2 = i2 | 0;
 49902  i3 = i3 | 0;
 49903  var i4 = 0, i5 = 0, i6 = 0, d7 = 0.0;
 49904  i4 = STACKTOP;
 49905  STACKTOP = STACKTOP + 8 | 0;
 49906  i5 = i4 | 0;
 49907  HEAP32[i5 >> 2] = -1;
 49908  HEAP32[i5 + 4 >> 2] = HEAP32[i1 + 24 >> 2];
 49909  i6 = i2 + 4 | 0;
 49910  if ((HEAP32[i6 >> 2] | 0) == 0) {
 49911   HEAP32[i6 >> 2] = i5;
 49913  i5 = i1 + 20 | 0;
 49914  i6 = HEAP32[i5 >> 2] | 0;
 49915  d7 = +FUNCTION_TABLE_fiii[HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] & 15](i6, i2, i3);
 49916  HEAPF32[i1 + 4 >> 2] = +HEAPF32[(HEAP32[i5 >> 2] | 0) + 4 >> 2];
 49917  STACKTOP = i4;
 49918  return +d7;
 49920 function __ZN34btSphereTriangleCollisionAlgorithmC2EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_b(i1, i2, i3, i4, i5, i6) {
 49921  i1 = i1 | 0;
 49922  i2 = i2 | 0;
 49923  i3 = i3 | 0;
 49924  i4 = i4 | 0;
 49925  i5 = i5 | 0;
 49926  i6 = i6 | 0;
 49927  var i7 = 0;
 49928  __ZN30btActivatingCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1 | 0, i3, i4, i5);
 49929  HEAP32[i1 >> 2] = 2424;
 49930  i3 = i1 + 8 | 0;
 49931  HEAP8[i3] = 0;
 49932  i7 = i1 + 12 | 0;
 49933  HEAP32[i7 >> 2] = i2;
 49934  HEAP8[i1 + 16 | 0] = i6 & 1;
 49935  if ((i2 | 0) != 0) {
 49936   return;
 49938  i2 = HEAP32[i1 + 4 >> 2] | 0;
 49939  HEAP32[i7 >> 2] = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i2 >> 2] | 0) + 12 >> 2] & 31](i2, i4, i5) | 0;
 49940  HEAP8[i3] = 1;
 49941  return;
 49943 function __ZN6btDbvt6insertERK12btDbvtAabbMmPv(i1, i2, i3) {
 49944  i1 = i1 | 0;
 49945  i2 = i2 | 0;
 49946  i3 = i3 | 0;
 49947  var i4 = 0, i5 = 0, i6 = 0, i7 = 0;
 49948  i4 = i1 + 4 | 0;
 49949  i5 = HEAP32[i4 >> 2] | 0;
 49950  do {
 49951   if ((i5 | 0) == 0) {
 49952    i6 = __Z22btAlignedAllocInternalji(44, 16) | 0;
 49953    if ((i6 | 0) == 0) {
 49954     i7 = 0;
 49955     break;
 49957    _memset(i6 | 0, 0, 44);
 49958    i7 = i6;
 49959   } else {
 49960    HEAP32[i4 >> 2] = 0;
 49961    i7 = i5;
 49963  } while (0);
 49964  HEAP32[i7 + 32 >> 2] = 0;
 49965  HEAP32[i7 + 36 >> 2] = i3;
 49966  HEAP32[i7 + 40 >> 2] = 0;
 49967  i3 = i7;
 49968  i5 = i2;
 49969  _memcpy(i3 | 0, i5 | 0, 32) | 0;
 49970  __ZL10insertleafP6btDbvtP10btDbvtNodeS2_(i1, HEAP32[i1 >> 2] | 0, i7);
 49971  i5 = i1 + 12 | 0;
 49972  HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 1;
 49973  return i7 | 0;
 49975 function __ZN34btSphereTriangleCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1, i2, i3, i4) {
 49976  i1 = i1 | 0;
 49977  i2 = i2 | 0;
 49978  i3 = i3 | 0;
 49979  i4 = i4 | 0;
 49980  var i5 = 0, i6 = 0, i7 = 0, i8 = 0;
 49981  i5 = HEAP32[i2 >> 2] | 0;
 49982  i6 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i5 >> 2] | 0) + 56 >> 2] & 63](i5, 20) | 0;
 49983  if ((i6 | 0) == 0) {
 49984   i7 = 0;
 49985   i8 = i7 | 0;
 49986   return i8 | 0;
 49988  i5 = i6;
 49989  __ZN34btSphereTriangleCollisionAlgorithmC2EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_b(i5, HEAP32[i2 + 4 >> 2] | 0, i2, i3, i4, (HEAP8[i1 + 4 | 0] | 0) != 0);
 49990  i7 = i5;
 49991  i8 = i7 | 0;
 49992  return i8 | 0;
 49994 function __ZN16btPointCollector15addContactPointERK9btVector3S2_f(i1, i2, i3, d4) {
 49995  i1 = i1 | 0;
 49996  i2 = i2 | 0;
 49997  i3 = i3 | 0;
 49998  d4 = +d4;
 49999  var i5 = 0, i6 = 0, i7 = 0;
 50000  i5 = i1 + 36 | 0;
 50001  if (+HEAPF32[i5 >> 2] <= d4) {
 50002   return;
 50004  HEAP8[i1 + 40 | 0] = 1;
 50005  i6 = i1 + 4 | 0;
 50006  i7 = i2;
 50007  HEAP32[i6 >> 2] = HEAP32[i7 >> 2];
 50008  HEAP32[i6 + 4 >> 2] = HEAP32[i7 + 4 >> 2];
 50009  HEAP32[i6 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
 50010  HEAP32[i6 + 12 >> 2] = HEAP32[i7 + 12 >> 2];
 50011  i7 = i1 + 20 | 0;
 50012  i1 = i3;
 50013  HEAP32[i7 >> 2] = HEAP32[i1 >> 2];
 50014  HEAP32[i7 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
 50015  HEAP32[i7 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
 50016  HEAP32[i7 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
 50017  HEAPF32[i5 >> 2] = d4;
 50018  return;
 50020 function __ZNK10__cxxabiv117__class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi(i1, i2, i3, i4) {
 50021  i1 = i1 | 0;
 50022  i2 = i2 | 0;
 50023  i3 = i3 | 0;
 50024  i4 = i4 | 0;
 50025  var i5 = 0;
 50026  if ((HEAP32[i2 + 8 >> 2] | 0) != (i1 | 0)) {
 50027   return;
 50029  i1 = i2 + 16 | 0;
 50030  i5 = HEAP32[i1 >> 2] | 0;
 50031  if ((i5 | 0) == 0) {
 50032   HEAP32[i1 >> 2] = i3;
 50033   HEAP32[i2 + 24 >> 2] = i4;
 50034   HEAP32[i2 + 36 >> 2] = 1;
 50035   return;
 50037  if ((i5 | 0) != (i3 | 0)) {
 50038   i3 = i2 + 36 | 0;
 50039   HEAP32[i3 >> 2] = (HEAP32[i3 >> 2] | 0) + 1;
 50040   HEAP32[i2 + 24 >> 2] = 2;
 50041   HEAP8[i2 + 54 | 0] = 1;
 50042   return;
 50044  i3 = i2 + 24 | 0;
 50045  if ((HEAP32[i3 >> 2] | 0) != 2) {
 50046   return;
 50048  HEAP32[i3 >> 2] = i4;
 50049  return;
 50051 function __ZNK13btConvexShape19getMarginNonVirtualEv(i1) {
 50052  i1 = i1 | 0;
 50053  var d2 = 0.0;
 50054  switch (HEAP32[i1 + 4 >> 2] | 0) {
 50055  case 0:
 50057    d2 = +HEAPF32[i1 + 44 >> 2];
 50058    return +d2;
 50060  case 13:
 50062    d2 = +HEAPF32[i1 + 44 >> 2];
 50063    return +d2;
 50065  case 1:
 50067    d2 = +HEAPF32[i1 + 44 >> 2];
 50068    return +d2;
 50070  case 5:
 50071  case 4:
 50073    d2 = +HEAPF32[i1 + 44 >> 2];
 50074    return +d2;
 50076  case 8:
 50078    d2 = +HEAPF32[i1 + 28 >> 2] * +HEAPF32[i1 + 12 >> 2];
 50079    return +d2;
 50081  case 10:
 50083    d2 = +HEAPF32[i1 + 44 >> 2];
 50084    return +d2;
 50086  default:
 50088    d2 = +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i1 >> 2] | 0) + 44 >> 2] & 7](i1);
 50089    return +d2;
 50092  return 0.0;
 50094 function __ZN19btSingleRayCallback7processEPK17btBroadphaseProxy(i1, i2) {
 50095  i1 = i1 | 0;
 50096  i2 = i2 | 0;
 50097  var i3 = 0, i4 = 0, i5 = 0, i6 = 0;
 50098  i3 = i1 + 216 | 0;
 50099  i4 = HEAP32[i3 >> 2] | 0;
 50100  if (+HEAPF32[i4 + 4 >> 2] == 0.0) {
 50101   i5 = 0;
 50102   return i5 | 0;
 50104  i6 = HEAP32[i2 >> 2] | 0;
 50105  if (!(FUNCTION_TABLE_iii[HEAP32[(HEAP32[i4 >> 2] | 0) + 8 >> 2] & 63](i4, HEAP32[i6 + 188 >> 2] | 0) | 0)) {
 50106   i5 = 1;
 50107   return i5 | 0;
 50109  __ZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackE(i1 + 68 | 0, i1 + 132 | 0, i6, HEAP32[i6 + 192 >> 2] | 0, i6 + 4 | 0, HEAP32[i3 >> 2] | 0);
 50110  i5 = 1;
 50111  return i5 | 0;
 50113 function __ZN32btSphereSphereCollisionAlgorithmC2EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_(i1, i2, i3, i4, i5) {
 50114  i1 = i1 | 0;
 50115  i2 = i2 | 0;
 50116  i3 = i3 | 0;
 50117  i4 = i4 | 0;
 50118  i5 = i5 | 0;
 50119  var i6 = 0;
 50120  __ZN30btActivatingCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1 | 0, i3, i4, i5);
 50121  HEAP32[i1 >> 2] = 2568;
 50122  i3 = i1 + 8 | 0;
 50123  HEAP8[i3] = 0;
 50124  i6 = i1 + 12 | 0;
 50125  HEAP32[i6 >> 2] = i2;
 50126  if ((i2 | 0) != 0) {
 50127   return;
 50129  i2 = HEAP32[i1 + 4 >> 2] | 0;
 50130  HEAP32[i6 >> 2] = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i2 >> 2] | 0) + 12 >> 2] & 31](i2, i4, i5) | 0;
 50131  HEAP8[i3] = 1;
 50132  return;
 50134 function __ZN28btCompoundCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(i1, i2) {
 50135  i1 = i1 | 0;
 50136  i2 = i2 | 0;
 50137  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
 50138  i3 = i1 + 12 | 0;
 50139  i4 = HEAP32[i3 >> 2] | 0;
 50140  if ((i4 | 0) <= 0) {
 50141   return;
 50143  i5 = i1 + 20 | 0;
 50144  i1 = 0;
 50145  i6 = i4;
 50146  while (1) {
 50147   i4 = HEAP32[(HEAP32[i5 >> 2] | 0) + (i1 << 2) >> 2] | 0;
 50148   if ((i4 | 0) == 0) {
 50149    i7 = i6;
 50150   } else {
 50151    FUNCTION_TABLE_vii[HEAP32[(HEAP32[i4 >> 2] | 0) + 16 >> 2] & 127](i4, i2);
 50152    i7 = HEAP32[i3 >> 2] | 0;
 50154   i4 = i1 + 1 | 0;
 50155   if ((i4 | 0) < (i7 | 0)) {
 50156    i1 = i4;
 50157    i6 = i7;
 50158   } else {
 50159    break;
 50162  return;
 50164 function __ZNK21btConvexInternalShape9serializeEPvP12btSerializer(i1, i2, i3) {
 50165  i1 = i1 | 0;
 50166  i2 = i2 | 0;
 50167  i3 = i3 | 0;
 50168  __ZNK16btCollisionShape9serializeEPvP12btSerializer(i1 | 0, i2, i3) | 0;
 50169  HEAPF32[i2 + 28 >> 2] = +HEAPF32[i1 + 28 >> 2];
 50170  HEAPF32[i2 + 32 >> 2] = +HEAPF32[i1 + 32 >> 2];
 50171  HEAPF32[i2 + 36 >> 2] = +HEAPF32[i1 + 36 >> 2];
 50172  HEAPF32[i2 + 40 >> 2] = +HEAPF32[i1 + 40 >> 2];
 50173  HEAPF32[i2 + 12 >> 2] = +HEAPF32[i1 + 12 >> 2];
 50174  HEAPF32[i2 + 16 >> 2] = +HEAPF32[i1 + 16 >> 2];
 50175  HEAPF32[i2 + 20 >> 2] = +HEAPF32[i1 + 20 >> 2];
 50176  HEAPF32[i2 + 24 >> 2] = +HEAPF32[i1 + 24 >> 2];
 50177  HEAPF32[i2 + 44 >> 2] = +HEAPF32[i1 + 44 >> 2];
 50178  return 800;
 50180 function __ZN23btDiscreteDynamicsWorld12removeActionEP17btActionInterface(i1, i2) {
 50181  i1 = i1 | 0;
 50182  i2 = i2 | 0;
 50183  var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
 50184  i3 = i1 + 248 | 0;
 50185  i4 = HEAP32[i3 >> 2] | 0;
 50186  i5 = i1 + 256 | 0;
 50187  i1 = 0;
 50188  while (1) {
 50189   if ((i1 | 0) >= (i4 | 0)) {
 50190    i6 = 422;
 50191    break;
 50193   i7 = HEAP32[i5 >> 2] | 0;
 50194   i8 = i7 + (i1 << 2) | 0;
 50195   if ((HEAP32[i8 >> 2] | 0) == (i2 | 0)) {
 50196    break;
 50197   } else {
 50198    i1 = i1 + 1 | 0;
 50201  if ((i6 | 0) == 422) {
 50202   return;
 50204  i6 = i4 - 1 | 0;
 50205  HEAP32[i8 >> 2] = HEAP32[i7 + (i6 << 2) >> 2];
 50206  HEAP32[(HEAP32[i5 >> 2] | 0) + (i6 << 2) >> 2] = i2;
 50207  HEAP32[i3 >> 2] = i6;
 50208  return;
 50210 function __ZN25btTriangleRaycastCallbackC2ERK9btVector3S2_j(i1, i2, i3, i4) {
 50211  i1 = i1 | 0;
 50212  i2 = i2 | 0;
 50213  i3 = i3 | 0;
 50214  i4 = i4 | 0;
 50215  var i5 = 0, i6 = 0;
 50216  HEAP32[i1 >> 2] = 3e3;
 50217  i5 = i1 + 4 | 0;
 50218  i6 = i2;
 50219  HEAP32[i5 >> 2] = HEAP32[i6 >> 2];
 50220  HEAP32[i5 + 4 >> 2] = HEAP32[i6 + 4 >> 2];
 50221  HEAP32[i5 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
 50222  HEAP32[i5 + 12 >> 2] = HEAP32[i6 + 12 >> 2];
 50223  i6 = i1 + 20 | 0;
 50224  i5 = i3;
 50225  HEAP32[i6 >> 2] = HEAP32[i5 >> 2];
 50226  HEAP32[i6 + 4 >> 2] = HEAP32[i5 + 4 >> 2];
 50227  HEAP32[i6 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
 50228  HEAP32[i6 + 12 >> 2] = HEAP32[i5 + 12 >> 2];
 50229  HEAP32[i1 + 36 >> 2] = i4;
 50230  HEAPF32[i1 + 40 >> 2] = 1.0;
 50231  return;
 50233 function __ZNK10btBoxShape8isInsideERK9btVector3f(i1, i2, d3) {
 50234  i1 = i1 | 0;
 50235  i2 = i2 | 0;
 50236  d3 = +d3;
 50237  var d4 = 0.0, d5 = 0.0, d6 = 0.0, d7 = 0.0, i8 = 0;
 50238  d4 = +HEAPF32[i1 + 28 >> 2];
 50239  d5 = +HEAPF32[i1 + 32 >> 2];
 50240  d6 = +HEAPF32[i1 + 36 >> 2];
 50241  d7 = +HEAPF32[i2 >> 2];
 50242  if (d7 > d4 + d3) {
 50243   i8 = 0;
 50244   return i8 | 0;
 50246  if (d7 < -0.0 - d4 - d3) {
 50247   i8 = 0;
 50248   return i8 | 0;
 50250  d4 = +HEAPF32[i2 + 4 >> 2];
 50251  if (d4 > d5 + d3) {
 50252   i8 = 0;
 50253   return i8 | 0;
 50255  if (d4 < -0.0 - d5 - d3) {
 50256   i8 = 0;
 50257   return i8 | 0;
 50259  d5 = +HEAPF32[i2 + 8 >> 2];
 50260  if (d5 > d6 + d3) {
 50261   i8 = 0;
 50262   return i8 | 0;
 50264  i8 = d5 >= -0.0 - d6 - d3;
 50265  return i8 | 0;
 50267 function ___divdi3(i1, i2, i3, i4) {
 50268  i1 = i1 | 0;
 50269  i2 = i2 | 0;
 50270  i3 = i3 | 0;
 50271  i4 = i4 | 0;
 50272  var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
 50273  i5 = i2 >> 31 | ((i2 | 0) < 0 ? -1 : 0) << 1;
 50274  i6 = ((i2 | 0) < 0 ? -1 : 0) >> 31 | ((i2 | 0) < 0 ? -1 : 0) << 1;
 50275  i7 = i4 >> 31 | ((i4 | 0) < 0 ? -1 : 0) << 1;
 50276  i8 = ((i4 | 0) < 0 ? -1 : 0) >> 31 | ((i4 | 0) < 0 ? -1 : 0) << 1;
 50277  i9 = _i64Subtract(i5 ^ i1, i6 ^ i2, i5, i6) | 0;
 50278  i2 = tempRet0;
 50279  i1 = i7 ^ i5;
 50280  i5 = i8 ^ i6;
 50281  i6 = _i64Subtract((___udivmoddi4(i9, i2, _i64Subtract(i7 ^ i3, i8 ^ i4, i7, i8) | 0, tempRet0, 0) | 0) ^ i1, tempRet0 ^ i5, i1, i5) | 0;
 50282  return (tempRet0 = tempRet0, i6) | 0;
 50284 function __ZN6btDbvt5clearEv(i1) {
 50285  i1 = i1 | 0;
 50286  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
 50287  i2 = HEAP32[i1 >> 2] | 0;
 50288  if ((i2 | 0) != 0) {
 50289   __ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i1, i2);
 50291  i2 = i1 + 4 | 0;
 50292  __Z21btAlignedFreeInternalPv(HEAP32[i2 >> 2] | 0);
 50293  HEAP32[i2 >> 2] = 0;
 50294  HEAP32[i1 + 8 >> 2] = -1;
 50295  i2 = i1 + 24 | 0;
 50296  i3 = i1 + 32 | 0;
 50297  i4 = HEAP32[i3 >> 2] | 0;
 50298  i5 = i1 + 36 | 0;
 50299  if ((i4 | 0) != 0) {
 50300   if ((HEAP8[i5] | 0) != 0) {
 50301    __Z21btAlignedFreeInternalPv(i4);
 50303   HEAP32[i3 >> 2] = 0;
 50305  HEAP8[i5] = 1;
 50306  HEAP32[i3 >> 2] = 0;
 50307  HEAP32[i2 >> 2] = 0;
 50308  HEAP32[i1 + 28 >> 2] = 0;
 50309  HEAP32[i1 + 16 >> 2] = 0;
 50310  return;
 50312 function __ZN6btDbvtD2Ev(i1) {
 50313  i1 = i1 | 0;
 50314  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
 50315  i2 = HEAP32[i1 >> 2] | 0;
 50316  if ((i2 | 0) != 0) {
 50317   __ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i1, i2);
 50319  i2 = i1 + 4 | 0;
 50320  __Z21btAlignedFreeInternalPv(HEAP32[i2 >> 2] | 0);
 50321  HEAP32[i2 >> 2] = 0;
 50322  HEAP32[i1 + 8 >> 2] = -1;
 50323  i2 = i1 + 24 | 0;
 50324  i3 = i1 + 32 | 0;
 50325  i4 = HEAP32[i3 >> 2] | 0;
 50326  i5 = i1 + 36 | 0;
 50327  if ((i4 | 0) != 0) {
 50328   if ((HEAP8[i5] | 0) != 0) {
 50329    __Z21btAlignedFreeInternalPv(i4);
 50331   HEAP32[i3 >> 2] = 0;
 50333  HEAP32[i1 + 16 >> 2] = 0;
 50334  HEAP8[i5] = 1;
 50335  HEAP32[i3 >> 2] = 0;
 50336  HEAP32[i2 >> 2] = 0;
 50337  HEAP32[i1 + 28 >> 2] = 0;
 50338  return;
 50340 function __ZN32btSphereSphereCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1, i2, i3, i4) {
 50341  i1 = i1 | 0;
 50342  i2 = i2 | 0;
 50343  i3 = i3 | 0;
 50344  i4 = i4 | 0;
 50345  var i5 = 0, i6 = 0, i7 = 0;
 50346  i1 = HEAP32[i2 >> 2] | 0;
 50347  i5 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i1 >> 2] | 0) + 56 >> 2] & 63](i1, 16) | 0;
 50348  if ((i5 | 0) == 0) {
 50349   i6 = 0;
 50350   i7 = i6 | 0;
 50351   return i7 | 0;
 50353  i1 = i5;
 50354  __ZN32btSphereSphereCollisionAlgorithmC2EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_(i1, 0, i2, i3, i4);
 50355  i6 = i1;
 50356  i7 = i6 | 0;
 50357  return i7 | 0;
 50359 function __ZN11btRigidBody10setGravityERK9btVector3(i1, i2) {
 50360  i1 = i1 | 0;
 50361  i2 = i2 | 0;
 50362  var d3 = 0.0, d4 = 0.0, d5 = 0.0, i6 = 0;
 50363  d3 = +HEAPF32[i1 + 336 >> 2];
 50364  if (d3 != 0.0) {
 50365   d4 = 1.0 / d3;
 50366   d3 = d4 * +HEAPF32[i2 + 4 >> 2];
 50367   d5 = d4 * +HEAPF32[i2 + 8 >> 2];
 50368   HEAPF32[i1 + 356 >> 2] = d4 * +HEAPF32[i2 >> 2];
 50369   HEAPF32[i1 + 360 >> 2] = d3;
 50370   HEAPF32[i1 + 364 >> 2] = d5;
 50371   HEAPF32[i1 + 368 >> 2] = 0.0;
 50373  i6 = i1 + 372 | 0;
 50374  i1 = i2;
 50375  HEAP32[i6 >> 2] = HEAP32[i1 >> 2];
 50376  HEAP32[i6 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
 50377  HEAP32[i6 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
 50378  HEAP32[i6 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
 50379  return;
 50381 function __ZNK16btCollisionWorld7rayTestERK9btVector3S2_RNS_17RayResultCallbackE(i1, i2, i3, i4) {
 50382  i1 = i1 | 0;
 50383  i2 = i2 | 0;
 50384  i3 = i3 | 0;
 50385  i4 = i4 | 0;
 50386  var i5 = 0, i6 = 0, i7 = 0, i8 = 0;
 50387  i5 = STACKTOP;
 50388  STACKTOP = STACKTOP + 256 | 0;
 50389  i6 = i5 | 0;
 50390  i7 = i5 + 224 | 0;
 50391  i8 = i5 + 240 | 0;
 50392  __ZN19btSingleRayCallbackC2ERK9btVector3S2_PK16btCollisionWorldRNS3_17RayResultCallbackE(i6, i2, i3, i1, i4);
 50393  i4 = HEAP32[i1 + 76 >> 2] | 0;
 50394  i1 = HEAP32[(HEAP32[i4 >> 2] | 0) + 24 >> 2] | 0;
 50395  _memset(i7 | 0, 0, 16);
 50396  _memset(i8 | 0, 0, 16);
 50397  FUNCTION_TABLE_viiiiii[i1 & 15](i4, i2, i3, i6 | 0, i7, i8);
 50398  STACKTOP = i5;
 50399  return;
 50401 function __ZN22btVoronoiSimplexSolver14compute_pointsER9btVector3S1_(i1, i2, i3) {
 50402  i1 = i1 | 0;
 50403  i2 = i2 | 0;
 50404  i3 = i3 | 0;
 50405  var i4 = 0;
 50406  __ZN22btVoronoiSimplexSolver28updateClosestVectorAndPointsEv(i1) | 0;
 50407  i4 = i2;
 50408  i2 = i1 + 244 | 0;
 50409  HEAP32[i4 >> 2] = HEAP32[i2 >> 2];
 50410  HEAP32[i4 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
 50411  HEAP32[i4 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
 50412  HEAP32[i4 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
 50413  i2 = i3;
 50414  i3 = i1 + 260 | 0;
 50415  HEAP32[i2 >> 2] = HEAP32[i3 >> 2];
 50416  HEAP32[i2 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
 50417  HEAP32[i2 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
 50418  HEAP32[i2 + 12 >> 2] = HEAP32[i3 + 12 >> 2];
 50419  return;
 50421 function __ZN26btBoxBoxCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1, i2, i3, i4) {
 50422  i1 = i1 | 0;
 50423  i2 = i2 | 0;
 50424  i3 = i3 | 0;
 50425  i4 = i4 | 0;
 50426  var i5 = 0, i6 = 0, i7 = 0;
 50427  i1 = HEAP32[i2 >> 2] | 0;
 50428  i5 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i1 >> 2] | 0) + 56 >> 2] & 63](i1, 16) | 0;
 50429  if ((i5 | 0) == 0) {
 50430   i6 = 0;
 50431   i7 = i6 | 0;
 50432   return i7 | 0;
 50434  i1 = i5;
 50435  __ZN26btBoxBoxCollisionAlgorithmC2EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_(i1, 0, i2, i3, i4);
 50436  i6 = i1;
 50437  i7 = i6 | 0;
 50438  return i7 | 0;
 50440 function __ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1, i2, i3, i4) {
 50441  i1 = i1 | 0;
 50442  i2 = i2 | 0;
 50443  i3 = i3 | 0;
 50444  i4 = i4 | 0;
 50445  var i5 = 0, i6 = 0, i7 = 0;
 50446  i1 = HEAP32[i2 >> 2] | 0;
 50447  i5 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i1 >> 2] | 0) + 56 >> 2] & 63](i1, 80) | 0;
 50448  if ((i5 | 0) == 0) {
 50449   i6 = 0;
 50450   i7 = i6 | 0;
 50451   return i7 | 0;
 50453  i1 = i5;
 50454  __ZN33btConvexConcaveCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_b(i1, i2, i3, i4, 1);
 50455  i6 = i1;
 50456  i7 = i6 | 0;
 50457  return i7 | 0;
 50459 function __ZNK34btClosestNotMeConvexResultCallback14needsCollisionEP17btBroadphaseProxy(i1, i2) {
 50460  i1 = i1 | 0;
 50461  i2 = i2 | 0;
 50462  var i3 = 0, i4 = 0, i5 = 0;
 50463  i3 = HEAP32[i2 >> 2] | 0;
 50464  i4 = HEAP32[i1 + 80 >> 2] | 0;
 50465  if ((i3 | 0) == (i4 | 0)) {
 50466   i5 = 0;
 50467   return i5 | 0;
 50469  if ((HEAP16[i1 + 10 >> 1] & HEAP16[i2 + 4 >> 1]) << 16 >> 16 == 0) {
 50470   i5 = 0;
 50471   return i5 | 0;
 50473  if ((HEAP16[i2 + 6 >> 1] & HEAP16[i1 + 8 >> 1]) << 16 >> 16 == 0) {
 50474   i5 = 0;
 50475   return i5 | 0;
 50477  i2 = HEAP32[i1 + 92 >> 2] | 0;
 50478  i5 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i2 >> 2] | 0) + 28 >> 2] & 31](i2, i4, i3) | 0;
 50479  return i5 | 0;
 50481 function __ZN33btConvexConcaveCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1, i2, i3, i4) {
 50482  i1 = i1 | 0;
 50483  i2 = i2 | 0;
 50484  i3 = i3 | 0;
 50485  i4 = i4 | 0;
 50486  var i5 = 0, i6 = 0, i7 = 0;
 50487  i1 = HEAP32[i2 >> 2] | 0;
 50488  i5 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i1 >> 2] | 0) + 56 >> 2] & 63](i1, 80) | 0;
 50489  if ((i5 | 0) == 0) {
 50490   i6 = 0;
 50491   i7 = i6 | 0;
 50492   return i7 | 0;
 50494  i1 = i5;
 50495  __ZN33btConvexConcaveCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_b(i1, i2, i3, i4, 0);
 50496  i6 = i1;
 50497  i7 = i6 | 0;
 50498  return i7 | 0;
 50500 function __ZN28btCompoundCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1, i2, i3, i4) {
 50501  i1 = i1 | 0;
 50502  i2 = i2 | 0;
 50503  i3 = i3 | 0;
 50504  i4 = i4 | 0;
 50505  var i5 = 0, i6 = 0, i7 = 0;
 50506  i1 = HEAP32[i2 >> 2] | 0;
 50507  i5 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i1 >> 2] | 0) + 56 >> 2] & 63](i1, 44) | 0;
 50508  if ((i5 | 0) == 0) {
 50509   i6 = 0;
 50510   i7 = i6 | 0;
 50511   return i7 | 0;
 50513  i1 = i5;
 50514  __ZN28btCompoundCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_b(i1, i2, i3, i4, 1);
 50515  i6 = i1;
 50516  i7 = i6 | 0;
 50517  return i7 | 0;
 50519 function __ZN23btDiscreteDynamicsWorld12applyGravityEv(i1) {
 50520  i1 = i1 | 0;
 50521  var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
 50522  i2 = i1 + 204 | 0;
 50523  i3 = HEAP32[i2 >> 2] | 0;
 50524  if ((i3 | 0) <= 0) {
 50525   return;
 50527  i4 = i1 + 212 | 0;
 50528  i1 = 0;
 50529  i5 = i3;
 50530  while (1) {
 50531   i3 = HEAP32[(HEAP32[i4 >> 2] | 0) + (i1 << 2) >> 2] | 0;
 50532   i6 = HEAP32[i3 + 216 >> 2] | 0;
 50533   if ((i6 | 0) == 5 | (i6 | 0) == 2) {
 50534    i7 = i5;
 50535   } else {
 50536    __ZN11btRigidBody12applyGravityEv(i3);
 50537    i7 = HEAP32[i2 >> 2] | 0;
 50539   i3 = i1 + 1 | 0;
 50540   if ((i3 | 0) < (i7 | 0)) {
 50541    i1 = i3;
 50542    i5 = i7;
 50543   } else {
 50544    break;
 50547  return;
 50549 function __ZN28btCompoundCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1, i2, i3, i4) {
 50550  i1 = i1 | 0;
 50551  i2 = i2 | 0;
 50552  i3 = i3 | 0;
 50553  i4 = i4 | 0;
 50554  var i5 = 0, i6 = 0, i7 = 0;
 50555  i1 = HEAP32[i2 >> 2] | 0;
 50556  i5 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i1 >> 2] | 0) + 56 >> 2] & 63](i1, 44) | 0;
 50557  if ((i5 | 0) == 0) {
 50558   i6 = 0;
 50559   i7 = i6 | 0;
 50560   return i7 | 0;
 50562  i1 = i5;
 50563  __ZN28btCompoundCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_b(i1, i2, i3, i4, 0);
 50564  i6 = i1;
 50565  i7 = i6 | 0;
 50566  return i7 | 0;
 50568 function __ZN21btCollisionDispatcher22freeCollisionAlgorithmEPv(i1, i2) {
 50569  i1 = i1 | 0;
 50570  i2 = i2 | 0;
 50571  var i3 = 0;
 50572  i3 = HEAP32[i1 + 192 >> 2] | 0;
 50573  do {
 50574   if ((i2 | 0) != 0) {
 50575    i1 = HEAP32[i3 + 16 >> 2] | 0;
 50576    if (i1 >>> 0 > i2 >>> 0) {
 50577     break;
 50579    if ((i1 + (Math_imul(HEAP32[i3 >> 2] | 0, HEAP32[i3 + 4 >> 2] | 0) | 0) | 0) >>> 0 <= i2 >>> 0) {
 50580     break;
 50582    i1 = i3 + 12 | 0;
 50583    HEAP32[i2 >> 2] = HEAP32[i1 >> 2];
 50584    HEAP32[i1 >> 2] = i2;
 50585    i1 = i3 + 8 | 0;
 50586    HEAP32[i1 >> 2] = (HEAP32[i1 >> 2] | 0) + 1;
 50587    return;
 50589  } while (0);
 50590  __Z21btAlignedFreeInternalPv(i2);
 50591  return;
 50593 function __ZN23btDiscreteDynamicsWorld14updateVehiclesEf(i1, d2) {
 50594  i1 = i1 | 0;
 50595  d2 = +d2;
 50596  var i3 = 0, i4 = 0, i5 = 0, i6 = 0;
 50597  __ZN15CProfileManager13Start_ProfileEPKc(456);
 50598  i3 = i1 + 248 | 0;
 50599  if ((HEAP32[i3 >> 2] | 0) <= 0) {
 50600   __ZN15CProfileManager12Stop_ProfileEv();
 50601   return;
 50603  i4 = i1 + 256 | 0;
 50604  i5 = i1 | 0;
 50605  i1 = 0;
 50606  do {
 50607   i6 = HEAP32[(HEAP32[i4 >> 2] | 0) + (i1 << 2) >> 2] | 0;
 50608   FUNCTION_TABLE_viif[HEAP32[(HEAP32[i6 >> 2] | 0) + 8 >> 2] & 3](i6, i5, d2);
 50609   i1 = i1 + 1 | 0;
 50610  } while ((i1 | 0) < (HEAP32[i3 >> 2] | 0));
 50611  __ZN15CProfileManager12Stop_ProfileEv();
 50612  return;
 50614 function __ZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_(i1, i2, i3, i4, i5, i6) {
 50615  i1 = i1 | 0;
 50616  i2 = i2 | 0;
 50617  i3 = i3 | 0;
 50618  i4 = i4 | 0;
 50619  i5 = i5 | 0;
 50620  i6 = i6 | 0;
 50621  var i7 = 0, i8 = 0, i9 = 0;
 50622  i7 = STACKTOP;
 50623  STACKTOP = STACKTOP + 16 | 0;
 50624  i8 = i7 | 0;
 50625  i9 = HEAP32[i1 + 48 >> 2] | 0;
 50626  HEAP32[i8 >> 2] = 1592;
 50627  HEAP32[i8 + 4 >> 2] = i9;
 50628  HEAP32[i8 + 8 >> 2] = i2;
 50629  __ZNK14btQuantizedBvh29reportBoxCastOverlappingNodexEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_(HEAP32[i1 + 52 >> 2] | 0, i8 | 0, i3, i4, i5, i6);
 50630  STACKTOP = i7;
 50631  return;
 50633 function __ZNK14btQuantizedBvh29reportBoxCastOverlappingNodexEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_(i1, i2, i3, i4, i5, i6) {
 50634  i1 = i1 | 0;
 50635  i2 = i2 | 0;
 50636  i3 = i3 | 0;
 50637  i4 = i4 | 0;
 50638  i5 = i5 | 0;
 50639  i6 = i6 | 0;
 50640  if ((HEAP8[i1 + 60 | 0] | 0) == 0) {
 50641   __ZNK14btQuantizedBvh27walkStacklessTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(i1, i2, i3, i4, i5, i6, 0, 0);
 50642   return;
 50643  } else {
 50644   __ZNK14btQuantizedBvh36walkStacklessQuantizedTreeAgainstRayEP21btNodeOverlapCallbackRK9btVector3S4_S4_S4_ii(i1, i2, i3, i4, i5, i6, 0, HEAP32[i1 + 56 >> 2] | 0);
 50645   return;
 50648 function __ZN21btCollisionDispatcher13findAlgorithmEP17btCollisionObjectS1_P20btPersistentManifold(i1, i2, i3, i4) {
 50649  i1 = i1 | 0;
 50650  i2 = i2 | 0;
 50651  i3 = i3 | 0;
 50652  i4 = i4 | 0;
 50653  var i5 = 0, i6 = 0;
 50654  i5 = STACKTOP;
 50655  STACKTOP = STACKTOP + 8 | 0;
 50656  i6 = i5 | 0;
 50657  HEAP32[i6 >> 2] = i1;
 50658  HEAP32[i6 + 4 >> 2] = i4;
 50659  i4 = HEAP32[i1 + 200 + ((HEAP32[(HEAP32[i2 + 192 >> 2] | 0) + 4 >> 2] | 0) * 144 | 0) + (HEAP32[(HEAP32[i3 + 192 >> 2] | 0) + 4 >> 2] << 2) >> 2] | 0;
 50660  i1 = FUNCTION_TABLE_iiiii[HEAP32[(HEAP32[i4 >> 2] | 0) + 8 >> 2] & 31](i4, i6, i2, i3) | 0;
 50661  STACKTOP = i5;
 50662  return i1 | 0;
 50664 function __ZN33btConvexConcaveCollisionAlgorithmD0Ev(i1) {
 50665  i1 = i1 | 0;
 50666  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
 50667  HEAP32[i1 >> 2] = 2528;
 50668  i2 = i1 + 12 | 0;
 50669  HEAP32[i2 >> 2] = 3104;
 50670  i3 = i1 + 60 | 0;
 50671  i4 = HEAP32[i3 >> 2] | 0;
 50672  i5 = i1 + 76 | 0;
 50673  FUNCTION_TABLE_vii[HEAP32[(HEAP32[i4 >> 2] | 0) + 20 >> 2] & 127](i4, HEAP32[i5 >> 2] | 0);
 50674  i4 = HEAP32[i3 >> 2] | 0;
 50675  FUNCTION_TABLE_vii[HEAP32[(HEAP32[i4 >> 2] | 0) + 16 >> 2] & 127](i4, HEAP32[i5 >> 2] | 0);
 50676  __ZN18btTriangleCallbackD2Ev(i2 | 0);
 50677  __ZN30btActivatingCollisionAlgorithmD2Ev(i1 | 0);
 50678  __ZdlPv(i1);
 50679  return;
 50681 function __ZNK16btDbvtBroadphase7getAabbEP17btBroadphaseProxyR9btVector3S3_(i1, i2, i3, i4) {
 50682  i1 = i1 | 0;
 50683  i2 = i2 | 0;
 50684  i3 = i3 | 0;
 50685  i4 = i4 | 0;
 50686  i1 = i3;
 50687  i3 = i2 + 16 | 0;
 50688  HEAP32[i1 >> 2] = HEAP32[i3 >> 2];
 50689  HEAP32[i1 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
 50690  HEAP32[i1 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
 50691  HEAP32[i1 + 12 >> 2] = HEAP32[i3 + 12 >> 2];
 50692  i3 = i4;
 50693  i4 = i2 + 32 | 0;
 50694  HEAP32[i3 >> 2] = HEAP32[i4 >> 2];
 50695  HEAP32[i3 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
 50696  HEAP32[i3 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
 50697  HEAP32[i3 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
 50698  return;
 50700 function __ZN33btConvexConcaveCollisionAlgorithmD2Ev(i1) {
 50701  i1 = i1 | 0;
 50702  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
 50703  HEAP32[i1 >> 2] = 2528;
 50704  i2 = i1 + 12 | 0;
 50705  HEAP32[i2 >> 2] = 3104;
 50706  i3 = i1 + 60 | 0;
 50707  i4 = HEAP32[i3 >> 2] | 0;
 50708  i5 = i1 + 76 | 0;
 50709  FUNCTION_TABLE_vii[HEAP32[(HEAP32[i4 >> 2] | 0) + 20 >> 2] & 127](i4, HEAP32[i5 >> 2] | 0);
 50710  i4 = HEAP32[i3 >> 2] | 0;
 50711  FUNCTION_TABLE_vii[HEAP32[(HEAP32[i4 >> 2] | 0) + 16 >> 2] & 127](i4, HEAP32[i5 >> 2] | 0);
 50712  __ZN18btTriangleCallbackD2Ev(i2 | 0);
 50713  __ZN30btActivatingCollisionAlgorithmD2Ev(i1 | 0);
 50714  return;
 50716 function __ZL8pointCmpRKN20btConvexHullInternal7Point32ES2_(i1, i2) {
 50717  i1 = i1 | 0;
 50718  i2 = i2 | 0;
 50719  var i3 = 0, i4 = 0, i5 = 0;
 50720  i3 = HEAP32[i1 + 4 >> 2] | 0;
 50721  i4 = HEAP32[i2 + 4 >> 2] | 0;
 50722  if ((i3 | 0) < (i4 | 0)) {
 50723   i5 = 1;
 50724   return i5 | 0;
 50726  if ((i3 | 0) != (i4 | 0)) {
 50727   i5 = 0;
 50728   return i5 | 0;
 50730  i4 = HEAP32[i1 >> 2] | 0;
 50731  i3 = HEAP32[i2 >> 2] | 0;
 50732  if ((i4 | 0) < (i3 | 0)) {
 50733   i5 = 1;
 50734   return i5 | 0;
 50736  if ((i4 | 0) != (i3 | 0)) {
 50737   i5 = 0;
 50738   return i5 | 0;
 50740  i5 = (HEAP32[i1 + 8 >> 2] | 0) < (HEAP32[i2 + 8 >> 2] | 0);
 50741  return i5 | 0;
 50743 function __ZN21btCollisionDispatcher14needsCollisionEP17btCollisionObjectS1_(i1, i2, i3) {
 50744  i1 = i1 | 0;
 50745  i2 = i2 | 0;
 50746  i3 = i3 | 0;
 50747  var i4 = 0, i5 = 0;
 50748  i1 = HEAP32[i2 + 216 >> 2] | 0;
 50749  do {
 50750   if ((i1 | 0) == 5 | (i1 | 0) == 2) {
 50751    i4 = HEAP32[i3 + 216 >> 2] | 0;
 50752    if ((i4 | 0) == 5 | (i4 | 0) == 2) {
 50753     i5 = 0;
 50754    } else {
 50755     break;
 50757    return i5 | 0;
 50759  } while (0);
 50760  if ((HEAP32[i2 + 252 >> 2] | 0) == 0) {
 50761   i5 = 1;
 50762   return i5 | 0;
 50764  i5 = FUNCTION_TABLE_iii[HEAP32[HEAP32[i2 >> 2] >> 2] & 63](i2, i3) | 0;
 50765  return i5 | 0;
 50767 function __ZN16btDbvtBroadphase9resetPoolEP12btDispatcher(i1, i2) {
 50768  i1 = i1 | 0;
 50769  i2 = i2 | 0;
 50770  if ((HEAP32[i1 + 16 >> 2] | 0) != (-(HEAP32[i1 + 56 >> 2] | 0) | 0)) {
 50771   return;
 50773  __ZN6btDbvt5clearEv(i1 + 4 | 0);
 50774  __ZN6btDbvt5clearEv(i1 + 44 | 0);
 50775  HEAP8[i1 + 153 | 0] = 0;
 50776  HEAP8[i1 + 154 | 0] = 1;
 50777  HEAP32[i1 + 104 >> 2] = 0;
 50778  HEAP32[i1 + 124 >> 2] = 0;
 50779  HEAP32[i1 + 108 >> 2] = 1;
 50780  HEAP32[i1 + 112 >> 2] = 0;
 50781  HEAP32[i1 + 116 >> 2] = 10;
 50782  HEAP32[i1 + 120 >> 2] = 1;
 50783  _memset(i1 + 84 | 0, 0, 12);
 50784  _memset(i1 + 128 | 0, 0, 24);
 50785  return;
 50787 function _memcpy(i1, i2, i3) {
 50788  i1 = i1 | 0;
 50789  i2 = i2 | 0;
 50790  i3 = i3 | 0;
 50791  var i4 = 0;
 50792  i4 = i1 | 0;
 50793  if ((i1 & 3) == (i2 & 3)) {
 50794   while (i1 & 3) {
 50795    if ((i3 | 0) == 0) return i4 | 0;
 50796    HEAP8[i1] = HEAP8[i2] | 0;
 50797    i1 = i1 + 1 | 0;
 50798    i2 = i2 + 1 | 0;
 50799    i3 = i3 - 1 | 0;
 50801   while ((i3 | 0) >= 4) {
 50802    HEAP32[i1 >> 2] = HEAP32[i2 >> 2];
 50803    i1 = i1 + 4 | 0;
 50804    i2 = i2 + 4 | 0;
 50805    i3 = i3 - 4 | 0;
 50808  while ((i3 | 0) > 0) {
 50809   HEAP8[i1] = HEAP8[i2] | 0;
 50810   i1 = i1 + 1 | 0;
 50811   i2 = i2 + 1 | 0;
 50812   i3 = i3 - 1 | 0;
 50814  return i4 | 0;
 50816 function __ZNK10btBoxShape37localGetSupportingVertexWithoutMarginERK9btVector3(i1, i2, i3) {
 50817  i1 = i1 | 0;
 50818  i2 = i2 | 0;
 50819  i3 = i3 | 0;
 50820  var d4 = 0.0, d5 = 0.0, d6 = 0.0, d7 = 0.0;
 50821  d4 = +HEAPF32[i2 + 28 >> 2];
 50822  d5 = +HEAPF32[i2 + 32 >> 2];
 50823  d6 = +HEAPF32[i3 + 4 >> 2] >= 0.0 ? d5 : -0.0 - d5;
 50824  d5 = +HEAPF32[i2 + 36 >> 2];
 50825  d7 = +HEAPF32[i3 + 8 >> 2] >= 0.0 ? d5 : -0.0 - d5;
 50826  HEAPF32[i1 >> 2] = +HEAPF32[i3 >> 2] >= 0.0 ? d4 : -0.0 - d4;
 50827  HEAPF32[i1 + 4 >> 2] = d6;
 50828  HEAPF32[i1 + 8 >> 2] = d7;
 50829  HEAPF32[i1 + 12 >> 2] = 0.0;
 50830  return;
 50832 function __ZNK11btRigidBody21serializeSingleObjectEP12btSerializer(i1, i2) {
 50833  i1 = i1 | 0;
 50834  i2 = i2 | 0;
 50835  var i3 = 0, i4 = 0, i5 = 0;
 50836  i3 = HEAP32[(HEAP32[i2 >> 2] | 0) + 16 >> 2] | 0;
 50837  i4 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i1 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
 50838  i5 = FUNCTION_TABLE_iiii[i3 & 31](i2, i4, 1) | 0;
 50839  i4 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 20 >> 2] & 31](i1, HEAP32[i5 + 8 >> 2] | 0, i2) | 0;
 50840  FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i2 >> 2] | 0) + 20 >> 2] & 63](i2, i5, i4, 1497645650, i1);
 50841  return;
 50843 function __ZN16btEmptyAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1, i2, i3, i4) {
 50844  i1 = i1 | 0;
 50845  i2 = i2 | 0;
 50846  i3 = i3 | 0;
 50847  i4 = i4 | 0;
 50848  var i5 = 0, i6 = 0;
 50849  i4 = HEAP32[i2 >> 2] | 0;
 50850  i3 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i4 >> 2] | 0) + 56 >> 2] & 63](i4, 8) | 0;
 50851  if ((i3 | 0) == 0) {
 50852   i5 = 0;
 50853   i6 = i5 | 0;
 50854   return i6 | 0;
 50856  i4 = i3;
 50857  __ZN16btEmptyAlgorithmC2ERK36btCollisionAlgorithmConstructionInfo(i4, i2);
 50858  i5 = i4;
 50859  i6 = i5 | 0;
 50860  return i6 | 0;
 50862 function __ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallback14processOverlapER16btBroadphasePair(i1, i2) {
 50863  i1 = i1 | 0;
 50864  i2 = i2 | 0;
 50865  var i3 = 0;
 50866  i3 = HEAP32[i1 + 4 >> 2] | 0;
 50867  do {
 50868   if ((HEAP32[i2 >> 2] | 0) != (i3 | 0)) {
 50869    if ((HEAP32[i2 + 4 >> 2] | 0) == (i3 | 0)) {
 50870     break;
 50872    return 0;
 50874  } while (0);
 50875  i3 = HEAP32[i1 + 8 >> 2] | 0;
 50876  FUNCTION_TABLE_viii[HEAP32[(HEAP32[i3 >> 2] | 0) + 32 >> 2] & 127](i3, i2, HEAP32[i1 + 12 >> 2] | 0);
 50877  return 0;
 50879 function __ZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_(i1, i2, i3, i4) {
 50880  i1 = i1 | 0;
 50881  i2 = i2 | 0;
 50882  i3 = i3 | 0;
 50883  i4 = i4 | 0;
 50884  var i5 = 0, i6 = 0, i7 = 0;
 50885  i5 = STACKTOP;
 50886  STACKTOP = STACKTOP + 16 | 0;
 50887  i6 = i5 | 0;
 50888  i7 = HEAP32[i1 + 48 >> 2] | 0;
 50889  HEAP32[i6 >> 2] = 1624;
 50890  HEAP32[i6 + 4 >> 2] = i7;
 50891  HEAP32[i6 + 8 >> 2] = i2;
 50892  __ZNK14btQuantizedBvh25reportRayOverlappingNodexEP21btNodeOverlapCallbackRK9btVector3S4_(HEAP32[i1 + 52 >> 2] | 0, i6 | 0, i3, i4);
 50893  STACKTOP = i5;
 50894  return;
 50896 function __ZNK17btCollisionObject21serializeSingleObjectEP12btSerializer(i1, i2) {
 50897  i1 = i1 | 0;
 50898  i2 = i2 | 0;
 50899  var i3 = 0, i4 = 0;
 50900  i3 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i1 >> 2] | 0) + 16 >> 2] & 127](i1) | 0;
 50901  i4 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i2 >> 2] | 0) + 16 >> 2] & 31](i2, i3, 1) | 0;
 50902  i3 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 20 >> 2] & 31](i1, HEAP32[i4 + 8 >> 2] | 0, i2) | 0;
 50903  FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i2 >> 2] | 0) + 20 >> 2] & 63](i2, i4, i3, 1245859651, i1);
 50904  return;
 50906 function __ZN11btRigidBody12applyGravityEv(i1) {
 50907  i1 = i1 | 0;
 50908  var d2 = 0.0, d3 = 0.0, i4 = 0;
 50909  if ((HEAP32[i1 + 204 >> 2] & 3 | 0) != 0) {
 50910   return;
 50912  d2 = +HEAPF32[i1 + 360 >> 2] * +HEAPF32[i1 + 344 >> 2];
 50913  d3 = +HEAPF32[i1 + 364 >> 2] * +HEAPF32[i1 + 348 >> 2];
 50914  i4 = i1 + 404 | 0;
 50915  HEAPF32[i4 >> 2] = +HEAPF32[i1 + 356 >> 2] * +HEAPF32[i1 + 340 >> 2] + +HEAPF32[i4 >> 2];
 50916  i4 = i1 + 408 | 0;
 50917  HEAPF32[i4 >> 2] = d2 + +HEAPF32[i4 >> 2];
 50918  i4 = i1 + 412 | 0;
 50919  HEAPF32[i4 >> 2] = d3 + +HEAPF32[i4 >> 2];
 50920  return;
 50922 function __ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer(i1, i2) {
 50923  i1 = i1 | 0;
 50924  i2 = i2 | 0;
 50925  var i3 = 0, i4 = 0;
 50926  i3 = FUNCTION_TABLE_ii[HEAP32[(HEAP32[i1 >> 2] | 0) + 48 >> 2] & 127](i1) | 0;
 50927  i4 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i2 >> 2] | 0) + 16 >> 2] & 31](i2, i3, 1) | 0;
 50928  i3 = FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 52 >> 2] & 31](i1, HEAP32[i4 + 8 >> 2] | 0, i2) | 0;
 50929  FUNCTION_TABLE_viiiii[HEAP32[(HEAP32[i2 >> 2] | 0) + 20 >> 2] & 63](i2, i4, i3, 1346455635, i1);
 50930  return;
 50932 function _memset(i1, i2, i3) {
 50933  i1 = i1 | 0;
 50934  i2 = i2 | 0;
 50935  i3 = i3 | 0;
 50936  var i4 = 0, i5 = 0, i6 = 0;
 50937  i4 = i1 + i3 | 0;
 50938  if ((i3 | 0) >= 20) {
 50939   i2 = i2 & 255;
 50940   i3 = i1 & 3;
 50941   i5 = i2 | i2 << 8 | i2 << 16 | i2 << 24;
 50942   i6 = i4 & ~3;
 50943   if (i3) {
 50944    i3 = i1 + 4 - i3 | 0;
 50945    while ((i1 | 0) < (i3 | 0)) {
 50946     HEAP8[i1] = i2;
 50947     i1 = i1 + 1 | 0;
 50950   while ((i1 | 0) < (i6 | 0)) {
 50951    HEAP32[i1 >> 2] = i5;
 50952    i1 = i1 + 4 | 0;
 50955  while ((i1 | 0) < (i4 | 0)) {
 50956   HEAP8[i1] = i2;
 50957   i1 = i1 + 1 | 0;
 50960 function __ZNK16btCollisionShape9serializeEPvP12btSerializer(i1, i2, i3) {
 50961  i1 = i1 | 0;
 50962  i2 = i2 | 0;
 50963  i3 = i3 | 0;
 50964  var i4 = 0, i5 = 0, i6 = 0;
 50965  i4 = i3;
 50966  i5 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i4 >> 2] | 0) + 40 >> 2] & 63](i3, i1) | 0;
 50967  i6 = FUNCTION_TABLE_iii[HEAP32[(HEAP32[i4 >> 2] | 0) + 28 >> 2] & 63](i3, i5) | 0;
 50968  HEAP32[i2 >> 2] = i6;
 50969  if ((i6 | 0) != 0) {
 50970   FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 48 >> 2] & 127](i3, i5);
 50972  HEAP32[i2 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
 50973  return 1064;
 50975 function __ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i1, i2) {
 50976  i1 = i1 | 0;
 50977  i2 = i2 | 0;
 50978  var i3 = 0;
 50979  i3 = i2 + 40 | 0;
 50980  if ((HEAP32[i3 >> 2] | 0) != 0) {
 50981   __ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i1, HEAP32[i2 + 36 >> 2] | 0);
 50982   __ZL17recursedeletenodeP6btDbvtP10btDbvtNode(i1, HEAP32[i3 >> 2] | 0);
 50984  i3 = i1 | 0;
 50985  if ((HEAP32[i3 >> 2] | 0) == (i2 | 0)) {
 50986   HEAP32[i3 >> 2] = 0;
 50988  i3 = i1 + 4 | 0;
 50989  __Z21btAlignedFreeInternalPv(HEAP32[i3 >> 2] | 0);
 50990  HEAP32[i3 >> 2] = i2;
 50991  return;
 50993 function __ZNK16btCollisionShape20getAngularMotionDiscEv(i1) {
 50994  i1 = i1 | 0;
 50995  var i2 = 0, i3 = 0, i4 = 0, d5 = 0.0, d6 = 0.0, d7 = 0.0, d8 = 0.0;
 50996  i2 = STACKTOP;
 50997  STACKTOP = STACKTOP + 24 | 0;
 50998  i3 = i2 | 0;
 50999  i4 = i2 + 16 | 0;
 51000  FUNCTION_TABLE_viii[HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] & 127](i1, i3, i4);
 51001  d5 = +HEAPF32[i3 >> 2];
 51002  d6 = +HEAPF32[i3 + 4 >> 2];
 51003  d7 = +HEAPF32[i3 + 8 >> 2];
 51004  d8 = +Math_sqrt(+(d5 * d5 + d6 * d6 + d7 * d7));
 51005  STACKTOP = i2;
 51006  return +(d8 + +HEAPF32[i4 >> 2]);
 51008 function __ZN11btRigidBodyD0Ev(i1) {
 51009  i1 = i1 | 0;
 51010  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
 51011  HEAP32[i1 >> 2] = 4936;
 51012  i2 = i1 + 480 | 0;
 51013  i3 = i1 + 488 | 0;
 51014  i4 = HEAP32[i3 >> 2] | 0;
 51015  i5 = i1 + 492 | 0;
 51016  if ((i4 | 0) != 0) {
 51017   if ((HEAP8[i5] | 0) != 0) {
 51018    __Z21btAlignedFreeInternalPv(i4);
 51020   HEAP32[i3 >> 2] = 0;
 51022  HEAP8[i5] = 1;
 51023  HEAP32[i3 >> 2] = 0;
 51024  HEAP32[i2 >> 2] = 0;
 51025  HEAP32[i1 + 484 >> 2] = 0;
 51026  __ZN17btCollisionObjectD2Ev(i1 | 0);
 51027  __Z21btAlignedFreeInternalPv(i1);
 51028  return;
 51030 function __Znwj(i1) {
 51031  i1 = i1 | 0;
 51032  var i2 = 0, i3 = 0, i4 = 0;
 51033  i2 = (i1 | 0) == 0 ? 1 : i1;
 51034  while (1) {
 51035   i3 = _malloc(i2) | 0;
 51036   if ((i3 | 0) != 0) {
 51037    i4 = 566;
 51038    break;
 51040   i1 = (tempValue = HEAP32[3580] | 0, HEAP32[3580] = tempValue + 0, tempValue);
 51041   if ((i1 | 0) == 0) {
 51042    break;
 51044   FUNCTION_TABLE_v[i1 & 3]();
 51046  if ((i4 | 0) == 566) {
 51047   return i3 | 0;
 51049  i3 = ___cxa_allocate_exception(4) | 0;
 51050  HEAP32[i3 >> 2] = 1896;
 51051  ___cxa_throw(i3 | 0, 10592, 32);
 51052  return 0;
 51054 function __ZN21btCollisionDispatcher25dispatchAllCollisionPairsEP22btOverlappingPairCacheRK16btDispatcherInfoP12btDispatcher(i1, i2, i3, i4) {
 51055  i1 = i1 | 0;
 51056  i2 = i2 | 0;
 51057  i3 = i3 | 0;
 51058  i4 = i4 | 0;
 51059  var i5 = 0, i6 = 0;
 51060  i5 = STACKTOP;
 51061  STACKTOP = STACKTOP + 16 | 0;
 51062  i6 = i5 | 0;
 51063  HEAP32[i6 >> 2] = 3504;
 51064  HEAP32[i6 + 4 >> 2] = i3;
 51065  HEAP32[i6 + 8 >> 2] = i1;
 51066  FUNCTION_TABLE_viii[HEAP32[(HEAP32[i2 >> 2] | 0) + 48 >> 2] & 127](i2, i6 | 0, i4);
 51067  STACKTOP = i5;
 51068  return;
 51070 function __ZN21btCollisionDispatcherD0Ev(i1) {
 51071  i1 = i1 | 0;
 51072  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
 51073  HEAP32[i1 >> 2] = 3784;
 51074  i2 = i1 + 12 | 0;
 51075  i3 = i1 + 20 | 0;
 51076  i4 = HEAP32[i3 >> 2] | 0;
 51077  i5 = i1 + 24 | 0;
 51078  if ((i4 | 0) != 0) {
 51079   if ((HEAP8[i5] | 0) != 0) {
 51080    __Z21btAlignedFreeInternalPv(i4);
 51082   HEAP32[i3 >> 2] = 0;
 51084  HEAP8[i5] = 1;
 51085  HEAP32[i3 >> 2] = 0;
 51086  HEAP32[i2 >> 2] = 0;
 51087  HEAP32[i1 + 16 >> 2] = 0;
 51088  __ZN12btDispatcherD2Ev(i1 | 0);
 51089  __ZdlPv(i1);
 51090  return;
 51092 function __ZN21btCollisionDispatcher26allocateCollisionAlgorithmEi(i1, i2) {
 51093  i1 = i1 | 0;
 51094  i2 = i2 | 0;
 51095  var i3 = 0, i4 = 0, i5 = 0;
 51096  i3 = HEAP32[i1 + 192 >> 2] | 0;
 51097  i1 = i3 + 8 | 0;
 51098  i4 = HEAP32[i1 >> 2] | 0;
 51099  if ((i4 | 0) == 0) {
 51100   i5 = __Z22btAlignedAllocInternalji(i2, 16) | 0;
 51101   return i5 | 0;
 51102  } else {
 51103   i2 = i3 + 12 | 0;
 51104   i3 = HEAP32[i2 >> 2] | 0;
 51105   HEAP32[i2 >> 2] = HEAP32[i3 >> 2];
 51106   HEAP32[i1 >> 2] = i4 - 1;
 51107   i5 = i3;
 51108   return i5 | 0;
 51110  return 0;
 51112 function __ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNodeS2_(i1, i2, i3) {
 51113  i1 = i1 | 0;
 51114  i2 = i2 | 0;
 51115  i3 = i3 | 0;
 51116  var i4 = 0;
 51117  if ((i2 | 0) == (i3 | 0)) {
 51118   return;
 51120  i4 = i1 + 4 | 0;
 51121  i1 = HEAP32[(HEAP32[i4 >> 2] | 0) + 96 >> 2] | 0;
 51122  FUNCTION_TABLE_iiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] & 31](i1 | 0, HEAP32[i2 + 36 >> 2] | 0, HEAP32[i3 + 36 >> 2] | 0) | 0;
 51123  i3 = (HEAP32[i4 >> 2] | 0) + 120 | 0;
 51124  HEAP32[i3 >> 2] = (HEAP32[i3 >> 2] | 0) + 1;
 51125  return;
 51127 function __ZN12CProfileNodeD2Ev(i1) {
 51128  i1 = i1 | 0;
 51129  var i2 = 0;
 51130  i2 = HEAP32[i1 + 24 >> 2] | 0;
 51131  if ((i2 | 0) != 0) {
 51132   __ZN12CProfileNodeD2Ev(i2);
 51133   __ZdlPv(i2);
 51135  i2 = HEAP32[i1 + 28 >> 2] | 0;
 51136  if ((i2 | 0) == 0) {
 51137   return;
 51139  i1 = HEAP32[i2 + 24 >> 2] | 0;
 51140  if ((i1 | 0) != 0) {
 51141   __ZN12CProfileNodeD2Ev(i1);
 51142   __ZdlPv(i1);
 51144  i1 = HEAP32[i2 + 28 >> 2] | 0;
 51145  if ((i1 | 0) != 0) {
 51146   __ZN12CProfileNodeD2Ev(i1);
 51147   __ZdlPv(i1);
 51149  __ZdlPv(i2);
 51150  return;
 51152 function __ZN24btConvexTriangleCallbackD0Ev(i1) {
 51153  i1 = i1 | 0;
 51154  var i2 = 0, i3 = 0, i4 = 0;
 51155  HEAP32[i1 >> 2] = 3104;
 51156  i2 = i1 + 48 | 0;
 51157  i3 = HEAP32[i2 >> 2] | 0;
 51158  i4 = i1 + 64 | 0;
 51159  FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 20 >> 2] & 127](i3, HEAP32[i4 >> 2] | 0);
 51160  i3 = HEAP32[i2 >> 2] | 0;
 51161  FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i3, HEAP32[i4 >> 2] | 0);
 51162  __ZN18btTriangleCallbackD2Ev(i1 | 0);
 51163  __ZdlPv(i1);
 51164  return;
 51166 function __ZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher(i1, i2, i3) {
 51167  i1 = i1 | 0;
 51168  i2 = i2 | 0;
 51169  i3 = i3 | 0;
 51170  var i4 = 0, i5 = 0;
 51171  i4 = STACKTOP;
 51172  STACKTOP = STACKTOP + 16 | 0;
 51173  i5 = i4 | 0;
 51174  HEAP32[i5 >> 2] = 1488;
 51175  HEAP32[i5 + 4 >> 2] = i2;
 51176  HEAP32[i5 + 8 >> 2] = i1;
 51177  HEAP32[i5 + 12 >> 2] = i3;
 51178  FUNCTION_TABLE_viii[HEAP32[(HEAP32[i1 >> 2] | 0) + 48 >> 2] & 127](i1, i5 | 0, i3);
 51179  STACKTOP = i4;
 51180  return;
 51182 function __ZN21btCollisionDispatcherD2Ev(i1) {
 51183  i1 = i1 | 0;
 51184  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
 51185  HEAP32[i1 >> 2] = 3784;
 51186  i2 = i1 + 12 | 0;
 51187  i3 = i1 + 20 | 0;
 51188  i4 = HEAP32[i3 >> 2] | 0;
 51189  i5 = i1 + 24 | 0;
 51190  if ((i4 | 0) != 0) {
 51191   if ((HEAP8[i5] | 0) != 0) {
 51192    __Z21btAlignedFreeInternalPv(i4);
 51194   HEAP32[i3 >> 2] = 0;
 51196  HEAP8[i5] = 1;
 51197  HEAP32[i3 >> 2] = 0;
 51198  HEAP32[i2 >> 2] = 0;
 51199  HEAP32[i1 + 16 >> 2] = 0;
 51200  __ZN12btDispatcherD2Ev(i1 | 0);
 51201  return;
 51203 function __ZN11btRigidBodyD1Ev(i1) {
 51204  i1 = i1 | 0;
 51205  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
 51206  HEAP32[i1 >> 2] = 4936;
 51207  i2 = i1 + 480 | 0;
 51208  i3 = i1 + 488 | 0;
 51209  i4 = HEAP32[i3 >> 2] | 0;
 51210  i5 = i1 + 492 | 0;
 51211  if ((i4 | 0) != 0) {
 51212   if ((HEAP8[i5] | 0) != 0) {
 51213    __Z21btAlignedFreeInternalPv(i4);
 51215   HEAP32[i3 >> 2] = 0;
 51217  HEAP8[i5] = 1;
 51218  HEAP32[i3 >> 2] = 0;
 51219  HEAP32[i2 >> 2] = 0;
 51220  HEAP32[i1 + 484 >> 2] = 0;
 51221  __ZN17btCollisionObjectD2Ev(i1 | 0);
 51222  return;
 51224 function __ZNK13btSphereShape21calculateLocalInertiaEfR9btVector3(i1, d2, i3) {
 51225  i1 = i1 | 0;
 51226  d2 = +d2;
 51227  i3 = i3 | 0;
 51228  var i4 = 0, d5 = 0.0;
 51229  i4 = i1;
 51230  d5 = d2 * .4000000059604645 * +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i4 >> 2] | 0) + 44 >> 2] & 7](i1);
 51231  d2 = d5 * +FUNCTION_TABLE_fi[HEAP32[(HEAP32[i4 >> 2] | 0) + 44 >> 2] & 7](i1);
 51232  HEAPF32[i3 >> 2] = d2;
 51233  HEAPF32[i3 + 4 >> 2] = d2;
 51234  HEAPF32[i3 + 8 >> 2] = d2;
 51235  HEAPF32[i3 + 12 >> 2] = 0.0;
 51236  return;
 51238 function __ZN24btConvexTriangleCallbackD2Ev(i1) {
 51239  i1 = i1 | 0;
 51240  var i2 = 0, i3 = 0, i4 = 0;
 51241  HEAP32[i1 >> 2] = 3104;
 51242  i2 = i1 + 48 | 0;
 51243  i3 = HEAP32[i2 >> 2] | 0;
 51244  i4 = i1 + 64 | 0;
 51245  FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 20 >> 2] & 127](i3, HEAP32[i4 >> 2] | 0);
 51246  i3 = HEAP32[i2 >> 2] | 0;
 51247  FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i3, HEAP32[i4 >> 2] | 0);
 51248  __ZN18btTriangleCallbackD2Ev(i1 | 0);
 51249  return;
 51251 function __ZN34btSphereTriangleCollisionAlgorithmD0Ev(i1) {
 51252  i1 = i1 | 0;
 51253  var i2 = 0, i3 = 0;
 51254  HEAP32[i1 >> 2] = 2424;
 51255  do {
 51256   if ((HEAP8[i1 + 8 | 0] | 0) != 0) {
 51257    i2 = HEAP32[i1 + 12 >> 2] | 0;
 51258    if ((i2 | 0) == 0) {
 51259     break;
 51261    i3 = HEAP32[i1 + 4 >> 2] | 0;
 51262    FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i3, i2);
 51264  } while (0);
 51265  __ZN30btActivatingCollisionAlgorithmD2Ev(i1 | 0);
 51266  __ZdlPv(i1);
 51267  return;
 51269 function __ZN21btCollisionDispatcher13needsResponseEP17btCollisionObjectS1_(i1, i2, i3) {
 51270  i1 = i1 | 0;
 51271  i2 = i2 | 0;
 51272  i3 = i3 | 0;
 51273  var i4 = 0;
 51274  i1 = HEAP32[i2 + 204 >> 2] | 0;
 51275  do {
 51276   if ((i1 & 4 | 0) == 0) {
 51277    i2 = HEAP32[i3 + 204 >> 2] | 0;
 51278    if ((i2 & 4 | 0) != 0) {
 51279     i4 = 0;
 51280     break;
 51282    if ((i1 & 3 | 0) == 0) {
 51283     i4 = 1;
 51284     break;
 51286    i4 = (i2 & 3 | 0) == 0;
 51287   } else {
 51288    i4 = 0;
 51290  } while (0);
 51291  return i4 | 0;
 51293 function __ZN32btSphereSphereCollisionAlgorithmD0Ev(i1) {
 51294  i1 = i1 | 0;
 51295  var i2 = 0, i3 = 0;
 51296  HEAP32[i1 >> 2] = 2568;
 51297  do {
 51298   if ((HEAP8[i1 + 8 | 0] | 0) != 0) {
 51299    i2 = HEAP32[i1 + 12 >> 2] | 0;
 51300    if ((i2 | 0) == 0) {
 51301     break;
 51303    i3 = HEAP32[i1 + 4 >> 2] | 0;
 51304    FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i3, i2);
 51306  } while (0);
 51307  __ZN30btActivatingCollisionAlgorithmD2Ev(i1 | 0);
 51308  __ZdlPv(i1);
 51309  return;
 51311 function __ZN21btCollisionDispatcher13clearManifoldEP20btPersistentManifold(i1, i2) {
 51312  i1 = i1 | 0;
 51313  i2 = i2 | 0;
 51314  var i3 = 0;
 51315  i1 = i2 + 1116 | 0;
 51316  if ((HEAP32[i1 >> 2] | 0) > 0) {
 51317   i3 = 0;
 51318  } else {
 51319   HEAP32[i1 >> 2] = 0;
 51320   return;
 51322  do {
 51323   __ZN20btPersistentManifold14clearUserCacheER15btManifoldPoint(i2, i2 + 4 + (i3 * 276 | 0) | 0);
 51324   i3 = i3 + 1 | 0;
 51325  } while ((i3 | 0) < (HEAP32[i1 >> 2] | 0));
 51326  HEAP32[i1 >> 2] = 0;
 51327  return;
 51329 function copyTempDouble(i1) {
 51330  i1 = i1 | 0;
 51331  HEAP8[tempDoublePtr] = HEAP8[i1];
 51332  HEAP8[tempDoublePtr + 1 | 0] = HEAP8[i1 + 1 | 0];
 51333  HEAP8[tempDoublePtr + 2 | 0] = HEAP8[i1 + 2 | 0];
 51334  HEAP8[tempDoublePtr + 3 | 0] = HEAP8[i1 + 3 | 0];
 51335  HEAP8[tempDoublePtr + 4 | 0] = HEAP8[i1 + 4 | 0];
 51336  HEAP8[tempDoublePtr + 5 | 0] = HEAP8[i1 + 5 | 0];
 51337  HEAP8[tempDoublePtr + 6 | 0] = HEAP8[i1 + 6 | 0];
 51338  HEAP8[tempDoublePtr + 7 | 0] = HEAP8[i1 + 7 | 0];
 51340 function __ZN23btDiscreteDynamicsWorld9serializeEP12btSerializer(i1, i2) {
 51341  i1 = i1 | 0;
 51342  i2 = i2 | 0;
 51343  var i3 = 0;
 51344  i3 = i2;
 51345  FUNCTION_TABLE_vi[HEAP32[(HEAP32[i3 >> 2] | 0) + 32 >> 2] & 511](i2);
 51346  __ZN23btDiscreteDynamicsWorld20serializeRigidBodiesEP12btSerializer(i1, i2);
 51347  __ZN16btCollisionWorld25serializeCollisionObjectsEP12btSerializer(i1 | 0, i2);
 51348  FUNCTION_TABLE_vi[HEAP32[(HEAP32[i3 >> 2] | 0) + 36 >> 2] & 511](i2);
 51349  return;
 51351 function __ZN31btConvexPlaneCollisionAlgorithmD0Ev(i1) {
 51352  i1 = i1 | 0;
 51353  var i2 = 0, i3 = 0, i4 = 0;
 51354  HEAP32[i1 >> 2] = 2656;
 51355  if ((HEAP8[i1 + 8 | 0] | 0) == 0) {
 51356   i2 = i1;
 51357   __ZdlPv(i2);
 51358   return;
 51360  i3 = HEAP32[i1 + 12 >> 2] | 0;
 51361  if ((i3 | 0) == 0) {
 51362   i2 = i1;
 51363   __ZdlPv(i2);
 51364   return;
 51366  i4 = HEAP32[i1 + 4 >> 2] | 0;
 51367  FUNCTION_TABLE_vii[HEAP32[(HEAP32[i4 >> 2] | 0) + 16 >> 2] & 127](i4, i3);
 51368  i2 = i1;
 51369  __ZdlPv(i2);
 51370  return;
 51372 function __ZN26btBoxBoxCollisionAlgorithmD0Ev(i1) {
 51373  i1 = i1 | 0;
 51374  var i2 = 0, i3 = 0;
 51375  HEAP32[i1 >> 2] = 2960;
 51376  do {
 51377   if ((HEAP8[i1 + 8 | 0] | 0) != 0) {
 51378    i2 = HEAP32[i1 + 12 >> 2] | 0;
 51379    if ((i2 | 0) == 0) {
 51380     break;
 51382    i3 = HEAP32[i1 + 4 >> 2] | 0;
 51383    FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i3, i2);
 51385  } while (0);
 51386  __ZN30btActivatingCollisionAlgorithmD2Ev(i1 | 0);
 51387  __ZdlPv(i1);
 51388  return;
 51390 function __ZN23btConvexConvexAlgorithmD0Ev(i1) {
 51391  i1 = i1 | 0;
 51392  var i2 = 0, i3 = 0;
 51393  HEAP32[i1 >> 2] = 3464;
 51394  do {
 51395   if ((HEAP8[i1 + 16 | 0] | 0) != 0) {
 51396    i2 = HEAP32[i1 + 20 >> 2] | 0;
 51397    if ((i2 | 0) == 0) {
 51398     break;
 51400    i3 = HEAP32[i1 + 4 >> 2] | 0;
 51401    FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i3, i2);
 51403  } while (0);
 51404  __ZN30btActivatingCollisionAlgorithmD2Ev(i1 | 0);
 51405  __ZdlPv(i1);
 51406  return;
 51408 function __ZN22btVoronoiSimplexSolver5resetEv(i1) {
 51409  i1 = i1 | 0;
 51410  var i2 = 0;
 51411  HEAP8[i1 + 312 | 0] = 0;
 51412  HEAP32[i1 >> 2] = 0;
 51413  HEAP8[i1 + 356 | 0] = 1;
 51414  HEAPF32[i1 + 292 >> 2] = 999999984306749400.0;
 51415  HEAPF32[i1 + 296 >> 2] = 999999984306749400.0;
 51416  HEAPF32[i1 + 300 >> 2] = 999999984306749400.0;
 51417  HEAPF32[i1 + 304 >> 2] = 0.0;
 51418  i2 = i1 + 332 | 0;
 51419  _memset(i1 + 336 | 0, 0, 17);
 51420  HEAP16[i2 >> 1] = HEAP16[i2 >> 1] & -16;
 51421  return;
 51423 function __ZN34btSphereTriangleCollisionAlgorithmD2Ev(i1) {
 51424  i1 = i1 | 0;
 51425  var i2 = 0, i3 = 0;
 51426  HEAP32[i1 >> 2] = 2424;
 51427  do {
 51428   if ((HEAP8[i1 + 8 | 0] | 0) != 0) {
 51429    i2 = HEAP32[i1 + 12 >> 2] | 0;
 51430    if ((i2 | 0) == 0) {
 51431     break;
 51433    i3 = HEAP32[i1 + 4 >> 2] | 0;
 51434    FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i3, i2);
 51436  } while (0);
 51437  __ZN30btActivatingCollisionAlgorithmD2Ev(i1 | 0);
 51438  return;
 51440 function __ZN32btSphereSphereCollisionAlgorithmD2Ev(i1) {
 51441  i1 = i1 | 0;
 51442  var i2 = 0, i3 = 0;
 51443  HEAP32[i1 >> 2] = 2568;
 51444  do {
 51445   if ((HEAP8[i1 + 8 | 0] | 0) != 0) {
 51446    i2 = HEAP32[i1 + 12 >> 2] | 0;
 51447    if ((i2 | 0) == 0) {
 51448     break;
 51450    i3 = HEAP32[i1 + 4 >> 2] | 0;
 51451    FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i3, i2);
 51453  } while (0);
 51454  __ZN30btActivatingCollisionAlgorithmD2Ev(i1 | 0);
 51455  return;
 51457 function __ZN28btHashedOverlappingPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher(i1, i2, i3) {
 51458  i1 = i1 | 0;
 51459  i2 = i2 | 0;
 51460  i3 = i3 | 0;
 51461  i1 = i2 + 8 | 0;
 51462  i2 = HEAP32[i1 >> 2] | 0;
 51463  if ((i2 | 0) == 0) {
 51464   return;
 51466  FUNCTION_TABLE_vi[HEAP32[HEAP32[i2 >> 2] >> 2] & 511](i2);
 51467  FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 60 >> 2] & 127](i3, HEAP32[i1 >> 2] | 0);
 51468  HEAP32[i1 >> 2] = 0;
 51469  return;
 51471 function __ZN26btBoxBoxCollisionAlgorithmD2Ev(i1) {
 51472  i1 = i1 | 0;
 51473  var i2 = 0, i3 = 0;
 51474  HEAP32[i1 >> 2] = 2960;
 51475  do {
 51476   if ((HEAP8[i1 + 8 | 0] | 0) != 0) {
 51477    i2 = HEAP32[i1 + 12 >> 2] | 0;
 51478    if ((i2 | 0) == 0) {
 51479     break;
 51481    i3 = HEAP32[i1 + 4 >> 2] | 0;
 51482    FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i3, i2);
 51484  } while (0);
 51485  __ZN30btActivatingCollisionAlgorithmD2Ev(i1 | 0);
 51486  return;
 51488 function __ZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher(i1, i2, i3) {
 51489  i1 = i1 | 0;
 51490  i2 = i2 | 0;
 51491  i3 = i3 | 0;
 51492  var i4 = 0, i5 = 0;
 51493  i4 = STACKTOP;
 51494  STACKTOP = STACKTOP + 8 | 0;
 51495  i5 = i4 | 0;
 51496  HEAP32[i5 >> 2] = 1456;
 51497  HEAP32[i5 + 4 >> 2] = i2;
 51498  FUNCTION_TABLE_viii[HEAP32[(HEAP32[i1 >> 2] | 0) + 48 >> 2] & 127](i1, i5 | 0, i3);
 51499  STACKTOP = i4;
 51500  return;
 51502 function __ZN23btConvexConvexAlgorithmD2Ev(i1) {
 51503  i1 = i1 | 0;
 51504  var i2 = 0, i3 = 0;
 51505  HEAP32[i1 >> 2] = 3464;
 51506  do {
 51507   if ((HEAP8[i1 + 16 | 0] | 0) != 0) {
 51508    i2 = HEAP32[i1 + 20 >> 2] | 0;
 51509    if ((i2 | 0) == 0) {
 51510     break;
 51512    i3 = HEAP32[i1 + 4 >> 2] | 0;
 51513    FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i3, i2);
 51515  } while (0);
 51516  __ZN30btActivatingCollisionAlgorithmD2Ev(i1 | 0);
 51517  return;
 51519 function __ZN22btVoronoiSimplexSolver7closestER9btVector3(i1, i2) {
 51520  i1 = i1 | 0;
 51521  i2 = i2 | 0;
 51522  var i3 = 0, i4 = 0;
 51523  i3 = __ZN22btVoronoiSimplexSolver28updateClosestVectorAndPointsEv(i1) | 0;
 51524  i4 = i2;
 51525  i2 = i1 + 276 | 0;
 51526  HEAP32[i4 >> 2] = HEAP32[i2 >> 2];
 51527  HEAP32[i4 + 4 >> 2] = HEAP32[i2 + 4 >> 2];
 51528  HEAP32[i4 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
 51529  HEAP32[i4 + 12 >> 2] = HEAP32[i2 + 12 >> 2];
 51530  return i3 | 0;
 51532 function __ZN18btConvexPolyhedronC2Ev(i1) {
 51533  i1 = i1 | 0;
 51534  HEAP32[i1 >> 2] = 4112;
 51535  HEAP8[i1 + 20 | 0] = 1;
 51536  HEAP32[i1 + 16 >> 2] = 0;
 51537  HEAP32[i1 + 8 >> 2] = 0;
 51538  HEAP32[i1 + 12 >> 2] = 0;
 51539  HEAP8[i1 + 40 | 0] = 1;
 51540  HEAP32[i1 + 36 >> 2] = 0;
 51541  HEAP32[i1 + 28 >> 2] = 0;
 51542  HEAP32[i1 + 32 >> 2] = 0;
 51543  HEAP8[i1 + 60 | 0] = 1;
 51544  HEAP32[i1 + 56 >> 2] = 0;
 51545  HEAP32[i1 + 48 >> 2] = 0;
 51546  HEAP32[i1 + 52 >> 2] = 0;
 51547  return;
 51549 function ___muldsi3(i1, i2) {
 51550  i1 = i1 | 0;
 51551  i2 = i2 | 0;
 51552  var i3 = 0, i4 = 0, i5 = 0, i6 = 0;
 51553  i3 = i1 & 65535;
 51554  i4 = i2 & 65535;
 51555  i5 = Math_imul(i4, i3) | 0;
 51556  i6 = i1 >>> 16;
 51557  i1 = (i5 >>> 16) + (Math_imul(i4, i6) | 0) | 0;
 51558  i4 = i2 >>> 16;
 51559  i2 = Math_imul(i4, i3) | 0;
 51560  return (tempRet0 = (i1 >>> 16) + (Math_imul(i4, i6) | 0) + (((i1 & 65535) + i2 | 0) >>> 16) | 0, i1 + i2 << 16 | i5 & 65535 | 0) | 0;
 51562 function __ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb(i1, i2, i3, i4, i5) {
 51563  i1 = i1 | 0;
 51564  i2 = i2 | 0;
 51565  i3 = i3 | 0;
 51566  i4 = i4 | 0;
 51567  i5 = i5 | 0;
 51568  __ZN17btGjkPairDetector26getClosestPointsNonVirtualERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDraw(i1, i2, i3, i4);
 51569  return;
 51571 function __ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallback14processOverlapER16btBroadphasePair(i1, i2) {
 51572  i1 = i1 | 0;
 51573  i2 = i2 | 0;
 51574  var i3 = 0, i4 = 0;
 51575  i3 = HEAP32[i1 + 4 >> 2] | 0;
 51576  if ((HEAP32[i2 >> 2] | 0) == (i3 | 0)) {
 51577   i4 = 1;
 51578   return i4 | 0;
 51580  i4 = (HEAP32[i2 + 4 >> 2] | 0) == (i3 | 0);
 51581  return i4 | 0;
 51583 function dynCall_iiiiiiiiiiii(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12) {
 51584  i1 = i1 | 0;
 51585  i2 = i2 | 0;
 51586  i3 = i3 | 0;
 51587  i4 = i4 | 0;
 51588  i5 = i5 | 0;
 51589  i6 = i6 | 0;
 51590  i7 = i7 | 0;
 51591  i8 = i8 | 0;
 51592  i9 = i9 | 0;
 51593  i10 = i10 | 0;
 51594  i11 = i11 | 0;
 51595  i12 = i12 | 0;
 51596  return FUNCTION_TABLE_iiiiiiiiiiii[i1 & 7](i2 | 0, i3 | 0, i4 | 0, i5 | 0, i6 | 0, i7 | 0, i8 | 0, i9 | 0, i10 | 0, i11 | 0, i12 | 0) | 0;
 51598 function dynCall_fiiiiiiiiiii(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12) {
 51599  i1 = i1 | 0;
 51600  i2 = i2 | 0;
 51601  i3 = i3 | 0;
 51602  i4 = i4 | 0;
 51603  i5 = i5 | 0;
 51604  i6 = i6 | 0;
 51605  i7 = i7 | 0;
 51606  i8 = i8 | 0;
 51607  i9 = i9 | 0;
 51608  i10 = i10 | 0;
 51609  i11 = i11 | 0;
 51610  i12 = i12 | 0;
 51611  return +FUNCTION_TABLE_fiiiiiiiiiii[i1 & 3](i2 | 0, i3 | 0, i4 | 0, i5 | 0, i6 | 0, i7 | 0, i8 | 0, i9 | 0, i10 | 0, i11 | 0, i12 | 0);
 51613 function __ZN21btConvexInternalShape15setLocalScalingERK9btVector3(i1, i2) {
 51614  i1 = i1 | 0;
 51615  i2 = i2 | 0;
 51616  var d3 = 0.0, d4 = 0.0, d5 = 0.0;
 51617  d3 = +Math_abs(+(+HEAPF32[i2 >> 2]));
 51618  d4 = +Math_abs(+(+HEAPF32[i2 + 4 >> 2]));
 51619  d5 = +Math_abs(+(+HEAPF32[i2 + 8 >> 2]));
 51620  HEAPF32[i1 + 12 >> 2] = d3;
 51621  HEAPF32[i1 + 16 >> 2] = d4;
 51622  HEAPF32[i1 + 20 >> 2] = d5;
 51623  HEAPF32[i1 + 24 >> 2] = 0.0;
 51624  return;
 51626 function __ZN16btDbvtBroadphaseD0Ev(i1) {
 51627  i1 = i1 | 0;
 51628  var i2 = 0, i3 = 0;
 51629  HEAP32[i1 >> 2] = 4392;
 51630  if ((HEAP8[i1 + 152 | 0] | 0) != 0) {
 51631   i2 = i1 + 96 | 0;
 51632   i3 = HEAP32[i2 >> 2] | 0;
 51633   FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
 51634   __Z21btAlignedFreeInternalPv(HEAP32[i2 >> 2] | 0);
 51636  __ZN6btDbvtD2Ev(i1 + 44 | 0);
 51637  __ZN6btDbvtD2Ev(i1 + 4 | 0);
 51638  __ZdlPv(i1);
 51639  return;
 51641 function __ZNK13btSphereShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i(i1, i2, i3, i4) {
 51642  i1 = i1 | 0;
 51643  i2 = i2 | 0;
 51644  i3 = i3 | 0;
 51645  i4 = i4 | 0;
 51646  var i5 = 0;
 51647  if ((i4 | 0) > 0) {
 51648   i5 = 0;
 51649  } else {
 51650   return;
 51652  while (1) {
 51653   i2 = i5 + 1 | 0;
 51654   _memset(i3 + (i5 << 4) | 0, 0, 16);
 51655   if ((i2 | 0) < (i4 | 0)) {
 51656    i5 = i2;
 51657   } else {
 51658    break;
 51661  return;
 51663 function __ZN27btContinuousConvexCollisionC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver(i1, i2, i3, i4, i5) {
 51664  i1 = i1 | 0;
 51665  i2 = i2 | 0;
 51666  i3 = i3 | 0;
 51667  i4 = i4 | 0;
 51668  i5 = i5 | 0;
 51669  HEAP32[i1 >> 2] = 2928;
 51670  HEAP32[i1 + 4 >> 2] = i4;
 51671  HEAP32[i1 + 8 >> 2] = i5;
 51672  HEAP32[i1 + 12 >> 2] = i2;
 51673  HEAP32[i1 + 16 >> 2] = i3;
 51674  HEAP32[i1 + 20 >> 2] = 0;
 51675  return;
 51677 function __ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfENK14LocalInfoAdder14needsCollisionE_1P17btBroadphaseProxy(i1, i2) {
 51678  i1 = i1 | 0;
 51679  i2 = i2 | 0;
 51680  var i3 = 0;
 51681  i3 = HEAP32[i1 + 12 >> 2] | 0;
 51682  return FUNCTION_TABLE_iii[HEAP32[(HEAP32[i3 >> 2] | 0) + 8 >> 2] & 63](i3, i2) | 0;
 51684 function __ZN11btUnionFindD2Ev(i1) {
 51685  i1 = i1 | 0;
 51686  var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
 51687  i2 = i1 + 4 | 0;
 51688  i3 = i1 + 12 | 0;
 51689  i4 = HEAP32[i3 >> 2] | 0;
 51690  i5 = i1 + 16 | 0;
 51691  if ((i4 | 0) != 0) {
 51692   if ((HEAP8[i5] | 0) != 0) {
 51693    __Z21btAlignedFreeInternalPv(i4);
 51695   HEAP32[i3 >> 2] = 0;
 51697  HEAP8[i5] = 1;
 51698  HEAP32[i3 >> 2] = 0;
 51699  HEAP32[i2 >> 2] = 0;
 51700  HEAP32[i1 + 8 >> 2] = 0;
 51701  return;
 51703 function __ZN16btDbvtBroadphaseD2Ev(i1) {
 51704  i1 = i1 | 0;
 51705  var i2 = 0, i3 = 0;
 51706  HEAP32[i1 >> 2] = 4392;
 51707  if ((HEAP8[i1 + 152 | 0] | 0) != 0) {
 51708   i2 = i1 + 96 | 0;
 51709   i3 = HEAP32[i2 >> 2] | 0;
 51710   FUNCTION_TABLE_vi[HEAP32[HEAP32[i3 >> 2] >> 2] & 511](i3);
 51711   __Z21btAlignedFreeInternalPv(HEAP32[i2 >> 2] | 0);
 51713  __ZN6btDbvtD2Ev(i1 + 44 | 0);
 51714  __ZN6btDbvtD2Ev(i1 + 4 | 0);
 51715  return;
 51717 function __ZN23btDiscreteDynamicsWorld21removeCollisionObjectEP17btCollisionObject(i1, i2) {
 51718  i1 = i1 | 0;
 51719  i2 = i2 | 0;
 51720  if ((HEAP32[i2 + 232 >> 2] & 2 | 0) == 0 | (i2 | 0) == 0) {
 51721   __ZN16btCollisionWorld21removeCollisionObjectEP17btCollisionObject(i1 | 0, i2);
 51722   return;
 51723  } else {
 51724   FUNCTION_TABLE_vii[HEAP32[(HEAP32[i1 >> 2] | 0) + 88 >> 2] & 127](i1, i2);
 51725   return;
 51728 function __ZN25btSimulationIslandManagerC2Ev(i1) {
 51729  i1 = i1 | 0;
 51730  HEAP32[i1 >> 2] = 3032;
 51731  __ZN11btUnionFindC2Ev(i1 + 4 | 0);
 51732  HEAP8[i1 + 40 | 0] = 1;
 51733  HEAP32[i1 + 36 >> 2] = 0;
 51734  HEAP32[i1 + 28 >> 2] = 0;
 51735  HEAP32[i1 + 32 >> 2] = 0;
 51736  HEAP8[i1 + 60 | 0] = 1;
 51737  HEAP32[i1 + 56 >> 2] = 0;
 51738  HEAP32[i1 + 48 >> 2] = 0;
 51739  HEAP32[i1 + 52 >> 2] = 0;
 51740  HEAP8[i1 + 64 | 0] = 1;
 51741  return;
 51743 function _llvm_cttz_i32(i1) {
 51744  i1 = i1 | 0;
 51745  var i2 = 0;
 51746  i2 = HEAP8[cttz_i8 + (i1 & 255) | 0] | 0;
 51747  if ((i2 | 0) < 8) return i2 | 0;
 51748  i2 = HEAP8[cttz_i8 + (i1 >> 8 & 255) | 0] | 0;
 51749  if ((i2 | 0) < 8) return i2 + 8 | 0;
 51750  i2 = HEAP8[cttz_i8 + (i1 >> 16 & 255) | 0] | 0;
 51751  if ((i2 | 0) < 8) return i2 + 16 | 0;
 51752  return (HEAP8[cttz_i8 + (i1 >>> 24) | 0] | 0) + 24 | 0;
 51754 function _llvm_ctlz_i32(i1) {
 51755  i1 = i1 | 0;
 51756  var i2 = 0;
 51757  i2 = HEAP8[ctlz_i8 + (i1 >>> 24) | 0] | 0;
 51758  if ((i2 | 0) < 8) return i2 | 0;
 51759  i2 = HEAP8[ctlz_i8 + (i1 >> 16 & 255) | 0] | 0;
 51760  if ((i2 | 0) < 8) return i2 + 8 | 0;
 51761  i2 = HEAP8[ctlz_i8 + (i1 >> 8 & 255) | 0] | 0;
 51762  if ((i2 | 0) < 8) return i2 + 16 | 0;
 51763  return (HEAP8[ctlz_i8 + (i1 & 255) | 0] | 0) + 24 | 0;
 51765 function __ZN11btRigidBodyC2ERKNS_27btRigidBodyConstructionInfoE(i1, i2) {
 51766  i1 = i1 | 0;
 51767  i2 = i2 | 0;
 51768  __ZN17btCollisionObjectC2Ev(i1 | 0);
 51769  HEAP32[i1 >> 2] = 4936;
 51770  HEAP8[i1 + 492 | 0] = 1;
 51771  HEAP32[i1 + 488 >> 2] = 0;
 51772  HEAP32[i1 + 480 >> 2] = 0;
 51773  HEAP32[i1 + 484 >> 2] = 0;
 51774  __ZN11btRigidBody14setupRigidBodyERKNS_27btRigidBodyConstructionInfoE(i1, i2);
 51775  return;
 51777 function dynCall_fiiiiiiiiii(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11) {
 51778  i1 = i1 | 0;
 51779  i2 = i2 | 0;
 51780  i3 = i3 | 0;
 51781  i4 = i4 | 0;
 51782  i5 = i5 | 0;
 51783  i6 = i6 | 0;
 51784  i7 = i7 | 0;
 51785  i8 = i8 | 0;
 51786  i9 = i9 | 0;
 51787  i10 = i10 | 0;
 51788  i11 = i11 | 0;
 51789  return +FUNCTION_TABLE_fiiiiiiiiii[i1 & 7](i2 | 0, i3 | 0, i4 | 0, i5 | 0, i6 | 0, i7 | 0, i8 | 0, i9 | 0, i10 | 0, i11 | 0);
 51791 function __ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEENK15LocalInfoAdder214needsCollisionEP17btBroadphaseProxy(i1, i2) {
 51792  i1 = i1 | 0;
 51793  i2 = i2 | 0;
 51794  var i3 = 0;
 51795  i3 = HEAP32[i1 + 20 >> 2] | 0;
 51796  return FUNCTION_TABLE_iii[HEAP32[(HEAP32[i3 >> 2] | 0) + 8 >> 2] & 63](i3, i2) | 0;
 51798 function dynCall_viiiiffffiif(i1, i2, i3, i4, i5, d6, d7, d8, d9, i10, i11, d12) {
 51799  i1 = i1 | 0;
 51800  i2 = i2 | 0;
 51801  i3 = i3 | 0;
 51802  i4 = i4 | 0;
 51803  i5 = i5 | 0;
 51804  d6 = +d6;
 51805  d7 = +d7;
 51806  d8 = +d8;
 51807  d9 = +d9;
 51808  i10 = i10 | 0;
 51809  i11 = i11 | 0;
 51810  d12 = +d12;
 51811  FUNCTION_TABLE_viiiiffffiif[i1 & 1](i2 | 0, i3 | 0, i4 | 0, i5 | 0, +d6, +d7, +d8, +d9, i10 | 0, i11 | 0, +d12);
 51813 function dynCall_viiiiiiiiii(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11) {
 51814  i1 = i1 | 0;
 51815  i2 = i2 | 0;
 51816  i3 = i3 | 0;
 51817  i4 = i4 | 0;
 51818  i5 = i5 | 0;
 51819  i6 = i6 | 0;
 51820  i7 = i7 | 0;
 51821  i8 = i8 | 0;
 51822  i9 = i9 | 0;
 51823  i10 = i10 | 0;
 51824  i11 = i11 | 0;
 51825  FUNCTION_TABLE_viiiiiiiiii[i1 & 3](i2 | 0, i3 | 0, i4 | 0, i5 | 0, i6 | 0, i7 | 0, i8 | 0, i9 | 0, i10 | 0, i11 | 0);
 51827 function __ZNK14btAngularLimit7getHighEv(i1) {
 51828  i1 = i1 | 0;
 51829  var d2 = 0.0, d3 = 0.0;
 51830  d2 = +_fmod(+(+HEAPF32[i1 >> 2] + +HEAPF32[i1 + 4 >> 2]), 6.2831854820251465);
 51831  if (d2 < -3.1415927410125732) {
 51832   d3 = d2 + 6.2831854820251465;
 51833   return +d3;
 51835  if (d2 <= 3.1415927410125732) {
 51836   d3 = d2;
 51837   return +d3;
 51839  d3 = d2 - 6.2831854820251465;
 51840  return +d3;
 51842 function __ZN23btDiscreteDynamicsWorld11clearForcesEv(i1) {
 51843  i1 = i1 | 0;
 51844  var i2 = 0, i3 = 0;
 51845  i2 = i1 + 204 | 0;
 51846  if ((HEAP32[i2 >> 2] | 0) <= 0) {
 51847   return;
 51849  i3 = i1 + 212 | 0;
 51850  i1 = 0;
 51851  do {
 51852   _memset((HEAP32[(HEAP32[i3 >> 2] | 0) + (i1 << 2) >> 2] | 0) + 404 | 0, 0, 32);
 51853   i1 = i1 + 1 | 0;
 51854  } while ((i1 | 0) < (HEAP32[i2 >> 2] | 0));
 51855  return;
 51857 function __ZNK14btAngularLimit6getLowEv(i1) {
 51858  i1 = i1 | 0;
 51859  var d2 = 0.0, d3 = 0.0;
 51860  d2 = +_fmod(+(+HEAPF32[i1 >> 2] - +HEAPF32[i1 + 4 >> 2]), 6.2831854820251465);
 51861  if (d2 < -3.1415927410125732) {
 51862   d3 = d2 + 6.2831854820251465;
 51863   return +d3;
 51865  if (d2 <= 3.1415927410125732) {
 51866   d3 = d2;
 51867   return +d3;
 51869  d3 = d2 - 6.2831854820251465;
 51870  return +d3;
 51872 function dynCall_viiiifffffif(i1, i2, i3, i4, i5, d6, d7, d8, d9, d10, i11, d12) {
 51873  i1 = i1 | 0;
 51874  i2 = i2 | 0;
 51875  i3 = i3 | 0;
 51876  i4 = i4 | 0;
 51877  i5 = i5 | 0;
 51878  d6 = +d6;
 51879  d7 = +d7;
 51880  d8 = +d8;
 51881  d9 = +d9;
 51882  d10 = +d10;
 51883  i11 = i11 | 0;
 51884  d12 = +d12;
 51885  FUNCTION_TABLE_viiiifffffif[i1 & 1](i2 | 0, i3 | 0, i4 | 0, i5 | 0, +d6, +d7, +d8, +d9, +d10, i11 | 0, +d12);
 51887 function __ZN31btConvexPlaneCollisionAlgorithmD2Ev(i1) {
 51888  i1 = i1 | 0;
 51889  var i2 = 0, i3 = 0;
 51890  HEAP32[i1 >> 2] = 2656;
 51891  if ((HEAP8[i1 + 8 | 0] | 0) == 0) {
 51892   return;
 51894  i2 = HEAP32[i1 + 12 >> 2] | 0;
 51895  if ((i2 | 0) == 0) {
 51896   return;
 51898  i3 = HEAP32[i1 + 4 >> 2] | 0;
 51899  FUNCTION_TABLE_vii[HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] & 127](i3, i2);
 51900  return;
 51902 function __ZN16btCollisionWorld9serializeEP12btSerializer(i1, i2) {
 51903  i1 = i1 | 0;
 51904  i2 = i2 | 0;
 51905  var i3 = 0;
 51906  i3 = i2;
 51907  FUNCTION_TABLE_vi[HEAP32[(HEAP32[i3 >> 2] | 0) + 32 >> 2] & 511](i2);
 51908  __ZN16btCollisionWorld25serializeCollisionObjectsEP12btSerializer(i1, i2);
 51909  FUNCTION_TABLE_vi[HEAP32[(HEAP32[i3 >> 2] | 0) + 36 >> 2] & 511](i2);
 51910  return;
 51912 function __ZNK15btTriangleShape9getVertexEiR9btVector3(i1, i2, i3) {
 51913  i1 = i1 | 0;
 51914  i2 = i2 | 0;
 51915  i3 = i3 | 0;
 51916  var i4 = 0;
 51917  i4 = i3;
 51918  i3 = i1 + 56 + (i2 << 4) | 0;
 51919  HEAP32[i4 >> 2] = HEAP32[i3 >> 2];
 51920  HEAP32[i4 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
 51921  HEAP32[i4 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
 51922  HEAP32[i4 + 12 >> 2] = HEAP32[i3 + 12 >> 2];
 51923  return;
 51925 function __ZNK15btTriangleShape7getEdgeEiR9btVector3S1_(i1, i2, i3, i4) {
 51926  i1 = i1 | 0;
 51927  i2 = i2 | 0;
 51928  i3 = i3 | 0;
 51929  i4 = i4 | 0;
 51930  var i5 = 0;
 51931  i5 = i1;
 51932  FUNCTION_TABLE_viii[HEAP32[(HEAP32[i5 >> 2] | 0) + 100 >> 2] & 127](i1, i2, i3);
 51933  FUNCTION_TABLE_viii[HEAP32[(HEAP32[i5 >> 2] | 0) + 100 >> 2] & 127](i1, (i2 + 1 | 0) % 3 | 0, i4);
 51934  return;
 51936 function __ZN11btUnionFind5resetEi(i1, i2) {
 51937  i1 = i1 | 0;
 51938  i2 = i2 | 0;
 51939  var i3 = 0;
 51940  __ZN11btUnionFind8allocateEi(i1, i2);
 51941  if ((i2 | 0) <= 0) {
 51942   return;
 51944  i3 = HEAP32[i1 + 12 >> 2] | 0;
 51945  i1 = 0;
 51946  do {
 51947   HEAP32[i3 + (i1 << 3) >> 2] = i1;
 51948   HEAP32[i3 + (i1 << 3) + 4 >> 2] = 1;
 51949   i1 = i1 + 1 | 0;
 51950  } while ((i1 | 0) < (i2 | 0));
 51951  return;
 51953 function __ZL21btAlignedAllocDefaultji(i1, i2) {
 51954  i1 = i1 | 0;
 51955  i2 = i2 | 0;
 51956  var i3 = 0, i4 = 0, i5 = 0;
 51957  i3 = i2 - 1 | 0;
 51958  i4 = FUNCTION_TABLE_ii[HEAP32[2974] & 127](i1 + 4 + i3 | 0) | 0;
 51959  if ((i4 | 0) == 0) {
 51960   i5 = 0;
 51961   return i5 | 0;
 51963  i1 = i2 - (i4 + 4) & i3;
 51964  HEAP32[i4 + i1 >> 2] = i4;
 51965  i5 = i4 + (i1 + 4) | 0;
 51966  return i5 | 0;
 51968 function __ZN23btConvexConvexAlgorithm10CreateFuncC2EP22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver(i1, i2, i3) {
 51969  i1 = i1 | 0;
 51970  i2 = i2 | 0;
 51971  i3 = i3 | 0;
 51972  HEAP8[i1 + 4 | 0] = 0;
 51973  HEAP32[i1 >> 2] = 2184;
 51974  HEAP32[i1 + 16 >> 2] = 0;
 51975  HEAP32[i1 + 20 >> 2] = 3;
 51976  HEAP32[i1 + 12 >> 2] = i2;
 51977  HEAP32[i1 + 8 >> 2] = i3;
 51978  return;
 51980 function dynCall_iiiiiiiiii(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10) {
 51981  i1 = i1 | 0;
 51982  i2 = i2 | 0;
 51983  i3 = i3 | 0;
 51984  i4 = i4 | 0;
 51985  i5 = i5 | 0;
 51986  i6 = i6 | 0;
 51987  i7 = i7 | 0;
 51988  i8 = i8 | 0;
 51989  i9 = i9 | 0;
 51990  i10 = i10 | 0;
 51991  return FUNCTION_TABLE_iiiiiiiiii[i1 & 3](i2 | 0, i3 | 0, i4 | 0, i5 | 0, i6 | 0, i7 | 0, i8 | 0, i9 | 0, i10 | 0) | 0;
 51993 function __ZN20btPersistentManifold14clearUserCacheER15btManifoldPoint(i1, i2) {
 51994  i1 = i1 | 0;
 51995  i2 = i2 | 0;
 51996  var i3 = 0;
 51997  i1 = i2 + 108 | 0;
 51998  i2 = HEAP32[i1 >> 2] | 0;
 51999  if ((i2 | 0) == 0) {
 52000   return;
 52002  i3 = HEAP32[3008] | 0;
 52003  if ((i3 | 0) == 0) {
 52004   return;
 52006  FUNCTION_TABLE_ii[i3 & 127](i2) | 0;
 52007  HEAP32[i1 >> 2] = 0;
 52008  return;
 52010 function __ZN17btCollisionObject8activateEb(i1, i2) {
 52011  i1 = i1 | 0;
 52012  i2 = i2 | 0;
 52013  do {
 52014   if (!i2) {
 52015    if ((HEAP32[i1 + 204 >> 2] & 3 | 0) == 0) {
 52016     break;
 52018    return;
 52020  } while (0);
 52021  i2 = i1 + 216 | 0;
 52022  if (((HEAP32[i2 >> 2] | 0) - 4 | 0) >>> 0 >= 2) {
 52023   HEAP32[i2 >> 2] = 1;
 52025  HEAPF32[i1 + 220 >> 2] = 0.0;
 52026  return;
 52028 function __ZNK16btCollisionWorld20ConvexResultCallback14needsCollisionEP17btBroadphaseProxy(i1, i2) {
 52029  i1 = i1 | 0;
 52030  i2 = i2 | 0;
 52031  var i3 = 0;
 52032  if ((HEAP16[i1 + 10 >> 1] & HEAP16[i2 + 4 >> 1]) << 16 >> 16 == 0) {
 52033   i3 = 0;
 52034   return i3 | 0;
 52036  i3 = (HEAP16[i2 + 6 >> 1] & HEAP16[i1 + 8 >> 1]) << 16 >> 16 != 0;
 52037  return i3 | 0;
 52039 function _llvm_uadd_with_overflow_i64(i1, i2, i3, i4) {
 52040  i1 = i1 | 0;
 52041  i2 = i2 | 0;
 52042  i3 = i3 | 0;
 52043  i4 = i4 | 0;
 52044  var i5 = 0;
 52045  i5 = i1 + i3 >>> 0;
 52046  i3 = i2 + i4 >>> 0;
 52047  i4 = i3 >>> 0 < i2 >>> 0 | 0;
 52048  if (i5 >>> 0 < i1 >>> 0) {
 52049   i3 = i3 + 1 >>> 0;
 52050   i4 = i4 | !i3;
 52052  return (tempRet0 = i3, tempRet1 = i4, i5 | 0) | 0;
 52054 function __ZNK23btDiscreteDynamicsWorld10getGravityEv(i1, i2) {
 52055  i1 = i1 | 0;
 52056  i2 = i2 | 0;
 52057  var i3 = 0;
 52058  i3 = i1;
 52059  i1 = i2 + 220 | 0;
 52060  HEAP32[i3 >> 2] = HEAP32[i1 >> 2];
 52061  HEAP32[i3 + 4 >> 2] = HEAP32[i1 + 4 >> 2];
 52062  HEAP32[i3 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
 52063  HEAP32[i3 + 12 >> 2] = HEAP32[i1 + 12 >> 2];
 52064  return;
 52066 function __ZN23btDiscreteDynamicsWorld19setConstraintSolverEP18btConstraintSolver(i1, i2) {
 52067  i1 = i1 | 0;
 52068  i2 = i2 | 0;
 52069  var i3 = 0, i4 = 0;
 52070  i3 = i1 + 241 | 0;
 52071  i4 = i1 + 172 | 0;
 52072  if ((HEAP8[i3] | 0) != 0) {
 52073   __Z21btAlignedFreeInternalPv(HEAP32[i4 >> 2] | 0);
 52075  HEAP8[i3] = 0;
 52076  HEAP32[i4 >> 2] = i2;
 52077  return;
 52079 function __ZN6btDbvt6removeEP10btDbvtNode(i1, i2) {
 52080  i1 = i1 | 0;
 52081  i2 = i2 | 0;
 52082  var i3 = 0;
 52083  __ZL10removeleafP6btDbvtP10btDbvtNode(i1, i2) | 0;
 52084  i3 = i1 + 4 | 0;
 52085  __Z21btAlignedFreeInternalPv(HEAP32[i3 >> 2] | 0);
 52086  HEAP32[i3 >> 2] = i2;
 52087  i2 = i1 + 12 | 0;
 52088  HEAP32[i2 >> 2] = (HEAP32[i2 >> 2] | 0) - 1;
 52089  return;
 52091 function dynCall_viiiiiffii(i1, i2, i3, i4, i5, i6, d7, d8, i9, i10) {
 52092  i1 = i1 | 0;
 52093  i2 = i2 | 0;
 52094  i3 = i3 | 0;
 52095  i4 = i4 | 0;
 52096  i5 = i5 | 0;
 52097  i6 = i6 | 0;
 52098  d7 = +d7;
 52099  d8 = +d8;
 52100  i9 = i9 | 0;
 52101  i10 = i10 | 0;
 52102  FUNCTION_TABLE_viiiiiffii[i1 & 3](i2 | 0, i3 | 0, i4 | 0, i5 | 0, i6 | 0, +d7, +d8, i9 | 0, i10 | 0);
 52104 function __ZN27btContinuousConvexCollisionC2EPK13btConvexShapePK18btStaticPlaneShape(i1, i2, i3) {
 52105  i1 = i1 | 0;
 52106  i2 = i2 | 0;
 52107  i3 = i3 | 0;
 52108  HEAP32[i1 >> 2] = 2928;
 52109  HEAP32[i1 + 4 >> 2] = 0;
 52110  HEAP32[i1 + 8 >> 2] = 0;
 52111  HEAP32[i1 + 12 >> 2] = i2;
 52112  HEAP32[i1 + 16 >> 2] = 0;
 52113  HEAP32[i1 + 20 >> 2] = i3;
 52114  return;
 52116 function __ZN12CProfileNode5ResetEv(i1) {
 52117  i1 = i1 | 0;
 52118  var i2 = 0;
 52119  i2 = i1;
 52120  do {
 52121   HEAP32[i2 + 4 >> 2] = 0;
 52122   HEAPF32[i2 + 8 >> 2] = 0.0;
 52123   i1 = HEAP32[i2 + 24 >> 2] | 0;
 52124   if ((i1 | 0) != 0) {
 52125    __ZN12CProfileNode5ResetEv(i1);
 52127   i2 = HEAP32[i2 + 28 >> 2] | 0;
 52128  } while ((i2 | 0) != 0);
 52129  return;
 52131 function __ZN30btActivatingCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_(i1, i2, i3, i4) {
 52132  i1 = i1 | 0;
 52133  i2 = i2 | 0;
 52134  i3 = i3 | 0;
 52135  i4 = i4 | 0;
 52136  __ZN20btCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfo(i1 | 0, i2);
 52137  HEAP32[i1 >> 2] = 2728;
 52138  return;
 52140 function ___uremdi3(i1, i2, i3, i4) {
 52141  i1 = i1 | 0;
 52142  i2 = i2 | 0;
 52143  i3 = i3 | 0;
 52144  i4 = i4 | 0;
 52145  var i5 = 0, i6 = 0;
 52146  i5 = STACKTOP;
 52147  STACKTOP = STACKTOP + 8 | 0;
 52148  i6 = i5 | 0;
 52149  ___udivmoddi4(i1, i2, i3, i4, i6) | 0;
 52150  STACKTOP = i5;
 52151  return (tempRet0 = HEAP32[i6 + 4 >> 2] | 0, HEAP32[i6 >> 2] | 0) | 0;
 52153 function __ZN21btConvexInternalShapeC2Ev(i1) {
 52154  i1 = i1 | 0;
 52155  __ZN13btConvexShapeC2Ev(i1 | 0);
 52156  HEAP32[i1 >> 2] = 3680;
 52157  HEAPF32[i1 + 12 >> 2] = 1.0;
 52158  HEAPF32[i1 + 16 >> 2] = 1.0;
 52159  HEAPF32[i1 + 20 >> 2] = 1.0;
 52160  HEAPF32[i1 + 24 >> 2] = 0.0;
 52161  HEAPF32[i1 + 44 >> 2] = .03999999910593033;
 52162  return;
 52164 function __GLOBAL__I_a() {
 52165  var i1 = 0;
 52166  i1 = __Znwj(8) | 0;
 52167  HEAP32[3578] = i1;
 52168  _gettimeofday(i1 | 0, 0) | 0;
 52169  _atexit(336, 14312, ___dso_handle | 0) | 0;
 52170  HEAP32[3564] = 264;
 52171  _memset(14260, 0, 28);
 52172  __ZN12CProfileNode5ResetEv(14256);
 52173  _atexit(246, 14256, ___dso_handle | 0) | 0;
 52174  return;
 52176 function dynCall_viiiiiiii(i1, i2, i3, i4, i5, i6, i7, i8, i9) {
 52177  i1 = i1 | 0;
 52178  i2 = i2 | 0;
 52179  i3 = i3 | 0;
 52180  i4 = i4 | 0;
 52181  i5 = i5 | 0;
 52182  i6 = i6 | 0;
 52183  i7 = i7 | 0;
 52184  i8 = i8 | 0;
 52185  i9 = i9 | 0;
 52186  FUNCTION_TABLE_viiiiiiii[i1 & 3](i2 | 0, i3 | 0, i4 | 0, i5 | 0, i6 | 0, i7 | 0, i8 | 0, i9 | 0);
 52188 function __ZZN33btMinkowskiPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAllocEN20btIntermediateResult20setShapeIdentifiersBEii(i1, i2, i3) {
 52189  i1 = i1 | 0;
 52190  i2 = i2 | 0;
 52191  i3 = i3 | 0;
 52192  return;
 52194 function __ZZN33btMinkowskiPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAllocEN20btIntermediateResult20setShapeIdentifiersAEii(i1, i2, i3) {
 52195  i1 = i1 | 0;
 52196  i2 = i2 | 0;
 52197  i3 = i3 | 0;
 52198  return;
 52200 function __ZN6btDbvtC2Ev(i1) {
 52201  i1 = i1 | 0;
 52202  HEAP8[i1 + 36 | 0] = 1;
 52203  HEAP32[i1 + 32 >> 2] = 0;
 52204  HEAP32[i1 + 24 >> 2] = 0;
 52205  HEAP32[i1 + 28 >> 2] = 0;
 52206  HEAP32[i1 >> 2] = 0;
 52207  HEAP32[i1 + 4 >> 2] = 0;
 52208  HEAP32[i1 + 8 >> 2] = -1;
 52209  HEAP32[i1 + 12 >> 2] = 0;
 52210  HEAP32[i1 + 16 >> 2] = 0;
 52211  return;
 52213 function __ZThn4_N17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii(i1, i2, i3, i4) {
 52214  i1 = i1 | 0;
 52215  i2 = i2 | 0;
 52216  i3 = i3 | 0;
 52217  i4 = i4 | 0;
 52218  var i5 = 0;
 52219  i5 = i1 - 92 + 88 | 0;
 52220  FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i5 >> 2] | 0) + 8 >> 2] & 127](i5, i2, i3, i4);
 52221  return;
 52223 function __ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0E_0v(i1) {
 52224  i1 = i1 | 0;
 52225  __ZN18btTriangleCallbackD2Ev(i1 | 0);
 52226  __ZdlPv(i1);
 52227  return;
 52229 function ___muldi3(i1, i2, i3, i4) {
 52230  i1 = i1 | 0;
 52231  i2 = i2 | 0;
 52232  i3 = i3 | 0;
 52233  i4 = i4 | 0;
 52234  var i5 = 0, i6 = 0;
 52235  i5 = i1;
 52236  i1 = i3;
 52237  i3 = ___muldsi3(i5, i1) | 0;
 52238  i6 = tempRet0;
 52239  return (tempRet0 = (Math_imul(i2, i1) | 0) + (Math_imul(i4, i5) | 0) + i6 | i6 & 0, i3 | 0 | 0) | 0;
 52241 function __ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0Ev(i1) {
 52242  i1 = i1 | 0;
 52243  __ZN18btTriangleCallbackD2Ev(i1 | 0);
 52244  __ZdlPv(i1);
 52245  return;
 52247 function __ZN22btSubsimplexConvexCastC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolver(i1, i2, i3, i4) {
 52248  i1 = i1 | 0;
 52249  i2 = i2 | 0;
 52250  i3 = i3 | 0;
 52251  i4 = i4 | 0;
 52252  HEAP32[i1 >> 2] = 3536;
 52253  HEAP32[i1 + 4 >> 2] = i4;
 52254  HEAP32[i1 + 8 >> 2] = i2;
 52255  HEAP32[i1 + 12 >> 2] = i3;
 52256  return;
 52258 function dynCall_iiiiiiii(i1, i2, i3, i4, i5, i6, i7, i8) {
 52259  i1 = i1 | 0;
 52260  i2 = i2 | 0;
 52261  i3 = i3 | 0;
 52262  i4 = i4 | 0;
 52263  i5 = i5 | 0;
 52264  i6 = i6 | 0;
 52265  i7 = i7 | 0;
 52266  i8 = i8 | 0;
 52267  return FUNCTION_TABLE_iiiiiiii[i1 & 1](i2 | 0, i3 | 0, i4 | 0, i5 | 0, i6 | 0, i7 | 0, i8 | 0) | 0;
 52269 function __ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD0Ev(i1) {
 52270  i1 = i1 | 0;
 52271  __ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD2Ev(i1);
 52272  __ZdlPv(i1);
 52273  return;
 52275 function __ZN23btPolyhedralConvexShapeD0Ev(i1) {
 52276  i1 = i1 | 0;
 52277  var i2 = 0;
 52278  HEAP32[i1 >> 2] = 3136;
 52279  i2 = HEAP32[i1 + 52 >> 2] | 0;
 52280  if ((i2 | 0) != 0) {
 52281   __Z21btAlignedFreeInternalPv(i2);
 52283  __ZN13btConvexShapeD2Ev(i1 | 0);
 52284  __Z21btAlignedFreeInternalPv(i1);
 52285  return;
 52287 function __ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD2E_0v(i1) {
 52288  i1 = i1 | 0;
 52289  __ZN18btTriangleCallbackD2Ev(i1 | 0);
 52290  return;
 52292 function __ZN15btGjkConvexCastC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolver(i1, i2, i3, i4) {
 52293  i1 = i1 | 0;
 52294  i2 = i2 | 0;
 52295  i3 = i3 | 0;
 52296  i4 = i4 | 0;
 52297  HEAP32[i1 >> 2] = 4696;
 52298  HEAP32[i1 + 4 >> 2] = i4;
 52299  HEAP32[i1 + 8 >> 2] = i2;
 52300  HEAP32[i1 + 12 >> 2] = i3;
 52301  return;
 52303 function __ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD2Ev(i1) {
 52304  i1 = i1 | 0;
 52305  __ZN18btTriangleCallbackD2Ev(i1 | 0);
 52306  return;
 52308 function __ZN22SphereTriangleDetectorC2EP13btSphereShapeP15btTriangleShapef(i1, i2, i3, d4) {
 52309  i1 = i1 | 0;
 52310  i2 = i2 | 0;
 52311  i3 = i3 | 0;
 52312  d4 = +d4;
 52313  HEAP32[i1 >> 2] = 3616;
 52314  HEAP32[i1 + 4 >> 2] = i2;
 52315  HEAP32[i1 + 8 >> 2] = i3;
 52316  HEAPF32[i1 + 12 >> 2] = d4;
 52317  return;
 52319 function __ZN11btRigidBody26predictIntegratedTransformEfR11btTransform(i1, d2, i3) {
 52320  i1 = i1 | 0;
 52321  d2 = +d2;
 52322  i3 = i3 | 0;
 52323  __ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_(i1 + 4 | 0, i1 + 304 | 0, i1 + 320 | 0, d2, i3);
 52324  return;
 52326 function __ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD0Ev(i1) {
 52327  i1 = i1 | 0;
 52328  __ZN18btTriangleCallbackD2Ev(i1 | 0);
 52329  __ZdlPv(i1);
 52330  return;
 52332 function __ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0E_0v(i1) {
 52333  i1 = i1 | 0;
 52334  __ZN18btTriangleCallbackD2Ev(i1 | 0);
 52335  __ZdlPv(i1);
 52336  return;
 52338 function __ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0Ev(i1) {
 52339  i1 = i1 | 0;
 52340  __ZN18btTriangleCallbackD2Ev(i1 | 0);
 52341  __ZdlPv(i1);
 52342  return;
 52344 function __ZN23btDiscreteDynamicsWorld18addCollisionObjectEP17btCollisionObjectss(i1, i2, i3, i4) {
 52345  i1 = i1 | 0;
 52346  i2 = i2 | 0;
 52347  i3 = i3 | 0;
 52348  i4 = i4 | 0;
 52349  __ZN16btCollisionWorld18addCollisionObjectEP17btCollisionObjectss(i1 | 0, i2, i3, i4);
 52350  return;
 52352 function __ZN19BroadphaseRayTester7ProcessEPK10btDbvtNode(i1, i2) {
 52353  i1 = i1 | 0;
 52354  i2 = i2 | 0;
 52355  var i3 = 0;
 52356  i3 = HEAP32[i1 + 4 >> 2] | 0;
 52357  FUNCTION_TABLE_iii[HEAP32[(HEAP32[i3 >> 2] | 0) + 8 >> 2] & 63](i3 | 0, HEAP32[i2 + 36 >> 2] | 0) | 0;
 52358  return;
 52360 function __ZZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN13btDummyResult15addContactPointERK9btVector3SA_f(i1, i2, i3, d4) {
 52361  i1 = i1 | 0;
 52362  i2 = i2 | 0;
 52363  i3 = i3 | 0;
 52364  d4 = +d4;
 52365  return;
 52367 function __ZN23btCollisionPairCallback14processOverlapER16btBroadphasePair(i1, i2) {
 52368  i1 = i1 | 0;
 52369  i2 = i2 | 0;
 52370  var i3 = 0;
 52371  i3 = HEAP32[i1 + 8 >> 2] | 0;
 52372  FUNCTION_TABLE_viii[HEAP32[i3 + 188 >> 2] & 127](i2, i3, HEAP32[i1 + 4 >> 2] | 0);
 52373  return 0;
 52375 function __ZN16btDbvtBroadphase25calculateOverlappingPairsEP12btDispatcher(i1, i2) {
 52376  i1 = i1 | 0;
 52377  i2 = i2 | 0;
 52378  __ZN16btDbvtBroadphase7collideEP12btDispatcher(i1, i2);
 52379  __ZN16btDbvtBroadphase22performDeferredRemovalEP12btDispatcher(i1, i2);
 52380  return;
 52382 function __ZN20BroadphaseAabbTester7ProcessEPK10btDbvtNode(i1, i2) {
 52383  i1 = i1 | 0;
 52384  i2 = i2 | 0;
 52385  var i3 = 0;
 52386  i3 = HEAP32[i1 + 4 >> 2] | 0;
 52387  FUNCTION_TABLE_iii[HEAP32[(HEAP32[i3 >> 2] | 0) + 8 >> 2] & 63](i3, HEAP32[i2 + 36 >> 2] | 0) | 0;
 52388  return;
 52390 function __ZZN33btMinkowskiPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAllocEN20btIntermediateResultD0Ev(i1) {
 52391  i1 = i1 | 0;
 52392  __ZdlPv(i1);
 52393  return;
 52395 function dynCall_iiiiiii(i1, i2, i3, i4, i5, i6, i7) {
 52396  i1 = i1 | 0;
 52397  i2 = i2 | 0;
 52398  i3 = i3 | 0;
 52399  i4 = i4 | 0;
 52400  i5 = i5 | 0;
 52401  i6 = i6 | 0;
 52402  i7 = i7 | 0;
 52403  return FUNCTION_TABLE_iiiiiii[i1 & 7](i2 | 0, i3 | 0, i4 | 0, i5 | 0, i6 | 0, i7 | 0) | 0;
 52405 function _bitshift64Ashr(i1, i2, i3) {
 52406  i1 = i1 | 0;
 52407  i2 = i2 | 0;
 52408  i3 = i3 | 0;
 52409  if ((i3 | 0) < 32) {
 52410   tempRet0 = i2 >> i3;
 52411   return i1 >>> i3 | (i2 & (1 << i3) - 1) << 32 - i3;
 52413  tempRet0 = (i2 | 0) < 0 ? -1 : 0;
 52414  return i2 >> i3 - 32 | 0;
 52416 function __ZNK21btConvexInternalShape7getAabbERK11btTransformR9btVector3S4_(i1, i2, i3, i4) {
 52417  i1 = i1 | 0;
 52418  i2 = i2 | 0;
 52419  i3 = i3 | 0;
 52420  i4 = i4 | 0;
 52421  FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 72 >> 2] & 127](i1, i2, i3, i4);
 52422  return;
 52424 function __ZN17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii(i1, i2, i3, i4) {
 52425  i1 = i1 | 0;
 52426  i2 = i2 | 0;
 52427  i3 = i3 | 0;
 52428  i4 = i4 | 0;
 52429  FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] & 127](i1, i2, i3, i4);
 52430  return;
 52432 function b12(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11) {
 52433  i1 = i1 | 0;
 52434  i2 = i2 | 0;
 52435  i3 = i3 | 0;
 52436  i4 = i4 | 0;
 52437  i5 = i5 | 0;
 52438  i6 = i6 | 0;
 52439  i7 = i7 | 0;
 52440  i8 = i8 | 0;
 52441  i9 = i9 | 0;
 52442  i10 = i10 | 0;
 52443  i11 = i11 | 0;
 52444  abort(12);
 52445  return 0.0;
 52447 function __ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD2Ev(i1) {
 52448  i1 = i1 | 0;
 52449  __ZN18btTriangleCallbackD2Ev(i1 | 0);
 52450  return;
 52452 function __ZNK15btTriangleShape7getAabbERK11btTransformR9btVector3S4_(i1, i2, i3, i4) {
 52453  i1 = i1 | 0;
 52454  i2 = i2 | 0;
 52455  i3 = i3 | 0;
 52456  i4 = i4 | 0;
 52457  FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 72 >> 2] & 127](i1 | 0, i2, i3, i4);
 52458  return;
 52460 function b25(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11) {
 52461  i1 = i1 | 0;
 52462  i2 = i2 | 0;
 52463  i3 = i3 | 0;
 52464  i4 = i4 | 0;
 52465  i5 = i5 | 0;
 52466  i6 = i6 | 0;
 52467  i7 = i7 | 0;
 52468  i8 = i8 | 0;
 52469  i9 = i9 | 0;
 52470  i10 = i10 | 0;
 52471  i11 = i11 | 0;
 52472  abort(25);
 52473  return 0;
 52475 function __ZN34btSphereTriangleCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
 52476  i1 = i1 | 0;
 52477  i2 = i2 | 0;
 52478  i3 = i3 | 0;
 52479  i4 = i4 | 0;
 52480  i5 = i5 | 0;
 52481  return +1.0;
 52483 function __ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD2E_0v(i1) {
 52484  i1 = i1 | 0;
 52485  __ZN18btTriangleCallbackD2Ev(i1 | 0);
 52486  return;
 52488 function __ZN32btSphereSphereCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
 52489  i1 = i1 | 0;
 52490  i2 = i2 | 0;
 52491  i3 = i3 | 0;
 52492  i4 = i4 | 0;
 52493  i5 = i5 | 0;
 52494  return +1.0;
 52496 function __ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD2Ev(i1) {
 52497  i1 = i1 | 0;
 52498  __ZN18btTriangleCallbackD2Ev(i1 | 0);
 52499  return;
 52501 function __ZN31btConvexPlaneCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
 52502  i1 = i1 | 0;
 52503  i2 = i2 | 0;
 52504  i3 = i3 | 0;
 52505  i4 = i4 | 0;
 52506  i5 = i5 | 0;
 52507  return +1.0;
 52509 function __ZN23btPolyhedralConvexShapeD2Ev(i1) {
 52510  i1 = i1 | 0;
 52511  var i2 = 0;
 52512  HEAP32[i1 >> 2] = 3136;
 52513  i2 = HEAP32[i1 + 52 >> 2] | 0;
 52514  if ((i2 | 0) != 0) {
 52515   __Z21btAlignedFreeInternalPv(i2);
 52517  __ZN13btConvexShapeD2Ev(i1 | 0);
 52518  return;
 52520 function dynCall_fiiifii(i1, i2, i3, i4, d5, i6, i7) {
 52521  i1 = i1 | 0;
 52522  i2 = i2 | 0;
 52523  i3 = i3 | 0;
 52524  i4 = i4 | 0;
 52525  d5 = +d5;
 52526  i6 = i6 | 0;
 52527  i7 = i7 | 0;
 52528  return +FUNCTION_TABLE_fiiifii[i1 & 7](i2 | 0, i3 | 0, i4 | 0, +d5, i6 | 0, i7 | 0);
 52530 function dynCall_viiiiii(i1, i2, i3, i4, i5, i6, i7) {
 52531  i1 = i1 | 0;
 52532  i2 = i2 | 0;
 52533  i3 = i3 | 0;
 52534  i4 = i4 | 0;
 52535  i5 = i5 | 0;
 52536  i6 = i6 | 0;
 52537  i7 = i7 | 0;
 52538  FUNCTION_TABLE_viiiiii[i1 & 15](i2 | 0, i3 | 0, i4 | 0, i5 | 0, i6 | 0, i7 | 0);
 52540 function __ZN26btBoxBoxCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
 52541  i1 = i1 | 0;
 52542  i2 = i2 | 0;
 52543  i3 = i3 | 0;
 52544  i4 = i4 | 0;
 52545  i5 = i5 | 0;
 52546  return +1.0;
 52548 function __ZZN33btMinkowskiPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAllocEN20btIntermediateResultD2Ev(i1) {
 52549  i1 = i1 | 0;
 52550  return;
 52552 function copyTempFloat(i1) {
 52553  i1 = i1 | 0;
 52554  HEAP8[tempDoublePtr] = HEAP8[i1];
 52555  HEAP8[tempDoublePtr + 1 | 0] = HEAP8[i1 + 1 | 0];
 52556  HEAP8[tempDoublePtr + 2 | 0] = HEAP8[i1 + 2 | 0];
 52557  HEAP8[tempDoublePtr + 3 | 0] = HEAP8[i1 + 3 | 0];
 52559 function _bitshift64Shl(i1, i2, i3) {
 52560  i1 = i1 | 0;
 52561  i2 = i2 | 0;
 52562  i3 = i3 | 0;
 52563  if ((i3 | 0) < 32) {
 52564   tempRet0 = i2 << i3 | (i1 & (1 << i3) - 1 << 32 - i3) >>> 32 - i3;
 52565   return i1 << i3;
 52567  tempRet0 = i1 << i3 - 32;
 52568  return 0;
 52570 function __ZN16btEmptyAlgorithmC2ERK36btCollisionAlgorithmConstructionInfo(i1, i2) {
 52571  i1 = i1 | 0;
 52572  i2 = i2 | 0;
 52573  __ZN20btCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfo(i1 | 0, i2);
 52574  HEAP32[i1 >> 2] = 4352;
 52575  return;
 52577 function __ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNode(i1, i2) {
 52578  i1 = i1 | 0;
 52579  i2 = i2 | 0;
 52580  FUNCTION_TABLE_viii[HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] & 127](i1, i2, HEAP32[(HEAP32[i1 + 8 >> 2] | 0) + 48 >> 2] | 0);
 52581  return;
 52583 function dynCall_viiifii(i1, i2, i3, i4, d5, i6, i7) {
 52584  i1 = i1 | 0;
 52585  i2 = i2 | 0;
 52586  i3 = i3 | 0;
 52587  i4 = i4 | 0;
 52588  d5 = +d5;
 52589  i6 = i6 | 0;
 52590  i7 = i7 | 0;
 52591  FUNCTION_TABLE_viiifii[i1 & 1](i2 | 0, i3 | 0, i4 | 0, +d5, i6 | 0, i7 | 0);
 52593 function __ZZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN13btDummyResult20setShapeIdentifiersBEii(i1, i2, i3) {
 52594  i1 = i1 | 0;
 52595  i2 = i2 | 0;
 52596  i3 = i3 | 0;
 52597  return;
 52599 function __ZZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN13btDummyResult20setShapeIdentifiersAEii(i1, i2, i3) {
 52600  i1 = i1 | 0;
 52601  i2 = i2 | 0;
 52602  i3 = i3 | 0;
 52603  return;
 52605 function _i64Subtract(i1, i2, i3, i4) {
 52606  i1 = i1 | 0;
 52607  i2 = i2 | 0;
 52608  i3 = i3 | 0;
 52609  i4 = i4 | 0;
 52610  var i5 = 0;
 52611  i5 = i2 - i4 >>> 0;
 52612  i5 = i2 - i4 - (i3 >>> 0 > i1 >>> 0 | 0) >>> 0;
 52613  return (tempRet0 = i5, i1 - i3 >>> 0 | 0) | 0;
 52615 function _bitshift64Lshr(i1, i2, i3) {
 52616  i1 = i1 | 0;
 52617  i2 = i2 | 0;
 52618  i3 = i3 | 0;
 52619  if ((i3 | 0) < 32) {
 52620   tempRet0 = i2 >>> i3;
 52621   return i1 >>> i3 | (i2 & (1 << i3) - 1) << 32 - i3;
 52623  tempRet0 = 0;
 52624  return i2 >>> i3 - 32 | 0;
 52626 function __ZNK15btTriangleShape8getPlaneER9btVector3S1_i(i1, i2, i3, i4) {
 52627  i1 = i1 | 0;
 52628  i2 = i2 | 0;
 52629  i3 = i3 | 0;
 52630  i4 = i4 | 0;
 52631  FUNCTION_TABLE_viiii[HEAP32[(HEAP32[i1 >> 2] | 0) + 116 >> 2] & 127](i1, i4, i2, i3);
 52632  return;
 52634 function __ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD0E_1v(i1) {
 52635  i1 = i1 | 0;
 52636  __ZdlPv(i1);
 52637  return;
 52639 function __ZN16btEmptyAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
 52640  i1 = i1 | 0;
 52641  i2 = i2 | 0;
 52642  i3 = i3 | 0;
 52643  i4 = i4 | 0;
 52644  i5 = i5 | 0;
 52645  return +1.0;
 52647 function b23(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10) {
 52648  i1 = i1 | 0;
 52649  i2 = i2 | 0;
 52650  i3 = i3 | 0;
 52651  i4 = i4 | 0;
 52652  i5 = i5 | 0;
 52653  i6 = i6 | 0;
 52654  i7 = i7 | 0;
 52655  i8 = i8 | 0;
 52656  i9 = i9 | 0;
 52657  i10 = i10 | 0;
 52658  abort(23);
 52659  return 0.0;
 52661 function dynCall_viffiii(i1, i2, d3, d4, i5, i6, i7) {
 52662  i1 = i1 | 0;
 52663  i2 = i2 | 0;
 52664  d3 = +d3;
 52665  d4 = +d4;
 52666  i5 = i5 | 0;
 52667  i6 = i6 | 0;
 52668  i7 = i7 | 0;
 52669  FUNCTION_TABLE_viffiii[i1 & 1](i2 | 0, +d3, +d4, i5 | 0, i6 | 0, i7 | 0);
 52671 function __ZN17btCollisionObject18setActivationStateEi(i1, i2) {
 52672  i1 = i1 | 0;
 52673  i2 = i2 | 0;
 52674  var i3 = 0;
 52675  i3 = i1 + 216 | 0;
 52676  if (((HEAP32[i3 >> 2] | 0) - 4 | 0) >>> 0 < 2) {
 52677   return;
 52679  HEAP32[i3 >> 2] = i2;
 52680  return;
 52682 function __ZThn4_N17DebugDrawcallbackD0Ev(i1) {
 52683  i1 = i1 | 0;
 52684  var i2 = 0;
 52685  i2 = i1 - 92 + 88 | 0;
 52686  __ZN31btInternalTriangleIndexCallbackD2Ev(i1 - 92 + 92 | 0);
 52687  __ZN18btTriangleCallbackD2Ev(i2);
 52688  __ZdlPv(i2);
 52689  return;
 52691 function dynCall_fiiiii(i1, i2, i3, i4, i5, i6) {
 52692  i1 = i1 | 0;
 52693  i2 = i2 | 0;
 52694  i3 = i3 | 0;
 52695  i4 = i4 | 0;
 52696  i5 = i5 | 0;
 52697  i6 = i6 | 0;
 52698  return +FUNCTION_TABLE_fiiiii[i1 & 31](i2 | 0, i3 | 0, i4 | 0, i5 | 0, i6 | 0);
 52700 function b9(i1, i2, i3, i4, d5, d6, d7, d8, i9, i10, d11) {
 52701  i1 = i1 | 0;
 52702  i2 = i2 | 0;
 52703  i3 = i3 | 0;
 52704  i4 = i4 | 0;
 52705  d5 = +d5;
 52706  d6 = +d6;
 52707  d7 = +d7;
 52708  d8 = +d8;
 52709  i9 = i9 | 0;
 52710  i10 = i10 | 0;
 52711  d11 = +d11;
 52712  abort(9);
 52714 function __ZN16btEmptyAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult(i1, i2, i3, i4, i5) {
 52715  i1 = i1 | 0;
 52716  i2 = i2 | 0;
 52717  i3 = i3 | 0;
 52718  i4 = i4 | 0;
 52719  i5 = i5 | 0;
 52720  return;
 52722 function b29(i1, i2, i3, i4, d5, d6, d7, d8, d9, i10, d11) {
 52723  i1 = i1 | 0;
 52724  i2 = i2 | 0;
 52725  i3 = i3 | 0;
 52726  i4 = i4 | 0;
 52727  d5 = +d5;
 52728  d6 = +d6;
 52729  d7 = +d7;
 52730  d8 = +d8;
 52731  d9 = +d9;
 52732  i10 = i10 | 0;
 52733  d11 = +d11;
 52734  abort(29);
 52736 function __ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD2E_1v(i1) {
 52737  i1 = i1 | 0;
 52738  return;
 52740 function b28(i1, i2, i3, i4, i5, i6, i7, i8, i9, i10) {
 52741  i1 = i1 | 0;
 52742  i2 = i2 | 0;
 52743  i3 = i3 | 0;
 52744  i4 = i4 | 0;
 52745  i5 = i5 | 0;
 52746  i6 = i6 | 0;
 52747  i7 = i7 | 0;
 52748  i8 = i8 | 0;
 52749  i9 = i9 | 0;
 52750  i10 = i10 | 0;
 52751  abort(28);
 52753 function dynCall_fiifii(i1, i2, i3, d4, i5, i6) {
 52754  i1 = i1 | 0;
 52755  i2 = i2 | 0;
 52756  i3 = i3 | 0;
 52757  d4 = +d4;
 52758  i5 = i5 | 0;
 52759  i6 = i6 | 0;
 52760  return +FUNCTION_TABLE_fiifii[i1 & 7](i2 | 0, i3 | 0, +d4, i5 | 0, i6 | 0);
 52762 function dynCall_viiiii(i1, i2, i3, i4, i5, i6) {
 52763  i1 = i1 | 0;
 52764  i2 = i2 | 0;
 52765  i3 = i3 | 0;
 52766  i4 = i4 | 0;
 52767  i5 = i5 | 0;
 52768  i6 = i6 | 0;
 52769  FUNCTION_TABLE_viiiii[i1 & 63](i2 | 0, i3 | 0, i4 | 0, i5 | 0, i6 | 0);
 52771 function _i64Add(i1, i2, i3, i4) {
 52772  i1 = i1 | 0;
 52773  i2 = i2 | 0;
 52774  i3 = i3 | 0;
 52775  i4 = i4 | 0;
 52776  var i5 = 0;
 52777  i5 = i1 + i3 >>> 0;
 52778  return (tempRet0 = i2 + i4 + (i5 >>> 0 < i1 >>> 0 | 0) >>> 0, i5 | 0) | 0;
 52780 function dynCall_viifii(i1, i2, i3, d4, i5, i6) {
 52781  i1 = i1 | 0;
 52782  i2 = i2 | 0;
 52783  i3 = i3 | 0;
 52784  d4 = +d4;
 52785  i5 = i5 | 0;
 52786  i6 = i6 | 0;
 52787  FUNCTION_TABLE_viifii[i1 & 1](i2 | 0, i3 | 0, +d4, i5 | 0, i6 | 0);
 52789 function dynCall_vifiii(i1, i2, d3, i4, i5, i6) {
 52790  i1 = i1 | 0;
 52791  i2 = i2 | 0;
 52792  d3 = +d3;
 52793  i4 = i4 | 0;
 52794  i5 = i5 | 0;
 52795  i6 = i6 | 0;
 52796  FUNCTION_TABLE_vifiii[i1 & 3](i2 | 0, +d3, i4 | 0, i5 | 0, i6 | 0);
 52798 function b20(i1, i2, i3, i4, i5, i6, i7, i8, i9) {
 52799  i1 = i1 | 0;
 52800  i2 = i2 | 0;
 52801  i3 = i3 | 0;
 52802  i4 = i4 | 0;
 52803  i5 = i5 | 0;
 52804  i6 = i6 | 0;
 52805  i7 = i7 | 0;
 52806  i8 = i8 | 0;
 52807  i9 = i9 | 0;
 52808  abort(20);
 52809  return 0;
 52811 function __ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D0Ev(i1) {
 52812  i1 = i1 | 0;
 52813  __ZdlPv(i1);
 52814  return;
 52816 function __ZN23btDiscreteDynamicsWorld15removeCharacterEP17btActionInterface(i1, i2) {
 52817  i1 = i1 | 0;
 52818  i2 = i2 | 0;
 52819  FUNCTION_TABLE_vii[HEAP32[(HEAP32[i1 >> 2] | 0) + 64 >> 2] & 127](i1, i2);
 52820  return;
 52822 function __ZN23btDiscreteDynamicsWorld13removeVehicleEP17btActionInterface(i1, i2) {
 52823  i1 = i1 | 0;
 52824  i2 = i2 | 0;
 52825  FUNCTION_TABLE_vii[HEAP32[(HEAP32[i1 >> 2] | 0) + 64 >> 2] & 127](i1, i2);
 52826  return;
 52828 function __ZN23btDiscreteDynamicsWorld12addCharacterEP17btActionInterface(i1, i2) {
 52829  i1 = i1 | 0;
 52830  i2 = i2 | 0;
 52831  FUNCTION_TABLE_vii[HEAP32[(HEAP32[i1 >> 2] | 0) + 60 >> 2] & 127](i1, i2);
 52832  return;
 52834 function __ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN9RayTesterD0E_1v(i1) {
 52835  i1 = i1 | 0;
 52836  __ZdlPv(i1);
 52837  return;
 52839 function __ZN23btDiscreteDynamicsWorld10addVehicleEP17btActionInterface(i1, i2) {
 52840  i1 = i1 | 0;
 52841  i2 = i2 | 0;
 52842  FUNCTION_TABLE_vii[HEAP32[(HEAP32[i1 >> 2] | 0) + 60 >> 2] & 127](i1, i2);
 52843  return;
 52845 function __ZN16btBoxBoxDetectorC2EP10btBoxShapeS1_(i1, i2, i3) {
 52846  i1 = i1 | 0;
 52847  i2 = i2 | 0;
 52848  i3 = i3 | 0;
 52849  HEAP32[i1 >> 2] = 4528;
 52850  HEAP32[i1 + 4 >> 2] = i2;
 52851  HEAP32[i1 + 8 >> 2] = i3;
 52852  return;
 52854 function __ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodef(i1, i2, d3) {
 52855  i1 = i1 | 0;
 52856  i2 = i2 | 0;
 52857  d3 = +d3;
 52858  FUNCTION_TABLE_vii[HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] & 127](i1, i2);
 52859  return;
 52861 function __ZN20btCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfo(i1, i2) {
 52862  i1 = i1 | 0;
 52863  i2 = i2 | 0;
 52864  HEAP32[i1 >> 2] = 3896;
 52865  HEAP32[i1 + 4 >> 2] = HEAP32[i2 >> 2];
 52866  return;
 52868 function dynCall_iiiii(i1, i2, i3, i4, i5) {
 52869  i1 = i1 | 0;
 52870  i2 = i2 | 0;
 52871  i3 = i3 | 0;
 52872  i4 = i4 | 0;
 52873  i5 = i5 | 0;
 52874  return FUNCTION_TABLE_iiiii[i1 & 31](i2 | 0, i3 | 0, i4 | 0, i5 | 0) | 0;
 52876 function ___udivdi3(i1, i2, i3, i4) {
 52877  i1 = i1 | 0;
 52878  i2 = i2 | 0;
 52879  i3 = i3 | 0;
 52880  i4 = i4 | 0;
 52881  var i5 = 0;
 52882  i5 = ___udivmoddi4(i1, i2, i3, i4, 0) | 0;
 52883  return (tempRet0 = tempRet0, i5) | 0;
 52885 function __ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD0Ev(i1) {
 52886  i1 = i1 | 0;
 52887  __ZdlPv(i1);
 52888  return;
 52890 function __ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D2Ev(i1) {
 52891  i1 = i1 | 0;
 52892  return;
 52894 function __Z21btAlignedFreeInternalPv(i1) {
 52895  i1 = i1 | 0;
 52896  if ((i1 | 0) == 0) {
 52897   return;
 52899  HEAP32[2998] = (HEAP32[2998] | 0) + 1;
 52900  FUNCTION_TABLE_vi[HEAP32[2972] & 511](i1);
 52901  return;
 52903 function __ZZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN13btDummyResultD0Ev(i1) {
 52904  i1 = i1 | 0;
 52905  __ZdlPv(i1);
 52906  return;
 52908 function __ZNK16btCollisionShape27getContactBreakingThresholdEf(i1, d2) {
 52909  i1 = i1 | 0;
 52910  d2 = +d2;
 52911  return +(+FUNCTION_TABLE_fi[HEAP32[(HEAP32[i1 >> 2] | 0) + 16 >> 2] & 7](i1) * d2);
 52913 function b30(i1, i2, i3, i4, i5, d6, d7, i8, i9) {
 52914  i1 = i1 | 0;
 52915  i2 = i2 | 0;
 52916  i3 = i3 | 0;
 52917  i4 = i4 | 0;
 52918  i5 = i5 | 0;
 52919  d6 = +d6;
 52920  d7 = +d7;
 52921  i8 = i8 | 0;
 52922  i9 = i9 | 0;
 52923  abort(30);
 52925 function __ZThn4_N17DebugDrawcallbackD1Ev(i1) {
 52926  i1 = i1 | 0;
 52927  __ZN31btInternalTriangleIndexCallbackD2Ev(i1 - 92 + 92 | 0);
 52928  __ZN18btTriangleCallbackD2Ev(i1 - 92 + 88 | 0);
 52929  return;
 52931 function __ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN9RayTesterD2E_1v(i1) {
 52932  i1 = i1 | 0;
 52933  return;
 52935 function __ZN18btConstraintSolver9allSolvedERK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc(i1, i2, i3, i4) {
 52936  i1 = i1 | 0;
 52937  i2 = i2 | 0;
 52938  i3 = i3 | 0;
 52939  i4 = i4 | 0;
 52940  return;
 52942 function dynCall_viiii(i1, i2, i3, i4, i5) {
 52943  i1 = i1 | 0;
 52944  i2 = i2 | 0;
 52945  i3 = i3 | 0;
 52946  i4 = i4 | 0;
 52947  i5 = i5 | 0;
 52948  FUNCTION_TABLE_viiii[i1 & 127](i2 | 0, i3 | 0, i4 | 0, i5 | 0);
 52950 function __ZN16btManifoldResult20setShapeIdentifiersBEii(i1, i2, i3) {
 52951  i1 = i1 | 0;
 52952  i2 = i2 | 0;
 52953  i3 = i3 | 0;
 52954  HEAP32[i1 + 148 >> 2] = i2;
 52955  HEAP32[i1 + 156 >> 2] = i3;
 52956  return;
 52958 function __ZN16btManifoldResult20setShapeIdentifiersAEii(i1, i2, i3) {
 52959  i1 = i1 | 0;
 52960  i2 = i2 | 0;
 52961  i3 = i3 | 0;
 52962  HEAP32[i1 + 144 >> 2] = i2;
 52963  HEAP32[i1 + 152 >> 2] = i3;
 52964  return;
 52966 function __ZN28btHashedOverlappingPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback(i1, i2) {
 52967  i1 = i1 | 0;
 52968  i2 = i2 | 0;
 52969  HEAP32[i1 + 72 >> 2] = i2;
 52970  return;
 52972 function dynCall_iifif(i1, i2, d3, i4, d5) {
 52973  i1 = i1 | 0;
 52974  i2 = i2 | 0;
 52975  d3 = +d3;
 52976  i4 = i4 | 0;
 52977  d5 = +d5;
 52978  return FUNCTION_TABLE_iifif[i1 & 3](i2 | 0, +d3, i4 | 0, +d5) | 0;
 52980 function __ZN17btCollisionObject17setCollisionShapeEP16btCollisionShape(i1, i2) {
 52981  i1 = i1 | 0;
 52982  i2 = i2 | 0;
 52983  HEAP32[i1 + 192 >> 2] = i2;
 52984  HEAP32[i1 + 200 >> 2] = i2;
 52985  return;
 52987 function __ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD2Ev(i1) {
 52988  i1 = i1 | 0;
 52989  return;
 52991 function __ZN17DebugDrawcallbackD0Ev(i1) {
 52992  i1 = i1 | 0;
 52993  __ZN31btInternalTriangleIndexCallbackD2Ev(i1 + 4 | 0);
 52994  __ZN18btTriangleCallbackD2Ev(i1 | 0);
 52995  __ZdlPv(i1);
 52996  return;
 52998 function __Z22btAlignedAllocInternalji(i1, i2) {
 52999  i1 = i1 | 0;
 53000  i2 = i2 | 0;
 53001  HEAP32[3e3] = (HEAP32[3e3] | 0) + 1;
 53002  return FUNCTION_TABLE_iii[HEAP32[2970] & 63](i1, i2) | 0;
 53004 function dynCall_viiif(i1, i2, i3, i4, d5) {
 53005  i1 = i1 | 0;
 53006  i2 = i2 | 0;
 53007  i3 = i3 | 0;
 53008  i4 = i4 | 0;
 53009  d5 = +d5;
 53010  FUNCTION_TABLE_viiif[i1 & 15](i2 | 0, i3 | 0, i4 | 0, +d5);
 53012 function __ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD0Ev(i1) {
 53013  i1 = i1 | 0;
 53014  __ZdlPv(i1);
 53015  return;
 53017 function dynCall_viifi(i1, i2, i3, d4, i5) {
 53018  i1 = i1 | 0;
 53019  i2 = i2 | 0;
 53020  i3 = i3 | 0;
 53021  d4 = +d4;
 53022  i5 = i5 | 0;
 53023  FUNCTION_TABLE_viifi[i1 & 1](i2 | 0, i3 | 0, +d4, i5 | 0);
 53025 function dynCall_vifii(i1, i2, d3, i4, i5) {
 53026  i1 = i1 | 0;
 53027  i2 = i2 | 0;
 53028  d3 = +d3;
 53029  i4 = i4 | 0;
 53030  i5 = i5 | 0;
 53031  FUNCTION_TABLE_vifii[i1 & 1](i2 | 0, +d3, i4 | 0, i5 | 0);
 53033 function __ZNK13btSphereShape37localGetSupportingVertexWithoutMarginERK9btVector3(i1, i2, i3) {
 53034  i1 = i1 | 0;
 53035  i2 = i2 | 0;
 53036  i3 = i3 | 0;
 53037  _memset(i1 | 0, 0, 16);
 53038  return;
 53040 function __ZN28btHashedOverlappingPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback(i1, i2) {
 53041  i1 = i1 | 0;
 53042  i2 = i2 | 0;
 53043  HEAP32[i1 + 24 >> 2] = i2;
 53044  return;
 53046 function b17(i1, i2, i3, i4, i5, i6, i7, i8) {
 53047  i1 = i1 | 0;
 53048  i2 = i2 | 0;
 53049  i3 = i3 | 0;
 53050  i4 = i4 | 0;
 53051  i5 = i5 | 0;
 53052  i6 = i6 | 0;
 53053  i7 = i7 | 0;
 53054  i8 = i8 | 0;
 53055  abort(17);
 53057 function __ZZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN13btDummyResultD2Ev(i1) {
 53058  i1 = i1 | 0;
 53059  return;
 53061 function __ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD0Ev(i1) {
 53062  i1 = i1 | 0;
 53063  __ZdlPv(i1);
 53064  return;
 53066 function __ZN21btCollisionDispatcher26getManifoldByIndexInternalEi(i1, i2) {
 53067  i1 = i1 | 0;
 53068  i2 = i2 | 0;
 53069  return HEAP32[(HEAP32[i1 + 20 >> 2] | 0) + (i2 << 2) >> 2] | 0;
 53071 function __ZL20btAlignedFreeDefaultPv(i1) {
 53072  i1 = i1 | 0;
 53073  if ((i1 | 0) == 0) {
 53074   return;
 53076  FUNCTION_TABLE_vi[HEAP32[2968] & 511](HEAP32[i1 - 4 >> 2] | 0);
 53077  return;
 53079 function __ZN23btPolyhedralConvexShapeC2Ev(i1) {
 53080  i1 = i1 | 0;
 53081  __ZN21btConvexInternalShapeC2Ev(i1 | 0);
 53082  HEAP32[i1 >> 2] = 3136;
 53083  HEAP32[i1 + 52 >> 2] = 0;
 53084  return;
 53086 function __ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD0Ev(i1) {
 53087  i1 = i1 | 0;
 53088  __ZdlPv(i1);
 53089  return;
 53091 function __ZN11btUnionFindC2Ev(i1) {
 53092  i1 = i1 | 0;
 53093  HEAP8[i1 + 16 | 0] = 1;
 53094  HEAP32[i1 + 12 >> 2] = 0;
 53095  HEAP32[i1 + 4 >> 2] = 0;
 53096  HEAP32[i1 + 8 >> 2] = 0;
 53097  return;
 53099 function dynCall_iiii(i1, i2, i3, i4) {
 53100  i1 = i1 | 0;
 53101  i2 = i2 | 0;
 53102  i3 = i3 | 0;
 53103  i4 = i4 | 0;
 53104  return FUNCTION_TABLE_iiii[i1 & 31](i2 | 0, i3 | 0, i4 | 0) | 0;
 53106 function b0(i1, i2, i3, i4, i5, i6, i7) {
 53107  i1 = i1 | 0;
 53108  i2 = i2 | 0;
 53109  i3 = i3 | 0;
 53110  i4 = i4 | 0;
 53111  i5 = i5 | 0;
 53112  i6 = i6 | 0;
 53113  i7 = i7 | 0;
 53114  abort(0);
 53115  return 0;
 53117 function __ZNK23btDiscreteDynamicsWorld13getConstraintEi(i1, i2) {
 53118  i1 = i1 | 0;
 53119  i2 = i2 | 0;
 53120  return HEAP32[(HEAP32[i1 + 192 >> 2] | 0) + (i2 << 2) >> 2] | 0;
 53122 function __ZN17DebugDrawcallbackD1Ev(i1) {
 53123  i1 = i1 | 0;
 53124  __ZN31btInternalTriangleIndexCallbackD2Ev(i1 + 4 | 0);
 53125  __ZN18btTriangleCallbackD2Ev(i1 | 0);
 53126  return;
 53128 function __ZN23btDiscreteDynamicsWorld13getConstraintEi(i1, i2) {
 53129  i1 = i1 | 0;
 53130  i2 = i2 | 0;
 53131  return HEAP32[(HEAP32[i1 + 192 >> 2] | 0) + (i2 << 2) >> 2] | 0;
 53133 function dynCall_fiii(i1, i2, i3, i4) {
 53134  i1 = i1 | 0;
 53135  i2 = i2 | 0;
 53136  i3 = i3 | 0;
 53137  i4 = i4 | 0;
 53138  return +FUNCTION_TABLE_fiii[i1 & 15](i2 | 0, i3 | 0, i4 | 0);
 53140 function __ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD2Ev(i1) {
 53141  i1 = i1 | 0;
 53142  return;
 53144 function __ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD2Ev(i1) {
 53145  i1 = i1 | 0;
 53146  return;
 53148 function dynCall_iiif(i1, i2, i3, d4) {
 53149  i1 = i1 | 0;
 53150  i2 = i2 | 0;
 53151  i3 = i3 | 0;
 53152  d4 = +d4;
 53153  return FUNCTION_TABLE_iiif[i1 & 7](i2 | 0, i3 | 0, +d4) | 0;
 53155 function __ZNK15btTriangleShape21calculateLocalInertiaEfR9btVector3(i1, d2, i3) {
 53156  i1 = i1 | 0;
 53157  d2 = +d2;
 53158  i3 = i3 | 0;
 53159  _memset(i3 | 0, 0, 16);
 53160  return;
 53162 function stackAlloc(i1) {
 53163  i1 = i1 | 0;
 53164  var i2 = 0;
 53165  i2 = STACKTOP;
 53166  STACKTOP = STACKTOP + i1 | 0;
 53167  STACKTOP = STACKTOP + 7 >> 3 << 3;
 53168  return i2 | 0;
 53170 function dynCall_viii(i1, i2, i3, i4) {
 53171  i1 = i1 | 0;
 53172  i2 = i2 | 0;
 53173  i3 = i3 | 0;
 53174  i4 = i4 | 0;
 53175  FUNCTION_TABLE_viii[i1 & 127](i2 | 0, i3 | 0, i4 | 0);
 53177 function __ZN16btEmptyAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE(i1, i2) {
 53178  i1 = i1 | 0;
 53179  i2 = i2 | 0;
 53180  return;
 53182 function __ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD2Ev(i1) {
 53183  i1 = i1 | 0;
 53184  return;
 53186 function __ZNK21btConvexInternalShape32getPreferredPenetrationDirectionEiR9btVector3(i1, i2, i3) {
 53187  i1 = i1 | 0;
 53188  i2 = i2 | 0;
 53189  i3 = i3 | 0;
 53190  return;
 53192 function __ZN35btSequentialImpulseConstraintSolverD0Ev(i1) {
 53193  i1 = i1 | 0;
 53194  __ZN35btSequentialImpulseConstraintSolverD2Ev(i1);
 53195  __ZdlPv(i1);
 53196  return;
 53198 function b22(i1, i2, i3, i4, i5, i6) {
 53199  i1 = i1 | 0;
 53200  i2 = i2 | 0;
 53201  i3 = i3 | 0;
 53202  i4 = i4 | 0;
 53203  i5 = i5 | 0;
 53204  i6 = i6 | 0;
 53205  abort(22);
 53206  return 0;
 53208 function dynCall_vifi(i1, i2, d3, i4) {
 53209  i1 = i1 | 0;
 53210  i2 = i2 | 0;
 53211  d3 = +d3;
 53212  i4 = i4 | 0;
 53213  FUNCTION_TABLE_vifi[i1 & 15](i2 | 0, +d3, i4 | 0);
 53215 function b38(i1, i2, i3, d4, i5, i6) {
 53216  i1 = i1 | 0;
 53217  i2 = i2 | 0;
 53218  i3 = i3 | 0;
 53219  d4 = +d4;
 53220  i5 = i5 | 0;
 53221  i6 = i6 | 0;
 53222  abort(38);
 53223  return 0.0;
 53225 function dynCall_viif(i1, i2, i3, d4) {
 53226  i1 = i1 | 0;
 53227  i2 = i2 | 0;
 53228  i3 = i3 | 0;
 53229  d4 = +d4;
 53230  FUNCTION_TABLE_viif[i1 & 3](i2 | 0, i3 | 0, +d4);
 53232 function __ZN7btClockD2Ev(i1) {
 53233  i1 = i1 | 0;
 53234  var i2 = 0;
 53235  i2 = HEAP32[i1 >> 2] | 0;
 53236  if ((i2 | 0) == 0) {
 53237   return;
 53239  __ZdlPv(i2);
 53240  return;
 53242 function __ZN15btTriangleShapeD0Ev(i1) {
 53243  i1 = i1 | 0;
 53244  __ZN23btPolyhedralConvexShapeD2Ev(i1 | 0);
 53245  __Z21btAlignedFreeInternalPv(i1);
 53246  return;
 53248 function __ZN31btDefaultCollisionConfigurationD0Ev(i1) {
 53249  i1 = i1 | 0;
 53250  __ZN31btDefaultCollisionConfigurationD2Ev(i1);
 53251  __ZdlPv(i1);
 53252  return;
 53254 function __ZN13btConvexShapeC2Ev(i1) {
 53255  i1 = i1 | 0;
 53256  HEAP32[i1 + 4 >> 2] = 35;
 53257  HEAP32[i1 + 8 >> 2] = 0;
 53258  HEAP32[i1 >> 2] = 4832;
 53259  return;
 53261 function __ZN21btConvexInternalShapeD0Ev(i1) {
 53262  i1 = i1 | 0;
 53263  __ZN13btConvexShapeD2Ev(i1 | 0);
 53264  __Z21btAlignedFreeInternalPv(i1);
 53265  return;
 53267 function __ZN16btCollisionWorld14setDebugDrawerEP12btIDebugDraw(i1, i2) {
 53268  i1 = i1 | 0;
 53269  i2 = i2 | 0;
 53270  HEAP32[i1 + 80 >> 2] = i2;
 53271  return;
 53273 function __ZNK23btGeneric6DofConstraint8getAngleEi(i1, i2) {
 53274  i1 = i1 | 0;
 53275  i2 = i2 | 0;
 53276  return +(+HEAPF32[i1 + 1184 + (i2 << 2) >> 2]);
 53278 function __ZN10btBoxShapeD0Ev(i1) {
 53279  i1 = i1 | 0;
 53280  __ZN23btPolyhedralConvexShapeD2Ev(i1 | 0);
 53281  __Z21btAlignedFreeInternalPv(i1);
 53282  return;
 53284 function __ZN28btHashedOverlappingPairCacheD0Ev(i1) {
 53285  i1 = i1 | 0;
 53286  __ZN28btHashedOverlappingPairCacheD2Ev(i1);
 53287  __ZdlPv(i1);
 53288  return;
 53290 function __ZN28btCompoundCollisionAlgorithmD0Ev(i1) {
 53291  i1 = i1 | 0;
 53292  __ZN28btCompoundCollisionAlgorithmD2Ev(i1);
 53293  __ZdlPv(i1);
 53294  return;
 53296 function b19(i1, i2, i3, i4, i5, i6) {
 53297  i1 = i1 | 0;
 53298  i2 = i2 | 0;
 53299  i3 = i3 | 0;
 53300  i4 = i4 | 0;
 53301  i5 = i5 | 0;
 53302  i6 = i6 | 0;
 53303  abort(19);
 53305 function dynCall_iii(i1, i2, i3) {
 53306  i1 = i1 | 0;
 53307  i2 = i2 | 0;
 53308  i3 = i3 | 0;
 53309  return FUNCTION_TABLE_iii[i1 & 63](i2 | 0, i3 | 0) | 0;
 53311 function __ZN13btSphereShapeD0Ev(i1) {
 53312  i1 = i1 | 0;
 53313  __ZN13btConvexShapeD2Ev(i1 | 0);
 53314  __Z21btAlignedFreeInternalPv(i1);
 53315  return;
 53317 function b6(i1, i2, i3, d4, i5, i6) {
 53318  i1 = i1 | 0;
 53319  i2 = i2 | 0;
 53320  i3 = i3 | 0;
 53321  d4 = +d4;
 53322  i5 = i5 | 0;
 53323  i6 = i6 | 0;
 53324  abort(6);
 53326 function b24(i1, i2, i3, i4, i5) {
 53327  i1 = i1 | 0;
 53328  i2 = i2 | 0;
 53329  i3 = i3 | 0;
 53330  i4 = i4 | 0;
 53331  i5 = i5 | 0;
 53332  abort(24);
 53333  return 0.0;
 53335 function __ZN31btDefaultCollisionConfiguration25getPersistentManifoldPoolEv(i1) {
 53336  i1 = i1 | 0;
 53337  return HEAP32[i1 + 16 >> 2] | 0;
 53339 function __ZN31btDefaultCollisionConfiguration25getCollisionAlgorithmPoolEv(i1) {
 53340  i1 = i1 | 0;
 53341  return HEAP32[i1 + 24 >> 2] | 0;
 53343 function __ZN28btTriangleConvexcastCallbackD0Ev(i1) {
 53344  i1 = i1 | 0;
 53345  __ZN18btTriangleCallbackD2Ev(i1 | 0);
 53346  __ZdlPv(i1);
 53347  return;
 53349 function __ZN25btSimulationIslandManagerD0Ev(i1) {
 53350  i1 = i1 | 0;
 53351  __ZN25btSimulationIslandManagerD2Ev(i1);
 53352  __ZdlPv(i1);
 53353  return;
 53355 function b21(i1, d2, d3, i4, i5, i6) {
 53356  i1 = i1 | 0;
 53357  d2 = +d2;
 53358  d3 = +d3;
 53359  i4 = i4 | 0;
 53360  i5 = i5 | 0;
 53361  i6 = i6 | 0;
 53362  abort(21);
 53364 function __ZNK28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv(i1) {
 53365  i1 = i1 | 0;
 53366  return HEAP32[i1 + 16 >> 2] | 0;
 53368 function _strlen(i1) {
 53369  i1 = i1 | 0;
 53370  var i2 = 0;
 53371  i2 = i1;
 53372  while (HEAP8[i2] | 0) {
 53373   i2 = i2 + 1 | 0;
 53375  return i2 - i1 | 0;
 53377 function __ZN28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv(i1) {
 53378  i1 = i1 | 0;
 53379  return HEAP32[i1 + 16 >> 2] | 0;
 53381 function b13(i1, i2, d3, i4, i5) {
 53382  i1 = i1 | 0;
 53383  i2 = i2 | 0;
 53384  d3 = +d3;
 53385  i4 = i4 | 0;
 53386  i5 = i5 | 0;
 53387  abort(13);
 53388  return 0.0;
 53390 function __ZN25btTriangleRaycastCallbackD0Ev(i1) {
 53391  i1 = i1 | 0;
 53392  __ZN18btTriangleCallbackD2Ev(i1 | 0);
 53393  __ZdlPv(i1);
 53394  return;
 53396 function __ZN10__cxxabiv121__vmi_class_type_infoD0Ev(i1) {
 53397  i1 = i1 | 0;
 53398  __ZNSt9type_infoD2Ev(i1 | 0);
 53399  __ZdlPv(i1);
 53400  return;
 53402 function __ZN23btDiscreteDynamicsWorldD0Ev(i1) {
 53403  i1 = i1 | 0;
 53404  __ZN23btDiscreteDynamicsWorldD2Ev(i1);
 53405  __ZdlPv(i1);
 53406  return;
 53408 function __ZN10__cxxabiv120__si_class_type_infoD0Ev(i1) {
 53409  i1 = i1 | 0;
 53410  __ZNSt9type_infoD2Ev(i1 | 0);
 53411  __ZdlPv(i1);
 53412  return;
 53414 function setThrew(i1, i2) {
 53415  i1 = i1 | 0;
 53416  i2 = i2 | 0;
 53417  if ((__THREW__ | 0) == 0) {
 53418   __THREW__ = i1;
 53419   threwValue = i2;
 53422 function __ZNK20btPersistentManifold27getContactBreakingThresholdEv(i1) {
 53423  i1 = i1 | 0;
 53424  return +(+HEAPF32[i1 + 1120 >> 2]);
 53426 function dynCall_vii(i1, i2, i3) {
 53427  i1 = i1 | 0;
 53428  i2 = i2 | 0;
 53429  i3 = i3 | 0;
 53430  FUNCTION_TABLE_vii[i1 & 127](i2 | 0, i3 | 0);
 53432 function dynCall_fif(i1, i2, d3) {
 53433  i1 = i1 | 0;
 53434  i2 = i2 | 0;
 53435  d3 = +d3;
 53436  return +FUNCTION_TABLE_fif[i1 & 3](i2 | 0, +d3);
 53438 function __ZNK28btHashedOverlappingPairCache22getNumOverlappingPairsEv(i1) {
 53439  i1 = i1 | 0;
 53440  return HEAP32[i1 + 8 >> 2] | 0;
 53442 function __ZN27btContinuousConvexCollisionD0Ev(i1) {
 53443  i1 = i1 | 0;
 53444  __ZN12btConvexCastD2Ev(i1 | 0);
 53445  __ZdlPv(i1);
 53446  return;
 53448 function __ZN12btConvexCast10CastResult13reportFailureEii(i1, i2, i3) {
 53449  i1 = i1 | 0;
 53450  i2 = i2 | 0;
 53451  i3 = i3 | 0;
 53452  return;
 53454 function __ZN10__cxxabiv117__class_type_infoD0Ev(i1) {
 53455  i1 = i1 | 0;
 53456  __ZNSt9type_infoD2Ev(i1 | 0);
 53457  __ZdlPv(i1);
 53458  return;
 53460 function __ZNK13btSphereShape9getMarginEv(i1) {
 53461  i1 = i1 | 0;
 53462  return +(+HEAPF32[i1 + 28 >> 2] * +HEAPF32[i1 + 12 >> 2]);
 53464 function __ZN21btConvexInternalShape9setMarginEf(i1, d2) {
 53465  i1 = i1 | 0;
 53466  d2 = +d2;
 53467  HEAPF32[i1 + 44 >> 2] = d2;
 53468  return;
 53470 function __ZN16btPointCollector20setShapeIdentifiersBEii(i1, i2, i3) {
 53471  i1 = i1 | 0;
 53472  i2 = i2 | 0;
 53473  i3 = i3 | 0;
 53474  return;
 53476 function __ZN16btPointCollector20setShapeIdentifiersAEii(i1, i2, i3) {
 53477  i1 = i1 | 0;
 53478  i2 = i2 | 0;
 53479  i3 = i3 | 0;
 53480  return;
 53482 function __ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodeS3_(i1, i2, i3) {
 53483  i1 = i1 | 0;
 53484  i2 = i2 | 0;
 53485  i3 = i3 | 0;
 53486  return;
 53488 function __ZN31btDefaultCollisionConfiguration17getStackAllocatorEv(i1) {
 53489  i1 = i1 | 0;
 53490  return HEAP32[i1 + 8 >> 2] | 0;
 53492 function __ZN31btDefaultCollisionConfiguration16getSimplexSolverEv(i1) {
 53493  i1 = i1 | 0;
 53494  return HEAP32[i1 + 32 >> 2] | 0;
 53496 function __ZN21btCollisionDispatcher26getInternalManifoldPointerEv(i1) {
 53497  i1 = i1 | 0;
 53498  return HEAP32[i1 + 20 >> 2] | 0;
 53500 function __ZNK21btCollisionDispatcher23getInternalManifoldPoolEv(i1) {
 53501  i1 = i1 | 0;
 53502  return HEAP32[i1 + 196 >> 2] | 0;
 53504 function __ZN12btConvexCast10CastResult15drawCoordSystemERK11btTransform(i1, i2) {
 53505  i1 = i1 | 0;
 53506  i2 = i2 | 0;
 53507  return;
 53509 function __ZN21btCollisionDispatcher23getInternalManifoldPoolEv(i1) {
 53510  i1 = i1 | 0;
 53511  return HEAP32[i1 + 196 >> 2] | 0;
 53513 function __ZN22btSubsimplexConvexCastD0Ev(i1) {
 53514  i1 = i1 | 0;
 53515  __ZN12btConvexCastD2Ev(i1 | 0);
 53516  __ZdlPv(i1);
 53517  return;
 53519 function dynCall_vif(i1, i2, d3) {
 53520  i1 = i1 | 0;
 53521  i2 = i2 | 0;
 53522  d3 = +d3;
 53523  FUNCTION_TABLE_vif[i1 & 31](i2 | 0, +d3);
 53525 function __ZN23btDiscreteDynamicsWorld19getConstraintSolverEv(i1) {
 53526  i1 = i1 | 0;
 53527  return HEAP32[i1 + 172 >> 2] | 0;
 53529 function __ZNK23btDiscreteDynamicsWorld17getNumConstraintsEv(i1) {
 53530  i1 = i1 | 0;
 53531  return HEAP32[i1 + 184 >> 2] | 0;
 53533 function __ZN35btSequentialImpulseConstraintSolver5resetEv(i1) {
 53534  i1 = i1 | 0;
 53535  HEAP32[i1 + 124 >> 2] = 0;
 53536  return;
 53538 function __ZN28btTriangleConvexcastCallbackD1Ev(i1) {
 53539  i1 = i1 | 0;
 53540  __ZN18btTriangleCallbackD2Ev(i1 | 0);
 53541  return;
 53543 function __ZN18btConvexPolyhedronD0Ev(i1) {
 53544  i1 = i1 | 0;
 53545  __ZN18btConvexPolyhedronD2Ev(i1);
 53546  __ZdlPv(i1);
 53547  return;
 53549 function __ZN18btConstraintSolver12prepareSolveEii(i1, i2, i3) {
 53550  i1 = i1 | 0;
 53551  i2 = i2 | 0;
 53552  i3 = i3 | 0;
 53553  return;
 53555 function b3(i1, i2, i3, i4, i5) {
 53556  i1 = i1 | 0;
 53557  i2 = i2 | 0;
 53558  i3 = i3 | 0;
 53559  i4 = i4 | 0;
 53560  i5 = i5 | 0;
 53561  abort(3);
 53563 function __ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD0Ev(i1) {
 53564  i1 = i1 | 0;
 53565  __ZdlPv(i1);
 53566  return;
 53568 function __ZNK16btDbvtBroadphase23getOverlappingPairCacheEv(i1) {
 53569  i1 = i1 | 0;
 53570  return HEAP32[i1 + 96 >> 2] | 0;
 53572 function __ZN13btSphereShape9setMarginEf(i1, d2) {
 53573  i1 = i1 | 0;
 53574  d2 = +d2;
 53575  HEAPF32[i1 + 44 >> 2] = d2;
 53576  return;
 53578 function __ZN25btTriangleRaycastCallbackD1Ev(i1) {
 53579  i1 = i1 | 0;
 53580  __ZN18btTriangleCallbackD2Ev(i1 | 0);
 53581  return;
 53583 function __ZN16btDbvtBroadphase23getOverlappingPairCacheEv(i1) {
 53584  i1 = i1 | 0;
 53585  return HEAP32[i1 + 96 >> 2] | 0;
 53587 function b7(i1, d2, i3, i4, i5) {
 53588  i1 = i1 | 0;
 53589  d2 = +d2;
 53590  i3 = i3 | 0;
 53591  i4 = i4 | 0;
 53592  i5 = i5 | 0;
 53593  abort(7);
 53595 function b2(i1, i2, d3, i4, i5) {
 53596  i1 = i1 | 0;
 53597  i2 = i2 | 0;
 53598  d3 = +d3;
 53599  i4 = i4 | 0;
 53600  i5 = i5 | 0;
 53601  abort(2);
 53603 function __ZN17btCollisionObject24checkCollideWithOverrideEPS_(i1, i2) {
 53604  i1 = i1 | 0;
 53605  i2 = i2 | 0;
 53606  return 1;
 53608 function __ZN16btCollisionWorldD0Ev(i1) {
 53609  i1 = i1 | 0;
 53610  __ZN16btCollisionWorldD2Ev(i1);
 53611  __ZdlPv(i1);
 53612  return;
 53614 function __ZNK21btCollisionDispatcher15getNumManifoldsEv(i1) {
 53615  i1 = i1 | 0;
 53616  return HEAP32[i1 + 12 >> 2] | 0;
 53618 function __ZN28btHashedOverlappingPairCache23getOverlappingPairArrayEv(i1) {
 53619  i1 = i1 | 0;
 53620  return i1 + 4 | 0;
 53622 function __ZN15btGjkConvexCastD0Ev(i1) {
 53623  i1 = i1 | 0;
 53624  __ZN12btConvexCastD2Ev(i1 | 0);
 53625  __ZdlPv(i1);
 53626  return;
 53628 function __ZN15CProfileManager23Increment_Frame_CounterEv() {
 53629  HEAP32[3572] = (HEAP32[3572] | 0) + 1;
 53630  return;
 53632 function b32(i1, i2, i3, i4) {
 53633  i1 = i1 | 0;
 53634  i2 = i2 | 0;
 53635  i3 = i3 | 0;
 53636  i4 = i4 | 0;
 53637  abort(32);
 53638  return 0;
 53640 function __ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD0Ev(i1) {
 53641  i1 = i1 | 0;
 53642  __ZdlPv(i1);
 53643  return;
 53645 function __ZNK21btConvexInternalShape36getNumPreferredPenetrationDirectionsEv(i1) {
 53646  i1 = i1 | 0;
 53647  return 0;
 53649 function __ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD0Ev(i1) {
 53650  i1 = i1 | 0;
 53651  __ZdlPv(i1);
 53652  return;
 53654 function __ZN27btContinuousConvexCollisionD1Ev(i1) {
 53655  i1 = i1 | 0;
 53656  __ZN12btConvexCastD2Ev(i1 | 0);
 53657  return;
 53659 function __ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD0Ev(i1) {
 53660  i1 = i1 | 0;
 53661  __ZdlPv(i1);
 53662  return;
 53664 function __ZN16btCollisionWorld27ClosestConvexResultCallbackD0Ev(i1) {
 53665  i1 = i1 | 0;
 53666  __ZdlPv(i1);
 53667  return;
 53669 function __ZN15btTriangleShapeD1Ev(i1) {
 53670  i1 = i1 | 0;
 53671  __ZN23btPolyhedralConvexShapeD2Ev(i1 | 0);
 53672  return;
 53674 function __ZN10__cxxabiv116__shim_type_infoD2Ev(i1) {
 53675  i1 = i1 | 0;
 53676  __ZNSt9type_infoD2Ev(i1 | 0);
 53677  return;
 53679 function dynCall_ii(i1, i2) {
 53680  i1 = i1 | 0;
 53681  i2 = i2 | 0;
 53682  return FUNCTION_TABLE_ii[i1 & 127](i2 | 0) | 0;
 53684 function __ZN32btSphereSphereCollisionAlgorithm10CreateFuncD0Ev(i1) {
 53685  i1 = i1 | 0;
 53686  __ZdlPv(i1);
 53687  return;
 53689 function __ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD0Ev(i1) {
 53690  i1 = i1 | 0;
 53691  __ZdlPv(i1);
 53692  return;
 53694 function __ZNK21btConvexInternalShape9getMarginEv(i1) {
 53695  i1 = i1 | 0;
 53696  return +(+HEAPF32[i1 + 44 >> 2]);
 53698 function b31(i1, d2, i3, d4) {
 53699  i1 = i1 | 0;
 53700  d2 = +d2;
 53701  i3 = i3 | 0;
 53702  d4 = +d4;
 53703  abort(31);
 53704  return 0;
 53706 function __ZN6btDbvt8ICollide9AllLeavesEPK10btDbvtNode(i1, i2) {
 53707  i1 = i1 | 0;
 53708  i2 = i2 | 0;
 53709  return 1;
 53711 function __ZN22btSubsimplexConvexCastD1Ev(i1) {
 53712  i1 = i1 | 0;
 53713  __ZN12btConvexCastD2Ev(i1 | 0);
 53714  return;
 53716 function __ZN21btConvexInternalShapeD1Ev(i1) {
 53717  i1 = i1 | 0;
 53718  __ZN13btConvexShapeD2Ev(i1 | 0);
 53719  return;
 53721 function __ZN16btCollisionWorld14getDebugDrawerEv(i1) {
 53722  i1 = i1 | 0;
 53723  return HEAP32[i1 + 80 >> 2] | 0;
 53725 function __ZNK15btTriangleShape36getNumPreferredPenetrationDirectionsEv(i1) {
 53726  i1 = i1 | 0;
 53727  return 2;
 53729 function __ZN28btCompoundCollisionAlgorithm10CreateFuncD0Ev(i1) {
 53730  i1 = i1 | 0;
 53731  __ZdlPv(i1);
 53732  return;
 53734 function __ZN10btBoxShapeD1Ev(i1) {
 53735  i1 = i1 | 0;
 53736  __ZN23btPolyhedralConvexShapeD2Ev(i1 | 0);
 53737  return;
 53739 function dynCall_fi(i1, i2) {
 53740  i1 = i1 | 0;
 53741  i2 = i2 | 0;
 53742  return +FUNCTION_TABLE_fi[i1 & 7](i2 | 0);
 53744 function __ZNK21btConvexInternalShape28calculateSerializeBufferSizeEv(i1) {
 53745  i1 = i1 | 0;
 53746  return 52;
 53748 function __ZN6btDbvt8ICollide7DescentEPK10btDbvtNode(i1, i2) {
 53749  i1 = i1 | 0;
 53750  i2 = i2 | 0;
 53751  return 1;
 53753 function __ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD1Ev(i1) {
 53754  i1 = i1 | 0;
 53755  return;
 53757 function __ZN26btBoxBoxCollisionAlgorithm10CreateFuncD0Ev(i1) {
 53758  i1 = i1 | 0;
 53759  __ZdlPv(i1);
 53760  return;
 53762 function __ZN23btDiscreteDynamicsWorld11setNumTasksEi(i1, i2) {
 53763  i1 = i1 | 0;
 53764  i2 = i2 | 0;
 53765  return;
 53767 function __ZN17btCollisionObjectD0Ev(i1) {
 53768  i1 = i1 | 0;
 53769  __Z21btAlignedFreeInternalPv(i1);
 53770  return;
 53772 function b39(i1, i2, i3, i4) {
 53773  i1 = i1 | 0;
 53774  i2 = i2 | 0;
 53775  i3 = i3 | 0;
 53776  i4 = i4 | 0;
 53777  abort(39);
 53779 function __ZNK17btCollisionObject28calculateSerializeBufferSizeEv(i1) {
 53780  i1 = i1 | 0;
 53781  return 248;
 53783 function __ZNK21btConvexInternalShape15getLocalScalingEv(i1) {
 53784  i1 = i1 | 0;
 53785  return i1 + 12 | 0;
 53787 function __ZNK10btBoxShape36getNumPreferredPenetrationDirectionsEv(i1) {
 53788  i1 = i1 | 0;
 53789  return 6;
 53791 function __ZN23btConvexConvexAlgorithm10CreateFuncD0Ev(i1) {
 53792  i1 = i1 | 0;
 53793  __ZdlPv(i1);
 53794  return;
 53796 function __ZNK16btCollisionShape28calculateSerializeBufferSizeEv(i1) {
 53797  i1 = i1 | 0;
 53798  return 12;
 53800 function __ZN34btClosestNotMeConvexResultCallbackD0Ev(i1) {
 53801  i1 = i1 | 0;
 53802  __ZdlPv(i1);
 53803  return;
 53805 function __ZN28btHashedOverlappingPairCache18hasDeferredRemovalEv(i1) {
 53806  i1 = i1 | 0;
 53807  return 0;
 53809 function __ZN15btGjkConvexCastD1Ev(i1) {
 53810  i1 = i1 | 0;
 53811  __ZN12btConvexCastD2Ev(i1 | 0);
 53812  return;
 53814 function __ZN13btConvexShapeD0Ev(i1) {
 53815  i1 = i1 | 0;
 53816  __Z21btAlignedFreeInternalPv(i1);
 53817  return;
 53819 function dynCall_vi(i1, i2) {
 53820  i1 = i1 | 0;
 53821  i2 = i2 | 0;
 53822  FUNCTION_TABLE_vi[i1 & 511](i2 | 0);
 53824 function b34(i1, i2, d3, i4) {
 53825  i1 = i1 | 0;
 53826  i2 = i2 | 0;
 53827  d3 = +d3;
 53828  i4 = i4 | 0;
 53829  abort(34);
 53831 function b26(i1, d2, i3, i4) {
 53832  i1 = i1 | 0;
 53833  d2 = +d2;
 53834  i3 = i3 | 0;
 53835  i4 = i4 | 0;
 53836  abort(26);
 53838 function b11(i1, i2, i3, d4) {
 53839  i1 = i1 | 0;
 53840  i2 = i2 | 0;
 53841  i3 = i3 | 0;
 53842  d4 = +d4;
 53843  abort(11);
 53845 function __ZN33btMinkowskiPenetrationDepthSolverD0Ev(i1) {
 53846  i1 = i1 | 0;
 53847  __ZdlPv(i1);
 53848  return;
 53850 function __ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD1Ev(i1) {
 53851  i1 = i1 | 0;
 53852  return;
 53854 function __ZN13btSphereShapeD1Ev(i1) {
 53855  i1 = i1 | 0;
 53856  __ZN13btConvexShapeD2Ev(i1 | 0);
 53857  return;
 53859 function __ZN12btConvexCast10CastResult9DebugDrawEf(i1, d2) {
 53860  i1 = i1 | 0;
 53861  d2 = +d2;
 53862  return;
 53864 function __ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD1Ev(i1) {
 53865  i1 = i1 | 0;
 53866  return;
 53868 function b10(i1, i2, i3) {
 53869  i1 = i1 | 0;
 53870  i2 = i2 | 0;
 53871  i3 = i3 | 0;
 53872  abort(10);
 53873  return 0.0;
 53875 function __ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD1Ev(i1) {
 53876  i1 = i1 | 0;
 53877  return;
 53879 function __ZN16btCollisionWorld27ClosestConvexResultCallbackD1Ev(i1) {
 53880  i1 = i1 | 0;
 53881  return;
 53883 function __ZNK11btRigidBody28calculateSerializeBufferSizeEv(i1) {
 53884  i1 = i1 | 0;
 53885  return 480;
 53887 function __ZN32btSphereSphereCollisionAlgorithm10CreateFuncD1Ev(i1) {
 53888  i1 = i1 | 0;
 53889  return;
 53891 function __ZN30btGjkEpaPenetrationDepthSolverD0Ev(i1) {
 53892  i1 = i1 | 0;
 53893  __ZdlPv(i1);
 53894  return;
 53896 function __ZN30btActivatingCollisionAlgorithmD0Ev(i1) {
 53897  i1 = i1 | 0;
 53898  __ZdlPv(i1);
 53899  return;
 53901 function b15(i1, i2, i3) {
 53902  i1 = i1 | 0;
 53903  i2 = i2 | 0;
 53904  i3 = i3 | 0;
 53905  abort(15);
 53906  return 0;
 53908 function __ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD1Ev(i1) {
 53909  i1 = i1 | 0;
 53910  return;
 53912 function __ZN16btEmptyAlgorithm10CreateFuncD0Ev(i1) {
 53913  i1 = i1 | 0;
 53914  __ZdlPv(i1);
 53915  return;
 53917 function b37(i1, i2, d3) {
 53918  i1 = i1 | 0;
 53919  i2 = i2 | 0;
 53920  d3 = +d3;
 53921  abort(37);
 53922  return 0;
 53924 function __ZN28btCompoundCollisionAlgorithm10CreateFuncD1Ev(i1) {
 53925  i1 = i1 | 0;
 53926  return;
 53928 function __ZNK23btDiscreteDynamicsWorld12getWorldTypeEv(i1) {
 53929  i1 = i1 | 0;
 53930  return 2;
 53932 function __ZN26btBoxBoxCollisionAlgorithm10CreateFuncD1Ev(i1) {
 53933  i1 = i1 | 0;
 53934  return;
 53936 function __ZN24btPerturbedContactResultD0Ev(i1) {
 53937  i1 = i1 | 0;
 53938  __ZdlPv(i1);
 53939  return;
 53941 function __ZN12btConvexCast10CastResultD0Ev(i1) {
 53942  i1 = i1 | 0;
 53943  __ZdlPv(i1);
 53944  return;
 53946 function __ZN23btCollisionPairCallbackD0Ev(i1) {
 53947  i1 = i1 | 0;
 53948  __ZdlPv(i1);
 53949  return;
 53951 function __ZN22btCompoundLeafCallbackD0Ev(i1) {
 53952  i1 = i1 | 0;
 53953  __ZdlPv(i1);
 53954  return;
 53956 function __ZN22SphereTriangleDetectorD0Ev(i1) {
 53957  i1 = i1 | 0;
 53958  __ZdlPv(i1);
 53959  return;
 53961 function __ZdlPv(i1) {
 53962  i1 = i1 | 0;
 53963  if ((i1 | 0) != 0) {
 53964   _free(i1);
 53966  return;
 53968 function __ZN23btConvexConvexAlgorithm10CreateFuncD2Ev(i1) {
 53969  i1 = i1 | 0;
 53970  return;
 53972 function __ZN21btSingleSweepCallbackD0Ev(i1) {
 53973  i1 = i1 | 0;
 53974  __ZdlPv(i1);
 53975  return;
 53977 function __ZN34btClosestNotMeConvexResultCallbackD1Ev(i1) {
 53978  i1 = i1 | 0;
 53979  return;
 53981 function __ZN20btDefaultMotionStateD0Ev(i1) {
 53982  i1 = i1 | 0;
 53983  __ZdlPv(i1);
 53984  return;
 53986 function __ZN20btCollisionAlgorithmD0Ev(i1) {
 53987  i1 = i1 | 0;
 53988  __ZdlPv(i1);
 53989  return;
 53991 function __ZN20BroadphaseAabbTesterD0Ev(i1) {
 53992  i1 = i1 | 0;
 53993  __ZdlPv(i1);
 53994  return;
 53996 function __ZNK10__cxxabiv116__shim_type_info5noop2Ev(i1) {
 53997  i1 = i1 | 0;
 53998  return;
 54000 function __ZNK10__cxxabiv116__shim_type_info5noop1Ev(i1) {
 54001  i1 = i1 | 0;
 54002  return;
 54004 function __ZN33btMinkowskiPenetrationDepthSolverD1Ev(i1) {
 54005  i1 = i1 | 0;
 54006  return;
 54008 function __ZN19btSingleRayCallbackD0Ev(i1) {
 54009  i1 = i1 | 0;
 54010  __ZdlPv(i1);
 54011  return;
 54013 function __ZN19BroadphaseRayTesterD0Ev(i1) {
 54014  i1 = i1 | 0;
 54015  __ZdlPv(i1);
 54016  return;
 54018 function b33(i1, i2, i3) {
 54019  i1 = i1 | 0;
 54020  i2 = i2 | 0;
 54021  i3 = i3 | 0;
 54022  abort(33);
 54024 function __ZNK15btTriangleShape14getNumVerticesEv(i1) {
 54025  i1 = i1 | 0;
 54026  return 3;
 54028 function __ZN18btDbvtTreeColliderD0Ev(i1) {
 54029  i1 = i1 | 0;
 54030  __ZdlPv(i1);
 54031  return;
 54033 function __ZN31btInternalTriangleIndexCallbackD2Ev(i1) {
 54034  i1 = i1 | 0;
 54035  return;
 54037 function __ZN17btGjkPairDetectorD0Ev(i1) {
 54038  i1 = i1 | 0;
 54039  __ZdlPv(i1);
 54040  return;
 54042 function __ZNK15btTriangleShape7getNameEv(i1) {
 54043  i1 = i1 | 0;
 54044  return 832 | 0;
 54046 function __ZNK15btTriangleShape12getNumPlanesEv(i1) {
 54047  i1 = i1 | 0;
 54048  return 1;
 54050 function __ZN30btGjkEpaPenetrationDepthSolverD1Ev(i1) {
 54051  i1 = i1 | 0;
 54052  return;
 54054 function __ZN30btActivatingCollisionAlgorithmD2Ev(i1) {
 54055  i1 = i1 | 0;
 54056  return;
 54058 function __ZN16btPointCollectorD0Ev(i1) {
 54059  i1 = i1 | 0;
 54060  __ZdlPv(i1);
 54061  return;
 54063 function __ZN16btManifoldResultD0Ev(i1) {
 54064  i1 = i1 | 0;
 54065  __ZdlPv(i1);
 54066  return;
 54068 function __ZN16btEmptyAlgorithmD0Ev(i1) {
 54069  i1 = i1 | 0;
 54070  __ZdlPv(i1);
 54071  return;
 54073 function __ZN16btBoxBoxDetectorD0Ev(i1) {
 54074  i1 = i1 | 0;
 54075  __ZdlPv(i1);
 54076  return;
 54078 function b36(i1, i2, d3) {
 54079  i1 = i1 | 0;
 54080  i2 = i2 | 0;
 54081  d3 = +d3;
 54082  abort(36);
 54084 function b18(i1, d2, i3) {
 54085  i1 = i1 | 0;
 54086  d2 = +d2;
 54087  i3 = i3 | 0;
 54088  abort(18);
 54090 function __ZNK15btTriangleShape11getNumEdgesEv(i1) {
 54091  i1 = i1 | 0;
 54092  return 3;
 54094 function __ZNK13btSphereShape7getNameEv(i1) {
 54095  i1 = i1 | 0;
 54096  return 776 | 0;
 54098 function __ZN16btEmptyAlgorithm10CreateFuncD1Ev(i1) {
 54099  i1 = i1 | 0;
 54100  return;
 54102 function __ZNK10btBoxShape14getNumVerticesEv(i1) {
 54103  i1 = i1 | 0;
 54104  return 8;
 54106 function __ZL14btAllocDefaultj(i1) {
 54107  i1 = i1 | 0;
 54108  return _malloc(i1) | 0;
 54110 function __ZN16btDbvtBroadphase10printStatsEv(i1) {
 54111  i1 = i1 | 0;
 54112  return;
 54114 function b14(i1, i2) {
 54115  i1 = i1 | 0;
 54116  i2 = i2 | 0;
 54117  abort(14);
 54118  return 0;
 54120 function __ZNK10btBoxShape7getNameEv(i1) {
 54121  i1 = i1 | 0;
 54122  return 712 | 0;
 54124 function __ZNK10btBoxShape12getNumPlanesEv(i1) {
 54125  i1 = i1 | 0;
 54126  return 6;
 54128 function __ZNK10btBoxShape11getNumEdgesEv(i1) {
 54129  i1 = i1 | 0;
 54130  return 12;
 54132 function b16(i1, d2) {
 54133  i1 = i1 | 0;
 54134  d2 = +d2;
 54135  abort(16);
 54136  return 0.0;
 54138 function __ZNSt9bad_allocD0Ev(i1) {
 54139  i1 = i1 | 0;
 54140  __ZdlPv(i1);
 54141  return;
 54143 function __ZN24btPerturbedContactResultD1Ev(i1) {
 54144  i1 = i1 | 0;
 54145  return;
 54147 function __ZN12btConvexCast10CastResultD1Ev(i1) {
 54148  i1 = i1 | 0;
 54149  return;
 54151 function __ZN23btCollisionPairCallbackD1Ev(i1) {
 54152  i1 = i1 | 0;
 54153  return;
 54155 function __ZL13btFreeDefaultPv(i1) {
 54156  i1 = i1 | 0;
 54157  _free(i1);
 54158  return;
 54160 function __ZNKSt9bad_alloc4whatEv(i1) {
 54161  i1 = i1 | 0;
 54162  return 472 | 0;
 54164 function __ZN22btCompoundLeafCallbackD1Ev(i1) {
 54165  i1 = i1 | 0;
 54166  return;
 54168 function __ZN22SphereTriangleDetectorD1Ev(i1) {
 54169  i1 = i1 | 0;
 54170  return;
 54172 function __ZN21btSingleSweepCallbackD1Ev(i1) {
 54173  i1 = i1 | 0;
 54174  return;
 54176 function __ZN20btDefaultMotionStateD1Ev(i1) {
 54177  i1 = i1 | 0;
 54178  return;
 54180 function __ZN20btCollisionAlgorithmD1Ev(i1) {
 54181  i1 = i1 | 0;
 54182  return;
 54184 function __ZN20BroadphaseAabbTesterD1Ev(i1) {
 54185  i1 = i1 | 0;
 54186  return;
 54188 function v____cxa_pure_virtual__wrapper() {
 54189  ___cxa_pure_virtual();
 54191 function dynCall_v(i1) {
 54192  i1 = i1 | 0;
 54193  FUNCTION_TABLE_v[i1 & 3]();
 54195 function __ZN19btSingleRayCallbackD1Ev(i1) {
 54196  i1 = i1 | 0;
 54197  return;
 54199 function __ZN19BroadphaseRayTesterD1Ev(i1) {
 54200  i1 = i1 | 0;
 54201  return;
 54203 function __ZN18btTriangleCallbackD2Ev(i1) {
 54204  i1 = i1 | 0;
 54205  return;
 54207 function __ZN18btDbvtTreeColliderD1Ev(i1) {
 54208  i1 = i1 | 0;
 54209  return;
 54211 function __ZN17btGjkPairDetectorD1Ev(i1) {
 54212  i1 = i1 | 0;
 54213  return;
 54215 function __ZN17btCollisionObjectD2Ev(i1) {
 54216  i1 = i1 | 0;
 54217  return;
 54219 function __ZN16btPointCollectorD1Ev(i1) {
 54220  i1 = i1 | 0;
 54221  return;
 54223 function __ZN16btManifoldResultD1Ev(i1) {
 54224  i1 = i1 | 0;
 54225  return;
 54227 function __ZN16btEmptyAlgorithmD1Ev(i1) {
 54228  i1 = i1 | 0;
 54229  return;
 54231 function __ZN16btBoxBoxDetectorD1Ev(i1) {
 54232  i1 = i1 | 0;
 54233  return;
 54235 function __ZN13btConvexShapeD2Ev(i1) {
 54236  i1 = i1 | 0;
 54237  return;
 54239 function b5(i1, i2) {
 54240  i1 = i1 | 0;
 54241  i2 = i2 | 0;
 54242  abort(5);
 54244 function __ZN12btDispatcherD2Ev(i1) {
 54245  i1 = i1 | 0;
 54246  return;
 54248 function __ZN12btConvexCastD2Ev(i1) {
 54249  i1 = i1 | 0;
 54250  return;
 54252 function __ZNSt9type_infoD2Ev(i1) {
 54253  i1 = i1 | 0;
 54254  return;
 54256 function __ZNSt9bad_allocD2Ev(i1) {
 54257  i1 = i1 | 0;
 54258  return;
 54260 function stackRestore(i1) {
 54261  i1 = i1 | 0;
 54262  STACKTOP = i1;
 54264 function b27(i1) {
 54265  i1 = i1 | 0;
 54266  abort(27);
 54267  return 0.0;
 54269 function b1(i1, d2) {
 54270  i1 = i1 | 0;
 54271  d2 = +d2;
 54272  abort(1);
 54274 function setTempRet9(i1) {
 54275  i1 = i1 | 0;
 54276  tempRet9 = i1;
 54278 function setTempRet8(i1) {
 54279  i1 = i1 | 0;
 54280  tempRet8 = i1;
 54282 function setTempRet7(i1) {
 54283  i1 = i1 | 0;
 54284  tempRet7 = i1;
 54286 function setTempRet6(i1) {
 54287  i1 = i1 | 0;
 54288  tempRet6 = i1;
 54290 function setTempRet5(i1) {
 54291  i1 = i1 | 0;
 54292  tempRet5 = i1;
 54294 function setTempRet4(i1) {
 54295  i1 = i1 | 0;
 54296  tempRet4 = i1;
 54298 function setTempRet3(i1) {
 54299  i1 = i1 | 0;
 54300  tempRet3 = i1;
 54302 function setTempRet2(i1) {
 54303  i1 = i1 | 0;
 54304  tempRet2 = i1;
 54306 function setTempRet1(i1) {
 54307  i1 = i1 | 0;
 54308  tempRet1 = i1;
 54310 function setTempRet0(i1) {
 54311  i1 = i1 | 0;
 54312  tempRet0 = i1;
 54314 function b8(i1) {
 54315  i1 = i1 | 0;
 54316  abort(8);
 54317  return 0;
 54319 function stackSave() {
 54320  return STACKTOP | 0;
 54322 function b4(i1) {
 54323  i1 = i1 | 0;
 54324  abort(4);
 54326 function b35() {
 54327  abort(35);
 54329 // EMSCRIPTEN_END_FUNCS
 54330   var FUNCTION_TABLE_iiiiiiii = [b0,b0];
 54331   var FUNCTION_TABLE_vif = [b1,b1,__ZN10btBoxShape9setMarginEf,b1,__ZN21btConvexInternalShape9setMarginEf,b1,__ZN23btDiscreteDynamicsWorld14updateVehiclesEf,b1,__ZN23btDiscreteDynamicsWorld22addSpeculativeContactsEf,b1,__ZN23btDiscreteDynamicsWorld19integrateTransformsEf
 54332   ,b1,__ZN13btSphereShape9setMarginEf,b1,__ZN23btDiscreteDynamicsWorld25predictUnconstraintMotionEf,b1,__ZN23btDiscreteDynamicsWorld28internalSingleStepSimulationEf,b1,__ZN23btDiscreteDynamicsWorld18saveKinematicStateEf,b1,__ZN12btConvexCast10CastResult9DebugDrawEf,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1,b1];
 54333   var FUNCTION_TABLE_viifii = [b2,b2];
 54334   var FUNCTION_TABLE_viiiii = [b3,b3,__ZN34btSphereTriangleCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b3,__ZN28btCompoundCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b3,__ZN27btContinuousConvexCollisionC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver,b3,__ZNK10__cxxabiv117__class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib,b3,__ZNK10__cxxabiv120__si_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib
 54335   ,b3,__ZN16btDbvtBroadphase7setAabbEP17btBroadphaseProxyRK9btVector3S4_P12btDispatcher,b3,__ZN32btSphereSphereCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b3,__ZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b3,__ZN22SphereTriangleDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb,b3,__ZN31btConvexPlaneCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult
 54336   ,b3,__ZN17btGjkPairDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb,b3,__ZN28btCompoundCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_b,b3,__ZN33btConvexConcaveCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b3,__ZN26btBoxBoxCollisionAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b3,__ZN32btSphereSphereCollisionAlgorithmC2EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_
 54337   ,b3,__ZNK10__cxxabiv121__vmi_class_type_info16search_below_dstEPNS_19__dynamic_cast_infoEPKvib,b3,__ZN23btDiscreteDynamicsWorldC2EP12btDispatcherP21btBroadphaseInterfaceP18btConstraintSolverP24btCollisionConfiguration,b3,__ZN16btBoxBoxDetector16getClosestPointsERKN36btDiscreteCollisionDetectorInterface17ClosestPointInputERNS0_6ResultEP12btIDebugDrawb,b3,__ZN16btEmptyAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b3,__ZN26btBoxBoxCollisionAlgorithmC2EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_,b3,__ZN17btGjkPairDetectorC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver,b3,__ZN33btConvexConcaveCollisionAlgorithmC2ERK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_b,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3];
 54338   var FUNCTION_TABLE_vi = [b4,b4,__ZN34btSphereTriangleCollisionAlgorithmD0Ev,b4,__ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD2E_0v,b4,__ZN10__cxxabiv116__shim_type_infoD2Ev,b4,__ZN26btBoxBoxCollisionAlgorithmD2Ev,b4,__ZN15btGjkConvexCastD0Ev
 54339   ,b4,__ZN16btManifoldResultD1Ev,b4,__ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0E_0v,b4,__ZN16btPointCollectorD1Ev,b4,__ZN22btSubsimplexConvexCastD1Ev,b4,__ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD0Ev
 54340   ,b4,__ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD2Ev,b4,__ZN20btCollisionAlgorithmD1Ev,b4,__ZN25btTriangleRaycastCallbackD0Ev,b4,__ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFuncD1Ev,b4,__ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD0Ev
 54341   ,b4,__ZNSt9bad_allocD2Ev,b4,__ZN16btCollisionWorld27ClosestConvexResultCallbackD1Ev,b4,__ZN21btCollisionDispatcherD0Ev,b4,__ZN35btSequentialImpulseConstraintSolverD0Ev,b4,__ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD0Ev
 54342   ,b4,__ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD0Ev,b4,__ZZN33btMinkowskiPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAllocEN20btIntermediateResultD0Ev,b4,__ZN13btSphereShapeD1Ev,b4,__ZN23btCollisionPairCallbackD1Ev,b4,__ZN15btTriangleShapeD0Ev
 54343   ,b4,__ZN33btMinkowskiPenetrationDepthSolverD1Ev,b4,__ZN18btDbvtTreeColliderD1Ev,b4,__ZN11btUnionFindC2Ev,b4,__ZN18btConvexPolyhedronC2Ev,b4,__ZN32btSphereSphereCollisionAlgorithm10CreateFuncD0Ev
 54344   ,b4,__ZN23btDiscreteDynamicsWorld12applyGravityEv,b4,__ZN25btSimulationIslandManagerC2Ev,b4,__ZN16btDbvtBroadphaseD2Ev,b4,__ZN28btHashedOverlappingPairCacheC2Ev,b4,__ZN18btConvexPolyhedronD2Ev
 54345   ,b4,__ZN32btSphereSphereCollisionAlgorithm10CreateFuncD1Ev,b4,__ZNK10__cxxabiv116__shim_type_info5noop1Ev,b4,__ZN16btDbvtBroadphase10printStatsEv,b4,__ZN16btCollisionWorld14debugDrawWorldEv,b4,__ZN23btPolyhedralConvexShapeD2Ev
 54346   ,b4,__ZN23btConvexConvexAlgorithmD0Ev,b4,__ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallbackD2Ev,b4,__ZN10btBoxShapeD0Ev,b4,__ZN31btDefaultCollisionConfigurationD2Ev,b4,__ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD2Ev
 54347   ,b4,__ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD0Ev,b4,__ZN23btDiscreteDynamicsWorld26calculateSimulationIslandsEv,b4,__ZN16btCollisionWorld11updateAabbsEv,b4,__ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD0E_1v,b4,__ZN12btConvexCast10CastResultD1Ev
 54348   ,b4,__ZN28btCompoundCollisionAlgorithmD2Ev,b4,__ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD0Ev,b4,__ZN30btActivatingCollisionAlgorithmD2Ev,b4,__ZThn4_N17DebugDrawcallbackD0Ev,b4,__ZN22btCompoundLeafCallbackD0Ev
 54349   ,b4,__ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD1Ev,b4,__ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN9RayTesterD2E_1v,b4,__ZN16btEmptyAlgorithmD1Ev,b4,__ZN17btCollisionObjectD2Ev,b4,__ZN15btGjkConvexCastD1Ev
 54350   ,b4,__ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallbackD2Ev,b4,__ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD2E_0v,b4,__ZN12btConvexCast10CastResultD0Ev,b4,__ZN16btCollisionWorldD2Ev,b4,__ZThn4_N17DebugDrawcallbackD1Ev
 54351   ,b4,__ZN23btDiscreteDynamicsWorldD0Ev,b4,__ZN17DebugDrawcallbackD0Ev,b4,__ZN19btSingleRayCallbackD1Ev,b4,__ZN20BroadphaseAabbTesterD1Ev,b4,__ZN20btCollisionAlgorithmD0Ev
 54352   ,b4,__ZN28btCompoundCollisionAlgorithm17SwappedCreateFuncD0Ev,b4,__ZN28btHashedOverlappingPairCacheD2Ev,b4,__ZN33btConvexConcaveCollisionAlgorithmD2Ev,b4,__ZN10btBoxShapeD1Ev,b4,__ZN28btCompoundCollisionAlgorithm10CreateFuncD1Ev
 54353   ,b4,__ZN6btDbvtD2Ev,b4,__ZN23btDiscreteDynamicsWorld23synchronizeMotionStatesEv,b4,__ZN34btSphereTriangleCollisionAlgorithmD2Ev,b4,__ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN9RayTesterD0E_1v,b4,__ZN16btEmptyAlgorithmD0Ev
 54354   ,b4,__ZN35btSequentialImpulseConstraintSolver5resetEv,b4,__ZL20btAlignedFreeDefaultPv,b4,__ZN15btTriangleShapeD1Ev,b4,__ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0E_0v,b4,__ZN19btSingleRayCallbackD0Ev
 54355   ,b4,__ZN22SphereTriangleDetectorD0Ev,b4,__ZN28btTriangleConvexcastCallbackD0Ev,b4,__ZN16btCollisionWorld33performDiscreteCollisionDetectionEv,b4,__ZN30btGjkEpaPenetrationDepthSolverD0Ev,b4,__ZNSt9bad_allocD0Ev
 54356   ,b4,__ZN33btMinkowskiPenetrationDepthSolverD0Ev,b4,__ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallbackD0Ev,b4,__ZN21btConvexInternalShapeD1Ev,b4,__ZN16btDbvtBroadphaseD0Ev,b4,__ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D0Ev
 54357   ,b4,__ZN10__cxxabiv120__si_class_type_infoD0Ev,b4,__ZN17DebugDrawcallbackD1Ev,b4,__ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallbackD2Ev,b4,__ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD2Ev,b4,__ZN16btCollisionWorld27ClosestConvexResultCallbackD0Ev
 54358   ,b4,__ZN26btBoxBoxCollisionAlgorithm10CreateFuncD0Ev,b4,__ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallbackD0Ev,b4,__ZN13btConvexShapeD2Ev,b4,__ZN21btConvexInternalShapeD0Ev,b4,__ZN23btDiscreteDynamicsWorld11clearForcesEv
 54359   ,b4,__ZN18btConvexPolyhedronD0Ev,b4,__ZNK10__cxxabiv116__shim_type_info5noop2Ev,b4,__ZN20btDefaultMotionStateD1Ev,b4,__ZN31btConvexPlaneCollisionAlgorithmD0Ev,b4,__ZN23btConvexConvexAlgorithm10CreateFuncD0Ev
 54360   ,b4,__ZN16btPointCollectorD0Ev,b4,__ZN31btDefaultCollisionConfigurationD0Ev,b4,__ZN16btBoxBoxDetectorD1Ev,b4,__ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD1Ev,b4,__ZN19BroadphaseRayTesterD1Ev
 54361   ,b4,__ZN23btCollisionPairCallbackD0Ev,b4,__ZN11btUnionFindD2Ev,b4,__ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdderD2E_1v,b4,__ZN24btPerturbedContactResultD0Ev,b4,__ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD0Ev
 54362   ,b4,__ZN23btDiscreteDynamicsWorldD2Ev,b4,__ZN6btDbvtC2Ev,b4,__ZN12CProfileNodeD2Ev,b4,__ZN33btConvexConcaveCollisionAlgorithm10CreateFuncD0Ev,b4,__ZN30btActivatingCollisionAlgorithmD0Ev
 54363   ,b4,__ZN26btBoxBoxCollisionAlgorithmD0Ev,b4,__ZN21btSingleSweepCallbackD1Ev,b4,__ZN18btDbvtTreeColliderD0Ev,b4,__ZN20BroadphaseAabbTesterD0Ev,b4,__ZN22SphereTriangleDetectorD1Ev
 54364   ,b4,__ZN32btSphereSphereCollisionAlgorithmD0Ev,b4,__ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallbackD2Ev,b4,__ZN27btContinuousConvexCollisionD1Ev,b4,__ZN11btRigidBodyD1Ev,b4,__ZN10__cxxabiv121__vmi_class_type_infoD0Ev
 54365   ,b4,__ZN21btSingleSweepCallbackD0Ev,b4,__ZN22btSubsimplexConvexCastD0Ev,b4,__ZZN33btMinkowskiPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAllocEN20btIntermediateResultD2Ev,b4,__ZN27btContinuousConvexCollisionD0Ev,b4,__ZN17btCollisionObjectD0Ev
 54366   ,b4,__ZN23btPolyhedralConvexShapeD0Ev,b4,__ZN17btGjkPairDetectorD1Ev,b4,__ZN16btEmptyAlgorithm10CreateFuncD0Ev,b4,__ZN30btGjkEpaPenetrationDepthSolverD1Ev,b4,__ZN11btRigidBodyD0Ev
 54367   ,b4,__ZN35btSequentialImpulseConstraintSolverC2Ev,b4,__ZN28btHashedOverlappingPairCacheD0Ev,b4,__ZN24btConvexTriangleCallbackD2Ev,b4,__ZN22btCompoundLeafCallbackD1Ev,b4,__ZL13btFreeDefaultPv
 54368   ,b4,__ZN21btCollisionDispatcherD2Ev,b4,__ZN26btBoxBoxCollisionAlgorithm10CreateFuncD1Ev,b4,__ZZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN13btDummyResultD0Ev,b4,__ZN25btSimulationIslandManagerD2Ev,b4,__ZN34btClosestNotMeConvexResultCallbackD1Ev
 54369   ,b4,__ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallbackD0Ev,b4,__ZN25btTriangleRaycastCallbackD1Ev,b4,__ZN17btGjkPairDetectorD0Ev,b4,__ZN33btConvexConcaveCollisionAlgorithmD0Ev,b4,__ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder2D2Ev
 54370   ,b4,__ZN23btConvexConvexAlgorithmD2Ev,b4,__ZN28btCompoundCollisionAlgorithmD0Ev,b4,__ZN34btClosestNotMeConvexResultCallbackD0Ev,b4,__ZN16btBoxBoxDetectorD0Ev,b4,__ZN24btConvexTriangleCallbackD0Ev
 54371   ,b4,__ZN13btSphereShapeD0Ev,b4,__ZN13btConvexShapeD0Ev,b4,__ZN7btClockD2Ev,b4,__ZN31btConvexPlaneCollisionAlgorithm10CreateFuncD1Ev,b4,__ZN24btPerturbedContactResultD1Ev
 54372   ,b4,__ZN23btDiscreteDynamicsWorld14debugDrawWorldEv,b4,__ZN16btEmptyAlgorithm10CreateFuncD1Ev,b4,__ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD0Ev,b4,__ZN10__cxxabiv117__class_type_infoD0Ev,b4,__ZN34btSphereTriangleCollisionAlgorithm10CreateFuncD1Ev
 54373   ,b4,__ZN28btTriangleConvexcastCallbackD1Ev,b4,__ZZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN13btDummyResultD2Ev,b4,__ZN28btCompoundCollisionAlgorithm10CreateFuncD0Ev,b4,__ZN23btConvexConvexAlgorithm10CreateFuncD2Ev,b4,__ZN25btSimulationIslandManagerD0Ev
 54374   ,b4,__ZN16btCollisionWorldD0Ev,b4,__ZN19BroadphaseRayTesterD0Ev,b4,__ZN16btManifoldResultD0Ev,b4,__ZN35btSequentialImpulseConstraintSolverD2Ev,b4,__ZN20btDefaultMotionStateD0Ev,b4,__ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallbackD2Ev,b4,__ZN32btSphereSphereCollisionAlgorithmD2Ev,b4,__ZN31btConvexPlaneCollisionAlgorithmD2Ev,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4,b4];
 54375   var FUNCTION_TABLE_vii = [b5,b5,__ZN21btConvexInternalShape15setLocalScalingERK9btVector3,b5,__ZN28btCompoundCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE,b5,__ZN20BroadphaseAabbTester7ProcessEPK10btDbvtNode,b5,__ZN23btDiscreteDynamicsWorld13removeVehicleEP17btActionInterface,b5,__ZN23btDiscreteDynamicsWorld12removeActionEP17btActionInterface
 54376   ,b5,__ZN21btCollisionDispatcher15releaseManifoldEP20btPersistentManifold,b5,__ZN23btConvexConvexAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE,b5,__ZN11btRigidBodyC2ERKNS_27btRigidBodyConstructionInfoE,b5,__ZN16btCollisionWorld9serializeEP12btSerializer,b5,__ZNK20btDefaultMotionState17getWorldTransformER11btTransform
 54377   ,b5,__ZN16btCollisionWorld14setDebugDrawerEP12btIDebugDraw,b5,__ZN16btCollisionWorld21removeCollisionObjectEP17btCollisionObject,b5,__ZN23btDiscreteDynamicsWorld12addCharacterEP17btActionInterface,b5,__ZNK11btRigidBody21serializeSingleObjectEP12btSerializer,b5,__ZN17btCollisionObject17setCollisionShapeEP16btCollisionShape
 54378   ,b5,__ZN25btSimulationIslandManager26storeIslandActivationStateEP16btCollisionWorld,b5,__ZN12btConvexCast10CastResult15drawCoordSystemERK11btTransform,b5,__ZN28btHashedOverlappingPairCache28setInternalGhostPairCallbackEP25btOverlappingPairCallback,b5,__ZN23btDiscreteDynamicsWorld10setGravityERK9btVector3,b5,__ZN23btDiscreteDynamicsWorld16removeConstraintEP17btTypedConstraint
 54379   ,b5,__ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBody,b5,__ZNK23btDiscreteDynamicsWorld10getGravityEv,b5,__ZN23btDiscreteDynamicsWorld15removeCharacterEP17btActionInterface,b5,__ZN16btDbvtBroadphase9resetPoolEP12btDispatcher,b5,__ZN23btDiscreteDynamicsWorld9serializeEP12btSerializer
 54380   ,b5,__ZN22btCompoundLeafCallback7ProcessEPK10btDbvtNode,b5,__ZNK17btCollisionObject21serializeSingleObjectEP12btSerializer,b5,__ZN16btDbvtBroadphase25calculateOverlappingPairsEP12btDispatcher,b5,__ZN21btCollisionDispatcher22freeCollisionAlgorithmEPv,b5,__ZN26btBoxBoxCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE
 54381   ,b5,__ZN34btSphereTriangleCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE,b5,__ZN10btBoxShape15setLocalScalingERK9btVector3,b5,__ZN23btDiscreteDynamicsWorld11setNumTasksEi,b5,__ZN28btHashedOverlappingPairCache24setOverlapFilterCallbackEP23btOverlapFilterCallback,b5,__ZN23btDiscreteDynamicsWorld19setConstraintSolverEP18btConstraintSolver
 54382   ,b5,__ZN21btCollisionDispatcherC2EP24btCollisionConfiguration,b5,__ZN23btDiscreteDynamicsWorld10addVehicleEP17btActionInterface,b5,__ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN9RayTester7ProcessE_1PK10btDbvtNode,b5,__ZN23btDiscreteDynamicsWorld21removeCollisionObjectEP17btCollisionObject,b5,__ZN19BroadphaseRayTester7ProcessEPK10btDbvtNode
 54383   ,b5,__ZN28btHashedOverlappingPairCache20sortOverlappingPairsEP12btDispatcher,b5,__ZN31btDefaultCollisionConfigurationC2ERK34btDefaultCollisionConstructionInfo,b5,__ZNK16btCollisionShape20serializeSingleShapeEP12btSerializer,b5,__ZN16btEmptyAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE,b5,__ZN16btEmptyAlgorithmC2ERK36btCollisionAlgorithmConstructionInfo
 54384   ,b5,__ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNode,b5,__ZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfo,b5,__ZN20btDefaultMotionState17setWorldTransformERK11btTransform,b5,__ZN33btConvexConcaveCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE,b5,__ZN21btCollisionDispatcher13clearManifoldEP20btPersistentManifold
 54385   ,b5,__ZN16btDbvtBroadphaseC2EP22btOverlappingPairCache,b5,__ZN23btDiscreteDynamicsWorld15removeRigidBodyEP11btRigidBody,b5,__ZN23btDiscreteDynamicsWorld9addActionEP17btActionInterface,b5,__ZN31btConvexPlaneCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE,b5,__ZN32btSphereSphereCollisionAlgorithm22getAllContactManifoldsER20btAlignedObjectArrayIP20btPersistentManifoldE,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5,b5];
 54386   var FUNCTION_TABLE_viiifii = [b6,b6];
 54387   var FUNCTION_TABLE_vifiii = [b7,b7,__ZN11btRigidBodyC2EfP13btMotionStateP16btCollisionShapeRK9btVector3,b7];
 54388   var FUNCTION_TABLE_ii = [b8,b8,__ZN23btPolyhedralConvexShape28initializePolyhedralFeaturesEv,b8,__ZNK15btTriangleShape11getNumEdgesEv,b8,__ZN28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv,b8,__ZNK23btDiscreteDynamicsWorld17getNumConstraintsEv,b8,__ZNK16btCollisionShape28calculateSerializeBufferSizeEv
 54389   ,b8,__ZNK21btConvexInternalShape36getNumPreferredPenetrationDirectionsEv,b8,__ZNK28btHashedOverlappingPairCache22getNumOverlappingPairsEv,b8,__ZNK13btSphereShape7getNameEv,b8,__ZNK15btTriangleShape7getNameEv,b8,__ZNK11btRigidBody28calculateSerializeBufferSizeEv
 54390   ,b8,__ZNK10btBoxShape14getNumVerticesEv,b8,__ZNK28btHashedOverlappingPairCache26getOverlappingPairArrayPtrEv,b8,__ZN21btCollisionDispatcher23getInternalManifoldPoolEv,b8,__ZNK15btTriangleShape12getNumPlanesEv,b8,__ZN16btCollisionWorld14getDebugDrawerEv
 54391   ,b8,__ZN31btDefaultCollisionConfiguration25getPersistentManifoldPoolEv,b8,__ZNK21btConvexInternalShape28calculateSerializeBufferSizeEv,b8,__ZN31btDefaultCollisionConfiguration25getCollisionAlgorithmPoolEv,b8,__ZNK10btBoxShape11getNumEdgesEv,b8,__ZN31btDefaultCollisionConfiguration17getStackAllocatorEv
 54392   ,b8,__ZNK15btTriangleShape36getNumPreferredPenetrationDirectionsEv,b8,__ZNK21btCollisionDispatcher15getNumManifoldsEv,b8,__ZNK10btBoxShape36getNumPreferredPenetrationDirectionsEv,b8,__ZN21btCollisionDispatcher26getInternalManifoldPointerEv,b8,__ZNK15btTriangleShape14getNumVerticesEv
 54393   ,b8,__ZNK10btBoxShape12getNumPlanesEv,b8,__ZNK23btDiscreteDynamicsWorld12getWorldTypeEv,b8,__ZNK21btConvexInternalShape15getLocalScalingEv,b8,__ZN28btHashedOverlappingPairCache18hasDeferredRemovalEv,b8,__ZN28btHashedOverlappingPairCache23getOverlappingPairArrayEv
 54394   ,b8,__ZN16btDbvtBroadphase23getOverlappingPairCacheEv,b8,__ZN23btDiscreteDynamicsWorld19getConstraintSolverEv,b8,__ZNKSt9bad_alloc4whatEv,b8,__ZNK16btDbvtBroadphase23getOverlappingPairCacheEv,b8,__ZNK21btCollisionDispatcher23getInternalManifoldPoolEv,b8,__ZNK10btBoxShape7getNameEv,b8,__ZN31btDefaultCollisionConfiguration16getSimplexSolverEv,b8,__ZNK17btCollisionObject28calculateSerializeBufferSizeEv,b8,__ZL14btAllocDefaultj,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8,b8];
 54395   var FUNCTION_TABLE_viiiiffffiif = [b9,b9];
 54396   var FUNCTION_TABLE_fiii = [b10,b10,__ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN14LocalInfoAdder15addSingleResultE_1RNS_17LocalConvexResultEb,b10,__ZN16btCollisionWorld27ClosestConvexResultCallback15addSingleResultERNS_17LocalConvexResultEb,b10,__ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN15LocalInfoAdder215addSingleResultERNS_14LocalRayResultEb,b10,__ZN34btClosestNotMeConvexResultCallback15addSingleResultERN16btCollisionWorld17LocalConvexResultEb,b10,b10,b10,b10,b10,b10,b10];
 54397   var FUNCTION_TABLE_viiif = [b11,b11,__ZZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN13btDummyResult15addContactPointERK9btVector3SA_f,b11,__ZN22SphereTriangleDetectorC2EP13btSphereShapeP15btTriangleShapef,b11,__ZN16btManifoldResult15addContactPointERK9btVector3S2_f,b11,__ZN24btPerturbedContactResult15addContactPointERK9btVector3S2_f,b11,__ZZN33btMinkowskiPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAllocEN20btIntermediateResult15addContactPointERKS8_SG_f,b11,__ZN16btPointCollector15addContactPointERK9btVector3S2_f,b11,b11,b11];
 54398   var FUNCTION_TABLE_fiiiiiiiiiii = [b12,b12,__ZN35btSequentialImpulseConstraintSolver10solveGroupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAllocP12btDispatcher,b12];
 54399   var FUNCTION_TABLE_fiifii = [b13,b13,__ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitE_0RK9btVector3fii,b13,__ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEEN29BridgeTriangleRaycastCallback9reportHitERK9btVector3fii,b13,b13,b13];
 54400   var FUNCTION_TABLE_iii = [b14,b14,__ZN19btSingleRayCallback7processEPK17btBroadphaseProxy,b14,__ZL21btAlignedAllocDefaultji,b14,__ZN11btRigidBody24checkCollideWithOverrideEP17btCollisionObject,b14,__ZZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcherEN17CleanPairCallback14processOverlapER16btBroadphasePair,b14,__ZN6btDbvt8ICollide9AllLeavesEPK10btDbvtNode
 54401   ,b14,__ZN21btCollisionDispatcher26allocateCollisionAlgorithmEi,b14,__ZL8pointCmpRKN20btConvexHullInternal7Point32ES2_,b14,__ZN21btCollisionDispatcher26getManifoldByIndexInternalEi,b14,__ZZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcherEN18RemovePairCallback14processOverlapER16btBroadphasePair,b14,__ZN17btCollisionObject24checkCollideWithOverrideEPS_
 54402   ,b14,__ZZN16btCollisionWorld13rayTestSingleERK11btTransformS2_P17btCollisionObjectPK16btCollisionShapeS2_RNS_17RayResultCallbackEENK15LocalInfoAdder214needsCollisionEP17btBroadphaseProxy,b14,__ZNK34btClosestNotMeConvexResultCallback14needsCollisionEP17btBroadphaseProxy,b14,__ZN23btCollisionPairCallback14processOverlapER16btBroadphasePair,b14,__ZN21btSingleSweepCallback7processEPK17btBroadphaseProxy,b14,__ZNK16btCollisionWorld20ConvexResultCallback14needsCollisionEP17btBroadphaseProxy,b14,__ZN6btDbvt8ICollide7DescentEPK10btDbvtNode,b14,__ZN23btDiscreteDynamicsWorld13getConstraintEi,b14,__ZNK23btDiscreteDynamicsWorld13getConstraintEi,b14,__ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfENK14LocalInfoAdder14needsCollisionE_1P17btBroadphaseProxy,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14,b14];
 54403   var FUNCTION_TABLE_iiii = [b15,b15,__ZN21btCollisionDispatcher14getNewManifoldEPvS0_,b15,__ZNK10__cxxabiv117__class_type_info9can_catchEPKNS_16__shim_type_infoERPv,b15,__ZNK21btConvexInternalShape9serializeEPvP12btSerializer,b15,__ZN21btCollisionDispatcher14needsCollisionEP17btCollisionObjectS1_,b15,__ZN28btHashedOverlappingPairCache18addOverlappingPairEP17btBroadphaseProxyS1_
 54404   ,b15,__ZN28btHashedOverlappingPairCache8findPairEP17btBroadphaseProxyS1_,b15,__ZNK16btCollisionShape9serializeEPvP12btSerializer,b15,__ZN21btCollisionDispatcher13needsResponseEP17btCollisionObjectS1_,b15,__ZNK11btRigidBody9serializeEPvP12btSerializer,b15,__ZN31btDefaultCollisionConfiguration31getCollisionAlgorithmCreateFuncEii,b15,__ZNK17btCollisionObject9serializeEPvP12btSerializer,b15,b15,b15,b15,b15,b15,b15,b15,b15];
 54405   var FUNCTION_TABLE_fif = [b16,b16,__ZNK16btCollisionShape27getContactBreakingThresholdEf,b16];
 54406   var FUNCTION_TABLE_viiiiiiii = [b17,b17,__ZN31btConvexPlaneCollisionAlgorithmC2EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_bii,b17];
 54407   var FUNCTION_TABLE_vifi = [b18,b18,__ZNK15btTriangleShape21calculateLocalInertiaEfR9btVector3,b18,__ZNK23btPolyhedralConvexShape21calculateLocalInertiaEfR9btVector3,b18,__ZNK13btSphereShape21calculateLocalInertiaEfR9btVector3,b18,__ZNK10btBoxShape21calculateLocalInertiaEfR9btVector3,b18,b18,b18,b18,b18,b18,b18];
 54408   var FUNCTION_TABLE_viiiiii = [b19,b19,__ZNK10__cxxabiv121__vmi_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib,b19,__ZNK10__cxxabiv120__si_class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib,b19,__ZN34btSphereTriangleCollisionAlgorithmC2EP20btPersistentManifoldRK36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS6_b,b19,__ZN16btDbvtBroadphase7rayTestERK9btVector3S2_R23btBroadphaseRayCallbackS2_S2_,b19,__ZNK10__cxxabiv117__class_type_info16search_above_dstEPNS_19__dynamic_cast_infoEPKvS4_ib,b19,__ZZN23btDiscreteDynamicsWorld16solveConstraintsER19btContactSolverInfoEN27InplaceSolverIslandCallback13ProcessIslandEPP17btCollisionObjectiPP20btPersistentManifoldii,b19,b19,b19];
 54409   var FUNCTION_TABLE_iiiiiiiiii = [b20,b20,__ZN16btDbvtBroadphase11createProxyERK9btVector3S2_iPvssP12btDispatcherS3_,b20];
 54410   var FUNCTION_TABLE_viffiii = [b21,b21];
 54411   var FUNCTION_TABLE_iiiiiii = [b22,b22,__ZN27btContinuousConvexCollision16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE,b22,__ZN22btSubsimplexConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE,b22,__ZN15btGjkConvexCast16calcTimeOfImpactERK11btTransformS2_S2_S2_RN12btConvexCast10CastResultE,b22];
 54412   var FUNCTION_TABLE_fiiiiiiiiii = [b23,b23,__ZN35btSequentialImpulseConstraintSolver28solveGroupCacheFriendlySetupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc,b23,__ZN35btSequentialImpulseConstraintSolver33solveGroupCacheFriendlyIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc,b23,__ZN35btSequentialImpulseConstraintSolver29solveGroupCacheFriendlyFinishEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc,b23];
 54413   var FUNCTION_TABLE_fiiiii = [b24,b24,__ZN32btSphereSphereCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b24,__ZN26btBoxBoxCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b24,__ZN31btConvexPlaneCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b24,__ZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b24,__ZN28btCompoundCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b24,__ZN23btConvexConvexAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b24,__ZN16btEmptyAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b24,__ZN34btSphereTriangleCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResult,b24,b24,b24,b24,b24,b24,b24,b24,b24,b24,b24,b24,b24,b24,b24];
 54414   var FUNCTION_TABLE_iiiiiiiiiiii = [b25,b25,__ZN33btMinkowskiPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAlloc,b25,__ZN30btGjkEpaPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAlloc,b25,b25,b25];
 54415   var FUNCTION_TABLE_vifii = [b26,b26];
 54416   var FUNCTION_TABLE_fi = [b27,b27,__ZNK13btSphereShape9getMarginEv,b27,__ZNK16btCollisionShape20getAngularMotionDiscEv,b27,__ZNK21btConvexInternalShape9getMarginEv,b27];
 54417   var FUNCTION_TABLE_viiiiiiiiii = [b28,b28,__ZN35btSequentialImpulseConstraintSolver45solveGroupCacheFriendlySplitImpulseIterationsEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc,b28];
 54418   var FUNCTION_TABLE_viiiifffffif = [b29,b29];
 54419   var FUNCTION_TABLE_viiiiiffii = [b30,b30,__ZN17btGjkPairDetectorC2EPK13btConvexShapeS2_iiffP22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver,b30];
 54420   var FUNCTION_TABLE_iifif = [b31,b31,__ZN23btDiscreteDynamicsWorld14stepSimulationEfif,b31];
 54421   var FUNCTION_TABLE_iiiii = [b32,b32,__ZN28btCompoundCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_,b32,__ZN31btConvexPlaneCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_,b32,__ZN16btEmptyAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_,b32,__ZN21btCollisionDispatcher13findAlgorithmEP17btCollisionObjectS1_P20btPersistentManifold,b32,__ZN34btSphereTriangleCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_
 54422   ,b32,__ZN33btConvexConcaveCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_,b32,__ZN32btSphereSphereCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_,b32,__ZN33btConvexConcaveCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_,b32,__ZN26btBoxBoxCollisionAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_,b32,__ZN28btCompoundCollisionAlgorithm17SwappedCreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_,b32,__ZN28btHashedOverlappingPairCache21removeOverlappingPairEP17btBroadphaseProxyS1_P12btDispatcher,b32,__ZN23btConvexConvexAlgorithm10CreateFunc24CreateCollisionAlgorithmER36btCollisionAlgorithmConstructionInfoP17btCollisionObjectS4_,b32,b32,b32,b32,b32,b32,b32];
 54423   var FUNCTION_TABLE_viii = [b33,b33,__ZN18btDbvtTreeCollider7ProcessEPK10btDbvtNodeS2_,b33,__ZZN33btMinkowskiPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAllocEN20btIntermediateResult20setShapeIdentifiersBEii,b33,__ZNK15btTriangleShape37localGetSupportingVertexWithoutMarginERK9btVector3,b33,__ZNK10btBoxShape32getPreferredPenetrationDirectionEiR9btVector3,b33,__ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodeS3_
 54424   ,b33,__ZNK15btTriangleShape32getPreferredPenetrationDirectionEiR9btVector3,b33,__ZN28btHashedOverlappingPairCache20cleanOverlappingPairER16btBroadphasePairP12btDispatcher,b33,__ZZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN13btDummyResult20setShapeIdentifiersBEii,b33,__ZNK13btSphereShape37localGetSupportingVertexWithoutMarginERK9btVector3,b33,__ZN21btCollisionDispatcher19defaultNearCallbackER16btBroadphasePairRS_RK16btDispatcherInfo
 54425   ,b33,__ZN25btSimulationIslandManager21updateActivationStateEP16btCollisionWorldP12btDispatcher,b33,__ZN28btHashedOverlappingPairCache19cleanProxyFromPairsEP17btBroadphaseProxyP12btDispatcher,b33,__ZZN23btConvexConvexAlgorithm16processCollisionEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN13btDummyResult20setShapeIdentifiersAEii,b33,__ZNK10btBoxShape16getPlaneEquationER9btVector4i,b33,__ZNK15btTriangleShape9getVertexEiR9btVector3
 54426   ,b33,__ZZN22btBvhTriangleMeshShape14performRaycastEP18btTriangleCallbackRK9btVector3S4_EN21MyNodeOverlapCallback11processNodeEii,b33,__ZN16btPointCollector20setShapeIdentifiersAEii,b33,__ZNK13btConvexShape31localGetSupportVertexNonVirtualERK9btVector3,b33,__ZNK21btConvexInternalShape24localGetSupportingVertexERK9btVector3,b33,__ZN23btConvexConvexAlgorithm10CreateFuncC2EP22btVoronoiSimplexSolverP30btConvexPenetrationDepthSolver
 54427   ,b33,__ZNK23btPolyhedralConvexShape37localGetSupportingVertexWithoutMarginERK9btVector3,b33,__ZN16btBoxBoxDetectorC2EP10btBoxShapeS1_,b33,__ZNK13btSphereShape24localGetSupportingVertexERK9btVector3,b33,__ZN28btHashedOverlappingPairCache37removeOverlappingPairsContainingProxyEP17btBroadphaseProxyP12btDispatcher,b33,__ZN16btPointCollector20setShapeIdentifiersBEii
 54428   ,b33,__ZN16btManifoldResult20setShapeIdentifiersAEii,b33,__ZNK10btBoxShape9getVertexEiR9btVector3,b33,__ZN18btConstraintSolver12prepareSolveEii,b33,__ZN16btDbvtBroadphase12destroyProxyEP17btBroadphaseProxyP12btDispatcher,b33,__ZNK16btCollisionShape17getBoundingSphereER9btVector3Rf
 54429   ,b33,__ZN28btHashedOverlappingPairCache26processAllOverlappingPairsEP17btOverlapCallbackP12btDispatcher,b33,__ZNK10btBoxShape37localGetSupportingVertexWithoutMarginERK9btVector3,b33,__ZN27btContinuousConvexCollisionC2EPK13btConvexShapePK18btStaticPlaneShape,b33,__ZN23btDiscreteDynamicsWorld13addConstraintEP17btTypedConstraintb,b33,__ZN16btManifoldResult20setShapeIdentifiersBEii
 54430   ,b33,__ZNK10btBoxShape24localGetSupportingVertexERK9btVector3,b33,__ZZN22btBvhTriangleMeshShape17performConvexcastEP18btTriangleCallbackRK9btVector3S4_S4_S4_EN21MyNodeOverlapCallback11processNodeEii,b33,__ZN16btManifoldResultC2EP17btCollisionObjectS1_,b33,__ZNK21btConvexInternalShape32getPreferredPenetrationDirectionEiR9btVector3,b33,__ZN12btConvexCast10CastResult13reportFailureEii,b33,__ZNK13btConvexShape44localGetSupportVertexWithoutMarginNonVirtualERK9btVector3,b33,__ZNK16btDbvtBroadphase17getBroadphaseAabbER9btVector3S1_,b33,__ZZN33btMinkowskiPenetrationDepthSolver12calcPenDepthER22btVoronoiSimplexSolverPK13btConvexShapeS4_RK11btTransformS7_R9btVector3S9_S9_P12btIDebugDrawP12btStackAllocEN20btIntermediateResult20setShapeIdentifiersAEii,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33,b33];
 54431   var FUNCTION_TABLE_viifi = [b34,b34];
 54432   var FUNCTION_TABLE_v = [b35,b35,v____cxa_pure_virtual__wrapper,b35];
 54433   var FUNCTION_TABLE_viif = [b36,b36,__ZN6btDbvt8ICollide7ProcessEPK10btDbvtNodef,b36];
 54434   var FUNCTION_TABLE_iiif = [b37,b37,__ZNK15btTriangleShape8isInsideERK9btVector3f,b37,__ZNK10btBoxShape8isInsideERK9btVector3f,b37,b37,b37];
 54435   var FUNCTION_TABLE_fiiifii = [b38,b38,__ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitERK9btVector3SG_fii,b38,__ZZN16btCollisionWorld17objectQuerySingleEPK13btConvexShapeRK11btTransformS5_P17btCollisionObjectPK16btCollisionShapeS5_RNS_20ConvexResultCallbackEfEN32BridgeTriangleConvexcastCallback9reportHitE_0RK9btVector3SG_fii,b38,b38,b38];
 54436   var FUNCTION_TABLE_viiii = [b39,b39,__ZN22btSubsimplexConvexCastC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolver,b39,__ZThn4_N17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii,b39,__ZNK15btTriangleShape8getPlaneER9btVector3S1_i,b39,__ZN16btCollisionWorld18addCollisionObjectEP17btCollisionObjectss,b39,__ZNK13btSphereShape7getAabbERK11btTransformR9btVector3S4_
 54437   ,b39,__ZN16btDbvtBroadphase8aabbTestERK9btVector3S2_R24btBroadphaseAabbCallback,b39,__ZN16btCollisionWorld15debugDrawObjectERK11btTransformPK16btCollisionShapeRK9btVector3,b39,__ZN17DebugDrawcallback28internalProcessTriangleIndexEP9btVector3ii,b39,__ZNK10btBoxShape7getEdgeEiR9btVector3S1_,b39,__ZNK15btTriangleShape7getEdgeEiR9btVector3S1_
 54438   ,b39,__ZNK10__cxxabiv120__si_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi,b39,__ZNK10__cxxabiv121__vmi_class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi,b39,__ZN28btTriangleConvexcastCallback15processTriangleEP9btVector3ii,b39,__ZNK23btPolyhedralConvexShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i,b39,__ZN18btConstraintSolver9allSolvedERK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc
 54439   ,b39,__ZN24btConvexTriangleCallback15processTriangleEP9btVector3ii,b39,__ZNK13btSphereShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i,b39,__ZZN33btConvexConcaveCollisionAlgorithm21calculateTimeOfImpactEP17btCollisionObjectS1_RK16btDispatcherInfoP16btManifoldResultEN31LocalTriangleSphereCastCallback15processTriangleEP9btVector3ii,b39,__ZNK21btConvexInternalShape11getAabbSlowERK11btTransformR9btVector3S4_,b39,__ZN25btTriangleRaycastCallback15processTriangleEP9btVector3ii
 54440   ,b39,__ZNK10__cxxabiv117__class_type_info27has_unambiguous_public_baseEPNS_19__dynamic_cast_infoEPvi,b39,__ZN21btCollisionDispatcher25dispatchAllCollisionPairsEP22btOverlappingPairCacheRK16btDispatcherInfoP12btDispatcher,b39,__ZNK10btBoxShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i,b39,__ZNK10btBoxShape7getAabbERK11btTransformR9btVector3S4_,b39,__ZNK15btTriangleShape49batchedUnitVectorGetSupportingVertexWithoutMarginEPK9btVector3PS0_i
 54441   ,b39,__ZN15btGjkConvexCastC2EPK13btConvexShapeS2_P22btVoronoiSimplexSolver,b39,__ZNK16btDbvtBroadphase7getAabbEP17btBroadphaseProxyR9btVector3S3_,b39,__ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBodyss,b39,__ZNK21btConvexInternalShape7getAabbERK11btTransformR9btVector3S4_,b39,__ZNK16btCollisionWorld7rayTestERK9btVector3S2_RNS_17RayResultCallbackE
 54442   ,b39,__ZNK10btBoxShape8getPlaneER9btVector3S1_i,b39,__ZNK15btTriangleShape16getPlaneEquationEiR9btVector3S1_,b39,__ZNK15btTriangleShape7getAabbERK11btTransformR9btVector3S4_,b39,__ZN17DebugDrawcallback15processTriangleEP9btVector3ii,b39,__ZN23btDiscreteDynamicsWorld18addCollisionObjectEP17btCollisionObjectss,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39,b39];
 54443   return { _strlen: _strlen, _free: _free, _main: _main, __GLOBAL__I_a: __GLOBAL__I_a, _memset: _memset, _malloc: _malloc, _memcpy: _memcpy, _llvm_uadd_with_overflow_i64: _llvm_uadd_with_overflow_i64, runPostSets: runPostSets, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, setThrew: setThrew, setTempRet0: setTempRet0, setTempRet1: setTempRet1, setTempRet2: setTempRet2, setTempRet3: setTempRet3, setTempRet4: setTempRet4, setTempRet5: setTempRet5, setTempRet6: setTempRet6, setTempRet7: setTempRet7, setTempRet8: setTempRet8, setTempRet9: setTempRet9, dynCall_iiiiiiii: dynCall_iiiiiiii, dynCall_vif: dynCall_vif, dynCall_viifii: dynCall_viifii, dynCall_viiiii: dynCall_viiiii, dynCall_vi: dynCall_vi, dynCall_vii: dynCall_vii, dynCall_viiifii: dynCall_viiifii, dynCall_vifiii: dynCall_vifiii, dynCall_ii: dynCall_ii, dynCall_viiiiffffiif: dynCall_viiiiffffiif, dynCall_fiii: dynCall_fiii, dynCall_viiif: dynCall_viiif, dynCall_fiiiiiiiiiii: dynCall_fiiiiiiiiiii, dynCall_fiifii: dynCall_fiifii, dynCall_iii: dynCall_iii, dynCall_iiii: dynCall_iiii, dynCall_fif: dynCall_fif, dynCall_viiiiiiii: dynCall_viiiiiiii, dynCall_vifi: dynCall_vifi, dynCall_viiiiii: dynCall_viiiiii, dynCall_iiiiiiiiii: dynCall_iiiiiiiiii, dynCall_viffiii: dynCall_viffiii, dynCall_iiiiiii: dynCall_iiiiiii, dynCall_fiiiiiiiiii: dynCall_fiiiiiiiiii, dynCall_fiiiii: dynCall_fiiiii, dynCall_iiiiiiiiiiii: dynCall_iiiiiiiiiiii, dynCall_vifii: dynCall_vifii, dynCall_fi: dynCall_fi, dynCall_viiiiiiiiii: dynCall_viiiiiiiiii, dynCall_viiiifffffif: dynCall_viiiifffffif, dynCall_viiiiiffii: dynCall_viiiiiffii, dynCall_iifif: dynCall_iifif, dynCall_iiiii: dynCall_iiiii, dynCall_viii: dynCall_viii, dynCall_viifi: dynCall_viifi, dynCall_v: dynCall_v, dynCall_viif: dynCall_viif, dynCall_iiif: dynCall_iiif, dynCall_fiiifii: dynCall_fiiifii, dynCall_viiii: dynCall_viiii };
 54444 };
 54446 var ffis = { "abort": abort, "assert": assert, "asmPrintInt": asmPrintInt, "asmPrintFloat": asmPrintFloat, "min": Math_min, "invoke_iiiiiiii": invoke_iiiiiiii, "invoke_vif": invoke_vif, "invoke_viifii": invoke_viifii, "invoke_viiiii": invoke_viiiii, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_viiifii": invoke_viiifii, "invoke_vifiii": invoke_vifiii, "invoke_ii": invoke_ii, "invoke_viiiiffffiif": invoke_viiiiffffiif, "invoke_fiii": invoke_fiii, "invoke_viiif": invoke_viiif, "invoke_fiiiiiiiiiii": invoke_fiiiiiiiiiii, "invoke_fiifii": invoke_fiifii, "invoke_iii": invoke_iii, "invoke_iiii": invoke_iiii, "invoke_fif": invoke_fif, "invoke_viiiiiiii": invoke_viiiiiiii, "invoke_vifi": invoke_vifi, "invoke_viiiiii": invoke_viiiiii, "invoke_iiiiiiiiii": invoke_iiiiiiiiii, "invoke_viffiii": invoke_viffiii, "invoke_iiiiiii": invoke_iiiiiii, "invoke_fiiiiiiiiii": invoke_fiiiiiiiiii, "invoke_fiiiii": invoke_fiiiii, "invoke_iiiiiiiiiiii": invoke_iiiiiiiiiiii, "invoke_vifii": invoke_vifii, "invoke_fi": invoke_fi, "invoke_viiiiiiiiii": invoke_viiiiiiiiii, "invoke_viiiifffffif": invoke_viiiifffffif, "invoke_viiiiiffii": invoke_viiiiiffii, "invoke_iifif": invoke_iifif, "invoke_iiiii": invoke_iiiii, "invoke_viii": invoke_viii, "invoke_viifi": invoke_viifi, "invoke_v": invoke_v, "invoke_viif": invoke_viif, "invoke_iiif": invoke_iiif, "invoke_fiiifii": invoke_fiiifii, "invoke_viiii": invoke_viiii, "_llvm_lifetime_end": _llvm_lifetime_end, "_cosf": _cosf, "_fabsf": _fabsf, "_sysconf": _sysconf, "___cxa_throw": ___cxa_throw, "_atexit": _atexit, "_abort": _abort, "_fprintf": _fprintf, "_llvm_eh_exception": _llvm_eh_exception, "_printf": _printf, "_acosf": _acosf, "_fflush": _fflush, "__reallyNegative": __reallyNegative, "_sqrtf": _sqrtf, "_llvm_pow_f32": _llvm_pow_f32, "___setErrNo": ___setErrNo, "_fwrite": _fwrite, "_send": _send, "_write": _write, "_exit": _exit, "_atan2f": _atan2f, "___cxa_pure_virtual": ___cxa_pure_virtual, "___cxa_is_number_type": ___cxa_is_number_type, "_time": _time, "__formatString": __formatString, "___cxa_does_inherit": ___cxa_does_inherit, "___cxa_guard_acquire": ___cxa_guard_acquire, "__ZSt9terminatev": __ZSt9terminatev, "_gettimeofday": _gettimeofday, "___cxa_find_matching_catch": ___cxa_find_matching_catch, "_sinf": _sinf, "___assert_func": ___assert_func, "__ZSt18uncaught_exceptionv": __ZSt18uncaught_exceptionv, "_pwrite": _pwrite, "___cxa_call_unexpected": ___cxa_call_unexpected, "_sbrk": _sbrk, "___cxa_guard_abort": ___cxa_guard_abort, "___cxa_allocate_exception": ___cxa_allocate_exception, "___errno_location": ___errno_location, "___gxx_personality_v0": ___gxx_personality_v0, "_llvm_lifetime_start": _llvm_lifetime_start, "_fmod": _fmod, "___cxa_guard_release": ___cxa_guard_release, "__exit": __exit, "___resumeException": ___resumeException, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "cttz_i8": cttz_i8, "ctlz_i8": ctlz_i8, "NaN": NaN, "Infinity": Infinity, "__ZTVN10__cxxabiv117__class_type_infoE": __ZTVN10__cxxabiv117__class_type_infoE, "__ZTVN10__cxxabiv120__si_class_type_infoE": __ZTVN10__cxxabiv120__si_class_type_infoE, "___dso_handle": ___dso_handle };
 54448 // Stress-test re-linking by linking once before the "real" one.
 54449 var throwAway = asmModule(this, ffis, new ArrayBuffer(4*4096));
 54451 var asm = asmModule(this, ffis, buffer);
 54452 var _strlen = Module["_strlen"] = asm["_strlen"];
 54453 var _free = Module["_free"] = asm["_free"];
 54454 var _main = Module["_main"] = asm["_main"];
 54455 var __GLOBAL__I_a = Module["__GLOBAL__I_a"] = asm["__GLOBAL__I_a"];
 54456 var _memset = Module["_memset"] = asm["_memset"];
 54457 var _malloc = Module["_malloc"] = asm["_malloc"];
 54458 var _memcpy = Module["_memcpy"] = asm["_memcpy"];
 54459 var _llvm_uadd_with_overflow_i64 = Module["_llvm_uadd_with_overflow_i64"] = asm["_llvm_uadd_with_overflow_i64"];
 54460 var runPostSets = Module["runPostSets"] = asm["runPostSets"];
 54461 var dynCall_iiiiiiii = Module["dynCall_iiiiiiii"] = asm["dynCall_iiiiiiii"];
 54462 var dynCall_vif = Module["dynCall_vif"] = asm["dynCall_vif"];
 54463 var dynCall_viifii = Module["dynCall_viifii"] = asm["dynCall_viifii"];
 54464 var dynCall_viiiii = Module["dynCall_viiiii"] = asm["dynCall_viiiii"];
 54465 var dynCall_vi = Module["dynCall_vi"] = asm["dynCall_vi"];
 54466 var dynCall_vii = Module["dynCall_vii"] = asm["dynCall_vii"];
 54467 var dynCall_viiifii = Module["dynCall_viiifii"] = asm["dynCall_viiifii"];
 54468 var dynCall_vifiii = Module["dynCall_vifiii"] = asm["dynCall_vifiii"];
 54469 var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"];
 54470 var dynCall_viiiiffffiif = Module["dynCall_viiiiffffiif"] = asm["dynCall_viiiiffffiif"];
 54471 var dynCall_fiii = Module["dynCall_fiii"] = asm["dynCall_fiii"];
 54472 var dynCall_viiif = Module["dynCall_viiif"] = asm["dynCall_viiif"];
 54473 var dynCall_fiiiiiiiiiii = Module["dynCall_fiiiiiiiiiii"] = asm["dynCall_fiiiiiiiiiii"];
 54474 var dynCall_fiifii = Module["dynCall_fiifii"] = asm["dynCall_fiifii"];
 54475 var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"];
 54476 var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"];
 54477 var dynCall_fif = Module["dynCall_fif"] = asm["dynCall_fif"];
 54478 var dynCall_viiiiiiii = Module["dynCall_viiiiiiii"] = asm["dynCall_viiiiiiii"];
 54479 var dynCall_vifi = Module["dynCall_vifi"] = asm["dynCall_vifi"];
 54480 var dynCall_viiiiii = Module["dynCall_viiiiii"] = asm["dynCall_viiiiii"];
 54481 var dynCall_iiiiiiiiii = Module["dynCall_iiiiiiiiii"] = asm["dynCall_iiiiiiiiii"];
 54482 var dynCall_viffiii = Module["dynCall_viffiii"] = asm["dynCall_viffiii"];
 54483 var dynCall_iiiiiii = Module["dynCall_iiiiiii"] = asm["dynCall_iiiiiii"];
 54484 var dynCall_fiiiiiiiiii = Module["dynCall_fiiiiiiiiii"] = asm["dynCall_fiiiiiiiiii"];
 54485 var dynCall_fiiiii = Module["dynCall_fiiiii"] = asm["dynCall_fiiiii"];
 54486 var dynCall_iiiiiiiiiiii = Module["dynCall_iiiiiiiiiiii"] = asm["dynCall_iiiiiiiiiiii"];
 54487 var dynCall_vifii = Module["dynCall_vifii"] = asm["dynCall_vifii"];
 54488 var dynCall_fi = Module["dynCall_fi"] = asm["dynCall_fi"];
 54489 var dynCall_viiiiiiiiii = Module["dynCall_viiiiiiiiii"] = asm["dynCall_viiiiiiiiii"];
 54490 var dynCall_viiiifffffif = Module["dynCall_viiiifffffif"] = asm["dynCall_viiiifffffif"];
 54491 var dynCall_viiiiiffii = Module["dynCall_viiiiiffii"] = asm["dynCall_viiiiiffii"];
 54492 var dynCall_iifif = Module["dynCall_iifif"] = asm["dynCall_iifif"];
 54493 var dynCall_iiiii = Module["dynCall_iiiii"] = asm["dynCall_iiiii"];
 54494 var dynCall_viii = Module["dynCall_viii"] = asm["dynCall_viii"];
 54495 var dynCall_viifi = Module["dynCall_viifi"] = asm["dynCall_viifi"];
 54496 var dynCall_v = Module["dynCall_v"] = asm["dynCall_v"];
 54497 var dynCall_viif = Module["dynCall_viif"] = asm["dynCall_viif"];
 54498 var dynCall_iiif = Module["dynCall_iiif"] = asm["dynCall_iiif"];
 54499 var dynCall_fiiifii = Module["dynCall_fiiifii"] = asm["dynCall_fiiifii"];
 54500 var dynCall_viiii = Module["dynCall_viiii"] = asm["dynCall_viiii"];
 54501 Runtime.stackAlloc = function(size) { return asm['stackAlloc'](size) };
 54502 Runtime.stackSave = function() { return asm['stackSave']() };
 54503 Runtime.stackRestore = function(top) { asm['stackRestore'](top) };
 54504 // TODO: strip out parts of this we do not need
 54505 //======= begin closure i64 code =======
 54506 // Copyright 2009 The Closure Library Authors. All Rights Reserved.
 54507 //
 54508 // Licensed under the Apache License, Version 2.0 (the "License");
 54509 // you may not use this file except in compliance with the License.
 54510 // You may obtain a copy of the License at
 54511 //
 54512 //      http://www.apache.org/licenses/LICENSE-2.0
 54513 //
 54514 // Unless required by applicable law or agreed to in writing, software
 54515 // distributed under the License is distributed on an "AS-IS" BASIS,
 54516 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 54517 // See the License for the specific language governing permissions and
 54518 // limitations under the License.
 54519 /**
 54520  * @fileoverview Defines a Long class for representing a 64-bit two's-complement
 54521  * integer value, which faithfully simulates the behavior of a Java "long". This
 54522  * implementation is derived from LongLib in GWT.
 54524  */
 54525 var i64Math = (function() { // Emscripten wrapper
 54526   var goog = { math: {} };
 54527   /**
 54528    * Constructs a 64-bit two's-complement integer, given its low and high 32-bit
 54529    * values as *signed* integers.  See the from* functions below for more
 54530    * convenient ways of constructing Longs.
 54532    * The internal representation of a long is the two given signed, 32-bit values.
 54533    * We use 32-bit pieces because these are the size of integers on which
 54534    * Javascript performs bit-operations.  For operations like addition and
 54535    * multiplication, we split each number into 16-bit pieces, which can easily be
 54536    * multiplied within Javascript's floating-point representation without overflow
 54537    * or change in sign.
 54539    * In the algorithms below, we frequently reduce the negative case to the
 54540    * positive case by negating the input(s) and then post-processing the result.
 54541    * Note that we must ALWAYS check specially whether those values are MIN_VALUE
 54542    * (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as
 54543    * a positive number, it overflows back into a negative).  Not handling this
 54544    * case would often result in infinite recursion.
 54546    * @param {number} low  The low (signed) 32 bits of the long.
 54547    * @param {number} high  The high (signed) 32 bits of the long.
 54548    * @constructor
 54549    */
 54550   goog.math.Long = function(low, high) {
 54551     /**
 54552      * @type {number}
 54553      * @private
 54554      */
 54555     this.low_ = low | 0;  // force into 32 signed bits.
 54556     /**
 54557      * @type {number}
 54558      * @private
 54559      */
 54560     this.high_ = high | 0;  // force into 32 signed bits.
 54561   };
 54562   // NOTE: Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the
 54563   // from* methods on which they depend.
 54564   /**
 54565    * A cache of the Long representations of small integer values.
 54566    * @type {!Object}
 54567    * @private
 54568    */
 54569   goog.math.Long.IntCache_ = {};
 54570   /**
 54571    * Returns a Long representing the given (32-bit) integer value.
 54572    * @param {number} value The 32-bit integer in question.
 54573    * @return {!goog.math.Long} The corresponding Long value.
 54574    */
 54575   goog.math.Long.fromInt = function(value) {
 54576     if (-128 <= value && value < 128) {
 54577       var cachedObj = goog.math.Long.IntCache_[value];
 54578       if (cachedObj) {
 54579         return cachedObj;
 54582     var obj = new goog.math.Long(value | 0, value < 0 ? -1 : 0);
 54583     if (-128 <= value && value < 128) {
 54584       goog.math.Long.IntCache_[value] = obj;
 54586     return obj;
 54587   };
 54588   /**
 54589    * Returns a Long representing the given value, provided that it is a finite
 54590    * number.  Otherwise, zero is returned.
 54591    * @param {number} value The number in question.
 54592    * @return {!goog.math.Long} The corresponding Long value.
 54593    */
 54594   goog.math.Long.fromNumber = function(value) {
 54595     if (isNaN(value) || !isFinite(value)) {
 54596       return goog.math.Long.ZERO;
 54597     } else if (value <= -goog.math.Long.TWO_PWR_63_DBL_) {
 54598       return goog.math.Long.MIN_VALUE;
 54599     } else if (value + 1 >= goog.math.Long.TWO_PWR_63_DBL_) {
 54600       return goog.math.Long.MAX_VALUE;
 54601     } else if (value < 0) {
 54602       return goog.math.Long.fromNumber(-value).negate();
 54603     } else {
 54604       return new goog.math.Long(
 54605           (value % goog.math.Long.TWO_PWR_32_DBL_) | 0,
 54606           (value / goog.math.Long.TWO_PWR_32_DBL_) | 0);
 54608   };
 54609   /**
 54610    * Returns a Long representing the 64-bit integer that comes by concatenating
 54611    * the given high and low bits.  Each is assumed to use 32 bits.
 54612    * @param {number} lowBits The low 32-bits.
 54613    * @param {number} highBits The high 32-bits.
 54614    * @return {!goog.math.Long} The corresponding Long value.
 54615    */
 54616   goog.math.Long.fromBits = function(lowBits, highBits) {
 54617     return new goog.math.Long(lowBits, highBits);
 54618   };
 54619   /**
 54620    * Returns a Long representation of the given string, written using the given
 54621    * radix.
 54622    * @param {string} str The textual representation of the Long.
 54623    * @param {number=} opt_radix The radix in which the text is written.
 54624    * @return {!goog.math.Long} The corresponding Long value.
 54625    */
 54626   goog.math.Long.fromString = function(str, opt_radix) {
 54627     if (str.length == 0) {
 54628       throw Error('number format error: empty string');
 54630     var radix = opt_radix || 10;
 54631     if (radix < 2 || 36 < radix) {
 54632       throw Error('radix out of range: ' + radix);
 54634     if (str.charAt(0) == '-') {
 54635       return goog.math.Long.fromString(str.substring(1), radix).negate();
 54636     } else if (str.indexOf('-') >= 0) {
 54637       throw Error('number format error: interior "-" character: ' + str);
 54639     // Do several (8) digits each time through the loop, so as to
 54640     // minimize the calls to the very expensive emulated div.
 54641     var radixToPower = goog.math.Long.fromNumber(Math.pow(radix, 8));
 54642     var result = goog.math.Long.ZERO;
 54643     for (var i = 0; i < str.length; i += 8) {
 54644       var size = Math.min(8, str.length - i);
 54645       var value = parseInt(str.substring(i, i + size), radix);
 54646       if (size < 8) {
 54647         var power = goog.math.Long.fromNumber(Math.pow(radix, size));
 54648         result = result.multiply(power).add(goog.math.Long.fromNumber(value));
 54649       } else {
 54650         result = result.multiply(radixToPower);
 54651         result = result.add(goog.math.Long.fromNumber(value));
 54654     return result;
 54655   };
 54656   // NOTE: the compiler should inline these constant values below and then remove
 54657   // these variables, so there should be no runtime penalty for these.
 54658   /**
 54659    * Number used repeated below in calculations.  This must appear before the
 54660    * first call to any from* function below.
 54661    * @type {number}
 54662    * @private
 54663    */
 54664   goog.math.Long.TWO_PWR_16_DBL_ = 1 << 16;
 54665   /**
 54666    * @type {number}
 54667    * @private
 54668    */
 54669   goog.math.Long.TWO_PWR_24_DBL_ = 1 << 24;
 54670   /**
 54671    * @type {number}
 54672    * @private
 54673    */
 54674   goog.math.Long.TWO_PWR_32_DBL_ =
 54675       goog.math.Long.TWO_PWR_16_DBL_ * goog.math.Long.TWO_PWR_16_DBL_;
 54676   /**
 54677    * @type {number}
 54678    * @private
 54679    */
 54680   goog.math.Long.TWO_PWR_31_DBL_ =
 54681       goog.math.Long.TWO_PWR_32_DBL_ / 2;
 54682   /**
 54683    * @type {number}
 54684    * @private
 54685    */
 54686   goog.math.Long.TWO_PWR_48_DBL_ =
 54687       goog.math.Long.TWO_PWR_32_DBL_ * goog.math.Long.TWO_PWR_16_DBL_;
 54688   /**
 54689    * @type {number}
 54690    * @private
 54691    */
 54692   goog.math.Long.TWO_PWR_64_DBL_ =
 54693       goog.math.Long.TWO_PWR_32_DBL_ * goog.math.Long.TWO_PWR_32_DBL_;
 54694   /**
 54695    * @type {number}
 54696    * @private
 54697    */
 54698   goog.math.Long.TWO_PWR_63_DBL_ =
 54699       goog.math.Long.TWO_PWR_64_DBL_ / 2;
 54700   /** @type {!goog.math.Long} */
 54701   goog.math.Long.ZERO = goog.math.Long.fromInt(0);
 54702   /** @type {!goog.math.Long} */
 54703   goog.math.Long.ONE = goog.math.Long.fromInt(1);
 54704   /** @type {!goog.math.Long} */
 54705   goog.math.Long.NEG_ONE = goog.math.Long.fromInt(-1);
 54706   /** @type {!goog.math.Long} */
 54707   goog.math.Long.MAX_VALUE =
 54708       goog.math.Long.fromBits(0xFFFFFFFF | 0, 0x7FFFFFFF | 0);
 54709   /** @type {!goog.math.Long} */
 54710   goog.math.Long.MIN_VALUE = goog.math.Long.fromBits(0, 0x80000000 | 0);
 54711   /**
 54712    * @type {!goog.math.Long}
 54713    * @private
 54714    */
 54715   goog.math.Long.TWO_PWR_24_ = goog.math.Long.fromInt(1 << 24);
 54716   /** @return {number} The value, assuming it is a 32-bit integer. */
 54717   goog.math.Long.prototype.toInt = function() {
 54718     return this.low_;
 54719   };
 54720   /** @return {number} The closest floating-point representation to this value. */
 54721   goog.math.Long.prototype.toNumber = function() {
 54722     return this.high_ * goog.math.Long.TWO_PWR_32_DBL_ +
 54723            this.getLowBitsUnsigned();
 54724   };
 54725   /**
 54726    * @param {number=} opt_radix The radix in which the text should be written.
 54727    * @return {string} The textual representation of this value.
 54728    */
 54729   goog.math.Long.prototype.toString = function(opt_radix) {
 54730     var radix = opt_radix || 10;
 54731     if (radix < 2 || 36 < radix) {
 54732       throw Error('radix out of range: ' + radix);
 54734     if (this.isZero()) {
 54735       return '0';
 54737     if (this.isNegative()) {
 54738       if (this.equals(goog.math.Long.MIN_VALUE)) {
 54739         // We need to change the Long value before it can be negated, so we remove
 54740         // the bottom-most digit in this base and then recurse to do the rest.
 54741         var radixLong = goog.math.Long.fromNumber(radix);
 54742         var div = this.div(radixLong);
 54743         var rem = div.multiply(radixLong).subtract(this);
 54744         return div.toString(radix) + rem.toInt().toString(radix);
 54745       } else {
 54746         return '-' + this.negate().toString(radix);
 54749     // Do several (6) digits each time through the loop, so as to
 54750     // minimize the calls to the very expensive emulated div.
 54751     var radixToPower = goog.math.Long.fromNumber(Math.pow(radix, 6));
 54752     var rem = this;
 54753     var result = '';
 54754     while (true) {
 54755       var remDiv = rem.div(radixToPower);
 54756       var intval = rem.subtract(remDiv.multiply(radixToPower)).toInt();
 54757       var digits = intval.toString(radix);
 54758       rem = remDiv;
 54759       if (rem.isZero()) {
 54760         return digits + result;
 54761       } else {
 54762         while (digits.length < 6) {
 54763           digits = '0' + digits;
 54765         result = '' + digits + result;
 54768   };
 54769   /** @return {number} The high 32-bits as a signed value. */
 54770   goog.math.Long.prototype.getHighBits = function() {
 54771     return this.high_;
 54772   };
 54773   /** @return {number} The low 32-bits as a signed value. */
 54774   goog.math.Long.prototype.getLowBits = function() {
 54775     return this.low_;
 54776   };
 54777   /** @return {number} The low 32-bits as an unsigned value. */
 54778   goog.math.Long.prototype.getLowBitsUnsigned = function() {
 54779     return (this.low_ >= 0) ?
 54780         this.low_ : goog.math.Long.TWO_PWR_32_DBL_ + this.low_;
 54781   };
 54782   /**
 54783    * @return {number} Returns the number of bits needed to represent the absolute
 54784    *     value of this Long.
 54785    */
 54786   goog.math.Long.prototype.getNumBitsAbs = function() {
 54787     if (this.isNegative()) {
 54788       if (this.equals(goog.math.Long.MIN_VALUE)) {
 54789         return 64;
 54790       } else {
 54791         return this.negate().getNumBitsAbs();
 54793     } else {
 54794       var val = this.high_ != 0 ? this.high_ : this.low_;
 54795       for (var bit = 31; bit > 0; bit--) {
 54796         if ((val & (1 << bit)) != 0) {
 54797           break;
 54800       return this.high_ != 0 ? bit + 33 : bit + 1;
 54802   };
 54803   /** @return {boolean} Whether this value is zero. */
 54804   goog.math.Long.prototype.isZero = function() {
 54805     return this.high_ == 0 && this.low_ == 0;
 54806   };
 54807   /** @return {boolean} Whether this value is negative. */
 54808   goog.math.Long.prototype.isNegative = function() {
 54809     return this.high_ < 0;
 54810   };
 54811   /** @return {boolean} Whether this value is odd. */
 54812   goog.math.Long.prototype.isOdd = function() {
 54813     return (this.low_ & 1) == 1;
 54814   };
 54815   /**
 54816    * @param {goog.math.Long} other Long to compare against.
 54817    * @return {boolean} Whether this Long equals the other.
 54818    */
 54819   goog.math.Long.prototype.equals = function(other) {
 54820     return (this.high_ == other.high_) && (this.low_ == other.low_);
 54821   };
 54822   /**
 54823    * @param {goog.math.Long} other Long to compare against.
 54824    * @return {boolean} Whether this Long does not equal the other.
 54825    */
 54826   goog.math.Long.prototype.notEquals = function(other) {
 54827     return (this.high_ != other.high_) || (this.low_ != other.low_);
 54828   };
 54829   /**
 54830    * @param {goog.math.Long} other Long to compare against.
 54831    * @return {boolean} Whether this Long is less than the other.
 54832    */
 54833   goog.math.Long.prototype.lessThan = function(other) {
 54834     return this.compare(other) < 0;
 54835   };
 54836   /**
 54837    * @param {goog.math.Long} other Long to compare against.
 54838    * @return {boolean} Whether this Long is less than or equal to the other.
 54839    */
 54840   goog.math.Long.prototype.lessThanOrEqual = function(other) {
 54841     return this.compare(other) <= 0;
 54842   };
 54843   /**
 54844    * @param {goog.math.Long} other Long to compare against.
 54845    * @return {boolean} Whether this Long is greater than the other.
 54846    */
 54847   goog.math.Long.prototype.greaterThan = function(other) {
 54848     return this.compare(other) > 0;
 54849   };
 54850   /**
 54851    * @param {goog.math.Long} other Long to compare against.
 54852    * @return {boolean} Whether this Long is greater than or equal to the other.
 54853    */
 54854   goog.math.Long.prototype.greaterThanOrEqual = function(other) {
 54855     return this.compare(other) >= 0;
 54856   };
 54857   /**
 54858    * Compares this Long with the given one.
 54859    * @param {goog.math.Long} other Long to compare against.
 54860    * @return {number} 0 if they are the same, 1 if the this is greater, and -1
 54861    *     if the given one is greater.
 54862    */
 54863   goog.math.Long.prototype.compare = function(other) {
 54864     if (this.equals(other)) {
 54865       return 0;
 54867     var thisNeg = this.isNegative();
 54868     var otherNeg = other.isNegative();
 54869     if (thisNeg && !otherNeg) {
 54870       return -1;
 54872     if (!thisNeg && otherNeg) {
 54873       return 1;
 54875     // at this point, the signs are the same, so subtraction will not overflow
 54876     if (this.subtract(other).isNegative()) {
 54877       return -1;
 54878     } else {
 54879       return 1;
 54881   };
 54882   /** @return {!goog.math.Long} The negation of this value. */
 54883   goog.math.Long.prototype.negate = function() {
 54884     if (this.equals(goog.math.Long.MIN_VALUE)) {
 54885       return goog.math.Long.MIN_VALUE;
 54886     } else {
 54887       return this.not().add(goog.math.Long.ONE);
 54889   };
 54890   /**
 54891    * Returns the sum of this and the given Long.
 54892    * @param {goog.math.Long} other Long to add to this one.
 54893    * @return {!goog.math.Long} The sum of this and the given Long.
 54894    */
 54895   goog.math.Long.prototype.add = function(other) {
 54896     // Divide each number into 4 chunks of 16 bits, and then sum the chunks.
 54897     var a48 = this.high_ >>> 16;
 54898     var a32 = this.high_ & 0xFFFF;
 54899     var a16 = this.low_ >>> 16;
 54900     var a00 = this.low_ & 0xFFFF;
 54901     var b48 = other.high_ >>> 16;
 54902     var b32 = other.high_ & 0xFFFF;
 54903     var b16 = other.low_ >>> 16;
 54904     var b00 = other.low_ & 0xFFFF;
 54905     var c48 = 0, c32 = 0, c16 = 0, c00 = 0;
 54906     c00 += a00 + b00;
 54907     c16 += c00 >>> 16;
 54908     c00 &= 0xFFFF;
 54909     c16 += a16 + b16;
 54910     c32 += c16 >>> 16;
 54911     c16 &= 0xFFFF;
 54912     c32 += a32 + b32;
 54913     c48 += c32 >>> 16;
 54914     c32 &= 0xFFFF;
 54915     c48 += a48 + b48;
 54916     c48 &= 0xFFFF;
 54917     return goog.math.Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32);
 54918   };
 54919   /**
 54920    * Returns the difference of this and the given Long.
 54921    * @param {goog.math.Long} other Long to subtract from this.
 54922    * @return {!goog.math.Long} The difference of this and the given Long.
 54923    */
 54924   goog.math.Long.prototype.subtract = function(other) {
 54925     return this.add(other.negate());
 54926   };
 54927   /**
 54928    * Returns the product of this and the given long.
 54929    * @param {goog.math.Long} other Long to multiply with this.
 54930    * @return {!goog.math.Long} The product of this and the other.
 54931    */
 54932   goog.math.Long.prototype.multiply = function(other) {
 54933     if (this.isZero()) {
 54934       return goog.math.Long.ZERO;
 54935     } else if (other.isZero()) {
 54936       return goog.math.Long.ZERO;
 54938     if (this.equals(goog.math.Long.MIN_VALUE)) {
 54939       return other.isOdd() ? goog.math.Long.MIN_VALUE : goog.math.Long.ZERO;
 54940     } else if (other.equals(goog.math.Long.MIN_VALUE)) {
 54941       return this.isOdd() ? goog.math.Long.MIN_VALUE : goog.math.Long.ZERO;
 54943     if (this.isNegative()) {
 54944       if (other.isNegative()) {
 54945         return this.negate().multiply(other.negate());
 54946       } else {
 54947         return this.negate().multiply(other).negate();
 54949     } else if (other.isNegative()) {
 54950       return this.multiply(other.negate()).negate();
 54952     // If both longs are small, use float multiplication
 54953     if (this.lessThan(goog.math.Long.TWO_PWR_24_) &&
 54954         other.lessThan(goog.math.Long.TWO_PWR_24_)) {
 54955       return goog.math.Long.fromNumber(this.toNumber() * other.toNumber());
 54957     // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.
 54958     // We can skip products that would overflow.
 54959     var a48 = this.high_ >>> 16;
 54960     var a32 = this.high_ & 0xFFFF;
 54961     var a16 = this.low_ >>> 16;
 54962     var a00 = this.low_ & 0xFFFF;
 54963     var b48 = other.high_ >>> 16;
 54964     var b32 = other.high_ & 0xFFFF;
 54965     var b16 = other.low_ >>> 16;
 54966     var b00 = other.low_ & 0xFFFF;
 54967     var c48 = 0, c32 = 0, c16 = 0, c00 = 0;
 54968     c00 += a00 * b00;
 54969     c16 += c00 >>> 16;
 54970     c00 &= 0xFFFF;
 54971     c16 += a16 * b00;
 54972     c32 += c16 >>> 16;
 54973     c16 &= 0xFFFF;
 54974     c16 += a00 * b16;
 54975     c32 += c16 >>> 16;
 54976     c16 &= 0xFFFF;
 54977     c32 += a32 * b00;
 54978     c48 += c32 >>> 16;
 54979     c32 &= 0xFFFF;
 54980     c32 += a16 * b16;
 54981     c48 += c32 >>> 16;
 54982     c32 &= 0xFFFF;
 54983     c32 += a00 * b32;
 54984     c48 += c32 >>> 16;
 54985     c32 &= 0xFFFF;
 54986     c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;
 54987     c48 &= 0xFFFF;
 54988     return goog.math.Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32);
 54989   };
 54990   /**
 54991    * Returns this Long divided by the given one.
 54992    * @param {goog.math.Long} other Long by which to divide.
 54993    * @return {!goog.math.Long} This Long divided by the given one.
 54994    */
 54995   goog.math.Long.prototype.div = function(other) {
 54996     if (other.isZero()) {
 54997       throw Error('division by zero');
 54998     } else if (this.isZero()) {
 54999       return goog.math.Long.ZERO;
 55001     if (this.equals(goog.math.Long.MIN_VALUE)) {
 55002       if (other.equals(goog.math.Long.ONE) ||
 55003           other.equals(goog.math.Long.NEG_ONE)) {
 55004         return goog.math.Long.MIN_VALUE;  // recall that -MIN_VALUE == MIN_VALUE
 55005       } else if (other.equals(goog.math.Long.MIN_VALUE)) {
 55006         return goog.math.Long.ONE;
 55007       } else {
 55008         // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.
 55009         var halfThis = this.shiftRight(1);
 55010         var approx = halfThis.div(other).shiftLeft(1);
 55011         if (approx.equals(goog.math.Long.ZERO)) {
 55012           return other.isNegative() ? goog.math.Long.ONE : goog.math.Long.NEG_ONE;
 55013         } else {
 55014           var rem = this.subtract(other.multiply(approx));
 55015           var result = approx.add(rem.div(other));
 55016           return result;
 55019     } else if (other.equals(goog.math.Long.MIN_VALUE)) {
 55020       return goog.math.Long.ZERO;
 55022     if (this.isNegative()) {
 55023       if (other.isNegative()) {
 55024         return this.negate().div(other.negate());
 55025       } else {
 55026         return this.negate().div(other).negate();
 55028     } else if (other.isNegative()) {
 55029       return this.div(other.negate()).negate();
 55031     // Repeat the following until the remainder is less than other:  find a
 55032     // floating-point that approximates remainder / other *from below*, add this
 55033     // into the result, and subtract it from the remainder.  It is critical that
 55034     // the approximate value is less than or equal to the real value so that the
 55035     // remainder never becomes negative.
 55036     var res = goog.math.Long.ZERO;
 55037     var rem = this;
 55038     while (rem.greaterThanOrEqual(other)) {
 55039       // Approximate the result of division. This may be a little greater or
 55040       // smaller than the actual value.
 55041       var approx = Math.max(1, Math.floor(rem.toNumber() / other.toNumber()));
 55042       // We will tweak the approximate result by changing it in the 48-th digit or
 55043       // the smallest non-fractional digit, whichever is larger.
 55044       var log2 = Math.ceil(Math.log(approx) / Math.LN2);
 55045       var delta = (log2 <= 48) ? 1 : Math.pow(2, log2 - 48);
 55046       // Decrease the approximation until it is smaller than the remainder.  Note
 55047       // that if it is too large, the product overflows and is negative.
 55048       var approxRes = goog.math.Long.fromNumber(approx);
 55049       var approxRem = approxRes.multiply(other);
 55050       while (approxRem.isNegative() || approxRem.greaterThan(rem)) {
 55051         approx -= delta;
 55052         approxRes = goog.math.Long.fromNumber(approx);
 55053         approxRem = approxRes.multiply(other);
 55055       // We know the answer can't be zero... and actually, zero would cause
 55056       // infinite recursion since we would make no progress.
 55057       if (approxRes.isZero()) {
 55058         approxRes = goog.math.Long.ONE;
 55060       res = res.add(approxRes);
 55061       rem = rem.subtract(approxRem);
 55063     return res;
 55064   };
 55065   /**
 55066    * Returns this Long modulo the given one.
 55067    * @param {goog.math.Long} other Long by which to mod.
 55068    * @return {!goog.math.Long} This Long modulo the given one.
 55069    */
 55070   goog.math.Long.prototype.modulo = function(other) {
 55071     return this.subtract(this.div(other).multiply(other));
 55072   };
 55073   /** @return {!goog.math.Long} The bitwise-NOT of this value. */
 55074   goog.math.Long.prototype.not = function() {
 55075     return goog.math.Long.fromBits(~this.low_, ~this.high_);
 55076   };
 55077   /**
 55078    * Returns the bitwise-AND of this Long and the given one.
 55079    * @param {goog.math.Long} other The Long with which to AND.
 55080    * @return {!goog.math.Long} The bitwise-AND of this and the other.
 55081    */
 55082   goog.math.Long.prototype.and = function(other) {
 55083     return goog.math.Long.fromBits(this.low_ & other.low_,
 55084                                    this.high_ & other.high_);
 55085   };
 55086   /**
 55087    * Returns the bitwise-OR of this Long and the given one.
 55088    * @param {goog.math.Long} other The Long with which to OR.
 55089    * @return {!goog.math.Long} The bitwise-OR of this and the other.
 55090    */
 55091   goog.math.Long.prototype.or = function(other) {
 55092     return goog.math.Long.fromBits(this.low_ | other.low_,
 55093                                    this.high_ | other.high_);
 55094   };
 55095   /**
 55096    * Returns the bitwise-XOR of this Long and the given one.
 55097    * @param {goog.math.Long} other The Long with which to XOR.
 55098    * @return {!goog.math.Long} The bitwise-XOR of this and the other.
 55099    */
 55100   goog.math.Long.prototype.xor = function(other) {
 55101     return goog.math.Long.fromBits(this.low_ ^ other.low_,
 55102                                    this.high_ ^ other.high_);
 55103   };
 55104   /**
 55105    * Returns this Long with bits shifted to the left by the given amount.
 55106    * @param {number} numBits The number of bits by which to shift.
 55107    * @return {!goog.math.Long} This shifted to the left by the given amount.
 55108    */
 55109   goog.math.Long.prototype.shiftLeft = function(numBits) {
 55110     numBits &= 63;
 55111     if (numBits == 0) {
 55112       return this;
 55113     } else {
 55114       var low = this.low_;
 55115       if (numBits < 32) {
 55116         var high = this.high_;
 55117         return goog.math.Long.fromBits(
 55118             low << numBits,
 55119             (high << numBits) | (low >>> (32 - numBits)));
 55120       } else {
 55121         return goog.math.Long.fromBits(0, low << (numBits - 32));
 55124   };
 55125   /**
 55126    * Returns this Long with bits shifted to the right by the given amount.
 55127    * @param {number} numBits The number of bits by which to shift.
 55128    * @return {!goog.math.Long} This shifted to the right by the given amount.
 55129    */
 55130   goog.math.Long.prototype.shiftRight = function(numBits) {
 55131     numBits &= 63;
 55132     if (numBits == 0) {
 55133       return this;
 55134     } else {
 55135       var high = this.high_;
 55136       if (numBits < 32) {
 55137         var low = this.low_;
 55138         return goog.math.Long.fromBits(
 55139             (low >>> numBits) | (high << (32 - numBits)),
 55140             high >> numBits);
 55141       } else {
 55142         return goog.math.Long.fromBits(
 55143             high >> (numBits - 32),
 55144             high >= 0 ? 0 : -1);
 55147   };
 55148   /**
 55149    * Returns this Long with bits shifted to the right by the given amount, with
 55150    * the new top bits matching the current sign bit.
 55151    * @param {number} numBits The number of bits by which to shift.
 55152    * @return {!goog.math.Long} This shifted to the right by the given amount, with
 55153    *     zeros placed into the new leading bits.
 55154    */
 55155   goog.math.Long.prototype.shiftRightUnsigned = function(numBits) {
 55156     numBits &= 63;
 55157     if (numBits == 0) {
 55158       return this;
 55159     } else {
 55160       var high = this.high_;
 55161       if (numBits < 32) {
 55162         var low = this.low_;
 55163         return goog.math.Long.fromBits(
 55164             (low >>> numBits) | (high << (32 - numBits)),
 55165             high >>> numBits);
 55166       } else if (numBits == 32) {
 55167         return goog.math.Long.fromBits(high, 0);
 55168       } else {
 55169         return goog.math.Long.fromBits(high >>> (numBits - 32), 0);
 55172   };
 55173   //======= begin jsbn =======
 55174   var navigator = { appName: 'Modern Browser' }; // polyfill a little
 55175   // Copyright (c) 2005  Tom Wu
 55176   // All Rights Reserved.
 55177   // http://www-cs-students.stanford.edu/~tjw/jsbn/
 55178   /*
 55179    * Copyright (c) 2003-2005  Tom Wu
 55180    * All Rights Reserved.
 55182    * Permission is hereby granted, free of charge, to any person obtaining
 55183    * a copy of this software and associated documentation files (the
 55184    * "Software"), to deal in the Software without restriction, including
 55185    * without limitation the rights to use, copy, modify, merge, publish,
 55186    * distribute, sublicense, and/or sell copies of the Software, and to
 55187    * permit persons to whom the Software is furnished to do so, subject to
 55188    * the following conditions:
 55190    * The above copyright notice and this permission notice shall be
 55191    * included in all copies or substantial portions of the Software.
 55193    * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 
 55194    * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 
 55195    * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
 55197    * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
 55198    * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
 55199    * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
 55200    * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
 55201    * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 55203    * In addition, the following condition applies:
 55205    * All redistributions must retain an intact copy of this copyright notice
 55206    * and disclaimer.
 55207    */
 55208   // Basic JavaScript BN library - subset useful for RSA encryption.
 55209   // Bits per digit
 55210   var dbits;
 55211   // JavaScript engine analysis
 55212   var canary = 0xdeadbeefcafe;
 55213   var j_lm = ((canary&0xffffff)==0xefcafe);
 55214   // (public) Constructor
 55215   function BigInteger(a,b,c) {
 55216     if(a != null)
 55217       if("number" == typeof a) this.fromNumber(a,b,c);
 55218       else if(b == null && "string" != typeof a) this.fromString(a,256);
 55219       else this.fromString(a,b);
 55221   // return new, unset BigInteger
 55222   function nbi() { return new BigInteger(null); }
 55223   // am: Compute w_j += (x*this_i), propagate carries,
 55224   // c is initial carry, returns final carry.
 55225   // c < 3*dvalue, x < 2*dvalue, this_i < dvalue
 55226   // We need to select the fastest one that works in this environment.
 55227   // am1: use a single mult and divide to get the high bits,
 55228   // max digit bits should be 26 because
 55229   // max internal value = 2*dvalue^2-2*dvalue (< 2^53)
 55230   function am1(i,x,w,j,c,n) {
 55231     while(--n >= 0) {
 55232       var v = x*this[i++]+w[j]+c;
 55233       c = Math.floor(v/0x4000000);
 55234       w[j++] = v&0x3ffffff;
 55236     return c;
 55238   // am2 avoids a big mult-and-extract completely.
 55239   // Max digit bits should be <= 30 because we do bitwise ops
 55240   // on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)
 55241   function am2(i,x,w,j,c,n) {
 55242     var xl = x&0x7fff, xh = x>>15;
 55243     while(--n >= 0) {
 55244       var l = this[i]&0x7fff;
 55245       var h = this[i++]>>15;
 55246       var m = xh*l+h*xl;
 55247       l = xl*l+((m&0x7fff)<<15)+w[j]+(c&0x3fffffff);
 55248       c = (l>>>30)+(m>>>15)+xh*h+(c>>>30);
 55249       w[j++] = l&0x3fffffff;
 55251     return c;
 55253   // Alternately, set max digit bits to 28 since some
 55254   // browsers slow down when dealing with 32-bit numbers.
 55255   function am3(i,x,w,j,c,n) {
 55256     var xl = x&0x3fff, xh = x>>14;
 55257     while(--n >= 0) {
 55258       var l = this[i]&0x3fff;
 55259       var h = this[i++]>>14;
 55260       var m = xh*l+h*xl;
 55261       l = xl*l+((m&0x3fff)<<14)+w[j]+c;
 55262       c = (l>>28)+(m>>14)+xh*h;
 55263       w[j++] = l&0xfffffff;
 55265     return c;
 55267   if(j_lm && (navigator.appName == "Microsoft Internet Explorer")) {
 55268     BigInteger.prototype.am = am2;
 55269     dbits = 30;
 55271   else if(j_lm && (navigator.appName != "Netscape")) {
 55272     BigInteger.prototype.am = am1;
 55273     dbits = 26;
 55275   else { // Mozilla/Netscape seems to prefer am3
 55276     BigInteger.prototype.am = am3;
 55277     dbits = 28;
 55279   BigInteger.prototype.DB = dbits;
 55280   BigInteger.prototype.DM = ((1<<dbits)-1);
 55281   BigInteger.prototype.DV = (1<<dbits);
 55282   var BI_FP = 52;
 55283   BigInteger.prototype.FV = Math.pow(2,BI_FP);
 55284   BigInteger.prototype.F1 = BI_FP-dbits;
 55285   BigInteger.prototype.F2 = 2*dbits-BI_FP;
 55286   // Digit conversions
 55287   var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
 55288   var BI_RC = new Array();
 55289   var rr,vv;
 55290   rr = "0".charCodeAt(0);
 55291   for(vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv;
 55292   rr = "a".charCodeAt(0);
 55293   for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
 55294   rr = "A".charCodeAt(0);
 55295   for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
 55296   function int2char(n) { return BI_RM.charAt(n); }
 55297   function intAt(s,i) {
 55298     var c = BI_RC[s.charCodeAt(i)];
 55299     return (c==null)?-1:c;
 55301   // (protected) copy this to r
 55302   function bnpCopyTo(r) {
 55303     for(var i = this.t-1; i >= 0; --i) r[i] = this[i];
 55304     r.t = this.t;
 55305     r.s = this.s;
 55307   // (protected) set from integer value x, -DV <= x < DV
 55308   function bnpFromInt(x) {
 55309     this.t = 1;
 55310     this.s = (x<0)?-1:0;
 55311     if(x > 0) this[0] = x;
 55312     else if(x < -1) this[0] = x+DV;
 55313     else this.t = 0;
 55315   // return bigint initialized to value
 55316   function nbv(i) { var r = nbi(); r.fromInt(i); return r; }
 55317   // (protected) set from string and radix
 55318   function bnpFromString(s,b) {
 55319     var k;
 55320     if(b == 16) k = 4;
 55321     else if(b == 8) k = 3;
 55322     else if(b == 256) k = 8; // byte array
 55323     else if(b == 2) k = 1;
 55324     else if(b == 32) k = 5;
 55325     else if(b == 4) k = 2;
 55326     else { this.fromRadix(s,b); return; }
 55327     this.t = 0;
 55328     this.s = 0;
 55329     var i = s.length, mi = false, sh = 0;
 55330     while(--i >= 0) {
 55331       var x = (k==8)?s[i]&0xff:intAt(s,i);
 55332       if(x < 0) {
 55333         if(s.charAt(i) == "-") mi = true;
 55334         continue;
 55336       mi = false;
 55337       if(sh == 0)
 55338         this[this.t++] = x;
 55339       else if(sh+k > this.DB) {
 55340         this[this.t-1] |= (x&((1<<(this.DB-sh))-1))<<sh;
 55341         this[this.t++] = (x>>(this.DB-sh));
 55343       else
 55344         this[this.t-1] |= x<<sh;
 55345       sh += k;
 55346       if(sh >= this.DB) sh -= this.DB;
 55348     if(k == 8 && (s[0]&0x80) != 0) {
 55349       this.s = -1;
 55350       if(sh > 0) this[this.t-1] |= ((1<<(this.DB-sh))-1)<<sh;
 55352     this.clamp();
 55353     if(mi) BigInteger.ZERO.subTo(this,this);
 55355   // (protected) clamp off excess high words
 55356   function bnpClamp() {
 55357     var c = this.s&this.DM;
 55358     while(this.t > 0 && this[this.t-1] == c) --this.t;
 55360   // (public) return string representation in given radix
 55361   function bnToString(b) {
 55362     if(this.s < 0) return "-"+this.negate().toString(b);
 55363     var k;
 55364     if(b == 16) k = 4;
 55365     else if(b == 8) k = 3;
 55366     else if(b == 2) k = 1;
 55367     else if(b == 32) k = 5;
 55368     else if(b == 4) k = 2;
 55369     else return this.toRadix(b);
 55370     var km = (1<<k)-1, d, m = false, r = "", i = this.t;
 55371     var p = this.DB-(i*this.DB)%k;
 55372     if(i-- > 0) {
 55373       if(p < this.DB && (d = this[i]>>p) > 0) { m = true; r = int2char(d); }
 55374       while(i >= 0) {
 55375         if(p < k) {
 55376           d = (this[i]&((1<<p)-1))<<(k-p);
 55377           d |= this[--i]>>(p+=this.DB-k);
 55379         else {
 55380           d = (this[i]>>(p-=k))&km;
 55381           if(p <= 0) { p += this.DB; --i; }
 55383         if(d > 0) m = true;
 55384         if(m) r += int2char(d);
 55387     return m?r:"0";
 55389   // (public) -this
 55390   function bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); return r; }
 55391   // (public) |this|
 55392   function bnAbs() { return (this.s<0)?this.negate():this; }
 55393   // (public) return + if this > a, - if this < a, 0 if equal
 55394   function bnCompareTo(a) {
 55395     var r = this.s-a.s;
 55396     if(r != 0) return r;
 55397     var i = this.t;
 55398     r = i-a.t;
 55399     if(r != 0) return (this.s<0)?-r:r;
 55400     while(--i >= 0) if((r=this[i]-a[i]) != 0) return r;
 55401     return 0;
 55403   // returns bit length of the integer x
 55404   function nbits(x) {
 55405     var r = 1, t;
 55406     if((t=x>>>16) != 0) { x = t; r += 16; }
 55407     if((t=x>>8) != 0) { x = t; r += 8; }
 55408     if((t=x>>4) != 0) { x = t; r += 4; }
 55409     if((t=x>>2) != 0) { x = t; r += 2; }
 55410     if((t=x>>1) != 0) { x = t; r += 1; }
 55411     return r;
 55413   // (public) return the number of bits in "this"
 55414   function bnBitLength() {
 55415     if(this.t <= 0) return 0;
 55416     return this.DB*(this.t-1)+nbits(this[this.t-1]^(this.s&this.DM));
 55418   // (protected) r = this << n*DB
 55419   function bnpDLShiftTo(n,r) {
 55420     var i;
 55421     for(i = this.t-1; i >= 0; --i) r[i+n] = this[i];
 55422     for(i = n-1; i >= 0; --i) r[i] = 0;
 55423     r.t = this.t+n;
 55424     r.s = this.s;
 55426   // (protected) r = this >> n*DB
 55427   function bnpDRShiftTo(n,r) {
 55428     for(var i = n; i < this.t; ++i) r[i-n] = this[i];
 55429     r.t = Math.max(this.t-n,0);
 55430     r.s = this.s;
 55432   // (protected) r = this << n
 55433   function bnpLShiftTo(n,r) {
 55434     var bs = n%this.DB;
 55435     var cbs = this.DB-bs;
 55436     var bm = (1<<cbs)-1;
 55437     var ds = Math.floor(n/this.DB), c = (this.s<<bs)&this.DM, i;
 55438     for(i = this.t-1; i >= 0; --i) {
 55439       r[i+ds+1] = (this[i]>>cbs)|c;
 55440       c = (this[i]&bm)<<bs;
 55442     for(i = ds-1; i >= 0; --i) r[i] = 0;
 55443     r[ds] = c;
 55444     r.t = this.t+ds+1;
 55445     r.s = this.s;
 55446     r.clamp();
 55448   // (protected) r = this >> n
 55449   function bnpRShiftTo(n,r) {
 55450     r.s = this.s;
 55451     var ds = Math.floor(n/this.DB);
 55452     if(ds >= this.t) { r.t = 0; return; }
 55453     var bs = n%this.DB;
 55454     var cbs = this.DB-bs;
 55455     var bm = (1<<bs)-1;
 55456     r[0] = this[ds]>>bs;
 55457     for(var i = ds+1; i < this.t; ++i) {
 55458       r[i-ds-1] |= (this[i]&bm)<<cbs;
 55459       r[i-ds] = this[i]>>bs;
 55461     if(bs > 0) r[this.t-ds-1] |= (this.s&bm)<<cbs;
 55462     r.t = this.t-ds;
 55463     r.clamp();
 55465   // (protected) r = this - a
 55466   function bnpSubTo(a,r) {
 55467     var i = 0, c = 0, m = Math.min(a.t,this.t);
 55468     while(i < m) {
 55469       c += this[i]-a[i];
 55470       r[i++] = c&this.DM;
 55471       c >>= this.DB;
 55473     if(a.t < this.t) {
 55474       c -= a.s;
 55475       while(i < this.t) {
 55476         c += this[i];
 55477         r[i++] = c&this.DM;
 55478         c >>= this.DB;
 55480       c += this.s;
 55482     else {
 55483       c += this.s;
 55484       while(i < a.t) {
 55485         c -= a[i];
 55486         r[i++] = c&this.DM;
 55487         c >>= this.DB;
 55489       c -= a.s;
 55491     r.s = (c<0)?-1:0;
 55492     if(c < -1) r[i++] = this.DV+c;
 55493     else if(c > 0) r[i++] = c;
 55494     r.t = i;
 55495     r.clamp();
 55497   // (protected) r = this * a, r != this,a (HAC 14.12)
 55498   // "this" should be the larger one if appropriate.
 55499   function bnpMultiplyTo(a,r) {
 55500     var x = this.abs(), y = a.abs();
 55501     var i = x.t;
 55502     r.t = i+y.t;
 55503     while(--i >= 0) r[i] = 0;
 55504     for(i = 0; i < y.t; ++i) r[i+x.t] = x.am(0,y[i],r,i,0,x.t);
 55505     r.s = 0;
 55506     r.clamp();
 55507     if(this.s != a.s) BigInteger.ZERO.subTo(r,r);
 55509   // (protected) r = this^2, r != this (HAC 14.16)
 55510   function bnpSquareTo(r) {
 55511     var x = this.abs();
 55512     var i = r.t = 2*x.t;
 55513     while(--i >= 0) r[i] = 0;
 55514     for(i = 0; i < x.t-1; ++i) {
 55515       var c = x.am(i,x[i],r,2*i,0,1);
 55516       if((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1)) >= x.DV) {
 55517         r[i+x.t] -= x.DV;
 55518         r[i+x.t+1] = 1;
 55521     if(r.t > 0) r[r.t-1] += x.am(i,x[i],r,2*i,0,1);
 55522     r.s = 0;
 55523     r.clamp();
 55525   // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)
 55526   // r != q, this != m.  q or r may be null.
 55527   function bnpDivRemTo(m,q,r) {
 55528     var pm = m.abs();
 55529     if(pm.t <= 0) return;
 55530     var pt = this.abs();
 55531     if(pt.t < pm.t) {
 55532       if(q != null) q.fromInt(0);
 55533       if(r != null) this.copyTo(r);
 55534       return;
 55536     if(r == null) r = nbi();
 55537     var y = nbi(), ts = this.s, ms = m.s;
 55538     var nsh = this.DB-nbits(pm[pm.t-1]);	// normalize modulus
 55539     if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); }
 55540     else { pm.copyTo(y); pt.copyTo(r); }
 55541     var ys = y.t;
 55542     var y0 = y[ys-1];
 55543     if(y0 == 0) return;
 55544     var yt = y0*(1<<this.F1)+((ys>1)?y[ys-2]>>this.F2:0);
 55545     var d1 = this.FV/yt, d2 = (1<<this.F1)/yt, e = 1<<this.F2;
 55546     var i = r.t, j = i-ys, t = (q==null)?nbi():q;
 55547     y.dlShiftTo(j,t);
 55548     if(r.compareTo(t) >= 0) {
 55549       r[r.t++] = 1;
 55550       r.subTo(t,r);
 55552     BigInteger.ONE.dlShiftTo(ys,t);
 55553     t.subTo(y,y);	// "negative" y so we can replace sub with am later
 55554     while(y.t < ys) y[y.t++] = 0;
 55555     while(--j >= 0) {
 55556       // Estimate quotient digit
 55557       var qd = (r[--i]==y0)?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2);
 55558       if((r[i]+=y.am(0,qd,r,j,0,ys)) < qd) {	// Try it out
 55559         y.dlShiftTo(j,t);
 55560         r.subTo(t,r);
 55561         while(r[i] < --qd) r.subTo(t,r);
 55564     if(q != null) {
 55565       r.drShiftTo(ys,q);
 55566       if(ts != ms) BigInteger.ZERO.subTo(q,q);
 55568     r.t = ys;
 55569     r.clamp();
 55570     if(nsh > 0) r.rShiftTo(nsh,r);	// Denormalize remainder
 55571     if(ts < 0) BigInteger.ZERO.subTo(r,r);
 55573   // (public) this mod a
 55574   function bnMod(a) {
 55575     var r = nbi();
 55576     this.abs().divRemTo(a,null,r);
 55577     if(this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r,r);
 55578     return r;
 55580   // Modular reduction using "classic" algorithm
 55581   function Classic(m) { this.m = m; }
 55582   function cConvert(x) {
 55583     if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m);
 55584     else return x;
 55586   function cRevert(x) { return x; }
 55587   function cReduce(x) { x.divRemTo(this.m,null,x); }
 55588   function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
 55589   function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
 55590   Classic.prototype.convert = cConvert;
 55591   Classic.prototype.revert = cRevert;
 55592   Classic.prototype.reduce = cReduce;
 55593   Classic.prototype.mulTo = cMulTo;
 55594   Classic.prototype.sqrTo = cSqrTo;
 55595   // (protected) return "-1/this % 2^DB"; useful for Mont. reduction
 55596   // justification:
 55597   //         xy == 1 (mod m)
 55598   //         xy =  1+km
 55599   //   xy(2-xy) = (1+km)(1-km)
 55600   // x[y(2-xy)] = 1-k^2m^2
 55601   // x[y(2-xy)] == 1 (mod m^2)
 55602   // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2
 55603   // should reduce x and y(2-xy) by m^2 at each step to keep size bounded.
 55604   // JS multiply "overflows" differently from C/C++, so care is needed here.
 55605   function bnpInvDigit() {
 55606     if(this.t < 1) return 0;
 55607     var x = this[0];
 55608     if((x&1) == 0) return 0;
 55609     var y = x&3;		// y == 1/x mod 2^2
 55610     y = (y*(2-(x&0xf)*y))&0xf;	// y == 1/x mod 2^4
 55611     y = (y*(2-(x&0xff)*y))&0xff;	// y == 1/x mod 2^8
 55612     y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff;	// y == 1/x mod 2^16
 55613     // last step - calculate inverse mod DV directly;
 55614     // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints
 55615     y = (y*(2-x*y%this.DV))%this.DV;		// y == 1/x mod 2^dbits
 55616     // we really want the negative inverse, and -DV < y < DV
 55617     return (y>0)?this.DV-y:-y;
 55619   // Montgomery reduction
 55620   function Montgomery(m) {
 55621     this.m = m;
 55622     this.mp = m.invDigit();
 55623     this.mpl = this.mp&0x7fff;
 55624     this.mph = this.mp>>15;
 55625     this.um = (1<<(m.DB-15))-1;
 55626     this.mt2 = 2*m.t;
 55628   // xR mod m
 55629   function montConvert(x) {
 55630     var r = nbi();
 55631     x.abs().dlShiftTo(this.m.t,r);
 55632     r.divRemTo(this.m,null,r);
 55633     if(x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r,r);
 55634     return r;
 55636   // x/R mod m
 55637   function montRevert(x) {
 55638     var r = nbi();
 55639     x.copyTo(r);
 55640     this.reduce(r);
 55641     return r;
 55643   // x = x/R mod m (HAC 14.32)
 55644   function montReduce(x) {
 55645     while(x.t <= this.mt2)	// pad x so am has enough room later
 55646       x[x.t++] = 0;
 55647     for(var i = 0; i < this.m.t; ++i) {
 55648       // faster way of calculating u0 = x[i]*mp mod DV
 55649       var j = x[i]&0x7fff;
 55650       var u0 = (j*this.mpl+(((j*this.mph+(x[i]>>15)*this.mpl)&this.um)<<15))&x.DM;
 55651       // use am to combine the multiply-shift-add into one call
 55652       j = i+this.m.t;
 55653       x[j] += this.m.am(0,u0,x,i,0,this.m.t);
 55654       // propagate carry
 55655       while(x[j] >= x.DV) { x[j] -= x.DV; x[++j]++; }
 55657     x.clamp();
 55658     x.drShiftTo(this.m.t,x);
 55659     if(x.compareTo(this.m) >= 0) x.subTo(this.m,x);
 55661   // r = "x^2/R mod m"; x != r
 55662   function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
 55663   // r = "xy/R mod m"; x,y != r
 55664   function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
 55665   Montgomery.prototype.convert = montConvert;
 55666   Montgomery.prototype.revert = montRevert;
 55667   Montgomery.prototype.reduce = montReduce;
 55668   Montgomery.prototype.mulTo = montMulTo;
 55669   Montgomery.prototype.sqrTo = montSqrTo;
 55670   // (protected) true iff this is even
 55671   function bnpIsEven() { return ((this.t>0)?(this[0]&1):this.s) == 0; }
 55672   // (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79)
 55673   function bnpExp(e,z) {
 55674     if(e > 0xffffffff || e < 1) return BigInteger.ONE;
 55675     var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1;
 55676     g.copyTo(r);
 55677     while(--i >= 0) {
 55678       z.sqrTo(r,r2);
 55679       if((e&(1<<i)) > 0) z.mulTo(r2,g,r);
 55680       else { var t = r; r = r2; r2 = t; }
 55682     return z.revert(r);
 55684   // (public) this^e % m, 0 <= e < 2^32
 55685   function bnModPowInt(e,m) {
 55686     var z;
 55687     if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m);
 55688     return this.exp(e,z);
 55690   // protected
 55691   BigInteger.prototype.copyTo = bnpCopyTo;
 55692   BigInteger.prototype.fromInt = bnpFromInt;
 55693   BigInteger.prototype.fromString = bnpFromString;
 55694   BigInteger.prototype.clamp = bnpClamp;
 55695   BigInteger.prototype.dlShiftTo = bnpDLShiftTo;
 55696   BigInteger.prototype.drShiftTo = bnpDRShiftTo;
 55697   BigInteger.prototype.lShiftTo = bnpLShiftTo;
 55698   BigInteger.prototype.rShiftTo = bnpRShiftTo;
 55699   BigInteger.prototype.subTo = bnpSubTo;
 55700   BigInteger.prototype.multiplyTo = bnpMultiplyTo;
 55701   BigInteger.prototype.squareTo = bnpSquareTo;
 55702   BigInteger.prototype.divRemTo = bnpDivRemTo;
 55703   BigInteger.prototype.invDigit = bnpInvDigit;
 55704   BigInteger.prototype.isEven = bnpIsEven;
 55705   BigInteger.prototype.exp = bnpExp;
 55706   // public
 55707   BigInteger.prototype.toString = bnToString;
 55708   BigInteger.prototype.negate = bnNegate;
 55709   BigInteger.prototype.abs = bnAbs;
 55710   BigInteger.prototype.compareTo = bnCompareTo;
 55711   BigInteger.prototype.bitLength = bnBitLength;
 55712   BigInteger.prototype.mod = bnMod;
 55713   BigInteger.prototype.modPowInt = bnModPowInt;
 55714   // "constants"
 55715   BigInteger.ZERO = nbv(0);
 55716   BigInteger.ONE = nbv(1);
 55717   // jsbn2 stuff
 55718   // (protected) convert from radix string
 55719   function bnpFromRadix(s,b) {
 55720     this.fromInt(0);
 55721     if(b == null) b = 10;
 55722     var cs = this.chunkSize(b);
 55723     var d = Math.pow(b,cs), mi = false, j = 0, w = 0;
 55724     for(var i = 0; i < s.length; ++i) {
 55725       var x = intAt(s,i);
 55726       if(x < 0) {
 55727         if(s.charAt(i) == "-" && this.signum() == 0) mi = true;
 55728         continue;
 55730       w = b*w+x;
 55731       if(++j >= cs) {
 55732         this.dMultiply(d);
 55733         this.dAddOffset(w,0);
 55734         j = 0;
 55735         w = 0;
 55738     if(j > 0) {
 55739       this.dMultiply(Math.pow(b,j));
 55740       this.dAddOffset(w,0);
 55742     if(mi) BigInteger.ZERO.subTo(this,this);
 55744   // (protected) return x s.t. r^x < DV
 55745   function bnpChunkSize(r) { return Math.floor(Math.LN2*this.DB/Math.log(r)); }
 55746   // (public) 0 if this == 0, 1 if this > 0
 55747   function bnSigNum() {
 55748     if(this.s < 0) return -1;
 55749     else if(this.t <= 0 || (this.t == 1 && this[0] <= 0)) return 0;
 55750     else return 1;
 55752   // (protected) this *= n, this >= 0, 1 < n < DV
 55753   function bnpDMultiply(n) {
 55754     this[this.t] = this.am(0,n-1,this,0,0,this.t);
 55755     ++this.t;
 55756     this.clamp();
 55758   // (protected) this += n << w words, this >= 0
 55759   function bnpDAddOffset(n,w) {
 55760     if(n == 0) return;
 55761     while(this.t <= w) this[this.t++] = 0;
 55762     this[w] += n;
 55763     while(this[w] >= this.DV) {
 55764       this[w] -= this.DV;
 55765       if(++w >= this.t) this[this.t++] = 0;
 55766       ++this[w];
 55769   // (protected) convert to radix string
 55770   function bnpToRadix(b) {
 55771     if(b == null) b = 10;
 55772     if(this.signum() == 0 || b < 2 || b > 36) return "0";
 55773     var cs = this.chunkSize(b);
 55774     var a = Math.pow(b,cs);
 55775     var d = nbv(a), y = nbi(), z = nbi(), r = "";
 55776     this.divRemTo(d,y,z);
 55777     while(y.signum() > 0) {
 55778       r = (a+z.intValue()).toString(b).substr(1) + r;
 55779       y.divRemTo(d,y,z);
 55781     return z.intValue().toString(b) + r;
 55783   // (public) return value as integer
 55784   function bnIntValue() {
 55785     if(this.s < 0) {
 55786       if(this.t == 1) return this[0]-this.DV;
 55787       else if(this.t == 0) return -1;
 55789     else if(this.t == 1) return this[0];
 55790     else if(this.t == 0) return 0;
 55791     // assumes 16 < DB < 32
 55792     return ((this[1]&((1<<(32-this.DB))-1))<<this.DB)|this[0];
 55794   // (protected) r = this + a
 55795   function bnpAddTo(a,r) {
 55796     var i = 0, c = 0, m = Math.min(a.t,this.t);
 55797     while(i < m) {
 55798       c += this[i]+a[i];
 55799       r[i++] = c&this.DM;
 55800       c >>= this.DB;
 55802     if(a.t < this.t) {
 55803       c += a.s;
 55804       while(i < this.t) {
 55805         c += this[i];
 55806         r[i++] = c&this.DM;
 55807         c >>= this.DB;
 55809       c += this.s;
 55811     else {
 55812       c += this.s;
 55813       while(i < a.t) {
 55814         c += a[i];
 55815         r[i++] = c&this.DM;
 55816         c >>= this.DB;
 55818       c += a.s;
 55820     r.s = (c<0)?-1:0;
 55821     if(c > 0) r[i++] = c;
 55822     else if(c < -1) r[i++] = this.DV+c;
 55823     r.t = i;
 55824     r.clamp();
 55826   BigInteger.prototype.fromRadix = bnpFromRadix;
 55827   BigInteger.prototype.chunkSize = bnpChunkSize;
 55828   BigInteger.prototype.signum = bnSigNum;
 55829   BigInteger.prototype.dMultiply = bnpDMultiply;
 55830   BigInteger.prototype.dAddOffset = bnpDAddOffset;
 55831   BigInteger.prototype.toRadix = bnpToRadix;
 55832   BigInteger.prototype.intValue = bnIntValue;
 55833   BigInteger.prototype.addTo = bnpAddTo;
 55834   //======= end jsbn =======
 55835   // Emscripten wrapper
 55836   var Wrapper = {
 55837     abs: function(l, h) {
 55838       var x = new goog.math.Long(l, h);
 55839       var ret;
 55840       if (x.isNegative()) {
 55841         ret = x.negate();
 55842       } else {
 55843         ret = x;
 55845       HEAP32[tempDoublePtr>>2] = ret.low_;
 55846       HEAP32[tempDoublePtr+4>>2] = ret.high_;
 55847     },
 55848     ensureTemps: function() {
 55849       if (Wrapper.ensuredTemps) return;
 55850       Wrapper.ensuredTemps = true;
 55851       Wrapper.two32 = new BigInteger();
 55852       Wrapper.two32.fromString('4294967296', 10);
 55853       Wrapper.two64 = new BigInteger();
 55854       Wrapper.two64.fromString('18446744073709551616', 10);
 55855       Wrapper.temp1 = new BigInteger();
 55856       Wrapper.temp2 = new BigInteger();
 55857     },
 55858     lh2bignum: function(l, h) {
 55859       var a = new BigInteger();
 55860       a.fromString(h.toString(), 10);
 55861       var b = new BigInteger();
 55862       a.multiplyTo(Wrapper.two32, b);
 55863       var c = new BigInteger();
 55864       c.fromString(l.toString(), 10);
 55865       var d = new BigInteger();
 55866       c.addTo(b, d);
 55867       return d;
 55868     },
 55869     stringify: function(l, h, unsigned) {
 55870       var ret = new goog.math.Long(l, h).toString();
 55871       if (unsigned && ret[0] == '-') {
 55872         // unsign slowly using jsbn bignums
 55873         Wrapper.ensureTemps();
 55874         var bignum = new BigInteger();
 55875         bignum.fromString(ret, 10);
 55876         ret = new BigInteger();
 55877         Wrapper.two64.addTo(bignum, ret);
 55878         ret = ret.toString(10);
 55880       return ret;
 55881     },
 55882     fromString: function(str, base, min, max, unsigned) {
 55883       Wrapper.ensureTemps();
 55884       var bignum = new BigInteger();
 55885       bignum.fromString(str, base);
 55886       var bigmin = new BigInteger();
 55887       bigmin.fromString(min, 10);
 55888       var bigmax = new BigInteger();
 55889       bigmax.fromString(max, 10);
 55890       if (unsigned && bignum.compareTo(BigInteger.ZERO) < 0) {
 55891         var temp = new BigInteger();
 55892         bignum.addTo(Wrapper.two64, temp);
 55893         bignum = temp;
 55895       var error = false;
 55896       if (bignum.compareTo(bigmin) < 0) {
 55897         bignum = bigmin;
 55898         error = true;
 55899       } else if (bignum.compareTo(bigmax) > 0) {
 55900         bignum = bigmax;
 55901         error = true;
 55903       var ret = goog.math.Long.fromString(bignum.toString()); // min-max checks should have clamped this to a range goog.math.Long can handle well
 55904       HEAP32[tempDoublePtr>>2] = ret.low_;
 55905       HEAP32[tempDoublePtr+4>>2] = ret.high_;
 55906       if (error) throw 'range error';
 55908   };
 55909   return Wrapper;
 55910 })();
 55911 //======= end closure i64 code =======
 55912 // === Auto-generated postamble setup entry stuff ===
 55913 function ExitStatus(status) {
 55914   this.name = "ExitStatus";
 55915   this.message = "Program terminated with exit(" + status + ")";
 55916   this.status = status;
 55917 };
 55918 ExitStatus.prototype = new Error();
 55919 ExitStatus.prototype.constructor = ExitStatus;
 55920 function exit(status) {
 55921   ABORT = true;
 55922   EXITSTATUS = status;
 55923   STACKTOP = initialStackTop;
 55924   // exit the runtime
 55925   exitRuntime();
 55926   // TODO We should handle this differently based on environment.
 55927   // In the browser, the best we can do is throw an exception
 55928   // to halt execution, but in node we could process.exit and
 55929   // I'd imagine SM shell would have something equivalent.
 55930   // This would let us set a proper exit status (which
 55931   // would be great for checking test exit statuses).
 55932   // https://github.com/kripken/emscripten/issues/1371
 55933   // throw an exception to halt the current execution
 55934   throw new ExitStatus(status);
 55936 Module['exit'] = Module.exit = exit;
 55937 function abort(text) {
 55938   if (text) {
 55939     Module.print(text);
 55940     Module.printErr(text);
 55942   ABORT = true;
 55943   EXITSTATUS = 1;
 55944   throw 'abort() at ' + (new Error().stack);
 55946 Module['abort'] = Module.abort = abort;
 55948 var initialStackTop;
 55949 var calledMain = false;
 55950 Module['callMain'] = Module.callMain = function callMain(args) {
 55951   assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on __ATMAIN__)');
 55952   assert(__ATPRERUN__.length == 0, 'cannot call main when preRun functions remain to be called');
 55953   args = args || [];
 55954   ensureInitRuntime();
 55955   var argc = args.length+1;
 55956   function pad() {
 55957     for (var i = 0; i < 4-1; i++) {
 55958       argv.push(0);
 55961   var argv = [allocate(intArrayFromString("/bin/this.program"), 'i8', ALLOC_NORMAL) ];
 55962   pad();
 55963   for (var i = 0; i < argc-1; i = i + 1) {
 55964     argv.push(allocate(intArrayFromString(args[i]), 'i8', ALLOC_NORMAL));
 55965     pad();
 55967   argv.push(0);
 55968   argv = allocate(argv, 'i32', ALLOC_NORMAL);
 55969   initialStackTop = STACKTOP;
 55970   try {
 55971     var ret = Module['_main'](argc, argv, 0);
 55972     // if we're not running an evented main loop, it's time to exit
 55973     if (!Module['noExitRuntime']) {
 55974       exit(ret);
 55977   catch(e) {
 55978     if (e instanceof ExitStatus) {
 55979       // exit() throws this once it's done to make sure execution
 55980       // has been stopped completely
 55981       return;
 55982     } else if (e == 'SimulateInfiniteLoop') {
 55983       // running an evented main loop, don't immediately exit
 55984       Module['noExitRuntime'] = true;
 55985       return;
 55986     } else {
 55987       throw e;
 55989   } finally {
 55990     calledMain = true;
 55993 function runBullet() {
 55994   assertEq(printedOutput, "");
 55995   assertEq(runDependencies > 0, false);
 55996   preRun();
 55997   assertEq(runDependencies > 0, false);
 55998   ensureInitRuntime();
 55999   preMain();
 56000   Module['callMain']([]);
 56001   postRun();
 56003   // This is a canned demo which prints the final positions of all the objects.
 56004   assertEq(printedOutput, "world pos = 2.00,10.00,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.99,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.98,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.97,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.96,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.94,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.92,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.90,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.88,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.85,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.82,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.78,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.75,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.71,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.67,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.62,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.57,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.52,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.47,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.42,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.36,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.30,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.23,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.17,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.10,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,9.02,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,8.95,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,8.87,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,8.79,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,8.71,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,8.62,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,8.53,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,8.44,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,8.35,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,8.25,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,8.15,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,8.05,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,7.94,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,7.83,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,7.72,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,7.61,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,7.49,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,7.37,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,7.25,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,7.13,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,7.00,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,6.87,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,6.73,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,6.60,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,6.46,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,6.32,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,6.17,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,6.03,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,5.88,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,5.72,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,5.57,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,5.41,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,5.25,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,5.08,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,4.92,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,4.75,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,4.58,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,4.40,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,4.22,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,4.04,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,3.86,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,3.67,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,3.48,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,3.29,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,3.10,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,2.90,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,2.70,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,2.50,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,2.29,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,2.08,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,1.87,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,1.66,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,1.44,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,1.22,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,1.00,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,0.77,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,0.55,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,0.32,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,0.08,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-0.15,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-0.39,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-0.63,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-0.88,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-1.13,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-1.38,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-1.63,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-1.88,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-2.14,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-2.40,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-2.67,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-2.93,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-3.20,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-3.48,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-3.75,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.03,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.31,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.59,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.88,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.17,0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.13,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.10,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.08,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.05,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.03,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.01,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.99,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.98,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.97,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.96,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.95,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.95,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.95,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.95,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.96,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.97,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.98,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-4.99,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.00,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.00,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.00,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.00,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.00,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.00,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.00,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.00,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.00,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.00,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.00,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.00,-0.00world pos = 0.00,-56.00,0.00world pos = 2.00,-5.00,-0.00world pos = 0.00,-56.00,0.00");
 56005   printedOutput = "";
 56007   // Let the caller decide what should have happened.
 56008   return {
 56009     asmJSValidated: isAsmJSModule(asmModule) && isAsmJSFunction(asm._main),
 56010     loadedFromCache: isAsmJSModule(asmModule) && isAsmJSModuleLoadedFromCache(asmModule)

mercurial